{"version":3,"file":"static/js/main.8f5416e1.js","mappings":"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,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAIA,EAAa,EAAG,EAAG,IAAK,E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hB,KAAK4wG,KAAK5vG,GAAM,GAAM,GAC9C,EAEI4wG,IACAZ,IAAW,EAAMA,GAAU,KAC3BA,IAAW,GAAOA,GAAU,KAC5BA,IAAW,GAAOA,GAAU,MAC5BA,EAASC,EAAWD,EAASE,EAAWD,EAASC,GACrD,EAEFK,EAASD,EACTA,EAASD,EACTA,EAASD,EACTA,EAAUD,EAASO,EAAM,EACzBP,EAASD,EACTA,EAASD,EACTA,EAASD,EACTA,EAAUU,EAAKE,EAAM,EAGvBntG,EAAM,IAAMusG,EACZvsG,EAAM,IAAMwsG,EACZxsG,EAAM,IAAMysG,EACZzsG,EAAM,IAAM0sG,EACZ1sG,EAAM,IAAM2sG,EACZ3sG,EAAM,IAAM4sG,EACZ5sG,EAAM,IAAM6sG,EACZ7sG,EAAM,IAAM8sG,CACd,EACFb,CAAA,CAxJA,GAAa94E,EAAAA,UAAA84E,4JCRA94E,EAAAA,WAAqB,GAKrBA,EAAAA,cAAwB,GAKxBA,EAAAA,IAAM,IAAIoK,YAAY,CACjC,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,aAMWpK,EAAAA,KAAO,CAClB,WACA,WACA,WACA,WACA,WACA,WACA,UACA,YAMWA,EAAAA,oBAAsBgR,KAAAma,IAAA,EAAK,IAAK,wFCjG7C,WAAA5nB,cAAAnE,EAAA,OAAAY,uHCAA+G,EAAA3H,EAAA,OACA66E,EAAA76E,EAAA,OAEAD,EAAAC,EAAA,OAEAggC,EAAA,WAKE,SAAAA,EAAY34B,GACV,GALe,KAAAT,KAAO,IAAIi0E,EAAAnB,UAKtBryE,EAAQ,CACVr+B,KAAK+xG,MAAQ,IAAIF,EAAAnB,UACjB,IAAMsB,EA4DZ,SAA0B3zE,GACxB,IAAI6B,GAAQ,EAAAnJ,EAAAS,iBAAgB6G,GAE5B,GAAI6B,EAAML,WAAalB,EAAAosB,WAAY,CACjC,IAAMknD,EAAa,IAAIJ,EAAAnB,UACvBuB,EAAW56E,OAAO6I,GAClBA,EAAQ+xE,EAAWx6E,SAGrB,IAAMkI,EAAS,IAAI7B,WAAWa,EAAAosB,YAE9B,OADAprB,EAAO3C,IAAIkD,GACJP,CACT,CAxEoBuyE,CAAiB7zE,GACzB0zE,EAAQ,IAAIj0E,WAAWa,EAAAosB,YAC7BgnD,EAAM/0E,IAAIg1E,GAEV,IAAK,IAAIhxG,EAAI,EAAGA,EAAI29B,EAAAosB,WAAY/pD,IAC9BgxG,EAAMhxG,IAAM,GACZ+wG,EAAM/wG,IAAM,GAGdhB,KAAK49B,KAAKvG,OAAO26E,GACjBhyG,KAAK+xG,MAAM16E,OAAO06E,GAGlB,IAAS/wG,EAAI,EAAGA,EAAIgxG,EAAMnyE,WAAY7+B,IACpCgxG,EAAMhxG,GAAK,EAGjB,CAyCF,OAvCEg2D,EAAA92D,UAAAm3B,OAAA,SAAOC,GACL,KAAI,EAAAP,EAAAQ,aAAYD,KAAWt3B,KAAKuE,MAIhC,IACEvE,KAAK49B,KAAKvG,QAAO,EAAAN,EAAAS,iBAAgBF,IACjC,MAAOv3B,GACPC,KAAKuE,MAAQxE,EAEjB,EAKAi3D,EAAA92D,UAAA4xG,WAAA,WACE,GAAI9xG,KAAKuE,MACP,MAAMvE,KAAKuE,MAGb,OAAIvE,KAAK+xG,OACF/xG,KAAK+xG,MAAM5mD,UACdnrD,KAAK+xG,MAAM16E,OAAOr3B,KAAK49B,KAAKnG,UAGvBz3B,KAAK+xG,MAAMt6E,UAGbz3B,KAAK49B,KAAKnG,QACnB,EAOMu/B,EAAA92D,UAAAu3B,OAAN,0GACE,MAAO,CAAP,EAAOz3B,KAAK8xG,qBAEhB96C,CAAA,CAlEA,GAAap/B,EAAAA,OAAAo/B,sICDb,IAAAp4B,EAAA5H,EAAA,MAGMwI,EACc,qBAAXkC,GAA0BA,EAAO3d,KACpC,SAACmc,GAAkB,OAAAwB,EAAO3d,KAAKmc,EAAO,OAAnB,EACnBtB,EAAAY,SAEN5H,EAAAA,gBAAA,SAAgCjuB,GAE9B,OAAIA,aAAgBm0B,WAAmBn0B,EAEnB,kBAATA,EACF61B,EAAS71B,GAGd81B,YAAYC,OAAO/1B,GACd,IAAIm0B,WACTn0B,EAAKg2B,OACLh2B,EAAKi2B,WACLj2B,EAAKk2B,WAAa/B,WAAWgC,mBAI1B,IAAIhC,WAAWn0B,EACxB,6JC1BA,IAAAg4B,EAAA3K,EAAA,OAASjX,OAAAA,eAAAA,EAAAA,kBAAAA,CAAAI,YAAA,EAAAL,IAAA,kBAAA6hB,EAAAnK,eAAe,IACxB,IAAAkH,EAAA1H,EAAA,OAASjX,OAAAA,eAAAA,EAAAA,cAAAA,CAAAI,YAAA,EAAAL,IAAA,kBAAA4e,EAAAnH,WAAW,IACpB,IAAAqK,EAAA5K,EAAA,OAASjX,OAAAA,eAAAA,EAAAA,aAAAA,CAAAI,YAAA,EAAAL,IAAA,kBAAA8hB,EAAAlK,UAAU,IACnB,IAAAmK,EAAA7K,EAAA,OAAQjX,OAAAA,eAAAA,EAAAA,kBAAAA,CAAAI,YAAA,EAAAL,IAAA,kBAAA+hB,EAAAzJ,eAAe,4GCDvBR,EAAAA,YAAA,SAA4BjuB,GAC1B,MAAoB,kBAATA,EACc,IAAhBA,EAAK/I,OAGa,IAApB+I,EAAKk2B,UACd,yGCRAjI,EAAAA,WAAA,SAA2BkK,GACzB,OAAO,IAAIhE,WAAW,EACb,WAANgE,IAAqB,IACf,SAANA,IAAqB,IACf,MAANA,IAAqB,EAChB,IAANA,GAEJ,8GCNAlK,EAAAA,gBAAA,SAAgCmK,GAC9B,IAAKzf,MAAMyB,KAAM,CAGf,IAFA,IAAMke,EAAe,IAAID,YAAYD,EAAcnhC,QACrC,EACGmhC,EAAcnhC,QAC7BqhC,EAFY,GAEYF,EAFZ,GAId,OAAOE,EAET,OAAOD,YAAYje,KAAKge,EAC1B,+GCZO,MAAMvC,EAAYU,GAAiC,oBAAhBC,YCFnC,SAAkBD,GACrB,OAAO,IAAIC,aAAcC,OAAOF,EACpC,CDAuEG,CAAoBH,GEFlEA,KACrB,MAAMI,EAAQ,GACd,IAAK,IAAIt/B,EAAI,EAAGulB,EAAM2Z,EAAMt/B,OAAQI,EAAIulB,EAAKvlB,IAAK,CAC9C,MAAMgG,EAAQk5B,EAAM5+B,WAAWN,GAC/B,GAAIgG,EAAQ,IACRs5B,EAAM1e,KAAK5a,QAEV,GAAIA,EAAQ,KACbs5B,EAAM1e,KAAM5a,GAAS,EAAK,IAAqB,GAARA,EAAoB,UAE1D,GAAIhG,EAAI,EAAIk/B,EAAMt/B,QAA+B,SAAZ,MAARoG,IAAqE,SAAZ,MAA1Bk5B,EAAM5+B,WAAWN,EAAI,IAAyB,CAC3G,MAAMu/B,EAAgB,QAAoB,KAARv5B,IAAyB,KAA+B,KAAxBk5B,EAAM5+B,aAAaN,IACrFs/B,EAAM1e,KAAM2e,GAAiB,GAAM,IAAcA,GAAiB,GAAM,GAAY,IAAcA,GAAiB,EAAK,GAAY,IAA6B,GAAhBA,EAA4B,IACjL,MAEID,EAAM1e,KAAM5a,GAAS,GAAM,IAAcA,GAAS,EAAK,GAAY,IAAqB,GAARA,EAAoB,IAE5G,CACA,OAAO82B,WAAW/Z,KAAKuc,EAAM,EFhBmEE,CAAWN,GAClGO,EAAUP,GAAiC,oBAAhBQ,YCAjC,SAAgBR,GACnB,OAAO,IAAIQ,YAAY,SAASC,OAAOT,EAC3C,CDFqEU,CAAkBV,GEiBhEA,KACnB,IAAI/8B,EAAU,GACd,IAAK,IAAInC,EAAI,EAAGulB,EAAM2Z,EAAMt/B,OAAQI,EAAIulB,EAAKvlB,IAAK,CAC9C,MAAMk3B,EAAOgI,EAAMl/B,GACnB,GAAIk3B,EAAO,IACP/0B,GAAWzC,OAAOS,aAAa+2B,QAE9B,GAAI,KAAcA,GAAQA,EAAO,IAAY,CAC9C,MAAM2I,EAAWX,IAAQl/B,GACzBmC,GAAWzC,OAAOS,cAAsB,GAAP+2B,IAAmB,EAAiB,GAAX2I,EAC9D,MACK,GAAI,KAAc3I,GAAQA,EAAO,IAAa,CAC/C,MACM4I,EAAU,IADM,CAAC5I,EAAMgI,IAAQl/B,GAAIk/B,IAAQl/B,GAAIk/B,IAAQl/B,IACzBkP,KAAK6wB,GAAcA,EAAUx/B,SAAS,MAAKylB,KAAK,KACpF7jB,GAAW9B,mBAAmBy/B,EAClC,MAEI39B,GAAWzC,OAAOS,cAAsB,GAAP+2B,IAAkB,IAAqB,GAAbgI,IAAQl/B,KAAkB,EAAmB,GAAbk/B,IAAQl/B,GAE3G,CACA,OAAOmC,CAAO,EFrC8E69B,CAASd,uCGDzG,IAAI65F,EAAyB/iG,EAAQ,OAErCjX,OAAOC,eAAe4X,EAAS,aAAc,CAC3C5wB,OAAO,IAET4wB,EAAQ85hB,KAAO95hB,EAAQmzuB,cAAgBnzuB,EAAQm0sB,cAAgBn0sB,EAAQozuB,0BAAuB,EAE9F,IAAIC,EAAWlxoB,EAAuB/iG,EAAQ,QAE1Ck0uB,EAAal0uB,EAAQ,OAmBzBY,EAAQozuB,qBAjBmB,SAA8BnysB,GACvD,IAAI30D,EAUJ,OAPEA,EADoC,YAAlC,EAAI+mwB,EAASv1vB,SAASmjD,GACdA,EAEA,CACRuosB,OAAQvosB,GAIL,CACL50D,KAAMinwB,EAAWC,uBACjBjnwB,QAASA,EAEb,EAcA0zB,EAAQm0sB,cAVY,WAClB,IAAI/prB,EAAQl9B,UAAUlkB,OAAS,QAAsByH,IAAjByc,UAAU,GAAmBA,UAAU,GAAK,EAChF,MAAO,CACL7gB,KAAMinwB,EAAWE,uBACjBlnwB,QAAS,CACP89C,MAAOA,GAGb,EAWApqB,EAAQmzuB,cAPY,SAAuBrmwB,GACzC,MAAO,CACLT,KAAMinwB,EAAWG,uBACjBnnwB,QAASQ,EAEb,EAaAkzB,EAAQ85hB,KATG,SAAc45M,GACvB,MAAO,CACLrnwB,KAAMinwB,EAAWK,aACjBrnwB,QAAS,CACPwtjB,KAAM45M,GAGZ,sCC1DA,IAAIvxoB,EAAyB/iG,EAAQ,OAErCjX,OAAOC,eAAe4X,EAAS,aAAc,CAC3C5wB,OAAO,IAET4wB,EAAQ4zuB,mBAAgB,EAExB,IAAIC,EAAmB1xoB,EAAuB/iG,EAAQ,QAElD00uB,EAAY3xoB,EAAuB/iG,EAAQ,QAE/C,SAAS5S,EAAQC,EAAQC,GAAkB,IAAIC,EAAOxE,OAAOwE,KAAKF,GAAS,GAAItE,OAAOyE,sBAAuB,CAAE,IAAIC,EAAU1E,OAAOyE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQhQ,QAAO,SAAUiQ,GAAO,OAAO3E,OAAO4E,yBAAyBN,EAAQK,GAAKvE,UAAY,KAAIoE,EAAK3C,KAAKgD,MAAML,EAAME,EAAU,CAAE,OAAOF,CAAM,CAEpV,SAASM,EAAcjE,GAAU,IAAK,IAAI5f,EAAI,EAAGA,EAAI8jB,UAAUlkB,OAAQI,IAAK,CAAE,IAAI+jB,EAAyB,MAAhBD,UAAU9jB,GAAa8jB,UAAU9jB,GAAK,CAAC,EAAOA,EAAI,EAAKojB,EAAQrE,OAAOgF,IAAS,GAAMC,SAAQ,SAAUC,IAAO,EAAIwmvB,EAAiB/1vB,SAASkL,EAAQqE,EAAKF,EAAOE,GAAO,IAAelF,OAAOoF,0BAA6BpF,OAAOqF,iBAAiBxE,EAAQb,OAAOoF,0BAA0BJ,IAAmBX,EAAQrE,OAAOgF,IAASC,SAAQ,SAAUC,GAAOlF,OAAOC,eAAeY,EAAQqE,EAAKlF,OAAO4E,yBAAyBI,EAAQE,GAAO,GAAM,CAAE,OAAOrE,CAAQ,CAOniBgX,EAAQ4zuB,cALY,WAClB,IAAI1stB,EAASh6B,UAAUlkB,OAAS,QAAsByH,IAAjByc,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAClF,OAAOD,EAAcA,EAAc,CAAC,EAAG6mvB,EAAUh2vB,SAAUopC,EAC7D,oCClBA/+B,OAAOC,eAAe4X,EAAS,aAAc,CAC3C5wB,OAAO,IAET4wB,EAAQ+zuB,iBAAmB/zuB,EAAQg0uB,eAAiBh0uB,EAAQi0uB,SAAWj0uB,EAAQuxuB,kBAAoBvxuB,EAAQk0uB,YAAcl0uB,EAAQ2zuB,aAAe3zuB,EAAQm0uB,aAAen0uB,EAAQyzuB,uBAAyBzzuB,EAAQwzuB,uBAAyBxzuB,EAAQuzuB,4BAAyB,EAG1QvzuB,EAAQuzuB,uBADqB,yBAG7BvzuB,EAAQwzuB,uBADqB,yBAG7BxzuB,EAAQyzuB,uBADqB,yBAG7BzzuB,EAAQm0uB,aADW,eAGnBn0uB,EAAQ2zuB,aADW,eAGnB3zuB,EAAQk0uB,YADU,sBAGlBl0uB,EAAQuxuB,kBADgB,oBAGxBvxuB,EAAQi0uB,SADO,mBAGfj0uB,EAAQg0uB,eADa,yBAGrBh0uB,EAAQ+zuB,iBADe,+DCvBvB5rvB,OAAOC,eAAe4X,EAAS,aAAc,CAC3C5wB,OAAO,IAET4wB,EAAAA,aAAkB,EAElB,IAKIsiG,EAHgB,CAClBj2H,KAHe+yB,EAAQ,OAGN40uB,gBAGnBh0uB,EAAAA,QAAkBsiG,sCCXlBn6G,OAAOC,eAAe4X,EAAS,aAAc,CAC3C5wB,OAAO,IAET4wB,EAAAA,aAAkB,EAElB,IAKIsiG,EAHkB,CACpBj2H,KAHe+yB,EAAQ,OAGN20uB,kBAGnB/zuB,EAAAA,QAAkBsiG,oCCXlBn6G,OAAOC,eAAe4X,EAAS,aAAc,CAC3C5wB,OAAO,IAET4wB,EAAAA,aAAkB,EAElB,IAAI4M,EAAS,SAAgB+jF,EAAU64oB,GAEjC9gwB,OAAO+kM,sBACT/kM,OAAO+kM,uBAAsB,WAC3B,OAAO98E,EAAS,CACd64oB,OAAQA,GAEZ,IAEA/zuB,YAAW,WACT,OAAOk7F,EAAS,CACd64oB,OAAQA,GAEZ,GAAG,EAEP,EAcAxpuB,EAAAA,QAZe,SAAkB2wF,GACT,qBAAXjoH,QAA0BA,OAAOkd,mBAC1Cld,OAAOkd,iBAAiB,UAAU,WAChC,OAAOgnB,EAAO+jF,GAAU,EAC1B,IACAjoH,OAAOkd,iBAAiB,WAAW,WACjC,OAAOgnB,EAAO+jF,GAAU,EAC1B,IACA/jF,EAAO+jF,EAAUjoH,OAAO8vB,UAAU47uB,QAEtC,sCChCAjsvB,OAAOC,eAAe4X,EAAS,aAAc,CAC3C5wB,OAAO,IAET4wB,EAAAA,aAAkB,EAEJZ,EAAQ,OAetBY,EAAAA,QAbe,SAAkBrzB,EAAOG,GAItC,QAAM,WAAYH,IAMXA,EAAMkoM,QAAU,KAAOloM,EAAMkoM,OAAS,GAC/C,sCClBA,IAAI1yE,EAAyB/iG,EAAQ,OAErCjX,OAAOC,eAAe4X,EAAS,aAAc,CAC3C5wB,OAAO,IAET4wB,EAAQq0uB,aAAeA,EACvBr0uB,EAAAA,QAAkBA,EAAQs0uB,YAAct0uB,EAAQu0uB,gBAAa,EAE7D,IAAIV,EAAmB1xoB,EAAuB/iG,EAAQ,QAElDo1uB,EAA4BryoB,EAAuB/iG,EAAQ,QAE/D,SAAS5S,EAAQC,EAAQC,GAAkB,IAAIC,EAAOxE,OAAOwE,KAAKF,GAAS,GAAItE,OAAOyE,sBAAuB,CAAE,IAAIC,EAAU1E,OAAOyE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQhQ,QAAO,SAAUiQ,GAAO,OAAO3E,OAAO4E,yBAAyBN,EAAQK,GAAKvE,UAAY,KAAIoE,EAAK3C,KAAKgD,MAAML,EAAME,EAAU,CAAE,OAAOF,CAAM,CAEpV,SAASM,EAAcjE,GAAU,IAAK,IAAI5f,EAAI,EAAGA,EAAI8jB,UAAUlkB,OAAQI,IAAK,CAAE,IAAI+jB,EAAyB,MAAhBD,UAAU9jB,GAAa8jB,UAAU9jB,GAAK,CAAC,EAAOA,EAAI,EAAKojB,EAAQrE,OAAOgF,IAAS,GAAMC,SAAQ,SAAUC,IAAO,EAAIwmvB,EAAiB/1vB,SAASkL,EAAQqE,EAAKF,EAAOE,GAAO,IAAelF,OAAOoF,0BAA6BpF,OAAOqF,iBAAiBxE,EAAQb,OAAOoF,0BAA0BJ,IAAmBX,EAAQrE,OAAOgF,IAASC,SAAQ,SAAUC,GAAOlF,OAAOC,eAAeY,EAAQqE,EAAKlF,OAAO4E,yBAAyBI,EAAQE,GAAO,GAAM,CAAE,OAAOrE,CAAQ,CAEniB,SAASqrvB,EAAavowB,EAAU+oM,GAC9BzsM,KAAKI,KAAO,eACZJ,KAAKysM,OAASA,EACdzsM,KAAK0D,SAAWA,CAClB,CAGAuowB,EAAa/rwB,UAAYC,MAAMD,UAE/B,IAAImswB,EAAe,SAAsB74M,GACvC,IAAKA,EACH,OAAO,KAGT,IACE,OAAO9xjB,KAAKC,MAAM6xjB,EACpB,CAAE,MAAOzzjB,GACP,MAAM,IAAII,MAAM,6CAA6CuiB,OAAO8wiB,GACtE,CACF,EAEI84M,EAAkB,SAAyBlypB,GAC7C,IAAI+vZ,EAAc/vZ,EAAI/3G,QAAQyd,IAAI,kBAAmB,EAErD,OAAIqqf,GAAeA,EAAY/ogB,QAAQ,SAAW,EACzCg5G,EAAIlvG,OAAO8iB,KAAKq+uB,GAGlBjypB,EAAIlvG,MACb,EAEIihwB,EAAa,SAAoB9pwB,GACnC,IAAIqE,EAAOrE,GAAW,CAAC,EACnBkqwB,EAAyB7lwB,EAAK,gBAC9B8lwB,EAAuB9lwB,EAAK,gBAG5ByjgB,EAAcoiQ,GAA0BC,GAAwB,mBACpE,OAAO3nvB,EAAcA,EAAc,CAAC,GAHhB,EAAIunvB,EAA0B12vB,SAAShP,EAAM,CAAC,eAAgB,kBAG3B,CAAC,EAAG,CACzD,eAAgByjgB,GAEpB,EAEAvye,EAAQu0uB,WAAaA,EAErB,IAAID,EAAc,SAAqB7nvB,GACrC,IAAIoovB,EAAW,IAAIC,SAOnB,OANA3svB,OAAOwE,KAAKF,GAAQW,SAAQ,SAAUC,GACpClF,OAAOwE,KAAKF,EAAOY,IAAMD,SAAQ,SAAU2nvB,GACzC,IAAIC,EAASvovB,EAAOY,GAAK0nvB,GACzBF,EAAS3lpB,OAAO8lpB,EAAO,GAAIA,EAAO,GACpC,GACF,IACOH,CACT,EAGA70uB,EAAQs0uB,YAAcA,EAiCtBt0uB,EAAAA,QA/Be,SAAkBupI,EAAQu+lB,GACvC,IAAIxltB,EAAMinH,EAAOjnH,IACbs5gB,EAAOryZ,EAAOqyZ,KACdlpjB,GAAU,EAAI8hwB,EAA0B12vB,SAASyrJ,EAAQ,CAAC,MAAO,SACjE9+J,EAAU8pwB,EAAW7hwB,EAAQjI,SAMjC,GAJMiI,EAAQkwB,gBAAgBkyuB,WAAa3svB,OAAO7f,UAAU04B,eAAe9S,KAAKzjB,EAAS,kBAAmBA,EAAQ,gBAAgBwd,cAAc2U,SAAS,yBACzJlqB,EAAQkwB,KAAO0xuB,EAAY5hwB,EAAQkwB,OAGxB,OAATg5hB,QAA0BnrjB,IAATmrjB,EACnB,IACElpjB,EAAQkwB,KAAO94B,KAAKQ,UAAUsxjB,EAChC,CAAE,MAAOzzjB,GACP,OAAOihB,QAAQyB,OAAO1iB,EACxB,CAGF,OAAOiuM,MAAM9zJ,EAAKr1B,EAAcA,EAAc,CAAC,EAAGva,GAAU,CAAC,EAAG,CAC9DjI,QAASA,KACP2rB,MAAK,SAAUosF,GACjB,OAAIA,EAAI9tF,GACCggvB,EAAgBlypB,GAGlBkypB,EAAgBlypB,GAAKpsF,MAAK,SAAUwM,GACzC,MAAM,IAAIyxuB,EAAazxuB,GAAQ,GAAI4/E,EAAIqyF,OACzC,GACF,GACF,sCCxGA,IAAI1yE,EAAyB/iG,EAAQ,OAErCjX,OAAOC,eAAe4X,EAAS,aAAc,CAC3C5wB,OAAO,IAET4wB,EAAAA,aAAkB,EAElB,IAAIi1uB,EAAW9yoB,EAAuB/iG,EAAQ,QAE1C81uB,EAAiB/yoB,EAAuB/iG,EAAQ,QAEhD+1uB,EAAUhzoB,EAAuB/iG,EAAQ,QAEzCg2uB,EAASjzoB,EAAuB/iG,EAAQ,OAExCixuB,EAAWluoB,EAAuB/iG,EAAQ,QAE1Ci2uB,EAAiBlzoB,EAAuB/iG,EAAQ,QAEhDk2uB,EAAmBnzoB,EAAuB/iG,EAAQ,QAElDm2uB,EAAwBpzoB,EAAuB/iG,EAAQ,QAEvDo2uB,EAAoBrzoB,EAAuB/iG,EAAQ,QAEnDq2uB,EAAStzoB,EAAuB/iG,EAAQ,QAExCkjG,EAAW,CACbozoB,WAAW,EAEXx/uB,QAAS++uB,EAASn3vB,QAClB40vB,cAAewC,EAAep3vB,QAC9ByrJ,OAAQ4rmB,EAAQr3vB,QAChBkxC,MAAOomtB,EAAOt3vB,QACd4svB,QAAS2F,EAASvyvB,QAClB63vB,cAAeN,EAAev3vB,QAC9B83vB,gBAAiBN,EAAiBx3vB,QAClC+3vB,qBAAsBN,EAAsBz3vB,QAC5Cg4vB,iBAAkBN,EAAkB13vB,QACpCi4vB,MAAON,EAAO33vB,QACdk4vB,gBAAgB,GAElBh2uB,EAAAA,QAAkBsiG,sCC1ClB,IAAIH,EAAyB/iG,EAAQ,OAErCjX,OAAOC,eAAe4X,EAAS,aAAc,CAC3C5wB,OAAO,IAET4wB,EAAAA,aAAkB,EAElB,IAAI6zuB,EAAmB1xoB,EAAuB/iG,EAAQ,QAElDo1uB,EAA4BryoB,EAAuB/iG,EAAQ,QAE/D,SAAS5S,EAAQC,EAAQC,GAAkB,IAAIC,EAAOxE,OAAOwE,KAAKF,GAAS,GAAItE,OAAOyE,sBAAuB,CAAE,IAAIC,EAAU1E,OAAOyE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQhQ,QAAO,SAAUiQ,GAAO,OAAO3E,OAAO4E,yBAAyBN,EAAQK,GAAKvE,UAAY,KAAIoE,EAAK3C,KAAKgD,MAAML,EAAME,EAAU,CAAE,OAAOF,CAAM,CAiBpVqT,EAAAA,QAbe,SAAkBnzB,GAC/B,IAAIi5vB,EAAUj5vB,EAAMi5vB,QAChBzsuB,GAAO,EAAIm7uB,EAA0B12vB,SAASjR,EAAO,CAAC,YAC1D,MAAO,CACLqb,IAAK49uB,EACL1guB,IAAK,SAAa6wuB,GAChB,MAA+B,qBAAjBA,EAA+B58uB,EARnD,SAAuBrQ,GAAU,IAAK,IAAI5f,EAAI,EAAGA,EAAI8jB,UAAUlkB,OAAQI,IAAK,CAAE,IAAI+jB,EAAyB,MAAhBD,UAAU9jB,GAAa8jB,UAAU9jB,GAAK,CAAC,EAAOA,EAAI,EAAKojB,EAAQrE,OAAOgF,IAAS,GAAMC,SAAQ,SAAUC,IAAO,EAAIwmvB,EAAiB/1vB,SAASkL,EAAQqE,EAAKF,EAAOE,GAAO,IAAelF,OAAOoF,0BAA6BpF,OAAOqF,iBAAiBxE,EAAQb,OAAOoF,0BAA0BJ,IAAmBX,EAAQrE,OAAOgF,IAASC,SAAQ,SAAUC,GAAOlF,OAAOC,eAAeY,EAAQqE,EAAKlF,OAAO4E,yBAAyBI,EAAQE,GAAO,GAAM,CAAE,OAAOrE,CAAQ,CAQzeiE,CAAc,CAChE64uB,QAASmQ,GACR58uB,EACL,EAEJ,sCC1BAlR,OAAOC,eAAe4X,EAAS,aAAc,CAC3C5wB,OAAO,IAET4wB,EAAAA,aAAkB,EAElB,IAGIsiG,EAHgBljG,EAAQ,OAGC82uB,aAC7Bl2uB,EAAAA,QAAkBsiG,sCCTlBn6G,OAAOC,eAAe4X,EAAS,aAAc,CAC3C5wB,OAAO,IAET4wB,EAAAA,aAAkB,EAElB,IAEIsiG,EAFgBljG,EAAQ,OAEC+2uB,cAC7Bn2uB,EAAAA,QAAkBsiG,sCCRlB,IAAIH,EAAyB/iG,EAAQ,OAErCjX,OAAOC,eAAe4X,EAAS,aAAc,CAC3C5wB,OAAO,IAET4wB,EAAAA,aAAkB,EAElB,IAAIo2uB,EAAYj0oB,EAAuB/iG,EAAQ,QAE3Ci3uB,EAAsBl0oB,EAAuB/iG,EAAQ,MAkBzD,IAAIkjG,EAAW,CACb/vE,QAhBF,SAAiB2tD,EAAOnnG,EAAMxJ,GAC5B,MAAO,GAAGub,QAAO,EAAIurvB,EAAoBv4vB,SAASoiG,GAAQ,CAACnnG,GAC7D,EAeE63nB,QAbF,SAAiB1whB,EAAOnnG,EAAMxJ,GAI5B,OAHa,EAAI6mwB,EAAUt4vB,SAASoiG,GAClB1xF,MAAM,EAG1B,EASEmhG,KAPF,SAAczP,EAAOnnG,EAAMxJ,GACzB,OAAO2wG,EAAM,EACf,GAOAlgF,EAAAA,QAAkBsiG,mCChClBn6G,OAAOC,eAAe4X,EAAS,aAAc,CAC3C5wB,OAAO,IAET4wB,EAAAA,aAAkB,EAClB,IAAIs2uB,EAAgB,CAAC,IACrB,IACA,KACA,IACA,IACA,KACA,IACA,IACA,KACA,MAOAt2uB,EAAAA,QAJe,SAAkBlzB,EAAQ89vB,GACvC,OAAO0L,EAAc1L,IAAY,IACnC,sCClBA,IAAIzooB,EAAyB/iG,EAAQ,OAErCjX,OAAOC,eAAe4X,EAAS,aAAc,CAC3C5wB,OAAO,IAET4wB,EAAQu2uB,cAAgBv2uB,EAAQ8luB,aAAU,EAE1C,IAAIuN,EAAWlxoB,EAAuB/iG,EAAQ,QAE1Co3uB,EAASp3uB,EAAQ,OAEjBq3uB,EAAcr3uB,EAAQ,OAEtBs3uB,EAAWt3uB,EAAQ,OAEnBu3uB,EAAUv3uB,EAAQ,OAElBw3uB,EAAWx3uB,EAAQ,OAEnBy3uB,EAAwB10oB,EAAuB/iG,EAAQ,OAIvD03uB,EAAuB,SAA8B5vtB,EAAQ75B,GAC/D,IAAI0pvB,EAAc7vtB,EAAO75B,GAGzB,IAFuC,OAAhB0pvB,GAA+D,YAAvC,EAAI1D,EAASv1vB,SAASi5vB,IAAyD,kBAArBA,EAAY1qwB,MAA0C,KAArB0qwB,EAAY1qwB,OAE9HK,QAAQioB,KAAM,CACpC,IAAIghB,EAAM,GAAG7qB,OAAOuC,EAAK,oCAAsC,+DAAiE,yBAAyBvC,OAAOhhB,KAAKQ,UAAUyswB,EAAa,KAAM,IAClMrqwB,QAAQioB,KAAKghB,EACf,CACF,EA+CA3V,EAAQ8luB,QA7CM,WACZ,IAAIkR,EAAa9pvB,UAAUlkB,OAAS,QAAsByH,IAAjByc,UAAU,GAAmBA,UAAU,GAAK,CAAC,EACtF,OAAO,SAAUk7K,GACf,OAAO,SAAUx7L,EAAS26L,GACxB,IAAI0vkB,EAAW/pvB,UAAUlkB,OAAS,QAAsByH,IAAjByc,UAAU,GAAmBA,UAAU,GAAK,SAAU3Z,GAC3F,OAAOA,CACT,EACI2zC,GAAS,EAAIyvtB,EAAQ/C,eAAeoD,GACxCF,EAAqB5vtB,EAAQ,iBAC7B4vtB,EAAqB5vtB,EAAQ,mBAE7BA,EAAOgwtB,qBAAuBhwtB,EAAO8utB,eAAiBa,EAAsB/4vB,QAAQq5vB,aAAeN,EAAsB/4vB,QAAQs5vB,uBAC1HlwtB,EAAO8utB,eAGd,IAAIqB,GAAiB,EAAIX,EAASY,gBAAgB1qwB,EAASs6C,GAEvDqwtB,GAAoB,EAAIf,EAAO3ukB,kBAAiB,EAAI4ukB,EAAYe,yBAAyBtwtB,IAIzF8poB,GAFkB9poB,EAAOhxB,SAAWgxB,EAAOwutB,WAAaxutB,EAAO2utB,sBAAuB,EAAIW,EAAO1hlB,SAASyilB,EAAmBrwtB,EAAO2utB,wBAA0B0B,GAEtInvkB,EAAhBqvkB,CAA6BJ,EAAgB9vkB,EAAgB0vkB,GACrES,EAAqB1mF,EAAM2mF,eAAe/uwB,KAAKoorB,GAkBnD,OAhBAA,EAAM2mF,eAAiB,SAAwBC,GAC7C,OAAOF,GAAmB,EAAIhB,EAASY,gBAAgBM,EAAa1wtB,GACtE,EAGIA,EAAOhxB,SACTgxB,EAAOhxB,QAAQ86pB,EAAO9poB,EAAO0rtB,eAAgB1rtB,EAAOy8sB,iBAIlDz8sB,EAAOwrtB,eACTxrtB,EAAOwrtB,eAAc,SAAUlJ,GAC7Bx4E,EAAM5krB,UAAS,EAAIwqwB,EAASxD,sBAAsB5J,GACpD,IAGKx4E,CACT,CACF,CACF,EAkDAhxpB,EAAQu2uB,cA9CY,WAClB,IAAIS,EAAa9pvB,UAAUlkB,OAAS,QAAsByH,IAAjByc,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAClFg6B,GAAS,EAAIyvtB,EAAQ/C,eAAeoD,GAExC9vtB,EAAOgwtB,qBAAuBhwtB,EAAO8utB,eAAiBa,EAAsB/4vB,QAAQq5vB,aAAeN,EAAsB/4vB,QAAQs5vB,uBAC1HlwtB,EAAO8utB,eACdc,EAAqB5vtB,EAAQ,iBAC7B4vtB,EAAqB5vtB,EAAQ,mBA8B7B,MAAO,CACLisE,YAAY,EAAIsjpB,EAAYe,yBAAyBtwtB,GACrDowtB,eAAgB,SAAwB1qwB,GACtC,OAAO,EAAI8pwB,EAASY,gBAAgB1qwB,EAASs6C,EAC/C,EACA2wtB,aAjCiB,SAAsB1pvB,GACvC,OAAO,SAAUvhB,EAAS26L,EAAgB0vkB,GAExC,IAEIjmF,GAFc9poB,EAAOhxB,SAAWgxB,EAAOwutB,WAAaxutB,EAAO2utB,qBAAuB3utB,EAAO2utB,sBAAP3utB,CAA8B/4B,GAAQA,GAEpGvhB,EAAS26L,EAAgB0vkB,GAC7CS,EAAqB1mF,EAAM2mF,eAAe/uwB,KAAKoorB,GAkBnD,OAhBAA,EAAM2mF,eAAiB,SAAwBC,GAC7C,OAAOF,GAAmB,EAAIhB,EAASY,gBAAgBM,EAAa1wtB,GACtE,EAGIA,EAAOhxB,SACTgxB,EAAOhxB,QAAQ86pB,EAAO9poB,EAAO0rtB,eAAgB1rtB,EAAOy8sB,iBAIlDz8sB,EAAOwrtB,eACTxrtB,EAAOwrtB,eAAc,SAAUlJ,GAC7Bx4E,EAAM5krB,UAAS,EAAIwqwB,EAASxD,sBAAsB5J,GACpD,IAGKx4E,CACT,CACF,EASF,sCC5HA,IAAI7ujB,EAAyB/iG,EAAQ,OAErCjX,OAAOC,eAAe4X,EAAS,aAAc,CAC3C5wB,OAAO,IAET4wB,EAAQw3uB,6BAA0B,EAElC,IAAIlE,EAAal0uB,EAAQ,OAErBw3uB,EAAWx3uB,EAAQ,OAEnB04uB,EAAQ31oB,EAAuB/iG,EAAQ,QAmD3CY,EAAQw3uB,wBA1CsB,SAAiCtwtB,GAC7D,OAAO,SAAU8poB,GACf,OAAO,SAAU7iqB,GACf,OAAO,SAAUrhB,GAEf,IACIygM,EADAjgM,EAAS6gB,EAAKrhB,GAGdD,EAAQmkrB,EAAMrrf,WACdmgkB,EAAU5+sB,EAAO4utB,iBAAiBjpwB,GAAOqb,IACzC3Y,EAAU,CACZu2vB,QAASA,GAEPiS,EAAgB7wtB,EAAO6utB,MAAMpmpB,KAAKm2oB,EAAQgE,OAAQh9vB,EAAQyC,GAE1DzC,EAAO27L,MAAQ37L,EAAO27L,KAAKq9jB,UAE7Bv4jB,GAAUyqkB,EADW9wtB,EAAOgwtB,qBAAqBc,gBACxBlS,EAAQmS,kBAmBnC,OAdIF,IAAkBjS,EAAQhsM,OAASgsM,EAAQoS,gBAAkBpS,EAAQ0D,SACvE,EAAIsO,EAAMh6vB,SAASi6vB,EAAe/mF,EAAM5krB,SAAU86C,EAAQ4+sB,EAAQn6sB,YAGhE7+C,EAAOT,OAASinwB,EAAWE,wBAjC3B,WACV,IAAI9poB,EAAUx8G,UAAUlkB,OAAS,QAAsByH,IAAjByc,UAAU,GAAmBA,UAAU,GAAK,EAClF,OAAO,IAAI9D,SAAQ,SAAU4B,GAC3B,OAAOyK,WAAWzK,EAAS0+G,EAC7B,GACF,CA6BUmxE,CAAM/tM,EAAOR,QAAQ89C,OAAOh0B,MAAK,WAC/B46pB,EAAM5krB,UAAS,EAAIwqwB,EAASzD,eAAe4E,GAC7C,IAGEjrwB,EAAOT,OAASinwB,EAAWa,cAAgB4D,IAAkBjS,EAAQhsM,OACvE,EAAIg+M,EAAMh6vB,SAASi6vB,EAAe/mF,EAAM5krB,SAAU86C,EAAQ4+sB,EAAQn6sB,YAG7D4hJ,GAAWjgM,CACpB,CACF,CACF,CACF,mCC5DA6a,OAAOC,eAAe4X,EAAS,aAAc,CAC3C5wB,OAAO,IAET4wB,EAAAA,aAAkB,EAClB,IAAIm4uB,EAAgB,CAAC,EA6BrB,IAUI71oB,EAAW,CACb60oB,aAXiB,CACjBa,eA5BF,SAAwBrpb,GACtB,OAAO,IAAIvlU,SAAQ,SAAU4B,EAASH,GACpCstvB,EAAcxpb,GAAe,CAC3B3jU,QAASA,EACTH,OAAQA,EAEZ,GACF,EAsBEutvB,cApBF,SAAuBzpb,EAAav/U,GAClC,IAAI2hvB,EAAeonB,EAAcxpb,GAE7Boia,IACFA,EAAa/luB,QAAQ5b,UACd+owB,EAAcxpb,GAEzB,EAcE0pb,aAZF,SAAsB1pb,EAAahiV,GACjC,IAAIokvB,EAAeonB,EAAcxpb,GAE7Boia,IACFA,EAAalmuB,OAAOle,UACbwrwB,EAAcxpb,GAEzB,GAcEyob,gBAPoB,CACpBY,eAAgB,WAA2B,EAC3CI,cAAe,WAA0B,EACzCC,aAAc,WAAyB,IAMzCr4uB,EAAAA,QAAkBsiG,sCC/ClB,IAAIH,EAAyB/iG,EAAQ,OAErCjX,OAAOC,eAAe4X,EAAS,aAAc,CAC3C5wB,OAAO,IAET4wB,EAAAA,aAAkB,EAElB,IAAIs4uB,EAAen2oB,EAAuB/iG,EAAQ,QAE9Cm5uB,EAAqBp2oB,EAAuB/iG,EAAQ,QAEpDy0uB,EAAmB1xoB,EAAuB/iG,EAAQ,QAElDw3uB,EAAWx3uB,EAAQ,OAEnBk0uB,EAAal0uB,EAAQ,OAEzB,SAAS5S,EAAQC,EAAQC,GAAkB,IAAIC,EAAOxE,OAAOwE,KAAKF,GAAS,GAAItE,OAAOyE,sBAAuB,CAAE,IAAIC,EAAU1E,OAAOyE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQhQ,QAAO,SAAUiQ,GAAO,OAAO3E,OAAO4E,yBAAyBN,EAAQK,GAAKvE,UAAY,KAAIoE,EAAK3C,KAAKgD,MAAML,EAAME,EAAU,CAAE,OAAOF,CAAM,CAEpV,SAASM,EAAcjE,GAAU,IAAK,IAAI5f,EAAI,EAAGA,EAAI8jB,UAAUlkB,OAAQI,IAAK,CAAE,IAAI+jB,EAAyB,MAAhBD,UAAU9jB,GAAa8jB,UAAU9jB,GAAK,CAAC,EAAOA,EAAI,EAAKojB,EAAQrE,OAAOgF,IAAS,GAAMC,SAAQ,SAAUC,IAAO,EAAIwmvB,EAAiB/1vB,SAASkL,EAAQqE,EAAKF,EAAOE,GAAO,IAAelF,OAAOoF,0BAA6BpF,OAAOqF,iBAAiBxE,EAAQb,OAAOoF,0BAA0BJ,IAAmBX,EAAQrE,OAAOgF,IAASC,SAAQ,SAAUC,GAAOlF,OAAOC,eAAeY,EAAQqE,EAAKlF,OAAO4E,yBAAyBI,EAAQE,GAAO,GAAM,CAAE,OAAOrE,CAAQ,CAEniB,IAAIugd,EAAW,SAAkBz8d,EAAQQ,EAAQyqwB,EAAe7wtB,GAC9D,IAAIsxtB,EAAwBtxtB,EAAOgwtB,qBAC/BkB,EAAgBI,EAAsBJ,cACtCC,EAAeG,EAAsBH,aAQzC,OANI/qwB,EAAO22H,QACTm0oB,EAAcL,EAActvkB,KAAKkmJ,YAAarhV,EAAOhB,SAC5CgB,EAAOhB,SAChB+rwB,EAAaN,EAActvkB,KAAKkmJ,YAAarhV,EAAOhB,SAG/C2gB,EAAcA,EAAc,CAAC,EAAGngB,GAAS,CAAC,EAAG,CAClDR,QAASgB,EAAOhB,QAChBm8L,KAAMx7K,EAAcA,EAAc,CAAC,EAAGngB,EAAO27L,MAAO,CAAC,EAAG,CACtDxkE,QAAS32H,EAAO22H,QAChBg8D,WAAW,KAGjB,EAiGI39D,EApFO,SAAcx1H,EAAQV,EAAU86C,GACzC,IAAI0jtB,EAAU19uB,UAAUlkB,OAAS,QAAsByH,IAAjByc,UAAU,GAAmBA,UAAU,GAAK,EAC9EiV,EAAWr1B,EAAO27L,KAAKq9jB,QAE3B,OADA15vB,GAAS,EAAIwqwB,EAAS98M,OAAM,IACrB5ygB,EAAOqiH,OAAOpnI,EAASonI,OAAQz8J,GAAQspB,MAAK,SAAU9oB,GAC3D,IAAImrwB,EAAet2uB,EAASqtuB,QAAUvivB,EAAcA,EAAc,CAAC,EAAGi6B,EAAOyutB,eAAgB,CAAC,EAAG,CAC/FltkB,KAAMx7K,EAAcA,EAAc,CAAC,EAAGi6B,EAAOyutB,cAAcltkB,MAAO,CAAC,EAAG,CACpEsvkB,cAAejrwB,MAInB,IACE,OAAOV,EAASm9d,EAASkvS,EAAc,CACrCx0oB,SAAS,EACT33H,QAASgB,GACRR,EAAQo6C,GACb,CAAE,MAAOv6C,GACP,OAAOP,EA5BO,SAAuBO,GACzC,MAAO,CACLN,KAAMinwB,EAAWW,SACjBxrkB,KAAM,CACJ97L,MAAOA,EACPs3H,SAAS,EACTg8D,WAAW,GAGjB,CAmBsBy4kB,CAAc/rwB,GAChC,CACF,IAAG+pB,MAAoB,WACrB,IAAI5nB,GAAO,EAAIypwB,EAAmBz6vB,SAAuBw6vB,EAAax6vB,QAAQ66vB,MAAK,SAASC,EAAQjswB,GAClG,IAAIkswB,EAAgBC,EAAa1utB,EACjC,OAAOkutB,EAAax6vB,QAAQssI,MAAK,SAAkBo0jB,GACjD,OACE,OAAQA,EAAS9ulB,KAAO8ulB,EAASrwrB,MAC/B,KAAK,EAUH,OATA0qvB,EAAiB12uB,EAASstuB,UAAYxivB,EAAcA,EAAc,CAAC,EAAGi6B,EAAO0utB,iBAAkB,CAAC,EAAG,CACjGntkB,KAAMx7K,EAAcA,EAAc,CAAC,EAAGi6B,EAAO0utB,gBAAgBntkB,MAAO,CAAC,EAAG,CACtEsvkB,cAAejrwB,MAInBgswB,GAAc,EACdt6D,EAAS9ulB,KAAO,EAChB8ulB,EAASrwrB,KAAO,EACT+4B,EAAOwjtB,QAAQ/9vB,EAAOG,EAAQ89vB,GAEvC,KAAK,EACHkO,EAAct6D,EAASr9rB,KACvBq9rB,EAASrwrB,KAAO,GAChB,MAEF,KAAK,EACHqwrB,EAAS9ulB,KAAO,EAChB8ulB,EAAStsH,GAAKssH,EAAgB,MAAE,GAChC9xsB,QAAQioB,KAAK6prB,EAAStsH,IAExB,KAAK,GACH,GAAI4mL,EAAa,CACft6D,EAASrwrB,KAAO,GAChB,KACF,CAIA,GAAe,OAFfi8B,EAAQlD,EAAO8H,MAAMliD,EAAQ89vB,IAEP,CACpBpsD,EAASrwrB,KAAO,GAChB,KACF,CAEA,OAAOqwrB,EAASu6D,OAAO,SAAU3swB,GAAS,EAAIwqwB,EAASziC,eAAe/prB,KAExE,KAAK,GACH,OAAOo0pB,EAASu6D,OAAO,SAAU3swB,EAASm9d,EAASsvS,EAAgB,CACjE50oB,SAAS,EACT33H,QAASK,GACRG,EAAQo6C,KAEb,KAAK,GACL,IAAK,MACH,OAAOs3pB,EAASz7pB,OAGxB,GAAG61tB,EAAS,KAAM,CAAC,CAAC,EAAG,IACzB,KAEA,OAAO,SAAUt9O,GACf,OAAOxshB,EAAKke,MAAM5kB,KAAM8kB,UAC1B,CACF,CA5DuB,IA4DlB8rvB,SAAQ,WACX,OAAO5swB,GAAS,EAAIwqwB,EAAS98M,OAAM,GACrC,GACF,EAGA95hB,EAAAA,QAAkBsiG,sCCzIlB,IAAIH,EAAyB/iG,EAAQ,OAErCjX,OAAOC,eAAe4X,EAAS,aAAc,CAC3C5wB,OAAO,IAET4wB,EAAQs3uB,eAAiBt3uB,EAAQi5uB,oBAAsBj5uB,EAAQtxB,kBAAe,EAE9E,IAAImlwB,EAAmB1xoB,EAAuB/iG,EAAQ,QAElDk0uB,EAAal0uB,EAAQ,OAEzB,SAAS5S,EAAQC,EAAQC,GAAkB,IAAIC,EAAOxE,OAAOwE,KAAKF,GAAS,GAAItE,OAAOyE,sBAAuB,CAAE,IAAIC,EAAU1E,OAAOyE,sBAAsBH,GAAaC,IAAgBG,EAAUA,EAAQhQ,QAAO,SAAUiQ,GAAO,OAAO3E,OAAO4E,yBAAyBN,EAAQK,GAAKvE,UAAY,KAAIoE,EAAK3C,KAAKgD,MAAML,EAAME,EAAU,CAAE,OAAOF,CAAM,CAEpV,SAASM,EAAcjE,GAAU,IAAK,IAAI5f,EAAI,EAAGA,EAAI8jB,UAAUlkB,OAAQI,IAAK,CAAE,IAAI+jB,EAAyB,MAAhBD,UAAU9jB,GAAa8jB,UAAU9jB,GAAK,CAAC,EAAOA,EAAI,EAAKojB,EAAQrE,OAAOgF,IAAS,GAAMC,SAAQ,SAAUC,IAAO,EAAIwmvB,EAAiB/1vB,SAASkL,EAAQqE,EAAKF,EAAOE,GAAO,IAAelF,OAAOoF,0BAA6BpF,OAAOqF,iBAAiBxE,EAAQb,OAAOoF,0BAA0BJ,IAAmBX,EAAQrE,OAAOgF,IAASC,SAAQ,SAAUC,GAAOlF,OAAOC,eAAeY,EAAQqE,EAAKlF,OAAO4E,yBAAyBI,EAAQE,GAAO,GAAM,CAAE,OAAOrE,CAAQ,CAEniB,IAAIta,EAAe,CACjBorjB,MAAM,EACNm+M,gBAAiB,EACjBzO,QAAQ,EACRM,OAAQ,GACRn+sB,WAAY,EACZustB,gBAAgB,EAChBgB,QAAS,CACPC,sBAAuB,KACvBC,MAAO,SAGXp5uB,EAAQtxB,aAAeA,EAEvB,IAAIuqwB,EAAsB,SAA6BroI,EAASr+kB,GAC9D,OAAO,WACL,IAAI1lD,EAAQqgB,UAAUlkB,OAAS,QAAsByH,IAAjByc,UAAU,GAAmBA,UAAU,GAAKxe,EAC5E5B,EAASogB,UAAUlkB,OAAS,EAAIkkB,UAAU,QAAKzc,EAGnD,GAAI3D,EAAOT,OAASinwB,EAAWC,yBAA2BzmwB,EAAO27L,KAC/D,OAAOx7K,EAAcA,EAAc,CAAC,EAAGpgB,GAAQ,CAAC,EAAG,CACjD28vB,OAAQ18vB,EAAOR,QAAQk9vB,OACvB0P,QAASpswB,EAAOR,QAAQ4swB,UAI5B,GAAIpswB,EAAOT,OAASinwB,EAAW/B,mBAAqBzkwB,EAAOR,QACzD,OAAO2gB,EAAcA,EAAcA,EAAc,CAAC,EAAGpgB,GAAQC,EAAOR,QAAQw5vB,SAAW,CAAC,GAAI,CAAC,EAAG,CAC9F0D,OAAQ38vB,EAAM28vB,OACd0P,QAASrswB,EAAMqswB,QACfhB,eAAgBxpwB,EAAawpwB,eAC7BvstB,WAAYj9C,EAAai9C,WACzBmugB,KAAMprjB,EAAaorjB,OAIvB,GAAIhtjB,EAAOT,OAASinwB,EAAWE,uBAC7B,OAAOvmvB,EAAcA,EAAc,CAAC,EAAGpgB,GAAQ,CAAC,EAAG,CACjDqrwB,gBAAgB,EAChBvstB,WAAY9+C,EAAM8+C,WAAa,IAInC,GAAI7+C,EAAOT,OAASinwB,EAAWG,uBAC7B,OAAOxmvB,EAAcA,EAAc,CAAC,EAAGpgB,GAAQ,CAAC,EAAG,CACjDqrwB,gBAAgB,IAIpB,GAAIprwB,EAAOT,OAASinwB,EAAWK,eAAiB7mwB,EAAO27L,MAAQ37L,EAAOR,SAA0C,mBAAxBQ,EAAOR,QAAQwtjB,KACrG,OAAO7siB,EAAcA,EAAc,CAAC,EAAGpgB,GAAQ,CAAC,EAAG,CACjDitjB,KAAMhtjB,EAAOR,QAAQwtjB,OAKzB,GAAIhtjB,EAAO27L,MAAQ37L,EAAO27L,KAAKq9jB,QAAS,CACtC,IAAIn3a,EAAc9hV,EAAMorwB,gBAAkB,EAEtCoB,EAAUpsvB,EAAcA,EAAc,CAAC,EAAGngB,GAAS,CAAC,EAAG,CACzD27L,KAAMx7K,EAAcA,EAAc,CAAC,EAAGngB,EAAO27L,MAAO,CAAC,EAAG,CACtDkmJ,YAAaA,MAIbm3a,EAAUj5vB,EACd,OAAOogB,EAAcA,EAAc,CAAC,EAAGpgB,GAAQ,CAAC,EAAG,CACjDorwB,gBAAiBtpb,EACjBm7a,OAAQv3sB,EAAQuzsB,EAAQgE,OAAQuP,EAAS,CACvCvT,QAASA,KAGf,CAGA,GAAIh5vB,EAAO27L,OAAkC,IAA1B37L,EAAO27L,KAAKxI,UAAoB,CACjD,IAAIq5kB,EAAWzswB,EACf,OAAOogB,EAAcA,EAAc,CAAC,EAAGpgB,GAAQ,CAAC,EAAG,CACjDi9vB,OAAQl5H,EAAQ0oI,EAASxP,OAAQh9vB,EAAQ,CACvCg5vB,QAASwT,IAEX3ttB,WAAY,GAEhB,CAEA,OAAI7+C,EAAOT,OAASinwB,EAAWY,YACtBjnvB,EAAcA,EAAc,CAAC,EAAGve,GAAe,CAAC,EAAG,CACxD86vB,OAAQ38vB,EAAM28vB,OACd0P,QAASrswB,EAAMqswB,UAIZrswB,CACT,CACF,EAEAmzB,EAAQi5uB,oBAAsBA,EAoB9Bj5uB,EAAQs3uB,eAlBa,SAAwB1qwB,EAASs6C,GACpD,IAAIqytB,EAAgBrytB,EAAO6utB,MACvBnlI,EAAU2oI,EAAc3oI,QACxBr+kB,EAAUgntB,EAAchntB,QACxBintB,EAAiBP,EAAoBroI,EAASr+kB,GAClD,OAAO,SAAU1lD,EAAOC,GACtB,IAAImpwB,EACAvE,EAOJ,MALqB,qBAAV7kwB,IACTopwB,EAAe/utB,EAAO4utB,iBAAiBjpwB,GAAOqb,IAC9CwpvB,EAAYxqtB,EAAO4utB,iBAAiBjpwB,GAAOu4B,OAGtC8hB,EAAO4utB,iBAAiBlpwB,EAAQ8kwB,EAAW5kwB,IAASs4B,IAAIo0uB,EAAevD,EAAcnpwB,GAC9F,CACF,uSCjIY2swB,aCHJ9vwB,EAAAwe,OAAA7f,UAAAqB,SAKF,SAAUqyuB,EAAa5suB,GAC3B,OAAO6suB,EAAgB7suB,EAAO,IAAIqY,IACpC,CAEA,SAASw0tB,EAAmBhkoB,EAAQikoB,GAClC,OAAQvyuB,EAASukB,KAAK+pF,IACtB,IAAK,iBACH,GAAIikoB,EAAKh3sB,IAAI+yE,GAAM,OAAOikoB,EAAKh0tB,IAAI+vF,GACnC,IAAMkkoB,EAAmBlkoB,EAAYzpF,MAAM,GAK3C,OAJA0ttB,EAAK92sB,IAAI6yE,EAAKkkoB,GACdA,EAAK/utB,SAAQ,SAAUy8D,EAAOzgF,GAC5B+yuB,EAAK/yuB,GAAK6yuB,EAAgBpypB,EAAOqypB,EACnC,IACOC,EAGT,IAAK,kBACH,GAAID,EAAKh3sB,IAAI+yE,GAAM,OAAOikoB,EAAKh0tB,IAAI+vF,GAGnC,IAAMmkoB,EAAOj0tB,OAAOgZ,OAAOhZ,OAAO67K,eAAe/rF,IAKjD,OAJAikoB,EAAK92sB,IAAI6yE,EAAKmkoB,GACdj0tB,OAAOwE,KAAKsrF,GAAK7qF,SAAQ,SAAAC,GACvB+utB,EAAK/utB,GAAO4utB,EAAiBhkoB,EAAY5qF,GAAM6utB,EACjD,IACOE,EAGT,QACE,OAAOnkoB,EAEX,CCjCM,SAAUotf,EAAQl8lB,EAAQy3B,GAE9B,GAAIz3B,IAAMy3B,EACR,OAAO,EAGT,GAAIz3B,aAAauC,MAAQk1B,aAAal1B,KACpC,OAAOvC,EAAEu0C,YAAc9c,EAAE8c,UAI3B,GACO,MAALv0C,GACa,kBAANA,GACF,MAALy3B,GACa,kBAANA,EACP,CAGA,IAAK,IAAMvT,KAAOlkB,EAChB,GAAIgf,OAAO7f,UAAU04B,eAAe9S,KAAK/kB,EAAGkkB,GAAM,CAChD,IAAKlF,OAAO7f,UAAU04B,eAAe9S,KAAK0S,EAAGvT,GAC3C,OAAO,EAET,IAAKg4kB,EAAQl8lB,EAAEkkB,GAAMuT,EAAEvT,IACrB,OAAO,EAKb,IAAK,IAAMA,KAAOuT,EAChB,GACEzY,OAAO7f,UAAU04B,eAAe9S,KAAK0S,EAAGvT,KACvClF,OAAO7f,UAAU04B,eAAe9S,KAAK/kB,EAAGkkB,GAEzC,OAAO,EAIX,OAAO,EAGT,OAAO,CACT,CC5CM,SAAUovtB,EAAsB50tB,GACpC,IACE,OAAOA,IACP,MAAO1f,GACHuE,QAAQC,OACVD,QAAQC,MAAMxE,GAGpB,CAEM,SAAUu0uB,EAAsBpvuB,GACpC,OAAOA,EAAO8U,QAAU9U,EAAO8U,OAAOpZ,MACxC,CHqCM,SAAU0wwB,EACdC,GAEA,OAAOA,EAAgB,CACzB,EApDA,SAAYF,GAMVA,EAAAA,EAAA,qBAMAA,EAAAA,EAAA,+BAMAA,EAAAA,EAAA,yBAMAA,EAAAA,EAAA,qBAOAA,EAAAA,EAAA,eAKAA,EAAAA,EAAA,iBAKAA,EAAAA,EAAA,gBACD,CA1CD,CAAYA,IAAAA,EAAa,2WIOzBrsO,EAAA,SAAAjnW,GAAA,SAAAinW,kDAQA,QARmCnsgB,EAAAmsgB,EAAAjnW,GAC1BinW,EAAA9kiB,UAACsxwB,EAAAA,GAAR,WACE,OAAO,IACT,EAEOxsO,EAAA9kiB,UAAC,gBAAR,WACE,OAAO,IACT,EACF8kiB,CAAA,CARA,CAAmCysO,EAAAA,+UCAnC,ICgBYC,EDKZ5oB,EAAA,SAAA/qjB,GAaE,SAAA+qjB,EAAY1nuB,OACVzH,EAAAyH,EAAAzH,cACAD,EAAA0H,EAAA1H,aACAqvuB,EAAA3nuB,EAAA2nuB,aACAC,EAAA5nuB,EAAA4nuB,UAJF7luB,EAWE46K,EAAAj4K,KAAA,KAAMijuB,IAAa,YACnB5luB,EAAKxJ,cAAgBA,GAAiB,GACtCwJ,EAAKzJ,aAAeA,GAAgB,KAKlCyJ,EAAKljB,QAHF8ovB,GAjDoB,SAAC1kvB,GAC5B,IAAIpE,EAAU,GAiBd,OAfIqiB,MAAMC,QAAQle,EAAIsV,gBAA+C,IAA7BtV,EAAIsV,cAAc/Y,QACxDyD,EAAIsV,cAAcqL,SAAQ,SAAC2svB,GACzB,IAAM5oB,EAAe4oB,EACjBA,EAAa1xwB,QACb,2BACJA,GAAW,kBAAkB8ovB,EAAY,IAC3C,IAGE1kvB,EAAIqV,eACNzZ,GAAW,kBAAoBoE,EAAIqV,aAAazZ,QAAU,MAI5DA,EAAUA,EAAQU,QAAQ,MAAO,GAEnC,CA+BqBixwB,CAAqBzuvB,GAKtCA,EAAK6luB,UAAYA,EAIhB7luB,EAAauV,UAAYowtB,EAAY5ovB,WACxC,CACF,OAxCiC24B,EAAAiwtB,EAAA/qjB,GAwCjC+qjB,CAAA,CAxCA,CAAiC3ovB,QCLjC,SAAYuxwB,GACVA,EAAAA,EAAA,mBACAA,EAAAA,EAAA,qBACAA,EAAAA,EAAA,cACD,CAJD,CAAYA,IAAAA,EAAS,qiBCgCrBG,EAAA,SAAA9zkB,GAwBE,SAAA8zkB,EAAYzwvB,OACV0wvB,EAAA1wvB,EAAA0wvB,UACAxnwB,EAAA8W,EAAA9W,QACA+2B,EAAAjgB,EAAA2wvB,gBAAAA,OAAA,IAAA1wuB,GAAAA,EAHFle,EASE46K,EAAAj4K,KAAA,MAAM,SAAC69hB,GACL,OAAAxgiB,EAAK6uvB,YAAYruN,EAAjB,KACD,YAGDxgiB,EAAK8uvB,oBAAqB,EAC1B9uvB,EAAK+uvB,YAAa,EAGlB/uvB,EAAK7Y,QAAUA,EACf6Y,EAAKg2sB,UAAY7utB,EAAQ6utB,WAAc,GACvCh2sB,EAAKgvvB,QAAUL,EAAUtQ,aAAa4Q,kBACtCjvvB,EAAK4uvB,gBAAkBA,EAGvB5uvB,EAAK2uvB,UAAYA,EACjB3uvB,EAAKq+uB,aAAesQ,EAAUtQ,aAG9Br+uB,EAAKyotB,UAAY,GACjBzotB,EAAKkvvB,oBAAsB,IAC7B,CAihBF,OApkBUx5uB,EAAAg5uB,EAAA9zkB,GAqDD8zkB,EAAA3xwB,UAAAgF,OAAP,WACE,IAAM+8a,EAAO,KACb,OAAO,IAAIjha,SAAQ,SAAC4B,EAASH,GAC3B,IAAIkmuB,EACEhlM,EAA+C,CACnD59hB,KAAI,SAAC7gB,GACH0d,EAAQ1d,GAYH+8a,EAAK2pT,UAAU5jtB,MAAK,SAAAm5uB,GAAO,OAAAA,IAAQx9M,CAAR,KAC9B1hI,EAAKu/U,aAAa8Q,YAAYrwV,EAAKkwV,SAGrC9kvB,YAAW,WACTs7tB,EAAapiB,aACf,GAAG,EACL,EACAhiuB,MAAK,SAACA,GACJke,EAAOle,EACT,GAEFokvB,EAAe1mU,EAAK/sP,UAAUyuX,EAChC,GACF,EAQOkuN,EAAA3xwB,UAAAqywB,cAAP,WACE,GAAI,KAAKL,WACP,MAAO,CACLvowB,KAAM,KAAKm9C,UAAY,GAAK,KAAKynL,WAAa,KAAKA,WAAW5kO,KAAO,GACrEpF,MAAO,KAAKuiD,UACZ6ooB,SAAS,EACT4hF,cAAeF,EAAc9swB,OAIjC,IAnHFy9tB,EACAz8oB,EAkHQitrB,EAAkB,KAAKhR,aAAaiR,WAAW3yvB,IAAI,KAAKqyvB,SAE9D,GArHFnwC,EAqHewwC,OApHf,KAAAjtrB,EAoHgC,KAAKj7E,QAAQoowB,eApH7CntrB,EAAA,QAEAy8oB,IACEA,EAAWrotB,eACXqotB,EAAWrotB,cAAc/Y,OAAS,GACvB,SAAX2kF,GACAy8oB,EAAWtotB,cA+GT,MAAO,CACL/P,KAAM,GACNgmrB,SAAS,EACT4hF,cAAeiB,EAAgBjB,cAC/BhtwB,MAAO,IAAIukvB,EAAY,CACrBnvuB,cAAe64vB,EAAgB74vB,cAC/BD,aAAc84vB,EAAgB94vB,gBAK9B,IAkBF63vB,EAlBEnwvB,EAAA,KAAAogvB,aAAAmR,sBAAA,MAAEhpwB,EAAAyX,EAAAzX,KAAM6vuB,EAAAp4tB,EAAAo4tB,QAERo5B,GACHJ,GACDA,EAAgBjB,gBAAkBF,EAAc1hF,QAQ5CA,EAC0B,iBAA7B,KAAKrlrB,QAAQuxvB,aAAkC+W,GAC/Cp5B,GAAwC,eAA7B,KAAKlvuB,QAAQuxvB,YAWrB32vB,EAAS,CACbyE,KAAIA,EACJgmrB,QAAS2hF,EAPTC,EADEiB,EACcA,EAAgBjB,cAEhB5hF,EAAU0hF,EAAc1hF,QAAU0hF,EAAc9vhB,OAMhEgwhB,cAAaA,GAgBf,OAZEiB,GACAA,EAAgB74vB,eACa,QAA7B,KAAKrP,QAAQoowB,cAEbxtwB,EAAO8U,OAASw4vB,EAAgB74vB,eAG7B6/tB,IACH,KAAKjrgB,WAAUv1M,EAAA,GAAQ9zB,EAAM,CAAE2twB,OAAO,IACtC,KAAKC,mBAAqBl/B,EAAU,KAAKrlgB,aAGpCv1M,EAAA,GAAK9zB,EAAM,CAAEs0uB,QAAOA,GAC7B,EAIOq4B,EAAA3xwB,UAAA6ywB,0BAAP,SAAiCC,GACvB,IAAAjpP,EAAA,KAAA+oP,mBACR,QACE/oP,GAAYipP,GACZjpP,EAASwnP,gBAAkByB,EAAUzB,eACrCxnP,EAAS8oP,QAAUG,EAAUH,OAC7B51K,EAAQlzE,EAASpghB,KAAMqpwB,EAAUrpwB,MAErC,EAIOkowB,EAAA3xwB,UAAA+ywB,cAAP,WACE,OAAO,KAAK1kiB,UACd,EAEOsjiB,EAAA3xwB,UAAAgzwB,aAAP,WACE,OAAO,KAAKpstB,SACd,EAEO+qtB,EAAA3xwB,UAAAizwB,iBAAP,kBACS,KAAK5kiB,kBACL,KAAKukiB,0BACL,KAAKhstB,UACZ,KAAKortB,YAAa,CACpB,EASOL,EAAA3xwB,UAAAyV,QAAP,SAAewjtB,GACL,IAAA0iC,EAAA,KAAAvxvB,QAAAuxvB,YAER,GAAoB,eAAhBA,EACF,OAAO76uB,QAAQyB,OACb,IAAItiB,MACF,kFAKD88lB,EAAQ,KAAKk8H,UAAWA,KAE3B,KAAKA,UAAYp5sB,OAAOkZ,OAAO,GAAI,KAAKkgsB,UAAWA,IAGhDl8H,EAAQ,KAAK3ylB,QAAQ6utB,UAAW,KAAKA,aAExC,KAAK7utB,QAAQ6utB,UAAYp5sB,OAAOkZ,OAC9B,GACA,KAAK3uB,QAAQ6utB,UACb,KAAKA,YAMT,IAAMi6C,EACY,iBAAhBvX,GAAkD,aAAhBA,EAE9BwX,EAAer6uB,EAAA,GAChB,KAAK1uB,QAAO,CACfuxvB,YAAauX,EAAuBvX,EAAc,iBAGpD,OAAO,KAAK2F,aACT8R,WAAW,KAAKnB,QAASkB,EAAiB3B,EAAU/7vB,SACpDqY,MAAK,SAAA9oB,GAAU,OAAAA,CAAA,GACpB,EAEO2swB,EAAA3xwB,UAAAqzwB,UAAP,SACEC,GADF,IAWMH,EAXNlwvB,EAAA,KAKE,IAAKqwvB,EAAiBxQ,YACpB,MAAM,IAAI7iwB,MACR,4GAMJ,OAAO6gB,QAAQ4B,UACZoL,MAAK,WACJ,IAAMylvB,EAAMtwvB,EAAKq+uB,aAAa4Q,kBAoB9B,OAhBEiB,EAFEG,EAAiB5iuB,MAED4iuB,EAGHx6uB,EAAA,GACV7V,EAAK7Y,QACLkpwB,EAAgB,CACnBr6C,UAAWp5sB,OAAOkZ,OAChB,GACA9V,EAAKg2sB,UACLq6C,EAAiBr6C,cAKP0iC,YAAc,eAEvB14uB,EAAKq+uB,aAAa8R,WACvBG,EACAJ,EACA3B,EAAUv9jB,OACVhxL,EAAKgvvB,QAET,IACCnkvB,MAAK,SAAA0lvB,GAQJ,OAPAvwvB,EAAK6/uB,aAAY,SAACrlC,GAChB,OAAA61C,EAAiBxQ,YAAYrlC,EAAgB,CAC3C+1C,gBAAiBA,EAAgB/pwB,KACjCwvtB,UAAWk6C,EAAgBl6C,WAF7B,IAMKu6C,CACT,GACJ,EAKO7B,EAAA3xwB,UAAAyzwB,gBAAP,SAAkDrpwB,GAAlD,IAAA6Y,EAAA,KACQwluB,EAAe,KAAK6Y,aACvBoS,yBAAyB,CACxBhjuB,MAAOtmC,EAAQmjB,SACf0rsB,UAAW7utB,EAAQ6utB,YAEpBjkiB,UAAU,CACTnvK,KAAM,SAACm9uB,GACD54vB,EAAQ04vB,aACV7/uB,EAAK6/uB,aAAY,SAACl6oB,EAAU1nG,OAAE+3sB,EAAA/3sB,EAAA+3sB,UAC5B,OAAC7utB,EAAQ04vB,YACPl6oB,EACA,CACEo6oB,iBAAgBA,EAChB/pC,UAASA,GAJb,GASN,EACA50tB,MAAO,SAACF,GACFiG,EAAQihB,QACVjhB,EAAQihB,QAAQlnB,GAGlBC,QAAQC,MAAM,uCAAwCF,EACxD,IAKJ,OAFA,KAAKguwB,oBAAoBzwvB,KAAK+muB,GAEvB,WACL,IAAM3nvB,EAAImiB,EAAKkvvB,oBAAoBjxwB,QAAQunvB,GACvC3nvB,GAAK,IACPmiB,EAAKkvvB,oBAAoBvjvB,OAAO9tB,EAAG,GACnC2nvB,EAAapiB,cAEjB,CACF,EAIOsrC,EAAA3xwB,UAAAsgK,WAAP,SACElxI,GAEA,IAAMukvB,EAAa,KAAKvpwB,QACxB,KAAKA,QAAUyV,OAAOkZ,OAAO,GAAI,KAAK3uB,QAASglB,GAI3CA,EAAKwkvB,aACP,KAAKC,aAAazkvB,EAAKwkvB,cACQ,IAAtBxkvB,EAAKwkvB,cACd,KAAKE,cAIP,IAAMC,EACwB,iBAA3BJ,EAAWhY,aACW,iBAArBvsuB,EAAKusuB,aACqB,eAA3BgY,EAAWhY,aACW,eAArBvsuB,EAAKusuB,aACqB,YAA3BgY,EAAWhY,aACW,YAArBvsuB,EAAKusuB,cACP,EAEF,OAAO,KAAKqY,aACV,KAAK5pwB,QAAQ6utB,UACb86C,EACA3kvB,EAAK6kvB,aAET,EA6BOtC,EAAA3xwB,UAAAg0wB,aAAP,SACE/6C,EACA86C,EACAE,QADA,IAAAF,IAAAA,GAAA,QACA,IAAAE,IAAAA,GAAA,GAGA,KAAKjC,YAAa,EAElB,IAAMkC,EAAej7C,GAAwB,KAAKA,UAElD,OAAIl8H,EAAQm3K,EAAc,KAAKj7C,aAAe86C,EAId,IAA1B,KAAKroC,UAAUhruB,QAAiBuzwB,EAG7B,KAAKjvwB,SAFH,IAAI8b,SAAQ,SAAA4B,GAAW,OAAAA,GAAA,KAIhC,KAAKu2sB,UAAYi7C,EACjB,KAAK9pwB,QAAQ6utB,UAAYi7C,EAGK,IAA1B,KAAKxoC,UAAUhruB,OACV,IAAIogB,SAAQ,SAAA4B,GAAW,OAAAA,GAAA,IAIzB,KAAK4+uB,aACT8R,WAAW,KAAKnB,QAASn5uB,EAAA,GACrB,KAAK1uB,QAAO,CACf6utB,UAAW,KAAKA,aAEjBnrsB,MAAK,SAAA9oB,GAAU,OAAAA,CAAA,IAEtB,EAEO2swB,EAAA3xwB,UAAA8iwB,YAAP,SACEqR,GAKM,IAAAjzvB,EAAA,KAAAogvB,aAAA8S,2BAAA,KAAAnC,SACJx0C,EAAAv8sB,EAAAu8sB,eACAxE,EAAA/3sB,EAAA+3sB,UACA1rsB,EAAArM,EAAAqM,SAGIulvB,EAAY3+B,GAAsB,WACtC,OAAAggC,EAAM12C,EAAgB,CAAExE,UAAWA,GAAnC,IAGE65C,IACF,KAAKxR,aAAaQ,UAAUuS,sBAC1B9mvB,EACA0rsB,EACA65C,GAEF,KAAKxR,aAAaC,mBAEtB,EAEOoQ,EAAA3xwB,UAAA8zwB,YAAP,WACM,KAAK/B,qBACP,KAAKH,UAAU0C,iBAAiB,KAAKrC,SACrC,KAAK7nwB,QAAQwpwB,kBAAezrwB,EAC5B,KAAK4pwB,oBAAqB,EAE9B,EAEOJ,EAAA3xwB,UAAA6zwB,aAAP,SAAoBD,GAClB,GAC+B,gBAA7B,KAAKxpwB,QAAQuxvB,aACgB,eAA7B,KAAKvxvB,QAAQuxvB,YAEb,MAAM,IAAI17vB,MACR,qGAIA,KAAK8xwB,qBACP,KAAKH,UAAU0C,iBAAiB,KAAKrC,SACrC,KAAKF,oBAAqB,GAE5B,KAAK3nwB,QAAQwpwB,aAAeA,EAC5B,KAAK7B,oBAAqB,EAC1B,KAAKH,UAAU2C,kBAAkB,KAAKnqwB,QAAS,KAAK6nwB,QACtD,EAEQN,EAAA3xwB,UAAA8xwB,YAAR,SAAoBruN,GAApB,IAAAxgiB,EAAA,KAwBE,OApBGwgiB,EAAiB+wN,eACjB/wN,EAAiB+wN,cAAcC,YAC9BhxN,EAAiB+wN,cAAcC,UAAUpwwB,QAE1Co/iB,EAAiB+wN,cAAcC,UAAUpwwB,MAAQ,SAChDA,GAEAD,QAAQC,MAAM,kBAAmBA,EAAMtE,QAASsE,EAAMo/B,MACxD,GAGF,KAAKiosB,UAAUhqtB,KAAK+hiB,GAGhBA,EAAS59hB,MAAQ,KAAKwoN,YAAYo1U,EAAS59hB,KAAK,KAAKwoN,YACrDo1U,EAASp/iB,OAAS,KAAKuiD,WAAW68f,EAASp/iB,MAAM,KAAKuiD,WAG5B,IAA1B,KAAK8krB,UAAUhruB,QAAc,KAAKg0wB,aAE/B,WACLzxvB,EAAKyotB,UAAYzotB,EAAKyotB,UAAUn3tB,QAAO,SAAA0svB,GAAO,OAAAA,IAAQx9M,CAAR,IAEhB,IAA1BxgiB,EAAKyotB,UAAUhruB,QACjBuiB,EAAK0xvB,eAET,CACF,EAEQhD,EAAA3xwB,UAAA00wB,WAAR,eAAAzxvB,EAAA,KAKE,GAJI,KAAK4uvB,iBACP,KAAKvQ,aAAasT,mBAA0B,KAAK3C,QAAS,MAGtD,KAAK7nwB,QAAQwpwB,aAAc,CAC/B,GAC+B,gBAA7B,KAAKxpwB,QAAQuxvB,aACgB,eAA7B,KAAKvxvB,QAAQuxvB,YAEb,MAAM,IAAI17vB,MACR,qGAIJ,KAAK8xwB,oBAAqB,EAC1B,KAAKH,UAAU2C,kBAAyB,KAAKnqwB,QAAS,KAAK6nwB,SAG7D,IAAMxuN,EAA+C,CACnD59hB,KAAM,SAAC7gB,GACLie,EAAKorN,WAAarpO,EAClBie,EAAK2vvB,mBAAqBl/B,EAAU1uuB,GACpCie,EAAKyotB,UAAU5mtB,SAAQ,SAAAm8uB,GAAO,OAAAA,EAAIp7uB,MAAQo7uB,EAAIp7uB,KAAK7gB,EAArB,GAChC,EACAX,MAAO,SAACA,GACN4e,EAAK2jC,UAAYviD,EACjB4e,EAAKyotB,UAAU5mtB,SAAQ,SAAAm8uB,GAAO,OAAAA,EAAI58vB,OAAS48vB,EAAI58vB,MAAMA,EAAvB,GAChC,GAGF,KAAKi9vB,aAAauT,WAChB,KAAK5C,QACL,KAAK7nwB,QACL,KAAKk3vB,aAAawT,yBAChB,KAAK7C,QACL,KAAK7nwB,QACLq5iB,GAGN,EAEQkuN,EAAA3xwB,UAAA20wB,cAAR,WACE,KAAK3C,YAAa,EAEd,KAAKD,qBACP,KAAKH,UAAU0C,iBAAiB,KAAKrC,SACrC,KAAKF,oBAAqB,GAI5B,KAAKI,oBAAoBrtvB,SAAQ,SAAA25F,GAAO,OAAAA,EAAI4nnB,aAAJ,IACxC,KAAK8rC,oBAAsB,GAE3B,KAAK7Q,aAAayT,sBAAsB,KAAK9C,SAE7C,KAAK3Q,aAAa0T,UAAU,KAAK/C,SAEjC,KAAKvmC,UAAY,EACnB,EACFimC,CAAA,CAvkBA,CAGU7sO,iDC7DsC,oBAAZt7a,SACb,kBAAdt5F,WACPA,UAAUujtB,QCFJ5ztB,OAAA7f,UAAAqB,SCAAwe,OAAA7f,UAAA04B,eCEW7Y,OAAOgZ,OAAO,CAAC,ICwBlC,SAAAglK,GAEE,SAAA0uiB,EAAYxsuB,EAAkB+spB,GAA9B,IAAA7poB,EACE46K,EAAAj4K,KAAA,KAAM7lB,IAAQ,YACdkjB,EAAK6poB,KAAOA,KAJen0nB,EAAAA,EAAAA,WAAA4zsB,EAAA1uiB,EAM/B,CANA,CAA+B59L,gBAQfusuB,EAAc1/E,GAC5B,OAAOA,EAAKzonB,QAAQ3jC,QAAU,CAChC,UA4DgBgsuB,EACdC,EACAhusB,GAEA,IAAI13B,GAAO6xB,EAAAA,EAAAA,UAAA,GAAQ6zsB,GAyBnB,OAfA9stB,OAAOC,eAAe6e,EAAW,aAAc,CAC7C1e,YAAY,EACZnZ,MAXiB,SAAA+e,GAEf5e,EADkB,oBAAT4e,GACFiT,EAAAA,EAAAA,UAAA,GAAQ7xB,EAAY4e,EAAK5e,KAEzB6xB,EAAAA,EAAAA,UAAA,GAAQ7xB,EAAY4e,MAU/BhG,OAAOC,eAAe6e,EAAW,aAAc,CAC7C1e,YAAY,EACZnZ,MATiB,WAAM,OAAAgyB,EAAAA,EAAAA,UAAC,CAAC,EAAI7xB,EAAO,IAYtC4Y,OAAOC,eAAe6e,EAAW,QAAS,CACxC1e,YAAY,EACZnZ,MAAO,WAAM,gBAMM63B,GAGb,IAAA+R,EAAA/R,EAAA+R,MAAOuorB,EAAAt6rB,EAAAs6rB,UAAWmR,EAAAzrsB,EAAAyrsB,cAC1B,OAAO5ouB,KAAKQ,UAAU,CAACoouB,EAAe15rB,EAAOuorB,GAC/C,CAXiB2T,CAAOjusB,EAAU,IAGzBA,CACT,CC3GA,SAASkusB,EAAYjysB,EAAI+tsB,GACvB,OAAOA,EAAUA,EAAQ/tsB,GAAMkqgB,EAAAA,EAAW9jd,IAC5C,CAEA,SAAS8rpB,EAAO17jB,GACd,MAA0B,oBAAZA,EAAyB,IAAIs3jB,EAAWt3jB,GAAWA,CACnE,CAEA,SAAgBm8G,IACd,OAAO,IAAIm7c,GAAW,WAAM,OAAA5jM,EAAAA,EAAW9jd,IAAI,GAC7C,CAEA,SAAgBn9D,EAAKkptB,GACnB,OAAqB,IAAjBA,EAAMrsuB,OAAqB6sR,IACxBw/c,EAAM/8tB,IAAI88tB,GAAQ9qtB,QAAO,SAAC/W,EAAGP,GAAM,OAAAO,EAAEuX,OAAO9X,EAAE,GACvD,CAEA,SAAgBhJ,EACd0kB,EACAu6G,EACAH,GAEA,IAAMwsmB,EAAWF,EAAOnsmB,GAClBssmB,EAAYH,EAAOtsmB,GAAS,IAAIkomB,EAAWmE,IAEjD,OAAIL,EAAcQ,IAAaR,EAAcS,GACpC,IAAIvE,GAAW,SAAA/psB,GACpB,OAAOvY,EAAKuY,GACRqusB,EAAS3osB,QAAQ1F,IAAcmmgB,EAAAA,EAAW9jd,KAC1CispB,EAAU5osB,QAAQ1F,IAAcmmgB,EAAAA,EAAW9jd,QAG1C,IAAI0npB,GAAW,SAAC/psB,EAAWgqsB,GAChC,OAAOvitB,EAAKuY,GACRqusB,EAAS3osB,QAAQ1F,EAAWgqsB,IAAY7jM,EAAAA,EAAW9jd,KACnDispB,EAAU5osB,QAAQ1F,EAAWgqsB,IAAY7jM,EAAAA,EAAW9jd,OAG9D,CAGA,IAAax+D,EAAS,SACpB0mL,EACAu1T,GAEA,IAAMyuO,EAAYJ,EAAO5jiB,GACzB,GAAIsjiB,EAAcU,GAOhB,OAAOA,EAET,IAAM5B,EAAWwB,EAAOruO,GAExB,OAAI+tO,EAAclB,GACT,IAAI5C,GACT,SAAA/psB,GACE,OAAAuusB,EAAU7osB,QACR1F,GACA,SAAA/D,GAAM,OAAA0wsB,EAASjnsB,QAAQzJ,IAAOkqgB,EAAAA,EAAW9jd,IAAI,KAC1C8jd,EAAAA,EAAW9jd,QAGb,IAAI0npB,GAAW,SAAC/psB,EAAWgqsB,GAChC,OACEuE,EAAU7osB,QAAQ1F,GAAW,SAAA/D,GAC3B,OAAO0wsB,EAASjnsB,QAAQzJ,EAAI+tsB,IAAY7jM,EAAAA,EAAW9jd,SAC/C8jd,EAAAA,EAAW9jd,OAIzB,EAEA0npB,EAAA,WAME,SAAAA,EAAYrksB,GACNA,IAASvkC,KAAKukC,QAAUA,GAqBhC,OAlBSqksB,EAAA1ouB,UAAA0B,MAAP,SACE0kB,EACAu6G,EACAH,GAEA,OAAO1gI,KAAK0iB,OAAO9gB,EAAM0kB,EAAMu6G,EAAMH,GAAS,IAAIkomB,EAAWmE,MAGxDnE,EAAA1ouB,UAAAwiB,OAAP,SAAcqD,GACZ,OAAOrD,EAAO1iB,KAAM+lB,IAGf6itB,EAAA1ouB,UAAAqkC,QAAP,SACE1F,EACAgqsB,GAEA,MAAM,IAAAO,EAAAA,GAAA,IAzBMR,EAAAn7c,MAAQA,EACRm7c,EAAA7ktB,KAAOA,EACP6ktB,EAAAhnuB,MAAQA,EACRgnuB,EAAAv2R,QAAUA,EAwB1Bu2R,EA5BA,YA8BgBv2R,EACd26M,EACAnunB,GAEA,OACEmunB,EAAKzonB,QACHqosB,EACE/tsB,EAAU13B,iBDvDiB03B,GACjC,IAAMwusB,EAAuC,CAC3ClU,UAAWt6rB,EAAUs6rB,WAAa,CAAC,EACnCnjqB,WAAYn3B,EAAUm3B,YAAc,CAAC,EACrCs0qB,cAAezrsB,EAAUyrsB,cACzB15rB,MAAO/R,EAAU+R,OAWnB,OAPKy8rB,EAAqB/C,gBACxB+C,EAAqB/C,cACmB,kBAA/B+C,EAAqBz8rB,MACPy8rB,EAAqBz8rB,MEZxC0nrB,YACD7jtB,QACC,SAAAiyK,GACE,MAAoB,wBAApBA,EAAWllK,MAAkCklK,EAAWtmL,QAE3D8P,KAAI,SAAC/E,GAA+B,OAAAA,EAAE/K,KAAK4G,KAAK,IAAE,IAAM,KFQrD,IAGDqmuB,CACT,CCuCQE,UD5H0B1usB,GAQhC,IAPA,IAAM2usB,EAAmB,CACvB,QACA,gBACA,YACA,aACA,WAEchotB,EAAA,EAAApE,EAAArB,OAAOwE,KAAKsa,GAAZrZ,EAAApE,EAAAxgB,OAAA4kB,IAAwB,CAAnC,IAAIP,EAAG7D,EAAAoE,GACV,GAAIgotB,EAAiBpsuB,QAAQ6jB,GAAO,EAClC,MAAM,IAAAmktB,EAAAA,GAAA,GAIV,OAAOvqsB,CACT,CC6G2B4usB,CAAkB5usB,OAEpCmmgB,EAAAA,EAAW9jd,IAEpB,CExHM,SAAUjoD,EACdrY,OACA,IAAA4+sB,EAAA,GAAAh6sB,EAAA,EAAAA,EAAAV,UAAAlkB,OAAA4kB,IAAAg6sB,EAAAh6sB,EAAA,GAAAV,UAAAU,GAUA,OARAg6sB,EAAQx6sB,SAAQ,SAAAD,GACQ,qBAAXA,GAAqC,OAAXA,GAGrChF,OAAOwE,KAAKQ,GAAQC,SAAQ,SAAAC,GAC1BrE,EAAOqE,GAAOF,EAAOE,EACvB,GACF,IACOrE,CACT,CCgEM,SAAUittB,EACdC,EACA1tuB,EACA4G,EACAmytB,GAEA,GAlCF,SAAoBnytB,GAClB,MAAsB,aAAfA,EAAMwa,IACf,CAgCMustB,CAAW/muB,IA9BjB,SAAsBA,GACpB,MAAsB,eAAfA,EAAMwa,IACf,CA4B2BwstB,CAAahnuB,GACpC8muB,EAAO1tuB,EAAK4G,OAAS0tB,OAAO1tB,EAAMA,YAC7B,GAxCT,SAAwBA,GACtB,MAAsB,iBAAfA,EAAMwa,IACf,CAsCaystB,CAAejnuB,IA5C5B,SAAuBA,GACrB,MAAsB,gBAAfA,EAAMwa,IACf,CA0CsC0stB,CAAclnuB,GAChD8muB,EAAO1tuB,EAAK4G,OAASA,EAAMA,WACtB,GA1BT,SAAuBA,GACrB,MAAsB,gBAAfA,EAAMwa,IACf,CAwBa2stB,CAAcnnuB,GAAQ,CAC/B,IAAMonuB,EAAe,CAAC,EACtBpnuB,EAAM47M,OAAO1yM,KAAI,SAAAmV,GACf,OAAAwotB,EAA4BO,EAAc/otB,EAAIjlB,KAAMilB,EAAIre,MAAOmytB,EAA/D,IAEF2U,EAAO1tuB,EAAK4G,OAASonuB,OAChB,GApCT,SAAoBpnuB,GAClB,MAAsB,aAAfA,EAAMwa,IACf,CAkCa6stB,CAAWrnuB,GAAQ,CAC5B,IAAMsnuB,GAAiBnV,GAAc,CAAC,GAAWnytB,EAAM5G,KAAK4G,OAC5D8muB,EAAO1tuB,EAAK4G,OAASsnuB,OAChB,GA/BT,SAAqBtnuB,GACnB,MAAsB,cAAfA,EAAMwa,IACf,CA6Ba+stB,CAAYvnuB,GACrB8muB,EAAO1tuB,EAAK4G,OAASA,EAAM4N,OAAO1E,KAAI,SAAAs+tB,GACpC,IAAMC,EAAoB,CAAC,EAO3B,OANAZ,EACEY,EACAruuB,EACAouuB,EACArV,GAEMsV,EAA0BruuB,EAAK4G,MACzC,SACK,GAtCT,SAAqBA,GACnB,MAAsB,cAAfA,EAAMwa,IACf,CAoCakttB,CAAY1nuB,GACrB8muB,EAAO1tuB,EAAK4G,OAAUA,EAAwBA,UACzC,KApCT,SAAqBA,GACnB,MAAsB,cAAfA,EAAMwa,IACf,CAkCagksB,CAAYx+sB,GAGrB,MAAM,IAAI7G,MACR,wBAAwBC,EAAK4G,MAAK,cAAeA,EAAcwa,KAA/D,6FAHFsstB,EAAO1tuB,EAAK4G,OAAS,KAQzB,CC1GM,SAAUspuB,EAAcx8mB,GAC5B,GAAiB,aAAbA,EAAItyG,KACN,MAAM,IAAIrhB,MAAM,0JAIlB,IAAMiruB,EAAat3mB,EAAIwkmB,YACpB7jtB,QAAO,SAAA8jB,GAAK,MAAW,uBAAXA,EAAE/W,IAAF,IACZtR,KAAI,SAAAw2K,GACH,GAAwB,wBAApBA,EAAWllK,KACb,MAAM,IAAIrhB,MACR,2DACEumL,EAAWllK,KAAI,KAIrB,OAAOklK,CACT,IAEF,GAAI0kjB,EAAWxquB,OAAS,EACtB,MAAM,IAAIT,MACR,wCAAwCiruB,EAAWxquB,OAAM,cAG/D,CAEM,SAAU6guB,EACd3tmB,GAGA,OADAw8mB,EAAcx8mB,GACPA,EAAIwkmB,YAAY7jtB,QACrB,SAAAiyK,GAAc,MAAoB,wBAApBA,EAAWllK,IAAX,IACd,EACJ,CAYM,SAAU8rtB,EAAiBx5mB,GAC/B,OACEA,EAAIwkmB,YACD7jtB,QACC,SAAAiyK,GACE,MAAoB,wBAApBA,EAAWllK,MAAkCklK,EAAWtmL,IAAxD,IAEH8P,KAAI,SAAC/E,GAA+B,OAAAA,EAAE/K,KAAK4G,KAAP,IAAc,IAAM,IAE/D,CAWM,SAAU82tB,EAAmBhqmB,GACjC,IAAM28mB,EAAWhP,EAAuB3tmB,GAExC,IAAK28mB,GAAmC,UAAvBA,EAAS5xsB,UACxB,MAAM,IAAI1+B,MAAM,oCAGlB,OAAOswuB,CACT,CAkFM,SAAU1S,EACdr3iB,GAEA,GACEA,GACAA,EAAWkyiB,qBACXlyiB,EAAWkyiB,oBAAoBh4tB,OAC/B,CACA,IAAMo4N,EAAgBtyC,EAAWkyiB,oBAC9BnktB,QAAO,SAAC2M,GAAqB,OAAnBA,EAAAwnI,YAAmB,IAC7B14I,KACC,SAACkR,OAAE2nG,EAAA3nG,EAAA2nG,SAAU6/B,EAAAxnI,EAAAwnI,aACLmolB,EAAgD,CAAC,EAOvD,OANAlD,EACEkD,EACAhonB,EAAS3oH,KACTwoJ,GAGKmolB,CACT,IAGJ,OAAO93sB,EAAMrU,WAAC,EAAD,CAAC,CAAC,GAAClC,OAAKs2M,IAGvB,MAAO,CAAC,CACV,CCtLA,SAASm8iB,EACPr6uB,EACA4jsB,GAGA,OACE5jsB,EAAGy9rB,aAAaE,WAAWhktB,QACzB,SAAA8jtB,GAEE,QAEEA,GAEsB,mBAAtBA,EAAa/2sB,OAEZ2zvB,EAAWz2C,EAAUnG,EAAan4tB,KAAK4G,OAAQ03tB,GANlD,IAQF99tB,OAAS,CAEf,CAEA,SAASywuB,EACPxY,GAEA,OAAO,SAA0BgJ,GAC/B,OAAOhJ,EAAW7wsB,MAChB,SAAC4wF,GACC,SAAIA,EAAIx4G,MAAQw4G,EAAIx4G,OAASyhuB,EAAUzhuB,KAAK4G,WACxC4xG,EAAItyF,OAAQsyF,EAAItyF,KAAKu7sB,GAE3B,GAEJ,CACF,CA4CA,SAASuzC,EACPv8C,EACAN,GAEA,IAAKA,EAAaE,WAAY,OAAOF,EAErC,IAAM88C,EAAkBx8C,EAAW7wsB,MACjC,SAAC4wF,GAA+B,OAAAA,EAAIs8C,MAAJ,IAkClC,OA/BAqjkB,EAAaE,WAAaF,EAAaE,WACpCvotB,KAAI,SAAAqnT,GACH,GACqB,UAAnBA,EAAU/1S,OACR+1S,IACDA,EAAUsha,WAEX,OAAOtha,EACT,IACIriK,EADEognB,EAAmBjkC,EAAoBxY,GAU7C,OARAtha,EAAUsha,WAAatha,EAAUsha,WAAWpktB,QAAO,SAAAottB,GACjD,IAAM0zC,GAAcD,EAAiBzzC,GAIrC,OAFK3skB,GAAWqgnB,IAAcF,IAAiBngnB,GAAS,GAEjDqgnB,CACT,IAEOrgnB,EAAS,KAAOqiK,CACzB,IACC9iT,QAAO,SAAAtJ,GAAK,QAAEA,CAAF,IAEfottB,EAAaE,WAAWzzsB,SAAQ,SAAAuyS,GAER,UAAnBA,EAAU/1S,MAAuC,mBAAnB+1S,EAAU/1S,OACzC+1S,EAAUgha,cAEV68C,EAAiCv8C,EAAYtha,EAAUgha,aAE3D,IAEOA,CACT,CAEM,SAAU+Y,EACdzY,EACA/kmB,GAEA,IAAM0hpB,EAAW5hC,EAAU9/mB,GAE3B0hpB,EAASl9C,YAAYtzsB,SAAQ,SAAC0hK,GAC5B0ulB,EACEv8C,EACCnyiB,EAAuC6xiB,aAE5C,IACA,IAAM15rB,EDlGF,SACJpR,GAEA,IAAM81M,EAAMk+f,EAAuBh0sB,GACnC,IAAK81M,EACH,MAAM,IAAIpjO,MAAM,4CAElB,OAAOojO,CACT,CC0FoBitgB,CAA4BglC,GACxC92C,EDUF,SACJA,QAAA,IAAAA,IAAAA,EAAA,IAEA,IAAMoS,EAAwB,CAAC,EAK/B,OAJApS,EAAU15sB,SAAQ,SAAA0oL,GAChBojiB,EAASpjiB,EAASttM,KAAK4G,OAAS0mM,CAClC,IAEOojiB,CACT,CCnBoBjS,CD7Ed,SACJ/qmB,GAEA,OAAOA,EAAIwkmB,YAAY7jtB,QACrB,SAAAiyK,GAAc,MAAoB,uBAApBA,EAAWllK,IAAX,GAElB,CCuEsCm9sB,CAAuB62C,IAC3D,OAAOL,EAAWt2uB,EAAW6/rB,GAAa82C,EAAW,IACvD,CAgBA,IAAMnjC,EAAyB,CAC7B/rtB,KAAM,SAACu7sB,GACL,IAAMyQ,EAAsC,eAAzBzQ,EAAUzhuB,KAAK4G,MAalC,OAZIsruB,IAECzQ,EAAU/8sB,WACV+8sB,EAAU/8sB,UAAUkD,MAAK,SAAA+zB,GAAO,MAAmB,QAAnBA,EAAI37C,KAAK4G,KAAT,KAEjC1C,QAAQioB,KACN,wIAMC+ltB,CACT,iBC5LI,SAAU4B,EAAMC,GACpB,OATuB,qBAAZp1sB,EACFA,aAIF,iBAIao1sB,CACtB,CAEM,SAAUrS,IACd,OAA+B,IAAxBoS,EAAM,aACf,CCCA,IAAI57sB,EAAgB,SAASC,EAAGC,GAI5B,OAHAF,EAAgBvY,OAAO0Y,gBAClB,CAAEC,UAAW,cAAgBpW,OAAS,SAAUiW,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EACtEL,EAAcC,EAAGC,EAC5B,+BCVA,SAAAi9uB,IAAA,IAAAtyvB,EAAA,OAAA46K,GAAAA,EAAAn5K,MAAA,KAAAE,YAAA,YACU3B,EAAAuyvB,2BAGJ,IAAIr2vB,IACA8D,EAAAwyvB,YAAgC,IAAIt2vB,MAiE9C,OD1DO,SAAmBkZ,EAAGC,GAEzB,SAASM,IAAO94B,KAAKqmB,YAAckS,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAEr4B,UAAkB,OAANs4B,EAAazY,OAAOgZ,OAAOP,IAAMM,EAAG54B,UAAYs4B,EAAEt4B,UAAW,IAAI44B,EACnF,CChB+BD,CAAA48uB,EAAA13kB,GAOtB03kB,EAAAv1wB,UAAAqkC,QAAP,SACE1F,EACAgqsB,GAFF,IAAA1ltB,EAAA,KAKE,GAAI0b,EAAU+gM,aAAag2iB,WACzB,OAAO/sC,EAAQhqsB,GAGjB,IAAM5Z,EAAM4Z,EAAUg3uB,QAEtB,IAAK71wB,KAAK01wB,2BAA2B51vB,IAAImF,GAAM,CAG7C,IACI6wvB,EADEC,EAAiBltC,EAAQhqsB,GAGzBm3uB,EAAiB,IAAIhxO,EAAAA,GAAW,SAAA2e,GA6BpC,OA1BKxgiB,EAAKwyvB,YAAY74uB,IAAI7X,IAAM9B,EAAKwyvB,YAAY34uB,IAAI/X,EAAK,IAAIk6I,KAE9Dh8I,EAAKwyvB,YAAY71vB,IAAImF,GAAKshB,IAAIo9gB,GAEzBmyN,IACHA,EAAeC,EAAe7glB,UAAU,CACtCnvK,KAAM,SAAA7gB,GACJ,IAAMywwB,EAAcxyvB,EAAKwyvB,YAAY71vB,IAAImF,GACzC9B,EAAKwyvB,YAAY5vrB,OAAO9gE,GACxB9B,EAAKuyvB,2BAA2B3vrB,OAAO9gE,GACnC0wvB,IACFA,EAAY3wvB,SAAQ,SAAAm8uB,GAAO,OAAAA,EAAIp7uB,KAAK7gB,EAAO,IAC3CywwB,EAAY3wvB,SAAQ,SAAAm8uB,GAAO,OAAAA,EAAIhgS,UAAU,MAG7C58d,MAAO,SAAAA,GACL,IAAMoxwB,EAAcxyvB,EAAKwyvB,YAAY71vB,IAAImF,GACzC9B,EAAKwyvB,YAAY5vrB,OAAO9gE,GACxB9B,EAAKuyvB,2BAA2B3vrB,OAAO9gE,GACnC0wvB,GACFA,EAAY3wvB,SAAQ,SAAAm8uB,GAAO,OAAAA,EAAI58vB,MAAMA,EAAM,QAM5C,WACD4e,EAAKwyvB,YAAY74uB,IAAI7X,KACvB9B,EAAKwyvB,YAAY71vB,IAAImF,GAAK8gE,OAAO49d,GACM,IAAnCxgiB,EAAKwyvB,YAAY71vB,IAAImF,GAAKld,OAC5Bob,EAAKuyvB,2BAA2B3vrB,OAAO9gE,GACnC6wvB,GAAcA,EAAavvC,oBAMvCvmuB,KAAK01wB,2BAA2B14uB,IAAI/X,EAAK+wvB,GAI3C,OAAOh2wB,KAAK01wB,2BAA2B51vB,IAAImF,IAE/CwwvB,CAAA,WAtE+B7sC,ICsFzB,SAAUqtC,EAAkB1+c,GAChC,OACIA,EAAwBgha,cACvBhha,EAAwBgha,aAAaE,WAAW73tB,OAAS,EAIvD,CAAC22T,GAAW70S,OAChB60S,EAAwBgha,aAAaE,WACnCvotB,KAAI,SAAAgmwB,GACH,OAACA,GAAexzvB,OAAOuzvB,EAAkBC,GAAzC,IAEDh0vB,QAAO,SAACu2sB,EAAYjmlB,GAAa,OAAAimlB,EAAW/1sB,OAAO8vH,EAAlB,GAA6B,KAP1D,CAAC+kL,EASZ,CAEM,SAAUs4a,EAAkB/7mB,GAsBhC,OApBuBA,EAAIwkmB,YACxB7jtB,QACC,SAACiyK,GACC,OAAAA,EAAW6xiB,cAAgB7xiB,EAAW6xiB,aAAaE,UAAnD,IAGHvotB,KAAI,SAAA/E,GAAK,OAAA8qwB,EAAkB9qwB,EAAlB,IAET+W,QAAO,SAACu2sB,EAAYjmlB,GAAa,OAAAimlB,EAAW/1sB,OAAO8vH,EAAlB,GAA6B,IAE9D/9H,QACC,SAAC8iT,GACC,OAAAA,EAAUsha,YAActha,EAAUsha,WAAWj4tB,OAAS,CAAtD,IAGHsP,KAAI,SAACqnT,GAA6B,OAAAA,EAAUsha,UAAV,IAElC32sB,QAAO,SAAC22sB,EAAYgJ,GAAc,OAAAhJ,EAAWn2sB,OAAOm/sB,EAAlB,GAA8B,IAEhE3xtB,KAAI,SAAC2xtB,GAA6B,OAAAA,EAAUzhuB,KAAK4G,KAAf,GAEvC,wNCpHAmvwB,GAAA,WAqBE,SAAAA,EAAY/0vB,OACVogvB,EAAApgvB,EAAAogvB,aACA4U,EAAAh1vB,EAAAg1vB,QArBK,KAAAC,gBAA4D,GAI5D,KAAAC,kBAA8D,GAI9D,KAAAC,gBAAoD,GAOnD,KAAAC,cAA6C,GAE7C,KAAAJ,SAAmB,EASzB,KAAK5U,aAAeA,EACpB,KAAK4U,QAAUA,IAAW,CAC5B,CAwJF,OAtJSD,EAAAj2wB,UAAAu2wB,cAAP,SAAqBtE,GACnB,IAAMvhuB,EAAQ,KAAK4wtB,aAAaiR,WAAW3yvB,IAAIqyvB,GAE/C,OACEvhuB,GACAA,EAAM2guB,gBAAkBF,EAAc9vhB,OACtC3wM,EAAM2guB,gBAAkBF,EAAc9swB,KAE1C,EAEO4xwB,EAAAj2wB,UAAAozwB,WAAP,SACEnB,EACA7nwB,EACAoswB,GAHF,IAAAvzvB,EAAA,KAKE,OAAO,IAAInC,SAAQ,SAAC4B,EAASH,GAC3BU,EAAKq+uB,aACF8R,WAAcnB,EAAS7nwB,EAASoswB,GAChC1ovB,MAAK,SAAA9oB,GACJ0d,EAAQ1d,EACV,IACCopB,OAAM,SAAA/pB,GACLke,EAAOle,EACT,GACJ,GACF,EAEO4xwB,EAAAj2wB,UAAAu0wB,kBAAP,SACEnqwB,EACA6nwB,EACAh+pB,GAEA,IAAK7pG,EAAQwpwB,aACX,MAAM,IAAI3zwB,MACR,kEAKJ,OAAI,KAAKi2wB,UAET,KAAKE,kBAAkBnE,GAAW7nwB,EAE9B6pG,GACF,KAAKqtpB,aAAamV,iBAAiBxE,EAASh+pB,GAE9C,KAAKyiqB,mBAAsBzE,EAAS7nwB,IAPX6nwB,CAU3B,EAEOgE,EAAAj2wB,UAAAs0wB,iBAAP,SAAwBrC,UAGf,KAAKmE,kBAAkBnE,EAChC,EAGOgE,EAAAj2wB,UAAA22wB,uBAAP,SAAiCr/oB,GAAjC,IAAAr0G,EAAA,KAKE,KAAKozvB,gBAAgB/+oB,GAAY,KAAK++oB,gBAAgB/+oB,GAAU/iH,QAC9D,SAAA09vB,GASE,IAEIhvvB,EAAKmzvB,kBAAkB19uB,eAAeu5uB,IACtChvvB,EAAKmzvB,kBAAkBnE,GAAS2B,eAAiBt8oB,EAGnD,OAAO,EAKT,GAAIr0G,EAAKszvB,cAActE,GACrB,OAAO,EAGT,IAAM2E,EAAe3zvB,EAAKmzvB,kBAAkBnE,GACtC4E,EAAiB/9uB,GAAA,GAAK89uB,GAM5B,OALAC,EAAelb,YAAc,eAE7B14uB,EAAKmwvB,WAAcnB,EAAS4E,EAAgBrF,EAAUsF,MAAM1ovB,OAC1D,WAAO,KAEF,CACT,IAG4C,IAA1C,KAAKiovB,gBAAgB/+oB,GAAU52H,SACjC82H,cAAc,KAAK8+oB,cAAch/oB,WAC1B,KAAK++oB,gBAAgB/+oB,GAEhC,EAKO2+oB,EAAAj2wB,UAAA02wB,mBAAP,SACEzE,EACA2E,GAFF,IAAA3zvB,EAAA,KAIQq0G,EAAWs/oB,EAAahD,aAE9B,IAAKt8oB,EACH,MAAM,IAAIr3H,MACR,+DAA+DgywB,EAAO,MAOxE,KAAKoE,gBAAgB39uB,eAAe4+F,EAASj2H,aAC7C,KAAKg1wB,gBAAgB/+oB,GAAU52H,OAAS,EAExC,KAAK21wB,gBAAgB/+oB,GAAU51G,KAAKuwvB,IAEpC,KAAKoE,gBAAgB/+oB,GAAY,CAAC26oB,GAElC,KAAKqE,cAAch/oB,GAAYC,aAAY,WACzCt0G,EAAK0zvB,uBAA0Br/oB,EACjC,GAAGA,GAEP,EAGO2+oB,EAAAj2wB,UAAA+2wB,qBAAP,SACEH,GAEA,IAAKA,EAAahD,aAChB,MAAM,IAAI3zwB,MACR,iEAGJ,OAAO,IAAI0xwB,EAAmB,CAC5BC,UAAW,KACXxnwB,QAASwswB,GAEb,EACFX,CAAA,CAtLA,GCpBAe,GAAA,oBAAAA,IACU,KAAAtuF,MAAsD,EAgDhE,QA9CSsuF,EAAAh3wB,UAAAi3wB,SAAP,WACE,OAAO,KAAKvuF,KACd,EAEOsuF,EAAAh3wB,UAAA4f,IAAP,SAAWsivB,GACT,OAAO,KAAKx5E,MAAMw5E,EACpB,EAEO8U,EAAAh3wB,UAAAk3wB,aAAP,SACEhV,EACAiV,EACAl+C,GAEA,KAAKvwC,MAAMw5E,GAAc,CACvBiV,eAAgBA,EAChBl+C,UAAWA,GAAa,GACxBxpC,SAAS,EACTprrB,MAAO,KAEX,EAEO2ywB,EAAAh3wB,UAAAo3wB,kBAAP,SAAyBlV,EAAoB79vB,GAC3C,IAAMk7uB,EAAW,KAAK72D,MAAMw5E,GAEvB3iB,IAILA,EAAS9vD,SAAU,EACnB8vD,EAASl7uB,MAAQA,EACnB,EAEO2ywB,EAAAh3wB,UAAAiiwB,mBAAP,SAA0BC,GACxB,IAAM3iB,EAAW,KAAK72D,MAAMw5E,GAEvB3iB,IAILA,EAAS9vD,SAAU,EACnB8vD,EAASl7uB,MAAQ,KACnB,EAEO2ywB,EAAAh3wB,UAAAy3B,MAAP,WACE,KAAKixpB,MAAQ,EACf,EACFsuF,CAAA,CAjDA,sNCgBAK,GAAA,oBAAAA,IACU,KAAA3uF,MAAgD,EA4K1D,QA1KS2uF,EAAAr3wB,UAAAi3wB,SAAP,WACE,OAAO,KAAKvuF,KACd,EAEO2uF,EAAAr3wB,UAAA4f,IAAP,SAAWqyvB,GACT,OAAO,KAAKvpF,MAAMupF,EACpB,EAEOoF,EAAAr3wB,UAAAs3wB,UAAP,SAAiB5muB,GAUf,IAAM6muB,EAAgB,KAAK7uF,MAAMh4oB,EAAMuhuB,SAEvC,GACEsF,GACAA,EAAchqvB,WAAamjB,EAAMnjB,WACjCkzP,EAAAA,EAAAA,OAAM82f,EAAchqvB,aAAckzP,EAAAA,EAAAA,OAAM/vO,EAAMnjB,UAK9C,MAAM,IAAIttB,MACR,iEAIJ,IAgBIoxwB,EAhBAmG,GAAiB,EAEjBC,EAAmC,KAErC/muB,EAAMgnuB,wBACNH,GACAA,EAAclG,gBAAkBF,EAAc1hF,UAGzC1yF,EAAQw6K,EAAct+C,UAAWvorB,EAAMuorB,aAC1Cu+C,GAAiB,EACjBC,EAAoBF,EAAct+C,YAOpCo4C,EADEmG,EACcrG,EAAc6C,aACrBtjuB,EAAMinuB,OACCxG,EAAc2F,KACrBpmuB,EAAMknuB,UACCzG,EAAc17vB,QAGd07vB,EAAc1hF,QAGhC,IAAIh2qB,EAAgC,GAChC89vB,GAAiBA,EAAc99vB,gBACjCA,EAAgB89vB,EAAc99vB,eAMhC,KAAKivqB,MAAMh4oB,EAAMuhuB,SAAW,CAC1B1kvB,SAAUmjB,EAAMnjB,SAChB0rsB,UAAWvorB,EAAMuorB,UACjBw+C,kBAAiBA,EACjBj+vB,aAAc,KACdC,cAAeA,EACf43vB,cAAaA,EACbx3uB,SAAU6W,EAAM7W,UAWqB,kBAA9B6W,EAAMmnuB,qBACb,KAAKnvF,MAAMh4oB,EAAMmnuB,uBAEjB,KAAKnvF,MAAMh4oB,EAAMmnuB,qBAAqBxG,cACpCF,EAAckC,UAEpB,EAEOgE,EAAAr3wB,UAAA83wB,gBAAP,SACE7F,EACAjtwB,EACA6ywB,GAEK,KAAKnvF,OAAU,KAAKA,MAAMupF,KAE/B,KAAKvpF,MAAMupF,GAASz4vB,aAAe,KACnC,KAAKkvqB,MAAMupF,GAASx4vB,cAClBzU,EAAO8U,QAAU9U,EAAO8U,OAAOpZ,OAASsE,EAAO8U,OAAS,GAC1D,KAAK4uqB,MAAMupF,GAASwF,kBAAoB,KACxC,KAAK/uF,MAAMupF,GAASZ,cAAgBF,EAAc9vhB,MAMjB,kBAAxBw2hB,GACP,KAAKnvF,MAAMmvF,KAEX,KAAKnvF,MAAMmvF,GAAqBxG,cAAgBF,EAAc9vhB,OAElE,EAEOg2hB,EAAAr3wB,UAAA+3wB,eAAP,SACE9F,EACA5twB,EACAwzwB,GAEK,KAAKnvF,OAAU,KAAKA,MAAMupF,KAE/B,KAAKvpF,MAAMupF,GAASz4vB,aAAenV,EACnC,KAAKqkrB,MAAMupF,GAASZ,cAAgBF,EAAc9swB,MAKf,kBAAxBwzwB,GACT,KAAKG,sBAAsBH,GAAqB,GAEpD,EAEOR,EAAAr3wB,UAAAg4wB,sBAAP,SAA6B/F,EAAiBhxS,GACvC,KAAKynN,OAAU,KAAKA,MAAMupF,KAE/B,KAAKvpF,MAAMupF,GAASz4vB,aAAe,KACnC,KAAKkvqB,MAAMupF,GAASwF,kBAAoB,KACxC,KAAK/uF,MAAMupF,GAASZ,cAAgBpwS,EAChCkwS,EAAc9vhB,MACd8vhB,EAAc1hF,QACpB,EAEO4nF,EAAAr3wB,UAAAg1wB,UAAP,SAAiB/C,UACR,KAAKvpF,MAAMupF,EACpB,EAEOoF,EAAAr3wB,UAAAy3B,MAAP,SAAawgvB,GAAb,IAAAh1vB,EAAA,KAEE,KAAKylqB,MAAQ7oqB,OAAOwE,KAAK,KAAKqkqB,OAC3Bn0qB,QAAO,SAAA09vB,GACN,OAAOgG,EAAmB/2wB,QAAQ+wwB,IAAY,CAChD,IACCjwvB,QACC,SAACk4F,EAAKn1F,GAOJ,OALAm1F,EAAIn1F,GAAI+T,GAAA,GACH7V,EAAKylqB,MAAM3jqB,GAAI,CAClBssvB,cAAeF,EAAc1hF,UAGxBv1kB,CACT,GACA,GAEN,EACFm9pB,CAAA,CA7KA,ygDC6CAa,GAAA,WA6BE,SAAAA,EAAYh3vB,OACV4roB,EAAA5roB,EAAA4roB,KACA3rnB,EAAAjgB,EAAAi3vB,mBAAAA,OAAA,IAAAh3uB,GAAAA,EACAunpB,EAAAxnqB,EAAAwnqB,MACAvqf,EAAAj9K,EAAAk3vB,YAAAA,OAAA,IAAAj6kB,EAAA,aAAAA,EACAx4K,EAAAzE,EAAAg1vB,QAAAA,OAAA,IAAAvwvB,GAAAA,EA/BK,KAAA0yvB,cAA+B,IAAIrB,GACnC,KAAAzE,WAAyB,IAAI8E,GAS5B,KAAAiB,UAAY,EAIZ,KAAA7T,QAAkC,IAAItlvB,IAKtC,KAAAo5vB,mBAAgD,IAAIp5vB,IAKpD,KAAAq5vB,eAAoD,GAe1D,KAAK1rH,KAAOA,EACZ,KAAK2rH,aAAe/vC,EAAW7ktB,KAAK,CAAC,IAAI60vB,EAAgB5rH,IACzD,KAAKqrH,mBAAqBA,EAC1B,KAAKrW,UAAYp5E,EACjB,KAAK0vF,YAAcA,EAEnB,KAAKxG,UAAY,IAAIqE,GAAe,CAAE3U,aAAc,KAAM4U,QAAOA,GACnE,CA2oCF,OAzoCSgC,EAAAl4wB,UAAAu0M,OAAP,SAAiBrzL,GAAjB,IAAA+B,EAAA,KACEs8tB,EAAAr+tB,EAAAq+tB,SACAtmB,EAAA/3sB,EAAA+3sB,UACAyiC,EAAAx6uB,EAAAw6uB,mBACAid,EAAAz3vB,EAAAihvB,cACAhhuB,EAAAjgB,EAAA8lvB,eAAAA,OAAA,IAAA7luB,EAAA,GAAAA,EACAg9J,EAAAj9K,EAAA03vB,oBAAAA,OAAA,IAAAz6kB,GAAAA,EACA06kB,EAAA33vB,EAAAiW,OACAxR,EAAAzE,EAAAsxvB,YAAAA,OAAA,IAAA7svB,EAAA,OAAAA,EACAg2uB,EAAAz6uB,EAAAy6uB,YACAn2uB,EAAAtE,EAAAja,QAAAA,OAAA,IAAAue,EAAA,GAAAA,EAEA,IAAK+5tB,EACH,MAAM,IAAIt/uB,MACR,+FAIJ,GAAI07vB,GAA+B,aAAhBA,EACjB,MAAM,IAAI17vB,MACR,2EAIJ,IAAMiiwB,EAAa,KAAKgQ,kBAClBtupB,EAAQ,KAAKk+oB,UAAUgX,WAC5Bv5B,EAAW37nB,EAAMi1mB,kBAAkB0mB,GACjCtmB,EAAYlgsB,EACX,GACA8ksB,ETnIF,SACJjqmB,GAEAw8mB,EAAcx8mB,GAEd,IAAIy8mB,EAA8Cz8mB,EAAIwkmB,YAAY7jtB,QAChE,SAAAiyK,GACE,MAAoB,wBAApBA,EAAWllK,MACc,aAAzBklK,EAAW7nJ,SADX,IAEF,GAEF,IAAK0xsB,EACH,MAAM,IAAIpwuB,MAAM,uCAGlB,OAAOowuB,CACT,CSmHyBF,CAAsBoP,IACvCtmB,GAEJ,IAAMk+C,GAAiB12f,EAAAA,EAAAA,OAAM8+d,GAE7B,KAAKw5B,SAAS7W,GAAY,WAAM,MAAC,CAAE30uB,SAAUgytB,EAAb,IAGhC,IAAMy5B,EAEF,WACF,IAAM58pB,EAA+C,GAarD,OAXIu8pB,GACF94vB,OAAOwE,KAAKs0vB,GAAqB7zvB,SAAQ,SAAAm0vB,GACvC,OAACh2vB,EAAKu1vB,eAAeS,IAAc,IAAIn0vB,SAAQ,SAAAmtvB,GAC7C71pB,EAAI61pB,GAAW,CACb9S,QAASwZ,EAAoBM,GAC7BvouB,MAAOztB,EAAKsvvB,WAAW3yvB,IAAIqyvB,GAE/B,GALA,IASG71pB,CACT,EAeA,OAbA,KAAKi8pB,cAAcnB,aAAahV,EAAYiV,EAAgBl+C,GAE5D,KAAK6oC,UAAUoX,iBAAiB,CAC9BhX,WAAUA,EACV30uB,SAAUgytB,EACVtmB,UAAWA,GAAa,GACxBkpC,cAAe6W,IACf7hvB,OAAQ0hvB,EACRnd,mBAAkBA,IAGpB,KAAK6F,mBAEE,IAAIzgvB,SAAQ,SAAC4B,EAASH,GAC3B,IAAI42vB,EACA90wB,EAEEs6B,EAAY1b,EAAKwlvB,sBAAsBlpB,EAAUtmB,EAASngsB,GAAA,GAC3D7xB,EAAO,CACVy0vB,mBAAkBA,KAmEpBvpT,EAAQlvb,EAAK6poB,KAAMnunB,GAAWq2J,UAAU,CACtCnvK,KAAM,SAAC7gB,GACDovuB,EAAsBpvuB,IAA2B,SAAhBwtwB,EACnCnuwB,EAAQ,IAAIukvB,EAAY,CACtBnvuB,cAAezU,EAAO8U,UAK1BmJ,EAAKo1vB,cAAcpW,mBAAmBC,GAElB,aAAhBvG,GACF14uB,EAAK6+uB,UAAUG,mBAAmB,CAChCC,WAAUA,EACVl9vB,OAAMA,EACNuoB,SAAUgytB,EACVtmB,UAAWA,GAAa,GACxBkpC,cAAe6W,IACf7hvB,OAAQ0hvB,IAGZM,EAAcn0wB,EAChB,EAEAX,MAAO,SAACF,GACN8e,EAAKo1vB,cAAcjB,kBAAkBlV,EAAY/9vB,GACjD8e,EAAK6+uB,UAAUsX,qBAAqB,CAClClX,WAAUA,EACVxG,mBAAkBA,IAEpBz4uB,EAAKs+uB,mBAELt+uB,EAAK81vB,SAAS7W,GAAY,WAAM,MAAC,CAAE30uB,cAAUplB,EAAb,IAChCoa,EACE,IAAIqmuB,EAAY,CACdpvuB,aAAcrV,IAGpB,EAEA88d,SAAU,WAAM,OAxGO99c,GAAAF,OAAA,wFAYvB,GAXI5e,GACF,KAAKg0wB,cAAcjB,kBAAkBlV,EAAY79vB,GAGnD,KAAKy9vB,UAAUsX,qBAAqB,CAClClX,WAAUA,EACVxG,mBAAkBA,IAGpB,KAAK6F,mBAEDl9vB,EACF,MAAMA,EAaR,IAR8B,oBAAnB2iwB,IACTA,EAAiBA,EAAemS,IAG5BE,EAEA,GAEN/zvB,EAAA,EAA2Bg0vB,EAAAtS,EAAA1hvB,EAAAg0vB,EAAA54wB,OAAA4kB,IACG,kBADnBi0vB,EAAYD,EAAAh0vB,KASfsxvB,EAA6B,CACjClmuB,MAAO6ouB,EAAa7ouB,MACpBuorB,UAAWsgD,EAAatgD,UACxB0iC,YAAa,gBAGX4d,EAAatywB,UACf2vwB,EAAa3vwB,QAAUsywB,EAAatywB,SAGtCoywB,EAAqB33vB,KAAK,KAAKgvB,MAAMkmuB,MAjB7B3xkB,EAAU,KAAKu0kB,mBAAmBD,KAEtCF,EAAqB33vB,KAAKujL,UAkB5B2zkB,EACF,GAAM93vB,QAAQC,IAAIs4vB,IADhB,aACFn4vB,EAAArI,wBAYF,OATA,KAAKkgwB,SAAS7W,GAAY,WAAM,MAAC,CAAE30uB,cAAUplB,EAAb,IAEd,WAAhBqqwB,GACA2G,GACA/kC,EAAsB+kC,WAEfA,EAAYr/vB,OAGrB,GAAOq/vB,UA2C4BrrvB,KAAKpL,EAASH,EAAjC,GAEpB,GACF,EAEO21vB,EAAAl4wB,UAAAozwB,WAAP,SACEnB,EACA7nwB,EACAoswB,EAIAqB,GAPF,IAkBMsB,EAlBNl2vB,EAAA,KAUI/B,EAAA9W,EAAA6utB,UAAAA,OAAA,IAAA/3sB,EAAA,GAAAA,EACAigB,EAAA/2B,EAAAyvB,SAAAA,OAAA,IAAAsH,EAAA,KAAAA,EACAg9J,EAAA/zL,EAAAuxvB,YAAAA,OAAA,IAAAx9jB,EAAA,cAAAA,EAIIztJ,EAFQ,KAAKoxtB,UAAUgX,WAETjgD,kBAAkBzutB,EAAQsmC,OAG1C+ouB,EACc,iBAAhB9d,GAAkD,aAAhBA,EAKpC,GACE6a,IAAchF,EAAU/7vB,SACR,iBAAhBkmvB,GACgB,aAAhBA,EACA,CACM,IAAAh2uB,EAAA,KAAAm8uB,UAAAgX,WAAA1+mB,KAAA,0DAQNq/mB,GARQ9zvB,EAAAs7c,UAQmC,sBAAhB06R,EAC3Bwd,EATkBxzvB,EAAA3gB,OAYpB,IJ3M0BioX,EI2MtBysZ,EACFD,GAA+B,eAAhB9d,GAAgD,YAAhBA,EJ5MvB1uY,EI+MR,CAAC,QJ9Md0iX,EI8MuBj/rB,GJ9MA5oB,MAC5B,SAAC5nB,GAAiB,OAAA+sX,EAAM/rX,QAAQhB,IAAS,CAAvB,MI6MkBw5wB,GAAc,GAElD,IAAM7qqB,EAAY,KAAK8qqB,oBAGjB3ggB,EAAS,KAAK4ggB,iBAAiB3H,EAASvhuB,EAAOtmC,GAsCrD,GAnCA,KAAK2uwB,SAAS9G,GAAS,WAAM,MAAC,CAC5B1kvB,SAAUmjB,EACVmpuB,cAAehrqB,EACfirqB,aAAa,EACb9ggB,OAAMA,EAJqB,IAO7B,KAAK+ggB,YAAW,EAAMlC,GAEtB,KAAKtF,WAAW+E,UAAU,CACxBrF,QAAOA,EACP1kvB,SAAUmjB,EACVgnuB,uBAAwBgC,EACxBzgD,UAASA,EACT0+C,OAAQnB,IAAchF,EAAUsF,KAChCc,UAAWpB,IAAchF,EAAU/7vB,QACnCokB,SAAQA,EACRg+uB,oBAAmBA,IAGrB,KAAKtW,qBAKFmY,GAA+B,sBAAhB/d,KAGhB,KAAK4W,WAAWyF,sBAAsB/F,GAAUyH,GAEhD,KAAKK,YAAW,EAAM9H,EAAS4F,GAE/B,KAAKtW,oBAGHmY,EAAa,CACf,IAAMM,EAAgB,KAAKpskB,aAAa,CACtC/+F,UAASA,EACTojqB,QAAOA,EACP1kvB,SAAUmjB,EACVtmC,QAAOA,EACPytwB,oBAAmBA,IAClBzpvB,OAAM,SAAA/pB,GAGP,GAAkBA,ErB3Ybq0B,eAAe,iBqB4YlB,MAAMr0B,EAEE,IAAAw1wB,EAAA52vB,EAAAg3vB,SAAAhI,GAAA4H,cAWR,MAVIhrqB,IAAcgrqB,GAAiB,KACjC52vB,EAAKsvvB,WAAWwF,eAAe9F,EAAS5twB,EAAOwzwB,GAE/C50vB,EAAK82vB,YAAW,EAAM9H,EAAS4F,GAE/B50vB,EAAKs+uB,oBAGPt+uB,EAAKi3vB,wBAAwBrrqB,GAEvB,IAAI+5oB,EAAY,CAAEpvuB,aAAcnV,GAE1C,IAIA,GAAoB,sBAAhBs3vB,EACF,OAAOqe,EAIPA,EAAc5rvB,OAAM,WAAO,IAM/B,OAAOtN,QAAQ4B,QAAyB,CAAEjZ,KAAM0vwB,GAClD,EAIOjB,EAAAl4wB,UAAA80wB,yBAAP,SACE7C,EACA7nwB,EACAq5iB,GAHF,IAAAxgiB,EAAA,KAKMk3vB,GAA8B,EAClC,OAAO,SACL7H,EACAttd,GAOA,GAJA/hS,EAAK82vB,YAAW,EAAO9H,GAIlBK,EAAL,CAEQ,IAAA8H,EAAAn3vB,EAAAg3vB,SAAAhI,GAAAmI,gBAEFze,EAAcye,EAChBA,EAAgBhwwB,QAAQuxvB,YACxBvxvB,EAAQuxvB,YAGZ,GAAoB,YAAhBA,EAAJ,CAEA,IAAM6W,EAAc4H,EAChBA,EAAgBhwwB,QAAQoowB,YACxBpowB,EAAQoowB,YAENnkiB,EAAa+riB,EACfA,EAAgBrH,gBAChB,KAEEnstB,EAAYwztB,EAAkBA,EAAgBpH,eAAiB,KAEjEqH,GACAr1d,GAAgD,MAArCstd,EAAgBmF,mBACb,eAAhB9b,GACgB,sBAAhBA,EAWImP,EAAuBpiwB,QAC3B2lO,GACEikiB,EAAgBjB,gBAAkBhjiB,EAAWgjiB,eAG3CiJ,EACJ9H,IACC5rtB,GAAaA,EAAUntC,iBACtB64vB,EAAgB74vB,eACF,SAAhB+4vB,EAEF,IACGpB,EAAyBkB,EAAgBjB,gBACzCvG,GAAwB1gwB,EAAQmwwB,6BACjCF,EACA,CAGA,KACK7H,GAA+B,SAAhBA,IAChBF,EAAgB74vB,eAChB64vB,EAAgB74vB,cAAc/Y,OAAS,GACzC4xwB,EAAgB94vB,aAChB,CACA,IAAMghwB,EAAc,IAAI5xB,EAAY,CAClCnvuB,cAAe64vB,EAAgB74vB,cAC/BD,aAAc84vB,EAAgB94vB,eAGhC,GADA2gwB,GAAqB,EACjB12N,EAASp/iB,MACX,IACEo/iB,EAASp/iB,MAAMm2wB,GACf,MAAO36wB,GAEPstB,YAAW,WACT,MAAMttB,CACR,GAAG,QAILstB,YAAW,WACT,MAAMqtvB,CACR,GAAG,GACE54C,KAEHx9tB,QAAQ21D,KACN,uFAEE0mN,EAAAA,EAAAA,OAAM6xf,EAAgB/kvB,WAI9B,OAGF,IACE,IAAI9jB,OAAI,EACJgxwB,OAAS,EAEb,GAAIz1d,EAOkB,aAAhB22c,GACF14uB,EAAK81vB,SAAS9G,GAAS,WAAM,MAAC,CAAEjtd,QAAS,KAAZ,IAG/Bv7S,EAAOu7S,EAAQhgT,OACfy1wB,GAAaz1d,EAAQi8K,WAAY,OAEjC,GAAI5yP,GAAcA,EAAW5kO,OAAS6wwB,EACpC7wwB,EAAO4kO,EAAW5kO,KAClBgxwB,GAAY,MACP,CACG,IAAAC,EAAAz3vB,EAAAg3vB,SAAAhI,GAAA1kvB,SACFotvB,EAAa13vB,EAAK6+uB,UAAUgX,WAAW1+mB,KAAK,CAChD1pH,MAAOgquB,EACPzhD,UACEq5C,EAAgBmF,mBAChBnF,EAAgBr5C,UAClBD,YAAY,IAGdvvtB,EAAOkxwB,EAAW31wB,OAClBy1wB,GAAaE,EAAW15S,SAI5B,IAAI25S,OAAe,EA8BnB,GAxBEA,EADEH,GAA6B,eAAhB9e,EACG,CAChBlyvB,KAAM4kO,GAAcA,EAAW5kO,KAC/BgmrB,QAAS2hF,EAAyBkB,EAAgBjB,eAClDA,cAAeiB,EAAgBjB,cAC/BsB,OAAO,GAGS,CAChBlpwB,KAAIA,EACJgmrB,QAAS2hF,EAAyBkB,EAAgBjB,eAClDA,cAAeiB,EAAgBjB,cAC/BsB,OAAO,GAMO,QAAhBH,GACAF,EAAgB74vB,eAChB64vB,EAAgB74vB,cAAc/Y,OAAS,IAEvCk6wB,EAAgB9gwB,OAASw4vB,EAAgB74vB,eAGvCgqiB,EAAS59hB,OACPs0vB,IACCC,GACDA,EAAgBvH,0BAA0B+H,IAC5C,IACEn3N,EAAS59hB,KAAK+0vB,GACd,MAAO/6wB,GAEPstB,YAAW,WACT,MAAMttB,CACR,GAAG,GAITs6wB,GAAqB,EACrB,MAAO91wB,GAIP,OAHA81wB,GAAqB,OACjB12N,EAASp/iB,OACXo/iB,EAASp/iB,MAAM,IAAIukvB,EAAY,CAAEpvuB,aAAcnV,OArKtB,CATT,CAkLxB,CACF,EASO6zwB,EAAAl4wB,UAAA66wB,WAAP,SACEzwwB,EACAynwB,GAEA,QAFA,IAAAA,IAAAA,GAAA,GAE4B,YAAxBznwB,EAAQuxvB,YACV,MAAM,IAAI17vB,MACR,wEAKJ,IAAM09tB,EAAkBC,EAAmBxztB,EAAQsmC,OAGnD,GACEitrB,EAAgBjF,qBAChBiF,EAAgBjF,oBAAoBh4tB,OACpC,CACA,IAAMo4N,EAAgB+kgB,EAAiBF,GAEvCvztB,EAAQ6utB,UAAYlgsB,EAAO,GAAI+/L,EAAe1uN,EAAQ6utB,WAGL,qBAAxC7utB,EAAQmwwB,8BACjBnwwB,EAAQmwwB,6BAA8B,GAGxC,IAAIO,EAAqBhivB,GAAA,GAAK1uB,GAE9B,OAAO,IAAIunwB,EAAmB,CAC5BC,UAAW,KAAKA,UAChBxnwB,QAAS0wwB,EACTjJ,gBAAiBA,GAErB,EAEOqG,EAAAl4wB,UAAA0wC,MAAP,SAAgBtmC,GAAhB,IAAA6Y,EAAA,KACE,IAAK7Y,EAAQsmC,MACX,MAAM,IAAIzwC,MACR,yFAKJ,GAA2B,aAAvBmK,EAAQsmC,MAAMpvB,KAChB,MAAM,IAAIrhB,MAAM,kDAGlB,GAAKmK,EAAgBoztB,kBACnB,MAAM,IAAIv9tB,MAAM,0DAGlB,GAAKmK,EAAgBwpwB,aACnB,MAAM,IAAI3zwB,MAAM,qDAGlB,IAAM4uG,EAAY,KAAKypqB,UAEvB,OAAO,IAAIx3vB,SAA8B,SAAC4B,EAASH,GAGjD,OAFAU,EAAK83vB,qBAAwBlsqB,EAAWnsF,EAASH,GAE1CU,EAAK43vB,WAAczwwB,GAAS,GAChCpF,SACA8oB,MAAK,SAAA9oB,GACJie,EAAKi3vB,wBAAwBrrqB,GAC7BnsF,EAAQ1d,EACV,IACCopB,OAAM,SAAA/pB,GACL4e,EAAKi3vB,wBAAwBrrqB,GAC7BtsF,EAAOle,EACT,GACJ,GACF,EAEO6zwB,EAAAl4wB,UAAAkywB,gBAAP,WACE,IAAMD,EAAU,KAAKqG,UAAUj3wB,WAE/B,OADA,KAAKi3wB,YACErG,CACT,EAEOiG,EAAAl4wB,UAAAg7wB,iBAAP,SAAwB/I,GACtB,KAAKM,WAAWyC,UAAU/C,GAC1B,KAAK8H,YAAW,EAAM9H,GACtB,KAAK1Q,kBACP,EAEO2W,EAAAl4wB,UAAAy2wB,iBAAP,SAAwBxE,EAAiBh+pB,GACvC,KAAK8kqB,SAAS9G,GAAS,SAAC/wvB,OAAEigB,EAAAjgB,EAAAyrM,UAAqB,MAAC,CAC9CA,gBADwB,IAAAxrL,EAAA,GAAAA,GACH3e,OAAO,CAACyxF,IAC7B8lqB,YAAY,EAFiC,GAIjD,EAEO7B,EAAAl4wB,UAAA45wB,iBAAP,SACE3H,EACA1kvB,EACAnjB,GAHF,IAAA6Y,EAAA,KAKU+1P,EAAA,KAAAihgB,SAAAhI,GAAAj5f,OACJA,GAAQA,IAaZ,OAAO,KAAK8of,UAAUgX,WAAWr0C,MAAM,CACrC/zrB,MAAOnjB,EACP0rsB,UAAW7utB,EAAQ6utB,UACnBD,YAAY,EACZyE,eAhBqB,WACrB,IAAIA,EAAiB,KACb28C,EAAAn3vB,EAAAg3vB,SAAAhI,GAAAmI,gBACR,GAAIA,EAAiB,CACnB,IAAM/riB,EAAa+riB,EAAgBrH,gBAC/B1kiB,IACFovf,EAAiBpvf,EAAW5kO,MAIhC,OAAOg0tB,CACT,EAMEp1mB,SAAU,SAAC28L,GACT/hS,EAAK81vB,SAAS9G,GAAS,WAAM,MAAC,CAAE6H,aAAa,EAAM90d,QAAOA,EAA7B,GAC/B,GAEJ,EAGOkzd,EAAAl4wB,UAAA+6wB,qBAAP,SACElsqB,EACAnsF,EACAH,GAEA,KAAKg2vB,mBAAmBz7uB,IAAI+xE,EAAUxtG,WAAY,CAChDqhB,QAAOA,EACPH,OAAMA,GAEV,EAGO21vB,EAAAl4wB,UAAAk6wB,wBAAP,SAA+BrrqB,GAC7B,KAAK0pqB,mBAAmB1yrB,OAAOgpB,EAAUxtG,WAC3C,EAGO62wB,EAAAl4wB,UAAA40wB,mBAAP,SACE3C,EACAmI,GAEA,KAAKrB,SAAS9G,GAAS,WAAM,MAAC,CAAEmI,gBAAeA,EAAlB,IAG7B,IAAM7pC,EAAW3S,EAAmBw8C,EAAgBhwwB,QAAQsmC,OAC5D,GAAI6/rB,EAASrwuB,MAAQqwuB,EAASrwuB,KAAK4G,MAAO,CACxC,IAAMmywB,EAAY1oC,EAASrwuB,KAAK4G,MAGhC,KAAK0xwB,eAAeS,GAAa,KAAKT,eAAeS,IAAc,GACnE,KAAKT,eAAeS,GAAWv3vB,KAAK04vB,EAAgBnI,SAExD,EAEOiG,EAAAl4wB,UAAA+0wB,sBAAP,SAA6B9C,GACrB,IAAA/wvB,EAAA,KAAA+4vB,SAAAhI,GAAEmI,EAAAl5vB,EAAAk5vB,gBAAiBphgB,EAAA93P,EAAA83P,OAEzB,GADIA,GAAQA,IACPohgB,EAAL,CAEA,IAAM5zlB,EAAao3iB,EAAmBw8C,EAAgBhwwB,QAAQsmC,OACxDuouB,EAAYzylB,EAAWtmL,KAAOsmL,EAAWtmL,KAAK4G,MAAQ,KAC5D,KAAKiywB,SAAS9G,GAAS,WAAM,MAAC,CAAEmI,gBAAiB,KAApB,IACzBnB,IACF,KAAKT,eAAeS,GAAa,KAAKT,eAAeS,GAAW1kwB,QAC9D,SAAAo7F,GACE,QAASyqqB,EAAgBnI,UAAYtiqB,EACvC,IATkB,CAYxB,EAEOuoqB,EAAAl4wB,UAAAi7wB,WAAP,WAOE,KAAK1C,mBAAmBzzvB,SAAQ,SAAC5D,IAC/BqB,EADiCrB,EAAAqB,QAE/B,IAAItiB,MACF,sEAGN,IAEA,IAAMi7wB,EAAqB,GAU3B,OATA,KAAKzW,QAAQ3/uB,SAAQ,SAAC5D,EAAqB+wvB,GAAnB/wvB,EAAAk5vB,iBACDc,EAASx5vB,KAAKuwvB,EACrC,IAEA,KAAKM,WAAW96uB,MAAMyjvB,GACtB,KAAK7C,cAAc5gvB,QAGL,KAAKqquB,UAAUrquB,OAE/B,EAEOygvB,EAAAl4wB,UAAAm7wB,WAAP,eAAAl4vB,EAAA,KAOE,OAAO,KAAKg4vB,aAAantvB,MAAK,WAC5B,OAAO7K,EAAKm4vB,0BACd,GACF,EAEOlD,EAAAl4wB,UAAAo7wB,yBAAP,SACEC,GAEA,IAAMC,EAEA,KAAKC,2BAA2BF,GAItC,OAFA,KAAK9Z,mBAEEzgvB,QAAQC,IAAIu6vB,EACrB,EAEOpD,EAAAl4wB,UAAA60wB,WAAP,SACE5C,EACA7nwB,EACA6pG,GASA,OAPA,KAAKwiqB,iBAAiBxE,EAASh+pB,GAE/B,KAAKm/pB,WAAcnB,EAAS7nwB,GAGzBgkB,OAAM,WAAM,IAER6jvB,CACT,EAEOiG,EAAAl4wB,UAAA0zwB,yBAAP,SACEtpwB,GADF,IAgBMq0G,EAhBNx7F,EAAA,KAGUytB,EAAAtmC,EAAAsmC,MACF8quB,IACJpxwB,EAAQuxvB,aAAuC,aAAxBvxvB,EAAQuxvB,aAG7B8f,EADU,KAAK3Z,UAAUgX,WACFjgD,kBAAkBnorB,GAEvCuorB,EAAYlgsB,EAChB,GACA8ksB,EAAiB0D,EAAuB7wrB,IACxCtmC,EAAQ6utB,WAINyS,EAA6B,GAEjC,OAAO,IAAI5mM,GAAW,SAAA2e,GAKpB,GAJAioL,EAAUhqtB,KAAK+hiB,GAIU,IAArBioL,EAAUhruB,OAAc,CAC1B,IAAM0wK,EAAU,CACdvrJ,KAAM,SAAC7gB,GACDw2wB,IACFv4vB,EAAK6+uB,UAAU4Z,uBACb12wB,EACAy2wB,EACAxiD,GAEFh2sB,EAAKs+uB,oBAGP71B,EAAU5mtB,SAAQ,SAAAm8uB,GAOZ7sB,EAAsBpvuB,IAAWi8vB,EAAI58vB,MACvC48vB,EAAI58vB,MACF,IAAIukvB,EAAY,CACdnvuB,cAAezU,EAAO8U,UAGjBmnvB,EAAIp7uB,MACbo7uB,EAAIp7uB,KAAK7gB,EAEb,GACF,EACAX,MAAO,SAACA,GACNqnuB,EAAU5mtB,SAAQ,SAAAm8uB,GACZA,EAAI58vB,OACN48vB,EAAI58vB,MAAMA,EAEd,GACF,GAKIs6B,EAAY1b,EAAKwlvB,sBAAsBgT,EAAgBxiD,GAC7Dx6mB,EAAM0zV,EAAQlvb,EAAK6poB,KAAMnunB,GAAWq2J,UAAU5jB,GAGhD,OAAO,WAIoB,KAHzBs6jB,EAAYA,EAAUn3tB,QAAO,SAAA0svB,GAAO,OAAAA,IAAQx9M,CAAR,KAGtB/ijB,QAAgB+9G,GAC5BA,EAAI4nnB,aAER,CACF,GACF,EAEO6xC,EAAAl4wB,UAAAg1wB,UAAP,SAAiB/C,GACf,KAAK+I,iBAAiB/I,GACtB,KAAKG,YAAYH,EACnB,EAEOiG,EAAAl4wB,UAAAoywB,YAAP,SAAmBH,GACT,KAAAgI,SAAAhI,GAAApC,cAEM/qvB,SAAQ,SAAA7Z,GAAK,OAAAA,EAAEo7tB,aAAF,IAC3B,KAAKo+B,QAAQ5+qB,OAAOosrB,EACtB,EAEOiG,EAAAl4wB,UAAAyywB,sBAAP,SACE2H,EACAphD,QAAA,IAAAA,IAAAA,GAAA,GAEM,IAAA93sB,EAAAk5vB,EAAAhwwB,QAAE6utB,EAAA/3sB,EAAA+3sB,UAAWvorB,EAAAxvB,EAAAwvB,MACb29L,EAAa+riB,EAAgBrH,gBAC3B/td,EAAA,KAAAi1d,SAAAG,EAAAnI,SAAAjtd,QAER,GAAIA,GAAWA,EAAQi8K,SACrB,MAAO,CAAEx3d,KAAMu7S,EAAQhgT,OAAQs0uB,SAAS,GAExC,IASE,MAAO,CAAE7vuB,KAPI,KAAKq4vB,UAAUgX,WAAWrvtB,KAAK,CAC1C/Y,MAAKA,EACLuorB,UAASA,EACTwE,eAAgBpvf,EAAaA,EAAW5kO,UAAOtB,EAC/C6wtB,WAAUA,IAGGsgB,SAAS,GACxB,MAAOz5uB,GACP,MAAO,CAAE4J,KAAM,GAAI6vuB,SAAS,GAGlC,EAEO4+B,EAAAl4wB,UAAAo0wB,2BAAP,SACEuH,GAMA,IAAIvB,EACJ,GAAmC,kBAAxBuB,EAAkC,CACnC,IAAAC,EAAA,KAAA3B,SAAA0B,GAAAvB,gBAGR,IAAKwB,EACH,MAAM,IAAI37wB,MACR,+CAA+C07wB,GAGnDvB,EAAkBwB,OAElBxB,EAAkBuB,EAGd,IAAAz6vB,EAAAk5vB,EAAAhwwB,QAAE6utB,EAAA/3sB,EAAA+3sB,UAAWvorB,EAAAxvB,EAAAwvB,MAInB,MAAO,CACL+srB,eAHM,KAAAg1C,sBAAA2H,GAAA,GAAA3wwB,KAINwvtB,UAASA,EACT1rsB,SAAUmjB,EAEd,EAEOwnuB,EAAAl4wB,UAAAuhwB,iBAAP,eAAAt+uB,EAAA,KACE,KAAKm1vB,cACL,KAAK3T,QAAQ3/uB,SAAQ,SAACi1C,EAAMvxD,GACrBuxD,EAAK+/sB,aAAgB//sB,EAAK4yJ,WAC/B5yJ,EAAK4yJ,UAGFp4M,QAAO,SAACtJ,GAAqB,QAAEA,CAAF,IAC7B6Z,SAAQ,SAACmvF,GACRA,EAAShxF,EAAKsvvB,WAAW3yvB,IAAIpX,GAAKuxD,EAAKirP,QACzC,GACJ,GACF,EAEQkzd,EAAAl4wB,UAAAu7wB,2BAAR,SACEF,GADF,IAAAp4vB,EAAA,KAGQq4vB,EAA6D,GAiBnE,OAhBA,KAAK7W,QAAQ3/uB,SAAQ,SAAC5D,EAAqB+wvB,OAAnBmI,EAAAl5vB,EAAAk5vB,gBACtB,GAAKA,EAAL,CACA,IAAMze,EAAcye,EAAgBhwwB,QAAQuxvB,YAE5Cye,EAAgBnH,mBAEE,eAAhBtX,IACC0f,GAAkC,YAAhB1f,GAEnB2f,EAAwB55vB,KAAK04vB,EAAgB3kwB,WAG/CwN,EAAK81vB,SAAS9G,GAAS,WAAM,MAAC,CAAEjtd,QAAS,KAAZ,IAC7B/hS,EAAK82vB,YAAW,EAAM9H,EAZA,CAaxB,IAEOqJ,CACT,EAKQpD,EAAAl4wB,UAAA4tM,aAAR,SAAwB1sL,GAAxB,IAqBM05vB,EACAiB,EAtBN54vB,EAAA,KACE4rF,EAAA3tF,EAAA2tF,UACAojqB,EAAA/wvB,EAAA+wvB,QACA1kvB,EAAArM,EAAAqM,SACAnjB,EAAA8W,EAAA9W,QACAytwB,EAAA32vB,EAAA22vB,oBAQQ5+C,EAAA7utB,EAAA6utB,UAAWhytB,EAAAmD,EAAAnD,QAASk6B,EAAA/2B,EAAAoowB,YAAAA,OAAA,IAAArxuB,EAAA,OAAAA,EAAsBw6tB,EAAAvxvB,EAAAuxvB,YAC5Ch9tB,EAAY,KAAK8puB,sBAAsBl7uB,EAAU0rsB,EAASngsB,GAAA,GAC3D7xB,EAAO,CAGVyuwB,YAAa,KAAKyC,sBAMpB,OAAO,IAAIr3vB,SAA8B,SAAC4B,EAASH,GACjDU,EAAK83vB,qBAAwBlsqB,EAAWnsF,EAASH,GACjD,IAAMkmuB,EAAet2S,EAAQlvb,EAAKw1vB,aAAc95uB,GAAWq2J,UAAU,CACnEnvK,KAAM,SAAC7gB,GAEG,IAAA60wB,EAAA52vB,EAAAg3vB,SAAAhI,GAAA4H,cACR,GAAIhrqB,IAAcgrqB,GAAiB,GAAI,CACrC,GAAoB,aAAhBle,EACF,IACE14uB,EAAK6+uB,UAAUgW,gBACb9ywB,EACAuoB,EACA0rsB,EACA4+C,EACgB,WAAhBrF,GAA4C,QAAhBA,GAE9B,MAAO3ywB,GAEP,YADA0iB,EAAO1iB,QAITojB,EAAK81vB,SAAS9G,GAAS,WAAM,MAAC,CAC5Bjtd,QAAS,CAAEhgT,OAAQA,EAAOyE,KAAMw3d,UAAU,GADf,IAK/Bh+c,EAAKsvvB,WAAWuF,gBACd7F,EACAjtwB,EACA6ywB,GAGF50vB,EAAK82vB,YAAW,EAAM9H,EAAS4F,GAE/B50vB,EAAKs+uB,mBAGP,GAAIv8vB,EAAO8U,QAA0B,SAAhB04vB,EACnBjwvB,EACE,IAAIqmuB,EAAY,CACdnvuB,cAAezU,EAAO8U,eAQ5B,GAJ2B,QAAhB04vB,IACTqJ,EAAkB72wB,EAAO8U,QAGvB+9vB,GAAuC,aAAhBlc,EAGzBif,EAAkB51wB,EAAOyE,UAEzB,IAEEmxwB,EAAkB33vB,EAAK6+uB,UAAUgX,WAAWrvtB,KAAK,CAC/CwvqB,UAASA,EACTvorB,MAAOnjB,EACPyrsB,YAAY,IAKd,MAAOn5tB,GAAG,CAEhB,EACAwE,MAAO,SAACA,GACN4e,EAAKi3vB,wBAAwBrrqB,GAC7B5rF,EAAK81vB,SAAS9G,GAAS,SAAC/wvB,GAAsB,MAAC,CAC7C2uvB,cADwB3uvB,EAAA2uvB,cACKt7vB,QAAO,SAAAtJ,GAAK,OAAAA,IAAMw9uB,CAAN,IADG,IAI9ClmuB,EAAOle,EACT,EACA48d,SAAU,WACRh+c,EAAKi3vB,wBAAwBrrqB,GAC7B5rF,EAAK81vB,SAAS9G,GAAS,SAAC/wvB,GAAsB,MAAC,CAC7C2uvB,cADwB3uvB,EAAA2uvB,cACKt7vB,QAAO,SAAAtJ,GAAK,OAAAA,IAAMw9uB,CAAN,IADG,IAI9C/luB,EAAQ,CACNjZ,KAAMmxwB,EACN9gwB,OAAQ+hwB,EACRpsF,SAAS,EACT4hF,cAAeF,EAAc9vhB,MAC7BsxhB,OAAO,GAEX,IAGF1vvB,EAAK81vB,SAAS9G,GAAS,SAAC/wvB,GAAsB,MAAC,CAC7C2uvB,cADwB3uvB,EAAA2uvB,cACKrtvB,OAAO,CAACimuB,IADO,GAGhD,GACF,EAIQyvB,EAAAl4wB,UAAAw5wB,mBAAR,SAA2BP,GAA3B,IAAAh2vB,EAAA,KACQ64vB,EAAmB,KAAKtD,eAAeS,GAI7C,QAAyB9wwB,IAArB2zwB,EACJ,OAAOh7vB,QAAQC,IACb+6vB,EACG9rwB,KAAI,SAAAxH,GAAM,OAAAya,EAAKg3vB,SAASzxwB,GAAI4xwB,eAAlB,IACV7lwB,QAAO,SAAAtJ,GAAK,QAAEA,CAAF,IACZ+E,KAAI,SAAC/E,GAA4B,OAAAA,EAAEwK,SAAF,IAExC,EAEQyiwB,EAAAl4wB,UAAA25wB,kBAAR,WACE,IAAM9qqB,EAAY,KAAKypqB,UAEvB,OADA,KAAKA,YACEzpqB,CACT,EAEQqpqB,EAAAl4wB,UAAAi6wB,SAAR,SAAiBhI,GACf,OAAO,KAAKxN,QAAQ7kvB,IAAIqyvB,IAAY,CAClCtljB,UAAW,GACXmtjB,aAAa,EACbvsvB,SAAU,KACVy3R,QAAS,KACT60d,cAAe,KACfO,gBAAiB,KACjBvK,cAAe,GAEnB,EAEQqI,EAAAl4wB,UAAA+4wB,SAAR,SAAiB9G,EAAiB9S,GAChC,IAAM/3oB,EAAO,KAAK6ypB,SAAShI,GACrB8J,EAAOjjvB,GAAA,GAAQsuF,EAAS+3oB,EAAQ/3oB,IACtC,KAAKq9oB,QAAQ3nuB,IAAIm1uB,EAAS8J,EAC5B,EAEQ7D,EAAAl4wB,UAAA+5wB,WAAR,SACED,EACA7H,EACA4F,GAEI5F,GAAS,KAAK8G,SAAS9G,GAAS,WAAM,MAAC,CAAE6H,YAAWA,EAAd,IAEtCjC,GACF,KAAKkB,SAASlB,GAAqB,WAAM,MAAC,CAAEiC,YAAWA,EAAd,GAE7C,EAEQ5B,EAAAl4wB,UAAAyowB,sBAAR,SACEl7uB,EACA0rsB,EACAyvC,GAEA,IAAM9kpB,EAAQ,KAAKk+oB,UAAUgX,WAE7B,MAAO,CACLpouB,MAAOkzE,EAAMk1mB,iBACTl1mB,EAAMk1mB,iBAAiBvrsB,GACvBA,EACJ0rsB,UAASA,EACTmR,cAAegD,EAAiB7/sB,SAAaplB,EAC7ClB,QAAO6xB,GAAA,GACF4vuB,EAAY,CACf9kpB,MAAKA,EAELm8mB,YAAa,SAAC56sB,GACZ,GAAKy+F,EAAchlE,OAEjB,OAAQglE,EAAchlE,OAAOk/qB,iBAAiB34sB,GAE9C,MAAM,IAAIllB,MACR,4HAGN,IAGN,EACFi4wB,CAAA,CA5rCA,GCrCA8D,GAAA,WAGE,SAAAA,EAAYC,GACV,KAAKr4pB,MAAQq4pB,CACf,CAuLF,OArLSD,EAAAh8wB,UAAA84wB,SAAP,WACE,OAAO,KAAKl1pB,KACd,EAEOo4pB,EAAAh8wB,UAAA83wB,gBAAP,SACE9ywB,EACAuoB,EACA0rsB,EACA4+C,EACAqE,QAAA,IAAAA,IAAAA,GAAA,GAEA,IAAIC,GAAmB/nC,EAAsBpvuB,GACzCk3wB,GAAgB9nC,EAAsBpvuB,IAAWA,EAAOyE,OAC1D0ywB,GAAkB,IAEftE,GAAuBsE,GAC1B,KAAKv4pB,MAAM5M,MAAM,CACfhyG,OAAQA,EAAOyE,KACfoprB,OAAQ,aACRnipB,MAAOnjB,EACP0rsB,UAAWA,GAGjB,EAEO+iD,EAAAh8wB,UAAA07wB,uBAAP,SACE12wB,EACAuoB,EACA0rsB,GAIKmb,EAAsBpvuB,IACzB,KAAK4+G,MAAM5M,MAAM,CACfhyG,OAAQA,EAAOyE,KACfoprB,OAAQ,oBACRnipB,MAAOnjB,EACP0rsB,UAAWA,GAGjB,EAEO+iD,EAAAh8wB,UAAAk5wB,iBAAP,SAAwB35B,GAAxB,IAAAt8tB,EAAA,KAQE,GAAIs8tB,EAASmc,mBAAoB,CAC/B,IAAIv2B,EAEFA,EADyC,oBAAhCoa,EAASmc,mBACLnc,EAASmc,mBAAmBnc,EAAStmB,WAErCsmB,EAASmc,mBAcxB,KAAK93oB,MAAMihnB,6BAA4B,SAAA9juB,GACrC,IAAMq7wB,EAAOn5vB,EAAK2gG,MAClB3gG,EAAK2gG,MAAQ7iH,EAEb,IAdAkiB,EAAKg/uB,mBAAmB,CACtBC,WAAY3iB,EAAS2iB,WACrBl9vB,OAAQ,CAAEyE,KAAM07tB,GAChB53sB,SAAUgytB,EAAShytB,SACnB0rsB,UAAWsmB,EAAStmB,UACpBkpC,cAAe5iB,EAAS4iB,cACxBhruB,OAAQootB,EAASpotB,SAUlB,QACClU,EAAK2gG,MAAQw4pB,EAEjB,GAAG78B,EAAS2iB,YAEhB,EAEO8Z,EAAAh8wB,UAAAiiwB,mBAAP,SAA0B1iB,GAA1B,IAAAt8tB,EAAA,KASE,IAAKmxtB,EAAsBmL,EAASv6uB,QAAS,CAC3C,IAAMq3wB,EAAoC,GAC1CA,EAAY36vB,KAAK,CACf1c,OAAQu6uB,EAASv6uB,OAAOyE,KACxBoprB,OAAQ,gBACRnipB,MAAO6usB,EAAShytB,SAChB0rsB,UAAWsmB,EAAStmB,YAGlBsmB,EAAS4iB,eACXtivB,OAAOwE,KAAKk7tB,EAAS4iB,eAClB5tvB,QAAO,SAAA/L,GAAM,OAAA+2uB,EAAS4iB,cAAc35vB,EAAvB,IACbsc,SAAQ,SAAAmtvB,GACD,IAAA/wvB,EAAAq+tB,EAAA4iB,cAAA8P,GAAEvhuB,EAAAxvB,EAAAwvB,MAAOyutB,EAAAj+uB,EAAAi+uB,QAETh+tB,EAAAle,EAAA2gG,MAAAw2C,KAAA,6EAAEkinB,EAAAn7uB,EAAAn8B,OAOR,GAPoCm8B,EAAA8/b,SAOpC,CAKA,IAAMs7S,EAAkBpoC,GAAsB,WAC5C,OAAAgrB,EAAQmd,EAAoB,CAC1BE,eAAgBj9B,EAASv6uB,OACzBi0wB,UAAW7rC,EAAiB18rB,EAAMnjB,gBAAaplB,EAC/Cs0wB,eAAgB/ruB,EAAMuorB,WAHxB,IAQEsjD,GACFF,EAAY36vB,KAAK,CACf1c,OAAQu3wB,EACR1pF,OAAQ,aACRnipB,MAAOA,EAAMnjB,SACb0rsB,UAAWvorB,EAAMuorB,YAGvB,IAGJ,KAAKr1mB,MAAMkhnB,oBAAmB,SAAA/juB,GAC5Bs7wB,EAAYv3vB,SAAQ,SAAAkyF,GAAS,OAAAj2G,EAAEi2G,MAAMA,EAAR,GAC/B,IAKA,IAAMuxU,EAASg3T,EAASpotB,OACpBoxZ,GACF,KAAK3kU,MAAMkhnB,oBAAmB,SAAA/juB,GAC5BozuB,GAAsB,WAAM,OAAA5rT,EAAOxnb,EAAGw+uB,EAASv6uB,OAAnB,GAC9B,IAGN,EAEOg3wB,EAAAh8wB,UAAAo5wB,qBAAP,SAA4Bl4vB,OAC1BghvB,EAAAhhvB,EAAAghvB,WACAhhvB,EAAAw6uB,oBAMA,KAAK93oB,MAAM+gnB,iBAAiBu9B,EAC9B,EAEO8Z,EAAAh8wB,UAAAq0wB,sBAAP,SACE9mvB,EACA0rsB,EACA65C,GAEA,KAAKlvpB,MAAM5M,MAAM,CACfhyG,OAAQ8twB,EACRjgF,OAAQ,aACRomC,UAASA,EACTvorB,MAAOnjB,GAEX,EAEOyuvB,EAAAh8wB,UAAAy3B,MAAP,WACE,OAAO,KAAKmsF,MAAMnsF,OACpB,EACFukvB,CAAA,CA5LA,kOCiBIU,IAAuB,EAkB3BC,GAAA,WAgCE,SAAAA,EAAYvywB,GAAZ,IAAA6Y,EAAA,KAxBO,KAAA+8I,eAAiC,GAKhC,KAAA48mB,oBAAiD,GAqBrD,IAAA9vH,EAAA1ipB,EAAA0ipB,KACAlpiB,EAAAx5G,EAAAw5G,MACA1iG,EAAA9W,EAAA8rwB,QAAAA,OAAA,IAAAh1vB,GAAAA,EACAigB,EAAA/2B,EAAAyywB,mBAAAA,OAAA,IAAA17uB,EAAA,EAAAA,EACA27uB,EAAA1ywB,EAAA0ywB,kBACA3+kB,EAAA/zL,EAAA+twB,mBAAAA,OAAA,IAAAh6kB,GAAAA,EACAn+B,EAAA51J,EAAA41J,eAGF,IAAK8sf,IAASlpiB,EACZ,MAAM,IAAI3jH,MAAM,yXASlB,IAAM88wB,EAAiB,IAAI59vB,IACrB69vB,EAAsB,IAAIt0C,GAC9B,SAAC/psB,EAAsBgqsB,GACrB,IVqF8C/0mB,EUrF1C5uH,EAAS+3wB,EAAen9vB,IAAI+e,EAAU+R,OAO1C,OANM1rC,IVqFZoruB,EADoDx8mB,EUnFGj1F,EAAU+R,OAAzD1rC,EVqFDosuB,EAA6B,CAACe,GAAyBv+mB,GUpFtDmppB,EAAejgvB,IAAI6B,EAAU+R,MAAO1rC,GACpC+3wB,EAAejgvB,IAAI93B,EAAQA,IAE7B25B,EAAU+R,MAAQ1rC,EACX2juB,EAAQhqsB,EACjB,IAIF,KAAKmunB,KAAOkwH,EAAoBx6vB,OAAOsqoB,GACvC,KAAKlpiB,MAAQA,EACb,KAAK8kkB,MAAQ,IAAIszF,GAAUp4pB,GAC3B,KAAKq5pB,sBAAwB/G,GAAW2G,EAAqB,EAC7D,KAAK1E,mBAAqBA,EAC1B,KAAKjC,QAAUA,EACf,KAAKl2mB,eAAiBA,GAAkB,GAEpC68mB,GACF1vvB,YACE,WAAM,OAAClK,EAAKg6vB,uBAAwB,CAA9B,GACNJ,GAIJ,KAAKhC,WAAa,KAAKA,WAAWv6wB,KAAK,MACvC,KAAKowC,MAAQ,KAAKA,MAAMpwC,KAAK,MAC7B,KAAKi0M,OAAS,KAAKA,OAAOj0M,KAAK,MAC/B,KAAK66wB,WAAa,KAAKA,WAAW76wB,KAAK,MACvC,KAAK86wB,yBAA2B,KAAKA,yBAAyB96wB,KAAK,MAInE,IAAM48wB,GACHt7C,KACiB,qBAAXxhuB,SACLA,OAAe+8wB,mBAGY,qBAAtBL,EACHI,EACAJ,GAAuC,qBAAX18wB,UAE/BA,OAAe+8wB,kBAAoB,MAMjCT,IAAyB96C,MAC5B86C,IAAuB,EAEH,qBAAXt8wB,QACPA,OAAOmtB,UACPntB,OAAOsgI,MAAQtgI,OAAOujH,MAIuC,qBAAnDvjH,OAAeg9wB,iCAIrBh9wB,OAAO8vB,WACP9vB,OAAO8vB,UAAUD,WACjB7vB,OAAO8vB,UAAUD,UAAU/uB,QAAQ,WAAa,GAGhDkD,QAAQ63C,MACN,2KAQV,KAAKqC,QAAUA,GAAAA,CACjB,CA+UF,OA3TSq+tB,EAAA38wB,UAAA66wB,WAAP,SACEzwwB,GAkBA,OAhBI,KAAK41J,eAAe66mB,aACtBzwwB,EAAU0uB,GAAA,GACL,KAAKknI,eAAe66mB,WACpBzwwB,KAML,KAAK6ywB,uBACoB,iBAAxB7ywB,EAAQuxvB,aACiB,sBAAxBvxvB,EAAQuxvB,cAEVvxvB,EAAO0uB,GAAA,GAAQ1uB,EAAO,CAAEuxvB,YAAa,iBAGhC,KAAKkG,mBAAmBgZ,WAAczwwB,EAC/C,EAWOuywB,EAAA38wB,UAAA0wC,MAAP,SACEtmC,GAQA,GANI,KAAK41J,eAAetvH,QACtBtmC,EAAU0uB,GAAA,GAAK,KAAKknI,eAAetvH,MAAUtmC,IAKnB,sBAAxBA,EAAQuxvB,YACV,MAAM,IAAI17vB,MACR,kEAUJ,OAJI,KAAKg9wB,uBAAiD,iBAAxB7ywB,EAAQuxvB,cACxCvxvB,EAAO0uB,GAAA,GAAQ1uB,EAAO,CAAEuxvB,YAAa,iBAGhC,KAAKkG,mBAAmBnxtB,MAAStmC,EAC1C,EASOuywB,EAAA38wB,UAAAu0M,OAAP,SACEnqM,GASA,OAPI,KAAK41J,eAAeu0C,SACtBnqM,EAAU0uB,GAAA,GACL,KAAKknI,eAAeu0C,OACpBnqM,IAIA,KAAKy3vB,mBAAmBttjB,OAAUnqM,EAC3C,EAMOuywB,EAAA38wB,UAAAg1L,UAAP,SACE5qL,GAEA,OAAO,KAAKy3vB,mBAAmB6R,yBAAyBtpwB,EAC1D,EAWOuywB,EAAA38wB,UAAA+4tB,UAAP,SACE3utB,EACA4utB,GAEA,YAFA,IAAAA,IAAAA,GAAA,GAEO,KAAKqkD,YAAYtkD,UAAa3utB,EAAS4utB,EAChD,EAgBO2jD,EAAA38wB,UAAAk5tB,aAAP,SACE9utB,EACA4utB,GAEA,YAFA,IAAAA,IAAAA,GAAA,GAEO,KAAKqkD,YAAYnkD,aAAgB9utB,EAAS4utB,EACnD,EAOO2jD,EAAA38wB,UAAAs5tB,WAAP,SACElvtB,GAEA,IAAMpF,EAAS,KAAKq4wB,YAAY/jD,WAAWlvtB,GAE3C,OADA,KAAKy3vB,mBAAmBN,mBACjBv8vB,CACT,EAaO23wB,EAAA38wB,UAAAu5tB,cAAP,SACEnvtB,GAEA,IAAMpF,EAAS,KAAKq4wB,YAAY9jD,cAAcnvtB,GAE9C,OADA,KAAKy3vB,mBAAmBN,mBACjBv8vB,CACT,EAYO23wB,EAAA38wB,UAAAw5tB,UAAP,SACEpvtB,GAEA,IAAMpF,EAAS,KAAKq4wB,YAAY7jD,UAAUpvtB,GAE1C,OADA,KAAKy3vB,mBAAmBN,mBACjBv8vB,CACT,EAEO23wB,EAAA38wB,UAAAs9wB,wBAAP,SAA+Bj0oB,GAC7B,KAAKk0oB,eAAiBl0oB,CACxB,EAEOszoB,EAAA38wB,UAAAw9wB,aAAP,SAAoBx5wB,GAClB,OAAOmuc,EAAQ,KAAK26M,KAAM9opB,EAC5B,EAKO24wB,EAAA38wB,UAAA6hwB,iBAAP,eAAA5+uB,EAAA,KAyBE,OAxBK,KAAKq+uB,eACR,KAAKA,aAAe,IAAI4W,GAAa,CACnCprH,KAAM,KAAKA,KACX47B,MAAO,KAAKA,MACZyvF,mBAAoB,KAAKA,mBACzBjC,QAAS,KAAKA,QACdkC,YAAa,WACPn1vB,EAAKs6vB,gBACPt6vB,EAAKs6vB,eAAe,CAClB/4wB,OAAQ,GACRD,MAAO,CACLkgwB,QAASxhvB,EAAKq+uB,aACVr+uB,EAAKq+uB,aAAaiR,WAAW0E,WAC7B,GACJwG,UAAWx6vB,EAAKq+uB,aACZr+uB,EAAKq+uB,aAAa+W,cAAcpB,WAChC,IAENyG,0BAA2Bz6vB,EAAK2gG,MAAM0gnB,SAAQ,IAGpD,KAGG,KAAKg9B,YACd,EAkBOqb,EAAA38wB,UAAAm7wB,WAAP,eAAAl4vB,EAAA,KACE,OAAOnC,QAAQ4B,UACZoL,MAAK,WACJ,OAAO7K,EAAKq+uB,aACRr+uB,EAAKq+uB,aAAa2Z,aAClBn6vB,QAAQ4B,QAAQ,KACtB,IACCoL,MAAK,WAAM,OAAAhN,QAAQC,IAAIkC,EAAK25vB,oBAAoB5swB,KAAI,SAAAyY,GAAM,OAAAA,GAAA,IAA/C,IACXqF,MAAK,WACJ,OAAO7K,EAAKq+uB,cAAgBr+uB,EAAKq+uB,aAAa8Z,yBAC1Cn4vB,EAAKq+uB,aAAa8Z,2BAClBt6vB,QAAQ4B,QAAQ,KACtB,GACJ,EAMOi6vB,EAAA38wB,UAAAi7wB,WAAP,WACU,IAAA3Z,EAAA,KAAAA,aACR,OAAOxgvB,QAAQ4B,UAAUoL,MACvB,WAAM,OAACwzuB,EAAeA,EAAa2Z,aAAen6vB,QAAQ4B,QAAQ,KAA5D,GAEV,EAOOi6vB,EAAA38wB,UAAA29wB,aAAP,SAAoBt0oB,GAApB,IAAApmH,EAAA,KAEE,OADA,KAAK25vB,oBAAoBl7vB,KAAK2nH,GACvB,WACLpmH,EAAK25vB,oBAAsB35vB,EAAK25vB,oBAAoBrowB,QAAO,SAAAxT,GAAK,OAAAA,IAAMsoI,CAAN,GAClE,CACF,EAcOszoB,EAAA38wB,UAAAo7wB,yBAAP,SACEC,GAEA,OAAO,KAAK/Z,aACR,KAAKA,aAAa8Z,yBAAyBC,GAC3Cv6vB,QAAQ4B,QAAQ,KACtB,EAKOi6vB,EAAA38wB,UAAAskuB,QAAP,SAAetL,GACb,OAAO,KAAKqkD,YAAY/4C,QAAQtL,EAClC,EASO2jD,EAAA38wB,UAAAorF,QAAP,SAAewyrB,GACb,OAAO,KAAKP,YAAYjyrB,QAAQwyrB,EAClC,EAOQjB,EAAA38wB,UAAAq9wB,UAAR,WAKE,OAJK,KAAK/glB,QACR,KAAKulkB,mBACL,KAAKvlkB,MAAQ,KAAK14E,OAEb,KAAK04E,KACd,EACFqglB,CAAA,CAtdA,SC5BA,2BC/BAjlvB,EAAQ,EAAU,6+BCwBlB,IAAA60sB,EAAA,SAAA1uiB,GAEE,SAAA0uiB,EAAYxsuB,EAAkB+spB,GAA9B,IAAA7poB,EACE46K,EAAAj4K,KAAA,KAAM7lB,IAAQ,YACdkjB,EAAK6poB,KAAOA,GACd,CACF,OAN+Bn0nB,EAAA4zsB,EAAA1uiB,GAM/B0uiB,CAAA,CANA,CAA+BtsuB,OAQzB,SAAUusuB,EAAc1/E,GAC5B,OAAOA,EAAKzonB,QAAQ3jC,QAAU,CAChC,CAEM,SAAUm9wB,EAAapgC,GAC3B,IAAI9ljB,GAAY,EAChB,OAAO,IAAI72K,SAAW,SAAC4B,EAASH,GAC9Bk7tB,EAAWzojB,UAAU,CACnBnvK,KAAM,SAAApc,GACAkuL,EACFvzL,QAAQioB,KACN,sEAGFsrK,GAAY,EACZj1K,EAAQjZ,GAEZ,EACApF,MAAOke,GAEX,GACF,CAGO,IAAMu7vB,EAAcD,EAErB,SAAUE,EAAe94kB,GAC7B,OAAO,IAAI6/V,EAAAA,GAAc,SAAA2e,GACvBx+W,EACGn3K,MAAK,SAAChnB,GACL28iB,EAAS59hB,KAAK/e,GACd28iB,EAASxiF,UACX,IACC7yc,MAAMq1hB,EAASp/iB,MAAM/D,KAAKmjjB,GAC/B,GACF,CAEM,SAAUwnL,EAAawB,GAC3B,OAAO,IAAI3nM,EAAAA,GAAc,SAAA2e,GACvBA,EAASp/iB,MAAMoouB,EACjB,GACF,CAqBM,SAAUC,EACdC,EACAhusB,GAEA,IAAI13B,EAAO6xB,EAAA,GAAQ6zsB,GAyBnB,OAfA9stB,OAAOC,eAAe6e,EAAW,aAAc,CAC7C1e,YAAY,EACZnZ,MAXiB,SAAA+e,GAEf5e,EAAO6xB,EAAA,GAAQ7xB,EADG,oBAAT4e,EACkBA,EAAK5e,GAEL4e,EAE/B,IAQAhG,OAAOC,eAAe6e,EAAW,aAAc,CAC7C1e,YAAY,EACZnZ,MATiB,WAAM,OAAAgyB,EAAC,CAAC,EAAI7xB,EAAN,IAYzB4Y,OAAOC,eAAe6e,EAAW,QAAS,CACxC1e,YAAY,EACZnZ,MAAO,WAAM,OAMX,SAAiB63B,GAGrB,OAAU8hP,EAAAA,EAAAA,OAAM9hP,EAAU+R,OAAM,IAAIlvC,KAAKQ,UAAU28B,EAAUs6rB,WAAU,IACrEt6rB,EAAUyrsB,aAEd,CAZiBwC,CAAOjusB,EAAP,IAGRA,CACT,CC1GA,IAAMkusB,EAAc,SAACjysB,EAAI+tsB,GAAY,OAACA,EAAUA,EAAQ/tsB,GAAMkqgB,EAAAA,EAAW9jd,IAApC,EAE/B8rpB,EAAS,SAAC17jB,GACd,MAAmB,oBAAZA,EAAyB,IAAIs3jB,EAAWt3jB,GAAWA,CAA1D,EAEWm8G,EAAQ,WACnB,WAAIm7c,GAAW,SAAC9tsB,EAAI+tsB,GAAY,OAAA7jM,EAAAA,EAAW9jd,IAAX,GAAhC,EAEWn9D,EAAO,SAACkptB,GACnB,OAAqB,IAAjBA,EAAMrsuB,OAAqB6sR,IAExBw/c,EAAM/8tB,IAAI88tB,GAAQ9qtB,QAAO,SAAC/W,EAAGP,GAAM,OAAAO,EAAEuX,OAAO9X,EAAT,GAC5C,EAEahJ,EAAQ,SACnB0kB,EACAu6G,EACAH,QAAA,IAAAA,IAAAA,EAAA,IAAyCkomB,EAAWmE,IAEpD,IAAMG,EAAWF,EAAOnsmB,GAClBssmB,EAAYH,EAAOtsmB,GAEzB,OAAIgsmB,EAAcQ,IAAaR,EAAcS,GACpC,IAAIvE,GAAW,SAAA/psB,GACpB,OAAOvY,EAAKuY,GACRqusB,EAAS3osB,QAAQ1F,IAAcmmgB,EAAAA,EAAW9jd,KAC1CispB,EAAU5osB,QAAQ1F,IAAcmmgB,EAAAA,EAAW9jd,IACjD,IAEO,IAAI0npB,GAAW,SAAC/psB,EAAWgqsB,GAChC,OAAOvitB,EAAKuY,GACRqusB,EAAS3osB,QAAQ1F,EAAWgqsB,IAAY7jM,EAAAA,EAAW9jd,KACnDispB,EAAU5osB,QAAQ1F,EAAWgqsB,IAAY7jM,EAAAA,EAAW9jd,IAC1D,GAEJ,EAGax+D,EAAS,SACpB0mL,EACAu1T,GAEA,IAAMyuO,EAAYJ,EAAO5jiB,GACzB,GAAIsjiB,EAAcU,GAOhB,OANA9ouB,QAAQioB,KACN,IAAIkgtB,EACF,0EACAW,IAGGA,EAET,IAAM5B,EAAWwB,EAAOruO,GAExB,OAAI+tO,EAAclB,GACT,IAAI5C,GACT,SAAA/psB,GACE,OAAAuusB,EAAU7osB,QACR1F,GACA,SAAA/D,GAAM,OAAA0wsB,EAASjnsB,QAAQzJ,IAAOkqgB,EAAAA,EAAW9jd,IAAnC,KACH8jd,EAAAA,EAAW9jd,IAHhB,IAMG,IAAI0npB,GAAW,SAAC/psB,EAAWgqsB,GAChC,OACEuE,EAAU7osB,QAAQ1F,GAAW,SAAA/D,GAC3B,OAAO0wsB,EAASjnsB,QAAQzJ,EAAI+tsB,IAAY7jM,EAAAA,EAAW9jd,IACrD,KAAM8jd,EAAAA,EAAW9jd,IAErB,GAEJ,EAEA0npB,EAAA,WAME,SAAAA,EAAYrksB,GACNA,IAASvkC,KAAKukC,QAAUA,EAC9B,CAoBF,OAlBSqksB,EAAA1ouB,UAAA0B,MAAP,SACE0kB,EACAu6G,EACAH,GAEA,YAFA,IAAAA,IAAAA,EAAA,IAAyCkomB,EAAWmE,IAE7C/suB,KAAK0iB,OAAO9gB,EAAM0kB,EAAMu6G,EAAMH,GACvC,EAEOkomB,EAAA1ouB,UAAAwiB,OAAP,SAAcqD,GACZ,OAAOrD,EAAO1iB,KAAM+lB,EACtB,EAEO6itB,EAAA1ouB,UAAAqkC,QAAP,SACE1F,EACAgqsB,GAEA,MAAM,IAAI1ouB,MAAM,6BAClB,EA1BcyouB,EAAAn7c,MAAQA,EACRm7c,EAAA7ktB,KAAOA,EACP6ktB,EAAAhnuB,MAAQA,EACRgnuB,EAAAv2R,QAAUA,EAwB1Bu2R,EA5BA,GA8BM,SAAUv2R,EACd26M,EACAnunB,GAEA,OACEmunB,EAAKzonB,QACHqosB,EACE/tsB,EAAU13B,QDrDZ,SAA6B03B,GACjC,IAAMwusB,EAAuC,CAC3ClU,UAAWt6rB,EAAUs6rB,WAAa,CAAC,EACnCnjqB,WAAYn3B,EAAUm3B,YAAc,CAAC,EACrCs0qB,cAAezrsB,EAAUyrsB,cACzB15rB,MAAO/R,EAAU+R,OAWnB,OAPKy8rB,EAAqB/C,gBACxB+C,EAAqB/C,cACmB,kBAA/B+C,EAAqBz8rB,OACxB08rB,EAAAA,EAAAA,kBAAiBD,EAAqBz8rB,OACtC,IAGDy8rB,CACT,CCqCQE,CD1HF,SAA4B1usB,GAQhC,IAPA,IAAM2usB,EAAmB,CACvB,QACA,gBACA,YACA,aACA,WAEchotB,EAAA,EAAApE,EAAArB,OAAOwE,KAAKsa,GAAZrZ,EAAApE,EAAAxgB,OAAA4kB,IAAwB,CAAnC,IAAIP,EAAG7D,EAAAoE,GACV,GAAIgotB,EAAiBpsuB,QAAQ6jB,GAAO,EAClC,MAAM,IAAI9kB,MAAM,qBAAqB8kB,GAIzC,OAAO4Z,CACT,CC2G2B4usB,CAAkB5usB,OAEpCmmgB,EAAAA,EAAW9jd,IAEpB,+zECpFgByspB,EAAc3muB,GAC5B,MAAO,CAAC,cAAe,eAAgB,aAAa5F,QAAQ4F,EAAMwa,OAAS,EAK7E,SAAgBostB,EAAc5muB,GAC5B,MAAO,CAAC,WAAY,cAAc5F,QAAQ4F,EAAMwa,OAAS,EAuC3D,SAAgBqstB,EACdC,EACA1tuB,EACA4G,EACAmytB,GAEA,GAlCF,SAAoBnytB,GAClB,MAAsB,aAAfA,EAAMwa,KAiCTustB,CAAW/muB,IA9BjB,SAAsBA,GACpB,MAAsB,eAAfA,EAAMwa,KA6BYwstB,CAAahnuB,GACpC8muB,EAAO1tuB,EAAK4G,OAAS0tB,OAAO1tB,EAAMA,YAC7B,GAxCT,SAAwBA,GACtB,MAAsB,iBAAfA,EAAMwa,KAuCFystB,CAAejnuB,IA5C5B,SAAuBA,GACrB,MAAsB,gBAAfA,EAAMwa,KA2CuB0stB,CAAclnuB,GAChD8muB,EAAO1tuB,EAAK4G,OAASA,EAAMA,WACtB,GA1BT,SAAuBA,GACrB,MAAsB,gBAAfA,EAAMwa,KAyBF2stB,CAAcnnuB,GAAQ,CAC/B,IAAMonuB,EAAe,CAAC,EACtBpnuB,EAAM47M,OAAO1yM,KAAI,SAAAmV,GACf,OAAAwotB,EAA4BO,EAAc/otB,EAAIjlB,KAAMilB,EAAIre,MAAOmytB,MAEjE2U,EAAO1tuB,EAAK4G,OAASonuB,OAChB,GApCT,SAAoBpnuB,GAClB,MAAsB,aAAfA,EAAMwa,KAmCF6stB,CAAWrnuB,GAAQ,CAC5B,IAAMsnuB,GAAiBnV,GAAc,CAAC,GAAWnytB,EAAM5G,KAAK4G,OAC5D8muB,EAAO1tuB,EAAK4G,OAASsnuB,OAChB,GA/BT,SAAqBtnuB,GACnB,MAAsB,cAAfA,EAAMwa,KA8BF+stB,CAAYvnuB,GACrB8muB,EAAO1tuB,EAAK4G,OAASA,EAAM4N,OAAO1E,KAAI,SAAAs+tB,GACpC,IAAMC,EAAoB,CAAC,EAO3B,OANAZ,EACEY,EACAruuB,EACAouuB,EACArV,GAEMsV,EAA0BruuB,EAAK4G,eAEpC,GAtCT,SAAqBA,GACnB,MAAsB,cAAfA,EAAMwa,KAqCFkttB,CAAY1nuB,GACrB8muB,EAAO1tuB,EAAK4G,OAAUA,EAAwBA,UACzC,KApCT,SAAqBA,GACnB,MAAsB,cAAfA,EAAMwa,KAmCFgksB,CAAYx+sB,GAGrB,MAAM,IAAAoiuB,EAAAA,GAAA,IAFN0E,EAAO1tuB,EAAK4G,OAAS,MAUzB,SAAgBm7tB,EACdlutB,EACAkltB,GAEA,IAAIwV,EAAqB,KACrB16tB,EAAM4ktB,aACR8V,EAAgB,CAAC,EACjB16tB,EAAM4ktB,WAAW7zsB,SAAQ,SAAA68sB,GACvB8M,EAAc9M,EAAUzhuB,KAAK4G,OAAS,CAAC,EAEnC66tB,EAAU/8sB,WACZ+8sB,EAAU/8sB,UAAUE,SAAQ,SAAC5D,OAAEhhB,EAAAghB,EAAAhhB,KAAM4G,EAAAoa,EAAApa,MACnC,OAAA6muB,EACEc,EAAc9M,EAAUzhuB,KAAK4G,OAC7B5G,EACA4G,EACAmytB,UAOV,IAAI2U,EAAc,KAQlB,OAPI75tB,EAAM6Q,WAAa7Q,EAAM6Q,UAAUlkB,SACrCktuB,EAAS,CAAC,EACV75tB,EAAM6Q,UAAUE,SAAQ,SAAC5D,OAAEhhB,EAAAghB,EAAAhhB,KAAM4G,EAAAoa,EAAApa,MAC/B,OAAA6muB,EAA4BC,EAAQ1tuB,EAAM4G,EAAOmytB,OAI9C2G,EAAgB7rtB,EAAM7T,KAAK4G,MAAO8muB,EAAQa,GASnD,IAAMC,EAA6B,CACjC,aACA,UACA,OACA,SACA,OACA,UAGF,SAAgB9O,EACdxB,EACA71sB,EACAowsB,GAEA,GACEA,GACAA,EAAuB,YACvBA,EAAuB,WAAO,IAC9B,CACA,GACEA,EAAuB,WAAU,QAChCA,EAAuB,WAAU,OAAej4tB,OAAS,EAC1D,CACA,IAAMiuuB,EAAahW,EAAuB,WAAU,OAC/CA,EAAuB,WAAU,OAClC,GACJgW,EAAWz+rB,OAEX,IAAM0+rB,EAAYrmtB,EACZsmtB,EAAe,CAAC,EAKtB,OAJAF,EAAW7ptB,SAAQ,SAAAC,GACjB8ptB,EAAa9ptB,GAAO6ptB,EAAU7ptB,MAGtB4zsB,EAAuB,WAAO,IAAC,IAAIn3tB,KAAKQ,UAChD6suB,GACD,IAED,OAAOlW,EAAuB,WAAO,IAIzC,IAAImW,EAA4B1Q,EAEhC,GAAI71sB,EAAM,CAIR,IAAMwmtB,EAA0B/suB,IAAUumB,GAC1CumtB,GAAqB,IAAIC,EAAe,IAc1C,OAXIpW,GACF94sB,OAAOwE,KAAKs0sB,GAAY7zsB,SAAQ,SAAAC,IACS,IAAnC2ptB,EAAiBxtuB,QAAQ6jB,KACzB4zsB,EAAW5zsB,IAAQlF,OAAOwE,KAAKs0sB,EAAW5zsB,IAAMrkB,OAClDouuB,GAAqB,IAAI/ptB,EAAG,IAAIvjB,KAAKQ,UAAU22tB,EAAW5zsB,IAAK,IAE/D+ptB,GAAqB,IAAI/ptB,MAKxB+ptB,EAGT,SAAgB1O,EACdrstB,EACAkltB,GAEA,GAAIlltB,EAAM6Q,WAAa7Q,EAAM6Q,UAAUlkB,OAAQ,CAC7C,IAAMsuuB,EAAiB,CAAC,EAIxB,OAHAj7tB,EAAM6Q,UAAUE,SAAQ,SAAC5D,OAAEhhB,EAAAghB,EAAAhhB,KAAM4G,EAAAoa,EAAApa,MAC/B,OAAA6muB,EAA4BqB,EAAQ9uuB,EAAM4G,EAAOmytB,MAE5C+V,EAGT,OAAO,KAGT,SAAgB7P,EAAuBprtB,GACrC,OAAOA,EAAM69L,MAAQ79L,EAAM69L,MAAM9qM,MAAQiN,EAAM7T,KAAK4G,MAGtD,SAAgBk4tB,EAAQ3na,GACtB,MAA0B,UAAnBA,EAAU/1S,KAGnB,SAAgB89sB,EACd/na,GAEA,MAA0B,mBAAnBA,EAAU/1S,KAGnB,SAAgBo/sB,EAAUuO,GACxB,OAAOA,GACsC,OAA1CA,EAAiClruB,MACS,mBAAnCkruB,EAAqBhR,UAQjC,SAAgBgC,EACdiP,EACAjR,GAEA,YAFA,IAAAA,IAAAA,GAAA,IAEAnlsB,EAAAA,EAAAA,UAAA,CACE/0B,KAAM,KACNk6tB,UAASA,GACe,kBAAbiR,EACP,CAAE1muB,GAAI0muB,EAAUzV,cAAUtxtB,GAC1B+muB,GAIR,SAAgBhP,EAAYiP,GAC1B,OACgB,MAAdA,GACsB,kBAAfA,GACsC,SAA5CA,EAAmCpruB,KAIxC,SAASqruB,EAAyBjupB,GAChC,MAAM,IAAA+npB,EAAAA,GAAA,IAQR,SAAgBmG,EACdlupB,EACAmupB,GAEA,YAFA,IAAAA,IAAAA,EAAAF,GAEQjupB,EAAK7/D,MACX,IAAK,WACH,OAAOgutB,EAAWnupB,GACpB,IAAK,YACH,OAAO,KACT,IAAK,WACH,OAAO5sD,SAAS4sD,EAAKr6E,MAAO,IAC9B,IAAK,aACH,OAAOm8C,WAAWk+B,EAAKr6E,OACzB,IAAK,YACH,OAAOq6E,EAAKzsE,OAAO1E,KAAI,SAAAsQ,GAAK,OAAA+utB,EAAc/utB,EAAGgvtB,EAAW,IAC1D,IAAK,cAEH,IADA,IAAMxouB,EAAgC,CAAC,EACnBwe,EAAA,EAAApE,EAAAigE,EAAKuhI,OAALp9L,EAAApE,EAAAxgB,OAAA4kB,IAAa,CAA5B,IAAMvR,EAAKmN,EAAAoE,GACdxe,EAAMiN,EAAM7T,KAAK4G,OAASuouB,EAAct7tB,EAAMjN,MAAOwouB,GAEvD,OAAOxouB,EAET,QACE,OAAOq6E,EAAKr6E,gBC1TFu5tB,EACdtstB,EACAkltB,GAEA,GAAIlltB,EAAM4ktB,YAAc5ktB,EAAM4ktB,WAAWj4tB,OAAQ,CAC/C,IAAM6uuB,EAA8B,CAAC,EAOrC,OANAx7tB,EAAM4ktB,WAAW7zsB,SAAQ,SAAC68sB,GACxB4N,EAAa5N,EAAUzhuB,KAAK4G,OAASs5tB,EACnCuB,EACA1I,MAGGsW,EAET,OAAO,KAGT,SAAgBxQ,EACd1na,EACA4ha,GAEA,YAFA,IAAAA,IAAAA,EAAA,IAEOuW,EACLn4a,EAAUsha,YACV3usB,OAAM,SAAC9I,OAAEygtB,EAAAzgtB,EAAAygtB,UAAW8N,EAAAvutB,EAAAuutB,WAChBC,GAAuB,EAU3B,MAT8B,aAA1BD,EAAW3ouB,MAAMwa,MACnBoutB,EAAczW,EAAWwW,EAAW3ouB,MAAuB5G,KAAK4G,QAChE++L,EAAAA,EAAAA,SAAA,IAAA6piB,EAEqC,KAGrCA,EAAeD,EAAW3ouB,MAA2BA,MAEvB,SAAzB66tB,EAAUzhuB,KAAK4G,OAAoB4ouB,EAAcA,KAI5D,SAAgBC,EAAkB/7mB,GAChC,IAAMq5P,EAAkB,GAQxB,OANAj3S,EAAAA,EAAAA,IAAM49C,EAAK,CACTg8mB,UAAS,SAACzupB,GACR8rS,EAAMvrW,KAAKy/D,EAAKjhF,KAAK4G,UAIlBmmX,EAGT,SAAgB4iX,EAAc5iX,EAAiBr5P,GAC7C,OAAO+7mB,EAAkB/7mB,GAAK9rG,MAC5B,SAAC5nB,GAAiB,OAAA+sX,EAAM/rX,QAAQhB,IAAS,CAAC,IAI9C,SAAgB4vuB,EAAiBvitB,GAC/B,OACEA,GACAsitB,EAAc,CAAC,UAAWtitB,IAC1BsitB,EAAc,CAAC,UAAWtitB,GAS9B,SAASwitB,EAAqB7utB,OAAUpa,EAAAoa,EAAAhhB,KAAA4G,MACtC,MAAiB,SAAVA,GAA8B,YAAVA,EAG7B,SAAgB0ouB,EACd7W,GAEA,OAAOA,EAAaA,EAAWpktB,OAAOw7tB,GAAsB//tB,KAAI,SAAA2xtB,GAC9D,IAAMqO,EAAqBrO,EAAU/8sB,UACf+8sB,EAAUzhuB,KAAK4G,OAErC++L,EAAAA,EAAAA,IAC0CmqiB,GAAA,IAAAA,EAAAtvuB,OAAA,IAI1C,IAAM+uuB,EAAaO,EAAmB,IAENnqiB,EAAAA,EAAAA,IAAU4piB,EACxCvvuB,MAAA,OAAAuvuB,EAAAvvuB,KAAA4G,MAAA,IAGF,IAAMmpuB,EAAqBR,EAAW3ouB,MAUpC,OAPF++L,EAAAA,EAAAA,IAAAoqiB,IAEsB,aAAjBA,EAAQ3utB,MAAwC,iBAAjB2utB,EAAQ3utB,MAC1C,IAIA,CAAAqgtB,UAAAA,EAAA8N,WAAAA,kBCnGUtW,EACd5rsB,EACA6rsB,GAEA,IAAI8W,EAAqB9W,EAKnBoF,EAA2C,GAwDjD,OAvDAjxsB,EAAS6qsB,YAAYtzsB,SAAQ,SAAA0hK,GAG3B,GAAwB,wBAApBA,EAAWllK,KACb,MAAM,IAAA4ntB,EAAAA,GAAA,IASgB,uBAApB1ijB,EAAWllK,MACbk9sB,EAAU98sB,KAAK8kK,MAMe,qBAAvB0pjB,KAEGrqiB,EAAAA,EAAAA,IAAA,IAAA24hB,EAAA99tB,OAAA,IAKZwvuB,EAAqB1R,EAAU,GAAGt+tB,KAAK4G,QAK9BgyB,EAAAA,EAAAA,WAAAA,EAAAA,EAAAA,UAAA,GACNvL,GAAQ,CACX6qsB,aAAWh9rB,EAAAA,EAAAA,gBAAA,CACT,CACE9Z,KAAM,sBACNqd,UAAW,QACX05rB,aAAc,CACZ/2sB,KAAM,eACNi3sB,WAAY,CACV,CACEj3sB,KAAM,iBACNphB,KAAM,CACJohB,KAAM,OACNxa,MAAOopuB,QAMd3itB,EAAS6qsB,wBCrEFr/rB,EACdrY,OACA,IAAA4+sB,EAAA,GAAAh6sB,EAAA,EAAAA,EAAAV,UAAAlkB,OAAA4kB,IAAAg6sB,EAAAh6sB,EAAA,GAAAV,UAAAU,GAUA,OARAg6sB,EAAQx6sB,SAAQ,SAAAD,GACQ,qBAAXA,GAAqC,OAAXA,GAGrChF,OAAOwE,KAAKQ,GAAQC,SAAQ,SAAAC,GAC1BrE,EAAOqE,GAAOF,EAAOE,SAGlBrE,WChBOyvtB,EACdv8mB,GAEAw8mB,EAAcx8mB,GAEd,IAAIy8mB,EAA8Cz8mB,EAAIwkmB,YAAY7jtB,QAChE,SAAAiyK,GACE,MAAoB,wBAApBA,EAAWllK,MACc,aAAzBklK,EAAW7nJ,aACb,GAIF,OAFAknK,EAAAA,EAAAA,IAAAwqiB,EAA6D,GAEtDA,EAIT,SAAgBD,EAAcx8mB,IAEIiyE,EAAAA,EAAAA,IAAAjyE,GAAA,aAAAA,EAAAtyG,KAAA,GAKhC,IAAM4ptB,EAAat3mB,EAAIwkmB,YACpB7jtB,QAAO,SAAA8jB,GAAK,MAAW,uBAAXA,EAAE/W,IAA6B,IAC3CtR,KAAI,SAAAw2K,GACH,GAAwB,wBAApBA,EAAWllK,KACb,MAAM,IAAA4ntB,EAAAA,GAAA,GAMR,OAAO1ijB,KAQX,OAJYqf,EAAAA,EAAAA,IAAAqliB,EAAAxquB,QAAA,KAILkzH,EAGT,SAAgB2tmB,EACd3tmB,GAGA,OADAw8mB,EAAcx8mB,GACPA,EAAIwkmB,YAAY7jtB,QACrB,SAAAiyK,GAAc,MAAoB,wBAApBA,EAAWllK,IAA8B,IACvD,GAGJ,SAAgBgvtB,EACd/itB,GAEA,IAAM81M,EAAMk+f,EAAuBh0sB,GAEnC,OADAs4K,EAAAA,EAAAA,IAAAw9B,EAAA,GACOA,EAGT,SAAgB+pgB,EAAiBx5mB,GAC/B,OACEA,EAAIwkmB,YACD7jtB,QACC,SAAAiyK,GACE,MAAoB,wBAApBA,EAAWllK,MAAkCklK,EAAWtmL,QAE3D8P,KAAI,SAAC/E,GAA+B,OAAAA,EAAE/K,KAAK4G,KAAK,IAAE,IAAM,KAK/D,SAAgB23tB,EACd7qmB,GAEA,OAAOA,EAAIwkmB,YAAY7jtB,QACrB,SAAAiyK,GAAc,MAAoB,uBAApBA,EAAWllK,IAA6B,IAI1D,SAAgBs8sB,EAAmBhqmB,GACjC,IAAM28mB,EAAWhP,EAAuB3tmB,GAOxC,OAJgCiyE,EAAAA,EAAAA,IAAA0qiB,GAAK,UAALA,EAAA5xsB,UAAA,GAIzB4xsB,EAGT,SAAgBC,EACd58mB,IAEAiyE,EAAAA,EAAAA,IAAA,aAAAjyE,EAAAtyG,KAAA,IAO6BukL,EAAAA,EAAAA,IAAAjyE,EAAAwkmB,YAAA13tB,QAAA,KAI7B,IAAM+vuB,EAAc78mB,EAAIwkmB,YAAY,GAOpC,OALAvyhB,EAAAA,EAAAA,IAAA,uBAAA4qiB,EAAAnvtB,KAAA,GAKOmvtB,EAQT,SAAgBlS,EACdmS,GAIA,IAAIC,EAFJP,EAAcM,GAId,IAAuB,IAAAprtB,EAAA,EAAApE,EAAAwvtB,EAAStY,YAAT9ysB,EAAApE,EAAAxgB,OAAA4kB,IAAsB,CAAxC,IAAIkhK,EAAUtlK,EAAAoE,GACjB,GAAwB,wBAApBkhK,EAAWllK,KAAgC,CAC7C,IAAMqd,EAAa6nJ,EAAuC7nJ,UAC1D,GACgB,UAAdA,GACc,aAAdA,GACc,iBAAdA,EAEA,OAAO6nJ,EAGa,uBAApBA,EAAWllK,MAAkCqvtB,IAG/CA,EAAqBnqjB,GAIzB,GAAImqjB,EACF,OAAOA,EAGT,MAAM,IAAAzH,EAAAA,GAAA,IAcR,SAAgBvK,EACdH,QAAA,IAAAA,IAAAA,EAAA,IAEA,IAAMoS,EAAwB,CAAC,EAK/B,OAJApS,EAAU15sB,SAAQ,SAAA0oL,GAChBojiB,EAASpjiB,EAASttM,KAAK4G,OAAS0mM,KAG3BojiB,EAGT,SAAgB/S,EACdr3iB,GAEA,GACEA,GACAA,EAAWkyiB,qBACXlyiB,EAAWkyiB,oBAAoBh4tB,OAC/B,CACA,IAAMo4N,EAAgBtyC,EAAWkyiB,oBAC9BnktB,QAAO,SAAC2M,GAAqB,OAAnBA,EAAAwnI,gBACV14I,KACC,SAACkR,OAAE2nG,EAAA3nG,EAAA2nG,SAAU6/B,EAAAxnI,EAAAwnI,aACLmolB,EAAgD,CAAC,EAOvD,OANAlD,EACEkD,EACAhonB,EAAS3oH,KACTwoJ,GAGKmolB,KAIb,OAAO93sB,EAAMrU,WAAC,GAAD0W,EAAAA,EAAAA,gBAAC,EAAC,GAAM09L,IAGvB,MAAO,CAAC,EAMV,SAAgBg4gB,EACdnysB,GAEA,IAAMsuV,EAAQ,IAAIhuN,IAClB,GAAItgI,EAAU+5rB,oBACZ,IAAyB,IAAApzsB,EAAA,EAAApE,EAAAyd,EAAU+5rB,oBAAVpzsB,EAAApE,EAAAxgB,OAAA4kB,IAA+B,CAAnD,IAAMkhK,EAAUtlK,EAAAoE,GACnB2nW,EAAM5mV,IAAImgJ,EAAW39D,SAAS3oH,KAAK4G,OAIvC,OAAOmmX,WCvOO8jX,EACdn5nB,EACAxxF,EACAnf,GAEA,IAAIyZ,EAAS,EAOb,OANAk3F,EAAM9yF,SAAQ,SAAUkstB,EAAMlwuB,GACxBslB,EAAKR,KAAK9lB,KAAMkxuB,EAAMlwuB,EAAG82G,KAC3BA,EAAMl3F,KAAYswtB,KAEnB/puB,GACH2wG,EAAMl3G,OAASggB,EACRk3F,ECuCT,IAAMq5nB,EAA4B,CAChC3vtB,KAAM,QACNphB,KAAM,CACJohB,KAAM,OACNxa,MAAO,eAIX,SAASu+I,EACPzqH,EACA4jsB,GAEA,OAAO5jsB,EAAGy9rB,aAAaE,WAAWvusB,OAChC,SAAAqtS,GACE,MAAmB,mBAAnBA,EAAU/1S,MACV+jI,EAAQm5kB,EAAUnna,EAAUn3T,KAAK4G,OAAQ03tB,MAI/C,SAAS0S,EAAiBt9mB,GACxB,OAAOyxB,EACLk8kB,EAAuB3tmB,IAAQ48mB,EAAsB58mB,GACrD+qmB,EAAkBF,EAAuB7qmB,KAEvC,KACAA,EAGN,SAASu9mB,EACPxY,GAEA,OAAO,SAA0BgJ,GAC/B,OAAOhJ,EAAW7wsB,MAChB,SAAA4wF,GACE,OAACA,EAAIx4G,MAAQw4G,EAAIx4G,OAASyhuB,EAAUzhuB,KAAK4G,OACxC4xG,EAAItyF,MAAQsyF,EAAItyF,KAAKu7sB,OAK9B,SAAgByP,EACdzY,EACA/kmB,GAEA,IAAMy9mB,EAA0CxxtB,OAAOgZ,OAAO,MAC1Dy4sB,EAA6C,GAE3CC,EAAgD1xtB,OAAOgZ,OAAO,MAChE24sB,EAAwD,GAExDC,EAAcP,GAChBl7pB,EAAAA,EAAAA,IAAM49C,EAAK,CACT89mB,SAAU,CACR75lB,MAAA,SAAM12D,EAAM94D,EAAM6+F,GAO8B,uBAA3CA,EAAkC5lG,OAEnC+vtB,EAAelwpB,EAAKjhF,KAAK4G,QAAS,KAKxC6quB,MAAO,CACL95lB,MAAA,SAAM12D,GACJ,GAAIw3oB,GAAcx3oB,EAAKw3oB,aAGKA,EAAW7wsB,MACnC,SAAA65sB,GAAa,OAAAA,EAAU3skB,MAAM,KAK7B7zE,EAAKw3oB,YACLx3oB,EAAKw3oB,WAAW7wsB,KAAKqptB,EAAoBxY,KA2BzC,OAzBIx3oB,EAAKv8D,WAGPu8D,EAAKv8D,UAAUE,SAAQ,SAAA+2B,GACE,aAAnBA,EAAI/0C,MAAMwa,MACZgwtB,EAAkB5vtB,KAAK,CACrBxhB,KAAO27C,EAAI/0C,MAAuB5G,KAAK4G,WAM3Cq6E,EAAKk3oB,cAGPuZ,GAAsCzwpB,EAAKk3oB,cAAcvzsB,SACvD,SAAA+stB,GACEL,EAAwB9vtB,KAAK,CAC3BxhB,KAAM2xuB,EAAK3xuB,KAAK4G,WAOjB,OAMfgruB,eAAgB,CACdj6lB,MAAK,SAAC12D,GAGJowpB,EAAqBpwpB,EAAKjhF,KAAK4G,QAAS,IAI5C8ouB,UAAW,CACT/3lB,MAAK,SAAC12D,GAEJ,GAAIgwpB,EAAoBxY,EAApBwY,CAAgChwpB,GAClC,OAAO,UA+BjB,OApBEswpB,GACAV,EAAcO,GAAmB,SAAAhxtB,GAAK,OAAC+wtB,EAAe/wtB,EAAEpgB,KAAK,IAAEQ,SAE/D+wuB,EAAcM,GAA4BT,EAAmBG,IAO7DA,GACAV,EAAcS,GAAyB,SAAAQ,GAAM,OAACT,EAAqBS,EAAG9xuB,KAAK,IACxEQ,SAEH+wuB,EAAcQ,GACZT,EACAC,IAIGA,EAGT,SAAgBvM,EAAsBtxmB,GACpC,OAAO59C,EAAAA,EAAAA,IAAMo6pB,EAAcx8mB,GAAM,CAC/Bs+mB,aAAc,CACZr6lB,MAAA,SAAM12D,EAAM94D,EAAM6+F,GAEhB,IACEA,GAC6C,wBAA5CA,EAAmC5lG,KAFtC,CAQQ,IAAAi3sB,EAAAp3oB,EAAAo3oB,WACR,GAAKA,EAaL,IAPaA,EAAWzwsB,MAAK,SAAAuvS,GAC3B,OACE2na,EAAQ3na,KACkB,eAAzBA,EAAUn3T,KAAK4G,OACgC,IAA9CuwT,EAAUn3T,KAAK4G,MAAM0Y,YAAY,KAAM,OAG7C,CAMA,IAAMzL,EAAQmzG,EACd,KACE83mB,EAAQjrtB,IACRA,EAAM4ktB,YACN5ktB,EAAM4ktB,WAAW7wsB,MAAK,SAAAuQ,GAAK,MAAiB,WAAjBA,EAAEn4B,KAAK4G,KAAkB,KAMtD,OAAAgyB,EAAAA,EAAAA,WAAAA,EAAAA,EAAAA,UAAA,GACKqoD,GAAI,CACPo3oB,YAAUn9rB,EAAAA,EAAAA,gBAAMm9rB,EAAY,CAAA0Y,YAOtC,IAAMkB,EAAyB,CAC7B/rtB,KAAM,SAACu7sB,GACL,IAAMyQ,EAAsC,eAAzBzQ,EAAUzhuB,KAAK4G,MAalC,OAZIsruB,KAECzQ,EAAU/8sB,WACV+8sB,EAAU/8sB,UAAUkD,MAAK,SAAA+zB,GAAO,MAAmB,QAAnBA,EAAI37C,KAAK4G,KAAe,KAStDsruB,IAIX,SAAgBC,GAAsCz+mB,GACpD,OAAOw9mB,EACL,CAACe,GACD/B,EAAcx8mB,IAIlB,SAAS0+mB,GACP3Z,EACAN,EACAka,GAEA,YAFA,IAAAA,IAAAA,GAAA,GAGEla,GACAA,EAAaE,YACbF,EAAaE,WAAWzwsB,MAAK,SAAAuvS,GAC3B,OAAAm7a,GAAyB7Z,EAAYtha,EAAWk7a,MAKtD,SAASC,GACP7Z,EACAtha,EACAk7a,GAEA,YAFA,IAAAA,IAAAA,GAAA,IAEKvT,EAAQ3na,MAIRA,EAAUsha,aAKbtha,EAAUsha,WAAW7wsB,KAAKqptB,EAAoBxY,KAC7C4Z,GACCD,GACE3Z,EACAtha,EAAUgha,aACVka,IAKR,SAAgBE,GACd9Z,EACA/kmB,GAIA,IAAI40E,EAEJ,OAJA4niB,EAAcx8mB,GAIPs9mB,GACLl7pB,EAAAA,EAAAA,IAAM49C,EAAK,CACTs+mB,aAAc,CACZr6lB,MAAK,SAAC12D,EAAM94D,EAAM+pgB,EAAS9ygB,GACzB,IAAMoztB,EAAcpztB,EAAKwH,KAAK,KAE9B,IACG0hL,GACDkqiB,IAAgBlqiB,IACfkqiB,EAAYl+rB,WAAWg0J,GACxB,CACA,GAAIrnH,EAAKo3oB,WAAY,CACnB,IAAMoa,EAA2BxxpB,EAAKo3oB,WAAWhktB,QAC/C,SAAA8iT,GAAa,OAAAm7a,GAAyB7Z,EAAYtha,EAAU,IAO9D,OAJIi7a,GAA4B3Z,EAAYx3oB,GAAM,KAChDqnH,EAAakqiB,IAGf55sB,EAAAA,EAAAA,WAAAA,EAAAA,EAAAA,UAAA,GACKqoD,GAAI,CACPo3oB,WAAYoa,IAGd,OAAO,WAsBrB,SAAgBZ,GACdnzrB,EACAg1E,GAEA,IAAMg/mB,EAjBR,SAA4Bh0rB,GAC1B,OAAO,SAAyBsrI,GAC9B,OAAOtrI,EAAO92B,MACZ,SAAC+qtB,GACC,OAAA3ojB,EAASpjL,OACe,aAAxBojL,EAASpjL,MAAMwa,MACf4oK,EAASpjL,MAAM5G,OACd2yuB,EAAQ3yuB,OAASgqL,EAASpjL,MAAM5G,KAAK4G,OACnC+ruB,EAAQzstB,MAAQystB,EAAQzstB,KAAK8jK,QASnB4ojB,CAAmBl0rB,GAEtC,OAAOsyrB,GACLl7pB,EAAAA,EAAAA,IAAM49C,EAAK,CACTm/mB,oBAAqB,CACnBl7lB,MAAK,SAAC12D,GACJ,OAAAroD,EAAAA,EAAAA,WAAAA,EAAAA,EAAAA,UAAA,GACKqoD,GAAI,CAEPu3oB,oBAAqBv3oB,EAAKu3oB,oBAAoBnktB,QAC5C,SAAAy+tB,GACE,OAACp0rB,EAAO92B,MAAK,SAAA+zB,GAAO,OAAAA,EAAI37C,OAAS8yuB,EAAOnqnB,SAAS3oH,KAAK4G,KAAK,WAMrE6quB,MAAO,CACL95lB,MAAK,SAAC12D,GAKJ,GAF0BviC,EAAO92B,MAAK,SAAAmrtB,GAAa,OAAAA,EAAUj+kB,MAAM,IAE5C,CACrB,IAAIk+kB,EAAgB,EAMpB,GALA/xpB,EAAKv8D,UAAUE,SAAQ,SAAA+2B,GACjB+2rB,EAAW/2rB,KACbq3rB,GAAiB,MAGC,IAAlBA,EACF,OAAO,QAMfC,SAAU,CACRt7lB,MAAK,SAAC12D,GAEJ,GAAIyxpB,EAAWzxpB,GACb,OAAO,UAQnB,SAAgB8wpB,GACdrzrB,EACAg1E,GAEA,SAASikB,EACP12D,GAEA,GAAIviC,EAAO92B,MAAK,SAAAu7M,GAAO,OAAAA,EAAInjO,OAASihF,EAAKjhF,KAAK4G,KAAK,IACjD,OAAO,KAIX,OAAOoquB,GACLl7pB,EAAAA,EAAAA,IAAM49C,EAAK,CACTk+mB,eAAgB,CAAEj6lB,MAAKA,GACvBu7lB,mBAAoB,CAAEv7lB,MAAKA,MAKjC,SAAS+5lB,GACPvZ,GAEA,IAAMgb,EAAqC,GAe3C,OAbAhb,EAAaE,WAAWzzsB,SAAQ,SAAAuyS,IAE3B2na,EAAQ3na,IAAc+na,EAAiB/na,KACxCA,EAAUgha,aAEVuZ,GAAsCv6a,EAAUgha,cAAcvzsB,SAC5D,SAAA+stB,GAAQ,OAAAwB,EAAa3xtB,KAAKmwtB,EAAK,IAEL,mBAAnBx6a,EAAU/1S,MACnB+xtB,EAAa3xtB,KAAK21S,MAIfg8a,EAMT,SAAgBC,GACd/ltB,GAKA,MAA4B,UAHTgxsB,EAAkBhxsB,GAC6BoR,UAIzDpR,GAIWyoD,EAAAA,EAAAA,IAAMzoD,EAAU,CAClCwltB,oBAAqB,CACnBl7lB,MAAK,SAAC12D,GACJ,OAAAroD,EAAAA,EAAAA,WAAAA,EAAAA,EAAAA,UAAA,GACKqoD,GAAI,CACPxiD,UAAW,cASrB,SAAgB40sB,GACdhmtB,GAEA6itB,EAAc7itB,GAEd,IAAIkktB,EAAcL,EAChB,CACE,CACEhrtB,KAAM,SAACu7sB,GAA6B,MAAyB,WAAzBA,EAAUzhuB,KAAK4G,KAAkB,EACrEkuJ,QAAQ,IAGZznI,GAyBF,OAlBIkktB,IACFA,GAAcz7pB,EAAAA,EAAAA,IAAMy7pB,EAAa,CAC/B2B,mBAAoB,CAClBv7lB,MAAK,SAAC12D,GACJ,GAAIA,EAAKk3oB,cACgBl3oB,EAAKk3oB,aAAaE,WAAWvusB,OAClD,SAAAqtS,GACE,OAAA2na,EAAQ3na,IAAuC,eAAzBA,EAAUn3T,KAAK4G,SAGvC,OAAO,UAQZ2quB,MC5hBI+B,GAAmC,oBAAZhqnB,WACb,kBAAdt5F,WACe,gBAAtBA,UAAUujtB,SCFJpyuB,GAAAwe,OAAA7f,UAAAqB,SAKR,SAAgBqyuB,GAAa5suB,GAC3B,OAAO6suB,GAAgB7suB,EAAO,IAAIqY,KAGpC,SAASw0tB,GAAmBhkoB,EAAQikoB,GAClC,OAAQvyuB,GAASukB,KAAK+pF,IACtB,IAAK,iBACH,GAAIikoB,EAAKh3sB,IAAI+yE,GAAM,OAAOikoB,EAAKh0tB,IAAI+vF,GACnC,IAAMkkoB,EAAmBlkoB,EAAYzpF,MAAM,GAK3C,OAJA0ttB,EAAK92sB,IAAI6yE,EAAKkkoB,GACdA,EAAK/utB,SAAQ,SAAUy8D,EAAOzgF,GAC5B+yuB,EAAK/yuB,GAAK6yuB,GAAgBpypB,EAAOqypB,MAE5BC,EAGT,IAAK,kBACH,GAAID,EAAKh3sB,IAAI+yE,GAAM,OAAOikoB,EAAKh0tB,IAAI+vF,GAGnC,IAAMmkoB,EAAOj0tB,OAAOgZ,OAAOhZ,OAAO67K,eAAe/rF,IAKjD,OAJAikoB,EAAK92sB,IAAI6yE,EAAKmkoB,GACdj0tB,OAAOwE,KAAKsrF,GAAK7qF,SAAQ,SAAAC,GACvB+utB,EAAK/utB,GAAO4utB,GAAiBhkoB,EAAY5qF,GAAM6utB,MAE1CE,EAGT,QACE,OAAOnkoB,YClCKokoB,KACd,MAAuB,qBAAZl1sB,EACFA,aAIF,cAGT,SAAgBm1sB,GAAMC,GACpB,OAAOF,OAAaE,EAGtB,SAAgBrS,KACd,OAA+B,IAAxBoS,GAAM,cAGf,SAAgBE,KACd,OAAgC,IAAzBF,GAAM,eAGf,SAAgB5Z,KACd,OAAyB,IAAlB4Z,GAAM,iBCpBCG,GAAsB50tB,GACpC,IACE,OAAOA,IACP,MAAO1f,GACHuE,QAAQC,OACVD,QAAQC,MAAMxE,IAKpB,SAAgBu0uB,GAAsBpvuB,GACpC,OAAOA,EAAO8U,QAAU9U,EAAO8U,OAAOpZ,OCTxC,SAAS2zuB,GAAWzzuB,GAalB,OAZAif,OAAOi8K,OAAOl7L,GAEdif,OAAOovF,oBAAoBruG,GAAGkkB,SAAQ,SAASu+F,GAE/B,OAAZziH,EAAEyiH,IACkB,kBAAZziH,EAAEyiH,IAAyC,oBAAZziH,EAAEyiH,IACxCxjG,OAAOk8K,SAASn7L,EAAEyiH,KAEnBgxnB,GAAWzzuB,EAAEyiH,OAIVziH,EAGT,SAAgB0zuB,GAAgBnvtB,GAC9B,IAAI+utB,MAAmB9Z,SAID,oBAAXz2sB,QAA+C,kBAAfA,OAAO,KAG9C,OAAO0wtB,GAAWlvtB,GAGtB,OAAOA,EC/BD,IAAAuT,GAAA7Y,OAAA7f,UAAA04B,eAwBR,SAAgBypL,SACd,IAAAm9gB,EAAA,GAAAh6sB,EAAA,EAAAA,EAAAV,UAAAlkB,OAAA4kB,IAAAg6sB,EAAAh6sB,GAAAV,UAAAU,GAEA,OAAOivtB,GAAejV,GASxB,SAAgBiV,GAAkBjV,GAChC,IAAI5+sB,EAAS4+sB,EAAQ,IAAM,CAAC,EACtB33mB,EAAQ23mB,EAAQ5+tB,OACtB,GAAIinH,EAAQ,EAAG,CACb,IAAM43mB,EAAoB,GAC1B7+sB,EAASmgtB,GAAoBngtB,EAAQ6+sB,GACrC,IAAK,IAAIz+tB,EAAI,EAAGA,EAAI6mH,IAAS7mH,EAC3B4f,EAAS8+sB,GAAY9+sB,EAAQ4+sB,EAAQx+tB,GAAIy+tB,GAG7C,OAAO7+sB,EAGT,SAASL,GAAS8E,GAChB,OAAe,OAARA,GAA+B,kBAARA,EAGhC,SAASq6sB,GACP9+sB,EACAmE,EACA06sB,GAEA,OAAIl/sB,GAASwE,IAAWxE,GAASK,IAG3Bb,OAAO+gtB,eAAiB/gtB,OAAO+gtB,aAAalgtB,KAC9CA,EAASmgtB,GAAoBngtB,EAAQ6+sB,IAGvC1/sB,OAAOwE,KAAKQ,GAAQC,SAAQ,SAAAm3L,GAC1B,IAAMqG,EAAcz9L,EAAOo3L,GAC3B,GAAIvjL,GAAe9S,KAAKlF,EAAQu7L,GAAY,CAC1C,IAAM6khB,EAAcpgtB,EAAOu7L,GACvBqG,IAAgBw+gB,IAQlBpgtB,EAAOu7L,GAAaujhB,GAClBqB,GAAoBC,EAAavB,GACjCj9gB,EACAi9gB,SAMJ7+sB,EAAOu7L,GAAaqG,KAIjB5hM,GAIFmE,EAGT,SAASg8sB,GAAuB/5tB,EAAUy4tB,GAgBxC,OAdY,OAAVz4tB,GACiB,kBAAVA,GACPy4tB,EAAWr+tB,QAAQ4F,GAAS,IAG1BA,EADEsb,MAAMC,QAAQvb,GACPA,EAAcof,MAAM,IAExB4S,EAAAA,EAAAA,UAAA,CACHN,UAAW3Y,OAAO67K,eAAe50L,IAC9BA,GAGPy4tB,EAAW79sB,KAAK5a,IAEXA,EC/GT,IAAMgztB,GAAaj6sB,OAAOgZ,OAAO,CAAC,GAUlC,SAAgBshsB,GAAsB9srB,EAAatpC,QAAA,IAAAA,IAAAA,EAAA,QAC5C69tB,MAAmB9H,GAAWzsrB,KAC5B+srB,OACHN,GAAWzsrB,IAAO,GAEP,UAATtpC,EACFK,QAAQC,MAAMgpC,GAEdjpC,QAAQioB,KAAKghB,aCTHmnsB,GAAgB/quB,GAC9B,OAAOjI,KAAKC,MAAMD,KAAKQ,UAAUyH,yCCXnC,IAAIkvB,EAAa74B,MAAQA,KAAK64B,WAAe,WACzC,IAAIP,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBvY,OAAO0Y,gBAClB,CAAEC,UAAW,cAAgBpW,OAAS,SAAUiW,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EACtEL,EAAcC,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAEhB,SAASM,IAAO94B,KAAKqmB,YAAckS,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAEr4B,UAAkB,OAANs4B,EAAazY,OAAOgZ,OAAOP,IAAMM,EAAG54B,UAAYs4B,EAAEt4B,UAAW,IAAI44B,EACnF,CACJ,CAZ6C,GAazCE,EAAYh5B,MAAQA,KAAKg5B,UAAa,WAStC,OARAA,EAAWjZ,OAAOkZ,QAAU,SAASx4B,GACjC,IAAK,IAAIy4B,EAAGl4B,EAAI,EAAGH,EAAIikB,UAAUlkB,OAAQI,EAAIH,EAAGG,IAE5C,IAAK,IAAI23B,KADTO,EAAIpU,UAAU9jB,GACO+e,OAAO7f,UAAU04B,eAAe9S,KAAKoT,EAAGP,KACzDl4B,EAAEk4B,GAAKO,EAAEP,IAEjB,OAAOl4B,CACX,EACOu4B,EAASpU,MAAM5kB,KAAM8kB,UAChC,EACIzB,EAAarjB,MAAQA,KAAKqjB,WAAc,SAAU2W,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIlZ,WAAU,SAAU4B,EAASH,GAC/C,SAAS2X,EAAUpzB,GAAS,IAAMqzB,EAAKF,EAAUpU,KAAK/e,GAAS,CAAE,MAAOjH,GAAK0iB,EAAO1iB,EAAI,CAAE,CAC1F,SAASu6B,EAAStzB,GAAS,IAAMqzB,EAAKF,EAAiB,MAAEnzB,GAAS,CAAE,MAAOjH,GAAK0iB,EAAO1iB,EAAI,CAAE,CAC7F,SAASs6B,EAAKn1B,GAJlB,IAAe8B,EAIa9B,EAAO8gB,KAAOpD,EAAQ1d,EAAO8B,QAJ1CA,EAIyD9B,EAAO8B,MAJhDA,aAAiBkzB,EAAIlzB,EAAQ,IAAIkzB,GAAE,SAAUtX,GAAWA,EAAQ5b,EAAQ,KAIjBgnB,KAAKoM,EAAWE,EAAW,CAC7GD,GAAMF,EAAYA,EAAUvV,MAAMoV,EAASC,GAAc,KAAKlU,OAClE,GACJ,EACIwU,EAAev6B,MAAQA,KAAKu6B,aAAgB,SAAUP,EAASQ,GAC/D,IAAsG/a,EAAG7U,EAAGnK,EAAGg6B,EAA3GC,EAAI,CAAE5wB,MAAO,EAAGiP,KAAM,WAAa,GAAW,EAAPtY,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGk6B,KAAM,GAAIC,IAAK,IAChG,OAAOH,EAAI,CAAE1U,KAAM8U,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAXhX,SAA0B4W,EAAE5W,OAAOC,UAAY,WAAa,OAAO9jB,IAAM,GAAIy6B,EACvJ,SAASI,EAAKh6B,GAAK,OAAO,SAAU2f,GAAK,OACzC,SAAcsa,GACV,GAAIrb,EAAG,MAAM,IAAIyE,UAAU,mCAC3B,KAAOwW,OACH,GAAIjb,EAAI,EAAG7U,IAAMnK,EAAY,EAARq6B,EAAG,GAASlwB,EAAU,OAAIkwB,EAAG,GAAKlwB,EAAS,SAAOnK,EAAImK,EAAU,SAAMnK,EAAEqlB,KAAKlb,GAAI,GAAKA,EAAEmb,SAAWtlB,EAAIA,EAAEqlB,KAAKlb,EAAGkwB,EAAG,KAAK9U,KAAM,OAAOvlB,EAE3J,OADImK,EAAI,EAAGnK,IAAGq6B,EAAK,CAAS,EAARA,EAAG,GAAQr6B,EAAEuG,QACzB8zB,EAAG,IACP,KAAK,EAAG,KAAK,EAAGr6B,EAAIq6B,EAAI,MACxB,KAAK,EAAc,OAAXJ,EAAE5wB,QAAgB,CAAE9C,MAAO8zB,EAAG,GAAI9U,MAAM,GAChD,KAAK,EAAG0U,EAAE5wB,QAASc,EAAIkwB,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKJ,EAAEE,IAAIhb,MAAO8a,EAAEC,KAAK/a,MAAO,SACxC,QACI,KAAkBnf,GAAZA,EAAIi6B,EAAEC,MAAY/5B,OAAS,GAAKH,EAAEA,EAAEG,OAAS,MAAkB,IAAVk6B,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEJ,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVI,EAAG,MAAcr6B,GAAMq6B,EAAG,GAAKr6B,EAAE,IAAMq6B,EAAG,GAAKr6B,EAAE,IAAM,CAAEi6B,EAAE5wB,MAAQgxB,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYJ,EAAE5wB,MAAQrJ,EAAE,GAAI,CAAEi6B,EAAE5wB,MAAQrJ,EAAE,GAAIA,EAAIq6B,EAAI,KAAO,CACpE,GAAIr6B,GAAKi6B,EAAE5wB,MAAQrJ,EAAE,GAAI,CAAEi6B,EAAE5wB,MAAQrJ,EAAE,GAAIi6B,EAAEE,IAAIhZ,KAAKkZ,GAAK,KAAO,CAC9Dr6B,EAAE,IAAIi6B,EAAEE,IAAIhb,MAChB8a,EAAEC,KAAK/a,MAAO,SAEtBkb,EAAKN,EAAK1U,KAAKkU,EAASU,EAC5B,CAAE,MAAO36B,GAAK+6B,EAAK,CAAC,EAAG/6B,GAAI6K,EAAI,CAAG,CAAE,QAAU6U,EAAIhf,EAAI,CAAG,CACzD,GAAY,EAARq6B,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE9zB,MAAO8zB,EAAG,GAAKA,EAAG,QAAK,EAAQ9U,MAAM,EAC9E,CAtBgDqU,CAAK,CAACx5B,EAAG2f,GAAK,CAAG,CAuBrE,EACAT,OAAOC,eAAe4X,EAAS,aAAc,CAAE5wB,OAAO,IAKtD,IAUIg1uB,EAVAmd,EAAgBniuB,EAAQ,OACxBmuuB,EAAgBnuuB,EAAQ,OACxBkltB,EAAYlltB,EAAQ,OACpBmltB,EAAWnltB,EAAQ,OACnBoltB,EAAMpltB,EAAQ,OACdqltB,EAAarltB,EAAQ,OACrB2/B,EAAc3/B,EAAQ,OAE1BY,EAAQ0ktB,kBAAoB,mBAC5B1ktB,EAAQsmB,WAAa,eAAiByY,EAAYnY,SAAW69rB,EAAWlstB,WAAa,KAAOkstB,EAAWlstB,UAEvG,SAAW6rtB,GACPA,EAAgB,KAAI,OACpBA,EAAmB,QAAI,UACvBA,EAAmB,QAAI,UACvBA,EAAqC,0BAAI,4BACzCA,EAA0B,eAAI,iBAC9BA,EAAsB,WAAI,YAC7B,CAPD,CAOGA,EAAYpktB,EAAQoktB,YAAcpktB,EAAQoktB,UAAY,CAAC,IAC1D,IAAIO,EAA0B,SAAUx+iB,GAMpC,SAASw+iB,EAASjyuB,GACd,IAAI6Y,EAAQ46K,EAAOj4K,KAAK9lB,OAASA,KAEjC,OADAmjB,EAAM6poB,KAAOp1nB,EAAQ4ktB,SAASlyuB,GACvB6Y,CACX,CAIA,OAbA0V,EAAU0jtB,EAAUx+iB,GAUpBw+iB,EAASr8uB,UAAUqkC,QAAU,SAAU1F,EAAWgqsB,GAC9C,OAAO7ouB,KAAKgtpB,KAAKzonB,QAAQ1F,EAAWgqsB,EACxC,EACO0T,CACX,CAf8B,CAe5B4oB,EAAcv8B,YAChBhxsB,EAAQ2ktB,SAAWA,EACnB,IAAIE,EAAkB,SAAUr7tB,EAAIyd,EAAWgqsB,GAC3C,IAAIxnsB,OAAY,IAAPjgB,EAAgB,CAAE3f,OAAQ,GAAIuF,MAAO,IAAOoa,EAAI3f,EAAS4/B,EAAG5/B,OAAQuF,EAAQq6B,EAAGr6B,MACxF,OAAOqc,OAAU,OAAQ,OAAQ,GAAQ,WACrC,IAAIq5tB,EAAar6uB,EAAsBg8L,EACnCx4K,EAAIH,EACR,OAAO6U,EAAYv6B,MAAM,SAAUg/L,GAC/B,OAAQA,EAAGl1L,OACP,KAAK,EAGD,OAFA4yuB,EAAc79sB,EAAU+gM,aACxBv9N,EAAU22B,EAASA,EAAS,CAAC,EAAG0jtB,EAAYr6uB,WAAWwjB,EAAK,CAAC,GAAM+R,EAAQ0ktB,mBAAqB1ktB,EAAQsmB,WAAYr4B,IAC9GpkB,GAAUuF,EACO,oBAAVA,EAA8B,CAAC,EAAa,GAClD,CAAC,EAAaA,EAAM8e,UAAKzd,IAFD,CAAC,EAAa,GAGjD,KAAK,EAED,OADAg2L,EAAKW,EAAGjmL,OACD,CAAC,EAAa,GACzB,KAAK,EAAG,MAAO,CAAC,EAAa/R,GAC7B,KAAK,EACDq3L,EAAKW,EAAGjmL,OACRimL,EAAGl1L,MAAQ,EACf,KAAK,EAEDzH,EAAU22B,IAAUtT,EAAK,CAAC,GAAMjkB,GADlB48L,EACyC34K,GAAKrjB,GAC5D28L,EAAGl1L,MAAQ,EACf,KAAK,EAED,OADA+0B,EAAUqnrB,WAAWltrB,EAASA,EAAS,CAAC,EAAG0jtB,GAAc,CAAEr6uB,QAASA,KAC7D,CAAC,EAAcwmuB,EAAQhqsB,IAE1C,GACJ,GACJ,EA6BAjH,EAAQ4ktB,SAAW,SAAUp7tB,GACzB,IAAI84B,EAAM94B,EAAG84B,IAAKtK,EAASxuB,EAAGwuB,OAAQvO,EAAKjgB,EAAGusL,KAAM1pM,QAAe,IAAPo9B,EAAgB,CAAC,EAAIA,GAAIp9B,KAAM0pM,EAAOvsL,EAAGusL,KACrG,OAAO,IAAIw3jB,EAAcv8B,YAAW,SAAU/psB,EAAWgqsB,GACrD,OAAO,IAAIswB,EAAcn0N,YAAW,SAAU2e,GAC1C,IAAIn/gB,EACA2gK,EACJ,OAAQlhM,GACJ,KAAK+3uB,EAAU18pB,KACX6lH,EAAUs3iB,OAAgBp0uB,EAAWw2B,EAAWgqsB,GAChD,MACJ,KAAKmT,EAAUW,QACX,IAAIv7tB,EAAKusL,EAAKr8J,YACd6zJ,EAxCD,SAAU/jL,EAAIyd,EAAWgqsB,GACxC,IAAIv3rB,EAAclwB,EAAGkwB,YAAa1B,EAASxuB,EAAGwuB,OAAQsK,EAAM94B,EAAG84B,IAC/D,OAAO72B,OAAU,OAAQ,OAAQ,GAAQ,WACrC,IAAIghB,EAASq4sB,EAAaE,EAAOv7sB,EAAIoR,EAAauC,EAAiBxC,EAAc6rJ,EAAIl3J,EAAM3nB,EAAMq9tB,EAAWx6uB,EACxGwjB,EACJ,OAAO0U,EAAYv6B,MAAM,SAAU0lB,GAC/B,OAAQA,EAAG5b,OACP,KAAK,EAID,OAHAu6B,EApEN,UAqEMq4sB,EAAc79sB,EAAU+gM,cACxBg9gB,EAA+B,oBAAhBtrsB,EAA6BA,EAAYxrB,OAAUwrB,GAAe,CAAC,IACvC,oBAArBsrsB,EAAME,WACrB,CAAC,EAAaF,EAAME,cADoC,CAAC,EAAa,GAEjF,KAAK,EACDp3tB,EAAG3M,OACH2M,EAAG5b,MAAQ,EACf,KAAK,EAAG,MAAO,CAAC,EAAa8yuB,GAC7B,KAAK,EAMD,OALAv7sB,EAAK3b,EAAG3M,OAAQ05B,EAAcpR,EAAGoR,YAAauC,EAAkB3T,EAAG2T,gBAAiBxC,EAAenR,EAAGmR,aACtG6rJ,EAAK+9iB,EAAIz6uB,MAAMu4C,GAAM/S,EAAOk3J,EAAGl3J,KAAM3nB,EAAO6+K,EAAG7+K,KAC/Cq9tB,EAAY7jtB,EAASA,EAAS,CAAC,EAAG+jtB,EAAgBl+sB,EAAW,CAAC,IAAK,CAAEwF,QAASA,EAASuL,OAAQA,EAAQsK,IAAKA,EAAK/S,KAAMA,EAAM3nB,KAAMA,IACnInd,EAAU85uB,EAASa,OAAOz9sB,KAAKs9sB,EAAW,CAAEI,WAAYxqsB,EAAayqsB,WAAYlosB,EAAiBmosB,cAAe3qsB,IAAgBnwC,QACjIw8B,EAAUqnrB,WAAWltrB,EAASA,EAAS,CAAC,EAAG0jtB,GAAc,CAAEr6uB,QAAS22B,EAASA,EAASA,EAAS,CAAC,EAAG0jtB,EAAYr6uB,SAAUA,IAAWwjB,EAAK,CAAC,EAAGA,EAAG+R,EAAQ0ktB,mBAAqB1ktB,EAAQsmB,WAAYr4B,OAC1L,CAAC,EAAcgjtB,EAAQhqsB,IAE1C,GACJ,GACJ,CAa8Bu+sB,CAAa,CACnB9rsB,iBAF4C,IAAPlwB,EAAgB,CAAC,EAAIA,EAG1DwuB,OAAQA,EACRsK,IAAKA,GACNrb,EAAWgqsB,GACd,MACJ,KAAKmT,EAAUqB,QACX,IAAIh8sB,EAAKssK,EAAK2viB,OACdn4iB,EAAUs3iB,EAAgB,CAAEh7uB,OAAQ,YAAauF,WADX,IAAPq6B,EAAgB,GAAKA,GACcxC,EAAWgqsB,GAC7E,MACJ,KAAKmT,EAAUuB,0BACf,KAAKvB,EAAUwB,eACX,IAAIn/iB,EAAKsP,EAAK8viB,SACdt4iB,EAAUs3iB,EAAgB,CAAEh7uB,OAAQ,gBAAiBuF,WADX,IAAPq3L,EAAgB,GAAKA,GACgBx/J,EAAWgqsB,GACnF,MACJ,KAAKmT,EAAU0B,WACX,IAAI73tB,EAAK8nL,EAAKjpJ,MACdygJ,EAAUs3iB,EAAgB,CAAEh7uB,OAAQ,gBAAiBuF,WADjB,IAAP6e,EAAgB,GAAKA,GACmBgZ,EAAWgqsB,GAChF,MACJ,QAEI,MADY,IAAI1ouB,MAAM,sBAAwBwtM,EAAK1pM,MAU3D,OAPAkhM,EAAQn3K,MAAK,SAAU2vtB,GACnBn5sB,EAASm5sB,EAAWzojB,UAAU,CAC1BnvK,KAAM49hB,EAAS59hB,KAAKvlB,KAAKmjjB,GACzBp/iB,MAAOo/iB,EAASp/iB,MAAM/D,KAAKmjjB,GAC3BxiF,SAAUwiF,EAASxiF,SAAS3ge,KAAKmjjB,IAEzC,IACO,WACCn/gB,GACAA,EAAO+hsB,aACf,CACJ,GACJ,GACJ,EACA,IAAIwW,EAAkB,SAAU37tB,EAAI9W,GAChC,IAAIgguB,EAAgBlptB,EAAGkptB,cAAenR,EAAY/3sB,EAAG+3sB,UAAWvorB,EAAQxvB,EAAGwvB,MACvEpW,EAAO,CACP8vsB,cAAeA,EACfnR,UAAWykB,EAAyBzkB,GACpCvorB,MAAOsrsB,EAAUv7d,MAAM/vO,IAE3B,OAAO5X,EAASA,EAAS,CAAEwB,KAAM94B,KAAKQ,UAAUs4B,GAAOvzB,OAAQ,QAAUqD,GAAU,CAAEjI,QAAS22B,EAAS,CAAElS,OAAQ,MAAO,eAAgB,mCAAqCxc,EAAQjI,UACzL,EAIIu7uB,EAA2B,SAAUzkB,GACrC,OAAOp5sB,OAAOwE,KAAK40sB,GACd1ktB,QAAO,SAAUwQ,GAAO,OAAQA,EAAIyvB,WAAW,KAAO,IACtDxyB,QAAO,SAAUC,EAAK8C,GAEvB,OADA9C,EAAI8C,GAAOk0sB,EAAUl0sB,GACd9C,CACX,GAAG,CAAC,EACR,sCCpOApC,OAAOC,eAAe4X,EAAS,aAAc,CAAE5wB,OAAO,IACtD,IAAI62uB,EAAc7mtB,EAAQ,OAC1BY,EAAQ2ktB,SAAWsB,EAAYtB,SAC/B3ktB,EAAQoktB,UAAY6B,EAAY7B,UAChCpktB,EAAQ0ktB,kBAAoBuB,EAAYvB,kBACxC1ktB,EAAQsmB,WAAa2/rB,EAAY3/rB,WACjCtmB,EAAQkmtB,eAAiB,SAAU18tB,GAC/B,IAAI84B,EAAM94B,EAAG84B,IAAKtK,EAASxuB,EAAGwuB,OAAQ+9J,EAAOvsL,EAAGusL,KAChD,OAAO,IAAIkwiB,EAAYtB,SAAS,CAAErisB,IAAKA,EAAKtK,OAAQA,EAAQ+9J,KAAMA,GACtE,EACA,IAAIwuiB,EAAWnltB,EAAQ,OACvBY,EAAQoltB,OAASb,EAASa,yCCX1Bj9tB,OAAOC,eAAe4X,EAAS,aAAc,CAAE5wB,OAAO,IAEtD4wB,EAAQzH,UADQ,uCCEhBpQ,OAAOC,eAAe4X,EAAS,aAAc,CAAE5wB,OAAO,IAHtD,SAAkBg0B,GACd,IAAK,IAAIrC,KAAKqC,EAAQpD,EAAQgB,eAAeD,KAAIf,EAAQe,GAAKqC,EAAErC,GACpE,CAMAoltB,CAAS/mtB,EAAQ,4CCRjBjX,OAAOC,eAAe4X,EAAS,aAAc,CAAE5wB,OAAO,IAQtDi+L,EAAAA,EAAOvjK,OAASujK,EAAAA,EAAOvjK,QAAU1K,EAAAA,OAAAA,OACjC,IAAIkjB,EAAMljB,EAAQ,OACdggC,EAAShgC,EAAAA,OAAAA,OACTkS,EAAQlS,EAAAA,OAAAA,MACRsK,EAAU,SAAUrc,EAAK3V,EAAKmvB,QACb,IAAbA,IAAuBA,EAAW,IACtC,IAAIb,EAAO,IAAIo5B,EAAO/xC,GACtB2Y,EAAKvG,OAAO/nB,GACZ,IAAIpK,EAAS04B,EAAKk0E,aAClB,MAAiB,QAAbrzE,EACOyK,EAAMhkC,GAEVA,CACX,EACI04B,EAAO,SAAUtuB,GACjB,IAAIysC,EAAMzsC,GAAO,GACbsuB,EAAO,IAAIo5B,EAEf,OADAp5B,EAAKvG,OAAO0kB,GACL7S,EAAMtL,EAAKk0E,aACtB,EAmCIksoB,EAAiB,SAAU37uB,GAC3B,OAAO0d,OAAOwE,KAAKliB,GACd6N,KAAI,SAAU+U,GAAO,OAAOA,EAAIpF,aAAe,IAC/CuwB,OACAppB,KAAK,IACd,EAyIIuY,EAAO,SAAUgF,EAAS05sB,EAAaC,QAClB,IAAjBA,IAA2BA,EAAe,MAC9C35sB,EAAQliC,QAAUkiC,EAAQliC,SAAW,CAAC,EAEtC,IAAqB87uB,GAAZ,IAAI76uB,MAAoB6xC,cAAcx0C,QAAQ,gBAAiB,IAAKy9uB,EAAQD,EAAOt4uB,OAAO,EAAG,GAAIu6G,EAAY,mBAClHi+nB,EAAWnksB,EAAIv4C,MAAM4iC,EAAQ2V,KACjC3V,EAAQliC,QAAc,KAAIg8uB,EAASl3sB,KACnC5C,EAAQliC,QAAQ,cAAgB87uB,EAC5BF,EAAYd,gBACZ54sB,EAAQliC,QAAQ,wBAA0B47uB,EAAYd,eAG1D,IAAImB,EArIgB,SAAU/5sB,GAC9B,IA7C8BliC,EA6C1Bg8uB,EAAWnksB,EAAIv4C,MAAM4iC,EAAQ2V,KACjC,MAAO,CACH3V,EAAQt9B,QAAU,IAClBo3uB,EAAS7+tB,KACT6+tB,EAASztsB,OAjDiBvuC,EAkDRkiC,EAAQliC,QAjDzBA,GAA2C,IAAhC0d,OAAOwE,KAAKliB,GAASzB,OAG9Bmf,OAAOwE,KAAKliB,GACd6N,KAAI,SAAU+U,GACf,MAAO,CACHA,IAAKA,EAAIpF,cACT7Y,MAAO3E,EAAQ4iB,GAAO5iB,EAAQ4iB,GAAKqrB,OAAO3vC,QAAQ,OAAQ,KAAO,GAEzE,IACKyvC,MAAK,SAAUrvC,EAAGy3B,GACnB,OAAOz3B,EAAEkkB,IAAMuT,EAAEvT,KAAO,EAAI,CAChC,IACK/U,KAAI,SAAUS,GACf,OAAOA,EAAKsU,IAAM,IAAMtU,EAAK3J,KACjC,IACKggB,KAAK,MAAQ,KAfP,IAiDPg3tB,EAAez5sB,EAAQliC,SACvBu7B,EAAK2G,EAAQ/J,OACfxT,KAAK,KACX,CA2HsBu3tB,CAAkBh6sB,GAEpC25sB,EAAeA,GA5HM,SAAU35sB,GAC/B,IACoE+0E,GADrDp/D,EAAIv4C,MAAM4iC,EAAQ2V,KAAsB/S,KACpCg8E,MAAM,2CAAgE,IAAI/8F,MAAM,EAAG,GAItG,MAHkB,OAAdkzF,EAAO,KACPA,EAASA,EAAO1+D,WAEb,CACHvW,QAASE,EAAQF,SAAWi1E,EAAO,GACnC1pE,OAAQrL,EAAQqL,QAAU0pE,EAAO,GAEzC,CAkHmCkloB,CAAmBj6sB,GAClD,IAAIv2B,EAlHe,SAAUowuB,EAAOxusB,EAAQvL,GAC5C,MAAO,CACH+5sB,EACAxusB,EACAvL,EACA,gBACFrd,KAAK,IACX,CA2GgBy3tB,CAAiBL,EAAOF,EAAatusB,OAAQsusB,EAAa75sB,SAClEq6sB,EA9Fa,SAAUt+nB,EAAWm+nB,EAAmBJ,EAAQnwuB,GACjE,MAAO,CACHoyG,EACA+9nB,EACAnwuB,EACA4vB,EAAK2gtB,IACPv3tB,KAAK,KACX,CAuFsB23tB,CAAev+nB,EAAWk+nB,EAAaH,EAAQnwuB,GAE7D4wuB,EA3Ec,SAAU1B,EAAYkB,EAAOF,QAC5B,IAAfhB,IAAyBA,EAAa,IAC1C,IAA+B2B,EAASv9sB,EAA/B,OAAS47sB,EAAiCkB,GAAQU,EAAWx9sB,EAAQu9sB,EAAQX,EAAatusB,QAASmvsB,EAAYz9sB,EAAQw9sB,EAAUZ,EAAa75sB,SACvJ,OAD6K/C,EAAQy9sB,EAAW,eAEpM,CAuEsBC,CAAgBf,EAAYf,WAAYkB,EAAOF,GAAezqsB,EAtEhE,SAAUmrsB,EAAaF,GACvC,OAAOp9sB,EAAQs9sB,EAAaF,EAAa,MAC7C,CAoEgGO,CAAcL,EAAaF,GAEnHQ,EAhEuB,SAAU9+nB,EAAW68nB,EAAYjvuB,EAAOgwuB,EAAgBvqsB,GAEnF,YADmB,IAAfwpsB,IAAyBA,EAAa,IACnC,CACH78nB,iBAAkC68nB,EAAa,IAAMjvuB,EACrD,iBAAmBgwuB,EACnB,aAAevqsB,GACjBzsB,KAAK,KACX,CAyD+Bm4tB,CAAyB/+nB,EAAW69nB,EAAYhB,WAAYjvuB,EAAOgwuB,EAAez5sB,EAAQliC,SAAUoxC,GAE/H,OADAlP,EAAQliC,QAAuB,cAAI68uB,EAC5B36sB,CACX,EAOIy4sB,EAAwB,WACxB,SAASA,IACT,CAEA,OADAA,EAAOz9sB,KAAOA,EACPy9sB,CACX,CAL4B,GAM5BpltB,EAAQoltB,OAASA,EACjBpltB,EAAAA,QAAkBoltB,qCCjPlB,IAAI7jtB,EAAUn5B,MAAQA,KAAKm5B,QAAW,SAAUD,EAAGn5B,GAC/C,IAAIU,EAAI,CAAC,EACT,IAAK,IAAIk4B,KAAKO,EAAOnZ,OAAO7f,UAAU04B,eAAe9S,KAAKoT,EAAGP,IAAM54B,EAAEqB,QAAQu3B,GAAK,IAC9El4B,EAAEk4B,GAAKO,EAAEP,IACb,GAAS,MAALO,GAAqD,oBAAjCnZ,OAAOyE,sBACtB,KAAIxjB,EAAI,EAAb,IAAgB23B,EAAI5Y,OAAOyE,sBAAsB0U,GAAIl4B,EAAI23B,EAAE/3B,OAAQI,IAC3DjB,EAAEqB,QAAQu3B,EAAE33B,IAAM,GAAK+e,OAAO7f,UAAUqpB,qBAAqBzD,KAAKoT,EAAGP,EAAE33B,MACvEP,EAAEk4B,EAAE33B,IAAMk4B,EAAEP,EAAE33B,IAF4B,CAItD,OAAOP,CACX,EACAsf,OAAOC,eAAe4X,EAAS,aAAc,CAAE5wB,OAAO,IACtD,IAAIy5uB,EAAgCzptB,EAAQ,OAC5CY,EAAQ8otB,mBAAqBD,EAA8BC,mBAC3D,IAAIyY,EAAgBniuB,EAAQ,OACxBoiuB,EAAqBpiuB,EAAQ,OAC7BsotB,EAAqBtotB,EAAQ,OAC7B6ptB,EAAyB7ptB,EAAQ,OACjC8ptB,EAAyC9ptB,EAAQ,OAoCrDY,EAAQmptB,gCAnCR,SAAyCC,EAAWC,GAChD,IAAIC,EAAoBC,EACxB,GAAyB,kBAAdH,EACPE,EACID,GAAyBmY,EAAmB/vB,eAAe,CAAE9qhB,IAAKyiiB,IACtEG,EAAoBgY,EAAcvwB,WAAW7ktB,KAAK,CAC9C,IAAI88tB,EAAuBO,mBAAmB,kBAAmB,CAC7Dp0F,KAAM,IAAImsG,EAAcvwB,YAAW,SAAU/psB,EAAWwitB,GACpD,OAAO,IAAI8X,EAAcn0N,YAAW,SAAU2e,GAC1C,IAAIviiB,EACgBi9K,EAAXx/J,EAAmBs6rB,UAAWtzsB,EAAK46tB,EAA8BC,mBAAoBY,EAAgBjjjB,EAAGx4K,GAAKszsB,EAAYhgsB,EAAOklK,EAAI,CAAe,kBAAPx4K,EAAkBA,EAAKA,EAAK,KAKjL,MAJ6B,qBAAlBy7tB,IACPzitB,EAAUs6rB,UAAYA,GAE1Bx1K,EAAS59hB,OAAM3E,EAAK,CAAC,GAAMq/tB,EAA8BC,oBAAsBY,EAAelguB,IACvF,WAAc,CACzB,GACJ,MAEJ,IAAIy/tB,EAAuBO,mBAAmB,WAAY,CAAEp0F,KAAMk0F,IAClE,IAAIT,EAA8Bc,0BAA0B,kBAG/D,CACD,IAAIrnsB,EAAM8msB,EAAU9msB,IACpBgnsB,EAAqBD,GAAyBmY,EAAmB/vB,eAAe,CAAE9qhB,IAAKrkK,IACvFinsB,EAAoB,IAAIL,EAAuCU,yCAAyCR,EAC5G,CACA,OAAOmY,EAAcvwB,WAAWhnuB,OAAM,SAAUi9B,GAC5C,IAAI+R,EAAQ/R,EAAU+R,MAClBxvB,EAAKk+tB,EAAmB7gB,kBAAkB7trB,GAAQpvB,EAAOJ,EAAGI,KAAMiguB,EAAmBrguB,EAAGyd,UAE5F,MAD8B,wBAATrd,GAAuD,iBAArBiguB,CAE3D,GAAGN,EAAmBD,EAC1B,sCCrDA,IAAIrotB,EAAa74B,MAAQA,KAAK64B,WAAe,WACzC,IAAIP,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBvY,OAAO0Y,gBAClB,CAAEC,UAAW,cAAgBpW,OAAS,SAAUiW,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EACtEL,EAAcC,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAEhB,SAASM,IAAO94B,KAAKqmB,YAAckS,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAEr4B,UAAkB,OAANs4B,EAAazY,OAAOgZ,OAAOP,IAAMM,EAAG54B,UAAYs4B,EAAEt4B,UAAW,IAAI44B,EACnF,CACJ,CAZ6C,GAazCE,EAAYh5B,MAAQA,KAAKg5B,UAAa,WAStC,OARAA,EAAWjZ,OAAOkZ,QAAU,SAASx4B,GACjC,IAAK,IAAIy4B,EAAGl4B,EAAI,EAAGH,EAAIikB,UAAUlkB,OAAQI,EAAIH,EAAGG,IAE5C,IAAK,IAAI23B,KADTO,EAAIpU,UAAU9jB,GACO+e,OAAO7f,UAAU04B,eAAe9S,KAAKoT,EAAGP,KACzDl4B,EAAEk4B,GAAKO,EAAEP,IAEjB,OAAOl4B,CACX,EACOu4B,EAASpU,MAAM5kB,KAAM8kB,UAChC,EACIzB,EAAarjB,MAAQA,KAAKqjB,WAAc,SAAU2W,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIlZ,WAAU,SAAU4B,EAASH,GAC/C,SAAS2X,EAAUpzB,GAAS,IAAMqzB,EAAKF,EAAUpU,KAAK/e,GAAS,CAAE,MAAOjH,GAAK0iB,EAAO1iB,EAAI,CAAE,CAC1F,SAASu6B,EAAStzB,GAAS,IAAMqzB,EAAKF,EAAiB,MAAEnzB,GAAS,CAAE,MAAOjH,GAAK0iB,EAAO1iB,EAAI,CAAE,CAC7F,SAASs6B,EAAKn1B,GAJlB,IAAe8B,EAIa9B,EAAO8gB,KAAOpD,EAAQ1d,EAAO8B,QAJ1CA,EAIyD9B,EAAO8B,MAJhDA,aAAiBkzB,EAAIlzB,EAAQ,IAAIkzB,GAAE,SAAUtX,GAAWA,EAAQ5b,EAAQ,KAIjBgnB,KAAKoM,EAAWE,EAAW,CAC7GD,GAAMF,EAAYA,EAAUvV,MAAMoV,EAASC,GAAc,KAAKlU,OAClE,GACJ,EACIwU,EAAev6B,MAAQA,KAAKu6B,aAAgB,SAAUP,EAASQ,GAC/D,IAAsG/a,EAAG7U,EAAGnK,EAAGg6B,EAA3GC,EAAI,CAAE5wB,MAAO,EAAGiP,KAAM,WAAa,GAAW,EAAPtY,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGk6B,KAAM,GAAIC,IAAK,IAChG,OAAOH,EAAI,CAAE1U,KAAM8U,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAXhX,SAA0B4W,EAAE5W,OAAOC,UAAY,WAAa,OAAO9jB,IAAM,GAAIy6B,EACvJ,SAASI,EAAKh6B,GAAK,OAAO,SAAU2f,GAAK,OACzC,SAAcsa,GACV,GAAIrb,EAAG,MAAM,IAAIyE,UAAU,mCAC3B,KAAOwW,OACH,GAAIjb,EAAI,EAAG7U,IAAMnK,EAAY,EAARq6B,EAAG,GAASlwB,EAAU,OAAIkwB,EAAG,GAAKlwB,EAAS,SAAOnK,EAAImK,EAAU,SAAMnK,EAAEqlB,KAAKlb,GAAI,GAAKA,EAAEmb,SAAWtlB,EAAIA,EAAEqlB,KAAKlb,EAAGkwB,EAAG,KAAK9U,KAAM,OAAOvlB,EAE3J,OADImK,EAAI,EAAGnK,IAAGq6B,EAAK,CAAS,EAARA,EAAG,GAAQr6B,EAAEuG,QACzB8zB,EAAG,IACP,KAAK,EAAG,KAAK,EAAGr6B,EAAIq6B,EAAI,MACxB,KAAK,EAAc,OAAXJ,EAAE5wB,QAAgB,CAAE9C,MAAO8zB,EAAG,GAAI9U,MAAM,GAChD,KAAK,EAAG0U,EAAE5wB,QAASc,EAAIkwB,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKJ,EAAEE,IAAIhb,MAAO8a,EAAEC,KAAK/a,MAAO,SACxC,QACI,KAAkBnf,GAAZA,EAAIi6B,EAAEC,MAAY/5B,OAAS,GAAKH,EAAEA,EAAEG,OAAS,MAAkB,IAAVk6B,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEJ,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVI,EAAG,MAAcr6B,GAAMq6B,EAAG,GAAKr6B,EAAE,IAAMq6B,EAAG,GAAKr6B,EAAE,IAAM,CAAEi6B,EAAE5wB,MAAQgxB,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYJ,EAAE5wB,MAAQrJ,EAAE,GAAI,CAAEi6B,EAAE5wB,MAAQrJ,EAAE,GAAIA,EAAIq6B,EAAI,KAAO,CACpE,GAAIr6B,GAAKi6B,EAAE5wB,MAAQrJ,EAAE,GAAI,CAAEi6B,EAAE5wB,MAAQrJ,EAAE,GAAIi6B,EAAEE,IAAIhZ,KAAKkZ,GAAK,KAAO,CAC9Dr6B,EAAE,IAAIi6B,EAAEE,IAAIhb,MAChB8a,EAAEC,KAAK/a,MAAO,SAEtBkb,EAAKN,EAAK1U,KAAKkU,EAASU,EAC5B,CAAE,MAAO36B,GAAK+6B,EAAK,CAAC,EAAG/6B,GAAI6K,EAAI,CAAG,CAAE,QAAU6U,EAAIhf,EAAI,CAAG,CACzD,GAAY,EAARq6B,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE9zB,MAAO8zB,EAAG,GAAKA,EAAG,QAAK,EAAQ9U,MAAM,EAC9E,CAtBgDqU,CAAK,CAACx5B,EAAG2f,GAAK,CAAG,CAuBrE,EACAT,OAAOC,eAAe4X,EAAS,aAAc,CAAE5wB,OAAO,IAKtD,IAAImyvB,EAAgBniuB,EAAQ,OACxBknvB,EAAwBlnvB,EAAQ,OAChCoqtB,EAAoC,SAAUrjjB,GAE9C,SAASqjjB,EAAmBO,EAAYvguB,GACpC,IAAI4roB,EAAO5roB,EAAG4roB,KACV7poB,EAAQ46K,EAAOj4K,KAAK9lB,OAASA,KAGjC,OAFAmjB,EAAMw+tB,WAAaA,EACnBx+tB,EAAM6poB,KAAOA,EACN7poB,CACX,CAsBA,OA7BA0V,EAAUuotB,EAAoBrjjB,GAQ9BqjjB,EAAmBlhvB,UAAUqkC,QAAU,SAAU1F,EAAWgqsB,GACxD,IAAI1ltB,EAAQnjB,KACZ,OAAOk+wB,EAAsBh4D,YAAW,SAAU07B,EAAUC,GAAe,OAAOx+tB,EAAUF,OAAO,OAAQ,GAAQ,WAC/G,IAAIje,EACAkc,EACA+B,EAAQnjB,KACZ,OAAOu6B,EAAYv6B,MAAM,SAAUqhC,GAC/B,OAAQA,EAAGv3B,OACP,KAAK,EAAG,MAAO,CAAC,EAAa,IAAIkX,SAAQ,SAAU4B,EAASH,GACpDU,EAAM6poB,KAAKzonB,QAAQ1F,GAAWq2J,UAAU,CACpCnvK,KAAMnD,EACNre,MAAOke,GAEf,KACJ,KAAK,EAED,OADAvd,EAASm8B,EAAGtoB,OACL,CAAC,EAAcigB,EAASA,EAAS,CAAC,EAAG6otB,IAAezguB,EAAK,CAAC,EAAGA,EAAGphB,KAAK2hvB,YAAcz8uB,EAAQkc,KAE9G,GACJ,GAAI,IAAGmjB,QAAQ1F,EAAWgqsB,EAC9B,EACOuY,CACX,CA/BwC,CA+BtC+X,EAAcvwB,YAChBhxsB,EAAQwptB,mBAAqBA,4DCnGzBvotB,EAAa74B,MAAQA,KAAK64B,WAAe,WACzC,IAAIP,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBvY,OAAO0Y,gBAClB,CAAEC,UAAW,cAAgBpW,OAAS,SAAUiW,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EACtEL,EAAcC,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAEhB,SAASM,IAAO94B,KAAKqmB,YAAckS,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAEr4B,UAAkB,OAANs4B,EAAazY,OAAOgZ,OAAOP,IAAMM,EAAG54B,UAAYs4B,EAAEt4B,UAAW,IAAI44B,EACnF,CACJ,CAZ6C,GAazCE,EAAYh5B,MAAQA,KAAKg5B,UAAa,WAStC,OARAA,EAAWjZ,OAAOkZ,QAAU,SAASx4B,GACjC,IAAK,IAAIy4B,EAAGl4B,EAAI,EAAGH,EAAIikB,UAAUlkB,OAAQI,EAAIH,EAAGG,IAE5C,IAAK,IAAI23B,KADTO,EAAIpU,UAAU9jB,GACO+e,OAAO7f,UAAU04B,eAAe9S,KAAKoT,EAAGP,KACzDl4B,EAAEk4B,GAAKO,EAAEP,IAEjB,OAAOl4B,CACX,EACOu4B,EAASpU,MAAM5kB,KAAM8kB,UAChC,EACIzB,EAAarjB,MAAQA,KAAKqjB,WAAc,SAAU2W,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIlZ,WAAU,SAAU4B,EAASH,GAC/C,SAAS2X,EAAUpzB,GAAS,IAAMqzB,EAAKF,EAAUpU,KAAK/e,GAAS,CAAE,MAAOjH,GAAK0iB,EAAO1iB,EAAI,CAAE,CAC1F,SAASu6B,EAAStzB,GAAS,IAAMqzB,EAAKF,EAAiB,MAAEnzB,GAAS,CAAE,MAAOjH,GAAK0iB,EAAO1iB,EAAI,CAAE,CAC7F,SAASs6B,EAAKn1B,GAJlB,IAAe8B,EAIa9B,EAAO8gB,KAAOpD,EAAQ1d,EAAO8B,QAJ1CA,EAIyD9B,EAAO8B,MAJhDA,aAAiBkzB,EAAIlzB,EAAQ,IAAIkzB,GAAE,SAAUtX,GAAWA,EAAQ5b,EAAQ,KAIjBgnB,KAAKoM,EAAWE,EAAW,CAC7GD,GAAMF,EAAYA,EAAUvV,MAAMoV,EAASC,GAAc,KAAKlU,OAClE,GACJ,EACIwU,EAAev6B,MAAQA,KAAKu6B,aAAgB,SAAUP,EAASQ,GAC/D,IAAsG/a,EAAG7U,EAAGnK,EAAGg6B,EAA3GC,EAAI,CAAE5wB,MAAO,EAAGiP,KAAM,WAAa,GAAW,EAAPtY,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGk6B,KAAM,GAAIC,IAAK,IAChG,OAAOH,EAAI,CAAE1U,KAAM8U,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAXhX,SAA0B4W,EAAE5W,OAAOC,UAAY,WAAa,OAAO9jB,IAAM,GAAIy6B,EACvJ,SAASI,EAAKh6B,GAAK,OAAO,SAAU2f,GAAK,OACzC,SAAcsa,GACV,GAAIrb,EAAG,MAAM,IAAIyE,UAAU,mCAC3B,KAAOwW,OACH,GAAIjb,EAAI,EAAG7U,IAAMnK,EAAY,EAARq6B,EAAG,GAASlwB,EAAU,OAAIkwB,EAAG,GAAKlwB,EAAS,SAAOnK,EAAImK,EAAU,SAAMnK,EAAEqlB,KAAKlb,GAAI,GAAKA,EAAEmb,SAAWtlB,EAAIA,EAAEqlB,KAAKlb,EAAGkwB,EAAG,KAAK9U,KAAM,OAAOvlB,EAE3J,OADImK,EAAI,EAAGnK,IAAGq6B,EAAK,CAAS,EAARA,EAAG,GAAQr6B,EAAEuG,QACzB8zB,EAAG,IACP,KAAK,EAAG,KAAK,EAAGr6B,EAAIq6B,EAAI,MACxB,KAAK,EAAc,OAAXJ,EAAE5wB,QAAgB,CAAE9C,MAAO8zB,EAAG,GAAI9U,MAAM,GAChD,KAAK,EAAG0U,EAAE5wB,QAASc,EAAIkwB,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKJ,EAAEE,IAAIhb,MAAO8a,EAAEC,KAAK/a,MAAO,SACxC,QACI,KAAkBnf,GAAZA,EAAIi6B,EAAEC,MAAY/5B,OAAS,GAAKH,EAAEA,EAAEG,OAAS,MAAkB,IAAVk6B,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEJ,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVI,EAAG,MAAcr6B,GAAMq6B,EAAG,GAAKr6B,EAAE,IAAMq6B,EAAG,GAAKr6B,EAAE,IAAM,CAAEi6B,EAAE5wB,MAAQgxB,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYJ,EAAE5wB,MAAQrJ,EAAE,GAAI,CAAEi6B,EAAE5wB,MAAQrJ,EAAE,GAAIA,EAAIq6B,EAAI,KAAO,CACpE,GAAIr6B,GAAKi6B,EAAE5wB,MAAQrJ,EAAE,GAAI,CAAEi6B,EAAE5wB,MAAQrJ,EAAE,GAAIi6B,EAAEE,IAAIhZ,KAAKkZ,GAAK,KAAO,CAC9Dr6B,EAAE,IAAIi6B,EAAEE,IAAIhb,MAChB8a,EAAEC,KAAK/a,MAAO,SAEtBkb,EAAKN,EAAK1U,KAAKkU,EAASU,EAC5B,CAAE,MAAO36B,GAAK+6B,EAAK,CAAC,EAAG/6B,GAAI6K,EAAI,CAAG,CAAE,QAAU6U,EAAIhf,EAAI,CAAG,CACzD,GAAY,EAARq6B,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE9zB,MAAO8zB,EAAG,GAAKA,EAAG,QAAK,EAAQ9U,MAAM,EAC9E,CAtBgDqU,CAAK,CAACx5B,EAAG2f,GAAK,CAAG,CAuBrE,EACAT,OAAOC,eAAe4X,EAAS,aAAc,CAAE5wB,OAAO,IAKtD,IAAImyvB,EAAgBniuB,EAAQ,OACxBuvrB,EAAUvvrB,EAAQ,OAClB8qtB,EAA0B9qtB,EAAQ,OAClC+qtB,EAAY/qtB,EAAQ,OACpBkjB,EAAMljB,EAAQ,OACdgrtB,EAAShrtB,EAAQ,OACjBwliB,EAAUxliB,EAAQ,MAClBirtB,EAAUjrtB,EAAQ,OAClB4M,EAAS2irB,EAAQ27B,WAAW76N,OAAO,iBACvCzvf,EAAQ8otB,mBAAqB,kBAC7B,IAAIyB,EAAsB,CAAC,IAAK,IAAK,KAEjCC,EAA2B,CAC3Bt7tB,OAAQ,oCACR,mBAAoB,UACpB,eAAgB,mCAkBhBu7tB,EAAwB,wFAExBb,EAA0D,SAAUzjjB,GAEpE,SAASyjjB,EAAyCpguB,GAC9C,IAAIkhuB,EAASlhuB,EAAG84B,IAAKqosB,EAAYnhuB,EAAGwuB,OAAQ4ysB,EAAUphuB,EAAGusL,KAAM80iB,EAAqBrhuB,EAAGqhuB,mBACnFt/tB,EAAQ46K,EAAOj4K,KAAK9lB,OAASA,KASjC,GARAmjB,EAAMu/tB,aAAelmL,EAAQmmL,cAAcC,OAC3Cz/tB,EAAM0/tB,sBAAmBx6uB,EACzB8a,EAAM2/tB,wBAA0B,IAAIzjuB,IACpC8D,EAAM4/tB,aAAe,GACrB5/tB,EAAM+2B,IAAMoosB,EACZn/tB,EAAMysB,OAAS2ysB,EACfp/tB,EAAMwqL,KAAO60iB,EACbr/tB,EAAM0/tB,iBAAmBJ,EACrBt/tB,EAAM0/tB,iBApBc,IAoBgC,CAEpD,MAAM,IAAI1ivB,MAAM6ivB,8DAAuF7/tB,EAAM0/tB,iBAAmB,UACpI,CACA,OAAO1/tB,CACX,CAuqBA,OAxrBA0V,EAAU2otB,EAA0CzjjB,GAmBpDyjjB,EAAyCthvB,UAAU+ivB,eAAiB,SAAU/osB,GAC1E,OAA4C,OAArCA,EAAIipE,MAAMk/nB,EACrB,EACAb,EAAyCthvB,UAAUqkC,QAAU,SAAU1F,GACnE,IAAIzd,EACA+B,EAAQnjB,KACR4wC,EAAQ/R,EAAU+R,MAAOuorB,EAAYt6rB,EAAUs6rB,UAC/C93rB,EAAKxC,EAAU+gM,aAAcvhC,EAAKh9J,EAAG6htB,gBAAiBr9tB,EAAK+R,EAAQ8otB,mBAAoBY,QAAwB,IAAPjjjB,GAAiBj9K,EAAK,CAAC,EAC/HA,EAAGwW,EAAQ8otB,yBAAsBr4uB,EACjC+Y,GAAMi9K,GAAIx4K,GAAKxjB,EAAUg/B,EAAGh/B,QAChC,OAAO,IAAI82vB,EAAcn0N,YAAW,SAAU2e,GAC1C,GAAKxgiB,EAAM+2B,IAQN,CACD,IAAIipsB,EAAmBnB,EAAOh7rB,KAC1BtC,EAAQvhC,EAAMwqL,KAAK1pM,OAAS69uB,EAAwB9F,UAAUuB,2BAC9Dp6tB,EAAMwqL,KAAK1pM,OAAS69uB,EAAwB9F,UAAUwB,eACpDr6tB,EAAMwqL,KAAK8viB,SACX,KACN/4rB,EACIvhC,EAAMwqL,KAAK1pM,OAAS69uB,EAAwB9F,UAAU0B,WAAav6tB,EAAMwqL,KAAKjpJ,MAAQA,EAC1F,IAAIp6C,EAAU,CACV84uB,uBAAwBjguB,EAAM+2B,IAC9BmpsB,mBAAoBlguB,EAAMwqL,KAAK1pM,KAC/B2sC,MAAOmxsB,EAAUphe,MAAM/vO,GACvBhB,OAAQzsB,EAAMysB,OACd0zsB,gBAAiB,WAAc,OAAOjhvB,CAAS,EAC/C82tB,UAAWA,EACXmkB,OAAQn6tB,EAAMwqL,KAAK1pM,OAAS69uB,EAAwB9F,UAAUqB,QAAUl6tB,EAAMwqL,KAAK2viB,OAAS,GAC5FhssB,YAAanuB,EAAMwqL,KAAK1pM,OAAS69uB,EAAwB9F,UAAUW,QAAUx5tB,EAAMwqL,KAAKr8J,YAAc,KACtGoT,MAAOA,GAOX,OALAvhC,EAAMoguB,yCAAyC,CAC3Cj5uB,QAASA,EACTq5iB,SAAUA,EACV6/L,eAAgBL,IAEb,WAAc,OAAO9/tB,EAAUF,OAAO,OAAQ,GAAQ,WAEzD,OAAOoX,EAAYv6B,MAAM,SAAUohB,GAE/B,IAGI,GAFAphB,KAAKyjvB,kCAAkCN,GACnBnjvB,KAAK8ivB,wBAAwBhjuB,IAAIqjuB,GAAkBO,oBAC7ClnL,EAAQmnL,oBAAoBC,UAIlD,MAAM,IAAIzjvB,MAAM,6DAHhBH,KAAK6jvB,2BAA2BV,EAKxC,CACA,MAAO9+uB,GAEH,OADArE,KAAK8jvB,4BAA4BX,GAC1B,CAAC,EACZ,CACA,MAAO,CAAC,EACZ,GACJ,GAAI,CACR,CApDIx/L,EAASp/iB,MAAM,CACXyV,OAAQ,CACJgf,EAAS,CAAC,EAAG,IAAI+otB,EAAUgC,aAAa,yDAGhDpgM,EAASxiF,UAgDjB,IAAG1sd,QAAO,SAAU9K,GAChB,IAAIyX,EAAKzX,EAAKqsD,WAAY30B,QAAa,IAAPjgB,EAAgB,CAAC,EAAIA,GAAI4iuB,eAEzD,OAAyB,IAAlB1C,KADsC,0BADoD,IAAPjgtB,OAAgBh5B,EAAYg5B,GAG1H,GACJ,EACAmgtB,EAAyCthvB,UAAUujvB,kCAAoC,SAAUD,GAC7F,OAAOnguB,EAAUrjB,UAAM,OAAQ,GAAQ,WACnC,IACImjB,EAAQnjB,KACZ,OAAOu6B,EAAYv6B,MAAM,SAAUohB,GAG/B,OAFoBphB,KAAK8ivB,wBAAwBhjuB,IAAI0juB,GAAgBE,oBAE3ClnL,EAAQmnL,oBAAoB9nqB,QAC3C,CAAC,EAAc,IAAI76D,SAAQ,SAAUo5F,EAAK6poB,GACzC,IAAI7iuB,EAAK+B,EAAM2/tB,wBAAwBhjuB,IAAI0juB,GAAiB7/L,EAAWviiB,EAAGuiiB,SAAU+/L,EAAoBtiuB,EAAGsiuB,kBAAmBvqB,EAAY/3sB,EAAG+3sB,UAAWvorB,EAAQxvB,EAAGwvB,MACnKztB,EAAM2/tB,wBAAwB9ltB,IAAIwmtB,EAAgB,CAC9C7/L,SAAUA,EACV+/L,kBAAmBA,EACnBvqB,UAAWA,EACXvorB,MAAOA,EACPszsB,0BAA2B9poB,EAC3B+poB,2BAA4BF,GAEpC,KAED,CAAC,EACZ,GACJ,GACJ,EACAzC,EAAyCthvB,UAAU2jvB,2BAA6B,SAAUL,GACtF,IACI,GAAIxjvB,KAAKokvB,mBACLpkvB,KAAKokvB,kBAAkB71iB,aAAe81iB,UAAUC,MAChDtkvB,KAAK0ivB,eAAiBlmL,EAAQmmL,cAAc4B,MAAO,CAEnD,IAAIC,EAAqB,CACrB97uB,GAAI86uB,EACJv/uB,KAAMu4jB,EAAQioL,cAAcC,UAE5BC,EAAsBjjvB,KAAKQ,UAAUsivB,GACzCxkvB,KAAKokvB,kBAAkBz3qB,KAAKg4qB,GAC5B3kvB,KAAK8jvB,4BAA4BN,EACrC,CACJ,CACA,MAAOn/uB,GAEHu/B,EAAO,CAAEv/B,IAAKA,GAClB,CACJ,EACAm9uB,EAAyCthvB,UAAU4jvB,4BAA8B,SAAUN,GACvFxjvB,KAAK8ivB,wBAAwB/8pB,OAAOy9pB,GAEpCn2tB,WAAWrtB,KAAK4kvB,uBAAuBpkvB,KAAKR,MAAO,IACvD,EACAwhvB,EAAyCthvB,UAAU0kvB,uBAAyB,WACpE5kvB,KAAK8ivB,wBAAwB/6uB,KAAO,IAInC/H,KAAKokvB,kBAINpkvB,KAAKokvB,kBAAkBS,eAAiB,EAExCx3tB,WAAWrtB,KAAK4kvB,uBAAuBpkvB,KAAKR,MAAO,MAGnD4jC,EAAO,wBACPkkG,aAAa9nI,KAAK8kvB,oBACD9kvB,KAAKokvB,kBACXl6rB,MAAM,KACjBlqD,KAAKokvB,kBAAoB,KACzBpkvB,KAAK0ivB,aAAelmL,EAAQmmL,cAAcC,QAb1C5ivB,KAAK0ivB,aAAelmL,EAAQmmL,cAAcC,OAelD,EACApB,EAAyCthvB,UAAUqjvB,yCAA2C,SAAUniuB,GACpG,IAAI9W,EAAU8W,EAAG9W,QAASq5iB,EAAWviiB,EAAGuiiB,SAAU6/L,EAAiBpiuB,EAAGoiuB,eACtE,OAAOnguB,EAAUrjB,UAAM,OAAQ,GAAQ,WACnC,IAAIojvB,EAAwBC,EAAoBzysB,EAAOuorB,EAAWmkB,EAAQ1tsB,EAAQvO,EAAIiitB,EAAiBhysB,EAAaoT,EAAOg/rB,EAAmB/5uB,EAAMo7uB,EAAYC,EAAW3mjB,EAAI4mjB,EAAqBN,EAAqBrhuB,EAAOuC,EAAI5lB,EAASilvB,EAA8Bx/tB,EAAIy+tB,EAA4BD,EACvSlljB,EACA77K,EAAQnjB,KACZ,OAAOu6B,EAAYv6B,MAAM,SAAUk/L,GAC/B,OAAQA,EAAGp1L,OACP,KAAK,EAiBD,OAhBAs5uB,EAAyB94uB,EAAQ84uB,uBAAwBC,EAAqB/4uB,EAAQ+4uB,mBAAoBzysB,EAAQtmC,EAAQsmC,MAAOuorB,EAAY7utB,EAAQ6utB,UAAWmkB,EAAShzuB,EAAQgzuB,OAAQ1tsB,EAAStlC,EAAQslC,OAAQvO,EAAK/2B,EAAQg5uB,gBAAiBA,OAAyB,IAAPjitB,EAAgB,WAAc,MAAQ,CAAC,CAAI,EAAIA,EAAIiQ,EAAchnC,EAAQgnC,YAAaoT,EAAQp6C,EAAQo6C,MACxWg/rB,EAAoBlnL,EAAQmnL,oBAAoB9nqB,QAChDlyE,EAAO,CACHinC,MAAOA,EACPuorB,UAAWA,GAGfn5tB,KAAK8ivB,wBAAwB9ltB,IAAIwmtB,EAAgB,CAC7C7/L,SAAUA,EACV/ygB,MAAOA,EACPuorB,UAAWA,EACXuqB,kBAAmBA,EACnByB,kBAAmB,OAEvBJ,EAAarjvB,KAAKQ,UAAUyH,GAC5B00L,EAAK,CAAC,CAAC,GACA,CAAC,EAAar+L,KAAKolvB,4BAA4B,CAC9C9H,OAAQA,EACR8F,uBAAwBA,EACxBC,mBAAoBA,EACpBn/uB,QAAS6gvB,EACTM,aAAc,GACdz1sB,OAAQA,EACR0B,YAAaA,EACboT,MAAOA,EACP4+rB,gBAAiBA,KAE7B,KAAK,EACD0B,EAAYhstB,EAASpU,WAAM,EAAQ,CAACoU,EAASpU,WAAM,EAAQy5K,EAAG37K,OAAO,CAAEw8K,EAAGnmL,WAAaimL,EAAK,CAAC,EAAGA,EAAG8ijB,EAAwBxF,mBAAqBwF,EAAwB5jsB,WAAY8gJ,KACpLimjB,EAAsB,CAClBv8uB,GAAI86uB,EACJt/uB,QAAS,CACLyF,KAAMo7uB,EACN/urB,WAAY,CACRrnB,cAAe3V,EAAS,CAAC,EAAGgstB,KAGpC/gvB,KAAMu4jB,EAAQioL,cAAca,WAEhCX,EAAsBjjvB,KAAKQ,UAAU+ivB,GACrC/ljB,EAAGp1L,MAAQ,EACf,KAAK,EAED,OADAo1L,EAAGvkK,KAAK/Y,KAAK,CAAC,EAAG,EAAE,CAAG,IACf,CAAC,EAAa5hB,KAAKulvB,+BAA+B,CACjDjI,OAAQA,EACR8F,uBAAwBA,EACxBC,mBAAoBA,EACpBzzsB,OAAQA,EACR0B,YAAaA,EACboT,MAAOA,KAEnB,KAAK,EAED,OADAw6I,EAAGnmL,OACI,CAAC,EAAa,GACzB,KAAK,EAcD,OAbAuK,EAAQ47K,EAAGnmL,OACX8M,EAAKvC,EAAMrjB,QAASA,OAAiB,IAAP4lB,EAAgB,GAAKA,EACnD89hB,EAASp/iB,MAAM,CACXyV,OAAQ,CACJgf,EAAS,CAAC,EAAG,IAAI+otB,EAAUgC,aAAa,sBAAwB9jvB,OAGxE0jjB,EAASxiF,WAGmC,oBAF5C+jR,GAAgCllvB,KAAK8ivB,wBAAwBhjuB,IAAI0juB,IAAmB,CAAC,GAAGW,6BAGpFe,IAEG,CAAC,GACZ,KAAK,EAiBD,OAhBAx/tB,EAAK1lB,KAAK8ivB,wBAAwBhjuB,IAAI0juB,GAAiBW,EAA6Bz+tB,EAAGy+tB,2BAA4BD,EAA4Bx+tB,EAAGw+tB,0BAElJlkvB,KAAK8ivB,wBAAwB9ltB,IAAIwmtB,EAAgB,CAC7C7/L,SAAUA,EACV+/L,kBAAmBA,EACnBvqB,UAAWA,EACXvorB,MAAOA,EACPszsB,0BAA2BA,EAC3BC,2BAA4BA,EAC5BgB,kBAAmB93tB,YAAW,WAC1BlK,EAAMqiuB,6BAA6B1/tB,KAAK3C,EAAOqguB,EACnD,GAvQJ,QAyQIxjvB,KAAKokvB,mBACLpkvB,KAAKokvB,kBAAkBz3qB,KAAKg4qB,GAEzB,CAAC,GAEpB,GACJ,GACJ,EACAnD,EAAyCthvB,UAAUqlvB,+BAAiC,SAAUnkuB,GAC1F,IAAI+B,EAAQnjB,KACRojvB,EAAyBhiuB,EAAGgiuB,uBAAwBC,EAAqBjiuB,EAAGiiuB,mBAAoB/F,EAASl8tB,EAAGk8tB,OAAQ1tsB,EAASxuB,EAAGwuB,OAAQ0B,EAAclwB,EAAGkwB,YAAaoT,EAAQtjC,EAAGsjC,MACrL,GAAI1kD,KAAK0ivB,eAAiBlmL,EAAQmmL,cAAc4B,MAGhD,OAAO,IAAIvjuB,SAAQ,SAAUo5F,EAAK6poB,GAAO,OAAO5guB,EAAUF,OAAO,OAAQ,GAAQ,WAC7E,IAAIsiuB,EAAehrO,EAAcr5f,EAAIigB,EAAIqktB,EAAUC,EAAWC,EAAsBC,EAAgBC,EACpG,OAAOvrtB,EAAYv6B,MAAM,SAAUq+L,GAC/B,OAAQA,EAAGv0L,OACP,KAAK,EAED,GADA9J,KAAK+ivB,aAAanhuB,KAAK,CAAEw4F,IAAKA,EAAK6poB,IAAKA,IAClCjkvB,KAAK0ivB,eAAiBlmL,EAAQmmL,cAAcC,OAAS,MAAO,CAAC,EAAa,GAChFvkjB,EAAGv0L,MAAQ,EACf,KAAK,EAKD,OAJAu0L,EAAG1jK,KAAK/Y,KAAK,CAAC,EAAG,EAAE,CAAG,IACtB5hB,KAAK0ivB,aAAelmL,EAAQmmL,cAAcoD,WAC1CN,EAAgB,KAChBpktB,GAAMjgB,EAAK1f,MAAMQ,UACV,CAAC,EAAalC,KAAKolvB,4BAA4B,CAC9C/B,mBAAoBA,EACpBn/uB,QAASuhvB,EACTJ,aAAc,WACd/H,OAAQA,EACR8F,uBAAwBA,EACxBxzsB,OAAQA,EACR0B,YAAaA,EACboT,MAAOA,EACP4+rB,gBAAiB,WAAc,KAE3C,KAAK,EAeD,OAdA7oO,EAAep5e,EAAGzc,MAAMxD,EAAI,CAACi9K,EAAGtlL,SAChC2suB,EAAWhktB,EAAO3d,KAAK02f,GAAcl5gB,SAAS,UAC9CokvB,EAAYjktB,EAAO3d,KAAK0huB,GAAelkvB,SAAS,UAChDqkvB,EAAuBxC,EAOvBwC,GALIA,EADA5lvB,KAAKijvB,eAAe2C,GACGA,EAAqBljuB,OA3SjD,aA8S4BkjuB,EAAqBjlvB,QAAQ,cAAe,wBAAwBA,QAAQ,YAAa,aAG/GA,QAAQ,WAAY,UACpBA,QAAQ,UAAW,SACxBklvB,EAAiBD,EAAuB,WAAaF,EAAW,YAAcC,EACvE,CAAC,EAAa3lvB,KAAKgmvB,8BAA8B,CAAEH,eAAgBA,KAC9E,KAAK,EASD,OARAxnjB,EAAGtlL,OACH/Y,KAAK+ivB,aAAa/9tB,SAAQ,SAAU5D,GAChC,IAAIg5F,EAAMh5F,EAAGg5F,IACbx2E,EAAO,mCACPw2E,GACJ,IACAp6G,KAAK0ivB,aAAelmL,EAAQmmL,cAAc4B,MAC1CvkvB,KAAK+ivB,aAAe,GACb,CAAC,EAAa,GACzB,KAAK,EAaD,OAZA+C,EAAQznjB,EAAGtlL,OACX/Y,KAAK+ivB,aAAa/9tB,SAAQ,SAAU5D,GAEhC,OAAO6iuB,EADG7iuB,EAAG6iuB,KACF6B,EACf,IACA9lvB,KAAK+ivB,aAAe,GAChB/ivB,KAAKokvB,mBACLpkvB,KAAKokvB,kBAAkB71iB,aAAe81iB,UAAUC,MAChDtkvB,KAAKokvB,kBAAkBl6rB,MAAM,MAEjClqD,KAAKokvB,kBAAoB,KACzBpkvB,KAAK0ivB,aAAelmL,EAAQmmL,cAAcC,OACnC,CAAC,EAAa,GACzB,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,GAAI,GACR,EACApB,EAAyCthvB,UAAUklvB,4BAA8B,SAAUhkuB,GACvF,IAAIiiuB,EAAqBjiuB,EAAGiiuB,mBAAoBn/uB,EAAUkd,EAAGld,QAASmhvB,EAAejkuB,EAAGikuB,aAAcjC,EAAyBhiuB,EAAGgiuB,uBAAwB9F,EAASl8tB,EAAGk8tB,OAAQ1tsB,EAASxuB,EAAGwuB,OAAQ0B,EAAclwB,EAAGkwB,YAAaoT,EAAQtjC,EAAGsjC,MAAO4+rB,EAAkBliuB,EAAGkiuB,gBACvQ,OAAOjguB,EAAUrjB,UAAM,OAAQ,GAAQ,WACnC,IAAIimvB,EAAe30kB,EAASnqI,EAC5B,OAAO5M,EAAYv6B,MAAM,SAAUqhC,GAC/B,OAAQA,EAAGv3B,OACP,KAAK,EASD,OARAm8uB,EAAgB,CACZ5I,QAASr9uB,KAAKkmvB,yBAAyB1lvB,KAAKR,MAC5C28uB,QAAS38uB,KAAKmmvB,sBAAsB3lvB,KAAKR,MACzCw9uB,eAAgBx9uB,KAAKomvB,gCAAgC5lvB,KAAKR,MAC1Du9uB,0BAA2Bv9uB,KAAKomvB,gCAAgC5lvB,KAAKR,MACrE09uB,WAAY19uB,KAAKomvB,gCAAgC5lvB,KAAKR,OAGnC,oBADvBsxK,EAAU20kB,EAAc5C,KAEpBz/sB,EAAO,uBAAyBy/sB,EAAqB,kBAC9C,CAAC,EAAc,CAAC,KAE3Bl8sB,EAAO+S,EAAIv4C,MAAMyhvB,GAAwBj8sB,KAClC,CAAC,EAAamqI,EAAQ,CACrBptK,QAASA,EACTmhvB,aAAcA,EACdjC,uBAAwBA,EACxB9F,OAAQA,EACR1tsB,OAAQA,EACRzI,KAAMA,EACNmK,YAAaA,EACboT,MAAOA,EACP4+rB,gBAAiBA,MAE7B,KAAK,EAED,MAAO,CAAC,EADCjitB,EAAGtoB,QAGxB,GACJ,GACJ,EACAyouB,EAAyCthvB,UAAUkmvB,gCAAkC,SAAUhluB,GAC3F,IAAI+lB,EAAO/lB,EAAG+lB,KAAMud,EAAQtjC,EAAGsjC,MAAO4+rB,EAAkBliuB,EAAGkiuB,gBAC3D,OAAOjguB,EAAUrjB,UAAM,OAAQ,GAAQ,WACnC,IAAIqhC,EAAIg9J,EAAIx4K,EACZ,OAAO0U,EAAYv6B,MAAM,SAAU0lB,GAC/B,OAAQA,EAAG5b,OACP,KAAK,EAED,OADAu3B,EAAK,CAAC,EACiB,oBAAVqjB,EAA8B,CAAC,EAAa,GAClD,CAAC,EAAaA,EAAM5+B,UAAKzd,IACpC,KAAK,EAED,OADAg2L,EAAK34K,EAAG3M,OACD,CAAC,EAAa,GACzB,KAAK,EAAG,MAAO,CAAC,EAAa2rC,GAC7B,KAAK,EACD25I,EAAK34K,EAAG3M,OACR2M,EAAG5b,MAAQ,EACf,KAAK,EAED,OADA+b,EAAK,EAAEwb,EAAG9+B,cAAgB87L,EAAIh9J,EAAG8F,KAAOA,EAAM9F,IACvC,CAAC,EAAaiitB,KACzB,KAAK,EAAG,MAAO,CAAC,EAActqtB,EAASpU,WAAM,EAAQiB,EAAGnD,OAAO,CAAEgD,EAAG3M,WAE5E,GACJ,GACJ,EACAyouB,EAAyCthvB,UAAUgmvB,yBAA2B,SAAU9kuB,GACpF,IAAIk8tB,EAASl8tB,EAAGk8tB,OAAQn2sB,EAAO/lB,EAAG+lB,KAAMm8sB,EAAkBliuB,EAAGkiuB,gBAC7D,OAAOjguB,EAAUrjB,UAAM,OAAQ,GAAQ,WACnC,IAAIshB,EAAI+kuB,EAAOhltB,EACf,OAAO9G,EAAYv6B,MAAM,SAAUq+L,GAC/B,OAAQA,EAAGv0L,OACP,KAAK,EAID,OAHAwX,EAAK,IAAIhe,KACT+ivB,EAAQ/kuB,EAAG6zB,cAAcx0C,QAAQ,iBAAkB,IACnD0gC,EAAK,CAAC,CAAE8F,KAAMA,EAAM,aAAck/sB,EAAO,YAAa/I,IAC/C,CAAC,EAAagG,KACzB,KAAK,EAAG,MAAO,CAAC,EAActqtB,EAASpU,WAAM,EAAQyc,EAAG3e,OAAO,CAAE27K,EAAGtlL,WAE5E,GACJ,GACJ,EACAyouB,EAAyCthvB,UAAUimvB,sBAAwB,SAAU/kuB,GACjF,IAAIld,EAAUkd,EAAGld,QAASmhvB,EAAejkuB,EAAGikuB,aAAcjC,EAAyBhiuB,EAAGgiuB,uBAAwBxzsB,EAASxuB,EAAGwuB,OAAQ0B,EAAclwB,EAAGkwB,YACnJ,OAAOjuB,EAAUrjB,UAAM,OAAQ,GAAQ,WACnC,IAAIsmvB,EAAc1J,EAAOv7sB,EAAIoR,EAAauC,EAAiBxC,EAAc+zsB,EAAsBhitB,EAC/F,OAAOhK,EAAYv6B,MAAM,SAAUq+L,GAC/B,OAAQA,EAAGv0L,OACP,KAAK,EAQD,OAPAw8uB,EAAe,CACX12sB,OAAQA,EACRvL,QAjcd,YAmcUu4sB,EAA+B,oBAAhBtrsB,EACTA,EAAYxrB,OACZwrB,GAAe,CAAC,IACqB,oBAArBsrsB,EAAME,WACrB,CAAC,EAAaF,EAAME,cADoC,CAAC,EAAa,GAEjF,KAAK,EACDz+iB,EAAGtlL,OACHslL,EAAGv0L,MAAQ,EACf,KAAK,EACD,IAAK8yuB,EACD,MAAM,IAAIz8uB,MAAM,kBAEpB,MAAO,CAAC,EAAay8uB,GACzB,KAAK,EAcD,OAbAv7sB,EAAKg9J,EAAGtlL,OAAQ05B,EAAcpR,EAAGoR,YAAauC,EAAkB3T,EAAG2T,gBAAiBxC,EAAenR,EAAGmR,aACtG+zsB,EAAuB,CACnBtJ,WAAYxqsB,EACZyqsB,WAAYlosB,EACZmosB,cAAe3qsB,GAEnBjO,EAAU,CACN2V,IAAK,GAAKkpsB,EAAyBiC,EACnC7qtB,KAAMt2B,EACN+C,OAAQ,OACR5E,QAAS22B,EAAS,CAAC,EAAGoptB,IAGnB,CAAC,EADQN,EAAwB9E,OAAOz9sB,KAAKgF,EAASgitB,EAAsBD,GAC/CjkvB,SAEhD,GACJ,GACJ,EACAm/uB,EAAyCthvB,UAAU8lvB,8BAAgC,SAAU5kuB,GACzF,IAAIykuB,EAAiBzkuB,EAAGykuB,eACxB,OAAOxiuB,EAAUrjB,UAAM,OAAQ,GAAQ,WACnC,OAAOu6B,EAAYv6B,MAAM,SAAUqhC,GAC/B,OAAQA,EAAGv3B,OACP,KAAK,EAED,OADA85B,EAAO,sCACA,CAAC,EAAaq+sB,EAAQuE,yBAAyBxmvB,KAAKymvB,qBAAqBjmvB,KAAKR,MAAO,CACpF,CAAE6lvB,eAAgBA,MAE9B,KAAK,EAED,OADAxktB,EAAGtoB,OACI,CAAC,GAEpB,GACJ,GACJ,EACAyouB,EAAyCthvB,UAAUumvB,qBAAuB,SAAUrluB,GAChF,IAAIykuB,EAAiBzkuB,EAAGykuB,eACxB,OAAOxiuB,EAAUrjB,UAAM,OAAQ,GAAQ,WACnC,IAAI0mvB,EAAO9suB,EAAW8zE,EAClBvqE,EAAQnjB,KACZ,OAAOu6B,EAAYv6B,MAAM,SAAUqhC,GAC/B,OAAQA,EAAGv3B,OACP,KAAK,EACD85B,EAAO,0BAA4BiitB,GACnCxktB,EAAGv3B,MAAQ,EACf,KAAK,EAED,OADAu3B,EAAG1G,KAAK/Y,KAAK,CAAC,EAAG,EAAE,CAAG,IACf,CAAC,EACO,IAAIZ,SAAQ,SAAUo5F,EAAK6poB,GAC9B,IAAI0C,EAAYnF,EAAyCoF,gBAAgBf,EAAgB,cACzFc,EAAU7ntB,QAAU,WAChB8E,EAAO,6BACX,EACA+itB,EAAUE,QAAU,WAChB5C,EAAI,IAAI9jvB,MAAM,8BAClB,EACAwmvB,EAAUG,OAAS,WAEf,OADA3juB,EAAMihuB,kBAAoBuC,EACnBvsoB,GACX,CACJ,KAEZ,KAAK,EAGD,OAFA/4E,EAAGtoB,OAEI,CAAC,EACO,IAAIiI,SAAQ,SAAUo5F,EAAK6poB,GAC9B,IAAI8C,GAAQ,EACZ5juB,EAAMihuB,kBAAkBtltB,QAAU,SAAUv6B,GACxCq/B,EAAO,oBAAsBliC,KAAKQ,UAAUqC,GAChD,EACA4e,EAAMihuB,kBAAkByC,QAAU,SAAUt+uB,GACxCq7B,EAAO,oBAAsBr7B,EAAM+R,QACnC2puB,EAAI,IAAI9jvB,MAAMuB,KAAKQ,UAAUqG,IACjC,EACA4a,EAAMihuB,kBAAkB4C,UAAY,SAAU/mvB,GAC1C,IAAImhB,EACJwiB,EAAO,kDAAoD3jC,EAAQ0J,KAAO,KAC1E,IAAIA,EAAOjI,KAAKC,MAAM1B,EAAQ0J,MAC1B1F,EAAO0F,EAAK1F,KAAMo9B,EAAK13B,EAAKzF,QAASm6L,QAAa,IAAPh9J,EAAgB,CAAC,EAAIA,GAAI4ltB,oBAAqBA,OAA6B,IAAP5ojB,EA3gB1H,IA2gBuKA,EAChK,GAAIp6L,IAASu4jB,EAAQioL,cAAcyC,mBAa/B,OAZAH,GAAQ,EACR5juB,EAAM0/tB,iBAAqD,QAAjCzhuB,EAAK+B,EAAM0/tB,wBAAqC,IAAPzhuB,EAAgBA,EAAK6luB,EACxF9juB,EAAMihuB,kBAAkB4C,UAAY7juB,EAAMgkuB,mCAAmC3mvB,KAAK2iB,GAClFA,EAAMihuB,kBAAkBtltB,QAAU,SAAUz6B,GACxCu/B,EAAOv/B,GACP8e,EAAMikuB,iBAAiB5qL,EAAQ6qL,YAAYC,kBAC/C,EACAnkuB,EAAMihuB,kBAAkByC,QAAU,SAAUt+uB,GACxCq7B,EAAO,oBAAsBr7B,EAAM+R,QACnC6I,EAAMikuB,iBAAiB5qL,EAAQ6qL,YAAYC,kBAC/C,OACAltoB,EAAI,0CAGR,GAAIn2G,IAASu4jB,EAAQioL,cAAc8C,qBAAsB,CACrD,IAAI1huB,EAAKlc,EAAKzF,QAASwhB,QAAa,IAAPG,EAAgB,CAAC,EAAIA,GAAI7L,OAAQglL,QAAa,IAAPt5K,EAAgB,GAAKA,GAAI,GAAIw5K,OAAY,IAAPF,EAAgB,CAAC,EAAIA,EAAII,EAAKF,EAAGtlL,UAAWA,OAAmB,IAAPwlL,EAAgB,GAAKA,EAAIotU,EAAKttU,EAAGxxG,UAC/Lu2pB,EAAI,CAAErquB,UAAWA,EAAW8zE,eADiM,IAAP8+a,EAAgB,EAAIA,GAE9O,CACJ,EACA,IAAIg7O,EAAU,CACVvjvB,KAAMu4jB,EAAQioL,cAAcgD,qBAEhCtkuB,EAAMihuB,kBAAkBz3qB,KAAKjrE,KAAKQ,UAAUslvB,IAM5Cn6tB,WALA,WACS05tB,GACD9C,EAAI,IAAI9jvB,MAAM,yEAEtB,EACsBK,KAAK2iB,GArjBjC,KAsjBE,KAEZ,KAAK,EAGD,OADAke,EAAGtoB,OACI,CAAC,EAAa,GACzB,KAAK,EAGD,MAFA2tuB,EAAQrltB,EAAGtoB,OACXa,EAAY8suB,EAAM9suB,UAAW8zE,EAAYg5pB,EAAMh5pB,UAC3Cy0pB,EAAoB/gvB,QAAQssF,IAAc,EACpC,IAAIu0pB,EAAQyF,kBAAkB9tuB,GAE/BA,EACC,IAAIzZ,MAAMyZ,GAGV8suB,EAGd,KAAK,EAAG,MAAO,CAAC,GAExB,GACJ,GACJ,EACAlF,EAAyCthvB,UAAUinvB,mCAAqC,SAAUlnvB,GAC9F2jC,EAAO,mDAAqD3jC,EAAQ0J,MACpE,IAAIyX,EAAK1f,KAAKC,MAAM1B,EAAQ0J,MAAO03B,EAAKjgB,EAAG1Y,GAAIA,OAAY,IAAP24B,EAAgB,GAAKA,EAAIn9B,EAAUkd,EAAGld,QAASD,EAAOmd,EAAGnd,KACzGo6L,EAAKr+L,KAAK8ivB,wBAAwBhjuB,IAAIpX,IAAO,CAAC,EAAGmd,EAAKw4K,EAAGslX,SAAUA,OAAkB,IAAP99hB,EAAgB,KAAOA,EAAIH,EAAK24K,EAAGztJ,MAAOA,OAAe,IAAPlrB,EAAgB,GAAKA,EAAIs5K,EAAKX,EAAG86hB,UAAWA,OAAmB,IAAPn6hB,EAAgB,CAAC,EAAIA,EAAIE,EAAKb,EAAG8mjB,kBAAmBA,OAA2B,IAAPjmjB,EAAgB,EAAIA,EAAIE,EAAKf,EAAG6ljB,0BAA2BA,OAAmC,IAAP9kjB,EAAgB,KAAOA,EAAIotU,EAAKnuU,EAAG8ljB,2BAA4BA,OAAoC,IAAP33O,EAAgB,KAAOA,EAE9c,GADA5oe,EAAO,CAAEl7B,GAAIA,EAAIi7iB,SAAUA,EAAU/ygB,MAAOA,EAAOuorB,UAAWA,IAC1Dl1tB,IAASu4jB,EAAQioL,cAAckD,UAAYzjvB,GAAWA,EAAQyF,KAC1Dg6iB,EACAA,EAAS59hB,KAAK7hB,GAGd0/B,EAAO,8BAAgCl7B,QAI/C,GAAIzE,IAASu4jB,EAAQioL,cAAcmD,cAAnC,CA6BA,GAAI3jvB,IAASu4jB,EAAQioL,cAAcoD,0BAG/B,OAFA//mB,aAAa9nI,KAAK8kvB,yBAClB9kvB,KAAK8kvB,mBAAqBz3tB,WAAWrtB,KAAKonvB,iBAAiB5mvB,KAAKR,KAAMw8jB,EAAQ6qL,YAAYS,oBAAqB9nvB,KAAK6ivB,mBAGxH,GAAI5+uB,IAASu4jB,EAAQioL,cAAcsD,UAAW,CACtCrE,EAAoBlnL,EAAQmnL,oBAAoB/nqB,OACpD57E,KAAK8ivB,wBAAwB9ltB,IAAIt0B,EAAI,CACjCi7iB,SAAUA,EACV/ygB,MAAOA,EACPuorB,UAAWA,EACXgsB,kBAAmBA,EACnBjB,0BAA2BA,EAC3BC,2BAA4BA,EAC5BT,kBAAmBA,IAEvB//L,EAASp/iB,MAAM,CACXyV,OAAQ,CACJgf,EAAS,CAAC,EAAG,IAAI+otB,EAAUgC,aAAa,sBAAwBrivB,KAAKQ,UAAUgC,QAGvF4jI,aAAaq9mB,GACTxhM,GACAA,EAASp/iB,MAAM,CACXyV,OAAQ,CACJgf,EAAS,CAAC,EAAG,IAAI+otB,EAAUgC,aAAa,sBAAwBrivB,KAAKQ,UAAUgC,QAGvFy/iB,EAASxiF,YAGTv9b,EAAO,8BAAgCl7B,GAED,oBAA/By7uB,GACPA,GAER,CArCA,KA5BA,CACIvgtB,EAAO,0BAA4BliC,KAAKQ,UAAU,CAAE0uC,MAAOA,EAAOuorB,UAAWA,KACpC,oBAA9B+qB,GACPA,IAEJp8mB,aAAaq9mB,GACTxhM,EACAA,EAAS59hB,KAAK,CACVpc,KAAMzF,EACN8xD,WAAY,CACRgurB,eAAgB,eAKxBpgtB,EAAO,8BAAgCl7B,GAE3C,IAAIg7uB,EAAoBlnL,EAAQmnL,oBAAoBC,UACpD5jvB,KAAK8ivB,wBAAwB9ltB,IAAIt0B,EAAI,CACjCi7iB,SAAUA,EACV/ygB,MAAOA,EACPuorB,UAAWA,EACXgsB,kBAAmB,KACnBzB,kBAAmBA,EACnBQ,0BAA2BA,EAC3BC,2BAA4BA,GAGpC,CAsCJ,EACA3C,EAAyCthvB,UAAUknvB,iBAAmB,SAAU75sB,GAC5E3J,EAAO,qBAAuB2J,GAC9BvtC,KAAK8ivB,wBAAwB99tB,SAAQ,SAAU5D,GAC3C,IAAIuiiB,EAAWviiB,EAAGuiiB,SACdA,IAAaA,EAASqkM,QACtBrkM,EAASp/iB,MAAM,CACXyV,OAAQ,CAACgf,EAAS,CAAC,EAAG,IAAI+otB,EAAUgC,aAAax2sB,MAG7D,IACAvtC,KAAK8ivB,wBAAwB57lB,QACzBlnJ,KAAKokvB,mBACLpkvB,KAAKokvB,kBAAkBl6rB,QAE3BlqD,KAAK0ivB,aAAelmL,EAAQmmL,cAAcC,MAC9C,EACApB,EAAyCthvB,UAAUslvB,6BAA+B,SAAUhC,GACxF,IAAIpiuB,EAAKphB,KAAK8ivB,wBAAwBhjuB,IAAI0juB,IAAmB,CAAC,EAAG7/L,EAAWviiB,EAAGuiiB,SAAU/ygB,EAAQxvB,EAAGwvB,MAAOuorB,EAAY/3sB,EAAG+3sB,UACrHx1K,IAGL3jjB,KAAK8ivB,wBAAwB9ltB,IAAIwmtB,EAAgB,CAC7C7/L,SAAUA,EACV/ygB,MAAOA,EACPuorB,UAAWA,EACXuqB,kBAAmBlnL,EAAQmnL,oBAAoB/nqB,SAE/C+ne,IAAaA,EAASqkM,SACtBrkM,EAASp/iB,MAAM,CACXyV,OAAQ,CACJgf,EAAS,CAAC,EAAG,IAAI+otB,EAAUgC,aAAa,wBAA0BrivB,KAAKQ,UAAU,CAAE0uC,MAAOA,EAAOuorB,UAAWA,SAIpHx1K,EAASxiF,YAEbv9b,EAAO,2BAA4BliC,KAAKQ,UAAU,CAAE0uC,MAAOA,EAAOuorB,UAAWA,KACjF,EACAqoB,EAAyCoF,gBAAkB,SAAUf,EAAgB5rsB,GACjF,OAAO,IAAIoqsB,UAAUwB,EAAgB5rsB,EACzC,EACOunsB,CACX,CA1rB8D,CA0rB5D2X,EAAcvwB,YAChBhxsB,EAAQ4ptB,yCAA2CA,sCC/xBnD,IAAI3otB,EAAa74B,MAAQA,KAAK64B,WAAe,WACzC,IAAIP,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBvY,OAAO0Y,gBAClB,CAAEC,UAAW,cAAgBpW,OAAS,SAAUiW,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EACtEL,EAAcC,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAEhB,SAASM,IAAO94B,KAAKqmB,YAAckS,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAEr4B,UAAkB,OAANs4B,EAAazY,OAAOgZ,OAAOP,IAAMM,EAAG54B,UAAYs4B,EAAEt4B,UAAW,IAAI44B,EACnF,CACJ,CAZ6C,GAazCE,EAAYh5B,MAAQA,KAAKg5B,UAAa,WAStC,OARAA,EAAWjZ,OAAOkZ,QAAU,SAASx4B,GACjC,IAAK,IAAIy4B,EAAGl4B,EAAI,EAAGH,EAAIikB,UAAUlkB,OAAQI,EAAIH,EAAGG,IAE5C,IAAK,IAAI23B,KADTO,EAAIpU,UAAU9jB,GACO+e,OAAO7f,UAAU04B,eAAe9S,KAAKoT,EAAGP,KACzDl4B,EAAEk4B,GAAKO,EAAEP,IAEjB,OAAOl4B,CACX,EACOu4B,EAASpU,MAAM5kB,KAAM8kB,UAChC,EACIzB,EAAarjB,MAAQA,KAAKqjB,WAAc,SAAU2W,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIlZ,WAAU,SAAU4B,EAASH,GAC/C,SAAS2X,EAAUpzB,GAAS,IAAMqzB,EAAKF,EAAUpU,KAAK/e,GAAS,CAAE,MAAOjH,GAAK0iB,EAAO1iB,EAAI,CAAE,CAC1F,SAASu6B,EAAStzB,GAAS,IAAMqzB,EAAKF,EAAiB,MAAEnzB,GAAS,CAAE,MAAOjH,GAAK0iB,EAAO1iB,EAAI,CAAE,CAC7F,SAASs6B,EAAKn1B,GAJlB,IAAe8B,EAIa9B,EAAO8gB,KAAOpD,EAAQ1d,EAAO8B,QAJ1CA,EAIyD9B,EAAO8B,MAJhDA,aAAiBkzB,EAAIlzB,EAAQ,IAAIkzB,GAAE,SAAUtX,GAAWA,EAAQ5b,EAAQ,KAIjBgnB,KAAKoM,EAAWE,EAAW,CAC7GD,GAAMF,EAAYA,EAAUvV,MAAMoV,EAASC,GAAc,KAAKlU,OAClE,GACJ,EACIwU,EAAev6B,MAAQA,KAAKu6B,aAAgB,SAAUP,EAASQ,GAC/D,IAAsG/a,EAAG7U,EAAGnK,EAAGg6B,EAA3GC,EAAI,CAAE5wB,MAAO,EAAGiP,KAAM,WAAa,GAAW,EAAPtY,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGk6B,KAAM,GAAIC,IAAK,IAChG,OAAOH,EAAI,CAAE1U,KAAM8U,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAXhX,SAA0B4W,EAAE5W,OAAOC,UAAY,WAAa,OAAO9jB,IAAM,GAAIy6B,EACvJ,SAASI,EAAKh6B,GAAK,OAAO,SAAU2f,GAAK,OACzC,SAAcsa,GACV,GAAIrb,EAAG,MAAM,IAAIyE,UAAU,mCAC3B,KAAOwW,OACH,GAAIjb,EAAI,EAAG7U,IAAMnK,EAAY,EAARq6B,EAAG,GAASlwB,EAAU,OAAIkwB,EAAG,GAAKlwB,EAAS,SAAOnK,EAAImK,EAAU,SAAMnK,EAAEqlB,KAAKlb,GAAI,GAAKA,EAAEmb,SAAWtlB,EAAIA,EAAEqlB,KAAKlb,EAAGkwB,EAAG,KAAK9U,KAAM,OAAOvlB,EAE3J,OADImK,EAAI,EAAGnK,IAAGq6B,EAAK,CAAS,EAARA,EAAG,GAAQr6B,EAAEuG,QACzB8zB,EAAG,IACP,KAAK,EAAG,KAAK,EAAGr6B,EAAIq6B,EAAI,MACxB,KAAK,EAAc,OAAXJ,EAAE5wB,QAAgB,CAAE9C,MAAO8zB,EAAG,GAAI9U,MAAM,GAChD,KAAK,EAAG0U,EAAE5wB,QAASc,EAAIkwB,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKJ,EAAEE,IAAIhb,MAAO8a,EAAEC,KAAK/a,MAAO,SACxC,QACI,KAAkBnf,GAAZA,EAAIi6B,EAAEC,MAAY/5B,OAAS,GAAKH,EAAEA,EAAEG,OAAS,MAAkB,IAAVk6B,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEJ,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVI,EAAG,MAAcr6B,GAAMq6B,EAAG,GAAKr6B,EAAE,IAAMq6B,EAAG,GAAKr6B,EAAE,IAAM,CAAEi6B,EAAE5wB,MAAQgxB,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYJ,EAAE5wB,MAAQrJ,EAAE,GAAI,CAAEi6B,EAAE5wB,MAAQrJ,EAAE,GAAIA,EAAIq6B,EAAI,KAAO,CACpE,GAAIr6B,GAAKi6B,EAAE5wB,MAAQrJ,EAAE,GAAI,CAAEi6B,EAAE5wB,MAAQrJ,EAAE,GAAIi6B,EAAEE,IAAIhZ,KAAKkZ,GAAK,KAAO,CAC9Dr6B,EAAE,IAAIi6B,EAAEE,IAAIhb,MAChB8a,EAAEC,KAAK/a,MAAO,SAEtBkb,EAAKN,EAAK1U,KAAKkU,EAASU,EAC5B,CAAE,MAAO36B,GAAK+6B,EAAK,CAAC,EAAG/6B,GAAI6K,EAAI,CAAG,CAAE,QAAU6U,EAAIhf,EAAI,CAAG,CACzD,GAAY,EAARq6B,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE9zB,MAAO8zB,EAAG,GAAKA,EAAG,QAAK,EAAQ9U,MAAM,EAC9E,CAtBgDqU,CAAK,CAACx5B,EAAG2f,GAAK,CAAG,CAuBrE,EACI2Y,EAAUn5B,MAAQA,KAAKm5B,QAAW,SAAUD,EAAGn5B,GAC/C,IAAIU,EAAI,CAAC,EACT,IAAK,IAAIk4B,KAAKO,EAAOnZ,OAAO7f,UAAU04B,eAAe9S,KAAKoT,EAAGP,IAAM54B,EAAEqB,QAAQu3B,GAAK,IAC9El4B,EAAEk4B,GAAKO,EAAEP,IACb,GAAS,MAALO,GAAqD,oBAAjCnZ,OAAOyE,sBACtB,KAAIxjB,EAAI,EAAb,IAAgB23B,EAAI5Y,OAAOyE,sBAAsB0U,GAAIl4B,EAAI23B,EAAE/3B,OAAQI,IAC3DjB,EAAEqB,QAAQu3B,EAAE33B,IAAM,GAAK+e,OAAO7f,UAAUqpB,qBAAqBzD,KAAKoT,EAAGP,EAAE33B,MACvEP,EAAEk4B,EAAE33B,IAAMk4B,EAAEP,EAAE33B,IAF4B,CAItD,OAAOP,CACX,EACAsf,OAAOC,eAAe4X,EAAS,aAAc,CAAE5wB,OAAO,IAKtD,IAAImyvB,EAAgBniuB,EAAQ,OACxBuvrB,EAAUvvrB,EAAQ,OAClBixtB,EAAOjxtB,EAAQ,OACfkiuB,EAAkBliuB,EAAQ,OAC1BsotB,EAAqBtotB,EAAQ,OAC7B4M,EAAS2irB,EAAQ27B,WAAW76N,OAAO,iBACnC6gO,EAAatktB,EAAOyjf,OAAO,QAC/Bzvf,EAAQ8otB,mBAAqB,kBAC7B,IAAIa,EAA2C,SAAUxjjB,GAErD,SAASwjjB,EAA0B4G,GAC/B,IAAIhluB,EAAQ46K,EAAOj4K,KAAK9lB,OAASA,KAkBjC,OAjBAmjB,EAAMiluB,eAAiB,IAAI/ouB,IAC3B8D,EAAMkluB,gBAAkB,IAAIhpuB,IAC5B8D,EAAMmluB,UAAY,SAAUC,EAAOtovB,EAASuovB,GACxC,IAAIC,EAAgB/mvB,KAAKC,MAAM1B,GAC3B2ruB,EAAYzotB,EAAMiluB,eAAetouB,IAAIyouB,GACrC5+uB,EAAO6+uB,EAAetmuB,QAAO,SAAUC,EAAK/hB,GAAQ,OAAQ+hB,EAAI/hB,GAAQ+hB,EAAI/hB,IAAS,KAAM+hB,CAAM,GAAGsmuB,EAAc9+uB,MAAQ,CAAC,GAC/Hi6B,EAAO,mBAAoB,CAAEj6B,KAAMA,EAAM4+uB,MAAOA,EAAO3c,UAAWA,IAClEA,EAAU5mtB,SAAQ,SAAU2+hB,GACxB,IACIA,EAAS59hB,KAAKiT,EAASA,EAAS,CAAC,EAAGyvtB,GAAgB,CAAE9+uB,KAAMA,IAChE,CACA,MAAOtF,GACHu/B,EAAOv/B,EACX,CACJ,GACJ,EACA8e,EAAMgluB,mBAAqBA,EACpBhluB,CACX,CAmKA,OAxLA0V,EAAU0otB,EAA2BxjjB,GAsBrCwjjB,EAA0BrhvB,UAAUqkC,QAAU,SAAU1F,GACpD,IAAIzd,EACA+B,EAAQnjB,KACRqhC,EAAKxC,EAAU+gM,aAA4C8ohB,EAAWrntB,EAApCrhC,KAAKmovB,oBAAuCtiuB,EAAKwb,EAAG6htB,gBAAiBx9tB,EAAKkS,EAAQ8otB,mBAAoBY,QAAwB,IAAPz7tB,GAAiBzE,EAAK,CAAC,EAAGA,EAAGwW,EAAQ8otB,yBAAsBr4uB,EAAW+Y,GAAMyE,GAAIH,GACzOs5K,EAAK0pjB,EAAS1yrB,WAAYkpI,QAAa,IAAPF,EAAgB,CAAE2pjB,aAAc,CAAEC,iBAAkB,CAAC,EAAGC,gBAAiB,KAAS7pjB,GAAI2pjB,aAAcC,EAAmB1pjB,EAAG0pjB,iBAAkBC,EAAkB3pjB,EAAG2pjB,gBAAiBzpjB,EAAKspjB,EAAS1uuB,OAAQA,OAAgB,IAAPolL,EAAgB,GAAKA,EAC1Q,GAAIplL,GAAUA,EAAOpZ,OACjB,OAAO,IAAIu4vB,EAAcn0N,YAAW,SAAU2e,GAM1C,OALAA,EAASp/iB,MAAM,IAAI20vB,EAAgBpQ,YAAY,CAC3CC,aAAc,sCACdC,UAAW,CAAEhvuB,OAAQA,GACrBL,cAAeK,KAEZ,WAAc,CACzB,IAEJ,IAAIivuB,EAAwBlpuB,OAAOwE,KAAKqkuB,GAAkB14uB,KAAI,SAAUg5uB,GAAU,OAAON,EAAiBM,GAAQX,KAAO,IACrHY,EAA6B,IAAIhqlB,IAAI8plB,EAAsBx0uB,QAAO,SAAUhU,GAAK,OAAO0iB,EAAMiluB,eAAetrtB,IAAIr8B,EAAI,KACrH2ovB,EAAY,IAAIjqlB,IAAI8plB,EAAsBx0uB,QAAO,SAAUhU,GAAK,OAAQ0ovB,EAA2BrstB,IAAIr8B,EAAI,KAC/G,OAAO,IAAI04vB,EAAcn0N,YAAW,SAAU2e,GAC1CwlM,EAA2BnkuB,SAAQ,SAAUvkB,GACzC0iB,EAAMiluB,eAAetouB,IAAIrf,GAAG8lC,IAAIo9gB,GAChC,IAAI0lM,EAAa/muB,MAAMyB,KAAKZ,EAAMiluB,eAAetouB,IAAIrf,IAAIm3C,MAAK,WAAc,OAAO,CAAM,IACrF0xsB,EAAWhnuB,MAAMyB,KAAKZ,EAAMkluB,iBAAiBzwsB,MAAK,SAAUx2B,GAE5D,OADgBA,EAAG,GAAGwqtB,UACL9usB,IAAIustB,EACzB,IAAG,GACHlmuB,EAAMkluB,gBAAgBvouB,IAAIwpuB,GAAU1d,UAAUrlsB,IAAIo9gB,EACtD,IACA,IAAI4lM,EAA0BV,EACzBp0uB,QAAO,SAAUxT,GAAK,OAAOA,EAAEuovB,OAAOxhuB,MAAK,SAAUvnB,GAAK,OAAO2ovB,EAAUtstB,IAAIr8B,EAAI,GAAI,IACvFyP,KAAI,SAAUkR,GACf,IAAIoouB,EAASpouB,EAAGoouB,OAAQv4tB,EAAOkI,EAAO/X,EAAI,CAAC,WAC3C,OAAQ4X,EAASA,EAAS,CAAC,EAAG/H,GAAO,CAAEu4tB,OAAQA,EAAO/0uB,QAAO,SAAUhU,GAAK,OAAO2ovB,EAAUtstB,IAAIr8B,EAAI,KACzG,IAEA,OADA0iB,EAAMsmuB,kBAAkBF,EAAyB5lM,EAAU9khB,GACpD,WACH,IAAI6qtB,EAA4BpnuB,MAAMyB,KAAKZ,EAAMkluB,iBAAiB5zuB,QAAO,SAAU2M,GAE/E,OADgBA,EAAG,GAAGwqtB,UACL9usB,IAAI6mhB,EACzB,IACA+lM,EAA0B1kuB,SAAQ,SAAU5D,GACxC,IAAIkouB,EAAWlouB,EAAG,GAClB,OAAO+B,EAAMkluB,gBAAgBvouB,IAAIwpuB,GAAU1d,UAAU7lpB,OAAO49d,EAChE,IACAxgiB,EAAMkluB,gBAAgBrjuB,SAAQ,SAAU5D,GACpC,IAAIwqtB,EAAYxqtB,EAAGwqtB,UAAWl/pB,EAAStrD,EAAGsrD,OACnB,IAAnBk/pB,EAAU7juB,OACN2kE,EAAOi9qB,eACPj9qB,EAAOy6E,aAEXhkI,EAAMkluB,gBAAgBtiqB,OAAOrZ,EAAO48qB,UAE5C,IACAnmuB,EAAMkluB,gBAAkB,IAAIhpuB,IAAIiD,MAAMyB,KAAKZ,EAAMkluB,iBAAiB5zuB,QAAO,SAAU2M,GAE/E,OADgBA,EAAG,GAAGwqtB,UACL7juB,KAAO,CAC5B,KACAob,EAAMiluB,eAAepjuB,SAAQ,SAAU4mtB,GAAa,OAAOA,EAAU7lpB,OAAO49d,EAAW,IACvFxgiB,EAAMiluB,eAAiB,IAAI/ouB,IAAIiD,MAAMyB,KAAKZ,EAAMiluB,gBAC3C3zuB,QAAO,SAAU2M,GAElB,OADgBA,EAAG,GACFrZ,KAAO,CAC5B,IACJ,CACJ,IAAG0M,QAAO,SAAU9K,GAChB,IAAIyX,EAAKzX,EAAKqsD,WAAY30B,QAAa,IAAPjgB,EAAgB,CAAC,EAAIA,GAAI4iuB,eAEzD,OAAyB,IAAlB1C,KADsC,0BADoD,IAAPjgtB,OAAgBh5B,EAAYg5B,GAG1H,GACJ,EACAkgtB,EAA0BrhvB,UAAUupvB,kBAAoB,SAAUG,EAAgBjmM,EAAU9khB,GACxF,OAAOxb,EAAUrjB,UAAM,OAAQ,GAAQ,WACnC,IAAI4wC,EAAO43sB,EAAgBtjvB,EAAQyE,EAC/BwZ,EAAQnjB,KACZ,OAAOu6B,EAAYv6B,MAAM,SAAUohB,GAiB/B,OAhBAwvB,EAAQ/R,EAAU+R,MAClB43sB,EAAiBlJ,EAAmB7gB,kBAAkB7trB,GAAO2nrB,aAAaE,WAAWvotB,KAAI,SAAUkR,GAE/F,OADYA,EAAGhhB,KAAK4G,KAExB,IACA9B,EAAS8b,QAAQC,IAAI2ouB,EAAe15uB,KAAI,SAAUjP,GAAK,OAAOkiB,EAAM0muB,iBAAiB5ovB,EAAG0ijB,EAAU6kM,EAAiB,KACnH7+uB,EAAO6+uB,EAAetmuB,QAAO,SAAUC,EAAK/hB,GAAQ,OAAQ+hB,EAAI/hB,GAAQ+hB,EAAI/hB,IAAS,KAAM+hB,CAAM,GAAG,CAAC,GACrGwhiB,EAAS59hB,KAAK,CACVpc,KAAMA,EACNqsD,WAAY,CACRgurB,eAAgB,YAChB8F,eAAgB,CACZF,eAAgBA,MAIrB,CAAC,EAAc1kvB,EAC1B,GACJ,GACJ,EAEAq8uB,EAA0BrhvB,UAAU2pvB,iBAAmB,SAAUD,EAAgBjmM,EAAU6kM,GACvF,OAAOnluB,EAAUrjB,UAAM,OAAQ,GAAQ,WACnC,IAAIspvB,EAAUpvsB,EAAKsvsB,EAAQ98qB,EACvBvpD,EAAQnjB,KACZ,OAAOu6B,EAAYv6B,MAAM,SAAUohB,GAC/B,OAAQA,EAAGtX,OACP,KAAK,EAmBD,OAlBAw/uB,EAAWM,EAAel9qB,OAAQxyB,EAAM0vsB,EAAe1vsB,IAAKsvsB,EAASI,EAAeJ,QACpF98qB,EAAS,IAAIu7qB,EAAK5ziB,OAAOn6J,EAAKovsB,IACvBzpjB,MAAQqojB,EAAW1nvB,KAAK,KAAM8ovB,GACrC58qB,EAAOq9qB,iBAAmB,SAAU3ouB,GAChC,IAAIssE,EAAYtsE,EAAGssE,UAAWjlE,EAAO0Q,EAAO/X,EAAI,CAAC,cAC/B,IAAdssE,GACA87pB,EAAOxkuB,SAAQ,SAAUvkB,GACjB0iB,EAAMiluB,eAAetrtB,IAAIr8B,IACzB0iB,EAAMiluB,eAAetouB,IAAIrf,GAAGukB,SAAQ,SAAU2+hB,GAAY,OAAOA,EAASp/iB,MAAMy0B,EAASA,EAAS,CAAC,EAAGvQ,GAAO,CAAEuhuB,WAAW,IAAU,GAE5I,IAEJR,EAAOxkuB,SAAQ,SAAUvkB,GAAK,OAAO0iB,EAAMiluB,eAAeriqB,OAAOtlF,EAAI,GACzE,EACAisE,EAAOu9qB,iBAAmB,SAAU7ouB,GAChC,IAAI8ouB,EAAkB9ouB,EAAG8ouB,gBAAiBzE,EAAgBrkuB,EAAGqkuB,cAC7D,OAAOtiuB,EAAMmluB,UAAU4B,EAAiBzE,EAAe+C,EAC3D,EACO,CAAC,EAAa,IAAIxnuB,SAAQ,SAAU4B,EAASH,GAC5CiqD,EAAOy9qB,QAAQ,CACXC,OAAkC,IAA1BlwsB,EAAI94C,QAAQ,UACpBipvB,YAAa,EACbC,UAAW,WAAc,OAAO1nuB,EAAQ8pD,EAAS,EACjD69qB,UAAW9nuB,GAEnB,KACR,KAAK,EAED,OADArB,EAAGrI,OACI,CAAC,EAAa/Y,KAAKwqvB,kBAAkB99qB,EAAQ88qB,EAAQ7lM,IAChE,KAAK,EAED,OADAviiB,EAAGrI,OACI,CAAC,EAAc2zD,GAElC,GACJ,GACJ,EACA60qB,EAA0BrhvB,UAAUsqvB,kBAAoB,SAAU99qB,EAAQ88qB,EAAQ7lM,GAC9E,IAAIxgiB,EAAQnjB,KACZ,OAAOghB,QAAQC,IAAIuouB,EAAOt5uB,KAAI,SAAUq4uB,GAAS,OAAOpluB,EAAMsnuB,iBAAiB/9qB,EAAQ67qB,EAAO5kM,EAAW,IAC7G,EACA49L,EAA0BrhvB,UAAUuqvB,iBAAmB,SAAU/9qB,EAAQ67qB,EAAO5kM,GAC5E,IAAIxgiB,EAAQnjB,KACZ,OAAO,IAAIghB,SAAQ,SAAU4B,EAASH,GAClCiqD,EAAOwoH,UAAUqzjB,EAAO,CACpB+B,UAAW,WACFnnuB,EAAMiluB,eAAetrtB,IAAIyrtB,IAC1BpluB,EAAMiluB,eAAeprtB,IAAIurtB,EAAO,IAAIpplB,KAEnCh8I,EAAMkluB,gBAAgBvrtB,IAAI4vC,EAAO48qB,WAClCnmuB,EAAMkluB,gBAAgBrrtB,IAAI0vC,EAAO48qB,SAAU,CAAE58qB,OAAQA,EAAQk/pB,UAAW,IAAIzskB,MAEhFh8I,EAAMiluB,eAAetouB,IAAIyouB,GAAOhitB,IAAIo9gB,GACpCxgiB,EAAMkluB,gBAAgBvouB,IAAI4sD,EAAO48qB,UAAU1d,UAAUrlsB,IAAIo9gB,GACzD/giB,EAAQ2luB,EACZ,EACAgC,UAAW9nuB,GAEnB,GACJ,EACO8+tB,CACX,CA1L+C,CA0L7C4X,EAAcvwB,YAChBhxsB,EAAQ2ptB,0BAA4BA,mCC/QpCxhuB,OAAOC,eAAe4X,EAAS,aAAc,CAAE5wB,OAAO,IAGtD,SAAW28uB,GACPA,EAAoBA,EAA6B,QAAI,GAAK,UAC1DA,EAAoBA,EAA+B,UAAI,GAAK,YAC5DA,EAAoBA,EAA4B,OAAI,GAAK,QAC5D,CAJD,CAIyB/rtB,EAAQ+rtB,sBAAwB/rtB,EAAQ+rtB,oBAAsB,CAAC,IAExF,SAAWhB,GACPA,EAAcA,EAAsB,OAAI,GAAK,SAC7CA,EAAcA,EAAqB,MAAI,GAAK,QAC5CA,EAAcA,EAA0B,WAAI,GAAK,YACpD,CAJD,CAImB/qtB,EAAQ+qtB,gBAAkB/qtB,EAAQ+qtB,cAAgB,CAAC,IAEtE,SAAW8B,GAKPA,EAAmC,oBAAI,kBAKvCA,EAAoC,qBAAI,mBAKxCA,EAAkC,mBAAI,iBAKtCA,EAAyB,UAAI,QAK7BA,EAA6B,cAAI,YAKjCA,EAAwB,SAAI,OAK5BA,EAAyC,0BAAI,KAK7CA,EAAwB,SAAI,OAK5BA,EAA4B,aAAI,WAKhCA,EAAyB,UAAI,OAChC,CAnDD,CAmDmB7stB,EAAQ6stB,gBAAkB7stB,EAAQ6stB,cAAgB,CAAC,IAEtE,SAAW4C,GACPA,EAA+B,kBAAI,oBACnCA,EAAgC,mBAAI,qBACpCA,EAA8B,iBAAI,kBACrC,CAJD,CAIiBzvtB,EAAQyvtB,cAAgBzvtB,EAAQyvtB,YAAc,CAAC,wCCxEhEtnuB,OAAOC,eAAe4X,EAAS,aAAc,CAAE5wB,OAAO,IAKtD,IAAI0jvB,EAAW1ztB,EAAQ,OACvBY,EAAQsqtB,WAAawI,EAASh1uB,4CCN9B,IAAI4lB,EAAkBt7B,MAAQA,KAAKs7B,gBAAmB,WAClD,IAAK,IAAIpC,EAAI,EAAGl4B,EAAI,EAAGu6B,EAAKzW,UAAUlkB,OAAQI,EAAIu6B,EAAIv6B,IAAKk4B,GAAKpU,UAAU9jB,GAAGJ,OACxE,IAAIP,EAAIiiB,MAAM4W,GAAI+B,EAAI,EAA3B,IAA8Bj6B,EAAI,EAAGA,EAAIu6B,EAAIv6B,IACzC,IAAK,IAAID,EAAI+jB,UAAU9jB,GAAIw6B,EAAI,EAAGC,EAAK16B,EAAEH,OAAQ46B,EAAIC,EAAID,IAAKP,IAC1D56B,EAAE46B,GAAKl6B,EAAEy6B,GACjB,OAAOn7B,CACX,EACA0f,OAAOC,eAAe4X,EAAS,aAAc,CAAE5wB,OAAO,IACtD,IAAI2jvB,EAAU3ztB,EAAQ,KAClB4ztB,EAAcD,EAAQj1uB,QAAQ,eAC9B2xgB,EAAS,SAAUiuD,QACF,IAAbA,IAAuBA,EAAW,IACtC,IAAIu1K,EAAcv1K,EAAWh6iB,EAAet7B,KAAK8qvB,UAAUlpvB,MAAM,KAAM,CAAC0zkB,IAAWtujB,KAAK,KAAOhnB,KAAK8qvB,UAChG5lvB,EAASylvB,EAAQj1uB,QAAQm1uB,GAE7B,OADA3lvB,EAAOmihB,OAASA,EAAO7mhB,KAAK0E,GACrBA,CACX,EACA0lvB,EAAYvjO,OAASA,EAAO7mhB,KAAKoqvB,GACjChztB,EAAAA,QAAkBgztB,sCClBlB,IAAI/xtB,EAAa74B,MAAQA,KAAK64B,WAAe,WACzC,IAAIP,EAAgB,SAAUC,EAAGC,GAI7B,OAHAF,EAAgBvY,OAAO0Y,gBAClB,CAAEC,UAAW,cAAgBpW,OAAS,SAAUiW,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EACtEL,EAAcC,EAAGC,EAC5B,EACA,OAAO,SAAUD,EAAGC,GAEhB,SAASM,IAAO94B,KAAKqmB,YAAckS,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAEr4B,UAAkB,OAANs4B,EAAazY,OAAOgZ,OAAOP,IAAMM,EAAG54B,UAAYs4B,EAAEt4B,UAAW,IAAI44B,EACnF,CACJ,CAZ6C,GAazCzV,EAAarjB,MAAQA,KAAKqjB,WAAc,SAAU2W,EAASC,EAAYC,EAAGC,GAE1E,OAAO,IAAKD,IAAMA,EAAIlZ,WAAU,SAAU4B,EAASH,GAC/C,SAAS2X,EAAUpzB,GAAS,IAAMqzB,EAAKF,EAAUpU,KAAK/e,GAAS,CAAE,MAAOjH,GAAK0iB,EAAO1iB,EAAI,CAAE,CAC1F,SAASu6B,EAAStzB,GAAS,IAAMqzB,EAAKF,EAAiB,MAAEnzB,GAAS,CAAE,MAAOjH,GAAK0iB,EAAO1iB,EAAI,CAAE,CAC7F,SAASs6B,EAAKn1B,GAJlB,IAAe8B,EAIa9B,EAAO8gB,KAAOpD,EAAQ1d,EAAO8B,QAJ1CA,EAIyD9B,EAAO8B,MAJhDA,aAAiBkzB,EAAIlzB,EAAQ,IAAIkzB,GAAE,SAAUtX,GAAWA,EAAQ5b,EAAQ,KAIjBgnB,KAAKoM,EAAWE,EAAW,CAC7GD,GAAMF,EAAYA,EAAUvV,MAAMoV,EAASC,GAAc,KAAKlU,OAClE,GACJ,EACIwU,EAAev6B,MAAQA,KAAKu6B,aAAgB,SAAUP,EAASQ,GAC/D,IAAsG/a,EAAG7U,EAAGnK,EAAGg6B,EAA3GC,EAAI,CAAE5wB,MAAO,EAAGiP,KAAM,WAAa,GAAW,EAAPtY,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGk6B,KAAM,GAAIC,IAAK,IAChG,OAAOH,EAAI,CAAE1U,KAAM8U,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAXhX,SAA0B4W,EAAE5W,OAAOC,UAAY,WAAa,OAAO9jB,IAAM,GAAIy6B,EACvJ,SAASI,EAAKh6B,GAAK,OAAO,SAAU2f,GAAK,OACzC,SAAcsa,GACV,GAAIrb,EAAG,MAAM,IAAIyE,UAAU,mCAC3B,KAAOwW,OACH,GAAIjb,EAAI,EAAG7U,IAAMnK,EAAY,EAARq6B,EAAG,GAASlwB,EAAU,OAAIkwB,EAAG,GAAKlwB,EAAS,SAAOnK,EAAImK,EAAU,SAAMnK,EAAEqlB,KAAKlb,GAAI,GAAKA,EAAEmb,SAAWtlB,EAAIA,EAAEqlB,KAAKlb,EAAGkwB,EAAG,KAAK9U,KAAM,OAAOvlB,EAE3J,OADImK,EAAI,EAAGnK,IAAGq6B,EAAK,CAAS,EAARA,EAAG,GAAQr6B,EAAEuG,QACzB8zB,EAAG,IACP,KAAK,EAAG,KAAK,EAAGr6B,EAAIq6B,EAAI,MACxB,KAAK,EAAc,OAAXJ,EAAE5wB,QAAgB,CAAE9C,MAAO8zB,EAAG,GAAI9U,MAAM,GAChD,KAAK,EAAG0U,EAAE5wB,QAASc,EAAIkwB,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKJ,EAAEE,IAAIhb,MAAO8a,EAAEC,KAAK/a,MAAO,SACxC,QACI,KAAkBnf,GAAZA,EAAIi6B,EAAEC,MAAY/5B,OAAS,GAAKH,EAAEA,EAAEG,OAAS,MAAkB,IAAVk6B,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEJ,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVI,EAAG,MAAcr6B,GAAMq6B,EAAG,GAAKr6B,EAAE,IAAMq6B,EAAG,GAAKr6B,EAAE,IAAM,CAAEi6B,EAAE5wB,MAAQgxB,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYJ,EAAE5wB,MAAQrJ,EAAE,GAAI,CAAEi6B,EAAE5wB,MAAQrJ,EAAE,GAAIA,EAAIq6B,EAAI,KAAO,CACpE,GAAIr6B,GAAKi6B,EAAE5wB,MAAQrJ,EAAE,GAAI,CAAEi6B,EAAE5wB,MAAQrJ,EAAE,GAAIi6B,EAAEE,IAAIhZ,KAAKkZ,GAAK,KAAO,CAC9Dr6B,EAAE,IAAIi6B,EAAEE,IAAIhb,MAChB8a,EAAEC,KAAK/a,MAAO,SAEtBkb,EAAKN,EAAK1U,KAAKkU,EAASU,EAC5B,CAAE,MAAO36B,GAAK+6B,EAAK,CAAC,EAAG/6B,GAAI6K,EAAI,CAAG,CAAE,QAAU6U,EAAIhf,EAAI,CAAG,CACzD,GAAY,EAARq6B,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE9zB,MAAO8zB,EAAG,GAAKA,EAAG,QAAK,EAAQ9U,MAAM,EAC9E,CAtBgDqU,CAAK,CAACx5B,EAAG2f,GAAK,CAAG,CAuBrE,EACAT,OAAOC,eAAe4X,EAAS,aAAc,CAAE5wB,OAAO,IACtD,IACI48B,EADU5M,EAAQ,OACDkrtB,WAAW76N,OAAO,SAMnCqgO,EAAmC,SAAU3pjB,GAE7C,SAAS2pjB,EAAkBznvB,GACvB,IAAIkjB,EAAQ46K,EAAOj4K,KAAK9lB,KAAMC,IAAYD,KAE1C,OADAmjB,EAAM4nuB,cAAe,EACd5nuB,CACX,CACA,OANA0V,EAAU6utB,EAAmB3pjB,GAMtB2pjB,CACX,CARuC,CAQrCvnvB,OACFy3B,EAAQ8vtB,kBAAoBA,EAS5B,SAAS9gsB,EAAMoksB,EAAiBviuB,EAAMwiuB,EAAS58qB,GAE3C,YADgB,IAAZA,IAAsBA,EAAU,GAC7BhrD,EAAUrjB,UAAM,OAAQ,GAAQ,WACnC,IAAIsjB,EAAO4nuB,EACX,OAAO3wtB,EAAYv6B,MAAM,SAAUohB,GAC/B,OAAQA,EAAGtX,OACP,KAAK,EACD85B,EAAO,YAAcyqC,EAAU,mBAAqB3sE,KAAKQ,UAAUumB,IACnErH,EAAGtX,MAAQ,EACf,KAAK,EAED,OADAsX,EAAGuZ,KAAK/Y,KAAK,CAAC,EAAG,EAAE,CAAG,IACf,CAAC,EAAaopuB,EAAgBpmuB,WAAMvc,EAAWogB,IAC1D,KAAK,EAED,OADArH,EAAGrI,OACI,CAAC,EAAa,GACzB,KAAK,EAGD,GAFAuK,EAAQlC,EAAGrI,OACX6qB,EAAO,SAAWtgB,IAzBF+B,EA0BQ/B,IAxB1B+B,EAAO,aA0BD,MADAue,EAAO,uBACDtgB,EAIV,OAFA4nuB,EAAYD,EAAQ58qB,EAAS5lD,EAAMnF,GACnCsgB,EAAO,WAAYsntB,IACC,IAAdA,EAA6B,CAAC,EAAa,GAC1C,CAAC,EAAa,IAAIlquB,SAAQ,SAAUo5F,GAAO,OAAO/sF,WAAW+sF,EAAK8woB,EAAY,KACzF,KAAK,EAED,OADA9puB,EAAGrI,OACI,CAAC,EAAa6tC,EAAMoksB,EAAiBviuB,EAAMwiuB,EAAS58qB,EAAU,IACzE,KAAK,EAAG,MAAO,CAAC,EAAcjtD,EAAGrI,QACjC,KAAK,EAAG,MAAMuK,EACd,KAAK,EAAG,MAAO,CAAC,EAAa,GAC7B,KAAK,EAAG,MAAO,CAAC,GAxCN,IAAU+B,CA0C5B,GACJ,GACJ,CACAuS,EAAQgvB,MAAQA,EAahBhvB,EAAQ4utB,yBAA2B,SAAUwE,EAAiBviuB,EAAM0iuB,GAEhE,YADmB,IAAfA,IAAyBA,EA1Ed,KA2ERvksB,EAAMoksB,EAAiBviuB,EAdlC,SAAyB0iuB,GAGrB,OAAO,SAAU98qB,GACb,IAAIrsB,EAHW,IAGHpZ,KAAKma,IAAI,EAAGsrB,GAFR,IAEkDzlC,KAAKwb,SACvE,QAAOpC,EAAQmpsB,IAAqBnpsB,CACxC,CACJ,CAOwCopsB,CAAgBD,GACxD,yBC9CA,IAA8BjpL,IAarB,WAGR,IAAImpL,EAAY,SAAUpmjB,GAI1B,IAKIljM,EAAekjM,EAAOljM,cAAiB,WAC1C,IAAI4H,EAAO,CAAC,EAEZ,MAAO,CACN3H,QAAS,SAAUijB,EAAKtU,GAAQhH,EAAKsb,GAAOtU,CAAM,EAClDzN,QAAS,SAAU+hB,GAAO,OAAOtb,EAAKsb,EAAM,EAC5CxiB,WAAY,SAAUwiB,UAActb,EAAKsb,EAAM,EAEjD,CAR2C,GAetCqmuB,EACM,EADNA,EAEM,EAFNA,EAGM,EAHNA,EAIK,EAJLA,EAKK,EALLA,EAMK,EANLA,EAOM,EAPNA,EAQQ,EARRA,EASK,EATLA,EAUU,GAVVA,EAWO,GAXPA,EAYM,GAZNA,EAaO,GAbPA,EAcS,GAgBTtlsB,EAAW,SAAS3gC,EAAKd,GAC5B,IAAK,IAAIU,KAAOI,EACf,GAAIA,EAAIuT,eAAe3T,GAAM,CAC5B,IAAIV,EAAKqU,eAAe3T,GAGjB,CACN,IAAIsmuB,EAAW,qBAAuBtmuB,EAAM,0BAC5C,IAAK,IAAIumuB,KAAYjnuB,EAChBA,EAAKqU,eAAe4ytB,KACvBD,EAAWA,EAAS,IAAIC,GAC1B,MAAM,IAAIrrvB,MAAMorvB,EACjB,CARC,UAAWlmuB,EAAIJ,KAASV,EAAKU,GAC5B,MAAM,IAAI9kB,MAAMyS,EAAO64uB,EAAMC,aAAc,QAAQrmuB,EAAIJ,GAAMA,IAQhE,CAEF,EAUIjX,EAAQ,SAAUyR,EAAGzR,GACxB,OAAO,WACN,OAAOyR,EAAEmF,MAAM5W,EAAO8W,UACvB,CACD,EAOI2muB,EAAQ,CACXE,GAAI,CAAC1kuB,KAAK,EAAG/b,KAAK,mBAClB0gvB,gBAAiB,CAAC3kuB,KAAK,EAAG/b,KAAK,kCAC/B2gvB,kBAAmB,CAAC5kuB,KAAK,EAAG/b,KAAK,mCACjC4gvB,oBAAqB,CAAC7kuB,KAAK,EAAG/b,KAAK,qCACnC6gvB,aAAc,CAAC9kuB,KAAK,EAAG/b,KAAK,8BAC5B8gvB,eAAgB,CAAC/kuB,KAAK,EAAG/b,KAAK,mEAC9B+gvB,mBAAoB,CAAChluB,KAAK,EAAG/b,KAAK,+CAClCghvB,aAAc,CAACjluB,KAAK,EAAG/b,KAAK,gCAC5BihvB,aAAc,CAAClluB,KAAK,EAAG/b,KAAK,6BAC5BkhvB,cAAe,CAACnluB,KAAK,EAAG/b,KAAK,8CAC7BmhvB,YAAa,CAACpluB,KAAK,GAAI/b,KAAK,oDAC5BohvB,cAAe,CAACrluB,KAAK,GAAI/b,KAAK,iCAC9BwgvB,aAAc,CAACzkuB,KAAK,GAAI/b,KAAK,wCAC7BqhvB,iBAAkB,CAACtluB,KAAK,GAAI/b,KAAK,4CACjCshvB,sBAAuB,CAACvluB,KAAK,GAAI/b,KAAK,qCACtCuhvB,oBAAqB,CAACxluB,KAAK,GAAI/b,KAAK,+DACpCwhvB,0BAA2B,CAACzluB,KAAK,GAAI/b,KAAK,6CAC1CyhvB,kBAAmB,CAAC1luB,KAAK,GAAI/b,KAAK,gDAClC0hvB,YAAa,CAAC3luB,KAAK,GAAI/b,KAAK,iEAIzB2hvB,EAAa,CAChB,EAAE,sBACF,EAAE,oDACF,EAAE,0CACF,EAAE,yCACF,EAAE,gDACF,EAAE,sCAUCj6uB,EAAS,SAASrO,EAAOuovB,GAC5B,IAAI5hvB,EAAO3G,EAAM2G,KACjB,GAAI4hvB,EAEH,IADA,IAAI74uB,EAAMpE,EACD7O,EAAE,EAAGA,EAAE8rvB,EAAclsvB,OAAQI,IAGrC,GAFAiT,EAAQ,IAAIjT,EAAE,KACd6O,EAAQ3E,EAAK9J,QAAQ6S,IACV,EAAG,CACb,IAAI84uB,EAAQ7hvB,EAAKwvC,UAAU,EAAE7qC,GACzBm9uB,EAAQ9hvB,EAAKwvC,UAAU7qC,EAAMoE,EAAMrT,QACvCsK,EAAO6hvB,EAAMD,EAAc9rvB,GAAGgsvB,CAC/B,CAGF,OAAO9hvB,CACR,EAGI+hvB,EAAwB,CAAC,EAAK,EAAK,GAAK,GAAK,GAAK,IAAK,IAAK,IAAK,GAEjEC,EAAwB,CAAC,EAAK,EAAK,GAAK,GAAK,GAAK,GAAK,GA0BvDC,EAAc,SAAUlpvB,EAAMqG,GAEjC,IAAK,IAAIlK,KADTJ,KAAKiE,KAAOA,EACKqG,EACZA,EAAQsuB,eAAex4B,KAC1BJ,KAAKI,GAAQkK,EAAQlK,GAGxB,EA4LA,SAASgtvB,EAAclttB,EAAMu7E,GAC5B,IASI4xoB,EATAC,EAAc7xoB,EACd2tF,EAAQlpK,EAAMu7E,GACdx3G,EAAOmlM,GAAS,EAChBmkjB,EAAcnkjB,GAAS,GAC3B3tF,GAAO,EAMP,IAAI+xoB,EAAY,EACZlyZ,EAAa,EACjB,EAAG,CACF,GAAI7/O,GAAOv7E,EAAMt/B,OAChB,MAAO,CAAC,KAAK0svB,GAGdE,IAAuB,KADvBH,EAAQnttB,EAAMu7E,OACiB6/O,EAC/BA,GAAc,GACf,OAA4B,KAAV,IAAR+xZ,IAEV,IAAII,EAAShyoB,EAAI+xoB,EACjB,GAAIC,EAASvttB,EAAMt/B,OAClB,MAAO,CAAC,KAAK0svB,GAGd,IAAII,EAAc,IAAIP,EAAYlpvB,GAClC,OAAOA,GACP,KAAKqnvB,EAE0B,EADAprtB,EAAMu7E,OAEnCiyoB,EAAYC,gBAAiB,GAC9BD,EAAYE,WAAa1ttB,EAAMu7E,KAC/B,MAED,KAAK6voB,EACJ,IAAIuC,EAAON,GAAe,EAAK,EAE3BhnuB,EAAMunuB,EAAW5ttB,EAAOu7E,GAExBsyoB,EAAYC,EAAU9ttB,EAD1Bu7E,GAAO,EAC+Bl1F,GACtCk1F,GAAOl1F,EAEHsnuB,EAAM,IACTH,EAAYO,kBAAoBH,EAAW5ttB,EAAOu7E,GAClDA,GAAO,GAER,IAAIx7G,EAAU,IAAIorvB,EAASrhpB,QAAQ9pE,EAAMyL,SAAS8vE,EAAKgyoB,IAC3B,IAAT,EAAdF,KACJttvB,EAAQiuvB,UAAW,GACQ,IAAT,EAAdX,KACJttvB,EAAQkuvB,WAAa,GACtBluvB,EAAQ4tvB,IAAMA,EACd5tvB,EAAQiqvB,gBAAkB6D,EAC1BL,EAAYU,eAAiBnuvB,EAC7B,MAED,KAAMqrvB,EACN,KAAMA,EACN,KAAMA,EACN,KAAMA,EACN,KAAMA,EACLoC,EAAYO,kBAAoBH,EAAW5ttB,EAAOu7E,GAClD,MAED,KAAM6voB,EACLoC,EAAYO,kBAAoBH,EAAW5ttB,EAAOu7E,GAClDA,GAAO,EACPiyoB,EAAYE,WAAa1ttB,EAAMyL,SAAS8vE,EAAKgyoB,GAO9C,MAAO,CAACC,EAAYD,EACrB,CAEA,SAASY,EAAYnutB,EAAOP,EAAQomB,GAGnC,OAFApmB,EAAOomB,KAAY7lB,GAAS,EAC5BP,EAAOomB,KAAY7lB,EAAQ,IACpB6lB,CACR,CAEA,SAASuosB,EAAYputB,EAAOqutB,EAAY5utB,EAAQomB,GAG/C,OADAyosB,EAAatutB,EAAOP,EADpBomB,EAASsosB,EAAYE,EAAY5utB,EAAQomB,IAElCA,EAASwosB,CACjB,CAEA,SAAST,EAAWnutB,EAAQomB,GAC3B,OAAO,IAAIpmB,EAAOomB,GAAUpmB,EAAOomB,EAAO,EAC3C,CA0BA,SAAS0osB,EAAWvutB,GAEnB,IADA,IAAIwE,EAAS,EACJ1jC,EAAI,EAAGA,EAAEk/B,EAAMt/B,OAAQI,IAChC,CACC,IAAI0tvB,EAAWxutB,EAAM5+B,WAAWN,GAC5B0tvB,EAAW,MAGV,OAAUA,GAAYA,GAAY,QAErC1tvB,IACA0jC,KAEDA,GAAS,GAEDgqtB,EAAW,IACnBhqtB,GAAS,EAETA,GACF,CACA,OAAOA,CACR,CAMA,SAAS8ptB,EAAatutB,EAAOwE,EAAQ70B,GAEpC,IADA,IAAI4rG,EAAM5rG,EACD7O,EAAI,EAAGA,EAAEk/B,EAAMt/B,OAAQI,IAAK,CACpC,IAAI0tvB,EAAWxutB,EAAM5+B,WAAWN,GAGhC,GAAI,OAAU0tvB,GAAYA,GAAY,MAAQ,CAC7C,IAAIC,EAAczutB,EAAM5+B,aAAaN,GACrC,GAAI2zB,MAAMg6tB,GACT,MAAM,IAAIxuvB,MAAMyS,EAAO64uB,EAAMkB,kBAAmB,CAAC+B,EAAUC,KAE5DD,EAAwCC,EAAc,OAAzCD,EAAW,OAAS,IAA+B,KAEjE,CAEIA,GAAY,IACfhqtB,EAAO+2E,KAASizoB,EACNA,GAAY,MACtBhqtB,EAAO+2E,KAASizoB,GAAU,EAAK,GAAO,IACtChqtB,EAAO+2E,KAAwB,GAAfizoB,EAAsB,KAC5BA,GAAY,OACtBhqtB,EAAO+2E,KAASizoB,GAAU,GAAK,GAAO,IACtChqtB,EAAO+2E,KAASizoB,GAAU,EAAK,GAAO,IACtChqtB,EAAO+2E,KAAwB,GAAfizoB,EAAsB,MAEtChqtB,EAAO+2E,KAASizoB,GAAU,GAAK,EAAO,IACtChqtB,EAAO+2E,KAASizoB,GAAU,GAAK,GAAO,IACtChqtB,EAAO+2E,KAASizoB,GAAU,EAAK,GAAO,IACtChqtB,EAAO+2E,KAAwB,GAAfizoB,EAAsB,IAExC,CACA,OAAOhqtB,CACR,CAEA,SAASsptB,EAAU9ttB,EAAO6lB,EAAQnlD,GAKjC,IAJA,IACIguvB,EADAlqtB,EAAS,GAET+2E,EAAM11D,EAEH01D,EAAM11D,EAAOnlD,GACpB,CACC,IAAIiuvB,EAAQ3utB,EAAMu7E,KAClB,GAAIozoB,EAAQ,IACXD,EAAQC,MAET,CACC,IAAIC,EAAQ5utB,EAAMu7E,KAAO,IACzB,GAAIqzoB,EAAQ,EACX,MAAM,IAAI3uvB,MAAMyS,EAAO64uB,EAAMW,cAAe,CAACyC,EAAMttvB,SAAS,IAAKutvB,EAAMvtvB,SAAS,IAAI,MACrF,GAAIstvB,EAAQ,IACXD,EAAQ,IAAIC,EAAM,KAAQC,MAE3B,CACC,IAAIC,EAAQ7utB,EAAMu7E,KAAO,IACzB,GAAIszoB,EAAQ,EACX,MAAM,IAAI5uvB,MAAMyS,EAAO64uB,EAAMW,cAAe,CAACyC,EAAMttvB,SAAS,IAAKutvB,EAAMvtvB,SAAS,IAAKwtvB,EAAMxtvB,SAAS,OACrG,GAAIstvB,EAAQ,IACXD,EAAQ,MAAMC,EAAM,KAAQ,GAAGC,EAAQC,MAExC,CACC,IAAIC,EAAQ9utB,EAAMu7E,KAAO,IACzB,GAAIuzoB,EAAQ,EACX,MAAM,IAAI7uvB,MAAMyS,EAAO64uB,EAAMW,cAAe,CAACyC,EAAMttvB,SAAS,IAAKutvB,EAAMvtvB,SAAS,IAAKwtvB,EAAMxtvB,SAAS,IAAKytvB,EAAMztvB,SAAS,OACzH,KAAIstvB,EAAQ,KAGX,MAAM,IAAI1uvB,MAAMyS,EAAO64uB,EAAMW,cAAe,CAACyC,EAAMttvB,SAAS,IAAKutvB,EAAMvtvB,SAAS,IAAKwtvB,EAAMxtvB,SAAS,IAAKytvB,EAAMztvB,SAAS,OAFxHqtvB,EAAQ,QAAQC,EAAM,KAAQ,KAAKC,EAAQ,GAAGC,EAAQC,CAGxD,CACD,CACD,CAEIJ,EAAQ,QAEXA,GAAS,MACTlqtB,GAAUhkC,OAAOS,aAAa,OAAUytvB,GAAS,KACjDA,EAAQ,OAAkB,KAARA,IAEnBlqtB,GAAUhkC,OAAOS,aAAaytvB,EAC/B,CACA,OAAOlqtB,CACR,CA5ZAyotB,EAAYjtvB,UAAUkgC,OAAS,WAE9B,IAUI6utB,EAVA7ljB,GAAsB,GAAZppM,KAAKiE,OAAgB,EAO/BupvB,EAAY,EACZ0B,EAAiB,GACjBC,EAAwB,EAO5B,YAH+B9mvB,IAA3BrI,KAAKiuvB,oBACRT,GAAa,GAEPxtvB,KAAKiE,MAEZ,KAAKqnvB,EACJ,OAAOtrvB,KAAKqqvB,aACZ,KAAK,EACJmD,GAAaP,EAAsBrsvB,OAAS,EAC5C,MACD,KAAK,EACJ4svB,GAAaN,EAAsBtsvB,OAAS,EAI7C4svB,GAAaiB,EAAWzuvB,KAAKspvB,UAAY,OAChBjhvB,IAArBrI,KAAKovvB,cACR5B,GAAaiB,EAAWzuvB,KAAKovvB,YAAYlF,iBAAmB,GAE5D+E,EAA0BjvvB,KAAKovvB,YAAYC,wBACFvxtB,aACxCmxtB,EAA0B,IAAInxtB,WAAWuxtB,IAC1C7B,GAAayB,EAAwBpvtB,WAAY,QAE5Bx3B,IAAlBrI,KAAKsvvB,WACR9B,GAAaiB,EAAWzuvB,KAAKsvvB,UAAY,QACpBjnvB,IAAlBrI,KAAK+E,WACRyovB,GAAaiB,EAAWzuvB,KAAK+E,UAAY,GAC1C,MAGD,KAAKumvB,EACJlijB,GAAS,EACT,IAAM,IAAIpoM,EAAI,EAAGA,EAAIhB,KAAKwpvB,OAAO5ovB,OAAQI,IACxCkuvB,EAAeluvB,GAAKytvB,EAAWzuvB,KAAKwpvB,OAAOxovB,IAC3CwsvB,GAAa0B,EAAeluvB,GAAK,EAElCwsvB,GAAaxtvB,KAAKuvvB,aAAa3uvB,OAE/B,MAED,KAAK0qvB,EAEJ,IADAlijB,GAAS,EACCpoM,EAAI,EAAGA,EAAIhB,KAAKwpvB,OAAO5ovB,OAAQI,IACxCkuvB,EAAeluvB,GAAKytvB,EAAWzuvB,KAAKwpvB,OAAOxovB,IAC3CwsvB,GAAa0B,EAAeluvB,GAAK,EAElC,MAED,KAAKsqvB,EACJlijB,GAAS,EACT,MAED,KAAKkijB,EACAtrvB,KAAKouvB,eAAeD,YAAW/kjB,GAAS,GAC5CA,EAASA,GAAUppM,KAAKouvB,eAAeP,KAAO,EAC1C7tvB,KAAKouvB,eAAeF,WAAU9kjB,GAAS,GAE3CokjB,IADA2B,EAAwBV,EAAWzuvB,KAAKouvB,eAAelE,kBAClB,EACrC,IAAImF,EAAervvB,KAAKouvB,eAAeiB,aACvC7B,GAAa6B,EAAaxvtB,WACtBwvtB,aAAwB5vtB,YAC3B4vtB,EAAe,IAAIvxtB,WAAWuxtB,GACpBA,aAAwBvxtB,aAClCuxtB,EAAe,IAAIvxtB,WAAWuxtB,EAAa1vtB,SAY7C,IAAI6vtB,EAkML,SAAmB9mtB,GAClB,IAAIhE,EAAS,IAAIpiB,MAAM,GACnBmtuB,EAAW,EAEf,EAAG,CACF,IAAIpC,EAAQ3ktB,EAAS,KACrBA,IAAmB,GACN,IACZ2ktB,GAAS,KAEV3otB,EAAO+qtB,KAAcpC,CACtB,OAAW3ktB,EAAS,GAAO+mtB,EAAS,GAEpC,OAAO/qtB,CACR,CAhNWgrtB,CAAUlC,GAChB/xoB,EAAM+zoB,EAAI5uvB,OAAS,EACnB++B,EAAS,IAAIF,YAAY+ttB,EAAY/xoB,GACrCk0oB,EAAa,IAAI7xtB,WAAW6B,GAOhC,GAJAgwtB,EAAW,GAAKvmjB,EAChBumjB,EAAW3ytB,IAAIwytB,EAAI,GAGfxvvB,KAAKiE,MAAQqnvB,EAChB7voB,EAAM6yoB,EAAYtuvB,KAAKouvB,eAAelE,gBAAiBiF,EAAuBQ,EAAYl0oB,QAGtF,GAAIz7G,KAAKiE,MAAQqnvB,EAAsB,CAC3C,OAAQtrvB,KAAKqqvB,aACb,KAAK,EACJsF,EAAW3ytB,IAAIiwtB,EAAuBxxoB,GACtCA,GAAOwxoB,EAAsBrsvB,OAC7B,MACD,KAAK,EACJ+uvB,EAAW3ytB,IAAIkwtB,EAAuBzxoB,GACtCA,GAAOyxoB,EAAsBtsvB,OAG9B,IAAIgvvB,EAAe,EACf5vvB,KAAK6vvB,eACRD,EAAe,QACSvnvB,IAArBrI,KAAKovvB,cACRQ,GAAgB,EAChBA,GAAiB5vvB,KAAKovvB,YAAYvB,KAAK,EACnC7tvB,KAAKovvB,YAAYlB,WACpB0B,GAAgB,UAGIvnvB,IAAlBrI,KAAKsvvB,WACRM,GAAgB,UACKvnvB,IAAlBrI,KAAK+E,WACR6qvB,GAAgB,IACjBD,EAAWl0oB,KAASm0oB,EACpBn0oB,EAAM4yoB,EAAaruvB,KAAK8vvB,kBAAmBH,EAAYl0oB,EACxD,CAMA,YAH+BpzG,IAA3BrI,KAAKiuvB,oBACRxyoB,EAAM4yoB,EAAaruvB,KAAKiuvB,kBAAmB0B,EAAYl0oB,IAEjDz7G,KAAKiE,MACZ,KAAKqnvB,EACJ7voB,EAAM6yoB,EAAYtuvB,KAAKspvB,SAAUmF,EAAWzuvB,KAAKspvB,UAAWqG,EAAYl0oB,QAC/CpzG,IAArBrI,KAAKovvB,cACR3zoB,EAAM6yoB,EAAYtuvB,KAAKovvB,YAAYlF,gBAAiBuE,EAAWzuvB,KAAKovvB,YAAYlF,iBAAkByF,EAAYl0oB,GAC9GA,EAAM4yoB,EAAYY,EAAwBpvtB,WAAY8vtB,EAAYl0oB,GAClEk0oB,EAAW3ytB,IAAIiytB,EAAyBxzoB,GACxCA,GAAOwzoB,EAAwBpvtB,iBAGVx3B,IAAlBrI,KAAKsvvB,WACR7zoB,EAAM6yoB,EAAYtuvB,KAAKsvvB,SAAUb,EAAWzuvB,KAAKsvvB,UAAWK,EAAYl0oB,SACnDpzG,IAAlBrI,KAAK+E,WACR02G,EAAM6yoB,EAAYtuvB,KAAK+E,SAAU0pvB,EAAWzuvB,KAAK+E,UAAW4qvB,EAAYl0oB,IACzE,MAED,KAAK6voB,EAEJqE,EAAW3ytB,IAAIqytB,EAAc5zoB,GAE7B,MAOD,KAAK6voB,EAEJ,IAAStqvB,EAAE,EAAGA,EAAEhB,KAAKwpvB,OAAO5ovB,OAAQI,IACnCy6G,EAAM6yoB,EAAYtuvB,KAAKwpvB,OAAOxovB,GAAIkuvB,EAAeluvB,GAAI2uvB,EAAYl0oB,GACjEk0oB,EAAWl0oB,KAASz7G,KAAKuvvB,aAAavuvB,GAEvC,MAED,KAAKsqvB,EAEJ,IAAStqvB,EAAE,EAAGA,EAAEhB,KAAKwpvB,OAAO5ovB,OAAQI,IACnCy6G,EAAM6yoB,EAAYtuvB,KAAKwpvB,OAAOxovB,GAAIkuvB,EAAeluvB,GAAI2uvB,EAAYl0oB,GAOnE,OAAO97E,CACR,EA0OA,IAAIowtB,EAAS,SAASrjrB,EAAQojrB,GAC7B9vvB,KAAKgwvB,QAAUtjrB,EACf1sE,KAAKiwvB,mBAAuC,IAAlBH,EAC1B9vvB,KAAKkwvB,SAAU,EAEf,IAAIC,EAAU,IAAIhD,EAAY7B,GAAsBlrtB,SAEhDgwtB,EAAY,SAAUC,GACzB,OAAO,WACN,OAAOC,EAAO1ruB,MAAMyruB,EACrB,CACD,EAGIC,EAAS,WACPtwvB,KAAKkwvB,SAITlwvB,KAAKkwvB,SAAU,EACflwvB,KAAKgwvB,QAAQO,OAAO,gBAAiB,gBACrCvwvB,KAAKgwvB,QAAQQ,OAAO7jrB,KAAKwjrB,GACzBnwvB,KAAKshI,QAAUj0G,WAAW+iuB,EAAUpwvB,MAAOA,KAAKiwvB,sBANhDjwvB,KAAKgwvB,QAAQO,OAAO,gBAAiB,aACrCvwvB,KAAKgwvB,QAAQS,cAAehF,EAAMM,aAAa9kuB,KAAOrU,EAAO64uB,EAAMM,eAOrE,EAEA/rvB,KAAK23B,MAAQ,WACZ33B,KAAKkwvB,SAAU,EACfponB,aAAa9nI,KAAKshI,SACdthI,KAAKiwvB,mBAAqB,IAC7BjwvB,KAAKshI,QAAUj0G,WAAW+iuB,EAAUpwvB,MAAOA,KAAKiwvB,oBAClD,EAEAjwvB,KAAKk5Q,OAAS,WACbpxI,aAAa9nI,KAAKshI,QACnB,CACD,EAMIovnB,EAAU,SAAShkrB,EAAQikrB,EAAgBjsvB,EAAQ+jB,GACjDkouB,IACJA,EAAiB,IAOlB3wvB,KAAKshI,QAAUj0G,WALC,SAAU3oB,EAAQgoE,EAAQjkD,GACzC,OAAO,WACN,OAAO/jB,EAAOkgB,MAAM8nD,EAAQjkD,EAC7B,CACD,CAC0B2nuB,CAAU1rvB,EAAQgoE,EAAQjkD,GAAwB,IAAjBkouB,GAE3D3wvB,KAAKk5Q,OAAS,WACbpxI,aAAa9nI,KAAKshI,QACnB,CACD,EAUIsvnB,EAAa,SAAUryiB,EAAKp3K,EAAMD,EAAM1nB,EAAM8puB,GAEjD,KAAM,cAAerkjB,IAA+B,OAArBA,EAAOo/iB,UACrC,MAAM,IAAIlkvB,MAAMyS,EAAO64uB,EAAMY,YAAa,CAAC,eAE5C,KAAM,gBAAiBpnjB,IAAiC,OAAvBA,EAAOxlK,YACvC,MAAM,IAAIt/B,MAAMyS,EAAO64uB,EAAMY,YAAa,CAAC,iBA2C5C,IAAK,IAAIpnuB,KAzCTjlB,KAAKuwvB,OAAO,cAAehyiB,EAAKp3K,EAAMD,EAAM1nB,EAAM8puB,GAElDtpvB,KAAKmnC,KAAOA,EACZnnC,KAAKknC,KAAOA,EACZlnC,KAAKwf,KAAOA,EACZxf,KAAKu+M,IAAMA,EACXv+M,KAAKspvB,SAAWA,EAChBtpvB,KAAK6wvB,OAAS,KAMd7wvB,KAAK8wvB,UAAU3ptB,EAAK,IAAID,GAAY,SAAN1nB,EAAc,IAAIA,EAAK,IAAI,IAAI8puB,EAAS,IAItEtpvB,KAAK+wvB,WAAa,GAClB/wvB,KAAKgxvB,oBAAsB,GAG3BhxvB,KAAKixvB,cAAgB,CAAC,EAItBjxvB,KAAKkxvB,kBAAoB,CAAC,EAK1BlxvB,KAAKmxvB,iBAAmB,CAAC,EAIzBnxvB,KAAKoxvB,oBAAsB,EAG3BpxvB,KAAKqxvB,UAAY,EAIDtvvB,EACgC,IAAxCkjB,EAAI7jB,QAAQ,QAAQpB,KAAK8wvB,YAAgE,IAA5C7ruB,EAAI7jB,QAAQ,YAAYpB,KAAK8wvB,YAChF9wvB,KAAKsrF,QAAQrmE,EAChB,EAGA2ruB,EAAW1wvB,UAAUinC,KAAO,KAC5ByptB,EAAW1wvB,UAAUgnC,KAAO,KAC5B0ptB,EAAW1wvB,UAAUsf,KAAO,KAC5BoxuB,EAAW1wvB,UAAUq+M,IAAM,KAC3BqyiB,EAAW1wvB,UAAUopvB,SAAW,KAGhCsH,EAAW1wvB,UAAUswvB,OAAS,KAE9BI,EAAW1wvB,UAAUoxvB,WAAY,EAIjCV,EAAW1wvB,UAAUqxvB,qBAAuB,MAC5CX,EAAW1wvB,UAAUsxvB,eAAiB,KACtCZ,EAAW1wvB,UAAUuxvB,UAAY,KACjCb,EAAW1wvB,UAAUwxvB,YAAc,KACnCd,EAAW1wvB,UAAU6pvB,iBAAmB,KACxC6G,EAAW1wvB,UAAUyxvB,mBAAqB,KAC1Cf,EAAW1wvB,UAAU+pvB,iBAAmB,KACxC2G,EAAW1wvB,UAAU0xvB,cAAgB,KACrChB,EAAW1wvB,UAAU6wvB,WAAa,KAClCH,EAAW1wvB,UAAU8wvB,oBAAsB,KAC3CJ,EAAW1wvB,UAAU2xvB,gBAAkB,KAEvCjB,EAAW1wvB,UAAU4xvB,WAAa,KAElClB,EAAW1wvB,UAAU6xvB,cAAgB,KACrCnB,EAAW1wvB,UAAU8xvB,mBAAqB,EAC1CpB,EAAW1wvB,UAAU+xvB,eAAgB,EACrCrB,EAAW1wvB,UAAUgyvB,kBAAoB,KACzCtB,EAAW1wvB,UAAUiyvB,wBAAyB,EAC9CvB,EAAW1wvB,UAAUkyvB,uBAAyB,IAE9CxB,EAAW1wvB,UAAUmyvB,cAAgB,KAErCzB,EAAW1wvB,UAAUoyvB,aAAe,KACpC1B,EAAW1wvB,UAAUqyvB,mBAAqB,IAE1C3B,EAAW1wvB,UAAUiqvB,QAAU,SAAUqH,GACxC,IAAIgB,EAAuBxyvB,KAAKyyvB,WAAWjB,EAAgB,YAG3D,GAFAxxvB,KAAKuwvB,OAAO,iBAAkBiC,EAAsBxyvB,KAAKwwvB,OAAQxwvB,KAAKsxvB,WAElEtxvB,KAAKsxvB,UACR,MAAM,IAAInxvB,MAAMyS,EAAO64uB,EAAMa,cAAe,CAAC,uBAC9C,GAAItsvB,KAAKwwvB,OACR,MAAM,IAAIrwvB,MAAMyS,EAAO64uB,EAAMa,cAAe,CAAC,uBAE1CtsvB,KAAKiyvB,gBAGRjyvB,KAAKkyvB,kBAAkBh5e,SACvBl5Q,KAAKkyvB,kBAAoB,KACzBlyvB,KAAKiyvB,eAAgB,GAGtBjyvB,KAAKwxvB,eAAiBA,EACtBxxvB,KAAKgyvB,mBAAqB,EAC1BhyvB,KAAKiyvB,eAAgB,EACjBT,EAAekB,MAClB1yvB,KAAKyxvB,UAAY,EACjBzxvB,KAAK2yvB,WAAWnB,EAAekB,KAAK,KAEpC1yvB,KAAK2yvB,WAAW3yvB,KAAKu+M,IAGvB,EAEAqyiB,EAAW1wvB,UAAUg1L,UAAY,SAAUzgL,EAAQm+uB,GAGlD,GAFA5yvB,KAAKuwvB,OAAO,mBAAoB97uB,EAAQm+uB,IAEnC5yvB,KAAKsxvB,UACT,MAAM,IAAInxvB,MAAMyS,EAAO64uB,EAAMa,cAAe,CAAC,mBAE9C,IAAIoB,EAAc,IAAIP,EAAY7B,GAClCoC,EAAYlE,OAAO,CAAC/0uB,QACSpM,IAAzBuqvB,EAAiB/E,IACpBH,EAAY6B,aAAe,CAACqD,EAAiB/E,KAE7CH,EAAY6B,aAAe,CAAC,GAEzBqD,EAAiBtI,YACpBoD,EAAYpD,UAAY,SAASuI,GAAaD,EAAiBtI,UAAU,CAACwI,kBAAkBF,EAAiBE,kBAAkBD,WAAWA,GAAa,GAGpJD,EAAiBrI,YACpBmD,EAAYnD,UAAY,SAAS78pB,GAAYklqB,EAAiBrI,UAAU,CAACuI,kBAAkBF,EAAiBE,kBAAkBplqB,UAAUA,EAAWq7pB,aAAan2uB,EAAO86E,IAAa,GAGjLklqB,EAAiBtxnB,UACpBosnB,EAAYqF,QAAU,IAAIrC,EAAQ1wvB,KAAM4yvB,EAAiBtxnB,QAASsxnB,EAAiBrI,UAClF,CAAC,CAACuI,kBAAkBF,EAAiBE,kBACpCplqB,UAAU+9pB,EAAMI,kBAAkB5kuB,KAClC8huB,aAAan2uB,EAAO64uB,EAAMI,uBAI7B7rvB,KAAKgzvB,cAActF,GACnB1tvB,KAAKizvB,kBAAkBvF,EACxB,EAGAkD,EAAW1wvB,UAAUqmuB,YAAc,SAAS9xtB,EAAQy+uB,GAGnD,GAFAlzvB,KAAKuwvB,OAAO,qBAAsB97uB,EAAQy+uB,IAErClzvB,KAAKsxvB,UACT,MAAM,IAAInxvB,MAAMyS,EAAO64uB,EAAMa,cAAe,CAAC,mBAE9C,IAAIoB,EAAc,IAAIP,EAAY7B,GAClCoC,EAAYlE,OAAS,CAAC/0uB,GAElBy+uB,EAAmB5I,YACtBoD,EAAYnloB,SAAW,WAAY2qoB,EAAmB5I,UAAU,CAACwI,kBAAkBI,EAAmBJ,mBAAoB,GAEvHI,EAAmB5xnB,UACtBosnB,EAAYqF,QAAU,IAAIrC,EAAQ1wvB,KAAMkzvB,EAAmB5xnB,QAAS4xnB,EAAmB3I,UACtF,CAAC,CAACuI,kBAAkBI,EAAmBJ,kBACtCplqB,UAAU+9pB,EAAMK,oBAAoB7kuB,KACpC8huB,aAAan2uB,EAAO64uB,EAAMK,yBAI7B9rvB,KAAKgzvB,cAActF,GACnB1tvB,KAAKizvB,kBAAkBvF,EACxB,EAEAkD,EAAW1wvB,UAAUysE,KAAO,SAAU1sE,GACrCD,KAAKuwvB,OAAO,cAAetwvB,GAE3B,IAAIytvB,EAAc,IAAIP,EAAY7B,GAGlC,GAFAoC,EAAYU,eAAiBnuvB,EAEzBD,KAAKsxvB,UAIJrxvB,EAAQ4tvB,IAAM,EACjB7tvB,KAAKgzvB,cAActF,GACT1tvB,KAAK2xvB,qBACf3xvB,KAAKmxvB,iBAAiBzD,GAAe1tvB,KAAK2xvB,mBAAmBjE,EAAYU,iBAE1EpuvB,KAAKizvB,kBAAkBvF,OACjB,CAGN,IAAI1tvB,KAAKiyvB,gBAAiBjyvB,KAAKmyvB,uBAgB9B,MAAM,IAAIhyvB,MAAMyS,EAAO64uB,EAAMa,cAAe,CAAC,mBAb7C,GADmBvsuB,OAAOwE,KAAKvkB,KAAKixvB,eAAerwvB,OAASZ,KAAKgxvB,oBAAoBpwvB,OAClEZ,KAAKoyvB,uBACvB,MAAM,IAAIjyvB,MAAMyS,EAAO64uB,EAAMmB,YAAa,CAAC5svB,KAAKoyvB,0BAE5CnyvB,EAAQ4tvB,IAAM,EAEjB7tvB,KAAKgzvB,cAActF,IAEnBA,EAAYzyW,WAAaj7Y,KAAKqxvB,UAE9BrxvB,KAAKgxvB,oBAAoB7oQ,QAAQulQ,GAMrC,CACD,EAEAkD,EAAW1wvB,UAAUinJ,WAAa,WAWjC,GAVAnnJ,KAAKuwvB,OAAO,qBAERvwvB,KAAKiyvB,gBAGRjyvB,KAAKkyvB,kBAAkBh5e,SACvBl5Q,KAAKkyvB,kBAAoB,KACzBlyvB,KAAKiyvB,eAAgB,IAGjBjyvB,KAAKwwvB,OACT,MAAM,IAAIrwvB,MAAMyS,EAAO64uB,EAAMa,cAAe,CAAC,iCAE9C,IAAIoB,EAAc,IAAIP,EAAY7B,GAKlCtrvB,KAAKmxvB,iBAAiBzD,GAAe1/uB,EAAMhO,KAAKywvB,cAAezwvB,MAE/DA,KAAKizvB,kBAAkBvF,EACxB,EAEAkD,EAAW1wvB,UAAUizvB,YAAc,WAClC,GAA2B,OAAtBnzvB,KAAKsyvB,aAAwB,CAGjC,IAAK,IAAIrtuB,KAFTjlB,KAAKuwvB,OAAO,qBAAsB,IAAIjtvB,MACtCtD,KAAKuwvB,OAAO,wCAAyCvwvB,KAAKixvB,cAAcrwvB,QACxDZ,KAAKixvB,cACpBjxvB,KAAKuwvB,OAAO,iBAAiBtruB,EAAKjlB,KAAKixvB,cAAchsuB,IACtD,IAAK,IAAIA,KAAOjlB,KAAKkxvB,kBACpBlxvB,KAAKuwvB,OAAO,qBAAqBtruB,EAAKjlB,KAAKkxvB,kBAAkBjsuB,IAE9D,OAAOjlB,KAAKsyvB,YACb,CACD,EAEA1B,EAAW1wvB,UAAUkzvB,WAAa,WACN,OAAtBpzvB,KAAKsyvB,eACTtyvB,KAAKsyvB,aAAe,IAErBtyvB,KAAKuwvB,OAAO,oBAAqB,IAAIjtvB,KA95BzB,yBA+5Bb,EAEAstvB,EAAW1wvB,UAAUmzvB,UAAY,kBACzBrzvB,KAAKsyvB,YACb,EAEA1B,EAAW1wvB,UAAUyyvB,WAAa,SAAUW,GAE3C,GAAItzvB,KAAKwxvB,eAAepH,OAAQ,CAC/B,IAAImJ,EAAWD,EAAM1xvB,MAAM,KAC3B2xvB,EAAS,GAAK,MACdD,EAAQC,EAASvsuB,KAAK,IACvB,CACAhnB,KAAK6wvB,OAASyC,EACdtzvB,KAAKsxvB,WAAY,EAIbtxvB,KAAKwxvB,eAAenH,YAAc,EACrCrqvB,KAAKwwvB,OAAS,IAAInM,UAAUiP,EAAO,CAAC,aAEpCtzvB,KAAKwwvB,OAAS,IAAInM,UAAUiP,EAAO,CAAC,SAErCtzvB,KAAKwwvB,OAAOgD,WAAa,cACzBxzvB,KAAKwwvB,OAAO1J,OAAS94uB,EAAMhO,KAAKyzvB,gBAAiBzzvB,MACjDA,KAAKwwvB,OAAOxJ,UAAYh5uB,EAAMhO,KAAK0zvB,mBAAoB1zvB,MACvDA,KAAKwwvB,OAAO1xtB,QAAU9wB,EAAMhO,KAAK2zvB,iBAAkB3zvB,MACnDA,KAAKwwvB,OAAO3J,QAAU74uB,EAAMhO,KAAK4zvB,iBAAkB5zvB,MAEnDA,KAAK8xvB,WAAa,IAAI/B,EAAO/vvB,KAAMA,KAAKwxvB,eAAe1B,mBACvD9vvB,KAAK+xvB,cAAgB,IAAIhC,EAAO/vvB,KAAMA,KAAKwxvB,eAAe1B,mBACtD9vvB,KAAK6xvB,kBACR7xvB,KAAK6xvB,gBAAgB34e,SACrBl5Q,KAAK6xvB,gBAAkB,MAExB7xvB,KAAK6xvB,gBAAkB,IAAInB,EAAQ1wvB,KAAMA,KAAKwxvB,eAAelwnB,QAASthI,KAAKywvB,cAAgB,CAAChF,EAAMG,gBAAgB3kuB,KAAMrU,EAAO64uB,EAAMG,kBACtI,EAQAgF,EAAW1wvB,UAAU+yvB,kBAAoB,SAAUhzvB,GAElDD,KAAK+wvB,WAAW5oQ,QAAQlof,GAEpBD,KAAKsxvB,WACRtxvB,KAAK6zvB,gBAEP,EAEAjD,EAAW1wvB,UAAU0orB,MAAQ,SAASlqoB,EAAQgvsB,GAC7C,IAAIoG,EAAgB,CAAC7vvB,KAAKypvB,EAAYzpvB,KAAMgqvB,kBAAkBP,EAAYO,kBAAmBzvsB,QAAQ,GAErG,GAAOkvsB,EAAYzpvB,OACdqnvB,EAgCJ,MAAMnrvB,MAAMyS,EAAO64uB,EAAMgB,oBAAqB,CAAC/tsB,EAAO1+C,KAAK8wvB,UAAUpD,EAAYO,kBAAmB6F,KA/BjGpG,EAAYqG,iBACdD,EAAcC,gBAAiB,GAGhCD,EAAc1F,eAAiB,CAAC,EAGhC,IAFA,IAAIz+e,EAAM,GACNqkf,EAAetG,EAAYU,eAAeiB,aACrCruvB,EAAE,EAAGA,EAAEgzvB,EAAapzvB,OAAQI,IAChCgzvB,EAAahzvB,IAAM,GACtB2uQ,EAAMA,EAAI,IAAIqkf,EAAahzvB,GAAGO,SAAS,IAEvCouQ,GAAUqkf,EAAahzvB,GAAGO,SAAS,IAErCuyvB,EAAc1F,eAAe6F,WAAatkf,EAE1Cmkf,EAAc1F,eAAeP,IAAMH,EAAYU,eAAeP,IAC9DiG,EAAc1F,eAAelE,gBAAkBwD,EAAYU,eAAelE,gBACtEwD,EAAYU,eAAeD,YAC9B2F,EAAc1F,eAAeD,WAAY,GACtCT,EAAYU,eAAeF,WAC9B4F,EAAc1F,eAAeF,UAAW,GAGR,IAA5BxvsB,EAAOt9C,QAAQ,gBACWiH,IAAzBqlvB,EAAYzyW,WAChByyW,EAAYzyW,WAAaj7Y,KAAKqxvB,WAC/ByC,EAAc74W,SAAWyyW,EAAYzyW,UAOvCl5Y,EAAaC,QAAQ08C,EAAO1+C,KAAK8wvB,UAAUpD,EAAYO,kBAAmBvsvB,KAAKQ,UAAU4xvB,GAC1F,EAEAlD,EAAW1wvB,UAAUorF,QAAU,SAASrmE,GACvC,IAAIje,EAAQjF,EAAamB,QAAQ+hB,GAC7B6uuB,EAAgBpyvB,KAAKC,MAAMqF,GAE3B0mvB,EAAc,IAAIP,EAAY2G,EAAc7vvB,KAAM6vvB,GAEtD,GAAOA,EAAc7vvB,OAChBqnvB,EAuBJ,MAAMnrvB,MAAMyS,EAAO64uB,EAAMgB,oBAAqB,CAACxnuB,EAAKje,KAjBpD,IAJA,IAAI2oQ,EAAMmkf,EAAc1F,eAAe6F,WACnCt0tB,EAAS,IAAIF,YAAakwO,EAAI/uQ,OAAQ,GACtC+uvB,EAAa,IAAI7xtB,WAAW6B,GAC5B3+B,EAAI,EACD2uQ,EAAI/uQ,QAAU,GAAG,CACvB,IAAIuK,EAAIspB,SAASk7O,EAAIj1N,UAAU,EAAG,GAAI,IACtCi1N,EAAMA,EAAIj1N,UAAU,EAAGi1N,EAAI/uQ,QAC3B+uvB,EAAW3uvB,KAAOmK,CACnB,CACA,IAAIijvB,EAAiB,IAAI/C,EAASrhpB,QAAQ2lpB,GAC1CvB,EAAeP,IAAMiG,EAAc1F,eAAeP,IAClDO,EAAelE,gBAAkB4J,EAAc1F,eAAelE,gBAC1D4J,EAAc1F,eAAeD,YAChCC,EAAeD,WAAY,GACxB2F,EAAc1F,eAAeF,WAChCE,EAAeF,UAAW,GAC3BR,EAAYU,eAAiBA,EAQc,IAAxCnpuB,EAAI7jB,QAAQ,QAAQpB,KAAK8wvB,YAC5BpD,EAAYU,eAAeD,WAAY,EACvCnuvB,KAAKixvB,cAAcvD,EAAYO,mBAAqBP,GACE,IAA5CzouB,EAAI7jB,QAAQ,YAAYpB,KAAK8wvB,aACvC9wvB,KAAKkxvB,kBAAkBxD,EAAYO,mBAAqBP,EAE1D,EAEAkD,EAAW1wvB,UAAU2zvB,eAAiB,WAIrC,IAHA,IAAI5zvB,EAAU,KAGNA,EAAUD,KAAK+wvB,WAAWnxuB,OACjC5f,KAAKk0vB,aAAaj0vB,GAEdD,KAAKmxvB,iBAAiBlxvB,KACzBD,KAAKmxvB,iBAAiBlxvB,YACfD,KAAKmxvB,iBAAiBlxvB,GAGhC,EAOA2wvB,EAAW1wvB,UAAU8yvB,cAAgB,SAAUtF,GAC9C,IAAIyG,EAAep0uB,OAAOwE,KAAKvkB,KAAKixvB,eAAerwvB,OACnD,GAAIuzvB,EAAen0vB,KAAKuxvB,qBACvB,MAAMpxvB,MAAO,qBAAqBg0vB,GAEnC,UAAuD9rvB,IAAjDrI,KAAKixvB,cAAcjxvB,KAAKoxvB,sBAC7BpxvB,KAAKoxvB,sBAEN1D,EAAYO,kBAAoBjuvB,KAAKoxvB,oBACrCpxvB,KAAKixvB,cAAcvD,EAAYO,mBAAqBP,EAChDA,EAAYzpvB,OAASqnvB,GACxBtrvB,KAAK4orB,MAAM,QAAS8kE,GAEjB1tvB,KAAKoxvB,sBAAwBpxvB,KAAKuxvB,uBACrCvxvB,KAAKoxvB,oBAAsB,EAE7B,EAMAR,EAAW1wvB,UAAUuzvB,gBAAkB,WAEtC,IAAI/F,EAAc,IAAIP,EAAY7B,EAAsBtrvB,KAAKwxvB,gBAC7D9D,EAAYpE,SAAWtpvB,KAAKspvB,SAC5BtpvB,KAAKk0vB,aAAaxG,EACnB,EAMAkD,EAAW1wvB,UAAUwzvB,mBAAqB,SAAUnrvB,GACnDvI,KAAKuwvB,OAAO,4BAA6BhovB,EAAMoB,MAE/C,IADA,IAAIyiC,EAAWpsC,KAAKo0vB,iBAAiB7rvB,EAAMoB,MAClC3I,EAAI,EAAGA,EAAIorC,EAASxrC,OAAQI,GAAG,EACvChB,KAAKq0vB,eAAejotB,EAASprC,GAE/B,EAEA4vvB,EAAW1wvB,UAAUk0vB,iBAAmB,SAASzqvB,GAChD,IAAI+vG,EAAY,IAAI57E,WAAWn0B,GAC3ByiC,EAAW,GACf,GAAIpsC,KAAKqyvB,cAAe,CACvB,IAAIntc,EAAU,IAAIpnR,WAAW99B,KAAKqyvB,cAAczxvB,OAAO84G,EAAU94G,QACjEskT,EAAQloR,IAAIh9B,KAAKqyvB,eACjBntc,EAAQloR,IAAI08E,EAAU15G,KAAKqyvB,cAAczxvB,QACzC84G,EAAYwrM,SACLllT,KAAKqyvB,aACb,CACA,IAEC,IADA,IAAItssB,EAAS,EACPA,EAAS2zD,EAAU94G,QAAQ,CAChC,IAAIsE,EAASkovB,EAAc1zoB,EAAU3zD,GACjC2nsB,EAAcxovB,EAAO,GAEzB,GADA6gD,EAAS7gD,EAAO,GACI,OAAhBwovB,EAGH,MAFAthtB,EAASxqB,KAAK8ruB,EAIhB,CACI3nsB,EAAS2zD,EAAU94G,SACtBZ,KAAKqyvB,cAAgB34oB,EAAU/tE,SAASoa,GAE1C,CAAE,MAAOxhD,GACR,IAAI+vvB,EAAgD,aAAjC/vvB,EAAMq0B,eAAe,SAA2Br0B,EAAMo/B,MAAMpiC,WAAa,2BAE5F,YADAvB,KAAKywvB,cAAchF,EAAMO,eAAe/kuB,KAAOrU,EAAO64uB,EAAMO,eAAgB,CAACznvB,EAAMtE,QAAQq0vB,IAE5F,CACA,OAAOlotB,CACR,EAEAwktB,EAAW1wvB,UAAUm0vB,eAAiB,SAAS3G,GAE9C1tvB,KAAKuwvB,OAAO,wBAAyB7C,GAErC,IACC,OAAOA,EAAYzpvB,MACnB,KAAKqnvB,EAMJ,GALAtrvB,KAAK6xvB,gBAAgB34e,SACjBl5Q,KAAKkyvB,mBACRlyvB,KAAKkyvB,kBAAkBh5e,SAGpBl5Q,KAAKwxvB,eAAe3B,aAAc,CACrC,IAAK,IAAI5quB,KAAOjlB,KAAKixvB,cAAe,CACnC,IAAIsD,EAAcv0vB,KAAKixvB,cAAchsuB,GACrCljB,EAAaU,WAAW,QAAQzC,KAAK8wvB,UAAUyD,EAAYtG,kBAC5D,CAGA,IAAK,IAAIhpuB,KAFTjlB,KAAKixvB,cAAgB,CAAC,EAENjxvB,KAAKkxvB,kBAAmB,CACvC,IAAIsD,EAAkBx0vB,KAAKkxvB,kBAAkBjsuB,GAC7CljB,EAAaU,WAAW,YAAYzC,KAAK8wvB,UAAU0D,EAAgBvG,kBACpE,CACAjuvB,KAAKkxvB,kBAAoB,CAAC,CAC3B,CAEA,GAA+B,IAA3BxD,EAAYE,WAQT,CACN5tvB,KAAKywvB,cAAchF,EAAMQ,mBAAmBhluB,KAAOrU,EAAO64uB,EAAMQ,mBAAoB,CAACyB,EAAYE,WAAYf,EAAWa,EAAYE,eACpI,KACD,CATC5tvB,KAAKsxvB,WAAY,EAGbtxvB,KAAKwxvB,eAAekB,OACvB1yvB,KAAKyxvB,UAAYzxvB,KAAKwxvB,eAAekB,KAAK9xvB,QAQ5C,IAAI6zvB,EAAoB,GACxB,IAAK,IAAIC,KAAS10vB,KAAKixvB,cAClBjxvB,KAAKixvB,cAAcr4tB,eAAe87tB,IACrCD,EAAkB7yuB,KAAK5hB,KAAKixvB,cAAcyD,IAI5C,GAAI10vB,KAAKgxvB,oBAAoBpwvB,OAAS,EAErC,IADA,IAAI2sC,EAAM,KACFA,EAAMvtC,KAAKgxvB,oBAAoBpxuB,OACtC60uB,EAAkB7yuB,KAAK2rB,GACnBvtC,KAAK2xvB,qBACR3xvB,KAAKmxvB,iBAAiB5jtB,GAAOvtC,KAAK2xvB,mBAAmBpktB,EAAI6gtB,iBAKxDqG,EAAoBA,EAAkBrktB,MAAK,SAASrvC,EAAEy3B,GAAI,OAAOz3B,EAAEk6Y,SAAWziX,EAAEyiX,QAAS,IAC7F,IADA,IACSj6Y,EAAE,EAAGulB,EAAIkuuB,EAAkB7zvB,OAAQI,EAAEulB,EAAKvlB,IAElD,IADIuzvB,EAAcE,EAAkBzzvB,IACpBiD,MAAQqnvB,GAAwBiJ,EAAYR,eAAgB,CAC3E,IAAIY,EAAgB,IAAIxH,EAAY7B,EAAqB,CAAC2C,kBAAkBsG,EAAYtG,oBACxFjuvB,KAAKizvB,kBAAkB0B,EACxB,MACC30vB,KAAKizvB,kBAAkBsB,GAOrBv0vB,KAAKwxvB,eAAelH,WACvBtqvB,KAAKwxvB,eAAelH,UAAU,CAACwI,kBAAkB9yvB,KAAKwxvB,eAAesB,oBAGtE,IAAI8B,GAAc,EACd50vB,KAAKiyvB,gBACR2C,GAAc,EACd50vB,KAAKgyvB,mBAAqB,EAC1BhyvB,KAAKiyvB,eAAgB,GAItBjyvB,KAAK60vB,WAAWD,EAAa50vB,KAAK6wvB,QAGlC7wvB,KAAK6zvB,iBACL,MAED,KAAKvI,EACJtrvB,KAAK80vB,gBAAgBpH,GACrB,MAED,KAAKpC,GACAiJ,EAAcv0vB,KAAKixvB,cAAcvD,EAAYO,6BAGzCjuvB,KAAKixvB,cAAcvD,EAAYO,mBACtClsvB,EAAaU,WAAW,QAAQzC,KAAK8wvB,UAAUpD,EAAYO,mBACvDjuvB,KAAK2xvB,oBACR3xvB,KAAK2xvB,mBAAmB4C,EAAYnG,iBAEtC,MAED,KAAK9C,GACAiJ,EAAcv0vB,KAAKixvB,cAAcvD,EAAYO,sBAGhDsG,EAAYR,gBAAiB,EACzBY,EAAgB,IAAIxH,EAAY7B,EAAqB,CAAC2C,kBAAkBP,EAAYO,oBACxFjuvB,KAAK4orB,MAAM,QAAS2rE,GACpBv0vB,KAAKizvB,kBAAkB0B,IAExB,MAED,KAAKrJ,EACAkJ,EAAkBx0vB,KAAKkxvB,kBAAkBxD,EAAYO,mBACzDlsvB,EAAaU,WAAW,YAAYzC,KAAK8wvB,UAAUpD,EAAYO,mBAE3DuG,IACHx0vB,KAAK+0vB,gBAAgBP,UACdx0vB,KAAKkxvB,kBAAkBxD,EAAYO,oBAG3C,IAAI+G,EAAiB,IAAI7H,EAAY7B,EAAsB,CAAC2C,kBAAkBP,EAAYO,oBAC1FjuvB,KAAKizvB,kBAAkB+B,GAGvB,MAED,KAAK1J,EACAiJ,EAAcv0vB,KAAKixvB,cAAcvD,EAAYO,0BAC1CjuvB,KAAKixvB,cAAcvD,EAAYO,mBACtClsvB,EAAaU,WAAW,QAAQzC,KAAK8wvB,UAAUpD,EAAYO,mBACvDjuvB,KAAK2xvB,oBACR3xvB,KAAK2xvB,mBAAmB4C,EAAYnG,gBACrC,MAED,KAAK9C,GACAiJ,EAAcv0vB,KAAKixvB,cAAcvD,EAAYO,sBAE7CsG,EAAYxB,SACdwB,EAAYxB,QAAQ75e,SAEa,MAA9Bw0e,EAAYE,WAAW,GACtB2G,EAAYhK,WACfgK,EAAYhK,UAAUmD,EAAYE,YAEzB2G,EAAYjK,WACtBiK,EAAYjK,UAAUoD,EAAYE,mBAE5B5tvB,KAAKixvB,cAAcvD,EAAYO,oBAEvC,MAED,KAAK3C,GACAiJ,EAAcv0vB,KAAKixvB,cAAcvD,EAAYO,sBAE5CsG,EAAYxB,SACfwB,EAAYxB,QAAQ75e,SACjBq7e,EAAYhsoB,UACfgsoB,EAAYhsoB,kBAENvoH,KAAKixvB,cAAcvD,EAAYO,oBAGvC,MAED,KAAK3C,EAEJtrvB,KAAK8xvB,WAAWn6tB,QAChB,MAOD,QACC33B,KAAKywvB,cAAchF,EAAMiB,0BAA0BzluB,KAAOrU,EAAO64uB,EAAMiB,0BAA2B,CAACgB,EAAYzpvB,QAEjH,CAAE,MAAOM,GACR,IAAI+vvB,EAAgD,aAAjC/vvB,EAAMq0B,eAAe,SAA2Br0B,EAAMo/B,MAAMpiC,WAAa,2BAE5F,YADAvB,KAAKywvB,cAAchF,EAAMO,eAAe/kuB,KAAOrU,EAAO64uB,EAAMO,eAAgB,CAACznvB,EAAMtE,QAAQq0vB,IAE5F,CACD,EAGA1D,EAAW1wvB,UAAUyzvB,iBAAmB,SAAUpvvB,GAC5CvE,KAAKiyvB,eACTjyvB,KAAKywvB,cAAchF,EAAMS,aAAajluB,KAAOrU,EAAO64uB,EAAMS,aAAc,CAAC3nvB,EAAMoF,OAEjF,EAGAinvB,EAAW1wvB,UAAU0zvB,iBAAmB,WAClC5zvB,KAAKiyvB,eACTjyvB,KAAKywvB,cAAchF,EAAMU,aAAalluB,KAAOrU,EAAO64uB,EAAMU,cAE5D,EAGAyE,EAAW1wvB,UAAUg0vB,aAAe,SAAUxG,GAE7C,GAAwB,GAApBA,EAAYzpvB,KAAW,CAC1B,IAAIgxvB,EAAoBj1vB,KAAKyyvB,WAAW/E,EAAa,YACrD1tvB,KAAKuwvB,OAAO,sBAAuB0E,EACpC,MACKj1vB,KAAKuwvB,OAAO,sBAAuB7C,GAExC1tvB,KAAKwwvB,OAAO7jrB,KAAK+grB,EAAYtttB,UAE7BpgC,KAAK8xvB,WAAWn6tB,OACjB,EAGAi5tB,EAAW1wvB,UAAU40vB,gBAAkB,SAAUpH,GAChD,OAAOA,EAAYU,eAAeP,KAClC,IAAK,YACL,KAAK,EACJ7tvB,KAAK+0vB,gBAAgBrH,GACrB,MAED,KAAK,EACJ,IAAIwH,EAAgB,IAAI/H,EAAY7B,EAAqB,CAAC2C,kBAAkBP,EAAYO,oBACxFjuvB,KAAKizvB,kBAAkBiC,GACvBl1vB,KAAK+0vB,gBAAgBrH,GACrB,MAED,KAAK,EACJ1tvB,KAAKkxvB,kBAAkBxD,EAAYO,mBAAqBP,EACxD1tvB,KAAK4orB,MAAM,YAAa8kE,GACxB,IAAIyH,EAAgB,IAAIhI,EAAY7B,EAAqB,CAAC2C,kBAAkBP,EAAYO,oBACxFjuvB,KAAKizvB,kBAAkBkC,GAEvB,MAED,QACC,MAAMh1vB,MAAM,eAAiButvB,EAAYU,eAAeP,KAE1D,EAGA+C,EAAW1wvB,UAAU60vB,gBAAkB,SAAUrH,GAC5C1tvB,KAAKiqvB,kBACRjqvB,KAAKiqvB,iBAAiByD,EAAYU,eAEpC,EAOAwC,EAAW1wvB,UAAU20vB,WAAa,SAAUO,EAAW72iB,GAElDv+M,KAAK0xvB,aACR1xvB,KAAK0xvB,YAAY0D,EAAW72iB,EAC9B,EAOAqyiB,EAAW1wvB,UAAUm1vB,WAAa,WACjCr1vB,KAAKuwvB,OAAO,qBACPvwvB,KAAKsxvB,YACTtxvB,KAAKiyvB,eAAgB,EACrBjyvB,KAAK8xvB,WAAW54e,SAChBl5Q,KAAK+xvB,cAAc74e,SACfl5Q,KAAKgyvB,mBAAqB,MAC7BhyvB,KAAKgyvB,mBAA+C,EAA1BhyvB,KAAKgyvB,oBAC5BhyvB,KAAKwxvB,eAAekB,MACvB1yvB,KAAKyxvB,UAAY,EACjBzxvB,KAAK2yvB,WAAW3yvB,KAAKwxvB,eAAekB,KAAK,KAEzC1yvB,KAAK2yvB,WAAW3yvB,KAAKu+M,KAGxB,EASAqyiB,EAAW1wvB,UAAUuwvB,cAAgB,SAAU/iqB,EAAW4nqB,GAGzD,GAFAt1vB,KAAKuwvB,OAAO,uBAAwB7iqB,EAAW4nqB,QAE7BjtvB,IAAdqlF,GAA2B1tF,KAAKiyvB,cAEnCjyvB,KAAKkyvB,kBAAoB,IAAIxB,EAAQ1wvB,KAAMA,KAAKgyvB,mBAAoBhyvB,KAAKq1vB,iBA2B1E,GAvBAr1vB,KAAK8xvB,WAAW54e,SAChBl5Q,KAAK+xvB,cAAc74e,SACfl5Q,KAAK6xvB,kBACR7xvB,KAAK6xvB,gBAAgB34e,SACrBl5Q,KAAK6xvB,gBAAkB,MAIxB7xvB,KAAK+wvB,WAAa,GAClB/wvB,KAAKgxvB,oBAAsB,GAC3BhxvB,KAAKmxvB,iBAAmB,CAAC,EAErBnxvB,KAAKwwvB,SAERxwvB,KAAKwwvB,OAAO1J,OAAS,KACrB9mvB,KAAKwwvB,OAAOxJ,UAAY,KACxBhnvB,KAAKwwvB,OAAO1xtB,QAAU,KACtB9+B,KAAKwwvB,OAAO3J,QAAU,KACS,IAA3B7mvB,KAAKwwvB,OAAOjijB,YACfvuM,KAAKwwvB,OAAOtmsB,eACNlqD,KAAKwwvB,QAGTxwvB,KAAKwxvB,eAAekB,MAAQ1yvB,KAAKyxvB,UAAYzxvB,KAAKwxvB,eAAekB,KAAK9xvB,OAAO,EAEhFZ,KAAKyxvB,YACLzxvB,KAAK2yvB,WAAW3yvB,KAAKwxvB,eAAekB,KAAK1yvB,KAAKyxvB,iBAS9C,QANkBppvB,IAAdqlF,IACHA,EAAY+9pB,EAAME,GAAG1kuB,KACrBquuB,EAAY1ivB,EAAO64uB,EAAME,KAItB3rvB,KAAKsxvB,WAMR,GALAtxvB,KAAKsxvB,WAAY,EAEbtxvB,KAAK+pvB,kBACR/pvB,KAAK+pvB,iBAAiB,CAACr8pB,UAAUA,EAAWq7pB,aAAauM,EAAWF,UAAUp1vB,KAAKwxvB,eAAe4D,UAAW72iB,IAAIv+M,KAAK6wvB,SAEnHnjqB,IAAc+9pB,EAAME,GAAG1kuB,MAAQjnB,KAAKwxvB,eAAe4D,UAItD,OAFAp1vB,KAAKgyvB,mBAAqB,OAC1BhyvB,KAAKq1vB,kBAKkC,IAApCr1vB,KAAKwxvB,eAAenH,cAAiE,IAA5CrqvB,KAAKwxvB,eAAe+D,qBAChEv1vB,KAAKuwvB,OAAO,6CACZvwvB,KAAKwxvB,eAAenH,YAAc,EAC9BrqvB,KAAKwxvB,eAAekB,MACvB1yvB,KAAKyxvB,UAAY,EACjBzxvB,KAAK2yvB,WAAW3yvB,KAAKwxvB,eAAekB,KAAK,KAEzC1yvB,KAAK2yvB,WAAW3yvB,KAAKu+M,MAEbv+M,KAAKwxvB,eAAejH,WAC7BvqvB,KAAKwxvB,eAAejH,UAAU,CAACuI,kBAAkB9yvB,KAAKwxvB,eAAesB,kBAAmBplqB,UAAUA,EAAWq7pB,aAAauM,GAI9H,EAGA1E,EAAW1wvB,UAAUqwvB,OAAS,WAE7B,GAAIvwvB,KAAK4xvB,cAAe,CACvB,IAAInpuB,EAAOnG,MAAMpiB,UAAUkmB,MAAMN,KAAKhB,WACtC,IAAK,IAAI9jB,KAAKynB,EAEU,qBAAZA,EAAKznB,IACfynB,EAAKqG,OAAO9tB,EAAG,EAAGU,KAAKQ,UAAUumB,EAAKznB,KAExC,IAAIwiuB,EAAS/6sB,EAAKzB,KAAK,IACvBhnB,KAAK4xvB,cAAe,CAAC1+uB,SAAU,QAASjT,QAASujuB,GAClD,CAGA,GAA2B,OAAtBxjuB,KAAKsyvB,aACJ,CAAItxvB,EAAI,EAAb,IAAK,IAAWgiD,EAAMl+B,UAAUlkB,OAAQI,EAAIgiD,EAAKhiD,IAC3ChB,KAAKsyvB,aAAa1xvB,QAAUZ,KAAKuyvB,oBACrCvyvB,KAAKsyvB,aAAar2tB,QAET,IAANj7B,GAC6B,qBAAjB8jB,UAAU9jB,GADbhB,KAAKsyvB,aAAa1wuB,KAAKkD,UAAU9jB,IAEzChB,KAAKsyvB,aAAa1wuB,KAAK,KAAKlgB,KAAKQ,UAAU4iB,UAAU9jB,IAN3BJ,CASlC,EAGAgwvB,EAAW1wvB,UAAUuyvB,WAAa,SAAU+C,EAAaC,GACxD,IAAIC,EAAoB,CAAC,EACzB,IAAK,IAAI7+e,KAAQ2+e,EACZA,EAAY58tB,eAAei+O,KAE7B6+e,EAAkB7+e,GADfA,GAAQ4+e,EACe,SAEAD,EAAY3+e,IAGzC,OAAO6+e,CACR,EA2EA,IAojBI1rpB,EAAU,SAAU2rpB,GACvB,IAAIzxvB,EAUAgmvB,EATJ,KAA6B,kBAAfyL,GACfA,aAAsBl2tB,aACrBA,YAAYC,OAAOi2tB,MAAiBA,aAAsBjstB,WAIzD,MAAO92B,EAAO64uB,EAAMc,iBAAkB,CAACoJ,EAAY,eAFnDzxvB,EAAUyxvB,EAMX,IAAI9H,EAAM,EACNK,GAAW,EACXC,GAAY,EAEhBpuuB,OAAOqF,iBAAiBplB,KAAK,CAC5B,cAAgB,CACfmgB,YAAa,EACbL,IAAM,WACL,MAAuB,kBAAZ5b,EACHA,EAEA8pvB,EAAU9pvB,EAAS,EAAGA,EAAQtD,OACvC,GAED,aAAe,CACduf,YAAY,EACZL,IAAK,WACJ,GAAuB,kBAAZ5b,EAAsB,CAChC,IAAIy7B,EAAS,IAAIF,YAAYgvtB,EAAWvqvB,IACpCyrvB,EAAa,IAAI7xtB,WAAW6B,GAGhC,OAFA6utB,EAAatqvB,EAASyrvB,EAAY,GAE3BA,CACR,CACC,OAAOzrvB,CAET,GAED,gBAAkB,CACjBic,YAAY,EACZL,IAAK,WAAa,OAAOoquB,CAAiB,EAC1ClttB,IAAK,SAAS44tB,GACb,GAAkC,kBAAvBA,EAGV,MAAM,IAAIz1vB,MAAMyS,EAAO64uB,EAAMc,iBAAkB,CAACqJ,EAAoB,wBAFpE1L,EAAkB0L,CAGpB,GAED,IAAM,CACLz1uB,YAAY,EACZL,IAAK,WAAa,OAAO+tuB,CAAK,EAC9B7wtB,IAAK,SAAS64tB,GACb,GAAe,IAAXA,GAA2B,IAAXA,GAA2B,IAAXA,EAGnC,MAAM,IAAI11vB,MAAM,oBAAoB01vB,GAFpChI,EAAMgI,CAGR,GAED,SAAW,CACV11uB,YAAY,EACZL,IAAK,WAAa,OAAOouuB,CAAU,EACnClxtB,IAAK,SAAS84tB,GACb,GAA2B,mBAAhBA,EAGV,MAAM,IAAI31vB,MAAMyS,EAAO64uB,EAAMc,iBAAkB,CAACuJ,EAAa,iBAF7D5H,EAAW4H,CAGb,GAED,MAAQ,CACP31uB,YAAY,EACZL,IAAK,WAAa,OAAOoquB,CAAiB,EAC1ClttB,IAAK,SAAS+4tB,GAAW7L,EAAgB6L,CAAS,GAEnD,UAAY,CACX51uB,YAAY,EACZL,IAAK,WAAa,OAAOquuB,CAAW,EACpCnxtB,IAAK,SAASg5tB,GAAe7H,EAAU6H,CAAa,IAGvD,EAGA,MAAO,CACN3hjB,OAzoBY,SAAUltK,EAAMD,EAAM1nB,EAAM8puB,GAExC,IAAI/qiB,EAEJ,GAAoB,kBAATp3K,EACV,MAAM,IAAIhnC,MAAMyS,EAAO64uB,EAAMC,aAAc,QAAQvktB,EAAM,UAE1D,GAAwB,GAApBriB,UAAUlkB,OAAa,CAG1B0ovB,EAAWpitB,EAEX,IAAIi8E,GADJo7F,EAAMp3K,GACUg8E,MAAM,sDACtB,IAAIA,EAKH,MAAM,IAAIhjH,MAAMyS,EAAO64uB,EAAMc,iBAAiB,CAACpltB,EAAK,UAJpDA,EAAOg8E,EAAM,IAAIA,EAAM,GACvBj8E,EAAOzS,SAAS0uF,EAAM,IACtB3jG,EAAO2jG,EAAM,EAIf,KAAO,CAKN,GAJwB,GAApBr+F,UAAUlkB,SACb0ovB,EAAW9puB,EACXA,EAAO,SAEY,kBAAT0nB,GAAqBA,EAAO,EACtC,MAAM,IAAI/mC,MAAMyS,EAAO64uB,EAAMC,aAAc,QAAQxktB,EAAM,UAC1D,GAAoB,kBAAT1nB,EACV,MAAM,IAAIrf,MAAMyS,EAAO64uB,EAAMC,aAAc,QAAQlsuB,EAAM,UAE1D,IAAIy2uB,GAA0C,IAAvB9utB,EAAK/lC,QAAQ,MAAmC,MAApB+lC,EAAK/gB,MAAM,EAAE,IAAiC,MAAnB+gB,EAAK/gB,OAAO,GAC1Fm4L,EAAM,SAAS03iB,EAAgB,IAAI9utB,EAAK,IAAIA,GAAM,IAAID,EAAK1nB,CAC5D,CAGA,IADA,IAAI02uB,EAAiB,EACZl1vB,EAAI,EAAGA,EAAEsovB,EAAS1ovB,OAAQI,IAAK,CACvC,IAAI0tvB,EAAWpF,EAAShovB,WAAWN,GAC/B,OAAU0tvB,GAAYA,GAAY,OACrC1tvB,IAEDk1vB,GACD,CACA,GAAwB,kBAAb5M,GAAyB4M,EAAiB,MACpD,MAAM,IAAI/1vB,MAAMyS,EAAO64uB,EAAMc,iBAAkB,CAACjD,EAAU,cAE3D,IAAI58qB,EAAS,IAAIkkrB,EAAWryiB,EAAKp3K,EAAMD,EAAM1nB,EAAM8puB,GAGnDvpuB,OAAOqF,iBAAiBplB,KAAK,CAC5B,KAAO,CACN8f,IAAK,WAAa,OAAOqnB,CAAM,EAC/BnK,IAAK,WAAa,MAAM,IAAI78B,MAAMyS,EAAO64uB,EAAMe,uBAAyB,GAEzE,KAAO,CACN1suB,IAAK,WAAa,OAAOonB,CAAM,EAC/BlK,IAAK,WAAa,MAAM,IAAI78B,MAAMyS,EAAO64uB,EAAMe,uBAAyB,GAEzE,KAAO,CACN1suB,IAAK,WAAa,OAAON,CAAM,EAC/Bwd,IAAK,WAAa,MAAM,IAAI78B,MAAMyS,EAAO64uB,EAAMe,uBAAyB,GAEzE,IAAM,CACL1suB,IAAK,WAAa,OAAOy+L,CAAK,EAC9BvhL,IAAK,WAAa,MAAM,IAAI78B,MAAMyS,EAAO64uB,EAAMe,uBAAyB,GAEzE,SAAW,CACV1suB,IAAK,WAAa,OAAO4sD,EAAO48qB,QAAU,EAC1CtstB,IAAK,WAAa,MAAM,IAAI78B,MAAMyS,EAAO64uB,EAAMe,uBAAyB,GAEzE,YAAc,CACb1suB,IAAK,WAAa,OAAO4sD,EAAOglrB,WAAa,EAC7C10tB,IAAK,SAASm5tB,GACb,GAA8B,oBAAnBA,EAGV,MAAM,IAAIh2vB,MAAMyS,EAAO64uB,EAAMC,aAAc,QAAQyK,EAAgB,iBAFnEzprB,EAAOglrB,YAAcyE,CAGvB,GAED,uBAAyB,CACxBr2uB,IAAK,WAAa,OAAO4sD,EAAOylrB,sBAAwB,EACxDn1tB,IAAK,SAASo5tB,GACb1prB,EAAOylrB,uBAAyBiE,CACjC,GAED,uBAAyB,CACxBt2uB,IAAK,WAAa,OAAO4sD,EAAO0lrB,sBAAwB,EACxDp1tB,IAAK,SAASq5tB,GACb3prB,EAAO0lrB,uBAAyBiE,CACjC,GAED,iBAAmB,CAClBv2uB,IAAK,WAAa,OAAO4sD,EAAOq9qB,gBAAkB,EAClD/stB,IAAK,SAASs5tB,GACb,GAAmC,oBAAxBA,EAGV,MAAM,IAAIn2vB,MAAMyS,EAAO64uB,EAAMC,aAAc,QAAQ4K,EAAqB,sBAFxE5prB,EAAOq9qB,iBAAmBuM,CAG5B,GAED,mBAAqB,CACpBx2uB,IAAK,WAAa,OAAO4sD,EAAOilrB,kBAAoB,EACpD30tB,IAAK,SAASu5tB,GACb,GAAqC,oBAA1BA,EAGV,MAAM,IAAIp2vB,MAAMyS,EAAO64uB,EAAMC,aAAc,QAAQ6K,EAAuB,wBAF1E7prB,EAAOilrB,mBAAqB4E,CAG9B,GAED,iBAAmB,CAClBz2uB,IAAK,WAAa,OAAO4sD,EAAOu9qB,gBAAkB,EAClDjttB,IAAK,SAASw5tB,GACb,GAAmC,oBAAxBA,EAGV,MAAM,IAAIr2vB,MAAMyS,EAAO64uB,EAAMC,aAAc,QAAQ8K,EAAqB,sBAFxE9prB,EAAOu9qB,iBAAmBuM,CAG5B,GAED,MAAQ,CACP12uB,IAAK,WAAa,OAAO4sD,EAAOklrB,aAAe,EAC/C50tB,IAAK,SAAS6iK,GACb,GAAoB,oBAAVA,EAGT,MAAM,IAAI1/L,MAAMyS,EAAO64uB,EAAMC,aAAc,QAAQ7rjB,EAAO,aAF1DnzH,EAAOklrB,cAAgB/xjB,CAIzB,KAkEF7/L,KAAKmqvB,QAAU,SAAUqH,GAuBxB,GArBAxrsB,EADAwrsB,EAAiBA,GAAkB,CAAC,EACV,CAAClwnB,QAAQ,SAClCgunB,SAAS,SACTvqvB,SAAS,SACTqqvB,YAAY,SACZU,kBAAkB,SAClBD,aAAa,UACbzF,OAAO,UACP0I,kBAAkB,SAClBxI,UAAU,WACVC,UAAU,WACVkM,MAAM,SACNC,MAAM,SACNtB,UAAU,UACV/K,YAAY,SACZkL,oBAAoB,UACpB7C,KAAM,gBAGkCrqvB,IAArCmpvB,EAAe1B,oBAClB0B,EAAe1B,kBAAoB,IAEhC0B,EAAenH,YAAc,GAAKmH,EAAenH,YAAc,EAClE,MAAM,IAAIlqvB,MAAMyS,EAAO64uB,EAAMc,iBAAkB,CAACiF,EAAenH,YAAa,gCAW7E,QARmChivB,IAA/BmpvB,EAAenH,aAClBmH,EAAe+D,qBAAsB,EACrC/D,EAAenH,YAAc,GAE7BmH,EAAe+D,qBAAsB,OAINltvB,IAA5BmpvB,EAAezsvB,eAAsDsD,IAA5BmpvB,EAAelC,SAC3D,MAAM,IAAInvvB,MAAMyS,EAAO64uB,EAAMc,iBAAkB,CAACiF,EAAezsvB,SAAU,6BAE1E,GAAIysvB,EAAepC,YAAa,CAC/B,KAAMoC,EAAepC,uBAAuBplpB,GAC3C,MAAM,IAAI7pG,MAAMyS,EAAO64uB,EAAMC,aAAc,CAAC8F,EAAepC,YAAa,gCAKzE,GAFAoC,EAAepC,YAAYuH,cAAgB,KAEe,qBAA/CnF,EAAepC,YAAYlF,gBACrC,MAAM,IAAI/pvB,MAAMyS,EAAO64uB,EAAMC,aAAc,QAAQ8F,EAAepC,YAAYlF,gBAAiB,+CACjG,CAGA,GAF2C,qBAAhCsH,EAAe3B,eACzB2B,EAAe3B,cAAe,GAC3B2B,EAAeiF,MAAO,CAEzB,KAAMjF,EAAeiF,iBAAiBn0uB,OACrC,MAAM,IAAIniB,MAAMyS,EAAO64uB,EAAMc,iBAAkB,CAACiF,EAAeiF,MAAO,0BACvE,GAAIjF,EAAeiF,MAAM71vB,OAAQ,EAChC,MAAM,IAAIT,MAAMyS,EAAO64uB,EAAMc,iBAAkB,CAACiF,EAAeiF,MAAO,0BAGvE,IADA,IAAIG,GAAY,EACP51vB,EAAI,EAAGA,EAAEwwvB,EAAeiF,MAAM71vB,OAAQI,IAAK,CACnD,GAAuC,kBAA5BwwvB,EAAeiF,MAAMz1vB,GAC/B,MAAM,IAAIb,MAAMyS,EAAO64uB,EAAMC,aAAc,QAAQ8F,EAAeiF,MAAMz1vB,GAAI,wBAAwBA,EAAE,OACvG,GAAI,qDAAqDslB,KAAKkruB,EAAeiF,MAAMz1vB,KAClF,GAAU,IAANA,EACH41vB,GAAY,OACN,IAAKA,EACX,MAAM,IAAIz2vB,MAAMyS,EAAO64uB,EAAMc,iBAAkB,CAACiF,EAAeiF,MAAMz1vB,GAAI,wBAAwBA,EAAE,YAE9F,GAAI41vB,EACV,MAAM,IAAIz2vB,MAAMyS,EAAO64uB,EAAMc,iBAAkB,CAACiF,EAAeiF,MAAMz1vB,GAAI,wBAAwBA,EAAE,MAErG,CAEA,GAAK41vB,EAqBJpF,EAAekB,KAAOlB,EAAeiF,UArBtB,CACf,IAAKjF,EAAekF,MACnB,MAAM,IAAIv2vB,MAAMyS,EAAO64uB,EAAMc,iBAAkB,CAACiF,EAAekF,MAAO,0BACvE,KAAMlF,EAAekF,iBAAiBp0uB,OACrC,MAAM,IAAIniB,MAAMyS,EAAO64uB,EAAMc,iBAAkB,CAACiF,EAAekF,MAAO,0BACvE,GAAIlF,EAAeiF,MAAM71vB,SAAW4wvB,EAAekF,MAAM91vB,OACxD,MAAM,IAAIT,MAAMyS,EAAO64uB,EAAMc,iBAAkB,CAACiF,EAAekF,MAAO,0BAIvE,IAFAlF,EAAekB,KAAO,GAEb1xvB,EAAI,EAAGA,EAAEwwvB,EAAeiF,MAAM71vB,OAAQI,IAAK,CACnD,GAAuC,kBAA5BwwvB,EAAekF,MAAM11vB,IAAmBwwvB,EAAekF,MAAM11vB,GAAK,EAC5E,MAAM,IAAIb,MAAMyS,EAAO64uB,EAAMC,aAAc,QAAQ8F,EAAekF,MAAM11vB,GAAI,wBAAwBA,EAAE,OACvG,IAAImmC,EAAOqqtB,EAAeiF,MAAMz1vB,GAC5BkmC,EAAOsqtB,EAAekF,MAAM11vB,GAE5B61vB,GAA+B,IAAvB1vtB,EAAK/lC,QAAQ,KACzBm9M,EAAM,SAASs4iB,EAAK,IAAI1vtB,EAAK,IAAIA,GAAM,IAAID,EAAK1nB,EAChDgyuB,EAAekB,KAAK9wuB,KAAK28L,EAC1B,CACD,CAGD,CAEA7xI,EAAOy9qB,QAAQqH,EAChB,EAkCAxxvB,KAAKk1L,UAAY,SAAUzgL,EAAQm+uB,GAClC,GAAsB,kBAAXn+uB,EACV,MAAM,IAAItU,MAAM,oBAAoBsU,GAQrC,GANAuxC,EADA4ssB,EAAmBA,GAAoB,CAAC,EACZ,CAAC/E,IAAI,SAChCiF,kBAAkB,SAClBxI,UAAU,WACVC,UAAU,WACVjpnB,QAAQ,WAELsxnB,EAAiBtxnB,UAAYsxnB,EAAiBrI,UACjD,MAAM,IAAIpqvB,MAAM,kEACjB,GAAoC,qBAAzByyvB,EAAiB/E,KAAkD,IAAzB+E,EAAiB/E,KAAsC,IAAzB+E,EAAiB/E,KAAsC,IAAzB+E,EAAiB/E,IACjI,MAAM,IAAI1tvB,MAAMyS,EAAO64uB,EAAMc,iBAAkB,CAACqG,EAAiB/E,IAAK,0BACvEnhrB,EAAOwoH,UAAUzgL,EAAQm+uB,EAC1B,EA8BA5yvB,KAAKumuB,YAAc,SAAU9xtB,EAAQy+uB,GACpC,GAAsB,kBAAXz+uB,EACV,MAAM,IAAItU,MAAM,oBAAoBsU,GAOrC,GALAuxC,EADAktsB,EAAqBA,GAAsB,CAAC,EACd,CAACJ,kBAAkB,SAChDxI,UAAU,WACVC,UAAU,WACVjpnB,QAAQ,WAEL4xnB,EAAmB5xnB,UAAY4xnB,EAAmB3I,UACrD,MAAM,IAAIpqvB,MAAM,oEACjBusE,EAAO65pB,YAAY9xtB,EAAQy+uB,EAC5B,EAwBAlzvB,KAAK2sE,KAAO,SAAU47qB,EAAMrkvB,EAAQ2pvB,EAAIK,GACvC,IAAIjuvB,EAEJ,GAAwB,IAArB6kB,UAAUlkB,OACZ,MAAM,IAAIT,MAAM,2BAEX,GAAuB,GAApB2kB,UAAUlkB,OAAa,CAE/B,KAAM2nvB,aAAiBv+oB,IAA8B,kBAAVu+oB,EAC1C,MAAM,IAAIpovB,MAAM,2BAA4BoovB,GAG7C,GAAuC,qBADvCtovB,EAAUsovB,GACS2B,gBAClB,MAAM,IAAI/pvB,MAAMyS,EAAO64uB,EAAMc,iBAAiB,CAACtsvB,EAAQiqvB,gBAAgB,6BACxEx9qB,EAAOC,KAAK1sE,EAEb,MAECA,EAAU,IAAI+pG,EAAQ9lG,IACdgmvB,gBAAkB3B,EACvBzjuB,UAAUlkB,QAAU,IACtBX,EAAQ4tvB,IAAMA,GACZ/ouB,UAAUlkB,QAAU,IACtBX,EAAQiuvB,SAAWA,GACpBxhrB,EAAOC,KAAK1sE,EAEd,EAyBAD,KAAK82vB,QAAU,SAASvO,EAAMrkvB,EAAQ2pvB,EAAIK,GACzC,IAAIjuvB,EAEJ,GAAwB,IAArB6kB,UAAUlkB,OACZ,MAAM,IAAIT,MAAM,2BAEX,GAAuB,GAApB2kB,UAAUlkB,OAAa,CAE/B,KAAM2nvB,aAAiBv+oB,IAA8B,kBAAVu+oB,EAC1C,MAAM,IAAIpovB,MAAM,2BAA4BoovB,GAG7C,GAAuC,qBADvCtovB,EAAUsovB,GACS2B,gBAClB,MAAM,IAAI/pvB,MAAMyS,EAAO64uB,EAAMc,iBAAiB,CAACtsvB,EAAQiqvB,gBAAgB,6BACxEx9qB,EAAOC,KAAK1sE,EAEb,MAECA,EAAU,IAAI+pG,EAAQ9lG,IACdgmvB,gBAAkB3B,EACvBzjuB,UAAUlkB,QAAU,IACtBX,EAAQ4tvB,IAAMA,GACZ/ouB,UAAUlkB,QAAU,IACtBX,EAAQiuvB,SAAWA,GACpBxhrB,EAAOC,KAAK1sE,EAEd,EASAD,KAAKmnJ,WAAa,WACjBz6E,EAAOy6E,YACR,EASAnnJ,KAAKmzvB,YAAc,WAClB,OAAOzmrB,EAAOymrB,aACf,EAQAnzvB,KAAKozvB,WAAa,WACjB1mrB,EAAO0mrB,YACR,EAQApzvB,KAAKqzvB,UAAY,WAChB3mrB,EAAO2mrB,WACR,EAEArzvB,KAAK2pvB,YAAc,WAClB,OAAOj9qB,EAAO4krB,SACf,CACD,EA0HCtnpB,QAASA,EAGX,CAlvEgB,CAkvEK,qBAAXi7F,EAAAA,EAAyBA,EAAAA,EAAyB,qBAATphF,KAAuBA,KAAyB,qBAAXvjH,OAAyBA,OAAS,CAAC,GAC3H,OAAO+qvB,CACR,EAlwEEpmiB,EAAOrtL,QAAUsqiB,uCCgEnB,SAAS7jW,IACP,IAAIh+N,EACJ,IACEA,EAAIu3B,EAAQm/tB,QAAQ56sB,KACtB,CAAE,MAAMp8C,GAAI,CAOZ,OAJKM,GAAwB,qBAAZ0+B,GAA2B,QAASA,IACnD1+B,EAAI0+B,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYw5gB,OAGXl4iB,CACT,EA3JAu3B,EAAUqtL,EAAOrtL,QAAU,EAAjBqtL,QACFn/M,IA8GR,WAGE,MAAO,kBAAoBxB,SACtBA,QAAQwB,KACR+1L,SAAS37L,UAAU0kB,MAAMkB,KAAKxhB,QAAQwB,IAAKxB,QAASwgB,UAC3D,EAnHA8S,EAAQo/tB,WAqER,SAAoBvuuB,GAClB,IAAIwuuB,EAAYj3vB,KAAKi3vB,UASrB,GAPAxuuB,EAAK,IAAMwuuB,EAAY,KAAO,IAC1Bj3vB,KAAK8qvB,WACJmM,EAAY,MAAQ,KACrBxuuB,EAAK,IACJwuuB,EAAY,MAAQ,KACrB,IAAMr/tB,EAAQs/tB,SAASl3vB,KAAKs6J,OAE3B28lB,EAAW,OAEhB,IAAIh2vB,EAAI,UAAYjB,KAAKoI,MACzBqgB,EAAKqG,OAAO,EAAG,EAAG7tB,EAAG,kBAKrB,IAAImyB,EAAQ,EACR+juB,EAAQ,EACZ1uuB,EAAK,GAAG9nB,QAAQ,eAAe,SAASwiH,GAClC,OAASA,IACb/vF,IACI,OAAS+vF,IAGXg0oB,EAAQ/juB,GAEZ,IAEA3K,EAAKqG,OAAOqouB,EAAO,EAAGl2vB,EACxB,EAnGA22B,EAAQyiP,KA2HR,SAAc+8e,GACZ,IACM,MAAQA,EACVx/tB,EAAQm/tB,QAAQt0vB,WAAW,SAE3Bm1B,EAAQm/tB,QAAQ56sB,MAAQi7sB,CAE5B,CAAE,MAAMr3vB,GAAI,CACd,EAlIA63B,EAAQymM,KAAOA,EACfzmM,EAAQq/tB,UA2BR,WAIE,GAAsB,qBAAX32vB,QAA0BA,OAAOy+B,SAAmC,aAAxBz+B,OAAOy+B,QAAQ96B,KACpE,OAAO,EAKT,MAA4B,qBAAbwpB,UAA4BA,SAASumG,iBAAmBvmG,SAASumG,gBAAgBpiH,OAAS6b,SAASumG,gBAAgBpiH,MAAM04H,kBAEnH,qBAAXhqI,QAA0BA,OAAOgE,UAAYhE,OAAOgE,QAAQ+yvB,SAAY/2vB,OAAOgE,QAAQ2jD,WAAa3nD,OAAOgE,QAAQw7G,QAGrG,qBAAd1vF,WAA6BA,UAAUD,WAAaC,UAAUD,UAAUtQ,cAAcsjG,MAAM,mBAAqB1uF,SAASijB,OAAO4/sB,GAAI,KAAO,IAE9H,qBAAdlnuB,WAA6BA,UAAUD,WAAaC,UAAUD,UAAUtQ,cAAcsjG,MAAM,qBACxG,EA5CAvrF,EAAQm/tB,QAAU,oBAAsB/of,QACtB,oBAAsBA,OAAO+of,QAC3B/of,OAAO+of,QAAQpvB,MAsKnC,WACE,IACE,OAAOrnuB,OAAOyB,YAChB,CAAE,MAAOhC,GAAI,CACf,CAzKoBw3vB,GAMpB3/tB,EAAQ2tJ,OAAS,CACf,gBACA,cACA,YACA,aACA,aACA,WAmCF3tJ,EAAQ4/tB,WAAWh8tB,EAAI,SAAShb,GAC9B,IACE,OAAO9e,KAAKQ,UAAUse,EACxB,CAAE,MAAOnc,GACP,MAAO,+BAAiCA,EAAIpE,OAC9C,CACF,EAmGA23B,EAAQiqT,OAAOxjH,4BCrIf,IAAIo5hB,EA4BJ,SAASC,EAAY5M,GAEnB,SAAS3usB,IAEP,GAAKA,EAAMwE,QAAX,CAEA,IAAIkjE,EAAO1nE,EAGPq+d,GAAQ,IAAIl3gB,KACZq0vB,EAAKn9O,GAAQi9O,GAAYj9O,GAC7B32Z,EAAKy2C,KAAOq9lB,EACZ9zoB,EAAKyD,KAAOmwoB,EACZ5zoB,EAAK22Z,KAAOA,EACZi9O,EAAWj9O,EAIX,IADA,IAAI/xf,EAAO,IAAInG,MAAMwC,UAAUlkB,QACtBI,EAAI,EAAGA,EAAIynB,EAAK7nB,OAAQI,IAC/BynB,EAAKznB,GAAK8jB,UAAU9jB,GAGtBynB,EAAK,GAAKmP,EAAQgguB,OAAOnvuB,EAAK,IAE1B,kBAAoBA,EAAK,IAE3BA,EAAK0/d,QAAQ,MAIf,IAAI/0d,EAAQ,EACZ3K,EAAK,GAAKA,EAAK,GAAG9nB,QAAQ,iBAAiB,SAASwiH,EAAOvwG,GAEzD,GAAc,OAAVuwG,EAAgB,OAAOA,EAC3B/vF,IACA,IAAIgjR,EAAYx+Q,EAAQ4/tB,WAAW5kvB,GACnC,GAAI,oBAAsBwjS,EAAW,CACnC,IAAIvmM,EAAMpnF,EAAK2K,GACf+vF,EAAQizL,EAAUtwR,KAAK+9F,EAAMhU,GAG7BpnF,EAAKqG,OAAOsE,EAAO,GACnBA,GACF,CACA,OAAO+vF,CACT,IAGAvrF,EAAQo/tB,WAAWlxuB,KAAK+9F,EAAMp7F,IAElB0zB,EAAMr2C,KAAO8xB,EAAQ9xB,KAAOxB,QAAQwB,IAAItF,KAAK8D,UACnDsgB,MAAMi/F,EAAMp7F,EA/CQ,CAgD5B,CAYA,OAVA0zB,EAAM2usB,UAAYA,EAClB3usB,EAAMwE,QAAU/oB,EAAQ+oB,QAAQmqsB,GAChC3usB,EAAM86sB,UAAYr/tB,EAAQq/tB,YAC1B96sB,EAAM/zC,MA5ER,SAAqB0ivB,GACnB,IAAc9pvB,EAAV48B,EAAO,EAEX,IAAK58B,KAAK8pvB,EACRlttB,GAAUA,GAAQ,GAAKA,EAAQkttB,EAAUxpvB,WAAWN,GACpD48B,GAAQ,EAGV,OAAOhG,EAAQ2tJ,OAAO38I,KAAKC,IAAIjL,GAAQhG,EAAQ2tJ,OAAO3kL,OACxD,CAmEgBi3vB,CAAY/M,GAGtB,oBAAsBlztB,EAAQ6lN,MAChC7lN,EAAQ6lN,KAAKthM,GAGRA,CACT,EAvHAvkB,EAAUqtL,EAAOrtL,QAAU8/tB,EAAYv7sB,MAAQu7sB,EAAqB,QAAIA,GAChEE,OA6LR,SAAgB/npB,GACd,OAAIA,aAAe1vG,MAAc0vG,EAAIlsE,OAASksE,EAAI5vG,QAC3C4vG,CACT,EA/LAj4E,EAAQkguB,QAyJR,WACElguB,EAAQiqT,OAAO,GACjB,EA1JAjqT,EAAQiqT,OA8HR,SAAgBu1a,GACdx/tB,EAAQyiP,KAAK+8e,GAEbx/tB,EAAQu1V,MAAQ,GAChBv1V,EAAQmguB,MAAQ,GAKhB,IAHA,IAAIn2vB,GAA+B,kBAAfw1vB,EAA0BA,EAAa,IAAIx1vB,MAAM,UACjE2kB,EAAM3kB,EAAMhB,OAEPI,EAAI,EAAGA,EAAIulB,EAAKvlB,IAClBY,EAAMZ,KAEW,OADtBo2vB,EAAax1vB,EAAMZ,GAAGL,QAAQ,MAAO,QACtB,GACbi3B,EAAQmguB,MAAMn2uB,KAAK,IAAI81B,OAAO,IAAM0/sB,EAAWvxvB,OAAO,GAAK,MAE3D+xB,EAAQu1V,MAAMvrW,KAAK,IAAI81B,OAAO,IAAM0/sB,EAAa,MAGvD,EA/IAx/tB,EAAQ+oB,QAmKR,SAAiBvgD,GACf,IAAIY,EAAGulB,EACP,IAAKvlB,EAAI,EAAGulB,EAAMqR,EAAQmguB,MAAMn3vB,OAAQI,EAAIulB,EAAKvlB,IAC/C,GAAI42B,EAAQmguB,MAAM/2vB,GAAGslB,KAAKlmB,GACxB,OAAO,EAGX,IAAKY,EAAI,EAAGulB,EAAMqR,EAAQu1V,MAAMvsX,OAAQI,EAAIulB,EAAKvlB,IAC/C,GAAI42B,EAAQu1V,MAAMnsX,GAAGslB,KAAKlmB,GACxB,OAAO,EAGX,OAAO,CACT,EA/KAw3B,EAAQs/tB,SAAW,EAAnBt/tB,OAMAA,EAAQu1V,MAAQ,GAChBv1V,EAAQmguB,MAAQ,GAQhBnguB,EAAQ4/tB,WAAa,CAAC,qBCxBtB,IAAIt+tB,EAAI,IACJ8B,EAAQ,GAAJ9B,EACJhY,EAAQ,GAAJ8Z,EACJzC,EAAQ,GAAJrX,EACJtW,EAAQ,OAAJ2tB,EAuIR,SAASy/tB,EAAOL,EAAI92vB,EAAGT,GACrB,KAAIu3vB,EAAK92vB,GAGT,OAAI82vB,EAAS,IAAJ92vB,EACA+nC,KAAK8Y,MAAMi2sB,EAAK92vB,GAAK,IAAMT,EAE7BwoC,KAAK8wI,KAAKi+kB,EAAK92vB,GAAK,IAAMT,EAAO,GAC1C,CA/HA6kN,EAAOrtL,QAAU,SAASi4E,EAAKvlG,GAC7BA,EAAUA,GAAW,CAAC,EACtB,IAyGeqtvB,EAzGX1zvB,SAAc4rG,EAClB,GAAa,WAAT5rG,GAAqB4rG,EAAIjvG,OAAS,EACpC,OAkBJ,SAAe+mC,GAEb,IADAA,EAAMjnC,OAAOinC,IACL/mC,OAAS,IACf,OAEF,IAAIuiH,EAAQ,wHAAwH8G,KAClItiF,GAEF,IAAKw7E,EACH,OAEF,IAAItiH,EAAIsiD,WAAWggE,EAAM,IAEzB,QADYA,EAAM,IAAM,MAAMtjG,eAE5B,IAAK,QACL,IAAK,OACL,IAAK,MACL,IAAK,KACL,IAAK,IACH,OAAOhf,EAAI+J,EACb,IAAK,OACL,IAAK,MACL,IAAK,IACH,OAAO/J,EAAI03B,EACb,IAAK,QACL,IAAK,OACL,IAAK,MACL,IAAK,KACL,IAAK,IACH,OAAO13B,EAAIqgB,EACb,IAAK,UACL,IAAK,SACL,IAAK,OACL,IAAK,MACL,IAAK,IACH,OAAOrgB,EAAIm6B,EACb,IAAK,UACL,IAAK,SACL,IAAK,OACL,IAAK,MACL,IAAK,IACH,OAAOn6B,EAAIq4B,EACb,IAAK,eACL,IAAK,cACL,IAAK,QACL,IAAK,OACL,IAAK,KACH,OAAOr4B,EACT,QACE,OAEN,CArEWc,CAAMkuG,GACR,GAAa,WAAT5rG,IAAoC,IAAf0wB,MAAMk7E,GACpC,OAAOvlG,EAAQ2tvB,KAsGVD,EADQL,EArGiB9npB,EAsGdt3E,EAAG,QACnBy/tB,EAAOL,EAAIz2uB,EAAG,SACd82uB,EAAOL,EAAI38tB,EAAG,WACdg9tB,EAAOL,EAAIz+tB,EAAG,WACdy+tB,EAAK,MA7BT,SAAkBA,GAChB,GAAIA,GAAMp/tB,EACR,OAAOqQ,KAAKE,MAAM6utB,EAAKp/tB,GAAK,IAE9B,GAAIo/tB,GAAMz2uB,EACR,OAAO0nB,KAAKE,MAAM6utB,EAAKz2uB,GAAK,IAE9B,GAAIy2uB,GAAM38tB,EACR,OAAO4N,KAAKE,MAAM6utB,EAAK38tB,GAAK,IAE9B,GAAI28tB,GAAMz+tB,EACR,OAAO0P,KAAKE,MAAM6utB,EAAKz+tB,GAAK,IAE9B,OAAOy+tB,EAAK,IACd,CA3FyCO,CAASropB,GAEhD,MAAM,IAAI1vG,MACR,wDACEuB,KAAKQ,UAAU2tG,GAErB,6SCpCO,IAAI06pB,EAAa,gBACb4T,EAAY,+BCDnBC,EAA4B,oBAAXv6vB,QAAoD,kBAApBA,OAAOC,SAAwB,SAAUuB,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAyB,oBAAXxB,QAAyBwB,EAAIgB,cAAgBxC,QAAUwB,IAAQxB,OAAO3jB,UAAY,gBAAkBmlB,CAAK,EAI5P,SAASg5vB,EAAmBt9wB,GAEzC,QAAKA,IACyD,YAA5C,qBAANA,EAAoB,YAAcq9wB,EAAQr9wB,MAC3B,oBAAhBA,EAAEu9wB,cACR51lB,EAAAA,EAAAA,GAAc3nL,IAErB,CCXA,IAAIq9wB,EAA4B,oBAAXv6vB,QAAoD,kBAApBA,OAAOC,SAAwB,SAAUuB,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAyB,oBAAXxB,QAAyBwB,EAAIgB,cAAgBxC,QAAUwB,IAAQxB,OAAO3jB,UAAY,gBAAkBmlB,CAAK,EAEvQw/F,EAAW9kG,OAAOkZ,QAAU,SAAUrY,GAAU,IAAK,IAAI5f,EAAI,EAAGA,EAAI8jB,UAAUlkB,OAAQI,IAAK,CAAE,IAAI+jB,EAASD,UAAU9jB,GAAI,IAAK,IAAIikB,KAAOF,EAAchF,OAAO7f,UAAU04B,eAAe9S,KAAKf,EAAQE,KAAQrE,EAAOqE,GAAOF,EAAOE,GAAU,CAAE,OAAOrE,CAAQ,EAKhP,SAASmtvB,IACtB,IAAIjvtB,EAASh6B,UAAUlkB,OAAS,QAAsByH,IAAjByc,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAE9Ey5vB,EAAkBz/tB,EAAOy/tB,iBAAmBC,EAEhD,OAAO,SAAUz4vB,GACf,OAAO,SAAUvhB,EAAS8B,EAAcuowB,GACtC,IAAIjmF,EAAQ7iqB,EAAK04vB,EAAYj6wB,GAAU8B,EAAcuowB,GACrD,OAAOhqpB,EAAS,CAAC,EAAG+jkB,EAAO,CACzB2mF,eAAgB,SAAwB/qwB,GACtC,OAAOokrB,EAAM2mF,eAAekP,EAAYj6wB,GAC1C,GAEJ,CACF,EAEA,SAASi6wB,EAAYj6wB,GACnB,IAAI67uB,GAAa,EACbq+B,EAAsB,GAC1B,OAAO,SAAUj6wB,EAAOC,GACtB,GAAIA,EAAOT,OAASk6wB,EAElB,OADIr/tB,EAAOh5C,MAAQu6uB,GAAYq+B,EAAoB98vB,KAAKld,GACjDF,EAAQC,EAAOC,GAElBo6C,EAAOh5C,MAAQu6uB,GAY3B,SAAyBq+B,GACvB,IAAIC,EAAmBD,EAAoBt4vB,MAAM,GAC7Cu4vB,EAAiB/9wB,OAAS,GAC5B0D,QAAQwB,IAAI,mRAAoR64wB,EAAiB/9wB,OAAQ+9wB,EAE7T,CAjBuCC,CAAgBF,GAC/Cr+B,GAAa,EAEb,IAAIw+B,EAAen6wB,EAAOR,QACtB46wB,EAAet6wB,EAAQC,EAAOC,GAElC,OAAO65wB,EAAgB95wB,EAAOo6wB,EAAcC,EAAchguB,EAAOh5C,IAErE,CACF,CACF,CASA,SAAS04wB,EAAuB/5wB,EAAOo6wB,EAAcC,EAAch5wB,GACjE,IAAI2gJ,EAAW5hC,EAAS,CAAC,EAAGi6pB,GAyB5B,OAvBA/+vB,OAAOwE,KAAKs6vB,GAAc75vB,SAAQ,SAAUC,GAE1C,GAAKxgB,EAAMm0B,eAAe3T,GAG1B,GAA4B,WAAxBm5vB,EAAQ35wB,EAAMwgB,KAAuB45vB,EAAa55vB,GAAtD,CAMA,GAAIxgB,EAAMwgB,KAAS65vB,EAAa75vB,GAG9B,OAFInf,GAAKxB,QAAQwB,IAAI,wFAAyFmf,QAC9GwhI,EAASxhI,GAAO65vB,EAAa75vB,IAK3Bo5vB,EAAmBQ,EAAa55vB,KAASo5vB,EAAmB55wB,EAAMwgB,IAAOwhI,EAASxhI,GAAO4/F,EAAS,CAAC,EAAGpgH,EAAMwgB,GAAM45vB,EAAa55vB,IAC9HwhI,EAASxhI,GAAO45vB,EAAa55vB,GAE9Bnf,GAAKxB,QAAQwB,IAAI,wDAAyDmf,EAAKwhI,EAASxhI,GAb5F,MAFMnf,GAAKxB,QAAQwB,IAAI,uHAAwHmf,EAgBjJ,IACOwhI,CACT,CC7EA,IAOA,EAPyC,qBAAXw+C,EAAAA,GAAyD,qBAAxBA,EAAAA,EAAOkikB,aAChC,SAAUx+uB,EAAIgvuB,GAClD,OAAO1yjB,EAAAA,EAAOkikB,aAAax+uB,EAAIgvuB,EACjC,EAAI,SAAUhvuB,EAAIgvuB,GAChB,OAAOtquB,WAAW1E,EAAIgvuB,EACxB,ECLIymB,EAA4B,oBAAXv6vB,QAAoD,kBAApBA,OAAOC,SAAwB,SAAUuB,GAAO,cAAcA,CAAK,EAAI,SAAUA,GAAO,OAAOA,GAAyB,oBAAXxB,QAAyBwB,EAAIgB,cAAgBxC,QAAUwB,IAAQxB,OAAO3jB,UAAY,gBAAkBmlB,CAAK,EAIvQ05vB,EAAY,WACJ,OAAO,IACnB,EAQA,SAASC,EAAYC,GACnB,GAAwE,YAAjD,qBAAX3+wB,OAAyB,YAAc89wB,EAAQ99wB,YAA2B2+wB,KAAe3+wB,QACnG,OAAO,EAGT,IACE,IAAIy2vB,EAAUz2vB,OAAO2+wB,GACjBC,EAAU,iBAAmBD,EAAc,QAC/CloB,EAAQ/0vB,QAAQk9wB,EAAS,QACzBnoB,EAAQ7zvB,QAAQg8wB,GAChBnoB,EAAQt0vB,WAAWy8wB,EACrB,CAAE,MAAOn/wB,GAEP,OAAO,CACT,CACA,OAAO,CACT,CAUA,SAASo/wB,EAAWl7wB,GAClB,MAAa,UAATA,EARG+6wB,EAAY,gBASU1+wB,OAAOyB,aAAe,CAAEmB,QAAS67wB,EAAW/8wB,QAAS+8wB,EAAWt8wB,WAAYs8wB,EAAWK,WAAYL,GAEnH,YAAT96wB,EAPG+6wB,EAAY,kBAQY1+wB,OAAO++wB,eAAiB,CAAEn8wB,QAAS67wB,EAAW/8wB,QAAS+8wB,EAAWt8wB,WAAYs8wB,EAAWK,WAAYL,QADpI,CAGF,CAEe,SAAS,EAAC96wB,EAAM66C,GAC7B,IAAIi4sB,EAAUooB,EAAWl7wB,GACzB,MAAO,CACLm7wB,WAAY,SAAoB71oB,GAC9B,OAAO,IAAIvoH,SAAQ,SAAU4B,EAASH,GACpC,IAEE,IADA,IAAI8B,EAAO,GACFvjB,EAAI,EAAGA,EAAI+1vB,EAAQn2vB,OAAQI,IAClCujB,EAAK3C,KAAKm1uB,EAAQ9xuB,IAAIjkB,IAExBmmwB,GAAa,WACX59nB,GAAMA,EAAG,KAAMhlH,GACf3B,EAAQ2B,EACV,GACF,CAAE,MAAOxkB,GACPwpI,GAAMA,EAAGxpI,GACT0iB,EAAO1iB,EACT,CACF,GACF,EACAmD,QAAS,SAAiB+hB,EAAKskH,GAC7B,OAAO,IAAIvoH,SAAQ,SAAU4B,EAASH,GACpC,IACE,IAAIyW,EAAI69tB,EAAQ7zvB,QAAQ+hB,GACxBkivB,GAAa,WACX59nB,GAAMA,EAAG,KAAMrwG,GACftW,EAAQsW,EACV,GACF,CAAE,MAAOn5B,GACPwpI,GAAMA,EAAGxpI,GACT0iB,EAAO1iB,EACT,CACF,GACF,EACAiC,QAAS,SAAiBijB,EAAK8xF,EAAQwyB,GACrC,OAAO,IAAIvoH,SAAQ,SAAU4B,EAASH,GACpC,IACEs0uB,EAAQ/0vB,QAAQijB,EAAK8xF,GACrBowpB,GAAa,WACX59nB,GAAMA,EAAG,MACT3mH,GACF,GACF,CAAE,MAAO7iB,GACPwpI,GAAMA,EAAGxpI,GACT0iB,EAAO1iB,EACT,CACF,GACF,EACA0C,WAAY,SAAoBwiB,EAAKskH,GACnC,OAAO,IAAIvoH,SAAQ,SAAU4B,EAASH,GACpC,IACEs0uB,EAAQt0vB,WAAWwiB,GACnBkivB,GAAa,WACX59nB,GAAMA,EAAG,MACT3mH,GACF,GACF,CAAE,MAAO7iB,GACPwpI,GAAMA,EAAGxpI,GACT0iB,EAAO1iB,EACT,CACF,GACF,EAEJ,CC9Ge,SAASu/wB,EAAiBxguB,EAAQv6B,GAC/C,IAAIwyuB,EAAUj4sB,EAAOi4sB,QACjBmE,OAAiC7yvB,IAArBy2C,EAAOo8sB,UAA0Bp8sB,EAAOo8sB,UAAYqP,EAGpE,GAAIjovB,MAAMC,QAAQu8B,GAAS,MAAM,IAAI3+C,MAAM,wIAC3C,IAAK42vB,EAAS,MAAM,IAAI52vB,MAAM,8DAE9B,MAAoB,qBAATokB,EAEF,IAAIvD,SAAQ,SAAU4B,EAASH,GACpCs0uB,EAAQqoB,YAAW,SAAU/6wB,EAAKurL,GAC5BvrL,EAEFoe,EAAOpe,GAEPue,EAAQ08vB,EAAiBxguB,EAAQ8wI,EAAQn7K,QAAO,SAAUwQ,GACxD,OAAkC,IAA3BA,EAAI7jB,QAAQ85vB,EACrB,IAAGhrvB,KAAI,SAAU+U,GACf,OAAOA,EAAImB,MAAM80uB,EAAUt6vB,OAC7B,KAEJ,GACF,IAGOogB,QAAQC,IAAIsD,EAAKrU,KAAI,SAAU+U,GACpC,OAAO8xuB,EAAQt0vB,WAAW,GAAKy4vB,EAAYj2uB,GAMxC,SAAqB5gB,GAI5B,GATE,IAEJ,yBC3Be,SAASk7wB,EAAgB32F,EAAO9poB,GAE7C,IAAI9Q,GAAkC,IAArB8Q,EAAOxb,UAAsB,SAAU35B,GACtD,OAAOA,CACT,EAAI61wB,EACA3xuB,GAAoC,IAArBiR,EAAOxb,UAAsB,SAAU35B,GACxD,OAAOA,CACT,EAAI81wB,EACAtsnB,EAAYr0G,EAAOq0G,WAAa,GAChCs3mB,EAAY3rtB,EAAO2rtB,YAAa,EAChCiV,EAAa5guB,EAAO4guB,YAAc,GAClC/4nB,EAAW7nG,EAAO6nG,WAAY,EAC9Bu0mB,OAAiC7yvB,IAArBy2C,EAAOo8sB,UAA0Bp8sB,EAAOo8sB,UAAYqP,EAGhEoV,EAAY7guB,EAAO8guB,YAAc,CAAC,EAClCC,EAAgB/guB,EAAOghuB,gBAAkBC,EACzCC,EAAclhuB,EAAOmhuB,cAAgBC,EACrCC,EAAcrhuB,EAAOshuB,cAAgBC,EAGrCtpB,EAAUj4sB,EAAOi4sB,SAAWupB,EAAwB,SACpDvpB,EAAQxyuB,OAASwyuB,EAAQqoB,aAC3BroB,EAAQqoB,WAAaroB,EAAQxyuB,MAI/B,IAAIg8vB,EAAYZ,EACZa,GAAS,EACTC,EAAkB,GAClBC,EAAe,KAsEnB,OApEA93F,EAAM1zf,WAAU,WACd,IAAIsrlB,EAAJ,CAEA,IAAI/7wB,EAAQmkrB,EAAMrrf,WAElBsilB,EAAcp7wB,GAAO,SAAUk8wB,EAAU17vB,IA8B3C,SAAgCA,GAC9B,QAAIwlvB,IAAyC,IAA5BA,EAAUrpwB,QAAQ6jB,MACH,IAA5BkuI,EAAU/xJ,QAAQ6jB,EAExB,EAjCS27vB,CAAuB37vB,IACxB+6vB,EAAYO,EAAWt7vB,KAAS+6vB,EAAYv7wB,EAAOwgB,KACjB,IAAlCw7vB,EAAgBr/wB,QAAQ6jB,IAC5Bw7vB,EAAgB7+vB,KAAKqD,EACvB,IAEA,IAAIsB,EAAMk6vB,EAAgB7/wB,OAGL,OAAjB8/wB,IACFA,EAAejppB,aAAY,WACzB,GAAI+opB,GAAUj6vB,IAAQk6vB,EAAgB7/wB,QAAqC,IAA3B6/wB,EAAgB7/wB,OAG9D,OAFA82H,cAAcgppB,QACdA,EAAe,MAIjB,IAAIz7vB,EAAMw7vB,EAAgBxkvB,QACtB4kvB,EAuCV,SAA0B57vB,GACxB,MAAO,GAAKi2uB,EAAYj2uB,CAC1B,CAzCuB67vB,CAAiB77vB,GAC9B87vB,EAAWrB,EAAWx9vB,QAAO,SAAUy+vB,EAAUn1lB,GACnD,OAAOA,EAAYnqD,GAAGs/oB,EAAU17vB,EAClC,GAAG+6vB,EAAYp3F,EAAMrrf,WAAYt4K,IACT,qBAAb87vB,GAA0BhqB,EAAQ/0vB,QAAQ6+wB,EAAY7yuB,EAAW+yuB,IAuD3E,SAAkB18wB,GAIzB,GA1DI,GAAGsiJ,IAGL45nB,EAAY97wB,CA/BM,CAgCpB,IAmCO,CACL6owB,UA5BF,SAAwB0T,GACtB,IAEIv8wB,EAAQ,CAAC,EAgBb,OAlBcqgB,UAAUlkB,OAAS,QAAsByH,IAAjByc,UAAU,GAAmBA,UAAU,GAAK,CAAC,GAGvEm8vB,OACVpB,EAAcmB,GAAU,SAAUL,EAAU17vB,GAC1C,IACE,IAAItb,EAAOkkC,EAAa8yuB,GACpB35wB,EAAQ04wB,EAAWwB,aAAY,SAAUC,EAAY31lB,GACvD,OAAOA,EAAYliJ,IAAI63uB,EAAYl8vB,EACrC,GAAGtb,GACHlF,EAAQ07wB,EAAY17wB,EAAOwgB,EAAKje,EAClC,CAAE,MAAO3C,GACH06B,CACN,CACF,IACKt6B,EAAQu8wB,EAEfp4F,EAAM5krB,SA2CD,CACLC,KAAMk6wB,EACNj6wB,QA7C+BO,IACxBA,CACT,EASE+yjB,MAAO,WACLgpN,GAAS,CACX,EACA1kvB,OAAQ,WACN0kvB,GAAS,CACX,EACAh3F,MAAO,SAAejlqB,GACpB,OAAO+6vB,EAAiB,CAAEvoB,QAASA,EAASmE,UAAWA,GAAa32uB,EACtE,EAEJ,CAUA,SAASi7vB,EAAkB71wB,GACzB,OAAOzH,IAAUyH,EAAM,KAAM,MAAM,SAAUsxB,EAAGza,GAE9C,MAAM,IAAIrgB,MAAM,uNAAyN86B,EAAI,iBAAmBza,EAAI,WACtQ,GACF,CAEA,SAASi/vB,EAAoBwB,GAC3B,OAAOv/wB,KAAKC,MAAMs/wB,EACpB,CASA,SAASlB,EAAqBj1pB,EAAYvC,GACxC,OAAOxoG,OAAOwE,KAAKumG,GAAY9lG,SAAQ,SAAUC,GAC/C,OAAOsjG,EAASuC,EAAW7lG,GAAMA,EACnC,GACF,CAEA,SAASi7vB,EAAmBz7wB,EAAOwgB,GACjC,OAAOxgB,EAAMwgB,EACf,CAEA,SAASo7vB,EAAmB57wB,EAAOwgB,EAAKje,GAEtC,OADAvC,EAAMwgB,GAAOje,EACNvC,CACT,CCxIA,MAtBA,SAAyB28wB,EAASC,GAChC,IAAIviuB,EAASh6B,UAAUlkB,OAAS,QAAsByH,IAAjByc,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAE9E2lvB,EAAY3rtB,EAAO2rtB,WAAa,KAChCt3mB,EAAYr0G,EAAOq0G,WAAa,KAEpC,SAASmunB,EAAwBr8vB,GAC/B,SAAIwlvB,IAAyC,IAA5BA,EAAUrpwB,QAAQ6jB,QAC/BkuI,IAAyC,IAA5BA,EAAU/xJ,QAAQ6jB,GAErC,CAEA,MAAO,CACLo8G,GAAI,SAAa58H,EAAOwgB,GACtB,OAAQq8vB,EAAwBr8vB,IAAQm8vB,EAAUA,EAAQ38wB,EAAOwgB,GAAOxgB,CAC1E,EACA6kC,IAAK,SAAa7kC,EAAOwgB,GACvB,OAAQq8vB,EAAwBr8vB,IAAQo8vB,EAAWA,EAAS58wB,EAAOwgB,GAAOxgB,CAC5E,EAEJ,ECpBIogH,EAAW9kG,OAAOkZ,QAAU,SAAUrY,GAAU,IAAK,IAAI5f,EAAI,EAAGA,EAAI8jB,UAAUlkB,OAAQI,IAAK,CAAE,IAAI+jB,EAASD,UAAU9jB,GAAI,IAAK,IAAIikB,KAAOF,EAAchF,OAAO7f,UAAU04B,eAAe9S,KAAKf,EAAQE,KAAQrE,EAAOqE,GAAOF,EAAOE,GAAU,CAAE,OAAOrE,CAAQ,EAKhP,SAAS2gwB,EAAeziuB,EAAQ83gB,GAC7C,IAAImgM,EAAUj4sB,EAAOi4sB,SAAWupB,EAAwB,SACpDzyuB,GAAoC,IAArBiR,EAAOxb,UAAsB,SAAU35B,GACxD,OAAOA,CACT,EAAI81wB,EACAtsnB,EAAYr0G,EAAOq0G,WAAa,GAChCs3mB,EAAY3rtB,EAAO2rtB,YAAa,EAChCiV,EAAa5guB,EAAO4guB,YAAc,GAClCxkB,OAAiC7yvB,IAArBy2C,EAAOo8sB,UAA0Bp8sB,EAAOo8sB,UAAYqP,EAGhExT,EAAQxyuB,OAASwyuB,EAAQqoB,aAAYroB,EAAUlyoB,EAAS,CAAC,EAAGkyoB,EAAS,CAAEqoB,WAAYroB,EAAQxyuB,QAE/F,IAAIi9vB,EAAgB,CAAC,EACjBC,EAAkB,EAyCtB,SAAStgT,EAAS98d,EAAKm9wB,GACrB5qN,EAAWvyjB,EAAKm9wB,EAClB,CAEA,SAASZ,EAAuB37vB,GAC9B,QAAIwlvB,IAAyC,IAA5BA,EAAUrpwB,QAAQ6jB,MACH,IAA5BkuI,EAAU/xJ,QAAQ6jB,EAExB,CAMA,GArDA8xuB,EAAQqoB,YAAW,SAAU/6wB,EAAKurL,GAC5BvrL,GAEF88d,EAAS98d,GAGX,IAKIq9wB,EALc9xlB,EAAQn7K,QAAO,SAAUwQ,GACzC,OAAkC,IAA3BA,EAAI7jB,QAAQ85vB,EACrB,IAAGhrvB,KAAI,SAAU+U,GACf,OAAOA,EAAImB,MAAM80uB,EAAUt6vB,OAC7B,IACgC6T,OAAOmswB,GAEnCe,EAAeD,EAAc9gxB,OACZ,IAAjB+gxB,GAAoBxgT,EAAS,KAAMqgT,GACvCE,EAAc18vB,SAAQ,SAAUC,GAC9B8xuB,EAAQ7zvB,QAiCZ,SAA0B+hB,GACxB,MAAO,GAAKi2uB,EAAYj2uB,CAC1B,CAnCoB67vB,CAAiB77vB,IAAM,SAAU5gB,EAAK2vC,GACyFwtuB,EAAcv8vB,GAOjK,SAAmBA,EAAK+uB,GACtB,IAAIvvC,EAAQ,KAEZ,IACE,IAAIkF,EAAOkkC,EAAamG,GACxBvvC,EAAQi7wB,EAAWwB,aAAY,SAAUP,EAAUn1lB,GACjD,OAAOA,EAAYliJ,IAAIq3uB,EAAU17vB,EACnC,GAAGtb,EACL,CAAE,MAAOtF,GACH06B,CACN,CAEA,OAAOt6B,CACT,CApBwK6owB,CAAUrovB,EAAK+uB,IACjLytuB,GAAmB,KACKE,GAAcxgT,EAAS,KAAMqgT,EACvD,GACF,GACF,IA+B0B,oBAAf5qN,GAA+B51iB,QACxC,OAAO,IAAIA,SAAQ,SAAU4B,EAASH,GACpCm0iB,EAAa,SAAoBvyjB,EAAKm9wB,GAChCn9wB,EAAKoe,EAAOpe,GAAUue,EAAQ4+vB,EACpC,CACF,GAEJ,CAEA,SAAS/B,EAAoBwB,GAC3B,OAAOv/wB,KAAKC,MAAMs/wB,EACpB,CCrFA,IAAIp8pB,EAAW9kG,OAAOkZ,QAAU,SAAUrY,GAAU,IAAK,IAAI5f,EAAI,EAAGA,EAAI8jB,UAAUlkB,OAAQI,IAAK,CAAE,IAAI+jB,EAASD,UAAU9jB,GAAI,IAAK,IAAIikB,KAAOF,EAAchF,OAAO7f,UAAU04B,eAAe9S,KAAKf,EAAQE,KAAQrE,EAAOqE,GAAOF,EAAOE,GAAU,CAAE,OAAOrE,CAAQ,EAOhP,SAASktvB,EAAallF,GACnC,IAAI9poB,EAASh6B,UAAUlkB,OAAS,QAAsByH,IAAjByc,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC9E8xiB,EAAa9xiB,UAAU,GAIvB88vB,GAAiB9iuB,EAAO+iuB,YAG5B,IAAIC,EAAY,KAGZC,EAAYxC,EAAgB32F,EAAO9poB,GA0BvC,SAASqib,EAAS98d,EAAKm9wB,GACrBO,EAAUjmvB,SACV86hB,GAAcA,EAAWvyjB,EAAKm9wB,EAChC,CAEA,OA9BAO,EAAUvqN,QAIR2vM,EADEya,EACW,WACXL,EAAeziuB,GAAQ,SAAUz6C,EAAKm9wB,GACpC,GAAIn9wB,EACF88d,EAAS98d,OADX,CAKIy9wB,IACgB,MAAdA,EAAmBN,EAAgB,CAAC,EAAOM,EAAU98vB,SAAQ,SAAUC,GACzE,cAAcu8vB,EAAcv8vB,EAC9B,KAEF,IACE2jqB,EAAM5krB,SAqBhB,SAAyBE,GACvB,IAAIK,EAAQugB,UAAUlkB,OAAS,QAAsByH,IAAjByc,UAAU,GAAmBA,UAAU,GAAK,KAEhF,MAAO,CACL7gB,KAAMk6wB,EACNj6wB,QAASA,EACTK,MAAOA,EAEX,CA7ByBy9wB,CAAgBR,EAAen9wB,GAChD,CAAE,QACA88d,EAAS98d,EAAKm9wB,EAChB,CAXA,CAYF,GACF,EACkBrgT,GAObt8W,EAAS,CAAC,EAAGk9pB,EAAW,CAC7Bv4F,MAAO,SAAejlqB,GAEpB,OADAu9vB,EAAYv9vB,GAAQ,IACbw9vB,EAAUv4F,MAAMjlqB,EACzB,GAEJ,CChDA,IAAI09vB,EAAa,SAAoB14oB,EAAI24oB,EAAKC,GAC5C79wB,QAAQC,MAAM,+IACI,oBAAPglI,GAAmBA,IACX,oBAAR24oB,GAAoBA,IACZ,oBAARC,GAAoBA,GACjC,EACIC,EAAoB,CAAEhD,WAAY6C,EAAY/+wB,QAAS++wB,EAAYjgxB,QAASigxB,EAAYx/wB,WAAYw/wB,GACpGI,EAAW,CACbC,kBAAmBF,EACnBG,oBAAqBH,qCCfvBxqvB,EAAQ6E,YAAa,EACJ7E,EAAQ2yuB,WAAa,gBACtB3yuB,EAAQumvB,UAAY,wDCDpC,SAAS9glB,EAAsBC,GAqB7B,OAlBiB,SAAoB52L,GACnC,IAAI1C,EAAW0C,EAAK1C,SAChBu5L,EAAW72L,EAAK62L,SACpB,OAAO,SAAUx3K,GACf,OAAO,SAAUrhB,GAGf,MAAsB,oBAAXA,EAEFA,EAAOV,EAAUu5L,EAAUD,GAI7Bv3K,EAAKrhB,EACd,CACF,CACF,CAGF,QAEA,IAAI84L,EAAQH,IAGZG,EAAMC,kBAAoBJ,EAC1B,0QCtBWmllB,EAAc,CACvBx3tB,KAAM,gBA2BS,SAASg1I,EAAYx7L,EAAS26L,EAAgB0vkB,GAC7D,IAAIn2vB,EAOJ,GAL8B,oBAAnBymL,GAAqD,qBAAb0vkB,IACjDA,EAAW1vkB,EACXA,OAAiB92L,GAGK,qBAAbwmwB,EAA0B,CACnC,GAAwB,oBAAbA,EACT,MAAM,IAAI1uwB,MAAM,2CAGlB,OAAO0uwB,EAAS7ukB,EAAT6ukB,CAAsBrqwB,EAAS26L,EACxC,CAEA,GAAuB,oBAAZ36L,EACT,MAAM,IAAIrE,MAAM,0CAGlB,IAAIsixB,EAAiBj+wB,EACjBk+wB,EAAevjlB,EACfwjlB,EAAmB,GACnBC,EAAgBD,EAChBE,GAAgB,EAEpB,SAASC,IACHF,IAAkBD,IACpBC,EAAgBD,EAAiBv8vB,QAErC,CAOA,SAASm3K,IACP,OAAOmllB,CACT,CAyBA,SAASxtlB,EAAU/gF,GACjB,GAAwB,oBAAbA,EACT,MAAM,IAAIh0G,MAAM,uCAGlB,IAAI4ixB,GAAe,EAKnB,OAHAD,IACAF,EAAchhwB,KAAKuyF,GAEZ,WACL,GAAK4uqB,EAAL,CAIAA,GAAe,EAEfD,IACA,IAAI1vvB,EAAQwvvB,EAAcxhxB,QAAQ+yG,GAClCyuqB,EAAc9zvB,OAAOsE,EAAO,EAN5B,CAOF,CACF,CA2BA,SAASpvB,EAASU,GAChB,KAAKgkL,EAAAA,EAAAA,GAAchkL,GACjB,MAAM,IAAIvE,MAAM,2EAGlB,GAA2B,qBAAhBuE,EAAOT,KAChB,MAAM,IAAI9D,MAAM,sFAGlB,GAAI0ixB,EACF,MAAM,IAAI1ixB,MAAM,sCAGlB,IACE0ixB,GAAgB,EAChBH,EAAeD,EAAeC,EAAch+wB,EAC9C,CAAE,QACAm+wB,GAAgB,CAClB,CAGA,IADA,IAAIh2jB,EAAY81jB,EAAmBC,EAC1B5hxB,EAAI,EAAGA,EAAI6rN,EAAUjsN,OAAQI,IAAK,EAEzCmzG,EADe04G,EAAU7rN,KAE3B,CAEA,OAAO0D,CACT,CAiEA,OAFAV,EAAS,CAAEC,KAAMu+wB,EAAYx3tB,QAEtBtyC,EAAQ,CACb1U,SAAUA,EACVkxL,UAAWA,EACXqI,SAAUA,EACVgykB,eAzDF,SAAwBC,GACtB,GAA2B,oBAAhBA,EACT,MAAM,IAAIrvwB,MAAM,8CAGlBsixB,EAAiBjT,EACjBxrwB,EAAS,CAAEC,KAAMu+wB,EAAYx3tB,MAC/B,IAmDSwmtB,EAAAA,GA3CT,WACE,IAAI9qwB,EAEAs8wB,EAAiB9tlB,EACrB,OAAOxuL,EAAO,CASZwuL,UAAW,SAAmByuX,GAC5B,GAAwB,kBAAbA,EACT,MAAM,IAAIz/hB,UAAU,0CAGtB,SAAS++vB,IACHt/N,EAAS59hB,MACX49hB,EAAS59hB,KAAKw3K,IAElB,CAIA,OAFA0llB,IAEO,CAAE18C,YADSy8C,EAAeC,GAEnC,IACMzR,EAAAA,GAAgB,WACtB,OAAOxxwB,IACT,EAAG0G,CACL,EAYqCgS,CACvC,CCnPA,SAASwqwB,EAA8Bj+vB,EAAKvgB,GAC1C,IAAIy+wB,EAAaz+wB,GAAUA,EAAOT,KAGlC,MAAO,iBAFUk/wB,GAAc,IAAMA,EAAW5hxB,WAAa,KAAO,aAE9B,cAAgB0jB,EAA/C,gLACT,CA2De,SAASq6K,EAAgBzrK,GAGtC,IAFA,IAAIuvvB,EAAcrjwB,OAAOwE,KAAKsP,GAC1BwvvB,EAAgB,CAAC,EACZrixB,EAAI,EAAGA,EAAIoixB,EAAYxixB,OAAQI,IAAK,CAC3C,IAAIikB,EAAMm+vB,EAAYpixB,GAElB+9B,EAMyB,oBAAlBlL,EAAS5O,KAClBo+vB,EAAcp+vB,GAAO4O,EAAS5O,GAElC,CACA,IAAIq+vB,EAAmBvjwB,OAAOwE,KAAK8+vB,GAOnC,IAAIE,OAAsB,EAC1B,KAxDF,SAA4B1vvB,GAC1B9T,OAAOwE,KAAKsP,GAAU7O,SAAQ,SAAUC,GACtC,IAAIzgB,EAAUqvB,EAAS5O,GAGvB,GAA4B,qBAFTzgB,OAAQ6D,EAAW,CAAEpE,KAAMu+wB,EAAYx3tB,OAGxD,MAAM,IAAI7qD,MAAM,YAAc8kB,EAAd,iRAIlB,GAAkD,qBAAvCzgB,OAAQ6D,EAAW,CAAEpE,KADrB,gCAAkC2kC,KAAKwb,SAAS7iD,SAAS,IAAIm5C,UAAU,GAAG94C,MAAM,IAAIolB,KAAK,OAElG,MAAM,IAAI7mB,MAAM,YAAc8kB,EAAd,6EAAyGu9vB,EAAYx3tB,KAArH,8SAEpB,GACF,CA2CIw4tB,CAAmBH,EACrB,CAAE,MAAOtjxB,GACPwjxB,EAAsBxjxB,CACxB,CAEA,OAAO,WACL,IAAI0E,EAAQqgB,UAAUlkB,OAAS,QAAsByH,IAAjByc,UAAU,GAAmBA,UAAU,GAAK,CAAC,EAC7EpgB,EAASogB,UAAU,GAEvB,GAAIy+vB,EACF,MAAMA,EAYR,IAFA,IAAI93b,GAAa,EACb0qJ,EAAY,CAAC,EACR3wd,EAAK,EAAGA,EAAK89vB,EAAiB1ixB,OAAQ4kB,IAAM,CACnD,IAAI+C,EAAO+6vB,EAAiB99vB,GACxBhhB,EAAU6+wB,EAAc96vB,GACxBk7vB,EAAsBh/wB,EAAM8jB,GAC5Bm7vB,EAAkBl/wB,EAAQi/wB,EAAqB/+wB,GACnD,GAA+B,qBAApBg/wB,EAAiC,CAC1C,IAAI36B,EAAem6B,EAA8B36vB,EAAM7jB,GACvD,MAAM,IAAIvE,MAAM4ovB,EAClB,CACA5yQ,EAAU5td,GAAQm7vB,EAClBj4b,EAAaA,GAAci4b,IAAoBD,CACjD,CACA,OAAOh4b,EAAa0qJ,EAAY1xe,CAClC,CACF,CCjIA,SAASk/wB,EAAkBxjlB,EAAen8L,GACxC,OAAO,WACL,OAAOA,EAASm8L,EAAcv7K,WAAMvc,EAAWyc,WACjD,CACF,CAuBe,SAAS8+vB,EAAmBvilB,EAAgBr9L,GACzD,GAA8B,oBAAnBq9L,EACT,OAAOsilB,EAAkBtilB,EAAgBr9L,GAG3C,GAA8B,kBAAnBq9L,GAAkD,OAAnBA,EACxC,MAAM,IAAIlhM,MAAM,0EAA+F,OAAnBkhM,EAA0B,cAAgBA,GAAtH,8FAKlB,IAFA,IAAI98K,EAAOxE,OAAOwE,KAAK88K,GACnBwilB,EAAsB,CAAC,EAClB7ixB,EAAI,EAAGA,EAAIujB,EAAK3jB,OAAQI,IAAK,CACpC,IAAIikB,EAAMV,EAAKvjB,GACXm/L,EAAgBkB,EAAep8K,GACN,oBAAlBk7K,IACT0jlB,EAAoB5+vB,GAAO0+vB,EAAkBxjlB,EAAen8L,GAEhE,CACA,OAAO6/wB,CACT,CCnCe,SAASn3lB,IACtB,IAAK,IAAIrkK,EAAOvD,UAAUlkB,OAAQ02L,EAAQh1K,MAAM+F,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC5E+uK,EAAM/uK,GAAQzD,UAAUyD,GAG1B,OAAqB,IAAjB+uK,EAAM12L,OACD,SAAUm7C,GACf,OAAOA,CACT,EAGmB,IAAjBu7I,EAAM12L,OACD02L,EAAM,GAGRA,EAAMp1K,QAAO,SAAUnhB,EAAGy3B,GAC/B,OAAO,WACL,OAAOz3B,EAAEy3B,EAAE5T,WAAMvc,EAAWyc,WAC9B,CACF,GACF,CC/BA,IAAI+/F,EAAW9kG,OAAOkZ,QAAU,SAAUrY,GAAU,IAAK,IAAI5f,EAAI,EAAGA,EAAI8jB,UAAUlkB,OAAQI,IAAK,CAAE,IAAI+jB,EAASD,UAAU9jB,GAAI,IAAK,IAAIikB,KAAOF,EAAchF,OAAO7f,UAAU04B,eAAe9S,KAAKf,EAAQE,KAAQrE,EAAOqE,GAAOF,EAAOE,GAAU,CAAE,OAAOrE,CAAQ,EAoBhP,SAAS6+K,IACtB,IAAK,IAAIp3K,EAAOvD,UAAUlkB,OAAQkjxB,EAAcxhwB,MAAM+F,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAClFu7vB,EAAYv7vB,GAAQzD,UAAUyD,GAGhC,OAAO,SAAUy3K,GACf,OAAO,SAAUx7L,EAAS26L,EAAgB0vkB,GACxC,IAEIkV,EAFAn7F,EAAQ5of,EAAYx7L,EAAS26L,EAAgB0vkB,GAC7CmV,EAAYp7F,EAAM5krB,SAGlBigxB,EAAgB,CAClB1mlB,SAAUqrf,EAAMrrf,SAChBv5L,SAAU,SAAkBU,GAC1B,OAAOs/wB,EAAUt/wB,EACnB,GAOF,OALAq/wB,EAAQD,EAAY5zwB,KAAI,SAAU66G,GAChC,OAAOA,EAAWk5pB,EACpB,IACAD,EAAYt3lB,EAAQ9nK,WAAMvc,EAAW07wB,EAAzBr3lB,CAAgCk8f,EAAM5krB,UAE3C6gH,EAAS,CAAC,EAAG+jkB,EAAO,CACzB5krB,SAAUggxB,GAEd,CACF,CACF,o0BC/BA,IAAI1rvB,EAAgB,SAASC,EAAGC,GAI5B,OAHAF,EAAgBvY,OAAO0Y,gBAClB,CAAEC,UAAW,cAAgBpW,OAAS,SAAUiW,EAAGC,GAAKD,EAAEG,UAAYF,CAAG,GAC1E,SAAUD,EAAGC,GAAK,IAAK,IAAIG,KAAKH,EAAOA,EAAEI,eAAeD,KAAIJ,EAAEI,GAAKH,EAAEG,GAAI,EACtEL,EAAcC,EAAGC,EAC5B,EAEO,SAASK,EAAUN,EAAGC,GAEzB,SAASM,IAAO94B,KAAKqmB,YAAckS,CAAG,CADtCD,EAAcC,EAAGC,GAEjBD,EAAEr4B,UAAkB,OAANs4B,EAAazY,OAAOgZ,OAAOP,IAAMM,EAAG54B,UAAYs4B,EAAEt4B,UAAW,IAAI44B,EACnF,CAEO,IAAIE,EAAW,WAQlB,OAPAA,EAAWjZ,OAAOkZ,QAAU,SAAkBx4B,GAC1C,IAAK,IAAIy4B,EAAGl4B,EAAI,EAAGH,EAAIikB,UAAUlkB,OAAQI,EAAIH,EAAGG,IAE5C,IAAK,IAAI23B,KADTO,EAAIpU,UAAU9jB,GACO+e,OAAO7f,UAAU04B,eAAe9S,KAAKoT,EAAGP,KAAIl4B,EAAEk4B,GAAKO,EAAEP,IAE9E,OAAOl4B,CACX,EACOu4B,EAASpU,MAAM5kB,KAAM8kB,UAChC,EAEO,SAASqU,EAAOD,EAAGn5B,GACtB,IAAIU,EAAI,CAAC,EACT,IAAK,IAAIk4B,KAAKO,EAAOnZ,OAAO7f,UAAU04B,eAAe9S,KAAKoT,EAAGP,IAAM54B,EAAEqB,QAAQu3B,GAAK,IAC9El4B,EAAEk4B,GAAKO,EAAEP,IACb,GAAS,MAALO,GAAqD,oBAAjCnZ,OAAOyE,sBACtB,KAAIxjB,EAAI,EAAb,IAAgB23B,EAAI5Y,OAAOyE,sBAAsB0U,GAAIl4B,EAAI23B,EAAE/3B,OAAQI,IAC3DjB,EAAEqB,QAAQu3B,EAAE33B,IAAM,GAAK+e,OAAO7f,UAAUqpB,qBAAqBzD,KAAKoT,EAAGP,EAAE33B,MACvEP,EAAEk4B,EAAE33B,IAAMk4B,EAAEP,EAAE33B,IAF4B,CAItD,OAAOP,CACX,CAEO,SAAS24B,EAAWC,EAAYzY,EAAQqE,EAAKqU,GAChD,IAA2Hf,EAAvHt3B,EAAI6jB,UAAUlkB,OAAQP,EAAIY,EAAI,EAAI2f,EAAkB,OAAT0Y,EAAgBA,EAAOvZ,OAAO4E,yBAAyB/D,EAAQqE,GAAOqU,EACrH,GAAuB,kBAAZC,SAAoD,oBAArBA,QAAQC,SAAyBn5B,EAAIk5B,QAAQC,SAASH,EAAYzY,EAAQqE,EAAKqU,QACpH,IAAK,IAAIt4B,EAAIq4B,EAAWz4B,OAAS,EAAGI,GAAK,EAAGA,KAASu3B,EAAIc,EAAWr4B,MAAIX,GAAKY,EAAI,EAAIs3B,EAAEl4B,GAAKY,EAAI,EAAIs3B,EAAE3X,EAAQqE,EAAK5kB,GAAKk4B,EAAE3X,EAAQqE,KAAS5kB,GAChJ,OAAOY,EAAI,GAAKZ,GAAK0f,OAAOC,eAAeY,EAAQqE,EAAK5kB,GAAIA,CAChE,CAEO,SAASo5B,EAAQC,EAAYC,GAChC,OAAO,SAAU/Y,EAAQqE,GAAO0U,EAAU/Y,EAAQqE,EAAKyU,EAAa,CACxE,CAEO,SAASE,EAAWC,EAAaC,GACpC,GAAuB,kBAAZP,SAAoD,oBAArBA,QAAQQ,SAAyB,OAAOR,QAAQQ,SAASF,EAAaC,EACpH,CAEO,SAASzW,EAAU2W,EAASC,EAAYC,EAAGC,GAE9C,OAAO,IAAKD,IAAMA,EAAIlZ,WAAU,SAAU4B,EAASH,GAC/C,SAAS2X,EAAUpzB,GAAS,IAAMqzB,EAAKF,EAAUpU,KAAK/e,GAAS,CAAE,MAAOjH,GAAK0iB,EAAO1iB,EAAI,CAAE,CAC1F,SAASu6B,EAAStzB,GAAS,IAAMqzB,EAAKF,EAAiB,MAAEnzB,GAAS,CAAE,MAAOjH,GAAK0iB,EAAO1iB,EAAI,CAAE,CAC7F,SAASs6B,EAAKn1B,GAJlB,IAAe8B,EAIa9B,EAAO8gB,KAAOpD,EAAQ1d,EAAO8B,QAJ1CA,EAIyD9B,EAAO8B,MAJhDA,aAAiBkzB,EAAIlzB,EAAQ,IAAIkzB,GAAE,SAAUtX,GAAWA,EAAQ5b,EAAQ,KAIjBgnB,KAAKoM,EAAWE,EAAW,CAC7GD,GAAMF,EAAYA,EAAUvV,MAAMoV,EAASC,GAAc,KAAKlU,OAClE,GACJ,CAEO,SAASwU,EAAYP,EAASQ,GACjC,IAAsG/a,EAAG7U,EAAGnK,EAAGg6B,EAA3GC,EAAI,CAAE5wB,MAAO,EAAGiP,KAAM,WAAa,GAAW,EAAPtY,EAAE,GAAQ,MAAMA,EAAE,GAAI,OAAOA,EAAE,EAAI,EAAGk6B,KAAM,GAAIC,IAAK,IAChG,OAAOH,EAAI,CAAE1U,KAAM8U,EAAK,GAAI,MAASA,EAAK,GAAI,OAAUA,EAAK,IAAwB,oBAAXhX,SAA0B4W,EAAE5W,OAAOC,UAAY,WAAa,OAAO9jB,IAAM,GAAIy6B,EACvJ,SAASI,EAAKh6B,GAAK,OAAO,SAAU2f,GAAK,OACzC,SAAcsa,GACV,GAAIrb,EAAG,MAAM,IAAIyE,UAAU,mCAC3B,KAAOwW,OACH,GAAIjb,EAAI,EAAG7U,IAAMnK,EAAY,EAARq6B,EAAG,GAASlwB,EAAU,OAAIkwB,EAAG,GAAKlwB,EAAS,SAAOnK,EAAImK,EAAU,SAAMnK,EAAEqlB,KAAKlb,GAAI,GAAKA,EAAEmb,SAAWtlB,EAAIA,EAAEqlB,KAAKlb,EAAGkwB,EAAG,KAAK9U,KAAM,OAAOvlB,EAE3J,OADImK,EAAI,EAAGnK,IAAGq6B,EAAK,CAAS,EAARA,EAAG,GAAQr6B,EAAEuG,QACzB8zB,EAAG,IACP,KAAK,EAAG,KAAK,EAAGr6B,EAAIq6B,EAAI,MACxB,KAAK,EAAc,OAAXJ,EAAE5wB,QAAgB,CAAE9C,MAAO8zB,EAAG,GAAI9U,MAAM,GAChD,KAAK,EAAG0U,EAAE5wB,QAASc,EAAIkwB,EAAG,GAAIA,EAAK,CAAC,GAAI,SACxC,KAAK,EAAGA,EAAKJ,EAAEE,IAAIhb,MAAO8a,EAAEC,KAAK/a,MAAO,SACxC,QACI,KAAkBnf,GAAZA,EAAIi6B,EAAEC,MAAY/5B,OAAS,GAAKH,EAAEA,EAAEG,OAAS,MAAkB,IAAVk6B,EAAG,IAAsB,IAAVA,EAAG,IAAW,CAAEJ,EAAI,EAAG,QAAU,CAC3G,GAAc,IAAVI,EAAG,MAAcr6B,GAAMq6B,EAAG,GAAKr6B,EAAE,IAAMq6B,EAAG,GAAKr6B,EAAE,IAAM,CAAEi6B,EAAE5wB,MAAQgxB,EAAG,GAAI,KAAO,CACrF,GAAc,IAAVA,EAAG,IAAYJ,EAAE5wB,MAAQrJ,EAAE,GAAI,CAAEi6B,EAAE5wB,MAAQrJ,EAAE,GAAIA,EAAIq6B,EAAI,KAAO,CACpE,GAAIr6B,GAAKi6B,EAAE5wB,MAAQrJ,EAAE,GAAI,CAAEi6B,EAAE5wB,MAAQrJ,EAAE,GAAIi6B,EAAEE,IAAIhZ,KAAKkZ,GAAK,KAAO,CAC9Dr6B,EAAE,IAAIi6B,EAAEE,IAAIhb,MAChB8a,EAAEC,KAAK/a,MAAO,SAEtBkb,EAAKN,EAAK1U,KAAKkU,EAASU,EAC5B,CAAE,MAAO36B,GAAK+6B,EAAK,CAAC,EAAG/6B,GAAI6K,EAAI,CAAG,CAAE,QAAU6U,EAAIhf,EAAI,CAAG,CACzD,GAAY,EAARq6B,EAAG,GAAQ,MAAMA,EAAG,GAAI,MAAO,CAAE9zB,MAAO8zB,EAAG,GAAKA,EAAG,QAAK,EAAQ9U,MAAM,EAC9E,CAtBgDqU,CAAK,CAACx5B,EAAG2f,GAAK,CAAG,CAuBrE,CAEO,SAASua,EAAgBj6B,EAAGk6B,EAAGC,EAAGC,QAC1B7yB,IAAP6yB,IAAkBA,EAAKD,GAC3Bn6B,EAAEo6B,GAAMF,EAAEC,EACd,CAEO,SAASE,EAAaH,EAAGpD,GAC5B,IAAK,IAAIe,KAAKqC,EAAa,YAANrC,GAAoBf,EAAQgB,eAAeD,KAAIf,EAAQe,GAAKqC,EAAErC,GACvF,CAEO,SAASX,EAASl3B,GACrB,IAAIo4B,EAAsB,oBAAXrV,QAAyBA,OAAOC,SAAUkX,EAAI9B,GAAKp4B,EAAEo4B,GAAIl4B,EAAI,EAC5E,GAAIg6B,EAAG,OAAOA,EAAElV,KAAKhlB,GACrB,GAAIA,GAAyB,kBAAbA,EAAEF,OAAqB,MAAO,CAC1CmlB,KAAM,WAEF,OADIjlB,GAAKE,GAAKF,EAAEF,SAAQE,OAAI,GACrB,CAAEkG,MAAOlG,GAAKA,EAAEE,KAAMglB,MAAOllB,EACxC,GAEJ,MAAM,IAAIojB,UAAUgV,EAAI,0BAA4B,kCACxD,CAEO,SAAS7W,EAAOvhB,EAAGD,GACtB,IAAIm6B,EAAsB,oBAAXnX,QAAyB/iB,EAAE+iB,OAAOC,UACjD,IAAKkX,EAAG,OAAOl6B,EACf,IAAmBT,EAAYN,EAA3BiB,EAAIg6B,EAAElV,KAAKhlB,GAAOs6B,EAAK,GAC3B,IACI,WAAc,IAANv6B,GAAgBA,KAAM,MAAQR,EAAIW,EAAE+kB,QAAQC,MAAMoV,EAAGxZ,KAAKvhB,EAAE2G,MACxE,CACA,MAAOzC,GAASxE,EAAI,CAAEwE,MAAOA,EAAS,CAAC,QAEnC,IACQlE,IAAMA,EAAE2lB,OAASgV,EAAIh6B,EAAU,SAAIg6B,EAAElV,KAAK9kB,EAClD,CAAC,QACS,GAAIjB,EAAG,MAAMA,EAAEwE,KAAO,CACpC,CACA,OAAO62B,CACX,CAEO,SAASC,IACZ,IAAK,IAAID,EAAK,GAAIp6B,EAAI,EAAGA,EAAI8jB,UAAUlkB,OAAQI,IAC3Co6B,EAAKA,EAAG1Y,OAAOL,EAAOyC,UAAU9jB,KACpC,OAAOo6B,CACX,CAEO,SAASE,IACZ,IAAK,IAAIpC,EAAI,EAAGl4B,EAAI,EAAGu6B,EAAKzW,UAAUlkB,OAAQI,EAAIu6B,EAAIv6B,IAAKk4B,GAAKpU,UAAU9jB,GAAGJ,OACxE,IAAIP,EAAIiiB,MAAM4W,GAAI+B,EAAI,EAA3B,IAA8Bj6B,EAAI,EAAGA,EAAIu6B,EAAIv6B,IACzC,IAAK,IAAID,EAAI+jB,UAAU9jB,GAAIw6B,EAAI,EAAGC,EAAK16B,EAAEH,OAAQ46B,EAAIC,EAAID,IAAKP,IAC1D56B,EAAE46B,GAAKl6B,EAAEy6B,GACjB,OAAOn7B,CACX,CAEO,SAASq7B,EAAQlb,GACpB,OAAOxgB,gBAAgB07B,GAAW17B,KAAKwgB,EAAIA,EAAGxgB,MAAQ,IAAI07B,EAAQlb,EACtE,CAEO,SAASmb,EAAiB3B,EAASC,EAAYE,GAClD,IAAKtW,OAAO+X,cAAe,MAAM,IAAI1X,UAAU,wCAC/C,IAAoDljB,EAAhDy5B,EAAIN,EAAUvV,MAAMoV,EAASC,GAAc,IAAQ4B,EAAI,GAC3D,OAAO76B,EAAI,CAAC,EAAG65B,EAAK,QAASA,EAAK,SAAUA,EAAK,UAAW75B,EAAE6iB,OAAO+X,eAAiB,WAAc,OAAO57B,IAAM,EAAGgB,EACpH,SAAS65B,EAAKh6B,GAAS45B,EAAE55B,KAAIG,EAAEH,GAAK,SAAU2f,GAAK,OAAO,IAAIQ,SAAQ,SAAUjgB,EAAGy3B,GAAKqD,EAAEja,KAAK,CAAC/gB,EAAG2f,EAAGzf,EAAGy3B,IAAM,GAAKsD,EAAOj7B,EAAG2f,EAAI,GAAI,EAAG,CACzI,SAASsb,EAAOj7B,EAAG2f,GAAK,KACVngB,EADqBo6B,EAAE55B,GAAG2f,IACnBxZ,iBAAiB00B,EAAU1a,QAAQ4B,QAAQviB,EAAE2G,MAAMwZ,GAAGwN,KAAK+N,EAAStZ,GAAUuZ,EAAOH,EAAE,GAAG,GAAIx7B,EADtE,CAAE,MAAON,GAAKi8B,EAAOH,EAAE,GAAG,GAAI97B,EAAI,CAC/E,IAAcM,CADmE,CAEjF,SAAS07B,EAAQ/0B,GAAS80B,EAAO,OAAQ90B,EAAQ,CACjD,SAASyb,EAAOzb,GAAS80B,EAAO,QAAS90B,EAAQ,CACjD,SAASg1B,EAAOvc,EAAGe,GAASf,EAAEe,GAAIqb,EAAEI,QAASJ,EAAEj7B,QAAQk7B,EAAOD,EAAE,GAAG,GAAIA,EAAE,GAAG,GAAK,CACrF,CAEO,SAASK,EAAiBp7B,GAC7B,IAAIE,EAAG23B,EACP,OAAO33B,EAAI,CAAC,EAAG65B,EAAK,QAASA,EAAK,SAAS,SAAU96B,GAAK,MAAMA,CAAG,IAAI86B,EAAK,UAAW75B,EAAE6iB,OAAOC,UAAY,WAAc,OAAO9jB,IAAM,EAAGgB,EAC1I,SAAS65B,EAAKh6B,EAAG4e,GAAKze,EAAEH,GAAKC,EAAED,GAAK,SAAU2f,GAAK,OAAQmY,GAAKA,GAAK,CAAE3xB,MAAO00B,EAAQ56B,EAAED,GAAG2f,IAAKwF,KAAY,WAANnlB,GAAmB4e,EAAIA,EAAEe,GAAKA,CAAG,EAAIf,CAAG,CAClJ,CAEO,SAAS0c,EAAcr7B,GAC1B,IAAK+iB,OAAO+X,cAAe,MAAM,IAAI1X,UAAU,wCAC/C,IAAiCljB,EAA7Bg6B,EAAIl6B,EAAE+iB,OAAO+X,eACjB,OAAOZ,EAAIA,EAAElV,KAAKhlB,IAAMA,EAAqCk3B,EAASl3B,GAA2BE,EAAI,CAAC,EAAG65B,EAAK,QAASA,EAAK,SAAUA,EAAK,UAAW75B,EAAE6iB,OAAO+X,eAAiB,WAAc,OAAO57B,IAAM,EAAGgB,GAC9M,SAAS65B,EAAKh6B,GAAKG,EAAEH,GAAKC,EAAED,IAAM,SAAU2f,GAAK,OAAO,IAAIQ,SAAQ,SAAU4B,EAASH,IACvF,SAAgBG,EAASH,EAAQ8V,EAAG/X,GAAKQ,QAAQ4B,QAAQpC,GAAGwN,MAAK,SAASxN,GAAKoC,EAAQ,CAAE5b,MAAOwZ,EAAGwF,KAAMuS,GAAM,GAAG9V,EAAS,EADbuZ,CAAOpZ,EAASH,GAA7BjC,EAAI1f,EAAED,GAAG2f,IAA8BwF,KAAMxF,EAAExZ,MAAQ,GAAI,CAAG,CAEnK,CAEO,SAASo1B,EAAqBC,EAAQC,GAEzC,OADIvc,OAAOC,eAAkBD,OAAOC,eAAeqc,EAAQ,MAAO,CAAEr1B,MAAOs1B,IAAiBD,EAAOC,IAAMA,EAClGD,CACX,CAEO,SAASE,EAAaC,GACzB,GAAIA,GAAOA,EAAIC,WAAY,OAAOD,EAClC,IAAIt3B,EAAS,CAAC,EACd,GAAW,MAAPs3B,EAAa,IAAK,IAAIvB,KAAKuB,EAASzc,OAAO6Y,eAAe9S,KAAK0W,EAAKvB,KAAI/1B,EAAO+1B,GAAKuB,EAAIvB,IAE5F,OADA/1B,EAAOwQ,QAAU8mB,EACVt3B,CACX,CAEO,SAASw3B,EAAgBF,GAC5B,OAAQA,GAAOA,EAAIC,WAAcD,EAAM,CAAE9mB,QAAS8mB,EACtD,CAEO,SAASG,EAAuBC,EAAUC,GAC7C,IAAKA,EAAWC,IAAIF,GAChB,MAAM,IAAI1Y,UAAU,kDAExB,OAAO2Y,EAAW/c,IAAI8c,EAC1B,CAEO,SAASG,EAAuBH,EAAUC,EAAY71B,GACzD,IAAK61B,EAAWC,IAAIF,GAChB,MAAM,IAAI1Y,UAAU,kDAGxB,OADA2Y,EAAWG,IAAIJ,EAAU51B,GAClBA,CACX,yBCzNA,IAAIk9wB,EAAKltvB,EAAQ,OACbgwB,EAAKhwB,EAAQ,MAEb4uB,EAAOoB,EACXpB,EAAKs+tB,GAAKA,EACVt+tB,EAAKoB,GAAKA,EAEVi+J,EAAOrtL,QAAUguB,qBCFjB,IADA,IAAIE,EAAY,GACP9kD,EAAI,EAAGA,EAAI,MAAOA,EACzB8kD,EAAU9kD,IAAMA,EAAI,KAAOO,SAAS,IAAIsE,OAAO,GAmBjDo/M,EAAOrtL,QAhBP,SAAqBquB,EAAKF,GACxB,IAAI/kD,EAAI+kD,GAAU,EACdo+tB,EAAMr+tB,EAEV,MAAQ,CACNq+tB,EAAIl+tB,EAAIjlD,MAAOmjxB,EAAIl+tB,EAAIjlD,MACvBmjxB,EAAIl+tB,EAAIjlD,MAAOmjxB,EAAIl+tB,EAAIjlD,MAAO,IAC9BmjxB,EAAIl+tB,EAAIjlD,MAAOmjxB,EAAIl+tB,EAAIjlD,MAAO,IAC9BmjxB,EAAIl+tB,EAAIjlD,MAAOmjxB,EAAIl+tB,EAAIjlD,MAAO,IAC9BmjxB,EAAIl+tB,EAAIjlD,MAAOmjxB,EAAIl+tB,EAAIjlD,MAAO,IAC9BmjxB,EAAIl+tB,EAAIjlD,MAAOmjxB,EAAIl+tB,EAAIjlD,MACvBmjxB,EAAIl+tB,EAAIjlD,MAAOmjxB,EAAIl+tB,EAAIjlD,MACvBmjxB,EAAIl+tB,EAAIjlD,MAAOmjxB,EAAIl+tB,EAAIjlD,OACtBgmB,KAAK,GACV,oBChBA,IAAIyW,EAAqC,oBAAXsC,QAA0BA,OAAOtC,iBAAmBsC,OAAOtC,gBAAgBj9B,KAAKu/B,SACnE,oBAAbxC,UAAsE,mBAAnCj9B,OAAOi9B,SAASE,iBAAiCF,SAASE,gBAAgBj9B,KAAK+8B,UAEhJ,GAAIE,EAAiB,CAEnB,IAAIioB,EAAQ,IAAI5nB,WAAW,IAE3BmnL,EAAOrtL,QAAU,WAEf,OADA6F,EAAgBioB,GACTA,CACT,CACF,KAAO,CAKL,IAAIQ,EAAO,IAAI5jC,MAAM,IAErB2iM,EAAOrtL,QAAU,WACf,IAAK,IAAWv3B,EAAPW,EAAI,EAAMA,EAAI,GAAIA,IACN,KAAV,EAAJA,KAAiBX,EAAoB,WAAhBuoC,KAAKwb,UAC/B8B,EAAKllD,GAAKX,MAAY,EAAJW,IAAa,GAAK,IAGtC,OAAOklD,CACT,CACF,yBCjCA,IAQIk+tB,EACAC,EATA1+tB,EAAM3uB,EAAQ,MACdstvB,EAActtvB,EAAQ,OAWtButvB,EAAa,EACbC,EAAa,EA+FjBv/jB,EAAOrtL,QA5FP,SAAYttB,EAAS27C,EAAKF,GACxB,IAAI/kD,EAAIilD,GAAOF,GAAU,EACrBvtB,EAAIytB,GAAO,GAGXo7B,GADJ/2E,EAAUA,GAAW,CAAC,GACH+2E,MAAQ+isB,EACvBK,OAAgCp8wB,IAArBiC,EAAQm6wB,SAAyBn6wB,EAAQm6wB,SAAWJ,EAKnE,GAAY,MAARhjsB,GAA4B,MAAZojsB,EAAkB,CACpC,IAAIC,EAAY/+tB,IACJ,MAAR07B,IAEFA,EAAO+isB,EAAU,CACA,EAAfM,EAAU,GACVA,EAAU,GAAIA,EAAU,GAAIA,EAAU,GAAIA,EAAU,GAAIA,EAAU,KAGtD,MAAZD,IAEFA,EAAWJ,EAAiD,OAApCK,EAAU,IAAM,EAAIA,EAAU,IAE1D,CAMA,IAAIC,OAA0Bt8wB,IAAlBiC,EAAQq6wB,MAAsBr6wB,EAAQq6wB,OAAQ,IAAIrhxB,MAAOgyC,UAIjEsvuB,OAA0Bv8wB,IAAlBiC,EAAQs6wB,MAAsBt6wB,EAAQs6wB,MAAQJ,EAAa,EAGnEljwB,EAAMqjwB,EAAQJ,GAAeK,EAAQJ,GAAY,IAcrD,GAXIljwB,EAAK,QAA0BjZ,IAArBiC,EAAQm6wB,WACpBA,EAAWA,EAAW,EAAI,QAKvBnjwB,EAAK,GAAKqjwB,EAAQJ,SAAiCl8wB,IAAlBiC,EAAQs6wB,QAC5CA,EAAQ,GAINA,GAAS,IACX,MAAM,IAAIzkxB,MAAM,mDAGlBokxB,EAAaI,EACbH,EAAaI,EACbP,EAAYI,EAMZ,IAAII,GAA4B,KAAb,WAHnBF,GAAS,cAG+BC,GAAS,WACjDpsvB,EAAEx3B,KAAO6jxB,IAAO,GAAK,IACrBrsvB,EAAEx3B,KAAO6jxB,IAAO,GAAK,IACrBrsvB,EAAEx3B,KAAO6jxB,IAAO,EAAI,IACpBrsvB,EAAEx3B,KAAY,IAAL6jxB,EAGT,IAAIC,EAAOH,EAAQ,WAAc,IAAS,UAC1CnsvB,EAAEx3B,KAAO8jxB,IAAQ,EAAI,IACrBtsvB,EAAEx3B,KAAa,IAAN8jxB,EAGTtsvB,EAAEx3B,KAAO8jxB,IAAQ,GAAK,GAAM,GAC5BtsvB,EAAEx3B,KAAO8jxB,IAAQ,GAAK,IAGtBtsvB,EAAEx3B,KAAOyjxB,IAAa,EAAI,IAG1BjsvB,EAAEx3B,KAAkB,IAAXyjxB,EAGT,IAAK,IAAI5jxB,EAAI,EAAGA,EAAI,IAAKA,EACvB23B,EAAEx3B,EAAIH,GAAKwgF,EAAKxgF,GAGlB,OAAOolD,GAAYq+tB,EAAY9rvB,EACjC,wBC1GA,IAAImtB,EAAM3uB,EAAQ,MACdstvB,EAActtvB,EAAQ,OA2B1BiuL,EAAOrtL,QAzBP,SAAYttB,EAAS27C,EAAKF,GACxB,IAAI/kD,EAAIilD,GAAOF,GAAU,EAEF,iBAAZz7C,IACT27C,EAAkB,WAAZ37C,EAAuB,IAAIgY,MAAM,IAAM,KAC7ChY,EAAU,MAIZ,IAAI47C,GAFJ57C,EAAUA,GAAW,CAAC,GAEH85C,SAAW95C,EAAQq7C,KAAOA,KAO7C,GAJAO,EAAK,GAAgB,GAAVA,EAAK,GAAa,GAC7BA,EAAK,GAAgB,GAAVA,EAAK,GAAa,IAGzBD,EACF,IAAK,IAAI2F,EAAK,EAAGA,EAAK,KAAMA,EAC1B3F,EAAIjlD,EAAI4qD,GAAM1F,EAAK0F,GAIvB,OAAO3F,GAAOq+tB,EAAYp+tB,EAC5B,qDCVa8+e,QAMJ0oM,gCCtBT12sB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAII,IAAMH,EAAQI,cAAc,MAAO,CAAC,eACxCrlwB,OAAOC,eAAeilwB,EAAUC,SAAc,IAAG,aAAc,CAC7DplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAII,2BClBrBnuvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAIO,IAAMN,EAAQI,cAAc,MAAO,CAAC,eACxCrlwB,OAAOC,eAAeilwB,EAAUC,SAAc,IAAG,aAAc,CAC7DplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIO,2BClBrBtuvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAqB,WAAI,CAAC,EACpCH,EAAIQ,WAAaP,EAAQI,cAAc,aAAc,CAAC,eACtDpuvB,EAAQ,OACRjX,OAAOC,eAAeilwB,EAAUC,SAAqB,WAAG,aAAc,CACpEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIQ,kCClBrBvuvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAiC,uBAAI,CAAC,EAChDH,EAAIS,uBAAyBR,EAAQI,cAAc,yBAA0B,CAAC,eAC9ErlwB,OAAOC,eAAeilwB,EAAUC,SAAiC,uBAAG,aAAc,CAChFplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIS,8CCjBrBxuvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAiB,OAAI,CAAC,EAChCH,EAAIU,OAAST,EAAQI,cAAc,SAAU,CAAC,eAC9CrlwB,OAAOC,eAAeilwB,EAAUC,SAAiB,OAAG,aAAc,CAChEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIU,8BCjBrBzuvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAsB,YAAI,CAAC,EACrCH,EAAIW,YAAcV,EAAQI,cAAc,cAAe,CAAC,eACxDrlwB,OAAOC,eAAeilwB,EAAUC,SAAsB,YAAG,aAAc,CACrEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIW,mCCjBrB1uvB,EAAQ,KACRiuL,EAAOrtL,QAAU,CACfutvB,IAAKnuvB,EAAQ,OACbuuvB,WAAYvuvB,EAAQ,OACpBwuvB,uBAAwBxuvB,EAAQ,OAChC0uvB,YAAa1uvB,EAAQ,OACrB2uvB,eAAgB3uvB,EAAQ,OACxB4uvB,WAAY5uvB,EAAQ,OACpB6uvB,SAAU7uvB,EAAQ,OAClB8uvB,WAAY9uvB,EAAQ,OACpB+uvB,WAAY/uvB,EAAQ,OACpBgvvB,iBAAkBhvvB,EAAQ,OAC1BivvB,eAAgBjvvB,EAAQ,OACxBkvvB,UAAWlvvB,EAAQ,OACnBmvvB,WAAYnvvB,EAAQ,OACpBovvB,WAAYpvvB,EAAQ,OACpBqvvB,aAAcrvvB,EAAQ,OACtBsvvB,gBAAiBtvvB,EAAQ,OACzBuvvB,+BAAgCvvvB,EAAQ,OACxCwvvB,YAAaxvvB,EAAQ,OACrByvvB,cAAezvvB,EAAQ,OACvB0vvB,IAAK1vvB,EAAQ,OACb2vvB,WAAY3vvB,EAAQ,OACpB4vvB,cAAe5vvB,EAAQ,OACvB6vvB,SAAU7vvB,EAAQ,OAClB8vvB,gBAAiB9vvB,EAAQ,OACzB+vvB,IAAK/vvB,EAAQ,OACbgwvB,IAAKhwvB,EAAQ,OACbiwvB,IAAKjwvB,EAAQ,OACbkwvB,IAAKlwvB,EAAQ,OACbmwvB,YAAanwvB,EAAQ,OACrBowvB,iBAAkBpwvB,EAAQ,OAC1BqwvB,IAAKrwvB,EAAQ,OACbswvB,MAAOtwvB,EAAQ,OACfuwvB,IAAKvwvB,EAAQ,OACbwwvB,kBAAmBxwvB,EAAQ,OAC3BywvB,SAAUzwvB,EAAQ,OAClB0wvB,SAAU1wvB,EAAQ,OAClB2wvB,IAAK3wvB,EAAQ,OACb4wvB,UAAW5wvB,EAAQ,OACnB6wvB,IAAK7wvB,EAAQ,OACb8wvB,QAAS9wvB,EAAQ,MACjB+wvB,QAAS/wvB,EAAQ,OACjBgxvB,IAAKhxvB,EAAQ,OACbixvB,OAAQjxvB,EAAQ,OAChBkxvB,WAAYlxvB,EAAQ,OACpBmxvB,gBAAiBnxvB,EAAQ,OACzBoxvB,6BAA8BpxvB,EAAQ,KACtCqxvB,MAAOrxvB,EAAQ,OACfsxvB,gBAAiBtxvB,EAAQ,OACzBuxvB,SAAUvxvB,EAAQ,OAClBwxvB,MAAOxxvB,EAAQ,OACfyxvB,IAAKzxvB,EAAQ,OACb0xvB,SAAU1xvB,EAAQ,OAClB2xvB,YAAa3xvB,EAAQ,OACrB4xvB,QAAS5xvB,EAAQ,OACjB6xvB,eAAgB7xvB,EAAQ,MACxBu1C,GAAIv1C,EAAQ,OACZ8xvB,eAAgB9xvB,EAAQ,OACxB+xvB,IAAK/xvB,EAAQ,OACbgyvB,IAAKhyvB,EAAQ,OACbiyvB,IAAKjyvB,EAAQ,OACbkyvB,IAAKlyvB,EAAQ,OACbmyvB,eAAgBnyvB,EAAQ,OACxBoyvB,IAAKpyvB,EAAQ,OACbqyvB,KAAMryvB,EAAQ,OACdsyvB,IAAKtyvB,EAAQ,MACbuyvB,SAAUvyvB,EAAQ,OAClBwyvB,wBAAyBxyvB,EAAQ,OACjCyuvB,OAAQzuvB,EAAQ,OAChByyvB,WAAYzyvB,EAAQ,OACpB0yvB,QAAS1yvB,EAAQ,OACjB2yvB,aAAc3yvB,EAAQ,OACtB4yvB,eAAgB5yvB,EAAQ,OACxB6yvB,WAAY7yvB,EAAQ,OACpB8yvB,0BAA2B9yvB,EAAQ,OACnC+yvB,kBAAmB/yvB,EAAQ,OAC3BgzvB,aAAchzvB,EAAQ,OACtBizvB,UAAWjzvB,EAAQ,OACnBkzvB,eAAgBlzvB,EAAQ,OACxBmzvB,QAASnzvB,EAAQ,OACjBozvB,eAAgBpzvB,EAAQ,OACxBqzvB,aAAcrzvB,EAAQ,OACtBszvB,kBAAmBtzvB,EAAQ,OAC3BuzvB,YAAavzvB,EAAQ,OACrBwzvB,kBAAmBxzvB,EAAQ,MAC3ByzvB,mBAAoBzzvB,EAAQ,OAC5B0zvB,gBAAiB1zvB,EAAQ,OACzB2zvB,qBAAsB3zvB,EAAQ,OAC9B4zvB,mBAAoB5zvB,EAAQ,OAC5B6zvB,8BAA+B7zvB,EAAQ,OACvCsuvB,IAAKtuvB,EAAQ,OACbo3D,SAAUp3D,EAAQ,OAClB8zvB,aAAc9zvB,EAAQ,+BC7FxBA,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAyB,eAAI,CAAC,EACxCH,EAAIY,eAAiBX,EAAQI,cAAc,iBAAkB,CAAC,eAC9DrlwB,OAAOC,eAAeilwB,EAAUC,SAAyB,eAAG,aAAc,CACxEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIY,sCClBrB3uvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAqB,WAAI,CAAC,EACpCH,EAAIa,WAAaZ,EAAQI,cAAc,aAAc,CAAC,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,aAAc,cAAe,aAAc,cAAe,aAAc,cAAe,aAAc,cAAe,aAAc,cAAe,aAAc,cAAe,eACtbpuvB,EAAQ,OACRjX,OAAOC,eAAeilwB,EAAUC,SAAqB,WAAG,aAAc,CACpEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAEhBH,OAAOC,eAAeilwB,EAAUC,SAAqB,WAAG,aAAc,CACpEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAEhBH,OAAOC,eAAeilwB,EAAUC,SAAqB,WAAG,aAAc,CACpEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAEhBH,OAAOC,eAAeilwB,EAAUC,SAAqB,WAAG,aAAc,CACpEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,MAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,MAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAEhBH,OAAOC,eAAeilwB,EAAUC,SAAqB,WAAG,aAAc,CACpEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAEhBH,OAAOC,eAAeilwB,EAAUC,SAAqB,WAAG,aAAc,CACpEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAEhBH,OAAOC,eAAeilwB,EAAUC,SAAqB,WAAG,aAAc,CACpEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIa,kCC/ErB5uvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAmB,SAAI,CAAC,EAClCH,EAAIc,SAAWb,EAAQI,cAAc,WAAY,CAAC,eAClDrlwB,OAAOC,eAAeilwB,EAAUC,SAAmB,SAAG,aAAc,CAClEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIc,gCCjBrB7uvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAqB,WAAI,CAAC,EACpCH,EAAI0E,WAAazE,EAAQI,cAAc,aAAc,CAAC,eACtDrlwB,OAAOC,eAAeilwB,EAAUC,SAAqB,WAAG,aAAc,CACpEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI0E,kCCjBrBzyvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAqB,WAAI,CAAC,EACpCH,EAAIe,WAAad,EAAQI,cAAc,aAAc,CAAC,eACtDrlwB,OAAOC,eAAeilwB,EAAUC,SAAqB,WAAG,aAAc,CACpEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIe,kCCjBrB9uvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAqB,WAAI,CAAC,EACpCH,EAAIgB,WAAaf,EAAQI,cAAc,aAAc,CAAC,eACtDrlwB,OAAOC,eAAeilwB,EAAUC,SAAqB,WAAG,aAAc,CACpEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIgB,kCClBrB/uvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAA2B,iBAAI,CAAC,EAC1CH,EAAIiB,iBAAmBhB,EAAQI,cAAc,mBAAoB,CAAC,cAAe,eACjFrlwB,OAAOC,eAAeilwB,EAAUC,SAA2B,iBAAG,aAAc,CAC1EplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIiB,wCCjBrBhvvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAyB,eAAI,CAAC,EACxCH,EAAIkB,eAAiBjB,EAAQI,cAAc,iBAAkB,CAAC,eAC9DrlwB,OAAOC,eAAeilwB,EAAUC,SAAyB,eAAG,aAAc,CACxEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIkB,sCCjBrBjvvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAoB,UAAI,CAAC,EACnCH,EAAImB,UAAYlB,EAAQI,cAAc,YAAa,CAAC,eACpDrlwB,OAAOC,eAAeilwB,EAAUC,SAAoB,UAAG,aAAc,CACnEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAImB,iCCjBrBlvvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAqB,WAAI,CAAC,EACpCH,EAAIoB,WAAanB,EAAQI,cAAc,aAAc,CAAC,eACtDrlwB,OAAOC,eAAeilwB,EAAUC,SAAqB,WAAG,aAAc,CACpEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIoB,kCCjBrBnvvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAqB,WAAI,CAAC,EACpCH,EAAIqB,WAAapB,EAAQI,cAAc,aAAc,CAAC,eACtDrlwB,OAAOC,eAAeilwB,EAAUC,SAAqB,WAAG,aAAc,CACpEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,MAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIqB,kCClBrBpvvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAuB,aAAI,CAAC,EACtCH,EAAIsB,aAAerB,EAAQI,cAAc,eAAgB,CAAC,eAC1DrlwB,OAAOC,eAAeilwB,EAAUC,SAAuB,aAAG,aAAc,CACtEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,MAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIsB,oCCjBrBrvvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAA0B,gBAAI,CAAC,EACzCH,EAAIuB,gBAAkBtB,EAAQI,cAAc,kBAAmB,CAAC,eAChErlwB,OAAOC,eAAeilwB,EAAUC,SAA0B,gBAAG,aAAc,CACzEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIuB,uCCjBrBtvvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAyC,+BAAI,CAAC,EACxDH,EAAIwB,+BAAiCvB,EAAQI,cAAc,iCAAkC,CAAC,eAC9FrlwB,OAAOC,eAAeilwB,EAAUC,SAAyC,+BAAG,aAAc,CACxFplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIwB,sDCjBrBvvvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAsB,YAAI,CAAC,EACrCH,EAAIyB,YAAcxB,EAAQI,cAAc,cAAe,CAAC,eACxDrlwB,OAAOC,eAAeilwB,EAAUC,SAAsB,YAAG,aAAc,CACrEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,MAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIyB,mCCjBrBxvvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAqB,WAAI,CAAC,EACpCH,EAAI8E,WAAa7E,EAAQI,cAAc,aAAc,CAAC,eACtDrlwB,OAAOC,eAAeilwB,EAAUC,SAAqB,WAAG,aAAc,CACpEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI8E,kCCjBrB7yvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAA4B,kBAAI,CAAC,EAC3CH,EAAIuF,kBAAoBtF,EAAQI,cAAc,oBAAqB,CAAC,eACpErlwB,OAAOC,eAAeilwB,EAAUC,SAA4B,kBAAG,aAAc,CAC3EplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIuF,yCCjBrBtzvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAwB,cAAI,CAAC,EACvCH,EAAI0B,cAAgBzB,EAAQI,cAAc,gBAAiB,CAAC,eAC5DrlwB,OAAOC,eAAeilwB,EAAUC,SAAwB,cAAG,aAAc,CACvEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI0B,qCCjBrBzvvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAkB,QAAI,CAAC,EACjCH,EAAIoF,QAAUnF,EAAQI,cAAc,UAAW,CAAC,eAChDrlwB,OAAOC,eAAeilwB,EAAUC,SAAkB,QAAG,aAAc,CACjEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIoF,+BCjBrBnzvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAuB,aAAI,CAAC,EACtCH,EAAI4E,aAAe3E,EAAQI,cAAc,eAAgB,CAAC,eAC1DrlwB,OAAOC,eAAeilwB,EAAUC,SAAuB,aAAG,aAAc,CACtEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,MAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI4E,oCCjBrB3yvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAI2B,IAAM1B,EAAQI,cAAc,MAAO,CAAC,eACxCrlwB,OAAOC,eAAeilwB,EAAUC,SAAc,IAAG,aAAc,CAC7DplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI2B,2BCjBrB1vvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAqB,WAAI,CAAC,EACpCH,EAAI4B,WAAa3B,EAAQI,cAAc,aAAc,CAAC,eACtDrlwB,OAAOC,eAAeilwB,EAAUC,SAAqB,WAAG,aAAc,CACpEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI4B,kCCjBrB3vvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAwB,cAAI,CAAC,EACvCH,EAAI6B,cAAgB5B,EAAQI,cAAc,gBAAiB,CAAC,eAC5DrlwB,OAAOC,eAAeilwB,EAAUC,SAAwB,cAAG,aAAc,CACvEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI6B,qCCjBrB5vvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAmB,SAAI,CAAC,EAClCH,EAAI8B,SAAW7B,EAAQI,cAAc,WAAY,CAAC,aAAc,eAChEpuvB,EAAQ,OACRjX,OAAOC,eAAeilwB,EAAUC,SAAmB,SAAG,aAAc,CAClEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAEhBH,OAAOC,eAAeilwB,EAAUC,SAAmB,SAAG,aAAc,CAClEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI8B,gCC7BrB7vvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAA0B,gBAAI,CAAC,EACzCH,EAAI+B,gBAAkB9B,EAAQI,cAAc,kBAAmB,CAAC,eAChErlwB,OAAOC,eAAeilwB,EAAUC,SAA0B,gBAAG,aAAc,CACzEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI+B,uCCjBrB9vvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAIgC,IAAM/B,EAAQI,cAAc,MAAO,CAAC,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,cAAe,eAC5NpuvB,EAAQ,OACRjX,OAAOC,eAAeilwB,EAAUC,SAAc,IAAG,aAAc,CAC7DplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,MAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIgC,2BCnBrB/vvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAIiC,IAAMhC,EAAQI,cAAc,MAAO,CAAC,eACxCrlwB,OAAOC,eAAeilwB,EAAUC,SAAc,IAAG,aAAc,CAC7DplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIiC,2BClBrBhwvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAIkC,IAAMjC,EAAQI,cAAc,MAAO,CAAC,eACxCrlwB,OAAOC,eAAeilwB,EAAUC,SAAc,IAAG,aAAc,CAC7DplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,MAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIkC,2BClBrBjwvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAImC,IAAMlC,EAAQI,cAAc,MAAO,CAAC,eACxCrlwB,OAAOC,eAAeilwB,EAAUC,SAAc,IAAG,aAAc,CAC7DplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAImC,2BCjBrBlwvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAsB,YAAI,CAAC,EACrCH,EAAIoC,YAAcnC,EAAQI,cAAc,cAAe,CAAC,cAAe,cAAe,cAAe,cAAe,eACpHrlwB,OAAOC,eAAeilwB,EAAUC,SAAsB,YAAG,aAAc,CACrEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIoC,mCClBrBnwvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAA2B,iBAAI,CAAC,EAC1CH,EAAIqC,iBAAmBpC,EAAQI,cAAc,mBAAoB,CAAC,eAClErlwB,OAAOC,eAAeilwB,EAAUC,SAA2B,iBAAG,aAAc,CAC1EplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIqC,wCClBrBpwvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAA4B,kBAAI,CAAC,EAC3CH,EAAIyC,kBAAoBxC,EAAQI,cAAc,oBAAqB,CAAC,eACpErlwB,OAAOC,eAAeilwB,EAAUC,SAA4B,kBAAG,aAAc,CAC3EplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIyC,yCClBrBxwvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAIsC,IAAMrC,EAAQI,cAAc,MAAO,CAAC,eACxCrlwB,OAAOC,eAAeilwB,EAAUC,SAAc,IAAG,aAAc,CAC7DplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIsC,2BClBrBrwvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAgB,MAAI,CAAC,EAC/BH,EAAIuC,MAAQtC,EAAQI,cAAc,QAAS,CAAC,eAC5CrlwB,OAAOC,eAAeilwB,EAAUC,SAAgB,MAAG,aAAc,CAC/DplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIuC,6BClBrBtwvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAIwC,IAAMvC,EAAQI,cAAc,MAAO,CAAC,eACxCrlwB,OAAOC,eAAeilwB,EAAUC,SAAc,IAAG,aAAc,CAC7DplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIwC,2BClBrBvwvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAmB,SAAI,CAAC,EAClCH,EAAI0C,SAAWzC,EAAQI,cAAc,WAAY,CAAC,eAClDrlwB,OAAOC,eAAeilwB,EAAUC,SAAmB,SAAG,aAAc,CAClEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI0C,gCCjBrBzwvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAA+B,qBAAI,CAAC,EAC9CH,EAAI4F,qBAAuB3F,EAAQI,cAAc,uBAAwB,CAAC,eAC1ErlwB,OAAOC,eAAeilwB,EAAUC,SAA+B,qBAAG,aAAc,CAC9EplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI4F,4CCjBrB3zvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAA0B,gBAAI,CAAC,EACzCH,EAAI2F,gBAAkB1F,EAAQI,cAAc,kBAAmB,CAAC,eAChErlwB,OAAOC,eAAeilwB,EAAUC,SAA0B,gBAAG,aAAc,CACzEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,MAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI2F,uCCjBrB1zvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAmB,SAAI,CAAC,EAClCH,EAAI2C,SAAW1C,EAAQI,cAAc,WAAY,CAAC,eAClDrlwB,OAAOC,eAAeilwB,EAAUC,SAAmB,SAAG,aAAc,CAClEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI2C,gCCjBrB1wvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAI4C,IAAM3C,EAAQI,cAAc,MAAO,CAAC,eACxCrlwB,OAAOC,eAAeilwB,EAAUC,SAAc,IAAG,aAAc,CAC7DplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI4C,2BClBrB3wvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAoB,UAAI,CAAC,EACnCH,EAAI6C,UAAY5C,EAAQI,cAAc,YAAa,CAAC,cAAe,eACnErlwB,OAAOC,eAAeilwB,EAAUC,SAAoB,UAAG,aAAc,CACnEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI6C,iCCjBrB5wvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAI8C,IAAM7C,EAAQI,cAAc,MAAO,CAAC,eACxCrlwB,OAAOC,eAAeilwB,EAAUC,SAAc,IAAG,aAAc,CAC7DplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI8C,2BCjBrB7wvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAuB,aAAI,CAAC,EACtCH,EAAIsF,aAAerF,EAAQI,cAAc,eAAgB,CAAC,eAC1DrlwB,OAAOC,eAAeilwB,EAAUC,SAAuB,aAAG,aAAc,CACtEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIsF,mCCjBrBrzvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAkB,QAAI,CAAC,EACjCH,EAAI+C,QAAU9C,EAAQI,cAAc,UAAW,CAAC,eAChDpuvB,EAAQ,OACRjX,OAAOC,eAAeilwB,EAAUC,SAAkB,QAAG,aAAc,CACjEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI+C,+BClBrB9wvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAkB,QAAI,CAAC,EACjCH,EAAIgD,QAAU/C,EAAQI,cAAc,UAAW,CAAC,eAChDrlwB,OAAOC,eAAeilwB,EAAUC,SAAkB,QAAG,aAAc,CACjEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,KAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIgD,+BClBrB/wvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAuB,aAAI,CAAC,EACtCH,EAAIiF,aAAehF,EAAQI,cAAc,eAAgB,CAAC,eAC1DrlwB,OAAOC,eAAeilwB,EAAUC,SAAuB,aAAG,aAAc,CACtEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIiF,oCCjBrBhzvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAoC,0BAAI,CAAC,EACnDH,EAAI+E,0BAA4B9E,EAAQI,cAAc,4BAA6B,CAAC,eACpFrlwB,OAAOC,eAAeilwB,EAAUC,SAAoC,0BAAG,aAAc,CACnFplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI+E,iDCjBrB9yvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAA4B,kBAAI,CAAC,EAC3CH,EAAIgF,kBAAoB/E,EAAQI,cAAc,oBAAqB,CAAC,eACpErlwB,OAAOC,eAAeilwB,EAAUC,SAA4B,kBAAG,aAAc,CAC3EplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIgF,yCCjBrB/yvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAwC,8BAAI,CAAC,EACvDH,EAAI8F,8BAAgC7F,EAAQI,cAAc,gCAAiC,CAAC,eAC5FrlwB,OAAOC,eAAeilwB,EAAUC,SAAwC,8BAAG,aAAc,CACvFplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI8F,qDCjBrB7zvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAIiD,IAAMhD,EAAQI,cAAc,MAAO,CAAC,eACxCrlwB,OAAOC,eAAeilwB,EAAUC,SAAc,IAAG,aAAc,CAC7DplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,MAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIiD,2BCjBrBhxvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAiB,OAAI,CAAC,EAChCH,EAAIkD,OAASjD,EAAQI,cAAc,SAAU,CAAC,aAAc,eAC5DpuvB,EAAQ,OACRjX,OAAOC,eAAeilwB,EAAUC,SAAiB,OAAG,aAAc,CAChEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAEhBH,OAAOC,eAAeilwB,EAAUC,SAAiB,OAAG,aAAc,CAChEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIkD,8BC5BrBjxvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAkC,wBAAI,CAAC,EACjDH,EAAIyE,wBAA0BxE,EAAQI,cAAc,0BAA2B,CAAC,eAChFrlwB,OAAOC,eAAeilwB,EAAUC,SAAkC,wBAAG,aAAc,CACjFplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIyE,+CCjBrBxyvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAqB,WAAI,CAAC,EACpCH,EAAImD,WAAalD,EAAQI,cAAc,aAAc,CAAC,eACtDrlwB,OAAOC,eAAeilwB,EAAUC,SAAqB,WAAG,aAAc,CACpEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAImD,kCCjBrBlxvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAuB,aAAI,CAAC,EACtCH,EAAI+F,aAAe9F,EAAQI,cAAc,eAAgB,CAAC,eAC1DrlwB,OAAOC,eAAeilwB,EAAUC,SAAuB,aAAG,aAAc,CACtEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,KAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI+F,oCCjBrB9zvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAmB,SAAI,CAAC,EAClCH,EAAI32rB,SAAW42rB,EAAQI,cAAc,WAAY,CAAC,eAClDrlwB,OAAOC,eAAeilwB,EAAUC,SAAmB,SAAG,aAAc,CAClEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI32rB,gCCjBrBp3D,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAA0B,gBAAI,CAAC,EACzCH,EAAIoD,gBAAkBnD,EAAQI,cAAc,kBAAmB,CAAC,eAChEpuvB,EAAQ,OACRjX,OAAOC,eAAeilwB,EAAUC,SAA0B,gBAAG,aAAc,CACzEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,MAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIoD,uCCnBrBnxvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAA6B,mBAAI,CAAC,EAC5CH,EAAI6F,mBAAqB5F,EAAQI,cAAc,qBAAsB,CAAC,eACtErlwB,OAAOC,eAAeilwB,EAAUC,SAA6B,mBAAG,aAAc,CAC5EplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI6F,wCCjBrB5zvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAuC,6BAAI,CAAC,EACtDH,EAAIqD,6BAA+BpD,EAAQI,cAAc,+BAAgC,CAAC,eAC1FrlwB,OAAOC,eAAeilwB,EAAUC,SAAuC,6BAAG,aAAc,CACtFplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIqD,oDCjBrBpxvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAyB,eAAI,CAAC,EACxCH,EAAI6E,eAAiB5E,EAAQI,cAAc,iBAAkB,CAAC,eAC9DrlwB,OAAOC,eAAeilwB,EAAUC,SAAyB,eAAG,aAAc,CACxEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI6E,sCCjBrB5yvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAA0B,gBAAI,CAAC,EACzCH,EAAIuD,gBAAkBtD,EAAQI,cAAc,kBAAmB,CAAC,eAChErlwB,OAAOC,eAAeilwB,EAAUC,SAA0B,gBAAG,aAAc,CACzEplwB,IAAK,WAEH,OADYkX,EAAQ,MAEtB,EACA7W,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIuD,uCChBrBtxvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAgB,MAAI,CAAC,EAC/BH,EAAIsD,MAAQrD,EAAQI,cAAc,QAAS,CAAC,eAC5CrlwB,OAAOC,eAAeilwB,EAAUC,SAAgB,MAAG,aAAc,CAC/DplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIsD,6BCjBrBrxvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAmB,SAAI,CAAC,EAClCH,EAAIwD,SAAWvD,EAAQI,cAAc,WAAY,CAAC,eAClDrlwB,OAAOC,eAAeilwB,EAAUC,SAAmB,SAAG,aAAc,CAClEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIwD,gCClBrBvxvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAsB,YAAI,CAAC,EACrCH,EAAIwF,YAAcvF,EAAQI,cAAc,cAAe,CAAC,eACxDrlwB,OAAOC,eAAeilwB,EAAUC,SAAsB,YAAG,aAAc,CACrEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIwF,kCCjBrBvzvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAA4B,kBAAI,CAAC,EAC3CH,EAAIyF,kBAAoBxF,EAAQI,cAAc,oBAAqB,CAAC,eACpErlwB,OAAOC,eAAeilwB,EAAUC,SAA4B,kBAAG,aAAc,CAC3EplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,MAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIyF,yCCjBrBxzvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAA6B,mBAAI,CAAC,EAC5CH,EAAI0F,mBAAqBzF,EAAQI,cAAc,qBAAsB,CAAC,eACtErlwB,OAAOC,eAAeilwB,EAAUC,SAA6B,mBAAG,aAAc,CAC5EplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,MAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI0F,0CCjBrBzzvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAgB,MAAI,CAAC,EAC/BH,EAAIyD,MAAQxD,EAAQI,cAAc,QAAS,CAAC,eAC5CpuvB,EAAQ,OACRjX,OAAOC,eAAeilwB,EAAUC,SAAgB,MAAG,aAAc,CAC/DplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIyD,6BClBrBxxvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAkB,QAAI,CAAC,EACjCH,EAAI2E,QAAU1E,EAAQI,cAAc,UAAW,CAAC,eAChDrlwB,OAAOC,eAAeilwB,EAAUC,SAAkB,QAAG,aAAc,CACjEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI2E,+BClBrB1yvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAI0D,IAAMzD,EAAQI,cAAc,MAAO,CAAC,aAAc,aAAc,aAAc,aAAc,cAAe,eAC/GpuvB,EAAQ,OACRjX,OAAOC,eAAeilwB,EAAUC,SAAc,IAAG,aAAc,CAC7DplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,KAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAEhBH,OAAOC,eAAeilwB,EAAUC,SAAc,IAAG,aAAc,CAC7DplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAEhBH,OAAOC,eAAeilwB,EAAUC,SAAc,IAAG,aAAc,CAC7DplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAEhBH,OAAOC,eAAeilwB,EAAUC,SAAc,IAAG,aAAc,CAC7DplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAEhBH,OAAOC,eAAeilwB,EAAUC,SAAc,IAAG,aAAc,CAC7DplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI0D,2BCxDrBzxvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAmB,SAAI,CAAC,EAClCH,EAAI2D,SAAW1D,EAAQI,cAAc,WAAY,CAAC,eAClDrlwB,OAAOC,eAAeilwB,EAAUC,SAAmB,SAAG,aAAc,CAClEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI2D,gCClBrB1xvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAsB,YAAI,CAAC,EACrCH,EAAI4D,YAAc3D,EAAQI,cAAc,cAAe,CAAC,eACxDrlwB,OAAOC,eAAeilwB,EAAUC,SAAsB,YAAG,aAAc,CACrEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI4D,mCClBrB3xvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAyB,eAAI,CAAC,EACxCH,EAAImF,eAAiBlF,EAAQI,cAAc,iBAAkB,CAAC,eAC9DrlwB,OAAOC,eAAeilwB,EAAUC,SAAyB,eAAG,aAAc,CACxEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAImF,sCCjBrBlzvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAkB,QAAI,CAAC,EACjCH,EAAI6D,QAAU5D,EAAQI,cAAc,UAAW,CAAC,eAChDpuvB,EAAQ,OACRjX,OAAOC,eAAeilwB,EAAUC,SAAkB,QAAG,aAAc,CACjEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI6D,8BCnBrB5xvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAyB,eAAI,CAAC,EACxCH,EAAI8D,eAAiB7D,EAAQI,cAAc,iBAAkB,CAAC,eAC9DrlwB,OAAOC,eAAeilwB,EAAUC,SAAyB,eAAG,aAAc,CACxEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI8D,sCCjBrB7xvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAa,GAAI,CAAC,EAC5BH,EAAIx4sB,GAAKy4sB,EAAQI,cAAc,KAAM,CAAC,eACtCpuvB,EAAQ,OACRjX,OAAOC,eAAeilwB,EAAUC,SAAa,GAAG,aAAc,CAC5DplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,MAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,MAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIx4sB,0BCnBrBv1C,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAyB,eAAI,CAAC,EACxCH,EAAIqF,eAAiBpF,EAAQI,cAAc,iBAAkB,CAAC,eAC9DrlwB,OAAOC,eAAeilwB,EAAUC,SAAyB,eAAG,aAAc,CACxEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIqF,sCCjBrBpzvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAyB,eAAI,CAAC,EACxCH,EAAI+D,eAAiB9D,EAAQI,cAAc,iBAAkB,CAAC,eAC9DrlwB,OAAOC,eAAeilwB,EAAUC,SAAyB,eAAG,aAAc,CACxEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAI+D,sCCjBrB9xvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAIgE,IAAM/D,EAAQI,cAAc,MAAO,CAAC,eACxCrlwB,OAAOC,eAAeilwB,EAAUC,SAAc,IAAG,aAAc,CAC7DplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,MAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIgE,2BClBrB/xvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAIiE,IAAMhE,EAAQI,cAAc,MAAO,CAAC,eACxCrlwB,OAAOC,eAAeilwB,EAAUC,SAAc,IAAG,aAAc,CAC7DplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIiE,2BCjBrBhyvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAIkE,IAAMjE,EAAQI,cAAc,MAAO,CAAC,eACxCpuvB,EAAQ,MACRjX,OAAOC,eAAeilwB,EAAUC,SAAc,IAAG,aAAc,CAC7DplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIkE,2BClBrBjyvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAImE,IAAMlE,EAAQI,cAAc,MAAO,CAAC,eACxCrlwB,OAAOC,eAAeilwB,EAAUC,SAAc,IAAG,aAAc,CAC7DplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAGpB,OAFAoiQ,EAAMisf,WAAaruvB,EAAAA,MAAAA,EACnBoiQ,EAAMrZ,QAAU/oP,EAAAA,OAAAA,EACToiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAImE,2BClBrBlyvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAyB,eAAI,CAAC,EACxCH,EAAIoE,eAAiBnE,EAAQI,cAAc,iBAAkB,CAAC,eAC9DrlwB,OAAOC,eAAeilwB,EAAUC,SAAyB,eAAG,aAAc,CACxEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIoE,sCCjBrBnyvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAIqE,IAAMpE,EAAQI,cAAc,MAAO,CAAC,eACxCpuvB,EAAQ,OACRjX,OAAOC,eAAeilwB,EAAUC,SAAc,IAAG,aAAc,CAC7DplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIqE,2BClBrBpyvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAoB,UAAI,CAAC,EACnCH,EAAIkF,UAAYjF,EAAQI,cAAc,YAAa,CAAC,eACpDrlwB,OAAOC,eAAeilwB,EAAUC,SAAoB,UAAG,aAAc,CACnEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIkF,gCCjBrBjzvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAc,IAAI,CAAC,EAC7BH,EAAIuE,IAAMtE,EAAQI,cAAc,MAAO,CAAC,eACxCrlwB,OAAOC,eAAeilwB,EAAUC,SAAc,IAAG,aAAc,CAC7DplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIuE,2BCjBrBtyvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAmB,SAAI,CAAC,EAClCH,EAAIwE,SAAWvE,EAAQI,cAAc,WAAY,CAAC,eAClDrlwB,OAAOC,eAAeilwB,EAAUC,SAAmB,SAAG,aAAc,CAClEplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIwE,gCCjBrBvyvB,EAAQ,KACR,IAAI+tvB,EAAM/tvB,EAAQ,MACdguvB,EAAUD,EAAIC,QACdC,EAAYF,EAAIE,UAEpBA,EAAUC,SAAe,KAAI,CAAC,EAC9BH,EAAIsE,KAAOrE,EAAQI,cAAc,OAAQ,CAAC,eAC1CrlwB,OAAOC,eAAeilwB,EAAUC,SAAe,KAAG,aAAc,CAC9DplwB,IAAK,WACH,IAAIs5Q,EAAQpiQ,EAAQ,OAEpB,OADAoiQ,EAAMisf,WAAaruvB,EAAAA,OAAAA,EACZoiQ,CACT,EACAj5Q,YAAY,EACZD,cAAc,IAGhB+kM,EAAOrtL,QAAUmtvB,EAAIsE,wBCjBrB,SAASpE,EAAU8F,EAAKvsuB,GACtB,IAAKymuB,EAAUC,SAAStsvB,eAAemyvB,GACrC,MAAM,IAAI5qxB,MAAM,0CAA4C4qxB,GAE9D,OAAO9F,EAAUC,SAAS6F,GAAKvsuB,EACjC,CAQAymuB,EAAUC,SAAW,CAAC,EAKtBjgkB,EAAOrtL,QAAUqtvB,yBClBjBjuvB,EAAQ,KAER,IAAI+tvB,EAAM/tvB,EAAQ,MAEI,qBAAX12B,SAAwBA,OAAOykxB,IAAMA,GAK5C9/jB,EAAOrtL,QAAUmtvB,EAED,qBAATlhqB,OAAsBA,KAAKkhqB,IAAMA,GAO5C/tvB,EAAQ,8BClBR,IAAIg0vB,EAAOh0vB,EAAQ,OACfi0B,EAAMj0B,EAAQ,OACdoH,EAAOpH,EAAQ,OACfggC,EAAShgC,EAAQ,OAKrBiuL,EAAOrtL,QAAoB,CACvBqzvB,WAAY,SAAoBC,GAE9B,GAAY,SADZA,EAAMA,EAAIrrwB,eAER,OAAO,IAAIorC,EACN,GAAY,WAARiguB,EACT,OAAO,IAAIl0tB,EACN,GAAY,SAARk0tB,EACT,OAAO,IAAI9svB,EAGb,MAAM,IAAIj+B,MAAM,kBAAoB+qxB,EAAM,uCAC5C,EACAC,WAAY,SAAoBD,EAAKjmwB,GAEnC,GAAY,SADZimwB,EAAMA,EAAIrrwB,eAER,OAAO,IAAImrwB,EAAK//tB,EAAKhmC,GAChB,GAAY,WAARimwB,EACT,OAAO,IAAIF,EAAKh0tB,EAAQ/xC,GACnB,GAAY,SAARimwB,EACT,OAAO,IAAIF,EAAK5svB,EAAMnZ,GAGxB,MAAM,IAAI9kB,MAAM,kBAAoB+qxB,EAAM,uCAC5C,EACAE,WAAY,WACV,MAAM,IAAIjrxB,MAAM,+CAClB,0BCnCJ,IAAIuhC,EAAS1K,EAAAA,OAAAA,GASc,qBAAhByI,aACuB,qBAAvBA,YAAYC,SAEnBD,YAAYC,OAAS,SAASqc,GAC1B,OAAOsvuB,EAAYjqxB,QAAQ2e,OAAO7f,UAAUqB,SAASukB,KAAKi2B,KAAS,CACvE,GAMJ,IAAIsvuB,EAAc,CACd,qBACA,sBACA,6BACA,sBACA,uBACA,sBACA,uBACA,wBACA,wBACA,qBA+BJpmkB,EAAOrtL,QAAoB,CACvBL,YA1BJ,SAAqB5tB,GACjB,MAAoB,kBAATA,EACgB,IAAhBA,EAAK/I,OAEW,IAApB+I,EAAKk2B,UAChB,EAsBIrI,gBAjBJ,SAAyB7tB,GAKrB,MAJoB,kBAATA,IACPA,EAAO,IAAI+3B,EAAO/3B,EAAM,SAGxB81B,YAAYC,OAAO/1B,GACZ,IAAIm0B,WAAWn0B,EAAKg2B,OAAQh2B,EAAKi2B,WAAYj2B,EAAKk2B,WAAa/B,WAAWgC,mBAG9E,IAAIhC,WAAWn0B,EAC1B,0BCxDA,IAAI2hxB,EAAYt0vB,EAAQ,OAKxB,SAASg0vB,EAAKt6uB,EAAUrS,GACpBr+B,KAAK49B,KAAO,IAAI8S,EAChB1wC,KAAK+xG,MAAQ,IAAIrhE,EAEjB,IAAIshE,EA6CR,SAA0BthE,EAAUrS,GAChC,IAAI6B,EAAQorvB,EAAU9zvB,gBAAgB6G,GACtC,GAAI6B,EAAML,WAAa6Q,EAASqa,WAAY,CACxC,IAAIknD,EAAa,IAAIvhE,EACrBuhE,EAAW56E,OAAO6I,GAClBA,EAAQ+xE,EAAWx6E,QACvB,CACA,IAAIkI,EAAS,IAAI7B,WAAW4S,EAASqa,YAErC,OADAprB,EAAO3C,IAAIkD,GACJP,CACX,CAvDgBuyE,CAAiBxhE,EAAUrS,GACnC0zE,EAAQ,IAAIj0E,WAAW4S,EAASqa,YACpCgnD,EAAM/0E,IAAIg1E,GAEV,IAAK,IAAIhxG,EAAI,EAAGA,EAAI0vC,EAASqa,WAAY/pD,IACrCgxG,EAAMhxG,IAAM,GACZ+wG,EAAM/wG,IAAM,GAGhBhB,KAAK49B,KAAKvG,OAAO26E,GACjBhyG,KAAK+xG,MAAM16E,OAAO06E,GAGlB,IAAS/wG,EAAI,EAAGA,EAAIgxG,EAAMnyE,WAAY7+B,IAClCgxG,EAAMhxG,GAAK,CAEnB,CAKAikN,EAAOrtL,QAAoBozvB,EAE3BA,EAAK9qxB,UAAUm3B,OAAS,SAAUC,GAC9B,GAAIg0vB,EAAU/zvB,YAAYD,IAAWt3B,KAAKuE,MACtC,OAAOvE,KAGX,IACIA,KAAK49B,KAAKvG,OAAOi0vB,EAAU9zvB,gBAAgBF,GAC/C,CAAE,MAAOv3B,GACLC,KAAKuE,MAAQxE,CACjB,CAEA,OAAOC,IACX,EAEAgrxB,EAAK9qxB,UAAUu3B,OAAS,SAAUgH,GAK9B,OAJKz+B,KAAK+xG,MAAM5mD,UACZnrD,KAAK+xG,MAAM16E,OAAOr3B,KAAK49B,KAAKnG,UAGzBz3B,KAAK+xG,MAAMt6E,OAAOgH,EAC7B,yBCpDA,IAAI6svB,EAAYt0vB,EAAQ,OACpB0K,EAAS1K,EAAAA,OAAAA,GAET+zB,EAAa,GAcjB,SAASE,IACLjrD,KAAKyE,MAAQ,CACT,WACA,WACA,WACA,WAEJzE,KAAK2/B,OAAS,IAAI+J,SAAS,IAAIjK,YAAYsrB,IAC3C/qD,KAAKqrD,aAAe,EACpBrrD,KAAKorD,YAAc,EACnBprD,KAAKmrD,UAAW,CACpB,CAsIA,SAASU,EAAIhwB,EAAG96B,EAAGy3B,EAAGrtB,EAAG+tB,EAAGz4B,GAExB,QADAM,GAAOA,EAAI86B,EAAK,aAAgB1wB,EAAI1K,EAAK,YAAe,aACzCy4B,EAAMn4B,IAAO,GAAKm4B,GAAOV,EAAK,UACjD,CAEA,SAASizB,EAAG1qD,EAAGy3B,EAAGv3B,EAAGs3B,EAAGptB,EAAG+tB,EAAGz4B,GAC1B,OAAOorD,EAAKrzB,EAAIv3B,GAAQu3B,EAAKD,EAAIx3B,EAAGy3B,EAAGrtB,EAAG+tB,EAAGz4B,EACjD,CAEA,SAASirD,EAAG3qD,EAAGy3B,EAAGv3B,EAAGs3B,EAAGptB,EAAG+tB,EAAGz4B,GAC1B,OAAOorD,EAAKrzB,EAAID,EAAMt3B,GAAMs3B,EAAKx3B,EAAGy3B,EAAGrtB,EAAG+tB,EAAGz4B,EACjD,CAEA,SAASkrD,EAAG5qD,EAAGy3B,EAAGv3B,EAAGs3B,EAAGptB,EAAG+tB,EAAGz4B,GAC1B,OAAOorD,EAAIrzB,EAAIv3B,EAAIs3B,EAAGx3B,EAAGy3B,EAAGrtB,EAAG+tB,EAAGz4B,EACtC,CAEA,SAASmrD,EAAG7qD,EAAGy3B,EAAGv3B,EAAGs3B,EAAGptB,EAAG+tB,EAAGz4B,GAC1B,OAAOorD,EAAI5qD,GAAKu3B,GAAMD,GAAKx3B,EAAGy3B,EAAGrtB,EAAG+tB,EAAGz4B,EAC3C,CApJAwkN,EAAOrtL,QAAoBqzB,EAE3BA,EAAIF,WAAaA,EAEjBE,EAAI/qD,UAAUm3B,OAAS,SAAU6zB,GAC7B,GAAIoguB,EAAU/zvB,YAAY2zB,GACtB,OAAOlrD,KACJ,GAAIA,KAAKmrD,SACZ,MAAM,IAAIhrD,MAAM,iDAGpB,IAAIwJ,EAAO2hxB,EAAU9zvB,gBAAgB0zB,GACjCxuC,EAAW,EACXmjB,EAAal2B,EAAKk2B,WAEtB,IADA7/B,KAAKorD,aAAevrB,EACbA,EAAa,GAChB7/B,KAAK2/B,OAAOgK,SAAS3pC,KAAKqrD,eAAgB1hD,EAAK+S,MAC/CmjB,IACI7/B,KAAKqrD,eAAiBN,IACtB/qD,KAAKsrD,aACLtrD,KAAKqrD,aAAe,GAI5B,OAAOrrD,IACX,EAEAirD,EAAI/qD,UAAUu3B,OAAS,SAAUgH,GAC7B,IAAKz+B,KAAKmrD,SAAU,CAChB,IAAI/pC,EAAKphB,KAAM2/B,EAASve,EAAGue,OAAQ4rB,EAAoBnqC,EAAGiqC,aACtDG,EAA2B,EADuDpqC,EAAGgqC,YAIzF,GAFAzrB,EAAOgK,SAAS3pC,KAAKqrD,eAAgB,KAEjCE,EAAoBR,GAAcA,GAAgB,CAClD,IAAK,IAAI/pD,EAAIhB,KAAKqrD,aAAcrqD,EAAI+pD,EAAY/pD,IAC5C2+B,EAAOgK,SAAS3oC,EAAG,GAEvBhB,KAAKsrD,aACLtrD,KAAKqrD,aAAe,CACxB,CACA,IAASrqD,EAAIhB,KAAKqrD,aAAcrqD,EAAI+pD,GAAgB/pD,IAChD2+B,EAAOgK,SAAS3oC,EAAG,GAEvB2+B,EAAO6M,UAAUue,GAAgBS,IAAe,GAAG,GACnD7rB,EAAO6M,UAAUue,GAAgBniB,KAAK8Y,MAAM8J,EAAa,aAAc,GACvExrD,KAAKsrD,aACLtrD,KAAKmrD,UAAW,CACpB,CACA,IAAI7hB,EAAM,IAAII,SAAS,IAAIjK,YA5EX,KA6EhB,IAASz+B,EAAI,EAAGA,EAAI,EAAGA,IACnBsoC,EAAIkD,UAAc,EAAJxrC,EAAOhB,KAAKyE,MAAMzD,IAAI,GAExC,IAAIuqxB,EAAO,IAAI7pvB,EAAO4H,EAAI3J,OAAQ2J,EAAI1J,WAAY0J,EAAIzJ,YACtD,OAAOpB,EAAW8svB,EAAKhqxB,SAASk9B,GAAY8svB,CAChD,EAEAtguB,EAAI/qD,UAAUorD,WAAa,WACvB,IAAe3rB,EAAN3/B,KAAkB2/B,OAAQl7B,EAA1BzE,KAAqCyE,MAC1C1D,EAAI0D,EAAM,GAAI+zB,EAAI/zB,EAAM,GAAIxD,EAAIwD,EAAM,GAAI8zB,EAAI9zB,EAAM,GACxD1D,EAAI0qD,EAAG1qD,EAAGy3B,EAAGv3B,EAAGs3B,EAAGoH,EAAOgN,UAAU,GAAG,GAAO,EAAG,YACjDpU,EAAIkzB,EAAGlzB,EAAGx3B,EAAGy3B,EAAGv3B,EAAG0+B,EAAOgN,UAAU,GAAG,GAAO,GAAI,YAClD1rC,EAAIwqD,EAAGxqD,EAAGs3B,EAAGx3B,EAAGy3B,EAAGmH,EAAOgN,UAAU,GAAG,GAAO,GAAI,WAClDnU,EAAIizB,EAAGjzB,EAAGv3B,EAAGs3B,EAAGx3B,EAAG4+B,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnD5rC,EAAI0qD,EAAG1qD,EAAGy3B,EAAGv3B,EAAGs3B,EAAGoH,EAAOgN,UAAU,IAAI,GAAO,EAAG,YAClDpU,EAAIkzB,EAAGlzB,EAAGx3B,EAAGy3B,EAAGv3B,EAAG0+B,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnD1rC,EAAIwqD,EAAGxqD,EAAGs3B,EAAGx3B,EAAGy3B,EAAGmH,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnDnU,EAAIizB,EAAGjzB,EAAGv3B,EAAGs3B,EAAGx3B,EAAG4+B,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnD5rC,EAAI0qD,EAAG1qD,EAAGy3B,EAAGv3B,EAAGs3B,EAAGoH,EAAOgN,UAAU,IAAI,GAAO,EAAG,YAClDpU,EAAIkzB,EAAGlzB,EAAGx3B,EAAGy3B,EAAGv3B,EAAG0+B,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnD1rC,EAAIwqD,EAAGxqD,EAAGs3B,EAAGx3B,EAAGy3B,EAAGmH,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnDnU,EAAIizB,EAAGjzB,EAAGv3B,EAAGs3B,EAAGx3B,EAAG4+B,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnD5rC,EAAI0qD,EAAG1qD,EAAGy3B,EAAGv3B,EAAGs3B,EAAGoH,EAAOgN,UAAU,IAAI,GAAO,EAAG,YAClDpU,EAAIkzB,EAAGlzB,EAAGx3B,EAAGy3B,EAAGv3B,EAAG0+B,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnD1rC,EAAIwqD,EAAGxqD,EAAGs3B,EAAGx3B,EAAGy3B,EAAGmH,EAAOgN,UAAU,IAAI,GAAO,GAAI,YAEnD5rC,EAAI2qD,EAAG3qD,EADPy3B,EAAIizB,EAAGjzB,EAAGv3B,EAAGs3B,EAAGx3B,EAAG4+B,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACtC1rC,EAAGs3B,EAAGoH,EAAOgN,UAAU,GAAG,GAAO,EAAG,YACjDpU,EAAImzB,EAAGnzB,EAAGx3B,EAAGy3B,EAAGv3B,EAAG0+B,EAAOgN,UAAU,IAAI,GAAO,EAAG,YAClD1rC,EAAIyqD,EAAGzqD,EAAGs3B,EAAGx3B,EAAGy3B,EAAGmH,EAAOgN,UAAU,IAAI,GAAO,GAAI,WACnDnU,EAAIkzB,EAAGlzB,EAAGv3B,EAAGs3B,EAAGx3B,EAAG4+B,EAAOgN,UAAU,GAAG,GAAO,GAAI,YAClD5rC,EAAI2qD,EAAG3qD,EAAGy3B,EAAGv3B,EAAGs3B,EAAGoH,EAAOgN,UAAU,IAAI,GAAO,EAAG,YAClDpU,EAAImzB,EAAGnzB,EAAGx3B,EAAGy3B,EAAGv3B,EAAG0+B,EAAOgN,UAAU,IAAI,GAAO,EAAG,UAClD1rC,EAAIyqD,EAAGzqD,EAAGs3B,EAAGx3B,EAAGy3B,EAAGmH,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnDnU,EAAIkzB,EAAGlzB,EAAGv3B,EAAGs3B,EAAGx3B,EAAG4+B,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnD5rC,EAAI2qD,EAAG3qD,EAAGy3B,EAAGv3B,EAAGs3B,EAAGoH,EAAOgN,UAAU,IAAI,GAAO,EAAG,WAClDpU,EAAImzB,EAAGnzB,EAAGx3B,EAAGy3B,EAAGv3B,EAAG0+B,EAAOgN,UAAU,IAAI,GAAO,EAAG,YAClD1rC,EAAIyqD,EAAGzqD,EAAGs3B,EAAGx3B,EAAGy3B,EAAGmH,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnDnU,EAAIkzB,EAAGlzB,EAAGv3B,EAAGs3B,EAAGx3B,EAAG4+B,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnD5rC,EAAI2qD,EAAG3qD,EAAGy3B,EAAGv3B,EAAGs3B,EAAGoH,EAAOgN,UAAU,IAAI,GAAO,EAAG,YAClDpU,EAAImzB,EAAGnzB,EAAGx3B,EAAGy3B,EAAGv3B,EAAG0+B,EAAOgN,UAAU,GAAG,GAAO,EAAG,YACjD1rC,EAAIyqD,EAAGzqD,EAAGs3B,EAAGx3B,EAAGy3B,EAAGmH,EAAOgN,UAAU,IAAI,GAAO,GAAI,YAEnD5rC,EAAI4qD,EAAG5qD,EADPy3B,EAAIkzB,EAAGlzB,EAAGv3B,EAAGs3B,EAAGx3B,EAAG4+B,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACtC1rC,EAAGs3B,EAAGoH,EAAOgN,UAAU,IAAI,GAAO,EAAG,YAClDpU,EAAIozB,EAAGpzB,EAAGx3B,EAAGy3B,EAAGv3B,EAAG0+B,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnD1rC,EAAI0qD,EAAG1qD,EAAGs3B,EAAGx3B,EAAGy3B,EAAGmH,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnDnU,EAAImzB,EAAGnzB,EAAGv3B,EAAGs3B,EAAGx3B,EAAG4+B,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnD5rC,EAAI4qD,EAAG5qD,EAAGy3B,EAAGv3B,EAAGs3B,EAAGoH,EAAOgN,UAAU,GAAG,GAAO,EAAG,YACjDpU,EAAIozB,EAAGpzB,EAAGx3B,EAAGy3B,EAAGv3B,EAAG0+B,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnD1rC,EAAI0qD,EAAG1qD,EAAGs3B,EAAGx3B,EAAGy3B,EAAGmH,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnDnU,EAAImzB,EAAGnzB,EAAGv3B,EAAGs3B,EAAGx3B,EAAG4+B,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnD5rC,EAAI4qD,EAAG5qD,EAAGy3B,EAAGv3B,EAAGs3B,EAAGoH,EAAOgN,UAAU,IAAI,GAAO,EAAG,WAClDpU,EAAIozB,EAAGpzB,EAAGx3B,EAAGy3B,EAAGv3B,EAAG0+B,EAAOgN,UAAU,GAAG,GAAO,GAAI,YAClD1rC,EAAI0qD,EAAG1qD,EAAGs3B,EAAGx3B,EAAGy3B,EAAGmH,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnDnU,EAAImzB,EAAGnzB,EAAGv3B,EAAGs3B,EAAGx3B,EAAG4+B,EAAOgN,UAAU,IAAI,GAAO,GAAI,UACnD5rC,EAAI4qD,EAAG5qD,EAAGy3B,EAAGv3B,EAAGs3B,EAAGoH,EAAOgN,UAAU,IAAI,GAAO,EAAG,YAClDpU,EAAIozB,EAAGpzB,EAAGx3B,EAAGy3B,EAAGv3B,EAAG0+B,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnD1rC,EAAI0qD,EAAG1qD,EAAGs3B,EAAGx3B,EAAGy3B,EAAGmH,EAAOgN,UAAU,IAAI,GAAO,GAAI,WAEnD5rC,EAAI6qD,EAAG7qD,EADPy3B,EAAImzB,EAAGnzB,EAAGv3B,EAAGs3B,EAAGx3B,EAAG4+B,EAAOgN,UAAU,GAAG,GAAO,GAAI,YACrC1rC,EAAGs3B,EAAGoH,EAAOgN,UAAU,GAAG,GAAO,EAAG,YACjDpU,EAAIqzB,EAAGrzB,EAAGx3B,EAAGy3B,EAAGv3B,EAAG0+B,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnD1rC,EAAI2qD,EAAG3qD,EAAGs3B,EAAGx3B,EAAGy3B,EAAGmH,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnDnU,EAAIozB,EAAGpzB,EAAGv3B,EAAGs3B,EAAGx3B,EAAG4+B,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnD5rC,EAAI6qD,EAAG7qD,EAAGy3B,EAAGv3B,EAAGs3B,EAAGoH,EAAOgN,UAAU,IAAI,GAAO,EAAG,YAClDpU,EAAIqzB,EAAGrzB,EAAGx3B,EAAGy3B,EAAGv3B,EAAG0+B,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnD1rC,EAAI2qD,EAAG3qD,EAAGs3B,EAAGx3B,EAAGy3B,EAAGmH,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnDnU,EAAIozB,EAAGpzB,EAAGv3B,EAAGs3B,EAAGx3B,EAAG4+B,EAAOgN,UAAU,GAAG,GAAO,GAAI,YAClD5rC,EAAI6qD,EAAG7qD,EAAGy3B,EAAGv3B,EAAGs3B,EAAGoH,EAAOgN,UAAU,IAAI,GAAO,EAAG,YAClDpU,EAAIqzB,EAAGrzB,EAAGx3B,EAAGy3B,EAAGv3B,EAAG0+B,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnD1rC,EAAI2qD,EAAG3qD,EAAGs3B,EAAGx3B,EAAGy3B,EAAGmH,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnDnU,EAAIozB,EAAGpzB,EAAGv3B,EAAGs3B,EAAGx3B,EAAG4+B,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnD5rC,EAAI6qD,EAAG7qD,EAAGy3B,EAAGv3B,EAAGs3B,EAAGoH,EAAOgN,UAAU,IAAI,GAAO,EAAG,YAClDpU,EAAIqzB,EAAGrzB,EAAGx3B,EAAGy3B,EAAGv3B,EAAG0+B,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnD1rC,EAAI2qD,EAAG3qD,EAAGs3B,EAAGx3B,EAAGy3B,EAAGmH,EAAOgN,UAAU,GAAG,GAAO,GAAI,WAClDnU,EAAIozB,EAAGpzB,EAAGv3B,EAAGs3B,EAAGx3B,EAAG4+B,EAAOgN,UAAU,IAAI,GAAO,GAAI,YACnDloC,EAAM,GAAM1D,EAAI0D,EAAM,GAAM,WAC5BA,EAAM,GAAM+zB,EAAI/zB,EAAM,GAAM,WAC5BA,EAAM,GAAMxD,EAAIwD,EAAM,GAAM,WAC5BA,EAAM,GAAM8zB,EAAI9zB,EAAM,GAAM,UAChC,yBChKA,IAAIi9B,EAAS1K,EAAAA,OAAAA,GACTs0vB,EAAYt0vB,EAAQ,OAMd,IAAIgL,YAAY,CACtB,WACA,YACA,YACA,YAcsB4G,KAAKma,IAAI,EAAG,IAKtC,SAAS3kB,IACLp+B,KAAKwrxB,GAAK,WACVxrxB,KAAK8iL,GAAK,WACV9iL,KAAK+iL,GAAK,WACV/iL,KAAKgjL,GAAK,UACVhjL,KAAKijL,GAAK,WAEVjjL,KAAKk3Z,MAAQ,IAAIl1X,YAAY,IAC7BhiC,KAAK+lD,OAAS,EACd/lD,KAAKi8B,MAAQ,GACbj8B,KAAKyrxB,YAAc,CACvB,CAKAxmkB,EAAOrtL,QAAoBwG,EAE3BA,EAAK2sB,WA7CY,GA+CjB3sB,EAAKl+B,UAAUm3B,OAAS,SAAU1tB,GAC9B,GAAI3J,KAAKmrD,SACL,MAAM,IAAIhrD,MAAM,iDAGpB,GAAImrxB,EAAU/zvB,YAAY5tB,GACtB,OAAO3J,KAKX,IAAIY,GAFJ+I,EAAO2hxB,EAAU9zvB,gBAAgB7tB,IAEf/I,OAClBZ,KAAKyrxB,aAAwB,EAAT7qxB,EACpB,IAAK,IAAII,EAAI,EAAGA,EAAIJ,EAAQI,IACxBhB,KAAKk3G,MAAMvtG,EAAK3I,IAGpB,OAAOhB,IACX,EAEAo+B,EAAKl+B,UAAUg3G,MAAQ,SAAeh/E,GAClCl4B,KAAKk3Z,MAAMl3Z,KAAK+lD,UAAmB,IAAP7tB,IAAgBl4B,KAAKi8B,MAC7Cj8B,KAAKi8B,MACLj8B,KAAKi8B,OAAS,GAEdj8B,KAAK+lD,SACL/lD,KAAKi8B,MAAQ,IAGG,KAAhBj8B,KAAK+lD,QAAe/lD,KAAK0rxB,cACjC,EAEAttvB,EAAKl+B,UAAUu3B,OAAS,SAAUgH,GAE9Bz+B,KAAKk3G,MAAM,MACPl3G,KAAK+lD,OAAS,IAAuB,KAAhB/lD,KAAK+lD,QAAiB/lD,KAAKi8B,MAAQ,KAC1Dj8B,KAAK0rxB,eAEP1rxB,KAAK+lD,OAAS,GACd/lD,KAAKi8B,MAAQ,GAGbj8B,KAAKk3G,MAAM,GACXl3G,KAAKk3G,MAAM,GACXl3G,KAAKk3G,MAAMl3G,KAAKyrxB,YAAc,aAAezrxB,KAAKyrxB,YAAc,cAAgB,GAChFzrxB,KAAKk3G,MAAMl3G,KAAKyrxB,YAAc,WAAazrxB,KAAKyrxB,YAAc,WAAc,GAC5E,IAAK,IAAIvyvB,EAAI,GAAIA,GAAK,EAAGA,GAAK,EAC1Bl5B,KAAKk3G,MAAMl3G,KAAKyrxB,aAAevyvB,GAInC,IAAIoQ,EAAM,IAAI5H,EAhGE,IAiGZiqvB,EAAU,IAAIjivB,SAASJ,EAAI3J,QAO/B,OANAgsvB,EAAQn/uB,UAAU,EAAGxsC,KAAKwrxB,IAAI,GAC9BG,EAAQn/uB,UAAU,EAAGxsC,KAAK8iL,IAAI,GAC9B6omB,EAAQn/uB,UAAU,EAAGxsC,KAAK+iL,IAAI,GAC9B4omB,EAAQn/uB,UAAU,GAAIxsC,KAAKgjL,IAAI,GAC/B2omB,EAAQn/uB,UAAU,GAAIxsC,KAAKijL,IAAI,GAExBxkJ,EAAW6K,EAAI/nC,SAASk9B,GAAY6K,CAC/C,EAEAlL,EAAKl+B,UAAUwrxB,aAAe,WAE1B,IAAK,IAAI1qxB,EAAI,GAAIA,EAAI,GAAIA,IAAK,CAC5B,IAAIusD,EAAIvtD,KAAKk3Z,MAAMl2Z,EAAI,GAAKhB,KAAKk3Z,MAAMl2Z,EAAI,GAAKhB,KAAKk3Z,MAAMl2Z,EAAI,IAAMhB,KAAKk3Z,MAAMl2Z,EAAI,IACpFhB,KAAKk3Z,MAAMl2Z,GAAMusD,GAAK,EAAMA,IAAM,EACpC,CAGA,IAKI9tC,EAAGwb,EALHl6B,EAAIf,KAAKwrxB,GACThzvB,EAAIx4B,KAAK8iL,GACT7hL,EAAIjB,KAAK+iL,GACTxqJ,EAAIv4B,KAAKgjL,GACTjjL,EAAIC,KAAKijL,GAIb,IAAKjiL,EAAI,EAAGA,EAAI,GAAIA,IAAK,CACnBA,EAAI,IACNye,EAAI8Y,EAAKC,GAAKv3B,EAAIs3B,GAClB0C,EAAI,YAEGj6B,EAAI,IACXye,EAAI+Y,EAAIv3B,EAAIs3B,EACZ0C,EAAI,YAEGj6B,EAAI,IACXye,EAAK+Y,EAAIv3B,EAAMs3B,GAAKC,EAAIv3B,GACxBg6B,EAAI,aAGJxb,EAAI+Y,EAAIv3B,EAAIs3B,EACZ0C,EAAI,YAEN,IAAI21E,GAAQ7vG,GAAK,EAAIA,IAAM,IAAM0e,EAAI1f,EAAIk7B,GAAmB,EAAdj7B,KAAKk3Z,MAAMl2Z,IACzDjB,EAAIw4B,EACJA,EAAIt3B,EACJA,EAAKu3B,GAAK,GAAKA,IAAM,EACrBA,EAAIz3B,EACJA,EAAI6vG,CACN,CAWA,IARA5wG,KAAKwrxB,GAAMxrxB,KAAKwrxB,GAAKzqxB,EAAK,EAC1Bf,KAAK8iL,GAAM9iL,KAAK8iL,GAAKtqJ,EAAK,EAC1Bx4B,KAAK+iL,GAAM/iL,KAAK+iL,GAAK9hL,EAAK,EAC1BjB,KAAKgjL,GAAMhjL,KAAKgjL,GAAKzqJ,EAAK,EAC1Bv4B,KAAKijL,GAAMjjL,KAAKijL,GAAKljL,EAAK,EAG1BC,KAAK+lD,OAAS,EACT/kD,EAAI,EAAGA,EAAI,GAAIA,IAChBhB,KAAKk3Z,MAAMl2Z,GAAK,CAExB,yBCrKA,IAAI0gC,EAAS1K,EAAAA,OAAAA,GACTs0vB,EAAYt0vB,EAAQ,OAEpB+zB,EAAa,GAIb4mD,EAAM,IAAI3vE,YAAY,CACtB,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,WACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,aAcA6uE,EAAsBjoE,KAAKma,IAAI,EAAG,IAAM,EAK5C,SAASiU,IACLh3D,KAAKyE,MAAQ,CACT,WACA,WACA,WACA,WACA,WACA,WACA,UACA,YAEJzE,KAAK4wG,KAAO,IAAID,WAAW,IAC3B3wG,KAAK2/B,OAAS,IAAI7B,WAAW,IAC7B99B,KAAKqrD,aAAe,EACpBrrD,KAAKorD,YAAc,EAInBprD,KAAKmrD,UAAW,CACpB,CAKA85J,EAAOrtL,QAAoBo/B,EAE3BA,EAAOjM,WAAaA,EAEpBiM,EAAO92D,UAAUm3B,OAAS,SAAU1tB,GAChC,GAAI3J,KAAKmrD,SACL,MAAM,IAAIhrD,MAAM,iDAGpB,GAAImrxB,EAAU/zvB,YAAY5tB,GACtB,OAAO3J,KAKX,IAAI0c,EAAW,EACXmjB,GAHJl2B,EAAO2hxB,EAAU9zvB,gBAAgB7tB,IAGXk2B,WAEtB,GADA7/B,KAAKorD,aAAevrB,EACG,EAAnB7/B,KAAKorD,YAAkBylD,EACvB,MAAM,IAAI1wG,MAAM,uCAGpB,KAAO0/B,EAAa,GAChB7/B,KAAK2/B,OAAO3/B,KAAKqrD,gBAAkB1hD,EAAK+S,KACxCmjB,IACI7/B,KAAKqrD,eAAiBN,IACtB/qD,KAAKsrD,aACLtrD,KAAKqrD,aAAe,GAI5B,OAAOrrD,IACX,EAEAg3D,EAAO92D,UAAUu3B,OAAS,SAAUgH,GAChC,IAAKz+B,KAAKmrD,SAAU,CAChB,IAAIK,EAAgC,EAAnBxrD,KAAKorD,YAClB0lD,EAAa,IAAIpnE,SAAS1pC,KAAK2/B,OAAOA,OAAQ3/B,KAAK2/B,OAAOC,WAAY5/B,KAAK2/B,OAAOE,YAClF0rB,EAAoBvrD,KAAKqrD,aAG7B,GAFAylD,EAAWnnE,SAAS3pC,KAAKqrD,eAAgB,KAErCE,EAAoBR,GAAcA,GAAgB,CAClD,IAAK,IAAI/pD,EAAIhB,KAAKqrD,aAAcrqD,EAAI+pD,EAAY/pD,IAC5C8vG,EAAWnnE,SAAS3oC,EAAG,GAE3BhB,KAAKsrD,aACLtrD,KAAKqrD,aAAe,CACxB,CACA,IAASrqD,EAAIhB,KAAKqrD,aAAcrqD,EAAI+pD,GAAgB/pD,IAChD8vG,EAAWnnE,SAAS3oC,EAAG,GAE3B8vG,EAAWtkE,UAAUue,GAAgBniB,KAAK8Y,MAAM8J,EAAa,aAAc,GAC3EslD,EAAWtkE,UAAUue,GAAgBS,GACrCxrD,KAAKsrD,aACLtrD,KAAKmrD,UAAW,CACpB,CAGA,IAAI7hB,EAAM,IAAI5H,EAvKE,IAwKhB,IAAS1gC,EAAI,EAAGA,EAAI,EAAGA,IACnBsoC,EAAQ,EAAJtoC,GAAUhB,KAAKyE,MAAMzD,KAAO,GAAM,IACtCsoC,EAAQ,EAAJtoC,EAAQ,GAAMhB,KAAKyE,MAAMzD,KAAO,GAAM,IAC1CsoC,EAAQ,EAAJtoC,EAAQ,GAAMhB,KAAKyE,MAAMzD,KAAO,EAAK,IACzCsoC,EAAQ,EAAJtoC,EAAQ,GAAMhB,KAAKyE,MAAMzD,KAAO,EAAK,IAE7C,OAAOy9B,EAAW6K,EAAI/nC,SAASk9B,GAAY6K,CAC/C,EAEA0tB,EAAO92D,UAAUorD,WAAa,WAY1B,IAXA,IACI3rB,EADK3/B,KACO2/B,OACZl7B,EAFKzE,KAEMyE,MACXusG,EAASvsG,EAAM,GACfwsG,EAASxsG,EAAM,GACfysG,EAASzsG,EAAM,GACf0sG,EAAS1sG,EAAM,GACf2sG,EAAS3sG,EAAM,GACf4sG,EAAS5sG,EAAM,GACf6sG,EAAS7sG,EAAM,GACf8sG,EAAS9sG,EAAM,GACVzD,EAAI,EAAGA,EAAI+pD,EAAY/pD,IAAK,CACjC,GAAIA,EAAI,GACJhB,KAAK4wG,KAAK5vG,IAAwB,IAAhB2+B,EAAW,EAAJ3+B,KAAkB,IACf,IAAtB2+B,EAAY,EAAJ3+B,EAAS,KAAc,IACT,IAAtB2+B,EAAY,EAAJ3+B,EAAS,KAAc,EACV,IAAtB2+B,EAAY,EAAJ3+B,EAAS,OAErB,CACD,IAAIssD,EAAIttD,KAAK4wG,KAAK5vG,EAAI,GAClBwwG,GAAQlkD,IAAM,GAAKA,GAAK,KACvBA,IAAM,GAAKA,GAAK,IAChBA,IAAM,GAEPmkD,IADJnkD,EAAIttD,KAAK4wG,KAAK5vG,EAAI,OACA,EAAIssD,GAAK,KACtBA,IAAM,GAAKA,GAAK,IAChBA,IAAM,EACXttD,KAAK4wG,KAAK5vG,IAAMwwG,EAAOxxG,KAAK4wG,KAAK5vG,EAAI,GAAK,IACrCywG,EAAOzxG,KAAK4wG,KAAK5vG,EAAI,IAAM,EACpC,CACA,IAAI0wG,KAAUN,IAAW,EAAIA,GAAU,KAClCA,IAAW,GAAKA,GAAU,KAC1BA,IAAW,GAAKA,GAAU,KACvBA,EAASC,GAAYD,EAASE,GAAY,IAC1CC,GAAWI,EAAI3wG,GAAKhB,KAAK4wG,KAAK5vG,GAAM,GAAM,GAAM,EACpD4wG,IAAQZ,IAAW,EAAIA,GAAU,KAChCA,IAAW,GAAKA,GAAU,KAC1BA,IAAW,GAAKA,GAAU,MAASA,EAASC,EAAWD,EAASE,EAAWD,EAASC,GAAY,EACrGK,EAASD,EACTA,EAASD,EACTA,EAASD,EACTA,EAAUD,EAASO,EAAM,EACzBP,EAASD,EACTA,EAASD,EACTA,EAASD,EACTA,EAAUU,EAAKE,EAAM,CACzB,CACAntG,EAAM,IAAMusG,EACZvsG,EAAM,IAAMwsG,EACZxsG,EAAM,IAAMysG,EACZzsG,EAAM,IAAM0sG,EACZ1sG,EAAM,IAAM2sG,EACZ3sG,EAAM,IAAM4sG,EACZ5sG,EAAM,IAAM6sG,EACZ7sG,EAAM,IAAM8sG,CAChB,uBC9OA,IAAIq6qB,EAAO50vB,EAAQ,OAGnB40vB,EAAK7rvB,OAAOic,IAAMhlB,EAAQ,OAC1B40vB,EAAKlqvB,OAAS1K,EAAAA,OAAAA,GACd40vB,EAAK1xuB,IAAMljB,EAAQ,KACnB40vB,EAAK5ukB,YAAchmL,EAAQ,OAC3B40vB,EAAKC,UAAY70vB,EAAQ,OACzB40vB,EAAKjmhB,YAAc,KACnBimhB,EAAKE,kBAAoB90vB,EAAAA,OAAAA,kBACzB40vB,EAAKh3N,UAAY,WAAa,OAAO,CAAM,EAC3Cg3N,EAAKG,OAAS,WAAa,OAAO,CAAO,EAEzC,IAAIhH,EAAM/tvB,EAAQ,MAqBlB,GAhBAiuL,EAAOrtL,QAAUmtvB,EAEjB/tvB,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OAGR+tvB,EAAIiH,IAAIC,OAASj1vB,EAAQ,OAGzBA,EAAQ,OAEe,qBAAZ+H,EACT,IAAIA,EAAU,CACZ8oB,SAAS,0BCpCb,IAAIk9tB,EAAM/tvB,EAAQ,MACdkjB,EAAM6quB,EAAI6G,KAAK1xuB,IACfna,EAASglvB,EAAI6G,KAAK7rvB,OAAOic,IACzBkwuB,EAAenH,EAAI6G,KAAKt1qB,OAAOl2E,OAC/By1I,EAAUkvmB,EAAI6G,KAAK/1mB,QAEnBs2mB,EAAc,SAAUp1qB,GACxB,IAAIq1qB,EAAe,CACf,IAAK,IACL,IAAK,IACL,IAAK,KAET,OAAOr1qB,EAAOp2G,QAAQ,YAAY,SAAUwiH,GACxC,OAAOipqB,EAAajpqB,EACxB,GACJ,EAEIkpqB,EAAa,SAAU9msB,EAAQyqc,GAC/B,IAAIzwf,EAAOQ,EAAOqrvB,WAAW,YAE7B,OADA7rvB,EAAK23E,MAAM3xB,GACJ4msB,EAAY5svB,EAAKA,KAAKywf,EAAY,UAC7C,EAEIs8P,EAAuB,SAAUpyuB,EAAK4pC,EAASyosB,EAAWv8P,GAC1D,IAAIzqc,EAAS7jF,KAAKQ,UAAU,CACxBsqxB,UAAW,CACP,CACIC,SAAUvyuB,EACVsrD,UAAW,CAAEknrB,aAAc,CAAE,gBAAiB5osB,QAK1D,MAAO,CACHC,QAASD,EACT,cAAeyosB,EACfI,UAAWN,EAAW9msB,EAAOhkF,WAAYyuhB,GAEjD,EAEI48P,EAAuB,SAAUrnsB,EAAQgnsB,EAAWv8P,GAGpD,OAFAzqc,EAASA,EAAO5kF,QAAQ,OAAQ,IAEzB,CACHspF,OAAQkisB,EAAYD,EAAa3msB,IACjC,cAAegnsB,EACfI,UAAWN,EAAW9msB,EAAQyqc,GAEtC,EAEI68P,EAAkB,SAAU3yuB,GAC5B,IAAIhB,EAAQgB,EAAIt4C,MAAM,OACtB,GAAIs3C,EAAMt4C,OAAS,EACf,MAAM,IAAIT,MAAM,gBAGpB,OAAO+4C,EAAM,GAAGv4C,QAAQ,IAAK,GACjC,EAEImsxB,EAAa,SAAUC,GACvB,IAAIzzqB,EAASp/D,EAAIv4C,MAAMorxB,GACvB,OAAOzzqB,EAAO95F,KAAK7e,QAAQ,MAAO,KAAO24G,EAAO17E,MAAQ,GAC5D,EAeIovvB,EAAc,SAAU3oxB,EAAKkkH,GAC7B,IAAKA,GAAgC,oBAAbA,EACpB,MAAMlkH,EAGVkkH,EAASlkH,EACb,EAEI4oxB,EAAgB,SAAU/nxB,EAAQqjH,GAClC,IAAKA,GAAgC,oBAAbA,EACpB,OAAOrjH,EAGXqjH,EAAS,KAAMrjH,EACnB,EAEA6/wB,EAAIa,WAAW5oC,OAASnnkB,EAAQ,CAW5BxvJ,YAAa,SAAgBkmwB,EAAWv8P,GACpC,QAAkB,IAAdu8P,QAAuC,IAAfv8P,EACxB,MAAM,IAAI7vhB,MAAM,8CAGpBH,KAAKusxB,UAAYA,EACjBvsxB,KAAKgwhB,WAAaA,CACtB,EAuBAk9P,gBAAiB,SAAU5ixB,EAASi/H,GAChC,IAAI4jpB,EAAgB,WAAY7ixB,EAC1BsixB,EAAqBtixB,EAAQi7E,OAAQvlF,KAAKusxB,UAAWvsxB,KAAKgwhB,YAC1Ds8P,EAAqBhixB,EAAQ4vC,IAAK5vC,EAAQw5E,QAAS9jF,KAAKusxB,UAAWvsxB,KAAKgwhB,YAE1Eo9P,EAAa,CAAC,EAClB,IAAK,IAAInowB,KAAOkowB,EACRptwB,OAAO7f,UAAU04B,eAAe9S,KAAKqnwB,EAAelowB,KACpDmowB,EAAW,cAAgBnowB,GAAOkowB,EAAclowB,IAIxD,OAAOgowB,EAAcG,EAAY7jpB,EACrC,EA4BA8jpB,aAAc,SAAU/ixB,EAASi/H,GAC7B,IACI,IAAI+jpB,EAjHE,SAAUpzuB,GACxB,OAAQ2yuB,EAAgB3yuB,IACpB,IAAK,OACL,IAAK,QACD,OAAOA,EACX,IAAK,OACD,OAAO4yuB,EAAW5yuB,GACtB,QACI,MAAM,IAAI/5C,MAAM,kEAG5B,CAsG2BotxB,CAAYjjxB,EAAQ4vC,IACvC,CAAE,MAAO71C,GACL,OAAO2oxB,EAAY3oxB,EAAKklI,EAC5B,CAEA,IAAIikpB,EAAYtzuB,EAAIv4C,MAAM2I,EAAQ4vC,KAAK,GACnCizuB,EAAgBptwB,OAAO7f,UAAU04B,eAAe9S,KAAKxb,EAAS,UACxDsixB,EAAqBtixB,EAAQi7E,OAAQvlF,KAAKusxB,UAAWvsxB,KAAKgwhB,YAC1Ds8P,EAAqBgB,EAAUhjxB,EAAQw5E,QAAS9jF,KAAKusxB,UAAWvsxB,KAAKgwhB,YAG/E,IAAK,IAAI/qgB,KADTuowB,EAAUj4vB,OAAS,KACH43vB,EACRptwB,OAAO7f,UAAU04B,eAAe9S,KAAKqnwB,EAAelowB,KACpDuowB,EAAU58uB,MAAM3rB,GAAOkowB,EAAclowB,IAI7C,IACI,IAAIwowB,EAA6C,SAAjCZ,EAAgBvixB,EAAQ4vC,KAC9B4yuB,EAAW5yuB,EAAItnC,OAAO46wB,IACtBtzuB,EAAItnC,OAAO46wB,EACzB,CAAE,MAAOnpxB,GACL,OAAO2oxB,EAAY3oxB,EAAKklI,EAC5B,CAEA,OAAO0jpB,EAAcQ,EAAWlkpB,EACpC,IAMJ07E,EAAOrtL,QAAUmtvB,EAAIa,WAAW5oC,8BCjNhC,IAGI0wC,EAHA3I,EAAM/tvB,EAAQ,MAClBA,EAAQ,OACRA,EAAQ,OAiMR+tvB,EAAI4I,OAAS5I,EAAI6G,KAAK/1mB,QAAQ,CA8J5BxvJ,YAAa,SAAgB/b,QACXjC,IAAZiC,IAAuBA,EAAU,CAAC,GACtCA,EAAUtK,KAAK4txB,mBAAmBtjxB,GAElCy6wB,EAAI6G,KAAK9pN,KAAKh8iB,KAAK9lB,KAAMA,KAAKukB,MAAM,SAAUU,EAAKje,GACjDhH,KAAKg9B,IAAI/X,EAAK3a,EAAQ2a,GAAMje,EAC9B,GACF,EA+BA6mxB,eAAgB,SAAwBtlqB,GACtC,IAAI1E,EAAO7jH,KAEX,SAASk/B,EAAO76B,GACdkkH,EAASlkH,EAAKA,EAAM,KAAOw/G,EAAKvyE,YAClC,CAEA,SAASw8uB,EAAUvgvB,EAAKlpC,GACtB,OAAO,IAAI0gxB,EAAI6G,KAAKrnxB,MAAMF,GAAO,IAAIlE,MAAS,CAC5C8mB,KAAM,mBACNhnB,QAASstC,EACTntC,KAAM,oBAEV,CAqBIyjH,EAAKvyE,YAC6B,oBAAzBuyE,EAAKvyE,YAAYxxB,IAnB5B+jG,EAAKvyE,YAAYxxB,KAAI,SAASzb,GACxBA,IAGFA,EAAMypxB,EAFI,mCACRjqqB,EAAKvyE,YAAYjrB,YAAYjmB,KACViE,IAEvB66B,EAAO76B,EACT,IAGF,WACE,IAAIA,EAAM,KACLw/G,EAAKvyE,YAAYmB,aAAgBoxE,EAAKvyE,YAAY0D,kBACrD3wC,EAAMypxB,EAAU,wBAElB5uvB,EAAO76B,EACT,CAMI0pxB,GAEOlqqB,EAAKlyE,mBACdkyE,EAAKlyE,mBAAmB/uB,SAAQ,SAASve,EAAKu4uB,GACxCv4uB,IACFA,EAAMypxB,EAAU,gDAAiDzpxB,IAEnEw/G,EAAKvyE,YAAcsrsB,EACnB19sB,EAAO76B,EACT,IAEA66B,EAAO4uvB,EAAU,0BAErB,EAyBAE,SAAU,SAAkBzlqB,GAC1B,IAAI1E,EAAO7jH,KAEX,SAASk/B,EAAO76B,GACdkkH,EAASlkH,EAAKA,EAAM,KAAOw/G,EAAKn/D,MAClC,CAEA,SAASupuB,EAAW1gvB,EAAKlpC,GACvB,OAAO,IAAI0gxB,EAAI6G,KAAKrnxB,MAAMF,GAAO,IAAIlE,MAAS,CAC5C8mB,KAAM,aACNhnB,QAASstC,EACTntC,KAAM,cAEV,CAqBIyjH,EAAKn/D,MACuB,oBAAnBm/D,EAAKn/D,MAAM5kC,IAnBtB+jG,EAAKn/D,MAAM5kC,KAAI,SAASzb,GAClBA,IAGFA,EAAM4pxB,EAFI,6BACRpqqB,EAAKn/D,MAAMr+B,YAAYjmB,KACHiE,IAExB66B,EAAO76B,EACT,IAGF,WACE,IAAIA,EAAM,KACLw/G,EAAKn/D,MAAMA,QACdrgD,EAAM4pxB,EAAW,kBAEnB/uvB,EAAO76B,EACT,CAMI6pxB,GAEOrqqB,EAAKsqqB,cACdtqqB,EAAKsqqB,cAAcvrwB,SAAQ,SAASve,EAAKqgD,GACnCrgD,IACFA,EAAM4pxB,EAAW,0CAA2C5pxB,IAE9Dw/G,EAAKn/D,MAAQA,EACbxlB,EAAO76B,EACT,IAEA66B,EAAO+uvB,EAAW,oBAEtB,EAiBA52vB,OAAQ,SAAgB/sB,EAAS8jxB,GAC/BA,EAAmBA,IAAoB,EACvC9jxB,EAAUtK,KAAK4txB,mBAAmBtjxB,GAClCy6wB,EAAI6G,KAAK9pN,KAAKh8iB,KAAK9lB,KAAMsK,GAAS,SAAU2a,EAAKje,IAC3ConxB,GAAoBruwB,OAAO7f,UAAU04B,eAAe9S,KAAK9lB,KAAKukB,KAAMU,IACpE8/vB,EAAIC,QAAQqJ,WAAWppwB,KACzBjlB,KAAKg9B,IAAI/X,EAAKje,EAElB,GACF,EAWAsnxB,aAAc,SAAsB9uwB,GAClCxf,KAAKknJ,QAEL,IAAI58I,EAAU5I,KAAKC,MAAMojxB,EAAI6G,KAAK2C,aAAa/uwB,IAC3CgvwB,EAAkB,IAAIzJ,EAAI0J,sBAAsBjvwB,GAChDukwB,EAAQ,IAAIgB,EAAI2J,wBASpB,OARA3K,EAAM4K,UAAUxmS,QAAQqmS,GACxBzK,EAAMnhwB,SAAQ,SAAUve,EAAKu4uB,GAC3B,GAAIv4uB,EAAK,MAAMA,EACViG,EAAQgnC,YAAcsrsB,CAC7B,IAEA58uB,KAAKqmB,YAAY/b,GAEVtK,IACT,EAOAknJ,MAAO,WAEL69nB,EAAI6G,KAAK9pN,KAAKh8iB,KAAK9lB,KAAMA,KAAKukB,MAAM,SAAUU,UACrCjlB,KAAKilB,EACd,IAGAjlB,KAAKg9B,IAAI,mBAAe30B,GACxBrI,KAAKg9B,IAAI,0BAAsB30B,EACjC,EAOA20B,IAAK,SAAa8f,EAAU91C,EAAO4hJ,QACnBvgJ,IAAVrB,QACmBqB,IAAjBugJ,IACFA,EAAe5oJ,KAAKukB,KAAKu4B,IAGzB98C,KAAK88C,GADqB,oBAAjB8rG,EACQA,EAAa9iI,KAAK9lB,MAElB4oJ,GAEG,gBAAb9rG,GAA8B98C,KAAK88C,GAE5C98C,KAAK88C,GAAYiouB,EAAI6G,KAAK9/lB,MAAM9rL,KAAK88C,GAAW91C,GAEhDhH,KAAK88C,GAAY91C,CAErB,EAQAud,KAAM,CACJ+sB,YAAa,KACbK,mBAAoB,KACpB/B,OAAQ,KACRhM,OAAQ,KACRgrvB,YAAa,CAAC,EACdn5tB,WAAY,KACZjY,cAAUn1C,EACVwmxB,YAAa,CACXvtpB,QAAS,MAEX0koB,gBAAY39vB,EACZymxB,aAAc,GACdC,iBAAiB,EACjBC,YAAY,EACZC,kBAAkB,EAClBC,kBAAkB,EAClBC,sBAAsB,EACtBC,0BAA2B,SAC3BC,oBAAgBhnxB,EAChBinxB,kBAAkB,EAClBC,sBAAsB,EACtBC,kBAAkB,EAClBvwuB,gBAAiB,KACjBwwuB,eAAe,EACfj6uB,kBAAmB,EACnBk6uB,iBAAkB,KAClBC,gBAAgB,EAChBC,kBAAmB,CAAC,EACpB33tB,uBAAuB,EACvB43tB,sBAAsB,EACtBC,8BAA0BznxB,EAC1B0nxB,kBAAmB,IACnBC,mBAAmB,EACnBC,qBAAsB,SACtB74tB,iBAAiB,EACjBD,sBAAsB,EACtBzS,MAAO,MASTkpuB,mBAAoB,SAA4BtjxB,GAK9C,OAJIA,EAAQmoC,aAAenoC,EAAQ0qC,mBACjC1qC,EAAUy6wB,EAAI6G,KAAKn0qB,KAAKntG,IAChBgnC,YAAc,IAAIyzuB,EAAImL,YAAY5lxB,IAErCA,CACT,EAQA6lxB,sBAAuB,SAA+B5wnB,GACpDmunB,EAAqBnunB,EAET,OAARA,GAAmC,oBAAZv+I,UACzB0swB,EAAqB1swB,SAEvB,IAAI8yiB,EAAe,CAACixN,EAAI93kB,QAAS83kB,EAAImL,YAAanL,EAAI2J,yBAClD3J,EAAIx4sB,KACNunf,EAAalyiB,KAAKmjwB,EAAIx4sB,IAClBw4sB,EAAIx4sB,GAAG6jtB,eACTt8N,EAAalyiB,KAAKmjwB,EAAIx4sB,GAAG6jtB,gBAG7BrL,EAAI6G,KAAKyE,YAAYv8N,EAAc45N,EACrC,EAKA4C,sBAAuB,WACrB,OAAO5C,CACT,IAQF3I,EAAIjmuB,OAAS,IAAIimuB,EAAI4I,8BClsBrB,IAAI5I,EAAM/tvB,EAAQ,MAIlB,SAASu5vB,EAAmCzglB,EAAa0glB,GACvD,GAA2B,kBAAhB1glB,EAAX,CACK,GAAI,CAAC,SAAU,YAAY1uM,QAAQ0uM,EAAYjwL,gBAAkB,EACpE,OAAOiwL,EAAYjwL,cAEnB,MAAMklwB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAASqwxB,EACpC,CACF,CAuDAvrkB,EAAOrtL,QAzCP,SAAsC64vB,EAAgBnmxB,GAGpD,IAAI29B,EACJ,IAHAwovB,EAAiBA,GAAkB,CAAC,GAGjBnmxB,EAAQiqG,gBACzBtsE,EAAWsovB,EAAmCE,EAAenmxB,EAAQiqG,cAAe,CAClFttF,KAAM,uBACNhnB,QAAS,YAAcqK,EAAQiqG,aAAtB,yDACiBk8qB,EAAenmxB,EAAQiqG,cAAgB,QAErD,OAAOtsE,EAEvB,IAAK88uB,EAAI6G,KAAKG,SAAU,OAAO9jvB,EAE/B,GAAIloB,OAAO7f,UAAU04B,eAAe9S,KAAKiZ,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAaz0B,EAAQ6puB,OAE5DlssB,EAAWsovB,EADGxxvB,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYz0B,EAAQ6puB,KACqB,CACrDlttB,KAAM,+BACNhnB,QAAS,WAAaqK,EAAQ6puB,IAArB,iEACiBp1sB,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYz0B,EAAQ6puB,KAAO,QAEzC,OAAOlssB,EAGvB,IAAIyovB,EAAU,CAAC,EACf,IAEEA,EADe3L,EAAI6G,KAAK+E,4BAA4B5L,EAAI6G,KAAKgF,WAC1C7xvB,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAY8xvB,aAAe9L,EAAI6G,KAAKkF,eACzD,CAAE,MAAO/wxB,GAAI,CACb,OAAI2wxB,GAAW3wwB,OAAO7f,UAAU04B,eAAe9S,KAAK4qwB,EAASpmxB,EAAQymxB,gBAEnE9ovB,EAAWsovB,EADIG,EAAQpmxB,EAAQymxB,cACyB,CACtD9pwB,KAAM,uBACNhnB,QAAS,WAAaqK,EAAQymxB,aAArB,yDACiBL,EAAQpmxB,EAAQymxB,cAAgB,QAEvC9ovB,CAGzB,wBC7DA,IAAI88uB,EAAM,CAAE6G,KAAM50vB,EAAQ,SAOZ,CAAC,GAAWz1B,WAK1B0jN,EAAOrtL,QAAUmtvB,EAEjBA,EAAI6G,KAAKv0vB,OAAO0tvB,EAAK,CAKnBiM,QAAS,WAKTC,QAAS,CAAC,EAKV11sB,SAAU,CACR21sB,KAAMl6vB,EAAQ,OACdm6vB,MAAOn6vB,EAAQ,OACfo6vB,KAAMp6vB,EAAQ,OACdq6vB,SAAUr6vB,EAAQ,OAClBs6vB,QAASt6vB,EAAQ,QAMnBg1vB,IAAK,CACHuF,QAASv6vB,EAAQ,OACjBi1vB,OAAQ,MAMVvqxB,KAAM,CACJ6vxB,QAASv6vB,EAAQ,OACjBi1vB,OAAQj1vB,EAAQ,QAMlBw6vB,MAAO,CACLC,IAAKz6vB,EAAQ,OACb06vB,UAAW16vB,EAAQ,OACnBkngB,MAAOlngB,EAAQ,MACf26vB,UAAW36vB,EAAQ,MACnB46vB,eAAgB56vB,EAAQ,QAM1BiuvB,UAAWjuvB,EAAQ,OAKnB66vB,cAAe76vB,EAAAA,OAAAA,IAEjBA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OAiBR+tvB,EAAI3kjB,OAAS,IAAI2kjB,EAAI+M,mBAGrB/M,EAAI6G,KAAKmG,iBAAiBhN,EAAK,iBAAiB,WAC9C,OAAO,IAAIA,EAAI8M,cAAc9M,EAAIjmuB,OAAOixuB,kBAC1C,IAAG,0BC7GH,IAAIhL,EAAM/tvB,EAAQ,MAwClB+tvB,EAAImL,YAAcnL,EAAI6G,KAAK/1mB,QAAQ,CAwBjCxvJ,YAAa,WAOX,GALA0+vB,EAAI6G,KAAKoG,eAAehyxB,KAAM,CAAC,oBAE/BA,KAAKiyxB,SAAU,EACfjyxB,KAAKkyxB,WAAa,KAClBlyxB,KAAKmyxB,iBAAmB,GACC,IAArBrtwB,UAAUlkB,QAAwC,kBAAjBkkB,UAAU,GAAiB,CAC9D,IAAI83tB,EAAQ93tB,UAAU,GAAGwsB,aAAexsB,UAAU,GAClD9kB,KAAKyyC,YAAcmqsB,EAAMnqsB,YACzBzyC,KAAKg1C,gBAAkB4nsB,EAAM5nsB,gBAC7Bh1C,KAAKwyC,aAAeoqsB,EAAMpqsB,YAC5B,MACExyC,KAAKyyC,YAAc3tB,UAAU,GAC7B9kB,KAAKg1C,gBAAkBlwB,UAAU,GACjC9kB,KAAKwyC,aAAe1tB,UAAU,EAElC,EAMAstwB,aAAc,GAOdC,aAAc,WACZ,IAAIhvxB,EAAc0hxB,EAAI6G,KAAKz5wB,KAAKo+P,UAAUj7N,UACtCg9uB,EAAe,IAAIhvxB,KAAKD,EAAkC,IAApBrD,KAAKoyxB,cAE/C,SAAIpyxB,KAAKkyxB,YAAcI,EAAetyxB,KAAKkyxB,cAGlClyxB,KAAKiyxB,UAAYjyxB,KAAKyyC,cAAgBzyC,KAAKg1C,gBAEtD,EAeAl1B,IAAK,SAAayoG,GAChB,IAAI1E,EAAO7jH,KACPA,KAAKqyxB,eACPryxB,KAAKw8S,SAAQ,SAASn4S,GACfA,IAAKw/G,EAAKouqB,SAAU,GACrB1pqB,GAAUA,EAASlkH,EACzB,IACSkkH,GACTA,GAEJ,EAgEAi0L,QAAS,SAAiBj0L,GACxBvoH,KAAKiyxB,SAAU,EACf1pqB,GACF,EAMAgqqB,gBAAiB,SAAyBhqqB,EAAU0zoB,GAClD,IAAIp4oB,EAAO7jH,KACkC,IAAzC6jH,EAAKsuqB,iBAAiBvwwB,KAAK2mG,IAC7B1E,EAAKw6G,MAAK,SAAgBh6N,GACxB0gxB,EAAI6G,KAAK4G,UAAU3uqB,EAAKsuqB,kBAAkB,SAAS5pqB,GAC7C0zoB,EACF1zoB,EAASlkH,GAGT0gxB,EAAI6G,KAAK6G,OAAM,WACblqqB,EAASlkH,EACX,GAEJ,IACAw/G,EAAKsuqB,iBAAiBvxxB,OAAS,CACjC,GAEJ,EAMAy9N,KAAM,SAAc91G,GAClBA,GACF,IAMFw8pB,EAAImL,YAAYwC,mBAAqB,SAA4BC,GAC/D3yxB,KAAKE,UAAU48uB,WAAaioC,EAAI6G,KAAKgH,gBAAgB,MAAOD,GAC5D3yxB,KAAKE,UAAU2yxB,eAAiB9N,EAAI6G,KAAKgH,gBAAgB,UAAWD,EACtE,EAKA5N,EAAImL,YAAY4C,wBAA0B,kBACjC9yxB,KAAKE,UAAU48uB,kBACf98uB,KAAKE,UAAU2yxB,cACxB,EAEA9N,EAAI6G,KAAKyE,YAAYtL,EAAImL,oCCrPzB,IAAInL,EAAM/tvB,EAAQ,MACdoyvB,EAAMpyvB,EAAQ,OAsElB+tvB,EAAIgO,8BAAgChO,EAAI6G,KAAK/1mB,QAAQkvmB,EAAImL,YAAa,CA6BpE7pwB,YAAa,SAAuC/b,GAClDy6wB,EAAImL,YAAYpqwB,KAAK9lB,MACrBsK,EAAUA,GAAW,CAAC,EACtBtK,KAAK0tF,UAAY,+CACjB1tF,KAAKiyxB,SAAU,EACfjyxB,KAAKgzxB,YAAc,KAEnB,IAAIn6tB,EAASkstB,EAAI6G,KAAKn0qB,KAAKntG,EAAQuuD,SAAW,CAAC,EAI/C,GAHIA,EAAOo6tB,UACTp6tB,EAAOq6tB,gBAAkBr6tB,EAAOq6tB,iBAAmB,yBAEjDr6tB,EAAOs6tB,aAAc,CACvB,IAAK7oxB,EAAQ0oxB,aAA+C,oBAAxB1oxB,EAAQ0oxB,YAC1C,MAAM,IAAIjO,EAAI6G,KAAKrnxB,MACjB,IAAIpE,MAAM,oEACV,CAAC8mB,KAAMjnB,KAAK0tF,YAGd1tF,KAAKgzxB,YAAc1oxB,EAAQ0oxB,WAE/B,CACA,IAAIl0uB,EAASimuB,EAAI6G,KAAK9/lB,MACpB,CACEjzH,OAAQA,EACRvnB,YAAahnC,EAAQ8oxB,mBAAqBrO,EAAIjmuB,OAAOxN,aAEvDhnC,EAAQ+oxB,WAAa,CAAC,GAExBrzxB,KAAKqkC,QAAU,IAAI+kvB,EAAItquB,EACzB,EAeA09P,QAAS,SAAiBj0L,GACxBvoH,KAAKuyxB,gBAAgBhqqB,GAAYw8pB,EAAI6G,KAAKjjwB,GAAG4/F,SAC/C,EAMA81G,KAAM,SAAc91G,GAClB,IAAI1E,EAAO7jH,KACP6+B,EAAYglF,EAAKx/E,QAAQya,OAAO+Z,OAAOo6tB,QAAU,aAAe,kBACpEjzxB,KAAKszxB,cAAa,SAAUjvxB,EAAKkvxB,GAC/B,IAAI16tB,EAAS,CAAC,EACVx0D,EACFkkH,EAASlkH,IAGPkvxB,IACF16tB,EAAO26tB,UAAYD,GAErB1vqB,EAAKx/E,QAAQxF,GAAWg6B,GAAQ,SAAUx0D,EAAKsF,GACxCtF,GACHw/G,EAAKx/E,QAAQovvB,gBAAgB9pxB,EAAMk6G,GAErC0E,EAASlkH,EACX,IACF,GACF,EAKAivxB,aAAc,SAAsB/qqB,GAClC,IAAI1E,EAAO7jH,KACPA,KAAKgzxB,YACPhzxB,KAAKgzxB,YAAYhzxB,KAAKqkC,QAAQya,OAAO+Z,OAAOs6tB,cAAc,SAAU9uxB,EAAKqgD,GACvE,GAAIrgD,EAAK,CACP,IAAIpE,EAAUoE,EAUd,OATIA,aAAelE,QACjBF,EAAUoE,EAAIpE,cAEhBsoH,EACEw8pB,EAAI6G,KAAKrnxB,MACP,IAAIpE,MAAM,6BAA+BF,GACzC,CAAEgnB,KAAM48F,EAAKn2B,YAInB,CACA66B,EAAS,KAAM7jE,EACjB,IAEA6jE,EAAS,KAEb,2BCtMF,IAAIw8pB,EAAM/tvB,EAAQ,MACdsvvB,EAAkBtvvB,EAAQ,OAC1BoyvB,EAAMpyvB,EAAQ,OA0DlB+tvB,EAAI2O,2BAA6B3O,EAAI6G,KAAK/1mB,QAAQkvmB,EAAImL,YAAa,CAIjEyD,gBAAiB,CACfjrxB,GAAI,2BACJimxB,UAAW,mCA4DbtowB,YAAa,SAAoCwyC,EAAQ07C,GACvDwwqB,EAAImL,YAAYpqwB,KAAK9lB,MACrBA,KAAKiyxB,SAAU,EACfjyxB,KAAK64D,OAASA,EACd74D,KAAK2J,KAAO,KACZ3J,KAAK4zxB,YAAc,KACnB5zxB,KAAK6zxB,cAAgB9O,EAAI6G,KAAKn0qB,KAAKlD,GAAgB,CAAC,GACpDv0G,KAAK8zxB,eACL,IAAIjwqB,EAAO7jH,KACX+f,OAAOC,eAAehgB,KAAM,aAAc,CACxC8f,IAAK,WAEH,OADA+jG,EAAKiwqB,eACEjwqB,EAAK+vqB,aAAe/vqB,EAAKhrD,OAAOk7tB,UACzC,EACA/2vB,IAAK,SAASg3vB,GACZnwqB,EAAK+vqB,YAAcI,CACrB,GAEJ,EAcAx3e,QAAS,SAAiBj0L,GACxBvoH,KAAKuyxB,gBAAgBhqqB,GAAYw8pB,EAAI6G,KAAKjjwB,GAAG4/F,SAC/C,EAMA81G,KAAM,SAAc91G,GAClB,IAAI1E,EAAO7jH,KACX6jH,EAAKowqB,gBACLpwqB,EAAKl6G,KAAO,KACZk6G,EAAK+vqB,YAAc,KACnB/vqB,EAAK+yG,OAAM,SAASvyN,GACbA,GAOHw/G,EAAKqwqB,uBAAuB7vxB,GAC5BkkH,EAASlkH,IAPJw/G,EAAKhrD,OAAOo6tB,QAGfpvqB,EAAKswqB,sBAAsB5rqB,GAF3B1E,EAAKuwqB,0BAA0B7rqB,EAQrC,GACF,EAOA8rqB,cAAe,WACbr0xB,KAAK4zxB,YAAc,YACZ5zxB,KAAK64D,OAAOk7tB,WAEnB,IAAIO,EAASt0xB,KAAK64D,OAAO07tB,eACrBC,EAAUx0xB,KAAK64D,OAAO47tB,SAAW,UAC9Bz0xB,KAAK+2vB,QAAQ/2vB,KAAK2zxB,gBAAgBjrxB,GAAK4rxB,EAASE,UAChDx0xB,KAAK+2vB,QAAQ/2vB,KAAK2zxB,gBAAgBhF,UAAY2F,EAASE,EAChE,EAKAN,uBAAwB,SAAgC7vxB,GAEtC,0BAAZA,EAAI4iB,MADGjnB,KAEJq0xB,eAET,EAeAz9jB,MAAO,SAAeruG,GACpB,IAAI1E,EAAO7jH,KACX,GAAsC,kBAA3B6jH,EAAKhrD,OAAOk7tB,WACrB,OAAOxrqB,EAAS,KAAM1E,EAAKhrD,OAAOk7tB,YAGpClwqB,EAAK6wqB,QAAQ99jB,OAAM,SAASvyN,EAAKsF,IAC1BtF,GAAOsF,EAAKoqxB,YACflwqB,EAAKhrD,OAAOk7tB,WAAapqxB,EAAKoqxB,WAC9BxrqB,EAAS,KAAM5+G,EAAKoqxB,aAEpBxrqB,EAASlkH,EAEb,GACF,EAMAswxB,gBAAiB,SAAyBhrxB,EAAM2nC,GACzC3nC,GAAS2nC,IACdA,EAAY2gvB,SAAU,EACtB3gvB,EAAYmB,YAAc9oC,EAAKumxB,YAAY0E,YAC3CtjvB,EAAY0D,gBAAkBrrC,EAAKumxB,YAAY2E,UAC/CvjvB,EAAYkB,aAAe7oC,EAAKumxB,YAAY4E,aAC5CxjvB,EAAY4gvB,WAAavoxB,EAAKumxB,YAAYrjsB,WAC5C,EAKAunsB,0BAA2B,SAAmC7rqB,GAC5D,IAAI1E,EAAO7jH,KACX6jH,EAAK6wqB,QAAQN,2BAA0B,SAAS/vxB,EAAKsF,GAC9CtF,EAKHw/G,EAAKqwqB,uBAAuB7vxB,IAJ5Bw/G,EAAKkxqB,QAAQprxB,GACbk6G,EAAKl6G,KAAOA,EACZk6G,EAAK8wqB,gBAAgB9wqB,EAAKl6G,KAAMk6G,IAIlC0E,EAASlkH,EACX,GACF,EAKA8vxB,sBAAuB,SAA+B5rqB,GACpD,IAAI1E,EAAO7jH,KACX6jH,EAAK6wqB,QAAQM,gBAAe,SAAS3wxB,EAAKsF,GACnCtF,GAWHw/G,EAAKqwqB,uBAAuB7vxB,GAC5BkkH,EAASlkH,KAXTw/G,EAAKkxqB,QAAQprxB,GACbk6G,EAAKhrD,OAAOo8tB,iBAAmBtrxB,EAAKugF,MACpC25B,EAAKqxqB,uBAAuB14e,SAAQ,SAAS24e,GACtCA,IACHtxqB,EAAKl6G,KAAOk6G,EAAKqxqB,uBAAuBvrxB,KACxCk6G,EAAKuxqB,IAAI3B,gBAAgB5vqB,EAAKl6G,KAAMk6G,IAEtC0E,EAAS4sqB,EACX,IAKJ,GACF,EAKArB,aAAc,WACZ,IAAIjwqB,EAAO7jH,KAGX,GAAI+kxB,EAAI6G,KAAKh3N,cAAgB/wc,EAAKhrD,OAAOk7tB,WAAY,CACnD,IAAIrrxB,EAAKm7G,EAAKs7pB,WAAW,MACzB,GAAIz2wB,GAAMm7G,EAAKhrD,OAAOw8tB,OAAQ,CAC5B,IAAIC,EAAkBv1wB,OAAOwE,KAAKs/F,EAAKhrD,OAAOw8tB,QAQrB,KANtBxxqB,EAAKs7pB,WAAW,cAAgB,IAAIv9wB,MAAM,KAGb6S,QAAO,SAAS5T,GAC9C,OAAuC,IAAhCy0xB,EAAgBl0xB,QAAQP,EACjC,IACcD,SACZijH,EAAKhrD,OAAOk7tB,WAAarrxB,EAE7B,MAAWA,IACTm7G,EAAKhrD,OAAOk7tB,WAAarrxB,EAE7B,CACF,EAKAurxB,cAAe,WACb,IAAI1/qB,EAAev0G,KAAK6zxB,cAGxB,GAFA7zxB,KAAKk1xB,uBAAyBl1xB,KAAKk1xB,wBACjC,IAAInQ,EAAIwQ,uBAAuBv1xB,KAAK64D,OAAQ07C,IACzCv0G,KAAK00xB,QAAS,CACjB,IAAIc,EAAgBzQ,EAAI6G,KAAK9/lB,MAAM,CAAC,EAAGv3E,GACvCihrB,EAAc38tB,OAAS74D,KAAK64D,OAC5B74D,KAAK00xB,QAAU,IAAIpO,EAAgBkP,EACrC,CACAx1xB,KAAKo1xB,IAAMp1xB,KAAKo1xB,KAAO,IAAIhM,EAAI70qB,EACjC,EAKAwgrB,QAAS,SAAiBprxB,GACxB3J,KAAK4zxB,YAAcjqxB,EAAKoqxB,WACxB/zxB,KAAK64D,OAAOk7tB,WAAa/zxB,KAAK4zxB,YAG1B7O,EAAI6G,KAAKh3N,cACX50jB,KAAKy1xB,WAAW,KAAM9rxB,EAAKoqxB,YAEvB/zxB,KAAK64D,OAAOw8tB,QACdr1xB,KAAKy1xB,WAAW,YAAa11wB,OAAOwE,KAAKvkB,KAAK64D,OAAOw8tB,QAAQruwB,KAAK,MAGxE,EAKAm4vB,WAAY,SAAoBl6vB,GAC9B,OAAOjlB,KAAK+2vB,QAAQ/2vB,KAAK2zxB,gBAAgB1uwB,GAAOjlB,KAAK64D,OAAO07tB,gBAAkBv0xB,KAAK64D,OAAO47tB,SAAW,IACvG,EAKAgB,WAAY,SAAoBxwwB,EAAK4qF,GACnC,IACE7vG,KAAK+2vB,QAAQ/2vB,KAAK2zxB,gBAAgB1uwB,GAAOjlB,KAAK64D,OAAO07tB,gBAAkBv0xB,KAAK64D,OAAO47tB,SAAW,KAAO5krB,CACvG,CAAE,MAAOn1E,GAAI,CACf,EAKAq8tB,QAAU,WACR,IACE,IAAIA,EAAUguB,EAAI6G,KAAKh3N,aAAuC,OAAxBt0jB,OAAOyB,cAAwD,kBAAxBzB,OAAOyB,aAChFzB,OAAOyB,aAAe,CAAC,EAM3B,OAHAg1vB,EAAQ,oBAAsB,gBACvBA,EAAQ,oBAERA,CACT,CAAE,MAAOr8tB,GACP,MAAO,CAAC,CACV,CACF,CAbU,4BClXZ,IAAIqqvB,EAAM/tvB,EAAQ,MA4ClB+tvB,EAAI2J,wBAA0B3J,EAAI6G,KAAK/1mB,QAAQkvmB,EAAImL,YAAa,CAM9D7pwB,YAAa,SAAiCsowB,GAE1C3uxB,KAAK2uxB,UADHA,GAGe5J,EAAI2J,wBAAwBgH,iBAAiBtvwB,MAAM,GAEtEpmB,KAAK21xB,iBAAmB,EAC1B,EAuCA/ywB,QAAS,SAAiB2lG,GACxB,IAAI1E,EAAO7jH,KACX,GAA8B,IAA1B6jH,EAAK8qqB,UAAU/txB,OAEjB,OADA2nH,EAAS,IAAIpoH,MAAM,iBACZ0jH,EAGT,GAA6C,IAAzCA,EAAK8xqB,iBAAiB/zwB,KAAK2mG,GAAiB,CAC9C,IAAIn1F,EAAQ,EACRu7vB,EAAY9qqB,EAAK8qqB,UAAUvowB,MAAM,IAErC,SAASwvwB,EAAYvxxB,EAAKu4uB,GACxB,IAAMv4uB,GAAOu4uB,GAAUxptB,IAAUu7vB,EAAU/txB,OAKzC,OAJAmkxB,EAAI6G,KAAK4G,UAAU3uqB,EAAK8xqB,kBAAkB,SAAUptqB,GAClDA,EAASlkH,EAAKu4uB,EAChB,SACA/4nB,EAAK8xqB,iBAAiB/0xB,OAAS,GAIjC,IAAIknC,EAAW6mvB,EAAUv7vB,MAEvBwptB,EADsB,oBAAb90sB,EACDA,EAAShiB,OAETgiB,GAGAhoB,IACR88tB,EAAM98tB,KAAI,SAAU+1wB,GAClBD,EAAYC,EAAQA,EAAS,KAAOj5C,EACtC,IAEAg5C,EAAY,KAAMh5C,EAEtB,CAEAg5C,EACF,CAEA,OAAO/xqB,CACT,IA2BFkhqB,EAAI2J,wBAAwBgH,iBAAmB,GAK/C3Q,EAAI2J,wBAAwBgE,mBAAqB,SAA4BC,GAC3E3yxB,KAAKE,UAAU41xB,eAAiB/Q,EAAI6G,KAAKgH,gBAAgB,UAAWD,EACtE,EAKA5N,EAAI2J,wBAAwBoE,wBAA0B,kBAC7C9yxB,KAAKE,UAAU41xB,cACxB,EAEA/Q,EAAI6G,KAAKyE,YAAYtL,EAAI2J,gDCnLzB,IAAI3J,EAAM/tvB,EAAQ,MACdoyvB,EAAMpyvB,EAAQ,OAsClB+tvB,EAAIgR,gBAAkBhR,EAAI6G,KAAK/1mB,QAAQkvmB,EAAImL,YAAa,CAYtD7pwB,YAAa,SAAyBwyC,GACpCkstB,EAAImL,YAAYpqwB,KAAK9lB,MACrBA,KAAKiyxB,SAAU,EACfjyxB,KAAK64D,OAASA,CAChB,EAaA2jP,QAAS,SAAiBj0L,GACxBvoH,KAAKuyxB,gBAAgBhqqB,GAAYw8pB,EAAI6G,KAAKjjwB,GAAG4/F,SAC/C,EAKA81G,KAAM,SAAc91G,GAClB,IAAI1E,EAAO7jH,KACX6jH,EAAKowqB,gBACLpwqB,EAAKx/E,QAAQ2xvB,oBAAmB,SAAU3xxB,EAAKsF,GACxCtF,GACHw/G,EAAKx/E,QAAQovvB,gBAAgB9pxB,EAAMk6G,GAErC0E,EAASlkH,EACX,GACF,EAKA4vxB,cAAe,WACbj0xB,KAAKqkC,QAAUrkC,KAAKqkC,SAAW,IAAI+kvB,EAAI,CAACvwtB,OAAQ74D,KAAK64D,QACvD,2BC3FF,IAAIkstB,EAAM/tvB,EAAQ,MACdoyvB,EAAMpyvB,EAAQ,OAmClB+tvB,EAAIkR,qBAAuBlR,EAAI6G,KAAK/1mB,QAAQkvmB,EAAImL,YAAa,CAuB3D7pwB,YAAa,SAA8BwyC,EAAQu6tB,GACjDrO,EAAImL,YAAYpqwB,KAAK9lB,MACrBA,KAAKk2xB,sBAAsB9C,GAC3BpzxB,KAAKiyxB,SAAU,EAEfjyxB,KAAK64D,OAASA,GAAU,CAAC,EACrB74D,KAAK64D,OAAOo6tB,UACdjzxB,KAAK64D,OAAOq6tB,gBACVlzxB,KAAK64D,OAAOq6tB,iBAAmB,wBAErC,EAeA12e,QAAS,SAAkBj0L,GACzBvoH,KAAKuyxB,gBAAgBhqqB,GAAYw8pB,EAAI6G,KAAKjjwB,GAAG4/F,SAC/C,EAKA81G,KAAM,SAAe91G,GACnB,IAAI1E,EAAO7jH,KACX6jH,EAAKowqB,gBACLpwqB,EAAKuvqB,kBAAkBtzwB,KAAI,WACzB+jG,EAAKx/E,QAAQya,OAAOxN,YAAcuyE,EAAKuvqB,mBACvBvvqB,EAAKhrD,OAAOo6tB,QAC1BpvqB,EAAKx/E,QAAQ8xvB,WAAatyqB,EAAKx/E,QAAQ+xvB,iBAC/BtwwB,KAAK+9F,EAAKx/E,SAAS,SAAUhgC,EAAKsF,GACrCtF,GACHw/G,EAAKx/E,QAAQovvB,gBAAgB9pxB,EAAMk6G,GAErC0E,EAASlkH,EACX,GACF,GACF,EAKA6xxB,sBAAuB,SAAgC9C,GAErD,IADApzxB,KAAKozxB,kBAAoBA,GAAqBrO,EAAIjmuB,OAAOxN,YAClDtxC,KAAKozxB,kBAAkBA,mBAC5BpzxB,KAAKozxB,kBAAoBpzxB,KAAKozxB,kBAAkBA,kBAGR,oBAA/BpzxB,KAAKozxB,kBAAkBtzwB,MAChC9f,KAAKozxB,kBAAoB,IAAIrO,EAAImL,YAAYlwxB,KAAKozxB,mBAEtD,EAKAa,cAAe,WACbj0xB,KAAKqkC,QAAUrkC,KAAKqkC,SAAW,IAAI+kvB,EAAI,CAACvwtB,OAAQ74D,KAAK64D,QACvD,2BC9HF,IAAIkstB,EAAM/tvB,EAAQ,MACdoyvB,EAAMpyvB,EAAQ,OAyClB+tvB,EAAIwQ,uBAAyBxQ,EAAI6G,KAAK/1mB,QAAQkvmB,EAAImL,YAAa,CAqB7D7pwB,YAAa,SAAgCwyC,EAAQ07C,GACnDwwqB,EAAImL,YAAYpqwB,KAAK9lB,MACrBA,KAAKiyxB,SAAU,EACfjyxB,KAAK64D,OAASA,EACd74D,KAAK64D,OAAOq6tB,gBAAkBlzxB,KAAK64D,OAAOq6tB,iBAAmB,eAC7DlzxB,KAAK2J,KAAO,KACZ3J,KAAK6zxB,cAAgB9O,EAAI6G,KAAKn0qB,KAAKlD,GAAgB,CAAC,EACtD,EAaAioM,QAAS,SAAiBj0L,GACxBvoH,KAAKuyxB,gBAAgBhqqB,GAAYw8pB,EAAI6G,KAAKjjwB,GAAG4/F,SAC/C,EAKA81G,KAAM,SAAc91G,GAClB,IAAI1E,EAAO7jH,KACX6jH,EAAKowqB,gBACLpwqB,EAAKx/E,QAAQgyvB,2BAA0B,SAAUhyxB,EAAKsF,GACpDk6G,EAAKl6G,KAAO,KACPtF,IACHw/G,EAAKl6G,KAAOA,EACZk6G,EAAKx/E,QAAQovvB,gBAAgB9pxB,EAAMk6G,IAErC0E,EAASlkH,EACX,GACF,EAKA4vxB,cAAe,WACb,IAAKj0xB,KAAKqkC,QAAS,CACjB,IAAIgvvB,EAAYtO,EAAI6G,KAAK9/lB,MAAM,CAAC,EAAG9rL,KAAK6zxB,eACxCR,EAAUx6tB,OAAS74D,KAAK64D,OACxB74D,KAAKqkC,QAAU,IAAI+kvB,EAAIiK,EACzB,CACF,2BChHF,IAAItO,EAAM/tvB,EAAQ,MACd40vB,EAAO50vB,EAAQ,OACfs/vB,EAA+B,CAAC,gCAAiC,kCAWrE,SAASr2D,EAAY17rB,GACnB,IAAIF,EAAUE,EAAQF,QAClB5lB,EAAM4lB,EAAQ5lB,KAAO,CAAC,EAEtBk8tB,GADal8tB,EAAI2stB,WACH,CAAC,GAUnB,OATI/msB,EAAQya,OAAOlP,SACjB+qsB,EAAY/qsB,OAASvL,EAAQya,OAAOlP,QAElCnxB,EAAI8oC,YACNozrB,EAAYpzrB,UAAY9oC,EAAI8oC,WAE1BljB,EAAQya,OAAOxN,YAAYmB,cAC7BkosB,EAAYlosB,YAAcpO,EAAQya,OAAOxN,YAAYmB,aAEhDkosB,CACT,CAOA,SAAS47C,EAAgCrxxB,EAAQ2zD,EAAQtgD,GAClDA,QAAoBlQ,IAAXwwD,GAAmC,OAAXA,GACnB,cAAftgD,EAAMtU,MAAwBsU,EAAMC,UAAYD,EAAMC,SAAS5X,OAAS,GAC1EgrxB,EAAK4G,UAAUj6wB,EAAMC,UAAU,SAASpY,GACtC,IAAIo2xB,EAAcj+wB,EAAMk+wB,QAAQr2xB,GAChC,IAAwC,IAApCo2xB,EAAYE,oBAA8B,CAC5C,IAAIC,EAAeH,EAAYI,eAAiBJ,EAAYp2xB,KAAOA,EACnE8E,EAAOyxxB,GAAgBj2xB,OAAOm4D,EAAOz4D,GACvC,MACEm2xB,EAAgCrxxB,EAAQ2zD,EAAOz4D,GAAOo2xB,EAE1D,GAEJ,CASA,SAASK,EAA0BtyvB,EAAShsB,GAC1C,IAAIoiuB,EAAc,CAAC,EAEnB,OADA47C,EAAgC57C,EAAap2sB,EAAQs0B,OAAQtgD,GACtDoiuB,CACT,CAUA,SAASm8C,EAAyBvyvB,GAChC,IAAIF,EAAUE,EAAQF,QAClB5lB,EAAM4lB,EAAQ5lB,IACds4wB,EAAiBt4wB,EAAI2stB,WAAa3stB,EAAI2stB,WAAW7msB,EAAQ1F,gBAAax2B,EAGtEsyuB,EAAck8C,EAA0BtyvB,EAF3BwyvB,EAAiBA,EAAe72vB,WAAQ73B,GAGrD4sC,EAAWgrrB,EAAY17rB,GACvBxkB,OAAOwE,KAAKo2tB,GAAa/5uB,OAAS,IACpCq0C,EAAW22uB,EAAKv0vB,OAAO4d,EAAU0lsB,GAC7Bo8C,IAAgB9hvB,EAASpW,UAAYk4vB,EAAe32xB,OAE1D,IAAI42xB,EAAYjS,EAAIkS,cAAcn3wB,IAAIm1B,GACtC,IAAI+hvB,GAAkC,IAArBA,EAAUp2xB,QAAyC,KAAzBo2xB,EAAU,GAAGE,QAIjD,GAAIF,GAAaA,EAAUp2xB,OAAS,EAEzC2jC,EAAQg+W,YAAY40Y,eAAeH,EAAU,GAAGE,aAC3C,CAEL,IAAIE,EAAkB/yvB,EAAQgzvB,YAAY54wB,EAAI64wB,kBAAmB,CAC/D5F,UAAWqF,EAAe32xB,KAC1Bm3xB,YAAa58C,IAEf68C,EAAoBJ,GACpBA,EAAgBximB,eAAe,WAAYmwlB,EAAI0S,eAAeC,KAAKC,qBACnEP,EAAgBximB,eAAe,QAASmwlB,EAAI0S,eAAeC,KAAKE,aAGhE7S,EAAIkS,cAAcY,IAAI5ivB,EAAU,CAAC,CAC/BiivB,QAAS,GACTY,qBAAsB,KAExBV,EAAgBzqtB,MAAK,SAAStoE,EAAKsF,GAC7BA,GAAQA,EAAKouxB,UACfhT,EAAIkS,cAAcY,IAAI5ivB,EAAUtrC,EAAKouxB,WAC5B1zxB,GACT0gxB,EAAIkS,cAAcY,IAAI5ivB,EAAU,CAAC,CAC/BiivB,QAAS,GACTY,qBAAsB,IAG5B,GACF,CACF,CAEA,IAAIE,EAAe,CAAC,EAWpB,SAASC,EAAyB1zvB,EAASve,GACzC,IAAIqe,EAAUE,EAAQF,QAClB5lB,EAAM4lB,EAAQ5lB,IACds4wB,EAAiBt4wB,EAAI2stB,WAAa3stB,EAAI2stB,WAAW7msB,EAAQ1F,gBAAax2B,EACtE6vxB,EAAanB,EAAiBA,EAAe72vB,WAAQ73B,EAErDsyuB,EAAck8C,EAA0BtyvB,EAAS2zvB,GACjDjjvB,EAAWgrrB,EAAY17rB,GACvBxkB,OAAOwE,KAAKo2tB,GAAa/5uB,OAAS,IACpCq0C,EAAW22uB,EAAKv0vB,OAAO4d,EAAU0lsB,GAC7Bo8C,IAAgB9hvB,EAASpW,UAAYk4vB,EAAe32xB,OAE1D,IAAI+3xB,EAAcpT,EAAI8M,cAAcuG,aAAanjvB,GAC7C+hvB,EAAYjS,EAAIkS,cAAcn3wB,IAAIq4wB,GACtC,GAAInB,GAAkC,IAArBA,EAAUp2xB,QAAyC,KAAzBo2xB,EAAU,GAAGE,QAKtD,OAFKc,EAAaG,KAAcH,EAAaG,GAAe,SAC5DH,EAAaG,GAAav2wB,KAAK,CAAC2iB,QAASA,EAASgkF,SAAUviG,IAEvD,GAAIgxwB,GAAaA,EAAUp2xB,OAAS,EACzC2jC,EAAQg+W,YAAY40Y,eAAeH,EAAU,GAAGE,SAChDlxwB,QACK,CACL,IAAIoxwB,EAAkB/yvB,EAAQgzvB,YAAY54wB,EAAI64wB,kBAAmB,CAC/D5F,UAAWqF,EAAe32xB,KAC1Bm3xB,YAAa58C,IAEfy8C,EAAgBximB,eAAe,WAAYmwlB,EAAI0S,eAAeC,KAAKC,qBACnEH,EAAoBJ,GAIpBrS,EAAIkS,cAAcY,IAAIM,EAAa,CAAC,CAClCjB,QAAS,GACTY,qBAAsB,MAExBV,EAAgBzqtB,MAAK,SAAStoE,EAAKsF,GACjC,GAAItF,GAKF,GAJAkgC,EAAQ7gC,SAASa,MAAQqnxB,EAAKrnxB,MAAMF,EAAK,CAAEmouB,WAAW,IACtDu4C,EAAIkS,cAAc/hoB,OAAOjgH,GAGrB+ivB,EAAaG,GAAc,CAC7B,IAAIE,EAAkBL,EAAaG,GACnCvM,EAAK4G,UAAU6F,GAAiB,SAASC,GACvCA,EAAe/zvB,QAAQ7gC,SAASa,MAAQqnxB,EAAKrnxB,MAAMF,EAAK,CAAEmouB,WAAW,IACrE8rD,EAAe/vqB,UACjB,WACOyvqB,EAAaG,EACtB,OACK,GAAIxuxB,IACTo7wB,EAAIkS,cAAcY,IAAIM,EAAaxuxB,EAAKouxB,WACxCxzvB,EAAQg+W,YAAY40Y,eAAextxB,EAAKouxB,UAAU,GAAGb,SAGjDc,EAAaG,IAAc,CACzBE,EAAkBL,EAAaG,GACnCvM,EAAK4G,UAAU6F,GAAiB,SAASC,GACvCA,EAAe/zvB,QAAQg+W,YAAY40Y,eAAextxB,EAAKouxB,UAAU,GAAGb,SACpEoB,EAAe/vqB,UACjB,WACOyvqB,EAAaG,EACtB,CAEFnywB,GACF,GACF,CACF,CAMA,SAASwxwB,EAAoBJ,GAC3B,IACI3huB,EADM2huB,EAAgB/yvB,QAAQ5lB,IACbg3C,WACjBA,IAAe2huB,EAAgB70Y,YAAYlgZ,QAAQ,uBACrD+0xB,EAAgB70Y,YAAYlgZ,QAAQ,qBAAuBozD,EAE/D,CAOA,SAAS8iuB,EAA0B70xB,GACjC,IAAIa,EAAQb,EAASa,MACjBi0xB,EAAe90xB,EAAS80xB,aAC5B,GAAIj0xB,IACc,6BAAfA,EAAM0iB,MAAmE,MAA5BuxwB,EAAahyuB,YAC3D,CACA,IAAIjiB,EAAU7gC,EAAS6gC,QACnB6msB,EAAa7msB,EAAQF,QAAQ5lB,IAAI2stB,YAAc,CAAC,EAEhDuP,EAAck8C,EAA0BtyvB,EAD3B6msB,EAAW7msB,EAAQ1F,WAAaussB,EAAW7msB,EAAQ1F,WAAWqB,WAAQ73B,GAEnF4sC,EAAWgrrB,EAAY17rB,GACvBxkB,OAAOwE,KAAKo2tB,GAAa/5uB,OAAS,IACpCq0C,EAAW22uB,EAAKv0vB,OAAO4d,EAAU0lsB,GAC7BvP,EAAW7msB,EAAQ1F,aAAYoW,EAASpW,UAAYussB,EAAW7msB,EAAQ1F,WAAWz+B,OAExF2kxB,EAAIkS,cAAc/hoB,OAAOjgH,EAC3B,CACF,CAsBA,SAASwjvB,EAAQzxxB,GACf,MAAO,CAAC,QAAS,KAAK5F,QAAQ4F,IAAU,CAC1C,CA+GAi+M,EAAOrtL,QAAU,CACf8gwB,iBA/CF,SAA0Bn0vB,EAASve,GACjC,IAAIqe,EAAUE,EAAQF,SAAW,CAAC,EAClC,GApFF,SAA2BqoC,GAEzB,GAAIA,EAAOistB,iBAAmBjstB,EAAOistB,gBAAgBn7uB,WAAgE,IAApDkvB,EAAOistB,gBAAgB7I,yBACtF,MAAMlE,EAAKrnxB,MAAM,IAAIpE,MAAS,CAC5B8mB,KAAM,yBACNhnB,QAAS,4EAGb,IAAI24xB,EAAY7T,EAAIjmuB,OAAO4tB,EAAOmstB,oBAAsB,CAAC,EACzD,OAAOjwxB,QAAQm8wB,EAAIjmuB,OAAOtB,UAAYo7uB,EAAUp7uB,UAAakvB,EAAOistB,iBAAmBjstB,EAAOistB,gBAAgBn7uB,SAChH,CA0EMs7uB,CAAkBz0vB,IAAYE,EAAQw0vB,cAAe,OAAO/ywB,IAEhE,IACI+wwB,GADa1yvB,EAAQ5lB,IAAI2stB,YAAc,CAAC,GACZ7msB,EAAQ1F,WACpCm6vB,EAA8BjC,EAAiBA,EAAekC,0BAA4B,OAC1F/iqB,EA1DN,SAAwC3xF,GACtC,IAAIF,EAAUE,EAAQF,SAAW,CAAC,EAClC,QAAgDh8B,IAA5Cg8B,EAAQya,OAAOgxuB,yBACjB,OAAOzrvB,EAAQya,OAAOgxuB,yBAKxB,IAAIlE,EAAKh3N,YAAT,CAGA,IAAK,IAAI5zjB,EAAI,EAAGA,EAAIs1xB,EAA6B11xB,OAAQI,IAAK,CAC5D,IAAImzuB,EAAMmiD,EAA6Bt1xB,GACvC,GAAI+e,OAAO7f,UAAU04B,eAAe9S,KAAKiZ,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAao1sB,GAAM,CAC1D,GAAyB,KAArBp1sB,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYo1sB,SAAoC9ruB,IAArB02B,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYo1sB,GACzC,MAAMy3C,EAAKrnxB,MAAM,IAAIpE,MAAS,CAC5B8mB,KAAM,yBACNhnB,QAAS,0BAA4Bk0uB,EAAM,8BAG/C,OAAQskD,EAAQ15vB,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYo1sB,GAC9B,CACF,CAEA,IAAI+kD,EAAa,CAAC,EAClB,IACEA,EAAanU,EAAI6G,KAAKgF,UAAY7L,EAAI6G,KAAKgF,UAAUuI,SAAS,CAC5DC,UAAU,EACVC,SAAUt6vB,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYgmvB,EAAI6G,KAAK0N,uBAC5B,CAAC,CACR,CAAE,MAAOv5xB,GAAI,CACb,IAAIw5xB,EAAmBL,EACrBn6vB,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAY8xvB,aAAe9L,EAAI6G,KAAKkF,iBACjC,CAAC,EACN,GAAI/wwB,OAAO7f,UAAU04B,eAAe9S,KAAKyzwB,EAAkB,8BAA+B,CACxF,QAAoDlxxB,IAAhDkxxB,EAAiBC,2BACnB,MAAM5N,EAAKrnxB,MAAM,IAAIpE,MAAS,CAC5B8mB,KAAM,yBACNhnB,QAAS,4EAGb,OAAQw4xB,EAAQc,EAAiBC,2BACnC,CAlCsC,CAoCxC,CAckBC,CAA+Bl1vB,GAC3Cm1vB,EAA+Br1vB,EAAQ5lB,IAAIi7wB,6BAM/C,QALIxjqB,GAAawjqB,IAGfn1vB,EAAQg+W,YAAYo3Y,kBAAkB,sBAEhCX,GACN,IAAK,YACC9iqB,GAAawjqB,KAGf5C,EAAyBvyvB,GACzBA,EAAQq1vB,iBAAiB,8BAA+B,eAAgBrB,IAE1EvywB,IACA,MACF,IAAK,WACH,IAAkB,IAAdkwG,EAAqB,CAGvB3xF,EAAQ7gC,SAASa,MAAQqnxB,EAAKrnxB,MAAM,IAAIpE,MAAS,CAC/C8mB,KAAM,yBACNhnB,QAAS,sCAAwCokC,EAAQ5lB,IAAIhE,UAAY,IAAM8pB,EAAQ1F,UAC7E,sDAEZ7Y,IACA,KACF,CACAue,EAAQq1vB,iBAAiB,8BAA+B,eAAgBrB,GACxEN,EAAyB1zvB,EAASve,GAClC,MAEF,QACEA,IAGN,EAIEiywB,yBAA0BA,EAC1BnB,yBAA0BA,EAC1BD,0BAA2BA,EAC3B52D,YAAaA,EACb45D,yBAA0BtB,yBCvX5B,IAAIxT,EAAM/tvB,EAAQ,MACd40vB,EAAO7G,EAAI6G,KACXkO,EAAS9iwB,EAAAA,OAAAA,OACT+iwB,EAAc/iwB,EAAQ,OACtBgjwB,EAAchjwB,EAAQ,OA0N1B,SAASijwB,EAAcjzxB,EAAOkzxB,GAC5B,OAAOA,EAAc,IAAIF,EAAYhzxB,GAAS0tB,OAAO1tB,EACvD,CAOA,SAASmzxB,EAAUxwxB,EAAMW,GACvB,IAAI4F,EAAM,CAACk+C,EAAG,CAAC,GACf,IAAK,IAAInpC,KAAOtb,EAAM,CACpB,IAAIkzuB,EAAYkoC,EAAI8B,SAASuT,UAAUl6vB,MAAMv2B,EAAKsb,GAAM3a,QACtC,IAAduyuB,IACF3suB,EAAO,EAAE+U,GAAO43tB,EAEpB,CACA,OAAO3suB,CACT,CA1OA60wB,EAAI8B,SAASuT,UAAY,CAoBvBl6vB,MAAO,SAASm6vB,EAAa1wxB,EAAMW,GACjCA,EAAUA,GAAW,CAAC,EACtB,IAAIrG,EAAO61xB,EAAOnwxB,GAClB,MAAa,WAAT1F,EACKk2xB,EAAUxwxB,EAAMW,GACL,UAATrG,EAkLf,SAAoB0F,EAAMW,GAExB,IADA,IAAIkxG,EAAO,CAACrtD,EAAG,IACNntD,EAAI,EAAGA,EAAI2I,EAAK/I,OAAQI,IAC/Bw6G,EAAQ,EAAE55F,KAAKmjwB,EAAI8B,SAASuT,UAAUl6vB,MAAMv2B,EAAK3I,GAAIsJ,IAEvD,OAAOkxG,CACT,CAvLa8+qB,CAAW3wxB,EAAMW,GACN,QAATrG,EAoNf,SAAmB0F,EAAMW,GACvBA,EAAUA,GAAW,CAAC,EACtB,IAAIsK,EAASjL,EAAKiL,OAClB,GAAItK,EAAQiwxB,oBAEY,KADtB3lxB,EAoBJ,SAA8BooB,GAC1B,IAAIw9vB,EAAiB,GAMrB,GAL4B,CACxB95xB,QAAQ,EACR+5xB,QAAQ,EACR/lwB,QAAQ,GAEcsI,EAAI/4B,MAAO,CACjC,IAAK,IAAIjD,EAAI,EAAGA,EAAIg8B,EAAIpoB,OAAOhU,OAAQI,IACN,IAAzBg8B,EAAIpoB,OAAO5T,GAAGJ,QAGlB45xB,EAAe54wB,KAAKob,EAAIpoB,OAAO5T,IAGnC,OAAOw5xB,CACX,CAEA,OAAOx9vB,EAAIpoB,MACf,CAvCa8lxB,CAAqB/wxB,IACnB/I,OACT,OAAOmkxB,EAAI8B,SAASuT,UAAUl6vB,MAAM,MAIxC,IAAIhwB,EAAM,CAAC,EACX,OAAQvG,EAAK1F,MACX,IAAK,SAAUiM,EAAQ,GAAI0E,EAAQ,MACnC,IAAK,SAAU1E,EAAQ,GAAI0E,EAAQ,MACnC,IAAK,SAAU1E,EAAQ,GAAI0E,EAAO1E,KAAI,SAAUlJ,GAC9C,OAAOA,EAAMzF,UACf,IAEF,OAAO2O,CACT,CAtOayqxB,CAAUhxxB,EAAMW,GACL,WAATrG,EACW,IAAhB0F,EAAK/I,QAAgB0J,EAAQiwxB,mBACxBF,EAAa,MAEf,CAAE5ruB,EAAG9kD,GACM,WAAT1F,GAA8B,gBAATA,EACvB,CAAEoqD,EAAG1kD,EAAKpI,YACC,WAAT0C,EACW,IAAhB0F,EAAK/I,QAAgB0J,EAAQiwxB,mBACxBF,EAAa,MAEf,CAAE3suB,EAAG/jD,GACM,YAAT1F,EACF,CAAE22xB,KAAMjxxB,GACG,SAAT1F,EACF,CAAE42xB,MAAM,GACG,cAAT52xB,GAAiC,aAATA,EAE1Bk2xB,EAAUxwxB,EAAMW,QAFlB,CAIT,EAkCAwwxB,SAAU,SAAsBnxxB,EAAMW,GACpC,OAAOy6wB,EAAI8B,SAASuT,UAAUl6vB,MAAMv2B,EAAMW,GAAS8jD,CACrD,EAsBA1pB,OAAQ,SAASq2vB,EAAcpxxB,EAAMW,GAEnC,IAAIkxG,EAAMtrG,EAAKlP,EACf,IAAK,IAAIiD,KAFTqG,EAAUA,GAAW,CAAC,EAELX,EAAM,CACrB,IAAIiL,EAASjL,EAAK1F,GAClB,GAAa,MAATA,EAAc,CAEhB,IAAK,IAAIghB,KADT/U,EAAM,CAAC,EACS0E,EACd1E,EAAI+U,GAAO81wB,EAAcnmxB,EAAOqQ,GAAM3a,GAExC,OAAO4F,CACT,CAAO,GAAa,MAATjM,EAAc,CAEvB,IADAu3G,EAAO,GACFx6G,EAAI,EAAGA,EAAI4T,EAAOhU,OAAQI,IAC7Bw6G,EAAK55F,KAAKm5wB,EAAcnmxB,EAAO5T,GAAIsJ,IAErC,OAAOkxG,CACT,CAAO,GAAa,OAATv3G,EAAe,CAExB,IADAu3G,EAAO,GACFx6G,EAAI,EAAGA,EAAI4T,EAAOhU,OAAQI,IAC7Bw6G,EAAK55F,KAAKhN,EAAO5T,GAAK,IAExB,OAAO,IAAI+4xB,EAAYv+qB,EACzB,CAAO,GAAa,OAATv3G,EAAe,CAExB,IADAu3G,EAAO,GACFx6G,EAAI,EAAGA,EAAI4T,EAAOhU,OAAQI,IAC7Bw6G,EAAK55F,KAAKq4wB,EAAcrlxB,EAAO5T,GAAIsJ,EAAQ4vxB,cAE7C,OAAO,IAAIH,EAAYv+qB,EACzB,CAAO,GAAa,OAATv3G,EAAe,CAExB,IADAu3G,EAAO,GACFx6G,EAAI,EAAGA,EAAI4T,EAAOhU,OAAQI,IAC7Bw6G,EAAK55F,KAAKmjwB,EAAI6G,KAAKjsvB,OAAOq7vB,SAASpmxB,EAAO5T,KAE5C,OAAO,IAAI+4xB,EAAYv+qB,EACzB,CAAO,GAAa,MAATv3G,EACT,OAAO2Q,EAAS,GACX,GAAa,MAAT3Q,EACT,OAAOg2xB,EAAcrlxB,EAAQtK,EAAQ4vxB,aAChC,GAAa,MAATj2xB,EACT,OAAO2nxB,EAAKjsvB,OAAOq7vB,SAASpmxB,GACvB,GAAa,SAAT3Q,EACT,MAAmB,SAAX2Q,GAAgC,SAAXA,IAAgC,IAAXA,EAC7C,GAAa,SAAT3Q,EACT,OAAO,IAEX,CACF,EAuCAg3xB,WAAY,SAAoBtxxB,EAAMW,GACpC,OAAOy6wB,EAAI8B,SAASuT,UAAU11vB,OAAO,CAAC0pB,EAAGzkD,GAAOW,EAClD,GA4FF26M,EAAOrtL,QAAUmtvB,EAAI8B,SAASuT,iCCrS9B,IAAIrV,EAAM/tvB,EAAQ,MACdkkwB,EAAalkwB,EAAQ,OACrB+iwB,EAAc/iwB,EAAQ,OAsC1B+tvB,EAAI8B,SAASsU,eAAiBpW,EAAI6G,KAAK/1mB,QAAQ,CAsB7CxvJ,YAAa,SAAwB/b,GACnC,IAAIu5G,EAAO7jH,KACX6jH,EAAKv5G,QAAUA,GAAW,CAAC,EAC3Bu5G,EAAKtqD,UAAUsqD,EAAKv5G,QACtB,EAKAivD,UAAW,SAAmBjvD,GAC5B,IAAIu5G,EAAO7jH,KACX6jH,EAAKx/E,QAAU/5B,EAAQ+5B,QACvBw/E,EAAKu3qB,kBAAkB9wxB,GACvBu5G,EAAKw3qB,UAAY/wxB,EAAQ+wxB,UACvBx3qB,EAAKx/E,QAAQ5lB,IAAI2stB,WAAWkwD,QAAQp7vB,MAAMu2vB,QAAQ8E,KAAKv0xB,MAAMuR,KACjE,EAKA6ixB,kBAAmB,SAA2B9wxB,GAC5C,IAAIu5G,EAAO7jH,KAGX,GAFAsK,EAAUA,GAAW,CAAC,EAEjBu5G,EAAKx/E,QAEH,CACL,IAAIya,EAASimuB,EAAI6G,KAAKn0qB,KAAKoM,EAAKx/E,QAAQya,QACxC+kE,EAAKx/E,QAAU,IAAIw/E,EAAKx/E,QAAQhe,YAAYm1wB,UAAU18uB,GACtD+kE,EAAKx/E,QAAQya,OAAO+Z,OAClBkstB,EAAI6G,KAAK9/lB,MAAMjoE,EAAKx/E,QAAQya,OAAO+Z,QAAU,CAAC,EAAGvuD,EAAQuuD,OAC7D,MANEgrD,EAAKx/E,QAAU,IAAI0gvB,EAAI8B,SAASv8wB,EAOpC,EAKAmxxB,mBAAoB,SAAS58vB,EAAWg6B,EAAQ0vD,GAC9C,IAAI1E,EAAO7jH,KACPukC,EAAUs/E,EAAKx/E,QAAQxF,GAAWg6B,GAMtC,OALAgrD,EAAK63qB,aAAan3vB,GAClBs/E,EAAK83qB,cAAcp3vB,GACK,oBAAbgkF,GACThkF,EAAQooC,KAAK47C,GAERhkF,CACT,EAKAq3vB,2BAA4B,CAC1BC,SAAU,eACVC,WAAY,iBACZ/1sB,OAAQ,aACRjmE,IAAK,UACL+3wB,IAAK,UACLjnvB,MAAO,QACPmrvB,KAAM,OACN1kwB,OAAQ,aACR2kwB,YAAa,mBACbC,cAAe,sBAsCjBJ,SAAU,SAAShjuB,EAAQ0vD,GACzB,IAAI1pF,EAAY7+B,KAAK47xB,2BAAqC,SAC1D,OAAO57xB,KAAKy7xB,mBAAmB58vB,EAAWg6B,EAAQ0vD,EACpD,EA0CAuzqB,WAAY,SAASjjuB,EAAQ0vD,GAC3B,IAAI1pF,EAAY7+B,KAAK47xB,2BAAuC,WAC5D,OAAO57xB,KAAKy7xB,mBAAmB58vB,EAAWg6B,EAAQ0vD,EACpD,EA2BAxiC,OAAQ,SAASltB,EAAQ0vD,GACvB,IAAI1pF,EAAY7+B,KAAK47xB,2BAAmC,OACxD,OAAO57xB,KAAKy7xB,mBAAmB58vB,EAAWg6B,EAAQ0vD,EACpD,EA0BAzoG,IAAK,SAAS+4C,EAAQ0vD,GACpB,IAAI1pF,EAAY7+B,KAAK47xB,2BAAgC,IACrD,OAAO57xB,KAAKy7xB,mBAAmB58vB,EAAWg6B,EAAQ0vD,EACpD,EA+BAsvqB,IAAK,SAASh/tB,EAAQ0vD,GACpB,IAAI1pF,EAAY7+B,KAAK47xB,2BAAgC,IACrD,OAAO57xB,KAAKy7xB,mBAAmB58vB,EAAWg6B,EAAQ0vD,EACpD,EAgCAlxF,OAAQ,SAASwhC,EAAQ0vD,GACvB,IAAI1pF,EAAY7+B,KAAK47xB,2BAAmC,OACxD,OAAO57xB,KAAKy7xB,mBAAmB58vB,EAAWg6B,EAAQ0vD,EACpD,EAyBAwzqB,KAAM,SAASljuB,EAAQ0vD,GACrB,IAAI1pF,EAAY7+B,KAAK47xB,2BAAiC,KACtD,OAAO57xB,KAAKy7xB,mBAAmB58vB,EAAWg6B,EAAQ0vD,EACpD,EA4BA33E,MAAO,SAASioB,EAAQ0vD,GACtB,IAAI1pF,EAAY7+B,KAAK47xB,2BAAkC,MACvD,OAAO57xB,KAAKy7xB,mBAAmB58vB,EAAWg6B,EAAQ0vD,EACpD,EA4CA0zqB,cAAe,SAASpjuB,EAAQ0vD,GAC9B,IAAI1pF,EAAY7+B,KAAK47xB,2BAA0C,cAC/D,OAAO57xB,KAAKy7xB,mBAAmB58vB,EAAWg6B,EAAQ0vD,EACpD,EAkCAyzqB,YAAa,SAASnjuB,EAAQ0vD,GAC5B,IAAI1pF,EAAY7+B,KAAK47xB,2BAAwC,YAC7D,OAAO57xB,KAAKy7xB,mBAAmB58vB,EAAWg6B,EAAQ0vD,EACpD,EA6BA2zqB,UAAW,SAAS1grB,EAAMlxG,GAExB,OAAO,IAAIyvxB,EAAYv+qB,EADvBlxG,EAAUA,GAAW,CAAC,EAExB,EAKA6xxB,cAAe,WACb,OAAO,IAAIjB,EAAWl7xB,KAAKsK,QAC7B,EAKAoxxB,aAAc,SAAsBn3vB,GAClC,IACI63vB,EADOp8xB,KACWm8xB,gBAClBt9vB,EAAY0F,EAAQ1F,UACpBq5vB,EAAa3zvB,EAAQF,QAAQ5lB,IAAI2stB,WAAWvssB,GAAWqB,MAC3DqE,EAAQ83vB,QAAQr2uB,SAASmic,SAAQ,SAAS32S,GACxCA,EAAI8qlB,UAAYvX,EAAI6G,KAAKn0qB,KAAK+5F,EAAI34I,QAClC24I,EAAI34I,OAASujuB,EAAWG,eAAe/qlB,EAAI8qlB,UAAWpE,EACxD,GACF,EAKAyD,cAAe,SAAuBp3vB,GACpC,IAAIs/E,EAAO7jH,KACPo8xB,EAAav4qB,EAAKs4qB,gBAClBK,EAAc34qB,EAAKx/E,QAAQ5lB,IAAI2stB,WAAW7msB,EAAQ1F,WAAW6F,OACjEH,EAAQ2vE,GAAG,eAAe,SAASxwG,GACjCA,EAASiG,KAAOyyxB,EAAWK,gBAAgB/4xB,EAASiG,KAAM6yxB,EAC5D,IAEej4vB,EAAQ7gC,SACdg5xB,SAAW,SAASnzpB,GAC3B,IAEIzqF,EAFA4yJ,EAAO1xM,KACPwxM,EAAME,EAAKntK,QAEXF,EAAUmtK,EAAIntK,QACdxF,EAAY2yK,EAAI3yK,UACpB,IACEigB,EAASza,EAAQs4vB,iBAAiB99vB,GAAW,EAC/C,CAAE,MAAO9+B,GAAK2xM,EAAKntM,MAAQxE,CAAG,CAE9B,IAAK2xM,EAAKkrlB,cAAe,CACvB,GAAIrzpB,EAAIA,EAAGmoE,EAAKntM,MAAO,WAClB,GAAImtM,EAAKntM,MAAO,MAAMmtM,EAAKntM,MAChC,OAAO,IACT,CAEA,IAAIs0D,EAASkstB,EAAI6G,KAAKn0qB,KAAK+5F,EAAI8qlB,WAC/B,GAAK5qlB,EAAKmrlB,eAEH,CACL,IAAIC,EAAch+uB,EAAOi+uB,WACE,kBAAhBD,IAA0BA,EAAc,CAACA,IACpD,IAAK,IAAI97xB,EAAI,EAAGA,EAAI87xB,EAAYl8xB,OAAQI,IACtC63D,EAAOikuB,EAAY97xB,IAAM0wM,EAAKmrlB,eAAe77xB,GAE/C,OAAO6iH,EAAKhlF,GAAWg6B,EAAQ0wE,EACjC,CARE,OAAOA,EAAKA,EAAG,KAAM,MAAQ,IASjC,CACF,IAOF07E,EAAOrtL,QAAUmtvB,EAAI8B,SAASsU,sCCtkB9B,IAUI6B,EAVOhmwB,EAAAA,MAAAA,KAUoB6+I,QAAQ,CACrCxvJ,YAAa,SAAqBrf,GAChChH,KAAKi9xB,YAAc,cACnBj9xB,KAAKgH,MAAQA,EAAMzF,UACrB,EAKA86G,OAAQ,WACN,OAAOr8G,KAAK2gN,UACd,EAKAA,SAAU,WACR,OAAOjsL,OAAO10B,KAAKgH,MACrB,EAMAzF,SAAU,WACR,OAAOvB,KAAKgH,KACd,IAMFi+M,EAAOrtL,QAAUolwB,yBC1CjB,IAAIpR,EAAO50vB,EAAAA,MAAAA,KACP8iwB,EAAS9iwB,EAAAA,OAAAA,OAKTkmwB,EAAsB,CACxB,OAAU,SACV,OAAU,SACV,YAAe,SACf,OAAU,UAMRnD,EAAcnO,EAAK/1mB,QAAQ,CAE7BxvJ,YAAa,SAAam1F,EAAMlxG,GAC9BA,EAAUA,GAAW,CAAC,EACtBtK,KAAKi9xB,YAAc,MACnBj9xB,KAAK+zM,WAAWv4F,EAAMlxG,EAAQ07C,SAChC,EAEA+tJ,WAAY,SAASv4F,EAAMx1D,GACzB,IAAI69D,EAAO7jH,KACX6jH,EAAKjvG,OAAS,GAAG8N,OAAO84F,GACxBqI,EAAKs5qB,aACDn3uB,GACF69D,EAAK79D,UAET,EAEAm3uB,WAAY,WAEV,GADAn9xB,KAAKiE,KAAOi5xB,EAAoBpD,EAAO95xB,KAAK4U,OAAO,MAC9C5U,KAAKiE,KACR,MAAM2nxB,EAAKrnxB,MAAM,IAAIpE,MAAS,CAC5B8mB,KAAM,iBACNhnB,QAAS,qDAGf,EAEA+lD,SAAU,WAIR,IAHA,IAAI69D,EAAO7jH,KACPY,EAASijH,EAAKjvG,OAAOhU,OACrBgU,EAASivG,EAAKjvG,OACT5T,EAAI,EAAGA,EAAIJ,EAAQI,IAC1B,GAAIk8xB,EAAoBpD,EAAOllxB,EAAO5T,OAAS6iH,EAAK5/G,KAClD,MAAM2nxB,EAAKrnxB,MAAM,IAAIpE,MAAS,CAC5B8mB,KAAM,cACNhnB,QAAS4jH,EAAK5/G,KAAO,iBAAmB61xB,EAAOllxB,EAAO5T,IAAM,UAIpE,EAKAq7G,OAAQ,WAEN,OADWr8G,KACC4U,MACd,IAOFqwM,EAAOrtL,QAAUmiwB,yBCtEjB,IAAInO,EAAO50vB,EAAAA,MAAAA,KACP4rjB,EAAU5rjB,EAAQ,MAElBkkwB,EAAa,SAAS5wxB,GACxBA,EAAUA,GAAW,CAAC,EACtBtK,KAAKq7xB,UAAY/wxB,EAAQ+wxB,UACzBr7xB,KAAKu6xB,mBAAqB3xxB,QAAQ0B,EAAQiwxB,oBAC1Cv6xB,KAAKk6xB,YAActxxB,QAAQ0B,EAAQ4vxB,YACrC,EAEAgB,EAAWh7xB,UAAUq8xB,eAAiB,SAASv1xB,EAAOuR,GAEpD,OADAvY,KAAKmO,KAAO,QACLnO,KAAKktQ,UAAUlmQ,EAAOuR,EAC/B,EAEA2ixB,EAAWh7xB,UAAUu8xB,gBAAkB,SAASz1xB,EAAOuR,GAErD,OADAvY,KAAKmO,KAAO,SACLnO,KAAKktQ,UAAUlmQ,EAAOuR,EAC/B,EAEA2ixB,EAAWh7xB,UAAUgtQ,UAAY,SAASlmQ,EAAOuR,GAC/C,IAAIsrG,EAAO7jH,KACX,GAAKuY,QAAmBlQ,IAAVrB,EAAd,CAEA,GAAIuR,EAAMA,QAAUsrG,EAAKw3qB,UACvB,OAAOz4M,EAAQ/+d,EAAK11G,MAAMnH,EAAO,CAC/BuzxB,mBAAoB12qB,EAAK02qB,mBACzBL,YAAar2qB,EAAKq2qB,cAGtB,OAAQ3hxB,EAAMtU,MACZ,IAAK,YAAa,OAAO4/G,EAAKu5qB,mBAAmBp2xB,EAAOuR,GACxD,IAAK,MAAO,OAAOsrG,EAAKw5qB,aAAar2xB,EAAOuR,GAC5C,IAAK,OAAQ,OAAOsrG,EAAKy5qB,cAAct2xB,EAAOuR,GAC9C,QAAS,OAAOsrG,EAAK05qB,gBAAgBv2xB,EAAOuR,GAZK,CAcrD,EAEA2ixB,EAAWh7xB,UAAUk9xB,mBAAqB,SAASI,EAAWjlxB,GAC5D,IAAIsrG,EAAO7jH,KACX,GAAiB,MAAbw9xB,EAAJ,CAEA,IAAIC,EAAS,CAAC,EAQd,OAPA7R,EAAK9pN,KAAK07N,GAAW,SAASp9xB,EAAM4G,GAClC,IAAIwvxB,EAAcj+wB,EAAMk+wB,QAAQr2xB,GAChC,GAAIo2xB,EAAa,CACf,IAAItxxB,EAAS2+G,EAAKqpJ,UAAUlmQ,EAAOwvxB,QACpBnuxB,IAAXnD,IAAsBu4xB,EAAOr9xB,GAAQ8E,EAC3C,CACF,IACOu4xB,CAVgC,CAWzC,EAEAvC,EAAWh7xB,UAAUo9xB,cAAgB,SAAS9hrB,EAAMjjG,GAClD,IAAIsrG,EAAO7jH,KACX,GAAY,MAARw7G,EAAJ,CAEA,IAAIlyE,EAAM,GAMV,OALAsivB,EAAK4G,UAAUh3qB,GAAM,SAASx0G,GAC5B,IAAI9B,EAAS2+G,EAAKqpJ,UAAUlmQ,EAAOuR,EAAMmlxB,aAC1Br1xB,IAAXnD,EAAsBokC,EAAI1nB,KAAK,MAC9B0nB,EAAI1nB,KAAK1c,EAChB,IACOokC,CAR2B,CASpC,EAEA4xvB,EAAWh7xB,UAAUm9xB,aAAe,SAASntxB,EAAKqI,GAChD,IAAIsrG,EAAO7jH,KACX,GAAW,MAAPkQ,EAAJ,CAEA,IAAIo5B,EAAM,CAAC,EAMX,OALAsivB,EAAK9pN,KAAK5xjB,GAAK,SAAS+U,EAAKje,GAC3B,IAAI9B,EAAS2+G,EAAKqpJ,UAAUlmQ,EAAOuR,EAAMvR,OACfsiC,EAAIrkB,QAAf5c,IAAXnD,EAAiC,KACrBA,CAClB,IACOokC,CAR0B,CASnC,EAEA4xvB,EAAWh7xB,UAAUq9xB,gBAAkB,SAASv2xB,EAAOuR,GACrD,OAAOA,EAAMolxB,OAAO32xB,EACtB,EAKAi+M,EAAOrtL,QAAUsjwB,yBCtFjB,IAAItP,EAAO50vB,EAAAA,MAAAA,KAkBX,SAAS4mwB,EAASj0xB,GAChB,IAAIse,EAAQ,CACV,SAAU,OAAQ,OAAQ,cAAe,WACzC,YAAa,aAAc,oBAC3B,aAAc,cAAe,aAAc,cAC3C,eAAgB,gBAElB,GAAI2jwB,EAAKG,SAAU,CACjB,IAAI8R,EAASjS,EAAK31qB,OAAO4nrB,OACzB,GAAIjS,EAAKlqvB,OAAO61E,SAAS5tG,IAASA,aAAgBk0xB,EAChD,OAAO,CAEX,CAEA,IAAK,IAAI78xB,EAAI,EAAGA,EAAIinB,EAAMrnB,OAAQI,IAChC,QAAaqH,IAATsB,GAAsBA,EAAK0c,YAAa,CAC1C,GAAIulwB,EAAKkS,OAAOn0xB,EAAMse,EAAMjnB,IAAK,OAAO,EACxC,GAAI4qxB,EAAKmS,SAASp0xB,EAAK0c,eAAiB4B,EAAMjnB,GAAI,OAAO,CAC3D,CAGF,OAAO,CACT,CAKAikN,EAAOrtL,QAAU,CACfkiwB,OA5CF,SAAgBnwxB,GACd,OAAa,OAATA,GAAiC,kBAATA,EACnB,YACWtB,IAATsB,GAAsBi0xB,EAASj0xB,GACjC,cACWtB,IAATsB,GAAsBA,EAAK0c,YAC7B1c,EAAKszxB,aAAerR,EAAKmS,SAASp0xB,EAAK0c,kBAC5Bhe,IAATsB,GAAsC,kBAATA,EAG/B,SAEA,WAEX,EA+BEi0xB,SAAUA,0BC/CZ,IAAII,EAAsBhnwB,EAAAA,OAAAA,oBACtBinwB,EAAajnwB,EAAAA,OAAAA,WAiBjBiuL,EAAOrtL,QAAU,CACbk0vB,kBAhBJ,SAA2BtxvB,EAAM40E,EAAQgqL,GAKrC,IAJA,IAAI8kgB,EAAgBF,EAAoBxjwB,GAEpC4lM,EAAS,GAEJp/N,EAAI,EAAGA,EAAIk9xB,EAAct9xB,OAAQI,IACtCo/N,EAAOx+M,KAAKq8wB,EAAW7urB,EAAQ8urB,EAAcl9xB,GAAIo4R,IAGrD,OAAOh5D,CACX,sBCcAnb,EAAOrtL,QAAU,CACbomwB,oBAvBJ,SAA6Br+vB,GAKzB,IAHA,IAAIyM,EAAW,GACX2Z,EAAS,EAENA,EAASpmB,EAAO/+B,QAAQ,CAC3B,IAAI6qxB,EAAc9rvB,EAAOk+E,YAAY93D,GAGjC9lD,EAAU0/B,EAAOvZ,MAAM2/B,EAAQ0luB,EAAc1luB,GAEjDA,GAAU0luB,EAEVr/uB,EAASxqB,KAAK3hB,EAClB,CAEA,OAAOmsC,CACX,0BCtBA,IAAIw/uB,EAAO50vB,EAAAA,MAAAA,KACPgkwB,EAAWpP,EAAKjsvB,OAAOq7vB,SAY3B,SAASxyvB,EAAMlI,GACX,GAAqB,IAAjBA,EAAM1/B,OACN,MAAM,IAAIT,MAAM,yCAEfyrxB,EAAKlqvB,OAAO61E,SAASj3E,KAAQA,EAAQ06vB,EAAS16vB,IAEnDtgC,KAAKsgC,MAAQA,CACjB,CAuDA,SAASyI,EAAOzI,GACZ,IAAK,IAAIt/B,EAAI,EAAGA,EAAI,EAAGA,IACnBs/B,EAAMt/B,IAAM,IAEhB,IAASA,EAAI,EAAGA,GAAK,IACjBs/B,EAAMt/B,KACW,IAAbs/B,EAAMt/B,IAFUA,KAM5B,CAzDAwnC,EAAMC,WAAa,SAASC,GACxB,GAAIA,EAAS,oBAAuBA,GAAU,mBAC1C,MAAM,IAAIvoC,MACNuoC,EAAS,uEAKjB,IADA,IAAIpI,EAAQ,IAAIxC,WAAW,GAEnB98B,EAAI,EAAG2nC,EAAYC,KAAKC,IAAID,KAAKE,MAAMJ,IAC3C1nC,GAAK,GAAK2nC,EAAY,EACtB3nC,IAAK2nC,GAAa,IAElBrI,EAAMt/B,GAAK2nC,EAOf,OAJID,EAAS,GACTK,EAAOzI,GAGJ,IAAIkI,EAAMlI,EACrB,EAOAkI,EAAMtoC,UAAU8oC,QAAU,WACtB,IAAI1I,EAAQtgC,KAAKsgC,MAAMla,MAAM,GACzB6iB,EAAsB,IAAX3I,EAAM,GAKrB,OAJI2I,GACAF,EAAOzI,GAGJ7L,SAAS6L,EAAM/+B,SAAS,OAAQ,KAAO0nC,GAAY,EAAI,EAClE,EAEAT,EAAMtoC,UAAUqB,SAAW,WACvB,OAAOb,OAAOV,KAAKgpC,UACvB,EAsBAi8K,EAAOrtL,QAAU,CACb4Q,MAAOA,0BC3FX,IAAI21vB,EAAennwB,EAAAA,OAAAA,aAsEnBiuL,EAAOrtL,QAAU,CACbqmwB,WA9DJ,SAAoB7urB,EAAQnvG,EAASsY,GACjC,IAAIkwuB,EAAgB01C,EAAal+xB,GAG7B8nD,EAAc0gsB,EAAcpmvB,QAAQ,iBACxC,GAAI0lD,EAAa,CACb,GAA0B,UAAtBA,EAAY/gD,MACZ,MA2CZ,SAAoB/G,GAChB,IAAIytF,EAAYztF,EAAQoC,QAAQ,eAC5B0mvB,EAAe9ovB,EAAQoC,QAAQ,kBAC/BkC,EAAQ,IAAIpE,MAAM4ovB,EAAa/hvB,OAAS+hvB,GAE5C,OADAxkvB,EAAM0iB,KAAO1iB,EAAMnE,KAAOstF,EAAU1mF,OAAS0mF,EACtCnpF,CACX,CAjDkB4kuB,CAAWsf,GACd,GAA0B,UAAtB1gsB,EAAY/gD,MAEnB,MAER,CAGA,IAAI0lN,EAAY+7hB,EAAcpmvB,QAAQ,eAElC+7xB,EAAa7lxB,EAAMk+wB,QAAQ/pkB,EAAU1lN,OACzC,GAAKo3xB,EAAL,CAIA,IAAIl5xB,EAAS,CAAC,EAEVm5xB,EAAyBD,EAAWC,uBACxC,GAAIA,EAAwB,CACxB,IAAIC,EAAeF,EAAW3H,QAAQ4H,GAEZ,WAAtBC,EAAar6xB,KACbiB,EAAOm5xB,GAA0B51C,EAAcjutB,KAE/Ct1B,EAAOm5xB,GAA0BjvrB,EAAOztG,MAAM8mvB,EAAcjutB,KAAKj5B,WAAY+8xB,EAErF,CAIA,IADA,IAAIC,EAAmBH,EAAWI,uBACzBx9xB,EAAI,EAAGA,EAAIu9xB,EAAiB39xB,OAAQI,IAAK,CAC9C,IAAIZ,EAAOm+xB,EAAiBv9xB,GACxBynvB,EAAcpmvB,QAAQjC,KAEtB8E,EAAO9E,GAAQg+xB,EAAW3H,QAAQr2xB,GAAMu9xB,OAAOl1C,EAAcpmvB,QAAQjC,GAAM4G,OAEnF,CAEA,IAAI09B,EAAS,CAAC,EAEd,OADAA,EAAOgoL,EAAU1lN,OAAS9B,EACnBw/B,CA3BP,CA4BJ,0BCzDA,IAAI8D,EAAQxR,EAAAA,OAAAA,MAERiW,EAAejW,EAAAA,OAAAA,aAEf4T,EAAc,UACdC,EAAW,OACXE,EAAY,QACZE,EAAU,UACVE,EAAW,OACXG,EAAa,SACbE,EAAa,SACbC,EAAgB,YAChBC,EAAW,OAOf,SAAS+yvB,EAAap8xB,GAGlB,IAFA,IAAIinC,EAAM,CAAC,EACP5sB,EAAW,EACRA,EAAWra,EAAQzB,QAAQ,CAC9B,IAAI8pC,EAAaroC,EAAQ86G,UAAUzgG,KAC/Btc,EAAOiC,EAAQ+jB,MAAM1J,EAAUA,EAAWguB,GAAYnpC,WAE1D,OADAmb,GAAYguB,EACJroC,EAAQ86G,UAAUzgG,MACtB,KAAK,EACD4sB,EAAIlpC,GAAQ,CACR6D,KAAM2mC,EACN5jC,OAAO,GAEX,MACJ,KAAK,EACDsiC,EAAIlpC,GAAQ,CACR6D,KAAM2mC,EACN5jC,OAAO,GAEX,MACJ,KAAK,EACDsiC,EAAIlpC,GAAQ,CACR6D,KAAM4mC,EACN7jC,MAAO3E,EAAQo7G,SAAS/gG,MAE5B,MACJ,KAAK,EACD4sB,EAAIlpC,GAAQ,CACR6D,KAAM8mC,EACN/jC,MAAO3E,EAAQs7G,YAAYjhG,IAE/BA,GAAY,EACZ,MACJ,KAAK,EACD4sB,EAAIlpC,GAAQ,CACR6D,KAAMgnC,EACNjkC,MAAO3E,EAAQw7G,YAAYnhG,IAE/BA,GAAY,EACZ,MACJ,KAAK,EACD4sB,EAAIlpC,GAAQ,CACR6D,KAAMknC,EACNnkC,MAAO,IAAIwhC,EAAMnmC,EAAQ+jB,MAAM1J,EAAUA,EAAW,KAExDA,GAAY,EACZ,MACJ,KAAK,EACD,IAAI0uB,EAAe/oC,EAAQ42G,aAAav8F,GACxCA,GAAY,EACZ4sB,EAAIlpC,GAAQ,CACR6D,KAAMqnC,EACNtkC,MAAO3E,EAAQ+jB,MAAM1J,EAAUA,EAAW0uB,IAE9C1uB,GAAY0uB,EACZ,MACJ,KAAK,EACD,IAAIG,EAAelpC,EAAQ42G,aAAav8F,GACxCA,GAAY,EACZ4sB,EAAIlpC,GAAQ,CACR6D,KAAMunC,EACNxkC,MAAO3E,EAAQ+jB,MACX1J,EACAA,EAAW6uB,GACbhqC,YAENmb,GAAY6uB,EACZ,MACJ,KAAK,EACDjC,EAAIlpC,GAAQ,CACR6D,KAAMwnC,EACNzkC,MAAO,IAAI1D,KACP,IAAIklC,EAAMnmC,EAAQ+jB,MAAM1J,EAAUA,EAAW,IACxCssB,YAGbtsB,GAAY,EACZ,MACJ,KAAK,EACD,IAAIgixB,EAAYr8xB,EAAQ+jB,MAAM1J,EAAUA,EAAW,IAC9Cnb,SAAS,OACdmb,GAAY,GACZ4sB,EAAIlpC,GAAQ,CACR6D,KAAMynC,EACN1kC,MAAO03xB,EAAU74xB,OAAO,EAAG,GAAK,IAC5B64xB,EAAU74xB,OAAO,EAAG,GAAK,IACzB64xB,EAAU74xB,OAAO,GAAI,GAAK,IAC1B64xB,EAAU74xB,OAAO,GAAI,GAAK,IAC1B64xB,EAAU74xB,OAAO,KAEzB,MACJ,QACI,MAAM,IAAI1F,MAAM,gCAE5B,CACA,OAAOmpC,CACX,CAUA27K,EAAOrtL,QAAU,CACbumwB,aATJ,SAAsBl+xB,GAClB,IAAIq5G,EAASrsE,EAAahtC,GAC1B,MAAO,CAAEoC,QAASo8xB,EAAanlrB,EAAOj3G,SAAUm4B,KAAM8+E,EAAO9+E,KACjE,0BCxHA,IAAIoxvB,EAAO50vB,EAAAA,MAAAA,KACPgkwB,EAAWpP,EAAKjsvB,OAAOq7vB,SAkE3B/1kB,EAAOrtL,QAAU,CACbqV,aAnDJ,SAAsBhtC,GAGlB,GAFK2rxB,EAAKlqvB,OAAO61E,SAASt3G,KAAUA,EAAU+6xB,EAAS/6xB,IAEnDA,EAAQW,OAVa6rC,GAWrB,MAAM,IAAItsC,MAAM,2EAGpB,GAAIF,EAAQW,SAAWX,EAAQq9G,aAAa,GACxC,MAAM,IAAIn9G,MAAM,kEAGpB,IAAI0sC,EAA0B5sC,EAAQq9G,aAtBrBxwE,GAwBjB,GACID,IAA4B++uB,EAAK7rvB,OAAO5I,MACpCl3B,EAAQmmB,MAAM,EA1BL0mB,IA6Bb,MAAM,IAAI3sC,MACN,kDACA0sC,EACA,mDAIR,IAAIE,EAA0B9sC,EAAQq9G,aAAar9G,EAAQW,OAlCzC,GAoClB,GACImsC,IAA4B6+uB,EAAK7rvB,OAAO5I,MACpCl3B,EAAQmmB,MAAM,EAAGnmB,EAAQW,OAtCf,IAyCd,MAAM,IAAIT,MACN,4DACI4sC,GAIZ,IACI4xvB,EADelyvB,GACaxsC,EAAQq9G,aApDhB,GAsDxB,MAAO,CACHj7G,QAASpC,EAAQmmB,MAJFqmB,GAIsBkyvB,GACrCnkwB,KAAMv6B,EAAQmmB,MAAMu4wB,EAAY1+xB,EAAQW,OApD1B,GAsDtB,0BC9DA,IAAImkxB,EAAM/tvB,EAAQ,MACd86vB,EAAqB96vB,EAAQ,OAC7B4nwB,EAAoB5nwB,EAAAA,OAAAA,iBAiExB,SAAS6nwB,EAAqBrtlB,GAC5B,IAAKA,EAAIntK,QAAQ5lB,IAAI2stB,WACnB,MAAO,GAET,IAAIvssB,EAAY2yK,EAAIntK,QAAQ5lB,IAAI2stB,WAAW55hB,EAAI3yK,WAC/C,OAAOA,EAAYA,EAAUigwB,SAAW,EAC1C,CAKA,SAASC,EAAgBvtlB,GACvB,IAAIntK,EAAUmtK,EAAIntK,QAElB,OAAIA,EAAQya,OAAO4wuB,iBACVrrvB,EAAQya,OAAO4wuB,iBAGpBrrvB,EAAQ5lB,IAAIixwB,iBACPrrvB,EAAQ5lB,IAAIixwB,iBAGdmP,EAAqBrtlB,EAC9B,CAnFAuzkB,EAAI0S,eAAiB,CAsDnBC,KAAM,CAAC,GA+BT3S,EAAI0S,eAAiB,CACnBC,MAAM,IAAI5F,GAAqBkN,mBAAkB,SAASz4vB,EAAK04vB,GAC7DA,EACE,uBAAwB,YACxB,SAA8BztlB,EAAKxrL,GACjC,IAAKwrL,EAAIntK,QAAQ5lB,IAAIixwB,mBAAqBl+kB,EAAIntK,QAAQya,OAAO4wuB,iBAAkB,OAAO1pwB,IAGjE,WADF+4wB,EAAgBvtlB,GAWnCA,EAAIntK,QAAQya,OAAO+uuB,gBAAe,SAASxpxB,GACrCA,IACFmtM,EAAI9tM,SAASa,MAAQwgxB,EAAI6G,KAAKrnxB,MAAMF,EAClC,CACE4iB,KAAM,mBACNhnB,QAAS,wFAIf+lB,GACF,IAnBEwrL,EAAIntK,QAAQya,OAAOkvuB,UAAS,SAAS3pxB,GAC/BA,IACFmtM,EAAI9tM,SAASa,MAAQwgxB,EAAI6G,KAAKrnxB,MAAMF,EAAK,CAAC4iB,KAAM,gBAElDjB,GACF,GAeN,IAEAugB,EAAI,kBAAmB,YAAY,SAAyBirK,GAC1D,IAAKA,EAAIntK,QAAQ66vB,iBAAkB,CACjC,IAAIC,EAAe,IAAIznvB,OAAO,4DACzB85J,EAAIntK,QAAQya,OAAOlP,OAGZuvvB,EAAa74wB,KAAKkrL,EAAIntK,QAAQya,OAAOlP,UAC/C4hK,EAAI9tM,SAASa,MAAQwgxB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MACtC,CAAC8mB,KAAM,cAAehnB,QAAS,8BAJjCuxM,EAAI9tM,SAASa,MAAQwgxB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MACtC,CAAC8mB,KAAM,cAAehnB,QAAS,4BAKrC,CACF,IAEAsmC,EAAI,2BAA4B,YAAY,SAAkCirK,GAC5E,GAAKA,EAAIntK,QAAQ5lB,IAAI2stB,WAArB,CAGA,IAAIvssB,EAAY2yK,EAAIntK,QAAQ5lB,IAAI2stB,WAAW55hB,EAAI3yK,WAC/C,GAAKA,EAAL,CAGA,IAAIugwB,EAAoBvgwB,EAAUugwB,kBAClC,GAAKA,EAAkBx+xB,OAAvB,CAKA,IADA,IAAIi4D,EAASkstB,EAAI6G,KAAKn0qB,KAAK+5F,EAAI34I,QACtB73D,EAAI,EAAGusM,EAAO6xlB,EAAkBx+xB,OAAQI,EAAIusM,EAAMvsM,IACpD63D,EAAOumuB,EAAkBp+xB,MAE5B63D,EAAOumuB,EAAkBp+xB,IAAM+jxB,EAAI6G,KAAKhmuB,KAAKoB,MAGjDwqJ,EAAI34I,OAASA,CATb,CAJA,CAJA,CAkBF,IAEAtyB,EAAI,sBAAuB,YAAY,SAA6BirK,GAClE,GAAKA,EAAIntK,QAAQ5lB,IAAI2stB,WAArB,CAGA,IAAIttrB,EAAQ0zJ,EAAIntK,QAAQ5lB,IAAI2stB,WAAW55hB,EAAI3yK,WAAWqB,MAClD8hhB,EAAaxwW,EAAIntK,QAAQya,OAAOiwuB,gBACpC,IAAIhK,EAAIsa,eAAer9O,GAAYh8f,SAASlI,EAAO0zJ,EAAI34I,OAHvD,CAIF,IAEAtyB,EAAI,mBAAoB,cAAc,SAA0BirK,GAC9D,GAAKA,EAAIntK,QAAQ5lB,IAAI2stB,WAArB,CAGA,IAAIvssB,EAAY2yK,EAAIntK,QAAQ5lB,IAAI2stB,WAAW55hB,EAAI3yK,WAC/C,GAAKA,EAAL,CAGA,IAAIrE,EAAOg3K,EAAI+wM,YAAY/nX,KACvB8kwB,EAAwB9kwB,IAASuqvB,EAAI6G,KAAKlqvB,OAAO61E,SAAS/8E,IAAyB,kBAATA,GAC1En4B,EAAUmvM,EAAI+wM,YAAYlgZ,QAC9B,GACEw8B,EAAU0gwB,sBACV/tlB,EAAIntK,QAAQya,OAAOwwuB,kBACnBgQ,IACCj9xB,EAAQ,eACT,CACA,IAAIu0D,EAAMmutB,EAAI6G,KAAK7rvB,OAAO62B,IAAIp8B,EAAM,UACpCn4B,EAAQ,eAAiBu0D,CAC3B,CAZA,CAJA,CAiBF,IAEAqouB,EAAS,iBAAkB,cAAc,SAAwBztlB,EAAKxrL,GAEpE,GADAwrL,EAAIgulB,sBACChulB,EAAIntK,QAAQ5lB,IAAI2stB,WAArB,CAGA,IAAIvssB,EAAY2yK,EAAIntK,QAAQ5lB,IAAI2stB,WAAW55hB,EAAI3yK,WAC3CigwB,EAAWjgwB,EAAYA,EAAUigwB,SAAW,GAChD,IAAKttlB,EAAIntK,QAAQ5lB,IAAIixwB,mBAAqBoP,IAAattlB,EAAIntK,QAAQya,OAAO4wuB,iBAAkB,OAAO1pwB,IACnG,GAAIwrL,EAAIntK,QAAQo7vB,eAAejulB,KAASuzkB,EAAIkM,QAAQyO,GAAI,CACtD,IAAIllwB,EAAOg3K,EAAI+wM,YAAY/nX,MAAQ,GACnC,GAAIskwB,EAAS19xB,QAAQ,kBAAoB,EAEvC,OADAowM,EAAI+wM,YAAYlgZ,QAAQ,wBAA0B,mBAC3C2jB,IAET++vB,EAAI6G,KAAK+T,cAAcnlwB,GAAM,SAASn2B,EAAKu7xB,GACrCv7xB,EACF2hB,EAAK3hB,IAGLmtM,EAAI+wM,YAAYlgZ,QAAQ,wBAA0Bu9xB,EAClD55wB,IAEJ,GACF,MACEA,GApBF,CAsBF,IAEAugB,EAAI,qBAAsB,cAAc,SAA4BirK,GAClE,IAAIstlB,EAAWD,EAAqBrtlB,GAChCqulB,EAAgB9a,EAAI6G,KAAKkU,uBAAuBtulB,GACpD,QAAkDnpM,IAA9CmpM,EAAI+wM,YAAYlgZ,QAAQ,kBAC1B,IACE,IAAIzB,EAASmkxB,EAAI6G,KAAK70qB,OAAOl3E,WAAW2xK,EAAI+wM,YAAY/nX,MACxDg3K,EAAI+wM,YAAYlgZ,QAAQ,kBAAoBzB,CAC9C,CAAE,MAAOyD,GACP,GAAIw7xB,GAAiBA,EAAcv/qB,YAAa,CAC9C,GAAIu/qB,EAAcE,eAEhB,MAAM17xB,EACD,GAAIy6xB,EAAS19xB,QAAQ,kBAAoB,EAG9C,YADAowM,EAAI+wM,YAAYlgZ,QAAQ,qBAAuB,WAG/C,MAAMgC,CAEV,CACA,MAAMA,CACR,CAEJ,IAEAkiC,EAAI,gBAAiB,cAAc,SAAuBirK,GACxDA,EAAI+wM,YAAYlgZ,QAAc,KAAImvM,EAAI+wM,YAAY/kW,SAASrW,IAC7D,IAEAZ,EAAI,eAAgB,cAAc,SAAsBirK,GACtD,IAAIwulB,EAAoB,kBACxB,GAAIjb,EAAI6G,KAAKG,WAAahswB,OAAO6Y,eAAe9S,KAAK0rL,EAAI+wM,YAAYlgZ,QAAS29xB,GAAoB,CAChG,IAEIC,EAAelhwB,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAoC,yBACnD0I,EAAU1I,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAwB,iBAEZ,kBAAjBkhwB,GACPA,EAAar/xB,OAAS,GACH,kBAAZ6mC,GACPA,EAAQ7mC,OAAS,IAEjB4wM,EAAI+wM,YAAYlgZ,QAAQ29xB,GAAqBv4vB,EAEjD,CACF,IAEAlB,EAAI,UAAW,WAAW,WACxB,IAAIliC,EAAMrE,KAAK0D,SAASa,MACnBF,GAAQA,EAAImouB,YAEjBxsuB,KAAKuiZ,YAAc,IAAIwiY,EAAIv+uB,YACzBxmC,KAAKqkC,QAAQmZ,SACbx9C,KAAKqkC,QAAQuL,QAGX5vC,KAAK0D,SAAS6/C,WAAavjD,KAAKqkC,QAAQya,OAAOkntB,WACjDhmwB,KAAK0D,SAAS6/C,aAEdvjD,KAAK0D,SAASa,MAAQ,KAE1B,IAGA06xB,EAAS,oBAAqB,OAAQL,GADtB,GAGhBK,EAAS,OAAQ,QAAQ,SAAcztlB,EAAKxrL,GAC1C,IAAIqe,EAAUmtK,EAAIntK,QACd67vB,EAAenB,EAAgBvtlB,GACnC,IAAK0ulB,GAAwC,IAAxBA,EAAat/xB,OAAc,OAAOolB,IAElC,WAAjBk6wB,EACF77vB,EAAQya,OAAOkvuB,UAAS,SAAU3pxB,EAAKqgD,GACrC,GAAIrgD,EAEF,OADAmtM,EAAI9tM,SAASa,MAAQF,EACd2hB,IAGT,IAEe,IADKqe,EAAQo7vB,eAAejulB,GAC5B,CAAgBA,EAAI+wM,aAC1B49Y,iBAAiBz7uB,EAC1B,CAAE,MAAO3kD,GACPyxM,EAAI9tM,SAASa,MAAQxE,CACvB,CACAimB,GACF,IAEAqe,EAAQya,OAAO+uuB,gBAAe,SAAUxpxB,EAAKitC,GAC3C,GAAIjtC,EAEF,OADAmtM,EAAI9tM,SAASa,MAAQF,EACd2hB,IAGT,IACE,IAAI7T,EAAOkyB,EAAQkR,uBACf6qvB,EAAc/7vB,EAAQo7vB,eAAejulB,GAErC3yK,GADa2yK,EAAIntK,QAAQ5lB,IAAI2stB,YAAc,CAAC,GACrB55hB,EAAI3yK,WAC3B8X,EAAS,IAAIypvB,EAAY5ulB,EAAI+wM,YAC/Bl+W,EAAQg8vB,eAAe7ulB,GACvB,CACEm+kB,eAAgBtrvB,EAAQya,OAAO6wuB,eAC/B9wvB,UAAWA,EACX6wvB,iBAAkBrrvB,EAAQ5lB,IAAIixwB,mBAElC/4uB,EAAO2pvB,mBAAmBj8vB,EAAQk8vB,kBAG3B/ulB,EAAI+wM,YAAYlgZ,QAAuB,qBACvCmvM,EAAI+wM,YAAYlgZ,QAAc,YAC9BmvM,EAAI+wM,YAAYlgZ,QAAQ,cAG/Bs0C,EAAOwpvB,iBAAiB7uvB,EAAan/B,GACrCq/L,EAAIgvlB,SAAWruxB,CACjB,CAAE,MAAOpS,GACPyxM,EAAI9tM,SAASa,MAAQxE,CACvB,CACAimB,GACF,GAGJ,IAEAugB,EAAI,oBAAqB,oBAAoB,SAA2BmrK,GAClE1xM,KAAKqkC,QAAQo8vB,mBAAmB/ulB,EAAM1xM,OACxC0xM,EAAK/nM,KAAO,CAAC,EACb+nM,EAAKntM,MAAQ,OAEbmtM,EAAK/nM,KAAO,KACZ+nM,EAAKntM,MAAQwgxB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAC9B,CAAC8mB,KAAM,eAAgBhnB,QAAS,+BAEtC,IAEAsmC,EAAI,QAAS,SAAS,SAAeliC,EAAKqtM,GAExC,GADyBA,EAAKntK,QAAQF,QAAQ5lB,IAAIiixB,mBAC1B,CACtB,IAAIr+xB,EAAUqvM,EAAK8mlB,aAAan2xB,QAC5Bs+xB,EAAiBt+xB,EAAUA,EAAQ,2BAAwBgG,EAC3Ds4xB,GAAkBA,EAAenswB,SAAS,OAC5Ck9K,EAAKntM,MAAM0iB,KAAO05wB,EAAe/+xB,MAAM,KAAK,GAEhD,CACF,IAAG,GAEHq9xB,EAAS,OAAQ,QAAQ,SAAcvtlB,EAAM1rL,GAK3C,SAASuiG,EAASq4qB,GAChBlvlB,EAAK8mlB,aAAavirB,OAAS2qrB,EAC3B,IAAI3qrB,EAASy7F,EAAKntK,QAAQg+W,YAAYtsS,OAClC5xE,EAAUqtK,EAAKntK,QAAQF,QACvB5lB,EAAM4lB,EAAQ5lB,IACd6rtB,EAAgB54hB,EAAKntK,QAAQ1F,UAC7BA,EAAYpgB,EAAI2stB,WAAWd,IAAkB,CAAC,EAElDs2D,EAAS1srB,GAAG,WAAW,SAAmB1tD,EAAYnkD,EAASw+xB,GAM7D,GALAnvlB,EAAKntK,QAAQ8xE,KACX,cACA,CAAC7vD,EAAYnkD,EAASqvM,EAAMmvlB,KAGzBnvlB,EAAK8mlB,aAAasI,UACrB,GAAyC,IAArC/b,EAAIgc,WAAWC,kBAAyB,CAG1C,GAAIniwB,EAAUoiwB,gBAAkB58vB,EAAQo8vB,mBAAmB/ulB,GAIzD,OAFAA,EAAKntK,QAAQ8xE,KAAK,iBAClBrwF,IAIF46wB,EAAS1srB,GAAG,YAAY,WACtB,IAAIvqG,EAAOi3xB,EAASj3uB,OACP,OAAThgD,GACF+nM,EAAKntK,QAAQ8xE,KAAK,WAAY,CAAC1sG,EAAM+nM,GAEzC,GACF,MACEkvlB,EAAS1srB,GAAG,QAAQ,SAAgBvqG,GAClC+nM,EAAKntK,QAAQ8xE,KAAK,WAAY,CAAC1sG,EAAM+nM,GACvC,GAGN,IAEAkvlB,EAAS1srB,GAAG,OAAO,WACjB,IAAK+B,IAAWA,EAAOirrB,YAAa,CAClC,GAAyC,IAArCnc,EAAIgc,WAAWC,mBAA4BniwB,EAAUoiwB,gBAAkB58vB,EAAQo8vB,mBAAmB/ulB,GAEpG,OAEFA,EAAKntK,QAAQ8xE,KAAK,YAClBrwF,GACF,CACF,GACF,CAYA,SAASzhB,EAAMF,GACb,GAAiB,wBAAbA,EAAI4iB,KAAgC,CACtC,IAAIk6wB,EAAuB,iBAAb98xB,EAAI4iB,KAA0B5iB,EAAI4iB,KAAO,kBACvD5iB,EAAM0gxB,EAAI6G,KAAKrnxB,MAAMF,EAAK,CACxB4iB,KAAMk6wB,EACNvxvB,OAAQ8hK,EAAKntK,QAAQg+W,YAAY3yW,OACjC3I,SAAUyqK,EAAKntK,QAAQg+W,YAAY/kW,SAASvW,SAC5CulsB,WAAW,GAEf,CACA96hB,EAAKntM,MAAQF,EACbqtM,EAAKntK,QAAQ8xE,KAAK,YAAa,CAACq7F,EAAKntM,MAAOmtM,IAAO,WACjD1rL,GACF,GACF,CAEA,SAASo7wB,IACP,IA3BgBR,EA2BZpltB,EAAOupsB,EAAIgc,WAAW5kW,cACtB0yV,EAAcn9kB,EAAKntK,QAAQF,QAAQya,OAAO+vuB,aAAe,CAAC,EAC9D,IACE,IAAI54qB,EAASz6B,EAAK6ltB,cAAc3vlB,EAAKntK,QAAQg+W,YAAassY,EAC1BtmqB,EAAUhkH,IA/B5Bq8xB,EAgCL3qrB,GA/BF/B,GAAG,gBAAgB,SAAwBltG,GAClD0qM,EAAKntK,QAAQ8xE,KAAK,qBAAsB,CAACrvG,EAAO0qM,GAClD,IAEAkvlB,EAAS1srB,GAAG,mBAAmB,SAA2BltG,GACxD0qM,EAAKntK,QAAQ8xE,KAAK,uBAAwB,CAACrvG,EAAO0qM,GACpD,GA0BA,CAAE,MAAOrtM,GACPE,EAAMF,EACR,CACF,CA3FAqtM,EAAK8mlB,aAAa8I,eAAiBt7wB,EACnC0rL,EAAKntM,MAAQ,KACbmtM,EAAK/nM,KAAO,MA0FI+nM,EAAKntK,QAAQF,QAAQkR,uBAAyBv1C,KAAKwgyB,UAAY,KAC/D,IACdxgyB,KAAKq2G,KAAK,OAAQ,CAACr2G,OAAO,SAASqE,GAC7BA,EAAK2hB,EAAK3hB,GACT+8xB,GACP,IAEAA,GAEJ,IAEA76vB,EAAI,eAAgB,eAChB,SAAsBigB,EAAYnkD,EAASqvM,EAAMmvlB,GACnDnvlB,EAAK8mlB,aAAahyuB,WAAaA,EAC/BkrJ,EAAK8mlB,aAAaqI,cAAgBA,EAClCnvlB,EAAK8mlB,aAAan2xB,QAAUA,EAC5BqvM,EAAK8mlB,aAAah+vB,KAAOuqvB,EAAI6G,KAAKjsvB,OAAOq7vB,SAAS,IAClDtplB,EAAK8mlB,aAAa+I,QAAU,GAC5B7vlB,EAAK8mlB,aAAa/oC,SAAW,EAC7B,IAAI14sB,EAAa10C,EAAQ8P,MAAQ9P,EAAQiB,KACrC+gC,EAAUqtK,EAAKntK,QAAQF,QAC3B,GAAI0S,EAAY,CACd,IAAIH,EAAatzC,KAAK3B,MAAMo1C,GACxB1S,EAAQya,OAAO0wuB,kBACZnrvB,EAAQwR,cAAce,IAC3BvS,EAAQm9vB,iBAAiB5qvB,EAE7B,CACF,IAEArQ,EAAI,YAAa,YAAY,SAAmBiD,EAAOkoK,GACrD,GAAIloK,EAAO,CACT,GAAIu7uB,EAAI6G,KAAKG,SAAU,CACrBr6kB,EAAK8mlB,aAAa/oC,UAAYjmtB,EAAM5oC,OAEpC,IAAI+zG,EAAQ+8F,EAAK8mlB,aAAan2xB,QAAQ,kBAClC+zG,EAAW,CAAE1B,OAAQg9F,EAAK8mlB,aAAa/oC,SAAU96oB,MAAOA,GAC5D+8F,EAAKntK,QAAQ8xE,KAAK,uBAAwB,CAACD,EAAUs7F,GACvD,CAEAA,EAAK8mlB,aAAa+I,QAAQ3/wB,KAAKmjwB,EAAI6G,KAAKjsvB,OAAOq7vB,SAASxxvB,GAC1D,CACF,IAEAjD,EAAI,YAAa,YAAY,SAAmBmrK,GAE9C,GAAIA,EAAK8mlB,aAAa+I,SAAW7vlB,EAAK8mlB,aAAa+I,QAAQ3gyB,OAAS,EAAG,CACrE,IAAI45B,EAAOuqvB,EAAI6G,KAAKjsvB,OAAOjd,OAAOgvL,EAAK8mlB,aAAa+I,SACpD7vlB,EAAK8mlB,aAAah+vB,KAAOA,CAC3B,QACOk3K,EAAK8mlB,aAAa/oC,gBAClB/9iB,EAAK8mlB,aAAa+I,OAC3B,IAEAh7vB,EAAI,iBAAkB,SAAS,SAAwBmrK,GACjDA,EAAK8mlB,aAAahyuB,aACpBkrJ,EAAKntM,MAAMiiD,WAAakrJ,EAAK8mlB,aAAahyuB,gBACbn+C,IAAzBqpM,EAAKntM,MAAMiouB,YACb96hB,EAAKntM,MAAMiouB,UAAYxsuB,KAAKqkC,QAAQo9vB,eAAe/vlB,EAAKntM,MAAOvE,OAGrE,IAEAumC,EAAI,yBAA0B,SAAS,SAAgCmrK,GACrE,GAAKA,EAAKntM,MACV,OAAQmtM,EAAKntM,MAAM0iB,MACjB,IAAK,iBACL,IAAK,wBACL,IAAK,eACHyqL,EAAKntM,MAAMiouB,WAAY,EACvB96hB,EAAKntK,QAAQF,QAAQya,OAAOxN,YAAY2gvB,SAAU,EAExD,IAEA1rvB,EAAI,oBAAqB,SAAS,SAA2BmrK,GAC3D,IAAIrtM,EAAMqtM,EAAKntM,MACVF,GACmB,kBAAbA,EAAI4iB,MAA4C,kBAAhB5iB,EAAIpE,SACzCoE,EAAI4iB,KAAKk8F,MAAM,cAAgB9+G,EAAIpE,QAAQkjH,MAAM,aACnDuuF,EAAKntM,MAAMiouB,WAAY,EAG7B,IAEAjmsB,EAAI,eAAgB,SAAS,SAAsBmrK,GAC5CA,EAAKntM,OACNvE,KAAKqkC,QAAQq9vB,eAAehwlB,EAAKntM,QAC9BvE,KAAKqkC,QAAQya,OAAO0wuB,mBACzB99kB,EAAKntM,MAAMiouB,WAAY,EAE3B,IAEAjmsB,EAAI,WAAY,SAAS,SAAkBmrK,GACrCA,EAAKntM,OAASmtM,EAAKntM,MAAMiiD,YAAc,KACvCkrJ,EAAKntM,MAAMiiD,WAAa,KAAOkrJ,EAAK8mlB,aAAan2xB,QAAkB,WACrErC,KAAKuiZ,YAAY/kW,SACf,IAAIunuB,EAAIlivB,SAAS6uK,EAAK8mlB,aAAan2xB,QAAkB,UACvDrC,KAAKuiZ,YAAYlgZ,QAAc,KAAIrC,KAAKuiZ,YAAY/kW,SAASrW,KAC7DuqK,EAAKntM,MAAMo9xB,UAAW,EACtBjwlB,EAAKntM,MAAMiouB,WAAY,EAE3B,IAEAjmsB,EAAI,cAAe,SAAS,SAAqBmrK,GAC3CA,EAAKntM,QACHmtM,EAAKntM,MAAMo9xB,UAAYjwlB,EAAKkwlB,cAAgBlwlB,EAAKo9kB,aACnDp9kB,EAAKntM,MAAM++C,WAAa,EACfouJ,EAAKnuJ,WAAamuJ,EAAKs0jB,aAChCt0jB,EAAKntM,MAAM++C,WAAatjD,KAAKqkC,QAAQw9vB,YAAYnwlB,EAAKnuJ,WAAYmuJ,EAAKntM,QAAU,GAGvF,IAEA06xB,EAAS,oBAAqB,cAAc,SAA2BvtlB,EAAM1rL,GAC3E,IAAIg8B,EAAO8/uB,GAAY,EAEnBpwlB,EAAKntM,QACPy9C,EAAQ0vJ,EAAKntM,MAAM++C,YAAc,EAC7BouJ,EAAKntM,MAAMiouB,WAAa96hB,EAAKnuJ,WAAamuJ,EAAKs0jB,YACjDt0jB,EAAKnuJ,aACLu+uB,GAAY,GACHpwlB,EAAKntM,MAAMo9xB,UAAYjwlB,EAAKkwlB,cAAgBlwlB,EAAKo9kB,eAC1Dp9kB,EAAKkwlB,gBACLE,GAAY,IAKZA,GAAa9/uB,GAAS,GACxB0vJ,EAAKntM,MAAQ,KACb8oB,WAAWrH,EAAMg8B,IAEjBh8B,GAEJ,GACF,IAEA+7wB,UAAU,IAAIjQ,GAAqBkN,mBAAkB,SAASz4vB,GAC5DA,EAAI,qBAAsB,cAAew+uB,EAAI6G,KAAKoW,kBAClDz7vB,EAAI,qBAAsB,eAAgBw+uB,EAAI6G,KAAKoW,kBAEnDz7vB,EAAI,kBAAmB,aAAa,SAAyBliC,GAO3D,GAAiB,oBAAbA,EAAI4iB,MANR,SAAoB5iB,GAClB,MAAqB,cAAdA,EAAI49xB,OACY,kBAAd59xB,EAAI49xB,OAC4B,oBAAhCld,EAAI6G,KAAKsW,oBAChB,CAAC,aAAc,cAAc9gyB,QAAQ2jxB,EAAI6G,KAAKsW,mBAAmB79xB,EAAI49xB,QAAU,EACnF,CACsCE,CAAW99xB,GAAM,CACrD,IAAIpE,EAAU,uBAAyBoE,EAAI4iC,SAAW,cAAiB5iC,EAAI6iC,KACzE,gDAAmD7iC,EAAIurC,OACvD,YACF5vC,KAAK0D,SAASa,MAAQwgxB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAMF,GAAU,CACvDgnB,KAAM,kBACN2oB,OAAQvrC,EAAIurC,OACZ3I,SAAU5iC,EAAI4iC,SACdulsB,WAAW,EACX41D,cAAe/9xB,GAEnB,CACF,GACF,IAEAm+a,QAAQ,IAAIsvW,GAAqBkN,mBAAkB,SAASz4vB,GAC1DA,EAAI,cAAe,YAAY,SAAqBmrK,GAClD,IAAIF,EAAME,EAAKntK,QACXX,EAAS4tK,EAAIntK,QAAQya,OAAOlb,OAChC,GAAKA,EAAL,CA8DA,IAAImjF,EA1BJ,WACE,IACI+/E,GADO4K,EAAKntK,QAAQF,QAAQkR,uBAAuBD,UACnCk8J,EAAIulhB,UAAUzhrB,WAAa,IAC3C+svB,IAAOz+vB,EAAO0+vB,MACd71lB,EAASiF,EAAK8mlB,aAAahyuB,WAC3B+7uB,EAAiB/wlB,EAAI34I,OAEvB24I,EAAIntK,QAAQ5lB,IAAI2stB,YACZ55hB,EAAIntK,QAAQ5lB,IAAI2stB,WAAW55hB,EAAI3yK,YAC/B2yK,EAAIntK,QAAQ5lB,IAAI2stB,WAAW55hB,EAAI3yK,WAAWqB,QAG9CqiwB,EAAiBC,EADAhxlB,EAAIntK,QAAQ5lB,IAAI2stB,WAAW55hB,EAAI3yK,WAAWqB,MACXsxK,EAAI34I,SAEtD,IAAIA,EAAS7hC,EAAAA,OAAAA,QAAwBurwB,GAAgB,EAAM,MACvDtiyB,EAAU,GAQd,OAPIoiyB,IAAMpiyB,GAAW,YACrBA,GAAW,QAAUuxM,EAAIntK,QAAQw0vB,kBAAoB,IAAMpslB,EAC3DxsM,GAAW,IAAM6mM,EAAMvlM,WAAa,KAAOmwM,EAAKnuJ,WAAa,YACzD8+uB,IAAMpiyB,GAAW,aACrBA,GAAW,IAAM8kxB,EAAI6G,KAAK70qB,OAAO0rrB,WAAWjxlB,EAAI3yK,WAChD5+B,GAAW,IAAM44D,EAAS,IACtBwpuB,IAAMpiyB,GAAW,WACdA,CACT,CAEWyiyB,GACe,oBAAf9+vB,EAAO99B,IAChB89B,EAAO99B,IAAIihH,GACsB,oBAAjBnjF,EAAOszE,OACvBtzE,EAAOszE,MAAM6P,EAAO,KAlEH,CACnB,SAASy7qB,EAAmBtK,EAAY3/wB,GACtC,IAAKA,EACH,OAAOA,EAET,GAAI2/wB,EAAWyK,YACb,MAAO,6BAET,OAAQzK,EAAWj0xB,MACjB,IAAK,YACH,IAAIw5xB,EAAS,CAAC,EAQd,OAPA1Y,EAAI6G,KAAK9pN,KAAKvpjB,GAAO,SAASqqxB,EAAcC,GACtC9ixB,OAAO7f,UAAU04B,eAAe9S,KAAKoywB,EAAWzB,QAASmM,GAC3DnF,EAAOmF,GAAgBJ,EAAmBtK,EAAWzB,QAAQmM,GAAeC,GAE5EpF,EAAOmF,GAAgBC,CAE3B,IACOpF,EACT,IAAK,OACH,IAAIjirB,EAAO,GAIX,OAHAupqB,EAAI6G,KAAK4G,UAAUj6wB,GAAO,SAASsqxB,EAAUzvwB,GAC3CooF,EAAK55F,KAAK4gxB,EAAmBtK,EAAWwF,OAAQmF,GAClD,IACOrnrB,EACT,IAAK,MACH,IAAItrG,EAAM,CAAC,EAIX,OAHA60wB,EAAI6G,KAAK9pN,KAAKvpjB,GAAO,SAAS0M,EAAKje,GACjCkJ,EAAI+U,GAAOu9wB,EAAmBtK,EAAWlxxB,MAAOA,EAClD,IACOkJ,EACT,QACE,OAAOqI,EAEb,CAkCF,GACF,IAEA24wB,MAAM,IAAIY,GAAqBkN,mBAAkB,SAASz4vB,GACxD,IAAIwkvB,EAAM/zvB,EAAQ,OAClBuP,EAAI,QAAS,QAASwkvB,EAAI+X,cAC1Bv8vB,EAAI,eAAgB,cAAewkvB,EAAI/yO,aACvCzxgB,EAAI,gBAAiB,eAAgBwkvB,EAAIgY,aAC3C,IAEA3R,MAAM,IAAIU,GAAqBkN,mBAAkB,SAASz4vB,GACxD,IAAIwkvB,EAAM/zvB,EAAQ,OAClBuP,EAAI,QAAS,QAASwkvB,EAAI+X,cAC1Bv8vB,EAAI,eAAgB,cAAewkvB,EAAI/yO,aACvCzxgB,EAAI,gBAAiB,eAAgBwkvB,EAAIgY,aAC3C,IAEA1R,UAAU,IAAIS,GAAqBkN,mBAAkB,SAASz4vB,GAC5D,IAAIwkvB,EAAM/zvB,EAAQ,OAClBuP,EAAI,QAAS,QAASwkvB,EAAI+X,cAC1Bv8vB,EAAI,eAAgB,cAAewkvB,EAAI/yO,aACvCzxgB,EAAI,gBAAiB,eAAgBwkvB,EAAIgY,cACzCx8vB,EAAI,uBAAwB,aAAcwkvB,EAAIiY,mBAChD,IAEA1R,SAAS,IAAIQ,GAAqBkN,mBAAkB,SAASz4vB,GAC3D,IAAIwkvB,EAAM/zvB,EAAQ,OAClBuP,EAAI,QAAS,QAASwkvB,EAAI+X,cAC1Bv8vB,EAAI,eAAgB,cAAewkvB,EAAI/yO,aACvCzxgB,EAAI,gBAAiB,eAAgBwkvB,EAAIgY,aAC3C,IAEA5R,OAAO,IAAIW,GAAqBkN,mBAAkB,SAASz4vB,GACzD,IAAIwkvB,EAAM/zvB,EAAQ,OAClBuP,EAAI,QAAS,QAASwkvB,EAAI+X,cAC1Bv8vB,EAAI,eAAgB,cAAewkvB,EAAI/yO,aACvCzxgB,EAAI,gBAAiB,eAAgBwkvB,EAAIgY,aAC3C,4BC1tBF,IAAIhe,EAAM/tvB,EAAQ,MACd6+I,EAAUkvmB,EAAI6G,KAAK/1mB,QAgCvBkvmB,EAAIlivB,SAAWgzI,EAAQ,CASrBxvJ,YAAa,SAAkBm3B,EAAUsB,GAGvC,GAFAimuB,EAAI6G,KAAKoG,eAAehyxB,KAAM,CAAC,UAAW,OAAQ,OAAQ,SAAU,UAE5C,qBAAbw9C,GAAyC,OAAbA,EACrC,MAAM,IAAIr9C,MAAM,qBAAuBq9C,GAClC,GAAwB,kBAAbA,EAChB,OAAOunuB,EAAI6G,KAAKn0qB,KAAKj6D,GAGlBA,EAAS2lE,MAAM,WAGlB3lE,IAFasB,QAAgCz2C,IAAtBy2C,EAAOkwuB,WAC5BlwuB,EAAOkwuB,WAAajK,EAAIjmuB,OAAOkwuB,YACZ,QAAU,QAAU,MAAQxxuB,GAGnDunuB,EAAI6G,KAAKv0vB,OAAOr3B,KAAM+kxB,EAAI6G,KAAKqX,SAASzlvB,IAGpCx9C,KAAKknC,KACPlnC,KAAKknC,KAAOzS,SAASz0B,KAAKknC,KAAM,IAEhClnC,KAAKknC,KAAyB,WAAlBlnC,KAAKi6C,SAAwB,IAAM,EAEnD,IAwBF8quB,EAAIv+uB,YAAcqvI,EAAQ,CAKxBxvJ,YAAa,SAAqBm3B,EAAU5N,GAC1C4N,EAAW,IAAIunuB,EAAIlivB,SAAS2a,GAC5Bx9C,KAAKiH,OAAS,OACdjH,KAAKwf,KAAOg+B,EAASh+B,MAAQ,IAC7Bxf,KAAKqC,QAAU,CAAC,EAChBrC,KAAKw6B,KAAO,GACZx6B,KAAKw9C,SAAWA,EAChBx9C,KAAK4vC,OAASA,EACd5vC,KAAKkjyB,WAAa,GAClBljyB,KAAKmjyB,cACP,EAKAA,aAAc,WACZnjyB,KAAKkjyB,WAAaljyB,KAAKqC,QAAQrC,KAAKojyB,0BAA4Bre,EAAI6G,KAAKz7vB,WAC3E,EAEAizwB,uBAAwB,WAEtB,OADare,EAAI6G,KAAKh3N,YAAc,SAAW,IAC/B,YAClB,EAKA+kO,kBAAmB,SAA2B0J,GAChB,kBAAjBA,GAA6BA,IACtCrjyB,KAAKkjyB,YAAc,IAAMG,GAE3BrjyB,KAAKqC,QAAQrC,KAAKojyB,0BAA4BpjyB,KAAKkjyB,UACrD,EAKAI,aAAc,WACZ,OAAOtjyB,KAAKkjyB,UACd,EAMA7ovB,SAAU,WACR,OAAOr6C,KAAKwf,KAAK5d,MAAM,IAAK,GAAG,EACjC,EAKA2zB,OAAQ,WACN,IAAIqb,EAAQ5wC,KAAKwf,KAAK5d,MAAM,IAAK,GAAG,GACpC,OAAIgvC,GACFA,EAAQm0uB,EAAI6G,KAAK2X,iBAAiB3yvB,GAC3Bm0uB,EAAI6G,KAAK4X,oBAAoB5yvB,IAE/B,EACT,EAMAumvB,eAAgB,SAAwBsM,GACtC,IAAIC,EAAc,IAAI3e,EAAIlivB,SAAS4gwB,GACnCzjyB,KAAKw9C,SAAWkmvB,EAChB1jyB,KAAKwf,KAAOkkxB,EAAYlkxB,MAAQ,IAC5Bxf,KAAKqC,QAAc,OACrBrC,KAAKqC,QAAc,KAAIqhyB,EAAYv8vB,KAEvC,IAoBF49uB,EAAIhvuB,aAAe8/H,EAAQ,CAKzBxvJ,YAAa,WACXrmB,KAAKwmD,gBAAan+C,EAClBrI,KAAKqC,QAAU,CAAC,EAChBrC,KAAKw6B,UAAOnyB,EACZrI,KAAK8gyB,WAAY,EACjB9gyB,KAAKi2G,OAAS,IAChB,EAuBA0trB,uBAAwB,WAEtB,OADA3jyB,KAAK8gyB,WAAY,EACV9gyB,KAAKi2G,MACd,IAIF8uqB,EAAIgc,WAAalrnB,EAAQ,CAAC,GAK1BkvmB,EAAIgc,WAAW5kW,YAAc,WAI3B,YAHuB9zb,IAAnBrI,KAAK4jyB,YACP5jyB,KAAK4jyB,UAAY,IAAI5jyB,MAEhBA,KAAK4jyB,SACd,yBC7OA,IAAI7e,EAAM/tvB,EAAQ,MACds8E,EAAet8E,EAAAA,OAAAA,aACnBA,EAAQ,OAKR+tvB,EAAI8e,UAAY9e,EAAI6G,KAAK/1mB,QAAQ,CAC/BwrnB,cAAe,SAAuB9+Y,EAAassY,EAAatmqB,EAAUu7qB,GACxE,IAAIjgrB,EAAO7jH,KACPw9C,EAAW+kW,EAAY/kW,SACvBumvB,EAAU,IAAIzwrB,EACdl5D,EAAOoD,EAASvD,SAAW,KAAOuD,EAASvW,SACzB,KAAlBuW,EAAStW,MAAiC,MAAlBsW,EAAStW,OACnCkT,GAAQ,IAAMoD,EAAStW,MAEzBkT,GAAQmoW,EAAY/iY,KAEpB,IAAIwkxB,EAAM,IAAIxhZ,eAAkByhZ,GAAiB,EACjD1hZ,EAAYtsS,OAAS+trB,EAErBA,EAAIxmxB,iBAAiB,oBAAoB,WACvC,IACE,GAAmB,IAAfwmxB,EAAIv3lB,OAAc,MACxB,CAAE,MAAO1sM,GAAK,MAAQ,CAElBC,KAAKuuM,YAAcvuM,KAAKkkyB,mBAAqBD,IAC/CF,EAAQv9uB,WAAaw9uB,EAAIv3lB,OACzBs3lB,EAAQ1hyB,QAAUwhH,EAAK46qB,aAAauF,EAAIG,yBACxCJ,EAAQ1trB,KACN,UACA0trB,EAAQv9uB,WACRu9uB,EAAQ1hyB,QACR2hyB,EAAIt3lB,YAENu3lB,GAAiB,GAEfjkyB,KAAKuuM,aAAevuM,KAAKokyB,MAC3BvgrB,EAAKwgrB,cAAcL,EAAKD,EAE5B,IAAG,GACHC,EAAIM,OAAO9mxB,iBAAiB,YAAY,SAAUkD,GAChDqjxB,EAAQ1trB,KAAK,eAAgB31F,EAC/B,IACAsjxB,EAAIxmxB,iBAAiB,YAAY,SAAUkD,GACzCqjxB,EAAQ1trB,KAAK,kBAAmB31F,EAClC,IAAG,GACHsjxB,EAAIxmxB,iBAAiB,WAAW,WAC9BsmxB,EAAY/e,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAM,WAAY,CAAC8mB,KAAM,iBAC1D,IAAG,GACH+8wB,EAAIxmxB,iBAAiB,SAAS,WAC5BsmxB,EAAY/e,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAM,mBAAoB,CACvD8mB,KAAM,oBAEV,IAAG,GACH+8wB,EAAIxmxB,iBAAiB,SAAS,WAC5BsmxB,EAAY/e,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAM,mBAAoB,CACvD8mB,KAAM,wBAEV,IAAG,GAEHshG,EAASw7qB,GACTC,EAAIr7xB,KAAK45Y,EAAYt7Y,OAAQmzC,GAA+B,IAAzBy0uB,EAAY0V,UAC/Cxf,EAAI6G,KAAK9pN,KAAKv/K,EAAYlgZ,SAAS,SAAU4iB,EAAKje,GACpC,mBAARie,GAAoC,eAARA,GAAgC,SAARA,GACtD++wB,EAAIQ,iBAAiBv/wB,EAAKje,EAE9B,IAEI6nxB,EAAYvtpB,UAAoC,IAAzButpB,EAAY0V,WACrCP,EAAI1iqB,QAAUutpB,EAAYvtpB,SAGxButpB,EAAY4V,qBACdT,EAAIU,iBAAkB,GAExB,IAAMV,EAAIW,aAAe,aAAe,CAAE,MAAO5kyB,GAAI,CAErD,IACMwiZ,EAAY/nX,KACdwpwB,EAAIr3tB,KAAK41U,EAAY/nX,MAErBwpwB,EAAIr3tB,MAER,CAAE,MAAOtoE,GACP,IAAIk+Y,EAAY/nX,MAA2C,kBAA5B+nX,EAAY/nX,KAAKmF,OAG9C,MAAMt7B,EAFN2/xB,EAAIr3tB,KAAK41U,EAAY/nX,KAAKmF,OAI9B,CAEA,OAAOokwB,CACT,EAEAtF,aAAc,SAAsBnyvB,GAClC,IAAIjqC,EAAU,CAAC,EAMf,OALA0ixB,EAAI6G,KAAK4G,UAAUlmvB,EAAW1qC,MAAM,UAAU,SAAUmlH,GACtD,IAAI9hG,EAAM8hG,EAAKnlH,MAAM,IAAK,GAAG,GACzBoF,EAAQ+/G,EAAKrsE,UAAUz1B,EAAIrkB,OAAS,GACpCqkB,EAAIrkB,OAAS,IAAGyB,EAAQ4iB,EAAIpF,eAAiB7Y,EACnD,IACO3E,CACT,EAEAgiyB,cAAe,SAAuBL,EAAKD,GACzC,IAAIpkwB,EACJ,GAAyB,gBAArBqkwB,EAAIW,cAAkCX,EAAItgyB,SAAU,CACtD,IAAIwrD,EAAK80uB,EAAItgyB,SACbi8B,EAAS,IAAIolvB,EAAI6G,KAAKlqvB,OAAOwtB,EAAGrvB,YAEhC,IADA,IAAI0M,EAAO,IAAIzO,WAAWoxB,GACjBluD,EAAI,EAAGA,EAAI2+B,EAAO/+B,SAAUI,EACnC2+B,EAAO3+B,GAAKurC,EAAKvrC,EAErB,CAEA,IACO2+B,GAAsC,kBAArBqkwB,EAAIthZ,eACxB/iX,EAAS,IAAIolvB,EAAI6G,KAAKlqvB,OAAOsiwB,EAAIthZ,cAErC,CAAE,MAAO3iZ,GAAI,CAET4/B,GAAQokwB,EAAQ1trB,KAAK,OAAQ12E,GACjCokwB,EAAQ1trB,KAAK,MACf,IAMF0uqB,EAAIgc,WAAW7gyB,UAAY6kxB,EAAI8e,UAAU3jyB,UAKzC6kxB,EAAIgc,WAAWC,kBAAoB,yBCvInC,IAAIpV,EAAO50vB,EAAQ,OAEnB,SAAS4twB,IAAgB,CAMzB,SAAS13hB,EAAUlmQ,EAAOuR,GACxB,GAAKA,QAAmBlQ,IAAVrB,GAAiC,OAAVA,EAErC,OAAQuR,EAAMtU,MACZ,IAAK,YAAa,OAOtB,SAA4Bu5xB,EAAWjlxB,GACrC,GAAIA,EAAMmrvB,WACR,OAAO85B,EAET,IAAIC,EAAS,CAAC,EAUd,OATA7R,EAAK9pN,KAAK07N,GAAW,SAASp9xB,EAAM4G,GAClC,IAAIwvxB,EAAcj+wB,EAAMk+wB,QAAQr2xB,GAChC,GAAIo2xB,EAAa,CACf,GAA6B,SAAzBA,EAAY5wxB,SAAqB,OACrC,IAAI+wxB,EAAeH,EAAYI,eAAiBJ,EAAYp2xB,KAAOA,EAC/D8E,EAASgoQ,EAAUlmQ,EAAOwvxB,QACfnuxB,IAAXnD,IAAsBu4xB,EAAO9G,GAAgBzxxB,EACnD,CACF,IACOu4xB,CACT,CAtB6BL,CAAmBp2xB,EAAOuR,GACnD,IAAK,MAAO,OAgChB,SAAsBrI,EAAKqI,GACzB,IAAI+wB,EAAM,CAAC,EAKX,OAJAsivB,EAAK9pN,KAAK5xjB,GAAK,SAAS+U,EAAKje,GAC3B,IAAI9B,EAASgoQ,EAAUlmQ,EAAOuR,EAAMvR,YACrBqB,IAAXnD,IAAsBokC,EAAIrkB,GAAO/f,EACvC,IACOokC,CACT,CAvCuB+zvB,CAAar2xB,EAAOuR,GACvC,IAAK,OAAQ,OAsBjB,SAAuBijG,EAAMjjG,GAC3B,IAAI+wB,EAAM,GAKV,OAJAsivB,EAAK4G,UAAUh3qB,GAAM,SAASx0G,GAC5B,IAAI9B,EAASgoQ,EAAUlmQ,EAAOuR,EAAMmlxB,aACrBr1xB,IAAXnD,GAAsBokC,EAAI1nB,KAAK1c,EACrC,IACOokC,CACT,CA7BwBg0vB,CAAct2xB,EAAOuR,GACzC,QAAS,OAuCb,SAAyBvR,EAAOuR,GAC9B,OAAOA,EAAMssxB,aAAa79xB,EAC5B,CAzCoBu2xB,CAAgBv2xB,EAAOuR,GAE3C,CAbAqsxB,EAAY1kyB,UAAU8zM,MAAQ,SAAShtM,EAAOuR,GAC5C,OAAO7W,KAAKQ,UAAUgrQ,EAAUlmQ,EAAOuR,GACzC,EAuDA0sM,EAAOrtL,QAAUgtwB,yBC7DjB,IAAIhZ,EAAO50vB,EAAQ,OAEnB,SAAS8twB,IAAe,CAMxB,SAAS53hB,EAAUlmQ,EAAOuR,GACxB,GAAKA,QAAmBlQ,IAAVrB,EAEd,OAAQuR,EAAMtU,MACZ,IAAK,YAAa,OAOtB,SAA4Bu5xB,EAAWjlxB,GACrC,GAAiB,MAAbilxB,EAAmB,OACvB,GAAIjlxB,EAAMmrvB,WAAY,OAAO85B,EAE7B,IAAIC,EAAS,CAAC,EACVsH,EAAexsxB,EAAMk+wB,QASzB,OARA7K,EAAK9pN,KAAKijO,GAAc,SAAS3kyB,EAAMo2xB,GACrC,IAAIG,EAAeH,EAAYI,eAAiBJ,EAAYp2xB,KAAOA,EACnE,GAAI2f,OAAO7f,UAAU04B,eAAe9S,KAAK03wB,EAAW7G,GAAe,CACjE,IACIzxxB,EAASgoQ,EADDswhB,EAAU7G,GACQH,QACfnuxB,IAAXnD,IAAsBu4xB,EAAOr9xB,GAAQ8E,EAC3C,CACF,IACOu4xB,CACT,CAtB6BL,CAAmBp2xB,EAAOuR,GACnD,IAAK,MAAO,OAmChB,SAAsBrI,EAAKqI,GACzB,GAAW,MAAPrI,EAAa,OAEjB,IAAIo5B,EAAM,CAAC,EAMX,OALAsivB,EAAK9pN,KAAK5xjB,GAAK,SAAS+U,EAAKje,GAC3B,IAAI9B,EAASgoQ,EAAUlmQ,EAAOuR,EAAMvR,OACVsiC,EAAIrkB,QAAf5c,IAAXnD,EAAiC,KACrBA,CAClB,IACOokC,CACT,CA7CuB+zvB,CAAar2xB,EAAOuR,GACvC,IAAK,OAAQ,OAsBjB,SAAuBijG,EAAMjjG,GAC3B,GAAY,MAARijG,EAAc,OAElB,IAAIlyE,EAAM,GAMV,OALAsivB,EAAK4G,UAAUh3qB,GAAM,SAASx0G,GAC5B,IAAI9B,EAASgoQ,EAAUlmQ,EAAOuR,EAAMmlxB,aACrBr1xB,IAAXnD,EAAsBokC,EAAI1nB,KAAK,MAC9B0nB,EAAI1nB,KAAK1c,EAChB,IACOokC,CACT,CAhCwBg0vB,CAAct2xB,EAAOuR,GACzC,QAAS,OA6Cb,SAAyBvR,EAAOuR,GAC9B,OAAOA,EAAMolxB,OAAO32xB,EACtB,CA/CoBu2xB,CAAgBv2xB,EAAOuR,GAE3C,CAbAusxB,EAAW5kyB,UAAUyB,MAAQ,SAASqF,EAAOuR,GAC3C,OAAO20P,EAAUxrQ,KAAKC,MAAMqF,GAAQuR,EACtC,EA6DA0sM,EAAOrtL,QAAUktwB,uCCnEb/oqB,EAAU,CACZ,qGACA,+DACA,2EACA/0G,KAAK,MAEPi+L,EAAOrtL,QAAU,CACfotwB,UAAU,GAmCZ33wB,YAAW,WACJ43L,EAAOrtL,QAAQotwB,UA3BG,qBAAZjmwB,IAMgC,oBAAlCA,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYkmwB,mBACsC,IAAzDlmwB,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYkmwB,kBAAkB7jyB,QAAQ,gBAO8B,oBAA7D29B,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYmmwB,8CAKc,oBAAxBnmwB,EAAQomwB,aACjBpmwB,EAAQomwB,YAAYppqB,EAAS,CAC3B93H,KAAM,SASZ,GAAG,0BC9CH,IAAImhyB,EAAapuwB,EAAQ,MACrB06vB,EAAY16vB,EAAQ,OACpBkngB,EAAQlngB,EAAQ,MAChB26vB,EAAY36vB,EAAQ,MACpB46vB,EAAiB56vB,EAAQ,OACzB+C,EAAW/C,EAAQ,OAEnB40vB,EAAO50vB,EAAQ,OACf8lB,EAAW8uuB,EAAK9uuB,SAChBi1uB,EAAmBnG,EAAKmG,iBA+E5B9skB,EAAOrtL,QA7EP,SAAanZ,EAAKnU,GAChB,IAAIu5G,EAAO7jH,KACXye,EAAMA,GAAO,CAAC,GACdnU,EAAUA,GAAW,CAAC,GACdmU,IAAMze,KAEdye,EAAIsb,SAAWtb,EAAIsb,UAAY,CAAC,EAEhC,IAAI8+vB,EAAoBvuxB,EAAQuuxB,yBACzBvuxB,EAAQuuxB,kBAEf/7uB,EAAS98C,KAAM,SAAS,GAAM,GAC9B88C,EAAS98C,KAAM,aAAcye,EAAIsb,SAAS07B,YAC1C3Y,EAAS98C,KAAM,iBAAkBye,EAAIsb,SAASsrwB,gBAC9CvovB,EAAS98C,KAAM,cAAeye,EAAIsb,SAAS6+B,aAC3C9b,EAAS98C,KAAM,iBAAkBye,EAAIsb,SAASurwB,gBAC9CxovB,EAAS98C,KAAM,mBAAoBye,EAAIsb,SAAS21vB,kBAChD5yuB,EAAS98C,KAAM,cAAeye,EAAIsb,SAASwrwB,aAC3CzovB,EAAS98C,KAAM,eAAgBye,EAAIsb,SAASyrwB,cAC5C1ovB,EAAS98C,KAAM,WAAYye,EAAIsb,SAASkgB,UACxC6C,EAAS98C,KAAM,kBAAmBye,EAAIsb,SAAS0rwB,iBAC/C3ovB,EAAS98C,KAAM,kBAAmBye,EAAIsb,SAAS2rwB,cAC/C5ovB,EAAS98C,KAAM,eAAgBye,EAAIsb,SAAS4rwB,qBAC5C7ovB,EAAS98C,KAAM,WAAYye,EAAIsb,SAAS6rwB,iBACxC9ovB,EAAS98C,KAAM,YAAaye,EAAIsb,SAASwtB,WACrCsxuB,GAAqB9+vB,EAAS8+vB,IAC9B/7uB,EAAS98C,KAAM,oBAAqB+5B,EAAS8+vB,GAAmBgN,mBAAmB,GAGvF9T,EAAiB/xxB,KAAM,aAAa,WAClC,IAAII,EAAOqe,EAAIsb,SAAS4rwB,qBAAuBlnxB,EAAIsb,SAAS6rwB,gBAC5D,OAAKxlyB,GAGQ,0BADbA,EAAOA,EAAKO,QAAQ,+BAAgC,OACfP,EAAO,OACrCA,GAJW,IAKpB,IAeA08C,EAAS98C,KAAM,aAAc,IAAIolyB,EAAW3mxB,EAAI2stB,WAAY9guB,GAAS,SAASlK,EAAMy+B,GAClF,OAAO,IAAI6yvB,EAAUtxxB,EAAMy+B,EAAWv0B,EACxC,GAAGshxB,EAAK70qB,OAAO0rrB,YAff,SAA8BriyB,EAAMy+B,IACE,IAAhCA,EAAUinwB,mBACZhpvB,EAAS+mE,EAAM,oBAAqB+nqB,EAAK70qB,OAAO0rrB,WAAWriyB,IAEzDy+B,EAAUknwB,oBAAsBlirB,EAAK61qB,8BACvC58uB,EACE+mE,EACA,gCACyC,IAAzChlF,EAAUknwB,kBAAkBvtxB,SAGlC,KAMAskC,EAAS98C,KAAM,SAAU,IAAIolyB,EAAW3mxB,EAAIunxB,OAAQ17xB,GAAS,SAASlK,EAAMmY,GAC1E,OAAO2lhB,EAAMnlgB,OAAOxgB,EAAOjO,EAC7B,KAEAwyC,EAAS98C,KAAM,aAAc,IAAIolyB,EAAW3mxB,EAAI4mwB,WAAY/6wB,GAAS,SAASlK,EAAM6lyB,GAClF,OAAO,IAAItU,EAAUvxxB,EAAM6lyB,EAAW37xB,EACxC,KAEAwyC,EAAS98C,KAAM,UAAW,IAAIolyB,EAAW3mxB,EAAIshQ,QAASz1Q,GAAS,SAASlK,EAAMqgR,GAC5E,OAAO,IAAImxgB,EAAexxxB,EAAMqgR,EAAQn2Q,EAC1C,GAAGshxB,EAAK70qB,OAAO0rrB,aAEXn4xB,EAAQ47xB,gBACVppvB,EAAS98C,KAAM,gBAAiBye,EAAIynxB,eACpCppvB,EAAS98C,KAAM,mBAAoBye,EAAI0nxB,mBAEzCrpvB,EAAS98C,KAAM,qBAAsBye,EAAIsb,SAAS2mwB,mBACpD,wBCnFA,IAAI3O,EAAmB/6vB,EAAAA,OAAAA,iBAEvB,SAAS6Q,EAAQznC,EAAM4G,EAAOk7jB,EAASkkO,GACrCrU,EAAiB/xxB,KAAMomyB,EAAOhmyB,IAAO,WACnC,OAAO8hkB,EAAQ9hkB,EAAM4G,EACvB,GACF,CAiBAi+M,EAAOrtL,QAfP,SAAoB6wb,EAAUn+c,EAAS43jB,EAASkkO,EAAQ79qB,GAItD,IAAK,IAAI7/G,KAHT09xB,EAASA,GAAU1lyB,OAGJ+nd,EACT1oc,OAAO7f,UAAU04B,eAAe9S,KAAK2ic,EAAU//c,KACjDm/B,EAAQ/hB,KAJD9lB,KAIY0I,EAAI+/c,EAAS//c,GAAKw5jB,EAASkkO,GAC1C79qB,GAAUA,EAAS7/G,EAAI+/c,EAAS//c,IAG1C,yBClBA,IAAIw1hB,EAAQlngB,EAAQ,MAEhB40vB,EAAO50vB,EAAQ,OACf8lB,EAAW8uuB,EAAK9uuB,SAChBi1uB,EAAmBnG,EAAKmG,iBAkH5B9skB,EAAOrtL,QAhHP,SAAmBx3B,EAAMy+B,EAAWv0B,GAClC,IAAIu5G,EAAO7jH,KACXsK,EAAUA,GAAW,CAAC,EAEtBwyC,EAAS98C,KAAM,OAAQ6+B,EAAUz+B,MAAQA,GACzC08C,EAAS98C,KAAM,MAAOsK,EAAQmU,KAAK,GAEnCogB,EAAU28C,KAAO38C,EAAU28C,MAAQ,CAAC,EACpC1+B,EAAS98C,KAAM,WAAY6+B,EAAU2e,UACrCV,EAAS98C,KAAM,aAAc6+B,EAAU28C,KAAKv0E,QAAU,QACtD61C,EAAS98C,KAAM,WAAY6+B,EAAU28C,KAAK6qtB,YAAc,KACxDvpvB,EAAS98C,KAAM,WAAY6+B,EAAUigwB,UAAY,IACjDhivB,EACE98C,KACA,4BACA6+B,EAAUknwB,kBACPlnwB,EAAUknwB,kBAAkBvtxB,SAAW,WAAa,WACvD,QAKF,IAAI+mxB,EAAuB1gwB,EAAU0gwB,sBAC/B1gwB,EAAUynwB,cAAgBznwB,EAAUynwB,aAAajhwB,wBACvDyX,EAAS98C,KAAM,uBAAwBu/xB,GAAsB,GAE7DxN,EAAiB/xxB,KAAM,SAAS,WAC9B,OAAK6+B,EAAUqB,MAGRg+f,EAAMnlgB,OAAO8F,EAAUqB,MAAO51B,GAF5B,IAAI4zhB,EAAMnlgB,OAAO,CAAC90B,KAAM,aAAcqG,EAGjD,IAEAynxB,EAAiB/xxB,KAAM,UAAU,WAC/B,OAAK6+B,EAAU6F,OAGRw5f,EAAMnlgB,OAAO8F,EAAU6F,OAAQp6B,GAF7B,IAAI4zhB,EAAMnlgB,OAAO,CAAC90B,KAAM,aAAcqG,EAGjD,IAEAynxB,EAAiB/xxB,KAAM,UAAU,WAC/B,IAAIw7G,EAAO,GACX,IAAK38E,EAAU7kB,OAAQ,OAAO,KAE9B,IAAK,IAAIhZ,EAAI,EAAGA,EAAI69B,EAAU7kB,OAAOpZ,OAAQI,IAC3Cw6G,EAAK55F,KAAKs8gB,EAAMnlgB,OAAO8F,EAAU7kB,OAAOhZ,GAAIsJ,IAG9C,OAAOkxG,CACT,IAEAu2qB,EAAiB/xxB,KAAM,aAAa,WAClC,OAAOsK,EAAQmU,IAAI4mwB,WAAWjlxB,EAChC,IAEIkK,EAAQ47xB,gBACVppvB,EAAS98C,KAAM,gBAAiB6+B,EAAUqnwB,eAC1CppvB,EAAS98C,KAAM,mBAAoB6+B,EAAUsnwB,mBAI/CpU,EAAiB/xxB,KAAM,qBAAqB,WAC1C,IAAIo/xB,EAAoB,GACpBl/vB,EAAQ2jF,EAAK3jF,MACbu2vB,EAAUv2vB,EAAMu2vB,QACpB,IAAKv2vB,EAAMu2vB,QACT,OAAO2I,EAET,IAAK,IAAIh/xB,KAAQq2xB,EACVA,EAAQ79vB,eAAex4B,KAGO,IAA/Bq2xB,EAAQr2xB,GAAMmmyB,cAChBnH,EAAkBx9wB,KAAKxhB,GAG3B,OAAOg/xB,CACT,IAEArN,EAAiB/xxB,KAAM,kBAAkB,WAEvC,OAIJ,SAAwBwmyB,GACtB,IAAI/P,EAAU+P,EAAc/P,QACxBvyxB,EAAUsiyB,EAActiyB,QAE5B,IAAKsiyB,EAAc/P,QACjB,OAAO,EAGT,GAAIvyxB,EAAS,CAEX,OADoBuyxB,EAAQvyxB,GACPuiyB,aACvB,CAGA,IAAK,IAAIrmyB,KAAQq2xB,EACf,IAAKA,EAAQ79vB,eAAex4B,KACU,IAAhCq2xB,EAAQr2xB,GAAMqmyB,cAChB,OAAO,EAIb,OAAO,CACT,CA1BWC,CADM7irB,EAAKn/E,OAEpB,GACF,wBCzFA,IAAIoY,EAAW9lB,EAAAA,OAAAA,SAafiuL,EAAOrtL,QAXP,SAAmBx3B,EAAM6lyB,GACvBnpvB,EAAS98C,KAAM,aAAcimyB,EAAUU,aACvC7pvB,EAAS98C,KAAM,WAAYimyB,EAAUW,WACrC9pvB,EAAS98C,KAAM,cAAeimyB,EAAUY,cACxC/pvB,EAAS98C,KAAM,cAAeimyB,EAAUa,cACxChqvB,EAAS98C,KAAM,YAAaimyB,EAAUc,WACxC,yBCRA,IAAInb,EAAO50vB,EAAQ,OACf8lB,EAAW8uuB,EAAK9uuB,SA+BpBmoK,EAAOrtL,QA7BP,SAAwBx3B,EAAMqgR,EAAQn2Q,GACpCA,EAAUA,GAAW,CAAC,EACtBwyC,EAAS98C,KAAM,OAAQI,GACvB08C,EAAS98C,KAAM,MAAOsK,EAAQmU,KAAK,GAE/BgiQ,EAAO5hP,WACTie,EAAS98C,KAAM,YAAa4rxB,EAAK70qB,OAAO0rrB,WAAWhihB,EAAO5hP,YAG5D,IAAIglF,EAAO7jH,KACA,CACT,OACA,cACA,QACA,cACA,aAGGglB,SAAQ,SAASC,GACpB,IAAIje,EAAQy5Q,EAAOx7P,GACfje,GACF81C,EAAS+mE,EAAM5+F,EAAKje,EAExB,GACF,wBC3BA,IAAIo+xB,EAAapuwB,EAAQ,MAErB40vB,EAAO50vB,EAAQ,OAEnB,SAAS8lB,EAASz3B,EAAKjlB,EAAM4G,GACb,OAAVA,QAA4BqB,IAAVrB,GACpB4kxB,EAAK9uuB,SAASl4B,MAAM5kB,KAAM8kB,UAE9B,CAEA,SAASitwB,EAAiB1swB,EAAKjlB,GACxBilB,EAAIgB,YAAYnmB,UAAUE,IAC7BwrxB,EAAKmG,iBAAiBntwB,MAAM5kB,KAAM8kB,UAEtC,CAEA,SAASo5gB,EAAM3lhB,EAAOjO,EAASiyM,GAC7BjyM,EAAUA,GAAW,CAAC,EAEtBwyC,EAAS98C,KAAM,QAASuY,EAAMA,OAC9BukC,EAAS98C,KAAM,MAAOsK,EAAQmU,KAAK,GACnCq+B,EAAS98C,KAAM,OAAQuY,EAAMtU,MAC7B64C,EAAS98C,KAAM,OAAQuY,EAAMyuxB,MAC7BlqvB,EAAS98C,KAAM,MAAOuY,EAAM4pC,KAC5BrF,EAAS98C,KAAM,MAAOuY,EAAMyqC,KAC5BlG,EAAS98C,KAAM,UAAWuY,EAAMguG,SAChCzpE,EAAS98C,KAAM,WAAYuY,EAAM3S,UAAY5F,KAAK4F,UAAY,QAC9Dk3C,EAAS98C,KAAM,OAAQA,KAAKI,MAAQmY,EAAM0uxB,SAAW1uxB,EAAM4gwB,WACzD5gwB,EAAMo+wB,cAAgBp6kB,GACxBz/J,EAAS98C,KAAM,cAAeuY,EAAMuoxB,WAAa9gyB,KAAKsgH,cAAe,GACrExjE,EAAS98C,KAAM,iBAAkBuY,EAAMwnxB,gBAAgB,GACvDjjvB,EAAS98C,KAAM,cAAeuY,EAAM2uxB,cAAe,GACnDpqvB,EAAS98C,KAAM,WAAW,GAAM,GAChC88C,EAAS98C,KAAM,cAAe4I,QAAQ2P,EAAM4gwB,YAAY,GACxDr8tB,EAAS98C,KAAM,iBAAkB4I,QAAQ2P,EAAMo+wB,eAAe,GAC9D75uB,EAAS98C,KAAM,gBAA2C,IAA3BuY,EAAM4uxB,kBACrCrqvB,EAAS98C,KAAM,eAAmC,IAApBuY,EAAM6uxB,WACpCtqvB,EAAS98C,KAAM,eAAmC,IAApBuY,EAAM8uxB,WAAsB9uxB,EAAMrY,YAA2C,IAA9BqY,EAAMrY,UAAUmnyB,WAC7FvqvB,EAAS98C,KAAM,gBAAiB4I,QAAQ2P,EAAM+uxB,cAAc,GAC5DxqvB,EAAS98C,KAAM,UAAW4I,QAAQ2P,EAAMhQ,QAAQ,GAChDu0C,EAAS98C,KAAM,iBAAkB4I,QAAQ2P,EAAMgvxB,eAAe,GAC9DzqvB,EAAS98C,KAAM,gBAAiB4I,QAAQ2P,EAAMivxB,cAAc,GAC5D1qvB,EAAS98C,KAAM,uBAAwB4I,QAAQ2P,EAAMktxB,kBAAoBltxB,EAAMrY,YAAsD,IAAzCqY,EAAMrY,UAAUunyB,sBAA+B,GAC3I3qvB,EAAS98C,KAAM,sBAAuB4I,QAAQ2P,EAAMmvxB,sBAAsB,GAC1E5qvB,EAAS98C,KAAM,YAAa4I,QAAQ2P,EAAMovxB,YAAY,GAElDr9xB,EAAQ47xB,gBACVppvB,EAAS98C,KAAM,gBAAiBuY,EAAM2txB,eACtCppvB,EAAS98C,KAAM,mBAAoBuY,EAAM4txB,mBAGvC5txB,EAAMqvxB,cACR9qvB,EAAS98C,KAAM,iBAAkBuY,EAAMqvxB,eAAgB,GAIzD9qvB,EAAS98C,KAAM,eAAgB,MAC/BA,KAAK6kyB,aAAe,SAAS79xB,GAC3B,OAAc,OAAVA,QAA4BqB,IAAVrB,EAA4B,GAC3CA,CACT,EACAhH,KAAK29xB,OAAS,SAAS32xB,GAAS,OAAOA,CAAO,CAChD,CAqFA,SAAS6gyB,EAAetvxB,GACtB2lhB,EAAMt5gB,MAAM5kB,KAAM8kB,WAClBg4B,EAAS98C,KAAM,eAAe,GAE1BuY,EAAMuvxB,WACRhrvB,EAAS98C,KAAM,YAAauY,EAAMuvxB,YAAa,EAEnD,CAEA,SAASC,EAAexvxB,EAAOjO,GAC7B,IAAIu5G,EAAO7jH,KACPgoyB,EAAc,KAAMC,GAAajoyB,KAAKkoyB,QAE1CL,EAAejjxB,MAAM5kB,KAAM8kB,WAEvBmjxB,IACFnrvB,EAAS98C,KAAM,gBAAgB,WAAa,MAAO,CAAC,CAAG,IACvD88C,EAAS98C,KAAM,UAAW,CAAC,GAC3B88C,EAAS98C,KAAM,cAAe,IAC9B88C,EAAS98C,KAAM,WAAY,IAC3B88C,EAAS98C,KAAM,cAAc,WAAa,OAAO,CAAO,IACxD88C,EAAS98C,KAAM,aAAc4I,QAAQ2P,EAAMkV,YAGzClV,EAAMk+wB,UACR35uB,EAAS98C,KAAM,UAAW,IAAIolyB,EAAW7sxB,EAAMk+wB,QAASnsxB,GAAS,SAASlK,EAAMs9xB,GAC9E,OAAOx/P,EAAMnlgB,OAAO2kwB,EAAQpzxB,EAASlK,EACvC,KACA2xxB,EAAiB/xxB,KAAM,eAAe,WACpC,OAAOuY,EAAM4vxB,UAAYpoxB,OAAOwE,KAAKhM,EAAMk+wB,QAC7C,IAEIl+wB,EAAMhQ,QACRwpxB,EAAiB/xxB,KAAM,0BAA0B,WAI/C,IAHA,IAAIy2xB,EAAU5yqB,EAAK4yqB,QACf2R,EAAcvkrB,EAAKukrB,YAEdpnyB,EAAI,EAAGusM,EAAO66lB,EAAYxnyB,OAAQI,EAAIusM,EAAMvsM,IACnD,GAAIy1xB,EAAQ2R,EAAYpnyB,IAAIqnyB,eAC1B,OAAOD,EAAYpnyB,EAGzB,IAEA+wxB,EAAiB/xxB,KAAM,0BAA0B,WAK/C,IAJA,IAAIy2xB,EAAU5yqB,EAAK4yqB,QACf2R,EAAcvkrB,EAAKukrB,YACnB5J,EAAyB,GAEpBx9xB,EAAI,EAAGusM,EAAO66lB,EAAYxnyB,OAAQI,EAAIusM,EAAMvsM,IAC/Cy1xB,EAAQ2R,EAAYpnyB,IAAIsnyB,eAC1B9J,EAAuB58wB,KAAKwmxB,EAAYpnyB,IAG5C,OAAOw9xB,CACT,MAIAjmxB,EAAMC,WACRskC,EAAS98C,KAAM,WAAYuY,EAAMC,UACjCskC,EAAS98C,KAAM,cAAc,SAASI,GACpC,IAAK4nyB,EAAa,CAChBA,EAAc,CAAC,EACf,IAAK,IAAIhnyB,EAAI,EAAGA,EAAIuX,EAAMC,SAAS5X,OAAQI,IACzCgnyB,EAAYzvxB,EAAMC,SAASxX,KAAM,CAErC,CAEA,OAAOgnyB,EAAY5nyB,EACrB,IAAG,GAAO,IAGZ08C,EAAS98C,KAAM,gBAAiBuY,EAAMgwxB,eAAiB,MAEnDhwxB,EAAMrU,SACR44C,EAAS98C,KAAM,UAAWuY,EAAMrU,SAGA,kBAAvBqU,EAAMmtxB,aACf5ovB,EAAS98C,KAAM,kBAAmBuY,EAAMmtxB,cACD,kBAAvBntxB,EAAMmtxB,eACtB5ovB,EAAS98C,KAAM,qBAAsBuY,EAAMmtxB,aAAahnvB,QACxD5B,EAAS98C,KAAM,kBAAmBuY,EAAMmtxB,aAAannlB,KAEzD,CAEA,SAASiqlB,EAAUjwxB,EAAOjO,GACxB,IAAIu5G,EAAO7jH,KAAMioyB,GAAajoyB,KAAKkoyB,QAanC,GAZAL,EAAejjxB,MAAM5kB,KAAM8kB,WAEvBmjxB,GACFnrvB,EAAS98C,KAAM,gBAAgB,WAAa,MAAO,EAAI,IAGrDuY,EAAMmlxB,QACR3L,EAAiB/xxB,KAAM,UAAU,WAC/B,OAAOk+hB,EAAMnlgB,OAAOxgB,EAAMmlxB,OAAQpzxB,EACpC,IAGEtK,KAAK8nyB,UAAW,CAClB,IAAIW,EAAUzoyB,KAAKI,KACnB2xxB,EAAiB/xxB,KAAM,QAAQ,WAC7B,OAAO6jH,EAAK65qB,OAAOt9xB,MAAQqoyB,CAC7B,GACF,CACF,CAEA,SAASC,EAASnwxB,EAAOjO,GACvB,IAAI29xB,GAAajoyB,KAAKkoyB,QACtBL,EAAejjxB,MAAM5kB,KAAM8kB,WAEvBmjxB,IACFnrvB,EAAS98C,KAAM,gBAAgB,WAAa,MAAO,CAAC,CAAG,IACvD88C,EAAS98C,KAAM,MAAOk+hB,EAAMnlgB,OAAO,CAAC90B,KAAM,UAAWqG,IACrDwyC,EAAS98C,KAAM,QAASk+hB,EAAMnlgB,OAAO,CAAC90B,KAAM,UAAWqG,KAGrDiO,EAAM0M,KACR8swB,EAAiB/xxB,KAAM,OAAO,WAC5B,OAAOk+hB,EAAMnlgB,OAAOxgB,EAAM0M,IAAK3a,EACjC,IAEEiO,EAAMvR,OACR+qxB,EAAiB/xxB,KAAM,SAAS,WAC9B,OAAOk+hB,EAAMnlgB,OAAOxgB,EAAMvR,MAAOsD,EACnC,GAEJ,CAwCA,SAASq+xB,IACPzqQ,EAAMt5gB,MAAM5kB,KAAM8kB,WAElB,IAAI8jxB,EAAoB,CAAC,WAAY,QAAS,OAC9C5oyB,KAAK29xB,OAAS,SAAS32xB,GAGrB,OAFAA,EAAQhH,KAAKye,KAAOmqxB,EAAkBxnyB,QAAQpB,KAAKye,IAAIw7B,WAAa,EAClEjzC,GAAS,GAAKA,EACZhH,KAAKoguB,YACA1+tB,KAAKC,MAAMqF,GAGbA,GAAmC,oBAAnBA,EAAMzF,SAC3ByF,EAAMzF,WAAayF,CACvB,EAEAhH,KAAK6kyB,aAAe,SAAS79xB,GAC3B,OAAOhH,KAAKoguB,YAAc1+tB,KAAKQ,UAAU8E,GAASA,CACpD,CACF,CAsBA,SAAS6hyB,IACP3qQ,EAAMt5gB,MAAM5kB,KAAM8kB,WAClB9kB,KAAK29xB,OAAS,SAAS32xB,GACrB,IAAIi/C,EAAM2luB,EAAKt1qB,OAAO31E,OAAO35B,GAC7B,GAAIhH,KAAK2iyB,aAAe/W,EAAKG,UAAyC,oBAAtBH,EAAKlqvB,OAAO05E,MAAsB,CAQhF,IAAI0trB,EAAYld,EAAKlqvB,OAAO05E,MAAMn1D,EAAIrlD,OAAQqlD,GAC9CA,EAAIt6C,KAAK,GACTs6C,EAAM6ivB,CACR,CACA,OAAO7ivB,CACT,EACAjmD,KAAK6kyB,aAAejZ,EAAKt1qB,OAAOl2E,MAClC,CAEA,SAAS2owB,IACPF,EAAYjkxB,MAAM5kB,KAAM8kB,UAC1B,CAEA,SAASkkxB,IACP9qQ,EAAMt5gB,MAAM5kB,KAAM8kB,WAElB9kB,KAAK29xB,OAAS,SAAS32xB,GACrB,MAAqB,mBAAVA,EAA4BA,EACzB,OAAVA,QAA4BqB,IAAVrB,EAA4B,KACjC,SAAVA,CACT,CACF,CAlUAk3hB,EAAM+qQ,gBAAkB,CACtBhirB,UAAW,SACXiirB,OAAQ,QACRjxC,KAAM,UACN3pnB,MAAO,UACP66pB,WAAY,UACZC,WAAY,QACZ7+uB,KAAM,UAMR2ze,EAAMj2gB,MAAQ,CACZ,UAAa8/wB,EACb,KAAQS,EACR,IAAOE,EACP,QAAWM,EACX,UAiMF,SAAwBzwxB,GACtB,IAAIsrG,EAAO7jH,KAGX,GAFAk+hB,EAAMt5gB,MAAM5kB,KAAM8kB,WAEdvM,EAAMktxB,gBACR3ovB,EAAS98C,KAAM,kBAAmBuY,EAAMktxB,sBACnC,GAAI5hrB,EAAK4jrB,sBAAwBznyB,KAAKylyB,gBAC3C3ovB,EAAS98C,KAAM,kBAAmBA,KAAKylyB,sBAClC,GAAsB,WAAlBzlyB,KAAK4F,SACdk3C,EAAS98C,KAAM,kBAAmB,eAC7B,GAAsB,gBAAlBA,KAAK4F,SACdk3C,EAAS98C,KAAM,kBAAmB,gBAC7B,GAAIA,KAAKye,IACd,OAAQze,KAAKye,IAAIw7B,UACf,IAAK,OACL,IAAK,YACH6C,EAAS98C,KAAM,kBAAmB,iBAClC,MACF,IAAK,WACL,IAAK,QACL,IAAK,MACH88C,EAAS98C,KAAM,kBAAmB,WAKxCA,KAAK29xB,OAAS,SAAS32xB,GACrB,OAAc,OAAVA,QAA4BqB,IAAVrB,EAA4B,KACjB,oBAAtBA,EAAMqiyB,YAAmCriyB,EAC5B,kBAAVA,GAAuC,kBAAVA,EACpC4kxB,EAAKz5wB,KAAKm3xB,eAAetiyB,GAAS,IAC3C,EAEAhH,KAAK6kyB,aAAe,SAAS79xB,GAC3B,OAAO4kxB,EAAKz5wB,KAAKS,OAAO5L,EAAO68G,EAAK4hrB,gBACtC,CACF,EApOE,MA0PF,WACEvnQ,EAAMt5gB,MAAM5kB,KAAM8kB,WAElB9kB,KAAK29xB,OAAS,SAAS32xB,GACrB,OAAc,OAAVA,QAA4BqB,IAAVrB,EAA4B,KAC3Cm8C,WAAWn8C,EACpB,EACAhH,KAAK6kyB,aAAe7kyB,KAAK29xB,MAC3B,EAjQE,QAmQF,WACEz/P,EAAMt5gB,MAAM5kB,KAAM8kB,WAElB9kB,KAAK29xB,OAAS,SAAS32xB,GACrB,OAAc,OAAVA,QAA4BqB,IAAVrB,EAA4B,KAC3CytB,SAASztB,EAAO,GACzB,EACAhH,KAAK6kyB,aAAe7kyB,KAAK29xB,MAC3B,EA1QE,OAAUgL,EACV,OAAUI,EACV,OAAUF,GAGZ3qQ,EAAMt7gB,QAAU,SAAiBrK,EAAOjO,GACtC,GAAIiO,EAAMA,MAAO,CACf,IAAIgxxB,EAAWj/xB,EAAQmU,IAAIunxB,OAAOztxB,EAAMA,OACxC,IAAKgxxB,EACH,MAAM,IAAIppyB,MAAM,gCAAkCoY,EAAMA,OAG1D,OAAOgxxB,CACT,CACE,OAAO,IAEX,EAEArrQ,EAAMnlgB,OAAS,SAAgBxgB,EAAOjO,EAASiyM,GAC7C,GAAIhkM,EAAM2vxB,QAAS,OAAO3vxB,EAE1B,IAAIgxxB,EAAWrrQ,EAAMt7gB,QAAQrK,EAAOjO,GACpC,GAAIi/xB,EAAU,CACZ,IAAIC,EAAezpxB,OAAOwE,KAAKhM,GAC1BjO,EAAQ47xB,gBACXsD,EAAeA,EAAa/0xB,QAAO,SAASrU,GAC1C,OAAQA,EAAK+iH,MAAM,gBACrB,KAIF,IAAIsmrB,EAAc,WAChBF,EAASljxB,YAAYP,KAAK9lB,KAAMuY,EAAOjO,EAASiyM,EAClD,EAEA,OADAktlB,EAAYvpyB,UAAYqpyB,EACjB,IAAIE,CACb,CAEOlxxB,EAAMtU,OACLsU,EAAMk+wB,QAASl+wB,EAAMtU,KAAO,YACvBsU,EAAMmlxB,OAAQnlxB,EAAMtU,KAAO,OAC3BsU,EAAM0M,IAAK1M,EAAMtU,KAAO,MAC5BsU,EAAMtU,KAAO,UAIpB,IAAIylyB,EAAWnxxB,EAAMtU,KAKrB,GAJIi6hB,EAAM+qQ,gBAAgB1wxB,EAAMtU,QAC9BsU,EAAMtU,KAAOi6hB,EAAM+qQ,gBAAgB1wxB,EAAMtU,OAGvCi6hB,EAAMj2gB,MAAM1P,EAAMtU,MACpB,OAAO,IAAIi6hB,EAAMj2gB,MAAM1P,EAAMtU,MAAMsU,EAAOjO,EAASiyM,GAEnD,MAAM,IAAIp8M,MAAM,4BAA8BupyB,EAGpD,EAyPAxrQ,EAAM8nQ,OAAS,CACb+B,eAAgBA,EAChBS,UAAWA,EACXE,SAAUA,EACVC,YAAaA,EACbK,aAAcA,EACdD,YAAaA,GAMf9jlB,EAAOrtL,QAAUsmgB,yBCtZjB,IAAI6mP,EAAM/tvB,EAAQ,MAKlB+tvB,EAAIsa,eAAiBta,EAAI6G,KAAK/1mB,QAAQ,CAmBpCxvJ,YAAa,SAAwB27hB,IAChB,IAAfA,QAAsC35iB,IAAf25iB,IACzBA,EAAa,CAAC,KAAO,IAEvBhijB,KAAKgijB,WAAaA,CACpB,EAEAh8f,SAAU,SAAkBztC,EAAOsgD,EAAQ1xD,GAIzC,GAHAnH,KAAKga,OAAS,GACdha,KAAK2pyB,eAAepxxB,EAAOsgD,GAAU,CAAC,EAAG1xD,GAAW,UAEhDnH,KAAKga,OAAOpZ,OAAS,EAAG,CAC1B,IAAI2sC,EAAMvtC,KAAKga,OAAOgN,KAAK,QAG3B,MAFAumB,EAAM,cAAgBvtC,KAAKga,OAAOpZ,OAChC,0BAA4B2sC,EACxBw3uB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAMotC,GAC7B,CAACtmB,KAAM,2BAA4BjN,OAAQha,KAAKga,QACpD,CAAO,GAA2B,IAAvBha,KAAKga,OAAOpZ,OACrB,MAAMZ,KAAKga,OAAO,GAElB,OAAO,CAEX,EAEAsrqB,KAAM,SAAcr+pB,EAAMhnB,GACxBD,KAAKga,OAAO4H,KAAKmjwB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAMF,GAAU,CAACgnB,KAAMA,IAC7D,EAEA2ixB,kBAAmB,SAA2BrxxB,EAAOsgD,EAAQ1xD,GAC3D,GAAIoR,EAAMmrvB,WAAY,OAAO,EAG7B,IAAI5ytB,EADJ9wC,KAAK6pyB,aAAahxuB,EAAQ1xD,EAAS,CAAC,UAAW,aAE/C,IAAK,IAAInG,EAAI,EAAGuX,EAAMC,UAAYxX,EAAIuX,EAAMC,SAAS5X,OAAQI,IAAK,CAEhE,IAAIgG,EAAQ6xD,EADZ/nB,EAAYv4B,EAAMC,SAASxX,SAEbqH,IAAVrB,GAAiC,OAAVA,GACzBhH,KAAKslrB,KAAK,2BACR,yBAA4Bx0oB,EAAY,QAAW3pC,EAEzD,CAGA,IAAK2pC,KAAa+nB,EAChB,GAAK94C,OAAO7f,UAAU04B,eAAe9S,KAAK+yC,EAAQ/nB,GAAlD,CAEA,IAAIs2b,EAAavua,EAAO/nB,GACpB0lvB,EAAcj+wB,EAAMk+wB,QAAQ3lvB,GAEhC,QAAoBzoC,IAAhBmuxB,EAA2B,CAC7B,IAAIsT,EAAgB,CAAC3iyB,EAAS2pC,GAAW9pB,KAAK,KAC9ChnB,KAAK2pyB,eAAenT,EAAapvT,EAAY0iU,EAC/C,WAA0BzhyB,IAAf++d,GAA2C,OAAfA,GACrCpne,KAAKslrB,KAAK,sBACR,mBAAsBx0oB,EAAY,cAAiB3pC,EAVe,CAcxE,OAAO,CACT,EAEAwiyB,eAAgB,SAAwBpxxB,EAAOw4B,EAAO5pC,GACpD,OAAQoR,EAAMtU,MACZ,IAAK,YACH,OAAOjE,KAAK4pyB,kBAAkBrxxB,EAAOw4B,EAAO5pC,GAC9C,IAAK,OACH,OAAOnH,KAAK+pyB,aAAaxxxB,EAAOw4B,EAAO5pC,GACzC,IAAK,MACH,OAAOnH,KAAKgqyB,YAAYzxxB,EAAOw4B,EAAO5pC,GACxC,QACE,OAAOnH,KAAKiqyB,eAAe1xxB,EAAOw4B,EAAO5pC,GAE/C,EAEA4iyB,aAAc,SAAsBxxxB,EAAOsgD,EAAQ1xD,GACjD,GAAInH,KAAK6pyB,aAAahxuB,EAAQ1xD,EAAS,CAACmb,QAAS,CAC/CtiB,KAAKkqyB,cAAc3xxB,EAAOsgD,EAAOj4D,OAAQuG,EAAS,qBAElD,IAAK,IAAInG,EAAI,EAAGA,EAAI63D,EAAOj4D,OAAQI,IACjChB,KAAK2pyB,eAAepxxB,EAAMmlxB,OAAQ7kuB,EAAO73D,GAAImG,EAAU,IAAMnG,EAAI,IAErE,CACF,EAEAgpyB,YAAa,SAAqBzxxB,EAAOsgD,EAAQ1xD,GAC/C,GAAInH,KAAK6pyB,aAAahxuB,EAAQ1xD,EAAS,CAAC,UAAW,OAAQ,CAEzD,IAAIgjyB,EAAW,EACf,IAAK,IAAIp5vB,KAAS8nB,EACX94C,OAAO7f,UAAU04B,eAAe9S,KAAK+yC,EAAQ9nB,KAElD/wC,KAAK2pyB,eAAepxxB,EAAM0M,IAAK8rB,EACX5pC,EAAU,SAAY4pC,EAAQ,MAClD/wC,KAAK2pyB,eAAepxxB,EAAMvR,MAAO6xD,EAAO9nB,GACpB5pC,EAAU,KAAQ4pC,EAAQ,MAC9Co5vB,KAEFnqyB,KAAKkqyB,cAAc3xxB,EAAO4xxB,EAAUhjyB,EAAS,mBAC/C,CACF,EAEA8iyB,eAAgB,SAAwB1xxB,EAAOvR,EAAOG,GACpD,OAAQoR,EAAMtU,MACZ,KAAK,KACL,UAAKoE,EACL,IAAK,SACH,OAAOrI,KAAKoqyB,eAAe7xxB,EAAOvR,EAAOG,GAC3C,IAAK,SACL,IAAK,SACH,OAAOnH,KAAKqqyB,gBAAgBrjyB,EAAOG,GACrC,IAAK,UACL,IAAK,QACH,OAAOnH,KAAKsqyB,eAAe/xxB,EAAOvR,EAAOG,GAC3C,IAAK,UACH,OAAOnH,KAAK6pyB,aAAa7iyB,EAAOG,EAAS,CAAC,YAC5C,IAAK,YACH,OAAOnH,KAAK6pyB,aAAa7iyB,EAAOG,EAAS,CAAC7D,KACxC,iDAAkD,UAClD,qDACJ,QACE,OAAOtD,KAAKslrB,KAAK,aAAc,kBACd/sqB,EAAMtU,KAAO,QAAUkD,GAE9C,EAEAijyB,eAAgB,SAAwB7xxB,EAAOvR,EAAOG,GACpD,IAAIojyB,EAAa,CAAC,UACdhyxB,EAAM6ntB,cACRmqE,EAAaA,EAAW7nxB,OAAO,CAAC,SAAU,SAAU,aAExC,OAAV1b,GAAkBhH,KAAK6pyB,aAAa7iyB,EAAOG,EAASojyB,KACtDvqyB,KAAKwqyB,aAAajyxB,EAAOvR,EAAOG,GAChCnH,KAAKkqyB,cAAc3xxB,EAAOvR,EAAMpG,OAAQuG,EAAS,iBACjDnH,KAAKyqyB,gBAAgBlyxB,EAAOvR,EAAOG,GACnCnH,KAAK0qyB,YAAYnyxB,EAAOvR,EAAOG,GAEnC,EAEAujyB,YAAa,SAAqBnyxB,EAAOvR,EAAOG,GACpB,QAAtBoR,EAAgB,UACG,IAAjBvR,EAAMpG,QACRZ,KAAKslrB,KAAK,oBAAqB,0DACVt+qB,EAAO,SAAWG,EAG7C,EAEAsjyB,gBAAiB,SAAyBlyxB,EAAOvR,EAAOG,GAClDnH,KAAKgijB,WAAoB,cAA0B35iB,IAArBkQ,EAAe,UACzC,IAAIm/B,OAAOn/B,EAAe,SAAI+N,KAAKtf,IACvChH,KAAKslrB,KAAK,oBAAqB,mBAAqBt+qB,EAArB,mCACQuR,EAAe,QAAI,SACtDpR,GAGV,EAEA+iyB,cAAe,SAAuB3xxB,EAAOvR,EAAOG,EAASqjN,GACvDxqN,KAAKgijB,WAAgB,UACF35iB,IAAjBkQ,EAAW,KAAmBvR,EAAQuR,EAAW,KACnDvY,KAAKslrB,KAAK,gBAAiB,YAAc96d,EAAa,OAClDjyM,EAAW,IAAI,eAAiBvR,EAAQ,QAAUG,GAGtDnH,KAAKgijB,WAAgB,UACF35iB,IAAjBkQ,EAAW,KAAmBvR,EAAQuR,EAAW,KACnDvY,KAAKslrB,KAAK,gBAAiB,YAAc96d,EAAa,OAClDjyM,EAAW,IAAI,eAAiBvR,EAAQ,QAAUG,EAG5D,EAEAqjyB,aAAc,SAAuBjyxB,EAAOvR,EAAOG,GAC7CnH,KAAKgijB,WAAiB,WAAuB35iB,IAAlBkQ,EAAY,OAEH,IAAlCA,EAAY,KAAEnX,QAAQ4F,IACxBhH,KAAKslrB,KAAK,YAAa,yBAA2Bt+qB,EAA3B,kBACLuR,EAAY,KAAEyO,KAAK,KAAO,QAAU7f,EAG5D,EAEA0iyB,aAAc,SAAsB7iyB,EAAOG,EAASwjyB,EAAe1myB,GAGjE,GAAc,OAAV+C,QAA4BqB,IAAVrB,EAAqB,OAAO,EAGlD,IADA,IAAI4jyB,GAAmB,EACd5pyB,EAAI,EAAGA,EAAI2pyB,EAAc/pyB,OAAQI,IAAK,CAC7C,GAAgC,kBAArB2pyB,EAAc3pyB,IACvB,UAAWgG,IAAU2jyB,EAAc3pyB,GAAI,OAAO,OACzC,GAAI2pyB,EAAc3pyB,aAAc02C,QACrC,IAAK1wC,GAAS,IAAIzF,WAAW4hH,MAAMwnrB,EAAc3pyB,IAAK,OAAO,MACxD,CACL,GAAIgG,aAAiB2jyB,EAAc3pyB,GAAI,OAAO,EAC9C,GAAI+jxB,EAAI6G,KAAKkS,OAAO92xB,EAAO2jyB,EAAc3pyB,IAAK,OAAO,EAChDiD,GAAS2myB,IAAkBD,EAAgBA,EAAcvkxB,SAC9DukxB,EAAc3pyB,GAAK+jxB,EAAI6G,KAAKmS,SAAS4M,EAAc3pyB,GACrD,CACA4pyB,GAAmB,CACrB,CAEA,IAAIC,EAAe5myB,EACd4myB,IACHA,EAAeF,EAAc3jxB,KAAK,MAAMrmB,QAAQ,YAAa,WAG/D,IAAImqyB,EAAQD,EAAa1nrB,MAAM,aAAe,IAAM,GAGpD,OAFAnjH,KAAKslrB,KAAK,uBAAwB,YAAcn+qB,EAAU,WAChD2jyB,EAAQ,IAAMD,IACjB,CACT,EAEAP,eAAgB,SAAwB/xxB,EAAOvR,EAAOG,GACpD,GAAc,OAAVH,QAA4BqB,IAAVrB,EAAtB,CACA,GAAqB,kBAAVA,EAAoB,CAC7B,IAAI+jyB,EAAc5nvB,WAAWn8C,GACzB+jyB,EAAYxpyB,aAAeyF,IAAOA,EAAQ+jyB,EAChD,CACI/qyB,KAAK6pyB,aAAa7iyB,EAAOG,EAAS,CAAC,YACrCnH,KAAKkqyB,cAAc3xxB,EAAOvR,EAAOG,EAAS,gBANK,CAQnD,EAEAkjyB,gBAAiB,SAAyBrjyB,EAAOG,GAC/C,GAAc,OAAVH,QAA4BqB,IAAVrB,GACD,kBAAVA,KACPA,GAAqC,kBAArBA,EAAM64B,YAA1B,CACA,GAAIklvB,EAAI6G,KAAKG,SAAU,CACrB,IAAI8R,EAAS9Y,EAAI6G,KAAK31qB,OAAO4nrB,OAC7B,GAAI9Y,EAAI6G,KAAKlqvB,OAAO61E,SAASvwG,IAAUA,aAAiB62xB,EAAQ,MAClE,MACE,QAAoB,WAATt8qB,MAAmBv6G,aAAiBu6G,KAAM,OAGvD,IAAIt5F,EAAQ,CAAC,SAAU,SAAU,OAAQ,OAAQ,cAAe,YAChE,GAAIjhB,EACF,IAAK,IAAIhG,EAAI,EAAGA,EAAIinB,EAAMrnB,OAAQI,IAAK,CACrC,GAAI+jxB,EAAI6G,KAAKkS,OAAO92xB,EAAOihB,EAAMjnB,IAAK,OACtC,GAAI+jxB,EAAI6G,KAAKmS,SAAS/2xB,EAAMqf,eAAiB4B,EAAMjnB,GAAI,MACzD,CAGFhB,KAAKslrB,KAAK,uBAAwB,YAAcn+qB,EAAd,+DAhBuB,CAkB3D,2BC7QF,IAAI49wB,EAAM/tvB,EAAQ,MACd/F,EAAO8zvB,EAAIxpsB,SAAS61sB,KAKxBrM,EAAIyD,MAAMwiB,UAAYjmB,EAAI6G,KAAK/1mB,QAAQ,CAWnCxvJ,YAAa,SAAgB/b,GACzBA,EAAUA,GAAW,CAAC,EACtBtK,KAAKsK,QAAUA,EACftK,KAAKqkC,QAAU/5B,EAAQ+5B,QACvBrkC,KAAKo7xB,kBAAkB9wxB,GACvBtK,KAAKiryB,YAAc,CAAC,CACxB,EAKA7P,kBAAmB,SAA2B9wxB,GAE1C,GADAA,EAAUA,GAAW,CAAC,EACjBtK,KAAKqkC,QAEH,CACH,IAAIya,EAASimuB,EAAI6G,KAAKn0qB,KAAKz3G,KAAKqkC,QAAQya,QACxC9+C,KAAKqkC,QAAU,IAAIrkC,KAAKqkC,QAAQhe,YAAYm1wB,UAAU18uB,GACtD9+C,KAAKqkC,QAAQya,OAAO+Z,OAASkstB,EAAI6G,KAAK9/lB,MAAM9rL,KAAKqkC,QAAQya,OAAO+Z,QAAU,CAAC,EAAGvuD,EAAQuuD,OAC1F,MALI74D,KAAKqkC,QAAU,IAAI0gvB,EAAIyD,MAAMl+wB,EAMrC,EAKA4gyB,mBAAoB,SAA4BhrwB,GAG5C,IAAIirwB,EAAgBpmB,EAAI6G,KAAKn0qB,KAAKv3E,GAUlC,OATAirwB,EAAc1U,QAAU1R,EAAI6G,KAAKn0qB,KAAKv3E,EAAMu2vB,SAC5C1R,EAAI6G,KAAK9pN,KAAK5hiB,EAAMu2vB,SAAS,SAASr2xB,EAAMs9xB,GACxCyN,EAAc1U,QAAQr2xB,GAAQ2kxB,EAAI6G,KAAKn0qB,KAAKimrB,GAEvCA,EAAO93xB,UAAgC,SAApB83xB,EAAO93xB,WAC3BulyB,EAAc1U,QAAQr2xB,GAAMwF,SAAW,cACvCulyB,EAAc1U,QAAQr2xB,GAAMu2xB,aAAev2xB,EAEnD,IACO+qyB,CACX,EAKAC,iBAAkB,SAA0B55lB,GAExCA,EAAI+wM,YAAYt7Y,OAAS,MAEzB,IAAI43B,EAAY2yK,EAAIntK,QAAQ5lB,IAAI2stB,WAAW55hB,EAAI3yK,WAE3CqB,EAAQlgC,KAAKiryB,YAAYz5lB,EAAI3yK,WAC5BqB,IAEDlgC,KAAKiryB,YAAYz5lB,EAAI3yK,WAAaqB,EAAQlgC,KAAKkryB,mBAAmBrswB,EAAUqB,QAGhF,IAAIq+K,EAAMttL,EAAKo6wB,YAAY75lB,EAAI+wM,YAAY/kW,SAASh+B,KAAMqf,EAAUyswB,SAAUprwB,EAAOsxK,EAAI34I,QAEzF24I,EAAI+wM,YAAY/iY,KAAO++L,EACvB/M,EAAI+wM,YAAY/nX,KAAO,UAGhBg3K,EAAI+wM,YAAYlgZ,QAAQ,yBACxBmvM,EAAI+wM,YAAYlgZ,QAAQ,eACnC,EAuBAkpyB,uBAAwB,SAAgC1yuB,EAAQirB,EAASykC,GACrE,IAAI1E,EAAO7jH,KACPukC,EAAUvkC,KAAKqkC,QAAQgzvB,YAAY,mBAAoBx+tB,GAM3D,OAJAt0B,EAAQsmS,mBAAmB,SAC3BtmS,EAAQ2vE,GAAG,SAAS,SAASs9F,GACzB3tF,EAAKunrB,iBAAiB55lB,EAC1B,IACOjtK,EAAQqN,QAAQkyC,EAASykC,EACpC,2BCjHJ,IAAIqjqB,EAAQ50vB,EAAQ,OAChB+tvB,EAAM/tvB,EAAQ,MAqFlBiuL,EAAOrtL,QAAU,CACf4zwB,mBA9EF,SAA4BjnwB,GAE1B,IADcA,EAAQF,QAAQya,OAAOkxuB,kBACvB,OAAOzrvB,EACrB,IAAIwyvB,EAAiBxyvB,EAAQF,QAAQ5lB,IAAI2stB,WAAW7msB,EAAQ1F,WAE5D,GAaF,SAA6B0F,GAC3B,IAAI9lB,EAAM8lB,EAAQF,QAAQ5lB,IACtBs4wB,EAAiBt4wB,EAAI2stB,WAAW7msB,EAAQ1F,WACxC4swB,EAAsBhtxB,EAAI64wB,mBAAsB74wB,EAAI64wB,oBAAsB1L,EAAK70qB,OAAO0rrB,WAAW1L,EAAe32xB,MACpH,MAAqD,SAA7C22xB,EAAekC,4BAAgE,IAAxBwS,CACjE,CAlBMC,CAAoBnnwB,GAAU,OAAOA,EACzC,GAAIwyvB,EAAev5uB,UAAYu5uB,EAAev5uB,SAASmuvB,WAAY,CACjE,IACIA,EAoBR,SAA0BC,EAAoB/yuB,EAAQtgD,GAapD,OAZAqzwB,EAAK9pN,KAAKvpjB,EAAMk+wB,SAAS,SAASr2xB,EAAMs9xB,GACtC,IAAyB,IAArBA,EAAOiK,UAAoB,CAC7B,GAA4B,kBAAjB9uuB,EAAOz4D,IAAuC,KAAjBy4D,EAAOz4D,GAC7C,MAAMwrxB,EAAKrnxB,MAAM,IAAIpE,MAAS,CAC5BF,QAAS,aAAeG,EAAO,iCAC/B6mB,KAAM,qBAGV,IAAI4kxB,EAAQ,IAAIn0vB,OAAO,MAAQt3C,EAAO,MAAO,KAC7CwryB,EAAqBA,EAAmBjryB,QAAQkryB,EAAOhzuB,EAAOz4D,GAChE,CACF,IACOwryB,CACT,CAlCqBE,CADQ/U,EAAev5uB,SAASmuvB,WACKpnwB,EAAQs0B,OAAQk+tB,EAAe72vB,QAuCzF,SAA+Bsd,EAAUkB,GACnClB,EAASrW,OACXqW,EAASrW,KAAOuX,EAASlB,EAASrW,MAEhCqW,EAASvW,WACXuW,EAASvW,SAAWyX,EAASlB,EAASvW,SAE1C,CA7CI8kwB,CAAsBxnwB,EAAQg+W,YAAY/kW,SAAUmuvB,GAkDxD,SAA0B1kwB,GACxB,IAAIr9B,EAASq9B,EAASrlC,MAAM,KAExBoqyB,EAAc,0DAClBpgB,EAAK4G,UAAU5oxB,GAAQ,SAASE,GAC9B,IAAKA,EAAMlJ,QAAUkJ,EAAMlJ,OAAS,GAAKkJ,EAAMlJ,OAAS,GACtD,MAAMgrxB,EAAKrnxB,MAAM,IAAIpE,MAAS,CAC5B8mB,KAAM,kBACNhnB,QAAS,2EAGb,IAAK+ryB,EAAY1lxB,KAAKxc,GACpB,MAAMi7wB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MACvB,CAAC8mB,KAAM,kBAAmBhnB,QAAS6J,EAAQ,gCAEjD,GACF,CAjEImiyB,CAAiB1nwB,EAAQg+W,YAAY/kW,SAASvW,SAChD,CACA,OAAO1C,CACT,0BCtBA,IAAIqnvB,EAAO50vB,EAAQ,OACf4twB,EAAc5twB,EAAQ,OACtB8twB,EAAa9twB,EAAQ,OACrBw0wB,EAAqBx0wB,EAAAA,OAAAA,mBA8FzBiuL,EAAOrtL,QAAU,CACfkrwB,aA7FF,SAAsBtxlB,GACpB,IAAI+wM,EAAc/wM,EAAI+wM,YAClB9jY,EAAM+yL,EAAIntK,QAAQ5lB,IAClBmC,EAASnC,EAAI+mxB,aAAe,IAAM/mxB,EAAI2stB,WAAW55hB,EAAI3yK,WAAWz+B,KAChEo+C,EAAU//B,EAAI8mxB,aAAe,MAC7BrlwB,EAAQzhB,EAAI2stB,WAAW55hB,EAAI3yK,WAAWqB,MACtCygK,EAAU,IAAIikmB,EAEF,IAAZpmvB,IAAeA,EAAU,OAEzB//B,EAAIiixB,qBACDn+Y,EAAY1pV,SACf0pV,EAAY1pV,OAAS,CAAC,GAGxB94C,OAAOkZ,OAAOspX,EAAY1pV,OAAQ24I,EAAI34I,SAGxC0pV,EAAY/nX,KAAOmmK,EAAQqT,MAAMxC,EAAI34I,QAAU,CAAC,EAAG34B,GACnDqiX,EAAYlgZ,QAAQ,gBAAkB,0BAA4Bm8C,EAClE+jW,EAAYlgZ,QAAQ,gBAAkBue,EAEtC4qxB,EAAmBh6lB,EACrB,EAuEEuxlB,aArEF,SAAsBrxlB,GACpB,IAAIntM,EAAQ,CAAC,EACTi0xB,EAAe9mlB,EAAK8mlB,aAOxB,GALAj0xB,EAAM0iB,KAAOuxwB,EAAan2xB,QAAQ,qBAAuB,eAC/B,kBAAfkC,EAAM0iB,OACf1iB,EAAM0iB,KAAO1iB,EAAM0iB,KAAKrlB,MAAM,KAAK,IAGjC42xB,EAAah+vB,KAAK55B,OAAS,EAC7B,IACE,IAAIb,EAAI2B,KAAKC,MAAM62xB,EAAah+vB,KAAKj5B,YAEjC0lB,EAAOlnB,EAAEmsyB,QAAUnsyB,EAAEknB,MAAQlnB,EAAEgqG,KAgBnC,IAAK,IAAI9kF,KAfLgC,IACF1iB,EAAM0iB,KAAOA,EAAKrlB,MAAM,KAAKge,OAEZ,0BAAfrb,EAAM0iB,KACR1iB,EAAMtE,QAAU,sCAEhBsE,EAAMtE,QAAWF,EAAEE,SAAWF,EAAEiqG,SAAW,KAS7BjqG,GAAK,CAAC,EACR,SAARklB,GAA0B,YAARA,IAGtB1gB,EAAM,IAAM0gB,EAAM,KAAO,aAAeA,EAAM,gBAC9ClF,OAAOC,eAAezb,EAAO0gB,EAAK,CAChCje,MAAOjH,EAAEklB,GACT9E,YAAY,EACZF,UAAU,IAGhB,CAAE,MAAOlgB,GACPwE,EAAMiiD,WAAagyuB,EAAahyuB,WAChCjiD,EAAMtE,QAAUu4xB,EAAaqI,aAC/B,MAEAt8xB,EAAMiiD,WAAagyuB,EAAahyuB,WAChCjiD,EAAMtE,QAAUu4xB,EAAahyuB,WAAWjlD,WAG1CmwM,EAAKntM,MAAQqnxB,EAAKrnxB,MAAM,IAAIpE,MAASoE,EACvC,EAoBEyziB,YAlBF,SAAqBtmW,GACnB,IAAIl3K,EAAOk3K,EAAK8mlB,aAAah+vB,KAAKj5B,YAAc,KAChD,IAAyD,IAArDmwM,EAAKntK,QAAQF,QAAQya,OAAOywuB,qBAC9B79kB,EAAK/nM,KAAOjI,KAAKC,MAAM64B,OAClB,CACL,IACIjiB,EADYm5L,EAAKntK,QAAQF,QAAQ5lB,IAAI2stB,WAAW15hB,EAAKntK,QAAQ1F,WAC3C6F,QAAU,CAAC,EAC7B0qE,EAAS,IAAI01rB,EACjBpzlB,EAAK/nM,KAAOylG,EAAOztG,MAAM64B,EAAMjiB,EACjC,CACF,0BC5FA,IAAIwswB,EAAM/tvB,EAAQ,MACd40vB,EAAO50vB,EAAQ,OACfm1wB,EAAuBn1wB,EAAQ,OAC/BkngB,EAAQlngB,EAAQ,MAChBw0wB,EAAqBx0wB,EAAAA,OAAAA,mBAqGzBiuL,EAAOrtL,QAAU,CACfkrwB,aApGF,SAAsBtxlB,GACpB,IAAI3yK,EAAY2yK,EAAIntK,QAAQ5lB,IAAI2stB,WAAW55hB,EAAI3yK,WAC3C0jX,EAAc/wM,EAAI+wM,YACtBA,EAAYlgZ,QAAQ,gBAClB,mDACFkgZ,EAAY1pV,OAAS,CACnBu/B,QAASo5G,EAAIntK,QAAQ5lB,IAAIg3C,WACzB8vI,OAAQ1mK,EAAUz+B,OAKN,IAAI+ryB,GACV7owB,UAAUkuK,EAAI34I,OAAQh6B,EAAUqB,OAAO,SAAS9/B,EAAM4G,GAC5Du7Y,EAAY1pV,OAAOz4D,GAAQ4G,CAC7B,IACAu7Y,EAAY/nX,KAAOoxvB,EAAK4X,oBAAoBjhZ,EAAY1pV,QAExD2yuB,EAAmBh6lB,EACrB,EAkFEuxlB,aAhFF,SAAsBrxlB,GACpB,IAAI/nM,EAAM6wB,EAAOk3K,EAAK8mlB,aAAah+vB,KAAKj5B,WACxC,GAAIi5B,EAAK2oF,MAAM,8BACbx5G,EAAO,CACLogG,KAAM,mBACNC,QAAS,qBAAuB0nG,EAAKntK,QAAQ1F,gBAG/C,IACEl1B,GAAO,IAAIo7wB,EAAIiH,IAAIC,QAAStqxB,MAAM64B,EACpC,CAAE,MAAOz6B,GACP4J,EAAO,CACLogG,KAAM2nG,EAAK8mlB,aAAahyuB,WACxBwjD,QAAS0nG,EAAK8mlB,aAAaqI,cAE/B,CAGEl3xB,EAAKolG,YAAc2iG,EAAK3iG,YAAW2iG,EAAK3iG,UAAYplG,EAAKolG,WACzDplG,EAAKwmF,SAAQxmF,EAAOA,EAAKwmF,QACzBxmF,EAAKxJ,QAAOwJ,EAAOA,EAAKxJ,OACxBwJ,EAAKogG,KACP2nG,EAAKntM,MAAQqnxB,EAAKrnxB,MAAM,IAAIpE,MAAS,CACnC8mB,KAAMtd,EAAKogG,KACX9pG,QAAS0J,EAAKqgG,UAGhB0nG,EAAKntM,MAAQqnxB,EAAKrnxB,MAAM,IAAIpE,MAAS,CACnC8mB,KAAMyqL,EAAK8mlB,aAAahyuB,WACxBvmD,QAAS,MAGf,EAiDE+3iB,YA/CF,SAAqBtmW,GACnB,IAAIF,EAAME,EAAKntK,QAEXhsB,EADYi5L,EAAIntK,QAAQ5lB,IAAI2stB,WAAW55hB,EAAI3yK,WACzB6F,QAAU,CAAC,EAC7B0nwB,EAAY7zxB,EAEhB,GAAI6zxB,EAAU7D,cAAe,CAC3B,IAAIztD,EAAM58M,EAAMnlgB,OAAO,CAAC90B,KAAM,cAC9B62uB,EAAI27C,QAAQ2V,EAAU7D,eAAiBhwxB,EACvCuiuB,EAAIstD,YAAc,CAACgE,EAAU7D,eAC7B3c,EAAK9uuB,SAASvkC,EAAO,OAAQA,EAAMgwxB,eACnChwxB,EAAQuiuB,CACV,CAEA,IAAI1roB,EAAS,IAAI21qB,EAAIiH,IAAIC,OAGzB,GAAI1zwB,GAASA,EAAMk+wB,UAAYl+wB,EAAMk+wB,QAAQ4V,eAAgB,CAC3D,IAAIC,EAAiBpuQ,EAAMnlgB,OACzB,CAAE90B,KAAM,UACR,CAAEwa,IAAK,CAAEw7B,SAAU,UACnB,aAEF1hC,EAAMk+wB,QAAQ4V,eAAiBC,CACjC,CAEA,IAAI3iyB,EAAOylG,EAAOztG,MAAM+vM,EAAK8mlB,aAAah+vB,KAAKj5B,WAAYgX,GAC3Dm5L,EAAK3iG,UAAYplG,EAAK0iyB,gBAAkB1iyB,EAAKolG,UAEzCplG,EAAK0iyB,uBAAuB1iyB,EAAK0iyB,eAEjCD,EAAU7D,eACR5+xB,EAAKyiyB,EAAU7D,iBACjB3c,EAAKv0vB,OAAO1tB,EAAMA,EAAKyiyB,EAAU7D,uBAC1B5+xB,EAAKyiyB,EAAU7D,gBAI1B72lB,EAAK/nM,KAAOA,CACd,0BCpGA,IAAIiixB,EAAO50vB,EAAQ,OACfw0wB,EAAqBx0wB,EAAAA,OAAAA,mBAMzB,SAASq0wB,EAAYkB,EAAcC,EAAetswB,EAAO24B,GACvD,IAAI0lJ,EAAM,CAACgulB,EAAcC,GAAexlxB,KAAK,KAC7Cu3L,EAAMA,EAAI59M,QAAQ,OAAQ,KAE1B,IAAI2sM,EAAc,CAAC,EAAGm/lB,GAAiB,EAiCvC,GAhCA7gB,EAAK9pN,KAAK5hiB,EAAMu2vB,SAAS,SAAUr2xB,EAAMs9xB,GACvC,IAAIt2T,EAAavua,EAAOz4D,GACxB,GAAmB,OAAfgne,QAAsC/+d,IAAf++d,EAC3B,GAAwB,QAApBs2T,EAAO93xB,SAAoB,CAC7B,IAAIimyB,EAAQ,IAAIn0vB,OAAO,MAAQgmvB,EAAOt9xB,KAAO,aAC7Cm+M,EAAMA,EAAI59M,QAAQkryB,GAAO,SAASnxwB,EAAGgywB,GAEnC,OADSA,EAAO9gB,EAAKp6uB,cAAgBo6uB,EAAK+gB,WAChCjsyB,OAAO0me,GACnB,GACF,KAA+B,gBAApBs2T,EAAO93xB,WAChB6myB,GAAiB,EAEG,SAAhB/O,EAAOz5xB,KACTqpM,EAAYowlB,EAAOt9xB,MAAQgne,EAAWl3d,KAAI,SAAS2/F,GACjD,OAAO+7qB,EAAK+gB,UAAUjP,EAAOA,OAAOmH,aAAah1rB,GAAKtuG,WACxD,IACyB,QAAhBm8xB,EAAOz5xB,KAChB2nxB,EAAK9pN,KAAK16F,GAAY,SAASnid,EAAKje,GAC9Bsb,MAAMC,QAAQvb,GAChBsmM,EAAYroL,GAAOje,EAAMkJ,KAAI,SAAS2/F,GACpC,OAAO+7qB,EAAK+gB,UAAUjsyB,OAAOmvG,GAC/B,IAEAy9F,EAAYroL,GAAO2mwB,EAAK+gB,UAAUjsyB,OAAOsG,GAE7C,IAEAsmM,EAAYowlB,EAAOt9xB,MAAQwrxB,EAAK+gB,UAAUjP,EAAOmH,aAAaz9T,GAAY7le,YAGhF,IAEIkryB,EAAgB,CAClBlulB,GAAQA,EAAIn9M,QAAQ,MAAQ,EAAI,IAAM,IACtC,IAAI83C,EAAQ,GACZ0yuB,EAAK4G,UAAUzywB,OAAOwE,KAAK+oL,GAAal9J,QAAQ,SAASnrB,GAClD3C,MAAMC,QAAQ+qL,EAAYroL,MAC7BqoL,EAAYroL,GAAO,CAACqoL,EAAYroL,KAElC,IAAK,IAAIjkB,EAAI,EAAGA,EAAIssM,EAAYroL,GAAKrkB,OAAQI,IAC3Ck4C,EAAMt3B,KAAKgqwB,EAAK+gB,UAAUjsyB,OAAOukB,IAAQ,IAAMqoL,EAAYroL,GAAKjkB,GAEpE,IACAu9M,GAAOrlK,EAAMlyB,KAAK,IACpB,CAEA,OAAOu3L,CACT,CAmFA0G,EAAOrtL,QAAU,CACfkrwB,aAtDF,SAAsBtxlB,IAtFtB,SAAwBA,GACtBA,EAAI+wM,YAAYt7Y,OAASuqM,EAAIntK,QAAQ5lB,IAAI2stB,WAAW55hB,EAAI3yK,WAAW+twB,UACrE,CAqFEC,CAAer7lB,GA7BjB,SAAqBA,GACnB,IAAI3yK,EAAY2yK,EAAIntK,QAAQ5lB,IAAI2stB,WAAW55hB,EAAI3yK,WAC3CqB,EAAQrB,EAAUqB,MAElBq+K,EAAM8slB,EAAY75lB,EAAI+wM,YAAY/kW,SAASh+B,KAAMqf,EAAUyswB,SAAUprwB,EAAOsxK,EAAI34I,QACpF24I,EAAI+wM,YAAY/iY,KAAO++L,CACzB,CAwBEuulB,CAAYt7lB,GAtBd,SAAyBA,GACvB,IAAI3yK,EAAY2yK,EAAIntK,QAAQ5lB,IAAI2stB,WAAW55hB,EAAI3yK,WAC/C+svB,EAAK9pN,KAAKjjiB,EAAUqB,MAAMu2vB,SAAS,SAAUr2xB,EAAMs9xB,GACjD,IAAI12xB,EAAQwqM,EAAI34I,OAAOz4D,GACT,OAAV4G,QAA4BqB,IAAVrB,IAEE,YAApB02xB,EAAO93xB,UAA0C,QAAhB83xB,EAAOz5xB,KAC1C2nxB,EAAK9pN,KAAK96jB,GAAO,SAASie,EAAK8nxB,GAC7Bv7lB,EAAI+wM,YAAYlgZ,QAAQq7xB,EAAOt9xB,KAAO6kB,GAAO8nxB,CAC/C,IAC6B,WAApBrP,EAAO93xB,WAChBoB,EAAQ02xB,EAAOmH,aAAa79xB,GAAOzF,WAC/Bm8xB,EAAOt9D,cACTp5tB,EAAQ4kxB,EAAKt1qB,OAAOl2E,OAAOp5B,IAE7BwqM,EAAI+wM,YAAYlgZ,QAAQq7xB,EAAOt9xB,MAAQ4G,GAE3C,GACF,CAKEgmyB,CAAgBx7lB,GAChBg6lB,EAAmBh6lB,EACrB,EAkDEuxlB,aAhDF,WACA,EAgDE/qP,YA9CF,SAAqBtmW,GACnB,IAAIF,EAAME,EAAKntK,QACX56B,EAAO,CAAC,EACRtJ,EAAIqxM,EAAK8mlB,aAET9zvB,EADY8sK,EAAIntK,QAAQ5lB,IAAI2stB,WAAW55hB,EAAI3yK,WACxB6F,OAGnBriC,EAAU,CAAC,EACfupxB,EAAK9pN,KAAKzhkB,EAAEgC,SAAS,SAAU44B,EAAGza,GAChCne,EAAQ44B,EAAEpb,eAAiBW,CAC7B,IAEAorwB,EAAK9pN,KAAKp9hB,EAAO+xvB,SAAS,SAASr2xB,EAAMs9xB,GACvC,IAAIj8xB,GAAUi8xB,EAAOt9xB,MAAQA,GAAMyf,cACnC,GAAwB,YAApB69wB,EAAO93xB,UAA0C,QAAhB83xB,EAAOz5xB,KAAgB,CAC1D0F,EAAKvJ,GAAQ,CAAC,EACd,IAAIwF,EAAW83xB,EAAO9G,eAAiB8G,EAAOt9xB,KAAO,GACjDmmH,EAAU,IAAI7uE,OAAO,IAAM9xC,EAAW,OAAQ,KAClDgmxB,EAAK9pN,KAAKzhkB,EAAEgC,SAAS,SAAU44B,EAAGza,GAChC,IAAItb,EAAS+1B,EAAEkoF,MAAMoD,GACN,OAAXrhH,IACFyE,EAAKvJ,GAAM8E,EAAO,IAAMsb,EAE5B,GACF,MAAO,GAAwB,WAApBk9wB,EAAO93xB,UAChB,QAAwByC,IAApBhG,EAAQZ,GAAuB,CACjC,IAAIuF,EAAQ02xB,EAAOt9D,YACjBwrD,EAAKt1qB,OAAO31E,OAAOt+B,EAAQZ,IAC3BY,EAAQZ,GACVkI,EAAKvJ,GAAQs9xB,EAAOC,OAAO32xB,EAC7B,MAC6B,eAApB02xB,EAAO93xB,WAChB+D,EAAKvJ,GAAQq0B,SAASp0B,EAAEmmD,WAAY,IAExC,IAEAkrJ,EAAK/nM,KAAOA,CACd,EASE0hyB,YAAaA,0BClJf,IAAIzf,EAAO50vB,EAAQ,OACfo6vB,EAAOp6vB,EAAQ,OACfk6vB,EAAOl6vB,EAAQ,OACf4twB,EAAc5twB,EAAQ,OACtB8twB,EAAa9twB,EAAQ,OAErBi2wB,EAAuB,CAAC,MAAO,OAAQ,UAqC3C,SAASC,EAAuB17lB,EAAKoslB,GACnC,IAAKpslB,EAAI+wM,YAAYlgZ,QAAQ,gBAAiB,CAC5C,IAAI4B,EAAO25xB,EAAW,sBAAwB,mBAC9CpslB,EAAI+wM,YAAYlgZ,QAAQ,gBAAkB4B,CAC5C,CACF,CAoDAghN,EAAOrtL,QAAU,CACfkrwB,aAnDF,SAAsBtxlB,GACpB4/kB,EAAK0R,aAAatxlB,GAGdy7lB,EAAqB7ryB,QAAQowM,EAAI+wM,YAAYt7Y,QAAU,GApC7D,SAAsBuqM,GACpB,IAAI7Q,EAAU,IAAIikmB,EACd1kwB,EAAQsxK,EAAIntK,QAAQ5lB,IAAI2stB,WAAW55hB,EAAI3yK,WAAWqB,MAEtD,GAAIA,EAAMh8B,QAAS,CACjB,IAAI20D,EACAyluB,EAAep+vB,EAAMu2vB,QAAQv2vB,EAAMh8B,SACvC20D,EAAS24I,EAAI34I,OAAO34B,EAAMh8B,SAEA,cAAtBo6xB,EAAar6xB,MACfutM,EAAI+wM,YAAY/nX,KAAOmmK,EAAQqT,MAAMn7I,GAAU,CAAC,EAAGyluB,GACnD4O,EAAuB17lB,SACHnpM,IAAXwwD,IAET24I,EAAI+wM,YAAY/nX,KAAOq+B,GACG,WAAtByluB,EAAar6xB,MAAqBq6xB,EAAah+qB,cACjD4srB,EAAuB17lB,GAAK,GAGlC,MACEA,EAAI+wM,YAAY/nX,KAAOmmK,EAAQqT,MAAMxC,EAAI34I,OAAQ34B,GACjDgtwB,EAAuB17lB,EAE3B,CAcI27lB,CAAa37lB,EAEjB,EA6CEuxlB,aA3CF,SAAsBrxlB,GACpBw/kB,EAAK6R,aAAarxlB,EACpB,EA0CEsmW,YAxCF,SAAqBtmW,GACnB0/kB,EAAKp5O,YAAYtmW,GAEjB,IAAIF,EAAME,EAAKntK,QACX1F,EAAY2yK,EAAIntK,QAAQ5lB,IAAI2stB,WAAW55hB,EAAI3yK,WAC3Cif,EAAQ0zJ,EAAIntK,QAAQ5lB,IAAI2stB,WAAW55hB,EAAI3yK,WAAW6F,QAAU,CAAC,EAIjE,GAFqB7F,EAAUoiwB,eAE3BnjvB,EAAM55C,QAAS,CACjB,IAAI27xB,EAAgB/hvB,EAAM24uB,QAAQ34uB,EAAM55C,SACpCs2B,EAAOk3K,EAAK8mlB,aAAah+vB,KAC7B,GAAIqlwB,EAAc4G,cAChBr3rB,EAAS,IAAI01rB,EACbpzlB,EAAK/nM,KAAKzF,SAAW0nxB,EAAKE,kBACa,IAArC/G,IAAIgc,WAAWC,kBAA0BtvlB,EAAK8mlB,aAAavirB,OAASz7E,EACpE40E,EACAywrB,QAEG,GAA2B,cAAvBA,EAAc57xB,MAA+C,SAAvB47xB,EAAc57xB,KAAiB,CAC9E,IAAImrG,EAAS,IAAI01rB,EACjBpzlB,EAAK/nM,KAAKm0C,EAAM55C,SAAWkrG,EAAOztG,MAAM64B,EAAMqlwB,EAChD,KAAkC,WAAvBA,EAAc57xB,MAAqB47xB,EAAcv/qB,YAC1DoxF,EAAK/nM,KAAKm0C,EAAM55C,SAAWs2B,EAE3Bk3K,EAAK/nM,KAAKm0C,EAAM55C,SAAW27xB,EAAclC,OAAOnjwB,EAEpD,KAAO,CACL,IAAI7wB,EAAO+nM,EAAK/nM,KAChBunxB,EAAKl5O,YAAYtmW,GACjBA,EAAK/nM,KAAOiixB,EAAK9/lB,MAAMniL,EAAM+nM,EAAK/nM,KACpC,CACF,EASEq5xB,mBAhGF,SAA4BxxlB,QAGNnpM,IAFAujxB,EAAKkU,uBAAuBtulB,IAG9Cy7lB,EAAqB7ryB,QAAQowM,EAAI+wM,YAAYt7Y,SAAW,UAEjDuqM,EAAI+wM,YAAYlgZ,QAAQ,iBAEnC,0BChBA,IAAI0ixB,EAAM/tvB,EAAQ,MACd40vB,EAAO50vB,EAAQ,OACfo6vB,EAAOp6vB,EAAQ,OAqGnBiuL,EAAOrtL,QAAU,CACfkrwB,aA7EF,SAAsBtxlB,GACpB4/kB,EAAK0R,aAAatxlB,GAGd,CAAC,MAAO,QAAQpwM,QAAQowM,EAAI+wM,YAAYt7Y,QAAU,GA3BxD,SAAsBuqM,GACpB,IAAItxK,EAAQsxK,EAAIntK,QAAQ5lB,IAAI2stB,WAAW55hB,EAAI3yK,WAAWqB,MAClDygK,EAAU,IAAIoklB,EAAIiH,IAAIuF,QACtB14tB,EAAS24I,EAAI34I,OAEb30D,EAAUg8B,EAAMh8B,QACpB,GAAIA,EAAS,CACX,IAAI27xB,EAAgB3/vB,EAAMu2vB,QAAQvyxB,GAElC,QAAemE,KADfwwD,EAASA,EAAO30D,IACU,OAE1B,GAA2B,cAAvB27xB,EAAc57xB,KAAsB,CACtC,IAAI6yH,EAAc+oqB,EAAcz/xB,KAChCoxM,EAAI+wM,YAAY/nX,KAAOmmK,EAAQysmB,MAAMv0uB,EAAQgnuB,EAAe/oqB,GAAa,EAC3E,MACE06E,EAAI+wM,YAAY/nX,KAAOq+B,CAE3B,MACE24I,EAAI+wM,YAAY/nX,KAAOmmK,EAAQysmB,MAAMv0uB,EAAQ34B,EAAOA,EAAM9/B,MACxD8/B,EAAM3nB,OAASqzwB,EAAK70qB,OAAOs2rB,WAAW77lB,EAAI3yK,WAAa,UAE7D,CAOIsuwB,CAAa37lB,EAEjB,EAuEEuxlB,aArEF,SAAsBrxlB,GAGpB,IAAI/nM,EAFJynxB,EAAK2R,aAAarxlB,GAGlB,IACE/nM,GAAO,IAAIo7wB,EAAIiH,IAAIC,QAAStqxB,MAAM+vM,EAAK8mlB,aAAah+vB,KAAKj5B,WAC3D,CAAE,MAAOxB,GACP4J,EAAO,CACLogG,KAAM2nG,EAAK8mlB,aAAahyuB,WACxBwjD,QAAS0nG,EAAK8mlB,aAAaqI,cAE/B,CAEIl3xB,EAAKwmF,SAAQxmF,EAAOA,EAAKwmF,QACzBxmF,EAAKxJ,QAAOwJ,EAAOA,EAAKxJ,OACxBwJ,EAAKogG,KACP2nG,EAAKntM,MAAQqnxB,EAAKrnxB,MAAM,IAAIpE,MAAS,CACnC8mB,KAAMtd,EAAKogG,KACX9pG,QAAS0J,EAAKqgG,UAGhB0nG,EAAKntM,MAAQqnxB,EAAKrnxB,MAAM,IAAIpE,MAAS,CACnC8mB,KAAMyqL,EAAK8mlB,aAAahyuB,WACxBvmD,QAAS,MAGf,EA4CE+3iB,YA1CF,SAAqBtmW,GAGnB,IAAItiG,EAFJgirB,EAAKp5O,YAAYtmW,GAGjB,IAAIF,EAAME,EAAKntK,QACX/J,EAAOk3K,EAAK8mlB,aAAah+vB,KACzBqE,EAAY2yK,EAAIntK,QAAQ5lB,IAAI2stB,WAAW55hB,EAAI3yK,WAC3C6F,EAAS7F,EAAU6F,OAInBxgC,GAFiB26B,EAAUoiwB,eAEjBv8vB,EAAOxgC,SACrB,GAAIA,EAAS,CACX,IAAI27xB,EAAgBn7vB,EAAO+xvB,QAAQvyxB,GAC/B27xB,EAAc4G,eAChBr3rB,EAAS,IAAI21qB,EAAIiH,IAAIC,OACrBv6kB,EAAK/nM,KAAKzF,GAAW0nxB,EAAKE,kBACa,IAArC/G,EAAIgc,WAAWC,kBAA0BtvlB,EAAK8mlB,aAAavirB,OAASy7F,EAAK8mlB,aAAah+vB,KACtF40E,EACAywrB,IAE8B,cAAvBA,EAAc57xB,MACvBmrG,EAAS,IAAI21qB,EAAIiH,IAAIC,OACrBv6kB,EAAK/nM,KAAKzF,GAAWkrG,EAAOztG,MAAM64B,EAAKj5B,WAAYs+xB,IACnB,WAAvBA,EAAc57xB,MAAqB47xB,EAAcv/qB,YAC1DoxF,EAAK/nM,KAAKzF,GAAWs2B,EAErBk3K,EAAK/nM,KAAKzF,GAAW27xB,EAAclC,OAAOnjwB,EAE9C,MAAO,GAAIA,EAAK55B,OAAS,EAAG,CAE1B,IAAI+I,GADJylG,EAAS,IAAI21qB,EAAIiH,IAAIC,QACHtqxB,MAAM64B,EAAKj5B,WAAYmjC,GACzCknvB,EAAKv0vB,OAAOq6K,EAAK/nM,KAAMA,EACzB,CACF,0BClGA,IAAIiixB,EAAO50vB,EAAQ,OAEnB,SAASm1wB,IACT,CAMA,SAASmB,EAAQ/0xB,GACf,OAAIA,EAAMg1xB,aAAsC,QAAvBh1xB,EAAMkG,IAAIw7B,SAC1B1hC,EAAMnY,KAENmY,EAAMnY,KAAK,GAAGoB,cAAgB+W,EAAMnY,KAAKyF,OAAO,EAE3D,CAEA,SAAS2nyB,EAAmB9uvB,EAAQ++uB,EAAQ3/uB,EAAOn1B,GACjDijwB,EAAK9pN,KAAKhkhB,EAAM24uB,SAAS,SAASr2xB,EAAMs9xB,GACtC,IAAI12xB,EAAQy2xB,EAAOr9xB,GACnB,GAAc,OAAV4G,QAA4BqB,IAAVrB,EAAtB,CAEA,IAAIu1M,EAAa+wlB,EAAQ5P,GAEzB+P,EADAlxlB,EAAa79J,EAASA,EAAS,IAAM69J,EAAaA,EACtBv1M,EAAO02xB,EAAQ/0wB,EAJM,CAKnD,GACF,CAyCA,SAAS8kxB,EAAgBrtyB,EAAM4G,EAAO82C,EAAOn1B,GAC7B,OAAV3hB,QAA4BqB,IAAVrB,IACH,cAAf82C,EAAM75C,KACRupyB,EAAmBptyB,EAAM4G,EAAO82C,EAAOn1B,GACf,SAAfm1B,EAAM75C,KA/BnB,SAAuB7D,EAAMo7G,EAAM19D,EAAOn1B,GACxC,IAAI+kxB,EAAc5vvB,EAAM4/uB,QAAU,CAAC,EAEf,IAAhBlirB,EAAK56G,OAKTgrxB,EAAK4G,UAAUh3qB,GAAM,SAAUh7F,EAAG3f,GAChC,IAAI45E,EAAS,KAAO55E,EAAI,GACxB,GAA2B,QAAvBi9C,EAAMr/B,IAAIw7B,SAEZwgC,GAAkB,QACb,GAAI38B,EAAMgqvB,WACf,GAAI4F,EAAYttyB,KAAM,CACpB,IAAI84C,EAAQ94C,EAAKwB,MAAM,KACvBs3C,EAAMt5B,MACNs5B,EAAMt3B,KAAK0rxB,EAAQI,IACnBttyB,EAAO84C,EAAMlyB,KAAK,IACpB,OAEAyzD,EAAS,KAAOiztB,EAAYttyB,KAAOstyB,EAAYttyB,KAAO,UAAYq6E,EAEpEgztB,EAAgBrtyB,EAAOq6E,EAAQj6D,EAAGktxB,EAAa/kxB,EACjD,IApBEA,EAAG7C,KAAK9lB,KAAMI,EAAM,KAqBxB,CAOIutyB,CAAcvtyB,EAAM4G,EAAO82C,EAAOn1B,GACV,QAAfm1B,EAAM75C,KA7CnB,SAAsB7D,EAAM8P,EAAK4tC,EAAOn1B,GACtC,IAAI3nB,EAAI,EACR4qxB,EAAK9pN,KAAK5xjB,GAAK,SAAU+U,EAAKje,GAC5B,IACI0V,GADSohC,EAAMgqvB,UAAY,IAAM,WACZ9myB,IAAO,IAC5B26C,EAAUj/B,GAAYohC,EAAM74B,IAAI7kB,MAAQ,OACxCmhnB,EAAY7kmB,GAAYohC,EAAM92C,MAAM5G,MAAQ,SAChDqtyB,EAAgBrtyB,EAAOu7C,EAAS12B,EAAK64B,EAAM74B,IAAK0D,GAChD8kxB,EAAgBrtyB,EAAOmhnB,EAAWv6mB,EAAO82C,EAAM92C,MAAO2hB,EACxD,GACF,CAoCIilxB,CAAaxtyB,EAAM4G,EAAO82C,EAAOn1B,GAEjCA,EAAGvoB,EAAM09C,EAAM+mvB,aAAa79xB,GAAOzF,YAEvC,CAzEA4qyB,EAAqBjsyB,UAAUojC,UAAY,SAASu1B,EAAQtgD,EAAOoQ,GACjE6kxB,EAAmB,GAAI30uB,EAAQtgD,EAAOoQ,EACxC,EA4EAs8L,EAAOrtL,QAAUu0wB,yBCnFjB,IAAIpnB,EAAM/tvB,EAAQ,MAKdqN,EAAU,KAKV5lB,EAAM,CACNixwB,iBAAkB,KAClB92tB,YAAa,SACbwyqB,WAAY,CAAC,GAMbyiE,EAA2B,CAC3Bj+vB,OAAQ,SACR3I,SAAU,SACVC,KAAM,SACNliC,SAAU,UAMd+/wB,EAAI0D,IAAIzrC,OAAS+nC,EAAI6G,KAAK/1mB,QAAQ,CAoB9BxvJ,YAAa,SAAgB/b,GACzBtK,KAAKsK,QAAUA,GAAW,CAAC,CAC/B,EAMAwjyB,sBAAuB,SAA+B5zvB,GAElD,IAAID,EAAW,WACf,GAA8B,IAA1BC,EAAI94C,QAAQ64C,GACZ,OAAOC,EAAIQ,UAAUT,EAE7B,EAiEA8zvB,aAAc,SAAsBzjyB,EAASi+G,GAClB,oBAAZj+G,QAAuCjC,IAAbkgH,IACjCA,EAAWj+G,EACXA,EAAU,CAAC,GAEf,IAAIu5G,EAAO7jH,KACPguyB,EAAkC,oBAAbzlrB,EAEzBj+G,EAAUy6wB,EAAI6G,KAAK9/lB,MAAM9rL,KAAKsK,QAASA,GAEvC,IAAI2jyB,EAAoBjuyB,KAAKkuyB,yBAAyB5jyB,GACtD,IAA0B,IAAtB2jyB,EAA4B,CAC5B,GAAID,EACA,OAAOzlrB,EAAS0lrB,EAAmB,MAEvC,MAAMA,CACV,CAGA,IAEIE,EAAiB,CACjBv+vB,OAAQtlC,EAAQslC,OAChB4N,SAAU,IAAIunuB,EAAIlivB,SAASv4B,EAAQ28B,SAAW,IAAM38B,EAAQ48B,MAC5D6nvB,iBAAiB,EACjBW,iBAAkB,MAElBplxB,EAAQgnC,cACR68vB,EAAe78vB,YAAchnC,EAAQgnC,cAEzCjN,EAAU,IAAI0gvB,EAAIC,QAAQmpB,IAElB1vxB,IAAMA,EAEd,IAAI8lB,EAAUF,EAAQgzvB,cAItB,GAFAr3xB,KAAKouyB,0BAA0B7pwB,EAASj6B,IAEpC0jyB,EAOG,CACH,IAAI9zvB,EAAM3V,EAAQqN,QA3BR,KA4BV,OAAO5xC,KAAK8tyB,sBAAsB5zvB,EACtC,CATI3V,EAAQqN,QApBE,KAoBe,SAASvtC,EAAK61C,GAC/BA,IACAA,EAAM2pE,EAAKiqrB,sBAAsB5zvB,IAErCquE,EAASlkH,EAAK61C,EAClB,GAKR,EAMAk0vB,0BAA2B,SAAmC7pwB,EAASj6B,GACnEi6B,EAAQ2vE,GAAG,QAAS3vE,EAAQ8pwB,YACV9pwB,EAAQg+W,YACd/nX,KAAOuqvB,EAAI6G,KAAK4X,oBAAoB,CAC5Cj+lB,OAAQ,UACR+omB,OAAQhkyB,EAAQtF,UAExB,EAOAkpyB,yBAA0B,SAAkC5jyB,GAExD,IAAIrK,EAAU,GAEd,IAAK,IAAIglB,KADT3a,EAAUA,GAAW,CAAC,EACNujyB,EACP9txB,OAAO7f,UAAU04B,eAAe9S,KAAK+nxB,EAA0B5oxB,WAGzD3a,EAAQ2a,KAAS4oxB,EAAyB5oxB,KACjDhlB,GAAW,WAAcglB,EAAM,4BAAgC4oxB,EAAyB5oxB,GAAO,kBAAsB3a,EAAQ2a,GAAO,QAG5I,OAAIhlB,EAAQW,QACDmkxB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CAC/B8mB,KAAM,mBACNhnB,QAASA,GAIrB,uBCxNJglN,EAAOrtL,QAAU,CAEfr0B,IAAK,WACH,MAA2B,qBAAhBsuJ,aAA0D,oBAApBA,YAAYtuJ,IACpDsuJ,YAAYtuJ,MAEdD,KAAKC,KACd,sBCSF0hN,EAAOrtL,QAAU,CACf0nB,aAjBF,SAAsB1P,GACpB,MAAyB,kBAAXA,IAAwBA,EAAO8E,WAAW,UAAY9E,EAAO+E,SAAS,SACtF,EAgBE45vB,eAdF,SAAwB3+vB,GACtB,MAAyB,kBAAXA,GAAuB,CAAC,aAAc,qBAAqBpb,SAASob,EACpF,EAaE2P,cAXF,SAAuB3P,GACrB,MAAO,CAAC,kBAAmB,WAAY,cAAcpb,SAASob,GACxD,YACA,CAAC,yBAA0B,qBAAqBpb,SAASob,GACzD,gBACAA,EAAOjvC,QAAQ,2BAA4B,GACnD,0BCdA,IAAIirxB,EAAO50vB,EAAQ,OACfw3wB,EAAex3wB,EAAQ,OA2B3B,SAASy3wB,EAAYpqwB,EAASya,GAC5B8suB,EAAK9pN,KAAKhjhB,GAAQ,SAAS75B,EAAKje,GAClB,mBAARie,SACwB5c,IAAxBg8B,EAAQya,OAAO75B,IAA8C,OAAxBof,EAAQya,OAAO75B,KACtDof,EAAQya,OAAO75B,GAAOje,GAE1B,GACF,CAwEAi+M,EAAOrtL,QAAU,CACf82wB,kBAvEF,SAA2BrqwB,GAIzB,IAHA,IAAI9f,EA5BN,SAAqB8f,GACnB,IAAIuL,EAASvL,EAAQya,OAAOlP,OACxB++vB,EATN,SAA8B/+vB,GAC5B,IAAKA,EAAQ,OAAO,KACpB,IAAIsJ,EAAQtJ,EAAOhuC,MAAM,KACzB,OAAIs3C,EAAMt4C,OAAS,EAAU,KACtBs4C,EAAM9yB,MAAM,EAAG8yB,EAAMt4C,OAAS,GAAGomB,KAAK,KAAO,IACtD,CAIqB4nxB,CAAqBh/vB,GACpCy1vB,EAAiBhhwB,EAAQ5lB,IAAI4mxB,eAEjC,MAAO,CACL,CAACz1vB,EAAQy1vB,GACT,CAACsJ,EAActJ,GACf,CAACz1vB,EAAQ,KACT,CAAC++vB,EAAc,KACf,CAAC,IAAKtJ,GACN,CAACz1vB,EAAQ,cACT,CAAC,IAAK,MACN1/B,KAAI,SAASS,GACb,OAAOA,EAAK,IAAMA,EAAK,GAAKA,EAAKqW,KAAK,KAAO,IAC/C,GACF,CAYa6nxB,CAAYxqwB,GACnB+yB,EAAkB/yB,EAAQya,OAAOsY,gBACjCD,EAAuB9yB,EAAQya,OAAOqY,qBACjCn2D,EAAI,EAAGA,EAAIujB,EAAK3jB,OAAQI,IAAK,CACpC,IAAIikB,EAAMV,EAAKvjB,GACf,GAAKikB,EAAL,CAEA,IAAI64B,EAAQsZ,EACRD,EACEq3uB,EAAaM,mBACbN,EAAaO,UACf53uB,EACAq3uB,EAAaQ,eACbR,EAAa1wvB,MAEjB,GAAI/9B,OAAO7f,UAAU04B,eAAe9S,KAAKg4B,EAAO74B,GAAM,CACpD,IAAI65B,EAAShB,EAAM74B,GACG,kBAAX65B,IACTA,EAAS0vvB,EAAaS,SAASnwvB,IAIjCza,EAAQ66vB,mBAAqBpgvB,EAAOwmvB,eAChCxmvB,EAAO7M,gBACT5N,EAAQ4N,cAAgB6M,EAAO7M,eAI5B6M,EAAO4wuB,mBAIV5wuB,EAAO4wuB,iBAAmB,MAG5B,IAAIwf,EAA8D,YAAjD7qwB,EAAQ5lB,KAAO4lB,EAAQ5lB,IAAIixwB,kBAQ5C,YALA+e,EAAYpqwB,EAAStkB,OAAOkZ,OAC1B,CAAC,EACD6lB,EACA,CAAE4wuB,iBAAkBwf,EAAY,SAAWpwvB,EAAO4wuB,mBAGtD,CAvCkB,CAwCpB,CACF,EAyBEyf,kBAvBF,SAA2Bv/vB,GAUzB,IATA,IAAIw/vB,EAAgB,CAClB,sCAAuC,gBACvC,qBAAsB,mBACtB,2BAA4B,gBAC5B,2BAA4B,aAC5B,4BAA6B,iBAG3BC,EAAUtvxB,OAAOwE,KAAK6qxB,GACjBpuyB,EAAI,EAAGA,EAAIquyB,EAAQzuyB,OAAQI,IAAK,CACvC,IAAIsuyB,EAAgB53vB,OAAO23vB,EAAQruyB,IAC/BuuyB,EAAYH,EAAcC,EAAQruyB,IACtC,GAAIsuyB,EAAchpxB,KAAKspB,GAAS,OAAO2/vB,CACzC,CACA,MAPoB,eAQtB,wCCtGIxqB,EAAM/tvB,EAAQ,MACdw4wB,EAAuBx4wB,EAAQ,OAC/B6+I,EAAUkvmB,EAAI6G,KAAK/1mB,QACnBq/X,EAAS6vO,EAAI6G,KAAK12O,OAClBu6P,EAAWz4wB,EAAQ,OAKnB04wB,EAAkB,CAAC7zqB,QAAS,EAAGt3H,MAAO,EAAG48d,SAAU,GAMvD,IAAIwuU,EAAM,IAAIH,EACdG,EAAIC,YAAc,WAChB,IAAI7sqB,EAAa,SAASroG,EAAG1U,GAC3B,IAAI69F,EAAO7jH,KACX6jH,EAAKgsrB,sBAAuB,EAE5BhsrB,EAAKxN,KAAKwN,EAAKisrB,KAAKptB,cAAc,SAASr+wB,GACzC,GAAIA,EACF,GAZiB0ryB,EAYGlsrB,EAXnB9jG,OAAO7f,UAAU04B,eAAe9S,KAAK4pxB,EAAiBK,EAAQD,KAAKptB,cAWzC,CACzB,KAAIxtO,GAAUrxb,EAAKqxb,kBAAkBA,EAAO86P,QAM1C,MAAM3ryB,EALNA,EAAI4ryB,cAAgBpsrB,EACpBx/G,EAAI6wiB,OAASrxb,EAAKqxb,OAClB7wiB,EAAI6ryB,cAAe,EACnBrsrB,EAAKqxb,OAAO7+b,KAAK,QAAShyG,EAI9B,MACEw/G,EAAKngH,SAASa,MAAQF,EACtB2hB,EAAK3hB,QAGP2hB,EAAK69F,EAAKngH,SAASa,OA1B3B,IAAyBwryB,CA4BrB,GAEF,EAEA/vyB,KAAKmwyB,SAAS,WAAY,QAAS,QAASptqB,GAC5C/iI,KAAKmwyB,SAAS,QAAS,aAAc,UAAWptqB,GAChD/iI,KAAKmwyB,SAAS,aAAc,OAAQ,UAAWptqB,GAC/C/iI,KAAKmwyB,SAAS,OAAQ,OAAQ,QAASptqB,GACvC/iI,KAAKmwyB,SAAS,QAAS,aAAc,aAAcptqB,GACnD/iI,KAAKmwyB,SAAS,aAAc,OAAQ,QAASptqB,GAC7C/iI,KAAKmwyB,SAAS,OAAQ,mBAAoB,QAASptqB,GACnD/iI,KAAKmwyB,SAAS,mBAAoB,cAAe,eAAgBptqB,GACjE/iI,KAAKmwyB,SAAS,eAAgB,cAAe,QAASptqB,GACtD/iI,KAAKmwyB,SAAS,cAAe,UAAW,QAASptqB,GACjD/iI,KAAKmwyB,SAAS,UAAW,QAAS,QAASptqB,GAC3C/iI,KAAKmwyB,SAAS,UAAW,WAAY,WAAYptqB,GACjD/iI,KAAKmwyB,SAAS,QAAS,WAAY,WAAYptqB,GAC/C/iI,KAAKmwyB,SAAS,WAAY,KAAM,KAAMptqB,EACxC,EACA4sqB,EAAIC,cAgPJ7qB,EAAI93kB,QAAUp3B,EAAQ,CAYpBxvJ,YAAa,SAAiBge,EAASxF,EAAWg6B,GAChD,IAAIrb,EAAWnZ,EAAQmZ,SACnB5N,EAASvL,EAAQya,OAAOlP,OACxBqP,EAAkB5a,EAAQya,OAAOG,gBAEjC5a,EAAQ4N,cACVrC,EAASvL,EAAQ4N,cACR5N,EAAQ66vB,mBACjBtvvB,EAAS,aAGX5vC,KAAKk1iB,OAASA,GAAUA,EAAOp1a,OAC/B9/H,KAAKqkC,QAAUA,EACfrkC,KAAK6+B,UAAYA,EACjB7+B,KAAK64D,OAASA,GAAU,CAAC,EACzB74D,KAAKuiZ,YAAc,IAAIwiY,EAAIv+uB,YAAYgX,EAAU5N,GACjD5vC,KAAKuiZ,YAAYo3Y,kBAAkB16uB,GACnCj/C,KAAK+2tB,UAAY1yrB,EAAQkR,uBAEzBv1C,KAAK0D,SAAW,IAAIqhxB,EAAIqrB,SAASpwyB,MACjCA,KAAK8vyB,KAAO,IAAIN,EAAqBG,EAAIvwpB,OAAQ,YACjDp/I,KAAK6vyB,sBAAuB,EAE5B9qB,EAAI+M,mBAAmBhswB,KAAK9lB,MAC5BA,KAAKq2G,KAAOr2G,KAAKqwyB,SACnB,EA0BA1juB,KAAM,SAAc47C,GAUlB,OATIA,IAEFvoH,KAAKuiZ,YAAYo3Y,kBAAkB,YACnC35xB,KAAKk0G,GAAG,YAAY,SAAUw9F,GAC5BnpF,EAASziG,KAAK4rL,EAAMA,EAAKntM,MAAOmtM,EAAK/nM,KACvC,KAEF3J,KAAKswyB,QAEEtwyB,KAAK0D,QACd,EAyBAswM,MAAO,SAAezrF,GACpB,OAAOvoH,KAAKswyB,MAAM,OAAQ/nrB,EAC5B,EAKA+nrB,MAAO,SAAe7ryB,EAAOuhB,GAE3B,OADAhmB,KAAK8vyB,KAAKQ,MAAM7ryB,EAAOuhB,EAAMhmB,MACtBA,IACT,EAwBAqyG,MAAO,WAkBL,OAjBAryG,KAAK6qU,mBAAmB,oBACxB7qU,KAAK6qU,mBAAmB,gBACxB7qU,KAAKk0G,GAAG,oBAAoB,SAAyBw9F,GACnDA,EAAKntM,MAAQwgxB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAM,2BAA4B,CAC/D8mB,KAAM,sBAAuBultB,WAAW,GAE7C,IAEIxsuB,KAAKuiZ,YAAYtsS,SAAWj2G,KAAKuiZ,YAAYtsS,OAAOirrB,cACtDlhyB,KAAKuiZ,YAAYtsS,OAAO5D,QACpBryG,KAAKuiZ,YAAY++Y,eAClBthyB,KAAKuiZ,YAAY++Y,iBAElBthyB,KAAK6qU,mBAAmB,SAIrB7qU,IACT,EAyCAuwyB,SAAU,SAAkBhorB,GAE1BA,EAAWw8pB,EAAI6G,KAAKjjwB,GAAG6nxB,UAAUjorB,EAAU,GAc3CvoH,KAAKk0G,GAAG,YAZR,SAASu8rB,EAAgB/syB,GACvB6kH,EAASziG,KAAKpiB,EAAUA,EAASa,MAAOb,EAASiG,MAAM,SAAUzE,IAChD,IAAXA,IAEAxB,EAASk5xB,cACXl5xB,EAASg5xB,WAAWxorB,GAAG,WAAYu8rB,GAAiB9juB,OAEpD47C,EAASziG,KAAKpiB,EAAU,KAAM,KAAMqhxB,EAAI6G,KAAKjjwB,GAAGkE,MAEpD,GACF,IAEqC8/C,MACvC,EASA+juB,SAAU,SAAkBnorB,GAC1B,IAAI1E,EAAO7jH,KAmBXA,KAAKuwyB,UAlBL,SAAyBlsyB,EAAKsF,GAC5B,GAAItF,EAAK,OAAOkkH,EAASlkH,EAAK,MAC9B,GAAa,OAATsF,EAAe,OAAO4+G,EAAS,KAAM,MAEzC,IACIq3mB,EADS/7mB,EAAKx/E,QAAQs4vB,iBAAiB94qB,EAAKhlF,WACzB+gsB,UACnBt9sB,MAAMC,QAAQq9sB,KAAYA,EAAYA,EAAU,IACpD,IAAIr+sB,EAAQkuxB,EAASl6wB,OAAO5rB,EAAMi2tB,GAC9B+wE,GAAoB,EAOxB,OANA5rB,EAAI6G,KAAK4G,UAAUjxwB,GAAO,SAAS5Q,GAEjC,IAA0B,KAD1BggyB,EAAoBporB,EAAS,KAAM53G,IAEjC,OAAOo0wB,EAAI6G,KAAKv5qB,KAEpB,IACOs+rB,CACT,GAGF,EAQAC,WAAY,WACV,QAAO5wyB,KAAKqkC,QAAQs4vB,iBAAiB38xB,KAAK6+B,UAC5C,EAmBAgywB,iBAAkB,WAChB,IAAIC,EAAU/rB,EAAI6G,KAAK31qB,OACnBu7F,EAAMxxM,KACNi2G,EAAS,KAqGb,OAnGyC,IAArC8uqB,EAAIgc,WAAWC,mBACjB/qrB,EAAS,IAAI66rB,EAAQC,YACrBhywB,EAAQiywB,UAAS,WAAax/lB,EAAI7kI,MAAQ,OAE1CspC,EAAS,IAAI66rB,EAAQjT,QACdoT,UAAW,EAElBh7rB,EAAOl9F,MAAO,EACdk9F,EAAO/B,GAAG,eAAe,SAAS3rG,GAC3B0tG,EAAOl9F,MAAkB,SAAVxQ,IAClB0tG,EAAOl9F,MAAO,EACdgmB,EAAQiywB,UAAS,WAAax/lB,EAAI7kI,MAAQ,IAE9C,KAGF3sE,KAAKk0G,GAAG,SAAS,SAAS7vG,GACxB4xG,EAAOI,KAAK,QAAShyG,EACvB,IAEArE,KAAKk0G,GAAG,eAAe,SAAuB1tD,EAAYnkD,EAASqvM,GACjE,GAAIlrJ,EAAa,IAAK,CACpBgrJ,EAAI5c,eAAe,WAAYmwlB,EAAI0S,eAAeC,KAAKwZ,WACvD1/lB,EAAI5c,eAAe,YAAamwlB,EAAI0S,eAAeC,KAAKyZ,YACxD3/lB,EAAIt9F,GAAG,aAAa,SAAyB3vG,GAC3CmtM,EAAKntM,MAAQA,EACbmtM,EAAKntM,MAAMiouB,WAAY,CACzB,IAEA,IACI4kE,EADAC,GAA2B,EAK/B,GAH+B,SAA3B7/lB,EAAI+wM,YAAYt7Y,SAClBmqyB,EAAc38wB,SAASpyB,EAAQ,kBAAmB,UAEhCgG,IAAhB+oyB,IAA8Bz8wB,MAAMy8wB,IAAgBA,GAAe,EAAG,CACxEC,GAA2B,EAC3B,IAAIC,EAAc,CACpB,CAEA,IAAIC,EAA4B,WAC1BF,GAA4BC,IAAgBF,EAC9Cn7rB,EAAOI,KAAK,QAAS0uqB,EAAI6G,KAAKrnxB,MAC5B,IAAIpE,MAAM,4CACRmxyB,EAAc,OAASF,EAAc,WACvC,CAAEnqxB,KAAM,iCAEoC,IAArC89vB,EAAIgc,WAAWC,kBACxB/qrB,EAAOnmG,MAEPmmG,EAAOI,KAAK,MAEhB,EAEIm7rB,EAAa9/lB,EAAK8mlB,aAAamL,yBAEnC,GAAyC,IAArC5e,EAAIgc,WAAWC,kBACjB,GAAIqQ,EAA0B,CAC5B,IAAII,EAAoB,IAAIX,EAAQC,YACpCU,EAAkBC,OAAS,SAASlowB,GAIlC,OAHIA,GAASA,EAAM5oC,SACjB0wyB,GAAe9nwB,EAAM5oC,QAEhBkwyB,EAAQC,YAAY7wyB,UAAUwxyB,OAAO9sxB,MAAM5kB,KAAM8kB,UAC1D,EAEA2sxB,EAAkBv9rB,GAAG,MAAOq9rB,GAC5Bt7rB,EAAO/B,GAAG,SAAS,SAAS7vG,GAC1BgtyB,GAA2B,EAC3BG,EAAWG,OAAOF,GAClBA,EAAkBp7rB,KAAK,OACvBo7rB,EAAkB3hyB,KACpB,IACA0hyB,EAAWI,KAAKH,GAAmBG,KAAK37rB,EAAQ,CAAEnmG,KAAK,GACzD,MACE0hyB,EAAWI,KAAK37rB,QAIdo7rB,GACFG,EAAWt9rB,GAAG,QAAQ,SAASn4D,GACzBA,GAAOA,EAAIn7C,SACb0wyB,GAAev1vB,EAAIn7C,OAEvB,IAGF4wyB,EAAWt9rB,GAAG,QAAQ,SAASn4D,GAC7Bk6D,EAAOI,KAAK,OAAQt6D,EACtB,IACAy1vB,EAAWt9rB,GAAG,MAAOq9rB,GAGvBC,EAAWt9rB,GAAG,SAAS,SAAS7vG,GAC9BgtyB,GAA2B,EAC3Bp7rB,EAAOI,KAAK,QAAShyG,EACvB,GACF,CACF,IAEO4xG,CACT,EAOAo6rB,UAAW,SAAc/xkB,EAAW71M,EAAMzC,GACpB,oBAATyC,IAAuBzC,EAAOyC,EAAMA,EAAO,MACjDzC,IAAMA,EAAO,WAAa,GAC1ByC,IAAMA,EAAOzoB,KAAK6xyB,gBAAgBvzkB,EAAWt+N,KAAK0D,WAExCqhxB,EAAI+M,mBAAmB5xxB,UAAUm2G,KACvCvwF,KAAK9lB,KAAMs+N,EAAW71M,GAAM,SAAUpkB,GACzCA,IAAKrE,KAAK0D,SAASa,MAAQF,GAC/B2hB,EAAKF,KAAK9lB,KAAMqE,EAClB,GACF,EAKAwtyB,gBAAiB,SAAyBvzkB,GACxC,OAAQA,GACN,IAAK,UACL,IAAK,WACL,IAAK,OACL,IAAK,QACL,IAAK,gBACL,IAAK,aACH,MAAO,CAACt+N,MACV,IAAK,QACH,MAAO,CAACA,KAAK0D,SAASa,MAAOvE,KAAK0D,UACpC,QACE,MAAO,CAAC1D,KAAK0D,UAEnB,EAKAkuC,QAAS,SAAiBkyC,EAASykC,GAKjC,OAJKA,GAA+B,oBAAZzkC,IACtBykC,EAAWzkC,EACXA,EAAU,OAEL,IAAIihsB,EAAIkM,QAAQ6gB,SAAUvywB,KAAKv/B,KAAK+xyB,QAASjutB,EAASykC,EAC/D,EAKAwwqB,YAAa,WACX,OAAOh5wB,OAAO7f,UAAU04B,eAAe9S,KAAK9lB,KAAKuiZ,YAAYlgZ,QAAS,oBACxE,EAKA2vyB,kBAAmB,WAIjB,OAHAhyyB,KAAKiyyB,kBAAmB,EACxBjyyB,KAAK40L,eAAe,WAAYmwlB,EAAI0S,eAAeC,KAAKwa,sBACxDlyyB,KAAK40L,eAAe,OAAQmwlB,EAAI0S,eAAeC,KAAKya,MAC7CnyyB,IACT,EAKA+xyB,MAAO,WAML,MALkC,UAA9B/xyB,KAAKqkC,QAAQ5lB,IAAIw7B,UACa,QAA9Bj6C,KAAKqkC,QAAQ5lB,IAAIw7B,WACnBj6C,KAAK40L,eAAe,QAAS50L,KAAKquyB,YAClCruyB,KAAK20L,YAAY,QAAS30L,KAAKquyB,aAE1BruyB,IACT,EAKAquyB,WAAY,SAAoB9pwB,GAC9BA,EAAQg+W,YAAYt7Y,OAAS,MAC7Bs9B,EAAQg+W,YAAY/iY,KAAO+kB,EAAQF,QAAQmZ,SAASh+B,KACzB,IAAM+kB,EAAQg+W,YAAY/nX,KACrD+J,EAAQg+W,YAAY/nX,KAAO,UAGpB+J,EAAQg+W,YAAYlgZ,QAAQ,yBAC5BkiC,EAAQg+W,YAAYlgZ,QAAQ,eACrC,EAKAm9xB,oBAAqB,WACnBx/xB,KAAK6vyB,sBAAuB,CAC9B,IAMF9qB,EAAI93kB,QAAQyllB,mBAAqB,SAA4BC,GAC3D3yxB,KAAKE,UAAUilM,QAAU,WACvB,IAAIthF,EAAO7jH,KAGX,OADAA,KAAKuiZ,YAAYo3Y,kBAAkB,WAC5B,IAAIhH,GAAkB,SAAS/vwB,EAASH,GAC7CohG,EAAK3P,GAAG,YAAY,SAASw9F,GACvBA,EAAKntM,MACPke,EAAOivL,EAAKntM,OAIZqe,EAAQ7C,OAAOC,eACb0xL,EAAK/nM,MAAQ,CAAC,EACd,YACA,CAAC3C,MAAO0qM,IAGd,IACA7tF,EAAKysrB,OACP,GACF,CACF,EAKAvrB,EAAI93kB,QAAQ6llB,wBAA0B,kBAC7B9yxB,KAAKE,UAAUilM,OACxB,EAEA4/kB,EAAI6G,KAAKyE,YAAYtL,EAAI93kB,SAEzB83kB,EAAI6G,KAAKwmB,MAAMrtB,EAAI93kB,QAAS83kB,EAAI+M,2CCzxBhC,IAAI/M,EAAM/tvB,EAAQ,MACd6+I,EAAUkvmB,EAAI6G,KAAK/1mB,QACnB45nB,EAAWz4wB,EAAQ,OAKvB,SAASq7wB,EAAgB3gmB,GACvB,IAAI+uE,EAAS/uE,EAAKntK,QAAQ+twB,QACtBC,EAAY9xhB,EAAO3hO,OAAOyzvB,UAC1BC,GAAkB,EAClB/tyB,EAAQ,QAEZ8tyB,EAAUvtxB,SAAQ,SAASytxB,GACzB,IAAKD,EAAiB,CACpB,IAAIzxmB,EAAU0/E,EAAOiyhB,SAASD,EAAS1xmB,SACnCA,GAAWA,EAAQ2Q,EAAM+gmB,EAASt9lB,SAAUs9lB,EAASronB,YACvDoonB,GAAkB,EAClB/tyB,EAAQguyB,EAAShuyB,MAErB,CACF,KAEK+tyB,GAAmB9gmB,EAAKntM,QAAOE,EAAQ,WAE9B,YAAVA,EACFg8Q,EAAOkyhB,WAAWjhmB,GAElB+uE,EAAOmyhB,SAASlhmB,EAAgB,UAAVjtM,EAE1B,CAKAsgxB,EAAI6M,eAAiB/7mB,EAAQ,CAU3BxvJ,YAAa,SAAqBge,EAAS5/B,GACzCzE,KAAKqkC,QAAUA,EACfrkC,KAAKyE,MAAQA,EACbzE,KAAK6yyB,iBAAiB7yyB,KAAKyE,MAC7B,EAEA4/B,QAAS,KAET5/B,MAAO,KAEPq6C,OAAQ,KAER4zvB,SAAU,CACRlzxB,KAAM,SAASkyL,EAAMyD,EAAU/qB,GAC7B,IACE,IAAIllL,EAASuqyB,EAASl6wB,OAAOm8K,EAAK/nM,KAAMygL,EAC1C,CAAE,MAAO/lL,GACP,OAAO,CACT,CAEA,OAAOoryB,EAASqD,gBAAgB5tyB,EAAOiwM,EACzC,EAEA49lB,QAAS,SAASrhmB,EAAMyD,EAAU/qB,GAChC,IACE,IAAI0pR,EAAU27V,EAASl6wB,OAAOm8K,EAAK/nM,KAAMygL,EAC3C,CAAE,MAAO/lL,GACP,OAAO,CACT,CAEKie,MAAMC,QAAQuxb,KAAUA,EAAU,CAACA,IACxC,IAAIk/V,EAAal/V,EAAQlzc,OACzB,IAAKoyyB,EAAY,OAAO,EACxB,IAAK,IAAIC,EAAM,EAAIA,EAAMD,EAAYC,IACnC,IAAKxD,EAASqD,gBAAgBh/V,EAAQm/V,GAAM99lB,GAC1C,OAAO,EAGX,OAAO,CACT,EAEA+9lB,QAAS,SAASxhmB,EAAMyD,EAAU/qB,GAChC,IACE,IAAI0pR,EAAU27V,EAASl6wB,OAAOm8K,EAAK/nM,KAAMygL,EAC3C,CAAE,MAAO/lL,GACP,OAAO,CACT,CAEKie,MAAMC,QAAQuxb,KAAUA,EAAU,CAACA,IAExC,IADA,IAAIk/V,EAAal/V,EAAQlzc,OAChBqyyB,EAAM,EAAIA,EAAMD,EAAYC,IACnC,GAAIxD,EAASqD,gBAAgBh/V,EAAQm/V,GAAM99lB,GACzC,OAAO,EAGX,OAAO,CACT,EAEA1I,OAAQ,SAASiF,EAAMyD,GACrB,IAAI3uJ,EAAakrJ,EAAK8mlB,aAAahyuB,WACnC,MAA8B,kBAAfA,GAA6BA,IAAe2uJ,CAC7D,EAEA5wM,MAAO,SAASmtM,EAAMyD,GACpB,MAAwB,kBAAbA,GAAyBzD,EAAKntM,MAChC4wM,IAAazD,EAAKntM,MAAM0iB,KAG1BkuL,MAAezD,EAAKntM,KAC7B,GAGFsoN,WAAW,IAAIk4jB,EAAI+M,oBAAqBkN,mBAAkB,SAASz4vB,GACjEA,EAAI,cAAe,SAAS,SAASmrK,GACnC,IAAI+uE,EAAS/uE,EAAKntK,QAAQ+twB,QACtB5gmB,EAAKntM,OAA6B,qBAApBmtM,EAAKntM,MAAM0iB,OAC3ByqL,EAAKntM,MAAM++C,WAA0C,KAA5Bm9N,EAAO3hO,OAAOkD,OAAS,GAEpD,IAEAzb,EAAI,eAAgB,cAAe8rwB,GAEnC9rwB,EAAI,cAAe,eAAgB8rwB,EACrC,IAKA96mB,KAAM,SAAc1+H,EAAQ0vD,GACJ,oBAAX1vD,IACT0vD,EAAW1vD,EAAQA,OAASxwD,GAG1BwwD,GAAUA,EAAOs6uB,UAEiB,kBADpCt6uB,EAASkstB,EAAI6G,KAAKn0qB,KAAK5+C,IACLs6uB,QAAQnxvB,QACxBhiD,KAAK8+C,OAAOkD,MAAQ6W,EAAOs6uB,QAAQnxvB,OAEK,kBAA/B6W,EAAOs6uB,QAAQtvvB,cACxB7jD,KAAK8+C,OAAO+E,YAAcgV,EAAOs6uB,QAAQtvvB,oBAEpCgV,EAAOs6uB,SAGhB,IAAI5uwB,EAAUvkC,KAAKqkC,QAAQgzvB,YAAYr3xB,KAAK8+C,OAAOjgB,UAAWg6B,GAM9D,OALAt0B,EAAQ+twB,QAAUtyyB,KAClBukC,EAAQ7gC,SAASsiwB,WAAahmwB,KAAK8+C,OAAO+E,YAC1Ctf,EAAQy0U,aAAah5W,KAAK6sN,WAEtBtkG,GAAUhkF,EAAQooC,KAAK47C,GACpBhkF,CACT,EAEAouwB,WAAY,SAAoBjhmB,GAC9BA,EAAKntM,MAAQ,KACbmtM,EAAK/nM,KAAO+nM,EAAK/nM,MAAQ,CAAC,EAC1B+nM,EAAKntK,QAAQsmS,mBAAmB,cAClC,EAEA+ne,SAAU,SAAkBlhmB,EAAM86hB,GAChC96hB,EAAK/nM,KAAO,KACZ+nM,EAAKntM,MAAQwgxB,EAAI6G,KAAKrnxB,MAAMmtM,EAAKntM,OAAS,IAAIpE,MAAS,CACrD8mB,KAAM,mBACNhnB,QAAS,gCAAkCD,KAAKyE,MAChD+nuB,UAAWA,GAEf,EAOAqmE,iBAAkB,SAA0BpuyB,GAC1C,IAAKzE,KAAKqkC,QAAQ5lB,IAAIshQ,QAAQt7Q,GAC5B,MAAM,IAAIsgxB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CACpC8mB,KAAM,qBACNhnB,QAAS,SAAWwE,EAAQ,gBAIhCzE,KAAK8+C,OAASimuB,EAAI6G,KAAKn0qB,KAAKz3G,KAAKqkC,QAAQ5lB,IAAIshQ,QAAQt7Q,GACvD,2BC1MF,IAAIsgxB,EAAM/tvB,EAAQ,MACd6+I,EAAUkvmB,EAAI6G,KAAK/1mB,QACnB45nB,EAAWz4wB,EAAQ,OAgGvB+tvB,EAAIqrB,SAAWv6nB,EAAQ,CAKrBxvJ,YAAa,SAAkBke,GAC7BvkC,KAAKukC,QAAUA,EACfvkC,KAAK2J,KAAO,KACZ3J,KAAKuE,MAAQ,KACbvE,KAAKujD,WAAa,EAClBvjD,KAAK4hyB,cAAgB,EACrB5hyB,KAAKw4xB,aAAe,IAAIzT,EAAIhvuB,aACxBxR,IACFvkC,KAAKgmwB,WAAazhuB,EAAQF,QAAQ+uwB,aAClCpzyB,KAAK8uxB,aAAevqvB,EAAQF,QAAQya,OAAOgwuB,aAE/C,EAiBA4N,SAAU,SAAkBn0qB,GAC1B,IAAIzpE,EACAza,EAAUrkC,KAAKukC,QAAQF,QACvBxF,EAAY7+B,KAAKukC,QAAQ1F,UAC7B,IACEigB,EAASza,EAAQs4vB,iBAAiB99vB,GAAW,EAC/C,CAAE,MAAO9+B,GAAKC,KAAKuE,MAAQxE,CAAG,CAE9B,IAAKC,KAAK48xB,cAAe,CACvB,GAAIr0qB,EAAUA,EAASvoH,KAAKuE,MAAO,WAC9B,GAAIvE,KAAKuE,MAAO,MAAMvE,KAAKuE,MAChC,OAAO,IACT,CAEA,IAAIs0D,EAASkstB,EAAI6G,KAAKn0qB,KAAKz3G,KAAKukC,QAAQs0B,QACxC,GAAK74D,KAAK68xB,eAEH,CACL,IAAIC,EAAch+uB,EAAOi+uB,WACE,kBAAhBD,IAA0BA,EAAc,CAACA,IACpD,IAAK,IAAI97xB,EAAI,EAAGA,EAAI87xB,EAAYl8xB,OAAQI,IACtC63D,EAAOikuB,EAAY97xB,IAAMhB,KAAK68xB,eAAe77xB,GAE/C,OAAOqjC,EAAQgzvB,YAAYr3xB,KAAKukC,QAAQ1F,UAAWg6B,EAAQ0vD,EAC7D,CARE,OAAOA,EAAWA,EAAS,KAAM,MAAQ,IAS7C,EAOAq0qB,YAAa,WAEX,OADA58xB,KAAKqzyB,wBACDrzyB,KAAK68xB,qBACmBx0xB,IAAxBrI,KAAK68xB,qBAA8B,CAEzC,EAKAwW,oBAAqB,WACnB,GAAItzxB,OAAO7f,UAAU04B,eAAe9S,KAAK9lB,KAAM,kBAAmB,OAAOA,KAAK68xB,eAC9E78xB,KAAK68xB,oBAAiBx0xB,EAEtB,IAAIy2C,EAAS9+C,KAAKukC,QAAQF,QAAQs4vB,iBAAiB38xB,KAAKukC,QAAQ1F,WAChE,IAAKigB,EAAQ,OAAO9+C,KAAK68xB,eAGzB,GADA78xB,KAAK68xB,eAAiB,KAClB/9uB,EAAOw0vB,cACJ7D,EAASl6wB,OAAOv1B,KAAK2J,KAAMm1C,EAAOw0vB,aACrC,OAAOtzyB,KAAK68xB,eAIhB,IAAI0W,EAAQz0vB,EAAO00vB,YAUnB,MATqB,kBAAVD,IAAoBA,EAAQ,CAACA,IACxCxuB,EAAI6G,KAAK4G,UAAU1swB,KAAK9lB,KAAMuzyB,GAAO,SAAUE,GAC7C,IAAI/uwB,EAAS+qwB,EAASl6wB,OAAOv1B,KAAK2J,KAAM8pyB,GACpC/uwB,IACF1kC,KAAK68xB,eAAiB78xB,KAAK68xB,gBAAkB,GAC7C78xB,KAAK68xB,eAAej7wB,KAAK8iB,GAE7B,IAEO1kC,KAAK68xB,cACd,2BCtMF,IAAI9X,EAAM/tvB,EAAQ,MACd6I,EAAaklvB,EAAI6G,KAAK70qB,OAAOl3E,WAC7B6B,EAASqjvB,EAAI6G,KAAKlqvB,OAoCtBqjvB,EAAIx4sB,GAAG6jtB,cAAgBrL,EAAI6G,KAAK/1mB,QAAQ,CA4CtCxvJ,YAAa,SAAuB/b,GAClC,IAAIu5G,EAAO7jH,KACX+kxB,EAAI+M,mBAAmBhswB,KAAK+9F,GAC5BA,EAAKrpF,KAAO,KACZqpF,EAAK6vrB,QAAU,KACf7vrB,EAAK0E,SAAW,KAChB1E,EAAK3qE,MAAQ,CAAC,EACd2qE,EAAK8vrB,aAAe,GACpB9vrB,EAAK+vrB,UAAY,WACf/vrB,EAAK0E,SAAS,IAAIpoH,MAAM,mCAAqC0jH,EAAKrpF,MACpE,EAEAqpF,EAAKtqD,UAAUjvD,EACjB,EAKAivD,UAAW,SAAmBjvD,GAO5B,GANAA,EAAUA,GAAW,CAAC,EACtBtK,KAAK0yG,SAAW1yG,KAAK6zyB,YAEjBvpyB,EAAQkpG,YAAWxzG,KAAKwzG,UAAYlpG,EAAQkpG,WAC5ClpG,EAAQooG,WAAU1yG,KAAK0yG,SAAWpoG,EAAQooG,UAC1CpoG,EAAQmpG,oBAAmBzzG,KAAKyzG,mBAAoB,GACpDnpG,EAAQ67B,KAAM,CAChB,IAAK7jB,MAAMC,QAAQjY,EAAQ67B,MACzB,MAAM,IAAIhmC,MAAM,8CACPmK,EAAQ67B,KAAO,cAE1BnmC,KAAKmmC,KAAO77B,EAAQ67B,IACtB,CAEA,GAAInmC,KAAK0yG,SAAW1yG,KAAK6zyB,YACvB,MAAM,IAAI1zyB,MAAM,iCACAH,KAAK6zyB,aAGvB7zyB,KAAKqkC,QAAU/5B,EAAQ+5B,QACvBrkC,KAAKo7xB,kBAAkB9wxB,EAAQuuD,QAC/B74D,KAAK8zyB,eACL9zyB,KAAK+zyB,kBACP,EAKAtgsB,mBAAmB,EAKnBD,UAAW,EAKXd,SAAU,KAOVmhsB,YAAa,QAMbG,cAAe,IAmBfrnuB,KAAM,SAAS47C,GACb,IAAI1E,EAAO7jH,KACX6jH,EAAK+rkB,QAAS,EACd/rkB,EAAK0E,SAAWA,GAAY,SAASlkH,GAAO,GAAIA,EAAK,MAAMA,CAAK,EAEhE,IAAI4vyB,GAAU,EACd,GAAIpwrB,EAAK6vrB,QACP7vrB,EAAK+vrB,UAAY/vrB,EAAKqwrB,gBACjB,GAAInvB,EAAI6G,KAAKG,SAAU,CAC5B,IAAI8R,EAAS9Y,EAAI6G,KAAK31qB,OAAO4nrB,OACzBh6qB,EAAKrpF,gBAAgBqjwB,IACvBoW,GAAU,EACVpwrB,EAAK+vrB,UAAY/vrB,EAAKswrB,WACtBtwrB,EAAKuwrB,YAAc,GACnBvwrB,EAAKrpF,KACH05E,GAAG,SAAS,SAAS7vG,GAAOw/G,EAAKwsc,QAAQhsjB,EAAM,IAC/C6vG,GAAG,YAAY,WAAa2P,EAAK+vrB,WAAa,IAC9C1/rB,GAAG,OAAO,WACR2P,EAAKwwrB,gBAAiB,EACtBxwrB,EAAKywrB,SAAWzwrB,EAAK0wrB,iBACrB1wrB,EAAK+vrB,UAAU9txB,KAAK+9F,GAEhBA,EAAKwwrB,gBAAkBxwrB,EAAK0wrB,kBAAoB,GAAK1wrB,EAAK2wrB,YAAc3wrB,EAAKywrB,UAC/EzwrB,EAAK4wrB,iBAET,IAEN,CAEIR,GAASpwrB,EAAK+vrB,UAAU9txB,KAAK+9F,EACnC,EAgDAxR,MAAO,WACL,IAAIwR,EAAO7jH,MAEiB,IAAxB6jH,EAAKwwrB,gBAAqD,IAA1BxwrB,EAAK0wrB,kBAA0B1wrB,EAAK6wrB,WACtE7wrB,EAAK6wrB,WAAWrisB,QAEhBwR,EAAKwsc,QAAQ00N,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAM,2BAA4B,CAChE8mB,KAAM,sBAAuBultB,WAAW,IAG9C,EAKAsnE,aAAc,WACZ,IAAIjwrB,EAAO7jH,KAEX,GADA6jH,EAAKrpF,KAAOqpF,EAAKx/E,QAAQya,OAAO+Z,OAAOgyB,KACd,kBAAdg5B,EAAKrpF,KACdqpF,EAAKrpF,KAAOuqvB,EAAI6G,KAAKjsvB,OAAOq7vB,SAASn3qB,EAAKrpF,WACrC,IAAKqpF,EAAKrpF,KACf,MAAM,IAAIr6B,MAAM,2BAElB0jH,EAAK6vrB,QAAU3uB,EAAI6G,KAAK+oB,aAAa9wrB,EAAKrpF,KAC5C,EAKA4gwB,kBAAmB,SAA2BviuB,GAC5CA,EAASA,GAAU,CAAC,EACpB,IAAIgrD,EAAO7jH,KAEX,GAAK6jH,EAAKx/E,QAEH,CAEL,IAAIA,EAAUw/E,EAAKx/E,QACfya,EAASimuB,EAAI6G,KAAKn0qB,KAAKpzE,EAAQya,QACnCA,EAAO4wuB,iBAAmBrrvB,EAAQuwwB,sBAClC/wrB,EAAKx/E,QAAU,IAAIA,EAAQhe,YAAYm1wB,UAAU18uB,GACjD+kE,EAAKx/E,QAAQya,OAAO+Z,OAClBkstB,EAAI6G,KAAK9/lB,MAAMjoE,EAAKx/E,QAAQya,OAAO+Z,QAAU,CAAC,EAAGA,GACnD94C,OAAOC,eAAe6jG,EAAKx/E,QAAS,kBAAmB,CACrDvkB,IAAK,WAAa,OAAOukB,EAAQs0vB,eAAiB,EAClDx4wB,YAAY,EACZD,cAAc,GAElB,MAdE2jG,EAAKx/E,QAAU,IAAI0gvB,EAAIx4sB,GAAG,CAAC1T,OAAQA,GAevC,EAKAk7uB,iBAAkB,WAChB,IAAIlwrB,EAAO7jH,KACX,IACE6jH,EAAK/P,WAAaj0E,EAAWgkF,EAAKrpF,KACpC,CAAE,MAAOz6B,GAAK,CAGd,GAAI8jH,EAAK/P,WAAY,CACnB,IAAI+gsB,EAAcjswB,KAAK8wI,KAAK71D,EAAK/P,WAAa+P,EAAKmwrB,eAC/Ca,EAAchxrB,EAAKnR,WAAUmR,EAAKnR,SAAWmisB,EACnD,MACEhxrB,EAAK/P,gBAAazrG,CAEtB,EAKAgsyB,gBAAgB,EAKhBS,QAAS,EAKTC,kBAAmB,EAKnBC,mBAAoB,EAKpBlhsB,gBAAYzrG,EAKZisyB,SAAU,EAKVC,iBAAkB,EAKlBU,YAAa,EAKbT,UAAW,EAKXt7vB,MAAO,KAKPy6vB,aAAc,KAKd/jH,QAAQ,EAKRslH,aAAc,KAKdd,YAAa,KAKbe,iBAAkB,EAKlBjB,WAAY,WACV,IAAIrwrB,EAAO7jH,KACPo1yB,EAAUv1wB,EAAWgkF,EAAKrpF,MAE9B,GAAgB,IAAZ46wB,EAIF,OAHAvxrB,EAAKwwrB,gBAAiB,EACtBxwrB,EAAKywrB,SAAW,OAChBzwrB,EAAKwxrB,UAAUxxrB,EAAKrpF,MAItB,KAAOqpF,EAAKoxrB,YAAcpxrB,EAAKrQ,WAAaqQ,EAAKixrB,QAAUM,GAAS,CAClE,IAAI3nD,EAAS7ktB,KAAKuZ,IAAI0hE,EAAKixrB,QAAUjxrB,EAAKnR,SAAU0isB,GAChDnvvB,EAAM49D,EAAK6vrB,QAAQ5txB,KAAK+9F,EAAKrpF,KAAMqpF,EAAKixrB,QAASrnD,GACrD5poB,EAAKixrB,SAAWjxrB,EAAKnR,UAEjB7yE,EAAWomB,GAAO49D,EAAKnR,UAAYmR,EAAKixrB,UAAYM,KACtDvxrB,EAAKwwrB,gBAAiB,EACtBxwrB,EAAKywrB,SAAWzwrB,EAAK0wrB,iBAAmB,GAE1C1wrB,EAAKwxrB,UAAUpvvB,EACjB,CACF,EAKAkuvB,WAAY,WACV,IAAItwrB,EAAO7jH,KACX,KAAI6jH,EAAKoxrB,aAAepxrB,EAAKrQ,WAA7B,CAEA,IAAIvtD,EAAM49D,EAAKrpF,KAAKmvB,KAAKk6D,EAAKnR,SAAWmR,EAAKsxrB,mBACpCtxrB,EAAKrpF,KAAKmvB,OAOpB,GANI1D,IACF49D,EAAKuwrB,YAAYxyxB,KAAKqkC,GACtB49D,EAAKsxrB,kBAAoBlvvB,EAAIrlD,OAC7BijH,EAAKkxrB,mBAAqB9uvB,EAAIrlD,QAG5BijH,EAAKsxrB,kBAAoBtxrB,EAAKnR,SAAU,CAE1C,IAAI4isB,EAAmC,IAA5BzxrB,EAAKuwrB,YAAYxzyB,OAC1BijH,EAAKuwrB,YAAY,GAAK1ywB,EAAOhf,OAAOmhG,EAAKuwrB,aAK3C,GAJAvwrB,EAAKuwrB,YAAc,GACnBvwrB,EAAKsxrB,iBAAmB,EAGpBG,EAAK10yB,OAASijH,EAAKnR,SAAU,CAC/B,IAAIzhF,EAAOqkxB,EAAKlvxB,MAAMy9F,EAAKnR,UAC3BmR,EAAKuwrB,YAAYxyxB,KAAKqP,GACtB4yF,EAAKsxrB,kBAAoBlkxB,EAAKrwB,OAC9B00yB,EAAOA,EAAKlvxB,MAAM,EAAGy9F,EAAKnR,SAC5B,CAEAmR,EAAKwxrB,UAAUC,EACjB,CAEIzxrB,EAAKwwrB,iBAAmBxwrB,EAAK0xrB,gBAE/BD,EAAmC,IAA5BzxrB,EAAKuwrB,YAAYxzyB,OACpBijH,EAAKuwrB,YAAY,GAAK1ywB,EAAOhf,OAAOmhG,EAAKuwrB,aAC7CvwrB,EAAKuwrB,YAAc,GACnBvwrB,EAAKsxrB,iBAAmB,EACxBtxrB,EAAK/P,WAAa+P,EAAKkxrB,kBACvBlxrB,EAAK0xrB,eAAgB,GAEC,IAAlB1xrB,EAAKywrB,UAAkBgB,EAAK10yB,OAAS,KACvCijH,EAAKywrB,WACLzwrB,EAAKwxrB,UAAUC,KAInBzxrB,EAAKrpF,KAAKmvB,KAAK,EA3C+B,CA4ChD,EAKA0rvB,UAAW,SAAmB7rwB,GAC5B,IAAIq6E,EAAO7jH,KACX,GAAI6jH,EAAK+rkB,OAAQ,OAAO,KAExB,IAAItomB,IAAeu8B,EAAK0wrB,iBACxB,GAAI1wrB,EAAKwwrB,gBAAiC,IAAf/stB,EAAkB,CAC3C,IAAIzuB,EAAS,CAACgyB,KAAMrhD,GAChBxpC,KAAKmmC,OACP0yB,EAAO2rB,QAAUxkF,KAAKw1yB,oBAExB,IAAIhkmB,EAAM3tF,EAAKx/E,QAAQoxwB,UAAU58uB,GAIjC,OAHA24I,EAAIkkmB,eAAiB7xrB,EACrB2tF,EAAIt9F,GAAG,qBAAsB2P,EAAKzN,UAAUzpC,KAAKk3C,EAAK8xrB,kBACtD9xrB,EAAK6wrB,WAAaljmB,EACX,IACT,CAAO,GAAI3tF,EAAKx/E,QAAQya,OAAO+Z,OAAO6vB,WAAY,CAChD,IAAIrkF,EAAM0gxB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAM,oEAAqE,CACtG8mB,KAAM,gBAAiBultB,WAAW,IAIpC,OADA3onB,EAAKwsc,QAAQhsjB,GACN,IACT,CAEA,GAAIw/G,EAAK8vrB,aAAarstB,IAAsD,OAAvCu8B,EAAK8vrB,aAAarstB,GAAY9P,KACjE,OAAO,KAGTqsC,EAAKoxrB,cACApxrB,EAAKx/E,QAAQya,OAAO+Z,OAAO0pB,SAiB9BshC,EAAK+xrB,WAAWpswB,EAAO89C,GAflBu8B,EAAKqxrB,aAYRrxrB,EAAKgyrB,YAAYrswB,EAAO89C,IAXxBu8B,EAAKqxrB,aAAerxrB,EAAKx/E,QAAQyxwB,wBACjCjyrB,EAAKqxrB,aAAahhsB,GAAG,WAAW,SAASw9F,GACvC7tF,EAAKx/E,QAAQya,OAAO+Z,OAAO0pB,SAAWmvH,EAAK/nM,KAAK44E,SAChDshC,EAAKqxrB,aAAe,IACtB,IACArxrB,EAAKgyrB,YAAYrswB,EAAO89C,GACxBu8B,EAAKqxrB,aAAahhsB,GAAG,SAAS,SAAS7vG,GACrCw/G,EAAKwsc,QAAQhsjB,EACf,IACAw/G,EAAKqxrB,aAAavouB,OAOxB,EAKA6ouB,iBAAkB,WAEhB,IADA,IAAIO,EAAgB,GACX/0yB,EAAI,EAAGA,EAAIhB,KAAKmmC,KAAKvlC,OAAQI,IACpC+0yB,EAAcn0xB,KAAKmjwB,EAAI6G,KAAK+gB,UAAU3syB,KAAKmmC,KAAKnlC,GAAGohF,KAAO,IACxD2isB,EAAI6G,KAAK+gB,UAAU3syB,KAAKmmC,KAAKnlC,GAAG49F,QAGpC,OAAOm3sB,EAAc/uxB,KAAK,IAC5B,EAKA4uxB,WAAY,SAAoBpswB,EAAO89C,GACrC,IAAIu8B,EAAO7jH,KAEPg2yB,EAAa,CACfnrtB,KAAMrhD,EACNohD,cAAem6rB,EAAI6G,KAAK70qB,OAAOl3E,WAAW2J,GAC1C+9C,WAAYD,GAGV2utB,EAAW,CAACz+tB,KAAM,KAAM+P,WAAYD,GACxCu8B,EAAK8vrB,aAAarstB,GAAc2utB,EAEhC,IAAIzkmB,EAAM3tF,EAAKx/E,QAAQuxwB,WAAWI,GAClCnyrB,EAAK3qE,MAAMouC,GAAckqH,EACzBA,EAAI0kmB,mBAAqB,EACzB1kmB,EAAIkkmB,eAAiB7xrB,EACrB2tF,EAAIt9F,GAAG,qBAAsB2P,EAAKzN,UAClCo7F,EAAI7kI,MAAK,SAAStoE,EAAKsF,GAIrB,UAHOk6G,EAAK3qE,MAAM88vB,EAAWzutB,YAC7Bs8B,EAAKoxrB,eAEA5wyB,KAASsF,IAASA,EAAK6tE,MAAO,CACjC,IAAIv3E,EAAU,0CACV8kxB,EAAI6G,KAAKh3N,cACX30jB,GAAW,oDAGboE,EAAM0gxB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAMF,GAAU,CACvCgnB,KAAM,cAAeultB,WAAW,GAEpC,CACA,OAAInouB,EAAYw/G,EAAKwsc,QAAQhsjB,GAEzBw/G,EAAK8vrB,aAAarstB,IAAsD,OAAvCu8B,EAAK8vrB,aAAarstB,GAAY9P,KAAsB,MACzFy+tB,EAASz+tB,KAAO7tE,EAAK6tE,KACrBqsC,EAAK2wrB,iBACD3wrB,EAAKwwrB,gBAAkBxwrB,EAAK2wrB,YAAc3wrB,EAAK0wrB,iBACjD1wrB,EAAK4wrB,kBAEL5wrB,EAAK+vrB,UAAU9txB,KAAK+9F,IAExB,GACF,EAKAgyrB,YAAa,SAAqBrswB,EAAO89C,GACvC,IAAIu8B,EAAO7jH,KACX6jH,EAAKqxrB,aAAahhsB,GAAG,WAAW,WAC9B2P,EAAK+xrB,WAAWpswB,EAAO89C,EACzB,GACF,EAKA+oe,QAAS,SAAiBhsjB,GACxB,IAAIw/G,EAAO7jH,KACP6jH,EAAK+rkB,SAGmC,oBAAjC/rkB,EAAKrpF,KAAKqwS,oBACW,oBAArBhnN,EAAKrpF,KAAKsB,SACnB+nF,EAAKrpF,KAAKqwS,mBAAmB,YAC7BhnN,EAAKrpF,KAAKqwS,mBAAmB,OAC7BhnN,EAAKrpF,KAAKsB,UAIR+nF,EAAKqxrB,eACPrxrB,EAAKqxrB,aAAarqe,mBAAmB,WACrChnN,EAAKqxrB,aAAarqe,mBAAmB,SACrChnN,EAAKqxrB,aAAarqe,mBAAmB,mBAC9BhnN,EAAKqxrB,cAGVrxrB,EAAKx/E,QAAQya,OAAO+Z,OAAO0pB,WAAashC,EAAKpQ,kBAC/CoQ,EAAKx/E,QAAQ8xwB,uBAAuBxpuB,OAC3Bk3C,EAAKpQ,oBACdoQ,EAAKwwrB,gBAAiB,GAGxBtvB,EAAI6G,KAAK9pN,KAAKj+c,EAAK3qE,OAAO,SAASouC,EAAYluC,GAC7CA,EAAKyxR,mBAAmB,YACxBzxR,EAAKi5D,OACP,IAEAwR,EAAKoxrB,YAAc,EACnBpxrB,EAAKixrB,QAAU,EACfjxrB,EAAKywrB,SAAW,EAChBzwrB,EAAK0wrB,iBAAmB,EACxB1wrB,EAAK3qE,MAAQ,CAAC,EACd2qE,EAAK+rkB,QAAS,EACd/rkB,EAAK0E,SAASlkH,GAChB,EAKAowyB,gBAAiB,WACf,IAAI5wrB,EAAO7jH,KACPo2yB,EAAiB,CAAEpztB,gBAAiB,CAAE2V,MAAOkrB,EAAK8vrB,aAAavtxB,MAAM,KACzEy9F,EAAKx/E,QAAQgywB,wBAAwBD,GAAgB,SAAS/xyB,EAAKsF,GACjE,GAAItF,EACF,OAAOw/G,EAAKwsc,QAAQhsjB,GAOtB,GAJIsF,GAAiC,kBAAlBA,EAAKykF,WACtBzkF,EAAKykF,SAAWzkF,EAAKykF,SAASztF,QAAQ,OAAQ,MAG5C2hB,MAAMC,QAAQshG,EAAK19E,MAAO,CAC5B,IAAK,IAAInlC,EAAI,EAAGA,EAAI6iH,EAAK19E,KAAKvlC,OAAQI,IACpC6iH,EAAK19E,KAAKnlC,GAAG49F,MAAQl+F,OAAOmjH,EAAK19E,KAAKnlC,GAAG49F,OAE3CilB,EAAKx/E,QAAQiywB,iBACX,CAAC9xtB,QAAS,CAACmP,OAAQkwB,EAAK19E,QACxB,SAASpmC,EAAGw4B,GACNx4B,EACF8jH,EAAK0E,SAASxoH,GAEd8jH,EAAK0E,SAASxoH,EAAG4J,EAErB,GAEJ,MACEk6G,EAAK0E,SAASlkH,EAAKsF,EAEvB,GACF,EAKAgsyB,iBAAkB,SAA0BtxyB,EAAKsF,GAC/C,IAAI26xB,EAAStkyB,KAAKukC,QAAQmxwB,eACtBa,EAAUv2yB,KAAKukC,QAAQg+W,YACvB/kW,EAAW+4vB,EAAQ/4vB,SACvB,GAAIn5C,EAAK,OAAOigyB,EAAO/7qB,SAASlkH,GAChCsF,EAAKykF,SACH,CAAC5wC,EAASvD,SAAU,KAAMuD,EAASrW,KAAMovwB,EAAQ/2xB,MAAMwH,KAAK,IAC9Drd,EAAKsb,IAAMjlB,KAAKukC,QAAQs0B,OAAOupB,IAC/Bz4E,EAAKy4E,IAAMpiF,KAAKukC,QAAQs0B,OAAOupB,IAC/Bz4E,EAAK24B,OAAStiC,KAAKukC,QAAQs0B,OAAOv2B,OAClCgiwB,EAAO/7qB,SAASlkH,EAAKsF,EACvB,EAKAysG,SAAU,SAAkBn8C,GAC1B,IAAIqquB,EAAStkyB,KAAK01yB,eACK,cAAnB11yB,KAAK6+B,WACPo7B,EAAK7gB,KAAO,EACZ6gB,EAAKh1C,IAAMjlB,KAAK64D,OAAOupB,MAEvBkitB,EAAO0Q,oBAAsB/6uB,EAAKy6C,OAAS10G,KAAKk2yB,mBAChDl2yB,KAAKk2yB,mBAAqBj8uB,EAAKy6C,OAC/Bz6C,EAAO,CACLy6C,OAAQ4vrB,EAAO0Q,mBACfrgsB,MAAO2vrB,EAAOxwrB,WACd16D,KAAMp5C,KAAK64D,OAAO0uB,WAClBtiE,IAAKjlB,KAAK64D,OAAOupB,MAGrBkitB,EAAOjurB,KAAK,qBAAsB,CAACp8C,GACrC,IAGF8qtB,EAAI6G,KAAKwmB,MAAMrtB,EAAIx4sB,GAAG6jtB,cAAerL,EAAI+M,oBAKzC/M,EAAIx4sB,GAAG6jtB,cAAcsC,mBAAqB,SAA4BC,GACpE3yxB,KAAKE,UAAUilM,QAAU4/kB,EAAI6G,KAAKgH,gBAAgB,OAAQD,EAC5D,EAKA5N,EAAIx4sB,GAAG6jtB,cAAc0C,wBAA0B,kBACtC9yxB,KAAKE,UAAUilM,OACxB,EAEA4/kB,EAAI6G,KAAKyE,YAAYtL,EAAIx4sB,GAAG6jtB,eAK5BnrkB,EAAOrtL,QAAUmtvB,EAAIx4sB,GAAG6jtB,qCC3tBxB,IAAIrL,EAAM/tvB,EAAQ,MAelB+tvB,EAAI+M,mBAAqB/M,EAAI6G,KAAK/1mB,QAAQ,CAExCxvJ,YAAa,WACXrmB,KAAKq8xB,QAAU,CAAC,CAClB,EAKAxvkB,UAAW,SAAmByR,GAC5B,OAAOt+N,KAAKq8xB,QAAQ/9jB,GAAat+N,KAAKq8xB,QAAQ/9jB,GAAWl4M,MAAM,GAAK,EACtE,EAEA8tF,GAAI,SAAYoqH,EAAWnqH,EAAUqisB,GAQnC,OAPIx2yB,KAAKq8xB,QAAQ/9jB,GACfk4kB,EACEx2yB,KAAKq8xB,QAAQ/9jB,GAAW6pR,QAAQh0Y,GAChCn0G,KAAKq8xB,QAAQ/9jB,GAAW18M,KAAKuyF,GAE/Bn0G,KAAKq8xB,QAAQ/9jB,GAAa,CAACnqH,GAEtBn0G,IACT,EAEAy2yB,QAAS,SAAiBn4kB,EAAWnqH,EAAUqisB,GAE7C,OADArisB,EAASuisB,UAAW,EACb12yB,KAAKk0G,GAAGoqH,EAAWnqH,EAAUqisB,EACtC,EAEA5hnB,eAAgB,SAAwB0pC,EAAWnqH,GACjD,IAAI04G,EAAY7sN,KAAKq8xB,QAAQ/9jB,GAC7B,GAAIzR,EAAW,CAGb,IAFA,IAAIjsN,EAASisN,EAAUjsN,OACnB8b,GAAY,EACP1b,EAAI,EAAGA,EAAIJ,IAAUI,EACxB6rN,EAAU7rN,KAAOmzG,IACnBz3F,EAAW1b,GAGX0b,GAAY,GACdmwM,EAAU/9L,OAAOpS,EAAU,EAE/B,CACA,OAAO1c,IACT,EAEA6qU,mBAAoB,SAA4BvsG,GAM9C,OALIA,SACKt+N,KAAKq8xB,QAAQ/9jB,GAEpBt+N,KAAKq8xB,QAAU,CAAC,EAEXr8xB,IACT,EAKAq2G,KAAM,SAAcioH,EAAWq4kB,EAAWC,GACnCA,IAAcA,EAAe,WAAa,GAC/C,IAAI/plB,EAAY7sN,KAAK6sN,UAAUyR,GAC3Bz2G,EAAQglG,EAAUjsN,OAEtB,OADAZ,KAAK62yB,cAAchqlB,EAAW8plB,EAAWC,GAClC/urB,EAAQ,CACjB,EAKAgvrB,cAAe,SAAuBhqlB,EAAWpkM,EAAMmuxB,EAAcE,GACnE,IAAIjzrB,EAAO7jH,KACPuE,EAAQuyyB,GAAa,KAEzB,SAASC,EAAiB1yyB,GACxB,GAAIA,IACFE,EAAQwgxB,EAAI6G,KAAKrnxB,MAAMA,GAAS,IAAIpE,MAASkE,GACzCw/G,EAAKgsrB,sBACP,OAAO+G,EAAa9wxB,KAAK+9F,EAAMt/G,GAGnCs/G,EAAKgzrB,cAAchqlB,EAAWpkM,EAAMmuxB,EAAcryyB,EACpD,CAEA,KAAOsoN,EAAUjsN,OAAS,GAAG,CAC3B,IAAIuzG,EAAW04G,EAAU5wL,QACzB,GAAIk4E,EAASuisB,SAEX,YADAvisB,EAASvvF,MAAMi/F,EAAMp7F,EAAK/F,OAAO,CAACq0xB,KAGlC,IACE5isB,EAASvvF,MAAMi/F,EAAMp7F,EACvB,CAAE,MAAOpkB,GACPE,EAAQwgxB,EAAI6G,KAAKrnxB,MAAMA,GAAS,IAAIpE,MAASkE,EAC/C,CACA,GAAIE,GAASs/G,EAAKgsrB,qBAEhB,YADA+G,EAAa9wxB,KAAK+9F,EAAMt/G,EAI9B,CACAqyyB,EAAa9wxB,KAAK+9F,EAAMt/G,EAC1B,EA0BAy0W,aAAc,SAAsBnsJ,GAClC,IAAIhpG,EAAO7jH,KAYX,OATI6sN,EAAUwvkB,UAASxvkB,EAAYA,EAAUwvkB,SAE7CtX,EAAI6G,KAAK9pN,KAAKj1W,GAAW,SAAStkN,EAAOsmR,GACd,oBAAdA,IAA0BA,EAAY,CAACA,IAClDk2f,EAAI6G,KAAK4G,UAAU3jgB,GAAW,SAAStmK,GACrC1E,EAAK3P,GAAG3rG,EAAOggH,EACjB,GACF,IAEO1E,CACT,EAkBA+1qB,iBAAkB,SAA0Bx5xB,EAAMk+N,EAAW/1G,EAAUiurB,GAGrE,OAFAx2yB,KAAKI,GAAQmoH,EACbvoH,KAAK20L,YAAY2pC,EAAW/1G,EAAUiurB,GAC/Bx2yB,IACT,EAKAg3yB,sBAAuB,SAA+B52yB,EAAMk+N,EAAW/1G,EAAUiurB,GAE/E,OADAjurB,EAASmurB,UAAW,EACb12yB,KAAK45xB,iBAAiBx5xB,EAAMk+N,EAAW/1G,EAAUiurB,EAC1D,EAyBAxX,kBAAmB,SAA2Bz2qB,GAC5C,IAAI1E,EAAO7jH,KASX,OARAuoH,GACE,WACE1E,EAAK+1qB,iBAAiBh1wB,MAAMi/F,EAAM/+F,UACpC,IACA,WACE++F,EAAKmzrB,sBAAsBpyxB,MAAMi/F,EAAM/+F,UACzC,IAEK9kB,IACT,IAOF+kxB,EAAI+M,mBAAmB5xxB,UAAUy0L,YAAcowlB,EAAI+M,mBAAmB5xxB,UAAUg0G,GAKhF+wG,EAAOrtL,QAAUmtvB,EAAI+M,wDC1OjB/M,EAAM/tvB,EAAQ,MACdy6vB,EAAMz6vB,EAAQ,OACdw3wB,EAAex3wB,EAAQ,OAEvB6+I,EAAUkvmB,EAAI6G,KAAK/1mB,QACnBohoB,EAAc,EACdC,EAAelgxB,EAAQ,OAW3B+tvB,EAAIC,QAAUnvmB,EAAQ,CAMpBxvJ,YAAa,SAAiBy4B,GAC5B,IAAK9+C,KAAKm3yB,iBACR,MAAMpyB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MACvB,mDAGJ,GAAI2+C,EAAQ,CACV,GAAIA,EAAOlP,OAAQ,CACjB,IAAIA,EAASkP,EAAOlP,OAChBsnwB,EAAa53vB,aAAa1P,KAC5BkP,EAAOlP,OAASsnwB,EAAa33vB,cAAc3P,GAC3CkP,EAAOsY,iBAAkB,GAEvB8/uB,EAAa3I,eAAe3+vB,KAC9BkP,EAAOlP,OAASsnwB,EAAa33vB,cAAc3P,GAE/C,CACmC,mBAAxBkP,EAAOs4vB,cAC0B,mBAAhCt4vB,EAAOqY,uBACjBrY,EAAOqY,qBAAuBrY,EAAOs4vB,aAEzC,CAEA,IAAIC,EAAer3yB,KAAKm3yB,iBAAiBr4vB,GAAU,CAAC,GACpD,GAAIu4vB,EAAc,CAChB,IAAI5mB,EAAiB1L,EAAI6G,KAAKn0qB,KAAK34D,GAC/BisuB,EAAM,IAAIssB,EAAav4vB,GAO3B,OANA/+B,OAAOC,eAAe+qwB,EAAK,kBAAmB,CAC5CjrwB,IAAK,WAAa,OAAO2wwB,CAAgB,EACzCtwwB,YAAY,EACZD,cAAc,IAEhB6qwB,EAAIwV,YAAc0W,EACXlsB,CACT,CACA/qxB,KAAK+zM,WAAWj1J,EAClB,EAKAi1J,WAAY,SAAoBj1J,GAC9B,IAAI85uB,EAAY7T,EAAIjmuB,OAAO9+C,KAAK64xB,mBAahC,GAZA74xB,KAAK8+C,OAAS,IAAIimuB,EAAI4I,OAAO5I,EAAIjmuB,QAC7B85uB,GAAW54xB,KAAK8+C,OAAOznB,OAAOuhwB,GAAW,GACzC95uB,GAAQ9+C,KAAK8+C,OAAOznB,OAAOynB,GAAQ,GAEvC9+C,KAAKs3yB,kBACAt3yB,KAAK8+C,OAAOtB,UAAUgxvB,EAAaE,kBAAkB1uyB,MAE1DA,KAAK8+C,OAAOtB,SAAWx9C,KAAKu3yB,qBAAqBv3yB,KAAK8+C,OAAOtB,UAC7Dx9C,KAAKw3yB,YAAYx3yB,KAAK8+C,OAAOtB,UAE7BunuB,EAAI+M,mBAAmBhswB,KAAK9lB,MAC5B+kxB,EAAIC,QAAQyyB,8BAA8Bz3yB,OACrCA,KAAK8+C,OAAO+wuB,sBAAwB9K,EAAIC,QAAQ0yB,wBAA0B13yB,KAAK23yB,UAAW,CAC7F,IAAIA,EAAY33yB,KAAK23yB,UACrB33yB,KAAK45xB,iBAAiB,mBAAoB,WAAW,SAA0BrxxB,GAC7Ew2B,EAAQiywB,UAAS,WAAY2G,EAAU74nB,aAAav2K,EAAO,GAC7D,IACAvI,KAAK45xB,iBAAiB,sBAAuB,kBAAkB,SAA6BrxxB,GAC1Fw2B,EAAQiywB,UAAS,WAAY2G,EAAU74nB,aAAav2K,EAAO,GAC7D,GACF,CACF,EAKA+uyB,gBAAiB,WACjB,EAKAH,iBAAkB,SAA0BS,GAC1C,IAAI94vB,EAAS84vB,EACb,GAAK7yB,EAAI6G,KAAKrmoB,QAAQvlJ,KAAKye,KAEpB,IAAIqgC,EAAO+4vB,UAChB,OAAO9yB,EAAIC,QAAQ8yB,iBAAiB93yB,KAAKqmB,YAAay4B,EAAO+4vB,WACxD,GAAK73yB,KAAKqmB,YAAY6+vB,SAEtB,EACLpmuB,EAAS,IAAIimuB,EAAI4I,OAAO5I,EAAIjmuB,SACrBznB,OAAOugxB,GAAe,GAC7B,IAAIp5vB,EAAUM,EAAO8vuB,YAAY5uxB,KAAKqmB,YAAYwywB,mBAElD,OADAr6uB,EAAUA,GAAWM,EAAO2W,WACrBz1D,KAAK+3yB,sBAAsBv5vB,EACpC,CAPE,OAAO,IAOT,CAXE,OAAO,IAYX,EAKAu5vB,sBAAuB,SAA+Bv5vB,GAMpD,OALAA,EAAUx+C,KAAKg4yB,wBAAwBx5vB,GACI,OAAvCx+C,KAAKqmB,YAAY6+vB,SAAS1muB,IAC5BumuB,EAAIC,QAAQ8yB,iBAAiB93yB,KAAKqmB,YAAam4B,GAG1Cx+C,KAAKqmB,YAAY6+vB,SAAS1muB,EACnC,EAKAw5vB,wBAAyB,SAAiCx5vB,GACxD,IAAKx+C,KAAKqmB,YAAY6+vB,UAAiD,IAArCllxB,KAAKqmB,YAAY6+vB,SAAStkxB,OAC1D,MAAM,IAAIT,MAAM,0BACAH,KAAKqmB,YAAYwywB,mBASnC,GANKr6uB,EAEMumuB,EAAI6G,KAAKkS,OAAOt/uB,EAASl7C,QAClCk7C,EAAUumuB,EAAI6G,KAAKz5wB,KAAK8lyB,QAAQz5vB,GAAS58C,MAAM,KAAK,IAFpD48C,EAAU,SAKRz+B,OAAO6Y,eAAe54B,KAAKqmB,YAAY6+vB,SAAU1muB,GACnD,OAAOA,EAKT,IAFA,IAAIj6B,EAAOxE,OAAOwE,KAAKvkB,KAAKqmB,YAAY6+vB,UAAU90uB,OAC9C8nwB,EAAkB,KACbl3yB,EAAIujB,EAAK3jB,OAAS,EAAGI,GAAK,EAAGA,IAMpC,GAHoC,MAAhCujB,EAAKvjB,GAAGujB,EAAKvjB,GAAGJ,OAAS,KAC3Bs3yB,EAAkB3zxB,EAAKvjB,IAErBujB,EAAKvjB,GAAG6E,OAAO,EAAG,KAAO24C,EAC3B,OAAO05vB,EAIX,MAAM,IAAI/3yB,MAAM,kBAAoBH,KAAKqmB,YAAYwywB,kBACrC,uCAAyCr6uB,EAAU,IACrE,EAKA//B,IAAK,CAAC,EAKN05xB,kBAAmB,EAKnBC,kBAAmB,SAA2B7vrB,GAC5C,GAAKA,EAEE,IAAwB,oBAAbA,EAGhB,MAAM,IAAIpoH,MAAM,iCAAoCooH,EAAW,mCAF/DvoH,KAAKq4yB,qBAAuB9vrB,CAG9B,MALEvoH,KAAKq4yB,qBAAuB,IAMhC,EAeAhhB,YAAa,SAAqBx4vB,EAAWg6B,EAAQ0vD,GAOnD,GANsB,oBAAX1vD,IACT0vD,EAAW1vD,EACXA,EAAS,MAGXA,EAASA,GAAU,CAAC,EAChB74D,KAAK8+C,OAAO+Z,OAAQ,CACtB,IAAI/a,EAAQ99C,KAAKye,IAAI2stB,WAAWvssB,GAC5Bif,IACF+a,EAASkstB,EAAI6G,KAAKn0qB,KAAK5+C,GACvBkstB,EAAI6G,KAAK9pN,KAAK9hkB,KAAK8+C,OAAO+Z,QAAQ,SAAS5zC,EAAKje,GAC1C82C,EAAM5d,MAAMu2vB,QAAQxxwB,UACF5c,IAAhBwwD,EAAO5zC,IAAsC,OAAhB4zC,EAAO5zC,KACtC4zC,EAAO5zC,GAAOje,GAGpB,IAEJ,CAEA,IAAIu9B,EAAU,IAAIwgvB,EAAI93kB,QAAQjtM,KAAM6+B,EAAWg6B,GAI/C,OAHA74D,KAAKs4yB,uBAAuB/zwB,GAC5BvkC,KAAKu4yB,wBAAwBh0wB,GACzBgkF,GAAUhkF,EAAQooC,KAAK47C,GACpBhkF,CACT,EAgBAi0wB,2BAA4B,SAAoC35wB,EAAWg6B,EAAQ0vD,GAC3D,oBAAX1vD,IACT0vD,EAAW1vD,EACXA,EAAS,CAAC,GAGZ,IAAIt0B,EAAUvkC,KAAKq3xB,YAAYx4vB,EAAWg6B,GAAQm5uB,oBAClD,OAAOzprB,EAAWhkF,EAAQooC,KAAK47C,GAAYhkF,CAC7C,EAoBAk0wB,QAAS,SAAiBh0yB,EAAOo0D,EAAQ0vD,GAEvC,OADa,IAAIw8pB,EAAI6M,eAAe5xxB,KAAMyE,GAC5B8yL,KAAK1+H,EAAQ0vD,EAC7B,EAKA+vrB,uBAAwB,SAAgC/zwB,GAGtD,IAFA,IAAIi3E,EAAO,CAACupqB,EAAI3kjB,OAAQ2kjB,EAAI0S,eAAeC,KAAM13xB,KAAK04yB,mBAC1C3zB,EAAI0S,eAAesK,UACtB/gyB,EAAI,EAAGA,EAAIw6G,EAAK56G,OAAQI,IAC3Bw6G,EAAKx6G,IAAIujC,EAAQy0U,aAAax9P,EAAKx6G,IAIpChB,KAAK8+C,OAAOiwuB,iBACfxqvB,EAAQqwJ,eAAe,WACrBmwlB,EAAI0S,eAAeC,KAAKC,qBAGxB33xB,KAAK8+C,OAAOlb,QACdW,EAAQy0U,aAAa+ra,EAAI0S,eAAej1W,QAG1Cxib,KAAK24yB,sBAAsBp0wB,GAEoC,oBAApDvkC,KAAKqmB,YAAYnmB,UAAUm4yB,sBACpCr4yB,KAAKqmB,YAAYnmB,UAAUm4yB,qBAAqB9zwB,GAG9CxkB,OAAO7f,UAAU04B,eAAe9S,KAAK9lB,KAAM,yBAAgE,oBAA9BA,KAAKq4yB,sBACpFr4yB,KAAKq4yB,qBAAqB9zwB,EAE9B,EAOAq0wB,aAAc,SAAsBr0wB,GAClC,IAAI9lB,EAAM8lB,EAAQF,QAAQ5lB,IAAI2stB,WAAW7msB,EAAQ1F,WAC7Cg6wB,EAAkB,CACpBlouB,KAAM,UACN8gtB,IAAKhzwB,EAAMA,EAAIre,KAAOmkC,EAAQ1F,UAC9Bu5D,QAAS,EACT4srB,QAASzgvB,EAAQF,QAAQ5lB,IAAI8oC,WAAahjB,EAAQF,QAAQ5lB,IAAI4mxB,eAC9DviwB,OAAQyB,EAAQg+W,YAAY3yW,OAC5BkpwB,mBAAoB,EACpBC,UAAWx0wB,EAAQg+W,YAAY+gZ,gBAE7B5/xB,EAAW6gC,EAAQ7gC,SAIvB,GAHIA,EAAS80xB,aAAahyuB,aACxBqyvB,EAAgBG,oBAAsBt1yB,EAAS80xB,aAAahyuB,YAE1D9iD,EAASa,MAAO,CAClB,IAAIA,EAAQb,EAASa,MACJb,EAAS80xB,aAAahyuB,WACtB,KACXjiD,EAAM0iB,OAAM4xxB,EAAgBI,kBAAoB10yB,EAAM0iB,MACtD1iB,EAAMtE,UAAS44yB,EAAgBK,yBAA2B30yB,EAAMtE,YAEhEsE,EAAM0iB,MAAQ1iB,EAAMnE,QAAMy4yB,EAAgBM,kBAAoB50yB,EAAM0iB,MAAQ1iB,EAAMnE,MAClFmE,EAAMtE,UAAS44yB,EAAgBO,yBAA2B70yB,EAAMtE,SAExE,CACA,OAAO44yB,CACT,EAOAQ,gBAAiB,SAAyB90wB,GACxC,IAAI9lB,EAAM8lB,EAAQF,QAAQ5lB,IAAI2stB,WAAW7msB,EAAQ1F,WAC7Cg6wB,EAAkB,CACpBlouB,KAAM,iBACN8gtB,IAAKhzwB,EAAMA,EAAIre,KAAOmkC,EAAQ1F,UAC9Bu5D,QAAS,EACT4srB,QAASzgvB,EAAQF,QAAQ5lB,IAAI8oC,WAAahjB,EAAQF,QAAQ5lB,IAAI4mxB,eAC9DiU,KAAM/0wB,EAAQg+W,YAAY/kW,SAASvW,SACnC8xwB,UAAWx0wB,EAAQg+W,YAAY+gZ,gBAE7B5/xB,EAAW6gC,EAAQ7gC,SAWvB,OAVIA,EAAS80xB,aAAahyuB,aACxBqyvB,EAAgBU,eAAiB71yB,EAAS80xB,aAAahyuB,aAGtDjiB,EAAQ0twB,kBACT1twB,EAAQF,QAAQya,OAAOxN,aACvB/M,EAAQF,QAAQya,OAAOxN,YAAYmB,cAEnComwB,EAAgBW,UAAYj1wB,EAAQF,QAAQya,OAAOxN,YAAYmB,aAE5D/uC,EAAS80xB,aAAan2xB,SACvBkiC,EAAQg+W,YAAYlgZ,QAAQ,0BAC9Bw2yB,EAAgB/jB,aAAevwvB,EAAQg+W,YAAYlgZ,QAAQ,yBAEzDqB,EAAS80xB,aAAan2xB,QAAQ,sBAChCw2yB,EAAgBY,eAAiB/1yB,EAAS80xB,aAAan2xB,QAAQ,qBAE7DqB,EAAS80xB,aAAan2xB,QAAQ,sBAChCw2yB,EAAgBa,cAAgBh2yB,EAAS80xB,aAAan2xB,QAAQ,qBAE5DqB,EAAS80xB,aAAan2xB,QAAQ,gBAChCw2yB,EAAgBc,QAAUj2yB,EAAS80xB,aAAan2xB,QAAQ,eAEnDw2yB,GAboCA,CAc7C,EAMAe,iBAAkB,SAA0Br1wB,GAC1C,IAAIs0wB,EAAkB74yB,KAAKq5yB,gBAAgB90wB,GACvC7gC,EAAW6gC,EAAQ7gC,SACnBa,EAAQb,EAASa,MAQrB,OAPIb,EAAS80xB,aAAahyuB,WAAa,KACjCjiD,EAAM0iB,OAAM4xxB,EAAgBgB,aAAet1yB,EAAM0iB,MACjD1iB,EAAMtE,UAAS44yB,EAAgBiB,oBAAsBv1yB,EAAMtE,YAE3DsE,EAAM0iB,MAAQ1iB,EAAMnE,QAAMy4yB,EAAgBkB,aAAex1yB,EAAM0iB,MAAQ1iB,EAAMnE,MAC7EmE,EAAMtE,UAAS44yB,EAAgBmB,oBAAsBz1yB,EAAMtE,UAE1D44yB,CACT,EAOAN,wBAAyB,SAAiCh0wB,GACxD,IAAI01wB,EACAC,EACAC,EACAC,EAEAxqwB,EACAyqwB,EAFAC,EAAe,EAGfz2rB,EAAO7jH,KAGXukC,EAAQ2vE,GAAG,YAAY,WACrBkmsB,EAAoBr1B,EAAI6G,KAAKC,UAAUtoxB,MACvC82yB,EAAgB/2yB,KAAKC,KACvB,GALgB,MAMhBghC,EAAQ2vE,GAAG,QAAQ,WACjBgmsB,EAAuBn1B,EAAI6G,KAAKC,UAAUtoxB,MAC1C02yB,EAAmB32yB,KAAKC,MACxBqsC,EAASrL,EAAQg+W,YAAY3yW,OAC7B0qwB,GACF,GAXgB,MAYhB/1wB,EAAQ2vE,GAAG,oBAAoB,WAC7BimsB,EAAiBvxwB,KAAKE,MAAMi8uB,EAAI6G,KAAKC,UAAUtoxB,MAAQ22yB,EACzD,IACA31wB,EAAQq1vB,iBAAiB,mBAAoB,WAAW,WACtD,IAAIyf,EAAkBx1rB,EAAKw1rB,gBAAgB90wB,GAC3C80wB,EAAgBkB,UAAYN,EAC5BZ,EAAgBmB,eAAiBL,GAAkB,EAAIA,EAAiB,EACxEd,EAAgBv2wB,OAAS8M,EACzBi0E,EAAKxN,KAAK,iBAAkB,CAACgjsB,GAC/B,IACA90wB,EAAQq1vB,iBAAiB,yBAA0B,SAAS,WAC1D,IAAIyf,EAAkBx1rB,EAAK+1rB,iBAAiBr1wB,GAC5C80wB,EAAgBkB,UAAYN,EAE5BE,EAAiBA,GACfvxwB,KAAKE,MAAMi8uB,EAAI6G,KAAKC,UAAUtoxB,MAAQ22yB,GACxCb,EAAgBmB,eAAiBL,GAAkB,EAAIA,EAAiB,EACxEd,EAAgBv2wB,OAAS8M,EACzBi0E,EAAKxN,KAAK,iBAAkB,CAACgjsB,GAC/B,IACA90wB,EAAQq1vB,iBAAiB,WAAY,YAAY,WAC/C,IAAIgf,EAAe/0rB,EAAK+0rB,aAAar0wB,GAErC,GADAq0wB,EAAa6B,aAAeH,IACxB1B,EAAa6B,cAAgB,GAAjC,CACA7B,EAAa2B,UAAYF,EACzB,IAAIK,EAAU9xwB,KAAKE,MAAMi8uB,EAAI6G,KAAKC,UAAUtoxB,MAAQ62yB,GACpDxB,EAAa+B,QAAUD,GAAW,EAAIA,EAAU,EAChD,IAAIh3yB,EAAW6gC,EAAQ7gC,SAErBA,EAASa,OACTb,EAASa,MAAMiouB,WACgB,kBAAxB9ouB,EAAS6/C,YACe,kBAAxB7/C,EAASsiwB,YACftiwB,EAAS6/C,YAAc7/C,EAASsiwB,aAEjC4yC,EAAaE,mBAAqB,GAEpCj1rB,EAAKxN,KAAK,UAAW,CAACuisB,GAdoB,CAe5C,GACF,EAQAD,sBAAuB,SAA+Bp0wB,GACtD,EAMA87vB,eAAgB,WACd,OAAOrgyB,KAAKye,IAAIm6C,aAAe54D,KAAKye,IAAI4mxB,cAC1C,EAMA5F,eAAgB,SAAwBl7vB,GACtC,IAAIia,EAEA3f,EAAY,KACZigwB,EAAW,GACXv6vB,IAGFu6vB,GADAjgwB,GADiB0F,EAAQF,QAAQ5lB,IAAI2stB,YAAc,CAAC,GAC7B7msB,EAAQ1F,YAAc,MACtBA,EAAUigwB,SAAW,IAW9C,OAREtgvB,EADEx+C,KAAK8+C,OAAO4wuB,iBACJ1vxB,KAAK8+C,OAAO4wuB,iBACA,OAAboP,GAAkC,qBAAbA,EACpB,KACY,WAAbA,EACC,SAEA9+xB,KAAKye,IAAIixwB,iBAEd3K,EAAIkM,QAAQ2pB,cAAcxkZ,WAAW53W,EAC9C,EAKAk6vB,iBAAkB,WAChB,OAAQ14yB,KAAKye,IAAIw7B,UACf,IAAK,MACL,IAAK,QAAS,OAAO8quB,EAAI0S,eAAetG,MACxC,IAAK,OAAQ,OAAOpM,EAAI0S,eAAevG,KACvC,IAAK,YAAa,OAAOnM,EAAI0S,eAAepG,SAC5C,IAAK,WAAY,OAAOtM,EAAI0S,eAAenG,QAE7C,GAAItxxB,KAAKye,IAAIw7B,SACX,MAAM,IAAI95C,MAAM,8BACdH,KAAKye,IAAIw7B,SAAW,iBAE1B,EAKAwmvB,mBAAoB,SAA4B/ulB,GAC9C,OAAOA,EAAK8mlB,aAAahyuB,WAAa,GACxC,EAQA4svB,WAAY,WACV,YAA+B/qyB,IAA3BrI,KAAK8+C,OAAOkntB,WACPhmwB,KAAK8+C,OAAOkntB,WAEZhmwB,KAAKm4yB,iBAEhB,EAKAtW,YAAa,SAAqBt+uB,EAAYl/C,GAC5C,OAAO0gxB,EAAI6G,KAAKivB,oBAAoBt3vB,EAAYvjD,KAAK8+C,OAAO8wuB,kBAAmBvrxB,EACjF,EAKAo9xB,eAAgB,SAAwBl9xB,GACtC,QAAIvE,KAAKiuE,aAAa1pE,OAClBvE,KAAK86yB,gBAAgBv2yB,OACrBvE,KAAK+6yB,wBAAwBx2yB,OAC7BvE,KAAKg7yB,eAAez2yB,IACpBA,EAAMiiD,YAAc,MAE1B,EAKAs0vB,gBAAiB,SAAyBv2yB,GACxC,MAAsB,oBAAfA,EAAM0iB,IACf,EAKAgnD,aAAc,SAAsB1pE,GAClC,MAAsB,iBAAfA,EAAM0iB,IACf,EAKA8zxB,wBAAyB,SAAiCx2yB,GAExD,MAAuB,0BAAfA,EAAM0iB,IAChB,EAKAy6wB,eAAgB,SAAwBn9xB,GACtC,OAAQA,EAAM0iB,MACZ,IAAK,uBACL,IAAK,iBACL,IAAK,4BACL,IAAK,wBACL,IAAK,cACL,IAAK,qBACH,OAAO,EACT,QAAS,OAAO,EAEpB,EAKAsuB,qBAAsB,WACpB,OAAO,IAAIjyC,KAAKA,KAAKC,MAAQvD,KAAK8+C,OAAOtJ,kBAC3C,EAKAgsvB,iBAAkB,SAA0ByZ,GACtCA,IACFj7yB,KAAK8+C,OAAOtJ,kBAAoBylwB,EAAgB33yB,KAAKC,MAEzD,EAKAsyC,cAAe,SAAuBolwB,GACpC,GAAIA,EACF,OAAOrywB,KAAKC,IAAI7oC,KAAKu1C,uBAAuBD,UAAY2lwB,IAAkB,GAE9E,EAKAD,eAAgB,SAAwBz2yB,GAEtC,GAAyB,MAArBA,EAAMiiD,WAAoB,OAAO,EACrC,OAAQjiD,EAAM0iB,MACZ,IAAK,yCACL,IAAK,aACL,IAAK,sBACL,IAAK,uBACL,IAAK,mBACL,IAAK,4BACL,IAAK,2BACL,IAAK,iCACL,IAAK,wBACH,OAAO,EACT,QACE,OAAO,EAEb,EAKAswxB,qBAAsB,SAA8B/5vB,GAClD,GAAwB,kBAAbA,EAAuB,OAAOA,EAEzC,IAAIz9C,EAAIy9C,EAIR,OADAz9C,GADAA,GADAA,EAAIA,EAAEY,QAAQ,eAAgBX,KAAKye,IAAI4mxB,iBACjC1kyB,QAAQ,cAAeX,KAAK8+C,OAAOlP,SACnCjvC,QAAQ,cAAeX,KAAK8+C,OAAOkwuB,WAAa,QAAU,OAElE,EAKAwoB,YAAa,SAAqBh6vB,GAChCx9C,KAAKw9C,SAAW,IAAIunuB,EAAIlivB,SAAS2a,EAAUx9C,KAAK8+C,OAClD,EAKA69uB,iBAAkB,SAA0B99vB,EAAWq8wB,GACrD,IAAIjV,EAAYjmyB,KAAKye,IAAI2stB,WAAWvssB,GAAWonwB,UAC/C,IAAKA,EAAW,CACd,GAAIiV,EAAgB,CAClB,IAAIn7yB,EAAI,IAAII,MACZ,MAAM4kxB,EAAI6G,KAAKrnxB,MAAMxE,EAAG,mCAAqC8+B,EAC/D,CACA,OAAO,IACT,CAEA,OAAOonwB,CACT,IAGFlhB,EAAI6G,KAAKv0vB,OAAO0tvB,EAAIC,QAAS,CAO3Bm2B,cAAe,SAAuBpwB,GACpChG,EAAI6G,KAAK9pN,KAAKipN,EAAI7qxB,UAAUue,IAAI2stB,YAAY,SAAkBnkuB,GACxD8jxB,EAAI7qxB,UAAU+G,KAES,SADX8jxB,EAAI7qxB,UAAUue,IAAI2stB,WAAWnkuB,GAC/B63xB,SACZ/T,EAAI7qxB,UAAU+G,GAAU,SAAU4xD,EAAQ0vD,GACxC,OAAOvoH,KAAKw4yB,2BAA2BvxyB,EAAQ4xD,EAAQ0vD,EACzD,EAEAwiqB,EAAI7qxB,UAAU+G,GAAU,SAAU4xD,EAAQ0vD,GACxC,OAAOvoH,KAAKq3xB,YAAYpwxB,EAAQ4xD,EAAQ0vD,EAC1C,EAEJ,GACF,EAaA68pB,cAAe,SAAuByT,EAAmBvwsB,EAAU8ytB,GACjEr2B,EAAIC,QAAQq2B,YAAYxiB,IAAqB,EACxCv2wB,MAAMC,QAAQ+lE,KACjB8ytB,EAAW9ytB,EACXA,EAAW,IAGb,IAAIyisB,EAAMl1mB,EAAQkvmB,EAAIC,QAASo2B,GAAY,CAAC,GAE5C,GAAiC,kBAAtBviB,EAAgC,CACzC9T,EAAIC,QAAQs2B,YAAYvwB,EAAKzisB,GAE7B,IAAIy/B,EAAagjqB,EAAI8N,mBAAqBA,EAC1C9N,EAAI8N,kBAAoB9wqB,CAC1B,MACEgjqB,EAAI7qxB,UAAUue,IAAMo6wB,EACpB9T,EAAIC,QAAQm2B,cAAcpwB,GAI5B,GAFAhG,EAAI+M,mBAAmBhswB,KAAK9lB,KAAKE,YAE5BF,KAAKE,UAAUy3yB,WAAa5yB,EAAI6G,KAAKiE,qBAAsB,CAC9D,IAAI0rB,EAAYx2B,EAAI6G,KAAKiE,qBAAqB0rB,UAE1CC,GAAkBrumB,EADD43kB,EAAI6G,KAAKiE,qBAAqB1ilB,kBAEnDntM,KAAKE,UAAUy3yB,UAAY,IAAI4D,EAAUC,GACrCA,EAAgB76vB,UAElBokuB,EAAIC,QAAQ0yB,uBAAwB,EAExC,CAGA,OAFA3yB,EAAI+M,mBAAmBhswB,KAAKilwB,EAAI7qxB,WAChC6kxB,EAAIC,QAAQyyB,8BAA8B1sB,EAAI7qxB,WACvC6qxB,CACT,EAKAuwB,YAAa,SAAqBvwB,EAAKzisB,GAChChmE,MAAMC,QAAQ+lE,KAAWA,EAAW,CAACA,IAE1CyisB,EAAI7F,SAAW6F,EAAI7F,UAAY,CAAC,EAChC,IAAK,IAAIlkxB,EAAI,EAAGA,EAAIsnF,EAAS1nF,OAAQI,SACDqH,IAA9B0ixB,EAAI7F,SAAS58rB,EAAStnF,MACxB+pxB,EAAI7F,SAAS58rB,EAAStnF,IAAM,MAIhC+pxB,EAAI6D,YAAc7uwB,OAAOwE,KAAKwmwB,EAAI7F,UAAU90uB,MAC9C,EAKA0nwB,iBAAkB,SAA0B2D,EAAYj9vB,EAASq5vB,GAC/D,IAAI9sB,EAAMl1mB,EAAQ4loB,EAAY,CAC5B5iB,kBAAmB4iB,EAAW5iB,oBAGhC,SAAS6iB,EAAOj9xB,GACVA,EAAIk9xB,MACN5wB,EAAI7qxB,UAAUue,IAAMA,EAEpBsswB,EAAI7qxB,UAAUue,IAAM,IAAIgzwB,EAAIhzwB,EAAK,CAC/Bo6wB,kBAAmB4iB,EAAW5iB,mBAGpC,CAEA,GAAuB,kBAAZr6uB,EAAsB,CAC/B,GAAIq5vB,EACF6D,EAAO7D,QAEP,IACE6D,EAAO32B,EAAIE,UAAUw2B,EAAW5iB,kBAAmBr6uB,GACrD,CAAE,MAAOn6C,GACP,MAAM0gxB,EAAI6G,KAAKrnxB,MAAMF,EAAK,CACxBpE,QAAS,oCACPw7yB,EAAW5iB,kBAAoB,IAAMr6uB,GAE3C,CAEGz+B,OAAO7f,UAAU04B,eAAe9S,KAAK21xB,EAAWv2B,SAAU1muB,KAC7Di9vB,EAAW7sB,YAAc6sB,EAAW7sB,YAAYlswB,OAAO87B,GAASpO,QAElEqrwB,EAAWv2B,SAAS1muB,GAAWusuB,CACjC,MACE2wB,EAAOl9vB,GAIT,OADAumuB,EAAIC,QAAQm2B,cAAcpwB,GACnBA,CACT,EAKAsD,WAAY,SAAStmqB,GACnB,OAAOhoG,OAAO7f,UAAU04B,eAAe9S,KAAKi/vB,EAAIC,QAAQq2B,YAAatzrB,EACvE,EAUA0vrB,8BAA+B,SAAuCmE,GACpEA,EAAShiB,iBAAiB,wBAAyB,kBAAkB,SAAuBrxxB,GAC1F,IAAIszyB,EAAY97xB,OAAO67K,eAAeggnB,GAClCC,EAAUxf,SAASwf,EAAUxlsB,KAAK,iBAAkB,CAAC9tG,GAC3D,IACAqzyB,EAAShiB,iBAAiB,qBAAsB,WAAW,SAA4BrxxB,GACrF,IAAIszyB,EAAY97xB,OAAO67K,eAAeggnB,GAClCC,EAAUxf,SAASwf,EAAUxlsB,KAAK,UAAW,CAAC9tG,GACpD,GACF,EAKA8yyB,YAAa,CAAC,IAGhBt2B,EAAI6G,KAAKwmB,MAAMrtB,EAAIC,QAASD,EAAI+M,oBAKhC7skB,EAAOrtL,QAAUmtvB,EAAIC,+BCr1BrB,IAAID,EAAM/tvB,EAAQ,MAElB+tvB,EAAI6G,KAAKv0vB,OAAO0tvB,EAAIQ,WAAWrlxB,UAAW,CAMxC47yB,gBAAiB,SAAyBtqmB,GACxC,IAAI+wM,EAAc/wM,EAAI+wM,YACjBA,EAAYlgZ,QAAQ05yB,SACvBx5Z,EAAYlgZ,QAAgB,OAAI,mBAEpC,EAKAs2yB,sBAAuB,SAA+Bp0wB,IACpDA,EAAQowJ,YAAY,QAAS30L,KAAK87yB,iBACR,cAAtBv3wB,EAAQ1F,aAEgB,aADb0F,EAAQs0B,QAAU,CAAC,GACrBmjvB,YACTz3wB,EAAQowJ,YAAY,cAAeowlB,EAAI6G,KAAKqwB,wBAGlD,2BC1BF,IAAIl3B,EAAM/tvB,EAAQ,MAGlBA,EAAQ,OAER+tvB,EAAI6G,KAAKv0vB,OAAO0tvB,EAAIa,WAAW1lxB,UAAW,CAExCy4yB,sBAAuB,SAA+Bp0wB,GACpDA,EAAQowJ,YAAY,cAAeowlB,EAAI6G,KAAKswB,mBAC9C,2BCTF,IAAIn3B,EAAM/tvB,EAAQ,MAClBA,EAAQ,OAER+tvB,EAAI6G,KAAKv0vB,OAAO0tvB,EAAI8B,SAAS3mxB,UAAW,CAItCy4yB,sBAAuB,SAA+Bp0wB,GAChDA,EAAQF,QAAQya,OAAO2wuB,gBACzBlrvB,EAAQqwJ,eAAe,cAAemwlB,EAAI0S,eAAevG,KAAKirB,cAC9D53wB,EAAQowJ,YAAY,cAAe30L,KAAKo8yB,YACxC73wB,EAAQowJ,YAAY,cAAeowlB,EAAI0S,eAAevG,KAAKirB,cAE/D,EAKAC,WAAY,SAAoB1qmB,GAC9B,IAAKA,EAAK8mlB,aAAasI,YAAcpvlB,EAAKntK,QAAQF,QAAQg4wB,aAAa3qmB,GAQrE,MAPAA,EAAK/nM,KAAO,KACZ+nM,EAAKntM,MAAQwgxB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CACvC8mB,KAAM,mBACNhnB,QAAS,+BACTusuB,WAAW,IAEb96hB,EAAKntK,QAAQi7vB,sBACN9tlB,EAAKntM,KAEhB,EAKA83yB,aAAc,SAAsB3qmB,GAClC,IAAIg3Q,EAAMh3Q,EAAK8mlB,aAAan2xB,QAAQ,eACpC,OAAKqmd,GACEj0b,SAASi0b,EAAK,MAAQq8T,EAAI6G,KAAK7rvB,OAAO5I,MAAMu6K,EAAK8mlB,aAAah+vB,KACvE,EAKA29wB,kBAAmB,GAKnBtW,YAAa,SAAqBt+uB,EAAYl/C,GAC5C,IAAIurxB,EAAoB7K,EAAI6G,KAAKn0qB,KAAKz3G,KAAK8+C,OAAO8wuB,mBAMlD,MAJsC,kBAA3BA,EAAkB5qmB,OACzB4qmB,EAAkB5qmB,KAAO,IAEjB+/lB,EAAI6G,KAAKivB,oBAAoBt3vB,EAAYqsuB,EAAmBvrxB,EAE1E,2BCxDF,IAAI0gxB,EAAM/tvB,EAAQ,MAElB+tvB,EAAI6G,KAAKv0vB,OAAO0tvB,EAAIgC,IAAI7mxB,UAAW,CAIjCy4yB,sBAAuB,SAA+Bp0wB,GACpDA,EAAQqwJ,eAAe,eAAgBmwlB,EAAI0S,eAAetG,MAAMmrB,eAChE/3wB,EAAQowJ,YAAY,eAAgB30L,KAAK+iyB,cAEf,iBAAtBx+vB,EAAQ1F,WACV0F,EAAQkywB,QAAQ,WAAYz2yB,KAAKu8yB,8BAErC,EAKAA,8BAA+B,SAAuC/qmB,EAAKxrL,GACzE,GAAIwrL,EAAI34I,OAAO2jvB,cAAgBhrmB,EAAIirmB,YACjC,OAAOz2xB,IAGTwrL,EAAI34I,OAASkstB,EAAI6G,KAAKn0qB,KAAK+5F,EAAI34I,QAC/B24I,EAAI34I,OAAO6jvB,kBAAoBlrmB,EAAIntK,QAAQya,OAAOlP,OAElD,IAAIkP,EAASimuB,EAAI6G,KAAKn0qB,KAAK+5F,EAAIntK,QAAQya,eAChCA,EAAOtB,SACdsB,EAAOlP,OAAS4hK,EAAI34I,OAAO8jvB,aAC3B,IACIC,EADM,IAAIprmB,EAAIntK,QAAQhe,YAAYy4B,GACrB0yJ,EAAI3yK,WAAW2yK,EAAI34I,QACpC+jvB,EAAOH,aAAc,EACrBG,EAAOhrwB,SAAQ,SAASvtC,EAAK61C,GACvB71C,EAAK2hB,EAAK3hB,IAEZmtM,EAAI34I,OAAO2jvB,aAAetiwB,EAC1Bl0B,IAEJ,GACF,EAKA+8wB,aAAc,SAAsBrxlB,GAElC,IAAI8mlB,EAAe9mlB,EAAK8mlB,aACpB7uxB,GAAO,IAAIo7wB,EAAIiH,IAAIC,QAAStqxB,MAAM62xB,EAAah+vB,KAAKj5B,YAAc,IAClEoI,EAAKwmF,OACPuhH,EAAKntM,MAAQwgxB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CACvC8mB,KAAMtd,EAAKwmF,OAAOhwF,MAAM4pG,KACxB9pG,QAAS0J,EAAKwmF,OAAOhwF,MAAM6pG,UAG7B0nG,EAAKntM,MAAQwgxB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CACvC8mB,KAAMuxwB,EAAahyuB,WACnBvmD,QAAS,OAGbyxM,EAAKntM,MAAMwqG,UAAYplG,EAAKkzyB,WAAa,IAC3C,2BC5DF,IAAI93B,EAAM/tvB,EAAQ,MAKd8lxB,EAAuB,CACzB,oBACA,iBACA,qBAyDF/3B,EAAI6G,KAAKv0vB,OAAO0tvB,EAAI+C,QAAQ5nxB,UAAW,CAInCo3yB,gBAAiB,WACb,IAAKt3yB,KAAK8+C,OAAOtB,UAAYx9C,KAAK8+C,OAAOtB,SAASp8C,QAAQ,MAAQ,EAAG,CAGjE,MAAM2jxB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MACrB,CAACC,KAAM,kBAAmBH,QAHpB,qEAId,CACJ,EAKA04yB,sBAAuB,SAA+Bp0wB,GAClDA,EAAQowJ,YAAY,mBAAoB30L,KAAK+8yB,sBACzCD,EAAqB17yB,QAAQmjC,EAAQ1F,YAAc,GACnD0F,EAAQowJ,YAAY,cAAeowlB,EAAI6G,KAAKqwB,uBAEpD,EAKAc,qBAAsB,SAA8BrrmB,GAChD,IACIsrmB,GADOtrmB,EAAK8mlB,aAAah+vB,KAAKj5B,YAAc,MAC3B+uC,OAChB0swB,GAAqC,MAAxBA,EAAU97yB,OAAO,KAC/BwwM,EAAK8mlB,aAAah+vB,KAAO,GAEjC,2BCjGJ,IAAIuqvB,EAAM/tvB,EAAQ,MAElB+tvB,EAAI6G,KAAKv0vB,OAAO0tvB,EAAIkD,OAAO/nxB,UAAW,CAIpCy4yB,sBAAuB,SAA+Bp0wB,GAC1B,WAAtBA,EAAQ1F,WACV0F,EAAQowJ,YAAY,cAAeowlB,EAAI6G,KAAKqwB,uBAEhD,2BCVF,IAAIl3B,EAAM/tvB,EAAQ,MAElB+tvB,EAAI6G,KAAKv0vB,OAAO0tvB,EAAIoD,gBAAgBjoxB,UAAW,CAI7Cy4yB,sBAAuB,SAA+Bp0wB,GAC1B,YAAtBA,EAAQ1F,WACV0F,EAAQowJ,YAAY,QAAS30L,KAAKi9yB,cAEtC,EAMAA,cAAe,SAAuB14wB,GACpC,IAAI2V,EAAM3V,EAAQs0B,OAAOqkvB,gBACrBhjwB,IACF3V,EAAQg+W,YAAY/kW,SAAW,IAAIunuB,EAAIlivB,SAASqX,GAEpD,2BCrBFljB,EAAQ,8BCAR,IAAI+tvB,EAAM/tvB,EAAQ,MACdmmxB,EAAUnmxB,EAAQ,OACtBA,EAAQ,OAIP,IAAIomxB,EAAwB,CAAC,iBAAkB,8BAA+B,kBAAmB,wBAAyB,8CAE1Hr4B,EAAI6G,KAAKv0vB,OAAO0tvB,EAAI0D,IAAIvoxB,UAAW,CAIjCy4yB,sBAAuB,SAA+Bp0wB,GACrD44wB,EAAQxE,sBAAsB34yB,KAAMukC,EAAS64wB,EAC9C,2BCdH,IAAIr4B,EAAM/tvB,EAAQ,MAEdmmxB,EAAU,CAIXxE,sBAAuB,SAA+Bt0wB,EAASE,EAAS64wB,GACvE,IAA0D,IAAtDA,EAAsBh8yB,QAAQmjC,EAAQ1F,YACtC0F,EAAQs0B,OAAO8jvB,aAEjB,GADAp4wB,EAAQs0B,OAASkstB,EAAI6G,KAAKn0qB,KAAKlzE,EAAQs0B,QACnCt0B,EAAQs0B,OAAOwkvB,cACf94wB,EAAQs0B,OAAO8jvB,eAAiBt4wB,EAAQya,OAAOlP,cAC1CrL,EAAQs0B,OAAO8jvB,iBACjB,CACL,IAAIW,IAAwBj5wB,EAAQya,OAAOiwuB,gBAEvCuuB,GACF/4wB,EAAQqwJ,eAAe,WAAYmwlB,EAAI0S,eAAeC,KAAKC,qBAE7DpzvB,EAAQkywB,QAAQ,WAAY0G,EAAQI,8BAChCD,GACF/4wB,EAAQowJ,YAAY,WAAYowlB,EAAI0S,eAAeC,KAAKC,oBAE5D,CAEJ,EAKA4lB,6BAA8B,SAAsC/rmB,EAAKxrL,GACvE,IAAI84B,EAASimuB,EAAI6G,KAAKn0qB,KAAK+5F,EAAIntK,QAAQya,QACvCA,EAAOlP,OAAS4hK,EAAI34I,OAAO8jvB,oBACpBnrmB,EAAI34I,OAAO8jvB,oBACX79vB,EAAOtB,gBAEPsB,EAAO+Z,OACd/Z,EAAO4wuB,iBAAmB,KAC1B,IAAI8tB,EAAoBhsmB,EAAIntK,QAAQya,OAAOlP,OAGvCgtwB,EADM,IAAIprmB,EAAIntK,QAAQhe,YAAYy4B,GACrB0yJ,EAAI3yK,WAAWkmvB,EAAI6G,KAAKn0qB,KAAK+5F,EAAI34I,SAClD+jvB,EAAO1osB,GAAG,SAAS,SAAmC3vE,GACpD,IAAIg+W,EAAch+W,EAAQg+W,YAC1BA,EAAY1pV,OAAO6jvB,kBAAoBc,EACvCj7Z,EAAY/nX,KAAOuqvB,EAAI6G,KAAK4X,oBAAoBjhZ,EAAY1pV,OAC9D,IACA+jvB,EAAOhrwB,SAAQ,SAASvtC,EAAK61C,GACvB71C,EAAK2hB,EAAK3hB,IAEZmtM,EAAI34I,OAAOwkvB,aAAenjwB,EAC1Bl0B,IAEJ,GACF,GAMFi/L,EAAOrtL,QAAUulxB,yBC5DjB,IAAIp4B,EAAM/tvB,EAAQ,MAElB+tvB,EAAI6G,KAAKv0vB,OAAO0tvB,EAAI6D,QAAQ1oxB,UAAW,CAIrCy4yB,sBAAuB,SAA+Bp0wB,GACpDA,EAAQ2vE,GAAG,QAASl0G,KAAKy9yB,YAC3B,EAKAA,YAAa,SAAqBl5wB,GAChC,IAAI/kB,EAAO+kB,EAAQg+W,YAAY/iY,KAC/B+kB,EAAQg+W,YAAY/iY,KAAOA,EAAK7e,QAAQ,cAAe,IACzD,EAMA8gyB,eAAgB,SAAwBl9xB,GACtC,MAAmB,4BAAfA,EAAM0iB,MACe,MAArB1iB,EAAMiiD,YAGKu+tB,EAAIC,QAAQ9kxB,UAAUuhyB,eACrB37wB,KAAK9lB,KAAMuE,EAE7B,2BC9BF,IAAIwgxB,EAAM/tvB,EAAQ,MACd0mxB,EAAgB1mxB,EAAQ,OACxB2mxB,EAA+B3mxB,EAAQ,OACvC4mxB,EAAS5mxB,EAAQ,OACjB6mxB,EAAa7mxB,EAAQ,OAGzBA,EAAQ,OAKR,IAAI8mxB,EAAmC,CACrC,yBAA2B,EAC3B,YAAc,EACd,gBAAkB,GAMfC,EAA2B,CAC9B,+BACA,aACA,oBACA,KAGEC,EAAwB,mBAE5Bj5B,EAAI6G,KAAKv0vB,OAAO0tvB,EAAIx4sB,GAAGrsE,UAAW,CAIhC00yB,oBAAqB,SAA6BrwwB,GAChD,IAAI05wB,EAAoBj+yB,KAAKye,IAAIixwB,iBAC7BwuB,EAAqBl+yB,KAAK24xB,gBAAkB34xB,KAAK24xB,gBAAgBjJ,iBAAmB,KACpFyuB,EAAuBn+yB,KAAK8+C,OAAO4wuB,iBACnCqJ,IAAcx0vB,GAAUA,EAAQw0vB,cAQpC,OAAImlB,EACFA,EAA4C,OAAvBA,EAA8B,KAAOA,IAGxC,IAAhBnlB,EACFklB,EAAoB,KACXE,IACTF,EAAoBE,GAEfF,EACT,EAKA5d,eAAgB,SAAwB7ulB,GACtC,GAAIA,GAAyB,2BAAlBA,EAAI3yK,UACb,OAAOm/wB,EAGT,IAAIjgnB,EAASgnlB,EAAIC,QAAQ9kxB,UAAUmgyB,eACnC,OAAQ7ulB,GAAOA,EAAI4smB,YAAc5smB,EAAI4smB,WAAW/5wB,QAC5CmtK,EAAI4smB,WAAW/5wB,QACf05J,EAAOj4K,KAAK9lB,KAClB,EAKAy/xB,eAAgB,SAAwBl7vB,GACtC,IAAImrvB,EAAmB1vxB,KAAK40yB,oBAAoBrwwB,GAChD,OAAOwgvB,EAAIkM,QAAQ2pB,cAAcxkZ,WAAWs5X,EAC9C,EAKA4nB,gBAAiB,WACf,IAAI/pwB,EACAnB,EAAW,GAcf,GAXKpsC,KAAK8+C,OAAOlP,SAAQ5vC,KAAK8+C,OAAOlP,OAAS,cAEzC5vC,KAAK8+C,OAAOtB,UAAYx9C,KAAK8+C,OAAOowuB,kBACvC9ivB,EAASxqB,KAAK,6EAGQ,IAApBwqB,EAASxrC,OACX2sC,EAAMnB,EAAS,GACNA,EAASxrC,OAAS,IAC3B2sC,EAAM,mCAAqCnB,EAASplB,KAAK,OAEvDumB,EACF,MAAMw3uB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MACvB,CAACC,KAAM,kBAAmBH,QAASstC,GAEzC,EAKA8wwB,yBAA0B,SAAkC95wB,GAC1D,IAAI+5wB,EAAct+yB,KAAKy/xB,iBACvB,OAAyC,IAArCz/xB,KAAK8+C,OAAOqwuB,sBAAiCmvB,IAAgBv5B,EAAIkM,QAAQyO,IAC5B,WAA1Cn7vB,EAAQg+W,YAAY/kW,SAASvD,QAItC,EAKA0+vB,sBAAuB,SAA+Bp0wB,GAuBpD,GArBAA,EAAQowJ,YAAY,WAAY30L,KAAKu+yB,gBACrCh6wB,EAAQowJ,YAAY,WAAY30L,KAAKw+yB,mBAFf,MAGtBj6wB,EAAQowJ,YAAY,WAAY30L,KAAKy+yB,6BAHf,MAKtBl6wB,EAAQqwJ,eAAe,WACrBmwlB,EAAI0S,eAAeC,KAAKgnB,iBAC1Bn6wB,EAAQowJ,YAAY,QAAS30L,KAAK2+yB,gBAClCp6wB,EAAQowJ,YAAY,QAAS30L,KAAK4+yB,mBAClCr6wB,EAAQowJ,YAAY,QAAS30L,KAAK6+yB,0BAClCt6wB,EAAQowJ,YAAY,QAAS30L,KAAK8syB,aAClCvowB,EAAQowJ,YAAY,aAAc30L,KAAK8+yB,sBACvCv6wB,EAAQowJ,YAAY,eAAgB30L,KAAK+iyB,cACzCx+vB,EAAQowJ,YAAY,cAAeowlB,EAAI6G,KAAKswB,oBAC5C33wB,EAAQowJ,YAAY,cAAe30L,KAAKg4iB,aACxCzzgB,EAAQowJ,YAAY,cAAe30L,KAAK++yB,6BACxCx6wB,EAAQowJ,YAAY,gBAAiB30L,KAAKg/yB,kBACtCh/yB,KAAKq+yB,yBAAyB95wB,KAChCA,EAAQqwJ,eAAe,aAAcmwlB,EAAI0S,eAAeC,KAAKunB,gBAC7D16wB,EAAQowJ,YAAY,aAAc30L,KAAKk/yB,qBAGf,iBAAtB36wB,EAAQ1F,WAAgC++wB,EAAOuB,aAAa56wB,EAAS,UAmBvE,OAjBAA,EAAQ65wB,WAAar5B,EAAI6G,KAAKwzB,IAAIz9yB,MAAM4iC,EAAQs0B,OAAOv2B,QAEvDiC,EAAQqwJ,eAAe,WAAY50L,KAAKw+yB,oBACxCj6wB,EAAQqwJ,eAAe,QAAS50L,KAAK8syB,aACF,OAA/BvowB,EAAQ65wB,WAAW/5wB,SACrBE,EAAQowJ,YAAY,WAAYipnB,EAAOyB,0BACvC96wB,EAAQowJ,YAAY,WAAY30L,KAAKs/yB,yBACrC/6wB,EAAQowJ,YAAY,WAAY30L,KAAKu/yB,oBACG,gBAA/Bh7wB,EAAQ65wB,WAAW/5wB,UAC5BE,EAAQowJ,YAAY,WAAYipnB,EAAO4B,gCACvCj7wB,EAAQowJ,YAAY,WAAYipnB,EAAO6B,qBACvCl7wB,EAAQowJ,YAAY,WAAYipnB,EAAO2B,oBAEzCh7wB,EAAQowJ,YAAY,WAAYipnB,EAAO8B,oBACvCn7wB,EAAQowJ,YAAY,WAAYipnB,EAAO+B,oBACvCp7wB,EAAQowJ,YAAY,QAAS30L,KAAK4/yB,oCAClCr7wB,EAAQowJ,YAAY,QAASipnB,EAAOiC,4BAItCt7wB,EAAQowJ,YAAY,WAAY30L,KAAK8/yB,wBACrCv7wB,EAAQowJ,YAAY,WAAY30L,KAAK+/yB,8BACrCx7wB,EAAQkywB,QAAQ,eAAgBz2yB,KAAKggzB,qBACjCj7B,EAAI6G,KAAKh3N,aACXrwhB,EAAQkywB,QAAQ,QAASz2yB,KAAKigzB,4BAElC,EAKA1B,eAAgB,SAAS/smB,GACvB,IAAI34I,EAAS24I,EAAI34I,OACbve,EAASk3J,EAAI+wM,YAAY/kW,SAASvD,SAEtC,IADgB4e,EAAO0kB,gBAAkB1kB,EAAO4kB,2BACpB,WAAXnjC,EAAqB,CAGpC,MAAMyquB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MACvB,CAAE8mB,KAAM,cAAehnB,QAHf,mFAIZ,CACF,EAKA6/yB,uBAAwB,SAAStumB,GAC/B,IAAKA,EAAI34I,OAAOv2B,QAAUkvK,EAAIntK,QAAQya,OAAOowuB,iBAAkB,CAE7D,MAAMnK,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MACvB,CAAE8mB,KAAM,cAAehnB,QAFf,iEAGZ,CACF,EAKCs/yB,kBAAmB,SAA2B/tmB,GAC7CosmB,EAAO2B,kBAAkB/tmB,EAAK,CAAE0umB,mBAAmB,GACrD,EAKAZ,wBAAyB,SAAiC9tmB,GACxD,IAAI87kB,EAAW97kB,EAAI4smB,WAAW9wB,SAE9B,GACuC,IAArCA,EAASlsxB,QAAQ,iBACoB,IAArCksxB,EAASlsxB,QAAQ,gBAEjB,MAAM2jxB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CAChC8mB,KAAM,aACNhnB,QAAS,iDAGf,EAKAu+yB,mBAAoB,SAA4BhtmB,GAC9C,IACIk+kB,EADUl+kB,EAAIntK,QACauwwB,oBAAoBpjmB,GAC/ClB,EAASkB,EAAI34I,QAAU24I,EAAI34I,OAAOv2B,OAClCrd,EAAMusL,EAAI34I,QAAU24I,EAAI34I,OAAOupB,IAC/B+9tB,EAAa7vmB,GAAUA,EAAOlvM,QAAQ,KAC1C,GAAIkvM,GAAU6vmB,GAAc,EAC1B,GAAmB,kBAARl7xB,GAAoBk7xB,EAAa,EAAG,CAC7C3umB,EAAI34I,OAASkstB,EAAI6G,KAAKn0qB,KAAK+5F,EAAI34I,QAE/B,IAAIna,EAAS4xJ,EAAOzqM,OAAOs6yB,EAAa,IAAM,GAC9C3umB,EAAI34I,OAAOupB,IAAM1jC,EAAS,IAAMz5B,EAChCusL,EAAI34I,OAAOv2B,OAASguK,EAAOzqM,OAAO,EAAGs6yB,EACvC,MAAO,GAAyB,OAArBzwB,EAA2B,CACpC,IAAInivB,EAAM,wDAA0D+iK,EACpE,MAAMy0kB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MACvB,CAAE8mB,KAAM,gBAAiBhnB,QAASstC,GACtC,CAEJ,EAKA6ywB,2BAA4B,SAAoCvhxB,GAM9D,OAAiD,IALzB,CACtB,eACA,eACA,eAEuBz9B,QAAQy9B,EACnC,EAQA4/wB,6BAA8B,SAAsCjtmB,GAClE,IAAIntK,EAAUmtK,EAAIntK,QACdya,EAASza,EAAQya,OAMrB,GALAA,EAAOswuB,0BAA4BuuB,EAA6Bt5wB,EAAQs0vB,gBAAiB,CACvFxkD,IAAK,qCACL48C,aAAc,iCACdx8qB,aAAc,gCAGZlwE,EAAQs0vB,iBAAmB,CAAC,GAAGn7uB,UACN,cAA3Bg0J,EAAI+wM,YAAY3yW,QACqB,aAArCkP,EAAOswuB,2BACP59kB,EAAI+wM,YAAY/kW,SAASvW,SAAS7lC,QAAQ,qBAAuB,EACjE,CACA,IAAIi/yB,EAAcvhwB,EAAOtB,SAASp8C,QAAQ,kBAC1Ck/yB,iBAAmBxhwB,EAAOtB,SAAS9C,UAAU,EAAG2lwB,GAC9C,aAAevhwB,EAAOtB,SAAS9C,UAAU2lwB,GAC3C7umB,EAAI+wM,YAAY40Y,eAAempB,iBACjC,CACF,EAUAxT,YAAa,SAAqBt7lB,GAChC,IAAI+wM,EAAc/wM,EAAI+wM,YAClB/pX,EAAIg5K,EAAI34I,OAAOv2B,OACf+B,EAAUmtK,EAAIntK,QACdmZ,EAAW+kW,EAAY/kW,SAC3B,GAAIhlB,IACG6L,EAAQk8wB,oBAAoB/nxB,GAAI,CAC/B6L,EAAQya,OAAOmZ,uBAAyB5zB,EAAQ+7wB,2BAA2B5umB,EAAI3yK,WAC7EwF,EAAQya,OAAOqY,qBACjB3Z,EAASvW,SAAWzO,EAAI,yCAExBglB,EAASvW,SAAWzO,EAAI,+BAEhB6L,EAAQya,OAAOowuB,mBACzB1xuB,EAASvW,SACPzO,EAAI,IAAMglB,EAASvW,UAGvB,IAAIC,EAAOsW,EAAStW,KAElBsW,EAASrW,KADE,KAATD,GAAwB,MAATA,EACDsW,EAASvW,SAAW,IAClCuW,EAAStW,KAEKsW,EAASvW,SAG3Bs7W,EAAYi+Z,oBAAsBhoxB,EAClC6L,EAAQo8wB,kCAAkCjvmB,EAC5C,CAEJ,EAOAivmB,kCAAmC,SAA2CjvmB,GAC5E,IAAI+wM,EAAc/wM,EAAI+wM,YAClBjyM,EAASiyM,EAAYi+Z,oBACzB,GAAIlwmB,GAAUiyM,EAAY/iY,KAAM,CAC9B,GAAIgyL,EAAI34I,QAAU24I,EAAI34I,OAAOupB,IAAK,CAChC,IAAIs+tB,EAAe,IAAM37B,EAAI6G,KAAKp6uB,cAAcggK,EAAI34I,OAAOupB,KAC3D,GAA+C,IAA3CmgU,EAAY/iY,KAAKpe,QAAQs/yB,KAAwBn+Z,EAAY/iY,KAAK5e,SAAW8/yB,EAAa9/yB,QAAoD,MAA1C2hZ,EAAY/iY,KAAKkhyB,EAAa9/yB,SAEpI,MAEJ,CACA2hZ,EAAY/iY,KAAO+iY,EAAY/iY,KAAK7e,QAAQ,IAAI+2C,OAAO,IAAM44J,GAAS,IAC1C,MAAxBiyM,EAAY/iY,KAAK,KACnB+iY,EAAY/iY,KAAO,IAAM+iY,EAAY/iY,KAEzC,CACF,EAMAogyB,8BAA+B,SAAuCpumB,GACpE,IAAImvmB,EAAiBnvmB,EAAI4smB,WAErBwC,EAA0C,gBAA3BD,EAAet8wB,QAC9Bw8wB,EAA+C,qBAA3BF,EAAet8wB,QAEnCy8wB,EAAiBF,EAAe,IAAMD,EAAeI,UAAW,GAChEC,EAAcJ,EAAe,cAAe,iBAC5CK,GAAcL,GAAgBpvmB,EAAIntK,QAAQya,OAAOsY,gBAAkB,QAAS,GAC5E8pvB,GAAmBN,GACrBpvmB,EAAIntK,QAAQya,OAAOqY,qBAAuB,aAAe,GAEvD3Z,EAAWg0J,EAAI+wM,YAAY/kW,SAC3B+xvB,EAAYsO,EAAW1O,kBAAkBwR,EAAe/wwB,QACxD4mB,EAAeg7I,EAAIntK,QAAQya,OAAOuwuB,eAStC,GAPA7xuB,EAASvW,SAAW,CAClB05wB,EAAeQ,YAAc,IAAMR,EAAe/nwB,UAAYkowB,EAC9DE,EAAcC,EAAaC,EAC3B1qvB,EAAemqvB,EAAe/wwB,OAAS4hK,EAAIntK,QAAQya,OAAOlP,OAC1D2/vB,GACAvoxB,KAAK,KAEH65xB,EAAmB,CAEjBG,EAAc,mBAAlB,IACII,EAAkBT,EAAerzB,SAAS1rxB,MAAM,KAAK,GACrDq/yB,EAAazvmB,EAAIntK,QAAQya,OAAOsY,gBAAkB,QAAS,GAC/D5Z,EAASvW,SAAW,CAClBm6wB,EAAkB,IAAMT,EAAe/nwB,UACvCoowB,EAAcC,EACdzqvB,EAAemqvB,EAAe/wwB,OAAS4hK,EAAIntK,QAAQya,OAAOlP,OAC1D2/vB,GACAvoxB,KAAK,IACT,CACAw2B,EAASrW,KAAOqW,EAASvW,SACzB,IAAIo6wB,EAAat8B,EAAI6G,KAAK+gB,UAAUn7lB,EAAI34I,OAAOv2B,QAC3C9iB,EAAOgyL,EAAI+wM,YAAY/iY,KAE3BgyL,EAAI+wM,YAAY/iY,KAAOA,EAAK7e,QAAQ,IAAI+2C,OAAO,IAAM2pwB,GAAa,IAClC,MAA5B7vmB,EAAI+wM,YAAY/iY,KAAK,KACvBgyL,EAAI+wM,YAAY/iY,KAAO,IAAMgyL,EAAI+wM,YAAY/iY,MAE/CgyL,EAAI+wM,YAAY3yW,OAAS+wwB,EAAe/wwB,MAC1C,EAMAkvwB,qBAAsB,SAA8BttmB,GAClD,IAAIjrL,EAAMirL,EAAI+wM,YAAYlgZ,QAAQ,kBAC9B0ixB,EAAI6G,KAAKG,WAAaxlwB,GAAO,SAAeirL,EAAI34I,OAAOgyB,gBAAgBk6rB,EAAI6G,KAAK31qB,OAAO4nrB,UACzFrslB,EAAI+wM,YAAYlgZ,QAAgB,OAAI,eAExC,EAOAs8yB,eAAgB,SAAwBntmB,GACtC,IAAI+wM,EAAc/wM,EAAI+wM,YACtB,GAA2B,QAAvBA,EAAYt7Y,QAA2C,SAAvBs7Y,EAAYt7Y,OAAhD,CAMKs7Y,EAAYlgZ,QAAQ,kBACvBkgZ,EAAYlgZ,QAAQ,gBAAkB,4BAGxC,IAAI8ngB,EAAc5nH,EAAYlgZ,QAAQ,gBACtC,GAAI0ixB,EAAI6G,KAAKh3N,YACX,GAAgC,kBAArBryK,EAAY/nX,MAAsB2ve,EAAYhnZ,MAAM,gBAGxD,CAKLo/R,EAAYlgZ,QAAQ,gBAClB8ngB,EAAYxpgB,QAAQ,uBALN,SAAS+5B,EAAGgkB,EAAQ4iwB,GAClC,OAAO5iwB,EAAS4iwB,EAAY9/yB,aAC9B,GAIF,KAVgF,CAE9E+gZ,EAAYlgZ,QAAQ,iBADN,iBAEhB,CAXF,aAFSkgZ,EAAYlgZ,QAAQ,eAsB/B,EAWAk/yB,qBAAsB,SAA8B/vmB,GAClD,IAAI1zJ,EAAQ0zJ,EAAIntK,QAAQ5lB,IAAI2stB,WAAW55hB,EAAI3yK,WAAWqB,MAAMu2vB,QACxDj8vB,EAAOg3K,EAAI+wM,YAAY/nX,KACvBgnxB,EAAkBhwmB,EAAIntK,QAAQya,OAAOwwuB,kBACvCxxuB,EAAM4qC,aACL8oH,EAAI34I,OAAO6vB,YACZluD,IACCuqvB,EAAI6G,KAAKlqvB,OAAO61E,SAASi6F,EAAI+wM,YAAY/nX,OAAyC,kBAAzBg3K,EAAI+wM,YAAY/nX,MAG5E,SAAIgnxB,IAAmBhwmB,EAAIntK,QAAQg6wB,yBAAyB7smB,IAASA,EAAIunlB,mBAKrEyoB,GAAqD,OAAlCxhzB,KAAK40yB,oBAAoBpjmB,KAAiBA,EAAIunlB,cAKvE,EAUA6lB,kBAAmB,SAA2BptmB,GAC5C,GAAIA,EAAIntK,QAAQk9wB,qBAAqB/vmB,GAAM,CACzC,IAAI56I,EAAMmutB,EAAI6G,KAAK7rvB,OAAO62B,IAAI46I,EAAI+wM,YAAY/nX,KAAM,UACpDg3K,EAAI+wM,YAAYlgZ,QAAQ,eAAiBu0D,CAC3C,CACF,EAKAiovB,yBAA0B,SAAkCrtmB,GAK1DuzkB,EAAI6G,KAAK9pN,KAJE,CACTvkf,eAAgB,gDAChBE,yBAA0B,8DAER,SAASx4D,EAAKxjB,GAChC,GAAI+vM,EAAI34I,OAAO5zC,GAAM,CACnB,IAAIje,EAAQ+9wB,EAAI6G,KAAK7rvB,OAAO62B,IAAI46I,EAAI34I,OAAO5zC,GAAM,UACjDusL,EAAI+wM,YAAYlgZ,QAAQZ,GAAUuF,CACpC,CACF,GACF,EASAu5yB,oBAAqB,SAA6BlxmB,GAEhD,QAAIrvM,KAAK8+C,OAAOmwuB,mBACZjvxB,KAAK8+C,OAAOowuB,oBAEZ0uB,EAAO6D,wBAAwBpymB,OACzBrvM,KAAK8+C,OAAOkwuB,aAAc3/kB,EAAWlsF,MAAM,OAIvD,EASA47rB,4BAA6B,SAAqCrtmB,GAChE,GAAKosmB,EAAiCpsmB,EAAKntK,QAAQ1F,WAAnD,CACA,IAAI25vB,EAAe9mlB,EAAK8mlB,aACxB,GAAIA,EAAah+vB,MAAQg+vB,EAAah+vB,KAAKj5B,WAAW4hH,MAAM,WAO1D,MAHAuuF,EAAK/nM,KAAO,MACE3J,KAAKqkC,QAAUrkC,KAAKqkC,QAAUrkC,MACpC+iyB,aAAarxlB,GACfA,EAAKntM,MACN,IAAKi0xB,EAAah+vB,OAASg+vB,EAAah+vB,KAAKj5B,WAAW4hH,MAAM,UAInE,MADAuuF,EAAK/nM,KAAO,KACNo7wB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CAChC8mB,KAAM,gBACNhnB,QAAS,sBAhBwD,CAmBvE,EAMAwhyB,eAAgB,SAAwBl9xB,EAAOggC,GAC7C,SAAIu5wB,EAAiCv5wB,EAAQ1F,YACpB,MAArBt6B,EAAMiiD,eAECjiB,EAAQm9wB,0BACfn9wB,EAAQF,QAAQs9wB,kBAAkBp9wB,EAAQm9wB,+BAEnCn9yB,GAAwB,mBAAfA,EAAM0iB,QAEf1iB,IAC0C,GAAjDw5yB,EAAyB38yB,QAAQmD,EAAM0iB,OACvC1iB,EAAMqrC,QAAUrrC,EAAMqrC,QAAUrL,EAAQg+W,YAAY3yW,QACtDrL,EAAQg+W,YAAY3yW,OAASrrC,EAAMqrC,OACV,MAArBrrC,EAAMiiD,YACRjiB,EAAQF,QAAQu9wB,sBAAsBr9wB,IAEjC,GAEMwgvB,EAAIC,QAAQ9kxB,UAAUuhyB,eACrB37wB,KAAK9lB,KAAMuE,EAAOggC,IAEpC,EAQAq9wB,sBAAuB,SAA+Br9wB,EAASqL,GAC7D,IAAI2yW,EAAch+W,EAAQg+W,YAI1B,GAHsB,kBAAX3yW,GAAuBA,EAAOhvC,SACvC2hZ,EAAY3yW,OAASA,GAElB2yW,EAAY/kW,SAASrW,KAAKg8E,MAAM,wCAArC,CAGA,IAAI9+E,EAAUE,EAAQF,QAClBw9wB,EAAWx9wB,EAAQya,OACnBowuB,EAAmB2yB,EAAS3yB,iBAC5BA,UACK2yB,EAAS3yB,iBAElB,IAAI4yB,EAAY/8B,EAAI6G,KAAKn0qB,KAAKoqsB,UACvBC,EAAUtkwB,SACjBskwB,EAAUlywB,OAAS2yW,EAAY3yW,OAE/B2yW,EAAY/kW,SAAY,IAAIunuB,EAAIx4sB,GAAGu1uB,GAAYtkwB,SAC/CnZ,EAAQyowB,YAAYvowB,GACpBs9wB,EAAS3yB,iBAAmBA,EAC5B3sY,EAAYlgZ,QAAQ0/yB,KAAOx/Z,EAAY/kW,SAASrW,KAEd,aAA9B5C,EAAQurwB,KAAKptB,eACfn+uB,EAAQqwJ,eAAe,QAASvwJ,EAAQyowB,aACxCvowB,EAAQowJ,YAAY,QAAStwJ,EAAQo8wB,mCAlBvC,CAoBF,EAQAzoQ,YAAa,SAAqBtmW,GAChC,IAAIF,EAAME,EAAKntK,QACf,GAAsB,sBAAlBitK,EAAI3yK,UAAmC,CACzC,IAAIskF,EAAQuuF,EAAK8mlB,aAAah+vB,KAAKj5B,WAAW4hH,MAAM,2BAC7CuuF,EAAK/nM,KAAQ,EAElB+nM,EAAK/nM,KAAKqxD,mBADRmoD,EAC6BA,EAAM,GAEN,EAEnC,CACA,IAAImtF,EAASkB,EAAI34I,OAAOv2B,QAAU,KAClC,GAAsB,iBAAlBkvK,EAAI3yK,WAAkD,kBAAXyxK,GAAwBoB,EAAKntM,MAErE,CACL,IACIqrC,GADU8hK,EAAK8mlB,aAAan2xB,SAAW,CAAC,GACvB,wBAA0B,KAC/C,IAAKutC,GAA4B,iBAAlB4hK,EAAI3yK,YAAiC6yK,EAAKntM,MAAO,CAC9D,IAAIy9yB,EAA4BxwmB,EAAI34I,OAAOkC,0BAIzCnrB,EAHGoywB,EAEuD,OAAjDA,EAA0BhnvB,mBAC1B,YAEAgnvB,EAA0BhnvB,mBAJ1B,WAMb,CACIprB,GACI0gK,GAAU1gK,IAAW4hK,EAAIntK,QAAQs9wB,kBAAkBrxmB,KACrDkB,EAAIntK,QAAQs9wB,kBAAkBrxmB,GAAU1gK,EAGhD,MAnBE4hK,EAAIntK,QAAQ49wB,uBAAuB3xmB,GAoBrCkB,EAAIntK,QAAQ69wB,kBAAkBxwmB,EAChC,EAOAqxlB,aAAc,SAAsBrxlB,GAClC,IAmBIywmB,EAnBAC,EAAQ,CACV,IAAK,cACL,IAAK,YACL,IAAK,aACL,IAAK,YAGH5wmB,EAAME,EAAKntK,QACXtd,EAAOyqL,EAAK8mlB,aAAahyuB,WACzBhsB,EAAOk3K,EAAK8mlB,aAAah+vB,MAAQ,GAGjCoV,GADU8hK,EAAK8mlB,aAAan2xB,SAAW,CAAC,GACvB,wBAA0B,KAC3CiuM,EAASkB,EAAI34I,OAAOv2B,QAAU,KAC9Bq/wB,EAAoBnwmB,EAAIntK,QAAQs9wB,kBAMpC,GALI/xwB,GAAU0gK,GAAU1gK,IAAW+xwB,EAAkBrxmB,KACnDqxmB,EAAkBrxmB,GAAU1gK,GAI1BwywB,EAAMn7xB,IAAyB,IAAhBuT,EAAK55B,OAClB0vM,IAAW1gK,IACbuywB,EAAeR,EAAkBrxmB,IAAW,QACvBkB,EAAI+wM,YAAY3yW,SACnCA,EAASuywB,GAGbzwmB,EAAKntM,MAAQwgxB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CACvC8mB,KAAMm7xB,EAAMn7xB,GACZhnB,QAAS,KACT2vC,OAAQA,QAEL,CACL,IAAIjmC,GAAO,IAAIo7wB,EAAIiH,IAAIC,QAAStqxB,MAAM64B,EAAKj5B,YAEvCoI,EAAKm5B,SAAW8M,GAClBA,EAASjmC,EAAKm5B,OACVwtK,GAAU1gK,IAAW+xwB,EAAkBrxmB,KACzCqxmB,EAAkBrxmB,GAAU1gK,KAErB0gK,GAAW1gK,GAAWjmC,EAAKm5B,SACpCq/wB,EAAeR,EAAkBrxmB,IAAW,QACvBkB,EAAI+wM,YAAY3yW,SACnCA,EAASuywB,GAIbzwmB,EAAKntM,MAAQwgxB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CACvC8mB,KAAMtd,EAAKogG,MAAQ9iF,EACnBhnB,QAAS0J,EAAKqgG,SAAW,KACzBp6D,OAAQA,GAEZ,CACA4hK,EAAIntK,QAAQ69wB,kBAAkBxwmB,EAChC,EAQAsumB,oBAAqB,SAA6BtumB,EAAM1rL,GACtD,IAAIzhB,EAAQmtM,EAAKntM,MACbitM,EAAME,EAAKntK,QACX+rK,EAASkB,EAAI34I,OAAOv2B,QAAU,KAElC,IAAK/9B,IAAU+rM,GAAU/rM,EAAMqrC,QAA4B,gBAAlB4hK,EAAI3yK,WACxCkmvB,EAAI6G,KAAKG,UAA8B,eAAlBv6kB,EAAI3yK,WACJ,MAArBt6B,EAAMiiD,YAAwC,eAAlBgrJ,EAAI3yK,YACiB,IAAlDk/wB,EAAyB38yB,QAAQmD,EAAM0iB,MACzC,OAAOjB,IAET,IAAIq8xB,EAAet9B,EAAI6G,KAAKG,SAAW,aAAe,cAClDu2B,EAAY,CAAChgxB,OAAQguK,GACJ,gBAAjB+xmB,IAAgCC,EAAUn6tB,QAAU,GACxD,IAAIo6tB,EAAY/wmB,EAAIntK,QAAQg+wB,GAAcC,GAC1CC,EAAUb,wBAA0BpxmB,EACpCiymB,EAAU51uB,MAAK,WACb,IAAI/8B,EAAS4hK,EAAIntK,QAAQs9wB,kBAAkBrxmB,IAAW,KACtD/rM,EAAMqrC,OAASA,EACf5pB,GACF,GACF,EAQCi6xB,4BAA6B,SAAqCvumB,EAAM1rL,GACvE,IAAK++vB,EAAI6G,KAAKh3N,YACZ,OAAO5uiB,IAET,IAAIzhB,EAAQmtM,EAAKntM,MACbggC,EAAUmtK,EAAKntK,QACf+rK,EAAS/rK,EAAQs0B,OAAOv2B,OAC5B,IAAK/9B,GAAwB,oBAAfA,EAAM0iB,OAA+BqpL,GAChB,cAA/B/rK,EAAQg+W,YAAY3yW,OACtB,OAAO5pB,IAET,IAAIqe,EAAUE,EAAQF,QAClBs9wB,EAAoBt9wB,EAAQs9wB,kBAC5BQ,EAAeR,EAAkBrxmB,IAAW,KAEhD,GAAI6xmB,GAAgBA,IAAiB59wB,EAAQg+W,YAAY3yW,OACvDvL,EAAQu9wB,sBAAsBr9wB,EAAS49wB,GACvCn8xB,SACK,GAAK43xB,EAAO6D,wBAAwBnxmB,GAMpC,GAAI/rK,EAAQg+W,YAAYi+Z,oBAAqB,CAClD,IAAIgC,EAAen+wB,EAAQo+wB,YAAY,CAACngxB,OAAQguK,EAAQnoH,QAAS,IACjE9jD,EAAQu9wB,sBAAsBY,EAAc,aAC5CA,EAAad,wBAA0BpxmB,EAEvCkymB,EAAa71uB,MAAK,WAChB,IAAI/8B,EAASvL,EAAQs9wB,kBAAkBrxmB,IAAW,KAC9C1gK,GAAUA,IAAWrL,EAAQg+W,YAAY3yW,QAC3CvL,EAAQu9wB,sBAAsBr9wB,EAASqL,GAEzC5pB,GACF,GACF,MAIEA,SArBAqe,EAAQu9wB,sBAAsBr9wB,EAAS,aACL,cAA9Bo9wB,EAAkBrxmB,KACpBqxmB,EAAkBrxmB,GAAU,aAE9BtqL,GAmBH,EAOA27xB,kBAAmB,CAAC,EAOpBM,uBAAwB,SAASS,GAChC,IAAIf,EAAoB3hzB,KAAK2hzB,kBACxBe,EAEyB,kBAAZA,IAChBA,EAAU,CAACA,IAFXA,EAAU3iyB,OAAOwE,KAAKo9xB,GAIxB,IAAK,IAAI3gzB,EAAI,EAAGA,EAAI0hzB,EAAQ9hzB,OAAQI,WAC3B2gzB,EAAkBe,EAAQ1hzB,IAEnC,OAAO2gzB,CACR,EAOD5B,6BAA8B,SAAsCvumB,GAClE,IAAIlB,EAASkB,EAAI34I,OAAOv2B,QAAU,KAClC,GAAIguK,EAAQ,CACV,IAAIjsK,EAAUmtK,EAAIntK,QACds+wB,EAAgBnxmB,EAAI+wM,YAAY3yW,OAChCuywB,EAAe99wB,EAAQs9wB,kBAAkBrxmB,GACzC6xmB,GAAgBA,IAAiBQ,GACnCt+wB,EAAQu9wB,sBAAsBpwmB,EAAK2wmB,EAEvC,CACF,EAOAD,kBAAmB,SAA2BxwmB,GAC5C,IAAI1iG,EAAoB0iG,EAAK8mlB,aAAan2xB,QAAUqvM,EAAK8mlB,aAAan2xB,QAAQ,cAAgB,KAC1F4sG,EAAOyiG,EAAK8mlB,aAAan2xB,QAAUqvM,EAAK8mlB,aAAan2xB,QAAQ,eAAiB,KAClFqvM,EAAK1iG,kBAAoBA,EACzB0iG,EAAKziG,KAAOA,EAERyiG,EAAKntM,QACPmtM,EAAKntM,MAAMwqG,UAAY2iG,EAAK3iG,WAAa,KACzC2iG,EAAKntM,MAAMyqG,kBAAoBA,EAC/B0iG,EAAKntM,MAAM0qG,KAAOA,EAEtB,EAsDAo+qB,aAAc,SAAsBxuvB,EAAWg6B,EAAQ0vD,GAErD,IAAIzkC,GADJjrB,EAASkstB,EAAI6G,KAAKn0qB,KAAK5+C,GAAU,CAAC,IACbkrB,SAAW,IAEhC,GAAuB,kBAAZD,EACT,MAAMihsB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MACvB,CAAE8mB,KAAM,4BAA6BhnB,QAAS,oDAAsD6jF,WAGjGjrB,EAAOkrB,QACd,IAAIx/C,EAAUvkC,KAAKq3xB,YAAYx4vB,EAAWg6B,GAE1C,IAAI0vD,EAKF,OAAOhkF,EAAQqN,QAAQkyC,EAASykC,GAJhCw8pB,EAAI6G,KAAK6G,OAAM,WACbluvB,EAAQqN,QAAQkyC,EAASykC,EAC3B,GAIJ,EAiIAq6rB,oBAAqB,SAA6B/pvB,EAAQ0vD,GAClC,oBAAX1vD,QAAsCxwD,IAAbkgH,IAClCA,EAAW1vD,EACXA,EAAS,MAGXA,EAASkstB,EAAI6G,KAAKn0qB,KAAK5+C,GAAU,CAAC,GAClC,IAAIgqvB,EAAc7izB,KAAK8+C,OAAO+Z,QAAU,CAAC,EACrCy3I,EAASz3I,EAAOv2B,QAAUugxB,EAAYvgxB,OACxCuhF,EAAO7jH,KACP8+C,EAAS9+C,KAAK8+C,OACdtB,EAAWunuB,EAAI6G,KAAKn0qB,KAAKz3G,KAAKw9C,UAKhC,SAASslwB,IACP,MAAO,CACL5owB,IAAK6quB,EAAI6G,KAAKm3B,UAAUvlwB,GACxBolK,OAAQ/+F,EAAKm/rB,kBACXlkwB,EAAOxN,YACPwN,EAAOlP,OACP0gK,EACAz3I,EAAOoqvB,OACPpqvB,EAAOqqvB,WACPrqvB,EAAOkrB,SAGb,CAEA,GAlBKjlC,EAAOowuB,mBACV1xuB,EAASnD,SAAW,IAAMi2J,IAiBxB/nF,EAaF,OAAOu6rB,IAZPhkwB,EAAO+uuB,gBAAe,SAAUxpxB,GAC9B,GAAIA,EACFkkH,EAASlkH,QAET,IACEkkH,EAAS,KAAMu6rB,IACjB,CAAE,MAAOz+yB,GACPkkH,EAASlkH,EACX,CAEJ,GAIJ,EAKA2+yB,kBAAmB,SACjB1xwB,EACA1B,EACA0gK,EACAsS,EACAtmK,EACA6mwB,GAEA,IAAI5/yB,EAAMvD,KAAKu1C,uBACf,IAAKjE,IAAgB1B,IAAW0gK,EAC9B,MAAM,IAAInwM,MAAM,mFAGlByiN,EAASmikB,EAAI6G,KAAKn0qB,KAAKmrG,GAAU,CAAC,GAClCtmK,GAAcA,GAAc,IAAIl2B,MAAM,GACtC+8xB,EAAmBA,GAAoB,KAEvC,IAAIrxwB,EAAcizuB,EAAI6G,KAAKz5wB,KAAK8lyB,QAAQ10yB,GAAK5C,QAAQ,iBAAkB,IACnEgvC,EAAYmC,EAAYjsC,OAAO,EAAG,GAClCmI,EAAQ0vyB,EAAchuwB,YAAYC,EAAWC,EAAQ,MACrDwzwB,EAAa9xwB,EAAYmB,YAAc,IAAMzkC,EASjD,IAAK,IAAIiG,KAPT2uM,EAAe,OAAItS,EACnBsS,EAAO,mBAAqB,mBAC5BA,EAAO,oBAAsBwgmB,EAC7BxgmB,EAAO,cAAgB9wK,EACnBR,EAAYkB,eACdowK,EAAO,wBAA0BtxK,EAAYkB,cAE7BowK,EAChB,GAAIA,EAAOhqL,eAAe3kB,GAAQ,CAChC,IAAI0D,EAAY,CAAC,EACjBA,EAAU1D,GAAS2uM,EAAO3uM,GAC1BqoC,EAAW16B,KAAKjK,EAClB,CAaF,OAVAirM,EAAO34H,OAASjqF,KAAKqjzB,kBACnB,IAAI//yB,KAAKC,EAAIylC,UAA+B,IAAnBm6wB,GACzB7mwB,GAEFsmK,EAAO,mBAAqBmikB,EAAI6G,KAAK7rvB,OAAO8P,KAC1C6twB,EAAc7qwB,cAAcvB,EAAa3B,EAAWC,EAAQ,MAAM,GAClEgzK,EAAO34H,OACP,OAGK24H,CACT,EAKAygmB,kBAAmB,SAA2BhuwB,EAAYiH,GACxD,OAAOyouB,EAAI6G,KAAKt1qB,OAAOl2E,OAAO1+B,KAAKQ,UAAU,CAC3CmzC,WAAY0vuB,EAAI6G,KAAKz5wB,KAAK8lyB,QAAQ5iwB,GAClCiH,WAAYA,IAEhB,EAKA0iwB,iBAAkB,SAA0Bz6wB,GAC1CA,EAAQowJ,YAAY,WAAYpwJ,EAAQF,QAAQi/wB,0BAChD/+wB,EAAQqwJ,eAAe,QAASrwJ,EAAQF,QAAQs6wB,gBAC3Cp6wB,EAAQs0B,OAAOgyB,KAIlBtmD,EAAQowJ,YAAY,aAAcowlB,EAAI0S,eAAeC,KAAKunB,gBAF1D16wB,EAAQqwJ,eAAe,QAASrwJ,EAAQF,QAAQu6wB,kBAIpD,EAMAM,mBAAoB,SAA4B36wB,GAC9C,IAAIliC,EAAUkiC,EAAQg+W,YAAYlgZ,QAE7B0d,OAAO7f,UAAU04B,eAAe9S,KAAKzjB,EAAS,uBACjDA,EAAQ,wBAA0B,mBAEtC,EAKAihzB,yBAA0B,SAAkC/+wB,GAC1D,QAAqCl8B,IAAjCk8B,EAAQs0B,OAAO+xB,cACjB,MAAMm6rB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CAAC8mB,KAAM,sBACvChnB,QAAS,sDAEf,EAEAsjzB,aAAc,SAAsB1qvB,EAAQ0vD,GAMpB,oBAAX1vD,GAA0BA,IACnC0vD,EAAWA,GAAY1vD,EACvBA,EAAS,CAAC,GAEZ,IAAI5xB,EAAWjnC,KAAKw9C,SAASvW,SAGzBu8wB,EAAez+B,EAAI6G,KAAKn0qB,KAAK5+C,GAKjC,OAHI5xB,IAAajnC,KAAKye,IAAI6mxB,gBAAmBzsuB,EAAOkC,4BAClDyovB,EAAazovB,0BAA4B,CAAEC,mBAAoBh7D,KAAK8+C,OAAOlP,SAEtE5vC,KAAKq3xB,YAAY,eAAgBmsB,EAAcj7rB,EACxD,EAEAk7rB,uBAAwB,SAAgC5qvB,EAAQ0vD,GAE9D,IAAIhkF,EAAUvkC,KAAKq3xB,YAAY,yBAA0BtS,EAAI6G,KAAKn0qB,KAAK5+C,GAAS0vD,GAC5EthF,EAAWjnC,KAAKw9C,SAASvW,SAW7B,OAREA,GAF4C,IAA1CA,EAAS7lC,QAAQpB,KAAK8+C,OAAOlP,QAEpB3I,EAAStmC,QAAQ,MAAOq9yB,EAAwB,KAIhD/2wB,EAAStmC,QAAQ,MAAOq9yB,EAAwB,IAAMh+yB,KAAK8+C,OAAOlP,OAAS,KAGxFrL,EAAQg+W,YAAY/kW,SAAW,IAAIunuB,EAAIlivB,SAASoE,EAAUjnC,KAAK8+C,QACxDva,CACT,EAkCA+/vB,OAAQ,SAAgBzruB,EAAQvuD,EAASi+G,GAChB,oBAAZj+G,QAAuCjC,IAAbkgH,IACnCA,EAAWj+G,EACXA,EAAU,MAGZA,EAAUA,GAAW,CAAC,EACtBA,EAAUy6wB,EAAI6G,KAAK9/lB,MAAMxhL,GAAW,CAAC,EAAG,CAAC+5B,QAASrkC,KAAM64D,OAAQA,IAEhE,IAAI6qvB,EAAW,IAAI3+B,EAAIx4sB,GAAG6jtB,cAAc9lxB,GAExC,MADwB,oBAAbi+G,GAAyBm7rB,EAAS/2uB,KAAK47C,GAC3Cm7rB,CACT,IAMF3+B,EAAIx4sB,GAAGmmtB,mBAAqB,SAA4BC,GACtD3yxB,KAAKE,UAAUyjzB,oBAAsB5+B,EAAI6G,KAAKgH,gBAAgB,eAAgBD,EAChF,EAKA5N,EAAIx4sB,GAAGumtB,wBAA0B,kBACxB9yxB,KAAKE,UAAUyjzB,mBACxB,EAEA5+B,EAAI6G,KAAKyE,YAAYtL,EAAIx4sB,2BCvxCzB,IAAIw4sB,EAAM/tvB,EAAQ,MACd6mxB,EAAa7mxB,EAAQ,OAErB4mxB,EAAS,CAIXuB,aAAc,SAAsB3tmB,EAAK1gK,GACvC,IACI8ywB,IADcpymB,EAAIntK,QAAQ5lB,IAAI2stB,WAAW55hB,EAAI3yK,YAAc,CAAC,GAAGqB,OAAS,CAAC,GAC/Cu2vB,SAAW,CAAC,EAC1C,SAAKjllB,EAAI34I,OAAO/nB,KAAe8ywB,EAAa9ywB,KACrCi0uB,EAAI6G,KAAKwzB,IAAIp5vB,SAASwrJ,EAAI34I,OAAO/nB,GAC1C,EAKA6uwB,mBAAoB,SAA4BnumB,GAC9C,IAAIqymB,EAAYrymB,EAAI4smB,WAEpB,GAA0B,OAAtByF,EAAUx/wB,SACa,gBAAtBw/wB,EAAUx/wB,SACY,qBAAtBw/wB,EAAUx/wB,QACb,MAAM0gvB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CAChC8mB,KAAM,aACNhnB,QAAS,+EAGf,EAKAy/yB,mBAAoB,SAA4BlumB,GAC9C,IAAIqymB,EAAYrymB,EAAI4smB,WAEpB,IAAK,YAAYn0rB,KAAK45rB,EAAUjrwB,WAC9B,MAAMmsuB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CAChC8mB,KAAM,aACNhnB,QAAS,kDAGf,EAKAo/yB,yBAA0B,SAAkC7tmB,GAC1D,IAAIqymB,EAAYrymB,EAAI4smB,WAGhBx2tB,EAAYi8tB,EAAUv2B,SAAS,IAEnC,GAAmD,IAA/Cu2B,EAAUv2B,SAAS1rxB,MAAMgmF,GAAWhnF,OACtC,MAAMmkxB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CAChC8mB,KAAM,aACNhnB,QAAS,4EAIb,IAAIkhzB,EAAc0C,EAAUv2B,SAAS1rxB,MAAMgmF,GAAW,GAClDk8tB,EAAoB3C,EAAc,IAAM0C,EAAUjrwB,UACtD,IAAKglwB,EAAO6D,wBAAwBqC,IAAsBA,EAAkB3gsB,MAAM,MAChF,MAAM4hqB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CAChC8mB,KAAM,aACNhnB,QAAS,2DAA6DkhzB,IAK1E3vmB,EAAI4smB,WAAW+C,YAAcA,CAC/B,EAKA1B,oBAAqB,SAA6BjumB,GAChD,IAAIqymB,EAAYrymB,EAAI4smB,WAEpB,GAC6C,IAA3CyF,EAAUv2B,SAASlsxB,QAAQ,aACgB,IAA3CyizB,EAAUv2B,SAASlsxB,QAAQ,YAE3B,MAAM2jxB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CAChC8mB,KAAM,aACNhnB,QAAS,8CAKb,IAAI2nF,EAAYi8tB,EAAUv2B,SAAS,GAC/ByzB,EAAY8C,EAAUv2B,SAAS1rxB,MAAMgmF,GAAW,GAEpD,IADmB,IAAIlwC,OAAO,4DACZpxB,KAAKy6xB,GACrB,MAAMh8B,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CAChC8mB,KAAM,aACNhnB,QAAS,sDAAwD8gzB,IAGrEvvmB,EAAI4smB,WAAW2C,UAAYA,CAC7B,EAKAvB,+BAAgC,SAAwChumB,GACtE,IAAIqymB,EAAYrymB,EAAI4smB,WAGhBx2tB,EAAYi8tB,EAAUv2B,SAAS,GAEnC,GAAmD,IAA/Cu2B,EAAUv2B,SAAS1rxB,MAAMgmF,GAAWhnF,OACtC,MAAMmkxB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CAChC8mB,KAAM,aACNhnB,QAAS,6FAIb,IAAIkhzB,EAAc0C,EAAUv2B,SAAS1rxB,MAAMgmF,GAAW,GAClDk8tB,EAAoB3C,EAAc,IAAM0C,EAAUjrwB,UACtD,IAAKglwB,EAAO6D,wBAAwBqC,IAAsBA,EAAkB3gsB,MAAM,MAChF,MAAM4hqB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CAChC8mB,KAAM,aACNhnB,QAAS,2DAA6DkhzB,IAK1E3vmB,EAAI4smB,WAAW+C,YAAcA,CAC/B,EAKA5B,kBAAmB,SAA2B/tmB,EAAKlnM,QACjCjC,IAAZiC,IACFA,EAAU,CAAC,GAGb,IAAIksD,EAAeonvB,EAAOmG,uBAAuBvymB,GAC7CwymB,EAAgBxymB,EAAI4smB,WAAWxuwB,OAC/Bq0wB,EAAezymB,EAAIntK,QAAQya,OAAOlP,OAClCwnB,EAAkBo6I,EAAIntK,QAAQya,OAAOsY,gBACrC8ovB,EAAoB51yB,EAAQ41yB,oBAAqB,EAErD,IAAK8D,EAAe,CAClB,IAAI/jzB,EAAU,sBAKd,KAJ+B,OAA3BuxM,EAAI4smB,WAAW/5wB,UACjBpkC,GAAUA,qKAGN8kxB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CAChC8mB,KAAM,aACNhnB,QAASA,GAEb,CAEA,GAAIm3D,IAAoB8ovB,EACtB,MAAMn7B,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CAChC8mB,KAAM,uBACNhnB,QAAS,oDAIb,GAAI+jzB,EAAc5izB,QAAQ,SAAW,EACnC,MAAM2jxB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CAChC8mB,KAAM,uBACNhnB,QAAS,mCAIb,IAAKu2D,GAAgBwtvB,IAAkBC,EACrC,MAAMl/B,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CAChC8mB,KAAM,uBACNhnB,QAAS,yDAEN,GACLu2D,GACAqnvB,EAAW1O,kBAAkB6U,KAAmBnG,EAAW1O,kBAAkB8U,GAE7E,MAAMl/B,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CAChC8mB,KAAM,uBACNhnB,QAAS,oEAIb,GAAIuxM,EAAIntK,QAAQya,OAAOmZ,sBACrB,MAAM8stB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CAChC8mB,KAAM,uBACNhnB,QAAS,wEAIb,GAA+B,gBAA3BuxM,EAAI4smB,WAAW/5wB,SAA6BmtK,EAAIntK,QAAQya,OAAOqY,qBACjE,MAAM4ttB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CAChC8mB,KAAM,uBACNhnB,QAAS,6DAGf,EAEA8jzB,uBAAwB,SAAgCvymB,GACtD,IAAI0ymB,EAAU,wBACVlhE,EAAa,oBACbxsrB,GAAe,EACfi6tB,EAAiBj/kB,EAAIntK,QAAQs0vB,iBAAmB,CAAC,EACrD,QAA0CtwxB,IAAtCmpM,EAAIntK,QAAQya,OAAOuwuB,eACrB,OAAO79kB,EAAIntK,QAAQya,OAAOuwuB,eACrB,QAAsChnxB,IAAlCooxB,EAAepB,eACxB74tB,GAAiD,IAAlCi6tB,EAAepB,oBACzB,GAAItK,EAAI6G,KAAKG,SAElB,GAAIhtvB,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYmlxB,GAAU,CACxB,IAAIl9yB,EAAQ+3B,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYmlxB,GAAS5zwB,OAAOzwB,cACxC,GAAI,CAAC,QAAS,QAAQze,QAAQ4F,GAAS,EACrC,MAAM+9wB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CAChC8mB,KAAM,uBACNhnB,QAASikzB,EAAU,oCAAsCnlxB,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYmlxB,GACrE13E,WAAW,IAGfh2qB,EAAyB,SAAVxvD,CACjB,KAAO,CACL,IACI0pxB,EAAU,CAAC,EACf,IAEEA,EADW3L,EAAI6G,KAAK+E,4BAA4B5L,EAAI6G,KAAKgF,WACtC7xvB,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAY8xvB,aAAe9L,EAAI6G,KAAKkF,eACzD,CAAE,MAAO/wxB,GAAI,CACb,GAAI2wxB,EAAQ1tC,GAAa,CACvB,GAAI,CAAC,QAAS,QAAQ5hvB,QAAQsvxB,EAAQ1tC,GAAY1ysB,OAAOzwB,eAAiB,EACxE,MAAMklwB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CAChC8mB,KAAM,uBACNhnB,QAAS+ivB,EAAa,oCAAsC0tC,EAAQ1tC,GACpExW,WAAW,IAGfh2qB,EAA4D,SAA7Ck6tB,EAAQ1tC,GAAY1ysB,OAAOzwB,aAC5C,CACF,CAGF,OADA2xL,EAAIntK,QAAQya,OAAOuwuB,eAAiB74tB,EAC7BA,CACT,EAKAqpvB,2BAA4B,SAAoCrumB,GAC9D,GAAIA,EAAIntK,QAAQs0vB,iBAAmBnnlB,EAAIntK,QAAQs0vB,gBAAgBn7uB,SAC7D,MAAMunuB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CAChC8mB,KAAM,uBACNhnB,QAAS,4DAIb,GAAIuxM,EAAIntK,QAAQya,OAAOmwuB,iBACrB,MAAMlK,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CAChC8mB,KAAM,uBACNhnB,QAAS,0DAGf,EAQAwhzB,wBAAyB,SAAiCpymB,GACxD,IAAI72K,EAAI62K,EACJ6lW,EAAS,IAAIx9f,OAAO,wCACpByswB,EAAY,IAAIzswB,OAAO,iBACvB0swB,EAAO,IAAI1swB,OAAO,QACtB,SAAQlf,EAAE2qF,MAAM+xb,IAAY18gB,EAAE2qF,MAAMghsB,IAAe3rxB,EAAE2qF,MAAMihsB,GAC7D,GAMFn/lB,EAAOrtL,QAAUgmxB,wBC1RjB,IAAI74B,EAAM/tvB,EAAQ,MAElB+tvB,EAAI6G,KAAKv0vB,OAAO0tvB,EAAIkE,IAAI/oxB,UAAW,CAIjCy4yB,sBAAuB,SAA+Bp0wB,GACpDA,EAAQowJ,YAAY,QAAS30L,KAAKi9yB,eAE9B14wB,EAAQF,QAAQya,OAAOwwuB,mBACC,gBAAtB/qvB,EAAQ1F,UACV0F,EAAQowJ,YAAY,cAAe30L,KAAKqkzB,2BACT,qBAAtB9/wB,EAAQ1F,UACjB0F,EAAQowJ,YAAY,cAAe30L,KAAKskzB,gCACT,mBAAtB//wB,EAAQ1F,WACjB0F,EAAQowJ,YAAY,cAAe30L,KAAKukzB,8BAG9C,EAKAF,0BAA2B,SAAmC3gzB,GAC5D,GAAKA,EAASiG,KAAd,CAEA,IAAIitD,EAAMlzD,EAASiG,KAAK66yB,iBACpBhqxB,EAAOx6B,KAAK64D,OAAO4rvB,YACnBC,EAAgB1kzB,KAAKqkC,QAAQsgxB,kBAAkBnqxB,GACnD,GAAIkqxB,IAAkB9tvB,EAAK,CACzB,IAAIrpB,EAAM,QAAU7pC,EAASiG,KAAK66yB,iBAChC,iBAAmBE,EAAgB,KACrC1kzB,KAAKqkC,QAAQugxB,0BAA0BlhzB,EACrC,CAACA,EAASiG,KAAKk7yB,WAAYt3wB,EAC/B,CAV0B,CAW5B,EAKA+2wB,+BAAgC,SAAwC5gzB,GACtE,GAAKA,EAASiG,KAAd,CAEA,IAAI06B,EAAUrkC,KAAKqkC,QACfphB,EAAU,CAAC,EACXjJ,EAAS,GACT8qyB,EAAa,GACjB//B,EAAI6G,KAAK4G,UAAU9uxB,EAASiG,KAAKo7yB,YAAY,SAAUhjyB,GACrDkB,EAAQlB,EAAMijE,IAAMjjE,CACtB,IACAgjwB,EAAI6G,KAAK4G,UAAUxyxB,KAAK64D,OAAOmsvB,SAAS,SAAUjjyB,GAChD,GAAIkB,EAAQlB,EAAMijE,IAAK,CACrB,IAAIpuB,EAAM3zC,EAAQlB,EAAMijE,IAAIw/tB,iBACxBhqxB,EAAOzY,EAAM0iyB,YACZpgxB,EAAQ4gxB,gBAAgBruvB,EAAKp8B,KAChCxgB,EAAO4H,KAAKG,EAAMijE,IAClB8/tB,EAAWljyB,KAAKqB,EAAQlB,EAAMijE,IAAI6/tB,WAEtC,CACF,IAEI7qyB,EAAOpZ,OAAS,GAClByjC,EAAQugxB,0BAA0BlhzB,EAAUohzB,EAC1C,qBAAuB9qyB,EAAOgN,KAAK,MAtBb,CAwB5B,EAKAu9xB,6BAA8B,SAAsC7gzB,GAClE,GAAKA,EAASiG,KAAd,CAEA,IAAI06B,EAAUrkC,KAAKqkC,QACfygxB,EAAa,GACjB//B,EAAI6G,KAAK4G,UAAU9uxB,EAASiG,KAAKu7yB,UAAU,SAASjlzB,GAClD,IAAI22D,EAAM32D,EAAQklzB,UACd3qxB,EAAOv6B,EAAQ4qF,KACdxmD,EAAQ4gxB,gBAAgBruvB,EAAKp8B,IAChCsqxB,EAAWljyB,KAAK3hB,EAAQ4kzB,UAE5B,IAEIC,EAAWlkzB,OAAS,GACtByjC,EAAQugxB,0BAA0BlhzB,EAAUohzB,EAC1C,qBAAuBA,EAAW99xB,KAAK,MAdjB,CAgB5B,EAKA49xB,0BAA2B,SAAmClhzB,EAAUm7jB,EAAK5+jB,GAC3EyD,EAASa,MAAQwgxB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CAC3CqsuB,WAAW,EACXvltB,KAAM,kBACN69xB,WAAYjmP,EACZ5+jB,QAASyD,EAAS6gC,QAAQ1F,UACjB,sCAAwC5+B,GAErD,EAKAglzB,gBAAiB,SAAyBptxB,EAAUluB,GAClD,OAAO3J,KAAK2kzB,kBAAkBh7yB,KAAUkuB,CAC1C,EAKA8sxB,kBAAmB,SAA2Bh7yB,GAC5C,OAAOo7wB,EAAI6G,KAAK7rvB,OAAO62B,IAAIjtD,EAAM,MACnC,EAKAszyB,cAAe,SAAuB14wB,GACpC,IAAI2V,EAAM3V,EAAQg+W,YAAY1pV,OAAOusvB,SACrC,GAAIlrwB,EAAK,CACP3V,EAAQg+W,YAAY/kW,SAAW,IAAIunuB,EAAIlivB,SAASqX,GAIhD,IAAIs6I,EAAUjwJ,EAAQg+W,YAAY/kW,SAASrW,KAAKg8E,MAAM,iBAClDqxE,IAASjwJ,EAAQg+W,YAAY3yW,OAAS4kJ,EAAQ,GACpD,CACF,2BCjIF,IAAIuwlB,EAAM/tvB,EAAQ,MACd2mxB,EAA+B3mxB,EAAQ,OAI3C+tvB,EAAI6G,KAAKv0vB,OAAO0tvB,EAAIqE,IAAIlpxB,UAAW,CA0BjCuzxB,gBAAiB,SAAyB9pxB,EAAM2nC,GAC9C,OAAK3nC,GACA2nC,IAAaA,EAAc,IAAIyzuB,EAAIkR,sBACxC3kvB,EAAY2gvB,SAAU,EACtB3gvB,EAAYmB,YAAc9oC,EAAKumxB,YAAY0E,YAC3CtjvB,EAAY0D,gBAAkBrrC,EAAKumxB,YAAYm1B,gBAC/C/zwB,EAAYkB,aAAe7oC,EAAKumxB,YAAY4E,aAC5CxjvB,EAAY4gvB,WAAavoxB,EAAKumxB,YAAYrjsB,WACnCv7C,GAPW,IAQpB,EAEA+kvB,0BAA2B,SAAmCx9tB,EAAQ0vD,GACpE,OAAOvoH,KAAKw4yB,2BAA2B,4BAA6B3/uB,EAAQ0vD,EAC9E,EAEAytqB,mBAAoB,SAA4Bn9tB,EAAQ0vD,GACtD,OAAOvoH,KAAKw4yB,2BAA2B,qBAAsB3/uB,EAAQ0vD,EACvE,EAKAowrB,sBAAuB,SAA+Bp0wB,GACpDA,EAAQowJ,YAAY,WAAY30L,KAAKslzB,uBAAuB,EAC9D,EAKAA,sBAAuB,SAA+B9zmB,GACpD,IAAIntK,EAAUmtK,EAAIntK,QACdya,EAASza,EAAQya,OAMrB,GALAA,EAAOmxuB,qBAAuB0tB,EAA6Bt5wB,EAAQs0vB,gBAAiB,CAClFxkD,IA9D8B,6BA+D9B48C,aA9DiC,yBA+DjCx8qB,aAAc,yBAGkB,aAAhCz1D,EAAOmxuB,sBACP5rvB,EAAQ66vB,iBACR,CAEA,IAAKpgvB,EAAOlP,OACV,MAAMm1uB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MACvB,CAAC8mB,KAAM,cAAehnB,QAAS,6BAEnC,IAAIogzB,EAAcvhwB,EAAOtB,SAASp8C,QAAQ,kBACtCk/yB,EAAmBxhwB,EAAOtB,SAAS9C,UAAU,EAAG2lwB,GAClD,IAAMvhwB,EAAOlP,OAASkP,EAAOtB,SAAS9C,UAAU2lwB,GAClD7umB,EAAI+wM,YAAY40Y,eAAempB,GAC/B9umB,EAAI+wM,YAAY3yW,OAASkP,EAAOlP,MAClC,CACF,2BCnFF,IAAIm1uB,EAAM/tvB,EAAQ,MAKlB+tvB,EAAIkM,QAAQs0B,OAASxgC,EAAI6G,KAAK/1mB,QAAQkvmB,EAAIkM,QAAQ2pB,cAAe,CAC/Dv0xB,YAAa,SAAgBke,GAC3BwgvB,EAAIkM,QAAQ2pB,cAAc90xB,KAAK9lB,KAAMukC,EACvC,EAEA47vB,iBAAkB,SAA0Bz7uB,GAC1C1kD,KAAKukC,QAAQliC,QAAuB,cAAI,UAAYqiD,EAAMA,KAC5D,2BCZF,IAAIqguB,EAAM/tvB,EAAQ,MACd6+I,EAAUkvmB,EAAI6G,KAAK/1mB,QAKnB2voB,EAAgB,oBAKpB,SAASC,EAAiBlhxB,GACxB,IAAIu/C,EAAUv/C,EAAQg+W,YAAYlgZ,QAAQmjzB,GACtClH,EAAc/5wB,EAAQF,QAAQo7vB,eAAel7vB,GAKjD,UAHOA,EAAQg+W,YAAYlgZ,QAAQ,qBAC5BkiC,EAAQg+W,YAAYlgZ,QAAQ,oBAE/Bi8yB,IAAgBv5B,EAAIkM,QAAQyO,GAAI,CAClC,GAAI57sB,EAAU,OAAQ,CAGpB,MAAMihsB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CAChC8mB,KAAM,oBAAqBhnB,QAHf,kFAGiCusuB,WAAW,GAE5D,CACAjosB,EAAQg+W,YAAYlgZ,QAAQmjzB,GAAiB1huB,CAC/C,KAAO,IAAIw6tB,IAAgBv5B,EAAIkM,QAAQ1ktB,GAKrC,MAAMw4sB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAS,CAChCF,QAAS,gDACTgnB,KAAM,oBAAqBultB,WAAW,IANxC,IAAIjpuB,EAAMghC,EAAQF,QAAUE,EAAQF,QAAQkR,uBAAyBwvuB,EAAI6G,KAAKz5wB,KAAKo+P,UACnFhsO,EAAQg+W,YAAYlgZ,QAAQmjzB,GAAiB/wxB,SAC3CswvB,EAAI6G,KAAKz5wB,KAAKuzyB,cAAcnizB,GAAOugF,EAAS,IAAIviF,UAMpD,CACF,CAKA,SAASokzB,EAAgBphxB,GACvB,IAAIiZ,EAAWjZ,EAAQg+W,YAAY/kW,SAC/BgwuB,EAAYzI,EAAI6G,KAAKqX,SAAS1+vB,EAAQg+W,YAAY/iY,MAClDkrtB,EAAc,CAAC,EAEf8iD,EAAUj4vB,SACZm1sB,EAAcq6C,EAAI6G,KAAK2X,iBAAiB/V,EAAUj4vB,OAAO1vB,OAAO,KAGlE,IAAI8nM,EAAOppK,EAAQg+W,YAAYlgZ,QAAuB,cAAET,MAAM,KAC9D,GAAgB,QAAZ+rM,EAAK,GACPA,EAAOA,EAAK,GAAG/rM,MAAM,KACrB8ouB,EAAuB,UAAI/8hB,EAAK/tL,MAChC8qtB,EAA4B,eAAI/8hB,EAAK3mL,KAAK,KAE1C+9vB,EAAI6G,KAAK9pN,KAAKv9hB,EAAQg+W,YAAYlgZ,SAAS,SAAU4iB,EAAKje,GACpDie,IAAQugyB,IAAevgyB,EAAM,WACE,IAA/BA,EAAI7jB,QAAQ,wBAEPspuB,EAAYzltB,GACnBA,EAAMA,EAAIpF,eAEZ6qtB,EAAYzltB,GAAOje,CACrB,WACOu9B,EAAQg+W,YAAYlgZ,QAAQmjzB,UAC5B96E,EAA2B,qBAC3BA,EAAkB,UACpB,GAAgB,qBAAZ/8hB,EAAK,GAA2B,CACzCA,EAAK1xK,QACL,IACIwX,EADOk6J,EAAK3mL,KAAK,KACAm8F,MAAM,mCAAmC,GAC9DunnB,EAAY,mBAAqBj3rB,SAC1Bi3rB,EAAqB,OAC9B,CAGAltrB,EAASnD,SAAWmzuB,EAAUnzuB,SAC9BmD,EAASjoB,OAASwvvB,EAAI6G,KAAK4X,oBAAoB94D,EACjD,CAKAq6C,EAAIkM,QAAQ6gB,QAAUj8nB,EAAQ,CAI5Bt2I,KAAM,SAAcgF,EAAS2tvB,EAAY3pqB,GAWvC,GAVAhkF,EAAQg+W,YAAYlgZ,QAAQmjzB,GAAiBtzB,GAAc,KAC3D3tvB,EAAQ2vE,GAAG,QAASuxsB,GACpBlhxB,EAAQ2vE,GAAG,OAAQyxsB,GACnBphxB,EAAQqwJ,eAAe,aACrBmwlB,EAAI0S,eAAeC,KAAKkuB,oBAC1BrhxB,EAAQqwJ,eAAe,aACrBmwlB,EAAI0S,eAAeC,KAAKunB,gBAE1B16wB,EAAQ8xE,KAAK,gBAAiB,CAAC9xE,KAE3BgkF,EAOG,CAEL,GADAhkF,EAAQyvK,QACJzvK,EAAQ7gC,SAASa,MAAO,MAAMggC,EAAQ7gC,SAASa,MACnD,OAAOwgxB,EAAI6G,KAAKm3B,UAAUx+wB,EAAQg+W,YAAY/kW,SAChD,CAVEjZ,EAAQyvK,OAAM,WACRh0M,KAAK0D,SAASa,MAAOgkH,EAASvoH,KAAK0D,SAASa,OAE9CgkH,EAAS,KAAMw8pB,EAAI6G,KAAKm3B,UAAUx+wB,EAAQg+W,YAAY/kW,UAE1D,GAMJ,IAMFynK,EAAOrtL,QAAUmtvB,EAAIkM,QAAQ6gB,+BCtH7B,IAAI/sB,EAAM/tvB,EAAQ,MAEd6+I,EAAUkvmB,EAAI6G,KAAK/1mB,QAKvBkvmB,EAAIkM,QAAQ2pB,cAAgB/koB,EAAQ,CAClCxvJ,YAAa,SAAuBke,GAClCvkC,KAAKukC,QAAUA,CACjB,EAEA+7vB,mBAAoB,SAA4B53xB,GAC9C1I,KAAK6lzB,gBAAkBn9yB,CACzB,EAEAo9yB,mBAAoB,WAClB,OAAO9lzB,KAAK6lzB,eACd,IAGF9gC,EAAIkM,QAAQ2pB,cAAcxkZ,WAAa,SAAoB53W,GACzD,OAAQA,GACN,IAAK,KAAM,OAAOumuB,EAAIkM,QAAQ80B,GAC9B,IAAK,KAAM,OAAOhhC,EAAIkM,QAAQ+0B,GAC9B,IAAK,OACL,IAAK,KAAM,OAAOjhC,EAAIkM,QAAQyO,GAC9B,IAAK,KAAM,OAAO3a,EAAIkM,QAAQ1ktB,GAC9B,IAAK,UAAW,OAAOw4sB,EAAIkM,QAAQg1B,QACnC,IAAK,SAAU,OAAOlhC,EAAIkM,QAAQs0B,OAEpC,MAAM,IAAIplzB,MAAM,2BAA6Bq+C,EAC/C,EAEAxnB,EAAQ,OACRA,EAAQ,MACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,OACRA,EAAQ,8BCxCR,IAAI+tvB,EAAM/tvB,EAAQ,MACd6+I,EAAUkvmB,EAAI6G,KAAK/1mB,QAKvBkvmB,EAAIkM,QAAQ1ktB,GAAKspG,EAAQkvmB,EAAIkM,QAAQ2pB,cAAe,CAKlDsL,aAAc,CACZ,IAAO,EACP,WAAc,EACd,UAAa,EACb,KAAQ,EACR,UAAa,EACb,OAAU,EACV,UAAa,EACb,SAAY,EACZ,QAAW,EACX,QAAW,EACX,aAAgB,EAChB,WAAc,EACd,OAAU,EACV,eAAkB,EAClB,YAAe,EACf,QAAW,EACX,QAAW,EACX,QAAW,EACX,SAAY,EACZ,QAAW,EACX,UAAa,EACb,WAAc,EACd,SAAY,EACZ,QAAW,GAKb9jsB,gBAAiB,CACf,wBAAyB,EACzB,4BAA6B,EAC7B,mBAAoB,EACpB,yBAA0B,EAC1B,+BAAgC,EAChC,4BAA6B,GAG/B+9qB,iBAAkB,SAA0B7uvB,EAAan/B,GAClDnS,KAAKukC,QAAQliC,QAAQ,uBACxBrC,KAAKukC,QAAQliC,QAAQ,cAAgB0ixB,EAAI6G,KAAKz5wB,KAAKg0yB,OAAOh0yB,IAGxDm/B,EAAYkB,eAEdxyC,KAAKukC,QAAQliC,QAAQ,wBAA0BivC,EAAYkB,cAG7D,IAAIiB,EAAYzzC,KAAKu/B,KAAK+R,EAAY0D,gBAAiBh1C,KAAKuzC,gBACxDo6J,EAAO,OAASr8J,EAAYmB,YAAc,IAAMgB,EAEpDzzC,KAAKukC,QAAQliC,QAAuB,cAAIsrM,CAC1C,EAEAp6J,aAAc,WACZ,IAAIlzC,EAAIL,KAAKukC,QAET2U,EAAQ,GACZA,EAAMt3B,KAAKvhB,EAAE4G,QACbiyC,EAAMt3B,KAAKvhB,EAAEgC,QAAQ,gBAAkB,IACvC62C,EAAMt3B,KAAKvhB,EAAEgC,QAAQ,iBAAmB,IAKxC62C,EAAMt3B,KAAKvhB,EAAEgC,QAAQ,sBAAwB,IAE7C,IAAIA,EAAUrC,KAAKomzB,0BAInB,OAHI/jzB,GAAS62C,EAAMt3B,KAAKvf,GACxB62C,EAAMt3B,KAAK5hB,KAAKqmzB,yBAETntwB,EAAMlyB,KAAK,KAEpB,EAEAo/xB,wBAAyB,WAEvB,IAAIE,EAAa,GAEjBvhC,EAAI6G,KAAK9pN,KAAK9hkB,KAAKukC,QAAQliC,SAAS,SAAUjC,GACxCA,EAAK+iH,MAAM,aACbmjsB,EAAW1kyB,KAAKxhB,EACpB,IAEAkmzB,EAAWl2wB,MAAK,SAAUrvC,EAAGy3B,GAC3B,OAAOz3B,EAAE8e,cAAgB2Y,EAAE3Y,eAAiB,EAAI,CAClD,IAEA,IAAIq5B,EAAQ,GAKZ,OAJA6ruB,EAAI6G,KAAK4G,UAAU1swB,KAAK9lB,KAAMsmzB,GAAY,SAAUlmzB,GAClD84C,EAAMt3B,KAAKxhB,EAAKyf,cAAgB,IAAMnf,OAAOV,KAAKukC,QAAQliC,QAAQjC,IACpE,IAEO84C,EAAMlyB,KAAK,KAEpB,EAEAq/xB,sBAAuB,WAErB,IAAIhmzB,EAAIL,KAAKukC,QAET2U,EAAQ74C,EAAEmf,KAAK5d,MAAM,KACrB4d,EAAO05B,EAAM,GACb8jK,EAAc9jK,EAAM,GAEpBo0uB,EAAW,GAOf,GALIjtxB,EAAEmgzB,sBACJlzB,GAAY,IAAMjtxB,EAAEmgzB,qBAEtBlzB,GAAY9twB,EAERw9L,EAAa,CAGf,IAAIy7X,EAAY,GAEhBssM,EAAI6G,KAAK4G,UAAU1swB,KAAK9lB,KAAMg9M,EAAYp7M,MAAM,MAAM,SAAUmvC,GAC9D,IAAI3wC,EAAO2wC,EAAMnvC,MAAM,KAAK,GACxBoF,EAAQ+pC,EAAMnvC,MAAM,KAAK,GAC7B,GAAI5B,KAAKkmzB,aAAa9lzB,IAASJ,KAAKoiH,gBAAgBhiH,GAAO,CACzD,IAAImmzB,EAAc,CAAEnmzB,KAAMA,QACZiI,IAAVrB,IACEhH,KAAKkmzB,aAAa9lzB,GACpBmmzB,EAAYv/yB,MAAQA,EAEpBu/yB,EAAYv/yB,MAAQ3F,mBAAmB2F,IAG3CyxkB,EAAU72jB,KAAK2kyB,EACjB,CACF,IAEA9tO,EAAUroiB,MAAK,SAAUrvC,EAAGy3B,GAAK,OAAOz3B,EAAEX,KAAOo4B,EAAEp4B,MAAQ,EAAI,CAAG,IAE9Dq4kB,EAAU73kB,SAEZo8M,EAAc,GACd+nkB,EAAI6G,KAAK4G,UAAU/5M,GAAW,SAAUr+d,QACpB/xG,IAAd+xG,EAAIpzG,MACNg2M,EAAYp7L,KAAKw4F,EAAIh6G,MAErB48M,EAAYp7L,KAAKw4F,EAAIh6G,KAAO,IAAMg6G,EAAIpzG,MAE1C,IAEAsmxB,GAAY,IAAMtwkB,EAAYh2L,KAAK,KAGvC,CAEA,OAAOsmwB,CAET,EAEA/tvB,KAAM,SAAclB,EAAQ04E,GAC1B,OAAOguqB,EAAI6G,KAAK7rvB,OAAO8P,KAAKxR,EAAQ04E,EAAQ,SAAU,OACxD,IAMFkuG,EAAOrtL,QAAUmtvB,EAAIkM,QAAQ1ktB,0BC9K7B,IAAIw4sB,EAAM/tvB,EAAQ,MACd6+I,EAAUkvmB,EAAI6G,KAAK/1mB,QAKvBkvmB,EAAIkM,QAAQ80B,GAAKlwoB,EAAQkvmB,EAAIkM,QAAQ2pB,cAAe,CAClDza,iBAAkB,SAA0B7uvB,EAAan/B,GAElDA,IAAMA,EAAO4ywB,EAAI6G,KAAKz5wB,KAAKo+P,WAEhC,IAAIlwQ,EAAIL,KAAKukC,QAEblkC,EAAEw4D,OAAO0hvB,UAAYx1B,EAAI6G,KAAKz5wB,KAAK8lyB,QAAQ9lyB,GAC3C9R,EAAEw4D,OAAO2tvB,iBAAmB,IAC5BnmzB,EAAEw4D,OAAO4tvB,gBAAkB,aAC3BpmzB,EAAEw4D,OAAO6tvB,eAAiBp1wB,EAAYmB,YAElCnB,EAAYkB,eACdnyC,EAAEw4D,OAAO8tvB,cAAgBr1wB,EAAYkB,qBAGhCnyC,EAAEw4D,OAAO8ztB,UAChBtsxB,EAAEw4D,OAAO8ztB,UAAY3sxB,KAAKyzC,UAAUnC,GAEpCjxC,EAAEm6B,KAAOuqvB,EAAI6G,KAAK4X,oBAAoBnjyB,EAAEw4D,QACxCx4D,EAAEgC,QAAQ,kBAAoBhC,EAAEm6B,KAAK55B,MACvC,EAEA6yC,UAAW,SAAmBnC,GAC5B,OAAOyzuB,EAAI6G,KAAK7rvB,OAAO8P,KAAKyB,EAAY0D,gBAAiBh1C,KAAKuzC,eAAgB,SAChF,EAEAA,aAAc,WACZ,IAAI2F,EAAQ,GAKZ,OAJAA,EAAMt3B,KAAK5hB,KAAKukC,QAAQt9B,QACxBiyC,EAAMt3B,KAAK5hB,KAAKukC,QAAQiZ,SAASrW,KAAKtnB,eACtCq5B,EAAMt3B,KAAK5hB,KAAKukC,QAAQ8V,YACxBnB,EAAMt3B,KAAKmjwB,EAAI6G,KAAK4X,oBAAoBxjyB,KAAKukC,QAAQs0B,SAC9C3f,EAAMlyB,KAAK,KACpB,IAOFi+L,EAAOrtL,QAAUmtvB,EAAIkM,QAAQ80B,yBC/C7B,IAAIhhC,EAAM/tvB,EAAQ,MACd6+I,EAAUkvmB,EAAI6G,KAAK/1mB,QAKvBkvmB,EAAIkM,QAAQ+0B,GAAKnwoB,EAAQkvmB,EAAIkM,QAAQ2pB,cAAe,CAClDza,iBAAkB,SAA0B7uvB,EAAan/B,GAEvD,IAAIikL,EAAW2ulB,EAAI6G,KAAKz5wB,KAAKg0yB,OAAOh0yB,GAEpCnS,KAAKukC,QAAQliC,QAAQ,cAAgB+zL,EAEjC9kJ,EAAYkB,eACdxyC,KAAKukC,QAAQliC,QAAQ,wBAA0BivC,EAAYkB,cAG7DxyC,KAAKukC,QAAQliC,QAAQ,wBACnBrC,KAAK2uC,cAAc2C,EAAa8kJ,EAEpC,EAEAznJ,cAAe,SAAuB2C,GACpC,MAAO,uBACeA,EAAYmB,YAD3B,uCAGczyC,KAAK4mzB,gBAHnB,cAIU5mzB,KAAKyzC,UAAUnC,EAClC,EAEAs1wB,cAAe,WACb,IAAIvkzB,EAAU,GAId,OAHA0ixB,EAAI6G,KAAK4G,UAAUxyxB,KAAK6mzB,iBAAiB,SAAkB3lyB,GACzD7e,EAAQuf,KAAKV,EAAErB,cACjB,IACOxd,EAAQ+tC,OAAOppB,KAAK,IAC7B,EAEA0rB,iBAAkB,WAChB,IAAIrwC,EAAUrC,KAAKukC,QAAQliC,QACvB62C,EAAQ,GAIZ,OAHA6ruB,EAAI6G,KAAK4G,UAAUxyxB,KAAK6mzB,iBAAiB,SAAkB3lyB,GACzDg4B,EAAMt3B,KAAKV,EAAErB,cAAcywB,OAAS,IAAM5vC,OAAO2B,EAAQ6e,IAAIovB,OAC/D,IACO4I,EAAM9I,OAAOppB,KAAK,MAAQ,IACnC,EAEA6/xB,cAAe,WACb,IAAIxkzB,EAAU,GAMd,OALA0ixB,EAAI6G,KAAK9pN,KAAK9hkB,KAAKukC,QAAQliC,SAAS,SAAkB44B,IAC1C,SAANA,GAAsB,qBAANA,GAA4BA,EAAEkoF,MAAM,aACtD9gH,EAAQuf,KAAKqZ,EAEjB,IACO54B,CACT,EAEAoxC,UAAW,SAAmBnC,GAC5B,OAAOyzuB,EAAI6G,KAAK7rvB,OAAO8P,KAAKyB,EAAY0D,gBAAiBh1C,KAAKuzC,eAAgB,SAChF,EAEAA,aAAc,WACZ,IAAI2F,EAAQ,GAMZ,OALAA,EAAMt3B,KAAK5hB,KAAKukC,QAAQt9B,QACxBiyC,EAAMt3B,KAAK,KACXs3B,EAAMt3B,KAAK,IACXs3B,EAAMt3B,KAAK5hB,KAAK0yC,oBAChBwG,EAAMt3B,KAAK5hB,KAAKukC,QAAQ/J,MACjBuqvB,EAAI6G,KAAK7rvB,OAAOwR,OAAO2H,EAAMlyB,KAAK,MAC3C,IAOFi+L,EAAOrtL,QAAUmtvB,EAAIkM,QAAQ+0B,0BC5E7B,IAAIjhC,EAAM/tvB,EAAQ,MACd6+I,EAAUkvmB,EAAI6G,KAAK/1mB,QAEvB7+I,EAAQ,MAKR+tvB,EAAIkM,QAAQg1B,QAAUpwoB,EAAQkvmB,EAAIkM,QAAQ+0B,GAAI,CAC5Cr3wB,cAAe,SAAuB2C,GACpC,MAAO,6BACeA,EAAYmB,YAD3B,mCAGUzyC,KAAKyzC,UAAUnC,EAClC,EAEAiC,aAAc,WACZ,OAAOvzC,KAAKukC,QAAQliC,QAAQ,aAC9B,IAMF4iN,EAAOrtL,QAAUmtvB,EAAIkM,QAAQg1B,+BCxB7B,IAAIlhC,EAAM/tvB,EAAQ,MACd0mxB,EAAgB1mxB,EAAQ,OACxB6+I,EAAUkvmB,EAAI6G,KAAK/1mB,QAKnB2voB,EAAgB,oBAKpBzgC,EAAIkM,QAAQyO,GAAK7pnB,EAAQkvmB,EAAIkM,QAAQ2pB,cAAe,CAClDv0xB,YAAa,SAAYke,EAASy8wB,EAAa12yB,GAC7Cy6wB,EAAIkM,QAAQ2pB,cAAc90xB,KAAK9lB,KAAMukC,GACrCvkC,KAAKghzB,YAAcA,EACnB12yB,EAAUA,GAAW,CAAC,EACtBtK,KAAK2vxB,eAAmD,mBAA3BrlxB,EAAQqlxB,gBAA+BrlxB,EAAQqlxB,eAC5E3vxB,KAAK6+B,UAAYv0B,EAAQu0B,UACzB7+B,KAAK0vxB,iBAAmBplxB,EAAQolxB,gBAClC,EAEAtvqB,UAAW,mBAEX+/qB,iBAAkB,SAA0B7uvB,EAAan/B,GACvD,IAAIikL,EAAW2ulB,EAAI6G,KAAKz5wB,KAAK8lyB,QAAQ9lyB,GAAMxR,QAAQ,iBAAkB,IAEjEX,KAAK+4xB,cACP/4xB,KAAK8mzB,mBAAmBx1wB,EAAa8kJ,GAErCp2L,KAAK+mzB,WAAWz1wB,EAAa8kJ,GAG/Bp2L,KAAKukC,QAAQliC,QAAuB,cAClCrC,KAAK2uC,cAAc2C,EAAa8kJ,EACpC,EAEA2wnB,WAAY,SAAoBz1wB,EAAa8kJ,GAC3Cp2L,KAAKukC,QAAQliC,QAAQ,cAAgB+zL,EACjC9kJ,EAAYkB,eACdxyC,KAAKukC,QAAQliC,QAAQ,wBAA0BivC,EAAYkB,aAE/D,EAEAs0wB,mBAAoB,SAA4Bx1wB,EAAa8kJ,GAC3D,IAAI4wnB,EAAahnzB,KAAKinzB,iBAAiB7wnB,GACnC8wnB,EAAK,CACP,aAAc9wnB,EACd,kBAAmBp2L,KAAKogH,UACxB,mBAAoB9uE,EAAYmB,YAAc,IAAMu0wB,EACpD,gBAAiBhnzB,KAAKukC,QAAQliC,QAAQmjzB,GACtC,sBAAuBxlzB,KAAK4mzB,iBAG1Bt1wB,EAAYkB,eACd00wB,EAAG,wBAA0B51wB,EAAYkB,cAGvCxyC,KAAKukC,QAAQliC,QAAQ,kBACvB6kzB,EAAG,gBAAkBlnzB,KAAKukC,QAAQliC,QAAQ,iBAExCrC,KAAKukC,QAAQliC,QAAQ,iBACvB6kzB,EAAG,eAAiBlnzB,KAAKukC,QAAQliC,QAAQ,gBAEvCrC,KAAKukC,QAAQliC,QAAQ,mBACvB6kzB,EAAG,iBAAmBlnzB,KAAKukC,QAAQliC,QAAQ,kBAI7C0ixB,EAAI6G,KAAK9pN,KAAKh8iB,KAAK9lB,KAAMA,KAAKukC,QAAQliC,SAAS,SAAS4iB,EAAKje,GAC3D,GAAIie,IAAQugyB,GACRxlzB,KAAKmnzB,iBAAiBliyB,GAAM,CAC9B,IAAI0sI,EAAW1sI,EAAIpF,cAEqB,IAApC8xI,EAASvwJ,QAAQ,eACnB8lzB,EAAGv1pB,GAAY3qJ,EACyB,IAA/B2qJ,EAASvwJ,QAAQ,YAC1B8lzB,EAAGjiyB,GAAOje,EAEd,CACF,IAEA,IAAIogzB,EAAMpnzB,KAAKukC,QAAQ/kB,KAAKpe,QAAQ,MAAQ,EAAI,IAAM,IACtDpB,KAAKukC,QAAQ/kB,MAAQ4nyB,EAAMriC,EAAI6G,KAAK4X,oBAAoB0jB,EAC1D,EAEAv4wB,cAAe,SAAuB2C,EAAa8kJ,GACjD,IAAIl9I,EAAQ,GACR8twB,EAAahnzB,KAAKinzB,iBAAiB7wnB,GAKvC,OAJAl9I,EAAMt3B,KAAK5hB,KAAKogH,UAAY,eAC1B9uE,EAAYmB,YAAc,IAAMu0wB,GAClC9twB,EAAMt3B,KAAK,iBAAmB5hB,KAAK4mzB,iBACnC1twB,EAAMt3B,KAAK,aAAe5hB,KAAKyzC,UAAUnC,EAAa8kJ,IAC/Cl9I,EAAMlyB,KAAK,KACpB,EAEAysB,UAAW,SAAmBnC,EAAa8kJ,GACzC,IAAIixnB,EAAa3J,EAAc7qwB,cAC7BvB,EACA8kJ,EAASvwL,OAAO,EAAG,GACnB7F,KAAKukC,QAAQqL,OACb5vC,KAAKghzB,YACLhhzB,KAAK2vxB,gBAEP,OAAO5K,EAAI6G,KAAK7rvB,OAAO8P,KAAKw3wB,EAAYrnzB,KAAKuzC,aAAa6iJ,GAAW,MACvE,EAEA7iJ,aAAc,SAAsB6iJ,GAClC,IAAIl9I,EAAQ,GAKZ,OAJAA,EAAMt3B,KAAK,oBACXs3B,EAAMt3B,KAAKw0K,GACXl9I,EAAMt3B,KAAK5hB,KAAKinzB,iBAAiB7wnB,IACjCl9I,EAAMt3B,KAAK5hB,KAAKsnzB,eAAetnzB,KAAKunzB,oBAC7BruwB,EAAMlyB,KAAK,KACpB,EAEAugyB,gBAAiB,WACf,IAAIruwB,EAAQ,GAAImB,EAAWr6C,KAAKukC,QAAQ8V,WASxC,MARyB,OAArBr6C,KAAKghzB,aAAkD,SAA1BhhzB,KAAK0vxB,mBAA6Br1uB,EAAW0quB,EAAI6G,KAAKp6uB,cAAc6I,IAErGnB,EAAMt3B,KAAK5hB,KAAKukC,QAAQt9B,QACxBiyC,EAAMt3B,KAAKy4B,GACXnB,EAAMt3B,KAAK5hB,KAAKukC,QAAQhP,UACxB2jB,EAAMt3B,KAAK5hB,KAAK0yC,mBAAqB,MACrCwG,EAAMt3B,KAAK5hB,KAAK4mzB,iBAChB1twB,EAAMt3B,KAAK5hB,KAAKwnzB,sBACTtuwB,EAAMlyB,KAAK,KACpB,EAEA0rB,iBAAkB,WAChB,IAAIrwC,EAAU,GACd0ixB,EAAI6G,KAAK9pN,KAAKh8iB,KAAK9lB,KAAMA,KAAKukC,QAAQliC,SAAS,SAAU4iB,EAAKtU,GAC5DtO,EAAQuf,KAAK,CAACqD,EAAKtU,GACrB,IACAtO,EAAQ+tC,MAAK,SAAUrvC,EAAGy3B,GACxB,OAAOz3B,EAAE,GAAG8e,cAAgB2Y,EAAE,GAAG3Y,eAAiB,EAAI,CACxD,IACA,IAAIq5B,EAAQ,GAcZ,OAbA6ruB,EAAI6G,KAAK4G,UAAU1swB,KAAK9lB,KAAMqC,GAAS,SAAUsO,GAC/C,IAAIsU,EAAMtU,EAAK,GAAGkP,cAClB,GAAI7f,KAAKmnzB,iBAAiBliyB,GAAM,CAC9B,IAAIje,EAAQ2J,EAAK,GACjB,GAAqB,qBAAV3J,GAAmC,OAAVA,GAA4C,oBAAnBA,EAAMzF,SACjE,MAAMwjxB,EAAI6G,KAAKrnxB,MAAM,IAAIpE,MAAM,UAAY8kB,EAAM,2BAA4B,CAC3EgC,KAAM,kBAGViyB,EAAMt3B,KAAKqD,EAAM,IACfjlB,KAAKynzB,sBAAsBzgzB,EAAMzF,YACrC,CACF,IACO23C,EAAMlyB,KAAK,KACpB,EAEAygyB,sBAAuB,SAA+B7yyB,GACpD,OAAOA,EAAOjU,QAAQ,OAAQ,KAAKA,QAAQ,aAAc,GAC3D,EAEAimzB,cAAe,WACb,IAAIriyB,EAAO,GAKX,OAJAwgwB,EAAI6G,KAAK9pN,KAAKh8iB,KAAK9lB,KAAMA,KAAKukC,QAAQliC,SAAS,SAAU4iB,GACvDA,EAAMA,EAAIpF,cACN7f,KAAKmnzB,iBAAiBliyB,IAAMV,EAAK3C,KAAKqD,EAC5C,IACOV,EAAK6rB,OAAOppB,KAAK,IAC1B,EAEAigyB,iBAAkB,SAA0B7wnB,GAC1C,OAAOsnnB,EAAchuwB,YACnB0mJ,EAASvwL,OAAO,EAAG,GACnB7F,KAAKukC,QAAQqL,OACb5vC,KAAKghzB,YAET,EAEAsG,eAAgB,SAAcvwsB,GAC5B,OAAOguqB,EAAI6G,KAAK7rvB,OAAOwR,OAAOwlE,EAAQ,MACxC,EAEAywsB,mBAAoB,WAClB,IAAIjjxB,EAAUvkC,KAAKukC,QACnB,OAAIvkC,KAAK+4xB,eAAkB,CAAC,KAAM,oBAAoB33xB,QAAQpB,KAAKghzB,cAAgB,IAAOz8wB,EAAQ/J,KACzF,mBACE+J,EAAQliC,QAAQ,wBAClBkiC,EAAQliC,QAAQ,wBAEhBrC,KAAKsnzB,eAAetnzB,KAAKukC,QAAQ/J,MAAQ,GAEpD,EAEAyV,kBAAmB,CACjB,gBACA,eACA,iBACA,aACAu1wB,EACA,SACA,mBAGF2B,iBAAkB,SAA0BliyB,GAC1C,OAA4C,IAAxCA,EAAIpF,cAAcze,QAAQ,WACvBpB,KAAKiwC,kBAAkB7uC,QAAQ6jB,GAAO,CAC/C,EAEA8zwB,YAAa,WACX,QAAO/4xB,KAAKukC,QAAQliC,QAAQmjzB,EAC9B,IAOFvgmB,EAAOrtL,QAAUmtvB,EAAIkM,QAAQyO,0BCtN7B,IAAI3a,EAAM/tvB,EAAQ,MAKd0wxB,EAAe,CAAC,EAKhBj4wB,EAAa,GAUbk4wB,EAAe,eAKnB1imB,EAAOrtL,QAAU,CASf8X,YAAa,SAAqBv9B,EAAMy9B,EAAQoxwB,GAC9C,MAAO,CACL7uyB,EAAKtM,OAAO,EAAG,GACf+pC,EACAoxwB,EACA2G,GACA3gyB,KAAK,IACT,EAYA6rB,cAAe,SACbvB,EACAn/B,EACAy9B,EACAvL,EACA4mF,GAEA,IAEIh2E,EAAW,CAFO8vuB,EAAI6G,KAAK7rvB,OAC5B8P,KAAKyB,EAAY0D,gBAAiB1D,EAAYmB,YAAa,UAC7BtgC,EAAMy9B,EAAQvL,GAASrd,KAAK,KAE7D,IADAikG,GAA8B,IAAhBA,IACMh2E,KAAYyywB,EAC9B,OAAOA,EAAazywB,GAGtB,IAAI2ywB,EAAQ7iC,EAAI6G,KAAK7rvB,OAAO8P,KAC1B,OAASyB,EAAY0D,gBACrB7iC,EACA,UAEE01yB,EAAU9iC,EAAI6G,KAAK7rvB,OAAO8P,KAAK+3wB,EAAOh4wB,EAAQ,UAC9Ck4wB,EAAW/iC,EAAI6G,KAAK7rvB,OAAO8P,KAAKg4wB,EAASxjxB,EAAS,UAElDgjxB,EAAatiC,EAAI6G,KAAK7rvB,OAAO8P,KAAKi4wB,EAAUH,EAAc,UAU9D,OATI18rB,IACFy8rB,EAAazywB,GAAYoywB,EACzB53wB,EAAW7tB,KAAKqzB,GACZxF,EAAW7uC,OAjEC,WAmEP8mzB,EAAaj4wB,EAAWxT,UAI5BorxB,CACT,EAQAU,WAAY,WACVL,EAAe,CAAC,EAChBj4wB,EAAa,EACf,sBClGF,SAAS+/vB,EAAqBpwpB,EAAQ36I,GACpCzE,KAAK0ixB,aAAej+wB,GAAS,KAC7BzE,KAAKo/I,OAASA,GAAU,CAAC,CAC3B,CAEAowpB,EAAqBtvyB,UAAUowyB,MAAQ,SAAe0X,EAAYhiyB,EAAMiiyB,EAAYC,GACxD,oBAAfF,IACTE,EAAaD,EAAYA,EAAajiyB,EACtCA,EAAOgiyB,EAAYA,EAAa,MAGlC,IAAInksB,EAAO7jH,KACPyE,EAAQo/G,EAAKu7B,OAAOv7B,EAAK6+pB,cAC7Bj+wB,EAAMkkB,GAAG7C,KAAKmiyB,GAAcpksB,EAAMqksB,GAAY,SAAS7jzB,GACrD,GAAIA,EAAK,CACP,IAAII,EAAM6grB,KACL,OAAOt/pB,EAAOA,EAAKF,KAAKmiyB,EAAY5jzB,GAAO,KADhCw/G,EAAK6+pB,aAAej+wB,EAAM6grB,IAE5C,KAAO,CACL,IAAI7grB,EAAMqiB,OACL,OAAOd,EAAOA,EAAKF,KAAKmiyB,GAAc,KADzBpksB,EAAK6+pB,aAAej+wB,EAAMqiB,MAE9C,CACA,GAAI+8F,EAAK6+pB,eAAiBslC,EACxB,OAAOhiyB,EAAOA,EAAKF,KAAKmiyB,EAAY5jzB,GAAO,KAG7Cw/G,EAAKysrB,MAAM0X,EAAYhiyB,EAAMiiyB,EAAY5jzB,EAC3C,GACF,EAEAmryB,EAAqBtvyB,UAAUiwyB,SAAW,SAAkB/vyB,EAAM+nzB,EAAaC,EAAWz/xB,GASxF,MAR2B,oBAAhBw/xB,GACTx/xB,EAAKw/xB,EAAaA,EAAc,KAAMC,EAAY,MACpB,oBAAdA,IAChBz/xB,EAAKy/xB,EAAWA,EAAY,MAGzBpozB,KAAK0ixB,eAAc1ixB,KAAK0ixB,aAAetixB,GAC5CJ,KAAKo/I,OAAOh/I,GAAQ,CAAE0mB,OAAQqhyB,EAAa7iI,KAAM8iI,EAAWz/xB,GAAIA,GACzD3oB,IACT,EAKAilN,EAAOrtL,QAAU43wB,6BC3CbzqB,YAgBA6G,EAAO,CACTjmhB,YAAa,SACb0ijB,OAAQ,WACN,GAAIz8B,EAAKh3N,aAAoC,qBAAdxkiB,UAC7B,OAAOA,UAAUD,UAEjB,IAAIk4xB,EAAStpxB,EAAQk2B,SAAW,IAAMl2B,EAAQyf,QAI9C,MAHIzf,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYkmwB,oBACdojB,GAAU,aAAetpxB,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAYkmwB,mBAEhCojB,CAEX,EAEAl4xB,UAAW,WACT,IAAI/vB,EAAOwrxB,EAAKjmhB,YACZ2ijB,EAAQ,WAAalozB,EAAO,IAAM42B,EAAAA,MAAAA,QAEtC,MADa,WAAT52B,IAAmBkozB,GAAS,IAAM18B,EAAKy8B,UACpCC,CACT,EAEA3b,UAAW,SAAmB51rB,GAC5B,IAAIryE,EAASkQ,mBAAmBmiE,GAQhC,OAJAryE,GAHAA,EAASA,EAAO/jC,QAAQ,uBAAwB4nzB,SAGhC5nzB,QAAQ,QAAQ,SAAS6nzB,GACvC,MAAO,IAAMA,EAAGlnzB,WAAW,GAAGC,SAAS,IAAIC,aAC7C,GAGF,EAEAgwC,cAAe,SAAuBulE,GACpC,IAAI79D,EAAQ,GAIZ,OAHA0yuB,EAAK4G,UAAUz7qB,EAAOn1G,MAAM,MAAM,SAAUw3C,GAC1CF,EAAMt3B,KAAKgqwB,EAAK+gB,UAAUvzvB,GAC5B,IACOF,EAAMlyB,KAAK,IACpB,EAEAi8wB,SAAU,SAAkB/ovB,GAC1B,OAAO0xuB,EAAK1xuB,IAAIv4C,MAAMu4C,EACxB,EAEA6owB,UAAW,SAAmB7owB,GAC5B,OAAO0xuB,EAAK1xuB,IAAItnC,OAAOsnC,EACzB,EAEAqpvB,iBAAkB,SAA0B2jB,GAC1C,OAAOt7B,EAAK5ukB,YAAYr7M,MAAMulzB,EAChC,EAEA1jB,oBAAqB,SAA6B3quB,GAChD,IAAIt3C,EAAQ,GACRgnyB,EAAS38B,EAAK+gB,UACdplG,EAAaxnrB,OAAOwE,KAAKs0C,GAAQzoB,OAgBrC,OAdAw7uB,EAAK4G,UAAUjrF,GAAY,SAASnnsB,GAClC,IAAI4G,EAAQ6xD,EAAOz4D,GACfqozB,EAAQF,EAAOnozB,GACf8E,EAASujzB,EAAQ,IACrB,GAAInmyB,MAAMC,QAAQvb,GAAQ,CACxB,IAAI0hzB,EAAO,GACX98B,EAAK4G,UAAUxrxB,GAAO,SAAS2J,GAAQ+3yB,EAAK9myB,KAAK2myB,EAAO53yB,GAAQ,IAChEzL,EAASujzB,EAAQ,IAAMC,EAAKt4wB,OAAOppB,KAAK,IAAMyhyB,EAAQ,IACxD,WAAqBpgzB,IAAVrB,GAAiC,OAAVA,IAChC9B,EAASujzB,EAAQ,IAAMF,EAAOvhzB,IAEhCua,EAAMK,KAAK1c,EACb,IAEOqc,EAAMyF,KAAK,IACpB,EAEAunwB,aAAc,SAAsB/uwB,GAClC,OAAIoswB,EAAKh3N,YAAoB,KACtB59hB,EAAAA,OAAAA,aAA2BxX,EAAM,QAC1C,EAEA82F,OAAQ,CACNl2E,OAAQ,SAAkB22E,GACxB,GAAsB,kBAAXA,EACT,MAAM60qB,EAAKrnxB,MAAM,IAAIpE,MAAM,+BAAiC42G,IAE9D,OAAe,OAAXA,GAAqC,qBAAXA,EACrBA,EAEC60qB,EAAKjsvB,OAAOq7vB,SAASjkrB,GACpBx1G,SAAS,SACtB,EAEAo/B,OAAQ,SAAkBo2E,GACxB,GAAsB,kBAAXA,EACT,MAAM60qB,EAAKrnxB,MAAM,IAAIpE,MAAM,+BAAiC42G,IAE9D,OAAe,OAAXA,GAAqC,qBAAXA,EACrBA,EAEF60qB,EAAKjsvB,OAAOq7vB,SAASjkrB,EAAQ,SACtC,GAIFp3E,OAAQ,CAINq7vB,SAAU,SAASrxxB,EAAM80B,GACvB,MAAoC,oBAArBmtvB,EAAKlqvB,OAAO3d,MAAuB6nwB,EAAKlqvB,OAAO3d,OAAS+Z,WAAW/Z,KAChF6nwB,EAAKlqvB,OAAO3d,KAAKpa,EAAM80B,GAAY,IAAImtvB,EAAKlqvB,OAAO/3B,EAAM80B,EAC7D,EAEA28E,MAAO,SAASrzG,EAAM4D,EAAM8yB,GAC1B,GAAoB,kBAAT12B,EACT,MAAM,IAAI5H,MAAM,0CAElB,GAAiC,oBAAtByrxB,EAAKlqvB,OAAO05E,MACrB,OAAOwwqB,EAAKlqvB,OAAO05E,MAAMrzG,EAAM4D,EAAM8yB,GAErC,IAAIwnB,EAAM,IAAI2luB,EAAKlqvB,OAAO35B,GAI1B,YAHaM,IAATsD,GAA0C,oBAAbs6C,EAAIt6C,MACnCs6C,EAAIt6C,KAAKA,OAAMtD,OAAWA,EAAWo2B,GAEhCwnB,CAEX,EAEA0iwB,SAAU,SAAkBhpxB,GACrBisvB,EAAKlqvB,OAAO61E,SAAS53E,KAASA,EAAUisvB,EAAKjsvB,OAAOq7vB,SAASr7vB,IAElE,IAAIsxwB,EAAW,IAAKrlB,EAAK31qB,OAAOD,SAC5ByF,EAAM,EAUV,OATAw1rB,EAAS2X,MAAQ,SAAS7gzB,GACxB,GAAI0zG,GAAO97E,EAAO/+B,OAAQ,OAAOqwyB,EAASrvxB,KAAK,MAE/C,IAAI9R,EAAM2rG,EAAM1zG,EACZ+H,EAAM6vB,EAAO/+B,SAAQkP,EAAM6vB,EAAO/+B,QACtCqwyB,EAASrvxB,KAAK+d,EAAOvZ,MAAMq1F,EAAK3rG,IAChC2rG,EAAM3rG,CACR,EAEOmhyB,CACT,EAKAvuxB,OAAQ,SAAS6+wB,GACf,IAEI5hwB,EAAe3+B,EAFfJ,EAAS,EACTmlD,EAAS,EAGb,IAAK/kD,EAAI,EAAGA,EAAIugyB,EAAQ3gyB,OAAQI,IAC9BJ,GAAU2gyB,EAAQvgyB,GAAGJ,OAKvB,IAFA++B,EAASisvB,EAAKjsvB,OAAOy7E,MAAMx6G,GAEtBI,EAAI,EAAGA,EAAIugyB,EAAQ3gyB,OAAQI,IAC9BugyB,EAAQvgyB,GAAGy2G,KAAK93E,EAAQomB,GACxBA,GAAUw7uB,EAAQvgyB,GAAGJ,OAGvB,OAAO++B,CACT,GAGFo3E,OAAQ,CACNl3E,WAAY,SAAoBk3E,GAC9B,GAAe,OAAXA,QAA8B1uG,IAAX0uG,EAAsB,OAAO,EAGpD,GAFsB,kBAAXA,IAAqBA,EAAS60qB,EAAKjsvB,OAAOq7vB,SAASjkrB,IAE7B,kBAAtBA,EAAOl3E,WAChB,OAAOk3E,EAAOl3E,WACT,GAA6B,kBAAlBk3E,EAAOn2G,OACvB,OAAOm2G,EAAOn2G,OACT,GAA2B,kBAAhBm2G,EAAOhvG,KACvB,OAAOgvG,EAAOhvG,KACT,GAA2B,kBAAhBgvG,EAAOv3F,KACvB,OAAOwX,EAAAA,OAAAA,UAAwB+/E,EAAOv3F,MAAMzX,KAE5C,MAAM6jxB,EAAKrnxB,MAAM,IAAIpE,MAAM,8BAAgC42G,GACzD,CAAE1yF,OAAQ0yF,GAEhB,EAEAs2rB,WAAY,SAAoBt2rB,GAC9B,OAAOA,EAAO,GAAGv1G,cAAgBu1G,EAAOlxG,OAAO,EACjD,EAEA48xB,WAAY,SAAoB1rrB,GAC9B,OAAOA,EAAO,GAAGl3F,cAAgBk3F,EAAOlxG,OAAO,EACjD,GAGFgjzB,IAAK,CACHlnzB,MAAO,SAAgBknzB,GACrB,IAAIC,EAAgB54yB,EAAM,CAAC,EA4B3B,OA3BA07wB,EAAK4G,UAAUq2B,EAAIjnzB,MAAM,UAAU,SAASmlH,GAG1C,GAD4B,OAD5BA,EAAOA,EAAKnlH,MAAM,cAAc,GAAG0uC,QACd,IAAwC,MAA1By2E,EAAKA,EAAKnmH,OAAS,IAGpD,GAAuB,eADvBkozB,EAAiB/hsB,EAAKrsE,UAAU,EAAGqsE,EAAKnmH,OAAS,KACuB,cAAlCkozB,EAAelnzB,MAAM,MAAM,GAC/D,MAAMgqxB,EAAKrnxB,MACT,IAAIpE,MAAM,6BAAgC2ozB,EAAiB,iCAG1D,GAAIA,EAAgB,CACzB,IAAIC,EAAoBhisB,EAAK3lH,QAAQ,KAEjC0O,EAAMi3G,EAAKnmH,OAAS,EAIxB,IAFyB,IAAvBmozB,GAHU,IAGkBA,GAA+BA,IAAsBj5yB,EAEjE,CAChB,IAAI1P,EAAO2mH,EAAKrsE,UAAU,EAAGquwB,GAAmBz4wB,OAC5CtpC,EAAQ+/G,EAAKrsE,UAAUquwB,EAAoB,GAAGz4wB,OAElDpgC,EAAI44yB,GAAkB54yB,EAAI44yB,IAAmB,CAAC,EAC9C54yB,EAAI44yB,GAAgB1ozB,GAAQ4G,CAC9B,CACF,CACF,IAEOkJ,CACT,GAGFyY,GAAI,CACFkE,KAAM,WAAY,EAClB07F,SAAU,SAAUlkH,GAAO,GAAIA,EAAK,MAAMA,CAAK,EAQ/CmsyB,UAAW,SAAmB7nxB,EAAIqgyB,GAChC,OAAIA,GAAgBA,GAAgBrgyB,EAAG/nB,OAC9B+nB,EAGF,WACL,IAAIF,EAAOnG,MAAMpiB,UAAUkmB,MAAMN,KAAKhB,UAAW,GAClC2D,EAAK7I,KAEpB2oG,CADa5/F,EAAG/D,MAAM,KAAM6D,GAE9B,CACF,GAMFtW,KAAM,CAQJo+P,QAAS,WAEP,OADKw0gB,IAAKA,EAAM/tvB,EAAQ,OACpB+tvB,EAAIjmuB,OAAOtJ,kBACN,IAAIlyC,MAAK,IAAIA,MAAOgyC,UAAYyvuB,EAAIjmuB,OAAOtJ,mBAE3C,IAAIlyC,IAEf,EAKA20yB,QAAS,SAAiB9lyB,GAExB,YADa9J,IAAT8J,IAAsBA,EAAOy5wB,EAAKz5wB,KAAKo+P,WACpCp+P,EAAKgjC,cAAcx0C,QAAQ,YAAa,IACjD,EAKAwlzB,OAAQ,SAAgBh0yB,GAEtB,YADa9J,IAAT8J,IAAsBA,EAAOy5wB,EAAKz5wB,KAAKo+P,WACpCp+P,EAAKk3xB,aACd,EAKAqc,cAAe,SAAuBvzyB,GAEpC,YADa9J,IAAT8J,IAAsBA,EAAOy5wB,EAAKz5wB,KAAKo+P,WACpCp+P,EAAKmjC,UAAY,GAC1B,EAMAvxB,KAAM,SAAgB5R,GACpB,MAAoB,kBAATA,EACF,IAAI7O,KAAY,IAAP6O,GAET,IAAI7O,KAAK6O,EAEpB,EAYAS,OAAQ,SAAgBT,EAAMikS,GAE5B,OADKA,IAAWA,EAAY,WACrBw1e,EAAKz5wB,KAAKikS,GAAWw1e,EAAKz5wB,KAAK4R,KAAK5R,GAC7C,EAEAm3xB,eAAgB,SAAwBtiyB,GACtC,GAAqB,kBAAVA,EACT,OAAO,IAAI1D,KAAa,IAAR0D,GACX,GAAIA,EAAMm8G,MAAM,SACrB,OAAO,IAAI7/G,KAAa,IAAR0D,GACX,GAAIA,EAAMm8G,MAAM,UACrB,OAAO,IAAI7/G,KAAK0D,GACX,GAAIA,EAAMm8G,MAAM,WACrB,OAAO,IAAI7/G,KAAK0D,GAEhB,MAAM4kxB,EAAKrnxB,MACT,IAAIpE,MAAM,+BAAiC6G,GAC3C,CAACigB,KAAM,wBAEb,GAIF8Y,OAAQ,CACNkpxB,WAAY,CACX,EAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,SAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,SAAY,WAAY,WAAY,WAAY,SAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,WAChD,SAAY,WAAY,WAAY,WAAY,SAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,UAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,WAAY,WAAY,WAAY,WAChD,SAAY,WAAY,WAAY,WAAY,UAChD,WAAY,WAAY,WAAY,UAAY,WAChD,WAAY,WAAY,UAAY,WAAY,WAChD,WAAY,UAAY,WAAY,WAAY,WAChD,WAED9xxB,MAAO,SAAextB,GACpB,IAAIu/yB,EAAMt9B,EAAK7rvB,OAAOkpxB,WAClBvgW,GAAM,EAEU,kBAAT/+c,IACTA,EAAOiixB,EAAKjsvB,OAAOq7vB,SAASrxxB,IAG9B,IAAK,IAAI3I,EAAI,EAAGA,EAAI2I,EAAK/I,OAAQI,IAAK,CAEpC0nd,EAAOA,IAAQ,EAAKwgW,EAAmB,KAAdxgW,EADd/+c,EAAKwzG,UAAUn8G,IAE5B,CACA,QAAe,EAAP0nd,KAAc,CACxB,EAEA74a,KAAM,SAAc5qB,EAAK8xF,EAAQt/E,EAAQ9O,GAKvC,OAJK8O,IAAQA,EAAS,UACP,WAAXA,IAAuBA,OAASpvB,GAC/BsgB,IAAIA,EAAK,UACQ,kBAAXouF,IAAqBA,EAAS60qB,EAAKjsvB,OAAOq7vB,SAASjkrB,IACvD60qB,EAAK7rvB,OAAOic,IAAImvuB,WAAWxiwB,EAAI1D,GAAKoS,OAAO0/E,GAAQt/E,OAAOA,EACnE,EAEAm/B,IAAK,SAAajtD,EAAM8tB,EAAQ8wF,GAC9B,OAAOqjqB,EAAK7rvB,OAAOnC,KAAK,MAAOj0B,EAAM8tB,EAAQ8wF,EAC/C,EAEAh3E,OAAQ,SAAgB5nC,EAAM8tB,EAAQ8wF,GACpC,OAAOqjqB,EAAK7rvB,OAAOnC,KAAK,SAAUj0B,EAAM8tB,EAAQ8wF,EAClD,EAEA3qF,KAAM,SAASwiF,EAAWz2G,EAAM8tB,EAAQ8wF,GACtC,IAAI3qF,EAAOguvB,EAAK7rvB,OAAOkrvB,WAAW7qqB,GAC7B3oF,IAAUA,EAAS,UACT,WAAXA,IAAuBA,OAASpvB,GAChB,kBAATsB,IAAmBA,EAAOiixB,EAAKjsvB,OAAOq7vB,SAASrxxB,IAC1D,IAAI+pyB,EAAU9nB,EAAK+oB,aAAahryB,GAC5B4tG,EAAWq0qB,EAAKlqvB,OAAO61E,SAAS5tG,GAIpC,GAFIiixB,EAAKh3N,aAAsC,qBAAhBn1hB,aAA+B91B,GAAQA,EAAKg2B,kBAAkBF,cAAa83E,GAAW,GAEjHgR,GAA4B,kBAAT5+G,GACA,oBAAZA,EAAKuqG,KAAsBqD,EACpC5tG,EAAKuqG,GAAG,QAAQ,SAAS1qE,GAAS5L,EAAKvG,OAAOmS,EAAQ,IACtD7/B,EAAKuqG,GAAG,SAAS,SAAS7vG,GAAOkkH,EAASlkH,EAAM,IAChDsF,EAAKuqG,GAAG,OAAO,WAAaqU,EAAS,KAAM3qF,EAAKnG,OAAOA,GAAU,QAC5D,KAAI8wF,IAAYmrrB,GAAYn8rB,GACF,qBAAf5sD,WAyBX,CACDihuB,EAAKh3N,aAA+B,kBAATjrjB,IAAsB4tG,IACnD5tG,EAAO,IAAIiixB,EAAKlqvB,OAAO,IAAI5D,WAAWn0B,KAExC,IAAI2/B,EAAM1L,EAAKvG,OAAO1tB,GAAM8tB,OAAOA,GAEnC,OADI8wF,GAAUA,EAAS,KAAMj/E,GACtBA,CACT,CA9BE,IAAIlW,EAAQ,EACRrQ,EAAS,IAAI4nC,WACjB5nC,EAAO+b,QAAU,WACfypF,EAAS,IAAIpoH,MAAM,wBACrB,EACA4iB,EAAOk9G,OAAS,WACd,IAAIh6E,EAAM,IAAI2luB,EAAKlqvB,OAAO,IAAI5D,WAAW/a,EAAO7d,SAChD04B,EAAKvG,OAAO4uB,GACZ7yB,GAAS6yB,EAAIrlD,OACbmiB,EAAOomyB,kBACT,EACApmyB,EAAOomyB,iBAAmB,WACxB,GAAI/1xB,GAASzpB,EAAK5B,KAChBwgH,EAAS,KAAM3qF,EAAKnG,OAAOA,QAD7B,CAKA,IAAI2xxB,EAAOh2xB,EAjBS,OAkBhBg2xB,EAAOz/yB,EAAK5B,OAAMqhzB,EAAOz/yB,EAAK5B,MAClCgb,EAAO8nC,kBAAkB6ovB,EAAQ5txB,KAAKnc,EAAMypB,EAAOg2xB,GAJnD,CAKF,EAEArmyB,EAAOomyB,kBAQT,CACF,EAEAjgxB,MAAO,SAAev/B,GAEpB,IADA,IAAI2/B,EAAM,GACDtoC,EAAI,EAAGA,EAAI2I,EAAK/I,OAAQI,IAC/BsoC,EAAI1nB,MAAM,IAAMjY,EAAKrI,WAAWN,GAAGO,SAAS,KAAKsE,QAAQ,EAAG,IAE9D,OAAOyjC,EAAItiB,KAAK,GAClB,EAEAikwB,WAAY,SAAoB7qqB,GAC9B,OAAOwrqB,EAAK7rvB,OAAOic,IAAIivuB,WAAW7qqB,EACpC,GAOF/N,MAAO,CAAC,EAERyvd,KAAM,SAAcz9iB,EAAQglyB,GAC1B,IAAK,IAAIpkyB,KAAOZ,EAAQ,CACtB,GAAItE,OAAO7f,UAAU04B,eAAe9S,KAAKzB,EAAQY,GAE/C,GADUokyB,EAAavjyB,KAAK9lB,KAAMilB,EAAKZ,EAAOY,MAClC2mwB,EAAKv5qB,MAAO,KAE5B,CACF,EAEAmgrB,UAAW,SAAmB16qB,EAAOuxsB,GACnC,IAAK,IAAI31pB,KAAO57C,EAAO,CACrB,GAAI/3F,OAAO7f,UAAU04B,eAAe9S,KAAKgyF,EAAO47C,GAE9C,GADU21pB,EAAavjyB,KAAK9lB,KAAM83G,EAAM47C,GAAMj/H,SAASi/H,EAAK,OAChDk4nB,EAAKv5qB,MAAO,KAE5B,CACF,EAEAh7E,OAAQ,SAAgBgxuB,EAAMC,GAI5B,OAHAsjB,EAAK9pN,KAAKwmM,GAAM,SAAkBrjvB,EAAKtU,GACrC03vB,EAAKpjvB,GAAOtU,CACd,IACO03vB,CACT,EAEAv8kB,MAAO,SAAeu8kB,EAAMC,GAC1B,OAAOsjB,EAAKv0vB,OAAOu0vB,EAAKn0qB,KAAK4wpB,GAAOC,EACtC,EAEA7wpB,KAAM,SAAcpzF,GAClB,GAAe,OAAXA,QAA8Bhc,IAAXgc,EAAsB,OAAOA,EACpD,IAAIilyB,EAAO,CAAC,EAEZ,IAAK,IAAIrkyB,KAAOZ,EACdilyB,EAAKrkyB,GAAOZ,EAAOY,GAErB,OAAOqkyB,CACT,EAEA/jqB,QAAS,SAAiBlgI,GACxB,IAAK,IAAIk+F,KAAQl+F,EACf,GAAItF,OAAO7f,UAAU04B,eAAe9S,KAAKT,EAAKk+F,GAC5C,OAAO,EAGX,OAAO,CACT,EAEAoxrB,aAAc,SAAsBtvxB,GAClC,IAAIsD,EAAKtD,EAAIe,OAASf,EAAIkkyB,aAAelkyB,EAAImkyB,SAC7C,MAAqB,oBAAP7gyB,EAAoBA,EAAK,IACzC,EAEAm1wB,OAAQ,SAAgBz4wB,EAAKphB,GAG3B,MADoB,oBAATA,IAAqBA,EAAO2nxB,EAAKmS,SAAS95xB,IAC9C8b,OAAO7f,UAAUqB,SAASukB,KAAKT,KAAS,WAAaphB,EAAO,GACrE,EAEA85xB,SAAU,SAAkB95xB,GAC1B,GAAI8b,OAAO7f,UAAU04B,eAAe9S,KAAK7hB,EAAM,QAAS,OAAOA,EAAK7D,KACpE,IAAIunC,EAAM1jC,EAAK1C,WACX4hH,EAAQx7E,EAAIw7E,MAAM,uBACtB,OAAOA,EAAQA,EAAM,GAAKx7E,CAC5B,EAEApjC,MAAO,SAAeF,EAAKiG,GACzB,IAAI83xB,EAAgB,KAkCpB,IAAK,IAAIn9wB,IAjCkB,kBAAhB5gB,EAAIpE,SAAwC,KAAhBoE,EAAIpE,UAClB,kBAAZqK,GAAyBA,GAAWA,EAAQrK,YACrDmiyB,EAAgBxW,EAAKn0qB,KAAKpzG,IACZpE,QAAUoE,EAAIpE,SAGhCoE,EAAIpE,QAAUoE,EAAIpE,SAAW,KAEN,kBAAZqK,EACTjG,EAAIpE,QAAUqK,EACc,kBAAZA,GAAoC,OAAZA,IACxCshxB,EAAKv0vB,OAAOhzB,EAAKiG,GACbA,EAAQrK,UACVoE,EAAIpE,QAAUqK,EAAQrK,UACpBqK,EAAQ2c,MAAQ3c,EAAQlK,QAC1BiE,EAAI4iB,KAAO3c,EAAQ2c,MAAQ3c,EAAQlK,MACjCkK,EAAQq5B,QACVt/B,EAAIs/B,MAAQr5B,EAAQq5B,QAGa,oBAA1B5jB,OAAOC,iBAChBD,OAAOC,eAAe3b,EAAK,OAAQ,CAAC4b,UAAU,EAAME,YAAY,IAChEJ,OAAOC,eAAe3b,EAAK,UAAW,CAAC8b,YAAY,KAGrD9b,EAAIjE,KAAOM,OAAO4J,GAAWA,EAAQlK,MAAQiE,EAAIjE,MAAQiE,EAAI4iB,MAAQ,SACrE5iB,EAAI8sC,KAAO,IAAI7tC,KAEX8+xB,IACF/9xB,EAAI+9xB,cAAgBA,GAIN93xB,GAAW,CAAC,EAC1B,GAAe,MAAX2a,EAAI,IAAsC,MAAxBA,EAAIA,EAAIrkB,OAAS,GAAY,CAEjD,GAAY,UADZqkB,EAAMA,EAAImB,MAAM,GAAI,KACU,YAARnB,EACpB,SAEF5gB,EAAI,IAAM4gB,EAAM,KAAO,aAAeA,EAAM,gBAC5ClF,OAAOC,eAAe3b,EAAK4gB,EAAK,CAC9Bje,MAAO3C,EAAI4gB,IAAS3a,GAAWA,EAAQ2a,IAAUm9wB,GAAiBA,EAAcn9wB,GAChF9E,YAAY,EACZF,UAAU,GAEd,CAGF,OAAO5b,CACT,EAKAwxK,QAAS,SAAiB4zoB,EAAOrO,GAC/B,IAAIsO,EAAY,KAChB,QAAiBrhzB,IAAb+yyB,EACFA,EAAWqO,EACXA,EAAQ1pyB,OACR2pyB,EAAY,CAAC,MACR,CACL,IAAI55wB,EAAO,WAA+B,EAC1CA,EAAK5vC,UAAYupzB,EAAMvpzB,UACvBwpzB,EAAY,IAAI55wB,CAClB,CAcA,OAXIsrwB,EAAS/0xB,cAAgBtG,SAC3Bq7xB,EAAS/0xB,YAAc,WACrB,GAAIojyB,IAAU1pyB,OACZ,OAAO0pyB,EAAM7kyB,MAAM5kB,KAAM8kB,UAE7B,GAGFs2xB,EAAS/0xB,YAAYnmB,UAAYwpzB,EACjC99B,EAAKv0vB,OAAO+jxB,EAAS/0xB,YAAYnmB,UAAWk7yB,GAC5CA,EAAS/0xB,YAAYm1wB,UAAYiuB,EAC1BrO,EAAS/0xB,WAClB,EAKA+rxB,MAAO,WAEL,IADA,IAAIqX,EAAQ3kyB,UAAU,GACb9jB,EAAI,EAAGA,EAAI8jB,UAAUlkB,OAAQI,IAEpC,IAAK,IAAIuiH,KAAQz+F,UAAU9jB,GAAGd,UAAW,CACvC,IAAIyoB,EAAK7D,UAAU9jB,GAAGd,UAAUqjH,GACnB,gBAATA,IACFkmsB,EAAMvpzB,UAAUqjH,GAAQ56F,EAE5B,CAEF,OAAO8gyB,CACT,EAKAz3B,eAAgB,SAAwB3swB,EAAKtY,GACN,oBAA1BgT,OAAOC,gBAElB4rwB,EAAK4G,UAAUzlxB,GAAO,SAAUkY,GAC9BlF,OAAOC,eAAeqF,EAAKJ,EAAK,CAC9B9E,YAAY,EAAOF,UAAU,EAAMC,cAAc,GACrD,GACF,EAKA48B,SAAU,SAAkBz3B,EAAKjlB,EAAM4G,EAAOmZ,EAAYwpyB,GACxD,IAAIr6xB,EAAO,CACTpP,cAAc,EACdC,gBAA2B9X,IAAf8X,GAA2BA,GAEpB,oBAAVnZ,GAAyB2izB,GAIlCr6xB,EAAKtoB,MAAQA,EAAOsoB,EAAKrP,UAAW,GAHpCqP,EAAKxP,IAAM9Y,EAMb+Y,OAAOC,eAAeqF,EAAKjlB,EAAMkvB,EACnC,EAKAyiwB,iBAAkB,SAA0B1swB,EAAKjlB,EAAM0f,EAAKK,GAC1D,IAAIypyB,EAAc,KAGlBh+B,EAAK9uuB,SAASz3B,EAAKjlB,GAAM,WAIvB,OAHoB,OAAhBwpzB,IACFA,EAAc9pyB,KAET8pyB,CACT,GAAGzpyB,EACL,EASA+7xB,mBAAoB,SAA4BxqmB,GAC9C,IAAIF,EAAME,EAAKntK,QACX+lsB,EAAgB94hB,EAAI3yK,UACpBA,EAAY2yK,EAAIntK,QAAQ5lB,IAAI2stB,WAAWd,GACvC5lsB,EAAS7F,EAAU6F,OACvB,GAAIA,EAAOxgC,UAAY26B,EAAUoiwB,eAAgB,CAC/C,IAAIpB,EAAgBn7vB,EAAO+xvB,QAAQ/xvB,EAAOxgC,SACtC2lzB,EAAkBn4mB,EAAK/nM,KAAK+6B,EAAOxgC,SACZ,cAAvB27xB,EAAc57xB,MAChB2nxB,EAAK9pN,KAAK+nP,GAAiB,SAAS5kyB,EAAKje,GACvC4kxB,EAAK9uuB,SAAS40J,EAAK/nM,KAAMsb,EAAKje,GAAO,EACvC,GAEJ,CACF,EAOA24xB,cAAe,SAAuBnlwB,EAAMxU,GAC1C,GAAI4lwB,EAAKG,SAAU,CACjB,IAAI8R,EAASjS,EAAK31qB,OAAO4nrB,OACrB3rD,EAAKl7sB,EAAQ,OACjB,GAAsB,oBAAX6mwB,GAAyBrjwB,aAAgBqjwB,EAAQ,CAC1D,GAAyB,kBAAdrjwB,EAAKhb,KAUd,OAAOwG,EAAK,IAAI7lB,MAAM,yDATtB,IAAIqrc,EAAW,CAAC,EACU,kBAAfhxa,EAAK3qB,QACd27b,EAAS37b,MAAQ2qB,EAAK3qB,OAEA,kBAAb2qB,EAAK1qB,MACd07b,EAAS17b,IAAM0qB,EAAK1qB,KAEtB0qB,EAAO03sB,EAAG2+D,iBAAiBr2wB,EAAKhb,KAAMgsb,EAK1C,CACF,CAEAogV,EAAK7rvB,OAAOwR,OAAO/W,EAAM,OAAO,SAASn2B,EAAKu7xB,GACxCv7xB,EAAK2hB,EAAK3hB,GACT2hB,EAAK,KAAM45wB,EAClB,GACF,EAKA/pvB,cAAe,SAAuBe,GACpC,GAAIA,EAGF,OAFAg1uB,EAAK9uuB,SAASiouB,EAAIjmuB,OAAQ,gBACxBlW,KAAKC,KAAI,IAAIvlC,MAAOgyC,UAAYsB,IAAe,KAAQ,GAClDmuuB,EAAIjmuB,OAAOjJ,aAEtB,EAEA2rvB,iBAAkB,SAA0B5qvB,GACtCA,IACFmuuB,EAAIjmuB,OAAOtJ,kBAAoBoB,GAAa,IAAItzC,MAAOgyC,UAC3D,EAKA0svB,iBAAkB,SAA0BtwlB,GAC1C,IAAI3iG,EAAY2iG,EAAK8mlB,aAAan2xB,QAAQ,qBACzBqvM,EAAK8mlB,aAAan2xB,QAAQ,qBAEtC0sG,GAAa2iG,EAAK/nM,MAAQ+nM,EAAK/nM,KAAKmgzB,mBACvC/6sB,EAAY2iG,EAAK/nM,KAAKmgzB,iBAAiBC,WAGrCh7sB,IACF2iG,EAAK3iG,UAAYA,GAGf2iG,EAAKntM,QACPmtM,EAAKntM,MAAMwqG,UAAYA,EAE3B,EAKAshrB,YAAa,SAAqBv8N,EAAc6+N,GAC9C,IAAIq3B,GAAiB,OACK3hzB,IAAtBsqxB,GAAmC5N,GAAOA,EAAIjmuB,SAChD6zuB,EAAoB5N,EAAIjmuB,OAAOwxuB,8BAEPjoxB,IAAtBsqxB,GAAsD,qBAAZ3xwB,UAC5C2xwB,EAAoB3xwB,SAEW,oBAAtB2xwB,IAAkCq3B,GAAiB,GACzD1nyB,MAAMC,QAAQuxiB,KAAeA,EAAe,CAACA,IAElD,IAAK,IAAIm/O,EAAM,EAAGA,EAAMn/O,EAAalzjB,OAAQqyyB,IAAO,CAClD,IAAI5sxB,EAAcytiB,EAAam/O,GAC3B+W,EACE3jyB,EAAYyswB,yBACdzswB,EAAYyswB,0BAELzswB,EAAYqswB,oBACrBrswB,EAAYqswB,mBAAmBC,EAEnC,CACF,EAUAC,gBAAiB,SAAyBj1vB,EAAYg1vB,GACpD,OAAO,WACL,IAAI9uqB,EAAO7jH,KACPyoB,EAAOnG,MAAMpiB,UAAUkmB,MAAMN,KAAKhB,WACtC,OAAO,IAAI6twB,GAAkB,SAAS/vwB,EAASH,GAC7CgG,EAAK7G,MAAK,SAASvd,EAAKsF,GAClBtF,EACFoe,EAAOpe,GAEPue,EAAQjZ,EAEZ,IACAk6G,EAAKlmF,GAAY/Y,MAAMi/F,EAAMp7F,EAC/B,GACF,CACF,EAKAwhyB,qBAAsB,SAA8B5lxB,GAClD,IAAKA,EAAS,OAAO,EACrB,IAAItK,EAAW/C,EAAQ,OAEvB,MADuB,kBAAZqN,IAAsBA,EAAUA,EAAQw0vB,qBAC5B,kBAAZx0vB,IAAyBtK,EAASnB,eAAeyL,OACnDtK,EAASsK,GAAS6lxB,kBAC7B,EAKArP,oBAAqB,SAA6Bt3vB,EAAYqsuB,EAAmBvrxB,GAC1EurxB,IAAmBA,EAAoB,CAAC,GAC7C,IAAIu6B,EAAgBv6B,EAAkBu6B,eAAiB,KACvD,GAA6B,oBAAlBA,EACT,OAAOA,EAAc5mwB,EAAYl/C,GAEnC,IAAI2gL,EAAyC,kBAA3B4qmB,EAAkB5qmB,KAAoB4qmB,EAAkB5qmB,KAAO,IAEjF,OADYp8I,KAAKwb,UAAYxb,KAAKma,IAAI,EAAGQ,GAAcyhI,EAEzD,EAKAoloB,yBAA0B,SAAkC7na,EAAaj4Y,EAASi/H,GAC3Ej/H,IAASA,EAAU,CAAC,GACzB,IAAIkxE,EAAOupsB,EAAIgc,WAAW5kW,cACtB0yV,EAAcvkxB,EAAQukxB,aAAe,CAAC,EACtCtruB,EAAa,EAEbugvB,EAAc,SAASz/xB,GACzB,IAAI2hwB,EAAa17vB,EAAQ07vB,YAAc,EAIvC,GAHI3hwB,GAAoB,iBAAbA,EAAI4iB,OAAyB5iB,EAAImouB,WAAY,GAGpDnouB,GAAOA,EAAImouB,WAAajprB,EAAayitB,EAAY,CACnD,IAAIhktB,EAAQ4puB,EAAKivB,oBAAoBt3vB,EAAYj5C,EAAQslxB,kBAAmBvrxB,GAC5E,GAAI29C,GAAS,EAGX,OAFAuB,SACAl2B,WAAWg9xB,EAAarowB,GAAS39C,EAAIgjD,YAAc,GAGvD,CACAkiF,EAAGllI,EACL,EAEIgmzB,EAAc,WAChB,IAAI1gzB,EAAO,GACX6xE,EAAK6ltB,cAAc9+Y,EAAassY,GAAa,SAAS2J,GACpDA,EAAatkrB,GAAG,QAAQ,SAAS1qE,GAAS7/B,GAAQ6/B,EAAMjoC,UAAY,IACpEi3xB,EAAatkrB,GAAG,OAAO,WACrB,IAAI1tD,EAAagyuB,EAAahyuB,WAC9B,GAAIA,EAAa,IACf+iF,EAAG,KAAM5/H,OACJ,CACL,IAAI09C,EAAiE,IAApD5yB,SAAS+jwB,EAAan2xB,QAAQ,eAAgB,KAAc,EACzEgC,EAAMunxB,EAAKrnxB,MAAM,IAAIpE,MACvB,CACEqmD,WAAYA,EACZgmrB,UAAWhmrB,GAAc,KAAsB,MAAfA,IAGhCa,GAAchjD,EAAImouB,YAAWnouB,EAAIgjD,WAAaA,GAClDy8uB,EAAYz/xB,EACd,CACF,GACF,GAAGy/xB,EACL,EAEA/e,EAAI6G,KAAK6G,MAAM43B,EACjB,EAKAzkwB,KAAM,CACJoB,GAAI,WACF,OAAOhwB,EAAAA,OAAAA,IACT,GAMFilxB,uBAAwB,SAAgCvqmB,GACtD,IAAIF,EAAME,EAAKntK,QACX1F,EAAY2yK,EAAI3yK,UAChBif,EAAQ0zJ,EAAIntK,QAAQ5lB,IAAI2stB,WAAWvssB,GAAW6F,QAAU,CAAC,EACzDoZ,EAAM55C,SAAWwtM,EAAK/nM,KAAKm0C,EAAM55C,WACnCwtM,EAAK/nM,KAAKm0C,EAAM55C,SAAWwtM,EAAK/nM,KAAKm0C,EAAM55C,SAAS3C,WAExD,EAKAkxxB,MAAO,SAAelqqB,GACG,kBAAZxpF,GAAoD,oBAArBA,EAAQiywB,SAChDjywB,EAAQiywB,SAASzorB,GACgB,oBAAjB4+oB,aAChBA,aAAa5+oB,GAEbl7F,WAAWk7F,EAAU,EAEzB,EAKAu3qB,uBAAwB,SAAgCtulB,GACtD,IAAI45hB,EAAa55hB,EAAIntK,QAAQ5lB,IAAI2stB,WACjC,GAAKA,EAAL,CACA,IAAIvssB,GAAaussB,GAAc,CAAC,GAAG55hB,EAAI3yK,WACvC,GAAKA,GAAcA,EAAUqB,OAAUrB,EAAUqB,MAAMh8B,QACvD,OAAO26B,EAAUqB,MAAMu2vB,QAAQ53vB,EAAUqB,MAAMh8B,QAHd,CAInC,EAEAysxB,4BAA6B,SAAqCC,EAAWyI,GAC3E,IAAIixB,EAAW,CAAC,EACZC,EAAqB,CAAC,EAC1B,GAAIxrxB,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAY6svB,EAAK4+B,gBACfD,EAAqB35B,EAAUuI,SAAS,CAC1CC,UAAU,EACVC,SAAUt6vB,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAY6svB,EAAK0N,uBAG/B,IAAImxB,EAAmB,CAAC,EACxB,IACMA,EAAoB75B,EAAUuI,SAAS,CACzCE,SAAUA,GACPt6vB,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAY6svB,EAAK4+B,iBAAmBzrxB,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAY6svB,EAAK8+B,2BAE5D,CAAE,MAAOnmzB,GAEP,IAAKw6B,CAAAA,SAAAA,aAAAA,WAAAA,GAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,qBAAAA,EAAAA,cAAAA,GAAY6svB,EAAK4+B,gBAAiB,MAAMjmzB,CAC/C,CACA,IAAK,IAAIvD,EAAI,EAAG2pzB,EAAe5qyB,OAAOwE,KAAKgmyB,GAAqBvpzB,EAAI2pzB,EAAa/pzB,OAAQI,IACvFspzB,EAASK,EAAa3pzB,IAAM4pzB,EAAaN,EAASK,EAAa3pzB,KAAO,CAAC,EAAGupzB,EAAmBI,EAAa3pzB,KAE5G,IAASA,EAAI,EAAG2pzB,EAAe5qyB,OAAOwE,KAAKkmyB,GAAoBzpzB,EAAI2pzB,EAAa/pzB,OAAQI,IACtFspzB,EAASK,EAAa3pzB,IAAM4pzB,EAAaN,EAASK,EAAa3pzB,KAAO,CAAC,EAAGypzB,EAAkBE,EAAa3pzB,KAE3G,OAAOspzB,EAKP,SAASM,EAAahqyB,EAAQmE,GAC5B,IAAK,IAAI/jB,EAAI,EAAGujB,EAAOxE,OAAOwE,KAAKQ,GAAS/jB,EAAIujB,EAAK3jB,OAAQI,IAC3D4f,EAAO2D,EAAKvjB,IAAM+jB,EAAOR,EAAKvjB,IAEhC,OAAO4f,CACT,CACF,EAKAw+xB,IAAK,CACHp5vB,SAAU,SAAqBre,GAC7B,OAAOA,GAA+B,IAAxBA,EAAIvmC,QAAQ,SAAiBumC,EAAI/lC,MAAM,KAAKhB,QAAU,CACtE,EACAe,MAAO,SAAkBg3C,GACvB,IAAIwrH,EAAUxrH,EAAI/2C,MAAM,KACxB,MAAO,CACLw1C,UAAW+sH,EAAQ,GACnB9/H,QAAS8/H,EAAQ,GACjBv0H,OAAQu0H,EAAQ,GAChBvrH,UAAWurH,EAAQ,GACnBmpnB,SAAUnpnB,EAAQ/9I,MAAM,GAAGY,KAAK,KAEpC,EACAgtL,MAAO,SAAkB62mB,GACvB,QACwBxizB,IAAtBwizB,EAAUxmxB,cACWh8B,IAArBwizB,EAAUj7wB,aACcvnC,IAAxBwizB,EAAUjywB,gBACavwC,IAAvBwizB,EAAUv9B,SACV,MAAM1B,EAAKrnxB,MAAM,IAAIpE,MAAM,gCAC7B,MAAO,QAAS0qzB,EAAUzzwB,WAAa,OAAS,IAAMyzwB,EAAUxmxB,QAC9D,IAAMwmxB,EAAUj7wB,OAAS,IAAMi7wB,EAAUjywB,UAAY,IAAMiywB,EAAUv9B,QACzE,GAMFwD,eAAgB,UAKhB05B,eAAgB,sBAKhBE,yBAA0B,8BAK1BpxB,oBAAqB,kBAKrBwxB,gBAAiB,6BAMnB7lmB,EAAOrtL,QAAUg0vB,yBC9jCjB,IAAIA,EAAO50vB,EAAQ,OACfkngB,EAAQlngB,EAAQ,MAEpB,SAAS+zxB,IAAiB,CAwE1B,SAASC,EAAoBC,EAAKt7rB,GAEhC,IADA,IAAI0wC,EAAW4qpB,EAAIC,qBAAqBv7rB,GAC/B3uH,EAAI,EAAGusM,EAAOltC,EAASz/J,OAAQI,EAAIusM,EAAMvsM,IAChD,GAAIq/J,EAASr/J,GAAGwvH,aAAey6rB,EAC7B,OAAO5qpB,EAASr/J,EAGtB,CAEA,SAASmqzB,EAASF,EAAK1yyB,GAErB,OADKA,IAAOA,EAAQ,CAAC,GACbA,EAAMtU,MACZ,IAAK,YAAa,OAAOmnzB,EAAeH,EAAK1yyB,GAC7C,IAAK,MAAO,OAkChB,SAAkB0yyB,EAAK1yyB,GACrB,IAAI5O,EAAO,CAAC,EACR0hzB,EAAS9yyB,EAAM0M,IAAI7kB,MAAQ,MAC3B6ld,EAAW1tc,EAAMvR,MAAM5G,MAAQ,QAC/BsyH,EAAUn6G,EAAMuvxB,UAAYvvxB,EAAMnY,KAAO,QAEzCqhF,EAAQwpuB,EAAIK,kBAChB,KAAO7puB,GAAO,CACZ,GAAIA,EAAM6zC,WAAa5C,EAAS,CAC9B,IAAIztG,EAAM+lyB,EAAoBvpuB,EAAO4puB,GAAQ/6pB,YACzCtpJ,EAAQgkzB,EAAoBvpuB,EAAOwkY,GACvCt8c,EAAKsb,GAAOkmyB,EAASnkzB,EAAOuR,EAAMvR,MACpC,CACAy6E,EAAQA,EAAMykC,kBAChB,CACA,OAAOv8G,CACT,CAlDuB4hzB,CAASN,EAAK1yyB,GACjC,IAAK,OAAQ,OAmDjB,SAAmB0yyB,EAAK1yyB,GACtB,IAAI5O,EAAO,GACP+oH,EAAUn6G,EAAMuvxB,UAAYvvxB,EAAMnY,KAAQmY,EAAMmlxB,OAAOt9xB,MAAQ,SAE/DqhF,EAAQwpuB,EAAIK,kBAChB,KAAO7puB,GACDA,EAAM6zC,WAAa5C,GACrB/oH,EAAKiY,KAAKupyB,EAAS1puB,EAAOlpE,EAAMmlxB,SAElCj8sB,EAAQA,EAAMykC,mBAEhB,OAAOv8G,CACT,CA/DwB6hzB,CAAUP,EAAK1yyB,GACnC,UAAKlQ,EAAW,KAAK,KAAM,OAiF/B,SAAsB4izB,GACpB,QAAY5izB,IAAR4izB,GAA6B,OAARA,EAAc,MAAO,GAG9C,IAAKA,EAAIK,kBACP,OAAkC,OAA9BL,EAAIz6rB,WAAWA,WAA4B,CAAC,EAClB,IAA1By6rB,EAAItjiB,WAAW/mR,OAAqB,GAC5BqqzB,EAAI36pB,YAIlB,IAAI/3I,EAAQ,CAACtU,KAAM,YAAawyxB,QAAS,CAAC,GACtCh1sB,EAAQwpuB,EAAIK,kBAChB,KAAO7puB,GAAO,CACZ,IAAIkuC,EAAMluC,EAAM6zC,SACZv1G,OAAO7f,UAAU04B,eAAe9S,KAAKvN,EAAMk+wB,QAAS9mqB,GAEtDp3G,EAAMk+wB,QAAQ9mqB,GAAK1rH,KAAO,OAE1BsU,EAAMk+wB,QAAQ9mqB,GAAO,CAACvvH,KAAMuvH,GAE9BluC,EAAQA,EAAMykC,kBAChB,CACA,OAAOklsB,EAAeH,EAAK1yyB,EAC7B,CAzGsCkzyB,CAAaR,GAC/C,QAAS,OA+Db,SAAqBA,EAAK1yyB,GACxB,GAAI0yyB,EAAI7gsB,aAAc,CACpB,IAAI3rF,EAAWwsxB,EAAI7gsB,aAAa,YACf,WAAb3rF,IACFlmB,EAAQ,IAAI2lhB,EAAMnlgB,OAAO,CAAC90B,KAAMw6B,IAEpC,CAEA,IAAIvzB,EAAO+/yB,EAAI36pB,YACF,KAATplJ,IAAaA,EAAO,MACxB,MAA4B,oBAAjBqN,EAAMolxB,OACRplxB,EAAMolxB,OAAOzyxB,GAEbA,CAEX,CA9EoBwgzB,CAAYT,EAAK1yyB,GAErC,CAEA,SAAS6yyB,EAAeH,EAAK1yyB,GAC3B,IAAI5O,EAAO,CAAC,EACZ,OAAY,OAARshzB,GAEJr/B,EAAK9pN,KAAKvpjB,EAAMk+wB,SAAS,SAASl6kB,EAAYi6kB,GAC5C,GAAIA,EAAYm1B,gBACd,GAAI5ryB,OAAO7f,UAAU04B,eAAe9S,KAAKmlyB,EAAI1puB,WAAYi1sB,EAAYp2xB,MAAO,CAC1E,IAAI4G,EAAQikzB,EAAI1puB,WAAWi1sB,EAAYp2xB,MAAM4G,MAC7C2C,EAAK4yM,GAAc4umB,EAAS,CAAC76pB,YAAatpJ,GAAQwvxB,EACpD,MACK,CACL,IAAIo1B,EAAWp1B,EAAYsR,UAAYmjB,EACrCD,EAAoBC,EAAKz0B,EAAYp2xB,MACnCwrzB,EACFjizB,EAAK4yM,GAAc4umB,EAASS,EAAUp1B,GAErCA,EAAYsR,WACQ,SAArBtR,EAAYvyxB,MACXsU,EAAMkG,IAAIonxB,oBACXl8xB,EAAK4yM,GAAci6kB,EAAY5toB,aAEnC,CACF,IApByBj/I,CAuB3B,CAnHAohzB,EAAa7qzB,UAAUyB,MAAQ,SAASspzB,EAAK1yyB,GAC3C,GAAgC,KAA5B0yyB,EAAItqzB,QAAQ,OAAQ,IAAY,MAAO,CAAC,EAE5C,IAAIuE,EAAQX,EACZ,IACE,GAAIjE,OAAOm1R,UAAW,CACpB,IAEEvwR,GADa,IAAIuwR,WACDC,gBAAgBu1hB,EAAK,WACvC,CAAE,MAAOY,GACP,MAAMjgC,EAAKrnxB,MAAM,IAAIpE,MAAM,2BACzB,CACEiiyB,cAAeypB,EACf5kyB,KAAM,iBACNultB,WAAW,GAEjB,CAEA,GAA+B,OAA3BtnuB,EAAO8uH,gBACT,MAAM43pB,EAAKrnxB,MAAM,IAAIpE,MAAM,gCACzB,CACE8mB,KAAM,iBACNultB,WAAW,IAIjB,IAAI4K,EAAUlyuB,EAAOgmzB,qBAAqB,eAAe,GACzD,GAAI9zE,IAAYA,EAAQ5mnB,aAAetrH,GACH,SAAhCkyuB,EAAQ5mnB,WAAW8E,UACnB8hnB,EAAQ5mnB,WAAWA,aAAetrH,GACS,SAA3CkyuB,EAAQ5mnB,WAAWA,WAAW8E,UAAsB,CACtD,IAAIw2rB,EAAe10E,EAAQ8zE,qBAAqB,OAAO,IAAM9zE,EAC7D,MAAMw0C,EAAKrnxB,MAAM,IAAIpE,MAAM2rzB,EAAax7pB,aAAe,4BACrD,CACErpI,KAAM,iBACNultB,WAAW,GAEjB,CACF,KAAO,KAAIlsuB,OAAOyrzB,cAYhB,MAAM,IAAI5rzB,MAAM,0BARhB,IAHA+E,EAAS,IAAI5E,OAAOyrzB,cAAc,qBAC3B/ozB,OAAQ,GAEVkC,EAAO8mzB,QAAQf,GAClB,MAAMr/B,EAAKrnxB,MAAM,IAAIpE,MAAM,2BACzB,CACE8mB,KAAM,iBACNultB,WAAW,GAKnB,CACF,CAAE,MAAOzsuB,GACPwE,EAAQxE,CACV,CAEA,GAAImF,GAAUA,EAAO8uH,kBAAoBzvH,EAAO,CAC9C,IAAIoF,EAAOwhzB,EAASjmzB,EAAO8uH,gBAAiBz7G,GACxCwhB,EAAWixxB,EAAoB9lzB,EAAO8uH,gBAAiB,oBAI3D,OAHIj6F,IACFpwB,EAAKmgzB,iBAAmBqB,EAASpxxB,EAAU,CAAC,IAEvCpwB,CACT,CAAO,GAAIpF,EACT,MAAMqnxB,EAAKrnxB,MAAMA,GAAS,IAAIpE,MAAS,CAAC8mB,KAAM,iBAAkBultB,WAAW,IAE3E,MAAO,CAAC,CAEZ,EA+HAvnhB,EAAOrtL,QAAUmzxB,yBCxMjB,IAAIn/B,EAAO50vB,EAAQ,OACfiqD,EAAUjqD,EAAAA,OAAAA,QACVgqD,EAAUhqD,EAAAA,OAAAA,QAEd,SAASi1xB,IAAe,CASxB,SAAS3oxB,EAAU2nxB,EAAKjkzB,EAAOuR,GAC7B,OAAQA,EAAMtU,MACZ,IAAK,YAAa,OAOtB,SAA4BgnzB,EAAKpyvB,EAAQtgD,GACvCqzwB,EAAK4G,UAAUj6wB,EAAM6vxB,aAAa,SAAS7rlB,GACzC,IAAIi6kB,EAAcj+wB,EAAMk+wB,QAAQl6kB,GAChC,GAA6B,SAAzBi6kB,EAAY5wxB,SAAhB,CAEA,IAAIoB,EAAQ6xD,EAAO0jJ,GACfn8M,EAAOo2xB,EAAYp2xB,KACvB,QAAciI,IAAVrB,GAAiC,OAAVA,EACzB,GAAIwvxB,EAAYm1B,eACdV,EAAIzpuB,aAAaphF,EAAM4G,QAClB,GAAIwvxB,EAAYsR,UACrBxkwB,EAAU2nxB,EAAKjkzB,EAAOwvxB,OACjB,CACL,IAAIvwqB,EAAU,IAAIhlC,EAAQ7gF,GAC1B6qzB,EAAI3puB,aAAa2kC,GACjBimsB,EAAgBjmsB,EAASuwqB,GACzBlzvB,EAAU2iF,EAASj/G,EAAOwvxB,EAC5B,CAdyC,CAgB7C,GACF,CA3B6BgX,CAAmByd,EAAKjkzB,EAAOuR,GACxD,IAAK,MAAO,OA4BhB,SAAsB0yyB,EAAK/6yB,EAAKqI,GAC9B,IAAI8yyB,EAAS9yyB,EAAM0M,IAAI7kB,MAAQ,MAC3B6ld,EAAW1tc,EAAMvR,MAAM5G,MAAQ,QAEnCwrxB,EAAK9pN,KAAK5xjB,GAAK,SAAS+U,EAAKje,GAC3B,IAAI+a,EAAQ,IAAIk/D,EAAQ1oE,EAAMuvxB,UAAYvvxB,EAAMnY,KAAO,SACvD6qzB,EAAI3puB,aAAav/D,GAEjB,IAAIoqyB,EAAW,IAAIlruB,EAAQoquB,GACvBe,EAAa,IAAInruB,EAAQglY,GAC7Blkc,EAAMu/D,aAAa6quB,GACnBpqyB,EAAMu/D,aAAa8quB,GAEnB9oxB,EAAU6oxB,EAAUlnyB,EAAK1M,EAAM0M,KAC/Bqe,EAAU8oxB,EAAYplzB,EAAOuR,EAAMvR,MACrC,GACF,CA5CuB4myB,CAAaqd,EAAKjkzB,EAAOuR,GAC5C,IAAK,OAAQ,OA6CjB,SAAuB0yyB,EAAKzvsB,EAAMjjG,GAC5BA,EAAMuvxB,UACRlc,EAAK4G,UAAUh3qB,GAAM,SAASx0G,GAC5B,IAAI5G,EAAOmY,EAAMmlxB,OAAOt9xB,MAAQmY,EAAMnY,KAClC6lH,EAAU,IAAIhlC,EAAQ7gF,GAC1B6qzB,EAAI3puB,aAAa2kC,GACjB3iF,EAAU2iF,EAASj/G,EAAOuR,EAAMmlxB,OAClC,IAEA9R,EAAK4G,UAAUh3qB,GAAM,SAASx0G,GAC5B,IAAI5G,EAAOmY,EAAMmlxB,OAAOt9xB,MAAQ,SAC5B6lH,EAAU,IAAIhlC,EAAQ7gF,GAC1B6qzB,EAAI3puB,aAAa2kC,GACjB3iF,EAAU2iF,EAASj/G,EAAOuR,EAAMmlxB,OAClC,GAEJ,CA7DwBiQ,CAAcsd,EAAKjkzB,EAAOuR,GAC9C,QAAS,OA8Db,SAAyB0yyB,EAAKjkzB,EAAOuR,GACnC0yyB,EAAI3puB,aACF,IAAIN,EAAQzoE,EAAMssxB,aAAa79xB,IAEnC,CAlEoBqlzB,CAAgBpB,EAAKjkzB,EAAOuR,GAEhD,CAkEA,SAAS2zyB,EAAgBjB,EAAK1yyB,EAAO+zyB,GACnC,IAAI/tmB,EAAK7/J,EAAS,QACdnmC,EAAMg0yB,iBACRhumB,EAAMhmM,EAAMg0yB,gBACRh0yB,EAAMi0yB,qBAAoB9twB,GAAU,IAAMnmC,EAAMi0yB,qBAC3CF,GAAU/zyB,EAAMkG,IAAI8tyB,kBAC7BhumB,EAAMhmM,EAAMkG,IAAI8tyB,iBAGdhumB,GAAK0smB,EAAIzpuB,aAAa9iC,EAAQ6/J,EACpC,CA1FA0tmB,EAAW/rzB,UAAUktyB,MAAQ,SAASv0uB,EAAQtgD,EAAOu+G,EAAa21rB,GAChE,IAAIxB,EAAM,IAAIhquB,EAAQ61C,GAGtB,OAFAo1rB,EAAgBjB,EAAK1yyB,GAAO,GAC5B+qB,EAAU2nxB,EAAKpyvB,EAAQtgD,GAChB0yyB,EAAItkzB,SAAS/F,OAAS,GAAK6rzB,EAAUxB,EAAI1pzB,WAAa,EAC/D,EA0FA0jN,EAAOrtL,QAAUq0xB,oBC3FjBhnmB,EAAOrtL,QAAU,CACb80xB,gBARJ,SAAyB1lzB,GACrB,OAAOA,EAAMrG,QAAQ,KAAM,SAASA,QAAQ,KAAM,UAAUA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,QAAQA,QAAQ,KAAM,SAC1H,sBCWAskN,EAAOrtL,QAAU,CACb+0xB,cAdJ,SAAuB3lzB,GACnB,OAAOA,EAAMrG,QAAQ,KAAM,SACdA,QAAQ,KAAM,QACdA,QAAQ,KAAM,QACdA,QAAQ,MAAO,UACfA,QAAQ,MAAO,UACfA,QAAQ,UAAW,UACnBA,QAAQ,SAAU,WACnC,0BCXA,IAAI+rzB,EAAkB11xB,EAAAA,MAAAA,gBAMtB,SAASiqD,EAAQ7gF,EAAMuG,QACF,IAAbA,IAAuBA,EAAW,IACtC3G,KAAKI,KAAOA,EACZJ,KAAK2G,SAAWA,EAChB3G,KAAKuhF,WAAa,CAAC,CACvB,CACAN,EAAQ/gF,UAAUshF,aAAe,SAAUphF,EAAM4G,GAE7C,OADAhH,KAAKuhF,WAAWnhF,GAAQ4G,EACjBhH,IACX,EACAihF,EAAQ/gF,UAAUohF,aAAe,SAAUG,GAEvC,OADAzhF,KAAK2G,SAASib,KAAK6/D,GACZzhF,IACX,EACAihF,EAAQ/gF,UAAUwhF,gBAAkB,SAAUthF,GAE1C,cADOJ,KAAKuhF,WAAWnhF,GAChBJ,IACX,EACAihF,EAAQ/gF,UAAUqB,SAAW,WAKzB,IAJA,IAAIogF,EAAc/4E,QAAQ5I,KAAK2G,SAAS/F,QACpCghF,EAAU,IAAM5hF,KAAKI,KAErBmhF,EAAavhF,KAAKuhF,WACbvgF,EAAI,EAAG4rzB,EAAiB7syB,OAAOwE,KAAKg9D,GAAavgF,EAAI4rzB,EAAehszB,OAAQI,IAAK,CACtF,IAAI6gF,EAAgB+quB,EAAe5rzB,GAC/B8gF,EAAYP,EAAWM,GACF,qBAAdC,GAA2C,OAAdA,IACpCF,GAAW,IAAMC,EAAgB,KAAQ6quB,EAAgB,GAAK5quB,GAAa,IAEnF,CACA,OAAOF,GAAYD,EAAqB,IAAM3hF,KAAK2G,SAASuJ,KAAI,SAAUjP,GAAK,OAAOA,EAAEM,UAAY,IAAGylB,KAAK,IAAM,KAAOhnB,KAAKI,KAAO,IAApG,KACrC,EAKA6kN,EAAOrtL,QAAU,CACbqpD,QAASA,0BC3Cb,IAAI0ruB,EAAgB31xB,EAAAA,OAAAA,cAMpB,SAASgqD,EAAQh6E,GACbhH,KAAKgH,MAAQA,CACjB,CAEAg6E,EAAQ9gF,UAAUqB,SAAW,WACzB,OAAOorzB,EAAc,GAAK3szB,KAAKgH,MACnC,EAKAi+M,EAAOrtL,QAAU,CACbopD,QAASA,2CCRTs1B,EAASt/E,EAAQ,MACjBu/E,EAAUv/E,EAAQ,OAClBzU,EAAUyU,EAAQ,OAmDtB,SAAS61xB,IACP,OAAOnrxB,EAAOq5E,oBACV,WACA,UACN,CAEA,SAASpE,EAAcsrU,EAAMrhb,GAC3B,GAAIiszB,IAAejszB,EACjB,MAAM,IAAIg2G,WAAW,8BAcvB,OAZIl1E,EAAOq5E,qBAETknU,EAAO,IAAInkZ,WAAWl9B,IACjB83B,UAAYgJ,EAAOxhC,WAGX,OAAT+hb,IACFA,EAAO,IAAIvgZ,EAAO9gC,IAEpBqhb,EAAKrhb,OAASA,GAGTqhb,CACT,CAYA,SAASvgZ,EAAQqa,EAAK86D,EAAkBj2G,GACtC,IAAK8gC,EAAOq5E,uBAAyB/6G,gBAAgB0hC,GACnD,OAAO,IAAIA,EAAOqa,EAAK86D,EAAkBj2G,GAI3C,GAAmB,kBAARm7C,EAAkB,CAC3B,GAAgC,kBAArB86D,EACT,MAAM,IAAI12G,MACR,qEAGJ,OAAO22G,EAAY92G,KAAM+7C,EAC3B,CACA,OAAOh4B,EAAK/jB,KAAM+7C,EAAK86D,EAAkBj2G,EAC3C,CAUA,SAASmjB,EAAMk+Z,EAAMj7a,EAAO6vG,EAAkBj2G,GAC5C,GAAqB,kBAAVoG,EACT,MAAM,IAAIkd,UAAU,yCAGtB,MAA2B,qBAAhBub,aAA+Bz4B,aAAiBy4B,YA6H7D,SAA0BwiZ,EAAMnqU,EAAOl4E,EAAYh/B,GAGjD,GAFAk3G,EAAMj4E,WAEFD,EAAa,GAAKk4E,EAAMj4E,WAAaD,EACvC,MAAM,IAAIg3E,WAAW,6BAGvB,GAAIkB,EAAMj4E,WAAaD,GAAch/B,GAAU,GAC7C,MAAM,IAAIg2G,WAAW,6BAIrBkB,OADiBzvG,IAAfu3B,QAAuCv3B,IAAXzH,EACtB,IAAIk9B,WAAWg6E,QACHzvG,IAAXzH,EACD,IAAIk9B,WAAWg6E,EAAOl4E,GAEtB,IAAI9B,WAAWg6E,EAAOl4E,EAAYh/B,GAGxC8gC,EAAOq5E,qBAETknU,EAAOnqU,GACFp/E,UAAYgJ,EAAOxhC,UAGxB+hb,EAAO7qU,EAAc6qU,EAAMnqU,GAE7B,OAAOmqU,CACT,CAxJW5qU,CAAgB4qU,EAAMj7a,EAAO6vG,EAAkBj2G,GAGnC,kBAAVoG,EAwFb,SAAqBi7a,EAAMlrU,EAAQt4E,GACT,kBAAbA,GAAsC,KAAbA,IAClCA,EAAW,QAGb,IAAKiD,EAAOs1E,WAAWv4E,GACrB,MAAM,IAAIva,UAAU,8CAGtB,IAAItjB,EAAwC,EAA/Bi/B,EAAWk3E,EAAQt4E,GAChCwjZ,EAAOtrU,EAAasrU,EAAMrhb,GAE1B,IAAIq2G,EAASgrU,EAAK/qU,MAAMH,EAAQt4E,GAE5Bw4E,IAAWr2G,IAIbqhb,EAAOA,EAAK77Z,MAAM,EAAG6wF,IAGvB,OAAOgrU,CACT,CA7GW9qU,CAAW8qU,EAAMj7a,EAAO6vG,GAsJnC,SAAqBorU,EAAM58Z,GACzB,GAAIqc,EAAO61E,SAASlyF,GAAM,CACxB,IAAIkB,EAA4B,EAAtBixF,EAAQnyF,EAAIzkB,QAGtB,OAAoB,KAFpBqhb,EAAOtrU,EAAasrU,EAAM17Z,IAEjB3lB,QAITykB,EAAIoyF,KAAKwqU,EAAM,EAAG,EAAG17Z,GAHZ07Z,CAKX,CAEA,GAAI58Z,EAAK,CACP,GAA4B,qBAAhBoa,aACRpa,EAAIsa,kBAAkBF,aAAgB,WAAYpa,EACpD,MAA0B,kBAAfA,EAAIzkB,QA+8CrB,SAAgBivG,GACd,OAAOA,IAAQA,CACjB,CAj9C4Ci9sB,CAAMznyB,EAAIzkB,QACvC+1G,EAAasrU,EAAM,GAErB7qU,EAAc6qU,EAAM58Z,GAG7B,GAAiB,WAAbA,EAAIphB,MAAqBse,EAAQ8C,EAAI1b,MACvC,OAAOytG,EAAc6qU,EAAM58Z,EAAI1b,KAEnC,CAEA,MAAM,IAAIua,UAAU,qFACtB,CA/KSyzF,CAAWsqU,EAAMj7a,EAC1B,CA2BA,SAAS6wG,EAAY9vG,GACnB,GAAoB,kBAATA,EACT,MAAM,IAAImc,UAAU,oCACf,GAAInc,EAAO,EAChB,MAAM,IAAI6uG,WAAW,uCAEzB,CA0BA,SAASE,EAAamrU,EAAMl6a,GAG1B,GAFA8vG,EAAW9vG,GACXk6a,EAAOtrU,EAAasrU,EAAMl6a,EAAO,EAAI,EAAoB,EAAhByvG,EAAQzvG,KAC5C25B,EAAOq5E,oBACV,IAAK,IAAI/5G,EAAI,EAAGA,EAAI+G,IAAQ/G,EAC1Bihb,EAAKjhb,GAAK,EAGd,OAAOihb,CACT,CAuCA,SAAS7qU,EAAe6qU,EAAMnqU,GAC5B,IAAIl3G,EAASk3G,EAAMl3G,OAAS,EAAI,EAA4B,EAAxB42G,EAAQM,EAAMl3G,QAClDqhb,EAAOtrU,EAAasrU,EAAMrhb,GAC1B,IAAK,IAAII,EAAI,EAAGA,EAAIJ,EAAQI,GAAK,EAC/Bihb,EAAKjhb,GAAgB,IAAX82G,EAAM92G,GAElB,OAAOihb,CACT,CA8DA,SAASzqU,EAAS52G,GAGhB,GAAIA,GAAUiszB,IACZ,MAAM,IAAIj2sB,WAAW,0DACai2sB,IAAatrzB,SAAS,IAAM,UAEhE,OAAgB,EAATX,CACT,CAqFA,SAASi/B,EAAYk3E,EAAQt4E,GAC3B,GAAIiD,EAAO61E,SAASR,GAClB,OAAOA,EAAOn2G,OAEhB,GAA2B,qBAAhB6+B,aAA6D,oBAAvBA,YAAYC,SACxDD,YAAYC,OAAOq3E,IAAWA,aAAkBt3E,aACnD,OAAOs3E,EAAOl3E,WAEM,kBAAXk3E,IACTA,EAAS,GAAKA,GAGhB,IAAIxwF,EAAMwwF,EAAOn2G,OACjB,GAAY,IAAR2lB,EAAW,OAAO,EAItB,IADA,IAAIyxF,GAAc,IAEhB,OAAQv5E,GACN,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAOlY,EACT,IAAK,OACL,IAAK,QACL,UAAKle,EACH,OAAO4vG,EAAYlB,GAAQn2G,OAC7B,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAa,EAAN2lB,EACT,IAAK,MACH,OAAOA,IAAQ,EACjB,IAAK,SACH,OAAO2xF,EAAcnB,GAAQn2G,OAC/B,QACE,GAAIo3G,EAAa,OAAOC,EAAYlB,GAAQn2G,OAC5C69B,GAAY,GAAKA,GAAU5e,cAC3Bm4F,GAAc,EAGtB,CAGA,SAASG,EAAc15E,EAAU5uB,EAAOC,GACtC,IAAIkoG,GAAc,EAclB,SALc3vG,IAAVwH,GAAuBA,EAAQ,KACjCA,EAAQ,GAINA,EAAQ7P,KAAKY,OACf,MAAO,GAOT,SAJYyH,IAARyH,GAAqBA,EAAM9P,KAAKY,UAClCkP,EAAM9P,KAAKY,QAGTkP,GAAO,EACT,MAAO,GAOT,IAHAA,KAAS,KACTD,KAAW,GAGT,MAAO,GAKT,IAFK4uB,IAAUA,EAAW,UAGxB,OAAQA,GACN,IAAK,MACH,OAAO25E,EAASp4G,KAAM6P,EAAOC,GAE/B,IAAK,OACL,IAAK,QACH,OAAOuoG,EAAUr4G,KAAM6P,EAAOC,GAEhC,IAAK,QACH,OAAOwoG,EAAWt4G,KAAM6P,EAAOC,GAEjC,IAAK,SACL,IAAK,SACH,OAAOyoG,EAAYv4G,KAAM6P,EAAOC,GAElC,IAAK,SACH,OAAO0oG,EAAYx4G,KAAM6P,EAAOC,GAElC,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO2oG,EAAaz4G,KAAM6P,EAAOC,GAEnC,QACE,GAAIkoG,EAAa,MAAM,IAAI9zF,UAAU,qBAAuBua,GAC5DA,GAAYA,EAAW,IAAI5e,cAC3Bm4F,GAAc,EAGtB,CAMA,SAASU,EAAMlgF,EAAG33B,EAAGm6B,GACnB,IAAIh6B,EAAIw3B,EAAE33B,GACV23B,EAAE33B,GAAK23B,EAAEwC,GACTxC,EAAEwC,GAAKh6B,CACT,CAkIA,SAAS23G,EAAsBh5E,EAAQkwE,EAAKjwE,EAAYnB,EAAUm6E,GAEhE,GAAsB,IAAlBj5E,EAAO/+B,OAAc,OAAQ,EAmBjC,GAhB0B,kBAAfg/B,GACTnB,EAAWmB,EACXA,EAAa,GACJA,EAAa,WACtBA,EAAa,WACJA,GAAc,aACvBA,GAAc,YAEhBA,GAAcA,EACVjL,MAAMiL,KAERA,EAAag5E,EAAM,EAAKj5E,EAAO/+B,OAAS,GAItCg/B,EAAa,IAAGA,EAAaD,EAAO/+B,OAASg/B,GAC7CA,GAAcD,EAAO/+B,OAAQ,CAC/B,GAAIg4G,EAAK,OAAQ,EACZh5E,EAAaD,EAAO/+B,OAAS,CACpC,MAAO,GAAIg/B,EAAa,EAAG,CACzB,IAAIg5E,EACC,OAAQ,EADJh5E,EAAa,CAExB,CAQA,GALmB,kBAARiwE,IACTA,EAAMnuE,EAAO3d,KAAK8rF,EAAKpxE,IAIrBiD,EAAO61E,SAAS1H,GAElB,OAAmB,IAAfA,EAAIjvG,QACE,EAEHi4G,EAAal5E,EAAQkwE,EAAKjwE,EAAYnB,EAAUm6E,GAClD,GAAmB,kBAAR/I,EAEhB,OADAA,GAAY,IACRnuE,EAAOq5E,qBACiC,oBAAjCj9E,WAAW59B,UAAUkB,QAC1Bw3G,EACK96E,WAAW59B,UAAUkB,QAAQ0kB,KAAK6Z,EAAQkwE,EAAKjwE,GAE/C9B,WAAW59B,UAAUwf,YAAYoG,KAAK6Z,EAAQkwE,EAAKjwE,GAGvDi5E,EAAal5E,EAAQ,CAAEkwE,GAAOjwE,EAAYnB,EAAUm6E,GAG7D,MAAM,IAAI10F,UAAU,uCACtB,CAEA,SAAS20F,EAAcp1F,EAAKosF,EAAKjwE,EAAYnB,EAAUm6E,GACrD,IA0BI53G,EA1BA83G,EAAY,EACZC,EAAYt1F,EAAI7iB,OAChBo4G,EAAYnJ,EAAIjvG,OAEpB,QAAiByH,IAAbo2B,IAEe,UADjBA,EAAW/9B,OAAO+9B,GAAU5e,gBACY,UAAb4e,GACV,YAAbA,GAAuC,aAAbA,GAAyB,CACrD,GAAIhb,EAAI7iB,OAAS,GAAKivG,EAAIjvG,OAAS,EACjC,OAAQ,EAEVk4G,EAAY,EACZC,GAAa,EACbC,GAAa,EACbp5E,GAAc,CAChB,CAGF,SAAS+pB,EAAM1D,EAAKjlD,GAClB,OAAkB,IAAd83G,EACK7yD,EAAIjlD,GAEJilD,EAAIgzD,aAAaj4G,EAAI83G,EAEhC,CAGA,GAAIF,EAAK,CACP,IAAIM,GAAc,EAClB,IAAKl4G,EAAI4+B,EAAY5+B,EAAI+3G,EAAW/3G,IAClC,GAAI2oD,EAAKlmC,EAAKziB,KAAO2oD,EAAKkmD,GAAqB,IAAhBqJ,EAAoB,EAAIl4G,EAAIk4G,IAEzD,IADoB,IAAhBA,IAAmBA,EAAal4G,GAChCA,EAAIk4G,EAAa,IAAMF,EAAW,OAAOE,EAAaJ,OAEtC,IAAhBI,IAAmBl4G,GAAKA,EAAIk4G,GAChCA,GAAc,CAGpB,MAEE,IADIt5E,EAAao5E,EAAYD,IAAWn5E,EAAam5E,EAAYC,GAC5Dh4G,EAAI4+B,EAAY5+B,GAAK,EAAGA,IAAK,CAEhC,IADA,IAAIm4G,GAAQ,EACH39E,EAAI,EAAGA,EAAIw9E,EAAWx9E,IAC7B,GAAImuB,EAAKlmC,EAAKziB,EAAIw6B,KAAOmuB,EAAKkmD,EAAKr0E,GAAI,CACrC29E,GAAQ,EACR,KACF,CAEF,GAAIA,EAAO,OAAOn4G,CACpB,CAGF,OAAQ,CACV,CAcA,SAASo4G,EAAUnzD,EAAK8wD,EAAQhxD,EAAQnlD,GACtCmlD,EAASrxB,OAAOqxB,IAAW,EAC3B,IAAIpd,EAAYsd,EAAIrlD,OAASmlD,EACxBnlD,GAGHA,EAAS8zB,OAAO9zB,IACH+nC,IACX/nC,EAAS+nC,GAJX/nC,EAAS+nC,EASX,IAAI0wE,EAAStC,EAAOn2G,OACpB,GAAIy4G,EAAS,IAAM,EAAG,MAAM,IAAIn1F,UAAU,sBAEtCtjB,EAASy4G,EAAS,IACpBz4G,EAASy4G,EAAS,GAEpB,IAAK,IAAIr4G,EAAI,EAAGA,EAAIJ,IAAUI,EAAG,CAC/B,IAAIs4G,EAAS7kF,SAASsiF,EAAOlxG,OAAW,EAAJ7E,EAAO,GAAI,IAC/C,GAAI2zB,MAAM2kF,GAAS,OAAOt4G,EAC1BilD,EAAIF,EAAS/kD,GAAKs4G,CACpB,CACA,OAAOt4G,CACT,CAEA,SAASu4G,EAAWtzD,EAAK8wD,EAAQhxD,EAAQnlD,GACvC,OAAO44G,EAAWvB,EAAYlB,EAAQ9wD,EAAIrlD,OAASmlD,GAASE,EAAKF,EAAQnlD,EAC3E,CAEA,SAAS64G,EAAYxzD,EAAK8wD,EAAQhxD,EAAQnlD,GACxC,OAAO44G,EAq6BT,SAAuB7xE,GAErB,IADA,IAAI+xE,EAAY,GACP14G,EAAI,EAAGA,EAAI2mC,EAAI/mC,SAAUI,EAEhC04G,EAAU93F,KAAyB,IAApB+lB,EAAIrmC,WAAWN,IAEhC,OAAO04G,CACT,CA56BoBC,CAAa5C,GAAS9wD,EAAKF,EAAQnlD,EACvD,CAEA,SAASg5G,EAAa3zD,EAAK8wD,EAAQhxD,EAAQnlD,GACzC,OAAO64G,EAAWxzD,EAAK8wD,EAAQhxD,EAAQnlD,EACzC,CAEA,SAASi5G,EAAa5zD,EAAK8wD,EAAQhxD,EAAQnlD,GACzC,OAAO44G,EAAWtB,EAAcnB,GAAS9wD,EAAKF,EAAQnlD,EACxD,CAEA,SAASk5G,EAAW7zD,EAAK8wD,EAAQhxD,EAAQnlD,GACvC,OAAO44G,EAk6BT,SAAyB7xE,EAAKoyE,GAG5B,IAFA,IAAI94G,EAAG+4G,EAAIC,EACPP,EAAY,GACP14G,EAAI,EAAGA,EAAI2mC,EAAI/mC,WACjBm5G,GAAS,GAAK,KADa/4G,EAIhCg5G,GADA/4G,EAAI0mC,EAAIrmC,WAAWN,KACT,EACVi5G,EAAKh5G,EAAI,IACTy4G,EAAU93F,KAAKq4F,GACfP,EAAU93F,KAAKo4F,GAGjB,OAAON,CACT,CAh7BoBQ,CAAenD,EAAQ9wD,EAAIrlD,OAASmlD,GAASE,EAAKF,EAAQnlD,EAC9E,CAiFA,SAAS43G,EAAavyD,EAAKp2C,EAAOC,GAChC,OAAc,IAAVD,GAAeC,IAAQm2C,EAAIrlD,OACtB01G,EAAO6D,cAAcl0D,GAErBqwD,EAAO6D,cAAcl0D,EAAI7/B,MAAMvW,EAAOC,GAEjD,CAEA,SAASuoG,EAAWpyD,EAAKp2C,EAAOC,GAC9BA,EAAM84B,KAAKuZ,IAAI8D,EAAIrlD,OAAQkP,GAI3B,IAHA,IAAIsqG,EAAM,GAENp5G,EAAI6O,EACD7O,EAAI8O,GAAK,CACd,IAQMuqG,EAAYC,EAAWC,EAAYC,EARrCC,EAAYx0D,EAAIjlD,GAChB05G,EAAY,KACZC,EAAoBF,EAAY,IAAQ,EACvCA,EAAY,IAAQ,EACpBA,EAAY,IAAQ,EACrB,EAEJ,GAAIz5G,EAAI25G,GAAoB7qG,EAG1B,OAAQ6qG,GACN,KAAK,EACCF,EAAY,MACdC,EAAYD,GAEd,MACF,KAAK,EAEyB,OAAV,KADlBJ,EAAap0D,EAAIjlD,EAAI,OAEnBw5G,GAA6B,GAAZC,IAAqB,EAAoB,GAAbJ,GACzB,MAClBK,EAAYF,GAGhB,MACF,KAAK,EACHH,EAAap0D,EAAIjlD,EAAI,GACrBs5G,EAAYr0D,EAAIjlD,EAAI,GACQ,OAAV,IAAbq5G,IAAsD,OAAV,IAAZC,KACnCE,GAA6B,GAAZC,IAAoB,IAAoB,GAAbJ,IAAsB,EAAmB,GAAZC,GACrD,OAAUE,EAAgB,OAAUA,EAAgB,SACtEE,EAAYF,GAGhB,MACF,KAAK,EACHH,EAAap0D,EAAIjlD,EAAI,GACrBs5G,EAAYr0D,EAAIjlD,EAAI,GACpBu5G,EAAat0D,EAAIjlD,EAAI,GACO,OAAV,IAAbq5G,IAAsD,OAAV,IAAZC,IAAsD,OAAV,IAAbC,KAClEC,GAA6B,GAAZC,IAAoB,IAAqB,GAAbJ,IAAsB,IAAmB,GAAZC,IAAqB,EAAoB,GAAbC,GAClF,OAAUC,EAAgB,UAC5CE,EAAYF,GAMJ,OAAdE,GAGFA,EAAY,MACZC,EAAmB,GACVD,EAAY,QAErBA,GAAa,MACbN,EAAIx4F,KAAK84F,IAAc,GAAK,KAAQ,OACpCA,EAAY,MAAqB,KAAZA,GAGvBN,EAAIx4F,KAAK84F,GACT15G,GAAK25G,CACP,CAEA,OAQF,SAAgCC,GAC9B,IAAIr0F,EAAMq0F,EAAWh6G,OACrB,GAAI2lB,GAAOs0F,EACT,OAAOn6G,OAAOS,aAAayjB,MAAMlkB,OAAQk6G,GAI3C,IAAIR,EAAM,GACNp5G,EAAI,EACR,KAAOA,EAAIulB,GACT6zF,GAAO15G,OAAOS,aAAayjB,MACzBlkB,OACAk6G,EAAWx0F,MAAMplB,EAAGA,GAAK65G,IAG7B,OAAOT,CACT,CAxBSU,CAAsBV,EAC/B,CA/8BAxiF,EAAQ,GAAS8J,EAEjB9J,EAAQ,GAAoB,GA0B5B8J,EAAOq5E,yBAAqD1yG,IAA/B48L,EAAAA,EAAOlqF,oBAChCkqF,EAAAA,EAAOlqF,oBAQX,WACE,IACE,IAAIt3F,EAAM,IAAIqa,WAAW,GAEzB,OADAra,EAAIiV,UAAY,CAACA,UAAWoF,WAAW59B,UAAW+6G,IAAK,WAAc,OAAO,EAAG,GAC1D,KAAdx3F,EAAIw3F,OACiB,oBAAjBx3F,EAAIkoB,UACuB,IAAlCloB,EAAIkoB,SAAS,EAAG,GAAG9L,UACzB,CAAE,MAAO9/B,GACP,OAAO,CACT,CACF,CAjBIm7G,GAKiB2xsB,IAkErBnrxB,EAAOy5E,SAAW,KAGlBz5E,EAAOqrxB,SAAW,SAAUtpyB,GAE1B,OADAA,EAAIiV,UAAYgJ,EAAOxhC,UAChBujB,CACT,EA0BAie,EAAO3d,KAAO,SAAU/c,EAAO6vG,EAAkBj2G,GAC/C,OAAOmjB,EAAK,KAAM/c,EAAO6vG,EAAkBj2G,EAC7C,EAEI8gC,EAAOq5E,sBACTr5E,EAAOxhC,UAAUw4B,UAAYoF,WAAW59B,UACxCwhC,EAAOhJ,UAAYoF,WACG,qBAAXja,QAA0BA,OAAOm6K,SACxCt8J,EAAO7d,OAAOm6K,WAAat8J,GAE7B3hB,OAAOC,eAAe0hB,EAAQ7d,OAAOm6K,QAAS,CAC5Ch3L,MAAO,KACPkZ,cAAc,KAiCpBwhB,EAAO05E,MAAQ,SAAUrzG,EAAM4D,EAAM8yB,GACnC,OArBF,SAAgBwjZ,EAAMl6a,EAAM4D,EAAM8yB,GAEhC,OADAo5E,EAAW9vG,GACPA,GAAQ,EACH4uG,EAAasrU,EAAMl6a,QAEfM,IAATsD,EAIyB,kBAAb8yB,EACVk4E,EAAasrU,EAAMl6a,GAAM4D,KAAKA,EAAM8yB,GACpCk4E,EAAasrU,EAAMl6a,GAAM4D,KAAKA,GAE7BgrG,EAAasrU,EAAMl6a,EAC5B,CAOSqzG,CAAM,KAAMrzG,EAAM4D,EAAM8yB,EACjC,EAgBAiD,EAAOo1E,YAAc,SAAU/uG,GAC7B,OAAO+uG,EAAY,KAAM/uG,EAC3B,EAIA25B,EAAO25E,gBAAkB,SAAUtzG,GACjC,OAAO+uG,EAAY,KAAM/uG,EAC3B,EAgHA25B,EAAO61E,SAAW,SAAmB/+E,GACnC,QAAe,MAALA,IAAaA,EAAE8iF,UAC3B,EAEA55E,EAAO65E,QAAU,SAAkBx6G,EAAGy3B,GACpC,IAAKkJ,EAAO61E,SAASx2G,KAAO2gC,EAAO61E,SAAS/+E,GAC1C,MAAM,IAAItU,UAAU,6BAGtB,GAAInjB,IAAMy3B,EAAG,OAAO,EAKpB,IAHA,IAAIrtB,EAAIpK,EAAEH,OACNgK,EAAI4tB,EAAE53B,OAEDI,EAAI,EAAGulB,EAAMqiB,KAAKuZ,IAAIh3C,EAAGP,GAAI5J,EAAIulB,IAAOvlB,EAC/C,GAAID,EAAEC,KAAOw3B,EAAEx3B,GAAI,CACjBmK,EAAIpK,EAAEC,GACN4J,EAAI4tB,EAAEx3B,GACN,KACF,CAGF,OAAImK,EAAIP,GAAW,EACfA,EAAIO,EAAU,EACX,CACT,EAEAu2B,EAAOs1E,WAAa,SAAqBv4E,GACvC,OAAQ/9B,OAAO+9B,GAAU5e,eACvB,IAAK,MACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO,EACT,QACE,OAAO,EAEb,EAEA6hB,EAAOhf,OAAS,SAAiB84F,EAAM56G,GACrC,IAAK2hB,EAAQi5F,GACX,MAAM,IAAIt3F,UAAU,+CAGtB,GAAoB,IAAhBs3F,EAAK56G,OACP,OAAO8gC,EAAO05E,MAAM,GAGtB,IAAIp6G,EACJ,QAAeqH,IAAXzH,EAEF,IADAA,EAAS,EACJI,EAAI,EAAGA,EAAIw6G,EAAK56G,SAAUI,EAC7BJ,GAAU46G,EAAKx6G,GAAGJ,OAItB,IAAI++B,EAAS+B,EAAOo1E,YAAYl2G,GAC5B66G,EAAM,EACV,IAAKz6G,EAAI,EAAGA,EAAIw6G,EAAK56G,SAAUI,EAAG,CAChC,IAAIilD,EAAMu1D,EAAKx6G,GACf,IAAK0gC,EAAO61E,SAAStxD,GACnB,MAAM,IAAI/hC,UAAU,+CAEtB+hC,EAAIwxD,KAAK93E,EAAQ87E,GACjBA,GAAOx1D,EAAIrlD,MACb,CACA,OAAO++B,CACT,EA6CA+B,EAAO7B,WAAaA,EA0EpB6B,EAAOxhC,UAAUo7G,WAAY,EAQ7B55E,EAAOxhC,UAAUw7G,OAAS,WACxB,IAAIn1F,EAAMvmB,KAAKY,OACf,GAAI2lB,EAAM,IAAM,EACd,MAAM,IAAIqwF,WAAW,6CAEvB,IAAK,IAAI51G,EAAI,EAAGA,EAAIulB,EAAKvlB,GAAK,EAC5B03G,EAAK14G,KAAMgB,EAAGA,EAAI,GAEpB,OAAOhB,IACT,EAEA0hC,EAAOxhC,UAAUy7G,OAAS,WACxB,IAAIp1F,EAAMvmB,KAAKY,OACf,GAAI2lB,EAAM,IAAM,EACd,MAAM,IAAIqwF,WAAW,6CAEvB,IAAK,IAAI51G,EAAI,EAAGA,EAAIulB,EAAKvlB,GAAK,EAC5B03G,EAAK14G,KAAMgB,EAAGA,EAAI,GAClB03G,EAAK14G,KAAMgB,EAAI,EAAGA,EAAI,GAExB,OAAOhB,IACT,EAEA0hC,EAAOxhC,UAAU07G,OAAS,WACxB,IAAIr1F,EAAMvmB,KAAKY,OACf,GAAI2lB,EAAM,IAAM,EACd,MAAM,IAAIqwF,WAAW,6CAEvB,IAAK,IAAI51G,EAAI,EAAGA,EAAIulB,EAAKvlB,GAAK,EAC5B03G,EAAK14G,KAAMgB,EAAGA,EAAI,GAClB03G,EAAK14G,KAAMgB,EAAI,EAAGA,EAAI,GACtB03G,EAAK14G,KAAMgB,EAAI,EAAGA,EAAI,GACtB03G,EAAK14G,KAAMgB,EAAI,EAAGA,EAAI,GAExB,OAAOhB,IACT,EAEA0hC,EAAOxhC,UAAUqB,SAAW,WAC1B,IAAIX,EAAuB,EAAdZ,KAAKY,OAClB,OAAe,IAAXA,EAAqB,GACA,IAArBkkB,UAAUlkB,OAAqBy3G,EAAUr4G,KAAM,EAAGY,GAC/Cu3G,EAAavzF,MAAM5kB,KAAM8kB,UAClC,EAEA4c,EAAOxhC,UAAU47G,OAAS,SAAiBtjF,GACzC,IAAKkJ,EAAO61E,SAAS/+E,GAAI,MAAM,IAAItU,UAAU,6BAC7C,OAAIlkB,OAASw4B,GACsB,IAA5BkJ,EAAO65E,QAAQv7G,KAAMw4B,EAC9B,EAEAkJ,EAAOxhC,UAAU67G,QAAU,WACzB,IAAIp0E,EAAM,GACNqb,EAAMprB,EAAQ,GAKlB,OAJI53B,KAAKY,OAAS,IAChB+mC,EAAM3nC,KAAKuB,SAAS,MAAO,EAAGyhD,GAAKmgE,MAAM,SAASn8F,KAAK,KACnDhnB,KAAKY,OAASoiD,IAAKrb,GAAO,UAEzB,WAAaA,EAAM,GAC5B,EAEAjG,EAAOxhC,UAAUq7G,QAAU,SAAkB36F,EAAQ/Q,EAAOC,EAAKksG,EAAWC,GAC1E,IAAKv6E,EAAO61E,SAAS32F,GACnB,MAAM,IAAIsD,UAAU,6BAgBtB,QAbc7b,IAAVwH,IACFA,EAAQ,QAEExH,IAARyH,IACFA,EAAM8Q,EAASA,EAAOhgB,OAAS,QAEfyH,IAAd2zG,IACFA,EAAY,QAEE3zG,IAAZ4zG,IACFA,EAAUj8G,KAAKY,QAGbiP,EAAQ,GAAKC,EAAM8Q,EAAOhgB,QAAUo7G,EAAY,GAAKC,EAAUj8G,KAAKY,OACtE,MAAM,IAAIg2G,WAAW,sBAGvB,GAAIoF,GAAaC,GAAWpsG,GAASC,EACnC,OAAO,EAET,GAAIksG,GAAaC,EACf,OAAQ,EAEV,GAAIpsG,GAASC,EACX,OAAO,EAQT,GAAI9P,OAAS4gB,EAAQ,OAAO,EAS5B,IAPA,IAAIzV,GAJJ8wG,KAAa,IADbD,KAAe,GAMXpxG,GAPJkF,KAAS,IADTD,KAAW,GASP0W,EAAMqiB,KAAKuZ,IAAIh3C,EAAGP,GAElBsxG,EAAWl8G,KAAKomB,MAAM41F,EAAWC,GACjCE,EAAav7F,EAAOwF,MAAMvW,EAAOC,GAE5B9O,EAAI,EAAGA,EAAIulB,IAAOvlB,EACzB,GAAIk7G,EAASl7G,KAAOm7G,EAAWn7G,GAAI,CACjCmK,EAAI+wG,EAASl7G,GACb4J,EAAIuxG,EAAWn7G,GACf,KACF,CAGF,OAAImK,EAAIP,GAAW,EACfA,EAAIO,EAAU,EACX,CACT,EA4HAu2B,EAAOxhC,UAAUs0B,SAAW,SAAmBq7E,EAAKjwE,EAAYnB,GAC9D,OAAoD,IAA7Cz+B,KAAKoB,QAAQyuG,EAAKjwE,EAAYnB,EACvC,EAEAiD,EAAOxhC,UAAUkB,QAAU,SAAkByuG,EAAKjwE,EAAYnB,GAC5D,OAAOk6E,EAAqB34G,KAAM6vG,EAAKjwE,EAAYnB,GAAU,EAC/D,EAEAiD,EAAOxhC,UAAUwf,YAAc,SAAsBmwF,EAAKjwE,EAAYnB,GACpE,OAAOk6E,EAAqB34G,KAAM6vG,EAAKjwE,EAAYnB,GAAU,EAC/D,EAiDAiD,EAAOxhC,UAAUg3G,MAAQ,SAAgBH,EAAQhxD,EAAQnlD,EAAQ69B,GAE/D,QAAep2B,IAAX09C,EACFtnB,EAAW,OACX79B,EAASZ,KAAKY,OACdmlD,EAAS,OAEJ,QAAe19C,IAAXzH,GAA0C,kBAAXmlD,EACxCtnB,EAAWsnB,EACXnlD,EAASZ,KAAKY,OACdmlD,EAAS,MAEJ,KAAIq2D,SAASr2D,GAWlB,MAAM,IAAI5lD,MACR,2EAXF4lD,GAAkB,EACdq2D,SAASx7G,IACXA,GAAkB,OACDyH,IAAbo2B,IAAwBA,EAAW,UAEvCA,EAAW79B,EACXA,OAASyH,EAOb,CAEA,IAAIsgC,EAAY3oC,KAAKY,OAASmlD,EAG9B,SAFe19C,IAAXzH,GAAwBA,EAAS+nC,KAAW/nC,EAAS+nC,GAEpDouE,EAAOn2G,OAAS,IAAMA,EAAS,GAAKmlD,EAAS,IAAOA,EAAS/lD,KAAKY,OACrE,MAAM,IAAIg2G,WAAW,0CAGlBn4E,IAAUA,EAAW,QAG1B,IADA,IAAIu5E,GAAc,IAEhB,OAAQv5E,GACN,IAAK,MACH,OAAO26E,EAASp5G,KAAM+2G,EAAQhxD,EAAQnlD,GAExC,IAAK,OACL,IAAK,QACH,OAAO24G,EAAUv5G,KAAM+2G,EAAQhxD,EAAQnlD,GAEzC,IAAK,QACH,OAAO64G,EAAWz5G,KAAM+2G,EAAQhxD,EAAQnlD,GAE1C,IAAK,SACL,IAAK,SACH,OAAOg5G,EAAY55G,KAAM+2G,EAAQhxD,EAAQnlD,GAE3C,IAAK,SAEH,OAAOi5G,EAAY75G,KAAM+2G,EAAQhxD,EAAQnlD,GAE3C,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAOk5G,EAAU95G,KAAM+2G,EAAQhxD,EAAQnlD,GAEzC,QACE,GAAIo3G,EAAa,MAAM,IAAI9zF,UAAU,qBAAuBua,GAC5DA,GAAY,GAAKA,GAAU5e,cAC3Bm4F,GAAc,EAGtB,EAEAt2E,EAAOxhC,UAAUm8G,OAAS,WACxB,MAAO,CACLp4G,KAAM,SACN0F,KAAM2Y,MAAMpiB,UAAUkmB,MAAMN,KAAK9lB,KAAK2lB,MAAQ3lB,KAAM,GAExD,EAsFA,IAAI66G,EAAuB,KAoB3B,SAASvC,EAAYryD,EAAKp2C,EAAOC,GAC/B,IAAIwsG,EAAM,GACVxsG,EAAM84B,KAAKuZ,IAAI8D,EAAIrlD,OAAQkP,GAE3B,IAAK,IAAI9O,EAAI6O,EAAO7O,EAAI8O,IAAO9O,EAC7Bs7G,GAAO57G,OAAOS,aAAsB,IAAT8kD,EAAIjlD,IAEjC,OAAOs7G,CACT,CAEA,SAAS/D,EAAatyD,EAAKp2C,EAAOC,GAChC,IAAIwsG,EAAM,GACVxsG,EAAM84B,KAAKuZ,IAAI8D,EAAIrlD,OAAQkP,GAE3B,IAAK,IAAI9O,EAAI6O,EAAO7O,EAAI8O,IAAO9O,EAC7Bs7G,GAAO57G,OAAOS,aAAa8kD,EAAIjlD,IAEjC,OAAOs7G,CACT,CAEA,SAASlE,EAAUnyD,EAAKp2C,EAAOC,GAC7B,IAAIyW,EAAM0/B,EAAIrlD,SAETiP,GAASA,EAAQ,KAAGA,EAAQ,KAC5BC,GAAOA,EAAM,GAAKA,EAAMyW,KAAKzW,EAAMyW,GAGxC,IADA,IAAI+iB,EAAM,GACDtoC,EAAI6O,EAAO7O,EAAI8O,IAAO9O,EAC7BsoC,GAAOJ,EAAM+c,EAAIjlD,IAEnB,OAAOsoC,CACT,CAEA,SAASmvE,EAAcxyD,EAAKp2C,EAAOC,GAGjC,IAFA,IAAIwwB,EAAQ2lB,EAAI7/B,MAAMvW,EAAOC,GACzBsqG,EAAM,GACDp5G,EAAI,EAAGA,EAAIs/B,EAAM1/B,OAAQI,GAAK,EACrCo5G,GAAO15G,OAAOS,aAAam/B,EAAMt/B,GAAoB,IAAfs/B,EAAMt/B,EAAI,IAElD,OAAOo5G,CACT,CAyCA,SAASoC,EAAaz2D,EAAQpmC,EAAK/e,GACjC,GAAKmlD,EAAS,IAAO,GAAKA,EAAS,EAAG,MAAM,IAAI6wD,WAAW,sBAC3D,GAAI7wD,EAASpmC,EAAM/e,EAAQ,MAAM,IAAIg2G,WAAW,wCAClD,CA8JA,SAAS6F,EAAUx2D,EAAKj/C,EAAO++C,EAAQpmC,EAAKqjC,EAAKb,GAC/C,IAAKzgB,EAAO61E,SAAStxD,GAAM,MAAM,IAAI/hC,UAAU,+CAC/C,GAAIld,EAAQg8C,GAAOh8C,EAAQm7C,EAAK,MAAM,IAAIy0D,WAAW,qCACrD,GAAI7wD,EAASpmC,EAAMsmC,EAAIrlD,OAAQ,MAAM,IAAIg2G,WAAW,qBACtD,CAiDA,SAASo2sB,EAAmB/mwB,EAAKj/C,EAAO++C,EAAQ62D,GAC1C51G,EAAQ,IAAGA,EAAQ,MAASA,EAAQ,GACxC,IAAK,IAAIhG,EAAI,EAAGw6B,EAAIoN,KAAKuZ,IAAI8D,EAAIrlD,OAASmlD,EAAQ,GAAI/kD,EAAIw6B,IAAKx6B,EAC7DilD,EAAIF,EAAS/kD,IAAMgG,EAAS,KAAS,GAAK41G,EAAe57G,EAAI,EAAIA,MAClC,GAA5B47G,EAAe57G,EAAI,EAAIA,EAE9B,CA4BA,SAASiszB,EAAmBhnwB,EAAKj/C,EAAO++C,EAAQ62D,GAC1C51G,EAAQ,IAAGA,EAAQ,WAAaA,EAAQ,GAC5C,IAAK,IAAIhG,EAAI,EAAGw6B,EAAIoN,KAAKuZ,IAAI8D,EAAIrlD,OAASmlD,EAAQ,GAAI/kD,EAAIw6B,IAAKx6B,EAC7DilD,EAAIF,EAAS/kD,GAAMgG,IAAuC,GAA5B41G,EAAe57G,EAAI,EAAIA,GAAU,GAEnE,CAiJA,SAAS07G,EAAcz2D,EAAKj/C,EAAO++C,EAAQpmC,EAAKqjC,EAAKb,GACnD,GAAI4D,EAASpmC,EAAMsmC,EAAIrlD,OAAQ,MAAM,IAAIg2G,WAAW,sBACpD,GAAI7wD,EAAS,EAAG,MAAM,IAAI6wD,WAAW,qBACvC,CAEA,SAAS+F,EAAY12D,EAAKj/C,EAAO++C,EAAQ62D,EAAcC,GAKrD,OAJKA,GACHH,EAAaz2D,EAAKj/C,EAAO++C,EAAQ,GAEnCwwD,EAAQW,MAAMjxD,EAAKj/C,EAAO++C,EAAQ62D,EAAc,GAAI,GAC7C72D,EAAS,CAClB,CAUA,SAAS+2D,EAAa72D,EAAKj/C,EAAO++C,EAAQ62D,EAAcC,GAKtD,OAJKA,GACHH,EAAaz2D,EAAKj/C,EAAO++C,EAAQ,GAEnCwwD,EAAQW,MAAMjxD,EAAKj/C,EAAO++C,EAAQ62D,EAAc,GAAI,GAC7C72D,EAAS,CAClB,CAhdArkB,EAAOxhC,UAAUkmB,MAAQ,SAAgBvW,EAAOC,GAC9C,IAoBIitG,EApBAx2F,EAAMvmB,KAAKY,OAqBf,IApBAiP,IAAUA,GAGE,GACVA,GAAS0W,GACG,IAAG1W,EAAQ,GACdA,EAAQ0W,IACjB1W,EAAQ0W,IANVzW,OAAczH,IAARyH,EAAoByW,IAAQzW,GASxB,GACRA,GAAOyW,GACG,IAAGzW,EAAM,GACVA,EAAMyW,IACfzW,EAAMyW,GAGJzW,EAAMD,IAAOC,EAAMD,GAGnB6xB,EAAOq5E,qBACTgC,EAAS/8G,KAAK2rC,SAAS97B,EAAOC,IACvB4oB,UAAYgJ,EAAOxhC,cACrB,CACL,IAAIgtzB,EAAWp9yB,EAAMD,EACrBktG,EAAS,IAAIr7E,EAAOwrxB,OAAU7kzB,GAC9B,IAAK,IAAIrH,EAAI,EAAGA,EAAIkszB,IAAYlszB,EAC9B+7G,EAAO/7G,GAAKhB,KAAKgB,EAAI6O,EAEzB,CAEA,OAAOktG,CACT,EAUAr7E,EAAOxhC,UAAU88G,WAAa,SAAqBj3D,EAAQlmB,EAAYg9E,GACrE92D,GAAkB,EAClBlmB,GAA0B,EACrBg9E,GAAUL,EAAYz2D,EAAQlmB,EAAY7/B,KAAKY,QAKpD,IAHA,IAAIivG,EAAM7vG,KAAK+lD,GACXk3D,EAAM,EACNj8G,EAAI,IACCA,EAAI6+B,IAAeo9E,GAAO,MACjCpN,GAAO7vG,KAAK+lD,EAAS/kD,GAAKi8G,EAG5B,OAAOpN,CACT,EAEAnuE,EAAOxhC,UAAUg9G,WAAa,SAAqBn3D,EAAQlmB,EAAYg9E,GACrE92D,GAAkB,EAClBlmB,GAA0B,EACrBg9E,GACHL,EAAYz2D,EAAQlmB,EAAY7/B,KAAKY,QAKvC,IAFA,IAAIivG,EAAM7vG,KAAK+lD,IAAWlmB,GACtBo9E,EAAM,EACHp9E,EAAa,IAAMo9E,GAAO,MAC/BpN,GAAO7vG,KAAK+lD,IAAWlmB,GAAco9E,EAGvC,OAAOpN,CACT,EAEAnuE,EAAOxhC,UAAUi9G,UAAY,SAAoBp3D,EAAQ82D,GAEvD,OADKA,GAAUL,EAAYz2D,EAAQ,EAAG/lD,KAAKY,QACpCZ,KAAK+lD,EACd,EAEArkB,EAAOxhC,UAAUk9G,aAAe,SAAuBr3D,EAAQ82D,GAE7D,OADKA,GAAUL,EAAYz2D,EAAQ,EAAG/lD,KAAKY,QACpCZ,KAAK+lD,GAAW/lD,KAAK+lD,EAAS,IAAM,CAC7C,EAEArkB,EAAOxhC,UAAU+4G,aAAe,SAAuBlzD,EAAQ82D,GAE7D,OADKA,GAAUL,EAAYz2D,EAAQ,EAAG/lD,KAAKY,QACnCZ,KAAK+lD,IAAW,EAAK/lD,KAAK+lD,EAAS,EAC7C,EAEArkB,EAAOxhC,UAAUm9G,aAAe,SAAuBt3D,EAAQ82D,GAG7D,OAFKA,GAAUL,EAAYz2D,EAAQ,EAAG/lD,KAAKY,SAElCZ,KAAK+lD,GACT/lD,KAAK+lD,EAAS,IAAM,EACpB/lD,KAAK+lD,EAAS,IAAM,IACD,SAAnB/lD,KAAK+lD,EAAS,EACrB,EAEArkB,EAAOxhC,UAAUo9G,aAAe,SAAuBv3D,EAAQ82D,GAG7D,OAFKA,GAAUL,EAAYz2D,EAAQ,EAAG/lD,KAAKY,QAEpB,SAAfZ,KAAK+lD,IACT/lD,KAAK+lD,EAAS,IAAM,GACrB/lD,KAAK+lD,EAAS,IAAM,EACrB/lD,KAAK+lD,EAAS,GAClB,EAEArkB,EAAOxhC,UAAUq9G,UAAY,SAAoBx3D,EAAQlmB,EAAYg9E,GACnE92D,GAAkB,EAClBlmB,GAA0B,EACrBg9E,GAAUL,EAAYz2D,EAAQlmB,EAAY7/B,KAAKY,QAKpD,IAHA,IAAIivG,EAAM7vG,KAAK+lD,GACXk3D,EAAM,EACNj8G,EAAI,IACCA,EAAI6+B,IAAeo9E,GAAO,MACjCpN,GAAO7vG,KAAK+lD,EAAS/kD,GAAKi8G,EAM5B,OAFIpN,IAFJoN,GAAO,OAESpN,GAAOjnE,KAAKma,IAAI,EAAG,EAAIljB,IAEhCgwE,CACT,EAEAnuE,EAAOxhC,UAAUs9G,UAAY,SAAoBz3D,EAAQlmB,EAAYg9E,GACnE92D,GAAkB,EAClBlmB,GAA0B,EACrBg9E,GAAUL,EAAYz2D,EAAQlmB,EAAY7/B,KAAKY,QAKpD,IAHA,IAAII,EAAI6+B,EACJo9E,EAAM,EACNpN,EAAM7vG,KAAK+lD,IAAW/kD,GACnBA,EAAI,IAAMi8G,GAAO,MACtBpN,GAAO7vG,KAAK+lD,IAAW/kD,GAAKi8G,EAM9B,OAFIpN,IAFJoN,GAAO,OAESpN,GAAOjnE,KAAKma,IAAI,EAAG,EAAIljB,IAEhCgwE,CACT,EAEAnuE,EAAOxhC,UAAUu9G,SAAW,SAAmB13D,EAAQ82D,GAErD,OADKA,GAAUL,EAAYz2D,EAAQ,EAAG/lD,KAAKY,QACtB,IAAfZ,KAAK+lD,IAC0B,GAA5B,IAAO/lD,KAAK+lD,GAAU,GADK/lD,KAAK+lD,EAE3C,EAEArkB,EAAOxhC,UAAUw9G,YAAc,SAAsB33D,EAAQ82D,GACtDA,GAAUL,EAAYz2D,EAAQ,EAAG/lD,KAAKY,QAC3C,IAAIivG,EAAM7vG,KAAK+lD,GAAW/lD,KAAK+lD,EAAS,IAAM,EAC9C,OAAc,MAAN8pD,EAAsB,WAANA,EAAmBA,CAC7C,EAEAnuE,EAAOxhC,UAAUy9G,YAAc,SAAsB53D,EAAQ82D,GACtDA,GAAUL,EAAYz2D,EAAQ,EAAG/lD,KAAKY,QAC3C,IAAIivG,EAAM7vG,KAAK+lD,EAAS,GAAM/lD,KAAK+lD,IAAW,EAC9C,OAAc,MAAN8pD,EAAsB,WAANA,EAAmBA,CAC7C,EAEAnuE,EAAOxhC,UAAU09G,YAAc,SAAsB73D,EAAQ82D,GAG3D,OAFKA,GAAUL,EAAYz2D,EAAQ,EAAG/lD,KAAKY,QAEnCZ,KAAK+lD,GACV/lD,KAAK+lD,EAAS,IAAM,EACpB/lD,KAAK+lD,EAAS,IAAM,GACpB/lD,KAAK+lD,EAAS,IAAM,EACzB,EAEArkB,EAAOxhC,UAAU29G,YAAc,SAAsB93D,EAAQ82D,GAG3D,OAFKA,GAAUL,EAAYz2D,EAAQ,EAAG/lD,KAAKY,QAEnCZ,KAAK+lD,IAAW,GACrB/lD,KAAK+lD,EAAS,IAAM,GACpB/lD,KAAK+lD,EAAS,IAAM,EACpB/lD,KAAK+lD,EAAS,EACnB,EAEArkB,EAAOxhC,UAAU49G,YAAc,SAAsB/3D,EAAQ82D,GAE3D,OADKA,GAAUL,EAAYz2D,EAAQ,EAAG/lD,KAAKY,QACpC21G,EAAQ5sD,KAAK3pD,KAAM+lD,GAAQ,EAAM,GAAI,EAC9C,EAEArkB,EAAOxhC,UAAU69G,YAAc,SAAsBh4D,EAAQ82D,GAE3D,OADKA,GAAUL,EAAYz2D,EAAQ,EAAG/lD,KAAKY,QACpC21G,EAAQ5sD,KAAK3pD,KAAM+lD,GAAQ,EAAO,GAAI,EAC/C,EAEArkB,EAAOxhC,UAAU89G,aAAe,SAAuBj4D,EAAQ82D,GAE7D,OADKA,GAAUL,EAAYz2D,EAAQ,EAAG/lD,KAAKY,QACpC21G,EAAQ5sD,KAAK3pD,KAAM+lD,GAAQ,EAAM,GAAI,EAC9C,EAEArkB,EAAOxhC,UAAU+9G,aAAe,SAAuBl4D,EAAQ82D,GAE7D,OADKA,GAAUL,EAAYz2D,EAAQ,EAAG/lD,KAAKY,QACpC21G,EAAQ5sD,KAAK3pD,KAAM+lD,GAAQ,EAAO,GAAI,EAC/C,EAQArkB,EAAOxhC,UAAUg+G,YAAc,SAAsBl3G,EAAO++C,EAAQlmB,EAAYg9E,IAC9E71G,GAASA,EACT++C,GAAkB,EAClBlmB,GAA0B,EACrBg9E,IAEHJ,EAASz8G,KAAMgH,EAAO++C,EAAQlmB,EADf+I,KAAKma,IAAI,EAAG,EAAIljB,GAAc,EACO,GAGtD,IAAIo9E,EAAM,EACNj8G,EAAI,EAER,IADAhB,KAAK+lD,GAAkB,IAAR/+C,IACNhG,EAAI6+B,IAAeo9E,GAAO,MACjCj9G,KAAK+lD,EAAS/kD,GAAMgG,EAAQi2G,EAAO,IAGrC,OAAOl3D,EAASlmB,CAClB,EAEA6B,EAAOxhC,UAAUi+G,YAAc,SAAsBn3G,EAAO++C,EAAQlmB,EAAYg9E,IAC9E71G,GAASA,EACT++C,GAAkB,EAClBlmB,GAA0B,EACrBg9E,IAEHJ,EAASz8G,KAAMgH,EAAO++C,EAAQlmB,EADf+I,KAAKma,IAAI,EAAG,EAAIljB,GAAc,EACO,GAGtD,IAAI7+B,EAAI6+B,EAAa,EACjBo9E,EAAM,EAEV,IADAj9G,KAAK+lD,EAAS/kD,GAAa,IAARgG,IACVhG,GAAK,IAAMi8G,GAAO,MACzBj9G,KAAK+lD,EAAS/kD,GAAMgG,EAAQi2G,EAAO,IAGrC,OAAOl3D,EAASlmB,CAClB,EAEA6B,EAAOxhC,UAAUk+G,WAAa,SAAqBp3G,EAAO++C,EAAQ82D,GAMhE,OALA71G,GAASA,EACT++C,GAAkB,EACb82D,GAAUJ,EAASz8G,KAAMgH,EAAO++C,EAAQ,EAAG,IAAM,GACjDrkB,EAAOq5E,sBAAqB/zG,EAAQ4hC,KAAK8Y,MAAM16C,IACpDhH,KAAK+lD,GAAmB,IAAR/+C,EACT++C,EAAS,CAClB,EAUArkB,EAAOxhC,UAAUm+G,cAAgB,SAAwBr3G,EAAO++C,EAAQ82D,GAUtE,OATA71G,GAASA,EACT++C,GAAkB,EACb82D,GAAUJ,EAASz8G,KAAMgH,EAAO++C,EAAQ,EAAG,MAAQ,GACpDrkB,EAAOq5E,qBACT/6G,KAAK+lD,GAAmB,IAAR/+C,EAChBhH,KAAK+lD,EAAS,GAAM/+C,IAAU,GAE9BgmzB,EAAkBhtzB,KAAMgH,EAAO++C,GAAQ,GAElCA,EAAS,CAClB,EAEArkB,EAAOxhC,UAAUo+G,cAAgB,SAAwBt3G,EAAO++C,EAAQ82D,GAUtE,OATA71G,GAASA,EACT++C,GAAkB,EACb82D,GAAUJ,EAASz8G,KAAMgH,EAAO++C,EAAQ,EAAG,MAAQ,GACpDrkB,EAAOq5E,qBACT/6G,KAAK+lD,GAAW/+C,IAAU,EAC1BhH,KAAK+lD,EAAS,GAAc,IAAR/+C,GAEpBgmzB,EAAkBhtzB,KAAMgH,EAAO++C,GAAQ,GAElCA,EAAS,CAClB,EASArkB,EAAOxhC,UAAUq+G,cAAgB,SAAwBv3G,EAAO++C,EAAQ82D,GAYtE,OAXA71G,GAASA,EACT++C,GAAkB,EACb82D,GAAUJ,EAASz8G,KAAMgH,EAAO++C,EAAQ,EAAG,WAAY,GACxDrkB,EAAOq5E,qBACT/6G,KAAK+lD,EAAS,GAAM/+C,IAAU,GAC9BhH,KAAK+lD,EAAS,GAAM/+C,IAAU,GAC9BhH,KAAK+lD,EAAS,GAAM/+C,IAAU,EAC9BhH,KAAK+lD,GAAmB,IAAR/+C,GAEhBimzB,EAAkBjtzB,KAAMgH,EAAO++C,GAAQ,GAElCA,EAAS,CAClB,EAEArkB,EAAOxhC,UAAUs+G,cAAgB,SAAwBx3G,EAAO++C,EAAQ82D,GAYtE,OAXA71G,GAASA,EACT++C,GAAkB,EACb82D,GAAUJ,EAASz8G,KAAMgH,EAAO++C,EAAQ,EAAG,WAAY,GACxDrkB,EAAOq5E,qBACT/6G,KAAK+lD,GAAW/+C,IAAU,GAC1BhH,KAAK+lD,EAAS,GAAM/+C,IAAU,GAC9BhH,KAAK+lD,EAAS,GAAM/+C,IAAU,EAC9BhH,KAAK+lD,EAAS,GAAc,IAAR/+C,GAEpBimzB,EAAkBjtzB,KAAMgH,EAAO++C,GAAQ,GAElCA,EAAS,CAClB,EAEArkB,EAAOxhC,UAAUu+G,WAAa,SAAqBz3G,EAAO++C,EAAQlmB,EAAYg9E,GAG5E,GAFA71G,GAASA,EACT++C,GAAkB,GACb82D,EAAU,CACb,IAAI6B,EAAQ91E,KAAKma,IAAI,EAAG,EAAIljB,EAAa,GAEzC48E,EAASz8G,KAAMgH,EAAO++C,EAAQlmB,EAAY6+E,EAAQ,GAAIA,EACxD,CAEA,IAAI19G,EAAI,EACJi8G,EAAM,EACN0B,EAAM,EAEV,IADA3+G,KAAK+lD,GAAkB,IAAR/+C,IACNhG,EAAI6+B,IAAeo9E,GAAO,MAC7Bj2G,EAAQ,GAAa,IAAR23G,GAAsC,IAAzB3+G,KAAK+lD,EAAS/kD,EAAI,KAC9C29G,EAAM,GAER3+G,KAAK+lD,EAAS/kD,IAAOgG,EAAQi2G,GAAQ,GAAK0B,EAAM,IAGlD,OAAO54D,EAASlmB,CAClB,EAEA6B,EAAOxhC,UAAU0+G,WAAa,SAAqB53G,EAAO++C,EAAQlmB,EAAYg9E,GAG5E,GAFA71G,GAASA,EACT++C,GAAkB,GACb82D,EAAU,CACb,IAAI6B,EAAQ91E,KAAKma,IAAI,EAAG,EAAIljB,EAAa,GAEzC48E,EAASz8G,KAAMgH,EAAO++C,EAAQlmB,EAAY6+E,EAAQ,GAAIA,EACxD,CAEA,IAAI19G,EAAI6+B,EAAa,EACjBo9E,EAAM,EACN0B,EAAM,EAEV,IADA3+G,KAAK+lD,EAAS/kD,GAAa,IAARgG,IACVhG,GAAK,IAAMi8G,GAAO,MACrBj2G,EAAQ,GAAa,IAAR23G,GAAsC,IAAzB3+G,KAAK+lD,EAAS/kD,EAAI,KAC9C29G,EAAM,GAER3+G,KAAK+lD,EAAS/kD,IAAOgG,EAAQi2G,GAAQ,GAAK0B,EAAM,IAGlD,OAAO54D,EAASlmB,CAClB,EAEA6B,EAAOxhC,UAAU2+G,UAAY,SAAoB73G,EAAO++C,EAAQ82D,GAO9D,OANA71G,GAASA,EACT++C,GAAkB,EACb82D,GAAUJ,EAASz8G,KAAMgH,EAAO++C,EAAQ,EAAG,KAAO,KAClDrkB,EAAOq5E,sBAAqB/zG,EAAQ4hC,KAAK8Y,MAAM16C,IAChDA,EAAQ,IAAGA,EAAQ,IAAOA,EAAQ,GACtChH,KAAK+lD,GAAmB,IAAR/+C,EACT++C,EAAS,CAClB,EAEArkB,EAAOxhC,UAAU4+G,aAAe,SAAuB93G,EAAO++C,EAAQ82D,GAUpE,OATA71G,GAASA,EACT++C,GAAkB,EACb82D,GAAUJ,EAASz8G,KAAMgH,EAAO++C,EAAQ,EAAG,OAAS,OACrDrkB,EAAOq5E,qBACT/6G,KAAK+lD,GAAmB,IAAR/+C,EAChBhH,KAAK+lD,EAAS,GAAM/+C,IAAU,GAE9BgmzB,EAAkBhtzB,KAAMgH,EAAO++C,GAAQ,GAElCA,EAAS,CAClB,EAEArkB,EAAOxhC,UAAU6+G,aAAe,SAAuB/3G,EAAO++C,EAAQ82D,GAUpE,OATA71G,GAASA,EACT++C,GAAkB,EACb82D,GAAUJ,EAASz8G,KAAMgH,EAAO++C,EAAQ,EAAG,OAAS,OACrDrkB,EAAOq5E,qBACT/6G,KAAK+lD,GAAW/+C,IAAU,EAC1BhH,KAAK+lD,EAAS,GAAc,IAAR/+C,GAEpBgmzB,EAAkBhtzB,KAAMgH,EAAO++C,GAAQ,GAElCA,EAAS,CAClB,EAEArkB,EAAOxhC,UAAU8+G,aAAe,SAAuBh4G,EAAO++C,EAAQ82D,GAYpE,OAXA71G,GAASA,EACT++C,GAAkB,EACb82D,GAAUJ,EAASz8G,KAAMgH,EAAO++C,EAAQ,EAAG,YAAa,YACzDrkB,EAAOq5E,qBACT/6G,KAAK+lD,GAAmB,IAAR/+C,EAChBhH,KAAK+lD,EAAS,GAAM/+C,IAAU,EAC9BhH,KAAK+lD,EAAS,GAAM/+C,IAAU,GAC9BhH,KAAK+lD,EAAS,GAAM/+C,IAAU,IAE9BimzB,EAAkBjtzB,KAAMgH,EAAO++C,GAAQ,GAElCA,EAAS,CAClB,EAEArkB,EAAOxhC,UAAU++G,aAAe,SAAuBj4G,EAAO++C,EAAQ82D,GAapE,OAZA71G,GAASA,EACT++C,GAAkB,EACb82D,GAAUJ,EAASz8G,KAAMgH,EAAO++C,EAAQ,EAAG,YAAa,YACzD/+C,EAAQ,IAAGA,EAAQ,WAAaA,EAAQ,GACxC06B,EAAOq5E,qBACT/6G,KAAK+lD,GAAW/+C,IAAU,GAC1BhH,KAAK+lD,EAAS,GAAM/+C,IAAU,GAC9BhH,KAAK+lD,EAAS,GAAM/+C,IAAU,EAC9BhH,KAAK+lD,EAAS,GAAc,IAAR/+C,GAEpBimzB,EAAkBjtzB,KAAMgH,EAAO++C,GAAQ,GAElCA,EAAS,CAClB,EAeArkB,EAAOxhC,UAAUg/G,aAAe,SAAuBl4G,EAAO++C,EAAQ82D,GACpE,OAAOF,EAAW38G,KAAMgH,EAAO++C,GAAQ,EAAM82D,EAC/C,EAEAn7E,EAAOxhC,UAAUi/G,aAAe,SAAuBn4G,EAAO++C,EAAQ82D,GACpE,OAAOF,EAAW38G,KAAMgH,EAAO++C,GAAQ,EAAO82D,EAChD,EAUAn7E,EAAOxhC,UAAUk/G,cAAgB,SAAwBp4G,EAAO++C,EAAQ82D,GACtE,OAAOC,EAAY98G,KAAMgH,EAAO++C,GAAQ,EAAM82D,EAChD,EAEAn7E,EAAOxhC,UAAUm/G,cAAgB,SAAwBr4G,EAAO++C,EAAQ82D,GACtE,OAAOC,EAAY98G,KAAMgH,EAAO++C,GAAQ,EAAO82D,EACjD,EAGAn7E,EAAOxhC,UAAUu3G,KAAO,SAAe72F,EAAQ0+F,EAAazvG,EAAOC,GAQjE,GAPKD,IAAOA,EAAQ,GACfC,GAAe,IAARA,IAAWA,EAAM9P,KAAKY,QAC9B0+G,GAAe1+F,EAAOhgB,SAAQ0+G,EAAc1+F,EAAOhgB,QAClD0+G,IAAaA,EAAc,GAC5BxvG,EAAM,GAAKA,EAAMD,IAAOC,EAAMD,GAG9BC,IAAQD,EAAO,OAAO,EAC1B,GAAsB,IAAlB+Q,EAAOhgB,QAAgC,IAAhBZ,KAAKY,OAAc,OAAO,EAGrD,GAAI0+G,EAAc,EAChB,MAAM,IAAI1I,WAAW,6BAEvB,GAAI/mG,EAAQ,GAAKA,GAAS7P,KAAKY,OAAQ,MAAM,IAAIg2G,WAAW,6BAC5D,GAAI9mG,EAAM,EAAG,MAAM,IAAI8mG,WAAW,2BAG9B9mG,EAAM9P,KAAKY,SAAQkP,EAAM9P,KAAKY,QAC9BggB,EAAOhgB,OAAS0+G,EAAcxvG,EAAMD,IACtCC,EAAM8Q,EAAOhgB,OAAS0+G,EAAczvG,GAGtC,IACI7O,EADAulB,EAAMzW,EAAMD,EAGhB,GAAI7P,OAAS4gB,GAAU/Q,EAAQyvG,GAAeA,EAAcxvG,EAE1D,IAAK9O,EAAIulB,EAAM,EAAGvlB,GAAK,IAAKA,EAC1B4f,EAAO5f,EAAIs+G,GAAet/G,KAAKgB,EAAI6O,QAEhC,GAAI0W,EAAM,MAASmb,EAAOq5E,oBAE/B,IAAK/5G,EAAI,EAAGA,EAAIulB,IAAOvlB,EACrB4f,EAAO5f,EAAIs+G,GAAet/G,KAAKgB,EAAI6O,QAGrCiuB,WAAW59B,UAAU88B,IAAIlX,KACvBlF,EACA5gB,KAAK2rC,SAAS97B,EAAOA,EAAQ0W,GAC7B+4F,GAIJ,OAAO/4F,CACT,EAMAmb,EAAOxhC,UAAUyL,KAAO,SAAekkG,EAAKhgG,EAAOC,EAAK2uB,GAEtD,GAAmB,kBAARoxE,EAAkB,CAS3B,GARqB,kBAAVhgG,GACT4uB,EAAW5uB,EACXA,EAAQ,EACRC,EAAM9P,KAAKY,QACa,kBAARkP,IAChB2uB,EAAW3uB,EACXA,EAAM9P,KAAKY,QAEM,IAAfivG,EAAIjvG,OAAc,CACpB,IAAIqmB,EAAO4oF,EAAIvuG,WAAW,GACtB2lB,EAAO,MACT4oF,EAAM5oF,EAEV,CACA,QAAiB5e,IAAbo2B,GAA8C,kBAAbA,EACnC,MAAM,IAAIva,UAAU,6BAEtB,GAAwB,kBAAbua,IAA0BiD,EAAOs1E,WAAWv4E,GACrD,MAAM,IAAIva,UAAU,qBAAuBua,EAE/C,KAA0B,kBAARoxE,IAChBA,GAAY,KAId,GAAIhgG,EAAQ,GAAK7P,KAAKY,OAASiP,GAAS7P,KAAKY,OAASkP,EACpD,MAAM,IAAI8mG,WAAW,sBAGvB,GAAI9mG,GAAOD,EACT,OAAO7P,KAQT,IAAIgB,EACJ,GANA6O,KAAkB,EAClBC,OAAczH,IAARyH,EAAoB9P,KAAKY,OAASkP,IAAQ,EAE3C+/F,IAAKA,EAAM,GAGG,kBAARA,EACT,IAAK7uG,EAAI6O,EAAO7O,EAAI8O,IAAO9O,EACzBhB,KAAKgB,GAAK6uG,MAEP,CACL,IAAIvvE,EAAQoB,EAAO61E,SAAS1H,GACxBA,EACAoI,EAAY,IAAIv2E,EAAOmuE,EAAKpxE,GAAUl9B,YACtCglB,EAAM+Z,EAAM1/B,OAChB,IAAKI,EAAI,EAAGA,EAAI8O,EAAMD,IAAS7O,EAC7BhB,KAAKgB,EAAI6O,GAASywB,EAAMt/B,EAAIulB,EAEhC,CAEA,OAAOvmB,IACT,EAKA,IAAIw/G,EAAoB,qBAmBxB,SAASt2E,EAAOroC,GACd,OAAIA,EAAI,GAAW,IAAMA,EAAEU,SAAS,IAC7BV,EAAEU,SAAS,GACpB,CAEA,SAAS02G,EAAalB,EAAQgD,GAE5B,IAAIW,EADJX,EAAQA,GAAS5vF,IAMjB,IAJA,IAAIvpB,EAASm2G,EAAOn2G,OAChB6+G,EAAgB,KAChBn/E,EAAQ,GAEHt/B,EAAI,EAAGA,EAAIJ,IAAUI,EAAG,CAI/B,IAHA05G,EAAY3D,EAAOz1G,WAAWN,IAGd,OAAU05G,EAAY,MAAQ,CAE5C,IAAK+E,EAAe,CAElB,GAAI/E,EAAY,MAAQ,EAEjBX,GAAS,IAAM,GAAGz5E,EAAM1e,KAAK,IAAM,IAAM,KAC9C,QACF,CAAO,GAAI5gB,EAAI,IAAMJ,EAAQ,EAEtBm5G,GAAS,IAAM,GAAGz5E,EAAM1e,KAAK,IAAM,IAAM,KAC9C,QACF,CAGA69F,EAAgB/E,EAEhB,QACF,CAGA,GAAIA,EAAY,MAAQ,EACjBX,GAAS,IAAM,GAAGz5E,EAAM1e,KAAK,IAAM,IAAM,KAC9C69F,EAAgB/E,EAChB,QACF,CAGAA,EAAkE,OAArD+E,EAAgB,OAAU,GAAK/E,EAAY,MAC1D,MAAW+E,IAEJ1F,GAAS,IAAM,GAAGz5E,EAAM1e,KAAK,IAAM,IAAM,KAMhD,GAHA69F,EAAgB,KAGZ/E,EAAY,IAAM,CACpB,IAAKX,GAAS,GAAK,EAAG,MACtBz5E,EAAM1e,KAAK84F,EACb,MAAO,GAAIA,EAAY,KAAO,CAC5B,IAAKX,GAAS,GAAK,EAAG,MACtBz5E,EAAM1e,KACJ84F,GAAa,EAAM,IACP,GAAZA,EAAmB,IAEvB,MAAO,GAAIA,EAAY,MAAS,CAC9B,IAAKX,GAAS,GAAK,EAAG,MACtBz5E,EAAM1e,KACJ84F,GAAa,GAAM,IACnBA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,IAEvB,KAAO,MAAIA,EAAY,SASrB,MAAM,IAAIv6G,MAAM,sBARhB,IAAK45G,GAAS,GAAK,EAAG,MACtBz5E,EAAM1e,KACJ84F,GAAa,GAAO,IACpBA,GAAa,GAAM,GAAO,IAC1BA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,IAIvB,CACF,CAEA,OAAOp6E,CACT,CA2BA,SAAS43E,EAAevwE,GACtB,OAAO2uE,EAAOoJ,YAhIhB,SAAsB/3E,GAIpB,IAFAA,EAUF,SAAqBA,GACnB,OAAIA,EAAI2I,KAAa3I,EAAI2I,OAClB3I,EAAIhnC,QAAQ,aAAc,GACnC,CAbQwszB,CAAWxlxB,GAAKhnC,QAAQ6+G,EAAmB,KAEzC5+G,OAAS,EAAG,MAAO,GAE3B,KAAO+mC,EAAI/mC,OAAS,IAAM,GACxB+mC,GAAY,IAEd,OAAOA,CACT,CAsH4Bg4E,CAAYh4E,GACxC,CAEA,SAAS6xE,EAAYlqG,EAAKswG,EAAK75D,EAAQnlD,GACrC,IAAK,IAAII,EAAI,EAAGA,EAAIJ,KACbI,EAAI+kD,GAAU65D,EAAIh/G,QAAYI,GAAKsO,EAAI1O,UADhBI,EAE5B4+G,EAAI5+G,EAAI+kD,GAAUz2C,EAAItO,GAExB,OAAOA,CACT,uBCvvDA42B,EAAQ+xB,KAAO,SAAUhqB,EAAQomB,EAAQqnwB,EAAMC,EAAMC,GACnD,IAAIvtzB,EAAGi7B,EACHuyxB,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBE,GAAS,EACT1szB,EAAIoszB,EAAQE,EAAS,EAAK,EAC1B/0xB,EAAI60xB,GAAQ,EAAI,EAChBl0xB,EAAIyG,EAAOomB,EAAS/kD,GAOxB,IALAA,GAAKu3B,EAELx4B,EAAIm5B,GAAM,IAAOw0xB,GAAU,EAC3Bx0xB,KAAQw0xB,EACRA,GAASH,EACFG,EAAQ,EAAG3tzB,EAAS,IAAJA,EAAW4/B,EAAOomB,EAAS/kD,GAAIA,GAAKu3B,EAAGm1xB,GAAS,GAKvE,IAHA1yxB,EAAIj7B,GAAM,IAAO2tzB,GAAU,EAC3B3tzB,KAAQ2tzB,EACRA,GAASL,EACFK,EAAQ,EAAG1yxB,EAAS,IAAJA,EAAW2E,EAAOomB,EAAS/kD,GAAIA,GAAKu3B,EAAGm1xB,GAAS,GAEvE,GAAU,IAAN3tzB,EACFA,EAAI,EAAI0tzB,MACH,IAAI1tzB,IAAMytzB,EACf,OAAOxyxB,EAAIwuf,IAAsBr/f,KAAd+O,GAAK,EAAI,GAE5B8B,GAAQ4N,KAAKma,IAAI,EAAGsqwB,GACpBttzB,GAAQ0tzB,CACV,CACA,OAAQv0xB,GAAK,EAAI,GAAK8B,EAAI4N,KAAKma,IAAI,EAAGhjD,EAAIstzB,EAC5C,EAEAz1xB,EAAQs/E,MAAQ,SAAUv3E,EAAQ34B,EAAO++C,EAAQqnwB,EAAMC,EAAMC,GAC3D,IAAIvtzB,EAAGi7B,EAAG/5B,EACNsszB,EAAiB,EAATD,EAAcD,EAAO,EAC7BG,GAAQ,GAAKD,GAAQ,EACrBE,EAAQD,GAAQ,EAChBG,EAAe,KAATN,EAAczkxB,KAAKma,IAAI,GAAI,IAAMna,KAAKma,IAAI,GAAI,IAAM,EAC1D/hD,EAAIoszB,EAAO,EAAKE,EAAS,EACzB/0xB,EAAI60xB,EAAO,GAAK,EAChBl0xB,EAAIlyB,EAAQ,GAAgB,IAAVA,GAAe,EAAIA,EAAQ,EAAK,EAAI,EAmC1D,IAjCAA,EAAQ4hC,KAAKC,IAAI7hC,GAEb2tB,MAAM3tB,IAAUA,IAAUmjB,KAC5B6Q,EAAIrG,MAAM3tB,GAAS,EAAI,EACvBjH,EAAIytzB,IAEJztzB,EAAI6oC,KAAK8Y,MAAM9Y,KAAK9iC,IAAIkB,GAAS4hC,KAAKglxB,KAClC5mzB,GAAS/F,EAAI2nC,KAAKma,IAAI,GAAIhjD,IAAM,IAClCA,IACAkB,GAAK,IAGL+F,GADEjH,EAAI0tzB,GAAS,EACNE,EAAK1szB,EAEL0szB,EAAK/kxB,KAAKma,IAAI,EAAG,EAAI0qwB,IAEpBxszB,GAAK,IACflB,IACAkB,GAAK,GAGHlB,EAAI0tzB,GAASD,GACfxyxB,EAAI,EACJj7B,EAAIytzB,GACKztzB,EAAI0tzB,GAAS,GACtBzyxB,GAAMh0B,EAAQ/F,EAAK,GAAK2nC,KAAKma,IAAI,EAAGsqwB,GACpCttzB,GAAQ0tzB,IAERzyxB,EAAIh0B,EAAQ4hC,KAAKma,IAAI,EAAG0qwB,EAAQ,GAAK7kxB,KAAKma,IAAI,EAAGsqwB,GACjDttzB,EAAI,IAIDstzB,GAAQ,EAAG1txB,EAAOomB,EAAS/kD,GAAS,IAAJg6B,EAAUh6B,GAAKu3B,EAAGyC,GAAK,IAAKqyxB,GAAQ,GAI3E,IAFAttzB,EAAKA,GAAKstzB,EAAQryxB,EAClBuyxB,GAAQF,EACDE,EAAO,EAAG5txB,EAAOomB,EAAS/kD,GAAS,IAAJjB,EAAUiB,GAAKu3B,EAAGx4B,GAAK,IAAKwtzB,GAAQ,GAE1E5txB,EAAOomB,EAAS/kD,EAAIu3B,IAAU,IAAJW,CAC5B,qBC/DA,SAASo6E,IACPtzG,KAAKq8xB,QAAUr8xB,KAAKq8xB,SAAW,CAAC,EAChCr8xB,KAAK6tzB,cAAgB7tzB,KAAK6tzB,oBAAiBxlzB,CAC7C,CAuQA,SAASq7M,EAAW3nK,GAClB,MAAsB,oBAARA,CAChB,CAMA,SAASx7B,EAASw7B,GAChB,MAAsB,kBAARA,GAA4B,OAARA,CACpC,CAEA,SAAS+xwB,EAAY/xwB,GACnB,YAAe,IAARA,CACT,CApRAkpK,EAAOrtL,QAAU07E,EAGjBA,EAAaA,aAAeA,EAE5BA,EAAapzG,UAAUm8xB,aAAUh0xB,EACjCirG,EAAapzG,UAAU2tzB,mBAAgBxlzB,EAIvCirG,EAAay6sB,oBAAsB,GAInCz6sB,EAAapzG,UAAU8tzB,gBAAkB,SAASntzB,GAChD,GA4PsB,kBA5PRA,GAAMA,EAAI,GAAK8zB,MAAM9zB,GACjC,MAAMqjB,UAAU,+BAElB,OADAlkB,KAAK6tzB,cAAgBhtzB,EACdb,IACT,EAEAszG,EAAapzG,UAAUm2G,KAAO,SAASpyG,GACrC,IAAIgqzB,EAAI38oB,EAAS/qJ,EAAKkC,EAAMznB,EAAG6rN,EAM/B,GAJK7sN,KAAKq8xB,UACRr8xB,KAAKq8xB,QAAU,CAAC,GAGL,UAATp4xB,KACGjE,KAAKq8xB,QAAQ93xB,OACbgc,EAASvgB,KAAKq8xB,QAAQ93xB,SAAWvE,KAAKq8xB,QAAQ93xB,MAAM3D,QAAS,CAEhE,IADAqtzB,EAAKnpyB,UAAU,cACG3kB,MAChB,MAAM8tzB,EAGN,IAAI5pzB,EAAM,IAAIlE,MAAM,yCAA2C8tzB,EAAK,KAEpE,MADA5pzB,EAAI8C,QAAU8mzB,EACR5pzB,CAEV,CAKF,GAAIypzB,EAFJx8oB,EAAUtxK,KAAKq8xB,QAAQp4xB,IAGrB,OAAO,EAET,GAAIy/M,EAAWpyC,GACb,OAAQxsJ,UAAUlkB,QAEhB,KAAK,EACH0wK,EAAQxrJ,KAAK9lB,MACb,MACF,KAAK,EACHsxK,EAAQxrJ,KAAK9lB,KAAM8kB,UAAU,IAC7B,MACF,KAAK,EACHwsJ,EAAQxrJ,KAAK9lB,KAAM8kB,UAAU,GAAIA,UAAU,IAC3C,MAEF,QACE2D,EAAOnG,MAAMpiB,UAAUkmB,MAAMN,KAAKhB,UAAW,GAC7CwsJ,EAAQ1sJ,MAAM5kB,KAAMyoB,QAEnB,GAAIlI,EAAS+wJ,GAIlB,IAHA7oJ,EAAOnG,MAAMpiB,UAAUkmB,MAAMN,KAAKhB,UAAW,GAE7CyB,GADAsmM,EAAYv7C,EAAQlrJ,SACJxlB,OACXI,EAAI,EAAGA,EAAIulB,EAAKvlB,IACnB6rN,EAAU7rN,GAAG4jB,MAAM5kB,KAAMyoB,GAG7B,OAAO,CACT,EAEA6qF,EAAapzG,UAAUy0L,YAAc,SAAS1wL,EAAMkwG,GAClD,IAAIn5E,EAEJ,IAAK0oL,EAAWvvG,GACd,MAAMjwF,UAAU,+BA2ClB,OAzCKlkB,KAAKq8xB,UACRr8xB,KAAKq8xB,QAAU,CAAC,GAIdr8xB,KAAKq8xB,QAAQ6xB,aACfluzB,KAAKq2G,KAAK,cAAepyG,EACfy/M,EAAWvvG,EAASA,UACpBA,EAASA,SAAWA,GAE3Bn0G,KAAKq8xB,QAAQp4xB,GAGTsc,EAASvgB,KAAKq8xB,QAAQp4xB,IAE7BjE,KAAKq8xB,QAAQp4xB,GAAM2d,KAAKuyF,GAGxBn0G,KAAKq8xB,QAAQp4xB,GAAQ,CAACjE,KAAKq8xB,QAAQp4xB,GAAOkwG,GAN1Cn0G,KAAKq8xB,QAAQp4xB,GAAQkwG,EASnB5zF,EAASvgB,KAAKq8xB,QAAQp4xB,MAAWjE,KAAKq8xB,QAAQp4xB,GAAMkqzB,SAIpDnzxB,EAHG8yxB,EAAY9tzB,KAAK6tzB,eAGhBv6sB,EAAay6sB,oBAFb/tzB,KAAK6tzB,gBAKF7yxB,EAAI,GAAKh7B,KAAKq8xB,QAAQp4xB,GAAMrD,OAASo6B,IAC5Ch7B,KAAKq8xB,QAAQp4xB,GAAMkqzB,QAAS,EAC5B7pzB,QAAQC,MAAM,mIAGAvE,KAAKq8xB,QAAQp4xB,GAAMrD,QACJ,oBAAlB0D,QAAQu7L,OAEjBv7L,QAAQu7L,SAKP7/L,IACT,EAEAszG,EAAapzG,UAAUg0G,GAAKZ,EAAapzG,UAAUy0L,YAEnDrhF,EAAapzG,UAAUkuzB,KAAO,SAASnqzB,EAAMkwG,GAC3C,IAAKuvG,EAAWvvG,GACd,MAAMjwF,UAAU,+BAElB,IAAImqyB,GAAQ,EAEZ,SAAS5zxB,IACPz6B,KAAK40L,eAAe3wL,EAAMw2B,GAErB4zxB,IACHA,GAAQ,EACRl6sB,EAASvvF,MAAM5kB,KAAM8kB,WAEzB,CAKA,OAHA2V,EAAE05E,SAAWA,EACbn0G,KAAKk0G,GAAGjwG,EAAMw2B,GAEPz6B,IACT,EAGAszG,EAAapzG,UAAU00L,eAAiB,SAAS3wL,EAAMkwG,GACrD,IAAIqH,EAAM9+F,EAAU9b,EAAQI,EAE5B,IAAK0iN,EAAWvvG,GACd,MAAMjwF,UAAU,+BAElB,IAAKlkB,KAAKq8xB,UAAYr8xB,KAAKq8xB,QAAQp4xB,GACjC,OAAOjE,KAMT,GAHAY,GADA46G,EAAOx7G,KAAKq8xB,QAAQp4xB,IACNrD,OACd8b,GAAY,EAER8+F,IAASrH,GACRuvG,EAAWloG,EAAKrH,WAAaqH,EAAKrH,WAAaA,SAC3Cn0G,KAAKq8xB,QAAQp4xB,GAChBjE,KAAKq8xB,QAAQznmB,gBACf50L,KAAKq2G,KAAK,iBAAkBpyG,EAAMkwG,QAE/B,GAAI5zF,EAASi7F,GAAO,CACzB,IAAKx6G,EAAIJ,EAAQI,KAAM,GACrB,GAAIw6G,EAAKx6G,KAAOmzG,GACXqH,EAAKx6G,GAAGmzG,UAAYqH,EAAKx6G,GAAGmzG,WAAaA,EAAW,CACvDz3F,EAAW1b,EACX,KACF,CAGF,GAAI0b,EAAW,EACb,OAAO1c,KAEW,IAAhBw7G,EAAK56G,QACP46G,EAAK56G,OAAS,SACPZ,KAAKq8xB,QAAQp4xB,IAEpBu3G,EAAK1sF,OAAOpS,EAAU,GAGpB1c,KAAKq8xB,QAAQznmB,gBACf50L,KAAKq2G,KAAK,iBAAkBpyG,EAAMkwG,EACtC,CAEA,OAAOn0G,IACT,EAEAszG,EAAapzG,UAAU2qU,mBAAqB,SAAS5mU,GACnD,IAAIghB,EAAK4nM,EAET,IAAK7sN,KAAKq8xB,QACR,OAAOr8xB,KAGT,IAAKA,KAAKq8xB,QAAQznmB,eAKhB,OAJyB,IAArB9vK,UAAUlkB,OACZZ,KAAKq8xB,QAAU,CAAC,EACTr8xB,KAAKq8xB,QAAQp4xB,WACbjE,KAAKq8xB,QAAQp4xB,GACfjE,KAIT,GAAyB,IAArB8kB,UAAUlkB,OAAc,CAC1B,IAAKqkB,KAAOjlB,KAAKq8xB,QACH,mBAARp3wB,GACJjlB,KAAK6qU,mBAAmB5lT,GAI1B,OAFAjlB,KAAK6qU,mBAAmB,kBACxB7qU,KAAKq8xB,QAAU,CAAC,EACTr8xB,IACT,CAIA,GAAI0jN,EAFJmJ,EAAY7sN,KAAKq8xB,QAAQp4xB,IAGvBjE,KAAK40L,eAAe3wL,EAAM4oN,QACrB,GAAIA,EAET,KAAOA,EAAUjsN,QACfZ,KAAK40L,eAAe3wL,EAAM4oN,EAAUA,EAAUjsN,OAAS,IAI3D,cAFOZ,KAAKq8xB,QAAQp4xB,GAEbjE,IACT,EAEAszG,EAAapzG,UAAU2sN,UAAY,SAAS5oN,GAQ1C,OANKjE,KAAKq8xB,SAAYr8xB,KAAKq8xB,QAAQp4xB,GAE1By/M,EAAW1jN,KAAKq8xB,QAAQp4xB,IACzB,CAACjE,KAAKq8xB,QAAQp4xB,IAEdjE,KAAKq8xB,QAAQp4xB,GAAMmiB,QAJnB,EAMV,EAEAktF,EAAapzG,UAAUouzB,cAAgB,SAASrqzB,GAC9C,GAAIjE,KAAKq8xB,QAAS,CAChB,IAAIkyB,EAAavuzB,KAAKq8xB,QAAQp4xB,GAE9B,GAAIy/M,EAAW6qmB,GACb,OAAO,EACJ,GAAIA,EACP,OAAOA,EAAW3tzB,MACtB,CACA,OAAO,CACT,EAEA0yG,EAAag7sB,cAAgB,SAASvqB,EAAS9/xB,GAC7C,OAAO8/xB,EAAQuqB,cAAcrqzB,EAC/B,yBC7RA,iBACE,SAASkjH,GAGsCvvF,GAC9CA,EAAQgiI,SACoCqrD,GAC5CA,EAAOrrD,SAHT,IAII40pB,EAA8B,iBAAVvpnB,EAAAA,GAAsBA,EAAAA,EAE7CupnB,EAAWvpnB,SAAWupnB,GACtBA,EAAWluzB,SAAWkuzB,GACtBA,EAAW3qsB,KAUZ,IAAI4qsB,EAGJC,EAAS,WAGT1poB,EAAO,GACP2poB,EAAO,EACPC,EAAO,GACPC,EAAO,GACPC,EAAO,IACPC,EAAc,GACdC,EAAW,IACXpnuB,EAAY,IAGZqnuB,EAAgB,QAChBC,EAAgB,eAChBC,EAAkB,4BAGlBn1yB,EAAS,CACR,SAAY,kDACZ,YAAa,iDACb,gBAAiB,iBAIlBo1yB,EAAgBpqoB,EAAO2poB,EACvBjtwB,EAAQ9Y,KAAK8Y,MACbiwL,EAAqBjxO,OAAOS,aAa5B,SAASoD,EAAMN,GACd,MAAM2yG,WAAW58F,EAAO/V,GACzB,CAUA,SAASiM,EAAI4nG,EAAOnvF,GAGnB,IAFA,IAAI/nB,EAASk3G,EAAMl3G,OACfsE,EAAS,GACNtE,KACNsE,EAAOtE,GAAU+nB,EAAGmvF,EAAMl3G,IAE3B,OAAOsE,CACR,CAYA,SAASmqzB,EAAUt4sB,EAAQpuF,GAC1B,IAAIuwB,EAAQ69D,EAAOn1G,MAAM,KACrBsD,EAAS,GAWb,OAVIg0C,EAAMt4C,OAAS,IAGlBsE,EAASg0C,EAAM,GAAK,IACpB69D,EAAS79D,EAAM,IAMTh0C,EADOgL,GAFd6mG,EAASA,EAAOp2G,QAAQwuzB,EAAiB,MACrBvtzB,MAAM,KACA+mB,GAAI3B,KAAK,IAEpC,CAeA,SAASmrN,EAAWp7H,GAMnB,IALA,IAGI/vG,EACAg9L,EAJAt/J,EAAS,GACTwtM,EAAU,EACVtxO,EAASm2G,EAAOn2G,OAGbsxO,EAAUtxO,IAChBoG,EAAQ+vG,EAAOz1G,WAAW4wO,OACb,OAAUlrO,GAAS,OAAUkrO,EAAUtxO,EAG3B,QAAX,OADbojM,EAAQjtF,EAAOz1G,WAAW4wO,OAEzBxtM,EAAO9iB,OAAe,KAAR5a,IAAkB,KAAe,KAARg9L,GAAiB,QAIxDt/J,EAAO9iB,KAAK5a,GACZkrO,KAGDxtM,EAAO9iB,KAAK5a,GAGd,OAAO09B,CACR,CAUA,SAAS4qxB,EAAWx3sB,GACnB,OAAO5nG,EAAI4nG,GAAO,SAAS9wG,GAC1B,IAAI09B,EAAS,GAOb,OANI19B,EAAQ,QAEX09B,GAAUitM,GADV3qO,GAAS,SAC8B,GAAK,KAAQ,OACpDA,EAAQ,MAAiB,KAARA,GAElB09B,GAAUitM,EAAmB3qO,EAE9B,IAAGggB,KAAK,GACT,CAmCA,SAASuoyB,EAAaliE,EAAOryf,GAG5B,OAAOqyf,EAAQ,GAAK,IAAMA,EAAQ,MAAgB,GAARryf,IAAc,EACzD,CAOA,SAASw0jB,EAAM1onB,EAAO2onB,EAAWC,GAChC,IAAIz0xB,EAAI,EAGR,IAFA6rK,EAAQ4onB,EAAYhuwB,EAAMolJ,EAAQgonB,GAAQhonB,GAAS,EACnDA,GAASplJ,EAAMolJ,EAAQ2onB,GACO3onB,EAAQsonB,EAAgBR,GAAQ,EAAG3zxB,GAAK+pJ,EACrE8hB,EAAQplJ,EAAMolJ,EAAQsonB,GAEvB,OAAO1twB,EAAMzmB,GAAKm0xB,EAAgB,GAAKtonB,GAASA,EAAQ+nnB,GACzD,CASA,SAASluxB,EAAOT,GAEf,IAEIoJ,EAIAqmxB,EACAn0xB,EACApI,EACAw8xB,EACAriwB,EACAtyB,EACAoytB,EACA5svB,EAEAovzB,EArEiBn1sB,EAsDjBh2E,EAAS,GACTorxB,EAAc5vxB,EAAMt/B,OAEpBI,EAAI,EACJH,EAAImuzB,EACJe,EAAOhB,EAqBX,KALAY,EAAQzvxB,EAAMxgB,YAAYkoE,IACd,IACX+nuB,EAAQ,GAGJn0xB,EAAI,EAAGA,EAAIm0xB,IAASn0xB,EAEpB0E,EAAM5+B,WAAWk6B,IAAM,KAC1Bj3B,EAAM,aAEPmgC,EAAO9iB,KAAKse,EAAM5+B,WAAWk6B,IAM9B,IAAKpI,EAAQu8xB,EAAQ,EAAIA,EAAQ,EAAI,EAAGv8xB,EAAQ08xB,GAAwC,CAOvF,IAAKF,EAAO5uzB,EAAGusD,EAAI,EAAGtyB,EAAI+pJ,EAErB5xJ,GAAS08xB,GACZvrzB,EAAM,mBAGP8ovB,GAxGmB3yoB,EAwGEx6E,EAAM5+B,WAAW8xB,MAvGxB,GAAK,GACbsnF,EAAY,GAEhBA,EAAY,GAAK,GACbA,EAAY,GAEhBA,EAAY,GAAK,GACbA,EAAY,GAEbsqE,IAgGQA,GAAQqokB,EAAQ3rsB,GAAOgtwB,EAAS1tzB,GAAKusD,KACjDhpD,EAAM,YAGPvD,GAAKqsvB,EAAQ9/rB,IAGT8/rB,GAFJ5svB,EAAIw6B,GAAK80xB,EAAOpB,EAAQ1zxB,GAAK80xB,EAAOnB,EAAOA,EAAO3zxB,EAAI80xB,IAbH90xB,GAAK+pJ,EAoBpDz3H,EAAI7L,EAAMgtwB,GADdmB,EAAa7qoB,EAAOvkL,KAEnB8D,EAAM,YAGPgpD,GAAKsiwB,EAKNE,EAAOP,EAAMxuzB,EAAI4uzB,EADjBtmxB,EAAM5E,EAAO9jC,OAAS,EACc,GAARgvzB,GAIxBluwB,EAAM1gD,EAAIsoC,GAAOolxB,EAAS7tzB,GAC7B0D,EAAM,YAGP1D,GAAK6gD,EAAM1gD,EAAIsoC,GACftoC,GAAKsoC,EAGL5E,EAAO5V,OAAO9tB,IAAK,EAAGH,EAEvB,CAEA,OAAOyuzB,EAAW5qxB,EACnB,CASA,SAAStE,EAAOF,GACf,IAAIr/B,EACAimM,EACAkpnB,EACAC,EACAF,EACAv0xB,EACAR,EACAa,EACAZ,EACAx6B,EACAs4O,EAGA+2kB,EAEAI,EACAL,EACAM,EANAzrxB,EAAS,GAoBb,IARAorxB,GAHA5vxB,EAAQiyM,EAAWjyM,IAGCt/B,OAGpBC,EAAImuzB,EACJlonB,EAAQ,EACRipnB,EAAOhB,EAGFvzxB,EAAI,EAAGA,EAAIs0xB,IAAet0xB,GAC9Bu9M,EAAe74M,EAAM1E,IACF,KAClBkJ,EAAO9iB,KAAK+vN,EAAmBoH,IAejC,IAXAi3kB,EAAiBC,EAAcvrxB,EAAO9jC,OAMlCqvzB,GACHvrxB,EAAO9iB,KAAKgmE,GAINoouB,EAAiBF,GAAa,CAIpC,IAAK90xB,EAAI0zxB,EAAQlzxB,EAAI,EAAGA,EAAIs0xB,IAAet0xB,GAC1Cu9M,EAAe74M,EAAM1E,KACD36B,GAAKk4O,EAAe/9M,IACvCA,EAAI+9M,GAcN,IAPI/9M,EAAIn6B,EAAI6gD,GAAOgtwB,EAAS5nnB,IAD5BopnB,EAAwBF,EAAiB,KAExCzrzB,EAAM,YAGPuiM,IAAU9rK,EAAIn6B,GAAKqvzB,EACnBrvzB,EAAIm6B,EAECQ,EAAI,EAAGA,EAAIs0xB,IAAet0xB,EAO9B,IANAu9M,EAAe74M,EAAM1E,IAEF36B,KAAOimM,EAAQ4nnB,GACjCnqzB,EAAM,YAGHw0O,GAAgBl4O,EAAG,CAEtB,IAAKg7B,EAAIirK,EAAO7rK,EAAI+pJ,IAEfnpJ,GADJp7B,EAAIw6B,GAAK80xB,EAAOpB,EAAQ1zxB,GAAK80xB,EAAOnB,EAAOA,EAAO3zxB,EAAI80xB,IADT90xB,GAAK+pJ,EAKlDmroB,EAAUt0xB,EAAIp7B,EACdovzB,EAAa7qoB,EAAOvkL,EACpBikC,EAAO9iB,KACN+vN,EAAmB49kB,EAAa9uzB,EAAI0vzB,EAAUN,EAAY,KAE3Dh0xB,EAAI6lB,EAAMyuwB,EAAUN,GAGrBnrxB,EAAO9iB,KAAK+vN,EAAmB49kB,EAAa1zxB,EAAG,KAC/Ck0xB,EAAOP,EAAM1onB,EAAOopnB,EAAuBF,GAAkBC,GAC7DnpnB,EAAQ,IACNkpnB,CACH,GAGClpnB,IACAjmM,CAEH,CACA,OAAO6jC,EAAO1d,KAAK,GACpB,CA2CAynyB,EAAW,CAMV,QAAW,QAQX,KAAQ,CACP,OAAUt8kB,EACV,OAAUm9kB,GAEX,OAAU3uxB,EACV,OAAUP,EACV,QA/BD,SAAiBF,GAChB,OAAOmvxB,EAAUnvxB,GAAO,SAAS62E,GAChC,OAAOm4sB,EAAc5oyB,KAAKywF,GACvB,OAAS32E,EAAO22E,GAChBA,CACJ,GACD,EA0BC,UAnDD,SAAmB72E,GAClB,OAAOmvxB,EAAUnvxB,GAAO,SAAS62E,GAChC,OAAOk4sB,EAAc3oyB,KAAKywF,GACvBp2E,EAAOo2E,EAAO3wF,MAAM,GAAGvG,eACvBk3F,CACJ,GACD,QA0DE,KAFD89nB,EAAAA,WACC,OAAO45E,CACP,+BAaF,CAhhBC,wBCoBF,IAAIA,EAAWz3xB,EAAQ,OASvB,SAASoltB,IACPp8uB,KAAKi6C,SAAW,KAChBj6C,KAAKowzB,QAAU,KACfpwzB,KAAK2tM,KAAO,KACZ3tM,KAAKmnC,KAAO,KACZnnC,KAAKknC,KAAO,KACZlnC,KAAKinC,SAAW,KAChBjnC,KAAK49B,KAAO,KACZ59B,KAAKu1B,OAAS,KACdv1B,KAAK4wC,MAAQ,KACb5wC,KAAKq6C,SAAW,KAChBr6C,KAAKwf,KAAO,KACZxf,KAAKo6C,KAAO,IACd,CApBAxiB,EAAQj2B,MAAQshyB,EAChBrrwB,EAAQhV,QA2XR,SAAoBmC,EAAQ21tB,GAC1B,OAAOuoD,EAASl+wB,GAAQ,GAAO,GAAMnC,QAAQ83tB,EAC/C,EA5XA9itB,EAAQy4xB,cAkYR,SAA0BtryB,EAAQ21tB,GAChC,OAAK31tB,EACEk+wB,EAASl+wB,GAAQ,GAAO,GAAMsryB,cAAc31E,GAD/BA,CAEtB,EApYA9itB,EAAQhlB,OAuTR,SAAmByS,GAKb0wrB,EAAS1wrB,KAAMA,EAAM49wB,EAAS59wB,IAClC,OAAMA,aAAe+2tB,EACd/2tB,EAAIzS,SADuBwpuB,EAAIl8uB,UAAU0S,OAAOkT,KAAKT,EAE9D,EA7TAuS,EAAQwktB,IAAMA,EAqBd,IAAIk0E,EAAkB,oBAClBC,EAAc,WAOdC,EAAS,CAAC,IAAK,IAAK,IAAK,KAAM,IAAK,KAAK9tyB,OAHhC,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,KAAM,KAAM,OAM/C+tyB,EAAa,CAAC,KAAM/tyB,OAAO8tyB,GAK3BE,EAAe,CAAC,IAAK,IAAK,IAAK,IAAK,KAAKhuyB,OAAO+tyB,GAChDE,EAAkB,CAAC,IAAK,IAAK,KAE7BC,EAAsB,wBACtBC,EAAoB,8BAEpBC,EAAiB,CACf,YAAc,EACd,eAAe,GAGjBC,EAAmB,CACjB,YAAc,EACd,eAAe,GAGjBC,EAAkB,CAChB,MAAQ,EACR,OAAS,EACT,KAAO,EACP,QAAU,EACV,MAAQ,EACR,SAAS,EACT,UAAU,EACV,QAAQ,EACR,WAAW,EACX,SAAS,GAEXh0mB,EAAchmL,EAAQ,OAE1B,SAASiswB,EAAS/ovB,EAAK+iK,EAAkBg0mB,GACvC,GAAI/2wB,GAAO35B,EAAS25B,IAAQA,aAAekisB,EAAK,OAAOlisB,EAEvD,IAAIoT,EAAI,IAAI8urB,EAEZ,OADA9urB,EAAE3rD,MAAMu4C,EAAK+iK,EAAkBg0mB,GACxB3jwB,CACT,CAglBA,SAASyopB,EAASh6pB,GAChB,MAAsB,kBAARA,CAChB,CAEA,SAASx7B,EAASw7B,GAChB,MAAsB,kBAARA,GAA4B,OAARA,CACpC,CAEA,SAASm1wB,EAAOn1wB,GACd,OAAe,OAARA,CACT,CAxlBAqgsB,EAAIl8uB,UAAUyB,MAAQ,SAASu4C,EAAK+iK,EAAkBg0mB,GACpD,IAAKl7G,EAAS77pB,GACZ,MAAM,IAAIh2B,UAAU,gDAAkDg2B,GAGxE,IAAIjpB,EAAOipB,EAIXjpB,EAAOA,EAAKqf,OAEZ,IAAI0qE,EAAQs1sB,EAAgBrmsB,KAAKh5F,GACjC,GAAI+pF,EAAO,CAET,IAAIm2sB,GADJn2sB,EAAQA,EAAM,IACSn7F,cACvB7f,KAAKi6C,SAAWk3wB,EAChBlgyB,EAAOA,EAAKprB,OAAOm1G,EAAMp6G,OAC3B,CAMA,GAAIqwzB,GAAqBj2sB,GAAS/pF,EAAKkyF,MAAM,wBAAyB,CACpE,IAAIitsB,EAAgC,OAAtBn/xB,EAAKprB,OAAO,EAAG,IACzBuqzB,GAAap1sB,GAAS+1sB,EAAiB/1sB,KACzC/pF,EAAOA,EAAKprB,OAAO,GACnB7F,KAAKowzB,SAAU,EAEnB,CAEA,IAAKW,EAAiB/1sB,KACjBo1sB,GAAYp1sB,IAAUg2sB,EAAgBh2sB,IAAU,CAmBnD,IADA,IASI2yF,EAAMyjnB,EATNC,GAAW,EACNrwzB,EAAI,EAAGA,EAAI2vzB,EAAgB/vzB,OAAQI,IAAK,EAElC,KADTswzB,EAAMrgyB,EAAK7vB,QAAQuvzB,EAAgB3vzB,QACP,IAAbqwzB,GAAkBC,EAAMD,KACzCA,EAAUC,EACd,EAgBgB,KATdF,GAFe,IAAbC,EAEOpgyB,EAAKvR,YAAY,KAIjBuR,EAAKvR,YAAY,IAAK2xyB,MAM/B1jnB,EAAO18K,EAAK7K,MAAM,EAAGgryB,GACrBngyB,EAAOA,EAAK7K,MAAMgryB,EAAS,GAC3BpxzB,KAAK2tM,KAAOtsM,mBAAmBssM,IAIjC0jnB,GAAW,EACX,IAASrwzB,EAAI,EAAGA,EAAI0vzB,EAAa9vzB,OAAQI,IAAK,CAC5C,IAAIswzB,GACS,KADTA,EAAMrgyB,EAAK7vB,QAAQsvzB,EAAa1vzB,QACJ,IAAbqwzB,GAAkBC,EAAMD,KACzCA,EAAUC,EACd,EAEiB,IAAbD,IACFA,EAAUpgyB,EAAKrwB,QAEjBZ,KAAKmnC,KAAOlW,EAAK7K,MAAM,EAAGiryB,GAC1BpgyB,EAAOA,EAAK7K,MAAMiryB,GAGlBrxzB,KAAKuxzB,YAILvxzB,KAAKinC,SAAWjnC,KAAKinC,UAAY,GAIjC,IAAIuqxB,EAAoC,MAArBxxzB,KAAKinC,SAAS,IACe,MAA5CjnC,KAAKinC,SAASjnC,KAAKinC,SAASrmC,OAAS,GAGzC,IAAK4wzB,EAEH,IADA,IAAIC,EAAYzxzB,KAAKinC,SAASrlC,MAAM,MACpByrD,GAAPrsD,EAAI,EAAOywzB,EAAU7wzB,QAAQI,EAAIqsD,EAAGrsD,IAAK,CAChD,IAAIo4C,EAAOq4wB,EAAUzwzB,GACrB,GAAKo4C,IACAA,EAAK+pE,MAAMytsB,GAAsB,CAEpC,IADA,IAAIc,EAAU,GACLl2xB,EAAI,EAAGP,EAAIme,EAAKx4C,OAAQ46B,EAAIP,EAAGO,IAClC4d,EAAK93C,WAAWk6B,GAAK,IAIvBk2xB,GAAW,IAEXA,GAAWt4wB,EAAK5d,GAIpB,IAAKk2xB,EAAQvusB,MAAMytsB,GAAsB,CACvC,IAAIe,EAAaF,EAAUrryB,MAAM,EAAGplB,GAChC4wzB,EAAUH,EAAUrryB,MAAMplB,EAAI,GAC9B6wzB,EAAMz4wB,EAAK+pE,MAAM0tsB,GACjBgB,IACFF,EAAW/vyB,KAAKiwyB,EAAI,IACpBD,EAAQzpU,QAAQ0pU,EAAI,KAElBD,EAAQhxzB,SACVqwB,EAAO,IAAM2gyB,EAAQ5qyB,KAAK,KAAOiK,GAEnCjxB,KAAKinC,SAAW0qxB,EAAW3qyB,KAAK,KAChC,KACF,CACF,CACF,CAUF,GAPIhnB,KAAKinC,SAASrmC,OAhLD,IAiLfZ,KAAKinC,SAAW,GAGhBjnC,KAAKinC,SAAWjnC,KAAKinC,SAASpnB,eAG3B2xyB,EAAc,CAKjB,IAAIM,EAAc9xzB,KAAKinC,SAASrlC,MAAM,KAClCmwzB,EAAS,GACb,IAAS/wzB,EAAI,EAAGA,EAAI8wzB,EAAYlxzB,SAAUI,EAAG,CAC3C,IAAIk4B,EAAI44xB,EAAY9wzB,GACpB+wzB,EAAOnwyB,KAAKsX,EAAEiqF,MAAM,kBAChB,OAASsrsB,EAASruxB,OAAOlH,GAAKA,EACpC,CACAl5B,KAAKinC,SAAW8qxB,EAAO/qyB,KAAK,IAC9B,CAEA,IAAI2R,EAAI34B,KAAKknC,KAAO,IAAMlnC,KAAKknC,KAAO,GAClChmB,EAAIlhB,KAAKinC,UAAY,GACzBjnC,KAAKmnC,KAAOjmB,EAAIyX,EAChB34B,KAAKo6C,MAAQp6C,KAAKmnC,KAIdqqxB,IACFxxzB,KAAKinC,SAAWjnC,KAAKinC,SAASphC,OAAO,EAAG7F,KAAKinC,SAASrmC,OAAS,GAC/C,MAAZqwB,EAAK,KACPA,EAAO,IAAMA,GAGnB,CAIA,IAAK6/xB,EAAeK,GAKlB,IAASnwzB,EAAI,EAAGqsD,EAAIojwB,EAAW7vzB,OAAQI,EAAIqsD,EAAGrsD,IAAK,CACjD,IAAIquD,EAAKohwB,EAAWzvzB,GAChBgxzB,EAAMp9wB,mBAAmBya,GACzB2iwB,IAAQ3iwB,IACV2iwB,EAAMzJ,OAAOl5vB,IAEfp+B,EAAOA,EAAKrvB,MAAMytD,GAAIroC,KAAKgryB,EAC7B,CAKF,IAAIp0xB,EAAO3M,EAAK7vB,QAAQ,MACV,IAAVw8B,IAEF59B,KAAK49B,KAAO3M,EAAKprB,OAAO+3B,GACxB3M,EAAOA,EAAK7K,MAAM,EAAGwX,IAEvB,IAAIq0xB,EAAKhhyB,EAAK7vB,QAAQ,KAoBtB,IAnBY,IAAR6wzB,GACFjyzB,KAAKu1B,OAAStE,EAAKprB,OAAOoszB,GAC1BjyzB,KAAK4wC,MAAQ3f,EAAKprB,OAAOoszB,EAAK,GAC1Bh1mB,IACFj9M,KAAK4wC,MAAQosK,EAAYr7M,MAAM3B,KAAK4wC,QAEtC3f,EAAOA,EAAK7K,MAAM,EAAG6ryB,IACZh1mB,IAETj9M,KAAKu1B,OAAS,GACdv1B,KAAK4wC,MAAQ,CAAC,GAEZ3f,IAAMjxB,KAAKq6C,SAAWppB,GACtB+/xB,EAAgBG,IAChBnxzB,KAAKinC,WAAajnC,KAAKq6C,WACzBr6C,KAAKq6C,SAAW,KAIdr6C,KAAKq6C,UAAYr6C,KAAKu1B,OAAQ,CAC5BoD,EAAI34B,KAAKq6C,UAAY,GACrBnhB,EAAIl5B,KAAKu1B,QAAU,GACvBv1B,KAAKwf,KAAOmZ,EAAIO,CAClB,CAIA,OADAl5B,KAAKo6C,KAAOp6C,KAAK4S,SACV5S,IACT,EAaAo8uB,EAAIl8uB,UAAU0S,OAAS,WACrB,IAAI+6L,EAAO3tM,KAAK2tM,MAAQ,GACpBA,IAEFA,GADAA,EAAO/4J,mBAAmB+4J,IACdhtM,QAAQ,OAAQ,KAC5BgtM,GAAQ,KAGV,IAAI1zJ,EAAWj6C,KAAKi6C,UAAY,GAC5BI,EAAWr6C,KAAKq6C,UAAY,GAC5Bzc,EAAO59B,KAAK49B,MAAQ,GACpBuJ,GAAO,EACPyJ,EAAQ,GAER5wC,KAAKmnC,KACPA,EAAOwmK,EAAO3tM,KAAKmnC,KACVnnC,KAAKinC,WACdE,EAAOwmK,IAAwC,IAAhC3tM,KAAKinC,SAAS7lC,QAAQ,KACjCpB,KAAKinC,SACL,IAAMjnC,KAAKinC,SAAW,KACtBjnC,KAAKknC,OACPC,GAAQ,IAAMnnC,KAAKknC,OAInBlnC,KAAK4wC,OACLrwB,EAASvgB,KAAK4wC,QACd7wB,OAAOwE,KAAKvkB,KAAK4wC,OAAOhwC,SAC1BgwC,EAAQosK,EAAY96M,UAAUlC,KAAK4wC,QAGrC,IAAIrb,EAASv1B,KAAKu1B,QAAWqb,GAAU,IAAMA,GAAW,GAsBxD,OApBIqJ,GAAoC,MAAxBA,EAASp0C,QAAQ,KAAYo0C,GAAY,KAIrDj6C,KAAKowzB,WACHn2wB,GAAY+2wB,EAAgB/2wB,MAAuB,IAAT9S,GAC9CA,EAAO,MAAQA,GAAQ,IACnBkT,GAAmC,MAAvBA,EAASn5C,OAAO,KAAYm5C,EAAW,IAAMA,IACnDlT,IACVA,EAAO,IAGLvJ,GAA2B,MAAnBA,EAAK18B,OAAO,KAAY08B,EAAO,IAAMA,GAC7CrI,GAA+B,MAArBA,EAAOr0B,OAAO,KAAYq0B,EAAS,IAAMA,GAOhD0kB,EAAW9S,GALlBkT,EAAWA,EAAS15C,QAAQ,SAAS,SAASwiH,GAC5C,OAAOvuE,mBAAmBuuE,EAC5B,MACA5tF,EAASA,EAAO50B,QAAQ,IAAK,QAEgBi9B,CAC/C,EAMAw+sB,EAAIl8uB,UAAU0iB,QAAU,SAAS83tB,GAC/B,OAAO16uB,KAAKqwzB,cAAcptB,EAASvoD,GAAU,GAAO,IAAO9nuB,QAC7D,EAOAwpuB,EAAIl8uB,UAAUmwzB,cAAgB,SAAS31E,GACrC,GAAI3kC,EAAS2kC,GAAW,CACtB,IAAIw3E,EAAM,IAAI91E,EACd81E,EAAIvwzB,MAAM+4uB,GAAU,GAAO,GAC3BA,EAAWw3E,CACb,CAEA,IAAIhtzB,EAAS,IAAIk3uB,EAUjB,GATAr8tB,OAAOwE,KAAKvkB,MAAMglB,SAAQ,SAASiW,GACjC/1B,EAAO+1B,GAAKj7B,KAAKi7B,EACnB,GAAGj7B,MAIHkF,EAAO04B,KAAO88sB,EAAS98sB,KAGD,KAAlB88sB,EAAStgsB,KAEX,OADAl1C,EAAOk1C,KAAOl1C,EAAO0N,SACd1N,EAIT,GAAIw1uB,EAAS01E,UAAY11E,EAASzgsB,SAchC,OAZAl6B,OAAOwE,KAAKm2tB,GAAU11tB,SAAQ,SAASiW,GAC3B,aAANA,IACF/1B,EAAO+1B,GAAKy/sB,EAASz/sB,GACzB,IAGI+1xB,EAAgB9rzB,EAAO+0C,WACvB/0C,EAAO+hC,WAAa/hC,EAAOm1C,WAC7Bn1C,EAAOsa,KAAOta,EAAOm1C,SAAW,KAGlCn1C,EAAOk1C,KAAOl1C,EAAO0N,SACd1N,EAGT,GAAIw1uB,EAASzgsB,UAAYygsB,EAASzgsB,WAAa/0C,EAAO+0C,SAAU,CAS9D,IAAK+2wB,EAAgBt2E,EAASzgsB,UAK5B,OAJAl6B,OAAOwE,KAAKm2tB,GAAU11tB,SAAQ,SAASiW,GACrC/1B,EAAO+1B,GAAKy/sB,EAASz/sB,EACvB,IACA/1B,EAAOk1C,KAAOl1C,EAAO0N,SACd1N,EAIT,GADAA,EAAO+0C,SAAWygsB,EAASzgsB,SACtBygsB,EAASvzsB,MAAS4pxB,EAAiBr2E,EAASzgsB,UAS/C/0C,EAAOm1C,SAAWqgsB,EAASrgsB,aAT+B,CAE1D,IADA,IAAI83wB,GAAWz3E,EAASrgsB,UAAY,IAAIz4C,MAAM,KACvCuwzB,EAAQvxzB,UAAY85uB,EAASvzsB,KAAOgrxB,EAAQl2xB,WAC9Cy+sB,EAASvzsB,OAAMuzsB,EAASvzsB,KAAO,IAC/BuzsB,EAASzzsB,WAAUyzsB,EAASzzsB,SAAW,IACzB,KAAfkrxB,EAAQ,IAAWA,EAAQhqU,QAAQ,IACnCgqU,EAAQvxzB,OAAS,GAAGuxzB,EAAQhqU,QAAQ,IACxCjjf,EAAOm1C,SAAW83wB,EAAQnryB,KAAK,IACjC,CAUA,GAPA9hB,EAAOqwB,OAASmltB,EAASnltB,OACzBrwB,EAAO0rC,MAAQ8psB,EAAS9psB,MACxB1rC,EAAOiiC,KAAOuzsB,EAASvzsB,MAAQ,GAC/BjiC,EAAOyoM,KAAO+siB,EAAS/siB,KACvBzoM,EAAO+hC,SAAWyzsB,EAASzzsB,UAAYyzsB,EAASvzsB,KAChDjiC,EAAOgiC,KAAOwzsB,EAASxzsB,KAEnBhiC,EAAOm1C,UAAYn1C,EAAOqwB,OAAQ,CACpC,IAAIoD,EAAIzzB,EAAOm1C,UAAY,GACvBnhB,EAAIh0B,EAAOqwB,QAAU,GACzBrwB,EAAOsa,KAAOmZ,EAAIO,CACpB,CAGA,OAFAh0B,EAAOkrzB,QAAUlrzB,EAAOkrzB,SAAW11E,EAAS01E,QAC5ClrzB,EAAOk1C,KAAOl1C,EAAO0N,SACd1N,CACT,CAEA,IAAIktzB,EAAeltzB,EAAOm1C,UAA0C,MAA9Bn1C,EAAOm1C,SAASn5C,OAAO,GACzDmxzB,EACI33E,EAASvzsB,MACTuzsB,EAASrgsB,UAA4C,MAAhCqgsB,EAASrgsB,SAASn5C,OAAO,GAElDoxzB,EAAcD,GAAYD,GACXltzB,EAAOiiC,MAAQuzsB,EAASrgsB,SACvCk4wB,EAAgBD,EAChBE,EAAUttzB,EAAOm1C,UAAYn1C,EAAOm1C,SAASz4C,MAAM,MAAQ,GAE3D6wzB,GADAN,EAAUz3E,EAASrgsB,UAAYqgsB,EAASrgsB,SAASz4C,MAAM,MAAQ,GACnDsD,EAAO+0C,WAAa+2wB,EAAgB9rzB,EAAO+0C,WA2B3D,GApBIw4wB,IACFvtzB,EAAO+hC,SAAW,GAClB/hC,EAAOgiC,KAAO,KACVhiC,EAAOiiC,OACU,KAAfqrxB,EAAQ,GAAWA,EAAQ,GAAKttzB,EAAOiiC,KACtCqrxB,EAAQrqU,QAAQjjf,EAAOiiC,OAE9BjiC,EAAOiiC,KAAO,GACVuzsB,EAASzgsB,WACXygsB,EAASzzsB,SAAW,KACpByzsB,EAASxzsB,KAAO,KACZwzsB,EAASvzsB,OACQ,KAAfgrxB,EAAQ,GAAWA,EAAQ,GAAKz3E,EAASvzsB,KACxCgrxB,EAAQhqU,QAAQuyP,EAASvzsB,OAEhCuzsB,EAASvzsB,KAAO,MAElBmrxB,EAAaA,IAA8B,KAAfH,EAAQ,IAA4B,KAAfK,EAAQ,KAGvDH,EAEFntzB,EAAOiiC,KAAQuzsB,EAASvzsB,MAA0B,KAAlBuzsB,EAASvzsB,KAC3BuzsB,EAASvzsB,KAAOjiC,EAAOiiC,KACrCjiC,EAAO+hC,SAAYyzsB,EAASzzsB,UAAkC,KAAtByzsB,EAASzzsB,SAC/ByzsB,EAASzzsB,SAAW/hC,EAAO+hC,SAC7C/hC,EAAOqwB,OAASmltB,EAASnltB,OACzBrwB,EAAO0rC,MAAQ8psB,EAAS9psB,MACxB4hxB,EAAUL,OAEL,GAAIA,EAAQvxzB,OAGZ4xzB,IAASA,EAAU,IACxBA,EAAQ5yyB,MACR4yyB,EAAUA,EAAQ9vyB,OAAOyvyB,GACzBjtzB,EAAOqwB,OAASmltB,EAASnltB,OACzBrwB,EAAO0rC,MAAQ8psB,EAAS9psB,WACnB,GAoJQ,MApJe8psB,EAASnltB,OAAS,CAI9C,GAAIk9xB,EACFvtzB,EAAO+hC,SAAW/hC,EAAOiiC,KAAOqrxB,EAAQv2xB,SAIpCy2xB,KAAaxtzB,EAAOiiC,MAAQjiC,EAAOiiC,KAAK/lC,QAAQ,KAAO,IAC1C8D,EAAOiiC,KAAKvlC,MAAM,QAEjCsD,EAAOyoM,KAAO+knB,EAAWz2xB,QACzB/2B,EAAOiiC,KAAOjiC,EAAO+hC,SAAWyrxB,EAAWz2xB,SAW/C,OARA/2B,EAAOqwB,OAASmltB,EAASnltB,OACzBrwB,EAAO0rC,MAAQ8psB,EAAS9psB,MAEnBsgxB,EAAOhszB,EAAOm1C,WAAc62wB,EAAOhszB,EAAOqwB,UAC7CrwB,EAAOsa,MAAQta,EAAOm1C,SAAWn1C,EAAOm1C,SAAW,KACpCn1C,EAAOqwB,OAASrwB,EAAOqwB,OAAS,KAEjDrwB,EAAOk1C,KAAOl1C,EAAO0N,SACd1N,CACT,CAEA,IAAKstzB,EAAQ5xzB,OAWX,OARAsE,EAAOm1C,SAAW,KAEdn1C,EAAOqwB,OACTrwB,EAAOsa,KAAO,IAAMta,EAAOqwB,OAE3BrwB,EAAOsa,KAAO,KAEhBta,EAAOk1C,KAAOl1C,EAAO0N,SACd1N,EAcT,IARA,IAAIo3N,EAAOk2lB,EAAQpsyB,OAAO,GAAG,GACzBusyB,GACCztzB,EAAOiiC,MAAQuzsB,EAASvzsB,QAAmB,MAATm1L,GAAyB,OAATA,IAC1C,KAATA,EAIA14E,EAAK,EACA5iJ,EAAIwxzB,EAAQ5xzB,OAAQI,GAAK,EAAGA,IAEvB,MADZs7N,EAAOk2lB,EAAQxxzB,IAEbwxzB,EAAQ1jyB,OAAO9tB,EAAG,GACA,OAATs7N,GACTk2lB,EAAQ1jyB,OAAO9tB,EAAG,GAClB4iJ,KACSA,IACT4uqB,EAAQ1jyB,OAAO9tB,EAAG,GAClB4iJ,KAKJ,IAAK0uqB,IAAeC,EAClB,KAAO3uqB,IAAMA,EACX4uqB,EAAQrqU,QAAQ,OAIhBmqU,GAA6B,KAAfE,EAAQ,IACpBA,EAAQ,IAA+B,MAAzBA,EAAQ,GAAGtxzB,OAAO,IACpCsxzB,EAAQrqU,QAAQ,IAGdwqU,GAAsD,MAAjCH,EAAQxryB,KAAK,KAAKnhB,QAAQ,IACjD2szB,EAAQ5wyB,KAAK,IAGf,IAUM8wyB,EAVFE,EAA4B,KAAfJ,EAAQ,IACpBA,EAAQ,IAA+B,MAAzBA,EAAQ,GAAGtxzB,OAAO,GAGjCuxzB,IACFvtzB,EAAO+hC,SAAW/hC,EAAOiiC,KAAOyrxB,EAAa,GACbJ,EAAQ5xzB,OAAS4xzB,EAAQv2xB,QAAU,IAI/Dy2xB,KAAaxtzB,EAAOiiC,MAAQjiC,EAAOiiC,KAAK/lC,QAAQ,KAAO,IAC1C8D,EAAOiiC,KAAKvlC,MAAM,QAEjCsD,EAAOyoM,KAAO+knB,EAAWz2xB,QACzB/2B,EAAOiiC,KAAOjiC,EAAO+hC,SAAWyrxB,EAAWz2xB,UAyB/C,OArBAq2xB,EAAaA,GAAeptzB,EAAOiiC,MAAQqrxB,EAAQ5xzB,UAEhCgyzB,GACjBJ,EAAQrqU,QAAQ,IAGbqqU,EAAQ5xzB,OAIXsE,EAAOm1C,SAAWm4wB,EAAQxryB,KAAK,MAH/B9hB,EAAOm1C,SAAW,KAClBn1C,EAAOsa,KAAO,MAMX0xyB,EAAOhszB,EAAOm1C,WAAc62wB,EAAOhszB,EAAOqwB,UAC7CrwB,EAAOsa,MAAQta,EAAOm1C,SAAWn1C,EAAOm1C,SAAW,KACpCn1C,EAAOqwB,OAASrwB,EAAOqwB,OAAS,KAEjDrwB,EAAOyoM,KAAO+siB,EAAS/siB,MAAQzoM,EAAOyoM,KACtCzoM,EAAOkrzB,QAAUlrzB,EAAOkrzB,SAAW11E,EAAS01E,QAC5ClrzB,EAAOk1C,KAAOl1C,EAAO0N,SACd1N,CACT,EAEAk3uB,EAAIl8uB,UAAUqxzB,UAAY,WACxB,IAAIpqxB,EAAOnnC,KAAKmnC,KACZD,EAAOqpxB,EAAYtmsB,KAAK9iF,GACxBD,IAEW,OADbA,EAAOA,EAAK,MAEVlnC,KAAKknC,KAAOA,EAAKrhC,OAAO,IAE1BshC,EAAOA,EAAKthC,OAAO,EAAGshC,EAAKvmC,OAASsmC,EAAKtmC,SAEvCumC,IAAMnnC,KAAKinC,SAAWE,EAC5B,oCCjrBApnB,OAAOC,eAAe4X,EAAS,aAAc,CAC3C5wB,OAAO,IAET4wB,EAAAA,aAAkB,EAQlB,IAFA,IAAIkuB,EAAY,GAEP9kD,EAAI,EAAGA,EAAI,MAAOA,EACzB8kD,EAAU9kD,IAAMA,EAAI,KAAOO,SAAS,IAAIsE,OAAO,GAUjD,IAAIq0H,EAPJ,SAAqBj0E,EAAKF,GACxB,IAAI/kD,EAAI+kD,GAAU,EACdo+tB,EAAMr+tB,EAEV,MAAO,CAACq+tB,EAAIl+tB,EAAIjlD,MAAOmjxB,EAAIl+tB,EAAIjlD,MAAOmjxB,EAAIl+tB,EAAIjlD,MAAOmjxB,EAAIl+tB,EAAIjlD,MAAO,IAAKmjxB,EAAIl+tB,EAAIjlD,MAAOmjxB,EAAIl+tB,EAAIjlD,MAAO,IAAKmjxB,EAAIl+tB,EAAIjlD,MAAOmjxB,EAAIl+tB,EAAIjlD,MAAO,IAAKmjxB,EAAIl+tB,EAAIjlD,MAAOmjxB,EAAIl+tB,EAAIjlD,MAAO,IAAKmjxB,EAAIl+tB,EAAIjlD,MAAOmjxB,EAAIl+tB,EAAIjlD,MAAOmjxB,EAAIl+tB,EAAIjlD,MAAOmjxB,EAAIl+tB,EAAIjlD,MAAOmjxB,EAAIl+tB,EAAIjlD,MAAOmjxB,EAAIl+tB,EAAIjlD,OAAOgmB,KAAK,GACnR,EAGA4Q,EAAAA,QAAkBsiG,sCCRlBn6G,OAAOC,eAAe4X,EAAS,KAAM,CACnCzX,YAAY,EACZL,IAAK,WACH,OAAO+yyB,EAAIn9yB,OACb,IASF,IAAIo9yB,EAAK/4rB,EAAuB/iG,EAAQ,QAEpC+7xB,EAAMh5rB,EAAuB/iG,EAAQ,QAErC67xB,EAAM94rB,EAAuB/iG,EAAQ,QAErCg8xB,EAAMj5rB,EAAuB/iG,EAAQ,QAEzC,SAAS+iG,EAAuB10G,GAAO,OAAOA,GAAOA,EAAIoX,WAAapX,EAAM,CAAE3P,QAAS2P,EAAO,oCCkJ9F,SAAS4tyB,EAAQ9nzB,EAAGP,GAClB,IAAI2+c,GAAW,MAAJp+c,IAAmB,MAAJP,GAE1B,OADWO,GAAK,KAAOP,GAAK,KAAO2+c,GAAO,KAC5B,GAAW,MAANA,CACrB,CAcA,SAAS2pW,EAAOr3xB,EAAG96B,EAAGy3B,EAAGrtB,EAAG+tB,EAAGz4B,GAC7B,OAAOwyzB,GATcnxxB,EASQmxxB,EAAQA,EAAQlyzB,EAAG86B,GAAIo3xB,EAAQ9nzB,EAAG1K,OATrC0yzB,EAS0Cj6xB,GARhD4I,IAAQ,GAAKqxxB,EAQuC36xB,GAT1E,IAAuBsJ,EAAKqxxB,CAU5B,CAEA,SAASC,EAAMryzB,EAAGy3B,EAAGv3B,EAAGs3B,EAAGptB,EAAG+tB,EAAGz4B,GAC/B,OAAOyyzB,EAAO16xB,EAAIv3B,GAAKu3B,EAAID,EAAGx3B,EAAGy3B,EAAGrtB,EAAG+tB,EAAGz4B,EAC5C,CAEA,SAAS4yzB,EAAMtyzB,EAAGy3B,EAAGv3B,EAAGs3B,EAAGptB,EAAG+tB,EAAGz4B,GAC/B,OAAOyyzB,EAAO16xB,EAAID,EAAIt3B,GAAKs3B,EAAGx3B,EAAGy3B,EAAGrtB,EAAG+tB,EAAGz4B,EAC5C,CAEA,SAAS6yzB,EAAMvyzB,EAAGy3B,EAAGv3B,EAAGs3B,EAAGptB,EAAG+tB,EAAGz4B,GAC/B,OAAOyyzB,EAAO16xB,EAAIv3B,EAAIs3B,EAAGx3B,EAAGy3B,EAAGrtB,EAAG+tB,EAAGz4B,EACvC,CAEA,SAAS8yzB,EAAMxyzB,EAAGy3B,EAAGv3B,EAAGs3B,EAAGptB,EAAG+tB,EAAGz4B,GAC/B,OAAOyyzB,EAAOjyzB,GAAKu3B,GAAKD,GAAIx3B,EAAGy3B,EAAGrtB,EAAG+tB,EAAGz4B,EAC1C,CA1NAsf,OAAOC,eAAe4X,EAAS,aAAc,CAC3C5wB,OAAO,IAET4wB,EAAAA,aAAkB,EAyNlB,IAAIsiG,EAnMJ,SAAa55F,GACX,GAAoB,iBAATA,EAAmB,CAC5B,IAAIiN,EAAMimxB,SAAS5+wB,mBAAmBtU,IAEtCA,EAAQ,IAAIhe,MAAMirB,EAAI3sC,QAEtB,IAAK,IAAII,EAAI,EAAGA,EAAIusC,EAAI3sC,OAAQI,IAAKs/B,EAAMt/B,GAAKusC,EAAIjsC,WAAWN,EACjE,CAEA,OAOF,SAA8Bk/B,GAC5B,IAAIl/B,EACAmK,EAIAwkQ,EAHAjrO,EAAS,GACT+uxB,EAA0B,GAAfvzxB,EAAMt/B,OACjB8yzB,EAAS,mBAGb,IAAK1yzB,EAAI,EAAGA,EAAIyyzB,EAAUzyzB,GAAK,EAC7BmK,EAAI+0B,EAAMl/B,GAAK,KAAOA,EAAI,GAAK,IAC/B2uQ,EAAMl7O,SAASi/xB,EAAOxyzB,OAAOiK,IAAM,EAAI,IAAQuozB,EAAOxyzB,OAAW,GAAJiK,GAAW,IACxEu5B,EAAO9iB,KAAK+tP,GAGd,OAAOjrO,CACT,CAtBSivxB,CA4BT,SAAoBxozB,EAAGob,GAIrB,IAAIvlB,EACA4yzB,EACAC,EACAC,EACAC,EANJ5ozB,EAAEob,GAAO,IAAM,KAAQA,EAAM,GAC7Bpb,EAA0B,IAAvBob,EAAM,KAAO,GAAK,IAAWA,EAMhC,IAAIxlB,EAAI,WACJy3B,GAAK,UACLv3B,GAAK,WACLs3B,EAAI,UAER,IAAKv3B,EAAI,EAAGA,EAAImK,EAAEvK,OAAQI,GAAK,GAC7B4yzB,EAAO7yzB,EACP8yzB,EAAOr7xB,EACPs7xB,EAAO7yzB,EACP8yzB,EAAOx7xB,EACPx3B,EAAIqyzB,EAAMryzB,EAAGy3B,EAAGv3B,EAAGs3B,EAAGptB,EAAEnK,GAAI,GAAI,WAChCu3B,EAAI66xB,EAAM76xB,EAAGx3B,EAAGy3B,EAAGv3B,EAAGkK,EAAEnK,EAAI,GAAI,IAAK,WACrCC,EAAImyzB,EAAMnyzB,EAAGs3B,EAAGx3B,EAAGy3B,EAAGrtB,EAAEnK,EAAI,GAAI,GAAI,WACpCw3B,EAAI46xB,EAAM56xB,EAAGv3B,EAAGs3B,EAAGx3B,EAAGoK,EAAEnK,EAAI,GAAI,IAAK,YACrCD,EAAIqyzB,EAAMryzB,EAAGy3B,EAAGv3B,EAAGs3B,EAAGptB,EAAEnK,EAAI,GAAI,GAAI,WACpCu3B,EAAI66xB,EAAM76xB,EAAGx3B,EAAGy3B,EAAGv3B,EAAGkK,EAAEnK,EAAI,GAAI,GAAI,YACpCC,EAAImyzB,EAAMnyzB,EAAGs3B,EAAGx3B,EAAGy3B,EAAGrtB,EAAEnK,EAAI,GAAI,IAAK,YACrCw3B,EAAI46xB,EAAM56xB,EAAGv3B,EAAGs3B,EAAGx3B,EAAGoK,EAAEnK,EAAI,GAAI,IAAK,UACrCD,EAAIqyzB,EAAMryzB,EAAGy3B,EAAGv3B,EAAGs3B,EAAGptB,EAAEnK,EAAI,GAAI,EAAG,YACnCu3B,EAAI66xB,EAAM76xB,EAAGx3B,EAAGy3B,EAAGv3B,EAAGkK,EAAEnK,EAAI,GAAI,IAAK,YACrCC,EAAImyzB,EAAMnyzB,EAAGs3B,EAAGx3B,EAAGy3B,EAAGrtB,EAAEnK,EAAI,IAAK,IAAK,OACtCw3B,EAAI46xB,EAAM56xB,EAAGv3B,EAAGs3B,EAAGx3B,EAAGoK,EAAEnK,EAAI,IAAK,IAAK,YACtCD,EAAIqyzB,EAAMryzB,EAAGy3B,EAAGv3B,EAAGs3B,EAAGptB,EAAEnK,EAAI,IAAK,EAAG,YACpCu3B,EAAI66xB,EAAM76xB,EAAGx3B,EAAGy3B,EAAGv3B,EAAGkK,EAAEnK,EAAI,IAAK,IAAK,UACtCC,EAAImyzB,EAAMnyzB,EAAGs3B,EAAGx3B,EAAGy3B,EAAGrtB,EAAEnK,EAAI,IAAK,IAAK,YAEtCD,EAAIsyzB,EAAMtyzB,EADVy3B,EAAI46xB,EAAM56xB,EAAGv3B,EAAGs3B,EAAGx3B,EAAGoK,EAAEnK,EAAI,IAAK,GAAI,YACrBC,EAAGs3B,EAAGptB,EAAEnK,EAAI,GAAI,GAAI,WACpCu3B,EAAI86xB,EAAM96xB,EAAGx3B,EAAGy3B,EAAGv3B,EAAGkK,EAAEnK,EAAI,GAAI,GAAI,YACpCC,EAAIoyzB,EAAMpyzB,EAAGs3B,EAAGx3B,EAAGy3B,EAAGrtB,EAAEnK,EAAI,IAAK,GAAI,WACrCw3B,EAAI66xB,EAAM76xB,EAAGv3B,EAAGs3B,EAAGx3B,EAAGoK,EAAEnK,GAAI,IAAK,WACjCD,EAAIsyzB,EAAMtyzB,EAAGy3B,EAAGv3B,EAAGs3B,EAAGptB,EAAEnK,EAAI,GAAI,GAAI,WACpCu3B,EAAI86xB,EAAM96xB,EAAGx3B,EAAGy3B,EAAGv3B,EAAGkK,EAAEnK,EAAI,IAAK,EAAG,UACpCC,EAAIoyzB,EAAMpyzB,EAAGs3B,EAAGx3B,EAAGy3B,EAAGrtB,EAAEnK,EAAI,IAAK,IAAK,WACtCw3B,EAAI66xB,EAAM76xB,EAAGv3B,EAAGs3B,EAAGx3B,EAAGoK,EAAEnK,EAAI,GAAI,IAAK,WACrCD,EAAIsyzB,EAAMtyzB,EAAGy3B,EAAGv3B,EAAGs3B,EAAGptB,EAAEnK,EAAI,GAAI,EAAG,WACnCu3B,EAAI86xB,EAAM96xB,EAAGx3B,EAAGy3B,EAAGv3B,EAAGkK,EAAEnK,EAAI,IAAK,GAAI,YACrCC,EAAIoyzB,EAAMpyzB,EAAGs3B,EAAGx3B,EAAGy3B,EAAGrtB,EAAEnK,EAAI,GAAI,IAAK,WACrCw3B,EAAI66xB,EAAM76xB,EAAGv3B,EAAGs3B,EAAGx3B,EAAGoK,EAAEnK,EAAI,GAAI,GAAI,YACpCD,EAAIsyzB,EAAMtyzB,EAAGy3B,EAAGv3B,EAAGs3B,EAAGptB,EAAEnK,EAAI,IAAK,GAAI,YACrCu3B,EAAI86xB,EAAM96xB,EAAGx3B,EAAGy3B,EAAGv3B,EAAGkK,EAAEnK,EAAI,GAAI,GAAI,UACpCC,EAAIoyzB,EAAMpyzB,EAAGs3B,EAAGx3B,EAAGy3B,EAAGrtB,EAAEnK,EAAI,GAAI,GAAI,YAEpCD,EAAIuyzB,EAAMvyzB,EADVy3B,EAAI66xB,EAAM76xB,EAAGv3B,EAAGs3B,EAAGx3B,EAAGoK,EAAEnK,EAAI,IAAK,IAAK,YACtBC,EAAGs3B,EAAGptB,EAAEnK,EAAI,GAAI,GAAI,QACpCu3B,EAAI+6xB,EAAM/6xB,EAAGx3B,EAAGy3B,EAAGv3B,EAAGkK,EAAEnK,EAAI,GAAI,IAAK,YACrCC,EAAIqyzB,EAAMryzB,EAAGs3B,EAAGx3B,EAAGy3B,EAAGrtB,EAAEnK,EAAI,IAAK,GAAI,YACrCw3B,EAAI86xB,EAAM96xB,EAAGv3B,EAAGs3B,EAAGx3B,EAAGoK,EAAEnK,EAAI,IAAK,IAAK,UACtCD,EAAIuyzB,EAAMvyzB,EAAGy3B,EAAGv3B,EAAGs3B,EAAGptB,EAAEnK,EAAI,GAAI,GAAI,YACpCu3B,EAAI+6xB,EAAM/6xB,EAAGx3B,EAAGy3B,EAAGv3B,EAAGkK,EAAEnK,EAAI,GAAI,GAAI,YACpCC,EAAIqyzB,EAAMryzB,EAAGs3B,EAAGx3B,EAAGy3B,EAAGrtB,EAAEnK,EAAI,GAAI,IAAK,WACrCw3B,EAAI86xB,EAAM96xB,EAAGv3B,EAAGs3B,EAAGx3B,EAAGoK,EAAEnK,EAAI,IAAK,IAAK,YACtCD,EAAIuyzB,EAAMvyzB,EAAGy3B,EAAGv3B,EAAGs3B,EAAGptB,EAAEnK,EAAI,IAAK,EAAG,WACpCu3B,EAAI+6xB,EAAM/6xB,EAAGx3B,EAAGy3B,EAAGv3B,EAAGkK,EAAEnK,GAAI,IAAK,WACjCC,EAAIqyzB,EAAMryzB,EAAGs3B,EAAGx3B,EAAGy3B,EAAGrtB,EAAEnK,EAAI,GAAI,IAAK,WACrCw3B,EAAI86xB,EAAM96xB,EAAGv3B,EAAGs3B,EAAGx3B,EAAGoK,EAAEnK,EAAI,GAAI,GAAI,UACpCD,EAAIuyzB,EAAMvyzB,EAAGy3B,EAAGv3B,EAAGs3B,EAAGptB,EAAEnK,EAAI,GAAI,GAAI,WACpCu3B,EAAI+6xB,EAAM/6xB,EAAGx3B,EAAGy3B,EAAGv3B,EAAGkK,EAAEnK,EAAI,IAAK,IAAK,WACtCC,EAAIqyzB,EAAMryzB,EAAGs3B,EAAGx3B,EAAGy3B,EAAGrtB,EAAEnK,EAAI,IAAK,GAAI,WAErCD,EAAIwyzB,EAAMxyzB,EADVy3B,EAAI86xB,EAAM96xB,EAAGv3B,EAAGs3B,EAAGx3B,EAAGoK,EAAEnK,EAAI,GAAI,IAAK,WACrBC,EAAGs3B,EAAGptB,EAAEnK,GAAI,GAAI,WAChCu3B,EAAIg7xB,EAAMh7xB,EAAGx3B,EAAGy3B,EAAGv3B,EAAGkK,EAAEnK,EAAI,GAAI,GAAI,YACpCC,EAAIsyzB,EAAMtyzB,EAAGs3B,EAAGx3B,EAAGy3B,EAAGrtB,EAAEnK,EAAI,IAAK,IAAK,YACtCw3B,EAAI+6xB,EAAM/6xB,EAAGv3B,EAAGs3B,EAAGx3B,EAAGoK,EAAEnK,EAAI,GAAI,IAAK,UACrCD,EAAIwyzB,EAAMxyzB,EAAGy3B,EAAGv3B,EAAGs3B,EAAGptB,EAAEnK,EAAI,IAAK,EAAG,YACpCu3B,EAAIg7xB,EAAMh7xB,EAAGx3B,EAAGy3B,EAAGv3B,EAAGkK,EAAEnK,EAAI,GAAI,IAAK,YACrCC,EAAIsyzB,EAAMtyzB,EAAGs3B,EAAGx3B,EAAGy3B,EAAGrtB,EAAEnK,EAAI,IAAK,IAAK,SACtCw3B,EAAI+6xB,EAAM/6xB,EAAGv3B,EAAGs3B,EAAGx3B,EAAGoK,EAAEnK,EAAI,GAAI,IAAK,YACrCD,EAAIwyzB,EAAMxyzB,EAAGy3B,EAAGv3B,EAAGs3B,EAAGptB,EAAEnK,EAAI,GAAI,EAAG,YACnCu3B,EAAIg7xB,EAAMh7xB,EAAGx3B,EAAGy3B,EAAGv3B,EAAGkK,EAAEnK,EAAI,IAAK,IAAK,UACtCC,EAAIsyzB,EAAMtyzB,EAAGs3B,EAAGx3B,EAAGy3B,EAAGrtB,EAAEnK,EAAI,GAAI,IAAK,YACrCw3B,EAAI+6xB,EAAM/6xB,EAAGv3B,EAAGs3B,EAAGx3B,EAAGoK,EAAEnK,EAAI,IAAK,GAAI,YACrCD,EAAIwyzB,EAAMxyzB,EAAGy3B,EAAGv3B,EAAGs3B,EAAGptB,EAAEnK,EAAI,GAAI,GAAI,WACpCu3B,EAAIg7xB,EAAMh7xB,EAAGx3B,EAAGy3B,EAAGv3B,EAAGkK,EAAEnK,EAAI,IAAK,IAAK,YACtCC,EAAIsyzB,EAAMtyzB,EAAGs3B,EAAGx3B,EAAGy3B,EAAGrtB,EAAEnK,EAAI,GAAI,GAAI,WACpCw3B,EAAI+6xB,EAAM/6xB,EAAGv3B,EAAGs3B,EAAGx3B,EAAGoK,EAAEnK,EAAI,GAAI,IAAK,WACrCD,EAAIkyzB,EAAQlyzB,EAAG6yzB,GACfp7xB,EAAIy6xB,EAAQz6xB,EAAGq7xB,GACf5yzB,EAAIgyzB,EAAQhyzB,EAAG6yzB,GACfv7xB,EAAI06xB,EAAQ16xB,EAAGw7xB,GAGjB,MAAO,CAAChzzB,EAAGy3B,EAAGv3B,EAAGs3B,EACnB,CAtH8By7xB,CA6H9B,SAAsB9zxB,GACpB,IAAIl/B,EACA0jC,EAAS,GAGb,IAFAA,GAAQxE,EAAMt/B,QAAU,GAAK,QAAKyH,EAE7BrH,EAAI,EAAGA,EAAI0jC,EAAO9jC,OAAQI,GAAK,EAClC0jC,EAAO1jC,GAAK,EAGd,IAAIizzB,EAAyB,EAAf/zxB,EAAMt/B,OAEpB,IAAKI,EAAI,EAAGA,EAAIizzB,EAASjzzB,GAAK,EAC5B0jC,EAAO1jC,GAAK,KAAsB,IAAfk/B,EAAMl/B,EAAI,KAAcA,EAAI,GAGjD,OAAO0jC,CACT,CA7IyCwvxB,CAAa5zxB,GAAuB,EAAfA,EAAM1/B,QACpE,EA0LAg3B,EAAAA,QAAkBsiG,oCC7NlBn6G,OAAOC,eAAe4X,EAAS,aAAc,CAC3C5wB,OAAO,IAET4wB,EAAAA,QASA,WACE,IAAK6F,EACH,MAAM,IAAIt9B,MAAM,4GAGlB,OAAOs9B,EAAgBioB,EACzB,EATA,IAAIjoB,EAAmC,oBAAVsC,QAAyBA,OAAOtC,iBAAmBsC,OAAOtC,gBAAgBj9B,KAAKu/B,SAA8B,oBAAZxC,UAA8D,mBAA5BA,SAASE,iBAAiCF,SAASE,gBAAgBj9B,KAAK+8B,UACpOmoB,EAAQ,IAAI5nB,WAAW,sCCH3B,SAASre,EAAEyZ,EAAG/tB,EAAGP,EAAG4iD,GAClB,OAAQt0B,GACN,KAAK,EACH,OAAO/tB,EAAIP,GAAKO,EAAIqiD,EAEtB,KAAK,EAML,KAAK,EACH,OAAOriD,EAAIP,EAAI4iD,EAJjB,KAAK,EACH,OAAOriD,EAAIP,EAAIO,EAAIqiD,EAAI5iD,EAAI4iD,EAKjC,CAEA,SAAS2mwB,EAAKhpzB,EAAGtK,GACf,OAAOsK,GAAKtK,EAAIsK,IAAM,GAAKtK,CAC7B,CAzBAkf,OAAOC,eAAe4X,EAAS,aAAc,CAC3C5wB,OAAO,IAET4wB,EAAAA,aAAkB,EAwFlB,IAAIsiG,EAhEJ,SAAc55F,GACZ,IAAI4tB,EAAI,CAAC,WAAY,WAAY,WAAY,YACzCH,EAAI,CAAC,WAAY,WAAY,WAAY,UAAY,YAEzD,GAAoB,iBAATztB,EAAmB,CAC5B,IAAIiN,EAAMimxB,SAAS5+wB,mBAAmBtU,IAEtCA,EAAQ,IAAIhe,MAAMirB,EAAI3sC,QAEtB,IAAK,IAAII,EAAI,EAAGA,EAAIusC,EAAI3sC,OAAQI,IAAKs/B,EAAMt/B,GAAKusC,EAAIjsC,WAAWN,EACjE,CAEAs/B,EAAM1e,KAAK,KACX,IAAIyrC,EAAI/sB,EAAM1/B,OAAS,EAAI,EACvBytD,EAAIzlB,KAAK8wI,KAAKrsH,EAAI,IAClBe,EAAI,IAAI9rC,MAAM+rC,GAElB,IAASrtD,EAAI,EAAGA,EAAIqtD,EAAGrtD,IAAK,CAC1BotD,EAAEptD,GAAK,IAAIshB,MAAM,IAEjB,IAAK,IAAIkZ,EAAI,EAAGA,EAAI,GAAIA,IACtB4yB,EAAEptD,GAAGw6B,GAAK8E,EAAU,GAAJt/B,EAAa,EAAJw6B,IAAU,GAAK8E,EAAU,GAAJt/B,EAAa,EAAJw6B,EAAQ,IAAM,GAAK8E,EAAU,GAAJt/B,EAAa,EAAJw6B,EAAQ,IAAM,EAAI8E,EAAU,GAAJt/B,EAAa,EAAJw6B,EAAQ,EAEtI,CAMA,IAJA4yB,EAAEC,EAAI,GAAG,IAA2B,GAApB/tB,EAAM1/B,OAAS,GAASgoC,KAAKma,IAAI,EAAG,IACpDqL,EAAEC,EAAI,GAAG,IAAMzlB,KAAK8Y,MAAM0M,EAAEC,EAAI,GAAG,KACnCD,EAAEC,EAAI,GAAG,IAA2B,GAApB/tB,EAAM1/B,OAAS,GAAS,WAE/BI,EAAI,EAAGA,EAAIqtD,EAAGrtD,IAAK,CAG1B,IAFA,IAAI6tD,EAAI,IAAIvsC,MAAM,IAET7hB,EAAI,EAAGA,EAAI,GAAIA,IAAKouD,EAAEpuD,GAAK2tD,EAAEptD,GAAGP,GAEzC,IAASA,EAAI,GAAIA,EAAI,GAAIA,IACvBouD,EAAEpuD,GAAK0zzB,EAAKtlwB,EAAEpuD,EAAI,GAAKouD,EAAEpuD,EAAI,GAAKouD,EAAEpuD,EAAI,IAAMouD,EAAEpuD,EAAI,IAAK,GAG3D,IAAIM,EAAIgtD,EAAE,GACNv1B,EAAIu1B,EAAE,GACN9sD,EAAI8sD,EAAE,GACNx1B,EAAIw1B,EAAE,GACNhuD,EAAIguD,EAAE,GAEV,IAASttD,EAAI,EAAGA,EAAI,GAAIA,IAAK,CAC3B,IAAIy4B,EAAI0P,KAAK8Y,MAAMjhD,EAAI,IACnBiuD,EAAIylwB,EAAKpzzB,EAAG,GAAK0e,EAAEyZ,EAAGV,EAAGv3B,EAAGs3B,GAAKx4B,EAAImuD,EAAEh1B,GAAK21B,EAAEpuD,KAAO,EACzDV,EAAIw4B,EACJA,EAAIt3B,EACJA,EAAIkzzB,EAAK37xB,EAAG,MAAQ,EACpBA,EAAIz3B,EACJA,EAAI2tD,CACN,CAEAX,EAAE,GAAKA,EAAE,GAAKhtD,IAAM,EACpBgtD,EAAE,GAAKA,EAAE,GAAKv1B,IAAM,EACpBu1B,EAAE,GAAKA,EAAE,GAAK9sD,IAAM,EACpB8sD,EAAE,GAAKA,EAAE,GAAKx1B,IAAM,EACpBw1B,EAAE,GAAKA,EAAE,GAAKhuD,IAAM,CACtB,CAEA,MAAO,CAACguD,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,EAAI,IAAa,IAAPA,EAAE,GAAWA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,EAAI,IAAa,IAAPA,EAAE,GAAWA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,EAAI,IAAa,IAAPA,EAAE,GAAWA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,EAAI,IAAa,IAAPA,EAAE,GAAWA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,GAAK,IAAMA,EAAE,IAAM,EAAI,IAAa,IAAPA,EAAE,GACxV,EAGAn2B,EAAAA,QAAkBsiG,sCC5FlBn6G,OAAOC,eAAe4X,EAAS,aAAc,CAC3C5wB,OAAO,IAET4wB,EAAAA,aAAkB,EAElB,IAUIwsvB,EAEAC,EAZA+vC,EAAOr6rB,EAAuB/iG,EAAQ,QAEtCq9xB,EAAet6rB,EAAuB/iG,EAAQ,QAElD,SAAS+iG,EAAuB10G,GAAO,OAAOA,GAAOA,EAAIoX,WAAapX,EAAM,CAAE3P,QAAS2P,EAAO,CAW9F,IAAIk/vB,EAAa,EACbC,EAAa,EAkFjB,IAAItqpB,EAhFJ,SAAY5vH,EAAS27C,EAAKF,GACxB,IAAI/kD,EAAIilD,GAAOF,GAAU,EACrBvtB,EAAIytB,GAAO,GAEXo7B,GADJ/2E,EAAUA,GAAW,CAAC,GACH+2E,MAAQ+isB,EACvBK,OAAgCp8wB,IAArBiC,EAAQm6wB,SAAyBn6wB,EAAQm6wB,SAAWJ,EAInE,GAAY,MAARhjsB,GAA4B,MAAZojsB,EAAkB,CACpC,IAAIC,EAAYp6wB,EAAQ85C,SAAW95C,EAAQq7C,KAAOyuwB,EAAK1+yB,WAE3C,MAAR2rE,IAEFA,EAAO+isB,EAAU,CAAgB,EAAfM,EAAU,GAAWA,EAAU,GAAIA,EAAU,GAAIA,EAAU,GAAIA,EAAU,GAAIA,EAAU,KAG3F,MAAZD,IAEFA,EAAWJ,EAAiD,OAApCK,EAAU,IAAM,EAAIA,EAAU,IAE1D,CAMA,IAAIC,OAA0Bt8wB,IAAlBiC,EAAQq6wB,MAAsBr6wB,EAAQq6wB,OAAQ,IAAIrhxB,MAAOgyC,UAGjEsvuB,OAA0Bv8wB,IAAlBiC,EAAQs6wB,MAAsBt6wB,EAAQs6wB,MAAQJ,EAAa,EAEnEljwB,EAAKqjwB,EAAQJ,GAAcK,EAAQJ,GAAc,IAarD,GAXIljwB,EAAK,QAA0BjZ,IAArBiC,EAAQm6wB,WACpBA,EAAWA,EAAW,EAAI,QAKvBnjwB,EAAK,GAAKqjwB,EAAQJ,SAAiCl8wB,IAAlBiC,EAAQs6wB,QAC5CA,EAAQ,GAINA,GAAS,IACX,MAAM,IAAIzkxB,MAAM,mDAGlBokxB,EAAaI,EACbH,EAAaI,EACbP,EAAYI,EAIZ,IAAII,GAA4B,KAAb,WAFnBF,GAAS,cAE+BC,GAAS,WACjDpsvB,EAAEx3B,KAAO6jxB,IAAO,GAAK,IACrBrsvB,EAAEx3B,KAAO6jxB,IAAO,GAAK,IACrBrsvB,EAAEx3B,KAAO6jxB,IAAO,EAAI,IACpBrsvB,EAAEx3B,KAAY,IAAL6jxB,EAET,IAAIC,EAAMH,EAAQ,WAAc,IAAQ,UACxCnsvB,EAAEx3B,KAAO8jxB,IAAQ,EAAI,IACrBtsvB,EAAEx3B,KAAa,IAAN8jxB,EAETtsvB,EAAEx3B,KAAO8jxB,IAAQ,GAAK,GAAM,GAE5BtsvB,EAAEx3B,KAAO8jxB,IAAQ,GAAK,IAEtBtsvB,EAAEx3B,KAAOyjxB,IAAa,EAAI,IAE1BjsvB,EAAEx3B,KAAkB,IAAXyjxB,EAET,IAAK,IAAI5jxB,EAAI,EAAGA,EAAI,IAAKA,EACvB23B,EAAEx3B,EAAIH,GAAKwgF,EAAKxgF,GAGlB,OAAOolD,IAAY,EAAIouwB,EAAa3+yB,SAAS8iB,EAC/C,EAGAZ,EAAAA,QAAkBsiG,sCCxGlBn6G,OAAOC,eAAe4X,EAAS,aAAc,CAC3C5wB,OAAO,IAET4wB,EAAAA,aAAkB,EAElB,IAAIk7xB,EAAK/4rB,EAAuB/iG,EAAQ,OAEpCs9xB,EAAMv6rB,EAAuB/iG,EAAQ,QAEzC,SAAS+iG,EAAuB10G,GAAO,OAAOA,GAAOA,EAAIoX,WAAapX,EAAM,CAAE3P,QAAS2P,EAAO,CAG9F,IAAI60G,GADO,EAAI44rB,EAAGp9yB,SAAS,KAAM,GAAM4+yB,EAAI5+yB,SAE3CkiB,EAAAA,QAAkBsiG,qCCblBn6G,OAAOC,eAAe4X,EAAS,aAAc,CAC3C5wB,OAAO,IAET4wB,EAAAA,QAiCA,SAAkBx3B,EAAMo+C,EAAS+1wB,GAC/B,IAAIC,EAAe,SAAUxtzB,EAAO8jvB,EAAW7ksB,EAAKF,GAClD,IAAIivD,EAAM/uD,GAAOF,GAAU,EAG3B,GAFoB,iBAAT/+C,IAAmBA,EApBlC,SAAuB2gC,GACrBA,EAAM6rxB,SAAS5+wB,mBAAmBjN,IAIlC,IAFA,IAAIrH,EAAQ,IAAIhe,MAAMqlB,EAAI/mC,QAEjBI,EAAI,EAAGA,EAAI2mC,EAAI/mC,OAAQI,IAC9Bs/B,EAAMt/B,GAAK2mC,EAAIrmC,WAAWN,GAG5B,OAAOs/B,CACT,CAU0Cm0xB,CAAcztzB,IAC5B,iBAAb8jvB,IAAuBA,EA9BtC,SAAqBllsB,GAEnB,IAAItlB,EAAQ,GAIZ,OAHAslB,EAAKjlD,QAAQ,mBAAmB,SAAUgvQ,GACxCrvO,EAAM1e,KAAK6S,SAASk7O,EAAK,IAC3B,IACOrvO,CACT,CAuBkDo0xB,CAAY5pE,KACrDxouB,MAAMC,QAAQvb,GAAQ,MAAMkd,UAAU,mCAC3C,IAAK5B,MAAMC,QAAQuouB,IAAmC,KAArBA,EAAUlqvB,OAAe,MAAMsjB,UAAU,+DAE1E,IAAIoc,EAAQi0xB,EAASzpE,EAAUpouB,OAAO1b,IAItC,GAHAs5B,EAAM,GAAgB,GAAXA,EAAM,GAAYke,EAC7Ble,EAAM,GAAgB,GAAXA,EAAM,GAAY,IAEzB2lB,EACF,IAAK,IAAIytG,EAAM,EAAGA,EAAM,KAAMA,EAC5BztG,EAAI+uD,EAAM0+C,GAAOpzH,EAAMozH,GAI3B,OAAOztG,IAAO,EAAIouwB,EAAa3+yB,SAAS4qB,EAC1C,EAGA,IACEk0xB,EAAap0zB,KAAOA,CACtB,CAAE,MAAOiE,GAAM,CAKf,OAFAmwzB,EAAaG,IAAMA,EACnBH,EAAaniyB,IAAMA,EACZmiyB,CACT,EA9DA58xB,EAAQvF,IAAMuF,EAAQ+8xB,SAAM,EAE5B,IAEgCtvyB,EAF5BgvyB,GAE4BhvyB,EAFU2R,EAAQ,SAEG3R,EAAIoX,WAAapX,EAAM,CAAE3P,QAAS2P,GAuBvF,MAAMsvyB,EAAM,uCACZ/8xB,EAAQ+8xB,IAAMA,EACd,MAAMtiyB,EAAM,uCACZuF,EAAQvF,IAAMA,sCClCdtS,OAAOC,eAAe4X,EAAS,aAAc,CAC3C5wB,OAAO,IAET4wB,EAAAA,aAAkB,EAElB,IAAIw8xB,EAAOr6rB,EAAuB/iG,EAAQ,QAEtCq9xB,EAAet6rB,EAAuB/iG,EAAQ,QAElD,SAAS+iG,EAAuB10G,GAAO,OAAOA,GAAOA,EAAIoX,WAAapX,EAAM,CAAE3P,QAAS2P,EAAO,CA2B9F,IAAI60G,EAzBJ,SAAY5vH,EAAS27C,EAAKF,GACxB,IAAI/kD,EAAIilD,GAAOF,GAAU,EAEH,iBAAXz7C,IACT27C,EAAkB,WAAZ37C,EAAuB,IAAIgY,MAAM,IAAM,KAC7ChY,EAAU,MAKZ,IAAI47C,GAFJ57C,EAAUA,GAAW,CAAC,GAEH85C,SAAW95C,EAAQq7C,KAAOyuwB,EAAK1+yB,WAMlD,GAHAwwC,EAAK,GAAe,GAAVA,EAAK,GAAY,GAC3BA,EAAK,GAAe,GAAVA,EAAK,GAAY,IAEvBD,EACF,IAAK,IAAI2F,EAAK,EAAGA,EAAK,KAAMA,EAC1B3F,EAAIjlD,EAAI4qD,GAAM1F,EAAK0F,GAIvB,OAAO3F,IAAO,EAAIouwB,EAAa3+yB,SAASwwC,EAC1C,EAGAtuB,EAAAA,QAAkBsiG,sCCrClBn6G,OAAOC,eAAe4X,EAAS,aAAc,CAC3C5wB,OAAO,IAET4wB,EAAAA,aAAkB,EAElB,IAAIk7xB,EAAK/4rB,EAAuB/iG,EAAQ,OAEpC49xB,EAAO76rB,EAAuB/iG,EAAQ,QAE1C,SAAS+iG,EAAuB10G,GAAO,OAAOA,GAAOA,EAAIoX,WAAapX,EAAM,CAAE3P,QAAS2P,EAAO,CAG9F,IAAI60G,GADO,EAAI44rB,EAAGp9yB,SAAS,KAAM,GAAMk/yB,EAAKl/yB,SAE5CkiB,EAAAA,QAAkBsiG,sCCblB,IAAI26rB,EAAQ79xB,EAAQ,OAKhB66vB,EAA+B,WAC/B,SAASA,EAAc1qwB,QACH,IAAZA,IAAsBA,EANjB,KAOTnnB,KAAKmnB,QAAUA,EACfnnB,KAAK8jH,MAAQ,IAAI+wsB,EAAMC,SAAS3tyB,EACpC,CAyDA,OAvDApH,OAAOC,eAAe6xwB,EAAc3xxB,UAAW,OAAQ,CACnD4f,IAAK,WACD,OAAO9f,KAAK8jH,MAAMljH,MACtB,EACAuf,YAAY,EACZD,cAAc,IAElB2xwB,EAAc3xxB,UAAU23xB,IAAM,SAAU5ywB,EAAKje,GAC3C,IAAI+tzB,EAA2B,kBAAR9vyB,EAAmB4swB,EAAcuG,aAAanzwB,GAAOA,EACtE+vyB,EAAiBh1zB,KAAKi1zB,cAAcjuzB,GACxChH,KAAK8jH,MAAM+zqB,IAAIk9B,EAAWC,EAC9B,EACAnjC,EAAc3xxB,UAAU4f,IAAM,SAAUmF,GACtC,IAAI8vyB,EAA2B,kBAAR9vyB,EAAmB4swB,EAAcuG,aAAanzwB,GAAOA,EACtE1hB,EAAMD,KAAKC,MACXkxmB,EAAUz0mB,KAAK8jH,MAAMhkG,IAAIi1yB,GAC7B,GAAItgN,EAAS,CACT,IAAK,IAAIzzmB,EAAIyzmB,EAAQ7zmB,OAAO,EAAGI,GAAK,EAAGA,IAAK,CAC3ByzmB,EAAQzzmB,GACVk0zB,OAAS3xzB,GAChBkxmB,EAAQ3llB,OAAO9tB,EAAG,EAE1B,CACA,GAAuB,IAAnByzmB,EAAQ7zmB,OAER,YADAZ,KAAK8jH,MAAMoxC,OAAO6/pB,EAG1B,CACA,OAAOtgN,CACX,EACAo9K,EAAcuG,aAAe,SAAUnzwB,GAGnC,IAFA,IAAI01tB,EAAc,GACdw6E,EAAkBp1yB,OAAOwE,KAAKU,GAAKmrB,OAC9BpvC,EAAI,EAAGA,EAAIm0zB,EAAgBv0zB,OAAQI,IAAK,CAC7C,IAAIwuH,EAAiB2lsB,EAAgBn0zB,QACTqH,IAAxB4c,EAAIuqG,IAERmrnB,EAAY/4tB,KAAKqD,EAAIuqG,GACzB,CACA,OAAOmrnB,EAAY3ztB,KAAK,IAC5B,EACA6qwB,EAAc3xxB,UAAU+0zB,cAAgB,SAAUj+B,GAC9C,IAAIzzxB,EAAMD,KAAKC,MACf,OAAOyzxB,EAAU9mxB,KAAI,SAAUstC,GAAY,MAAQ,CAC/C05uB,QAAS15uB,EAAS05uB,SAAW,GAC7Bg+B,OAAQ3xzB,EAA6C,IAAtCi6C,EAASs6uB,sBAAwB,GAAU,IAC1D,GACR,EACAjG,EAAc3xxB,UAAUutR,MAAQ,WAC5BztR,KAAK8jH,MAAM2pK,OACf,EACAokgB,EAAc3xxB,UAAUg1J,OAAS,SAAUjwI,GACzC,IAAI8vyB,EAA2B,kBAAR9vyB,EAAmB4swB,EAAcuG,aAAanzwB,GAAOA,EAC1EjlB,KAAK8jH,MAAMoxC,OAAO6/pB,EACtB,EACOljC,CACX,CA/DmC,GAgEnCj6vB,EAAQ,EAAgBi6vB,oCCtExB9xwB,OAAOC,eAAe4X,EAAS,aAAc,CAAE5wB,OAAO,IACtD,IAAIouzB,EACA,SAAwBnwyB,EAAKje,GACzBhH,KAAKilB,IAAMA,EACXjlB,KAAKgH,MAAQA,CACjB,EAGA8tzB,EAA0B,WAC1B,SAASA,EAAS/szB,GAGd,GAFA/H,KAAK6srB,QAAU,CAAC,EAChB7srB,KAAK+H,KAAO,EACQ,kBAATA,GAAqBA,EAAO,EACnC,MAAM,IAAI5H,MAAM,0CAEpBH,KAAKq1zB,UAAYttzB,CACrB,CAuFA,OAtFAgY,OAAOC,eAAe80yB,EAAS50zB,UAAW,SAAU,CAChD4f,IAAK,WACD,OAAO9f,KAAK+H,IAChB,EACAoY,YAAY,EACZD,cAAc,IAElB40yB,EAAS50zB,UAAUo1zB,cAAgB,SAAUj0uB,GACpCrhF,KAAKu1zB,YAINv1zB,KAAKu1zB,WAAWjusB,KAAOjmC,EACvBA,EAAKt7D,KAAO/lB,KAAKu1zB,YAJjBv1zB,KAAKw1zB,SAAWn0uB,EAMpBrhF,KAAKu1zB,WAAal0uB,EAClBrhF,KAAK+H,MACT,EACA+szB,EAAS50zB,UAAUu1zB,eAAiB,WAChC,GAAKz1zB,KAAKw1zB,SAAV,CAGA,IAAIn0uB,EAAOrhF,KAAKw1zB,SACZE,EAAWr0uB,EAAKimC,KAOpB,OANIousB,IACAA,EAAS3vyB,UAAO1d,GAEpBg5E,EAAKimC,UAAOj/G,EACZrI,KAAKw1zB,SAAWE,EAChB11zB,KAAK+H,OACEs5E,CATP,CAUJ,EACAyzuB,EAAS50zB,UAAUy1zB,eAAiB,SAAUt0uB,GACtCrhF,KAAKu1zB,aAAel0uB,IACpBrhF,KAAKu1zB,WAAal0uB,EAAKt7D,MAEvB/lB,KAAKw1zB,WAAan0uB,IAClBrhF,KAAKw1zB,SAAWn0uB,EAAKimC,MAErBjmC,EAAKimC,OACLjmC,EAAKimC,KAAKvhG,KAAOs7D,EAAKt7D,MAEtBs7D,EAAKt7D,OACLs7D,EAAKt7D,KAAKuhG,KAAOjmC,EAAKimC,MAE1BjmC,EAAKt7D,UAAO1d,EACZg5E,EAAKimC,UAAOj/G,EACZrI,KAAK+H,MACT,EACA+szB,EAAS50zB,UAAU4f,IAAM,SAAUmF,GAC/B,GAAIjlB,KAAK6srB,QAAQ5nqB,GAAM,CACnB,IAAIo8D,EAAOrhF,KAAK6srB,QAAQ5nqB,GAGxB,OAFAjlB,KAAK21zB,eAAet0uB,GACpBrhF,KAAKs1zB,cAAcj0uB,GACZA,EAAKr6E,KAChB,CACJ,EACA8tzB,EAAS50zB,UAAUg1J,OAAS,SAAUjwI,GAClC,GAAIjlB,KAAK6srB,QAAQ5nqB,GAAM,CACnB,IAAIo8D,EAAOrhF,KAAK6srB,QAAQ5nqB,GACxBjlB,KAAK21zB,eAAet0uB,UACbrhF,KAAK6srB,QAAQ5nqB,EACxB,CACJ,EACA6vyB,EAAS50zB,UAAU23xB,IAAM,SAAU5ywB,EAAKje,GACpC,GAAIhH,KAAK6srB,QAAQ5nqB,GACbjlB,KAAKk1J,OAAOjwI,QAEX,GAAIjlB,KAAK+H,OAAS/H,KAAKq1zB,UAAW,CACnC,IACI1jW,EADW3xd,KAAKy1zB,iBACCxwyB,WACdjlB,KAAK6srB,QAAQl7N,EACxB,CACA,IAAIo8N,EAAU,IAAIqnI,EAAenwyB,EAAKje,GACtChH,KAAK6srB,QAAQ5nqB,GAAO8oqB,EACpB/trB,KAAKs1zB,cAAcvnI,EACvB,EACA+mI,EAAS50zB,UAAUutR,MAAQ,WAEvB,IADA,IAAIlpQ,EAAOxE,OAAOwE,KAAKvkB,KAAK6srB,SACnB7rrB,EAAI,EAAGA,EAAIujB,EAAK3jB,OAAQI,IAAK,CAClC,IAAIikB,EAAMV,EAAKvjB,GACXqgF,EAAOrhF,KAAK6srB,QAAQ5nqB,GACxBjlB,KAAK21zB,eAAet0uB,UACbrhF,KAAK6srB,QAAQ5nqB,EACxB,CACJ,EACO6vyB,CACX,CAhG8B,GAiG9Bl9xB,EAAQk9xB,SAAWA,yBC1GnB7vmB,EAAOrtL,QAAU,EAAjBqtL,2CCEA,IAAI1qB,EAAQvjK,EAAQ,OAChBgF,EAAShF,EAAQ,OACjB4+xB,EAAU5+xB,EAAQ,OAClB6+xB,EAAW7+xB,EAAQ,OACnB8+xB,EAAgB9+xB,EAAQ,OACxBynwB,EAAeznwB,EAAQ,OACvB++xB,EAAkB/+xB,EAAQ,OAC1Bg/xB,EAAuBh/xB,EAAQ,OAC/Bi/xB,EAAaj/xB,EAAQ,OACrBk/xB,EAAgBl/xB,EAAQ,OACxBm/xB,EAAgBn/xB,EAAQ,OAE5BiuL,EAAOrtL,QAAU,SAAoBknB,GACnC,OAAO,IAAI99B,SAAQ,SAA4B4B,EAASH,GACtD,IAGI2zyB,EAHAC,EAAcv3wB,EAAOn1C,KACrB2szB,EAAiBx3wB,EAAOz8C,QACxBsiyB,EAAe7lvB,EAAO6lvB,aAE1B,SAAS3+wB,IACH84B,EAAOy3wB,aACTz3wB,EAAOy3wB,YAAYhwF,YAAY6vF,GAG7Bt3wB,EAAOiwB,QACTjwB,EAAOiwB,OAAOtxD,oBAAoB,QAAS24yB,EAE/C,CAEI77nB,EAAMi8nB,WAAWH,IAAgB97nB,EAAMk8nB,+BAClCH,EAAe,gBAGxB,IAAI/xxB,EAAU,IAAIi+W,eAGlB,GAAI1jW,EAAO6uJ,KAAM,CACf,IAAI3oM,EAAW85C,EAAO6uJ,KAAK3oM,UAAY,GACnCD,EAAW+5C,EAAO6uJ,KAAK5oM,SAAWyuzB,SAAS5+wB,mBAAmBkK,EAAO6uJ,KAAK5oM,WAAa,GAC3FuxzB,EAAe/zzB,cAAgB,SAAWk3jB,KAAKz0jB,EAAW,IAAMD,EAClE,CAEA,IAAIwe,EAAWuyyB,EAAch3wB,EAAO43wB,QAAS53wB,EAAO5E,KAOpD,SAASo0J,IACP,GAAK/pK,EAAL,CAIA,IAAI69E,EAAkB,0BAA2B79E,EAAUk6vB,EAAal6vB,EAAQ4/vB,yBAA2B,KAGvGzgyB,EAAW,CACbiG,KAHkBg7xB,GAAiC,SAAjBA,GAA6C,SAAjBA,EACvCpgwB,EAAQ7gC,SAA/B6gC,EAAQm+W,aAGRj2M,OAAQloK,EAAQkoK,OAChBC,WAAYnoK,EAAQmoK,WACpBrqM,QAAS+/G,EACTtjE,OAAQA,EACRva,QAASA,GAGXvI,GAAO,SAAkBh1B,GACvB4b,EAAQ5b,GACRgf,GACF,IAAG,SAAiB3hB,GAClBoe,EAAOpe,GACP2hB,GACF,GAAGtiB,GAGH6gC,EAAU,IAvBV,CAwBF,CAmEA,GAnGAA,EAAQ57B,KAAKm2C,EAAO73C,OAAOzF,cAAeq0zB,EAAStyyB,EAAUu7B,EAAO+Z,OAAQ/Z,EAAO63wB,mBAAmB,GAGtGpyxB,EAAQ+8F,QAAUxiF,EAAOwiF,QA+BrB,cAAe/8F,EAEjBA,EAAQ+pK,UAAYA,EAGpB/pK,EAAQk+W,mBAAqB,WACtBl+W,GAAkC,IAAvBA,EAAQgqK,aAQD,IAAnBhqK,EAAQkoK,QAAkBloK,EAAQqyxB,aAAwD,IAAzCryxB,EAAQqyxB,YAAYx1zB,QAAQ,WAKjFisB,WAAWihL,EACb,EAIF/pK,EAAQ2qC,QAAU,WACX3qC,IAIL9hB,EAAO,IAAIwzyB,EAAW,kBAAmBA,EAAWY,aAAc/3wB,EAAQva,IAG1EA,EAAU,KACZ,EAGAA,EAAQzF,QAAU,WAGhBrc,EAAO,IAAIwzyB,EAAW,gBAAiBA,EAAWa,YAAah4wB,EAAQva,EAASA,IAGhFA,EAAU,IACZ,EAGAA,EAAQwyxB,UAAY,WAClB,IAAIC,EAAsBl4wB,EAAOwiF,QAAU,cAAgBxiF,EAAOwiF,QAAU,cAAgB,mBACxF21rB,EAAen4wB,EAAOm4wB,cAAgBjB,EACtCl3wB,EAAOk4wB,sBACTA,EAAsBl4wB,EAAOk4wB,qBAE/Bv0yB,EAAO,IAAIwzyB,EACTe,EACAC,EAAaC,oBAAsBjB,EAAWkB,UAAYlB,EAAWY,aACrE/3wB,EACAva,IAGFA,EAAU,IACZ,EAKIg2J,EAAMk8nB,uBAAwB,CAEhC,IAAIW,GAAat4wB,EAAO4lvB,iBAAmBqxB,EAAgBxyyB,KAAcu7B,EAAOu4wB,eAC9EzB,EAAQjswB,KAAK7K,EAAOu4wB,qBACpBhvzB,EAEE+uzB,IACFd,EAAex3wB,EAAOw4wB,gBAAkBF,EAE5C,CAGI,qBAAsB7yxB,GACxBg2J,EAAMv1K,QAAQsxyB,GAAgB,SAA0BzmtB,EAAK5qF,GAChC,qBAAhBoxyB,GAAqD,iBAAtBpxyB,EAAIpF,qBAErCy2yB,EAAerxyB,GAGtBsf,EAAQigwB,iBAAiBv/wB,EAAK4qF,EAElC,IAIG0qF,EAAMuznB,YAAYhvwB,EAAO4lvB,mBAC5BngwB,EAAQmgwB,kBAAoB5lvB,EAAO4lvB,iBAIjCC,GAAiC,SAAjBA,IAClBpgwB,EAAQogwB,aAAe7lvB,EAAO6lvB,cAIS,oBAA9B7lvB,EAAOy4wB,oBAChBhzxB,EAAQ/mB,iBAAiB,WAAYshC,EAAOy4wB,oBAIP,oBAA5Bz4wB,EAAO04wB,kBAAmCjzxB,EAAQ+/vB,QAC3D//vB,EAAQ+/vB,OAAO9mxB,iBAAiB,WAAYshC,EAAO04wB,mBAGjD14wB,EAAOy3wB,aAAez3wB,EAAOiwB,UAG/BqnvB,EAAa,SAASl9iB,GACf30O,IAGL9hB,GAAQy2P,GAAWA,GAAUA,EAAOj1Q,KAAQ,IAAIiyzB,EAAkBh9iB,GAClE30O,EAAQ8tE,QACR9tE,EAAU,KACZ,EAEAua,EAAOy3wB,aAAez3wB,EAAOy3wB,YAAYrhoB,UAAUkhoB,GAC/Ct3wB,EAAOiwB,SACTjwB,EAAOiwB,OAAOC,QAAUonvB,IAAet3wB,EAAOiwB,OAAOvxD,iBAAiB,QAAS44yB,KAI9EC,IACHA,EAAc,MAGhB,IAAIp8wB,EAAWk8wB,EAAc5yyB,GAEzB02B,IAA+D,IAAnD,CAAE,OAAQ,QAAS,QAAS74C,QAAQ64C,GAClDx3B,EAAO,IAAIwzyB,EAAW,wBAA0Bh8wB,EAAW,IAAKg8wB,EAAWwB,gBAAiB34wB,IAM9Fva,EAAQooC,KAAK0pvB,EACf,GACF,sCC3NA,IAAI97nB,EAAQvjK,EAAQ,OAChBx2B,EAAOw2B,EAAQ,OACf0gyB,EAAQ1gyB,EAAQ,OAChB2gyB,EAAc3gyB,EAAQ,OA4B1B,IAAI70B,EAnBJ,SAASu8hB,EAAeglM,GACtB,IAAIv8tB,EAAU,IAAIuwzB,EAAMh0F,GACpBv6kB,EAAW3oJ,EAAKk3zB,EAAMx3zB,UAAUqkC,QAASp9B,GAa7C,OAVAozL,EAAM8sV,OAAOl+X,EAAUuuqB,EAAMx3zB,UAAWiH,GAGxCozL,EAAM8sV,OAAOl+X,EAAUhiJ,GAGvBgiJ,EAASpwH,OAAS,SAAgB6+xB,GAChC,OAAOl5R,EAAei5R,EAAYj0F,EAAek0F,GACnD,EAEOzuqB,CACT,CAGYu1Y,CA3BG1ngB,EAAQ,OA8BvB70B,EAAMu1zB,MAAQA,EAGdv1zB,EAAM+zzB,cAAgBl/xB,EAAQ,OAC9B70B,EAAM01zB,YAAc7gyB,EAAQ,MAC5B70B,EAAM21zB,SAAW9gyB,EAAQ,OACzB70B,EAAM6uxB,QAAUh6vB,EAAAA,OAAAA,QAChB70B,EAAM41zB,WAAa/gyB,EAAQ,OAG3B70B,EAAM8zzB,WAAaj/xB,EAAQ,OAG3B70B,EAAM61zB,OAAS71zB,EAAM+zzB,cAGrB/zzB,EAAM8e,IAAM,SAAai/P,GACvB,OAAOl/P,QAAQC,IAAIi/P,EACrB,EACA/9Q,EAAM81zB,OAASjhyB,EAAQ,OAGvB70B,EAAM+1zB,aAAelhyB,EAAQ,OAE7BiuL,EAAOrtL,QAAUz1B,EAGjB8iN,EAAOrtL,QAAPqtL,QAAyB9iN,qCC7DzB,IAAI+zzB,EAAgBl/xB,EAAQ,OAQ5B,SAAS6gyB,EAAYM,GACnB,GAAwB,oBAAbA,EACT,MAAM,IAAIj0yB,UAAU,gCAGtB,IAAI4xwB,EAEJ91xB,KAAKmlM,QAAU,IAAInkL,SAAQ,SAAyB4B,GAClDkzwB,EAAiBlzwB,CACnB,IAEA,IAAI8hC,EAAQ1kD,KAGZA,KAAKmlM,QAAQn3K,MAAK,SAASkrP,GACzB,GAAKx0N,EAAM0zwB,WAAX,CAEA,IAAIp3zB,EACAqsD,EAAI3I,EAAM0zwB,WAAWx3zB,OAEzB,IAAKI,EAAI,EAAGA,EAAIqsD,EAAGrsD,IACjB0jD,EAAM0zwB,WAAWp3zB,GAAGk4Q,GAEtBx0N,EAAM0zwB,WAAa,IARU,CAS/B,IAGAp4zB,KAAKmlM,QAAQn3K,KAAO,SAASqqyB,GAC3B,IAAIC,EAEAnznB,EAAU,IAAInkL,SAAQ,SAAS4B,GACjC8hC,EAAMwwI,UAAUtyK,GAChB01yB,EAAW11yB,CACb,IAAGoL,KAAKqqyB,GAMR,OAJAlznB,EAAQ+zE,OAAS,WACfx0N,EAAM6hrB,YAAY+xF,EACpB,EAEOnznB,CACT,EAEAgznB,GAAS,SAAgBl4zB,GACnBykD,EAAMpqC,SAKVoqC,EAAMpqC,OAAS,IAAI47yB,EAAcj2zB,GACjC61xB,EAAepxuB,EAAMpqC,QACvB,GACF,CAKAu9yB,EAAY33zB,UAAUq4zB,iBAAmB,WACvC,GAAIv4zB,KAAKsa,OACP,MAAMta,KAAKsa,MAEf,EAMAu9yB,EAAY33zB,UAAUg1L,UAAY,SAAmB/gF,GAC/Cn0G,KAAKsa,OACP65F,EAASn0G,KAAKsa,QAIZta,KAAKo4zB,WACPp4zB,KAAKo4zB,WAAWx2yB,KAAKuyF,GAErBn0G,KAAKo4zB,WAAa,CAACjktB,EAEvB,EAMA0jtB,EAAY33zB,UAAUqmuB,YAAc,SAAqBpynB,GACvD,GAAKn0G,KAAKo4zB,WAAV,CAGA,IAAIhlyB,EAAQpzB,KAAKo4zB,WAAWh3zB,QAAQ+yG,IACrB,IAAX/gF,GACFpzB,KAAKo4zB,WAAWtpyB,OAAOsE,EAAO,EAHhC,CAKF,EAMAykyB,EAAY9yyB,OAAS,WACnB,IAAIm0P,EAIJ,MAAO,CACLx0N,MAJU,IAAImzwB,GAAY,SAAkB52zB,GAC5Ci4Q,EAASj4Q,CACX,IAGEi4Q,OAAQA,EAEZ,EAEAj0D,EAAOrtL,QAAUigyB,sCCpHjB,IAAI5B,EAAaj/xB,EAAQ,OASzB,SAASk/xB,EAAcj2zB,GAErBg2zB,EAAWnwyB,KAAK9lB,KAAiB,MAAXC,EAAkB,WAAaA,EAASg2zB,EAAWuC,cACzEx4zB,KAAKI,KAAO,eACd,CAZY42B,EAAQ,OAcdi+sB,SAASihF,EAAeD,EAAY,CACxCwC,YAAY,IAGdxzmB,EAAOrtL,QAAUs+xB,kCCnBjBjxmB,EAAOrtL,QAAU,SAAkB5wB,GACjC,SAAUA,IAASA,EAAMyxzB,WAC3B,sCCFA,IAAIl+nB,EAAQvjK,EAAQ,OAChB6+xB,EAAW7+xB,EAAQ,OACnB0hyB,EAAqB1hyB,EAAQ,OAC7B2hyB,EAAkB3hyB,EAAQ,OAC1B2gyB,EAAc3gyB,EAAQ,OACtB8+xB,EAAgB9+xB,EAAQ,OACxBrM,EAAYqM,EAAQ,OAEpBqprB,EAAa11rB,EAAU01rB,WAM3B,SAASq3G,EAAME,GACb53zB,KAAKoC,SAAWw1zB,EAChB53zB,KAAK02B,aAAe,CAClB6N,QAAS,IAAIm0xB,EACbh1zB,SAAU,IAAIg1zB,EAElB,CAOAhB,EAAMx3zB,UAAUqkC,QAAU,SAAiBq0xB,EAAa95wB,GAG3B,kBAAhB85wB,GACT95wB,EAASA,GAAU,CAAC,GACb5E,IAAM0+wB,EAEb95wB,EAAS85wB,GAAe,CAAC,GAG3B95wB,EAAS64wB,EAAY33zB,KAAKoC,SAAU08C,IAGzB73C,OACT63C,EAAO73C,OAAS63C,EAAO73C,OAAO4Y,cACrB7f,KAAKoC,SAAS6E,OACvB63C,EAAO73C,OAASjH,KAAKoC,SAAS6E,OAAO4Y,cAErCi/B,EAAO73C,OAAS,MAGlB,IAAIgwzB,EAAen4wB,EAAOm4wB,kBAEL5uzB,IAAjB4uzB,GACFtsyB,EAAUkuyB,cAAc5B,EAAc,CACpC6B,kBAAmBz4G,EAAW42G,aAAa52G,EAAWj5Q,SACtD2xX,kBAAmB14G,EAAW42G,aAAa52G,EAAWj5Q,SACtD8vX,oBAAqB72G,EAAW42G,aAAa52G,EAAWj5Q,WACvD,GAIL,IAAI4xX,EAA0B,GAC1BC,GAAiC,EACrCj5zB,KAAK02B,aAAa6N,QAAQvf,SAAQ,SAAoCk0yB,GACjC,oBAAxBA,EAAYC,UAA0D,IAAhCD,EAAYC,QAAQr6wB,KAIrEm6wB,EAAiCA,GAAkCC,EAAYE,YAE/EJ,EAAwB7wU,QAAQ+wU,EAAY9+xB,UAAW8+xB,EAAY5+xB,UACrE,IAEA,IAKI6qK,EALAk0nB,EAA2B,GAO/B,GANAr5zB,KAAK02B,aAAahzB,SAASshB,SAAQ,SAAkCk0yB,GACnEG,EAAyBz3yB,KAAKs3yB,EAAY9+xB,UAAW8+xB,EAAY5+xB,SACnE,KAIK2+xB,EAAgC,CACnC,IAAIl1C,EAAQ,CAAC40C,OAAiBtwzB,GAM9B,IAJAia,MAAMpiB,UAAUiof,QAAQvje,MAAMm/vB,EAAOi1C,GACrCj1C,EAAQA,EAAMrhwB,OAAO22yB,GAErBl0nB,EAAUnkL,QAAQ4B,QAAQk8B,GACnBiluB,EAAMnjxB,QACXukM,EAAUA,EAAQn3K,KAAK+1vB,EAAM9nvB,QAAS8nvB,EAAM9nvB,SAG9C,OAAOkpK,CACT,CAIA,IADA,IAAI28mB,EAAYhjwB,EACTk6wB,EAAwBp4zB,QAAQ,CACrC,IAAI04zB,EAAcN,EAAwB/8xB,QACtCs9xB,EAAaP,EAAwB/8xB,QACzC,IACE6lxB,EAAYwX,EAAYxX,EAC1B,CAAE,MAAOv9yB,GACPg1zB,EAAWh1zB,GACX,KACF,CACF,CAEA,IACE4gM,EAAUwznB,EAAgB7W,EAC5B,CAAE,MAAOv9yB,GACP,OAAOyc,QAAQyB,OAAOle,EACxB,CAEA,KAAO80zB,EAAyBz4zB,QAC9BukM,EAAUA,EAAQn3K,KAAKqryB,EAAyBp9xB,QAASo9xB,EAAyBp9xB,SAGpF,OAAOkpK,CACT,EAEAuynB,EAAMx3zB,UAAUs5zB,OAAS,SAAgB16wB,GACvCA,EAAS64wB,EAAY33zB,KAAKoC,SAAU08C,GACpC,IAAIv7B,EAAWuyyB,EAAch3wB,EAAO43wB,QAAS53wB,EAAO5E,KACpD,OAAO27wB,EAAStyyB,EAAUu7B,EAAO+Z,OAAQ/Z,EAAO63wB,iBAClD,EAGAp8nB,EAAMv1K,QAAQ,CAAC,SAAU,MAAO,OAAQ,YAAY,SAA6B/d,GAE/EywzB,EAAMx3zB,UAAU+G,GAAU,SAASizC,EAAK4E,GACtC,OAAO9+C,KAAKukC,QAAQozxB,EAAY74wB,GAAU,CAAC,EAAG,CAC5C73C,OAAQA,EACRizC,IAAKA,EACLvwC,MAAOm1C,GAAU,CAAC,GAAGn1C,OAEzB,CACF,IAEA4wL,EAAMv1K,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+B/d,GAGrE,SAASwyzB,EAAmBC,GAC1B,OAAO,SAAoBx/wB,EAAKvwC,EAAMm1C,GACpC,OAAO9+C,KAAKukC,QAAQozxB,EAAY74wB,GAAU,CAAC,EAAG,CAC5C73C,OAAQA,EACR5E,QAASq3zB,EAAS,CAChB,eAAgB,uBACd,CAAC,EACLx/wB,IAAKA,EACLvwC,KAAMA,IAEV,CACF,CAEA+tzB,EAAMx3zB,UAAU+G,GAAUwyzB,IAE1B/B,EAAMx3zB,UAAU+G,EAAS,QAAUwyzB,GAAmB,EACxD,IAEAx0mB,EAAOrtL,QAAU8/xB,sCC7JjB,IAAIn9nB,EAAQvjK,EAAQ,OAYpB,SAASi/xB,EAAWh2zB,EAASgnB,EAAM63B,EAAQva,EAAS7gC,GAClDvD,MAAM2lB,KAAK9lB,MACXA,KAAKC,QAAUA,EACfD,KAAKI,KAAO,aACZ6mB,IAASjnB,KAAKinB,KAAOA,GACrB63B,IAAW9+C,KAAK8+C,OAASA,GACzBva,IAAYvkC,KAAKukC,QAAUA,GAC3B7gC,IAAa1D,KAAK0D,SAAWA,EAC/B,CAEA62L,EAAM06iB,SAASghF,EAAY91zB,MAAO,CAChCk8G,OAAQ,WACN,MAAO,CAELp8G,QAASD,KAAKC,QACdG,KAAMJ,KAAKI,KAEX8Y,YAAalZ,KAAKkZ,YAClBwvB,OAAQ1oC,KAAK0oC,OAEbk2a,SAAU5+c,KAAK4+c,SACf+6W,WAAY35zB,KAAK25zB,WACjBC,aAAc55zB,KAAK45zB,aACnBj2xB,MAAO3jC,KAAK2jC,MAEZmb,OAAQ9+C,KAAK8+C,OACb73B,KAAMjnB,KAAKinB,KACXwlL,OAAQzsM,KAAK0D,UAAY1D,KAAK0D,SAAS+oM,OAASzsM,KAAK0D,SAAS+oM,OAAS,KAE3E,IAGF,IAAIvsM,EAAY+1zB,EAAW/1zB,UACvB25zB,EAAc,CAAC,EAEnB,CACE,uBACA,iBACA,eACA,YACA,cACA,4BACA,iBACA,mBACA,kBACA,gBAEA70yB,SAAQ,SAASiC,GACjB4yyB,EAAY5yyB,GAAQ,CAACjgB,MAAOigB,EAC9B,IAEAlH,OAAOqF,iBAAiB6wyB,EAAY4D,GACpC95yB,OAAOC,eAAe9f,EAAW,eAAgB,CAAC8G,OAAO,IAGzDivzB,EAAWlyyB,KAAO,SAASxf,EAAO0iB,EAAM63B,EAAQva,EAAS7gC,EAAUo2zB,GACjE,IAAIC,EAAah6yB,OAAOgZ,OAAO74B,GAY/B,OAVAq6L,EAAMy/nB,aAAaz1zB,EAAOw1zB,GAAY,SAAgB10yB,GACpD,OAAOA,IAAQllB,MAAMD,SACvB,IAEA+1zB,EAAWnwyB,KAAKi0yB,EAAYx1zB,EAAMtE,QAASgnB,EAAM63B,EAAQva,EAAS7gC,GAElEq2zB,EAAW35zB,KAAOmE,EAAMnE,KAExB05zB,GAAe/5yB,OAAOkZ,OAAO8gyB,EAAYD,GAElCC,CACT,EAEA90mB,EAAOrtL,QAAUq+xB,sCCnFjB,IAAI17nB,EAAQvjK,EAAQ,OAEpB,SAAS0hyB,IACP14zB,KAAKosL,SAAW,EAClB,CAUAssoB,EAAmBx4zB,UAAUy2B,IAAM,SAAayD,EAAWE,EAAUhwB,GAOnE,OANAtK,KAAKosL,SAASxqK,KAAK,CACjBwY,UAAWA,EACXE,SAAUA,EACV8+xB,cAAa9uzB,GAAUA,EAAQ8uzB,YAC/BD,QAAS7uzB,EAAUA,EAAQ6uzB,QAAU,OAEhCn5zB,KAAKosL,SAASxrL,OAAS,CAChC,EAOA83zB,EAAmBx4zB,UAAU+5zB,MAAQ,SAAevxzB,GAC9C1I,KAAKosL,SAAS1jL,KAChB1I,KAAKosL,SAAS1jL,GAAM,KAExB,EAUAgwzB,EAAmBx4zB,UAAU8kB,QAAU,SAAiB2D,GACtD4xK,EAAMv1K,QAAQhlB,KAAKosL,UAAU,SAAwBlrK,GACzC,OAANA,GACFyH,EAAGzH,EAEP,GACF,EAEA+jM,EAAOrtL,QAAU8gyB,sCCnDjB,IAAIwB,EAAgBljyB,EAAQ,OACxBmjyB,EAAcnjyB,EAAQ,OAW1BiuL,EAAOrtL,QAAU,SAAuB8+xB,EAAS0D,GAC/C,OAAI1D,IAAYwD,EAAcE,GACrBD,EAAYzD,EAAS0D,GAEvBA,CACT,sCCjBA,IAAI7/nB,EAAQvjK,EAAQ,OAChB8hoB,EAAgB9hoB,EAAQ,OACxB8gyB,EAAW9gyB,EAAQ,OACnB50B,EAAW40B,EAAQ,MACnBk/xB,EAAgBl/xB,EAAQ,OAK5B,SAASqjyB,EAA6Bv7wB,GAKpC,GAJIA,EAAOy3wB,aACTz3wB,EAAOy3wB,YAAYgC,mBAGjBz5wB,EAAOiwB,QAAUjwB,EAAOiwB,OAAOC,QACjC,MAAM,IAAIknvB,CAEd,CAQAjxmB,EAAOrtL,QAAU,SAAyBknB,GA8BxC,OA7BAu7wB,EAA6Bv7wB,GAG7BA,EAAOz8C,QAAUy8C,EAAOz8C,SAAW,CAAC,EAGpCy8C,EAAOn1C,KAAOmvpB,EAAchzoB,KAC1Bg5B,EACAA,EAAOn1C,KACPm1C,EAAOz8C,QACPy8C,EAAOw7wB,kBAITx7wB,EAAOz8C,QAAUk4L,EAAMzO,MACrBhtI,EAAOz8C,QAAQC,QAAU,CAAC,EAC1Bw8C,EAAOz8C,QAAQy8C,EAAO73C,SAAW,CAAC,EAClC63C,EAAOz8C,SAGTk4L,EAAMv1K,QACJ,CAAC,SAAU,MAAO,OAAQ,OAAQ,MAAO,QAAS,WAClD,SAA2B/d,UAClB63C,EAAOz8C,QAAQ4E,EACxB,KAGY63C,EAAOi7I,SAAW33L,EAAS23L,SAE1Bj7I,GAAQ9wB,MAAK,SAA6BtqB,GAWvD,OAVA22zB,EAA6Bv7wB,GAG7Bp7C,EAASiG,KAAOmvpB,EAAchzoB,KAC5Bg5B,EACAp7C,EAASiG,KACTjG,EAASrB,QACTy8C,EAAOy7wB,mBAGF72zB,CACT,IAAG,SAA4B4W,GAe7B,OAdKw9yB,EAASx9yB,KACZ+/yB,EAA6Bv7wB,GAGzBxkC,GAAUA,EAAO5W,WACnB4W,EAAO5W,SAASiG,KAAOmvpB,EAAchzoB,KACnCg5B,EACAxkC,EAAO5W,SAASiG,KAChB2Q,EAAO5W,SAASrB,QAChBy8C,EAAOy7wB,qBAKNv5yB,QAAQyB,OAAOnI,EACxB,GACF,sCCpFA,IAAIigL,EAAQvjK,EAAQ,OAUpBiuL,EAAOrtL,QAAU,SAAqB4iyB,EAASC,GAE7CA,EAAUA,GAAW,CAAC,EACtB,IAAI37wB,EAAS,CAAC,EAEd,SAAS47wB,EAAe95yB,EAAQmE,GAC9B,OAAIw1K,EAAM7R,cAAc9nK,IAAW25K,EAAM7R,cAAc3jK,GAC9Cw1K,EAAMzO,MAAMlrK,EAAQmE,GAClBw1K,EAAM7R,cAAc3jK,GACtBw1K,EAAMzO,MAAM,CAAC,EAAG/mK,GACdw1K,EAAMh4K,QAAQwC,GAChBA,EAAOqB,QAETrB,CACT,CAGA,SAAS41yB,EAAoBp3sB,GAC3B,OAAKg3E,EAAMuznB,YAAY2M,EAAQl3sB,IAEnBg3E,EAAMuznB,YAAY0M,EAAQj3sB,SAA/B,EACEm3sB,OAAeryzB,EAAWmyzB,EAAQj3sB,IAFlCm3sB,EAAeF,EAAQj3sB,GAAOk3sB,EAAQl3sB,GAIjD,CAGA,SAASq3sB,EAAiBr3sB,GACxB,IAAKg3E,EAAMuznB,YAAY2M,EAAQl3sB,IAC7B,OAAOm3sB,OAAeryzB,EAAWoyzB,EAAQl3sB,GAE7C,CAGA,SAASs3sB,EAAiBt3sB,GACxB,OAAKg3E,EAAMuznB,YAAY2M,EAAQl3sB,IAEnBg3E,EAAMuznB,YAAY0M,EAAQj3sB,SAA/B,EACEm3sB,OAAeryzB,EAAWmyzB,EAAQj3sB,IAFlCm3sB,OAAeryzB,EAAWoyzB,EAAQl3sB,GAI7C,CAGA,SAASu3sB,EAAgBv3sB,GACvB,OAAIA,KAAQk3sB,EACHC,EAAeF,EAAQj3sB,GAAOk3sB,EAAQl3sB,IACpCA,KAAQi3sB,EACVE,OAAeryzB,EAAWmyzB,EAAQj3sB,SADpC,CAGT,CAEA,IAAIu2Z,EAAW,CACb,IAAO8gT,EACP,OAAUA,EACV,KAAQA,EACR,QAAWC,EACX,iBAAoBA,EACpB,kBAAqBA,EACrB,iBAAoBA,EACpB,QAAWA,EACX,eAAkBA,EAClB,gBAAmBA,EACnB,QAAWA,EACX,aAAgBA,EAChB,eAAkBA,EAClB,eAAkBA,EAClB,iBAAoBA,EACpB,mBAAsBA,EACtB,WAAcA,EACd,iBAAoBA,EACpB,cAAiBA,EACjB,eAAkBA,EAClB,UAAaA,EACb,UAAaA,EACb,WAAcA,EACd,YAAeA,EACf,WAAcA,EACd,iBAAoBA,EACpB,eAAkBC,GASpB,OANAvgoB,EAAMv1K,QAAQjF,OAAOwE,KAAKi2yB,GAAS93yB,OAAO3C,OAAOwE,KAAKk2yB,KAAW,SAA4Bl3sB,GAC3F,IAAIuoE,EAAQguV,EAASv2Z,IAASo3sB,EAC1B7qnB,EAAchkB,EAAMvoE,GACvBg3E,EAAMuznB,YAAYh+mB,IAAgBhkB,IAAUgvoB,IAAqBh8wB,EAAOykE,GAAQusF,EACnF,IAEOhxJ,CACT,sCCjGA,IAAIm3wB,EAAaj/xB,EAAQ,OASzBiuL,EAAOrtL,QAAU,SAAgBhV,EAASH,EAAQ/e,GAChD,IAAIq3zB,EAAiBr3zB,EAASo7C,OAAOi8wB,eAChCr3zB,EAAS+oM,QAAWsunB,IAAkBA,EAAer3zB,EAAS+oM,QAGjEhqL,EAAO,IAAIwzyB,EACT,mCAAqCvyzB,EAAS+oM,OAC9C,CAACwpnB,EAAWwB,gBAAiBxB,EAAW+E,kBAAkBpyxB,KAAK8Y,MAAMh+C,EAAS+oM,OAAS,KAAO,GAC9F/oM,EAASo7C,OACTp7C,EAAS6gC,QACT7gC,IAPFkf,EAAQlf,EAUZ,sCCtBA,IAAI62L,EAAQvjK,EAAQ,OAChB50B,EAAW40B,EAAQ,MAUvBiuL,EAAOrtL,QAAU,SAAuBjuB,EAAMtH,EAASimB,GACrD,IAAInhB,EAAUnH,MAAQoC,EAMtB,OAJAm4L,EAAMv1K,QAAQsD,GAAK,SAAmBK,GACpChf,EAAOgf,EAAG7C,KAAK3e,EAASwC,EAAMtH,EAChC,IAEOsH,CACT,mDCnBI4wL,EAAQvjK,EAAQ,OAChBikyB,EAAsBjkyB,EAAQ,OAC9Bi/xB,EAAaj/xB,EAAQ,OACrBg/xB,EAAuBh/xB,EAAQ,OAC/B+gyB,EAAa/gyB,EAAQ,OAErBkkyB,EAAuB,CACzB,eAAgB,qCAGlB,SAASC,EAAsB94zB,EAAS2E,IACjCuzL,EAAMuznB,YAAYzrzB,IAAYk4L,EAAMuznB,YAAYzrzB,EAAQ,mBAC3DA,EAAQ,gBAAkB2E,EAE9B,CA6BA,IAAI5E,EAAW,CAEb60zB,aAAcjB,EAEdj8nB,QA/BF,WACE,IAAIA,EAQJ,OAP8B,qBAAnByoN,gBAGmB,qBAAZzjX,GAAuE,qBAA5Chf,OAAO7f,UAAUqB,SAASukB,KAAKiZ,MAD1Eg7J,EAAU/iK,EAAQ,QAKb+iK,CACT,CAqBWqhoB,GAETd,iBAAkB,CAAC,SAA0B3wzB,EAAMtH,GAIjD,GAHA44zB,EAAoB54zB,EAAS,UAC7B44zB,EAAoB54zB,EAAS,gBAEzBk4L,EAAMi8nB,WAAW7szB,IACnB4wL,EAAM9pJ,cAAc9mC,IACpB4wL,EAAMhjF,SAAS5tG,IACf4wL,EAAM8goB,SAAS1xzB,IACf4wL,EAAM+goB,OAAO3xzB,IACb4wL,EAAMghoB,OAAO5xzB,GAEb,OAAOA,EAET,GAAI4wL,EAAMihoB,kBAAkB7xzB,GAC1B,OAAOA,EAAKg2B,OAEd,GAAI46J,EAAMkhoB,kBAAkB9xzB,GAE1B,OADAwxzB,EAAsB94zB,EAAS,mDACxBsH,EAAKpI,WAGd,IAGIm6zB,EAHAC,EAAkBphoB,EAAMh6K,SAAS5W,GACjCwggB,EAAc9ngB,GAAWA,EAAQ,gBAIrC,IAAKq5zB,EAAanhoB,EAAMmhoB,WAAW/xzB,KAAWgyzB,GAAmC,wBAAhBxxT,EAAwC,CACvG,IAAIyxT,EAAY57zB,KAAKm0uB,KAAOn0uB,KAAKm0uB,IAAIu4B,SACrC,OAAOqrD,EAAW2D,EAAa,CAAC,UAAW/xzB,GAAQA,EAAMiyzB,GAAa,IAAIA,EAC5E,CAAO,OAAID,GAAmC,qBAAhBxxT,GAC5BgxT,EAAsB94zB,EAAS,oBAnDrC,SAAyBi4L,EAAUlrF,EAAQ3hE,GACzC,GAAI8sJ,EAAMw7gB,SAASz7gB,GACjB,IAEE,OADClrF,GAAU1tG,KAAKC,OAAO24L,GAChBC,EAAMjqJ,KAAKgqJ,EACpB,CAAE,MAAOv6L,GACP,GAAe,gBAAXA,EAAEK,KACJ,MAAML,CAEV,CAGF,OAAQ0tC,GAAW/rC,KAAKQ,WAAWo4L,EACrC,CAuCauhoB,CAAgBlyzB,IAGlBA,CACT,GAEA4wzB,kBAAmB,CAAC,SAA2B5wzB,GAC7C,IAAIstzB,EAAej3zB,KAAKi3zB,cAAgB70zB,EAAS60zB,aAC7C6B,EAAoB7B,GAAgBA,EAAa6B,kBACjDC,EAAoB9B,GAAgBA,EAAa8B,kBACjD+C,GAAqBhD,GAA2C,SAAtB94zB,KAAK2kyB,aAEnD,GAAIm3B,GAAsB/C,GAAqBx+nB,EAAMw7gB,SAASpssB,IAASA,EAAK/I,OAC1E,IACE,OAAOc,KAAKC,MAAMgI,EACpB,CAAE,MAAO5J,GACP,GAAI+7zB,EAAmB,CACrB,GAAe,gBAAX/7zB,EAAEK,KACJ,MAAM61zB,EAAWlyyB,KAAKhkB,EAAGk2zB,EAAW+E,iBAAkBh7zB,KAAM,KAAMA,KAAK0D,UAEzE,MAAM3D,CACR,CACF,CAGF,OAAO4J,CACT,GAMA23H,QAAS,EAET+1rB,eAAgB,aAChBC,eAAgB,eAEhByE,kBAAmB,EACnBC,eAAgB,EAEhB7nF,IAAK,CACHu4B,SAAU11uB,EAAQ,OAGpB+jyB,eAAgB,SAAwBtunB,GACtC,OAAOA,GAAU,KAAOA,EAAS,GACnC,EAEApqM,QAAS,CACPC,OAAQ,CACN,OAAU,uCAKhBi4L,EAAMv1K,QAAQ,CAAC,SAAU,MAAO,SAAS,SAA6B/d,GACpE7E,EAASC,QAAQ4E,GAAU,CAAC,CAC9B,IAEAszL,EAAMv1K,QAAQ,CAAC,OAAQ,MAAO,UAAU,SAA+B/d,GACrE7E,EAASC,QAAQ4E,GAAUszL,EAAMzO,MAAMovoB,EACzC,IAEAj2mB,EAAOrtL,QAAUx1B,kCC/IjB6iN,EAAOrtL,QAAU,CACfkhyB,mBAAmB,EACnBC,mBAAmB,EACnB7B,qBAAqB,sBCLvBjymB,EAAOrtL,QAAU,CACf,QAAW,0CCCbqtL,EAAOrtL,QAAU,SAAcjP,EAAIqR,GACjC,OAAO,WAEL,IADA,IAAIvR,EAAO,IAAInG,MAAMwC,UAAUlkB,QACtBI,EAAI,EAAGA,EAAIynB,EAAK7nB,OAAQI,IAC/BynB,EAAKznB,GAAK8jB,UAAU9jB,GAEtB,OAAO2nB,EAAG/D,MAAMoV,EAASvR,EAC3B,CACF,sCCRA,IAAI8xK,EAAQvjK,EAAQ,OAEpB,SAASoJ,EAAOyvE,GACd,OAAOj7D,mBAAmBi7D,GACxBlvG,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,OAAQ,KAChBA,QAAQ,QAAS,KACjBA,QAAQ,QAAS,IACrB,CASAskN,EAAOrtL,QAAU,SAAkBsiB,EAAK2e,EAAQ89vB,GAE9C,IAAK99vB,EACH,OAAO3e,EAGT,IAAI+hxB,EACJ,GAAItF,EACFsF,EAAmBtF,EAAiB99vB,QAC/B,GAAI0hI,EAAMkhoB,kBAAkB5iwB,GACjCojwB,EAAmBpjwB,EAAOt3D,eACrB,CACL,IAAI23C,EAAQ,GAEZqhJ,EAAMv1K,QAAQ6zC,GAAQ,SAAmBg3C,EAAK5qF,GAChC,OAAR4qF,GAA+B,qBAARA,IAIvB0qF,EAAMh4K,QAAQstF,GAChB5qF,GAAY,KAEZ4qF,EAAM,CAACA,GAGT0qF,EAAMv1K,QAAQ6qF,GAAK,SAAoBrvF,GACjC+5K,EAAMmrW,OAAOllhB,GACfA,EAAIA,EAAE20B,cACGolJ,EAAMh6K,SAASC,KACxBA,EAAI9e,KAAKQ,UAAUse,IAErB04B,EAAMt3B,KAAKwe,EAAOnb,GAAO,IAAMmb,EAAO5f,GACxC,IACF,IAEAy7yB,EAAmB/ixB,EAAMlyB,KAAK,IAChC,CAEA,GAAIi1yB,EAAkB,CACpB,IAAIC,EAAgBhixB,EAAI94C,QAAQ,MACT,IAAnB86zB,IACFhixB,EAAMA,EAAI9zB,MAAM,EAAG81yB,IAGrBhixB,KAA8B,IAAtBA,EAAI94C,QAAQ,KAAc,IAAM,KAAO66zB,CACjD,CAEA,OAAO/hxB,CACT,kCC5DA+qK,EAAOrtL,QAAU,SAAqB8+xB,EAASyF,GAC7C,OAAOA,EACHzF,EAAQ/1zB,QAAQ,OAAQ,IAAM,IAAMw7zB,EAAYx7zB,QAAQ,OAAQ,IAChE+1zB,CACN,sCCXA,IAAIn8nB,EAAQvjK,EAAQ,OAEpBiuL,EAAOrtL,QACL2iK,EAAMk8nB,uBAIK,CACLv/sB,MAAO,SAAe92G,EAAM4G,EAAO88E,EAAStkE,EAAM01hB,EAAQknR,GACxD,IAAIC,EAAS,GACbA,EAAOz6yB,KAAKxhB,EAAO,IAAMw0C,mBAAmB5tC,IAExCuzL,EAAM0khB,SAASn7nB,IACjBu4uB,EAAOz6yB,KAAK,WAAa,IAAIte,KAAKwgF,GAASw4uB,eAGzC/hoB,EAAMw7gB,SAASv2rB,IACjB68yB,EAAOz6yB,KAAK,QAAUpC,GAGpB+6K,EAAMw7gB,SAAS7gK,IACjBmnR,EAAOz6yB,KAAK,UAAYszhB,IAGX,IAAXknR,GACFC,EAAOz6yB,KAAK,UAGd6L,SAAS4uyB,OAASA,EAAOr1yB,KAAK,KAChC,EAEA2iC,KAAM,SAAcvpD,GAClB,IAAI+iH,EAAQ11F,SAAS4uyB,OAAOl5sB,MAAM,IAAIzrE,OAAO,aAAet3C,EAAO,cACnE,OAAQ+iH,EAAQ9hH,mBAAmB8hH,EAAM,IAAM,IACjD,EAEA+xC,OAAQ,SAAgB90J,GACtBJ,KAAKk3G,MAAM92G,EAAM,GAAIkD,KAAKC,MAAQ,MACpC,GAMK,CACL2zG,MAAO,WAAkB,EACzBvtD,KAAM,WAAkB,OAAO,IAAM,EACrCurG,OAAQ,WAAmB,mCCzCnC+vD,EAAOrtL,QAAU,SAAuBsiB,GAItC,MAAO,8BAA8B5zB,KAAK4zB,EAC5C,sCCXA,IAAIqgJ,EAAQvjK,EAAQ,OAQpBiuL,EAAOrtL,QAAU,SAAsB1zB,GACrC,OAAOq2L,EAAMh6K,SAASrc,KAAsC,IAAzBA,EAAQg0zB,YAC7C,sCCVA,IAAI39nB,EAAQvjK,EAAQ,OAEpBiuL,EAAOrtL,QACL2iK,EAAMk8nB,uBAIH,WACC,IAEI8F,EAFAC,EAAO,kBAAkBl2yB,KAAK8J,UAAUD,WACxCssyB,EAAiBhvyB,SAASm3F,cAAc,KAS5C,SAAS83sB,EAAWxixB,GAClB,IAAIE,EAAOF,EAWX,OATIsixB,IAEFC,EAAe72sB,aAAa,OAAQxrE,GACpCA,EAAOqixB,EAAerixB,MAGxBqixB,EAAe72sB,aAAa,OAAQxrE,GAG7B,CACLA,KAAMqixB,EAAerixB,KACrBH,SAAUwixB,EAAexixB,SAAWwixB,EAAexixB,SAASt5C,QAAQ,KAAM,IAAM,GAChFwmC,KAAMs1xB,EAAet1xB,KACrB5R,OAAQknyB,EAAelnyB,OAASknyB,EAAelnyB,OAAO50B,QAAQ,MAAO,IAAM,GAC3Ei9B,KAAM6+xB,EAAe7+xB,KAAO6+xB,EAAe7+xB,KAAKj9B,QAAQ,KAAM,IAAM,GACpEsmC,SAAUw1xB,EAAex1xB,SACzBC,KAAMu1xB,EAAev1xB,KACrBmT,SAAiD,MAAtCoixB,EAAepixB,SAASn5C,OAAO,GACxCu7zB,EAAepixB,SACf,IAAMoixB,EAAepixB,SAE3B,CAUA,OARAkixB,EAAYG,EAAWp8zB,OAAOsF,SAASw0C,MAQhC,SAAyBuixB,GAC9B,IAAIrjtB,EAAUihF,EAAMw7gB,SAAS4mH,GAAeD,EAAWC,GAAcA,EACrE,OAAQrjtB,EAAOr/D,WAAasixB,EAAUtixB,UAClCq/D,EAAOnyE,OAASo1xB,EAAUp1xB,IAChC,CACF,CAlDC,GAsDQ,WACL,OAAO,CACT,sCC/DN,IAAIozJ,EAAQvjK,EAAQ,OAEpBiuL,EAAOrtL,QAAU,SAA6Bv1B,EAASu6zB,GACrDrioB,EAAMv1K,QAAQ3iB,GAAS,SAAuB2E,EAAO5G,GAC/CA,IAASw8zB,GAAkBx8zB,EAAKoB,gBAAkBo7zB,EAAep7zB,gBACnEa,EAAQu6zB,GAAkB51zB,SACnB3E,EAAQjC,GAEnB,GACF,oBCVA6kN,EAAOrtL,QAAU,yCCCjB,IAAI2iK,EAAQvjK,EAAQ,OAIhB6lyB,EAAoB,CACtB,MAAO,gBAAiB,iBAAkB,eAAgB,OAC1D,UAAW,OAAQ,OAAQ,oBAAqB,sBAChD,gBAAiB,WAAY,eAAgB,sBAC7C,UAAW,cAAe,cAgB5B53mB,EAAOrtL,QAAU,SAAsBv1B,GACrC,IACI4iB,EACA4qF,EACA7uG,EAHAs4G,EAAS,CAAC,EAKd,OAAKj3G,GAELk4L,EAAMv1K,QAAQ3iB,EAAQT,MAAM,OAAO,SAAgBmlH,GAKjD,GAJA/lH,EAAI+lH,EAAK3lH,QAAQ,KACjB6jB,EAAMs1K,EAAMjqJ,KAAKy2E,EAAKlhH,OAAO,EAAG7E,IAAI6e,cACpCgwF,EAAM0qF,EAAMjqJ,KAAKy2E,EAAKlhH,OAAO7E,EAAI,IAE7BikB,EAAK,CACP,GAAIq0F,EAAOr0F,IAAQ43yB,EAAkBz7zB,QAAQ6jB,IAAQ,EACnD,OAGAq0F,EAAOr0F,GADG,eAARA,GACaq0F,EAAOr0F,GAAOq0F,EAAOr0F,GAAO,IAAIvC,OAAO,CAACmtF,IAEzCyJ,EAAOr0F,GAAOq0F,EAAOr0F,GAAO,KAAO4qF,EAAMA,CAE3D,CACF,IAEOyJ,GAnBgBA,CAoBzB,kCClDA2rG,EAAOrtL,QAAU,SAAuBsiB,GACtC,IAAIipE,EAAQ,4BAA4B8G,KAAK/vE,GAC7C,OAAOipE,GAASA,EAAM,IAAM,EAC9B,kCCiBA8hG,EAAOrtL,QAAU,SAAgB2wF,GAC/B,OAAO,SAAc9kG,GACnB,OAAO8kG,EAAS3jG,MAAM,KAAMnB,EAC9B,CACF,4DCxBI82K,EAAQvjK,EAAQ,OAqEpBiuL,EAAOrtL,QA5DP,SAAoBvS,EAAKonvB,GAEvBA,EAAWA,GAAY,IAAIC,SAE3B,IAAI/ouB,EAAQ,GAEZ,SAASm5xB,EAAa91zB,GACpB,OAAc,OAAVA,EAAuB,GAEvBuzL,EAAMmrW,OAAO1+hB,GACRA,EAAMmuC,cAGXolJ,EAAM9pJ,cAAczpC,IAAUuzL,EAAMwioB,aAAa/1zB,GAC5B,oBAATu6G,KAAsB,IAAIA,KAAK,CAACv6G,IAAU06B,EAAO3d,KAAK/c,GAG/DA,CACT,CAuCA,OArCA,SAASgtM,EAAMrqM,EAAMqzzB,GACnB,GAAIzioB,EAAM7R,cAAc/+K,IAAS4wL,EAAMh4K,QAAQ5Y,GAAO,CACpD,IAA6B,IAAzBg6B,EAAMviC,QAAQuI,GAChB,MAAMxJ,MAAM,kCAAoC68zB,GAGlDr5xB,EAAM/hB,KAAKjY,GAEX4wL,EAAMv1K,QAAQrb,GAAM,SAAc3C,EAAOie,GACvC,IAAIs1K,EAAMuznB,YAAY9mzB,GAAtB,CACA,IACIyc,EADAw5yB,EAAUD,EAAYA,EAAY,IAAM/3yB,EAAMA,EAGlD,GAAIje,IAAUg2zB,GAA8B,kBAAVh2zB,EAChC,GAAIuzL,EAAM5lJ,SAAS1vB,EAAK,MAEtBje,EAAQtF,KAAKQ,UAAU8E,QAClB,GAAIuzL,EAAM5lJ,SAAS1vB,EAAK,QAAUxB,EAAM82K,EAAMj8D,QAAQt3H,IAK3D,YAHAyc,EAAIuB,SAAQ,SAASivI,IAClBsmC,EAAMuznB,YAAY75pB,IAAOw4mB,EAAS3lpB,OAAOm2sB,EAASH,EAAa7oqB,GAClE,IAKJ+/C,EAAMhtM,EAAOi2zB,EAjBuB,CAkBtC,IAEAt5xB,EAAM/jB,KACR,MACE6svB,EAAS3lpB,OAAOk2sB,EAAWF,EAAanzzB,GAE5C,CAEAqqM,CAAM3uL,GAEConvB,CACT,sCCnEA,IAAIukB,EAAUh6vB,EAAAA,OAAAA,QACVi/xB,EAAaj/xB,EAAQ,OAErBqprB,EAAa,CAAC,EAGlB,CAAC,SAAU,UAAW,SAAU,WAAY,SAAU,UAAUr7rB,SAAQ,SAAS/gB,EAAMjD,GACrFq/sB,EAAWp8sB,GAAQ,SAAmBi5zB,GACpC,cAAcA,IAAUj5zB,GAAQ,KAAOjD,EAAI,EAAI,KAAO,KAAOiD,CAC/D,CACF,IAEA,IAAIk5zB,EAAqB,CAAC,EAS1B98G,EAAW42G,aAAe,SAAsBtsyB,EAAW6zB,EAASv+C,GAClE,SAASm9zB,EAAcvoX,EAAKv7a,GAC1B,MAAO,WAAa03vB,EAAU,0BAA6Bn8U,EAAM,IAAOv7a,GAAQr5B,EAAU,KAAOA,EAAU,GAC7G,CAGA,OAAO,SAAS+G,EAAO6tc,EAAKvlb,GAC1B,IAAkB,IAAd3E,EACF,MAAM,IAAIsryB,EACRmH,EAAcvoX,EAAK,qBAAuBr2Z,EAAU,OAASA,EAAU,KACvEy3wB,EAAWoH,gBAef,OAXI7+wB,IAAY2+wB,EAAmBtoX,KACjCsoX,EAAmBtoX,IAAO,EAE1Bvwc,QAAQioB,KACN6wyB,EACEvoX,EACA,+BAAiCr2Z,EAAU,8CAK1C7zB,GAAYA,EAAU3jB,EAAO6tc,EAAKvlb,EAC3C,CACF,EAgCA21L,EAAOrtL,QAAU,CACfihyB,cAxBF,SAAuBvuzB,EAASgzzB,EAAQC,GACtC,GAAuB,kBAAZjzzB,EACT,MAAM,IAAI2rzB,EAAW,4BAA6BA,EAAWuH,sBAI/D,IAFA,IAAIj5yB,EAAOxE,OAAOwE,KAAKja,GACnBtJ,EAAIujB,EAAK3jB,OACNI,KAAM,GAAG,CACd,IAAI6zc,EAAMtwb,EAAKvjB,GACX2pB,EAAY2yyB,EAAOzoX,GACvB,GAAIlqb,EAAJ,CACE,IAAI3jB,EAAQsD,EAAQuqc,GAChB3vc,OAAmBmD,IAAVrB,GAAuB2jB,EAAU3jB,EAAO6tc,EAAKvqc,GAC1D,IAAe,IAAXpF,EACF,MAAM,IAAI+wzB,EAAW,UAAYphX,EAAM,YAAc3vc,EAAQ+wzB,EAAWuH,qBAG5E,MACA,IAAqB,IAAjBD,EACF,MAAM,IAAItH,EAAW,kBAAoBphX,EAAKohX,EAAWwH,eAE7D,CACF,EAIEp9G,WAAYA,uCClFd,IAOuBv8lB,EAPnBtjH,EAAOw2B,EAAQ,OAIfz1B,EAAWwe,OAAO7f,UAAUqB,SAG5Bm8zB,GAAmB55sB,EAMpB/jG,OAAOgZ,OAAO,MAJR,SAASmkyB,GACd,IAAIv1xB,EAAMpmC,EAASukB,KAAKo3yB,GACxB,OAAOp5sB,EAAMn8E,KAASm8E,EAAMn8E,GAAOA,EAAIvhB,MAAM,GAAI,GAAGvG,cACtD,GAGF,SAAS89yB,EAAW15zB,GAElB,OADAA,EAAOA,EAAK4b,cACL,SAAkBq9yB,GACvB,OAAOQ,EAAOR,KAAWj5zB,CAC3B,CACF,CAQA,SAASse,EAAQstF,GACf,OAAOvtF,MAAMC,QAAQstF,EACvB,CAQA,SAASi+sB,EAAYj+sB,GACnB,MAAsB,qBAARA,CAChB,CAoBA,IAAIp/D,EAAgBktxB,EAAW,eA6C/B,SAASp9yB,EAASsvF,GAChB,OAAe,OAARA,GAA+B,kBAARA,CAChC,CAQA,SAAS64E,EAAc74E,GACrB,GAAoB,WAAhB6ttB,EAAO7ttB,GACT,OAAO,EAGT,IAAI3vG,EAAY6f,OAAO67K,eAAe/rF,GACtC,OAAqB,OAAd3vG,GAAsBA,IAAc6f,OAAO7f,SACpD,CASA,IAAIwliB,EAASi4R,EAAW,QASpBrC,EAASqC,EAAW,QASpBpC,EAASoC,EAAW,QASpBjC,EAAaiC,EAAW,YAQ5B,SAASj6mB,EAAW7zG,GAClB,MAA8B,sBAAvBtuG,EAASukB,KAAK+pF,EACvB,CAiCA,IAAI4rtB,EAAoBkC,EAAW,mBAmDnC,SAAS34yB,EAAQK,EAAKsD,GAEpB,GAAY,OAARtD,GAA+B,qBAARA,EAU3B,GALmB,kBAARA,IAETA,EAAM,CAACA,IAGL9C,EAAQ8C,GAEV,IAAK,IAAIrkB,EAAI,EAAGqsD,EAAIhoC,EAAIzkB,OAAQI,EAAIqsD,EAAGrsD,IACrC2nB,EAAG7C,KAAK,KAAMT,EAAIrkB,GAAIA,EAAGqkB,QAI3B,IAAK,IAAIJ,KAAOI,EACVtF,OAAO7f,UAAU04B,eAAe9S,KAAKT,EAAKJ,IAC5C0D,EAAG7C,KAAK,KAAMT,EAAIJ,GAAMA,EAAKI,EAIrC,CAwJA,IAA6Bu4yB,EAAzBb,GAAyBa,EAKJ,qBAAf9/xB,YAA8B/d,OAAO67K,eAAe99J,YAHrD,SAASo/xB,GACd,OAAOU,GAAcV,aAAiBU,CACxC,GAGF34mB,EAAOrtL,QAAU,CACfrV,QAASA,EACTkuB,cAAeA,EACf8mE,SAvYF,SAAkB1H,GAChB,OAAe,OAARA,IAAiBi+sB,EAAYj+sB,IAA4B,OAApBA,EAAIxpF,cAAyBynyB,EAAYj+sB,EAAIxpF,cAChD,oBAA7BwpF,EAAIxpF,YAAYkxF,UAA2B1H,EAAIxpF,YAAYkxF,SAAS1H,EAClF,EAqYE2mtB,WA9PF,SAAoB0G,GAClB,IAAI32sB,EAAU,oBACd,OAAO22sB,IACgB,oBAAbxwD,UAA2BwwD,aAAiBxwD,UACpDnrwB,EAASukB,KAAKo3yB,KAAW32sB,GACxBm9F,EAAWw5mB,EAAM37zB,WAAa27zB,EAAM37zB,aAAeglH,EAExD,EAwPEi1sB,kBApXF,SAA2B3rtB,GAOzB,MAL4B,qBAAhBpwE,aAAiCA,YAAYC,OAC9CD,YAAYC,OAAOmwE,GAElBA,GAASA,EAAIlwE,QAAY8Q,EAAco/D,EAAIlwE,OAGzD,EA6WEo2qB,SArWF,SAAkBlmmB,GAChB,MAAsB,kBAARA,CAChB,EAoWEovmB,SA5VF,SAAkBpvmB,GAChB,MAAsB,kBAARA,CAChB,EA2VEtvF,SAAUA,EACVmoK,cAAeA,EACfoloB,YAAaA,EACbpoR,OAAQA,EACR41R,OAAQA,EACRC,OAAQA,EACR73mB,WAAYA,EACZ23mB,SAnRF,SAAkBxrtB,GAChB,OAAOtvF,EAASsvF,IAAQ6zG,EAAW7zG,EAAI+hsB,KACzC,EAkRE6pB,kBAAmBA,EACnBhF,qBAjOF,WACE,OAAyB,qBAAdrmyB,WAAoD,gBAAtBA,UAAUujtB,SACY,iBAAtBvjtB,UAAUujtB,SACY,OAAtBvjtB,UAAUujtB,WAI/B,qBAAXrzuB,QACa,qBAAbmtB,SAEX,EAwNEzI,QAASA,EACT8mK,MA/JF,SAASA,IACP,IAAI5mL,EAAS,CAAC,EACd,SAAS24zB,EAAYhutB,EAAK5qF,GACpByjK,EAAcxjL,EAAO+f,KAASyjK,EAAc74E,GAC9C3qG,EAAO+f,GAAO6mK,EAAM5mL,EAAO+f,GAAM4qF,GACxB64E,EAAc74E,GACvB3qG,EAAO+f,GAAO6mK,EAAM,CAAC,EAAGj8E,GACfttF,EAAQstF,GACjB3qG,EAAO+f,GAAO4qF,EAAIzpF,QAElBlhB,EAAO+f,GAAO4qF,CAElB,CAEA,IAAK,IAAI7uG,EAAI,EAAGqsD,EAAIvoC,UAAUlkB,OAAQI,EAAIqsD,EAAGrsD,IAC3CgkB,EAAQF,UAAU9jB,GAAI68zB,GAExB,OAAO34zB,CACT,EA8IEmihB,OApIF,SAAgBtmhB,EAAGy3B,EAAGwB,GAQpB,OAPAhV,EAAQwT,GAAG,SAAqBq3E,EAAK5qF,GAEjClkB,EAAEkkB,GADA+U,GAA0B,oBAAR61E,EACXrvG,EAAKqvG,EAAK71E,GAEV61E,CAEb,IACO9uG,CACT,EA4HEuvC,KAxPF,SAAc3I,GACZ,OAAOA,EAAI2I,KAAO3I,EAAI2I,OAAS3I,EAAIhnC,QAAQ,aAAc,GAC3D,EAuPEm9zB,SArHF,SAAkB3trB,GAIhB,OAH8B,QAA1BA,EAAQ7uI,WAAW,KACrB6uI,EAAUA,EAAQ/pH,MAAM,IAEnB+pH,CACT,EAiHE8kmB,SAvGF,SAAkB5utB,EAAa03yB,EAAkBhxzB,EAAO8szB,GACtDxzyB,EAAYnmB,UAAY6f,OAAOgZ,OAAOglyB,EAAiB79zB,UAAW25zB,GAClExzyB,EAAYnmB,UAAUmmB,YAAcA,EACpCtZ,GAASgT,OAAOkZ,OAAO5S,EAAYnmB,UAAW6M,EAChD,EAoGEitzB,aA1FF,SAAsBgE,EAAWC,EAASxpzB,GACxC,IAAI1H,EACA/L,EACAuiH,EACAw9C,EAAS,CAAC,EAEdk9pB,EAAUA,GAAW,CAAC,EAEtB,EAAG,CAGD,IADAj9zB,GADA+L,EAAQgT,OAAOovF,oBAAoB6utB,IACzBp9zB,OACHI,KAAM,GAEN+/J,EADLx9C,EAAOx2G,EAAM/L,MAEXi9zB,EAAQ16sB,GAAQy6sB,EAAUz6sB,GAC1Bw9C,EAAOx9C,IAAQ,GAGnBy6sB,EAAYj+yB,OAAO67K,eAAeoioB,EACpC,OAASA,KAAevpzB,GAAUA,EAAOupzB,EAAWC,KAAaD,IAAcj+yB,OAAO7f,WAEtF,OAAO+9zB,CACT,EAqEEP,OAAQA,EACRC,WAAYA,EACZhpxB,SA9DF,SAAkBhN,EAAK45X,EAAc7kZ,GACnCirB,EAAMjnC,OAAOinC,SACIt/B,IAAbqU,GAA0BA,EAAWirB,EAAI/mC,UAC3C8b,EAAWirB,EAAI/mC,QAEjB8b,GAAY6kZ,EAAa3ga,OACzB,IAAI2uH,EAAY5nF,EAAIvmC,QAAQmga,EAAc7kZ,GAC1C,OAAsB,IAAf6yG,GAAoBA,IAAc7yG,CAC3C,EAuDE4hH,QA/CF,SAAiB4+rB,GACf,IAAKA,EAAO,OAAO,KACnB,IAAIl8zB,EAAIk8zB,EAAMt8zB,OACd,GAAIktzB,EAAY9szB,GAAI,OAAO,KAE3B,IADA,IAAIyiB,EAAM,IAAInB,MAAMthB,GACbA,KAAM,GACXyiB,EAAIziB,GAAKk8zB,EAAMl8zB,GAEjB,OAAOyiB,CACT,EAuCEs5yB,aAAcA,EACdrB,WAAYA,oCCldd9jyB,EAAQiI,WAuCR,SAAqBq+xB,GACnB,IAAIC,EAAOC,EAAQF,GACfG,EAAWF,EAAK,GAChBG,EAAkBH,EAAK,GAC3B,OAAuC,GAA9BE,EAAWC,GAAuB,EAAKA,CAClD,EA3CA1myB,EAAQ8nF,YAiDR,SAAsBw+sB,GACpB,IAAIpjF,EAcA95uB,EAbAm9zB,EAAOC,EAAQF,GACfG,EAAWF,EAAK,GAChBG,EAAkBH,EAAK,GAEvB16yB,EAAM,IAAI86yB,EAVhB,SAAsBL,EAAKG,EAAUC,GACnC,OAAuC,GAA9BD,EAAWC,GAAuB,EAAKA,CAClD,CAQoBE,CAAYN,EAAKG,EAAUC,IAEzCG,EAAU,EAGVl4yB,EAAM+3yB,EAAkB,EACxBD,EAAW,EACXA,EAGJ,IAAKr9zB,EAAI,EAAGA,EAAIulB,EAAKvlB,GAAK,EACxB85uB,EACG4jF,EAAUR,EAAI58zB,WAAWN,KAAO,GAChC09zB,EAAUR,EAAI58zB,WAAWN,EAAI,KAAO,GACpC09zB,EAAUR,EAAI58zB,WAAWN,EAAI,KAAO,EACrC09zB,EAAUR,EAAI58zB,WAAWN,EAAI,IAC/ByiB,EAAIg7yB,KAAc3jF,GAAO,GAAM,IAC/Br3tB,EAAIg7yB,KAAc3jF,GAAO,EAAK,IAC9Br3tB,EAAIg7yB,KAAmB,IAAN3jF,EAGK,IAApBwjF,IACFxjF,EACG4jF,EAAUR,EAAI58zB,WAAWN,KAAO,EAChC09zB,EAAUR,EAAI58zB,WAAWN,EAAI,KAAO,EACvCyiB,EAAIg7yB,KAAmB,IAAN3jF,GAGK,IAApBwjF,IACFxjF,EACG4jF,EAAUR,EAAI58zB,WAAWN,KAAO,GAChC09zB,EAAUR,EAAI58zB,WAAWN,EAAI,KAAO,EACpC09zB,EAAUR,EAAI58zB,WAAWN,EAAI,KAAO,EACvCyiB,EAAIg7yB,KAAc3jF,GAAO,EAAK,IAC9Br3tB,EAAIg7yB,KAAmB,IAAN3jF,GAGnB,OAAOr3tB,CACT,EA5FAmU,EAAQuiF,cAkHR,SAAwBquW,GAQtB,IAPA,IAAIsyR,EACAv0tB,EAAMiic,EAAM5nd,OACZ+9zB,EAAap4yB,EAAM,EACnB2yB,EAAQ,GACR0lxB,EAAiB,MAGZ59zB,EAAI,EAAG69zB,EAAOt4yB,EAAMo4yB,EAAY39zB,EAAI69zB,EAAM79zB,GAAK49zB,EACtD1lxB,EAAMt3B,KAAKk9yB,EAAYt2W,EAAOxnd,EAAIA,EAAI49zB,EAAkBC,EAAOA,EAAQ79zB,EAAI49zB,IAI1D,IAAfD,GACF7jF,EAAMtyR,EAAMjic,EAAM,GAClB2yB,EAAMt3B,KACJs5sB,EAAO4f,GAAO,GACd5f,EAAQ4f,GAAO,EAAK,IACpB,OAEsB,IAAf6jF,IACT7jF,GAAOtyR,EAAMjic,EAAM,IAAM,GAAKiic,EAAMjic,EAAM,GAC1C2yB,EAAMt3B,KACJs5sB,EAAO4f,GAAO,IACd5f,EAAQ4f,GAAO,EAAK,IACpB5f,EAAQ4f,GAAO,EAAK,IACpB,MAIJ,OAAO5hsB,EAAMlyB,KAAK,GACpB,EA1IA,IALA,IAAIk0sB,EAAS,GACTwjG,EAAY,GACZH,EAA4B,qBAAfzgyB,WAA6BA,WAAaxb,MAEvD2E,EAAO,mEACFjmB,EAAI,EAAsBA,EAAbimB,KAAwBjmB,EAC5Ck6tB,EAAOl6tB,GAAKimB,EAAKjmB,GACjB09zB,EAAUz3yB,EAAK3lB,WAAWN,IAAMA,EAQlC,SAASo9zB,EAASF,GAChB,IAAI33yB,EAAM23yB,EAAIt9zB,OAEd,GAAI2lB,EAAM,EAAI,EACZ,MAAM,IAAIpmB,MAAM,kDAKlB,IAAIk+zB,EAAWH,EAAI98zB,QAAQ,KAO3B,OANkB,IAAdi9zB,IAAiBA,EAAW93yB,GAMzB,CAAC83yB,EAJcA,IAAa93yB,EAC/B,EACA,EAAK83yB,EAAW,EAGtB,CAmEA,SAASS,EAAat2W,EAAO34c,EAAOC,GAGlC,IAFA,IAAIgruB,EARoBh5sB,EASpB4C,EAAS,GACJ1jC,EAAI6O,EAAO7O,EAAI8O,EAAK9O,GAAK,EAChC85uB,GACItyR,EAAMxnd,IAAM,GAAM,WAClBwnd,EAAMxnd,EAAI,IAAM,EAAK,QACP,IAAfwnd,EAAMxnd,EAAI,IACb0jC,EAAO9iB,KAdFs5sB,GADiBp5rB,EAeMg5sB,IAdT,GAAK,IACxB5f,EAAOp5rB,GAAO,GAAK,IACnBo5rB,EAAOp5rB,GAAO,EAAI,IAClBo5rB,EAAa,GAANp5rB,IAaT,OAAO4C,EAAO1d,KAAK,GACrB,CAlGA03yB,EAAU,IAAIp9zB,WAAW,IAAM,GAC/Bo9zB,EAAU,IAAIp9zB,WAAW,IAAM,2BCnB/B,SAAW2jN,EAAQrtL,GACjB,aAGA,SAASsusB,EAAQr2nB,EAAKtiE,GACpB,IAAKsiE,EAAK,MAAM,IAAI1vG,MAAMotC,GAAO,mBACnC,CAIA,SAAS0nsB,EAAUnlsB,EAAMivxB,GACvBjvxB,EAAKkvxB,OAASD,EACd,IAAIE,EAAW,WAAa,EAC5BA,EAAS/+zB,UAAY6+zB,EAAU7+zB,UAC/B4vC,EAAK5vC,UAAY,IAAI++zB,EACrBnvxB,EAAK5vC,UAAUmmB,YAAcypB,CAC/B,CAIA,SAASovxB,EAAIx2xB,EAAQs8I,EAAMm6oB,GACzB,GAAID,EAAGE,KAAK12xB,GACV,OAAOA,EAGT1oC,KAAKipC,SAAW,EAChBjpC,KAAKmiiB,MAAQ,KACbniiB,KAAKY,OAAS,EAGdZ,KAAKmN,IAAM,KAEI,OAAXu7B,IACW,OAATs8I,GAA0B,OAATA,IACnBm6oB,EAASn6oB,EACTA,EAAO,IAGThlL,KAAK42uB,MAAMlusB,GAAU,EAAGs8I,GAAQ,GAAIm6oB,GAAU,MAElD,CAUA,IAAIz9xB,EATkB,kBAAXujL,EACTA,EAAOrtL,QAAUsnyB,EAEjBtnyB,EAAQsnyB,GAAKA,EAGfA,EAAGA,GAAKA,EACRA,EAAGG,SAAW,GAGd,IAEI39xB,EADoB,qBAAXphC,QAAmD,qBAAlBA,OAAOohC,OACxCphC,OAAOohC,OAEP1K,EAAAA,OAAAA,MAEb,CAAE,MAAOj3B,GACT,CA+HA,SAASu/zB,EAAevotB,EAAQ3jF,GAC9B,IAAInyB,EAAI81G,EAAOz1G,WAAW8xB,GAE1B,OAAInyB,GAAK,IAAMA,GAAK,GACXA,EAAI,GAEFA,GAAK,IAAMA,GAAK,IAClBA,EAAI,GAGHA,EAAI,GAAM,EAEtB,CAEA,SAASs+zB,EAAcxotB,EAAQyotB,EAAYpsyB,GACzC,IAAI/yB,EAAIi/zB,EAAcvotB,EAAQ3jF,GAI9B,OAHIA,EAAQ,GAAKosyB,IACfn/zB,GAAKi/zB,EAAcvotB,EAAQ3jF,EAAQ,IAAM,GAEpC/yB,CACT,CA6CA,SAASo/zB,EAAW93xB,EAAK93B,EAAOC,EAAKmtG,GAGnC,IAFA,IAAI58G,EAAI,EACJkmB,EAAMqiB,KAAKuZ,IAAIxa,EAAI/mC,OAAQkP,GACtB9O,EAAI6O,EAAO7O,EAAIulB,EAAKvlB,IAAK,CAChC,IAAIC,EAAI0mC,EAAIrmC,WAAWN,GAAK,GAE5BX,GAAK48G,EAIH58G,GADEY,GAAK,GACFA,EAAI,GAAK,GAGLA,GAAK,GACTA,EAAI,GAAK,GAITA,CAET,CACA,OAAOZ,CACT,CApNA6+zB,EAAGE,KAAO,SAAet9xB,GACvB,OAAIA,aAAeo9xB,GAIJ,OAARp9xB,GAA+B,kBAARA,GAC5BA,EAAIzb,YAAYg5yB,WAAaH,EAAGG,UAAY/8yB,MAAMC,QAAQuf,EAAIqggB,MAClE,EAEA+8R,EAAGl8wB,IAAM,SAAc69E,EAAMH,GAC3B,OAAIG,EAAKmiS,IAAItiS,GAAS,EAAUG,EACzBH,CACT,EAEAw+rB,EAAG/8wB,IAAM,SAAc0+E,EAAMH,GAC3B,OAAIG,EAAKmiS,IAAItiS,GAAS,EAAUG,EACzBH,CACT,EAEAw+rB,EAAGh/zB,UAAU02uB,MAAQ,SAAelusB,EAAQs8I,EAAMm6oB,GAChD,GAAsB,kBAAXz2xB,EACT,OAAO1oC,KAAK0/zB,YAAYh3xB,EAAQs8I,EAAMm6oB,GAGxC,GAAsB,kBAAXz2xB,EACT,OAAO1oC,KAAK2/zB,WAAWj3xB,EAAQs8I,EAAMm6oB,GAG1B,QAATn6oB,IACFA,EAAO,IAETkhjB,EAAOlhjB,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,IAGnD,IAAIn1K,EAAQ,EACM,OAFlB64B,EAASA,EAAOnnC,WAAWZ,QAAQ,OAAQ,KAEhC,KACTkP,IACA7P,KAAKipC,SAAW,GAGdp5B,EAAQ64B,EAAO9nC,SACJ,KAATokL,EACFhlL,KAAK4/zB,UAAUl3xB,EAAQ74B,EAAOsvzB,IAE9Bn/zB,KAAK6/zB,WAAWn3xB,EAAQs8I,EAAMn1K,GACf,OAAXsvzB,GACFn/zB,KAAK2/zB,WAAW3/zB,KAAKs+H,UAAW0mD,EAAMm6oB,IAI9C,EAEAD,EAAGh/zB,UAAUw/zB,YAAc,SAAsBh3xB,EAAQs8I,EAAMm6oB,GACzDz2xB,EAAS,IACX1oC,KAAKipC,SAAW,EAChBP,GAAUA,GAERA,EAAS,UACX1oC,KAAKmiiB,MAAQ,CAAW,SAATz5f,GACf1oC,KAAKY,OAAS,GACL8nC,EAAS,kBAClB1oC,KAAKmiiB,MAAQ,CACF,SAATz5f,EACCA,EAAS,SAAa,UAEzB1oC,KAAKY,OAAS,IAEdsluB,EAAOx9rB,EAAS,kBAChB1oC,KAAKmiiB,MAAQ,CACF,SAATz5f,EACCA,EAAS,SAAa,SACvB,GAEF1oC,KAAKY,OAAS,GAGD,OAAXu+zB,GAGJn/zB,KAAK2/zB,WAAW3/zB,KAAKs+H,UAAW0mD,EAAMm6oB,EACxC,EAEAD,EAAGh/zB,UAAUy/zB,WAAa,SAAqBj3xB,EAAQs8I,EAAMm6oB,GAG3D,GADAj5F,EAAgC,kBAAlBx9rB,EAAO9nC,QACjB8nC,EAAO9nC,QAAU,EAGnB,OAFAZ,KAAKmiiB,MAAQ,CAAE,GACfniiB,KAAKY,OAAS,EACPZ,KAGTA,KAAKY,OAASgoC,KAAK8wI,KAAKhxI,EAAO9nC,OAAS,GACxCZ,KAAKmiiB,MAAQ,IAAI7/gB,MAAMtiB,KAAKY,QAC5B,IAAK,IAAII,EAAI,EAAGA,EAAIhB,KAAKY,OAAQI,IAC/BhB,KAAKmiiB,MAAMnhiB,GAAK,EAGlB,IAAIw6B,EAAG+xB,EACHynD,EAAM,EACV,GAAe,OAAXmqtB,EACF,IAAKn+zB,EAAI0nC,EAAO9nC,OAAS,EAAG46B,EAAI,EAAGx6B,GAAK,EAAGA,GAAK,EAC9CusD,EAAI7kB,EAAO1nC,GAAM0nC,EAAO1nC,EAAI,IAAM,EAAM0nC,EAAO1nC,EAAI,IAAM,GACzDhB,KAAKmiiB,MAAM3mgB,IAAO+xB,GAAKynD,EAAO,SAC9Bh1G,KAAKmiiB,MAAM3mgB,EAAI,GAAM+xB,IAAO,GAAKynD,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACPx5E,UAGC,GAAe,OAAX2jyB,EACT,IAAKn+zB,EAAI,EAAGw6B,EAAI,EAAGx6B,EAAI0nC,EAAO9nC,OAAQI,GAAK,EACzCusD,EAAI7kB,EAAO1nC,GAAM0nC,EAAO1nC,EAAI,IAAM,EAAM0nC,EAAO1nC,EAAI,IAAM,GACzDhB,KAAKmiiB,MAAM3mgB,IAAO+xB,GAAKynD,EAAO,SAC9Bh1G,KAAKmiiB,MAAM3mgB,EAAI,GAAM+xB,IAAO,GAAKynD,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACPx5E,KAIN,OAAOx7B,KAAK26hB,OACd,EAwBAukS,EAAGh/zB,UAAU0/zB,UAAY,SAAoBl3xB,EAAQ74B,EAAOsvzB,GAE1Dn/zB,KAAKY,OAASgoC,KAAK8wI,MAAMhxI,EAAO9nC,OAASiP,GAAS,GAClD7P,KAAKmiiB,MAAQ,IAAI7/gB,MAAMtiB,KAAKY,QAC5B,IAAK,IAAII,EAAI,EAAGA,EAAIhB,KAAKY,OAAQI,IAC/BhB,KAAKmiiB,MAAMnhiB,GAAK,EAIlB,IAGIusD,EAHAynD,EAAM,EACNx5E,EAAI,EAGR,GAAe,OAAX2jyB,EACF,IAAKn+zB,EAAI0nC,EAAO9nC,OAAS,EAAGI,GAAK6O,EAAO7O,GAAK,EAC3CusD,EAAIgywB,EAAa72xB,EAAQ74B,EAAO7O,IAAMg0G,EACtCh1G,KAAKmiiB,MAAM3mgB,IAAU,SAAJ+xB,EACbynD,GAAO,IACTA,GAAO,GACPx5E,GAAK,EACLx7B,KAAKmiiB,MAAM3mgB,IAAM+xB,IAAM,IAEvBynD,GAAO,OAKX,IAAKh0G,GADa0nC,EAAO9nC,OAASiP,GACX,IAAM,EAAIA,EAAQ,EAAIA,EAAO7O,EAAI0nC,EAAO9nC,OAAQI,GAAK,EAC1EusD,EAAIgywB,EAAa72xB,EAAQ74B,EAAO7O,IAAMg0G,EACtCh1G,KAAKmiiB,MAAM3mgB,IAAU,SAAJ+xB,EACbynD,GAAO,IACTA,GAAO,GACPx5E,GAAK,EACLx7B,KAAKmiiB,MAAM3mgB,IAAM+xB,IAAM,IAEvBynD,GAAO,EAKbh1G,KAAK26hB,OACP,EA0BAukS,EAAGh/zB,UAAU2/zB,WAAa,SAAqBn3xB,EAAQs8I,EAAMn1K,GAE3D7P,KAAKmiiB,MAAQ,CAAE,GACfniiB,KAAKY,OAAS,EAGd,IAAK,IAAIk/zB,EAAU,EAAGC,EAAU,EAAGA,GAAW,SAAWA,GAAW/6oB,EAClE86oB,IAEFA,IACAC,EAAWA,EAAU/6oB,EAAQ,EAO7B,IALA,IAAIrwE,EAAQjsE,EAAO9nC,OAASiP,EACxB2sB,EAAMm4E,EAAQmrtB,EACdhwzB,EAAM84B,KAAKuZ,IAAIwyD,EAAOA,EAAQn4E,GAAO3sB,EAErC0hO,EAAO,EACFvwO,EAAI6O,EAAO7O,EAAI8O,EAAK9O,GAAK8+zB,EAChCvulB,EAAOkulB,EAAU/2xB,EAAQ1nC,EAAGA,EAAI8+zB,EAAS96oB,GAEzChlL,KAAKgg0B,MAAMD,GACP//zB,KAAKmiiB,MAAM,GAAK5wT,EAAO,SACzBvxO,KAAKmiiB,MAAM,IAAM5wT,EAEjBvxO,KAAKig0B,OAAO1ulB,GAIhB,GAAY,IAAR/0M,EAAW,CACb,IAAIumB,EAAM,EAGV,IAFAwuL,EAAOkulB,EAAU/2xB,EAAQ1nC,EAAG0nC,EAAO9nC,OAAQokL,GAEtChkL,EAAI,EAAGA,EAAIw7B,EAAKx7B,IACnB+hD,GAAOiiI,EAGThlL,KAAKgg0B,MAAMj9wB,GACP/iD,KAAKmiiB,MAAM,GAAK5wT,EAAO,SACzBvxO,KAAKmiiB,MAAM,IAAM5wT,EAEjBvxO,KAAKig0B,OAAO1ulB,EAEhB,CAEAvxO,KAAK26hB,OACP,EAEAukS,EAAGh/zB,UAAUu3G,KAAO,SAAe2zF,GACjCA,EAAK+2V,MAAQ,IAAI7/gB,MAAMtiB,KAAKY,QAC5B,IAAK,IAAII,EAAI,EAAGA,EAAIhB,KAAKY,OAAQI,IAC/BoqM,EAAK+2V,MAAMnhiB,GAAKhB,KAAKmiiB,MAAMnhiB,GAE7BoqM,EAAKxqM,OAASZ,KAAKY,OACnBwqM,EAAKniK,SAAWjpC,KAAKipC,SACrBmiK,EAAKj+L,IAAMnN,KAAKmN,GAClB,EAEA+xzB,EAAGh/zB,UAAU+wC,MAAQ,WACnB,IAAI5wC,EAAI,IAAI6+zB,EAAG,MAEf,OADAl/zB,KAAKy3G,KAAKp3G,GACHA,CACT,EAEA6+zB,EAAGh/zB,UAAUgg0B,QAAU,SAAkBn4zB,GACvC,KAAO/H,KAAKY,OAASmH,GACnB/H,KAAKmiiB,MAAMniiB,KAAKY,UAAY,EAE9B,OAAOZ,IACT,EAGAk/zB,EAAGh/zB,UAAUy6hB,MAAQ,WACnB,KAAO36hB,KAAKY,OAAS,GAAqC,IAAhCZ,KAAKmiiB,MAAMniiB,KAAKY,OAAS,IACjDZ,KAAKY,SAEP,OAAOZ,KAAKmg0B,WACd,EAEAjB,EAAGh/zB,UAAUig0B,UAAY,WAKvB,OAHoB,IAAhBng0B,KAAKY,QAAkC,IAAlBZ,KAAKmiiB,MAAM,KAClCniiB,KAAKipC,SAAW,GAEXjpC,IACT,EAEAk/zB,EAAGh/zB,UAAU67G,QAAU,WACrB,OAAQ/7G,KAAKmN,IAAM,UAAY,SAAWnN,KAAKuB,SAAS,IAAM,GAChE,EAgCA,IAAI6+zB,EAAQ,CACV,GACA,IACA,KACA,MACA,OACA,QACA,SACA,UACA,WACA,YACA,aACA,cACA,eACA,gBACA,iBACA,kBACA,mBACA,oBACA,qBACA,sBACA,uBACA,wBACA,yBACA,0BACA,2BACA,6BAGEC,EAAa,CACf,EAAG,EACH,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EACvB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGhBC,EAAa,CACf,EAAG,EACH,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAC5D,SAAU,IAAU,SAAU,SAAU,SAAU,QAAS,SAC3D,SAAU,SAAU,SAAU,SAAU,KAAU,QAAS,QAC3D,QAAS,QAAS,QAAS,SAAU,SAAU,SAAU,SACzD,MAAU,SAAU,SAAU,SAAU,SAAU,SAAU,UAsjB9D,SAASC,EAAY18sB,EAAM/hF,EAAKwH,GAC9BA,EAAIL,SAAWnH,EAAImH,SAAW46E,EAAK56E,SACnC,IAAI1iB,EAAOs9F,EAAKjjH,OAASkhC,EAAIlhC,OAAU,EACvC0oC,EAAI1oC,OAAS2lB,EACbA,EAAOA,EAAM,EAAK,EAGlB,IAAIxlB,EAAoB,EAAhB8iH,EAAKs+a,MAAM,GACf3pgB,EAAmB,EAAfsJ,EAAIqggB,MAAM,GACd9hiB,EAAIU,EAAIy3B,EAERyhF,EAAS,SAAJ55G,EACLkpC,EAASlpC,EAAI,SAAa,EAC9BipC,EAAI64f,MAAM,GAAKlob,EAEf,IAAK,IAAIh/E,EAAI,EAAGA,EAAI1U,EAAK0U,IAAK,CAM5B,IAHA,IAAIulyB,EAASj3xB,IAAU,GACnBk3xB,EAAgB,SAARl3xB,EACRm3xB,EAAO93xB,KAAKuZ,IAAIlnB,EAAG6G,EAAIlhC,OAAS,GAC3B46B,EAAIoN,KAAKoa,IAAI,EAAG/nB,EAAI4oF,EAAKjjH,OAAS,GAAI46B,GAAKklyB,EAAMllyB,IAAK,CAC7D,IAAIx6B,EAAKi6B,EAAIO,EAAK,EAIlBglyB,IADAng0B,GAFAU,EAAoB,EAAhB8iH,EAAKs+a,MAAMnhiB,KACfw3B,EAAmB,EAAfsJ,EAAIqggB,MAAM3mgB,IACFilyB,GACG,SAAa,EAC5BA,EAAY,SAAJpg0B,CACV,CACAipC,EAAI64f,MAAMlngB,GAAa,EAARwlyB,EACfl3xB,EAAiB,EAATi3xB,CACV,CAOA,OANc,IAAVj3xB,EACFD,EAAI64f,MAAMlngB,GAAa,EAARsO,EAEfD,EAAI1oC,SAGC0oC,EAAIqxf,OACb,CA1lBAukS,EAAGh/zB,UAAUqB,SAAW,SAAmByjL,EAAMpqK,GAI/C,IAAI0uB,EACJ,GAHA1uB,EAAoB,EAAVA,GAAe,EAGZ,MAJboqK,EAAOA,GAAQ,KAIa,QAATA,EAAgB,CACjC17I,EAAM,GAGN,IAFA,IAAI0rE,EAAM,EACNzrE,EAAQ,EACHvoC,EAAI,EAAGA,EAAIhB,KAAKY,OAAQI,IAAK,CACpC,IAAIusD,EAAIvtD,KAAKmiiB,MAAMnhiB,GACfuwO,GAA+B,UAArBhkL,GAAKynD,EAAOzrE,IAAmBhoC,SAAS,IAGpD+nC,EADY,KADdC,EAASgkB,IAAO,GAAKynD,EAAQ,WACVh0G,IAAMhB,KAAKY,OAAS,EAC/Bw/zB,EAAM,EAAI7ulB,EAAK3wO,QAAU2wO,EAAOjoM,EAEhCioM,EAAOjoM,GAEf0rE,GAAO,IACI,KACTA,GAAO,GACPh0G,IAEJ,CAIA,IAHc,IAAVuoC,IACFD,EAAMC,EAAMhoC,SAAS,IAAM+nC,GAEtBA,EAAI1oC,OAASga,IAAY,GAC9B0uB,EAAM,IAAMA,EAKd,OAHsB,IAAlBtpC,KAAKipC,WACPK,EAAM,IAAMA,GAEPA,CACT,CAEA,GAAI07I,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,GAAI,CAElD,IAAI27oB,EAAYN,EAAWr7oB,GAEvB47oB,EAAYN,EAAWt7oB,GAC3B17I,EAAM,GACN,IAAIroC,EAAIjB,KAAKixC,QAEb,IADAhwC,EAAEgoC,SAAW,GACLhoC,EAAE4/zB,UAAU,CAClB,IAAIxg0B,EAAIY,EAAE6/zB,KAAKF,GAAWr/zB,SAASyjL,GAMjC17I,GALFroC,EAAIA,EAAE8/zB,MAAMH,IAELC,SAGCxg0B,EAAIipC,EAFJ82xB,EAAMO,EAAYtg0B,EAAEO,QAAUP,EAAIipC,CAI5C,CAIA,IAHItpC,KAAK6g0B,WACPv3xB,EAAM,IAAMA,GAEPA,EAAI1oC,OAASga,IAAY,GAC9B0uB,EAAM,IAAMA,EAKd,OAHsB,IAAlBtpC,KAAKipC,WACPK,EAAM,IAAMA,GAEPA,CACT,CAEA48rB,GAAO,EAAO,kCAChB,EAEAg5F,EAAGh/zB,UAAUygN,SAAW,WACtB,IAAIrkG,EAAMt8G,KAAKmiiB,MAAM,GASrB,OARoB,IAAhBniiB,KAAKY,OACP07G,GAAuB,SAAhBt8G,KAAKmiiB,MAAM,GACO,IAAhBniiB,KAAKY,QAAkC,IAAlBZ,KAAKmiiB,MAAM,GAEzC7lb,GAAO,iBAAoC,SAAhBt8G,KAAKmiiB,MAAM,GAC7BniiB,KAAKY,OAAS,GACvBsluB,GAAO,EAAO,8CAEU,IAAlBlmuB,KAAKipC,UAAmBqzE,EAAMA,CACxC,EAEA4itB,EAAGh/zB,UAAUm8G,OAAS,WACpB,OAAOr8G,KAAKuB,SAAS,GACvB,EAEA29zB,EAAGh/zB,UAAU86xB,SAAW,SAAmBmkC,EAAQv+zB,GAEjD,OADAsluB,EAAyB,qBAAXxksB,GACP1hC,KAAKgh0B,YAAYt/xB,EAAQy9xB,EAAQv+zB,EAC1C,EAEAs+zB,EAAGh/zB,UAAUo+H,QAAU,SAAkB6gsB,EAAQv+zB,GAC/C,OAAOZ,KAAKgh0B,YAAY1+yB,MAAO68yB,EAAQv+zB,EACzC,EAEAs+zB,EAAGh/zB,UAAU8g0B,YAAc,SAAsBC,EAAW9B,EAAQv+zB,GAClE,IAAIi/B,EAAa7/B,KAAK6/B,aAClBqhyB,EAAYtg0B,GAAUgoC,KAAKoa,IAAI,EAAGnjB,GACtCqmsB,EAAOrmsB,GAAcqhyB,EAAW,yCAChCh7F,EAAOg7F,EAAY,EAAG,+BAEtBlh0B,KAAK26hB,QACL,IAGInigB,EAAGx3B,EAHH47G,EAA0B,OAAXuitB,EACf/ktB,EAAM,IAAI6mtB,EAAUC,GAGpBrlyB,EAAI77B,KAAKixC,QACb,GAAK2rE,EAYE,CACL,IAAK57G,EAAI,GAAI66B,EAAEglyB,SAAU7/zB,IACvBw3B,EAAIqD,EAAEslyB,MAAM,KACZtlyB,EAAEulyB,OAAO,GAEThntB,EAAIp5G,GAAKw3B,EAGX,KAAOx3B,EAAIkg0B,EAAWlg0B,IACpBo5G,EAAIp5G,GAAK,CAEb,KAvBmB,CAEjB,IAAKA,EAAI,EAAGA,EAAIkg0B,EAAYrhyB,EAAY7+B,IACtCo5G,EAAIp5G,GAAK,EAGX,IAAKA,EAAI,GAAI66B,EAAEglyB,SAAU7/zB,IACvBw3B,EAAIqD,EAAEslyB,MAAM,KACZtlyB,EAAEulyB,OAAO,GAEThntB,EAAI8mtB,EAAYlg0B,EAAI,GAAKw3B,CAE7B,CAaA,OAAO4hF,CACT,EAEIxxE,KAAKy4xB,MACPnC,EAAGh/zB,UAAUoh0B,WAAa,SAAqB/zwB,GAC7C,OAAO,GAAK3kB,KAAKy4xB,MAAM9zwB,EACzB,EAEA2xwB,EAAGh/zB,UAAUoh0B,WAAa,SAAqB/zwB,GAC7C,IAAI9sD,EAAI8sD,EACJltD,EAAI,EAiBR,OAhBII,GAAK,OACPJ,GAAK,GACLI,KAAO,IAELA,GAAK,KACPJ,GAAK,EACLI,KAAO,GAELA,GAAK,IACPJ,GAAK,EACLI,KAAO,GAELA,GAAK,IACPJ,GAAK,EACLI,KAAO,GAEFJ,EAAII,CACb,EAGFy+zB,EAAGh/zB,UAAUqh0B,UAAY,SAAoBh0wB,GAE3C,GAAU,IAANA,EAAS,OAAO,GAEpB,IAAI9sD,EAAI8sD,EACJltD,EAAI,EAoBR,OAnBqB,KAAZ,KAAJI,KACHJ,GAAK,GACLI,KAAO,IAEU,KAAV,IAAJA,KACHJ,GAAK,EACLI,KAAO,GAES,KAAT,GAAJA,KACHJ,GAAK,EACLI,KAAO,GAES,KAAT,EAAJA,KACHJ,GAAK,EACLI,KAAO,GAES,KAAT,EAAJA,IACHJ,IAEKA,CACT,EAGA6+zB,EAAGh/zB,UAAUw9M,UAAY,WACvB,IAAInwJ,EAAIvtD,KAAKmiiB,MAAMniiB,KAAKY,OAAS,GAC7Bo5G,EAAKh6G,KAAKsh0B,WAAW/zwB,GACzB,OAA2B,IAAnBvtD,KAAKY,OAAS,GAAUo5G,CAClC,EAgBAkltB,EAAGh/zB,UAAUsh0B,SAAW,WACtB,GAAIxh0B,KAAK6g0B,SAAU,OAAO,EAG1B,IADA,IAAIxg0B,EAAI,EACCW,EAAI,EAAGA,EAAIhB,KAAKY,OAAQI,IAAK,CACpC,IAAIw3B,EAAIx4B,KAAKuh0B,UAAUvh0B,KAAKmiiB,MAAMnhiB,IAElC,GADAX,GAAKm4B,EACK,KAANA,EAAU,KAChB,CACA,OAAOn4B,CACT,EAEA6+zB,EAAGh/zB,UAAU2/B,WAAa,WACxB,OAAO+I,KAAK8wI,KAAK15K,KAAK09M,YAAc,EACtC,EAEAwhnB,EAAGh/zB,UAAUuh0B,OAAS,SAAiB5vzB,GACrC,OAAsB,IAAlB7R,KAAKipC,SACAjpC,KAAK6oC,MAAM64xB,MAAM7vzB,GAAO8vzB,MAAM,GAEhC3h0B,KAAKixC,OACd,EAEAiuxB,EAAGh/zB,UAAU0h0B,SAAW,SAAmB/vzB,GACzC,OAAI7R,KAAK6h0B,MAAMhwzB,EAAQ,GACd7R,KAAK8h0B,KAAKjwzB,GAAO8vzB,MAAM,GAAGI,OAE5B/h0B,KAAKixC,OACd,EAEAiuxB,EAAGh/zB,UAAU8h0B,MAAQ,WACnB,OAAyB,IAAlBhi0B,KAAKipC,QACd,EAGAi2xB,EAAGh/zB,UAAU+h0B,IAAM,WACjB,OAAOji0B,KAAKixC,QAAQ8wxB,MACtB,EAEA7C,EAAGh/zB,UAAU6h0B,KAAO,WAKlB,OAJK/h0B,KAAK6g0B,WACR7g0B,KAAKipC,UAAY,GAGZjpC,IACT,EAGAk/zB,EAAGh/zB,UAAUgi0B,KAAO,SAAepgyB,GACjC,KAAO9hC,KAAKY,OAASkhC,EAAIlhC,QACvBZ,KAAKmiiB,MAAMniiB,KAAKY,UAAY,EAG9B,IAAK,IAAII,EAAI,EAAGA,EAAI8gC,EAAIlhC,OAAQI,IAC9BhB,KAAKmiiB,MAAMnhiB,GAAKhB,KAAKmiiB,MAAMnhiB,GAAK8gC,EAAIqggB,MAAMnhiB,GAG5C,OAAOhB,KAAK26hB,OACd,EAEAukS,EAAGh/zB,UAAUii0B,IAAM,SAAcrgyB,GAE/B,OADAoksB,EAA0C,KAAlClmuB,KAAKipC,SAAWnH,EAAImH,WACrBjpC,KAAKki0B,KAAKpgyB,EACnB,EAGAo9xB,EAAGh/zB,UAAUki0B,GAAK,SAAatgyB,GAC7B,OAAI9hC,KAAKY,OAASkhC,EAAIlhC,OAAeZ,KAAKixC,QAAQkxxB,IAAIrgyB,GAC/CA,EAAImP,QAAQkxxB,IAAIni0B,KACzB,EAEAk/zB,EAAGh/zB,UAAUmi0B,IAAM,SAAcvgyB,GAC/B,OAAI9hC,KAAKY,OAASkhC,EAAIlhC,OAAeZ,KAAKixC,QAAQixxB,KAAKpgyB,GAChDA,EAAImP,QAAQixxB,KAAKli0B,KAC1B,EAGAk/zB,EAAGh/zB,UAAUoi0B,MAAQ,SAAgBxgyB,GAEnC,IAAItJ,EAEFA,EADEx4B,KAAKY,OAASkhC,EAAIlhC,OAChBkhC,EAEA9hC,KAGN,IAAK,IAAIgB,EAAI,EAAGA,EAAIw3B,EAAE53B,OAAQI,IAC5BhB,KAAKmiiB,MAAMnhiB,GAAKhB,KAAKmiiB,MAAMnhiB,GAAK8gC,EAAIqggB,MAAMnhiB,GAK5C,OAFAhB,KAAKY,OAAS43B,EAAE53B,OAETZ,KAAK26hB,OACd,EAEAukS,EAAGh/zB,UAAUqi0B,KAAO,SAAezgyB,GAEjC,OADAoksB,EAA0C,KAAlClmuB,KAAKipC,SAAWnH,EAAImH,WACrBjpC,KAAKsi0B,MAAMxgyB,EACpB,EAGAo9xB,EAAGh/zB,UAAUsi0B,IAAM,SAAc1gyB,GAC/B,OAAI9hC,KAAKY,OAASkhC,EAAIlhC,OAAeZ,KAAKixC,QAAQsxxB,KAAKzgyB,GAChDA,EAAImP,QAAQsxxB,KAAKvi0B,KAC1B,EAEAk/zB,EAAGh/zB,UAAUui0B,KAAO,SAAe3gyB,GACjC,OAAI9hC,KAAKY,OAASkhC,EAAIlhC,OAAeZ,KAAKixC,QAAQqxxB,MAAMxgyB,GACjDA,EAAImP,QAAQqxxB,MAAMti0B,KAC3B,EAGAk/zB,EAAGh/zB,UAAUwi0B,MAAQ,SAAgB5gyB,GAEnC,IAAI/gC,EACAy3B,EACAx4B,KAAKY,OAASkhC,EAAIlhC,QACpBG,EAAIf,KACJw4B,EAAIsJ,IAEJ/gC,EAAI+gC,EACJtJ,EAAIx4B,MAGN,IAAK,IAAIgB,EAAI,EAAGA,EAAIw3B,EAAE53B,OAAQI,IAC5BhB,KAAKmiiB,MAAMnhiB,GAAKD,EAAEohiB,MAAMnhiB,GAAKw3B,EAAE2pgB,MAAMnhiB,GAGvC,GAAIhB,OAASe,EACX,KAAOC,EAAID,EAAEH,OAAQI,IACnBhB,KAAKmiiB,MAAMnhiB,GAAKD,EAAEohiB,MAAMnhiB,GAM5B,OAFAhB,KAAKY,OAASG,EAAEH,OAETZ,KAAK26hB,OACd,EAEAukS,EAAGh/zB,UAAUyi0B,KAAO,SAAe7gyB,GAEjC,OADAoksB,EAA0C,KAAlClmuB,KAAKipC,SAAWnH,EAAImH,WACrBjpC,KAAK0i0B,MAAM5gyB,EACpB,EAGAo9xB,EAAGh/zB,UAAU0i0B,IAAM,SAAc9gyB,GAC/B,OAAI9hC,KAAKY,OAASkhC,EAAIlhC,OAAeZ,KAAKixC,QAAQ0xxB,KAAK7gyB,GAChDA,EAAImP,QAAQ0xxB,KAAK3i0B,KAC1B,EAEAk/zB,EAAGh/zB,UAAU2i0B,KAAO,SAAe/gyB,GACjC,OAAI9hC,KAAKY,OAASkhC,EAAIlhC,OAAeZ,KAAKixC,QAAQyxxB,MAAM5gyB,GACjDA,EAAImP,QAAQyxxB,MAAM1i0B,KAC3B,EAGAk/zB,EAAGh/zB,UAAUwh0B,MAAQ,SAAgB7vzB,GACnCq0tB,EAAwB,kBAAVr0tB,GAAsBA,GAAS,GAE7C,IAAIixzB,EAAsC,EAAxBl6xB,KAAK8wI,KAAK7nK,EAAQ,IAChCkxzB,EAAWlxzB,EAAQ,GAGvB7R,KAAKkg0B,QAAQ4C,GAETC,EAAW,GACbD,IAIF,IAAK,IAAI9h0B,EAAI,EAAGA,EAAI8h0B,EAAa9h0B,IAC/BhB,KAAKmiiB,MAAMnhiB,GAAsB,UAAhBhB,KAAKmiiB,MAAMnhiB,GAS9B,OALI+h0B,EAAW,IACb/i0B,KAAKmiiB,MAAMnhiB,IAAMhB,KAAKmiiB,MAAMnhiB,GAAM,UAAc,GAAK+h0B,GAIhD/i0B,KAAK26hB,OACd,EAEAukS,EAAGh/zB,UAAU4h0B,KAAO,SAAejwzB,GACjC,OAAO7R,KAAKixC,QAAQywxB,MAAM7vzB,EAC5B,EAGAqtzB,EAAGh/zB,UAAU8i0B,KAAO,SAAenR,EAAKhitB,GACtCq2nB,EAAsB,kBAAR2rF,GAAoBA,GAAO,GAEzC,IAAI78sB,EAAO68sB,EAAM,GAAM,EACnBoR,EAAOpR,EAAM,GAUjB,OARA7xzB,KAAKkg0B,QAAQlrtB,EAAM,GAGjBh1G,KAAKmiiB,MAAMntb,GADTnF,EACgB7vG,KAAKmiiB,MAAMntb,GAAQ,GAAKiutB,EAExBjj0B,KAAKmiiB,MAAMntb,KAAS,GAAKiutB,GAGtCjj0B,KAAK26hB,OACd,EAGAukS,EAAGh/zB,UAAUgj0B,KAAO,SAAephyB,GACjC,IAAIzhC,EAkBAU,EAAGy3B,EAfP,GAAsB,IAAlBx4B,KAAKipC,UAAmC,IAAjBnH,EAAImH,SAI7B,OAHAjpC,KAAKipC,SAAW,EAChB5oC,EAAIL,KAAKmj0B,KAAKrhyB,GACd9hC,KAAKipC,UAAY,EACVjpC,KAAKmg0B,YAGP,GAAsB,IAAlBng0B,KAAKipC,UAAmC,IAAjBnH,EAAImH,SAIpC,OAHAnH,EAAImH,SAAW,EACf5oC,EAAIL,KAAKmj0B,KAAKrhyB,GACdA,EAAImH,SAAW,EACR5oC,EAAE8/zB,YAKPng0B,KAAKY,OAASkhC,EAAIlhC,QACpBG,EAAIf,KACJw4B,EAAIsJ,IAEJ/gC,EAAI+gC,EACJtJ,EAAIx4B,MAIN,IADA,IAAIupC,EAAQ,EACHvoC,EAAI,EAAGA,EAAIw3B,EAAE53B,OAAQI,IAC5BX,GAAkB,EAAbU,EAAEohiB,MAAMnhiB,KAAwB,EAAbw3B,EAAE2pgB,MAAMnhiB,IAAUuoC,EAC1CvpC,KAAKmiiB,MAAMnhiB,GAAS,SAAJX,EAChBkpC,EAAQlpC,IAAM,GAEhB,KAAiB,IAAVkpC,GAAevoC,EAAID,EAAEH,OAAQI,IAClCX,GAAkB,EAAbU,EAAEohiB,MAAMnhiB,IAAUuoC,EACvBvpC,KAAKmiiB,MAAMnhiB,GAAS,SAAJX,EAChBkpC,EAAQlpC,IAAM,GAIhB,GADAL,KAAKY,OAASG,EAAEH,OACF,IAAV2oC,EACFvpC,KAAKmiiB,MAAMniiB,KAAKY,QAAU2oC,EAC1BvpC,KAAKY,cAEA,GAAIG,IAAMf,KACf,KAAOgB,EAAID,EAAEH,OAAQI,IACnBhB,KAAKmiiB,MAAMnhiB,GAAKD,EAAEohiB,MAAMnhiB,GAI5B,OAAOhB,IACT,EAGAk/zB,EAAGh/zB,UAAUqmC,IAAM,SAAczE,GAC/B,IAAIs4E,EACJ,OAAqB,IAAjBt4E,EAAImH,UAAoC,IAAlBjpC,KAAKipC,UAC7BnH,EAAImH,SAAW,EACfmxE,EAAMp6G,KAAK2+G,IAAI78E,GACfA,EAAImH,UAAY,EACTmxE,GACmB,IAAjBt4E,EAAImH,UAAoC,IAAlBjpC,KAAKipC,UACpCjpC,KAAKipC,SAAW,EAChBmxE,EAAMt4E,EAAI68E,IAAI3+G,MACdA,KAAKipC,SAAW,EACTmxE,GAGLp6G,KAAKY,OAASkhC,EAAIlhC,OAAeZ,KAAKixC,QAAQiyxB,KAAKphyB,GAEhDA,EAAImP,QAAQiyxB,KAAKlj0B,KAC1B,EAGAk/zB,EAAGh/zB,UAAUij0B,KAAO,SAAerhyB,GAEjC,GAAqB,IAAjBA,EAAImH,SAAgB,CACtBnH,EAAImH,SAAW,EACf,IAAI5oC,EAAIL,KAAKkj0B,KAAKphyB,GAElB,OADAA,EAAImH,SAAW,EACR5oC,EAAE8/zB,WAGX,CAAO,GAAsB,IAAlBng0B,KAAKipC,SAId,OAHAjpC,KAAKipC,SAAW,EAChBjpC,KAAKkj0B,KAAKphyB,GACV9hC,KAAKipC,SAAW,EACTjpC,KAAKmg0B,YAId,IAWIp/zB,EAAGy3B,EAXHwqY,EAAMhja,KAAKgja,IAAIlhY,GAGnB,GAAY,IAARkhY,EAIF,OAHAhja,KAAKipC,SAAW,EAChBjpC,KAAKY,OAAS,EACdZ,KAAKmiiB,MAAM,GAAK,EACTniiB,KAKLgja,EAAM,GACRjia,EAAIf,KACJw4B,EAAIsJ,IAEJ/gC,EAAI+gC,EACJtJ,EAAIx4B,MAIN,IADA,IAAIupC,EAAQ,EACHvoC,EAAI,EAAGA,EAAIw3B,EAAE53B,OAAQI,IAE5BuoC,GADAlpC,GAAkB,EAAbU,EAAEohiB,MAAMnhiB,KAAwB,EAAbw3B,EAAE2pgB,MAAMnhiB,IAAUuoC,IAC7B,GACbvpC,KAAKmiiB,MAAMnhiB,GAAS,SAAJX,EAElB,KAAiB,IAAVkpC,GAAevoC,EAAID,EAAEH,OAAQI,IAElCuoC,GADAlpC,GAAkB,EAAbU,EAAEohiB,MAAMnhiB,IAAUuoC,IACV,GACbvpC,KAAKmiiB,MAAMnhiB,GAAS,SAAJX,EAIlB,GAAc,IAAVkpC,GAAevoC,EAAID,EAAEH,QAAUG,IAAMf,KACvC,KAAOgB,EAAID,EAAEH,OAAQI,IACnBhB,KAAKmiiB,MAAMnhiB,GAAKD,EAAEohiB,MAAMnhiB,GAU5B,OANAhB,KAAKY,OAASgoC,KAAKoa,IAAIhjD,KAAKY,OAAQI,GAEhCD,IAAMf,OACRA,KAAKipC,SAAW,GAGXjpC,KAAK26hB,OACd,EAGAukS,EAAGh/zB,UAAUy+G,IAAM,SAAc78E,GAC/B,OAAO9hC,KAAKixC,QAAQkyxB,KAAKrhyB,EAC3B,EA8CA,IAAIshyB,EAAc,SAAsBv/sB,EAAM/hF,EAAKwH,GACjD,IAII2wE,EACAoptB,EACArptB,EANAj5G,EAAI8iH,EAAKs+a,MACT3pgB,EAAIsJ,EAAIqggB,MACRrhiB,EAAIwoC,EAAI64f,MACRlhiB,EAAI,EAIJqi0B,EAAY,EAAPvi0B,EAAE,GACPwi0B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbt9P,EAAY,EAAPjlkB,EAAE,GACP0i0B,EAAW,KAALz9P,EACN09P,EAAM19P,IAAO,GACbC,EAAY,EAAPllkB,EAAE,GACP4i0B,EAAW,KAAL19P,EACN29P,EAAM39P,IAAO,GACb49P,EAAY,EAAP9i0B,EAAE,GACP+i0B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPjj0B,EAAE,GACPkj0B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPpj0B,EAAE,GACPqj0B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPvj0B,EAAE,GACPwj0B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP1j0B,EAAE,GACP2j0B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP7j0B,EAAE,GACP8j0B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPhk0B,EAAE,GACPik0B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP1syB,EAAE,GACP2syB,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP7syB,EAAE,GACP8syB,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPhtyB,EAAE,GACPityB,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPntyB,EAAE,GACPotyB,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPttyB,EAAE,GACPutyB,EAAW,KAALD,EACNE,GAAMF,IAAO,GACbG,GAAY,EAAPztyB,EAAE,GACP0tyB,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP5tyB,EAAE,GACP6tyB,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP/tyB,EAAE,GACPguyB,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPluyB,EAAE,GACPmuyB,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPruyB,EAAE,GACPsuyB,GAAW,KAALD,GACNE,GAAMF,KAAO,GAEjBv9xB,EAAIL,SAAW46E,EAAK56E,SAAWnH,EAAImH,SACnCK,EAAI1oC,OAAS,GAMb,IAAIom0B,IAAQ/l0B,GAJZg5G,EAAKrxE,KAAKq+xB,KAAK1D,EAAK4B,IAIE,KAAa,MAFnC9B,GADAA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAK6B,IACRx8xB,KAAKq+xB,KAAKzD,EAAK2B,GAAQ,KAEU,IAAO,EACrDlk0B,IAFA+4G,EAAKpxE,KAAKq+xB,KAAKzD,EAAK4B,KAEP/B,IAAQ,IAAO,IAAM2D,KAAO,IAAO,EAChDA,IAAM,SAEN/stB,EAAKrxE,KAAKq+xB,KAAKxD,EAAK0B,GAEpB9B,GADAA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAK2B,IACRx8xB,KAAKq+xB,KAAKvD,EAAKyB,GAAQ,EACpCnrtB,EAAKpxE,KAAKq+xB,KAAKvD,EAAK0B,GAKpB,IAAI8B,IAAQjm0B,GAJZg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1D,EAAK+B,GAAQ,GAIZ,KAAa,MAFnCjC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAKgC,GAAQ,GACvB38xB,KAAKq+xB,KAAKzD,EAAK8B,GAAQ,KAEU,IAAO,EACrDrk0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzD,EAAK+B,GAAQ,IAErBlC,IAAQ,IAAO,IAAM6D,KAAO,IAAO,EAChDA,IAAM,SAENjttB,EAAKrxE,KAAKq+xB,KAAKtD,EAAKwB,GAEpB9B,GADAA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAKyB,IACRx8xB,KAAKq+xB,KAAKrD,EAAKuB,GAAQ,EACpCnrtB,EAAKpxE,KAAKq+xB,KAAKrD,EAAKwB,GACpBnrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKxD,EAAK6B,GAAQ,EAElCjC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAK8B,GAAQ,GACvB38xB,KAAKq+xB,KAAKvD,EAAK4B,GAAQ,EACpCtrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKvD,EAAK6B,GAAQ,EAKlC,IAAIx0Q,IAAQ9vjB,GAJZg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1D,EAAKkC,GAAQ,GAIZ,KAAa,MAFnCpC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAKmC,GAAQ,GACvB98xB,KAAKq+xB,KAAKzD,EAAKiC,GAAQ,KAEU,IAAO,EACrDxk0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzD,EAAKkC,GAAQ,IAErBrC,IAAQ,IAAO,IAAMtyQ,KAAO,IAAO,EAChDA,IAAM,SAEN92c,EAAKrxE,KAAKq+xB,KAAKnD,EAAKqB,GAEpB9B,GADAA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAKsB,IACRx8xB,KAAKq+xB,KAAKlD,EAAKoB,GAAQ,EACpCnrtB,EAAKpxE,KAAKq+xB,KAAKlD,EAAKqB,GACpBnrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKtD,EAAK2B,GAAQ,EAElCjC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAK4B,GAAQ,GACvB38xB,KAAKq+xB,KAAKrD,EAAK0B,GAAQ,EACpCtrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKrD,EAAK2B,GAAQ,EAClCtrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKxD,EAAKgC,GAAQ,EAElCpC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAKiC,GAAQ,GACvB98xB,KAAKq+xB,KAAKvD,EAAK+B,GAAQ,EACpCzrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKvD,EAAKgC,GAAQ,EAKlC,IAAIyB,IAAQlm0B,GAJZg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1D,EAAKqC,GAAQ,GAIZ,KAAa,MAFnCvC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAKsC,GAAQ,GACvBj9xB,KAAKq+xB,KAAKzD,EAAKoC,GAAQ,KAEU,IAAO,EACrD3k0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzD,EAAKqC,GAAQ,IAErBxC,IAAQ,IAAO,IAAM8D,KAAO,IAAO,EAChDA,IAAM,SAENlttB,EAAKrxE,KAAKq+xB,KAAKhD,EAAKkB,GAEpB9B,GADAA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAKmB,IACRx8xB,KAAKq+xB,KAAK/C,EAAKiB,GAAQ,EACpCnrtB,EAAKpxE,KAAKq+xB,KAAK/C,EAAKkB,GACpBnrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKnD,EAAKwB,GAAQ,EAElCjC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAKyB,GAAQ,GACvB38xB,KAAKq+xB,KAAKlD,EAAKuB,GAAQ,EACpCtrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKlD,EAAKwB,GAAQ,EAClCtrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKtD,EAAK8B,GAAQ,EAElCpC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAK+B,GAAQ,GACvB98xB,KAAKq+xB,KAAKrD,EAAK6B,GAAQ,EACpCzrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKrD,EAAK8B,GAAQ,EAClCzrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKxD,EAAKmC,GAAQ,EAElCvC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAKoC,GAAQ,GACvBj9xB,KAAKq+xB,KAAKvD,EAAKkC,GAAQ,EACpC5rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKvD,EAAKmC,GAAQ,EAKlC,IAAIuB,IAAQnm0B,GAJZg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1D,EAAKwC,GAAQ,GAIZ,KAAa,MAFnC1C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAKyC,IAAQ,GACvBp9xB,KAAKq+xB,KAAKzD,EAAKuC,GAAQ,KAEU,IAAO,EACrD9k0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzD,EAAKwC,IAAQ,IAErB3C,IAAQ,IAAO,IAAM+D,KAAO,IAAO,EAChDA,IAAM,SAENnttB,EAAKrxE,KAAKq+xB,KAAK7C,EAAKe,GAEpB9B,GADAA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAKgB,IACRx8xB,KAAKq+xB,KAAK5C,EAAKc,GAAQ,EACpCnrtB,EAAKpxE,KAAKq+xB,KAAK5C,EAAKe,GACpBnrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKhD,EAAKqB,GAAQ,EAElCjC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAKsB,GAAQ,GACvB38xB,KAAKq+xB,KAAK/C,EAAKoB,GAAQ,EACpCtrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAK/C,EAAKqB,GAAQ,EAClCtrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKnD,EAAK2B,GAAQ,EAElCpC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAK4B,GAAQ,GACvB98xB,KAAKq+xB,KAAKlD,EAAK0B,GAAQ,EACpCzrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKlD,EAAK2B,GAAQ,EAClCzrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKtD,EAAKiC,GAAQ,EAElCvC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAKkC,GAAQ,GACvBj9xB,KAAKq+xB,KAAKrD,EAAKgC,GAAQ,EACpC5rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKrD,EAAKiC,GAAQ,EAClC5rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKxD,EAAKsC,GAAQ,EAElC1C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAKuC,IAAQ,GACvBp9xB,KAAKq+xB,KAAKvD,EAAKqC,GAAQ,EACpC/rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKvD,EAAKsC,IAAQ,EAKlC,IAAIqB,IAAQpm0B,GAJZg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1D,EAAK2C,IAAQ,GAIZ,KAAa,MAFnC7C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAK4C,IAAQ,GACvBv9xB,KAAKq+xB,KAAKzD,EAAK0C,IAAQ,KAEU,IAAO,EACrDjl0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzD,EAAK2C,IAAQ,IAErB9C,IAAQ,IAAO,IAAMgE,KAAO,IAAO,EAChDA,IAAM,SAENpttB,EAAKrxE,KAAKq+xB,KAAK1C,EAAKY,GAEpB9B,GADAA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAKa,IACRx8xB,KAAKq+xB,KAAKzC,EAAKW,GAAQ,EACpCnrtB,EAAKpxE,KAAKq+xB,KAAKzC,EAAKY,GACpBnrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK7C,EAAKkB,GAAQ,EAElCjC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAKmB,GAAQ,GACvB38xB,KAAKq+xB,KAAK5C,EAAKiB,GAAQ,EACpCtrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAK5C,EAAKkB,GAAQ,EAClCtrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKhD,EAAKwB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAKyB,GAAQ,GACvB98xB,KAAKq+xB,KAAK/C,EAAKuB,GAAQ,EACpCzrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAK/C,EAAKwB,GAAQ,EAClCzrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKnD,EAAK8B,GAAQ,EAElCvC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAK+B,GAAQ,GACvBj9xB,KAAKq+xB,KAAKlD,EAAK6B,GAAQ,EACpC5rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKlD,EAAK8B,GAAQ,EAClC5rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKtD,EAAKoC,GAAQ,EAElC1C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAKqC,IAAQ,GACvBp9xB,KAAKq+xB,KAAKrD,EAAKmC,GAAQ,EACpC/rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKrD,EAAKoC,IAAQ,EAClC/rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKxD,EAAKyC,IAAQ,EAElC7C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAK0C,IAAQ,GACvBv9xB,KAAKq+xB,KAAKvD,EAAKwC,IAAQ,EACpClstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKvD,EAAKyC,IAAQ,EAKlC,IAAImB,IAAQrm0B,GAJZg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1D,EAAK8C,IAAQ,GAIZ,KAAa,MAFnChD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAK+C,IAAQ,GACvB19xB,KAAKq+xB,KAAKzD,EAAK6C,IAAQ,KAEU,IAAO,EACrDpl0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzD,EAAK8C,IAAQ,IAErBjD,IAAQ,IAAO,IAAMiE,KAAO,IAAO,EAChDA,IAAM,SAENrttB,EAAKrxE,KAAKq+xB,KAAKvC,EAAKS,GAEpB9B,GADAA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAKU,IACRx8xB,KAAKq+xB,KAAKtC,EAAKQ,GAAQ,EACpCnrtB,EAAKpxE,KAAKq+xB,KAAKtC,EAAKS,GACpBnrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK1C,EAAKe,GAAQ,EAElCjC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAKgB,GAAQ,GACvB38xB,KAAKq+xB,KAAKzC,EAAKc,GAAQ,EACpCtrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKzC,EAAKe,GAAQ,EAClCtrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK7C,EAAKqB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAKsB,GAAQ,GACvB98xB,KAAKq+xB,KAAK5C,EAAKoB,GAAQ,EACpCzrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAK5C,EAAKqB,GAAQ,EAClCzrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKhD,EAAK2B,GAAQ,EAElCvC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAK4B,GAAQ,GACvBj9xB,KAAKq+xB,KAAK/C,EAAK0B,GAAQ,EACpC5rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAK/C,EAAK2B,GAAQ,EAClC5rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKnD,EAAKiC,GAAQ,EAElC1C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAKkC,IAAQ,GACvBp9xB,KAAKq+xB,KAAKlD,EAAKgC,GAAQ,EACpC/rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKlD,EAAKiC,IAAQ,EAClC/rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKtD,EAAKuC,IAAQ,EAElC7C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAKwC,IAAQ,GACvBv9xB,KAAKq+xB,KAAKrD,EAAKsC,IAAQ,EACpClstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKrD,EAAKuC,IAAQ,EAClClstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKxD,EAAK4C,IAAQ,EAElChD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAK6C,IAAQ,GACvB19xB,KAAKq+xB,KAAKvD,EAAK2C,IAAQ,EACpCrstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKvD,EAAK4C,IAAQ,EAKlC,IAAIiB,IAAQtm0B,GAJZg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1D,EAAKiD,IAAQ,GAIZ,KAAa,MAFnCnD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAKkD,IAAQ,GACvB79xB,KAAKq+xB,KAAKzD,EAAKgD,IAAQ,KAEU,IAAO,EACrDvl0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzD,EAAKiD,IAAQ,IAErBpD,IAAQ,IAAO,IAAMkE,KAAO,IAAO,EAChDA,IAAM,SAENtttB,EAAKrxE,KAAKq+xB,KAAKpC,EAAKM,GAEpB9B,GADAA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAKO,IACRx8xB,KAAKq+xB,KAAKnC,EAAKK,GAAQ,EACpCnrtB,EAAKpxE,KAAKq+xB,KAAKnC,EAAKM,GACpBnrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKvC,EAAKY,GAAQ,EAElCjC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAKa,GAAQ,GACvB38xB,KAAKq+xB,KAAKtC,EAAKW,GAAQ,EACpCtrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKtC,EAAKY,GAAQ,EAClCtrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK1C,EAAKkB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAKmB,GAAQ,GACvB98xB,KAAKq+xB,KAAKzC,EAAKiB,GAAQ,EACpCzrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKzC,EAAKkB,GAAQ,EAClCzrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK7C,EAAKwB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAKyB,GAAQ,GACvBj9xB,KAAKq+xB,KAAK5C,EAAKuB,GAAQ,EACpC5rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAK5C,EAAKwB,GAAQ,EAClC5rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKhD,EAAK8B,GAAQ,EAElC1C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAK+B,IAAQ,GACvBp9xB,KAAKq+xB,KAAK/C,EAAK6B,GAAQ,EACpC/rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAK/C,EAAK8B,IAAQ,EAClC/rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKnD,EAAKoC,IAAQ,EAElC7C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAKqC,IAAQ,GACvBv9xB,KAAKq+xB,KAAKlD,EAAKmC,IAAQ,EACpClstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKlD,EAAKoC,IAAQ,EAClClstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKtD,EAAK0C,IAAQ,EAElChD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAK2C,IAAQ,GACvB19xB,KAAKq+xB,KAAKrD,EAAKyC,IAAQ,EACpCrstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKrD,EAAK0C,IAAQ,EAClCrstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKxD,EAAK+C,IAAQ,EAElCnD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAKgD,IAAQ,GACvB79xB,KAAKq+xB,KAAKvD,EAAK8C,IAAQ,EACpCxstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKvD,EAAK+C,IAAQ,EAKlC,IAAIe,IAAQvm0B,GAJZg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1D,EAAKoD,IAAQ,GAIZ,KAAa,MAFnCtD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAKqD,IAAQ,GACvBh+xB,KAAKq+xB,KAAKzD,EAAKmD,IAAQ,KAEU,IAAO,EACrD1l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzD,EAAKoD,IAAQ,IAErBvD,IAAQ,IAAO,IAAMmE,KAAO,IAAO,EAChDA,IAAM,SAENvttB,EAAKrxE,KAAKq+xB,KAAKjC,EAAKG,GAEpB9B,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAKI,IACRx8xB,KAAKq+xB,KAAKhC,EAAKE,GAAQ,EACpCnrtB,EAAKpxE,KAAKq+xB,KAAKhC,EAAKG,GACpBnrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKpC,EAAKS,GAAQ,EAElCjC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAKU,GAAQ,GACvB38xB,KAAKq+xB,KAAKnC,EAAKQ,GAAQ,EACpCtrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKnC,EAAKS,GAAQ,EAClCtrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKvC,EAAKe,GAAQ,EAElCpC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAKgB,GAAQ,GACvB98xB,KAAKq+xB,KAAKtC,EAAKc,GAAQ,EACpCzrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKtC,EAAKe,GAAQ,EAClCzrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK1C,EAAKqB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAKsB,GAAQ,GACvBj9xB,KAAKq+xB,KAAKzC,EAAKoB,GAAQ,EACpC5rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKzC,EAAKqB,GAAQ,EAClC5rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK7C,EAAK2B,GAAQ,EAElC1C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAK4B,IAAQ,GACvBp9xB,KAAKq+xB,KAAK5C,EAAK0B,GAAQ,EACpC/rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAK5C,EAAK2B,IAAQ,EAClC/rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKhD,EAAKiC,IAAQ,EAElC7C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAKkC,IAAQ,GACvBv9xB,KAAKq+xB,KAAK/C,EAAKgC,IAAQ,EACpClstB,EAAMA,EAAKpxE,KAAKq+xB,KAAK/C,EAAKiC,IAAQ,EAClClstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKnD,EAAKuC,IAAQ,EAElChD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAKwC,IAAQ,GACvB19xB,KAAKq+xB,KAAKlD,EAAKsC,IAAQ,EACpCrstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKlD,EAAKuC,IAAQ,EAClCrstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKtD,EAAK6C,IAAQ,EAElCnD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAK8C,IAAQ,GACvB79xB,KAAKq+xB,KAAKrD,EAAK4C,IAAQ,EACpCxstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKrD,EAAK6C,IAAQ,EAClCxstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKxD,EAAKkD,IAAQ,EAElCtD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAKmD,IAAQ,GACvBh+xB,KAAKq+xB,KAAKvD,EAAKiD,IAAQ,EACpC3stB,EAAMA,EAAKpxE,KAAKq+xB,KAAKvD,EAAKkD,IAAQ,EAKlC,IAAIa,IAAQxm0B,GAJZg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1D,EAAKuD,IAAQ,GAIZ,KAAa,MAFnCzD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAKwD,IAAQ,GACvBn+xB,KAAKq+xB,KAAKzD,EAAKsD,IAAQ,KAEU,IAAO,EACrD7l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzD,EAAKuD,IAAQ,IAErB1D,IAAQ,IAAO,IAAMoE,KAAO,IAAO,EAChDA,IAAM,SAENxttB,EAAKrxE,KAAKq+xB,KAAKjC,EAAKM,GAEpBjC,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAKO,IACR38xB,KAAKq+xB,KAAKhC,EAAKK,GAAQ,EACpCtrtB,EAAKpxE,KAAKq+xB,KAAKhC,EAAKM,GACpBtrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKpC,EAAKY,GAAQ,EAElCpC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAKa,GAAQ,GACvB98xB,KAAKq+xB,KAAKnC,EAAKW,GAAQ,EACpCzrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKnC,EAAKY,GAAQ,EAClCzrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKvC,EAAKkB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAKmB,GAAQ,GACvBj9xB,KAAKq+xB,KAAKtC,EAAKiB,GAAQ,EACpC5rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKtC,EAAKkB,GAAQ,EAClC5rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK1C,EAAKwB,GAAQ,EAElC1C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAKyB,IAAQ,GACvBp9xB,KAAKq+xB,KAAKzC,EAAKuB,GAAQ,EACpC/rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKzC,EAAKwB,IAAQ,EAClC/rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK7C,EAAK8B,IAAQ,EAElC7C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAK+B,IAAQ,GACvBv9xB,KAAKq+xB,KAAK5C,EAAK6B,IAAQ,EACpClstB,EAAMA,EAAKpxE,KAAKq+xB,KAAK5C,EAAK8B,IAAQ,EAClClstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKhD,EAAKoC,IAAQ,EAElChD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAKqC,IAAQ,GACvB19xB,KAAKq+xB,KAAK/C,EAAKmC,IAAQ,EACpCrstB,EAAMA,EAAKpxE,KAAKq+xB,KAAK/C,EAAKoC,IAAQ,EAClCrstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKnD,EAAK0C,IAAQ,EAElCnD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAK2C,IAAQ,GACvB79xB,KAAKq+xB,KAAKlD,EAAKyC,IAAQ,EACpCxstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKlD,EAAK0C,IAAQ,EAClCxstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKtD,EAAKgD,IAAQ,EAElCtD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAKiD,IAAQ,GACvBh+xB,KAAKq+xB,KAAKrD,EAAK+C,IAAQ,EACpC3stB,EAAMA,EAAKpxE,KAAKq+xB,KAAKrD,EAAKgD,IAAQ,EAKlC,IAAIc,IAASzm0B,GAJbg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAKxD,EAAKqD,IAAQ,GAIX,KAAa,MAFpCzD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAKsD,IAAQ,GACvBn+xB,KAAKq+xB,KAAKvD,EAAKoD,IAAQ,KAEW,IAAO,EACtD7l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKvD,EAAKqD,IAAQ,IAErB1D,IAAQ,IAAO,IAAMqE,KAAQ,IAAO,EACjDA,IAAO,SAEPzttB,EAAKrxE,KAAKq+xB,KAAKjC,EAAKS,GAEpBpC,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAKU,IACR98xB,KAAKq+xB,KAAKhC,EAAKQ,GAAQ,EACpCzrtB,EAAKpxE,KAAKq+xB,KAAKhC,EAAKS,GACpBzrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKpC,EAAKe,GAAQ,EAElCvC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAKgB,GAAQ,GACvBj9xB,KAAKq+xB,KAAKnC,EAAKc,GAAQ,EACpC5rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKnC,EAAKe,GAAQ,EAClC5rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKvC,EAAKqB,GAAQ,EAElC1C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAKsB,IAAQ,GACvBp9xB,KAAKq+xB,KAAKtC,EAAKoB,GAAQ,EACpC/rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKtC,EAAKqB,IAAQ,EAClC/rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK1C,EAAK2B,IAAQ,EAElC7C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAK4B,IAAQ,GACvBv9xB,KAAKq+xB,KAAKzC,EAAK0B,IAAQ,EACpClstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKzC,EAAK2B,IAAQ,EAClClstB,EAAMA,EAAKrxE,KAAKq+xB,KAAK7C,EAAKiC,IAAQ,EAElChD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAKkC,IAAQ,GACvB19xB,KAAKq+xB,KAAK5C,EAAKgC,IAAQ,EACpCrstB,EAAMA,EAAKpxE,KAAKq+xB,KAAK5C,EAAKiC,IAAQ,EAClCrstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKhD,EAAKuC,IAAQ,EAElCnD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAKwC,IAAQ,GACvB79xB,KAAKq+xB,KAAK/C,EAAKsC,IAAQ,EACpCxstB,EAAMA,EAAKpxE,KAAKq+xB,KAAK/C,EAAKuC,IAAQ,EAClCxstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKnD,EAAK6C,IAAQ,EAElCtD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAK8C,IAAQ,GACvBh+xB,KAAKq+xB,KAAKlD,EAAK4C,IAAQ,EACpC3stB,EAAMA,EAAKpxE,KAAKq+xB,KAAKlD,EAAK6C,IAAQ,EAKlC,IAAIe,IAAS1m0B,GAJbg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAKtD,EAAKmD,IAAQ,GAIX,KAAa,MAFpCzD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAKoD,IAAQ,GACvBn+xB,KAAKq+xB,KAAKrD,EAAKkD,IAAQ,KAEW,IAAO,EACtD7l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKrD,EAAKmD,IAAQ,IAErB1D,IAAQ,IAAO,IAAMsE,KAAQ,IAAO,EACjDA,IAAO,SAEP1ttB,EAAKrxE,KAAKq+xB,KAAKjC,EAAKY,GAEpBvC,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAKa,IACRj9xB,KAAKq+xB,KAAKhC,EAAKW,GAAQ,EACpC5rtB,EAAKpxE,KAAKq+xB,KAAKhC,EAAKY,GACpB5rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKpC,EAAKkB,GAAQ,EAElC1C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAKmB,IAAQ,GACvBp9xB,KAAKq+xB,KAAKnC,EAAKiB,GAAQ,EACpC/rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKnC,EAAKkB,IAAQ,EAClC/rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKvC,EAAKwB,IAAQ,EAElC7C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAKyB,IAAQ,GACvBv9xB,KAAKq+xB,KAAKtC,EAAKuB,IAAQ,EACpClstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKtC,EAAKwB,IAAQ,EAClClstB,EAAMA,EAAKrxE,KAAKq+xB,KAAK1C,EAAK8B,IAAQ,EAElChD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAK+B,IAAQ,GACvB19xB,KAAKq+xB,KAAKzC,EAAK6B,IAAQ,EACpCrstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKzC,EAAK8B,IAAQ,EAClCrstB,EAAMA,EAAKrxE,KAAKq+xB,KAAK7C,EAAKoC,IAAQ,EAElCnD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAKqC,IAAQ,GACvB79xB,KAAKq+xB,KAAK5C,EAAKmC,IAAQ,EACpCxstB,EAAMA,EAAKpxE,KAAKq+xB,KAAK5C,EAAKoC,IAAQ,EAClCxstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKhD,EAAK0C,IAAQ,EAElCtD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAK2C,IAAQ,GACvBh+xB,KAAKq+xB,KAAK/C,EAAKyC,IAAQ,EACpC3stB,EAAMA,EAAKpxE,KAAKq+xB,KAAK/C,EAAK0C,IAAQ,EAKlC,IAAIgB,IAAS3m0B,GAJbg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAKnD,EAAKgD,IAAQ,GAIX,KAAa,MAFpCzD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAKiD,IAAQ,GACvBn+xB,KAAKq+xB,KAAKlD,EAAK+C,IAAQ,KAEW,IAAO,EACtD7l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKlD,EAAKgD,IAAQ,IAErB1D,IAAQ,IAAO,IAAMuE,KAAQ,IAAO,EACjDA,IAAO,SAEP3ttB,EAAKrxE,KAAKq+xB,KAAKjC,EAAKe,GAEpB1C,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAKgB,KACRp9xB,KAAKq+xB,KAAKhC,EAAKc,GAAQ,EACpC/rtB,EAAKpxE,KAAKq+xB,KAAKhC,EAAKe,IACpB/rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKpC,EAAKqB,IAAQ,EAElC7C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAKsB,IAAQ,GACvBv9xB,KAAKq+xB,KAAKnC,EAAKoB,IAAQ,EACpClstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKnC,EAAKqB,IAAQ,EAClClstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKvC,EAAK2B,IAAQ,EAElChD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAK4B,IAAQ,GACvB19xB,KAAKq+xB,KAAKtC,EAAK0B,IAAQ,EACpCrstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKtC,EAAK2B,IAAQ,EAClCrstB,EAAMA,EAAKrxE,KAAKq+xB,KAAK1C,EAAKiC,IAAQ,EAElCnD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAKkC,IAAQ,GACvB79xB,KAAKq+xB,KAAKzC,EAAKgC,IAAQ,EACpCxstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKzC,EAAKiC,IAAQ,EAClCxstB,EAAMA,EAAKrxE,KAAKq+xB,KAAK7C,EAAKuC,IAAQ,EAElCtD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAKwC,IAAQ,GACvBh+xB,KAAKq+xB,KAAK5C,EAAKsC,IAAQ,EACpC3stB,EAAMA,EAAKpxE,KAAKq+xB,KAAK5C,EAAKuC,IAAQ,EAKlC,IAAIiB,IAAS5m0B,GAJbg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAKhD,EAAK6C,IAAQ,GAIX,KAAa,MAFpCzD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAK8C,IAAQ,GACvBn+xB,KAAKq+xB,KAAK/C,EAAK4C,IAAQ,KAEW,IAAO,EACtD7l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAK/C,EAAK6C,IAAQ,IAErB1D,IAAQ,IAAO,IAAMwE,KAAQ,IAAO,EACjDA,IAAO,SAEP5ttB,EAAKrxE,KAAKq+xB,KAAKjC,EAAKkB,IAEpB7C,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAKmB,KACRv9xB,KAAKq+xB,KAAKhC,EAAKiB,IAAQ,EACpClstB,EAAKpxE,KAAKq+xB,KAAKhC,EAAKkB,IACpBlstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKpC,EAAKwB,IAAQ,EAElChD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAKyB,IAAQ,GACvB19xB,KAAKq+xB,KAAKnC,EAAKuB,IAAQ,EACpCrstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKnC,EAAKwB,IAAQ,EAClCrstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKvC,EAAK8B,IAAQ,EAElCnD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAK+B,IAAQ,GACvB79xB,KAAKq+xB,KAAKtC,EAAK6B,IAAQ,EACpCxstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKtC,EAAK8B,IAAQ,EAClCxstB,EAAMA,EAAKrxE,KAAKq+xB,KAAK1C,EAAKoC,IAAQ,EAElCtD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAKqC,IAAQ,GACvBh+xB,KAAKq+xB,KAAKzC,EAAKmC,IAAQ,EACpC3stB,EAAMA,EAAKpxE,KAAKq+xB,KAAKzC,EAAKoC,IAAQ,EAKlC,IAAIkB,IAAS7m0B,GAJbg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK7C,EAAK0C,IAAQ,GAIX,KAAa,MAFpCzD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAK2C,IAAQ,GACvBn+xB,KAAKq+xB,KAAK5C,EAAKyC,IAAQ,KAEW,IAAO,EACtD7l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAK5C,EAAK0C,IAAQ,IAErB1D,IAAQ,IAAO,IAAMyE,KAAQ,IAAO,EACjDA,IAAO,SAEP7ttB,EAAKrxE,KAAKq+xB,KAAKjC,EAAKqB,IAEpBhD,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAKsB,KACR19xB,KAAKq+xB,KAAKhC,EAAKoB,IAAQ,EACpCrstB,EAAKpxE,KAAKq+xB,KAAKhC,EAAKqB,IACpBrstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKpC,EAAK2B,IAAQ,EAElCnD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAK4B,IAAQ,GACvB79xB,KAAKq+xB,KAAKnC,EAAK0B,IAAQ,EACpCxstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKnC,EAAK2B,IAAQ,EAClCxstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKvC,EAAKiC,IAAQ,EAElCtD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAKkC,IAAQ,GACvBh+xB,KAAKq+xB,KAAKtC,EAAKgC,IAAQ,EACpC3stB,EAAMA,EAAKpxE,KAAKq+xB,KAAKtC,EAAKiC,IAAQ,EAKlC,IAAImB,IAAS9m0B,GAJbg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1C,EAAKuC,IAAQ,GAIX,KAAa,MAFpCzD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAKwC,IAAQ,GACvBn+xB,KAAKq+xB,KAAKzC,EAAKsC,IAAQ,KAEW,IAAO,EACtD7l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzC,EAAKuC,IAAQ,IAErB1D,IAAQ,IAAO,IAAM0E,KAAQ,IAAO,EACjDA,IAAO,SAEP9ttB,EAAKrxE,KAAKq+xB,KAAKjC,EAAKwB,IAEpBnD,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAKyB,KACR79xB,KAAKq+xB,KAAKhC,EAAKuB,IAAQ,EACpCxstB,EAAKpxE,KAAKq+xB,KAAKhC,EAAKwB,IACpBxstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKpC,EAAK8B,IAAQ,EAElCtD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAK+B,IAAQ,GACvBh+xB,KAAKq+xB,KAAKnC,EAAK6B,IAAQ,EACpC3stB,EAAMA,EAAKpxE,KAAKq+xB,KAAKnC,EAAK8B,IAAQ,EAKlC,IAAIoB,IAAS/m0B,GAJbg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAKvC,EAAKoC,IAAQ,GAIX,KAAa,MAFpCzD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAKqC,IAAQ,GACvBn+xB,KAAKq+xB,KAAKtC,EAAKmC,IAAQ,KAEW,IAAO,EACtD7l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKtC,EAAKoC,IAAQ,IAErB1D,IAAQ,IAAO,IAAM2E,KAAQ,IAAO,EACjDA,IAAO,SAEP/ttB,EAAKrxE,KAAKq+xB,KAAKjC,EAAK2B,IAEpBtD,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAK4B,KACRh+xB,KAAKq+xB,KAAKhC,EAAK0B,IAAQ,EACpC3stB,EAAKpxE,KAAKq+xB,KAAKhC,EAAK2B,IAKpB,IAAIqB,IAAShn0B,GAJbg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAKpC,EAAKiC,IAAQ,GAIX,KAAa,MAFpCzD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAKkC,IAAQ,GACvBn+xB,KAAKq+xB,KAAKnC,EAAKgC,IAAQ,KAEW,IAAO,EACtD7l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKnC,EAAKiC,IAAQ,IAErB1D,IAAQ,IAAO,IAAM4E,KAAQ,IAAO,EACjDA,IAAO,SAMP,IAAIC,IAASjn0B,GAJbg5G,EAAKrxE,KAAKq+xB,KAAKjC,EAAK8B,KAIG,KAAa,MAFpCzD,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAK+B,KACRn+xB,KAAKq+xB,KAAKhC,EAAK6B,IAAQ,KAEW,IAAO,EA0BtD,OAzBA7l0B,IAFA+4G,EAAKpxE,KAAKq+xB,KAAKhC,EAAK8B,MAEP1D,IAAQ,IAAO,IAAM6E,KAAQ,IAAO,EACjDA,IAAO,SACPpn0B,EAAE,GAAKkm0B,GACPlm0B,EAAE,GAAKom0B,GACPpm0B,EAAE,GAAKiwjB,GACPjwjB,EAAE,GAAKqm0B,GACPrm0B,EAAE,GAAKsm0B,GACPtm0B,EAAE,GAAKum0B,GACPvm0B,EAAE,GAAKwm0B,GACPxm0B,EAAE,GAAKym0B,GACPzm0B,EAAE,GAAK0m0B,GACP1m0B,EAAE,GAAK2m0B,GACP3m0B,EAAE,IAAM4m0B,GACR5m0B,EAAE,IAAM6m0B,GACR7m0B,EAAE,IAAM8m0B,GACR9m0B,EAAE,IAAM+m0B,GACR/m0B,EAAE,IAAMgn0B,GACRhn0B,EAAE,IAAMin0B,GACRjn0B,EAAE,IAAMkn0B,GACRln0B,EAAE,IAAMmn0B,GACRnn0B,EAAE,IAAMon0B,GACE,IAANjn0B,IACFH,EAAE,IAAMG,EACRqoC,EAAI1oC,UAEC0oC,CACT,EAgDA,SAAS6+xB,EAAYtktB,EAAM/hF,EAAKwH,GAE9B,OADW,IAAI8+xB,GACHC,KAAKxktB,EAAM/hF,EAAKwH,EAC9B,CAqBA,SAAS8+xB,EAAMj9zB,EAAGP,GAChB5K,KAAKmL,EAAIA,EACTnL,KAAK4K,EAAIA,CACX,CAxEKg+B,KAAKq+xB,OACR7D,EAAc7C,GAiDhBrB,EAAGh/zB,UAAUoo0B,MAAQ,SAAgBxmyB,EAAKwH,GACxC,IAAI8wE,EACA7zF,EAAMvmB,KAAKY,OAASkhC,EAAIlhC,OAW5B,OATEw5G,EADkB,KAAhBp6G,KAAKY,QAAgC,KAAfkhC,EAAIlhC,OACtBwi0B,EAAYpj0B,KAAM8hC,EAAKwH,GACpB/iB,EAAM,GACTg6yB,EAAWvg0B,KAAM8hC,EAAKwH,GACnB/iB,EAAM,KArDnB,SAAmBs9F,EAAM/hF,EAAKwH,GAC5BA,EAAIL,SAAWnH,EAAImH,SAAW46E,EAAK56E,SACnCK,EAAI1oC,OAASijH,EAAKjjH,OAASkhC,EAAIlhC,OAI/B,IAFA,IAAI2oC,EAAQ,EACRg/xB,EAAU,EACLttyB,EAAI,EAAGA,EAAIqO,EAAI1oC,OAAS,EAAGq6B,IAAK,CAGvC,IAAIulyB,EAAS+H,EACbA,EAAU,EAGV,IAFA,IAAI9H,EAAgB,SAARl3xB,EACRm3xB,EAAO93xB,KAAKuZ,IAAIlnB,EAAG6G,EAAIlhC,OAAS,GAC3B46B,EAAIoN,KAAKoa,IAAI,EAAG/nB,EAAI4oF,EAAKjjH,OAAS,GAAI46B,GAAKklyB,EAAMllyB,IAAK,CAC7D,IAAIx6B,EAAIi6B,EAAIO,EAGRn7B,GAFoB,EAAhBwjH,EAAKs+a,MAAMnhiB,KACI,EAAf8gC,EAAIqggB,MAAM3mgB,IAGdy+E,EAAS,SAAJ55G,EAGTog0B,EAAa,UADbxmtB,EAAMA,EAAKwmtB,EAAS,GAIpB8H,IAFA/H,GAHAA,EAAUA,GAAWng0B,EAAI,SAAa,GAAM,IAGxB45G,IAAO,IAAO,KAEZ,GACtBumtB,GAAU,QACZ,CACAl3xB,EAAI64f,MAAMlngB,GAAKwlyB,EACfl3xB,EAAQi3xB,EACRA,EAAS+H,CACX,CAOA,OANc,IAAVh/xB,EACFD,EAAI64f,MAAMlngB,GAAKsO,EAEfD,EAAI1oC,SAGC0oC,EAAIqxf,OACb,CAeU6tS,CAASxo0B,KAAM8hC,EAAKwH,GAEpB6+xB,EAAWno0B,KAAM8hC,EAAKwH,GAGvB8wE,CACT,EAUAgutB,EAAKlo0B,UAAUuo0B,QAAU,SAAkBp6wB,GAGzC,IAFA,IAAI5tD,EAAI,IAAI6hB,MAAM+rC,GACdhB,EAAI6xwB,EAAGh/zB,UAAUoh0B,WAAWjzwB,GAAK,EAC5BrtD,EAAI,EAAGA,EAAIqtD,EAAGrtD,IACrBP,EAAEO,GAAKhB,KAAK0o0B,OAAO1n0B,EAAGqsD,EAAGgB,GAG3B,OAAO5tD,CACT,EAGA2n0B,EAAKlo0B,UAAUwo0B,OAAS,SAAiBv9zB,EAAGkiD,EAAGgB,GAC7C,GAAU,IAANljD,GAAWA,IAAMkjD,EAAI,EAAG,OAAOljD,EAGnC,IADA,IAAIw9zB,EAAK,EACA3n0B,EAAI,EAAGA,EAAIqsD,EAAGrsD,IACrB2n0B,IAAW,EAAJx9zB,IAAWkiD,EAAIrsD,EAAI,EAC1BmK,IAAM,EAGR,OAAOw9zB,CACT,EAIAP,EAAKlo0B,UAAU0o0B,QAAU,SAAkBC,EAAKC,EAAKC,EAAKC,EAAMC,EAAM56wB,GACpE,IAAK,IAAIrtD,EAAI,EAAGA,EAAIqtD,EAAGrtD,IACrBgo0B,EAAKho0B,GAAK8n0B,EAAID,EAAI7n0B,IAClBio0B,EAAKjo0B,GAAK+n0B,EAAIF,EAAI7n0B,GAEtB,EAEAon0B,EAAKlo0B,UAAUojI,UAAY,SAAoBwlsB,EAAKC,EAAKC,EAAMC,EAAM56wB,EAAGw6wB,GACtE7o0B,KAAK4o0B,QAAQC,EAAKC,EAAKC,EAAKC,EAAMC,EAAM56wB,GAExC,IAAK,IAAIn1B,EAAI,EAAGA,EAAIm1B,EAAGn1B,IAAM,EAM3B,IALA,IAAIm0B,EAAIn0B,GAAK,EAETgwyB,EAAQtgyB,KAAKqmf,IAAI,EAAIrmf,KAAK2sG,GAAKloF,GAC/B87wB,EAAQvgyB,KAAKsmf,IAAI,EAAItmf,KAAK2sG,GAAKloF,GAE1B10B,EAAI,EAAGA,EAAI01B,EAAG11B,GAAK00B,EAI1B,IAHA,IAAI+7wB,EAASF,EACTG,EAASF,EAEJ3tyB,EAAI,EAAGA,EAAItC,EAAGsC,IAAK,CAC1B,IAAI8pJ,EAAK0jpB,EAAKrwyB,EAAI6C,GACd8tyB,EAAKL,EAAKtwyB,EAAI6C,GAEd+tyB,EAAKP,EAAKrwyB,EAAI6C,EAAItC,GAClBswyB,EAAKP,EAAKtwyB,EAAI6C,EAAItC,GAElBuwyB,EAAKL,EAASG,EAAKF,EAASG,EAEhCA,EAAKJ,EAASI,EAAKH,EAASE,EAC5BA,EAAKE,EAELT,EAAKrwyB,EAAI6C,GAAK8pJ,EAAKikpB,EACnBN,EAAKtwyB,EAAI6C,GAAK8tyB,EAAKE,EAEnBR,EAAKrwyB,EAAI6C,EAAItC,GAAKosJ,EAAKikpB,EACvBN,EAAKtwyB,EAAI6C,EAAItC,GAAKowyB,EAAKE,EAGnBhuyB,IAAM6xB,IACRo8wB,EAAKP,EAAQE,EAASD,EAAQE,EAE9BA,EAASH,EAAQG,EAASF,EAAQC,EAClCA,EAASK,EAEb,CAGN,EAEArB,EAAKlo0B,UAAUwp0B,YAAc,SAAsB7o0B,EAAGm6B,GACpD,IAAIqzB,EAAqB,EAAjBzlB,KAAKoa,IAAIhoB,EAAGn6B,GAChB8o0B,EAAU,EAAJt7wB,EACNrtD,EAAI,EACR,IAAKqtD,EAAIA,EAAI,EAAI,EAAGA,EAAGA,KAAU,EAC/BrtD,IAGF,OAAO,GAAKA,EAAI,EAAI2o0B,CACtB,EAEAvB,EAAKlo0B,UAAU0p0B,UAAY,SAAoBd,EAAKC,EAAK16wB,GACvD,KAAIA,GAAK,GAET,IAAK,IAAIrtD,EAAI,EAAGA,EAAIqtD,EAAI,EAAGrtD,IAAK,CAC9B,IAAIP,EAAIqo0B,EAAI9n0B,GAEZ8n0B,EAAI9n0B,GAAK8n0B,EAAIz6wB,EAAIrtD,EAAI,GACrB8n0B,EAAIz6wB,EAAIrtD,EAAI,GAAKP,EAEjBA,EAAIso0B,EAAI/n0B,GAER+n0B,EAAI/n0B,IAAM+n0B,EAAI16wB,EAAIrtD,EAAI,GACtB+n0B,EAAI16wB,EAAIrtD,EAAI,IAAMP,CACpB,CACF,EAEA2n0B,EAAKlo0B,UAAU2p0B,aAAe,SAAuBhpU,EAAIxyc,GAEvD,IADA,IAAI9kB,EAAQ,EACHvoC,EAAI,EAAGA,EAAIqtD,EAAI,EAAGrtD,IAAK,CAC9B,IAAIusD,EAAoC,KAAhC3kB,KAAKE,MAAM+3d,EAAG,EAAI7/f,EAAI,GAAKqtD,GACjCzlB,KAAKE,MAAM+3d,EAAG,EAAI7/f,GAAKqtD,GACvB9kB,EAEFs3d,EAAG7/f,GAAS,SAAJusD,EAGNhkB,EADEgkB,EAAI,SACE,EAEAA,EAAI,SAAY,CAE5B,CAEA,OAAOszc,CACT,EAEAunU,EAAKlo0B,UAAU4p0B,WAAa,SAAqBjpU,EAAIt6e,EAAKuizB,EAAKz6wB,GAE7D,IADA,IAAI9kB,EAAQ,EACHvoC,EAAI,EAAGA,EAAIulB,EAAKvlB,IACvBuoC,GAAyB,EAARs3d,EAAG7/f,GAEpB8n0B,EAAI,EAAI9n0B,GAAa,KAARuoC,EAAgBA,KAAkB,GAC/Cu/xB,EAAI,EAAI9n0B,EAAI,GAAa,KAARuoC,EAAgBA,KAAkB,GAIrD,IAAKvoC,EAAI,EAAIulB,EAAKvlB,EAAIqtD,IAAKrtD,EACzB8n0B,EAAI9n0B,GAAK,EAGXkluB,EAAiB,IAAV38rB,GACP28rB,EAA6B,MAAb,KAAR38rB,GACV,EAEA6+xB,EAAKlo0B,UAAUsrT,KAAO,SAAen9P,GAEnC,IADA,IAAI07wB,EAAK,IAAIznzB,MAAM+rC,GACVrtD,EAAI,EAAGA,EAAIqtD,EAAGrtD,IACrB+o0B,EAAG/o0B,GAAK,EAGV,OAAO+o0B,CACT,EAEA3B,EAAKlo0B,UAAUmo0B,KAAO,SAAel9zB,EAAGP,EAAG0+B,GACzC,IAAI+kB,EAAI,EAAIruD,KAAK0p0B,YAAYv+zB,EAAEvK,OAAQgK,EAAEhK,QAErCio0B,EAAM7o0B,KAAKyo0B,QAAQp6wB,GAEnB3zB,EAAI16B,KAAKwrT,KAAKn9P,GAEdy6wB,EAAM,IAAIxmzB,MAAM+rC,GAChB27wB,EAAO,IAAI1nzB,MAAM+rC,GACjB47wB,EAAO,IAAI3nzB,MAAM+rC,GAEjB67wB,EAAO,IAAI5nzB,MAAM+rC,GACjB87wB,EAAQ,IAAI7nzB,MAAM+rC,GAClB+7wB,EAAQ,IAAI9nzB,MAAM+rC,GAElBg8wB,EAAO/gyB,EAAI64f,MACfkoS,EAAKzp0B,OAASytD,EAEdruD,KAAK8p0B,WAAW3+zB,EAAEg3hB,MAAOh3hB,EAAEvK,OAAQko0B,EAAKz6wB,GACxCruD,KAAK8p0B,WAAWl/zB,EAAEu3hB,MAAOv3hB,EAAEhK,OAAQsp0B,EAAM77wB,GAEzCruD,KAAKsjI,UAAUwlsB,EAAKpuyB,EAAGsvyB,EAAMC,EAAM57wB,EAAGw6wB,GACtC7o0B,KAAKsjI,UAAU4msB,EAAMxvyB,EAAGyvyB,EAAOC,EAAO/7wB,EAAGw6wB,GAEzC,IAAK,IAAI7n0B,EAAI,EAAGA,EAAIqtD,EAAGrtD,IAAK,CAC1B,IAAIyo0B,EAAKO,EAAKhp0B,GAAKmp0B,EAAMnp0B,GAAKip0B,EAAKjp0B,GAAKop0B,EAAMpp0B,GAC9Cip0B,EAAKjp0B,GAAKgp0B,EAAKhp0B,GAAKop0B,EAAMpp0B,GAAKip0B,EAAKjp0B,GAAKmp0B,EAAMnp0B,GAC/Cgp0B,EAAKhp0B,GAAKyo0B,CACZ,CASA,OAPAzp0B,KAAK4p0B,UAAUI,EAAMC,EAAM57wB,GAC3BruD,KAAKsjI,UAAU0msB,EAAMC,EAAMI,EAAM3vyB,EAAG2zB,EAAGw6wB,GACvC7o0B,KAAK4p0B,UAAUS,EAAM3vyB,EAAG2zB,GACxBruD,KAAK6p0B,aAAaQ,EAAMh8wB,GAExB/kB,EAAIL,SAAW99B,EAAE89B,SAAWr+B,EAAEq+B,SAC9BK,EAAI1oC,OAASuK,EAAEvK,OAASgK,EAAEhK,OACnB0oC,EAAIqxf,OACb,EAGAukS,EAAGh/zB,UAAU+8G,IAAM,SAAcn7E,GAC/B,IAAIwH,EAAM,IAAI41xB,EAAG,MAEjB,OADA51xB,EAAI64f,MAAQ,IAAI7/gB,MAAMtiB,KAAKY,OAASkhC,EAAIlhC,QACjCZ,KAAKso0B,MAAMxmyB,EAAKwH,EACzB,EAGA41xB,EAAGh/zB,UAAUoq0B,KAAO,SAAexoyB,GACjC,IAAIwH,EAAM,IAAI41xB,EAAG,MAEjB,OADA51xB,EAAI64f,MAAQ,IAAI7/gB,MAAMtiB,KAAKY,OAASkhC,EAAIlhC,QACjCun0B,EAAWno0B,KAAM8hC,EAAKwH,EAC/B,EAGA41xB,EAAGh/zB,UAAU+m0B,KAAO,SAAenlyB,GACjC,OAAO9hC,KAAKixC,QAAQq3xB,MAAMxmyB,EAAK9hC,KACjC,EAEAk/zB,EAAGh/zB,UAAU8/zB,MAAQ,SAAgBl+xB,GACnCoksB,EAAsB,kBAARpksB,GACdoksB,EAAOpksB,EAAM,UAIb,IADA,IAAIyH,EAAQ,EACHvoC,EAAI,EAAGA,EAAIhB,KAAKY,OAAQI,IAAK,CACpC,IAAIusD,GAAqB,EAAhBvtD,KAAKmiiB,MAAMnhiB,IAAU8gC,EAC1Bm4E,GAAU,SAAJ1sD,IAA0B,SAARhkB,GAC5BA,IAAU,GACVA,GAAUgkB,EAAI,SAAa,EAE3BhkB,GAAS0wE,IAAO,GAChBj6G,KAAKmiiB,MAAMnhiB,GAAU,SAALi5G,CAClB,CAOA,OALc,IAAV1wE,IACFvpC,KAAKmiiB,MAAMnhiB,GAAKuoC,EAChBvpC,KAAKY,UAGAZ,IACT,EAEAk/zB,EAAGh/zB,UAAUqq0B,KAAO,SAAezoyB,GACjC,OAAO9hC,KAAKixC,QAAQ+uxB,MAAMl+xB,EAC5B,EAGAo9xB,EAAGh/zB,UAAUsq0B,IAAM,WACjB,OAAOxq0B,KAAKi9G,IAAIj9G,KAClB,EAGAk/zB,EAAGh/zB,UAAUuq0B,KAAO,WAClB,OAAOzq0B,KAAKin0B,KAAKjn0B,KAAKixC,QACxB,EAGAiuxB,EAAGh/zB,UAAU6iD,IAAM,SAAcjhB,GAC/B,IAAIyrB,EAxxCN,SAAqBzrB,GAGnB,IAFA,IAAIyrB,EAAI,IAAIjrC,MAAMwf,EAAI47K,aAEbm0mB,EAAM,EAAGA,EAAMtkwB,EAAE3sD,OAAQixzB,IAAO,CACvC,IAAI78sB,EAAO68sB,EAAM,GAAM,EACnBoR,EAAOpR,EAAM,GAEjBtkwB,EAAEskwB,IAAQ/vxB,EAAIqggB,MAAMntb,GAAQ,GAAKiutB,KAAWA,CAC9C,CAEA,OAAO11wB,CACT,CA6wCUm9wB,CAAW5oyB,GACnB,GAAiB,IAAbyrB,EAAE3sD,OAAc,OAAO,IAAIs+zB,EAAG,GAIlC,IADA,IAAI9ktB,EAAMp6G,KACDgB,EAAI,EAAGA,EAAIusD,EAAE3sD,QACP,IAAT2sD,EAAEvsD,GADsBA,IAAKo5G,EAAMA,EAAIowtB,OAI7C,KAAMxp0B,EAAIusD,EAAE3sD,OACV,IAAK,IAAIi7B,EAAIu+E,EAAIowtB,MAAOxp0B,EAAIusD,EAAE3sD,OAAQI,IAAK66B,EAAIA,EAAE2uyB,MAClC,IAATj9wB,EAAEvsD,KAENo5G,EAAMA,EAAI6C,IAAIphF,IAIlB,OAAOu+E,CACT,EAGA8ktB,EAAGh/zB,UAAUyq0B,OAAS,SAAiBltnB,GACrCyohB,EAAuB,kBAATzohB,GAAqBA,GAAQ,GAC3C,IAGIz8M,EAHAX,EAAIo9M,EAAO,GACXvkL,GAAKukL,EAAOp9M,GAAK,GACjBuq0B,EAAa,WAAe,GAAKvq0B,GAAQ,GAAKA,EAGlD,GAAU,IAANA,EAAS,CACX,IAAIkpC,EAAQ,EAEZ,IAAKvoC,EAAI,EAAGA,EAAIhB,KAAKY,OAAQI,IAAK,CAChC,IAAI6p0B,EAAW7q0B,KAAKmiiB,MAAMnhiB,GAAK4p0B,EAC3B3p0B,GAAsB,EAAhBjB,KAAKmiiB,MAAMnhiB,IAAU6p0B,GAAaxq0B,EAC5CL,KAAKmiiB,MAAMnhiB,GAAKC,EAAIsoC,EACpBA,EAAQshyB,IAAc,GAAKxq0B,CAC7B,CAEIkpC,IACFvpC,KAAKmiiB,MAAMnhiB,GAAKuoC,EAChBvpC,KAAKY,SAET,CAEA,GAAU,IAANs4B,EAAS,CACX,IAAKl4B,EAAIhB,KAAKY,OAAS,EAAGI,GAAK,EAAGA,IAChChB,KAAKmiiB,MAAMnhiB,EAAIk4B,GAAKl5B,KAAKmiiB,MAAMnhiB,GAGjC,IAAKA,EAAI,EAAGA,EAAIk4B,EAAGl4B,IACjBhB,KAAKmiiB,MAAMnhiB,GAAK,EAGlBhB,KAAKY,QAAUs4B,CACjB,CAEA,OAAOl5B,KAAK26hB,OACd,EAEAukS,EAAGh/zB,UAAU4q0B,MAAQ,SAAgBrtnB,GAGnC,OADAyohB,EAAyB,IAAlBlmuB,KAAKipC,UACLjpC,KAAK2q0B,OAAOltnB,EACrB,EAKAyhnB,EAAGh/zB,UAAUkh0B,OAAS,SAAiB3jnB,EAAMxM,EAAM85nB,GAEjD,IAAI7pzB,EADJgltB,EAAuB,kBAATzohB,GAAqBA,GAAQ,GAGzCv8L,EADE+vL,GACGA,EAAQA,EAAO,IAAO,GAEvB,EAGN,IAAI5wM,EAAIo9M,EAAO,GACXvkL,EAAI0P,KAAKuZ,KAAKs7J,EAAOp9M,GAAK,GAAIL,KAAKY,QACnCiloB,EAAO,SAAc,WAAcxloB,GAAMA,EACzC2q0B,EAAcD,EAMlB,GAJA7pzB,GAAKgY,EACLhY,EAAI0nB,KAAKoa,IAAI,EAAG9hC,GAGZ8pzB,EAAa,CACf,IAAK,IAAIhq0B,EAAI,EAAGA,EAAIk4B,EAAGl4B,IACrBgq0B,EAAY7oS,MAAMnhiB,GAAKhB,KAAKmiiB,MAAMnhiB,GAEpCgq0B,EAAYpq0B,OAASs4B,CACvB,CAEA,GAAU,IAANA,QAEG,GAAIl5B,KAAKY,OAASs4B,EAEvB,IADAl5B,KAAKY,QAAUs4B,EACVl4B,EAAI,EAAGA,EAAIhB,KAAKY,OAAQI,IAC3BhB,KAAKmiiB,MAAMnhiB,GAAKhB,KAAKmiiB,MAAMnhiB,EAAIk4B,QAGjCl5B,KAAKmiiB,MAAM,GAAK,EAChBniiB,KAAKY,OAAS,EAGhB,IAAI2oC,EAAQ,EACZ,IAAKvoC,EAAIhB,KAAKY,OAAS,EAAGI,GAAK,IAAgB,IAAVuoC,GAAevoC,GAAKkgB,GAAIlgB,IAAK,CAChE,IAAIuwO,EAAuB,EAAhBvxO,KAAKmiiB,MAAMnhiB,GACtBhB,KAAKmiiB,MAAMnhiB,GAAMuoC,GAAU,GAAKlpC,EAAOkxO,IAASlxO,EAChDkpC,EAAQgoM,EAAOs0Z,CACjB,CAYA,OATImlM,GAAyB,IAAVzhyB,IACjByhyB,EAAY7oS,MAAM6oS,EAAYpq0B,UAAY2oC,GAGxB,IAAhBvpC,KAAKY,SACPZ,KAAKmiiB,MAAM,GAAK,EAChBniiB,KAAKY,OAAS,GAGTZ,KAAK26hB,OACd,EAEAukS,EAAGh/zB,UAAU+q0B,MAAQ,SAAgBxtnB,EAAMxM,EAAM85nB,GAG/C,OADA7kG,EAAyB,IAAlBlmuB,KAAKipC,UACLjpC,KAAKoh0B,OAAO3jnB,EAAMxM,EAAM85nB,EACjC,EAGA7L,EAAGh/zB,UAAUgr0B,KAAO,SAAeztnB,GACjC,OAAOz9M,KAAKixC,QAAQ65xB,MAAMrtnB,EAC5B,EAEAyhnB,EAAGh/zB,UAAUir0B,MAAQ,SAAgB1tnB,GACnC,OAAOz9M,KAAKixC,QAAQ05xB,OAAOltnB,EAC7B,EAGAyhnB,EAAGh/zB,UAAUkr0B,KAAO,SAAe3tnB,GACjC,OAAOz9M,KAAKixC,QAAQg6xB,MAAMxtnB,EAC5B,EAEAyhnB,EAAGh/zB,UAAUmr0B,MAAQ,SAAgB5tnB,GACnC,OAAOz9M,KAAKixC,QAAQmwxB,OAAO3jnB,EAC7B,EAGAyhnB,EAAGh/zB,UAAU2h0B,MAAQ,SAAgBhQ,GACnC3rF,EAAsB,kBAAR2rF,GAAoBA,GAAO,GACzC,IAAIxxzB,EAAIwxzB,EAAM,GACV34xB,GAAK24xB,EAAMxxzB,GAAK,GAChBw7B,EAAI,GAAKx7B,EAGb,QAAIL,KAAKY,QAAUs4B,OAGXl5B,KAAKmiiB,MAAMjpgB,GAEL2C,EAChB,EAGAqjyB,EAAGh/zB,UAAUor0B,OAAS,SAAiB7tnB,GACrCyohB,EAAuB,kBAATzohB,GAAqBA,GAAQ,GAC3C,IAAIp9M,EAAIo9M,EAAO,GACXvkL,GAAKukL,EAAOp9M,GAAK,GAIrB,GAFA6luB,EAAyB,IAAlBlmuB,KAAKipC,SAAgB,2CAExBjpC,KAAKY,QAAUs4B,EACjB,OAAOl5B,KAQT,GALU,IAANK,GACF64B,IAEFl5B,KAAKY,OAASgoC,KAAKuZ,IAAIjpB,EAAGl5B,KAAKY,QAErB,IAANP,EAAS,CACX,IAAIwloB,EAAO,SAAc,WAAcxloB,GAAMA,EAC7CL,KAAKmiiB,MAAMniiB,KAAKY,OAAS,IAAMiloB,CACjC,CAEA,OAAO7loB,KAAK26hB,OACd,EAGAukS,EAAGh/zB,UAAUqr0B,MAAQ,SAAgB9tnB,GACnC,OAAOz9M,KAAKixC,QAAQq6xB,OAAO7tnB,EAC7B,EAGAyhnB,EAAGh/zB,UAAUyh0B,MAAQ,SAAgB7/xB,GAGnC,OAFAoksB,EAAsB,kBAARpksB,GACdoksB,EAAOpksB,EAAM,UACTA,EAAM,EAAU9hC,KAAKwr0B,OAAO1pyB,GAGV,IAAlB9hC,KAAKipC,SACa,IAAhBjpC,KAAKY,SAAiC,EAAhBZ,KAAKmiiB,MAAM,IAAUrggB,GAC7C9hC,KAAKmiiB,MAAM,GAAKrggB,GAAuB,EAAhB9hC,KAAKmiiB,MAAM,IAClCniiB,KAAKipC,SAAW,EACTjpC,OAGTA,KAAKipC,SAAW,EAChBjpC,KAAKwr0B,MAAM1pyB,GACX9hC,KAAKipC,SAAW,EACTjpC,MAIFA,KAAKig0B,OAAOn+xB,EACrB,EAEAo9xB,EAAGh/zB,UAAU+/zB,OAAS,SAAiBn+xB,GACrC9hC,KAAKmiiB,MAAM,IAAMrggB,EAGjB,IAAK,IAAI9gC,EAAI,EAAGA,EAAIhB,KAAKY,QAAUZ,KAAKmiiB,MAAMnhiB,IAAM,SAAWA,IAC7DhB,KAAKmiiB,MAAMnhiB,IAAM,SACbA,IAAMhB,KAAKY,OAAS,EACtBZ,KAAKmiiB,MAAMnhiB,EAAI,GAAK,EAEpBhB,KAAKmiiB,MAAMnhiB,EAAI,KAKnB,OAFAhB,KAAKY,OAASgoC,KAAKoa,IAAIhjD,KAAKY,OAAQI,EAAI,GAEjChB,IACT,EAGAk/zB,EAAGh/zB,UAAUsr0B,MAAQ,SAAgB1pyB,GAGnC,GAFAoksB,EAAsB,kBAARpksB,GACdoksB,EAAOpksB,EAAM,UACTA,EAAM,EAAG,OAAO9hC,KAAK2h0B,OAAO7/xB,GAEhC,GAAsB,IAAlB9hC,KAAKipC,SAIP,OAHAjpC,KAAKipC,SAAW,EAChBjpC,KAAK2h0B,MAAM7/xB,GACX9hC,KAAKipC,SAAW,EACTjpC,KAKT,GAFAA,KAAKmiiB,MAAM,IAAMrggB,EAEG,IAAhB9hC,KAAKY,QAAgBZ,KAAKmiiB,MAAM,GAAK,EACvCniiB,KAAKmiiB,MAAM,IAAMniiB,KAAKmiiB,MAAM,GAC5BniiB,KAAKipC,SAAW,OAGhB,IAAK,IAAIjoC,EAAI,EAAGA,EAAIhB,KAAKY,QAAUZ,KAAKmiiB,MAAMnhiB,GAAK,EAAGA,IACpDhB,KAAKmiiB,MAAMnhiB,IAAM,SACjBhB,KAAKmiiB,MAAMnhiB,EAAI,IAAM,EAIzB,OAAOhB,KAAK26hB,OACd,EAEAukS,EAAGh/zB,UAAUur0B,KAAO,SAAe3pyB,GACjC,OAAO9hC,KAAKixC,QAAQ0wxB,MAAM7/xB,EAC5B,EAEAo9xB,EAAGh/zB,UAAUwr0B,KAAO,SAAe5pyB,GACjC,OAAO9hC,KAAKixC,QAAQu6xB,MAAM1pyB,EAC5B,EAEAo9xB,EAAGh/zB,UAAUyr0B,KAAO,WAGlB,OAFA3r0B,KAAKipC,SAAW,EAETjpC,IACT,EAEAk/zB,EAAGh/zB,UAAU2oC,IAAM,WACjB,OAAO7oC,KAAKixC,QAAQ06xB,MACtB,EAEAzM,EAAGh/zB,UAAU0r0B,aAAe,SAAuB9pyB,EAAKm7E,EAAKhhF,GAC3D,IACIj7B,EAIAusD,EALAhnC,EAAMub,EAAIlhC,OAASq7B,EAGvBj8B,KAAKkg0B,QAAQ35yB,GAGb,IAAIgjB,EAAQ,EACZ,IAAKvoC,EAAI,EAAGA,EAAI8gC,EAAIlhC,OAAQI,IAAK,CAC/BusD,GAA6B,EAAxBvtD,KAAKmiiB,MAAMnhiB,EAAIi7B,IAAcsN,EAClC,IAAIm3F,GAAwB,EAAf5+F,EAAIqggB,MAAMnhiB,IAAUi8G,EAEjC1zE,IADAgkB,GAAa,SAARmzE,IACS,KAAQA,EAAQ,SAAa,GAC3C1gI,KAAKmiiB,MAAMnhiB,EAAIi7B,GAAa,SAAJsxB,CAC1B,CACA,KAAOvsD,EAAIhB,KAAKY,OAASq7B,EAAOj7B,IAE9BuoC,GADAgkB,GAA6B,EAAxBvtD,KAAKmiiB,MAAMnhiB,EAAIi7B,IAAcsN,IACrB,GACbvpC,KAAKmiiB,MAAMnhiB,EAAIi7B,GAAa,SAAJsxB,EAG1B,GAAc,IAAVhkB,EAAa,OAAOvpC,KAAK26hB,QAK7B,IAFAurM,GAAkB,IAAX38rB,GACPA,EAAQ,EACHvoC,EAAI,EAAGA,EAAIhB,KAAKY,OAAQI,IAE3BuoC,GADAgkB,IAAsB,EAAhBvtD,KAAKmiiB,MAAMnhiB,IAAUuoC,IACd,GACbvpC,KAAKmiiB,MAAMnhiB,GAAS,SAAJusD,EAIlB,OAFAvtD,KAAKipC,SAAW,EAETjpC,KAAK26hB,OACd,EAEAukS,EAAGh/zB,UAAU2r0B,SAAW,SAAmB/pyB,EAAK3zB,GAC9C,IAAI8tB,GAAQj8B,KAAKY,OAASkhC,EAAIlhC,QAE1BG,EAAIf,KAAKixC,QACTzY,EAAIsJ,EAGJgqyB,EAA8B,EAAxBtzyB,EAAE2pgB,MAAM3pgB,EAAE53B,OAAS,GAGf,KADdq7B,EAAQ,GADMj8B,KAAKsh0B,WAAWwK,MAG5BtzyB,EAAIA,EAAE2yyB,MAAMlvyB,GACZl7B,EAAE4p0B,OAAO1uyB,GACT6vyB,EAA8B,EAAxBtzyB,EAAE2pgB,MAAM3pgB,EAAE53B,OAAS,IAI3B,IACIi7B,EADAb,EAAIj6B,EAAEH,OAAS43B,EAAE53B,OAGrB,GAAa,QAATuN,EAAgB,EAClB0tB,EAAI,IAAIqjyB,EAAG,OACTt+zB,OAASo6B,EAAI,EACfa,EAAEsmgB,MAAQ,IAAI7/gB,MAAMuZ,EAAEj7B,QACtB,IAAK,IAAII,EAAI,EAAGA,EAAI66B,EAAEj7B,OAAQI,IAC5B66B,EAAEsmgB,MAAMnhiB,GAAK,CAEjB,CAEA,IAAIs5J,EAAOv5J,EAAEkwC,QAAQ26xB,aAAapzyB,EAAG,EAAGwC,GAClB,IAAlBs/H,EAAKrxH,WACPloC,EAAIu5J,EACAz+H,IACFA,EAAEsmgB,MAAMnngB,GAAK,IAIjB,IAAK,IAAIQ,EAAIR,EAAI,EAAGQ,GAAK,EAAGA,IAAK,CAC/B,IAAIuwyB,EAAmC,UAAL,EAAxBhr0B,EAAEohiB,MAAM3pgB,EAAE53B,OAAS46B,KACE,EAA5Bz6B,EAAEohiB,MAAM3pgB,EAAE53B,OAAS46B,EAAI,IAO1B,IAHAuwyB,EAAKnjyB,KAAKuZ,IAAK4pxB,EAAKD,EAAO,EAAG,UAE9B/q0B,EAAE6q0B,aAAapzyB,EAAGuzyB,EAAIvwyB,GACA,IAAfz6B,EAAEkoC,UACP8iyB,IACAhr0B,EAAEkoC,SAAW,EACbloC,EAAE6q0B,aAAapzyB,EAAG,EAAGgD,GAChBz6B,EAAE8/zB,WACL9/zB,EAAEkoC,UAAY,GAGdpN,IACFA,EAAEsmgB,MAAM3mgB,GAAKuwyB,EAEjB,CAWA,OAVIlwyB,GACFA,EAAE8+f,QAEJ55hB,EAAE45hB,QAGW,QAATxshB,GAA4B,IAAV8tB,GACpBl7B,EAAEqg0B,OAAOnlyB,GAGJ,CACL/yB,IAAK2yB,GAAK,KACVW,IAAKz7B,EAET,EAMAm+zB,EAAGh/zB,UAAU8r0B,OAAS,SAAiBlqyB,EAAK3zB,EAAM89zB,GAGhD,OAFA/lG,GAAQpksB,EAAI++xB,UAER7g0B,KAAK6g0B,SACA,CACL33zB,IAAK,IAAIg2zB,EAAG,GACZ1iyB,IAAK,IAAI0iyB,EAAG,IAKM,IAAlBl/zB,KAAKipC,UAAmC,IAAjBnH,EAAImH,UAC7BmxE,EAAMp6G,KAAKii0B,MAAM+J,OAAOlqyB,EAAK3zB,GAEhB,QAATA,IACFjF,EAAMkxG,EAAIlxG,IAAI+4zB,OAGH,QAAT9zzB,IACFquB,EAAM49E,EAAI59E,IAAIylyB,MACVgK,GAA6B,IAAjBzvyB,EAAIyM,UAClBzM,EAAI0myB,KAAKphyB,IAIN,CACL54B,IAAKA,EACLszB,IAAKA,IAIa,IAAlBx8B,KAAKipC,UAAmC,IAAjBnH,EAAImH,UAC7BmxE,EAAMp6G,KAAKgs0B,OAAOlqyB,EAAImgyB,MAAO9zzB,GAEhB,QAATA,IACFjF,EAAMkxG,EAAIlxG,IAAI+4zB,OAGT,CACL/4zB,IAAKA,EACLszB,IAAK49E,EAAI59E,MAI0B,KAAlCx8B,KAAKipC,SAAWnH,EAAImH,WACvBmxE,EAAMp6G,KAAKii0B,MAAM+J,OAAOlqyB,EAAImgyB,MAAO9zzB,GAEtB,QAATA,IACFquB,EAAM49E,EAAI59E,IAAIylyB,MACVgK,GAA6B,IAAjBzvyB,EAAIyM,UAClBzM,EAAI2myB,KAAKrhyB,IAIN,CACL54B,IAAKkxG,EAAIlxG,IACTszB,IAAKA,IAOLsF,EAAIlhC,OAASZ,KAAKY,QAAUZ,KAAKgja,IAAIlhY,GAAO,EACvC,CACL54B,IAAK,IAAIg2zB,EAAG,GACZ1iyB,IAAKx8B,MAKU,IAAf8hC,EAAIlhC,OACO,QAATuN,EACK,CACLjF,IAAKlJ,KAAKks0B,KAAKpqyB,EAAIqggB,MAAM,IACzB3lgB,IAAK,MAII,QAATruB,EACK,CACLjF,IAAK,KACLszB,IAAK,IAAI0iyB,EAAGl/zB,KAAK8g0B,KAAKh/xB,EAAIqggB,MAAM,MAI7B,CACLj5hB,IAAKlJ,KAAKks0B,KAAKpqyB,EAAIqggB,MAAM,IACzB3lgB,IAAK,IAAI0iyB,EAAGl/zB,KAAK8g0B,KAAKh/xB,EAAIqggB,MAAM,MAI7BniiB,KAAK6r0B,SAAS/pyB,EAAK3zB,GAlF1B,IAAIjF,EAAKszB,EAAK49E,CAmFhB,EAGA8ktB,EAAGh/zB,UAAUgJ,IAAM,SAAc44B,GAC/B,OAAO9hC,KAAKgs0B,OAAOlqyB,EAAK,OAAO,GAAO54B,GACxC,EAGAg2zB,EAAGh/zB,UAAUs8B,IAAM,SAAcsF,GAC/B,OAAO9hC,KAAKgs0B,OAAOlqyB,EAAK,OAAO,GAAOtF,GACxC,EAEA0iyB,EAAGh/zB,UAAUis0B,KAAO,SAAerqyB,GACjC,OAAO9hC,KAAKgs0B,OAAOlqyB,EAAK,OAAO,GAAMtF,GACvC,EAGA0iyB,EAAGh/zB,UAAUks0B,SAAW,SAAmBtqyB,GACzC,IAAIuqyB,EAAKrs0B,KAAKgs0B,OAAOlqyB,GAGrB,GAAIuqyB,EAAG7vyB,IAAIqkyB,SAAU,OAAOwL,EAAGnj0B,IAE/B,IAAIszB,EAA0B,IAApB6vyB,EAAGnj0B,IAAI+/B,SAAiBojyB,EAAG7vyB,IAAI2myB,KAAKrhyB,GAAOuqyB,EAAG7vyB,IAEpDqsiB,EAAO/miB,EAAIupyB,MAAM,GACjBiB,EAAKxqyB,EAAIq/xB,MAAM,GACfn+Z,EAAMxmY,EAAIwmY,IAAI6lK,GAGlB,OAAI7lK,EAAM,GAAY,IAAPspa,GAAoB,IAARtpa,EAAkBqpa,EAAGnj0B,IAGrB,IAApBmj0B,EAAGnj0B,IAAI+/B,SAAiBojyB,EAAGnj0B,IAAIsi0B,MAAM,GAAKa,EAAGnj0B,IAAIy4zB,MAAM,EAChE,EAEAzC,EAAGh/zB,UAAU4g0B,KAAO,SAAeh/xB,GACjCoksB,EAAOpksB,GAAO,UAId,IAHA,IAAInJ,GAAK,GAAK,IAAMmJ,EAEhB3f,EAAM,EACDnhB,EAAIhB,KAAKY,OAAS,EAAGI,GAAK,EAAGA,IACpCmhB,GAAOwW,EAAIxW,GAAuB,EAAhBniB,KAAKmiiB,MAAMnhiB,KAAW8gC,EAG1C,OAAO3f,CACT,EAGA+8yB,EAAGh/zB,UAAU6g0B,MAAQ,SAAgBj/xB,GACnCoksB,EAAOpksB,GAAO,UAGd,IADA,IAAIyH,EAAQ,EACHvoC,EAAIhB,KAAKY,OAAS,EAAGI,GAAK,EAAGA,IAAK,CACzC,IAAIusD,GAAqB,EAAhBvtD,KAAKmiiB,MAAMnhiB,IAAkB,SAARuoC,EAC9BvpC,KAAKmiiB,MAAMnhiB,GAAMusD,EAAIzrB,EAAO,EAC5ByH,EAAQgkB,EAAIzrB,CACd,CAEA,OAAO9hC,KAAK26hB,OACd,EAEAukS,EAAGh/zB,UAAUgs0B,KAAO,SAAepqyB,GACjC,OAAO9hC,KAAKixC,QAAQ8vxB,MAAMj/xB,EAC5B,EAEAo9xB,EAAGh/zB,UAAUqs0B,KAAO,SAAe5zyB,GACjCutsB,EAAsB,IAAfvtsB,EAAEsQ,UACTi9rB,GAAQvtsB,EAAEkoyB,UAEV,IAAI11zB,EAAInL,KACJ4K,EAAI+tB,EAAEsY,QAGR9lC,EADiB,IAAfA,EAAE89B,SACA99B,EAAEgh0B,KAAKxzyB,GAEPxtB,EAAE8lC,QAaR,IATA,IAAIwc,EAAI,IAAIyxwB,EAAG,GACXxxwB,EAAI,IAAIwxwB,EAAG,GAGXvxwB,EAAI,IAAIuxwB,EAAG,GACX/ioB,EAAI,IAAI+ioB,EAAG,GAEXzkyB,EAAI,EAEDtvB,EAAEqh0B,UAAY5h0B,EAAE4h0B,UACrBrh0B,EAAEi2zB,OAAO,GACTx2zB,EAAEw2zB,OAAO,KACP3myB,EAMJ,IAHA,IAAIgyyB,EAAK7h0B,EAAEqmC,QACPy7xB,EAAKvh0B,EAAE8lC,SAEH9lC,EAAE01zB,UAAU,CAClB,IAAK,IAAI7/zB,EAAI,EAAG2r0B,EAAK,EAAyB,KAArBxh0B,EAAEg3hB,MAAM,GAAKwqS,IAAa3r0B,EAAI,KAAMA,EAAG2r0B,IAAO,GACvE,GAAI3r0B,EAAI,EAEN,IADAmK,EAAEi2zB,OAAOpg0B,GACFA,KAAM,IACPysD,EAAEm/wB,SAAWl/wB,EAAEk/wB,WACjBn/wB,EAAEy1wB,KAAKuJ,GACP/+wB,EAAEy1wB,KAAKuJ,IAGTj/wB,EAAE2zwB,OAAO,GACT1zwB,EAAE0zwB,OAAO,GAIb,IAAK,IAAI5lyB,EAAI,EAAGqxyB,EAAK,EAAyB,KAArBji0B,EAAEu3hB,MAAM,GAAK0qS,IAAarxyB,EAAI,KAAMA,EAAGqxyB,IAAO,GACvE,GAAIrxyB,EAAI,EAEN,IADA5wB,EAAEw2zB,OAAO5lyB,GACFA,KAAM,IACPmyB,EAAEi/wB,SAAWzwoB,EAAEywoB,WACjBj/wB,EAAEu1wB,KAAKuJ,GACPtwoB,EAAEgnoB,KAAKuJ,IAGT/+wB,EAAEyzwB,OAAO,GACTjloB,EAAEiloB,OAAO,GAITj2zB,EAAE63Z,IAAIp4Z,IAAM,GACdO,EAAEg4zB,KAAKv4zB,GACP6iD,EAAE01wB,KAAKx1wB,GACPD,EAAEy1wB,KAAKhnoB,KAEPvxL,EAAEu4zB,KAAKh4zB,GACPwiD,EAAEw1wB,KAAK11wB,GACP0uI,EAAEgnoB,KAAKz1wB,GAEX,CAEA,MAAO,CACL3sD,EAAG4sD,EACHn1B,EAAG2jK,EACH2woB,IAAKli0B,EAAE+/zB,OAAOlwyB,GAElB,EAKAykyB,EAAGh/zB,UAAU6s0B,OAAS,SAAiBp0yB,GACrCutsB,EAAsB,IAAfvtsB,EAAEsQ,UACTi9rB,GAAQvtsB,EAAEkoyB,UAEV,IAAI9/zB,EAAIf,KACJw4B,EAAIG,EAAEsY,QAGRlwC,EADiB,IAAfA,EAAEkoC,SACAloC,EAAEor0B,KAAKxzyB,GAEP53B,EAAEkwC,QAQR,IALA,IAuCImpE,EAvCAyqd,EAAK,IAAIq6P,EAAG,GACZruQ,EAAK,IAAIquQ,EAAG,GAEZp4nB,EAAQtuK,EAAEyY,QAEPlwC,EAAEis0B,KAAK,GAAK,GAAKx0yB,EAAEw0yB,KAAK,GAAK,GAAG,CACrC,IAAK,IAAIhs0B,EAAI,EAAG2r0B,EAAK,EAAyB,KAArB5r0B,EAAEohiB,MAAM,GAAKwqS,IAAa3r0B,EAAI,KAAMA,EAAG2r0B,IAAO,GACvE,GAAI3r0B,EAAI,EAEN,IADAD,EAAEqg0B,OAAOpg0B,GACFA,KAAM,GACP6jkB,EAAG+nQ,SACL/nQ,EAAGq+P,KAAKp8nB,GAGV+9X,EAAGu8P,OAAO,GAId,IAAK,IAAI5lyB,EAAI,EAAGqxyB,EAAK,EAAyB,KAArBr0yB,EAAE2pgB,MAAM,GAAK0qS,IAAarxyB,EAAI,KAAMA,EAAGqxyB,IAAO,GACvE,GAAIrxyB,EAAI,EAEN,IADAhD,EAAE4oyB,OAAO5lyB,GACFA,KAAM,GACPq1hB,EAAG+7Q,SACL/7Q,EAAGqyQ,KAAKp8nB,GAGV+pX,EAAGuwQ,OAAO,GAIVrg0B,EAAEiia,IAAIxqY,IAAM,GACdz3B,EAAEoi0B,KAAK3qyB,GACPqsiB,EAAGs+P,KAAKtyQ,KAERr4hB,EAAE2qyB,KAAKpi0B,GACP8vjB,EAAGsyQ,KAAKt+P,GAEZ,CAaA,OATEzqd,EADgB,IAAdr5G,EAAEis0B,KAAK,GACHnoQ,EAEAhU,GAGAm8Q,KAAK,GAAK,GAChB5ytB,EAAI8otB,KAAKvqyB,GAGJyhF,CACT,EAEA8ktB,EAAGh/zB,UAAU4s0B,IAAM,SAAchryB,GAC/B,GAAI9hC,KAAK6g0B,SAAU,OAAO/+xB,EAAI+G,MAC9B,GAAI/G,EAAI++xB,SAAU,OAAO7g0B,KAAK6oC,MAE9B,IAAI9nC,EAAIf,KAAKixC,QACTzY,EAAIsJ,EAAImP,QACZlwC,EAAEkoC,SAAW,EACbzQ,EAAEyQ,SAAW,EAGb,IAAK,IAAIhN,EAAQ,EAAGl7B,EAAEyr0B,UAAYh0yB,EAAEg0yB,SAAUvwyB,IAC5Cl7B,EAAEqg0B,OAAO,GACT5oyB,EAAE4oyB,OAAO,GAGX,OAAG,CACD,KAAOrg0B,EAAEyr0B,UACPzr0B,EAAEqg0B,OAAO,GAEX,KAAO5oyB,EAAEg0yB,UACPh0yB,EAAE4oyB,OAAO,GAGX,IAAI/g0B,EAAIU,EAAEiia,IAAIxqY,GACd,GAAIn4B,EAAI,EAAG,CAET,IAAII,EAAIM,EACRA,EAAIy3B,EACJA,EAAI/3B,CACN,MAAO,GAAU,IAANJ,GAAyB,IAAdm4B,EAAEw0yB,KAAK,GAC3B,MAGFjs0B,EAAEoi0B,KAAK3qyB,EACT,CAEA,OAAOA,EAAEmyyB,OAAO1uyB,EAClB,EAGAijyB,EAAGh/zB,UAAU+s0B,KAAO,SAAenryB,GACjC,OAAO9hC,KAAKus0B,KAAKzqyB,GAAK/gC,EAAEor0B,KAAKrqyB,EAC/B,EAEAo9xB,EAAGh/zB,UAAUss0B,OAAS,WACpB,OAA+B,KAAP,EAAhBxs0B,KAAKmiiB,MAAM,GACrB,EAEA+8R,EAAGh/zB,UAAU0s0B,MAAQ,WACnB,OAA+B,KAAP,EAAhB5s0B,KAAKmiiB,MAAM,GACrB,EAGA+8R,EAAGh/zB,UAAUih0B,MAAQ,SAAgBr/xB,GACnC,OAAO9hC,KAAKmiiB,MAAM,GAAKrggB,CACzB,EAGAo9xB,EAAGh/zB,UAAUgt0B,MAAQ,SAAgBrb,GACnC3rF,EAAsB,kBAAR2rF,GACd,IAAIxxzB,EAAIwxzB,EAAM,GACV34xB,GAAK24xB,EAAMxxzB,GAAK,GAChBw7B,EAAI,GAAKx7B,EAGb,GAAIL,KAAKY,QAAUs4B,EAGjB,OAFAl5B,KAAKkg0B,QAAQhnyB,EAAI,GACjBl5B,KAAKmiiB,MAAMjpgB,IAAM2C,EACV77B,KAKT,IADA,IAAIupC,EAAQ1N,EACH76B,EAAIk4B,EAAa,IAAVqQ,GAAevoC,EAAIhB,KAAKY,OAAQI,IAAK,CACnD,IAAIusD,EAAoB,EAAhBvtD,KAAKmiiB,MAAMnhiB,GAEnBuoC,GADAgkB,GAAKhkB,KACS,GACdgkB,GAAK,SACLvtD,KAAKmiiB,MAAMnhiB,GAAKusD,CAClB,CAKA,OAJc,IAAVhkB,IACFvpC,KAAKmiiB,MAAMnhiB,GAAKuoC,EAChBvpC,KAAKY,UAEAZ,IACT,EAEAk/zB,EAAGh/zB,UAAU2g0B,OAAS,WACpB,OAAuB,IAAhB7g0B,KAAKY,QAAkC,IAAlBZ,KAAKmiiB,MAAM,EACzC,EAEA+8R,EAAGh/zB,UAAU8s0B,KAAO,SAAelryB,GACjC,IAOIs4E,EAPAnxE,EAAWnH,EAAM,EAErB,GAAsB,IAAlB9hC,KAAKipC,WAAmBA,EAAU,OAAQ,EAC9C,GAAsB,IAAlBjpC,KAAKipC,UAAkBA,EAAU,OAAO,EAK5C,GAHAjpC,KAAK26hB,QAGD36hB,KAAKY,OAAS,EAChBw5G,EAAM,MACD,CACDnxE,IACFnH,GAAOA,GAGToksB,EAAOpksB,GAAO,SAAW,qBAEzB,IAAIyrB,EAAoB,EAAhBvtD,KAAKmiiB,MAAM,GACnB/nb,EAAM7sD,IAAMzrB,EAAM,EAAIyrB,EAAIzrB,GAAO,EAAI,CACvC,CACA,OAAsB,IAAlB9hC,KAAKipC,SAA8B,GAANmxE,EAC1BA,CACT,EAMA8ktB,EAAGh/zB,UAAU8ia,IAAM,SAAclhY,GAC/B,GAAsB,IAAlB9hC,KAAKipC,UAAmC,IAAjBnH,EAAImH,SAAgB,OAAQ,EACvD,GAAsB,IAAlBjpC,KAAKipC,UAAmC,IAAjBnH,EAAImH,SAAgB,OAAO,EAEtD,IAAImxE,EAAMp6G,KAAKmt0B,KAAKrryB,GACpB,OAAsB,IAAlB9hC,KAAKipC,SAA8B,GAANmxE,EAC1BA,CACT,EAGA8ktB,EAAGh/zB,UAAUit0B,KAAO,SAAerryB,GAEjC,GAAI9hC,KAAKY,OAASkhC,EAAIlhC,OAAQ,OAAO,EACrC,GAAIZ,KAAKY,OAASkhC,EAAIlhC,OAAQ,OAAQ,EAGtC,IADA,IAAIw5G,EAAM,EACDp5G,EAAIhB,KAAKY,OAAS,EAAGI,GAAK,EAAGA,IAAK,CACzC,IAAID,EAAoB,EAAhBf,KAAKmiiB,MAAMnhiB,GACfw3B,EAAmB,EAAfsJ,EAAIqggB,MAAMnhiB,GAElB,GAAID,IAAMy3B,EAAV,CACIz3B,EAAIy3B,EACN4hF,GAAO,EACEr5G,EAAIy3B,IACb4hF,EAAM,GAER,KANqB,CAOvB,CACA,OAAOA,CACT,EAEA8ktB,EAAGh/zB,UAAUkt0B,IAAM,SAActryB,GAC/B,OAA0B,IAAnB9hC,KAAKgt0B,KAAKlryB,EACnB,EAEAo9xB,EAAGh/zB,UAAUmt0B,GAAK,SAAavryB,GAC7B,OAAyB,IAAlB9hC,KAAKgja,IAAIlhY,EAClB,EAEAo9xB,EAAGh/zB,UAAUot0B,KAAO,SAAexryB,GACjC,OAAO9hC,KAAKgt0B,KAAKlryB,IAAQ,CAC3B,EAEAo9xB,EAAGh/zB,UAAUqt0B,IAAM,SAAczryB,GAC/B,OAAO9hC,KAAKgja,IAAIlhY,IAAQ,CAC1B,EAEAo9xB,EAAGh/zB,UAAUst0B,IAAM,SAAc1ryB,GAC/B,OAA2B,IAApB9hC,KAAKgt0B,KAAKlryB,EACnB,EAEAo9xB,EAAGh/zB,UAAUut0B,GAAK,SAAa3ryB,GAC7B,OAA0B,IAAnB9hC,KAAKgja,IAAIlhY,EAClB,EAEAo9xB,EAAGh/zB,UAAUwt0B,KAAO,SAAe5ryB,GACjC,OAAO9hC,KAAKgt0B,KAAKlryB,IAAQ,CAC3B,EAEAo9xB,EAAGh/zB,UAAUyt0B,IAAM,SAAc7ryB,GAC/B,OAAO9hC,KAAKgja,IAAIlhY,IAAQ,CAC1B,EAEAo9xB,EAAGh/zB,UAAU0t0B,IAAM,SAAc9ryB,GAC/B,OAA0B,IAAnB9hC,KAAKgt0B,KAAKlryB,EACnB,EAEAo9xB,EAAGh/zB,UAAU2t0B,GAAK,SAAa/ryB,GAC7B,OAAyB,IAAlB9hC,KAAKgja,IAAIlhY,EAClB,EAMAo9xB,EAAG/xzB,IAAM,SAAc20B,GACrB,OAAO,IAAIgsyB,EAAIhsyB,EACjB,EAEAo9xB,EAAGh/zB,UAAU6t0B,MAAQ,SAAgBli0B,GAGnC,OAFAq6tB,GAAQlmuB,KAAKmN,IAAK,yCAClB+4tB,EAAyB,IAAlBlmuB,KAAKipC,SAAgB,iCACrBp9B,EAAImi0B,UAAUhu0B,MAAMiu0B,UAAUpi0B,EACvC,EAEAqzzB,EAAGh/zB,UAAUgu0B,QAAU,WAErB,OADAhoG,EAAOlmuB,KAAKmN,IAAK,wDACVnN,KAAKmN,IAAIgh0B,YAAYnu0B,KAC9B,EAEAk/zB,EAAGh/zB,UAAU+t0B,UAAY,SAAoBpi0B,GAE3C,OADA7L,KAAKmN,IAAMtB,EACJ7L,IACT,EAEAk/zB,EAAGh/zB,UAAUku0B,SAAW,SAAmBvi0B,GAEzC,OADAq6tB,GAAQlmuB,KAAKmN,IAAK,yCACXnN,KAAKiu0B,UAAUpi0B,EACxB,EAEAqzzB,EAAGh/zB,UAAUmu0B,OAAS,SAAiBvsyB,GAErC,OADAoksB,EAAOlmuB,KAAKmN,IAAK,sCACVnN,KAAKmN,IAAIo5B,IAAIvmC,KAAM8hC,EAC5B,EAEAo9xB,EAAGh/zB,UAAUou0B,QAAU,SAAkBxsyB,GAEvC,OADAoksB,EAAOlmuB,KAAKmN,IAAK,uCACVnN,KAAKmN,IAAI+1zB,KAAKlj0B,KAAM8hC,EAC7B,EAEAo9xB,EAAGh/zB,UAAUqu0B,OAAS,SAAiBzsyB,GAErC,OADAoksB,EAAOlmuB,KAAKmN,IAAK,sCACVnN,KAAKmN,IAAIwxG,IAAI3+G,KAAM8hC,EAC5B,EAEAo9xB,EAAGh/zB,UAAUsu0B,QAAU,SAAkB1syB,GAEvC,OADAoksB,EAAOlmuB,KAAKmN,IAAK,uCACVnN,KAAKmN,IAAIg2zB,KAAKnj0B,KAAM8hC,EAC7B,EAEAo9xB,EAAGh/zB,UAAUuu0B,OAAS,SAAiB3syB,GAErC,OADAoksB,EAAOlmuB,KAAKmN,IAAK,sCACVnN,KAAKmN,IAAIuh0B,IAAI1u0B,KAAM8hC,EAC5B,EAEAo9xB,EAAGh/zB,UAAUyu0B,OAAS,SAAiB7syB,GAGrC,OAFAoksB,EAAOlmuB,KAAKmN,IAAK,sCACjBnN,KAAKmN,IAAIyh0B,SAAS5u0B,KAAM8hC,GACjB9hC,KAAKmN,IAAI8vG,IAAIj9G,KAAM8hC,EAC5B,EAEAo9xB,EAAGh/zB,UAAU2u0B,QAAU,SAAkB/syB,GAGvC,OAFAoksB,EAAOlmuB,KAAKmN,IAAK,sCACjBnN,KAAKmN,IAAIyh0B,SAAS5u0B,KAAM8hC,GACjB9hC,KAAKmN,IAAI85zB,KAAKjn0B,KAAM8hC,EAC7B,EAEAo9xB,EAAGh/zB,UAAU4u0B,OAAS,WAGpB,OAFA5oG,EAAOlmuB,KAAKmN,IAAK,sCACjBnN,KAAKmN,IAAI4h0B,SAAS/u0B,MACXA,KAAKmN,IAAIq9zB,IAAIxq0B,KACtB,EAEAk/zB,EAAGh/zB,UAAU8u0B,QAAU,WAGrB,OAFA9oG,EAAOlmuB,KAAKmN,IAAK,uCACjBnN,KAAKmN,IAAI4h0B,SAAS/u0B,MACXA,KAAKmN,IAAIs9zB,KAAKzq0B,KACvB,EAGAk/zB,EAAGh/zB,UAAU+u0B,QAAU,WAGrB,OAFA/oG,EAAOlmuB,KAAKmN,IAAK,uCACjBnN,KAAKmN,IAAI4h0B,SAAS/u0B,MACXA,KAAKmN,IAAI08H,KAAK7pI,KACvB,EAEAk/zB,EAAGh/zB,UAAUgv0B,QAAU,WAGrB,OAFAhpG,EAAOlmuB,KAAKmN,IAAK,uCACjBnN,KAAKmN,IAAI4h0B,SAAS/u0B,MACXA,KAAKmN,IAAI8/zB,KAAKjt0B,KACvB,EAGAk/zB,EAAGh/zB,UAAUiv0B,OAAS,WAGpB,OAFAjpG,EAAOlmuB,KAAKmN,IAAK,sCACjBnN,KAAKmN,IAAI4h0B,SAAS/u0B,MACXA,KAAKmN,IAAI80zB,IAAIji0B,KACtB,EAEAk/zB,EAAGh/zB,UAAUkv0B,OAAS,SAAiBttyB,GAGrC,OAFAoksB,EAAOlmuB,KAAKmN,MAAQ20B,EAAI30B,IAAK,qBAC7BnN,KAAKmN,IAAI4h0B,SAAS/u0B,MACXA,KAAKmN,IAAI41C,IAAI/iD,KAAM8hC,EAC5B,EAGA,IAAIutyB,EAAS,CACXC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,OAAQ,MAIV,SAASC,EAAQtv0B,EAAMu4B,GAErB34B,KAAKI,KAAOA,EACZJ,KAAK24B,EAAI,IAAIumyB,EAAGvmyB,EAAG,IACnB34B,KAAKa,EAAIb,KAAK24B,EAAE+kL,YAChB19M,KAAKi7B,EAAI,IAAIikyB,EAAG,GAAGyL,OAAO3q0B,KAAKa,GAAGsi0B,KAAKnj0B,KAAK24B,GAE5C34B,KAAK86uB,IAAM96uB,KAAK2v0B,MAClB,CAgDA,SAASC,IACPF,EAAO5pzB,KACL9lB,KACA,OACA,0EACJ,CA8DA,SAAS6v0B,IACPH,EAAO5pzB,KACL9lB,KACA,OACA,iEACJ,CAGA,SAAS8v0B,IACPJ,EAAO5pzB,KACL9lB,KACA,OACA,wDACJ,CAGA,SAAS+v0B,IAEPL,EAAO5pzB,KACL9lB,KACA,QACA,sEACJ,CA6CA,SAAS8t0B,EAAK9yyB,GACZ,GAAiB,kBAANA,EAAgB,CACzB,IAAIg1yB,EAAQ9Q,EAAG+Q,OAAOj1yB,GACtBh7B,KAAKg7B,EAAIg1yB,EAAMr3yB,EACf34B,KAAKgw0B,MAAQA,CACf,MACE9pG,EAAOlrsB,EAAEoyyB,IAAI,GAAI,kCACjBpt0B,KAAKg7B,EAAIA,EACTh7B,KAAKgw0B,MAAQ,IAEjB,CAgOA,SAASE,EAAMl1yB,GACb8yyB,EAAIhozB,KAAK9lB,KAAMg7B,GAEfh7B,KAAKi8B,MAAQj8B,KAAKg7B,EAAE0iL,YAChB19M,KAAKi8B,MAAQ,KAAO,IACtBj8B,KAAKi8B,OAAS,GAAMj8B,KAAKi8B,MAAQ,IAGnCj8B,KAAKK,EAAI,IAAI6+zB,EAAG,GAAGyL,OAAO3q0B,KAAKi8B,OAC/Bj8B,KAAKss0B,GAAKts0B,KAAKmw0B,KAAKnw0B,KAAKK,EAAEmq0B,OAC3Bxq0B,KAAKow0B,KAAOpw0B,KAAKK,EAAE0s0B,OAAO/s0B,KAAKg7B,GAE/Bh7B,KAAKqw0B,KAAOrw0B,KAAKow0B,KAAKnztB,IAAIj9G,KAAKK,GAAGmr0B,MAAM,GAAGti0B,IAAIlJ,KAAKg7B,GACpDh7B,KAAKqw0B,KAAOrw0B,KAAKqw0B,KAAKlE,KAAKns0B,KAAKK,GAChCL,KAAKqw0B,KAAOrw0B,KAAKK,EAAEs+G,IAAI3+G,KAAKqw0B,KAC9B,CA7aAX,EAAOxv0B,UAAUyv0B,KAAO,WACtB,IAAI70F,EAAM,IAAIokF,EAAG,MAEjB,OADApkF,EAAI34M,MAAQ,IAAI7/gB,MAAMsmB,KAAK8wI,KAAK15K,KAAKa,EAAI,KAClCi6uB,CACT,EAEA40F,EAAOxv0B,UAAUow0B,QAAU,SAAkBxuyB,GAG3C,IACIyuyB,EADAlw0B,EAAIyhC,EAGR,GACE9hC,KAAK4B,MAAMvB,EAAGL,KAAK86uB,KAGnBy1F,GADAlw0B,GADAA,EAAIL,KAAKww0B,MAAMnw0B,IACT6i0B,KAAKlj0B,KAAK86uB,MACPp9hB,kBACF6ynB,EAAOvw0B,KAAKa,GAErB,IAAImia,EAAMuta,EAAOvw0B,KAAKa,GAAK,EAAIR,EAAE8s0B,KAAKnt0B,KAAK24B,GAgB3C,OAfY,IAARqqY,GACF3ia,EAAE8hiB,MAAM,GAAK,EACb9hiB,EAAEO,OAAS,GACFoia,EAAM,EACf3ia,EAAE8i0B,KAAKnj0B,KAAK24B,QAEItwB,IAAZhI,EAAEs6hB,MAEJt6hB,EAAEs6hB,QAGFt6hB,EAAEow0B,SAICpw0B,CACT,EAEAqv0B,EAAOxv0B,UAAU0B,MAAQ,SAAgBs+B,EAAOoJ,GAC9CpJ,EAAMkhyB,OAAOph0B,KAAKa,EAAG,EAAGyoC,EAC1B,EAEAomyB,EAAOxv0B,UAAUsw0B,MAAQ,SAAgB1uyB,GACvC,OAAOA,EAAImlyB,KAAKjn0B,KAAKi7B,EACvB,EAQAg6sB,EAAS26F,EAAMF,GAEfE,EAAK1v0B,UAAU0B,MAAQ,SAAgBs+B,EAAOwE,GAK5C,IAHA,IAAImhmB,EAAO,QAEP6qM,EAAS9nyB,KAAKuZ,IAAIjiB,EAAMt/B,OAAQ,GAC3BI,EAAI,EAAGA,EAAI0v0B,EAAQ1v0B,IAC1B0jC,EAAOy9f,MAAMnhiB,GAAKk/B,EAAMiigB,MAAMnhiB,GAIhC,GAFA0jC,EAAO9jC,OAAS8v0B,EAEZxwyB,EAAMt/B,QAAU,EAGlB,OAFAs/B,EAAMiigB,MAAM,GAAK,OACjBjigB,EAAMt/B,OAAS,GAKjB,IAAI0mH,EAAOpnF,EAAMiigB,MAAM,GAGvB,IAFAz9f,EAAOy9f,MAAMz9f,EAAO9jC,UAAY0mH,EAAOu+gB,EAElC7koB,EAAI,GAAIA,EAAIk/B,EAAMt/B,OAAQI,IAAK,CAClC,IAAI+kB,EAAwB,EAAjBma,EAAMiigB,MAAMnhiB,GACvBk/B,EAAMiigB,MAAMnhiB,EAAI,KAAQ+kB,EAAO8/mB,IAAS,EAAMv+gB,IAAS,GACvDA,EAAOvhG,CACT,CACAuhG,KAAU,GACVpnF,EAAMiigB,MAAMnhiB,EAAI,IAAMsmH,EACT,IAATA,GAAcpnF,EAAMt/B,OAAS,GAC/Bs/B,EAAMt/B,QAAU,GAEhBs/B,EAAMt/B,QAAU,CAEpB,EAEAgv0B,EAAK1v0B,UAAUsw0B,MAAQ,SAAgB1uyB,GAErCA,EAAIqggB,MAAMrggB,EAAIlhC,QAAU,EACxBkhC,EAAIqggB,MAAMrggB,EAAIlhC,OAAS,GAAK,EAC5BkhC,EAAIlhC,QAAU,EAId,IADA,IAAIq5G,EAAK,EACAj5G,EAAI,EAAGA,EAAI8gC,EAAIlhC,OAAQI,IAAK,CACnC,IAAIusD,EAAmB,EAAfzrB,EAAIqggB,MAAMnhiB,GAClBi5G,GAAU,IAAJ1sD,EACNzrB,EAAIqggB,MAAMnhiB,GAAU,SAALi5G,EACfA,EAAS,GAAJ1sD,GAAa0sD,EAAK,SAAa,EACtC,CASA,OANkC,IAA9Bn4E,EAAIqggB,MAAMrggB,EAAIlhC,OAAS,KACzBkhC,EAAIlhC,SAC8B,IAA9BkhC,EAAIqggB,MAAMrggB,EAAIlhC,OAAS,IACzBkhC,EAAIlhC,UAGDkhC,CACT,EAQAmzsB,EAAS46F,EAAMH,GAQfz6F,EAAS66F,EAAMJ,GASfz6F,EAAS86F,EAAQL,GAEjBK,EAAO7v0B,UAAUsw0B,MAAQ,SAAgB1uyB,GAGvC,IADA,IAAIyH,EAAQ,EACHvoC,EAAI,EAAGA,EAAI8gC,EAAIlhC,OAAQI,IAAK,CACnC,IAAIg5G,EAA0B,IAAL,EAAfl4E,EAAIqggB,MAAMnhiB,IAAiBuoC,EACjC0wE,EAAU,SAALD,EACTA,KAAQ,GAERl4E,EAAIqggB,MAAMnhiB,GAAKi5G,EACf1wE,EAAQywE,CACV,CAIA,OAHc,IAAVzwE,IACFzH,EAAIqggB,MAAMrggB,EAAIlhC,UAAY2oC,GAErBzH,CACT,EAGAo9xB,EAAG+Q,OAAS,SAAgB7v0B,GAE1B,GAAIiv0B,EAAOjv0B,GAAO,OAAOiv0B,EAAOjv0B,GAEhC,IAAI4v0B,EACJ,GAAa,SAAT5v0B,EACF4v0B,EAAQ,IAAIJ,OACP,GAAa,SAATxv0B,EACT4v0B,EAAQ,IAAIH,OACP,GAAa,SAATzv0B,EACT4v0B,EAAQ,IAAIF,MACP,IAAa,WAAT1v0B,EAGT,MAAM,IAAID,MAAM,iBAAmBC,GAFnC4v0B,EAAQ,IAAID,CAGd,CAGA,OAFAV,EAAOjv0B,GAAQ4v0B,EAERA,CACT,EAiBAlC,EAAI5t0B,UAAU6u0B,SAAW,SAAmBhu0B,GAC1CmluB,EAAsB,IAAfnluB,EAAEkoC,SAAgB,iCACzBi9rB,EAAOnluB,EAAEoM,IAAK,kCAChB,EAEA2g0B,EAAI5t0B,UAAU0u0B,SAAW,SAAmB7t0B,EAAGy3B,GAC7C0tsB,EAAqC,KAA7BnluB,EAAEkoC,SAAWzQ,EAAEyQ,UAAiB,iCACxCi9rB,EAAOnluB,EAAEoM,KAAOpM,EAAEoM,MAAQqrB,EAAErrB,IAC1B,kCACJ,EAEA2g0B,EAAI5t0B,UAAUiw0B,KAAO,SAAepv0B,GAClC,OAAIf,KAAKgw0B,MAAchw0B,KAAKgw0B,MAAMM,QAAQvv0B,GAAGkt0B,UAAUju0B,MAChDe,EAAEor0B,KAAKns0B,KAAKg7B,GAAGizyB,UAAUju0B,KAClC,EAEA8t0B,EAAI5t0B,UAAU+h0B,IAAM,SAAclh0B,GAChC,OAAIA,EAAE8/zB,SACG9/zB,EAAEkwC,QAGJjxC,KAAKg7B,EAAE2jF,IAAI59G,GAAGkt0B,UAAUju0B,KACjC,EAEA8t0B,EAAI5t0B,UAAUqmC,IAAM,SAAcxlC,EAAGy3B,GACnCx4B,KAAK4u0B,SAAS7t0B,EAAGy3B,GAEjB,IAAI4hF,EAAMr5G,EAAEwlC,IAAI/N,GAIhB,OAHI4hF,EAAI4oT,IAAIhja,KAAKg7B,IAAM,GACrBo/E,EAAI+otB,KAAKnj0B,KAAKg7B,GAETo/E,EAAI6ztB,UAAUju0B,KACvB,EAEA8t0B,EAAI5t0B,UAAUgj0B,KAAO,SAAeni0B,EAAGy3B,GACrCx4B,KAAK4u0B,SAAS7t0B,EAAGy3B,GAEjB,IAAI4hF,EAAMr5G,EAAEmi0B,KAAK1qyB,GAIjB,OAHI4hF,EAAI4oT,IAAIhja,KAAKg7B,IAAM,GACrBo/E,EAAI+otB,KAAKnj0B,KAAKg7B,GAETo/E,CACT,EAEA0ztB,EAAI5t0B,UAAUy+G,IAAM,SAAc59G,EAAGy3B,GACnCx4B,KAAK4u0B,SAAS7t0B,EAAGy3B,GAEjB,IAAI4hF,EAAMr5G,EAAE49G,IAAInmF,GAIhB,OAHI4hF,EAAI4ytB,KAAK,GAAK,GAChB5ytB,EAAI8otB,KAAKlj0B,KAAKg7B,GAETo/E,EAAI6ztB,UAAUju0B,KACvB,EAEA8t0B,EAAI5t0B,UAAUij0B,KAAO,SAAepi0B,EAAGy3B,GACrCx4B,KAAK4u0B,SAAS7t0B,EAAGy3B,GAEjB,IAAI4hF,EAAMr5G,EAAEoi0B,KAAK3qyB,GAIjB,OAHI4hF,EAAI4ytB,KAAK,GAAK,GAChB5ytB,EAAI8otB,KAAKlj0B,KAAKg7B,GAETo/E,CACT,EAEA0ztB,EAAI5t0B,UAAUwu0B,IAAM,SAAc3t0B,EAAG+gC,GAEnC,OADA9hC,KAAK+u0B,SAAShu0B,GACPf,KAAKmw0B,KAAKpv0B,EAAEoq0B,MAAMrpyB,GAC3B,EAEAgsyB,EAAI5t0B,UAAU+m0B,KAAO,SAAelm0B,EAAGy3B,GAErC,OADAx4B,KAAK4u0B,SAAS7t0B,EAAGy3B,GACVx4B,KAAKmw0B,KAAKpv0B,EAAEkm0B,KAAKzuyB,GAC1B,EAEAs1yB,EAAI5t0B,UAAU+8G,IAAM,SAAcl8G,EAAGy3B,GAEnC,OADAx4B,KAAK4u0B,SAAS7t0B,EAAGy3B,GACVx4B,KAAKmw0B,KAAKpv0B,EAAEk8G,IAAIzkF,GACzB,EAEAs1yB,EAAI5t0B,UAAUuq0B,KAAO,SAAe1p0B,GAClC,OAAOf,KAAKin0B,KAAKlm0B,EAAGA,EAAEkwC,QACxB,EAEA68xB,EAAI5t0B,UAAUsq0B,IAAM,SAAczp0B,GAChC,OAAOf,KAAKi9G,IAAIl8G,EAAGA,EACrB,EAEA+s0B,EAAI5t0B,UAAU2pI,KAAO,SAAe9oI,GAClC,GAAIA,EAAE8/zB,SAAU,OAAO9/zB,EAAEkwC,QAEzB,IAAI0/xB,EAAO3w0B,KAAKg7B,EAAEmmyB,MAAM,GAIxB,GAHAj7F,EAAOyqG,EAAO,IAAM,GAGP,IAATA,EAAY,CACd,IAAI5txB,EAAM/iD,KAAKg7B,EAAEuL,IAAI,IAAI24xB,EAAG,IAAIkC,OAAO,GACvC,OAAOph0B,KAAK+iD,IAAIhiD,EAAGgiD,EACrB,CAOA,IAFA,IAAIlnB,EAAI77B,KAAKg7B,EAAE0wyB,KAAK,GAChBxyyB,EAAI,GACA2C,EAAEglyB,UAA2B,IAAfhlyB,EAAEslyB,MAAM,IAC5BjoyB,IACA2C,EAAEulyB,OAAO,GAEXl7F,GAAQrqsB,EAAEglyB,UAEV,IAAI+P,EAAM,IAAI1R,EAAG,GAAG6O,MAAM/t0B,MACtB6w0B,EAAOD,EAAIzB,SAIX2B,EAAO9w0B,KAAKg7B,EAAE0wyB,KAAK,GAAGtK,OAAO,GAC7B5zwB,EAAIxtD,KAAKg7B,EAAE0iL,YAGf,IAFAlwJ,EAAI,IAAI0xwB,EAAG,EAAI1xwB,EAAIA,GAAGugxB,MAAM/t0B,MAEW,IAAhCA,KAAK+iD,IAAIyK,EAAGsjxB,GAAM9ta,IAAI6ta,IAC3BrjxB,EAAE8gxB,QAAQuC,GAOZ,IAJA,IAAI5v0B,EAAIjB,KAAK+iD,IAAIyK,EAAG3xB,GAChBx7B,EAAIL,KAAK+iD,IAAIhiD,EAAG86B,EAAE4vyB,KAAK,GAAGrK,OAAO,IACjC3g0B,EAAIT,KAAK+iD,IAAIhiD,EAAG86B,GAChBb,EAAI9B,EACc,IAAfz4B,EAAEuia,IAAI4ta,IAAY,CAEvB,IADA,IAAI91F,EAAMr6uB,EACDO,EAAI,EAAoB,IAAjB85uB,EAAI93U,IAAI4ta,GAAY5v0B,IAClC85uB,EAAMA,EAAIg0F,SAEZ5oG,EAAOlluB,EAAIg6B,GACX,IAAIxC,EAAIx4B,KAAK+iD,IAAI9hD,EAAG,IAAIi+zB,EAAG,GAAGyL,OAAO3vyB,EAAIh6B,EAAI,IAE7CX,EAAIA,EAAEsu0B,OAAOn2yB,GACbv3B,EAAIu3B,EAAEs2yB,SACNru0B,EAAIA,EAAEku0B,OAAO1t0B,GACb+5B,EAAIh6B,CACN,CAEA,OAAOX,CACT,EAEAyt0B,EAAI5t0B,UAAU+s0B,KAAO,SAAels0B,GAClC,IAAIgw0B,EAAMhw0B,EAAEgs0B,OAAO/s0B,KAAKg7B,GACxB,OAAqB,IAAjB+1yB,EAAI9nyB,UACN8nyB,EAAI9nyB,SAAW,EACRjpC,KAAKmw0B,KAAKY,GAAK5B,UAEfnv0B,KAAKmw0B,KAAKY,EAErB,EAEAjD,EAAI5t0B,UAAU6iD,IAAM,SAAchiD,EAAG+gC,GACnC,GAAIA,EAAI++xB,SAAU,OAAO,IAAI3B,EAAG,GAAG6O,MAAM/t0B,MACzC,GAAoB,IAAhB8hC,EAAIkryB,KAAK,GAAU,OAAOjs0B,EAAEkwC,QAEhC,IACI+/xB,EAAM,IAAI1uzB,MAAM,IACpB0uzB,EAAI,GAAK,IAAI9R,EAAG,GAAG6O,MAAM/t0B,MACzBgx0B,EAAI,GAAKjw0B,EACT,IAAK,IAAIC,EAAI,EAAGA,EAAIgw0B,EAAIpw0B,OAAQI,IAC9Bgw0B,EAAIhw0B,GAAKhB,KAAKi9G,IAAI+ztB,EAAIhw0B,EAAI,GAAID,GAGhC,IAAIq5G,EAAM42tB,EAAI,GACV15zB,EAAU,EACV25zB,EAAa,EACbph0B,EAAQiyB,EAAI47K,YAAc,GAK9B,IAJc,IAAV7tM,IACFA,EAAQ,IAGL7O,EAAI8gC,EAAIlhC,OAAS,EAAGI,GAAK,EAAGA,IAAK,CAEpC,IADA,IAAIuwO,EAAOzvM,EAAIqggB,MAAMnhiB,GACZw6B,EAAI3rB,EAAQ,EAAG2rB,GAAK,EAAGA,IAAK,CACnC,IAAIq2xB,EAAOtglB,GAAQ/1M,EAAK,EACpB4+E,IAAQ42tB,EAAI,KACd52tB,EAAMp6G,KAAKwq0B,IAAIpwtB,IAGL,IAARy3sB,GAAyB,IAAZv6yB,GAKjBA,IAAY,EACZA,GAAWu6yB,GA9BE,MA+Bbof,GACwC,IAANjw0B,GAAiB,IAANw6B,KAE7C4+E,EAAMp6G,KAAKi9G,IAAI7C,EAAK42tB,EAAI15zB,IACxB25zB,EAAa,EACb35zB,EAAU,IAXR25zB,EAAa,CAYjB,CACAph0B,EAAQ,EACV,CAEA,OAAOuqG,CACT,EAEA0ztB,EAAI5t0B,UAAU8t0B,UAAY,SAAoBlsyB,GAC5C,IAAIzhC,EAAIyhC,EAAIqqyB,KAAKns0B,KAAKg7B,GAEtB,OAAO36B,IAAMyhC,EAAMzhC,EAAE4wC,QAAU5wC,CACjC,EAEAyt0B,EAAI5t0B,UAAUiu0B,YAAc,SAAsBrsyB,GAChD,IAAIs4E,EAAMt4E,EAAImP,QAEd,OADAmpE,EAAIjtG,IAAM,KACHitG,CACT,EAMA8ktB,EAAGgS,KAAO,SAAepvyB,GACvB,OAAO,IAAIouyB,EAAKpuyB,EAClB,EAkBAmzsB,EAASi7F,EAAMpC,GAEfoC,EAAKhw0B,UAAU8t0B,UAAY,SAAoBlsyB,GAC7C,OAAO9hC,KAAKmw0B,KAAKruyB,EAAIqpyB,MAAMnr0B,KAAKi8B,OAClC,EAEAi0yB,EAAKhw0B,UAAUiu0B,YAAc,SAAsBrsyB,GACjD,IAAIzhC,EAAIL,KAAKmw0B,KAAKruyB,EAAIm7E,IAAIj9G,KAAKow0B,OAE/B,OADA/v0B,EAAE8M,IAAM,KACD9M,CACT,EAEA6v0B,EAAKhw0B,UAAU+m0B,KAAO,SAAelm0B,EAAGy3B,GACtC,GAAIz3B,EAAE8/zB,UAAYroyB,EAAEqoyB,SAGlB,OAFA9/zB,EAAEohiB,MAAM,GAAK,EACbphiB,EAAEH,OAAS,EACJG,EAGT,IAAIN,EAAIM,EAAEkm0B,KAAKzuyB,GACXv3B,EAAIR,EAAE8q0B,MAAMvr0B,KAAKi8B,OAAOghF,IAAIj9G,KAAKqw0B,MAAM/E,OAAOtr0B,KAAKi8B,OAAOghF,IAAIj9G,KAAKg7B,GACnEsyB,EAAI7sD,EAAE0i0B,KAAKli0B,GAAGmg0B,OAAOph0B,KAAKi8B,OAC1Bm+E,EAAM9sD,EAQV,OANIA,EAAE01W,IAAIhja,KAAKg7B,IAAM,EACnBo/E,EAAM9sD,EAAE61wB,KAAKnj0B,KAAKg7B,GACTsyB,EAAE0/wB,KAAK,GAAK,IACrB5ytB,EAAM9sD,EAAE41wB,KAAKlj0B,KAAKg7B,IAGbo/E,EAAI6ztB,UAAUju0B,KACvB,EAEAkw0B,EAAKhw0B,UAAU+8G,IAAM,SAAcl8G,EAAGy3B,GACpC,GAAIz3B,EAAE8/zB,UAAYroyB,EAAEqoyB,SAAU,OAAO,IAAI3B,EAAG,GAAG+O,UAAUju0B,MAEzD,IAAIS,EAAIM,EAAEk8G,IAAIzkF,GACVv3B,EAAIR,EAAE8q0B,MAAMvr0B,KAAKi8B,OAAOghF,IAAIj9G,KAAKqw0B,MAAM/E,OAAOtr0B,KAAKi8B,OAAOghF,IAAIj9G,KAAKg7B,GACnEsyB,EAAI7sD,EAAE0i0B,KAAKli0B,GAAGmg0B,OAAOph0B,KAAKi8B,OAC1Bm+E,EAAM9sD,EAOV,OANIA,EAAE01W,IAAIhja,KAAKg7B,IAAM,EACnBo/E,EAAM9sD,EAAE61wB,KAAKnj0B,KAAKg7B,GACTsyB,EAAE0/wB,KAAK,GAAK,IACrB5ytB,EAAM9sD,EAAE41wB,KAAKlj0B,KAAKg7B,IAGbo/E,EAAI6ztB,UAAUju0B,KACvB,EAEAkw0B,EAAKhw0B,UAAU+s0B,KAAO,SAAels0B,GAGnC,OADUf,KAAKmw0B,KAAKpv0B,EAAEgs0B,OAAO/s0B,KAAKg7B,GAAGiiF,IAAIj9G,KAAKss0B,KACnC2B,UAAUju0B,KACvB,CACD,CAr3GD,YAq3G4CA,wBCr3GqBilN,EAAOrtL,QAAiJ,SAAS73B,GAAG,IAAIU,EAAE,CAAC,EAAE,SAASJ,EAAEQ,GAAG,GAAGJ,EAAEI,GAAG,OAAOJ,EAAEI,GAAG+2B,QAAQ,IAAI52B,EAAEP,EAAEI,GAAG,CAACG,EAAEH,EAAEwsD,GAAE,EAAGz1B,QAAQ,CAAC,GAAG,OAAO73B,EAAEc,GAAGilB,KAAK9kB,EAAE42B,QAAQ52B,EAAEA,EAAE42B,QAAQv3B,GAAGW,EAAEqsD,GAAE,EAAGrsD,EAAE42B,OAAO,CAAC,OAAOv3B,EAAE26B,EAAEj7B,EAAEM,EAAEY,EAAER,EAAEJ,EAAEk4B,EAAE,SAASx4B,EAAEU,EAAEI,GAAGR,EAAES,EAAEf,EAAEU,IAAIsf,OAAOC,eAAejgB,EAAEU,EAAE,CAAC0f,YAAW,EAAGL,IAAIjf,GAAG,EAAER,EAAEA,EAAE,SAASN,GAAG,oBAAoB8jB,QAAQA,OAAOstzB,aAAapxzB,OAAOC,eAAejgB,EAAE8jB,OAAOstzB,YAAY,CAACnq0B,MAAM,WAAW+Y,OAAOC,eAAejgB,EAAE,aAAa,CAACiH,OAAM,GAAI,EAAE3G,EAAEI,EAAE,SAASV,EAAEU,GAAG,GAAG,EAAEA,IAAIV,EAAEM,EAAEN,IAAI,EAAEU,EAAE,OAAOV,EAAE,GAAG,EAAEU,GAAG,iBAAiBV,GAAGA,GAAGA,EAAE08B,WAAW,OAAO18B,EAAE,IAAIc,EAAEkf,OAAOgZ,OAAO,MAAM,GAAG14B,EAAEA,EAAEQ,GAAGkf,OAAOC,eAAenf,EAAE,UAAU,CAACsf,YAAW,EAAGnZ,MAAMjH,IAAI,EAAEU,GAAG,iBAAiBV,EAAE,IAAI,IAAIiB,KAAKjB,EAAEM,EAAEk4B,EAAE13B,EAAEG,EAAE,SAASP,GAAG,OAAOV,EAAEU,EAAE,EAAED,KAAK,KAAKQ,IAAI,OAAOH,CAAC,EAAER,EAAEQ,EAAE,SAASd,GAAG,IAAIU,EAAEV,GAAGA,EAAE08B,WAAW,WAAW,OAAO18B,EAAE2V,OAAO,EAAE,WAAW,OAAO3V,CAAC,EAAE,OAAOM,EAAEk4B,EAAE93B,EAAE,IAAIA,GAAGA,CAAC,EAAEJ,EAAES,EAAE,SAASf,EAAEU,GAAG,OAAOsf,OAAO7f,UAAU04B,eAAe9S,KAAK/lB,EAAEU,EAAE,EAAEJ,EAAEs4B,EAAE,GAAGt4B,EAAEA,EAAE64B,EAAE,GAAG,CAAp5B,CAAs5B,CAAC,GAAG,SAASn5B,EAAEU,EAAEJ,GAAG,aAAaI,EAAEg8B,YAAW,EAAGh8B,EAAEiV,aAAQ,EAAO,IAAI7U,EAAER,EAAE,IAAIW,EAAE,WAAW,SAASjB,IAAI,CAAC,OAAOA,EAAEqx0B,cAAc,SAASrx0B,EAAEU,GAAG,IAAIJ,EAAEI,EAAE0iH,MAAMpjH,GAAG,OAAOM,GAAGA,EAAEO,OAAO,GAAGP,EAAE,IAAI,EAAE,EAAEN,EAAEsx0B,eAAe,SAAStx0B,EAAEU,GAAG,IAAIJ,EAAEI,EAAE0iH,MAAMpjH,GAAG,OAAOM,GAAGA,EAAEO,OAAO,GAAGP,EAAE,IAAI,EAAE,EAAEN,EAAEux0B,oBAAoB,SAASvx0B,EAAEU,EAAEJ,GAAG,GAAGN,EAAEumB,KAAK7lB,GAAG,OAAOJ,CAAC,EAAEN,EAAEwx0B,sBAAsB,SAASxx0B,GAAG,OAAOA,GAAG,IAAI,KAAK,MAAM,KAAK,IAAI,KAA0C,IAAI,SAAS,MAAM,KAA7C,IAAI,SAAS,MAAM,OAA+B,IAAI,SAAS,MAAM,OAAO,IAAI,SAAS,MAAM,QAAQ,IAAI,SAAS,MAAM,IAAI,IAAI,SAAS,MAAM,IAAI,IAAI,SAAS,MAAM,MAAM,IAAI,UAAU,MAAM,KAAK,QAAQ,OAAO,EAAEA,EAAEyx0B,oBAAoB,SAASzx0B,GAAG,IAAIU,EAAEV,EAAE6B,MAAM,KAAKktB,OAAO,EAAE,GAAG5e,KAAK,SAASnQ,GAAG,OAAO00B,SAAS10B,EAAE,KAAK,CAAC,IAAI,GAAGU,EAAEmhB,KAAK,GAAG,KAAKnhB,EAAE,GAAG,OAAOA,EAAE,IAAI,KAAK,EAAE,MAAM,UAAU,KAAK,EAAE,MAAM,eAAe,KAAK,EAAE,MAAM,OAAO,KAAK,EAAE,MAAM,gBAAgB,KAAK,EAAE,MAAM,YAAY,KAAK,GAAG,MAAM,WAAW,KAAK,GAAG,MAAM,aAAa,KAAK,GAAG,MAAM,SAAS,KAAK,GAAG,MAAM,cAAc,KAAK,GAAG,MAAM,SAAS,KAAK,GAAG,MAAM,WAAW,QAAQ,OAAO,EAAEV,EAAE0x0B,sBAAsB,SAAS1x0B,GAAG,IAAIU,EAAEV,EAAE6B,MAAM,KAAKktB,OAAO,EAAE,GAAG5e,KAAK,SAASnQ,GAAG,OAAO00B,SAAS10B,EAAE,KAAK,CAAC,IAAI,GAAGU,EAAEmhB,KAAK,KAAK,IAAInhB,EAAE,IAAIA,EAAE,GAAG,GAAG,OAAO,IAAIA,EAAE,IAAIA,EAAE,GAAG,EAAE,UAAU,IAAIA,EAAE,IAAIA,EAAE,IAAI,EAAE,QAAQ,IAAIA,EAAE,IAAIA,EAAE,GAAG,EAAE,SAAS,IAAIA,EAAE,IAAI,IAAIA,EAAE,GAAG,QAAQ,IAAIA,EAAE,IAAIA,EAAE,GAAG,EAAE,cAAc,IAAIA,EAAE,GAAG,YAAY,IAAIA,EAAE,IAAIA,EAAE,GAAG,EAAE,qBAAqB,IAAIA,EAAE,IAAIA,EAAE,GAAG,EAAE,aAAa,IAAIA,EAAE,IAAIA,EAAE,IAAI,EAAE,SAAS,IAAIA,EAAE,GAAG,WAAW,IAAIA,EAAE,GAAG,cAAc,IAAIA,EAAE,GAAG,SAAS,IAAIA,EAAE,GAAG,OAAO,IAAIA,EAAE,GAAG,WAAM,CAAM,EAAEV,EAAE2x0B,oBAAoB,SAAS3x0B,GAAG,OAAOA,EAAE6B,MAAM,KAAKhB,MAAM,EAAEb,EAAE4x0B,gBAAgB,SAASlx0B,EAAEJ,EAAEQ,QAAG,IAASA,IAAIA,GAAE,GAAI,IAAIG,EAAEjB,EAAE2x0B,oBAAoBjx0B,GAAGy4B,EAAEn5B,EAAE2x0B,oBAAoBrx0B,GAAGU,EAAE6nC,KAAKoa,IAAIhiD,EAAEk4B,GAAGp4B,EAAE,EAAEwsD,EAAEvtD,EAAEmQ,IAAI,CAACzP,EAAEJ,IAAI,SAASI,GAAG,IAAIJ,EAAEU,EAAEhB,EAAE2x0B,oBAAoBjx0B,GAAGI,EAAEJ,EAAE,IAAI6hB,MAAMjiB,EAAE,GAAG2mB,KAAK,MAAM,OAAOjnB,EAAEmQ,IAAIrP,EAAEe,MAAM,MAAM,SAAS7B,GAAG,OAAO,IAAIuiB,MAAM,GAAGviB,EAAEa,QAAQomB,KAAK,KAAKjnB,CAAC,IAAI66C,SAAS,IAAI,IAAI/5C,IAAIC,EAAEC,EAAE6nC,KAAKuZ,IAAInhD,EAAEk4B,IAAIn4B,GAAG,EAAEA,GAAGD,GAAG,CAAC,GAAGwsD,EAAE,GAAGvsD,GAAGusD,EAAE,GAAGvsD,GAAG,OAAO,EAAE,GAAGusD,EAAE,GAAGvsD,KAAKusD,EAAE,GAAGvsD,GAAG,CAAC,GAAGA,IAAID,EAAE,OAAO,EAAEC,GAAG,CAAC,MAAM,GAAGusD,EAAE,GAAGvsD,GAAGusD,EAAE,GAAGvsD,GAAG,OAAO,CAAC,CAAC,EAAEhB,EAAEmQ,IAAI,SAASnQ,EAAEU,GAAG,IAAIJ,EAAEQ,EAAE,GAAG,GAAGyhB,MAAMpiB,UAAUgQ,IAAI,OAAOoS,MAAMpiB,UAAUgQ,IAAI4V,KAAK/lB,EAAEU,GAAG,IAAIJ,EAAE,EAAEA,EAAEN,EAAEa,OAAOP,GAAG,EAAEQ,EAAE+gB,KAAKnhB,EAAEV,EAAEM,KAAK,OAAOQ,CAAC,EAAEd,EAAE63C,KAAK,SAAS73C,EAAEU,GAAG,IAAIJ,EAAEQ,EAAE,GAAGyhB,MAAMpiB,UAAU03C,KAAK,OAAOt1B,MAAMpiB,UAAU03C,KAAK9xB,KAAK/lB,EAAEU,GAAG,IAAIJ,EAAE,EAAEQ,EAAEd,EAAEa,OAAOP,EAAEQ,EAAER,GAAG,EAAE,CAAC,IAAIW,EAAEjB,EAAEM,GAAG,GAAGI,EAAEO,EAAEX,GAAG,OAAOW,CAAC,CAAC,EAAEjB,EAAEk5B,OAAO,SAASl5B,GAAG,IAAI,IAAIU,EAAEJ,EAAEQ,EAAEd,EAAEiB,EAAE8jB,UAAUlkB,OAAOs4B,EAAE,IAAI5W,MAAMthB,EAAE,EAAEA,EAAE,EAAE,GAAGD,EAAE,EAAEA,EAAEC,EAAED,IAAIm4B,EAAEn4B,EAAE,GAAG+jB,UAAU/jB,GAAG,GAAGgf,OAAOkZ,OAAO,OAAOlZ,OAAOkZ,OAAOrU,MAAM7E,OAAO,CAAChgB,GAAG2iB,OAAOwW,IAAI,IAAIp4B,EAAE,WAAW,IAAIf,EAAEm5B,EAAEz4B,GAAG,iBAAiBV,GAAG,OAAOA,GAAGggB,OAAOwE,KAAKxkB,GAAGilB,SAAS,SAASvkB,GAAGI,EAAEJ,GAAGV,EAAEU,EAAE,GAAG,EAAE,IAAIA,EAAE,EAAEJ,EAAE64B,EAAEt4B,OAAOH,EAAEJ,EAAEI,GAAG,EAAEK,IAAI,OAAOf,CAAC,EAAEA,EAAE6x0B,gBAAgB,SAAS7x0B,GAAG,OAAOc,EAAEgx0B,oBAAoB9x0B,EAAE,EAAEA,EAAE+x0B,sBAAsB,SAAS/x0B,GAAG,OAAOc,EAAEkx0B,YAAYhy0B,IAAI,EAAE,EAAEA,CAAC,CAAttF,GAA0tFU,EAAEiV,QAAQ1U,EAAEjB,EAAE63B,QAAQn3B,EAAEiV,OAAO,EAAE,GAAG,SAAS3V,EAAEU,EAAEJ,GAAG,aAAaI,EAAEg8B,YAAW,EAAGh8B,EAAEux0B,WAAWvx0B,EAAEwx0B,OAAOxx0B,EAAEyx0B,cAAczx0B,EAAEsx0B,YAAYtx0B,EAAEox0B,yBAAoB,EAAOpx0B,EAAEox0B,oBAAoB,CAAC,cAAc,cAAc,kBAAkB,UAAUM,KAAK,OAAOC,WAAW,aAAaC,OAAO,SAASC,SAAS,WAAWC,SAAS,WAAWC,SAAS,WAAWC,QAAQ,UAAUC,MAAM,QAAQC,QAAQ,UAAU,gBAAgB,gBAAgBC,UAAU,YAAY,oBAAoB,KAAK,WAAW,WAAWC,QAAQ,UAAU,iBAAiB,OAAO,aAAa,KAAK,sBAAsB,QAAQC,MAAM,QAAQ,cAAc,cAAcC,UAAU,YAAYC,OAAO,SAASC,SAAS,WAAWC,GAAG,KAAKC,OAAO,SAASC,OAAO,SAASC,SAAS,WAAW,+BAA+B,mBAAmBC,UAAU,YAAYC,SAAS,WAAWC,MAAM,QAAQC,MAAM,QAAQ,aAAa,KAAKC,QAAQ,UAAU,gBAAgB,QAAQC,OAAO,SAAS,iBAAiB,SAASC,KAAK,QAAQnz0B,EAAEsx0B,YAAY,CAAC8B,YAAY,cAAcC,QAAQ,kBAAkBC,KAAK,OAAOC,WAAW,aAAahmkB,OAAO,SAASimkB,SAAS,WAAWC,SAAS,WAAWC,SAAS,WAAWC,QAAQ,UAAU1mzB,MAAM,QAAQ2mzB,QAAQ,UAAUC,UAAU,YAAYC,cAAc,gBAAgBjL,GAAG,oBAAoBkL,SAAS,WAAWC,QAAQ,UAAUvvrB,KAAK,iBAAiBwvrB,GAAG,aAAaC,MAAM,sBAAsBC,MAAM,QAAQC,YAAY,cAAcC,UAAU,YAAYC,OAAO,SAASC,SAAS,WAAWC,GAAG,aAAaC,OAAO,kBAAkBC,OAAO,SAASC,SAAS,WAAWC,iBAAiB,+BAA+BC,UAAU,YAAYC,SAAS,WAAWC,MAAM,QAAQC,MAAM,QAAQC,GAAG,aAAaC,QAAQ,UAAUC,MAAM,gBAAgBC,OAAO,SAASC,OAAO,kBAAkBr10B,EAAEyx0B,cAAc,CAAC6D,OAAO,SAASC,OAAO,SAASC,QAAQ,UAAUC,GAAG,MAAMz10B,EAAEwx0B,OAAO,CAACkE,aAAa,gBAAgBC,QAAQ,UAAUC,MAAM,QAAQC,IAAI,MAAMC,QAAQ,UAAUC,MAAM,QAAQpE,WAAW,aAAaD,KAAK,OAAOsB,MAAM,QAAQgD,MAAM,QAAQC,SAAS,YAAYC,aAAa,gBAAgB/C,KAAK,QAAQnz0B,EAAEux0B,WAAW,CAAC4E,SAAS,WAAWC,MAAM,QAAQC,QAAQ,UAAUC,OAAO,SAASC,MAAM,QAAQC,OAAO,SAAS,EAAE,GAAG,SAASl30B,EAAEU,EAAEJ,GAAG,aAAaI,EAAEg8B,YAAW,EAAGh8B,EAAEiV,aAAQ,EAAO,IAAI7U,EAAEG,GAAGH,EAAER,EAAE,MAAMQ,EAAE47B,WAAW57B,EAAE,CAAC6U,QAAQ7U,GAAGq4B,EAAE74B,EAAE,IAAI,SAASU,EAAEhB,EAAEU,GAAG,IAAI,IAAIJ,EAAE,EAAEA,EAAEI,EAAEG,OAAOP,IAAI,CAAC,IAAIQ,EAAEJ,EAAEJ,GAAGQ,EAAEsf,WAAWtf,EAAEsf,aAAY,EAAGtf,EAAEqf,cAAa,EAAG,UAAUrf,IAAIA,EAAEof,UAAS,GAAIF,OAAOC,eAAejgB,EAAEc,EAAEokB,IAAIpkB,EAAE,CAAC,CAAC,IAAIC,EAAE,WAAW,SAASf,IAAI,CAAC,IAAIU,EAAEJ,EAAEQ,EAAE,OAAOd,EAAEm30B,UAAU,SAASn30B,EAAEU,GAAG,QAAG,IAASA,IAAIA,GAAE,GAAI,iBAAiBV,EAAE,MAAM,IAAII,MAAM,gCAAgC,OAAO,IAAIa,EAAE0U,QAAQ3V,EAAEU,EAAE,EAAEV,EAAE4B,MAAM,SAAS5B,GAAG,OAAO,IAAIiB,EAAE0U,QAAQ3V,GAAGo30B,WAAW,EAAE120B,EAAEV,EAAEc,EAAE,CAAC,CAACokB,IAAI,cAAcnF,IAAI,WAAW,OAAOoZ,EAAE64yB,WAAW,GAAG,CAAC9szB,IAAI,aAAanF,IAAI,WAAW,OAAOoZ,EAAE84yB,UAAU,GAAG,CAAC/szB,IAAI,SAASnF,IAAI,WAAW,OAAOoZ,EAAE+4yB,MAAM,GAAG,CAAChtzB,IAAI,gBAAgBnF,IAAI,WAAW,OAAOoZ,EAAEg5yB,aAAa,KAAK7x0B,EAAE,OAAOU,EAAEN,EAAEP,UAAUG,GAAGQ,GAAGE,EAAEN,EAAEI,GAAGd,CAAC,CAA3f,GAA+fU,EAAEiV,QAAQ5U,EAAEf,EAAE63B,QAAQn3B,EAAEiV,OAAO,EAAE,GAAG,SAAS3V,EAAEU,EAAEJ,GAAG,aAAaI,EAAEg8B,YAAW,EAAGh8B,EAAEiV,aAAQ,EAAO,IAAI7U,EAAEysD,EAAEjtD,EAAE,KAAKW,EAAEssD,EAAEjtD,EAAE,KAAK64B,EAAEo0B,EAAEjtD,EAAE,KAAKU,EAAEusD,EAAEjtD,EAAE,KAAKS,EAAEwsD,EAAEjtD,EAAE,KAAK,SAASitD,EAAEvtD,GAAG,OAAOA,GAAGA,EAAE08B,WAAW18B,EAAE,CAAC2V,QAAQ3V,EAAE,CAAC,IAAIw4B,EAAE,WAAW,SAASx4B,EAAEA,EAAEU,GAAG,QAAG,IAASA,IAAIA,GAAE,GAAI,MAAMV,GAAG,KAAKA,EAAE,MAAM,IAAII,MAAM,sCAAsCH,KAAKo30B,IAAIr30B,EAAEC,KAAKq30B,aAAa,CAAC,GAAE,IAAK520B,GAAGT,KAAK2B,OAAO,CAAC,IAAIlB,EAAEV,EAAEG,UAAU,OAAOO,EAAE620B,MAAM,WAAW,OAAOt30B,KAAKo30B,GAAG,EAAE320B,EAAE6lB,KAAK,SAASvmB,GAAG,OAAOA,EAAEumB,KAAKtmB,KAAKo30B,IAAI,EAAE320B,EAAE820B,aAAa,WAAW,IAAIx30B,EAAEC,KAAKA,KAAKq30B,aAAaxvxB,QAAQ,CAAC,EAAE,IAAIpnD,EAAEK,EAAE4U,QAAQkiC,KAAK/2C,EAAE6U,SAAS,SAASjV,GAAG,GAAG,mBAAmBA,EAAE6lB,KAAK,OAAO7lB,EAAE6lB,KAAKvmB,GAAG,GAAGU,EAAE6lB,gBAAgBhE,MAAM,OAAO7hB,EAAE6lB,KAAK0B,MAAM,SAASvnB,GAAG,OAAOV,EAAEumB,KAAK7lB,EAAE,IAAI,MAAM,IAAIN,MAAM,uCAAuC,IAAI,OAAOM,IAAIT,KAAKq30B,aAAaxvxB,QAAQpnD,EAAE+20B,SAASx30B,KAAKs30B,UAAUt30B,KAAKq30B,aAAaxvxB,OAAO,EAAEpnD,EAAEg30B,WAAW,WAAW,OAAOz30B,KAAKq30B,aAAaxvxB,QAAQ7nD,KAAKq30B,aAAaxvxB,QAAQ7nD,KAAKu30B,cAAc,EAAE920B,EAAEi30B,eAAe,SAAS330B,GAAG,OAAOA,EAAEW,OAAOV,KAAKy30B,aAAar30B,MAAMyf,eAAe,GAAG7f,KAAKy30B,aAAar30B,MAAM,EAAE,EAAEK,EAAEk30B,kBAAkB,WAAW,OAAO330B,KAAKy30B,aAAaj5xB,OAAO,EAAE/9C,EAAEm30B,MAAM,WAAW,OAAO530B,KAAKq30B,aAAazvxB,GAAG5nD,KAAKq30B,aAAazvxB,GAAG5nD,KAAK630B,SAAS,EAAEp30B,EAAEo30B,QAAQ,WAAW,IAAI930B,EAAEC,KAAKA,KAAKq30B,aAAazvxB,GAAG,CAAC,EAAE,IAAInnD,EAAEK,EAAE4U,QAAQkiC,KAAK52C,EAAE0U,SAAS,SAASjV,GAAG,GAAG,mBAAmBA,EAAE6lB,KAAK,OAAO7lB,EAAE6lB,KAAKvmB,GAAG,GAAGU,EAAE6lB,gBAAgBhE,MAAM,OAAO7hB,EAAE6lB,KAAK0B,MAAM,SAASvnB,GAAG,OAAOV,EAAEumB,KAAK7lB,EAAE,IAAI,MAAM,IAAIN,MAAM,uCAAuC,IAAI,OAAOM,IAAIT,KAAKq30B,aAAazvxB,GAAGnnD,EAAE+20B,SAASx30B,KAAKs30B,UAAUt30B,KAAKq30B,aAAazvxB,EAAE,EAAEnnD,EAAEq30B,UAAU,SAAS/30B,GAAG,IAAIU,EAAET,KAAK430B,QAAQx30B,KAAK,OAAOL,EAAEW,OAAOD,GAAGof,eAAe,GAAGpf,GAAG,EAAE,EAAEA,EAAEs30B,aAAa,WAAW,OAAO/30B,KAAK430B,QAAQp5xB,OAAO,EAAE/9C,EAAEu30B,YAAY,WAAW,OAAOh40B,KAAKq30B,aAAapixB,SAASj1D,KAAKq30B,aAAapixB,SAASj1D,KAAKi40B,eAAe,EAAEx30B,EAAEy30B,gBAAgB,SAASn40B,QAAG,IAASA,IAAIA,GAAE,GAAI,IAAIU,EAAET,KAAKg40B,cAAc/z0B,KAAK,OAAOlE,EAAEW,OAAOD,GAAGof,eAAe,GAAGpf,GAAG,EAAE,EAAEA,EAAEw30B,cAAc,WAAW,IAAIl40B,EAAEC,KAAKA,KAAKq30B,aAAapixB,SAAS,CAAC,EAAE,IAAIx0D,EAAEK,EAAE4U,QAAQkiC,KAAK1e,EAAExjB,SAAS,SAASjV,GAAG,GAAG,mBAAmBA,EAAE6lB,KAAK,OAAO7lB,EAAE6lB,KAAKvmB,GAAG,GAAGU,EAAE6lB,gBAAgBhE,MAAM,OAAO7hB,EAAE6lB,KAAK0B,MAAM,SAASvnB,GAAG,OAAOV,EAAEumB,KAAK7lB,EAAE,IAAI,MAAM,IAAIN,MAAM,uCAAuC,IAAI,OAAOM,IAAIT,KAAKq30B,aAAapixB,SAASx0D,EAAE+20B,SAASx30B,KAAKs30B,UAAUt30B,KAAKq30B,aAAapixB,QAAQ,EAAEx0D,EAAE030B,UAAU,WAAW,OAAOn40B,KAAKq30B,aAAahvB,OAAOrozB,KAAKq30B,aAAahvB,OAAOrozB,KAAKo40B,aAAa,EAAE330B,EAAE430B,cAAc,SAASt40B,GAAG,OAAOA,EAAEW,OAAOV,KAAKm40B,YAAY/30B,MAAMyf,eAAe,GAAG7f,KAAKm40B,YAAY/30B,MAAM,EAAE,EAAEK,EAAE230B,YAAY,WAAW,IAAIr40B,EAAEC,KAAKA,KAAKq30B,aAAahvB,OAAO,CAAC,EAAE,IAAI5nzB,EAAEK,EAAE4U,QAAQkiC,KAAK72C,EAAE2U,SAAS,SAASjV,GAAG,GAAG,mBAAmBA,EAAE6lB,KAAK,OAAO7lB,EAAE6lB,KAAKvmB,GAAG,GAAGU,EAAE6lB,gBAAgBhE,MAAM,OAAO7hB,EAAE6lB,KAAK0B,MAAM,SAASvnB,GAAG,OAAOV,EAAEumB,KAAK7lB,EAAE,IAAI,MAAM,IAAIN,MAAM,uCAAuC,IAAI,OAAOM,IAAIT,KAAKq30B,aAAahvB,OAAO5nzB,EAAE+20B,SAASx30B,KAAKs30B,UAAUt30B,KAAKq30B,aAAahvB,MAAM,EAAE5nzB,EAAEkB,MAAM,WAAW,OAAO3B,KAAKu30B,eAAev30B,KAAK630B,UAAU730B,KAAKi40B,gBAAgBj40B,KAAKo40B,cAAcp40B,IAAI,EAAES,EAAE020B,UAAU,WAAW,OAAOr20B,EAAE4U,QAAQujB,OAAO,CAAC,EAAEj5B,KAAKq30B,aAAa,EAAE520B,EAAE630B,UAAU,SAASv40B,GAAG,IAAIU,EAAET,KAAKK,EAAE,CAAC,EAAEQ,EAAE,EAAEG,EAAE,CAAC,EAAEk4B,EAAE,EAAE,GAAGnZ,OAAOwE,KAAKxkB,GAAGilB,SAAS,SAASvkB,GAAG,IAAIM,EAAEhB,EAAEU,GAAG,iBAAiBM,GAAGC,EAAEP,GAAGM,EAAEm4B,GAAG,GAAG,iBAAiBn4B,IAAIV,EAAEI,GAAGM,EAAEF,GAAG,EAAE,IAAIA,EAAE,EAAE,CAAC,IAAIE,EAAEgf,OAAOwE,KAAKlkB,GAAGitD,EAAExsD,EAAE4U,QAAQkiC,KAAK72C,GAAG,SAAShB,GAAG,OAAOU,EAAE830B,KAAKx40B,EAAE,IAAI,GAAGutD,EAAE,CAAC,IAAI/0B,EAAEv4B,KAAKs40B,UAAUj40B,EAAEitD,IAAI,QAAG,IAAS/0B,EAAE,OAAOA,CAAC,CAAC,IAAIt3B,EAAEH,EAAE4U,QAAQkiC,KAAK72C,GAAG,SAAShB,GAAG,OAAOU,EAAE+30B,WAAWz40B,EAAE,IAAI,GAAGkB,EAAE,CAAC,IAAIwe,EAAEzf,KAAKs40B,UAAUj40B,EAAEY,IAAI,QAAG,IAASwe,EAAE,OAAOA,CAAC,CAAC,CAAC,GAAGyZ,EAAE,EAAE,CAAC,IAAIm0B,EAAEttC,OAAOwE,KAAKvjB,GAAGkgB,EAAEpgB,EAAE4U,QAAQkiC,KAAKyV,GAAG,SAASttD,GAAG,OAAOU,EAAEm0jB,UAAU70jB,GAAE,EAAG,IAAI,QAAG,IAASmhB,EAAE,OAAOlhB,KAAKy40B,eAAez30B,EAAEkgB,GAAG,CAAC,EAAEzgB,EAAEm0jB,UAAU,SAAS70jB,EAAEU,QAAG,IAASA,IAAIA,GAAE,GAAI,IAAIJ,EAAEL,KAAK030B,iBAAiB73zB,cAAchf,EAAEd,EAAE8f,cAAc7e,EAAEF,EAAE4U,QAAQo8zB,sBAAsBjx0B,GAAG,OAAOJ,GAAGO,IAAIH,EAAEG,EAAE6e,eAAehf,IAAIR,CAAC,EAAEI,EAAEg40B,eAAe,SAAS140B,GAAG,IAAIU,EAAE,CAAC,GAAGJ,EAAEN,EAAEc,GAAE,EAAGG,EAAEhB,KAAK230B,oBAAoB,GAAG,iBAAiB320B,EAAE,MAAM,MAAMjB,EAAE,IAAI,MAAMA,EAAE,IAAIM,EAAEN,EAAE8F,OAAO,GAAG,MAAM9F,EAAE,IAAIc,GAAE,EAAGR,EAAEN,EAAE8F,OAAO,IAAIpF,EAAE,GAAG,MAAMV,EAAE,GAAGU,EAAEmhB,KAAK,GAAGnhB,EAAEmhB,MAAM,IAAI,MAAM7hB,EAAE,GAAGM,EAAEN,EAAE8F,OAAO,GAAG,MAAM9F,EAAE,KAAKc,GAAE,EAAGR,EAAEN,EAAE8F,OAAO,IAAIpF,EAAEW,QAAQN,EAAE4U,QAAQi8zB,gBAAgB3w0B,EAAEX,EAAEQ,KAAK,CAAC,EAAEJ,EAAE830B,KAAK,SAASx40B,GAAG,OAAOC,KAAK830B,WAAU,KAAMp30B,OAAOX,GAAG8f,aAAa,EAAEpf,EAAE+30B,WAAW,SAASz40B,GAAG,OAAOC,KAAKk40B,iBAAgB,KAAMx30B,OAAOX,GAAG8f,aAAa,EAAEpf,EAAEi40B,SAAS,SAAS340B,GAAG,OAAOC,KAAKq40B,eAAc,KAAM330B,OAAOX,GAAG8f,aAAa,EAAEpf,EAAE6vN,GAAG,SAASvwN,EAAEU,GAAG,YAAO,IAASA,IAAIA,GAAE,GAAIT,KAAK40jB,UAAU70jB,EAAEU,IAAIT,KAAKu40B,KAAKx40B,IAAIC,KAAKw40B,WAAWz40B,EAAE,EAAEU,EAAEunB,KAAK,SAASjoB,GAAG,IAAIU,EAAET,KAAK,YAAO,IAASD,IAAIA,EAAE,IAAIA,EAAEioB,MAAM,SAASjoB,GAAG,OAAOU,EAAE6vN,GAAGvwN,EAAE,GAAG,EAAEA,CAAC,CAAv0I,GAA20IU,EAAEiV,QAAQ6iB,EAAEx4B,EAAE63B,QAAQn3B,EAAEiV,OAAO,EAAE,GAAG,SAAS3V,EAAEU,EAAEJ,GAAG,aAAaI,EAAEg8B,YAAW,EAAGh8B,EAAEiV,aAAQ,EAAO,IAAI7U,EAAEG,GAAGH,EAAER,EAAE,MAAMQ,EAAE47B,WAAW57B,EAAE,CAAC6U,QAAQ7U,GAAOq4B,EAAE,6BAA6Bn4B,EAAE,CAAC,CAACulB,KAAK,CAAC,cAAckxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,aAAaC,EAAEW,EAAE0U,QAAQ07zB,cAAc,2BAA2Brx0B,IAAIiB,EAAE0U,QAAQ07zB,cAAcl4yB,EAAEn5B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,UAAUkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,SAASC,EAAEW,EAAE0U,QAAQ07zB,cAAcl4yB,EAAEn5B,IAAIiB,EAAE0U,QAAQ07zB,cAAc,kCAAkCrx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,gBAAgBkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,SAASC,EAAEW,EAAE0U,QAAQ07zB,cAAc,2BAA2Brx0B,IAAIiB,EAAE0U,QAAQ07zB,cAAcl4yB,EAAEn5B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,mBAAmBkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,gCAAgCC,EAAEW,EAAE0U,QAAQ07zB,cAAcl4yB,EAAEn5B,IAAIiB,EAAE0U,QAAQ07zB,cAAc,2CAA2Crx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,UAAUkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,uBAAuBC,EAAEW,EAAE0U,QAAQ07zB,cAAcl4yB,EAAEn5B,IAAIiB,EAAE0U,QAAQ07zB,cAAc,iCAAiCrx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,cAAckxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,cAAcC,EAAEW,EAAE0U,QAAQ07zB,cAAc,qCAAqCrx0B,IAAIiB,EAAE0U,QAAQ07zB,cAAcl4yB,EAAEn5B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,UAAUkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,SAASC,EAAEW,EAAE0U,QAAQ07zB,cAAc,iCAAiCrx0B,IAAIiB,EAAE0U,QAAQ07zB,cAAcl4yB,EAAEn5B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,UAAUkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,SAASC,EAAEW,EAAE0U,QAAQ07zB,cAAc,iCAAiCrx0B,IAAIiB,EAAE0U,QAAQ07zB,cAAcl4yB,EAAEn5B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,UAAUkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,eAAeC,EAAEW,EAAE0U,QAAQ07zB,cAAcl4yB,EAAEn5B,IAAIiB,EAAE0U,QAAQ07zB,cAAc,kCAAkCrx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,yBAAyBkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,eAAeC,EAAEW,EAAE0U,QAAQ07zB,cAAc,gCAAgCrx0B,IAAIiB,EAAE0U,QAAQ07zB,cAAcl4yB,EAAEn5B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,cAAckxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,kBAAkBC,EAAEW,EAAE0U,QAAQ07zB,cAAc,sCAAsCrx0B,IAAIiB,EAAE0U,QAAQ07zB,cAAcl4yB,EAAEn5B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,cAAckxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,cAAcC,EAAEW,EAAE0U,QAAQ07zB,cAAcl4yB,EAAEn5B,IAAIiB,EAAE0U,QAAQ07zB,cAAc,sCAAsCrx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,kBAAkBkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,WAAWC,EAAEW,EAAE0U,QAAQ07zB,cAAcl4yB,EAAEn5B,IAAIiB,EAAE0U,QAAQ07zB,cAAc,0CAA0Crx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,aAAakxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,YAAYC,EAAEW,EAAE0U,QAAQ07zB,cAAcl4yB,EAAEn5B,IAAIiB,EAAE0U,QAAQ07zB,cAAc,qCAAqCrx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,WAAWkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,UAAUC,EAAEW,EAAE0U,QAAQ07zB,cAAcl4yB,EAAEn5B,IAAIiB,EAAE0U,QAAQ07zB,cAAc,mCAAmCrx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,aAAakxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,YAAYC,EAAEW,EAAE0U,QAAQ07zB,cAAcl4yB,EAAEn5B,IAAIiB,EAAE0U,QAAQ07zB,cAAc,qCAAqCrx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,aAAakxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,YAAYC,EAAEW,EAAE0U,QAAQ07zB,cAAcl4yB,EAAEn5B,IAAIiB,EAAE0U,QAAQ07zB,cAAc,qCAAqCrx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,mBAAmBkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,UAAUC,EAAEW,EAAE0U,QAAQ07zB,cAAc,2CAA2Crx0B,IAAIiB,EAAE0U,QAAQ07zB,cAAcl4yB,EAAEn5B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,cAAckxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,iBAAiBkmB,KAAKvmB,GAAG,kBAAkB,cAAcM,EAAEW,EAAE0U,QAAQ07zB,cAAc,kDAAkDrx0B,IAAIiB,EAAE0U,QAAQ07zB,cAAcl4yB,EAAEn5B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,iBAAiBkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,qBAAqBC,EAAEW,EAAE0U,QAAQ07zB,cAAc,iCAAiCrx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,YAAYkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,kBAAkBC,EAAEW,EAAE0U,QAAQ07zB,cAAc,2BAA2Brx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,kBAAkBkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,kBAAkBC,EAAEW,EAAE0U,QAAQ27zB,eAAe,mCAAmCtx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,YAAYkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,WAAWC,EAAEW,EAAE0U,QAAQ07zB,cAAc,6BAA6Brx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,cAAckxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,aAAaC,EAAEW,EAAE0U,QAAQ07zB,cAAc,+BAA+Brx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,aAAakxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,YAAYC,EAAEW,EAAE0U,QAAQ07zB,cAAc,qCAAqCrx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,SAASkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,eAAeC,EAAEW,EAAE0U,QAAQ07zB,cAAc,0BAA0Brx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,YAAYkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,aAAaC,EAAEW,EAAE0U,QAAQ07zB,cAAc,+BAA+Brx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,aAAakxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,YAAYC,EAAEW,EAAE0U,QAAQ07zB,cAAc,8BAA8Brx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,sBAAsB,gBAAgBkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,cAAcC,EAAEW,EAAE0U,QAAQ07zB,cAAcl4yB,EAAEn5B,IAAIiB,EAAE0U,QAAQ07zB,cAAc,qCAAqCrx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,mBAAmBkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,iBAAiBC,EAAEW,EAAE0U,QAAQ07zB,cAAcl4yB,EAAEn5B,IAAIiB,EAAE0U,QAAQ07zB,cAAc,0CAA0Crx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,SAASkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,QAAQC,EAAEW,EAAE0U,QAAQ07zB,cAAc,4BAA4Brx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,UAAUkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,SAASC,EAAEW,EAAE0U,QAAQ07zB,cAAc,0CAA0Crx0B,IAAIiB,EAAE0U,QAAQ07zB,cAAcl4yB,EAAEn5B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,aAAakxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,YAAYC,EAAEW,EAAE0U,QAAQ07zB,cAAc,qCAAqCrx0B,IAAIiB,EAAE0U,QAAQ07zB,cAAcl4yB,EAAEn5B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,4BAA4BkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,WAAWC,EAAEW,EAAE0U,QAAQ07zB,cAAc,oDAAoDrx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,aAAakxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,YAAYC,EAAEW,EAAE0U,QAAQ07zB,cAAc,kCAAkCrx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,gBAAgBkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,QAAQC,EAAEW,EAAE0U,QAAQ07zB,cAAc,wCAAwCrx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,aAAakxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,YAAYC,EAAEW,EAAE0U,QAAQ07zB,cAAc,qCAAqCrx0B,IAAIiB,EAAE0U,QAAQ07zB,cAAcl4yB,EAAEn5B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,sBAAsBkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,UAAUC,EAAEW,EAAE0U,QAAQ07zB,cAAc,2CAA2Crx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,QAAQkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,iBAAiBC,EAAEW,EAAE0U,QAAQ07zB,cAAc,6BAA6Brx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,SAASvmB,GAAG,IAAIU,GAAGV,EAAEumB,KAAK,iBAAiBjmB,EAAEN,EAAEumB,KAAK,YAAY,OAAO7lB,GAAGJ,CAAC,EAAEm30B,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,mBAAmBC,EAAEW,EAAE0U,QAAQ07zB,cAAcl4yB,EAAEn5B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,kBAAkBkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,iBAAiBC,EAAEW,EAAE0U,QAAQ07zB,cAAcl4yB,EAAEn5B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,uBAAuBkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK,UAAUC,EAAEW,EAAE0U,QAAQ07zB,cAAcl4yB,EAAEn5B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,OAAOkxzB,SAAS,SAASz30B,GAAG,IAAIU,GAAG,IAAIV,EAAEw1B,OAAO,OAAO,yBAAyB,eAAe,MAAM,CAACn1B,KAAKY,EAAE0U,QAAQ07zB,cAAc3w0B,EAAEV,GAAGy+C,QAAQx9C,EAAE0U,QAAQ27zB,eAAe5w0B,EAAEV,GAAG,IAAIU,EAAEiV,QAAQ3U,EAAEhB,EAAE63B,QAAQn3B,EAAEiV,OAAO,EAAE,GAAG,SAAS3V,EAAEU,EAAEJ,GAAG,aAAaI,EAAEg8B,YAAW,EAAGh8B,EAAEiV,aAAQ,EAAO,IAAI7U,EAAEG,GAAGH,EAAER,EAAE,MAAMQ,EAAE47B,WAAW57B,EAAE,CAAC6U,QAAQ7U,GAAGq4B,EAAE74B,EAAE,IAAQU,EAAE,CAAC,CAACulB,KAAK,CAAC,aAAakxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAEO,EAAE0U,QAAQ07zB,cAAc,wBAAwBrx0B,GAAG,MAAM,CAACK,KAAK84B,EAAE+4yB,OAAO2B,KAAKp1xB,QAAQ/9C,EAAE,GAAG,CAAC6lB,KAAK,CAAC,kBAAkBkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAEO,EAAE0U,QAAQ07zB,cAAc,yCAAyCrx0B,GAAG,MAAM,CAACK,KAAK84B,EAAE+4yB,OAAOkE,aAAa33xB,QAAQ/9C,EAAE,GAAG,CAAC6lB,KAAK,CAAC,aAAakxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAEO,EAAE0U,QAAQ07zB,cAAc,iCAAiCrx0B,GAAGM,EAAEW,EAAE0U,QAAQ67zB,sBAAsB9w0B,GAAG,MAAM,CAACL,KAAK84B,EAAE+4yB,OAAOmE,QAAQ53xB,QAAQ/9C,EAAEk40B,YAAYt40B,EAAE,GAAG,CAACimB,KAAK,CAAC,+BAA+BkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK84B,EAAE+4yB,OAAOqE,KAAKj20B,EAAEW,EAAE0U,QAAQ27zB,eAAe,wBAAwBtx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,cAAckxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAEO,EAAE0U,QAAQ07zB,cAAc,6BAA6Brx0B,GAAGY,QAAQ,SAAS,KAAKN,EAAEW,EAAE0U,QAAQ87zB,oBAAoB/w0B,GAAGI,EAAE,CAACT,KAAK84B,EAAE+4yB,OAAOoE,MAAM73xB,QAAQ/9C,GAAG,OAAOJ,IAAIQ,EAAE830B,YAAYt40B,GAAGQ,CAAC,GAAG,CAACylB,KAAK,CAAC,uBAAuBkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAEO,EAAE0U,QAAQ07zB,cAAc,qCAAqCrx0B,GAAGY,QAAQ,SAAS,KAAK,MAAM,CAACP,KAAK84B,EAAE+4yB,OAAOqE,IAAI93xB,QAAQ/9C,EAAE,GAAG,CAAC6lB,KAAK,SAASvmB,GAAG,IAAIU,GAAGV,EAAEumB,KAAK,iBAAiBjmB,EAAEN,EAAEumB,KAAK,YAAY,OAAO7lB,GAAGJ,CAAC,EAAEm30B,SAAS,SAASz30B,GAAG,IAAIU,EAAEO,EAAE0U,QAAQ07zB,cAAc,8BAA8Brx0B,GAAGM,EAAEW,EAAE0U,QAAQ+7zB,sBAAsBhx0B,GAAGI,EAAE,CAACT,KAAK84B,EAAE+4yB,OAAOsE,QAAQ/3xB,QAAQ/9C,GAAG,OAAOJ,IAAIQ,EAAE830B,YAAYt40B,GAAGQ,CAAC,GAAG,CAACylB,KAAK,CAAC,mBAAmBkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAEO,EAAE0U,QAAQ07zB,cAAc,mCAAmCrx0B,GAAGM,EAAE,CAACD,KAAK84B,EAAE+4yB,OAAOuE,OAAO,OAAO/10B,GAAGA,EAAEG,SAASP,EAAEm+C,QAAQ/9C,GAAGJ,CAAC,GAAG,CAACimB,KAAK,CAAC,sBAAsB,gBAAgBkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAEO,EAAE0U,QAAQ07zB,cAAc,kCAAkCrx0B,IAAIiB,EAAE0U,QAAQ07zB,cAAc,mCAAmCrx0B,IAAIiB,EAAE0U,QAAQ07zB,cAAc,aAAarx0B,GAAG,MAAM,CAACK,KAAK84B,EAAE+4yB,OAAOG,WAAW5zxB,QAAQ/9C,EAAE,GAAG,CAAC6lB,KAAK,CAAC,SAASkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAEO,EAAE0U,QAAQ07zB,cAAc,uBAAuBrx0B,GAAG,MAAM,CAACK,KAAK84B,EAAE+4yB,OAAOE,KAAK3zxB,QAAQ/9C,EAAE,GAAG,CAAC6lB,KAAK,CAAC,UAAUkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAEO,EAAE0U,QAAQ07zB,cAAc,2BAA2Brx0B,GAAG,MAAM,CAACK,KAAK84B,EAAE+4yB,OAAOwB,MAAMj1xB,QAAQ/9C,EAAE,GAAG,CAAC6lB,KAAK,CAAC,UAAUkxzB,SAAS,WAAW,MAAM,CAACp30B,KAAK84B,EAAE+4yB,OAAOwE,MAAM,GAAG,CAACnwzB,KAAK,CAAC,QAAQkxzB,SAAS,WAAW,MAAM,CAACp30B,KAAK84B,EAAE+4yB,OAAOyE,SAAS,GAAG,CAACpwzB,KAAK,CAAC,iBAAiBkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAEO,EAAE0U,QAAQ07zB,cAAc,mCAAmCrx0B,GAAG,MAAM,CAACK,KAAK84B,EAAE+4yB,OAAO0E,aAAan4xB,QAAQ/9C,EAAE,IAAIA,EAAEiV,QAAQ3U,EAAEhB,EAAE63B,QAAQn3B,EAAEiV,OAAO,EAAE,GAAG,SAAS3V,EAAEU,EAAEJ,GAAG,aAAaI,EAAEg8B,YAAW,EAAGh8B,EAAEiV,aAAQ,EAAO,IAAI7U,EAAEG,GAAGH,EAAER,EAAE,MAAMQ,EAAE47B,WAAW57B,EAAE,CAAC6U,QAAQ7U,GAAGq4B,EAAE74B,EAAE,IAAQU,EAAE,CAAC,CAACulB,KAAK,CAAC,cAAckxzB,SAAS,WAAW,MAAM,CAACvz0B,KAAK,MAAMiqQ,OAAO,SAAS,GAAG,CAAC5nP,KAAK,CAAC,WAAWkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAEO,EAAE0U,QAAQ07zB,cAAc,aAAarx0B,IAAI,OAAOM,EAAE,CAAC4D,KAAKi1B,EAAEg5yB,cAAc8D,OAAO9nkB,OAAO,UAAU,OAAOztQ,IAAIJ,EAAE+4R,MAAM34R,GAAGJ,CAAC,GAAG,CAACimB,KAAK,CAAC,2BAA2BkxzB,SAAS,WAAW,MAAM,CAACvz0B,KAAKi1B,EAAEg5yB,cAAc6D,OAAO7nkB,OAAO,QAAQ,GAAG,CAAC5nP,KAAK,CAAC,SAASkxzB,SAAS,WAAW,MAAM,CAACvz0B,KAAKi1B,EAAEg5yB,cAAc6D,OAAO7nkB,OAAO,QAAQkrB,MAAM,OAAO,GAAG,CAAC9yQ,KAAK,CAAC,+BAA+BkxzB,SAAS,WAAW,MAAM,CAACvz0B,KAAKi1B,EAAEg5yB,cAAc6D,OAAO7nkB,OAAO,QAAQkrB,MAAM,OAAO,GAAG,CAAC9yQ,KAAK,CAAC,eAAekxzB,SAAS,WAAW,MAAM,CAACvz0B,KAAKi1B,EAAEg5yB,cAAc6D,OAAO7nkB,OAAO,SAASkrB,MAAM,mBAAmB,GAAG,CAAC9yQ,KAAK,CAAC,SAASkxzB,SAAS,WAAW,MAAM,CAACvz0B,KAAKi1B,EAAEg5yB,cAAc6D,OAAO7nkB,OAAO,SAAS,GAAG,CAAC5nP,KAAK,CAAC,kBAAkBkxzB,SAAS,WAAW,MAAM,CAACvz0B,KAAKi1B,EAAEg5yB,cAAc6D,OAAO,GAAG,CAACzvzB,KAAK,SAASvmB,GAAG,IAAIU,EAAEV,EAAEumB,KAAK,gBAAgBjmB,EAAEN,EAAEumB,KAAK,uBAAuB,OAAO7lB,IAAIJ,CAAC,EAAEm30B,SAAS,SAASz30B,GAAG,IAAIU,EAAEO,EAAE0U,QAAQ07zB,cAAc,iBAAiBrx0B,GAAG,MAAM,CAACkE,KAAKi1B,EAAEg5yB,cAAc8D,OAAO9nkB,OAAO,QAAQkrB,MAAM34R,EAAE,GAAG,CAAC6lB,KAAK,CAAC,mBAAmB,iBAAiBkxzB,SAAS,WAAW,MAAM,CAACvz0B,KAAKi1B,EAAEg5yB,cAAc8D,OAAO9nkB,OAAO,QAAQ,GAAG,CAAC5nP,KAAK,CAAC,aAAakxzB,SAAS,WAAW,MAAM,CAACvz0B,KAAKi1B,EAAEg5yB,cAAc8D,OAAO,GAAG,CAAC1vzB,KAAK,SAASvmB,GAAG,MAAM,eAAeA,EAAE230B,gBAAe,EAAG,EAAEF,SAAS,WAAW,MAAM,CAACvz0B,KAAKi1B,EAAEg5yB,cAAc8D,OAAO9nkB,OAAO,aAAa,GAAG,CAAC5nP,KAAK,SAASvmB,GAAG,MAAM,SAASA,EAAE230B,gBAAe,EAAG,EAAEF,SAAS,WAAW,MAAM,CAACvz0B,KAAKi1B,EAAEg5yB,cAAc8D,OAAO,GAAG,CAAC1vzB,KAAK,SAASvmB,GAAG,MAAM,kBAAkBA,EAAE230B,gBAAgB,EAAEF,SAAS,WAAW,MAAM,CAACvz0B,KAAKi1B,EAAEg5yB,cAAc8D,OAAO9nkB,OAAO,YAAY,GAAG,CAAC5nP,KAAK,SAASvmB,GAAG,IAAIU,EAAEi0B,OAAOh0B,OAAOX,EAAEg40B,gBAAgBn20B,MAAM,KAAK,IAAI,MAAM,YAAY7B,EAAE+30B,WAAU,IAAKr30B,GAAG,CAAC,EAAE+20B,SAAS,WAAW,MAAM,CAACvz0B,KAAKi1B,EAAEg5yB,cAAc6D,OAAO,GAAG,CAACzvzB,KAAK,SAASvmB,GAAG,MAAM,YAAYA,EAAE+30B,WAAU,EAAG,EAAEN,SAAS,WAAW,MAAM,CAACvz0B,KAAKi1B,EAAEg5yB,cAAc8D,OAAO,GAAG,CAAC1vzB,KAAK,SAASvmB,GAAG,MAAM,UAAUA,EAAE+30B,WAAU,EAAG,EAAEN,SAAS,WAAW,MAAM,CAACvz0B,KAAKi1B,EAAEg5yB,cAAc+D,QAAQ/nkB,OAAO,QAAQ,GAAG,CAAC5nP,KAAK,SAASvmB,GAAG,MAAM,YAAYA,EAAE+30B,WAAU,EAAG,EAAEN,SAAS,WAAW,MAAM,CAACvz0B,KAAKi1B,EAAEg5yB,cAAc+D,QAAQ,GAAG,CAAC3vzB,KAAK,SAASvmB,GAAG,MAAM,UAAUA,EAAE+30B,WAAU,EAAG,EAAEN,SAAS,WAAW,MAAM,CAACvz0B,KAAKi1B,EAAEg5yB,cAAc+D,QAAQ,GAAG,CAAC3vzB,KAAK,SAASvmB,GAAG,MAAM,kBAAkBA,EAAE+30B,WAAU,EAAG,EAAEN,SAAS,WAAW,MAAM,CAACvz0B,KAAKi1B,EAAEg5yB,cAAcgE,GAAG,GAAG,CAAC5vzB,KAAK,SAASvmB,GAAG,MAAM,SAASA,EAAE+30B,WAAU,EAAG,EAAEN,SAAS,WAAW,MAAM,CAACvz0B,KAAKi1B,EAAEg5yB,cAAcgE,GAAG,IAAIz10B,EAAEiV,QAAQ3U,EAAEhB,EAAE63B,QAAQn3B,EAAEiV,OAAO,EAAE,GAAG,SAAS3V,EAAEU,EAAEJ,GAAG,aAAaI,EAAEg8B,YAAW,EAAGh8B,EAAEiV,aAAQ,EAAO,IAAI7U,EAAEG,GAAGH,EAAER,EAAE,MAAMQ,EAAE47B,WAAW57B,EAAE,CAAC6U,QAAQ7U,GAAGq4B,EAAE74B,EAAE,IAAQU,EAAE,CAAC,CAACulB,KAAK,SAASvmB,GAAG,MAAM,mBAAmBA,EAAE230B,gBAAe,EAAG,EAAEF,SAAS,SAASz30B,GAAG,GAAG,WAAWumB,KAAKvmB,GAAG,MAAM,CAACK,KAAK84B,EAAE84yB,WAAW6E,OAAO,IAAIp20B,EAAEO,EAAE0U,QAAQ07zB,cAAc,0BAA0Brx0B,GAAG,MAAM,CAACK,KAAK84B,EAAE84yB,WAAW4E,SAASp4xB,QAAQ/9C,EAAE,GAAG,CAAC6lB,KAAK,CAAC,YAAYkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK84B,EAAE84yB,WAAW8E,SAASz20B,EAAEW,EAAE0U,QAAQ07zB,cAAc,6BAA6Brx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,SAASvmB,GAAG,OAAOA,EAAEumB,KAAK,UAAU,EAAEkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK84B,EAAE84yB,WAAW+E,QAAQ120B,EAAEW,EAAE0U,QAAQ07zB,cAAc,4BAA4Brx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,SAASvmB,GAAG,IAAIU,EAAEV,EAAEumB,KAAK,UAAUjmB,EAAEN,EAAEumB,KAAK,eAAe,OAAO7lB,IAAIJ,CAAC,EAAEm30B,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK84B,EAAE84yB,WAAWgF,OAAO320B,EAAEW,EAAE0U,QAAQ07zB,cAAc,2BAA2Brx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,GAAG,CAAC6lB,KAAK,CAAC,4BAA4BkxzB,SAAS,WAAW,MAAM,CAACp30B,KAAK84B,EAAE84yB,WAAW6E,MAAM,GAAG,CAACvwzB,KAAK,CAAC,mBAAmBkxzB,SAAS,SAASz30B,GAAG,IAAIU,EAAE,CAACL,KAAK84B,EAAE84yB,WAAWiF,QAAQ520B,EAAEW,EAAE0U,QAAQ07zB,cAAc,4BAA4Brx0B,GAAG,OAAOM,IAAII,EAAE+9C,QAAQn+C,GAAGI,CAAC,IAAIA,EAAEiV,QAAQ3U,EAAEhB,EAAE63B,QAAQn3B,EAAEiV,OAAO,2BCAr4yB,IAAIrV,EASJ,SAASu40B,EAAKC,GACZ740B,KAAK640B,KAAOA,CACd,CAkBA,GA3BA5znB,EAAOrtL,QAAU,SAAcrR,GAI7B,OAHKlmB,IACHA,EAAI,IAAIu40B,EAAK,OAERv40B,EAAE2kI,SAASz+G,EACpB,EAKA0+L,EAAOrtL,QAAQghzB,KAAOA,EAEtBA,EAAK140B,UAAU8kI,SAAW,SAAkBz+G,GAC1C,OAAOvmB,KAAK840B,MAAMvyzB,EACpB,EAGAqyzB,EAAK140B,UAAU440B,MAAQ,SAAej40B,GACpC,GAAIb,KAAK640B,KAAKE,SACZ,OAAO/40B,KAAK640B,KAAKE,SAASl40B,GAG5B,IADA,IAAIu5G,EAAM,IAAIt8E,WAAWj9B,GAChBG,EAAI,EAAGA,EAAIo5G,EAAIx5G,OAAQI,IAC9Bo5G,EAAIp5G,GAAKhB,KAAK640B,KAAKG,UACrB,OAAO5+tB,CACT,EAEoB,kBAATyJ,KACLA,KAAK9jF,QAAU8jF,KAAK9jF,OAAOtC,gBAE7Bm7yB,EAAK140B,UAAU440B,MAAQ,SAAej40B,GACpC,IAAI4iB,EAAM,IAAIqa,WAAWj9B,GAEzB,OADAgjH,KAAK9jF,OAAOtC,gBAAgBha,GACrBA,CACT,EACSogG,KAAKtmF,UAAYsmF,KAAKtmF,SAASE,gBAExCm7yB,EAAK140B,UAAU440B,MAAQ,SAAej40B,GACpC,IAAI4iB,EAAM,IAAIqa,WAAWj9B,GAEzB,OADAgjH,KAAKtmF,SAASE,gBAAgBha,GACvBA,CACT,EAG2B,kBAAXnjB,SAEhBs40B,EAAK140B,UAAU440B,MAAQ,WACrB,MAAM,IAAI340B,MAAM,sBAClB,QAIF,IACE,IAAI4/B,EAAS/I,EAAQ,OACrB,GAAkC,oBAAvB+I,EAAOk5yB,YAChB,MAAM,IAAI940B,MAAM,iBAElBy40B,EAAK140B,UAAU440B,MAAQ,SAAej40B,GACpC,OAAOk/B,EAAOk5yB,YAAYp40B,EAC5B,CACF,CAAE,MAAOd,GACT,yBC1DF,IAAI2hC,EAAS1K,EAAAA,OAAAA,OAEb,SAASkizB,EAAejzxB,GACjBvkB,EAAO61E,SAAStxD,KAAMA,EAAMvkB,EAAO3d,KAAKkiC,IAK7C,IAHA,IAAI1/B,EAAO0/B,EAAIrlD,OAAS,EAAK,EACzB0oC,EAAM,IAAIhnB,MAAMiE,GAEXvlB,EAAI,EAAGA,EAAIulB,EAAKvlB,IACvBsoC,EAAItoC,GAAKilD,EAAIq3D,aAAiB,EAAJt8G,GAG5B,OAAOsoC,CACT,CAEA,SAAS6vyB,EAAU34zB,GACjB,KAAa,EAAOA,EAAE5f,OAAQ4f,IAC5BA,EADW,GACJ,CAEX,CAEA,SAAS44zB,EAAYhrxB,EAAGirxB,EAAaC,EAASC,EAAMC,GAalD,IAZA,IASI1vP,EAAIp4e,EAAIE,EAAI2xd,EATZk2Q,EAAWH,EAAQ,GACnBI,EAAWJ,EAAQ,GACnBK,EAAWL,EAAQ,GACnBM,EAAWN,EAAQ,GAEnBO,EAAKzrxB,EAAE,GAAKirxB,EAAY,GACxBS,EAAK1rxB,EAAE,GAAKirxB,EAAY,GACxBU,EAAK3rxB,EAAE,GAAKirxB,EAAY,GACxBW,EAAK5rxB,EAAE,GAAKirxB,EAAY,GAExBY,EAAQ,EAEHnxyB,EAAQ,EAAGA,EAAQ0wyB,EAAS1wyB,IACnCghjB,EAAK2vP,EAASI,IAAO,IAAMH,EAAUI,IAAO,GAAM,KAAQH,EAAUI,IAAO,EAAK,KAAQH,EAAc,IAALI,GAAaX,EAAYY,KAC1HvouB,EAAK+nuB,EAASK,IAAO,IAAMJ,EAAUK,IAAO,GAAM,KAAQJ,EAAUK,IAAO,EAAK,KAAQJ,EAAc,IAALC,GAAaR,EAAYY,KAC1HrouB,EAAK6nuB,EAASM,IAAO,IAAML,EAAUM,IAAO,GAAM,KAAQL,EAAUE,IAAO,EAAK,KAAQD,EAAc,IAALE,GAAaT,EAAYY,KAC1H12Q,EAAKk2Q,EAASO,IAAO,IAAMN,EAAUG,IAAO,GAAM,KAAQF,EAAUG,IAAO,EAAK,KAAQF,EAAc,IAALG,GAAaV,EAAYY,KAC1HJ,EAAK/vP,EACLgwP,EAAKpouB,EACLqouB,EAAKnouB,EACLoouB,EAAKz2Q,EAYP,OATAumB,GAAOyvP,EAAKM,IAAO,KAAO,GAAON,EAAMO,IAAO,GAAM,MAAS,GAAOP,EAAMQ,IAAO,EAAK,MAAS,EAAKR,EAAU,IAALS,IAAcX,EAAYY,KACnIvouB,GAAO6nuB,EAAKO,IAAO,KAAO,GAAOP,EAAMQ,IAAO,GAAM,MAAS,GAAOR,EAAMS,IAAO,EAAK,MAAS,EAAKT,EAAU,IAALM,IAAcR,EAAYY,KACnIrouB,GAAO2nuB,EAAKQ,IAAO,KAAO,GAAOR,EAAMS,IAAO,GAAM,MAAS,GAAOT,EAAMM,IAAO,EAAK,MAAS,EAAKN,EAAU,IAALO,IAAcT,EAAYY,KACnI12Q,GAAOg2Q,EAAKS,IAAO,KAAO,GAAOT,EAAMM,IAAO,GAAM,MAAS,GAAON,EAAMO,IAAO,EAAK,MAAS,EAAKP,EAAU,IAALQ,IAAcV,EAAYY,KAM5H,CALPnwP,KAAY,EACZp4e,KAAY,EACZE,KAAY,EACZ2xd,KAAY,EAGd,CAGA,IAAI22Q,EAAO,CAAC,EAAM,EAAM,EAAM,EAAM,EAAM,GAAM,GAAM,GAAM,IAAM,GAAM,IACpEpsxB,EAAK,WAGP,IADA,IAAIv1B,EAAI,IAAIjW,MAAM,KACTkZ,EAAI,EAAGA,EAAI,IAAKA,IAErBjD,EAAEiD,GADAA,EAAI,IACCA,GAAK,EAEJA,GAAK,EAAK,IAYtB,IARA,IAAI+9yB,EAAO,GACPY,EAAW,GACXb,EAAU,CAAC,GAAI,GAAI,GAAI,IACvBc,EAAc,CAAC,GAAI,GAAI,GAAI,IAG3Bjv0B,EAAI,EACJkv0B,EAAK,EACAr50B,EAAI,EAAGA,EAAI,MAAOA,EAAG,CAE5B,IAAI+W,EAAKsi0B,EAAMA,GAAM,EAAMA,GAAM,EAAMA,GAAM,EAAMA,GAAM,EACzDti0B,EAAMA,IAAO,EAAW,IAALA,EAAa,GAChCwh0B,EAAKpu0B,GAAK4M,EACVoi0B,EAASpi0B,GAAM5M,EAGf,IAAI0ljB,EAAKt4hB,EAAEptB,GACPmv0B,EAAK/hzB,EAAEs4hB,GACP0pR,EAAKhizB,EAAE+hzB,GAGP750B,EAAa,IAAR83B,EAAExgB,GAAqB,SAALA,EAC3Buh0B,EAAQ,GAAGnu0B,GAAM1K,GAAK,GAAOA,IAAM,EACnC640B,EAAQ,GAAGnu0B,GAAM1K,GAAK,GAAOA,IAAM,GACnC640B,EAAQ,GAAGnu0B,GAAM1K,GAAK,EAAMA,IAAM,GAClC640B,EAAQ,GAAGnu0B,GAAK1K,EAGhBA,EAAU,SAAL850B,EAAwB,MAALD,EAAsB,IAALzpR,EAAmB,SAAJ1ljB,EACxDiv0B,EAAY,GAAGri0B,GAAOtX,GAAK,GAAOA,IAAM,EACxC250B,EAAY,GAAGri0B,GAAOtX,GAAK,GAAOA,IAAM,GACxC250B,EAAY,GAAGri0B,GAAOtX,GAAK,EAAMA,IAAM,GACvC250B,EAAY,GAAGri0B,GAAMtX,EAEX,IAAN0K,EACFA,EAAIkv0B,EAAK,GAETlv0B,EAAI0ljB,EAAKt4hB,EAAEA,EAAEA,EAAEgizB,EAAK1pR,KACpBwpR,GAAM9hzB,EAAEA,EAAE8hzB,IAEd,CAEA,MAAO,CACLd,KAAMA,EACNY,SAAUA,EACVb,QAASA,EACTc,YAAaA,EAEjB,CA3DS,GA6DT,SAASI,EAAKv1zB,GACZjlB,KAAKuoB,KAAO2wzB,EAAcj0zB,GAC1BjlB,KAAKy60B,QACP,CAEAD,EAAIxmgB,UAAY,GAChBwmgB,EAAIE,QAAU,GACdF,EAAIt60B,UAAU8zU,UAAYwmgB,EAAIxmgB,UAC9BwmgB,EAAIt60B,UAAUw60B,QAAUF,EAAIE,QAC5BF,EAAIt60B,UAAUu60B,OAAS,WAOrB,IANA,IAAIE,EAAW360B,KAAKuoB,KAChBmyzB,EAAUC,EAAS/50B,OACnB440B,EAAUkB,EAAU,EACpBE,EAAyB,GAAfpB,EAAU,GAEpBH,EAAc,GACTp+yB,EAAI,EAAGA,EAAIy/yB,EAASz/yB,IAC3Bo+yB,EAAYp+yB,GAAK0/yB,EAAS1/yB,GAG5B,IAAKA,EAAIy/yB,EAASz/yB,EAAI2/yB,EAAQ3/yB,IAAK,CACjC,IAAIx6B,EAAI440B,EAAYp+yB,EAAI,GAEpBA,EAAIy/yB,IAAY,GAClBj60B,EAAKA,GAAK,EAAMA,IAAM,GACtBA,EACGqtD,EAAEyrxB,KAAK940B,IAAM,KAAO,GACpBqtD,EAAEyrxB,KAAM940B,IAAM,GAAM,MAAS,GAC7BqtD,EAAEyrxB,KAAM940B,IAAM,EAAK,MAAS,EAC5BqtD,EAAEyrxB,KAAS,IAAJ940B,GAEVA,GAAKy50B,EAAMj/yB,EAAIy/yB,EAAW,IAAM,IACvBA,EAAU,GAAKz/yB,EAAIy/yB,IAAY,IACxCj60B,EACGqtD,EAAEyrxB,KAAK940B,IAAM,KAAO,GACpBqtD,EAAEyrxB,KAAM940B,IAAM,GAAM,MAAS,GAC7BqtD,EAAEyrxB,KAAM940B,IAAM,EAAK,MAAS,EAC5BqtD,EAAEyrxB,KAAS,IAAJ940B,IAGZ440B,EAAYp+yB,GAAKo+yB,EAAYp+yB,EAAIy/yB,GAAWj60B,CAC9C,CAGA,IADA,IAAIo60B,EAAiB,GACZC,EAAK,EAAGA,EAAKF,EAAQE,IAAM,CAClC,IAAIC,EAAMH,EAASE,EACf31Q,EAAKk0Q,EAAY0B,GAAOD,EAAK,EAAI,EAAI,IAGvCD,EAAeC,GADbA,EAAK,GAAKC,GAAO,EACE51Q,EAGnBr3gB,EAAEssxB,YAAY,GAAGtsxB,EAAEyrxB,KAAKp0Q,IAAO,KAC/Br3gB,EAAEssxB,YAAY,GAAGtsxB,EAAEyrxB,KAAMp0Q,IAAO,GAAM,MACtCr3gB,EAAEssxB,YAAY,GAAGtsxB,EAAEyrxB,KAAMp0Q,IAAO,EAAK,MACrCr3gB,EAAEssxB,YAAY,GAAGtsxB,EAAEyrxB,KAAU,IAALp0Q,GAE9B,CAEAnlkB,KAAKg70B,SAAWxB,EAChBx50B,KAAKi70B,aAAe5B,EACpBr50B,KAAKk70B,gBAAkBL,CACzB,EAEAL,EAAIt60B,UAAUi70B,gBAAkB,SAAU/sxB,GAExC,OAAOgrxB,EADPhrxB,EAAI8qxB,EAAc9qxB,GACGpuD,KAAKi70B,aAAcntxB,EAAEwrxB,QAASxrxB,EAAEyrxB,KAAMv50B,KAAKg70B,SAClE,EAEAR,EAAIt60B,UAAUk70B,aAAe,SAAUhtxB,GACrC,IAAI9kB,EAAMtpC,KAAKm70B,gBAAgB/sxB,GAC3BnI,EAAMvkB,EAAOo1E,YAAY,IAK7B,OAJA7wD,EAAIu4D,cAAcl1E,EAAI,GAAI,GAC1B2c,EAAIu4D,cAAcl1E,EAAI,GAAI,GAC1B2c,EAAIu4D,cAAcl1E,EAAI,GAAI,GAC1B2c,EAAIu4D,cAAcl1E,EAAI,GAAI,IACnB2c,CACT,EAEAu0xB,EAAIt60B,UAAUm70B,aAAe,SAAUjtxB,GAIrC,IAAI26b,GAHJ36b,EAAI8qxB,EAAc9qxB,IAGP,GACXA,EAAE,GAAKA,EAAE,GACTA,EAAE,GAAK26b,EAEP,IAAIz/c,EAAM8vyB,EAAWhrxB,EAAGpuD,KAAKk70B,gBAAiBptxB,EAAEssxB,YAAatsxB,EAAEqsxB,SAAUn60B,KAAKg70B,UAC1E/0xB,EAAMvkB,EAAOo1E,YAAY,IAK7B,OAJA7wD,EAAIu4D,cAAcl1E,EAAI,GAAI,GAC1B2c,EAAIu4D,cAAcl1E,EAAI,GAAI,GAC1B2c,EAAIu4D,cAAcl1E,EAAI,GAAI,GAC1B2c,EAAIu4D,cAAcl1E,EAAI,GAAI,IACnB2c,CACT,EAEAu0xB,EAAIt60B,UAAUo70B,MAAQ,WACpBnC,EAASn50B,KAAKi70B,cACd9B,EAASn50B,KAAKk70B,iBACd/B,EAASn50B,KAAKuoB,KAChB,EAEA08L,EAAOrtL,QAAQ4izB,IAAMA,wBCnOrB,IAAIe,EAAMvkzB,EAAQ,OACd0K,EAAS1K,EAAAA,OAAAA,OACTwkzB,EAAYxkzB,EAAQ,OACpBi+sB,EAAWj+sB,EAAQ,OACnBykzB,EAAQzkzB,EAAQ,OAChB4ryB,EAAM5ryB,EAAQ,OACd0kzB,EAAS1kzB,EAAQ,MAqCrB,SAAS2kzB,EAAcxt0B,EAAM8W,EAAKsc,EAAIq6yB,GACpCJ,EAAU11zB,KAAK9lB,MAEf,IAAIkhB,EAAIwgB,EAAO05E,MAAM,EAAG,GAExBp7G,KAAK670B,QAAU,IAAIN,EAAIf,IAAIv1zB,GAC3B,IAAI62zB,EAAK970B,KAAK670B,QAAQT,aAAal6zB,GACnClhB,KAAK+70B,OAAS,IAAIN,EAAMK,GACxBv6yB,EA/BF,SAAiBsiF,EAAMtiF,EAAIu6yB,GACzB,GAAkB,KAAdv6yB,EAAG3gC,OAEL,OADAijH,EAAKm4tB,OAASt6yB,EAAOhf,OAAO,CAAC6e,EAAIG,EAAO3d,KAAK,CAAC,EAAG,EAAG,EAAG,MAChD2d,EAAOhf,OAAO,CAAC6e,EAAIG,EAAO3d,KAAK,CAAC,EAAG,EAAG,EAAG,MAElD,IAAIk4zB,EAAQ,IAAIR,EAAMK,GAClBv1zB,EAAMgb,EAAG3gC,OACTs70B,EAAQ31zB,EAAM,GAClB01zB,EAAM5kzB,OAAOkK,GACT26yB,IACFA,EAAQ,GAAKA,EACbD,EAAM5kzB,OAAOqK,EAAO05E,MAAM8guB,EAAO,KAEnCD,EAAM5kzB,OAAOqK,EAAO05E,MAAM,EAAG,IAC7B,IAAI+guB,EAAe,EAAN51zB,EACT0ic,EAAOvnb,EAAO05E,MAAM,GACxB6tW,EAAK9qW,YAAYg+tB,EAAQ,EAAG,GAC5BF,EAAM5kzB,OAAO4xb,GACbplW,EAAKm4tB,OAASC,EAAMx30B,MACpB,IAAI6kC,EAAM5H,EAAO3d,KAAK8/F,EAAKm4tB,QAE3B,OADAN,EAAOpyyB,GACAA,CACT,CASO8yyB,CAAOp80B,KAAMuhC,EAAIu6yB,GAEtB970B,KAAKq80B,MAAQ36yB,EAAO3d,KAAKwd,GACzBvhC,KAAKs80B,OAAS56yB,EAAOo1E,YAAY,GACjC92G,KAAKu80B,UAAY76yB,EAAOo1E,YAAY,GACpC92G,KAAKw80B,SAAWZ,EAChB570B,KAAKy80B,MAAQ,EACbz80B,KAAKqoB,KAAO,EACZroB,KAAK080B,MAAQvu0B,EAEbnO,KAAK280B,SAAW,KAChB380B,KAAK480B,SAAU,CACjB,CAEA3nG,EAAS0mG,EAAcH,GAEvBG,EAAaz70B,UAAU280B,QAAU,SAAUrzyB,GACzC,IAAKxpC,KAAK480B,SAAW580B,KAAKy80B,MAAO,CAC/B,IAAIK,EAAO,GAAM980B,KAAKy80B,MAAQ,GAC1BK,EAAO,KACTA,EAAOp7yB,EAAO05E,MAAM0huB,EAAM,GAC1B980B,KAAK+70B,OAAO1kzB,OAAOylzB,GAEvB,CAEA980B,KAAK480B,SAAU,EACf,IAAItzyB,EAAMtpC,KAAK080B,MAAMp7yB,QAAQthC,KAAMwpC,GAOnC,OANIxpC,KAAKw80B,SACPx80B,KAAK+70B,OAAO1kzB,OAAOmS,GAEnBxpC,KAAK+70B,OAAO1kzB,OAAOiS,GAErBtpC,KAAKqoB,MAAQmhB,EAAM5oC,OACZ0oC,CACT,EAEAqyyB,EAAaz70B,UAAU680B,OAAS,WAC9B,GAAI/80B,KAAKw80B,WAAax80B,KAAK280B,SAAU,MAAM,IAAIx80B,MAAM,oDAErD,IAAIwvH,EAAMizsB,EAAI5i0B,KAAK+70B,OAAOzuL,MAAmB,EAAbttpB,KAAKy80B,MAAuB,EAAZz80B,KAAKqoB,MAAWroB,KAAK670B,QAAQT,aAAap70B,KAAKg80B,SAC/F,GAAIh80B,KAAKw80B,UAnFX,SAAkBz70B,EAAGy3B,GACnB,IAAI8Q,EAAM,EACNvoC,EAAEH,SAAW43B,EAAE53B,QAAQ0oC,IAG3B,IADA,IAAI/iB,EAAMqiB,KAAKuZ,IAAIphD,EAAEH,OAAQ43B,EAAE53B,QACtBI,EAAI,EAAGA,EAAIulB,IAAOvlB,EACzBsoC,GAAQvoC,EAAEC,GAAKw3B,EAAEx3B,GAGnB,OAAOsoC,CACT,CAyEuB0zyB,CAAQrttB,EAAK3vH,KAAK280B,UAAW,MAAM,IAAIx80B,MAAM,oDAElEH,KAAK280B,SAAWhttB,EAChB3vH,KAAK670B,QAAQP,OACf,EAEAK,EAAaz70B,UAAU+80B,WAAa,WAClC,GAAIj90B,KAAKw80B,WAAa96yB,EAAO61E,SAASv3G,KAAK280B,UAAW,MAAM,IAAIx80B,MAAM,mDAEtE,OAAOH,KAAK280B,QACd,EAEAhB,EAAaz70B,UAAUg90B,WAAa,SAAqBvttB,GACvD,IAAK3vH,KAAKw80B,SAAU,MAAM,IAAIr80B,MAAM,mDAEpCH,KAAK280B,SAAWhttB,CAClB,EAEAgstB,EAAaz70B,UAAUi90B,OAAS,SAAiBl3xB,GAC/C,GAAIjmD,KAAK480B,QAAS,MAAM,IAAIz80B,MAAM,8CAElCH,KAAK+70B,OAAO1kzB,OAAO4uB,GACnBjmD,KAAKy80B,OAASx2xB,EAAIrlD,MACpB,EAEAqkN,EAAOrtL,QAAU+jzB,yBCpHjB,IAAIyB,EAAUpmzB,EAAQ,OAClBqmzB,EAAYrmzB,EAAQ,OACpBy6J,EAAQz6J,EAAQ,OAMpBY,EAAQ0lzB,aAAe1lzB,EAAQ2lzB,OAASH,EAAQE,aAChD1lzB,EAAQ4lzB,eAAiB5lzB,EAAQ6lzB,SAAWL,EAAQI,eACpD5lzB,EAAQ8lzB,eAAiB9lzB,EAAQ+lzB,SAAWN,EAAUK,eACtD9lzB,EAAQgmzB,iBAAmBhmzB,EAAQimzB,WAAaR,EAAUO,iBAC1DhmzB,EAAQkmzB,YAAclmzB,EAAQmmzB,WAR9B,WACE,OAAOh+zB,OAAOwE,KAAKktK,EACrB,yBCNA,IAAIuspB,EAAahnzB,EAAQ,MACrB0K,EAAS1K,EAAAA,OAAAA,OACTinzB,EAAQjnzB,EAAQ,OAChB2kzB,EAAe3kzB,EAAQ,OACvBwkzB,EAAYxkzB,EAAQ,OACpBukzB,EAAMvkzB,EAAQ,OACdknzB,EAAOlnzB,EAAQ,OAGnB,SAAS2mzB,EAAUxv0B,EAAM8W,EAAKsc,GAC5Bi6yB,EAAU11zB,KAAK9lB,MAEfA,KAAKs80B,OAAS,IAAI6B,EAClBn+0B,KAAKo+0B,WAAQ,EACbp+0B,KAAK670B,QAAU,IAAIN,EAAIf,IAAIv1zB,GAC3BjlB,KAAKq80B,MAAQ36yB,EAAO3d,KAAKwd,GACzBvhC,KAAK080B,MAAQvu0B,EACbnO,KAAKq+0B,cAAe,CACtB,CA8BA,SAASF,IACPn+0B,KAAK8jH,MAAQpiF,EAAOo1E,YAAY,EAClC,CA6CA,SAAS8muB,EAAkBU,EAAOv50B,EAAUw8B,GAC1C,IAAIud,EAASm/xB,EAAMK,EAAMz+zB,eACzB,IAAKi/B,EAAQ,MAAM,IAAI56B,UAAU,sBAGjC,GADkB,kBAAPqd,IAAiBA,EAAKG,EAAO3d,KAAKwd,IACzB,QAAhBud,EAAO3wC,MAAkBozB,EAAG3gC,SAAWk+C,EAAOvd,GAAI,MAAM,IAAIrd,UAAU,qBAAuBqd,EAAG3gC,QAGpG,GADwB,kBAAbmE,IAAuBA,EAAW28B,EAAO3d,KAAKhf,IACrDA,EAASnE,SAAWk+C,EAAO75B,IAAM,EAAG,MAAM,IAAIf,UAAU,sBAAwBnf,EAASnE,QAE7F,MAAoB,WAAhBk+C,EAAO76C,KACF,IAAI030B,EAAa78xB,EAAOmmK,OAAQlgN,EAAUw8B,GAAI,GAC5B,SAAhBud,EAAO76C,KACT,IAAI+50B,EAAWl/xB,EAAOmmK,OAAQlgN,EAAUw8B,GAAI,GAG9C,IAAIo8yB,EAAS7+xB,EAAOmmK,OAAQlgN,EAAUw8B,EAC/C,CAzGevK,EAAQ,MAavBi+sB,CAAS0oG,EAAUnC,GAEnBmC,EAASz90B,UAAU280B,QAAU,SAAUlz0B,GAErC,IAAI6/B,EACA0zxB,EAFJl9zB,KAAKs80B,OAAO/1yB,IAAI58B,GAIhB,IADA,IAAI2/B,EAAM,GACFE,EAAQxpC,KAAKs80B,OAAOx8zB,IAAI9f,KAAKq+0B,eACnCnhB,EAAQl9zB,KAAK080B,MAAMd,QAAQ570B,KAAMwpC,GACjCF,EAAI1nB,KAAKs7yB,GAEX,OAAOx7xB,EAAOhf,OAAO4mB,EACvB,EAEAq0yB,EAASz90B,UAAU680B,OAAS,WAC1B,IAAIvzyB,EAAQxpC,KAAKs80B,OAAOx2tB,QACxB,GAAI9lH,KAAKq+0B,aACP,OA0CJ,SAAgB/hnB,GACd,IAAIiinB,EAASjinB,EAAK,IAClB,GAAIiinB,EAAS,GAAKA,EAAS,GACzB,MAAM,IAAIp+0B,MAAM,0BAElB,IAAIa,GAAK,EACT,OAASA,EAAIu90B,GACX,GAAIjinB,EAAMt7N,GAAK,GAAKu90B,MAAcA,EAChC,MAAM,IAAIp+0B,MAAM,0BAGpB,GAAe,KAAXo+0B,EAAe,OAEnB,OAAOjinB,EAAKl2M,MAAM,EAAG,GAAKm4zB,EAC5B,CAxDWC,CAAMx+0B,KAAK080B,MAAMd,QAAQ570B,KAAMwpC,IACjC,GAAIA,EACT,MAAM,IAAIrpC,MAAM,oCAEpB,EAEAw90B,EAASz90B,UAAUu+0B,eAAiB,SAAUC,GAE5C,OADA1+0B,KAAKq+0B,eAAiBK,EACf1+0B,IACT,EAMAm+0B,EAASj+0B,UAAUqmC,IAAM,SAAU58B,GACjC3J,KAAK8jH,MAAQpiF,EAAOhf,OAAO,CAAC1iB,KAAK8jH,MAAOn6G,GAC1C,EAEAw00B,EAASj+0B,UAAU4f,IAAM,SAAU6+zB,GACjC,IAAIr1yB,EACJ,GAAIq1yB,GACF,GAAI3+0B,KAAK8jH,MAAMljH,OAAS,GAGtB,OAFA0oC,EAAMtpC,KAAK8jH,MAAM19F,MAAM,EAAG,IAC1BpmB,KAAK8jH,MAAQ9jH,KAAK8jH,MAAM19F,MAAM,IACvBkjB,OAGT,GAAItpC,KAAK8jH,MAAMljH,QAAU,GAGvB,OAFA0oC,EAAMtpC,KAAK8jH,MAAM19F,MAAM,EAAG,IAC1BpmB,KAAK8jH,MAAQ9jH,KAAK8jH,MAAM19F,MAAM,IACvBkjB,EAIX,OAAO,IACT,EAEA60yB,EAASj+0B,UAAU4lH,MAAQ,WACzB,GAAI9lH,KAAK8jH,MAAMljH,OAAQ,OAAOZ,KAAK8jH,KACrC,EA6CAlsF,EAAQ8lzB,eARR,SAAyBY,EAAOv50B,GAC9B,IAAI+5C,EAASm/xB,EAAMK,EAAMz+zB,eACzB,IAAKi/B,EAAQ,MAAM,IAAI56B,UAAU,sBAEjC,IAAIK,EAAO25zB,EAAKn50B,GAAU,EAAO+5C,EAAO75B,IAAK65B,EAAOvd,IACpD,OAAOq8yB,EAAiBU,EAAO/5zB,EAAKU,IAAKV,EAAKgd,GAChD,EAGA3J,EAAQgmzB,iBAAmBA,yBC3H3B,IAAIK,EAAQjnzB,EAAQ,OAChBgnzB,EAAahnzB,EAAQ,MACrB0K,EAAS1K,EAAAA,OAAAA,OACT2kzB,EAAe3kzB,EAAQ,OACvBwkzB,EAAYxkzB,EAAQ,OACpBukzB,EAAMvkzB,EAAQ,OACdknzB,EAAOlnzB,EAAQ,OAGnB,SAASumzB,EAAQpv0B,EAAM8W,EAAKsc,GAC1Bi6yB,EAAU11zB,KAAK9lB,MAEfA,KAAKs80B,OAAS,IAAI6B,EAClBn+0B,KAAK670B,QAAU,IAAIN,EAAIf,IAAIv1zB,GAC3BjlB,KAAKq80B,MAAQ36yB,EAAO3d,KAAKwd,GACzBvhC,KAAK080B,MAAQvu0B,EACbnO,KAAKq+0B,cAAe,CACtB,CAVernzB,EAAQ,MAYvBi+sB,CAASsoG,EAAQ/B,GAEjB+B,EAAOr90B,UAAU280B,QAAU,SAAUlz0B,GAEnC,IAAI6/B,EACA0zxB,EAFJl9zB,KAAKs80B,OAAO/1yB,IAAI58B,GAKhB,IAFA,IAAI2/B,EAAM,GAEFE,EAAQxpC,KAAKs80B,OAAOx8zB,OAC1Bo9yB,EAAQl9zB,KAAK080B,MAAMp7yB,QAAQthC,KAAMwpC,GACjCF,EAAI1nB,KAAKs7yB,GAGX,OAAOx7xB,EAAOhf,OAAO4mB,EACvB,EAEA,IAAIi6iB,EAAU7hjB,EAAO05E,MAAM,GAAI,IAqB/B,SAAS+iuB,IACPn+0B,KAAK8jH,MAAQpiF,EAAOo1E,YAAY,EAClC,CA2BA,SAAS0muB,EAAgBc,EAAOv50B,EAAUw8B,GACxC,IAAIud,EAASm/xB,EAAMK,EAAMz+zB,eACzB,IAAKi/B,EAAQ,MAAM,IAAI56B,UAAU,sBAGjC,GADwB,kBAAbnf,IAAuBA,EAAW28B,EAAO3d,KAAKhf,IACrDA,EAASnE,SAAWk+C,EAAO75B,IAAM,EAAG,MAAM,IAAIf,UAAU,sBAAwBnf,EAASnE,QAG7F,GADkB,kBAAP2gC,IAAiBA,EAAKG,EAAO3d,KAAKwd,IACzB,QAAhBud,EAAO3wC,MAAkBozB,EAAG3gC,SAAWk+C,EAAOvd,GAAI,MAAM,IAAIrd,UAAU,qBAAuBqd,EAAG3gC,QAEpG,MAAoB,WAAhBk+C,EAAO76C,KACF,IAAI030B,EAAa78xB,EAAOmmK,OAAQlgN,EAAUw8B,GACxB,SAAhBud,EAAO76C,KACT,IAAI+50B,EAAWl/xB,EAAOmmK,OAAQlgN,EAAUw8B,GAG1C,IAAIg8yB,EAAOz+xB,EAAOmmK,OAAQlgN,EAAUw8B,EAC7C,CAjEAg8yB,EAAOr90B,UAAU680B,OAAS,WACxB,IAAIvzyB,EAAQxpC,KAAKs80B,OAAOx2tB,QACxB,GAAI9lH,KAAKq+0B,aAGP,OAFA70yB,EAAQxpC,KAAK080B,MAAMp7yB,QAAQthC,KAAMwpC,GACjCxpC,KAAK670B,QAAQP,QACN9xyB,EAGT,IAAKA,EAAMsyE,OAAOyne,GAEhB,MADAvjlB,KAAK670B,QAAQP,QACP,IAAIn70B,MAAM,oCAEpB,EAEAo90B,EAAOr90B,UAAUu+0B,eAAiB,SAAUC,GAE1C,OADA1+0B,KAAKq+0B,eAAiBK,EACf1+0B,IACT,EAMAm+0B,EAASj+0B,UAAUqmC,IAAM,SAAU58B,GACjC3J,KAAK8jH,MAAQpiF,EAAOhf,OAAO,CAAC1iB,KAAK8jH,MAAOn6G,GAC1C,EAEAw00B,EAASj+0B,UAAU4f,IAAM,WACvB,GAAI9f,KAAK8jH,MAAMljH,OAAS,GAAI,CAC1B,IAAI0oC,EAAMtpC,KAAK8jH,MAAM19F,MAAM,EAAG,IAE9B,OADApmB,KAAK8jH,MAAQ9jH,KAAK8jH,MAAM19F,MAAM,IACvBkjB,CACT,CACA,OAAO,IACT,EAEA60yB,EAASj+0B,UAAU4lH,MAAQ,WAKzB,IAJA,IAAIv/F,EAAM,GAAKvmB,KAAK8jH,MAAMljH,OACtBg+0B,EAAUl9yB,EAAOo1E,YAAYvwF,GAE7BvlB,GAAK,IACAA,EAAIulB,GACXq4zB,EAAQxguB,WAAW73F,EAAKvlB,GAG1B,OAAO0gC,EAAOhf,OAAO,CAAC1iB,KAAK8jH,MAAO86tB,GACpC,EA6BAhnzB,EAAQ4lzB,eAAiBA,EACzB5lzB,EAAQ0lzB,aATR,SAAuBgB,EAAOv50B,GAC5B,IAAI+5C,EAASm/xB,EAAMK,EAAMz+zB,eACzB,IAAKi/B,EAAQ,MAAM,IAAI56B,UAAU,sBAEjC,IAAIK,EAAO25zB,EAAKn50B,GAAU,EAAO+5C,EAAO75B,IAAK65B,EAAOvd,IACpD,OAAOi8yB,EAAec,EAAO/5zB,EAAKU,IAAKV,EAAKgd,GAC9C,yBC9GA,IAAIG,EAAS1K,EAAAA,OAAAA,OACT6nzB,EAASn9yB,EAAO05E,MAAM,GAAI,GAW9B,SAASirb,EAAW/8f,GAClB,IAAI2c,EAAMvkB,EAAOo1E,YAAY,IAK7B,OAJA7wD,EAAIu4D,cAAcl1E,EAAI,KAAO,EAAG,GAChC2c,EAAIu4D,cAAcl1E,EAAI,KAAO,EAAG,GAChC2c,EAAIu4D,cAAcl1E,EAAI,KAAO,EAAG,GAChC2c,EAAIu4D,cAAcl1E,EAAI,KAAO,EAAG,IACzB2c,CACT,CAEA,SAASw1xB,EAAOx2zB,GACdjlB,KAAKkhB,EAAI+D,EACTjlB,KAAKyE,MAAQi9B,EAAO05E,MAAM,GAAI,GAC9Bp7G,KAAK8jH,MAAQpiF,EAAOo1E,YAAY,EAClC,CAIA2kuB,EAAMv70B,UAAU+70B,MAAQ,SAAU/kb,GAEhC,IADA,IAAIl2Z,GAAK,IACAA,EAAIk2Z,EAAMt2Z,QACjBZ,KAAKyE,MAAMzD,IAAMk2Z,EAAMl2Z,GAEzBhB,KAAK8+0B,WACP,EAEArD,EAAMv70B,UAAU4+0B,UAAY,WAK1B,IAJA,IAnCgB74xB,EAqCZzqB,EAAOujzB,EAFPC,EAlCG,EADS/4xB,EAmCCjmD,KAAKkhB,GAjChBo8F,aAAa,GACjBr3D,EAAIq3D,aAAa,GACjBr3D,EAAIq3D,aAAa,GACjBr3D,EAAIq3D,aAAa,KA+Bf2huB,EAAK,CAAC,EAAG,EAAG,EAAG,GAEfj+0B,GAAK,IACAA,EAAI,KAAK,CAchB,IAbwD,KAAlDhB,KAAKyE,SAASzD,EAAI,IAAO,GAAM,EAAKA,EAAI,KAG5Ci+0B,EAAG,IAAMD,EAAG,GACZC,EAAG,IAAMD,EAAG,GACZC,EAAG,IAAMD,EAAG,GACZC,EAAG,IAAMD,EAAG,IAIdD,EAAwB,KAAP,EAARC,EAAG,IAGPxjzB,EAAI,EAAGA,EAAI,EAAGA,IACjBwjzB,EAAGxjzB,GAAMwjzB,EAAGxjzB,KAAO,GAAmB,EAAZwjzB,EAAGxjzB,EAAI,KAAW,GAE9CwjzB,EAAG,GAAKA,EAAG,KAAO,EAGdD,IACFC,EAAG,GAAKA,EAAG,GAAM,KAAQ,GAE7B,CACAh/0B,KAAKyE,MAAQ4hiB,EAAU44S,EACzB,EAEAxD,EAAMv70B,UAAUm3B,OAAS,SAAU4uB,GAEjC,IAAIzc,EACJ,IAFAxpC,KAAK8jH,MAAQpiF,EAAOhf,OAAO,CAAC1iB,KAAK8jH,MAAO79D,IAEjCjmD,KAAK8jH,MAAMljH,QAAU,IAC1B4oC,EAAQxpC,KAAK8jH,MAAM19F,MAAM,EAAG,IAC5BpmB,KAAK8jH,MAAQ9jH,KAAK8jH,MAAM19F,MAAM,IAC9BpmB,KAAKi80B,MAAMzyyB,EAEf,EAEAiyyB,EAAMv70B,UAAUotpB,MAAQ,SAAU4xL,EAAKC,GAMrC,OALIn/0B,KAAK8jH,MAAMljH,QACbZ,KAAKi80B,MAAMv6yB,EAAOhf,OAAO,CAAC1iB,KAAK8jH,MAAO+6tB,GAAS,KAGjD7+0B,KAAKi80B,MAAM51S,EAAU,CAAC,EAAG64S,EAAK,EAAGC,KAC1Bn/0B,KAAKyE,KACd,EAEAwgN,EAAOrtL,QAAU6jzB,oBC1EjBx2nB,EAAOrtL,QAdP,SAAiB2J,GAGf,IAFA,IACI5wB,EADA4V,EAAMgb,EAAG3gC,OAEN2lB,KAAO,CAEZ,GAAa,OADb5V,EAAO4wB,EAAG47E,UAAU52F,IAGb,CACL5V,IACA4wB,EAAG68E,WAAWztG,EAAM4V,GACpB,KACF,CALEgb,EAAG68E,WAAW,EAAG73F,EAMrB,CACF,yBCbA,IAAIq8yB,EAAM5ryB,EAAQ,OAElBY,EAAQ0J,QAAU,SAAUuiF,EAAMqzS,GAChC,IAAIvtZ,EAAOi5zB,EAAI1ra,EAAOrzS,EAAKw4tB,OAG3B,OADAx4tB,EAAKw4tB,MAAQx4tB,EAAKg4tB,QAAQT,aAAazx0B,GAChCk6G,EAAKw4tB,KACd,EAEAzkzB,EAAQgkzB,QAAU,SAAU/3tB,EAAMqzS,GAChC,IAAIqvL,EAAM1ie,EAAKw4tB,MAEfx4tB,EAAKw4tB,MAAQnlb,EACb,IAAI5tX,EAAMu6E,EAAKg4tB,QAAQR,aAAankb,GAEpC,OAAO0ra,EAAIt5xB,EAAKi9iB,EAClB,yBChBA,IAAI7kjB,EAAS1K,EAAAA,OAAAA,OACT4ryB,EAAM5ryB,EAAQ,OAElB,SAASoozB,EAAcv7tB,EAAMl6G,EAAMiy0B,GACjC,IAAIr1zB,EAAM5c,EAAK/I,OACX0oC,EAAMs5xB,EAAIj5zB,EAAMk6G,EAAKy4tB,QAGzB,OAFAz4tB,EAAKy4tB,OAASz4tB,EAAKy4tB,OAAOl2zB,MAAMG,GAChCs9F,EAAKw4tB,MAAQ36yB,EAAOhf,OAAO,CAACmhG,EAAKw4tB,MAAOT,EAAUjy0B,EAAO2/B,IAClDA,CACT,CAEA1R,EAAQ0J,QAAU,SAAUuiF,EAAMl6G,EAAMiy0B,GAItC,IAHA,IACIr1zB,EADA+iB,EAAM5H,EAAOo1E,YAAY,GAGtBntG,EAAK/I,QAAQ,CAMlB,GAL2B,IAAvBijH,EAAKy4tB,OAAO170B,SACdijH,EAAKy4tB,OAASz4tB,EAAKg4tB,QAAQT,aAAav3tB,EAAKw4tB,OAC7Cx4tB,EAAKw4tB,MAAQ36yB,EAAOo1E,YAAY,MAG9B+M,EAAKy4tB,OAAO170B,QAAU+I,EAAK/I,QAIxB,CACL0oC,EAAM5H,EAAOhf,OAAO,CAAC4mB,EAAK81yB,EAAav7tB,EAAMl6G,EAAMiy0B,KACnD,KACF,CANEr1zB,EAAMs9F,EAAKy4tB,OAAO170B,OAClB0oC,EAAM5H,EAAOhf,OAAO,CAAC4mB,EAAK81yB,EAAav7tB,EAAMl6G,EAAKyc,MAAM,EAAGG,GAAMq1zB,KACjEjy0B,EAAOA,EAAKyc,MAAMG,EAKtB,CAEA,OAAO+iB,CACT,yBChCA,IAAI5H,EAAS1K,EAAAA,OAAAA,OAEb,SAASqozB,EAAax7tB,EAAMy7tB,EAAW1D,GAMrC,IALA,IAII/pB,EAAK7qzB,EAHLhG,GAAK,EAELsoC,EAAM,IAEDtoC,EAHC,GAKR6wzB,EAAOytB,EAAa,GAAM,EAAIt+0B,EAAO,IAAO,EAE5CsoC,IAAiB,KADjBtiC,EAFM68G,EAAKg4tB,QAAQT,aAAav3tB,EAAKw4tB,OAEzB,GAAKxqB,KACU7wzB,EAAI,EAC/B6iH,EAAKw4tB,MAAQkD,EAAQ17tB,EAAKw4tB,MAAOT,EAAU/pB,EAAM7qzB,GAEnD,OAAOsiC,CACT,CAEA,SAASi2yB,EAAS5/yB,EAAQ34B,GACxB,IAAIuf,EAAMoZ,EAAO/+B,OACbI,GAAK,EACLsoC,EAAM5H,EAAOo1E,YAAYn3E,EAAO/+B,QAGpC,IAFA++B,EAAS+B,EAAOhf,OAAO,CAACid,EAAQ+B,EAAO3d,KAAK,CAAC/c,QAEpChG,EAAIulB,GACX+iB,EAAItoC,GAAK2+B,EAAO3+B,IAAM,EAAI2+B,EAAO3+B,EAAI,IAAO,EAG9C,OAAOsoC,CACT,CAEA1R,EAAQ0J,QAAU,SAAUuiF,EAAMr6E,EAAOoyyB,GAKvC,IAJA,IAAIr1zB,EAAMijB,EAAM5oC,OACZ0oC,EAAM5H,EAAOo1E,YAAYvwF,GACzBvlB,GAAK,IAEAA,EAAIulB,GACX+iB,EAAItoC,GAAKq+0B,EAAYx7tB,EAAMr6E,EAAMxoC,GAAI460B,GAGvC,OAAOtyyB,CACT,yBCzCA,IAAI5H,EAAS1K,EAAAA,OAAAA,OAEb,SAASqozB,EAAax7tB,EAAMy7tB,EAAW1D,GACrC,IACItyyB,EADMu6E,EAAKg4tB,QAAQT,aAAav3tB,EAAKw4tB,OAC3B,GAAKiD,EAOnB,OALAz7tB,EAAKw4tB,MAAQ36yB,EAAOhf,OAAO,CACzBmhG,EAAKw4tB,MAAMj2zB,MAAM,GACjBsb,EAAO3d,KAAK,CAAC63zB,EAAU0D,EAAYh2yB,MAG9BA,CACT,CAEA1R,EAAQ0J,QAAU,SAAUuiF,EAAMr6E,EAAOoyyB,GAKvC,IAJA,IAAIr1zB,EAAMijB,EAAM5oC,OACZ0oC,EAAM5H,EAAOo1E,YAAYvwF,GACzBvlB,GAAK,IAEAA,EAAIulB,GACX+iB,EAAItoC,GAAKq+0B,EAAYx7tB,EAAMr6E,EAAMxoC,GAAI460B,GAGvC,OAAOtyyB,CACT,yBCxBA,IAAIs5xB,EAAM5ryB,EAAQ,OACd0K,EAAS1K,EAAAA,OAAAA,OACT0kzB,EAAS1kzB,EAAQ,MAErB,SAASwozB,EAAU37tB,GACjB,IAAIv6E,EAAMu6E,EAAKg4tB,QAAQV,gBAAgBt3tB,EAAKw4tB,OAE5C,OADAX,EAAO73tB,EAAKw4tB,OACL/yyB,CACT,CAGA1R,EAAQ0J,QAAU,SAAUuiF,EAAMr6E,GAChC,IAAIi2yB,EAAW72yB,KAAK8wI,KAAKlwI,EAAM5oC,OAFjB,IAGViP,EAAQg0G,EAAKy4tB,OAAO170B,OACxBijH,EAAKy4tB,OAAS56yB,EAAOhf,OAAO,CAC1BmhG,EAAKy4tB,OACL56yB,EAAOo1E,YANK,GAMO2ouB,KAErB,IAAK,IAAIz+0B,EAAI,EAAGA,EAAIy+0B,EAAUz+0B,IAAK,CACjC,IAAIsoC,EAAMk2yB,EAAS37tB,GACf99D,EAASl2C,EAVD,GAUS7O,EACrB6iH,EAAKy4tB,OAAO99tB,cAAcl1E,EAAI,GAAIyc,EAAS,GAC3C89D,EAAKy4tB,OAAO99tB,cAAcl1E,EAAI,GAAIyc,EAAS,GAC3C89D,EAAKy4tB,OAAO99tB,cAAcl1E,EAAI,GAAIyc,EAAS,GAC3C89D,EAAKy4tB,OAAO99tB,cAAcl1E,EAAI,GAAIyc,EAAS,GAC7C,CACA,IAAIwgiB,EAAM1ie,EAAKy4tB,OAAOl2zB,MAAM,EAAGojB,EAAM5oC,QAErC,OADAijH,EAAKy4tB,OAASz4tB,EAAKy4tB,OAAOl2zB,MAAMojB,EAAM5oC,QAC/Bgi0B,EAAIp5xB,EAAO+8iB,EACpB,uBC7BA3ujB,EAAQ0J,QAAU,SAAUuiF,EAAMqzS,GAChC,OAAOrzS,EAAKg4tB,QAAQT,aAAalkb,EACnC,EAEAt/X,EAAQgkzB,QAAU,SAAU/3tB,EAAMqzS,GAChC,OAAOrzS,EAAKg4tB,QAAQR,aAAankb,EACnC,yBCNA,IAAIwob,EAAc,CAChBC,IAAK3ozB,EAAQ,OACb4ozB,IAAK5ozB,EAAQ,OACb6ozB,IAAK7ozB,EAAQ,OACb8ozB,KAAM9ozB,EAAQ,OACd+ozB,KAAM/ozB,EAAQ,OACdgpzB,IAAKhpzB,EAAQ,OACbipzB,IAAKjpzB,EAAQ,OACbkpzB,IAAKlpzB,EAAQ,QAGXy6J,EAAQz6J,EAAQ,OAEpB,IAAK,IAAI/R,KAAOwsK,EACdA,EAAMxsK,GAAKggM,OAASy6nB,EAAYjupB,EAAMxsK,GAAK9W,MAG7C82M,EAAOrtL,QAAU65J,+CCjBbmxoB,EAAM5ryB,EAAQ,OAElB,SAASwozB,EAAU37tB,GAEjB,OADAA,EAAKw4tB,MAAQx4tB,EAAKg4tB,QAAQT,aAAav3tB,EAAKw4tB,OACrCx4tB,EAAKw4tB,KACd,CAEAzkzB,EAAQ0J,QAAU,SAAUuiF,EAAMr6E,GAChC,KAAOq6E,EAAKy4tB,OAAO170B,OAAS4oC,EAAM5oC,QAChCijH,EAAKy4tB,OAAS56yB,EAAOhf,OAAO,CAACmhG,EAAKy4tB,OAAQkD,EAAS37tB,KAGrD,IAAI0ie,EAAM1ie,EAAKy4tB,OAAOl2zB,MAAM,EAAGojB,EAAM5oC,QAErC,OADAijH,EAAKy4tB,OAASz4tB,EAAKy4tB,OAAOl2zB,MAAMojB,EAAM5oC,QAC/Bgi0B,EAAIp5xB,EAAO+8iB,EACpB,yBCfA,IAAIg1P,EAAMvkzB,EAAQ,OACd0K,EAAS1K,EAAAA,OAAAA,OACTwkzB,EAAYxkzB,EAAQ,OAGxB,SAAS2kzB,EAAcxt0B,EAAM8W,EAAKsc,EAAIq6yB,GACpCJ,EAAU11zB,KAAK9lB,MAEfA,KAAK670B,QAAU,IAAIN,EAAIf,IAAIv1zB,GAC3BjlB,KAAKq80B,MAAQ36yB,EAAO3d,KAAKwd,GACzBvhC,KAAKs80B,OAAS56yB,EAAOo1E,YAAY,GACjC92G,KAAKu80B,UAAY76yB,EAAOo1E,YAAY,GACpC92G,KAAKw80B,SAAWZ,EAChB570B,KAAK080B,MAAQvu0B,CACf,CAXe6oB,EAAQ,MAavBi+sB,CAAS0mG,EAAcH,GAEvBG,EAAaz70B,UAAU280B,QAAU,SAAUrzyB,GACzC,OAAOxpC,KAAK080B,MAAMp7yB,QAAQthC,KAAMwpC,EAAOxpC,KAAKw80B,SAC9C,EAEAb,EAAaz70B,UAAU680B,OAAS,WAC9B/80B,KAAK670B,QAAQP,OACf,EAEAr2nB,EAAOrtL,QAAU+jzB,yBC1BjB,IAAIwE,EAAMnpzB,EAAQ,OACdukzB,EAAMvkzB,EAAQ,OACdopzB,EAAWppzB,EAAQ,OACnBqpzB,EAAWrpzB,EAAQ,OACnBknzB,EAAOlnzB,EAAQ,OAsCnB,SAASwmzB,EAAgBc,EAAOr5zB,EAAKsc,GAEnC,GADA+8yB,EAAQA,EAAMz+zB,cACVug0B,EAAS9B,GAAQ,OAAO/C,EAAIiC,eAAec,EAAOr5zB,EAAKsc,GAC3D,GAAI8+yB,EAAS/B,GAAQ,OAAO,IAAI6B,EAAI,CAAEl7zB,IAAKA,EAAKsc,GAAIA,EAAIpzB,KAAMmw0B,IAE9D,MAAM,IAAIp6zB,UAAU,qBACtB,CAEA,SAAS05zB,EAAkBU,EAAOr5zB,EAAKsc,GAErC,GADA+8yB,EAAQA,EAAMz+zB,cACVug0B,EAAS9B,GAAQ,OAAO/C,EAAIqC,iBAAiBU,EAAOr5zB,EAAKsc,GAC7D,GAAI8+yB,EAAS/B,GAAQ,OAAO,IAAI6B,EAAI,CAAEl7zB,IAAKA,EAAKsc,GAAIA,EAAIpzB,KAAMmw0B,EAAO1C,SAAS,IAE9E,MAAM,IAAI13zB,UAAU,qBACtB,CAMA0T,EAAQ0lzB,aAAe1lzB,EAAQ2lzB,OAxD/B,SAAuBe,EAAOv50B,GAG5B,IAAIu70B,EAAQC,EACZ,GAHAjC,EAAQA,EAAMz+zB,cAGVug0B,EAAS9B,GACXgC,EAASF,EAAS9B,GAAOr5zB,IACzBs7zB,EAAQH,EAAS9B,GAAO/8yB,OACnB,KAAI8+yB,EAAS/B,GAIlB,MAAM,IAAIp6zB,UAAU,sBAHpBo8zB,EAA+B,EAAtBD,EAAS/B,GAAOr5zB,IACzBs7zB,EAAQF,EAAS/B,GAAO/8yB,EAG1B,CAEA,IAAIhd,EAAO25zB,EAAKn50B,GAAU,EAAOu70B,EAAQC,GACzC,OAAO/C,EAAec,EAAO/5zB,EAAKU,IAAKV,EAAKgd,GAC9C,EAyCA3J,EAAQ4lzB,eAAiB5lzB,EAAQ6lzB,SAAWD,EAC5C5lzB,EAAQ8lzB,eAAiB9lzB,EAAQ+lzB,SAxCjC,SAAyBW,EAAOv50B,GAG9B,IAAIu70B,EAAQC,EACZ,GAHAjC,EAAQA,EAAMz+zB,cAGVug0B,EAAS9B,GACXgC,EAASF,EAAS9B,GAAOr5zB,IACzBs7zB,EAAQH,EAAS9B,GAAO/8yB,OACnB,KAAI8+yB,EAAS/B,GAIlB,MAAM,IAAIp6zB,UAAU,sBAHpBo8zB,EAA+B,EAAtBD,EAAS/B,GAAOr5zB,IACzBs7zB,EAAQF,EAAS/B,GAAO/8yB,EAG1B,CAEA,IAAIhd,EAAO25zB,EAAKn50B,GAAU,EAAOu70B,EAAQC,GACzC,OAAO3C,EAAiBU,EAAO/5zB,EAAKU,IAAKV,EAAKgd,GAChD,EAyBA3J,EAAQgmzB,iBAAmBhmzB,EAAQimzB,WAAaD,EAChDhmzB,EAAQkmzB,YAAclmzB,EAAQmmzB,WAR9B,WACE,OAAOh+zB,OAAOwE,KAAK87zB,GAAU39zB,OAAO64zB,EAAIwC,aAC1C,yBC5DA,IAAIyC,EAAaxpzB,EAAQ,OACrBypzB,EAAMzpzB,EAAQ,MACdi+sB,EAAWj+sB,EAAQ,OACnB0K,EAAS1K,EAAAA,OAAAA,OAETy6J,EAAQ,CACV,eAAgBgvpB,EAAIb,IAAIc,YAAYD,EAAIE,KACxC,WAAYF,EAAIE,IAChB,cAAeF,EAAIb,IAAIc,YAAYD,EAAIE,KACvC,UAAWF,EAAIE,IACf,UAAWF,EAAIb,IAAIc,YAAYD,EAAIN,KACnC,UAAWM,EAAIN,KAMjB,SAASA,EAAK7wzB,GACZkxzB,EAAW16zB,KAAK9lB,MAChB,IAEIiE,EAFA280B,EAAWtxzB,EAAKnhB,KAAK0R,cACrB1R,EAAOsjL,EAAMmvpB,GAGf380B,EADEqrB,EAAKsszB,QACA,UAEA,UAET,IAAI32zB,EAAMqK,EAAKrK,IACVyc,EAAO61E,SAAStyF,KACnBA,EAAMyc,EAAO3d,KAAKkB,IAEH,YAAb27zB,GAAuC,gBAAbA,IAC5B37zB,EAAMyc,EAAOhf,OAAO,CAACuC,EAAKA,EAAImB,MAAM,EAAG,MAEzC,IAAImb,EAAKjS,EAAKiS,GACTG,EAAO61E,SAASh2E,KACnBA,EAAKG,EAAO3d,KAAKwd,IAEnBvhC,KAAK6g1B,KAAO1y0B,EAAK4qB,OAAO,CACtB9T,IAAKA,EACLsc,GAAIA,EACJt9B,KAAMA,GAEV,CA9BAwtL,EAAMgvpB,IAAMhvpB,EAAM,WAClBA,EAAMqvpB,KAAOrvpB,EAAM,gBACnBwzB,EAAOrtL,QAAUuozB,EACjBlrG,EAASkrG,EAAKK,GA4BdL,EAAIjg1B,UAAU280B,QAAU,SAAUlz0B,GAChC,OAAO+3B,EAAO3d,KAAK/jB,KAAK6g1B,KAAKxpzB,OAAO1tB,GACtC,EACAw20B,EAAIjg1B,UAAU680B,OAAS,WACrB,OAAOr7yB,EAAO3d,KAAK/jB,KAAK6g1B,KAAKvzL,QAC/B,uBCjDA11nB,EAAQ,WAAa,CACnB3S,IAAK,EACLsc,GAAI,GAEN3J,EAAQ,WAAaA,EAAQ6ozB,IAAM,CACjCx7zB,IAAK,EACLsc,GAAI,GAEN3J,EAAQ,gBAAkBA,EAAQkpzB,KAAO,CACvC77zB,IAAK,GACLsc,GAAI,GAEN3J,EAAQ,YAAc,CACpB3S,IAAK,GACLsc,GAAI,GAEN3J,EAAQ,eAAiB,CACvB3S,IAAK,GACLsc,GAAI,GAEN3J,EAAQ,WAAa,CACnB3S,IAAK,GACLsc,GAAI,gDCtBF29xB,EAAKloyB,EAAQ,OACbiizB,EAAcjizB,EAAQ,OAQ1B,SAAS+pzB,EAAMC,GACb,IACI3g1B,EADAkmB,EAAMy6zB,EAAKC,QAAQphzB,aAEvB,GACEx/B,EAAI,IAAI6+zB,EAAG+Z,EAAY1yzB,UAChBlmB,EAAE2ia,IAAIg+a,EAAKC,UAAY,IAAM5g1B,EAAE8r0B,KAAK6U,EAAKE,UAAY7g1B,EAAE8r0B,KAAK6U,EAAKG,SAC1E,OAAO9g1B,CACT,CAEA,SAAS+g1B,EAAK7zyB,EAAKyzyB,GACjB,IAAIK,EAhBN,SAAgBL,GACd,IAAI3g1B,EAAI0g1B,EAAKC,GAEb,MAAO,CAAEM,QADKjh1B,EAAE0t0B,MAAM7O,EAAGgS,KAAK8P,EAAKC,UAAU7R,OAAO,IAAIlQ,EAAG8hB,EAAKO,iBAAiBrT,UACtDsT,UAAWnh1B,EAAE4s0B,KAAK+T,EAAKC,SACpD,CAYeQ,CAAMT,GACfz6zB,EAAMy6zB,EAAKC,QAAQphzB,aACnB6hzB,EAAU,IAAIxiB,EAAG3xxB,GAAK0vE,IAAIokuB,EAAOC,SAASnV,KAAK6U,EAAKC,SACpDr5S,EAAK85S,EAAQ3T,MAAM7O,EAAGgS,KAAK8P,EAAKE,SAChCS,EAAKD,EAAQ3T,MAAM7O,EAAGgS,KAAK8P,EAAKG,SAChCS,EAAOZ,EAAK96pB,YACZvtJ,EAAIqozB,EAAKE,OACTrlzB,EAAImlzB,EAAKG,OACTp4V,EAAK6+C,EAAGwnS,OAAO4R,EAAKa,WAAW3T,UAC/BllV,EAAK24V,EAAGvS,OAAO4R,EAAKc,WAAW5T,UAC/BhtzB,EAAI6ne,EAAGo6U,KAAKn6U,GAAIi+U,KAAK2a,GAAMzV,KAAKxzyB,GAAGsuyB,KAAKpryB,GAC5C,OAAOmtd,EAAGk6U,KAAKhizB,GAAG+lzB,KAAKoa,EAAOG,WAAWrV,KAAK6U,EAAKC,SAASjgB,YAAYt/xB,EAAQ,KAAMnb,EACxF,CACA66zB,EAAIL,KAAOA,EAEX97nB,EAAOrtL,QAAUwpzB,0BClCjB,SAAWn8nB,EAAQrtL,GACjB,aAGA,SAASsusB,EAAQr2nB,EAAKtiE,GACpB,IAAKsiE,EAAK,MAAM,IAAI1vG,MAAMotC,GAAO,mBACnC,CAIA,SAAS0nsB,EAAUnlsB,EAAMivxB,GACvBjvxB,EAAKkvxB,OAASD,EACd,IAAIE,EAAW,WAAa,EAC5BA,EAAS/+zB,UAAY6+zB,EAAU7+zB,UAC/B4vC,EAAK5vC,UAAY,IAAI++zB,EACrBnvxB,EAAK5vC,UAAUmmB,YAAcypB,CAC/B,CAIA,SAASovxB,EAAIx2xB,EAAQs8I,EAAMm6oB,GACzB,GAAID,EAAGE,KAAK12xB,GACV,OAAOA,EAGT1oC,KAAKipC,SAAW,EAChBjpC,KAAKmiiB,MAAQ,KACbniiB,KAAKY,OAAS,EAGdZ,KAAKmN,IAAM,KAEI,OAAXu7B,IACW,OAATs8I,GAA0B,OAATA,IACnBm6oB,EAASn6oB,EACTA,EAAO,IAGThlL,KAAK42uB,MAAMlusB,GAAU,EAAGs8I,GAAQ,GAAIm6oB,GAAU,MAElD,CAUA,IAAIz9xB,EATkB,kBAAXujL,EACTA,EAAOrtL,QAAUsnyB,EAEjBtnyB,EAAQsnyB,GAAKA,EAGfA,EAAGA,GAAKA,EACRA,EAAGG,SAAW,GAGd,IAEI39xB,EADoB,qBAAXphC,QAAmD,qBAAlBA,OAAOohC,OACxCphC,OAAOohC,OAEP1K,EAAAA,OAAAA,MAEb,CAAE,MAAOj3B,GACT,CA+HA,SAASu/zB,EAAevotB,EAAQ3jF,GAC9B,IAAInyB,EAAI81G,EAAOz1G,WAAW8xB,GAE1B,OAAInyB,GAAK,IAAMA,GAAK,GACXA,EAAI,GAEFA,GAAK,IAAMA,GAAK,GAClBA,EAAI,GAEFA,GAAK,IAAMA,GAAK,IAClBA,EAAI,QAEXiluB,GAAO,EAAO,wBAA0BnvnB,EAE5C,CAEA,SAASwotB,EAAcxotB,EAAQyotB,EAAYpsyB,GACzC,IAAI/yB,EAAIi/zB,EAAcvotB,EAAQ3jF,GAI9B,OAHIA,EAAQ,GAAKosyB,IACfn/zB,GAAKi/zB,EAAcvotB,EAAQ3jF,EAAQ,IAAM,GAEpC/yB,CACT,CA6CA,SAASo/zB,EAAW93xB,EAAK93B,EAAOC,EAAKmtG,GAInC,IAHA,IAAI58G,EAAI,EACJm4B,EAAI,EACJjS,EAAMqiB,KAAKuZ,IAAIxa,EAAI/mC,OAAQkP,GACtB9O,EAAI6O,EAAO7O,EAAIulB,EAAKvlB,IAAK,CAChC,IAAIC,EAAI0mC,EAAIrmC,WAAWN,GAAK,GAE5BX,GAAK48G,EAIHzkF,EADEv3B,GAAK,GACHA,EAAI,GAAK,GAGJA,GAAK,GACVA,EAAI,GAAK,GAITA,EAENiluB,EAAOjluB,GAAK,GAAKu3B,EAAIykF,EAAK,qBAC1B58G,GAAKm4B,CACP,CACA,OAAOn4B,CACT,CA2DA,SAAS4+X,EAAM7zL,EAAM97L,GACnB87L,EAAK+2V,MAAQ7yhB,EAAI6yhB,MACjB/2V,EAAKxqM,OAAS0O,EAAI1O,OAClBwqM,EAAKniK,SAAW35B,EAAI25B,SACpBmiK,EAAKj+L,IAAMmC,EAAInC,GACjB,CAqCA,GA9TA+xzB,EAAGE,KAAO,SAAet9xB,GACvB,OAAIA,aAAeo9xB,GAIJ,OAARp9xB,GAA+B,kBAARA,GAC5BA,EAAIzb,YAAYg5yB,WAAaH,EAAGG,UAAY/8yB,MAAMC,QAAQuf,EAAIqggB,MAClE,EAEA+8R,EAAGl8wB,IAAM,SAAc69E,EAAMH,GAC3B,OAAIG,EAAKmiS,IAAItiS,GAAS,EAAUG,EACzBH,CACT,EAEAw+rB,EAAG/8wB,IAAM,SAAc0+E,EAAMH,GAC3B,OAAIG,EAAKmiS,IAAItiS,GAAS,EAAUG,EACzBH,CACT,EAEAw+rB,EAAGh/zB,UAAU02uB,MAAQ,SAAelusB,EAAQs8I,EAAMm6oB,GAChD,GAAsB,kBAAXz2xB,EACT,OAAO1oC,KAAK0/zB,YAAYh3xB,EAAQs8I,EAAMm6oB,GAGxC,GAAsB,kBAAXz2xB,EACT,OAAO1oC,KAAK2/zB,WAAWj3xB,EAAQs8I,EAAMm6oB,GAG1B,QAATn6oB,IACFA,EAAO,IAETkhjB,EAAOlhjB,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,IAGnD,IAAIn1K,EAAQ,EACM,OAFlB64B,EAASA,EAAOnnC,WAAWZ,QAAQ,OAAQ,KAEhC,KACTkP,IACA7P,KAAKipC,SAAW,GAGdp5B,EAAQ64B,EAAO9nC,SACJ,KAATokL,EACFhlL,KAAK4/zB,UAAUl3xB,EAAQ74B,EAAOsvzB,IAE9Bn/zB,KAAK6/zB,WAAWn3xB,EAAQs8I,EAAMn1K,GACf,OAAXsvzB,GACFn/zB,KAAK2/zB,WAAW3/zB,KAAKs+H,UAAW0mD,EAAMm6oB,IAI9C,EAEAD,EAAGh/zB,UAAUw/zB,YAAc,SAAsBh3xB,EAAQs8I,EAAMm6oB,GACzDz2xB,EAAS,IACX1oC,KAAKipC,SAAW,EAChBP,GAAUA,GAERA,EAAS,UACX1oC,KAAKmiiB,MAAQ,CAAU,SAATz5f,GACd1oC,KAAKY,OAAS,GACL8nC,EAAS,kBAClB1oC,KAAKmiiB,MAAQ,CACF,SAATz5f,EACCA,EAAS,SAAa,UAEzB1oC,KAAKY,OAAS,IAEdsluB,EAAOx9rB,EAAS,kBAChB1oC,KAAKmiiB,MAAQ,CACF,SAATz5f,EACCA,EAAS,SAAa,SACvB,GAEF1oC,KAAKY,OAAS,GAGD,OAAXu+zB,GAGJn/zB,KAAK2/zB,WAAW3/zB,KAAKs+H,UAAW0mD,EAAMm6oB,EACxC,EAEAD,EAAGh/zB,UAAUy/zB,WAAa,SAAqBj3xB,EAAQs8I,EAAMm6oB,GAG3D,GADAj5F,EAAgC,kBAAlBx9rB,EAAO9nC,QACjB8nC,EAAO9nC,QAAU,EAGnB,OAFAZ,KAAKmiiB,MAAQ,CAAC,GACdniiB,KAAKY,OAAS,EACPZ,KAGTA,KAAKY,OAASgoC,KAAK8wI,KAAKhxI,EAAO9nC,OAAS,GACxCZ,KAAKmiiB,MAAQ,IAAI7/gB,MAAMtiB,KAAKY,QAC5B,IAAK,IAAII,EAAI,EAAGA,EAAIhB,KAAKY,OAAQI,IAC/BhB,KAAKmiiB,MAAMnhiB,GAAK,EAGlB,IAAIw6B,EAAG+xB,EACHynD,EAAM,EACV,GAAe,OAAXmqtB,EACF,IAAKn+zB,EAAI0nC,EAAO9nC,OAAS,EAAG46B,EAAI,EAAGx6B,GAAK,EAAGA,GAAK,EAC9CusD,EAAI7kB,EAAO1nC,GAAM0nC,EAAO1nC,EAAI,IAAM,EAAM0nC,EAAO1nC,EAAI,IAAM,GACzDhB,KAAKmiiB,MAAM3mgB,IAAO+xB,GAAKynD,EAAO,SAC9Bh1G,KAAKmiiB,MAAM3mgB,EAAI,GAAM+xB,IAAO,GAAKynD,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACPx5E,UAGC,GAAe,OAAX2jyB,EACT,IAAKn+zB,EAAI,EAAGw6B,EAAI,EAAGx6B,EAAI0nC,EAAO9nC,OAAQI,GAAK,EACzCusD,EAAI7kB,EAAO1nC,GAAM0nC,EAAO1nC,EAAI,IAAM,EAAM0nC,EAAO1nC,EAAI,IAAM,GACzDhB,KAAKmiiB,MAAM3mgB,IAAO+xB,GAAKynD,EAAO,SAC9Bh1G,KAAKmiiB,MAAM3mgB,EAAI,GAAM+xB,IAAO,GAAKynD,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACPx5E,KAIN,OAAOx7B,KAAKyw0B,QACd,EA0BAvR,EAAGh/zB,UAAU0/zB,UAAY,SAAoBl3xB,EAAQ74B,EAAOsvzB,GAE1Dn/zB,KAAKY,OAASgoC,KAAK8wI,MAAMhxI,EAAO9nC,OAASiP,GAAS,GAClD7P,KAAKmiiB,MAAQ,IAAI7/gB,MAAMtiB,KAAKY,QAC5B,IAAK,IAAII,EAAI,EAAGA,EAAIhB,KAAKY,OAAQI,IAC/BhB,KAAKmiiB,MAAMnhiB,GAAK,EAIlB,IAGIusD,EAHAynD,EAAM,EACNx5E,EAAI,EAGR,GAAe,OAAX2jyB,EACF,IAAKn+zB,EAAI0nC,EAAO9nC,OAAS,EAAGI,GAAK6O,EAAO7O,GAAK,EAC3CusD,EAAIgywB,EAAa72xB,EAAQ74B,EAAO7O,IAAMg0G,EACtCh1G,KAAKmiiB,MAAM3mgB,IAAU,SAAJ+xB,EACbynD,GAAO,IACTA,GAAO,GACPx5E,GAAK,EACLx7B,KAAKmiiB,MAAM3mgB,IAAM+xB,IAAM,IAEvBynD,GAAO,OAKX,IAAKh0G,GADa0nC,EAAO9nC,OAASiP,GACX,IAAM,EAAIA,EAAQ,EAAIA,EAAO7O,EAAI0nC,EAAO9nC,OAAQI,GAAK,EAC1EusD,EAAIgywB,EAAa72xB,EAAQ74B,EAAO7O,IAAMg0G,EACtCh1G,KAAKmiiB,MAAM3mgB,IAAU,SAAJ+xB,EACbynD,GAAO,IACTA,GAAO,GACPx5E,GAAK,EACLx7B,KAAKmiiB,MAAM3mgB,IAAM+xB,IAAM,IAEvBynD,GAAO,EAKbh1G,KAAKyw0B,QACP,EA6BAvR,EAAGh/zB,UAAU2/zB,WAAa,SAAqBn3xB,EAAQs8I,EAAMn1K,GAE3D7P,KAAKmiiB,MAAQ,CAAC,GACdniiB,KAAKY,OAAS,EAGd,IAAK,IAAIk/zB,EAAU,EAAGC,EAAU,EAAGA,GAAW,SAAWA,GAAW/6oB,EAClE86oB,IAEFA,IACAC,EAAWA,EAAU/6oB,EAAQ,EAO7B,IALA,IAAIrwE,EAAQjsE,EAAO9nC,OAASiP,EACxB2sB,EAAMm4E,EAAQmrtB,EACdhwzB,EAAM84B,KAAKuZ,IAAIwyD,EAAOA,EAAQn4E,GAAO3sB,EAErC0hO,EAAO,EACFvwO,EAAI6O,EAAO7O,EAAI8O,EAAK9O,GAAK8+zB,EAChCvulB,EAAOkulB,EAAU/2xB,EAAQ1nC,EAAGA,EAAI8+zB,EAAS96oB,GAEzChlL,KAAKgg0B,MAAMD,GACP//zB,KAAKmiiB,MAAM,GAAK5wT,EAAO,SACzBvxO,KAAKmiiB,MAAM,IAAM5wT,EAEjBvxO,KAAKig0B,OAAO1ulB,GAIhB,GAAY,IAAR/0M,EAAW,CACb,IAAIumB,EAAM,EAGV,IAFAwuL,EAAOkulB,EAAU/2xB,EAAQ1nC,EAAG0nC,EAAO9nC,OAAQokL,GAEtChkL,EAAI,EAAGA,EAAIw7B,EAAKx7B,IACnB+hD,GAAOiiI,EAGThlL,KAAKgg0B,MAAMj9wB,GACP/iD,KAAKmiiB,MAAM,GAAK5wT,EAAO,SACzBvxO,KAAKmiiB,MAAM,IAAM5wT,EAEjBvxO,KAAKig0B,OAAO1ulB,EAEhB,CAEAvxO,KAAKyw0B,QACP,EAEAvR,EAAGh/zB,UAAUu3G,KAAO,SAAe2zF,GACjCA,EAAK+2V,MAAQ,IAAI7/gB,MAAMtiB,KAAKY,QAC5B,IAAK,IAAII,EAAI,EAAGA,EAAIhB,KAAKY,OAAQI,IAC/BoqM,EAAK+2V,MAAMnhiB,GAAKhB,KAAKmiiB,MAAMnhiB,GAE7BoqM,EAAKxqM,OAASZ,KAAKY,OACnBwqM,EAAKniK,SAAWjpC,KAAKipC,SACrBmiK,EAAKj+L,IAAMnN,KAAKmN,GAClB,EASA+xzB,EAAGh/zB,UAAU6h1B,MAAQ,SAAgB32oB,GACnC6zL,EAAK7zL,EAAMprM,KACb,EAEAk/zB,EAAGh/zB,UAAU+wC,MAAQ,WACnB,IAAI5wC,EAAI,IAAI6+zB,EAAG,MAEf,OADAl/zB,KAAKy3G,KAAKp3G,GACHA,CACT,EAEA6+zB,EAAGh/zB,UAAUgg0B,QAAU,SAAkBn4zB,GACvC,KAAO/H,KAAKY,OAASmH,GACnB/H,KAAKmiiB,MAAMniiB,KAAKY,UAAY,EAE9B,OAAOZ,IACT,EAGAk/zB,EAAGh/zB,UAAUuw0B,OAAS,WACpB,KAAOzw0B,KAAKY,OAAS,GAAqC,IAAhCZ,KAAKmiiB,MAAMniiB,KAAKY,OAAS,IACjDZ,KAAKY,SAEP,OAAOZ,KAAKmg0B,WACd,EAEAjB,EAAGh/zB,UAAUig0B,UAAY,WAKvB,OAHoB,IAAhBng0B,KAAKY,QAAkC,IAAlBZ,KAAKmiiB,MAAM,KAClCniiB,KAAKipC,SAAW,GAEXjpC,IACT,EAIsB,qBAAX6jB,QAAgD,oBAAfA,OAAO4yF,IACjD,IACEyotB,EAAGh/zB,UAAU2jB,OAAO4yF,IAAI,+BAAiCsF,CAC3D,CAAE,MAAOh8G,GACPm/zB,EAAGh/zB,UAAU67G,QAAUA,CACzB,MAEAmjtB,EAAGh/zB,UAAU67G,QAAUA,EAGzB,SAASA,IACP,OAAQ/7G,KAAKmN,IAAM,UAAY,SAAWnN,KAAKuB,SAAS,IAAM,GAChE,CAgCA,IAAI6+zB,EAAQ,CACV,GACA,IACA,KACA,MACA,OACA,QACA,SACA,UACA,WACA,YACA,aACA,cACA,eACA,gBACA,iBACA,kBACA,mBACA,oBACA,qBACA,sBACA,uBACA,wBACA,yBACA,0BACA,2BACA,6BAGEC,EAAa,CACf,EAAG,EACH,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EACvB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGhBC,EAAa,CACf,EAAG,EACH,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAC5D,SAAU,IAAU,SAAU,SAAU,SAAU,QAAS,SAC3D,SAAU,SAAU,SAAU,SAAU,KAAU,QAAS,QAC3D,QAAS,QAAS,QAAS,SAAU,SAAU,SAAU,SACzD,MAAU,SAAU,SAAU,SAAU,SAAU,SAAU,UAG9DpB,EAAGh/zB,UAAUqB,SAAW,SAAmByjL,EAAMpqK,GAI/C,IAAI0uB,EACJ,GAHA1uB,EAAoB,EAAVA,GAAe,EAGZ,MAJboqK,EAAOA,GAAQ,KAIa,QAATA,EAAgB,CACjC17I,EAAM,GAGN,IAFA,IAAI0rE,EAAM,EACNzrE,EAAQ,EACHvoC,EAAI,EAAGA,EAAIhB,KAAKY,OAAQI,IAAK,CACpC,IAAIusD,EAAIvtD,KAAKmiiB,MAAMnhiB,GACfuwO,GAA+B,UAArBhkL,GAAKynD,EAAOzrE,IAAmBhoC,SAAS,IACtDgoC,EAASgkB,IAAO,GAAKynD,EAAQ,UAC7BA,GAAO,IACI,KACTA,GAAO,GACPh0G,KAGAsoC,EADY,IAAVC,GAAevoC,IAAMhB,KAAKY,OAAS,EAC/Bw/zB,EAAM,EAAI7ulB,EAAK3wO,QAAU2wO,EAAOjoM,EAEhCioM,EAAOjoM,CAEjB,CAIA,IAHc,IAAVC,IACFD,EAAMC,EAAMhoC,SAAS,IAAM+nC,GAEtBA,EAAI1oC,OAASga,IAAY,GAC9B0uB,EAAM,IAAMA,EAKd,OAHsB,IAAlBtpC,KAAKipC,WACPK,EAAM,IAAMA,GAEPA,CACT,CAEA,GAAI07I,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,GAAI,CAElD,IAAI27oB,EAAYN,EAAWr7oB,GAEvB47oB,EAAYN,EAAWt7oB,GAC3B17I,EAAM,GACN,IAAIroC,EAAIjB,KAAKixC,QAEb,IADAhwC,EAAEgoC,SAAW,GACLhoC,EAAE4/zB,UAAU,CAClB,IAAIxg0B,EAAIY,EAAE+g1B,MAAMphB,GAAWr/zB,SAASyjL,GAMlC17I,GALFroC,EAAIA,EAAE8/zB,MAAMH,IAELC,SAGCxg0B,EAAIipC,EAFJ82xB,EAAMO,EAAYtg0B,EAAEO,QAAUP,EAAIipC,CAI5C,CAIA,IAHItpC,KAAK6g0B,WACPv3xB,EAAM,IAAMA,GAEPA,EAAI1oC,OAASga,IAAY,GAC9B0uB,EAAM,IAAMA,EAKd,OAHsB,IAAlBtpC,KAAKipC,WACPK,EAAM,IAAMA,GAEPA,CACT,CAEA48rB,GAAO,EAAO,kCAChB,EAEAg5F,EAAGh/zB,UAAUygN,SAAW,WACtB,IAAIrkG,EAAMt8G,KAAKmiiB,MAAM,GASrB,OARoB,IAAhBniiB,KAAKY,OACP07G,GAAuB,SAAhBt8G,KAAKmiiB,MAAM,GACO,IAAhBniiB,KAAKY,QAAkC,IAAlBZ,KAAKmiiB,MAAM,GAEzC7lb,GAAO,iBAAoC,SAAhBt8G,KAAKmiiB,MAAM,GAC7BniiB,KAAKY,OAAS,GACvBsluB,GAAO,EAAO,8CAEU,IAAlBlmuB,KAAKipC,UAAmBqzE,EAAMA,CACxC,EAEA4itB,EAAGh/zB,UAAUm8G,OAAS,WACpB,OAAOr8G,KAAKuB,SAAS,GAAI,EAC3B,EAEImgC,IACFw9xB,EAAGh/zB,UAAU86xB,SAAW,SAAmBmkC,EAAQv+zB,GACjD,OAAOZ,KAAKgh0B,YAAYt/xB,EAAQy9xB,EAAQv+zB,EAC1C,GAGFs+zB,EAAGh/zB,UAAUo+H,QAAU,SAAkB6gsB,EAAQv+zB,GAC/C,OAAOZ,KAAKgh0B,YAAY1+yB,MAAO68yB,EAAQv+zB,EACzC,EA2gBA,SAAS2/zB,EAAY18sB,EAAM/hF,EAAKwH,GAC9BA,EAAIL,SAAWnH,EAAImH,SAAW46E,EAAK56E,SACnC,IAAI1iB,EAAOs9F,EAAKjjH,OAASkhC,EAAIlhC,OAAU,EACvC0oC,EAAI1oC,OAAS2lB,EACbA,EAAOA,EAAM,EAAK,EAGlB,IAAIxlB,EAAoB,EAAhB8iH,EAAKs+a,MAAM,GACf3pgB,EAAmB,EAAfsJ,EAAIqggB,MAAM,GACd9hiB,EAAIU,EAAIy3B,EAERyhF,EAAS,SAAJ55G,EACLkpC,EAASlpC,EAAI,SAAa,EAC9BipC,EAAI64f,MAAM,GAAKlob,EAEf,IAAK,IAAIh/E,EAAI,EAAGA,EAAI1U,EAAK0U,IAAK,CAM5B,IAHA,IAAIulyB,EAASj3xB,IAAU,GACnBk3xB,EAAgB,SAARl3xB,EACRm3xB,EAAO93xB,KAAKuZ,IAAIlnB,EAAG6G,EAAIlhC,OAAS,GAC3B46B,EAAIoN,KAAKoa,IAAI,EAAG/nB,EAAI4oF,EAAKjjH,OAAS,GAAI46B,GAAKklyB,EAAMllyB,IAAK,CAC7D,IAAIx6B,EAAKi6B,EAAIO,EAAK,EAIlBglyB,IADAng0B,GAFAU,EAAoB,EAAhB8iH,EAAKs+a,MAAMnhiB,KACfw3B,EAAmB,EAAfsJ,EAAIqggB,MAAM3mgB,IACFilyB,GACG,SAAa,EAC5BA,EAAY,SAAJpg0B,CACV,CACAipC,EAAI64f,MAAMlngB,GAAa,EAARwlyB,EACfl3xB,EAAiB,EAATi3xB,CACV,CAOA,OANc,IAAVj3xB,EACFD,EAAI64f,MAAMlngB,GAAa,EAARsO,EAEfD,EAAI1oC,SAGC0oC,EAAImnyB,QACb,CAziBAvR,EAAGh/zB,UAAU8g0B,YAAc,SAAsBC,EAAW9B,EAAQv+zB,GAClEZ,KAAKyw0B,SAEL,IAAI5wyB,EAAa7/B,KAAK6/B,aAClBqhyB,EAAYtg0B,GAAUgoC,KAAKoa,IAAI,EAAGnjB,GACtCqmsB,EAAOrmsB,GAAcqhyB,EAAW,yCAChCh7F,EAAOg7F,EAAY,EAAG,+BAEtB,IAAI9mtB,EAfS,SAAmB6mtB,EAAWl5zB,GAC3C,OAAIk5zB,EAAUnqtB,YACLmqtB,EAAUnqtB,YAAY/uG,GAExB,IAAIk5zB,EAAUl5zB,EACvB,CAUYk60B,CAAShhB,EAAWC,GAG9B,OADAlh0B,KAAK,gBADoB,OAAXm/zB,EAAkB,KAAO,OACR/ktB,EAAKv6E,GAC7Bu6E,CACT,EAEA8ktB,EAAGh/zB,UAAUgi1B,eAAiB,SAAyB9nuB,EAAKv6E,GAI1D,IAHA,IAAInjB,EAAW,EACX6sB,EAAQ,EAEHvoC,EAAI,EAAGi7B,EAAQ,EAAGj7B,EAAIhB,KAAKY,OAAQI,IAAK,CAC/C,IAAIuwO,EAAQvxO,KAAKmiiB,MAAMnhiB,IAAMi7B,EAASsN,EAEtC6wE,EAAI19F,KAAqB,IAAP60N,EACd70N,EAAW09F,EAAIx5G,SACjBw5G,EAAI19F,KAAe60N,GAAQ,EAAK,KAE9B70N,EAAW09F,EAAIx5G,SACjBw5G,EAAI19F,KAAe60N,GAAQ,GAAM,KAGrB,IAAVt1M,GACEvf,EAAW09F,EAAIx5G,SACjBw5G,EAAI19F,KAAe60N,GAAQ,GAAM,KAEnChoM,EAAQ,EACRtN,EAAQ,IAERsN,EAAQgoM,IAAS,GACjBt1M,GAAS,EAEb,CAEA,GAAIvf,EAAW09F,EAAIx5G,OAGjB,IAFAw5G,EAAI19F,KAAc6sB,EAEX7sB,EAAW09F,EAAIx5G,QACpBw5G,EAAI19F,KAAc,CAGxB,EAEAwizB,EAAGh/zB,UAAUii1B,eAAiB,SAAyB/nuB,EAAKv6E,GAI1D,IAHA,IAAInjB,EAAW09F,EAAIx5G,OAAS,EACxB2oC,EAAQ,EAEHvoC,EAAI,EAAGi7B,EAAQ,EAAGj7B,EAAIhB,KAAKY,OAAQI,IAAK,CAC/C,IAAIuwO,EAAQvxO,KAAKmiiB,MAAMnhiB,IAAMi7B,EAASsN,EAEtC6wE,EAAI19F,KAAqB,IAAP60N,EACd70N,GAAY,IACd09F,EAAI19F,KAAe60N,GAAQ,EAAK,KAE9B70N,GAAY,IACd09F,EAAI19F,KAAe60N,GAAQ,GAAM,KAGrB,IAAVt1M,GACEvf,GAAY,IACd09F,EAAI19F,KAAe60N,GAAQ,GAAM,KAEnChoM,EAAQ,EACRtN,EAAQ,IAERsN,EAAQgoM,IAAS,GACjBt1M,GAAS,EAEb,CAEA,GAAIvf,GAAY,EAGd,IAFA09F,EAAI19F,KAAc6sB,EAEX7sB,GAAY,GACjB09F,EAAI19F,KAAc,CAGxB,EAEIksB,KAAKy4xB,MACPnC,EAAGh/zB,UAAUoh0B,WAAa,SAAqB/zwB,GAC7C,OAAO,GAAK3kB,KAAKy4xB,MAAM9zwB,EACzB,EAEA2xwB,EAAGh/zB,UAAUoh0B,WAAa,SAAqB/zwB,GAC7C,IAAI9sD,EAAI8sD,EACJltD,EAAI,EAiBR,OAhBII,GAAK,OACPJ,GAAK,GACLI,KAAO,IAELA,GAAK,KACPJ,GAAK,EACLI,KAAO,GAELA,GAAK,IACPJ,GAAK,EACLI,KAAO,GAELA,GAAK,IACPJ,GAAK,EACLI,KAAO,GAEFJ,EAAII,CACb,EAGFy+zB,EAAGh/zB,UAAUqh0B,UAAY,SAAoBh0wB,GAE3C,GAAU,IAANA,EAAS,OAAO,GAEpB,IAAI9sD,EAAI8sD,EACJltD,EAAI,EAoBR,OAnBqB,KAAZ,KAAJI,KACHJ,GAAK,GACLI,KAAO,IAEU,KAAV,IAAJA,KACHJ,GAAK,EACLI,KAAO,GAES,KAAT,GAAJA,KACHJ,GAAK,EACLI,KAAO,GAES,KAAT,EAAJA,KACHJ,GAAK,EACLI,KAAO,GAES,KAAT,EAAJA,IACHJ,IAEKA,CACT,EAGA6+zB,EAAGh/zB,UAAUw9M,UAAY,WACvB,IAAInwJ,EAAIvtD,KAAKmiiB,MAAMniiB,KAAKY,OAAS,GAC7Bo5G,EAAKh6G,KAAKsh0B,WAAW/zwB,GACzB,OAA2B,IAAnBvtD,KAAKY,OAAS,GAAUo5G,CAClC,EAgBAkltB,EAAGh/zB,UAAUsh0B,SAAW,WACtB,GAAIxh0B,KAAK6g0B,SAAU,OAAO,EAG1B,IADA,IAAIxg0B,EAAI,EACCW,EAAI,EAAGA,EAAIhB,KAAKY,OAAQI,IAAK,CACpC,IAAIw3B,EAAIx4B,KAAKuh0B,UAAUvh0B,KAAKmiiB,MAAMnhiB,IAElC,GADAX,GAAKm4B,EACK,KAANA,EAAU,KAChB,CACA,OAAOn4B,CACT,EAEA6+zB,EAAGh/zB,UAAU2/B,WAAa,WACxB,OAAO+I,KAAK8wI,KAAK15K,KAAK09M,YAAc,EACtC,EAEAwhnB,EAAGh/zB,UAAUuh0B,OAAS,SAAiB5vzB,GACrC,OAAsB,IAAlB7R,KAAKipC,SACAjpC,KAAK6oC,MAAM64xB,MAAM7vzB,GAAO8vzB,MAAM,GAEhC3h0B,KAAKixC,OACd,EAEAiuxB,EAAGh/zB,UAAU0h0B,SAAW,SAAmB/vzB,GACzC,OAAI7R,KAAK6h0B,MAAMhwzB,EAAQ,GACd7R,KAAK8h0B,KAAKjwzB,GAAO8vzB,MAAM,GAAGI,OAE5B/h0B,KAAKixC,OACd,EAEAiuxB,EAAGh/zB,UAAU8h0B,MAAQ,WACnB,OAAyB,IAAlBhi0B,KAAKipC,QACd,EAGAi2xB,EAAGh/zB,UAAU+h0B,IAAM,WACjB,OAAOji0B,KAAKixC,QAAQ8wxB,MACtB,EAEA7C,EAAGh/zB,UAAU6h0B,KAAO,WAKlB,OAJK/h0B,KAAK6g0B,WACR7g0B,KAAKipC,UAAY,GAGZjpC,IACT,EAGAk/zB,EAAGh/zB,UAAUgi0B,KAAO,SAAepgyB,GACjC,KAAO9hC,KAAKY,OAASkhC,EAAIlhC,QACvBZ,KAAKmiiB,MAAMniiB,KAAKY,UAAY,EAG9B,IAAK,IAAII,EAAI,EAAGA,EAAI8gC,EAAIlhC,OAAQI,IAC9BhB,KAAKmiiB,MAAMnhiB,GAAKhB,KAAKmiiB,MAAMnhiB,GAAK8gC,EAAIqggB,MAAMnhiB,GAG5C,OAAOhB,KAAKyw0B,QACd,EAEAvR,EAAGh/zB,UAAUii0B,IAAM,SAAcrgyB,GAE/B,OADAoksB,EAA0C,KAAlClmuB,KAAKipC,SAAWnH,EAAImH,WACrBjpC,KAAKki0B,KAAKpgyB,EACnB,EAGAo9xB,EAAGh/zB,UAAUki0B,GAAK,SAAatgyB,GAC7B,OAAI9hC,KAAKY,OAASkhC,EAAIlhC,OAAeZ,KAAKixC,QAAQkxxB,IAAIrgyB,GAC/CA,EAAImP,QAAQkxxB,IAAIni0B,KACzB,EAEAk/zB,EAAGh/zB,UAAUmi0B,IAAM,SAAcvgyB,GAC/B,OAAI9hC,KAAKY,OAASkhC,EAAIlhC,OAAeZ,KAAKixC,QAAQixxB,KAAKpgyB,GAChDA,EAAImP,QAAQixxB,KAAKli0B,KAC1B,EAGAk/zB,EAAGh/zB,UAAUoi0B,MAAQ,SAAgBxgyB,GAEnC,IAAItJ,EAEFA,EADEx4B,KAAKY,OAASkhC,EAAIlhC,OAChBkhC,EAEA9hC,KAGN,IAAK,IAAIgB,EAAI,EAAGA,EAAIw3B,EAAE53B,OAAQI,IAC5BhB,KAAKmiiB,MAAMnhiB,GAAKhB,KAAKmiiB,MAAMnhiB,GAAK8gC,EAAIqggB,MAAMnhiB,GAK5C,OAFAhB,KAAKY,OAAS43B,EAAE53B,OAETZ,KAAKyw0B,QACd,EAEAvR,EAAGh/zB,UAAUqi0B,KAAO,SAAezgyB,GAEjC,OADAoksB,EAA0C,KAAlClmuB,KAAKipC,SAAWnH,EAAImH,WACrBjpC,KAAKsi0B,MAAMxgyB,EACpB,EAGAo9xB,EAAGh/zB,UAAUsi0B,IAAM,SAAc1gyB,GAC/B,OAAI9hC,KAAKY,OAASkhC,EAAIlhC,OAAeZ,KAAKixC,QAAQsxxB,KAAKzgyB,GAChDA,EAAImP,QAAQsxxB,KAAKvi0B,KAC1B,EAEAk/zB,EAAGh/zB,UAAUui0B,KAAO,SAAe3gyB,GACjC,OAAI9hC,KAAKY,OAASkhC,EAAIlhC,OAAeZ,KAAKixC,QAAQqxxB,MAAMxgyB,GACjDA,EAAImP,QAAQqxxB,MAAMti0B,KAC3B,EAGAk/zB,EAAGh/zB,UAAUwi0B,MAAQ,SAAgB5gyB,GAEnC,IAAI/gC,EACAy3B,EACAx4B,KAAKY,OAASkhC,EAAIlhC,QACpBG,EAAIf,KACJw4B,EAAIsJ,IAEJ/gC,EAAI+gC,EACJtJ,EAAIx4B,MAGN,IAAK,IAAIgB,EAAI,EAAGA,EAAIw3B,EAAE53B,OAAQI,IAC5BhB,KAAKmiiB,MAAMnhiB,GAAKD,EAAEohiB,MAAMnhiB,GAAKw3B,EAAE2pgB,MAAMnhiB,GAGvC,GAAIhB,OAASe,EACX,KAAOC,EAAID,EAAEH,OAAQI,IACnBhB,KAAKmiiB,MAAMnhiB,GAAKD,EAAEohiB,MAAMnhiB,GAM5B,OAFAhB,KAAKY,OAASG,EAAEH,OAETZ,KAAKyw0B,QACd,EAEAvR,EAAGh/zB,UAAUyi0B,KAAO,SAAe7gyB,GAEjC,OADAoksB,EAA0C,KAAlClmuB,KAAKipC,SAAWnH,EAAImH,WACrBjpC,KAAK0i0B,MAAM5gyB,EACpB,EAGAo9xB,EAAGh/zB,UAAU0i0B,IAAM,SAAc9gyB,GAC/B,OAAI9hC,KAAKY,OAASkhC,EAAIlhC,OAAeZ,KAAKixC,QAAQ0xxB,KAAK7gyB,GAChDA,EAAImP,QAAQ0xxB,KAAK3i0B,KAC1B,EAEAk/zB,EAAGh/zB,UAAU2i0B,KAAO,SAAe/gyB,GACjC,OAAI9hC,KAAKY,OAASkhC,EAAIlhC,OAAeZ,KAAKixC,QAAQyxxB,MAAM5gyB,GACjDA,EAAImP,QAAQyxxB,MAAM1i0B,KAC3B,EAGAk/zB,EAAGh/zB,UAAUwh0B,MAAQ,SAAgB7vzB,GACnCq0tB,EAAwB,kBAAVr0tB,GAAsBA,GAAS,GAE7C,IAAIixzB,EAAsC,EAAxBl6xB,KAAK8wI,KAAK7nK,EAAQ,IAChCkxzB,EAAWlxzB,EAAQ,GAGvB7R,KAAKkg0B,QAAQ4C,GAETC,EAAW,GACbD,IAIF,IAAK,IAAI9h0B,EAAI,EAAGA,EAAI8h0B,EAAa9h0B,IAC/BhB,KAAKmiiB,MAAMnhiB,GAAsB,UAAhBhB,KAAKmiiB,MAAMnhiB,GAS9B,OALI+h0B,EAAW,IACb/i0B,KAAKmiiB,MAAMnhiB,IAAMhB,KAAKmiiB,MAAMnhiB,GAAM,UAAc,GAAK+h0B,GAIhD/i0B,KAAKyw0B,QACd,EAEAvR,EAAGh/zB,UAAU4h0B,KAAO,SAAejwzB,GACjC,OAAO7R,KAAKixC,QAAQywxB,MAAM7vzB,EAC5B,EAGAqtzB,EAAGh/zB,UAAU8i0B,KAAO,SAAenR,EAAKhitB,GACtCq2nB,EAAsB,kBAAR2rF,GAAoBA,GAAO,GAEzC,IAAI78sB,EAAO68sB,EAAM,GAAM,EACnBoR,EAAOpR,EAAM,GAUjB,OARA7xzB,KAAKkg0B,QAAQlrtB,EAAM,GAGjBh1G,KAAKmiiB,MAAMntb,GADTnF,EACgB7vG,KAAKmiiB,MAAMntb,GAAQ,GAAKiutB,EAExBjj0B,KAAKmiiB,MAAMntb,KAAS,GAAKiutB,GAGtCjj0B,KAAKyw0B,QACd,EAGAvR,EAAGh/zB,UAAUgj0B,KAAO,SAAephyB,GACjC,IAAIzhC,EAkBAU,EAAGy3B,EAfP,GAAsB,IAAlBx4B,KAAKipC,UAAmC,IAAjBnH,EAAImH,SAI7B,OAHAjpC,KAAKipC,SAAW,EAChB5oC,EAAIL,KAAKmj0B,KAAKrhyB,GACd9hC,KAAKipC,UAAY,EACVjpC,KAAKmg0B,YAGP,GAAsB,IAAlBng0B,KAAKipC,UAAmC,IAAjBnH,EAAImH,SAIpC,OAHAnH,EAAImH,SAAW,EACf5oC,EAAIL,KAAKmj0B,KAAKrhyB,GACdA,EAAImH,SAAW,EACR5oC,EAAE8/zB,YAKPng0B,KAAKY,OAASkhC,EAAIlhC,QACpBG,EAAIf,KACJw4B,EAAIsJ,IAEJ/gC,EAAI+gC,EACJtJ,EAAIx4B,MAIN,IADA,IAAIupC,EAAQ,EACHvoC,EAAI,EAAGA,EAAIw3B,EAAE53B,OAAQI,IAC5BX,GAAkB,EAAbU,EAAEohiB,MAAMnhiB,KAAwB,EAAbw3B,EAAE2pgB,MAAMnhiB,IAAUuoC,EAC1CvpC,KAAKmiiB,MAAMnhiB,GAAS,SAAJX,EAChBkpC,EAAQlpC,IAAM,GAEhB,KAAiB,IAAVkpC,GAAevoC,EAAID,EAAEH,OAAQI,IAClCX,GAAkB,EAAbU,EAAEohiB,MAAMnhiB,IAAUuoC,EACvBvpC,KAAKmiiB,MAAMnhiB,GAAS,SAAJX,EAChBkpC,EAAQlpC,IAAM,GAIhB,GADAL,KAAKY,OAASG,EAAEH,OACF,IAAV2oC,EACFvpC,KAAKmiiB,MAAMniiB,KAAKY,QAAU2oC,EAC1BvpC,KAAKY,cAEA,GAAIG,IAAMf,KACf,KAAOgB,EAAID,EAAEH,OAAQI,IACnBhB,KAAKmiiB,MAAMnhiB,GAAKD,EAAEohiB,MAAMnhiB,GAI5B,OAAOhB,IACT,EAGAk/zB,EAAGh/zB,UAAUqmC,IAAM,SAAczE,GAC/B,IAAIs4E,EACJ,OAAqB,IAAjBt4E,EAAImH,UAAoC,IAAlBjpC,KAAKipC,UAC7BnH,EAAImH,SAAW,EACfmxE,EAAMp6G,KAAK2+G,IAAI78E,GACfA,EAAImH,UAAY,EACTmxE,GACmB,IAAjBt4E,EAAImH,UAAoC,IAAlBjpC,KAAKipC,UACpCjpC,KAAKipC,SAAW,EAChBmxE,EAAMt4E,EAAI68E,IAAI3+G,MACdA,KAAKipC,SAAW,EACTmxE,GAGLp6G,KAAKY,OAASkhC,EAAIlhC,OAAeZ,KAAKixC,QAAQiyxB,KAAKphyB,GAEhDA,EAAImP,QAAQiyxB,KAAKlj0B,KAC1B,EAGAk/zB,EAAGh/zB,UAAUij0B,KAAO,SAAerhyB,GAEjC,GAAqB,IAAjBA,EAAImH,SAAgB,CACtBnH,EAAImH,SAAW,EACf,IAAI5oC,EAAIL,KAAKkj0B,KAAKphyB,GAElB,OADAA,EAAImH,SAAW,EACR5oC,EAAE8/zB,WAGX,CAAO,GAAsB,IAAlBng0B,KAAKipC,SAId,OAHAjpC,KAAKipC,SAAW,EAChBjpC,KAAKkj0B,KAAKphyB,GACV9hC,KAAKipC,SAAW,EACTjpC,KAAKmg0B,YAId,IAWIp/zB,EAAGy3B,EAXHwqY,EAAMhja,KAAKgja,IAAIlhY,GAGnB,GAAY,IAARkhY,EAIF,OAHAhja,KAAKipC,SAAW,EAChBjpC,KAAKY,OAAS,EACdZ,KAAKmiiB,MAAM,GAAK,EACTniiB,KAKLgja,EAAM,GACRjia,EAAIf,KACJw4B,EAAIsJ,IAEJ/gC,EAAI+gC,EACJtJ,EAAIx4B,MAIN,IADA,IAAIupC,EAAQ,EACHvoC,EAAI,EAAGA,EAAIw3B,EAAE53B,OAAQI,IAE5BuoC,GADAlpC,GAAkB,EAAbU,EAAEohiB,MAAMnhiB,KAAwB,EAAbw3B,EAAE2pgB,MAAMnhiB,IAAUuoC,IAC7B,GACbvpC,KAAKmiiB,MAAMnhiB,GAAS,SAAJX,EAElB,KAAiB,IAAVkpC,GAAevoC,EAAID,EAAEH,OAAQI,IAElCuoC,GADAlpC,GAAkB,EAAbU,EAAEohiB,MAAMnhiB,IAAUuoC,IACV,GACbvpC,KAAKmiiB,MAAMnhiB,GAAS,SAAJX,EAIlB,GAAc,IAAVkpC,GAAevoC,EAAID,EAAEH,QAAUG,IAAMf,KACvC,KAAOgB,EAAID,EAAEH,OAAQI,IACnBhB,KAAKmiiB,MAAMnhiB,GAAKD,EAAEohiB,MAAMnhiB,GAU5B,OANAhB,KAAKY,OAASgoC,KAAKoa,IAAIhjD,KAAKY,OAAQI,GAEhCD,IAAMf,OACRA,KAAKipC,SAAW,GAGXjpC,KAAKyw0B,QACd,EAGAvR,EAAGh/zB,UAAUy+G,IAAM,SAAc78E,GAC/B,OAAO9hC,KAAKixC,QAAQkyxB,KAAKrhyB,EAC3B,EA8CA,IAAIshyB,EAAc,SAAsBv/sB,EAAM/hF,EAAKwH,GACjD,IAII2wE,EACAoptB,EACArptB,EANAj5G,EAAI8iH,EAAKs+a,MACT3pgB,EAAIsJ,EAAIqggB,MACRrhiB,EAAIwoC,EAAI64f,MACRlhiB,EAAI,EAIJqi0B,EAAY,EAAPvi0B,EAAE,GACPwi0B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbt9P,EAAY,EAAPjlkB,EAAE,GACP0i0B,EAAW,KAALz9P,EACN09P,EAAM19P,IAAO,GACbC,EAAY,EAAPllkB,EAAE,GACP4i0B,EAAW,KAAL19P,EACN29P,EAAM39P,IAAO,GACb49P,EAAY,EAAP9i0B,EAAE,GACP+i0B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPjj0B,EAAE,GACPkj0B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPpj0B,EAAE,GACPqj0B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPvj0B,EAAE,GACPwj0B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP1j0B,EAAE,GACP2j0B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP7j0B,EAAE,GACP8j0B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPhk0B,EAAE,GACPik0B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP1syB,EAAE,GACP2syB,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP7syB,EAAE,GACP8syB,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPhtyB,EAAE,GACPityB,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPntyB,EAAE,GACPotyB,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPttyB,EAAE,GACPutyB,EAAW,KAALD,EACNE,GAAMF,IAAO,GACbG,GAAY,EAAPztyB,EAAE,GACP0tyB,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP5tyB,EAAE,GACP6tyB,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP/tyB,EAAE,GACPguyB,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPluyB,EAAE,GACPmuyB,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPruyB,EAAE,GACPsuyB,GAAW,KAALD,GACNE,GAAMF,KAAO,GAEjBv9xB,EAAIL,SAAW46E,EAAK56E,SAAWnH,EAAImH,SACnCK,EAAI1oC,OAAS,GAMb,IAAIom0B,IAAQ/l0B,GAJZg5G,EAAKrxE,KAAKq+xB,KAAK1D,EAAK4B,IAIE,KAAa,MAFnC9B,GADAA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAK6B,IACRx8xB,KAAKq+xB,KAAKzD,EAAK2B,GAAQ,KAEU,IAAO,EACrDlk0B,IAFA+4G,EAAKpxE,KAAKq+xB,KAAKzD,EAAK4B,KAEP/B,IAAQ,IAAO,IAAM2D,KAAO,IAAO,EAChDA,IAAM,SAEN/stB,EAAKrxE,KAAKq+xB,KAAKxD,EAAK0B,GAEpB9B,GADAA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAK2B,IACRx8xB,KAAKq+xB,KAAKvD,EAAKyB,GAAQ,EACpCnrtB,EAAKpxE,KAAKq+xB,KAAKvD,EAAK0B,GAKpB,IAAI8B,IAAQjm0B,GAJZg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1D,EAAK+B,GAAQ,GAIZ,KAAa,MAFnCjC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAKgC,GAAQ,GACvB38xB,KAAKq+xB,KAAKzD,EAAK8B,GAAQ,KAEU,IAAO,EACrDrk0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzD,EAAK+B,GAAQ,IAErBlC,IAAQ,IAAO,IAAM6D,KAAO,IAAO,EAChDA,IAAM,SAENjttB,EAAKrxE,KAAKq+xB,KAAKtD,EAAKwB,GAEpB9B,GADAA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAKyB,IACRx8xB,KAAKq+xB,KAAKrD,EAAKuB,GAAQ,EACpCnrtB,EAAKpxE,KAAKq+xB,KAAKrD,EAAKwB,GACpBnrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKxD,EAAK6B,GAAQ,EAElCjC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAK8B,GAAQ,GACvB38xB,KAAKq+xB,KAAKvD,EAAK4B,GAAQ,EACpCtrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKvD,EAAK6B,GAAQ,EAKlC,IAAIx0Q,IAAQ9vjB,GAJZg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1D,EAAKkC,GAAQ,GAIZ,KAAa,MAFnCpC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAKmC,GAAQ,GACvB98xB,KAAKq+xB,KAAKzD,EAAKiC,GAAQ,KAEU,IAAO,EACrDxk0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzD,EAAKkC,GAAQ,IAErBrC,IAAQ,IAAO,IAAMtyQ,KAAO,IAAO,EAChDA,IAAM,SAEN92c,EAAKrxE,KAAKq+xB,KAAKnD,EAAKqB,GAEpB9B,GADAA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAKsB,IACRx8xB,KAAKq+xB,KAAKlD,EAAKoB,GAAQ,EACpCnrtB,EAAKpxE,KAAKq+xB,KAAKlD,EAAKqB,GACpBnrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKtD,EAAK2B,GAAQ,EAElCjC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAK4B,GAAQ,GACvB38xB,KAAKq+xB,KAAKrD,EAAK0B,GAAQ,EACpCtrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKrD,EAAK2B,GAAQ,EAClCtrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKxD,EAAKgC,GAAQ,EAElCpC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAKiC,GAAQ,GACvB98xB,KAAKq+xB,KAAKvD,EAAK+B,GAAQ,EACpCzrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKvD,EAAKgC,GAAQ,EAKlC,IAAIyB,IAAQlm0B,GAJZg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1D,EAAKqC,GAAQ,GAIZ,KAAa,MAFnCvC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAKsC,GAAQ,GACvBj9xB,KAAKq+xB,KAAKzD,EAAKoC,GAAQ,KAEU,IAAO,EACrD3k0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzD,EAAKqC,GAAQ,IAErBxC,IAAQ,IAAO,IAAM8D,KAAO,IAAO,EAChDA,IAAM,SAENlttB,EAAKrxE,KAAKq+xB,KAAKhD,EAAKkB,GAEpB9B,GADAA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAKmB,IACRx8xB,KAAKq+xB,KAAK/C,EAAKiB,GAAQ,EACpCnrtB,EAAKpxE,KAAKq+xB,KAAK/C,EAAKkB,GACpBnrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKnD,EAAKwB,GAAQ,EAElCjC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAKyB,GAAQ,GACvB38xB,KAAKq+xB,KAAKlD,EAAKuB,GAAQ,EACpCtrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKlD,EAAKwB,GAAQ,EAClCtrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKtD,EAAK8B,GAAQ,EAElCpC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAK+B,GAAQ,GACvB98xB,KAAKq+xB,KAAKrD,EAAK6B,GAAQ,EACpCzrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKrD,EAAK8B,GAAQ,EAClCzrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKxD,EAAKmC,GAAQ,EAElCvC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAKoC,GAAQ,GACvBj9xB,KAAKq+xB,KAAKvD,EAAKkC,GAAQ,EACpC5rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKvD,EAAKmC,GAAQ,EAKlC,IAAIuB,IAAQnm0B,GAJZg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1D,EAAKwC,GAAQ,GAIZ,KAAa,MAFnC1C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAKyC,IAAQ,GACvBp9xB,KAAKq+xB,KAAKzD,EAAKuC,GAAQ,KAEU,IAAO,EACrD9k0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzD,EAAKwC,IAAQ,IAErB3C,IAAQ,IAAO,IAAM+D,KAAO,IAAO,EAChDA,IAAM,SAENnttB,EAAKrxE,KAAKq+xB,KAAK7C,EAAKe,GAEpB9B,GADAA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAKgB,IACRx8xB,KAAKq+xB,KAAK5C,EAAKc,GAAQ,EACpCnrtB,EAAKpxE,KAAKq+xB,KAAK5C,EAAKe,GACpBnrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKhD,EAAKqB,GAAQ,EAElCjC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAKsB,GAAQ,GACvB38xB,KAAKq+xB,KAAK/C,EAAKoB,GAAQ,EACpCtrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAK/C,EAAKqB,GAAQ,EAClCtrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKnD,EAAK2B,GAAQ,EAElCpC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAK4B,GAAQ,GACvB98xB,KAAKq+xB,KAAKlD,EAAK0B,GAAQ,EACpCzrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKlD,EAAK2B,GAAQ,EAClCzrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKtD,EAAKiC,GAAQ,EAElCvC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAKkC,GAAQ,GACvBj9xB,KAAKq+xB,KAAKrD,EAAKgC,GAAQ,EACpC5rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKrD,EAAKiC,GAAQ,EAClC5rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKxD,EAAKsC,GAAQ,EAElC1C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAKuC,IAAQ,GACvBp9xB,KAAKq+xB,KAAKvD,EAAKqC,GAAQ,EACpC/rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKvD,EAAKsC,IAAQ,EAKlC,IAAIqB,IAAQpm0B,GAJZg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1D,EAAK2C,IAAQ,GAIZ,KAAa,MAFnC7C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAK4C,IAAQ,GACvBv9xB,KAAKq+xB,KAAKzD,EAAK0C,IAAQ,KAEU,IAAO,EACrDjl0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzD,EAAK2C,IAAQ,IAErB9C,IAAQ,IAAO,IAAMgE,KAAO,IAAO,EAChDA,IAAM,SAENpttB,EAAKrxE,KAAKq+xB,KAAK1C,EAAKY,GAEpB9B,GADAA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAKa,IACRx8xB,KAAKq+xB,KAAKzC,EAAKW,GAAQ,EACpCnrtB,EAAKpxE,KAAKq+xB,KAAKzC,EAAKY,GACpBnrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK7C,EAAKkB,GAAQ,EAElCjC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAKmB,GAAQ,GACvB38xB,KAAKq+xB,KAAK5C,EAAKiB,GAAQ,EACpCtrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAK5C,EAAKkB,GAAQ,EAClCtrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKhD,EAAKwB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAKyB,GAAQ,GACvB98xB,KAAKq+xB,KAAK/C,EAAKuB,GAAQ,EACpCzrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAK/C,EAAKwB,GAAQ,EAClCzrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKnD,EAAK8B,GAAQ,EAElCvC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAK+B,GAAQ,GACvBj9xB,KAAKq+xB,KAAKlD,EAAK6B,GAAQ,EACpC5rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKlD,EAAK8B,GAAQ,EAClC5rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKtD,EAAKoC,GAAQ,EAElC1C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAKqC,IAAQ,GACvBp9xB,KAAKq+xB,KAAKrD,EAAKmC,GAAQ,EACpC/rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKrD,EAAKoC,IAAQ,EAClC/rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKxD,EAAKyC,IAAQ,EAElC7C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAK0C,IAAQ,GACvBv9xB,KAAKq+xB,KAAKvD,EAAKwC,IAAQ,EACpClstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKvD,EAAKyC,IAAQ,EAKlC,IAAImB,IAAQrm0B,GAJZg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1D,EAAK8C,IAAQ,GAIZ,KAAa,MAFnChD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAK+C,IAAQ,GACvB19xB,KAAKq+xB,KAAKzD,EAAK6C,IAAQ,KAEU,IAAO,EACrDpl0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzD,EAAK8C,IAAQ,IAErBjD,IAAQ,IAAO,IAAMiE,KAAO,IAAO,EAChDA,IAAM,SAENrttB,EAAKrxE,KAAKq+xB,KAAKvC,EAAKS,GAEpB9B,GADAA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAKU,IACRx8xB,KAAKq+xB,KAAKtC,EAAKQ,GAAQ,EACpCnrtB,EAAKpxE,KAAKq+xB,KAAKtC,EAAKS,GACpBnrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK1C,EAAKe,GAAQ,EAElCjC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAKgB,GAAQ,GACvB38xB,KAAKq+xB,KAAKzC,EAAKc,GAAQ,EACpCtrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKzC,EAAKe,GAAQ,EAClCtrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK7C,EAAKqB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAKsB,GAAQ,GACvB98xB,KAAKq+xB,KAAK5C,EAAKoB,GAAQ,EACpCzrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAK5C,EAAKqB,GAAQ,EAClCzrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKhD,EAAK2B,GAAQ,EAElCvC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAK4B,GAAQ,GACvBj9xB,KAAKq+xB,KAAK/C,EAAK0B,GAAQ,EACpC5rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAK/C,EAAK2B,GAAQ,EAClC5rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKnD,EAAKiC,GAAQ,EAElC1C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAKkC,IAAQ,GACvBp9xB,KAAKq+xB,KAAKlD,EAAKgC,GAAQ,EACpC/rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKlD,EAAKiC,IAAQ,EAClC/rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKtD,EAAKuC,IAAQ,EAElC7C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAKwC,IAAQ,GACvBv9xB,KAAKq+xB,KAAKrD,EAAKsC,IAAQ,EACpClstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKrD,EAAKuC,IAAQ,EAClClstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKxD,EAAK4C,IAAQ,EAElChD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAK6C,IAAQ,GACvB19xB,KAAKq+xB,KAAKvD,EAAK2C,IAAQ,EACpCrstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKvD,EAAK4C,IAAQ,EAKlC,IAAIiB,IAAQtm0B,GAJZg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1D,EAAKiD,IAAQ,GAIZ,KAAa,MAFnCnD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAKkD,IAAQ,GACvB79xB,KAAKq+xB,KAAKzD,EAAKgD,IAAQ,KAEU,IAAO,EACrDvl0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzD,EAAKiD,IAAQ,IAErBpD,IAAQ,IAAO,IAAMkE,KAAO,IAAO,EAChDA,IAAM,SAENtttB,EAAKrxE,KAAKq+xB,KAAKpC,EAAKM,GAEpB9B,GADAA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAKO,IACRx8xB,KAAKq+xB,KAAKnC,EAAKK,GAAQ,EACpCnrtB,EAAKpxE,KAAKq+xB,KAAKnC,EAAKM,GACpBnrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKvC,EAAKY,GAAQ,EAElCjC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAKa,GAAQ,GACvB38xB,KAAKq+xB,KAAKtC,EAAKW,GAAQ,EACpCtrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKtC,EAAKY,GAAQ,EAClCtrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK1C,EAAKkB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAKmB,GAAQ,GACvB98xB,KAAKq+xB,KAAKzC,EAAKiB,GAAQ,EACpCzrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKzC,EAAKkB,GAAQ,EAClCzrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK7C,EAAKwB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAKyB,GAAQ,GACvBj9xB,KAAKq+xB,KAAK5C,EAAKuB,GAAQ,EACpC5rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAK5C,EAAKwB,GAAQ,EAClC5rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKhD,EAAK8B,GAAQ,EAElC1C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAK+B,IAAQ,GACvBp9xB,KAAKq+xB,KAAK/C,EAAK6B,GAAQ,EACpC/rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAK/C,EAAK8B,IAAQ,EAClC/rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKnD,EAAKoC,IAAQ,EAElC7C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAKqC,IAAQ,GACvBv9xB,KAAKq+xB,KAAKlD,EAAKmC,IAAQ,EACpClstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKlD,EAAKoC,IAAQ,EAClClstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKtD,EAAK0C,IAAQ,EAElChD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAK2C,IAAQ,GACvB19xB,KAAKq+xB,KAAKrD,EAAKyC,IAAQ,EACpCrstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKrD,EAAK0C,IAAQ,EAClCrstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKxD,EAAK+C,IAAQ,EAElCnD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAKgD,IAAQ,GACvB79xB,KAAKq+xB,KAAKvD,EAAK8C,IAAQ,EACpCxstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKvD,EAAK+C,IAAQ,EAKlC,IAAIe,IAAQvm0B,GAJZg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1D,EAAKoD,IAAQ,GAIZ,KAAa,MAFnCtD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAKqD,IAAQ,GACvBh+xB,KAAKq+xB,KAAKzD,EAAKmD,IAAQ,KAEU,IAAO,EACrD1l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzD,EAAKoD,IAAQ,IAErBvD,IAAQ,IAAO,IAAMmE,KAAO,IAAO,EAChDA,IAAM,SAENvttB,EAAKrxE,KAAKq+xB,KAAKjC,EAAKG,GAEpB9B,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAKI,IACRx8xB,KAAKq+xB,KAAKhC,EAAKE,GAAQ,EACpCnrtB,EAAKpxE,KAAKq+xB,KAAKhC,EAAKG,GACpBnrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKpC,EAAKS,GAAQ,EAElCjC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAKU,GAAQ,GACvB38xB,KAAKq+xB,KAAKnC,EAAKQ,GAAQ,EACpCtrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKnC,EAAKS,GAAQ,EAClCtrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKvC,EAAKe,GAAQ,EAElCpC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAKgB,GAAQ,GACvB98xB,KAAKq+xB,KAAKtC,EAAKc,GAAQ,EACpCzrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKtC,EAAKe,GAAQ,EAClCzrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK1C,EAAKqB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAKsB,GAAQ,GACvBj9xB,KAAKq+xB,KAAKzC,EAAKoB,GAAQ,EACpC5rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKzC,EAAKqB,GAAQ,EAClC5rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK7C,EAAK2B,GAAQ,EAElC1C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAK4B,IAAQ,GACvBp9xB,KAAKq+xB,KAAK5C,EAAK0B,GAAQ,EACpC/rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAK5C,EAAK2B,IAAQ,EAClC/rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKhD,EAAKiC,IAAQ,EAElC7C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAKkC,IAAQ,GACvBv9xB,KAAKq+xB,KAAK/C,EAAKgC,IAAQ,EACpClstB,EAAMA,EAAKpxE,KAAKq+xB,KAAK/C,EAAKiC,IAAQ,EAClClstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKnD,EAAKuC,IAAQ,EAElChD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAKwC,IAAQ,GACvB19xB,KAAKq+xB,KAAKlD,EAAKsC,IAAQ,EACpCrstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKlD,EAAKuC,IAAQ,EAClCrstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKtD,EAAK6C,IAAQ,EAElCnD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAK8C,IAAQ,GACvB79xB,KAAKq+xB,KAAKrD,EAAK4C,IAAQ,EACpCxstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKrD,EAAK6C,IAAQ,EAClCxstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKxD,EAAKkD,IAAQ,EAElCtD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAKmD,IAAQ,GACvBh+xB,KAAKq+xB,KAAKvD,EAAKiD,IAAQ,EACpC3stB,EAAMA,EAAKpxE,KAAKq+xB,KAAKvD,EAAKkD,IAAQ,EAKlC,IAAIa,IAAQxm0B,GAJZg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1D,EAAKuD,IAAQ,GAIZ,KAAa,MAFnCzD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAKwD,IAAQ,GACvBn+xB,KAAKq+xB,KAAKzD,EAAKsD,IAAQ,KAEU,IAAO,EACrD7l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzD,EAAKuD,IAAQ,IAErB1D,IAAQ,IAAO,IAAMoE,KAAO,IAAO,EAChDA,IAAM,SAENxttB,EAAKrxE,KAAKq+xB,KAAKjC,EAAKM,GAEpBjC,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAKO,IACR38xB,KAAKq+xB,KAAKhC,EAAKK,GAAQ,EACpCtrtB,EAAKpxE,KAAKq+xB,KAAKhC,EAAKM,GACpBtrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKpC,EAAKY,GAAQ,EAElCpC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAKa,GAAQ,GACvB98xB,KAAKq+xB,KAAKnC,EAAKW,GAAQ,EACpCzrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKnC,EAAKY,GAAQ,EAClCzrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKvC,EAAKkB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAKmB,GAAQ,GACvBj9xB,KAAKq+xB,KAAKtC,EAAKiB,GAAQ,EACpC5rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKtC,EAAKkB,GAAQ,EAClC5rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK1C,EAAKwB,GAAQ,EAElC1C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAKyB,IAAQ,GACvBp9xB,KAAKq+xB,KAAKzC,EAAKuB,GAAQ,EACpC/rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKzC,EAAKwB,IAAQ,EAClC/rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK7C,EAAK8B,IAAQ,EAElC7C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAK+B,IAAQ,GACvBv9xB,KAAKq+xB,KAAK5C,EAAK6B,IAAQ,EACpClstB,EAAMA,EAAKpxE,KAAKq+xB,KAAK5C,EAAK8B,IAAQ,EAClClstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKhD,EAAKoC,IAAQ,EAElChD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAKqC,IAAQ,GACvB19xB,KAAKq+xB,KAAK/C,EAAKmC,IAAQ,EACpCrstB,EAAMA,EAAKpxE,KAAKq+xB,KAAK/C,EAAKoC,IAAQ,EAClCrstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKnD,EAAK0C,IAAQ,EAElCnD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAK2C,IAAQ,GACvB79xB,KAAKq+xB,KAAKlD,EAAKyC,IAAQ,EACpCxstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKlD,EAAK0C,IAAQ,EAClCxstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKtD,EAAKgD,IAAQ,EAElCtD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAKiD,IAAQ,GACvBh+xB,KAAKq+xB,KAAKrD,EAAK+C,IAAQ,EACpC3stB,EAAMA,EAAKpxE,KAAKq+xB,KAAKrD,EAAKgD,IAAQ,EAKlC,IAAIc,IAASzm0B,GAJbg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAKxD,EAAKqD,IAAQ,GAIX,KAAa,MAFpCzD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAKsD,IAAQ,GACvBn+xB,KAAKq+xB,KAAKvD,EAAKoD,IAAQ,KAEW,IAAO,EACtD7l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKvD,EAAKqD,IAAQ,IAErB1D,IAAQ,IAAO,IAAMqE,KAAQ,IAAO,EACjDA,IAAO,SAEPzttB,EAAKrxE,KAAKq+xB,KAAKjC,EAAKS,GAEpBpC,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAKU,IACR98xB,KAAKq+xB,KAAKhC,EAAKQ,GAAQ,EACpCzrtB,EAAKpxE,KAAKq+xB,KAAKhC,EAAKS,GACpBzrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKpC,EAAKe,GAAQ,EAElCvC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAKgB,GAAQ,GACvBj9xB,KAAKq+xB,KAAKnC,EAAKc,GAAQ,EACpC5rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKnC,EAAKe,GAAQ,EAClC5rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKvC,EAAKqB,GAAQ,EAElC1C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAKsB,IAAQ,GACvBp9xB,KAAKq+xB,KAAKtC,EAAKoB,GAAQ,EACpC/rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKtC,EAAKqB,IAAQ,EAClC/rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK1C,EAAK2B,IAAQ,EAElC7C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAK4B,IAAQ,GACvBv9xB,KAAKq+xB,KAAKzC,EAAK0B,IAAQ,EACpClstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKzC,EAAK2B,IAAQ,EAClClstB,EAAMA,EAAKrxE,KAAKq+xB,KAAK7C,EAAKiC,IAAQ,EAElChD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAKkC,IAAQ,GACvB19xB,KAAKq+xB,KAAK5C,EAAKgC,IAAQ,EACpCrstB,EAAMA,EAAKpxE,KAAKq+xB,KAAK5C,EAAKiC,IAAQ,EAClCrstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKhD,EAAKuC,IAAQ,EAElCnD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAKwC,IAAQ,GACvB79xB,KAAKq+xB,KAAK/C,EAAKsC,IAAQ,EACpCxstB,EAAMA,EAAKpxE,KAAKq+xB,KAAK/C,EAAKuC,IAAQ,EAClCxstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKnD,EAAK6C,IAAQ,EAElCtD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAK8C,IAAQ,GACvBh+xB,KAAKq+xB,KAAKlD,EAAK4C,IAAQ,EACpC3stB,EAAMA,EAAKpxE,KAAKq+xB,KAAKlD,EAAK6C,IAAQ,EAKlC,IAAIe,IAAS1m0B,GAJbg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAKtD,EAAKmD,IAAQ,GAIX,KAAa,MAFpCzD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAKoD,IAAQ,GACvBn+xB,KAAKq+xB,KAAKrD,EAAKkD,IAAQ,KAEW,IAAO,EACtD7l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKrD,EAAKmD,IAAQ,IAErB1D,IAAQ,IAAO,IAAMsE,KAAQ,IAAO,EACjDA,IAAO,SAEP1ttB,EAAKrxE,KAAKq+xB,KAAKjC,EAAKY,GAEpBvC,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAKa,IACRj9xB,KAAKq+xB,KAAKhC,EAAKW,GAAQ,EACpC5rtB,EAAKpxE,KAAKq+xB,KAAKhC,EAAKY,GACpB5rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKpC,EAAKkB,GAAQ,EAElC1C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAKmB,IAAQ,GACvBp9xB,KAAKq+xB,KAAKnC,EAAKiB,GAAQ,EACpC/rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKnC,EAAKkB,IAAQ,EAClC/rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKvC,EAAKwB,IAAQ,EAElC7C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAKyB,IAAQ,GACvBv9xB,KAAKq+xB,KAAKtC,EAAKuB,IAAQ,EACpClstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKtC,EAAKwB,IAAQ,EAClClstB,EAAMA,EAAKrxE,KAAKq+xB,KAAK1C,EAAK8B,IAAQ,EAElChD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAK+B,IAAQ,GACvB19xB,KAAKq+xB,KAAKzC,EAAK6B,IAAQ,EACpCrstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKzC,EAAK8B,IAAQ,EAClCrstB,EAAMA,EAAKrxE,KAAKq+xB,KAAK7C,EAAKoC,IAAQ,EAElCnD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAKqC,IAAQ,GACvB79xB,KAAKq+xB,KAAK5C,EAAKmC,IAAQ,EACpCxstB,EAAMA,EAAKpxE,KAAKq+xB,KAAK5C,EAAKoC,IAAQ,EAClCxstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKhD,EAAK0C,IAAQ,EAElCtD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAK2C,IAAQ,GACvBh+xB,KAAKq+xB,KAAK/C,EAAKyC,IAAQ,EACpC3stB,EAAMA,EAAKpxE,KAAKq+xB,KAAK/C,EAAK0C,IAAQ,EAKlC,IAAIgB,IAAS3m0B,GAJbg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAKnD,EAAKgD,IAAQ,GAIX,KAAa,MAFpCzD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAKiD,IAAQ,GACvBn+xB,KAAKq+xB,KAAKlD,EAAK+C,IAAQ,KAEW,IAAO,EACtD7l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKlD,EAAKgD,IAAQ,IAErB1D,IAAQ,IAAO,IAAMuE,KAAQ,IAAO,EACjDA,IAAO,SAEP3ttB,EAAKrxE,KAAKq+xB,KAAKjC,EAAKe,GAEpB1C,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAKgB,KACRp9xB,KAAKq+xB,KAAKhC,EAAKc,GAAQ,EACpC/rtB,EAAKpxE,KAAKq+xB,KAAKhC,EAAKe,IACpB/rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKpC,EAAKqB,IAAQ,EAElC7C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAKsB,IAAQ,GACvBv9xB,KAAKq+xB,KAAKnC,EAAKoB,IAAQ,EACpClstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKnC,EAAKqB,IAAQ,EAClClstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKvC,EAAK2B,IAAQ,EAElChD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAK4B,IAAQ,GACvB19xB,KAAKq+xB,KAAKtC,EAAK0B,IAAQ,EACpCrstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKtC,EAAK2B,IAAQ,EAClCrstB,EAAMA,EAAKrxE,KAAKq+xB,KAAK1C,EAAKiC,IAAQ,EAElCnD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAKkC,IAAQ,GACvB79xB,KAAKq+xB,KAAKzC,EAAKgC,IAAQ,EACpCxstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKzC,EAAKiC,IAAQ,EAClCxstB,EAAMA,EAAKrxE,KAAKq+xB,KAAK7C,EAAKuC,IAAQ,EAElCtD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAKwC,IAAQ,GACvBh+xB,KAAKq+xB,KAAK5C,EAAKsC,IAAQ,EACpC3stB,EAAMA,EAAKpxE,KAAKq+xB,KAAK5C,EAAKuC,IAAQ,EAKlC,IAAIiB,IAAS5m0B,GAJbg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAKhD,EAAK6C,IAAQ,GAIX,KAAa,MAFpCzD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAK8C,IAAQ,GACvBn+xB,KAAKq+xB,KAAK/C,EAAK4C,IAAQ,KAEW,IAAO,EACtD7l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAK/C,EAAK6C,IAAQ,IAErB1D,IAAQ,IAAO,IAAMwE,KAAQ,IAAO,EACjDA,IAAO,SAEP5ttB,EAAKrxE,KAAKq+xB,KAAKjC,EAAKkB,IAEpB7C,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAKmB,KACRv9xB,KAAKq+xB,KAAKhC,EAAKiB,IAAQ,EACpClstB,EAAKpxE,KAAKq+xB,KAAKhC,EAAKkB,IACpBlstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKpC,EAAKwB,IAAQ,EAElChD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAKyB,IAAQ,GACvB19xB,KAAKq+xB,KAAKnC,EAAKuB,IAAQ,EACpCrstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKnC,EAAKwB,IAAQ,EAClCrstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKvC,EAAK8B,IAAQ,EAElCnD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAK+B,IAAQ,GACvB79xB,KAAKq+xB,KAAKtC,EAAK6B,IAAQ,EACpCxstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKtC,EAAK8B,IAAQ,EAClCxstB,EAAMA,EAAKrxE,KAAKq+xB,KAAK1C,EAAKoC,IAAQ,EAElCtD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAKqC,IAAQ,GACvBh+xB,KAAKq+xB,KAAKzC,EAAKmC,IAAQ,EACpC3stB,EAAMA,EAAKpxE,KAAKq+xB,KAAKzC,EAAKoC,IAAQ,EAKlC,IAAIkB,IAAS7m0B,GAJbg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK7C,EAAK0C,IAAQ,GAIX,KAAa,MAFpCzD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAK2C,IAAQ,GACvBn+xB,KAAKq+xB,KAAK5C,EAAKyC,IAAQ,KAEW,IAAO,EACtD7l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAK5C,EAAK0C,IAAQ,IAErB1D,IAAQ,IAAO,IAAMyE,KAAQ,IAAO,EACjDA,IAAO,SAEP7ttB,EAAKrxE,KAAKq+xB,KAAKjC,EAAKqB,IAEpBhD,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAKsB,KACR19xB,KAAKq+xB,KAAKhC,EAAKoB,IAAQ,EACpCrstB,EAAKpxE,KAAKq+xB,KAAKhC,EAAKqB,IACpBrstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKpC,EAAK2B,IAAQ,EAElCnD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAK4B,IAAQ,GACvB79xB,KAAKq+xB,KAAKnC,EAAK0B,IAAQ,EACpCxstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKnC,EAAK2B,IAAQ,EAClCxstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKvC,EAAKiC,IAAQ,EAElCtD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAKkC,IAAQ,GACvBh+xB,KAAKq+xB,KAAKtC,EAAKgC,IAAQ,EACpC3stB,EAAMA,EAAKpxE,KAAKq+xB,KAAKtC,EAAKiC,IAAQ,EAKlC,IAAImB,IAAS9m0B,GAJbg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1C,EAAKuC,IAAQ,GAIX,KAAa,MAFpCzD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAKwC,IAAQ,GACvBn+xB,KAAKq+xB,KAAKzC,EAAKsC,IAAQ,KAEW,IAAO,EACtD7l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzC,EAAKuC,IAAQ,IAErB1D,IAAQ,IAAO,IAAM0E,KAAQ,IAAO,EACjDA,IAAO,SAEP9ttB,EAAKrxE,KAAKq+xB,KAAKjC,EAAKwB,IAEpBnD,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAKyB,KACR79xB,KAAKq+xB,KAAKhC,EAAKuB,IAAQ,EACpCxstB,EAAKpxE,KAAKq+xB,KAAKhC,EAAKwB,IACpBxstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKpC,EAAK8B,IAAQ,EAElCtD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAK+B,IAAQ,GACvBh+xB,KAAKq+xB,KAAKnC,EAAK6B,IAAQ,EACpC3stB,EAAMA,EAAKpxE,KAAKq+xB,KAAKnC,EAAK8B,IAAQ,EAKlC,IAAIoB,IAAS/m0B,GAJbg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAKvC,EAAKoC,IAAQ,GAIX,KAAa,MAFpCzD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAKqC,IAAQ,GACvBn+xB,KAAKq+xB,KAAKtC,EAAKmC,IAAQ,KAEW,IAAO,EACtD7l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKtC,EAAKoC,IAAQ,IAErB1D,IAAQ,IAAO,IAAM2E,KAAQ,IAAO,EACjDA,IAAO,SAEP/ttB,EAAKrxE,KAAKq+xB,KAAKjC,EAAK2B,IAEpBtD,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAK4B,KACRh+xB,KAAKq+xB,KAAKhC,EAAK0B,IAAQ,EACpC3stB,EAAKpxE,KAAKq+xB,KAAKhC,EAAK2B,IAKpB,IAAIqB,IAAShn0B,GAJbg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAKpC,EAAKiC,IAAQ,GAIX,KAAa,MAFpCzD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAKkC,IAAQ,GACvBn+xB,KAAKq+xB,KAAKnC,EAAKgC,IAAQ,KAEW,IAAO,EACtD7l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKnC,EAAKiC,IAAQ,IAErB1D,IAAQ,IAAO,IAAM4E,KAAQ,IAAO,EACjDA,IAAO,SAMP,IAAIC,IAASjn0B,GAJbg5G,EAAKrxE,KAAKq+xB,KAAKjC,EAAK8B,KAIG,KAAa,MAFpCzD,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAK+B,KACRn+xB,KAAKq+xB,KAAKhC,EAAK6B,IAAQ,KAEW,IAAO,EA0BtD,OAzBA7l0B,IAFA+4G,EAAKpxE,KAAKq+xB,KAAKhC,EAAK8B,MAEP1D,IAAQ,IAAO,IAAM6E,KAAQ,IAAO,EACjDA,IAAO,SACPpn0B,EAAE,GAAKkm0B,GACPlm0B,EAAE,GAAKom0B,GACPpm0B,EAAE,GAAKiwjB,GACPjwjB,EAAE,GAAKqm0B,GACPrm0B,EAAE,GAAKsm0B,GACPtm0B,EAAE,GAAKum0B,GACPvm0B,EAAE,GAAKwm0B,GACPxm0B,EAAE,GAAKym0B,GACPzm0B,EAAE,GAAK0m0B,GACP1m0B,EAAE,GAAK2m0B,GACP3m0B,EAAE,IAAM4m0B,GACR5m0B,EAAE,IAAM6m0B,GACR7m0B,EAAE,IAAM8m0B,GACR9m0B,EAAE,IAAM+m0B,GACR/m0B,EAAE,IAAMgn0B,GACRhn0B,EAAE,IAAMin0B,GACRjn0B,EAAE,IAAMkn0B,GACRln0B,EAAE,IAAMmn0B,GACRnn0B,EAAE,IAAMon0B,GACE,IAANjn0B,IACFH,EAAE,IAAMG,EACRqoC,EAAI1oC,UAEC0oC,CACT,EAOA,SAASk/xB,EAAU3ktB,EAAM/hF,EAAKwH,GAC5BA,EAAIL,SAAWnH,EAAImH,SAAW46E,EAAK56E,SACnCK,EAAI1oC,OAASijH,EAAKjjH,OAASkhC,EAAIlhC,OAI/B,IAFA,IAAI2oC,EAAQ,EACRg/xB,EAAU,EACLttyB,EAAI,EAAGA,EAAIqO,EAAI1oC,OAAS,EAAGq6B,IAAK,CAGvC,IAAIulyB,EAAS+H,EACbA,EAAU,EAGV,IAFA,IAAI9H,EAAgB,SAARl3xB,EACRm3xB,EAAO93xB,KAAKuZ,IAAIlnB,EAAG6G,EAAIlhC,OAAS,GAC3B46B,EAAIoN,KAAKoa,IAAI,EAAG/nB,EAAI4oF,EAAKjjH,OAAS,GAAI46B,GAAKklyB,EAAMllyB,IAAK,CAC7D,IAAIx6B,EAAIi6B,EAAIO,EAGRn7B,GAFoB,EAAhBwjH,EAAKs+a,MAAMnhiB,KACI,EAAf8gC,EAAIqggB,MAAM3mgB,IAGdy+E,EAAS,SAAJ55G,EAGTog0B,EAAa,UADbxmtB,EAAMA,EAAKwmtB,EAAS,GAIpB8H,IAFA/H,GAHAA,EAAUA,GAAWng0B,EAAI,SAAa,GAAM,IAGxB45G,IAAO,IAAO,KAEZ,GACtBumtB,GAAU,QACZ,CACAl3xB,EAAI64f,MAAMlngB,GAAKwlyB,EACfl3xB,EAAQi3xB,EACRA,EAAS+H,CACX,CAOA,OANc,IAAVh/xB,EACFD,EAAI64f,MAAMlngB,GAAKsO,EAEfD,EAAI1oC,SAGC0oC,EAAImnyB,QACb,CAEA,SAAStI,EAAYtktB,EAAM/hF,EAAKwH,GAI9B,OAAOk/xB,EAAS3ktB,EAAM/hF,EAAKwH,EAC7B,CAqBA,SAAS8+xB,EAAMj9zB,EAAGP,GAChB5K,KAAKmL,EAAIA,EACTnL,KAAK4K,EAAIA,CACX,CA1EKg+B,KAAKq+xB,OACR7D,EAAc7C,GAmDhBrB,EAAGh/zB,UAAUoo0B,MAAQ,SAAgBxmyB,EAAKwH,GACxC,IACI/iB,EAAMvmB,KAAKY,OAASkhC,EAAIlhC,OAW5B,OAVoB,KAAhBZ,KAAKY,QAAgC,KAAfkhC,EAAIlhC,OACtBwi0B,EAAYpj0B,KAAM8hC,EAAKwH,GACpB/iB,EAAM,GACTg6yB,EAAWvg0B,KAAM8hC,EAAKwH,GACnB/iB,EAAM,KACTiizB,EAASxo0B,KAAM8hC,EAAKwH,GAEpB6+xB,EAAWno0B,KAAM8hC,EAAKwH,EAIhC,EAUA8+xB,EAAKlo0B,UAAUuo0B,QAAU,SAAkBp6wB,GAGzC,IAFA,IAAI5tD,EAAI,IAAI6hB,MAAM+rC,GACdhB,EAAI6xwB,EAAGh/zB,UAAUoh0B,WAAWjzwB,GAAK,EAC5BrtD,EAAI,EAAGA,EAAIqtD,EAAGrtD,IACrBP,EAAEO,GAAKhB,KAAK0o0B,OAAO1n0B,EAAGqsD,EAAGgB,GAG3B,OAAO5tD,CACT,EAGA2n0B,EAAKlo0B,UAAUwo0B,OAAS,SAAiBv9zB,EAAGkiD,EAAGgB,GAC7C,GAAU,IAANljD,GAAWA,IAAMkjD,EAAI,EAAG,OAAOljD,EAGnC,IADA,IAAIw9zB,EAAK,EACA3n0B,EAAI,EAAGA,EAAIqsD,EAAGrsD,IACrB2n0B,IAAW,EAAJx9zB,IAAWkiD,EAAIrsD,EAAI,EAC1BmK,IAAM,EAGR,OAAOw9zB,CACT,EAIAP,EAAKlo0B,UAAU0o0B,QAAU,SAAkBC,EAAKC,EAAKC,EAAKC,EAAMC,EAAM56wB,GACpE,IAAK,IAAIrtD,EAAI,EAAGA,EAAIqtD,EAAGrtD,IACrBgo0B,EAAKho0B,GAAK8n0B,EAAID,EAAI7n0B,IAClBio0B,EAAKjo0B,GAAK+n0B,EAAIF,EAAI7n0B,GAEtB,EAEAon0B,EAAKlo0B,UAAUojI,UAAY,SAAoBwlsB,EAAKC,EAAKC,EAAMC,EAAM56wB,EAAGw6wB,GACtE7o0B,KAAK4o0B,QAAQC,EAAKC,EAAKC,EAAKC,EAAMC,EAAM56wB,GAExC,IAAK,IAAIn1B,EAAI,EAAGA,EAAIm1B,EAAGn1B,IAAM,EAM3B,IALA,IAAIm0B,EAAIn0B,GAAK,EAETgwyB,EAAQtgyB,KAAKqmf,IAAI,EAAIrmf,KAAK2sG,GAAKloF,GAC/B87wB,EAAQvgyB,KAAKsmf,IAAI,EAAItmf,KAAK2sG,GAAKloF,GAE1B10B,EAAI,EAAGA,EAAI01B,EAAG11B,GAAK00B,EAI1B,IAHA,IAAI+7wB,EAASF,EACTG,EAASF,EAEJ3tyB,EAAI,EAAGA,EAAItC,EAAGsC,IAAK,CAC1B,IAAI8pJ,EAAK0jpB,EAAKrwyB,EAAI6C,GACd8tyB,EAAKL,EAAKtwyB,EAAI6C,GAEd+tyB,EAAKP,EAAKrwyB,EAAI6C,EAAItC,GAClBswyB,EAAKP,EAAKtwyB,EAAI6C,EAAItC,GAElBuwyB,EAAKL,EAASG,EAAKF,EAASG,EAEhCA,EAAKJ,EAASI,EAAKH,EAASE,EAC5BA,EAAKE,EAELT,EAAKrwyB,EAAI6C,GAAK8pJ,EAAKikpB,EACnBN,EAAKtwyB,EAAI6C,GAAK8tyB,EAAKE,EAEnBR,EAAKrwyB,EAAI6C,EAAItC,GAAKosJ,EAAKikpB,EACvBN,EAAKtwyB,EAAI6C,EAAItC,GAAKowyB,EAAKE,EAGnBhuyB,IAAM6xB,IACRo8wB,EAAKP,EAAQE,EAASD,EAAQE,EAE9BA,EAASH,EAAQG,EAASF,EAAQC,EAClCA,EAASK,EAEb,CAGN,EAEArB,EAAKlo0B,UAAUwp0B,YAAc,SAAsB7o0B,EAAGm6B,GACpD,IAAIqzB,EAAqB,EAAjBzlB,KAAKoa,IAAIhoB,EAAGn6B,GAChB8o0B,EAAU,EAAJt7wB,EACNrtD,EAAI,EACR,IAAKqtD,EAAIA,EAAI,EAAI,EAAGA,EAAGA,KAAU,EAC/BrtD,IAGF,OAAO,GAAKA,EAAI,EAAI2o0B,CACtB,EAEAvB,EAAKlo0B,UAAU0p0B,UAAY,SAAoBd,EAAKC,EAAK16wB,GACvD,KAAIA,GAAK,GAET,IAAK,IAAIrtD,EAAI,EAAGA,EAAIqtD,EAAI,EAAGrtD,IAAK,CAC9B,IAAIP,EAAIqo0B,EAAI9n0B,GAEZ8n0B,EAAI9n0B,GAAK8n0B,EAAIz6wB,EAAIrtD,EAAI,GACrB8n0B,EAAIz6wB,EAAIrtD,EAAI,GAAKP,EAEjBA,EAAIso0B,EAAI/n0B,GAER+n0B,EAAI/n0B,IAAM+n0B,EAAI16wB,EAAIrtD,EAAI,GACtB+n0B,EAAI16wB,EAAIrtD,EAAI,IAAMP,CACpB,CACF,EAEA2n0B,EAAKlo0B,UAAU2p0B,aAAe,SAAuBhpU,EAAIxyc,GAEvD,IADA,IAAI9kB,EAAQ,EACHvoC,EAAI,EAAGA,EAAIqtD,EAAI,EAAGrtD,IAAK,CAC9B,IAAIusD,EAAoC,KAAhC3kB,KAAKE,MAAM+3d,EAAG,EAAI7/f,EAAI,GAAKqtD,GACjCzlB,KAAKE,MAAM+3d,EAAG,EAAI7/f,GAAKqtD,GACvB9kB,EAEFs3d,EAAG7/f,GAAS,SAAJusD,EAGNhkB,EADEgkB,EAAI,SACE,EAEAA,EAAI,SAAY,CAE5B,CAEA,OAAOszc,CACT,EAEAunU,EAAKlo0B,UAAU4p0B,WAAa,SAAqBjpU,EAAIt6e,EAAKuizB,EAAKz6wB,GAE7D,IADA,IAAI9kB,EAAQ,EACHvoC,EAAI,EAAGA,EAAIulB,EAAKvlB,IACvBuoC,GAAyB,EAARs3d,EAAG7/f,GAEpB8n0B,EAAI,EAAI9n0B,GAAa,KAARuoC,EAAgBA,KAAkB,GAC/Cu/xB,EAAI,EAAI9n0B,EAAI,GAAa,KAARuoC,EAAgBA,KAAkB,GAIrD,IAAKvoC,EAAI,EAAIulB,EAAKvlB,EAAIqtD,IAAKrtD,EACzB8n0B,EAAI9n0B,GAAK,EAGXkluB,EAAiB,IAAV38rB,GACP28rB,EAA6B,MAAb,KAAR38rB,GACV,EAEA6+xB,EAAKlo0B,UAAUsrT,KAAO,SAAen9P,GAEnC,IADA,IAAI07wB,EAAK,IAAIznzB,MAAM+rC,GACVrtD,EAAI,EAAGA,EAAIqtD,EAAGrtD,IACrB+o0B,EAAG/o0B,GAAK,EAGV,OAAO+o0B,CACT,EAEA3B,EAAKlo0B,UAAUmo0B,KAAO,SAAel9zB,EAAGP,EAAG0+B,GACzC,IAAI+kB,EAAI,EAAIruD,KAAK0p0B,YAAYv+zB,EAAEvK,OAAQgK,EAAEhK,QAErCio0B,EAAM7o0B,KAAKyo0B,QAAQp6wB,GAEnB3zB,EAAI16B,KAAKwrT,KAAKn9P,GAEdy6wB,EAAM,IAAIxmzB,MAAM+rC,GAChB27wB,EAAO,IAAI1nzB,MAAM+rC,GACjB47wB,EAAO,IAAI3nzB,MAAM+rC,GAEjB67wB,EAAO,IAAI5nzB,MAAM+rC,GACjB87wB,EAAQ,IAAI7nzB,MAAM+rC,GAClB+7wB,EAAQ,IAAI9nzB,MAAM+rC,GAElBg8wB,EAAO/gyB,EAAI64f,MACfkoS,EAAKzp0B,OAASytD,EAEdruD,KAAK8p0B,WAAW3+zB,EAAEg3hB,MAAOh3hB,EAAEvK,OAAQko0B,EAAKz6wB,GACxCruD,KAAK8p0B,WAAWl/zB,EAAEu3hB,MAAOv3hB,EAAEhK,OAAQsp0B,EAAM77wB,GAEzCruD,KAAKsjI,UAAUwlsB,EAAKpuyB,EAAGsvyB,EAAMC,EAAM57wB,EAAGw6wB,GACtC7o0B,KAAKsjI,UAAU4msB,EAAMxvyB,EAAGyvyB,EAAOC,EAAO/7wB,EAAGw6wB,GAEzC,IAAK,IAAI7n0B,EAAI,EAAGA,EAAIqtD,EAAGrtD,IAAK,CAC1B,IAAIyo0B,EAAKO,EAAKhp0B,GAAKmp0B,EAAMnp0B,GAAKip0B,EAAKjp0B,GAAKop0B,EAAMpp0B,GAC9Cip0B,EAAKjp0B,GAAKgp0B,EAAKhp0B,GAAKop0B,EAAMpp0B,GAAKip0B,EAAKjp0B,GAAKmp0B,EAAMnp0B,GAC/Cgp0B,EAAKhp0B,GAAKyo0B,CACZ,CASA,OAPAzp0B,KAAK4p0B,UAAUI,EAAMC,EAAM57wB,GAC3BruD,KAAKsjI,UAAU0msB,EAAMC,EAAMI,EAAM3vyB,EAAG2zB,EAAGw6wB,GACvC7o0B,KAAK4p0B,UAAUS,EAAM3vyB,EAAG2zB,GACxBruD,KAAK6p0B,aAAaQ,EAAMh8wB,GAExB/kB,EAAIL,SAAW99B,EAAE89B,SAAWr+B,EAAEq+B,SAC9BK,EAAI1oC,OAASuK,EAAEvK,OAASgK,EAAEhK,OACnB0oC,EAAImnyB,QACb,EAGAvR,EAAGh/zB,UAAU+8G,IAAM,SAAcn7E,GAC/B,IAAIwH,EAAM,IAAI41xB,EAAG,MAEjB,OADA51xB,EAAI64f,MAAQ,IAAI7/gB,MAAMtiB,KAAKY,OAASkhC,EAAIlhC,QACjCZ,KAAKso0B,MAAMxmyB,EAAKwH,EACzB,EAGA41xB,EAAGh/zB,UAAUoq0B,KAAO,SAAexoyB,GACjC,IAAIwH,EAAM,IAAI41xB,EAAG,MAEjB,OADA51xB,EAAI64f,MAAQ,IAAI7/gB,MAAMtiB,KAAKY,OAASkhC,EAAIlhC,QACjCun0B,EAAWno0B,KAAM8hC,EAAKwH,EAC/B,EAGA41xB,EAAGh/zB,UAAU+m0B,KAAO,SAAenlyB,GACjC,OAAO9hC,KAAKixC,QAAQq3xB,MAAMxmyB,EAAK9hC,KACjC,EAEAk/zB,EAAGh/zB,UAAU8/zB,MAAQ,SAAgBl+xB,GACnC,IAAIsgzB,EAAWtgzB,EAAM,EACjBsgzB,IAAUtgzB,GAAOA,GAErBoksB,EAAsB,kBAARpksB,GACdoksB,EAAOpksB,EAAM,UAIb,IADA,IAAIyH,EAAQ,EACHvoC,EAAI,EAAGA,EAAIhB,KAAKY,OAAQI,IAAK,CACpC,IAAIusD,GAAqB,EAAhBvtD,KAAKmiiB,MAAMnhiB,IAAU8gC,EAC1Bm4E,GAAU,SAAJ1sD,IAA0B,SAARhkB,GAC5BA,IAAU,GACVA,GAAUgkB,EAAI,SAAa,EAE3BhkB,GAAS0wE,IAAO,GAChBj6G,KAAKmiiB,MAAMnhiB,GAAU,SAALi5G,CAClB,CAOA,OALc,IAAV1wE,IACFvpC,KAAKmiiB,MAAMnhiB,GAAKuoC,EAChBvpC,KAAKY,UAGAwh1B,EAAWpi1B,KAAK+h0B,OAAS/h0B,IAClC,EAEAk/zB,EAAGh/zB,UAAUqq0B,KAAO,SAAezoyB,GACjC,OAAO9hC,KAAKixC,QAAQ+uxB,MAAMl+xB,EAC5B,EAGAo9xB,EAAGh/zB,UAAUsq0B,IAAM,WACjB,OAAOxq0B,KAAKi9G,IAAIj9G,KAClB,EAGAk/zB,EAAGh/zB,UAAUuq0B,KAAO,WAClB,OAAOzq0B,KAAKin0B,KAAKjn0B,KAAKixC,QACxB,EAGAiuxB,EAAGh/zB,UAAU6iD,IAAM,SAAcjhB,GAC/B,IAAIyrB,EA7xCN,SAAqBzrB,GAGnB,IAFA,IAAIyrB,EAAI,IAAIjrC,MAAMwf,EAAI47K,aAEbm0mB,EAAM,EAAGA,EAAMtkwB,EAAE3sD,OAAQixzB,IAAO,CACvC,IAAI78sB,EAAO68sB,EAAM,GAAM,EACnBoR,EAAOpR,EAAM,GAEjBtkwB,EAAEskwB,GAAQ/vxB,EAAIqggB,MAAMntb,KAASiutB,EAAQ,CACvC,CAEA,OAAO11wB,CACT,CAkxCUm9wB,CAAW5oyB,GACnB,GAAiB,IAAbyrB,EAAE3sD,OAAc,OAAO,IAAIs+zB,EAAG,GAIlC,IADA,IAAI9ktB,EAAMp6G,KACDgB,EAAI,EAAGA,EAAIusD,EAAE3sD,QACP,IAAT2sD,EAAEvsD,GADsBA,IAAKo5G,EAAMA,EAAIowtB,OAI7C,KAAMxp0B,EAAIusD,EAAE3sD,OACV,IAAK,IAAIi7B,EAAIu+E,EAAIowtB,MAAOxp0B,EAAIusD,EAAE3sD,OAAQI,IAAK66B,EAAIA,EAAE2uyB,MAClC,IAATj9wB,EAAEvsD,KAENo5G,EAAMA,EAAI6C,IAAIphF,IAIlB,OAAOu+E,CACT,EAGA8ktB,EAAGh/zB,UAAUyq0B,OAAS,SAAiBltnB,GACrCyohB,EAAuB,kBAATzohB,GAAqBA,GAAQ,GAC3C,IAGIz8M,EAHAX,EAAIo9M,EAAO,GACXvkL,GAAKukL,EAAOp9M,GAAK,GACjBuq0B,EAAa,WAAe,GAAKvq0B,GAAQ,GAAKA,EAGlD,GAAU,IAANA,EAAS,CACX,IAAIkpC,EAAQ,EAEZ,IAAKvoC,EAAI,EAAGA,EAAIhB,KAAKY,OAAQI,IAAK,CAChC,IAAI6p0B,EAAW7q0B,KAAKmiiB,MAAMnhiB,GAAK4p0B,EAC3B3p0B,GAAsB,EAAhBjB,KAAKmiiB,MAAMnhiB,IAAU6p0B,GAAaxq0B,EAC5CL,KAAKmiiB,MAAMnhiB,GAAKC,EAAIsoC,EACpBA,EAAQshyB,IAAc,GAAKxq0B,CAC7B,CAEIkpC,IACFvpC,KAAKmiiB,MAAMnhiB,GAAKuoC,EAChBvpC,KAAKY,SAET,CAEA,GAAU,IAANs4B,EAAS,CACX,IAAKl4B,EAAIhB,KAAKY,OAAS,EAAGI,GAAK,EAAGA,IAChChB,KAAKmiiB,MAAMnhiB,EAAIk4B,GAAKl5B,KAAKmiiB,MAAMnhiB,GAGjC,IAAKA,EAAI,EAAGA,EAAIk4B,EAAGl4B,IACjBhB,KAAKmiiB,MAAMnhiB,GAAK,EAGlBhB,KAAKY,QAAUs4B,CACjB,CAEA,OAAOl5B,KAAKyw0B,QACd,EAEAvR,EAAGh/zB,UAAU4q0B,MAAQ,SAAgBrtnB,GAGnC,OADAyohB,EAAyB,IAAlBlmuB,KAAKipC,UACLjpC,KAAK2q0B,OAAOltnB,EACrB,EAKAyhnB,EAAGh/zB,UAAUkh0B,OAAS,SAAiB3jnB,EAAMxM,EAAM85nB,GAEjD,IAAI7pzB,EADJgltB,EAAuB,kBAATzohB,GAAqBA,GAAQ,GAGzCv8L,EADE+vL,GACGA,EAAQA,EAAO,IAAO,GAEvB,EAGN,IAAI5wM,EAAIo9M,EAAO,GACXvkL,EAAI0P,KAAKuZ,KAAKs7J,EAAOp9M,GAAK,GAAIL,KAAKY,QACnCiloB,EAAO,SAAc,WAAcxloB,GAAMA,EACzC2q0B,EAAcD,EAMlB,GAJA7pzB,GAAKgY,EACLhY,EAAI0nB,KAAKoa,IAAI,EAAG9hC,GAGZ8pzB,EAAa,CACf,IAAK,IAAIhq0B,EAAI,EAAGA,EAAIk4B,EAAGl4B,IACrBgq0B,EAAY7oS,MAAMnhiB,GAAKhB,KAAKmiiB,MAAMnhiB,GAEpCgq0B,EAAYpq0B,OAASs4B,CACvB,CAEA,GAAU,IAANA,QAEG,GAAIl5B,KAAKY,OAASs4B,EAEvB,IADAl5B,KAAKY,QAAUs4B,EACVl4B,EAAI,EAAGA,EAAIhB,KAAKY,OAAQI,IAC3BhB,KAAKmiiB,MAAMnhiB,GAAKhB,KAAKmiiB,MAAMnhiB,EAAIk4B,QAGjCl5B,KAAKmiiB,MAAM,GAAK,EAChBniiB,KAAKY,OAAS,EAGhB,IAAI2oC,EAAQ,EACZ,IAAKvoC,EAAIhB,KAAKY,OAAS,EAAGI,GAAK,IAAgB,IAAVuoC,GAAevoC,GAAKkgB,GAAIlgB,IAAK,CAChE,IAAIuwO,EAAuB,EAAhBvxO,KAAKmiiB,MAAMnhiB,GACtBhB,KAAKmiiB,MAAMnhiB,GAAMuoC,GAAU,GAAKlpC,EAAOkxO,IAASlxO,EAChDkpC,EAAQgoM,EAAOs0Z,CACjB,CAYA,OATImlM,GAAyB,IAAVzhyB,IACjByhyB,EAAY7oS,MAAM6oS,EAAYpq0B,UAAY2oC,GAGxB,IAAhBvpC,KAAKY,SACPZ,KAAKmiiB,MAAM,GAAK,EAChBniiB,KAAKY,OAAS,GAGTZ,KAAKyw0B,QACd,EAEAvR,EAAGh/zB,UAAU+q0B,MAAQ,SAAgBxtnB,EAAMxM,EAAM85nB,GAG/C,OADA7kG,EAAyB,IAAlBlmuB,KAAKipC,UACLjpC,KAAKoh0B,OAAO3jnB,EAAMxM,EAAM85nB,EACjC,EAGA7L,EAAGh/zB,UAAUgr0B,KAAO,SAAeztnB,GACjC,OAAOz9M,KAAKixC,QAAQ65xB,MAAMrtnB,EAC5B,EAEAyhnB,EAAGh/zB,UAAUir0B,MAAQ,SAAgB1tnB,GACnC,OAAOz9M,KAAKixC,QAAQ05xB,OAAOltnB,EAC7B,EAGAyhnB,EAAGh/zB,UAAUkr0B,KAAO,SAAe3tnB,GACjC,OAAOz9M,KAAKixC,QAAQg6xB,MAAMxtnB,EAC5B,EAEAyhnB,EAAGh/zB,UAAUmr0B,MAAQ,SAAgB5tnB,GACnC,OAAOz9M,KAAKixC,QAAQmwxB,OAAO3jnB,EAC7B,EAGAyhnB,EAAGh/zB,UAAU2h0B,MAAQ,SAAgBhQ,GACnC3rF,EAAsB,kBAAR2rF,GAAoBA,GAAO,GACzC,IAAIxxzB,EAAIwxzB,EAAM,GACV34xB,GAAK24xB,EAAMxxzB,GAAK,GAChBw7B,EAAI,GAAKx7B,EAGb,QAAIL,KAAKY,QAAUs4B,OAGXl5B,KAAKmiiB,MAAMjpgB,GAEL2C,EAChB,EAGAqjyB,EAAGh/zB,UAAUor0B,OAAS,SAAiB7tnB,GACrCyohB,EAAuB,kBAATzohB,GAAqBA,GAAQ,GAC3C,IAAIp9M,EAAIo9M,EAAO,GACXvkL,GAAKukL,EAAOp9M,GAAK,GAIrB,GAFA6luB,EAAyB,IAAlBlmuB,KAAKipC,SAAgB,2CAExBjpC,KAAKY,QAAUs4B,EACjB,OAAOl5B,KAQT,GALU,IAANK,GACF64B,IAEFl5B,KAAKY,OAASgoC,KAAKuZ,IAAIjpB,EAAGl5B,KAAKY,QAErB,IAANP,EAAS,CACX,IAAIwloB,EAAO,SAAc,WAAcxloB,GAAMA,EAC7CL,KAAKmiiB,MAAMniiB,KAAKY,OAAS,IAAMiloB,CACjC,CAEA,OAAO7loB,KAAKyw0B,QACd,EAGAvR,EAAGh/zB,UAAUqr0B,MAAQ,SAAgB9tnB,GACnC,OAAOz9M,KAAKixC,QAAQq6xB,OAAO7tnB,EAC7B,EAGAyhnB,EAAGh/zB,UAAUyh0B,MAAQ,SAAgB7/xB,GAGnC,OAFAoksB,EAAsB,kBAARpksB,GACdoksB,EAAOpksB,EAAM,UACTA,EAAM,EAAU9hC,KAAKwr0B,OAAO1pyB,GAGV,IAAlB9hC,KAAKipC,SACa,IAAhBjpC,KAAKY,SAAiC,EAAhBZ,KAAKmiiB,MAAM,KAAWrggB,GAC9C9hC,KAAKmiiB,MAAM,GAAKrggB,GAAuB,EAAhB9hC,KAAKmiiB,MAAM,IAClCniiB,KAAKipC,SAAW,EACTjpC,OAGTA,KAAKipC,SAAW,EAChBjpC,KAAKwr0B,MAAM1pyB,GACX9hC,KAAKipC,SAAW,EACTjpC,MAIFA,KAAKig0B,OAAOn+xB,EACrB,EAEAo9xB,EAAGh/zB,UAAU+/zB,OAAS,SAAiBn+xB,GACrC9hC,KAAKmiiB,MAAM,IAAMrggB,EAGjB,IAAK,IAAI9gC,EAAI,EAAGA,EAAIhB,KAAKY,QAAUZ,KAAKmiiB,MAAMnhiB,IAAM,SAAWA,IAC7DhB,KAAKmiiB,MAAMnhiB,IAAM,SACbA,IAAMhB,KAAKY,OAAS,EACtBZ,KAAKmiiB,MAAMnhiB,EAAI,GAAK,EAEpBhB,KAAKmiiB,MAAMnhiB,EAAI,KAKnB,OAFAhB,KAAKY,OAASgoC,KAAKoa,IAAIhjD,KAAKY,OAAQI,EAAI,GAEjChB,IACT,EAGAk/zB,EAAGh/zB,UAAUsr0B,MAAQ,SAAgB1pyB,GAGnC,GAFAoksB,EAAsB,kBAARpksB,GACdoksB,EAAOpksB,EAAM,UACTA,EAAM,EAAG,OAAO9hC,KAAK2h0B,OAAO7/xB,GAEhC,GAAsB,IAAlB9hC,KAAKipC,SAIP,OAHAjpC,KAAKipC,SAAW,EAChBjpC,KAAK2h0B,MAAM7/xB,GACX9hC,KAAKipC,SAAW,EACTjpC,KAKT,GAFAA,KAAKmiiB,MAAM,IAAMrggB,EAEG,IAAhB9hC,KAAKY,QAAgBZ,KAAKmiiB,MAAM,GAAK,EACvCniiB,KAAKmiiB,MAAM,IAAMniiB,KAAKmiiB,MAAM,GAC5BniiB,KAAKipC,SAAW,OAGhB,IAAK,IAAIjoC,EAAI,EAAGA,EAAIhB,KAAKY,QAAUZ,KAAKmiiB,MAAMnhiB,GAAK,EAAGA,IACpDhB,KAAKmiiB,MAAMnhiB,IAAM,SACjBhB,KAAKmiiB,MAAMnhiB,EAAI,IAAM,EAIzB,OAAOhB,KAAKyw0B,QACd,EAEAvR,EAAGh/zB,UAAUur0B,KAAO,SAAe3pyB,GACjC,OAAO9hC,KAAKixC,QAAQ0wxB,MAAM7/xB,EAC5B,EAEAo9xB,EAAGh/zB,UAAUwr0B,KAAO,SAAe5pyB,GACjC,OAAO9hC,KAAKixC,QAAQu6xB,MAAM1pyB,EAC5B,EAEAo9xB,EAAGh/zB,UAAUyr0B,KAAO,WAGlB,OAFA3r0B,KAAKipC,SAAW,EAETjpC,IACT,EAEAk/zB,EAAGh/zB,UAAU2oC,IAAM,WACjB,OAAO7oC,KAAKixC,QAAQ06xB,MACtB,EAEAzM,EAAGh/zB,UAAU0r0B,aAAe,SAAuB9pyB,EAAKm7E,EAAKhhF,GAC3D,IACIj7B,EAIAusD,EALAhnC,EAAMub,EAAIlhC,OAASq7B,EAGvBj8B,KAAKkg0B,QAAQ35yB,GAGb,IAAIgjB,EAAQ,EACZ,IAAKvoC,EAAI,EAAGA,EAAI8gC,EAAIlhC,OAAQI,IAAK,CAC/BusD,GAA6B,EAAxBvtD,KAAKmiiB,MAAMnhiB,EAAIi7B,IAAcsN,EAClC,IAAIm3F,GAAwB,EAAf5+F,EAAIqggB,MAAMnhiB,IAAUi8G,EAEjC1zE,IADAgkB,GAAa,SAARmzE,IACS,KAAQA,EAAQ,SAAa,GAC3C1gI,KAAKmiiB,MAAMnhiB,EAAIi7B,GAAa,SAAJsxB,CAC1B,CACA,KAAOvsD,EAAIhB,KAAKY,OAASq7B,EAAOj7B,IAE9BuoC,GADAgkB,GAA6B,EAAxBvtD,KAAKmiiB,MAAMnhiB,EAAIi7B,IAAcsN,IACrB,GACbvpC,KAAKmiiB,MAAMnhiB,EAAIi7B,GAAa,SAAJsxB,EAG1B,GAAc,IAAVhkB,EAAa,OAAOvpC,KAAKyw0B,SAK7B,IAFAvqG,GAAkB,IAAX38rB,GACPA,EAAQ,EACHvoC,EAAI,EAAGA,EAAIhB,KAAKY,OAAQI,IAE3BuoC,GADAgkB,IAAsB,EAAhBvtD,KAAKmiiB,MAAMnhiB,IAAUuoC,IACd,GACbvpC,KAAKmiiB,MAAMnhiB,GAAS,SAAJusD,EAIlB,OAFAvtD,KAAKipC,SAAW,EAETjpC,KAAKyw0B,QACd,EAEAvR,EAAGh/zB,UAAU2r0B,SAAW,SAAmB/pyB,EAAK3zB,GAC9C,IAAI8tB,GAAQj8B,KAAKY,OAASkhC,EAAIlhC,QAE1BG,EAAIf,KAAKixC,QACTzY,EAAIsJ,EAGJgqyB,EAA8B,EAAxBtzyB,EAAE2pgB,MAAM3pgB,EAAE53B,OAAS,GAGf,KADdq7B,EAAQ,GADMj8B,KAAKsh0B,WAAWwK,MAG5BtzyB,EAAIA,EAAE2yyB,MAAMlvyB,GACZl7B,EAAE4p0B,OAAO1uyB,GACT6vyB,EAA8B,EAAxBtzyB,EAAE2pgB,MAAM3pgB,EAAE53B,OAAS,IAI3B,IACIi7B,EADAb,EAAIj6B,EAAEH,OAAS43B,EAAE53B,OAGrB,GAAa,QAATuN,EAAgB,EAClB0tB,EAAI,IAAIqjyB,EAAG,OACTt+zB,OAASo6B,EAAI,EACfa,EAAEsmgB,MAAQ,IAAI7/gB,MAAMuZ,EAAEj7B,QACtB,IAAK,IAAII,EAAI,EAAGA,EAAI66B,EAAEj7B,OAAQI,IAC5B66B,EAAEsmgB,MAAMnhiB,GAAK,CAEjB,CAEA,IAAIs5J,EAAOv5J,EAAEkwC,QAAQ26xB,aAAapzyB,EAAG,EAAGwC,GAClB,IAAlBs/H,EAAKrxH,WACPloC,EAAIu5J,EACAz+H,IACFA,EAAEsmgB,MAAMnngB,GAAK,IAIjB,IAAK,IAAIQ,EAAIR,EAAI,EAAGQ,GAAK,EAAGA,IAAK,CAC/B,IAAIuwyB,EAAmC,UAAL,EAAxBhr0B,EAAEohiB,MAAM3pgB,EAAE53B,OAAS46B,KACE,EAA5Bz6B,EAAEohiB,MAAM3pgB,EAAE53B,OAAS46B,EAAI,IAO1B,IAHAuwyB,EAAKnjyB,KAAKuZ,IAAK4pxB,EAAKD,EAAO,EAAG,UAE9B/q0B,EAAE6q0B,aAAapzyB,EAAGuzyB,EAAIvwyB,GACA,IAAfz6B,EAAEkoC,UACP8iyB,IACAhr0B,EAAEkoC,SAAW,EACbloC,EAAE6q0B,aAAapzyB,EAAG,EAAGgD,GAChBz6B,EAAE8/zB,WACL9/zB,EAAEkoC,UAAY,GAGdpN,IACFA,EAAEsmgB,MAAM3mgB,GAAKuwyB,EAEjB,CAWA,OAVIlwyB,GACFA,EAAE40yB,SAEJ1v0B,EAAE0v0B,SAGW,QAATti0B,GAA4B,IAAV8tB,GACpBl7B,EAAEqg0B,OAAOnlyB,GAGJ,CACL/yB,IAAK2yB,GAAK,KACVW,IAAKz7B,EAET,EAMAm+zB,EAAGh/zB,UAAU8r0B,OAAS,SAAiBlqyB,EAAK3zB,EAAM89zB,GAGhD,OAFA/lG,GAAQpksB,EAAI++xB,UAER7g0B,KAAK6g0B,SACA,CACL33zB,IAAK,IAAIg2zB,EAAG,GACZ1iyB,IAAK,IAAI0iyB,EAAG,IAKM,IAAlBl/zB,KAAKipC,UAAmC,IAAjBnH,EAAImH,UAC7BmxE,EAAMp6G,KAAKii0B,MAAM+J,OAAOlqyB,EAAK3zB,GAEhB,QAATA,IACFjF,EAAMkxG,EAAIlxG,IAAI+4zB,OAGH,QAAT9zzB,IACFquB,EAAM49E,EAAI59E,IAAIylyB,MACVgK,GAA6B,IAAjBzvyB,EAAIyM,UAClBzM,EAAI0myB,KAAKphyB,IAIN,CACL54B,IAAKA,EACLszB,IAAKA,IAIa,IAAlBx8B,KAAKipC,UAAmC,IAAjBnH,EAAImH,UAC7BmxE,EAAMp6G,KAAKgs0B,OAAOlqyB,EAAImgyB,MAAO9zzB,GAEhB,QAATA,IACFjF,EAAMkxG,EAAIlxG,IAAI+4zB,OAGT,CACL/4zB,IAAKA,EACLszB,IAAK49E,EAAI59E,MAI0B,KAAlCx8B,KAAKipC,SAAWnH,EAAImH,WACvBmxE,EAAMp6G,KAAKii0B,MAAM+J,OAAOlqyB,EAAImgyB,MAAO9zzB,GAEtB,QAATA,IACFquB,EAAM49E,EAAI59E,IAAIylyB,MACVgK,GAA6B,IAAjBzvyB,EAAIyM,UAClBzM,EAAI2myB,KAAKrhyB,IAIN,CACL54B,IAAKkxG,EAAIlxG,IACTszB,IAAKA,IAOLsF,EAAIlhC,OAASZ,KAAKY,QAAUZ,KAAKgja,IAAIlhY,GAAO,EACvC,CACL54B,IAAK,IAAIg2zB,EAAG,GACZ1iyB,IAAKx8B,MAKU,IAAf8hC,EAAIlhC,OACO,QAATuN,EACK,CACLjF,IAAKlJ,KAAKks0B,KAAKpqyB,EAAIqggB,MAAM,IACzB3lgB,IAAK,MAII,QAATruB,EACK,CACLjF,IAAK,KACLszB,IAAK,IAAI0iyB,EAAGl/zB,KAAKgi1B,MAAMlgzB,EAAIqggB,MAAM,MAI9B,CACLj5hB,IAAKlJ,KAAKks0B,KAAKpqyB,EAAIqggB,MAAM,IACzB3lgB,IAAK,IAAI0iyB,EAAGl/zB,KAAKgi1B,MAAMlgzB,EAAIqggB,MAAM,MAI9BniiB,KAAK6r0B,SAAS/pyB,EAAK3zB,GAlF1B,IAAIjF,EAAKszB,EAAK49E,CAmFhB,EAGA8ktB,EAAGh/zB,UAAUgJ,IAAM,SAAc44B,GAC/B,OAAO9hC,KAAKgs0B,OAAOlqyB,EAAK,OAAO,GAAO54B,GACxC,EAGAg2zB,EAAGh/zB,UAAUs8B,IAAM,SAAcsF,GAC/B,OAAO9hC,KAAKgs0B,OAAOlqyB,EAAK,OAAO,GAAOtF,GACxC,EAEA0iyB,EAAGh/zB,UAAUis0B,KAAO,SAAerqyB,GACjC,OAAO9hC,KAAKgs0B,OAAOlqyB,EAAK,OAAO,GAAMtF,GACvC,EAGA0iyB,EAAGh/zB,UAAUks0B,SAAW,SAAmBtqyB,GACzC,IAAIuqyB,EAAKrs0B,KAAKgs0B,OAAOlqyB,GAGrB,GAAIuqyB,EAAG7vyB,IAAIqkyB,SAAU,OAAOwL,EAAGnj0B,IAE/B,IAAIszB,EAA0B,IAApB6vyB,EAAGnj0B,IAAI+/B,SAAiBojyB,EAAG7vyB,IAAI2myB,KAAKrhyB,GAAOuqyB,EAAG7vyB,IAEpDqsiB,EAAO/miB,EAAIupyB,MAAM,GACjBiB,EAAKxqyB,EAAIq/xB,MAAM,GACfn+Z,EAAMxmY,EAAIwmY,IAAI6lK,GAGlB,OAAI7lK,EAAM,GAAa,IAAPspa,GAAoB,IAARtpa,EAAmBqpa,EAAGnj0B,IAGvB,IAApBmj0B,EAAGnj0B,IAAI+/B,SAAiBojyB,EAAGnj0B,IAAIsi0B,MAAM,GAAKa,EAAGnj0B,IAAIy4zB,MAAM,EAChE,EAEAzC,EAAGh/zB,UAAU8h1B,MAAQ,SAAgBlgzB,GACnC,IAAIsgzB,EAAWtgzB,EAAM,EACjBsgzB,IAAUtgzB,GAAOA,GAErBoksB,EAAOpksB,GAAO,UAId,IAHA,IAAInJ,GAAK,GAAK,IAAMmJ,EAEhB3f,EAAM,EACDnhB,EAAIhB,KAAKY,OAAS,EAAGI,GAAK,EAAGA,IACpCmhB,GAAOwW,EAAIxW,GAAuB,EAAhBniB,KAAKmiiB,MAAMnhiB,KAAW8gC,EAG1C,OAAOsgzB,GAAYjg0B,EAAMA,CAC3B,EAGA+8yB,EAAGh/zB,UAAU4g0B,KAAO,SAAeh/xB,GACjC,OAAO9hC,KAAKgi1B,MAAMlgzB,EACpB,EAGAo9xB,EAAGh/zB,UAAU6g0B,MAAQ,SAAgBj/xB,GACnC,IAAIsgzB,EAAWtgzB,EAAM,EACjBsgzB,IAAUtgzB,GAAOA,GAErBoksB,EAAOpksB,GAAO,UAGd,IADA,IAAIyH,EAAQ,EACHvoC,EAAIhB,KAAKY,OAAS,EAAGI,GAAK,EAAGA,IAAK,CACzC,IAAIusD,GAAqB,EAAhBvtD,KAAKmiiB,MAAMnhiB,IAAkB,SAARuoC,EAC9BvpC,KAAKmiiB,MAAMnhiB,GAAMusD,EAAIzrB,EAAO,EAC5ByH,EAAQgkB,EAAIzrB,CACd,CAGA,OADA9hC,KAAKyw0B,SACE2R,EAAWpi1B,KAAK+h0B,OAAS/h0B,IAClC,EAEAk/zB,EAAGh/zB,UAAUgs0B,KAAO,SAAepqyB,GACjC,OAAO9hC,KAAKixC,QAAQ8vxB,MAAMj/xB,EAC5B,EAEAo9xB,EAAGh/zB,UAAUqs0B,KAAO,SAAe5zyB,GACjCutsB,EAAsB,IAAfvtsB,EAAEsQ,UACTi9rB,GAAQvtsB,EAAEkoyB,UAEV,IAAI11zB,EAAInL,KACJ4K,EAAI+tB,EAAEsY,QAGR9lC,EADiB,IAAfA,EAAE89B,SACA99B,EAAEgh0B,KAAKxzyB,GAEPxtB,EAAE8lC,QAaR,IATA,IAAIwc,EAAI,IAAIyxwB,EAAG,GACXxxwB,EAAI,IAAIwxwB,EAAG,GAGXvxwB,EAAI,IAAIuxwB,EAAG,GACX/ioB,EAAI,IAAI+ioB,EAAG,GAEXzkyB,EAAI,EAEDtvB,EAAEqh0B,UAAY5h0B,EAAE4h0B,UACrBrh0B,EAAEi2zB,OAAO,GACTx2zB,EAAEw2zB,OAAO,KACP3myB,EAMJ,IAHA,IAAIgyyB,EAAK7h0B,EAAEqmC,QACPy7xB,EAAKvh0B,EAAE8lC,SAEH9lC,EAAE01zB,UAAU,CAClB,IAAK,IAAI7/zB,EAAI,EAAG2r0B,EAAK,EAAyB,KAArBxh0B,EAAEg3hB,MAAM,GAAKwqS,IAAa3r0B,EAAI,KAAMA,EAAG2r0B,IAAO,GACvE,GAAI3r0B,EAAI,EAEN,IADAmK,EAAEi2zB,OAAOpg0B,GACFA,KAAM,IACPysD,EAAEm/wB,SAAWl/wB,EAAEk/wB,WACjBn/wB,EAAEy1wB,KAAKuJ,GACP/+wB,EAAEy1wB,KAAKuJ,IAGTj/wB,EAAE2zwB,OAAO,GACT1zwB,EAAE0zwB,OAAO,GAIb,IAAK,IAAI5lyB,EAAI,EAAGqxyB,EAAK,EAAyB,KAArBji0B,EAAEu3hB,MAAM,GAAK0qS,IAAarxyB,EAAI,KAAMA,EAAGqxyB,IAAO,GACvE,GAAIrxyB,EAAI,EAEN,IADA5wB,EAAEw2zB,OAAO5lyB,GACFA,KAAM,IACPmyB,EAAEi/wB,SAAWzwoB,EAAEywoB,WACjBj/wB,EAAEu1wB,KAAKuJ,GACPtwoB,EAAEgnoB,KAAKuJ,IAGT/+wB,EAAEyzwB,OAAO,GACTjloB,EAAEiloB,OAAO,GAITj2zB,EAAE63Z,IAAIp4Z,IAAM,GACdO,EAAEg4zB,KAAKv4zB,GACP6iD,EAAE01wB,KAAKx1wB,GACPD,EAAEy1wB,KAAKhnoB,KAEPvxL,EAAEu4zB,KAAKh4zB,GACPwiD,EAAEw1wB,KAAK11wB,GACP0uI,EAAEgnoB,KAAKz1wB,GAEX,CAEA,MAAO,CACL3sD,EAAG4sD,EACHn1B,EAAG2jK,EACH2woB,IAAKli0B,EAAE+/zB,OAAOlwyB,GAElB,EAKAykyB,EAAGh/zB,UAAU6s0B,OAAS,SAAiBp0yB,GACrCutsB,EAAsB,IAAfvtsB,EAAEsQ,UACTi9rB,GAAQvtsB,EAAEkoyB,UAEV,IAAI9/zB,EAAIf,KACJw4B,EAAIG,EAAEsY,QAGRlwC,EADiB,IAAfA,EAAEkoC,SACAloC,EAAEor0B,KAAKxzyB,GAEP53B,EAAEkwC,QAQR,IALA,IAuCImpE,EAvCAyqd,EAAK,IAAIq6P,EAAG,GACZruQ,EAAK,IAAIquQ,EAAG,GAEZp4nB,EAAQtuK,EAAEyY,QAEPlwC,EAAEis0B,KAAK,GAAK,GAAKx0yB,EAAEw0yB,KAAK,GAAK,GAAG,CACrC,IAAK,IAAIhs0B,EAAI,EAAG2r0B,EAAK,EAAyB,KAArB5r0B,EAAEohiB,MAAM,GAAKwqS,IAAa3r0B,EAAI,KAAMA,EAAG2r0B,IAAO,GACvE,GAAI3r0B,EAAI,EAEN,IADAD,EAAEqg0B,OAAOpg0B,GACFA,KAAM,GACP6jkB,EAAG+nQ,SACL/nQ,EAAGq+P,KAAKp8nB,GAGV+9X,EAAGu8P,OAAO,GAId,IAAK,IAAI5lyB,EAAI,EAAGqxyB,EAAK,EAAyB,KAArBr0yB,EAAE2pgB,MAAM,GAAK0qS,IAAarxyB,EAAI,KAAMA,EAAGqxyB,IAAO,GACvE,GAAIrxyB,EAAI,EAEN,IADAhD,EAAE4oyB,OAAO5lyB,GACFA,KAAM,GACPq1hB,EAAG+7Q,SACL/7Q,EAAGqyQ,KAAKp8nB,GAGV+pX,EAAGuwQ,OAAO,GAIVrg0B,EAAEiia,IAAIxqY,IAAM,GACdz3B,EAAEoi0B,KAAK3qyB,GACPqsiB,EAAGs+P,KAAKtyQ,KAERr4hB,EAAE2qyB,KAAKpi0B,GACP8vjB,EAAGsyQ,KAAKt+P,GAEZ,CAaA,OATEzqd,EADgB,IAAdr5G,EAAEis0B,KAAK,GACHnoQ,EAEAhU,GAGAm8Q,KAAK,GAAK,GAChB5ytB,EAAI8otB,KAAKvqyB,GAGJyhF,CACT,EAEA8ktB,EAAGh/zB,UAAU4s0B,IAAM,SAAchryB,GAC/B,GAAI9hC,KAAK6g0B,SAAU,OAAO/+xB,EAAI+G,MAC9B,GAAI/G,EAAI++xB,SAAU,OAAO7g0B,KAAK6oC,MAE9B,IAAI9nC,EAAIf,KAAKixC,QACTzY,EAAIsJ,EAAImP,QACZlwC,EAAEkoC,SAAW,EACbzQ,EAAEyQ,SAAW,EAGb,IAAK,IAAIhN,EAAQ,EAAGl7B,EAAEyr0B,UAAYh0yB,EAAEg0yB,SAAUvwyB,IAC5Cl7B,EAAEqg0B,OAAO,GACT5oyB,EAAE4oyB,OAAO,GAGX,OAAG,CACD,KAAOrg0B,EAAEyr0B,UACPzr0B,EAAEqg0B,OAAO,GAEX,KAAO5oyB,EAAEg0yB,UACPh0yB,EAAE4oyB,OAAO,GAGX,IAAI/g0B,EAAIU,EAAEiia,IAAIxqY,GACd,GAAIn4B,EAAI,EAAG,CAET,IAAII,EAAIM,EACRA,EAAIy3B,EACJA,EAAI/3B,CACN,MAAO,GAAU,IAANJ,GAAyB,IAAdm4B,EAAEw0yB,KAAK,GAC3B,MAGFjs0B,EAAEoi0B,KAAK3qyB,EACT,CAEA,OAAOA,EAAEmyyB,OAAO1uyB,EAClB,EAGAijyB,EAAGh/zB,UAAU+s0B,KAAO,SAAenryB,GACjC,OAAO9hC,KAAKus0B,KAAKzqyB,GAAK/gC,EAAEor0B,KAAKrqyB,EAC/B,EAEAo9xB,EAAGh/zB,UAAUss0B,OAAS,WACpB,OAA+B,KAAP,EAAhBxs0B,KAAKmiiB,MAAM,GACrB,EAEA+8R,EAAGh/zB,UAAU0s0B,MAAQ,WACnB,OAA+B,KAAP,EAAhB5s0B,KAAKmiiB,MAAM,GACrB,EAGA+8R,EAAGh/zB,UAAUih0B,MAAQ,SAAgBr/xB,GACnC,OAAO9hC,KAAKmiiB,MAAM,GAAKrggB,CACzB,EAGAo9xB,EAAGh/zB,UAAUgt0B,MAAQ,SAAgBrb,GACnC3rF,EAAsB,kBAAR2rF,GACd,IAAIxxzB,EAAIwxzB,EAAM,GACV34xB,GAAK24xB,EAAMxxzB,GAAK,GAChBw7B,EAAI,GAAKx7B,EAGb,GAAIL,KAAKY,QAAUs4B,EAGjB,OAFAl5B,KAAKkg0B,QAAQhnyB,EAAI,GACjBl5B,KAAKmiiB,MAAMjpgB,IAAM2C,EACV77B,KAKT,IADA,IAAIupC,EAAQ1N,EACH76B,EAAIk4B,EAAa,IAAVqQ,GAAevoC,EAAIhB,KAAKY,OAAQI,IAAK,CACnD,IAAIusD,EAAoB,EAAhBvtD,KAAKmiiB,MAAMnhiB,GAEnBuoC,GADAgkB,GAAKhkB,KACS,GACdgkB,GAAK,SACLvtD,KAAKmiiB,MAAMnhiB,GAAKusD,CAClB,CAKA,OAJc,IAAVhkB,IACFvpC,KAAKmiiB,MAAMnhiB,GAAKuoC,EAChBvpC,KAAKY,UAEAZ,IACT,EAEAk/zB,EAAGh/zB,UAAU2g0B,OAAS,WACpB,OAAuB,IAAhB7g0B,KAAKY,QAAkC,IAAlBZ,KAAKmiiB,MAAM,EACzC,EAEA+8R,EAAGh/zB,UAAU8s0B,KAAO,SAAelryB,GACjC,IAOIs4E,EAPAnxE,EAAWnH,EAAM,EAErB,GAAsB,IAAlB9hC,KAAKipC,WAAmBA,EAAU,OAAQ,EAC9C,GAAsB,IAAlBjpC,KAAKipC,UAAkBA,EAAU,OAAO,EAK5C,GAHAjpC,KAAKyw0B,SAGDzw0B,KAAKY,OAAS,EAChBw5G,EAAM,MACD,CACDnxE,IACFnH,GAAOA,GAGToksB,EAAOpksB,GAAO,SAAW,qBAEzB,IAAIyrB,EAAoB,EAAhBvtD,KAAKmiiB,MAAM,GACnB/nb,EAAM7sD,IAAMzrB,EAAM,EAAIyrB,EAAIzrB,GAAO,EAAI,CACvC,CACA,OAAsB,IAAlB9hC,KAAKipC,SAA8B,GAANmxE,EAC1BA,CACT,EAMA8ktB,EAAGh/zB,UAAU8ia,IAAM,SAAclhY,GAC/B,GAAsB,IAAlB9hC,KAAKipC,UAAmC,IAAjBnH,EAAImH,SAAgB,OAAQ,EACvD,GAAsB,IAAlBjpC,KAAKipC,UAAmC,IAAjBnH,EAAImH,SAAgB,OAAO,EAEtD,IAAImxE,EAAMp6G,KAAKmt0B,KAAKrryB,GACpB,OAAsB,IAAlB9hC,KAAKipC,SAA8B,GAANmxE,EAC1BA,CACT,EAGA8ktB,EAAGh/zB,UAAUit0B,KAAO,SAAerryB,GAEjC,GAAI9hC,KAAKY,OAASkhC,EAAIlhC,OAAQ,OAAO,EACrC,GAAIZ,KAAKY,OAASkhC,EAAIlhC,OAAQ,OAAQ,EAGtC,IADA,IAAIw5G,EAAM,EACDp5G,EAAIhB,KAAKY,OAAS,EAAGI,GAAK,EAAGA,IAAK,CACzC,IAAID,EAAoB,EAAhBf,KAAKmiiB,MAAMnhiB,GACfw3B,EAAmB,EAAfsJ,EAAIqggB,MAAMnhiB,GAElB,GAAID,IAAMy3B,EAAV,CACIz3B,EAAIy3B,EACN4hF,GAAO,EACEr5G,EAAIy3B,IACb4hF,EAAM,GAER,KANqB,CAOvB,CACA,OAAOA,CACT,EAEA8ktB,EAAGh/zB,UAAUkt0B,IAAM,SAActryB,GAC/B,OAA0B,IAAnB9hC,KAAKgt0B,KAAKlryB,EACnB,EAEAo9xB,EAAGh/zB,UAAUmt0B,GAAK,SAAavryB,GAC7B,OAAyB,IAAlB9hC,KAAKgja,IAAIlhY,EAClB,EAEAo9xB,EAAGh/zB,UAAUot0B,KAAO,SAAexryB,GACjC,OAAO9hC,KAAKgt0B,KAAKlryB,IAAQ,CAC3B,EAEAo9xB,EAAGh/zB,UAAUqt0B,IAAM,SAAczryB,GAC/B,OAAO9hC,KAAKgja,IAAIlhY,IAAQ,CAC1B,EAEAo9xB,EAAGh/zB,UAAUst0B,IAAM,SAAc1ryB,GAC/B,OAA2B,IAApB9hC,KAAKgt0B,KAAKlryB,EACnB,EAEAo9xB,EAAGh/zB,UAAUut0B,GAAK,SAAa3ryB,GAC7B,OAA0B,IAAnB9hC,KAAKgja,IAAIlhY,EAClB,EAEAo9xB,EAAGh/zB,UAAUwt0B,KAAO,SAAe5ryB,GACjC,OAAO9hC,KAAKgt0B,KAAKlryB,IAAQ,CAC3B,EAEAo9xB,EAAGh/zB,UAAUyt0B,IAAM,SAAc7ryB,GAC/B,OAAO9hC,KAAKgja,IAAIlhY,IAAQ,CAC1B,EAEAo9xB,EAAGh/zB,UAAU0t0B,IAAM,SAAc9ryB,GAC/B,OAA0B,IAAnB9hC,KAAKgt0B,KAAKlryB,EACnB,EAEAo9xB,EAAGh/zB,UAAU2t0B,GAAK,SAAa/ryB,GAC7B,OAAyB,IAAlB9hC,KAAKgja,IAAIlhY,EAClB,EAMAo9xB,EAAG/xzB,IAAM,SAAc20B,GACrB,OAAO,IAAIgsyB,EAAIhsyB,EACjB,EAEAo9xB,EAAGh/zB,UAAU6t0B,MAAQ,SAAgBli0B,GAGnC,OAFAq6tB,GAAQlmuB,KAAKmN,IAAK,yCAClB+4tB,EAAyB,IAAlBlmuB,KAAKipC,SAAgB,iCACrBp9B,EAAImi0B,UAAUhu0B,MAAMiu0B,UAAUpi0B,EACvC,EAEAqzzB,EAAGh/zB,UAAUgu0B,QAAU,WAErB,OADAhoG,EAAOlmuB,KAAKmN,IAAK,wDACVnN,KAAKmN,IAAIgh0B,YAAYnu0B,KAC9B,EAEAk/zB,EAAGh/zB,UAAU+t0B,UAAY,SAAoBpi0B,GAE3C,OADA7L,KAAKmN,IAAMtB,EACJ7L,IACT,EAEAk/zB,EAAGh/zB,UAAUku0B,SAAW,SAAmBvi0B,GAEzC,OADAq6tB,GAAQlmuB,KAAKmN,IAAK,yCACXnN,KAAKiu0B,UAAUpi0B,EACxB,EAEAqzzB,EAAGh/zB,UAAUmu0B,OAAS,SAAiBvsyB,GAErC,OADAoksB,EAAOlmuB,KAAKmN,IAAK,sCACVnN,KAAKmN,IAAIo5B,IAAIvmC,KAAM8hC,EAC5B,EAEAo9xB,EAAGh/zB,UAAUou0B,QAAU,SAAkBxsyB,GAEvC,OADAoksB,EAAOlmuB,KAAKmN,IAAK,uCACVnN,KAAKmN,IAAI+1zB,KAAKlj0B,KAAM8hC,EAC7B,EAEAo9xB,EAAGh/zB,UAAUqu0B,OAAS,SAAiBzsyB,GAErC,OADAoksB,EAAOlmuB,KAAKmN,IAAK,sCACVnN,KAAKmN,IAAIwxG,IAAI3+G,KAAM8hC,EAC5B,EAEAo9xB,EAAGh/zB,UAAUsu0B,QAAU,SAAkB1syB,GAEvC,OADAoksB,EAAOlmuB,KAAKmN,IAAK,uCACVnN,KAAKmN,IAAIg2zB,KAAKnj0B,KAAM8hC,EAC7B,EAEAo9xB,EAAGh/zB,UAAUuu0B,OAAS,SAAiB3syB,GAErC,OADAoksB,EAAOlmuB,KAAKmN,IAAK,sCACVnN,KAAKmN,IAAIuh0B,IAAI1u0B,KAAM8hC,EAC5B,EAEAo9xB,EAAGh/zB,UAAUyu0B,OAAS,SAAiB7syB,GAGrC,OAFAoksB,EAAOlmuB,KAAKmN,IAAK,sCACjBnN,KAAKmN,IAAIyh0B,SAAS5u0B,KAAM8hC,GACjB9hC,KAAKmN,IAAI8vG,IAAIj9G,KAAM8hC,EAC5B,EAEAo9xB,EAAGh/zB,UAAU2u0B,QAAU,SAAkB/syB,GAGvC,OAFAoksB,EAAOlmuB,KAAKmN,IAAK,sCACjBnN,KAAKmN,IAAIyh0B,SAAS5u0B,KAAM8hC,GACjB9hC,KAAKmN,IAAI85zB,KAAKjn0B,KAAM8hC,EAC7B,EAEAo9xB,EAAGh/zB,UAAU4u0B,OAAS,WAGpB,OAFA5oG,EAAOlmuB,KAAKmN,IAAK,sCACjBnN,KAAKmN,IAAI4h0B,SAAS/u0B,MACXA,KAAKmN,IAAIq9zB,IAAIxq0B,KACtB,EAEAk/zB,EAAGh/zB,UAAU8u0B,QAAU,WAGrB,OAFA9oG,EAAOlmuB,KAAKmN,IAAK,uCACjBnN,KAAKmN,IAAI4h0B,SAAS/u0B,MACXA,KAAKmN,IAAIs9zB,KAAKzq0B,KACvB,EAGAk/zB,EAAGh/zB,UAAU+u0B,QAAU,WAGrB,OAFA/oG,EAAOlmuB,KAAKmN,IAAK,uCACjBnN,KAAKmN,IAAI4h0B,SAAS/u0B,MACXA,KAAKmN,IAAI08H,KAAK7pI,KACvB,EAEAk/zB,EAAGh/zB,UAAUgv0B,QAAU,WAGrB,OAFAhpG,EAAOlmuB,KAAKmN,IAAK,uCACjBnN,KAAKmN,IAAI4h0B,SAAS/u0B,MACXA,KAAKmN,IAAI8/zB,KAAKjt0B,KACvB,EAGAk/zB,EAAGh/zB,UAAUiv0B,OAAS,WAGpB,OAFAjpG,EAAOlmuB,KAAKmN,IAAK,sCACjBnN,KAAKmN,IAAI4h0B,SAAS/u0B,MACXA,KAAKmN,IAAI80zB,IAAIji0B,KACtB,EAEAk/zB,EAAGh/zB,UAAUkv0B,OAAS,SAAiBttyB,GAGrC,OAFAoksB,EAAOlmuB,KAAKmN,MAAQ20B,EAAI30B,IAAK,qBAC7BnN,KAAKmN,IAAI4h0B,SAAS/u0B,MACXA,KAAKmN,IAAI41C,IAAI/iD,KAAM8hC,EAC5B,EAGA,IAAIutyB,EAAS,CACXC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,OAAQ,MAIV,SAASC,EAAQtv0B,EAAMu4B,GAErB34B,KAAKI,KAAOA,EACZJ,KAAK24B,EAAI,IAAIumyB,EAAGvmyB,EAAG,IACnB34B,KAAKa,EAAIb,KAAK24B,EAAE+kL,YAChB19M,KAAKi7B,EAAI,IAAIikyB,EAAG,GAAGyL,OAAO3q0B,KAAKa,GAAGsi0B,KAAKnj0B,KAAK24B,GAE5C34B,KAAK86uB,IAAM96uB,KAAK2v0B,MAClB,CAgDA,SAASC,IACPF,EAAO5pzB,KACL9lB,KACA,OACA,0EACJ,CA8DA,SAAS6v0B,IACPH,EAAO5pzB,KACL9lB,KACA,OACA,iEACJ,CAGA,SAAS8v0B,IACPJ,EAAO5pzB,KACL9lB,KACA,OACA,wDACJ,CAGA,SAAS+v0B,IAEPL,EAAO5pzB,KACL9lB,KACA,QACA,sEACJ,CA6CA,SAAS8t0B,EAAK9yyB,GACZ,GAAiB,kBAANA,EAAgB,CACzB,IAAIg1yB,EAAQ9Q,EAAG+Q,OAAOj1yB,GACtBh7B,KAAKg7B,EAAIg1yB,EAAMr3yB,EACf34B,KAAKgw0B,MAAQA,CACf,MACE9pG,EAAOlrsB,EAAEoyyB,IAAI,GAAI,kCACjBpt0B,KAAKg7B,EAAIA,EACTh7B,KAAKgw0B,MAAQ,IAEjB,CAkOA,SAASE,EAAMl1yB,GACb8yyB,EAAIhozB,KAAK9lB,KAAMg7B,GAEfh7B,KAAKi8B,MAAQj8B,KAAKg7B,EAAE0iL,YAChB19M,KAAKi8B,MAAQ,KAAO,IACtBj8B,KAAKi8B,OAAS,GAAMj8B,KAAKi8B,MAAQ,IAGnCj8B,KAAKK,EAAI,IAAI6+zB,EAAG,GAAGyL,OAAO3q0B,KAAKi8B,OAC/Bj8B,KAAKss0B,GAAKts0B,KAAKmw0B,KAAKnw0B,KAAKK,EAAEmq0B,OAC3Bxq0B,KAAKow0B,KAAOpw0B,KAAKK,EAAE0s0B,OAAO/s0B,KAAKg7B,GAE/Bh7B,KAAKqw0B,KAAOrw0B,KAAKow0B,KAAKnztB,IAAIj9G,KAAKK,GAAGmr0B,MAAM,GAAGti0B,IAAIlJ,KAAKg7B,GACpDh7B,KAAKqw0B,KAAOrw0B,KAAKqw0B,KAAKlE,KAAKns0B,KAAKK,GAChCL,KAAKqw0B,KAAOrw0B,KAAKK,EAAEs+G,IAAI3+G,KAAKqw0B,KAC9B,CA/aAX,EAAOxv0B,UAAUyv0B,KAAO,WACtB,IAAI70F,EAAM,IAAIokF,EAAG,MAEjB,OADApkF,EAAI34M,MAAQ,IAAI7/gB,MAAMsmB,KAAK8wI,KAAK15K,KAAKa,EAAI,KAClCi6uB,CACT,EAEA40F,EAAOxv0B,UAAUow0B,QAAU,SAAkBxuyB,GAG3C,IACIyuyB,EADAlw0B,EAAIyhC,EAGR,GACE9hC,KAAK4B,MAAMvB,EAAGL,KAAK86uB,KAGnBy1F,GADAlw0B,GADAA,EAAIL,KAAKww0B,MAAMnw0B,IACT6i0B,KAAKlj0B,KAAK86uB,MACPp9hB,kBACF6ynB,EAAOvw0B,KAAKa,GAErB,IAAImia,EAAMuta,EAAOvw0B,KAAKa,GAAK,EAAIR,EAAE8s0B,KAAKnt0B,KAAK24B,GAgB3C,OAfY,IAARqqY,GACF3ia,EAAE8hiB,MAAM,GAAK,EACb9hiB,EAAEO,OAAS,GACFoia,EAAM,EACf3ia,EAAE8i0B,KAAKnj0B,KAAK24B,QAEItwB,IAAZhI,EAAEs6hB,MAEJt6hB,EAAEs6hB,QAGFt6hB,EAAEow0B,SAICpw0B,CACT,EAEAqv0B,EAAOxv0B,UAAU0B,MAAQ,SAAgBs+B,EAAOoJ,GAC9CpJ,EAAMkhyB,OAAOph0B,KAAKa,EAAG,EAAGyoC,EAC1B,EAEAomyB,EAAOxv0B,UAAUsw0B,MAAQ,SAAgB1uyB,GACvC,OAAOA,EAAImlyB,KAAKjn0B,KAAKi7B,EACvB,EAQAg6sB,EAAS26F,EAAMF,GAEfE,EAAK1v0B,UAAU0B,MAAQ,SAAgBs+B,EAAOwE,GAK5C,IAHA,IAAImhmB,EAAO,QAEP6qM,EAAS9nyB,KAAKuZ,IAAIjiB,EAAMt/B,OAAQ,GAC3BI,EAAI,EAAGA,EAAI0v0B,EAAQ1v0B,IAC1B0jC,EAAOy9f,MAAMnhiB,GAAKk/B,EAAMiigB,MAAMnhiB,GAIhC,GAFA0jC,EAAO9jC,OAAS8v0B,EAEZxwyB,EAAMt/B,QAAU,EAGlB,OAFAs/B,EAAMiigB,MAAM,GAAK,OACjBjigB,EAAMt/B,OAAS,GAKjB,IAAI0mH,EAAOpnF,EAAMiigB,MAAM,GAGvB,IAFAz9f,EAAOy9f,MAAMz9f,EAAO9jC,UAAY0mH,EAAOu+gB,EAElC7koB,EAAI,GAAIA,EAAIk/B,EAAMt/B,OAAQI,IAAK,CAClC,IAAI+kB,EAAwB,EAAjBma,EAAMiigB,MAAMnhiB,GACvBk/B,EAAMiigB,MAAMnhiB,EAAI,KAAQ+kB,EAAO8/mB,IAAS,EAAMv+gB,IAAS,GACvDA,EAAOvhG,CACT,CACAuhG,KAAU,GACVpnF,EAAMiigB,MAAMnhiB,EAAI,IAAMsmH,EACT,IAATA,GAAcpnF,EAAMt/B,OAAS,GAC/Bs/B,EAAMt/B,QAAU,GAEhBs/B,EAAMt/B,QAAU,CAEpB,EAEAgv0B,EAAK1v0B,UAAUsw0B,MAAQ,SAAgB1uyB,GAErCA,EAAIqggB,MAAMrggB,EAAIlhC,QAAU,EACxBkhC,EAAIqggB,MAAMrggB,EAAIlhC,OAAS,GAAK,EAC5BkhC,EAAIlhC,QAAU,EAId,IADA,IAAIq5G,EAAK,EACAj5G,EAAI,EAAGA,EAAI8gC,EAAIlhC,OAAQI,IAAK,CACnC,IAAIusD,EAAmB,EAAfzrB,EAAIqggB,MAAMnhiB,GAClBi5G,GAAU,IAAJ1sD,EACNzrB,EAAIqggB,MAAMnhiB,GAAU,SAALi5G,EACfA,EAAS,GAAJ1sD,GAAa0sD,EAAK,SAAa,EACtC,CASA,OANkC,IAA9Bn4E,EAAIqggB,MAAMrggB,EAAIlhC,OAAS,KACzBkhC,EAAIlhC,SAC8B,IAA9BkhC,EAAIqggB,MAAMrggB,EAAIlhC,OAAS,IACzBkhC,EAAIlhC,UAGDkhC,CACT,EAQAmzsB,EAAS46F,EAAMH,GAQfz6F,EAAS66F,EAAMJ,GASfz6F,EAAS86F,EAAQL,GAEjBK,EAAO7v0B,UAAUsw0B,MAAQ,SAAgB1uyB,GAGvC,IADA,IAAIyH,EAAQ,EACHvoC,EAAI,EAAGA,EAAI8gC,EAAIlhC,OAAQI,IAAK,CACnC,IAAIg5G,EAA0B,IAAL,EAAfl4E,EAAIqggB,MAAMnhiB,IAAiBuoC,EACjC0wE,EAAU,SAALD,EACTA,KAAQ,GAERl4E,EAAIqggB,MAAMnhiB,GAAKi5G,EACf1wE,EAAQywE,CACV,CAIA,OAHc,IAAVzwE,IACFzH,EAAIqggB,MAAMrggB,EAAIlhC,UAAY2oC,GAErBzH,CACT,EAGAo9xB,EAAG+Q,OAAS,SAAgB7v0B,GAE1B,GAAIiv0B,EAAOjv0B,GAAO,OAAOiv0B,EAAOjv0B,GAEhC,IAAI4v0B,EACJ,GAAa,SAAT5v0B,EACF4v0B,EAAQ,IAAIJ,OACP,GAAa,SAATxv0B,EACT4v0B,EAAQ,IAAIH,OACP,GAAa,SAATzv0B,EACT4v0B,EAAQ,IAAIF,MACP,IAAa,WAAT1v0B,EAGT,MAAM,IAAID,MAAM,iBAAmBC,GAFnC4v0B,EAAQ,IAAID,CAGd,CAGA,OAFAV,EAAOjv0B,GAAQ4v0B,EAERA,CACT,EAiBAlC,EAAI5t0B,UAAU6u0B,SAAW,SAAmBhu0B,GAC1CmluB,EAAsB,IAAfnluB,EAAEkoC,SAAgB,iCACzBi9rB,EAAOnluB,EAAEoM,IAAK,kCAChB,EAEA2g0B,EAAI5t0B,UAAU0u0B,SAAW,SAAmB7t0B,EAAGy3B,GAC7C0tsB,EAAqC,KAA7BnluB,EAAEkoC,SAAWzQ,EAAEyQ,UAAiB,iCACxCi9rB,EAAOnluB,EAAEoM,KAAOpM,EAAEoM,MAAQqrB,EAAErrB,IAC1B,kCACJ,EAEA2g0B,EAAI5t0B,UAAUiw0B,KAAO,SAAepv0B,GAClC,OAAIf,KAAKgw0B,MAAchw0B,KAAKgw0B,MAAMM,QAAQvv0B,GAAGkt0B,UAAUju0B,OAEvDi/X,EAAKl+X,EAAGA,EAAEor0B,KAAKns0B,KAAKg7B,GAAGizyB,UAAUju0B,OAC1Be,EACT,EAEA+s0B,EAAI5t0B,UAAU+h0B,IAAM,SAAclh0B,GAChC,OAAIA,EAAE8/zB,SACG9/zB,EAAEkwC,QAGJjxC,KAAKg7B,EAAE2jF,IAAI59G,GAAGkt0B,UAAUju0B,KACjC,EAEA8t0B,EAAI5t0B,UAAUqmC,IAAM,SAAcxlC,EAAGy3B,GACnCx4B,KAAK4u0B,SAAS7t0B,EAAGy3B,GAEjB,IAAI4hF,EAAMr5G,EAAEwlC,IAAI/N,GAIhB,OAHI4hF,EAAI4oT,IAAIhja,KAAKg7B,IAAM,GACrBo/E,EAAI+otB,KAAKnj0B,KAAKg7B,GAETo/E,EAAI6ztB,UAAUju0B,KACvB,EAEA8t0B,EAAI5t0B,UAAUgj0B,KAAO,SAAeni0B,EAAGy3B,GACrCx4B,KAAK4u0B,SAAS7t0B,EAAGy3B,GAEjB,IAAI4hF,EAAMr5G,EAAEmi0B,KAAK1qyB,GAIjB,OAHI4hF,EAAI4oT,IAAIhja,KAAKg7B,IAAM,GACrBo/E,EAAI+otB,KAAKnj0B,KAAKg7B,GAETo/E,CACT,EAEA0ztB,EAAI5t0B,UAAUy+G,IAAM,SAAc59G,EAAGy3B,GACnCx4B,KAAK4u0B,SAAS7t0B,EAAGy3B,GAEjB,IAAI4hF,EAAMr5G,EAAE49G,IAAInmF,GAIhB,OAHI4hF,EAAI4ytB,KAAK,GAAK,GAChB5ytB,EAAI8otB,KAAKlj0B,KAAKg7B,GAETo/E,EAAI6ztB,UAAUju0B,KACvB,EAEA8t0B,EAAI5t0B,UAAUij0B,KAAO,SAAepi0B,EAAGy3B,GACrCx4B,KAAK4u0B,SAAS7t0B,EAAGy3B,GAEjB,IAAI4hF,EAAMr5G,EAAEoi0B,KAAK3qyB,GAIjB,OAHI4hF,EAAI4ytB,KAAK,GAAK,GAChB5ytB,EAAI8otB,KAAKlj0B,KAAKg7B,GAETo/E,CACT,EAEA0ztB,EAAI5t0B,UAAUwu0B,IAAM,SAAc3t0B,EAAG+gC,GAEnC,OADA9hC,KAAK+u0B,SAAShu0B,GACPf,KAAKmw0B,KAAKpv0B,EAAEoq0B,MAAMrpyB,GAC3B,EAEAgsyB,EAAI5t0B,UAAU+m0B,KAAO,SAAelm0B,EAAGy3B,GAErC,OADAx4B,KAAK4u0B,SAAS7t0B,EAAGy3B,GACVx4B,KAAKmw0B,KAAKpv0B,EAAEkm0B,KAAKzuyB,GAC1B,EAEAs1yB,EAAI5t0B,UAAU+8G,IAAM,SAAcl8G,EAAGy3B,GAEnC,OADAx4B,KAAK4u0B,SAAS7t0B,EAAGy3B,GACVx4B,KAAKmw0B,KAAKpv0B,EAAEk8G,IAAIzkF,GACzB,EAEAs1yB,EAAI5t0B,UAAUuq0B,KAAO,SAAe1p0B,GAClC,OAAOf,KAAKin0B,KAAKlm0B,EAAGA,EAAEkwC,QACxB,EAEA68xB,EAAI5t0B,UAAUsq0B,IAAM,SAAczp0B,GAChC,OAAOf,KAAKi9G,IAAIl8G,EAAGA,EACrB,EAEA+s0B,EAAI5t0B,UAAU2pI,KAAO,SAAe9oI,GAClC,GAAIA,EAAE8/zB,SAAU,OAAO9/zB,EAAEkwC,QAEzB,IAAI0/xB,EAAO3w0B,KAAKg7B,EAAEmmyB,MAAM,GAIxB,GAHAj7F,EAAOyqG,EAAO,IAAM,GAGP,IAATA,EAAY,CACd,IAAI5txB,EAAM/iD,KAAKg7B,EAAEuL,IAAI,IAAI24xB,EAAG,IAAIkC,OAAO,GACvC,OAAOph0B,KAAK+iD,IAAIhiD,EAAGgiD,EACrB,CAOA,IAFA,IAAIlnB,EAAI77B,KAAKg7B,EAAE0wyB,KAAK,GAChBxyyB,EAAI,GACA2C,EAAEglyB,UAA2B,IAAfhlyB,EAAEslyB,MAAM,IAC5BjoyB,IACA2C,EAAEulyB,OAAO,GAEXl7F,GAAQrqsB,EAAEglyB,UAEV,IAAI+P,EAAM,IAAI1R,EAAG,GAAG6O,MAAM/t0B,MACtB6w0B,EAAOD,EAAIzB,SAIX2B,EAAO9w0B,KAAKg7B,EAAE0wyB,KAAK,GAAGtK,OAAO,GAC7B5zwB,EAAIxtD,KAAKg7B,EAAE0iL,YAGf,IAFAlwJ,EAAI,IAAI0xwB,EAAG,EAAI1xwB,EAAIA,GAAGugxB,MAAM/t0B,MAEW,IAAhCA,KAAK+iD,IAAIyK,EAAGsjxB,GAAM9ta,IAAI6ta,IAC3BrjxB,EAAE8gxB,QAAQuC,GAOZ,IAJA,IAAI5v0B,EAAIjB,KAAK+iD,IAAIyK,EAAG3xB,GAChBx7B,EAAIL,KAAK+iD,IAAIhiD,EAAG86B,EAAE4vyB,KAAK,GAAGrK,OAAO,IACjC3g0B,EAAIT,KAAK+iD,IAAIhiD,EAAG86B,GAChBb,EAAI9B,EACc,IAAfz4B,EAAEuia,IAAI4ta,IAAY,CAEvB,IADA,IAAI91F,EAAMr6uB,EACDO,EAAI,EAAoB,IAAjB85uB,EAAI93U,IAAI4ta,GAAY5v0B,IAClC85uB,EAAMA,EAAIg0F,SAEZ5oG,EAAOlluB,EAAIg6B,GACX,IAAIxC,EAAIx4B,KAAK+iD,IAAI9hD,EAAG,IAAIi+zB,EAAG,GAAGyL,OAAO3vyB,EAAIh6B,EAAI,IAE7CX,EAAIA,EAAEsu0B,OAAOn2yB,GACbv3B,EAAIu3B,EAAEs2yB,SACNru0B,EAAIA,EAAEku0B,OAAO1t0B,GACb+5B,EAAIh6B,CACN,CAEA,OAAOX,CACT,EAEAyt0B,EAAI5t0B,UAAU+s0B,KAAO,SAAels0B,GAClC,IAAIgw0B,EAAMhw0B,EAAEgs0B,OAAO/s0B,KAAKg7B,GACxB,OAAqB,IAAjB+1yB,EAAI9nyB,UACN8nyB,EAAI9nyB,SAAW,EACRjpC,KAAKmw0B,KAAKY,GAAK5B,UAEfnv0B,KAAKmw0B,KAAKY,EAErB,EAEAjD,EAAI5t0B,UAAU6iD,IAAM,SAAchiD,EAAG+gC,GACnC,GAAIA,EAAI++xB,SAAU,OAAO,IAAI3B,EAAG,GAAG6O,MAAM/t0B,MACzC,GAAoB,IAAhB8hC,EAAIkryB,KAAK,GAAU,OAAOjs0B,EAAEkwC,QAEhC,IACI+/xB,EAAM,IAAI1uzB,MAAM,IACpB0uzB,EAAI,GAAK,IAAI9R,EAAG,GAAG6O,MAAM/t0B,MACzBgx0B,EAAI,GAAKjw0B,EACT,IAAK,IAAIC,EAAI,EAAGA,EAAIgw0B,EAAIpw0B,OAAQI,IAC9Bgw0B,EAAIhw0B,GAAKhB,KAAKi9G,IAAI+ztB,EAAIhw0B,EAAI,GAAID,GAGhC,IAAIq5G,EAAM42tB,EAAI,GACV15zB,EAAU,EACV25zB,EAAa,EACbph0B,EAAQiyB,EAAI47K,YAAc,GAK9B,IAJc,IAAV7tM,IACFA,EAAQ,IAGL7O,EAAI8gC,EAAIlhC,OAAS,EAAGI,GAAK,EAAGA,IAAK,CAEpC,IADA,IAAIuwO,EAAOzvM,EAAIqggB,MAAMnhiB,GACZw6B,EAAI3rB,EAAQ,EAAG2rB,GAAK,EAAGA,IAAK,CACnC,IAAIq2xB,EAAOtglB,GAAQ/1M,EAAK,EACpB4+E,IAAQ42tB,EAAI,KACd52tB,EAAMp6G,KAAKwq0B,IAAIpwtB,IAGL,IAARy3sB,GAAyB,IAAZv6yB,GAKjBA,IAAY,EACZA,GAAWu6yB,GA9BE,MA+Bbof,GACwC,IAANjw0B,GAAiB,IAANw6B,KAE7C4+E,EAAMp6G,KAAKi9G,IAAI7C,EAAK42tB,EAAI15zB,IACxB25zB,EAAa,EACb35zB,EAAU,IAXR25zB,EAAa,CAYjB,CACAph0B,EAAQ,EACV,CAEA,OAAOuqG,CACT,EAEA0ztB,EAAI5t0B,UAAU8t0B,UAAY,SAAoBlsyB,GAC5C,IAAIzhC,EAAIyhC,EAAIqqyB,KAAKns0B,KAAKg7B,GAEtB,OAAO36B,IAAMyhC,EAAMzhC,EAAE4wC,QAAU5wC,CACjC,EAEAyt0B,EAAI5t0B,UAAUiu0B,YAAc,SAAsBrsyB,GAChD,IAAIs4E,EAAMt4E,EAAImP,QAEd,OADAmpE,EAAIjtG,IAAM,KACHitG,CACT,EAMA8ktB,EAAGgS,KAAO,SAAepvyB,GACvB,OAAO,IAAIouyB,EAAKpuyB,EAClB,EAkBAmzsB,EAASi7F,EAAMpC,GAEfoC,EAAKhw0B,UAAU8t0B,UAAY,SAAoBlsyB,GAC7C,OAAO9hC,KAAKmw0B,KAAKruyB,EAAIqpyB,MAAMnr0B,KAAKi8B,OAClC,EAEAi0yB,EAAKhw0B,UAAUiu0B,YAAc,SAAsBrsyB,GACjD,IAAIzhC,EAAIL,KAAKmw0B,KAAKruyB,EAAIm7E,IAAIj9G,KAAKow0B,OAE/B,OADA/v0B,EAAE8M,IAAM,KACD9M,CACT,EAEA6v0B,EAAKhw0B,UAAU+m0B,KAAO,SAAelm0B,EAAGy3B,GACtC,GAAIz3B,EAAE8/zB,UAAYroyB,EAAEqoyB,SAGlB,OAFA9/zB,EAAEohiB,MAAM,GAAK,EACbphiB,EAAEH,OAAS,EACJG,EAGT,IAAIN,EAAIM,EAAEkm0B,KAAKzuyB,GACXv3B,EAAIR,EAAE8q0B,MAAMvr0B,KAAKi8B,OAAOghF,IAAIj9G,KAAKqw0B,MAAM/E,OAAOtr0B,KAAKi8B,OAAOghF,IAAIj9G,KAAKg7B,GACnEsyB,EAAI7sD,EAAE0i0B,KAAKli0B,GAAGmg0B,OAAOph0B,KAAKi8B,OAC1Bm+E,EAAM9sD,EAQV,OANIA,EAAE01W,IAAIhja,KAAKg7B,IAAM,EACnBo/E,EAAM9sD,EAAE61wB,KAAKnj0B,KAAKg7B,GACTsyB,EAAE0/wB,KAAK,GAAK,IACrB5ytB,EAAM9sD,EAAE41wB,KAAKlj0B,KAAKg7B,IAGbo/E,EAAI6ztB,UAAUju0B,KACvB,EAEAkw0B,EAAKhw0B,UAAU+8G,IAAM,SAAcl8G,EAAGy3B,GACpC,GAAIz3B,EAAE8/zB,UAAYroyB,EAAEqoyB,SAAU,OAAO,IAAI3B,EAAG,GAAG+O,UAAUju0B,MAEzD,IAAIS,EAAIM,EAAEk8G,IAAIzkF,GACVv3B,EAAIR,EAAE8q0B,MAAMvr0B,KAAKi8B,OAAOghF,IAAIj9G,KAAKqw0B,MAAM/E,OAAOtr0B,KAAKi8B,OAAOghF,IAAIj9G,KAAKg7B,GACnEsyB,EAAI7sD,EAAE0i0B,KAAKli0B,GAAGmg0B,OAAOph0B,KAAKi8B,OAC1Bm+E,EAAM9sD,EAOV,OANIA,EAAE01W,IAAIhja,KAAKg7B,IAAM,EACnBo/E,EAAM9sD,EAAE61wB,KAAKnj0B,KAAKg7B,GACTsyB,EAAE0/wB,KAAK,GAAK,IACrB5ytB,EAAM9sD,EAAE41wB,KAAKlj0B,KAAKg7B,IAGbo/E,EAAI6ztB,UAAUju0B,KACvB,EAEAkw0B,EAAKhw0B,UAAU+s0B,KAAO,SAAels0B,GAGnC,OADUf,KAAKmw0B,KAAKpv0B,EAAEgs0B,OAAO/s0B,KAAKg7B,GAAGiiF,IAAIj9G,KAAKss0B,KACnC2B,UAAUju0B,KACvB,CACD,CA19GD,YA09G4CA,6BC19G5CilN,EAAOrtL,QAAU,EAAjBqtL,8BCAA,IAAIvjL,EAAS1K,EAAAA,OAAAA,OACTi0vB,EAAaj0vB,EAAQ,OACrBi/E,EAASj/E,EAAQ,MACjBi+sB,EAAWj+sB,EAAQ,OACnBuI,EAAOvI,EAAQ,OACfqrzB,EAASrrzB,EAAQ,OAEjBsrzB,EAAatrzB,EAAQ,OAMzB,SAASurzB,EAAMniuB,GACbnK,EAAOusuB,SAAS18zB,KAAK9lB,MAErB,IAAI2J,EAAO240B,EAAWliuB,GACtB,IAAKz2G,EAAM,MAAM,IAAIxJ,MAAM,0BAE3BH,KAAKyi1B,UAAY940B,EAAKi0B,KACtB59B,KAAK0i1B,MAAQz3D,EAAWthxB,EAAKi0B,MAC7B59B,KAAK2i1B,KAAOh50B,EAAKjB,GACjB1I,KAAK4i1B,UAAYj50B,EAAK41B,IACxB,CAuBA,SAASsjzB,EAAQziuB,GACfnK,EAAOusuB,SAAS18zB,KAAK9lB,MAErB,IAAI2J,EAAO240B,EAAWliuB,GACtB,IAAKz2G,EAAM,MAAM,IAAIxJ,MAAM,0BAE3BH,KAAK0i1B,MAAQz3D,EAAWthxB,EAAKi0B,MAC7B59B,KAAK2i1B,KAAOh50B,EAAKjB,GACjB1I,KAAK4i1B,UAAYj50B,EAAK41B,IACxB,CAuBA,SAAS6rvB,EAAYhrqB,GACnB,OAAO,IAAImiuB,EAAKniuB,EAClB,CAEA,SAAS0iuB,EAAc1iuB,GACrB,OAAO,IAAIyiuB,EAAOziuB,EACpB,CA5EArgG,OAAOwE,KAAK+9zB,GAAYt9zB,SAAQ,SAAUC,GACxCq9zB,EAAWr9zB,GAAKvc,GAAKg5B,EAAO3d,KAAKu+zB,EAAWr9zB,GAAKvc,GAAI,OACrD450B,EAAWr9zB,EAAIpF,eAAiByi0B,EAAWr9zB,EAC7C,IAaAgwtB,EAASstG,EAAMtsuB,EAAOusuB,UAEtBD,EAAKri1B,UAAUwxyB,OAAS,SAAiB/nyB,EAAM+wB,EAAG1U,GAChDhmB,KAAK0i1B,MAAMrrzB,OAAO1tB,GAClBqc,GACF,EAEAu8zB,EAAKri1B,UAAUm3B,OAAS,SAAiB1tB,EAAM8ruB,GAI7C,MAHoB,kBAAT9ruB,IAAmBA,EAAO+3B,EAAO3d,KAAKpa,EAAM8ruB,IAEvDz1uB,KAAK0i1B,MAAMrrzB,OAAO1tB,GACX3J,IACT,EAEAui1B,EAAKri1B,UAAUq/B,KAAO,SAAqBta,EAAKwwtB,GAC9Cz1uB,KAAK8P,MACL,IAAI8tB,EAAO59B,KAAK0i1B,MAAMjrzB,SAClBsrzB,EAAMxjzB,EAAK3B,EAAM3Y,EAAKjlB,KAAKyi1B,UAAWzi1B,KAAK4i1B,UAAW5i1B,KAAK2i1B,MAE/D,OAAOltG,EAAMstG,EAAIxh1B,SAASk0uB,GAAOstG,CACnC,EAYA9tG,EAAS4tG,EAAQ5suB,EAAOusuB,UAExBK,EAAO3i1B,UAAUwxyB,OAAS,SAAiB/nyB,EAAM+wB,EAAG1U,GAClDhmB,KAAK0i1B,MAAMrrzB,OAAO1tB,GAClBqc,GACF,EAEA68zB,EAAO3i1B,UAAUm3B,OAAS,SAAiB1tB,EAAM8ruB,GAI/C,MAHoB,kBAAT9ruB,IAAmBA,EAAO+3B,EAAO3d,KAAKpa,EAAM8ruB,IAEvDz1uB,KAAK0i1B,MAAMrrzB,OAAO1tB,GACX3J,IACT,EAEA6i1B,EAAO3i1B,UAAUmi1B,OAAS,SAAuBp9zB,EAAK89zB,EAAKttG,GACtC,kBAARstG,IAAkBA,EAAMrhzB,EAAO3d,KAAKg/zB,EAAKttG,IAEpDz1uB,KAAK8P,MACL,IAAI8tB,EAAO59B,KAAK0i1B,MAAMjrzB,SACtB,OAAO4qzB,EAAOU,EAAKnlzB,EAAM3Y,EAAKjlB,KAAK4i1B,UAAW5i1B,KAAK2i1B,KACrD,EAUA19nB,EAAOrtL,QAAU,CACf2qzB,KAAMn3D,EACNy3D,OAAQC,EACR13D,WAAYA,EACZ03D,aAAcA,0BCzFhB,IAAIphzB,EAAS1K,EAAAA,OAAAA,OACTm0vB,EAAan0vB,EAAQ,OACrBoqzB,EAAMpqzB,EAAQ,OACdgszB,EAAKhszB,EAAAA,MAAAA,GACLkoyB,EAAKloyB,EAAQ,OACbiszB,EAAYjszB,EAAQ,OACpBkszB,EAASlszB,EAAQ,MAyErB,SAAS81sB,EAAQ3huB,EAAG0wB,EAAG+B,EAAMi9K,GAE3B,IADA1vM,EAAIu2B,EAAO3d,KAAK5Y,EAAEmzH,YACZ19H,OAASi7B,EAAEgE,aAAc,CAC7B,IAAIugyB,EAAQ1+xB,EAAO05E,MAAMv/E,EAAEgE,aAAe10B,EAAEvK,QAC5CuK,EAAIu2B,EAAOhf,OAAO,CAAC09yB,EAAOj1zB,GAC5B,CACA,IAAIg40B,EAAOvlzB,EAAKh9B,OACZwi1B,EAkBN,SAAsB3loB,EAAM5hL,GAC1B4hL,EAAO4loB,EAAS5loB,EAAM5hL,GACtB4hL,EAAOA,EAAKjhL,IAAIX,GAChB,IAAIyN,EAAM5H,EAAO3d,KAAK05L,EAAKn/E,WAC3B,GAAIh1F,EAAI1oC,OAASi7B,EAAEgE,aAAc,CAC/B,IAAIugyB,EAAQ1+xB,EAAO05E,MAAMv/E,EAAEgE,aAAeyJ,EAAI1oC,QAC9C0oC,EAAM5H,EAAOhf,OAAO,CAAC09yB,EAAO92xB,GAC9B,CACA,OAAOA,CACT,CA3Bcg6yB,CAAY1lzB,EAAM/B,GAC1Brb,EAAIkhB,EAAO05E,MAAM+nuB,GACrB3i0B,EAAE7U,KAAK,GACP,IAAIsvB,EAAIyG,EAAO05E,MAAM+nuB,GAKrB,OAJAlozB,EAAIkwvB,EAAWtwkB,EAAM5/K,GAAG5D,OAAO7W,GAAG6W,OAAOqK,EAAO3d,KAAK,CAAC,KAAKsT,OAAOlsB,GAAGksB,OAAO+rzB,GAAO3rzB,SACnFjX,EAAI2qwB,EAAWtwkB,EAAM5/K,GAAG5D,OAAO7W,GAAGiX,SAG3B,CAAEwD,EAFTA,EAAIkwvB,EAAWtwkB,EAAM5/K,GAAG5D,OAAO7W,GAAG6W,OAAOqK,EAAO3d,KAAK,CAAC,KAAKsT,OAAOlsB,GAAGksB,OAAO+rzB,GAAO3rzB,SAEpEjX,EADfA,EAAI2qwB,EAAWtwkB,EAAM5/K,GAAG5D,OAAO7W,GAAGiX,SAEpC,CAEA,SAAS4rzB,EAAUE,EAAO1nzB,GACxB,IAAI4hL,EAAO,IAAIyhnB,EAAGqkB,GACdtnzB,GAASsnzB,EAAM3i1B,QAAU,GAAKi7B,EAAE6hL,YAEpC,OADIzhL,EAAQ,GAAGwhL,EAAKwtnB,MAAMhvyB,GACnBwhL,CACT,CAaA,SAAS+loB,EAAS3nzB,EAAG4nzB,EAAI5ooB,GACvB,IAAIp6M,EACAw6B,EAEJ,EAAG,CAGD,IAFAx6B,EAAIihC,EAAO05E,MAAM,GAEC,EAAX36G,EAAEG,OAAai7B,EAAE6hL,aACtB+loB,EAAGjj0B,EAAI2qwB,EAAWtwkB,EAAM4ooB,EAAGxozB,GAAG5D,OAAOoszB,EAAGjj0B,GAAGiX,SAC3Ch3B,EAAIihC,EAAOhf,OAAO,CAACjiB,EAAGgj1B,EAAGjj0B,IAG3Bya,EAAIoozB,EAAS5i1B,EAAGo7B,GAChB4nzB,EAAGxozB,EAAIkwvB,EAAWtwkB,EAAM4ooB,EAAGxozB,GAAG5D,OAAOoszB,EAAGjj0B,GAAG6W,OAAOqK,EAAO3d,KAAK,CAAC,KAAK0T,SACpEgszB,EAAGjj0B,EAAI2qwB,EAAWtwkB,EAAM4ooB,EAAGxozB,GAAG5D,OAAOoszB,EAAGjj0B,GAAGiX,QAC7C,QAAuB,IAAdwD,EAAE+nY,IAAInnY,IAEf,OAAOZ,CACT,CAEA,SAASyozB,EAAOjpzB,EAAGQ,EAAGtC,EAAGkD,GACvB,OAAOpB,EAAEszyB,MAAM7O,EAAGgS,KAAKv4yB,IAAIy2yB,OAAOn0yB,GAAGizyB,UAAU1xyB,IAAIX,EACrD,CAEAopL,EAAOrtL,QAnIP,SAAegG,EAAM3Y,EAAK0+zB,EAAUx3P,EAAUx8d,GAC5C,IAAIqxtB,EAAOiC,EAAUh+zB,GACrB,GAAI+7zB,EAAK4C,MAAO,CAEd,GAAiB,UAAbz3P,GAAqC,cAAbA,EAA0B,MAAM,IAAIhslB,MAAM,0BACtE,OAmBJ,SAAiBy9B,EAAMojzB,GACrB,IAAI6C,EAAUX,EAAOlC,EAAK4C,MAAM58zB,KAAK,MACrC,IAAK68zB,EAAS,MAAM,IAAI1j1B,MAAM,iBAAmB6g1B,EAAK4C,MAAM58zB,KAAK,MAEjE,IACI/B,EADQ,IAAI+9zB,EAAGa,GACHC,eAAe9C,EAAKhxT,YAChC1mf,EAAMrkB,EAAIsa,KAAK3B,GAEnB,OAAO8D,EAAO3d,KAAKulB,EAAIy6yB,QACzB,CA5BWC,CAAOpmzB,EAAMojzB,EACtB,CAAO,GAAkB,QAAdA,EAAK/80B,KAAgB,CAC9B,GAAiB,QAAbkolB,EAAoB,MAAM,IAAIhslB,MAAM,0BACxC,OA2BJ,SAAkBy9B,EAAMojzB,EAAMnmoB,GAC5B,IAKI5/K,EALA9vB,EAAI610B,EAAKnoxB,OAAOorxB,SAChBtrzB,EAAIqozB,EAAKnoxB,OAAOlgC,EAChBkD,EAAImlzB,EAAKnoxB,OAAOh9B,EAChBpB,EAAIumzB,EAAKnoxB,OAAOp+B,EAChBp6B,EAAI,IAAI6+zB,EAAG,GAEXnxwB,EAAIs1xB,EAASzlzB,EAAM/B,GAAGW,IAAIX,GAC1B3C,GAAI,EACJuqzB,EAAK32G,EAAO3huB,EAAG0wB,EAAG+B,EAAMi9K,GAC5B,MAAa,IAAN3hL,GAEL74B,EAAIqj1B,EAAMjpzB,EADVQ,EAAIuozB,EAAQ3nzB,EAAG4nzB,EAAI5ooB,GACHliL,EAAGkD,GAED,KADlB3C,EAAI+B,EAAEgyyB,KAAKpxyB,GAAGoryB,KAAKl5wB,EAAExnB,IAAIp7B,EAAE8xG,IAAI58G,KAAKm8B,IAAIX,IAClCmxyB,KAAK,KACT9zyB,GAAI,EACJ74B,EAAI,IAAI6+zB,EAAG,IAGf,OAGF,SAAgB7+zB,EAAG64B,GACjB74B,EAAIA,EAAEi+H,UACNplG,EAAIA,EAAEolG,UAGK,IAAPj+H,EAAE,KAAWA,EAAI,CAAC,GAAGqiB,OAAOriB,IACrB,IAAP64B,EAAE,KAAWA,EAAI,CAAC,GAAGxW,OAAOwW,IAEhC,IAAIy7E,EAAQt0G,EAAEO,OAASs4B,EAAEt4B,OAAS,EAC9Bw5G,EAAM,CAAC,GAAMzF,EAAO,EAAMt0G,EAAEO,QAEhC,OADAw5G,EAAMA,EAAI13F,OAAOriB,EAAG,CAAC,EAAM64B,EAAEt4B,QAASs4B,GAC/BwI,EAAO3d,KAAKq2F,EACrB,CAfS2puB,CAAM1j1B,EAAG64B,EAClB,CA/CWgrzB,CAAQtmzB,EAAMojzB,EAAM2C,EAC7B,CACE,GAAiB,QAAbx3P,GAAmC,cAAbA,EAA0B,MAAM,IAAIhslB,MAAM,0BAEtEy9B,EAAO8D,EAAOhf,OAAO,CAACitG,EAAK/xF,IAG3B,IAFA,IAAIrX,EAAMy6zB,EAAKC,QAAQphzB,aACnB0mjB,EAAM,CAAC,EAAG,GACP3ojB,EAAKh9B,OAAS2llB,EAAI3llB,OAAS,EAAI2lB,GAAKggkB,EAAI3kkB,KAAK,KACpD2kkB,EAAI3kkB,KAAK,GAET,IADA,IAAI5gB,GAAK,IACAA,EAAI48B,EAAKh9B,QAAQ2llB,EAAI3kkB,KAAKgc,EAAK58B,IAGxC,OADUog1B,EAAI76P,EAAKy6P,EAErB,EA8GA/7nB,EAAOrtL,QAAQk1sB,OAASA,EACxB7nhB,EAAOrtL,QAAQ4rzB,QAAUA,yBC7IzB,IAAI9hzB,EAAS1K,EAAAA,OAAAA,OACTkoyB,EAAKloyB,EAAQ,OACbgszB,EAAKhszB,EAAAA,MAAAA,GACLiszB,EAAYjszB,EAAQ,OACpBkszB,EAASlszB,EAAQ,MAyErB,SAASmtzB,EAAY3rzB,EAAGqD,GACtB,GAAIrD,EAAEw0yB,KAAK,IAAM,EAAG,MAAM,IAAI7s0B,MAAM,eACpC,GAAIq4B,EAAEwqY,IAAInnY,IAAMA,EAAG,MAAM,IAAI17B,MAAM,cACrC,CAEA8kN,EAAOrtL,QA5EP,SAAiBmrzB,EAAKnlzB,EAAM3Y,EAAKknkB,EAAUx8d,GACzC,IAAIy0tB,EAAMnB,EAAUh+zB,GACpB,GAAiB,OAAbm/zB,EAAIng1B,KAAe,CAErB,GAAiB,UAAbkolB,GAAqC,cAAbA,EAA0B,MAAM,IAAIhslB,MAAM,yBACtE,OAmCJ,SAAmB4i1B,EAAKnlzB,EAAMwmzB,GAC5B,IAAIP,EAAUX,EAAOkB,EAAIz60B,KAAKy2G,UAAUwjuB,MAAM58zB,KAAK,MACnD,IAAK68zB,EAAS,MAAM,IAAI1j1B,MAAM,iBAAmBik1B,EAAIz60B,KAAKy2G,UAAUwjuB,MAAM58zB,KAAK,MAE/E,IAAI48zB,EAAQ,IAAIZ,EAAGa,GACfQ,EAASD,EAAIz60B,KAAK260B,kBAAkB360B,KAExC,OAAOi60B,EAAMvB,OAAOzkzB,EAAMmlzB,EAAKsB,EACjC,CA3CWE,CAASxB,EAAKnlzB,EAAMwmzB,EAC7B,CAAO,GAAiB,QAAbA,EAAIng1B,KAAgB,CAC7B,GAAiB,QAAbkolB,EAAoB,MAAM,IAAIhslB,MAAM,yBACxC,OA0CJ,SAAoB4i1B,EAAKnlzB,EAAMwmzB,GAC7B,IAAIzrzB,EAAIyrzB,EAAIz60B,KAAKgvB,EACbkD,EAAIuozB,EAAIz60B,KAAKkyB,EACbpB,EAAI2pzB,EAAIz60B,KAAK8wB,EACb7vB,EAAIw50B,EAAIz60B,KAAK660B,QACbC,EAAWxB,EAAUxvyB,UAAU9S,OAAOoizB,EAAK,OAC3C7pzB,EAAIurzB,EAASvrzB,EACb74B,EAAIok1B,EAASpk1B,EACjB8j1B,EAAWjrzB,EAAG2C,GACdsozB,EAAW9j1B,EAAGw7B,GACd,IAAI6ozB,EAAQxlB,EAAGgS,KAAKv4yB,GAChB40B,EAAIr0B,EAAE+zyB,KAAKpxyB,GACXrb,EAAIia,EAAEszyB,MAAM2W,GACbtV,OAAO,IAAIlQ,EAAGthyB,GAAMq/E,IAAI1vD,GAAG/wB,IAAIX,IAC/BqyyB,UACAjxtB,IAAIryG,EAAEmj0B,MAAM2W,GAAOtV,OAAO/u0B,EAAE48G,IAAI1vD,GAAG/wB,IAAIX,IAAIqyyB,WAC3C1xyB,IAAI7D,GACJ6D,IAAIX,GACP,OAAoB,IAAbrb,EAAEwiZ,IAAI3ia,EACf,CA7DWsk1B,CAAU5B,EAAKnlzB,EAAMwmzB,EAC9B,CACE,GAAiB,QAAbj4P,GAAmC,cAAbA,EAA0B,MAAM,IAAIhslB,MAAM,yBAEtEy9B,EAAO8D,EAAOhf,OAAO,CAACitG,EAAK/xF,IAI3B,IAHA,IAAIrX,EAAM69zB,EAAInD,QAAQphzB,aAClB0mjB,EAAM,CAAC,GACPq+P,EAAS,EACNhnzB,EAAKh9B,OAAS2llB,EAAI3llB,OAAS,EAAI2lB,GACpCggkB,EAAI3kkB,KAAK,KACTgj0B,IAEFr+P,EAAI3kkB,KAAK,GAET,IADA,IAAI5gB,GAAK,IACAA,EAAI48B,EAAKh9B,QAChB2llB,EAAI3kkB,KAAKgc,EAAK58B,IAEhBullB,EAAM7kjB,EAAO3d,KAAKwikB,GAClB,IAAIp5kB,EAAM+xzB,EAAGgS,KAAKkT,EAAInD,SAGtB8B,GAFAA,EAAM,IAAI7jB,EAAG6jB,GAAKhV,MAAM5g0B,IAEdii0B,OAAO,IAAIlQ,EAAGklB,EAAI7C,iBAC5BwB,EAAMrhzB,EAAO3d,KAAKg/zB,EAAI7U,UAAU5vsB,WAChC,IAAIh1F,EAAMs7yB,EAAS,EAAI,EAAI,EAK3B,IAJAr+zB,EAAMqiB,KAAKuZ,IAAI4gyB,EAAIni1B,OAAQ2llB,EAAI3llB,QAC3Bmi1B,EAAIni1B,SAAW2llB,EAAI3llB,SAAQ0oC,EAAM,GAErCtoC,GAAK,IACIA,EAAIulB,GAAK+iB,GAAOy5yB,EAAI/h1B,GAAKullB,EAAIvllB,GACtC,OAAe,IAARsoC,CACT,0BC7CA,SAAW27K,EAAQrtL,GACjB,aAGA,SAASsusB,EAAQr2nB,EAAKtiE,GACpB,IAAKsiE,EAAK,MAAM,IAAI1vG,MAAMotC,GAAO,mBACnC,CAIA,SAAS0nsB,EAAUnlsB,EAAMivxB,GACvBjvxB,EAAKkvxB,OAASD,EACd,IAAIE,EAAW,WAAa,EAC5BA,EAAS/+zB,UAAY6+zB,EAAU7+zB,UAC/B4vC,EAAK5vC,UAAY,IAAI++zB,EACrBnvxB,EAAK5vC,UAAUmmB,YAAcypB,CAC/B,CAIA,SAASovxB,EAAIx2xB,EAAQs8I,EAAMm6oB,GACzB,GAAID,EAAGE,KAAK12xB,GACV,OAAOA,EAGT1oC,KAAKipC,SAAW,EAChBjpC,KAAKmiiB,MAAQ,KACbniiB,KAAKY,OAAS,EAGdZ,KAAKmN,IAAM,KAEI,OAAXu7B,IACW,OAATs8I,GAA0B,OAATA,IACnBm6oB,EAASn6oB,EACTA,EAAO,IAGThlL,KAAK42uB,MAAMlusB,GAAU,EAAGs8I,GAAQ,GAAIm6oB,GAAU,MAElD,CAUA,IAAIz9xB,EATkB,kBAAXujL,EACTA,EAAOrtL,QAAUsnyB,EAEjBtnyB,EAAQsnyB,GAAKA,EAGfA,EAAGA,GAAKA,EACRA,EAAGG,SAAW,GAGd,IAEI39xB,EADoB,qBAAXphC,QAAmD,qBAAlBA,OAAOohC,OACxCphC,OAAOohC,OAEP1K,EAAAA,MAAAA,MAEb,CAAE,MAAOj3B,GACT,CA+HA,SAASu/zB,EAAevotB,EAAQ3jF,GAC9B,IAAInyB,EAAI81G,EAAOz1G,WAAW8xB,GAE1B,OAAInyB,GAAK,IAAMA,GAAK,GACXA,EAAI,GAEFA,GAAK,IAAMA,GAAK,GAClBA,EAAI,GAEFA,GAAK,IAAMA,GAAK,IAClBA,EAAI,QAEXiluB,GAAO,EAAO,wBAA0BnvnB,EAE5C,CAEA,SAASwotB,EAAcxotB,EAAQyotB,EAAYpsyB,GACzC,IAAI/yB,EAAIi/zB,EAAcvotB,EAAQ3jF,GAI9B,OAHIA,EAAQ,GAAKosyB,IACfn/zB,GAAKi/zB,EAAcvotB,EAAQ3jF,EAAQ,IAAM,GAEpC/yB,CACT,CA6CA,SAASo/zB,EAAW93xB,EAAK93B,EAAOC,EAAKmtG,GAInC,IAHA,IAAI58G,EAAI,EACJm4B,EAAI,EACJjS,EAAMqiB,KAAKuZ,IAAIxa,EAAI/mC,OAAQkP,GACtB9O,EAAI6O,EAAO7O,EAAIulB,EAAKvlB,IAAK,CAChC,IAAIC,EAAI0mC,EAAIrmC,WAAWN,GAAK,GAE5BX,GAAK48G,EAIHzkF,EADEv3B,GAAK,GACHA,EAAI,GAAK,GAGJA,GAAK,GACVA,EAAI,GAAK,GAITA,EAENiluB,EAAOjluB,GAAK,GAAKu3B,EAAIykF,EAAK,qBAC1B58G,GAAKm4B,CACP,CACA,OAAOn4B,CACT,CA2DA,SAAS4+X,EAAM7zL,EAAM97L,GACnB87L,EAAK+2V,MAAQ7yhB,EAAI6yhB,MACjB/2V,EAAKxqM,OAAS0O,EAAI1O,OAClBwqM,EAAKniK,SAAW35B,EAAI25B,SACpBmiK,EAAKj+L,IAAMmC,EAAInC,GACjB,CAqCA,GA9TA+xzB,EAAGE,KAAO,SAAet9xB,GACvB,OAAIA,aAAeo9xB,GAIJ,OAARp9xB,GAA+B,kBAARA,GAC5BA,EAAIzb,YAAYg5yB,WAAaH,EAAGG,UAAY/8yB,MAAMC,QAAQuf,EAAIqggB,MAClE,EAEA+8R,EAAGl8wB,IAAM,SAAc69E,EAAMH,GAC3B,OAAIG,EAAKmiS,IAAItiS,GAAS,EAAUG,EACzBH,CACT,EAEAw+rB,EAAG/8wB,IAAM,SAAc0+E,EAAMH,GAC3B,OAAIG,EAAKmiS,IAAItiS,GAAS,EAAUG,EACzBH,CACT,EAEAw+rB,EAAGh/zB,UAAU02uB,MAAQ,SAAelusB,EAAQs8I,EAAMm6oB,GAChD,GAAsB,kBAAXz2xB,EACT,OAAO1oC,KAAK0/zB,YAAYh3xB,EAAQs8I,EAAMm6oB,GAGxC,GAAsB,kBAAXz2xB,EACT,OAAO1oC,KAAK2/zB,WAAWj3xB,EAAQs8I,EAAMm6oB,GAG1B,QAATn6oB,IACFA,EAAO,IAETkhjB,EAAOlhjB,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,IAGnD,IAAIn1K,EAAQ,EACM,OAFlB64B,EAASA,EAAOnnC,WAAWZ,QAAQ,OAAQ,KAEhC,KACTkP,IACA7P,KAAKipC,SAAW,GAGdp5B,EAAQ64B,EAAO9nC,SACJ,KAATokL,EACFhlL,KAAK4/zB,UAAUl3xB,EAAQ74B,EAAOsvzB,IAE9Bn/zB,KAAK6/zB,WAAWn3xB,EAAQs8I,EAAMn1K,GACf,OAAXsvzB,GACFn/zB,KAAK2/zB,WAAW3/zB,KAAKs+H,UAAW0mD,EAAMm6oB,IAI9C,EAEAD,EAAGh/zB,UAAUw/zB,YAAc,SAAsBh3xB,EAAQs8I,EAAMm6oB,GACzDz2xB,EAAS,IACX1oC,KAAKipC,SAAW,EAChBP,GAAUA,GAERA,EAAS,UACX1oC,KAAKmiiB,MAAQ,CAAU,SAATz5f,GACd1oC,KAAKY,OAAS,GACL8nC,EAAS,kBAClB1oC,KAAKmiiB,MAAQ,CACF,SAATz5f,EACCA,EAAS,SAAa,UAEzB1oC,KAAKY,OAAS,IAEdsluB,EAAOx9rB,EAAS,kBAChB1oC,KAAKmiiB,MAAQ,CACF,SAATz5f,EACCA,EAAS,SAAa,SACvB,GAEF1oC,KAAKY,OAAS,GAGD,OAAXu+zB,GAGJn/zB,KAAK2/zB,WAAW3/zB,KAAKs+H,UAAW0mD,EAAMm6oB,EACxC,EAEAD,EAAGh/zB,UAAUy/zB,WAAa,SAAqBj3xB,EAAQs8I,EAAMm6oB,GAG3D,GADAj5F,EAAgC,kBAAlBx9rB,EAAO9nC,QACjB8nC,EAAO9nC,QAAU,EAGnB,OAFAZ,KAAKmiiB,MAAQ,CAAC,GACdniiB,KAAKY,OAAS,EACPZ,KAGTA,KAAKY,OAASgoC,KAAK8wI,KAAKhxI,EAAO9nC,OAAS,GACxCZ,KAAKmiiB,MAAQ,IAAI7/gB,MAAMtiB,KAAKY,QAC5B,IAAK,IAAII,EAAI,EAAGA,EAAIhB,KAAKY,OAAQI,IAC/BhB,KAAKmiiB,MAAMnhiB,GAAK,EAGlB,IAAIw6B,EAAG+xB,EACHynD,EAAM,EACV,GAAe,OAAXmqtB,EACF,IAAKn+zB,EAAI0nC,EAAO9nC,OAAS,EAAG46B,EAAI,EAAGx6B,GAAK,EAAGA,GAAK,EAC9CusD,EAAI7kB,EAAO1nC,GAAM0nC,EAAO1nC,EAAI,IAAM,EAAM0nC,EAAO1nC,EAAI,IAAM,GACzDhB,KAAKmiiB,MAAM3mgB,IAAO+xB,GAAKynD,EAAO,SAC9Bh1G,KAAKmiiB,MAAM3mgB,EAAI,GAAM+xB,IAAO,GAAKynD,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACPx5E,UAGC,GAAe,OAAX2jyB,EACT,IAAKn+zB,EAAI,EAAGw6B,EAAI,EAAGx6B,EAAI0nC,EAAO9nC,OAAQI,GAAK,EACzCusD,EAAI7kB,EAAO1nC,GAAM0nC,EAAO1nC,EAAI,IAAM,EAAM0nC,EAAO1nC,EAAI,IAAM,GACzDhB,KAAKmiiB,MAAM3mgB,IAAO+xB,GAAKynD,EAAO,SAC9Bh1G,KAAKmiiB,MAAM3mgB,EAAI,GAAM+xB,IAAO,GAAKynD,EAAQ,UACzCA,GAAO,KACI,KACTA,GAAO,GACPx5E,KAIN,OAAOx7B,KAAKyw0B,QACd,EA0BAvR,EAAGh/zB,UAAU0/zB,UAAY,SAAoBl3xB,EAAQ74B,EAAOsvzB,GAE1Dn/zB,KAAKY,OAASgoC,KAAK8wI,MAAMhxI,EAAO9nC,OAASiP,GAAS,GAClD7P,KAAKmiiB,MAAQ,IAAI7/gB,MAAMtiB,KAAKY,QAC5B,IAAK,IAAII,EAAI,EAAGA,EAAIhB,KAAKY,OAAQI,IAC/BhB,KAAKmiiB,MAAMnhiB,GAAK,EAIlB,IAGIusD,EAHAynD,EAAM,EACNx5E,EAAI,EAGR,GAAe,OAAX2jyB,EACF,IAAKn+zB,EAAI0nC,EAAO9nC,OAAS,EAAGI,GAAK6O,EAAO7O,GAAK,EAC3CusD,EAAIgywB,EAAa72xB,EAAQ74B,EAAO7O,IAAMg0G,EACtCh1G,KAAKmiiB,MAAM3mgB,IAAU,SAAJ+xB,EACbynD,GAAO,IACTA,GAAO,GACPx5E,GAAK,EACLx7B,KAAKmiiB,MAAM3mgB,IAAM+xB,IAAM,IAEvBynD,GAAO,OAKX,IAAKh0G,GADa0nC,EAAO9nC,OAASiP,GACX,IAAM,EAAIA,EAAQ,EAAIA,EAAO7O,EAAI0nC,EAAO9nC,OAAQI,GAAK,EAC1EusD,EAAIgywB,EAAa72xB,EAAQ74B,EAAO7O,IAAMg0G,EACtCh1G,KAAKmiiB,MAAM3mgB,IAAU,SAAJ+xB,EACbynD,GAAO,IACTA,GAAO,GACPx5E,GAAK,EACLx7B,KAAKmiiB,MAAM3mgB,IAAM+xB,IAAM,IAEvBynD,GAAO,EAKbh1G,KAAKyw0B,QACP,EA6BAvR,EAAGh/zB,UAAU2/zB,WAAa,SAAqBn3xB,EAAQs8I,EAAMn1K,GAE3D7P,KAAKmiiB,MAAQ,CAAC,GACdniiB,KAAKY,OAAS,EAGd,IAAK,IAAIk/zB,EAAU,EAAGC,EAAU,EAAGA,GAAW,SAAWA,GAAW/6oB,EAClE86oB,IAEFA,IACAC,EAAWA,EAAU/6oB,EAAQ,EAO7B,IALA,IAAIrwE,EAAQjsE,EAAO9nC,OAASiP,EACxB2sB,EAAMm4E,EAAQmrtB,EACdhwzB,EAAM84B,KAAKuZ,IAAIwyD,EAAOA,EAAQn4E,GAAO3sB,EAErC0hO,EAAO,EACFvwO,EAAI6O,EAAO7O,EAAI8O,EAAK9O,GAAK8+zB,EAChCvulB,EAAOkulB,EAAU/2xB,EAAQ1nC,EAAGA,EAAI8+zB,EAAS96oB,GAEzChlL,KAAKgg0B,MAAMD,GACP//zB,KAAKmiiB,MAAM,GAAK5wT,EAAO,SACzBvxO,KAAKmiiB,MAAM,IAAM5wT,EAEjBvxO,KAAKig0B,OAAO1ulB,GAIhB,GAAY,IAAR/0M,EAAW,CACb,IAAIumB,EAAM,EAGV,IAFAwuL,EAAOkulB,EAAU/2xB,EAAQ1nC,EAAG0nC,EAAO9nC,OAAQokL,GAEtChkL,EAAI,EAAGA,EAAIw7B,EAAKx7B,IACnB+hD,GAAOiiI,EAGThlL,KAAKgg0B,MAAMj9wB,GACP/iD,KAAKmiiB,MAAM,GAAK5wT,EAAO,SACzBvxO,KAAKmiiB,MAAM,IAAM5wT,EAEjBvxO,KAAKig0B,OAAO1ulB,EAEhB,CAEAvxO,KAAKyw0B,QACP,EAEAvR,EAAGh/zB,UAAUu3G,KAAO,SAAe2zF,GACjCA,EAAK+2V,MAAQ,IAAI7/gB,MAAMtiB,KAAKY,QAC5B,IAAK,IAAII,EAAI,EAAGA,EAAIhB,KAAKY,OAAQI,IAC/BoqM,EAAK+2V,MAAMnhiB,GAAKhB,KAAKmiiB,MAAMnhiB,GAE7BoqM,EAAKxqM,OAASZ,KAAKY,OACnBwqM,EAAKniK,SAAWjpC,KAAKipC,SACrBmiK,EAAKj+L,IAAMnN,KAAKmN,GAClB,EASA+xzB,EAAGh/zB,UAAU6h1B,MAAQ,SAAgB32oB,GACnC6zL,EAAK7zL,EAAMprM,KACb,EAEAk/zB,EAAGh/zB,UAAU+wC,MAAQ,WACnB,IAAI5wC,EAAI,IAAI6+zB,EAAG,MAEf,OADAl/zB,KAAKy3G,KAAKp3G,GACHA,CACT,EAEA6+zB,EAAGh/zB,UAAUgg0B,QAAU,SAAkBn4zB,GACvC,KAAO/H,KAAKY,OAASmH,GACnB/H,KAAKmiiB,MAAMniiB,KAAKY,UAAY,EAE9B,OAAOZ,IACT,EAGAk/zB,EAAGh/zB,UAAUuw0B,OAAS,WACpB,KAAOzw0B,KAAKY,OAAS,GAAqC,IAAhCZ,KAAKmiiB,MAAMniiB,KAAKY,OAAS,IACjDZ,KAAKY,SAEP,OAAOZ,KAAKmg0B,WACd,EAEAjB,EAAGh/zB,UAAUig0B,UAAY,WAKvB,OAHoB,IAAhBng0B,KAAKY,QAAkC,IAAlBZ,KAAKmiiB,MAAM,KAClCniiB,KAAKipC,SAAW,GAEXjpC,IACT,EAIsB,qBAAX6jB,QAAgD,oBAAfA,OAAO4yF,IACjD,IACEyotB,EAAGh/zB,UAAU2jB,OAAO4yF,IAAI,+BAAiCsF,CAC3D,CAAE,MAAOh8G,GACPm/zB,EAAGh/zB,UAAU67G,QAAUA,CACzB,MAEAmjtB,EAAGh/zB,UAAU67G,QAAUA,EAGzB,SAASA,IACP,OAAQ/7G,KAAKmN,IAAM,UAAY,SAAWnN,KAAKuB,SAAS,IAAM,GAChE,CAgCA,IAAI6+zB,EAAQ,CACV,GACA,IACA,KACA,MACA,OACA,QACA,SACA,UACA,WACA,YACA,aACA,cACA,eACA,gBACA,iBACA,kBACA,mBACA,oBACA,qBACA,sBACA,uBACA,wBACA,yBACA,0BACA,2BACA,6BAGEC,EAAa,CACf,EAAG,EACH,GAAI,GAAI,GAAI,GAAI,GAAI,EAAG,EACvB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGhBC,EAAa,CACf,EAAG,EACH,SAAU,SAAU,SAAU,SAAU,SAAU,SAAU,SAC5D,SAAU,IAAU,SAAU,SAAU,SAAU,QAAS,SAC3D,SAAU,SAAU,SAAU,SAAU,KAAU,QAAS,QAC3D,QAAS,QAAS,QAAS,SAAU,SAAU,SAAU,SACzD,MAAU,SAAU,SAAU,SAAU,SAAU,SAAU,UAG9DpB,EAAGh/zB,UAAUqB,SAAW,SAAmByjL,EAAMpqK,GAI/C,IAAI0uB,EACJ,GAHA1uB,EAAoB,EAAVA,GAAe,EAGZ,MAJboqK,EAAOA,GAAQ,KAIa,QAATA,EAAgB,CACjC17I,EAAM,GAGN,IAFA,IAAI0rE,EAAM,EACNzrE,EAAQ,EACHvoC,EAAI,EAAGA,EAAIhB,KAAKY,OAAQI,IAAK,CACpC,IAAIusD,EAAIvtD,KAAKmiiB,MAAMnhiB,GACfuwO,GAA+B,UAArBhkL,GAAKynD,EAAOzrE,IAAmBhoC,SAAS,IACtDgoC,EAASgkB,IAAO,GAAKynD,EAAQ,UAC7BA,GAAO,IACI,KACTA,GAAO,GACPh0G,KAGAsoC,EADY,IAAVC,GAAevoC,IAAMhB,KAAKY,OAAS,EAC/Bw/zB,EAAM,EAAI7ulB,EAAK3wO,QAAU2wO,EAAOjoM,EAEhCioM,EAAOjoM,CAEjB,CAIA,IAHc,IAAVC,IACFD,EAAMC,EAAMhoC,SAAS,IAAM+nC,GAEtBA,EAAI1oC,OAASga,IAAY,GAC9B0uB,EAAM,IAAMA,EAKd,OAHsB,IAAlBtpC,KAAKipC,WACPK,EAAM,IAAMA,GAEPA,CACT,CAEA,GAAI07I,KAAiB,EAAPA,IAAaA,GAAQ,GAAKA,GAAQ,GAAI,CAElD,IAAI27oB,EAAYN,EAAWr7oB,GAEvB47oB,EAAYN,EAAWt7oB,GAC3B17I,EAAM,GACN,IAAIroC,EAAIjB,KAAKixC,QAEb,IADAhwC,EAAEgoC,SAAW,GACLhoC,EAAE4/zB,UAAU,CAClB,IAAIxg0B,EAAIY,EAAE+g1B,MAAMphB,GAAWr/zB,SAASyjL,GAMlC17I,GALFroC,EAAIA,EAAE8/zB,MAAMH,IAELC,SAGCxg0B,EAAIipC,EAFJ82xB,EAAMO,EAAYtg0B,EAAEO,QAAUP,EAAIipC,CAI5C,CAIA,IAHItpC,KAAK6g0B,WACPv3xB,EAAM,IAAMA,GAEPA,EAAI1oC,OAASga,IAAY,GAC9B0uB,EAAM,IAAMA,EAKd,OAHsB,IAAlBtpC,KAAKipC,WACPK,EAAM,IAAMA,GAEPA,CACT,CAEA48rB,GAAO,EAAO,kCAChB,EAEAg5F,EAAGh/zB,UAAUygN,SAAW,WACtB,IAAIrkG,EAAMt8G,KAAKmiiB,MAAM,GASrB,OARoB,IAAhBniiB,KAAKY,OACP07G,GAAuB,SAAhBt8G,KAAKmiiB,MAAM,GACO,IAAhBniiB,KAAKY,QAAkC,IAAlBZ,KAAKmiiB,MAAM,GAEzC7lb,GAAO,iBAAoC,SAAhBt8G,KAAKmiiB,MAAM,GAC7BniiB,KAAKY,OAAS,GACvBsluB,GAAO,EAAO,8CAEU,IAAlBlmuB,KAAKipC,UAAmBqzE,EAAMA,CACxC,EAEA4itB,EAAGh/zB,UAAUm8G,OAAS,WACpB,OAAOr8G,KAAKuB,SAAS,GAAI,EAC3B,EAEImgC,IACFw9xB,EAAGh/zB,UAAU86xB,SAAW,SAAmBmkC,EAAQv+zB,GACjD,OAAOZ,KAAKgh0B,YAAYt/xB,EAAQy9xB,EAAQv+zB,EAC1C,GAGFs+zB,EAAGh/zB,UAAUo+H,QAAU,SAAkB6gsB,EAAQv+zB,GAC/C,OAAOZ,KAAKgh0B,YAAY1+yB,MAAO68yB,EAAQv+zB,EACzC,EA2gBA,SAAS2/zB,EAAY18sB,EAAM/hF,EAAKwH,GAC9BA,EAAIL,SAAWnH,EAAImH,SAAW46E,EAAK56E,SACnC,IAAI1iB,EAAOs9F,EAAKjjH,OAASkhC,EAAIlhC,OAAU,EACvC0oC,EAAI1oC,OAAS2lB,EACbA,EAAOA,EAAM,EAAK,EAGlB,IAAIxlB,EAAoB,EAAhB8iH,EAAKs+a,MAAM,GACf3pgB,EAAmB,EAAfsJ,EAAIqggB,MAAM,GACd9hiB,EAAIU,EAAIy3B,EAERyhF,EAAS,SAAJ55G,EACLkpC,EAASlpC,EAAI,SAAa,EAC9BipC,EAAI64f,MAAM,GAAKlob,EAEf,IAAK,IAAIh/E,EAAI,EAAGA,EAAI1U,EAAK0U,IAAK,CAM5B,IAHA,IAAIulyB,EAASj3xB,IAAU,GACnBk3xB,EAAgB,SAARl3xB,EACRm3xB,EAAO93xB,KAAKuZ,IAAIlnB,EAAG6G,EAAIlhC,OAAS,GAC3B46B,EAAIoN,KAAKoa,IAAI,EAAG/nB,EAAI4oF,EAAKjjH,OAAS,GAAI46B,GAAKklyB,EAAMllyB,IAAK,CAC7D,IAAIx6B,EAAKi6B,EAAIO,EAAK,EAIlBglyB,IADAng0B,GAFAU,EAAoB,EAAhB8iH,EAAKs+a,MAAMnhiB,KACfw3B,EAAmB,EAAfsJ,EAAIqggB,MAAM3mgB,IACFilyB,GACG,SAAa,EAC5BA,EAAY,SAAJpg0B,CACV,CACAipC,EAAI64f,MAAMlngB,GAAa,EAARwlyB,EACfl3xB,EAAiB,EAATi3xB,CACV,CAOA,OANc,IAAVj3xB,EACFD,EAAI64f,MAAMlngB,GAAa,EAARsO,EAEfD,EAAI1oC,SAGC0oC,EAAImnyB,QACb,CAziBAvR,EAAGh/zB,UAAU8g0B,YAAc,SAAsBC,EAAW9B,EAAQv+zB,GAClEZ,KAAKyw0B,SAEL,IAAI5wyB,EAAa7/B,KAAK6/B,aAClBqhyB,EAAYtg0B,GAAUgoC,KAAKoa,IAAI,EAAGnjB,GACtCqmsB,EAAOrmsB,GAAcqhyB,EAAW,yCAChCh7F,EAAOg7F,EAAY,EAAG,+BAEtB,IAAI9mtB,EAfS,SAAmB6mtB,EAAWl5zB,GAC3C,OAAIk5zB,EAAUnqtB,YACLmqtB,EAAUnqtB,YAAY/uG,GAExB,IAAIk5zB,EAAUl5zB,EACvB,CAUYk60B,CAAShhB,EAAWC,GAG9B,OADAlh0B,KAAK,gBADoB,OAAXm/zB,EAAkB,KAAO,OACR/ktB,EAAKv6E,GAC7Bu6E,CACT,EAEA8ktB,EAAGh/zB,UAAUgi1B,eAAiB,SAAyB9nuB,EAAKv6E,GAI1D,IAHA,IAAInjB,EAAW,EACX6sB,EAAQ,EAEHvoC,EAAI,EAAGi7B,EAAQ,EAAGj7B,EAAIhB,KAAKY,OAAQI,IAAK,CAC/C,IAAIuwO,EAAQvxO,KAAKmiiB,MAAMnhiB,IAAMi7B,EAASsN,EAEtC6wE,EAAI19F,KAAqB,IAAP60N,EACd70N,EAAW09F,EAAIx5G,SACjBw5G,EAAI19F,KAAe60N,GAAQ,EAAK,KAE9B70N,EAAW09F,EAAIx5G,SACjBw5G,EAAI19F,KAAe60N,GAAQ,GAAM,KAGrB,IAAVt1M,GACEvf,EAAW09F,EAAIx5G,SACjBw5G,EAAI19F,KAAe60N,GAAQ,GAAM,KAEnChoM,EAAQ,EACRtN,EAAQ,IAERsN,EAAQgoM,IAAS,GACjBt1M,GAAS,EAEb,CAEA,GAAIvf,EAAW09F,EAAIx5G,OAGjB,IAFAw5G,EAAI19F,KAAc6sB,EAEX7sB,EAAW09F,EAAIx5G,QACpBw5G,EAAI19F,KAAc,CAGxB,EAEAwizB,EAAGh/zB,UAAUii1B,eAAiB,SAAyB/nuB,EAAKv6E,GAI1D,IAHA,IAAInjB,EAAW09F,EAAIx5G,OAAS,EACxB2oC,EAAQ,EAEHvoC,EAAI,EAAGi7B,EAAQ,EAAGj7B,EAAIhB,KAAKY,OAAQI,IAAK,CAC/C,IAAIuwO,EAAQvxO,KAAKmiiB,MAAMnhiB,IAAMi7B,EAASsN,EAEtC6wE,EAAI19F,KAAqB,IAAP60N,EACd70N,GAAY,IACd09F,EAAI19F,KAAe60N,GAAQ,EAAK,KAE9B70N,GAAY,IACd09F,EAAI19F,KAAe60N,GAAQ,GAAM,KAGrB,IAAVt1M,GACEvf,GAAY,IACd09F,EAAI19F,KAAe60N,GAAQ,GAAM,KAEnChoM,EAAQ,EACRtN,EAAQ,IAERsN,EAAQgoM,IAAS,GACjBt1M,GAAS,EAEb,CAEA,GAAIvf,GAAY,EAGd,IAFA09F,EAAI19F,KAAc6sB,EAEX7sB,GAAY,GACjB09F,EAAI19F,KAAc,CAGxB,EAEIksB,KAAKy4xB,MACPnC,EAAGh/zB,UAAUoh0B,WAAa,SAAqB/zwB,GAC7C,OAAO,GAAK3kB,KAAKy4xB,MAAM9zwB,EACzB,EAEA2xwB,EAAGh/zB,UAAUoh0B,WAAa,SAAqB/zwB,GAC7C,IAAI9sD,EAAI8sD,EACJltD,EAAI,EAiBR,OAhBII,GAAK,OACPJ,GAAK,GACLI,KAAO,IAELA,GAAK,KACPJ,GAAK,EACLI,KAAO,GAELA,GAAK,IACPJ,GAAK,EACLI,KAAO,GAELA,GAAK,IACPJ,GAAK,EACLI,KAAO,GAEFJ,EAAII,CACb,EAGFy+zB,EAAGh/zB,UAAUqh0B,UAAY,SAAoBh0wB,GAE3C,GAAU,IAANA,EAAS,OAAO,GAEpB,IAAI9sD,EAAI8sD,EACJltD,EAAI,EAoBR,OAnBqB,KAAZ,KAAJI,KACHJ,GAAK,GACLI,KAAO,IAEU,KAAV,IAAJA,KACHJ,GAAK,EACLI,KAAO,GAES,KAAT,GAAJA,KACHJ,GAAK,EACLI,KAAO,GAES,KAAT,EAAJA,KACHJ,GAAK,EACLI,KAAO,GAES,KAAT,EAAJA,IACHJ,IAEKA,CACT,EAGA6+zB,EAAGh/zB,UAAUw9M,UAAY,WACvB,IAAInwJ,EAAIvtD,KAAKmiiB,MAAMniiB,KAAKY,OAAS,GAC7Bo5G,EAAKh6G,KAAKsh0B,WAAW/zwB,GACzB,OAA2B,IAAnBvtD,KAAKY,OAAS,GAAUo5G,CAClC,EAgBAkltB,EAAGh/zB,UAAUsh0B,SAAW,WACtB,GAAIxh0B,KAAK6g0B,SAAU,OAAO,EAG1B,IADA,IAAIxg0B,EAAI,EACCW,EAAI,EAAGA,EAAIhB,KAAKY,OAAQI,IAAK,CACpC,IAAIw3B,EAAIx4B,KAAKuh0B,UAAUvh0B,KAAKmiiB,MAAMnhiB,IAElC,GADAX,GAAKm4B,EACK,KAANA,EAAU,KAChB,CACA,OAAOn4B,CACT,EAEA6+zB,EAAGh/zB,UAAU2/B,WAAa,WACxB,OAAO+I,KAAK8wI,KAAK15K,KAAK09M,YAAc,EACtC,EAEAwhnB,EAAGh/zB,UAAUuh0B,OAAS,SAAiB5vzB,GACrC,OAAsB,IAAlB7R,KAAKipC,SACAjpC,KAAK6oC,MAAM64xB,MAAM7vzB,GAAO8vzB,MAAM,GAEhC3h0B,KAAKixC,OACd,EAEAiuxB,EAAGh/zB,UAAU0h0B,SAAW,SAAmB/vzB,GACzC,OAAI7R,KAAK6h0B,MAAMhwzB,EAAQ,GACd7R,KAAK8h0B,KAAKjwzB,GAAO8vzB,MAAM,GAAGI,OAE5B/h0B,KAAKixC,OACd,EAEAiuxB,EAAGh/zB,UAAU8h0B,MAAQ,WACnB,OAAyB,IAAlBhi0B,KAAKipC,QACd,EAGAi2xB,EAAGh/zB,UAAU+h0B,IAAM,WACjB,OAAOji0B,KAAKixC,QAAQ8wxB,MACtB,EAEA7C,EAAGh/zB,UAAU6h0B,KAAO,WAKlB,OAJK/h0B,KAAK6g0B,WACR7g0B,KAAKipC,UAAY,GAGZjpC,IACT,EAGAk/zB,EAAGh/zB,UAAUgi0B,KAAO,SAAepgyB,GACjC,KAAO9hC,KAAKY,OAASkhC,EAAIlhC,QACvBZ,KAAKmiiB,MAAMniiB,KAAKY,UAAY,EAG9B,IAAK,IAAII,EAAI,EAAGA,EAAI8gC,EAAIlhC,OAAQI,IAC9BhB,KAAKmiiB,MAAMnhiB,GAAKhB,KAAKmiiB,MAAMnhiB,GAAK8gC,EAAIqggB,MAAMnhiB,GAG5C,OAAOhB,KAAKyw0B,QACd,EAEAvR,EAAGh/zB,UAAUii0B,IAAM,SAAcrgyB,GAE/B,OADAoksB,EAA0C,KAAlClmuB,KAAKipC,SAAWnH,EAAImH,WACrBjpC,KAAKki0B,KAAKpgyB,EACnB,EAGAo9xB,EAAGh/zB,UAAUki0B,GAAK,SAAatgyB,GAC7B,OAAI9hC,KAAKY,OAASkhC,EAAIlhC,OAAeZ,KAAKixC,QAAQkxxB,IAAIrgyB,GAC/CA,EAAImP,QAAQkxxB,IAAIni0B,KACzB,EAEAk/zB,EAAGh/zB,UAAUmi0B,IAAM,SAAcvgyB,GAC/B,OAAI9hC,KAAKY,OAASkhC,EAAIlhC,OAAeZ,KAAKixC,QAAQixxB,KAAKpgyB,GAChDA,EAAImP,QAAQixxB,KAAKli0B,KAC1B,EAGAk/zB,EAAGh/zB,UAAUoi0B,MAAQ,SAAgBxgyB,GAEnC,IAAItJ,EAEFA,EADEx4B,KAAKY,OAASkhC,EAAIlhC,OAChBkhC,EAEA9hC,KAGN,IAAK,IAAIgB,EAAI,EAAGA,EAAIw3B,EAAE53B,OAAQI,IAC5BhB,KAAKmiiB,MAAMnhiB,GAAKhB,KAAKmiiB,MAAMnhiB,GAAK8gC,EAAIqggB,MAAMnhiB,GAK5C,OAFAhB,KAAKY,OAAS43B,EAAE53B,OAETZ,KAAKyw0B,QACd,EAEAvR,EAAGh/zB,UAAUqi0B,KAAO,SAAezgyB,GAEjC,OADAoksB,EAA0C,KAAlClmuB,KAAKipC,SAAWnH,EAAImH,WACrBjpC,KAAKsi0B,MAAMxgyB,EACpB,EAGAo9xB,EAAGh/zB,UAAUsi0B,IAAM,SAAc1gyB,GAC/B,OAAI9hC,KAAKY,OAASkhC,EAAIlhC,OAAeZ,KAAKixC,QAAQsxxB,KAAKzgyB,GAChDA,EAAImP,QAAQsxxB,KAAKvi0B,KAC1B,EAEAk/zB,EAAGh/zB,UAAUui0B,KAAO,SAAe3gyB,GACjC,OAAI9hC,KAAKY,OAASkhC,EAAIlhC,OAAeZ,KAAKixC,QAAQqxxB,MAAMxgyB,GACjDA,EAAImP,QAAQqxxB,MAAMti0B,KAC3B,EAGAk/zB,EAAGh/zB,UAAUwi0B,MAAQ,SAAgB5gyB,GAEnC,IAAI/gC,EACAy3B,EACAx4B,KAAKY,OAASkhC,EAAIlhC,QACpBG,EAAIf,KACJw4B,EAAIsJ,IAEJ/gC,EAAI+gC,EACJtJ,EAAIx4B,MAGN,IAAK,IAAIgB,EAAI,EAAGA,EAAIw3B,EAAE53B,OAAQI,IAC5BhB,KAAKmiiB,MAAMnhiB,GAAKD,EAAEohiB,MAAMnhiB,GAAKw3B,EAAE2pgB,MAAMnhiB,GAGvC,GAAIhB,OAASe,EACX,KAAOC,EAAID,EAAEH,OAAQI,IACnBhB,KAAKmiiB,MAAMnhiB,GAAKD,EAAEohiB,MAAMnhiB,GAM5B,OAFAhB,KAAKY,OAASG,EAAEH,OAETZ,KAAKyw0B,QACd,EAEAvR,EAAGh/zB,UAAUyi0B,KAAO,SAAe7gyB,GAEjC,OADAoksB,EAA0C,KAAlClmuB,KAAKipC,SAAWnH,EAAImH,WACrBjpC,KAAK0i0B,MAAM5gyB,EACpB,EAGAo9xB,EAAGh/zB,UAAU0i0B,IAAM,SAAc9gyB,GAC/B,OAAI9hC,KAAKY,OAASkhC,EAAIlhC,OAAeZ,KAAKixC,QAAQ0xxB,KAAK7gyB,GAChDA,EAAImP,QAAQ0xxB,KAAK3i0B,KAC1B,EAEAk/zB,EAAGh/zB,UAAU2i0B,KAAO,SAAe/gyB,GACjC,OAAI9hC,KAAKY,OAASkhC,EAAIlhC,OAAeZ,KAAKixC,QAAQyxxB,MAAM5gyB,GACjDA,EAAImP,QAAQyxxB,MAAM1i0B,KAC3B,EAGAk/zB,EAAGh/zB,UAAUwh0B,MAAQ,SAAgB7vzB,GACnCq0tB,EAAwB,kBAAVr0tB,GAAsBA,GAAS,GAE7C,IAAIixzB,EAAsC,EAAxBl6xB,KAAK8wI,KAAK7nK,EAAQ,IAChCkxzB,EAAWlxzB,EAAQ,GAGvB7R,KAAKkg0B,QAAQ4C,GAETC,EAAW,GACbD,IAIF,IAAK,IAAI9h0B,EAAI,EAAGA,EAAI8h0B,EAAa9h0B,IAC/BhB,KAAKmiiB,MAAMnhiB,GAAsB,UAAhBhB,KAAKmiiB,MAAMnhiB,GAS9B,OALI+h0B,EAAW,IACb/i0B,KAAKmiiB,MAAMnhiB,IAAMhB,KAAKmiiB,MAAMnhiB,GAAM,UAAc,GAAK+h0B,GAIhD/i0B,KAAKyw0B,QACd,EAEAvR,EAAGh/zB,UAAU4h0B,KAAO,SAAejwzB,GACjC,OAAO7R,KAAKixC,QAAQywxB,MAAM7vzB,EAC5B,EAGAqtzB,EAAGh/zB,UAAU8i0B,KAAO,SAAenR,EAAKhitB,GACtCq2nB,EAAsB,kBAAR2rF,GAAoBA,GAAO,GAEzC,IAAI78sB,EAAO68sB,EAAM,GAAM,EACnBoR,EAAOpR,EAAM,GAUjB,OARA7xzB,KAAKkg0B,QAAQlrtB,EAAM,GAGjBh1G,KAAKmiiB,MAAMntb,GADTnF,EACgB7vG,KAAKmiiB,MAAMntb,GAAQ,GAAKiutB,EAExBjj0B,KAAKmiiB,MAAMntb,KAAS,GAAKiutB,GAGtCjj0B,KAAKyw0B,QACd,EAGAvR,EAAGh/zB,UAAUgj0B,KAAO,SAAephyB,GACjC,IAAIzhC,EAkBAU,EAAGy3B,EAfP,GAAsB,IAAlBx4B,KAAKipC,UAAmC,IAAjBnH,EAAImH,SAI7B,OAHAjpC,KAAKipC,SAAW,EAChB5oC,EAAIL,KAAKmj0B,KAAKrhyB,GACd9hC,KAAKipC,UAAY,EACVjpC,KAAKmg0B,YAGP,GAAsB,IAAlBng0B,KAAKipC,UAAmC,IAAjBnH,EAAImH,SAIpC,OAHAnH,EAAImH,SAAW,EACf5oC,EAAIL,KAAKmj0B,KAAKrhyB,GACdA,EAAImH,SAAW,EACR5oC,EAAE8/zB,YAKPng0B,KAAKY,OAASkhC,EAAIlhC,QACpBG,EAAIf,KACJw4B,EAAIsJ,IAEJ/gC,EAAI+gC,EACJtJ,EAAIx4B,MAIN,IADA,IAAIupC,EAAQ,EACHvoC,EAAI,EAAGA,EAAIw3B,EAAE53B,OAAQI,IAC5BX,GAAkB,EAAbU,EAAEohiB,MAAMnhiB,KAAwB,EAAbw3B,EAAE2pgB,MAAMnhiB,IAAUuoC,EAC1CvpC,KAAKmiiB,MAAMnhiB,GAAS,SAAJX,EAChBkpC,EAAQlpC,IAAM,GAEhB,KAAiB,IAAVkpC,GAAevoC,EAAID,EAAEH,OAAQI,IAClCX,GAAkB,EAAbU,EAAEohiB,MAAMnhiB,IAAUuoC,EACvBvpC,KAAKmiiB,MAAMnhiB,GAAS,SAAJX,EAChBkpC,EAAQlpC,IAAM,GAIhB,GADAL,KAAKY,OAASG,EAAEH,OACF,IAAV2oC,EACFvpC,KAAKmiiB,MAAMniiB,KAAKY,QAAU2oC,EAC1BvpC,KAAKY,cAEA,GAAIG,IAAMf,KACf,KAAOgB,EAAID,EAAEH,OAAQI,IACnBhB,KAAKmiiB,MAAMnhiB,GAAKD,EAAEohiB,MAAMnhiB,GAI5B,OAAOhB,IACT,EAGAk/zB,EAAGh/zB,UAAUqmC,IAAM,SAAczE,GAC/B,IAAIs4E,EACJ,OAAqB,IAAjBt4E,EAAImH,UAAoC,IAAlBjpC,KAAKipC,UAC7BnH,EAAImH,SAAW,EACfmxE,EAAMp6G,KAAK2+G,IAAI78E,GACfA,EAAImH,UAAY,EACTmxE,GACmB,IAAjBt4E,EAAImH,UAAoC,IAAlBjpC,KAAKipC,UACpCjpC,KAAKipC,SAAW,EAChBmxE,EAAMt4E,EAAI68E,IAAI3+G,MACdA,KAAKipC,SAAW,EACTmxE,GAGLp6G,KAAKY,OAASkhC,EAAIlhC,OAAeZ,KAAKixC,QAAQiyxB,KAAKphyB,GAEhDA,EAAImP,QAAQiyxB,KAAKlj0B,KAC1B,EAGAk/zB,EAAGh/zB,UAAUij0B,KAAO,SAAerhyB,GAEjC,GAAqB,IAAjBA,EAAImH,SAAgB,CACtBnH,EAAImH,SAAW,EACf,IAAI5oC,EAAIL,KAAKkj0B,KAAKphyB,GAElB,OADAA,EAAImH,SAAW,EACR5oC,EAAE8/zB,WAGX,CAAO,GAAsB,IAAlBng0B,KAAKipC,SAId,OAHAjpC,KAAKipC,SAAW,EAChBjpC,KAAKkj0B,KAAKphyB,GACV9hC,KAAKipC,SAAW,EACTjpC,KAAKmg0B,YAId,IAWIp/zB,EAAGy3B,EAXHwqY,EAAMhja,KAAKgja,IAAIlhY,GAGnB,GAAY,IAARkhY,EAIF,OAHAhja,KAAKipC,SAAW,EAChBjpC,KAAKY,OAAS,EACdZ,KAAKmiiB,MAAM,GAAK,EACTniiB,KAKLgja,EAAM,GACRjia,EAAIf,KACJw4B,EAAIsJ,IAEJ/gC,EAAI+gC,EACJtJ,EAAIx4B,MAIN,IADA,IAAIupC,EAAQ,EACHvoC,EAAI,EAAGA,EAAIw3B,EAAE53B,OAAQI,IAE5BuoC,GADAlpC,GAAkB,EAAbU,EAAEohiB,MAAMnhiB,KAAwB,EAAbw3B,EAAE2pgB,MAAMnhiB,IAAUuoC,IAC7B,GACbvpC,KAAKmiiB,MAAMnhiB,GAAS,SAAJX,EAElB,KAAiB,IAAVkpC,GAAevoC,EAAID,EAAEH,OAAQI,IAElCuoC,GADAlpC,GAAkB,EAAbU,EAAEohiB,MAAMnhiB,IAAUuoC,IACV,GACbvpC,KAAKmiiB,MAAMnhiB,GAAS,SAAJX,EAIlB,GAAc,IAAVkpC,GAAevoC,EAAID,EAAEH,QAAUG,IAAMf,KACvC,KAAOgB,EAAID,EAAEH,OAAQI,IACnBhB,KAAKmiiB,MAAMnhiB,GAAKD,EAAEohiB,MAAMnhiB,GAU5B,OANAhB,KAAKY,OAASgoC,KAAKoa,IAAIhjD,KAAKY,OAAQI,GAEhCD,IAAMf,OACRA,KAAKipC,SAAW,GAGXjpC,KAAKyw0B,QACd,EAGAvR,EAAGh/zB,UAAUy+G,IAAM,SAAc78E,GAC/B,OAAO9hC,KAAKixC,QAAQkyxB,KAAKrhyB,EAC3B,EA8CA,IAAIshyB,EAAc,SAAsBv/sB,EAAM/hF,EAAKwH,GACjD,IAII2wE,EACAoptB,EACArptB,EANAj5G,EAAI8iH,EAAKs+a,MACT3pgB,EAAIsJ,EAAIqggB,MACRrhiB,EAAIwoC,EAAI64f,MACRlhiB,EAAI,EAIJqi0B,EAAY,EAAPvi0B,EAAE,GACPwi0B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbt9P,EAAY,EAAPjlkB,EAAE,GACP0i0B,EAAW,KAALz9P,EACN09P,EAAM19P,IAAO,GACbC,EAAY,EAAPllkB,EAAE,GACP4i0B,EAAW,KAAL19P,EACN29P,EAAM39P,IAAO,GACb49P,EAAY,EAAP9i0B,EAAE,GACP+i0B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPjj0B,EAAE,GACPkj0B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPpj0B,EAAE,GACPqj0B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPvj0B,EAAE,GACPwj0B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP1j0B,EAAE,GACP2j0B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP7j0B,EAAE,GACP8j0B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPhk0B,EAAE,GACPik0B,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP1syB,EAAE,GACP2syB,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAP7syB,EAAE,GACP8syB,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPhtyB,EAAE,GACPityB,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPntyB,EAAE,GACPotyB,EAAW,KAALD,EACNE,EAAMF,IAAO,GACbG,EAAY,EAAPttyB,EAAE,GACPutyB,EAAW,KAALD,EACNE,GAAMF,IAAO,GACbG,GAAY,EAAPztyB,EAAE,GACP0tyB,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP5tyB,EAAE,GACP6tyB,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAP/tyB,EAAE,GACPguyB,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPluyB,EAAE,GACPmuyB,GAAW,KAALD,GACNE,GAAMF,KAAO,GACbG,GAAY,EAAPruyB,EAAE,GACPsuyB,GAAW,KAALD,GACNE,GAAMF,KAAO,GAEjBv9xB,EAAIL,SAAW46E,EAAK56E,SAAWnH,EAAImH,SACnCK,EAAI1oC,OAAS,GAMb,IAAIom0B,IAAQ/l0B,GAJZg5G,EAAKrxE,KAAKq+xB,KAAK1D,EAAK4B,IAIE,KAAa,MAFnC9B,GADAA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAK6B,IACRx8xB,KAAKq+xB,KAAKzD,EAAK2B,GAAQ,KAEU,IAAO,EACrDlk0B,IAFA+4G,EAAKpxE,KAAKq+xB,KAAKzD,EAAK4B,KAEP/B,IAAQ,IAAO,IAAM2D,KAAO,IAAO,EAChDA,IAAM,SAEN/stB,EAAKrxE,KAAKq+xB,KAAKxD,EAAK0B,GAEpB9B,GADAA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAK2B,IACRx8xB,KAAKq+xB,KAAKvD,EAAKyB,GAAQ,EACpCnrtB,EAAKpxE,KAAKq+xB,KAAKvD,EAAK0B,GAKpB,IAAI8B,IAAQjm0B,GAJZg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1D,EAAK+B,GAAQ,GAIZ,KAAa,MAFnCjC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAKgC,GAAQ,GACvB38xB,KAAKq+xB,KAAKzD,EAAK8B,GAAQ,KAEU,IAAO,EACrDrk0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzD,EAAK+B,GAAQ,IAErBlC,IAAQ,IAAO,IAAM6D,KAAO,IAAO,EAChDA,IAAM,SAENjttB,EAAKrxE,KAAKq+xB,KAAKtD,EAAKwB,GAEpB9B,GADAA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAKyB,IACRx8xB,KAAKq+xB,KAAKrD,EAAKuB,GAAQ,EACpCnrtB,EAAKpxE,KAAKq+xB,KAAKrD,EAAKwB,GACpBnrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKxD,EAAK6B,GAAQ,EAElCjC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAK8B,GAAQ,GACvB38xB,KAAKq+xB,KAAKvD,EAAK4B,GAAQ,EACpCtrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKvD,EAAK6B,GAAQ,EAKlC,IAAIx0Q,IAAQ9vjB,GAJZg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1D,EAAKkC,GAAQ,GAIZ,KAAa,MAFnCpC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAKmC,GAAQ,GACvB98xB,KAAKq+xB,KAAKzD,EAAKiC,GAAQ,KAEU,IAAO,EACrDxk0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzD,EAAKkC,GAAQ,IAErBrC,IAAQ,IAAO,IAAMtyQ,KAAO,IAAO,EAChDA,IAAM,SAEN92c,EAAKrxE,KAAKq+xB,KAAKnD,EAAKqB,GAEpB9B,GADAA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAKsB,IACRx8xB,KAAKq+xB,KAAKlD,EAAKoB,GAAQ,EACpCnrtB,EAAKpxE,KAAKq+xB,KAAKlD,EAAKqB,GACpBnrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKtD,EAAK2B,GAAQ,EAElCjC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAK4B,GAAQ,GACvB38xB,KAAKq+xB,KAAKrD,EAAK0B,GAAQ,EACpCtrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKrD,EAAK2B,GAAQ,EAClCtrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKxD,EAAKgC,GAAQ,EAElCpC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAKiC,GAAQ,GACvB98xB,KAAKq+xB,KAAKvD,EAAK+B,GAAQ,EACpCzrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKvD,EAAKgC,GAAQ,EAKlC,IAAIyB,IAAQlm0B,GAJZg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1D,EAAKqC,GAAQ,GAIZ,KAAa,MAFnCvC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAKsC,GAAQ,GACvBj9xB,KAAKq+xB,KAAKzD,EAAKoC,GAAQ,KAEU,IAAO,EACrD3k0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzD,EAAKqC,GAAQ,IAErBxC,IAAQ,IAAO,IAAM8D,KAAO,IAAO,EAChDA,IAAM,SAENlttB,EAAKrxE,KAAKq+xB,KAAKhD,EAAKkB,GAEpB9B,GADAA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAKmB,IACRx8xB,KAAKq+xB,KAAK/C,EAAKiB,GAAQ,EACpCnrtB,EAAKpxE,KAAKq+xB,KAAK/C,EAAKkB,GACpBnrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKnD,EAAKwB,GAAQ,EAElCjC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAKyB,GAAQ,GACvB38xB,KAAKq+xB,KAAKlD,EAAKuB,GAAQ,EACpCtrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKlD,EAAKwB,GAAQ,EAClCtrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKtD,EAAK8B,GAAQ,EAElCpC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAK+B,GAAQ,GACvB98xB,KAAKq+xB,KAAKrD,EAAK6B,GAAQ,EACpCzrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKrD,EAAK8B,GAAQ,EAClCzrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKxD,EAAKmC,GAAQ,EAElCvC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAKoC,GAAQ,GACvBj9xB,KAAKq+xB,KAAKvD,EAAKkC,GAAQ,EACpC5rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKvD,EAAKmC,GAAQ,EAKlC,IAAIuB,IAAQnm0B,GAJZg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1D,EAAKwC,GAAQ,GAIZ,KAAa,MAFnC1C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAKyC,IAAQ,GACvBp9xB,KAAKq+xB,KAAKzD,EAAKuC,GAAQ,KAEU,IAAO,EACrD9k0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzD,EAAKwC,IAAQ,IAErB3C,IAAQ,IAAO,IAAM+D,KAAO,IAAO,EAChDA,IAAM,SAENnttB,EAAKrxE,KAAKq+xB,KAAK7C,EAAKe,GAEpB9B,GADAA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAKgB,IACRx8xB,KAAKq+xB,KAAK5C,EAAKc,GAAQ,EACpCnrtB,EAAKpxE,KAAKq+xB,KAAK5C,EAAKe,GACpBnrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKhD,EAAKqB,GAAQ,EAElCjC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAKsB,GAAQ,GACvB38xB,KAAKq+xB,KAAK/C,EAAKoB,GAAQ,EACpCtrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAK/C,EAAKqB,GAAQ,EAClCtrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKnD,EAAK2B,GAAQ,EAElCpC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAK4B,GAAQ,GACvB98xB,KAAKq+xB,KAAKlD,EAAK0B,GAAQ,EACpCzrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKlD,EAAK2B,GAAQ,EAClCzrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKtD,EAAKiC,GAAQ,EAElCvC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAKkC,GAAQ,GACvBj9xB,KAAKq+xB,KAAKrD,EAAKgC,GAAQ,EACpC5rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKrD,EAAKiC,GAAQ,EAClC5rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKxD,EAAKsC,GAAQ,EAElC1C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAKuC,IAAQ,GACvBp9xB,KAAKq+xB,KAAKvD,EAAKqC,GAAQ,EACpC/rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKvD,EAAKsC,IAAQ,EAKlC,IAAIqB,IAAQpm0B,GAJZg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1D,EAAK2C,IAAQ,GAIZ,KAAa,MAFnC7C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAK4C,IAAQ,GACvBv9xB,KAAKq+xB,KAAKzD,EAAK0C,IAAQ,KAEU,IAAO,EACrDjl0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzD,EAAK2C,IAAQ,IAErB9C,IAAQ,IAAO,IAAMgE,KAAO,IAAO,EAChDA,IAAM,SAENpttB,EAAKrxE,KAAKq+xB,KAAK1C,EAAKY,GAEpB9B,GADAA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAKa,IACRx8xB,KAAKq+xB,KAAKzC,EAAKW,GAAQ,EACpCnrtB,EAAKpxE,KAAKq+xB,KAAKzC,EAAKY,GACpBnrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK7C,EAAKkB,GAAQ,EAElCjC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAKmB,GAAQ,GACvB38xB,KAAKq+xB,KAAK5C,EAAKiB,GAAQ,EACpCtrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAK5C,EAAKkB,GAAQ,EAClCtrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKhD,EAAKwB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAKyB,GAAQ,GACvB98xB,KAAKq+xB,KAAK/C,EAAKuB,GAAQ,EACpCzrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAK/C,EAAKwB,GAAQ,EAClCzrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKnD,EAAK8B,GAAQ,EAElCvC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAK+B,GAAQ,GACvBj9xB,KAAKq+xB,KAAKlD,EAAK6B,GAAQ,EACpC5rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKlD,EAAK8B,GAAQ,EAClC5rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKtD,EAAKoC,GAAQ,EAElC1C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAKqC,IAAQ,GACvBp9xB,KAAKq+xB,KAAKrD,EAAKmC,GAAQ,EACpC/rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKrD,EAAKoC,IAAQ,EAClC/rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKxD,EAAKyC,IAAQ,EAElC7C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAK0C,IAAQ,GACvBv9xB,KAAKq+xB,KAAKvD,EAAKwC,IAAQ,EACpClstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKvD,EAAKyC,IAAQ,EAKlC,IAAImB,IAAQrm0B,GAJZg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1D,EAAK8C,IAAQ,GAIZ,KAAa,MAFnChD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAK+C,IAAQ,GACvB19xB,KAAKq+xB,KAAKzD,EAAK6C,IAAQ,KAEU,IAAO,EACrDpl0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzD,EAAK8C,IAAQ,IAErBjD,IAAQ,IAAO,IAAMiE,KAAO,IAAO,EAChDA,IAAM,SAENrttB,EAAKrxE,KAAKq+xB,KAAKvC,EAAKS,GAEpB9B,GADAA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAKU,IACRx8xB,KAAKq+xB,KAAKtC,EAAKQ,GAAQ,EACpCnrtB,EAAKpxE,KAAKq+xB,KAAKtC,EAAKS,GACpBnrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK1C,EAAKe,GAAQ,EAElCjC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAKgB,GAAQ,GACvB38xB,KAAKq+xB,KAAKzC,EAAKc,GAAQ,EACpCtrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKzC,EAAKe,GAAQ,EAClCtrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK7C,EAAKqB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAKsB,GAAQ,GACvB98xB,KAAKq+xB,KAAK5C,EAAKoB,GAAQ,EACpCzrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAK5C,EAAKqB,GAAQ,EAClCzrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKhD,EAAK2B,GAAQ,EAElCvC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAK4B,GAAQ,GACvBj9xB,KAAKq+xB,KAAK/C,EAAK0B,GAAQ,EACpC5rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAK/C,EAAK2B,GAAQ,EAClC5rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKnD,EAAKiC,GAAQ,EAElC1C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAKkC,IAAQ,GACvBp9xB,KAAKq+xB,KAAKlD,EAAKgC,GAAQ,EACpC/rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKlD,EAAKiC,IAAQ,EAClC/rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKtD,EAAKuC,IAAQ,EAElC7C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAKwC,IAAQ,GACvBv9xB,KAAKq+xB,KAAKrD,EAAKsC,IAAQ,EACpClstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKrD,EAAKuC,IAAQ,EAClClstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKxD,EAAK4C,IAAQ,EAElChD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAK6C,IAAQ,GACvB19xB,KAAKq+xB,KAAKvD,EAAK2C,IAAQ,EACpCrstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKvD,EAAK4C,IAAQ,EAKlC,IAAIiB,IAAQtm0B,GAJZg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1D,EAAKiD,IAAQ,GAIZ,KAAa,MAFnCnD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAKkD,IAAQ,GACvB79xB,KAAKq+xB,KAAKzD,EAAKgD,IAAQ,KAEU,IAAO,EACrDvl0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzD,EAAKiD,IAAQ,IAErBpD,IAAQ,IAAO,IAAMkE,KAAO,IAAO,EAChDA,IAAM,SAENtttB,EAAKrxE,KAAKq+xB,KAAKpC,EAAKM,GAEpB9B,GADAA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAKO,IACRx8xB,KAAKq+xB,KAAKnC,EAAKK,GAAQ,EACpCnrtB,EAAKpxE,KAAKq+xB,KAAKnC,EAAKM,GACpBnrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKvC,EAAKY,GAAQ,EAElCjC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAKa,GAAQ,GACvB38xB,KAAKq+xB,KAAKtC,EAAKW,GAAQ,EACpCtrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKtC,EAAKY,GAAQ,EAClCtrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK1C,EAAKkB,GAAQ,EAElCpC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAKmB,GAAQ,GACvB98xB,KAAKq+xB,KAAKzC,EAAKiB,GAAQ,EACpCzrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKzC,EAAKkB,GAAQ,EAClCzrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK7C,EAAKwB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAKyB,GAAQ,GACvBj9xB,KAAKq+xB,KAAK5C,EAAKuB,GAAQ,EACpC5rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAK5C,EAAKwB,GAAQ,EAClC5rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKhD,EAAK8B,GAAQ,EAElC1C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAK+B,IAAQ,GACvBp9xB,KAAKq+xB,KAAK/C,EAAK6B,GAAQ,EACpC/rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAK/C,EAAK8B,IAAQ,EAClC/rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKnD,EAAKoC,IAAQ,EAElC7C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAKqC,IAAQ,GACvBv9xB,KAAKq+xB,KAAKlD,EAAKmC,IAAQ,EACpClstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKlD,EAAKoC,IAAQ,EAClClstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKtD,EAAK0C,IAAQ,EAElChD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAK2C,IAAQ,GACvB19xB,KAAKq+xB,KAAKrD,EAAKyC,IAAQ,EACpCrstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKrD,EAAK0C,IAAQ,EAClCrstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKxD,EAAK+C,IAAQ,EAElCnD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAKgD,IAAQ,GACvB79xB,KAAKq+xB,KAAKvD,EAAK8C,IAAQ,EACpCxstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKvD,EAAK+C,IAAQ,EAKlC,IAAIe,IAAQvm0B,GAJZg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1D,EAAKoD,IAAQ,GAIZ,KAAa,MAFnCtD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAKqD,IAAQ,GACvBh+xB,KAAKq+xB,KAAKzD,EAAKmD,IAAQ,KAEU,IAAO,EACrD1l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzD,EAAKoD,IAAQ,IAErBvD,IAAQ,IAAO,IAAMmE,KAAO,IAAO,EAChDA,IAAM,SAENvttB,EAAKrxE,KAAKq+xB,KAAKjC,EAAKG,GAEpB9B,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAKI,IACRx8xB,KAAKq+xB,KAAKhC,EAAKE,GAAQ,EACpCnrtB,EAAKpxE,KAAKq+xB,KAAKhC,EAAKG,GACpBnrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKpC,EAAKS,GAAQ,EAElCjC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAKU,GAAQ,GACvB38xB,KAAKq+xB,KAAKnC,EAAKQ,GAAQ,EACpCtrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKnC,EAAKS,GAAQ,EAClCtrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKvC,EAAKe,GAAQ,EAElCpC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAKgB,GAAQ,GACvB98xB,KAAKq+xB,KAAKtC,EAAKc,GAAQ,EACpCzrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKtC,EAAKe,GAAQ,EAClCzrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK1C,EAAKqB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAKsB,GAAQ,GACvBj9xB,KAAKq+xB,KAAKzC,EAAKoB,GAAQ,EACpC5rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKzC,EAAKqB,GAAQ,EAClC5rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK7C,EAAK2B,GAAQ,EAElC1C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAK4B,IAAQ,GACvBp9xB,KAAKq+xB,KAAK5C,EAAK0B,GAAQ,EACpC/rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAK5C,EAAK2B,IAAQ,EAClC/rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKhD,EAAKiC,IAAQ,EAElC7C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAKkC,IAAQ,GACvBv9xB,KAAKq+xB,KAAK/C,EAAKgC,IAAQ,EACpClstB,EAAMA,EAAKpxE,KAAKq+xB,KAAK/C,EAAKiC,IAAQ,EAClClstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKnD,EAAKuC,IAAQ,EAElChD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAKwC,IAAQ,GACvB19xB,KAAKq+xB,KAAKlD,EAAKsC,IAAQ,EACpCrstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKlD,EAAKuC,IAAQ,EAClCrstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKtD,EAAK6C,IAAQ,EAElCnD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAK8C,IAAQ,GACvB79xB,KAAKq+xB,KAAKrD,EAAK4C,IAAQ,EACpCxstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKrD,EAAK6C,IAAQ,EAClCxstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKxD,EAAKkD,IAAQ,EAElCtD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAKmD,IAAQ,GACvBh+xB,KAAKq+xB,KAAKvD,EAAKiD,IAAQ,EACpC3stB,EAAMA,EAAKpxE,KAAKq+xB,KAAKvD,EAAKkD,IAAQ,EAKlC,IAAIa,IAAQxm0B,GAJZg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1D,EAAKuD,IAAQ,GAIZ,KAAa,MAFnCzD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1D,EAAKwD,IAAQ,GACvBn+xB,KAAKq+xB,KAAKzD,EAAKsD,IAAQ,KAEU,IAAO,EACrD7l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzD,EAAKuD,IAAQ,IAErB1D,IAAQ,IAAO,IAAMoE,KAAO,IAAO,EAChDA,IAAM,SAENxttB,EAAKrxE,KAAKq+xB,KAAKjC,EAAKM,GAEpBjC,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAKO,IACR38xB,KAAKq+xB,KAAKhC,EAAKK,GAAQ,EACpCtrtB,EAAKpxE,KAAKq+xB,KAAKhC,EAAKM,GACpBtrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKpC,EAAKY,GAAQ,EAElCpC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAKa,GAAQ,GACvB98xB,KAAKq+xB,KAAKnC,EAAKW,GAAQ,EACpCzrtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKnC,EAAKY,GAAQ,EAClCzrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKvC,EAAKkB,GAAQ,EAElCvC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAKmB,GAAQ,GACvBj9xB,KAAKq+xB,KAAKtC,EAAKiB,GAAQ,EACpC5rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKtC,EAAKkB,GAAQ,EAClC5rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK1C,EAAKwB,GAAQ,EAElC1C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAKyB,IAAQ,GACvBp9xB,KAAKq+xB,KAAKzC,EAAKuB,GAAQ,EACpC/rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKzC,EAAKwB,IAAQ,EAClC/rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK7C,EAAK8B,IAAQ,EAElC7C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAK+B,IAAQ,GACvBv9xB,KAAKq+xB,KAAK5C,EAAK6B,IAAQ,EACpClstB,EAAMA,EAAKpxE,KAAKq+xB,KAAK5C,EAAK8B,IAAQ,EAClClstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKhD,EAAKoC,IAAQ,EAElChD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAKqC,IAAQ,GACvB19xB,KAAKq+xB,KAAK/C,EAAKmC,IAAQ,EACpCrstB,EAAMA,EAAKpxE,KAAKq+xB,KAAK/C,EAAKoC,IAAQ,EAClCrstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKnD,EAAK0C,IAAQ,EAElCnD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAK2C,IAAQ,GACvB79xB,KAAKq+xB,KAAKlD,EAAKyC,IAAQ,EACpCxstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKlD,EAAK0C,IAAQ,EAClCxstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKtD,EAAKgD,IAAQ,EAElCtD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAKiD,IAAQ,GACvBh+xB,KAAKq+xB,KAAKrD,EAAK+C,IAAQ,EACpC3stB,EAAMA,EAAKpxE,KAAKq+xB,KAAKrD,EAAKgD,IAAQ,EAKlC,IAAIc,IAASzm0B,GAJbg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAKxD,EAAKqD,IAAQ,GAIX,KAAa,MAFpCzD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKxD,EAAKsD,IAAQ,GACvBn+xB,KAAKq+xB,KAAKvD,EAAKoD,IAAQ,KAEW,IAAO,EACtD7l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKvD,EAAKqD,IAAQ,IAErB1D,IAAQ,IAAO,IAAMqE,KAAQ,IAAO,EACjDA,IAAO,SAEPzttB,EAAKrxE,KAAKq+xB,KAAKjC,EAAKS,GAEpBpC,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAKU,IACR98xB,KAAKq+xB,KAAKhC,EAAKQ,GAAQ,EACpCzrtB,EAAKpxE,KAAKq+xB,KAAKhC,EAAKS,GACpBzrtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKpC,EAAKe,GAAQ,EAElCvC,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAKgB,GAAQ,GACvBj9xB,KAAKq+xB,KAAKnC,EAAKc,GAAQ,EACpC5rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKnC,EAAKe,GAAQ,EAClC5rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKvC,EAAKqB,GAAQ,EAElC1C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAKsB,IAAQ,GACvBp9xB,KAAKq+xB,KAAKtC,EAAKoB,GAAQ,EACpC/rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKtC,EAAKqB,IAAQ,EAClC/rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAK1C,EAAK2B,IAAQ,EAElC7C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAK4B,IAAQ,GACvBv9xB,KAAKq+xB,KAAKzC,EAAK0B,IAAQ,EACpClstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKzC,EAAK2B,IAAQ,EAClClstB,EAAMA,EAAKrxE,KAAKq+xB,KAAK7C,EAAKiC,IAAQ,EAElChD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAKkC,IAAQ,GACvB19xB,KAAKq+xB,KAAK5C,EAAKgC,IAAQ,EACpCrstB,EAAMA,EAAKpxE,KAAKq+xB,KAAK5C,EAAKiC,IAAQ,EAClCrstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKhD,EAAKuC,IAAQ,EAElCnD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAKwC,IAAQ,GACvB79xB,KAAKq+xB,KAAK/C,EAAKsC,IAAQ,EACpCxstB,EAAMA,EAAKpxE,KAAKq+xB,KAAK/C,EAAKuC,IAAQ,EAClCxstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKnD,EAAK6C,IAAQ,EAElCtD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAK8C,IAAQ,GACvBh+xB,KAAKq+xB,KAAKlD,EAAK4C,IAAQ,EACpC3stB,EAAMA,EAAKpxE,KAAKq+xB,KAAKlD,EAAK6C,IAAQ,EAKlC,IAAIe,IAAS1m0B,GAJbg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAKtD,EAAKmD,IAAQ,GAIX,KAAa,MAFpCzD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKtD,EAAKoD,IAAQ,GACvBn+xB,KAAKq+xB,KAAKrD,EAAKkD,IAAQ,KAEW,IAAO,EACtD7l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKrD,EAAKmD,IAAQ,IAErB1D,IAAQ,IAAO,IAAMsE,KAAQ,IAAO,EACjDA,IAAO,SAEP1ttB,EAAKrxE,KAAKq+xB,KAAKjC,EAAKY,GAEpBvC,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAKa,IACRj9xB,KAAKq+xB,KAAKhC,EAAKW,GAAQ,EACpC5rtB,EAAKpxE,KAAKq+xB,KAAKhC,EAAKY,GACpB5rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKpC,EAAKkB,GAAQ,EAElC1C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAKmB,IAAQ,GACvBp9xB,KAAKq+xB,KAAKnC,EAAKiB,GAAQ,EACpC/rtB,EAAMA,EAAKpxE,KAAKq+xB,KAAKnC,EAAKkB,IAAQ,EAClC/rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKvC,EAAKwB,IAAQ,EAElC7C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAKyB,IAAQ,GACvBv9xB,KAAKq+xB,KAAKtC,EAAKuB,IAAQ,EACpClstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKtC,EAAKwB,IAAQ,EAClClstB,EAAMA,EAAKrxE,KAAKq+xB,KAAK1C,EAAK8B,IAAQ,EAElChD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAK+B,IAAQ,GACvB19xB,KAAKq+xB,KAAKzC,EAAK6B,IAAQ,EACpCrstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKzC,EAAK8B,IAAQ,EAClCrstB,EAAMA,EAAKrxE,KAAKq+xB,KAAK7C,EAAKoC,IAAQ,EAElCnD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAKqC,IAAQ,GACvB79xB,KAAKq+xB,KAAK5C,EAAKmC,IAAQ,EACpCxstB,EAAMA,EAAKpxE,KAAKq+xB,KAAK5C,EAAKoC,IAAQ,EAClCxstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKhD,EAAK0C,IAAQ,EAElCtD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAK2C,IAAQ,GACvBh+xB,KAAKq+xB,KAAK/C,EAAKyC,IAAQ,EACpC3stB,EAAMA,EAAKpxE,KAAKq+xB,KAAK/C,EAAK0C,IAAQ,EAKlC,IAAIgB,IAAS3m0B,GAJbg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAKnD,EAAKgD,IAAQ,GAIX,KAAa,MAFpCzD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKnD,EAAKiD,IAAQ,GACvBn+xB,KAAKq+xB,KAAKlD,EAAK+C,IAAQ,KAEW,IAAO,EACtD7l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKlD,EAAKgD,IAAQ,IAErB1D,IAAQ,IAAO,IAAMuE,KAAQ,IAAO,EACjDA,IAAO,SAEP3ttB,EAAKrxE,KAAKq+xB,KAAKjC,EAAKe,GAEpB1C,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAKgB,KACRp9xB,KAAKq+xB,KAAKhC,EAAKc,GAAQ,EACpC/rtB,EAAKpxE,KAAKq+xB,KAAKhC,EAAKe,IACpB/rtB,EAAMA,EAAKrxE,KAAKq+xB,KAAKpC,EAAKqB,IAAQ,EAElC7C,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAKsB,IAAQ,GACvBv9xB,KAAKq+xB,KAAKnC,EAAKoB,IAAQ,EACpClstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKnC,EAAKqB,IAAQ,EAClClstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKvC,EAAK2B,IAAQ,EAElChD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAK4B,IAAQ,GACvB19xB,KAAKq+xB,KAAKtC,EAAK0B,IAAQ,EACpCrstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKtC,EAAK2B,IAAQ,EAClCrstB,EAAMA,EAAKrxE,KAAKq+xB,KAAK1C,EAAKiC,IAAQ,EAElCnD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAKkC,IAAQ,GACvB79xB,KAAKq+xB,KAAKzC,EAAKgC,IAAQ,EACpCxstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKzC,EAAKiC,IAAQ,EAClCxstB,EAAMA,EAAKrxE,KAAKq+xB,KAAK7C,EAAKuC,IAAQ,EAElCtD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAKwC,IAAQ,GACvBh+xB,KAAKq+xB,KAAK5C,EAAKsC,IAAQ,EACpC3stB,EAAMA,EAAKpxE,KAAKq+xB,KAAK5C,EAAKuC,IAAQ,EAKlC,IAAIiB,IAAS5m0B,GAJbg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAKhD,EAAK6C,IAAQ,GAIX,KAAa,MAFpCzD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKhD,EAAK8C,IAAQ,GACvBn+xB,KAAKq+xB,KAAK/C,EAAK4C,IAAQ,KAEW,IAAO,EACtD7l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAK/C,EAAK6C,IAAQ,IAErB1D,IAAQ,IAAO,IAAMwE,KAAQ,IAAO,EACjDA,IAAO,SAEP5ttB,EAAKrxE,KAAKq+xB,KAAKjC,EAAKkB,IAEpB7C,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAKmB,KACRv9xB,KAAKq+xB,KAAKhC,EAAKiB,IAAQ,EACpClstB,EAAKpxE,KAAKq+xB,KAAKhC,EAAKkB,IACpBlstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKpC,EAAKwB,IAAQ,EAElChD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAKyB,IAAQ,GACvB19xB,KAAKq+xB,KAAKnC,EAAKuB,IAAQ,EACpCrstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKnC,EAAKwB,IAAQ,EAClCrstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKvC,EAAK8B,IAAQ,EAElCnD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAK+B,IAAQ,GACvB79xB,KAAKq+xB,KAAKtC,EAAK6B,IAAQ,EACpCxstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKtC,EAAK8B,IAAQ,EAClCxstB,EAAMA,EAAKrxE,KAAKq+xB,KAAK1C,EAAKoC,IAAQ,EAElCtD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAKqC,IAAQ,GACvBh+xB,KAAKq+xB,KAAKzC,EAAKmC,IAAQ,EACpC3stB,EAAMA,EAAKpxE,KAAKq+xB,KAAKzC,EAAKoC,IAAQ,EAKlC,IAAIkB,IAAS7m0B,GAJbg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK7C,EAAK0C,IAAQ,GAIX,KAAa,MAFpCzD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK7C,EAAK2C,IAAQ,GACvBn+xB,KAAKq+xB,KAAK5C,EAAKyC,IAAQ,KAEW,IAAO,EACtD7l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAK5C,EAAK0C,IAAQ,IAErB1D,IAAQ,IAAO,IAAMyE,KAAQ,IAAO,EACjDA,IAAO,SAEP7ttB,EAAKrxE,KAAKq+xB,KAAKjC,EAAKqB,IAEpBhD,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAKsB,KACR19xB,KAAKq+xB,KAAKhC,EAAKoB,IAAQ,EACpCrstB,EAAKpxE,KAAKq+xB,KAAKhC,EAAKqB,IACpBrstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKpC,EAAK2B,IAAQ,EAElCnD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAK4B,IAAQ,GACvB79xB,KAAKq+xB,KAAKnC,EAAK0B,IAAQ,EACpCxstB,EAAMA,EAAKpxE,KAAKq+xB,KAAKnC,EAAK2B,IAAQ,EAClCxstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKvC,EAAKiC,IAAQ,EAElCtD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAKkC,IAAQ,GACvBh+xB,KAAKq+xB,KAAKtC,EAAKgC,IAAQ,EACpC3stB,EAAMA,EAAKpxE,KAAKq+xB,KAAKtC,EAAKiC,IAAQ,EAKlC,IAAImB,IAAS9m0B,GAJbg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAK1C,EAAKuC,IAAQ,GAIX,KAAa,MAFpCzD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAK1C,EAAKwC,IAAQ,GACvBn+xB,KAAKq+xB,KAAKzC,EAAKsC,IAAQ,KAEW,IAAO,EACtD7l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKzC,EAAKuC,IAAQ,IAErB1D,IAAQ,IAAO,IAAM0E,KAAQ,IAAO,EACjDA,IAAO,SAEP9ttB,EAAKrxE,KAAKq+xB,KAAKjC,EAAKwB,IAEpBnD,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAKyB,KACR79xB,KAAKq+xB,KAAKhC,EAAKuB,IAAQ,EACpCxstB,EAAKpxE,KAAKq+xB,KAAKhC,EAAKwB,IACpBxstB,EAAMA,EAAKrxE,KAAKq+xB,KAAKpC,EAAK8B,IAAQ,EAElCtD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAK+B,IAAQ,GACvBh+xB,KAAKq+xB,KAAKnC,EAAK6B,IAAQ,EACpC3stB,EAAMA,EAAKpxE,KAAKq+xB,KAAKnC,EAAK8B,IAAQ,EAKlC,IAAIoB,IAAS/m0B,GAJbg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAKvC,EAAKoC,IAAQ,GAIX,KAAa,MAFpCzD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKvC,EAAKqC,IAAQ,GACvBn+xB,KAAKq+xB,KAAKtC,EAAKmC,IAAQ,KAEW,IAAO,EACtD7l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKtC,EAAKoC,IAAQ,IAErB1D,IAAQ,IAAO,IAAM2E,KAAQ,IAAO,EACjDA,IAAO,SAEP/ttB,EAAKrxE,KAAKq+xB,KAAKjC,EAAK2B,IAEpBtD,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAK4B,KACRh+xB,KAAKq+xB,KAAKhC,EAAK0B,IAAQ,EACpC3stB,EAAKpxE,KAAKq+xB,KAAKhC,EAAK2B,IAKpB,IAAIqB,IAAShn0B,GAJbg5G,EAAMA,EAAKrxE,KAAKq+xB,KAAKpC,EAAKiC,IAAQ,GAIX,KAAa,MAFpCzD,GADAA,EAAOA,EAAMz6xB,KAAKq+xB,KAAKpC,EAAKkC,IAAQ,GACvBn+xB,KAAKq+xB,KAAKnC,EAAKgC,IAAQ,KAEW,IAAO,EACtD7l0B,IAFA+4G,EAAMA,EAAKpxE,KAAKq+xB,KAAKnC,EAAKiC,IAAQ,IAErB1D,IAAQ,IAAO,IAAM4E,KAAQ,IAAO,EACjDA,IAAO,SAMP,IAAIC,IAASjn0B,GAJbg5G,EAAKrxE,KAAKq+xB,KAAKjC,EAAK8B,KAIG,KAAa,MAFpCzD,GADAA,EAAMz6xB,KAAKq+xB,KAAKjC,EAAK+B,KACRn+xB,KAAKq+xB,KAAKhC,EAAK6B,IAAQ,KAEW,IAAO,EA0BtD,OAzBA7l0B,IAFA+4G,EAAKpxE,KAAKq+xB,KAAKhC,EAAK8B,MAEP1D,IAAQ,IAAO,IAAM6E,KAAQ,IAAO,EACjDA,IAAO,SACPpn0B,EAAE,GAAKkm0B,GACPlm0B,EAAE,GAAKom0B,GACPpm0B,EAAE,GAAKiwjB,GACPjwjB,EAAE,GAAKqm0B,GACPrm0B,EAAE,GAAKsm0B,GACPtm0B,EAAE,GAAKum0B,GACPvm0B,EAAE,GAAKwm0B,GACPxm0B,EAAE,GAAKym0B,GACPzm0B,EAAE,GAAK0m0B,GACP1m0B,EAAE,GAAK2m0B,GACP3m0B,EAAE,IAAM4m0B,GACR5m0B,EAAE,IAAM6m0B,GACR7m0B,EAAE,IAAM8m0B,GACR9m0B,EAAE,IAAM+m0B,GACR/m0B,EAAE,IAAMgn0B,GACRhn0B,EAAE,IAAMin0B,GACRjn0B,EAAE,IAAMkn0B,GACRln0B,EAAE,IAAMmn0B,GACRnn0B,EAAE,IAAMon0B,GACE,IAANjn0B,IACFH,EAAE,IAAMG,EACRqoC,EAAI1oC,UAEC0oC,CACT,EAOA,SAASk/xB,EAAU3ktB,EAAM/hF,EAAKwH,GAC5BA,EAAIL,SAAWnH,EAAImH,SAAW46E,EAAK56E,SACnCK,EAAI1oC,OAASijH,EAAKjjH,OAASkhC,EAAIlhC,OAI/B,IAFA,IAAI2oC,EAAQ,EACRg/xB,EAAU,EACLttyB,EAAI,EAAGA,EAAIqO,EAAI1oC,OAAS,EAAGq6B,IAAK,CAGvC,IAAIulyB,EAAS+H,EACbA,EAAU,EAGV,IAFA,IAAI9H,EAAgB,SAARl3xB,EACRm3xB,EAAO93xB,KAAKuZ,IAAIlnB,EAAG6G,EAAIlhC,OAAS,GAC3B46B,EAAIoN,KAAKoa,IAAI,EAAG/nB,EAAI4oF,EAAKjjH,OAAS,GAAI46B,GAAKklyB,EAAMllyB,IAAK,CAC7D,IAAIx6B,EAAIi6B,EAAIO,EAGRn7B,GAFoB,EAAhBwjH,EAAKs+a,MAAMnhiB,KACI,EAAf8gC,EAAIqggB,MAAM3mgB,IAGdy+E,EAAS,SAAJ55G,EAGTog0B,EAAa,UADbxmtB,EAAMA,EAAKwmtB,EAAS,GAIpB8H,IAFA/H,GAHAA,EAAUA,GAAWng0B,EAAI,SAAa,GAAM,IAGxB45G,IAAO,IAAO,KAEZ,GACtBumtB,GAAU,QACZ,CACAl3xB,EAAI64f,MAAMlngB,GAAKwlyB,EACfl3xB,EAAQi3xB,EACRA,EAAS+H,CACX,CAOA,OANc,IAAVh/xB,EACFD,EAAI64f,MAAMlngB,GAAKsO,EAEfD,EAAI1oC,SAGC0oC,EAAImnyB,QACb,CAEA,SAAStI,EAAYtktB,EAAM/hF,EAAKwH,GAI9B,OAAOk/xB,EAAS3ktB,EAAM/hF,EAAKwH,EAC7B,CAqBA,SAAS8+xB,EAAMj9zB,EAAGP,GAChB5K,KAAKmL,EAAIA,EACTnL,KAAK4K,EAAIA,CACX,CA1EKg+B,KAAKq+xB,OACR7D,EAAc7C,GAmDhBrB,EAAGh/zB,UAAUoo0B,MAAQ,SAAgBxmyB,EAAKwH,GACxC,IACI/iB,EAAMvmB,KAAKY,OAASkhC,EAAIlhC,OAW5B,OAVoB,KAAhBZ,KAAKY,QAAgC,KAAfkhC,EAAIlhC,OACtBwi0B,EAAYpj0B,KAAM8hC,EAAKwH,GACpB/iB,EAAM,GACTg6yB,EAAWvg0B,KAAM8hC,EAAKwH,GACnB/iB,EAAM,KACTiizB,EAASxo0B,KAAM8hC,EAAKwH,GAEpB6+xB,EAAWno0B,KAAM8hC,EAAKwH,EAIhC,EAUA8+xB,EAAKlo0B,UAAUuo0B,QAAU,SAAkBp6wB,GAGzC,IAFA,IAAI5tD,EAAI,IAAI6hB,MAAM+rC,GACdhB,EAAI6xwB,EAAGh/zB,UAAUoh0B,WAAWjzwB,GAAK,EAC5BrtD,EAAI,EAAGA,EAAIqtD,EAAGrtD,IACrBP,EAAEO,GAAKhB,KAAK0o0B,OAAO1n0B,EAAGqsD,EAAGgB,GAG3B,OAAO5tD,CACT,EAGA2n0B,EAAKlo0B,UAAUwo0B,OAAS,SAAiBv9zB,EAAGkiD,EAAGgB,GAC7C,GAAU,IAANljD,GAAWA,IAAMkjD,EAAI,EAAG,OAAOljD,EAGnC,IADA,IAAIw9zB,EAAK,EACA3n0B,EAAI,EAAGA,EAAIqsD,EAAGrsD,IACrB2n0B,IAAW,EAAJx9zB,IAAWkiD,EAAIrsD,EAAI,EAC1BmK,IAAM,EAGR,OAAOw9zB,CACT,EAIAP,EAAKlo0B,UAAU0o0B,QAAU,SAAkBC,EAAKC,EAAKC,EAAKC,EAAMC,EAAM56wB,GACpE,IAAK,IAAIrtD,EAAI,EAAGA,EAAIqtD,EAAGrtD,IACrBgo0B,EAAKho0B,GAAK8n0B,EAAID,EAAI7n0B,IAClBio0B,EAAKjo0B,GAAK+n0B,EAAIF,EAAI7n0B,GAEtB,EAEAon0B,EAAKlo0B,UAAUojI,UAAY,SAAoBwlsB,EAAKC,EAAKC,EAAMC,EAAM56wB,EAAGw6wB,GACtE7o0B,KAAK4o0B,QAAQC,EAAKC,EAAKC,EAAKC,EAAMC,EAAM56wB,GAExC,IAAK,IAAIn1B,EAAI,EAAGA,EAAIm1B,EAAGn1B,IAAM,EAM3B,IALA,IAAIm0B,EAAIn0B,GAAK,EAETgwyB,EAAQtgyB,KAAKqmf,IAAI,EAAIrmf,KAAK2sG,GAAKloF,GAC/B87wB,EAAQvgyB,KAAKsmf,IAAI,EAAItmf,KAAK2sG,GAAKloF,GAE1B10B,EAAI,EAAGA,EAAI01B,EAAG11B,GAAK00B,EAI1B,IAHA,IAAI+7wB,EAASF,EACTG,EAASF,EAEJ3tyB,EAAI,EAAGA,EAAItC,EAAGsC,IAAK,CAC1B,IAAI8pJ,EAAK0jpB,EAAKrwyB,EAAI6C,GACd8tyB,EAAKL,EAAKtwyB,EAAI6C,GAEd+tyB,EAAKP,EAAKrwyB,EAAI6C,EAAItC,GAClBswyB,EAAKP,EAAKtwyB,EAAI6C,EAAItC,GAElBuwyB,EAAKL,EAASG,EAAKF,EAASG,EAEhCA,EAAKJ,EAASI,EAAKH,EAASE,EAC5BA,EAAKE,EAELT,EAAKrwyB,EAAI6C,GAAK8pJ,EAAKikpB,EACnBN,EAAKtwyB,EAAI6C,GAAK8tyB,EAAKE,EAEnBR,EAAKrwyB,EAAI6C,EAAItC,GAAKosJ,EAAKikpB,EACvBN,EAAKtwyB,EAAI6C,EAAItC,GAAKowyB,EAAKE,EAGnBhuyB,IAAM6xB,IACRo8wB,EAAKP,EAAQE,EAASD,EAAQE,EAE9BA,EAASH,EAAQG,EAASF,EAAQC,EAClCA,EAASK,EAEb,CAGN,EAEArB,EAAKlo0B,UAAUwp0B,YAAc,SAAsB7o0B,EAAGm6B,GACpD,IAAIqzB,EAAqB,EAAjBzlB,KAAKoa,IAAIhoB,EAAGn6B,GAChB8o0B,EAAU,EAAJt7wB,EACNrtD,EAAI,EACR,IAAKqtD,EAAIA,EAAI,EAAI,EAAGA,EAAGA,KAAU,EAC/BrtD,IAGF,OAAO,GAAKA,EAAI,EAAI2o0B,CACtB,EAEAvB,EAAKlo0B,UAAU0p0B,UAAY,SAAoBd,EAAKC,EAAK16wB,GACvD,KAAIA,GAAK,GAET,IAAK,IAAIrtD,EAAI,EAAGA,EAAIqtD,EAAI,EAAGrtD,IAAK,CAC9B,IAAIP,EAAIqo0B,EAAI9n0B,GAEZ8n0B,EAAI9n0B,GAAK8n0B,EAAIz6wB,EAAIrtD,EAAI,GACrB8n0B,EAAIz6wB,EAAIrtD,EAAI,GAAKP,EAEjBA,EAAIso0B,EAAI/n0B,GAER+n0B,EAAI/n0B,IAAM+n0B,EAAI16wB,EAAIrtD,EAAI,GACtB+n0B,EAAI16wB,EAAIrtD,EAAI,IAAMP,CACpB,CACF,EAEA2n0B,EAAKlo0B,UAAU2p0B,aAAe,SAAuBhpU,EAAIxyc,GAEvD,IADA,IAAI9kB,EAAQ,EACHvoC,EAAI,EAAGA,EAAIqtD,EAAI,EAAGrtD,IAAK,CAC9B,IAAIusD,EAAoC,KAAhC3kB,KAAKE,MAAM+3d,EAAG,EAAI7/f,EAAI,GAAKqtD,GACjCzlB,KAAKE,MAAM+3d,EAAG,EAAI7/f,GAAKqtD,GACvB9kB,EAEFs3d,EAAG7/f,GAAS,SAAJusD,EAGNhkB,EADEgkB,EAAI,SACE,EAEAA,EAAI,SAAY,CAE5B,CAEA,OAAOszc,CACT,EAEAunU,EAAKlo0B,UAAU4p0B,WAAa,SAAqBjpU,EAAIt6e,EAAKuizB,EAAKz6wB,GAE7D,IADA,IAAI9kB,EAAQ,EACHvoC,EAAI,EAAGA,EAAIulB,EAAKvlB,IACvBuoC,GAAyB,EAARs3d,EAAG7/f,GAEpB8n0B,EAAI,EAAI9n0B,GAAa,KAARuoC,EAAgBA,KAAkB,GAC/Cu/xB,EAAI,EAAI9n0B,EAAI,GAAa,KAARuoC,EAAgBA,KAAkB,GAIrD,IAAKvoC,EAAI,EAAIulB,EAAKvlB,EAAIqtD,IAAKrtD,EACzB8n0B,EAAI9n0B,GAAK,EAGXkluB,EAAiB,IAAV38rB,GACP28rB,EAA6B,MAAb,KAAR38rB,GACV,EAEA6+xB,EAAKlo0B,UAAUsrT,KAAO,SAAen9P,GAEnC,IADA,IAAI07wB,EAAK,IAAIznzB,MAAM+rC,GACVrtD,EAAI,EAAGA,EAAIqtD,EAAGrtD,IACrB+o0B,EAAG/o0B,GAAK,EAGV,OAAO+o0B,CACT,EAEA3B,EAAKlo0B,UAAUmo0B,KAAO,SAAel9zB,EAAGP,EAAG0+B,GACzC,IAAI+kB,EAAI,EAAIruD,KAAK0p0B,YAAYv+zB,EAAEvK,OAAQgK,EAAEhK,QAErCio0B,EAAM7o0B,KAAKyo0B,QAAQp6wB,GAEnB3zB,EAAI16B,KAAKwrT,KAAKn9P,GAEdy6wB,EAAM,IAAIxmzB,MAAM+rC,GAChB27wB,EAAO,IAAI1nzB,MAAM+rC,GACjB47wB,EAAO,IAAI3nzB,MAAM+rC,GAEjB67wB,EAAO,IAAI5nzB,MAAM+rC,GACjB87wB,EAAQ,IAAI7nzB,MAAM+rC,GAClB+7wB,EAAQ,IAAI9nzB,MAAM+rC,GAElBg8wB,EAAO/gyB,EAAI64f,MACfkoS,EAAKzp0B,OAASytD,EAEdruD,KAAK8p0B,WAAW3+zB,EAAEg3hB,MAAOh3hB,EAAEvK,OAAQko0B,EAAKz6wB,GACxCruD,KAAK8p0B,WAAWl/zB,EAAEu3hB,MAAOv3hB,EAAEhK,OAAQsp0B,EAAM77wB,GAEzCruD,KAAKsjI,UAAUwlsB,EAAKpuyB,EAAGsvyB,EAAMC,EAAM57wB,EAAGw6wB,GACtC7o0B,KAAKsjI,UAAU4msB,EAAMxvyB,EAAGyvyB,EAAOC,EAAO/7wB,EAAGw6wB,GAEzC,IAAK,IAAI7n0B,EAAI,EAAGA,EAAIqtD,EAAGrtD,IAAK,CAC1B,IAAIyo0B,EAAKO,EAAKhp0B,GAAKmp0B,EAAMnp0B,GAAKip0B,EAAKjp0B,GAAKop0B,EAAMpp0B,GAC9Cip0B,EAAKjp0B,GAAKgp0B,EAAKhp0B,GAAKop0B,EAAMpp0B,GAAKip0B,EAAKjp0B,GAAKmp0B,EAAMnp0B,GAC/Cgp0B,EAAKhp0B,GAAKyo0B,CACZ,CASA,OAPAzp0B,KAAK4p0B,UAAUI,EAAMC,EAAM57wB,GAC3BruD,KAAKsjI,UAAU0msB,EAAMC,EAAMI,EAAM3vyB,EAAG2zB,EAAGw6wB,GACvC7o0B,KAAK4p0B,UAAUS,EAAM3vyB,EAAG2zB,GACxBruD,KAAK6p0B,aAAaQ,EAAMh8wB,GAExB/kB,EAAIL,SAAW99B,EAAE89B,SAAWr+B,EAAEq+B,SAC9BK,EAAI1oC,OAASuK,EAAEvK,OAASgK,EAAEhK,OACnB0oC,EAAImnyB,QACb,EAGAvR,EAAGh/zB,UAAU+8G,IAAM,SAAcn7E,GAC/B,IAAIwH,EAAM,IAAI41xB,EAAG,MAEjB,OADA51xB,EAAI64f,MAAQ,IAAI7/gB,MAAMtiB,KAAKY,OAASkhC,EAAIlhC,QACjCZ,KAAKso0B,MAAMxmyB,EAAKwH,EACzB,EAGA41xB,EAAGh/zB,UAAUoq0B,KAAO,SAAexoyB,GACjC,IAAIwH,EAAM,IAAI41xB,EAAG,MAEjB,OADA51xB,EAAI64f,MAAQ,IAAI7/gB,MAAMtiB,KAAKY,OAASkhC,EAAIlhC,QACjCun0B,EAAWno0B,KAAM8hC,EAAKwH,EAC/B,EAGA41xB,EAAGh/zB,UAAU+m0B,KAAO,SAAenlyB,GACjC,OAAO9hC,KAAKixC,QAAQq3xB,MAAMxmyB,EAAK9hC,KACjC,EAEAk/zB,EAAGh/zB,UAAU8/zB,MAAQ,SAAgBl+xB,GACnC,IAAIsgzB,EAAWtgzB,EAAM,EACjBsgzB,IAAUtgzB,GAAOA,GAErBoksB,EAAsB,kBAARpksB,GACdoksB,EAAOpksB,EAAM,UAIb,IADA,IAAIyH,EAAQ,EACHvoC,EAAI,EAAGA,EAAIhB,KAAKY,OAAQI,IAAK,CACpC,IAAIusD,GAAqB,EAAhBvtD,KAAKmiiB,MAAMnhiB,IAAU8gC,EAC1Bm4E,GAAU,SAAJ1sD,IAA0B,SAARhkB,GAC5BA,IAAU,GACVA,GAAUgkB,EAAI,SAAa,EAE3BhkB,GAAS0wE,IAAO,GAChBj6G,KAAKmiiB,MAAMnhiB,GAAU,SAALi5G,CAClB,CAOA,OALc,IAAV1wE,IACFvpC,KAAKmiiB,MAAMnhiB,GAAKuoC,EAChBvpC,KAAKY,UAGAwh1B,EAAWpi1B,KAAK+h0B,OAAS/h0B,IAClC,EAEAk/zB,EAAGh/zB,UAAUqq0B,KAAO,SAAezoyB,GACjC,OAAO9hC,KAAKixC,QAAQ+uxB,MAAMl+xB,EAC5B,EAGAo9xB,EAAGh/zB,UAAUsq0B,IAAM,WACjB,OAAOxq0B,KAAKi9G,IAAIj9G,KAClB,EAGAk/zB,EAAGh/zB,UAAUuq0B,KAAO,WAClB,OAAOzq0B,KAAKin0B,KAAKjn0B,KAAKixC,QACxB,EAGAiuxB,EAAGh/zB,UAAU6iD,IAAM,SAAcjhB,GAC/B,IAAIyrB,EA7xCN,SAAqBzrB,GAGnB,IAFA,IAAIyrB,EAAI,IAAIjrC,MAAMwf,EAAI47K,aAEbm0mB,EAAM,EAAGA,EAAMtkwB,EAAE3sD,OAAQixzB,IAAO,CACvC,IAAI78sB,EAAO68sB,EAAM,GAAM,EACnBoR,EAAOpR,EAAM,GAEjBtkwB,EAAEskwB,GAAQ/vxB,EAAIqggB,MAAMntb,KAASiutB,EAAQ,CACvC,CAEA,OAAO11wB,CACT,CAkxCUm9wB,CAAW5oyB,GACnB,GAAiB,IAAbyrB,EAAE3sD,OAAc,OAAO,IAAIs+zB,EAAG,GAIlC,IADA,IAAI9ktB,EAAMp6G,KACDgB,EAAI,EAAGA,EAAIusD,EAAE3sD,QACP,IAAT2sD,EAAEvsD,GADsBA,IAAKo5G,EAAMA,EAAIowtB,OAI7C,KAAMxp0B,EAAIusD,EAAE3sD,OACV,IAAK,IAAIi7B,EAAIu+E,EAAIowtB,MAAOxp0B,EAAIusD,EAAE3sD,OAAQI,IAAK66B,EAAIA,EAAE2uyB,MAClC,IAATj9wB,EAAEvsD,KAENo5G,EAAMA,EAAI6C,IAAIphF,IAIlB,OAAOu+E,CACT,EAGA8ktB,EAAGh/zB,UAAUyq0B,OAAS,SAAiBltnB,GACrCyohB,EAAuB,kBAATzohB,GAAqBA,GAAQ,GAC3C,IAGIz8M,EAHAX,EAAIo9M,EAAO,GACXvkL,GAAKukL,EAAOp9M,GAAK,GACjBuq0B,EAAa,WAAe,GAAKvq0B,GAAQ,GAAKA,EAGlD,GAAU,IAANA,EAAS,CACX,IAAIkpC,EAAQ,EAEZ,IAAKvoC,EAAI,EAAGA,EAAIhB,KAAKY,OAAQI,IAAK,CAChC,IAAI6p0B,EAAW7q0B,KAAKmiiB,MAAMnhiB,GAAK4p0B,EAC3B3p0B,GAAsB,EAAhBjB,KAAKmiiB,MAAMnhiB,IAAU6p0B,GAAaxq0B,EAC5CL,KAAKmiiB,MAAMnhiB,GAAKC,EAAIsoC,EACpBA,EAAQshyB,IAAc,GAAKxq0B,CAC7B,CAEIkpC,IACFvpC,KAAKmiiB,MAAMnhiB,GAAKuoC,EAChBvpC,KAAKY,SAET,CAEA,GAAU,IAANs4B,EAAS,CACX,IAAKl4B,EAAIhB,KAAKY,OAAS,EAAGI,GAAK,EAAGA,IAChChB,KAAKmiiB,MAAMnhiB,EAAIk4B,GAAKl5B,KAAKmiiB,MAAMnhiB,GAGjC,IAAKA,EAAI,EAAGA,EAAIk4B,EAAGl4B,IACjBhB,KAAKmiiB,MAAMnhiB,GAAK,EAGlBhB,KAAKY,QAAUs4B,CACjB,CAEA,OAAOl5B,KAAKyw0B,QACd,EAEAvR,EAAGh/zB,UAAU4q0B,MAAQ,SAAgBrtnB,GAGnC,OADAyohB,EAAyB,IAAlBlmuB,KAAKipC,UACLjpC,KAAK2q0B,OAAOltnB,EACrB,EAKAyhnB,EAAGh/zB,UAAUkh0B,OAAS,SAAiB3jnB,EAAMxM,EAAM85nB,GAEjD,IAAI7pzB,EADJgltB,EAAuB,kBAATzohB,GAAqBA,GAAQ,GAGzCv8L,EADE+vL,GACGA,EAAQA,EAAO,IAAO,GAEvB,EAGN,IAAI5wM,EAAIo9M,EAAO,GACXvkL,EAAI0P,KAAKuZ,KAAKs7J,EAAOp9M,GAAK,GAAIL,KAAKY,QACnCiloB,EAAO,SAAc,WAAcxloB,GAAMA,EACzC2q0B,EAAcD,EAMlB,GAJA7pzB,GAAKgY,EACLhY,EAAI0nB,KAAKoa,IAAI,EAAG9hC,GAGZ8pzB,EAAa,CACf,IAAK,IAAIhq0B,EAAI,EAAGA,EAAIk4B,EAAGl4B,IACrBgq0B,EAAY7oS,MAAMnhiB,GAAKhB,KAAKmiiB,MAAMnhiB,GAEpCgq0B,EAAYpq0B,OAASs4B,CACvB,CAEA,GAAU,IAANA,QAEG,GAAIl5B,KAAKY,OAASs4B,EAEvB,IADAl5B,KAAKY,QAAUs4B,EACVl4B,EAAI,EAAGA,EAAIhB,KAAKY,OAAQI,IAC3BhB,KAAKmiiB,MAAMnhiB,GAAKhB,KAAKmiiB,MAAMnhiB,EAAIk4B,QAGjCl5B,KAAKmiiB,MAAM,GAAK,EAChBniiB,KAAKY,OAAS,EAGhB,IAAI2oC,EAAQ,EACZ,IAAKvoC,EAAIhB,KAAKY,OAAS,EAAGI,GAAK,IAAgB,IAAVuoC,GAAevoC,GAAKkgB,GAAIlgB,IAAK,CAChE,IAAIuwO,EAAuB,EAAhBvxO,KAAKmiiB,MAAMnhiB,GACtBhB,KAAKmiiB,MAAMnhiB,GAAMuoC,GAAU,GAAKlpC,EAAOkxO,IAASlxO,EAChDkpC,EAAQgoM,EAAOs0Z,CACjB,CAYA,OATImlM,GAAyB,IAAVzhyB,IACjByhyB,EAAY7oS,MAAM6oS,EAAYpq0B,UAAY2oC,GAGxB,IAAhBvpC,KAAKY,SACPZ,KAAKmiiB,MAAM,GAAK,EAChBniiB,KAAKY,OAAS,GAGTZ,KAAKyw0B,QACd,EAEAvR,EAAGh/zB,UAAU+q0B,MAAQ,SAAgBxtnB,EAAMxM,EAAM85nB,GAG/C,OADA7kG,EAAyB,IAAlBlmuB,KAAKipC,UACLjpC,KAAKoh0B,OAAO3jnB,EAAMxM,EAAM85nB,EACjC,EAGA7L,EAAGh/zB,UAAUgr0B,KAAO,SAAeztnB,GACjC,OAAOz9M,KAAKixC,QAAQ65xB,MAAMrtnB,EAC5B,EAEAyhnB,EAAGh/zB,UAAUir0B,MAAQ,SAAgB1tnB,GACnC,OAAOz9M,KAAKixC,QAAQ05xB,OAAOltnB,EAC7B,EAGAyhnB,EAAGh/zB,UAAUkr0B,KAAO,SAAe3tnB,GACjC,OAAOz9M,KAAKixC,QAAQg6xB,MAAMxtnB,EAC5B,EAEAyhnB,EAAGh/zB,UAAUmr0B,MAAQ,SAAgB5tnB,GACnC,OAAOz9M,KAAKixC,QAAQmwxB,OAAO3jnB,EAC7B,EAGAyhnB,EAAGh/zB,UAAU2h0B,MAAQ,SAAgBhQ,GACnC3rF,EAAsB,kBAAR2rF,GAAoBA,GAAO,GACzC,IAAIxxzB,EAAIwxzB,EAAM,GACV34xB,GAAK24xB,EAAMxxzB,GAAK,GAChBw7B,EAAI,GAAKx7B,EAGb,QAAIL,KAAKY,QAAUs4B,OAGXl5B,KAAKmiiB,MAAMjpgB,GAEL2C,EAChB,EAGAqjyB,EAAGh/zB,UAAUor0B,OAAS,SAAiB7tnB,GACrCyohB,EAAuB,kBAATzohB,GAAqBA,GAAQ,GAC3C,IAAIp9M,EAAIo9M,EAAO,GACXvkL,GAAKukL,EAAOp9M,GAAK,GAIrB,GAFA6luB,EAAyB,IAAlBlmuB,KAAKipC,SAAgB,2CAExBjpC,KAAKY,QAAUs4B,EACjB,OAAOl5B,KAQT,GALU,IAANK,GACF64B,IAEFl5B,KAAKY,OAASgoC,KAAKuZ,IAAIjpB,EAAGl5B,KAAKY,QAErB,IAANP,EAAS,CACX,IAAIwloB,EAAO,SAAc,WAAcxloB,GAAMA,EAC7CL,KAAKmiiB,MAAMniiB,KAAKY,OAAS,IAAMiloB,CACjC,CAEA,OAAO7loB,KAAKyw0B,QACd,EAGAvR,EAAGh/zB,UAAUqr0B,MAAQ,SAAgB9tnB,GACnC,OAAOz9M,KAAKixC,QAAQq6xB,OAAO7tnB,EAC7B,EAGAyhnB,EAAGh/zB,UAAUyh0B,MAAQ,SAAgB7/xB,GAGnC,OAFAoksB,EAAsB,kBAARpksB,GACdoksB,EAAOpksB,EAAM,UACTA,EAAM,EAAU9hC,KAAKwr0B,OAAO1pyB,GAGV,IAAlB9hC,KAAKipC,SACa,IAAhBjpC,KAAKY,SAAiC,EAAhBZ,KAAKmiiB,MAAM,KAAWrggB,GAC9C9hC,KAAKmiiB,MAAM,GAAKrggB,GAAuB,EAAhB9hC,KAAKmiiB,MAAM,IAClCniiB,KAAKipC,SAAW,EACTjpC,OAGTA,KAAKipC,SAAW,EAChBjpC,KAAKwr0B,MAAM1pyB,GACX9hC,KAAKipC,SAAW,EACTjpC,MAIFA,KAAKig0B,OAAOn+xB,EACrB,EAEAo9xB,EAAGh/zB,UAAU+/zB,OAAS,SAAiBn+xB,GACrC9hC,KAAKmiiB,MAAM,IAAMrggB,EAGjB,IAAK,IAAI9gC,EAAI,EAAGA,EAAIhB,KAAKY,QAAUZ,KAAKmiiB,MAAMnhiB,IAAM,SAAWA,IAC7DhB,KAAKmiiB,MAAMnhiB,IAAM,SACbA,IAAMhB,KAAKY,OAAS,EACtBZ,KAAKmiiB,MAAMnhiB,EAAI,GAAK,EAEpBhB,KAAKmiiB,MAAMnhiB,EAAI,KAKnB,OAFAhB,KAAKY,OAASgoC,KAAKoa,IAAIhjD,KAAKY,OAAQI,EAAI,GAEjChB,IACT,EAGAk/zB,EAAGh/zB,UAAUsr0B,MAAQ,SAAgB1pyB,GAGnC,GAFAoksB,EAAsB,kBAARpksB,GACdoksB,EAAOpksB,EAAM,UACTA,EAAM,EAAG,OAAO9hC,KAAK2h0B,OAAO7/xB,GAEhC,GAAsB,IAAlB9hC,KAAKipC,SAIP,OAHAjpC,KAAKipC,SAAW,EAChBjpC,KAAK2h0B,MAAM7/xB,GACX9hC,KAAKipC,SAAW,EACTjpC,KAKT,GAFAA,KAAKmiiB,MAAM,IAAMrggB,EAEG,IAAhB9hC,KAAKY,QAAgBZ,KAAKmiiB,MAAM,GAAK,EACvCniiB,KAAKmiiB,MAAM,IAAMniiB,KAAKmiiB,MAAM,GAC5BniiB,KAAKipC,SAAW,OAGhB,IAAK,IAAIjoC,EAAI,EAAGA,EAAIhB,KAAKY,QAAUZ,KAAKmiiB,MAAMnhiB,GAAK,EAAGA,IACpDhB,KAAKmiiB,MAAMnhiB,IAAM,SACjBhB,KAAKmiiB,MAAMnhiB,EAAI,IAAM,EAIzB,OAAOhB,KAAKyw0B,QACd,EAEAvR,EAAGh/zB,UAAUur0B,KAAO,SAAe3pyB,GACjC,OAAO9hC,KAAKixC,QAAQ0wxB,MAAM7/xB,EAC5B,EAEAo9xB,EAAGh/zB,UAAUwr0B,KAAO,SAAe5pyB,GACjC,OAAO9hC,KAAKixC,QAAQu6xB,MAAM1pyB,EAC5B,EAEAo9xB,EAAGh/zB,UAAUyr0B,KAAO,WAGlB,OAFA3r0B,KAAKipC,SAAW,EAETjpC,IACT,EAEAk/zB,EAAGh/zB,UAAU2oC,IAAM,WACjB,OAAO7oC,KAAKixC,QAAQ06xB,MACtB,EAEAzM,EAAGh/zB,UAAU0r0B,aAAe,SAAuB9pyB,EAAKm7E,EAAKhhF,GAC3D,IACIj7B,EAIAusD,EALAhnC,EAAMub,EAAIlhC,OAASq7B,EAGvBj8B,KAAKkg0B,QAAQ35yB,GAGb,IAAIgjB,EAAQ,EACZ,IAAKvoC,EAAI,EAAGA,EAAI8gC,EAAIlhC,OAAQI,IAAK,CAC/BusD,GAA6B,EAAxBvtD,KAAKmiiB,MAAMnhiB,EAAIi7B,IAAcsN,EAClC,IAAIm3F,GAAwB,EAAf5+F,EAAIqggB,MAAMnhiB,IAAUi8G,EAEjC1zE,IADAgkB,GAAa,SAARmzE,IACS,KAAQA,EAAQ,SAAa,GAC3C1gI,KAAKmiiB,MAAMnhiB,EAAIi7B,GAAa,SAAJsxB,CAC1B,CACA,KAAOvsD,EAAIhB,KAAKY,OAASq7B,EAAOj7B,IAE9BuoC,GADAgkB,GAA6B,EAAxBvtD,KAAKmiiB,MAAMnhiB,EAAIi7B,IAAcsN,IACrB,GACbvpC,KAAKmiiB,MAAMnhiB,EAAIi7B,GAAa,SAAJsxB,EAG1B,GAAc,IAAVhkB,EAAa,OAAOvpC,KAAKyw0B,SAK7B,IAFAvqG,GAAkB,IAAX38rB,GACPA,EAAQ,EACHvoC,EAAI,EAAGA,EAAIhB,KAAKY,OAAQI,IAE3BuoC,GADAgkB,IAAsB,EAAhBvtD,KAAKmiiB,MAAMnhiB,IAAUuoC,IACd,GACbvpC,KAAKmiiB,MAAMnhiB,GAAS,SAAJusD,EAIlB,OAFAvtD,KAAKipC,SAAW,EAETjpC,KAAKyw0B,QACd,EAEAvR,EAAGh/zB,UAAU2r0B,SAAW,SAAmB/pyB,EAAK3zB,GAC9C,IAAI8tB,GAAQj8B,KAAKY,OAASkhC,EAAIlhC,QAE1BG,EAAIf,KAAKixC,QACTzY,EAAIsJ,EAGJgqyB,EAA8B,EAAxBtzyB,EAAE2pgB,MAAM3pgB,EAAE53B,OAAS,GAGf,KADdq7B,EAAQ,GADMj8B,KAAKsh0B,WAAWwK,MAG5BtzyB,EAAIA,EAAE2yyB,MAAMlvyB,GACZl7B,EAAE4p0B,OAAO1uyB,GACT6vyB,EAA8B,EAAxBtzyB,EAAE2pgB,MAAM3pgB,EAAE53B,OAAS,IAI3B,IACIi7B,EADAb,EAAIj6B,EAAEH,OAAS43B,EAAE53B,OAGrB,GAAa,QAATuN,EAAgB,EAClB0tB,EAAI,IAAIqjyB,EAAG,OACTt+zB,OAASo6B,EAAI,EACfa,EAAEsmgB,MAAQ,IAAI7/gB,MAAMuZ,EAAEj7B,QACtB,IAAK,IAAII,EAAI,EAAGA,EAAI66B,EAAEj7B,OAAQI,IAC5B66B,EAAEsmgB,MAAMnhiB,GAAK,CAEjB,CAEA,IAAIs5J,EAAOv5J,EAAEkwC,QAAQ26xB,aAAapzyB,EAAG,EAAGwC,GAClB,IAAlBs/H,EAAKrxH,WACPloC,EAAIu5J,EACAz+H,IACFA,EAAEsmgB,MAAMnngB,GAAK,IAIjB,IAAK,IAAIQ,EAAIR,EAAI,EAAGQ,GAAK,EAAGA,IAAK,CAC/B,IAAIuwyB,EAAmC,UAAL,EAAxBhr0B,EAAEohiB,MAAM3pgB,EAAE53B,OAAS46B,KACE,EAA5Bz6B,EAAEohiB,MAAM3pgB,EAAE53B,OAAS46B,EAAI,IAO1B,IAHAuwyB,EAAKnjyB,KAAKuZ,IAAK4pxB,EAAKD,EAAO,EAAG,UAE9B/q0B,EAAE6q0B,aAAapzyB,EAAGuzyB,EAAIvwyB,GACA,IAAfz6B,EAAEkoC,UACP8iyB,IACAhr0B,EAAEkoC,SAAW,EACbloC,EAAE6q0B,aAAapzyB,EAAG,EAAGgD,GAChBz6B,EAAE8/zB,WACL9/zB,EAAEkoC,UAAY,GAGdpN,IACFA,EAAEsmgB,MAAM3mgB,GAAKuwyB,EAEjB,CAWA,OAVIlwyB,GACFA,EAAE40yB,SAEJ1v0B,EAAE0v0B,SAGW,QAATti0B,GAA4B,IAAV8tB,GACpBl7B,EAAEqg0B,OAAOnlyB,GAGJ,CACL/yB,IAAK2yB,GAAK,KACVW,IAAKz7B,EAET,EAMAm+zB,EAAGh/zB,UAAU8r0B,OAAS,SAAiBlqyB,EAAK3zB,EAAM89zB,GAGhD,OAFA/lG,GAAQpksB,EAAI++xB,UAER7g0B,KAAK6g0B,SACA,CACL33zB,IAAK,IAAIg2zB,EAAG,GACZ1iyB,IAAK,IAAI0iyB,EAAG,IAKM,IAAlBl/zB,KAAKipC,UAAmC,IAAjBnH,EAAImH,UAC7BmxE,EAAMp6G,KAAKii0B,MAAM+J,OAAOlqyB,EAAK3zB,GAEhB,QAATA,IACFjF,EAAMkxG,EAAIlxG,IAAI+4zB,OAGH,QAAT9zzB,IACFquB,EAAM49E,EAAI59E,IAAIylyB,MACVgK,GAA6B,IAAjBzvyB,EAAIyM,UAClBzM,EAAI0myB,KAAKphyB,IAIN,CACL54B,IAAKA,EACLszB,IAAKA,IAIa,IAAlBx8B,KAAKipC,UAAmC,IAAjBnH,EAAImH,UAC7BmxE,EAAMp6G,KAAKgs0B,OAAOlqyB,EAAImgyB,MAAO9zzB,GAEhB,QAATA,IACFjF,EAAMkxG,EAAIlxG,IAAI+4zB,OAGT,CACL/4zB,IAAKA,EACLszB,IAAK49E,EAAI59E,MAI0B,KAAlCx8B,KAAKipC,SAAWnH,EAAImH,WACvBmxE,EAAMp6G,KAAKii0B,MAAM+J,OAAOlqyB,EAAImgyB,MAAO9zzB,GAEtB,QAATA,IACFquB,EAAM49E,EAAI59E,IAAIylyB,MACVgK,GAA6B,IAAjBzvyB,EAAIyM,UAClBzM,EAAI2myB,KAAKrhyB,IAIN,CACL54B,IAAKkxG,EAAIlxG,IACTszB,IAAKA,IAOLsF,EAAIlhC,OAASZ,KAAKY,QAAUZ,KAAKgja,IAAIlhY,GAAO,EACvC,CACL54B,IAAK,IAAIg2zB,EAAG,GACZ1iyB,IAAKx8B,MAKU,IAAf8hC,EAAIlhC,OACO,QAATuN,EACK,CACLjF,IAAKlJ,KAAKks0B,KAAKpqyB,EAAIqggB,MAAM,IACzB3lgB,IAAK,MAII,QAATruB,EACK,CACLjF,IAAK,KACLszB,IAAK,IAAI0iyB,EAAGl/zB,KAAKgi1B,MAAMlgzB,EAAIqggB,MAAM,MAI9B,CACLj5hB,IAAKlJ,KAAKks0B,KAAKpqyB,EAAIqggB,MAAM,IACzB3lgB,IAAK,IAAI0iyB,EAAGl/zB,KAAKgi1B,MAAMlgzB,EAAIqggB,MAAM,MAI9BniiB,KAAK6r0B,SAAS/pyB,EAAK3zB,GAlF1B,IAAIjF,EAAKszB,EAAK49E,CAmFhB,EAGA8ktB,EAAGh/zB,UAAUgJ,IAAM,SAAc44B,GAC/B,OAAO9hC,KAAKgs0B,OAAOlqyB,EAAK,OAAO,GAAO54B,GACxC,EAGAg2zB,EAAGh/zB,UAAUs8B,IAAM,SAAcsF,GAC/B,OAAO9hC,KAAKgs0B,OAAOlqyB,EAAK,OAAO,GAAOtF,GACxC,EAEA0iyB,EAAGh/zB,UAAUis0B,KAAO,SAAerqyB,GACjC,OAAO9hC,KAAKgs0B,OAAOlqyB,EAAK,OAAO,GAAMtF,GACvC,EAGA0iyB,EAAGh/zB,UAAUks0B,SAAW,SAAmBtqyB,GACzC,IAAIuqyB,EAAKrs0B,KAAKgs0B,OAAOlqyB,GAGrB,GAAIuqyB,EAAG7vyB,IAAIqkyB,SAAU,OAAOwL,EAAGnj0B,IAE/B,IAAIszB,EAA0B,IAApB6vyB,EAAGnj0B,IAAI+/B,SAAiBojyB,EAAG7vyB,IAAI2myB,KAAKrhyB,GAAOuqyB,EAAG7vyB,IAEpDqsiB,EAAO/miB,EAAIupyB,MAAM,GACjBiB,EAAKxqyB,EAAIq/xB,MAAM,GACfn+Z,EAAMxmY,EAAIwmY,IAAI6lK,GAGlB,OAAI7lK,EAAM,GAAa,IAAPspa,GAAoB,IAARtpa,EAAmBqpa,EAAGnj0B,IAGvB,IAApBmj0B,EAAGnj0B,IAAI+/B,SAAiBojyB,EAAGnj0B,IAAIsi0B,MAAM,GAAKa,EAAGnj0B,IAAIy4zB,MAAM,EAChE,EAEAzC,EAAGh/zB,UAAU8h1B,MAAQ,SAAgBlgzB,GACnC,IAAIsgzB,EAAWtgzB,EAAM,EACjBsgzB,IAAUtgzB,GAAOA,GAErBoksB,EAAOpksB,GAAO,UAId,IAHA,IAAInJ,GAAK,GAAK,IAAMmJ,EAEhB3f,EAAM,EACDnhB,EAAIhB,KAAKY,OAAS,EAAGI,GAAK,EAAGA,IACpCmhB,GAAOwW,EAAIxW,GAAuB,EAAhBniB,KAAKmiiB,MAAMnhiB,KAAW8gC,EAG1C,OAAOsgzB,GAAYjg0B,EAAMA,CAC3B,EAGA+8yB,EAAGh/zB,UAAU4g0B,KAAO,SAAeh/xB,GACjC,OAAO9hC,KAAKgi1B,MAAMlgzB,EACpB,EAGAo9xB,EAAGh/zB,UAAU6g0B,MAAQ,SAAgBj/xB,GACnC,IAAIsgzB,EAAWtgzB,EAAM,EACjBsgzB,IAAUtgzB,GAAOA,GAErBoksB,EAAOpksB,GAAO,UAGd,IADA,IAAIyH,EAAQ,EACHvoC,EAAIhB,KAAKY,OAAS,EAAGI,GAAK,EAAGA,IAAK,CACzC,IAAIusD,GAAqB,EAAhBvtD,KAAKmiiB,MAAMnhiB,IAAkB,SAARuoC,EAC9BvpC,KAAKmiiB,MAAMnhiB,GAAMusD,EAAIzrB,EAAO,EAC5ByH,EAAQgkB,EAAIzrB,CACd,CAGA,OADA9hC,KAAKyw0B,SACE2R,EAAWpi1B,KAAK+h0B,OAAS/h0B,IAClC,EAEAk/zB,EAAGh/zB,UAAUgs0B,KAAO,SAAepqyB,GACjC,OAAO9hC,KAAKixC,QAAQ8vxB,MAAMj/xB,EAC5B,EAEAo9xB,EAAGh/zB,UAAUqs0B,KAAO,SAAe5zyB,GACjCutsB,EAAsB,IAAfvtsB,EAAEsQ,UACTi9rB,GAAQvtsB,EAAEkoyB,UAEV,IAAI11zB,EAAInL,KACJ4K,EAAI+tB,EAAEsY,QAGR9lC,EADiB,IAAfA,EAAE89B,SACA99B,EAAEgh0B,KAAKxzyB,GAEPxtB,EAAE8lC,QAaR,IATA,IAAIwc,EAAI,IAAIyxwB,EAAG,GACXxxwB,EAAI,IAAIwxwB,EAAG,GAGXvxwB,EAAI,IAAIuxwB,EAAG,GACX/ioB,EAAI,IAAI+ioB,EAAG,GAEXzkyB,EAAI,EAEDtvB,EAAEqh0B,UAAY5h0B,EAAE4h0B,UACrBrh0B,EAAEi2zB,OAAO,GACTx2zB,EAAEw2zB,OAAO,KACP3myB,EAMJ,IAHA,IAAIgyyB,EAAK7h0B,EAAEqmC,QACPy7xB,EAAKvh0B,EAAE8lC,SAEH9lC,EAAE01zB,UAAU,CAClB,IAAK,IAAI7/zB,EAAI,EAAG2r0B,EAAK,EAAyB,KAArBxh0B,EAAEg3hB,MAAM,GAAKwqS,IAAa3r0B,EAAI,KAAMA,EAAG2r0B,IAAO,GACvE,GAAI3r0B,EAAI,EAEN,IADAmK,EAAEi2zB,OAAOpg0B,GACFA,KAAM,IACPysD,EAAEm/wB,SAAWl/wB,EAAEk/wB,WACjBn/wB,EAAEy1wB,KAAKuJ,GACP/+wB,EAAEy1wB,KAAKuJ,IAGTj/wB,EAAE2zwB,OAAO,GACT1zwB,EAAE0zwB,OAAO,GAIb,IAAK,IAAI5lyB,EAAI,EAAGqxyB,EAAK,EAAyB,KAArBji0B,EAAEu3hB,MAAM,GAAK0qS,IAAarxyB,EAAI,KAAMA,EAAGqxyB,IAAO,GACvE,GAAIrxyB,EAAI,EAEN,IADA5wB,EAAEw2zB,OAAO5lyB,GACFA,KAAM,IACPmyB,EAAEi/wB,SAAWzwoB,EAAEywoB,WACjBj/wB,EAAEu1wB,KAAKuJ,GACPtwoB,EAAEgnoB,KAAKuJ,IAGT/+wB,EAAEyzwB,OAAO,GACTjloB,EAAEiloB,OAAO,GAITj2zB,EAAE63Z,IAAIp4Z,IAAM,GACdO,EAAEg4zB,KAAKv4zB,GACP6iD,EAAE01wB,KAAKx1wB,GACPD,EAAEy1wB,KAAKhnoB,KAEPvxL,EAAEu4zB,KAAKh4zB,GACPwiD,EAAEw1wB,KAAK11wB,GACP0uI,EAAEgnoB,KAAKz1wB,GAEX,CAEA,MAAO,CACL3sD,EAAG4sD,EACHn1B,EAAG2jK,EACH2woB,IAAKli0B,EAAE+/zB,OAAOlwyB,GAElB,EAKAykyB,EAAGh/zB,UAAU6s0B,OAAS,SAAiBp0yB,GACrCutsB,EAAsB,IAAfvtsB,EAAEsQ,UACTi9rB,GAAQvtsB,EAAEkoyB,UAEV,IAAI9/zB,EAAIf,KACJw4B,EAAIG,EAAEsY,QAGRlwC,EADiB,IAAfA,EAAEkoC,SACAloC,EAAEor0B,KAAKxzyB,GAEP53B,EAAEkwC,QAQR,IALA,IAuCImpE,EAvCAyqd,EAAK,IAAIq6P,EAAG,GACZruQ,EAAK,IAAIquQ,EAAG,GAEZp4nB,EAAQtuK,EAAEyY,QAEPlwC,EAAEis0B,KAAK,GAAK,GAAKx0yB,EAAEw0yB,KAAK,GAAK,GAAG,CACrC,IAAK,IAAIhs0B,EAAI,EAAG2r0B,EAAK,EAAyB,KAArB5r0B,EAAEohiB,MAAM,GAAKwqS,IAAa3r0B,EAAI,KAAMA,EAAG2r0B,IAAO,GACvE,GAAI3r0B,EAAI,EAEN,IADAD,EAAEqg0B,OAAOpg0B,GACFA,KAAM,GACP6jkB,EAAG+nQ,SACL/nQ,EAAGq+P,KAAKp8nB,GAGV+9X,EAAGu8P,OAAO,GAId,IAAK,IAAI5lyB,EAAI,EAAGqxyB,EAAK,EAAyB,KAArBr0yB,EAAE2pgB,MAAM,GAAK0qS,IAAarxyB,EAAI,KAAMA,EAAGqxyB,IAAO,GACvE,GAAIrxyB,EAAI,EAEN,IADAhD,EAAE4oyB,OAAO5lyB,GACFA,KAAM,GACPq1hB,EAAG+7Q,SACL/7Q,EAAGqyQ,KAAKp8nB,GAGV+pX,EAAGuwQ,OAAO,GAIVrg0B,EAAEiia,IAAIxqY,IAAM,GACdz3B,EAAEoi0B,KAAK3qyB,GACPqsiB,EAAGs+P,KAAKtyQ,KAERr4hB,EAAE2qyB,KAAKpi0B,GACP8vjB,EAAGsyQ,KAAKt+P,GAEZ,CAaA,OATEzqd,EADgB,IAAdr5G,EAAEis0B,KAAK,GACHnoQ,EAEAhU,GAGAm8Q,KAAK,GAAK,GAChB5ytB,EAAI8otB,KAAKvqyB,GAGJyhF,CACT,EAEA8ktB,EAAGh/zB,UAAU4s0B,IAAM,SAAchryB,GAC/B,GAAI9hC,KAAK6g0B,SAAU,OAAO/+xB,EAAI+G,MAC9B,GAAI/G,EAAI++xB,SAAU,OAAO7g0B,KAAK6oC,MAE9B,IAAI9nC,EAAIf,KAAKixC,QACTzY,EAAIsJ,EAAImP,QACZlwC,EAAEkoC,SAAW,EACbzQ,EAAEyQ,SAAW,EAGb,IAAK,IAAIhN,EAAQ,EAAGl7B,EAAEyr0B,UAAYh0yB,EAAEg0yB,SAAUvwyB,IAC5Cl7B,EAAEqg0B,OAAO,GACT5oyB,EAAE4oyB,OAAO,GAGX,OAAG,CACD,KAAOrg0B,EAAEyr0B,UACPzr0B,EAAEqg0B,OAAO,GAEX,KAAO5oyB,EAAEg0yB,UACPh0yB,EAAE4oyB,OAAO,GAGX,IAAI/g0B,EAAIU,EAAEiia,IAAIxqY,GACd,GAAIn4B,EAAI,EAAG,CAET,IAAII,EAAIM,EACRA,EAAIy3B,EACJA,EAAI/3B,CACN,MAAO,GAAU,IAANJ,GAAyB,IAAdm4B,EAAEw0yB,KAAK,GAC3B,MAGFjs0B,EAAEoi0B,KAAK3qyB,EACT,CAEA,OAAOA,EAAEmyyB,OAAO1uyB,EAClB,EAGAijyB,EAAGh/zB,UAAU+s0B,KAAO,SAAenryB,GACjC,OAAO9hC,KAAKus0B,KAAKzqyB,GAAK/gC,EAAEor0B,KAAKrqyB,EAC/B,EAEAo9xB,EAAGh/zB,UAAUss0B,OAAS,WACpB,OAA+B,KAAP,EAAhBxs0B,KAAKmiiB,MAAM,GACrB,EAEA+8R,EAAGh/zB,UAAU0s0B,MAAQ,WACnB,OAA+B,KAAP,EAAhB5s0B,KAAKmiiB,MAAM,GACrB,EAGA+8R,EAAGh/zB,UAAUih0B,MAAQ,SAAgBr/xB,GACnC,OAAO9hC,KAAKmiiB,MAAM,GAAKrggB,CACzB,EAGAo9xB,EAAGh/zB,UAAUgt0B,MAAQ,SAAgBrb,GACnC3rF,EAAsB,kBAAR2rF,GACd,IAAIxxzB,EAAIwxzB,EAAM,GACV34xB,GAAK24xB,EAAMxxzB,GAAK,GAChBw7B,EAAI,GAAKx7B,EAGb,GAAIL,KAAKY,QAAUs4B,EAGjB,OAFAl5B,KAAKkg0B,QAAQhnyB,EAAI,GACjBl5B,KAAKmiiB,MAAMjpgB,IAAM2C,EACV77B,KAKT,IADA,IAAIupC,EAAQ1N,EACH76B,EAAIk4B,EAAa,IAAVqQ,GAAevoC,EAAIhB,KAAKY,OAAQI,IAAK,CACnD,IAAIusD,EAAoB,EAAhBvtD,KAAKmiiB,MAAMnhiB,GAEnBuoC,GADAgkB,GAAKhkB,KACS,GACdgkB,GAAK,SACLvtD,KAAKmiiB,MAAMnhiB,GAAKusD,CAClB,CAKA,OAJc,IAAVhkB,IACFvpC,KAAKmiiB,MAAMnhiB,GAAKuoC,EAChBvpC,KAAKY,UAEAZ,IACT,EAEAk/zB,EAAGh/zB,UAAU2g0B,OAAS,WACpB,OAAuB,IAAhB7g0B,KAAKY,QAAkC,IAAlBZ,KAAKmiiB,MAAM,EACzC,EAEA+8R,EAAGh/zB,UAAU8s0B,KAAO,SAAelryB,GACjC,IAOIs4E,EAPAnxE,EAAWnH,EAAM,EAErB,GAAsB,IAAlB9hC,KAAKipC,WAAmBA,EAAU,OAAQ,EAC9C,GAAsB,IAAlBjpC,KAAKipC,UAAkBA,EAAU,OAAO,EAK5C,GAHAjpC,KAAKyw0B,SAGDzw0B,KAAKY,OAAS,EAChBw5G,EAAM,MACD,CACDnxE,IACFnH,GAAOA,GAGToksB,EAAOpksB,GAAO,SAAW,qBAEzB,IAAIyrB,EAAoB,EAAhBvtD,KAAKmiiB,MAAM,GACnB/nb,EAAM7sD,IAAMzrB,EAAM,EAAIyrB,EAAIzrB,GAAO,EAAI,CACvC,CACA,OAAsB,IAAlB9hC,KAAKipC,SAA8B,GAANmxE,EAC1BA,CACT,EAMA8ktB,EAAGh/zB,UAAU8ia,IAAM,SAAclhY,GAC/B,GAAsB,IAAlB9hC,KAAKipC,UAAmC,IAAjBnH,EAAImH,SAAgB,OAAQ,EACvD,GAAsB,IAAlBjpC,KAAKipC,UAAmC,IAAjBnH,EAAImH,SAAgB,OAAO,EAEtD,IAAImxE,EAAMp6G,KAAKmt0B,KAAKrryB,GACpB,OAAsB,IAAlB9hC,KAAKipC,SAA8B,GAANmxE,EAC1BA,CACT,EAGA8ktB,EAAGh/zB,UAAUit0B,KAAO,SAAerryB,GAEjC,GAAI9hC,KAAKY,OAASkhC,EAAIlhC,OAAQ,OAAO,EACrC,GAAIZ,KAAKY,OAASkhC,EAAIlhC,OAAQ,OAAQ,EAGtC,IADA,IAAIw5G,EAAM,EACDp5G,EAAIhB,KAAKY,OAAS,EAAGI,GAAK,EAAGA,IAAK,CACzC,IAAID,EAAoB,EAAhBf,KAAKmiiB,MAAMnhiB,GACfw3B,EAAmB,EAAfsJ,EAAIqggB,MAAMnhiB,GAElB,GAAID,IAAMy3B,EAAV,CACIz3B,EAAIy3B,EACN4hF,GAAO,EACEr5G,EAAIy3B,IACb4hF,EAAM,GAER,KANqB,CAOvB,CACA,OAAOA,CACT,EAEA8ktB,EAAGh/zB,UAAUkt0B,IAAM,SAActryB,GAC/B,OAA0B,IAAnB9hC,KAAKgt0B,KAAKlryB,EACnB,EAEAo9xB,EAAGh/zB,UAAUmt0B,GAAK,SAAavryB,GAC7B,OAAyB,IAAlB9hC,KAAKgja,IAAIlhY,EAClB,EAEAo9xB,EAAGh/zB,UAAUot0B,KAAO,SAAexryB,GACjC,OAAO9hC,KAAKgt0B,KAAKlryB,IAAQ,CAC3B,EAEAo9xB,EAAGh/zB,UAAUqt0B,IAAM,SAAczryB,GAC/B,OAAO9hC,KAAKgja,IAAIlhY,IAAQ,CAC1B,EAEAo9xB,EAAGh/zB,UAAUst0B,IAAM,SAAc1ryB,GAC/B,OAA2B,IAApB9hC,KAAKgt0B,KAAKlryB,EACnB,EAEAo9xB,EAAGh/zB,UAAUut0B,GAAK,SAAa3ryB,GAC7B,OAA0B,IAAnB9hC,KAAKgja,IAAIlhY,EAClB,EAEAo9xB,EAAGh/zB,UAAUwt0B,KAAO,SAAe5ryB,GACjC,OAAO9hC,KAAKgt0B,KAAKlryB,IAAQ,CAC3B,EAEAo9xB,EAAGh/zB,UAAUyt0B,IAAM,SAAc7ryB,GAC/B,OAAO9hC,KAAKgja,IAAIlhY,IAAQ,CAC1B,EAEAo9xB,EAAGh/zB,UAAU0t0B,IAAM,SAAc9ryB,GAC/B,OAA0B,IAAnB9hC,KAAKgt0B,KAAKlryB,EACnB,EAEAo9xB,EAAGh/zB,UAAU2t0B,GAAK,SAAa/ryB,GAC7B,OAAyB,IAAlB9hC,KAAKgja,IAAIlhY,EAClB,EAMAo9xB,EAAG/xzB,IAAM,SAAc20B,GACrB,OAAO,IAAIgsyB,EAAIhsyB,EACjB,EAEAo9xB,EAAGh/zB,UAAU6t0B,MAAQ,SAAgBli0B,GAGnC,OAFAq6tB,GAAQlmuB,KAAKmN,IAAK,yCAClB+4tB,EAAyB,IAAlBlmuB,KAAKipC,SAAgB,iCACrBp9B,EAAImi0B,UAAUhu0B,MAAMiu0B,UAAUpi0B,EACvC,EAEAqzzB,EAAGh/zB,UAAUgu0B,QAAU,WAErB,OADAhoG,EAAOlmuB,KAAKmN,IAAK,wDACVnN,KAAKmN,IAAIgh0B,YAAYnu0B,KAC9B,EAEAk/zB,EAAGh/zB,UAAU+t0B,UAAY,SAAoBpi0B,GAE3C,OADA7L,KAAKmN,IAAMtB,EACJ7L,IACT,EAEAk/zB,EAAGh/zB,UAAUku0B,SAAW,SAAmBvi0B,GAEzC,OADAq6tB,GAAQlmuB,KAAKmN,IAAK,yCACXnN,KAAKiu0B,UAAUpi0B,EACxB,EAEAqzzB,EAAGh/zB,UAAUmu0B,OAAS,SAAiBvsyB,GAErC,OADAoksB,EAAOlmuB,KAAKmN,IAAK,sCACVnN,KAAKmN,IAAIo5B,IAAIvmC,KAAM8hC,EAC5B,EAEAo9xB,EAAGh/zB,UAAUou0B,QAAU,SAAkBxsyB,GAEvC,OADAoksB,EAAOlmuB,KAAKmN,IAAK,uCACVnN,KAAKmN,IAAI+1zB,KAAKlj0B,KAAM8hC,EAC7B,EAEAo9xB,EAAGh/zB,UAAUqu0B,OAAS,SAAiBzsyB,GAErC,OADAoksB,EAAOlmuB,KAAKmN,IAAK,sCACVnN,KAAKmN,IAAIwxG,IAAI3+G,KAAM8hC,EAC5B,EAEAo9xB,EAAGh/zB,UAAUsu0B,QAAU,SAAkB1syB,GAEvC,OADAoksB,EAAOlmuB,KAAKmN,IAAK,uCACVnN,KAAKmN,IAAIg2zB,KAAKnj0B,KAAM8hC,EAC7B,EAEAo9xB,EAAGh/zB,UAAUuu0B,OAAS,SAAiB3syB,GAErC,OADAoksB,EAAOlmuB,KAAKmN,IAAK,sCACVnN,KAAKmN,IAAIuh0B,IAAI1u0B,KAAM8hC,EAC5B,EAEAo9xB,EAAGh/zB,UAAUyu0B,OAAS,SAAiB7syB,GAGrC,OAFAoksB,EAAOlmuB,KAAKmN,IAAK,sCACjBnN,KAAKmN,IAAIyh0B,SAAS5u0B,KAAM8hC,GACjB9hC,KAAKmN,IAAI8vG,IAAIj9G,KAAM8hC,EAC5B,EAEAo9xB,EAAGh/zB,UAAU2u0B,QAAU,SAAkB/syB,GAGvC,OAFAoksB,EAAOlmuB,KAAKmN,IAAK,sCACjBnN,KAAKmN,IAAIyh0B,SAAS5u0B,KAAM8hC,GACjB9hC,KAAKmN,IAAI85zB,KAAKjn0B,KAAM8hC,EAC7B,EAEAo9xB,EAAGh/zB,UAAU4u0B,OAAS,WAGpB,OAFA5oG,EAAOlmuB,KAAKmN,IAAK,sCACjBnN,KAAKmN,IAAI4h0B,SAAS/u0B,MACXA,KAAKmN,IAAIq9zB,IAAIxq0B,KACtB,EAEAk/zB,EAAGh/zB,UAAU8u0B,QAAU,WAGrB,OAFA9oG,EAAOlmuB,KAAKmN,IAAK,uCACjBnN,KAAKmN,IAAI4h0B,SAAS/u0B,MACXA,KAAKmN,IAAIs9zB,KAAKzq0B,KACvB,EAGAk/zB,EAAGh/zB,UAAU+u0B,QAAU,WAGrB,OAFA/oG,EAAOlmuB,KAAKmN,IAAK,uCACjBnN,KAAKmN,IAAI4h0B,SAAS/u0B,MACXA,KAAKmN,IAAI08H,KAAK7pI,KACvB,EAEAk/zB,EAAGh/zB,UAAUgv0B,QAAU,WAGrB,OAFAhpG,EAAOlmuB,KAAKmN,IAAK,uCACjBnN,KAAKmN,IAAI4h0B,SAAS/u0B,MACXA,KAAKmN,IAAI8/zB,KAAKjt0B,KACvB,EAGAk/zB,EAAGh/zB,UAAUiv0B,OAAS,WAGpB,OAFAjpG,EAAOlmuB,KAAKmN,IAAK,sCACjBnN,KAAKmN,IAAI4h0B,SAAS/u0B,MACXA,KAAKmN,IAAI80zB,IAAIji0B,KACtB,EAEAk/zB,EAAGh/zB,UAAUkv0B,OAAS,SAAiBttyB,GAGrC,OAFAoksB,EAAOlmuB,KAAKmN,MAAQ20B,EAAI30B,IAAK,qBAC7BnN,KAAKmN,IAAI4h0B,SAAS/u0B,MACXA,KAAKmN,IAAI41C,IAAI/iD,KAAM8hC,EAC5B,EAGA,IAAIutyB,EAAS,CACXC,KAAM,KACNC,KAAM,KACNC,KAAM,KACNC,OAAQ,MAIV,SAASC,EAAQtv0B,EAAMu4B,GAErB34B,KAAKI,KAAOA,EACZJ,KAAK24B,EAAI,IAAIumyB,EAAGvmyB,EAAG,IACnB34B,KAAKa,EAAIb,KAAK24B,EAAE+kL,YAChB19M,KAAKi7B,EAAI,IAAIikyB,EAAG,GAAGyL,OAAO3q0B,KAAKa,GAAGsi0B,KAAKnj0B,KAAK24B,GAE5C34B,KAAK86uB,IAAM96uB,KAAK2v0B,MAClB,CAgDA,SAASC,IACPF,EAAO5pzB,KACL9lB,KACA,OACA,0EACJ,CA8DA,SAAS6v0B,IACPH,EAAO5pzB,KACL9lB,KACA,OACA,iEACJ,CAGA,SAAS8v0B,IACPJ,EAAO5pzB,KACL9lB,KACA,OACA,wDACJ,CAGA,SAAS+v0B,IAEPL,EAAO5pzB,KACL9lB,KACA,QACA,sEACJ,CA6CA,SAAS8t0B,EAAK9yyB,GACZ,GAAiB,kBAANA,EAAgB,CACzB,IAAIg1yB,EAAQ9Q,EAAG+Q,OAAOj1yB,GACtBh7B,KAAKg7B,EAAIg1yB,EAAMr3yB,EACf34B,KAAKgw0B,MAAQA,CACf,MACE9pG,EAAOlrsB,EAAEoyyB,IAAI,GAAI,kCACjBpt0B,KAAKg7B,EAAIA,EACTh7B,KAAKgw0B,MAAQ,IAEjB,CAkOA,SAASE,EAAMl1yB,GACb8yyB,EAAIhozB,KAAK9lB,KAAMg7B,GAEfh7B,KAAKi8B,MAAQj8B,KAAKg7B,EAAE0iL,YAChB19M,KAAKi8B,MAAQ,KAAO,IACtBj8B,KAAKi8B,OAAS,GAAMj8B,KAAKi8B,MAAQ,IAGnCj8B,KAAKK,EAAI,IAAI6+zB,EAAG,GAAGyL,OAAO3q0B,KAAKi8B,OAC/Bj8B,KAAKss0B,GAAKts0B,KAAKmw0B,KAAKnw0B,KAAKK,EAAEmq0B,OAC3Bxq0B,KAAKow0B,KAAOpw0B,KAAKK,EAAE0s0B,OAAO/s0B,KAAKg7B,GAE/Bh7B,KAAKqw0B,KAAOrw0B,KAAKow0B,KAAKnztB,IAAIj9G,KAAKK,GAAGmr0B,MAAM,GAAGti0B,IAAIlJ,KAAKg7B,GACpDh7B,KAAKqw0B,KAAOrw0B,KAAKqw0B,KAAKlE,KAAKns0B,KAAKK,GAChCL,KAAKqw0B,KAAOrw0B,KAAKK,EAAEs+G,IAAI3+G,KAAKqw0B,KAC9B,CA/aAX,EAAOxv0B,UAAUyv0B,KAAO,WACtB,IAAI70F,EAAM,IAAIokF,EAAG,MAEjB,OADApkF,EAAI34M,MAAQ,IAAI7/gB,MAAMsmB,KAAK8wI,KAAK15K,KAAKa,EAAI,KAClCi6uB,CACT,EAEA40F,EAAOxv0B,UAAUow0B,QAAU,SAAkBxuyB,GAG3C,IACIyuyB,EADAlw0B,EAAIyhC,EAGR,GACE9hC,KAAK4B,MAAMvB,EAAGL,KAAK86uB,KAGnBy1F,GADAlw0B,GADAA,EAAIL,KAAKww0B,MAAMnw0B,IACT6i0B,KAAKlj0B,KAAK86uB,MACPp9hB,kBACF6ynB,EAAOvw0B,KAAKa,GAErB,IAAImia,EAAMuta,EAAOvw0B,KAAKa,GAAK,EAAIR,EAAE8s0B,KAAKnt0B,KAAK24B,GAgB3C,OAfY,IAARqqY,GACF3ia,EAAE8hiB,MAAM,GAAK,EACb9hiB,EAAEO,OAAS,GACFoia,EAAM,EACf3ia,EAAE8i0B,KAAKnj0B,KAAK24B,QAEItwB,IAAZhI,EAAEs6hB,MAEJt6hB,EAAEs6hB,QAGFt6hB,EAAEow0B,SAICpw0B,CACT,EAEAqv0B,EAAOxv0B,UAAU0B,MAAQ,SAAgBs+B,EAAOoJ,GAC9CpJ,EAAMkhyB,OAAOph0B,KAAKa,EAAG,EAAGyoC,EAC1B,EAEAomyB,EAAOxv0B,UAAUsw0B,MAAQ,SAAgB1uyB,GACvC,OAAOA,EAAImlyB,KAAKjn0B,KAAKi7B,EACvB,EAQAg6sB,EAAS26F,EAAMF,GAEfE,EAAK1v0B,UAAU0B,MAAQ,SAAgBs+B,EAAOwE,GAK5C,IAHA,IAAImhmB,EAAO,QAEP6qM,EAAS9nyB,KAAKuZ,IAAIjiB,EAAMt/B,OAAQ,GAC3BI,EAAI,EAAGA,EAAI0v0B,EAAQ1v0B,IAC1B0jC,EAAOy9f,MAAMnhiB,GAAKk/B,EAAMiigB,MAAMnhiB,GAIhC,GAFA0jC,EAAO9jC,OAAS8v0B,EAEZxwyB,EAAMt/B,QAAU,EAGlB,OAFAs/B,EAAMiigB,MAAM,GAAK,OACjBjigB,EAAMt/B,OAAS,GAKjB,IAAI0mH,EAAOpnF,EAAMiigB,MAAM,GAGvB,IAFAz9f,EAAOy9f,MAAMz9f,EAAO9jC,UAAY0mH,EAAOu+gB,EAElC7koB,EAAI,GAAIA,EAAIk/B,EAAMt/B,OAAQI,IAAK,CAClC,IAAI+kB,EAAwB,EAAjBma,EAAMiigB,MAAMnhiB,GACvBk/B,EAAMiigB,MAAMnhiB,EAAI,KAAQ+kB,EAAO8/mB,IAAS,EAAMv+gB,IAAS,GACvDA,EAAOvhG,CACT,CACAuhG,KAAU,GACVpnF,EAAMiigB,MAAMnhiB,EAAI,IAAMsmH,EACT,IAATA,GAAcpnF,EAAMt/B,OAAS,GAC/Bs/B,EAAMt/B,QAAU,GAEhBs/B,EAAMt/B,QAAU,CAEpB,EAEAgv0B,EAAK1v0B,UAAUsw0B,MAAQ,SAAgB1uyB,GAErCA,EAAIqggB,MAAMrggB,EAAIlhC,QAAU,EACxBkhC,EAAIqggB,MAAMrggB,EAAIlhC,OAAS,GAAK,EAC5BkhC,EAAIlhC,QAAU,EAId,IADA,IAAIq5G,EAAK,EACAj5G,EAAI,EAAGA,EAAI8gC,EAAIlhC,OAAQI,IAAK,CACnC,IAAIusD,EAAmB,EAAfzrB,EAAIqggB,MAAMnhiB,GAClBi5G,GAAU,IAAJ1sD,EACNzrB,EAAIqggB,MAAMnhiB,GAAU,SAALi5G,EACfA,EAAS,GAAJ1sD,GAAa0sD,EAAK,SAAa,EACtC,CASA,OANkC,IAA9Bn4E,EAAIqggB,MAAMrggB,EAAIlhC,OAAS,KACzBkhC,EAAIlhC,SAC8B,IAA9BkhC,EAAIqggB,MAAMrggB,EAAIlhC,OAAS,IACzBkhC,EAAIlhC,UAGDkhC,CACT,EAQAmzsB,EAAS46F,EAAMH,GAQfz6F,EAAS66F,EAAMJ,GASfz6F,EAAS86F,EAAQL,GAEjBK,EAAO7v0B,UAAUsw0B,MAAQ,SAAgB1uyB,GAGvC,IADA,IAAIyH,EAAQ,EACHvoC,EAAI,EAAGA,EAAI8gC,EAAIlhC,OAAQI,IAAK,CACnC,IAAIg5G,EAA0B,IAAL,EAAfl4E,EAAIqggB,MAAMnhiB,IAAiBuoC,EACjC0wE,EAAU,SAALD,EACTA,KAAQ,GAERl4E,EAAIqggB,MAAMnhiB,GAAKi5G,EACf1wE,EAAQywE,CACV,CAIA,OAHc,IAAVzwE,IACFzH,EAAIqggB,MAAMrggB,EAAIlhC,UAAY2oC,GAErBzH,CACT,EAGAo9xB,EAAG+Q,OAAS,SAAgB7v0B,GAE1B,GAAIiv0B,EAAOjv0B,GAAO,OAAOiv0B,EAAOjv0B,GAEhC,IAAI4v0B,EACJ,GAAa,SAAT5v0B,EACF4v0B,EAAQ,IAAIJ,OACP,GAAa,SAATxv0B,EACT4v0B,EAAQ,IAAIH,OACP,GAAa,SAATzv0B,EACT4v0B,EAAQ,IAAIF,MACP,IAAa,WAAT1v0B,EAGT,MAAM,IAAID,MAAM,iBAAmBC,GAFnC4v0B,EAAQ,IAAID,CAGd,CAGA,OAFAV,EAAOjv0B,GAAQ4v0B,EAERA,CACT,EAiBAlC,EAAI5t0B,UAAU6u0B,SAAW,SAAmBhu0B,GAC1CmluB,EAAsB,IAAfnluB,EAAEkoC,SAAgB,iCACzBi9rB,EAAOnluB,EAAEoM,IAAK,kCAChB,EAEA2g0B,EAAI5t0B,UAAU0u0B,SAAW,SAAmB7t0B,EAAGy3B,GAC7C0tsB,EAAqC,KAA7BnluB,EAAEkoC,SAAWzQ,EAAEyQ,UAAiB,iCACxCi9rB,EAAOnluB,EAAEoM,KAAOpM,EAAEoM,MAAQqrB,EAAErrB,IAC1B,kCACJ,EAEA2g0B,EAAI5t0B,UAAUiw0B,KAAO,SAAepv0B,GAClC,OAAIf,KAAKgw0B,MAAchw0B,KAAKgw0B,MAAMM,QAAQvv0B,GAAGkt0B,UAAUju0B,OAEvDi/X,EAAKl+X,EAAGA,EAAEor0B,KAAKns0B,KAAKg7B,GAAGizyB,UAAUju0B,OAC1Be,EACT,EAEA+s0B,EAAI5t0B,UAAU+h0B,IAAM,SAAclh0B,GAChC,OAAIA,EAAE8/zB,SACG9/zB,EAAEkwC,QAGJjxC,KAAKg7B,EAAE2jF,IAAI59G,GAAGkt0B,UAAUju0B,KACjC,EAEA8t0B,EAAI5t0B,UAAUqmC,IAAM,SAAcxlC,EAAGy3B,GACnCx4B,KAAK4u0B,SAAS7t0B,EAAGy3B,GAEjB,IAAI4hF,EAAMr5G,EAAEwlC,IAAI/N,GAIhB,OAHI4hF,EAAI4oT,IAAIhja,KAAKg7B,IAAM,GACrBo/E,EAAI+otB,KAAKnj0B,KAAKg7B,GAETo/E,EAAI6ztB,UAAUju0B,KACvB,EAEA8t0B,EAAI5t0B,UAAUgj0B,KAAO,SAAeni0B,EAAGy3B,GACrCx4B,KAAK4u0B,SAAS7t0B,EAAGy3B,GAEjB,IAAI4hF,EAAMr5G,EAAEmi0B,KAAK1qyB,GAIjB,OAHI4hF,EAAI4oT,IAAIhja,KAAKg7B,IAAM,GACrBo/E,EAAI+otB,KAAKnj0B,KAAKg7B,GAETo/E,CACT,EAEA0ztB,EAAI5t0B,UAAUy+G,IAAM,SAAc59G,EAAGy3B,GACnCx4B,KAAK4u0B,SAAS7t0B,EAAGy3B,GAEjB,IAAI4hF,EAAMr5G,EAAE49G,IAAInmF,GAIhB,OAHI4hF,EAAI4ytB,KAAK,GAAK,GAChB5ytB,EAAI8otB,KAAKlj0B,KAAKg7B,GAETo/E,EAAI6ztB,UAAUju0B,KACvB,EAEA8t0B,EAAI5t0B,UAAUij0B,KAAO,SAAepi0B,EAAGy3B,GACrCx4B,KAAK4u0B,SAAS7t0B,EAAGy3B,GAEjB,IAAI4hF,EAAMr5G,EAAEoi0B,KAAK3qyB,GAIjB,OAHI4hF,EAAI4ytB,KAAK,GAAK,GAChB5ytB,EAAI8otB,KAAKlj0B,KAAKg7B,GAETo/E,CACT,EAEA0ztB,EAAI5t0B,UAAUwu0B,IAAM,SAAc3t0B,EAAG+gC,GAEnC,OADA9hC,KAAK+u0B,SAAShu0B,GACPf,KAAKmw0B,KAAKpv0B,EAAEoq0B,MAAMrpyB,GAC3B,EAEAgsyB,EAAI5t0B,UAAU+m0B,KAAO,SAAelm0B,EAAGy3B,GAErC,OADAx4B,KAAK4u0B,SAAS7t0B,EAAGy3B,GACVx4B,KAAKmw0B,KAAKpv0B,EAAEkm0B,KAAKzuyB,GAC1B,EAEAs1yB,EAAI5t0B,UAAU+8G,IAAM,SAAcl8G,EAAGy3B,GAEnC,OADAx4B,KAAK4u0B,SAAS7t0B,EAAGy3B,GACVx4B,KAAKmw0B,KAAKpv0B,EAAEk8G,IAAIzkF,GACzB,EAEAs1yB,EAAI5t0B,UAAUuq0B,KAAO,SAAe1p0B,GAClC,OAAOf,KAAKin0B,KAAKlm0B,EAAGA,EAAEkwC,QACxB,EAEA68xB,EAAI5t0B,UAAUsq0B,IAAM,SAAczp0B,GAChC,OAAOf,KAAKi9G,IAAIl8G,EAAGA,EACrB,EAEA+s0B,EAAI5t0B,UAAU2pI,KAAO,SAAe9oI,GAClC,GAAIA,EAAE8/zB,SAAU,OAAO9/zB,EAAEkwC,QAEzB,IAAI0/xB,EAAO3w0B,KAAKg7B,EAAEmmyB,MAAM,GAIxB,GAHAj7F,EAAOyqG,EAAO,IAAM,GAGP,IAATA,EAAY,CACd,IAAI5txB,EAAM/iD,KAAKg7B,EAAEuL,IAAI,IAAI24xB,EAAG,IAAIkC,OAAO,GACvC,OAAOph0B,KAAK+iD,IAAIhiD,EAAGgiD,EACrB,CAOA,IAFA,IAAIlnB,EAAI77B,KAAKg7B,EAAE0wyB,KAAK,GAChBxyyB,EAAI,GACA2C,EAAEglyB,UAA2B,IAAfhlyB,EAAEslyB,MAAM,IAC5BjoyB,IACA2C,EAAEulyB,OAAO,GAEXl7F,GAAQrqsB,EAAEglyB,UAEV,IAAI+P,EAAM,IAAI1R,EAAG,GAAG6O,MAAM/t0B,MACtB6w0B,EAAOD,EAAIzB,SAIX2B,EAAO9w0B,KAAKg7B,EAAE0wyB,KAAK,GAAGtK,OAAO,GAC7B5zwB,EAAIxtD,KAAKg7B,EAAE0iL,YAGf,IAFAlwJ,EAAI,IAAI0xwB,EAAG,EAAI1xwB,EAAIA,GAAGugxB,MAAM/t0B,MAEW,IAAhCA,KAAK+iD,IAAIyK,EAAGsjxB,GAAM9ta,IAAI6ta,IAC3BrjxB,EAAE8gxB,QAAQuC,GAOZ,IAJA,IAAI5v0B,EAAIjB,KAAK+iD,IAAIyK,EAAG3xB,GAChBx7B,EAAIL,KAAK+iD,IAAIhiD,EAAG86B,EAAE4vyB,KAAK,GAAGrK,OAAO,IACjC3g0B,EAAIT,KAAK+iD,IAAIhiD,EAAG86B,GAChBb,EAAI9B,EACc,IAAfz4B,EAAEuia,IAAI4ta,IAAY,CAEvB,IADA,IAAI91F,EAAMr6uB,EACDO,EAAI,EAAoB,IAAjB85uB,EAAI93U,IAAI4ta,GAAY5v0B,IAClC85uB,EAAMA,EAAIg0F,SAEZ5oG,EAAOlluB,EAAIg6B,GACX,IAAIxC,EAAIx4B,KAAK+iD,IAAI9hD,EAAG,IAAIi+zB,EAAG,GAAGyL,OAAO3vyB,EAAIh6B,EAAI,IAE7CX,EAAIA,EAAEsu0B,OAAOn2yB,GACbv3B,EAAIu3B,EAAEs2yB,SACNru0B,EAAIA,EAAEku0B,OAAO1t0B,GACb+5B,EAAIh6B,CACN,CAEA,OAAOX,CACT,EAEAyt0B,EAAI5t0B,UAAU+s0B,KAAO,SAAels0B,GAClC,IAAIgw0B,EAAMhw0B,EAAEgs0B,OAAO/s0B,KAAKg7B,GACxB,OAAqB,IAAjB+1yB,EAAI9nyB,UACN8nyB,EAAI9nyB,SAAW,EACRjpC,KAAKmw0B,KAAKY,GAAK5B,UAEfnv0B,KAAKmw0B,KAAKY,EAErB,EAEAjD,EAAI5t0B,UAAU6iD,IAAM,SAAchiD,EAAG+gC,GACnC,GAAIA,EAAI++xB,SAAU,OAAO,IAAI3B,EAAG,GAAG6O,MAAM/t0B,MACzC,GAAoB,IAAhB8hC,EAAIkryB,KAAK,GAAU,OAAOjs0B,EAAEkwC,QAEhC,IACI+/xB,EAAM,IAAI1uzB,MAAM,IACpB0uzB,EAAI,GAAK,IAAI9R,EAAG,GAAG6O,MAAM/t0B,MACzBgx0B,EAAI,GAAKjw0B,EACT,IAAK,IAAIC,EAAI,EAAGA,EAAIgw0B,EAAIpw0B,OAAQI,IAC9Bgw0B,EAAIhw0B,GAAKhB,KAAKi9G,IAAI+ztB,EAAIhw0B,EAAI,GAAID,GAGhC,IAAIq5G,EAAM42tB,EAAI,GACV15zB,EAAU,EACV25zB,EAAa,EACbph0B,EAAQiyB,EAAI47K,YAAc,GAK9B,IAJc,IAAV7tM,IACFA,EAAQ,IAGL7O,EAAI8gC,EAAIlhC,OAAS,EAAGI,GAAK,EAAGA,IAAK,CAEpC,IADA,IAAIuwO,EAAOzvM,EAAIqggB,MAAMnhiB,GACZw6B,EAAI3rB,EAAQ,EAAG2rB,GAAK,EAAGA,IAAK,CACnC,IAAIq2xB,EAAOtglB,GAAQ/1M,EAAK,EACpB4+E,IAAQ42tB,EAAI,KACd52tB,EAAMp6G,KAAKwq0B,IAAIpwtB,IAGL,IAARy3sB,GAAyB,IAAZv6yB,GAKjBA,IAAY,EACZA,GAAWu6yB,GA9BE,MA+Bbof,GACwC,IAANjw0B,GAAiB,IAANw6B,KAE7C4+E,EAAMp6G,KAAKi9G,IAAI7C,EAAK42tB,EAAI15zB,IACxB25zB,EAAa,EACb35zB,EAAU,IAXR25zB,EAAa,CAYjB,CACAph0B,EAAQ,EACV,CAEA,OAAOuqG,CACT,EAEA0ztB,EAAI5t0B,UAAU8t0B,UAAY,SAAoBlsyB,GAC5C,IAAIzhC,EAAIyhC,EAAIqqyB,KAAKns0B,KAAKg7B,GAEtB,OAAO36B,IAAMyhC,EAAMzhC,EAAE4wC,QAAU5wC,CACjC,EAEAyt0B,EAAI5t0B,UAAUiu0B,YAAc,SAAsBrsyB,GAChD,IAAIs4E,EAAMt4E,EAAImP,QAEd,OADAmpE,EAAIjtG,IAAM,KACHitG,CACT,EAMA8ktB,EAAGgS,KAAO,SAAepvyB,GACvB,OAAO,IAAIouyB,EAAKpuyB,EAClB,EAkBAmzsB,EAASi7F,EAAMpC,GAEfoC,EAAKhw0B,UAAU8t0B,UAAY,SAAoBlsyB,GAC7C,OAAO9hC,KAAKmw0B,KAAKruyB,EAAIqpyB,MAAMnr0B,KAAKi8B,OAClC,EAEAi0yB,EAAKhw0B,UAAUiu0B,YAAc,SAAsBrsyB,GACjD,IAAIzhC,EAAIL,KAAKmw0B,KAAKruyB,EAAIm7E,IAAIj9G,KAAKow0B,OAE/B,OADA/v0B,EAAE8M,IAAM,KACD9M,CACT,EAEA6v0B,EAAKhw0B,UAAU+m0B,KAAO,SAAelm0B,EAAGy3B,GACtC,GAAIz3B,EAAE8/zB,UAAYroyB,EAAEqoyB,SAGlB,OAFA9/zB,EAAEohiB,MAAM,GAAK,EACbphiB,EAAEH,OAAS,EACJG,EAGT,IAAIN,EAAIM,EAAEkm0B,KAAKzuyB,GACXv3B,EAAIR,EAAE8q0B,MAAMvr0B,KAAKi8B,OAAOghF,IAAIj9G,KAAKqw0B,MAAM/E,OAAOtr0B,KAAKi8B,OAAOghF,IAAIj9G,KAAKg7B,GACnEsyB,EAAI7sD,EAAE0i0B,KAAKli0B,GAAGmg0B,OAAOph0B,KAAKi8B,OAC1Bm+E,EAAM9sD,EAQV,OANIA,EAAE01W,IAAIhja,KAAKg7B,IAAM,EACnBo/E,EAAM9sD,EAAE61wB,KAAKnj0B,KAAKg7B,GACTsyB,EAAE0/wB,KAAK,GAAK,IACrB5ytB,EAAM9sD,EAAE41wB,KAAKlj0B,KAAKg7B,IAGbo/E,EAAI6ztB,UAAUju0B,KACvB,EAEAkw0B,EAAKhw0B,UAAU+8G,IAAM,SAAcl8G,EAAGy3B,GACpC,GAAIz3B,EAAE8/zB,UAAYroyB,EAAEqoyB,SAAU,OAAO,IAAI3B,EAAG,GAAG+O,UAAUju0B,MAEzD,IAAIS,EAAIM,EAAEk8G,IAAIzkF,GACVv3B,EAAIR,EAAE8q0B,MAAMvr0B,KAAKi8B,OAAOghF,IAAIj9G,KAAKqw0B,MAAM/E,OAAOtr0B,KAAKi8B,OAAOghF,IAAIj9G,KAAKg7B,GACnEsyB,EAAI7sD,EAAE0i0B,KAAKli0B,GAAGmg0B,OAAOph0B,KAAKi8B,OAC1Bm+E,EAAM9sD,EAOV,OANIA,EAAE01W,IAAIhja,KAAKg7B,IAAM,EACnBo/E,EAAM9sD,EAAE61wB,KAAKnj0B,KAAKg7B,GACTsyB,EAAE0/wB,KAAK,GAAK,IACrB5ytB,EAAM9sD,EAAE41wB,KAAKlj0B,KAAKg7B,IAGbo/E,EAAI6ztB,UAAUju0B,KACvB,EAEAkw0B,EAAKhw0B,UAAU+s0B,KAAO,SAAels0B,GAGnC,OADUf,KAAKmw0B,KAAKpv0B,EAAEgs0B,OAAO/s0B,KAAKg7B,GAAGiiF,IAAIj9G,KAAKss0B,KACnC2B,UAAUju0B,KACvB,CACD,CA19GD,YA09G4CA,sCCt9G5C,IAAIoizB,EAAQ,CAAC,EAEb,SAASyiC,EAAgB59zB,EAAMhnB,EAASm1uB,GACjCA,IACHA,EAAOj1uB,OAWT,IAAI2k1B,EAEJ,SAAUC,GAnBZ,IAAwBC,EAAUC,EAsB9B,SAASH,EAAUppoB,EAAMC,EAAMupoB,GAC7B,OAAOH,EAAMj/zB,KAAK9lB,KAdtB,SAAoB07M,EAAMC,EAAMupoB,GAC9B,MAAuB,kBAAZjl1B,EACFA,EAEAA,EAAQy7M,EAAMC,EAAMupoB,EAE/B,CAQ4Bh5yB,CAAWwvK,EAAMC,EAAMupoB,KAAUll1B,IAC3D,CAEA,OA1B8Bil1B,EAoBJF,GApBNC,EAoBLF,GApBsC5k1B,UAAY6f,OAAOgZ,OAAOkszB,EAAW/k1B,WAAY8k1B,EAAS9k1B,UAAUmmB,YAAc2+zB,EAAUA,EAAStszB,UAAYuszB,EA0B/JH,CACT,CARA,CAQE1vG,GAEF0vG,EAAU5k1B,UAAUE,KAAOg1uB,EAAKh1uB,KAChC0k1B,EAAU5k1B,UAAU+mB,KAAOA,EAC3Bm7xB,EAAMn7xB,GAAQ69zB,CAChB,CAGA,SAASK,EAAMhwoB,EAAU+nnB,GACvB,GAAI56yB,MAAMC,QAAQ4yL,GAAW,CAC3B,IAAI5uL,EAAM4uL,EAASv0M,OAKnB,OAJAu0M,EAAWA,EAASjlM,KAAI,SAAUlP,GAChC,OAAON,OAAOM,EAChB,IAEIulB,EAAM,EACD,UAAU7D,OAAOw6yB,EAAO,KAAKx6yB,OAAOyyL,EAAS/uL,MAAM,EAAGG,EAAM,GAAGS,KAAK,MAAO,SAAWmuL,EAAS5uL,EAAM,GAC3F,IAARA,EACF,UAAU7D,OAAOw6yB,EAAO,KAAKx6yB,OAAOyyL,EAAS,GAAI,QAAQzyL,OAAOyyL,EAAS,IAEzE,MAAMzyL,OAAOw6yB,EAAO,KAAKx6yB,OAAOyyL,EAAS,GAEpD,CACE,MAAO,MAAMzyL,OAAOw6yB,EAAO,KAAKx6yB,OAAOhiB,OAAOy0M,GAElD,CA6BA0voB,EAAgB,yBAAyB,SAAUzk1B,EAAM4G,GACvD,MAAO,cAAgBA,EAAQ,4BAA8B5G,EAAO,GACtE,GAAG8jB,WACH2g0B,EAAgB,wBAAwB,SAAUzk1B,EAAM+0M,EAAUl+F,GAEhE,IAAImuuB,EA/BmB7vzB,EAAQkmF,EAwC3BluE,EAEJ,GATwB,kBAAb4nK,IAjCY5/K,EAiCkC,OAAV4/K,EAhCpCtvM,QAAQ41G,GAAOA,EAAM,EAAI,GAAKA,EAAKlmF,EAAO30B,UAAY20B,IAiC/D6vzB,EAAa,cACbjwoB,EAAWA,EAASx0M,QAAQ,QAAS,KAErCyk1B,EAAa,UAhCjB,SAAkBz9yB,EAAKpS,EAAQ8vzB,GAK7B,YAJiBh90B,IAAbg90B,GAA0BA,EAAW19yB,EAAI/mC,UAC3Cyk1B,EAAW19yB,EAAI/mC,QAGV+mC,EAAI+S,UAAU2qyB,EAAW9vzB,EAAO30B,OAAQyk1B,KAAc9vzB,CAC/D,CA+BMof,CAASv0C,EAAM,aAEjBmtC,EAAM,OAAO7qB,OAAOtiB,EAAM,KAAKsiB,OAAO0i0B,EAAY,KAAK1i0B,OAAOyi0B,EAAMhwoB,EAAU,aACzE,CACL,IAAIlxM,EAhCR,SAAkB0jC,EAAKpS,EAAQ1lB,GAK7B,MAJqB,kBAAVA,IACTA,EAAQ,KAGNA,EAAQ0lB,EAAO30B,OAAS+mC,EAAI/mC,UAGS,IAAhC+mC,EAAIvmC,QAAQm0B,EAAQ1lB,EAE/B,CAsBe2kB,CAASp0B,EAAM,KAAO,WAAa,WAC9CmtC,EAAM,QAAS7qB,OAAOtiB,EAAM,MAAOsiB,OAAOze,EAAM,KAAKye,OAAO0i0B,EAAY,KAAK1i0B,OAAOyi0B,EAAMhwoB,EAAU,QACtG,CAGA,OADA5nK,GAAO,mBAAmB7qB,cAAcu0F,EAE1C,GAAG/yF,WACH2g0B,EAAgB,4BAA6B,2BAC7CA,EAAgB,8BAA8B,SAAUzk1B,GACtD,MAAO,OAASA,EAAO,4BACzB,IACAyk1B,EAAgB,6BAA8B,mBAC9CA,EAAgB,wBAAwB,SAAUzk1B,GAChD,MAAO,eAAiBA,EAAO,+BACjC,IACAyk1B,EAAgB,wBAAyB,kCACzCA,EAAgB,yBAA0B,6BAC1CA,EAAgB,6BAA8B,mBAC9CA,EAAgB,yBAA0B,sCAAuC3g0B,WACjF2g0B,EAAgB,wBAAwB,SAAU9oyB,GAChD,MAAO,qBAAuBA,CAChC,GAAG73B,WACH2g0B,EAAgB,qCAAsC,oCACtD5/nB,EAAOrtL,QAAQ,EAAQwqxB,oDCjGnBkjC,EAAavl0B,OAAOwE,MAAQ,SAAUc,GACxC,IAAId,EAAO,GACX,IAAK,IAAIU,KAAOI,EAAKd,EAAK3C,KAAKqD,GAC/B,OAAOV,CACT,EAGA0gM,EAAOrtL,QAAU2tzB,EACjB,IAAIvvuB,EAAWh/E,EAAQ,OACnBwrzB,EAAWxrzB,EAAQ,OACvBA,EAAQ,MAARA,CAAoBuuzB,EAAQvvuB,GAI1B,IADA,IAAIzxF,EAAO+g0B,EAAW9C,EAASti1B,WACtBsgB,EAAI,EAAGA,EAAI+D,EAAK3jB,OAAQ4f,IAAK,CACpC,IAAIvZ,EAASsd,EAAK/D,GACb+k0B,EAAOrl1B,UAAU+G,KAASs+0B,EAAOrl1B,UAAU+G,GAAUu70B,EAASti1B,UAAU+G,GAC/E,CAEF,SAASs+0B,EAAOj70B,GACd,KAAMtK,gBAAgBul1B,GAAS,OAAO,IAAIA,EAAOj70B,GACjD0rG,EAASlwF,KAAK9lB,KAAMsK,GACpBk40B,EAAS18zB,KAAK9lB,KAAMsK,GACpBtK,KAAKwl1B,eAAgB,EACjBl70B,KACuB,IAArBA,EAAQ2myB,WAAoBjxyB,KAAKixyB,UAAW,IACvB,IAArB3myB,EAAQ2V,WAAoBjgB,KAAKigB,UAAW,IAClB,IAA1B3V,EAAQk70B,gBACVxl1B,KAAKwl1B,eAAgB,EACrBxl1B,KAAKouzB,KAAK,MAAOq3B,IAGvB,CA8BA,SAASA,IAEHzl1B,KAAK0l1B,eAAe1sV,OAIxBj6d,EAAQiywB,SAAS20C,EAAS3l1B,KAC5B,CACA,SAAS2l1B,EAAQ9huB,GACfA,EAAK/zG,KACP,CAvCAiQ,OAAOC,eAAeul0B,EAAOrl1B,UAAW,wBAAyB,CAI/DigB,YAAY,EACZL,IAAK,WACH,OAAO9f,KAAK0l1B,eAAeE,aAC7B,IAEF7l0B,OAAOC,eAAeul0B,EAAOrl1B,UAAW,iBAAkB,CAIxDigB,YAAY,EACZL,IAAK,WACH,OAAO9f,KAAK0l1B,gBAAkB1l1B,KAAK0l1B,eAAeG,WACpD,IAEF9l0B,OAAOC,eAAeul0B,EAAOrl1B,UAAW,iBAAkB,CAIxDigB,YAAY,EACZL,IAAK,WACH,OAAO9f,KAAK0l1B,eAAe9k1B,MAC7B,IAeFmf,OAAOC,eAAeul0B,EAAOrl1B,UAAW,YAAa,CAInDigB,YAAY,EACZL,IAAK,WACH,YAA4BzX,IAAxBrI,KAAK8l1B,qBAAwDz90B,IAAxBrI,KAAK0l1B,iBAGvC1l1B,KAAK8l1B,eAAe1+nB,WAAapnN,KAAK0l1B,eAAet+nB,UAC9D,EACApqL,IAAK,SAAah2B,QAGYqB,IAAxBrI,KAAK8l1B,qBAAwDz90B,IAAxBrI,KAAK0l1B,iBAM9C1l1B,KAAK8l1B,eAAe1+nB,UAAYpgN,EAChChH,KAAK0l1B,eAAet+nB,UAAYpgN,EAClC,wCCjGFi+M,EAAOrtL,QAAUm5wB,EACjB,IAAIyqC,EAAYxkzB,EAAQ,OAExB,SAAS+5wB,EAAYzmyB,GACnB,KAAMtK,gBAAgB+wyB,GAAc,OAAO,IAAIA,EAAYzmyB,GAC3Dkx0B,EAAU11zB,KAAK9lB,KAAMsK,EACvB,CAJA0sB,EAAQ,MAARA,CAAoB+5wB,EAAayqC,GAKjCzqC,EAAY7wyB,UAAU6l1B,WAAa,SAAUv8yB,EAAO/K,EAAU8qG,GAC5DA,EAAG,KAAM//F,EACX,0CCVI+7yB,YAHJtgoB,EAAOrtL,QAAUo+E,EAMjBA,EAASgwuB,cAAgBA,EAGhBhvzB,EAAAA,OAAAA,aAAT,IACIivzB,EAAkB,SAAyBliD,EAAS9/xB,GACtD,OAAO8/xB,EAAQl3kB,UAAU5oN,GAAMrD,MACjC,EAIIi9xB,EAAS7mwB,EAAQ,OAGjB0K,EAAS1K,EAAAA,OAAAA,OACTkvzB,GAAmC,qBAAXjhpB,EAAAA,EAAyBA,EAAAA,EAA2B,qBAAX3kM,OAAyBA,OAAyB,qBAATujH,KAAuBA,KAAO,CAAC,GAAG/lF,YAAc,WAAa,EAS3K,IACIqe,EADAgqyB,EAAYnvzB,EAAQ,OAGtBmlB,EADEgqyB,GAAaA,EAAUC,SACjBD,EAAUC,SAAS,UAEnB,WAAkB,EAI5B,IAWIC,EACAC,EACAvi0B,EAbAwi0B,EAAavvzB,EAAQ,OACrBwvzB,EAAcxvzB,EAAQ,OAExByvzB,EADazvzB,EAAQ,OACOyvzB,iBAC1BC,EAAiB1vzB,EAAAA,OAAAA,EACnB2vzB,EAAuBD,EAAeC,qBACtCC,EAA4BF,EAAeE,0BAC3CC,EAA6BH,EAAeG,2BAC5CC,EAAqCJ,EAAeI,mCAMtD9vzB,EAAQ,MAARA,CAAoBg/E,EAAU6nrB,GAC9B,IAAIkpD,EAAiBP,EAAYO,eAC7BC,EAAe,CAAC,QAAS,QAAS,UAAW,QAAS,UAY1D,SAAShB,EAAc170B,EAAS2rG,EAAQgxuB,GACtC1B,EAASA,GAAUvuzB,EAAQ,OAC3B1sB,EAAUA,GAAW,CAAC,EAOE,mBAAb280B,IAAwBA,EAAWhxuB,aAAkBsvuB,GAIhEvl1B,KAAKkn1B,aAAe580B,EAAQ480B,WACxBD,IAAUjn1B,KAAKkn1B,WAAaln1B,KAAKkn1B,cAAgB580B,EAAQ680B,oBAI7Dnn1B,KAAK4l1B,cAAgBa,EAAiBzm1B,KAAMsK,EAAS,wBAAyB280B,GAK9Ejn1B,KAAK2/B,OAAS,IAAI4mzB,EAClBvm1B,KAAKY,OAAS,EACdZ,KAAKon1B,MAAQ,KACbpn1B,KAAKqn1B,WAAa,EAClBrn1B,KAAKsn1B,QAAU,KACftn1B,KAAKg5f,OAAQ,EACbh5f,KAAKun1B,YAAa,EAClBvn1B,KAAKwn1B,SAAU,EAMfxn1B,KAAKi8vB,MAAO,EAIZj8vB,KAAKyn1B,cAAe,EACpBzn1B,KAAK0n1B,iBAAkB,EACvB1n1B,KAAK2n1B,mBAAoB,EACzB3n1B,KAAK4n1B,iBAAkB,EACvB5n1B,KAAKwgxB,QAAS,EAGdxgxB,KAAK6n1B,WAAkC,IAAtBv90B,EAAQu90B,UAGzB7n1B,KAAK8n1B,cAAgBx90B,EAAQw90B,YAG7B9n1B,KAAKonN,WAAY,EAKjBpnN,KAAK+n1B,gBAAkBz90B,EAAQy90B,iBAAmB,OAGlD/n1B,KAAKgo1B,WAAa,EAGlBho1B,KAAKio1B,aAAc,EACnBjo1B,KAAKqtC,QAAU,KACfrtC,KAAKy+B,SAAW,KACZn0B,EAAQm0B,WACL4nzB,IAAeA,EAAgBrvzB,EAAAA,OAAAA,GACpCh3B,KAAKqtC,QAAU,IAAIg5yB,EAAc/70B,EAAQm0B,UACzCz+B,KAAKy+B,SAAWn0B,EAAQm0B,SAE5B,CACA,SAASu3E,EAAS1rG,GAEhB,GADAi70B,EAASA,GAAUvuzB,EAAQ,SACrBh3B,gBAAgBg2G,GAAW,OAAO,IAAIA,EAAS1rG,GAIrD,IAAI280B,EAAWjn1B,gBAAgBul1B,EAC/Bvl1B,KAAK8l1B,eAAiB,IAAIE,EAAc170B,EAAStK,KAAMin1B,GAGvDjn1B,KAAKixyB,UAAW,EACZ3myB,IAC0B,oBAAjBA,EAAQq/C,OAAqB3pD,KAAK4ozB,MAAQt+yB,EAAQq/C,MAC9B,oBAApBr/C,EAAQ8vD,UAAwBp6D,KAAKko1B,SAAW590B,EAAQ8vD,UAErEyjuB,EAAO/3wB,KAAK9lB,KACd,CAwDA,SAASmo1B,EAAiBlyuB,EAAQzsE,EAAO/K,EAAU2pzB,EAAYC,GAC7DlsyB,EAAM,mBAAoB3S,GAC1B,IAKMykxB,EALFxpzB,EAAQwxG,EAAO6vuB,eACnB,GAAc,OAAVt8yB,EACF/kC,EAAM+i1B,SAAU,EAuNpB,SAAoBvxuB,EAAQxxG,GAE1B,GADA03C,EAAM,cACF13C,EAAMu0f,MAAO,OACjB,GAAIv0f,EAAM4oC,QAAS,CACjB,IAAI7D,EAAQ/kC,EAAM4oC,QAAQv9B,MACtB05B,GAASA,EAAM5oC,SACjB6D,EAAMk7B,OAAO/d,KAAK4nB,GAClB/kC,EAAM7D,QAAU6D,EAAMyi1B,WAAa,EAAI19yB,EAAM5oC,OAEjD,CACA6D,EAAMu0f,OAAQ,EACVv0f,EAAMw3vB,KAIRqsF,EAAaryuB,IAGbxxG,EAAMgj1B,cAAe,EAChBhj1B,EAAMij1B,kBACTjj1B,EAAMij1B,iBAAkB,EACxBa,EAActyuB,IAGpB,CA9OIuyuB,CAAWvyuB,EAAQxxG,QAInB,GADK4j1B,IAAgBp6B,EA6CzB,SAAsBxpzB,EAAO+kC,GAC3B,IAAIykxB,EAjPiB5oyB,EAkPFmkB,EAjPZ9H,EAAO61E,SAASlyF,IAAQA,aAAe6g0B,GAiPA,kBAAV18yB,QAAgCnhC,IAAVmhC,GAAwB/kC,EAAMyi1B,aACtFj5B,EAAK,IAAI04B,EAAqB,QAAS,CAAC,SAAU,SAAU,cAAen9yB,IAnP/E,IAAuBnkB,EAqPrB,OAAO4oyB,CACT,CAnD8Bw6B,CAAahk1B,EAAO+kC,IAC1CykxB,EACF84B,EAAe9wuB,EAAQg4sB,QAClB,GAAIxpzB,EAAMyi1B,YAAc19yB,GAASA,EAAM5oC,OAAS,EAIrD,GAHqB,kBAAV4oC,GAAuB/kC,EAAMyi1B,YAAcnn0B,OAAO67K,eAAepyJ,KAAW9H,EAAOxhC,YAC5FspC,EA3MR,SAA6BA,GAC3B,OAAO9H,EAAO3d,KAAKylB,EACrB,CAyMgBk/yB,CAAoBl/yB,IAE1B4+yB,EACE3j1B,EAAM8i1B,WAAYR,EAAe9wuB,EAAQ,IAAI6wuB,GAA2C6B,EAAS1yuB,EAAQxxG,EAAO+kC,GAAO,QACtH,GAAI/kC,EAAMu0f,MACf+tV,EAAe9wuB,EAAQ,IAAI2wuB,OACtB,IAAIni1B,EAAM2iN,UACf,OAAO,EAEP3iN,EAAM+i1B,SAAU,EACZ/i1B,EAAM4oC,UAAY5O,GACpB+K,EAAQ/kC,EAAM4oC,QAAQ6pE,MAAM1tE,GACxB/kC,EAAMyi1B,YAA+B,IAAjB19yB,EAAM5oC,OAAc+n1B,EAAS1yuB,EAAQxxG,EAAO+kC,GAAO,GAAYo/yB,EAAc3yuB,EAAQxxG,IAE7Gkk1B,EAAS1yuB,EAAQxxG,EAAO+kC,GAAO,EAEnC,MACU4+yB,IACV3j1B,EAAM+i1B,SAAU,EAChBoB,EAAc3yuB,EAAQxxG,IAO1B,OAAQA,EAAMu0f,QAAUv0f,EAAM7D,OAAS6D,EAAMmh1B,eAAkC,IAAjBnh1B,EAAM7D,OACtE,CACA,SAAS+n1B,EAAS1yuB,EAAQxxG,EAAO+kC,EAAO4+yB,GAClC3j1B,EAAM6i1B,SAA4B,IAAjB7i1B,EAAM7D,SAAiB6D,EAAMw3vB,MAChDx3vB,EAAMuj1B,WAAa,EACnB/xuB,EAAOI,KAAK,OAAQ7sE,KAGpB/kC,EAAM7D,QAAU6D,EAAMyi1B,WAAa,EAAI19yB,EAAM5oC,OACzCwn1B,EAAY3j1B,EAAMk7B,OAAOwod,QAAQ3+c,GAAY/kC,EAAMk7B,OAAO/d,KAAK4nB,GAC/D/kC,EAAMgj1B,cAAca,EAAaryuB,IAEvC2yuB,EAAc3yuB,EAAQxxG,EACxB,CA3GAsb,OAAOC,eAAeg2F,EAAS91G,UAAW,YAAa,CAIrDigB,YAAY,EACZL,IAAK,WACH,YAA4BzX,IAAxBrI,KAAK8l1B,gBAGF9l1B,KAAK8l1B,eAAe1+nB,SAC7B,EACApqL,IAAK,SAAah2B,GAGXhH,KAAK8l1B,iBAMV9l1B,KAAK8l1B,eAAe1+nB,UAAYpgN,EAClC,IAEFgvG,EAAS91G,UAAUk6D,QAAUosxB,EAAYpsxB,QACzC47C,EAAS91G,UAAU2o1B,WAAarC,EAAYsC,UAC5C9yuB,EAAS91G,UAAUgo1B,SAAW,SAAU7j1B,EAAKklI,GAC3CA,EAAGllI,EACL,EAMA2xG,EAAS91G,UAAU0hB,KAAO,SAAU4nB,EAAO/K,GACzC,IACI4pzB,EADA5j1B,EAAQzE,KAAK8l1B,eAcjB,OAZKrh1B,EAAMyi1B,WAUTmB,GAAiB,EATI,kBAAV7+yB,KACT/K,EAAWA,GAAYh6B,EAAMsj1B,mBACZtj1B,EAAMg6B,WACrB+K,EAAQ9H,EAAO3d,KAAKylB,EAAO/K,GAC3BA,EAAW,IAEb4pzB,GAAiB,GAKdF,EAAiBno1B,KAAMwpC,EAAO/K,GAAU,EAAO4pzB,EACxD,EAGAryuB,EAAS91G,UAAUiof,QAAU,SAAU3+c,GACrC,OAAO2+yB,EAAiBno1B,KAAMwpC,EAAO,MAAM,GAAM,EACnD,EA6DAwsE,EAAS91G,UAAU6o1B,SAAW,WAC5B,OAAuC,IAAhC/o1B,KAAK8l1B,eAAewB,OAC7B,EAGAtxuB,EAAS91G,UAAU8o1B,YAAc,SAAUvzG,GACpC4wG,IAAeA,EAAgBrvzB,EAAAA,OAAAA,GACpC,IAAIqW,EAAU,IAAIg5yB,EAAc5wG,GAChCz1uB,KAAK8l1B,eAAez4yB,QAAUA,EAE9BrtC,KAAK8l1B,eAAernzB,SAAWz+B,KAAK8l1B,eAAez4yB,QAAQ5O,SAK3D,IAFA,IAAI9F,EAAI34B,KAAK8l1B,eAAenmzB,OAAO0qF,KAC/B8lB,EAAU,GACD,OAANx3G,GACLw3G,GAAW9iG,EAAQ6pE,MAAMv+E,EAAEhvB,MAC3BgvB,EAAIA,EAAE5S,KAKR,OAHA/lB,KAAK8l1B,eAAenmzB,OAAOunH,QACX,KAAZ/W,GAAgBnwI,KAAK8l1B,eAAenmzB,OAAO/d,KAAKuuH,GACpDnwI,KAAK8l1B,eAAell1B,OAASuvI,EAAQvvI,OAC9BZ,IACT,EAGA,IAAIip1B,EAAU,WAqBd,SAASC,EAAcro1B,EAAG4D,GACxB,OAAI5D,GAAK,GAAsB,IAAjB4D,EAAM7D,QAAgB6D,EAAMu0f,MAAc,EACpDv0f,EAAMyi1B,WAAmB,EACzBrm1B,IAAMA,EAEJ4D,EAAM6i1B,SAAW7i1B,EAAM7D,OAAe6D,EAAMk7B,OAAO0qF,KAAK1gH,KAAK/I,OAAmB6D,EAAM7D,QAGxFC,EAAI4D,EAAMmh1B,gBAAenh1B,EAAMmh1B,cA5BrC,SAAiC/k1B,GAe/B,OAdIA,GAAKoo1B,EAEPpo1B,EAAIoo1B,GAIJpo1B,IACAA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,EACXA,GAAKA,IAAM,GACXA,KAEKA,CACT,CAYqDso1B,CAAwBto1B,IACvEA,GAAK4D,EAAM7D,OAAeC,EAEzB4D,EAAMu0f,MAIJv0f,EAAM7D,QAHX6D,EAAMgj1B,cAAe,EACd,GAGX,CA6HA,SAASa,EAAaryuB,GACpB,IAAIxxG,EAAQwxG,EAAO6vuB,eACnB3pyB,EAAM,eAAgB13C,EAAMgj1B,aAAchj1B,EAAMij1B,iBAChDjj1B,EAAMgj1B,cAAe,EAChBhj1B,EAAMij1B,kBACTvryB,EAAM,eAAgB13C,EAAM6i1B,SAC5B7i1B,EAAMij1B,iBAAkB,EACxB3ozB,EAAQiywB,SAASu3C,EAAetyuB,GAEpC,CACA,SAASsyuB,EAActyuB,GACrB,IAAIxxG,EAAQwxG,EAAO6vuB,eACnB3pyB,EAAM,gBAAiB13C,EAAM2iN,UAAW3iN,EAAM7D,OAAQ6D,EAAMu0f,OACvDv0f,EAAM2iN,YAAc3iN,EAAM7D,SAAU6D,EAAMu0f,QAC7C/iZ,EAAOI,KAAK,YACZ5xG,EAAMij1B,iBAAkB,GAS1Bjj1B,EAAMgj1B,cAAgBhj1B,EAAM6i1B,UAAY7i1B,EAAMu0f,OAASv0f,EAAM7D,QAAU6D,EAAMmh1B,cAC7EwD,EAAKnzuB,EACP,CAQA,SAAS2yuB,EAAc3yuB,EAAQxxG,GACxBA,EAAMwj1B,cACTxj1B,EAAMwj1B,aAAc,EACpBlpzB,EAAQiywB,SAASq4C,EAAgBpzuB,EAAQxxG,GAE7C,CACA,SAAS4k1B,EAAepzuB,EAAQxxG,GAwB9B,MAAQA,EAAM+i1B,UAAY/i1B,EAAMu0f,QAAUv0f,EAAM7D,OAAS6D,EAAMmh1B,eAAiBnh1B,EAAM6i1B,SAA4B,IAAjB7i1B,EAAM7D,SAAe,CACpH,IAAI2lB,EAAM9hB,EAAM7D,OAGhB,GAFAu7C,EAAM,wBACN85D,EAAOtsD,KAAK,GACRpjC,IAAQ9hB,EAAM7D,OAEhB,KACJ,CACA6D,EAAMwj1B,aAAc,CACtB,CAgPA,SAASqB,EAAwBzluB,GAC/B,IAAIp/G,EAAQo/G,EAAKiiuB,eACjBrh1B,EAAMkj1B,kBAAoB9juB,EAAKyqsB,cAAc,YAAc,EACvD7pzB,EAAMmj1B,kBAAoBnj1B,EAAM+7wB,OAGlC/7wB,EAAM6i1B,SAAU,EAGPzjuB,EAAKyqsB,cAAc,QAAU,GACtCzqsB,EAAK/nF,QAET,CACA,SAASytzB,EAAiB1luB,GACxB1nE,EAAM,4BACN0nE,EAAKl6D,KAAK,EACZ,CAuBA,SAAS6/xB,EAAQvzuB,EAAQxxG,GACvB03C,EAAM,SAAU13C,EAAM+i1B,SACjB/i1B,EAAM+i1B,SACTvxuB,EAAOtsD,KAAK,GAEdllD,EAAMmj1B,iBAAkB,EACxB3xuB,EAAOI,KAAK,UACZ+yuB,EAAKnzuB,GACDxxG,EAAM6i1B,UAAY7i1B,EAAM+i1B,SAASvxuB,EAAOtsD,KAAK,EACnD,CAWA,SAASy/xB,EAAKnzuB,GACZ,IAAIxxG,EAAQwxG,EAAO6vuB,eAEnB,IADA3pyB,EAAM,OAAQ13C,EAAM6i1B,SACb7i1B,EAAM6i1B,SAA6B,OAAlBrxuB,EAAOtsD,SACjC,CAmHA,SAAShpC,EAAS9f,EAAG4D,GAEnB,OAAqB,IAAjBA,EAAM7D,OAAqB,MAE3B6D,EAAMyi1B,WAAY5quB,EAAM73G,EAAMk7B,OAAO1D,SAAkBp7B,GAAKA,GAAK4D,EAAM7D,QAEtD07G,EAAf73G,EAAM4oC,QAAe5oC,EAAMk7B,OAAO3Y,KAAK,IAAqC,IAAxBviB,EAAMk7B,OAAO/+B,OAAoB6D,EAAMk7B,OAAOypK,QAAmB3kM,EAAMk7B,OAAOjd,OAAOje,EAAM7D,QACnJ6D,EAAMk7B,OAAOunH,SAGb5qC,EAAM73G,EAAMk7B,OAAOk+hB,QAAQh9jB,EAAG4D,EAAM4oC,SAE/BivE,GATP,IAAIA,CAUN,CACA,SAASmtuB,EAAYxzuB,GACnB,IAAIxxG,EAAQwxG,EAAO6vuB,eACnB3pyB,EAAM,cAAe13C,EAAM8i1B,YACtB9i1B,EAAM8i1B,aACT9i1B,EAAMu0f,OAAQ,EACdj6d,EAAQiywB,SAAS04C,EAAejl1B,EAAOwxG,GAE3C,CACA,SAASyzuB,EAAcjl1B,EAAOwxG,GAI5B,GAHA95D,EAAM,gBAAiB13C,EAAM8i1B,WAAY9i1B,EAAM7D,SAG1C6D,EAAM8i1B,YAA+B,IAAjB9i1B,EAAM7D,SAC7B6D,EAAM8i1B,YAAa,EACnBtxuB,EAAOg7rB,UAAW,EAClBh7rB,EAAOI,KAAK,OACR5xG,EAAMqj1B,aAAa,CAGrB,IAAI6B,EAAS1zuB,EAAOyvuB,iBACfiE,GAAUA,EAAO7B,aAAe6B,EAAOx+xB,WAC1C8qD,EAAO77C,SAEX,CAEJ,CASA,SAASh5D,EAAQ4P,EAAI7F,GACnB,IAAK,IAAInK,EAAI,EAAGqsD,EAAIr8C,EAAGpQ,OAAQI,EAAIqsD,EAAGrsD,IACpC,GAAIgQ,EAAGhQ,KAAOmK,EAAG,OAAOnK,EAE1B,OAAQ,CACV,CA1pBAg1G,EAAS91G,UAAUypD,KAAO,SAAU9oD,GAClCs7C,EAAM,OAAQt7C,GACdA,EAAI4zB,SAAS5zB,EAAG,IAChB,IAAI4D,EAAQzE,KAAK8l1B,eACb8D,EAAQ/o1B,EAMZ,GALU,IAANA,IAAS4D,EAAMij1B,iBAAkB,GAK3B,IAAN7m1B,GAAW4D,EAAMgj1B,gBAA0C,IAAxBhj1B,EAAMmh1B,cAAsBnh1B,EAAM7D,QAAU6D,EAAMmh1B,cAAgBnh1B,EAAM7D,OAAS,IAAM6D,EAAMu0f,OAGlI,OAFA78c,EAAM,qBAAsB13C,EAAM7D,OAAQ6D,EAAMu0f,OAC3B,IAAjBv0f,EAAM7D,QAAgB6D,EAAMu0f,MAAOywV,EAAYzp1B,MAAWso1B,EAAato1B,MACpE,KAKT,GAAU,KAHVa,EAAIqo1B,EAAcro1B,EAAG4D,KAGNA,EAAMu0f,MAEnB,OADqB,IAAjBv0f,EAAM7D,QAAc6o1B,EAAYzp1B,MAC7B,KA0BT,IA2BIs8G,EA3BAutuB,EAASpl1B,EAAMgj1B,aA6CnB,OA5CAtryB,EAAM,gBAAiB0tyB,IAGF,IAAjBpl1B,EAAM7D,QAAgB6D,EAAM7D,OAASC,EAAI4D,EAAMmh1B,gBAEjDzpyB,EAAM,6BADN0tyB,GAAS,GAMPpl1B,EAAMu0f,OAASv0f,EAAM+i1B,QAEvBrryB,EAAM,mBADN0tyB,GAAS,GAEAA,IACT1tyB,EAAM,WACN13C,EAAM+i1B,SAAU,EAChB/i1B,EAAMw3vB,MAAO,EAEQ,IAAjBx3vB,EAAM7D,SAAc6D,EAAMgj1B,cAAe,GAE7Czn1B,KAAK4ozB,MAAMnkzB,EAAMmh1B,eACjBnh1B,EAAMw3vB,MAAO,EAGRx3vB,EAAM+i1B,UAAS3m1B,EAAIqo1B,EAAcU,EAAOnl1B,KAInC,QADD63G,EAAPz7G,EAAI,EAAS8f,EAAS9f,EAAG4D,GAAkB,OAE7CA,EAAMgj1B,aAAehj1B,EAAM7D,QAAU6D,EAAMmh1B,cAC3C/k1B,EAAI,IAEJ4D,EAAM7D,QAAUC,EAChB4D,EAAMuj1B,WAAa,GAEA,IAAjBvj1B,EAAM7D,SAGH6D,EAAMu0f,QAAOv0f,EAAMgj1B,cAAe,GAGnCmC,IAAU/o1B,GAAK4D,EAAMu0f,OAAOywV,EAAYzp1B,OAElC,OAARs8G,GAAct8G,KAAKq2G,KAAK,OAAQiG,GAC7BA,CACT,EA6GAtG,EAAS91G,UAAU0ozB,MAAQ,SAAU/nzB,GACnCkm1B,EAAe/m1B,KAAM,IAAI6m1B,EAA2B,WACtD,EACA7wuB,EAAS91G,UAAU0xyB,KAAO,SAAUxmmB,EAAM0+oB,GACxC,IAAIx60B,EAAMtP,KACNyE,EAAQzE,KAAK8l1B,eACjB,OAAQrh1B,EAAM4i1B,YACZ,KAAK,EACH5i1B,EAAM2i1B,MAAQh8oB,EACd,MACF,KAAK,EACH3mM,EAAM2i1B,MAAQ,CAAC3i1B,EAAM2i1B,MAAOh8oB,GAC5B,MACF,QACE3mM,EAAM2i1B,MAAMxl0B,KAAKwpL,GAGrB3mM,EAAM4i1B,YAAc,EACpBlryB,EAAM,wBAAyB13C,EAAM4i1B,WAAYyC,GACjD,IACIC,IADUD,IAA6B,IAAjBA,EAASh60B,MAAkBs7L,IAASrsK,EAAQirzB,QAAU5+oB,IAASrsK,EAAQkrzB,OAC7ExE,EAAQ9zC,EAG5B,SAASu4C,EAASj5C,EAAUk5C,GAC1BhuyB,EAAM,YACF80vB,IAAa3hyB,GACX660B,IAAwC,IAA1BA,EAAWC,aAC3BD,EAAWC,YAAa,EAkB5BjuyB,EAAM,WAENivJ,EAAKxW,eAAe,QAASiyjB,GAC7Bz7iB,EAAKxW,eAAe,SAAUy1pB,GAC9Bj/oB,EAAKxW,eAAe,QAAS01pB,GAC7Bl/oB,EAAKxW,eAAe,QAAS91J,GAC7BssK,EAAKxW,eAAe,SAAUs1pB,GAC9B560B,EAAIslL,eAAe,MAAO6wpB,GAC1Bn20B,EAAIslL,eAAe,MAAO+8mB,GAC1BriyB,EAAIslL,eAAe,OAAQ21pB,GAC3BC,GAAY,GAOR/l1B,EAAMuj1B,YAAgB58oB,EAAKs6oB,iBAAkBt6oB,EAAKs6oB,eAAe+E,WAAYH,IA/BnF,CACA,SAAS7E,IACPtpyB,EAAM,SACNivJ,EAAKt7L,KACP,CAdIrL,EAAM8i1B,WAAYxozB,EAAQiywB,SAAS+4C,GAAYz60B,EAAI8+yB,KAAK,MAAO27B,GACnE3+oB,EAAKl3F,GAAG,SAAUg2uB,GAmBlB,IAAII,EAgFN,SAAqBh70B,GACnB,OAAO,WACL,IAAI7K,EAAQ6K,EAAIw20B,eAChB3pyB,EAAM,cAAe13C,EAAMuj1B,YACvBvj1B,EAAMuj1B,YAAYvj1B,EAAMuj1B,aACH,IAArBvj1B,EAAMuj1B,YAAoB/B,EAAgB320B,EAAK,UACjD7K,EAAM6i1B,SAAU,EAChB8B,EAAK950B,GAET,CACF,CA1FgBo70B,CAAYp70B,GAC1B87L,EAAKl3F,GAAG,QAASo2uB,GACjB,IAAIE,GAAY,EAsBhB,SAASD,EAAO/gzB,GACd2S,EAAM,UACN,IAAImgE,EAAM8uF,EAAKl0F,MAAM1tE,GACrB2S,EAAM,aAAcmgE,IACR,IAARA,KAKwB,IAArB73G,EAAM4i1B,YAAoB5i1B,EAAM2i1B,QAAUh8oB,GAAQ3mM,EAAM4i1B,WAAa,IAAqC,IAAhCjm1B,EAAQqD,EAAM2i1B,MAAOh8oB,MAAkBo/oB,IACpHruyB,EAAM,8BAA+B13C,EAAMuj1B,YAC3Cvj1B,EAAMuj1B,cAER140B,EAAIkojB,QAER,CAIA,SAAS14hB,EAAQmvxB,GACf9xwB,EAAM,UAAW8xwB,GACjBtc,IACAvmmB,EAAKxW,eAAe,QAAS91J,GACU,IAAnCmnzB,EAAgB76oB,EAAM,UAAgB27oB,EAAe37oB,EAAM6inB,EACjE,CAMA,SAASpnE,IACPz7iB,EAAKxW,eAAe,SAAUy1pB,GAC9B14C,GACF,CAEA,SAAS04C,IACPluyB,EAAM,YACNivJ,EAAKxW,eAAe,QAASiyjB,GAC7B8qD,GACF,CAEA,SAASA,IACPx1vB,EAAM,UACN7sC,EAAIqiyB,OAAOvmmB,EACb,CAUA,OAvDA97L,EAAI4kG,GAAG,OAAQq2uB,GAniBjB,SAAyBxmD,EAASx7xB,EAAOogB,GAGvC,GAAuC,oBAA5Bo7wB,EAAQ4mD,gBAAgC,OAAO5mD,EAAQ4mD,gBAAgBpi1B,EAAOogB,GAMpFo7wB,EAAQ1H,SAAY0H,EAAQ1H,QAAQ9zxB,GAAuC+Z,MAAMC,QAAQwhxB,EAAQ1H,QAAQ9zxB,IAASw7xB,EAAQ1H,QAAQ9zxB,GAAO4/e,QAAQx/d,GAASo7wB,EAAQ1H,QAAQ9zxB,GAAS,CAACogB,EAAIo7wB,EAAQ1H,QAAQ9zxB,IAA5Jw7xB,EAAQ7vrB,GAAG3rG,EAAOogB,EACrE,CAqjBEgi0B,CAAgBv/oB,EAAM,QAAStsK,GAO/BssK,EAAKgjnB,KAAK,QAASvnE,GAMnBz7iB,EAAKgjnB,KAAK,SAAUi8B,GAOpBj/oB,EAAK/0F,KAAK,OAAQ/mG,GAGb7K,EAAM6i1B,UACTnryB,EAAM,eACN7sC,EAAIwsB,UAECsvK,CACT,EAYAp1F,EAAS91G,UAAUyxyB,OAAS,SAAUvmmB,GACpC,IAAI3mM,EAAQzE,KAAK8l1B,eACbqE,EAAa,CACfC,YAAY,GAId,GAAyB,IAArB3l1B,EAAM4i1B,WAAkB,OAAOrn1B,KAGnC,GAAyB,IAArByE,EAAM4i1B,WAER,OAAIj8oB,GAAQA,IAAS3mM,EAAM2i1B,QACtBh8oB,IAAMA,EAAO3mM,EAAM2i1B,OAGxB3i1B,EAAM2i1B,MAAQ,KACd3i1B,EAAM4i1B,WAAa,EACnB5i1B,EAAM6i1B,SAAU,EACZl8oB,GAAMA,EAAK/0F,KAAK,SAAUr2G,KAAMmq1B,IAPKnq1B,KAa3C,IAAKorM,EAAM,CAET,IAAIw/oB,EAAQnm1B,EAAM2i1B,MACd7g0B,EAAM9hB,EAAM4i1B,WAChB5i1B,EAAM2i1B,MAAQ,KACd3i1B,EAAM4i1B,WAAa,EACnB5i1B,EAAM6i1B,SAAU,EAChB,IAAK,IAAItm1B,EAAI,EAAGA,EAAIulB,EAAKvlB,IAAK4p1B,EAAM5p1B,GAAGq1G,KAAK,SAAUr2G,KAAM,CAC1Doq1B,YAAY,IAEd,OAAOpq1B,IACT,CAGA,IAAIozB,EAAQhyB,EAAQqD,EAAM2i1B,MAAOh8oB,GACjC,OAAe,IAAXh4K,IACJ3uB,EAAM2i1B,MAAMt4zB,OAAOsE,EAAO,GAC1B3uB,EAAM4i1B,YAAc,EACK,IAArB5i1B,EAAM4i1B,aAAkB5i1B,EAAM2i1B,MAAQ3i1B,EAAM2i1B,MAAM,IACtDh8oB,EAAK/0F,KAAK,SAAUr2G,KAAMmq1B,IAJDnq1B,IAM3B,EAIAg2G,EAAS91G,UAAUg0G,GAAK,SAAUuokB,EAAI9zpB,GACpC,IAAIyxF,EAAMyjrB,EAAO39xB,UAAUg0G,GAAGpuF,KAAK9lB,KAAMy8qB,EAAI9zpB,GACzClkB,EAAQzE,KAAK8l1B,eAqBjB,MApBW,SAAPrpK,GAGFh4qB,EAAMkj1B,kBAAoB3n1B,KAAKsuzB,cAAc,YAAc,GAGrC,IAAlB7pzB,EAAM6i1B,SAAmBtn1B,KAAK87B,UAClB,aAAP2gpB,IACJh4qB,EAAM8i1B,YAAe9i1B,EAAMkj1B,oBAC9Blj1B,EAAMkj1B,kBAAoBlj1B,EAAMgj1B,cAAe,EAC/Chj1B,EAAM6i1B,SAAU,EAChB7i1B,EAAMij1B,iBAAkB,EACxBvryB,EAAM,cAAe13C,EAAM7D,OAAQ6D,EAAM+i1B,SACrC/i1B,EAAM7D,OACR0n1B,EAAato1B,MACHyE,EAAM+i1B,SAChBzozB,EAAQiywB,SAASu4C,EAAkBvp1B,QAIlCo6G,CACT,EACApE,EAAS91G,UAAUy0L,YAAc3+E,EAAS91G,UAAUg0G,GACpD8B,EAAS91G,UAAU00L,eAAiB,SAAU6nf,EAAI9zpB,GAChD,IAAIyxF,EAAMyjrB,EAAO39xB,UAAU00L,eAAe9uK,KAAK9lB,KAAMy8qB,EAAI9zpB,GAUzD,MATW,aAAP8zpB,GAOF19oB,EAAQiywB,SAASs4C,EAAyBtp1B,MAErCo6G,CACT,EACApE,EAAS91G,UAAU2qU,mBAAqB,SAAU4xW,GAChD,IAAIrikB,EAAMyjrB,EAAO39xB,UAAU2qU,mBAAmBjmT,MAAM5kB,KAAM8kB,WAU1D,MATW,aAAP23pB,QAA4Bp0qB,IAAPo0qB,GAOvB19oB,EAAQiywB,SAASs4C,EAAyBtp1B,MAErCo6G,CACT,EAqBApE,EAAS91G,UAAU47B,OAAS,WAC1B,IAAIr3B,EAAQzE,KAAK8l1B,eAUjB,OATKrh1B,EAAM6i1B,UACTnryB,EAAM,UAIN13C,EAAM6i1B,SAAW7i1B,EAAMkj1B,kBAM3B,SAAgB1xuB,EAAQxxG,GACjBA,EAAMmj1B,kBACTnj1B,EAAMmj1B,iBAAkB,EACxB7ozB,EAAQiywB,SAASw4C,EAASvzuB,EAAQxxG,GAEtC,CAVIq3B,CAAO97B,KAAMyE,IAEfA,EAAM+7wB,QAAS,EACRxgxB,IACT,EAiBAg2G,EAAS91G,UAAUs3jB,MAAQ,WAQzB,OAPAr7gB,EAAM,wBAAyBn8C,KAAK8l1B,eAAewB,UACf,IAAhCtn1B,KAAK8l1B,eAAewB,UACtBnryB,EAAM,SACNn8C,KAAK8l1B,eAAewB,SAAU,EAC9Btn1B,KAAKq2G,KAAK,UAEZr2G,KAAK8l1B,eAAetlE,QAAS,EACtBxgxB,IACT,EAUAg2G,EAAS91G,UAAU8hJ,KAAO,SAAU/rC,GAClC,IAAI9yF,EAAQnjB,KACRyE,EAAQzE,KAAK8l1B,eACbtlE,GAAS,EAwBb,IAAK,IAAIx/wB,KAvBTi1G,EAAO/B,GAAG,OAAO,WAEf,GADA/3D,EAAM,eACF13C,EAAM4oC,UAAY5oC,EAAMu0f,MAAO,CACjC,IAAIxvd,EAAQ/kC,EAAM4oC,QAAQv9B,MACtB05B,GAASA,EAAM5oC,QAAQuiB,EAAMvB,KAAK4nB,EACxC,CACArmB,EAAMvB,KAAK,KACb,IACAq0F,EAAO/B,GAAG,QAAQ,SAAU1qE,IAC1B2S,EAAM,gBACF13C,EAAM4oC,UAAS7D,EAAQ/kC,EAAM4oC,QAAQ6pE,MAAM1tE,KAG3C/kC,EAAMyi1B,YAAyB,OAAV19yB,QAA4BnhC,IAAVmhC,MAAuC/kC,EAAMyi1B,YAAgB19yB,GAAUA,EAAM5oC,UAC9GuiB,EAAMvB,KAAK4nB,KAEnBg3uB,GAAS,EACTvqqB,EAAOuhd,UAEX,IAIcvhd,OACI5tG,IAAZrI,KAAKgB,IAAyC,oBAAdi1G,EAAOj1G,KACzChB,KAAKgB,GAAK,SAAoBiG,GAC5B,OAAO,WACL,OAAOgvG,EAAOhvG,GAAQ2d,MAAMqxF,EAAQnxF,UACtC,CACF,CAJU,CAIR9jB,IAKN,IAAK,IAAIH,EAAI,EAAGA,EAAImm1B,EAAapm1B,OAAQC,IACvCo1G,EAAO/B,GAAG8yuB,EAAanm1B,GAAIb,KAAKq2G,KAAK71G,KAAKR,KAAMgn1B,EAAanm1B,KAY/D,OAPAb,KAAK4ozB,MAAQ,SAAU/nzB,GACrBs7C,EAAM,gBAAiBt7C,GACnB2/wB,IACFA,GAAS,EACTvqqB,EAAOn6E,SAEX,EACO97B,IACT,EACsB,oBAAX6jB,SACTmyF,EAAS91G,UAAU2jB,OAAO+X,eAAiB,WAIzC,YAH0CvzB,IAAtCi+0B,IACFA,EAAoCtvzB,EAAQ,QAEvCsvzB,EAAkCtm1B,KAC3C,GAEF+f,OAAOC,eAAeg2F,EAAS91G,UAAW,wBAAyB,CAIjEigB,YAAY,EACZL,IAAK,WACH,OAAO9f,KAAK8l1B,eAAeF,aAC7B,IAEF7l0B,OAAOC,eAAeg2F,EAAS91G,UAAW,iBAAkB,CAI1DigB,YAAY,EACZL,IAAK,WACH,OAAO9f,KAAK8l1B,gBAAkB9l1B,KAAK8l1B,eAAenmzB,MACpD,IAEF5f,OAAOC,eAAeg2F,EAAS91G,UAAW,kBAAmB,CAI3DigB,YAAY,EACZL,IAAK,WACH,OAAO9f,KAAK8l1B,eAAewB,OAC7B,EACAtqzB,IAAK,SAAav4B,GACZzE,KAAK8l1B,iBACP9l1B,KAAK8l1B,eAAewB,QAAU7i1B,EAElC,IAIFuxG,EAAS60uB,UAAYlq0B,EACrBZ,OAAOC,eAAeg2F,EAAS91G,UAAW,iBAAkB,CAI1DigB,YAAY,EACZL,IAAK,WACH,OAAO9f,KAAK8l1B,eAAell1B,MAC7B,IA+CoB,oBAAXijB,SACTmyF,EAASjyF,KAAO,SAAU0kc,EAAUn5b,GAIlC,YAHajnB,IAAT0b,IACFA,EAAOiT,EAAQ,QAEVjT,EAAKiyF,EAAUyyW,EAAUn5b,EAClC,uCC17BF21L,EAAOrtL,QAAU4jzB,EACjB,IAAIkL,EAAiB1vzB,EAAAA,OAAAA,EACnB6vzB,EAA6BH,EAAeG,2BAC5CiE,EAAwBpE,EAAeoE,sBACvCC,EAAqCrE,EAAeqE,mCACpDC,EAA8BtE,EAAesE,4BAC3CzF,EAASvuzB,EAAQ,OAErB,SAASi0zB,EAAeh9B,EAAItkzB,GAC1B,IAAIuh1B,EAAKlr1B,KAAKmr1B,gBACdD,EAAGE,cAAe,EAClB,IAAI7htB,EAAK2htB,EAAGG,QACZ,GAAW,OAAP9htB,EACF,OAAOvpI,KAAKq2G,KAAK,QAAS,IAAIy0uB,GAEhCI,EAAGI,WAAa,KAChBJ,EAAGG,QAAU,KACD,MAAR1h1B,GAEF3J,KAAK4hB,KAAKjY,GACZ4/H,EAAG0krB,GACH,IAAI7uS,EAAKp/gB,KAAK8l1B,eACd1mU,EAAGooU,SAAU,GACTpoU,EAAGqoU,cAAgBroU,EAAGx+gB,OAASw+gB,EAAGwmU,gBACpC5l1B,KAAK4ozB,MAAMxpS,EAAGwmU,cAElB,CACA,SAASpK,EAAUlx0B,GACjB,KAAMtK,gBAAgBw70B,GAAY,OAAO,IAAIA,EAAUlx0B,GACvDi70B,EAAOz/zB,KAAK9lB,KAAMsK,GAClBtK,KAAKmr1B,gBAAkB,CACrBF,eAAgBA,EAAezq1B,KAAKR,MACpCur1B,eAAe,EACfH,cAAc,EACdC,QAAS,KACTC,WAAY,KACZE,cAAe,MAIjBxr1B,KAAK8l1B,eAAe2B,cAAe,EAKnCzn1B,KAAK8l1B,eAAe7pF,MAAO,EACvB3xvB,IAC+B,oBAAtBA,EAAQg5H,YAA0BtjI,KAAK+l1B,WAAaz70B,EAAQg5H,WAC1C,oBAAlBh5H,EAAQw7G,QAAsB9lH,KAAKyr1B,OAASnh1B,EAAQw7G,QAIjE9lH,KAAKk0G,GAAG,YAAaw3uB,EACvB,CACA,SAASA,IACP,IAAIvo0B,EAAQnjB,KACe,oBAAhBA,KAAKyr1B,QAA0Bzr1B,KAAK8l1B,eAAe1+nB,UAK5DphM,EAAKhmB,KAAM,KAAM,MAJjBA,KAAKyr1B,QAAO,SAAUx9B,EAAItkzB,GACxBqc,EAAK7C,EAAO8qyB,EAAItkzB,EAClB,GAIJ,CAiDA,SAASqc,EAAKiwF,EAAQg4sB,EAAItkzB,GACxB,GAAIskzB,EAAI,OAAOh4sB,EAAOI,KAAK,QAAS43sB,GAQpC,GAPY,MAARtkzB,GAEFssG,EAAOr0F,KAAKjY,GAKVssG,EAAOyvuB,eAAe9k1B,OAAQ,MAAM,IAAIoq1B,EAC5C,GAAI/0uB,EAAOk1uB,gBAAgBC,aAAc,MAAM,IAAIL,EACnD,OAAO90uB,EAAOr0F,KAAK,KACrB,CArHAoV,EAAQ,MAARA,CAAoBwkzB,EAAW+J,GAyD/B/J,EAAUt70B,UAAU0hB,KAAO,SAAU4nB,EAAO/K,GAE1C,OADAz+B,KAAKmr1B,gBAAgBI,eAAgB,EAC9BhG,EAAOrl1B,UAAU0hB,KAAKkE,KAAK9lB,KAAMwpC,EAAO/K,EACjD,EAYA+8yB,EAAUt70B,UAAU6l1B,WAAa,SAAUv8yB,EAAO/K,EAAU8qG,GAC1DA,EAAG,IAAIs9sB,EAA2B,gBACpC,EACArL,EAAUt70B,UAAUwxyB,OAAS,SAAUlowB,EAAO/K,EAAU8qG,GACtD,IAAI2htB,EAAKlr1B,KAAKmr1B,gBAId,GAHAD,EAAGG,QAAU9htB,EACb2htB,EAAGI,WAAa9hzB,EAChB0hzB,EAAGM,cAAgB/szB,GACdyszB,EAAGE,aAAc,CACpB,IAAIhsU,EAAKp/gB,KAAK8l1B,gBACVoF,EAAGK,eAAiBnsU,EAAGqoU,cAAgBroU,EAAGx+gB,OAASw+gB,EAAGwmU,gBAAe5l1B,KAAK4ozB,MAAMxpS,EAAGwmU,cACzF,CACF,EAKApK,EAAUt70B,UAAU0ozB,MAAQ,SAAU/nzB,GACpC,IAAIqq1B,EAAKlr1B,KAAKmr1B,gBACQ,OAAlBD,EAAGI,YAAwBJ,EAAGE,aAMhCF,EAAGK,eAAgB,GALnBL,EAAGE,cAAe,EAClBpr1B,KAAK+l1B,WAAWmF,EAAGI,WAAYJ,EAAGM,cAAeN,EAAGD,gBAMxD,EACAzP,EAAUt70B,UAAUgo1B,SAAW,SAAU7j1B,EAAKklI,GAC5Cg8sB,EAAOrl1B,UAAUgo1B,SAASpi0B,KAAK9lB,KAAMqE,GAAK,SAAUsn1B,GAClDpitB,EAAGoitB,EACL,GACF,0CC9HIpG,YAXJ,SAASqG,EAAcnn1B,GACrB,IAAI0e,EAAQnjB,KACZA,KAAK+lB,KAAO,KACZ/lB,KAAK+hB,MAAQ,KACb/hB,KAAKk/B,OAAS,YA6iBhB,SAAwB2szB,EAASpn1B,EAAOJ,GACtC,IAAI0d,EAAQ8p0B,EAAQ9p0B,MACpB8p0B,EAAQ9p0B,MAAQ,KAChB,KAAOA,GAAO,CACZ,IAAIwnH,EAAKxnH,EAAMwmG,SACf9jH,EAAMqn1B,YACNvitB,EAAGllI,GACH0d,EAAQA,EAAMgE,IAChB,CAGAthB,EAAMsn1B,mBAAmBhm0B,KAAO8l0B,CAClC,CAxjBIG,CAAe7o0B,EAAO1e,EACxB,CACF,CAnBAwgN,EAAOrtL,QAAU4qzB,EA0BjBA,EAASyJ,cAAgBA,EAGzB,IAAIC,EAAe,CACjBC,UAAWn1zB,EAAQ,QAKjB6mwB,EAAS7mwB,EAAQ,OAGjB0K,EAAS1K,EAAAA,OAAAA,OACTkvzB,GAAmC,qBAAXjhpB,EAAAA,EAAyBA,EAAAA,EAA2B,qBAAX3kM,OAAyBA,OAAyB,qBAATujH,KAAuBA,KAAO,CAAC,GAAG/lF,YAAc,WAAa,EAO3K,IA8IIsuzB,EA9IA5F,EAAcxvzB,EAAQ,OAExByvzB,EADazvzB,EAAQ,OACOyvzB,iBAC1BC,EAAiB1vzB,EAAAA,OAAAA,EACnB2vzB,EAAuBD,EAAeC,qBACtCE,EAA6BH,EAAeG,2BAC5CiE,EAAwBpE,EAAeoE,sBACvCuB,EAAyB3F,EAAe2F,uBACxCC,EAAuB5F,EAAe4F,qBACtCC,EAAyB7F,EAAe6F,uBACxCC,EAA6B9F,EAAe8F,2BAC5CC,EAAuB/F,EAAe+F,qBACpC1F,EAAiBP,EAAYO,eAEjC,SAAS2F,IAAO,CAChB,SAAST,EAAc3h1B,EAAS2rG,EAAQgxuB,GACtC1B,EAASA,GAAUvuzB,EAAQ,OAC3B1sB,EAAUA,GAAW,CAAC,EAOE,mBAAb280B,IAAwBA,EAAWhxuB,aAAkBsvuB,GAIhEvl1B,KAAKkn1B,aAAe580B,EAAQ480B,WACxBD,IAAUjn1B,KAAKkn1B,WAAaln1B,KAAKkn1B,cAAgB580B,EAAQqi1B,oBAK7D3s1B,KAAK4l1B,cAAgBa,EAAiBzm1B,KAAMsK,EAAS,wBAAyB280B,GAG9Ejn1B,KAAK4s1B,aAAc,EAGnB5s1B,KAAKyq1B,WAAY,EAEjBzq1B,KAAK6s1B,QAAS,EAEd7s1B,KAAKg5f,OAAQ,EAEbh5f,KAAKmrD,UAAW,EAGhBnrD,KAAKonN,WAAY,EAKjB,IAAI0loB,GAAqC,IAA1Bxi1B,EAAQyi1B,cACvB/s1B,KAAK+s1B,eAAiBD,EAKtB9s1B,KAAK+n1B,gBAAkBz90B,EAAQy90B,iBAAmB,OAKlD/n1B,KAAKY,OAAS,EAGdZ,KAAKgt1B,SAAU,EAGfht1B,KAAKit1B,OAAS,EAMdjt1B,KAAKi8vB,MAAO,EAKZj8vB,KAAKkt1B,kBAAmB,EAGxBlt1B,KAAKmt1B,QAAU,SAAUl/B,IAsQ3B,SAAiBh4sB,EAAQg4sB,GACvB,IAAIxpzB,EAAQwxG,EAAOyvuB,eACfzpF,EAAOx3vB,EAAMw3vB,KACb1ynB,EAAK9kI,EAAM4m1B,QACf,GAAkB,oBAAP9htB,EAAmB,MAAM,IAAIuhtB,EAExC,GAZF,SAA4Brm1B,GAC1BA,EAAMuo1B,SAAU,EAChBvo1B,EAAM4m1B,QAAU,KAChB5m1B,EAAM7D,QAAU6D,EAAM2o1B,SACtB3o1B,EAAM2o1B,SAAW,CACnB,CAMEC,CAAmB5o1B,GACfwpzB,GAlCN,SAAsBh4sB,EAAQxxG,EAAOw3vB,EAAMgyD,EAAI1krB,KAC3C9kI,EAAMqn1B,UACJ7vF,GAGFl9tB,EAAQiywB,SAASznqB,EAAI0krB,GAGrBlvxB,EAAQiywB,SAASs8C,EAAar3uB,EAAQxxG,GACtCwxG,EAAOyvuB,eAAe6H,cAAe,EACrCxG,EAAe9wuB,EAAQg4sB,KAIvB1krB,EAAG0krB,GACHh4sB,EAAOyvuB,eAAe6H,cAAe,EACrCxG,EAAe9wuB,EAAQg4sB,GAGvBq/B,EAAYr3uB,EAAQxxG,GAExB,CAaU+o1B,CAAav3uB,EAAQxxG,EAAOw3vB,EAAMgyD,EAAI1krB,OAAS,CAErD,IAAIp+E,EAAWsiyB,EAAWhp1B,IAAUwxG,EAAOmxG,UACtCj8J,GAAa1mD,EAAMwo1B,QAAWxo1B,EAAMyo1B,mBAAoBzo1B,EAAMip1B,iBACjEC,EAAY13uB,EAAQxxG,GAElBw3vB,EACFl9tB,EAAQiywB,SAAS48C,EAAY33uB,EAAQxxG,EAAO0mD,EAAUo+E,GAEtDqktB,EAAW33uB,EAAQxxG,EAAO0mD,EAAUo+E,EAExC,CACF,CAvRI4jtB,CAAQl3uB,EAAQg4sB,EAClB,EAGAjuzB,KAAKqr1B,QAAU,KAGfrr1B,KAAKot1B,SAAW,EAChBpt1B,KAAK0t1B,gBAAkB,KACvB1t1B,KAAK6t1B,oBAAsB,KAI3B7t1B,KAAK8r1B,UAAY,EAIjB9r1B,KAAK8t1B,aAAc,EAGnB9t1B,KAAKut1B,cAAe,EAGpBvt1B,KAAK6n1B,WAAkC,IAAtBv90B,EAAQu90B,UAGzB7n1B,KAAK8n1B,cAAgBx90B,EAAQw90B,YAG7B9n1B,KAAK+t1B,qBAAuB,EAI5B/t1B,KAAK+r1B,mBAAqB,IAAIH,EAAc5r1B,KAC9C,CAqCA,SAASwi1B,EAASl40B,GAahB,IAAI280B,EAAWjn1B,gBAZful1B,EAASA,GAAUvuzB,EAAQ,QAa3B,IAAKiwzB,IAAamF,EAAgBtm0B,KAAK08zB,EAAUxi1B,MAAO,OAAO,IAAIwi1B,EAASl40B,GAC5EtK,KAAK0l1B,eAAiB,IAAIuG,EAAc3h1B,EAAStK,KAAMin1B,GAGvDjn1B,KAAKigB,UAAW,EACZ3V,IAC2B,oBAAlBA,EAAQ4sG,QAAsBl3G,KAAK0xyB,OAASpnyB,EAAQ4sG,OACjC,oBAAnB5sG,EAAQ0j1B,SAAuBhu1B,KAAKiu1B,QAAU3j1B,EAAQ0j1B,QAClC,oBAApB1j1B,EAAQ8vD,UAAwBp6D,KAAKko1B,SAAW590B,EAAQ8vD,SACtC,oBAAlB9vD,EAAQgjpB,QAAsBttpB,KAAK+80B,OAASzy0B,EAAQgjpB,QAEjEuwI,EAAO/3wB,KAAK9lB,KACd,CAgIA,SAASku1B,EAAQj4uB,EAAQxxG,EAAOup1B,EAAQzn0B,EAAKijB,EAAO/K,EAAU8qG,GAC5D9kI,EAAM2o1B,SAAW7m0B,EACjB9hB,EAAM4m1B,QAAU9htB,EAChB9kI,EAAMuo1B,SAAU,EAChBvo1B,EAAMw3vB,MAAO,EACTx3vB,EAAM2iN,UAAW3iN,EAAM0o1B,QAAQ,IAAIb,EAAqB,UAAmB0B,EAAQ/3uB,EAAOg4uB,QAAQzkzB,EAAO/kC,EAAM0o1B,SAAcl3uB,EAAOy7rB,OAAOlowB,EAAO/K,EAAUh6B,EAAM0o1B,SACtK1o1B,EAAMw3vB,MAAO,CACf,CAgDA,SAAS2xF,EAAW33uB,EAAQxxG,EAAO0mD,EAAUo+E,GACtCp+E,GASP,SAAsB8qD,EAAQxxG,GACP,IAAjBA,EAAM7D,QAAgB6D,EAAMgm1B,YAC9Bhm1B,EAAMgm1B,WAAY,EAClBx0uB,EAAOI,KAAK,SAEhB,CAdiB83uB,CAAal4uB,EAAQxxG,GACpCA,EAAMqn1B,YACNvitB,IACA+jtB,EAAYr3uB,EAAQxxG,EACtB,CAaA,SAASkp1B,EAAY13uB,EAAQxxG,GAC3BA,EAAMyo1B,kBAAmB,EACzB,IAAInr0B,EAAQtd,EAAMip1B,gBAClB,GAAIz3uB,EAAOg4uB,SAAWls0B,GAASA,EAAMgE,KAAM,CAEzC,IAAIsnC,EAAI5oD,EAAMsp1B,qBACVpuzB,EAAS,IAAIrd,MAAM+qC,GACnB+gyB,EAAS3p1B,EAAMsn1B,mBACnBqC,EAAOrs0B,MAAQA,EAGf,IAFA,IAAI8lG,EAAQ,EACRwmuB,GAAa,EACVts0B,GACL4d,EAAOkoF,GAAS9lG,EACXA,EAAMus0B,QAAOD,GAAa,GAC/Bts0B,EAAQA,EAAMgE,KACd8hG,GAAS,EAEXloF,EAAO0uzB,WAAaA,EACpBH,EAAQj4uB,EAAQxxG,GAAO,EAAMA,EAAM7D,OAAQ++B,EAAQ,GAAIyuzB,EAAOlvzB,QAI9Dz6B,EAAMqn1B,YACNrn1B,EAAMop1B,oBAAsB,KACxBO,EAAOro0B,MACTthB,EAAMsn1B,mBAAqBqC,EAAOro0B,KAClCqo0B,EAAOro0B,KAAO,MAEdthB,EAAMsn1B,mBAAqB,IAAIH,EAAcnn1B,GAE/CA,EAAMsp1B,qBAAuB,CAC/B,KAAO,CAEL,KAAOhs0B,GAAO,CACZ,IAAIynB,EAAQznB,EAAMynB,MACd/K,EAAW1c,EAAM0c,SACjB8qG,EAAKxnH,EAAMwmG,SASf,GAPA2luB,EAAQj4uB,EAAQxxG,GAAO,EADbA,EAAMyi1B,WAAa,EAAI19yB,EAAM5oC,OACJ4oC,EAAO/K,EAAU8qG,GACpDxnH,EAAQA,EAAMgE,KACdthB,EAAMsp1B,uBAKFtp1B,EAAMuo1B,QACR,KAEJ,CACc,OAAVjr0B,IAAgBtd,EAAMop1B,oBAAsB,KAClD,CACApp1B,EAAMip1B,gBAAkB3r0B,EACxBtd,EAAMyo1B,kBAAmB,CAC3B,CAoCA,SAASO,EAAWhp1B,GAClB,OAAOA,EAAMoo1B,QAA2B,IAAjBpo1B,EAAM7D,QAA0C,OAA1B6D,EAAMip1B,kBAA6Bjp1B,EAAM0mD,WAAa1mD,EAAMuo1B,OAC3G,CACA,SAASuB,EAAUt4uB,EAAQxxG,GACzBwxG,EAAO8muB,QAAO,SAAU140B,GACtBI,EAAMqn1B,YACFzn1B,GACF0i1B,EAAe9wuB,EAAQ5xG,GAEzBI,EAAMqp1B,aAAc,EACpB73uB,EAAOI,KAAK,aACZi3uB,EAAYr3uB,EAAQxxG,EACtB,GACF,CAaA,SAAS6o1B,EAAYr3uB,EAAQxxG,GAC3B,IAAI+p1B,EAAOf,EAAWhp1B,GACtB,GAAI+p1B,IAdN,SAAmBv4uB,EAAQxxG,GACpBA,EAAMqp1B,aAAgBrp1B,EAAMmo1B,cACF,oBAAlB32uB,EAAO8muB,QAA0Bt40B,EAAM2iN,WAKhD3iN,EAAMqp1B,aAAc,EACpB73uB,EAAOI,KAAK,eALZ5xG,EAAMqn1B,YACNrn1B,EAAMmo1B,aAAc,EACpB7tzB,EAAQiywB,SAASu9C,EAAWt4uB,EAAQxxG,IAM1C,CAIIin1B,CAAUz1uB,EAAQxxG,GACM,IAApBA,EAAMqn1B,YACRrn1B,EAAM0mD,UAAW,EACjB8qD,EAAOI,KAAK,UACR5xG,EAAMqj1B,cAAa,CAGrB,IAAI2G,EAASx4uB,EAAO6vuB,iBACf2I,GAAUA,EAAO3G,aAAe2G,EAAOlH,aAC1CtxuB,EAAO77C,SAEX,CAGJ,OAAOo0xB,CACT,CAxfAx3zB,EAAQ,MAARA,CAAoBwrzB,EAAU3kD,GA4G9BouD,EAAc/r1B,UAAU2l1B,UAAY,WAGlC,IAFA,IAAIvu0B,EAAUtX,KAAK0t1B,gBACfpkzB,EAAM,GACHhyB,GACLgyB,EAAI1nB,KAAKtK,GACTA,EAAUA,EAAQyO,KAEpB,OAAOujB,CACT,EACA,WACE,IACEvpB,OAAOC,eAAeis0B,EAAc/r1B,UAAW,SAAU,CACvD4f,IAAKos0B,EAAaC,WAAU,WAC1B,OAAOns1B,KAAK6l1B,WACd,GAAG,6EAAmF,YAE1F,CAAE,MAAOnrzB,GAAI,CACd,CARD,GAasB,oBAAX7W,QAAyBA,OAAO6q0B,aAAiE,oBAA3C7ypB,SAAS37L,UAAU2jB,OAAO6q0B,cACzFtC,EAAkBvwpB,SAAS37L,UAAU2jB,OAAO6q0B,aAC5C3u0B,OAAOC,eAAewi0B,EAAU3+zB,OAAO6q0B,YAAa,CAClD1n1B,MAAO,SAAeqd,GACpB,QAAI+n0B,EAAgBtm0B,KAAK9lB,KAAMqkB,IAC3BrkB,OAASwi1B,IACNn+zB,GAAUA,EAAOqh0B,0BAA0BuG,EACpD,KAGFG,EAAkB,SAAyB/n0B,GACzC,OAAOA,aAAkBrkB,IAC3B,EA+BFwi1B,EAASti1B,UAAU0xyB,KAAO,WACxBm1C,EAAe/m1B,KAAM,IAAIqs1B,EAC3B,EAyBA7J,EAASti1B,UAAUg3G,MAAQ,SAAU1tE,EAAO/K,EAAU8qG,GACpD,IAzNqBlkH,EAyNjB5gB,EAAQzE,KAAK0l1B,eACbppuB,GAAM,EACNgyuB,GAAS7p1B,EAAMyi1B,aA3NE7h0B,EA2N0BmkB,EA1NxC9H,EAAO61E,SAASlyF,IAAQA,aAAe6g0B,GAwO9C,OAbIoI,IAAU5szB,EAAO61E,SAAS/tE,KAC5BA,EAhOJ,SAA6BA,GAC3B,OAAO9H,EAAO3d,KAAKylB,EACrB,CA8NYk/yB,CAAoBl/yB,IAEN,oBAAb/K,IACT8qG,EAAK9qG,EACLA,EAAW,MAET6vzB,EAAO7vzB,EAAW,SAAmBA,IAAUA,EAAWh6B,EAAMsj1B,iBAClD,oBAAPx+sB,IAAmBA,EAAKmjtB,GAC/Bjo1B,EAAMoo1B,OArCZ,SAAuB52uB,EAAQszB,GAC7B,IAAI0krB,EAAK,IAAIu+B,EAEbzF,EAAe9wuB,EAAQg4sB,GACvBlvxB,EAAQiywB,SAASznqB,EAAI0krB,EACvB,CAgCoB0gC,CAAc3u1B,KAAMupI,IAAa+ktB,GA3BrD,SAAoBr4uB,EAAQxxG,EAAO+kC,EAAO+/F,GACxC,IAAI0krB,EAMJ,OALc,OAAVzkxB,EACFykxB,EAAK,IAAIs+B,EACiB,kBAAV/izB,GAAuB/kC,EAAMyi1B,aAC7Cj5B,EAAK,IAAI04B,EAAqB,QAAS,CAAC,SAAU,UAAWn9yB,KAE3DykxB,IACF84B,EAAe9wuB,EAAQg4sB,GACvBlvxB,EAAQiywB,SAASznqB,EAAI0krB,IACd,EAGX,CAc8D2gC,CAAW5u1B,KAAMyE,EAAO+kC,EAAO+/F,MACzF9kI,EAAMqn1B,YACNxvuB,EAiDJ,SAAuBrG,EAAQxxG,EAAO6p1B,EAAO9kzB,EAAO/K,EAAU8qG,GAC5D,IAAK+ktB,EAAO,CACV,IAAIO,EArBR,SAAqBpq1B,EAAO+kC,EAAO/K,GAC5Bh6B,EAAMyi1B,aAAsC,IAAxBzi1B,EAAMso1B,eAA4C,kBAAVvjzB,IAC/DA,EAAQ9H,EAAO3d,KAAKylB,EAAO/K,IAE7B,OAAO+K,CACT,CAgBmBslzB,CAAYrq1B,EAAO+kC,EAAO/K,GACrC+K,IAAUqlzB,IACZP,GAAQ,EACR7vzB,EAAW,SACX+K,EAAQqlzB,EAEZ,CACA,IAAIto0B,EAAM9hB,EAAMyi1B,WAAa,EAAI19yB,EAAM5oC,OACvC6D,EAAM7D,QAAU2lB,EAChB,IAAI+1F,EAAM73G,EAAM7D,OAAS6D,EAAMmh1B,cAE1BtpuB,IAAK73G,EAAMgm1B,WAAY,GAC5B,GAAIhm1B,EAAMuo1B,SAAWvo1B,EAAMwo1B,OAAQ,CACjC,IAAI3wnB,EAAO73N,EAAMop1B,oBACjBpp1B,EAAMop1B,oBAAsB,CAC1BrkzB,MAAOA,EACP/K,SAAUA,EACV6vzB,MAAOA,EACP/luB,SAAUghB,EACVxjH,KAAM,MAEJu2M,EACFA,EAAKv2M,KAAOthB,EAAMop1B,oBAElBpp1B,EAAMip1B,gBAAkBjp1B,EAAMop1B,oBAEhCpp1B,EAAMsp1B,sBAAwB,CAChC,MACEG,EAAQj4uB,EAAQxxG,GAAO,EAAO8hB,EAAKijB,EAAO/K,EAAU8qG,GAEtD,OAAOjtB,CACT,CAlFUyyuB,CAAc/u1B,KAAMyE,EAAO6p1B,EAAO9kzB,EAAO/K,EAAU8qG,IAEpDjtB,CACT,EACAkmuB,EAASti1B,UAAU8u1B,KAAO,WACxBhv1B,KAAK0l1B,eAAeuH,QACtB,EACAzK,EAASti1B,UAAU+u1B,OAAS,WAC1B,IAAIxq1B,EAAQzE,KAAK0l1B,eACbjh1B,EAAMwo1B,SACRxo1B,EAAMwo1B,SACDxo1B,EAAMuo1B,SAAYvo1B,EAAMwo1B,QAAWxo1B,EAAMyo1B,mBAAoBzo1B,EAAMip1B,iBAAiBC,EAAY3t1B,KAAMyE,GAE/G,EACA+90B,EAASti1B,UAAUgv1B,mBAAqB,SAA4BzwzB,GAGlE,GADwB,kBAAbA,IAAuBA,EAAWA,EAAS5e,iBAChD,CAAC,MAAO,OAAQ,QAAS,QAAS,SAAU,SAAU,OAAQ,QAAS,UAAW,WAAY,OAAOze,SAASq9B,EAAW,IAAI5e,gBAAkB,GAAI,MAAM,IAAI4s0B,EAAqBhuzB,GAExL,OADAz+B,KAAK0l1B,eAAeqC,gBAAkBtpzB,EAC/Bz+B,IACT,EACA+f,OAAOC,eAAewi0B,EAASti1B,UAAW,iBAAkB,CAI1DigB,YAAY,EACZL,IAAK,WACH,OAAO9f,KAAK0l1B,gBAAkB1l1B,KAAK0l1B,eAAeG,WACpD,IAQF9l0B,OAAOC,eAAewi0B,EAASti1B,UAAW,wBAAyB,CAIjEigB,YAAY,EACZL,IAAK,WACH,OAAO9f,KAAK0l1B,eAAeE,aAC7B,IAuKFpD,EAASti1B,UAAUwxyB,OAAS,SAAUlowB,EAAO/K,EAAU8qG,GACrDA,EAAG,IAAIs9sB,EAA2B,YACpC,EACArE,EAASti1B,UAAU+t1B,QAAU,KAC7BzL,EAASti1B,UAAU4P,IAAM,SAAU05B,EAAO/K,EAAU8qG,GAClD,IAAI9kI,EAAQzE,KAAK0l1B,eAmBjB,MAlBqB,oBAAVl8yB,GACT+/F,EAAK//F,EACLA,EAAQ,KACR/K,EAAW,MACkB,oBAAbA,IAChB8qG,EAAK9qG,EACLA,EAAW,MAEC,OAAV+K,QAA4BnhC,IAAVmhC,GAAqBxpC,KAAKk3G,MAAM1tE,EAAO/K,GAGzDh6B,EAAMwo1B,SACRxo1B,EAAMwo1B,OAAS,EACfjt1B,KAAKiv1B,UAIFxq1B,EAAMoo1B,QAyDb,SAAqB52uB,EAAQxxG,EAAO8kI,GAClC9kI,EAAMoo1B,QAAS,EACfS,EAAYr3uB,EAAQxxG,GAChB8kI,IACE9kI,EAAM0mD,SAAUpsB,EAAQiywB,SAASznqB,GAAStzB,EAAOm4sB,KAAK,SAAU7krB,IAEtE9kI,EAAMu0f,OAAQ,EACd/iZ,EAAOh2F,UAAW,CACpB,CAjEqBkv0B,CAAYnv1B,KAAMyE,EAAO8kI,GACrCvpI,IACT,EACA+f,OAAOC,eAAewi0B,EAASti1B,UAAW,iBAAkB,CAI1DigB,YAAY,EACZL,IAAK,WACH,OAAO9f,KAAK0l1B,eAAe9k1B,MAC7B,IAqEFmf,OAAOC,eAAewi0B,EAASti1B,UAAW,YAAa,CAIrDigB,YAAY,EACZL,IAAK,WACH,YAA4BzX,IAAxBrI,KAAK0l1B,gBAGF1l1B,KAAK0l1B,eAAet+nB,SAC7B,EACApqL,IAAK,SAAah2B,GAGXhH,KAAK0l1B,iBAMV1l1B,KAAK0l1B,eAAet+nB,UAAYpgN,EAClC,IAEFw70B,EAASti1B,UAAUk6D,QAAUosxB,EAAYpsxB,QACzCooxB,EAASti1B,UAAU2o1B,WAAarC,EAAYsC,UAC5CtG,EAASti1B,UAAUgo1B,SAAW,SAAU7j1B,EAAKklI,GAC3CA,EAAGllI,EACL,0CC9nBI+q1B,YACJ,SAASlq0B,EAAgBG,EAAKJ,EAAKje,GAA4L,OAAnLie,EAC5C,SAAwB82B,GAAO,IAAI92B,EACnC,SAAsBib,EAAO+wK,GAAQ,GAAqB,kBAAV/wK,GAAgC,OAAVA,EAAgB,OAAOA,EAAO,IAAImvzB,EAAOnvzB,EAAMrc,OAAO+zF,aAAc,QAAavvG,IAATgn1B,EAAoB,CAAE,IAAIj1uB,EAAMi1uB,EAAKvp0B,KAAKoa,EAAO+wK,GAAQ,WAAY,GAAmB,kBAAR72F,EAAkB,OAAOA,EAAK,MAAM,IAAIl2F,UAAU,+CAAiD,CAAE,OAAiB,WAAT+sL,EAAoBvwM,OAASg0B,QAAQwL,EAAQ,CAD/UovzB,CAAavzyB,EAAK,UAAW,MAAsB,kBAAR92B,EAAmBA,EAAMvkB,OAAOukB,EAAM,CADxEsq0B,CAAetq0B,MAAiBI,EAAOtF,OAAOC,eAAeqF,EAAKJ,EAAK,CAAEje,MAAOA,EAAOmZ,YAAY,EAAMD,cAAc,EAAMD,UAAU,IAAkBoF,EAAIJ,GAAOje,EAAgBqe,CAAK,CAG3O,IAAI8lC,EAAWn0B,EAAQ,OACnBw4zB,EAAe3r0B,OAAO,eACtB4r0B,EAAc5r0B,OAAO,cACrB6r0B,EAAS7r0B,OAAO,SAChB8r0B,EAAS9r0B,OAAO,SAChB+r0B,EAAe/r0B,OAAO,eACtBgs0B,EAAiBhs0B,OAAO,iBACxBis0B,EAAUjs0B,OAAO,UACrB,SAASks0B,EAAiB/o1B,EAAOgf,GAC/B,MAAO,CACLhf,MAAOA,EACPgf,KAAMA,EAEV,CACA,SAASgq0B,EAAeps0B,GACtB,IAAIhB,EAAUgB,EAAK4r0B,GACnB,GAAgB,OAAZ5s0B,EAAkB,CACpB,IAAIjZ,EAAOia,EAAKks0B,GAASnmyB,OAIZ,OAAThgD,IACFia,EAAKgs0B,GAAgB,KACrBhs0B,EAAK4r0B,GAAgB,KACrB5r0B,EAAK6r0B,GAAe,KACpB7s0B,EAAQmt0B,EAAiBpm1B,GAAM,IAEnC,CACF,CACA,SAASsm1B,EAAWrs0B,GAGlBmb,EAAQiywB,SAASg/C,EAAgBps0B,EACnC,CAYA,IAAIss0B,EAAyBnw0B,OAAO67K,gBAAe,WAAa,IAC5Du0pB,EAAuCpw0B,OAAO0Y,gBAmD/CvT,EAnD+Dkq0B,EAAwB,CACxF,UAAIn5uB,GACF,OAAOj2G,KAAK8v1B,EACd,EACA/p0B,KAAM,WACJ,IAAI5C,EAAQnjB,KAGRuE,EAAQvE,KAAK0v1B,GACjB,GAAc,OAAVnr1B,EACF,OAAOyc,QAAQyB,OAAOle,GAExB,GAAIvE,KAAK2v1B,GACP,OAAO3u0B,QAAQ4B,QAAQmt0B,OAAiB1n1B,GAAW,IAErD,GAAIrI,KAAK8v1B,GAAS1ooB,UAKhB,OAAO,IAAIpmM,SAAQ,SAAU4B,EAASH,GACpCsc,EAAQiywB,UAAS,WACX7txB,EAAMus0B,GACRjt0B,EAAOU,EAAMus0B,IAEb9s0B,EAAQmt0B,OAAiB1n1B,GAAW,GAExC,GACF,IAOF,IACI88L,EADAirpB,EAAcpw1B,KAAK4v1B,GAEvB,GAAIQ,EACFjrpB,EAAU,IAAInkL,QAlDpB,SAAqBov0B,EAAaxs0B,GAChC,OAAO,SAAUhB,EAASH,GACxB2t0B,EAAYpi0B,MAAK,WACXpK,EAAK+r0B,GACP/s0B,EAAQmt0B,OAAiB1n1B,GAAW,IAGtCub,EAAKis0B,GAAgBjt0B,EAASH,EAChC,GAAGA,EACL,CACF,CAwC4B4t0B,CAAYD,EAAapw1B,WAC1C,CAGL,IAAI2J,EAAO3J,KAAK8v1B,GAASnmyB,OACzB,GAAa,OAAThgD,EACF,OAAOqX,QAAQ4B,QAAQmt0B,EAAiBpm1B,GAAM,IAEhDw7L,EAAU,IAAInkL,QAAQhhB,KAAK6v1B,GAC7B,CAEA,OADA7v1B,KAAK4v1B,GAAgBzqpB,EACdA,CACT,GACwCthL,OAAO+X,eAAe,WAC9D,OAAO57B,IACT,IAAIklB,EAAgBkq0B,EAAuB,UAAU,WACnD,IAAIkB,EAAStw1B,KAIb,OAAO,IAAIghB,SAAQ,SAAU4B,EAASH,GACpC6t0B,EAAOR,GAAS11xB,QAAQ,MAAM,SAAU/1D,GAClCA,EACFoe,EAAOpe,GAGTue,EAAQmt0B,OAAiB1n1B,GAAW,GACtC,GACF,GACF,IAAI+m1B,GAAwBc,GA4D5BjroB,EAAOrtL,QA3DiC,SAA2Cq+E,GACjF,IAAIs6uB,EACAzs0B,EAAW/D,OAAOgZ,OAAOo3zB,GAA4Djr0B,EAArBqr0B,EAAiB,CAAC,EAAmCT,EAAS,CAChI9o1B,MAAOivG,EACPh2F,UAAU,IACRiF,EAAgBqr0B,EAAgBf,EAAc,CAChDxo1B,MAAO,KACPiZ,UAAU,IACRiF,EAAgBqr0B,EAAgBd,EAAa,CAC/Czo1B,MAAO,KACPiZ,UAAU,IACRiF,EAAgBqr0B,EAAgBb,EAAQ,CAC1C1o1B,MAAO,KACPiZ,UAAU,IACRiF,EAAgBqr0B,EAAgBZ,EAAQ,CAC1C3o1B,MAAOivG,EAAO6vuB,eAAeyB,WAC7Btn0B,UAAU,IACRiF,EAAgBqr0B,EAAgBV,EAAgB,CAClD7o1B,MAAO,SAAe4b,EAASH,GAC7B,IAAI9Y,EAAOma,EAASgs0B,GAASnmyB,OACzBhgD,GACFma,EAAS8r0B,GAAgB,KACzB9r0B,EAAS0r0B,GAAgB,KACzB1r0B,EAAS2r0B,GAAe,KACxB7s0B,EAAQmt0B,EAAiBpm1B,GAAM,MAE/Bma,EAAS0r0B,GAAgB5s0B,EACzBkB,EAAS2r0B,GAAeht0B,EAE5B,EACAxC,UAAU,IACRsw0B,IA0BJ,OAzBAzs0B,EAAS8r0B,GAAgB,KACzBzkyB,EAAS8qD,GAAQ,SAAU5xG,GACzB,GAAIA,GAAoB,+BAAbA,EAAI4iB,KAAuC,CACpD,IAAIxE,EAASqB,EAAS2r0B,GAUtB,OAPe,OAAXht0B,IACFqB,EAAS8r0B,GAAgB,KACzB9r0B,EAAS0r0B,GAAgB,KACzB1r0B,EAAS2r0B,GAAe,KACxBht0B,EAAOpe,SAETyf,EAAS4r0B,GAAUrr1B,EAErB,CACA,IAAIue,EAAUkB,EAAS0r0B,GACP,OAAZ5s0B,IACFkB,EAAS8r0B,GAAgB,KACzB9r0B,EAAS0r0B,GAAgB,KACzB1r0B,EAAS2r0B,GAAe,KACxB7s0B,EAAQmt0B,OAAiB1n1B,GAAW,KAEtCyb,EAAS6r0B,IAAU,CACrB,IACA15uB,EAAO/B,GAAG,WAAY+7uB,EAAWzv1B,KAAK,KAAMsjB,IACrCA,CACT,sCChLA,SAASM,EAAQC,EAAQC,GAAkB,IAAIC,EAAOxE,OAAOwE,KAAKF,GAAS,GAAItE,OAAOyE,sBAAuB,CAAE,IAAIC,EAAU1E,OAAOyE,sBAAsBH,GAASC,IAAmBG,EAAUA,EAAQhQ,QAAO,SAAUiQ,GAAO,OAAO3E,OAAO4E,yBAAyBN,EAAQK,GAAKvE,UAAY,KAAKoE,EAAK3C,KAAKgD,MAAML,EAAME,EAAU,CAAE,OAAOF,CAAM,CACpV,SAASM,EAAcjE,GAAU,IAAK,IAAI5f,EAAI,EAAGA,EAAI8jB,UAAUlkB,OAAQI,IAAK,CAAE,IAAI+jB,EAAS,MAAQD,UAAU9jB,GAAK8jB,UAAU9jB,GAAK,CAAC,EAAGA,EAAI,EAAIojB,EAAQrE,OAAOgF,IAAS,GAAIC,SAAQ,SAAUC,GAAOC,EAAgBtE,EAAQqE,EAAKF,EAAOE,GAAO,IAAKlF,OAAOoF,0BAA4BpF,OAAOqF,iBAAiBxE,EAAQb,OAAOoF,0BAA0BJ,IAAWX,EAAQrE,OAAOgF,IAASC,SAAQ,SAAUC,GAAOlF,OAAOC,eAAeY,EAAQqE,EAAKlF,OAAO4E,yBAAyBI,EAAQE,GAAO,GAAI,CAAE,OAAOrE,CAAQ,CACzf,SAASsE,EAAgBG,EAAKJ,EAAKje,GAA4L,OAAnLie,EAAMsq0B,EAAetq0B,MAAiBI,EAAOtF,OAAOC,eAAeqF,EAAKJ,EAAK,CAAEje,MAAOA,EAAOmZ,YAAY,EAAMD,cAAc,EAAMD,UAAU,IAAkBoF,EAAIJ,GAAOje,EAAgBqe,CAAK,CAE3O,SAASmr0B,EAAkB5v0B,EAAQ7T,GAAS,IAAK,IAAI/L,EAAI,EAAGA,EAAI+L,EAAMnM,OAAQI,IAAK,CAAE,IAAIwpN,EAAaz9M,EAAM/L,GAAIwpN,EAAWrqM,WAAaqqM,EAAWrqM,aAAc,EAAOqqM,EAAWtqM,cAAe,EAAU,UAAWsqM,IAAYA,EAAWvqM,UAAW,GAAMF,OAAOC,eAAeY,EAAQ2u0B,EAAe/koB,EAAWvlM,KAAMulM,EAAa,CAAE,CAE5U,SAAS+koB,EAAexzyB,GAAO,IAAI92B,EACnC,SAAsBib,EAAO+wK,GAAQ,GAAqB,kBAAV/wK,GAAgC,OAAVA,EAAgB,OAAOA,EAAO,IAAImvzB,EAAOnvzB,EAAMrc,OAAO+zF,aAAc,QAAavvG,IAATgn1B,EAAoB,CAAE,IAAIj1uB,EAAMi1uB,EAAKvp0B,KAAKoa,EAAO+wK,GAAQ,WAAY,GAAmB,kBAAR72F,EAAkB,OAAOA,EAAK,MAAM,IAAIl2F,UAAU,+CAAiD,CAAE,OAAiB,WAAT+sL,EAAoBvwM,OAASg0B,QAAQwL,EAAQ,CAD/UovzB,CAAavzyB,EAAK,UAAW,MAAsB,kBAAR92B,EAAmBA,EAAMvkB,OAAOukB,EAAM,CAE1H,IACEyc,EADa1K,EAAQ,OACH0K,OAElBq6E,EADc/kF,EAAQ,OACF+kF,QAClB00uB,EAAS10uB,GAAWA,EAAQ00uB,QAAU,UAI1CxroB,EAAOrtL,QAAuB,WAC5B,SAAS2uzB,KAdX,SAAyBp9rB,EAAUunsB,GAAe,KAAMvnsB,aAAoBunsB,GAAgB,MAAM,IAAIxs0B,UAAU,oCAAwC,CAepJys0B,CAAgB3w1B,KAAMum1B,GACtBvm1B,KAAKqqH,KAAO,KACZrqH,KAAKipd,KAAO,KACZjpd,KAAKY,OAAS,CAChB,CAjBF,IAAsB8v1B,EAAaE,EAAYC,EA8K7C,OA9KoBH,EAkBPnK,GAlBoBqK,EAkBR,CAAC,CACxB3r0B,IAAK,OACLje,MAAO,SAAcwZ,GACnB,IAAIuB,EAAQ,CACVpY,KAAM6W,EACNuF,KAAM,MAEJ/lB,KAAKY,OAAS,EAAGZ,KAAKipd,KAAKljc,KAAOhE,EAAW/hB,KAAKqqH,KAAOtoG,EAC7D/hB,KAAKipd,KAAOlnc,IACV/hB,KAAKY,MACT,GACC,CACDqkB,IAAK,UACLje,MAAO,SAAiBwZ,GACtB,IAAIuB,EAAQ,CACVpY,KAAM6W,EACNuF,KAAM/lB,KAAKqqH,MAEO,IAAhBrqH,KAAKY,SAAcZ,KAAKipd,KAAOlnc,GACnC/hB,KAAKqqH,KAAOtoG,IACV/hB,KAAKY,MACT,GACC,CACDqkB,IAAK,QACLje,MAAO,WACL,GAAoB,IAAhBhH,KAAKY,OAAT,CACA,IAAI07G,EAAMt8G,KAAKqqH,KAAK1gH,KAGpB,OAFoB,IAAhB3J,KAAKY,OAAcZ,KAAKqqH,KAAOrqH,KAAKipd,KAAO,KAAUjpd,KAAKqqH,KAAOrqH,KAAKqqH,KAAKtkG,OAC7E/lB,KAAKY,OACA07G,CAJsB,CAK/B,GACC,CACDr3F,IAAK,QACLje,MAAO,WACLhH,KAAKqqH,KAAOrqH,KAAKipd,KAAO,KACxBjpd,KAAKY,OAAS,CAChB,GACC,CACDqkB,IAAK,OACLje,MAAO,SAAckyB,GACnB,GAAoB,IAAhBl5B,KAAKY,OAAc,MAAO,GAG9B,IAFA,IAAI+3B,EAAI34B,KAAKqqH,KACT/N,EAAM,GAAK3jF,EAAEhvB,KACVgvB,EAAIA,EAAE5S,MAAMu2F,GAAOpjF,EAAIP,EAAEhvB,KAChC,OAAO2yG,CACT,GACC,CACDr3F,IAAK,SACLje,MAAO,SAAgBnG,GACrB,GAAoB,IAAhBb,KAAKY,OAAc,OAAO8gC,EAAO05E,MAAM,GAI3C,IAHA,IA5Dc9rG,EAAKsR,EAAQmlC,EA4DvBu2D,EAAM56E,EAAOo1E,YAAYj2G,IAAM,GAC/B83B,EAAI34B,KAAKqqH,KACTrpH,EAAI,EACD23B,GA/DOrpB,EAgEDqpB,EAAEhvB,KAhEIiX,EAgEE07F,EAhEMv2D,EAgED/kD,EA/D9B0gC,EAAOxhC,UAAUu3G,KAAK3xF,KAAKxW,EAAKsR,EAAQmlC,GAgElC/kD,GAAK23B,EAAEhvB,KAAK/I,OACZ+3B,EAAIA,EAAE5S,KAER,OAAOu2F,CACT,GAGC,CACDr3F,IAAK,UACLje,MAAO,SAAiBnG,EAAGiw1B,GACzB,IAAIx0uB,EAYJ,OAXIz7G,EAAIb,KAAKqqH,KAAK1gH,KAAK/I,QAErB07G,EAAMt8G,KAAKqqH,KAAK1gH,KAAKyc,MAAM,EAAGvlB,GAC9Bb,KAAKqqH,KAAK1gH,KAAO3J,KAAKqqH,KAAK1gH,KAAKyc,MAAMvlB,IAGtCy7G,EAFSz7G,IAAMb,KAAKqqH,KAAK1gH,KAAK/I,OAExBZ,KAAKi8B,QAGL60zB,EAAa9w1B,KAAK+w1B,WAAWlw1B,GAAKb,KAAKgx1B,WAAWnw1B,GAEnDy7G,CACT,GACC,CACDr3F,IAAK,QACLje,MAAO,WACL,OAAOhH,KAAKqqH,KAAK1gH,IACnB,GAGC,CACDsb,IAAK,aACLje,MAAO,SAAoBnG,GACzB,IAAI83B,EAAI34B,KAAKqqH,KACTppH,EAAI,EACJq7G,EAAM3jF,EAAEhvB,KAEZ,IADA9I,GAAKy7G,EAAI17G,OACF+3B,EAAIA,EAAE5S,MAAM,CACjB,IAAI4hB,EAAMhP,EAAEhvB,KACRsn1B,EAAKpw1B,EAAI8mC,EAAI/mC,OAAS+mC,EAAI/mC,OAASC,EAGvC,GAFIow1B,IAAOtpzB,EAAI/mC,OAAQ07G,GAAO30E,EAAS20E,GAAO30E,EAAIvhB,MAAM,EAAGvlB,GAEjD,KADVA,GAAKow1B,GACQ,CACPA,IAAOtpzB,EAAI/mC,UACXK,EACE03B,EAAE5S,KAAM/lB,KAAKqqH,KAAO1xF,EAAE5S,KAAU/lB,KAAKqqH,KAAOrqH,KAAKipd,KAAO,OAE5Djpd,KAAKqqH,KAAO1xF,EACZA,EAAEhvB,KAAOg+B,EAAIvhB,MAAM6q0B,IAErB,KACF,GACEhw1B,CACJ,CAEA,OADAjB,KAAKY,QAAUK,EACRq7G,CACT,GAGC,CACDr3F,IAAK,aACLje,MAAO,SAAoBnG,GACzB,IAAIy7G,EAAM56E,EAAOo1E,YAAYj2G,GACzB83B,EAAI34B,KAAKqqH,KACTppH,EAAI,EAGR,IAFA03B,EAAEhvB,KAAK8tG,KAAK6E,GACZz7G,GAAK83B,EAAEhvB,KAAK/I,OACL+3B,EAAIA,EAAE5S,MAAM,CACjB,IAAIkgC,EAAMttB,EAAEhvB,KACRsn1B,EAAKpw1B,EAAIolD,EAAIrlD,OAASqlD,EAAIrlD,OAASC,EAGvC,GAFAolD,EAAIwxD,KAAK6E,EAAKA,EAAI17G,OAASC,EAAG,EAAGow1B,GAEvB,KADVpw1B,GAAKow1B,GACQ,CACPA,IAAOhryB,EAAIrlD,UACXK,EACE03B,EAAE5S,KAAM/lB,KAAKqqH,KAAO1xF,EAAE5S,KAAU/lB,KAAKqqH,KAAOrqH,KAAKipd,KAAO,OAE5Djpd,KAAKqqH,KAAO1xF,EACZA,EAAEhvB,KAAOs8C,EAAI7/B,MAAM6q0B,IAErB,KACF,GACEhw1B,CACJ,CAEA,OADAjB,KAAKY,QAAUK,EACRq7G,CACT,GAGC,CACDr3F,IAAKwr0B,EACLzp1B,MAAO,SAAe0zB,EAAGpwB,GACvB,OAAOyxG,EAAQ/7G,KAAM6kB,EAAcA,EAAc,CAAC,EAAGva,GAAU,CAAC,EAAG,CAEjE++e,MAAO,EAEP6nW,eAAe,IAEnB,MA5K0EV,EAAkBE,EAAYxw1B,UAAW0w1B,GAAiBC,GAAaL,EAAkBE,EAAaG,GAAc9w0B,OAAOC,eAAe0w0B,EAAa,YAAa,CAAEzw0B,UAAU,IA8KrPsm0B,CACT,CApK8B,qDCiC9B,SAAS4K,EAAoBttuB,EAAMx/G,GACjC+s1B,EAAYvtuB,EAAMx/G,GAClBgt1B,EAAYxtuB,EACd,CACA,SAASwtuB,EAAYxtuB,GACfA,EAAK6huB,iBAAmB7huB,EAAK6huB,eAAemC,WAC5ChkuB,EAAKiiuB,iBAAmBjiuB,EAAKiiuB,eAAe+B,WAChDhkuB,EAAKxN,KAAK,QACZ,CAkBA,SAAS+6uB,EAAYvtuB,EAAMx/G,GACzBw/G,EAAKxN,KAAK,QAAShyG,EACrB,CAYA4gN,EAAOrtL,QAAU,CACfwiC,QAzFF,SAAiB/1D,EAAKklI,GACpB,IAAIpmH,EAAQnjB,KACRsx1B,EAAoBtx1B,KAAK8l1B,gBAAkB9l1B,KAAK8l1B,eAAe1+nB,UAC/DmqoB,EAAoBvx1B,KAAK0l1B,gBAAkB1l1B,KAAK0l1B,eAAet+nB,UACnE,OAAIkqoB,GAAqBC,GACnBhotB,EACFA,EAAGllI,GACMA,IACJrE,KAAK0l1B,eAEE1l1B,KAAK0l1B,eAAe6H,eAC9Bvt1B,KAAK0l1B,eAAe6H,cAAe,EACnCxuzB,EAAQiywB,SAASogD,EAAapx1B,KAAMqE,IAHpC06B,EAAQiywB,SAASogD,EAAapx1B,KAAMqE,IAMjCrE,OAMLA,KAAK8l1B,iBACP9l1B,KAAK8l1B,eAAe1+nB,WAAY,GAI9BpnN,KAAK0l1B,iBACP1l1B,KAAK0l1B,eAAet+nB,WAAY,GAElCpnN,KAAKko1B,SAAS7j1B,GAAO,MAAM,SAAUA,IAC9BklI,GAAMllI,EACJ8e,EAAMui0B,eAECvi0B,EAAMui0B,eAAe6H,aAI/BxuzB,EAAQiywB,SAASqgD,EAAalu0B,IAH9BA,EAAMui0B,eAAe6H,cAAe,EACpCxuzB,EAAQiywB,SAASmgD,EAAqBhu0B,EAAO9e,IAH7C06B,EAAQiywB,SAASmgD,EAAqBhu0B,EAAO9e,GAOtCklI,GACTxqG,EAAQiywB,SAASqgD,EAAalu0B,GAC9BomH,EAAGllI,IAEH06B,EAAQiywB,SAASqgD,EAAalu0B,EAElC,IACOnjB,KACT,EA2CE8o1B,UAjCF,WACM9o1B,KAAK8l1B,iBACP9l1B,KAAK8l1B,eAAe1+nB,WAAY,EAChCpnN,KAAK8l1B,eAAe0B,SAAU,EAC9Bxn1B,KAAK8l1B,eAAe9sV,OAAQ,EAC5Bh5f,KAAK8l1B,eAAeyB,YAAa,GAE/Bvn1B,KAAK0l1B,iBACP1l1B,KAAK0l1B,eAAet+nB,WAAY,EAChCpnN,KAAK0l1B,eAAe1sV,OAAQ,EAC5Bh5f,KAAK0l1B,eAAemH,QAAS,EAC7B7s1B,KAAK0l1B,eAAekH,aAAc,EAClC5s1B,KAAK0l1B,eAAeoI,aAAc,EAClC9t1B,KAAK0l1B,eAAev6xB,UAAW,EAC/BnrD,KAAK0l1B,eAAe6H,cAAe,EAEvC,EAkBExG,eAdF,SAAwB9wuB,EAAQ5xG,GAO9B,IAAIoq1B,EAASx4uB,EAAO6vuB,eAChB6D,EAAS1zuB,EAAOyvuB,eAChB+I,GAAUA,EAAO3G,aAAe6B,GAAUA,EAAO7B,YAAa7xuB,EAAO77C,QAAQ/1D,GAAU4xG,EAAOI,KAAK,QAAShyG,EAClH,uCCrFA,IAAImt1B,EAA6Bx6zB,EAAAA,OAAAA,EAAiCw6zB,2BAYlE,SAAS3k0B,IAAQ,CAoEjBo4L,EAAOrtL,QAhEP,SAAS65zB,EAAIx7uB,EAAQ3mF,EAAMi5F,GACzB,GAAoB,oBAATj5F,EAAqB,OAAOmi0B,EAAIx7uB,EAAQ,KAAM3mF,GACpDA,IAAMA,EAAO,CAAC,GACnBi5F,EAlBF,SAAcA,GACZ,IAAImpuB,GAAS,EACb,OAAO,WACL,IAAIA,EAAJ,CACAA,GAAS,EACT,IAAK,IAAIrp0B,EAAOvD,UAAUlkB,OAAQ6nB,EAAO,IAAInG,MAAM+F,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAC/EE,EAAKF,GAAQzD,UAAUyD,GAEzBggG,EAAS3jG,MAAM5kB,KAAMyoB,EALH,CAMpB,CACF,CAQa2lyB,CAAK7lsB,GAAY17F,GAC5B,IAAIokxB,EAAW3hxB,EAAK2hxB,WAA8B,IAAlB3hxB,EAAK2hxB,UAAsBh7rB,EAAOg7rB,SAC9DhxxB,EAAWqP,EAAKrP,WAA8B,IAAlBqP,EAAKrP,UAAsBg2F,EAAOh2F,SAC9D0x0B,EAAiB,WACd17uB,EAAOh2F,UAAUoq0B,GACxB,EACIuH,EAAgB37uB,EAAOyvuB,gBAAkBzvuB,EAAOyvuB,eAAev6xB,SAC/Dk/xB,EAAW,WACbpq0B,GAAW,EACX2x0B,GAAgB,EACX3gD,GAAU1orB,EAASziG,KAAKmwF,EAC/B,EACI47uB,EAAgB57uB,EAAO6vuB,gBAAkB7vuB,EAAO6vuB,eAAeyB,WAC/D9B,EAAQ,WACVx0C,GAAW,EACX4gD,GAAgB,EACX5x0B,GAAUsoG,EAASziG,KAAKmwF,EAC/B,EACIn3E,EAAU,SAAiBz6B,GAC7BkkH,EAASziG,KAAKmwF,EAAQ5xG,EACxB,EACIwivB,EAAU,WACZ,IAAIxivB,EACJ,OAAI4syB,IAAa4gD,GACV57uB,EAAO6vuB,gBAAmB7vuB,EAAO6vuB,eAAe9sV,QAAO30f,EAAM,IAAImt1B,GAC/DjpuB,EAASziG,KAAKmwF,EAAQ5xG,IAE3B4b,IAAa2x0B,GACV37uB,EAAOyvuB,gBAAmBzvuB,EAAOyvuB,eAAe1sV,QAAO30f,EAAM,IAAImt1B,GAC/DjpuB,EAASziG,KAAKmwF,EAAQ5xG,SAF/B,CAIF,EACIyt1B,EAAY,WACd77uB,EAAOu7F,IAAIt9F,GAAG,SAAUm2uB,EAC1B,EAcA,OAtDF,SAAmBp0uB,GACjB,OAAOA,EAAO87uB,WAAqC,oBAAjB97uB,EAAO5D,KAC3C,CAuCM2/uB,CAAU/7uB,GAIHh2F,IAAag2F,EAAOyvuB,iBAE7BzvuB,EAAO/B,GAAG,MAAOy9uB,GACjB17uB,EAAO/B,GAAG,QAASy9uB,KANnB17uB,EAAO/B,GAAG,WAAYm2uB,GACtBp0uB,EAAO/B,GAAG,QAAS2yoB,GACf5woB,EAAOu7F,IAAKsgpB,IAAiB77uB,EAAO/B,GAAG,UAAW49uB,IAMxD77uB,EAAO/B,GAAG,MAAOuxuB,GACjBxvuB,EAAO/B,GAAG,SAAUm2uB,IACD,IAAf/6zB,EAAK/qB,OAAiB0xG,EAAO/B,GAAG,QAASp1E,GAC7Cm3E,EAAO/B,GAAG,QAAS2yoB,GACZ,WACL5woB,EAAO2+E,eAAe,WAAYy1pB,GAClCp0uB,EAAO2+E,eAAe,QAASiyjB,GAC/B5woB,EAAO2+E,eAAe,UAAWk9pB,GAC7B77uB,EAAOu7F,KAAKv7F,EAAOu7F,IAAI5c,eAAe,SAAUy1pB,GACpDp0uB,EAAO2+E,eAAe,MAAO+8pB,GAC7B17uB,EAAO2+E,eAAe,QAAS+8pB,GAC/B17uB,EAAO2+E,eAAe,SAAUy1pB,GAChCp0uB,EAAO2+E,eAAe,MAAO6wpB,GAC7BxvuB,EAAO2+E,eAAe,QAAS91J,GAC/Bm3E,EAAO2+E,eAAe,QAASiyjB,EACjC,CACF,qBCpFA5hiB,EAAOrtL,QAAU,WACf,MAAM,IAAIz3B,MAAM,gDAClB,sCCGA,IAAIsx1B,EASJ,IAAI/K,EAAiB1vzB,EAAAA,OAAAA,EACnBi7zB,EAAmBvL,EAAeuL,iBAClC3F,EAAuB5F,EAAe4F,qBACxC,SAASz/zB,EAAKxoB,GAEZ,GAAIA,EAAK,MAAMA,CACjB,CA+BA,SAASyhB,EAAK6C,GACZA,GACF,CACA,SAASipxB,EAAK7txB,EAAM2pH,GAClB,OAAO3pH,EAAK6txB,KAAKlkqB,EACnB,CA6BAu3E,EAAOrtL,QAvBP,WACE,IAAK,IAAIvP,EAAOvD,UAAUlkB,OAAQkwyB,EAAU,IAAIxuxB,MAAM+F,GAAOE,EAAO,EAAGA,EAAOF,EAAME,IAClFuoxB,EAAQvoxB,GAAQzD,UAAUyD,GAE5B,IAKIhkB,EALAgkH,EATN,SAAqBuorB,GACnB,OAAKA,EAAQlwyB,OAC8B,oBAAhCkwyB,EAAQA,EAAQlwyB,OAAS,GAA0BisB,EACvDikxB,EAAQlxxB,MAFaiN,CAG9B,CAKiBql0B,CAAYphD,GAE3B,GADIxuxB,MAAMC,QAAQuuxB,EAAQ,MAAKA,EAAUA,EAAQ,IAC7CA,EAAQlwyB,OAAS,EACnB,MAAM,IAAIqx1B,EAAiB,WAG7B,IAAIE,EAAWrhD,EAAQ5gyB,KAAI,SAAU+lG,EAAQj1G,GAC3C,IAAIwm1B,EAAUxm1B,EAAI8vyB,EAAQlwyB,OAAS,EAEnC,OAnDJ,SAAmBq1G,EAAQuxuB,EAASwF,EAASzkuB,GAC3CA,EAnBF,SAAcA,GACZ,IAAImpuB,GAAS,EACb,OAAO,WACDA,IACJA,GAAS,EACTnpuB,EAAS3jG,WAAM,EAAQE,WACzB,CACF,CAYaspyB,CAAK7lsB,GAChB,IAAIy/nB,GAAS,EACb/xoB,EAAO/B,GAAG,SAAS,WACjB8zoB,GAAS,CACX,SACY3/uB,IAARop1B,IAAmBA,EAAMz6zB,EAAQ,QACrCy6zB,EAAIx7uB,EAAQ,CACVg7rB,SAAUu2C,EACVvn0B,SAAU+s0B,IACT,SAAU3o1B,GACX,GAAIA,EAAK,OAAOkkH,EAASlkH,GACzB2jvB,GAAS,EACTz/nB,GACF,IACA,IAAI6+F,GAAY,EAChB,OAAO,SAAU/iN,GACf,IAAI2jvB,IACA5giB,EAIJ,OAHAA,GAAY,EAtBhB,SAAmBnxG,GACjB,OAAOA,EAAO87uB,WAAqC,oBAAjB97uB,EAAO5D,KAC3C,CAuBQ2/uB,CAAU/7uB,GAAgBA,EAAO5D,QACP,oBAAnB4D,EAAO77C,QAA+B67C,EAAO77C,eACxDmuD,EAASlkH,GAAO,IAAIio1B,EAAqB,QAC3C,CACF,CAyBW8F,CAAUn8uB,EAAQuxuB,EADXxm1B,EAAI,GACyB,SAAUqD,GAC9CE,IAAOA,EAAQF,GAChBA,GAAK8t1B,EAASnt0B,QAAQc,GACtB0h0B,IACJ2K,EAASnt0B,QAAQc,GACjByiG,EAAShkH,GACX,GACF,IACA,OAAOusyB,EAAQ5uxB,OAAO0vxB,EACxB,sCClFA,IAAIygD,EAAwBr7zB,EAAAA,OAAAA,EAAiCq7zB,sBAiB7DptoB,EAAOrtL,QAAU,CACf6uzB,iBAdF,SAA0Bhi1B,EAAO6F,EAASgo1B,EAAWrL,GACnD,IAAIsL,EAJN,SAA2Bjo1B,EAAS280B,EAAUqL,GAC5C,OAAgC,MAAzBho1B,EAAQs70B,cAAwBt70B,EAAQs70B,cAAgBqB,EAAW380B,EAAQgo1B,GAAa,IACjG,CAEYE,CAAkBlo1B,EAAS280B,EAAUqL,GAC/C,GAAW,MAAPC,EAAa,CACf,IAAMn2uB,SAASm2uB,IAAQ3pzB,KAAK8Y,MAAM6wyB,KAASA,GAAQA,EAAM,EAEvD,MAAM,IAAIF,EADCpL,EAAWqL,EAAY,gBACIC,GAExC,OAAO3pzB,KAAK8Y,MAAM6wyB,EACpB,CAGA,OAAO9t1B,EAAMyi1B,WAAa,GAAK,KACjC,0BClBAjioB,EAAOrtL,QAAU,EAAjBqtL,OAAAA,oCCAArtL,EAAUqtL,EAAOrtL,QAAU,EAAjBqtL,QACF44kB,OAASjmwB,EACjBA,EAAQo+E,SAAWp+E,EACnBA,EAAQ4qzB,SAAW,EAAnB5qzB,OACAA,EAAQ2tzB,OAAS,EAAjB3tzB,OACAA,EAAQ4jzB,UAAY,EAApB5jzB,OACAA,EAAQm5wB,YAAc,EAAtBn5wB,OACAA,EAAQuzB,SAAW,EAAnBvzB,OACAA,EAAQ66zB,SAAW,EAAnB76zB,2CCNA,IAAI8J,EAAS1K,EAAAA,OAAAA,OACT07zB,EAAa17zB,EAAAA,OAAAA,WAIjB,SAAS27zB,EAAS5x1B,EAAGy3B,GAGnB,IAAKkJ,EAAO61E,SAASx2G,KAAO2gC,EAAO61E,SAAS/+E,GAC1C,OAAO,EAMT,GAAIz3B,EAAEH,SAAW43B,EAAE53B,OACjB,OAAO,EAIT,IADA,IAAIK,EAAI,EACCD,EAAI,EAAGA,EAAID,EAAEH,OAAQI,IAE5BC,GAAKF,EAAEC,GAAKw3B,EAAEx3B,GAEhB,OAAa,IAANC,CACT,CAtBAgkN,EAAOrtL,QAAU+6zB,EAwBjBA,EAASC,QAAU,WACjBlxzB,EAAOxhC,UAAUw+M,MAAQg0oB,EAAWxy1B,UAAUw+M,MAAQ,SAAeujO,GACnE,OAAO0wa,EAAS3y1B,KAAMiib,EACxB,CACF,EAEA,IAAI4wa,EAAenxzB,EAAOxhC,UAAUw+M,MAChCo0oB,EAAmBJ,EAAWxy1B,UAAUw+M,MAC5Ci0oB,EAASrnwB,QAAU,WACjB5pD,EAAOxhC,UAAUw+M,MAAQm0oB,EACzBH,EAAWxy1B,UAAUw+M,MAAQo0oB,CAC/B,+CCxCA7toB,EAAOrtL,QAAU,SAAc72B,EAAGy3B,GAIhC,IAHA,IAAI53B,EAASgoC,KAAKuZ,IAAIphD,EAAEH,OAAQ43B,EAAE53B,QAC9B++B,EAAS,IAAI+B,EAAO9gC,GAEfI,EAAI,EAAGA,EAAIJ,IAAUI,EAC5B2+B,EAAO3+B,GAAKD,EAAEC,GAAKw3B,EAAEx3B,GAGvB,OAAO2+B,CACT,sCCCA,MAAM22E,EAASt/E,EAAQ,MACjBu/E,EAAUv/E,EAAQ,OAClBw/E,EACe,oBAAX3yF,QAAkD,oBAAlBA,OAAY,IAChDA,OAAY,IAAE,8BACd,KAEN+T,EAAQ8J,OAASA,EACjB9J,EAAQ86zB,WAyTR,SAAqB9x1B,IACdA,GAAUA,IACbA,EAAS,GAEX,OAAO8gC,EAAO05E,OAAOx6G,EACvB,EA7TAg3B,EAAQm7zB,kBAAoB,GAE5B,MAAMr8uB,EAAe,WAwDrB,SAASC,EAAc/1G,GACrB,GAAIA,EAAS81G,EACX,MAAM,IAAIE,WAAW,cAAgBh2G,EAAS,kCAGhD,MAAMqlD,EAAM,IAAInoB,WAAWl9B,GAE3B,OADAmf,OAAO0Y,eAAewtB,EAAKvkB,EAAOxhC,WAC3B+lD,CACT,CAYA,SAASvkB,EAAQqa,EAAK86D,EAAkBj2G,GAEtC,GAAmB,kBAARm7C,EAAkB,CAC3B,GAAgC,kBAArB86D,EACT,MAAM,IAAI3yF,UACR,sEAGJ,OAAO4yF,EAAY/6D,EACrB,CACA,OAAOh4B,EAAKg4B,EAAK86D,EAAkBj2G,EACrC,CAIA,SAASmjB,EAAM/c,EAAO6vG,EAAkBj2G,GACtC,GAAqB,kBAAVoG,EACT,OAqHJ,SAAqB+vG,EAAQt4E,GACH,kBAAbA,GAAsC,KAAbA,IAClCA,EAAW,QAGb,IAAKiD,EAAOs1E,WAAWv4E,GACrB,MAAM,IAAIva,UAAU,qBAAuBua,GAG7C,MAAM79B,EAAwC,EAA/Bi/B,EAAWk3E,EAAQt4E,GAClC,IAAIwnB,EAAM0wD,EAAa/1G,GAEvB,MAAMq2G,EAAShxD,EAAIixD,MAAMH,EAAQt4E,GAE7Bw4E,IAAWr2G,IAIbqlD,EAAMA,EAAI7/B,MAAM,EAAG6wF,IAGrB,OAAOhxD,CACT,CA3IWkxD,CAAWnwG,EAAO6vG,GAG3B,GAAIp3E,YAAYC,OAAO14B,GACrB,OAkJJ,SAAwBgs1B,GACtB,GAAIvszB,EAAWuszB,EAAWl1zB,YAAa,CACrC,MAAM25E,EAAO,IAAI35E,WAAWk1zB,GAC5B,OAAO37uB,EAAgBI,EAAK93E,OAAQ83E,EAAK73E,WAAY63E,EAAK53E,WAC5D,CACA,OAAOu3E,EAAc47uB,EACvB,CAxJWC,CAAcjs1B,GAGvB,GAAa,MAATA,EACF,MAAM,IAAIkd,UACR,yHACiDld,GAIrD,GAAIy/B,EAAWz/B,EAAOy4B,cACjBz4B,GAASy/B,EAAWz/B,EAAM24B,OAAQF,aACrC,OAAO43E,EAAgBrwG,EAAO6vG,EAAkBj2G,GAGlD,GAAiC,qBAAtB02G,oBACN7wE,EAAWz/B,EAAOswG,oBAClBtwG,GAASy/B,EAAWz/B,EAAM24B,OAAQ23E,oBACrC,OAAOD,EAAgBrwG,EAAO6vG,EAAkBj2G,GAGlD,GAAqB,kBAAVoG,EACT,MAAM,IAAIkd,UACR,yEAIJ,MAAM8kB,EAAUhiC,EAAMgiC,SAAWhiC,EAAMgiC,UACvC,GAAe,MAAXA,GAAmBA,IAAYhiC,EACjC,OAAO06B,EAAO3d,KAAKilB,EAAS6tE,EAAkBj2G,GAGhD,MAAM43B,EAkJR,SAAqBnT,GACnB,GAAIqc,EAAO61E,SAASlyF,GAAM,CACxB,MAAMkB,EAA4B,EAAtBixF,EAAQnyF,EAAIzkB,QAClBqlD,EAAM0wD,EAAapwF,GAEzB,OAAmB,IAAf0/B,EAAIrlD,QAIRykB,EAAIoyF,KAAKxxD,EAAK,EAAG,EAAG1/B,GAHX0/B,CAKX,CAEA,QAAmB59C,IAAfgd,EAAIzkB,OACN,MAA0B,kBAAfykB,EAAIzkB,QAAuB82G,EAAYryF,EAAIzkB,QAC7C+1G,EAAa,GAEfS,EAAc/xF,GAGvB,GAAiB,WAAbA,EAAIphB,MAAqBqe,MAAMC,QAAQ8C,EAAI1b,MAC7C,OAAOytG,EAAc/xF,EAAI1b,KAE7B,CAzKYguG,CAAW3wG,GACrB,GAAIwxB,EAAG,OAAOA,EAEd,GAAsB,qBAAX3U,QAAgD,MAAtBA,OAAO+zF,aACH,oBAA9B5wG,EAAM6c,OAAO+zF,aACtB,OAAOl2E,EAAO3d,KAAK/c,EAAM6c,OAAO+zF,aAAa,UAAWf,EAAkBj2G,GAG5E,MAAM,IAAIsjB,UACR,yHACiDld,EAErD,CAmBA,SAAS6wG,EAAY9vG,GACnB,GAAoB,kBAATA,EACT,MAAM,IAAImc,UAAU,0CACf,GAAInc,EAAO,EAChB,MAAM,IAAI6uG,WAAW,cAAgB7uG,EAAO,iCAEhD,CA0BA,SAAS+uG,EAAa/uG,GAEpB,OADA8vG,EAAW9vG,GACJ4uG,EAAa5uG,EAAO,EAAI,EAAoB,EAAhByvG,EAAQzvG,GAC7C,CAuCA,SAASqvG,EAAeU,GACtB,MAAMl3G,EAASk3G,EAAMl3G,OAAS,EAAI,EAA4B,EAAxB42G,EAAQM,EAAMl3G,QAC9CqlD,EAAM0wD,EAAa/1G,GACzB,IAAK,IAAII,EAAI,EAAGA,EAAIJ,EAAQI,GAAK,EAC/BilD,EAAIjlD,GAAgB,IAAX82G,EAAM92G,GAEjB,OAAOilD,CACT,CAUA,SAASoxD,EAAiBS,EAAOl4E,EAAYh/B,GAC3C,GAAIg/B,EAAa,GAAKk4E,EAAMj4E,WAAaD,EACvC,MAAM,IAAIg3E,WAAW,wCAGvB,GAAIkB,EAAMj4E,WAAaD,GAAch/B,GAAU,GAC7C,MAAM,IAAIg2G,WAAW,wCAGvB,IAAI3wD,EAYJ,OAVEA,OADiB59C,IAAfu3B,QAAuCv3B,IAAXzH,EACxB,IAAIk9B,WAAWg6E,QACDzvG,IAAXzH,EACH,IAAIk9B,WAAWg6E,EAAOl4E,GAEtB,IAAI9B,WAAWg6E,EAAOl4E,EAAYh/B,GAI1Cmf,OAAO0Y,eAAewtB,EAAKvkB,EAAOxhC,WAE3B+lD,CACT,CA2BA,SAASuxD,EAAS52G,GAGhB,GAAIA,GAAU81G,EACZ,MAAM,IAAIE,WAAW,0DACaF,EAAan1G,SAAS,IAAM,UAEhE,OAAgB,EAATX,CACT,CAsGA,SAASi/B,EAAYk3E,EAAQt4E,GAC3B,GAAIiD,EAAO61E,SAASR,GAClB,OAAOA,EAAOn2G,OAEhB,GAAI6+B,YAAYC,OAAOq3E,IAAWtwE,EAAWswE,EAAQt3E,aACnD,OAAOs3E,EAAOl3E,WAEhB,GAAsB,kBAAXk3E,EACT,MAAM,IAAI7yF,UACR,kGAC0B6yF,GAI9B,MAAMxwF,EAAMwwF,EAAOn2G,OACbm3G,EAAajzF,UAAUlkB,OAAS,IAAsB,IAAjBkkB,UAAU,GACrD,IAAKizF,GAAqB,IAARxxF,EAAW,OAAO,EAGpC,IAAIyxF,GAAc,EAClB,OACE,OAAQv5E,GACN,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAOlY,EACT,IAAK,OACL,IAAK,QACH,OAAO0xF,EAAYlB,GAAQn2G,OAC7B,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAa,EAAN2lB,EACT,IAAK,MACH,OAAOA,IAAQ,EACjB,IAAK,SACH,OAAO2xF,EAAcnB,GAAQn2G,OAC/B,QACE,GAAIo3G,EACF,OAAOD,GAAa,EAAIE,EAAYlB,GAAQn2G,OAE9C69B,GAAY,GAAKA,GAAU5e,cAC3Bm4F,GAAc,EAGtB,CAGA,SAASG,EAAc15E,EAAU5uB,EAAOC,GACtC,IAAIkoG,GAAc,EAclB,SALc3vG,IAAVwH,GAAuBA,EAAQ,KACjCA,EAAQ,GAINA,EAAQ7P,KAAKY,OACf,MAAO,GAOT,SAJYyH,IAARyH,GAAqBA,EAAM9P,KAAKY,UAClCkP,EAAM9P,KAAKY,QAGTkP,GAAO,EACT,MAAO,GAOT,IAHAA,KAAS,KACTD,KAAW,GAGT,MAAO,GAKT,IAFK4uB,IAAUA,EAAW,UAGxB,OAAQA,GACN,IAAK,MACH,OAAO25E,EAASp4G,KAAM6P,EAAOC,GAE/B,IAAK,OACL,IAAK,QACH,OAAOuoG,EAAUr4G,KAAM6P,EAAOC,GAEhC,IAAK,QACH,OAAOwoG,EAAWt4G,KAAM6P,EAAOC,GAEjC,IAAK,SACL,IAAK,SACH,OAAOyoG,EAAYv4G,KAAM6P,EAAOC,GAElC,IAAK,SACH,OAAO0oG,EAAYx4G,KAAM6P,EAAOC,GAElC,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO2oG,EAAaz4G,KAAM6P,EAAOC,GAEnC,QACE,GAAIkoG,EAAa,MAAM,IAAI9zF,UAAU,qBAAuBua,GAC5DA,GAAYA,EAAW,IAAI5e,cAC3Bm4F,GAAc,EAGtB,CAUA,SAASU,EAAMlgF,EAAG33B,EAAGm6B,GACnB,MAAMh6B,EAAIw3B,EAAE33B,GACZ23B,EAAE33B,GAAK23B,EAAEwC,GACTxC,EAAEwC,GAAKh6B,CACT,CA2IA,SAAS23G,EAAsBh5E,EAAQkwE,EAAKjwE,EAAYnB,EAAUm6E,GAEhE,GAAsB,IAAlBj5E,EAAO/+B,OAAc,OAAQ,EAmBjC,GAhB0B,kBAAfg/B,GACTnB,EAAWmB,EACXA,EAAa,GACJA,EAAa,WACtBA,EAAa,WACJA,GAAc,aACvBA,GAAc,YAGZ83E,EADJ93E,GAAcA,KAGZA,EAAag5E,EAAM,EAAKj5E,EAAO/+B,OAAS,GAItCg/B,EAAa,IAAGA,EAAaD,EAAO/+B,OAASg/B,GAC7CA,GAAcD,EAAO/+B,OAAQ,CAC/B,GAAIg4G,EAAK,OAAQ,EACZh5E,EAAaD,EAAO/+B,OAAS,CACpC,MAAO,GAAIg/B,EAAa,EAAG,CACzB,IAAIg5E,EACC,OAAQ,EADJh5E,EAAa,CAExB,CAQA,GALmB,kBAARiwE,IACTA,EAAMnuE,EAAO3d,KAAK8rF,EAAKpxE,IAIrBiD,EAAO61E,SAAS1H,GAElB,OAAmB,IAAfA,EAAIjvG,QACE,EAEHi4G,EAAal5E,EAAQkwE,EAAKjwE,EAAYnB,EAAUm6E,GAClD,GAAmB,kBAAR/I,EAEhB,OADAA,GAAY,IACgC,oBAAjC/xE,WAAW59B,UAAUkB,QAC1Bw3G,EACK96E,WAAW59B,UAAUkB,QAAQ0kB,KAAK6Z,EAAQkwE,EAAKjwE,GAE/C9B,WAAW59B,UAAUwf,YAAYoG,KAAK6Z,EAAQkwE,EAAKjwE,GAGvDi5E,EAAal5E,EAAQ,CAACkwE,GAAMjwE,EAAYnB,EAAUm6E,GAG3D,MAAM,IAAI10F,UAAU,uCACtB,CAEA,SAAS20F,EAAcp1F,EAAKosF,EAAKjwE,EAAYnB,EAAUm6E,GACrD,IA0BI53G,EA1BA83G,EAAY,EACZC,EAAYt1F,EAAI7iB,OAChBo4G,EAAYnJ,EAAIjvG,OAEpB,QAAiByH,IAAbo2B,IAEe,UADjBA,EAAW/9B,OAAO+9B,GAAU5e,gBACY,UAAb4e,GACV,YAAbA,GAAuC,aAAbA,GAAyB,CACrD,GAAIhb,EAAI7iB,OAAS,GAAKivG,EAAIjvG,OAAS,EACjC,OAAQ,EAEVk4G,EAAY,EACZC,GAAa,EACbC,GAAa,EACbp5E,GAAc,CAChB,CAGF,SAAS+pB,EAAM1D,EAAKjlD,GAClB,OAAkB,IAAd83G,EACK7yD,EAAIjlD,GAEJilD,EAAIgzD,aAAaj4G,EAAI83G,EAEhC,CAGA,GAAIF,EAAK,CACP,IAAIM,GAAc,EAClB,IAAKl4G,EAAI4+B,EAAY5+B,EAAI+3G,EAAW/3G,IAClC,GAAI2oD,EAAKlmC,EAAKziB,KAAO2oD,EAAKkmD,GAAqB,IAAhBqJ,EAAoB,EAAIl4G,EAAIk4G,IAEzD,IADoB,IAAhBA,IAAmBA,EAAal4G,GAChCA,EAAIk4G,EAAa,IAAMF,EAAW,OAAOE,EAAaJ,OAEtC,IAAhBI,IAAmBl4G,GAAKA,EAAIk4G,GAChCA,GAAc,CAGpB,MAEE,IADIt5E,EAAao5E,EAAYD,IAAWn5E,EAAam5E,EAAYC,GAC5Dh4G,EAAI4+B,EAAY5+B,GAAK,EAAGA,IAAK,CAChC,IAAIm4G,GAAQ,EACZ,IAAK,IAAI39E,EAAI,EAAGA,EAAIw9E,EAAWx9E,IAC7B,GAAImuB,EAAKlmC,EAAKziB,EAAIw6B,KAAOmuB,EAAKkmD,EAAKr0E,GAAI,CACrC29E,GAAQ,EACR,KACF,CAEF,GAAIA,EAAO,OAAOn4G,CACpB,CAGF,OAAQ,CACV,CAcA,SAASo4G,EAAUnzD,EAAK8wD,EAAQhxD,EAAQnlD,GACtCmlD,EAASrxB,OAAOqxB,IAAW,EAC3B,MAAMpd,EAAYsd,EAAIrlD,OAASmlD,EAC1BnlD,GAGHA,EAAS8zB,OAAO9zB,IACH+nC,IACX/nC,EAAS+nC,GAJX/nC,EAAS+nC,EAQX,MAAM0wE,EAAStC,EAAOn2G,OAKtB,IAAII,EACJ,IAJIJ,EAASy4G,EAAS,IACpBz4G,EAASy4G,EAAS,GAGfr4G,EAAI,EAAGA,EAAIJ,IAAUI,EAAG,CAC3B,MAAMs4G,EAAS7kF,SAASsiF,EAAOlxG,OAAW,EAAJ7E,EAAO,GAAI,IACjD,GAAI02G,EAAY4B,GAAS,OAAOt4G,EAChCilD,EAAIF,EAAS/kD,GAAKs4G,CACpB,CACA,OAAOt4G,CACT,CAEA,SAASu4G,EAAWtzD,EAAK8wD,EAAQhxD,EAAQnlD,GACvC,OAAO44G,EAAWvB,EAAYlB,EAAQ9wD,EAAIrlD,OAASmlD,GAASE,EAAKF,EAAQnlD,EAC3E,CAEA,SAAS64G,EAAYxzD,EAAK8wD,EAAQhxD,EAAQnlD,GACxC,OAAO44G,EAypCT,SAAuB7xE,GACrB,MAAM+xE,EAAY,GAClB,IAAK,IAAI14G,EAAI,EAAGA,EAAI2mC,EAAI/mC,SAAUI,EAEhC04G,EAAU93F,KAAyB,IAApB+lB,EAAIrmC,WAAWN,IAEhC,OAAO04G,CACT,CAhqCoBC,CAAa5C,GAAS9wD,EAAKF,EAAQnlD,EACvD,CAEA,SAASi5G,EAAa5zD,EAAK8wD,EAAQhxD,EAAQnlD,GACzC,OAAO44G,EAAWtB,EAAcnB,GAAS9wD,EAAKF,EAAQnlD,EACxD,CAEA,SAASk5G,EAAW7zD,EAAK8wD,EAAQhxD,EAAQnlD,GACvC,OAAO44G,EA0pCT,SAAyB7xE,EAAKoyE,GAC5B,IAAI94G,EAAG+4G,EAAIC,EACX,MAAMP,EAAY,GAClB,IAAK,IAAI14G,EAAI,EAAGA,EAAI2mC,EAAI/mC,WACjBm5G,GAAS,GAAK,KADa/4G,EAGhCC,EAAI0mC,EAAIrmC,WAAWN,GACnBg5G,EAAK/4G,GAAK,EACVg5G,EAAKh5G,EAAI,IACTy4G,EAAU93F,KAAKq4F,GACfP,EAAU93F,KAAKo4F,GAGjB,OAAON,CACT,CAxqCoBQ,CAAenD,EAAQ9wD,EAAIrlD,OAASmlD,GAASE,EAAKF,EAAQnlD,EAC9E,CA8EA,SAAS43G,EAAavyD,EAAKp2C,EAAOC,GAChC,OAAc,IAAVD,GAAeC,IAAQm2C,EAAIrlD,OACtB01G,EAAO6D,cAAcl0D,GAErBqwD,EAAO6D,cAAcl0D,EAAI7/B,MAAMvW,EAAOC,GAEjD,CAEA,SAASuoG,EAAWpyD,EAAKp2C,EAAOC,GAC9BA,EAAM84B,KAAKuZ,IAAI8D,EAAIrlD,OAAQkP,GAC3B,MAAMsqG,EAAM,GAEZ,IAAIp5G,EAAI6O,EACR,KAAO7O,EAAI8O,GAAK,CACd,MAAM2qG,EAAYx0D,EAAIjlD,GACtB,IAAI05G,EAAY,KACZC,EAAoBF,EAAY,IAChC,EACCA,EAAY,IACT,EACCA,EAAY,IACT,EACA,EAEZ,GAAIz5G,EAAI25G,GAAoB7qG,EAAK,CAC/B,IAAIuqG,EAAYC,EAAWC,EAAYC,EAEvC,OAAQG,GACN,KAAK,EACCF,EAAY,MACdC,EAAYD,GAEd,MACF,KAAK,EACHJ,EAAap0D,EAAIjlD,EAAI,GACO,OAAV,IAAbq5G,KACHG,GAA6B,GAAZC,IAAqB,EAAoB,GAAbJ,EACzCG,EAAgB,MAClBE,EAAYF,IAGhB,MACF,KAAK,EACHH,EAAap0D,EAAIjlD,EAAI,GACrBs5G,EAAYr0D,EAAIjlD,EAAI,GACQ,OAAV,IAAbq5G,IAAsD,OAAV,IAAZC,KACnCE,GAA6B,GAAZC,IAAoB,IAAoB,GAAbJ,IAAsB,EAAmB,GAAZC,EACrEE,EAAgB,OAAUA,EAAgB,OAAUA,EAAgB,SACtEE,EAAYF,IAGhB,MACF,KAAK,EACHH,EAAap0D,EAAIjlD,EAAI,GACrBs5G,EAAYr0D,EAAIjlD,EAAI,GACpBu5G,EAAat0D,EAAIjlD,EAAI,GACO,OAAV,IAAbq5G,IAAsD,OAAV,IAAZC,IAAsD,OAAV,IAAbC,KAClEC,GAA6B,GAAZC,IAAoB,IAAqB,GAAbJ,IAAsB,IAAmB,GAAZC,IAAqB,EAAoB,GAAbC,EAClGC,EAAgB,OAAUA,EAAgB,UAC5CE,EAAYF,IAItB,CAEkB,OAAdE,GAGFA,EAAY,MACZC,EAAmB,GACVD,EAAY,QAErBA,GAAa,MACbN,EAAIx4F,KAAK84F,IAAc,GAAK,KAAQ,OACpCA,EAAY,MAAqB,KAAZA,GAGvBN,EAAIx4F,KAAK84F,GACT15G,GAAK25G,CACP,CAEA,OAQF,SAAgCC,GAC9B,MAAMr0F,EAAMq0F,EAAWh6G,OACvB,GAAI2lB,GAAOs0F,EACT,OAAOn6G,OAAOS,aAAayjB,MAAMlkB,OAAQk6G,GAI3C,IAAIR,EAAM,GACNp5G,EAAI,EACR,KAAOA,EAAIulB,GACT6zF,GAAO15G,OAAOS,aAAayjB,MACzBlkB,OACAk6G,EAAWx0F,MAAMplB,EAAGA,GAAK65G,IAG7B,OAAOT,CACT,CAxBSU,CAAsBV,EAC/B,CA3+BAxiF,EAAQi1xB,WAAan2sB,EAgBrBh1E,EAAOq5E,oBAUP,WAEE,IACE,MAAMt3F,EAAM,IAAIqa,WAAW,GACrBk9E,EAAQ,CAAEC,IAAK,WAAc,OAAO,EAAG,GAG7C,OAFAl7F,OAAO0Y,eAAeuiF,EAAOl9E,WAAW59B,WACxC6f,OAAO0Y,eAAehV,EAAKu3F,GACN,KAAdv3F,EAAIw3F,KACb,CAAE,MAAOl7G,GACP,OAAO,CACT,CACF,CArB6Bm7G,GAExBx5E,EAAOq5E,qBAA0C,qBAAZz2G,SACb,oBAAlBA,QAAQC,OACjBD,QAAQC,MACN,iJAkBJwb,OAAOC,eAAe0hB,EAAOxhC,UAAW,SAAU,CAChDigB,YAAY,EACZL,IAAK,WACH,GAAK4hB,EAAO61E,SAASv3G,MACrB,OAAOA,KAAK2/B,MACd,IAGF5f,OAAOC,eAAe0hB,EAAOxhC,UAAW,SAAU,CAChDigB,YAAY,EACZL,IAAK,WACH,GAAK4hB,EAAO61E,SAASv3G,MACrB,OAAOA,KAAK4/B,UACd,IAoCF8B,EAAOy5E,SAAW,KA8DlBz5E,EAAO3d,KAAO,SAAU/c,EAAO6vG,EAAkBj2G,GAC/C,OAAOmjB,EAAK/c,EAAO6vG,EAAkBj2G,EACvC,EAIAmf,OAAO0Y,eAAeiJ,EAAOxhC,UAAW49B,WAAW59B,WACnD6f,OAAO0Y,eAAeiJ,EAAQ5D,YA8B9B4D,EAAO05E,MAAQ,SAAUrzG,EAAM4D,EAAM8yB,GACnC,OArBF,SAAgB12B,EAAM4D,EAAM8yB,GAE1B,OADAo5E,EAAW9vG,GACPA,GAAQ,EACH4uG,EAAa5uG,QAETM,IAATsD,EAIyB,kBAAb8yB,EACVk4E,EAAa5uG,GAAM4D,KAAKA,EAAM8yB,GAC9Bk4E,EAAa5uG,GAAM4D,KAAKA,GAEvBgrG,EAAa5uG,EACtB,CAOSqzG,CAAMrzG,EAAM4D,EAAM8yB,EAC3B,EAUAiD,EAAOo1E,YAAc,SAAU/uG,GAC7B,OAAO+uG,EAAY/uG,EACrB,EAIA25B,EAAO25E,gBAAkB,SAAUtzG,GACjC,OAAO+uG,EAAY/uG,EACrB,EA6GA25B,EAAO61E,SAAW,SAAmB/+E,GACnC,OAAY,MAALA,IAA6B,IAAhBA,EAAE8iF,WACpB9iF,IAAMkJ,EAAOxhC,SACjB,EAEAwhC,EAAO65E,QAAU,SAAkBx6G,EAAGy3B,GAGpC,GAFIiO,EAAW1lC,EAAG+8B,cAAa/8B,EAAI2gC,EAAO3d,KAAKhjB,EAAGA,EAAEglD,OAAQhlD,EAAE8+B,aAC1D4G,EAAWjO,EAAGsF,cAAatF,EAAIkJ,EAAO3d,KAAKyU,EAAGA,EAAEutB,OAAQvtB,EAAEqH,cACzD6B,EAAO61E,SAASx2G,KAAO2gC,EAAO61E,SAAS/+E,GAC1C,MAAM,IAAItU,UACR,yEAIJ,GAAInjB,IAAMy3B,EAAG,OAAO,EAEpB,IAAIrtB,EAAIpK,EAAEH,OACNgK,EAAI4tB,EAAE53B,OAEV,IAAK,IAAII,EAAI,EAAGulB,EAAMqiB,KAAKuZ,IAAIh3C,EAAGP,GAAI5J,EAAIulB,IAAOvlB,EAC/C,GAAID,EAAEC,KAAOw3B,EAAEx3B,GAAI,CACjBmK,EAAIpK,EAAEC,GACN4J,EAAI4tB,EAAEx3B,GACN,KACF,CAGF,OAAImK,EAAIP,GAAW,EACfA,EAAIO,EAAU,EACX,CACT,EAEAu2B,EAAOs1E,WAAa,SAAqBv4E,GACvC,OAAQ/9B,OAAO+9B,GAAU5e,eACvB,IAAK,MACL,IAAK,OACL,IAAK,QACL,IAAK,QACL,IAAK,SACL,IAAK,SACL,IAAK,SACL,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAO,EACT,QACE,OAAO,EAEb,EAEA6hB,EAAOhf,OAAS,SAAiB84F,EAAM56G,GACrC,IAAK0hB,MAAMC,QAAQi5F,GACjB,MAAM,IAAIt3F,UAAU,+CAGtB,GAAoB,IAAhBs3F,EAAK56G,OACP,OAAO8gC,EAAO05E,MAAM,GAGtB,IAAIp6G,EACJ,QAAeqH,IAAXzH,EAEF,IADAA,EAAS,EACJI,EAAI,EAAGA,EAAIw6G,EAAK56G,SAAUI,EAC7BJ,GAAU46G,EAAKx6G,GAAGJ,OAItB,MAAM++B,EAAS+B,EAAOo1E,YAAYl2G,GAClC,IAAI66G,EAAM,EACV,IAAKz6G,EAAI,EAAGA,EAAIw6G,EAAK56G,SAAUI,EAAG,CAChC,IAAIilD,EAAMu1D,EAAKx6G,GACf,GAAIylC,EAAWwf,EAAKnoB,YACd29E,EAAMx1D,EAAIrlD,OAAS++B,EAAO/+B,QACvB8gC,EAAO61E,SAAStxD,KAAMA,EAAMvkB,EAAO3d,KAAKkiC,IAC7CA,EAAIwxD,KAAK93E,EAAQ87E,IAEjB39E,WAAW59B,UAAU88B,IAAIlX,KACvB6Z,EACAsmB,EACAw1D,OAGC,KAAK/5E,EAAO61E,SAAStxD,GAC1B,MAAM,IAAI/hC,UAAU,+CAEpB+hC,EAAIwxD,KAAK93E,EAAQ87E,EACnB,CACAA,GAAOx1D,EAAIrlD,MACb,CACA,OAAO++B,CACT,EAiDA+B,EAAO7B,WAAaA,EA8EpB6B,EAAOxhC,UAAUo7G,WAAY,EAQ7B55E,EAAOxhC,UAAUw7G,OAAS,WACxB,MAAMn1F,EAAMvmB,KAAKY,OACjB,GAAI2lB,EAAM,IAAM,EACd,MAAM,IAAIqwF,WAAW,6CAEvB,IAAK,IAAI51G,EAAI,EAAGA,EAAIulB,EAAKvlB,GAAK,EAC5B03G,EAAK14G,KAAMgB,EAAGA,EAAI,GAEpB,OAAOhB,IACT,EAEA0hC,EAAOxhC,UAAUy7G,OAAS,WACxB,MAAMp1F,EAAMvmB,KAAKY,OACjB,GAAI2lB,EAAM,IAAM,EACd,MAAM,IAAIqwF,WAAW,6CAEvB,IAAK,IAAI51G,EAAI,EAAGA,EAAIulB,EAAKvlB,GAAK,EAC5B03G,EAAK14G,KAAMgB,EAAGA,EAAI,GAClB03G,EAAK14G,KAAMgB,EAAI,EAAGA,EAAI,GAExB,OAAOhB,IACT,EAEA0hC,EAAOxhC,UAAU07G,OAAS,WACxB,MAAMr1F,EAAMvmB,KAAKY,OACjB,GAAI2lB,EAAM,IAAM,EACd,MAAM,IAAIqwF,WAAW,6CAEvB,IAAK,IAAI51G,EAAI,EAAGA,EAAIulB,EAAKvlB,GAAK,EAC5B03G,EAAK14G,KAAMgB,EAAGA,EAAI,GAClB03G,EAAK14G,KAAMgB,EAAI,EAAGA,EAAI,GACtB03G,EAAK14G,KAAMgB,EAAI,EAAGA,EAAI,GACtB03G,EAAK14G,KAAMgB,EAAI,EAAGA,EAAI,GAExB,OAAOhB,IACT,EAEA0hC,EAAOxhC,UAAUqB,SAAW,WAC1B,MAAMX,EAASZ,KAAKY,OACpB,OAAe,IAAXA,EAAqB,GACA,IAArBkkB,UAAUlkB,OAAqBy3G,EAAUr4G,KAAM,EAAGY,GAC/Cu3G,EAAavzF,MAAM5kB,KAAM8kB,UAClC,EAEA4c,EAAOxhC,UAAU27G,eAAiBn6E,EAAOxhC,UAAUqB,SAEnDmgC,EAAOxhC,UAAU47G,OAAS,SAAiBtjF,GACzC,IAAKkJ,EAAO61E,SAAS/+E,GAAI,MAAM,IAAItU,UAAU,6BAC7C,OAAIlkB,OAASw4B,GACsB,IAA5BkJ,EAAO65E,QAAQv7G,KAAMw4B,EAC9B,EAEAkJ,EAAOxhC,UAAU67G,QAAU,WACzB,IAAIp0E,EAAM,GACV,MAAMqb,EAAMprB,EAAQm7zB,kBAGpB,OAFAprzB,EAAM3nC,KAAKuB,SAAS,MAAO,EAAGyhD,GAAKriD,QAAQ,UAAW,OAAO2vC,OACzDtwC,KAAKY,OAASoiD,IAAKrb,GAAO,SACvB,WAAaA,EAAM,GAC5B,EACI6uE,IACF90E,EAAOxhC,UAAUs2G,GAAuB90E,EAAOxhC,UAAU67G,SAG3Dr6E,EAAOxhC,UAAUq7G,QAAU,SAAkB36F,EAAQ/Q,EAAOC,EAAKksG,EAAWC,GAI1E,GAHIx1E,EAAW7lB,EAAQkd,cACrBld,EAAS8gB,EAAO3d,KAAKnD,EAAQA,EAAOmlC,OAAQnlC,EAAOif,cAEhD6B,EAAO61E,SAAS32F,GACnB,MAAM,IAAIsD,UACR,wFAC2BtD,GAiB/B,QAbcvY,IAAVwH,IACFA,EAAQ,QAEExH,IAARyH,IACFA,EAAM8Q,EAASA,EAAOhgB,OAAS,QAEfyH,IAAd2zG,IACFA,EAAY,QAEE3zG,IAAZ4zG,IACFA,EAAUj8G,KAAKY,QAGbiP,EAAQ,GAAKC,EAAM8Q,EAAOhgB,QAAUo7G,EAAY,GAAKC,EAAUj8G,KAAKY,OACtE,MAAM,IAAIg2G,WAAW,sBAGvB,GAAIoF,GAAaC,GAAWpsG,GAASC,EACnC,OAAO,EAET,GAAIksG,GAAaC,EACf,OAAQ,EAEV,GAAIpsG,GAASC,EACX,OAAO,EAQT,GAAI9P,OAAS4gB,EAAQ,OAAO,EAE5B,IAAIzV,GAJJ8wG,KAAa,IADbD,KAAe,GAMXpxG,GAPJkF,KAAS,IADTD,KAAW,GASX,MAAM0W,EAAMqiB,KAAKuZ,IAAIh3C,EAAGP,GAElBsxG,EAAWl8G,KAAKomB,MAAM41F,EAAWC,GACjCE,EAAav7F,EAAOwF,MAAMvW,EAAOC,GAEvC,IAAK,IAAI9O,EAAI,EAAGA,EAAIulB,IAAOvlB,EACzB,GAAIk7G,EAASl7G,KAAOm7G,EAAWn7G,GAAI,CACjCmK,EAAI+wG,EAASl7G,GACb4J,EAAIuxG,EAAWn7G,GACf,KACF,CAGF,OAAImK,EAAIP,GAAW,EACfA,EAAIO,EAAU,EACX,CACT,EA2HAu2B,EAAOxhC,UAAUs0B,SAAW,SAAmBq7E,EAAKjwE,EAAYnB,GAC9D,OAAoD,IAA7Cz+B,KAAKoB,QAAQyuG,EAAKjwE,EAAYnB,EACvC,EAEAiD,EAAOxhC,UAAUkB,QAAU,SAAkByuG,EAAKjwE,EAAYnB,GAC5D,OAAOk6E,EAAqB34G,KAAM6vG,EAAKjwE,EAAYnB,GAAU,EAC/D,EAEAiD,EAAOxhC,UAAUwf,YAAc,SAAsBmwF,EAAKjwE,EAAYnB,GACpE,OAAOk6E,EAAqB34G,KAAM6vG,EAAKjwE,EAAYnB,GAAU,EAC/D,EA4CAiD,EAAOxhC,UAAUg3G,MAAQ,SAAgBH,EAAQhxD,EAAQnlD,EAAQ69B,GAE/D,QAAep2B,IAAX09C,EACFtnB,EAAW,OACX79B,EAASZ,KAAKY,OACdmlD,EAAS,OAEJ,QAAe19C,IAAXzH,GAA0C,kBAAXmlD,EACxCtnB,EAAWsnB,EACXnlD,EAASZ,KAAKY,OACdmlD,EAAS,MAEJ,KAAIq2D,SAASr2D,GAUlB,MAAM,IAAI5lD,MACR,2EAVF4lD,KAAoB,EAChBq2D,SAASx7G,IACXA,KAAoB,OACHyH,IAAbo2B,IAAwBA,EAAW,UAEvCA,EAAW79B,EACXA,OAASyH,EAMb,CAEA,MAAMsgC,EAAY3oC,KAAKY,OAASmlD,EAGhC,SAFe19C,IAAXzH,GAAwBA,EAAS+nC,KAAW/nC,EAAS+nC,GAEpDouE,EAAOn2G,OAAS,IAAMA,EAAS,GAAKmlD,EAAS,IAAOA,EAAS/lD,KAAKY,OACrE,MAAM,IAAIg2G,WAAW,0CAGlBn4E,IAAUA,EAAW,QAE1B,IAAIu5E,GAAc,EAClB,OACE,OAAQv5E,GACN,IAAK,MACH,OAAO26E,EAASp5G,KAAM+2G,EAAQhxD,EAAQnlD,GAExC,IAAK,OACL,IAAK,QACH,OAAO24G,EAAUv5G,KAAM+2G,EAAQhxD,EAAQnlD,GAEzC,IAAK,QACL,IAAK,SACL,IAAK,SACH,OAAO64G,EAAWz5G,KAAM+2G,EAAQhxD,EAAQnlD,GAE1C,IAAK,SAEH,OAAOi5G,EAAY75G,KAAM+2G,EAAQhxD,EAAQnlD,GAE3C,IAAK,OACL,IAAK,QACL,IAAK,UACL,IAAK,WACH,OAAOk5G,EAAU95G,KAAM+2G,EAAQhxD,EAAQnlD,GAEzC,QACE,GAAIo3G,EAAa,MAAM,IAAI9zF,UAAU,qBAAuBua,GAC5DA,GAAY,GAAKA,GAAU5e,cAC3Bm4F,GAAc,EAGtB,EAEAt2E,EAAOxhC,UAAUm8G,OAAS,WACxB,MAAO,CACLp4G,KAAM,SACN0F,KAAM2Y,MAAMpiB,UAAUkmB,MAAMN,KAAK9lB,KAAK2lB,MAAQ3lB,KAAM,GAExD,EAyFA,MAAM66G,EAAuB,KAoB7B,SAASvC,EAAYryD,EAAKp2C,EAAOC,GAC/B,IAAIwsG,EAAM,GACVxsG,EAAM84B,KAAKuZ,IAAI8D,EAAIrlD,OAAQkP,GAE3B,IAAK,IAAI9O,EAAI6O,EAAO7O,EAAI8O,IAAO9O,EAC7Bs7G,GAAO57G,OAAOS,aAAsB,IAAT8kD,EAAIjlD,IAEjC,OAAOs7G,CACT,CAEA,SAAS/D,EAAatyD,EAAKp2C,EAAOC,GAChC,IAAIwsG,EAAM,GACVxsG,EAAM84B,KAAKuZ,IAAI8D,EAAIrlD,OAAQkP,GAE3B,IAAK,IAAI9O,EAAI6O,EAAO7O,EAAI8O,IAAO9O,EAC7Bs7G,GAAO57G,OAAOS,aAAa8kD,EAAIjlD,IAEjC,OAAOs7G,CACT,CAEA,SAASlE,EAAUnyD,EAAKp2C,EAAOC,GAC7B,MAAMyW,EAAM0/B,EAAIrlD,SAEXiP,GAASA,EAAQ,KAAGA,EAAQ,KAC5BC,GAAOA,EAAM,GAAKA,EAAMyW,KAAKzW,EAAMyW,GAExC,IAAI+iB,EAAM,GACV,IAAK,IAAItoC,EAAI6O,EAAO7O,EAAI8O,IAAO9O,EAC7BsoC,GAAOizE,EAAoBt2D,EAAIjlD,IAEjC,OAAOsoC,CACT,CAEA,SAASmvE,EAAcxyD,EAAKp2C,EAAOC,GACjC,MAAMwwB,EAAQ2lB,EAAI7/B,MAAMvW,EAAOC,GAC/B,IAAIsqG,EAAM,GAEV,IAAK,IAAIp5G,EAAI,EAAGA,EAAIs/B,EAAM1/B,OAAS,EAAGI,GAAK,EACzCo5G,GAAO15G,OAAOS,aAAam/B,EAAMt/B,GAAqB,IAAfs/B,EAAMt/B,EAAI,IAEnD,OAAOo5G,CACT,CAiCA,SAASoC,EAAaz2D,EAAQpmC,EAAK/e,GACjC,GAAKmlD,EAAS,IAAO,GAAKA,EAAS,EAAG,MAAM,IAAI6wD,WAAW,sBAC3D,GAAI7wD,EAASpmC,EAAM/e,EAAQ,MAAM,IAAIg2G,WAAW,wCAClD,CAyQA,SAAS6F,EAAUx2D,EAAKj/C,EAAO++C,EAAQpmC,EAAKqjC,EAAKb,GAC/C,IAAKzgB,EAAO61E,SAAStxD,GAAM,MAAM,IAAI/hC,UAAU,+CAC/C,GAAIld,EAAQg8C,GAAOh8C,EAAQm7C,EAAK,MAAM,IAAIy0D,WAAW,qCACrD,GAAI7wD,EAASpmC,EAAMsmC,EAAIrlD,OAAQ,MAAM,IAAIg2G,WAAW,qBACtD,CA+FA,SAASs8uB,EAAgBjtyB,EAAKj/C,EAAO++C,EAAQ5D,EAAKa,GAChDmwyB,EAAWns1B,EAAOm7C,EAAKa,EAAKiD,EAAKF,EAAQ,GAEzC,IAAIk0D,EAAKvlF,OAAO1tB,EAAQmkf,OAAO,aAC/Bllc,EAAIF,KAAYk0D,EAChBA,IAAW,EACXh0D,EAAIF,KAAYk0D,EAChBA,IAAW,EACXh0D,EAAIF,KAAYk0D,EAChBA,IAAW,EACXh0D,EAAIF,KAAYk0D,EAChB,IAAID,EAAKtlF,OAAO1tB,GAASmkf,OAAO,IAAMA,OAAO,aAQ7C,OAPAllc,EAAIF,KAAYi0D,EAChBA,IAAW,EACX/zD,EAAIF,KAAYi0D,EAChBA,IAAW,EACX/zD,EAAIF,KAAYi0D,EAChBA,IAAW,EACX/zD,EAAIF,KAAYi0D,EACTj0D,CACT,CAEA,SAASqtyB,EAAgBntyB,EAAKj/C,EAAO++C,EAAQ5D,EAAKa,GAChDmwyB,EAAWns1B,EAAOm7C,EAAKa,EAAKiD,EAAKF,EAAQ,GAEzC,IAAIk0D,EAAKvlF,OAAO1tB,EAAQmkf,OAAO,aAC/Bllc,EAAIF,EAAS,GAAKk0D,EAClBA,IAAW,EACXh0D,EAAIF,EAAS,GAAKk0D,EAClBA,IAAW,EACXh0D,EAAIF,EAAS,GAAKk0D,EAClBA,IAAW,EACXh0D,EAAIF,EAAS,GAAKk0D,EAClB,IAAID,EAAKtlF,OAAO1tB,GAASmkf,OAAO,IAAMA,OAAO,aAQ7C,OAPAllc,EAAIF,EAAS,GAAKi0D,EAClBA,IAAW,EACX/zD,EAAIF,EAAS,GAAKi0D,EAClBA,IAAW,EACX/zD,EAAIF,EAAS,GAAKi0D,EAClBA,IAAW,EACX/zD,EAAIF,GAAUi0D,EACPj0D,EAAS,CAClB,CAkHA,SAAS22D,EAAcz2D,EAAKj/C,EAAO++C,EAAQpmC,EAAKqjC,EAAKb,GACnD,GAAI4D,EAASpmC,EAAMsmC,EAAIrlD,OAAQ,MAAM,IAAIg2G,WAAW,sBACpD,GAAI7wD,EAAS,EAAG,MAAM,IAAI6wD,WAAW,qBACvC,CAEA,SAAS+F,EAAY12D,EAAKj/C,EAAO++C,EAAQ62D,EAAcC,GAOrD,OANA71G,GAASA,EACT++C,KAAoB,EACf82D,GACHH,EAAaz2D,EAAKj/C,EAAO++C,EAAQ,GAEnCwwD,EAAQW,MAAMjxD,EAAKj/C,EAAO++C,EAAQ62D,EAAc,GAAI,GAC7C72D,EAAS,CAClB,CAUA,SAAS+2D,EAAa72D,EAAKj/C,EAAO++C,EAAQ62D,EAAcC,GAOtD,OANA71G,GAASA,EACT++C,KAAoB,EACf82D,GACHH,EAAaz2D,EAAKj/C,EAAO++C,EAAQ,GAEnCwwD,EAAQW,MAAMjxD,EAAKj/C,EAAO++C,EAAQ62D,EAAc,GAAI,GAC7C72D,EAAS,CAClB,CAzkBArkB,EAAOxhC,UAAUkmB,MAAQ,SAAgBvW,EAAOC,GAC9C,MAAMyW,EAAMvmB,KAAKY,QACjBiP,IAAUA,GAGE,GACVA,GAAS0W,GACG,IAAG1W,EAAQ,GACdA,EAAQ0W,IACjB1W,EAAQ0W,IANVzW,OAAczH,IAARyH,EAAoByW,IAAQzW,GASxB,GACRA,GAAOyW,GACG,IAAGzW,EAAM,GACVA,EAAMyW,IACfzW,EAAMyW,GAGJzW,EAAMD,IAAOC,EAAMD,GAEvB,MAAMktG,EAAS/8G,KAAK2rC,SAAS97B,EAAOC,GAIpC,OAFAiQ,OAAO0Y,eAAeskF,EAAQr7E,EAAOxhC,WAE9B68G,CACT,EAUAr7E,EAAOxhC,UAAUmz1B,WACjB3xzB,EAAOxhC,UAAU88G,WAAa,SAAqBj3D,EAAQlmB,EAAYg9E,GACrE92D,KAAoB,EACpBlmB,KAA4B,EACvBg9E,GAAUL,EAAYz2D,EAAQlmB,EAAY7/B,KAAKY,QAEpD,IAAIivG,EAAM7vG,KAAK+lD,GACXk3D,EAAM,EACNj8G,EAAI,EACR,OAASA,EAAI6+B,IAAeo9E,GAAO,MACjCpN,GAAO7vG,KAAK+lD,EAAS/kD,GAAKi8G,EAG5B,OAAOpN,CACT,EAEAnuE,EAAOxhC,UAAUoz1B,WACjB5xzB,EAAOxhC,UAAUg9G,WAAa,SAAqBn3D,EAAQlmB,EAAYg9E,GACrE92D,KAAoB,EACpBlmB,KAA4B,EACvBg9E,GACHL,EAAYz2D,EAAQlmB,EAAY7/B,KAAKY,QAGvC,IAAIivG,EAAM7vG,KAAK+lD,IAAWlmB,GACtBo9E,EAAM,EACV,KAAOp9E,EAAa,IAAMo9E,GAAO,MAC/BpN,GAAO7vG,KAAK+lD,IAAWlmB,GAAco9E,EAGvC,OAAOpN,CACT,EAEAnuE,EAAOxhC,UAAUqz1B,UACjB7xzB,EAAOxhC,UAAUi9G,UAAY,SAAoBp3D,EAAQ82D,GAGvD,OAFA92D,KAAoB,EACf82D,GAAUL,EAAYz2D,EAAQ,EAAG/lD,KAAKY,QACpCZ,KAAK+lD,EACd,EAEArkB,EAAOxhC,UAAUsz1B,aACjB9xzB,EAAOxhC,UAAUk9G,aAAe,SAAuBr3D,EAAQ82D,GAG7D,OAFA92D,KAAoB,EACf82D,GAAUL,EAAYz2D,EAAQ,EAAG/lD,KAAKY,QACpCZ,KAAK+lD,GAAW/lD,KAAK+lD,EAAS,IAAM,CAC7C,EAEArkB,EAAOxhC,UAAUuz1B,aACjB/xzB,EAAOxhC,UAAU+4G,aAAe,SAAuBlzD,EAAQ82D,GAG7D,OAFA92D,KAAoB,EACf82D,GAAUL,EAAYz2D,EAAQ,EAAG/lD,KAAKY,QACnCZ,KAAK+lD,IAAW,EAAK/lD,KAAK+lD,EAAS,EAC7C,EAEArkB,EAAOxhC,UAAUwz1B,aACjBhyzB,EAAOxhC,UAAUm9G,aAAe,SAAuBt3D,EAAQ82D,GAI7D,OAHA92D,KAAoB,EACf82D,GAAUL,EAAYz2D,EAAQ,EAAG/lD,KAAKY,SAElCZ,KAAK+lD,GACT/lD,KAAK+lD,EAAS,IAAM,EACpB/lD,KAAK+lD,EAAS,IAAM,IACD,SAAnB/lD,KAAK+lD,EAAS,EACrB,EAEArkB,EAAOxhC,UAAUyz1B,aACjBjyzB,EAAOxhC,UAAUo9G,aAAe,SAAuBv3D,EAAQ82D,GAI7D,OAHA92D,KAAoB,EACf82D,GAAUL,EAAYz2D,EAAQ,EAAG/lD,KAAKY,QAEpB,SAAfZ,KAAK+lD,IACT/lD,KAAK+lD,EAAS,IAAM,GACrB/lD,KAAK+lD,EAAS,IAAM,EACrB/lD,KAAK+lD,EAAS,GAClB,EAEArkB,EAAOxhC,UAAU0z1B,gBAAkBC,GAAmB,SAA0B9tyB,GAE9EukvB,EADAvkvB,KAAoB,EACG,UACvB,MAAMqjJ,EAAQppM,KAAK+lD,GACbu2K,EAAOt8N,KAAK+lD,EAAS,QACb19C,IAAV+gM,QAAgC/gM,IAATi0N,GACzBw3nB,EAAY/tyB,EAAQ/lD,KAAKY,OAAS,GAGpC,MAAMq5G,EAAKmvF,EACQ,IAAjBppM,OAAO+lD,GACU,MAAjB/lD,OAAO+lD,GACP/lD,OAAO+lD,GAAU,GAAK,GAElBi0D,EAAKh6G,OAAO+lD,GACC,IAAjB/lD,OAAO+lD,GACU,MAAjB/lD,OAAO+lD,GACPu2K,EAAO,GAAK,GAEd,OAAO6uR,OAAOlxY,IAAOkxY,OAAOnxY,IAAOmxY,OAAO,IAC5C,IAEAzpd,EAAOxhC,UAAU6z1B,gBAAkBF,GAAmB,SAA0B9tyB,GAE9EukvB,EADAvkvB,KAAoB,EACG,UACvB,MAAMqjJ,EAAQppM,KAAK+lD,GACbu2K,EAAOt8N,KAAK+lD,EAAS,QACb19C,IAAV+gM,QAAgC/gM,IAATi0N,GACzBw3nB,EAAY/tyB,EAAQ/lD,KAAKY,OAAS,GAGpC,MAAMo5G,EAAKovF,EAAQ,GAAK,GACL,MAAjBppM,OAAO+lD,GACU,IAAjB/lD,OAAO+lD,GACP/lD,OAAO+lD,GAEHk0D,EAAKj6G,OAAO+lD,GAAU,GAAK,GACd,MAAjB/lD,OAAO+lD,GACU,IAAjB/lD,OAAO+lD,GACPu2K,EAEF,OAAQ6uR,OAAOnxY,IAAOmxY,OAAO,KAAOA,OAAOlxY,EAC7C,IAEAv4E,EAAOxhC,UAAUq9G,UAAY,SAAoBx3D,EAAQlmB,EAAYg9E,GACnE92D,KAAoB,EACpBlmB,KAA4B,EACvBg9E,GAAUL,EAAYz2D,EAAQlmB,EAAY7/B,KAAKY,QAEpD,IAAIivG,EAAM7vG,KAAK+lD,GACXk3D,EAAM,EACNj8G,EAAI,EACR,OAASA,EAAI6+B,IAAeo9E,GAAO,MACjCpN,GAAO7vG,KAAK+lD,EAAS/kD,GAAKi8G,EAM5B,OAJAA,GAAO,IAEHpN,GAAOoN,IAAKpN,GAAOjnE,KAAKma,IAAI,EAAG,EAAIljB,IAEhCgwE,CACT,EAEAnuE,EAAOxhC,UAAUs9G,UAAY,SAAoBz3D,EAAQlmB,EAAYg9E,GACnE92D,KAAoB,EACpBlmB,KAA4B,EACvBg9E,GAAUL,EAAYz2D,EAAQlmB,EAAY7/B,KAAKY,QAEpD,IAAII,EAAI6+B,EACJo9E,EAAM,EACNpN,EAAM7vG,KAAK+lD,IAAW/kD,GAC1B,KAAOA,EAAI,IAAMi8G,GAAO,MACtBpN,GAAO7vG,KAAK+lD,IAAW/kD,GAAKi8G,EAM9B,OAJAA,GAAO,IAEHpN,GAAOoN,IAAKpN,GAAOjnE,KAAKma,IAAI,EAAG,EAAIljB,IAEhCgwE,CACT,EAEAnuE,EAAOxhC,UAAUu9G,SAAW,SAAmB13D,EAAQ82D,GAGrD,OAFA92D,KAAoB,EACf82D,GAAUL,EAAYz2D,EAAQ,EAAG/lD,KAAKY,QACtB,IAAfZ,KAAK+lD,IAC0B,GAA5B,IAAO/lD,KAAK+lD,GAAU,GADK/lD,KAAK+lD,EAE3C,EAEArkB,EAAOxhC,UAAUw9G,YAAc,SAAsB33D,EAAQ82D,GAC3D92D,KAAoB,EACf82D,GAAUL,EAAYz2D,EAAQ,EAAG/lD,KAAKY,QAC3C,MAAMivG,EAAM7vG,KAAK+lD,GAAW/lD,KAAK+lD,EAAS,IAAM,EAChD,OAAc,MAAN8pD,EAAsB,WAANA,EAAmBA,CAC7C,EAEAnuE,EAAOxhC,UAAUy9G,YAAc,SAAsB53D,EAAQ82D,GAC3D92D,KAAoB,EACf82D,GAAUL,EAAYz2D,EAAQ,EAAG/lD,KAAKY,QAC3C,MAAMivG,EAAM7vG,KAAK+lD,EAAS,GAAM/lD,KAAK+lD,IAAW,EAChD,OAAc,MAAN8pD,EAAsB,WAANA,EAAmBA,CAC7C,EAEAnuE,EAAOxhC,UAAU09G,YAAc,SAAsB73D,EAAQ82D,GAI3D,OAHA92D,KAAoB,EACf82D,GAAUL,EAAYz2D,EAAQ,EAAG/lD,KAAKY,QAEnCZ,KAAK+lD,GACV/lD,KAAK+lD,EAAS,IAAM,EACpB/lD,KAAK+lD,EAAS,IAAM,GACpB/lD,KAAK+lD,EAAS,IAAM,EACzB,EAEArkB,EAAOxhC,UAAU29G,YAAc,SAAsB93D,EAAQ82D,GAI3D,OAHA92D,KAAoB,EACf82D,GAAUL,EAAYz2D,EAAQ,EAAG/lD,KAAKY,QAEnCZ,KAAK+lD,IAAW,GACrB/lD,KAAK+lD,EAAS,IAAM,GACpB/lD,KAAK+lD,EAAS,IAAM,EACpB/lD,KAAK+lD,EAAS,EACnB,EAEArkB,EAAOxhC,UAAU8z1B,eAAiBH,GAAmB,SAAyB9tyB,GAE5EukvB,EADAvkvB,KAAoB,EACG,UACvB,MAAMqjJ,EAAQppM,KAAK+lD,GACbu2K,EAAOt8N,KAAK+lD,EAAS,QACb19C,IAAV+gM,QAAgC/gM,IAATi0N,GACzBw3nB,EAAY/tyB,EAAQ/lD,KAAKY,OAAS,GAGpC,MAAMivG,EAAM7vG,KAAK+lD,EAAS,GACL,IAAnB/lD,KAAK+lD,EAAS,GACK,MAAnB/lD,KAAK+lD,EAAS,IACbu2K,GAAQ,IAEX,OAAQ6uR,OAAOt7Y,IAAQs7Y,OAAO,KAC5BA,OAAO/hT,EACU,IAAjBppM,OAAO+lD,GACU,MAAjB/lD,OAAO+lD,GACP/lD,OAAO+lD,GAAU,GAAK,GAC1B,IAEArkB,EAAOxhC,UAAU+z1B,eAAiBJ,GAAmB,SAAyB9tyB,GAE5EukvB,EADAvkvB,KAAoB,EACG,UACvB,MAAMqjJ,EAAQppM,KAAK+lD,GACbu2K,EAAOt8N,KAAK+lD,EAAS,QACb19C,IAAV+gM,QAAgC/gM,IAATi0N,GACzBw3nB,EAAY/tyB,EAAQ/lD,KAAKY,OAAS,GAGpC,MAAMivG,GAAOu5F,GAAS,IACH,MAAjBppM,OAAO+lD,GACU,IAAjB/lD,OAAO+lD,GACP/lD,OAAO+lD,GAET,OAAQolc,OAAOt7Y,IAAQs7Y,OAAO,KAC5BA,OAAOnrf,OAAO+lD,GAAU,GAAK,GACZ,MAAjB/lD,OAAO+lD,GACU,IAAjB/lD,OAAO+lD,GACPu2K,EACJ,IAEA56L,EAAOxhC,UAAU49G,YAAc,SAAsB/3D,EAAQ82D,GAG3D,OAFA92D,KAAoB,EACf82D,GAAUL,EAAYz2D,EAAQ,EAAG/lD,KAAKY,QACpC21G,EAAQ5sD,KAAK3pD,KAAM+lD,GAAQ,EAAM,GAAI,EAC9C,EAEArkB,EAAOxhC,UAAU69G,YAAc,SAAsBh4D,EAAQ82D,GAG3D,OAFA92D,KAAoB,EACf82D,GAAUL,EAAYz2D,EAAQ,EAAG/lD,KAAKY,QACpC21G,EAAQ5sD,KAAK3pD,KAAM+lD,GAAQ,EAAO,GAAI,EAC/C,EAEArkB,EAAOxhC,UAAU89G,aAAe,SAAuBj4D,EAAQ82D,GAG7D,OAFA92D,KAAoB,EACf82D,GAAUL,EAAYz2D,EAAQ,EAAG/lD,KAAKY,QACpC21G,EAAQ5sD,KAAK3pD,KAAM+lD,GAAQ,EAAM,GAAI,EAC9C,EAEArkB,EAAOxhC,UAAU+9G,aAAe,SAAuBl4D,EAAQ82D,GAG7D,OAFA92D,KAAoB,EACf82D,GAAUL,EAAYz2D,EAAQ,EAAG/lD,KAAKY,QACpC21G,EAAQ5sD,KAAK3pD,KAAM+lD,GAAQ,EAAO,GAAI,EAC/C,EAQArkB,EAAOxhC,UAAUg01B,YACjBxyzB,EAAOxhC,UAAUg+G,YAAc,SAAsBl3G,EAAO++C,EAAQlmB,EAAYg9E,GAI9E,GAHA71G,GAASA,EACT++C,KAAoB,EACpBlmB,KAA4B,GACvBg9E,EAAU,CAEbJ,EAASz8G,KAAMgH,EAAO++C,EAAQlmB,EADb+I,KAAKma,IAAI,EAAG,EAAIljB,GAAc,EACK,EACtD,CAEA,IAAIo9E,EAAM,EACNj8G,EAAI,EAER,IADAhB,KAAK+lD,GAAkB,IAAR/+C,IACNhG,EAAI6+B,IAAeo9E,GAAO,MACjCj9G,KAAK+lD,EAAS/kD,GAAMgG,EAAQi2G,EAAO,IAGrC,OAAOl3D,EAASlmB,CAClB,EAEA6B,EAAOxhC,UAAUi01B,YACjBzyzB,EAAOxhC,UAAUi+G,YAAc,SAAsBn3G,EAAO++C,EAAQlmB,EAAYg9E,GAI9E,GAHA71G,GAASA,EACT++C,KAAoB,EACpBlmB,KAA4B,GACvBg9E,EAAU,CAEbJ,EAASz8G,KAAMgH,EAAO++C,EAAQlmB,EADb+I,KAAKma,IAAI,EAAG,EAAIljB,GAAc,EACK,EACtD,CAEA,IAAI7+B,EAAI6+B,EAAa,EACjBo9E,EAAM,EAEV,IADAj9G,KAAK+lD,EAAS/kD,GAAa,IAARgG,IACVhG,GAAK,IAAMi8G,GAAO,MACzBj9G,KAAK+lD,EAAS/kD,GAAMgG,EAAQi2G,EAAO,IAGrC,OAAOl3D,EAASlmB,CAClB,EAEA6B,EAAOxhC,UAAUk01B,WACjB1yzB,EAAOxhC,UAAUk+G,WAAa,SAAqBp3G,EAAO++C,EAAQ82D,GAKhE,OAJA71G,GAASA,EACT++C,KAAoB,EACf82D,GAAUJ,EAASz8G,KAAMgH,EAAO++C,EAAQ,EAAG,IAAM,GACtD/lD,KAAK+lD,GAAmB,IAAR/+C,EACT++C,EAAS,CAClB,EAEArkB,EAAOxhC,UAAUm01B,cACjB3yzB,EAAOxhC,UAAUm+G,cAAgB,SAAwBr3G,EAAO++C,EAAQ82D,GAMtE,OALA71G,GAASA,EACT++C,KAAoB,EACf82D,GAAUJ,EAASz8G,KAAMgH,EAAO++C,EAAQ,EAAG,MAAQ,GACxD/lD,KAAK+lD,GAAmB,IAAR/+C,EAChBhH,KAAK+lD,EAAS,GAAM/+C,IAAU,EACvB++C,EAAS,CAClB,EAEArkB,EAAOxhC,UAAUo01B,cACjB5yzB,EAAOxhC,UAAUo+G,cAAgB,SAAwBt3G,EAAO++C,EAAQ82D,GAMtE,OALA71G,GAASA,EACT++C,KAAoB,EACf82D,GAAUJ,EAASz8G,KAAMgH,EAAO++C,EAAQ,EAAG,MAAQ,GACxD/lD,KAAK+lD,GAAW/+C,IAAU,EAC1BhH,KAAK+lD,EAAS,GAAc,IAAR/+C,EACb++C,EAAS,CAClB,EAEArkB,EAAOxhC,UAAUq01B,cACjB7yzB,EAAOxhC,UAAUq+G,cAAgB,SAAwBv3G,EAAO++C,EAAQ82D,GAQtE,OAPA71G,GAASA,EACT++C,KAAoB,EACf82D,GAAUJ,EAASz8G,KAAMgH,EAAO++C,EAAQ,EAAG,WAAY,GAC5D/lD,KAAK+lD,EAAS,GAAM/+C,IAAU,GAC9BhH,KAAK+lD,EAAS,GAAM/+C,IAAU,GAC9BhH,KAAK+lD,EAAS,GAAM/+C,IAAU,EAC9BhH,KAAK+lD,GAAmB,IAAR/+C,EACT++C,EAAS,CAClB,EAEArkB,EAAOxhC,UAAUs01B,cACjB9yzB,EAAOxhC,UAAUs+G,cAAgB,SAAwBx3G,EAAO++C,EAAQ82D,GAQtE,OAPA71G,GAASA,EACT++C,KAAoB,EACf82D,GAAUJ,EAASz8G,KAAMgH,EAAO++C,EAAQ,EAAG,WAAY,GAC5D/lD,KAAK+lD,GAAW/+C,IAAU,GAC1BhH,KAAK+lD,EAAS,GAAM/+C,IAAU,GAC9BhH,KAAK+lD,EAAS,GAAM/+C,IAAU,EAC9BhH,KAAK+lD,EAAS,GAAc,IAAR/+C,EACb++C,EAAS,CAClB,EA8CArkB,EAAOxhC,UAAUu01B,iBAAmBZ,GAAmB,SAA2B7s1B,GAChF,OAAOks1B,EAAelz1B,KAAMgH,EADiE8d,UAAAlkB,OAAA,QAAAyH,IAAAyc,UAAA,GAAAA,UAAA,GAAG,EACrDqme,OAAO,GAAIA,OAAO,sBAC/D,IAEAzpd,EAAOxhC,UAAUw01B,iBAAmBb,GAAmB,SAA2B7s1B,GAChF,OAAOos1B,EAAepz1B,KAAMgH,EADiE8d,UAAAlkB,OAAA,QAAAyH,IAAAyc,UAAA,GAAAA,UAAA,GAAG,EACrDqme,OAAO,GAAIA,OAAO,sBAC/D,IAEAzpd,EAAOxhC,UAAUu+G,WAAa,SAAqBz3G,EAAO++C,EAAQlmB,EAAYg9E,GAG5E,GAFA71G,GAASA,EACT++C,KAAoB,GACf82D,EAAU,CACb,MAAM6B,EAAQ91E,KAAKma,IAAI,EAAI,EAAIljB,EAAc,GAE7C48E,EAASz8G,KAAMgH,EAAO++C,EAAQlmB,EAAY6+E,EAAQ,GAAIA,EACxD,CAEA,IAAI19G,EAAI,EACJi8G,EAAM,EACN0B,EAAM,EAEV,IADA3+G,KAAK+lD,GAAkB,IAAR/+C,IACNhG,EAAI6+B,IAAeo9E,GAAO,MAC7Bj2G,EAAQ,GAAa,IAAR23G,GAAsC,IAAzB3+G,KAAK+lD,EAAS/kD,EAAI,KAC9C29G,EAAM,GAER3+G,KAAK+lD,EAAS/kD,IAAOgG,EAAQi2G,GAAQ,GAAK0B,EAAM,IAGlD,OAAO54D,EAASlmB,CAClB,EAEA6B,EAAOxhC,UAAU0+G,WAAa,SAAqB53G,EAAO++C,EAAQlmB,EAAYg9E,GAG5E,GAFA71G,GAASA,EACT++C,KAAoB,GACf82D,EAAU,CACb,MAAM6B,EAAQ91E,KAAKma,IAAI,EAAI,EAAIljB,EAAc,GAE7C48E,EAASz8G,KAAMgH,EAAO++C,EAAQlmB,EAAY6+E,EAAQ,GAAIA,EACxD,CAEA,IAAI19G,EAAI6+B,EAAa,EACjBo9E,EAAM,EACN0B,EAAM,EAEV,IADA3+G,KAAK+lD,EAAS/kD,GAAa,IAARgG,IACVhG,GAAK,IAAMi8G,GAAO,MACrBj2G,EAAQ,GAAa,IAAR23G,GAAsC,IAAzB3+G,KAAK+lD,EAAS/kD,EAAI,KAC9C29G,EAAM,GAER3+G,KAAK+lD,EAAS/kD,IAAOgG,EAAQi2G,GAAQ,GAAK0B,EAAM,IAGlD,OAAO54D,EAASlmB,CAClB,EAEA6B,EAAOxhC,UAAU2+G,UAAY,SAAoB73G,EAAO++C,EAAQ82D,GAM9D,OALA71G,GAASA,EACT++C,KAAoB,EACf82D,GAAUJ,EAASz8G,KAAMgH,EAAO++C,EAAQ,EAAG,KAAO,KACnD/+C,EAAQ,IAAGA,EAAQ,IAAOA,EAAQ,GACtChH,KAAK+lD,GAAmB,IAAR/+C,EACT++C,EAAS,CAClB,EAEArkB,EAAOxhC,UAAU4+G,aAAe,SAAuB93G,EAAO++C,EAAQ82D,GAMpE,OALA71G,GAASA,EACT++C,KAAoB,EACf82D,GAAUJ,EAASz8G,KAAMgH,EAAO++C,EAAQ,EAAG,OAAS,OACzD/lD,KAAK+lD,GAAmB,IAAR/+C,EAChBhH,KAAK+lD,EAAS,GAAM/+C,IAAU,EACvB++C,EAAS,CAClB,EAEArkB,EAAOxhC,UAAU6+G,aAAe,SAAuB/3G,EAAO++C,EAAQ82D,GAMpE,OALA71G,GAASA,EACT++C,KAAoB,EACf82D,GAAUJ,EAASz8G,KAAMgH,EAAO++C,EAAQ,EAAG,OAAS,OACzD/lD,KAAK+lD,GAAW/+C,IAAU,EAC1BhH,KAAK+lD,EAAS,GAAc,IAAR/+C,EACb++C,EAAS,CAClB,EAEArkB,EAAOxhC,UAAU8+G,aAAe,SAAuBh4G,EAAO++C,EAAQ82D,GAQpE,OAPA71G,GAASA,EACT++C,KAAoB,EACf82D,GAAUJ,EAASz8G,KAAMgH,EAAO++C,EAAQ,EAAG,YAAa,YAC7D/lD,KAAK+lD,GAAmB,IAAR/+C,EAChBhH,KAAK+lD,EAAS,GAAM/+C,IAAU,EAC9BhH,KAAK+lD,EAAS,GAAM/+C,IAAU,GAC9BhH,KAAK+lD,EAAS,GAAM/+C,IAAU,GACvB++C,EAAS,CAClB,EAEArkB,EAAOxhC,UAAU++G,aAAe,SAAuBj4G,EAAO++C,EAAQ82D,GASpE,OARA71G,GAASA,EACT++C,KAAoB,EACf82D,GAAUJ,EAASz8G,KAAMgH,EAAO++C,EAAQ,EAAG,YAAa,YACzD/+C,EAAQ,IAAGA,EAAQ,WAAaA,EAAQ,GAC5ChH,KAAK+lD,GAAW/+C,IAAU,GAC1BhH,KAAK+lD,EAAS,GAAM/+C,IAAU,GAC9BhH,KAAK+lD,EAAS,GAAM/+C,IAAU,EAC9BhH,KAAK+lD,EAAS,GAAc,IAAR/+C,EACb++C,EAAS,CAClB,EAEArkB,EAAOxhC,UAAUy01B,gBAAkBd,GAAmB,SAA0B7s1B,GAC9E,OAAOks1B,EAAelz1B,KAAMgH,EAD+D8d,UAAAlkB,OAAA,QAAAyH,IAAAyc,UAAA,GAAAA,UAAA,GAAG,GAClDqme,OAAO,sBAAuBA,OAAO,sBACnF,IAEAzpd,EAAOxhC,UAAU001B,gBAAkBf,GAAmB,SAA0B7s1B,GAC9E,OAAOos1B,EAAepz1B,KAAMgH,EAD+D8d,UAAAlkB,OAAA,QAAAyH,IAAAyc,UAAA,GAAAA,UAAA,GAAG,GAClDqme,OAAO,sBAAuBA,OAAO,sBACnF,IAiBAzpd,EAAOxhC,UAAUg/G,aAAe,SAAuBl4G,EAAO++C,EAAQ82D,GACpE,OAAOF,EAAW38G,KAAMgH,EAAO++C,GAAQ,EAAM82D,EAC/C,EAEAn7E,EAAOxhC,UAAUi/G,aAAe,SAAuBn4G,EAAO++C,EAAQ82D,GACpE,OAAOF,EAAW38G,KAAMgH,EAAO++C,GAAQ,EAAO82D,EAChD,EAYAn7E,EAAOxhC,UAAUk/G,cAAgB,SAAwBp4G,EAAO++C,EAAQ82D,GACtE,OAAOC,EAAY98G,KAAMgH,EAAO++C,GAAQ,EAAM82D,EAChD,EAEAn7E,EAAOxhC,UAAUm/G,cAAgB,SAAwBr4G,EAAO++C,EAAQ82D,GACtE,OAAOC,EAAY98G,KAAMgH,EAAO++C,GAAQ,EAAO82D,EACjD,EAGAn7E,EAAOxhC,UAAUu3G,KAAO,SAAe72F,EAAQ0+F,EAAazvG,EAAOC,GACjE,IAAK4xB,EAAO61E,SAAS32F,GAAS,MAAM,IAAIsD,UAAU,+BAQlD,GAPKrU,IAAOA,EAAQ,GACfC,GAAe,IAARA,IAAWA,EAAM9P,KAAKY,QAC9B0+G,GAAe1+F,EAAOhgB,SAAQ0+G,EAAc1+F,EAAOhgB,QAClD0+G,IAAaA,EAAc,GAC5BxvG,EAAM,GAAKA,EAAMD,IAAOC,EAAMD,GAG9BC,IAAQD,EAAO,OAAO,EAC1B,GAAsB,IAAlB+Q,EAAOhgB,QAAgC,IAAhBZ,KAAKY,OAAc,OAAO,EAGrD,GAAI0+G,EAAc,EAChB,MAAM,IAAI1I,WAAW,6BAEvB,GAAI/mG,EAAQ,GAAKA,GAAS7P,KAAKY,OAAQ,MAAM,IAAIg2G,WAAW,sBAC5D,GAAI9mG,EAAM,EAAG,MAAM,IAAI8mG,WAAW,2BAG9B9mG,EAAM9P,KAAKY,SAAQkP,EAAM9P,KAAKY,QAC9BggB,EAAOhgB,OAAS0+G,EAAcxvG,EAAMD,IACtCC,EAAM8Q,EAAOhgB,OAAS0+G,EAAczvG,GAGtC,MAAM0W,EAAMzW,EAAMD,EAalB,OAXI7P,OAAS4gB,GAAqD,oBAApCkd,WAAW59B,UAAUq/G,WAEjDv/G,KAAKu/G,WAAWD,EAAazvG,EAAOC,GAEpCguB,WAAW59B,UAAU88B,IAAIlX,KACvBlF,EACA5gB,KAAK2rC,SAAS97B,EAAOC,GACrBwvG,GAIG/4F,CACT,EAMAmb,EAAOxhC,UAAUyL,KAAO,SAAekkG,EAAKhgG,EAAOC,EAAK2uB,GAEtD,GAAmB,kBAARoxE,EAAkB,CAS3B,GARqB,kBAAVhgG,GACT4uB,EAAW5uB,EACXA,EAAQ,EACRC,EAAM9P,KAAKY,QACa,kBAARkP,IAChB2uB,EAAW3uB,EACXA,EAAM9P,KAAKY,aAEIyH,IAAbo2B,GAA8C,kBAAbA,EACnC,MAAM,IAAIva,UAAU,6BAEtB,GAAwB,kBAAbua,IAA0BiD,EAAOs1E,WAAWv4E,GACrD,MAAM,IAAIva,UAAU,qBAAuBua,GAE7C,GAAmB,IAAfoxE,EAAIjvG,OAAc,CACpB,MAAMqmB,EAAO4oF,EAAIvuG,WAAW,IACV,SAAbm9B,GAAuBxX,EAAO,KAClB,WAAbwX,KAEFoxE,EAAM5oF,EAEV,CACF,KAA0B,kBAAR4oF,EAChBA,GAAY,IACY,mBAARA,IAChBA,EAAMn7E,OAAOm7E,IAIf,GAAIhgG,EAAQ,GAAK7P,KAAKY,OAASiP,GAAS7P,KAAKY,OAASkP,EACpD,MAAM,IAAI8mG,WAAW,sBAGvB,GAAI9mG,GAAOD,EACT,OAAO7P,KAQT,IAAIgB,EACJ,GANA6O,KAAkB,EAClBC,OAAczH,IAARyH,EAAoB9P,KAAKY,OAASkP,IAAQ,EAE3C+/F,IAAKA,EAAM,GAGG,kBAARA,EACT,IAAK7uG,EAAI6O,EAAO7O,EAAI8O,IAAO9O,EACzBhB,KAAKgB,GAAK6uG,MAEP,CACL,MAAMvvE,EAAQoB,EAAO61E,SAAS1H,GAC1BA,EACAnuE,EAAO3d,KAAK8rF,EAAKpxE,GACflY,EAAM+Z,EAAM1/B,OAClB,GAAY,IAAR2lB,EACF,MAAM,IAAIrC,UAAU,cAAgB2rF,EAClC,qCAEJ,IAAK7uG,EAAI,EAAGA,EAAI8O,EAAMD,IAAS7O,EAC7BhB,KAAKgB,EAAI6O,GAASywB,EAAMt/B,EAAIulB,EAEhC,CAEA,OAAOvmB,IACT,EAMA,MAAMga,EAAS,CAAC,EAChB,SAAS4zC,EAAGlpC,EAAKwnB,EAAYkpsB,GAC3Bp7tB,EAAO0K,GAAO,cAAwB0wtB,EACpC/utB,WAAAA,GACE2c,QAEAjjB,OAAOC,eAAehgB,KAAM,UAAW,CACrCgH,MAAOklC,EAAWtnB,MAAM5kB,KAAM8kB,WAC9B7E,UAAU,EACVC,cAAc,IAIhBlgB,KAAKI,KAAQ,GAAEJ,KAAKI,SAASskB,KAG7B1kB,KAAK2jC,aAEE3jC,KAAKI,IACd,CAEA,QAAI6mB,GACF,OAAOvC,CACT,CAEA,QAAIuC,CAAMjgB,GACR+Y,OAAOC,eAAehgB,KAAM,OAAQ,CAClCkgB,cAAc,EACdC,YAAY,EACZnZ,QACAiZ,UAAU,GAEd,CAEA1e,QAAAA,GACE,MAAQ,GAAEvB,KAAKI,SAASskB,OAAS1kB,KAAKC,SACxC,EAEJ,CA+BA,SAAS401B,EAAuBhlvB,GAC9B,IAAIuK,EAAM,GACNp5G,EAAI6uG,EAAIjvG,OACZ,MAAMiP,EAAmB,MAAXggG,EAAI,GAAa,EAAI,EACnC,KAAO7uG,GAAK6O,EAAQ,EAAG7O,GAAK,EAC1Bo5G,EAAO,IAAGvK,EAAIzpF,MAAMplB,EAAI,EAAGA,KAAKo5G,IAElC,MAAQ,GAAEvK,EAAIzpF,MAAM,EAAGplB,KAAKo5G,GAC9B,CAYA,SAAS+4uB,EAAYns1B,EAAOm7C,EAAKa,EAAKiD,EAAKF,EAAQlmB,GACjD,GAAI74B,EAAQg8C,GAAOh8C,EAAQm7C,EAAK,CAC9B,MAAMthD,EAAmB,kBAARshD,EAAmB,IAAM,GAC1C,IAAI2kC,EAWJ,MARIA,EAFAjnD,EAAa,EACH,IAARsiB,GAAaA,IAAQgpc,OAAO,GACrB,OAAMtqf,YAAYA,QAA2B,GAAlBg/B,EAAa,KAASh/B,IAEjD,SAAQA,QAA2B,GAAlBg/B,EAAa,GAAS,IAAIh/B,iBACtB,GAAlBg/B,EAAa,GAAS,IAAIh/B,IAG/B,MAAKshD,IAAMthD,YAAYmiD,IAAMniD,IAElC,IAAImZ,EAAO860B,iBAAiB,QAAShuwB,EAAO9/E,EACpD,EAtBF,SAAsBi/C,EAAKF,EAAQlmB,GACjCyqwB,EAAevkvB,EAAQ,eACH19C,IAAhB49C,EAAIF,SAAsD19C,IAA7B49C,EAAIF,EAASlmB,IAC5Ci0zB,EAAY/tyB,EAAQE,EAAIrlD,QAAUi/B,EAAa,GAEnD,CAkBEk1zB,CAAY9uyB,EAAKF,EAAQlmB,EAC3B,CAEA,SAASyqwB,EAAgBtjyB,EAAO5G,GAC9B,GAAqB,kBAAV4G,EACT,MAAM,IAAIgT,EAAO2s0B,qBAAqBvm1B,EAAM,SAAU4G,EAE1D,CAEA,SAAS8s1B,EAAa9s1B,EAAOpG,EAAQqD,GACnC,GAAI2kC,KAAK8Y,MAAM16C,KAAWA,EAExB,MADAsjyB,EAAetjyB,EAAO/C,GAChB,IAAI+V,EAAO860B,iBAAiB7w1B,GAAQ,SAAU,aAAc+C,GAGpE,GAAIpG,EAAS,EACX,MAAM,IAAIoZ,EAAOg70B,yBAGnB,MAAM,IAAIh70B,EAAO860B,iBAAiB7w1B,GAAQ,SACP,MAAKA,EAAO,EAAI,YAAYrD,IAC7BoG,EACpC,CAvFA4mD,EAAE,4BACA,SAAUxtD,GACR,OAAIA,EACM,GAAEA,gCAGL,gDACT,GAAGw2G,YACLhpD,EAAE,wBACA,SAAUxtD,EAAM62G,GACd,MAAQ,QAAO72G,4DAA+D62G,GAChF,GAAG/yF,WACL0pC,EAAE,oBACA,SAAUjmB,EAAKm/C,EAAO5mD,GACpB,IAAIqN,EAAO,iBAAgB5F,sBACvBstzB,EAAW/0zB,EAWf,OAVIxL,OAAO2gL,UAAUn1K,IAAU0I,KAAKC,IAAI3I,GAAS,GAAK,GACpD+0zB,EAAWJ,EAAsBn01B,OAAOw/B,IACd,kBAAVA,IAChB+0zB,EAAWv01B,OAAOw/B,IACdA,EAAQird,OAAO,IAAMA,OAAO,KAAOjrd,IAAUird,OAAO,IAAMA,OAAO,QACnE8pW,EAAWJ,EAAsBI,IAEnCA,GAAY,KAEd1nzB,GAAQ,eAAcu5C,eAAmBmuwB,IAClC1nzB,CACT,GAAGqpE,YAiEL,MAAM4I,EAAoB,oBAgB1B,SAASvH,EAAalB,EAAQgD,GAE5B,IAAIW,EADJX,EAAQA,GAAS5vF,IAEjB,MAAMvpB,EAASm2G,EAAOn2G,OACtB,IAAI6+G,EAAgB,KACpB,MAAMn/E,EAAQ,GAEd,IAAK,IAAIt/B,EAAI,EAAGA,EAAIJ,IAAUI,EAAG,CAI/B,GAHA05G,EAAY3D,EAAOz1G,WAAWN,GAG1B05G,EAAY,OAAUA,EAAY,MAAQ,CAE5C,IAAK+E,EAAe,CAElB,GAAI/E,EAAY,MAAQ,EAEjBX,GAAS,IAAM,GAAGz5E,EAAM1e,KAAK,IAAM,IAAM,KAC9C,QACF,CAAO,GAAI5gB,EAAI,IAAMJ,EAAQ,EAEtBm5G,GAAS,IAAM,GAAGz5E,EAAM1e,KAAK,IAAM,IAAM,KAC9C,QACF,CAGA69F,EAAgB/E,EAEhB,QACF,CAGA,GAAIA,EAAY,MAAQ,EACjBX,GAAS,IAAM,GAAGz5E,EAAM1e,KAAK,IAAM,IAAM,KAC9C69F,EAAgB/E,EAChB,QACF,CAGAA,EAAkE,OAArD+E,EAAgB,OAAU,GAAK/E,EAAY,MAC1D,MAAW+E,IAEJ1F,GAAS,IAAM,GAAGz5E,EAAM1e,KAAK,IAAM,IAAM,KAMhD,GAHA69F,EAAgB,KAGZ/E,EAAY,IAAM,CACpB,IAAKX,GAAS,GAAK,EAAG,MACtBz5E,EAAM1e,KAAK84F,EACb,MAAO,GAAIA,EAAY,KAAO,CAC5B,IAAKX,GAAS,GAAK,EAAG,MACtBz5E,EAAM1e,KACJ84F,GAAa,EAAM,IACP,GAAZA,EAAmB,IAEvB,MAAO,GAAIA,EAAY,MAAS,CAC9B,IAAKX,GAAS,GAAK,EAAG,MACtBz5E,EAAM1e,KACJ84F,GAAa,GAAM,IACnBA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,IAEvB,KAAO,MAAIA,EAAY,SASrB,MAAM,IAAIv6G,MAAM,sBARhB,IAAK45G,GAAS,GAAK,EAAG,MACtBz5E,EAAM1e,KACJ84F,GAAa,GAAO,IACpBA,GAAa,GAAM,GAAO,IAC1BA,GAAa,EAAM,GAAO,IACd,GAAZA,EAAmB,IAIvB,CACF,CAEA,OAAOp6E,CACT,CA2BA,SAAS43E,EAAevwE,GACtB,OAAO2uE,EAAOoJ,YAxHhB,SAAsB/3E,GAMpB,IAFAA,GAFAA,EAAMA,EAAI/lC,MAAM,KAAK,IAEX0uC,OAAO3vC,QAAQ6+G,EAAmB,KAEpC5+G,OAAS,EAAG,MAAO,GAE3B,KAAO+mC,EAAI/mC,OAAS,IAAM,GACxB+mC,GAAY,IAEd,OAAOA,CACT,CA4G4Bg4E,CAAYh4E,GACxC,CAEA,SAAS6xE,EAAYlqG,EAAKswG,EAAK75D,EAAQnlD,GACrC,IAAII,EACJ,IAAKA,EAAI,EAAGA,EAAIJ,KACTI,EAAI+kD,GAAU65D,EAAIh/G,QAAYI,GAAKsO,EAAI1O,UADpBI,EAExB4+G,EAAI5+G,EAAI+kD,GAAUz2C,EAAItO,GAExB,OAAOA,CACT,CAKA,SAASylC,EAAYphB,EAAKphB,GACxB,OAAOohB,aAAephB,GACZ,MAAPohB,GAAkC,MAAnBA,EAAIgB,aAA+C,MAAxBhB,EAAIgB,YAAYjmB,MACzDilB,EAAIgB,YAAYjmB,OAAS6D,EAAK7D,IACpC,CACA,SAASs3G,EAAaryF,GAEpB,OAAOA,IAAQA,CACjB,CAIA,MAAMk3F,EAAuB,WAC3B,MAAMsD,EAAW,mBACXC,EAAQ,IAAIx9F,MAAM,KACxB,IAAK,IAAIthB,EAAI,EAAGA,EAAI,KAAMA,EAAG,CAC3B,MAAM++G,EAAU,GAAJ/+G,EACZ,IAAK,IAAIw6B,EAAI,EAAGA,EAAI,KAAMA,EACxBskF,EAAMC,EAAMvkF,GAAKqkF,EAAS7+G,GAAK6+G,EAASrkF,EAE5C,CACA,OAAOskF,CACT,CAV6B,GAa7B,SAAS+zuB,EAAoBlr0B,GAC3B,MAAyB,qBAAXwie,OAAyB+pW,EAAyBvs0B,CAClE,CAEA,SAASus0B,IACP,MAAM,IAAI/01B,MAAM,uBAClB,sCCvjEA,IAAIg11B,EAAen+zB,EAAQ,OAEvBo+zB,EAAWp+zB,EAAQ,OAEnBq+zB,EAAWD,EAASD,EAAa,6BAErClwoB,EAAOrtL,QAAU,SAA4Bx3B,EAAMk11B,GAClD,IAAIC,EAAYJ,EAAa/01B,IAAQk11B,GACrC,MAAyB,oBAAdC,GAA4BF,EAASj11B,EAAM,gBAAkB,EAChEg11B,EAASG,GAEVA,CACR,sCCZA,IAAI/01B,EAAOw2B,EAAQ,OACfm+zB,EAAen+zB,EAAQ,OACvBw+zB,EAAoBx+zB,EAAQ,MAE5By+zB,EAAaN,EAAa,eAC1BO,EAASP,EAAa,8BACtBQ,EAAQR,EAAa,6BACrBS,EAAgBT,EAAa,mBAAmB,IAAS301B,EAAKslB,KAAK6v0B,EAAOD,GAE1EG,EAAkBV,EAAa,2BAA2B,GAC1DW,EAAOX,EAAa,cAExB,GAAIU,EACH,IACCA,EAAgB,CAAC,EAAG,IAAK,CAAE7u1B,MAAO,GACnC,CAAE,MAAOjH,GAER811B,EAAkB,IACnB,CAGD5woB,EAAOrtL,QAAU,SAAkBm+zB,GAClC,GAAgC,oBAArBA,EACV,MAAM,IAAIN,EAAW,0BAEtB,IAAIlxuB,EAAOqxuB,EAAcp11B,EAAMm11B,EAAO7w0B,WACtC,OAAO0w0B,EACNjxuB,EACA,EAAIuxuB,EAAK,EAAGC,EAAiBn11B,QAAUkkB,UAAUlkB,OAAS,KAC1D,EAEF,EAEA,IAAIo11B,EAAY,WACf,OAAOJ,EAAcp11B,EAAMk11B,EAAQ5w0B,UACpC,EAEI+w0B,EACHA,EAAgB5woB,EAAOrtL,QAAS,QAAS,CAAE5wB,MAAOgv1B,IAElD/woB,EAAOrtL,QAAQhT,MAAQox0B,yBC1CxB,IAAIt0zB,EAAS1K,EAAAA,OAAAA,OACTwkzB,EAAYxkzB,EAAAA,OAAAA,UACZqvzB,EAAgBrvzB,EAAAA,OAAAA,EAGpB,SAASwpzB,EAAYyV,GACnBza,EAAU11zB,KAAK9lB,MACfA,KAAKi21B,SAA+B,kBAAbA,EACnBj21B,KAAKi21B,SACPj21B,KAAKi21B,GAAYj21B,KAAKk21B,eAEtBl21B,KAAKstpB,MAAQttpB,KAAKk21B,eAEhBl21B,KAAK+80B,SACP/80B,KAAKm21B,QAAUn21B,KAAK+80B,OACpB/80B,KAAK+80B,OAAS,MAEhB/80B,KAAKo21B,SAAW,KAChBp21B,KAAKq21B,UAAY,IACnB,CAhBer/zB,EAAQ,MAiBvBi+sB,CAASurG,EAAYhF,GAErBgF,EAAWtg1B,UAAUm3B,OAAS,SAAU1tB,EAAM2s1B,EAAUC,GAClC,kBAAT5s1B,IACTA,EAAO+3B,EAAO3d,KAAKpa,EAAM2s1B,IAG3B,IAAIE,EAAUx21B,KAAK680B,QAAQlz0B,GAC3B,OAAI3J,KAAKi21B,SAAiBj21B,MAEtBu21B,IACFC,EAAUx21B,KAAKy21B,UAAUD,EAASD,IAG7BC,EACT,EAEAhW,EAAWtg1B,UAAUu+0B,eAAiB,WAAa,EACnD+B,EAAWtg1B,UAAU+80B,WAAa,WAChC,MAAM,IAAI980B,MAAM,8CAClB,EAEAqg1B,EAAWtg1B,UAAUg90B,WAAa,WAChC,MAAM,IAAI/80B,MAAM,8CAClB,EAEAqg1B,EAAWtg1B,UAAUi90B,OAAS,WAC5B,MAAM,IAAIh90B,MAAM,yCAClB,EAEAqg1B,EAAWtg1B,UAAU6l1B,WAAa,SAAUp80B,EAAM+wB,EAAG3U,GACnD,IAAI1hB,EACJ,IACMrE,KAAKi21B,SACPj21B,KAAK680B,QAAQlz0B,GAEb3J,KAAK4hB,KAAK5hB,KAAK680B,QAAQlz0B,GAE3B,CAAE,MAAO5J,GACPsE,EAAMtE,CACR,CAAE,QACAgmB,EAAK1hB,EACP,CACF,EACAm80B,EAAWtg1B,UAAUur1B,OAAS,SAAUzl0B,GACtC,IAAI3hB,EACJ,IACErE,KAAK4hB,KAAK5hB,KAAKm21B,UACjB,CAAE,MAAOp21B,GACPsE,EAAMtE,CACR,CAEAimB,EAAK3hB,EACP,EACAm80B,EAAWtg1B,UAAUg21B,eAAiB,SAAUK,GAC9C,IAAIC,EAAUx21B,KAAKm21B,WAAaz0zB,EAAO05E,MAAM,GAI7C,OAHIm7uB,IACFC,EAAUx21B,KAAKy21B,UAAUD,EAASD,GAAW,IAExCC,CACT,EAEAhW,EAAWtg1B,UAAUu21B,UAAY,SAAUzv1B,EAAOyuuB,EAAKihH,GAMrD,GALK121B,KAAKo21B,WACRp21B,KAAKo21B,SAAW,IAAI/P,EAAc5wG,GAClCz1uB,KAAKq21B,UAAY5gH,GAGfz1uB,KAAKq21B,YAAc5gH,EAAK,MAAM,IAAIt1uB,MAAM,0BAE5C,IAAImpC,EAAMtpC,KAAKo21B,SAASl/uB,MAAMlwG,GAK9B,OAJI0v1B,IACFptzB,GAAOtpC,KAAKo21B,SAAStm1B,OAGhBw5B,CACT,EAEA27K,EAAOrtL,QAAU4ozB,sCClGjB,SAASng1B,EAAEN,GAAG,IAAIU,EAAEgf,EAAE5e,EAAE,GAAG,GAAG,iBAAiBd,GAAG,iBAAiBA,EAAEc,GAAGd,OAAO,GAAG,iBAAiBA,EAAE,GAAGuiB,MAAMC,QAAQxiB,GAAG,IAAIU,EAAE,EAAEA,EAAEV,EAAEa,OAAOH,IAAIV,EAAEU,KAAKgf,EAAEpf,EAAEN,EAAEU,OAAOI,IAAIA,GAAG,KAAKA,GAAG4e,QAAQ,IAAIhf,KAAKV,EAAEA,EAAEU,KAAKI,IAAIA,GAAG,KAAKA,GAAGJ,GAAG,OAAOI,CAAC,CAA2H,IAAnH,WAAgB,IAAI,IAAId,EAAEU,EAAEgf,EAAE,EAAE5e,EAAE,GAAG4e,EAAEqF,UAAUlkB,SAASb,EAAE+kB,UAAUrF,QAAQhf,EAAEJ,EAAEN,MAAMc,IAAIA,GAAG,KAAKA,GAAGJ,GAAG,OAAOI,CAAC,+CCA7V811B,EAAW3/zB,EAAQ,MACnBkoyB,EAAKloyB,EAAQ,OAEjBiuL,EAAOrtL,QAAU,SAAqBgszB,GACpC,OAAO,IAAIgT,EAAKhT,EAClB,EAEA,IAAIj5pB,EAAU,CACZksqB,UAAW,CACTz21B,KAAM,YACNy/B,WAAY,IAEdi3zB,UAAW,CACT121B,KAAM,OACNy/B,WAAY,IAEdk3zB,WAAY,CACV321B,KAAM,OACNy/B,WAAY,IAEdm3zB,WAAY,CACV521B,KAAM,OACNy/B,WAAY,IAEdo3zB,QAAS,CACP721B,KAAM,UACNy/B,WAAY,IAEdq3zB,UAAW,CACT921B,KAAM,OACNy/B,WAAY,IAEds3zB,UAAW,CACT/21B,KAAM,OACNy/B,WAAY,KAUhB,SAAS+2zB,EAAMhT,GACb5j1B,KAAKo31B,UAAYzsqB,EAAQi5pB,GACpB5j1B,KAAKo31B,YACRp31B,KAAKo31B,UAAY,CACfh31B,KAAMwj1B,IAGV5j1B,KAAK4j1B,MAAQ,IAAI+S,EAASU,GAAGr31B,KAAKo31B,UAAUh31B,MAC5CJ,KAAKukB,UAAO,CACd,CAuDA,SAAS+y0B,EAAmBvkyB,EAAI0irB,EAAKlvtB,GAC9BjE,MAAMC,QAAQwwC,KACjBA,EAAKA,EAAGurE,WAEV,IAAIr4E,EAAM,IAAIvkB,EAAOqxB,GACrB,GAAIxsC,GAAO0/B,EAAIrlD,OAAS2lB,EAAK,CAC3B,IAAI65yB,EAAQ,IAAI1+xB,EAAOnb,EAAM0/B,EAAIrlD,QACjCw/zB,EAAMz0zB,KAAK,GACXs6C,EAAMvkB,EAAOhf,OAAO,CAAC09yB,EAAOn6wB,GAC9B,CACA,OAAKwvrB,EAGIxvrB,EAAI1kD,SAASk0uB,GAFbxvrB,CAIX,CArFA0kI,EAAQ4kpB,KAAO5kpB,EAAQmsqB,UACvBnsqB,EAAQ4sqB,KAAO5sqB,EAAQ6sqB,UAAY7sqB,EAAQosqB,WAC3CpsqB,EAAQ6kpB,KAAO7kpB,EAAQ8sqB,UAAY9sqB,EAAQqsqB,WAC3CrsqB,EAAQ+sqB,KAAO/sqB,EAAQusqB,UACvBvsqB,EAAQgtqB,KAAOhtqB,EAAQwsqB,UAavBP,EAAK121B,UAAU031B,aAAe,SAAUniH,EAAK7iuB,GAE3C,OADA5S,KAAKukB,KAAOvkB,KAAK4j1B,MAAMiU,aAChB731B,KAAK831B,aAAariH,EAAK7iuB,EAChC,EAEAgk1B,EAAK121B,UAAU631B,cAAgB,SAAUh7tB,EAAOi7tB,EAAOviH,GAOrD,OANAuiH,EAAQA,GAAS,OACZt2zB,EAAO61E,SAASwlB,KACnBA,EAAQ,IAAIr7F,EAAOq7F,EAAOi7tB,IAIrBV,EAFQt31B,KAAK4j1B,MAAMqU,cAAcl7tB,GAAOm7tB,YAC5Bj7uB,IAAIj9G,KAAKukB,KAAK4z0B,cAAcC,OACjB3iH,EAAKz1uB,KAAKo31B,UAAUv3zB,WACpD,EAEA+2zB,EAAK121B,UAAU431B,aAAe,SAAUriH,EAAK7iuB,GAC3C,IAAIqS,EAAMjlB,KAAKukB,KAAK2z0B,UAAqB,eAAXtl1B,GAAyB,GAQvD,MAPe,WAAXA,IACEqS,EAAIA,EAAIrkB,OAAS,GAAK,EACxBqkB,EAAI,GAAK,EAETA,EAAI,GAAK,GAGNqy0B,EAAkBry0B,EAAKwwtB,EAChC,EAEAmhH,EAAK121B,UAAUm41B,cAAgB,SAAU5iH,GACvC,OAAO6hH,EAAkBt31B,KAAKukB,KAAK4z0B,aAAc1iH,EACnD,EAEAmhH,EAAK121B,UAAUo41B,aAAe,SAAUlU,EAAK3uG,GAM3C,OALAA,EAAMA,GAAO,OACR/zsB,EAAO61E,SAAS6suB,KACnBA,EAAM,IAAI1izB,EAAO0izB,EAAK3uG,IAExBz1uB,KAAKukB,KAAKg00B,cAAcnU,GACjBpk1B,IACT,EAEA421B,EAAK121B,UAAUs41B,cAAgB,SAAUxX,EAAMvrG,GAC7CA,EAAMA,GAAO,OACR/zsB,EAAO61E,SAASypuB,KACnBA,EAAO,IAAIt/yB,EAAOs/yB,EAAMvrG,IAG1B,IAAIgjH,EAAQ,IAAIv5B,EAAG8hB,GAInB,OAHAyX,EAAQA,EAAMl31B,SAAS,IACvBvB,KAAKukB,KAAOvkB,KAAK4j1B,MAAMiU,aACvB731B,KAAKukB,KAAKm00B,eAAeD,GAClBz41B,IACT,sCCzGA,IAAIi1uB,EAAWj+sB,EAAQ,OACnBqpF,EAAMrpF,EAAQ,OACd2h0B,EAAY3h0B,EAAQ,OACpB4owB,EAAM5owB,EAAQ,OACdo+sB,EAAOp+sB,EAAQ,OAEnB,SAAS4h0B,EAAMh7zB,GACbw3sB,EAAKtvtB,KAAK9lB,KAAM,UAEhBA,KAAK0i1B,MAAQ9kzB,CACf,CAEAq3sB,EAAS2jH,EAAMxjH,GAEfwjH,EAAK141B,UAAU280B,QAAU,SAAUlz0B,GACjC3J,KAAK0i1B,MAAMrrzB,OAAO1tB,EACpB,EAEAiv1B,EAAK141B,UAAU680B,OAAS,WACtB,OAAO/80B,KAAK0i1B,MAAMjrzB,QACpB,EAEAwtL,EAAOrtL,QAAU,SAAqBszvB,GAEpC,MAAY,SADZA,EAAMA,EAAIrrwB,eACgB,IAAIwgG,EAClB,WAAR6qqB,GAA4B,cAARA,EAA4B,IAAIytE,EAEjD,IAAIC,EAAKh5D,EAAI1U,GACtB,yBC7BA,IAAI7qqB,EAAMrpF,EAAQ,OAElBiuL,EAAOrtL,QAAU,SAAU+H,GACzB,OAAO,IAAI0gF,GAAMhpF,OAAOsI,GAAQlI,QAClC,sCCHA,IAAIw9sB,EAAWj+sB,EAAQ,OACnB6h0B,EAAS7h0B,EAAQ,OACjBo+sB,EAAOp+sB,EAAQ,OACf0K,EAAS1K,EAAAA,OAAAA,OACT4/B,EAAM5/B,EAAQ,OACd2h0B,EAAY3h0B,EAAQ,OAEpB4owB,EAAM5owB,EAAQ,OAEd8h0B,EAAQp3zB,EAAO05E,MAAM,KAEzB,SAAS4vqB,EAAME,EAAKjmwB,GAClBmwtB,EAAKtvtB,KAAK9lB,KAAM,UACG,kBAARilB,IACTA,EAAMyc,EAAO3d,KAAKkB,IAGpB,IAAI8z0B,EAAqB,WAAR7tE,GAA4B,WAARA,EAAoB,IAAM,IAE/DlrxB,KAAKg51B,KAAO9tE,EACZlrxB,KAAKuoB,KAAOtD,EACRA,EAAIrkB,OAASm41B,GAEf9z0B,GADmB,WAARimwB,EAAmB,IAAIytE,EAAc/4D,EAAI1U,IACzC7zvB,OAAOpS,GAAKwS,SACdxS,EAAIrkB,OAASm41B,IACtB9z0B,EAAMyc,EAAOhf,OAAO,CAACuC,EAAK6z0B,GAAQC,IAMpC,IAHA,IAAIE,EAAOj51B,KAAKk51B,MAAQx3zB,EAAOo1E,YAAYiivB,GACvCI,EAAOn51B,KAAKo51B,MAAQ13zB,EAAOo1E,YAAYiivB,GAElC/31B,EAAI,EAAGA,EAAI+31B,EAAW/31B,IAC7Bi41B,EAAKj41B,GAAc,GAATikB,EAAIjkB,GACdm41B,EAAKn41B,GAAc,GAATikB,EAAIjkB,GAEhBhB,KAAK0i1B,MAAgB,WAARx3D,EAAmB,IAAIytE,EAAc/4D,EAAI1U,GACtDlrxB,KAAK0i1B,MAAMrrzB,OAAO4h0B,EACpB,CAEAhkH,EAAS+1C,EAAM51C,GAEf41C,EAAK9qxB,UAAU280B,QAAU,SAAUlz0B,GACjC3J,KAAK0i1B,MAAMrrzB,OAAO1tB,EACpB,EAEAqhxB,EAAK9qxB,UAAU680B,OAAS,WACtB,IAAI77zB,EAAIlhB,KAAK0i1B,MAAMjrzB,SAEnB,OADyB,WAAdz3B,KAAKg51B,KAAoB,IAAIL,EAAc/4D,EAAI5/xB,KAAKg51B,OACnD3h0B,OAAOr3B,KAAKo51B,OAAO/h0B,OAAOnW,GAAGuW,QAC3C,EAEAwtL,EAAOrtL,QAAU,SAAqBszvB,EAAKjmwB,GAEzC,MAAY,YADZimwB,EAAMA,EAAIrrwB,gBACsB,cAARqrwB,EACf,IAAIF,EAAK,SAAU/lwB,GAEhB,QAARimwB,EACK,IAAI2tE,EAAOjiyB,EAAK3xC,GAElB,IAAI+lwB,EAAKE,EAAKjmwB,EACvB,sCC5DA,IAAIgwtB,EAAWj+sB,EAAQ,OACnB0K,EAAS1K,EAAAA,OAAAA,OAETo+sB,EAAOp+sB,EAAQ,OAEf8h0B,EAAQp3zB,EAAO05E,MAAM,KACrB29uB,EAAY,GAEhB,SAAS/tE,EAAME,EAAKjmwB,GAClBmwtB,EAAKtvtB,KAAK9lB,KAAM,UACG,kBAARilB,IACTA,EAAMyc,EAAO3d,KAAKkB,IAGpBjlB,KAAKg51B,KAAO9tE,EACZlrxB,KAAKuoB,KAAOtD,EAERA,EAAIrkB,OAASm41B,EACf9z0B,EAAMimwB,EAAIjmwB,GACDA,EAAIrkB,OAASm41B,IACtB9z0B,EAAMyc,EAAOhf,OAAO,CAACuC,EAAK6z0B,GAAQC,IAMpC,IAHA,IAAIE,EAAOj51B,KAAKk51B,MAAQx3zB,EAAOo1E,YAAYiivB,GACvCI,EAAOn51B,KAAKo51B,MAAQ13zB,EAAOo1E,YAAYiivB,GAElC/31B,EAAI,EAAGA,EAAI+31B,EAAW/31B,IAC7Bi41B,EAAKj41B,GAAc,GAATikB,EAAIjkB,GACdm41B,EAAKn41B,GAAc,GAATikB,EAAIjkB,GAGhBhB,KAAK0i1B,MAAQ,CAACuW,EAChB,CAEAhkH,EAAS+1C,EAAM51C,GAEf41C,EAAK9qxB,UAAU280B,QAAU,SAAUlz0B,GACjC3J,KAAK0i1B,MAAM9g0B,KAAKjY,EAClB,EAEAqhxB,EAAK9qxB,UAAU680B,OAAS,WACtB,IAAI77zB,EAAIlhB,KAAKg51B,KAAKt3zB,EAAOhf,OAAO1iB,KAAK0i1B,QACrC,OAAO1i1B,KAAKg51B,KAAKt3zB,EAAOhf,OAAO,CAAC1iB,KAAKo51B,MAAOl40B,IAC9C,EACA+jM,EAAOrtL,QAAUozvB,sCC3CjBpzvB,EAAQqhzB,YAAcrhzB,EAAQ+tB,IAAM/tB,EAAQyh0B,kBAAoBzh0B,EAAQ0h0B,KAAO,EAAf1h0B,OAChEA,EAAQqzvB,WAAarzvB,EAAQgh0B,KAAO,EAAfhh0B,OACrBA,EAAQuzvB,WAAavzvB,EAAQozvB,KAAO,EAAfpzvB,OAErB,IAAI2h0B,EAAQvi0B,EAAQ,OAChBwi0B,EAAWz50B,OAAOwE,KAAKg10B,GACvBE,EAAS,CAAC,OAAQ,SAAU,SAAU,SAAU,SAAU,MAAO,UAAU/20B,OAAO820B,GACtF5h0B,EAAQ8h0B,UAAY,WAClB,OAAOD,CACT,EAEA,IAAI9g0B,EAAI3B,EAAQ,OAChBY,EAAQ+h0B,OAAShh0B,EAAEgh0B,OACnB/h0B,EAAQgi0B,WAAajh0B,EAAEih0B,WAEvB,IAAIre,EAAMvkzB,EAAQ,OAElBY,EAAQ2lzB,OAAShC,EAAIgC,OACrB3lzB,EAAQ0lzB,aAAe/B,EAAI+B,aAC3B1lzB,EAAQ6lzB,SAAWlC,EAAIkC,SACvB7lzB,EAAQ4lzB,eAAiBjC,EAAIiC,eAC7B5lzB,EAAQ+lzB,SAAWpC,EAAIoC,SACvB/lzB,EAAQ8lzB,eAAiBnC,EAAImC,eAC7B9lzB,EAAQimzB,WAAatC,EAAIsC,WACzBjmzB,EAAQgmzB,iBAAmBrC,EAAIqC,iBAC/BhmzB,EAAQmmzB,WAAaxC,EAAIwC,WACzBnmzB,EAAQkmzB,YAAcvC,EAAIuC,YAE1B,IAAI+b,EAAK7i0B,EAAQ,MAEjBY,EAAQki0B,mBAAqBD,EAAGC,mBAChCli0B,EAAQmi0B,yBAA2BF,EAAGE,yBACtCni0B,EAAQoi0B,iBAAmBH,EAAGG,iBAC9Bpi0B,EAAQqi0B,oBAAsBJ,EAAGI,oBACjCri0B,EAAQsi0B,cAAgBL,EAAGK,cAE3B,IAAI36zB,EAAOvI,EAAQ,OAEnBY,EAAQwzvB,WAAa7rvB,EAAK6rvB,WAC1BxzvB,EAAQ2qzB,KAAOhjzB,EAAKgjzB,KACpB3qzB,EAAQkrzB,aAAevjzB,EAAKujzB,aAC5BlrzB,EAAQirzB,OAAStjzB,EAAKsjzB,OAEtBjrzB,EAAQui0B,WAAa,EAArBvi0B,OAEA,IAAIwi0B,EAAgBpj0B,EAAQ,OAE5BY,EAAQwi0B,cAAgBA,EAAcA,cACtCxi0B,EAAQyi0B,eAAiBD,EAAcC,eACvCzi0B,EAAQ0i0B,cAAgBF,EAAcE,cACtC1i0B,EAAQ2i0B,eAAiBH,EAAcG,eAevC,IAAIC,EAAKxj0B,EAAQ,OAEjBY,EAAQ6i0B,WAAaD,EAAGC,WACxB7i0B,EAAQ8i0B,eAAiBF,EAAGE,eAE5B9i0B,EAAQ+i0B,kBAAoB,WAC1B,MAAM,IAAIx61B,MAAM,CACd,kDACA,0BACA,0DACA6mB,KAAK,MACT,EAEA4Q,EAAQk9sB,UAAY,CAClB,0BAA6B,EAC7B,qBAAwB,EACxB,6BAAgC,EAChC,0BAA6B,EAC7B,YAAe,EACf,aAAgB,EAChB,kBAAqB,EACrB,mBAAsB,EACtB,eAAkB,EAClB,uBAA0B,EAC1B,iBAAoB,EACpB,sBAAyB,EACzB,4BAA+B,EAC/B,8BAAiC,EACjC,wBAA2B,qCC7F7B/0tB,OAAOC,eAAe4X,EAAS,aAAc,CAC3C5wB,OAAO,IAET4wB,EAAAA,aAAkB,EAElB,IAAIgj0B,EAAoB,SAA2Br0uB,EAASs0uB,GAC1D,OAAQt0uB,GACN,IAAK,IACH,OAAOs0uB,EAAW1o1B,KAAK,CACrBN,MAAO,UAGX,IAAK,KACH,OAAOgp1B,EAAW1o1B,KAAK,CACrBN,MAAO,WAGX,IAAK,MACH,OAAOgp1B,EAAW1o1B,KAAK,CACrBN,MAAO,SAIX,QACE,OAAOgp1B,EAAW1o1B,KAAK,CACrBN,MAAO,SAGf,EAEIip1B,EAAoB,SAA2Bv0uB,EAASs0uB,GAC1D,OAAQt0uB,GACN,IAAK,IACH,OAAOs0uB,EAAW1pzB,KAAK,CACrBt/B,MAAO,UAGX,IAAK,KACH,OAAOgp1B,EAAW1pzB,KAAK,CACrBt/B,MAAO,WAGX,IAAK,MACH,OAAOgp1B,EAAW1pzB,KAAK,CACrBt/B,MAAO,SAIX,QACE,OAAOgp1B,EAAW1pzB,KAAK,CACrBt/B,MAAO,SAGf,EA+CIqoH,EAJiB,CACnBvhG,EAAGmi0B,EACH5g0B,EA3C0B,SAA+BqsF,EAASs0uB,GAClE,IAQIE,EARAC,EAAcz0uB,EAAQpD,MAAM,cAAgB,GAC5C83uB,EAAcD,EAAY,GAC1BE,EAAcF,EAAY,GAE9B,IAAKE,EACH,OAAON,EAAkBr0uB,EAASs0uB,GAKpC,OAAQI,GACN,IAAK,IACHF,EAAiBF,EAAWvzQ,SAAS,CACnCz1kB,MAAO,UAET,MAEF,IAAK,KACHkp1B,EAAiBF,EAAWvzQ,SAAS,CACnCz1kB,MAAO,WAET,MAEF,IAAK,MACHkp1B,EAAiBF,EAAWvzQ,SAAS,CACnCz1kB,MAAO,SAET,MAGF,QACEkp1B,EAAiBF,EAAWvzQ,SAAS,CACnCz1kB,MAAO,SAKb,OAAOkp1B,EAAep61B,QAAQ,WAAYi61B,EAAkBK,EAAaJ,IAAal61B,QAAQ,WAAYm61B,EAAkBI,EAAaL,GAC3I,GAOAjj0B,EAAAA,QAAkBsiG,EAClB+qF,EAAOrtL,QAAUA,EAAQliB,wCCtGzB,IAAIglpB,EAAoB,SAA2B1zpB,GAClD,OAID,SAAyBA,GACxB,QAASA,GAA0B,kBAAVA,CAC1B,CANQ86M,CAAgB96M,KAQxB,SAAmBA,GAClB,IAAIu6c,EAAcxhc,OAAO7f,UAAUqB,SAASukB,KAAK9e,GAEjD,MAAuB,oBAAhBu6c,GACa,kBAAhBA,GAQL,SAAwBv6c,GACvB,OAAOA,EAAMuutB,WAAa4lI,CAC3B,CATKC,CAAep01B,EACpB,CAbMq0pB,CAAUr0pB,EAChB,EAeA,IACIm01B,EADiC,oBAAXt30B,QAAyBA,OAAO4yF,IAClB5yF,OAAO4yF,IAAI,iBAAmB,MAUtE,SAASgkjB,EAA8BzzpB,EAAOsD,GAC7C,OAA0B,IAAlBA,EAAQ2mC,OAAmB3mC,EAAQowpB,kBAAkB1zpB,GAC1Di3I,EANJ,SAAqBpuC,GACpB,OAAOvtF,MAAMC,QAAQstF,GAAO,GAAK,CAAC,CACnC,CAIc+qjB,CAAY5zpB,GAAQA,EAAOsD,GACrCtD,CACJ,CAEA,SAAS6zpB,EAAkBj6oB,EAAQmE,EAAQza,GAC1C,OAAOsW,EAAO8B,OAAOqC,GAAQ7U,KAAI,SAAS+1G,GACzC,OAAOw0iB,EAA8Bx0iB,EAAS37G,EAC/C,GACD,CAkBA,SAASojjB,EAAQ9siB,GAChB,OAAOb,OAAOwE,KAAK3D,GAAQ8B,OAT5B,SAAyC9B,GACxC,OAAOb,OAAOyE,sBACXzE,OAAOyE,sBAAsB5D,GAAQnM,QAAO,SAASu9N,GACtD,OAAOjyN,OAAOwJ,qBAAqBzD,KAAKlF,EAAQoxN,EACjD,IACE,EACJ,CAGmC8ob,CAAgCl6oB,GACnE,CAEA,SAASm6oB,EAAmB12oB,EAAQy4B,GACnC,IACC,OAAOA,KAAYz4B,CACpB,CAAE,MAAMqW,GACP,OAAO,CACR,CACD,CASA,SAASsgoB,EAAYp6oB,EAAQmE,EAAQza,GACpC,IAAIkrd,EAAc,CAAC,EAiBnB,OAhBIlrd,EAAQowpB,kBAAkB95oB,IAC7B8siB,EAAQ9siB,GAAQoE,SAAQ,SAASC,GAChCuwc,EAAYvwc,GAAOw1oB,EAA8B75oB,EAAOqE,GAAM3a,EAC/D,IAEDojjB,EAAQ3oiB,GAAQC,SAAQ,SAASC,IAblC,SAA0BrE,EAAQqE,GACjC,OAAO81oB,EAAmBn6oB,EAAQqE,MAC5BlF,OAAO6Y,eAAe9S,KAAKlF,EAAQqE,IACpClF,OAAOwJ,qBAAqBzD,KAAKlF,EAAQqE,GAC/C,EAUMg2oB,CAAiBr6oB,EAAQqE,KAIzB81oB,EAAmBn6oB,EAAQqE,IAAQ3a,EAAQowpB,kBAAkB31oB,EAAOE,IACvEuwc,EAAYvwc,GAhDf,SAA0BA,EAAK3a,GAC9B,IAAKA,EAAQ4wpB,YACZ,OAAOj9gB,EAER,IAAIi9gB,EAAc5wpB,EAAQ4wpB,YAAYj2oB,GACtC,MAA8B,oBAAhBi2oB,EAA6BA,EAAcj9gB,CAC1D,CA0CsBk9gB,CAAiBl2oB,EAAK3a,EAAtB6wpB,CAA+Bv6oB,EAAOqE,GAAMF,EAAOE,GAAM3a,GAE5Ekrd,EAAYvwc,GAAOw1oB,EAA8B11oB,EAAOE,GAAM3a,GAEhE,IACOkrd,CACR,CAEA,SAASv3U,EAAUr9H,EAAQmE,EAAQza,IAClCA,EAAUA,GAAW,CAAC,GACdgxpB,WAAahxpB,EAAQgxpB,YAAcT,EAC3CvwpB,EAAQowpB,kBAAoBpwpB,EAAQowpB,mBAAqBA,EAGzDpwpB,EAAQmwpB,8BAAgCA,EAExC,IAAIc,EAAgBj5oB,MAAMC,QAAQwC,GAIlC,OAFgCw2oB,IADZj5oB,MAAMC,QAAQ3B,GAKvB26oB,EACHjxpB,EAAQgxpB,WAAW16oB,EAAQmE,EAAQza,GAEnC0wpB,EAAYp6oB,EAAQmE,EAAQza,GAJ5BmwpB,EAA8B11oB,EAAQza,EAM/C,CAEA2zI,EAAUh9H,IAAM,SAAsB62F,EAAOxtG,GAC5C,IAAKgY,MAAMC,QAAQu1F,GAClB,MAAM,IAAI33G,MAAM,qCAGjB,OAAO23G,EAAM51F,QAAO,SAASolG,EAAMvhG,GAClC,OAAOk4H,EAAU32B,EAAMvhG,EAAMzb,EAC9B,GAAG,CAAC,EACL,EAEA,IAAI+w1B,EAAcp9sB,EAElBgnE,EAAOrtL,QAAUyj0B,sCClIjB,IAAIC,EAAyBtk0B,EAAQ,MAARA,GAEzBm+zB,EAAen+zB,EAAQ,OAEvB6+zB,EAAkByF,GAA0BnG,EAAa,2BAA2B,GACxF,GAAIU,EACH,IACCA,EAAgB,CAAC,EAAG,IAAK,CAAE7u1B,MAAO,GACnC,CAAE,MAAOjH,GAER811B,GAAkB,CACnB,CAGD,IAAI0F,EAAepG,EAAa,iBAC5BM,EAAaN,EAAa,eAE1BqG,EAAOxk0B,EAAQ,OAGnBiuL,EAAOrtL,QAAU,SAChBvS,EACAy3B,EACA91C,GAEA,IAAKqe,GAAuB,kBAARA,GAAmC,oBAARA,EAC9C,MAAM,IAAIow0B,EAAW,0CAEtB,GAAwB,kBAAb34yB,GAA6C,kBAAbA,EAC1C,MAAM,IAAI24yB,EAAW,4CAEtB,GAAI3w0B,UAAUlkB,OAAS,GAA6B,mBAAjBkkB,UAAU,IAAqC,OAAjBA,UAAU,GAC1E,MAAM,IAAI2w0B,EAAW,2DAEtB,GAAI3w0B,UAAUlkB,OAAS,GAA6B,mBAAjBkkB,UAAU,IAAqC,OAAjBA,UAAU,GAC1E,MAAM,IAAI2w0B,EAAW,yDAEtB,GAAI3w0B,UAAUlkB,OAAS,GAA6B,mBAAjBkkB,UAAU,IAAqC,OAAjBA,UAAU,GAC1E,MAAM,IAAI2w0B,EAAW,6DAEtB,GAAI3w0B,UAAUlkB,OAAS,GAA6B,mBAAjBkkB,UAAU,GAC5C,MAAM,IAAI2w0B,EAAW,2CAGtB,IAAIgG,EAAgB320B,UAAUlkB,OAAS,EAAIkkB,UAAU,GAAK,KACtD420B,EAAc520B,UAAUlkB,OAAS,EAAIkkB,UAAU,GAAK,KACpD620B,EAAkB720B,UAAUlkB,OAAS,EAAIkkB,UAAU,GAAK,KACxD820B,EAAQ920B,UAAUlkB,OAAS,GAAIkkB,UAAU,GAGzCwU,IAASki0B,GAAQA,EAAKn20B,EAAKy3B,GAE/B,GAAI+4yB,EACHA,EAAgBxw0B,EAAKy3B,EAAU,CAC9B58B,aAAkC,OAApBy70B,GAA4Bri0B,EAAOA,EAAKpZ,cAAgBy70B,EACtEx70B,WAA8B,OAAlBs70B,GAA0Bni0B,EAAOA,EAAKnZ,YAAcs70B,EAChEz01B,MAAOA,EACPiZ,SAA0B,OAAhBy70B,GAAwBpi0B,EAAOA,EAAKrZ,UAAYy70B,QAErD,KAAIE,IAAWH,GAAkBC,GAAgBC,GAIvD,MAAM,IAAIJ,EAAa,+GAFvBl20B,EAAIy3B,GAAY91C,CAGjB,CACD,qCCjEA4wB,EAAQ2iK,MAAQ,EAAhB3iK,OACAA,EAAQ2lzB,OAAS,EAAjB3lzB,KACAA,EAAQuozB,IAAM,EAAdvozB,OACAA,EAAQgozB,IAAM,EAAdhozB,MACAA,EAAQ+ozB,IAAM,EAAd/ozB,0CCJA,IAAIsusB,EAASlvsB,EAAQ,OACjBi+sB,EAAWj+sB,EAAQ,OAEnBgkF,EAAQ,CAAC,EAEb,SAAS6gvB,EAASt6zB,GAChB2ksB,EAAOxnhB,MAAMn9K,EAAG3gC,OAAQ,EAAG,qBAE3BZ,KAAKuhC,GAAK,IAAIjf,MAAM,GACpB,IAAK,IAAIthB,EAAI,EAAGA,EAAIhB,KAAKuhC,GAAG3gC,OAAQI,IAClChB,KAAKuhC,GAAGvgC,GAAKugC,EAAGvgC,EACpB,CAsBA42B,EAAQ8ozB,YApBR,SAAqBtrG,GACnB,SAASwqG,EAAIt10B,GACX8quB,EAAKtvtB,KAAK9lB,KAAMsK,GAChBtK,KAAK871B,UACP,CACA7mH,EAAS2qG,EAAKxqG,GAGd,IADA,IAAI7wtB,EAAOxE,OAAOwE,KAAKy2F,GACdh6G,EAAI,EAAGA,EAAIujB,EAAK3jB,OAAQI,IAAK,CACpC,IAAIikB,EAAMV,EAAKvjB,GACf4+0B,EAAI1/0B,UAAU+kB,GAAO+1F,EAAM/1F,EAC7B,CAMA,OAJA26zB,EAAI7mzB,OAAS,SAAgBzuB,GAC3B,OAAO,IAAIs10B,EAAIt10B,EACjB,EAEOs10B,CACT,EAIA5kuB,EAAM8gvB,SAAW,WACf,IAAIr31B,EAAQ,IAAIo31B,EAAS771B,KAAKsK,QAAQi3B,IACtCvhC,KAAK+71B,UAAYt31B,CACnB,EAEAu2G,EAAM6huB,QAAU,SAAiBmf,EAAKC,EAAO3yzB,EAAK4yzB,GAChD,IAAIz31B,EAAQzE,KAAK+71B,UACbI,EAAan81B,KAAKqmB,YAAY24yB,OAAO9+zB,UAErCqhC,EAAK98B,EAAM88B,GACf,GAAkB,YAAdvhC,KAAKiE,KAAoB,CAC3B,IAAK,IAAIjD,EAAI,EAAGA,EAAIhB,KAAKg0U,UAAWhzU,IAClCugC,EAAGvgC,IAAMg71B,EAAIC,EAAQj71B,GAEvBm71B,EAAWtf,QAAQ/2zB,KAAK9lB,KAAMuhC,EAAI,EAAG+H,EAAK4yzB,GAE1C,IAASl71B,EAAI,EAAGA,EAAIhB,KAAKg0U,UAAWhzU,IAClCugC,EAAGvgC,GAAKsoC,EAAI4yzB,EAASl71B,EACzB,KAAO,CACLm71B,EAAWtf,QAAQ/2zB,KAAK9lB,KAAMg81B,EAAKC,EAAO3yzB,EAAK4yzB,GAE/C,IAASl71B,EAAI,EAAGA,EAAIhB,KAAKg0U,UAAWhzU,IAClCsoC,EAAI4yzB,EAASl71B,IAAMugC,EAAGvgC,GAExB,IAASA,EAAI,EAAGA,EAAIhB,KAAKg0U,UAAWhzU,IAClCugC,EAAGvgC,GAAKg71B,EAAIC,EAAQj71B,EACxB,CACF,oCC9DA,IAAIkluB,EAASlvsB,EAAQ,OAErB,SAASumzB,EAAOjz0B,GACdtK,KAAKsK,QAAUA,EAEftK,KAAKiE,KAAOjE,KAAKsK,QAAQrG,KACzBjE,KAAKg0U,UAAY,EACjBh0U,KAAK42uB,QAEL52uB,KAAK2/B,OAAS,IAAIrd,MAAMtiB,KAAKg0U,WAC7Bh0U,KAAKo81B,UAAY,EACjBp81B,KAAK4a,SAA8B,IAApBtQ,EAAQsQ,OACzB,CACAqqM,EAAOrtL,QAAU2lzB,EAEjBA,EAAOr90B,UAAU02uB,MAAQ,WACvB,EAGF2mG,EAAOr90B,UAAUm3B,OAAS,SAAgB1tB,GACxC,OAAoB,IAAhBA,EAAK/I,OACA,GAES,YAAdZ,KAAKiE,KACAjE,KAAKq81B,eAAe1y1B,GAEpB3J,KAAKs81B,eAAe3y1B,EAC/B,EAEA4z0B,EAAOr90B,UAAUq81B,QAAU,SAAiB5y1B,EAAMqrG,GAGhD,IADA,IAAI7yD,EAAMvZ,KAAKuZ,IAAIniD,KAAK2/B,OAAO/+B,OAASZ,KAAKo81B,UAAWzy1B,EAAK/I,OAASo0G,GAC7Dh0G,EAAI,EAAGA,EAAImhD,EAAKnhD,IACvBhB,KAAK2/B,OAAO3/B,KAAKo81B,UAAYp71B,GAAK2I,EAAKqrG,EAAMh0G,GAI/C,OAHAhB,KAAKo81B,WAAaj6yB,EAGXA,CACT,EAEAo7xB,EAAOr90B,UAAUs81B,aAAe,SAAsBlzzB,EAAK0rE,GAGzD,OAFAh1G,KAAK680B,QAAQ780B,KAAK2/B,OAAQ,EAAG2J,EAAK0rE,GAClCh1G,KAAKo81B,UAAY,EACVp81B,KAAKg0U,SACd,EAEAupgB,EAAOr90B,UAAUo81B,eAAiB,SAAwB3y1B,GACxD,IAAI8y1B,EAAW,EACXC,EAAY,EAEZ70uB,GAAU7nH,KAAKo81B,UAAYzy1B,EAAK/I,QAAUZ,KAAKg0U,UAAa,EAC5D1qS,EAAM,IAAIhnB,MAAMulG,EAAQ7nH,KAAKg0U,WAEV,IAAnBh0U,KAAKo81B,YACPK,GAAYz81B,KAAKu81B,QAAQ5y1B,EAAM8y1B,GAE3Bz81B,KAAKo81B,YAAcp81B,KAAK2/B,OAAO/+B,SACjC871B,GAAa181B,KAAKw81B,aAAalzzB,EAAKozzB,KAKxC,IADA,IAAI15yB,EAAMr5C,EAAK/I,QAAW+I,EAAK/I,OAAS671B,GAAYz81B,KAAKg0U,UAClDyohB,EAAWz5yB,EAAKy5yB,GAAYz81B,KAAKg0U,UACtCh0U,KAAK680B,QAAQlz0B,EAAM8y1B,EAAUnzzB,EAAKozzB,GAClCA,GAAa181B,KAAKg0U,UAIpB,KAAOyohB,EAAW9y1B,EAAK/I,OAAQ671B,IAAYz81B,KAAKo81B,YAC9Cp81B,KAAK2/B,OAAO3/B,KAAKo81B,WAAazy1B,EAAK8y1B,GAErC,OAAOnzzB,CACT,EAEAi0yB,EAAOr90B,UAAUm81B,eAAiB,SAAwB1y1B,GAQxD,IAPA,IAAI8y1B,EAAW,EACXC,EAAY,EAEZ70uB,EAAQj/E,KAAK8wI,MAAM15K,KAAKo81B,UAAYzy1B,EAAK/I,QAAUZ,KAAKg0U,WAAa,EACrE1qS,EAAM,IAAIhnB,MAAMulG,EAAQ7nH,KAAKg0U,WAG1BnsN,EAAQ,EAAGA,IAChB40uB,GAAYz81B,KAAKu81B,QAAQ5y1B,EAAM8y1B,GAC/BC,GAAa181B,KAAKw81B,aAAalzzB,EAAKozzB,GAMtC,OAFAD,GAAYz81B,KAAKu81B,QAAQ5y1B,EAAM8y1B,GAExBnzzB,CACT,EAEAi0yB,EAAOr90B,UAAUotpB,MAAQ,SAAe3tnB,GACtC,IAAIypK,EAIAkzB,EAMJ,OATI38L,IACFypK,EAAQppM,KAAKq3B,OAAOsI,IAIpB28L,EADgB,YAAdt8N,KAAKiE,KACAjE,KAAK281B,gBAEL381B,KAAK481B,gBAEVxzpB,EACKA,EAAM1mL,OAAO45M,GAEbA,CACX,EAEAihnB,EAAOr90B,UAAU281B,KAAO,SAAcl9zB,EAAQq1E,GAC5C,GAAY,IAARA,EACF,OAAO,EAET,KAAOA,EAAMr1E,EAAO/+B,QAClB++B,EAAOq1E,KAAS,EAElB,OAAO,CACT,EAEAuouB,EAAOr90B,UAAUy81B,cAAgB,WAC/B,IAAK381B,KAAK681B,KAAK781B,KAAK2/B,OAAQ3/B,KAAKo81B,WAC/B,MAAO,GAET,IAAI9yzB,EAAM,IAAIhnB,MAAMtiB,KAAKg0U,WAEzB,OADAh0U,KAAK680B,QAAQ780B,KAAK2/B,OAAQ,EAAG2J,EAAK,GAC3BA,CACT,EAEAi0yB,EAAOr90B,UAAU481B,OAAS,SAAgBn9zB,GACxC,OAAOA,CACT,EAEA49yB,EAAOr90B,UAAU081B,cAAgB,WAC/B12H,EAAOxnhB,MAAM1+M,KAAKo81B,UAAWp81B,KAAKg0U,UAAW,8BAC7C,IAAI1qS,EAAM,IAAIhnB,MAAMtiB,KAAKg0U,WAGzB,OAFAh0U,KAAKw81B,aAAalzzB,EAAK,GAEhBtpC,KAAK881B,OAAOxzzB,EACrB,sCC3IA,IAAI48rB,EAASlvsB,EAAQ,OACjBi+sB,EAAWj+sB,EAAQ,OAEnBujK,EAAQvjK,EAAQ,OAChBumzB,EAASvmzB,EAAQ,KAErB,SAAS+l0B,IACP/81B,KAAK86uB,IAAM,IAAIx4tB,MAAM,GACrBtiB,KAAKukB,KAAO,IACd,CAEA,SAAS47zB,EAAI710B,GACXiz0B,EAAOz3zB,KAAK9lB,KAAMsK,GAElB,IAAI7F,EAAQ,IAAIs41B,EAChB/81B,KAAKg91B,UAAYv41B,EAEjBzE,KAAKi91B,WAAWx41B,EAAO6F,EAAQ2a,IACjC,CACAgwtB,EAASkrG,EAAK5C,GACdt4nB,EAAOrtL,QAAUuozB,EAEjBA,EAAIpnzB,OAAS,SAAgBzuB,GAC3B,OAAO,IAAI610B,EAAI710B,EACjB,EAEA,IAAI4y1B,EAAa,CACf,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EACrB,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAGvB/c,EAAIjg1B,UAAU+81B,WAAa,SAAoBx41B,EAAOwgB,GACpDxgB,EAAM8f,KAAO,IAAIjC,MAAM,IAEvB4jtB,EAAOxnhB,MAAMz5L,EAAIrkB,OAAQZ,KAAKg0U,UAAW,sBAEzC,IAAImphB,EAAK5iqB,EAAMj9E,aAAar4F,EAAK,GAC7Bm40B,EAAK7iqB,EAAMj9E,aAAar4F,EAAK,GAEjCs1K,EAAM8iqB,IAAIF,EAAIC,EAAI341B,EAAMq2uB,IAAK,GAC7BqiH,EAAK141B,EAAMq2uB,IAAI,GACfsiH,EAAK341B,EAAMq2uB,IAAI,GACf,IAAK,IAAI95uB,EAAI,EAAGA,EAAIyD,EAAM8f,KAAK3jB,OAAQI,GAAK,EAAG,CAC7C,IAAIi7B,EAAQih0B,EAAWl81B,IAAM,GAC7Bm81B,EAAK5iqB,EAAM+iqB,OAAOH,EAAIlh0B,GACtBmh0B,EAAK7iqB,EAAM+iqB,OAAOF,EAAInh0B,GACtBs+J,EAAMgjqB,IAAIJ,EAAIC,EAAI341B,EAAM8f,KAAMvjB,EAChC,CACF,EAEAm/0B,EAAIjg1B,UAAU280B,QAAU,SAAiBmf,EAAKC,EAAO3yzB,EAAK4yzB,GACxD,IAAIz31B,EAAQzE,KAAKg91B,UAEb3vyB,EAAIktI,EAAMj9E,aAAa0+uB,EAAKC,GAC5B571B,EAAIk6L,EAAMj9E,aAAa0+uB,EAAKC,EAAQ,GAGxC1hqB,EAAMijqB,GAAGnwyB,EAAGhtD,EAAGoE,EAAMq2uB,IAAK,GAC1BztrB,EAAI5oD,EAAMq2uB,IAAI,GACdz6uB,EAAIoE,EAAMq2uB,IAAI,GAEI,YAAd96uB,KAAKiE,KACPjE,KAAKy91B,SAASh51B,EAAO4oD,EAAGhtD,EAAGoE,EAAMq2uB,IAAK,GAEtC96uB,KAAKw80B,SAAS/30B,EAAO4oD,EAAGhtD,EAAGoE,EAAMq2uB,IAAK,GAExCztrB,EAAI5oD,EAAMq2uB,IAAI,GACdz6uB,EAAIoE,EAAMq2uB,IAAI,GAEdvgjB,EAAM/7E,cAAcl1E,EAAK+jB,EAAG6uyB,GAC5B3hqB,EAAM/7E,cAAcl1E,EAAKjpC,EAAG671B,EAAS,EACvC,EAEA/b,EAAIjg1B,UAAU281B,KAAO,SAAcl9zB,EAAQq1E,GACzC,IAAqB,IAAjBh1G,KAAK4a,QACP,OAAO,EAIT,IADA,IAAI5T,EAAQ24B,EAAO/+B,OAASo0G,EACnBh0G,EAAIg0G,EAAKh0G,EAAI2+B,EAAO/+B,OAAQI,IACnC2+B,EAAO3+B,GAAKgG,EAEd,OAAO,CACT,EAEAm50B,EAAIjg1B,UAAU481B,OAAS,SAAgBn9zB,GACrC,IAAqB,IAAjB3/B,KAAK4a,QACP,OAAO+kB,EAIT,IADA,IAAI4mjB,EAAM5mjB,EAAOA,EAAO/+B,OAAS,GACxBI,EAAI2+B,EAAO/+B,OAAS2llB,EAAKvllB,EAAI2+B,EAAO/+B,OAAQI,IACnDkluB,EAAOxnhB,MAAM/+K,EAAO3+B,GAAIullB,GAE1B,OAAO5mjB,EAAOvZ,MAAM,EAAGuZ,EAAO/+B,OAAS2llB,EACzC,EAEA45P,EAAIjg1B,UAAUu91B,SAAW,SAAkBh51B,EAAOi51B,EAAQC,EAAQr0zB,EAAK0rE,GAKrE,IAJA,IAAI3nD,EAAIqwyB,EACJr91B,EAAIs91B,EAGC381B,EAAI,EAAGA,EAAIyD,EAAM8f,KAAK3jB,OAAQI,GAAK,EAAG,CAC7C,IAAI481B,EAAOn51B,EAAM8f,KAAKvjB,GAClB681B,EAAOp51B,EAAM8f,KAAKvjB,EAAI,GAG1Bu5L,EAAMg4Q,OAAOlyc,EAAGoE,EAAMq2uB,IAAK,GAE3B8iH,GAAQn51B,EAAMq2uB,IAAI,GAClB+iH,GAAQp51B,EAAMq2uB,IAAI,GAClB,IAAI5htB,EAAIqhK,EAAMujqB,WAAWF,EAAMC,GAG3Bp91B,EAAIJ,EACRA,GAAKgtD,EAHGktI,EAAMquoB,QAAQ1vyB,MAGN,EAChBm0B,EAAI5sD,CACN,CAGA85L,EAAMwjqB,IAAI191B,EAAGgtD,EAAG/jB,EAAK0rE,EACvB,EAEAmruB,EAAIjg1B,UAAUs80B,SAAW,SAAkB/30B,EAAOi51B,EAAQC,EAAQr0zB,EAAK0rE,GAKrE,IAJA,IAAI3nD,EAAIswyB,EACJt91B,EAAIq91B,EAGC181B,EAAIyD,EAAM8f,KAAK3jB,OAAS,EAAGI,GAAK,EAAGA,GAAK,EAAG,CAClD,IAAI481B,EAAOn51B,EAAM8f,KAAKvjB,GAClB681B,EAAOp51B,EAAM8f,KAAKvjB,EAAI,GAG1Bu5L,EAAMg4Q,OAAOllZ,EAAG5oD,EAAMq2uB,IAAK,GAE3B8iH,GAAQn51B,EAAMq2uB,IAAI,GAClB+iH,GAAQp51B,EAAMq2uB,IAAI,GAClB,IAAI5htB,EAAIqhK,EAAMujqB,WAAWF,EAAMC,GAG3Bp91B,EAAI4sD,EACRA,GAAKhtD,EAHGk6L,EAAMquoB,QAAQ1vyB,MAGN,EAChB74B,EAAII,CACN,CAGA85L,EAAMwjqB,IAAI1wyB,EAAGhtD,EAAGipC,EAAK0rE,EACvB,sCCnJA,IAAIkxnB,EAASlvsB,EAAQ,OACjBi+sB,EAAWj+sB,EAAQ,OAEnBumzB,EAASvmzB,EAAQ,KACjBmpzB,EAAMnpzB,EAAQ,OAElB,SAASgn0B,EAAS/51B,EAAMghB,GACtBihtB,EAAOxnhB,MAAMz5L,EAAIrkB,OAAQ,GAAI,sBAE7B,IAAIq91B,EAAKh50B,EAAImB,MAAM,EAAG,GAClB8U,EAAKjW,EAAImB,MAAM,EAAG,IAClB830B,EAAKj50B,EAAImB,MAAM,GAAI,IAGrBpmB,KAAKo90B,QADM,YAATn50B,EACa,CACbk80B,EAAIpnzB,OAAO,CAAE90B,KAAM,UAAWghB,IAAKg50B,IACnC9d,EAAIpnzB,OAAO,CAAE90B,KAAM,UAAWghB,IAAKiW,IACnCilzB,EAAIpnzB,OAAO,CAAE90B,KAAM,UAAWghB,IAAKi50B,KAGtB,CACb/d,EAAIpnzB,OAAO,CAAE90B,KAAM,UAAWghB,IAAKi50B,IACnC/d,EAAIpnzB,OAAO,CAAE90B,KAAM,UAAWghB,IAAKiW,IACnCilzB,EAAIpnzB,OAAO,CAAE90B,KAAM,UAAWghB,IAAKg50B,IAGzC,CAEA,SAAStd,EAAIr20B,GACXiz0B,EAAOz3zB,KAAK9lB,KAAMsK,GAElB,IAAI7F,EAAQ,IAAIu51B,EAASh+1B,KAAKiE,KAAMjE,KAAKsK,QAAQ2a,KACjDjlB,KAAKm+1B,UAAY151B,CACnB,CACAwwuB,EAAS0rG,EAAKpD,GAEdt4nB,EAAOrtL,QAAU+ozB,EAEjBA,EAAI5nzB,OAAS,SAAgBzuB,GAC3B,OAAO,IAAIq20B,EAAIr20B,EACjB,EAEAq20B,EAAIzg1B,UAAU280B,QAAU,SAAiBmf,EAAKC,EAAO3yzB,EAAK4yzB,GACxD,IAAIz31B,EAAQzE,KAAKm+1B,UAEjB151B,EAAM240B,QAAQ,GAAGP,QAAQmf,EAAKC,EAAO3yzB,EAAK4yzB,GAC1Cz31B,EAAM240B,QAAQ,GAAGP,QAAQvzyB,EAAK4yzB,EAAQ5yzB,EAAK4yzB,GAC3Cz31B,EAAM240B,QAAQ,GAAGP,QAAQvzyB,EAAK4yzB,EAAQ5yzB,EAAK4yzB,EAC7C,EAEAvb,EAAIzg1B,UAAU281B,KAAO1c,EAAIjg1B,UAAU281B,KACnClc,EAAIzg1B,UAAU481B,OAAS3c,EAAIjg1B,UAAU481B,yCCnDrCll0B,EAAQ0lF,aAAe,SAAsBh9E,EAAO00E,GAKlD,OAJY10E,EAAM,EAAI00E,IAAQ,GAClB10E,EAAM,EAAI00E,IAAQ,GAClB10E,EAAM,EAAI00E,IAAQ,EACnB10E,EAAM,EAAI00E,MACN,CACjB,EAEAp9E,EAAQ4mF,cAAgB,SAAuBl+E,EAAOt5B,EAAOguG,GAC3D10E,EAAM,EAAI00E,GAAOhuG,IAAU,GAC3Bs5B,EAAM,EAAI00E,GAAQhuG,IAAU,GAAM,IAClCs5B,EAAM,EAAI00E,GAAQhuG,IAAU,EAAK,IACjCs5B,EAAM,EAAI00E,GAAe,IAARhuG,CACnB,EAEA4wB,EAAQ4l0B,GAAK,SAAYY,EAAKC,EAAK/0zB,EAAK0rE,GAItC,IAHA,IAAIspvB,EAAO,EACPC,EAAO,EAEFv91B,EAAI,EAAGA,GAAK,EAAGA,GAAK,EAAG,CAC9B,IAAK,IAAIw6B,EAAI,EAAGA,GAAK,GAAIA,GAAK,EAC5B8i0B,IAAS,EACTA,GAASD,IAAS7i0B,EAAIx6B,EAAM,EAE9B,IAASw6B,EAAI,EAAGA,GAAK,GAAIA,GAAK,EAC5B8i0B,IAAS,EACTA,GAASF,IAAS5i0B,EAAIx6B,EAAM,CAEhC,CAEA,IAASA,EAAI,EAAGA,GAAK,EAAGA,GAAK,EAAG,CAC9B,IAASw6B,EAAI,EAAGA,GAAK,GAAIA,GAAK,EAC5B+i0B,IAAS,EACTA,GAASF,IAAS7i0B,EAAIx6B,EAAM,EAE9B,IAASw6B,EAAI,EAAGA,GAAK,GAAIA,GAAK,EAC5B+i0B,IAAS,EACTA,GAASH,IAAS5i0B,EAAIx6B,EAAM,CAEhC,CAEAsoC,EAAI0rE,EAAM,GAAKspvB,IAAS,EACxBh1zB,EAAI0rE,EAAM,GAAKupvB,IAAS,CAC1B,EAEA3m0B,EAAQmm0B,IAAM,SAAaK,EAAKC,EAAK/0zB,EAAK0rE,GAIxC,IAHA,IAAIspvB,EAAO,EACPC,EAAO,EAEFv91B,EAAI,EAAGA,EAAI,EAAGA,IACrB,IAAK,IAAIw6B,EAAI,GAAIA,GAAK,EAAGA,GAAK,EAC5B8i0B,IAAS,EACTA,GAASD,IAAS7i0B,EAAIx6B,EAAM,EAC5Bs91B,IAAS,EACTA,GAASF,IAAS5i0B,EAAIx6B,EAAM,EAGhC,IAASA,EAAI,EAAGA,EAAI,EAAGA,IACrB,IAASw6B,EAAI,GAAIA,GAAK,EAAGA,GAAK,EAC5B+i0B,IAAS,EACTA,GAASF,IAAS7i0B,EAAIx6B,EAAM,EAC5Bu91B,IAAS,EACTA,GAASH,IAAS5i0B,EAAIx6B,EAAM,EAIhCsoC,EAAI0rE,EAAM,GAAKspvB,IAAS,EACxBh1zB,EAAI0rE,EAAM,GAAKupvB,IAAS,CAC1B,EAEA3m0B,EAAQyl0B,IAAM,SAAae,EAAKC,EAAK/0zB,EAAK0rE,GAQxC,IAPA,IAAIspvB,EAAO,EACPC,EAAO,EAMFv91B,EAAI,EAAGA,GAAK,EAAGA,IAAK,CAC3B,IAAK,IAAIw6B,EAAI,EAAGA,GAAK,GAAIA,GAAK,EAC5B8i0B,IAAS,EACTA,GAASD,GAAQ7i0B,EAAIx6B,EAAM,EAE7B,IAASw6B,EAAI,EAAGA,GAAK,GAAIA,GAAK,EAC5B8i0B,IAAS,EACTA,GAASF,GAAQ5i0B,EAAIx6B,EAAM,CAE/B,CACA,IAASw6B,EAAI,EAAGA,GAAK,GAAIA,GAAK,EAC5B8i0B,IAAS,EACTA,GAASD,GAAQ7i0B,EAAIx6B,EAAM,EAO7B,IAASA,EAAI,EAAGA,GAAK,EAAGA,IAAK,CAC3B,IAASw6B,EAAI,EAAGA,GAAK,GAAIA,GAAK,EAC5B+i0B,IAAS,EACTA,GAASF,GAAQ7i0B,EAAIx6B,EAAM,EAE7B,IAASw6B,EAAI,EAAGA,GAAK,GAAIA,GAAK,EAC5B+i0B,IAAS,EACTA,GAASH,GAAQ5i0B,EAAIx6B,EAAM,CAE/B,CACA,IAASw6B,EAAI,EAAGA,GAAK,GAAIA,GAAK,EAC5B+i0B,IAAS,EACTA,GAASH,GAAQ5i0B,EAAIx6B,EAAM,EAG7BsoC,EAAI0rE,EAAM,GAAKspvB,IAAS,EACxBh1zB,EAAI0rE,EAAM,GAAKupvB,IAAS,CAC1B,EAEA3m0B,EAAQ0l0B,OAAS,SAAgBx7zB,EAAK7F,GACpC,OAAS6F,GAAO7F,EAAS,UAAc6F,IAAS,GAAK7F,CACvD,EAEA,IAAIui0B,EAAW,CAEb,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,EAC3B,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GACzB,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAGzB,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GACzB,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,EACzB,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,IAG5B5m0B,EAAQ2l0B,IAAM,SAAaa,EAAKC,EAAK/0zB,EAAK0rE,GAKxC,IAJA,IAAIspvB,EAAO,EACPC,EAAO,EAEPh40B,EAAMi40B,EAAS591B,SAAW,EACrBI,EAAI,EAAGA,EAAIulB,EAAKvlB,IACvBs91B,IAAS,EACTA,GAASF,IAAQI,EAASx91B,GAAM,EAElC,IAASA,EAAIulB,EAAKvlB,EAAIw91B,EAAS591B,OAAQI,IACrCu91B,IAAS,EACTA,GAASF,IAAQG,EAASx91B,GAAM,EAGlCsoC,EAAI0rE,EAAM,GAAKspvB,IAAS,EACxBh1zB,EAAI0rE,EAAM,GAAKupvB,IAAS,CAC1B,EAEA3m0B,EAAQ26a,OAAS,SAAgBlyc,EAAGipC,EAAK0rE,GACvC,IAAIspvB,EAAO,EACPC,EAAO,EAEXD,GAAa,EAAJj+1B,IAAU,EAAMA,IAAM,GAC/B,IAAK,IAAIW,EAAI,GAAIA,GAAK,GAAIA,GAAK,EAC7Bs91B,IAAS,EACTA,GAASj+1B,IAAMW,EAAK,GAEtB,IAASA,EAAI,GAAIA,GAAK,EAAGA,GAAK,EAC5Bu91B,GAASl+1B,IAAMW,EAAK,GACpBu91B,IAAS,EAEXA,IAAc,GAAJl+1B,IAAa,EAAMA,IAAM,GAEnCipC,EAAI0rE,EAAM,GAAKspvB,IAAS,EACxBh1zB,EAAI0rE,EAAM,GAAKupvB,IAAS,CAC1B,EAEA,IAAIE,EAAS,CACX,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EACpD,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAClD,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAClD,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAEnD,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAClD,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EACnD,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EACpD,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAElD,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GACjD,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EACpD,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EACjD,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAEpD,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EACnD,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,GAAI,EACnD,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EACpD,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAEjD,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EACpD,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAClD,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GACnD,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAElD,GAAI,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EACnD,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EACnD,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAClD,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,GAElD,EAAG,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAAI,GACnD,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,EAClD,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EACpD,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,GAEjD,GAAI,EAAG,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,EACnD,GAAI,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EAAG,GAAI,GAAI,EAAG,EAAG,EACnD,EAAG,EAAG,GAAI,EAAG,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAClD,EAAG,GAAI,EAAG,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAGpD7m0B,EAAQkm0B,WAAa,SAAoBM,EAAKC,GAE5C,IADA,IAAI/0zB,EAAM,EACDtoC,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAI1BsoC,IAAQ,EACRA,GAHSm1zB,EAAW,GAAJz91B,GADPo91B,IAAS,GAAS,EAAJp91B,EAAU,IAKnC,CACA,IAASA,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAI1BsoC,IAAQ,EACRA,GAHSm1zB,EAAO,IAAe,GAAJz91B,GADlBq91B,IAAS,GAAS,EAAJr91B,EAAU,IAKnC,CACA,OAAOsoC,IAAQ,CACjB,EAEA,IAAIo1zB,EAAe,CACjB,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,EAAG,GAAI,GAAI,GAAI,EAAG,EAAG,GAAI,GAAI,EAAG,GACvD,GAAI,GAAI,EAAG,GAAI,EAAG,EAAG,GAAI,GAAI,GAAI,GAAI,EAAG,GAAI,GAAI,GAAI,GAAI,GAG1D9m0B,EAAQgxyB,QAAU,SAAiB9myB,GAEjC,IADA,IAAIwH,EAAM,EACDtoC,EAAI,EAAGA,EAAI091B,EAAa991B,OAAQI,IACvCsoC,IAAQ,EACRA,GAAQxH,IAAQ48zB,EAAa191B,GAAM,EAErC,OAAOsoC,IAAQ,CACjB,EAEA1R,EAAQ+m0B,SAAW,SAAkB78zB,EAAK/5B,EAAMirN,GAE9C,IADA,IAAIrrL,EAAM7F,EAAIvgC,SAAS,GAChBomC,EAAI/mC,OAASmH,GAClB4/B,EAAM,IAAMA,EAGd,IADA,IAAI2B,EAAM,GACDtoC,EAAI,EAAGA,EAAI+G,EAAM/G,GAAKgyN,EAC7B1pL,EAAI1nB,KAAK+lB,EAAIvhB,MAAMplB,EAAGA,EAAIgyN,IAC5B,OAAO1pL,EAAItiB,KAAK,IAClB,8CC/PI430B,EAAgB5n0B,EAAQ,OACxBq4yB,EAASr4yB,EAAQ,OAEjB6n0B,EAAK7n0B,EAAQ,MASjB,IAAI8n0B,EAAY,CACd,QAAU,EAAM,KAAO,EAAM,QAAU,GA2BzCln0B,EAAQki0B,mBAAqBli0B,EAAQmi0B,yBAA2Bni0B,EAAQoi0B,iBAnCxE,SAA2Bx9zB,GACzB,IAAIwzyB,EAAQ,IAAItuyB,EAAO2tyB,EAAO7yyB,GAAKwzyB,MAAO,OACtC+uB,EAAM,IAAIr9zB,EAAO2tyB,EAAO7yyB,GAAKui0B,IAAK,OAEtC,OAAO,IAAIF,EAAG7uB,EAAO+uB,EACvB,EA+BAnn0B,EAAQqi0B,oBAAsBri0B,EAAQsi0B,cAzBtC,SAASD,EAAqBjqB,EAAOv6F,EAAKt7sB,EAAW6k0B,GACnD,OAAIt9zB,EAAO61E,SAASk+nB,SAA2BptuB,IAAnBy21B,EAAUrpH,GAC7BwkH,EAAoBjqB,EAAO,SAAUv6F,EAAKt7sB,IAGnDs7sB,EAAMA,GAAO,SACbupH,EAAOA,GAAQ,SACf7k0B,EAAYA,GAAa,IAAIuH,EAAO,CAAC,IAEhCA,EAAO61E,SAASp9E,KACnBA,EAAY,IAAIuH,EAAOvH,EAAW6k0B,IAGf,kBAAVhvB,EACF,IAAI6uB,EAAGD,EAAc5uB,EAAO71yB,GAAYA,GAAW,IAGvDuH,EAAO61E,SAASy4tB,KACnBA,EAAQ,IAAItuyB,EAAOsuyB,EAAOv6F,IAGrB,IAAIopH,EAAG7uB,EAAO71yB,GAAW,IAClC,8CCtCI+kyB,EAAKloyB,EAAQ,OAEbio0B,EAAc,IADAjo0B,EAAQ,QAEtBko0B,EAAa,IAAIhgC,EAAG,IACpBigC,EAAS,IAAIjgC,EAAG,IAChBkgC,EAAM,IAAIlgC,EAAG,IACbmgC,EAAQ,IAAIngC,EAAG,GACfogC,EAAQ,IAAIpgC,EAAG,GACfmQ,EAASr4yB,EAAQ,OACjBiizB,EAAcjizB,EAAQ,OAG1B,SAASsh0B,EAAalU,EAAK3uG,GAMzB,OALAA,EAAMA,GAAO,OACR/zsB,EAAO61E,SAAS6suB,KACnBA,EAAM,IAAI1izB,EAAO0izB,EAAK3uG,IAExBz1uB,KAAKu/1B,KAAO,IAAIrgC,EAAGklB,GACZpk1B,IACT,CAEA,SAASw41B,EAAcxX,EAAMvrG,GAM3B,OALAA,EAAMA,GAAO,OACR/zsB,EAAO61E,SAASypuB,KACnBA,EAAO,IAAIt/yB,EAAOs/yB,EAAMvrG,IAE1Bz1uB,KAAKy41B,MAAQ,IAAIv5B,EAAG8hB,GACbhh1B,IACT,CAlBAilN,EAAOrtL,QAAUin0B,EAoBjB,IAAIW,EAAa,CAAC,EAsDlB,SAASX,EAAG7uB,EAAO71yB,EAAWsl0B,GAC5Bz/1B,KAAK0/1B,aAAavl0B,GAClBn6B,KAAK2/1B,QAAU,IAAIzgC,EAAG8Q,GACtBhw0B,KAAKiw0B,OAAS/Q,EAAGgS,KAAKlx0B,KAAK2/1B,SAC3B3/1B,KAAK4/1B,UAAY5vB,EAAMpv0B,OACvBZ,KAAKu/1B,UAAOl31B,EACZrI,KAAKy41B,WAAQpw1B,EACbrI,KAAK6/1B,gBAAax31B,EACdo31B,GACFz/1B,KAAKs41B,aAAeA,EACpBt41B,KAAKw41B,cAAgBA,GAErBx41B,KAAK6/1B,WAAa,CAEtB,CA0DA,SAASvI,EAAkBvkyB,EAAI0irB,GAC7B,IAAIxvrB,EAAM,IAAIvkB,EAAOqxB,EAAGurE,WACxB,OAAKm3mB,EAGIxvrB,EAAI1kD,SAASk0uB,GAFbxvrB,CAIX,CAhEAlmC,OAAOC,eAAe6+0B,EAAG3+1B,UAAW,cAAe,CACjDigB,YAAY,EACZL,IAAK,WAIH,MAH+B,kBAApB9f,KAAK6/1B,aACd7/1B,KAAK6/1B,WAxEX,SAAoB7vB,EAAO71yB,GACzB,IAAI4k0B,EAAM5k0B,EAAU54B,SAAS,OACzBouQ,EAAM,CAACovlB,EAAK/uB,EAAMzu0B,SAAS,KAAKylB,KAAK,KACzC,GAAI2oP,KAAO6vlB,EACT,OAAOA,EAAW7vlB,GAEpB,IAyBImwlB,EAzBAv71B,EAAQ,EAEZ,GAAIyr0B,EAAMxD,WACP6C,EAAO0wB,cACP1wB,EAAO2wB,WAAWhwB,KAClBivB,EAAY340B,KAAK0pzB,GAclB,OAZAzr0B,GAAS,EAKPA,GAHU,OAARw61B,GAAwB,OAARA,EAGT,EAIA,EAEXS,EAAW7vlB,GAAOprQ,EACXA,EAOT,OALK061B,EAAY340B,KAAK0pzB,EAAM5E,KAAK,MAE/B7m0B,GAAS,GAGHw61B,GACN,IAAK,KACC/uB,EAAMxzyB,IAAI0i0B,GAAYl8b,IAAIm8b,KAE5B561B,GAAS,GAEX,MACF,IAAK,MACHu71B,EAAM9vB,EAAMxzyB,IAAI4i0B,IACRp8b,IAAIq8b,IAAUS,EAAI98b,IAAIs8b,KAE5B/61B,GAAS,GAEX,MACF,QACEA,GAAS,EAGb,OADAi71B,EAAW7vlB,GAAOprQ,EACXA,CACT,CAqBwB071B,CAAWjg2B,KAAK2/1B,QAAS3/1B,KAAKkg2B,QAE3Clg2B,KAAK6/1B,UACd,IAEFhB,EAAG3+1B,UAAU031B,aAAe,WAK1B,OAJK531B,KAAKy41B,QACRz41B,KAAKy41B,MAAQ,IAAIv5B,EAAG+Z,EAAYj50B,KAAK4/1B,aAEvC5/1B,KAAKu/1B,KAAOv/1B,KAAKmg2B,KAAKpyB,MAAM/t0B,KAAKiw0B,QAAQb,OAAOpv0B,KAAKy41B,OAAOvqB,UACrDlu0B,KAAK831B,cACd,EAEA+G,EAAG3+1B,UAAU631B,cAAgB,SAAUh7tB,GAGrC,IAAI1+F,GADJ0+F,GADAA,EAAQ,IAAImisB,EAAGnisB,IACDgxsB,MAAM/t0B,KAAKiw0B,SACNb,OAAOpv0B,KAAKy41B,OAAOvqB,UAClC5kyB,EAAM,IAAI5H,EAAOrD,EAAOigG,WACxB0xsB,EAAQhw0B,KAAKog2B,WACjB,GAAI92zB,EAAI1oC,OAASov0B,EAAMpv0B,OAAQ,CAC7B,IAAIy/1B,EAAQ,IAAI3+zB,EAAOsuyB,EAAMpv0B,OAAS0oC,EAAI1oC,QAC1Cy/1B,EAAM101B,KAAK,GACX29B,EAAM5H,EAAOhf,OAAO,CAAC290B,EAAO/2zB,GAC9B,CACA,OAAOA,CACT,EAEAu1zB,EAAG3+1B,UAAU431B,aAAe,SAAsBriH,GAChD,OAAO6hH,EAAkBt31B,KAAKu/1B,KAAM9pH,EACtC,EAEAopH,EAAG3+1B,UAAUm41B,cAAgB,SAAuB5iH,GAClD,OAAO6hH,EAAkBt31B,KAAKy41B,MAAOhjH,EACvC,EAEAopH,EAAG3+1B,UAAUkg2B,SAAW,SAAU3qH,GAChC,OAAO6hH,EAAkBt31B,KAAK2/1B,QAASlqH,EACzC,EAEAopH,EAAG3+1B,UAAUog2B,aAAe,SAAU7qH,GACpC,OAAO6hH,EAAkBt31B,KAAKmg2B,KAAM1qH,EACtC,EAEAopH,EAAG3+1B,UAAUw/1B,aAAe,SAAUX,EAAKtpH,GAOzC,OANAA,EAAMA,GAAO,OACR/zsB,EAAO61E,SAASwnvB,KACnBA,EAAM,IAAIr9zB,EAAOq9zB,EAAKtpH,IAExBz1uB,KAAKkg2B,MAAQnB,EACb/+1B,KAAKmg2B,KAAO,IAAIjhC,EAAG6/B,GACZ/+1B,IACT,yBC1JA,IAAIi50B,EAAcjizB,EAAQ,OAC1BiuL,EAAOrtL,QAAU2o0B,EACjBA,EAAUR,YAAcA,EACxBQ,EAAUP,WAAaA,EACvB,IAAI9gC,EAAKloyB,EAAQ,OACbko0B,EAAa,IAAIhgC,EAAG,IAEpB+/B,EAAc,IADAjo0B,EAAQ,QAEtBwp0B,EAAM,IAAIthC,EAAG,GACbuhC,EAAM,IAAIvhC,EAAG,GACbwhC,EAAO,IAAIxhC,EAAG,GAGdkgC,GAFU,IAAIlgC,EAAG,IACT,IAAIA,EAAG,GACT,IAAIA,EAAG,KACbmgC,EAAQ,IAAIngC,EAAG,GAEfigC,GADQ,IAAIjgC,EAAG,GACN,IAAIA,EAAG,KAChByhC,EAAO,IAAIzhC,EAAG,GAEdmQ,GADS,IAAInQ,EAAG,IACP,MAEb,SAAS0hC,IACP,GAAe,OAAXvxB,EACF,OAAOA,EAET,IACIj1tB,EAAM,GACVA,EAAI,GAAK,EACT,IAAK,IAAIp5G,EAAI,EAAGi6B,EAAI,EAAGA,EAHX,QAGsBA,GAAK,EAAG,CAExC,IADA,IAAI4uG,EAAOjhG,KAAK8wI,KAAK9wI,KAAKihG,KAAK5uG,IACtBO,EAAI,EAAGA,EAAIx6B,GAAKo5G,EAAI5+E,IAAMquG,GAC7B5uG,EAAIm/E,EAAI5+E,KAAO,EADoBA,KAIrCx6B,IAAMw6B,GAAK4+E,EAAI5+E,IAAMquG,IAGzBzvB,EAAIp5G,KAAOi6B,EACb,CAEA,OADAo0yB,EAASj1tB,EACFA,CACT,CAEA,SAAS2lvB,EAAYpn0B,GAGnB,IAFA,IAAI02yB,EAASuxB,IAEJ5/1B,EAAI,EAAGA,EAAIqu0B,EAAOzu0B,OAAQI,IACjC,GAA0B,IAAtB23B,EAAEmoyB,KAAKuO,EAAOru0B,IAChB,OAA0B,IAAtB23B,EAAEq0yB,KAAKqC,EAAOru0B,IAOtB,OAAO,CACT,CAEA,SAASg/1B,EAAWrn0B,GAClB,IAAIxrB,EAAM+xzB,EAAGgS,KAAKv4yB,GAClB,OAA8D,IAAvD8n0B,EAAI1yB,MAAM5g0B,GAAKii0B,OAAOz2yB,EAAE+yyB,KAAK,IAAIwC,UAAUlB,KAAK,EACzD,CAEA,SAASuzB,EAAU9ipB,EAAMshpB,GACvB,GAAIthpB,EAAO,GAET,OACS,IAAIyhnB,EADD,IAAR6/B,GAAqB,IAARA,EACD,CAAC,IAAM,KAEP,CAAC,IAAM,KAKzB,IAAIj9zB,EAAK++zB,EAET,IAJA9B,EAAM,IAAI7/B,EAAG6/B,KAIA,CAEX,IADAj9zB,EAAM,IAAIo9xB,EAAG+Z,EAAYrwyB,KAAK8wI,KAAK+jC,EAAO,KACnC37K,EAAI47K,YAAcD,GACvB37K,EAAImpyB,MAAM,GAQZ,GANInpyB,EAAI0qyB,UACN1qyB,EAAIohyB,KAAKs9B,GAEN1+zB,EAAI+/xB,MAAM,IACb//xB,EAAIohyB,KAAKu9B,GAEN1B,EAAI/7b,IAAIy9b,IAIN,IAAK1B,EAAI/7b,IAAI09b,GAClB,KAAO5+zB,EAAItF,IAAI4i0B,GAAKp8b,IAAIq8b,IACtBv9zB,EAAIohyB,KAAKy9B,QALX,KAAO7+zB,EAAItF,IAAI0i0B,GAAYl8b,IAAIm8b,IAC7Br9zB,EAAIohyB,KAAKy9B,GAQb,GAAIZ,EADJc,EAAK/+zB,EAAIspyB,KAAK,KACS20B,EAAYj+zB,IACjCk+zB,EAAWa,IAAOb,EAAWl+zB,IAC7Bm9zB,EAAY340B,KAAKu60B,IAAO5B,EAAY340B,KAAKwb,GACzC,OAAOA,CAEX,CAEF,qCCtGA,IAAIJ,EAAS1K,EAAAA,OAAAA,OAET8p0B,EAAsB9p0B,EAAQ,OAE9B+p0B,EAAY,IAehB,SAASC,EAAkBvtzB,GAC1B,GAAI/R,EAAO61E,SAAS9jE,GACnB,OAAOA,EACD,GAAI,kBAAoBA,EAC9B,OAAO/R,EAAO3d,KAAK0vB,EAAW,UAG/B,MAAM,IAAIvvB,UAAU,sDACrB,CAuFA,SAAS+80B,EAAah7yB,EAAKp2C,EAAO8qC,GAEjC,IADA,IAAI//B,EAAU,EACP/K,EAAQ+K,EAAU+/B,GAAiC,IAAzBsL,EAAIp2C,EAAQ+K,MAC1CA,EAQH,OALgBqrC,EAAIp2C,EAAQ+K,IAAYmm1B,KAErCnm1B,EAGIA,CACR,CAuDAqqM,EAAOrtL,QAAU,CAChBsp0B,UAzJD,SAAmBztzB,EAAWy3uB,GAC7Bz3uB,EAAYutzB,EAAkBvtzB,GAC9B,IAAI0tzB,EAAaL,EAAoB51E,GAIjCk2E,EAAwBD,EAAa,EAErCrxC,EAAcr8wB,EAAU7yC,OAExBmlD,EAAS,EACb,GA/BmBs7yB,KA+Bf5tzB,EAAUsS,KACb,MAAM,IAAI5lD,MAAM,iCAGjB,IAAImh2B,EAAY7tzB,EAAUsS,KAK1B,GAJIu7yB,KAA2B,EAAZP,KAClBO,EAAY7tzB,EAAUsS,MAGnB+pwB,EAAc/pwB,EAASu7yB,EAC1B,MAAM,IAAInh2B,MAAM,8BAAgCmh2B,EAAY,aAAexxC,EAAc/pwB,GAAU,eAGpG,GA3CkBw7yB,IA2Cd9tzB,EAAUsS,KACb,MAAM,IAAI5lD,MAAM,yCAGjB,IAAIqh2B,EAAU/tzB,EAAUsS,KAExB,GAAI+pwB,EAAc/pwB,EAAS,EAAIy7yB,EAC9B,MAAM,IAAIrh2B,MAAM,4BAA8Bqh2B,EAAU,aAAe1xC,EAAc/pwB,EAAS,GAAK,eAGpG,GAAIq7yB,EAAwBI,EAC3B,MAAM,IAAIrh2B,MAAM,4BAA8Bqh2B,EAAU,cAAgBJ,EAAwB,mBAGjG,IAAIK,EAAU17yB,EAGd,GAFAA,GAAUy7yB,EA1DQD,IA4Dd9tzB,EAAUsS,KACb,MAAM,IAAI5lD,MAAM,yCAGjB,IAAIuh2B,EAAUjuzB,EAAUsS,KAExB,GAAI+pwB,EAAc/pwB,IAAW27yB,EAC5B,MAAM,IAAIvh2B,MAAM,4BAA8Buh2B,EAAU,iBAAmB5xC,EAAc/pwB,GAAU,KAGpG,GAAIq7yB,EAAwBM,EAC3B,MAAM,IAAIvh2B,MAAM,4BAA8Buh2B,EAAU,cAAgBN,EAAwB,mBAGjG,IAAIO,EAAU57yB,EAGd,IAFAA,GAAU27yB,KAEK5xC,EACd,MAAM,IAAI3vzB,MAAM,4CAA8C2vzB,EAAc/pwB,GAAU,kBAGvF,IAAI67yB,EAAWT,EAAaK,EAC3BK,EAAWV,EAAaO,EAErB9hvB,EAAMl+E,EAAOo1E,YAAY8qvB,EAAWJ,EAAUK,EAAWH,GAE7D,IAAK37yB,EAAS,EAAGA,EAAS67yB,IAAY77yB,EACrC65D,EAAI75D,GAAU,EAEftS,EAAUgkE,KAAKmI,EAAK75D,EAAQ07yB,EAAU74zB,KAAKoa,KAAK4+yB,EAAU,GAAIH,EAAUD,GAIxE,IAAK,IAAI1g2B,EAFTilD,EAASo7yB,EAEYp7yB,EAASjlD,EAAI+g2B,IAAY97yB,EAC7C65D,EAAI75D,GAAU,EAOf,OALAtS,EAAUgkE,KAAKmI,EAAK75D,EAAQ47yB,EAAU/4zB,KAAKoa,KAAK6+yB,EAAU,GAAIF,EAAUD,GAGxE9hvB,GADAA,EAAMA,EAAIr+G,SAAS,WA9FjBZ,QAAQ,KAAM,IACdA,QAAQ,MAAO,KACfA,QAAQ,MAAO,IAgGlB,EAuECmh2B,UAvDD,SAAmBruzB,EAAWy3uB,GAC7Bz3uB,EAAYutzB,EAAkBvtzB,GAC9B,IAAI0tzB,EAAaL,EAAoB51E,GAEjC62E,EAAiBtuzB,EAAU7yC,OAC/B,GAAImh2B,IAAgC,EAAbZ,EACtB,MAAM,IAAIj90B,UAAU,IAAMgnwB,EAAM,yBAAwC,EAAbi2E,EAAiB,iBAAmBY,EAAiB,KAGjH,IAAIH,EAAWX,EAAaxtzB,EAAW,EAAG0tzB,GACtCU,EAAWZ,EAAaxtzB,EAAW0tzB,EAAY1tzB,EAAU7yC,QACzD4g2B,EAAUL,EAAaS,EACvBF,EAAUP,EAAaU,EAEvBG,EAAU,EAAQR,EAAU,EAAI,EAAIE,EAEpCO,EAAcD,EAAUjB,EAExBnhvB,EAAMl+E,EAAOo1E,aAAamrvB,EAAc,EAAI,GAAKD,GAEjDj8yB,EAAS,EA8Bb,OA7BA65D,EAAI75D,KA5Ies7yB,GA6IfY,EAGHrivB,EAAI75D,KAAYi8yB,GAIhBpivB,EAAI75D,KAAwB,EAAZg7yB,EAEhBnhvB,EAAI75D,KAAsB,IAAVi8yB,GAEjBpivB,EAAI75D,KAvJcw7yB,EAwJlB3hvB,EAAI75D,KAAYy7yB,EACZI,EAAW,GACdhivB,EAAI75D,KAAY,EAChBA,GAAUtS,EAAUgkE,KAAKmI,EAAK75D,EAAQ,EAAGo7yB,IAEzCp7yB,GAAUtS,EAAUgkE,KAAKmI,EAAK75D,EAAQ67yB,EAAUT,GAEjDvhvB,EAAI75D,KA/Jcw7yB,EAgKlB3hvB,EAAI75D,KAAY27yB,EACZG,EAAW,GACdjivB,EAAI75D,KAAY,EAChBtS,EAAUgkE,KAAKmI,EAAK75D,EAAQo7yB,IAE5B1tzB,EAAUgkE,KAAKmI,EAAK75D,EAAQo7yB,EAAaU,GAGnCjivB,CACR,mCCnLA,SAASsivB,EAAaxnB,GAErB,OADeA,EAAU,EAAK,IAAMA,EAAU,IAAM,EAAI,EAAI,EAE7D,CAEA,IAAIynB,EAAmB,CACtBC,MAAOF,EAAa,KACpBG,MAAOH,EAAa,KACpBI,MAAOJ,EAAa,MAYrBj9oB,EAAOrtL,QATP,SAA6BszvB,GAC5B,IAAIi2E,EAAagB,EAAiBj3E,GAClC,GAAIi2E,EACH,OAAOA,EAGR,MAAM,IAAIhh2B,MAAM,sBAAwB+qxB,EAAM,IAC/C,qCClBA,IAAIyrE,EAAW/+zB,EAEf++zB,EAASn4yB,QAAUxnB,EAAAA,OAAAA,GACnB2/zB,EAASp8pB,MAAQvjK,EAAQ,OACzB2/zB,EAAS9d,KAAO7hzB,EAAQ,OACxB2/zB,EAAS/S,MAAQ5szB,EAAQ,OACzB2/zB,EAASzT,OAASlszB,EAAQ,OAG1B2/zB,EAASU,GAAKrg0B,EAAQ,OACtB2/zB,EAAS4L,MAAQvr0B,EAAQ,2CCVzB,IAAIkoyB,EAAKloyB,EAAQ,OACbujK,EAAQvjK,EAAQ,OAChBwr0B,EAASjoqB,EAAMioqB,OACfC,EAASloqB,EAAMkoqB,OACfv8H,EAAS3riB,EAAM2riB,OAEnB,SAASw8H,EAAUz+1B,EAAM0+1B,GACvB3i2B,KAAKiE,KAAOA,EACZjE,KAAK24B,EAAI,IAAIumyB,EAAGyjC,EAAKhq0B,EAAG,IAGxB34B,KAAKmN,IAAMw11B,EAAK3yB,MAAQ9Q,EAAG/xzB,IAAIw11B,EAAK3yB,OAAS9Q,EAAGgS,KAAKlx0B,KAAK24B,GAG1D34B,KAAKurlB,KAAO,IAAI2zO,EAAG,GAAG6O,MAAM/t0B,KAAKmN,KACjCnN,KAAK4w0B,IAAM,IAAI1R,EAAG,GAAG6O,MAAM/t0B,KAAKmN,KAChCnN,KAAKo7uB,IAAM,IAAI8jF,EAAG,GAAG6O,MAAM/t0B,KAAKmN,KAGhCnN,KAAKa,EAAI8h2B,EAAK9h2B,GAAK,IAAIq+zB,EAAGyjC,EAAK9h2B,EAAG,IAClCb,KAAKy6B,EAAIko0B,EAAKlo0B,GAAKz6B,KAAK4i2B,cAAcD,EAAKlo0B,EAAGko0B,EAAKE,MAGnD7i2B,KAAK8i2B,QAAU,IAAIxg1B,MAAM,GACzBtiB,KAAK+i2B,QAAU,IAAIzg1B,MAAM,GACzBtiB,KAAKgj2B,QAAU,IAAI1g1B,MAAM,GACzBtiB,KAAKij2B,QAAU,IAAI3g1B,MAAM,GAEzBtiB,KAAKkj2B,WAAalj2B,KAAKa,EAAIb,KAAKa,EAAE68M,YAAc,EAGhD,IAAIylpB,EAAcnj2B,KAAKa,GAAKb,KAAK24B,EAAEzvB,IAAIlJ,KAAKa,IACvCsi2B,GAAeA,EAAYn2B,KAAK,KAAO,EAC1Cht0B,KAAKoj2B,KAAO,MAEZpj2B,KAAKqj2B,eAAgB,EACrBrj2B,KAAKoj2B,KAAOpj2B,KAAKa,EAAEkt0B,MAAM/t0B,KAAKmN,KAElC,CAsNA,SAASm21B,EAAU1f,EAAO3/0B,GACxBjE,KAAK4j1B,MAAQA,EACb5j1B,KAAKiE,KAAOA,EACZjE,KAAKuj2B,YAAc,IACrB,CAzNAt+oB,EAAOrtL,QAAU8q0B,EAEjBA,EAAUxi2B,UAAU2xO,MAAQ,WAC1B,MAAM,IAAI1xO,MAAM,kBAClB,EAEAui2B,EAAUxi2B,UAAU8lD,SAAW,WAC7B,MAAM,IAAI7lD,MAAM,kBAClB,EAEAui2B,EAAUxi2B,UAAUsj2B,aAAe,SAAsB7q0B,EAAGsC,GAC1DirsB,EAAOvtsB,EAAE4q0B,aACT,IAAIE,EAAU9q0B,EAAE+q0B,cAEZC,EAAMnB,EAAOvn0B,EAAG,EAAGj7B,KAAKkj2B,YACxBl1yB,GAAK,GAAMy1yB,EAAQpp0B,KAAO,IAAOop0B,EAAQpp0B,KAAO,IAAM,EAAI,EAAI,GAClE2zB,GAAK,EAGL,IACIxyB,EACAoo0B,EAFAC,EAAO,GAGX,IAAKro0B,EAAI,EAAGA,EAAImo0B,EAAI/i2B,OAAQ46B,GAAKio0B,EAAQpp0B,KAAM,CAC7Cup0B,EAAO,EACP,IAAK,IAAIv2yB,EAAI7xB,EAAIio0B,EAAQpp0B,KAAO,EAAGgzB,GAAK7xB,EAAG6xB,IACzCu2yB,GAAQA,GAAQ,GAAKD,EAAIt2yB,GAC3Bw2yB,EAAKji1B,KAAKgi1B,EACZ,CAIA,IAFA,IAAI7i2B,EAAIf,KAAK8j2B,OAAO,KAAM,KAAM,MAC5Btr0B,EAAIx4B,KAAK8j2B,OAAO,KAAM,KAAM,MACvB9i2B,EAAIgtD,EAAGhtD,EAAI,EAAGA,IAAK,CAC1B,IAAKw6B,EAAI,EAAGA,EAAIqo0B,EAAKjj2B,OAAQ46B,KAC3Boo0B,EAAOC,EAAKro0B,MACCx6B,EACXw3B,EAAIA,EAAEur0B,SAASN,EAAQ96uB,OAAOntF,IACvBoo0B,KAAU5i2B,IACjBw3B,EAAIA,EAAEur0B,SAASN,EAAQ96uB,OAAOntF,GAAGymyB,QAErClh0B,EAAIA,EAAEwlC,IAAI/N,EACZ,CACA,OAAOz3B,EAAEij2B,KACX,EAEAtB,EAAUxi2B,UAAU+j2B,SAAW,SAAkBtr0B,EAAGsC,GAClD,IAAIsyB,EAAI,EAGJ22yB,EAAYvr0B,EAAEwr0B,cAAc52yB,GAChCA,EAAI22yB,EAAUlzB,IAQd,IAPA,IAAIA,EAAMkzB,EAAUv7uB,OAGhBg7uB,EAAMnB,EAAOvn0B,EAAGsyB,EAAGvtD,KAAKkj2B,YAGxB/g1B,EAAMniB,KAAK8j2B,OAAO,KAAM,KAAM,MACzB9i2B,EAAI2i2B,EAAI/i2B,OAAS,EAAGI,GAAK,EAAGA,IAAK,CAExC,IAAK,IAAIqsD,EAAI,EAAGrsD,GAAK,GAAgB,IAAX2i2B,EAAI3i2B,GAAUA,IACtCqsD,IAKF,GAJIrsD,GAAK,GACPqsD,IACFlrC,EAAMA,EAAIii1B,KAAK/2yB,GAEXrsD,EAAI,EACN,MACF,IAAIwsD,EAAIm2yB,EAAI3i2B,GACZkluB,EAAa,IAAN14qB,GAIHrrC,EAHW,WAAXwW,EAAE10B,KAEAupD,EAAI,EACArrC,EAAI4h1B,SAAS/yB,EAAKxjxB,EAAI,GAAM,IAE5BrrC,EAAI4h1B,SAAS/yB,GAAMxjxB,EAAI,GAAM,GAAGy0wB,OAGpCz0wB,EAAI,EACArrC,EAAIokB,IAAIyqyB,EAAKxjxB,EAAI,GAAM,IAEvBrrC,EAAIokB,IAAIyqyB,GAAMxjxB,EAAI,GAAM,GAAGy0wB,MAEvC,CACA,MAAkB,WAAXtpyB,EAAE10B,KAAoBke,EAAI6h1B,MAAQ7h1B,CAC3C,EAEAug1B,EAAUxi2B,UAAUmk2B,YAAc,SAAqBC,EACrD37uB,EACA47uB,EACAh+0B,EACAi+0B,GACA,IAMIxj2B,EACAw6B,EACA7C,EARA8r0B,EAAWzk2B,KAAK8i2B,QAChB9xB,EAAMhx0B,KAAK+i2B,QACXY,EAAM3j2B,KAAKgj2B,QAGXhgzB,EAAM,EAIV,IAAKhiD,EAAI,EAAGA,EAAIulB,EAAKvlB,IAAK,CAExB,IAAIkj2B,GADJvr0B,EAAIgwF,EAAO3nH,IACOmj2B,cAAcG,GAChCG,EAASzj2B,GAAKkj2B,EAAUlzB,IACxBA,EAAIhw0B,GAAKkj2B,EAAUv7uB,MACrB,CAGA,IAAK3nH,EAAIulB,EAAM,EAAGvlB,GAAK,EAAGA,GAAK,EAAG,CAChC,IAAID,EAAIC,EAAI,EACRw3B,EAAIx3B,EACR,GAAoB,IAAhByj2B,EAAS1j2B,IAA4B,IAAhB0j2B,EAASjs0B,GAAlC,CAQA,IAAIks0B,EAAO,CACT/7uB,EAAO5nH,GACP,KACA,KACA4nH,EAAOnwF,IAI4B,IAAjCmwF,EAAO5nH,GAAG6J,EAAEo4Z,IAAIr6S,EAAOnwF,GAAG5tB,IAC5B851B,EAAK,GAAK/7uB,EAAO5nH,GAAGwlC,IAAIoiF,EAAOnwF,IAC/Bks0B,EAAK,GAAK/7uB,EAAO5nH,GAAG4j2B,MAAMZ,SAASp7uB,EAAOnwF,GAAGypyB,QACM,IAA1Ct5sB,EAAO5nH,GAAG6J,EAAEo4Z,IAAIr6S,EAAOnwF,GAAG5tB,EAAEuk0B,WACrCu1B,EAAK,GAAK/7uB,EAAO5nH,GAAG4j2B,MAAMZ,SAASp7uB,EAAOnwF,IAC1Cks0B,EAAK,GAAK/7uB,EAAO5nH,GAAGwlC,IAAIoiF,EAAOnwF,GAAGypyB,SAElCyiC,EAAK,GAAK/7uB,EAAO5nH,GAAG4j2B,MAAMZ,SAASp7uB,EAAOnwF,IAC1Cks0B,EAAK,GAAK/7uB,EAAO5nH,GAAG4j2B,MAAMZ,SAASp7uB,EAAOnwF,GAAGypyB,QAG/C,IAAI7uyB,EAAQ,EACT,GACA,GACA,GACA,EACD,EACA,EACA,EACA,EACA,GAGEwx0B,EAAMnC,EAAO8B,EAAOxj2B,GAAIwj2B,EAAO/r0B,IAInC,IAHAwqB,EAAMpa,KAAKoa,IAAI4hzB,EAAI,GAAGhk2B,OAAQoiD,GAC9B2gzB,EAAI5i2B,GAAK,IAAIuhB,MAAM0gC,GACnB2gzB,EAAInr0B,GAAK,IAAIlW,MAAM0gC,GACdxnB,EAAI,EAAGA,EAAIwnB,EAAKxnB,IAAK,CACxB,IAAIqp0B,EAAiB,EAAZD,EAAI,GAAGpp0B,GACZsp0B,EAAiB,EAAZF,EAAI,GAAGpp0B,GAEhBmo0B,EAAI5i2B,GAAGy6B,GAAKpI,EAAiB,GAAVyx0B,EAAK,IAAUC,EAAK,IACvCnB,EAAInr0B,GAAGgD,GAAK,EACZw1yB,EAAIjw0B,GAAK2j2B,CACX,CA5CA,MALEf,EAAI5i2B,GAAKyh2B,EAAO+B,EAAOxj2B,GAAI0j2B,EAAS1j2B,GAAIf,KAAKkj2B,YAC7CS,EAAInr0B,GAAKgq0B,EAAO+B,EAAO/r0B,GAAIis0B,EAASjs0B,GAAIx4B,KAAKkj2B,YAC7ClgzB,EAAMpa,KAAKoa,IAAI2gzB,EAAI5i2B,GAAGH,OAAQoiD,GAC9BA,EAAMpa,KAAKoa,IAAI2gzB,EAAInr0B,GAAG53B,OAAQoiD,EA+ClC,CAEA,IAAI7gC,EAAMniB,KAAK8j2B,OAAO,KAAM,KAAM,MAC9BhpH,EAAM96uB,KAAKij2B,QACf,IAAKji2B,EAAIgiD,EAAKhiD,GAAK,EAAGA,IAAK,CAGzB,IAFA,IAAIi6B,EAAI,EAEDj6B,GAAK,GAAG,CACb,IAAIuqlB,GAAO,EACX,IAAK/vjB,EAAI,EAAGA,EAAIjV,EAAKiV,IACnBs/sB,EAAIt/sB,GAAiB,EAAZmo0B,EAAIno0B,GAAGx6B,GACD,IAAX85uB,EAAIt/sB,KACN+vjB,GAAO,GAEX,IAAKA,EACH,MACFtwjB,IACAj6B,GACF,CAIA,GAHIA,GAAK,GACPi6B,IACF9Y,EAAMA,EAAIii1B,KAAKnp0B,GACXj6B,EAAI,EACN,MAEF,IAAKw6B,EAAI,EAAGA,EAAIjV,EAAKiV,IAAK,CACxB,IAAIgyB,EAAIstrB,EAAIt/sB,GAEF,IAANgyB,IAEKA,EAAI,EACX70B,EAAIq4yB,EAAIx1yB,GAAIgyB,EAAI,GAAM,GACfA,EAAI,IACX70B,EAAIq4yB,EAAIx1yB,IAAKgyB,EAAI,GAAM,GAAGy0wB,OAG1B9/yB,EADa,WAAXwW,EAAE10B,KACEke,EAAI4h1B,SAASpr0B,GAEbxW,EAAIokB,IAAI5N,GAClB,CACF,CAEA,IAAK33B,EAAI,EAAGA,EAAIulB,EAAKvlB,IACnBgw0B,EAAIhw0B,GAAK,KAEX,OAAIwj2B,EACKri1B,EAEAA,EAAI6h1B,KACf,EAOAtB,EAAUY,UAAYA,EAEtBA,EAAUpj2B,UAAU2t0B,GAAK,WACvB,MAAM,IAAI1t0B,MAAM,kBAClB,EAEAmj2B,EAAUpj2B,UAAU8lD,SAAW,WAC7B,OAAOhmD,KAAK4j1B,MAAM59xB,SAAShmD,KAC7B,EAEA0i2B,EAAUxi2B,UAAU6k2B,YAAc,SAAqBzk0B,EAAOm1sB,GAC5Dn1sB,EAAQi6J,EAAMj8D,QAAQh+F,EAAOm1sB,GAE7B,IAAIlvtB,EAAMvmB,KAAK24B,EAAEkH,aAGjB,IAAkB,IAAbS,EAAM,IAA4B,IAAbA,EAAM,IAA4B,IAAbA,EAAM,KACjDA,EAAM1/B,OAAS,IAAM,EAAI2lB,EAS3B,OARiB,IAAb+Z,EAAM,GACR4lsB,EAAO5lsB,EAAMA,EAAM1/B,OAAS,GAAK,IAAM,GACnB,IAAb0/B,EAAM,IACb4lsB,EAAO5lsB,EAAMA,EAAM1/B,OAAS,GAAK,IAAM,GAE9BZ,KAAK6xO,MAAMvxM,EAAMla,MAAM,EAAG,EAAIG,GACvC+Z,EAAMla,MAAM,EAAIG,EAAK,EAAI,EAAIA,IAG1B,IAAkB,IAAb+Z,EAAM,IAA4B,IAAbA,EAAM,KAC3BA,EAAM1/B,OAAS,IAAM2lB,EAC/B,OAAOvmB,KAAKgl2B,WAAW1k0B,EAAMla,MAAM,EAAG,EAAIG,GAAmB,IAAb+Z,EAAM,IAExD,MAAM,IAAIngC,MAAM,uBAClB,EAEAmj2B,EAAUpj2B,UAAU+k2B,iBAAmB,SAA0BxvH,GAC/D,OAAOz1uB,KAAKogC,OAAOq1sB,GAAK,EAC1B,EAEA6tH,EAAUpj2B,UAAUgnhB,QAAU,SAAiBg+U,GAC7C,IAAI3+0B,EAAMvmB,KAAK4j1B,MAAMjrzB,EAAEkH,aACnB10B,EAAInL,KAAKo41B,OAAO95tB,QAAQ,KAAM/3G,GAElC,OAAI2+0B,EACK,CAAEll2B,KAAKml2B,OAAO34B,SAAW,EAAO,GAAO9pzB,OAAOvX,GAEhD,CAAE,GAAOuX,OAAOvX,EAAGnL,KAAKml2B,OAAO7muB,QAAQ,KAAM/3G,GACtD,EAEA+80B,EAAUpj2B,UAAUkgC,OAAS,SAAgBq1sB,EAAKyvH,GAChD,OAAO3qqB,EAAMn6J,OAAOpgC,KAAKknhB,QAAQg+U,GAAUzvH,EAC7C,EAEA6tH,EAAUpj2B,UAAUkl2B,WAAa,SAAoBngR,GACnD,GAAIjllB,KAAKuj2B,YACP,OAAOvj2B,KAET,IAAIuj2B,EAAc,CAChBE,QAAS,KACTE,IAAK,KACL1izB,KAAM,MAOR,OALAsizB,EAAYI,IAAM3j2B,KAAKmk2B,cAAc,GACrCZ,EAAYE,QAAUzj2B,KAAK0j2B,YAAY,EAAGz+Q,GAC1Cs+Q,EAAYtizB,KAAOjhD,KAAKql2B,WACxBrl2B,KAAKuj2B,YAAcA,EAEZvj2B,IACT,EAEAsj2B,EAAUpj2B,UAAUol2B,YAAc,SAAqBrq0B,GACrD,IAAKj7B,KAAKuj2B,YACR,OAAO,EAET,IAAIE,EAAUzj2B,KAAKuj2B,YAAYE,QAC/B,QAAKA,GAGEA,EAAQ96uB,OAAO/nH,QAAUgoC,KAAK8wI,MAAMz+I,EAAEyiL,YAAc,GAAK+lpB,EAAQpp0B,KAC1E,EAEAip0B,EAAUpj2B,UAAUwj2B,YAAc,SAAqBrp0B,EAAM4qjB,GAC3D,GAAIjllB,KAAKuj2B,aAAevj2B,KAAKuj2B,YAAYE,QACvC,OAAOzj2B,KAAKuj2B,YAAYE,QAI1B,IAFA,IAAIA,EAAU,CAAEzj2B,MACZmiB,EAAMniB,KACDgB,EAAI,EAAGA,EAAIiklB,EAAOjklB,GAAKq5B,EAAM,CACpC,IAAK,IAAImB,EAAI,EAAGA,EAAInB,EAAMmB,IACxBrZ,EAAMA,EAAIoj1B,MACZ9B,EAAQ7h1B,KAAKO,EACf,CACA,MAAO,CACLkY,KAAMA,EACNsuF,OAAQ86uB,EAEZ,EAEAH,EAAUpj2B,UAAUik2B,cAAgB,SAAuBnzB,GACzD,GAAIhx0B,KAAKuj2B,aAAevj2B,KAAKuj2B,YAAYI,IACvC,OAAO3j2B,KAAKuj2B,YAAYI,IAK1B,IAHA,IAAIvpvB,EAAM,CAAEp6G,MACRgjD,GAAO,GAAKguxB,GAAO,EACnBu0B,EAAc,IAARvizB,EAAY,KAAOhjD,KAAKul2B,MACzBvk2B,EAAI,EAAGA,EAAIgiD,EAAKhiD,IACvBo5G,EAAIp5G,GAAKo5G,EAAIp5G,EAAI,GAAGulC,IAAIg/zB,GAC1B,MAAO,CACLv0B,IAAKA,EACLrotB,OAAQvO,EAEZ,EAEAkpvB,EAAUpj2B,UAAUml2B,SAAW,WAC7B,OAAO,IACT,EAEA/B,EAAUpj2B,UAAUkk2B,KAAO,SAAcnp0B,GAEvC,IADA,IAAI56B,EAAIL,KACCgB,EAAI,EAAGA,EAAIi6B,EAAGj6B,IACrBX,EAAIA,EAAEkl2B,MACR,OAAOll2B,CACT,sCC1XA,IAAIk6L,EAAQvjK,EAAQ,OAChBkoyB,EAAKloyB,EAAQ,OACbi+sB,EAAWj+sB,EAAQ,OACnBo+sB,EAAOp+sB,EAAQ,OAEfkvsB,EAAS3riB,EAAM2riB,OAEnB,SAASs/H,EAAa7C,GAEpB3i2B,KAAKyl2B,QAA2B,KAAP,EAAT9C,EAAK5h2B,GACrBf,KAAK0l2B,MAAQ1l2B,KAAKyl2B,UAA6B,KAAR,EAAT9C,EAAK5h2B,GACnCf,KAAK+q0B,SAAW/q0B,KAAK0l2B,MAErBtwH,EAAKtvtB,KAAK9lB,KAAM,UAAW2i2B,GAE3B3i2B,KAAKe,EAAI,IAAIm+zB,EAAGyjC,EAAK5h2B,EAAG,IAAIor0B,KAAKns0B,KAAKmN,IAAI6tB,GAC1Ch7B,KAAKe,EAAIf,KAAKe,EAAEgt0B,MAAM/t0B,KAAKmN,KAC3BnN,KAAKiB,EAAI,IAAIi+zB,EAAGyjC,EAAK1h2B,EAAG,IAAI8s0B,MAAM/t0B,KAAKmN,KACvCnN,KAAK2h1B,GAAK3h1B,KAAKiB,EAAE6t0B,SACjB9u0B,KAAKu4B,EAAI,IAAI2myB,EAAGyjC,EAAKpq0B,EAAG,IAAIw1yB,MAAM/t0B,KAAKmN,KACvCnN,KAAK2xQ,GAAK3xQ,KAAKu4B,EAAE81yB,OAAOru0B,KAAKu4B,GAE7B2tsB,GAAQlmuB,KAAKyl2B,SAAwC,IAA7Bzl2B,KAAKiB,EAAEit0B,UAAUlB,KAAK,IAC9Cht0B,KAAK2l2B,KAAwB,KAAP,EAAThD,EAAK1h2B,EACpB,CAuFA,SAAS2k2B,EAAMhiB,EAAOz40B,EAAGP,EAAG4iD,EAAG/sD,GAC7B20uB,EAAKkuH,UAAUx90B,KAAK9lB,KAAM4j1B,EAAO,cACvB,OAANz40B,GAAoB,OAANP,GAAoB,OAAN4iD,GAC9BxtD,KAAKmL,EAAInL,KAAK4j1B,MAAMr4P,KACpBvrlB,KAAK4K,EAAI5K,KAAK4j1B,MAAMhT,IACpB5w0B,KAAKwtD,EAAIxtD,KAAK4j1B,MAAMhT,IACpB5w0B,KAAKS,EAAIT,KAAK4j1B,MAAMr4P,KACpBvrlB,KAAK6l2B,MAAO,IAEZ7l2B,KAAKmL,EAAI,IAAI+zzB,EAAG/zzB,EAAG,IACnBnL,KAAK4K,EAAI,IAAIs0zB,EAAGt0zB,EAAG,IACnB5K,KAAKwtD,EAAIA,EAAI,IAAI0xwB,EAAG1xwB,EAAG,IAAMxtD,KAAK4j1B,MAAMhT,IACxC5w0B,KAAKS,EAAIA,GAAK,IAAIy+zB,EAAGz+zB,EAAG,IACnBT,KAAKmL,EAAEgC,MACVnN,KAAKmL,EAAInL,KAAKmL,EAAE4i0B,MAAM/t0B,KAAK4j1B,MAAMz20B,MAC9BnN,KAAK4K,EAAEuC,MACVnN,KAAK4K,EAAI5K,KAAK4K,EAAEmj0B,MAAM/t0B,KAAK4j1B,MAAMz20B,MAC9BnN,KAAKwtD,EAAErgD,MACVnN,KAAKwtD,EAAIxtD,KAAKwtD,EAAEugxB,MAAM/t0B,KAAK4j1B,MAAMz20B,MAC/BnN,KAAKS,IAAMT,KAAKS,EAAE0M,MACpBnN,KAAKS,EAAIT,KAAKS,EAAEst0B,MAAM/t0B,KAAK4j1B,MAAMz20B,MACnCnN,KAAK6l2B,KAAO7l2B,KAAKwtD,IAAMxtD,KAAK4j1B,MAAMhT,IAG9B5w0B,KAAK4j1B,MAAM7Y,WAAa/q0B,KAAKS,IAC/BT,KAAKS,EAAIT,KAAKmL,EAAEwj0B,OAAO3u0B,KAAK4K,GACvB5K,KAAK6l2B,OACR7l2B,KAAKS,EAAIT,KAAKS,EAAEku0B,OAAO3u0B,KAAKwtD,EAAE0hxB,aAGtC,CApHAj6F,EAASuwH,EAAcpwH,GACvBnwhB,EAAOrtL,QAAU4t0B,EAEjBA,EAAatl2B,UAAU4l2B,MAAQ,SAAehk0B,GAC5C,OAAI9hC,KAAK0l2B,MACA5j0B,EAAIqtyB,SAEJnv0B,KAAKe,EAAE4t0B,OAAO7syB,EACzB,EAEA0j0B,EAAatl2B,UAAU6l2B,MAAQ,SAAejk0B,GAC5C,OAAI9hC,KAAK2l2B,KACA7j0B,EAEA9hC,KAAKiB,EAAE0t0B,OAAO7syB,EACzB,EAGA0j0B,EAAatl2B,UAAU4j2B,OAAS,SAAgB341B,EAAGP,EAAG4iD,EAAG/sD,GACvD,OAAOT,KAAK6xO,MAAM1mO,EAAGP,EAAG4iD,EAAG/sD,EAC7B,EAEA+k2B,EAAatl2B,UAAU8k2B,WAAa,SAAoB751B,EAAGw+zB,IACzDx+zB,EAAI,IAAI+zzB,EAAG/zzB,EAAG,KACPgC,MACLhC,EAAIA,EAAE4i0B,MAAM/t0B,KAAKmN,MAEnB,IAAI0jjB,EAAK1ljB,EAAE2j0B,SACPh8Q,EAAM9yjB,KAAK2h1B,GAAGpT,OAAOvu0B,KAAKe,EAAE4t0B,OAAO99Q,IACnCgC,EAAM7yjB,KAAK4w0B,IAAIrC,OAAOvu0B,KAAK2h1B,GAAGhT,OAAO3u0B,KAAKu4B,GAAGo2yB,OAAO99Q,IAEpDC,EAAKgC,EAAI67Q,OAAO97Q,EAAIq8Q,WACpBtk0B,EAAIkmjB,EAAGm+Q,UACX,GAA6C,IAAzCrk0B,EAAEkk0B,SAASP,OAAOz9Q,GAAI9tJ,IAAIhja,KAAKurlB,MACjC,MAAM,IAAIprlB,MAAM,iBAElB,IAAIys0B,EAAQhi0B,EAAEsj0B,UAAUtB,QAIxB,OAHIjD,IAAQiD,IAAUjD,GAAOiD,KAC3Bhi0B,EAAIA,EAAEuk0B,UAEDnv0B,KAAK6xO,MAAM1mO,EAAGP,EACvB,EAEA461B,EAAatl2B,UAAU8l2B,WAAa,SAAoBp71B,EAAG++zB,IACzD/+zB,EAAI,IAAIs0zB,EAAGt0zB,EAAG,KACPuC,MACLvC,EAAIA,EAAEmj0B,MAAM/t0B,KAAKmN,MAGnB,IAAI2jjB,EAAKlmjB,EAAEkk0B,SACPj8Q,EAAM/B,EAAGy9Q,OAAOvu0B,KAAK2h1B,IACrB7uR,EAAMhC,EAAG69Q,OAAO3u0B,KAAKu4B,GAAGo2yB,OAAO3u0B,KAAK2h1B,IAAIpT,OAAOvu0B,KAAKe,GACpD8vjB,EAAKgC,EAAI87Q,OAAO77Q,EAAIo8Q,WAExB,GAA0B,IAAtBr+Q,EAAG7tJ,IAAIhja,KAAKurlB,MAAa,CAC3B,GAAIo+O,EACF,MAAM,IAAIxp0B,MAAM,iBAEhB,OAAOH,KAAK6xO,MAAM7xO,KAAKurlB,KAAM3glB,EACjC,CAEA,IAAIO,EAAI0ljB,EAAGo+Q,UACX,GAA6C,IAAzC9j0B,EAAE2j0B,SAASP,OAAO19Q,GAAI7tJ,IAAIhja,KAAKurlB,MACjC,MAAM,IAAIprlB,MAAM,iBAKlB,OAHIgL,EAAE+i0B,UAAUtB,UAAYjD,IAC1Bx+zB,EAAIA,EAAEgk0B,UAEDnv0B,KAAK6xO,MAAM1mO,EAAGP,EACvB,EAEA461B,EAAatl2B,UAAU8lD,SAAW,SAAkB6rL,GAClD,GAAIA,EAAMo0nB,aACR,OAAO,EAGTp0nB,EAAMq0nB,YAEN,IAAIr1S,EAAKh/U,EAAM1mO,EAAE2j0B,SACbh+Q,EAAKj/U,EAAMjnO,EAAEkk0B,SACbj8Q,EAAMhC,EAAG89Q,OAAO3u0B,KAAKe,GAAGst0B,OAAOv9Q,GAC/BgC,EAAM9yjB,KAAK2h1B,GAAGhT,OAAO3u0B,KAAK4w0B,IAAIvC,OAAOru0B,KAAKu4B,EAAEo2yB,OAAO99Q,GAAI89Q,OAAO79Q,KAElE,OAAwB,IAAjB+B,EAAI7vJ,IAAI8vJ,EACjB,EAiCAmiL,EAAS2wH,EAAOxwH,EAAKkuH,WAErBkC,EAAatl2B,UAAU0i2B,cAAgB,SAAuBv90B,GAC5D,OAAOug1B,EAAMO,SAASnm2B,KAAMqlB,EAC9B,EAEAmg1B,EAAatl2B,UAAU2xO,MAAQ,SAAe1mO,EAAGP,EAAG4iD,EAAG/sD,GACrD,OAAO,IAAIml2B,EAAM5l2B,KAAMmL,EAAGP,EAAG4iD,EAAG/sD,EAClC,EAEAml2B,EAAMO,SAAW,SAAkBviB,EAAOv+zB,GACxC,OAAO,IAAIug1B,EAAMhiB,EAAOv+zB,EAAI,GAAIA,EAAI,GAAIA,EAAI,GAC9C,EAEAug1B,EAAM1l2B,UAAU67G,QAAU,WACxB,OAAI/7G,KAAKim2B,aACA,sBACF,gBAAkBjm2B,KAAKmL,EAAE+i0B,UAAU3s0B,SAAS,GAAI,GACnD,OAASvB,KAAK4K,EAAEsj0B,UAAU3s0B,SAAS,GAAI,GACvC,OAASvB,KAAKwtD,EAAE0gxB,UAAU3s0B,SAAS,GAAI,GAAK,GAClD,EAEAqk2B,EAAM1l2B,UAAU+l2B,WAAa,WAE3B,OAA0B,IAAnBjm2B,KAAKmL,EAAE6h0B,KAAK,KACO,IAAvBht0B,KAAK4K,EAAEo4Z,IAAIhja,KAAKwtD,IAChBxtD,KAAK6l2B,MAAqC,IAA7B7l2B,KAAK4K,EAAEo4Z,IAAIhja,KAAK4j1B,MAAM3i1B,GACxC,EAEA2k2B,EAAM1l2B,UAAUkm2B,QAAU,WAMxB,IAAIrl2B,EAAIf,KAAKmL,EAAE2j0B,SAEXt2yB,EAAIx4B,KAAK4K,EAAEkk0B,SAEX7t0B,EAAIjB,KAAKwtD,EAAEshxB,SACf7t0B,EAAIA,EAAEqt0B,QAAQrt0B,GAEd,IAAIs3B,EAAIv4B,KAAK4j1B,MAAMkiB,MAAM/k2B,GAErBhB,EAAIC,KAAKmL,EAAEkj0B,OAAOru0B,KAAK4K,GAAGkk0B,SAASN,QAAQzt0B,GAAGyt0B,QAAQh2yB,GAEtDiC,EAAIlC,EAAE81yB,OAAO71yB,GAEb/Y,EAAIgb,EAAE8zyB,OAAOtt0B,GAEbigB,EAAIqX,EAAEg2yB,OAAO/1yB,GAEb6t0B,EAAKtm2B,EAAE4u0B,OAAOlvzB,GAEd6m1B,EAAK7r0B,EAAEk0yB,OAAOztzB,GAEdql1B,EAAKxm2B,EAAE4u0B,OAAOztzB,GAEdsl1B,EAAK/m1B,EAAEkvzB,OAAOl0yB,GAClB,OAAOz6B,KAAK4j1B,MAAM/xmB,MAAMw0nB,EAAIC,EAAIE,EAAID,EACtC,EAEAX,EAAM1l2B,UAAUum2B,SAAW,WAQzB,IAMIJ,EACAC,EACAE,EACAzm2B,EACAmhB,EACAsa,EAXAhD,EAAIx4B,KAAKmL,EAAEkj0B,OAAOru0B,KAAK4K,GAAGkk0B,SAE1B7t0B,EAAIjB,KAAKmL,EAAE2j0B,SAEXv2yB,EAAIv4B,KAAK4K,EAAEkk0B,SAQf,GAAI9u0B,KAAK4j1B,MAAM6hB,QAAS,CAItB,IAAIhm1B,GAFJ1f,EAAIC,KAAK4j1B,MAAMkiB,MAAM7k2B,IAEXot0B,OAAO91yB,GACbv4B,KAAK6l2B,MAEPQ,EAAK7t0B,EAAE+1yB,OAAOtt0B,GAAGst0B,OAAOh2yB,GAAGo2yB,OAAOlvzB,EAAE8uzB,OAAOvu0B,KAAK4j1B,MAAMxoG,MAEtDkrH,EAAK7m1B,EAAEkvzB,OAAO5u0B,EAAEwu0B,OAAOh2yB,IAEvBiu0B,EAAK/m1B,EAAEqvzB,SAASP,OAAO9uzB,GAAG8uzB,OAAO9uzB,KAGjCyB,EAAIlhB,KAAKwtD,EAAEshxB,SAEXtzyB,EAAI/b,EAAE8uzB,OAAOrtzB,GAAGstzB,QAAQttzB,GAExBml1B,EAAK7t0B,EAAE+1yB,OAAOtt0B,GAAGut0B,QAAQj2yB,GAAGo2yB,OAAOnzyB,GAEnC8q0B,EAAK7m1B,EAAEkvzB,OAAO5u0B,EAAEwu0B,OAAOh2yB,IAEvBiu0B,EAAK/m1B,EAAEkvzB,OAAOnzyB,GAElB,MAEEz7B,EAAIkB,EAAEot0B,OAAO91yB,GAEbrX,EAAIlhB,KAAK4j1B,MAAMmiB,MAAM/l2B,KAAKwtD,GAAGshxB,SAE7BtzyB,EAAIz7B,EAAEwu0B,OAAOrtzB,GAAGqtzB,OAAOrtzB,GAEvBml1B,EAAKrm2B,KAAK4j1B,MAAMmiB,MAAMvt0B,EAAEg2yB,QAAQzu0B,IAAI4u0B,OAAOnzyB,GAE3C8q0B,EAAKtm2B,KAAK4j1B,MAAMmiB,MAAMhm2B,GAAG4u0B,OAAO1t0B,EAAEut0B,QAAQj2yB,IAE1Ciu0B,EAAKzm2B,EAAE4u0B,OAAOnzyB,GAEhB,OAAOx7B,KAAK4j1B,MAAM/xmB,MAAMw0nB,EAAIC,EAAIE,EAClC,EAEAZ,EAAM1l2B,UAAUql2B,IAAM,WACpB,OAAIvl2B,KAAKim2B,aACAjm2B,KAGLA,KAAK4j1B,MAAM7Y,SACN/q0B,KAAKom2B,UAELpm2B,KAAKym2B,UAChB,EAEAb,EAAM1l2B,UAAUwm2B,QAAU,SAAiB/t0B,GAMzC,IAAI53B,EAAIf,KAAK4K,EAAE2j0B,OAAOvu0B,KAAKmL,GAAGwj0B,OAAOh2yB,EAAE/tB,EAAE2j0B,OAAO51yB,EAAExtB,IAE9CqtB,EAAIx4B,KAAK4K,EAAEyj0B,OAAOru0B,KAAKmL,GAAGwj0B,OAAOh2yB,EAAE/tB,EAAEyj0B,OAAO11yB,EAAExtB,IAE9ClK,EAAIjB,KAAKS,EAAEku0B,OAAO3u0B,KAAK4j1B,MAAMjykB,IAAIg9jB,OAAOh2yB,EAAEl4B,GAE1C83B,EAAIv4B,KAAKwtD,EAAEmhxB,OAAOh2yB,EAAE60B,EAAE6gxB,OAAO11yB,EAAE60B,IAE/BztD,EAAIy4B,EAAE+1yB,OAAOxt0B,GAEb0e,EAAI8Y,EAAEg2yB,OAAOtt0B,GAEbw5B,EAAIlC,EAAE81yB,OAAOpt0B,GAEbigB,EAAIsX,EAAE61yB,OAAOtt0B,GAEbsl2B,EAAKtm2B,EAAE4u0B,OAAOlvzB,GAEd6m1B,EAAK7r0B,EAAEk0yB,OAAOztzB,GAEdql1B,EAAKxm2B,EAAE4u0B,OAAOztzB,GAEdsl1B,EAAK/m1B,EAAEkvzB,OAAOl0yB,GAClB,OAAOz6B,KAAK4j1B,MAAM/xmB,MAAMw0nB,EAAIC,EAAIE,EAAID,EACtC,EAEAX,EAAM1l2B,UAAUym2B,SAAW,SAAkBhu0B,GAO3C,IAgBI2t0B,EACAE,EAjBAzl2B,EAAIf,KAAKwtD,EAAEmhxB,OAAOh2yB,EAAE60B,GAEpBh1B,EAAIz3B,EAAE+t0B,SAEN7t0B,EAAIjB,KAAKmL,EAAEwj0B,OAAOh2yB,EAAExtB,GAEpBotB,EAAIv4B,KAAK4K,EAAE+j0B,OAAOh2yB,EAAE/tB,GAEpB7K,EAAIC,KAAK4j1B,MAAMrrzB,EAAEo2yB,OAAO1t0B,GAAG0t0B,OAAOp2yB,GAElC9Y,EAAI+Y,EAAE+1yB,OAAOxu0B,GAEb06B,EAAIjC,EAAE61yB,OAAOtu0B,GAEb+6uB,EAAM96uB,KAAKmL,EAAEkj0B,OAAOru0B,KAAK4K,GAAG+j0B,OAAOh2yB,EAAExtB,EAAEkj0B,OAAO11yB,EAAE/tB,IAAI4j0B,QAAQvt0B,GAAGut0B,QAAQj2yB,GACvE8t0B,EAAKtl2B,EAAE4t0B,OAAOlvzB,GAAGkvzB,OAAO7zF,GAc5B,OAXI96uB,KAAK4j1B,MAAM6hB,SAEba,EAAKvl2B,EAAE4t0B,OAAOl0yB,GAAGk0yB,OAAOp2yB,EAAEg2yB,OAAOvu0B,KAAK4j1B,MAAMkiB,MAAM7k2B,KAElDul2B,EAAK/m1B,EAAEkvzB,OAAOl0yB,KAGd6r0B,EAAKvl2B,EAAE4t0B,OAAOl0yB,GAAGk0yB,OAAOp2yB,EAAEg2yB,OAAOtt0B,IAEjCul2B,EAAKxm2B,KAAK4j1B,MAAMmiB,MAAMtm1B,GAAGkvzB,OAAOl0yB,IAE3Bz6B,KAAK4j1B,MAAM/xmB,MAAMw0nB,EAAIC,EAAIE,EAClC,EAEAZ,EAAM1l2B,UAAUqmC,IAAM,SAAa5N,GACjC,OAAI34B,KAAKim2B,aACAtt0B,EACLA,EAAEst0B,aACGjm2B,KAELA,KAAK4j1B,MAAM7Y,SACN/q0B,KAAK0m2B,QAAQ/t0B,GAEb34B,KAAK2m2B,SAAShu0B,EACzB,EAEAit0B,EAAM1l2B,UAAU+8G,IAAM,SAAahiF,GACjC,OAAIj7B,KAAKsl2B,YAAYrq0B,GACZj7B,KAAK4j1B,MAAM4f,aAAaxj2B,KAAMi7B,GAE9Bj7B,KAAK4j1B,MAAMqgB,SAASjk2B,KAAMi7B,EACrC,EAEA2q0B,EAAM1l2B,UAAU0m2B,OAAS,SAAgB3I,EAAItl0B,EAAGuC,GAC9C,OAAOl7B,KAAK4j1B,MAAMygB,YAAY,EAAG,CAAErk2B,KAAM24B,GAAK,CAAEsl0B,EAAI/i0B,GAAM,GAAG,EAC/D,EAEA0q0B,EAAM1l2B,UAAU2m2B,QAAU,SAAiB5I,EAAItl0B,EAAGuC,GAChD,OAAOl7B,KAAK4j1B,MAAMygB,YAAY,EAAG,CAAErk2B,KAAM24B,GAAK,CAAEsl0B,EAAI/i0B,GAAM,GAAG,EAC/D,EAEA0q0B,EAAM1l2B,UAAUgm2B,UAAY,WAC1B,GAAIlm2B,KAAK6l2B,KACP,OAAO7l2B,KAGT,IAAI8m2B,EAAK9m2B,KAAKwtD,EAAE0hxB,UAOhB,OANAlv0B,KAAKmL,EAAInL,KAAKmL,EAAEwj0B,OAAOm4B,GACvB9m2B,KAAK4K,EAAI5K,KAAK4K,EAAE+j0B,OAAOm4B,GACnB9m2B,KAAKS,IACPT,KAAKS,EAAIT,KAAKS,EAAEku0B,OAAOm4B,IACzB9m2B,KAAKwtD,EAAIxtD,KAAK4j1B,MAAMhT,IACpB5w0B,KAAK6l2B,MAAO,EACL7l2B,IACT,EAEA4l2B,EAAM1l2B,UAAU+h0B,IAAM,WACpB,OAAOji0B,KAAK4j1B,MAAM/xmB,MAAM7xO,KAAKmL,EAAEgk0B,SAC7Bnv0B,KAAK4K,EACL5K,KAAKwtD,EACLxtD,KAAKS,GAAKT,KAAKS,EAAE0u0B,SACrB,EAEAy2B,EAAM1l2B,UAAUk41B,KAAO,WAErB,OADAp41B,KAAKkm2B,YACElm2B,KAAKmL,EAAE+i0B,SAChB,EAEA03B,EAAM1l2B,UAAUil2B,KAAO,WAErB,OADAnl2B,KAAKkm2B,YACElm2B,KAAK4K,EAAEsj0B,SAChB,EAEA03B,EAAM1l2B,UAAU2t0B,GAAK,SAAY9wsB,GAC/B,OAAO/8H,OAAS+8H,GACyB,IAAlC/8H,KAAKo41B,OAAOp1b,IAAIjmS,EAAMq7tB,SACY,IAAlCp41B,KAAKml2B,OAAOnic,IAAIjmS,EAAMoouB,OAC/B,EAEAS,EAAM1l2B,UAAU6m2B,OAAS,SAAgB571B,GACvC,IAAIs+zB,EAAKt+zB,EAAE4i0B,MAAM/t0B,KAAK4j1B,MAAMz20B,KAAKwh0B,OAAO3u0B,KAAKwtD,GAC7C,GAAuB,IAAnBxtD,KAAKmL,EAAE63Z,IAAIyma,GACb,OAAO,EAIT,IAFA,IAAIu9B,EAAK771B,EAAE8lC,QACPxwC,EAAIT,KAAK4j1B,MAAMwf,KAAKz0B,OAAO3u0B,KAAKwtD,KAC3B,CAEP,GADAw5yB,EAAG9jC,KAAKlj0B,KAAK4j1B,MAAM/i1B,GACfmm2B,EAAGhkc,IAAIhja,KAAK4j1B,MAAMjrzB,IAAM,EAC1B,OAAO,EAGT,GADA8wyB,EAAG6E,QAAQ7t0B,GACY,IAAnBT,KAAKmL,EAAE63Z,IAAIyma,GACb,OAAO,CACX,CACF,EAGAm8B,EAAM1l2B,UAAU8j2B,IAAM4B,EAAM1l2B,UAAUgm2B,UACtCN,EAAM1l2B,UAAU6j2B,SAAW6B,EAAM1l2B,UAAUqmC,wCChb3C,IAAIq9yB,EAAQhszB,EAEZgszB,EAAM5+pB,KAAOhuJ,EAAQ,OACrB4szB,EAAMt1sB,MAAQt3G,EAAQ,OACtB4szB,EAAM1S,KAAOl6yB,EAAQ,OACrB4szB,EAAMqjB,QAAUjw0B,EAAQ,2CCLxB,IAAIkoyB,EAAKloyB,EAAQ,OACbi+sB,EAAWj+sB,EAAQ,OACnBo+sB,EAAOp+sB,EAAQ,OAEfujK,EAAQvjK,EAAQ,OAEpB,SAASkw0B,EAAUvE,GACjBvtH,EAAKtvtB,KAAK9lB,KAAM,OAAQ2i2B,GAExB3i2B,KAAKe,EAAI,IAAIm+zB,EAAGyjC,EAAK5h2B,EAAG,IAAIgt0B,MAAM/t0B,KAAKmN,KACvCnN,KAAKw4B,EAAI,IAAI0myB,EAAGyjC,EAAKnq0B,EAAG,IAAIu1yB,MAAM/t0B,KAAKmN,KACvCnN,KAAKmn2B,GAAK,IAAIjoC,EAAG,GAAG6O,MAAM/t0B,KAAKmN,KAAK+h0B,UACpClv0B,KAAKo7uB,IAAM,IAAI8jF,EAAG,GAAG6O,MAAM/t0B,KAAKmN,KAChCnN,KAAKon2B,IAAMpn2B,KAAKmn2B,GAAGx4B,OAAO3u0B,KAAKe,EAAEst0B,OAAOru0B,KAAKo7uB,KAC/C,CAaA,SAASwqH,EAAMhiB,EAAOz40B,EAAGqiD,GACvB4nrB,EAAKkuH,UAAUx90B,KAAK9lB,KAAM4j1B,EAAO,cACvB,OAANz40B,GAAoB,OAANqiD,GAChBxtD,KAAKmL,EAAInL,KAAK4j1B,MAAMhT,IACpB5w0B,KAAKwtD,EAAIxtD,KAAK4j1B,MAAMr4P,OAEpBvrlB,KAAKmL,EAAI,IAAI+zzB,EAAG/zzB,EAAG,IACnBnL,KAAKwtD,EAAI,IAAI0xwB,EAAG1xwB,EAAG,IACdxtD,KAAKmL,EAAEgC,MACVnN,KAAKmL,EAAInL,KAAKmL,EAAE4i0B,MAAM/t0B,KAAK4j1B,MAAMz20B,MAC9BnN,KAAKwtD,EAAErgD,MACVnN,KAAKwtD,EAAIxtD,KAAKwtD,EAAEugxB,MAAM/t0B,KAAK4j1B,MAAMz20B,MAEvC,CAzBA8nuB,EAASiyH,EAAW9xH,GACpBnwhB,EAAOrtL,QAAUsv0B,EAEjBA,EAAUhn2B,UAAU8lD,SAAW,SAAkB6rL,GAC/C,IAAI1mO,EAAI0mO,EAAMq0nB,YAAY/61B,EACtB0ljB,EAAK1ljB,EAAE2j0B,SACPh8Q,EAAMjC,EAAG89Q,OAAOxj0B,GAAGkj0B,OAAOx9Q,EAAG89Q,OAAO3u0B,KAAKe,IAAIst0B,OAAOlj0B,GAGxD,OAA+B,IAFvB2njB,EAAIm8Q,UAEHH,SAAS9ra,IAAI8vJ,EACxB,EAgBAmiL,EAAS2wH,EAAOxwH,EAAKkuH,WAErB4D,EAAUhn2B,UAAU6k2B,YAAc,SAAqBzk0B,EAAOm1sB,GAC5D,OAAOz1uB,KAAK6xO,MAAMt3C,EAAMj8D,QAAQh+F,EAAOm1sB,GAAM,EAC/C,EAEAyxH,EAAUhn2B,UAAU2xO,MAAQ,SAAe1mO,EAAGqiD,GAC5C,OAAO,IAAIo4yB,EAAM5l2B,KAAMmL,EAAGqiD,EAC5B,EAEA05yB,EAAUhn2B,UAAU0i2B,cAAgB,SAAuBv90B,GACzD,OAAOug1B,EAAMO,SAASnm2B,KAAMqlB,EAC9B,EAEAug1B,EAAM1l2B,UAAUkl2B,WAAa,WAC3B,EAGFQ,EAAM1l2B,UAAUgnhB,QAAU,WACxB,OAAOlnhB,KAAKo41B,OAAO95tB,QAAQ,KAAMt+H,KAAK4j1B,MAAMjrzB,EAAEkH,aAChD,EAEA+l0B,EAAMO,SAAW,SAAkBviB,EAAOv+zB,GACxC,OAAO,IAAIug1B,EAAMhiB,EAAOv+zB,EAAI,GAAIA,EAAI,IAAMu+zB,EAAMhT,IAClD,EAEAg1B,EAAM1l2B,UAAU67G,QAAU,WACxB,OAAI/7G,KAAKim2B,aACA,sBACF,gBAAkBjm2B,KAAKmL,EAAE+i0B,UAAU3s0B,SAAS,GAAI,GACnD,OAASvB,KAAKwtD,EAAE0gxB,UAAU3s0B,SAAS,GAAI,GAAK,GAClD,EAEAqk2B,EAAM1l2B,UAAU+l2B,WAAa,WAE3B,OAA0B,IAAnBjm2B,KAAKwtD,EAAEw/wB,KAAK,EACrB,EAEA44B,EAAM1l2B,UAAUql2B,IAAM,WAKpB,IAEIt2yB,EAFIjvD,KAAKmL,EAAEkj0B,OAAOru0B,KAAKwtD,GAEhBshxB,SAIP18wB,EAFIpyD,KAAKmL,EAAEoj0B,OAAOvu0B,KAAKwtD,GAEhBshxB,SAEP7t0B,EAAIguD,EAAGs/wB,OAAOn8wB,GAEdi0yB,EAAKp3yB,EAAG0/wB,OAAOv8wB,GAEfo0yB,EAAKvl2B,EAAE0t0B,OAAOv8wB,EAAGi8wB,OAAOru0B,KAAK4j1B,MAAMwjB,IAAIz4B,OAAO1t0B,KAClD,OAAOjB,KAAK4j1B,MAAM/xmB,MAAMw0nB,EAAIG,EAC9B,EAEAZ,EAAM1l2B,UAAUqmC,IAAM,WACpB,MAAM,IAAIpmC,MAAM,oCAClB,EAEAyl2B,EAAM1l2B,UAAUmn2B,QAAU,SAAiB1u0B,EAAG2hI,GAK5C,IAAIv5J,EAAIf,KAAKmL,EAAEkj0B,OAAOru0B,KAAKwtD,GAEvBh1B,EAAIx4B,KAAKmL,EAAEoj0B,OAAOvu0B,KAAKwtD,GAEvBvsD,EAAI03B,EAAExtB,EAAEkj0B,OAAO11yB,EAAE60B,GAIjB85yB,EAFI3u0B,EAAExtB,EAAEoj0B,OAAO51yB,EAAE60B,GAEVmhxB,OAAO5t0B,GAEdwoI,EAAKtoI,EAAE0t0B,OAAOn2yB,GAEd6t0B,EAAK/rsB,EAAK9sG,EAAEmhxB,OAAO24B,EAAGj5B,OAAO9ksB,GAAIulsB,UAEjC03B,EAAKlssB,EAAKnvJ,EAAEwj0B,OAAO24B,EAAG94B,QAAQjlsB,GAAIulsB,UACtC,OAAO9u0B,KAAK4j1B,MAAM/xmB,MAAMw0nB,EAAIG,EAC9B,EAEAZ,EAAM1l2B,UAAU+8G,IAAM,SAAahiF,GAMjC,IALA,IAAIx6B,EAAIw6B,EAAEgW,QACNlwC,EAAIf,KACJw4B,EAAIx4B,KAAK4j1B,MAAM/xmB,MAAM,KAAM,MAGtBp0B,EAAO,GAAkB,IAAdh9M,EAAEus0B,KAAK,GAAUvs0B,EAAE2g0B,OAAO,GAC5C3jnB,EAAK77L,KAAKnhB,EAAE0g0B,MAAM,IAEpB,IAAK,IAAIng0B,EAAIy8M,EAAK78M,OAAS,EAAGI,GAAK,EAAGA,IACpB,IAAZy8M,EAAKz8M,IAEPD,EAAIA,EAAEsm2B,QAAQ7u0B,EARVx4B,MAUJw4B,EAAIA,EAAE+s0B,QAGN/s0B,EAAIz3B,EAAEsm2B,QAAQ7u0B,EAbVx4B,MAeJe,EAAIA,EAAEwk2B,OAGV,OAAO/s0B,CACT,EAEAot0B,EAAM1l2B,UAAU0m2B,OAAS,WACvB,MAAM,IAAIzm2B,MAAM,oCAClB,EAEAyl2B,EAAM1l2B,UAAUqn2B,QAAU,WACxB,MAAM,IAAIpn2B,MAAM,oCAClB,EAEAyl2B,EAAM1l2B,UAAU2t0B,GAAK,SAAY9wsB,GAC/B,OAAyC,IAAlC/8H,KAAKo41B,OAAOp1b,IAAIjmS,EAAMq7tB,OAC/B,EAEAwN,EAAM1l2B,UAAUgm2B,UAAY,WAG1B,OAFAlm2B,KAAKmL,EAAInL,KAAKmL,EAAEwj0B,OAAO3u0B,KAAKwtD,EAAE0hxB,WAC9Blv0B,KAAKwtD,EAAIxtD,KAAK4j1B,MAAMhT,IACb5w0B,IACT,EAEA4l2B,EAAM1l2B,UAAUk41B,KAAO,WAIrB,OAFAp41B,KAAKkm2B,YAEElm2B,KAAKmL,EAAE+i0B,SAChB,sCC/KA,IAAI3zoB,EAAQvjK,EAAQ,OAChBkoyB,EAAKloyB,EAAQ,OACbi+sB,EAAWj+sB,EAAQ,OACnBo+sB,EAAOp+sB,EAAQ,OAEfkvsB,EAAS3riB,EAAM2riB,OAEnB,SAASshI,EAAW7E,GAClBvtH,EAAKtvtB,KAAK9lB,KAAM,QAAS2i2B,GAEzB3i2B,KAAKe,EAAI,IAAIm+zB,EAAGyjC,EAAK5h2B,EAAG,IAAIgt0B,MAAM/t0B,KAAKmN,KACvCnN,KAAKw4B,EAAI,IAAI0myB,EAAGyjC,EAAKnq0B,EAAG,IAAIu1yB,MAAM/t0B,KAAKmN,KACvCnN,KAAKyn2B,KAAOzn2B,KAAKo7uB,IAAI8zF,UAErBlv0B,KAAK0n2B,MAAqC,IAA7B1n2B,KAAKe,EAAEmt0B,UAAUlB,KAAK,GACnCht0B,KAAK2n2B,OAAmD,IAA1C3n2B,KAAKe,EAAEmt0B,UAAUvvtB,IAAI3+G,KAAK24B,GAAGq0yB,MAAM,GAGjDht0B,KAAK4n2B,KAAO5n2B,KAAK6n2B,iBAAiBlF,GAClC3i2B,KAAK8n2B,YAAc,IAAIxl1B,MAAM,GAC7BtiB,KAAK+n2B,YAAc,IAAIzl1B,MAAM,EAC/B,CAmOA,SAASsj1B,EAAMhiB,EAAOz40B,EAAGP,EAAGo91B,GAC1B5yH,EAAKkuH,UAAUx90B,KAAK9lB,KAAM4j1B,EAAO,UACvB,OAANz40B,GAAoB,OAANP,GAChB5K,KAAKmL,EAAI,KACTnL,KAAK4K,EAAI,KACT5K,KAAKio2B,KAAM,IAEXjo2B,KAAKmL,EAAI,IAAI+zzB,EAAG/zzB,EAAG,IACnBnL,KAAK4K,EAAI,IAAIs0zB,EAAGt0zB,EAAG,IAEfo91B,IACFho2B,KAAKmL,EAAEij0B,SAASpu0B,KAAK4j1B,MAAMz20B,KAC3BnN,KAAK4K,EAAEwj0B,SAASpu0B,KAAK4j1B,MAAMz20B,MAExBnN,KAAKmL,EAAEgC,MACVnN,KAAKmL,EAAInL,KAAKmL,EAAE4i0B,MAAM/t0B,KAAK4j1B,MAAMz20B,MAC9BnN,KAAK4K,EAAEuC,MACVnN,KAAK4K,EAAI5K,KAAK4K,EAAEmj0B,MAAM/t0B,KAAK4j1B,MAAMz20B,MACnCnN,KAAKio2B,KAAM,EAEf,CA2NA,SAASC,EAAOtkB,EAAOz40B,EAAGP,EAAG4iD,GAC3B4nrB,EAAKkuH,UAAUx90B,KAAK9lB,KAAM4j1B,EAAO,YACvB,OAANz40B,GAAoB,OAANP,GAAoB,OAAN4iD,GAC9BxtD,KAAKmL,EAAInL,KAAK4j1B,MAAMhT,IACpB5w0B,KAAK4K,EAAI5K,KAAK4j1B,MAAMhT,IACpB5w0B,KAAKwtD,EAAI,IAAI0xwB,EAAG,KAEhBl/zB,KAAKmL,EAAI,IAAI+zzB,EAAG/zzB,EAAG,IACnBnL,KAAK4K,EAAI,IAAIs0zB,EAAGt0zB,EAAG,IACnB5K,KAAKwtD,EAAI,IAAI0xwB,EAAG1xwB,EAAG,KAEhBxtD,KAAKmL,EAAEgC,MACVnN,KAAKmL,EAAInL,KAAKmL,EAAE4i0B,MAAM/t0B,KAAK4j1B,MAAMz20B,MAC9BnN,KAAK4K,EAAEuC,MACVnN,KAAK4K,EAAI5K,KAAK4K,EAAEmj0B,MAAM/t0B,KAAK4j1B,MAAMz20B,MAC9BnN,KAAKwtD,EAAErgD,MACVnN,KAAKwtD,EAAIxtD,KAAKwtD,EAAEugxB,MAAM/t0B,KAAK4j1B,MAAMz20B,MAEnCnN,KAAK6l2B,KAAO7l2B,KAAKwtD,IAAMxtD,KAAK4j1B,MAAMhT,GACpC,CApeA37F,EAASuyH,EAAYpyH,GACrBnwhB,EAAOrtL,QAAU4v0B,EAEjBA,EAAWtn2B,UAAU2n2B,iBAAmB,SAA0BlF,GAEhE,GAAK3i2B,KAAK0n2B,OAAU1n2B,KAAKy6B,GAAMz6B,KAAKa,GAAwB,IAAnBb,KAAK24B,EAAEmoyB,KAAK,GAArD,CAIA,IAAI7/wB,EACAknzB,EACJ,GAAIxF,EAAK1hzB,KACPA,EAAO,IAAIi+wB,EAAGyjC,EAAK1hzB,KAAM,IAAI8sxB,MAAM/t0B,KAAKmN,SACnC,CACL,IAAIi71B,EAAQpo2B,KAAKqo2B,cAAcro2B,KAAK24B,GAGpCsoB,GADAA,EAAOmnzB,EAAM,GAAGplc,IAAIolc,EAAM,IAAM,EAAIA,EAAM,GAAKA,EAAM,IACzCr6B,MAAM/t0B,KAAKmN,IACzB,CACA,GAAIw11B,EAAKwF,OACPA,EAAS,IAAIjpC,EAAGyjC,EAAKwF,OAAQ,QACxB,CAEL,IAAIG,EAAUto2B,KAAKqo2B,cAAcro2B,KAAKa,GACsB,IAAxDb,KAAKy6B,EAAEwiF,IAAIqrvB,EAAQ,IAAIn91B,EAAE63Z,IAAIhja,KAAKy6B,EAAEtvB,EAAEwj0B,OAAO1txB,IAC/CknzB,EAASG,EAAQ,IAEjBH,EAASG,EAAQ,GACjBpiI,EAA2D,IAApDlmuB,KAAKy6B,EAAEwiF,IAAIkrvB,GAAQh91B,EAAE63Z,IAAIhja,KAAKy6B,EAAEtvB,EAAEwj0B,OAAO1txB,KAEpD,CAeA,MAAO,CACLA,KAAMA,EACNknzB,OAAQA,EACRI,MAdE5F,EAAK4F,MACC5F,EAAK4F,MAAMr41B,KAAI,SAASs41B,GAC9B,MAAO,CACLzn2B,EAAG,IAAIm+zB,EAAGspC,EAAIzn2B,EAAG,IACjBy3B,EAAG,IAAI0myB,EAAGspC,EAAIhw0B,EAAG,IAErB,IAEQx4B,KAAKyo2B,cAAcN,GApCrB,CA4CV,EAEAX,EAAWtn2B,UAAUmo2B,cAAgB,SAAuBvm0B,GAI1D,IAAI30B,EAAM20B,IAAQ9hC,KAAK24B,EAAI34B,KAAKmN,IAAM+xzB,EAAGgS,KAAKpvyB,GAC1C2l0B,EAAO,IAAIvoC,EAAG,GAAG6O,MAAM5g0B,GAAK+h0B,UAC5Bw5B,EAAQjB,EAAKt4B,SAEbj2yB,EAAI,IAAIgmyB,EAAG,GAAG6O,MAAM5g0B,GAAKgi0B,SAASF,UAAUN,OAAO84B,GAIvD,MAAO,CAFEiB,EAAMr6B,OAAOn1yB,GAAGg1yB,UAChBw6B,EAAMn6B,OAAOr1yB,GAAGg1yB,UAE3B,EAEAs5B,EAAWtn2B,UAAUuo2B,cAAgB,SAAuBN,GA2B1D,IAzBA,IAYI7kC,EACA4B,EAEAl/P,EACAq/P,EAEAp/P,EACAu/P,EAEAmjC,EAEAto2B,EACA8K,EAxBAy91B,EAAW5o2B,KAAKa,EAAEwq0B,MAAMziyB,KAAK8Y,MAAM1hD,KAAKa,EAAE68M,YAAc,IAIxDpwJ,EAAI66yB,EACJ3n1B,EAAIxgB,KAAKa,EAAEowC,QACX4zhB,EAAK,IAAIq6P,EAAG,GACZp6P,EAAK,IAAIo6P,EAAG,GACZruQ,EAAK,IAAIquQ,EAAG,GACZpuQ,EAAK,IAAIouQ,EAAG,GAaZl+zB,EAAI,EAGa,IAAdssD,EAAE0/wB,KAAK,IAAU,CACtB,IAAInxyB,EAAIrb,EAAEtX,IAAIokD,GACdjtD,EAAImgB,EAAEm+F,IAAI9iF,EAAEohF,IAAI3vD,IAChBniD,EAAI0ljB,EAAGlyc,IAAI9iF,EAAEohF,IAAI4nd,IACjB,IAAIj6jB,EAAIkmjB,EAAGnyc,IAAI9iF,EAAEohF,IAAI6nd,IAErB,IAAKkB,GAAM3lkB,EAAE2ia,IAAI4lc,GAAY,EAC3BtlC,EAAKqlC,EAAM1mC,MACXiD,EAAKrgQ,EACLmB,EAAK3lkB,EAAE4h0B,MACPoD,EAAKl6zB,OACA,GAAI66jB,GAAc,MAANhlkB,EACjB,MAEF2n2B,EAAQto2B,EAERmgB,EAAI8sC,EACJA,EAAIjtD,EACJwwjB,EAAKgU,EACLA,EAAK15jB,EACL2ljB,EAAKgU,EACLA,EAAKl6jB,CACP,CACAq7jB,EAAK5lkB,EAAE4h0B,MACPuD,EAAKr6zB,EAEL,IAAI091B,EAAO7iS,EAAGwkQ,MAAMjkyB,IAAI8+xB,EAAGmF,OAiB3B,OAhBWvkQ,EAAGukQ,MAAMjkyB,IAAIi/xB,EAAGgF,OAClBxna,IAAI6lc,IAAS,IACpB5iS,EAAKq9P,EACLkC,EAAKN,GAIHl/P,EAAG/8hB,WACL+8hB,EAAKA,EAAGi8P,MACRoD,EAAKA,EAAGpD,OAENh8P,EAAGh9hB,WACLg9hB,EAAKA,EAAGg8P,MACRuD,EAAKA,EAAGvD,OAGH,CACL,CAAElh0B,EAAGilkB,EAAIxtiB,EAAG6syB,GACZ,CAAEtk0B,EAAGklkB,EAAIztiB,EAAGgtyB,GAEhB,EAEAgiC,EAAWtn2B,UAAU4o2B,WAAa,SAAoB7t0B,GACpD,IAAIst0B,EAAQvo2B,KAAK4n2B,KAAKW,MAClBrkF,EAAKqkF,EAAM,GACXQ,EAAKR,EAAM,GAEX3gU,EAAKmhU,EAAGvw0B,EAAEykF,IAAIhiF,GAAGmxyB,SAASps0B,KAAKa,GAC/B8g1B,EAAKz9D,EAAG1rvB,EAAEypyB,MAAMhltB,IAAIhiF,GAAGmxyB,SAASps0B,KAAKa,GAErC4tH,EAAKm5a,EAAG3qb,IAAIinqB,EAAGnjxB,GACf2tH,EAAKiztB,EAAG1kuB,IAAI8rvB,EAAGho2B,GACfio2B,EAAKphU,EAAG3qb,IAAIinqB,EAAG1rvB,GACfyw0B,EAAKtnB,EAAG1kuB,IAAI8rvB,EAAGvw0B,GAKnB,MAAO,CAAEyl0B,GAFAhj0B,EAAE0jF,IAAI8P,GAAI9P,IAAI+P,GAENxzF,GADR8t0B,EAAGzi0B,IAAI0i0B,GAAIhnC,MAEtB,EAEAulC,EAAWtn2B,UAAU8k2B,WAAa,SAAoB751B,EAAGw+zB,IACvDx+zB,EAAI,IAAI+zzB,EAAG/zzB,EAAG,KACPgC,MACLhC,EAAIA,EAAE4i0B,MAAM/t0B,KAAKmN,MAEnB,IAAI2jjB,EAAK3ljB,EAAE2j0B,SAASH,OAAOxj0B,GAAGmj0B,QAAQnj0B,EAAEwj0B,OAAO3u0B,KAAKe,IAAIut0B,QAAQtu0B,KAAKw4B,GACjE5tB,EAAIkmjB,EAAGm+Q,UACX,GAA6C,IAAzCrk0B,EAAEkk0B,SAASP,OAAOz9Q,GAAI9tJ,IAAIhja,KAAKurlB,MACjC,MAAM,IAAIprlB,MAAM,iBAIlB,IAAIys0B,EAAQhi0B,EAAEsj0B,UAAUtB,QAIxB,OAHIjD,IAAQiD,IAAUjD,GAAOiD,KAC3Bhi0B,EAAIA,EAAEuk0B,UAEDnv0B,KAAK6xO,MAAM1mO,EAAGP,EACvB,EAEA481B,EAAWtn2B,UAAU8lD,SAAW,SAAkB6rL,GAChD,GAAIA,EAAMo2nB,IACR,OAAO,EAET,IAAI981B,EAAI0mO,EAAM1mO,EACVP,EAAIinO,EAAMjnO,EAEV0lD,EAAKtwD,KAAKe,EAAE4t0B,OAAOxj0B,GACnB2njB,EAAM3njB,EAAE2j0B,SAASH,OAAOxj0B,GAAGmj0B,QAAQh+wB,GAAIg+wB,QAAQtu0B,KAAKw4B,GACxD,OAA2C,IAApC5tB,EAAEkk0B,SAASN,QAAQ17Q,GAAKk6Q,KAAK,EACtC,EAEAw6B,EAAWtn2B,UAAUgp2B,gBACjB,SAAyBvgvB,EAAQ47uB,EAAQC,GAGvC,IAFA,IAAI2E,EAAUnp2B,KAAK8n2B,YACfsB,EAAUpp2B,KAAK+n2B,YACV/m2B,EAAI,EAAGA,EAAI2nH,EAAO/nH,OAAQI,IAAK,CACtC,IAAIY,EAAQ5B,KAAK8o2B,WAAWvE,EAAOvj2B,IAC/B23B,EAAIgwF,EAAO3nH,GACXigD,EAAOtoB,EAAE0s0B,WAETzj2B,EAAMq81B,GAAGh1zB,WACXrnC,EAAMq81B,GAAGl8B,OACTppyB,EAAIA,EAAEspyB,KAAI,IAERrg0B,EAAMs5B,GAAG+N,WACXrnC,EAAMs5B,GAAG6myB,OACT9gxB,EAAOA,EAAKghxB,KAAI,IAGlBknC,EAAY,EAAJno2B,GAAS23B,EACjBww0B,EAAY,EAAJno2B,EAAQ,GAAKigD,EACrBmozB,EAAY,EAAJpo2B,GAASY,EAAMq81B,GACvBmL,EAAY,EAAJpo2B,EAAQ,GAAKY,EAAMs5B,EAC7B,CAIA,IAHA,IAAIk/E,EAAMp6G,KAAKqk2B,YAAY,EAAG8E,EAASC,EAAa,EAAJpo2B,EAAOwj2B,GAG9Chp0B,EAAI,EAAGA,EAAQ,EAAJx6B,EAAOw6B,IACzB2t0B,EAAQ3t0B,GAAK,KACb4t0B,EAAQ5t0B,GAAK,KAEf,OAAO4+E,CACT,EAuBJ66nB,EAAS2wH,EAAOxwH,EAAKkuH,WAErBkE,EAAWtn2B,UAAU2xO,MAAQ,SAAe1mO,EAAGP,EAAGo91B,GAChD,OAAO,IAAIpC,EAAM5l2B,KAAMmL,EAAGP,EAAGo91B,EAC/B,EAEAR,EAAWtn2B,UAAU0i2B,cAAgB,SAAuBv90B,EAAKlY,GAC/D,OAAOy41B,EAAMO,SAASnm2B,KAAMqlB,EAAKlY,EACnC,EAEAy41B,EAAM1l2B,UAAUml2B,SAAW,WACzB,GAAKrl2B,KAAK4j1B,MAAMgkB,KAAhB,CAGA,IAAIyB,EAAMrp2B,KAAKuj2B,YACf,GAAI8F,GAAOA,EAAIpozB,KACb,OAAOoozB,EAAIpozB,KAEb,IAAIA,EAAOjhD,KAAK4j1B,MAAM/xmB,MAAM7xO,KAAKmL,EAAEwj0B,OAAO3u0B,KAAK4j1B,MAAMgkB,KAAK3mzB,MAAOjhD,KAAK4K,GACtE,GAAIy+1B,EAAK,CACP,IAAIzlB,EAAQ5j1B,KAAK4j1B,MACb0lB,EAAU,SAAS3w0B,GACrB,OAAOirzB,EAAM/xmB,MAAMl5M,EAAExtB,EAAEwj0B,OAAOiV,EAAMgkB,KAAK3mzB,MAAOtoB,EAAE/tB,EACpD,EACAy+1B,EAAIpozB,KAAOA,EACXA,EAAKsizB,YAAc,CACjBtizB,KAAM,KACN0izB,IAAK0F,EAAI1F,KAAO,CACd3yB,IAAKq4B,EAAI1F,IAAI3yB,IACbrotB,OAAQ0gvB,EAAI1F,IAAIh7uB,OAAOz4G,IAAIo51B,IAE7B7F,QAAS4F,EAAI5F,SAAW,CACtBpp0B,KAAMgv0B,EAAI5F,QAAQpp0B,KAClBsuF,OAAQ0gvB,EAAI5F,QAAQ96uB,OAAOz4G,IAAIo51B,IAGrC,CACA,OAAOrozB,CAzBC,CA0BV,EAEA2kzB,EAAM1l2B,UAAUm8G,OAAS,WACvB,OAAKr8G,KAAKuj2B,YAGH,CAAEvj2B,KAAKmL,EAAGnL,KAAK4K,EAAG5K,KAAKuj2B,aAAe,CAC3CE,QAASzj2B,KAAKuj2B,YAAYE,SAAW,CACnCpp0B,KAAMr6B,KAAKuj2B,YAAYE,QAAQpp0B,KAC/BsuF,OAAQ3oH,KAAKuj2B,YAAYE,QAAQ96uB,OAAOviG,MAAM,IAEhDu90B,IAAK3j2B,KAAKuj2B,YAAYI,KAAO,CAC3B3yB,IAAKhx0B,KAAKuj2B,YAAYI,IAAI3yB,IAC1BrotB,OAAQ3oH,KAAKuj2B,YAAYI,IAAIh7uB,OAAOviG,MAAM,MATrC,CAAEpmB,KAAKmL,EAAGnL,KAAK4K,EAY1B,EAEAg71B,EAAMO,SAAW,SAAkBviB,EAAOv+zB,EAAKlY,GAC1B,kBAARkY,IACTA,EAAM3jB,KAAKC,MAAM0jB,IACnB,IAAI+0F,EAAMwpuB,EAAM/xmB,MAAMxsN,EAAI,GAAIA,EAAI,GAAIlY,GACtC,IAAKkY,EAAI,GACP,OAAO+0F,EAET,SAASmvvB,EAAUlk1B,GACjB,OAAOu+zB,EAAM/xmB,MAAMxsN,EAAI,GAAIA,EAAI,GAAIlY,EACrC,CAEA,IAAIk81B,EAAMhk1B,EAAI,GAYd,OAXA+0F,EAAImpvB,YAAc,CAChBtizB,KAAM,KACNwizB,QAAS4F,EAAI5F,SAAW,CACtBpp0B,KAAMgv0B,EAAI5F,QAAQpp0B,KAClBsuF,OAAQ,CAAEvO,GAAM13F,OAAO2m1B,EAAI5F,QAAQ96uB,OAAOz4G,IAAIq51B,KAEhD5F,IAAK0F,EAAI1F,KAAO,CACd3yB,IAAKq4B,EAAI1F,IAAI3yB,IACbrotB,OAAQ,CAAEvO,GAAM13F,OAAO2m1B,EAAI1F,IAAIh7uB,OAAOz4G,IAAIq51B,MAGvCnvvB,CACT,EAEAwrvB,EAAM1l2B,UAAU67G,QAAU,WACxB,OAAI/7G,KAAKim2B,aACA,sBACF,gBAAkBjm2B,KAAKmL,EAAE+i0B,UAAU3s0B,SAAS,GAAI,GACnD,OAASvB,KAAK4K,EAAEsj0B,UAAU3s0B,SAAS,GAAI,GAAK,GAClD,EAEAqk2B,EAAM1l2B,UAAU+l2B,WAAa,WAC3B,OAAOjm2B,KAAKio2B,GACd,EAEArC,EAAM1l2B,UAAUqmC,IAAM,SAAa5N,GAEjC,GAAI34B,KAAKio2B,IACP,OAAOtv0B,EAGT,GAAIA,EAAEsv0B,IACJ,OAAOjo2B,KAGT,GAAIA,KAAK6t0B,GAAGl1yB,GACV,OAAO34B,KAAKul2B,MAGd,GAAIvl2B,KAAKii0B,MAAM4L,GAAGl1yB,GAChB,OAAO34B,KAAK4j1B,MAAM/xmB,MAAM,KAAM,MAGhC,GAAwB,IAApB7xO,KAAKmL,EAAE63Z,IAAIrqY,EAAExtB,GACf,OAAOnL,KAAK4j1B,MAAM/xmB,MAAM,KAAM,MAEhC,IAAI5wO,EAAIjB,KAAK4K,EAAE2j0B,OAAO51yB,EAAE/tB,GACN,IAAd3J,EAAE+r0B,KAAK,KACT/r0B,EAAIA,EAAE0t0B,OAAO3u0B,KAAKmL,EAAEoj0B,OAAO51yB,EAAExtB,GAAG+j0B,YAClC,IAAIm3B,EAAKpl2B,EAAE6t0B,SAASN,QAAQxu0B,KAAKmL,GAAGqj0B,QAAQ71yB,EAAExtB,GAC1Cm71B,EAAKrl2B,EAAE0t0B,OAAO3u0B,KAAKmL,EAAEoj0B,OAAO83B,IAAK73B,QAAQxu0B,KAAK4K,GAClD,OAAO5K,KAAK4j1B,MAAM/xmB,MAAMw0nB,EAAIC,EAC9B,EAEAV,EAAM1l2B,UAAUql2B,IAAM,WACpB,GAAIvl2B,KAAKio2B,IACP,OAAOjo2B,KAGT,IAAIwp2B,EAAMxp2B,KAAK4K,EAAEyj0B,OAAOru0B,KAAK4K,GAC7B,GAAoB,IAAhB4+1B,EAAIx8B,KAAK,GACX,OAAOht0B,KAAK4j1B,MAAM/xmB,MAAM,KAAM,MAEhC,IAAI9wO,EAAIf,KAAK4j1B,MAAM7i1B,EAEf8vjB,EAAK7wjB,KAAKmL,EAAE2j0B,SACZ26B,EAAQD,EAAIt6B,UACZju0B,EAAI4vjB,EAAGw9Q,OAAOx9Q,GAAIy9Q,QAAQz9Q,GAAIy9Q,QAAQvt0B,GAAG4t0B,OAAO86B,GAEhDpD,EAAKpl2B,EAAE6t0B,SAASN,QAAQxu0B,KAAKmL,EAAEkj0B,OAAOru0B,KAAKmL,IAC3Cm71B,EAAKrl2B,EAAE0t0B,OAAO3u0B,KAAKmL,EAAEoj0B,OAAO83B,IAAK73B,QAAQxu0B,KAAK4K,GAClD,OAAO5K,KAAK4j1B,MAAM/xmB,MAAMw0nB,EAAIC,EAC9B,EAEAV,EAAM1l2B,UAAUk41B,KAAO,WACrB,OAAOp41B,KAAKmL,EAAE+i0B,SAChB,EAEA03B,EAAM1l2B,UAAUil2B,KAAO,WACrB,OAAOnl2B,KAAK4K,EAAEsj0B,SAChB,EAEA03B,EAAM1l2B,UAAU+8G,IAAM,SAAahiF,GAEjC,OADAA,EAAI,IAAIikyB,EAAGjkyB,EAAG,IACVj7B,KAAKim2B,aACAjm2B,KACAA,KAAKsl2B,YAAYrq0B,GACjBj7B,KAAK4j1B,MAAM4f,aAAaxj2B,KAAMi7B,GAC9Bj7B,KAAK4j1B,MAAMgkB,KACX5n2B,KAAK4j1B,MAAMslB,gBAAgB,CAAElp2B,MAAQ,CAAEi7B,IAEvCj7B,KAAK4j1B,MAAMqgB,SAASjk2B,KAAMi7B,EACrC,EAEA2q0B,EAAM1l2B,UAAU0m2B,OAAS,SAAgB3I,EAAIvvuB,EAAIxzF,GAC/C,IAAIytF,EAAS,CAAE3oH,KAAM0uH,GACjB61uB,EAAS,CAAEtG,EAAI/i0B,GACnB,OAAIl7B,KAAK4j1B,MAAMgkB,KACN5n2B,KAAK4j1B,MAAMslB,gBAAgBvgvB,EAAQ47uB,GAEnCvk2B,KAAK4j1B,MAAMygB,YAAY,EAAG17uB,EAAQ47uB,EAAQ,EACrD,EAEAqB,EAAM1l2B,UAAU2m2B,QAAU,SAAiB5I,EAAIvvuB,EAAIxzF,GACjD,IAAIytF,EAAS,CAAE3oH,KAAM0uH,GACjB61uB,EAAS,CAAEtG,EAAI/i0B,GACnB,OAAIl7B,KAAK4j1B,MAAMgkB,KACN5n2B,KAAK4j1B,MAAMslB,gBAAgBvgvB,EAAQ47uB,GAAQ,GAE3Cvk2B,KAAK4j1B,MAAMygB,YAAY,EAAG17uB,EAAQ47uB,EAAQ,GAAG,EACxD,EAEAqB,EAAM1l2B,UAAU2t0B,GAAK,SAAYl1yB,GAC/B,OAAO34B,OAAS24B,GACT34B,KAAKio2B,MAAQtv0B,EAAEsv0B,MACVjo2B,KAAKio2B,KAA2B,IAApBjo2B,KAAKmL,EAAE63Z,IAAIrqY,EAAExtB,IAAgC,IAApBnL,KAAK4K,EAAEo4Z,IAAIrqY,EAAE/tB,GAChE,EAEAg71B,EAAM1l2B,UAAU+h0B,IAAM,SAAaynC,GACjC,GAAI1p2B,KAAKio2B,IACP,OAAOjo2B,KAET,IAAIo6G,EAAMp6G,KAAK4j1B,MAAM/xmB,MAAM7xO,KAAKmL,EAAGnL,KAAK4K,EAAEuk0B,UAC1C,GAAIu6B,GAAe1p2B,KAAKuj2B,YAAa,CACnC,IAAI8F,EAAMrp2B,KAAKuj2B,YACXx6zB,EAAS,SAASpQ,GACpB,OAAOA,EAAEspyB,KACX,EACA7ntB,EAAImpvB,YAAc,CAChBI,IAAK0F,EAAI1F,KAAO,CACd3yB,IAAKq4B,EAAI1F,IAAI3yB,IACbrotB,OAAQ0gvB,EAAI1F,IAAIh7uB,OAAOz4G,IAAI64B,IAE7B06zB,QAAS4F,EAAI5F,SAAW,CACtBpp0B,KAAMgv0B,EAAI5F,QAAQpp0B,KAClBsuF,OAAQ0gvB,EAAI5F,QAAQ96uB,OAAOz4G,IAAI64B,IAGrC,CACA,OAAOqxE,CACT,EAEAwrvB,EAAM1l2B,UAAUyk2B,IAAM,WACpB,OAAI3k2B,KAAKio2B,IACAjo2B,KAAK4j1B,MAAMkgB,OAAO,KAAM,KAAM,MAE7B9j2B,KAAK4j1B,MAAMkgB,OAAO9j2B,KAAKmL,EAAGnL,KAAK4K,EAAG5K,KAAK4j1B,MAAMhT,IAEzD,EAsBA37F,EAASizH,EAAQ9yH,EAAKkuH,WAEtBkE,EAAWtn2B,UAAU4j2B,OAAS,SAAgB341B,EAAGP,EAAG4iD,GAClD,OAAO,IAAI06yB,EAAOlo2B,KAAMmL,EAAGP,EAAG4iD,EAChC,EAEA06yB,EAAOho2B,UAAU8j2B,IAAM,WACrB,GAAIhk2B,KAAKim2B,aACP,OAAOjm2B,KAAK4j1B,MAAM/xmB,MAAM,KAAM,MAEhC,IAAI83nB,EAAO3p2B,KAAKwtD,EAAE0hxB,UACd06B,EAAQD,EAAK76B,SACbx+wB,EAAKtwD,KAAKmL,EAAEwj0B,OAAOi7B,GACnBr5yB,EAAKvwD,KAAK4K,EAAE+j0B,OAAOi7B,GAAOj7B,OAAOg7B,GAErC,OAAO3p2B,KAAK4j1B,MAAM/xmB,MAAMvhL,EAAIC,EAC9B,EAEA23yB,EAAOho2B,UAAU+h0B,IAAM,WACrB,OAAOji0B,KAAK4j1B,MAAMkgB,OAAO9j2B,KAAKmL,EAAGnL,KAAK4K,EAAEuk0B,SAAUnv0B,KAAKwtD,EACzD,EAEA06yB,EAAOho2B,UAAUqmC,IAAM,SAAa5N,GAElC,GAAI34B,KAAKim2B,aACP,OAAOtt0B,EAGT,GAAIA,EAAEst0B,aACJ,OAAOjm2B,KAGT,IAAI6p2B,EAAMlx0B,EAAE60B,EAAEshxB,SACVg7B,EAAK9p2B,KAAKwtD,EAAEshxB,SACZi7B,EAAK/p2B,KAAKmL,EAAEwj0B,OAAOk7B,GACnBG,EAAKrx0B,EAAExtB,EAAEwj0B,OAAOm7B,GAChBhwB,EAAK950B,KAAK4K,EAAE+j0B,OAAOk7B,EAAIl7B,OAAOh2yB,EAAE60B,IAChCusxB,EAAKphzB,EAAE/tB,EAAE+j0B,OAAOm7B,EAAGn7B,OAAO3u0B,KAAKwtD,IAE/BtsC,EAAI6o1B,EAAGx7B,OAAOy7B,GACd3p2B,EAAIy50B,EAAGvL,OAAOwL,GAClB,GAAkB,IAAd74zB,EAAE8rzB,KAAK,GACT,OAAkB,IAAd3s0B,EAAE2s0B,KAAK,GACFht0B,KAAK4j1B,MAAMkgB,OAAO,KAAM,KAAM,MAE9B9j2B,KAAKul2B,MAGhB,IAAIxirB,EAAK7hK,EAAE4tzB,SACP9rpB,EAAKD,EAAG4rpB,OAAOztzB,GACfV,EAAIup1B,EAAGp7B,OAAO5rpB,GAEdsjrB,EAAKhm2B,EAAEyu0B,SAASR,QAAQtrpB,GAAIwrpB,QAAQhuzB,GAAGguzB,QAAQhuzB,GAC/C8l1B,EAAKjm2B,EAAEsu0B,OAAOnuzB,EAAEguzB,QAAQ63B,IAAK73B,QAAQsL,EAAGnL,OAAO3rpB,IAC/CwjrB,EAAKxm2B,KAAKwtD,EAAEmhxB,OAAOh2yB,EAAE60B,GAAGmhxB,OAAOztzB,GAEnC,OAAOlhB,KAAK4j1B,MAAMkgB,OAAOuC,EAAIC,EAAIE,EACnC,EAEA0B,EAAOho2B,UAAU6j2B,SAAW,SAAkBpr0B,GAE5C,GAAI34B,KAAKim2B,aACP,OAAOtt0B,EAAEgs0B,MAGX,GAAIhs0B,EAAEst0B,aACJ,OAAOjm2B,KAGT,IAAI8p2B,EAAK9p2B,KAAKwtD,EAAEshxB,SACZi7B,EAAK/p2B,KAAKmL,EACV6+1B,EAAKrx0B,EAAExtB,EAAEwj0B,OAAOm7B,GAChBhwB,EAAK950B,KAAK4K,EACVmv0B,EAAKphzB,EAAE/tB,EAAE+j0B,OAAOm7B,GAAIn7B,OAAO3u0B,KAAKwtD,GAEhCtsC,EAAI6o1B,EAAGx7B,OAAOy7B,GACd3p2B,EAAIy50B,EAAGvL,OAAOwL,GAClB,GAAkB,IAAd74zB,EAAE8rzB,KAAK,GACT,OAAkB,IAAd3s0B,EAAE2s0B,KAAK,GACFht0B,KAAK4j1B,MAAMkgB,OAAO,KAAM,KAAM,MAE9B9j2B,KAAKul2B,MAGhB,IAAIxirB,EAAK7hK,EAAE4tzB,SACP9rpB,EAAKD,EAAG4rpB,OAAOztzB,GACfV,EAAIup1B,EAAGp7B,OAAO5rpB,GAEdsjrB,EAAKhm2B,EAAEyu0B,SAASR,QAAQtrpB,GAAIwrpB,QAAQhuzB,GAAGguzB,QAAQhuzB,GAC/C8l1B,EAAKjm2B,EAAEsu0B,OAAOnuzB,EAAEguzB,QAAQ63B,IAAK73B,QAAQsL,EAAGnL,OAAO3rpB,IAC/CwjrB,EAAKxm2B,KAAKwtD,EAAEmhxB,OAAOztzB,GAEvB,OAAOlhB,KAAK4j1B,MAAMkgB,OAAOuC,EAAIC,EAAIE,EACnC,EAEA0B,EAAOho2B,UAAUkk2B,KAAO,SAAcrhzB,GACpC,GAAY,IAARA,EACF,OAAO/iD,KACT,GAAIA,KAAKim2B,aACP,OAAOjm2B,KACT,IAAK+iD,EACH,OAAO/iD,KAAKul2B,MAEd,IAAIvk2B,EACJ,GAAIhB,KAAK4j1B,MAAM8jB,OAAS1n2B,KAAK4j1B,MAAM+jB,OAAQ,CACzC,IAAItn2B,EAAIL,KACR,IAAKgB,EAAI,EAAGA,EAAI+hD,EAAK/hD,IACnBX,EAAIA,EAAEkl2B,MACR,OAAOll2B,CACT,CAIA,IAAIU,EAAIf,KAAK4j1B,MAAM7i1B,EACf0m2B,EAAOzn2B,KAAK4j1B,MAAM6jB,KAElBwC,EAAKjq2B,KAAKmL,EACV++1B,EAAKlq2B,KAAK4K,EACVu/1B,EAAKnq2B,KAAKwtD,EACV48yB,EAAMD,EAAGr7B,SAASA,SAGlBu7B,EAAMH,EAAG77B,OAAO67B,GACpB,IAAKlp2B,EAAI,EAAGA,EAAI+hD,EAAK/hD,IAAK,CACxB,IAAIsp2B,EAAML,EAAGn7B,SACTy7B,EAAOF,EAAIv7B,SACX07B,EAAOD,EAAKz7B,SACZ7t0B,EAAIqp2B,EAAIj8B,OAAOi8B,GAAKh8B,QAAQg8B,GAAKh8B,QAAQvt0B,EAAE4t0B,OAAOy7B,IAElD14vB,EAAKu4vB,EAAGt7B,OAAO47B,GACflE,EAAKpl2B,EAAE6t0B,SAASN,QAAQ98tB,EAAG28tB,OAAO38tB,IAClCE,EAAKF,EAAG88tB,QAAQ63B,GAChBoE,EAAMxp2B,EAAE0t0B,OAAO/8tB,GACnB64vB,EAAMA,EAAIn8B,QAAQm8B,GAAKj8B,QAAQg8B,GAC/B,IAAIhE,EAAK6D,EAAI17B,OAAOw7B,GAChBnp2B,EAAI,EAAI+hD,IACVqnzB,EAAMA,EAAIz7B,OAAO67B,IAEnBP,EAAK5D,EACL8D,EAAK3D,EACL6D,EAAMI,CACR,CAEA,OAAOzq2B,KAAK4j1B,MAAMkgB,OAAOmG,EAAII,EAAI17B,OAAO84B,GAAO0C,EACjD,EAEAjC,EAAOho2B,UAAUql2B,IAAM,WACrB,OAAIvl2B,KAAKim2B,aACAjm2B,KAELA,KAAK4j1B,MAAM8jB,MACN1n2B,KAAK0q2B,WACL1q2B,KAAK4j1B,MAAM+jB,OACX3n2B,KAAK2q2B,YAEL3q2B,KAAK4q2B,MAChB,EAEA1C,EAAOho2B,UAAUwq2B,SAAW,WAC1B,IAAIrE,EACAC,EACAE,EAEJ,GAAIxm2B,KAAK6l2B,KAAM,CAMb,IAAIr4U,EAAKxthB,KAAKmL,EAAE2j0B,SAEZnhT,EAAK3thB,KAAK4K,EAAEkk0B,SAEZ+7B,EAAOl9U,EAAGmhT,SAEV51yB,EAAIl5B,KAAKmL,EAAEkj0B,OAAO1gT,GAAImhT,SAASN,QAAQhhT,GAAIghT,QAAQq8B,GACvD3x0B,EAAIA,EAAEo1yB,QAAQp1yB,GAEd,IAAI8B,EAAIwyf,EAAG6gT,OAAO7gT,GAAI8gT,QAAQ9gT,GAE1B/shB,EAAIu6B,EAAE8zyB,SAASN,QAAQt1yB,GAAGs1yB,QAAQt1yB,GAGlC4x0B,EAAQD,EAAKv8B,QAAQu8B,GAEzBC,GADAA,EAAQA,EAAMx8B,QAAQw8B,IACRx8B,QAAQw8B,GAGtBzE,EAAK5l2B,EAEL6l2B,EAAKtr0B,EAAE2zyB,OAAOz1yB,EAAEs1yB,QAAQ/t0B,IAAI+t0B,QAAQs8B,GAEpCtE,EAAKxm2B,KAAK4K,EAAEyj0B,OAAOru0B,KAAK4K,EAC1B,KAAO,CAML,IAAI7J,EAAIf,KAAKmL,EAAE2j0B,SAEXt2yB,EAAIx4B,KAAK4K,EAAEkk0B,SAEX7t0B,EAAIu3B,EAAEs2yB,SAENv2yB,EAAIv4B,KAAKmL,EAAEkj0B,OAAO71yB,GAAGs2yB,SAASN,QAAQzt0B,GAAGyt0B,QAAQvt0B,GACrDs3B,EAAIA,EAAE+1yB,QAAQ/1yB,GAEd,IAAIx4B,EAAIgB,EAAEst0B,OAAOtt0B,GAAGut0B,QAAQvt0B,GAExB0e,EAAI1f,EAAE+u0B,SAGNi8B,EAAK9p2B,EAAEqt0B,QAAQrt0B,GAEnB8p2B,GADAA,EAAKA,EAAGz8B,QAAQy8B,IACRz8B,QAAQy8B,GAGhB1E,EAAK5m1B,EAAE+uzB,QAAQj2yB,GAAGi2yB,QAAQj2yB,GAE1B+t0B,EAAKvm2B,EAAE4u0B,OAAOp2yB,EAAEi2yB,QAAQ63B,IAAK73B,QAAQu8B,GAGrCvE,GADAA,EAAKxm2B,KAAK4K,EAAE+j0B,OAAO3u0B,KAAKwtD,IAChB8gxB,QAAQk4B,EAClB,CAEA,OAAOxm2B,KAAK4j1B,MAAMkgB,OAAOuC,EAAIC,EAAIE,EACnC,EAEA0B,EAAOho2B,UAAUyq2B,UAAY,WAC3B,IAAItE,EACAC,EACAE,EAEJ,GAAIxm2B,KAAK6l2B,KAAM,CAMb,IAAIr4U,EAAKxthB,KAAKmL,EAAE2j0B,SAEZnhT,EAAK3thB,KAAK4K,EAAEkk0B,SAEZ+7B,EAAOl9U,EAAGmhT,SAEV51yB,EAAIl5B,KAAKmL,EAAEkj0B,OAAO1gT,GAAImhT,SAASN,QAAQhhT,GAAIghT,QAAQq8B,GACvD3x0B,EAAIA,EAAEo1yB,QAAQp1yB,GAEd,IAAI8B,EAAIwyf,EAAG6gT,OAAO7gT,GAAI8gT,QAAQ9gT,GAAI8gT,QAAQtu0B,KAAK4j1B,MAAM7i1B,GAEjDN,EAAIu6B,EAAE8zyB,SAASN,QAAQt1yB,GAAGs1yB,QAAQt1yB,GAEtCmt0B,EAAK5l2B,EAEL,IAAIqq2B,EAAQD,EAAKv8B,QAAQu8B,GAEzBC,GADAA,EAAQA,EAAMx8B,QAAQw8B,IACRx8B,QAAQw8B,GACtBxE,EAAKtr0B,EAAE2zyB,OAAOz1yB,EAAEs1yB,QAAQ/t0B,IAAI+t0B,QAAQs8B,GAEpCtE,EAAKxm2B,KAAK4K,EAAEyj0B,OAAOru0B,KAAK4K,EAC1B,KAAO,CAKL,IAAIk8L,EAAQ9mM,KAAKwtD,EAAEshxB,SAEfk8B,EAAQhr2B,KAAK4K,EAAEkk0B,SAEf7txB,EAAOjhD,KAAKmL,EAAEwj0B,OAAOq8B,GAErB9+1B,EAAQlM,KAAKmL,EAAEoj0B,OAAOznoB,GAAO6noB,OAAO3u0B,KAAKmL,EAAEkj0B,OAAOvnoB,IACtD56L,EAAQA,EAAMmi0B,OAAOni0B,GAAOoi0B,QAAQpi0B,GAEpC,IAAI++1B,EAAQhqzB,EAAKqtxB,QAAQrtxB,GAErBiqzB,GADJD,EAAQA,EAAM38B,QAAQ28B,IACJ58B,OAAO48B,GACzB5E,EAAKn61B,EAAM4i0B,SAASN,QAAQ08B,GAE5B1E,EAAKxm2B,KAAK4K,EAAEyj0B,OAAOru0B,KAAKwtD,GAAGshxB,SAASN,QAAQw8B,GAAOx8B,QAAQ1noB,GAE3D,IAAIqkqB,EAAUH,EAAMl8B,SAGpBq8B,GADAA,GADAA,EAAUA,EAAQ78B,QAAQ68B,IACR78B,QAAQ68B,IACR78B,QAAQ68B,GAC1B7E,EAAKp61B,EAAMyi0B,OAAOs8B,EAAMz8B,QAAQ63B,IAAK73B,QAAQ28B,EAC/C,CAEA,OAAOnr2B,KAAK4j1B,MAAMkgB,OAAOuC,EAAIC,EAAIE,EACnC,EAEA0B,EAAOho2B,UAAU0q2B,KAAO,WACtB,IAAI7p2B,EAAIf,KAAK4j1B,MAAM7i1B,EAGfkp2B,EAAKjq2B,KAAKmL,EACV++1B,EAAKlq2B,KAAK4K,EACVu/1B,EAAKnq2B,KAAKwtD,EACV48yB,EAAMD,EAAGr7B,SAASA,SAElBw7B,EAAML,EAAGn7B,SACTs8B,EAAMlB,EAAGp7B,SAET7t0B,EAAIqp2B,EAAIj8B,OAAOi8B,GAAKh8B,QAAQg8B,GAAKh8B,QAAQvt0B,EAAE4t0B,OAAOy7B,IAElDiB,EAAOpB,EAAG57B,OAAO47B,GAEjBv4vB,GADJ25vB,EAAOA,EAAK/8B,QAAQ+8B,IACN18B,OAAOy8B,GACjB/E,EAAKpl2B,EAAE6t0B,SAASN,QAAQ98tB,EAAG28tB,OAAO38tB,IAClCE,EAAKF,EAAG88tB,QAAQ63B,GAEhBiF,EAAOF,EAAIt8B,SAGfw8B,GADAA,GADAA,EAAOA,EAAKh9B,QAAQg9B,IACRh9B,QAAQg9B,IACRh9B,QAAQg9B,GACpB,IAAIhF,EAAKrl2B,EAAE0t0B,OAAO/8tB,GAAI48tB,QAAQ88B,GAC1B9E,EAAK0D,EAAG77B,OAAO67B,GAAIv7B,OAAOw7B,GAE9B,OAAOnq2B,KAAK4j1B,MAAMkgB,OAAOuC,EAAIC,EAAIE,EACnC,EAEA0B,EAAOho2B,UAAUqr2B,KAAO,WACtB,IAAKvr2B,KAAK4j1B,MAAM8jB,MACd,OAAO1n2B,KAAKul2B,MAAMh/zB,IAAIvmC,MAMxB,IAAIwthB,EAAKxthB,KAAKmL,EAAE2j0B,SAEZnhT,EAAK3thB,KAAK4K,EAAEkk0B,SAEZ08B,EAAKxr2B,KAAKwtD,EAAEshxB,SAEZ+7B,EAAOl9U,EAAGmhT,SAEV9zyB,EAAIwyf,EAAG6gT,OAAO7gT,GAAI8gT,QAAQ9gT,GAE1Bi+U,EAAKzw0B,EAAE8zyB,SAEP/u0B,EAAIC,KAAKmL,EAAEkj0B,OAAO1gT,GAAImhT,SAASN,QAAQhhT,GAAIghT,QAAQq8B,GAKnDa,GAFJ3r2B,GADAA,GADAA,EAAIA,EAAEuu0B,QAAQvu0B,IACRsu0B,OAAOtu0B,GAAGuu0B,QAAQvu0B,IAClByu0B,QAAQi9B,IAEH38B,SAEPru0B,EAAIoq2B,EAAKv8B,QAAQu8B,GAGrBpq2B,GADAA,GADAA,EAAIA,EAAE6t0B,QAAQ7t0B,IACR6t0B,QAAQ7t0B,IACR6t0B,QAAQ7t0B,GAEd,IAAI6sD,EAAItyB,EAAEszyB,QAAQvu0B,GAAG+u0B,SAASN,QAAQi9B,GAAIj9B,QAAQk9B,GAAIl9B,QAAQ/t0B,GAE1Dkr2B,EAAOh+U,EAAGghT,OAAOrhxB,GAErBq+yB,GADAA,EAAOA,EAAKr9B,QAAQq9B,IACRr9B,QAAQq9B,GACpB,IAAItF,EAAKrm2B,KAAKmL,EAAEwj0B,OAAO+8B,GAAIl9B,QAAQm9B,GAEnCtF,GADAA,EAAKA,EAAG/3B,QAAQ+3B,IACR/3B,QAAQ+3B,GAEhB,IAAIC,EAAKtm2B,KAAK4K,EAAE+j0B,OAAOrhxB,EAAEqhxB,OAAOlu0B,EAAE+t0B,QAAQlhxB,IAAIkhxB,QAAQzu0B,EAAE4u0B,OAAO+8B,KAG/DpF,GADAA,GADAA,EAAKA,EAAGh4B,QAAQg4B,IACRh4B,QAAQg4B,IACRh4B,QAAQg4B,GAEhB,IAAIE,EAAKxm2B,KAAKwtD,EAAE6gxB,OAAOtu0B,GAAG+u0B,SAASN,QAAQg9B,GAAIh9B,QAAQk9B,GAEvD,OAAO1r2B,KAAK4j1B,MAAMkgB,OAAOuC,EAAIC,EAAIE,EACnC,EAEA0B,EAAOho2B,UAAU+8G,IAAM,SAAahiF,EAAG2w0B,GAGrC,OAFA3w0B,EAAI,IAAIikyB,EAAGjkyB,EAAG2w0B,GAEP5r2B,KAAK4j1B,MAAMqgB,SAASjk2B,KAAMi7B,EACnC,EAEAit0B,EAAOho2B,UAAU2t0B,GAAK,SAAYl1yB,GAChC,GAAe,WAAXA,EAAE10B,KACJ,OAAOjE,KAAK6t0B,GAAGl1yB,EAAEgs0B,OAEnB,GAAI3k2B,OAAS24B,EACX,OAAO,EAGT,IAAImx0B,EAAK9p2B,KAAKwtD,EAAEshxB,SACZ+6B,EAAMlx0B,EAAE60B,EAAEshxB,SACd,GAA2D,IAAvD9u0B,KAAKmL,EAAEwj0B,OAAOk7B,GAAKr7B,QAAQ71yB,EAAExtB,EAAEwj0B,OAAOm7B,IAAK98B,KAAK,GAClD,OAAO,EAGT,IAAI6+B,EAAK/B,EAAGn7B,OAAO3u0B,KAAKwtD,GACpBs+yB,EAAMjC,EAAIl7B,OAAOh2yB,EAAE60B,GACvB,OAA8D,IAAvDxtD,KAAK4K,EAAE+j0B,OAAOm9B,GAAKt9B,QAAQ71yB,EAAE/tB,EAAE+j0B,OAAOk9B,IAAK7+B,KAAK,EACzD,EAEAk7B,EAAOho2B,UAAU6m2B,OAAS,SAAgB571B,GACxC,IAAI4g2B,EAAK/r2B,KAAKwtD,EAAEshxB,SACZrF,EAAKt+zB,EAAE4i0B,MAAM/t0B,KAAK4j1B,MAAMz20B,KAAKwh0B,OAAOo9B,GACxC,GAAuB,IAAnB/r2B,KAAKmL,EAAE63Z,IAAIyma,GACb,OAAO,EAIT,IAFA,IAAIu9B,EAAK771B,EAAE8lC,QACPxwC,EAAIT,KAAK4j1B,MAAMwf,KAAKz0B,OAAOo9B,KACtB,CAEP,GADA/E,EAAG9jC,KAAKlj0B,KAAK4j1B,MAAM/i1B,GACfmm2B,EAAGhkc,IAAIhja,KAAK4j1B,MAAMjrzB,IAAM,EAC1B,OAAO,EAGT,GADA8wyB,EAAG6E,QAAQ7t0B,GACY,IAAnBT,KAAKmL,EAAE63Z,IAAIyma,GACb,OAAO,CACX,CACF,EAEAy+B,EAAOho2B,UAAU67G,QAAU,WACzB,OAAI/7G,KAAKim2B,aACA,uBACF,iBAAmBjm2B,KAAKmL,EAAE5J,SAAS,GAAI,GAC1C,OAASvB,KAAK4K,EAAErJ,SAAS,GAAI,GAC7B,OAASvB,KAAKwtD,EAAEjsD,SAAS,GAAI,GAAK,GACxC,EAEA2m2B,EAAOho2B,UAAU+l2B,WAAa,WAE5B,OAA0B,IAAnBjm2B,KAAKwtD,EAAEw/wB,KAAK,EACrB,sCCv6BA,IAsKIq8B,EAtKAnmB,EAAStrzB,EAETgG,EAAO5G,EAAQ,OACf4szB,EAAQ5szB,EAAQ,OAGhBkvsB,EAFQlvsB,EAAQ,OAEDkvsB,OAEnB,SAAS8lI,EAAY1h2B,GACE,UAAjBA,EAAQrG,KACVjE,KAAK4j1B,MAAQ,IAAIA,EAAMt1sB,MAAMhkI,GACL,YAAjBA,EAAQrG,KACfjE,KAAK4j1B,MAAQ,IAAIA,EAAMqjB,QAAQ381B,GAE/BtK,KAAK4j1B,MAAQ,IAAIA,EAAM1S,KAAK5m0B,GAC9BtK,KAAKy6B,EAAIz6B,KAAK4j1B,MAAMnpzB,EACpBz6B,KAAKa,EAAIb,KAAK4j1B,MAAM/i1B,EACpBb,KAAK49B,KAAOtzB,EAAQszB,KAEpBsosB,EAAOlmuB,KAAKy6B,EAAEurB,WAAY,iBAC1BkgrB,EAAOlmuB,KAAKy6B,EAAEwiF,IAAIj9G,KAAKa,GAAGol2B,aAAc,0BAC1C,CAGA,SAASgG,EAAY7r2B,EAAMkK,GACzByV,OAAOC,eAAekj0B,EAAQ9i1B,EAAM,CAClC8f,cAAc,EACdC,YAAY,EACZL,IAAK,WACH,IAAI8j0B,EAAQ,IAAIooB,EAAY1h2B,GAM5B,OALAyV,OAAOC,eAAekj0B,EAAQ9i1B,EAAM,CAClC8f,cAAc,EACdC,YAAY,EACZnZ,MAAO480B,IAEFA,CACT,GAEJ,CAhBAV,EAAO8oB,YAAcA,EAkBrBC,EAAY,OAAQ,CAClBho2B,KAAM,QACN+r0B,MAAO,OACPr3yB,EAAG,wDACH53B,EAAG,wDACHy3B,EAAG,wDACH33B,EAAG,wDACH+8B,KAAMA,EAAK2T,OACXsxzB,MAAM,EACNpo0B,EAAG,CACD,wDACA,2DAIJwx0B,EAAY,OAAQ,CAClBho2B,KAAM,QACN+r0B,MAAO,OACPr3yB,EAAG,iEACH53B,EAAG,iEACHy3B,EAAG,iEACH33B,EAAG,iEACH+8B,KAAMA,EAAK2T,OACXsxzB,MAAM,EACNpo0B,EAAG,CACD,iEACA,oEAIJwx0B,EAAY,OAAQ,CAClBho2B,KAAM,QACN+r0B,MAAO,KACPr3yB,EAAG,0EACH53B,EAAG,0EACHy3B,EAAG,0EACH33B,EAAG,0EACH+8B,KAAMA,EAAK2T,OACXsxzB,MAAM,EACNpo0B,EAAG,CACD,0EACA,6EAIJwx0B,EAAY,OAAQ,CAClBho2B,KAAM,QACN+r0B,MAAO,KACPr3yB,EAAG,8GAEH53B,EAAG,8GAEHy3B,EAAG,8GAEH33B,EAAG,8GAEH+8B,KAAMA,EAAKsu0B,OACXrJ,MAAM,EACNpo0B,EAAG,CACD,8GAEA,iHAKJwx0B,EAAY,OAAQ,CAClBho2B,KAAM,QACN+r0B,MAAO,KACPr3yB,EAAG,2JAGH53B,EAAG,2JAGHy3B,EAAG,2JAGH33B,EAAG,2JAGH+8B,KAAMA,EAAKuu0B,OACXtJ,MAAM,EACNpo0B,EAAG,CACD,2JAGA,8JAMJwx0B,EAAY,aAAc,CACxBho2B,KAAM,OACN+r0B,MAAO,SACPr3yB,EAAG,sEACH53B,EAAG,QACHy3B,EAAG,IACH33B,EAAG,sEACH+8B,KAAMA,EAAK2T,OACXsxzB,MAAM,EACNpo0B,EAAG,CACD,OAIJwx0B,EAAY,UAAW,CACrBho2B,KAAM,UACN+r0B,MAAO,SACPr3yB,EAAG,sEACH53B,EAAG,KACHE,EAAG,IAEHs3B,EAAG,sEACH13B,EAAG,sEACH+8B,KAAMA,EAAK2T,OACXsxzB,MAAM,EACNpo0B,EAAG,CACD,mEAGA,sEAKJ,IACE4u0B,EAAMry0B,EAAQ,MAChB,CAAE,MAAOj3B,GACPsp2B,OAAMhh2B,CACR,CAEA4j2B,EAAY,YAAa,CACvBho2B,KAAM,QACN+r0B,MAAO,OACPr3yB,EAAG,0EACH53B,EAAG,IACHy3B,EAAG,IACH33B,EAAG,0EACHqgB,EAAG,IACH0c,KAAMA,EAAK2T,OAGX0P,KAAM,mEACNknzB,OAAQ,mEACRI,MAAO,CACL,CACExn2B,EAAG,mCACHy3B,EAAG,qCAEL,CACEz3B,EAAG,oCACHy3B,EAAG,qCAIPqq0B,MAAM,EACNpo0B,EAAG,CACD,mEACA,mEACA4u0B,yCCzMJ,IAAInqC,EAAKloyB,EAAQ,OACbo10B,EAAWp10B,EAAQ,OACnBujK,EAAQvjK,EAAQ,OAChBkszB,EAASlszB,EAAQ,OACjB6hzB,EAAO7hzB,EAAQ,OACfkvsB,EAAS3riB,EAAM2riB,OAEfmmI,EAAUr10B,EAAQ,OAClB21vB,EAAY31vB,EAAQ,OAExB,SAASgszB,EAAG140B,GACV,KAAMtK,gBAAgBgj1B,GACpB,OAAO,IAAIA,EAAG140B,GAGO,kBAAZA,IACT47tB,EAAOnmtB,OAAO7f,UAAU04B,eAAe9S,KAAKo9zB,EAAQ540B,GAClD,iBAAmBA,GAErBA,EAAU440B,EAAO540B,IAIfA,aAAmB440B,EAAO8oB,cAC5B1h2B,EAAU,CAAEs50B,MAAOt50B,IAErBtK,KAAK4j1B,MAAQt50B,EAAQs50B,MAAMA,MAC3B5j1B,KAAKa,EAAIb,KAAK4j1B,MAAM/i1B,EACpBb,KAAKss2B,GAAKts2B,KAAKa,EAAEwq0B,MAAM,GACvBrr0B,KAAKy6B,EAAIz6B,KAAK4j1B,MAAMnpzB,EAGpBz6B,KAAKy6B,EAAInwB,EAAQs50B,MAAMnpzB,EACvBz6B,KAAKy6B,EAAE2q0B,WAAW961B,EAAQs50B,MAAM/i1B,EAAE68M,YAAc,GAGhD19M,KAAK49B,KAAOtzB,EAAQszB,MAAQtzB,EAAQs50B,MAAMhmzB,IAC5C,CACAqnL,EAAOrtL,QAAUorzB,EAEjBA,EAAG9i1B,UAAUqs2B,QAAU,SAAiBji2B,GACtC,OAAO,IAAI+h2B,EAAQrs2B,KAAMsK,EAC3B,EAEA040B,EAAG9i1B,UAAU4j1B,eAAiB,SAAwB9C,EAAMvrG,GAC1D,OAAO42H,EAAQG,YAAYxs2B,KAAMgh1B,EAAMvrG,EACzC,EAEAutG,EAAG9i1B,UAAU+31B,cAAgB,SAAuB7T,EAAK3uG,GACvD,OAAO42H,EAAQI,WAAWzs2B,KAAMok1B,EAAK3uG,EACvC,EAEAutG,EAAG9i1B,UAAU231B,WAAa,SAAoBvt1B,GACvCA,IACHA,EAAU,CAAC,GAcb,IAXA,IAAIoi2B,EAAO,IAAIN,EAAS,CACtBxu0B,KAAM59B,KAAK49B,KACX+u0B,KAAMri2B,EAAQqi2B,KACdC,QAASti2B,EAAQsi2B,SAAW,OAC5BC,QAASvi2B,EAAQui2B,SAAWh0B,EAAK740B,KAAK49B,KAAKkv0B,cAC3CC,WAAYzi2B,EAAQui2B,SAAWvi2B,EAAQyi2B,YAAc,OACrDznvB,MAAOtlH,KAAKa,EAAEy9H,YAGZh+F,EAAQtgC,KAAKa,EAAEg/B,aACfmt0B,EAAMht2B,KAAKa,EAAE89G,IAAI,IAAIugtB,EAAG,MACnB,CACP,IAAI8hB,EAAO,IAAI9hB,EAAGwtC,EAAK1nuB,SAAS1kG,IAChC,KAAI0gzB,EAAKh+a,IAAIgqc,GAAO,GAIpB,OADAhsB,EAAKrf,MAAM,GACJ3h0B,KAAK8j1B,eAAe9C,EAC7B,CACF,EAEAgC,EAAG9i1B,UAAU+s2B,aAAe,SAAsB1/zB,EAAK2/zB,GACrD,IAAIpmqB,EAA2B,EAAnBv5J,EAAI1N,aAAmB7/B,KAAKa,EAAE68M,YAG1C,OAFI5W,EAAQ,IACVv5J,EAAMA,EAAI89xB,MAAMvkoB,KACbomqB,GAAa3/zB,EAAIy1X,IAAIhja,KAAKa,IAAM,EAC5B0sC,EAAIoxE,IAAI3+G,KAAKa,GAEb0sC,CACX,EAEAy1yB,EAAG9i1B,UAAUq/B,KAAO,SAAcgO,EAAKtoB,EAAKwwtB,EAAKnruB,GAC5B,kBAARmruB,IACTnruB,EAAUmruB,EACVA,EAAM,MAEHnruB,IACHA,EAAU,CAAC,GAEb2a,EAAMjlB,KAAK8j1B,eAAe7+zB,EAAKwwtB,GAC/BlosB,EAAMvtC,KAAKit2B,aAAa,IAAI/tC,EAAG3xxB,EAAK,KAqBpC,IAlBA,IAAIjN,EAAQtgC,KAAKa,EAAEg/B,aACfst0B,EAAOlo1B,EAAIkz0B,aAAa75tB,QAAQ,KAAMh+F,GAGtCglF,EAAQ/3E,EAAI+wF,QAAQ,KAAMh+F,GAG1Bos0B,EAAO,IAAIN,EAAS,CACtBxu0B,KAAM59B,KAAK49B,KACXiv0B,QAASM,EACT7nvB,MAAOA,EACPqnvB,KAAMri2B,EAAQqi2B,KACdC,QAASti2B,EAAQsi2B,SAAW,SAI1BQ,EAAMpt2B,KAAKa,EAAE89G,IAAI,IAAIugtB,EAAG,IAEnBt7yB,EAAO,GAAKA,IAAQ,CAC3B,IAAIqX,EAAI3wB,EAAQ2wB,EACd3wB,EAAQ2wB,EAAErX,GACV,IAAIs7yB,EAAGwtC,EAAK1nuB,SAAShlI,KAAKa,EAAEg/B,eAE9B,MADA5E,EAAIj7B,KAAKit2B,aAAahy0B,GAAG,IACnB+xyB,KAAK,IAAM,GAAK/xyB,EAAE+nY,IAAIoqc,IAAQ,GAApC,CAGA,IAAIC,EAAKrt2B,KAAKy6B,EAAEwiF,IAAIhiF,GACpB,IAAIoy0B,EAAGpH,aAAP,CAGA,IAAIqH,EAAMD,EAAGjV,OACT/31B,EAAIit2B,EAAInhC,KAAKns0B,KAAKa,GACtB,GAAkB,IAAdR,EAAE2s0B,KAAK,GAAX,CAGA,IAAI9zyB,EAAI+B,EAAEgyyB,KAAKjt0B,KAAKa,GAAGo8G,IAAI58G,EAAE48G,IAAIh4F,EAAIkz0B,cAAcj1B,KAAK31xB,IAExD,GAAkB,KADlBrU,EAAIA,EAAEizyB,KAAKns0B,KAAKa,IACVms0B,KAAK,GAAX,CAGA,IAAIugC,GAAiBF,EAAGlI,OAAOv4B,QAAU,EAAI,IACT,IAAf0gC,EAAItqc,IAAI3ia,GAAW,EAAI,GAQ5C,OALIiK,EAAQ6lC,WAAajX,EAAE8pY,IAAIhja,KAAKss2B,IAAM,IACxCpz0B,EAAIl5B,KAAKa,EAAE89G,IAAIzlF,GACfq00B,GAAiB,GAGZ,IAAI5gF,EAAU,CAAEtsxB,EAAGA,EAAG64B,EAAGA,EAAGq00B,cAAeA,GAXxC,CALA,CALA,CAJA,CA0BZ,CACF,EAEAvqB,EAAG9i1B,UAAUmi1B,OAAS,SAAgB90yB,EAAKkG,EAAWxuB,EAAKwwtB,GACzDlosB,EAAMvtC,KAAKit2B,aAAa,IAAI/tC,EAAG3xxB,EAAK,KACpCtoB,EAAMjlB,KAAKi41B,cAAchz0B,EAAKwwtB,GAI9B,IAAIp1uB,GAHJozC,EAAY,IAAIk5uB,EAAUl5uB,EAAW,QAGnBpzC,EACd64B,EAAIua,EAAUva,EAClB,GAAI74B,EAAE2s0B,KAAK,GAAK,GAAK3s0B,EAAE2ia,IAAIhja,KAAKa,IAAM,EACpC,OAAO,EACT,GAAIq4B,EAAE8zyB,KAAK,GAAK,GAAK9zyB,EAAE8pY,IAAIhja,KAAKa,IAAM,EACpC,OAAO,EAGT,IAGI83B,EAHA600B,EAAOt00B,EAAE+zyB,KAAKjt0B,KAAKa,GACnBkp2B,EAAKyD,EAAKvwvB,IAAI1vE,GAAK4+xB,KAAKns0B,KAAKa,GAC7Bmp2B,EAAKwD,EAAKvwvB,IAAI58G,GAAG8r0B,KAAKns0B,KAAKa,GAG/B,OAAKb,KAAK4j1B,MAAMyf,gBAWhB1q0B,EAAI34B,KAAKy6B,EAAEos0B,QAAQkD,EAAI9k1B,EAAIiz0B,YAAa8R,IAClC/D,cAMCtt0B,EAAEou0B,OAAO1m2B,KAjBds4B,EAAI34B,KAAKy6B,EAAEms0B,OAAOmD,EAAI9k1B,EAAIiz0B,YAAa8R,IACjC/D,cAGkC,IAAjCtt0B,EAAEy/zB,OAAOjsB,KAAKns0B,KAAKa,GAAGmia,IAAI3ia,EAcrC,EAEA2i1B,EAAG9i1B,UAAUut2B,cAAgB,SAASlg0B,EAAKkG,EAAWjY,EAAGi6sB,GACvDvP,GAAQ,EAAI1qsB,KAAOA,EAAG,4CACtBiY,EAAY,IAAIk5uB,EAAUl5uB,EAAWgisB,GAErC,IAAI50uB,EAAIb,KAAKa,EACTd,EAAI,IAAIm/zB,EAAG3xxB,GACXltC,EAAIozC,EAAUpzC,EACd64B,EAAIua,EAAUva,EAGdw00B,EAAa,EAAJly0B,EACTmy0B,EAAcny0B,GAAK,EACvB,GAAIn7B,EAAE2ia,IAAIhja,KAAK4j1B,MAAMjrzB,EAAEwzyB,KAAKns0B,KAAK4j1B,MAAM/i1B,KAAO,GAAK8s2B,EACjD,MAAM,IAAIxt2B,MAAM,wCAIhBE,EADEst2B,EACE3t2B,KAAK4j1B,MAAMohB,WAAW3k2B,EAAEkmC,IAAIvmC,KAAK4j1B,MAAM/i1B,GAAI6s2B,GAE3C1t2B,KAAK4j1B,MAAMohB,WAAW3k2B,EAAGqt2B,GAE/B,IAAIE,EAAOn6zB,EAAUpzC,EAAE4s0B,KAAKps0B,GACxBi50B,EAAKj50B,EAAE89G,IAAI5+G,GAAGk9G,IAAI2wvB,GAAMzhC,KAAKtr0B,GAC7Bk50B,EAAK7gzB,EAAE+jF,IAAI2wvB,GAAMzhC,KAAKtr0B,GAI1B,OAAOb,KAAKy6B,EAAEms0B,OAAO9sB,EAAIz50B,EAAG050B,EAC9B,EAEAiJ,EAAG9i1B,UAAU2t2B,oBAAsB,SAAS9t2B,EAAG0zC,EAAW8a,EAAGknrB,GAE3D,GAAgC,QADhChisB,EAAY,IAAIk5uB,EAAUl5uB,EAAWgisB,IACvB83H,cACZ,OAAO95zB,EAAU85zB,cAEnB,IAAK,IAAIvs2B,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAI8s2B,EACJ,IACEA,EAAS9t2B,KAAKyt2B,cAAc1t2B,EAAG0zC,EAAWzyC,EAC5C,CAAE,MAAOjB,GACP,QACF,CAEA,GAAI+t2B,EAAOjgC,GAAGt/wB,GACZ,OAAOvtD,CACX,CACA,MAAM,IAAIb,MAAM,uCAClB,sCChPA,IAAI++zB,EAAKloyB,EAAQ,OAEbkvsB,EADQlvsB,EAAQ,OACDkvsB,OAEnB,SAASmmI,EAAQhV,EAAI/s1B,GACnBtK,KAAKq31B,GAAKA,EACVr31B,KAAKgh1B,KAAO,KACZhh1B,KAAKok1B,IAAM,KAGP950B,EAAQ020B,MACVhh1B,KAAK041B,eAAepu1B,EAAQ020B,KAAM120B,EAAQyj2B,SACxCzj2B,EAAQ850B,KACVpk1B,KAAKu41B,cAAcju1B,EAAQ850B,IAAK950B,EAAQ0j2B,OAC5C,CACA/opB,EAAOrtL,QAAUy00B,EAEjBA,EAAQI,WAAa,SAAoBpV,EAAIjT,EAAK3uG,GAChD,OAAI2uG,aAAeioB,EACVjoB,EAEF,IAAIioB,EAAQhV,EAAI,CACrBjT,IAAKA,EACL4pB,OAAQv4H,GAEZ,EAEA42H,EAAQG,YAAc,SAAqBnV,EAAIrW,EAAMvrG,GACnD,OAAIurG,aAAgBqrB,EACXrrB,EAEF,IAAIqrB,EAAQhV,EAAI,CACrBrW,KAAMA,EACN+sB,QAASt4H,GAEb,EAEA42H,EAAQns2B,UAAU8lD,SAAW,WAC3B,IAAIo+xB,EAAMpk1B,KAAKk41B,YAEf,OAAI9T,EAAI6hB,aACC,CAAE/g2B,QAAQ,EAAOoV,OAAQ,sBAC7B8p0B,EAAIp+xB,WAEJo+xB,EAAInnuB,IAAIj9G,KAAKq31B,GAAGzT,MAAM/i1B,GAAGol2B,aAGvB,CAAE/g2B,QAAQ,EAAMoV,OAAQ,MAFtB,CAAEpV,QAAQ,EAAOoV,OAAQ,uBAFzB,CAAEpV,QAAQ,EAAOoV,OAAQ,4BAKpC,EAEA+x1B,EAAQns2B,UAAUg41B,UAAY,SAAmBgN,EAASzvH,GAUxD,MARuB,kBAAZyvH,IACTzvH,EAAMyvH,EACNA,EAAU,MAGPll2B,KAAKok1B,MACRpk1B,KAAKok1B,IAAMpk1B,KAAKq31B,GAAG58zB,EAAEwiF,IAAIj9G,KAAKgh1B,OAE3BvrG,EAGEz1uB,KAAKok1B,IAAIhkzB,OAAOq1sB,EAAKyvH,GAFnBll2B,KAAKok1B,GAGhB,EAEAioB,EAAQns2B,UAAUi41B,WAAa,SAAoB1iH,GACjD,MAAY,QAARA,EACKz1uB,KAAKgh1B,KAAKz/0B,SAAS,GAAI,GAEvBvB,KAAKgh1B,IAChB,EAEAqrB,EAAQns2B,UAAUw41B,eAAiB,SAAwBzz0B,EAAKwwtB,GAC9Dz1uB,KAAKgh1B,KAAO,IAAI9hB,EAAGj6yB,EAAKwwtB,GAAO,IAI/Bz1uB,KAAKgh1B,KAAOhh1B,KAAKgh1B,KAAK7U,KAAKns0B,KAAKq31B,GAAGzT,MAAM/i1B,EAC3C,EAEAwr2B,EAAQns2B,UAAUq41B,cAAgB,SAAuBtz0B,EAAKwwtB,GAC5D,GAAIxwtB,EAAI9Z,GAAK8Z,EAAIra,EAWf,MAP2B,SAAvB5K,KAAKq31B,GAAGzT,MAAM3/0B,KAChBiiuB,EAAOjhtB,EAAI9Z,EAAG,qBACkB,UAAvBnL,KAAKq31B,GAAGzT,MAAM3/0B,MACS,YAAvBjE,KAAKq31B,GAAGzT,MAAM3/0B,MACvBiiuB,EAAOjhtB,EAAI9Z,GAAK8Z,EAAIra,EAAG,qCAEzB5K,KAAKok1B,IAAMpk1B,KAAKq31B,GAAGzT,MAAM/xmB,MAAM5sN,EAAI9Z,EAAG8Z,EAAIra,IAG5C5K,KAAKok1B,IAAMpk1B,KAAKq31B,GAAGzT,MAAMmhB,YAAY9/0B,EAAKwwtB,EAC5C,EAGA42H,EAAQns2B,UAAUgniB,OAAS,SAAgBk9S,GAIzC,OAHIA,EAAIp+xB,YACNkgrB,EAAOk+G,EAAIp+xB,WAAY,8BAElBo+xB,EAAInnuB,IAAIj9G,KAAKgh1B,MAAMoX,MAC5B,EAGAiU,EAAQns2B,UAAUq/B,KAAO,SAAcgO,EAAKkosB,EAAKnruB,GAC/C,OAAOtK,KAAKq31B,GAAG93zB,KAAKgO,EAAKvtC,KAAMy1uB,EAAKnruB,EACtC,EAEA+h2B,EAAQns2B,UAAUmi1B,OAAS,SAAgB90yB,EAAKkG,GAC9C,OAAOzzC,KAAKq31B,GAAGhV,OAAO90yB,EAAKkG,EAAWzzC,KACxC,EAEAqs2B,EAAQns2B,UAAU67G,QAAU,WAC1B,MAAO,eAAiB/7G,KAAKgh1B,MAAQhh1B,KAAKgh1B,KAAKz/0B,SAAS,GAAI,IACrD,UAAYvB,KAAKok1B,KAAOpk1B,KAAKok1B,IAAIrouB,WAAa,IACvD,sCCtHA,IAAImjtB,EAAKloyB,EAAQ,OAEbujK,EAAQvjK,EAAQ,OAChBkvsB,EAAS3riB,EAAM2riB,OAEnB,SAASymD,EAAUrixB,EAASmruB,GAC1B,GAAInruB,aAAmBqixB,EACrB,OAAOrixB,EAELtK,KAAKiu2B,WAAW3j2B,EAASmruB,KAG7BvP,EAAO57tB,EAAQjK,GAAKiK,EAAQ4uB,EAAG,4BAC/Bl5B,KAAKK,EAAI,IAAI6+zB,EAAG50zB,EAAQjK,EAAG,IAC3BL,KAAKk5B,EAAI,IAAIgmyB,EAAG50zB,EAAQ4uB,EAAG,SACG7wB,IAA1BiC,EAAQij2B,cACVvt2B,KAAKut2B,cAAgB,KAErBvt2B,KAAKut2B,cAAgBjj2B,EAAQij2B,cACjC,CAGA,SAAS5rW,IACP3hgB,KAAKku2B,MAAQ,CACf,CAEA,SAASC,EAAUlozB,EAAKttB,GACtB,IAAIyzsB,EAAUnmrB,EAAIttB,EAAEu10B,SACpB,KAAgB,IAAV9hI,GACJ,OAAOA,EAET,IAAIgiI,EAAqB,GAAVhiI,EAGf,GAAiB,IAAbgiI,GAAkBA,EAAW,EAC/B,OAAO,EAIT,IADA,IAAIv+vB,EAAM,EACD7uG,EAAI,EAAGg0G,EAAMr8E,EAAEu10B,MAAOlt2B,EAAIot2B,EAAUpt2B,IAAKg0G,IAChDnF,IAAQ,EACRA,GAAO5pD,EAAI+uD,GACXnF,KAAS,EAIX,QAAIA,GAAO,OAIXl3E,EAAEu10B,MAAQl5vB,EACHnF,EACT,CAEA,SAASw+vB,EAAUpozB,GAGjB,IAFA,IAAIjlD,EAAI,EACJulB,EAAM0/B,EAAIrlD,OAAS,GACfqlD,EAAIjlD,MAAqB,IAAbilD,EAAIjlD,EAAI,KAAcA,EAAIulB,GAC5CvlB,IAEF,OAAU,IAANA,EACKilD,EAEFA,EAAI7/B,MAAMplB,EACnB,CA2DA,SAASst2B,EAAgB7q1B,EAAK8C,GAC5B,GAAIA,EAAM,IACR9C,EAAI7B,KAAK2E,OADX,CAIA,IAAIgo1B,EAAS,GAAK3l0B,KAAK9iC,IAAIygB,GAAOqiB,KAAKglxB,MAAQ,GAE/C,IADAnqyB,EAAI7B,KAAc,IAAT2s1B,KACAA,GACP9q1B,EAAI7B,KAAM2E,KAASgo1B,GAAU,GAAM,KAErC9q1B,EAAI7B,KAAK2E,EANT,CAOF,CAlHA0+L,EAAOrtL,QAAU+0vB,EA8CjBA,EAAUzsxB,UAAU+t2B,WAAa,SAAoBtk2B,EAAM8ruB,GACzD9ruB,EAAO4wL,EAAMj8D,QAAQ30H,EAAM8ruB,GAC3B,IAAI98sB,EAAI,IAAIgpe,EACZ,GAAwB,KAApBh4f,EAAKgvB,EAAEu10B,SACT,OAAO,EAET,IAAI3n1B,EAAM4n1B,EAAUxk2B,EAAMgvB,GAC1B,IAAY,IAARpS,EACF,OAAO,EAET,GAAKA,EAAMoS,EAAEu10B,QAAWvk2B,EAAK/I,OAC3B,OAAO,EAET,GAAwB,IAApB+I,EAAKgvB,EAAEu10B,SACT,OAAO,EAET,IAAI39B,EAAO49B,EAAUxk2B,EAAMgvB,GAC3B,IAAa,IAAT43yB,EACF,OAAO,EAET,IAAIlw0B,EAAIsJ,EAAKyc,MAAMuS,EAAEu10B,MAAO39B,EAAO53yB,EAAEu10B,OAErC,GADAv10B,EAAEu10B,OAAS39B,EACa,IAApB5m0B,EAAKgvB,EAAEu10B,SACT,OAAO,EAET,IAAIM,EAAOL,EAAUxk2B,EAAMgvB,GAC3B,IAAa,IAAT610B,EACF,OAAO,EAET,GAAI7k2B,EAAK/I,SAAW4t2B,EAAO710B,EAAEu10B,MAC3B,OAAO,EAET,IAAIh10B,EAAIvvB,EAAKyc,MAAMuS,EAAEu10B,MAAOM,EAAO710B,EAAEu10B,OACrC,GAAa,IAAT7t2B,EAAE,GAAU,CACd,KAAW,IAAPA,EAAE,IAIJ,OAAO,EAHPA,EAAIA,EAAE+lB,MAAM,EAKhB,CACA,GAAa,IAAT8S,EAAE,GAAU,CACd,KAAW,IAAPA,EAAE,IAIJ,OAAO,EAHPA,EAAIA,EAAE9S,MAAM,EAKhB,CAMA,OAJApmB,KAAKK,EAAI,IAAI6+zB,EAAG7+zB,GAChBL,KAAKk5B,EAAI,IAAIgmyB,EAAGhmyB,GAChBl5B,KAAKut2B,cAAgB,MAEd,CACT,EAeA5gF,EAAUzsxB,UAAU6j1B,MAAQ,SAAetuG,GACzC,IAAIp1uB,EAAIL,KAAKK,EAAEi+H,UACXplG,EAAIl5B,KAAKk5B,EAAEolG,UAYf,IATW,IAAPj+H,EAAE,KACJA,EAAI,CAAE,GAAIqiB,OAAOriB,IAER,IAAP64B,EAAE,KACJA,EAAI,CAAE,GAAIxW,OAAOwW,IAEnB74B,EAAIgu2B,EAAUhu2B,GACd64B,EAAIm10B,EAAUn10B,IAENA,EAAE,MAAe,IAAPA,EAAE,KAClBA,EAAIA,EAAE9S,MAAM,GAEd,IAAI3C,EAAM,CAAE,GACZ6q1B,EAAgB7q1B,EAAKpjB,EAAEO,SACvB6iB,EAAMA,EAAIf,OAAOriB,IACbuhB,KAAK,GACT0s1B,EAAgB7q1B,EAAKyV,EAAEt4B,QACvB,IAAI6t2B,EAAWhr1B,EAAIf,OAAOwW,GACtBkhF,EAAM,CAAE,IAGZ,OAFAk0vB,EAAgBl0vB,EAAKq0vB,EAAS7t2B,QAC9Bw5G,EAAMA,EAAI13F,OAAO+r1B,GACVl0qB,EAAMn6J,OAAOg6E,EAAKq7nB,EAC3B,sCCnKA,IAAI73sB,EAAO5G,EAAQ,OACfkszB,EAASlszB,EAAQ,OACjBujK,EAAQvjK,EAAQ,OAChBkvsB,EAAS3riB,EAAM2riB,OACfwoI,EAAan0qB,EAAMm0qB,WACnBrC,EAAUr10B,EAAQ,MAClB21vB,EAAY31vB,EAAQ,OAExB,SAAS230B,EAAM/qB,GAGb,GAFA19G,EAAiB,YAAV09G,EAAqB,qCAEtB5j1B,gBAAgB2u2B,GACpB,OAAO,IAAIA,EAAM/qB,GAEnBA,EAAQV,EAAOU,GAAOA,MACtB5j1B,KAAK4j1B,MAAQA,EACb5j1B,KAAKy6B,EAAImpzB,EAAMnpzB,EACfz6B,KAAKy6B,EAAE2q0B,WAAWxhB,EAAM/i1B,EAAE68M,YAAc,GAExC19M,KAAK4u2B,WAAahrB,EAAM/xmB,QAAQxrN,YAChCrmB,KAAK6u2B,eAAiBjm0B,KAAK8wI,KAAKkqqB,EAAM/i1B,EAAE68M,YAAc,GACtD19M,KAAK49B,KAAOA,EAAKuu0B,MACnB,CAEAlnpB,EAAOrtL,QAAU+20B,EAOjBA,EAAMzu2B,UAAUq/B,KAAO,SAAct/B,EAASo+B,GAC5Cp+B,EAAUyu2B,EAAWzu2B,GACrB,IAAIglB,EAAMjlB,KAAK8u2B,cAAczw0B,GACzBh+B,EAAIL,KAAK+u2B,QAAQ9p1B,EAAI+p1B,gBAAiB/u2B,GACtCuuD,EAAIxuD,KAAKy6B,EAAEwiF,IAAI58G,GACf4u2B,EAAWjv2B,KAAKkv2B,YAAY1gzB,GAC5B2gzB,EAAKnv2B,KAAK+u2B,QAAQE,EAAUhq1B,EAAImq1B,WAAYnv2B,GAC7Cg9G,IAAIh4F,EAAI+7zB,QACPvyxB,EAAIpuD,EAAEkmC,IAAI4o0B,GAAIhjC,KAAKns0B,KAAK4j1B,MAAM/i1B,GAClC,OAAOb,KAAKqv2B,cAAc,CAAE7gzB,EAAGA,EAAGC,EAAGA,EAAGwgzB,SAAUA,GACpD,EAQAN,EAAMzu2B,UAAUmi1B,OAAS,SAAgBpi1B,EAAS8i1B,EAAKqB,GACrDnk1B,EAAUyu2B,EAAWzu2B,GACrB8i1B,EAAM/i1B,KAAKqv2B,cAActsB,GACzB,IAAI99zB,EAAMjlB,KAAKi41B,cAAc7T,GACzBlj0B,EAAIlhB,KAAK+u2B,QAAQhsB,EAAIksB,WAAYhq1B,EAAImq1B,WAAYnv2B,GACjDqv2B,EAAKtv2B,KAAKy6B,EAAEwiF,IAAI8luB,EAAIt0xB,KAExB,OADcs0xB,EAAIv0xB,IAAIjoB,IAAIthB,EAAIm/zB,MAAMnnuB,IAAI/7F,IACzB2szB,GAAGyhC,EACpB,EAEAX,EAAMzu2B,UAAU6u2B,QAAU,WAExB,IADA,IAAInx0B,EAAO59B,KAAK49B,OACP58B,EAAI,EAAGA,EAAI8jB,UAAUlkB,OAAQI,IACpC48B,EAAKvG,OAAOvS,UAAU9jB,IACxB,OAAOu5L,EAAMg1qB,UAAU3x0B,EAAKnG,UAAU00yB,KAAKns0B,KAAK4j1B,MAAM/i1B,EACxD,EAEA8t2B,EAAMzu2B,UAAU+31B,cAAgB,SAAuB7T,GACrD,OAAOioB,EAAQI,WAAWzs2B,KAAMok1B,EAClC,EAEAuqB,EAAMzu2B,UAAU4u2B,cAAgB,SAAuBzw0B,GACrD,OAAOgu0B,EAAQmD,WAAWxv2B,KAAMq+B,EAClC,EAEAsw0B,EAAMzu2B,UAAUmv2B,cAAgB,SAAuBtsB,GACrD,OAAIA,aAAep2D,EACVo2D,EACF,IAAIp2D,EAAU3sxB,KAAM+i1B,EAC7B,EAUA4rB,EAAMzu2B,UAAUgv2B,YAAc,SAAqBr9nB,GACjD,IAAI4jgB,EAAM5jgB,EAAMsznB,OAAO7muB,QAAQ,KAAMt+H,KAAK6u2B,gBAE1C,OADAp5H,EAAIz1uB,KAAK6u2B,eAAiB,IAAMh9nB,EAAMumnB,OAAOxrB,QAAU,IAAO,EACvDn3F,CACT,EAEAk5H,EAAMzu2B,UAAU6k2B,YAAc,SAAqBzk0B,GAGjD,IAAImv0B,GAFJnv0B,EAAQi6J,EAAMm0qB,WAAWpu0B,IAEN1/B,OAAS,EACxB8u2B,EAASpv0B,EAAMla,MAAM,EAAGqp1B,GAAQ/s1B,QAAuB,IAAhB4d,EAAMmv0B,IAC7CE,EAAoC,KAAV,IAAhBrv0B,EAAMmv0B,IAEhB7k2B,EAAI2vL,EAAMg1qB,UAAUG,GACxB,OAAO1v2B,KAAK4j1B,MAAMoiB,WAAWp71B,EAAG+k2B,EAClC,EAEAhB,EAAMzu2B,UAAU0v2B,UAAY,SAAmB9t0B,GAC7C,OAAOA,EAAIw8F,QAAQ,KAAMt+H,KAAK6u2B,eAChC,EAEAF,EAAMzu2B,UAAU2v2B,UAAY,SAAmBvv0B,GAC7C,OAAOi6J,EAAMg1qB,UAAUjv0B,EACzB,EAEAqu0B,EAAMzu2B,UAAU4v2B,QAAU,SAAiBjgwB,GACzC,OAAOA,aAAe7vG,KAAK4u2B,UAC7B,qCCnHA,IAAIr0qB,EAAQvjK,EAAQ,OAChBkvsB,EAAS3riB,EAAM2riB,OACfwoI,EAAan0qB,EAAMm0qB,WACnBqB,EAAiBx1qB,EAAMw1qB,eAW3B,SAAS1D,EAAQ9J,EAAO1pyB,GACtB74D,KAAKui2B,MAAQA,EACbvi2B,KAAKgw2B,QAAUtB,EAAW71yB,EAAOx6B,QAC7Bkk0B,EAAMuN,QAAQj3yB,EAAOurxB,KACvBpk1B,KAAKu/1B,KAAO1myB,EAAOurxB,IAEnBpk1B,KAAKiw2B,UAAYvB,EAAW71yB,EAAOurxB,IACvC,CAEAioB,EAAQI,WAAa,SAAoBlK,EAAOne,GAC9C,OAAIA,aAAeioB,EACVjoB,EACF,IAAIioB,EAAQ9J,EAAO,CAAEne,IAAKA,GACnC,EAEAioB,EAAQmD,WAAa,SAAoBjN,EAAOlk0B,GAC9C,OAAIA,aAAkBgu0B,EACbhu0B,EACF,IAAIgu0B,EAAQ9J,EAAO,CAAElk0B,OAAQA,GACtC,EAEAgu0B,EAAQns2B,UAAUm+B,OAAS,WACzB,OAAOr+B,KAAKgw2B,OACd,EAEAD,EAAe1D,EAAS,YAAY,WAClC,OAAOrs2B,KAAKui2B,MAAM2M,YAAYlv2B,KAAKok1B,MACrC,IAEA2rB,EAAe1D,EAAS,OAAO,WAC7B,OAAIrs2B,KAAKiw2B,UACAjw2B,KAAKui2B,MAAMwC,YAAY/k2B,KAAKiw2B,WAC9Bjw2B,KAAKui2B,MAAM9n0B,EAAEwiF,IAAIj9G,KAAKgh1B,OAC/B,IAEA+uB,EAAe1D,EAAS,aAAa,WACnC,IAAI9J,EAAQvi2B,KAAKui2B,MACb3k0B,EAAO59B,KAAK49B,OACZ6x0B,EAASlN,EAAMsM,eAAiB,EAEhC9t2B,EAAI68B,EAAKxX,MAAM,EAAGm80B,EAAMsM,gBAK5B,OAJA9t2B,EAAE,IAAM,IACRA,EAAE0u2B,IAAW,IACb1u2B,EAAE0u2B,IAAW,GAEN1u2B,CACT,IAEAgv2B,EAAe1D,EAAS,QAAQ,WAC9B,OAAOrs2B,KAAKui2B,MAAMsN,UAAU7v2B,KAAKkw2B,YACnC,IAEAH,EAAe1D,EAAS,QAAQ,WAC9B,OAAOrs2B,KAAKui2B,MAAM3k0B,OAAOvG,OAAOr3B,KAAKq+B,UAAU5G,QACjD,IAEAs40B,EAAe1D,EAAS,iBAAiB,WACvC,OAAOrs2B,KAAK49B,OAAOxX,MAAMpmB,KAAKui2B,MAAMsM,eACtC,IAEAxC,EAAQns2B,UAAUq/B,KAAO,SAAct/B,GAErC,OADAimuB,EAAOlmuB,KAAKgw2B,QAAS,2BACdhw2B,KAAKui2B,MAAMhj0B,KAAKt/B,EAASD,KAClC,EAEAqs2B,EAAQns2B,UAAUmi1B,OAAS,SAAgBpi1B,EAAS8i1B,GAClD,OAAO/i1B,KAAKui2B,MAAMlgB,OAAOpi1B,EAAS8i1B,EAAK/i1B,KACzC,EAEAqs2B,EAAQns2B,UAAUiw2B,UAAY,SAAmB16H,GAE/C,OADAvP,EAAOlmuB,KAAKgw2B,QAAS,0BACdz1qB,EAAMn6J,OAAOpgC,KAAKq+B,SAAUo3sB,EACrC,EAEA42H,EAAQns2B,UAAUg41B,UAAY,SAAmBziH,GAC/C,OAAOl7iB,EAAMn6J,OAAOpgC,KAAKov2B,WAAY35H,EACvC,EAEAxwhB,EAAOrtL,QAAUy00B,sCC5FjB,IAAIntC,EAAKloyB,EAAQ,OACbujK,EAAQvjK,EAAQ,OAChBkvsB,EAAS3riB,EAAM2riB,OACf6pI,EAAiBx1qB,EAAMw1qB,eACvBrB,EAAan0qB,EAAMm0qB,WAUvB,SAAS/hF,EAAU41E,EAAOxf,GACxB/i1B,KAAKui2B,MAAQA,EAEM,kBAARxf,IACTA,EAAM2rB,EAAW3rB,IAEfzg0B,MAAMC,QAAQwg0B,KAChBA,EAAM,CACJv0xB,EAAGu0xB,EAAI38zB,MAAM,EAAGm80B,EAAMsM,gBACtBpgzB,EAAGs0xB,EAAI38zB,MAAMm80B,EAAMsM,kBAIvB3oI,EAAO68G,EAAIv0xB,GAAKu0xB,EAAIt0xB,EAAG,4BAEnB8zyB,EAAMuN,QAAQ/sB,EAAIv0xB,KACpBxuD,KAAKow2B,GAAKrtB,EAAIv0xB,GACZu0xB,EAAIt0xB,aAAaywwB,IACnBl/zB,KAAKqw2B,GAAKttB,EAAIt0xB,GAEhBzuD,KAAKsw2B,UAAYhu1B,MAAMC,QAAQwg0B,EAAIv0xB,GAAKu0xB,EAAIv0xB,EAAIu0xB,EAAIksB,SACpDjv2B,KAAKuw2B,UAAYju1B,MAAMC,QAAQwg0B,EAAIt0xB,GAAKs0xB,EAAIt0xB,EAAIs0xB,EAAIytB,QACtD,CAEAT,EAAepjF,EAAW,KAAK,WAC7B,OAAO3sxB,KAAKui2B,MAAMsN,UAAU7v2B,KAAKww2B,WACnC,IAEAT,EAAepjF,EAAW,KAAK,WAC7B,OAAO3sxB,KAAKui2B,MAAMwC,YAAY/k2B,KAAKiv2B,WACrC,IAEAc,EAAepjF,EAAW,YAAY,WACpC,OAAO3sxB,KAAKui2B,MAAM2M,YAAYlv2B,KAAKwuD,IACrC,IAEAuhzB,EAAepjF,EAAW,YAAY,WACpC,OAAO3sxB,KAAKui2B,MAAMqN,UAAU5v2B,KAAKyuD,IACnC,IAEAk+tB,EAAUzsxB,UAAUuw2B,QAAU,WAC5B,OAAOzw2B,KAAKiv2B,WAAWvs1B,OAAO1iB,KAAKww2B,WACrC,EAEA7jF,EAAUzsxB,UAAUgpC,MAAQ,WAC1B,OAAOqxJ,EAAMn6J,OAAOpgC,KAAKyw2B,UAAW,OAAOjv2B,aAC7C,EAEAyjN,EAAOrtL,QAAU+0vB,qBChEjB1nkB,EAAOrtL,QAAU,CACf6r0B,QAAS,CACPpp0B,KAAM,EACNsuF,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,kEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,sEAINg7uB,IAAK,CACH3yB,IAAK,EACLrotB,OAAQ,CACN,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,iEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,kEACA,oEAEF,CACE,mEACA,mEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE,mEACA,oEAEF,CACE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,EAAU,CACdxr3B,UAAW,SACX+rK,SAAU,CACR,CACE7/D,MAAO,iBAET,CACEA,MAAO,yFAET,CACEA,MAAO,wFAGXi0H,UAAW,GAGP2tpB,EAAe,CACnB9t3B,UAAW,OACXksG,MAAO,eACP72G,IAAK,IACLwq3B,SAAU,CACR,eACE,0FAGJ9s2B,SAAU,CACR,CACEm5F,MAAO,OACPi0H,UAAW,GAEbujpB,EAAKtotB,QAAQqwtB,EAAS,CACpBzr3B,UAAW,gBAEb,CACEA,UAAW,cACXksG,MAAO,SAEToywB,EACAoF,EAAKnF,uBAIHO,EAAa,CACjB9+2B,UAAW,QACXksG,MAAOwiG,EAASi/qB,GAAgBjK,EAAK9F,SACrCz9oB,UAAW,GAGP4tpB,EAAiBr/qB,EAASi/qB,GAAgBjK,EAAK9F,SAAW,UAsH1DoQ,EAAe,CACnBpN,QAAS,y0BAYT+K,SAAU,4BACVsC,iBAlIuB,CACvB,OACA,QACA,OACA,SACA,OACA,OACA,MACA,OACA,MACA,OACA,QACA,OACA,UACA,QACA,OACA,QACA,WACA,QACA,OACA,QACA,QACA,SACA,MACA,MACA,OACA,SACA,WACA,WACA,gBACA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,UACA,UACA,OACA,QACA,QACA,MACA,SACA,UACA,SACA,SACA,SACA,SACA,OACA,MACA,SACA,UACA,OACA,QACA,OACA,MACA,WACA,UACA,OACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,MACA,gBACA,qBACA,qBACA,iBACA,YACA,QACA,aACA,QACA,YACA,MACA,OACA,WACA,UACA,WACA,OACA,mBACA,aACA,UACA,YACA,MACA,SACA,UACA,MACA,OACA,OACA,OACA,QACA,SACA,SACA,eACA,gBACA,iBAkBAlC,QAAS,2BAGLmC,EAAoB,CACxBlu3B,UAAW,oBACXmgO,UAAW,EACX0/oB,SAAUmO,EACV9hxB,MAAOjkG,EACL,KACA,eACA,SACA,UACA,Y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AI9BmhxB,EAAW,CACf3ixB,MAAO,iBAGH2rb,EAAS,CACb73hB,UAAW,SACX+rK,SAAU,CACR,CACE7/D,MAAO,IACP72G,IAAK,IACL0d,SAAU,CAAC,CACTm5F,MAAO,KACPi0H,UAAW,KAGf,CACEj0H,MAAO,IACP72G,IAAK,IACL0d,SAAU,CAAC,CACTm5F,MAAO,KACPi0H,UAAW,OAMb+3T,EAAS,CACbnsX,SAAU,CACR23sB,EAAK/E,mBACL+E,EAAKhF,gBAqFT,MAAO,CACL/43B,KAAM,SACNw73B,kBAAkB,EAClBhD,QAAS,OACT0B,SAAU,CACRe,QA7Ja,4OA8Jb+K,SApIM,86JAqINI,QAxIY,sCA0Idh52B,SAAU,CACR26F,EACAmhxB,EACAh3V,EACAK,EA9FiB,CACnBl4hB,UAAW,OACXksG,MAAO,IACP72G,IAAK,IACLwq3B,SAAU,CACR,eAtEe,CACjB,YACA,WACA,WACA,aACA,UACA,eACA,aACA,wBACA,SACA,SACA,eACA,WACA,UACA,oBA0DA9s2B,SAAU,CACR,CACEm5F,MAAO,OACPi0H,UAAW,GAEb,CACEw/oB,cAAe,UACfE,SAAU,CACR,eAAgB,WAElBxq3B,IAAK,IACL0d,SAAU,CACR8khB,EACA,CACE73hB,UAAW,cACX+rK,SAAU,CACR,CACE7/D,MAAO,IACP72G,IAAK,KAEP,CACE62G,MAAO,IACP72G,IAAK,IACL0d,SAAU,CAAC,CACTm5F,MAAO,KACPi0H,UAAW,KAGf,CACEj0H,MAAO,IACP72G,IAAK,IACL0d,SAAU,CAAC,CACTm5F,MAAO,KACPi0H,UAAW,SAOvB03T,EACAnqb,IAIa,CACf1tG,UAAW,SAKXksG,MAAO,eAGQ,CACflsG,UAAW,WACX2/2B,cAAe,OACftq3B,IAAK,IACL8o3B,QAAS,YACTpr2B,SAAU,CACR2w2B,EAAK3E,sBACL,CACE/+2B,UAAW,SACXksG,MAAO,MACP72G,IAAK,MACL0d,SAAU,CACR872B,EACAh3V,EACAK,OAyBV,qBCrGA1tV,EAAOrtL,QAvEP,SAAgBum2B,GACd,MAAO,CACL/93B,KAAM,eACNw73B,kBAAkB,EAClBtB,SAAU,CACR6C,SAAU,OAASgB,EAAK9F,SACxBgD,QAEE,mgBAOF+K,SAEE,6xBAWF/lsB,KACE,sHAGJ7yK,SAAU,CACR2w2B,EAAKnF,qBACLmF,EAAKh2wB,QACH,IACA,IACA,CACEyyH,UAAW,IAGfujpB,EAAKhF,cACLgF,EAAK/E,mBACL,CACE3+2B,UAAW,SACXksG,MAAO,iCAETw3wB,EAAKtF,kBACL,CACEp+2B,UAAW,SACXksG,MAAO,IACP72G,IAAK,WACL8o3B,QAAS,eAEX,CACEn+2B,UAAW,SACXksG,MAAO,qBAET,CACElsG,UAAW,OACXksG,MAAO,IACP72G,IAAK,KAEP,CACE2K,UAAW,QACXksG,MAAO,YAIf,qBCLAs+F,EAAOrtL,QAhEP,SAAaum2B,GAiDX,MAAO,CACL/93B,KAAM,MACNk63B,SAAU,CACRe,QAxCa,+FA0Cf7t2B,SAAU,CArDK,CACf/S,UAAW,WACX+rK,SAAU,CACR,CACE7/D,MAAO,sBAET,CACEA,MAAO,iBAKE,CACblsG,UAAW,SACX+S,SAAU,CAAC2w2B,EAAKzF,kBAChBlysB,SAAU,CACR,CACE7/D,MAAO,cACP72G,IAAK,MACL8qO,UAAW,IAEb,CACEj0H,MAAO,cACP72G,IAAK,MACL8qO,UAAW,IAEb,CACEj0H,MAAO,YACP72G,IAAK,IACL8qO,UAAW,IAEb,CACEj0H,MAAO,YACP72G,IAAK,IACL8qO,UAAW,IAEb,CACEj0H,MAAO,UACP72G,IAAK,KAEP,CACE62G,MAAO,UACP72G,IAAK,KAEPqu3B,EAAKxF,iBACLwF,EAAKtF,oBAWLsF,EAAK7E,YACL6E,EAAKlF,kBACLkF,EAAKjF,aAGX,qBC4GAj0qB,EAAOrtL,QAzKP,SAAgBum2B,GAyId,MAAO,CACL/93B,KAAM,MACNuqL,QAAS,CAAC,OACV2vsB,SATe,CACfe,QAxGsB,CACtB,WACA,KACA,MACA,MACA,QACA,aACA,KACA,QACA,OACA,QACA,gBACA,QACA,SACA,SACA,SACA,QACA,WACA,QACA,eACA,WACA,cACA,OACA,UACA,MACA,KACA,OACA,OACA,eACA,SACA,UACA,QACA,UACA,YACA,YACA,aACA,cACA,eACA,gBACA,QACA,MACA,gBACA,kBACA,oBACA,mBACA,YACA,OACA,eACA,QACA,OACA,KACA,aACA,KACA,QACA,mBACA,YACA,WACA,KACA,OACA,OACA,QACA,QACA,MACA,YACA,MACA,OACA,UACA,YACA,iBACA,QACA,QACA,kBACA,QACA,UACA,YACA,SACA,WACA,iBACA,QACA,SACA,UACA,SACA,SACA,UACA,SACA,MACA,QACA,SACA,OACA,QACA,MACA,WACA,WACA,YACA,YACA,mBACA,QACA,iBACA,OACA,QACA,SAKA+K,SApIwB,CACxB,UACA,UACA,OACA,OACA,YACA,OACA,SACA,OACA,OACA,MACA,QACA,OACA,OACA,QACA,MACA,cACA,OAoHAI,QAjHuB,CACvB,UACA,QACA,OACA,SAoHAh52B,SAAU,CACR2w2B,EAAKpF,oBACLoF,EAAKnF,qBACLmF,EAAKxF,iBACLwF,EAAKtF,kBACLsF,EAAKhF,cACL,CACE1+2B,UAAW,OACXksG,MAAO,IACP72G,IAAK,KAEP,CACE2K,UAAW,QACX2/2B,cAAe,kBACftq3B,IAAK,KACL4y3B,YAAY,EACZ9J,QAAS,IACTpr2B,SAAU,CACR,CACE4s2B,cAAe,sBAEjB+D,EAAK3E,yBAKf,oBC5JA,SAAS922B,IAAgB,QAAA2F,EAAAvD,UAAAlkB,OAAN6nB,EAAI,IAAAnG,MAAA+F,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJE,EAAIF,GAAAzD,UAAAyD,GAErB,OADeE,EAAKvY,KAAK/E,IAAM4Z,OAZjBugK,EAYwBn6K,GAVpB,kBAAPm6K,EAAwBA,EAE5BA,EAAGvgK,OAHM,KADlB,IAAgBugK,CAY0B,IAAEt+J,KAAK,GAEjD,CAiJAi+L,EAAOrtL,QAtIP,SAAcum2B,GACZ,MAAMoL,EAAM,CAAC,EACPC,EAAa,CACjB7ixB,MAAO,OACP72G,IAAI,KACJ0d,SAAU,CACR,OACA,CACEm5F,MAAO,KACPn5F,SAAU,CAAE+72B,MAIlBxp3B,O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ACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,UACA,UACA,OACA,QACA,QACA,MACA,SACA,UACA,SACA,SACA,SACA,SACA,OACA,MACA,SACA,UACA,OACA,QACA,OACA,MACA,WACA,UACA,OACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,MACA,gBACA,qBACA,qBACA,iBACA,YACA,QACA,aACA,QACA,YACA,MACA,OACA,WACA,UACA,WACA,OACA,mBACA,aACA,UACA,YACA,MACA,SACA,UACA,MACA,OACA,OACA,OACA,QACA,SACA,SACA,eACA,gBACA,iBAkBAlC,QAAS,2BAGLmC,EAAoB,CACxBlu3B,UAAW,oBACXmgO,UAAW,EACX0/oB,SAAUmO,EACV9hxB,MAAOjkG,EACL,KACA,eACA,SACA,UACA,YACAy72B,EAAK9F,UA9QQ/ysB,EA+QH,QA9QP5iK,EAAO,MAAO4iK,EAAI,QAD3B,IAAmBA,EAkRjB,MAAMsjtB,EAAsB,CAC1BD,EACAJ,EACAD,EACAvP,EACAoF,EAAKnF,qBACLiN,EACAC,GAII2C,EAAqB,CAIzBritB,SAAU,CACR,CACE7/D,MAAO,IACP72G,IAAK,KAEP,CACE62G,MAAO,KACP72G,IAAK,MAEP,CACEsq3B,cAAe,wBACftq3B,IAAK,MAGTwq3B,SAAUmO,EACVj72B,SAAUo72B,EAAoBlm3B,OAAO,CACnC,CACEikG,MAAO,KACP72G,IAAK,KACLwq3B,SAAUmO,EACVj72B,SAAUo72B,EAAoBlm3B,OAAO,CAAE,SACvCk4N,UAAW,KAGfA,UAAW,GAGPkupB,EAAuB,CAC3Bru3B,UAAW,WACXksG,MAAO,IAAM0hxB,EAAmB,eAAiBG,EACjDlG,aAAa,EACbxy3B,IAAK,QACL4y3B,YAAY,EACZpI,SAAUmO,EACV7P,QAAS,iBACTpr2B,SAAU,CACR,CACEm5F,MAAOwhxB,EACP7N,SAAUmO,EACV7tpB,UAAW,GAEb,CACEj0H,MAAO6hxB,EACPlG,aAAa,EACb902B,SAAU,CAAE+r2B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Q,UAAW,IACxBwixB,EACA/uc,EACA+rE,GAEFA,EAAKn6e,SAAWk92B,EAChBJ,EAAW982B,SAAWk92B,EACtBF,EAASh92B,SAAW,CAAE882B,GAEf,CACLlq4B,KAAM,UACNuqL,QAAS,CAAE,OACXiusB,QAAS,KACTpr2B,SAAU,CACRi92B,EACAn4V,EACAi4V,EACAC,EACArixB,EACAxW,EACA24xB,EACA33V,EACAqzV,GAGN,qBC5FA/grB,EAAOrtL,QAvDP,SAAeum2B,GACb,MAAO,CACL/93B,KAAM,QACNuqL,QAAS,CAAC,YACVixsB,kBAAkB,EAClBtB,SAAU,CACRe,QAEE,woEAkCJ7t2B,SAAU,CACR,CACE/S,UAAW,WACXksG,MAAO,OACP72G,IAAK,MAEPqu3B,EAAKlF,kBACLkF,EAAKtF,kBACLsF,EAAKjF,aAGX,qBC7DA,MAAM2O,EAAW,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,WAEI+C,EAAW,CACf,OACA,QACA,OACA,YACA,MACA,YAoFIC,EAAY,GAAGno3B,OAlCI,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,YAGyB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,SACA,UA9EY,CACZ,OACA,WACA,SACA,OACA,OACA,SACA,SACA,SACA,WACA,UACA,QACA,SACA,MACA,MACA,UACA,UACA,QACA,UACA,OACA,UACA,eACA,aACA,aACA,YACA,cACA,cACA,eACA,QACA,aACA,oBACA,cACA,gBACA,iBACA,UAGkB,CAClB,YACA,gBACA,aACA,iBACA,cACA,YACA,aAmQFuiM,EAAOrtL,QA7MP,SAAsBum2B,GACpB,MAgCM2M,EAAa,CACjBzP,QAASwM,EAASnl3B,OA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AO,sEACP72G,IAAK,IACL8o3B,QAAS,KAEXuF,EAAKnE,kBAAkB,CACrBrzwB,MAAO,mCACP72G,IAAK,0BAKLm23B,EAAU,CACdxr3B,UAAW,SACX+rK,SAAU,CACR,CACE7/D,MAAO,iBAET,CACEA,MAAO,yFAET,CACEA,MAAO,wFAGXi0H,UAAW,GAGP2tpB,EAAe,CACnB9t3B,UAAW,OACXksG,MAAO,eACP72G,IAAK,IACLwq3B,SAAU,CACR,eACE,0FAGJ9s2B,SAAU,CACR,CACEm5F,MAAO,OACPi0H,UAAW,GAEbujpB,EAAKtotB,QAAQqwtB,EAAS,CACpBzr3B,UAAW,gBAEb,CACEA,UAAW,cACXksG,MAAO,SAEToywB,EACAoF,EAAKnF,uBAIHO,EAAa,CACjB9+2B,UAAW,QACXksG,MAAOwiG,EAASi/qB,GAAgBjK,EAAK9F,SACrCz9oB,UAAW,GAGP4tpB,EAAiBr/qB,EAASi/qB,GAAgBjK,EAAK9F,SAAW,UAsH1DoQ,EAAe,CACnBpN,QAAS,y0BAYT+K,SAAU,4BACVsC,iBAlIuB,CACvB,OACA,QACA,OACA,SACA,OACA,OACA,MACA,OACA,MACA,OACA,QACA,OACA,UACA,QACA,OACA,QACA,WACA,QACA,OACA,QACA,QACA,SACA,MACA,MACA,OACA,SACA,WACA,WACA,gBACA,SACA,SACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,WACA,UACA,UACA,OACA,QACA,QACA,MACA,SACA,UACA,SACA,SACA,SACA,SACA,OACA,MACA,SACA,UACA,OACA,QACA,OACA,MACA,WACA,UACA,OACA,SACA,SACA,SACA,SACA,SACA,UACA,SACA,UACA,UACA,UACA,UACA,UACA,SACA,SACA,OACA,MACA,gBACA,qBACA,qBACA,iBACA,YACA,QACA,aACA,QACA,YACA,MACA,OACA,WACA,UACA,WACA,OACA,mBACA,aACA,UACA,YACA,MACA,SACA,UACA,MACA,OACA,OACA,OACA,QACA,SACA,SACA,eACA,gBACA,iBAkBAlC,QAAS,2BAGLmC,EAAo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AIb,CACElR,cAAe,aACftq3B,IAAK,MACL8o3B,QAAS,IACTpr2B,SAAU,CACR2w2B,EAAKlF,kBACLkF,EAAKtotB,QAAQsotB,EAAK5E,WAAY,CAC5B5ywB,MAAO2kxB,KAGX1wpB,UAAW,GAEb,CACEngO,UAAW,WACX2/2B,cAAe,MACftq3B,IAAK,OACL0d,SAAU,CACR2w2B,EAAKtotB,QAAQsotB,EAAK5E,WAAY,CAC5B5ywB,MAAO0kxB,EACPtJ,YAAY,MAIlB,CACEtn3B,UAAW,WACX2/2B,cAAe,YACftq3B,IAAK,OACL0d,SAAU,CACR2w2B,EAAKtotB,QAAQsotB,EAAK5E,WAAY,CAC5B5ywB,MAAO0kxB,EACPtJ,YAAY,KAGhBnnpB,UAAW,GAEb,CACEngO,UAAW,SACXksG,MAAOw3wB,EAAK7F,oBAAsB,YAClC19oB,UAAW,GAEb,CACEngO,UAAW,SACXksG,MAAO,IACPn5F,SAAU,CACR8khB,EACA,CACE3rb,MAAO0kxB,IAGXzwpB,UAAW,GAEb,CACEngO,UAAW,SACX+rK,SAAU,CACR,CACE7/D,MAAO,gBAAkBykxB,GAE3B,CACEzkxB,MAAO,iBAAmBykxB,GAE5B,CACEzkxB,MAAO,uBAAyBykxB,GAElC,CACEzkxB,MAAO,yFAET,CACEA,MAAO,sBAAwBykxB,IAGnCxwpB,UAAW,IAMf,OAHAktpB,EAAMt62B,SAAWo+2B,EACjBJ,EAAUh+2B,SAAWo+2B,EAAyBxl3B,MAAM,GAE7C,CACLhmB,KAAM,UACNuqL,QAAS,CAAE,MACX2vsB,SAAUiR,EACV/92B,SAAUo+2B,EAEd,qBCqHA3mrB,EAAOrtL,QA/aP,SAAgBum2B,GACd,MA2IM0J,EAAW,CACfxM,QA/FsB,CACtB,WACA,KACA,OACA,QACA,OACA,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,SAwCyB342B,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,UAKA0j3B,SA7IwB,CACxB,OACA,OACA,OACA,UACA,WACA,SACA,UACA,OACA,QACA,MACA,OACA,OACA,QACA,SACA,QACA,QACA,SACA,QACA,OACA,UA0HAI,QAvGuB,CACvB,UACA,QACA,OACA,SAqGIjN,EAAa4E,EAAKtotB,QAAQsotB,EAAK5E,WAAY,CAC/C5ywB,MAAO,uBAEHs/wB,EAAU,CACdxr3B,UAAW,SACX+rK,SAAU,CACR,CACE7/D,MAAO,iBAET,CACEA,MAAO,mEAET,CACEA,MAAO,wFAGXi0H,UAAW,GAEPixpB,EAAkB,CACtBpx3B,UAAW,SACXksG,MAAO,KACP72G,IAAK,IACL0d,SAAU,CACR,CACEm5F,MAAO,QAIPmlxB,EAAwB3N,EAAKtotB,QAAQg2tB,EAAiB,CAC1DjT,QAAS,OAELkP,EAAQ,CACZrt3B,UAAW,QACXksG,MAAO,KACP72G,IAAK,KACLwq3B,SAAUuN,GAENkE,EAAc5N,EAAKtotB,QAAQiytB,EAAO,CACtClP,QAAS,OAELoT,EAAsB,CAC1Bvx3B,UAAW,SACXksG,MAAO,MACP72G,IAAK,IACL8o3B,QAAS,KACTpr2B,SAAU,CACR,CACEm5F,MAAO,QAET,CACEA,MAAO,QAETw3wB,EAAKzF,iBACLqT,IAGEE,EAA+B,CACnCxx3B,UAAW,SACXksG,MAAO,OACP72G,IAAK,IACL0d,SAAU,CACR,CACEm5F,MAAO,QAET,CACEA,MAAO,QAET,CACEA,MAAO,MAETmhxB,IAGEoE,EAAqC/N,EAAKtotB,QAAQo2tB,EAA8B,CACpFrT,QAAS,KACTpr2B,SAAU,CACR,CACEm5F,MAAO,QAET,CACEA,MAAO,QAET,CACEA,MAAO,MAETolxB,KAGJjE,EAAMt62B,SAAW,CACfy+2B,EACAD,EACAH,EACA1N,EAAKxF,iBACLwF,EAAKtF,kBACLoN,EACA9H,EAAKnF,sBAEP+S,EAAYv+2B,SAAW,CACrB0+2B,EACAF,EACAF,EACA3N,EAAKxF,iBACLwF,EAAKtF,kBACLoN,EACA9H,EAAKtotB,QAAQsotB,EAAKnF,qBAAsB,CACtCJ,QAAS,QAGb,MAAMtmV,EAAS,CACb9rX,SAAU,CACRyltB,EACAD,EACAH,EACA1N,EAAKxF,iBACLwF,EAAKtF,oBAIHsT,EAAmB,CACvBxlxB,MAAO,IACP72G,IAAK,IACL0d,SAAU,CACR,CACE4s2B,cAAe,UAEjBb,IAGE6S,EAAgBjO,EAAK9F,SAAW,KAAO8F,EAAK9F,SAAW,aAAe8F,EAAK9F,SAAW,iBACtFgU,EAAgB,CAGpB1lxB,MAAO,IAAMw3wB,EAAK9F,SAClBz9oB,UAAW,GAGb,MAAO,CACLx6O,KAAM,KACNuqL,QAAS,CACP,KACA,MAEF2vsB,SAAUuN,EACVjP,QAAS,KACTpr2B,SAAU,CACR2w2B,EAAKh2wB,QACH,MACA,IACA,CACEm6wB,aAAa,EACb902B,SAAU,CACR,CACE/S,UAAW,SACX+rK,SAAU,CACR,CACE7/D,MAAO,MACPi0H,UAAW,GAEb,CACEj0H,MAAO,kBAET,CACEA,MAAO,MACP72G,IAAK,UAOjBqu3B,EAAKpF,oBACLoF,EAAKnF,qBACL,CACEv+2B,UAAW,OACXksG,MAAO,IACP72G,IAAK,IACLwq3B,SAAU,CACR,eAAgB,wFAGpBhoV,EACA2zV,EACA,CACE7L,cAAe,kBACfx/oB,UAAW,EACX9qO,IAAK,QACL8o3B,QAAS,UACTpr2B,SAAU,CACR,CACE4s2B,cAAe,eAEjBb,EACA4S,EACAhO,EAAKpF,oBACLoF,EAAKnF,uBAGT,CACEoB,cAAe,YACfx/oB,UAAW,EACX9qO,IAAK,QACL8o3B,QAAS,SACTpr2B,SAAU,CACR+r2B,EACA4E,EAAKpF,oBACLoF,EAAKnF,uBAGT,CACEoB,cAAe,SACfx/oB,UAAW,EACX9qO,IAAK,QACL8o3B,QAAS,SACTpr2B,SAAU,CACR+r2B,EACA4S,EACAhO,EAAKpF,oBACLoF,EAAKnF,uBAGT,CAEEv+2B,UAAW,OACXksG,MAAO,WACP07wB,cAAc,EACdvy3B,IAAK,MACL4y3B,YAAY,EACZl12B,SAAU,CACR,CACE/S,UAAW,cACXksG,MAAO,IACP72G,IAAK,OAIX,CAGEsq3B,cAAe,8BACfx/oB,UAAW,GAEb,CACEngO,UAAW,WACXksG,MAAO,IAAMylxB,EAAgB,SAAWjO,EAAK9F,SAAW,qBACxDiK,aAAa,EACbxy3B,IAAK,WACL4y3B,YAAY,EACZpI,SAAUuN,EACVr62B,SAAU,CAER,CACE4s2B,cArXiB,CACzB,SACA,UACA,YACA,SACA,WACA,YACA,WACA,QACA,SACA,WACA,SACA,UACA,MACA,SACA,WAsW0Cpz2B,KAAK,KACvC4zN,UAAW,GAEb,CACEj0H,MAAOw3wB,EAAK9F,SAAW,qBACvBiK,aAAa,EACb902B,SAAU,CACR2w2B,EAAK5E,WACL4S,GAEFvxpB,UAAW,GAEb,CACEngO,UAAW,SACXksG,MAAO,KACP72G,IAAK,KACLuy3B,cAAc,EACdK,YAAY,EACZpI,SAAUuN,EACVjtpB,UAAW,EACXptN,SAAU,CACR8khB,EACA2zV,EACA9H,EAAKnF,uBAGTmF,EAAKpF,oBACLoF,EAAKnF,uBAGTqT,GAGN,qBClZApnrB,EAAOrtL,QA1BP,SAAaum2B,GACX,MAAO,CACL/93B,KAAM,MACNw73B,kBAAkB,EAClBtB,SAAU,CACR6C,SAAU,yBACV9B,QAAS,+KAIX7t2B,SAAU,CACR,CACE/S,UAAW,SACXksG,MAAO,IACP72G,IAAK,KAEP,CACE2K,UAAW,YACXksG,MAAO,WACP72G,IAAK,IACL4y3B,YAAY,IAIpB,qBClCA,MAuBM4J,EAAO,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,EAAiB,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,EAAiB,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,EAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,kBAGIC,EAAa,CACjB,gBACA,cACA,aACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,OACA,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,QACA,OACA,YACA,QACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,oBACA,gBACA,SACA,YACA,UACA,cACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,eACA,yBACA,0BACA,cACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,UACA,UACA,kBACA,OACA,iBACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,gBACA,cACA,eACA,aACA,QACA,OACA,aACA,YACA,aACA,YACA,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,cACA,qBACA,iBACA,WACA,SACA,SACA,QACA,MACA,WACA,eACA,aACA,kBACA,kBACA,wBACA,uBACA,wBACA,cACA,gBACA,iBACA,cACA,iBACA,0BACA,MACA,YACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,eACA,iBACA,aACA,cACA,SACA,QACA,aACA,eACA,YACA,WAGA9x1B,UAsBF,SAAS+x1B,EAAUrntB,GACjB,OAOF,WAAyB,QAAAj9J,EAAAvD,UAAAlkB,OAAN6nB,EAAI,IAAAnG,MAAA+F,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJE,EAAIF,GAAAzD,UAAAyD,GAErB,OADeE,EAAKvY,KAAK/E,GApB3B,SAAgBm6K,GACd,OAAKA,EACa,kBAAPA,EAAwBA,EAE5BA,EAAGvgK,OAHM,IAIlB,CAeiCA,CAAO5Z,KAAI6b,KAAK,GAEjD,CAVStE,CAAO,MAAO4iK,EAAI,IAC3B,CA6JA2/B,EAAOrtL,QA3IP,SAAaum2B,GACX,MAAM1ssB,EArdO0ssB,KACN,CACLyO,UAAW,CACTny3B,UAAW,OACXksG,MAAO,cAETkmxB,SAAU,CACRpy3B,UAAW,SACXksG,MAAO,oCAETmmxB,wBAAyB,CACvBry3B,UAAW,g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CACtBhz3B,UAAW,OACXksG,MAAO,MACP72G,IAAK,IACL8qO,UAAW,GAQyB,CACpCngO,UAAW,OACXksG,MAAO,UACP72G,IAAK,IACL8qO,UAAW,GAQY,CACvBngO,UAAW,UACXksG,MAAO,4BAqCX,qBCtEAs+F,EAAOrtL,QA5LP,SAAcum2B,GACZ,MAAM2J,EAAQ,CACZrt3B,UAAW,QACX+rK,SAAU,CAAC,CACT7/D,MAAO,sBAILinxB,EAAe,CACnBnz3B,UAAW,QACX+rK,SAAU,CAAC,CACT7/D,MAAO,OACP72G,IAAK,OAEPwq3B,SAAU,qCAGNhoV,EAAS,CACb73hB,UAAW,SACX+rK,SAAU,CACR,CACE7/D,MAAO,OACP72G,IAAK,OAEP,CACE62G,MAAO,OACP72G,IAAK,OAEP,CACE62G,MAAO,KACP72G,IAAK,IACL8o3B,QAAS,OAEX,CACEjywB,MAAO,KACP72G,IAAK,IACL8o3B,QAAS,OAEX,CACEjywB,MAAO,MACP72G,IAAK,MACL0d,SAAU,CACR2w2B,EAAKzF,iBACLoP,EACA8F,IAGJ,CACEjnxB,MAAO,MACP72G,IAAK,MACL0d,SAAU,CACR2w2B,EAAKzF,iBACLoP,EACA8F,IAGJ,CACEjnxB,MAAO,IACP72G,IAAK,IACL8o3B,QAAS,MACTpr2B,SAAU,CACR2w2B,EAAKzF,iBACLoP,EACA8F,IAGJ,CACEjnxB,MAAO,IACP72G,IAAK,IACL8o3B,QAAS,MACTpr2B,SAAU,CACR2w2B,EAAKzF,iBACLoP,EACA8F,MAKRA,EAAapg3B,SAAW,CACtB2w2B,EAAKhF,cACL7mV,GAGF,MAAMu7V,EAAiB,CAErB,aACA,WACA,WACA,WACA,WACA,WACA,OACA,MACA,QACA,SACA,UACA,SACA,MACA,YACA,SACA,eACA,aACA,SACA,OACA,MACA,OACA,SACA,MACA,MAEA,UACA,eAEIC,EAA0BD,EAAe393B,KAAKnQ,GAAO,GAAEA,OAyB7D,MAAO,CACLK,KAAM,OACNk63B,SAzBe,CACfe,QAAS,6YAIT+K,SACEyH,EACGnr3B,OAAOor3B,GACPpr3B,OAAO,CAEN,QACA,OACA,UACA,QAEA,WACA,gBACA,mBACA,WAENy62B,SAAU,4BAMV3v2B,SAAU,CACR8khB,EACA6rV,EAAKh2wB,QACH,eACA,OACA,CACEk5wB,YAAa,WACbzmpB,UAAW,IAGfujpB,EAAKh2wB,QACH,WACA,IAAK,CACH36F,SAAU,CAAC,CACT6z2B,YAAa,WACb16wB,MAAO,IACP72G,IAAK,IACL8qO,UAAW,MAIjBujpB,EAAKpF,oBACLoF,EAAKnF,qBACL,CACEv+2B,UAAW,QACX2/2B,cAAe,kBACftq3B,IAAK,KACL4y3B,YAAY,EACZl12B,SAAU,CACR,CACE4s2B,cAAe,sBAEjB+D,EAAK3E,wBAGT2E,EAAKhF,cACL,CACE1+2B,UAAW,OACXksG,MAAO,cAET,CACEA,MAAO,OAIf,qBCvEAs+F,EAAOrtL,QAvHP,SAAgBum2B,GACd,MAAM0J,EACJ,26BAWIgC,EAAgB,CACpB1L,EAAKpF,oBACLoF,EAAKh2wB,QAAQ,KAAM,KAAM,CACvByyH,UAAW,IAEbujpB,EAAKh2wB,QAAQ,OAAQ,OAAQ,CAC3ByyH,UAAW,MAGTmzpB,EAAY,CAChBtz3B,UAAW,OACX+rK,SAAU,CACR,CACE7/D,MAAO,OACP72G,IAAK,MAEP,CACE62G,MAAO,SACP72G,IAAK,UAILwiiB,EAAS,CACb73hB,UAAW,SACXksG,MAAO,IACP72G,IAAK,IACL0d,SAAU,CAAC,CACTm5F,MAAO,QAsBLmjxB,EAAc,CAClBrv3B,UAAW,SACXksG,MAAO,WAEHqnxB,EAAQ,CACZrnxB,MAAOw3wB,EAAK9F,SAAW,wBACvBiK,aAAa,EACb902B,SAAU,CAAC2w2B,EAAK5E,aAEZrnV,EAAW,CACfz3hB,UAAW,WACX2/2B,cAAe,4CACftq3B,IAAK,OACLwq3B,SAAU,qDACV9s2B,SAAU,CACR2w2B,EAAK5E,WACL,CACE9+2B,UAAW,SACXksG,MAAO,KACP72G,IAAK,KACLwq3B,SAAUuN,EACVr62B,SAAU,CACR8khB,EACAw3V,EACAiE,GACArr3B,OAAOmn3B,IAEXkE,GACArr3B,OAAOmn3B,IAEX,MAAO,CACLzp4B,KAAM,SACNuqL,QAAS,CACP,MACA,MACA,MACA,SACA,aACA,UACA,MACA,OAEFixsB,kBAAkB,EAClBtB,SAAUuN,EACVjP,QAAS,2BACTpr2B,SAAU,CACR8khB,EACAw3V,EACA3L,EAAKjF,YAnEM,CACbz+2B,UAAW,SACXmgO,UAAW,EAEXp0D,SAAU,CACR,CAEE7/D,MAAO,mBAET,CAEEA,MAAO,WAET,CAEEA,MAAO,YAsDTqnxB,EACA97V,EACA67V,GACArr3B,OAAOmn3B,GAEb,qBCvCA5krB,EAAOrtL,QA3EP,SAAcum2B,GACZ,MAAO,CACL/93B,KAAM,OACNuqL,QAAS,CAAC,SACVn9J,SAAU,CACR,CACE/S,UAAW,OACXmgO,UAAW,GACXp0D,SAAU,CACR,CACE7/D,MAAO,gCAET,CACEA,MAAO,+BAET,CACEA,MAAO,0BAIb,CACElsG,UAAW,UACX+rK,SAAU,CACR,CACE7/D,MAAO,UACP72G,IAAK,KAEP,CACE62G,MAAO,SACP72G,IAAK,KAEP,CACE62G,MAAO,QACP72G,IAAK,KAEP,CACE62G,MAAO,QACP72G,IAAK,KAEP,CACE62G,MAAO,UACP72G,IAAK,KAEP,CACE62G,MAAO,SACP72G,IAAK,KAEP,CACE62G,MAAO,YAET,CACEA,MAAO,cACP72G,IAAK,OAIX,CACE2K,UAAW,WACXksG,MAAO,MACP72G,IAAK,KAEP,CACE2K,UAAW,WACXksG,MAAO,KACP72G,IAAK,KAEP,CACE2K,UAAW,WACXksG,MAAO,KACP72G,IAAK,MAIb,qBCNAm1M,EAAOrtL,QAjEP,SAAgBum2B,GACd,MAAMzub,EAAS,CACb/oV,MAAO,gBACP2zwB,SAAU,CACRl63B,KACE,4kBASJotB,SAAU,CACR2w2B,EAAKtF,kBACLsF,EAAKxF,mBAIT,MAAO,CACLv43B,KAAM,SACNuqL,QAAS,CAAC,SACVixsB,kBAAkB,EAClByF,YAAa,MACb7z2B,SAAU,CACR2w2B,EAAKh2wB,QAAQ,sBAAuB,0BACpCg2wB,EAAKh2wB,QAAQ,MAAO,OACpB,CACE1tG,UAAW,eACXksG,MAAO,MAC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MAAO,qCAQY,CACnBA,MAAO,IACP72G,IAAK,OACL0d,SAAU,CACRo52B,EATwB,CAC1Bns3B,UAAW,OACXksG,MAAO,UASL,CAEElsG,UAAW,SACX+rK,SAAU,CACR23sB,EAAKxF,iBACLwF,EAAKtF,kBACL,CACElywB,MAAO,IACP72G,IAAK,UAgBjB,qBCgNAm1M,EAAOrtL,QAzPP,SAAgBum2B,GACd,MAAMmQ,EAAkB,kCAElBC,EAAkB,CACtBpR,SAAUmR,EACVjT,QAAS,uMAILyM,EAAQ,CACZrt3B,UAAW,QACXksG,MAAO,MACP72G,IAAK,KACLwq3B,SAAUiU,GAEN57V,EAAS,CACbl4hB,UAAW,SACXksG,MAAO,uGACPi0H,UAAW,GAEP4zpB,EAAmB,cACnBC,EAAkB,CACtBh03B,UAAW,SACXksG,MAAO,YAAmB6nxB,EAAmB,IAC7Chh3B,SAAU,CACR,CACEu02B,YAAY,EACZv02B,SAAU,CACR,CACEA,SAAU,CACR2w2B,EAAKzF,iBACLoP,GAEFthtB,SAAU,CACR,CACE7/D,MAAO,IACP72G,IAAK,KAEP,CACE62G,MAAO,IACP72G,IAAK,KAEP,CACE62G,MAAO,KACP72G,IAAK,MAEP,CACE62G,MAAO,KACP72G,IAAK,MAEP,CACE62G,MAAO,KACP72G,IAAK,MAEP,CACE62G,MAAO,KACP72G,IAAK,MAEP,CACE62G,MAAO,KACP72G,IAAK,MAEP,CACE62G,MAAO,IACP72G,IAAK,WASb4+3B,EAAe,CACnBj03B,UAAW,SACXksG,MAAO,YAAmB6nxB,EAAmB,IAC7Chh3B,SAAU,CACR,CACEm5F,MAAO,IACP72G,IAAK,KAEP,CACE62G,MAAO,IACP72G,IAAK,KAEP,CACE62G,MAAO,KACP72G,IAAK,MAEP,CACE62G,MAAO,KACP72G,IAAK,MAEP,CACE62G,MAAO,KACP72G,IAAK,MAEP,CACE62G,MAAO,KACP72G,IAAK,MAEP,CACE62G,MAAO,KACP72G,IAAK,MAEP,CACE62G,MAAO,IACP72G,IAAK,OAKLwiiB,EAAS,CACb73hB,UAAW,SACX+S,SAAU,CACR2w2B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2vsB,SAAU,CACRe,QAAS,uRAIT+K,SACE,aACFI,QACE,qBAEJh52B,SAAU,CACR,CACE/S,UAAW,SACXksG,MAAO,IACP72G,IAAK,IACL0d,SAAU,CACR2w2B,EAAKzF,iBACL,CACEj+2B,UAAW,QACXksG,MAAO,SACP72G,IAAK,OAEP,CACE2K,UAAW,QACXksG,MAAO,MACP72G,IAAK,UAIXqu3B,EAAKtF,kBACLsF,EAAKpF,oBACLoF,EAAKnF,qBACLmF,EAAKhF,cACL,CACE1+2B,UAAW,OACXksG,MAAO,KACP72G,IAAK,KAEP,CACE2K,UAAW,OACXksG,MAAO,IACP72G,IAAK,IACLwq3B,SAAU,CACR,eAAgB,6BAGpB,CACE7/2B,UAAW,OACXksG,MAAO,UACP72G,IAAK,uBACLuy3B,cAAc,EACdK,YAAY,EACZ9npB,UAAW,GAEb,CACEngO,UAAW,OACXksG,MAAO,UACP72G,IAAK,MACLuy3B,cAAc,EACdK,YAAY,GAEd,CACEjo3B,UAAW,OACXksG,MAAO,QACP72G,IAAK,MACLuy3B,cAAc,EACdK,YAAY,GAEd,CACEjo3B,UAAW,QACX2/2B,cAAe,OACftq3B,IAAK,MACL0d,SAAU,CAAC2w2B,EAAK5E,aAElB,CACE9+2B,UAAW,QACX2/2B,cAAe,WACftq3B,IAAK,SACL0d,SAAU,CACR,CACE/S,UAAW,OACXksG,MAAO,MACP72G,IAAK,MACLuy3B,cAAc,EACdK,YAAY,GAEd,CACEjo3B,UAAW,OACXksG,MAAO,SACP72G,IAAK,MACLuy3B,cAAc,EACdK,YAAY,GAEd,CACEjo3B,UAAW,OACXksG,MAAO,OACP72G,IAAK,MACLuy3B,cAAc,EACdK,YAAY,GAEdvE,EAAK5E,YAEPe,SAAU,CACRe,QAAS,qBAGb,CACE5g3B,UAAW,QACXksG,MAAO,yBACP72G,IAAK,SACL4y3B,YAAY,EACZpI,SAAU,kBACV9s2B,SAAU,CACR,CACE/S,UAAW,UACXksG,MAAO,4BACP2zwB,SAAU,qBACV9s2B,SAAU,CACR,CACE/S,UAAW,OACXksG,MAAOw3wB,EAAK9F,SACZz9oB,UAAW,KAIjBujpB,EAAK5E,aAGT,CACE9+2B,UAAW,WACX2/2B,cAAe,WACftq3B,IAAK,MACL4y3B,YAAY,EACZ9J,QAAS,MACTpr2B,SAAU,CAAC2w2B,EAAK5E,cAGpBX,QAAS,MAEb,qBC1FA3zqB,EAAOrtL,QAzDP,SAAaum2B,GACX,MAAO,CACL/93B,KAAM,MACNw73B,kBAAkB,EAClBtB,SAAU,CACR6C,SAAU,UACV9B,QAAS,4/EAEX7t2B,SAAU,CACR2w2B,EAAKpF,oBACLoF,EAAKnF,qBACLmF,EAAKtF,kBACLsF,EAAKxF,iBAEL,CAEEl+2B,UAAW,SACXksG,MAAO,MACP72G,IAAK,MACL0d,SAAU,CAAC2w2B,EAAKzF,mBAGlByF,EAAKh2wB,QAAQ,IAAK,IAAK,CACrByyH,UAAW,IAGb,CAEEngO,UAAW,OACXksG,MAAO,IACP72G,IAAK,IACLwq3B,SAAU,CACR,eAAgB,mNAElB9s2B,SAAU,CACR2w2B,EAAKtotB,QAAQsotB,EAAKtF,kBAAmB,CACnCp+2B,UAAW,gBAEb0j3B,EAAKjF,YACLiF,EAAKhF,cACLgF,EAAKpF,oBACLoF,EAAKnF,uBAIT,CAEEv+2B,UAAW,SACXksG,MAAO,gBAGTw3wB,EAAKjF,YACLiF,EAAKhF,eAGX,qBCrDA,SAASp02B,EAAOugK,GACd,OAAKA,EACa,kBAAPA,EAAwBA,EAE5BA,EAAGvgK,OAHM,IAIlB,CAsBA,SAASrC,IAAgB,QAAA2F,EAAAvD,UAAAlkB,OAAN6nB,EAAI,IAAAnG,MAAA+F,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJE,EAAIF,GAAAzD,UAAAyD,GAErB,OADeE,EAAKvY,KAAK/E,GAAM4Z,EAAO5Z,KAAI6b,KAAK,GAEjD,CAuBA,SAAS6q3B,EAAW1T,GAClB,MAAM0M,EAAY,CAChB,eAAgB,CACd,SACA,WACA,aACA,YACA,SACA,WACA,OACA,UACA,MACA,OACA,KACA,KACA,QACA,UACA,MACA,MACA,SACA,MACA,SACA,UACA,eACA,SACA,WACA,WACA,UACA,SACA,OACA,OACA,UAmBEgG,EAA0B,kBAC1BC,EAAiB,wCAEjBC,EAnER,WAAyB,QAAAvo3B,EAAA1D,UAAAlkB,OAAN6nB,EAAI,IAAAnG,MAAAkG,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,GAAA5D,UAAA4D,GAErB,MADe,IAAMD,EAAKvY,KAAK/E,GAAM4Z,EAAO5Z,KAAI6b,KAAK,KAAO,GAE9D,CAgEiB0z2B,CALgB,aACA,aAO7BmW,EACAC,GAGIE,EAAmBtu3B,EA7FlBA,EAAO,IA8FH,aA9FY,MA+FrBqu3B,EAxGJ,SAA0BzrtB,GACxB,OAAO5iK,EAAO,IAAK4iK,EAAI,KACzB,CAuGI2rtB,CAAiBvu3B,EAXU,UAazBqu3B,KAKJ,MAAMG,EAAmBxu3B,EACvB,IACAmu3B,EAAyB,IACzBC,EACA,UAGIK,EAAiC,CACrCxqxB,MAAOqqxB,EACP5T,QAAS,YAGLgU,EAAmBjT,EAAKtotB,QAAQs7tB,EAAgC,CACpE7W,SAhDe,CACfkM,QAAS,CACP,OACA,QACA,YACA,WA8CE6K,EAAiB,CACrB1qxB,MAAO,KACP72G,IAAK,MAIDwh4B,EAAO,CAEX723B,UAAW,OACXksG,MAAOuqxB,EACPt2pB,UAAW,EACXkjpB,OAAQ,CACNn3wB,MAAO,IACP72G,IAAK,IACLgu3B,OAAQ,CACNtw2B,SAAU,CACR2w2B,EAAKjF,YACLiF,EAAKtF,kBACLsF,EAAKxF,iBACLyY,EACAC,MAqBFE,EAAoB,CACxB/j3B,SAAU,CACR2w2B,EAAKjF,YACLiF,EAAKtF,kBACLsF,EAAKxF,iBAnBY,CAEnBhywB,MAAO,UACP2zwB,SAAU,CACRe,QAAS,MAEXvr3B,IAAK,KACL0d,SAAU,CACR,CAEEm5F,MAAO,SAWT2qxB,EACAF,EACAC,GAEF5O,WAAW,GAMP+O,EAA0BrT,EAAKtotB,QAAQs7tB,EAAgC,CAC3E123B,UAAW,OACX6/2B,SAAUuQ,EACV/M,OAAQK,EAAKtotB,QAAQ07tB,EAAmB,CACtCzh4B,IAAK,SAITuh4B,EAAe7j3B,SAAW,CAACgk3B,GAE3B,MAAMC,EAAkCtT,EAAKtotB,QAAQs7tB,EAAgC,CACnF7W,SAAUuQ,EACVpw3B,UAAW,OACXqj3B,OAAQK,EAAKtotB,QAAQ07tB,EAAmB,CACtCzh4B,IAAK,WAIH4h4B,EAAkCvT,EAAKtotB,QAAQs7tB,EAAgC,CACnF7W,SAAUuQ,EACVpw3B,UAAW,SAGPk33B,EAA0BxT,EAAKtotB,QAAQs7tB,EAAgC,CAC3E123B,UAAW,OACX6/2B,SAAUuQ,EACV/M,OAAQK,EAAKtotB,QAAQ07tB,EAAmB,CACtCzh4B,IAAK,WAaT,MAAO,CACL1P,KAAM,aACNuqL,QAAS,CACP,MACA,WACA,kBACA,YAEFixsB,kBAAkB,EAClByF,YAAa,MACb7z2B,SAAU,CAnBsC,CAChDm5F,MAAO,SACP84J,MAAM,GAEiD,CACvD94J,MAAO,eACP84J,MAAM,GAgBJ0+mB,EAAKh2wB,QAAQ,UAAW,UACxBg2wB,EAAKh2wB,QAAQ,QAAS,QACtB,CAEE1tG,UAAW,eACXksG,MAAO,iBACP72G,IAAK,WACL0d,SAAU,CAACik3B,GACX3T,OAAQ,CACNhu3B,IAAK,aACL2y3B,WAAW,EACXpB,YAAa,QAGjB,CAEE5m3B,UAAW,eACXksG,MAAO,aACP72G,IAAK,WACL0d,SAAU,CAACkk3B,IAEb,CAEEj33B,UAAW,eACXksG,MAAO,QACP72G,IAAK,OACL0d,SAAU,CAACik3B,IAEb,CACEh33B,UAAW,eACXksG,MAAO,mBACP72G,IAAK,OACLwq3B,SAAU,QAEZ,CACE7/2B,UAAW,eACXksG,MAAO,kBACP72G,IAAK,OACLwq3B,SAAU,WAEZ,CAEE7/2B,UAAW,eACXksG,MAAO,SACP72G,IAAK,OACL0d,SAAU,CAACkk3B,IAEb,CAEEj33B,UAAW,oBACXksG,MAAO,SACP72G,IAAK,SACL0d,SAAU,CAACmk3B,IAEb,CAEEl33B,UAAW,oBACXksG,MAAO,OACP72G,IAAK,OACL0d,SAAU,CAACmk3B,KAInB,CA8BA1srB,EAAOrtL,QApBP,SAAkBum2B,GAChB,MAAMz3sB,EAAamrtB,EAAW1T,GAgB9B,OAdAz3sB,EAAWtmL,KAAO,WAUd+93B,EAAKK,YAAY,gBACnB93sB,EAAW05sB,mBAAoB,GAG1B15sB,CACT,qBCzUA,SAAShkK,IAAgB,QAAA2F,EAAAvD,UAAAlkB,OAAN6nB,EAAI,IAAAnG,MAAA+F,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJE,EAAIF,GAAAzD,UAAAyD,GAErB,OADeE,EAAKvY,KAAK/E,IAAM4Z,OAZjBugK,EAYwBn6K,GAVpB,kBAAPm6K,EAAwBA,EAE5BA,EAAGvgK,OAHM,KADlB,IAAgBugK,CAY0B,IAAEt+J,KAAK,GAEjD,CAiGAi+L,EAAOrtL,QAvFP,SAAcum2B,GACZ,MAAMntG,EAAU,oBAEVzpR,EAAS,CACb9sf,UAAW,YACXksG,MAAOjkG,EAAO,IAHI,wBAGc,cAChCo72B,OAAQ,CACNtw2B,SAAU,CACR,CACE/S,UAAW,cACXksG,MAAO,KACPi0H,UAAW,EACXkjpB,OAAQ,CACNhu3B,IAAK,IACL8qO,UAAW,OAMfk3pB,EAAmB,CACvBvqY,EACA,CACE5gZ,MAAO,SACPm3wB,OAAQ,CAAEuD,YAAa,GAAI7D,gBAAgB,KAI/C,MAAO,CACLp93B,KAAM,OACNuqL,QAAS,CAAC,SACViusB,QAAS,KACTpr2B,SAAU,CAER,CACEm5F,MAAO,OAASqqqB,EAAU,WAC1BlhxB,IAAK,IACL0d,SAAU,CACR,CACE/S,UAAW,OACXksG,MAAOqqqB,GAET,CACEv2wB,UAAW,SAAUksG,MAAO,iBAGhCm3wB,OAAQ,CACNhu3B,IAAK,OACL8o3B,QAAS,KACTpr2B,SAAUsk3B,IAId,CACEnrxB,MAAO,oBAAsBqqqB,EAAU,KACvClhxB,IAAK,IACL0d,SAAU,CACR,CACE/S,UAAW,SACXksG,MAAO,IACP72G,IAAK,IACLuy3B,cAAc,EACdK,YAAY,GAEd,CACEjo3B,UAAW,OACXksG,MAAOqqqB,GAET,CACEv2wB,UAAW,UACXksG,MAAO,WAGXm3wB,OAAQ,CACNhu3B,IAAK,OACL8o3B,QAAS,KACTpr2B,SAAUsk3B,IAId3T,EAAKtotB,QAAQ0xV,EAAQ,CACnB3sR,UAAW,KAInB,qBCVA31B,EAAOrtL,QApGP,SAAYum2B,GACV,IAAI+L,EAAc,wBACdC,EAAY,IAAMD,EAAc,KAAOA,EAAc,WACrD5P,EAAW,CACb6C,SAAUgN,EACV,eAEE,okEAiCAE,EAAS,CACX1jxB,MAAOwjxB,EACPvvpB,UAAW,GAET+3T,EAAS,CACXl4hB,UAAW,SAAUksG,MAPA,sBAQrBi0H,UAAW,GAET03T,EAAS6rV,EAAKtotB,QAAQsotB,EAAKtF,kBAAmB,CAACD,QAAS,OACxDzwwB,EAAUg2wB,EAAKh2wB,QACjB,IACA,IACA,CACEyyH,UAAW,IAGXorpB,EAAU,CACZvr3B,UAAW,UACXksG,MAAO,mCAEL2jxB,EAAa,CACf3jxB,MAAO,WAAY72G,IAAK,YAEtBy63B,EAAO,CACT9v3B,UAAW,UACXksG,MAAO,MAAQwjxB,GAEbK,EAAWrM,EAAKh2wB,QAAQ,SAAU,OAClCxW,EAAM,CACRl3F,UAAW,SACXksG,MAAO,WAAawjxB,GAElBM,EAAO,CACT9jxB,MAAO,MAAO72G,IAAK,OAEjB63f,EAAO,CACT61X,gBAAgB,EAChB5ipB,UAAW,GAETghN,EAAO,CACTnhb,UAAW,OACXmgO,UAAW,EACX0/oB,SAAUA,EACV3zwB,MAAOwjxB,EACPrM,OAAQn2X,GAEN+iY,EAAmB,CAACD,EAAMn4V,EAAQi4V,EAAMC,EAAUrixB,EAASxW,EAAK24xB,EAAY33V,EAAQqzV,EAASqE,GAMjG,OAJAI,EAAKj92B,SAAW,CAAC2w2B,EAAKh2wB,QAAQ,UAAW,IAAKyzU,EAAM+rE,GACpDA,EAAKn6e,SAAWk92B,EAChBJ,EAAW982B,SAAWk92B,EAEf,CACLtq4B,KAAM,KACNuqL,QAAS,CAAC,UACViusB,QAAS,KACTpr2B,SAAU,CAAC2w2B,EAAKvE,UAAW6Q,EAAMn4V,EAAQi4V,EAAMC,EAAUrixB,EAASxW,EAAK24xB,EAAY33V,EAAQqzV,GAE/F,qBCrCA/grB,EAAOrtL,QA9DP,SAAiBum2B,GAGf,MAAO,CACL/93B,KAAM,WACNuqL,QAAS,CAAC,MACVixsB,kBAAkB,EAClBtB,SAAU,CAERe,QAEE,oJASJ7t2B,SAAU,CACR,CACE/S,UAAW,SACXksG,MAAO,IACP72G,IAAK,IACL8qO,UAAW,EACXptN,SAAU,CACR,CACE/S,UAAW,QACXksG,MA5BY,MA6BZ72G,IA5BU,SAgChB,CACE2K,UAAW,UACXksG,MAAO,8CACP72G,IAAK,KAEP,CAGE62G,MAAO,mEACP72G,IAAK,IACL0d,SAAU,CACR,CAEEm5F,MAAO,UACP72G,IAAK,SAIX,CACE2K,UAAW,UACXksG,MArDgB,MAsDhB72G,IArDc,MAsDd0d,SAAU,CAAC,UAInB,qBC1DA,SAASzI,EAAOugK,GACd,OAAKA,EACa,kBAAPA,EAAwBA,EAE5BA,EAAGvgK,OAHM,IAIlB,CAcA,SAASrC,IAAgB,QAAA2F,EAAAvD,UAAAlkB,OAAN6nB,EAAI,IAAAnG,MAAA+F,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJE,EAAIF,GAAAzD,UAAAyD,GAErB,OADeE,EAAKvY,KAAK/E,GAAM4Z,EAAO5Z,KAAI6b,KAAK,GAEjD,CA6IAi+L,EAAOrtL,QAvHP,SAAaum2B,GACX,MAAM8H,EAAU,CACdxr3B,UAAW,SACXmgO,UAAW,EACXp0D,SAAU,CACR,CACE7/D,MAAO,wBAET,CACEA,MAAOw3wB,EAAK5F,aAIZ4N,EAAWhI,EAAKh2wB,UACtBg+wB,EAAS3/sB,SAAW,CAClB,CACE7/D,MAAO,IACP72G,IAAK,KAEP,CACE62G,MAAO,IACP72G,IAAK,MAGT,MAAMii4B,EAAY,CAChBt33B,UAAW,WACX+rK,SAAU,CACR,CACE7/D,MAAO,qBAET,CACEA,MAAO,iBAIPikxB,EAAW,CACfnw3B,UAAW,UACXksG,MAAO,gCAEHu/wB,EAAU,CACdzr3B,UAAW,SACX+S,SAAU,CAAC2w2B,EAAKzF,kBAChBlysB,SAAU,CACR,CACE7/D,MAAO,MACP72G,IAAK,MACL8qO,UAAW,IAEb,CACEj0H,MAAO,MACP72G,IAAK,MACL8qO,UAAW,IAEb,CACEj0H,MAAO,IACP72G,IAAK,KAEP,CACE62G,MAAO,IACP72G,IAAK,OAIL+hiB,EAAQ,CACZlrb,MAAO,KACP72G,IAAK,KACL0d,SAAU,CACR242B,EACAyE,EACAmH,EACA7L,EACAD,EACA,QAEFrrpB,UAAW,GAMPo3pB,EA7FR,WAAyB,QAAAxp3B,EAAA1D,UAAAlkB,OAAN6nB,EAAI,IAAAnG,MAAAkG,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,GAAA5D,UAAA4D,GAErB,MADe,IAAMD,EAAKvY,KAAK/E,GAAM4Z,EAAO5Z,KAAI6b,KAAK,KAAO,GAE9D,CA0FkB0z2B,CAHC,iBACe,gBACA,WAShC,MAAO,CACLt63B,KAAM,iBACNuqL,QAAS,CAAC,QACVixsB,kBAAkB,EAClBhD,QAAS,KACTpr2B,SAAU,CACR242B,EACA,CACE1r3B,UAAW,UACXksG,MAAO,MACP72G,IAAK,OAEP,CACE62G,MAlBajkG,EACjBsv3B,EAAS,eAAgBA,EAAS,KApH7Btv3B,EAAO,MAqHF,gBArHa,MAsInBjI,UAAW,OACXqj3B,OAAQ,CACNhu3B,IAAK,IACL0d,SAAU,CACR242B,EACAt0V,EACA+4V,EACAmH,EACA7L,EACAD,MAMZ,qBCtJA,SAASvj3B,IAAgB,QAAA2F,EAAAvD,UAAAlkB,OAAN6nB,EAAI,IAAAnG,MAAA+F,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJE,EAAIF,GAAAzD,UAAAyD,GAErB,OADeE,EAAKvY,KAAK/E,IAAM4Z,OAZjBugK,EAYwBn6K,GAVpB,kBAAPm6K,EAAwBA,EAE5BA,EAAGvgK,OAHM,KADlB,IAAgBugK,CAY0B,IAAEt+J,KAAK,GAEjD,CAqHAi+L,EAAOrtL,QA1GP,SAAgBum2B,GACd,MAOMsR,EAAyB,gBACzBC,EAAsB,kBACtB/8V,EAAS,CACbl4hB,UAAW,SACX+rK,SAAU,CACR,CACE7/D,MAAOjkG,EAAO,QAAS,UAAWgt3B,EAAqBD,IAEzD,CACE9oxB,MAAOjkG,EAAO,QAASgt3B,EAAqBD,IAE9C,CACE9oxB,MAAOjkG,EAAO,QAASgt3B,EAAqBD,KAGhD70pB,UAAW,GAiDb,MAAO,CACLx6O,KAAM,SACNw73B,kBAAkB,EAClBtB,SAjDiB,CACjBkM,QAAS,iBACTnL,QAAS,o6DAuBT+K,SAAU,q+DAyBVxN,QAAS,OACTpr2B,SAAU,CACR2w2B,EAAKtotB,QAAQsotB,EAAKxF,iBAAkB,CAClCl+2B,UAAW,SACXmgO,UAAW,IAEbujpB,EAAKtotB,QAAQsotB,EAAKtF,kBAAmB,CACnCp+2B,UAAW,SACXmgO,UAAW,IAEb,CACEngO,UAAW,WACX2/2B,cAAe,8BACfxB,QAAS,WACTpr2B,SAAU,CACR2w2B,EAAK3E,sBA1FE,CACb/+2B,UAAW,SACXksG,MAAO,MACP72G,IAAK,SA2FHqu3B,EAAKh2wB,QAAQ,IAAK,IAAK,CACrByyH,UAAW,IAEbujpB,EAAKh2wB,QAAQ,YAAa,UAAW,CACnCyyH,UAAW,KAEb+3T,GAGN,mBC4/FA1tV,EAAOrtL,QA/nGP,SAAcum2B,GAEZ,MAAM7F,EAAsB,sGA2+FtB2N,EAAU,CACdxr3B,UAAW,SACXksG,MAAOw3wB,EAAK5F,UACZ39oB,UAAW,GAIPsrpB,EAAU,CACdzr3B,UAAW,SACX+rK,SAAU,CACR,CACE7/D,MAAO,IACP72G,IAAK,KAEP,CACE62G,MAAO,IACP72G,IAAK,OAMLmi4B,EAAU,CACdx33B,UAAW,SACXksG,MAAO,4DACPi0H,UAAW,GA4BPurpB,EAAW,CACf3/sB,SAAU,CAzBmB,CAC7B/rK,UAAW,UACXksG,MAAO,KACP72G,IAAK,IACL8qO,UAAW,EACXptN,SAAU,CACR2w2B,EAAKrF,mBACLmZ,IAK4B,CAC9Bx33B,UAAW,UACXksG,MAAO,OACP72G,IAAK,OACL8qO,UAAW,EACXptN,SAAU,CACR2w2B,EAAKrF,mBACLmZ,MAaEpK,EAAW,CACf1K,SAAU7E,EACV+C,QAniGA,kaAoiGA+K,SAzEc3gT,qwwDA0EdpiC,MAnXA,+nBAoXAmjV,QArEc,wBAyEV0L,EAAU,CACdvrxB,MAAO,UAAYw3wB,EAAK7F,oBACxBgC,SAAUuN,EACVjtpB,UAAW,GAIPg9Y,EAAQ,CACZn9mB,UAAW,OACXksG,MAAO,YAjVP,qrHAiVgCr2E,OAAO3vC,QAAQ,MAAO,KAAO,IAC7DmP,IAAK,WACL4y3B,YAAY,GAIRqP,EAAY,CAChBt33B,UAAW,WACX6/2B,SAAUuN,EACVlhxB,MAAO2xwB,EACP19oB,UAAW,EACXptN,SAAU,CACRoqmB,EACAs6Q,IAKE1J,EAAiB2J,wGAgCvB,MAAO,CACL/x4B,KAAM,OACNw73B,kBAAkB,EAClBtB,SAAUuN,EACVjP,QAAS,0BACTpr2B,SAAU,CAtBM,CAChB/S,UAAW,WACXksG,MAAO6hxB,EACP143B,IAAK,OACLwy3B,aAAa,EACbhI,SAAUuN,EACVjP,QAAS,yBACTpr2B,SAAU,CApBO,CACjB/S,UAAW,QACX6/2B,SAAU,CACR6C,SAAU7E,EACV8N,SA50BF,u/lBA80BAz/wB,MAAO6hxB,EACP143B,IAAK,MACLwy3B,aAAa,EACbI,YAAY,GAaVwP,EACAH,EACA7L,EACAD,EACAE,IAWAvuQ,EACAs6Q,EACAH,EACA7L,EACAD,EACAE,GAGN,qBCnoGA,IAAIiM,EAAgB,kBAChBC,EAAQ,OAAMD,KACdE,EAAY,8BACZC,EAAU,CACZ933B,UAAW,SACX+rK,SAAU,CAGR,CAAE7/D,MAAQ,QAAOyrxB,OAAmBC,aAAgBA,gBACrCD,gBAEf,CAAEzrxB,MAAQ,OAAMyrxB,OAAmBC,iCACnC,CAAE1rxB,MAAQ,IAAG0rxB,gBACb,CAAE1rxB,MAAQ,OAAMyrxB,eAGhB,CAAEzrxB,MAAQ,aAAY2rxB,WAAmBA,UAAkBA,gBAC5CF,gBAGf,CAAEzrxB,MAAO,kCAGT,CAAEA,MAAQ,YAAW2rxB,cAGrB,CAAE3rxB,MAAO,0BAGT,CAAEA,MAAO,kCAEXi0H,UAAW,GAoJb31B,EAAOrtL,QA1IP,SAAcum2B,GACZ,IAAIqU,EAAgB,iDAChBC,EAAmBD,EAAgB,KAAOA,EAAgB,aAAeA,EAAgB,QACzF3K,EAAW,iWAMX6K,EAAa,CACfj43B,UAAW,OACXksG,MAAO,IAAM6rxB,EACbhl3B,SAAU,CACR,CACEm5F,MAAO,KACP72G,IAAK,KACL0d,SAAU,CAAC,WAIjB,MAAMmlhB,EAAS4/V,EAEf,MAAO,CACLny4B,KAAM,OACNuqL,QAAS,CAAC,OACV2vsB,SAAUuN,EACVjP,QAAS,QACTpr2B,SAAU,CACR2w2B,EAAKh2wB,QACH,UACA,OACA,CACEyyH,UAAW,EACXptN,SAAU,CACR,CAEEm5F,MAAO,OAAQi0H,UAAW,GAE5B,CACEngO,UAAW,SACXksG,MAAO,iBAMf,CACEA,MAAO,wBACP2zwB,SAAU,SACV1/oB,UAAW,GAEbujpB,EAAKpF,oBACLoF,EAAKnF,qBACLmF,EAAKxF,iBACLwF,EAAKtF,kBACL,CACEp+2B,UAAW,QACX2/2B,cAAe,uBAAwBtq3B,IAAK,QAAS4y3B,YAAY,EAKjE9npB,UAAW,EACX0/oB,SAAU,uBACV1B,QAAS,WACTpr2B,SAAU,CACR,CAAE4s2B,cAAe,sBACjB+D,EAAK3E,wBAGT,CAGEY,cAAe,wBACfx/oB,UAAW,GAEb,CACEngO,UAAW,QACXksG,MAAO,aAAew3wB,EAAK7F,oBAAsB,UACjDgK,aAAa,EACbI,YAAY,EACZ5y3B,IAAK,QACLwq3B,SAAUuN,EACVr62B,SAAU,CACR,CAAE4s2B,cAAe,UACjB,CACEzzwB,MAAOw3wB,EAAK7F,oBAAsB,UAClCgK,aAAa,EACb1npB,UAAW,EACXptN,SAAU,CAAC2w2B,EAAK3E,wBAElB,CACE/+2B,UAAW,SACXksG,MAAO,KAAM72G,IAAK,KAClBwq3B,SAAUuN,EACVjtpB,UAAW,EACXptN,SAAU,CACR2w2B,EAAKnF,uBAGTmF,EAAKpF,oBACLoF,EAAKnF,uBAGT,CACEv+2B,UAAW,WACXksG,MAAO,IAAM8rxB,EAAmB,SAAWtU,EAAK7F,oBAAsB,UAAWgK,aAAa,EAAMxy3B,IAAK,QACzG4y3B,YAAY,EACZpI,SAAUuN,EACVr62B,SAAU,CACR,CACEm5F,MAAOw3wB,EAAK7F,oBAAsB,UAAWgK,aAAa,EAC1D1npB,UAAW,EACXptN,SAAU,CAAC2w2B,EAAK3E,wBAElB,CACE/+2B,UAAW,SACXksG,MAAO,KAAM72G,IAAK,KAClBwq3B,SAAUuN,EACVjtpB,UAAW,EACXptN,SAAU,CACRkl3B,EACAvU,EAAKxF,iBACLwF,EAAKtF,kBACLlmV,EACAwrV,EAAKnF,uBAGTmF,EAAKpF,oBACLoF,EAAKnF,uBAGTrmV,EACA+/V,GAGN,qBClLA,MAAMra,EAAW,2BACXwP,EAAW,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,WAEI+C,EAAW,CACf,OACA,QACA,OACA,YACA,MACA,YAoFIC,EAAY,GAAGno3B,OAlCI,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,YAGyB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,SACA,UA9EY,CACZ,OACA,WACA,SACA,OACA,OACA,SACA,SACA,SACA,WACA,UACA,QACA,SACA,MACA,MACA,UACA,UACA,QACA,UACA,OACA,UACA,eACA,aACA,aACA,YACA,cACA,cACA,eACA,QACA,aACA,oBACA,cACA,gBACA,iBACA,UAGkB,CAClB,YACA,gBACA,aACA,iBACA,cACA,YACA,aAgEF,SAASiq3B,EAAUrntB,GACjB,OAAO5iK,EAAO,MAAO4iK,EAAI,IAC3B,CAMA,SAAS5iK,IAAgB,QAAA2F,EAAAvD,UAAAlkB,OAAN6nB,EAAI,IAAAnG,MAAA+F,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJE,EAAIF,GAAAzD,UAAAyD,GAErB,OADeE,EAAKvY,KAAK/E,IAAM4Z,OApBjBugK,EAoBwBn6K,GAlBpB,kBAAPm6K,EAAwBA,EAE5BA,EAAGvgK,OAHM,KADlB,IAAgBugK,CAoB0B,IAAEt+J,KAAK,GAEjD,CA+aAi+L,EAAOrtL,QAraP,SAAoBum2B,GAQlB,MAMMwU,EAAata,EACbua,EACG,KADHA,EAEC,MAEDC,EAAU,CACdlsxB,MAAO,sBACP72G,IAAK,4BAKLgj4B,kBAAmBA,CAAC3vxB,EAAOz/G,KACzB,MAAMqv4B,EAAkB5vxB,EAAM,GAAGviH,OAASuiH,EAAM/vF,MAC1C43K,EAAW7nF,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KzF,kBAChBE,QAAS,OAEXuF,EAAKtotB,QAAQ29tB,EAAiB,CAC5B7sxB,MAAO,OAETjkG,OAAO6w3B,GACT3a,QAAS,OAEL/mV,EAAQ,CACZlrb,MAAO,MACP72G,IAAK,MACL0d,SAAU,CAAC2w2B,EAAKtotB,QAAQ29tB,IACxB5a,QAAS,OAMX,OAJAhhQ,EAAMh2mB,KAAKoo3B,EAAQn4V,GACnB0hW,EAAiBvu3B,SAAQ,SAASg5B,GAChC45kB,EAAMh2mB,KAAKo8B,EACb,IACO,CACL59C,KAAM,OACNotB,SAAUoqmB,EACV0iQ,SAAUsQ,EACVhS,QAAS,MAEb,qBCXA3zqB,EAAOrtL,QAzBP,SAAmBum2B,GACjB,MAAO,CACL/93B,KAAM,aACNotB,SAAU,CACR,CACE/S,UAAW,OACXksG,MAAO,UACPi0H,UAAW,GACXkjpB,OAAQ,CAGNhu3B,IAAK,cACLux3B,YAAa,SAOjB12sB,QAAS,CAAC,eAIhB,qBCgXAs6B,EAAOrtL,QAvZP,SAAeum2B,GAOb,IAAIsV,EAAmB,uDAoTnB5L,EAAW,CACb1K,SAAUsW,EACVpY,QA1SiB,CACjB,aACA,QACA,QACA,QACA,QACA,QACA,WACA,KACA,OACA,SACA,MACA,SACA,QACA,UACA,MACA,WACA,SACA,KACA,SACA,KACA,MACA,MACA,QACA,QACA,SACA,QACA,SACA,OACA,MACA,QACA,QACA,SA2QAmL,QAzPiB,CACjB,OACA,SACA,aACA,aACA,MACA,MACA,QACA,QACA,QACA,gBACA,YACA,YACA,MACA,QACA,QACA,QACA,eACA,YACA,YACA,gBACA,eACA,uBACA,qBACA,cACA,UACA,YACA,UACA,QACA,KACA,UACA,UACA,KACA,SACA,QACA,SACA,OACA,QACA,SACA,UAmNAJ,SAjMkB,CAClB,gBACA,kBACA,eACA,eACA,kBACA,gBACA,qBACA,iBACA,gBACA,cACA,iBACA,oBACA,mBACA,iBACA,MACA,gBACA,QACA,iBACA,WACA,SACA,WACA,YACA,SACA,YACA,OACA,cACA,oBACA,iBACA,mBACA,QACA,UACA,SACA,UACA,OACA,OACA,YACA,QACA,YACA,MACA,QACA,UACA,aACA,aACA,aACA,qBACA,YACA,aACA,SACA,UACA,WACA,UACA,SACA,QACA,aACA,SACA,aACA,UACA,QACA,WACA,WACA,WACA,aACA,cACA,gBACA,cACA,OACA,oBACA,OACA,cACA,cACA,WACA,OACA,iBACA,YACA,qBACA,OACA,UACA,UACA,UACA,WACA,YACA,OACA,KACA,WACA,YACA,WACA,SACA,iBACA,cACA,aACA,eACA,YACA,MACA,SACA,QACA,QACA,QACA,OACA,UACA,qBACA,wBACA,aACA,WACA,WACA,iBACA,gBACA,YACA,OACA,SACA,SACA,cACA,UACA,mBACA,SACA,SACA,aACA,UACA,SACA,eACA,mBACA,gBACA,OACA,mBACA,oBACA,OACA,yBACA,MACA,YACA,WACA,QACA,sBACA,OACA,gBACA,MACA,QACA,aACA,eACA,oBACA,MACA,SACA,OACA,qBACA,YACA,eACA,eACA,gBACA,kBACA,gBACA,SACA,mBACA,WACA,YACA,qBACA,SACA,cACA,OACA,sBACA,OACA,cACA,QACA,QACA,OACA,YACA,UACA,OACA,UACA,SACA,SACA,SACA,QACA,mBACA,oBACA,gBACA,gBACA,QACA,WACA,YACA,WACA,MACA,SACA,aACA,WACA,SACA,gBACA,cACA,YAWEsN,EAAU,CACZpZ,SAAUuN,EAAUjP,QAAS,OAsB3B+a,EAAgB,CAClBl53B,UAAW,QACXksG,MAAO,OAAQ72G,IAAK,KACpBwq3B,SAAUuN,GAGR+L,EAAwB,CAC1Bn53B,UAAW,WACXksG,MAAO,MAAQ8sxB,GAIbnhW,EAAS,CACX73hB,UAAW,SACX+S,SAAU,CAAC2w2B,EAAKzF,iBAAkBib,EAAeC,GACjDpttB,SAAU,CACR,CAAE7/D,MAAO,SAAU72G,IAAK,SAAU8qO,UAAW,IAC7C,CAAEj0H,MAAO,OAAQ72G,IAAK,UAItB+j4B,EAAU,CACZp53B,UAAW,SACX+S,SAAU,CAAC2w2B,EAAKzF,iBAAkBib,EAAeC,GACjDjtx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XksG,MAAO,OACP72G,IAAK,KACL4y3B,YAAY,EACZ5E,OAAQ,CACNhu3B,IAAK,IACL8qO,UAAW,IAGf,CACEngO,UAAW,UACXksG,MAAO,KACP72G,IAAK,KAEPqu3B,EAAKlF,mBAGX,qBCSAh0qB,EAAOrtL,QA1CP,SAAcum2B,GACZ,MAAO,CACL/93B,KAAM,OACNotB,SAAU,CACR,CACE/S,UAAW,WACXksG,MAAO,qBACP72G,IAAK,MACLwy3B,aAAa,EACbI,YAAY,EACZl12B,SAAU,CACR,CACE/S,UAAW,UACXksG,MAAO,MAET,CACElsG,UAAW,QACXksG,MAAO,0BAET,CACElsG,UAAW,SACXksG,MAAO,MACP72G,IAAK,MACLiy3B,YAAY,EACZv02B,SAAU,CACR,CACE/S,UAAW,SACXksG,MAAO,IACP72G,IAAK,KAEP,CACE2K,UAAW,WACXksG,MAAO,+BAQvB,qBC9CA,MAuBM2lxB,EAAO,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,EAAiB,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,EAAiB,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,EAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,kBAGIC,EAAa,CACjB,gBACA,cACA,aACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,OACA,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,QACA,OACA,YACA,QACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,oBACA,gBACA,SACA,YACA,UACA,cACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,eACA,yBACA,0BACA,cACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,UACA,UACA,kBACA,OACA,iBACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,gBACA,cACA,eACA,aACA,QACA,OACA,aACA,YACA,aACA,YACA,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,cACA,qBACA,iBACA,WACA,SACA,SACA,QACA,MACA,WACA,eACA,aACA,kBACA,kBACA,wBACA,uBACA,wBACA,cACA,gBACA,iBACA,cACA,iBACA,0BACA,MACA,YACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,eACA,iBACA,aACA,cACA,SACA,QACA,aACA,eACA,YACA,WAGA9x1B,UAGIq71B,EAAmBzJ,EAAe9p3B,OAAO+p3B,GA4O/CxnrB,EAAOrtL,QAjOP,SAAcum2B,GACZ,MAAM1ssB,EAzbO0ssB,KACN,CACLyO,UAAW,CACTny3B,UAAW,OACXksG,MAAO,cAETkmxB,SAAU,CACRpy3B,UAAW,SACXksG,MAAO,oCAETmmxB,wBAAyB,CACvBry3B,UAAW,gBACXksG,MAAO,KACP72G,IAAK,KACL8o3B,QAAS,IACTpr2B,SAAU,CACR2w2B,EAAKxF,iBACLwF,EAAKtF,sBAwaG56C,CAAMkgD,GACd+X,EAAqBD,EAGrB5d,EAAW,UACX8d,EAAkB,IAAM9d,EAAW,QAAUA,EAAW,OAIxD+d,EAAQ,GAAUC,EAAc,GAEhCC,EAAc,SAASr14B,GAC3B,MAAO,CAELwZ,UAAW,SACXksG,MAAO,KAAO1lH,EAAI,MAAQA,EAE9B,EAEMs14B,EAAa,SAASn24B,EAAMumH,EAAOi0H,GACvC,MAAO,CACLngO,UAAWra,EACXumH,MAAOA,EACPi0H,UAAWA,EAEf,EAEM47pB,EAAc,CAClBrZ,SAAU,UACV9B,QA1BmB,kBA2BnBv5yB,UAAWyqzB,EAAevl3B,KAAK,MAG3Byv3B,EAAc,CAElB9vxB,MAAO,MACP72G,IAAK,MACL0d,SAAU6o3B,EACV/b,SAAUkc,EACV57pB,UAAW,GAIby7pB,EAAYz03B,KACVu82B,EAAKpF,oBACLoF,EAAKnF,qBACLsd,EAAY,KACZA,EAAY,KACZnY,EAAK9E,gBACL,CACE1ywB,MAAO,oBACPm3wB,OAAQ,CACNrj3B,UAAW,SACX3K,IAAK,WACL4y3B,YAAY,IAGhBjxsB,EAAMo7sB,SACN4J,EACAF,EAAW,WAAY,MAAQle,EAAU,IACzCke,EAAW,WAAY,OAASle,EAAW,OAC3Cke,EAAW,WAAY,cACvB,CACE973B,UAAW,YACXksG,MAAO0xwB,EAAW,QAClBvo3B,IAAK,IACLwy3B,aAAa,EACbI,YAAY,GAEdjxsB,EAAMm7sB,WAGR,MAAM8J,EAAsBL,EAAY3z3B,OAAO,CAC7CikG,MAAO,KACP72G,IAAK,KACL0d,SAAU4o3B,IAGNO,EAAmB,CACvBvc,cAAe,OACfoD,gBAAgB,EAChBhw2B,SAAU,CACR,CACE4s2B,cAAe,YAEjB132B,OAAO2z3B,IAKLO,EAAY,CAChBjwxB,MAAOwvxB,EAAkB,QACzB7T,aAAa,EACbxy3B,IAAK,OACL8qO,UAAW,EACXptN,SAAU,CACR,CACEm5F,MAAO,uBAET,CACElsG,UAAW,YACXksG,MAAO,OAAS+lxB,EAAW1l3B,KAAK,KAAO,OACvClX,IAAK,QACLgu3B,OAAQ,CACNN,gBAAgB,EAChB5E,QAAS,QACTh+oB,UAAW,EACXptN,SAAU6o3B,MAMZQ,EAAe,CACnBp83B,UAAW,UACXksG,MAAO,2GACPm3wB,OAAQ,CACNhu3B,IAAK,QACLwq3B,SAAUkc,EACV/T,WAAW,EACXj12B,SAAU6o3B,EACVz7pB,UAAW,IAKTk8pB,EAAgB,CACpBr83B,UAAW,WACX+rK,SAAU,CAKR,CACE7/D,MAAO,IAAM0xwB,EAAW,QACxBz9oB,UAAW,IAEb,CACEj0H,MAAO,IAAM0xwB,IAGjByF,OAAQ,CACNhu3B,IAAK,OACL2y3B,WAAW,EACXj12B,SAAUkp3B,IAIRK,EAAgB,CAIpBvwtB,SAAU,CACR,CACE7/D,MAAO,eACP72G,IAAK,SAEP,CACE62G,MAAOwvxB,EACPrm4B,IAAK,OAGTwy3B,aAAa,EACbG,WAAW,EACX7J,QAAS,WACTh+oB,UAAW,EACXptN,SAAU,CACR2w2B,EAAKpF,oBACLoF,EAAKnF,qBACL2d,EACAJ,EAAW,UAAW,UACtBA,EAAW,WAAY,OAASle,EAAW,OAC3C,CACE1xwB,MAAO,OAAS2lxB,EAAKtl3B,KAAK,KAAO,OACjCvM,UAAW,gBAEb873B,EAAW,eAAgBJ,EAAkB,KAAM,GACnDI,EAAW,cAAe,IAAMJ,GAChCI,EAAW,iBAAkB,MAAQJ,EAAiB,GACtDI,EAAW,eAAgB,IAAK,GAChC9ktB,EAAMq7sB,wBACN,CACEry3B,UAAW,kBACXksG,MAAO,KAAO6lxB,EAAexl3B,KAAK,KAAO,KAE3C,CACEvM,UAAW,kBACXksG,MAAO,MAAQ8lxB,EAAgBzl3B,KAAK,KAAO,KAE7C,CACE2/F,MAAO,MACP72G,IAAK,MACL0d,SAAUkp3B,GAEZ,CACE/vxB,MAAO,gBAKPqwxB,EAAuB,CAC3BrwxB,MAAO0xwB,EAAW,QAAW,IAAG6d,EAAmBlv3B,KAAK,QACxDs72B,aAAa,EACb902B,SAAU,CAAEup3B,IAad,OAVAX,EAAMx03B,KACJu82B,EAAKpF,oBACLoF,EAAKnF,qBACL6d,EACAC,EACAE,EACAJ,EACAG,GAGK,CACL324B,KAAM,OACNw73B,kBAAkB,EAClBhD,QAAS,cACTpr2B,SAAU4o3B,EAEd,qBCziBAnxrB,EAAOrtL,QAvGP,SAAcum2B,GACZ,IAAI8Y,EAAgB,sDAChBC,EAAS,cACTC,EAAwB,qEACxBnR,EAAU,CACZvr3B,UAAW,UACXksG,MAAO,oBAELgsb,EAAS,CACXl4hB,UAAW,SACX+rK,SAAU,CACR,CAAC7/D,MAAOwwxB,EAAuBv8pB,UAAW,GAC1C,CAACj0H,MAAO,0BACR,CAACA,MAAO,0BACR,CAACA,MAAO,sCACR,CAACA,MAAO,YAAcwwxB,EAAwB,KAAOA,EAAuBrn4B,IAAK,SAGjFwiiB,EAAS6rV,EAAKtotB,QAAQsotB,EAAKtF,kBAAmB,CAACD,QAAS,OACxDzwwB,EAAUg2wB,EAAKh2wB,QACjB,IAAK,IACL,CACEyyH,UAAW,IAGX0upB,EAAW,CACb3ixB,MAAO,MAAO72G,IAAK,OAEjBg23B,EAAU,CACZrr3B,UAAW,SACXksG,MAAO,OAASswxB,GAEdG,EAAQ,CACVzwxB,MAAOswxB,EACPr8pB,UAAW,GAETy8pB,EAAM,CACR1wxB,MAAOuwxB,GAMLI,EAAS,CACX9p3B,SAAU,CAACmlhB,EAAQL,EAAQg3V,EAAUxD,EALrB,CAChBn/wB,MAAO,MAAO72G,IAAK,MACnB0d,SAAU,CAAC,OAAQw42B,EAAS1zV,EAAQK,EAAQykW,IAGeA,GAC3D5wtB,SAAU,CACR,CACE7/D,MAAO,UAAY72G,IAAK,OAE1B,CACE62G,MAAO,YAAa72G,IAAK,MACzBwq3B,SAAU,CAACl63B,KAAM,UAEnB,CACEumH,MAAO,IAAOuwxB,KAIhBK,EAAc,CAChB/wtB,SAAU,CACR,CAAC7/D,MAAO,IAAOswxB,GACf,CAACtwxB,MAAO,KAAQswxB,EAAgB,MAAQA,EAAgB,QAGxDxM,EAAO,CACT9jxB,MAAO,UAAW72G,IAAK,OAErB63f,EAAO,CACT61X,gBAAgB,EAChB5ipB,UAAW,GAiBb,OAfA6vpB,EAAKj92B,SAAW,CACd,CACE/S,UAAW,OACX+rK,SAAU,CACR,CACE7/D,MAAOswxB,EACPr8pB,UAAW,GAEb,CAACj0H,MAAOuwxB,KAGZvvY,GAEFA,EAAKn6e,SAAW,CAAC8p3B,EAAQC,EAAa9M,EAAMzE,EAASrzV,EAAQL,EAAQnqb,EAASmhxB,EAAUxD,EAASuR,EAAKD,GAE/F,CACLh34B,KAAM,OACNw43B,QAAS,KACTpr2B,SAAU,CACRmlhB,EACAwrV,EAAKvE,UACLoM,EACA1zV,EACAnqb,EACAmvxB,EACAC,EACA9M,EACA2M,GAGN,qBCgFAnyrB,EAAOrtL,QAnLP,SAAwBum2B,GACtB,MAAMmL,EAAW,CACf7u3B,UAAW,WACX+rK,SAAU,CACR,CACE7/D,MAAO,uDAET,CACEA,MAAO,eAGXi0H,UAAW,GAEPivpB,EAAgB,CACpB1L,EAAKnF,qBACLmF,EAAKlF,kBACLkF,EAAKh2wB,QAAQ,KAAM,KACnBg2wB,EAAKh2wB,QAAQ,SAAU,MAEnBqvxB,EAASrZ,EAAKtotB,QAAQsotB,EAAK5E,WAAY,CAC3C/ysB,SAAU,CACR,CACE7/D,MAAO,iCAET,CACEA,MAAO,uBAIP8wxB,EAAStZ,EAAKtotB,QAAQsotB,EAAK5E,WAAY,CAC3C5ywB,MAAO,6BAET,MAAO,CACLvmH,KAAM,WACNw73B,kBAAkB,EAClBtB,SAAU,CACRe,QACE,4/BAYFmL,QACE,gfAMFJ,SACE,o4KAqDJ542B,SAAU,CACR872B,EACA,CACE7u3B,UAAW,UACXksG,MAAO,kBAET,CACElsG,UAAW,WACX2/2B,cAAe,WACftq3B,IAAK,IACL0d,SAAU,CACR872B,EACAmO,EACAtZ,EAAKxF,iBACLwF,EAAKtF,kBACLsF,EAAK/E,mBACL+E,EAAKhF,cACLqe,IAGJ,CACE/83B,UAAW,WACXksG,MAAO,aACP72G,IAAK,IACLwq3B,SAAU,MACV9s2B,SAAU,CACRiq3B,EACAD,GAEF58pB,UAAW,GAEb,CACEw/oB,cAAe,aACftq3B,IAAK,IACL0d,SAAU,CACR872B,EACAmO,EACAtZ,EAAKxF,iBACLwF,EAAKtF,kBACLsF,EAAK/E,mBACL+E,EAAKhF,cACLqe,IAGJ,CACE/83B,UAAW,OACX+rK,SAAU,CACR,CACE7/D,MAAO,wBACPi0H,UAAW,IAEb,CACEj0H,MAAO,QAET,CACEA,MAAO,UAIbw3wB,EAAKxF,iBACLwF,EAAKtF,kBACLsF,EAAK/E,mBACL+E,EAAKhF,cACLqe,GACA903B,OAAOmn3B,GACTjR,QAAS,mBAEb,qBC1LA,MAAMiP,EAAW,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,WAEI+C,EAAW,CACf,OACA,QACA,OACA,YACA,MACA,YAoFIC,EAAY,GAAGno3B,OAlCI,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,YAGyB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,SACA,UA9EY,CACZ,OACA,WACA,SACA,OACA,OACA,SACA,SACA,SACA,WACA,UACA,QACA,SACA,MACA,MACA,UACA,UACA,QACA,UACA,OACA,UACA,eACA,aACA,aACA,YACA,cACA,cACA,eACA,QACA,aACA,oBACA,cACA,gBACA,iBACA,UAGkB,CAClB,YACA,gBACA,aACA,iBACA,cACA,YACA,aAqRFuiM,EAAOrtL,QA/NP,SAAoBum2B,GAClB,MA4CM2M,EAAa,CACjBzP,QAASwM,EAASnl3B,OAhCQ,CAC1B,OACA,SACA,QACA,OACA,KACA,KACA,OACA,MACA,KACA,KACA,OACA,MACA,KACA,OACA,YACA,OACA,KACA,MACA,cACA,OACA,OACA,SACA,OACA,MACA,YACA,YACA,UACA,SACA,cAIA8j3B,QAASoE,EAASlo3B,OA1CQ,CAC1B,MACA,KACA,KACA,MACA,KACA,OACA,SAoCA0j3B,SAAUyE,EAAUno3B,OA/CO,CAC3B,MACA,WA+CIso3B,EAAc,8CACdC,EAAQ9M,EAAKtotB,QAAQsotB,EAAK5E,WAAY,CAC1C5ywB,MAAOqkxB,IAEHlD,EAAQ,CACZrt3B,UAAW,QACXksG,MAAO,MACP72G,IAAK,KACLwq3B,SAAUwQ,GAEN4M,EAAe,CACnBj93B,UAAW,QACXksG,MAAO,cACP72G,IAAK,oCACLwq3B,SAAUwQ,GAENb,EAAc,CAClB9L,EAAK/E,mBACL,CACE3+2B,UAAW,SACXksG,MAAO,0GACPi0H,UAAW,EACXkjpB,OAAQ,CACNhu3B,IAAK,WACL8qO,UAAW,IAGf,CACEngO,UAAW,SACX+rK,SAAU,CACR,CACE7/D,MAAO,MACP72G,IAAK,MACL0d,SAAU,CAAC2w2B,EAAKzF,mBAElB,CACE/xwB,MAAO,IACP72G,IAAK,IACL0d,SAAU,CAAC2w2B,EAAKzF,mBAElB,CACE/xwB,MAAO,MACP72G,IAAK,MACL0d,SAAU,CACR2w2B,EAAKzF,iBACLoP,EACA4P,IAGJ,CACE/wxB,MAAO,IACP72G,IAAK,IACL0d,SAAU,CACR2w2B,EAAKzF,iBACLoP,EACA4P,IAGJ,CACE/wxB,MAAO,KACP72G,IAAK,SACL4y3B,YAAY,KAIlB,CACEjo3B,UAAW,SACX+rK,SAAU,CACR,CACE7/D,MAAO,KACP72G,IAAK,WACL0d,SAAU,CACRs62B,EA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AW,EACXj0H,MAAO,MACP72G,IAAK,MACLuy3B,cAAc,EACdI,WAAW,GAEb,CACEho3B,UAAW,OACXmgO,UAAW,EACXj0H,MAAO,SACP72G,IAAK,MACLuy3B,cAAc,EACdK,YAAY,GAEd,CACEjo3B,UAAW,SACXmgO,UAAW,EACXj0H,MAAO,SACP72G,IAAK,MACLuy3B,cAAc,EACdK,YAAY,KAIZpoQ,EAAO,CACX7/mB,UAAW,SACX+S,SAAU,GACVg5J,SAAU,CACR,CACE7/D,MAAO,OACP72G,IAAK,QAEP,CACE62G,MAAO,QACP72G,IAAK,WAILso4B,EAAS,CACb393B,UAAW,WACX+S,SAAU,GACVg5J,SAAU,CACR,CACE7/D,MAAO,WACP72G,IAAK,MAEP,CACE62G,MAAO,SACP72G,IAAK,IACL8qO,UAAW,KAIjB0/Y,EAAK9smB,SAAS5L,KAAKw23B,GACnBA,EAAO5q3B,SAAS5L,KAAK04mB,GAErB,IAAI+9Q,EAAc,CAChBH,EACAC,GAuCF,OApCA79Q,EAAK9smB,SAAW8smB,EAAK9smB,SAAS9K,OAAO213B,GACrCD,EAAO5q3B,SAAW4q3B,EAAO5q3B,SAAS9K,OAAO213B,GAEzCA,EAAcA,EAAY313B,OAAO43mB,EAAM89Q,GAiChC,CACLh44B,KAAM,WACNuqL,QAAS,CACP,KACA,SACA,OAEFn9J,SAAU,CAtCG,CACb/S,UAAW,UACX+rK,SAAU,CACR,CACE7/D,MAAO,UACP72G,IAAK,IACL0d,SAAU6q3B,GAEZ,CACE1xxB,MAAO,uBACPn5F,SAAU,CACR,CACEm5F,MAAO,WAET,CACEA,MAAO,IACP72G,IAAK,MACL0d,SAAU6q3B,OAuBhBH,EApKS,CACXz93B,UAAW,SACXksG,MAAO,mCACP72G,IAAK,OACL4y3B,YAAY,GAkKVpoQ,EACA89Q,EAnBe,CACjB393B,UAAW,QACXksG,MAAO,SACPn5F,SAAU6q3B,EACVvo4B,IAAK,KA5LM,CACX2K,UAAW,OACX+rK,SAAU,CAER,CACE7/D,MAAO,iCAET,CACEA,MAAO,iCAGT,CACEA,MAAO,MACP72G,IAAK,aAEP,CACE62G,MAAO,MACP72G,IAAK,aAEP,CACE62G,MAAO,SAET,CACEA,MAAO,kBAGPn5F,SAAU,CACR,CACEm5F,MAAO,cACP72G,IAAK,WAGT8qO,UAAW,KApCO,CACtBj0H,MAAO,cACP72G,IAAK,KAiNHqo4B,EArKmB,CACrBxxxB,MAAO,eACP27wB,aAAa,EACb902B,SAAU,CACR,CACE/S,UAAW,SACXksG,MAAO,KACP72G,IAAK,KACLuy3B,cAAc,EACdK,YAAY,GAEd,CACEjo3B,UAAW,OACXksG,MAAO,OACP72G,IAAK,IACLuy3B,cAAc,MA0JtB,qBC/PA,MAAMiW,EAAiB,CACrB,cACA,eACA,QACA,eACA,eACA,qBACA,QACA,MACA,SACA,aACA,WACA,sBACA,8BACA,uBACA,kBACA,mBACA,kBACA,oBACA,oBACA,eACA,iBACA,sBACA,iBACA,aACA,WACA,eACA,cACA,aACA,gBACA,uBACA,WACA,SACA,uBACA,6BACA,aACA,mBACA,yBACA,cACA,gBACA,gBACA,WACA,QACA,mBACA,WACA,iBACA,gBACA,kBACA,oBACA,gBACA,uBACA,2BACA,6BACA,kBACA,cACA,wBACA,kBACA,QACA,wBACA,mBACA,eACA,cACA,kBACA,qBACA,SACA,cACA,aACA,SACA,cACA,aACA,oBACA,kBACA,6BACA,sBACA,4BACA,uBACA,iBACA,qBACA,aACA,iBACA,YACA,kBACA,iBACA,MACA,oBACA,8BACA,kCACA,oBACA,wBACA,eACA,kBACA,kBACA,mBACA,4BACA,oBACA,yBACA,yBACA,qBACA,UACA,WACA,kBACA,iBACA,eACA,iBACA,uBACA,mBACA,wBACA,eACA,iBACA,eACA,oBACA,gBACA,WACA,cACA,cACA,gBACA,mBACA,iBACA,iBACA,MACA,sBACA,SACA,gBACA,eACA,YACA,cACA,cACA,eACA,UACA,uBACA,4BACA,qBACA,uBACA,gBACA,uBACA,mBACA,mBACA,qBACA,WACA,cACA,qBACA,mBACA,WACA,aACA,mBACA,iBACA,kBACA,kBACA,UACA,aACA,UACA,mBACA,kBACA,0BACA,YACA,eACA,uBACA,gBACA,uBACA,WACA,WACA,YACA,UACA,QACA,kBACA,cACA,aACA,qBACA,kBACA,WACA,SACA,cACA,cACA,WACA,QACA,aACA,SACA,UACA,SACA,UACA,SACA,UACA,eACA,cACA,YACA,SACA,UACA,SACA,qBACA,UACA,SACA,UACA,OACA,MACA,SACA,SACA,iBACA,eACA,0BACA,cACA,SACA,gBACA,YACA,QACA,kBACA,aACA,cACA,eACA,YACA,WACA,YACA,SACA,gBACA,eACA,aACA,SACA,QACA,aACA,WACA,aACA,cACA,MACA,YACA,aACA,aACA,SACA,aACA,cACA,WACA,qBACA,cACA,mBACA,SACA,cACA,cACA,oBACA,iBACA,eACA,oBACA,sBACA,WACA,cACA,mBACA,aACA,wBACA,kBACA,uBACA,oBACA,yBACA,sBACA,iBACA,sBACA,0BACA,oBACA,wBACA,kBACA,gBACA,eACA,yBACA,oBACA,OACA,kBACA,YACA,yBACA,WACA,QACA,iBACA,aACA,QACA,eACA,gBACA,wBACA,gBACA,eACA,yBACA,sBACA,kBACA,gBACA,uBACA,YACA,aACA,cACA,cACA,gBACA,gBACA,YACA,sBACA,iBACA,gBACA,mBACA,cACA,iBACA,iBACA,YACA,aACA,cACA,yBACA,eACA,gBACA,oBACA,iBACA,oBACA,eACA,WACA,WACA,iBACA,aACA,kBACA,YACA,YACA,SACA,cACA,eACA,gBACA,cACA,eACA,kBACA,mBACA,8BACA,aACA,YACA,cACA,eACA,mBACA,cACA,YACA,YACA,sBACA,+BACA,eACA,iBACA,uBACA,aACA,eACA,yBACA,WACA,sBACA,aACA,qBACA,uBACA,aACA,qBACA,kBACA,eACA,YACA,YACA,qBACA,2BACA,uBACA,oBACA,mBACA,sBACA,gBACA,aACA,oBACA,cACA,aACA,cACA,mBACA,iBACA,iBACA,OACA,WACA,YACA,aACA,YACA,kBACA,OACA,oBACA,OACA,aACA,uBACA,0BACA,YACA,mBACA,WACA,OACA,OACA,iBACA,iBACA,kCACA,WACA,aACA,eACA,mBACA,sBACA,YACA,2BACA,UACA,YACA,aACA,qBACA,iBACA,aACA,aACA,WACA,WACA,mBACA,YACA,sBACA,0BACA,YACA,oBACA,uBACA,uBACA,6BACA,uBACA,6BACA,UACA,uBACA,OACA,SACA,QACA,oBACA,iCACA,eACA,QACA,QACA,QACA,sBACA,qBACA,+BACA,gCACA,aACA,wBACA,6BACA,mBACA,iBACA,oBACA,UACA,UACA,cACA,UACA,UACA,cACA,OACA,2BACA,mBACA,mCACA,wBACA,kBACA,UACA,wBACA,oBACA,cACA,mBACA,0BACA,iBACA,wBACA,iBACA,kBACA,WACA,oBACA,iBACA,eACA,eACA,aACA,iBACA,kBACA,cACA,YACA,WACA,WACA,uBACA,kBACA,uBACA,4BACA,kBACA,yBACA,qBACA,+BACA,SACA,WACA,SACA,YACA,SACA,QACA,SACA,eACA,gBACA,SACA,mBACA,sBACA,QACA,uBACA,wBACA,iBACA,QACA,YACA,oBACA,gBACA,QACA,QACA,wBACA,iBACA,sBACA,0BACA,iBACA,gBACA,sBACA,gBACA,sBACA,wBACA,4BACA,4BACA,8BACA,WACA,cACA,gBACA,oBACA,OACA,OACA,WACA,eACA,OACA,OACA,YACA,WACA,QACA,YACA,QACA,6BACA,iBACA,0BACA,kBACA,eACA,kBACA,kBACA,kBACA,WACA,gBACA,WACA,iBACA,eACA,mBACA,mBACA,0BACA,SACA,qBACA,6BACA,2BACA,eACA,qBACA,sBACA,gBACA,iBACA,iBACA,SACA,MACA,mBACA,UACA,gBACA,QACA,QACA,UACA,qBACA,WACA,QACA,aACA,YACA,YACA,YACA,cACA,mBACA,WACA,kBACA,MACA,gBACA,SACA,qBACA,mBACA,QACA,aACA,qBACA,uBACA,QACA,oBACA,wBACA,kBACA,eACA,eACA,oBACA,2BACA,kBACA,yBACA,kBACA,iBACA,sBACA,6BACA,cACA,gBACA,cACA,cACA,eACA,cACA,eACA,iBACA,yBACA,SACA,YACA,YACA,mBACA,aACA,iBACA,aACA,kBACA,mBACA,cACA,iBACA,gBACA,kBACA,aACA,iBACA,eACA,cACA,yBACA,OACA,YACA,kBACA,aACA,oBACA,YACA,eACA,IACA,cACA,gBACA,mBACA,kBACA,eACA,eACA,UACA,gBACA,eACA,aACA,mBACA,SACA,eACA,mBACA,iBACA,sBACA,yBACA,gBACA,iCACA,2BACA,aACA,kBACA,MACA,UACA,uBACA,aACA,eACA,iBACA,uBACA,oBACA,mBACA,eACA,QACA,gBACA,WACA,aACA,UACA,gBACA,QACA,0BACA,WACA,gBACA,qBACA,eACA,cACA,MACA,YACA,iBACA,aACA,UACA,kBACA,OACA,oBACA,eACA,kBACA,qBACA,kBACA,eACA,cACA,cACA,wBACA,oBACA,0BACA,sBACA,aACA,0BACA,yBACA,yBACA,mBACA,YACA,iBACA,wBACA,kBACA,mBACA,YACA,gBACA,eACA,oBACA,0BACA,SACA,YACA,sBACA,mBACA,uBACA,iBACA,oBACA,cACA,aACA,WACA,YACA,aACA,QACA,WACA,YACA,WACA,oBACA,uBACA,YACA,SACA,cACA,YACA,iBACA,gBACA,kCACA,cACA,mBACA,gBACA,QACA,qBACA,gBACA,cACA,sBACA,iBACA,uBACA,gBACA,kBACA,mBACA,sBACA,gBACA,yBACA,0BACA,cACA,qBACA,mBACA,YACA,kBACA,oBACA,yBACA,yBACA,2BACA,gBACA,qBACA,iBACA,aACA,iBACA,mBACA,2BACA,uBACA,gBACA,cACA,cACA,eACA,aACA,wBACA,wBACA,oBACA,aACA,aACA,QACA,aACA,WACA,WACA,cACA,cACA,qBACA,eACA,qBACA,kBACA,mBACA,wBACA,gBACA,eACA,wBACA,OACA,mBACA,qBACA,sBACA,SACA,YACA,YACA,cACA,aACA,eACA,gBACA,cACA,iBACA,uCACA,uCACA,iCACA,uCACA,oCACA,eACA,WACA,qBACA,wBACA,yBACA,+BACA,WACA,cACA,QACA,WACA,kBACA,eACA,mBACA,mBACA,gBACA,YACA,OACA,oBACA,WACA,gBACA,aACA,kBACA,YACA,QACA,aACA,2BACA,QACA,SACA,eACA,sBACA,UACA,kBACA,eACA,oBACA,mBACA,YACA,eACA,mBACA,cACA,iBACA,kBACA,gBACA,cACA,kBACA,mBACA,gBACA,WACA,cACA,mBACA,cACA,yBACA,6BACA,wBACA,eACA,qBACA,eACA,WACA,uBACA,YACA,aACA,cACA,cACA,eACA,cACA,kBACA,+BACA,uBACA,iBACA,YACA,SACA,oBACA,cACA,oBACA,oBACA,kBACA,mBACA,iBACA,UACA,QACA,YACA,eACA,eACA,eACA,gBACA,YACA,oBACA,cACA,gBACA,gBACA,uBACA,WACA,cACA,cACA,mBACA,SACA,gBACA,eACA,aACA,wBACA,gBACA,cACA,iBACA,wBACA,cACA,aACA,aACA,mBACA,SACA,mBACA,oBACA,aACA,cACA,eACA,iBACA,eACA,sBACA,mBACA,YACA,2BACA,YACA,kBACA,aACA,cACA,yBACA,qBACA,kBACA,uBACA,cACA,kBACA,qBACA,oBACA,UACA,WACA,uBACA,mBACA,kBACA,aACA,0BACA,gBACA,iBACA,mBACA,wBACA,UACA,qBACA,YACA,gBACA,kBACA,qBACA,kBACA,cACA,gBACA,oBACA,oBACA,oBACA,wBACA,2BACA,UACA,cACA,gBACA,aACA,cACA,kBACA,qBACA,8BACA,yBACA,yBACA,WACA,iBACA,mBACA,qBACA,YACA,wBACA,cACA,OACA,UACA,kBACA,kBACA,sBACA,oBACA,eACA,gBACA,YACA,kBACA,uBACA,qBACA,oBACA,YACA,qBACA,cACA,UACA,sBACA,2BACA,kBACA,0BACA,8BACA,qBACA,qBACA,iCACA,+BACA,eACA,cACA,iBACA,uBACA,WACA,gBACA,qBACA,gBACA,oBACA,kBACA,YACA,qBACA,oBACA,iBACA,iBACA,YACA,aACA,cACA,cACA,kBACA,eACA,eACA,sBACA,0BACA,gBACA,iBACA,sBACA,oBACA,cACA,UACA,cACA,WACA,oBACA,eACA,WACA,oBACA,qBACA,mBACA,0BACA,iBACA,uBACA,wBACA,6BACA,gBACA,kBACA,kBACA,gBACA,eACA,cACA,gBACA,WACA,iBACA,mBACA,eACA,qBACA,uBACA,UACA,gBACA,mBACA,0BACA,yBACA,wBACA,4BACA,qBACA,qBACA,wBACA,4BACA,oBACA,uBACA,mBACA,iBACA,kBACA,mBACA,oBACA,cACA,cACA,oBACA,kBACA,wBACA,sBACA,4BACA,iBACA,iBACA,oBACA,mBACA,WACA,iBACA,iBACA,iBACA,iBACA,UACA,wBACA,6BACA,mBACA,wBACA,sBACA,yBACA,sBACA,0BACA,WACA,YACA,qBACA,WACA,cACA,gBACA,WACA,UACA,kBACA,eACA,kBACA,cACA,sBACA,sBACA,kBACA,MACA,OACA,eACA,iBACA,eACA,cACA,MACA,OACA,QACA,gBACA,kBACA,qBACA,aACA,oBACA,kCACA,mBACA,kBACA,oBACA,eACA,0BACA,aACA,cACA,SACA,WACA,aACA,8BACA,qBACA,qBACA,0BACA,WACA,cACA,qBACA,gBACA,eACA,gBACA,wBACA,gBACA,sBACA,wBACA,eACA,kBACA,iBACA,aACA,gCACA,iCACA,iBACA,sBACA,gBACA,sBACA,yBACA,sBACA,oBACA,oBACA,kBACA,aACA,eACA,oBACA,+BACA,+BACA,kBACA,QACA,wBACA,gBACA,iBACA,kBACA,cACA,MACA,OACA,eACA,OACA,WACA,SACA,SACA,YACA,WACA,6BACA,MACA,SACA,OACA,mBACA,aACA,kBACA,cACA,eACA,0BACA,uBACA,qBACA,eACA,QACA,eACA,sBACA,cACA,OACA,aACA,uBACA,SACA,cACA,aACA,WACA,cACA,2BACA,IACA,oBACA,UACA,6BACA,gBACA,SACA,SACA,UACA,kBACA,qBACA,oBACA,UACA,aACA,gBACA,WACA,gBACA,kBACA,mBACA,YACA,eACA,UACA,sBACA,gBACA,iBACA,OACA,aACA,QACA,iBACA,iBACA,YACA,aACA,eACA,gBACA,eACA,WACA,kBACA,eACA,mBACA,aACA,cACA,gBACA,cACA,WACA,YACA,gBACA,aACA,kBACA,YACA,cACA,oBACA,oBACA,UACA,WACA,qBACA,gBACA,YACA,YACA,UACA,qBACA,UACA,WACA,WACA,gBACA,mBACA,QACA,WACA,eACA,UACA,cACA,sBACA,iBACA,YACA,qBACA,YACA,UACA,cACA,cACA,qBACA,UACA,mBACA,mBACA,kBACA,gBACA,eACA,0BACA,4BACA,kBACA,iBACA,wBACA,wBACA,cACA,wBACA,oBACA,4BACA,oBACA,yBACA,wBACA,0BACA,yBACA,oBACA,mBACA,yBACA,sBACA,4BACA,kBACA,iBACA,0BACA,wBACA,eACA,0BACA,wBACA,8BACA,oBACA,sBACA,eACA,gBACA,QACA,iBACA,0BACA,2BACA,yBACA,aACA,SACA,mBACA,0BACA,sBACA,6BACA,eACA,eACA,mBACA,MACA,eACA,UACA,YACA,SACA,kBACA,yBACA,cACA,gBACA,wBACA,iBACA,kBACA,mBACA,qBACA,aACA,gBACA,eACA,uBACA,oBACA,wBACA,kBACA,qBACA,kBACA,iBACA,oBACA,YACA,qBACA,oBACA,aACA,mBACA,aACA,cACA,kBACA,mBACA,cACA,gBACA,qBACA,SACA,WACA,QACA,iBACA,aACA,mBACA,aACA,uBACA,eACA,yBACA,MACA,cACA,kBACA,gBACA,4BACA,eACA,aACA,cACA,aACA,mBACA,mBACA,iBACA,uBACA,UACA,gBACA,cACA,oBACA,mBACA,yBACA,WACA,wBACA,iBACA,kBACA,SACA,eACA,cACA,cACA,iBACA,eACA,eACA,gBACA,UACA,gBACA,oBACA,mBACA,kBACA,kBACA,kBACA,qBACA,iBACA,uBACA,cACA,gBACA,mBACA,yBACA,uBACA,mBACA,aACA,oBACA,iBACA,aACA,SACA,gBACA,gBACA,WACA,0BACA,4BACA,kBACA,2BACA,qBACA,aACA,YACA,aACA,eACA,gBACA,gBACA,iBACA,mBACA,YACA,YACA,YACA,gBACA,aACA,iBACA,gBACA,qBACA,qBACA,oBACA,wBACA,eACA,aACA,kBACA,qBACA,kBACA,4BACA,oBACA,qBACA,0BACA,mBACA,gBACA,4BACA,oBACA,gBACA,2BACA,2BACA,wBACA,wBACA,mBACA,mBACA,eACA,iBACA,gBACA,uBACA,gBACA,qBACA,8BACA,oBACA,sBACA,iCACA,2BACA,qBACA,mBACA,eACA,YACA,cACA,OACA,UACA,aACA,cACA,WACA,YACA,8BACA,UACA,kBACA,mBACA,0BACA,cACA,kBACA,gBACA,eACA,uBACA,gBACA,mBACA,cACA,iBACA,sBACA,mBACA,iBACA,oBACA,aACA,cACA,sBACA,wBACA,oBACA,qBACA,sBACA,mCACA,yBACA,YACA,MACA,aACA,SACA,WACA,WACA,cACA,YACA,WACA,eACA,aACA,UACA,YACA,KACA,cACA,oBACA,+BACA,mCACA,qBACA,mBACA,yBACA,eACA,gCACA,iBACA,gBACA,MACA,YACA,WACA,WACA,eACA,SACA,sBACA,wBACA,kBACA,kBACA,uBACA,gBACA,sBACA,2BACA,uBACA,mBACA,iBACA,gBACA,oBACA,oBACA,iBACA,OACA,YACA,eACA,mBACA,sBACA,oBACA,iBACA,oBACA,qBACA,kBACA,qBACA,aACA,UACA,eACA,aACA,cACA,YACA,iBACA,kBACA,OACA,eACA,SACA,cACA,KACA,wBACA,iBACA,mBACA,UACA,WACA,iBACA,WACA,UACA,aACA,oBACA,2BACA,qBACA,eACA,kBACA,gBACA,mBACA,0BACA,sBACA,sBACA,cACA,mBACA,mBACA,iBACA,kBACA,iBACA,oBACA,2BACA,IACA,kBACA,iBACA,yBACA,OACA,eACA,cACA,UACA,4BACA,eACA,cACA,YACA,mBACA,eACA,WACA,YACA,aACA,kBACA,cACA,aACA,aACA,WACA,YACA,eACA,eACA,aACA,iBACA,WACA,cACA,QACA,wBACA,YACA,oBACA,YACA,kBACA,mBACA,WACA,gBACA,aACA,qBACA,WACA,qBACA,uBACA,eACA,oBACA,cACA,cACA,wBACA,eACA,UACA,cACA,mBACA,cACA,YACA,mBACA,YACA,YACA,cACA,mBACA,YACA,sBACA,YACA,cACA,gBACA,aACA,6BACA,gBACA,qBACA,YACA,eACA,kBACA,iBACA,kBACA,YACA,wBACA,wBACA,QACA,cACA,cACA,2BACA,UACA,SACA,UACA,kBACA,cACA,MACA,SACA,kBACA,+BACA,cACA,YACA,YACA,cACA,aACA,oBACA,kBACA,QACA,wBACA,kBACA,SACA,cACA,kBACA,eACA,iBACA,cACA,iBACA,aACA,iBACA,mBACA,iBACA,sBACA,iBACA,cACA,eACA,iBACA,mBACA,cACA,UACA,gBACA,cACA,SACA,iBACA,QACA,eACA,YACA,aACA,UACA,YACA,cACA,yBACA,aACA,MACA,OACA,OACA,UACA,UACA,qBACA,UACA,WACA,kBACA,YACA,cACA,uBACA,eACA,sBACA,wBACA,mBACA,iBACA,qBACA,oBACA,cACA,sBACA,SACA,aACA,iBACA,cACA,WACA,cACA,WACA,YACA,iBACA,wBACA,gBACA,iBACA,6BACA,iBACA,qBACA,wBACA,iBACA,oBACA,qBACA,mBACA,kBACA,YACA,iBACA,QACA,YACA,iBACA,eACA,kBACA,cACA,cACA,sBACA,eACA,qBACA,cACA,SACA,gBACA,gBACA,6BACA,cACA,aACA,kBACA,SACA,OACA,aACA,gBACA,MACA,SACA,YACA,oBACA,iBACA,kBACA,cACA,eACA,gBACA,uBACA,eACA,gBACA,iBACA,WACA,mBACA,0BACA,oBACA,gCACA,2BACA,+BACA,mBACA,eACA,SACA,yBACA,kBACA,aACA,eACA,eACA,aACA,iBACA,kBACA,mBACA,iBACA,YACA,sBACA,cACA,YACA,wBACA,gBACA,aACA,iBACA,eACA,gCACA,mBACA,mBACA,uBACA,qBACA,iBACA,kBACA,wBACA,mBACA,sBACA,0BACA,qBACA,wBACA,qBACA,wBACA,wBACA,gBACA,UACA,iBACA,eACA,uBACA,2BACA,YACA,WACA,YACA,iBACA,iBACA,SACA,iBACA,YACA,aACA,kBACA,oCACA,iBACA,gBACA,aACA,mBACA,uBACA,cACA,kBACA,OACA,UACA,gBACA,sBACA,WACA,QACA,gBACA,gBACA,kBACA,iBACA,oBACA,mBACA,2BACA,eACA,iBACA,mBACA,qBACA,eACA,8BACA,oBACA,iBACA,sBACA,eACA,6BACA,kBACA,YACA,aACA,0BACA,YACA,iBACA,cACA,YACA,OACA,eACA,gBACA,cACA,WACA,cACA,gBACA,aACA,cACA,WACA,kBACA,WACA,gBACA,yBACA,eACA,gBACA,eACA,YACA,iBACA,gBACA,eACA,YACA,WACA,gBACA,iBACA,eACA,oBACA,WACA,cACA,iBACA,wBACA,UACA,eACA,mBACA,sBACA,cACA,gBACA,gBACA,sBACA,qBACA,OACA,gBACA,aACA,aACA,eACA,aACA,eACA,cACA,gBACA,YACA,cACA,mBACA,6BACA,gBACA,gBACA,cACA,2BACA,sBACA,oBACA,yBACA,YACA,WACA,UACA,cACA,wBACA,yBACA,kBACA,2BACA,yBACA,uBACA,uBACA,qBACA,uBACA,sBACA,yBACA,gBACA,yBACA,2BACA,eACA,wBACA,YACA,cACA,YACA,YACA,cACA,uBACA,WACA,oBACA,cACA,iBACA,kBACA,eACA,kBACA,cACA,sBACA,iBACA,eACA,2BACA,WACA,YACA,kBACA,kBACA,wBACA,aACA,WACA,uBACA,eACA,mBACA,mBACA,mBACA,6BACA,oBACA,gBACA,sBACA,kBACA,gBACA,6BACA,OACA,gBACA,0BACA,mBACA,kBACA,QACA,YACA,+BACA,gBACA,mBACA,mBACA,wBACA,mCACA,kBACA,sBACA,MACA,SACA,oBACA,cACA,aACA,aACA,iBACA,iBACA,OACA,UACA,YACA,eACA,gBACA,WACA,QACA,iBACA,yBACA,OACA,WACA,WACA,eACA,kBACA,OACA,YACA,aACA,WACA,WACA,cACA,qBACA,iBACA,iBACA,WACA,YACA,oBACA,eACA,iBACA,aACA,MACA,SACA,sBACA,SACA,cACA,aACA,wBACA,eACA,UACA,iBACA,cACA,eACA,qBACA,aACA,WACA,YACA,cACA,gBACA,cACA,UACA,kBACA,UACA,qBACA,wBACA,mBACA,sBACA,aACA,mBACA,mBACA,aACA,mBACA,gBACA,oBACA,2BACA,gBACA,wBACA,mBACA,sBACA,mBACA,oBACA,kCACA,iCACA,iBACA,cACA,qBACA,eACA,QACA,WACA,kBACA,SACA,aACA,aACA,YACA,eACA,YACA,aACA,aACA,kBACA,qBACA,sBACA,QACA,qBACA,gCACA,WACA,WACA,WACA,WACA,SACA,kBACA,iBACA,mBACA,oBACA,uBACA,wBACA,WACA,aACA,UACA,aACA,iBACA,mBACA,uBACA,mBACA,2BACA,eACA,QACA,4BACA,uBACA,kBACA,iBACA,mBACA,yBACA,oBACA,gBACA,uBACA,qBACA,kBACA,iBACA,mBACA,OACA,WACA,iBACA,WACA,eACA,iCACA,cACA,aACA,eACA,WACA,kBACA,wBACA,iCACA,+BACA,8BACA,iBACA,iBACA,wBACA,iBACA,gBACA,gBACA,0BACA,cACA,cACA,eACA,cACA,mBACA,aACA,cACA,QACA,oBACA,mBACA,aACA,eACA,sBACA,SACA,WACA,2BACA,iBACA,4BACA,iBACA,kBACA,cACA,eACA,aACA,iBACA,mBACA,iBACA,uCACA,uCACA,oCACA,iBACA,MACA,cACA,UACA,4BACA,4BACA,qBACA,gBACA,2BACA,qBACA,2BACA,mBACA,sBACA,8BACA,wBACA,uBACA,mCACA,uBACA,qBACA,uBACA,yBACA,sBACA,UACA,kCACA,aACA,eACA,cACA,UACA,eACA,gBACA,iBACA,YACA,kBACA,iBACA,YACA,YACA,iBACA,iBACA,kBACA,mBACA,kBACA,kBACA,iBACA,cACA,eACA,UACA,kBACA,cACA,kBACA,mBACA,cACA,cACA,sBACA,6BACA,eACA,oBACA,kBACA,eACA,sBACA,kBACA,sBACA,gBACA,WACA,gBACA,wBACA,eACA,cACA,WACA,YACA,YACA,cACA,cACA,uBACA,uBACA,YACA,qBACA,iCACA,wBACA,gBACA,sBACA,wBACA,iBACA,0BACA,+BACA,sCACA,6BACA,oCACA,WACA,aACA,UACA,cACA,iBACA,iBACA,gBACA,oBACA,WACA,kBACA,qBACA,gBACA,cACA,YACA,qBACA,gBACA,aACA,0BACA,aACA,YACA,eACA,gBACA,eACA,mBACA,2BACA,aACA,eACA,iBACA,oBACA,MACA,2BACA,aACA,iBACA,cACA,+BACA,gCACA,iBACA,gCACA,WACA,8BACA,oBACA,gBACA,OACA,cACA,cACA,8BACA,eACA,sBACA,0BACA,OACA,OACA,WACA,iBACA,4BACA,eACA,eACA,eACA,QACA,UACA,qBACA,yBACA,cACA,kBACA,YACA,eACA,gBACA,kBACA,qBACA,gBACA,sBACA,mBACA,iBACA,iBACA,sBACA,WACA,WACA,aACA,gBACA,uBACA,gBACA,mBACA,cACA,qBACA,gBACA,iBACA,kBACA,uBACA,8BACA,qBACA,4BACA,mBACA,eACA,eACA,kBACA,gBACA,qBACA,4BACA,mBACA,0BACA,mBACA,yBACA,cACA,kBACA,gBACA,oBACA,cACA,sBACA,iBACA,YACA,cACA,aACA,4BACA,SACA,cACA,mBACA,YACA,aACA,aACA,OACA,YACA,UACA,eACA,mBACA,mBACA,mBACA,iBACA,cACA,oBACA,cACA,eACA,QACA,gBACA,OACA,eACA,UACA,mBACA,oBACA,kBACA,eACA,kBACA,mBACA,iBACA,kBACA,uBACA,qBACA,0BACA,YACA,mBACA,YACA,YACA,iBACA,gBACA,kBACA,UACA,mBACA,uBACA,uBACA,gBACA,gBACA,qBACA,kBACA,YACA,2BACA,cACA,aACA,uBACA,yBACA,kBACA,uBACA,wBACA,8BACA,oBACA,eACA,eACA,qBACA,cACA,iBACA,WACA,yBACA,YACA,YACA,kBACA,oBACA,kBACA,gBACA,mBACA,uBACA,WACA,WACA,eACA,kBACA,oBACA,aACA,sBACA,cACA,eACA,qBACA,iBACA,OACA,eACA,eACA,YACA,iBACA,OACA,cACA,kBACA,mBACA,wBACA,cACA,aACA,cACA,QACA,kBACA,cACA,iBACA,cACA,WACA,oBACA,sBACA,sBACA,OACA,uBACA,WACA,mBACA,0BACA,UACA,QACA,aACA,QACA,aACA,QACA,aACA,QACA,aACA,QACA,aACA,uBACA,aACA,gBACA,uBACA,cACA,sBACA,gBACA,cACA,iBACA,iBACA,gBACA,iBACA,oBACA,eACA,gBACA,gBACA,YACA,cACA,wBACA,gBACA,qBACA,kCACA,uBACA,mBACA,iBACA,qBACA,YACA,aACA,iBACA,OACA,UACA,kBACA,eACA,YACA,WACA,cACA,WACA,kBACA,gBACA,WACA,aACA,iBACA,kBACA,2BACA,aACA,aACA,+BACA,mBACA,WACA,oBACA,eACA,cACA,kBACA,eACA,MACA,kBACA,eACA,YACA,kBACA,cACA,yBACA,iBACA,+BACA,iBACA,oBACA,+BACA,oBACA,+BACA,oBACA,+BACA,6BACA,oBACA,+BACA,kBACA,YACA,kBACA,4BACA,aACA,cACA,qBACA,8BACA,qBACA,IACA,WACA,UACA,iBACA,YACA,cACA,WACA,iBACA,KACA,aACA,mBACA,oBACA,mBACA,mBACA,KACA,QACA,UACA,oBACA,gBACA,kBACA,WACA,cACA,aACA,aACA,oBACA,mBACA,gBACA,yBACA,qBACA,aACA,kBACA,eACA,uBACA,aACA,gBACA,YACA,eACA,kBACA,eACA,iBACA,gBACA,gBACA,oBACA,eACA,iBACA,2BACA,YACA,YACA,kBACA,gBACA,kBACA,kBACA,qBACA,gBACA,cACA,uBACA,oBACA,iBACA,kBACA,gBACA,cACA,oBACA,2BACA,uBACA,6BACA,gBACA,iBACA,gBACA,iBACA,iBACA,cACA,eACA,cACA,aACA,eACA,cACA,eACA,oBACA,YACA,gBACA,cACA,WACA,eACA,iBACA,mBACA,iCACA,gBACA,uBACA,eACA,oBACA,SACA,kBACA,eACA,eACA,cACA,cACA,kBACA,eACA,cACA,eACA,sBACA,cACA,YACA,YACA,kBACA,iBACA,uBACA,eACA,gBACA,YACA,sBACA,YACA,YACA,aACA,sBACA,gBACA,iBACA,UACA,SACA,yBACA,kBACA,gBACA,eACA,wBACA,KACA,aACA,WACA,iBACA,gBACA,kBACA,uBACA,uBACA,qBACA,qBACA,uBACA,wBACA,mBACA,qBACA,yBACA,cACA,oBACA,uBACA,sBACA,qBACA,YACA,oBACA,SACA,2BACA,oBACA,mBACA,sBACA,8BACA,kBACA,2BACA,wBACA,gBACA,yBACA,uBACA,UACA,uBACA,aACA,WACA,aACA,iBACA,iBACA,iBACA,eACA,eACA,gBACA,WACA,QACA,kBACA,kBACA,cACA,kBACA,sBACA,YACA,eACA,8BACA,2BACA,iBACA,qBACA,+BACA,4BACA,wBACA,sBACA,aACA,iBACA,2BACA,0BACA,cACA,QACA,eACA,kBACA,UACA,QACA,eACA,mBACA,wBACA,aACA,gBACA,uBACA,YACA,gBACA,kBACA,gBACA,cACA,gBACA,cACA,cACA,oBACA,uBACA,SACA,oBACA,uBACA,mBACA,gBACA,QACA,aACA,oBACA,WACA,kBACA,WACA,UACA,iBACA,6BACA,WACA,UACA,gBACA,kBACA,gBACA,cACA,cACA,oBACA,WACA,iBACA,WACA,gBACA,WACA,YACA,cACA,0BACA,aACA,eACA,kCACA,wBACA,0BACA,gBACA,qBACA,sBACA,yBACA,iBACA,oBACA,2BACA,yBACA,cACA,oBACA,qBACA,YACA,oBACA,yBACA,gBACA,eACA,WACA,uBACA,kBACA,uBACA,kBACA,iBACA,gBACA,OACA,UACA,yBACA,aACA,+BACA,oCACA,2BACA,uBACA,aACA,cACA,iBACA,6BACA,kCACA,6BACA,0BACA,kBACA,mBACA,2BACA,0BACA,8BACA,sBACA,yBACA,mBACA,sBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,0BACA,yBACA,qBACA,eACA,wBACA,gBACA,0BACA,qBACA,0BACA,2BACA,0BACA,sBACA,mCACA,oBACA,YACA,uBACA,iBACA,YACA,yBACA,aACA,oBACA,mBACA,cACA,SACA,OACA,kBACA,UACA,iBACA,sBACA,WACA,YACA,aACA,uBACA,kBACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,WACA,UACA,WACA,WACA,WACA,eACA,aACA,eACA,eACA,eACA,eACA,oBACA,sBACA,OACA,aACA,SACA,cACA,iBACA,wBACA,WACA,sBACA,2BACA,aACA,oBACA,yBACA,eACA,iBACA,IACA,YACA,qBACA,eACA,kBACA,eACA,6BACA,WACA,iBACA,kBACA,gBACA,2BACA,uBACA,sBACA,YACA,YACA,YACA,YACA,aACA,iBACA,gBACA,iBACA,4BACA,eACA,UACA,MACA,MACA,uBACA,gBACA,UACA,cACA,aACA,WACA,kBACA,SACA,aACA,mBACA,OACA,YACA,UACA,YACA,UACA,WACA,cACA,kBACA,WACA,cACA,iBACA,kBACA,kBACA,gBACA,kBACA,WACA,aACA,YACA,wBACA,iBACA,8BACA,mBACA,kBACA,aACA,0BACA,WACA,iBACA,6BACA,yBACA,WACA,QACA,UACA,gBACA,mBACA,eACA,aACA,kBACA,YACA,WACA,mBACA,WACA,aACA,gBACA,qBACA,WACA,mBACA,eACA,mBACA,kBACA,sBACA,mBACA,YACA,kBACA,0BACA,QACA,SACA,OACA,WACA,oBACA,cACA,gBACA,SACA,gBACA,mBACA,oBACA,oBACA,WACA,MACA,aACA,YACA,YACA,oBACA,sBACA,eACA,0BACA,eACA,2BACA,OACA,YACA,eACA,sBACA,oBACA,iBACA,oBACA,iBACA,kBACA,UACA,eACA,gBACA,eACA,kBACA,oBACA,mBACA,kBACA,eACA,kBACA,aACA,gBACA,mBACA,WACA,iBACA,cACA,eACA,gBACA,gBACA,mBACA,YACA,YACA,eACA,SACA,cACA,WACA,OACA,YACA,mBACA,gBACA,gBACA,cACA,WACA,iBACA,WACA,YACA,kBACA,eACA,eACA,UACA,QACA,aACA,mBACA,mBACA,gBACA,kBACA,kBACA,uBACA,6BACA,sBACA,wBACA,cACA,gBACA,YACA,oBACA,0BACA,YACA,aACA,YACA,UACA,YACA,aACA,WACA,gBACA,eACA,cACA,YACA,cACA,WACA,eACA,cACA,aACA,QACA,oBACA,0BACA,sBACA,OACA,YACA,mBACA,eACA,+BACA,4BACA,sBACA,gCACA,cACA,iBACA,uBACA,qBACA,oBACA,mBACA,cACA,sBACA,UACA,iBACA,YACA,uBACA,iBACA,8BACA,kBACA,YACA,YACA,aACA,wBACA,8BACA,+BACA,aACA,cACA,cACA,gBACA,eACA,YACA,cACA,iBACA,aACA,YACA,YACA,eACA,WACA,gBACA,aACA,WACA,aACA,WACA,cACA,eACA,eACA,qBACA,WACA,eACA,aACA,QACA,cACA,YACA,gBACA,kBACA,OACA,WACA,cACA,kBACA,oBACA,eACA,gBACA,oBACA,iBACA,kBACA,oBACA,SACA,aACA,+BACA,oBACA,kCACA,eACA,oBACA,iBACA,cACA,aACA,gBACA,0BACA,uBACA,WACA,WACA,aACA,kBACA,gBACA,QACA,yBACA,yBACA,wBACA,eACA,wBACA,iBACA,oBACA,wBACA,iBACA,mBACA,iBACA,UACA,gBACA,wBACA,aACA,6BACA,sBACA,oBACA,cACA,eACA,kCACA,cACA,cACA,YACA,gBACA,0BACA,eACA,UACA,oBACA,aACA,oBACA,mBACA,cACA,iBACA,wBACA,gBACA,SACA,MACA,QACA,OACA,aACA,WACA,uBACA,gBACA,cACA,uBACA,kBACA,gBACA,gBACA,gBACA,0BACA,aACA,6BACA,wBACA,UACA,cACA,wBACA,YACA,UACA,wBACA,iCACA,2BACA,oCACA,eACA,yBACA,WACA,YACA,gBACA,qBACA,iBACA,2BACA,SACA,WACA,iBACA,UACA,eACA,aACA,iBACA,kBACA,qBACA,yBACA,gBACA,mBACA,eACA,yBACA,mBACA,qBACA,SACA,uBACA,kBACA,eACA,WACA,gBACA,eACA,YACA,cACA,iBACA,mBACA,2BACA,UACA,gBACA,UACA,wBACA,cACA,aACA,WACA,uBACA,uBACA,aACA,oBACA,uBACA,eACA,YACA,wBACA,WACA,YACA,iBACA,YACA,6BACA,4BACA,yBACA,wBACA,8BACA,uBACA,oBACA,iBACA,oBACA,aACA,cACA,yBACA,kBACA,mBACA,SACA,MACA,SACA,QACA,aACA,YACA,YACA,8BACA,UACA,qBACA,qBACA,qBACA,uBACA,0BACA,UACA,wBACA,kBACA,kBACA,SACA,WACA,2BACA,sBACA,WACA,yBACA,yBACA,gCACA,gBACA,kBACA,kBACA,kBACA,kBACA,kBACA,WACA,gBACA,aACA,aACA,WACA,YACA,aACA,iBACA,YACA,2BACA,aACA,cACA,6BACA,UACA,aACA,sBACA,MACA,UACA,iBACA,mBACA,UACA,YACA,cACA,qBACA,qBACA,yBACA,cACA,YACA,YACA,WACA,WACA,gBACA,WACA,gBACA,oBACA,qBACA,gBACA,YACA,eACA,wBACA,kBACA,WACA,cACA,oBACA,WACA,sBACA,aACA,qBACA,OACA,wBACA,aACA,4BACA,yBACA,gBACA,aACA,oBACA,qBACA,YACA,kBACA,uBACA,SACA,kBACA,eACA,kBACA,SACA,UACA,gBACA,sBACA,iBACA,kBACA,UACA,kBACA,oBACA,mBACA,cACA,aACA,OACA,iBACA,iBACA,gBACA,WACA,WACA,aACA,mBACA,YACA,WACA,QACA,mBACA,kBACA,wBACA,yBACA,OACA,mBACA,gBACA,oBACA,gBACA,gBACA,iBACA,kBACA,kBACA,YACA,wBACA,gBACA,wBACA,kBACA,gBACA,iBACA,kBACA,YACA,yBACA,aACA,cACA,cACA,YACA,UACA,gBACA,cACA,cACA,gBACA,iBACA,gBACA,WACA,mBACA,iBACA,kBACA,mBACA,SACA,gBACA,oBACA,eACA,WACA,MACA,mBACA,UACA,YACA,cACA,YACA,YACA,oBACA,yBACA,WACA,uBACA,kBACA,wBACA,WACA,SACA,kBACA,SACA,eACA,UACA,wBACA,QACA,YACA,WACA,UACA,kBACA,oBACA,mBACA,WACA,gBACA,eACA,sBACA,iBACA,qBACA,cACA,iBACA,aACA,qBACA,YACA,sBACA,MACA,QACA,OACA,UACA,iBACA,gBACA,SACA,UACA,YACA,WACA,oBACA,sBACA,gBACA,iBACA,kBACA,eACA,iBACA,mBACA,YACA,oBACA,gBACA,SACA,YACA,gBACA,iBACA,2BACA,kBACA,SACA,UACA,eACA,gBACA,gBACA,YACA,eACA,gBACA,wBACA,4BACA,0BACA,2BACA,qBACA,yBACA,yBACA,gBACA,OACA,eACA,kBACA,kBACA,qBACA,eACA,YACA,mBACA,gBACA,YACA,gBACA,YACA,eACA,oBACA,cACA,iBACA,cACA,qBACA,qBACA,mBACA,oBACA,cACA,0BACA,0BACA,sBACA,eACA,gBACA,iBACA,yCACA,kCACA,4BACA,IACA,uBACA,QACA,QACA,eACA,sBACA,OACA,UACA,UACA,cACA,kBACA,sBACA,SACA,gBACA,gBACA,UACA,eACA,UACA,kBACA,mBACA,uBACA,YACA,aACA,mCACA,mCACA,4BACA,QACA,WACA,+BACA,0BACA,mBACA,kCACA,oBACA,gBACA,8BACA,mBACA,oBACA,OACA,uBACA,iBACA,oBACA,YACA,WACA,YACA,gBACA,YACA,2BACA,WACA,aACA,YACA,UACA,aACA,oBACA,aACA,aACA,kBACA,iBACA,WACA,iBACA,gBACA,YACA,wBACA,UACA,iBACA,uBACA,kBACA,WACA,kBACA,2BACA,UACA,kBACA,aACA,YACA,aACA,iBACA,iBACA,iBACA,UACA,WACA,wBACA,uBACA,yBACA,+BACA,qBACA,eACA,gBACA,gBACA,gBACA,gBACA,oBACA,eACA,OACA,WACA,WACA,YACA,wBACA,WACA,aACA,YACA,mBACA,cACA,kBACA,aACA,YACA,YACA,YACA,YACA,mBACA,iBACA,6BACA,kCACA,+BACA,iCACA,yBACA,eACA,iCACA,OACA,WACA,oBACA,2BACA,sBACA,cACA,sBACA,uBACA,mBACA,cACA,sBACA,uBACA,mBACA,MACA,WACA,OACA,SACA,qBACA,iBACA,qBACA,YACA,aACA,qCACA,gBACA,kBACA,eACA,MACA,eACA,YACA,uBACA,WACA,gBACA,mBACA,gBACA,0BACA,iBACA,6BACA,kBACA,iBACA,oBACA,4BACA,mBACA,uBACA,mBACA,eACA,2BACA,cACA,qCACA,gCACA,iBACA,sBACA,0BACA,iBACA,iBACA,eACA,2BACA,eACA,gBACA,cACA,0BACA,eACA,8BACA,YACA,eACA,iBACA,oBACA,uCACA,gBACA,mBACA,gBACA,aACA,gBACA,YACA,aACA,kBACA,sBACA,oBACA,iBACA,uBACA,kBACA,UACA,kBACA,eACA,uBACA,kBACA,qBACA,uBACA,UACA,eACA,mBACA,iBACA,cACA,oBACA,eACA,0BACA,oBACA,cACA,mBACA,wBACA,mBACA,oBACA,mBACA,sBACA,wBACA,kBACA,uBACA,oBACA,yBACA,YACA,iBACA,cACA,mBACA,wBACA,mBACA,cACA,mBACA,WACA,gBACA,oBACA,gBACA,iBACA,MACA,eACA,eACA,WACA,kBACA,SACA,SACA,OACA,YACA,uBACA,qBACA,OACA,cACA,YACA,YACA,SACA,gBACA,kBACA,eACA,yBACA,0BACA,8BACA,2BACA,iCACA,uBACA,0BACA,uBACA,aACA,eACA,iBACA,cACA,mBACA,gBACA,cACA,UACA,kBACA,cACA,eACA,YACA,uBACA,iBACA,gBACA,eACA,gBACA,mBACA,kBACA,WACA,gBACA,UACA,mBACA,cACA,IACA,uBACA,sBACA,0BACA,mBACA,YACA,aACA,OACA,MACA,SACA,UACA,KACA,cACA,OACA,cACA,UACA,kBACA,yBACA,OACA,aACA,SACA,YACA,mBACA,aACA,8BACA,UACA,WACA,qBACA,gBACA,YACA,UACA,kBACA,kBACA,kBACA,WACA,kBACA,0BACA,UACA,UACA,gBACA,iBACA,cACA,iBACA,wBACA,KACA,SACA,QACA,oBACA,WACA,WACA,aACA,gBACA,YACA,2BACA,2BACA,gBACA,oBACA,MACA,QACA,eACA,kBACA,sBACA,8BACA,2BACA,aACA,iBACA,iBACA,2BACA,mBACA,iBACA,kBACA,eACA,OACA,UACA,UACA,WACA,UACA,WACA,UACA,aACA,oBACA,aACA,gBACA,uBACA,YACA,aACA,kBACA,QACA,YACA,UACA,gBACA,aACA,oBACA,qBACA,sBACA,wBACA,wBACA,gBACA,eACA,aACA,mBACA,oBACA,gBACA,sBACA,eACA,eACA,gBACA,aACA,mBACA,qBACA,cACA,uBACA,mBACA,kBACA,eACA,aACA,UACA,eACA,cACA,kBACA,UACA,WACA,iBACA,iBACA,kBACA,kBACA,cACA,kBACA,cACA,aACA,qBACA,YACA,YACA,aACA,iBACA,kBACA,wBACA,cACA,cACA,kBACA,cACA,cACA,OACA,UACA,iBACA,QACA,WACA,kBACA,UACA,eACA,kBACA,yBACA,aACA,qBACA,kBACA,mBACA,gBACA,kBACA,aACA,iBACA,mBACA,kBACA,cACA,cACA,gBACA,gBACA,kBACA,iBACA,cACA,gBACA,cACA,YACA,qBACA,+BACA,qBACA,qBACA,oBACA,yBACA,iBACA,mBACA,sBACA,mBACA,YACA,aACA,gBACA,kBACA,aACA,eACA,aACA,iBACA,qBACA,6BACA,WACA,OACA,eACA,6BACA,WACA,0BACA,eACA,YACA,uBACA,cACA,cACA,YACA,eACA,iBACA,eACA,qBACA,iBACA,eACA,QACA,2BACA,0BACA,cACA,OACA,YACA,aACA,UACA,iBACA,kBACA,cACA,cACA,cACA,QACA,aACA,MACA,aACA,aACA,uBACA,yBACA,sBACA,cACA,gBACA,iBACA,kBACA,YACA,4BACA,wBACA,cACA,mBACA,YACA,cACA,mBACA,0BACA,oBACA,iBACA,kBACA,oBACA,qBACA,mBACA,oBACA,kBACA,mBACA,iBACA,iBACA,mBACA,mBACA,qBACA,qBACA,eACA,qBACA,UACA,oBACA,gBACA,wBACA,sBACA,kBACA,mBACA,oBACA,kBACA,aACA,mBACA,gBACA,eACA,aACA,qBACA,KACA,OACA,UACA,sBACA,iBACA,UACA,YACA,kBACA,WACA,aACA,cACA,kBACA,WACA,OACA,iBACA,WACA,mBACA,aACA,sBACA,SACA,cACA,qBACA,QACA,cACA,cACA,eACA,qBACA,iBACA,oBACA,aACA,YACA,OACA,YACA,OACA,SACA,cACA,eACA,aACA,YACA,aACA,aACA,cACA,cACA,aACA,YACA,oBACA,2BACA,mBACA,aACA,YACA,YACA,YACA,OACA,YACA,aACA,YACA,WACA,QACA,aACA,oBACA,WACA,kBACA,mBACA,cACA,YACA,4BACA,sBACA,iBACA,gBACA,YACA,kBACA,iBACA,YACA,aACA,kBACA,0BACA,YACA,UACA,eACA,sBACA,kBACA,eACA,aACA,oBACA,qBACA,uBACA,mBACA,uBACA,eACA,aACA,kBACA,wBACA,iBACA,0BACA,kBACA,UACA,wBACA,iBACA,gBACA,gBACA,gBACA,cACA,qBACA,8BACA,mBACA,sBACA,cACA,eACA,YACA,eACA,sBACA,YACA,cACA,WACA,gBACA,WACA,0BACA,mBACA,oBACA,gBACA,8BACA,gBACA,UACA,aACA,QACA,oBACA,cACA,WACA,eACA,aACA,uBACA,wBACA,2BACA,aACA,iBACA,WACA,gBACA,qBACA,gBACA,YACA,gBACA,eACA,UACA,iBACA,oBACA,uBACA,wBACA,8BACA,iBACA,kBACA,SACA,eACA,UACA,eACA,YACA,qBACA,gBACA,uBACA,WACA,eACA,eACA,yBACA,qBACA,QACA,UACA,aACA,UACA,cACA,SACA,SACA,aACA,uBACA,gBACA,oBACA,sBACA,iBACA,QACA,kBACA,cACA,YACA,iBACA,kBACA,oBACA,6BACA,2BACA,aACA,sBACA,iBACA,iBACA,QACA,WACA,kBACA,qBACA,2BACA,qBACA,yBACA,aACA,yBACA,eACA,cACA,0BACA,kBACA,gBACA,uBACA,iBACA,oBACA,mBACA,qBACA,YACA,mBACA,qBACA,gBACA,8BACA,oBACA,qBACA,gBACA,oBACA,UACA,sBACA,aACA,oBACA,uBACA,8BACA,aACA,SACA,aACA,cACA,aACA,WACA,eACA,gBACA,aACA,eACA,UACA,YACA,cACA,UACA,gBACA,4BACA,YACA,cACA,aACA,uBACA,SACA,MACA,YACA,UACA,aACA,oBACA,YACA,aACA,SACA,qBACA,eACA,cACA,aACA,kBACA,uBACA,wBACA,WACA,eACA,WACA,gBACA,uBACA,eACA,oBACA,YACA,eACA,mBACA,gCACA,6BACA,6BACA,mCACA,WACA,oBACA,YACA,mBACA,QACA,yBACA,kBACA,kBACA,QACA,OACA,WACA,oBACA,sBACA,sBACA,aACA,oBACA,cACA,iBACA,iBACA,wBACA,QACA,iBACA,eACA,gBACA,oBACA,gBACA,OACA,SACA,eACA,cACA,gBACA,eACA,iBACA,oBACA,cACA,cACA,iBACA,gBACA,oBACA,cACA,gBACA,mBACA,cACA,aACA,eACA,aACA,gBACA,gBACA,oBACA,aACA,QACA,cACA,qBACA,YACA,YACA,mBACA,SACA,WACA,cACA,qBACA,cACA,YACA,mBACA,YACA,aACA,WACA,oBACA,cACA,YACA,SACA,WACA,WACA,UACA,YACA,uBACA,KACA,OACA,gBACA,WACA,WACA,gBACA,aACA,OACA,UACA,wBACA,aACA,eACA,QACA,WACA,OACA,oBACA,mBACA,uBACA,SACA,cACA,mBACA,YACA,eACA,sBACA,iBACA,mBACA,8BACA,mBACA,kBACA,sBACA,MACA,SACA,SACA,qBACA,mBACA,uBACA,SACA,mBACA,sBACA,UACA,cACA,SACA,iBACA,iBACA,sBACA,eACA,iBACA,mBACA,kBACA,iBACA,iBACA,yBACA,2BACA,cACA,qBACA,iBACA,cACA,qBACA,gBACA,eACA,uBACA,eACA,gBACA,wBACA,aACA,eACA,gBACA,UACA,eACA,aACA,4BACA,cACA,eACA,4BACA,oBACA,iBACA,oBACA,iBACA,OACA,aACA,WACA,YACA,YACA,qBACA,gBACA,UACA,cACA,0BACA,cACA,aACA,6BACA,gBACA,yBACA,aACA,YACA,mBACA,SACA,qBACA,yBACA,oBACA,mBACA,wBACA,2BACA,UACA,mBACA,0BACA,2BACA,iBACA,sBACA,cACA,oBACA,kBACA,aACA,YACA,mBACA,iBACA,aACA,aACA,WACA,eACA,iBACA,iBACA,mBACA,UACA,aACA,kBACA,oBACA,cACA,cACA,oBACA,kBACA,iBACA,6BACA,aACA,0BACA,mBACA,UACA,qBACA,iBACA,mBACA,qBACA,eACA,UACA,cACA,UACA,kBACA,eACA,mBACA,iBACA,mBACA,iBACA,iBACA,2BACA,iBACA,qBACA,qBACA,iBACA,kBACA,eACA,OACA,kBACA,aACA,YACA,eACA,SACA,oBACA,yBACA,wBACA,eACA,wBACA,mBACA,UACA,iBACA,mCACA,iBACA,qBACA,eACA,cACA,gBACA,uBACA,iBACA,mBACA,WACA,eACA,mBACA,cACA,WACA,qBACA,iBACA,YACA,SACA,QACA,aACA,gBACA,sBACA,mBACA,2BACA,qBACA,kBACA,qBACA,WACA,gBACA,iBACA,gBACA,mBACA,qBACA,oBACA,mBACA,gBACA,mBACA,cACA,iBACA,4BACA,0BACA,8BACA,qBACA,qBACA,eACA,OACA,kBACA,gBACA,gBACA,iBACA,eACA,aACA,QACA,UACA,SACA,cACA,aACA,cACA,iBACA,cACA,qBACA,iBACA,oBACA,QACA,eACA,iBACA,MACA,gBACA,iBACA,SACA,aACA,WACA,eACA,YACA,YACA,cACA,SACA,cACA,eACA,kBACA,OACA,gBACA,cACA,WACA,WACA,aACA,MACA,aACA,mBACA,aACA,oBACA,iBACA,0BACA,QACA,WACA,qBACA,qBACA,cACA,uBACA,mBACA,aACA,iBACA,gBACA,eACA,cACA,gBACA,sBACA,0BACA,eACA,WACA,OACA,WACA,iBACA,iBACA,kBACA,sBACA,eACA,QACA,SACA,iBACA,sBACA,cACA,eACA,cACA,kBACA,mBACA,gBACA,mBACA,OACA,gBACA,uBACA,2BACA,+BACA,sBACA,iBACA,qBACA,iBACA,8BACA,WACA,gBACA,WACA,gBACA,kBACA,yBACA,uBACA,aACA,cACA,gBACA,cACA,wBACA,aACA,mBACA,iBACA,mBACA,oBACA,gBACA,oBACA,qBACA,MACA,OACA,mBACA,8BACA,kBACA,cACA,gBACA,eACA,gBACA,2BACA,4BACA,aACA,SACA,aACA,mBACA,gBACA,mBACA,cACA,YACA,mBACA,gBACA,0BACA,4BACA,2BACA,sBACA,uBACA,yBACA,oBACA,8BACA,gBACA,uBACA,oBACA,qBACA,YACA,gBACA,iBACA,uBACA,yBACA,kCACA,2BACA,WACA,cACA,WACA,oBACA,yBACA,gBACA,gBACA,eACA,mBACA,eACA,eACA,oBACA,oBACA,mBACA,kBACA,4BACA,kBACA,oBACA,uBACA,gBACA,SACA,oBACA,aACA,iBACA,iBACA,oBACA,iBACA,gBACA,iBACA,kBACA,gBACA,gBACA,cACA,MACA,cACA,kBACA,gBACA,WACA,wBACA,oBACA,aACA,aACA,eACA,iBACA,wBACA,cACA,wBACA,wBACA,aACA,mBACA,iBACA,eACA,cACA,8BACA,sBACA,oBACA,oBACA,4BACA,oBACA,iBACA,mBACA,SACA,YACA,YACA,mBACA,UACA,WACA,WACA,UACA,UACA,iBACA,kBACA,QACA,cACA,UACA,iBACA,oBACA,cACA,mBACA,8BACA,wBACA,QACA,iBACA,WACA,gBACA,uBACA,iBACA,kBACA,mBACA,uBACA,eACA,OACA,kBACA,qBACA,iBACA,kBACA,gBACA,eACA,qBACA,iBACA,eACA,eACA,oBACA,yBACA,kBACA,0BACA,iBACA,0BACA,gBACA,mBACA,wBACA,uBACA,mBACA,iBACA,wBACA,eACA,cACA,kBACA,kBACA,iBACA,OACA,YACA,iBACA,uBACA,oBACA,cACA,WACA,kBACA,cACA,eACA,iBACA,oBACA,UACA,WACA,MACA,OACA,2BACA,mBACA,sBACA,oBACA,6BACA,oBACA,oBACA,iBACA,OACA,eACA,cACA,aACA,WACA,oBACA,sBACA,WACA,yBACA,YACA,OACA,qBACA,qBACA,oBACA,oBACA,SACA,WACA,cACA,qBACA,YACA,mBACA,YACA,OACA,eACA,QACA,cACA,UACA,qBACA,wBACA,0BACA,yBACA,kBACA,oBACA,2BACA,eACA,UACA,iBACA,kBACA,SACA,gBACA,eACA,iBACA,eACA,aACA,oBACA,eACA,UACA,gBACA,iBACA,eACA,2BACA,eACA,yBACA,aACA,YACA,eACA,QACA,cACA,eACA,OACA,SACA,WACA,oBACA,QACA,mBACA,YACA,cACA,aACA,MACA,QACA,iBACA,YACA,SACA,WACA,OACA,kBACA,wBACA,gBACA,eACA,eACA,oBACA,cACA,cACA,qBACA,gBACA,cACA,2BACA,gBACA,6BACA,QACA,gBACA,kBACA,mBACA,cACA,cACA,kBACA,mBACA,cACA,mBACA,cACA,cACA,oBACA,kBACA,mBACA,qBACA,yBACA,uBACA,2BACA,kBACA,4BACA,SACA,YACA,eACA,mBACA,mBACA,oBACA,oBACA,qBACA,kBACA,kBACA,iBACA,uBACA,0BACA,eACA,oBACA,eACA,oBACA,yBACA,eACA,oBACA,eACA,oBACA,SACA,sBACA,eACA,eACA,cACA,gBACA,QACA,UACA,eACA,OACA,UACA,iBACA,SACA,2BACA,cACA,qBACA,gBACA,yBACA,WACA,eACA,oBACA,iBACA,sBACA,cACA,aACA,cACA,mBACA,wBACA,qBACA,QACA,aACA,gBACA,sBACA,kBACA,eACA,eACA,yBACA,oBACA,0BACA,eACA,cACA,eACA,oBACA,sBACA,OACA,kBACA,WACA,YACA,wBACA,uBACA,mBACA,cACA,gBACA,eACA,qBACA,eACA,kBACA,kBACA,qBACA,uBACA,gBACA,kBACA,wBACA,sBACA,+BACA,yBACA,mCACA,6BACA,aACA,mBACA,cACA,0BACA,iBACA,iBACA,aACA,aACA,uBACA,oBACA,oBACA,kBACA,sBACA,sBACA,6BACA,oBACA,gBACA,aACA,eACA,iBACA,UACA,cACA,cACA,SACA,cACA,kBACA,cACA,kBACA,cACA,eACA,aACA,cACA,mBACA,gBACA,aACA,eACA,cACA,eACA,aACA,eACA,eACA,gBACA,iBACA,aACA,kBACA,iBACA,UACA,eACA,gBACA,oBACA,oBACA,gBACA,eACA,mBACA,oBACA,iBACA,cACA,gBACA,aACA,iBACA,oBACA,iBACA,aACA,aACA,eACA,oBACA,aACA,uBACA,kBACA,uBACA,sBACA,UACA,UACA,OACA,uBACA,QACA,WACA,qBACA,YACA,mBACA,YACA,aACA,kBACA,mBACA,0BACA,aACA,aACA,iBACA,YACA,eACA,WACA,WACA,UACA,mCACA,0BACA,gBACA,YACA,eACA,sBACA,cACA,eACA,SACA,cACA,cACA,cACA,YACA,iBACA,UACA,gBACA,UACA,UACA,qBACA,iBACA,oBACA,2BACA,mBACA,iBACA,WACA,eACA,gBACA,YACA,WACA,gBACA,qBACA,gBACA,UACA,WACA,MACA,iBACA,iBACA,SACA,cACA,UACA,SACA,cACA,aACA,gBACA,YACA,cACA,iBACA,wBACA,WACA,gBACA,YACA,OACA,WACA,oBACA,cACA,eACA,cACA,kBACA,uBACA,mBACA,gBACA,mBACA,gBACA,qBACA,iBACA,eACA,SACA,SACA,aACA,gBACA,YACA,iBACA,eACA,mBACA,sBACA,qBACA,aACA,mBACA,wBACA,iCACA,mCACA,yBACA,4BACA,sBACA,WACA,SACA,aACA,oBACA,eACA,eACA,UACA,0BACA,mBACA,uBACA,sBACA,uBACA,8BACA,oBACA,kBACA,YACA,iBACA,oBACA,wBACA,gBACA,cACA,gBACA,sBACA,uBACA,gCACA,kBACA,+BACA,yBACA,eACA,sBACA,iCACA,4BACA,aACA,gBACA,oBACA,kBACA,0BACA,oBACA,+BACA,qBACA,yBACA,sBACA,8BACA,qBACA,wBACA,oBACA,oBACA,8BACA,4BACA,mCACA,mCACA,aACA,aACA,MACA,aACA,QACA,kBACA,aACA,kBACA,YACA,gBACA,eACA,YACA,eACA,yBACA,uBACA,sBACA,cACA,UACA,aACA,oBACA,SACA,aACA,gBACA,eACA,SACA,gBACA,WACA,WACA,OACA,WACA,cACA,gBACA,WACA,eACA,iBACA,YACA,QACA,MACA,OACA,eACA,kBACA,eACA,cACA,YACA,cACA,aACA,aACA,aACA,QACA,cACA,WACA,aACA,mBACA,gBACA,iBACA,cACA,qBACA,mBACA,qBACA,aACA,iBACA,mBACA,eACA,uBACA,sBACA,mBACA,eACA,eACA,qBACA,YACA,oBACA,iBACA,mBACA,eACA,gBACA,UACA,aACA,eACA,iBACA,kBACA,cACA,SACA,aACA,mBACA,mBACA,cACA,iBACA,wBACA,UACA,UACA,OACA,YACA,mBACA,gBACA,WACA,kBACA,UACA,YACA,WACA,oBACA,eACA,WACA,cACA,WACA,WACA,oBACA,WACA,aACA,gBACA,eACA,gBACA,aACA,mBACA,gBACA,aACA,gBACA,YACA,kBACA,UACA,4BACA,2BACA,YACA,YACA,oBACA,mBACA,QACA,YACA,OACA,WACA,WACA,kBACA,SACA,iBACA,eACA,YACA,UACA,QACA,YACA,YACA,WACA,QACA,aACA,WACA,QACA,aACA,iBACA,aACA,kBACA,iBACA,gBACA,aACA,WACA,eACA,aACA,cACA,gBACA,QACA,UACA,aACA,sBACA,qBACA,mBACA,0BACA,gBACA,sBACA,kBACA,qBACA,qBACA,oBACA,kBACA,mBACA,mBACA,WACA,YACA,4BACA,sBACA,WACA,kBACA,iBACA,SACA,OACA,gBACA,aACA,UACA,kBACA,UACA,wBACA,SACA,QACA,sBACA,WACA,iBACA,eACA,aACA,WACA,SACA,cACA,UACA,aACA,aACA,oBACA,mBACA,yBACA,aACA,YACA,cACA,WACA,gBACA,SACA,UACA,aACA,oBACA,eACA,eACA,cACA,MACA,kBACA,qBACA,kBACA,aACA,UACA,yBACA,WACA,QACA,cACA,aACA,uBACA,aACA,gBACA,sBACA,8BACA,cACA,KACA,QACA,aACA,cACA,gBACA,aACA,cACA,eACA,gBACA,aACA,WACA,UACA,gBACA,aACA,YACA,iBACA,mBACA,yBACA,eACA,kBACA,8BACA,sBACA,mBACA,gCACA,2BACA,+BACA,4BACA,4BACA,yBACA,yBACA,yBACA,yBACA,wBACA,wBACA,4BACA,wBACA,sBACA,yBACA,0BACA,uBACA,0BACA,mBACA,qBACA,oBACA,sBACA,qBACA,mBACA,yBACA,2BACA,YACA,qBACA,uBACA,gBACA,cACA,mBACA,YACA,iBACA,gBACA,mBACA,uBACA,iBACA,qBACA,eACA,aACA,WACA,YACA,aACA,WACA,aACA,WACA,iBACA,oBACA,sBACA,eACA,yBACA,kBACA,OACA,aACA,aACA,iBACA,UACA,aACA,YACA,cACA,kBACA,oBACA,OACA,QACA,wBACA,sBACA,kCACA,+BACA,QACA,OACA,qBACA,4BACA,UACA,iBACA,sBACA,6BACA,UACA,0BACA,cACA,aACA,SACA,aACA,gBACA,kBACA,aACA,QACA,gBACA,SACA,aACA,0BACA,YACA,WACA,YACA,aACA,kBACA,qBACA,4BACA,cACA,iBACA,wBACA,sBACA,iBACA,kBACA,mBACA,cACA,uBACA,UACA,YACA,cACA,sBACA,2BACA,oBACA,yBACA,YACA,QACA,qBACA,YACA,SACA,iBACA,UACA,cACA,iBACA,UACA,eACA,eACA,WACA,aACA,eACA,aACA,kBACA,kBACA,oBACA,iBACA,WACA,YACA,8BACA,UACA,mBACA,QACA,cACA,qBACA,KACA,UACA,aACA,mBACA,SACA,uBACA,kCACA,iBACA,oBACA,oBACA,cACA,gBACA,aACA,iBACA,kBACA,qBACA,yBACA,WACA,QACA,eACA,QACA,aACA,OACA,WACA,MACA,WACA,YACA,gBACA,cACA,oBACA,YACA,aACA,YACA,WACA,uBACA,WACA,iBACA,iBACA,UACA,kBACA,UACA,sBACA,aACA,YACA,mBACA,qBACA,QACA,gBACA,kBACA,QACA,uBACA,mBACA,gBACA,QACA,WACA,kBACA,kBACA,YACA,6BACA,SACA,SACA,aACA,YACA,WACA,0BACA,4BACA,4BACA,eACA,cACA,eACA,oBACA,sBACA,6BACA,oBACA,kBACA,gBACA,qBACA,aACA,kBACA,gBACA,aACA,eACA,eACA,UACA,cACA,UACA,cACA,gBACA,cACA,cACA,MACA,WACA,UACA,mCACA,mBACA,oBACA,mBACA,yBACA,sBACA,uBACA,6BACA,kBACA,wBACA,UACA,uBACA,gBACA,YACA,iBACA,eACA,kBACA,qBACA,iBACA,wBACA,oBACA,8BACA,yBACA,cACA,eACA,wBACA,eACA,eACA,uBACA,qBACA,oBACA,iBACA,cACA,0BACA,iBACA,eACA,mBACA,aACA,gBACA,qBACA,kBACA,UACA,0BACA,gBACA,cACA,sBACA,aACA,cACA,2BACA,eACA,uBACA,WACA,cACA,eACA,gBACA,oBACA,iBACA,gBACA,QACA,gBACA,qBACA,iBACA,gBACA,aACA,YACA,SACA,YACA,cACA,eACA,kBACA,cACA,YACA,YACA,aACA,aACA,YACA,4BACA,WACA,iBACA,YACA,aACA,eACA,mBACA,UACA,cACA,iBACA,oBACA,cACA,SACA,uBACA,cACA,UACA,uBACA,WACA,YACA,qBACA,sCACA,yBACA,wBACA,kBACA,sBACA,oBACA,iCACA,mBACA,4BACA,mBACA,kBACA,oBACA,oBACA,aACA,aACA,eACA,mBACA,mBACA,4BACA,iCACA,wBACA,mBACA,cACA,sBACA,iBACA,mBACA,SACA,aACA,WACA,iBACA,YACA,mBACA,cACA,kBACA,QACA,YACA,sBACA,gBACA,gBACA,gBACA,kBACA,kBACA,kBACA,yBACA,0BACA,0BACA,0BACA,yBACA,yBACA,wBACA,eACA,oBACA,mBACA,kBACA,yBACA,0BACA,eACA,iBACA,UACA,cACA,aACA,YACA,QACA,QACA,QACA,oBACA,aACA,aACA,sBACA,aACA,aACA,eACA,gBACA,UACA,+BACA,eACA,iBACA,gBACA,kBACA,SACA,aACA,oBACA,eACA,iBACA,oBACA,iBACA,iBACA,cACA,sBACA,gBACA,gBACA,gBACA,yBACA,iBACA,aACA,mBACA,cACA,iBACA,cACA,gBACA,iBACA,iBACA,qBACA,4BACA,OACA,eACA,mBACA,uBACA,qBACA,sBACA,OACA,eACA,gBACA,YACA,YACA,aACA,WACA,iBACA,gBACA,oBACA,WACA,kBACA,aACA,wBACA,iBACA,eACA,WACA,kBACA,mBACA,aACA,QACA,YACA,cACA,YACA,aACA,YACA,cACA,OACA,MACA,WACA,SACA,YACA,oBACA,WACA,gBACA,WACA,iBACA,OACA,WACA,cACA,mBACA,aACA,aACA,QACA,aACA,WACA,qBACA,iBACA,4BACA,mBACA,oBACA,iCACA,iBACA,kBACA,eACA,oBACA,iBACA,iBACA,qBACA,sBACA,iBACA,wBACA,cACA,eACA,kBACA,YACA,gBACA,sBACA,YACA,eACA,qBACA,sBACA,oBACA,aACA,kBACA,mBACA,yBACA,mBACA,uBACA,yBACA,sBACA,sBACA,mBACA,eACA,iBACA,gBACA,sBACA,mCACA,eACA,qBACA,iBACA,qBACA,WACA,eACA,wBACA,WACA,eACA,gBACA,eACA,eACA,qBACA,kBACA,oBACA,2BACA,4BACA,eACA,mBACA,wBACA,oBACA,kBACA,2BACA,eACA,qBACA,gCACA,WACA,mBACA,uBACA,qBACA,QACA,yBACA,sBACA,gBACA,UACA,uBACA,yBACA,yBACA,iBACA,2BACA,uBACA,UACA,uBACA,gBACA,cACA,YACA,mBACA,kBACA,eACA,mBACA,sBACA,wBACA,qBACA,iBACA,iBACA,mBACA,eACA,eACA,aACA,wBACA,mBACA,iBACA,kBACA,iBACA,wBACA,oBACA,kBACA,0BACA,SACA,iBACA,sBACA,aACA,oBACA,yBACA,wBACA,oBACA,kBACA,eACA,YACA,YACA,mBACA,eACA,yBACA,aACA,oBACA,iBACA,uBACA,eACA,QACA,UACA,iBACA,eACA,aACA,mBACA,oBACA,iBACA,kBACA,kBACA,aACA,eACA,oBACA,eACA,qBACA,uBACA,0BACA,oBACA,aACA,qBACA,gBACA,iBACA,iBACA,eACA,mBACA,YACA,oBACA,aACA,sBACA,gBACA,eACA,gBACA,oBACA,qBACA,kBACA,cACA,aACA,8BACA,aACA,WACA,eACA,OACA,mBACA,UACA,eACA,mBACA,uBACA,YACA,cACA,mBACA,gBACA,gBACA,QACA,qBACA,mBACA,eACA,wBACA,mBACA,mBACA,iBACA,aACA,QACA,OACA,wBACA,qBACA,YACA,WACA,cACA,gBACA,uBACA,aACA,kBACA,iBACA,sBACA,eACA,eACA,eACA,kBACA,2BACA,sBACA,iBACA,oBACA,sBACA,wBACA,iBACA,iBACA,qBACA,qBACA,kCACA,2BACA,YACA,aACA,iBACA,mBACA,mBACA,gBACA,wBACA,cACA,qBACA,oBACA,oBACA,2BACA,0BACA,yBACA,iBACA,UACA,2BACA,yBACA,YACA,gBACA,eACA,kBACA,oBACA,gBACA,sBACA,mBACA,gBACA,aACA,YACA,YACA,YACA,kBACA,gBACA,YACA,WACA,gBACA,mBACA,kBACA,cACA,UACA,uBACA,sBACA,oBACA,iBACA,4BACA,mBACA,oBACA,qBACA,4BACA,0BACA,YACA,YACA,eACA,WACA,iBACA,iBACA,iBACA,eACA,6BACA,aACA,gBAYF,SAASvz3B,EAAOugK,GACd,OAAKA,EACa,kBAAPA,EAAwBA,EAE5BA,EAAGvgK,OAHM,IAIlB,CAMA,SAASokM,EAAS7jC,GAChB,OAAO5iK,EAAO,IAAK4iK,EAAI,KACzB,CAMA,SAAS5iK,IAAgB,QAAA2F,EAAAvD,UAAAlkB,OAAN6nB,EAAI,IAAAnG,MAAA+F,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJE,EAAIF,GAAAzD,UAAAyD,GAErB,OADeE,EAAKvY,KAAK/E,GAAM4Z,EAAO5Z,KAAI6b,KAAK,GAEjD,CASA,SAAS0z2B,IAAgB,QAAAly2B,EAAA1D,UAAAlkB,OAAN6nB,EAAI,IAAAnG,MAAAkG,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,GAAA5D,UAAA4D,GAErB,MADe,IAAMD,EAAKvY,KAAK/E,GAAM4Z,EAAO5Z,KAAI6b,KAAK,KAAO,GAE9D,CA8HAi+L,EAAOrtL,QAnHP,SAAqBum2B,GAKnB,MAGMoa,EAAiB7d,EAAOh42B,EAHd,+BACO,2BACL,2BAeZuj3B,EAAU,CACdxr3B,UAAW,SACXmgO,UAAW,EACXj0H,MAT4BjkG,EAC5B613B,EACApvrB,EAN4BuxqB,EAFV,iCACC,qCAQnBvxqB,EAL6B,kBAczBghrB,EAAY,yBACZqO,EAAqB,IAAIr5uB,IAAIm5uB,GAE7BzI,EAAU,CACdrptB,SAAU,CACR,CACE/rK,UAAW,iBACXksG,MAAOwjxB,EAEP,WAAYpQ,CAAC52wB,EAAOz/G,KACb804B,EAAmB172B,IAAIqmF,EAAM,KAAKz/G,EAASqz3B,aAAa,GAGjE,CACEt82B,UAAW,SACXmgO,UAAW,EACXj0H,MAAOwjxB,KAiCPsO,EAAW,CACfh+3B,UAAW,eACXmgO,UAAW,EACXj0H,MAAOjkG,EAAO,KAAMyn3B,IAGtB,MAAO,CACL/p4B,KAAM,cACNuqL,QAAS,CACP,MACA,MAEFmysB,iBAAkB,CAChB4b,MAAO,cACPnyxB,QAAS,OACTgU,KAAM,OACNy3G,OAAQ,WACR,kBAAmB,WACnB,iBAAkB,WAClB,eAAgB,UAElBxkN,SAAU,CACR2w2B,EAAKh2wB,QAAQ,OAAQ,OAAQ,CAC3B36F,SAAU,CAAE,UAzCD,CACf/S,UAAW,UACXmgO,UAAW,EACXj0H,MAAO,wDAGK,CACZlsG,UAAW,OACXmgO,UAAW,EACXj0H,MAAO,oCAoCL8xxB,EACA5I,EAxDoB,CACtBp13B,UAAW,kBACXksG,MAAO,gCAwDLw3wB,EAAKtF,kBACLoN,EAtDc,CAChBxr3B,UAAW,WACXmgO,UAAW,EACXj0H,MAAO,8BAcM,CACblsG,UAAW,QACXmgO,UAAW,EACXj0H,MAAO,cAuCX,qBCjiNAs+F,EAAOrtL,QA7FP,SAAgBum2B,GAEd,IAAIwa,EAAe,YACfC,EAAY,CACdh+pB,UAAW,EACXptN,SAAU,CACR,CAAEm5F,MAAOgyxB,KAIb,MAAO,CACLv44B,KAAM,SACNk63B,SAAU,CACRe,QACE,qLAEF+K,SACE,swCAiBJxN,QAAS,0BACTpr2B,SAAU,CACR,CACE/S,UAAW,WACX2/2B,cAAe,WAAYtq3B,IAAK,IAChC0d,SAAU,CACR2w2B,EAAK3E,sBACL,CACE/+2B,UAAW,SACX+rK,SAAU,CACR,CAAC7/D,MAAO,MAAO72G,IAAK,OACpB,CAAC62G,MAAO,MAAO72G,IAAK,WAK5B,CACE2K,UAAW,WACXksG,MAAO,aACPi0H,UAAW,EACXkjpB,OAAQ8a,GAEV,CACEjyxB,MAAO,wBAA0BgyxB,EACjC/9pB,UAAW,GAEb,CACEngO,UAAW,SACXksG,MAAOw3wB,EAAK3F,YACZ59oB,UAAW,EACXkjpB,OAAQ8a,GAEV,CACEn+3B,UAAW,SACXksG,MAAO,IAAM72G,IAAK,IAClB0d,SAAU,CACR2w2B,EAAKzF,iBACL,CAAC/xwB,MAAO,QAEZ,CACEA,MAAO,WACPi0H,UAAW,EACXkjpB,OAAQ8a,GAEV,CACEn+3B,UAAW,SACXksG,MAAO,IAAK72G,IAAK,IACjB0d,SAAU,CACR2w2B,EAAKzF,iBACL,CAAC/xwB,MAAO,OAEVm3wB,OAAQ8a,GAEVza,EAAKh2wB,QAAQ,iBAAkB,kBAC/Bg2wB,EAAKh2wB,QAAQ,IAAK,MAGxB,qBCyTA88F,EAAOrtL,QAzZP,SAAgBum2B,GAyWd,MAAO,CACL/93B,KAAM,SACNk63B,SAAU,CACR6C,SAAU,2BACV9B,QA3WF,kEA4WEmL,QA1WF,4DA2WEJ,SAzWF,032BA0WEp0pB,OATY,iBAWdxkN,SAAU,CACR,CACE/S,UAAW,UACXksG,MAAO,OACP72G,IAAK,OACL0d,SAAU,CAAE,SAEd2w2B,EAAKtF,kBACL,CACEp+2B,UAAW,SACXmgO,UAAW,EACXp0D,SAAU,CACR,CAGE7/D,MAAO,yDAET,CAEEA,MAAO,wDACPi0H,UAAW,IAEb,CAGEj0H,MAAO,+BAET,CAGEA,MAAO,qCAKfiywB,QAAS,IAEb,qBCnLA3zqB,EAAOrtL,QAnOP,SAAaum2B,GACX,MAAO,CACL/93B,KAAM,MACNk63B,SACE,o0fA2MF1B,QAAS,KACTpr2B,SAAU,CACR2w2B,EAAKhF,cACLgF,EAAKxF,iBACLwF,EAAKtF,kBACL,CACEp+2B,UAAW,SACXksG,MAAO,IACP72G,IAAK,IACL0d,SAAU,CAAE2w2B,EAAKzF,mBAEnB,CACE/xwB,MAAO,2CAETw3wB,EAAKpF,oBACLoF,EAAKnF,sBAGX,qBCjHA/zqB,EAAOrtL,QAjHP,SAAiBum2B,GACf,MA6BMh2wB,EAAUg2wB,EAAKh2wB,QAAQ,IAAK,KAO5B0wxB,EAAO1a,EAAKtotB,QAAQsotB,EAAKxF,iBAAkB,CAC/C/9oB,UAAW,IAEP03T,EAAS6rV,EAAKtotB,QAAQsotB,EAAKtF,kBAAmB,CAClDj+oB,UAAW,IA8Cb,OAvCA03T,EAAO9khB,SAAW8khB,EAAO9khB,SAASpH,QAClCkshB,EAAO9khB,SAAS5L,KANG,CACjBnH,UAAW,QACXksG,MAAO,wEACPi0H,UAAW,IAyCN,CACLx6O,KAAM,UACNuqL,QAAS,CACP,IACA,OAEF2vsB,SA5Fe,CACfe,QACE,odAOFh7rB,KAEE,grBAaF+lsB,SACE,qIAoEF542B,SAAU,CA3CQ,CAClB/S,UAAW,WACX+rK,SAAU,CACR,CACE7/D,MAAO,OAET,CACEA,MAAO,KACPi0H,UAAW,GAEb,CACEj0H,MAAO,KACPi0H,UAAW,GAEb,CACEj0H,MAAO,SAET,CACEA,MAAO,WAKiB,CAC5BlsG,UAAW,WACX+rK,SAAU,CACR,CACE7/D,MAAO,eAET,CACEA,MAAO,IACPi0H,UAAW,KAebzyH,EACAg2wB,EAAKnF,qBAlEO,CACdv+2B,UAAW,SACXksG,MAAO,4BAkELw3wB,EAAKjF,YACL2f,EACAvmW,EACA,CACE3rb,MAAO,MAET,CACEA,MAAO,QAIf,qBCVAs+F,EAAOrtL,QApGP,SAAiBum2B,GAEf,MAAO,CACL/93B,KAAM,gBACNw73B,kBAAkB,EAClBjxsB,QAAS,CAAE,QACX2vsB,SAAU,CACR6C,SAAU,OAASgB,EAAK9F,SACxBh4rB,KAEE,6OACF+lsB,SACE,opBAYJ542B,SAAU,CACR,CACE/S,UAAW,UACXksG,MAAO,63BAqBP72G,IAAK,OAGPqu3B,EAAKh2wB,QAAQ,gBAAiB,KAC9Bg2wB,EAAKnF,qBACLmF,EAAKtF,kBACL,CACEp+2B,UAAW,SACXksG,MAAO,IACP72G,IAAK,WACL8qO,UAAW,GAEb,CACEngO,UAAW,QACXksG,MAAO,MACP72G,IAAK,MACL8o3B,QAAS,MACTh+oB,UAAW,GAEb,CACEngO,UAAW,SACX+rK,SAAU,CACR,CACE7/D,MAAO,eAET,CACEA,MAAO,cAGXi0H,UAAW,GAEb,CACEngO,UAAW,SACX+rK,SAAU,CACR,CACE7/D,MAAO,sCAET,CACEA,MAAO,gBAET,CACEA,MAAO,eAGXi0H,UAAW,IAIfg+oB,QAAS,KAEb,qBC9EA3zqB,EAAOrtL,QApBP,SAAeum2B,GACb,MAAO,CACL/93B,KAAM,QACNk63B,SACE,ylBAUF9s2B,SAAU,CACR2w2B,EAAKh2wB,QAAQ,KAAM,MAGzB,qBCSA88F,EAAOrtL,QA3BP,SAAqBum2B,GACnB,MAAO,CACL/93B,KAAM,cACNih4B,YAAa,MACb7z2B,SAAU,CACR,CACE/S,UAAW,OACXksG,MAAO,oBAGT,CACEA,MAAO,oBACP72G,IAAK,IACLux3B,YAAa,QAGf,CACE16wB,MAAO,gBACP72G,IAAK,WACLux3B,YAAa,OACbgB,cAAc,EACdK,YAAY,IAIpB,qBCuDAz9qB,EAAOrtL,QAjFP,SAAgBum2B,GACd,MAAMxrV,EAAS,CACbl4hB,UAAW,SACXmgO,UAAW,EACXp0D,SAAU,CACR,CACE7/D,MAAO,mBAETw3wB,EAAKjF,cAIT,MAAO,CACL943B,KAAM,SACNw73B,kBAAkB,EAClBtB,SAAU,CACRe,QAAS,qPAKT+K,SAAU,uMAGVI,QAAS,sCAEX5N,QAAS,OACTpr2B,SAAU,CACR2w2B,EAAKh2wB,QAAQ,OAAQ,QACrBg2wB,EAAKh2wB,QACH,IACA,IACA,CACEyyH,UAAW,IAGf,CACEngO,UAAW,WACX2/2B,cAAe,kBACftq3B,IAAK,UACL8o3B,QAAS,KACTpr2B,SAAU,CAAE2w2B,EAAK3E,wBAEnB,CACE/+2B,UAAW,QACX2/2B,cAAe,kBACftq3B,IAAK,IACL0d,SAAU,CACR,CACE4s2B,cAAe,sBAEjB+D,EAAK3E,wBAGT,CACE/+2B,UAAW,WACXksG,MAAO,sBAET,CACElsG,UAAW,OACXksG,MAAO,QACP72G,IAAK,IACLwq3B,SAAU,CACR,eAAgB,kCAGpB,CACE7/2B,UAAW,OACXksG,MAAO,kBAET,CACEyzwB,cAAe,QACftq3B,IAAK,IACL0d,SAAU,CAAE2w2B,EAAK3E,wBAEnB2E,EAAKtF,kBACLlmV,GAGN,qBC4DA1tV,EAAOrtL,QAzIP,SAAoBum2B,GAClB,MAAM0J,EAAW,CACfxM,QAEE,6IAEFmL,QACE,iBACFJ,SACE,qRAKE4E,EAAc,2BACdlD,EAAQ,CACZrt3B,UAAW,QACXksG,MAAO,MACP72G,IAAK,KACLwq3B,SAAUuN,GAENoC,EAAc,CAClB9L,EAAKtotB,QAAQsotB,EAAKhF,cAChB,CACE2E,OAAQ,CACNhu3B,IAAK,WACL8qO,UAAW,KAGjB,CACEngO,UAAW,SACX+rK,SAAU,CACR,CACE7/D,MAAO,IACP72G,IAAK,IACL0d,SAAU,CAAE2w2B,EAAKzF,mBAEnB,CACE/xwB,MAAO,IACP72G,IAAK,IACL0d,SAAU,CACR2w2B,EAAKzF,iBACLoP,MAKR,CACErt3B,UAAW,WACXksG,MAAO,MAAQw3wB,EAAK9F,UAEtB,CACE1xwB,MAAO,IAAMw3wB,EAAK9F,UAEpB,CACE1xwB,MAAOw3wB,EAAK9F,SAAW,OAAS8F,EAAK9F,WAGzCyP,EAAMt62B,SAAWy82B,EAEjB,MAAMgB,EAAQ9M,EAAKtotB,QAAQsotB,EAAK5E,WAAY,CAC1C5ywB,MAAOqkxB,IAEHE,EAAqB,0BACrBvD,EAAS,CACblt3B,UAAW,SACXksG,MAAO,YACP27wB,aAAa,EAGb902B,SAAU,CACR,CACEm5F,MAAO,KACP72G,IAAK,KACLwq3B,SAAUuN,EACVr62B,SAAU,CAAE,QAAS9K,OAAOun3B,MAKlC,MAAO,CACL7p4B,KAAM,aACNuqL,QAAS,CAAE,QACX2vsB,SAAUuN,EACVjP,QAAS,OACTpr2B,SAAUy82B,EAAYvn3B,OAAO,CAC3By72B,EAAKh2wB,QAAQ,KAAM,KACnB,CACE1tG,UAAW,WACXksG,MAAO,QAAUqkxB,EAAc,YAAcE,EAC7Cp73B,IAAK,QACLwy3B,aAAa,EACb902B,SAAU,CACRy92B,EACAtD,IAGJ,CACEhhxB,MAAO,aACPi0H,UAAW,EACXptN,SAAU,CACR,CACE/S,UAAW,WACXksG,MAAOukxB,EACPp73B,IAAK,QACLwy3B,aAAa,EACb902B,SAAU,CAAEm62B,MAIlB,CACElt3B,UAAW,QACX2/2B,cAAe,QACftq3B,IAAK,IACL8o3B,QAAS,YACTpr2B,SAAU,CACR,CACE4s2B,cAAe,UACfoD,gBAAgB,EAChB5E,QAAS,YACTpr2B,SAAU,CAAEy92B,IAEdA,IAGJ,CACExw3B,UAAW,OACXksG,MAAOqkxB,EAAc,IACrBl73B,IAAK,IACLwy3B,aAAa,EACbG,WAAW,EACX7npB,UAAW,KAInB,qBCpEA31B,EAAOrtL,QApEP,SAAcum2B,GACZ,MAAO,CACL/93B,KAAM,OACNw73B,kBAAkB,EAClBpu2B,SAAU,CACR,CACE4s2B,cACE,+FACFtq3B,IAAK,IAAK0t3B,gBAAgB,EAC1BlD,SAAU,CAERe,QACE,gkCAaFmL,QACE,4BAEFJ,SACE,mxCAaJ542B,SAAU,CACR,CACE/S,UAAW,SACXksG,MAAO,IAAM72G,IAAK,IAClB0d,SAAU,CAAC2w2B,EAAKzF,mBAElB,CACEj+2B,UAAW,SACXksG,MAAO,IAAK72G,IAAK,IACjB0d,SAAU,CAAC2w2B,EAAKzF,mBAElB,CACEj+2B,UAAW,SACXksG,MAAO,IAAK72G,IAAK,IACjB0d,SAAU,CAAC2w2B,EAAKzF,kBAChB99oB,UAAW,GAEbujpB,EAAKhF,cACLgF,EAAKnF,uBAGTmF,EAAKnF,sBAGX,qBCiEA/zqB,EAAOrtL,QAnIP,SAAeum2B,GACb,MAAMoL,EAAM,CACV9u3B,UAAW,WACX+rK,SAAU,CACR,CACE7/D,MAAO,SAET,CACEA,MAAO,OACP72G,IAAK,MAEP,CACE62G,MAAO,OAASw3wB,EAAK7F,uBAIrBob,EAAU,CACdlW,gBAAgB,EAChBlD,SAAU,CACR6C,SAAU,WACVqJ,QACE,kJAGJ5rpB,UAAW,EACXg+oB,QAAS,KACTpr2B,SAAU,CACR2w2B,EAAKlF,kBACL,CACEx+2B,UAAW,SACX+S,SAAU,CACR2w2B,EAAKzF,iBACL6Q,GAEF/itB,SAAU,CACR,CACE7/D,MAAO,IACP72G,IAAK,KAEP,CACE62G,MAAO,IACP72G,IAAK,OAKX,CACE62G,MAAO,aACP72G,IAAK,MACL0t3B,gBAAgB,EAChBkF,YAAY,EACZl12B,SAAU,CAAE+72B,IAEd,CACE9u3B,UAAW,SACX+S,SAAU,CACR2w2B,EAAKzF,iBACL6Q,GAEF/itB,SAAU,CACR,CACE7/D,MAAO,SACP72G,IAAK,YACL2y3B,WAAW,GAGb,CACE97wB,MAAO,YACP72G,IAAK,YACL2y3B,WAAW,GAGb,CACE97wB,MAAO,sBAGT,CACEA,MAAO,wBAKb,CACElsG,UAAW,SACXksG,MAAO,+DAGT,CACElsG,UAAW,SACXksG,MAAO,4BACPi0H,UAAW,GAEb2upB,IAIJ,MAAO,CACLnp4B,KAAM,eACNuqL,QAAS,CAAE,aACXn9J,SAAU,CACR2w2B,EAAKlF,kBACL,CACEtywB,MAAOw3wB,EAAK7F,oBAAsB,UAClCgK,aAAa,EACbxy3B,IAAK,KACL0d,SAAU,CACR,CACE/S,UAAW,UACXksG,MAAOw3wB,EAAK7F,sBAGhB19oB,UAAW,GAEb,CACEj0H,MAAOw3wB,EAAK7F,oBAAsB,MAClCxo3B,IAAK,QACLwy3B,aAAa,EACb902B,SAAU,CACR,CACE/S,UAAW,YACXksG,MAAOw3wB,EAAK7F,oBACZwF,OAAQ4V,IAGZ94pB,UAAW,IAGfg+oB,QAAS,YAEb,qBC3DA3zqB,EAAOrtL,QAvEP,SAAaum2B,GACX,MAAO,CACL/93B,KAAM,MACNk63B,SAAU,CACRe,QACE,qXAMFmL,QACE,uDACFJ,SACE,4TAMJ542B,SAAU,CACR,CACE/S,UAAW,OACXksG,MAAO,OACP72G,IAAK,OACL8qO,UAAW,IAEb,CACEngO,UAAW,SACXksG,MAAO,eACP72G,IAAK,IACL0d,SAAU,CACR,CACEm5F,MAAO,QAIb,CACElsG,UAAW,SACXksG,MAAO,oBACP72G,IAAK,OAEPqu3B,EAAKtF,kBACL,CACEp+2B,UAAW,OACXksG,MAAO,eACPi0H,UAAW,GAEb,CACEngO,UAAW,SACXmgO,UAAW,EACXp0D,SAAU,CACR,CACE7/D,MAAO,4DAET,CACEA,MAAO,+CAET,CACEA,MAAO,iDAET,CACEA,MAAO,2CAIbw3wB,EAAKlF,mBAGX,qBCZAh0qB,EAAOrtL,QAzDP,SAAaum2B,GACX,MAAM2a,EAAe,CACnBzd,QACE,8CACFmL,QACE,yBACFJ,SACE,2FAGE2S,EAAY,CAChBt+3B,UAAW,QACXksG,MAAO,OACP72G,IAAK,KACLwq3B,SAAUwe,GAaNxmW,EAAS,CACb73hB,UAAW,SACX+S,SAAU,CAAEur3B,GACZvytB,SAAU,CACR,CACE7/D,MAAO,KACP72G,IAAK,MAEP,CACE62G,MAAO,IACP72G,IAAK,OAILm63B,EAAc,CAClB9L,EAAKjF,YACLiF,EAAKlF,kBACLkF,EAAKnF,qBACL1mV,EA7BY,CACZ3rb,MAAO,uBACP27wB,aAAa,EACb1npB,UAAW,EACXptN,SAAU,CACR,CACE/S,UAAW,OACXksG,MAAO,UA0Bb,OADAoyxB,EAAUvr3B,SAAWy82B,EACd,CACL7p4B,KAAM,MACNuqL,QAAS,CAAE,SACX2vsB,SAAUwe,EACVtr3B,SAAUy82B,EAEd,qBC1BAhlrB,EAAOrtL,QA5BP,SAAkBum2B,GAChB,MAAO,CACL/93B,KAAM,YACNotB,SAAU,CACR,CACE/S,UAAW,OACXqj3B,OAAQ,CAGNhu3B,IAAK,MACLgu3B,OAAQ,CACNhu3B,IAAK,IACLux3B,YAAa,eAGjB76sB,SAAU,CACR,CACE7/D,MAAO,eAET,CACEA,MAAO,uBAMnB,qBCoFAs+F,EAAOrtL,QA/GP,SAAcum2B,GACZ,MAKM6a,EAAU,CAEdv+3B,UAAW,WACXksG,MAAO,mBAGHorxB,EAAY,CAEhBt33B,UAAW,WACXksG,MAAO,SACPiywB,QAAS,YAGLqgB,EAAY,CAEhBx+3B,UAAW,WACXksG,MAAO,oBA2BH2rb,EAAS,CACb73hB,UAAW,SACX+rK,SAAU,CACR,CACE7/D,MAAO,IACP72G,IAAK,KAEP,CACE62G,MAAO,IACP72G,IAAK,KAEP,CACE62G,MAAO,IACP72G,IAAK,MAGT8o3B,QAAS,KACTpr2B,SAAU,CA7BM,CAEhB/S,UAAW,OACXksG,MAAO,kBAvCS,CAChBlsG,UAAW,WACXksG,MAAO,wbAkELqyxB,EACAjH,EACAkH,IAIJ,MAAO,CACL744B,KAAM,OACNw73B,kBAAkB,EAClBtB,SAAU,CACRe,QACA,ilFACAmL,QACA,kYAEFh52B,SAAU,CACR2w2B,EAAKlF,kBACLkF,EAAKnF,qBACLmF,EAAKh2wB,QACH,IACA,IACA,CACEyyH,UAAW,IAGf,CACEngO,UAAW,WACX2/2B,cAAe,uCACftq3B,IAAK,KAEPwiiB,EApEa,CAEf73hB,UAAW,UACXksG,MAAO,4RAmELqyxB,EACAjH,EACAkH,EA9Ee,CAEjBx+3B,UAAW,SACXksG,MAAO,qpBAeO,CAEdlsG,UAAW,QACXksG,MAAO,YA4DLw3wB,EAAKjF,aAGX,qBCIAj0qB,EAAOrtL,QAhHP,SAAoBum2B,GAClB,MAIM+a,EAAgB,yBA+BhBC,EAAiB,CACrBhc,SAAU+b,EACV7d,QAAS,+CAEX,MAAO,CACLj73B,KAAM,cACNuqL,QAAS,CACP,KACA,OACA,QACA,UACA,iBAEF2vsB,SA3CoB,CACpB6C,SAAU+b,EACV7d,QACE,guCAsBFmL,QACE,wCACFJ,SACE,oFAgBFxN,QAAS,KACTpr2B,SAAU,CAlDM,CAChB/S,UAAW,WACXksG,MAAO,wEAkDLw3wB,EAAKpF,oBACLoF,EAAKnF,qBACLmF,EAAKhF,cACLgF,EAAKtF,kBACLsF,EAAKxF,iBACL,CACEl+2B,UAAW,SACX+rK,SAAU,CACR,CACE7/D,MAAO,KACP72G,IAAK,IACL8o3B,QAAS,MACTpr2B,SAAU,CAAE2w2B,EAAKzF,qBAIvB,CACEj+2B,UAAW,OACXksG,MAAO,eACP72G,IAAK,IACLwq3B,SAAU,CACR,eACE,kFAGJ9s2B,SAAU,CACR,CACEm5F,MAAO,OACPi0H,UAAW,GAEbujpB,EAAKtotB,QAAQsotB,EAAKtF,kBAAmB,CACnCp+2B,UAAW,gBAEb,CACEA,UAAW,cACXksG,MAAO,QACP72G,IAAK,IACL8o3B,QAAS,OAEXuF,EAAKpF,oBACLoF,EAAKnF,uBAGT,CACEv+2B,UAAW,QACXksG,MAAO,IAAMwyxB,EAAe9d,QAAQz53B,MAAM,KAAKolB,KAAK,KAAO,OAC3DlX,IAAK,SACL4y3B,YAAY,EACZpI,SAAU6e,EACV3r3B,SAAU,CAAE2w2B,EAAK3E,wBAEnB,CACE7ywB,MAAO,MAAQw3wB,EAAK7F,oBACpB19oB,UAAW,IAInB,qBCrCA31B,EAAOrtL,QAxEP,SAAeum2B,GAEb,MAAO,CACL/93B,KAAM,QACNuqL,QAAS,CAAC,MACV2vsB,SAAU,CACR6C,SAAU,eACV9B,QACE,sVAOF+K,SAEE,qHAGFI,QACE,cAEJ5N,QAAS,UACTpr2B,SAAU,CACR,CACE/S,UAAW,UACXksG,MAAO,yBACPi0H,UAAW,GAEbujpB,EAAKh2wB,QACH,SACA,SACA,CACE36F,SAAU,CAAC,UAGf,CACE/S,UAAW,SACXksG,MAAO,0BAGT,CACElsG,UAAW,OACXksG,MAAO,iBAET,CACElsG,UAAW,OACXksG,MAAO,kBACPi0H,UAAW,GAEb,CACEj0H,MAAO,qBAAwBi0H,UAAW,GAE5CujpB,EAAKtotB,QAAQsotB,EAAKxF,iBAAkB,CAACl+2B,UAAW,SAAUmgO,UAAW,IACrEujpB,EAAKtotB,QAAQsotB,EAAKtF,kBAAmB,CAACD,QAAS,OAC/C,CACEn+2B,UAAW,SACXksG,MACE,2HAIFi0H,UAAW,GAEb,CACEj0H,MAAO,OAIf,qBCCAs+F,EAAOrtL,QAxEP,SAAkBum2B,GAChB,MAAMib,EAAe,CACnB3+3B,UAAW,UACXksG,MAAO,kCAMHs/wB,EAAU,CACdxr3B,UAAW,SACXksG,MAAO,8BACPi0H,UAAW,GAEP03T,EAAS6rV,EAAKtotB,QAAQsotB,EAAKtF,kBAAmB,CAClDD,QAAS,OA0BLygB,EAAY,CAChB5+3B,UAAW,WACX2/2B,cAAe,kBACftq3B,IAAK,OACL0d,SAAU,CApBG,CACb/S,UAAW,SACXksG,MAAO,MACP72G,IAAK,MACL0d,SAAU,CACR,OACAy42B,EACA3zV,EACA8mW,EA5Ba,CACf3+3B,UAAW,UACXksG,MAAO,yBAwCLw3wB,EAAK3E,wBAIT,MAAO,CACLp53B,KAAM,WACNuqL,QAAS,CAAE,QACX2vsB,SAAU,CACRe,QAAS,+DACTmL,QAAS,sBACTJ,SAAU,udAEZ542B,SAAU,CACR2w2B,EAAKpF,oBACLoF,EAAKnF,qBACLiN,EA7CW,CACbxr3B,UAAW,OACX6/2B,SAAU,CACR,eAAgB,eAElB3zwB,MAAO,gBACP72G,IAAK,KAyCHwiiB,EACA8mW,EA5Bc,CAChBzyxB,MAAO,SACPi0H,UAAW,GA4BTy+pB,GAGN,qBCsBAp0rB,EAAOrtL,QA7FP,SAAiBum2B,GACf,MAAMmb,EAAmB,CACvBnc,SAAU,SACV9B,QACE,+lCASEke,EAAgBpb,EAAKh2wB,QACzB,KACA,KACA,CACEyyH,UAAW,IAGT4+pB,EAAgBrb,EAAKh2wB,QACzB,SACA,SACA,CACEyyH,UAAW,KAGT03T,EAAS,CACb73hB,UAAW,SACXksG,MAAO,IACP72G,IAAK,IACL0d,SAAU,CACR,CACEm5F,MAAO,QAIPmjxB,EAAc,CAClBrv3B,UAAW,SACXksG,MAAO,YAEHurb,EAAW,CACfz3hB,UAAW,WACX2/2B,cAAe,mDACftq3B,IAAK,OACLwq3B,SAAU,+DACV9s2B,SAAU,CACR2w2B,EAAK5E,WACL,CACE9+2B,UAAW,SACXksG,MAAO,MACP72G,IAAK,MACLwq3B,SAAUgf,EACV9r3B,SAAU,CACR8khB,EACAw3V,IAGJyP,EACAC,IAGJ,MAAO,CACLp54B,KAAM,UACNw73B,kBAAkB,EAClBtB,SAAUgf,EACV1gB,QAAS,kCACTpr2B,SAAU,CACR+r3B,EACAC,EACArb,EAAKpF,oBACLzmV,EACAw3V,EACA3L,EAAKjF,YACLhnV,EACA,CACEz3hB,UAAW,QACXksG,MAAO,eACP72G,IAAK,OACLwq3B,SAAUgf,EACV9r3B,SAAU,CACR8khB,EACAw3V,EACAyP,EACAC,EACArb,EAAKpF,oBACL7mV,KAKV,oBC1CAjtV,EAAOrtL,QAhDP,SAAiBum2B,GACf,MAAMsb,EAAmBtb,EAAKh2wB,QAC5B,KACA,KACA,CACE36F,SAAU,CAAE,UAGhB,MAAO,CACLptB,KAAM,UACNih4B,YAAa,MACbzmpB,UAAW,EACXptN,SAAU,CACR2w2B,EAAKh2wB,QAAQ,KAAM,KACnBg2wB,EAAKh2wB,QACH,UACA,KACA,CACEyyH,UAAW,GACXptN,SAAU,CAAEis3B,KAGhB,CACEh/3B,UAAW,OACXksG,MAAO,gCACPi0H,UAAW,IAEb,CACEngO,UAAW,QACXksG,MAAO,4DAET,CACElsG,UAAW,WACXksG,MAAO,qBAET,CACElsG,UAAW,UACXksG,MAAO,eAET,CACElsG,UAAW,SACXksG,MAAO,oBAETw3wB,EAAKhF,eAGX,qBC7CA,SAASp02B,EAAOugK,GACd,OAAKA,EACa,kBAAPA,EAAwBA,EAE5BA,EAAGvgK,OAHM,IAIlB,CAMA,SAASrC,IAAgB,QAAA2F,EAAAvD,UAAAlkB,OAAN6nB,EAAI,IAAAnG,MAAA+F,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJE,EAAIF,GAAAzD,UAAAyD,GAErB,OADeE,EAAKvY,KAAK/E,GAAM4Z,EAAO5Z,KAAI6b,KAAK,GAEjD,CASA,SAAS0z2B,IAAgB,QAAAly2B,EAAA1D,UAAAlkB,OAAN6nB,EAAI,IAAAnG,MAAAkG,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,GAAA5D,UAAA4D,GAErB,MADe,IAAMD,EAAKvY,KAAK/E,GAAM4Z,EAAO5Z,KAAI6b,KAAK,KAAO,GAE9D,CA+dAi+L,EAAOrtL,QArdP,SAAcum2B,GACZ,MA0OMub,EAAkB,uBAClBC,EAAgB,CACpBxc,SAAU,SACV9B,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,OAOkBr02B,KAAK,MAEnB8g3B,EAAQ,CACZrt3B,UAAW,QACXksG,MAAO,UACP72G,IAAK,MACLwq3B,SAAUqf,GAENnK,EAAS,CACb7oxB,MAAO,OACP72G,IAAK,MAGDy53B,EAAM,CACV/itB,SAAU,CACR,CACE7/D,MAAO,QAET,CACEA,MAAOjkG,EACL,iDAGC,0BAGL,CACEikG,MAAO,gBACPi0H,UAAW,KAIXg/pB,EAAkB,CACtBzb,EAAKzF,iBACLoP,EACAyB,GAEIsQ,EAAe,CACnB,IACA,KACA,KACA,KACA,IACA,IACA,KAOIC,EAAmB,SAACp71B,EAAQ/1C,GAAwB,IAAlBuhD,EAAKplC,UAAAlkB,OAAA,QAAAyH,IAAAyc,UAAA,GAAAA,UAAA,GAAG,MAC9C,MAAMyppB,EAAoB,QAAVrknB,EACZA,EACAxnC,EAAOwnC,EAAOvhD,GAClB,OAAO+Z,EACLA,EAAO,MAAOg8B,EAAQ,KACtB/1C,EACA,oBACA4lqB,EACA,oBACArknB,EACAwv1B,EAEJ,EAMMK,EAAYA,CAACr71B,EAAQ/1C,EAAMuhD,IACxBxnC,EACLA,EAAO,MAAOg8B,EAAQ,KACtB/1C,EACA,oBACAuhD,EACAwv1B,GAGEM,EAAwB,CAC5BzQ,EACApL,EAAKlF,kBACLkF,EAAKh2wB,QACH,OACA,OACA,CACEq1wB,gBAAgB,IAGpBgS,EACA,CACE/03B,UAAW,SACX+S,SAAUos3B,EACVpztB,SAAU,CACR,CACE7/D,MAAO,kBACP72G,IAAK,MACL8qO,UAAW,GAEb,CACEj0H,MAAO,kBACP72G,IAAK,MACL8qO,UAAW,GAEb,CACEj0H,MAAO,kBACP72G,IAAK,MACL8qO,UAAW,GAEb,CACEj0H,MAAO,kBACP72G,IAAK,MACL8qO,UAAW,GAEb,CACEj0H,MAAO,gBACP72G,IAAK,IACL8qO,UAAW,GAEb,CACEj0H,MAAO,UACP72G,IAAK,IACL8qO,UAAW,GAEb,CACEj0H,MAAO,IACP72G,IAAK,IACL0d,SAAU,CAAE2w2B,EAAKzF,mBAEnB,CACE/xwB,MAAO,IACP72G,IAAK,KAEP,CACE62G,MAAO,IACP72G,IAAK,IACL0d,SAAU,CAAE2w2B,EAAKzF,mBAEnB,CACE/xwB,MAAO,UACPi0H,UAAW,GAEb,CACEj0H,MAAO,eACPi0H,UAAW,KAIjB,CACEngO,UAAW,SACXksG,MAAO,4EACPi0H,UAAW,GAEb,CACEj0H,MAAO,WAAaw3wB,EAAKxE,eAAiB,gDAC1CW,SAAU,kCACV1/oB,UAAW,EACXptN,SAAU,CACR2w2B,EAAKlF,kBACL,CACEx+2B,UAAW,SACX+rK,SAAU,CAER,CAAE7/D,MAAOmzxB,EAAiB,SAAUpf,KAAUmf,KAE9C,CAAElzxB,MAAOmzxB,EAAiB,SAAU,MAAO,QAC3C,CAAEnzxB,MAAOmzxB,EAAiB,SAAU,MAAO,QAC3C,CAAEnzxB,MAAOmzxB,EAAiB,SAAU,MAAO,SAE7Cl/pB,UAAW,GAEb,CACEngO,UAAW,SACX+rK,SAAU,CACR,CAGE7/D,MAAO,aACPi0H,UAAW,GAGb,CAAEj0H,MAAOozxB,EAAU,YAAa,KAAM,OAEtC,CAAEpzxB,MAAOozxB,EAAU,OAAQrf,KAAUmf,GAAe,OAEpD,CAAElzxB,MAAOozxB,EAAU,OAAQ,KAAM,OACjC,CAAEpzxB,MAAOozxB,EAAU,OAAQ,KAAM,OACjC,CAAEpzxB,MAAOozxB,EAAU,OAAQ,KAAM,WAKzC,CACEt/3B,UAAW,WACX2/2B,cAAe,MACftq3B,IAAK,uBACL4y3B,YAAY,EACZ9npB,UAAW,EACXptN,SAAU,CAAE2w2B,EAAK5E,aAEnB,CACE5ywB,MAAO,UACPi0H,UAAW,GAEb,CACEj0H,MAAO,aACP72G,IAAK,YACLux3B,YAAa,cACb7z2B,SAAU,CACR,CACEm5F,MAAO,QACP72G,IAAK,IACL2K,UAAW,cAQnB,OAHAqt3B,EAAMt62B,SAAWws3B,EACjBxK,EAAOhi3B,SAAWws3B,EAEX,CACL554B,KAAM,OACNuqL,QAAS,CACP,KACA,MAEF2vsB,SAAUqf,EACVns3B,SAAUws3B,EAEd,qBCtcA/0rB,EAAOrtL,QAlDP,SAAYum2B,GAWV,MAAO,CACL/93B,KAAM,uBACNuqL,QAAS,CAAE,WACX2vsB,SAAU,CACR6C,SAAU,gBACViJ,SAGE,wDACF/K,QACE,kzBAgBFmL,QACE,sDAEJh52B,SAAU,CACR2w2B,EAAKlF,kBACLkF,EAAKjF,YACLiF,EAAKtF,kBA1CK,CACZp+2B,UAAW,WACXksG,MAAO,sBAEK,CACZlsG,UAAW,WACXksG,MAAO,UACP72G,IAAK,MAwCT,qBC6jBAm1M,EAAOrtL,QAnmBP,SAAeum2B,GACb,MAAM8b,EAAe9b,EAAKh2wB,QAAQ,KAAM,KAElC+xxB,EAAgB,4CA0DhBtiR,EAEJ,gxBAeIuiR,EACJviR,EAAMtnlB,OACH1uC,MAAM,KACNsO,KAAI,SAAS2/F,GAAO,OAAOA,EAAIjuG,MAAM,KAAK,EAAI,IAC9ColB,KAAK,KAuLJoz3B,EAzFJ,quIA0FY9p2B,OACP1uC,MAAM,KACNsO,KAAI,SAAS2/F,GAAO,OAAOA,EAAIjuG,MAAM,KAAK,EAAI,IAC9ColB,KAAK,KAEZ,MAAO,CACL5mB,KAAM,aACNuqL,QAAS,CACP,WACA,cAEFixsB,kBAAkB,EAClBtB,SAAU,CACRe,QACMgf,stFACNjU,SACMkU,i2MAIR1hB,QAAS,6DACTpr2B,SAAU,CAER,CACE/S,UAAW,UACX+rK,SAAU,CACR,CACE7/D,MAAO,qBAET,CACEA,MAAO,2CAET,CACEA,MAAO,2CAET,CACEA,MAAO,gDAET,CACEA,MAAO,qCAET,CACEA,MAAO,4BAET,CACEA,MAAO,uBAET,CACEA,MAAO,8BAET,CACEA,MAAO,0CAET,CACEA,MAAO,gCAET,CACEA,MAAO,sCAET,CACEA,MAAO,iFAET,CACEA,MAAO,uBAET,CACEA,MAAO,uBAET,CACEA,MAAO,+BAET,CACEA,MAAO,qBAET,CACEA,MAAO,uBAET,CACEA,MAAO,8DAET,CACEA,MAAO,6BAET,CACEA,MAAO,gDAET,CACEA,MAAO,oCAET,CACEA,MAAO,qCAET,CACEA,MAAO,wCAET,CACEA,MAAO,6BAET,CACEA,MAAO,wBAET,CACEA,MAAO,wCAET,CACEA,MAAO,2BAET,CACEA,MAAO,4BAET,CACEA,MAAO,mCAET,CACEA,MAAO,+BAET,CACEA,MAAO,8BAET,CACEA,MAAO,yCAET,CACEA,MAAO,qCAET,CACEA,MAAO,uCAET,CACEA,MAAO,0CAET,CACEA,MAAO,wBAET,CACEA,MAAO,oBAET,CACEA,MAAO,6BAET,CACEA,MAAO,mCAET,CACEA,MAAO,sCAET,CACEA,MAAO,uGAET,CACEA,MAAO,sEAKb,CACEA,MAAO,kCAIT,CACEA,MAAO,iBACP2zwB,SAAU,WAGZ,CACE3zwB,MAAO,qDAIT,CACEA,MAAO,6MAGT,CAEEA,MAAO,sCACPi0H,UAAW,IAGb,CACEj0H,MAAO,iBACP72G,IAAK,WACL2y3B,WAAW,EACXnI,SAAU,CAERr23B,KAAM,2KAMV,CACE0iH,MAAO,mCACP2zwB,SAAU,CAERe,QAAS,SAIb,CACE10wB,MAAO,sDACP2zwB,SAAU,CAERe,QAAS,qBAMb,CACEjB,cAAe,oCACftq3B,IAAKqu3B,EAAK3F,YACViK,WAAW,EACXnI,SAAU,wCAGZ,CACE7/2B,UAAW,OACXksG,MAAO,oCAGT,CACElsG,UAAW,OACXksG,MAAO,2FAGT,CACEA,MAAO,kGACP2zwB,SAAU,CACRe,QAAS,UACTp33B,KAAM,oFAIV,CACE0iH,MAAO,OAASyzxB,EAAe,YAIjC,CACEzzxB,MAAO,OAASwzxB,EAAW,QAE7B,CACExzxB,MAAO,OAASwzxB,EAAW,eAC3B7f,SAAU,CACRe,QAAS,OACTp33B,KAAM2znB,EAAMj3nB,QAAQ,QAAS,MAGjC,CACE8Z,UAAW,OACXksG,MAAO,OAASwzxB,EAAW,QAG7B,CACE1/3B,UAAW,SACXksG,MAAO,IACP72G,IAAK,IACL0d,SAAU,CACR,CACEm5F,MAAO,QAIb,CACElsG,UAAW,SACXks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CXmgO,UAAW,EACXptN,SAAU,CAAE+72B,MAOZwR,EAAW,CACfp0xB,MAAO,UACP72G,IAAK,IACLwy3B,aAAa,EACb902B,SAAU,CACRk82B,EACAgR,EACA,CACEjg4B,UAAW,UACXksG,MAAO,oDAMPq0xB,EAAe,CACnBx0tB,SAAU,CAER,CACE/rK,UAAW,WACXksG,MAAO,IAAIjkG,OAjMf,+bAiM4C,SAE1C,CACEjI,UAAW,UACXksG,MAAO,aACPi0H,UAAW,KAaXqgqB,EAAa,CACjBxg4B,UAAW,WACXksG,MAAO,wBACP72G,IAAK,IACLwy3B,aAAa,EACb1npB,UAAW,EACXptN,SAAU,CACR,CACE/S,UAAW,UACXksG,MAAO,IAAIjkG,OACTml3B,EAASxM,QAAQ953B,WAAWZ,QAAQ,MAAO,KACxC,QACLoh4B,YAAY,EACZnnpB,UAAW,GAEbujpB,EAAKtotB,QAAQsotB,EAAK5E,WAAY,CAC5BwI,YAAY,MAKZmZ,EAAiB,CAErBD,EACAN,EACAtR,EACAlL,EAAKjF,YACLwQ,EACAgR,EAEAE,EACArR,EAhMc,CACd9u3B,UAAW,UACXksG,MAAO,yBAuJU,CACjBlsG,UAAW,eACXksG,MAAO,MACPi0H,UAAW,IAyCPugqB,EAAU,CACdx0xB,MAAO,KACP72G,IAAK,KACLuy3B,cAAc,EACdK,YAAY,EACZ9npB,UAAW,EACXptN,SAAU,GAAG9K,OACX,OACAw43B,EACA,CACEv0xB,MAAO,IAjSC,CACZ,SACA,OACA,OACA,MACA,OACA,OACA,UACA,SACA,SACA,WACA,MACA,QACA,YACA,QAmRuB3/F,KAAK,KAAO,IAC/BvM,UAAW,WACXmgO,UAAW,GAEb,CACEngO,UAAW,OACXksG,MAAO,YACPi0H,UAAW,KAOjB,OAFAqgqB,EAAWzt3B,SAAS26d,QAAQgzZ,GAErB,CACL/64B,KAAM,aACNuqL,QAAS,CACP,KACA,OAEFixsB,kBAAkB,EAClBtB,SAAUuN,EACVr62B,SAAU0t3B,EAAex43B,OACvBm43B,EACAC,EACAC,EACAC,EACAG,GAGN,qBC/QAl2rB,EAAOrtL,QAjDP,SAAo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0GA+K,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,OAmCAI,QAhCe,CACf,YACA,WACA,QACA,OACA,iBACA,QA2BAvi4B,KArBY,CACZ,MACA,WACA,YACA,OACA,OACA,UACA,UACA,WACA,WACA,MACA,QACA,OACA,UAWI634B,EAAS,CACbrh4B,UAAW,OACXksG,MAAO,kBAGHmhxB,EAAQ,CACZrt3B,UAAW,QACXksG,MAAO,KACP72G,IAAK,KACLwq3B,SAAUuN,EACVjP,QAAS,KAGLmjB,EAAkB,CACtBp1xB,MAAO,OACPi0H,UAAW,GAGP03T,EAAS,CACb73hB,UAAW,SACX+S,SAAU,CAAE2w2B,EAAKzF,kBACjBlysB,SAAU,CACR,CACE7/D,MAAO,yCACP72G,IAAK,MACL0d,SAAU,CACR2w2B,EAAKzF,iBACLojB,GAEFlhqB,UAAW,IAEb,CACEj0H,MAAO,yCACP72G,IAAK,MACL0d,SAAU,CACR2w2B,EAAKzF,iBACLojB,GAEFlhqB,UAAW,IAEb,CACEj0H,MAAO,8BACP72G,IAAK,MACL0d,SAAU,CACR2w2B,EAAKzF,iBACLojB,EACAC,EACAjU,IAGJ,CACEnhxB,MAAO,8BACP72G,IAAK,MACL0d,SAAU,CACR2w2B,EAAKzF,iBACLojB,EACAC,EACAjU,IAGJ,CACEnhxB,MAAO,eACP72G,IAAK,IACL8qO,UAAW,IAEb,CACEj0H,MAAO,eACP72G,IAAK,IACL8qO,UAAW,IAEb,CACEj0H,MAAO,4BACP72G,IAAK,KAEP,CACE62G,MAAO,4BACP72G,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AClBjg4B,UAAW,SACXksG,MAAO,IACP72G,IAAK,KAGP,MAAO,CACL1P,KAAM,2BACNuqL,QAAS,CACP,YAEFixsB,kBAAkB,EAClBtB,SAAU,CACR6C,SAAU,WACVqJ,QAASoE,EACTvP,QAASqiB,EAAa,KAAOA,EAAW974B,MAAM,KAAKolB,KAAK,MAAQ,KApD5C,mKAoDmEplB,MAAM,KAAKolB,KAAK,OAEzGwG,SAAU,CACR,CACEg5J,SAAU,CACR,CACE7/D,MAAO,OACP72G,IAAK,QAEP,CACE62G,MAAO,OACP72G,IAAK,KAEP,CACE62G,MAAO,MACP72G,IAAK,MAGT8o3B,QAAS,KAEXuF,EAAKh2wB,QAAQ,KAAM,KACnBuhxB,EACAgR,EACAnR,EAEA,CAEE5ixB,MAAO,0BACPi0H,UAAW,EACX0npB,aAAa,EACb902B,SAAU,CACR,CACE/S,UAAW,YACXksG,MAAO,SAET,CACEA,MAAO,IACP62wB,gBAAgB,EAChB5ipB,UAAW,EACXptN,SAAU,CACRk82B,EACAgR,EACAnR,EACA,CACE9u3B,UAAW,UACXksG,MAAO,OAASikxB,EAAShp4B,MAAM,KAAKolB,KAAK,KAAO,QAElD,CAEE2/F,MAAO,6BAsBjB,CAEElsG,UAAW,SACXksG,MAAO,kBAET,CACEA,MAAO,OA9HW,wFA8Hc/kH,MAAM,KAAKolB,KAAK,KAAO,iBACvDs72B,aAAa,EACb902B,SAAU,CACR,CACE/S,UAAW,eACXksG,MAAO,SAIb,CACElsG,UAAW,WACX+rK,SAAU,CACR,CACE7/D,MAAO,oBAvID,26BAuI+B/kH,MAAM,KAAKolB,KAAK,KAAO,YAE9D,CACE2/F,MAAO,OACPi0H,UAAW,MAMvB,qBCzHA31B,EAAOrtL,QAxCP,SAAaum2B,GACX,MAAO,CACL/93B,KAAM,gBACNk63B,SAAU,CACRe,QACE,2FACF+K,SACE,2iBAQJxN,QAAS,KACTpr2B,SAAU,CACR2w2B,EAAKpF,oBACLoF,EAAKnF,qBACLmF,EAAKtF,kBACLsF,EAAKxF,iBACLwF,EAAKhF,cACL,CACE1+2B,UAAW,OACXksG,MAAO,IACP7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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,EAAiB,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,EAAiB,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,EAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,kBAGIC,EAAa,CACjB,gBACA,cACA,aACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,OACA,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,QACA,OACA,YACA,QACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,oBACA,gBACA,SACA,YACA,UACA,cACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,eACA,yBACA,0BACA,cACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,UACA,UACA,kBACA,OACA,iBACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,gBACA,cACA,eACA,aACA,QACA,OACA,aACA,YACA,aACA,YACA,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,cACA,qBACA,iBACA,WACA,SACA,SACA,QACA,MACA,WACA,eACA,aACA,kBACA,kBACA,wBACA,uBACA,wBACA,cACA,gBACA,iBACA,cACA,iBACA,0BACA,MACA,YACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,eACA,iBACA,aACA,cACA,SACA,QACA,aACA,eACA,YACA,WAGA9x1B,UAsHFqqK,EAAOrtL,QA3GP,SAAcum2B,GACZ,MAAM1ssB,EAtbO0ssB,KACN,CACLyO,UAAW,CACTny3B,UAAW,OACXksG,MAAO,cAETkmxB,SAAU,CACRpy3B,UAAW,SACXksG,MAAO,oCAETmmxB,wBAAyB,CACvBry3B,UAAW,gBACXksG,MAAO,KACP72G,IAAK,KACL8o3B,QAAS,IACTpr2B,SAAU,CACR2w2B,EAAKxF,iBACLwF,EAAKtF,sBAqaG56C,CAAMkgD,GACdsgB,EAAoBhS,EACpBiS,EAAmBlS,EAEnBH,EAAgB,WAGhB/C,EAAW,CACf7u3B,UAAW,WACXksG,MAAO,mCAGT,MAAO,CACLvmH,KAAM,OACNw73B,kBAAkB,EAClBhD,QAAS,SACTpr2B,SAAU,CACR2w2B,EAAKpF,oBACLoF,EAAKnF,qBACL,CACEv+2B,UAAW,cACXksG,MAAO,kBACPi0H,UAAW,GAEb,CACEngO,UAAW,iBACXksG,MAAO,oBACPi0H,UAAW,GAEbnpD,EAAMq7sB,wBACN,CACEry3B,UAAW,eACXksG,MAAO,OAAS2lxB,EAAKtl3B,KAAK,KAAO,OAEjC4zN,UAAW,GAEb,CACEngO,UAAW,kBACXksG,MAAO,KAAO+3xB,EAAiB133B,KAAK,KAAO,KAE7C,CACEvM,UAAW,kBACXksG,MAAO,MAAQ83xB,EAAkBz33B,KAAK,KAAO,KAE/Csi3B,EACA,CACE3ixB,MAAO,KACP72G,IAAK,KACL0d,SAAU,CAAE2w2B,EAAK9E,kBAEnB,CACE5+2B,UAAW,YACXksG,MAAO,OAAS+lxB,EAAW1l3B,KAAK,KAAO,QAEzC,CACE2/F,MAAO,8oCAET,CACEA,MAAO,IACP72G,IAAK,IACL0d,SAAU,CACR872B,EACA73sB,EAAMo7sB,SACN1O,EAAK9E,gBACL8E,EAAKtF,kBACLsF,EAAKxF,iBACLlnsB,EAAMm7sB,YAMV,CACEjmxB,MAAO,oBACPy2wB,QAASiP,EACT/R,SAAU,oBAEZ,CACE3zwB,MAAO,IACP72G,IAAK,OACLwy3B,aAAa,EACbhI,SAAU,CACR6C,SAAU,UACV9B,QA9Ea,kBA+Ebv5yB,UAAWyqzB,EAAevl3B,KAAK,MAEjCwG,SAAU,CACR,CACEm5F,MAAO0lxB,EACP5x3B,UAAW,WAEb,CACEksG,MAAO,eACPlsG,UAAW,aAEb6u3B,EACAnL,EAAKtF,kBACLsF,EAAKxF,iBACLlnsB,EAAMo7sB,SACN1O,EAAK9E,mBAKf,qBCjgBAp0qB,EAAOrtL,QApBP,SAAeum2B,GACb,MAAO,CACL/93B,KAAM,gBACNuqL,QAAS,CAAE,WACXn9J,SAAU,CACR,CACE/S,UAAW,OAIXksG,MAAO,iCACPm3wB,OAAQ,CACNhu3B,IAAK,gBACLux3B,YAAa,UAKvB,mBC2GAp8qB,EAAOrtL,QA/HP,SAAeum2B,GACb,MAAMwgB,EAAuB,CAC3B,MACA,MACA,MACA,OACA,OACA,QACA,MACA,SACA,QACA,OACA,KACA,MACA,OACA,OACA,MACA,MACA,MACA,MACA,MACA,KACA,MACA,SACA,MACA,MACA,OACA,MACA,QACA,OACA,OAkCF,MAAO,CACLv+4B,KAAM,QACNotB,SAAU,CACR,CACE/S,UAAW,SACXksG,MAAO,IACP72G,IAAK,IACL8qO,UAAW,GAEbujpB,EAAKh2wB,QACH,IACA,IACA,CACEyyH,UAAW,IAGf,CACEngO,UAAW,UACX+rK,SAAU,CACR,CACE7/D,MAAO,6BAET,CACEA,MAAO,oBACPi0H,UAAW,GAEb,CACEj0H,MAAO,oBACPi0H,UAAW,GAEb,CACEj0H,MAAO,OA5CM,CACrB,YACA,cACA,WACA,QACA,YACA,SACA,UACA,YACA,SACA,SACA,UAiCuC3/F,KAAK,KAAO,OAIjD,CACEvM,UAAW,WACX+rK,SAAU,CACR,CACE7/D,MAAO,OAASg4xB,EAAqB333B,KAAK,KAAO,QAEnD,CACE2/F,MAAO,OAASg4xB,EAAqB333B,KAAK,KAAO,2BACjD4zN,UAAW,IAEb,CACEj0H,MAAO,OA9Ea,CAC5B,OACA,OACA,QACA,QACA,UACA,OACA,SACA,UACA,UACA,OACA,WACA,SACA,OACA,UACA,SACA,OACA,UA6D8C3/F,KAAK,KAAO,2BAClD4zN,UAAW,MAIjB,CACEngO,UAAW,QACXksG,MAAO,cACPi0H,UAAW,GAEb,CACEj0H,MAAO,eAIf,qBCtEAs+F,EAAOrtL,QAvDP,SAAmBum2B,GACjB,MAAMygB,EAAe,qBACfC,EAAO,CACXpk4B,UAAW,SACXksG,MAAO,WAEH0jxB,EAAS,CACb5v3B,UAAW,SACXksG,MAAO,IAAMw3wB,EAAK7F,qBAEpB,MAAO,CACLl43B,KAAM,YACNuqL,QAAS,CAAE,MACX2vsB,SAAU,wCACV9s2B,SAAU,CACR2w2B,EAAKh2wB,QAAQ,IAAK,KAClBg2wB,EAAKxF,iBACL,CACEl+2B,UAAW,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,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,iBAGI1F,EAAYyF,EAEZjX,EAAW,CArff,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,YACA,QACA,OACA,QACA,QACA,SACA,WACA,UACA,WACA,YACA,UACA,UACA,aACA,OACA,WACA,QACA,eACA,SACA,OACA,SACA,UACA,OAzXA,MACA,MACA,YACA,OACA,QACA,QACA,OACA,QA0f0Dpz3B,QAAQ4m3B,IAC1DyjB,EAAmBtq3B,SAAS6m2B,KAchC4T,EAAgB,CACpBtoxB,MAAOjkG,EAAO,KAAMg42B,KAAU2e,GAAY,SAC1C/e,SAAU,CACR8L,SAAUiT,IAmBd,MAAO,CACLj54B,KAAM,MACNw73B,kBAAkB,EAElBhD,QAAS,WACT0B,SAAU,CACR6C,SAAU,YACV9B,QArBJ,SAAyB7/wB,GAA+B,IAAzB,WAACwjyB,EAAU,KAAEC,GAAKn63B,UAAAlkB,OAAA,QAAAyH,IAAAyc,UAAA,GAAAA,UAAA,GAAG,CAAC,EACnD,MAAMo63B,EAAYD,EAElB,OADAD,EAAaA,GAAc,GACpBxjyB,EAAKtrG,KAAKS,GACXA,EAAKwyG,MAAM,WAAa67xB,EAAWxq3B,SAAS7jB,GACvCA,EACEuu4B,EAAUvu4B,GACX,GAAEA,MAEHA,GAGb,CAUMwu4B,CAAgBtX,EAAU,CAAEoX,KAAO9z4B,GAAMA,EAAEvK,OAAS,IACtD4l4B,QAASoE,EACT3m4B,KAAM2znB,EACNwuQ,SAzF4B,CAC9B,kBACA,eACA,kCACA,eACA,eACA,iBACA,mCACA,eACA,eACA,cACA,cACA,eACA,YACA,oBACA,mBA4EA542B,SAAU,CACR,CACEm5F,MAAO+zwB,KAAUqkB,GACjBzkB,SAAU,CACR6C,SAAU,UACV9B,QAASwM,EAASnl3B,OAAOq83B,GACzBvY,QAASoE,EACT3m4B,KAAM2znB,IAGV,CACEn9mB,UAAW,OACXksG,MAAO+zwB,EApmBX,mBACA,eACA,gBACA,qBAmmBEuU,EA5Da,CACfx03B,UAAW,WACXksG,MAAO,cAvkBM,CACblsG,UAAW,SACX+rK,SAAU,CACR,CACE7/D,MAAO,IACP72G,IAAK,IACL0d,SAAU,CACR,CAACm5F,MAAO,UAKU,CACxBA,MAAO,IACP72G,IAAK,IACL0d,SAAU,CAAE,CAAEm5F,MAAO,QAsnBnBw3wB,EAAKhF,cACLgF,EAAKnF,qBACLihB,EA7Da,CACfx/3B,UAAW,WACXksG,MAAO,gDACPi0H,UAAW,IA8Df,qBClgBA31B,EAAOrtL,QApKP,SAAkBum2B,GAChB,IAAI8b,EAAe9b,EAAKh2wB,QAAQ,KAAM,KACtC,MAAO,CACL/nH,KAAM,aACNuqL,QAAS,CAAC,QAAS,UACnBy1sB,mBAAmB,EACnBxE,kBAAkB,EAClBhD,QAAS,UACTpr2B,SAAU,CACR,CACE4s2B,cACE,gYAKFtq3B,IAAK,IAAK0t3B,gBAAgB,EAC1BlD,SAAU,CACR6C,SAAU,UACV9B,QACE,uyVA8GFmL,QACE,0BACFJ,SACE,0NAGJ542B,SAAU,CACR,CACE/S,UAAW,SACXksG,MAAO,IAAM72G,IAAK,IAClB0d,SAAU,CAAC,CAACm5F,MAAO,QAErB,CACElsG,UAAW,SACXksG,MAAO,IAAK72G,IAAK,IACjB0d,SAAU,CAAC,CAACm5F,MAAO,QAErB,CACElsG,UAAW,SACXksG,MAAO,IAAK72G,IAAK,KAEnBqu3B,EAAKhF,cACLgF,EAAKnF,qBACLihB,EACA9b,EAAKlF,oBAGTkF,EAAKnF,qBACLihB,EACA9b,EAAKlF,mBAGX,qBC+WAh0qB,EAAOrtL,QA3hBP,SAAcum2B,GA8cZ,MAAO,CACL/93B,KAAM,OACNuqL,QAAS,CAAE,aACX2vsB,SAAU,CACR6C,SAAUgB,EAAK9F,SACf7s3B,MAjdW,CACb,YACA,QACA,OACA,aACA,aACA,cACA,aA2cE6v3B,QAzce,CACjB,MACA,KACA,KACA,OACA,QACA,QACA,WACA,UAicsB342B,OAtbN,CAChB,MACA,OACA,SACA,UACA,mBACA,UACA,cACA,aACA,SACA,0BACA,yBACA,iBACA,gBACA,SAwawCA,OA/bhB,CACxB,QACA,SACA,wBACA,mBACA,wBACA,uBACA,mBAybE0j3B,SAvac,CAChB,MACA,aACA,MACA,OACA,QACA,iBACA,eACA,aACA,aACA,OACA,QACA,OACA,QACA,QACA,gBACA,kBACA,iBACA,uBACA,sBACA,iBACA,gBACA,oBACA,qBACA,oBACA,sBACA,qBACA,qBACA,oBACA,WACA,aACA,YACA,YACA,WACA,kBACA,eACA,2BACA,iBACA,gBACA,sBACA,gBACA,eACA,QACA,yBACA,wBACA,mBACA,kBACA,aACA,eACA,cACA,cACA,aACA,OACA,OACA,iBACA,mBACA,kBACA,kBACA,iBACA,qBACA,SACA,MACA,OACA,sBACA,mBACA,MACA,OACA,eACA,YACA,gBACA,gBACA,gBACA,0BACA,sBACA,iBACA,cACA,cACA,qBACA,oBACA,WACA,UACA,OACA,iBACA,gBACA,WACA,cACA,WACA,yBACA,2BACA,0BACA,0BACA,yBACA,IACA,kBACA,mBACA,MACA,OACA,MACA,OACA,qBACA,uBACA,sBACA,sBACA,qBACA,QACA,kBACA,oBACA,mBACA,mBACA,kBACA,OACA,oBACA,OACA,QACA,MACA,OACA,OACA,OACA,cACA,gBACA,eACA,eACA,cACA,YACA,cACA,aACA,aACA,UACA,UACA,YACA,wBACA,SACA,aACA,eACA,cACA,cACA,aACA,OACA,sBACA,qBACA,QACA,WACA,WACA,gBACA,oBACA,qBACA,MACA,UACA,qBACA,uBACA,sBACA,sBACA,qBACA,cACA,gBACA,kBACA,iBACA,iBACA,gBACA,YACA,WACA,aACA,mBACA,kBACA,UACA,cACA,SACA,SACA,QACA,UACA,SACA,yBACA,wBACA,gBACA,eACA,UACA,YACA,MACA,QACA,QACA,YACA,kBACA,QACA,YACA,OACA,kBACA,eACA,wBACA,gBACA,UACA,uBACA,cACA,cACA,eACA,iBACA,gBACA,gBACA,eACA,QACA,gBACA,kBACA,iBACA,iBACA,gBACA,oBACA,aACA,MACA,mBACA,uBACA,oBACA,wBACA,OACA,MACA,6BACA,8BACA,yBACA,gBACA,6BACA,4BACA,oBACA,yBACA,mBACA,uBACA,sBACA,mBACA,kBACA,eACA,oCACA,qBACA,uBACA,sBACA,0BACA,yBACA,sBACA,qBACA,mBACA,qBACA,oBACA,oBACA,mBACA,oBACA,aACA,eACA,cACA,cACA,aACA,eACA,eACA,wBACA,uBACA,UACA,aACA,eACA,cACA,cACA,aACA,oBACA,sBACA,qBACA,qBACA,oBACA,KACA,cACA,gBACA,eACA,mBACA,kBACA,eACA,cACA,oBACA,MACA,QACA,OACA,OACA,OACA,YACA,iBACA,gBACA,OACA,eACA,iBACA,gBACA,gBACA,eACA,SACA,YACA,aACA,iBACA,aACA,mBACA,QACA,MACA,OACA,mBACA,gBACA,4BACA,8BACA,6BACA,6BACA,4BACA,KACA,UACA,MACA,kBACA,OACA,OACA,kBACA,oBACA,mBACA,mBACA,kBACA,UACA,WACA,YACA,mBACA,oBACA,OACA,QACA,SACA,mBACA,OACA,gBACA,kBACA,iBACA,iBACA,gBACA,UACA,UACA,MACA,OACA,MACA,OACA,SACA,aACA,SACA,cACA,cACA,YACA,gBACA,YACA,QACA,sBACA,kBACA,WACA,QACA,cACA,gBACA,eACA,eACA,cACA,WACA,iBACA,gBACA,cACA,gBACA,eACA,eACA,cACA,cACA,eACA,gBAiEA542B,SAAU,CACR2w2B,EAAKpF,oBACLoF,EAAKh2wB,QACH,IACA,IACA,CACEyyH,UAAW,EACX0/oB,SAAU,CACR,eAAgB,aAItB6D,EAAKh2wB,QACH,OACA,OACA,CACEyyH,UAAW,EAEXptN,SAAU,CACR,CACE/S,UAAW,SACXksG,MAAO,sBAKf,CAEEA,MAAO,gBACP2zwB,SAAU,SAEZ,CAGE3zwB,MAAO,mBACP2zwB,SAAU,SAEZ,CACE7/2B,UAAW,UACXksG,MAAO,iBACPi0H,UAAW,IAEb,CACEj0H,MAAO,SAAWw3wB,EAAK9F,SAAW,WAClCiC,SA3GgB,CACpB,YACA,kBACA,OACA,gBACA,WACA,iBACA,cACA,oBACA,SACA,aACA,YACA,qBACA,iBACA,cACA,UACA,QACA,mBACA,SACA,iBACA,iBACA,YACA,cACA,WACA,oBACA,WACA,YACA,WACA,oBACA,eACA,wBACA,oBACA,kBACA,cACA,eACA,iBACA,qBACA,SACA,mBACA,SACA,gBACA,UACA,cACA,WACA,wBACA,cACA,YACA,UACA,YACA,UACA,SACA,YA0DE,CACE7/2B,UAAW,SACX+rK,SAAU,CACR,CACE7/D,MAAO,oCAET,CACEA,MAAO,6BAGXi0H,UAAW,GAEb,CACEngO,UAAW,SACXksG,MAAO,IACP72G,IAAK,IACL8qO,UAAW,IAInB,qBCteA31B,EAAOrtL,QA9CP,SAAeum2B,GACb,MAAO,CACL/93B,KAAM,QACNuqL,QAAS,CACP,KACA,OAEFixsB,kBAAkB,EAClBtB,SAAU,4/cACV9s2B,SAAU,CACR,CACE/S,UAAW,SACXksG,MAAO,mBAET,CACElsG,UAAW,WACXksG,MAAO,yBAET,CACElsG,UAAW,SACX+rK,SAAU,CACR,CACE7/D,MAAO,kBAET,CACEA,MAAO,iBAKb,CACElsG,UAAW,WACX+rK,SAAU,CACR,CACE7/D,MAAO,q5CAKbw3wB,EAAKh2wB,QAAQ,iBAAiB,GAC9Bg2wB,EAAKpF,oBACLoF,EAAKnF,sBAGX,qBCQA/zqB,EAAOrtL,QA1DP,SAAgBum2B,GAiBd,MAAO,CACL/93B,KAAM,eACNuqL,QAAS,CACP,MACA,OACA,OAEFixsB,kBAAkB,EAClBtB,SAvBsB,CACtB6C,SAFsB,oBAGtB9B,QAAS,sBAsBT7t2B,SAAU,CApBS,CACnB/S,UAAW,OACXksG,MAAO,gBACPi0H,UAAW,IAEQ,CACnBngO,UAAW,OACXksG,MAAO,oBACPi0H,UAAW,IAeTujpB,EAAKpF,oBACLoF,EAAKnF,qBACLmF,EAAKh2wB,QAAQ,WAAY,QACzBg2wB,EAAKhF,cACLgF,EAAKtotB,QAAQsotB,EAAKxF,iBAAkB,CAClCC,QAAS,OAEXuF,EAAKtotB,QAAQsotB,EAAKtF,kBAAmB,CACnCD,QAAS,OAEX,CACEn+2B,UAAW,SACXksG,MAAO,IACP72G,IAAK,KAEP,CACE2K,UAAW,SACX+rK,SAAU,CACR,CACE7/D,MAAO,IACP72G,IAAK,OACL8o3B,QAAS,UAMrB,qBC/DA,MAuBM0T,EAAO,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,EAAiB,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,EAAiB,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,EAAkB,CACtB,QACA,WACA,SACA,MACA,aACA,eACA,aACA,gBACA,SACA,OACA,cACA,YACA,UACA,kBAGIC,EAAa,CACjB,gBACA,cACA,aACA,YACA,kBACA,sBACA,qBACA,sBACA,4BACA,iBACA,uBACA,4BACA,OACA,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,QACA,OACA,YACA,QACA,eACA,cACA,aACA,cACA,oBACA,oBACA,oBACA,cACA,eACA,UACA,UACA,oBACA,gBACA,SACA,YACA,UACA,cACA,SACA,OACA,aACA,iBACA,YACA,YACA,cACA,YACA,QACA,OACA,eACA,cACA,wBACA,eACA,yBACA,YACA,mBACA,iBACA,eACA,aACA,eACA,yBACA,0BACA,cACA,SACA,UACA,OACA,oBACA,kBACA,mBACA,WACA,UACA,UACA,kBACA,OACA,iBACA,cACA,aACA,mBACA,sBACA,kBACA,SACA,gBACA,cACA,eACA,aACA,QACA,OACA,aACA,YACA,aACA,YACA,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,cACA,qBACA,iBACA,WACA,SACA,SACA,QACA,MACA,WACA,eACA,aACA,kBACA,kBACA,wBACA,uBACA,wBACA,cACA,gBACA,iBACA,cACA,iBACA,0BACA,MACA,YACA,mBACA,kBACA,aACA,mBACA,sBACA,sBACA,6BACA,eACA,iBACA,aACA,cACA,SACA,QACA,aACA,eACA,YACA,WAGA9x1B,UAsLFqqK,EAAOrtL,QA3KP,SAAgBum2B,GACd,MAAM1ssB,EAtbO0ssB,KACN,CACLyO,UAAW,CACTny3B,UAAW,OACXksG,MAAO,cAETkmxB,SAAU,CACRpy3B,UAAW,SACXksG,MAAO,oCAETmmxB,wBAAyB,CACvBry3B,UAAW,gBACXksG,MAAO,KACP72G,IAAK,KACL8o3B,QAAS,IACTpr2B,SAAU,CACR2w2B,EAAKxF,iBACLwF,EAAKtF,sBAqaG56C,CAAMkgD,GAGdmL,EAAW,CACf7u3B,UAAW,WACXksG,MAAO,MAAQw3wB,EAAK9F,UAoBhB+mB,EAAoB,oBAiB1B,MAAO,CACLh/4B,KAAM,SACNuqL,QAAS,CAAE,QACXixsB,kBAAkB,EAClBtB,SAAU,iBACV1B,QAAS,IAnBK,CACd,MACA,iBACA,cACA,cACA,cACA,IACA,OACA,SACA,SACA,MACA,KAQuB5x2B,KAAK,KAAO,IACnCwG,SAAU,CAGR2w2B,EAAKtF,kBACLsF,EAAKxF,iBAGLwF,EAAKpF,oBACLoF,EAAKnF,qBAGLvnsB,EAAMo7sB,SAGN,CACElmxB,MAAO,4BAA8By4xB,EACrC3k4B,UAAW,kBAIb,CACEksG,MAAO,0BAA4By4xB,EACnC3k4B,UAAW,eAIb,CACEksG,MAAO,OAAS2lxB,EAAKtl3B,KAAK,KAAO,IAAMo43B,EACvC3k4B,UAAW,gBAIb,CACEA,UAAW,kBACXksG,MAAO,OAAS6lxB,EAAexl3B,KAAK,KAAO,IAAMo43B,GAEnD,CACE3k4B,UAAW,kBACXksG,MAAO,QAAU8lxB,EAAgBzl3B,KAAK,KAAO,IAAMo43B,GAGrD3ttB,EAAMq7sB,wBAEN,CACEry3B,UAAW,UACXksG,MAAO,SACPm3wB,OAAQ,CACNhu3B,IAAK,QACLwq3B,SAAU,CACR6C,SAAU,UACV9B,QAhGW,kBAiGXv5yB,UAAWyqzB,EAAevl3B,KAAK,MAEjCwG,SAAU,CAAE2w2B,EAAK9E,mBAKrB,CACE5+2B,UAAW,UACXksG,MAAO,4BApGO,CAClB,UACA,MACA,QACA,SACA,YACA,MACA,SACA,UACA,YACA,QACA,QACA,OACA,OACA,SAsFsD3/F,KAAK,KAAO,SAIhEsi3B,EAGAnL,EAAK9E,gBAIL,CACE5+2B,UAAW,WACXksG,MAAO,kCACPiywB,QAAS,QACT0J,aAAa,EACb902B,SAAU,CACR,CACE/S,UAAW,QACXksG,MAAO,6BAET,CACElsG,UAAW,SACXksG,MAAO,KACP72G,IAAK,KACL0d,SAAU,CACRikK,EAAMo7sB,SACNvD,EACAnL,EAAKxF,iBACLwF,EAAK9E,gBACL8E,EAAKtF,sBASb,CACEp+2B,UAAW,YACXksG,MAAO,OAAS+lxB,EAAW1l3B,KAAK,KAAO,OACvC822B,OAAQ,CAENhu3B,IAAK,MACL0d,SAAU,CACRikK,EAAMo7sB,SACNvD,EACAnL,EAAKxF,iBACLwF,EAAKtF,kBACLsF,EAAK9E,gBACL8E,EAAKnF,qBACLvnsB,EAAMm7sB,WAERhU,QAAS,KACTh+oB,UAAW,KAKrB,oBC5iBA31B,EAAOrtL,QA5CP,SAAiBum2B,GAgCf,MAAO,CACL/93B,KAAM,UACNw73B,kBAAkB,EAClBpu2B,SAAU,CAlCI,CACd/S,UAAW,SACXksG,MAAO,oBACP72G,IAAK,SAEM,CACX2K,UAAW,SACXksG,MAAO,wDAEa,CACpBlsG,UAAW,SACXksG,MAAO,eAEQ,CACflsG,UAAW,UACXmgO,UAAW,GACXp0D,SAAU,CACR,CACE7/D,MAAO,wFAET,CACEA,MAAO,mCAET,CACEA,MAAO,UAET,CACEA,MAAO,aAcf,qBCvCA,SAAS5hG,EAAOugK,GACd,OAAKA,EACa,kBAAPA,EAAwBA,EAE5BA,EAAGvgK,OAHM,IAIlB,CAMA,SAAS4n3B,EAAUrntB,GACjB,OAAO5iK,EAAO,MAAO4iK,EAAI,IAC3B,CAMA,SAAS5iK,IAAgB,QAAA2F,EAAAvD,UAAAlkB,OAAN6nB,EAAI,IAAAnG,MAAA+F,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJE,EAAIF,GAAAzD,UAAAyD,GAErB,OADeE,EAAKvY,KAAK/E,GAAM4Z,EAAO5Z,KAAI6b,KAAK,GAEjD,CASA,SAAS0z2B,IAAgB,QAAAly2B,EAAA1D,UAAAlkB,OAAN6nB,EAAI,IAAAnG,MAAAkG,GAAAE,EAAA,EAAAA,EAAAF,EAAAE,IAAJD,EAAIC,GAAA5D,UAAA4D,GAErB,MADe,IAAMD,EAAKvY,KAAK/E,GAAM4Z,EAAO5Z,KAAI6b,KAAK,KAAO,GAE9D,CAEA,MAAMq43B,EAAiBhkB,GAAW342B,EAChC,KACA242B,EACA,MAAM/02B,KAAK+02B,GAAW,KAAO,MAIzBikB,EAAc,CAClB,WACA,QACApv4B,IAAImv4B,GAGAE,EAAsB,CAC1B,OACA,QACArv4B,IAAImv4B,GAGAG,EAAe,CACnB,MACA,QAIIllB,EAAW,CAIf,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,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,WAOI/K,EAAW,CACf,QACA,MACA,QAIIkwB,EAA0B,CAC9B,aACA,gBACA,aACA,OACA,YACA,OACA,SAKIC,EAAqB,CACzB,gBACA,UACA,aACA,QACA,UACA,SACA,SACA,QACA,UACA,eACA,YACA,YACA,MACA,gBACA,WACA,QACA,YACA,kBACA,2BACA,YAIIC,EAAW,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,EAAellB,EACnB,oBACA,kBACA,iBACA,iBACA,iBACA,mCACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,kBACA,YAIImlB,EAAoBnlB,EACxBklB,EACA,kBACA,kBACA,kBACA,kBACA,mBAMI57mB,EAAWthR,EAAOk93B,EAAcC,EAAmB,KAGnDC,EAAiBplB,EACrB,YACA,uDACA,yDACA,yDACA,kBACA,+DACA,yDACA,+BACA,yDACA,yDACA,gCASIqlB,EAAsBrlB,EAC1BolB,EACA,KACA,0DAII/3xB,EAAarlG,EAAOo93B,EAAgBC,EAAqB,KAGzDC,EAAiBt93B,EAAO,QAASq93B,EAAqB,KAItDE,EAAoB,CACxB,cACAv93B,EAAO,eAAgBg42B,EAAO,QAAS,QAAS,KAAM,MACtD,oBACA,kBACA,sBACA,WACA,SACA,gBACA,WACA,eACA,gBACA,WACA,gBACA,YACA,OACA,UACA,oBACA,YACA,YACAh42B,EAAO,SAAUqlG,EAAY,MAC7B,OACA,cACA,kBACA,iCACA,WACA,oBACA,UACA,oBAIIm4xB,EAAuB,CAC3B,MACA,0BACA,QACA,4BACA,cACA,kCACA,UACA,8BACA,OACA,2BACA,SAmgBFj7rB,EAAOrtL,QAtfP,SAAeum2B,GACb,MAAMgiB,EAAa,CACjBh9xB,MAAO,MACPy3H,UAAW,GAGPwlqB,EAAgBjiB,EAAKh2wB,QACzB,OACA,OACA,CACE36F,SAAU,CAAE,UAGV242B,EAAW,CACfhI,EAAKpF,oBACLqnB,GAKIC,EAAc,CAClB5l4B,UAAW,UACXksG,MAAOjkG,EAAO,KAAMiq3B,EAAUjS,KAAU4kB,KAAgBC,KACxDzv4B,IAAK4q3B,KAAU4kB,KAAgBC,GAC/Bld,cAAc,GAEVie,EAAgB,CAEpBn9xB,MAAOzgG,EAAO,KAAMg42B,KAAUJ,IAC9B1/oB,UAAW,GAEP2lqB,EAAiBjmB,EACpB7l3B,QAAOs23B,GAAoB,kBAAPA,IACpBro3B,OAAO,CAAE,QAKNoj3B,EAAU,CACdt/sB,SAAU,CACR,CACE/rK,UAAW,UACX0oG,MAAOu3wB,KARUJ,EACpB7l3B,QAAOs23B,GAAoB,kBAAPA,IACpBro3B,OAAO883B,GACPtv4B,IAAImv4B,MAKmCE,MAKpC1X,EAAW,CACf1K,SAAUzC,EACR,QACA,QAEFW,QAASklB,EACN793B,OAAOg93B,GACVlZ,QAASjX,GAELixB,EAAgB,CACpBH,EACAC,EACAxa,GAaI+E,EAAY,CATK,CAErB1nxB,MAAOzgG,EAAO,KAAMg42B,KAAUilB,IAC9B/kqB,UAAW,GAEI,CACfngO,UAAW,WACX0oG,MAAOzgG,EAAO,KAAMg42B,KAAUilB,GAAW,YAQrCc,EAAiB,CAErBt9xB,MAAO,KACPy3H,UAAW,GAiBP8lqB,EAAY,CAChBD,EAhBe,CACfhm4B,UAAW,WACXmgO,UAAW,EACXp0D,SAAU,CACR,CACErjE,MAAO6gL,GAET,CAIE7gL,MAAQ,WAAU08xB,UAWlBzN,EAAgB,aAChBE,EAAY,mBACZ3/V,EAAS,CACbl4hB,UAAW,SACXmgO,UAAW,EACXp0D,SAAU,CAER,CACErjE,MAAQ,OAAMivxB,UAAsBA,kBAAmCA,WAGzE,CACEjvxB,MAAQ,SAAQmvxB,UAAkBA,kBAA+BF,WAGnE,CACEjvxB,MAAO,oBAGT,CACEA,MAAO,qBAMPw9xB,EAAoB,eAACC,EAAY973B,UAAAlkB,OAAA,QAAAyH,IAAAyc,UAAA,GAAAA,UAAA,GAAG,GAAE,MAAM,CAChDrK,UAAW,QACX+rK,SAAU,CACR,CACErjE,MAAOzgG,EAAO,KAAMk+3B,EAAc,eAEpC,CACEz9xB,MAAOzgG,EAAO,KAAMk+3B,EAAc,2BAGvC,EACKC,EAAkB,WAAkB,MAAM,CAC9Cpm4B,UAAW,QACX0oG,MAAOzgG,EAAO,KAFqBoC,UAAAlkB,OAAA,QAAAyH,IAAAyc,UAAA,GAAAA,UAAA,GAAG,GAEJ,yBACnC,EACK6u3B,EAAgB,WAAkB,MAAM,CAC5Cl53B,UAAW,QACX3Q,MAAO,WACP68G,MAAOjkG,EAAO,KAHmBoC,UAAAlkB,OAAA,QAAAyH,IAAAyc,UAAA,GAAAA,UAAA,GAAG,GAGF,MAClChV,IAAK,KACN,EACKgx4B,EAAmB,eAACF,EAAY973B,UAAAlkB,OAAA,QAAAyH,IAAAyc,UAAA,GAAAA,UAAA,GAAG,GAAE,MAAM,CAC/C6hG,MAAOjkG,EAAOk+3B,EAAc,OAC5B9w4B,IAAK4S,EAAO,MAAOk+3B,GACnBpz3B,SAAU,CACRmz3B,EAAkBC,GAClBC,EAAgBD,GAChBjN,EAAciN,IAEjB,EACKG,EAAqB,eAACH,EAAY973B,UAAAlkB,OAAA,QAAAyH,IAAAyc,UAAA,GAAAA,UAAA,GAAG,GAAE,MAAM,CACjD6hG,MAAOjkG,EAAOk+3B,EAAc,KAC5B9w4B,IAAK4S,EAAO,IAAKk+3B,GACjBpz3B,SAAU,CACRmz3B,EAAkBC,GAClBjN,EAAciN,IAEjB,EACKtuW,EAAS,CACb73hB,UAAW,SACX+rK,SAAU,CACRs6tB,IACAA,EAAiB,KACjBA,EAAiB,MACjBA,EAAiB,OACjBC,IACAA,EAAmB,KACnBA,EAAmB,MACnBA,EAAmB,SAKjBC,EAAoB,CACxB79xB,MAAOzgG,EAAO,IAAKqlG,EAAY,MAU3Bk5xB,EAAc,CAClBD,EATyB,CACzBvm4B,UAAW,WACX0oG,MAAO,SAE2B,CAClC1oG,UAAW,WACX0oG,MAAQ,MAAK48xB,OAmCTrT,EAAa,CA1BS,CAC1BvpxB,MAAO,iBACP1oG,UAAW,UACXqj3B,OAAQ,CACNtw2B,SAAU,CACR,CACEm5F,MAAO,KACP72G,IAAK,KACLwq3B,SAAU4lB,EACV1y3B,SAAU,IACLkz3B,EACH/tW,EACAL,OAMgB,CACxB73hB,UAAW,UACX0oG,MAAOzgG,EAAO,IAAKg42B,KAAUulB,KAEA,CAC7Bxl4B,UAAW,OACX0oG,MAAOzgG,EAAO,IAAKqlG,KASfo2xB,EAAO,CACXh7xB,MAAOwpxB,EAAU,WACjB/xpB,UAAW,EACXptN,SAAU,CACR,CACE/S,UAAW,OACX0oG,MAAOzgG,EAAO,gEAAiEq93B,EAAqB,MAEtG,CACEtl4B,UAAW,OACX0oG,MAAO68xB,EACPplqB,UAAW,GAEb,CACEz3H,MAAO,QACPy3H,UAAW,GAEb,CACEz3H,MAAO,SACPy3H,UAAW,GAEb,CACEz3H,MAAOzgG,EAAO,UAAWiq3B,EAAUqT,IACnCplqB,UAAW,KAIXsmqB,EAAoB,CACxBv6xB,MAAO,IACP72G,IAAK,IACLwq3B,SAAUuN,EACVr62B,SAAU,IACL242B,KACAqa,KACA9T,EACH+T,EACAtC,IAGJA,EAAK3w3B,SAAS5L,KAAKs/3B,GAInB,MAMMhS,EAAQ,CACZvoxB,MAAO,KACP72G,IAAK,KACL8qO,UAAW,EACX0/oB,SAAUuN,EACVr62B,SAAU,CACR,OAZuB,CACzB21F,MAAOzgG,EAAOqlG,EAAY,QAC1BuywB,SAAU,MACV1/oB,UAAW,MAWNurpB,KACAqa,KACA3V,KACA6V,EACH/tW,EACAL,KACG2uW,KACAvU,EACHyR,IAQEgD,EAAkB,CACtB/mB,cAAe,OACf5s2B,SAAU,CACR,CACE/S,UAAW,QACX0oG,MAAOu3wB,EAAOsmB,EAAkB79xB,MAAO4E,EAAYi8K,GAGnD+9lB,YAAY,EACZnnpB,UAAW,GAEbulqB,IAGEiB,EAAqB,CACzBz6xB,MAAO,IACP72G,IAAK,IACL0d,SAAU,IACL242B,EACHgY,IAqBEkD,EAAsB,CAC1B16xB,MAAO,KACP72G,IAAK,KACLwq3B,SAAUuN,EACVr62B,SAAU,CAtBoB,CAC9Bm5F,MAAO+zwB,EACLiS,EAAUjq3B,EAAOqlG,EAAY,SAC7B4kxB,EAAUjq3B,EAAOqlG,EAAY,MAAOA,EAAY,UAElDj4G,IAAK,IACL8qO,UAAW,EACXptN,SAAU,CACR,CACE/S,UAAW,UACX0oG,MAAO,SAET,CACE1oG,UAAW,SACX0oG,MAAO4E,QAUNo+wB,KACAqa,KACAE,EACH/tW,EACAL,KACGo6V,EACHyR,EACAjP,GAEFnN,YAAY,EACZnJ,QAAS,QAEL1mV,EAAW,CACfz3hB,UAAW,WACX0oG,MAAOwpxB,EAAU,YACjBn/2B,SAAU,CACR2z3B,EACAC,EACAC,EACAlB,GAEFvnB,QAAS,CACP,KACA,MAME0oB,EAAiB,CACrB7m4B,UAAW,WACX0oG,MAAO,qCACPm3wB,SAAU,CACRe,QAAS,6BACT8B,SAAU,YAEZ3v2B,SAAU,CACR4z3B,EACAC,EACAlB,GAEFvnB,QAAS,QAGL2oB,EAAuB,CAC3BnnB,cAAe,WACftq3B,IAAKqu3B,EAAKzE,iBACVls2B,SAAU,CACR,CACE/S,UAAW,QACX0oG,MAAO6gL,EACP+9lB,YAAY,EACZnnpB,UAAW,KAMX4mqB,EAAkB,CACtBpnB,cAAe,kBACftq3B,IAAKqu3B,EAAKzE,iBACVls2B,SAAU,CACR,CACE/S,UAAW,QACX0oG,MAAO68xB,EACPplqB,UAAW,GAEb,CACEj0H,MAAO,IACP72G,IAAK,IACL8qO,UAAW,EACXmnpB,YAAY,EACZzH,SAAU,IACLmlB,KACAlwB,GAEL/h2B,SAAU,CAAE2w3B,MAMlB,IAAK,MAAMh24B,KAAWmqiB,EAAO9rX,SAAU,CACrC,MAAM13D,EAAgB3mH,EAAQqlB,SAASoqB,MAAKzpC,GAAuB,aAAfA,EAAKrE,QAEzDglH,EAAcwrwB,SAAWuN,EACzB,MAAM4Z,EAAW,IACZjB,KACA3V,KACA6V,EACH/tW,EACAL,KACG2uW,GAELnyxB,EAActhG,SAAW,IACpBi03B,EACH,CACE96xB,MAAO,KACP72G,IAAK,KACL0d,SAAU,CACR,UACGi03B,IAIX,CAEA,MAAO,CACLrh5B,KAAM,QACNk63B,SAAUuN,EACVr62B,SAAU,IACL242B,EACHj0V,EACAovW,EACA,CACE7m4B,UAAW,QACX2/2B,cAAe,uCACftq3B,IAAK,MACL4y3B,YAAY,EACZpI,SAAUuN,EACVr62B,SAAU,CACR2w2B,EAAKtotB,QAAQsotB,EAAK5E,WAAY,CAC5B5ywB,MAAO,6CAEN65xB,IAGPe,EACAC,EACA,CACEpnB,cAAe,SACftq3B,IAAK,IACL0d,SAAU,IAAK242B,GACfvrpB,UAAW,MAEV4lqB,KACA3V,KACA6V,EACH/tW,EACAL,KACG2uW,KACAvU,EACHyR,EACAjP,GAGN,qBCnzBAjqrB,EAAOrtL,QA7CP,SAAsBum2B,GAkCpB,MAAO,CACL/93B,KAAM,gBACNotB,SAAU,CAnCI,CACd/S,UAAW,UACXksG,MAAO,WACP72G,IAAK,KACL0d,SAAU,CAAE,CACVm5F,MAAO,KACP72G,IAAK,KACL0d,SAAU,CAAE,OACV,CACEm5F,MAAO,UAGbi0H,UAAW,IAGI,CACfngO,UAAW,UACXksG,MAAO,kCACP72G,IAAK,KACL4y3B,YAAY,GAGG,CACfjo3B,UAAW,WACXksG,MAAO,kBACP72G,IAAK,KAGiB,CACtB2K,UAAW,SACXksG,MAAO,QAYX,qBCKAs+F,EAAOrtL,QA9CP,SAAaum2B,GACX,MAAO,CACL/93B,KAAM,yBACNw73B,kBAAkB,EAClBpu2B,SAAU,CACR2w2B,EAAKlF,kBAEL,CACEx+2B,UAAW,OACX+rK,SAAU,CACR,CACE7/D,MAAO,wBAET,CACEA,MAAO,qBAKb,CACEA,MAAO,OACP72G,IAAK,aACLux3B,YAAa,OACbzmpB,UAAW,GAGb,CACEngO,UAAW,SACXksG,MAAO,YAGT,CACElsG,UAA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MAAO,iBACP2zwB,SACE,4SAIF9s2B,SAAU,CACR6r3B,IAIA/M,EAAO,iIAKX,OAFAA,EAAOA,EAAO,IAAMA,EAAK1q4B,MAAM,KAAKsO,KAAI,SAASzP,GAAG,MAAO,MAAQA,CAAC,IAAGumB,KAAK,KAErE,CACL5mB,KAAM,OACNuqL,QAAS,CAAC,YACVixsB,kBAAkB,EAClByF,YAAa,MACb7z2B,SAAU,CACR2w2B,EAAKh2wB,QAAQ,MAAO,OACpB,CACE1tG,UAAW,eACXksG,MAAO,MAAO72G,IAAK,MACnB0d,SAAU,CACR,CACE/S,UAAW,OACXksG,MAAO,MACP2zwB,SAAUgS,EACVxO,OAAQ,CACNN,gBAAgB,EAChBhw2B,SAAU,CAACkib,EAAQ2pc,GACnBz+pB,UAAW,MAKnB,CACEngO,UAAW,oBACXksG,MAAO,OAAQ72G,IAAK,OACpB0d,SAAU,CAAC,OAAQkib,EAAQ2pc,KAInC,qBC1EA,MAAMhhB,EAAW,2BACXwP,EAAW,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,WAEI+C,EAAW,CACf,OACA,QACA,OACA,YACA,MACA,YAoFIC,EAAY,GAAGno3B,OAlCI,CACvB,cACA,aACA,gBACA,eAEA,UACA,UAEA,OACA,WACA,QACA,aACA,WACA,YACA,qBACA,YACA,qBACA,SACA,YAGyB,CACzB,YACA,OACA,QACA,UACA,SACA,WACA,eACA,SACA,UA9EY,CACZ,OACA,WACA,SACA,OACA,OACA,SACA,SACA,SACA,WACA,UACA,QACA,SACA,MACA,MACA,UACA,UACA,QACA,UACA,OACA,UACA,eACA,aACA,aACA,YACA,cACA,cACA,eACA,QACA,aACA,oBACA,cACA,gBACA,iBACA,UAGkB,CAClB,YACA,gBACA,aACA,iBACA,cACA,YACA,aAgEF,SAASiq3B,EAAUrntB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AAK,QACL8qO,UAAW,IAEbkoqB,EACA,CACEro4B,UAAW,OACXksG,MAAO,SACP72G,IAAK,MACL8qO,UAAW,IAEb,CACEngO,UAAW,MAOXksG,MAAO,iBACP72G,IAAK,IACLwq3B,SAAU,CACRl63B,KAAM,SAERotB,SAAU,CAAE213B,GACZrlB,OAAQ,CACNhu3B,IAAK,YACL2y3B,WAAW,EACXpB,YAAa,CACX,MACA,SAIN,CACE5m3B,UAAW,MAEXksG,MAAO,kBACP72G,IAAK,IACLwq3B,SAAU,CACRl63B,KAAM,UAERotB,SAAU,CAAE213B,GACZrlB,OAAQ,CACNhu3B,IAAK,aACL2y3B,WAAW,EACXpB,YAAa,CACX,aACA,aACA,SAKN,CACE5m3B,UAAW,MACXksG,MAAO,WAGT,CACElsG,UAAW,MACXksG,MAAOjkG,EACL,IACAiq3B,EAAUjq3B,EACRmg4B,EAIAnoB,EAAO,MAAO,IAAK,SAGvB5q3B,IAAK,OACL0d,SAAU,CACR,CACE/S,UAAW,OACXksG,MAAOk8xB,EACPjoqB,UAAW,EACXkjpB,OAAQqlB,KAKd,CACE1o4B,UAAW,MACXksG,MAAOjkG,EACL,MACAiq3B,EAAUjq3B,EACRmg4B,EAAa,OAGjBr13B,SAAU,CACR,CACE/S,UAAW,OACXksG,MAAOk8xB,EACPjoqB,UAAW,GAEb,CACEj0H,MAAO,IACPi0H,UAAW,EACXmnpB,YAAY,MAMxB,oBCxFA98qB,EAAOrtL,QAxLP,SAAgBkv2B,GAsKd,MAAO,CACL1m4B,KAAM,SACNuqL,QAAS,CACP,QACA,MAEFixsB,kBAAkB,EAClBhD,QAAS,0CACT0B,SAAU,CACR6C,SAAU,2BACV9B,QA7KF,0uBA8KEp33B,KAnKF,osBAoKEui4B,QAhKF,gMAkKAh52B,SA1Be,CA/EL,CACV/S,UAAW,WACXksG,MAAO,eAtDQ,CACflsG,UAAW,WACX+rK,SAAU,CACR,CACE7/D,MAAO,WACP72G,IAAK,6IAEP,CACE62G,MAAO,SACP72G,IAAK,qEAEP,CACE62G,MAAO,UACP72G,IAAK,4EAEP,CACE62G,MAAO,QACP72G,IAAK,K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jG,GAAK,GAAMA,IAAM,CAC/D,CAEA,SAASgu9B,EAAShu9B,EAAGiG,GACnB,OAAQjG,IAAM,GAAKiG,GAAM,KAAOA,IAAO,GAAKjG,GAAK,IAAMA,IAAM,EAAIiG,GAAM,GACzE,CAEA,SAASgo9B,EAAUr49B,EAAGy3B,GACpB,OAAQz3B,IAAM,EAAMy3B,IAAM,EAAK,EAAI,CACrC,CA1DAy8sB,EAAS8jP,EAAQngI,GAEjBmgI,EAAO749B,UAAUu9O,KAAO,WAmBtB,OAlBAz9O,KAAK839B,IAAM,WACX939B,KAAK+39B,IAAM,WACX/39B,KAAKg49B,IAAM,WACXh49B,KAAKi49B,IAAM,WACXj49B,KAAKk49B,IAAM,WACXl49B,KAAKm49B,IAAM,WACXn49B,KAAKo49B,IAAM,UACXp49B,KAAKq49B,IAAM,WAEXr49B,KAAKs49B,IAAM,WACXt49B,KAAKu49B,IAAM,WACXv49B,KAAKw49B,IAAM,WACXx49B,KAAKy49B,IAAM,WACXz49B,KAAK049B,IAAM,WACX149B,KAAK249B,IAAM,UACX349B,KAAK449B,IAAM,WACX549B,KAAK649B,IAAM,UAEJ749B,IACT,EAsCA+49B,EAAO749B,UAAU280B,QAAU,SAAUzuxB,GAqBnC,IApBA,IAAIS,EAAI7uD,KAAKo39B,GAET5hG,EAAgB,EAAXx13B,KAAK839B,IACVpl6B,EAAgB,EAAX1yD,KAAK+39B,IACVvvK,EAAgB,EAAXxozB,KAAKg49B,IACVn+H,EAAgB,EAAX751B,KAAKi49B,IACVtiG,EAAgB,EAAX313B,KAAKk49B,IACVtiG,EAAgB,EAAX513B,KAAKm49B,IACVriG,EAAgB,EAAX913B,KAAKo49B,IACVzs6B,EAAgB,EAAX3rD,KAAKq49B,IAEV1o6B,EAAgB,EAAX3vD,KAAKs49B,IACVn5I,EAAgB,EAAXn/0B,KAAKu49B,IACV9iG,EAAgB,EAAXz13B,KAAKw49B,IACV9iG,EAAgB,EAAX113B,KAAKy49B,IACVxk0B,EAAgB,EAAXj0J,KAAK049B,IACV7iG,EAAgB,EAAX713B,KAAK249B,IACV5iG,EAAg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AK839B,IAAO939B,KAAK839B,IAAMtiG,EAAK4jG,EAASp59B,KAAKs49B,IAAK3o6B,GAAO,EACtD3vD,KAAK+39B,IAAO/39B,KAAK+39B,IAAMrl6B,EAAK0m6B,EAASp59B,KAAKu49B,IAAKp5I,GAAO,EACtDn/0B,KAAKg49B,IAAOh49B,KAAKg49B,IAAMxvK,EAAK4wK,EAASp59B,KAAKw49B,IAAK/iG,GAAO,EACtDz13B,KAAKi49B,IAAOj49B,KAAKi49B,IAAMp+H,EAAKu/H,EAASp59B,KAAKy49B,IAAK/iG,GAAO,EACtD113B,KAAKk49B,IAAOl49B,KAAKk49B,IAAMviG,EAAKyjG,EAASp59B,KAAK049B,IAAKzk0B,GAAO,EACtDj0J,KAAKm49B,IAAOn49B,KAAKm49B,IAAMviG,EAAKwjG,EAASp59B,KAAK249B,IAAK9iG,GAAO,EACtD713B,KAAKo49B,IAAOp49B,KAAKo49B,IAAMtiG,EAAKsjG,EAASp59B,KAAK449B,IAAK7iG,GAAO,EACtD/13B,KAAKq49B,IAAOr49B,KAAKq49B,IAAM1s6B,EAAKyt6B,EAASp59B,KAAK649B,IAAK7iG,GAAO,CACxD,EAEA+iG,EAAO749B,UAAUwi1B,MAAQ,WACvB,IAAI30xB,EAAIrsB,EAAOo1E,YAAY,IAE3B,SAASgi3B,EAAc538B,EAAGmsC,EAAGtH,GAC3BgI,EAAEkxD,aAAa/9F,EAAG6kC,GAClBgI,EAAEkxD,aAAa5xD,EAAGtH,EAAS,EAC7B,CAWA,OATA+y6B,EAAa949B,KAAK839B,IAAK939B,KAAKs49B,IAAK,GACjCQ,EAAa949B,KAAK+39B,IAAK/39B,KAAKu49B,IAAK,GACjCO,EAAa949B,KAAKg49B,IAAKh49B,KAAKw49B,IAAK,IACjCM,EAAa949B,KAAKi49B,IAAKj49B,KAAKy49B,IAAK,IACjCK,EAAa949B,KAAKk49B,IAAKl49B,KAAK049B,IAAK,IACjCI,EAAa949B,KAAKm49B,IAAKn49B,KAAK249B,IAAK,IACjCG,EAAa949B,KAAKo49B,IAAKp49B,KAAK449B,IAAK,IACjCE,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AI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,IAAK,GAAGf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI,GAAI,KAAKf,OAAOe,EAAI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","sources":["aws-exports.js","../node_modules/jwt-decode/lib/atob.js","../node_modules/jwt-decode/lib/base64_url_decode.js","../node_modules/jwt-decode/lib/index.js","utils/jwt.js","contexts/shared/constants.js","contexts/shared/initializer.js","contexts/shared/reducer.js","contexts/shared/actions.js","contexts/JWTContext.js","hooks/useAuth.js","pages/dashboards/Default/Actions.js","pages/dashboards/Default/BarChart.js","pages/dashboards/Default/LineChart.js","pages/dashboards/Default/DoughnutChart.js","pages/dashboards/Default/Stats.js","pages/dashboards/Default/Table.js","pages/dashboards/Default/index.js","pages/renderers/AgAction.jsx","pages/renderers/FormattedDate.js","pages/system/Users/DeleteDialog.js","pages/renderers/FullName.js","pages/system/Users/Columns.js","pages/system/Users/Details.js","pages/system/Users/UserEdit.js","pages/system/Users/UserList.js","../node_modules/file-selector/src/file.ts","../node_modules/file-selector/src/file-selector.ts","../node_modules/react-dropzone/dist/es/utils/index.js","../node_modules/react-dropzone/dist/es/index.js","pages/utils/ImageUploader.js","pages/utils/LoadingData.js","pages/utils/SnackbarAlert.js","redux/slices/AIMedicalNotes.js","redux/slices/lists.js","redux/slices/users.js","utils/axios.js","utils/fetchApi.js","../node_modules/@aws-crypto/crc32/src/aws_crc32.ts","../node_modules/@aws-crypto/crc32/src/index.ts","../node_modules/@aws-crypto/crc32/node_modules/tslib/tslib.es6.js","../node_modules/@aws-crypto/crc32c/src/aws_crc32c.ts","../node_modules/@aws-crypto/crc32c/src/index.ts","../node_modules/@aws-crypto/crc32c/node_modules/tslib/tslib.es6.js","../node_modules/@aws-crypto/ie11-detection/src/MsWindow.ts","../node_modules/@aws-crypto/ie11-detection/src/index.ts","../node_modules/@aws-crypto/ie11-detection/node_modules/tslib/tslib.es6.js","../node_modules/@aws-crypto/sha1-browser/src/constants.ts","../node_modules/@aws-crypto/sha1-browser/src/crossPlatformSha1.ts","../node_modules/@aws-crypto/sha1-browser/src/ie11Sha1.ts","../node_modules/@aws-crypto/sha1-browser/src/index.ts","../node_modules/@aws-crypto/sha1-browser/src/isEmptyData.ts","../node_modules/@aws-crypto/sha1-browser/src/webCryptoSha1.ts","../node_modules/@aws-crypto/sha1-browser/node_modules/@aws-sdk/util-utf8-browser/dist-es/index.js","../node_modules/@aws-crypto/sha1-browser/node_modules/@aws-sdk/util-utf8-browser/dist-es/whatwgEncodingApi.js","../node_modules/@aws-crypto/sha1-browser/node_modules/@aws-sdk/util-utf8-browser/dist-es/pureJs.js","../node_modules/@aws-crypto/sha1-browser/node_modules/tslib/tslib.es6.js","../node_modules/@aws-crypto/supports-web-crypto/src/index.ts","../node_modules/@aws-crypto/supports-web-crypto/src/supportsWebCrypto.ts","../node_modules/@aws-crypto/supports-web-crypto/node_modules/tslib/tslib.es6.js","../node_modules/@aws-crypto/util/src/convertToBuffer.ts","../node_modules/@aws-crypto/util/src/index.ts","../node_modules/@aws-crypto/util/src/isEmptyData.ts","../node_modules/@aws-crypto/util/src/numToUint8.ts","../node_modules/@aws-crypto/util/src/uint32ArrayFrom.ts","../node_modules/@aws-crypto/util/node_modules/@aws-sdk/util-utf8-browser/dist-es/index.js","../node_modules/@aws-crypto/util/node_modules/@aws-sdk/util-utf8-browser/dist-es/whatwgEncodingApi.js","../node_modules/@aws-crypto/util/node_modules/@aws-sdk/util-utf8-browser/dist-es/pureJs.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/CompleteMultipartUploadCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/CreateMultipartUploadCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectTaggingCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/UploadPartCommand.js","../node_modules/@aws-sdk/middleware-expect-continue/dist-es/index.js","../node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-host-header/dist-es/index.js","../node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-logger/dist-es/loggerMiddleware.js","../node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-recursion-detection/dist-es/index.js","../node_modules/@smithy/property-provider/dist-es/memoize.js","../node_modules/@smithy/eventstream-codec/dist-es/HeaderMarshaller.js","../node_modules/@smithy/eventstream-codec/dist-es/Int64.js","../node_modules/@smithy/eventstream-codec/dist-es/EventStreamCodec.js","../node_modules/@smithy/eventstream-codec/dist-es/splitMessage.js","../node_modules/@smithy/eventstream-codec/dist-es/MessageDecoderStream.js","../node_modules/@smithy/eventstream-codec/dist-es/MessageEncoderStream.js","../node_modules/@smithy/eventstream-codec/dist-es/SmithyMessageDecoderStream.js","../node_modules/@smithy/eventstream-codec/dist-es/SmithyMessageEncoderStream.js","../node_modules/@smithy/signature-v4/dist-es/constants.js","../node_modules/@smithy/signature-v4/dist-es/credentialDerivation.js","../node_modules/@smithy/signature-v4/dist-es/getCanonicalHeaders.js","../node_modules/@smithy/signature-v4/dist-es/getPayloadHash.js","../node_modules/@smithy/signature-v4/dist-es/cloneRequest.js","../node_modules/@smithy/signature-v4/dist-es/prepareRequest.js","../node_modules/@smithy/signature-v4/dist-es/utilDate.js","../node_modules/@smithy/signature-v4/dist-es/SignatureV4.js","../node_modules/@smithy/signature-v4/dist-es/moveHeadersToQuery.js","../node_modules/@smithy/signature-v4/dist-es/headerUtil.js","../node_modules/@smithy/signature-v4/dist-es/getCanonicalQuery.js","../node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-signing/dist-es/awsAuthConfiguration.js","../node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-signing/dist-es/utils/getSkewCorrectedDate.js","../node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-signing/dist-es/utils/getUpdatedSystemClockOffset.js","../node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-signing/dist-es/utils/isClockSkewed.js","../node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-signing/dist-es/awsAuthMiddleware.js","../node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/partition.js","../node_modules/@aws-sdk/util-endpoints/dist-es/debug/debugId.js","../node_modules/@aws-sdk/util-endpoints/dist-es/debug/toDebugString.js","../node_modules/@aws-sdk/util-endpoints/dist-es/types/EndpointError.js","../node_modules/@aws-sdk/util-endpoints/dist-es/lib/isIpAddress.js","../node_modules/@aws-sdk/util-endpoints/dist-es/lib/isValidHostLabel.js","../node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/isVirtualHostableS3Bucket.js","../node_modules/@aws-sdk/util-endpoints/dist-es/lib/aws/parseArn.js","../node_modules/@aws-sdk/util-endpoints/dist-es/lib/booleanEquals.js","../node_modules/@aws-sdk/util-endpoints/dist-es/lib/getAttr.js","../node_modules/@aws-sdk/util-endpoints/dist-es/lib/getAttrPathList.js","../node_modules/@aws-sdk/util-endpoints/dist-es/lib/isSet.js","../node_modules/@aws-sdk/util-endpoints/dist-es/lib/not.js","../node_modules/@aws-sdk/types/dist-es/dns.js","../node_modules/@aws-sdk/util-endpoints/dist-es/lib/parseURL.js","../node_modules/@aws-sdk/util-endpoints/dist-es/lib/stringEquals.js","../node_modules/@aws-sdk/util-endpoints/dist-es/lib/substring.js","../node_modules/@aws-sdk/util-endpoints/dist-es/lib/uriEncode.js","../node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateTemplate.js","../node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateExpression.js","../node_modules/@aws-sdk/util-endpoints/dist-es/utils/getReferenceValue.js","../node_modules/@aws-sdk/util-endpoints/dist-es/utils/callFunction.js","../node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateCondition.js","../node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateConditions.js","../node_modules/@aws-sdk/util-endpoints/dist-es/utils/getEndpointHeaders.js","../node_modules/@aws-sdk/util-endpoints/dist-es/utils/getEndpointProperty.js","../node_modules/@aws-sdk/util-endpoints/dist-es/utils/getEndpointProperties.js","../node_modules/@aws-sdk/util-endpoints/dist-es/utils/getEndpointUrl.js","../node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateEndpointRule.js","../node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateErrorRule.js","../node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateTreeRule.js","../node_modules/@aws-sdk/util-endpoints/dist-es/utils/evaluateRules.js","../node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-user-agent/dist-es/constants.js","../node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-user-agent/dist-es/user-agent-middleware.js","../node_modules/@smithy/util-config-provider/dist-es/booleanSelector.js","../node_modules/@smithy/config-resolver/dist-es/regionConfig/isFipsRegion.js","../node_modules/@smithy/config-resolver/dist-es/regionConfig/getRealRegion.js","../node_modules/@smithy/middleware-content-length/dist-es/index.js","../node_modules/@smithy/util-retry/dist-es/config.js","../node_modules/@smithy/service-error-classification/dist-es/constants.js","../node_modules/@smithy/service-error-classification/dist-es/index.js","../node_modules/@smithy/util-retry/dist-es/DefaultRateLimiter.js","../node_modules/@smithy/util-retry/dist-es/constants.js","../node_modules/@smithy/util-retry/dist-es/defaultRetryToken.js","../node_modules/@smithy/util-retry/dist-es/StandardRetryStrategy.js","../node_modules/@smithy/util-retry/dist-es/defaultRetryBackoffStrategy.js","../node_modules/@smithy/util-retry/dist-es/AdaptiveRetryStrategy.js","../node_modules/@smithy/middleware-retry/node_modules/uuid/dist/esm-browser/rng.js","../node_modules/@smithy/middleware-retry/node_modules/uuid/dist/esm-browser/regex.js","../node_modules/@smithy/middleware-retry/node_modules/uuid/dist/esm-browser/stringify.js","../node_modules/@smithy/middleware-retry/node_modules/uuid/dist/esm-browser/validate.js","../node_modules/@smithy/middleware-retry/node_modules/uuid/dist/esm-browser/v4.js","../node_modules/@smithy/middleware-retry/dist-es/util.js","../node_modules/@smithy/middleware-retry/dist-es/retryMiddleware.js","../node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-user-agent-browser/dist-es/index.js","../node_modules/@smithy/eventstream-serde-universal/dist-es/getUnmarshalledStream.js","../node_modules/@smithy/eventstream-serde-universal/dist-es/EventStreamMarshaller.js","../node_modules/@smithy/eventstream-serde-universal/dist-es/getChunkedStream.js","../node_modules/@smithy/eventstream-serde-browser/dist-es/EventStreamMarshaller.js","../node_modules/@smithy/eventstream-serde-browser/dist-es/utils.js","../node_modules/@smithy/eventstream-serde-browser/dist-es/provider.js","../node_modules/@smithy/hash-blob-browser/dist-es/index.js","../node_modules/@smithy/chunked-blob-reader/dist-es/index.js","../node_modules/@smithy/md5-js/dist-es/constants.js","../node_modules/@smithy/md5-js/dist-es/index.js","../node_modules/@smithy/util-body-length-browser/dist-es/calculateBodyLength.js","../node_modules/@aws-sdk/signature-v4-multi-region/dist-es/signature-v4-crt-container.js","../node_modules/@aws-sdk/signature-v4-multi-region/dist-es/SignatureV4MultiRegion.js","../node_modules/@aws-sdk/client-s3/dist-es/endpoint/ruleset.js","../node_modules/@aws-sdk/client-s3/dist-es/endpoint/endpointResolver.js","../node_modules/@aws-sdk/util-endpoints/dist-es/resolveEndpoint.js","../node_modules/@smithy/util-defaults-mode-browser/dist-es/constants.js","../node_modules/@smithy/util-defaults-mode-browser/dist-es/resolveDefaultsModeConfig.js","../node_modules/@aws-sdk/client-s3/dist-es/runtimeConfig.browser.js","../node_modules/@aws-sdk/client-s3/dist-es/runtimeConfig.shared.js","../node_modules/@smithy/invalid-dependency/dist-es/invalidProvider.js","../node_modules/@smithy/config-resolver/dist-es/endpointsConfig/NodeUseDualstackEndpointConfigOptions.js","../node_modules/@smithy/config-resolver/dist-es/endpointsConfig/NodeUseFipsEndpointConfigOptions.js","../node_modules/@aws-sdk/region-config-resolver/dist-es/extensions/index.js","../node_modules/@aws-sdk/client-s3/dist-es/S3Client.js","../node_modules/@aws-sdk/client-s3/dist-es/endpoint/EndpointParameters.js","../node_modules/@smithy/config-resolver/dist-es/regionConfig/resolveRegionConfig.js","../node_modules/@smithy/middleware-retry/dist-es/configurations.js","../node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/middleware-user-agent/dist-es/configurations.js","../node_modules/@aws-sdk/client-s3/dist-es/runtimeExtensions.js","../node_modules/@smithy/eventstream-serde-config-resolver/dist-es/EventStreamSerdeConfig.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/AbortMultipartUploadCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/CopyObjectCommand.js","../node_modules/@aws-sdk/middleware-location-constraint/dist-es/index.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/CreateBucketCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketAnalyticsConfigurationCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketCorsCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketEncryptionCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketIntelligentTieringConfigurationCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketInventoryConfigurationCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketLifecycleCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketMetricsConfigurationCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketOwnershipControlsCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketPolicyCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketReplicationCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketTaggingCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteBucketWebsiteCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteObjectCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteObjectsCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/DeleteObjectTaggingCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/DeletePublicAccessBlockCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketAccelerateConfigurationCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketAclCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketAnalyticsConfigurationCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketCorsCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketEncryptionCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketIntelligentTieringConfigurationCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketInventoryConfigurationCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketLifecycleConfigurationCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketLocationCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketLoggingCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketMetricsConfigurationCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketNotificationConfigurationCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketOwnershipControlsCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketPolicyCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketPolicyStatusCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketReplicationCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketRequestPaymentCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketTaggingCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketVersioningCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/GetBucketWebsiteCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectAclCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectAttributesCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectLegalHoldCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectLockConfigurationCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectRetentionCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectTaggingCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/GetObjectTorrentCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/GetPublicAccessBlockCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/HeadBucketCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/HeadObjectCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketAnalyticsConfigurationsCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketIntelligentTieringConfigurationsCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketInventoryConfigurationsCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketMetricsConfigurationsCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/ListBucketsCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/ListMultipartUploadsCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/ListObjectsCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/ListObjectsV2Command.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/ListObjectVersionsCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/ListPartsCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketAccelerateConfigurationCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketAclCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketAnalyticsConfigurationCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketCorsCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketEncryptionCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketIntelligentTieringConfigurationCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketInventoryConfigurationCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketLifecycleConfigurationCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketLoggingCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketMetricsConfigurationCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketNotificationConfigurationCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketOwnershipControlsCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketPolicyCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketReplicationCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketRequestPaymentCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketTaggingCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketVersioningCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/PutBucketWebsiteCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectAclCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectLegalHoldCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectLockConfigurationCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/PutObjectRetentionCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/PutPublicAccessBlockCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/RestoreObjectCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/SelectObjectContentCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/UploadPartCopyCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/commands/WriteGetObjectResponseCommand.js","../node_modules/@aws-sdk/client-s3/dist-es/S3.js","../node_modules/@aws-sdk/client-s3/dist-es/pagination/ListObjectsV2Paginator.js","../node_modules/@aws-sdk/client-s3/dist-es/pagination/ListPartsPaginator.js","../node_modules/@smithy/util-waiter/dist-es/utils/sleep.js","../node_modules/@smithy/util-waiter/dist-es/waiter.js","../node_modules/@smithy/util-waiter/dist-es/poller.js","../node_modules/@smithy/util-waiter/dist-es/createWaiter.js","../node_modules/@smithy/util-waiter/dist-es/utils/validate.js","../node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForBucketExists.js","../node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForBucketNotExists.js","../node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForObjectExists.js","../node_modules/@aws-sdk/client-s3/dist-es/waiters/waitForObjectNotExists.js","../node_modules/@aws-sdk/client-s3/dist-es/models/S3ServiceException.js","../node_modules/@aws-sdk/client-s3/dist-es/models/models_0.js","../node_modules/@aws-sdk/client-s3/dist-es/models/models_1.js","../node_modules/@aws-sdk/xml-builder/dist-es/XmlText.js","../node_modules/@aws-sdk/xml-builder/dist-es/escape-element.js","../node_modules/@aws-sdk/xml-builder/dist-es/XmlNode.js","../node_modules/@aws-sdk/xml-builder/dist-es/escape-attribute.js","../node_modules/@aws-sdk/client-s3/dist-es/protocols/Aws_restXml.js","../node_modules/@aws-sdk/client-s3/node_modules/@aws-crypto/sha256-browser/src/constants.ts","../node_modules/@aws-sdk/client-s3/node_modules/@aws-crypto/sha256-browser/src/crossPlatformSha256.ts","../node_modules/@aws-sdk/client-s3/node_modules/@aws-crypto/sha256-browser/src/ie11Sha256.ts","../node_modules/@aws-sdk/client-s3/node_modules/@aws-crypto/sha256-browser/src/index.ts","../node_modules/@aws-sdk/client-s3/node_modules/@aws-crypto/sha256-browser/src/isEmptyData.ts","../node_modules/@aws-sdk/client-s3/node_modules/@aws-crypto/sha256-browser/src/webCryptoSha256.ts","../node_modules/@aws-sdk/client-s3/node_modules/@aws-crypto/sha256-browser/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/client-s3/node_modules/@aws-crypto/sha256-js/src/RawSha256.ts","../node_modules/@aws-sdk/client-s3/node_modules/@aws-crypto/sha256-js/src/constants.ts","../node_modules/@aws-sdk/client-s3/node_modules/@aws-crypto/sha256-js/src/index.ts","../node_modules/@aws-sdk/client-s3/node_modules/@aws-crypto/sha256-js/src/jsSha256.ts","../node_modules/@aws-sdk/client-s3/node_modules/@aws-crypto/sha256-js/node_modules/tslib/tslib.es6.js","../node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-utf8-browser/dist-es/index.js","../node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-utf8-browser/dist-es/whatwgEncodingApi.js","../node_modules/@aws-sdk/client-s3/node_modules/@aws-sdk/util-utf8-browser/dist-es/pureJs.js","../node_modules/@smithy/abort-controller/dist-es/AbortSignal.js","../node_modules/@smithy/abort-controller/dist-es/AbortController.js","../node_modules/@aws-sdk/lib-storage/dist-es/runtimeConfig.shared.js","../node_modules/@aws-sdk/lib-storage/dist-es/runtimeConfig.browser.js","../node_modules/@aws-sdk/lib-storage/dist-es/bytelength.js","../node_modules/@aws-sdk/lib-storage/dist-es/chunks/getChunkBuffer.js","../node_modules/@aws-sdk/lib-storage/dist-es/chunks/getChunkStream.js","../node_modules/@aws-sdk/lib-storage/dist-es/chunks/getDataReadable.js","../node_modules/@aws-sdk/lib-storage/dist-es/chunks/getDataReadableStream.js","../node_modules/@aws-sdk/lib-storage/dist-es/chunker.js","../node_modules/@aws-sdk/lib-storage/dist-es/Upload.js","../node_modules/@aws-sdk/lib-storage/node_modules/buffer/index.js","../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/constants.js","../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/types.js","../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getChecksumLocationName.js","../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/isStreaming.js","../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/selectChecksumAlgorithmFunction.js","../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/stringHasher.js","../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/flexibleChecksumsMiddleware.js","../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getChecksumAlgorithmForRequest.js","../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/hasHeader.js","../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getChecksumAlgorithmListForResponse.js","../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/streams/create-read-stream-on-buffer.browser.js","../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getChecksum.js","../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/flexibleChecksumsResponseMiddleware.js","../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/isChecksumWithPartNumber.js","../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/validateChecksumFromResponse.js","../node_modules/@aws-sdk/middleware-flexible-checksums/dist-es/getFlexibleChecksumsPlugin.js","../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/check-content-length-header.js","../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/region-redirect-endpoint-middleware.js","../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/region-redirect-middleware.js","../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/s3Configuration.js","../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/throw-200-exceptions.js","../node_modules/@aws-sdk/middleware-sdk-s3/dist-es/validate-bucket-name.js","../node_modules/@aws-sdk/util-arn-parser/dist-es/index.js","../node_modules/@aws-sdk/middleware-ssec/dist-es/index.js","../node_modules/@aws-sdk/util-hex-encoding/dist-es/index.js","../node_modules/@aws-sdk/util-locate-window/dist-es/index.js","../node_modules/@emotion/memoize/dist/emotion-memoize.esm.js","../node_modules/@emotion/react/_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js","../node_modules/@emotion/react/dist/emotion-element-6a883da9.browser.esm.js","../node_modules/@emotion/react/dist/emotion-react.browser.esm.js","../node_modules/stylis/src/Utility.js","../node_modules/stylis/src/Tokenizer.js","../node_modules/stylis/src/Enum.js","../node_modules/stylis/src/Serializer.js","../node_modules/stylis/src/Parser.js","../node_modules/@emotion/react/node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/stylis/src/Middleware.js","../node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../node_modules/@emotion/serialize/dist/emotion-serialize.browser.esm.js","../node_modules/@emotion/hash/dist/emotion-hash.esm.js","../node_modules/@emotion/sheet/dist/emotion-sheet.browser.esm.js","../node_modules/@emotion/is-prop-valid/dist/emotion-is-prop-valid.esm.js","../node_modules/@emotion/styled/base/dist/emotion-styled-base.browser.esm.js","../node_modules/@emotion/styled/dist/emotion-styled.browser.esm.js","../node_modules/@emotion/use-insertion-effect-with-fallbacks/dist/emotion-use-insertion-effect-with-fallbacks.browser.esm.js","../node_modules/@emotion/utils/dist/emotion-utils.browser.esm.js","../node_modules/@mui/base/ClickAwayListener/ClickAwayListener.js","../node_modules/@mui/base/FocusTrap/FocusTrap.js","../node_modules/@mui/base/Portal/Portal.js","../node_modules/@mui/base/utils/appendOwnerState.js","../node_modules/@mui/base/utils/isHostComponent.js","../node_modules/@mui/base/utils/resolveComponentProps.js","../node_modules/@mui/base/utils/omitEventHandlers.js","../node_modules/@mui/base/utils/mergeSlotProps.js","../node_modules/@mui/base/utils/extractEventHandlers.js","../node_modules/@mui/base/utils/useSlotProps.js","../node_modules/@mui/icons-material/Add.js","../node_modules/@mui/icons-material/Close.js","../node_modules/@mui/icons-material/Email.js","../node_modules/@mui/icons-material/LocationOn.js","../node_modules/@mui/icons-material/Phone.js","../node_modules/@mui/icons-material/Send.js","../node_modules/@mui/icons-material/esm/Add.js","../node_modules/@mui/icons-material/esm/ArrowForward.js","../node_modules/@mui/icons-material/esm/FilterList.js","../node_modules/@mui/icons-material/esm/Loop.js","../node_modules/@mui/icons-material/utils/createSvgIcon.js","../node_modules/@mui/material/Alert/alertClasses.js","../node_modules/@mui/material/internal/svg-icons/SuccessOutlined.js","../node_modules/@mui/material/internal/svg-icons/ReportProblemOutlined.js","../node_modules/@mui/material/internal/svg-icons/ErrorOutline.js","../node_modules/@mui/material/internal/svg-icons/InfoOutlined.js","../node_modules/@mui/material/Alert/Alert.js","../node_modules/@mui/material/AvatarGroup/avatarGroupClasses.js","../node_modules/@mui/material/AvatarGroup/AvatarGroup.js","../node_modules/@mui/material/internal/svg-icons/Person.js","../node_modules/@mui/material/Avatar/Avatar.js","../node_modules/@mui/material/Avatar/avatarClasses.js","../node_modules/@mui/material/Backdrop/backdropClasses.js","../node_modules/@mui/material/Backdrop/Backdrop.js","../node_modules/@mui/base/BadgeUnstyled/badgeUnstyledClasses.js","../node_modules/@mui/base/BadgeUnstyled/BadgeUnstyled.js","../node_modules/@mui/base/BadgeUnstyled/useBadge.js","../node_modules/@mui/material/utils/shouldSpreadAdditionalProps.js","../node_modules/@mui/material/Badge/badgeClasses.js","../node_modules/@mui/material/Badge/Badge.js","../node_modules/@mui/material/node_modules/@mui/system/esm/createBox.js","../node_modules/@mui/material/Box/Box.js","../node_modules/@mui/material/internal/svg-icons/MoreHoriz.js","../node_modules/@mui/material/Breadcrumbs/BreadcrumbCollapsed.js","../node_modules/@mui/material/Breadcrumbs/breadcrumbsClasses.js","../node_modules/@mui/material/Breadcrumbs/Breadcrumbs.js","../node_modules/@mui/material/ButtonBase/Ripple.js","../node_modules/@mui/material/ButtonBase/touchRippleClasses.js","../node_modules/@mui/material/ButtonBase/TouchRipple.js","../node_modules/@mui/material/ButtonBase/buttonBaseClasses.js","../node_modules/@mui/material/ButtonBase/ButtonBase.js","../node_modules/@mui/material/Button/buttonClasses.js","../node_modules/@mui/material/ButtonGroup/ButtonGroupContext.js","../node_modules/@mui/material/Button/Button.js","../node_modules/@mui/material/CardContent/cardContentClasses.js","../node_modules/@mui/material/CardContent/CardContent.js","../node_modules/@mui/material/CardHeader/cardHeaderClasses.js","../node_modules/@mui/material/CardHeader/CardHeader.js","../node_modules/@mui/material/Card/cardClasses.js","../node_modules/@mui/material/Card/Card.js","../node_modules/@mui/material/internal/svg-icons/CheckBoxOutlineBlank.js","../node_modules/@mui/material/internal/svg-icons/CheckBox.js","../node_modules/@mui/material/internal/svg-icons/IndeterminateCheckBox.js","../node_modules/@mui/material/Checkbox/checkboxClasses.js","../node_modules/@mui/material/Checkbox/Checkbox.js","../node_modules/@mui/material/internal/svg-icons/Cancel.js","../node_modules/@mui/material/Chip/chipClasses.js","../node_modules/@mui/material/Chip/Chip.js","../node_modules/@mui/material/CircularProgress/circularProgressClasses.js","../node_modules/@mui/material/CircularProgress/CircularProgress.js","../node_modules/@mui/material/DialogActions/dialogActionsClasses.js","../node_modules/@mui/material/DialogActions/DialogActions.js","../node_modules/@mui/material/DialogContent/dialogContentClasses.js","../node_modules/@mui/material/DialogContent/DialogContent.js","../node_modules/@mui/material/DialogTitle/DialogTitle.js","../node_modules/@mui/material/DialogTitle/dialogTitleClasses.js","../node_modules/@mui/material/Dialog/Dialog.js","../node_modules/@mui/material/Dialog/DialogContext.js","../node_modules/@mui/material/Dialog/dialogClasses.js","../node_modules/@mui/material/Divider/Divider.js","../node_modules/@mui/material/Divider/dividerClasses.js","../node_modules/@mui/material/Fab/fabClasses.js","../node_modules/@mui/material/Fab/Fab.js","../node_modules/@mui/material/Fade/Fade.js","../node_modules/@mui/material/FilledInput/FilledInput.js","../node_modules/@mui/material/FilledInput/filledInputClasses.js","../node_modules/@mui/material/FormControlLabel/formControlLabelClasses.js","../node_modules/@mui/material/FormControlLabel/FormControlLabel.js","../node_modules/@mui/material/FormControl/formControlClasses.js","../node_modules/@mui/material/FormControl/FormControl.js","../node_modules/@mui/material/FormControl/FormControlContext.js","../node_modules/@mui/material/FormControl/formControlState.js","../node_modules/@mui/material/FormControl/useFormControl.js","../node_modules/@mui/material/FormHelperText/formHelperTextClasses.js","../node_modules/@mui/material/FormHelperText/FormHelperText.js","../node_modules/@mui/material/FormLabel/FormLabel.js","../node_modules/@mui/material/FormLabel/formLabelClasses.js","../node_modules/@mui/styled-engine/GlobalStyles/GlobalStyles.js","../node_modules/@mui/material/node_modules/@mui/system/esm/GlobalStyles/GlobalStyles.js","../node_modules/@mui/material/GlobalStyles/GlobalStyles.js","../node_modules/@mui/material/Grid/GridContext.js","../node_modules/@mui/material/Grid/gridClasses.js","../node_modules/@mui/material/Grid/Grid.js","../node_modules/@mui/material/Grow/Grow.js","../node_modules/@mui/material/IconButton/iconButtonClasses.js","../node_modules/@mui/material/IconButton/IconButton.js","../node_modules/@mui/base/TextareaAutosize/TextareaAutosize.js","../node_modules/@mui/material/InputBase/InputBase.js","../node_modules/@mui/material/InputBase/inputBaseClasses.js","../node_modules/@mui/material/InputBase/utils.js","../node_modules/@mui/material/InputLabel/inputLabelClasses.js","../node_modules/@mui/material/InputLabel/InputLabel.js","../node_modules/@mui/material/Input/Input.js","../node_modules/@mui/material/Input/inputClasses.js","../node_modules/@mui/material/LinearProgress/linearProgressClasses.js","../node_modules/@mui/material/LinearProgress/LinearProgress.js","../node_modules/@mui/material/Link/linkClasses.js","../node_modules/@mui/material/Link/getTextDecoration.js","../node_modules/@mui/material/Link/Link.js","../node_modules/@mui/material/ListItemButton/listItemButtonClasses.js","../node_modules/@mui/material/ListItemIcon/listItemIconClasses.js","../node_modules/@mui/material/ListItemText/ListItemText.js","../node_modules/@mui/material/ListItemText/listItemTextClasses.js","../node_modules/@mui/material/ListItem/listItemClasses.js","../node_modules/@mui/material/ListItemSecondaryAction/listItemSecondaryActionClasses.js","../node_modules/@mui/material/ListItemSecondaryAction/ListItemSecondaryAction.js","../node_modules/@mui/material/ListItem/ListItem.js","../node_modules/@mui/material/ListSubheader/listSubheaderClasses.js","../node_modules/@mui/material/ListSubheader/ListSubheader.js","../node_modules/@mui/material/List/listClasses.js","../node_modules/@mui/material/List/List.js","../node_modules/@mui/material/List/ListContext.js","../node_modules/@mui/material/MenuItem/menuItemClasses.js","../node_modules/@mui/material/MenuItem/MenuItem.js","../node_modules/@mui/material/utils/getScrollbarSize.js","../node_modules/@mui/material/MenuList/MenuList.js","../node_modules/@mui/material/Menu/menuClasses.js","../node_modules/@mui/material/Menu/Menu.js","../node_modules/@mui/base/ModalUnstyled/ModalManager.js","../node_modules/@mui/base/ModalUnstyled/modalUnstyledClasses.js","../node_modules/@mui/base/ModalUnstyled/ModalUnstyled.js","../node_modules/@mui/material/Modal/Modal.js","../node_modules/@mui/material/OutlinedInput/NotchedOutline.js","../node_modules/@mui/material/OutlinedInput/OutlinedInput.js","../node_modules/@mui/material/OutlinedInput/outlinedInputClasses.js","../node_modules/@mui/material/styles/getOverlayAlpha.js","../node_modules/@mui/material/Paper/paperClasses.js","../node_modules/@mui/material/Paper/Paper.js","../node_modules/@mui/material/Popover/popoverClasses.js","../node_modules/@mui/material/Popover/Popover.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/utils/userAgent.js","../node_modules/@popperjs/core/lib/dom-utils/isLayoutViewport.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/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/@popperjs/core/lib/modifiers/flip.js","../node_modules/@popperjs/core/lib/utils/computeAutoPlacement.js","../node_modules/@mui/base/PopperUnstyled/popperUnstyledClasses.js","../node_modules/@mui/base/PopperUnstyled/PopperUnstyled.js","../node_modules/@mui/material/Popper/Popper.js","../node_modules/@mui/material/NativeSelect/nativeSelectClasses.js","../node_modules/@mui/material/NativeSelect/NativeSelectInput.js","../node_modules/@mui/material/Select/selectClasses.js","../node_modules/@mui/material/Select/SelectInput.js","../node_modules/@mui/material/Select/Select.js","../node_modules/@mui/material/SnackbarContent/snackbarContentClasses.js","../node_modules/@mui/material/SnackbarContent/SnackbarContent.js","../node_modules/@mui/material/Snackbar/snackbarClasses.js","../node_modules/@mui/material/Snackbar/Snackbar.js","../node_modules/@mui/material/SvgIcon/svgIconClasses.js","../node_modules/@mui/material/SvgIcon/SvgIcon.js","../node_modules/@mui/material/Switch/Switch.js","../node_modules/@mui/material/Switch/switchClasses.js","../node_modules/@mui/material/TableBody/tableBodyClasses.js","../node_modules/@mui/material/TableBody/TableBody.js","../node_modules/@mui/material/TableCell/TableCell.js","../node_modules/@mui/material/TableCell/tableCellClasses.js","../node_modules/@mui/material/TableHead/tableHeadClasses.js","../node_modules/@mui/material/TableHead/TableHead.js","../node_modules/@mui/material/TablePagination/TablePaginationActions.js","../node_modules/@mui/material/TablePagination/TablePagination.js","../node_modules/@mui/material/TablePagination/tablePaginationClasses.js","../node_modules/@mui/material/TableRow/tableRowClasses.js","../node_modules/@mui/material/TableRow/TableRow.js","../node_modules/@mui/material/Table/tableClasses.js","../node_modules/@mui/material/Table/Table.js","../node_modules/@mui/material/Table/TableContext.js","../node_modules/@mui/material/Table/Tablelvl2Context.js","../node_modules/@mui/material/TextField/textFieldClasses.js","../node_modules/@mui/material/TextField/TextField.js","../node_modules/@mui/material/Toolbar/toolbarClasses.js","../node_modules/@mui/material/Toolbar/Toolbar.js","../node_modules/@mui/material/Tooltip/tooltipClasses.js","../node_modules/@mui/material/Tooltip/Tooltip.js","../node_modules/@mui/material/Typography/typographyClasses.js","../node_modules/@mui/material/Typography/Typography.js","../node_modules/@mui/material/colors/blue.js","../node_modules/@mui/material/colors/green.js","../node_modules/@mui/material/colors/grey.js","../node_modules/@mui/material/colors/orange.js","../node_modules/@mui/material/colors/red.js","../node_modules/@mui/material/internal/switchBaseClasses.js","../node_modules/@mui/material/internal/SwitchBase.js","../node_modules/@mui/material/internal/svg-icons/ArrowDropDown.js","../node_modules/@mui/material/internal/svg-icons/Close.js","../node_modules/@mui/material/internal/svg-icons/FirstPage.js","../node_modules/@mui/material/internal/svg-icons/KeyboardArrowLeft.js","../node_modules/@mui/material/internal/svg-icons/KeyboardArrowRight.js","../node_modules/@mui/material/internal/svg-icons/LastPage.js","../node_modules/@mui/material/node_modules/@mui/system/esm/breakpoints.js","../node_modules/@mui/material/node_modules/@mui/system/esm/colorManipulator.js","../node_modules/@mui/material/node_modules/@mui/system/esm/propsToClassKey.js","../node_modules/@mui/material/node_modules/@mui/system/esm/createStyled.js","../node_modules/@mui/material/node_modules/@mui/system/esm/createTheme/createBreakpoints.js","../node_modules/@mui/material/node_modules/@mui/system/esm/createTheme/shape.js","../node_modules/@mui/material/node_modules/@mui/system/esm/createTheme/createTheme.js","../node_modules/@mui/material/node_modules/@mui/system/esm/createTheme/createSpacing.js","../node_modules/@mui/material/node_modules/@mui/system/esm/merge.js","../node_modules/@mui/material/node_modules/@mui/system/esm/spacing.js","../node_modules/@mui/material/node_modules/@mui/system/esm/memoize.js","../node_modules/@mui/material/node_modules/@mui/system/esm/style.js","../node_modules/@mui/material/node_modules/@mui/system/esm/compose.js","../node_modules/@mui/material/node_modules/@mui/system/esm/borders.js","../node_modules/@mui/material/node_modules/@mui/system/esm/cssGrid.js","../node_modules/@mui/material/node_modules/@mui/system/esm/palette.js","../node_modules/@mui/material/node_modules/@mui/system/esm/sizing.js","../node_modules/@mui/material/node_modules/@mui/system/esm/styleFunctionSx/defaultSxConfig.js","../node_modules/@mui/material/node_modules/@mui/system/esm/styleFunctionSx/extendSxProp.js","../node_modules/@mui/material/node_modules/@mui/system/esm/styleFunctionSx/styleFunctionSx.js","../node_modules/@mui/material/node_modules/@mui/system/esm/useTheme.js","../node_modules/@mui/material/node_modules/@mui/system/esm/useThemeProps/getThemeProps.js","../node_modules/@mui/material/node_modules/@mui/system/esm/useThemeProps/useThemeProps.js","../node_modules/@mui/material/node_modules/@mui/system/esm/useThemeWithoutDefault.js","../node_modules/@mui/material/colors/common.js","../node_modules/@mui/material/colors/purple.js","../node_modules/@mui/material/colors/lightBlue.js","../node_modules/@mui/material/styles/createPalette.js","../node_modules/@mui/material/styles/createTypography.js","../node_modules/@mui/material/styles/shadows.js","../node_modules/@mui/material/styles/zIndex.js","../node_modules/@mui/material/styles/createTheme.js","../node_modules/@mui/material/styles/createMixins.js","../node_modules/@mui/material/styles/createTransitions.js","../node_modules/@mui/material/styles/defaultTheme.js","../node_modules/@mui/material/styles/styled.js","../node_modules/@mui/material/styles/useTheme.js","../node_modules/@mui/material/styles/useThemeProps.js","../node_modules/@mui/material/transitions/utils.js","../node_modules/@mui/material/useMediaQuery/useMediaQuery.js","../node_modules/@mui/material/utils/capitalize.js","../node_modules/@mui/material/utils/createChainedFunction.js","../node_modules/@mui/material/utils/createSvgIcon.js","../node_modules/@mui/material/utils/debounce.js","../node_modules/@mui/material/utils/deprecatedPropType.js","../node_modules/@mui/utils/esm/deprecatedPropType.js","../node_modules/@mui/material/utils/requirePropFactory.js","../node_modules/@mui/utils/esm/requirePropFactory.js","../node_modules/@mui/material/utils/setRef.js","../node_modules/@mui/material/utils/unsupportedProp.js","../node_modules/@mui/utils/esm/unsupportedProp.js","../node_modules/@mui/material/utils/index.js","../node_modules/@mui/material/utils/isMuiElement.js","../node_modules/@mui/utils/esm/isMuiElement.js","../node_modules/@mui/material/utils/ownerDocument.js","../node_modules/@mui/material/utils/ownerWindow.js","../node_modules/@mui/material/utils/useControlled.js","../node_modules/@mui/material/utils/useEnhancedEffect.js","../node_modules/@mui/material/utils/useEventCallback.js","../node_modules/@mui/material/utils/useForkRef.js","../node_modules/@mui/material/utils/useId.js","../node_modules/@mui/utils/esm/useIsFocusVisible.js","../node_modules/@mui/material/utils/useIsFocusVisible.js","../node_modules/@mui/private-theming/ThemeProvider/nested.js","../node_modules/@mui/private-theming/useTheme/ThemeContext.js","../node_modules/@mui/private-theming/useTheme/useTheme.js","../node_modules/@mui/styled-engine/index.js","../node_modules/@mui/system/esm/breakpoints.js","../node_modules/@mui/system/esm/compose.js","../node_modules/@mui/system/esm/merge.js","../node_modules/@mui/system/esm/spacing.js","../node_modules/@mui/system/esm/memoize.js","../node_modules/@mui/system/esm/style.js","../node_modules/@mui/utils/esm/ClassNameGenerator/ClassNameGenerator.js","../node_modules/@mui/utils/esm/capitalize/capitalize.js","../node_modules/@mui/utils/esm/composeClasses/composeClasses.js","../node_modules/@mui/utils/esm/createChainedFunction.js","../node_modules/@mui/utils/esm/debounce/debounce.js","../node_modules/@mui/utils/esm/deepmerge.js","../node_modules/@mui/utils/esm/formatMuiErrorMessage.js","../node_modules/@mui/utils/esm/generateUtilityClass/generateUtilityClass.js","../node_modules/@mui/utils/esm/generateUtilityClasses/generateUtilityClasses.js","../node_modules/@mui/utils/esm/getScrollbarSize.js","../node_modules/@mui/utils/esm/ownerDocument/ownerDocument.js","../node_modules/@mui/utils/esm/ownerWindow/ownerWindow.js","../node_modules/@mui/utils/esm/resolveProps.js","../node_modules/@mui/utils/esm/setRef.js","../node_modules/@mui/utils/esm/useControlled/useControlled.js","../node_modules/@mui/utils/esm/useEnhancedEffect/useEnhancedEffect.js","../node_modules/@mui/utils/esm/useEventCallback/useEventCallback.js","../node_modules/@mui/utils/esm/useForkRef/useForkRef.js","../node_modules/@mui/utils/esm/useId/useId.js","../node_modules/@mui/utils/esm/usePreviousProps.js","../node_modules/@mui/x-date-pickers/locales/utils/getPickersLocalization.js","../node_modules/@mui/x-date-pickers/locales/enUS.js","../node_modules/@mui/x-date-pickers/LocalizationProvider/LocalizationProvider.js","../node_modules/immer/src/utils/errors.ts","../node_modules/immer/src/utils/common.ts","../node_modules/immer/src/utils/plugins.ts","../node_modules/immer/src/core/scope.ts","../node_modules/immer/src/core/finalize.ts","../node_modules/immer/src/core/proxy.ts","../node_modules/immer/src/core/immerClass.ts","../node_modules/immer/src/core/current.ts","../node_modules/immer/src/plugins/es5.ts","../node_modules/immer/src/immer.ts","../node_modules/immer/src/utils/env.ts","../node_modules/redux-thunk/es/index.js","../node_modules/@reduxjs/toolkit/src/devtoolsExtension.ts","../node_modules/@reduxjs/toolkit/src/isPlainObject.ts","../node_modules/@reduxjs/toolkit/src/utils.ts","../node_modules/@reduxjs/toolkit/src/getDefaultMiddleware.ts","../node_modules/@reduxjs/toolkit/src/configureStore.ts","../node_modules/@reduxjs/toolkit/src/createAction.ts","../node_modules/@reduxjs/toolkit/src/mapBuilders.ts","../node_modules/@reduxjs/toolkit/src/createSlice.ts","../node_modules/@reduxjs/toolkit/src/createReducer.ts","../node_modules/@reduxjs/toolkit/src/nanoid.ts","../node_modules/@reduxjs/toolkit/src/createAsyncThunk.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/index.ts","../node_modules/@reduxjs/toolkit/src/listenerMiddleware/task.ts","../node_modules/@reduxjs/toolkit/src/autoBatchEnhancer.ts","../node_modules/@reduxjs/toolkit/src/index.ts","../node_modules/@remix-run/router/history.ts","../node_modules/@remix-run/router/utils.ts","../node_modules/@remix-run/router/router.ts","../node_modules/@smithy/fetch-http-handler/dist-es/request-timeout.js","../node_modules/@smithy/fetch-http-handler/dist-es/fetch-http-handler.js","../node_modules/@smithy/querystring-builder/dist-es/index.js","../node_modules/@smithy/fetch-http-handler/dist-es/stream-collector.js","../node_modules/@smithy/is-array-buffer/dist-es/index.js","../node_modules/@smithy/middleware-endpoint/dist-es/service-customizations/s3.js","../node_modules/@smithy/middleware-endpoint/dist-es/adaptors/createConfigValueProvider.js","../node_modules/@smithy/middleware-endpoint/dist-es/adaptors/toEndpointV1.js","../node_modules/@smithy/middleware-endpoint/dist-es/adaptors/getEndpointFromInstructions.js","../node_modules/@smithy/middleware-endpoint/dist-es/adaptors/getEndpointFromConfig.browser.js","../node_modules/@smithy/middleware-endpoint/dist-es/endpointMiddleware.js","../node_modules/@smithy/middleware-endpoint/dist-es/getEndpointPlugin.js","../node_modules/@smithy/middleware-endpoint/dist-es/resolveEndpointConfig.js","../node_modules/@smithy/middleware-serde/dist-es/deserializerMiddleware.js","../node_modules/@smithy/middleware-serde/dist-es/serializerMiddleware.js","../node_modules/@smithy/middleware-serde/dist-es/serdePlugin.js","../node_modules/@smithy/protocol-http/dist-es/extensions/httpExtensionConfiguration.js","../node_modules/@smithy/protocol-http/dist-es/httpRequest.js","../node_modules/@smithy/protocol-http/dist-es/httpResponse.js","../node_modules/@smithy/protocol-http/dist-es/isValidHostname.js","../node_modules/@smithy/smithy-client/dist-es/NoOpLogger.js","../node_modules/@smithy/middleware-stack/dist-es/MiddlewareStack.js","../node_modules/@smithy/smithy-client/dist-es/client.js","../node_modules/@smithy/smithy-client/dist-es/collect-stream-body.js","../node_modules/@smithy/smithy-client/dist-es/command.js","../node_modules/@smithy/smithy-client/dist-es/constants.js","../node_modules/@smithy/smithy-client/dist-es/create-aggregated-client.js","../node_modules/@smithy/smithy-client/dist-es/parse-utils.js","../node_modules/@smithy/smithy-client/dist-es/date-utils.js","../node_modules/@smithy/smithy-client/dist-es/exceptions.js","../node_modules/@smithy/smithy-client/dist-es/default-error-handler.js","../node_modules/@smithy/smithy-client/dist-es/defaults-mode.js","../node_modules/@smithy/smithy-client/dist-es/extensions/checksum.js","../node_modules/@smithy/smithy-client/dist-es/extensions/retry.js","../node_modules/@smithy/smithy-client/dist-es/extensions/defaultExtensionConfiguration.js","../node_modules/@smithy/smithy-client/dist-es/extended-encode-uri-component.js","../node_modules/@smithy/smithy-client/dist-es/get-array-if-single-item.js","../node_modules/@smithy/smithy-client/dist-es/get-value-from-text-node.js","../node_modules/@smithy/smithy-client/dist-es/lazy-json.js","../node_modules/@smithy/smithy-client/dist-es/object-mapping.js","../node_modules/@smithy/smithy-client/dist-es/resolve-path.js","../node_modules/@smithy/types/dist-es/auth.js","../node_modules/@smithy/types/dist-es/endpoint.js","../node_modules/@smithy/types/dist-es/extensions/checksum.js","../node_modules/@smithy/types/dist-es/http.js","../node_modules/@smithy/types/dist-es/middleware.js","../node_modules/@smithy/types/dist-es/profile.js","../node_modules/@smithy/types/dist-es/transfer.js","../node_modules/@smithy/url-parser/dist-es/index.js","../node_modules/@smithy/querystring-parser/dist-es/index.js","../node_modules/@smithy/util-base64/dist-es/constants.browser.js","../node_modules/@smithy/util-base64/dist-es/fromBase64.browser.js","../node_modules/@smithy/util-base64/dist-es/toBase64.browser.js","../node_modules/@smithy/util-hex-encoding/dist-es/index.js","../node_modules/@smithy/util-middleware/dist-es/getSmithyContext.js","../node_modules/@smithy/util-middleware/dist-es/normalizeProvider.js","../node_modules/@smithy/util-stream/dist-es/blob/Uint8ArrayBlobAdapter.js","../node_modules/@smithy/util-stream/dist-es/blob/transforms.js","../node_modules/@smithy/util-stream/dist-es/getAwsChunkedEncodingStream.browser.js","../node_modules/@smithy/util-stream/dist-es/sdk-stream-mixin.browser.js","../node_modules/@smithy/util-uri-escape/dist-es/escape-uri.js","../node_modules/@smithy/util-utf8/dist-es/fromUtf8.browser.js","../node_modules/@smithy/util-utf8/dist-es/toUint8Array.js","../node_modules/@smithy/util-utf8/dist-es/toUtf8.browser.js","../node_modules/@wry/equality/src/equality.ts","../node_modules/ag-grid-community/dist/ag-grid-community.auto.esm.js","../node_modules/ag-grid-enterprise/dist/ag-grid-enterprise.auto.esm.js","../node_modules/ag-grid-react/lib/agGridReact.js","../node_modules/ag-grid-react/lib/legacy/agGridReactLegacy.js","../node_modules/ag-grid-react/lib/legacy/legacyReactComponent.js","../node_modules/ag-grid-react/lib/main.js","../node_modules/ag-grid-react/lib/reactUi/agGridReactUi.js","../node_modules/ag-grid-react/lib/reactUi/beansContext.js","../node_modules/ag-grid-react/lib/reactUi/cellRenderer/detailCellRenderer.js","../node_modules/ag-grid-react/lib/reactUi/cellRenderer/groupCellRenderer.js","../node_modules/ag-grid-react/lib/reactUi/cells/cellComp.js","../node_modules/ag-grid-react/lib/reactUi/cells/popupEditorComp.js","../node_modules/ag-grid-react/lib/reactUi/cells/showJsRenderer.js","../node_modules/ag-grid-react/lib/reactUi/gridBodyComp.js","../node_modules/ag-grid-react/lib/reactUi/gridComp.js","../node_modules/ag-grid-react/lib/reactUi/header/gridHeaderComp.js","../node_modules/ag-grid-react/lib/reactUi/header/headerCellComp.js","../node_modules/ag-grid-react/lib/reactUi/header/headerFilterCellComp.js","../node_modules/ag-grid-react/lib/reactUi/header/headerGroupCellComp.js","../node_modules/ag-grid-react/lib/reactUi/header/headerRowComp.js","../node_modules/ag-grid-react/lib/reactUi/header/headerRowContainerComp.js","../node_modules/ag-grid-react/lib/reactUi/jsComp.js","../node_modules/ag-grid-react/lib/reactUi/reactComment.js","../node_modules/ag-grid-react/lib/reactUi/rows/rowComp.js","../node_modules/ag-grid-react/lib/reactUi/rows/rowContainerComp.js","../node_modules/ag-grid-react/lib/reactUi/tabGuardComp.js","../node_modules/ag-grid-react/lib/reactUi/useEffectOnce.js","../node_modules/ag-grid-react/lib/reactUi/utils.js","../node_modules/ag-grid-react/lib/shared/interfaces.js","../node_modules/ag-grid-react/lib/shared/keyGenerator.js","../node_modules/ag-grid-react/lib/shared/newReactComponent.js","../node_modules/ag-grid-react/lib/shared/portalManager.js","../node_modules/ag-grid-react/lib/shared/reactComponent.js","../node_modules/ag-grid-react/lib/shared/reactFrameworkOverrides.js","../../src/fixPolyfills.ts","../node_modules/apollo-cache/src/utils.ts","../node_modules/apollo-cache/src/types/Cache.ts","../node_modules/apollo-cache/src/cache.ts","../../src/fragmentMatcher.ts","../../src/optimism.ts","../../src/depTrackingCache.ts","../../src/queryKeyMaker.ts","../../src/readFromStore.ts","../../src/objectCache.ts","../../src/writeToStore.ts","../../src/recordingCache.ts","../../src/inMemoryCache.ts","../node_modules/apollo-cache-inmemory/node_modules/optimism/lib/cache.js","../node_modules/apollo-cache-inmemory/node_modules/optimism/lib/entry.js","../node_modules/apollo-cache-inmemory/node_modules/optimism/lib/index.js","../node_modules/apollo-cache-inmemory/node_modules/optimism/lib/local.js","../node_modules/apollo-link-context/src/index.ts","../node_modules/apollo-link-http-common/node_modules/tslib/tslib.es6.js","../node_modules/apollo-link-http-common/src/index.ts","../node_modules/apollo-link-http/src/httpLink.ts","../node_modules/apollo-link-retry/src/retryLink.ts","../node_modules/apollo-link-retry/src/delayFunction.ts","../node_modules/apollo-link-retry/src/retryFunction.ts","../node_modules/apollo-link/node_modules/tslib/tslib.es6.js","../node_modules/apollo-link/src/linkUtils.ts","../node_modules/apollo-link/src/link.ts","../node_modules/apollo-link/node_modules/zen-observable-ts/src/zenObservable.ts","../node_modules/apollo-utilities/node_modules/tslib/tslib.es6.js","../node_modules/apollo-utilities/src/storeUtils.ts","../node_modules/apollo-utilities/src/directives.ts","../node_modules/apollo-utilities/src/fragments.ts","../node_modules/apollo-utilities/src/util/assign.ts","../node_modules/apollo-utilities/src/getFromAST.ts","../node_modules/apollo-utilities/src/util/filterInPlace.ts","../node_modules/apollo-utilities/src/transform.ts","../node_modules/apollo-utilities/src/util/canUse.ts","../node_modules/apollo-utilities/src/util/cloneDeep.ts","../node_modules/apollo-utilities/src/util/environment.ts","../node_modules/apollo-utilities/src/util/errorHandling.ts","../node_modules/apollo-utilities/src/util/maybeDeepFreeze.ts","../node_modules/apollo-utilities/src/util/mergeDeep.ts","../node_modules/apollo-utilities/src/util/warnOnce.ts","../node_modules/apollo-utilities/src/util/stripSymbols.ts","../node_modules/asn1.js/lib/asn1.js","../node_modules/asn1.js/lib/asn1/api.js","../node_modules/asn1.js/lib/asn1/base/buffer.js","../node_modules/asn1.js/lib/asn1/base/index.js","../node_modules/asn1.js/lib/asn1/base/node.js","../node_modules/asn1.js/lib/asn1/base/reporter.js","../node_modules/asn1.js/lib/asn1/constants/der.js","../node_modules/asn1.js/lib/asn1/constants/index.js","../node_modules/asn1.js/lib/asn1/decoders/der.js","../node_modules/asn1.js/lib/asn1/decoders/index.js","../node_modules/asn1.js/lib/asn1/decoders/pem.js","../node_modules/asn1.js/lib/asn1/encoders/der.js","../node_modules/asn1.js/lib/asn1/encoders/index.js","../node_modules/asn1.js/lib/asn1/encoders/pem.js","../node_modules/attr-accept/dist/es/index.js","../node_modules/aws-appsync-auth-link/lib/auth-link.js","../node_modules/aws-appsync-auth-link/lib/index.js","../node_modules/aws-appsync-auth-link/lib/platform.js","../node_modules/aws-appsync-auth-link/lib/signer/index.js","../node_modules/aws-appsync-auth-link/lib/signer/signer.js","../node_modules/aws-appsync-auth-link/node_modules/@aws-crypto/sha256-js/src/RawSha256.ts","../node_modules/aws-appsync-auth-link/node_modules/@aws-crypto/sha256-js/src/constants.ts","../node_modules/aws-appsync-auth-link/node_modules/@aws-crypto/sha256-js/src/index.ts","../node_modules/aws-appsync-auth-link/node_modules/@aws-crypto/sha256-js/src/jsSha256.ts","../node_modules/aws-appsync-auth-link/node_modules/@aws-crypto/util/src/convertToBuffer.ts","../node_modules/aws-appsync-auth-link/node_modules/@aws-crypto/util/src/index.ts","../node_modules/aws-appsync-auth-link/node_modules/@aws-crypto/util/src/isEmptyData.ts","../node_modules/aws-appsync-auth-link/node_modules/@aws-crypto/util/src/numToUint8.ts","../node_modules/aws-appsync-auth-link/node_modules/@aws-crypto/util/src/uint32ArrayFrom.ts","../node_modules/aws-appsync-auth-link/node_modules/@aws-sdk/util-utf8-browser/dist-es/index.js","../node_modules/aws-appsync-auth-link/node_modules/@aws-sdk/util-utf8-browser/dist-es/whatwgEncodingApi.js","../node_modules/aws-appsync-auth-link/node_modules/@aws-sdk/util-utf8-browser/dist-es/pureJs.js","../node_modules/aws-appsync-auth-link/node_modules/tslib/tslib.es6.js","../node_modules/aws-appsync-react/lib/index.js","../node_modules/aws-appsync-react/lib/offline-helpers.js","../node_modules/aws-appsync-react/lib/rehydrated.js","../node_modules/aws-appsync-subscription-link/lib/index.js","../node_modules/aws-appsync-subscription-link/lib/non-terminating-link.js","../node_modules/aws-appsync-subscription-link/lib/realtime-subscription-handshake-link.js","../node_modules/aws-appsync-subscription-link/lib/subscription-handshake-link.js","../node_modules/aws-appsync-subscription-link/lib/types/index.js","../node_modules/aws-appsync-subscription-link/lib/utils/index.js","../node_modules/aws-appsync-subscription-link/lib/utils/logger.js","../node_modules/aws-appsync-subscription-link/lib/utils/retry.js","../node_modules/aws-appsync-subscription-link/lib/vendor/paho-mqtt.js","../node_modules/aws-appsync-subscription-link/node_modules/debug/src/browser.js","../node_modules/aws-appsync-subscription-link/node_modules/debug/src/debug.js","../node_modules/aws-appsync-subscription-link/node_modules/ms/index.js","../node_modules/aws-appsync/lib/cache/index.js","../node_modules/aws-appsync/lib/cache/offline-cache.js","../node_modules/aws-appsync/lib/client.js","../node_modules/aws-appsync/lib/deltaSync.js","../node_modules/aws-appsync/lib/helpers/offline.js","../node_modules/aws-appsync/lib/index.js","../node_modules/aws-appsync/lib/link/complex-object-link-uploader.js","../node_modules/aws-appsync/lib/link/complex-object-link.js","../node_modules/aws-appsync/lib/link/conflict-resolution-link.js","../node_modules/aws-appsync/lib/link/index.js","../node_modules/aws-appsync/lib/link/offline-link.js","../node_modules/aws-appsync/lib/link/retry-link.js","../node_modules/aws-appsync/lib/store.js","../node_modules/aws-appsync/lib/utils/index.js","../node_modules/aws-appsync/lib/utils/logger.js","../node_modules/aws-appsync/node_modules/@aws-crypto/sha256-js/src/RawSha256.ts","../node_modules/aws-appsync/node_modules/@aws-crypto/sha256-js/src/constants.ts","../node_modules/aws-appsync/node_modules/@aws-crypto/sha256-js/src/index.ts","../node_modules/aws-appsync/node_modules/@aws-crypto/sha256-js/src/jsSha256.ts","../node_modules/aws-appsync/node_modules/@aws-crypto/util/src/convertToBuffer.ts","../node_modules/aws-appsync/node_modules/@aws-crypto/util/src/index.ts","../node_modules/aws-appsync/node_modules/@aws-crypto/util/src/isEmptyData.ts","../node_modules/aws-appsync/node_modules/@aws-crypto/util/src/numToUint8.ts","../node_modules/aws-appsync/node_modules/@aws-crypto/util/src/uint32ArrayFrom.ts","../node_modules/aws-appsync/node_modules/@aws-sdk/util-utf8-browser/dist-es/index.js","../node_modules/aws-appsync/node_modules/@aws-sdk/util-utf8-browser/dist-es/whatwgEncodingApi.js","../node_modules/aws-appsync/node_modules/@aws-sdk/util-utf8-browser/dist-es/pureJs.js","../node_modules/aws-appsync/node_modules/@redux-offline/redux-offline/lib/actions.js","../node_modules/aws-appsync/node_modules/@redux-offline/redux-offline/lib/config.js","../node_modules/aws-appsync/node_modules/@redux-offline/redux-offline/lib/constants.js","../node_modules/aws-appsync/node_modules/@redux-offline/redux-offline/lib/defaults/defaultCommit.js","../node_modules/aws-appsync/node_modules/@redux-offline/redux-offline/lib/defaults/defaultRollback.js","../node_modules/aws-appsync/node_modules/@redux-offline/redux-offline/lib/defaults/detectNetwork.js","../node_modules/aws-appsync/node_modules/@redux-offline/redux-offline/lib/defaults/discard.js","../node_modules/aws-appsync/node_modules/@redux-offline/redux-offline/lib/defaults/effect.js","../node_modules/aws-appsync/node_modules/@redux-offline/redux-offline/lib/defaults/index.js","../node_modules/aws-appsync/node_modules/@redux-offline/redux-offline/lib/defaults/offlineStateLens.js","../node_modules/aws-appsync/node_modules/@redux-offline/redux-offline/lib/defaults/persist.js","../node_modules/aws-appsync/node_modules/@redux-offline/redux-offline/lib/defaults/persistAutoRehydrate.js","../node_modules/aws-appsync/node_modules/@redux-offline/redux-offline/lib/defaults/queue.js","../node_modules/aws-appsync/node_modules/@redux-offline/redux-offline/lib/defaults/retry.js","../node_modules/aws-appsync/node_modules/@redux-offline/redux-offline/lib/index.js","../node_modules/aws-appsync/node_modules/@redux-offline/redux-offline/lib/middleware.js","../node_modules/aws-appsync/node_modules/@redux-offline/redux-offline/lib/offlineActionTracker.js","../node_modules/aws-appsync/node_modules/@redux-offline/redux-offline/lib/send.js","../node_modules/aws-appsync/node_modules/@redux-offline/redux-offline/lib/updater.js","../../../src/core/networkStatus.ts","../node_modules/aws-appsync/node_modules/apollo-client/node_modules/apollo-utilities/src/util/cloneDeep.ts","../node_modules/aws-appsync/node_modules/apollo-client/node_modules/apollo-utilities/src/util/isEqual.ts","../node_modules/aws-appsync/node_modules/apollo-client/node_modules/apollo-utilities/src/util/errorHandling.ts","../../../src/util/Observable.ts","../../../src/errors/ApolloError.ts","../../../src/core/types.ts","../../../src/core/ObservableQuery.ts","../node_modules/aws-appsync/node_modules/apollo-client/node_modules/apollo-link/node_modules/apollo-utilities/src/util/canUse.ts","../node_modules/aws-appsync/node_modules/apollo-client/node_modules/apollo-link/node_modules/apollo-utilities/src/util/cloneDeep.ts","../node_modules/aws-appsync/node_modules/apollo-client/node_modules/apollo-link/node_modules/apollo-utilities/src/util/mergeDeep.ts","../node_modules/aws-appsync/node_modules/apollo-client/node_modules/apollo-link/node_modules/apollo-utilities/src/util/warnOnce.ts","../node_modules/aws-appsync/node_modules/apollo-client/node_modules/apollo-link/src/linkUtils.ts","../node_modules/aws-appsync/node_modules/apollo-client/node_modules/apollo-link/src/link.ts","../node_modules/aws-appsync/node_modules/apollo-client/node_modules/apollo-link/node_modules/apollo-utilities/src/getFromAST.ts","../node_modules/aws-appsync/node_modules/apollo-client/node_modules/apollo-utilities/src/util/assign.ts","../node_modules/aws-appsync/node_modules/apollo-client/node_modules/apollo-utilities/src/storeUtils.ts","../node_modules/aws-appsync/node_modules/apollo-client/node_modules/apollo-utilities/src/getFromAST.ts","../node_modules/aws-appsync/node_modules/apollo-client/node_modules/apollo-utilities/src/transform.ts","../node_modules/aws-appsync/node_modules/apollo-client/node_modules/apollo-utilities/src/util/environment.ts","../node_modules/apollo-link-dedup/node_modules/tslib/tslib.es6.js","../node_modules/apollo-link-dedup/src/dedupLink.ts","../node_modules/aws-appsync/node_modules/apollo-client/node_modules/apollo-utilities/src/directives.ts","../../../src/scheduler/scheduler.ts","../../../src/data/mutations.ts","../../../src/data/queries.ts","../../../src/core/QueryManager.ts","../../../src/data/store.ts","../../src/ApolloClient.ts","../../src/index.ts","../node_modules/aws-appsync/node_modules/apollo-client/version.js","../node_modules/aws-appsync/node_modules/apollo-link/src/linkUtils.ts","../node_modules/aws-appsync/node_modules/apollo-link/src/link.ts","../node_modules/aws-appsync/node_modules/apollo-utilities/src/storeUtils.ts","../node_modules/aws-appsync/node_modules/apollo-utilities/src/directives.ts","../node_modules/aws-appsync/node_modules/apollo-utilities/src/fragments.ts","../node_modules/aws-appsync/node_modules/apollo-utilities/src/util/assign.ts","../node_modules/aws-appsync/node_modules/apollo-utilities/src/getFromAST.ts","../node_modules/aws-appsync/node_modules/apollo-utilities/src/util/filterInPlace.ts","../node_modules/aws-appsync/node_modules/apollo-utilities/src/transform.ts","../node_modules/aws-appsync/node_modules/apollo-utilities/src/util/canUse.ts","../node_modules/aws-appsync/node_modules/apollo-utilities/src/util/cloneDeep.ts","../node_modules/aws-appsync/node_modules/apollo-utilities/src/util/environment.ts","../node_modules/aws-appsync/node_modules/apollo-utilities/src/util/errorHandling.ts","../node_modules/aws-appsync/node_modules/apollo-utilities/src/util/maybeDeepFreeze.ts","../node_modules/aws-appsync/node_modules/apollo-utilities/src/util/mergeDeep.ts","../node_modules/aws-appsync/node_modules/apollo-utilities/src/util/warnOnce.ts","../node_modules/aws-appsync/node_modules/apollo-utilities/src/util/stripSymbols.ts","../node_modules/aws-appsync/node_modules/aws-appsync-auth-link/lib/auth-link.js","../node_modules/aws-appsync/node_modules/aws-appsync-auth-link/lib/index.js","../node_modules/aws-appsync/node_modules/aws-appsync-auth-link/lib/platform.js","../node_modules/aws-appsync/node_modules/aws-appsync-auth-link/lib/signer/index.js","../node_modules/aws-appsync/node_modules/aws-appsync-auth-link/lib/signer/signer.js","../node_modules/aws-appsync/node_modules/aws-appsync-subscription-link/lib/index.js","../node_modules/aws-appsync/node_modules/aws-appsync-subscription-link/lib/non-terminating-link.js","../node_modules/aws-appsync/node_modules/aws-appsync-subscription-link/lib/realtime-subscription-handshake-link.js","../node_modules/aws-appsync/node_modules/aws-appsync-subscription-link/lib/subscription-handshake-link.js","../node_modules/aws-appsync/node_modules/aws-appsync-subscription-link/lib/types/index.js","../node_modules/aws-appsync/node_modules/aws-appsync-subscription-link/lib/utils/index.js","../node_modules/aws-appsync/node_modules/aws-appsync-subscription-link/lib/utils/logger.js","../node_modules/aws-appsync/node_modules/aws-appsync-subscription-link/lib/utils/retry.js","../node_modules/aws-appsync/node_modules/aws-appsync-subscription-link/lib/vendor/paho-mqtt.js","../node_modules/aws-appsync/node_modules/debug/src/browser.js","../node_modules/aws-appsync/node_modules/debug/src/debug.js","../node_modules/aws-appsync/node_modules/ms/index.js","../node_modules/aws-appsync/node_modules/redux-persist/es/constants.js","../node_modules/aws-appsync/node_modules/redux-persist/es/utils/isStatePlainEnough.js","../node_modules/aws-appsync/node_modules/redux-persist/es/autoRehydrate.js","../node_modules/aws-appsync/node_modules/redux-persist/es/utils/setImmediate.js","../node_modules/aws-appsync/node_modules/redux-persist/es/defaults/asyncLocalStorage.js","../node_modules/aws-appsync/node_modules/redux-persist/es/purgeStoredState.js","../node_modules/aws-appsync/node_modules/redux-persist/es/createPersistor.js","../node_modules/aws-appsync/node_modules/redux-persist/es/createTransform.js","../node_modules/aws-appsync/node_modules/redux-persist/es/getStoredState.js","../node_modules/aws-appsync/node_modules/redux-persist/es/persistStore.js","../node_modules/aws-appsync/node_modules/redux-persist/es/index.js","../node_modules/aws-appsync/node_modules/redux-persist/lib/constants.js","../node_modules/aws-appsync/node_modules/redux-thunk/es/index.js","../node_modules/aws-appsync/node_modules/redux/es/createStore.js","../node_modules/aws-appsync/node_modules/redux/es/combineReducers.js","../node_modules/aws-appsync/node_modules/redux/es/bindActionCreators.js","../node_modules/aws-appsync/node_modules/redux/es/compose.js","../node_modules/aws-appsync/node_modules/redux/es/applyMiddleware.js","../node_modules/aws-appsync/node_modules/tslib/tslib.es6.js","../node_modules/aws-appsync/node_modules/uuid/index.js","../node_modules/aws-appsync/node_modules/uuid/lib/bytesToUuid.js","../node_modules/aws-appsync/node_modules/uuid/lib/rng-browser.js","../node_modules/aws-appsync/node_modules/uuid/v1.js","../node_modules/aws-appsync/node_modules/uuid/v4.js","../node_modules/aws-appsync/node_modules/zen-observable-ts/src/zenObservable.ts","../node_modules/aws-sdk/clients/acm.js","../node_modules/aws-sdk/clients/amp.js","../node_modules/aws-sdk/clients/apigateway.js","../node_modules/aws-sdk/clients/applicationautoscaling.js","../node_modules/aws-sdk/clients/athena.js","../node_modules/aws-sdk/clients/autoscaling.js","../node_modules/aws-sdk/clients/browser_default.js","../node_modules/aws-sdk/clients/cloudformation.js","../node_modules/aws-sdk/clients/cloudfront.js","../node_modules/aws-sdk/clients/cloudhsm.js","../node_modules/aws-sdk/clients/cloudhsmv2.js","../node_modules/aws-sdk/clients/cloudtrail.js","../node_modules/aws-sdk/clients/cloudwatch.js","../node_modules/aws-sdk/clients/cloudwatchevents.js","../node_modules/aws-sdk/clients/cloudwatchlogs.js","../node_modules/aws-sdk/clients/codebuild.js","../node_modules/aws-sdk/clients/codecommit.js","../node_modules/aws-sdk/clients/codedeploy.js","../node_modules/aws-sdk/clients/codepipeline.js","../node_modules/aws-sdk/clients/cognitoidentity.js","../node_modules/aws-sdk/clients/cognitoidentityserviceprovider.js","../node_modules/aws-sdk/clients/cognitosync.js","../node_modules/aws-sdk/clients/comprehend.js","../node_modules/aws-sdk/clients/comprehendmedical.js","../node_modules/aws-sdk/clients/configservice.js","../node_modules/aws-sdk/clients/connect.js","../node_modules/aws-sdk/clients/costexplorer.js","../node_modules/aws-sdk/clients/cur.js","../node_modules/aws-sdk/clients/devicefarm.js","../node_modules/aws-sdk/clients/directconnect.js","../node_modules/aws-sdk/clients/dynamodb.js","../node_modules/aws-sdk/clients/dynamodbstreams.js","../node_modules/aws-sdk/clients/ec2.js","../node_modules/aws-sdk/clients/ecr.js","../node_modules/aws-sdk/clients/ecs.js","../node_modules/aws-sdk/clients/efs.js","../node_modules/aws-sdk/clients/elasticache.js","../node_modules/aws-sdk/clients/elasticbeanstalk.js","../node_modules/aws-sdk/clients/elastictranscoder.js","../node_modules/aws-sdk/clients/elb.js","../node_modules/aws-sdk/clients/elbv2.js","../node_modules/aws-sdk/clients/emr.js","../node_modules/aws-sdk/clients/firehose.js","../node_modules/aws-sdk/clients/forecastqueryservice.js","../node_modules/aws-sdk/clients/forecastservice.js","../node_modules/aws-sdk/clients/gamelift.js","../node_modules/aws-sdk/clients/iam.js","../node_modules/aws-sdk/clients/inspector.js","../node_modules/aws-sdk/clients/iot.js","../node_modules/aws-sdk/clients/iotanalytics.js","../node_modules/aws-sdk/clients/iotdata.js","../node_modules/aws-sdk/clients/kinesis.js","../node_modules/aws-sdk/clients/kinesisvideo.js","../node_modules/aws-sdk/clients/kinesisvideoarchivedmedia.js","../node_modules/aws-sdk/clients/kinesisvideomedia.js","../node_modules/aws-sdk/clients/kinesisvideosignalingchannels.js","../node_modules/aws-sdk/clients/kms.js","../node_modules/aws-sdk/clients/lambda.js","../node_modules/aws-sdk/clients/lexmodelbuildingservice.js","../node_modules/aws-sdk/clients/lexruntime.js","../node_modules/aws-sdk/clients/lexruntimev2.js","../node_modules/aws-sdk/clients/location.js","../node_modules/aws-sdk/clients/machinelearning.js","../node_modules/aws-sdk/clients/marketplacecatalog.js","../node_modules/aws-sdk/clients/marketplacecommerceanalytics.js","../node_modules/aws-sdk/clients/mediastoredata.js","../node_modules/aws-sdk/clients/mobileanalytics.js","../node_modules/aws-sdk/clients/mturk.js","../node_modules/aws-sdk/clients/opsworks.js","../node_modules/aws-sdk/clients/personalize.js","../node_modules/aws-sdk/clients/personalizeevents.js","../node_modules/aws-sdk/clients/personalizeruntime.js","../node_modules/aws-sdk/clients/polly.js","../node_modules/aws-sdk/clients/pricing.js","../node_modules/aws-sdk/clients/rds.js","../node_modules/aws-sdk/clients/redshift.js","../node_modules/aws-sdk/clients/rekognition.js","../node_modules/aws-sdk/clients/resourcegroups.js","../node_modules/aws-sdk/clients/route53.js","../node_modules/aws-sdk/clients/route53domains.js","../node_modules/aws-sdk/clients/s3.js","../node_modules/aws-sdk/clients/secretsmanager.js","../node_modules/aws-sdk/clients/servicecatalog.js","../node_modules/aws-sdk/clients/ses.js","../node_modules/aws-sdk/clients/sns.js","../node_modules/aws-sdk/clients/sqs.js","../node_modules/aws-sdk/clients/ssm.js","../node_modules/aws-sdk/clients/storagegateway.js","../node_modules/aws-sdk/clients/sts.js","../node_modules/aws-sdk/clients/translate.js","../node_modules/aws-sdk/clients/waf.js","../node_modules/aws-sdk/clients/workdocs.js","../node_modules/aws-sdk/clients/xray.js","../node_modules/aws-sdk/lib/api_loader.js","../node_modules/aws-sdk/lib/browser.js","../node_modules/aws-sdk/lib/browserCryptoLib.js","../node_modules/aws-sdk/lib/browserHashUtils.js","../node_modules/aws-sdk/lib/browserHmac.js","../node_modules/aws-sdk/lib/browserMd5.js","../node_modules/aws-sdk/lib/browserSha1.js","../node_modules/aws-sdk/lib/browserSha256.js","../node_modules/aws-sdk/lib/browser_loader.js","../node_modules/aws-sdk/lib/cloudfront/signer.js","../node_modules/aws-sdk/lib/config.js","../node_modules/aws-sdk/lib/config_regional_endpoint.js","../node_modules/aws-sdk/lib/core.js","../node_modules/aws-sdk/lib/credentials.js","../node_modules/aws-sdk/lib/credentials/chainable_temporary_credentials.js","../node_modules/aws-sdk/lib/credentials/cognito_identity_credentials.js","../node_modules/aws-sdk/lib/credentials/credential_provider_chain.js","../node_modules/aws-sdk/lib/credentials/saml_credentials.js","../node_modules/aws-sdk/lib/credentials/temporary_credentials.js","../node_modules/aws-sdk/lib/credentials/web_identity_credentials.js","../node_modules/aws-sdk/lib/discover_endpoint.js","../node_modules/aws-sdk/lib/dynamodb/converter.js","../node_modules/aws-sdk/lib/dynamodb/document_client.js","../node_modules/aws-sdk/lib/dynamodb/numberValue.js","../node_modules/aws-sdk/lib/dynamodb/set.js","../node_modules/aws-sdk/lib/dynamodb/translator.js","../node_modules/aws-sdk/lib/dynamodb/types.js","../node_modules/aws-sdk/lib/event-stream/buffered-create-event-stream.js","../node_modules/aws-sdk/lib/event-stream/event-message-chunker.js","../node_modules/aws-sdk/lib/event-stream/int64.js","../node_modules/aws-sdk/lib/event-stream/parse-event.js","../node_modules/aws-sdk/lib/event-stream/parse-message.js","../node_modules/aws-sdk/lib/event-stream/split-message.js","../node_modules/aws-sdk/lib/event_listeners.js","../node_modules/aws-sdk/lib/http.js","../node_modules/aws-sdk/lib/http/xhr.js","../node_modules/aws-sdk/lib/json/builder.js","../node_modules/aws-sdk/lib/json/parser.js","../node_modules/aws-sdk/lib/maintenance_mode_message.js","../node_modules/aws-sdk/lib/model/api.js","../node_modules/aws-sdk/lib/model/collection.js","../node_modules/aws-sdk/lib/model/operation.js","../node_modules/aws-sdk/lib/model/paginator.js","../node_modules/aws-sdk/lib/model/resource_waiter.js","../node_modules/aws-sdk/lib/model/shape.js","../node_modules/aws-sdk/lib/param_validator.js","../node_modules/aws-sdk/lib/polly/presigner.js","../node_modules/aws-sdk/lib/protocol/helpers.js","../node_modules/aws-sdk/lib/protocol/json.js","../node_modules/aws-sdk/lib/protocol/query.js","../node_modules/aws-sdk/lib/protocol/rest.js","../node_modules/aws-sdk/lib/protocol/rest_json.js","../node_modules/aws-sdk/lib/protocol/rest_xml.js","../node_modules/aws-sdk/lib/query/query_param_serializer.js","../node_modules/aws-sdk/lib/rds/signer.js","../node_modules/aws-sdk/lib/realclock/browserClock.js","../node_modules/aws-sdk/lib/region/utils.js","../node_modules/aws-sdk/lib/region_config.js","../node_modules/aws-sdk/lib/request.js","../node_modules/aws-sdk/lib/resource_waiter.js","../node_modules/aws-sdk/lib/response.js","../node_modules/aws-sdk/lib/s3/managed_upload.js","../node_modules/aws-sdk/lib/sequential_executor.js","../node_modules/aws-sdk/lib/service.js","../node_modules/aws-sdk/lib/services/apigateway.js","../node_modules/aws-sdk/lib/services/cloudfront.js","../node_modules/aws-sdk/lib/services/dynamodb.js","../node_modules/aws-sdk/lib/services/ec2.js","../node_modules/aws-sdk/lib/services/iotdata.js","../node_modules/aws-sdk/lib/services/lambda.js","../node_modules/aws-sdk/lib/services/machinelearning.js","../node_modules/aws-sdk/lib/services/polly.js","../node_modules/aws-sdk/lib/services/rds.js","../node_modules/aws-sdk/lib/services/rdsutil.js","../node_modules/aws-sdk/lib/services/route53.js","../node_modules/aws-sdk/lib/services/s3.js","../node_modules/aws-sdk/lib/services/s3util.js","../node_modules/aws-sdk/lib/services/sqs.js","../node_modules/aws-sdk/lib/services/sts.js","../node_modules/aws-sdk/lib/signers/bearer.js","../node_modules/aws-sdk/lib/signers/presign.js","../node_modules/aws-sdk/lib/signers/request_signer.js","../node_modules/aws-sdk/lib/signers/s3.js","../node_modules/aws-sdk/lib/signers/v2.js","../node_modules/aws-sdk/lib/signers/v3.js","../node_modules/aws-sdk/lib/signers/v3https.js","../node_modules/aws-sdk/lib/signers/v4.js","../node_modules/aws-sdk/lib/signers/v4_credentials.js","../node_modules/aws-sdk/lib/state_machine.js","../node_modules/aws-sdk/lib/util.js","../node_modules/aws-sdk/lib/xml/browser_parser.js","../node_modules/aws-sdk/lib/xml/builder.js","../node_modules/aws-sdk/lib/xml/escape-attribute.js","../node_modules/aws-sdk/lib/xml/escape-element.js","../node_modules/aws-sdk/lib/xml/xml-node.js","../node_modules/aws-sdk/lib/xml/xml-text.js","../node_modules/aws-sdk/node_modules/buffer/index.js","../node_modules/aws-sdk/node_modules/buffer/node_modules/ieee754/index.js","../node_modules/aws-sdk/node_modules/events/events.js","../node_modules/aws-sdk/node_modules/punycode/punycode.js","../node_modules/aws-sdk/node_modules/url/url.js","../node_modules/aws-sdk/node_modules/uuid/dist/bytesToUuid.js","../node_modules/aws-sdk/node_modules/uuid/dist/index.js","../node_modules/aws-sdk/node_modules/uuid/dist/md5-browser.js","../node_modules/aws-sdk/node_modules/uuid/dist/rng-browser.js","../node_modules/aws-sdk/node_modules/uuid/dist/sha1-browser.js","../node_modules/aws-sdk/node_modules/uuid/dist/v1.js","../node_modules/aws-sdk/node_modules/uuid/dist/v3.js","../node_modules/aws-sdk/node_modules/uuid/dist/v35.js","../node_modules/aws-sdk/node_modules/uuid/dist/v4.js","../node_modules/aws-sdk/node_modules/uuid/dist/v5.js","../node_modules/aws-sdk/vendor/endpoint-cache/index.js","../node_modules/aws-sdk/vendor/endpoint-cache/utils/LRU.js","../node_modules/axios/index.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/axios.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/cancel/CanceledError.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/core/AxiosError.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/buildFullPath.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/mergeConfig.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/defaults/index.js","../node_modules/axios/lib/defaults/transitional.js","../node_modules/axios/lib/env/data.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/isAxiosError.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/helpers/null.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/parseProtocol.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/helpers/toFormData.js","../node_modules/axios/lib/helpers/validator.js","../node_modules/axios/lib/utils.js","../node_modules/base64-js/index.js","../node_modules/bn.js/lib/bn.js","../node_modules/bowser/es5.js","../node_modules/brorand/index.js","../node_modules/browserify-aes/aes.js","../node_modules/browserify-aes/authCipher.js","../node_modules/browserify-aes/browser.js","../node_modules/browserify-aes/decrypter.js","../node_modules/browserify-aes/encrypter.js","../node_modules/browserify-aes/ghash.js","../node_modules/browserify-aes/incr32.js","../node_modules/browserify-aes/modes/cbc.js","../node_modules/browserify-aes/modes/cfb.js","../node_modules/browserify-aes/modes/cfb1.js","../node_modules/browserify-aes/modes/cfb8.js","../node_modules/browserify-aes/modes/ctr.js","../node_modules/browserify-aes/modes/ecb.js","../node_modules/browserify-aes/modes/index.js","../node_modules/browserify-aes/modes/ofb.js","../node_modules/browserify-aes/streamCipher.js","../node_modules/browserify-cipher/browser.js","../node_modules/browserify-des/index.js","../node_modules/browserify-des/modes.js","../node_modules/browserify-rsa/index.js","../node_modules/browserify-rsa/node_modules/bn.js/lib/bn.js","../node_modules/browserify-sign/algos.js","../node_modules/browserify-sign/browser/index.js","../node_modules/browserify-sign/browser/sign.js","../node_modules/browserify-sign/browser/verify.js","../node_modules/browserify-sign/node_modules/bn.js/lib/bn.js","../node_modules/browserify-sign/node_modules/readable-stream/errors-browser.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_readable.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_transform.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/_stream_writable.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/async_iterator.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/buffer_list.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/from-browser.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/pipeline.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/state.js","../node_modules/browserify-sign/node_modules/readable-stream/lib/internal/streams/stream-browser.js","../node_modules/browserify-sign/node_modules/readable-stream/readable-browser.js","../node_modules/buffer-equal-constant-time/index.js","../node_modules/buffer-xor/index.js","../node_modules/buffer/index.js","../node_modules/call-bind/callBound.js","../node_modules/call-bind/index.js","../node_modules/cipher-base/index.js","../node_modules/clsx/dist/clsx.m.js","../node_modules/create-ecdh/browser.js","../node_modules/create-hash/browser.js","../node_modules/create-hash/md5.js","../node_modules/create-hmac/browser.js","../node_modules/create-hmac/legacy.js","../node_modules/crypto-browserify/index.js","../node_modules/date-fns/_lib/format/longFormatters/index.js","../node_modules/deepmerge/dist/cjs.js","../node_modules/define-data-property/index.js","../node_modules/des.js/lib/des.js","../node_modules/des.js/lib/des/cbc.js","../node_modules/des.js/lib/des/cipher.js","../node_modules/des.js/lib/des/des.js","../node_modules/des.js/lib/des/ede.js","../node_modules/des.js/lib/des/utils.js","../node_modules/diffie-hellman/browser.js","../node_modules/diffie-hellman/lib/dh.js","../node_modules/diffie-hellman/lib/generatePrime.js","../node_modules/ecdsa-sig-formatter/src/ecdsa-sig-formatter.js","../node_modules/ecdsa-sig-formatter/src/param-bytes-for-alg.js","../node_modules/elliptic/lib/elliptic.js","../node_modules/elliptic/lib/elliptic/curve/base.js","../node_modules/elliptic/lib/elliptic/curve/edwards.js","../node_modules/elliptic/lib/elliptic/curve/index.js","../node_modules/elliptic/lib/elliptic/curve/mont.js","../node_modules/elliptic/lib/elliptic/curve/short.js","../node_modules/elliptic/lib/elliptic/curves.js","../node_modules/elliptic/lib/elliptic/ec/index.js","../node_modules/elliptic/lib/elliptic/ec/key.js","../node_modules/elliptic/lib/elliptic/ec/signature.js","../node_modules/elliptic/lib/elliptic/eddsa/index.js","../node_modules/elliptic/lib/elliptic/eddsa/key.js","../node_modules/elliptic/lib/elliptic/eddsa/signature.js","../node_modules/elliptic/lib/elliptic/precomputed/secp256k1.js","../node_modules/elliptic/lib/elliptic/utils.js","../node_modules/events/events.js","../node_modules/evp_bytestokey/index.js","../node_modules/fast-json-stable-stringify/index.js","../node_modules/fast-xml-parser/src/fxp.js","../node_modules/fast-xml-parser/src/util.js","../node_modules/fast-xml-parser/src/validator.js","../node_modules/fast-xml-parser/src/xmlbuilder/json2xml.js","../node_modules/fast-xml-parser/src/xmlbuilder/orderedJs2Xml.js","../node_modules/fast-xml-parser/src/xmlparser/DocTypeReader.js","../node_modules/fast-xml-parser/src/xmlparser/OptionsBuilder.js","../node_modules/fast-xml-parser/src/xmlparser/OrderedObjParser.js","../node_modules/fast-xml-parser/src/xmlparser/XMLParser.js","../node_modules/fast-xml-parser/src/xmlparser/node2json.js","../node_modules/fast-xml-parser/src/xmlparser/xmlNode.js","../node_modules/fault/index.js","../node_modules/for-each/index.js","../node_modules/format/format.js","../node_modules/formik/node_modules/deepmerge/dist/es.js","../node_modules/lodash-es/_baseAssign.js","../node_modules/lodash-es/_baseAssignIn.js","../node_modules/lodash-es/_copySymbols.js","../node_modules/lodash-es/_getSymbolsIn.js","../node_modules/lodash-es/_copySymbolsIn.js","../node_modules/lodash-es/_getAllKeysIn.js","../node_modules/lodash-es/_initCloneArray.js","../node_modules/lodash-es/_cloneDataView.js","../node_modules/lodash-es/_cloneRegExp.js","../node_modules/lodash-es/_cloneSymbol.js","../node_modules/lodash-es/_initCloneByTag.js","../node_modules/lodash-es/_baseIsMap.js","../node_modules/lodash-es/isMap.js","../node_modules/lodash-es/_baseIsSet.js","../node_modules/lodash-es/isSet.js","../node_modules/lodash-es/_baseClone.js","../node_modules/lodash-es/clone.js","../node_modules/lodash-es/toPath.js","../node_modules/tiny-warning/dist/tiny-warning.esm.js","../node_modules/lodash-es/cloneDeep.js","../node_modules/formik/src/utils.ts","../node_modules/formik/src/FormikContext.tsx","../node_modules/formik/src/Formik.tsx","../node_modules/formik/src/Field.tsx","../node_modules/formik/src/Form.tsx","../node_modules/formik/src/FieldArray.tsx","../node_modules/function-bind/implementation.js","../node_modules/function-bind/index.js","../node_modules/get-intrinsic/index.js","../node_modules/gopd/index.js","../node_modules/graphql-tag/src/index.ts","../node_modules/has-property-descriptors/index.js","../node_modules/has-proto/index.js","../node_modules/has-symbols/index.js","../node_modules/has-symbols/shams.js","../node_modules/has-tostringtag/shams.js","../node_modules/hash-base/index.js","../node_modules/hash-base/node_modules/readable-stream/errors-browser.js","../node_modules/hash-base/node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/hash-base/node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/hash-base/node_modules/readable-stream/lib/_stream_readable.js","../node_modules/hash-base/node_modules/readable-stream/lib/_stream_transform.js","../node_modules/hash-base/node_modules/readable-stream/lib/_stream_writable.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/async_iterator.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/buffer_list.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/from-browser.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/pipeline.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/state.js","../node_modules/hash-base/node_modules/readable-stream/lib/internal/streams/stream-browser.js","../node_modules/hash-base/node_modules/readable-stream/readable-browser.js","../node_modules/hash.js/lib/hash.js","../node_modules/hash.js/lib/hash/common.js","../node_modules/hash.js/lib/hash/hmac.js","../node_modules/hash.js/lib/hash/ripemd.js","../node_modules/hash.js/lib/hash/sha.js","../node_modules/hash.js/lib/hash/sha/1.js","../node_modules/hash.js/lib/hash/sha/224.js","../node_modules/hash.js/lib/hash/sha/256.js","../node_modules/hash.js/lib/hash/sha/384.js","../node_modules/hash.js/lib/hash/sha/512.js","../node_modules/hash.js/lib/hash/sha/common.js","../node_modules/hash.js/lib/hash/utils.js","../node_modules/hasown/index.js","../node_modules/highlight.js/lib/core.js","../node_modules/highlight.js/lib/languages/1c.js","../node_modules/highlight.js/lib/languages/abnf.js","../node_modules/highlight.js/lib/languages/accesslog.js","../node_modules/highlight.js/lib/languages/actionscript.js","../node_modules/highlight.js/lib/languages/ada.js","../node_modules/highlight.js/lib/languages/angelscript.js","../node_modules/highlight.js/lib/languages/apache.js","../node_modules/highlight.js/lib/languages/applescript.js","../node_modules/highlight.js/lib/languages/arcade.js","../node_modules/highlight.js/lib/languages/arduino.js","../node_modules/highlight.js/lib/languages/armasm.js","../node_modules/highlight.js/lib/languages/asciidoc.js","../node_modules/highlight.js/lib/languages/aspectj.js","../node_modules/highlight.js/lib/languages/autohotkey.js","../node_modules/highlight.js/lib/languages/autoit.js","../node_modules/highlight.js/lib/languages/avrasm.js","../node_modules/highlight.js/lib/languages/awk.js","../node_modules/highlight.js/lib/languages/axapta.js","../node_modules/highlight.js/lib/languages/bash.js","../node_modules/highlight.js/lib/languages/basic.js","../node_modules/highlight.js/lib/languages/bnf.js","../node_modules/highlight.js/lib/languages/brainfuck.js","../node_modules/highlight.js/lib/languages/c-like.js","../node_modules/highlight.js/lib/languages/c.js","../node_modules/highlight.js/lib/languages/cal.js","../node_modules/highlight.js/lib/languages/capnproto.js","../node_modules/highlight.js/lib/languages/ceylon.js","../node_modules/highlight.js/lib/languages/clean.js","../node_modules/highlight.js/lib/languages/clojure-repl.js","../node_modules/highlight.js/lib/languages/clojure.js","../node_modules/highlight.js/lib/languages/cmake.js","../node_modules/highlight.js/lib/languages/coffeescript.js","../node_modules/highlight.js/lib/languages/coq.js","../node_modules/highlight.js/lib/languages/cos.js","../node_modules/highlight.js/lib/languages/cpp.js","../node_modules/highlight.js/lib/languages/crmsh.js","../node_modules/highlight.js/lib/languages/crystal.js","../node_modules/highlight.js/lib/languages/csharp.js","../node_modules/highlight.js/lib/languages/csp.js","../node_modules/highlight.js/lib/languages/css.js","../node_modules/highlight.js/lib/languages/d.js","../node_modules/highlight.js/lib/languages/dart.js","../node_modules/highlight.js/lib/languages/delphi.js","../node_modules/highlight.js/lib/languages/diff.js","../node_modules/highlight.js/lib/languages/django.js","../node_modules/highlight.js/lib/languages/dns.js","../node_modules/highlight.js/lib/languages/dockerfile.js","../node_modules/highlight.js/lib/languages/dos.js","../node_modules/highlight.js/lib/languages/dsconfig.js","../node_modules/highlight.js/lib/languages/dts.js","../node_modules/highlight.js/lib/languages/dust.js","../node_modules/highlight.js/lib/languages/ebnf.js","../node_modules/highlight.js/lib/languages/elixir.js","../node_modules/highlight.js/lib/languages/elm.js","../node_modules/highlight.js/lib/languages/erb.js","../node_modules/highlight.js/lib/languages/erlang-repl.js","../node_modules/highlight.js/lib/languages/erlang.js","../node_modules/highlight.js/lib/languages/excel.js","../node_modules/highlight.js/lib/languages/fix.js","../node_modules/highlight.js/lib/languages/flix.js","../node_modules/highlight.js/lib/languages/fortran.js","../node_modules/highlight.js/lib/languages/fsharp.js","../node_modules/highlight.js/lib/languages/gams.js","../node_modules/highlight.js/lib/languages/gauss.js","../node_modules/highlight.js/lib/languages/gcode.js","../node_modules/highlight.js/lib/languages/gherkin.js","../node_modules/highlight.js/lib/languages/glsl.js","../node_modules/highlight.js/lib/languages/gml.js","../node_modules/highlight.js/lib/languages/go.js","../node_modules/highlight.js/lib/languages/golo.js","../node_modules/highlight.js/lib/languages/gradle.js","../node_modules/highlight.js/lib/languages/groovy.js","../node_modules/highlight.js/lib/languages/haml.js","../node_modules/highlight.js/lib/languages/handlebars.js","../node_modules/highlight.js/lib/languages/haskell.js","../node_modules/highlight.js/lib/languages/haxe.js","../node_modules/highlight.js/lib/languages/hsp.js","../node_modules/highlight.js/lib/languages/htmlbars.js","../node_modules/highlight.js/lib/languages/http.js","../node_modules/highlight.js/lib/languages/hy.js","../node_modules/highlight.js/lib/languages/inform7.js","../node_modules/highlight.js/lib/languages/ini.js","../node_modules/highlight.js/lib/languages/irpf90.js","../node_modules/highlight.js/lib/languages/isbl.js","../node_modules/highlight.js/lib/languages/java.js","../node_modules/highlight.js/lib/languages/javascript.js","../node_modules/highlight.js/lib/languages/jboss-cli.js","../node_modules/highlight.js/lib/languages/json.js","../node_modules/highlight.js/lib/languages/julia-repl.js","../node_modules/highlight.js/lib/languages/julia.js","../node_modules/highlight.js/lib/languages/kotlin.js","../node_modules/highlight.js/lib/languages/lasso.js","../node_modules/highlight.js/lib/languages/latex.js","../node_modules/highlight.js/lib/languages/ldif.js","../node_modules/highlight.js/lib/languages/leaf.js","../node_modules/highlight.js/lib/languages/less.js","../node_modules/highlight.js/lib/languages/lisp.js","../node_modules/highlight.js/lib/languages/livecodeserver.js","../node_modules/highlight.js/lib/languages/livescript.js","../node_modules/highlight.js/lib/languages/llvm.js","../node_modules/highlight.js/lib/languages/lsl.js","../node_modules/highlight.js/lib/languages/lua.js","../node_modules/highlight.js/lib/languages/makefile.js","../node_modules/highlight.js/lib/languages/markdown.js","../node_modules/highlight.js/lib/languages/mathematica.js","../node_modules/highlight.js/lib/languages/matlab.js","../node_modules/highlight.js/lib/languages/maxima.js","../node_modules/highlight.js/lib/languages/mel.js","../node_modules/highlight.js/lib/languages/mercury.js","../node_modules/highlight.js/lib/languages/mipsasm.js","../node_modules/highlight.js/lib/languages/mizar.js","../node_modules/highlight.js/lib/languages/mojolicious.js","../node_modules/highlight.js/lib/languages/monkey.js","../node_modules/highlight.js/lib/languages/moonscript.js","../node_modules/highlight.js/lib/languages/n1ql.js","../node_modules/highlight.js/lib/languages/nginx.js","../node_modules/highlight.js/lib/languages/nim.js","../node_modules/highlight.js/lib/languages/nix.js","../node_modules/highlight.js/lib/languages/node-repl.js","../node_modules/highlight.js/lib/languages/nsis.js","../node_modules/highlight.js/lib/languages/objectivec.js","../node_modules/highlight.js/lib/languages/ocaml.js","../node_modules/highlight.js/lib/languages/openscad.js","../node_modules/highlight.js/lib/languages/oxygene.js","../node_modules/highlight.js/lib/languages/parser3.js","../node_modules/highlight.js/lib/languages/perl.js","../node_modules/highlight.js/lib/languages/pf.js","../node_modules/highlight.js/lib/languages/pgsql.js","../node_modules/highlight.js/lib/languages/php-template.js","../node_modules/highlight.js/lib/languages/php.js","../node_modules/highlight.js/lib/languages/plaintext.js","../node_modules/highlight.js/lib/languages/pony.js","../node_modules/highlight.js/lib/languages/powershell.js","../node_modules/highlight.js/lib/languages/processing.js","../node_modules/highlight.js/lib/languages/profile.js","../node_modules/highlight.js/lib/languages/prolog.js","../node_modules/highlight.js/lib/languages/properties.js","../node_modules/highlight.js/lib/languages/protobuf.js","../node_modules/highlight.js/lib/languages/puppet.js","../node_modules/highlight.js/lib/languages/purebasic.js","../node_modules/highlight.js/lib/languages/python-repl.js","../node_modules/highlight.js/lib/languages/python.js","../node_modules/highlight.js/lib/languages/q.js","../node_modules/highlight.js/lib/languages/qml.js","../node_modules/highlight.js/lib/languages/r.js","../node_modules/highlight.js/lib/languages/reasonml.js","../node_modules/highlight.js/lib/languages/rib.js","../node_modules/highlight.js/lib/languages/roboconf.js","../node_modules/highlight.js/lib/languages/routeros.js","../node_modules/highlight.js/lib/languages/rsl.js","../node_modules/highlight.js/lib/languages/ruby.js","../node_modules/highlight.js/lib/languages/ruleslanguage.js","../node_modules/highlight.js/lib/languages/rust.js","../node_modules/highlight.js/lib/languages/sas.js","../node_modules/highlight.js/lib/languages/scala.js","../node_modules/highlight.js/lib/languages/scheme.js","../node_modules/highlight.js/lib/languages/scilab.js","../node_modules/highlight.js/lib/languages/scss.js","../node_modules/highlight.js/lib/languages/shell.js","../node_modules/highlight.js/lib/languages/smali.js","../node_modules/highlight.js/lib/languages/smalltalk.js","../node_modules/highlight.js/lib/languages/sml.js","../node_modules/highlight.js/lib/languages/sqf.js","../node_modules/highlight.js/lib/languages/sql.js","../node_modules/highlight.js/lib/languages/sql_more.js","../node_modules/highlight.js/lib/languages/stan.js","../node_modules/highlight.js/lib/languages/stata.js","../node_modules/highlight.js/lib/languages/step21.js","../node_modules/highlight.js/lib/languages/stylus.js","../node_modules/highlight.js/lib/languages/subunit.js","../node_modules/highlight.js/lib/languages/swift.js","../node_modules/highlight.js/lib/languages/taggerscript.js","../node_modules/highlight.js/lib/languages/tap.js","../node_modules/highlight.js/lib/languages/tcl.js","../node_modules/highlight.js/lib/languages/thrift.js","../node_modules/highlight.js/lib/languages/tp.js","../node_modules/highlight.js/lib/languages/twig.js","../node_modules/highlight.js/lib/languages/typescript.js","../node_modules/highlight.js/lib/languages/vala.js","../node_modules/highlight.js/lib/languages/vbnet.js","../node_modules/highlight.js/lib/languages/vbscript-html.js","../node_modules/highlight.js/lib/languages/vbscript.js","../node_modules/highlight.js/lib/languages/verilog.js","../node_modules/highlight.js/lib/languages/vhdl.js","../node_modules/highlight.js/lib/languages/vim.js","../node_modules/highlight.js/lib/languages/x86asm.js","../node_modules/highlight.js/lib/languages/xl.js","../node_modules/highlight.js/lib/languages/xml.js","../node_modules/highlight.js/lib/languages/xquery.js","../node_modules/highlight.js/lib/languages/yaml.js","../node_modules/highlight.js/lib/languages/zephir.js","../node_modules/hmac-drbg/lib/hmac-drbg.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/ieee754/index.js","../node_modules/inherits/inherits_browser.js","../node_modules/invariant/browser.js","../node_modules/is-arguments/index.js","../node_modules/is-callable/index.js","../node_modules/is-generator-function/index.js","../node_modules/is-typed-array/index.js","../node_modules/isarray/index.js","../node_modules/jmespath/jmespath.js","../node_modules/json-stringify-safe/stringify.js","../node_modules/jsonwebtoken/decode.js","../node_modules/jsonwebtoken/index.js","../node_modules/jsonwebtoken/lib/JsonWebTokenError.js","../node_modules/jsonwebtoken/lib/NotBeforeError.js","../node_modules/jsonwebtoken/lib/TokenExpiredError.js","../node_modules/jsonwebtoken/lib/psSupported.js","../node_modules/jsonwebtoken/lib/timespan.js","../node_modules/jsonwebtoken/node_modules/semver/semver.js","../node_modules/jsonwebtoken/sign.js","../node_modules/jsonwebtoken/verify.js","../node_modules/jwa/index.js","../node_modules/jws/index.js","../node_modules/jws/lib/data-stream.js","../node_modules/jws/lib/sign-stream.js","../node_modules/jws/lib/tostring.js","../node_modules/jws/lib/verify-stream.js","../node_modules/lodash.includes/index.js","../node_modules/lodash.isboolean/index.js","../node_modules/lodash.isinteger/index.js","../node_modules/lodash.isnumber/index.js","../node_modules/lodash.isplainobject/index.js","../node_modules/lodash.isstring/index.js","../node_modules/lodash.once/index.js","../node_modules/lodash.throttle/index.js","../node_modules/lowlight/index.js","../node_modules/lowlight/lib/core.js","../node_modules/md5.js/index.js","../node_modules/miller-rabin/lib/mr.js","../node_modules/minimalistic-assert/index.js","../node_modules/minimalistic-crypto-utils/lib/utils.js","../node_modules/ms/index.js","../node_modules/object-inspect/index.js","../node_modules/parse-asn1/asn1.js","../node_modules/parse-asn1/certificate.js","../node_modules/parse-asn1/fixProc.js","../node_modules/parse-asn1/index.js","../node_modules/pbkdf2/browser.js","../node_modules/pbkdf2/lib/async.js","../node_modules/pbkdf2/lib/default-encoding.js","../node_modules/pbkdf2/lib/precondition.js","../node_modules/pbkdf2/lib/sync-browser.js","../node_modules/pbkdf2/lib/to-buffer.js","../node_modules/perfect-scrollbar/src/lib/css.js","../node_modules/perfect-scrollbar/src/lib/dom.js","../node_modules/perfect-scrollbar/src/lib/class-names.js","../node_modules/perfect-scrollbar/src/lib/event-manager.js","../node_modules/perfect-scrollbar/src/process-scroll-diff.js","../node_modules/perfect-scrollbar/src/lib/util.js","../node_modules/perfect-scrollbar/src/update-geometry.js","../node_modules/perfect-scrollbar/src/handlers/drag-thumb.js","../node_modules/perfect-scrollbar/src/index.js","../node_modules/perfect-scrollbar/src/handlers/click-rail.js","../node_modules/perfect-scrollbar/src/handlers/keyboard.js","../node_modules/perfect-scrollbar/src/handlers/mouse-wheel.js","../node_modules/perfect-scrollbar/src/handlers/touch.js","../node_modules/@babel/runtime/helpers/esm/construct.js","../node_modules/@babel/runtime/helpers/esm/isNativeReflectConstruct.js","../node_modules/@babel/runtime/helpers/esm/wrapNativeSuper.js","../node_modules/@babel/runtime/helpers/esm/isNativeFunction.js","../node_modules/polished/dist/polished.esm.js","../node_modules/process/browser.js","../node_modules/prop-types/factoryWithThrowingShims.js","../node_modules/prop-types/index.js","../node_modules/prop-types/lib/ReactPropTypesSecret.js","../node_modules/property-expr/index.js","../node_modules/public-encrypt/browser.js","../node_modules/public-encrypt/mgf.js","../node_modules/public-encrypt/privateDecrypt.js","../node_modules/public-encrypt/publicEncrypt.js","../node_modules/public-encrypt/withPublic.js","../node_modules/public-encrypt/xor.js","../node_modules/querystring/decode.js","../node_modules/querystring/encode.js","../node_modules/querystring/index.js","../node_modules/randombytes/browser.js","../node_modules/randomfill/browser.js","../node_modules/@apollo/react-common/src/context/ApolloContext.ts","../node_modules/@apollo/react-common/src/parser/parser.ts","../node_modules/@apollo/react-common/src/context/ApolloProvider.tsx","../node_modules/@apollo/react-common/src/context/ApolloConsumer.tsx","../node_modules/@apollo/react-hooks/node_modules/tslib/tslib.es6.js","../node_modules/apollo-client/node_modules/tslib/tslib.es6.js","../node_modules/src/core/networkStatus.ts","../node_modules/src/util/Observable.ts","../node_modules/src/util/arrays.ts","../node_modules/src/errors/ApolloError.ts","../node_modules/src/core/types.ts","../node_modules/src/core/ObservableQuery.ts","../node_modules/src/data/mutations.ts","../node_modules/src/data/queries.ts","../node_modules/src/core/LocalState.ts","../node_modules/src/util/capitalizeFirstLetter.ts","../node_modules/src/util/observables.ts","../node_modules/src/core/QueryManager.ts","../node_modules/src/data/store.ts","../node_modules/@apollo/react-hooks/src/data/OperationData.ts","../node_modules/src/ApolloClient.ts","../node_modules/src/version.ts","../node_modules/@apollo/react-hooks/src/data/QueryData.ts","../node_modules/@apollo/react-hooks/src/utils/useBaseQuery.ts","../node_modules/@apollo/react-hooks/src/utils/useDeepMemo.ts","../node_modules/@apollo/react-hooks/src/useQuery.ts","../node_modules/@apollo/react-hooks/src/useLazyQuery.ts","../node_modules/@apollo/react-hooks/src/data/MutationData.ts","../node_modules/@apollo/react-hooks/src/useMutation.ts","../node_modules/@apollo/react-hooks/src/data/SubscriptionData.ts","../node_modules/@apollo/react-hooks/src/useSubscription.ts","../node_modules/@apollo/react-hooks/src/useApolloClient.ts","../node_modules/@apollo/react-hooks/src/ssr/RenderPromises.ts","../node_modules/@apollo/react-components/src/Query.tsx","../node_modules/@apollo/react-components/node_modules/tslib/tslib.es6.js","../node_modules/@apollo/react-components/src/Mutation.tsx","../node_modules/@apollo/react-components/src/Subscription.tsx","../node_modules/@apollo/react-hoc/node_modules/tslib/tslib.es6.js","../node_modules/@apollo/react-hoc/src/hoc-utils.tsx","../node_modules/@apollo/react-hoc/src/query-hoc.tsx","../node_modules/@apollo/react-hoc/src/mutation-hoc.tsx","../node_modules/@apollo/react-hoc/src/subscription-hoc.tsx","../node_modules/@apollo/react-hoc/src/graphql.tsx","../node_modules/@apollo/react-hoc/src/withApollo.tsx","../node_modules/@apollo/react-ssr/node_modules/tslib/tslib.es6.js","../node_modules/@apollo/react-ssr/src/getDataFromTree.ts","../node_modules/@apollo/react-ssr/src/renderToStringWithData.ts","../node_modules/react-app-polyfill/stable.js","../node_modules/react-dom/cjs/react-dom-server-legacy.browser.production.min.js","../node_modules/react-dom/cjs/react-dom-server.browser.production.min.js","../node_modules/react-dom/cjs/react-dom.production.min.js","../node_modules/react-dom/client.js","../node_modules/react-dom/index.js","../node_modules/react-dom/server.browser.js","../node_modules/react-fast-compare/index.js","../node_modules/react-feather/dist/icons/arrow-right-circle.js","../node_modules/react-feather/dist/icons/home.js","../node_modules/react-feather/dist/icons/more-vertical.js","../node_modules/react-helmet-async/src/constants.js","../node_modules/react-helmet-async/src/utils.js","../node_modules/react-helmet-async/src/server.js","../node_modules/react-helmet-async/src/HelmetData.js","../node_modules/react-helmet-async/src/Provider.js","../node_modules/react-helmet-async/src/client.js","../node_modules/react-helmet-async/src/Dispatcher.js","../node_modules/react-helmet-async/src/index.js","../node_modules/react-helmet-async/node_modules/react-fast-compare/index.js","../node_modules/react-input-mask/index.js","../node_modules/react-input-mask/lib/react-input-mask.production.min.js","../node_modules/react-is/cjs/react-is.production.min.js","../node_modules/react-is/index.js","../node_modules/react-perfect-scrollbar/lib/index.js","../node_modules/react-perfect-scrollbar/lib/scrollbar.js","../node_modules/react-redux/es/utils/batch.js","../node_modules/react-redux/es/components/Context.js","../node_modules/react-redux/es/hooks/useReduxContext.js","../node_modules/react-redux/es/hooks/useSelector.js","../node_modules/react-redux/es/utils/useSyncExternalStore.js","../node_modules/react-redux/es/utils/Subscription.js","../node_modules/react-redux/es/utils/useIsomorphicLayoutEffect.js","../node_modules/react-redux/es/components/connect.js","../node_modules/react-redux/es/components/Provider.js","../node_modules/react-redux/es/hooks/useStore.js","../node_modules/react-redux/es/hooks/useDispatch.js","../node_modules/react-redux/es/index.js","../node_modules/react-router-dom/index.tsx","../node_modules/react-router-dom/dom.ts","../node_modules/react-router/lib/use-sync-external-store-shim/useSyncExternalStoreShimClient.ts","../node_modules/react-router/lib/use-sync-external-store-shim/index.ts","../node_modules/react-router/lib/context.ts","../node_modules/react-router/lib/hooks.tsx","../node_modules/react-router/lib/components.tsx","../node_modules/react-transition-group/esm/config.js","../node_modules/react-transition-group/esm/Transition.js","../node_modules/react-transition-group/esm/utils/ChildMapping.js","../node_modules/react-transition-group/esm/TransitionGroup.js","../node_modules/react-transition-group/esm/TransitionGroupContext.js","../node_modules/react-transition-group/esm/utils/reflow.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/@babel/runtime/helpers/esm/objectSpread2.js","../node_modules/redux/es/redux.js","../node_modules/ripemd160/index.js","../node_modules/safe-buffer/index.js","../node_modules/safer-buffer/safer.js","../node_modules/scheduler/cjs/scheduler.production.min.js","../node_modules/scheduler/index.js","../node_modules/set-function-length/index.js","../node_modules/setimmediate/setImmediate.js","../node_modules/sha.js/hash.js","../node_modules/sha.js/index.js","../node_modules/sha.js/sha.js","../node_modules/sha.js/sha1.js","../node_modules/sha.js/sha224.js","../node_modules/sha.js/sha256.js","../node_modules/sha.js/sha384.js","../node_modules/sha.js/sha512.js","../node_modules/shallowequal/index.js","../node_modules/side-channel/index.js","../node_modules/stream-browserify/index.js","../node_modules/stream-browserify/node_modules/readable-stream/errors-browser.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_duplex.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_passthrough.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_readable.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_transform.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/_stream_writable.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/async_iterator.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/buffer_list.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/destroy.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/end-of-stream.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/from-browser.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/pipeline.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/state.js","../node_modules/stream-browserify/node_modules/readable-stream/lib/internal/streams/stream-browser.js","../node_modules/string_decoder/lib/string_decoder.js","../node_modules/strnum/strnum.js","../node_modules/symbol-observable/es/index.js","../node_modules/symbol-observable/es/ponyfill.js","../node_modules/tiny-case/index.js","../node_modules/toposort/index.js","../node_modules/ts-invariant/node_modules/tslib/tslib.es6.js","../node_modules/ts-invariant/src/invariant.ts","../node_modules/url/node_modules/punycode/punycode.js","../node_modules/url/node_modules/qs/lib/formats.js","../node_modules/url/node_modules/qs/lib/index.js","../node_modules/url/node_modules/qs/lib/parse.js","../node_modules/url/node_modules/qs/lib/stringify.js","../node_modules/url/node_modules/qs/lib/utils.js","../node_modules/url/url.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim.production.min.js","../node_modules/use-sync-external-store/cjs/use-sync-external-store-shim/with-selector.production.min.js","../node_modules/use-sync-external-store/shim/index.js","../node_modules/use-sync-external-store/shim/with-selector.js","../node_modules/util-deprecate/browser.js","../node_modules/util/support/isBufferBrowser.js","../node_modules/util/support/types.js","../node_modules/util/util.js","../node_modules/uuid/dist/commonjs-browser/index.js","../node_modules/uuid/dist/commonjs-browser/md5.js","../node_modules/uuid/dist/commonjs-browser/native.js","../node_modules/uuid/dist/commonjs-browser/nil.js","../node_modules/uuid/dist/commonjs-browser/parse.js","../node_modules/uuid/dist/commonjs-browser/regex.js","../node_modules/uuid/dist/commonjs-browser/rng.js","../node_modules/uuid/dist/commonjs-browser/sha1.js","../node_modules/uuid/dist/commonjs-browser/stringify.js","../node_modules/uuid/dist/commonjs-browser/v1.js","../node_modules/uuid/dist/commonjs-browser/v3.js","../node_modules/uuid/dist/commonjs-browser/v35.js","../node_modules/uuid/dist/commonjs-browser/v4.js","../node_modules/uuid/dist/commonjs-browser/v5.js","../node_modules/uuid/dist/commonjs-browser/validate.js","../node_modules/uuid/dist/commonjs-browser/version.js","../node_modules/void-elements/index.js","../node_modules/which-typed-array/index.js","../node_modules/yup/index.esm.js","../node_modules/zen-observable/index.js","../node_modules/zen-observable/lib/Observable.js","../node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/asyncToGenerator.js","../node_modules/@babel/runtime/helpers/defineProperty.js","../node_modules/@babel/runtime/helpers/interopRequireDefault.js","../node_modules/@babel/runtime/helpers/iterableToArray.js","../node_modules/@babel/runtime/helpers/nonIterableRest.js","../node_modules/@babel/runtime/helpers/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/regeneratorRuntime.js","../node_modules/@babel/runtime/helpers/toArray.js","../node_modules/@babel/runtime/helpers/toConsumableArray.js","../node_modules/@babel/runtime/helpers/toPrimitive.js","../node_modules/@babel/runtime/helpers/toPropertyKey.js","../node_modules/@babel/runtime/helpers/typeof.js","../node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../node_modules/@babel/runtime/regenerator/index.js","../node_modules/available-typed-arrays/index.js","../node_modules/core-js/internals/a-callable.js","../node_modules/core-js/internals/an-object.js","../node_modules/core-js/internals/array-includes.js","../node_modules/core-js/internals/array-slice.js","../node_modules/core-js/internals/classof-raw.js","../node_modules/core-js/internals/copy-constructor-properties.js","../node_modules/core-js/internals/create-non-enumerable-property.js","../node_modules/core-js/internals/create-property-descriptor.js","../node_modules/core-js/internals/define-built-in-accessor.js","../node_modules/core-js/internals/define-built-in.js","../node_modules/core-js/internals/define-global-property.js","../node_modules/core-js/internals/descriptors.js","../node_modules/core-js/internals/document-all.js","../node_modules/core-js/internals/document-create-element.js","../node_modules/core-js/internals/engine-is-bun.js","../node_modules/core-js/internals/engine-is-ios.js","../node_modules/core-js/internals/engine-is-node.js","../node_modules/core-js/internals/engine-user-agent.js","../node_modules/core-js/internals/engine-v8-version.js","../node_modules/core-js/internals/enum-bug-keys.js","../node_modules/core-js/internals/export.js","../node_modules/core-js/internals/fails.js","../node_modules/core-js/internals/function-apply.js","../node_modules/core-js/internals/function-bind-context.js","../node_modules/core-js/internals/function-bind-native.js","../node_modules/core-js/internals/function-call.js","../node_modules/core-js/internals/function-name.js","../node_modules/core-js/internals/function-uncurry-this-clause.js","../node_modules/core-js/internals/function-uncurry-this.js","../node_modules/core-js/internals/get-built-in.js","../node_modules/core-js/internals/get-method.js","../node_modules/core-js/internals/global.js","../node_modules/core-js/internals/has-own-property.js","../node_modules/core-js/internals/hidden-keys.js","../node_modules/core-js/internals/html.js","../node_modules/core-js/internals/ie8-dom-define.js","../node_modules/core-js/internals/indexed-object.js","../node_modules/core-js/internals/inspect-source.js","../node_modules/core-js/internals/internal-state.js","../node_modules/core-js/internals/is-callable.js","../node_modules/core-js/internals/is-forced.js","../node_modules/core-js/internals/is-null-or-undefined.js","../node_modules/core-js/internals/is-object.js","../node_modules/core-js/internals/is-pure.js","../node_modules/core-js/internals/is-symbol.js","../node_modules/core-js/internals/length-of-array-like.js","../node_modules/core-js/internals/make-built-in.js","../node_modules/core-js/internals/math-trunc.js","../node_modules/core-js/internals/object-define-property.js","../node_modules/core-js/internals/object-get-own-property-descriptor.js","../node_modules/core-js/internals/object-get-own-property-names.js","../node_modules/core-js/internals/object-get-own-property-symbols.js","../node_modules/core-js/internals/object-is-prototype-of.js","../node_modules/core-js/internals/object-keys-internal.js","../node_modules/core-js/internals/object-property-is-enumerable.js","../node_modules/core-js/internals/ordinary-to-primitive.js","../node_modules/core-js/internals/own-keys.js","../node_modules/core-js/internals/regexp-flags.js","../node_modules/core-js/internals/require-object-coercible.js","../node_modules/core-js/internals/schedulers-fix.js","../node_modules/core-js/internals/shared-key.js","../node_modules/core-js/internals/shared-store.js","../node_modules/core-js/internals/shared.js","../node_modules/core-js/internals/symbol-constructor-detection.js","../node_modules/core-js/internals/task.js","../node_modules/core-js/internals/to-absolute-index.js","../node_modules/core-js/internals/to-indexed-object.js","../node_modules/core-js/internals/to-integer-or-infinity.js","../node_modules/core-js/internals/to-length.js","../node_modules/core-js/internals/to-object.js","../node_modules/core-js/internals/to-primitive.js","../node_modules/core-js/internals/to-property-key.js","../node_modules/core-js/internals/try-to-string.js","../node_modules/core-js/internals/uid.js","../node_modules/core-js/internals/use-symbol-as-uid.js","../node_modules/core-js/internals/v8-prototype-define-bug.js","../node_modules/core-js/internals/validate-arguments-length.js","../node_modules/core-js/internals/weak-map-basic-detection.js","../node_modules/core-js/internals/well-known-symbol.js","../node_modules/core-js/modules/es.regexp.flags.js","../node_modules/core-js/modules/web.clear-immediate.js","../node_modules/core-js/modules/web.immediate.js","../node_modules/core-js/modules/web.set-immediate.js","../node_modules/@babel/runtime/helpers/esm/arrayLikeToArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithHoles.js","../node_modules/@babel/runtime/helpers/esm/assertThisInitialized.js","../node_modules/@babel/runtime/helpers/esm/classCallCheck.js","../node_modules/@babel/runtime/helpers/esm/createClass.js","../node_modules/@babel/runtime/helpers/esm/defineProperty.js","../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/getPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/inheritsLoose.js","../node_modules/@babel/runtime/helpers/esm/iterableToArray.js","../node_modules/@babel/runtime/helpers/esm/nonIterableRest.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js","../node_modules/@babel/runtime/helpers/esm/toConsumableArray.js","../node_modules/@babel/runtime/helpers/esm/arrayWithoutHoles.js","../node_modules/@babel/runtime/helpers/esm/nonIterableSpread.js","../node_modules/@babel/runtime/helpers/esm/toPropertyKey.js","../node_modules/@babel/runtime/helpers/esm/toPrimitive.js","../node_modules/@babel/runtime/helpers/esm/typeof.js","../node_modules/@babel/runtime/helpers/esm/unsupportedIterableToArray.js","../node_modules/@apollo/src/cache/core/cache.ts","../node_modules/@apollo/src/cache/core/types/common.ts","../node_modules/@apollo/src/cache/inmemory/helpers.ts","../node_modules/@apollo/src/cache/inmemory/entityStore.ts","../node_modules/@apollo/src/cache/inmemory/readFromStore.ts","../node_modules/@apollo/src/cache/inmemory/key-extractor.ts","../node_modules/@apollo/src/cache/inmemory/policies.ts","../node_modules/@apollo/src/cache/inmemory/writeToStore.ts","../node_modules/@apollo/src/cache/inmemory/inMemoryCache.ts","../node_modules/@apollo/src/cache/inmemory/object-canon.ts","../node_modules/@apollo/src/cache/inmemory/reactiveVars.ts","../node_modules/@apollo/src/core/LocalState.ts","../node_modules/@apollo/src/core/QueryInfo.ts","../node_modules/@apollo/src/core/QueryManager.ts","../node_modules/@apollo/src/core/ApolloClient.ts","../node_modules/@apollo/src/core/equalByQuery.ts","../node_modules/@apollo/src/core/ObservableQuery.ts","../node_modules/@apollo/src/cache/core/types/Cache.ts","../node_modules/@apollo/src/link/core/empty.ts","../node_modules/@apollo/src/link/core/from.ts","../node_modules/@apollo/src/link/core/split.ts","../node_modules/@apollo/src/link/core/concat.ts","../node_modules/@apollo/src/link/utils/toPromise.ts","../node_modules/@apollo/src/link/utils/fromPromise.ts","../node_modules/@apollo/src/core/index.ts","../node_modules/@apollo/src/core/networkStatus.ts","../node_modules/@apollo/src/errors/index.ts","../node_modules/@apollo/src/link/context/index.ts","../node_modules/@apollo/src/link/core/ApolloLink.ts","../node_modules/@apollo/src/link/utils/createOperation.ts","../node_modules/@apollo/src/link/utils/transformOperation.ts","../node_modules/@apollo/src/link/utils/validateOperation.ts","../node_modules/@apollo/src/link/core/execute.ts","../node_modules/@apollo/src/link/http/HttpLink.ts","../node_modules/@apollo/src/link/http/checkFetcher.ts","../node_modules/@apollo/src/link/http/createHttpLink.ts","../node_modules/@apollo/src/link/utils/filterOperationVariables.ts","../node_modules/@apollo/src/link/http/createSignalIfSupported.ts","../node_modules/@apollo/src/link/http/iterators/nodeStream.ts","../node_modules/@apollo/src/link/http/iterators/reader.ts","../node_modules/@apollo/src/link/http/responseIterator.ts","../node_modules/@apollo/src/link/http/iterators/async.ts","../node_modules/@apollo/src/link/http/iterators/promise.ts","../node_modules/@apollo/src/link/http/parseAndCheckHttpResponse.ts","../node_modules/@apollo/src/link/http/rewriteURIForGET.ts","../node_modules/@apollo/src/link/http/selectHttpOptionsAndBody.ts","../node_modules/@apollo/src/link/http/selectURI.ts","../node_modules/@apollo/src/link/http/serializeFetchParameter.ts","../node_modules/@apollo/src/link/utils/fromError.ts","../node_modules/@apollo/src/link/utils/throwServerError.ts","../node_modules/@apollo/client/node_modules/@wry/equality/src/index.ts","../node_modules/@apollo/client/node_modules/ts-invariant/src/invariant.ts","../node_modules/@apollo/client/node_modules/zen-observable-ts/module.js","../node_modules/@apollo/src/react/context/ApolloContext.ts","../node_modules/@apollo/src/react/hooks/useApolloClient.ts","../node_modules/@apollo/src/react/hooks/useSyncExternalStore.ts","../node_modules/@apollo/src/react/hooks/useQuery.ts","../node_modules/@apollo/src/react/parser/index.ts","../node_modules/@apollo/src/utilities/common/arrays.ts","../node_modules/@apollo/src/utilities/common/canUse.ts","../node_modules/@apollo/src/utilities/common/cloneDeep.ts","../node_modules/@apollo/src/utilities/common/compact.ts","../node_modules/@apollo/src/utilities/common/errorHandling.ts","../node_modules/@apollo/src/utilities/common/incrementalResult.ts","../node_modules/@apollo/src/utilities/common/makeUniqueId.ts","../node_modules/@apollo/src/utilities/common/maybeDeepFreeze.ts","../node_modules/@apollo/src/utilities/common/mergeDeep.ts","../node_modules/@apollo/src/utilities/common/mergeOptions.ts","../node_modules/@apollo/src/utilities/common/objects.ts","../node_modules/@apollo/src/utilities/common/stringifyForDisplay.ts","../node_modules/@apollo/src/utilities/globals/maybe.ts","../node_modules/@apollo/src/utilities/globals/global.ts","../node_modules/@apollo/src/utilities/globals/invariantWrappers.ts","../node_modules/@apollo/src/utilities/globals/index.ts","../node_modules/@apollo/src/utilities/graphql/DocumentTransform.ts","../node_modules/@apollo/src/utilities/graphql/directives.ts","../node_modules/@apollo/src/utilities/graphql/fragments.ts","../node_modules/@apollo/src/utilities/graphql/getFromAST.ts","../node_modules/@apollo/src/utilities/graphql/print.ts","../node_modules/@apollo/src/utilities/graphql/storeUtils.ts","../node_modules/@apollo/src/utilities/graphql/transform.ts","../node_modules/@apollo/src/utilities/graphql/operations.ts","../node_modules/@apollo/src/utilities/policies/pagination.ts","../node_modules/@apollo/src/utilities/promises/decoration.ts","../node_modules/@apollo/src/utilities/common/omitDeep.ts","../node_modules/@apollo/src/utilities/common/stripTypename.ts","../node_modules/@apollo/src/utilities/observables/Concast.ts","../node_modules/@apollo/src/utilities/observables/asyncMap.ts","../node_modules/@apollo/src/utilities/observables/iteration.ts","../node_modules/@apollo/src/utilities/observables/subclassing.ts","../node_modules/@apollo/src/version.ts","../node_modules/@mui/material/node_modules/@mui/system/node_modules/clsx/dist/clsx.mjs","../node_modules/@wry/context/src/slot.ts","../node_modules/@wry/context/src/index.ts","../node_modules/@wry/trie/src/index.ts","../node_modules/@kurkle/color/dist/color.esm.js","../node_modules/chart.js/src/helpers/helpers.core.ts","../node_modules/chart.js/src/helpers/helpers.math.ts","../node_modules/chart.js/src/helpers/helpers.collection.ts","../node_modules/chart.js/src/helpers/helpers.extras.ts","../node_modules/chart.js/src/helpers/helpers.easing.ts","../node_modules/chart.js/src/helpers/helpers.color.ts","../node_modules/chart.js/src/core/core.animations.defaults.js","../node_modules/chart.js/src/helpers/helpers.intl.ts","../node_modules/chart.js/src/core/core.ticks.js","../node_modules/chart.js/src/core/core.defaults.js","../node_modules/chart.js/src/core/core.layouts.defaults.js","../node_modules/chart.js/src/core/core.scale.defaults.js","../node_modules/chart.js/src/helpers/helpers.canvas.js","../node_modules/chart.js/src/helpers/helpers.options.ts","../node_modules/chart.js/src/helpers/helpers.config.js","../node_modules/chart.js/src/helpers/helpers.curve.ts","../node_modules/chart.js/src/helpers/helpers.dom.ts","../node_modules/chart.js/src/helpers/helpers.interpolation.ts","../node_modules/chart.js/src/helpers/helpers.rtl.ts","../node_modules/chart.js/src/helpers/helpers.segment.js","../node_modules/chart.js/src/core/core.animator.js","../node_modules/chart.js/src/core/core.animation.js","../node_modules/chart.js/src/core/core.animations.js","../node_modules/chart.js/src/core/core.datasetController.js","../node_modules/chart.js/src/controllers/controller.bar.js","../node_modules/chart.js/src/controllers/controller.doughnut.js","../node_modules/chart.js/src/controllers/controller.line.js","../node_modules/chart.js/src/controllers/controller.polarArea.js","../node_modules/chart.js/src/controllers/controller.pie.js","../node_modules/chart.js/src/controllers/controller.radar.js","../node_modules/chart.js/src/controllers/controller.bubble.js","../node_modules/chart.js/src/controllers/controller.scatter.js","../node_modules/chart.js/src/core/core.adapters.ts","../node_modules/chart.js/src/core/core.interaction.js","../node_modules/chart.js/src/core/core.layouts.js","../node_modules/chart.js/src/platform/platform.base.js","../node_modules/chart.js/src/platform/platform.basic.js","../node_modules/chart.js/src/platform/platform.dom.js","../node_modules/chart.js/src/core/core.element.ts","../node_modules/chart.js/src/core/core.scale.autoskip.js","../node_modules/chart.js/src/core/core.scale.js","../node_modules/chart.js/src/core/core.typedRegistry.js","../node_modules/chart.js/src/core/core.registry.js","../node_modules/chart.js/src/core/core.plugins.js","../node_modules/chart.js/src/core/core.config.js","../node_modules/chart.js/src/core/core.controller.js","../node_modules/chart.js/src/platform/index.js","../node_modules/chart.js/src/elements/element.arc.ts","../node_modules/chart.js/src/elements/element.line.js","../node_modules/chart.js/src/elements/element.point.ts","../node_modules/chart.js/src/elements/element.bar.js","../node_modules/chart.js/src/plugins/plugin.colors.ts","../node_modules/chart.js/src/plugins/plugin.decimation.js","../node_modules/chart.js/src/plugins/plugin.filler/filler.segment.js","../node_modules/chart.js/src/plugins/plugin.filler/filler.helper.js","../node_modules/chart.js/src/plugins/plugin.filler/filler.options.js","../node_modules/chart.js/src/plugins/plugin.filler/filler.target.stack.js","../node_modules/chart.js/src/plugins/plugin.filler/simpleArc.js","../node_modules/chart.js/src/plugins/plugin.filler/filler.target.js","../node_modules/chart.js/src/plugins/plugin.filler/filler.drawing.js","../node_modules/chart.js/src/plugins/plugin.filler/index.js","../node_modules/chart.js/src/plugins/plugin.legend.js","../node_modules/chart.js/src/plugins/plugin.title.js","../node_modules/chart.js/src/plugins/plugin.subtitle.js","../node_modules/chart.js/src/plugins/plugin.tooltip.js","../node_modules/chart.js/src/scales/scale.category.js","../node_modules/chart.js/src/scales/scale.linearbase.js","../node_modules/chart.js/src/scales/scale.linear.js","../node_modules/chart.js/src/scales/scale.logarithmic.js","../node_modules/chart.js/src/scales/scale.radialLinear.js","../node_modules/chart.js/src/scales/scale.time.js","../node_modules/chart.js/src/scales/scale.timeseries.js","../node_modules/chart.js/src/index.ts","../node_modules/graphql/error/GraphQLError.mjs","../node_modules/graphql/error/syntaxError.mjs","../node_modules/graphql/version.mjs","../node_modules/graphql/jsutils/isPromise.mjs","../node_modules/graphql/polyfills/find.mjs","../node_modules/graphql/polyfills/objectValues.mjs","../node_modules/graphql/error/locatedError.mjs","../node_modules/graphql/utilities/assertValidName.mjs","../node_modules/graphql/polyfills/objectEntries.mjs","../node_modules/graphql/jsutils/keyMap.mjs","../node_modules/graphql/jsutils/mapValue.mjs","../node_modules/graphql/jsutils/toObjMap.mjs","../node_modules/graphql/jsutils/keyValMap.mjs","../node_modules/graphql/jsutils/didYouMean.mjs","../node_modules/graphql/jsutils/identityFunc.mjs","../node_modules/graphql/jsutils/naturalCompare.mjs","../node_modules/graphql/jsutils/suggestionList.mjs","../node_modules/graphql/utilities/valueFromASTUntyped.mjs","../node_modules/graphql/type/definition.mjs","../node_modules/graphql/utilities/typeComparators.mjs","../node_modules/graphql/polyfills/arrayFrom.mjs","../node_modules/graphql/polyfills/isFinite.mjs","../node_modules/graphql/jsutils/safeArrayFrom.mjs","../node_modules/graphql/polyfills/isInteger.mjs","../node_modules/graphql/type/scalars.mjs","../node_modules/graphql/utilities/astFromValue.mjs","../node_modules/graphql/type/introspection.mjs","../node_modules/graphql/type/directives.mjs","../node_modules/graphql/type/schema.mjs","../node_modules/graphql/type/validate.mjs","../node_modules/graphql/utilities/typeFromAST.mjs","../node_modules/graphql/utilities/TypeInfo.mjs","../node_modules/graphql/validation/rules/ExecutableDefinitionsRule.mjs","../node_modules/graphql/validation/rules/UniqueOperationNamesRule.mjs","../node_modules/graphql/validation/rules/LoneAnonymousOperationRule.mjs","../node_modules/graphql/validation/rules/SingleFieldSubscriptionsRule.mjs","../node_modules/graphql/validation/rules/KnownTypeNamesRule.mjs","../node_modules/graphql/validation/rules/FragmentsOnCompositeTypesRule.mjs","../node_modules/graphql/validation/rules/VariablesAreInputTypesRule.mjs","../node_modules/graphql/validation/rules/ScalarLeafsRule.mjs","../node_modules/graphql/validation/rules/FieldsOnCorrectTypeRule.mjs","../node_modules/graphql/validation/rules/UniqueFragmentNamesRule.mjs","../node_modules/graphql/validation/rules/KnownFragmentNamesRule.mjs","../node_modules/graphql/validation/rules/NoUnusedFragmentsRule.mjs","../node_modules/graphql/validation/rules/PossibleFragmentSpreadsRule.mjs","../node_modules/graphql/validation/rules/NoFragmentCyclesRule.mjs","../node_modules/graphql/validation/rules/UniqueVariableNamesRule.mjs","../node_modules/graphql/validation/rules/NoUndefinedVariablesRule.mjs","../node_modules/graphql/validation/rules/NoUnusedVariablesRule.mjs","../node_modules/graphql/validation/rules/KnownDirectivesRule.mjs","../node_modules/graphql/validation/rules/UniqueDirectivesPerLocationRule.mjs","../node_modules/graphql/validation/rules/KnownArgumentNamesRule.mjs","../node_modules/graphql/validation/rules/UniqueArgumentNamesRule.mjs","../node_modules/graphql/validation/rules/ValuesOfCorrectTypeRule.mjs","../node_modules/graphql/validation/rules/ProvidedRequiredArgumentsRule.mjs","../node_modules/graphql/validation/rules/VariablesInAllowedPositionRule.mjs","../node_modules/graphql/validation/rules/OverlappingFieldsCanBeMergedRule.mjs","../node_modules/graphql/validation/rules/PossibleTypeExtensionsRule.mjs","../node_modules/graphql/validation/rules/UniqueInputFieldNamesRule.mjs","../node_modules/graphql/validation/rules/LoneSchemaDefinitionRule.mjs","../node_modules/graphql/validation/rules/UniqueOperationTypesRule.mjs","../node_modules/graphql/validation/rules/UniqueTypeNamesRule.mjs","../node_modules/graphql/validation/rules/UniqueEnumValueNamesRule.mjs","../node_modules/graphql/validation/rules/UniqueFieldDefinitionNamesRule.mjs","../node_modules/graphql/validation/rules/UniqueDirectiveNamesRule.mjs","../node_modules/graphql/validation/specifiedRules.mjs","../node_modules/graphql/validation/ValidationContext.mjs","../node_modules/graphql/validation/validate.mjs","../node_modules/graphql/jsutils/Path.mjs","../node_modules/graphql/utilities/getOperationRootType.mjs","../node_modules/graphql/jsutils/printPathArray.mjs","../node_modules/graphql/utilities/valueFromAST.mjs","../node_modules/graphql/utilities/coerceInputValue.mjs","../node_modules/graphql/execution/values.mjs","../node_modules/graphql/execution/execute.mjs","../node_modules/graphql/jsutils/promiseReduce.mjs","../node_modules/graphql/jsutils/promiseForObject.mjs","../node_modules/graphql/jsutils/memoize3.mjs","../node_modules/graphql/graphql.mjs","../node_modules/graphql/jsutils/isAsyncIterable.mjs","../node_modules/graphql/subscription/mapAsyncIterator.mjs","../node_modules/graphql/subscription/subscribe.mjs","../node_modules/graphql/validation/rules/custom/NoDeprecatedCustomRule.mjs","../node_modules/graphql/validation/rules/custom/NoSchemaIntrospectionCustomRule.mjs","../node_modules/graphql/error/formatError.mjs","../node_modules/graphql/utilities/getIntrospectionQuery.mjs","../node_modules/graphql/utilities/getOperationAST.mjs","../node_modules/graphql/utilities/introspectionFromSchema.mjs","../node_modules/graphql/utilities/buildClientSchema.mjs","../node_modules/graphql/utilities/extendSchema.mjs","../node_modules/graphql/utilities/buildASTSchema.mjs","../node_modules/graphql/utilities/lexicographicSortSchema.mjs","../node_modules/graphql/utilities/printSchema.mjs","../node_modules/graphql/utilities/concatAST.mjs","../node_modules/graphql/utilities/separateOperations.mjs","../node_modules/graphql/utilities/stripIgnoredCharacters.mjs","../node_modules/graphql/utilities/findBreakingChanges.mjs","../node_modules/graphql/utilities/findDeprecatedUsages.mjs","../node_modules/graphql/jsutils/defineInspect.mjs","../node_modules/graphql/jsutils/devAssert.mjs","../node_modules/graphql/jsutils/inspect.mjs","../node_modules/graphql/jsutils/instanceOf.mjs","../node_modules/graphql/jsutils/invariant.mjs","../node_modules/graphql/jsutils/isObjectLike.mjs","../node_modules/graphql/jsutils/nodejsCustomInspectSymbol.mjs","../node_modules/graphql/language/ast.mjs","../node_modules/graphql/language/blockString.mjs","../node_modules/graphql/language/directiveLocation.mjs","../node_modules/graphql/language/kinds.mjs","../node_modules/graphql/language/lexer.mjs","../node_modules/graphql/language/location.mjs","../node_modules/graphql/language/parser.mjs","../node_modules/graphql/language/predicates.mjs","../node_modules/graphql/language/printLocation.mjs","../node_modules/graphql/language/printer.mjs","../node_modules/graphql/language/source.mjs","../node_modules/graphql/language/tokenKind.mjs","../node_modules/graphql/language/visitor.mjs","../node_modules/graphql/polyfills/symbols.mjs","../node_modules/immutable-tuple/dist/tuple.mjs","../node_modules/lodash-es/_listCacheClear.js","../node_modules/lodash-es/_assocIndexOf.js","../node_modules/lodash-es/_listCacheDelete.js","../node_modules/lodash-es/_listCacheGet.js","../node_modules/lodash-es/_listCacheHas.js","../node_modules/lodash-es/_listCacheSet.js","../node_modules/lodash-es/_ListCache.js","../node_modules/lodash-es/_Map.js","../node_modules/lodash-es/_nativeCreate.js","../node_modules/lodash-es/_hashClear.js","../node_modules/lodash-es/_hashDelete.js","../node_modules/lodash-es/_hashGet.js","../node_modules/lodash-es/_hashHas.js","../node_modules/lodash-es/_hashSet.js","../node_modules/lodash-es/_Hash.js","../node_modules/lodash-es/_mapCacheClear.js","../node_modules/lodash-es/_isKeyable.js","../node_modules/lodash-es/_getMapData.js","../node_modules/lodash-es/_mapCacheDelete.js","../node_modules/lodash-es/_mapCacheGet.js","../node_modules/lodash-es/_mapCacheHas.js","../node_modules/lodash-es/_mapCacheSet.js","../node_modules/lodash-es/_MapCache.js","../node_modules/lodash-es/_stackClear.js","../node_modules/lodash-es/_stackDelete.js","../node_modules/lodash-es/_stackGet.js","../node_modules/lodash-es/_stackHas.js","../node_modules/lodash-es/_stackSet.js","../node_modules/lodash-es/_Stack.js","../node_modules/lodash-es/_Symbol.js","../node_modules/lodash-es/_Uint8Array.js","../node_modules/lodash-es/_arrayEach.js","../node_modules/lodash-es/_baseTimes.js","../node_modules/lodash-es/_arrayLikeKeys.js","../node_modules/lodash-es/_arrayMap.js","../node_modules/lodash-es/_arrayPush.js","../node_modules/lodash-es/_assignValue.js","../node_modules/lodash-es/_baseAssignValue.js","../node_modules/lodash-es/_baseGetAllKeys.js","../node_modules/lodash-es/_getRawTag.js","../node_modules/lodash-es/_objectToString.js","../node_modules/lodash-es/_baseGetTag.js","../node_modules/lodash-es/_baseUnary.js","../node_modules/lodash-es/_cloneArrayBuffer.js","../node_modules/lodash-es/_cloneBuffer.js","../node_modules/lodash-es/_cloneTypedArray.js","../node_modules/lodash-es/_copyArray.js","../node_modules/lodash-es/_copyObject.js","../node_modules/lodash-es/_defineProperty.js","../node_modules/lodash-es/_freeGlobal.js","../node_modules/lodash-es/_getAllKeys.js","../node_modules/lodash-es/_coreJsData.js","../node_modules/lodash-es/_isMasked.js","../node_modules/lodash-es/_baseIsNative.js","../node_modules/lodash-es/_getValue.js","../node_modules/lodash-es/_getNative.js","../node_modules/lodash-es/_getPrototype.js","../node_modules/lodash-es/_arrayFilter.js","../node_modules/lodash-es/_getSymbols.js","../node_modules/lodash-es/_DataView.js","../node_modules/lodash-es/_Promise.js","../node_modules/lodash-es/_Set.js","../node_modules/lodash-es/_WeakMap.js","../node_modules/lodash-es/_getTag.js","../node_modules/lodash-es/_baseCreate.js","../node_modules/lodash-es/_initCloneObject.js","../node_modules/lodash-es/_isIndex.js","../node_modules/lodash-es/_isPrototype.js","../node_modules/lodash-es/_nodeUtil.js","../node_modules/lodash-es/_overArg.js","../node_modules/lodash-es/_root.js","../node_modules/lodash-es/memoize.js","../node_modules/lodash-es/_memoizeCapped.js","../node_modules/lodash-es/_stringToPath.js","../node_modules/lodash-es/_toKey.js","../node_modules/lodash-es/_toSource.js","../node_modules/lodash-es/eq.js","../node_modules/lodash-es/_baseIsArguments.js","../node_modules/lodash-es/isArguments.js","../node_modules/lodash-es/isArray.js","../node_modules/lodash-es/isArrayLike.js","../node_modules/lodash-es/stubFalse.js","../node_modules/lodash-es/isBuffer.js","../node_modules/lodash-es/isFunction.js","../node_modules/lodash-es/isLength.js","../node_modules/lodash-es/isObject.js","../node_modules/lodash-es/isObjectLike.js","../node_modules/lodash-es/isPlainObject.js","../node_modules/lodash-es/isSymbol.js","../node_modules/lodash-es/_baseIsTypedArray.js","../node_modules/lodash-es/isTypedArray.js","../node_modules/lodash-es/_nativeKeys.js","../node_modules/lodash-es/_baseKeys.js","../node_modules/lodash-es/keys.js","../node_modules/lodash-es/_nativeKeysIn.js","../node_modules/lodash-es/_baseKeysIn.js","../node_modules/lodash-es/keysIn.js","../node_modules/lodash-es/stubArray.js","../node_modules/lodash-es/_baseToString.js","../node_modules/lodash-es/toString.js","../node_modules/optimism/src/cache.ts","../node_modules/optimism/src/context.ts","../node_modules/optimism/src/helpers.ts","../node_modules/optimism/src/entry.ts","../node_modules/optimism/src/dep.ts","../node_modules/optimism/src/index.ts","../node_modules/react-chartjs-2/src/utils.ts","../node_modules/react-chartjs-2/src/chart.tsx","../node_modules/react-chartjs-2/src/typedCharts.tsx","../node_modules/html-parse-stringify/src/parse.js","../node_modules/react-i18next/dist/es/utils.js","../node_modules/react-i18next/dist/es/unescape.js","../node_modules/react-i18next/dist/es/defaults.js","../node_modules/react-i18next/dist/es/i18nInstance.js","../node_modules/react-i18next/dist/es/initReactI18next.js","../node_modules/react-i18next/dist/es/context.js","../node_modules/@babel/runtime/helpers/esm/slicedToArray.js","../node_modules/@babel/runtime/helpers/esm/iterableToArrayLimit.js","../node_modules/react-i18next/dist/es/useTranslation.js","../node_modules/tslib/tslib.es6.mjs","../webpack/bootstrap","../webpack/runtime/compat get default export","../webpack/runtime/create fake namespace object","../webpack/runtime/define property getters","../webpack/runtime/ensure chunk","../webpack/runtime/get javascript chunk filename","../webpack/runtime/get mini-css chunk filename","../webpack/runtime/global","../webpack/runtime/harmony module decorator","../webpack/runtime/hasOwnProperty shorthand","../webpack/runtime/load script","../webpack/runtime/make namespace object","../webpack/runtime/node module decorator","../webpack/runtime/publicPath","../webpack/runtime/css loading","../webpack/runtime/jsonp chunk loading","../node_modules/chart.js/auto/auto.js","../node_modules/@mui/private-theming/ThemeProvider/ThemeProvider.js","../node_modules/@mui/material/node_modules/@mui/system/esm/ThemeProvider/ThemeProvider.js","../node_modules/date-fns/esm/_lib/toInteger/index.js","../node_modules/date-fns/esm/_lib/requiredArgs/index.js","../node_modules/date-fns/esm/toDate/index.js","../node_modules/date-fns/esm/addDays/index.js","../node_modules/date-fns/esm/addMilliseconds/index.js","../node_modules/date-fns/esm/addMonths/index.js","../node_modules/date-fns/esm/addYears/index.js","../node_modules/date-fns/esm/compareAsc/index.js","../node_modules/date-fns/esm/differenceInYears/index.js","../node_modules/date-fns/esm/differenceInCalendarYears/index.js","../node_modules/date-fns/esm/endOfDay/index.js","../node_modules/date-fns/esm/endOfMonth/index.js","../node_modules/date-fns/esm/differenceInMonths/index.js","../node_modules/date-fns/esm/differenceInCalendarMonths/index.js","../node_modules/date-fns/esm/isLastDayOfMonth/index.js","../node_modules/date-fns/esm/_lib/roundingMethods/index.js","../node_modules/date-fns/esm/_lib/getTimezoneOffsetInMilliseconds/index.js","../node_modules/date-fns/esm/startOfDay/index.js","../node_modules/date-fns/esm/differenceInCalendarDays/index.js","../node_modules/date-fns/esm/differenceInDays/index.js","../node_modules/date-fns/esm/constants/index.js","../node_modules/date-fns/esm/differenceInMilliseconds/index.js","../node_modules/date-fns/esm/_lib/defaultOptions/index.js","../node_modules/date-fns/esm/endOfWeek/index.js","../node_modules/date-fns/esm/endOfYear/index.js","../node_modules/date-fns/esm/isDate/index.js","../node_modules/date-fns/esm/isValid/index.js","../node_modules/date-fns/esm/subMilliseconds/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCISOWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCISOWeekYear/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeek/index.js","../node_modules/date-fns/esm/_lib/getUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/getUTCWeek/index.js","../node_modules/date-fns/esm/_lib/startOfUTCWeekYear/index.js","../node_modules/date-fns/esm/_lib/addLeadingZeros/index.js","../node_modules/date-fns/esm/_lib/format/lightFormatters/index.js","../node_modules/date-fns/esm/_lib/format/formatters/index.js","../node_modules/date-fns/esm/_lib/getUTCDayOfYear/index.js","../node_modules/date-fns/esm/_lib/format/longFormatters/index.js","../node_modules/date-fns/esm/_lib/protectedTokens/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatDistance/index.js","../node_modules/date-fns/esm/locale/_lib/buildFormatLongFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatLong/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/formatRelative/index.js","../node_modules/date-fns/esm/locale/_lib/buildLocalizeFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/localize/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchFn/index.js","../node_modules/date-fns/esm/locale/en-US/_lib/match/index.js","../node_modules/date-fns/esm/locale/_lib/buildMatchPatternFn/index.js","../node_modules/date-fns/esm/locale/en-US/index.js","../node_modules/date-fns/esm/_lib/defaultLocale/index.js","../node_modules/date-fns/esm/format/index.js","../node_modules/date-fns/esm/getDay/index.js","../node_modules/date-fns/esm/getDaysInMonth/index.js","../node_modules/date-fns/esm/isAfter/index.js","../node_modules/date-fns/esm/isBefore/index.js","../node_modules/date-fns/esm/startOfHour/index.js","../node_modules/date-fns/esm/_lib/assign/index.js","../node_modules/date-fns/esm/parse/_lib/Setter.js","../node_modules/date-fns/esm/parse/_lib/Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/EraParser.js","../node_modules/date-fns/esm/parse/_lib/constants.js","../node_modules/date-fns/esm/parse/_lib/utils.js","../node_modules/date-fns/esm/parse/_lib/parsers/YearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ExtendedYearParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/QuarterParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneQuarterParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/MonthParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneMonthParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalWeekParser.js","../node_modules/date-fns/esm/_lib/setUTCWeek/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOWeekParser.js","../node_modules/date-fns/esm/_lib/setUTCISOWeek/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/DateParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayOfYearParser.js","../node_modules/date-fns/esm/_lib/setUTCDay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/LocalDayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/StandAloneLocalDayParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISODayParser.js","../node_modules/date-fns/esm/_lib/setUTCISODay/index.js","../node_modules/date-fns/esm/parse/_lib/parsers/AMPMParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/AMPMMidnightParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/DayPeriodParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour1to12Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour0to23Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour0To11Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/Hour1To24Parser.js","../node_modules/date-fns/esm/parse/_lib/parsers/MinuteParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/SecondParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/FractionOfSecondParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneWithZParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/ISOTimezoneParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/TimestampSecondsParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/TimestampMillisecondsParser.js","../node_modules/date-fns/esm/parse/_lib/parsers/index.js","../node_modules/date-fns/esm/parse/index.js","../node_modules/date-fns/esm/startOfMonth/index.js","../node_modules/date-fns/esm/startOfWeek/index.js","../node_modules/date-fns/esm/startOfYear/index.js","../node_modules/date-fns/esm/parseISO/index.js","../node_modules/@mui/x-date-pickers/node_modules/@date-io/date-fns/build/index.esm.js","../node_modules/date-fns/esm/formatISO/index.js","../node_modules/date-fns/esm/addSeconds/index.js","../node_modules/date-fns/esm/addMinutes/index.js","../node_modules/date-fns/esm/addHours/index.js","../node_modules/date-fns/esm/addWeeks/index.js","../node_modules/date-fns/esm/differenceInQuarters/index.js","../node_modules/date-fns/esm/differenceInWeeks/index.js","../node_modules/date-fns/esm/differenceInHours/index.js","../node_modules/date-fns/esm/differenceInMinutes/index.js","../node_modules/date-fns/esm/differenceInSeconds/index.js","../node_modules/date-fns/esm/getHours/index.js","../node_modules/date-fns/esm/setHours/index.js","../node_modules/date-fns/esm/setMinutes/index.js","../node_modules/date-fns/esm/getSeconds/index.js","../node_modules/date-fns/esm/setSeconds/index.js","../node_modules/date-fns/esm/isSameDay/index.js","../node_modules/date-fns/esm/isSameMonth/index.js","../node_modules/date-fns/esm/isSameYear/index.js","../node_modules/date-fns/esm/isSameHour/index.js","../node_modules/date-fns/esm/getYear/index.js","../node_modules/date-fns/esm/setYear/index.js","../node_modules/date-fns/esm/isEqual/index.js","../node_modules/date-fns/esm/isWithinInterval/index.js","../node_modules/date-fns/esm/getMinutes/index.js","../node_modules/date-fns/esm/getDate/index.js","../node_modules/date-fns/esm/setDate/index.js","../node_modules/date-fns/esm/getMonth/index.js","../node_modules/date-fns/esm/setMonth/index.js","../node_modules/date-fns/esm/eachDayOfInterval/index.js","../node_modules/@mui/x-date-pickers/AdapterDateFns/index.js","../node_modules/@babel/runtime/helpers/esm/inherits.js","../node_modules/@babel/runtime/helpers/esm/possibleConstructorReturn.js","../node_modules/i18next/dist/esm/i18next.js","../node_modules/@babel/runtime/helpers/esm/toArray.js","i18n.js","../node_modules/@mui/material/colors/indigo.js","constants.js","theme/variants.js","theme/typography.js","theme/breakpoints.js","theme/components.js","theme/shadows.js","theme/index.js","components/Loader.js","components/Async.js","../node_modules/@mui/material/CssBaseline/CssBaseline.js","../node_modules/@mui/icons-material/esm/Palette.js","../node_modules/@mui/material/ListItemButton/ListItemButton.js","../node_modules/@mui/material/Slide/Slide.js","../node_modules/@mui/material/Drawer/drawerClasses.js","../node_modules/@mui/material/Drawer/Drawer.js","contexts/ThemeContext.js","hooks/useTheme.js","components/Settings.js","components/GlobalStyle.js","layouts/Auth.js","../node_modules/react-feather/dist/icons/search.js","../node_modules/@mui/material/AppBar/appBarClasses.js","../node_modules/@mui/material/AppBar/AppBar.js","../node_modules/@mui/icons-material/esm/Menu.js","../node_modules/@mui/material/ListItemAvatar/listItemAvatarClasses.js","../node_modules/@mui/material/ListItemAvatar/ListItemAvatar.js","../node_modules/react-feather/dist/icons/bell.js","../node_modules/react-feather/dist/icons/server.js","../node_modules/react-feather/dist/icons/user-plus.js","components/navbar/NavbarNotificationsDropdown.js","../node_modules/react-feather/dist/icons/message-square.js","components/navbar/NavbarMessagesDropdown.js","components/navbar/NavbarLanguagesDropdown.js","../node_modules/react-feather/dist/icons/power.js","components/navbar/NavbarUserDropdown.js","components/navbar/Navbar.js","../node_modules/react-feather/dist/icons/sliders.js","../node_modules/react-feather/dist/icons/layout.js","../node_modules/react-feather/dist/icons/grid.js","../node_modules/react-feather/dist/icons/pie-chart.js","../node_modules/react-feather/dist/icons/check-square.js","../node_modules/react-feather/dist/icons/list.js","../node_modules/react-feather/dist/icons/heart.js","../node_modules/react-feather/dist/icons/map.js","../node_modules/react-feather/dist/icons/book-open.js","components/sidebar/dashboardItems.js","vendor/gocampaign-logo-01.svg","components/sidebar/SidebarFooter.js","../node_modules/@mui/material/Collapse/collapseClasses.js","../node_modules/@mui/material/Collapse/Collapse.js","../node_modules/@mui/icons-material/esm/ExpandLess.js","../node_modules/@mui/icons-material/esm/ExpandMore.js","components/sidebar/SidebarNavListItem.js","components/sidebar/reduceChildRoutes.js","components/sidebar/SidebarNavList.js","components/sidebar/SidebarNavSection.js","components/sidebar/SidebarNav.js","components/sidebar/Sidebar.js","components/Footer.js","layouts/Dashboard.js","components/navbar/NavbarSimple.js","../node_modules/react-feather/dist/icons/info.js","../node_modules/react-feather/dist/icons/code.js","../node_modules/react-feather/dist/icons/users.js","../node_modules/react-feather/dist/icons/shield.js","../node_modules/react-feather/dist/icons/droplet.js","../node_modules/react-feather/dist/icons/globe.js","../node_modules/react-feather/dist/icons/mail.js","components/sidebar/docItems.js","layouts/Doc.js","layouts/Presentation.js","components/guards/AuthGuard.js","../node_modules/@mui/material/DialogContentText/dialogContentTextClasses.js","../node_modules/@mui/material/DialogContentText/DialogContentText.js","components/auth/NewPasswordReset.js","components/auth/RedirectReset.js","components/auth/SignIn.js","pages/auth/SignIn.js","components/auth/SignUp.js","pages/auth/SignUp.js","components/auth/ConfirmEmail.js","pages/auth/ConfirmEmail.js","components/auth/ChangePassword.js","pages/auth/ChangePassword.js","components/auth/ResetPassword.js","pages/auth/ResetPassword.js","components/auth/ResetPasswordVerification.js","pages/auth/ResetPasswordVerification.js","pages/auth/Page404.js","pages/auth/Page500.js","../node_modules/@mui/material/Accordion/AccordionContext.js","../node_modules/@mui/material/Accordion/accordionClasses.js","../node_modules/@mui/material/Accordion/Accordion.js","../node_modules/@mui/material/AccordionSummary/accordionSummaryClasses.js","../node_modules/@mui/material/AccordionSummary/AccordionSummary.js","../node_modules/@mui/material/AccordionDetails/accordionDetailsClasses.js","../node_modules/@mui/material/AccordionDetails/AccordionDetails.js","pages/components/Accordion.js","../node_modules/@mui/material/AlertTitle/alertTitleClasses.js","../node_modules/@mui/material/AlertTitle/AlertTitle.js","../node_modules/@mui/icons-material/esm/Close.js","pages/components/Alerts.js","../node_modules/@mui/material/colors/pink.js","../node_modules/@mui/material/colors/deepOrange.js","../node_modules/@mui/material/colors/deepPurple.js","../node_modules/@mui/icons-material/esm/Folder.js","../node_modules/@mui/icons-material/esm/Pageview.js","../node_modules/@mui/icons-material/esm/Assignment.js","pages/components/Avatars.js","../node_modules/@mui/material/FormGroup/formGroupClasses.js","../node_modules/@mui/material/FormGroup/FormGroup.js","../node_modules/@mui/icons-material/esm/Mail.js","pages/components/Badges.js","../node_modules/@mui/icons-material/esm/Edit.js","../node_modules/@mui/icons-material/esm/Navigation.js","../node_modules/@mui/icons-material/esm/Delete.js","../node_modules/@mui/icons-material/esm/CloudUpload.js","../node_modules/@mui/icons-material/esm/KeyboardVoice.js","../node_modules/@mui/icons-material/esm/Save.js","pages/components/Buttons.js","../node_modules/@mui/material/CardMedia/cardMediaClasses.js","../node_modules/@mui/material/CardMedia/CardMedia.js","../node_modules/@mui/material/CardActions/cardActionsClasses.js","../node_modules/@mui/material/CardActions/CardActions.js","../node_modules/@mui/material/CardActionArea/cardActionAreaClasses.js","../node_modules/@mui/material/CardActionArea/CardActionArea.js","pages/components/Cards.js","../node_modules/@mui/material/Stack/Stack.js","../node_modules/@mui/icons-material/esm/Face.js","../node_modules/@mui/icons-material/esm/Done.js","../node_modules/@mui/icons-material/esm/TagFaces.js","pages/components/Chips.js","../node_modules/@mui/icons-material/esm/Person.js","pages/components/Dialogs.js","../node_modules/@mui/material/ListItemIcon/ListItemIcon.js","../node_modules/@mui/icons-material/esm/Inbox.js","../node_modules/@mui/icons-material/esm/Drafts.js","../node_modules/@mui/icons-material/esm/Send.js","../node_modules/@mui/icons-material/esm/StarBorder.js","../node_modules/@mui/icons-material/esm/Image.js","../node_modules/@mui/icons-material/esm/Work.js","../node_modules/@mui/icons-material/esm/BeachAccess.js","pages/components/ListsX.js","../node_modules/@mui/icons-material/esm/MoveToInbox.js","pages/components/Menus.js","../node_modules/@mui/material/Pagination/paginationClasses.js","../node_modules/@mui/material/usePagination/usePagination.js","../node_modules/@mui/material/PaginationItem/paginationItemClasses.js","../node_modules/@mui/material/internal/svg-icons/NavigateBefore.js","../node_modules/@mui/material/internal/svg-icons/NavigateNext.js","../node_modules/@mui/material/PaginationItem/PaginationItem.js","../node_modules/@mui/material/Pagination/Pagination.js","pages/components/Pagination.js","pages/components/Progress.js","pages/components/Snackbars.js","../node_modules/@mui/material/Zoom/Zoom.js","pages/components/Tooltips.js","../node_modules/@mui/material/RadioGroup/RadioGroupContext.js","../node_modules/@mui/material/RadioGroup/RadioGroup.js","../node_modules/@mui/material/internal/svg-icons/RadioButtonUnchecked.js","../node_modules/@mui/material/internal/svg-icons/RadioButtonChecked.js","../node_modules/@mui/material/Radio/RadioButtonIcon.js","../node_modules/@mui/material/Radio/radioClasses.js","../node_modules/@mui/material/Radio/Radio.js","../node_modules/@mui/material/RadioGroup/useRadioGroup.js","pages/forms/SelectionControls.js","pages/forms/Selects.js","pages/forms/TextFields.js","../node_modules/@mui/icons-material/esm/AccessAlarm.js","../node_modules/@mui/icons-material/esm/AccessAlarms.js","../node_modules/@mui/icons-material/esm/Accessibility.js","../node_modules/@mui/icons-material/esm/AccessibilityNew.js","../node_modules/@mui/icons-material/esm/Accessible.js","../node_modules/@mui/icons-material/esm/AccessibleForward.js","../node_modules/@mui/icons-material/esm/AccessTime.js","../node_modules/@mui/icons-material/esm/AccountBalance.js","../node_modules/@mui/icons-material/esm/AccountBalanceWallet.js","../node_modules/@mui/icons-material/esm/AccountBox.js","../node_modules/@mui/icons-material/esm/AccountCircle.js","../node_modules/@mui/icons-material/esm/AcUnit.js","../node_modules/@mui/icons-material/esm/Adb.js","../node_modules/@mui/icons-material/esm/AddAlarm.js","../node_modules/@mui/icons-material/esm/AddAlert.js","../node_modules/@mui/icons-material/esm/AddAPhoto.js","../node_modules/@mui/icons-material/esm/AddBox.js","../node_modules/@mui/icons-material/esm/AddCircle.js","../node_modules/@mui/icons-material/esm/AddCircleOutline.js","pages/icons/MaterialIcons.js","pages/pages/Blank.js","../node_modules/@mui/system/esm/display.js","pages/pages/InvoiceDetails.js","../node_modules/@mui/material/internal/svg-icons/ArrowDownward.js","../node_modules/@mui/material/TableSortLabel/tableSortLabelClasses.js","../node_modules/@mui/material/TableSortLabel/TableSortLabel.js","../node_modules/@mui/material/TableContainer/tableContainerClasses.js","../node_modules/@mui/material/TableContainer/TableContainer.js","../node_modules/@mui/icons-material/esm/Archive.js","../node_modules/@mui/icons-material/esm/RemoveRedEye.js","pages/pages/InvoiceList.js","pages/pages/Orders.js","pages/pages/Pricing.js","pages/pages/Settings.js","pages/pages/Projects.js","pages/pages/Chat.js","../node_modules/@mui/material/node_modules/@mui/system/esm/styled.js","../node_modules/@mui/material/node_modules/@mui/system/esm/Container/createContainer.js","../node_modules/@mui/material/Container/Container.js","pages/pages/APIExamples.js","../node_modules/@apollo/src/react/hooks/useSubscription.ts","pages/tables/SimpleTable.js","pages/tables/AdvancedTable.js","pages/docs/Welcome.js","../node_modules/react-syntax-highlighter/dist/esm/create-element.js","../node_modules/react-syntax-highlighter/dist/esm/checkForListedLanguage.js","../node_modules/react-syntax-highlighter/dist/esm/highlight.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/default-style.js","../node_modules/react-syntax-highlighter/dist/esm/default-highlight.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutProperties.js","../node_modules/react-syntax-highlighter/dist/esm/languages/hljs/supported-languages.js","../node_modules/react-syntax-highlighter/dist/esm/styles/hljs/vs2015.js","components/Code.js","pages/docs/GettingStarted.js","pages/docs/Routing.js","pages/docs/auth/Auth0.js","pages/docs/auth/Cognito.js","pages/docs/auth/Firebase.js","pages/docs/auth/JWT.js","pages/docs/Guards.js","pages/docs/EnvironmentVariables.js","pages/docs/Deployment.js","pages/docs/Theming.js","pages/docs/APICalls.js","hooks/useAppSelector.js","hooks/useAppDispatch.js","redux/slices/counter.js","pages/docs/Redux.js","pages/docs/Internationalization.js","pages/docs/ESLintAndPrettier.js","pages/docs/Support.js","pages/docs/Changelog.js","vendor/gocampaign-logo-full.svg","pages/presentation/Landing/AppBar.js","../node_modules/react-animation-on-scroll/src/components/AnimationOnScroll.tsx","../node_modules/@mui/icons-material/esm/Visibility.js","pages/presentation/Landing/Introduction.js","pages/presentation/Landing/Demos.js","pages/presentation/Landing/JoinUs.js","pages/presentation/Landing/index.js","pages/presentation/Landing/Integrations.js","../node_modules/react-feather/dist/icons/plus-circle.js","../node_modules/react-feather/dist/icons/figma.js","pages/presentation/Features/Features.js","pages/presentation/Features/index.js","pages/presentation/Landing/Pricing.js","pages/presentation/Contact/Contact.js","pages/presentation/Contact/index.js","pages/protected/ProtectedPage.js","routes.js","../node_modules/@redux-devtools/extension/lib/esm/index.js","redux/store.js","../node_modules/@emotion/cache/node_modules/stylis/src/Utility.js","../node_modules/@emotion/cache/node_modules/stylis/src/Tokenizer.js","../node_modules/@emotion/cache/node_modules/stylis/src/Enum.js","../node_modules/@emotion/cache/node_modules/stylis/src/Serializer.js","../node_modules/@emotion/cache/node_modules/stylis/src/Parser.js","../node_modules/@emotion/cache/dist/emotion-cache.browser.esm.js","../node_modules/@emotion/cache/node_modules/stylis/src/Middleware.js","utils/createEmotionCache.js","App.js","utils/reportWebVitals.js","../node_modules/@apollo/src/react/context/ApolloProvider.tsx","index.js"],"sourcesContent":["// WARNING: DO NOT EDIT. This file is automatically generated by AWS Amplify. It will be overwritten.\n\nconst awsSettings = {\n aws_appsync_graphqlEndpoint: \"https://6n6g7552xzb5zca3yhhnicxsai.appsync-api.us-east-1.amazonaws.com/graphql\",\n aws_appsync_region: \"us-east-1\",\n //aws_appsync_authenticationType: \"API_KEY\",\n aws_appsync_authenticationType: \"API_KEY\",\n aws_appsync_apiKey: \"da2-e2g4qs4oo5flnab2f2ndnk43fq\",\n aws_api_auth: \"https://adr8j2blj5.execute-api.us-east-1.amazonaws.com/dev/users\",\n ag_grid_license:\n \"Using_this_AG_Grid_Enterprise_key_( AG-046700 )_in_excess_of_the_licence_granted_is_not_permitted___Please_report_misuse_to_( legal@ag-grid.com )___For_help_with_changing_this_key_please_contact_( info@ag-grid.com )___( AIM GPT LLC )_is_granted_a_( Single Application )_Developer_License_for_the_application_( AIMGPT )_only_for_( 1 )_Front-End_JavaScript_developer___All_Front-End_JavaScript_developers_working_on_( AIMGPT )_need_to_be_licensed___( AIMGPT )_has_not_been_granted_a_Deployment_License_Add-on___This_key_works_with_AG_Grid_Enterprise_versions_released_before_( 20 August 2024 )____[v2]_MTcyNDEwODQwMDAwMA==53f96447575f10805eb83d1b73786426\",\n};\n\nexport default awsSettings;\n","/**\n * The code was extracted from:\n * https://github.com/davidchambers/Base64.js\n */\n\nvar chars = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\nfunction InvalidCharacterError(message) {\n this.message = message;\n}\n\nInvalidCharacterError.prototype = new Error();\nInvalidCharacterError.prototype.name = \"InvalidCharacterError\";\n\nfunction polyfill(input) {\n var str = String(input).replace(/=+$/, \"\");\n if (str.length % 4 == 1) {\n throw new InvalidCharacterError(\n \"'atob' failed: The string to be decoded is not correctly encoded.\"\n );\n }\n for (\n // initialize result and counters\n var bc = 0, bs, buffer, idx = 0, output = \"\";\n // get next character\n (buffer = str.charAt(idx++));\n // character found in table? initialize bit storage and add its ascii value;\n ~buffer &&\n ((bs = bc % 4 ? bs * 64 + buffer : buffer),\n // and if not first of each 4 characters,\n // convert the first 8 bits to one ascii character\n bc++ % 4) ?\n (output += String.fromCharCode(255 & (bs >> ((-2 * bc) & 6)))) :\n 0\n ) {\n // try to find character in table (0-63, not found => -1)\n buffer = chars.indexOf(buffer);\n }\n return output;\n}\n\nexport default (typeof window !== \"undefined\" &&\n window.atob &&\n window.atob.bind(window)) ||\npolyfill;","import atob from \"./atob\";\n\nfunction b64DecodeUnicode(str) {\n return decodeURIComponent(\n atob(str).replace(/(.)/g, function(m, p) {\n var code = p.charCodeAt(0).toString(16).toUpperCase();\n if (code.length < 2) {\n code = \"0\" + code;\n }\n return \"%\" + code;\n })\n );\n}\n\nexport default function(str) {\n var output = str.replace(/-/g, \"+\").replace(/_/g, \"/\");\n switch (output.length % 4) {\n case 0:\n break;\n case 2:\n output += \"==\";\n break;\n case 3:\n output += \"=\";\n break;\n default:\n throw \"Illegal base64url string!\";\n }\n\n try {\n return b64DecodeUnicode(output);\n } catch (err) {\n return atob(output);\n }\n}","\"use strict\";\n\nimport base64_url_decode from \"./base64_url_decode\";\n\nexport function InvalidTokenError(message) {\n this.message = message;\n}\n\nInvalidTokenError.prototype = new Error();\nInvalidTokenError.prototype.name = \"InvalidTokenError\";\n\nexport default function(token, options) {\n if (typeof token !== \"string\") {\n throw new InvalidTokenError(\"Invalid token specified\");\n }\n\n options = options || {};\n var pos = options.header === true ? 0 : 1;\n try {\n return JSON.parse(base64_url_decode(token.split(\".\")[pos]));\n } catch (e) {\n throw new InvalidTokenError(\"Invalid token specified: \" + e.message);\n }\n}","import jwtDecode from \"jwt-decode\";\r\nimport { verify, sign } from \"jsonwebtoken\";\r\nimport axios from \"./axios\";\r\n\r\nconst isValidToken = (accessToken) => {\r\n if (!accessToken) {\r\n return false;\r\n }\r\n const decoded = jwtDecode(accessToken);\r\n const currentTime = Date.now() / 1000;\r\n\r\n return decoded.exp > currentTime;\r\n};\r\n\r\n// const handleTokenExpired = (exp) => {\r\n// let expiredTimer;\r\n\r\n// window.clearTimeout(expiredTimer);\r\n// const currentTime = Date.now();\r\n// const timeLeft = exp * 1000 - currentTime;\r\n// console.log(timeLeft);\r\n// expiredTimer = window.setTimeout(() => {\r\n// console.log('expired');\r\n// }, timeLeft);\r\n// };\r\n\r\nconst setSession = (authToken) => {\r\n if (authToken) {\r\n localStorage.setItem(\"accessToken\", authToken.AccessToken);\r\n localStorage.setItem(\"authToken\", JSON.stringify(authToken));\r\n axios.defaults.headers.common.Authorization = `${authToken.TokenType} ${authToken.AccessToken}`;\r\n // This function below will handle when token is expired\r\n // const { exp } = jwtDecode(accessToken);\r\n // handleTokenExpired(exp);\r\n } else {\r\n localStorage.removeItem(\"accessToken\");\r\n localStorage.removeItem(\"authToken\");\r\n delete axios.defaults.headers.common.Authorization;\r\n }\r\n};\r\n\r\nexport { verify, sign, isValidToken, setSession };\r\n","/*\r\n *******************************************************************************\r\n *\r\n * Filename: @/contexts/shared/constants.js\r\n *\r\n * Syntax: NA\r\n *\r\n * Synopsis: Constants for contexts.\r\n *\r\n * Author: Norman J. Nolasco [ Archetact Software ]\r\n *\r\n * Created: Saturday, August 19, 2023 - 10:00 PM (CST)\r\n *\r\n * Notes:\r\n *\r\n * Revisions:\r\n * 2023/08/19 NJN Initial Build\r\n *\r\n * Copyright (c) 2023 - Archetact Software - All Rights Reserved.\r\n * Unauthorized copying of this file via any medium is strictly prohibited.\r\n * Proprietary and Confidential.\r\n *\r\n *******************************************************************************\r\n */\r\n\r\nexport const INITIALIZE = \"INITIALIZE\";\r\nexport const SIGN_IN = \"SIGN_IN\";\r\nexport const SIGN_OUT = \"SIGN_OUT\";\r\nexport const SIGN_UP = \"SIGN_UP\";\r\nexport const SAVE_EMAIL = \"SAVE_EMAIL\";\r\nexport const NEW_PASSWORD = \"NEW_PASSWORD\";\r\n","/*\r\n *******************************************************************************\r\n *\r\n * Filename: @/contexts/shared/initializer.js\r\n *\r\n * Syntax: NA\r\n *\r\n * Synopsis: Initialize for contexts.\r\n *\r\n * Author: Norman J. Nolasco [ Archetact Software ]\r\n *\r\n * Created: Saturday, August 19, 2023 - 10:00 PM (CST)\r\n *\r\n * Notes:\r\n *\r\n * Revisions:\r\n * 2023/08/19 NJN Initial Build\r\n *\r\n * Copyright (c) 2023 - Archetact Software - All Rights Reserved.\r\n * Unauthorized copying of this file via any medium is strictly prohibited.\r\n * Proprietary and Confidential.\r\n *\r\n *******************************************************************************\r\n */\r\nimport { fetchApi } from \"@/utils/fetchApi\";\r\nimport { isValidToken, setSession } from \"@/utils/jwt\";\r\nimport { INITIALIZE } from \"./constants\";\r\n\r\nexport const initializer = async (dispatch) => {\r\n //console.log(\"initializer\");\r\n try {\r\n const accessToken = window.localStorage.getItem(\"accessToken\");\r\n //console.log(\"existing accessToken\", accessToken);\r\n //console.log(\"is access token valid\", isValidToken(accessToken));\r\n const authToken = JSON.parse(window.localStorage.getItem(\"authToken\"));\r\n if (accessToken && isValidToken(accessToken)) {\r\n setSession(authToken);\r\n const response = await fetchApi(\"users\", \"authorizeUser\", {});\r\n //console.log(\"IN HERE\", response);\r\n const authenticationResult = response.authenticationResult;\r\n const user = response.userResult;\r\n const isAuthenticated = authenticationResult === \"Authorized\";\r\n dispatch({\r\n type: INITIALIZE,\r\n payload: {\r\n isAuthenticated: isAuthenticated,\r\n authToken: authToken ? authToken : null,\r\n user,\r\n },\r\n });\r\n return {\r\n isAuthenticated: isAuthenticated,\r\n isInitialized: true,\r\n authToken: authToken ? authToken : null,\r\n user,\r\n newPasswordRequired: false,\r\n };\r\n } else {\r\n dispatch({\r\n type: INITIALIZE,\r\n payload: {\r\n isAuthenticated: false,\r\n user: null,\r\n },\r\n });\r\n }\r\n } catch (err) {\r\n console.error(err);\r\n dispatch({\r\n type: INITIALIZE,\r\n payload: {\r\n isAuthenticated: false,\r\n user: null,\r\n },\r\n });\r\n }\r\n};\r\n","/*\r\n *******************************************************************************\r\n *\r\n * Filename: @/contexts/shared/reducer.js\r\n *\r\n * Syntax: NA\r\n *\r\n * Synopsis: Reducer for contexts.\r\n *\r\n * Author: Norman J. Nolasco [ Archetact Software ]\r\n *\r\n * Created: Saturday, August 19, 2023 - 10:00 PM (CST)\r\n *\r\n * Notes:\r\n *\r\n * Revisions:\r\n * 2023/08/19 NJN Initial Build\r\n *\r\n * Copyright (c) 2023 - Archetact Software - All Rights Reserved.\r\n * Unauthorized copying of this file via any medium is strictly prohibited.\r\n * Proprietary and Confidential.\r\n *\r\n *******************************************************************************\r\n */\r\nimport { INITIALIZE, SIGN_IN, SIGN_OUT, SIGN_UP, SAVE_EMAIL, NEW_PASSWORD } from \"./constants\";\r\n\r\nconst reducer = (state, action) => {\r\n switch (action.type) {\r\n case INITIALIZE:\r\n return {\r\n isAuthenticated: action.payload.isAuthenticated,\r\n isInitialized: true,\r\n authToken: action.payload.authToken ? action.payload.authToken : null,\r\n user: action.payload.user,\r\n };\r\n case SIGN_IN:\r\n return {\r\n ...state,\r\n isAuthenticated: true,\r\n authToken: action.payload.authToken ? action.payload.authToken : null,\r\n user: action.payload.user,\r\n newPasswordRequired: false,\r\n };\r\n case SIGN_OUT:\r\n return {\r\n ...state,\r\n isAuthenticated: false,\r\n user: null,\r\n };\r\n\r\n case SIGN_UP:\r\n return {\r\n ...state,\r\n isAuthenticated: true,\r\n user: action.payload.user,\r\n };\r\n case SAVE_EMAIL:\r\n return {\r\n ...state,\r\n email: action.payload ? action.payload.email : \"\",\r\n };\r\n case NEW_PASSWORD:\r\n return {\r\n ...state,\r\n isAuthenticated: false,\r\n isInitialized: false,\r\n user: null,\r\n newPasswordRequired: true,\r\n session: action.payload.session,\r\n challengeParameters: action.payload.challengeParameters,\r\n };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default reducer;\r\n","/*\r\n *******************************************************************************\r\n *\r\n * Filename: @/contexts/shared/actions.js\r\n *\r\n * Syntax: NA\r\n *\r\n * Synopsis: Actions for contexts.\r\n *\r\n * Author: Norman J. Nolasco [ Archetact Software ]\r\n *\r\n * Created: Saturday, August 19, 2023 - 10:00 PM (CST)\r\n *\r\n * Notes:\r\n *\r\n * Revisions:\r\n * 2023/08/19 NJN Initial Build\r\n *\r\n * Copyright (c) 2023 - Archetact Software - All Rights Reserved.\r\n * Unauthorized copying of this file via any medium is strictly prohibited.\r\n * Proprietary and Confidential.\r\n *\r\n *******************************************************************************\r\n */\r\nimport { fetchApi } from \"@/utils/fetchApi\";\r\nimport { setSession } from \"@/utils/jwt\";\r\nimport { INITIALIZE, SIGN_IN, SIGN_OUT, SIGN_UP, SAVE_EMAIL, NEW_PASSWORD } from \"./constants\";\r\n\r\nexport const signIn = async (email, password, dispatch) => {\r\n const response = await fetchApi(\"users\", \"loginUser\", {\r\n username: email,\r\n password,\r\n });\r\n\r\n if (response.ChallengeName === \"NEW_PASSWORD_REQUIRED\") {\r\n const result = {\r\n isAuthenticated: false,\r\n isInitialized: false,\r\n user: null,\r\n newPasswordRequired: true,\r\n session: response.Session,\r\n challengeParameters: response.ChallengeParameters,\r\n };\r\n dispatch({ type: NEW_PASSWORD, payload: result });\r\n return result;\r\n }\r\n\r\n if (response.error) {\r\n if (response.error.type === \"PasswordResetRequiredException\") {\r\n return {\r\n isAuthenticated: false,\r\n isInitialized: false,\r\n user: null,\r\n newPasswordRequired: false,\r\n resetPasswordRequired: true,\r\n };\r\n }\r\n if (response.error.type === \"NotAuthorizedException\") {\r\n return {\r\n isAuthenticated: false,\r\n isInitialized: false,\r\n user: null,\r\n newPasswordRequired: false,\r\n };\r\n }\r\n }\r\n\r\n const { authenticationResult, userResult } = response;\r\n const user = userResult;\r\n\r\n setSession(authenticationResult);\r\n dispatch({\r\n type: INITIALIZE,\r\n payload: {\r\n isAuthenticated: true,\r\n isInitialized: true,\r\n authToken: authenticationResult,\r\n user,\r\n },\r\n });\r\n dispatch({\r\n type: SIGN_IN,\r\n payload: {\r\n authenticationResult,\r\n authToken: authenticationResult,\r\n user,\r\n },\r\n });\r\n return {\r\n isAuthenticated: true,\r\n isInitialized: true,\r\n authToken: authenticationResult,\r\n user,\r\n newPasswordRequired: false,\r\n };\r\n};\r\n\r\nexport const signOut = async (dispatch) => {\r\n setSession(null);\r\n dispatch({ type: SIGN_OUT });\r\n return {};\r\n};\r\n\r\nexport const signUp = async (firstname, lastname, company, email, phone, password, dispatch) => {\r\n const response = await fetchApi(\"users\", \"signUpUser\", {\r\n username: email,\r\n password,\r\n firstname,\r\n lastname,\r\n company,\r\n location: \"Default Location\",\r\n phone: \"+\" + phone.replace(/[^\\d]/g, \"\").substr(1),\r\n });\r\n console.log(\"signUp response\", response);\r\n return response;\r\n};\r\n\r\nexport const resetPassword = async (email, dispatch) => {\r\n const response = await fetchApi(\"users\", \"resetPassword\", {\r\n username: email,\r\n });\r\n dispatch({\r\n type: SAVE_EMAIL,\r\n payload: {\r\n email,\r\n },\r\n });\r\n return response;\r\n};\r\n\r\nexport const completeResetPassword = async (email, newPassword, confirmationCode, dispatch) => {\r\n const response = await fetchApi(\"users\", \"resetPasswordVerify\", {\r\n username: email,\r\n newPassword: newPassword,\r\n confirmationCode: confirmationCode,\r\n });\r\n return response;\r\n};\r\n\r\nexport const completeNewPasswordChallenge = async (email, password, session, dispatch) => {\r\n const response = await fetchApi(\"users\", \"challengeNewPassword\", {\r\n username: email,\r\n password: password,\r\n session: session,\r\n });\r\n\r\n console.log(\"completeNewPasswordChallenge response\", response);\r\n\r\n const { authenticationResult, userResult } = response;\r\n const user = userResult;\r\n\r\n setSession(authenticationResult);\r\n dispatch({\r\n type: INITIALIZE,\r\n payload: {\r\n isAuthenticated: true,\r\n isInitialized: true,\r\n authToken: authenticationResult,\r\n user,\r\n },\r\n });\r\n dispatch({\r\n type: SIGN_IN,\r\n payload: {\r\n authToken: authenticationResult,\r\n user,\r\n },\r\n });\r\n return {\r\n isAuthenticated: true,\r\n isInitialized: true,\r\n authToken: authenticationResult,\r\n user,\r\n newPasswordRequired: false,\r\n };\r\n};\r\n\r\nexport const confirmSignUp = async (email, confirmationCode, dispatch) => {\r\n const response = await fetchApi(\"users\", \"confirmSignUp\", {\r\n username: email,\r\n confirmationCode: confirmationCode,\r\n });\r\n return response;\r\n};\r\n\r\nexport const resendConfirmationCode = async (email, dispatch) => {\r\n const response = await fetchApi(\"users\", \"confirmSignUpResend\", {\r\n username: email,\r\n });\r\n return response;\r\n};\r\n","/*\r\n *******************************************************************************\r\n *\r\n * Filename: @/contexts/JWTContext.js\r\n *\r\n * Syntax: NA\r\n *\r\n * Synopsis: JWT Context for authentication.\r\n *\r\n * Author: Norman J. Nolasco [ Archetact Software ]\r\n *\r\n * Created: Saturday, August 19, 2023 - 10:00 PM (CST)\r\n *\r\n * Notes:\r\n *\r\n * Revisions:\r\n * 2023/08/19 NJN Initial Build\r\n *\r\n * Copyright (c) 2023 - Archetact Software - All Rights Reserved.\r\n * Unauthorized copying of this file via any medium is strictly prohibited.\r\n * Proprietary and Confidential.\r\n *\r\n *******************************************************************************\r\n */\r\n\r\nimport { createContext, useEffect, useReducer } from \"react\";\r\nimport { initializer } from \"./shared/initializer\";\r\nimport reducer from \"./shared/reducer\";\r\nimport {\r\n signIn,\r\n signOut,\r\n signUp,\r\n resetPassword,\r\n completeResetPassword,\r\n completeNewPasswordChallenge,\r\n confirmSignUp,\r\n resendConfirmationCode,\r\n} from \"./shared/actions\";\r\n\r\nconst initialState = {\r\n isAuthenticated: false,\r\n isInitialized: false,\r\n authToken: null,\r\n user: null,\r\n newPasswordRequired: false,\r\n resetPasswordRequired: false,\r\n};\r\n\r\nconst AuthContext = createContext(null);\r\n\r\nfunction AuthProvider({ children }) {\r\n const [state, dispatch] = useReducer(reducer, initialState);\r\n\r\n useEffect(() => {\r\n initializer(dispatch);\r\n }, []);\r\n\r\n /*\r\n useEffect(() => {\r\n console.log(\"AuthContext state\", state);\r\n }, [state]);\r\n */\r\n\r\n const signInWrapper = async (email, password) => {\r\n const response = await signIn(email, password, dispatch);\r\n return response;\r\n };\r\n\r\n const signOutWrapper = async () => {\r\n const response = await signOut(dispatch);\r\n return response;\r\n };\r\n\r\n const signUpWrapper = async (firstname, lastname, company, email, phone, password) => {\r\n const response = await signUp(firstname, lastname, company, email, phone, password, dispatch);\r\n return response;\r\n };\r\n\r\n const resetPasswordWrapper = async (email) => {\r\n const response = await resetPassword(email, dispatch);\r\n return response;\r\n };\r\n\r\n const completeResetPasswordWrapper = async (email, newPassword, confirmationCode) => {\r\n const response = await completeResetPassword(email, newPassword, confirmationCode, dispatch);\r\n return response;\r\n };\r\n\r\n const completeNewPasswordChallengeWrapper = async (email, password, session) => {\r\n const response = await completeNewPasswordChallenge(email, password, session, dispatch);\r\n return response;\r\n };\r\n\r\n const confirmSignUpWrapper = async (email, confirmationCode) => {\r\n const response = await confirmSignUp(email, confirmationCode, dispatch);\r\n return response;\r\n };\r\n\r\n const resendConfirmationCodeWrapper = async (email) => {\r\n const response = await resendConfirmationCode(email, dispatch);\r\n return response;\r\n };\r\n\r\n return (\r\n \r\n {children}\r\n \r\n );\r\n}\r\n\r\nexport { AuthContext, AuthProvider };\r\n","import { useContext } from \"react\";\r\n\r\nimport { AuthContext } from \"@/contexts/JWTContext\";\r\n// import { AuthContext } from \"../contexts/FirebaseAuthContext\";\r\n// import { AuthContext } from \"../contexts/Auth0Context\";\r\n//import { AuthContext } from \"../contexts/CognitoContext\";\r\n\r\nconst useAuth = () => {\r\n const context = useContext(AuthContext);\r\n if (!context) throw new Error(\"AuthContext must be placed within AuthProvider\");\r\n return context;\r\n};\r\n\r\nexport default useAuth;\r\n","import React from \"react\";\r\nimport styled from \"@emotion/styled\";\r\n\r\nimport { Button as MuiButton, Menu, MenuItem } from \"@mui/material\";\r\nimport { Loop as LoopIcon, FilterList as FilterListIcon } from \"@mui/icons-material\";\r\nimport { spacing } from \"@mui/system\";\r\n\r\nconst Button = styled(MuiButton)(spacing);\r\n\r\nconst SmallButton = styled(Button)`\r\n padding: 4px;\r\n min-width: 0;\r\n\r\n svg {\r\n width: 0.9em;\r\n height: 0.9em;\r\n }\r\n`;\r\n\r\nfunction Actions() {\r\n const [anchorEl, setAnchorEl] = React.useState(null);\r\n\r\n const handleClick = (event) => {\r\n setAnchorEl(event.currentTarget);\r\n };\r\n\r\n const handleClose = () => {\r\n setAnchorEl(null);\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Today: April 29\r\n \r\n \r\n Today\r\n Yesterday\r\n Last 7 days\r\n Last 30 days\r\n This month\r\n Last month\r\n \r\n \r\n );\r\n}\r\n\r\nexport default Actions;\r\n","import React from \"react\";\r\nimport styled from \"@emotion/styled\";\r\nimport { withTheme } from \"@emotion/react\";\r\nimport { Bar } from \"react-chartjs-2\";\r\nimport { MoreVertical } from \"react-feather\";\r\nimport { rgba } from \"polished\";\r\n\r\nimport { Card as MuiCard, CardContent, CardHeader, IconButton } from \"@mui/material\";\r\nimport { spacing } from \"@mui/system\";\r\n\r\nconst Card = styled(MuiCard)(spacing);\r\n\r\nconst ChartWrapper = styled.div`\r\n height: 340px;\r\n width: 100%;\r\n`;\r\n\r\nconst BarChart = ({ theme }) => {\r\n const firstDatasetColor = theme.palette.secondary.main;\r\n const secondDatasetColor = rgba(theme.palette.secondary.main, 0.33);\r\n\r\n const data = {\r\n labels: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\r\n datasets: [\r\n {\r\n label: \"Mobile\",\r\n backgroundColor: firstDatasetColor,\r\n borderColor: firstDatasetColor,\r\n hoverBackgroundColor: firstDatasetColor,\r\n hoverBorderColor: firstDatasetColor,\r\n data: [54, 67, 41, 55, 62, 45, 55, 73, 60, 76, 48, 79],\r\n barPercentage: 0.5,\r\n categoryPercentage: 0.5,\r\n },\r\n {\r\n label: \"Desktop\",\r\n backgroundColor: secondDatasetColor,\r\n borderColor: secondDatasetColor,\r\n hoverBackgroundColor: secondDatasetColor,\r\n hoverBorderColor: secondDatasetColor,\r\n data: [69, 66, 24, 48, 52, 51, 44, 53, 62, 79, 51, 68],\r\n barPercentage: 0.5,\r\n categoryPercentage: 0.5,\r\n borderRadius: 6,\r\n },\r\n ],\r\n };\r\n\r\n const options = {\r\n maintainAspectRatio: false,\r\n plugins: {\r\n legend: {\r\n display: false,\r\n },\r\n },\r\n scales: {\r\n y: {\r\n grid: {\r\n display: false,\r\n },\r\n stacked: true,\r\n ticks: {\r\n stepSize: 20,\r\n fontColor: theme.palette.text.secondary,\r\n },\r\n },\r\n\r\n x: {\r\n stacked: true,\r\n grid: {\r\n color: \"transparent\",\r\n },\r\n ticks: {\r\n fontColor: theme.palette.text.secondary,\r\n },\r\n },\r\n },\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n }\r\n title=\"Mobile / Desktop\"\r\n />\r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default withTheme(BarChart);\r\n","import React from \"react\";\r\nimport styled from \"@emotion/styled\";\r\nimport { withTheme } from \"@emotion/react\";\r\nimport { Line } from \"react-chartjs-2\";\r\nimport { MoreVertical } from \"react-feather\";\r\n\r\nimport { Card as MuiCard, CardContent, CardHeader, IconButton } from \"@mui/material\";\r\nimport { spacing } from \"@mui/system\";\r\nimport { alpha } from \"@mui/material/styles\";\r\n\r\nconst Card = styled(MuiCard)(spacing);\r\n\r\nconst ChartWrapper = styled.div`\r\n height: 378px;\r\n`;\r\n\r\nfunction LineChart({ theme }) {\r\n const data = {\r\n labels: [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"],\r\n datasets: [\r\n {\r\n label: \"Sales ($)\",\r\n fill: true,\r\n backgroundColor: function (context) {\r\n const chart = context.chart;\r\n const { ctx, chartArea } = chart;\r\n\r\n if (!chartArea) {\r\n return null;\r\n }\r\n\r\n const gradient = ctx.createLinearGradient(0, 0, 0, 300);\r\n gradient.addColorStop(0, alpha(theme.palette.secondary.main, 0.0875));\r\n gradient.addColorStop(1, \"rgba(0, 0, 0, 0)\");\r\n\r\n return gradient;\r\n },\r\n borderColor: theme.palette.secondary.main,\r\n tension: 0.4,\r\n data: [2115, 1562, 1584, 1892, 1487, 2223, 2966, 2448, 2905, 3838, 2917, 3327],\r\n },\r\n {\r\n label: \"Orders\",\r\n fill: true,\r\n backgroundColor: \"transparent\",\r\n borderColor: theme.palette.grey[500],\r\n borderDash: [4, 4],\r\n tension: 0.4,\r\n data: [958, 724, 629, 883, 915, 1214, 1476, 1212, 1554, 2128, 1466, 1827],\r\n },\r\n ],\r\n };\r\n\r\n const options = {\r\n maintainAspectRatio: false,\r\n plugins: {\r\n legend: {\r\n display: false,\r\n },\r\n },\r\n scales: {\r\n x: {\r\n grid: {\r\n color: \"rgba(0,0,0,0.0)\",\r\n },\r\n },\r\n y: {\r\n grid: {\r\n color: \"rgba(0,0,0,0.0375)\",\r\n fontColor: \"#fff\",\r\n },\r\n },\r\n },\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n }\r\n title=\"Total revenue\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\nexport default withTheme(LineChart);\r\n","import React from \"react\";\r\nimport styled from \"@emotion/styled\";\r\nimport { withTheme } from \"@emotion/react\";\r\nimport { Doughnut } from \"react-chartjs-2\";\r\nimport { MoreVertical } from \"react-feather\";\r\n\r\nimport { orange, green, red } from \"@mui/material/colors\";\r\nimport {\r\n Card as MuiCard,\r\n CardContent,\r\n CardHeader,\r\n IconButton,\r\n Table,\r\n TableBody,\r\n TableCell as MuiTableCell,\r\n TableHead,\r\n TableRow as MuiTableRow,\r\n Typography,\r\n} from \"@mui/material\";\r\nimport { spacing } from \"@mui/system\";\r\n\r\nconst Card = styled(MuiCard)(spacing);\r\n\r\nconst ChartWrapper = styled.div`\r\n height: 168px;\r\n position: relative;\r\n`;\r\n\r\nconst DoughnutInner = styled.div`\r\n width: 100%;\r\n position: absolute;\r\n top: 50%;\r\n left: 0;\r\n margin-top: -22px;\r\n text-align: center;\r\n z-index: 0;\r\n`;\r\n\r\nconst TableRow = styled(MuiTableRow)`\r\n height: 42px;\r\n`;\r\n\r\nconst TableCell = styled(MuiTableCell)`\r\n padding-top: 0;\r\n padding-bottom: 0;\r\n`;\r\n\r\nconst GreenText = styled.span`\r\n color: ${() => green[400]};\r\n font-weight: ${(props) => props.theme.typography.fontWeightMedium};\r\n`;\r\n\r\nconst RedText = styled.span`\r\n color: ${() => red[400]};\r\n font-weight: ${(props) => props.theme.typography.fontWeightMedium};\r\n`;\r\n\r\nconst DoughnutChart = ({ theme }) => {\r\n const data = {\r\n labels: [\"Social\", \"Search Engines\", \"Direct\", \"Other\"],\r\n datasets: [\r\n {\r\n data: [260, 125, 54, 146],\r\n backgroundColor: [theme.palette.secondary.main, red[500], orange[500], theme.palette.grey[200]],\r\n borderWidth: 5,\r\n borderColor: theme.palette.background.paper,\r\n },\r\n ],\r\n };\r\n\r\n const options = {\r\n maintainAspectRatio: false,\r\n plugins: {\r\n legend: {\r\n display: false,\r\n },\r\n },\r\n cutout: \"80%\",\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n }\r\n title=\"Weekly sales\"\r\n />\r\n\r\n \r\n \r\n \r\n +27%\r\n more sales\r\n \r\n \r\n \r\n \r\n \r\n \r\n Source\r\n Revenue\r\n Value\r\n \r\n \r\n \r\n \r\n \r\n Social\r\n \r\n 260\r\n \r\n +35%\r\n \r\n \r\n \r\n \r\n Search Engines\r\n \r\n 125\r\n \r\n -12%\r\n \r\n \r\n \r\n \r\n Direct\r\n \r\n 54\r\n \r\n +46%\r\n \r\n \r\n \r\n \r\n Other\r\n \r\n 146\r\n \r\n +24%\r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default withTheme(DoughnutChart);\r\n","import React from \"react\";\r\nimport styled from \"@emotion/styled\";\r\nimport { css } from \"@emotion/react\";\r\nimport { rgba } from \"polished\";\r\n\r\nimport {\r\n Box,\r\n Card as MuiCard,\r\n CardContent as MuiCardContent,\r\n Chip as MuiChip,\r\n Typography as MuiTypography,\r\n} from \"@mui/material\";\r\nimport { spacing } from \"@mui/system\";\r\n\r\nconst illustrationCardStyle = (props) => css`\r\n ${props.illustration &&\r\n props.theme.palette.mode !== \"dark\" &&\r\n `\r\n background: ${rgba(props.theme.palette.primary.main, 0.125)};\r\n color: ${props.theme.palette.primary.main};\r\n `}\r\n`;\r\n\r\nconst Card = styled(MuiCard)`\r\n position: relative;\r\n margin-bottom: ${(props) => props.theme.spacing(6)};\r\n\r\n ${illustrationCardStyle}\r\n`;\r\n\r\nconst Typography = styled(MuiTypography)(spacing);\r\n\r\nconst CardContent = styled(MuiCardContent)`\r\n position: relative;\r\n\r\n &:last-child {\r\n padding-bottom: ${(props) => props.theme.spacing(4)};\r\n }\r\n`;\r\n\r\nconst Chip = styled(MuiChip)`\r\n position: absolute;\r\n top: 16px;\r\n right: 16px;\r\n height: 20px;\r\n padding: 4px 0;\r\n font-size: 85%;\r\n background-color: ${(props) => props.theme.palette.secondary.main};\r\n color: ${(props) => props.theme.palette.common.white};\r\n margin-bottom: ${(props) => props.theme.spacing(4)};\r\n\r\n span {\r\n padding-left: ${(props) => props.theme.spacing(2)};\r\n padding-right: ${(props) => props.theme.spacing(2)};\r\n }\r\n`;\r\n\r\nconst illustrationPercentageStyle = (props) => css`\r\n ${props.illustration &&\r\n props.theme.palette.mode !== \"dark\" &&\r\n `\r\n color: ${rgba(props.theme.palette.primary.main, 0.85)};\r\n `}\r\n`;\r\n\r\nconst Percentage = styled(MuiTypography)`\r\n span {\r\n color: ${(props) => props.percentagecolor};\r\n font-weight: ${(props) => props.theme.typography.fontWeightBold};\r\n background: ${(props) => rgba(props.percentagecolor, 0.1)};\r\n padding: 2px;\r\n border-radius: 3px;\r\n margin-right: ${(props) => props.theme.spacing(2)};\r\n }\r\n\r\n ${illustrationPercentageStyle}\r\n`;\r\n\r\nconst IllustrationImage = styled.img`\r\n height: 100px;\r\n position: absolute;\r\n right: ${(props) => props.theme.spacing(1)};\r\n bottom: ${(props) => props.theme.spacing(1)};\r\n display: none;\r\n\r\n ${(props) => props.theme.breakpoints.between(\"xs\", \"lg\")} {\r\n display: block;\r\n }\r\n\r\n @media (min-width: 1600px) {\r\n display: block;\r\n }\r\n`;\r\n\r\nconst Stats = ({ title, amount, chip, percentagetext, percentagecolor, illustration }) => {\r\n return (\r\n \r\n \r\n \r\n {title}\r\n \r\n \r\n {amount}\r\n \r\n \r\n {percentagetext} Since last month\r\n \r\n {!illustration && }\r\n \r\n\r\n {!!illustration && }\r\n \r\n );\r\n};\r\n\r\nexport default Stats;\r\n","import React from \"react\";\r\nimport styled from \"@emotion/styled\";\r\nimport { MoreVertical } from \"react-feather\";\r\n\r\nimport {\r\n Card as MuiCard,\r\n CardHeader,\r\n IconButton,\r\n Chip as MuiChip,\r\n Paper as MuiPaper,\r\n Table,\r\n TableBody,\r\n TableCell,\r\n TableHead,\r\n TableRow,\r\n} from \"@mui/material\";\r\nimport { spacing } from \"@mui/system\";\r\n\r\nconst Card = styled(MuiCard)(spacing);\r\n\r\nconst Chip = styled(MuiChip)`\r\n height: 20px;\r\n padding: 4px 0;\r\n font-size: 90%;\r\n background-color: ${(props) => props.theme.palette[props.color ? props.color : \"primary\"].light};\r\n color: ${(props) => props.theme.palette.common.white};\r\n`;\r\n\r\nconst Paper = styled(MuiPaper)(spacing);\r\n\r\nconst TableWrapper = styled.div`\r\n overflow-y: auto;\r\n max-width: calc(100vw - ${(props) => props.theme.spacing(12)});\r\n`;\r\n\r\n// Data\r\nlet id = 0;\r\nfunction createData(name, start, end, state, assignee) {\r\n id += 1;\r\n return { id, name, start, end, state, assignee };\r\n}\r\n\r\nconst rows = [\r\n createData(\"Project Aurora\", \"01/01/2023\", \"31/06/2023\", , \"James Dalton\"),\r\n createData(\"Project Eagle\", \"01/01/2023\", \"31/06/2023\", , \"Tracy Mack\"),\r\n createData(\"Project Fireball\", \"01/01/2023\", \"31/06/2023\", , \"Sallie Love\"),\r\n createData(\"Project Omega\", \"01/01/2023\", \"31/06/2023\", , \"Glenda Jang\"),\r\n createData(\"Project Yoda\", \"01/01/2023\", \"31/06/2023\", , \"Raymond Ennis\"),\r\n createData(\"Project Zulu\", \"01/01/2023\", \"31/06/2023\", , \"Matthew Winters\"),\r\n];\r\n\r\nconst DashboardTable = () => (\r\n \r\n \r\n \r\n \r\n }\r\n title=\"Latest projects\"\r\n />\r\n \r\n \r\n \r\n \r\n \r\n Name\r\n Start Date\r\n End Date\r\n State\r\n Assignee\r\n \r\n \r\n \r\n {rows.map((row) => (\r\n \r\n \r\n {row.name}\r\n \r\n {row.start}\r\n {row.end}\r\n {row.state}\r\n {row.assignee}\r\n \r\n ))}\r\n \r\n
\r\n
\r\n
\r\n
\r\n);\r\n\r\nexport default DashboardTable;\r\n","import React from \"react\";\r\nimport styled from \"@emotion/styled\";\r\nimport { Helmet } from \"react-helmet-async\";\r\nimport { useTranslation } from \"react-i18next\";\r\n\r\nimport { Grid, Divider as MuiDivider, Typography as MuiTypography } from \"@mui/material\";\r\nimport { spacing } from \"@mui/system\";\r\nimport { green, red } from \"@mui/material/colors\";\r\n\r\nimport Actions from \"./Actions\";\r\nimport BarChart from \"./BarChart\";\r\nimport LineChart from \"./LineChart\";\r\nimport DoughnutChart from \"./DoughnutChart\";\r\nimport Stats from \"./Stats\";\r\nimport Table from \"./Table\";\r\n\r\nimport useAuth from \"../../../hooks/useAuth\";\r\n\r\nconst Divider = styled(MuiDivider)(spacing);\r\n\r\nconst Typography = styled(MuiTypography)(spacing);\r\n\r\nfunction Default() {\r\n const { t } = useTranslation();\r\n\r\n const { authToken, user } = useAuth();\r\n\r\n //console.log(\"useAuth\", useAuth());\r\n //console.log(\"auth\", user, user.displayName);\r\n console.log(\"Default auth\", authToken);\r\n console.log(\"Default user\", user);\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n Default Dashboard\r\n \r\n \r\n {t(\"Welcome back\")}, {user?.firstname}! {t(\"We've missed you\")}.{\" \"}\r\n \r\n 👋\r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default Default;\r\n","import React from \"react\";\r\nimport styled from \"@emotion/styled\";\r\nimport { ICellRendererParams } from \"ag-grid-community\";\r\nimport { Box, Button, IconButton, Tooltip } from \"@mui/material\";\r\nimport EditIcon from \"@mui/icons-material/Edit\";\r\nimport DeleteIcon from \"@mui/icons-material/Delete\";\r\n\r\nconst AgAction = (props: ICellRendererParams) => {\r\n const data = props.data;\r\n const disabledButton = props.disabledDelete && data[props.disabledDelete] > 0;\r\n return (\r\n \r\n \r\n \r\n props.onEditClick(event, props.data)}\r\n >\r\n Edit\r\n \r\n \r\n \r\n \r\n \r\n \r\n props.onDeleteClick(event, props.data)}\r\n disabled={disabledButton}\r\n >\r\n Delete\r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default AgAction;\r\n","/*\r\n *******************************************************************************\r\n *\r\n * Filename: @/pages/renderers/FormattedDate.js\r\n *\r\n * Syntax: renderCell: (params) => \r\n *\r\n * Synopsis: Use this component to display dates in a more readable\r\n * format within table columns.\r\n *\r\n * Author: Norman J. Nolasco [ Archetact Software ]\r\n *\r\n * Created: Wednesday, April 12, 2023 - 2:21 PM (CST)\r\n *\r\n * Notes:\r\n *\r\n *\r\n * Revisions:\r\n *\r\n * Copyright (c) 2023 - Archetact Software - All Rights Reserved.\r\n * Unauthorized copying of this file via any medium is strictly prohibited.\r\n * Proprietary and Confidential.\r\n *\r\n *******************************************************************************\r\n */\r\n\r\nimport React from \"react\";\r\n\r\nconst FormattedDate = (props) => {\r\n const date = new Date(props.value);\r\n const formattedDate = new Intl.DateTimeFormat(\"en-US\", {\r\n year: \"numeric\",\r\n month: \"short\",\r\n day: \"numeric\",\r\n hour: \"2-digit\",\r\n minute: \"2-digit\",\r\n }).format(date);\r\n\r\n return {formattedDate};\r\n};\r\n\r\nexport default FormattedDate;\r\n","import React from \"react\";\r\nimport { Dialog, DialogTitle, DialogContent, DialogActions, Button, Box, Typography, Alert } from \"@mui/material\";\r\n\r\nconst DeleteDialog = ({ open, onDelete, onClose }) => {\r\n return (\r\n \r\n Delete User\r\n \r\n \r\n Warning: This action is irreversible.\r\n \r\n \r\n \r\n Are you sure you want to delete this User?\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default DeleteDialog;\r\n","/*\r\n *******************************************************************************\r\n *\r\n * Filename: @/pages/renderers/FullName.js\r\n *\r\n * Syntax: renderCell: (params) => \r\n *\r\n * Synopsis: Use this component to display full name.\r\n *\r\n * Author: Norman J. Nolasco [ Archetact Software ]\r\n *\r\n * Created: Friday, August 18, 2023 - 6:07 AM (CST)\r\n *\r\n * Notes:\r\n *\r\n * Revisions:\r\n * 2023/08/18 NJN Initial Build\r\n *\r\n *\r\n * Copyright (c) 2023 - Archetact Software - All Rights Reserved.\r\n * Unauthorized copying of this file via any medium is strictly prohibited.\r\n * Proprietary and Confidential.\r\n *\r\n *******************************************************************************\r\n */\r\n\r\nimport React from \"react\";\r\n\r\nconst FullName = (props) => {\r\n const row = props.data;\r\n\r\n const fullname = row.LASTNAME + \", \" + row.FIRSTNAME + \" \" + (row.MIDDLENAME ? row.MIDDLENAME[0] : \"\");\r\n return (\r\n
\r\n {fullname}\r\n
\r\n );\r\n};\r\n\r\nexport default FullName;\r\n","/*\r\n *******************************************************************************\r\n *\r\n * Filename: @/pages/system/Users/Columns.js\r\n *\r\n * Syntax:\r\n *\r\n * Synopsis: Column formatting.\r\n *\r\n * Author: Norman J. Nolasco [ Archetact Software ]\r\n *\r\n * Created: Wednesday, April 12, 2023 - 2:21 PM (CST)\r\n *\r\n * Notes:\r\n *\r\n *\r\n * Revisions:\r\n *\r\n * Copyright (c) 2023 - Archetact Software - All Rights Reserved.\r\n * Unauthorized copying of this file via any medium is strictly prohibited.\r\n * Proprietary and Confidential.\r\n *\r\n *******************************************************************************\r\n */\r\n\r\nimport { Box } from \"@mui/material\";\r\nimport FormattedDate from \"@/pages/renderers/FormattedDate\";\r\nimport FullName from \"@/pages/renderers/FullName\";\r\nimport AgAction from \"@/pages/renderers/AgAction\";\r\n\r\nimport { IconButton, Tooltip } from \"@mui/material\";\r\nimport EditIcon from \"@mui/icons-material/Edit\";\r\nimport DeleteIcon from \"@mui/icons-material/Delete\";\r\n\r\n/* AG Grid Settings */\r\nconst columnCentered = {\r\n headerClass: \"text-center\",\r\n cellStyle: {\r\n textAlign: \"center\",\r\n },\r\n};\r\n\r\nexport const columns = (handleEditClick, handleDeleteClick) => [\r\n {\r\n field: \"LASTNAME\",\r\n headerName: \"User\",\r\n cellRenderer: FullName,\r\n autoHeight: true,\r\n wrapText: true,\r\n flex: 1,\r\n },\r\n {\r\n field: \"COMPANY\",\r\n headerName: \"Company\",\r\n },\r\n {\r\n field: \"USERSTATUS\",\r\n headerName: \"Status\",\r\n headerClass: \"center-aligned-group-header\",\r\n width: 200,\r\n ...columnCentered,\r\n },\r\n {\r\n field: \"USERID\",\r\n headerName: \"Actions\",\r\n sortable: false,\r\n width: 150,\r\n filter: false,\r\n cellRenderer: AgAction,\r\n cellRendererParams: {\r\n onEditClick: handleEditClick.bind(this),\r\n onDeleteClick: handleDeleteClick.bind(this),\r\n },\r\n ...columnCentered,\r\n },\r\n];\r\n","/*\r\n *******************************************************************************\r\n *\r\n * Filename: /pages/system/UsersCognito/UserDetails.js\r\n *\r\n * Syntax: NA\r\n *\r\n * Synopsis: User Details Section\r\n *\r\n * Author: Norman J. Nolasco [ Archetact Software ]\r\n *\r\n * Created: Monday, May 15, 2023 - 1:18 AM (CST)\r\n *\r\n * Notes:\r\n *\r\n * Revisions:\r\n * 2023/05/15 NJN Initial Build\r\n *\r\n * Copyright (c) 2023 - Archetact Software - All Rights Reserved.\r\n * Unauthorized copying of this file via any medium is strictly prohibited.\r\n * Proprietary and Confidential.\r\n *\r\n *******************************************************************************\r\n */\r\n\r\nimport React, { useState } from \"react\";\r\nimport styled from \"@emotion/styled\";\r\nimport { spacing } from \"@mui/system\";\r\nimport { useNavigate } from \"react-router-dom\";\r\nimport {\r\n Avatar as MuiAvatar,\r\n Button as MuiButton,\r\n Box,\r\n Card as MuiCard,\r\n CardContent,\r\n Grid,\r\n Typography,\r\n} from \"@mui/material\";\r\n\r\nconst Button = styled(MuiButton)(spacing);\r\nconst Card = styled(MuiCard)(spacing);\r\nconst Spacer = styled.div(spacing);\r\n\r\nconst Details = ({ values, isFollowed, clickUpload, clickFollow }) => {\r\n const Avatar = styled(MuiAvatar)`\r\n display: inline-block;\r\n height: 64px;\r\n width: 64px;\r\n opacity: 1;\r\n transition: opacity 0.5s ease-in;\r\n position: absolute;\r\n `;\r\n\r\n const Placeholder = styled.div`\r\n width: 64px;\r\n height: 64px;\r\n `;\r\n const Centered = styled.div`\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n `;\r\n\r\n const InitialsAvatar = styled.div`\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n border-radius: 50%;\r\n font-size: 3.5rem;\r\n width: 61px;\r\n height: 61px;\r\n background-color: ${(props) => props.theme.palette.primary.light};\r\n color: ${(props) => props.theme.palette.primary.contrastText};\r\n margin: auto;\r\n `;\r\n\r\n const imageSrc = `https://www.gocampaign.com/${values.avatars3key}`;\r\n const hasImage = values.avatars3key ? true : false;\r\n const userInitials =\r\n (values.firstname && values.firstname[0] ? values.firstname[0] : \"\") +\r\n (values.lastname && values.lastname[0] ? values.lastname[0] : \"\");\r\n\r\n const navigate = useNavigate();\r\n\r\n const goMessaging = () => {\r\n navigate(\"/pages/chat\");\r\n };\r\n\r\n const followColor = isFollowed ? \"success\" : \"primary\";\r\n const followText = isFollowed ? \"Following\" : \"+ Follow\";\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n {imageSrc && 1 == 0 ? (\r\n <>\r\n \r\n \r\n \r\n ) : (\r\n {userInitials}\r\n )}\r\n \r\n \r\n \r\n name{values.firstname + \" \" + values.lastname}\r\n username{values.jobtitle}\r\n Active\r\n \r\n \r\n \r\n \r\n \r\n Role1 | Role2 | Role3\r\n last login\r\n created\r\n\r\n follow | message\r\n \r\n \r\n {/*\r\n \r\n \r\n \r\n \r\n \r\n */}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default Details;\r\n","/*\r\n *******************************************************************************\r\n *\r\n * Filename: @/pages/system/Users/UserEdit.js\r\n *\r\n * Syntax: NA\r\n *\r\n * Synopsis: Module for managing Users.\r\n *\r\n * Author: Norman J. Nolasco [ Archetact Software ]\r\n *\r\n * Created: Friday, August 18, 2023 - 6:07 AM (CST)\r\n *\r\n * Notes:\r\n *\r\n * Revisions:\r\n * 2023/08/18 NJN Initial Build\r\n *\r\n * Copyright (c) 2023 - Archetact Software - All Rights Reserved.\r\n * Unauthorized copying of this file via any medium is strictly prohibited.\r\n * Proprietary and Confidential.\r\n *\r\n *******************************************************************************\r\n */\r\n\r\n// External libraries\r\nimport React, { useEffect, useState, useRef } from \"react\";\r\nimport styled from \"@emotion/styled\";\r\nimport { spacing } from \"@mui/system\";\r\nimport * as Yup from \"yup\";\r\nimport { Formik } from \"formik\";\r\nimport { useQuery, useMutation } from \"@apollo/client\";\r\n\r\n// Material UI components\r\nimport {\r\n Accordion,\r\n AccordionDetails,\r\n AccordionSummary,\r\n Alert as MuiAlert,\r\n Box,\r\n Button,\r\n Card as MuiCard,\r\n CardContent,\r\n Dialog,\r\n DialogTitle,\r\n DialogContent,\r\n DialogActions,\r\n FormControl,\r\n Grid,\r\n InputLabel,\r\n MenuItem,\r\n Select,\r\n TextField as MuiTextField,\r\n Typography,\r\n} from \"@mui/material\";\r\n\r\n// Local components\r\n//import ColorSelect from \"@/pages/utils/ColorSelect\";\r\n\r\n// Hooks\r\n//import useAuth from \"@/hooks/useAuth\";\r\nimport { useSelector } from \"react-redux\";\r\n\r\n// Utilities\r\n//import { prepareAddresses, preparePhones } from \"./formatting\";\r\n\r\nimport { ExpandMore as ExpandMoreIcon } from \"@mui/icons-material\";\r\nimport Details from \"./Details\";\r\n\r\nconst Alert = styled(MuiAlert)(spacing);\r\nconst Card = styled(MuiCard)(spacing);\r\n//const Spacer = styled.div(spacing);\r\nconst TextField = styled(MuiTextField)(spacing);\r\n\r\nconst DialogContainer = styled(DialogContent)`\r\n flex: 1;\r\n background: ${(props) => props.theme.palette.background.default};\r\n @media all and (-ms-high-contrast: none), (-ms-high-contrast: active) {\r\n flex: none;\r\n }\r\n`;\r\n\r\nconst UserEdit = ({\r\n handleClose,\r\n refetch,\r\n selectedRow,\r\n isEditMode,\r\n setIsEditMode,\r\n handleClickSnackbarAlert,\r\n isEditDialogOpen,\r\n}) => {\r\n const [isFormSubmitted, setIsFormSubmitted] = useState(false);\r\n const [initialValues, setInitialValues] = useState({});\r\n const [fieldTypes, setFieldTypes] = useState([]);\r\n const formikRef = useRef();\r\n\r\n const companyid = useSelector((state) => {\r\n return state.users.companyid;\r\n });\r\n const locationid = useSelector((state) => {\r\n return state.users.locationid;\r\n });\r\n const userstatusid = useSelector((state) => {\r\n return state.users.userstatusid;\r\n });\r\n\r\n useEffect(() => {\r\n setInitialValues({\r\n userid: selectedRow?.userid || 0,\r\n username: selectedRow?.username || \"\",\r\n firstname: selectedRow?.firstname || \"\",\r\n middlename: selectedRow?.middlename || \"\",\r\n lastname: selectedRow?.lastname || \"\",\r\n fullname: selectedRow?.fullname || \"\",\r\n userstatusid: selectedRow?.userstatusid || 0,\r\n avatarfileid: selectedRow?.avatarfileid || 0,\r\n companyid: selectedRow?.companyid || 0,\r\n division: selectedRow?.division || \"\",\r\n jobtitle: selectedRow?.jobtitle || \"\",\r\n phone: selectedRow?.phone || \"\",\r\n password: selectedRow?.password || \"\",\r\n createdate: selectedRow?.createdate || \"\",\r\n modifydate: selectedRow?.modifydate || \"\",\r\n });\r\n formikRef.current?.resetForm();\r\n }, [selectedRow]);\r\n\r\n const ValidationSchema = (isEditMode) =>\r\n Yup.object().shape({\r\n name: Yup.string().required(\"Required\"),\r\n });\r\n\r\n const validationSchema = () => ValidationSchema(isEditMode);\r\n\r\n const updateList = async () => {};\r\n const updatingItem = false;\r\n const updateItemError = null;\r\n const createList = async () => {};\r\n const creatingItem = false;\r\n const createItemError = null;\r\n\r\n const handleSubmit = async (values, { setErrors, setStatus, setSubmitting, setFieldValue }) => {\r\n try {\r\n console.log(\"SAVING VALUES\", values);\r\n console.log(\"EDIT MODE\", isEditMode);\r\n\r\n setStatus({ sent: false });\r\n setIsFormSubmitted(false);\r\n\r\n const commonFields = {\r\n listgroupuuid: values.listgroupuuid,\r\n listuuid: values.listuuid,\r\n name: values.name,\r\n description: values.description,\r\n fieldcode: values.fieldcode,\r\n fieldtype: values.fieldtype,\r\n };\r\n\r\n if (isEditMode) {\r\n const response = await updateList({\r\n variables: {\r\n ...commonFields,\r\n pk: values.pk,\r\n sk: values.sk,\r\n },\r\n });\r\n console.log(\"updateItem response\", response);\r\n handleClickSnackbarAlert(\"success\", \"List has been successfully updated.\");\r\n } else {\r\n await createList({ variables: { ...commonFields } });\r\n handleClickSnackbarAlert(\"success\", \"List has been successfully created.\");\r\n setIsEditMode(true);\r\n }\r\n\r\n setIsFormSubmitted(true);\r\n setStatus({ sent: true });\r\n setSubmitting(false);\r\n refetch();\r\n } catch (error) {\r\n console.error(\"ERROR ADD/UPDATE\", error, error.networkError, error.graphQLErrors);\r\n handleClickSnackbarAlert(\"error\", `Error: ${error.graphQLErrors[0]?.errorType}|${error.networkError}`);\r\n setIsFormSubmitted(false);\r\n setStatus({ sent: false });\r\n setErrors({ submit: error.errorType });\r\n setSubmitting(false);\r\n }\r\n };\r\n\r\n const alertConditions = [\r\n { condition: isFormSubmitted, severity: \"success\", message: \"Your data has been submitted successfully!\" },\r\n { condition: updatingItem, severity: \"info\", message: \"Updating list group, please wait...\" },\r\n { condition: creatingItem, severity: \"info\", message: \"Creating list group, please wait...\" },\r\n { condition: updateItemError, severity: \"error\", message: `Error: ${updateItemError?.graphQLErrors[0].errorType}` },\r\n { condition: createItemError, severity: \"error\", message: `Error: ${createItemError?.graphQLErrors[0].errorType}` },\r\n ];\r\n\r\n const renderAlert = () => {\r\n for (let i = 0; i < alertConditions.length; i++) {\r\n const alert = alertConditions[i];\r\n if (alert.condition) {\r\n return renderAlertMessage(alert.severity, alert.message);\r\n }\r\n }\r\n };\r\n\r\n const renderAlertMessage = (severity, message) => {\r\n return (\r\n \r\n {message}\r\n \r\n );\r\n };\r\n\r\n const isFollowed = false;\r\n const clickFollow = () => {};\r\n const clickUpload = () => {};\r\n\r\n const [expanded, setExpanded] = React.useState(false);\r\n const handleSectionChange = (panel) => (event, isExpanded) => {\r\n setExpanded(isExpanded ? panel : false);\r\n };\r\n\r\n return (\r\n \r\n {({ errors, handleBlur, handleChange, handleSubmit, touched, values, resetForm, submitForm }) => {\r\n return (\r\n
\r\n {\r\n setIsFormSubmitted(false);\r\n handleClose(e, reason);\r\n }}\r\n fullWidth\r\n maxWidth=\"lg\"\r\n className=\"editDialogStyle\"\r\n classes={{ paper: \"editPaperPropsStyle\" }}\r\n >\r\n {isEditMode ? \"Users > \" + selectedRow.FULLNAME : \"Add New User\"}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n

password reset

\r\n

update profile

\r\n

update avatar

\r\n

update plan

\r\n

update security

\r\n

update organization

\r\n

update social

\r\n

update addresses

\r\n

update contacts

\r\n

delete user

\r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Summary\r\n \r\n \r\n

followers | messages | cases | patients

\r\n

space usage | AI usage | tokens available

\r\n
\r\n \r\n

flex plan

\r\n
\r\n
\r\n
\r\n
\r\n \r\n \r\n \r\n \r\n Profile\r\n basic info, statuses, primary phone, primary email\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Flex Plan\r\n plan\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Security\r\n roles, mfa\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Organization\r\n company/locations, division, job description\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Social Media\r\n facebook, instagram, twitter, thread\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Address\r\n mail, bill, office\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Contacts\r\n email, website, phone\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n {/*\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Field Type\r\n \r\n {fieldTypes?.map((fieldType) => (\r\n \r\n {fieldType.Name}\r\n \r\n ))}\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n */}\r\n
\r\n \r\n {renderAlert()}\r\n {\r\n setIsFormSubmitted(false);\r\n handleClose(e, reason);\r\n }}\r\n color=\"primary\"\r\n variant=\"outlined\"\r\n >\r\n Cancel\r\n \r\n {\r\n resetForm();\r\n }}\r\n color=\"primary\"\r\n variant=\"outlined\"\r\n >\r\n Reset\r\n \r\n \r\n \r\n \r\n \r\n );\r\n }}\r\n \r\n );\r\n};\r\n\r\nexport default UserEdit;\r\n","/*\r\n *******************************************************************************\r\n *\r\n * Filename: @/pages/system/Users/UserList.js\r\n *\r\n * Syntax: NA\r\n *\r\n * Synopsis: Module for managing Users.\r\n *\r\n * Author: Norman J. Nolasco [ Archetact Software ]\r\n *\r\n * Created: Friday, August 18, 2023 - 6:07 AM (CST)\r\n *\r\n * Notes:\r\n *\r\n * Revisions:\r\n * 2023/08/18 NJN Initial Build\r\n *\r\n * Copyright (c) 2023 - Archetact Software - All Rights Reserved.\r\n * Unauthorized copying of this file via any medium is strictly prohibited.\r\n * Proprietary and Confidential.\r\n *\r\n *******************************************************************************\r\n */\r\n\r\nimport React, { useEffect, useState, useRef, useMemo } from \"react\";\r\nimport styled from \"@emotion/styled\";\r\n\r\nimport { fetchApi } from \"@/utils/fetchApi\";\r\n\r\nimport { useDispatch } from \"react-redux\";\r\nimport { useNavigate } from \"react-router-dom\";\r\n\r\nimport { updateCompany, updateLocation, updateRole, updateUserStatus } from \"@/redux/slices/users\";\r\n\r\nimport {\r\n Box,\r\n Button,\r\n Card as MuiCard,\r\n CardContent as MuiCardContent,\r\n Grid,\r\n Link as MuiLink,\r\n Paper as MuiPaper,\r\n Select,\r\n MenuItem,\r\n Typography as MuiTypography,\r\n} from \"@mui/material\";\r\n\r\nimport { spacing } from \"@mui/system\";\r\n\r\nimport { AgGridReact } from \"ag-grid-react\"; // the AG Grid React Component\r\nimport \"ag-grid-enterprise\";\r\nimport { LicenseManager } from \"ag-grid-enterprise\";\r\nimport \"ag-grid-community/styles/ag-grid.css\"; // Core grid CSS, always needed\r\nimport \"ag-grid-community/styles/ag-theme-alpine.css\"; // Optional theme CSS\r\n\r\nimport \"@/App.css\";\r\n\r\nimport AddIcon from \"@mui/icons-material/Add\";\r\nimport LoadingData from \"@/pages/utils/LoadingData\";\r\nimport SnackbarAlert from \"@/pages/utils/SnackbarAlert\";\r\n\r\nimport { useSelector } from \"react-redux\";\r\n\r\nimport DeleteDialog from \"./DeleteDialog\";\r\nimport { columns as getColumns } from \"./Columns\";\r\nimport UserEdit from \"./UserEdit\";\r\n\r\nimport awsSettings from \"@/aws-exports\";\r\n\r\nLicenseManager.setLicenseKey(awsSettings.ag_grid_license);\r\n\r\nconst Card = styled(MuiCard)(spacing);\r\nconst CardContent = styled(MuiCardContent)(spacing);\r\nconst Link = styled(MuiLink)(spacing);\r\nconst Paper = styled(MuiPaper)(spacing);\r\nconst Typography = styled(MuiTypography)(spacing);\r\n\r\nfunction ItemDataGrid() {\r\n // Window Size\r\n const [gridHeight, setGridHeight] = useState(window.innerHeight - 380);\r\n\r\n const gridRef = useRef(); // Optional - for accessing Grid's API\r\n\r\n // Grid Controls\r\n const [rows, setRows] = useState([]);\r\n const [pageSize, setPageSize] = useState(100);\r\n\r\n // Form Dialogs\r\n const [isEditDialogOpen, setIsEditDialogOpen] = useState(false);\r\n const [isDeleteDialogOpen, setIsDeleteDialogOpen] = useState(false);\r\n const [isEditMode, setIsEditMode] = useState(false);\r\n\r\n const defaultColDef = useMemo(() => ({\r\n sortable: true,\r\n filter: true,\r\n resizable: true,\r\n minWidth: 100,\r\n }));\r\n\r\n const sideBar = useMemo(() => {\r\n return {\r\n toolPanels: [\r\n {\r\n id: \"columns\",\r\n labelDefault: \"Columns\",\r\n labelKey: \"columns\",\r\n iconKey: \"columns\",\r\n toolPanel: \"agColumnsToolPanel\",\r\n minWidth: 225,\r\n width: 225,\r\n maxWidth: 225,\r\n },\r\n {\r\n id: \"filters\",\r\n labelDefault: \"Filters\",\r\n labelKey: \"filters\",\r\n iconKey: \"filter\",\r\n toolPanel: \"agFiltersToolPanel\",\r\n minWidth: 180,\r\n maxWidth: 400,\r\n width: 250,\r\n },\r\n ],\r\n position: \"left\",\r\n };\r\n }, []);\r\n\r\n // Other Settings\r\n const companyid = useSelector((state) => {\r\n return state.users.companyid;\r\n });\r\n const locationid = useSelector((state) => {\r\n return state.users.locationid;\r\n });\r\n const roleid = useSelector((state) => {\r\n return state.users.roleid;\r\n });\r\n const userstatusid = useSelector((state) => {\r\n return state.users.userstatusid;\r\n });\r\n\r\n const navigate = useNavigate();\r\n const dispatch = useDispatch();\r\n\r\n const [selectedRow, setSelectedRow] = useState(null);\r\n const [snackbarSettings, setSnackbarSettings] = useState({});\r\n const [openSnackbarAlert, setOpenSnackbarAlert] = useState(false);\r\n\r\n /* state variable hooks */\r\n const [gridApi, setGridApi] = useState();\r\n\r\n // eslint-disable-next-line no-unused-vars\r\n const [columnApi, setColumnApi] = useState();\r\n\r\n const columnTypes = {\r\n dateColumn: {\r\n filter: \"agDateColumnFilter\",\r\n suppressMenu: true,\r\n },\r\n };\r\n\r\n const refetch = async () => {};\r\n\r\n const loading = null;\r\n\r\n const fetchData = async () => {\r\n try {\r\n const response = await fetchApi(\"users\", \"getUsers\", {});\r\n setRows(response.rows);\r\n } catch (error) {\r\n console.error(\"Error fetching users:\", error);\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n fetchData();\r\n const handleResize = () => {\r\n setGridHeight(window.innerHeight - 380);\r\n };\r\n window.addEventListener(\"resize\", handleResize);\r\n return () => {\r\n window.removeEventListener(\"resize\", handleResize);\r\n };\r\n }, []);\r\n\r\n const handleAddClick = () => {\r\n setSelectedRow(null);\r\n setIsEditMode(false);\r\n setIsEditDialogOpen(true);\r\n };\r\n\r\n const handleEditClick = (event, item) => {\r\n setSelectedRow(item);\r\n setIsEditMode(true);\r\n setIsEditDialogOpen(true);\r\n };\r\n\r\n const handleCloseEditDialog = (e, reason) => {\r\n if (reason === \"escapeKeyDown\" || reason === \"backdropClick\") {\r\n return false;\r\n }\r\n setIsEditDialogOpen(false);\r\n setSelectedRow({});\r\n };\r\n\r\n const handleDeleteClick = (event, item) => {\r\n setSelectedRow(item);\r\n setIsDeleteDialogOpen(true);\r\n };\r\n\r\n const handleDelete = async () => {\r\n try {\r\n const response = await fetchApi(\"users\", \"deleteUser\", {\r\n userid: selectedRow.USERID,\r\n });\r\n fetchData();\r\n handleClickSnackbarAlert(\"success\", \"User has been successfully deleted.\");\r\n setIsDeleteDialogOpen(false);\r\n } catch (error) {\r\n console.error(\"Error deleting user:\", error);\r\n }\r\n };\r\n\r\n const handleDeleteClose = () => {\r\n setIsDeleteDialogOpen(false);\r\n };\r\n\r\n const handleClickSnackbarAlert = (severity, message) => {\r\n setSnackbarSettings({\r\n severity: severity,\r\n message: message,\r\n });\r\n setOpenSnackbarAlert(true);\r\n };\r\n\r\n const handleCloseSnackbarAlert = (event, reason) => {\r\n if (reason === \"clickaway\") {\r\n return;\r\n }\r\n setSnackbarSettings({});\r\n setOpenSnackbarAlert(false);\r\n };\r\n\r\n const columns = getColumns(handleEditClick, handleDeleteClick);\r\n\r\n const onGridReady = (e) => {\r\n setGridApi(e.api);\r\n setColumnApi(e.columnApi);\r\n e.api.sizeColumnsToFit();\r\n e.columnApi.resetColumnState();\r\n };\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n 2 matches found.\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n {loading ? (\r\n \r\n ) : (\r\n \r\n )}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nfunction UserList() {\r\n return (\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default UserList;\r\n","export const COMMON_MIME_TYPES = new Map([\n // https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types\n ['aac', 'audio/aac'],\n ['abw', 'application/x-abiword'],\n ['arc', 'application/x-freearc'],\n ['avif', 'image/avif'],\n ['avi', 'video/x-msvideo'],\n ['azw', 'application/vnd.amazon.ebook'],\n ['bin', 'application/octet-stream'],\n ['bmp', 'image/bmp'],\n ['bz', 'application/x-bzip'],\n ['bz2', 'application/x-bzip2'],\n ['cda', 'application/x-cdf'],\n ['csh', 'application/x-csh'],\n ['css', 'text/css'],\n ['csv', 'text/csv'],\n ['doc', 'application/msword'],\n ['docx', 'application/vnd.openxmlformats-officedocument.wordprocessingml.document'],\n ['eot', 'application/vnd.ms-fontobject'],\n ['epub', 'application/epub+zip'],\n ['gz', 'application/gzip'],\n ['gif', 'image/gif'],\n ['heic', 'image/heic'],\n ['heif', 'image/heif'],\n ['htm', 'text/html'],\n ['html', 'text/html'],\n ['ico', 'image/vnd.microsoft.icon'],\n ['ics', 'text/calendar'],\n ['jar', 'application/java-archive'],\n ['jpeg', 'image/jpeg'],\n ['jpg', 'image/jpeg'],\n ['js', 'text/javascript'],\n ['json', 'application/json'],\n ['jsonld', 'application/ld+json'],\n ['mid', 'audio/midi'],\n ['midi', 'audio/midi'],\n ['mjs', 'text/javascript'],\n ['mp3', 'audio/mpeg'],\n ['mp4', 'video/mp4'],\n ['mpeg', 'video/mpeg'],\n ['mpkg', 'application/vnd.apple.installer+xml'],\n ['odp', 'application/vnd.oasis.opendocument.presentation'],\n ['ods', 'application/vnd.oasis.opendocument.spreadsheet'],\n ['odt', 'application/vnd.oasis.opendocument.text'],\n ['oga', 'audio/ogg'],\n ['ogv', 'video/ogg'],\n ['ogx', 'application/ogg'],\n ['opus', 'audio/opus'],\n ['otf', 'font/otf'],\n ['png', 'image/png'],\n ['pdf', 'application/pdf'],\n ['php', 'application/x-httpd-php'],\n ['ppt', 'application/vnd.ms-powerpoint'],\n ['pptx', 'application/vnd.openxmlformats-officedocument.presentationml.presentation'],\n ['rar', 'application/vnd.rar'],\n ['rtf', 'application/rtf'],\n ['sh', 'application/x-sh'],\n ['svg', 'image/svg+xml'],\n ['swf', 'application/x-shockwave-flash'],\n ['tar', 'application/x-tar'],\n ['tif', 'image/tiff'],\n ['tiff', 'image/tiff'],\n ['ts', 'video/mp2t'],\n ['ttf', 'font/ttf'],\n ['txt', 'text/plain'],\n ['vsd', 'application/vnd.visio'],\n ['wav', 'audio/wav'],\n ['weba', 'audio/webm'],\n ['webm', 'video/webm'],\n ['webp', 'image/webp'],\n ['woff', 'font/woff'],\n ['woff2', 'font/woff2'],\n ['xhtml', 'application/xhtml+xml'],\n ['xls', 'application/vnd.ms-excel'],\n ['xlsx', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'],\n ['xml', 'application/xml'],\n ['xul', 'application/vnd.mozilla.xul+xml'],\n ['zip', 'application/zip'],\n ['7z', 'application/x-7z-compressed'],\n\n // Others\n ['mkv', 'video/x-matroska'],\n ['mov', 'video/quicktime'],\n ['msg', 'application/vnd.ms-outlook']\n]);\n\n\nexport function toFileWithPath(file: FileWithPath, path?: string): FileWithPath {\n const f = withMimeType(file);\n if (typeof f.path !== 'string') { // on electron, path is already set to the absolute path\n const {webkitRelativePath} = file;\n Object.defineProperty(f, 'path', {\n value: typeof path === 'string'\n ? path\n // If is set,\n // the File will have a {webkitRelativePath} property\n // https://developer.mozilla.org/en-US/docs/Web/API/HTMLInputElement/webkitdirectory\n : typeof webkitRelativePath === 'string' && webkitRelativePath.length > 0\n ? webkitRelativePath\n : file.name,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n\n return f;\n}\n\nexport interface FileWithPath extends File {\n readonly path?: string;\n}\n\nfunction withMimeType(file: FileWithPath) {\n const {name} = file;\n const hasExtension = name && name.lastIndexOf('.') !== -1;\n\n if (hasExtension && !file.type) {\n const ext = name.split('.')\n .pop()!.toLowerCase();\n const type = COMMON_MIME_TYPES.get(ext);\n if (type) {\n Object.defineProperty(file, 'type', {\n value: type,\n writable: false,\n configurable: false,\n enumerable: true\n });\n }\n }\n\n return file;\n}\n","import {FileWithPath, toFileWithPath} from './file';\n\n\nconst FILES_TO_IGNORE = [\n // Thumbnail cache files for macOS and Windows\n '.DS_Store', // macOs\n 'Thumbs.db' // Windows\n];\n\n\n/**\n * Convert a DragEvent's DataTrasfer object to a list of File objects\n * NOTE: If some of the items are folders,\n * everything will be flattened and placed in the same list but the paths will be kept as a {path} property.\n *\n * EXPERIMENTAL: A list of https://developer.mozilla.org/en-US/docs/Web/API/FileSystemHandle objects can also be passed as an arg\n * and a list of File objects will be returned.\n *\n * @param evt\n */\nexport async function fromEvent(evt: Event | any): Promise<(FileWithPath | DataTransferItem)[]> {\n if (isObject(evt) && isDataTransfer(evt.dataTransfer)) {\n return getDataTransferFiles(evt.dataTransfer, evt.type);\n } else if (isChangeEvt(evt)) {\n return getInputFiles(evt);\n } else if (Array.isArray(evt) && evt.every(item => 'getFile' in item && typeof item.getFile === 'function')) {\n return getFsHandleFiles(evt)\n }\n return [];\n}\n\nfunction isDataTransfer(value: any): value is DataTransfer {\n return isObject(value);\n}\n\nfunction isChangeEvt(value: any): value is Event {\n return isObject(value) && isObject(value.target);\n}\n\nfunction isObject(v: any): v is T {\n return typeof v === 'object' && v !== null\n}\n\nfunction getInputFiles(evt: Event) {\n return fromList((evt.target as HTMLInputElement).files).map(file => toFileWithPath(file));\n}\n\n// Ee expect each handle to be https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileHandle\nasync function getFsHandleFiles(handles: any[]) {\n const files = await Promise.all(handles.map(h => h.getFile()));\n return files.map(file => toFileWithPath(file));\n}\n\n\nasync function getDataTransferFiles(dt: DataTransfer, type: string) {\n // IE11 does not support dataTransfer.items\n // See https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/items#Browser_compatibility\n if (dt.items) {\n const items = fromList(dt.items)\n .filter(item => item.kind === 'file');\n // According to https://html.spec.whatwg.org/multipage/dnd.html#dndevents,\n // only 'dragstart' and 'drop' has access to the data (source node)\n if (type !== 'drop') {\n return items;\n }\n const files = await Promise.all(items.map(toFilePromises));\n return noIgnoredFiles(flatten(files));\n }\n\n return noIgnoredFiles(fromList(dt.files)\n .map(file => toFileWithPath(file)));\n}\n\nfunction noIgnoredFiles(files: FileWithPath[]) {\n return files.filter(file => FILES_TO_IGNORE.indexOf(file.name) === -1);\n}\n\n// IE11 does not support Array.from()\n// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/from#Browser_compatibility\n// https://developer.mozilla.org/en-US/docs/Web/API/FileList\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItemList\nfunction fromList(items: DataTransferItemList | FileList | null): T[] {\n if (items === null) {\n return [];\n }\n\n const files = [];\n\n // tslint:disable: prefer-for-of\n for (let i = 0; i < items.length; i++) {\n const file = items[i];\n files.push(file);\n }\n\n return files as any;\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/DataTransferItem\nfunction toFilePromises(item: DataTransferItem) {\n if (typeof item.webkitGetAsEntry !== 'function') {\n return fromDataTransferItem(item);\n }\n\n const entry = item.webkitGetAsEntry();\n\n // Safari supports dropping an image node from a different window and can be retrieved using\n // the DataTransferItem.getAsFile() API\n // NOTE: FileSystemEntry.file() throws if trying to get the file\n if (entry && entry.isDirectory) {\n return fromDirEntry(entry) as any;\n }\n\n return fromDataTransferItem(item);\n}\n\nfunction flatten(items: any[]): T[] {\n return items.reduce((acc, files) => [\n ...acc,\n ...(Array.isArray(files) ? flatten(files) : [files])\n ], []);\n}\n\nfunction fromDataTransferItem(item: DataTransferItem) {\n const file = item.getAsFile();\n if (!file) {\n return Promise.reject(`${item} is not a File`);\n }\n const fwp = toFileWithPath(file);\n return Promise.resolve(fwp);\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemEntry\nasync function fromEntry(entry: any) {\n return entry.isDirectory ? fromDirEntry(entry) : fromFileEntry(entry);\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry\nfunction fromDirEntry(entry: any) {\n const reader = entry.createReader();\n\n return new Promise((resolve, reject) => {\n const entries: Promise[] = [];\n\n function readEntries() {\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryEntry/createReader\n // https://developer.mozilla.org/en-US/docs/Web/API/FileSystemDirectoryReader/readEntries\n reader.readEntries(async (batch: any[]) => {\n if (!batch.length) {\n // Done reading directory\n try {\n const files = await Promise.all(entries);\n resolve(files);\n } catch (err) {\n reject(err);\n }\n } else {\n const items = Promise.all(batch.map(fromEntry));\n entries.push(items);\n\n // Continue reading\n readEntries();\n }\n }, (err: any) => {\n reject(err);\n });\n }\n\n readEntries();\n });\n}\n\n// https://developer.mozilla.org/en-US/docs/Web/API/FileSystemFileEntry\nasync function fromFileEntry(entry: any) {\n return new Promise((resolve, reject) => {\n entry.file((file: FileWithPath) => {\n const fwp = toFileWithPath(file, entry.fullPath);\n resolve(fwp);\n }, (err: any) => {\n reject(err);\n });\n });\n}\n\n// Infinite type recursion\n// https://github.com/Microsoft/TypeScript/issues/3496#issuecomment-128553540\ninterface FileArray extends Array {}\ntype FileValue = FileWithPath\n | FileArray[];\n","function _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _typeof(obj) { \"@babel/helpers - typeof\"; return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && \"function\" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; }, _typeof(obj); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nimport accepts from \"attr-accept\"; // Error codes\n\nexport var FILE_INVALID_TYPE = \"file-invalid-type\";\nexport var FILE_TOO_LARGE = \"file-too-large\";\nexport var FILE_TOO_SMALL = \"file-too-small\";\nexport var TOO_MANY_FILES = \"too-many-files\";\nexport var ErrorCode = {\n FileInvalidType: FILE_INVALID_TYPE,\n FileTooLarge: FILE_TOO_LARGE,\n FileTooSmall: FILE_TOO_SMALL,\n TooManyFiles: TOO_MANY_FILES\n}; // File Errors\n\nexport var getInvalidTypeRejectionErr = function getInvalidTypeRejectionErr(accept) {\n accept = Array.isArray(accept) && accept.length === 1 ? accept[0] : accept;\n var messageSuffix = Array.isArray(accept) ? \"one of \".concat(accept.join(\", \")) : accept;\n return {\n code: FILE_INVALID_TYPE,\n message: \"File type must be \".concat(messageSuffix)\n };\n};\nexport var getTooLargeRejectionErr = function getTooLargeRejectionErr(maxSize) {\n return {\n code: FILE_TOO_LARGE,\n message: \"File is larger than \".concat(maxSize, \" \").concat(maxSize === 1 ? \"byte\" : \"bytes\")\n };\n};\nexport var getTooSmallRejectionErr = function getTooSmallRejectionErr(minSize) {\n return {\n code: FILE_TOO_SMALL,\n message: \"File is smaller than \".concat(minSize, \" \").concat(minSize === 1 ? \"byte\" : \"bytes\")\n };\n};\nexport var TOO_MANY_FILES_REJECTION = {\n code: TOO_MANY_FILES,\n message: \"Too many files\"\n}; // Firefox versions prior to 53 return a bogus MIME type for every file drag, so dragovers with\n// that MIME type will always be accepted\n\nexport function fileAccepted(file, accept) {\n var isAcceptable = file.type === \"application/x-moz-file\" || accepts(file, accept);\n return [isAcceptable, isAcceptable ? null : getInvalidTypeRejectionErr(accept)];\n}\nexport function fileMatchSize(file, minSize, maxSize) {\n if (isDefined(file.size)) {\n if (isDefined(minSize) && isDefined(maxSize)) {\n if (file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n if (file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];\n } else if (isDefined(minSize) && file.size < minSize) return [false, getTooSmallRejectionErr(minSize)];else if (isDefined(maxSize) && file.size > maxSize) return [false, getTooLargeRejectionErr(maxSize)];\n }\n\n return [true, null];\n}\n\nfunction isDefined(value) {\n return value !== undefined && value !== null;\n}\n/**\n *\n * @param {object} options\n * @param {File[]} options.files\n * @param {string|string[]} [options.accept]\n * @param {number} [options.minSize]\n * @param {number} [options.maxSize]\n * @param {boolean} [options.multiple]\n * @param {number} [options.maxFiles]\n * @param {(f: File) => FileError|FileError[]|null} [options.validator]\n * @returns\n */\n\n\nexport function allFilesAccepted(_ref) {\n var files = _ref.files,\n accept = _ref.accept,\n minSize = _ref.minSize,\n maxSize = _ref.maxSize,\n multiple = _ref.multiple,\n maxFiles = _ref.maxFiles,\n validator = _ref.validator;\n\n if (!multiple && files.length > 1 || multiple && maxFiles >= 1 && files.length > maxFiles) {\n return false;\n }\n\n return files.every(function (file) {\n var _fileAccepted = fileAccepted(file, accept),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 1),\n accepted = _fileAccepted2[0];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 1),\n sizeMatch = _fileMatchSize2[0];\n\n var customErrors = validator ? validator(file) : null;\n return accepted && sizeMatch && !customErrors;\n });\n} // React's synthetic events has event.isPropagationStopped,\n// but to remain compatibility with other libs (Preact) fall back\n// to check event.cancelBubble\n\nexport function isPropagationStopped(event) {\n if (typeof event.isPropagationStopped === \"function\") {\n return event.isPropagationStopped();\n } else if (typeof event.cancelBubble !== \"undefined\") {\n return event.cancelBubble;\n }\n\n return false;\n}\nexport function isEvtWithFiles(event) {\n if (!event.dataTransfer) {\n return !!event.target && !!event.target.files;\n } // https://developer.mozilla.org/en-US/docs/Web/API/DataTransfer/types\n // https://developer.mozilla.org/en-US/docs/Web/API/HTML_Drag_and_Drop_API/Recommended_drag_types#file\n\n\n return Array.prototype.some.call(event.dataTransfer.types, function (type) {\n return type === \"Files\" || type === \"application/x-moz-file\";\n });\n}\nexport function isKindFile(item) {\n return _typeof(item) === \"object\" && item !== null && item.kind === \"file\";\n} // allow the entire document to be a drag target\n\nexport function onDocumentDragOver(event) {\n event.preventDefault();\n}\n\nfunction isIe(userAgent) {\n return userAgent.indexOf(\"MSIE\") !== -1 || userAgent.indexOf(\"Trident/\") !== -1;\n}\n\nfunction isEdge(userAgent) {\n return userAgent.indexOf(\"Edge/\") !== -1;\n}\n\nexport function isIeOrEdge() {\n var userAgent = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : window.navigator.userAgent;\n return isIe(userAgent) || isEdge(userAgent);\n}\n/**\n * This is intended to be used to compose event handlers\n * They are executed in order until one of them calls `event.isPropagationStopped()`.\n * Note that the check is done on the first invoke too,\n * meaning that if propagation was stopped before invoking the fns,\n * no handlers will be executed.\n *\n * @param {Function} fns the event hanlder functions\n * @return {Function} the event handler to add to an element\n */\n\nexport function composeEventHandlers() {\n for (var _len = arguments.length, fns = new Array(_len), _key = 0; _key < _len; _key++) {\n fns[_key] = arguments[_key];\n }\n\n return function (event) {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n return fns.some(function (fn) {\n if (!isPropagationStopped(event) && fn) {\n fn.apply(void 0, [event].concat(args));\n }\n\n return isPropagationStopped(event);\n });\n };\n}\n/**\n * canUseFileSystemAccessAPI checks if the [File System Access API](https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API)\n * is supported by the browser.\n * @returns {boolean}\n */\n\nexport function canUseFileSystemAccessAPI() {\n return \"showOpenFilePicker\" in window;\n}\n/**\n * Convert the `{accept}` dropzone prop to the\n * `{types}` option for https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n *\n * @param {AcceptProp} accept\n * @returns {{accept: string[]}[]}\n */\n\nexport function pickerOptionsFromAccept(accept) {\n if (isDefined(accept)) {\n var acceptForPicker = Object.entries(accept).filter(function (_ref2) {\n var _ref3 = _slicedToArray(_ref2, 2),\n mimeType = _ref3[0],\n ext = _ref3[1];\n\n var ok = true;\n\n if (!isMIMEType(mimeType)) {\n console.warn(\"Skipped \\\"\".concat(mimeType, \"\\\" because it is not a valid MIME type. Check https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types for a list of valid MIME types.\"));\n ok = false;\n }\n\n if (!Array.isArray(ext) || !ext.every(isExt)) {\n console.warn(\"Skipped \\\"\".concat(mimeType, \"\\\" because an invalid file extension was provided.\"));\n ok = false;\n }\n\n return ok;\n }).reduce(function (agg, _ref4) {\n var _ref5 = _slicedToArray(_ref4, 2),\n mimeType = _ref5[0],\n ext = _ref5[1];\n\n return _objectSpread(_objectSpread({}, agg), {}, _defineProperty({}, mimeType, ext));\n }, {});\n return [{\n // description is required due to https://crbug.com/1264708\n description: \"Files\",\n accept: acceptForPicker\n }];\n }\n\n return accept;\n}\n/**\n * Convert the `{accept}` dropzone prop to an array of MIME types/extensions.\n * @param {AcceptProp} accept\n * @returns {string}\n */\n\nexport function acceptPropAsAcceptAttr(accept) {\n if (isDefined(accept)) {\n return Object.entries(accept).reduce(function (a, _ref6) {\n var _ref7 = _slicedToArray(_ref6, 2),\n mimeType = _ref7[0],\n ext = _ref7[1];\n\n return [].concat(_toConsumableArray(a), [mimeType], _toConsumableArray(ext));\n }, []) // Silently discard invalid entries as pickerOptionsFromAccept warns about these\n .filter(function (v) {\n return isMIMEType(v) || isExt(v);\n }).join(\",\");\n }\n\n return undefined;\n}\n/**\n * Check if v is an exception caused by aborting a request (e.g window.showOpenFilePicker()).\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/DOMException.\n * @param {any} v\n * @returns {boolean} True if v is an abort exception.\n */\n\nexport function isAbort(v) {\n return v instanceof DOMException && (v.name === \"AbortError\" || v.code === v.ABORT_ERR);\n}\n/**\n * Check if v is a security error.\n *\n * See https://developer.mozilla.org/en-US/docs/Web/API/DOMException.\n * @param {any} v\n * @returns {boolean} True if v is a security error.\n */\n\nexport function isSecurityError(v) {\n return v instanceof DOMException && (v.name === \"SecurityError\" || v.code === v.SECURITY_ERR);\n}\n/**\n * Check if v is a MIME type string.\n *\n * See accepted format: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input/file#unique_file_type_specifiers.\n *\n * @param {string} v\n */\n\nexport function isMIMEType(v) {\n return v === \"audio/*\" || v === \"video/*\" || v === \"image/*\" || v === \"text/*\" || /\\w+\\/[-+.\\w]+/g.test(v);\n}\n/**\n * Check if v is a file extension.\n * @param {string} v\n */\n\nexport function isExt(v) {\n return /^.*\\.[\\w]+$/.test(v);\n}\n/**\n * @typedef {Object.} AcceptProp\n */\n\n/**\n * @typedef {object} FileError\n * @property {string} message\n * @property {ErrorCode|string} code\n */\n\n/**\n * @typedef {\"file-invalid-type\"|\"file-too-large\"|\"file-too-small\"|\"too-many-files\"} ErrorCode\n */","var _excluded = [\"children\"],\n _excluded2 = [\"open\"],\n _excluded3 = [\"refKey\", \"role\", \"onKeyDown\", \"onFocus\", \"onBlur\", \"onClick\", \"onDragEnter\", \"onDragOver\", \"onDragLeave\", \"onDrop\"],\n _excluded4 = [\"refKey\", \"onChange\", \"onClick\"];\n\nfunction _toConsumableArray(arr) { return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread(); }\n\nfunction _nonIterableSpread() { 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\nfunction _iterableToArray(iter) { if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter); }\n\nfunction _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToArray(arr); }\n\nfunction _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }\n\nfunction _nonIterableRest() { throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\nfunction _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i[\"return\"] != null) _i[\"return\"](); } finally { if (_d) throw _e; } } return _arr; }\n\nfunction _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nfunction _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }\n\nfunction _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }\n\n/* eslint prefer-template: 0 */\nimport React, { forwardRef, Fragment, useCallback, useEffect, useImperativeHandle, useMemo, useReducer, useRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { fromEvent } from \"file-selector\";\nimport { acceptPropAsAcceptAttr, allFilesAccepted, composeEventHandlers, fileAccepted, fileMatchSize, canUseFileSystemAccessAPI, isAbort, isEvtWithFiles, isIeOrEdge, isPropagationStopped, isSecurityError, onDocumentDragOver, pickerOptionsFromAccept, TOO_MANY_FILES_REJECTION } from \"./utils/index\";\n/**\n * Convenience wrapper component for the `useDropzone` hook\n *\n * ```jsx\n * \n * {({getRootProps, getInputProps}) => (\n *
\n * \n *

Drag 'n' drop some files here, or click to select files

\n *
\n * )}\n *
\n * ```\n */\n\nvar Dropzone = /*#__PURE__*/forwardRef(function (_ref, ref) {\n var children = _ref.children,\n params = _objectWithoutProperties(_ref, _excluded);\n\n var _useDropzone = useDropzone(params),\n open = _useDropzone.open,\n props = _objectWithoutProperties(_useDropzone, _excluded2);\n\n useImperativeHandle(ref, function () {\n return {\n open: open\n };\n }, [open]); // TODO: Figure out why react-styleguidist cannot create docs if we don't return a jsx element\n\n return /*#__PURE__*/React.createElement(Fragment, null, children(_objectSpread(_objectSpread({}, props), {}, {\n open: open\n })));\n});\nDropzone.displayName = \"Dropzone\"; // Add default props for react-docgen\n\nvar defaultProps = {\n disabled: false,\n getFilesFromEvent: fromEvent,\n maxSize: Infinity,\n minSize: 0,\n multiple: true,\n maxFiles: 0,\n preventDropOnDocument: true,\n noClick: false,\n noKeyboard: false,\n noDrag: false,\n noDragEventsBubbling: false,\n validator: null,\n useFsAccessApi: true,\n autoFocus: false\n};\nDropzone.defaultProps = defaultProps;\nDropzone.propTypes = {\n /**\n * Render function that exposes the dropzone state and prop getter fns\n *\n * @param {object} params\n * @param {Function} params.getRootProps Returns the props you should apply to the root drop container you render\n * @param {Function} params.getInputProps Returns the props you should apply to hidden file input you render\n * @param {Function} params.open Open the native file selection dialog\n * @param {boolean} params.isFocused Dropzone area is in focus\n * @param {boolean} params.isFileDialogActive File dialog is opened\n * @param {boolean} params.isDragActive Active drag is in progress\n * @param {boolean} params.isDragAccept Dragged files are accepted\n * @param {boolean} params.isDragReject Some dragged files are rejected\n * @param {File[]} params.acceptedFiles Accepted files\n * @param {FileRejection[]} params.fileRejections Rejected files and why they were rejected\n */\n children: PropTypes.func,\n\n /**\n * Set accepted file types.\n * Checkout https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker types option for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all (https://github.com/react-dropzone/react-dropzone/issues/276).\n */\n accept: PropTypes.objectOf(PropTypes.arrayOf(PropTypes.string)),\n\n /**\n * Allow drag 'n' drop (or selection from the file dialog) of multiple files\n */\n multiple: PropTypes.bool,\n\n /**\n * If false, allow dropped items to take over the current browser window\n */\n preventDropOnDocument: PropTypes.bool,\n\n /**\n * If true, disables click to open the native file selection dialog\n */\n noClick: PropTypes.bool,\n\n /**\n * If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n */\n noKeyboard: PropTypes.bool,\n\n /**\n * If true, disables drag 'n' drop\n */\n noDrag: PropTypes.bool,\n\n /**\n * If true, stops drag event propagation to parents\n */\n noDragEventsBubbling: PropTypes.bool,\n\n /**\n * Minimum file size (in bytes)\n */\n minSize: PropTypes.number,\n\n /**\n * Maximum file size (in bytes)\n */\n maxSize: PropTypes.number,\n\n /**\n * Maximum accepted number of files\n * The default value is 0 which means there is no limitation to how many files are accepted.\n */\n maxFiles: PropTypes.number,\n\n /**\n * Enable/disable the dropzone\n */\n disabled: PropTypes.bool,\n\n /**\n * Use this to provide a custom file aggregator\n *\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n getFilesFromEvent: PropTypes.func,\n\n /**\n * Cb for when closing the file dialog with no selection\n */\n onFileDialogCancel: PropTypes.func,\n\n /**\n * Cb for when opening the file dialog\n */\n onFileDialogOpen: PropTypes.func,\n\n /**\n * Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n * to open the file picker instead of using an `` click event.\n */\n useFsAccessApi: PropTypes.bool,\n\n /**\n * Set to true to focus the root element on render\n */\n autoFocus: PropTypes.bool,\n\n /**\n * Cb for when the `dragenter` event occurs.\n *\n * @param {DragEvent} event\n */\n onDragEnter: PropTypes.func,\n\n /**\n * Cb for when the `dragleave` event occurs\n *\n * @param {DragEvent} event\n */\n onDragLeave: PropTypes.func,\n\n /**\n * Cb for when the `dragover` event occurs\n *\n * @param {DragEvent} event\n */\n onDragOver: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) or a valid file extension.\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n *\n * @param {File[]} acceptedFiles\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n onDrop: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are accepted, this callback is not invoked.\n *\n * @param {File[]} files\n * @param {(DragEvent|Event)} event\n */\n onDropAccepted: PropTypes.func,\n\n /**\n * Cb for when the `drop` event occurs.\n * Note that if no files are rejected, this callback is not invoked.\n *\n * @param {FileRejection[]} fileRejections\n * @param {(DragEvent|Event)} event\n */\n onDropRejected: PropTypes.func,\n\n /**\n * Cb for when there's some error from any of the promises.\n *\n * @param {Error} error\n */\n onError: PropTypes.func,\n\n /**\n * Custom validation function. It must return null if there's no errors.\n * @param {File} file\n * @returns {FileError|FileError[]|null}\n */\n validator: PropTypes.func\n};\nexport default Dropzone;\n/**\n * A function that is invoked for the `dragenter`,\n * `dragover` and `dragleave` events.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dragCb\n * @param {DragEvent} event\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are not files (such as link, text, etc.).\n *\n * @callback dropCb\n * @param {File[]} acceptedFiles List of accepted files\n * @param {FileRejection[]} fileRejections List of rejected files and why they were rejected\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n * It is not invoked if the items are files (such as link, text, etc.).\n *\n * @callback dropAcceptedCb\n * @param {File[]} files List of accepted files that meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is invoked for the `drop` or input change event.\n *\n * @callback dropRejectedCb\n * @param {File[]} files List of rejected files that do not meet the given criteria\n * (`accept`, `multiple`, `minSize`, `maxSize`)\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n */\n\n/**\n * A function that is used aggregate files,\n * in a asynchronous fashion, from drag or input change events.\n *\n * @callback getFilesFromEvent\n * @param {(DragEvent|Event)} event A drag event or input change event (if files were selected via the file dialog)\n * @returns {(File[]|Promise)}\n */\n\n/**\n * An object with the current dropzone state.\n *\n * @typedef {object} DropzoneState\n * @property {boolean} isFocused Dropzone area is in focus\n * @property {boolean} isFileDialogActive File dialog is opened\n * @property {boolean} isDragActive Active drag is in progress\n * @property {boolean} isDragAccept Dragged files are accepted\n * @property {boolean} isDragReject Some dragged files are rejected\n * @property {File[]} acceptedFiles Accepted files\n * @property {FileRejection[]} fileRejections Rejected files and why they were rejected\n */\n\n/**\n * An object with the dropzone methods.\n *\n * @typedef {object} DropzoneMethods\n * @property {Function} getRootProps Returns the props you should apply to the root drop container you render\n * @property {Function} getInputProps Returns the props you should apply to hidden file input you render\n * @property {Function} open Open the native file selection dialog\n */\n\nvar initialState = {\n isFocused: false,\n isFileDialogActive: false,\n isDragActive: false,\n isDragAccept: false,\n isDragReject: false,\n acceptedFiles: [],\n fileRejections: []\n};\n/**\n * A React hook that creates a drag 'n' drop area.\n *\n * ```jsx\n * function MyDropzone(props) {\n * const {getRootProps, getInputProps} = useDropzone({\n * onDrop: acceptedFiles => {\n * // do something with the File objects, e.g. upload to some server\n * }\n * });\n * return (\n *
\n * \n *

Drag and drop some files here, or click to select files

\n *
\n * )\n * }\n * ```\n *\n * @function useDropzone\n *\n * @param {object} props\n * @param {import(\"./utils\").AcceptProp} [props.accept] Set accepted file types.\n * Checkout https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker types option for more information.\n * Keep in mind that mime type determination is not reliable across platforms. CSV files,\n * for example, are reported as text/plain under macOS but as application/vnd.ms-excel under\n * Windows. In some cases there might not be a mime type set at all (https://github.com/react-dropzone/react-dropzone/issues/276).\n * @param {boolean} [props.multiple=true] Allow drag 'n' drop (or selection from the file dialog) of multiple files\n * @param {boolean} [props.preventDropOnDocument=true] If false, allow dropped items to take over the current browser window\n * @param {boolean} [props.noClick=false] If true, disables click to open the native file selection dialog\n * @param {boolean} [props.noKeyboard=false] If true, disables SPACE/ENTER to open the native file selection dialog.\n * Note that it also stops tracking the focus state.\n * @param {boolean} [props.noDrag=false] If true, disables drag 'n' drop\n * @param {boolean} [props.noDragEventsBubbling=false] If true, stops drag event propagation to parents\n * @param {number} [props.minSize=0] Minimum file size (in bytes)\n * @param {number} [props.maxSize=Infinity] Maximum file size (in bytes)\n * @param {boolean} [props.disabled=false] Enable/disable the dropzone\n * @param {getFilesFromEvent} [props.getFilesFromEvent] Use this to provide a custom file aggregator\n * @param {Function} [props.onFileDialogCancel] Cb for when closing the file dialog with no selection\n * @param {boolean} [props.useFsAccessApi] Set to true to use the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API\n * to open the file picker instead of using an `` click event.\n * @param {boolean} autoFocus Set to true to auto focus the root element.\n * @param {Function} [props.onFileDialogOpen] Cb for when opening the file dialog\n * @param {dragCb} [props.onDragEnter] Cb for when the `dragenter` event occurs.\n * @param {dragCb} [props.onDragLeave] Cb for when the `dragleave` event occurs\n * @param {dragCb} [props.onDragOver] Cb for when the `dragover` event occurs\n * @param {dropCb} [props.onDrop] Cb for when the `drop` event occurs.\n * Note that this callback is invoked after the `getFilesFromEvent` callback is done.\n *\n * Files are accepted or rejected based on the `accept`, `multiple`, `minSize` and `maxSize` props.\n * `accept` must be an object with keys as a valid [MIME type](http://www.iana.org/assignments/media-types/media-types.xhtml) according to [input element specification](https://www.w3.org/wiki/HTML/Elements/input/file) and the value an array of file extensions (optional).\n * If `multiple` is set to false and additional files are dropped,\n * all files besides the first will be rejected.\n * Any file which does not have a size in the [`minSize`, `maxSize`] range, will be rejected as well.\n *\n * Note that the `onDrop` callback will always be invoked regardless if the dropped files were accepted or rejected.\n * If you'd like to react to a specific scenario, use the `onDropAccepted`/`onDropRejected` props.\n *\n * `onDrop` will provide you with an array of [File](https://developer.mozilla.org/en-US/docs/Web/API/File) objects which you can then process and send to a server.\n * For example, with [SuperAgent](https://github.com/visionmedia/superagent) as a http/ajax library:\n *\n * ```js\n * function onDrop(acceptedFiles) {\n * const req = request.post('/upload')\n * acceptedFiles.forEach(file => {\n * req.attach(file.name, file)\n * })\n * req.end(callback)\n * }\n * ```\n * @param {dropAcceptedCb} [props.onDropAccepted]\n * @param {dropRejectedCb} [props.onDropRejected]\n * @param {(error: Error) => void} [props.onError]\n *\n * @returns {DropzoneState & DropzoneMethods}\n */\n\nexport function useDropzone() {\n var props = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var _defaultProps$props = _objectSpread(_objectSpread({}, defaultProps), props),\n accept = _defaultProps$props.accept,\n disabled = _defaultProps$props.disabled,\n getFilesFromEvent = _defaultProps$props.getFilesFromEvent,\n maxSize = _defaultProps$props.maxSize,\n minSize = _defaultProps$props.minSize,\n multiple = _defaultProps$props.multiple,\n maxFiles = _defaultProps$props.maxFiles,\n onDragEnter = _defaultProps$props.onDragEnter,\n onDragLeave = _defaultProps$props.onDragLeave,\n onDragOver = _defaultProps$props.onDragOver,\n onDrop = _defaultProps$props.onDrop,\n onDropAccepted = _defaultProps$props.onDropAccepted,\n onDropRejected = _defaultProps$props.onDropRejected,\n onFileDialogCancel = _defaultProps$props.onFileDialogCancel,\n onFileDialogOpen = _defaultProps$props.onFileDialogOpen,\n useFsAccessApi = _defaultProps$props.useFsAccessApi,\n autoFocus = _defaultProps$props.autoFocus,\n preventDropOnDocument = _defaultProps$props.preventDropOnDocument,\n noClick = _defaultProps$props.noClick,\n noKeyboard = _defaultProps$props.noKeyboard,\n noDrag = _defaultProps$props.noDrag,\n noDragEventsBubbling = _defaultProps$props.noDragEventsBubbling,\n onError = _defaultProps$props.onError,\n validator = _defaultProps$props.validator;\n\n var acceptAttr = useMemo(function () {\n return acceptPropAsAcceptAttr(accept);\n }, [accept]);\n var pickerTypes = useMemo(function () {\n return pickerOptionsFromAccept(accept);\n }, [accept]);\n var onFileDialogOpenCb = useMemo(function () {\n return typeof onFileDialogOpen === \"function\" ? onFileDialogOpen : noop;\n }, [onFileDialogOpen]);\n var onFileDialogCancelCb = useMemo(function () {\n return typeof onFileDialogCancel === \"function\" ? onFileDialogCancel : noop;\n }, [onFileDialogCancel]);\n /**\n * @constant\n * @type {React.MutableRefObject}\n */\n\n var rootRef = useRef(null);\n var inputRef = useRef(null);\n\n var _useReducer = useReducer(reducer, initialState),\n _useReducer2 = _slicedToArray(_useReducer, 2),\n state = _useReducer2[0],\n dispatch = _useReducer2[1];\n\n var isFocused = state.isFocused,\n isFileDialogActive = state.isFileDialogActive;\n var fsAccessApiWorksRef = useRef(typeof window !== \"undefined\" && window.isSecureContext && useFsAccessApi && canUseFileSystemAccessAPI()); // Update file dialog active state when the window is focused on\n\n var onWindowFocus = function onWindowFocus() {\n // Execute the timeout only if the file dialog is opened in the browser\n if (!fsAccessApiWorksRef.current && isFileDialogActive) {\n setTimeout(function () {\n if (inputRef.current) {\n var files = inputRef.current.files;\n\n if (!files.length) {\n dispatch({\n type: \"closeDialog\"\n });\n onFileDialogCancelCb();\n }\n }\n }, 300);\n }\n };\n\n useEffect(function () {\n window.addEventListener(\"focus\", onWindowFocus, false);\n return function () {\n window.removeEventListener(\"focus\", onWindowFocus, false);\n };\n }, [inputRef, isFileDialogActive, onFileDialogCancelCb, fsAccessApiWorksRef]);\n var dragTargetsRef = useRef([]);\n\n var onDocumentDrop = function onDocumentDrop(event) {\n if (rootRef.current && rootRef.current.contains(event.target)) {\n // If we intercepted an event for our instance, let it propagate down to the instance's onDrop handler\n return;\n }\n\n event.preventDefault();\n dragTargetsRef.current = [];\n };\n\n useEffect(function () {\n if (preventDropOnDocument) {\n document.addEventListener(\"dragover\", onDocumentDragOver, false);\n document.addEventListener(\"drop\", onDocumentDrop, false);\n }\n\n return function () {\n if (preventDropOnDocument) {\n document.removeEventListener(\"dragover\", onDocumentDragOver);\n document.removeEventListener(\"drop\", onDocumentDrop);\n }\n };\n }, [rootRef, preventDropOnDocument]); // Auto focus the root when autoFocus is true\n\n useEffect(function () {\n if (!disabled && autoFocus && rootRef.current) {\n rootRef.current.focus();\n }\n\n return function () {};\n }, [rootRef, autoFocus, disabled]);\n var onErrCb = useCallback(function (e) {\n if (onError) {\n onError(e);\n } else {\n // Let the user know something's gone wrong if they haven't provided the onError cb.\n console.error(e);\n }\n }, [onError]);\n var onDragEnterCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [].concat(_toConsumableArray(dragTargetsRef.current), [event.target]);\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (files) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n var fileCount = files.length;\n var isDragAccept = fileCount > 0 && allFilesAccepted({\n files: files,\n accept: acceptAttr,\n minSize: minSize,\n maxSize: maxSize,\n multiple: multiple,\n maxFiles: maxFiles,\n validator: validator\n });\n var isDragReject = fileCount > 0 && !isDragAccept;\n dispatch({\n isDragAccept: isDragAccept,\n isDragReject: isDragReject,\n isDragActive: true,\n type: \"setDraggedFiles\"\n });\n\n if (onDragEnter) {\n onDragEnter(event);\n }\n }).catch(function (e) {\n return onErrCb(e);\n });\n }\n }, [getFilesFromEvent, onDragEnter, onErrCb, noDragEventsBubbling, acceptAttr, minSize, maxSize, multiple, maxFiles, validator]);\n var onDragOverCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event);\n var hasFiles = isEvtWithFiles(event);\n\n if (hasFiles && event.dataTransfer) {\n try {\n event.dataTransfer.dropEffect = \"copy\";\n } catch (_unused) {}\n /* eslint-disable-line no-empty */\n\n }\n\n if (hasFiles && onDragOver) {\n onDragOver(event);\n }\n\n return false;\n }, [onDragOver, noDragEventsBubbling]);\n var onDragLeaveCb = useCallback(function (event) {\n event.preventDefault();\n event.persist();\n stopPropagation(event); // Only deactivate once the dropzone and all children have been left\n\n var targets = dragTargetsRef.current.filter(function (target) {\n return rootRef.current && rootRef.current.contains(target);\n }); // Make sure to remove a target present multiple times only once\n // (Firefox may fire dragenter/dragleave multiple times on the same element)\n\n var targetIdx = targets.indexOf(event.target);\n\n if (targetIdx !== -1) {\n targets.splice(targetIdx, 1);\n }\n\n dragTargetsRef.current = targets;\n\n if (targets.length > 0) {\n return;\n }\n\n dispatch({\n type: \"setDraggedFiles\",\n isDragActive: false,\n isDragAccept: false,\n isDragReject: false\n });\n\n if (isEvtWithFiles(event) && onDragLeave) {\n onDragLeave(event);\n }\n }, [rootRef, onDragLeave, noDragEventsBubbling]);\n var setFiles = useCallback(function (files, event) {\n var acceptedFiles = [];\n var fileRejections = [];\n files.forEach(function (file) {\n var _fileAccepted = fileAccepted(file, acceptAttr),\n _fileAccepted2 = _slicedToArray(_fileAccepted, 2),\n accepted = _fileAccepted2[0],\n acceptError = _fileAccepted2[1];\n\n var _fileMatchSize = fileMatchSize(file, minSize, maxSize),\n _fileMatchSize2 = _slicedToArray(_fileMatchSize, 2),\n sizeMatch = _fileMatchSize2[0],\n sizeError = _fileMatchSize2[1];\n\n var customErrors = validator ? validator(file) : null;\n\n if (accepted && sizeMatch && !customErrors) {\n acceptedFiles.push(file);\n } else {\n var errors = [acceptError, sizeError];\n\n if (customErrors) {\n errors = errors.concat(customErrors);\n }\n\n fileRejections.push({\n file: file,\n errors: errors.filter(function (e) {\n return e;\n })\n });\n }\n });\n\n if (!multiple && acceptedFiles.length > 1 || multiple && maxFiles >= 1 && acceptedFiles.length > maxFiles) {\n // Reject everything and empty accepted files\n acceptedFiles.forEach(function (file) {\n fileRejections.push({\n file: file,\n errors: [TOO_MANY_FILES_REJECTION]\n });\n });\n acceptedFiles.splice(0);\n }\n\n dispatch({\n acceptedFiles: acceptedFiles,\n fileRejections: fileRejections,\n type: \"setFiles\"\n });\n\n if (onDrop) {\n onDrop(acceptedFiles, fileRejections, event);\n }\n\n if (fileRejections.length > 0 && onDropRejected) {\n onDropRejected(fileRejections, event);\n }\n\n if (acceptedFiles.length > 0 && onDropAccepted) {\n onDropAccepted(acceptedFiles, event);\n }\n }, [dispatch, multiple, acceptAttr, minSize, maxSize, maxFiles, onDrop, onDropAccepted, onDropRejected, validator]);\n var onDropCb = useCallback(function (event) {\n event.preventDefault(); // Persist here because we need the event later after getFilesFromEvent() is done\n\n event.persist();\n stopPropagation(event);\n dragTargetsRef.current = [];\n\n if (isEvtWithFiles(event)) {\n Promise.resolve(getFilesFromEvent(event)).then(function (files) {\n if (isPropagationStopped(event) && !noDragEventsBubbling) {\n return;\n }\n\n setFiles(files, event);\n }).catch(function (e) {\n return onErrCb(e);\n });\n }\n\n dispatch({\n type: \"reset\"\n });\n }, [getFilesFromEvent, setFiles, onErrCb, noDragEventsBubbling]); // Fn for opening the file dialog programmatically\n\n var openFileDialog = useCallback(function () {\n // No point to use FS access APIs if context is not secure\n // https://developer.mozilla.org/en-US/docs/Web/Security/Secure_Contexts#feature_detection\n if (fsAccessApiWorksRef.current) {\n dispatch({\n type: \"openDialog\"\n });\n onFileDialogOpenCb(); // https://developer.mozilla.org/en-US/docs/Web/API/window/showOpenFilePicker\n\n var opts = {\n multiple: multiple,\n types: pickerTypes\n };\n window.showOpenFilePicker(opts).then(function (handles) {\n return getFilesFromEvent(handles);\n }).then(function (files) {\n setFiles(files, null);\n dispatch({\n type: \"closeDialog\"\n });\n }).catch(function (e) {\n // AbortError means the user canceled\n if (isAbort(e)) {\n onFileDialogCancelCb(e);\n dispatch({\n type: \"closeDialog\"\n });\n } else if (isSecurityError(e)) {\n fsAccessApiWorksRef.current = false; // CORS, so cannot use this API\n // Try using the input\n\n if (inputRef.current) {\n inputRef.current.value = null;\n inputRef.current.click();\n } else {\n onErrCb(new Error(\"Cannot open the file picker because the https://developer.mozilla.org/en-US/docs/Web/API/File_System_Access_API is not supported and no was provided.\"));\n }\n } else {\n onErrCb(e);\n }\n });\n return;\n }\n\n if (inputRef.current) {\n dispatch({\n type: \"openDialog\"\n });\n onFileDialogOpenCb();\n inputRef.current.value = null;\n inputRef.current.click();\n }\n }, [dispatch, onFileDialogOpenCb, onFileDialogCancelCb, useFsAccessApi, setFiles, onErrCb, pickerTypes, multiple]); // Cb to open the file dialog when SPACE/ENTER occurs on the dropzone\n\n var onKeyDownCb = useCallback(function (event) {\n // Ignore keyboard events bubbling up the DOM tree\n if (!rootRef.current || !rootRef.current.isEqualNode(event.target)) {\n return;\n }\n\n if (event.key === \" \" || event.key === \"Enter\" || event.keyCode === 32 || event.keyCode === 13) {\n event.preventDefault();\n openFileDialog();\n }\n }, [rootRef, openFileDialog]); // Update focus state for the dropzone\n\n var onFocusCb = useCallback(function () {\n dispatch({\n type: \"focus\"\n });\n }, []);\n var onBlurCb = useCallback(function () {\n dispatch({\n type: \"blur\"\n });\n }, []); // Cb to open the file dialog when click occurs on the dropzone\n\n var onClickCb = useCallback(function () {\n if (noClick) {\n return;\n } // In IE11/Edge the file-browser dialog is blocking, therefore, use setTimeout()\n // to ensure React can handle state changes\n // See: https://github.com/react-dropzone/react-dropzone/issues/450\n\n\n if (isIeOrEdge()) {\n setTimeout(openFileDialog, 0);\n } else {\n openFileDialog();\n }\n }, [noClick, openFileDialog]);\n\n var composeHandler = function composeHandler(fn) {\n return disabled ? null : fn;\n };\n\n var composeKeyboardHandler = function composeKeyboardHandler(fn) {\n return noKeyboard ? null : composeHandler(fn);\n };\n\n var composeDragHandler = function composeDragHandler(fn) {\n return noDrag ? null : composeHandler(fn);\n };\n\n var stopPropagation = function stopPropagation(event) {\n if (noDragEventsBubbling) {\n event.stopPropagation();\n }\n };\n\n var getRootProps = useMemo(function () {\n return function () {\n var _ref2 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref2$refKey = _ref2.refKey,\n refKey = _ref2$refKey === void 0 ? \"ref\" : _ref2$refKey,\n role = _ref2.role,\n onKeyDown = _ref2.onKeyDown,\n onFocus = _ref2.onFocus,\n onBlur = _ref2.onBlur,\n onClick = _ref2.onClick,\n onDragEnter = _ref2.onDragEnter,\n onDragOver = _ref2.onDragOver,\n onDragLeave = _ref2.onDragLeave,\n onDrop = _ref2.onDrop,\n rest = _objectWithoutProperties(_ref2, _excluded3);\n\n return _objectSpread(_objectSpread(_defineProperty({\n onKeyDown: composeKeyboardHandler(composeEventHandlers(onKeyDown, onKeyDownCb)),\n onFocus: composeKeyboardHandler(composeEventHandlers(onFocus, onFocusCb)),\n onBlur: composeKeyboardHandler(composeEventHandlers(onBlur, onBlurCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onClickCb)),\n onDragEnter: composeDragHandler(composeEventHandlers(onDragEnter, onDragEnterCb)),\n onDragOver: composeDragHandler(composeEventHandlers(onDragOver, onDragOverCb)),\n onDragLeave: composeDragHandler(composeEventHandlers(onDragLeave, onDragLeaveCb)),\n onDrop: composeDragHandler(composeEventHandlers(onDrop, onDropCb)),\n role: typeof role === \"string\" && role !== \"\" ? role : \"presentation\"\n }, refKey, rootRef), !disabled && !noKeyboard ? {\n tabIndex: 0\n } : {}), rest);\n };\n }, [rootRef, onKeyDownCb, onFocusCb, onBlurCb, onClickCb, onDragEnterCb, onDragOverCb, onDragLeaveCb, onDropCb, noKeyboard, noDrag, disabled]);\n var onInputElementClick = useCallback(function (event) {\n event.stopPropagation();\n }, []);\n var getInputProps = useMemo(function () {\n return function () {\n var _ref3 = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {},\n _ref3$refKey = _ref3.refKey,\n refKey = _ref3$refKey === void 0 ? \"ref\" : _ref3$refKey,\n onChange = _ref3.onChange,\n onClick = _ref3.onClick,\n rest = _objectWithoutProperties(_ref3, _excluded4);\n\n var inputProps = _defineProperty({\n accept: acceptAttr,\n multiple: multiple,\n type: \"file\",\n style: {\n display: \"none\"\n },\n onChange: composeHandler(composeEventHandlers(onChange, onDropCb)),\n onClick: composeHandler(composeEventHandlers(onClick, onInputElementClick)),\n tabIndex: -1\n }, refKey, inputRef);\n\n return _objectSpread(_objectSpread({}, inputProps), rest);\n };\n }, [inputRef, accept, multiple, onDropCb, disabled]);\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: isFocused && !disabled,\n getRootProps: getRootProps,\n getInputProps: getInputProps,\n rootRef: rootRef,\n inputRef: inputRef,\n open: composeHandler(openFileDialog)\n });\n}\n/**\n * @param {DropzoneState} state\n * @param {{type: string} & DropzoneState} action\n * @returns {DropzoneState}\n */\n\nfunction reducer(state, action) {\n /* istanbul ignore next */\n switch (action.type) {\n case \"focus\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: true\n });\n\n case \"blur\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isFocused: false\n });\n\n case \"openDialog\":\n return _objectSpread(_objectSpread({}, initialState), {}, {\n isFileDialogActive: true\n });\n\n case \"closeDialog\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isFileDialogActive: false\n });\n\n case \"setDraggedFiles\":\n return _objectSpread(_objectSpread({}, state), {}, {\n isDragActive: action.isDragActive,\n isDragAccept: action.isDragAccept,\n isDragReject: action.isDragReject\n });\n\n case \"setFiles\":\n return _objectSpread(_objectSpread({}, state), {}, {\n acceptedFiles: action.acceptedFiles,\n fileRejections: action.fileRejections\n });\n\n case \"reset\":\n return _objectSpread({}, initialState);\n\n default:\n return state;\n }\n}\n\nfunction noop() {}\n\nexport { ErrorCode } from \"./utils\";","import React, { useCallback } from \"react\";\r\nimport { useDropzone } from \"react-dropzone\";\r\nimport { Box, Typography } from \"@mui/material\";\r\n\r\nconst thumbsContainer = {\r\n display: \"inline-block\",\r\n flexDirection: \"row\",\r\n flexWrap: \"wrap\",\r\n alignItems: \"center\",\r\n marginTop: 16,\r\n};\r\n\r\nconst thumb = {\r\n display: \"inline-flex\",\r\n borderRadius: 2,\r\n border: \"1px solid #eaeaea\",\r\n margin: 8,\r\n width: 100,\r\n height: 100,\r\n padding: 4,\r\n boxSizing: \"border-box\",\r\n};\r\n\r\nconst thumbInner = {\r\n display: \"flex\",\r\n minWidth: 0,\r\n overflow: \"hidden\",\r\n};\r\n\r\nconst img = {\r\n display: \"block\",\r\n width: \"auto\",\r\n height: \"100%\",\r\n};\r\n\r\nconst ImageUploader = ({ onDrop, uploadedFiles }) => {\r\n const onDropCallback = useCallback(onDrop, []);\r\n const { getRootProps, getInputProps, isDragActive } = useDropzone({\r\n accept: \"image/*\",\r\n onDrop: onDropCallback,\r\n });\r\n\r\n const thumbs = uploadedFiles.map((file) => (\r\n
\r\n
\r\n {\r\n URL.revokeObjectURL(file.preview);\r\n }}\r\n />\r\n
\r\n
\r\n ));\r\n\r\n return (\r\n \r\n \r\n \r\n {isDragActive ? \"Drop the image here\" : \"Drag and drop an image, or click to select one\"}\r\n \r\n
{thumbs}
\r\n \r\n );\r\n};\r\n\r\nexport default ImageUploader;\r\n","import React from \"react\";\r\nimport { CircularProgress, Box, Typography } from \"@mui/material\";\r\n\r\nconst LoadingData = ({ message = \"Loading...\", minHeight = 400 }) => {\r\n return (\r\n \r\n \r\n \r\n {message}\r\n \r\n \r\n );\r\n};\r\n\r\nexport default LoadingData;\r\n","/*\r\nThe severity prop determines the color and icon displayed in the Alert component. Valid severity values include \"error\", \"warning\", \"info\", and \"success\".\r\n*/\r\n\r\nimport React from \"react\";\r\nimport Snackbar from \"@mui/material/Snackbar\";\r\nimport IconButton from \"@mui/material/IconButton\";\r\nimport CloseIcon from \"@mui/icons-material/Close\";\r\nimport Alert from \"@mui/material/Alert\";\r\n\r\nfunction SnackbarAlert({ open, handleClose, message, severity }) {\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n }\r\n >\r\n \r\n {message}\r\n \r\n \r\n );\r\n}\r\n\r\nexport default SnackbarAlert;\r\n","/*\r\n *******************************************************************************\r\n *\r\n * Filename: /redux/slices/AIMedicalNotes.js\r\n *\r\n * Syntax: NA\r\n *\r\n * Synopsis: AI Medical Notes redux reducer\r\n *\r\n * Author: Norman J. Nolasco [ Archetact Software ]\r\n *\r\n * Created: Thursday, June 22, 2023 - 12:05 AM (CST)\r\n *\r\n * Notes:\r\n *\r\n * Revisions:\r\n * 2023/06/22 NJN Initial Build\r\n *\r\n * Copyright (c) 2023 - Archetact Software - All Rights Reserved.\r\n * Unauthorized copying of this file via any medium is strictly prohibited.\r\n * Proprietary and Confidential.\r\n *\r\n *******************************************************************************\r\n */\r\n\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialState = {\r\n voterName: \"\",\r\n voterRaw: \"\",\r\n issueArray: [],\r\n candidateArray: [],\r\n activeBox: null,\r\n error: null,\r\n};\r\n\r\nconst updateFieldReducer = (state, action, field) => {\r\n if (action.payload !== null) {\r\n state[field] = action.payload[field];\r\n state.error = null;\r\n } else {\r\n state.error = `No ${field} provided.`;\r\n }\r\n};\r\n\r\nconst updateFieldArray = (state, action, field) => {\r\n if (action.payload !== null) {\r\n state[field] = [...state[field], action.payload];\r\n state.error = null;\r\n } else {\r\n state.error = `No ${field} provided.`;\r\n }\r\n};\r\n\r\nconst replaceFieldArrayItem = (state, action, field) => {\r\n const { i, text } = action.payload;\r\n if (state[field][i]) {\r\n state[field] = state[field].map((item, index) => (index === i ? { text } : item));\r\n state.error = null;\r\n } else {\r\n state.error = `No item at index ${i} to replace.`;\r\n }\r\n};\r\n\r\nconst clearFieldArray = (state, action, field) => {\r\n state[field] = [];\r\n state.error = null;\r\n};\r\n\r\nexport const aiMedicalNotesSlice = createSlice({\r\n name: \"aiMedicalNotes\",\r\n initialState,\r\n reducers: {\r\n updateVoterName: (state, action) => updateFieldReducer(state, action, \"voterName\"),\r\n updateVoterRaw: (state, action) => updateFieldReducer(state, action, \"voterRaw\"),\r\n updateIssueArray: (state, action) => updateFieldReducer(state, action, \"issueArray\"),\r\n updateCandidateArray: (state, action) => updateFieldReducer(state, action, \"candidateArray\"),\r\n clearIssueArray: (state, action) => clearFieldArray(state, action, \"issueArray\"),\r\n clearCandidateArray: (state, action) => clearFieldArray(state, action, \"candidateArray\"),\r\n replaceIssueArrayItem: (state, action) => replaceFieldArrayItem(state, action, \"issueArray\"),\r\n replaceCandidateArrayItem: (state, action) => replaceFieldArrayItem(state, action, \"candidateArray\"),\r\n },\r\n});\r\n\r\nexport const {\r\n updateVoterName,\r\n updateVoterRaw,\r\n updateIssueArray,\r\n updateCandidateArray,\r\n clearIssueArray,\r\n clearCandidateArray,\r\n replaceIssueArrayItem,\r\n replaceCandidateArrayItem,\r\n} = aiMedicalNotesSlice.actions;\r\n\r\nexport default aiMedicalNotesSlice.reducer;\r\n","/*\r\n *******************************************************************************\r\n *\r\n * Filename: /redux/slices/lists.js\r\n *\r\n * Syntax: NA\r\n *\r\n * Synopsis: Lists redux reducer\r\n *\r\n * Author: Norman J. Nolasco [ Archetact Software ]\r\n *\r\n * Created: Saturday, May 20, 2023 - 3:20 AM (CST)\r\n *\r\n * Notes:\r\n *\r\n * Revisions:\r\n * 2023/05/20 NJN Initial Build\r\n *\r\n * Copyright (c) 2023 - Archetact Software - All Rights Reserved.\r\n * Unauthorized copying of this file via any medium is strictly prohibited.\r\n * Proprietary and Confidential.\r\n *\r\n *******************************************************************************\r\n */\r\n\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialState = {\r\n listgroupid: 0,\r\n parentid: 0,\r\n parentcompanyid: 0,\r\n companyid: 0,\r\n listid: 0,\r\n parentitemid: 0,\r\n page: \"\",\r\n error: null,\r\n defaultToolPanel: \"filter\",\r\n listgrouporder: \"NAME ASC\",\r\n listorder: \"NAME ASC\",\r\n listitemorder: \"ORDERID ASC\",\r\n search: \"\",\r\n columnStateListGroup: [],\r\n columnStateList: [],\r\n};\r\n\r\nconst intFields = [\"listgroupid\", \"parentid\", \"parentcompanyid\", \"companyid\", \"listid\", \"parentitemid\"];\r\n\r\nconst updateFieldReducer = (state, action, field) => {\r\n const value = action.payload ? action.payload[field] : undefined;\r\n\r\n if (value !== undefined) {\r\n state[field] = intFields.includes(field) ? parseInt(value, 10) : value;\r\n state.error = Number.isNaN(state[field]) ? `Invalid value for ${field}.` : null;\r\n } else {\r\n state.error = `No ${field} provided.`;\r\n }\r\n};\r\n\r\nexport const listSlice = createSlice({\r\n name: \"lists\",\r\n initialState,\r\n reducers: {\r\n updateListGroupID: (state, action) => updateFieldReducer(state, action, \"listgroupid\"),\r\n updateParentID: (state, action) => updateFieldReducer(state, action, \"parentid\"),\r\n updateParentCompanyID: (state, action) => updateFieldReducer(state, action, \"parentcompanyid\"),\r\n updateCompanyID: (state, action) => updateFieldReducer(state, action, \"companyid\"),\r\n updateListID: (state, action) => updateFieldReducer(state, action, \"listid\"),\r\n updateParentItemID: (state, action) => updateFieldReducer(state, action, \"parentitemid\"),\r\n updatePage: (state, action) => updateFieldReducer(state, action, \"page\"),\r\n updateDefaultToolPanel: (state, action) => updateFieldReducer(state, action, \"defaultToolPanel\"),\r\n updateColumnStateListGroup: (state, action) => updateFieldReducer(state, action, \"columnStateListGroup\"),\r\n updateColumnStateList: (state, action) => updateFieldReducer(state, action, \"columnStateList\"),\r\n },\r\n});\r\n\r\nexport const {\r\n updateListGroupID,\r\n updateParentID,\r\n updateParentCompanyID,\r\n updateCompanyID,\r\n updateListID,\r\n updateParentItemID,\r\n updatePage,\r\n updateDefaultToolPanel,\r\n updateColumnStateListGroup,\r\n updateColumnStateList,\r\n} = listSlice.actions;\r\n\r\nexport default listSlice.reducer;\r\n","/*\r\n *******************************************************************************\r\n *\r\n * Filename: /redux/slices/users.js\r\n *\r\n * Syntax: NA\r\n *\r\n * Synopsis: Users redux reducer\r\n *\r\n * Author: Norman J. Nolasco [ Archetact Software ]\r\n *\r\n * Created: Friday, August 18, 2023 - 6:07 AM (CST)\r\n *\r\n * Notes:\r\n *\r\n * Revisions:\r\n * 2023/08/18 NJN Initial Build\r\n *\r\n * Copyright (c) 2023 - Archetact Software - All Rights Reserved.\r\n * Unauthorized copying of this file via any medium is strictly prohibited.\r\n * Proprietary and Confidential.\r\n *\r\n *******************************************************************************\r\n */\r\n\r\nimport { createSlice } from \"@reduxjs/toolkit\";\r\n\r\nconst initialState = {\r\n companyid: 0,\r\n locationid: 0,\r\n roleid: 0,\r\n userstatusid: 0,\r\n error: null,\r\n};\r\n\r\nconst updateFieldReducer = (state, action, field) => {\r\n if (action.payload !== null) {\r\n state[field] = action.payload[field];\r\n state.error = null;\r\n } else {\r\n state.error = `No ${field} provided.`;\r\n }\r\n};\r\n\r\nexport const usersSlice = createSlice({\r\n name: \"users\",\r\n initialState,\r\n reducers: {\r\n updateCompany: (state, action) => updateFieldReducer(state, action, \"companyid\"),\r\n updateLocation: (state, action) => updateFieldReducer(state, action, \"locationid\"),\r\n updateRole: (state, action) => updateFieldReducer(state, action, \"roleid\"),\r\n updateUserStatus: (state, action) => updateFieldReducer(state, action, \"userstatusid\"),\r\n },\r\n});\r\n\r\nexport const { updateCompany, updateLocation, updateRole, updateUserStatus } = usersSlice.actions;\r\n\r\nexport default usersSlice.reducer;\r\n","import axios from \"axios\";\r\n\r\nconst axiosInstance = axios.create();\r\n\r\naxiosInstance.interceptors.response.use(\r\n (response) => response,\r\n (error) => Promise.reject((error.response && error.response.data) || \"Something went wrong\"),\r\n);\r\n\r\nexport default axiosInstance;\r\n","/*\r\n *******************************************************************************\r\n *\r\n * Filename: @/utils/fetchApi.js\r\n *\r\n * Syntax: NA\r\n *\r\n * Synopsis: Module for fetching API data.\r\n *\r\n * Author: Norman J. Nolasco [ Archetact Software ]\r\n *\r\n * Created: Friday, August 18, 2023 - 6:07 AM (CST)\r\n *\r\n * Notes:\r\n *\r\n * Revisions:\r\n * 2023/08/18 NJN Initial Build\r\n *\r\n * Copyright (c) 2023 - Archetact Software - All Rights Reserved.\r\n * Unauthorized copying of this file via any medium is strictly prohibited.\r\n * Proprietary and Confidential.\r\n *\r\n *******************************************************************************\r\n */\r\n\r\nimport axios from \"@/utils/axios\";\r\n\r\nexport const fetchApi = async (awsFunc, action, parameters = {}) => {\r\n try {\r\n const accessToken = window.localStorage.getItem(\"accessToken\");\r\n const response = await axios.post(\r\n \"https://w4f2z4c35e.execute-api.us-east-1.amazonaws.com/dev/\" + awsFunc,\r\n {\r\n action: action,\r\n parameters: parameters,\r\n },\r\n {\r\n headers: {\r\n Authorization: \"Bearer \" + accessToken,\r\n },\r\n },\r\n );\r\n return response.data;\r\n } catch (error) {\r\n console.error(\"Error fetching data:\", error);\r\n throw error;\r\n }\r\n};\r\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData, Checksum } from \"@aws-sdk/types\";\nimport { convertToBuffer, isEmptyData, numToUint8 } from \"@aws-crypto/util\";\nimport { Crc32 } from \"./index\";\n\nexport class AwsCrc32 implements Checksum {\n private crc32 = new Crc32();\n\n update(toHash: SourceData) {\n if (isEmptyData(toHash)) return;\n\n this.crc32.update(convertToBuffer(toHash));\n }\n\n async digest(): Promise {\n return numToUint8(this.crc32.digest());\n }\n\n reset(): void {\n this.crc32 = new Crc32();\n }\n}\n","import {uint32ArrayFrom} from \"@aws-crypto/util\";\n\nexport function crc32(data: Uint8Array): number {\n return new Crc32().update(data).digest();\n}\n\nexport class Crc32 {\n private checksum = 0xffffffff;\n\n update(data: Uint8Array): this {\n for (const byte of data) {\n this.checksum =\n (this.checksum >>> 8) ^ lookupTable[(this.checksum ^ byte) & 0xff];\n }\n\n return this;\n }\n\n digest(): number {\n return (this.checksum ^ 0xffffffff) >>> 0;\n }\n}\n\n// prettier-ignore\nconst a_lookUpTable = [\n 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA,\n 0x076DC419, 0x706AF48F, 0xE963A535, 0x9E6495A3,\n 0x0EDB8832, 0x79DCB8A4, 0xE0D5E91E, 0x97D2D988,\n 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07, 0x90BF1D91,\n 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7,\n 0x136C9856, 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC,\n 0x14015C4F, 0x63066CD9, 0xFA0F3D63, 0x8D080DF5,\n 0x3B6E20C8, 0x4C69105E, 0xD56041E4, 0xA2677172,\n 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940,\n 0x32D86CE3, 0x45DF5C75, 0xDCD60DCF, 0xABD13D59,\n 0x26D930AC, 0x51DE003A, 0xC8D75180, 0xBFD06116,\n 0x21B4F4B5, 0x56B3C423, 0xCFBA9599, 0xB8BDA50F,\n 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D,\n 0x76DC4190, 0x01DB7106, 0x98D220BC, 0xEFD5102A,\n 0x71B18589, 0x06B6B51F, 0x9FBFE4A5, 0xE8B8D433,\n 0x7807C9A2, 0x0F00F934, 0x9609A88E, 0xE10E9818,\n 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E,\n 0x6C0695ED, 0x1B01A57B, 0x8208F4C1, 0xF50FC457,\n 0x65B0D9C6, 0x12B7E950, 0x8BBEB8EA, 0xFCB9887C,\n 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3, 0xFBD44C65,\n 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB,\n 0x4369E96A, 0x346ED9FC, 0xAD678846, 0xDA60B8D0,\n 0x44042D73, 0x33031DE5, 0xAA0A4C5F, 0xDD0D7CC9,\n 0x5005713C, 0x270241AA, 0xBE0B1010, 0xC90C2086,\n 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4,\n 0x59B33D17, 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD,\n 0xEDB88320, 0x9ABFB3B6, 0x03B6E20C, 0x74B1D29A,\n 0xEAD54739, 0x9DD277AF, 0x04DB2615, 0x73DC1683,\n 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1,\n 0xF00F9344, 0x8708A3D2, 0x1E01F268, 0x6906C2FE,\n 0xF762575D, 0x806567CB, 0x196C3671, 0x6E6B06E7,\n 0xFED41B76, 0x89D32BE0, 0x10DA7A5A, 0x67DD4ACC,\n 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252,\n 0xD1BB67F1, 0xA6BC5767, 0x3FB506DD, 0x48B2364B,\n 0xD80D2BDA, 0xAF0A1B4C, 0x36034AF6, 0x41047A60,\n 0xDF60EFC3, 0xA867DF55, 0x316E8EEF, 0x4669BE79,\n 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F,\n 0xC5BA3BBE, 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04,\n 0xC2D7FFA7, 0xB5D0CF31, 0x2CD99E8B, 0x5BDEAE1D,\n 0x9B64C2B0, 0xEC63F226, 0x756AA39C, 0x026D930A,\n 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38,\n 0x92D28E9B, 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21,\n 0x86D3D2D4, 0xF1D4E242, 0x68DDB3F8, 0x1FDA836E,\n 0x81BE16CD, 0xF6B9265B, 0x6FB077E1, 0x18B74777,\n 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45,\n 0xA00AE278, 0xD70DD2EE, 0x4E048354, 0x3903B3C2,\n 0xA7672661, 0xD06016F7, 0x4969474D, 0x3E6E77DB,\n 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66, 0x37D83BF0,\n 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6,\n 0xBAD03605, 0xCDD70693, 0x54DE5729, 0x23D967BF,\n 0xB3667A2E, 0xC4614AB8, 0x5D681B02, 0x2A6F2B94,\n 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B, 0x2D02EF8D,\n];\nconst lookupTable: Uint32Array = uint32ArrayFrom(a_lookUpTable)\nexport { AwsCrc32 } from \"./aws_crc32\";\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { Checksum, SourceData } from \"@aws-sdk/types\";\nimport { convertToBuffer, isEmptyData, numToUint8 } from \"@aws-crypto/util\";\nimport { Crc32c } from \"./index\";\n\nexport class AwsCrc32c implements Checksum {\n private crc32c = new Crc32c();\n\n update(toHash: SourceData) {\n if (isEmptyData(toHash)) return;\n\n this.crc32c.update(convertToBuffer(toHash));\n }\n\n async digest(): Promise {\n return numToUint8(this.crc32c.digest());\n }\n\n reset(): void {\n this.crc32c = new Crc32c();\n }\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport {uint32ArrayFrom} from \"@aws-crypto/util\";\n\nexport function crc32c(data: Uint8Array): number {\n return new Crc32c().update(data).digest();\n}\n\nexport class Crc32c {\n private checksum = 0xffffffff;\n\n update(data: Uint8Array): this {\n for (const byte of data) {\n this.checksum =\n (this.checksum >>> 8) ^ lookupTable[(this.checksum ^ byte) & 0xff];\n }\n\n return this;\n }\n\n digest(): number {\n return (this.checksum ^ 0xffffffff) >>> 0;\n }\n}\n\n// prettier-ignore\nconst a_lookupTable = [\n 0x00000000, 0xF26B8303, 0xE13B70F7, 0x1350F3F4, 0xC79A971F, 0x35F1141C, 0x26A1E7E8, 0xD4CA64EB,\n 0x8AD958CF, 0x78B2DBCC, 0x6BE22838, 0x9989AB3B, 0x4D43CFD0, 0xBF284CD3, 0xAC78BF27, 0x5E133C24,\n 0x105EC76F, 0xE235446C, 0xF165B798, 0x030E349B, 0xD7C45070, 0x25AFD373, 0x36FF2087, 0xC494A384,\n 0x9A879FA0, 0x68EC1CA3, 0x7BBCEF57, 0x89D76C54, 0x5D1D08BF, 0xAF768BBC, 0xBC267848, 0x4E4DFB4B,\n 0x20BD8EDE, 0xD2D60DDD, 0xC186FE29, 0x33ED7D2A, 0xE72719C1, 0x154C9AC2, 0x061C6936, 0xF477EA35,\n 0xAA64D611, 0x580F5512, 0x4B5FA6E6, 0xB93425E5, 0x6DFE410E, 0x9F95C20D, 0x8CC531F9, 0x7EAEB2FA,\n 0x30E349B1, 0xC288CAB2, 0xD1D83946, 0x23B3BA45, 0xF779DEAE, 0x05125DAD, 0x1642AE59, 0xE4292D5A,\n 0xBA3A117E, 0x4851927D, 0x5B016189, 0xA96AE28A, 0x7DA08661, 0x8FCB0562, 0x9C9BF696, 0x6EF07595,\n 0x417B1DBC, 0xB3109EBF, 0xA0406D4B, 0x522BEE48, 0x86E18AA3, 0x748A09A0, 0x67DAFA54, 0x95B17957,\n 0xCBA24573, 0x39C9C670, 0x2A993584, 0xD8F2B687, 0x0C38D26C, 0xFE53516F, 0xED03A29B, 0x1F682198,\n 0x5125DAD3, 0xA34E59D0, 0xB01EAA24, 0x42752927, 0x96BF4DCC, 0x64D4CECF, 0x77843D3B, 0x85EFBE38,\n 0xDBFC821C, 0x2997011F, 0x3AC7F2EB, 0xC8AC71E8, 0x1C661503, 0xEE0D9600, 0xFD5D65F4, 0x0F36E6F7,\n 0x61C69362, 0x93AD1061, 0x80FDE395, 0x72966096, 0xA65C047D, 0x5437877E, 0x4767748A, 0xB50CF789,\n 0xEB1FCBAD, 0x197448AE, 0x0A24BB5A, 0xF84F3859, 0x2C855CB2, 0xDEEEDFB1, 0xCDBE2C45, 0x3FD5AF46,\n 0x7198540D, 0x83F3D70E, 0x90A324FA, 0x62C8A7F9, 0xB602C312, 0x44694011, 0x5739B3E5, 0xA55230E6,\n 0xFB410CC2, 0x092A8FC1, 0x1A7A7C35, 0xE811FF36, 0x3CDB9BDD, 0xCEB018DE, 0xDDE0EB2A, 0x2F8B6829,\n 0x82F63B78, 0x709DB87B, 0x63CD4B8F, 0x91A6C88C, 0x456CAC67, 0xB7072F64, 0xA457DC90, 0x563C5F93,\n 0x082F63B7, 0xFA44E0B4, 0xE9141340, 0x1B7F9043, 0xCFB5F4A8, 0x3DDE77AB, 0x2E8E845F, 0xDCE5075C,\n 0x92A8FC17, 0x60C37F14, 0x73938CE0, 0x81F80FE3, 0x55326B08, 0xA759E80B, 0xB4091BFF, 0x466298FC,\n 0x1871A4D8, 0xEA1A27DB, 0xF94AD42F, 0x0B21572C, 0xDFEB33C7, 0x2D80B0C4, 0x3ED04330, 0xCCBBC033,\n 0xA24BB5A6, 0x502036A5, 0x4370C551, 0xB11B4652, 0x65D122B9, 0x97BAA1BA, 0x84EA524E, 0x7681D14D,\n 0x2892ED69, 0xDAF96E6A, 0xC9A99D9E, 0x3BC21E9D, 0xEF087A76, 0x1D63F975, 0x0E330A81, 0xFC588982,\n 0xB21572C9, 0x407EF1CA, 0x532E023E, 0xA145813D, 0x758FE5D6, 0x87E466D5, 0x94B49521, 0x66DF1622,\n 0x38CC2A06, 0xCAA7A905, 0xD9F75AF1, 0x2B9CD9F2, 0xFF56BD19, 0x0D3D3E1A, 0x1E6DCDEE, 0xEC064EED,\n 0xC38D26C4, 0x31E6A5C7, 0x22B65633, 0xD0DDD530, 0x0417B1DB, 0xF67C32D8, 0xE52CC12C, 0x1747422F,\n 0x49547E0B, 0xBB3FFD08, 0xA86F0EFC, 0x5A048DFF, 0x8ECEE914, 0x7CA56A17, 0x6FF599E3, 0x9D9E1AE0,\n 0xD3D3E1AB, 0x21B862A8, 0x32E8915C, 0xC083125F, 0x144976B4, 0xE622F5B7, 0xF5720643, 0x07198540,\n 0x590AB964, 0xAB613A67, 0xB831C993, 0x4A5A4A90, 0x9E902E7B, 0x6CFBAD78, 0x7FAB5E8C, 0x8DC0DD8F,\n 0xE330A81A, 0x115B2B19, 0x020BD8ED, 0xF0605BEE, 0x24AA3F05, 0xD6C1BC06, 0xC5914FF2, 0x37FACCF1,\n 0x69E9F0D5, 0x9B8273D6, 0x88D28022, 0x7AB90321, 0xAE7367CA, 0x5C18E4C9, 0x4F48173D, 0xBD23943E,\n 0xF36E6F75, 0x0105EC76, 0x12551F82, 0xE03E9C81, 0x34F4F86A, 0xC69F7B69, 0xD5CF889D, 0x27A40B9E,\n 0x79B737BA, 0x8BDCB4B9, 0x988C474D, 0x6AE7C44E, 0xBE2DA0A5, 0x4C4623A6, 0x5F16D052, 0xAD7D5351,\n];\n\nconst lookupTable: Uint32Array = uint32ArrayFrom(a_lookupTable)\nexport { AwsCrc32c } from \"./aws_crc32c\";\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { MsSubtleCrypto } from \"./MsSubtleCrypto\";\n\ntype SubtleCryptoMethod =\n | \"decrypt\"\n | \"digest\"\n | \"encrypt\"\n | \"exportKey\"\n | \"generateKey\"\n | \"importKey\"\n | \"sign\"\n | \"verify\";\n\nconst msSubtleCryptoMethods: Array = [\n \"decrypt\",\n \"digest\",\n \"encrypt\",\n \"exportKey\",\n \"generateKey\",\n \"importKey\",\n \"sign\",\n \"verify\"\n];\n\n/**\n * The value accessible as `window.msCrypto` in Internet Explorer 11.\n */\nexport interface MsCrypto {\n getRandomValues: (toFill: Uint8Array) => void;\n subtle: MsSubtleCrypto;\n}\n\n/**\n * The `window` object in Internet Explorer 11. This interface does not\n * exhaustively document the prefixed features of `window` in IE11.\n */\nexport interface MsWindow extends Window {\n MSInputMethodContext: any;\n msCrypto: MsCrypto;\n}\n\nfunction quacksLikeAnMsWindow(window: Window): window is MsWindow {\n return \"MSInputMethodContext\" in window && \"msCrypto\" in window;\n}\n\n/**\n * Determines if the provided window is (or is like) the window object one would\n * expect to encounter in Internet Explorer 11.\n */\nexport function isMsWindow(window: Window): window is MsWindow {\n if (quacksLikeAnMsWindow(window) && window.msCrypto.subtle !== undefined) {\n const { getRandomValues, subtle } = window.msCrypto;\n return msSubtleCryptoMethods\n .map(methodName => subtle[methodName])\n .concat(getRandomValues)\n .every(method => typeof method === \"function\");\n }\n\n return false;\n}\n","export * from \"./CryptoOperation\";\nexport * from \"./Key\";\nexport * from \"./KeyOperation\";\nexport * from \"./MsSubtleCrypto\";\nexport * from \"./MsWindow\";\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export const SHA_1_HASH: { name: \"SHA-1\" } = { name: \"SHA-1\" };\n\nexport const SHA_1_HMAC_ALGO: { name: \"HMAC\"; hash: { name: \"SHA-1\" } } = {\n name: \"HMAC\",\n hash: SHA_1_HASH,\n};\n\nexport const EMPTY_DATA_SHA_1 = new Uint8Array([\n 218,\n 57,\n 163,\n 238,\n 94,\n 107,\n 75,\n 13,\n 50,\n 85,\n 191,\n 239,\n 149,\n 96,\n 24,\n 144,\n 175,\n 216,\n 7,\n 9,\n]);\n","import { Sha1 as Ie11Sha1 } from \"./ie11Sha1\";\nimport { Sha1 as WebCryptoSha1 } from \"./webCryptoSha1\";\nimport { Checksum, SourceData } from \"@aws-sdk/types\";\nimport { supportsWebCrypto } from \"@aws-crypto/supports-web-crypto\";\nimport { isMsWindow } from \"@aws-crypto/ie11-detection\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\nimport { convertToBuffer } from \"@aws-crypto/util\";\n\nexport class Sha1 implements Checksum {\n private hash: Checksum;\n\n constructor(secret?: SourceData) {\n if (supportsWebCrypto(locateWindow())) {\n this.hash = new WebCryptoSha1(secret);\n } else if (isMsWindow(locateWindow())) {\n this.hash = new Ie11Sha1(secret);\n } else {\n throw new Error(\"SHA1 not supported\");\n }\n }\n\n update(data: SourceData, encoding?: \"utf8\" | \"ascii\" | \"latin1\"): void {\n this.hash.update(convertToBuffer(data));\n }\n\n digest(): Promise {\n return this.hash.digest();\n }\n\n reset(): void {\n this.hash.reset();\n }\n}\n","import { isEmptyData } from \"./isEmptyData\";\nimport { SHA_1_HMAC_ALGO } from \"./constants\";\nimport { Checksum, SourceData } from \"@aws-sdk/types\";\nimport { fromUtf8 } from \"@aws-sdk/util-utf8-browser\";\nimport { CryptoOperation, Key, MsWindow } from \"@aws-crypto/ie11-detection\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\n\nexport class Sha1 implements Checksum {\n private readonly secret?: SourceData;\n private operation!: Promise;\n\n constructor(secret?: SourceData) {\n this.secret = secret;\n this.reset();\n }\n\n update(toHash: SourceData): void {\n if (isEmptyData(toHash)) {\n return;\n }\n\n this.operation = this.operation.then((operation) => {\n operation.onerror = () => {\n this.operation = Promise.reject(\n new Error(\"Error encountered updating hash\")\n );\n };\n operation.process(toArrayBufferView(toHash));\n\n return operation;\n });\n this.operation.catch(() => {});\n }\n\n digest(): Promise {\n return this.operation.then(\n (operation) =>\n new Promise((resolve, reject) => {\n operation.onerror = () => {\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n operation.oncomplete = () => {\n if (operation.result) {\n resolve(new Uint8Array(operation.result));\n }\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n\n operation.finish();\n })\n );\n }\n\n reset(): void {\n if (this.secret) {\n this.operation = getKeyPromise(this.secret).then((keyData) =>\n (locateWindow() as MsWindow).msCrypto.subtle.sign(\n SHA_1_HMAC_ALGO,\n keyData\n )\n );\n this.operation.catch(() => {});\n } else {\n this.operation = Promise.resolve(\n (locateWindow() as MsWindow).msCrypto.subtle.digest(\"SHA-1\")\n );\n }\n }\n}\n\nfunction getKeyPromise(secret: SourceData): Promise {\n return new Promise((resolve, reject) => {\n const keyOperation = (locateWindow() as MsWindow).msCrypto.subtle.importKey(\n \"raw\",\n toArrayBufferView(secret),\n SHA_1_HMAC_ALGO,\n false,\n [\"sign\"]\n );\n\n keyOperation.oncomplete = () => {\n if (keyOperation.result) {\n resolve(keyOperation.result);\n }\n\n reject(new Error(\"ImportKey completed without importing key.\"));\n };\n keyOperation.onerror = () => {\n reject(new Error(\"ImportKey failed to import key.\"));\n };\n });\n}\n\nfunction toArrayBufferView(data: SourceData): Uint8Array {\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(\n data.buffer,\n data.byteOffset,\n data.byteLength / Uint8Array.BYTES_PER_ELEMENT\n );\n }\n\n return new Uint8Array(data);\n}\n","export * from \"./crossPlatformSha1\";\nexport { Sha1 as Ie11Sha1 } from \"./ie11Sha1\";\nexport { Sha1 as WebCryptoSha1 } from \"./webCryptoSha1\";\n","import { SourceData } from \"@aws-sdk/types\";\n\nexport function isEmptyData(data: SourceData): boolean {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n","import { Checksum, SourceData } from \"@aws-sdk/types\";\nimport { fromUtf8 } from \"@aws-sdk/util-utf8-browser\";\nimport { isEmptyData } from \"./isEmptyData\";\nimport { EMPTY_DATA_SHA_1, SHA_1_HASH, SHA_1_HMAC_ALGO } from \"./constants\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\n\nexport class Sha1 implements Checksum {\n private readonly key: Promise | undefined;\n private toHash: Uint8Array = new Uint8Array(0);\n\n constructor(secret?: SourceData) {\n if (secret !== void 0) {\n this.key = new Promise((resolve, reject) => {\n locateWindow()\n .crypto.subtle.importKey(\n \"raw\",\n convertToBuffer(secret),\n SHA_1_HMAC_ALGO,\n false,\n [\"sign\"]\n )\n .then(resolve, reject);\n });\n this.key.catch(() => {});\n }\n }\n\n update(data: SourceData): void {\n if (isEmptyData(data)) {\n return;\n }\n\n const update = convertToBuffer(data);\n const typedArray = new Uint8Array(\n this.toHash.byteLength + update.byteLength\n );\n typedArray.set(this.toHash, 0);\n typedArray.set(update, this.toHash.byteLength);\n this.toHash = typedArray;\n }\n\n digest(): Promise {\n if (this.key) {\n return this.key.then((key) =>\n locateWindow()\n .crypto.subtle.sign(SHA_1_HMAC_ALGO, key, this.toHash)\n .then((data) => new Uint8Array(data))\n );\n }\n\n if (isEmptyData(this.toHash)) {\n return Promise.resolve(EMPTY_DATA_SHA_1);\n }\n\n return Promise.resolve()\n .then(() => locateWindow().crypto.subtle.digest(SHA_1_HASH, this.toHash))\n .then((data) => Promise.resolve(new Uint8Array(data)));\n }\n\n reset(): void {\n this.toHash = new Uint8Array(0);\n }\n}\n\nfunction convertToBuffer(data: SourceData): Uint8Array {\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(\n data.buffer,\n data.byteOffset,\n data.byteLength / Uint8Array.BYTES_PER_ELEMENT\n );\n }\n\n return new Uint8Array(data);\n}\n","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport const fromUtf8 = (input) => typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\nexport const toUtf8 = (input) => typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n","export const fromUtf8 = (input) => {\n const bytes = [];\n for (let i = 0, len = input.length; i < len; i++) {\n const value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 0b11000000, (value & 0b111111) | 0b10000000);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n const surrogatePair = 0x10000 + ((value & 0b1111111111) << 10) + (input.charCodeAt(++i) & 0b1111111111);\n bytes.push((surrogatePair >> 18) | 0b11110000, ((surrogatePair >> 12) & 0b111111) | 0b10000000, ((surrogatePair >> 6) & 0b111111) | 0b10000000, (surrogatePair & 0b111111) | 0b10000000);\n }\n else {\n bytes.push((value >> 12) | 0b11100000, ((value >> 6) & 0b111111) | 0b10000000, (value & 0b111111) | 0b10000000);\n }\n }\n return Uint8Array.from(bytes);\n};\nexport const toUtf8 = (input) => {\n let decoded = \"\";\n for (let i = 0, len = input.length; i < len; i++) {\n const byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (0b11000000 <= byte && byte < 0b11100000) {\n const nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 0b11111) << 6) | (nextByte & 0b111111));\n }\n else if (0b11110000 <= byte && byte < 0b101101101) {\n const surrogatePair = [byte, input[++i], input[++i], input[++i]];\n const encoded = \"%\" + surrogatePair.map((byteValue) => byteValue.toString(16)).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 0b1111) << 12) | ((input[++i] & 0b111111) << 6) | (input[++i] & 0b111111));\n }\n }\n return decoded;\n};\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","export * from \"./supportsWebCrypto\";\n","type SubtleCryptoMethod =\n | \"decrypt\"\n | \"digest\"\n | \"encrypt\"\n | \"exportKey\"\n | \"generateKey\"\n | \"importKey\"\n | \"sign\"\n | \"verify\";\n\nconst subtleCryptoMethods: Array = [\n \"decrypt\",\n \"digest\",\n \"encrypt\",\n \"exportKey\",\n \"generateKey\",\n \"importKey\",\n \"sign\",\n \"verify\"\n];\n\nexport function supportsWebCrypto(window: Window): boolean {\n if (\n supportsSecureRandom(window) &&\n typeof window.crypto.subtle === \"object\"\n ) {\n const { subtle } = window.crypto;\n\n return supportsSubtleCrypto(subtle);\n }\n\n return false;\n}\n\nexport function supportsSecureRandom(window: Window): boolean {\n if (typeof window === \"object\" && typeof window.crypto === \"object\") {\n const { getRandomValues } = window.crypto;\n\n return typeof getRandomValues === \"function\";\n }\n\n return false;\n}\n\nexport function supportsSubtleCrypto(subtle: SubtleCrypto) {\n return (\n subtle &&\n subtleCryptoMethods.every(\n methodName => typeof subtle[methodName] === \"function\"\n )\n );\n}\n\nexport async function supportsZeroByteGCM(subtle: SubtleCrypto) {\n if (!supportsSubtleCrypto(subtle)) return false;\n try {\n const key = await subtle.generateKey(\n { name: \"AES-GCM\", length: 128 },\n false,\n [\"encrypt\"]\n );\n const zeroByteAuthTag = await subtle.encrypt(\n {\n name: \"AES-GCM\",\n iv: new Uint8Array(Array(12)),\n additionalData: new Uint8Array(Array(16)),\n tagLength: 128\n },\n key,\n new Uint8Array(0)\n );\n return zeroByteAuthTag.byteLength === 16;\n } catch {\n return false;\n }\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\nimport { fromUtf8 as fromUtf8Browser } from \"@aws-sdk/util-utf8-browser\";\n\n// Quick polyfill\nconst fromUtf8 =\n typeof Buffer !== \"undefined\" && Buffer.from\n ? (input: string) => Buffer.from(input, \"utf8\")\n : fromUtf8Browser;\n\nexport function convertToBuffer(data: SourceData): Uint8Array {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array) return data;\n\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(\n data.buffer,\n data.byteOffset,\n data.byteLength / Uint8Array.BYTES_PER_ELEMENT\n );\n }\n\n return new Uint8Array(data);\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport { convertToBuffer } from \"./convertToBuffer\";\nexport { isEmptyData } from \"./isEmptyData\";\nexport { numToUint8 } from \"./numToUint8\";\nexport {uint32ArrayFrom} from './uint32ArrayFrom';\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\n\nexport function isEmptyData(data: SourceData): boolean {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function numToUint8(num: number) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n// IE 11 does not support Array.from, so we do it manually\nexport function uint32ArrayFrom(a_lookUpTable: Array): Uint32Array {\n if (!Uint32Array.from) {\n const return_array = new Uint32Array(a_lookUpTable.length)\n let a_index = 0\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index]\n a_index += 1\n }\n return return_array\n }\n return Uint32Array.from(a_lookUpTable)\n}\n","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport const fromUtf8 = (input) => typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\nexport const toUtf8 = (input) => typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n","export const fromUtf8 = (input) => {\n const bytes = [];\n for (let i = 0, len = input.length; i < len; i++) {\n const value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 0b11000000, (value & 0b111111) | 0b10000000);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n const surrogatePair = 0x10000 + ((value & 0b1111111111) << 10) + (input.charCodeAt(++i) & 0b1111111111);\n bytes.push((surrogatePair >> 18) | 0b11110000, ((surrogatePair >> 12) & 0b111111) | 0b10000000, ((surrogatePair >> 6) & 0b111111) | 0b10000000, (surrogatePair & 0b111111) | 0b10000000);\n }\n else {\n bytes.push((value >> 12) | 0b11100000, ((value >> 6) & 0b111111) | 0b10000000, (value & 0b111111) | 0b10000000);\n }\n }\n return Uint8Array.from(bytes);\n};\nexport const toUtf8 = (input) => {\n let decoded = \"\";\n for (let i = 0, len = input.length; i < len; i++) {\n const byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (0b11000000 <= byte && byte < 0b11100000) {\n const nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 0b11111) << 6) | (nextByte & 0b111111));\n }\n else if (0b11110000 <= byte && byte < 0b101101101) {\n const surrogatePair = [byte, input[++i], input[++i], input[++i]];\n const encoded = \"%\" + surrogatePair.map((byteValue) => byteValue.toString(16)).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 0b1111) << 12) | ((input[++i] & 0b111111) << 6) | (input[++i] & 0b111111));\n }\n }\n return decoded;\n};\n","import { getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { CompleteMultipartUploadOutputFilterSensitiveLog, CompleteMultipartUploadRequestFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_CompleteMultipartUploadCommand, se_CompleteMultipartUploadCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class CompleteMultipartUploadCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, CompleteMultipartUploadCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getThrow200ExceptionsPlugin(configuration));\n this.middlewareStack.use(getSsecPlugin(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"CompleteMultipartUploadCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: CompleteMultipartUploadRequestFilterSensitiveLog,\n outputFilterSensitiveLog: CompleteMultipartUploadOutputFilterSensitiveLog,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"CompleteMultipartUpload\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_CompleteMultipartUploadCommand(input, context);\n }\n deserialize(output, context) {\n return de_CompleteMultipartUploadCommand(output, context);\n }\n}\n","import { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { CreateMultipartUploadOutputFilterSensitiveLog, CreateMultipartUploadRequestFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_CreateMultipartUploadCommand, se_CreateMultipartUploadCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class CreateMultipartUploadCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, CreateMultipartUploadCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getSsecPlugin(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"CreateMultipartUploadCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: CreateMultipartUploadRequestFilterSensitiveLog,\n outputFilterSensitiveLog: CreateMultipartUploadOutputFilterSensitiveLog,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"CreateMultipartUpload\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_CreateMultipartUploadCommand(input, context);\n }\n deserialize(output, context) {\n return de_CreateMultipartUploadCommand(output, context);\n }\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getCheckContentLengthHeaderPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { PutObjectOutputFilterSensitiveLog, PutObjectRequestFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_PutObjectCommand, se_PutObjectCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutObjectCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutObjectCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getCheckContentLengthHeaderPlugin(configuration));\n this.middlewareStack.use(getSsecPlugin(configuration));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: false,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutObjectCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: PutObjectRequestFilterSensitiveLog,\n outputFilterSensitiveLog: PutObjectOutputFilterSensitiveLog,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"PutObject\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutObjectCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutObjectCommand(output, context);\n }\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_PutObjectTaggingCommand, se_PutObjectTaggingCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutObjectTaggingCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutObjectTaggingCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutObjectTaggingCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"PutObjectTagging\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutObjectTaggingCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutObjectTaggingCommand(output, context);\n }\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { UploadPartOutputFilterSensitiveLog, UploadPartRequestFilterSensitiveLog, } from \"../models/models_1\";\nimport { de_UploadPartCommand, se_UploadPartCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class UploadPartCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, UploadPartCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getSsecPlugin(configuration));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: false,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"UploadPartCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: UploadPartRequestFilterSensitiveLog,\n outputFilterSensitiveLog: UploadPartOutputFilterSensitiveLog,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"UploadPart\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_UploadPartCommand(input, context);\n }\n deserialize(output, context) {\n return de_UploadPartCommand(output, context);\n }\n}\n","import { HttpRequest } from \"@smithy/protocol-http\";\nexport function addExpectContinueMiddleware(options) {\n return (next) => async (args) => {\n const { request } = args;\n if (HttpRequest.isInstance(request) && request.body && options.runtime === \"node\") {\n request.headers = {\n ...request.headers,\n Expect: \"100-continue\",\n };\n }\n return next({\n ...args,\n request,\n });\n };\n}\nexport const addExpectContinueMiddlewareOptions = {\n step: \"build\",\n tags: [\"SET_EXPECT_HEADER\", \"EXPECT_HEADER\"],\n name: \"addExpectContinueMiddleware\",\n override: true,\n};\nexport const getAddExpectContinuePlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(addExpectContinueMiddleware(options), addExpectContinueMiddlewareOptions);\n },\n});\n","import { HttpRequest } from \"@smithy/protocol-http\";\nexport function resolveHostHeaderConfig(input) {\n return input;\n}\nexport const hostHeaderMiddleware = (options) => (next) => async (args) => {\n if (!HttpRequest.isInstance(args.request))\n return next(args);\n const { request } = args;\n const { handlerProtocol = \"\" } = options.requestHandler.metadata || {};\n if (handlerProtocol.indexOf(\"h2\") >= 0 && !request.headers[\":authority\"]) {\n delete request.headers[\"host\"];\n request.headers[\":authority\"] = request.hostname + (request.port ? \":\" + request.port : \"\");\n }\n else if (!request.headers[\"host\"]) {\n let host = request.hostname;\n if (request.port != null)\n host += `:${request.port}`;\n request.headers[\"host\"] = host;\n }\n return next(args);\n};\nexport const hostHeaderMiddlewareOptions = {\n name: \"hostHeaderMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"HOST\"],\n override: true,\n};\nexport const getHostHeaderPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(hostHeaderMiddleware(options), hostHeaderMiddlewareOptions);\n },\n});\n","export const loggerMiddleware = () => (next, context) => async (args) => {\n try {\n const response = await next(args);\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog, overrideOutputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n const outputFilterSensitiveLog = overrideOutputFilterSensitiveLog ?? context.outputFilterSensitiveLog;\n const { $metadata, ...outputWithoutMetadata } = response.output;\n logger?.info?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n output: outputFilterSensitiveLog(outputWithoutMetadata),\n metadata: $metadata,\n });\n return response;\n }\n catch (error) {\n const { clientName, commandName, logger, dynamoDbDocumentClientOptions = {} } = context;\n const { overrideInputFilterSensitiveLog } = dynamoDbDocumentClientOptions;\n const inputFilterSensitiveLog = overrideInputFilterSensitiveLog ?? context.inputFilterSensitiveLog;\n logger?.error?.({\n clientName,\n commandName,\n input: inputFilterSensitiveLog(args.input),\n error,\n metadata: error.$metadata,\n });\n throw error;\n }\n};\nexport const loggerMiddlewareOptions = {\n name: \"loggerMiddleware\",\n tags: [\"LOGGER\"],\n step: \"initialize\",\n override: true,\n};\nexport const getLoggerPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(loggerMiddleware(), loggerMiddlewareOptions);\n },\n});\n","import { HttpRequest } from \"@smithy/protocol-http\";\nconst TRACE_ID_HEADER_NAME = \"X-Amzn-Trace-Id\";\nconst ENV_LAMBDA_FUNCTION_NAME = \"AWS_LAMBDA_FUNCTION_NAME\";\nconst ENV_TRACE_ID = \"_X_AMZN_TRACE_ID\";\nexport const recursionDetectionMiddleware = (options) => (next) => async (args) => {\n const { request } = args;\n if (!HttpRequest.isInstance(request) ||\n options.runtime !== \"node\" ||\n request.headers.hasOwnProperty(TRACE_ID_HEADER_NAME)) {\n return next(args);\n }\n const functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n const traceId = process.env[ENV_TRACE_ID];\n const nonEmptyString = (str) => typeof str === \"string\" && str.length > 0;\n if (nonEmptyString(functionName) && nonEmptyString(traceId)) {\n request.headers[TRACE_ID_HEADER_NAME] = traceId;\n }\n return next({\n ...args,\n request,\n });\n};\nexport const addRecursionDetectionMiddlewareOptions = {\n step: \"build\",\n tags: [\"RECURSION_DETECTION\"],\n name: \"recursionDetectionMiddleware\",\n override: true,\n priority: \"low\",\n};\nexport const getRecursionDetectionPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(recursionDetectionMiddleware(options), addRecursionDetectionMiddlewareOptions);\n },\n});\n","export const memoize = (provider, isExpired, requiresRefresh) => {\n let resolved;\n let pending;\n let hasResult;\n let isConstant = false;\n const coalesceProvider = async () => {\n if (!pending) {\n pending = provider();\n }\n try {\n resolved = await pending;\n hasResult = true;\n isConstant = false;\n }\n finally {\n pending = undefined;\n }\n return resolved;\n };\n if (isExpired === undefined) {\n return async (options) => {\n if (!hasResult || options?.forceRefresh) {\n resolved = await coalesceProvider();\n }\n return resolved;\n };\n }\n return async (options) => {\n if (!hasResult || options?.forceRefresh) {\n resolved = await coalesceProvider();\n }\n if (isConstant) {\n return resolved;\n }\n if (requiresRefresh && !requiresRefresh(resolved)) {\n isConstant = true;\n return resolved;\n }\n if (isExpired(resolved)) {\n await coalesceProvider();\n return resolved;\n }\n return resolved;\n };\n};\n","import { fromHex, toHex } from \"@smithy/util-hex-encoding\";\nimport { Int64 } from \"./Int64\";\nexport class HeaderMarshaller {\n constructor(toUtf8, fromUtf8) {\n this.toUtf8 = toUtf8;\n this.fromUtf8 = fromUtf8;\n }\n format(headers) {\n const chunks = [];\n for (const headerName of Object.keys(headers)) {\n const bytes = this.fromUtf8(headerName);\n chunks.push(Uint8Array.from([bytes.byteLength]), bytes, this.formatHeaderValue(headers[headerName]));\n }\n const out = new Uint8Array(chunks.reduce((carry, bytes) => carry + bytes.byteLength, 0));\n let position = 0;\n for (const chunk of chunks) {\n out.set(chunk, position);\n position += chunk.byteLength;\n }\n return out;\n }\n formatHeaderValue(header) {\n switch (header.type) {\n case \"boolean\":\n return Uint8Array.from([header.value ? 0 : 1]);\n case \"byte\":\n return Uint8Array.from([2, header.value]);\n case \"short\":\n const shortView = new DataView(new ArrayBuffer(3));\n shortView.setUint8(0, 3);\n shortView.setInt16(1, header.value, false);\n return new Uint8Array(shortView.buffer);\n case \"integer\":\n const intView = new DataView(new ArrayBuffer(5));\n intView.setUint8(0, 4);\n intView.setInt32(1, header.value, false);\n return new Uint8Array(intView.buffer);\n case \"long\":\n const longBytes = new Uint8Array(9);\n longBytes[0] = 5;\n longBytes.set(header.value.bytes, 1);\n return longBytes;\n case \"binary\":\n const binView = new DataView(new ArrayBuffer(3 + header.value.byteLength));\n binView.setUint8(0, 6);\n binView.setUint16(1, header.value.byteLength, false);\n const binBytes = new Uint8Array(binView.buffer);\n binBytes.set(header.value, 3);\n return binBytes;\n case \"string\":\n const utf8Bytes = this.fromUtf8(header.value);\n const strView = new DataView(new ArrayBuffer(3 + utf8Bytes.byteLength));\n strView.setUint8(0, 7);\n strView.setUint16(1, utf8Bytes.byteLength, false);\n const strBytes = new Uint8Array(strView.buffer);\n strBytes.set(utf8Bytes, 3);\n return strBytes;\n case \"timestamp\":\n const tsBytes = new Uint8Array(9);\n tsBytes[0] = 8;\n tsBytes.set(Int64.fromNumber(header.value.valueOf()).bytes, 1);\n return tsBytes;\n case \"uuid\":\n if (!UUID_PATTERN.test(header.value)) {\n throw new Error(`Invalid UUID received: ${header.value}`);\n }\n const uuidBytes = new Uint8Array(17);\n uuidBytes[0] = 9;\n uuidBytes.set(fromHex(header.value.replace(/\\-/g, \"\")), 1);\n return uuidBytes;\n }\n }\n parse(headers) {\n const out = {};\n let position = 0;\n while (position < headers.byteLength) {\n const nameLength = headers.getUint8(position++);\n const name = this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, nameLength));\n position += nameLength;\n switch (headers.getUint8(position++)) {\n case 0:\n out[name] = {\n type: BOOLEAN_TAG,\n value: true,\n };\n break;\n case 1:\n out[name] = {\n type: BOOLEAN_TAG,\n value: false,\n };\n break;\n case 2:\n out[name] = {\n type: BYTE_TAG,\n value: headers.getInt8(position++),\n };\n break;\n case 3:\n out[name] = {\n type: SHORT_TAG,\n value: headers.getInt16(position, false),\n };\n position += 2;\n break;\n case 4:\n out[name] = {\n type: INT_TAG,\n value: headers.getInt32(position, false),\n };\n position += 4;\n break;\n case 5:\n out[name] = {\n type: LONG_TAG,\n value: new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)),\n };\n position += 8;\n break;\n case 6:\n const binaryLength = headers.getUint16(position, false);\n position += 2;\n out[name] = {\n type: BINARY_TAG,\n value: new Uint8Array(headers.buffer, headers.byteOffset + position, binaryLength),\n };\n position += binaryLength;\n break;\n case 7:\n const stringLength = headers.getUint16(position, false);\n position += 2;\n out[name] = {\n type: STRING_TAG,\n value: this.toUtf8(new Uint8Array(headers.buffer, headers.byteOffset + position, stringLength)),\n };\n position += stringLength;\n break;\n case 8:\n out[name] = {\n type: TIMESTAMP_TAG,\n value: new Date(new Int64(new Uint8Array(headers.buffer, headers.byteOffset + position, 8)).valueOf()),\n };\n position += 8;\n break;\n case 9:\n const uuidBytes = new Uint8Array(headers.buffer, headers.byteOffset + position, 16);\n position += 16;\n out[name] = {\n type: UUID_TAG,\n value: `${toHex(uuidBytes.subarray(0, 4))}-${toHex(uuidBytes.subarray(4, 6))}-${toHex(uuidBytes.subarray(6, 8))}-${toHex(uuidBytes.subarray(8, 10))}-${toHex(uuidBytes.subarray(10))}`,\n };\n break;\n default:\n throw new Error(`Unrecognized header type tag`);\n }\n }\n return out;\n }\n}\nvar HEADER_VALUE_TYPE;\n(function (HEADER_VALUE_TYPE) {\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolTrue\"] = 0] = \"boolTrue\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"boolFalse\"] = 1] = \"boolFalse\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byte\"] = 2] = \"byte\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"short\"] = 3] = \"short\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"integer\"] = 4] = \"integer\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"long\"] = 5] = \"long\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"byteArray\"] = 6] = \"byteArray\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"string\"] = 7] = \"string\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"timestamp\"] = 8] = \"timestamp\";\n HEADER_VALUE_TYPE[HEADER_VALUE_TYPE[\"uuid\"] = 9] = \"uuid\";\n})(HEADER_VALUE_TYPE || (HEADER_VALUE_TYPE = {}));\nconst BOOLEAN_TAG = \"boolean\";\nconst BYTE_TAG = \"byte\";\nconst SHORT_TAG = \"short\";\nconst INT_TAG = \"integer\";\nconst LONG_TAG = \"long\";\nconst BINARY_TAG = \"binary\";\nconst STRING_TAG = \"string\";\nconst TIMESTAMP_TAG = \"timestamp\";\nconst UUID_TAG = \"uuid\";\nconst UUID_PATTERN = /^[a-f0-9]{8}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{4}-[a-f0-9]{12}$/;\n","import { toHex } from \"@smithy/util-hex-encoding\";\nexport class Int64 {\n constructor(bytes) {\n this.bytes = bytes;\n if (bytes.byteLength !== 8) {\n throw new Error(\"Int64 buffers must be exactly 8 bytes\");\n }\n }\n static fromNumber(number) {\n if (number > 9223372036854776000 || number < -9223372036854776000) {\n throw new Error(`${number} is too large (or, if negative, too small) to represent as an Int64`);\n }\n const bytes = new Uint8Array(8);\n for (let i = 7, remaining = Math.abs(Math.round(number)); i > -1 && remaining > 0; i--, remaining /= 256) {\n bytes[i] = remaining;\n }\n if (number < 0) {\n negate(bytes);\n }\n return new Int64(bytes);\n }\n valueOf() {\n const bytes = this.bytes.slice(0);\n const negative = bytes[0] & 0b10000000;\n if (negative) {\n negate(bytes);\n }\n return parseInt(toHex(bytes), 16) * (negative ? -1 : 1);\n }\n toString() {\n return String(this.valueOf());\n }\n}\nfunction negate(bytes) {\n for (let i = 0; i < 8; i++) {\n bytes[i] ^= 0xff;\n }\n for (let i = 7; i > -1; i--) {\n bytes[i]++;\n if (bytes[i] !== 0)\n break;\n }\n}\n","import { Crc32 } from \"@aws-crypto/crc32\";\nimport { HeaderMarshaller } from \"./HeaderMarshaller\";\nimport { splitMessage } from \"./splitMessage\";\nexport class EventStreamCodec {\n constructor(toUtf8, fromUtf8) {\n this.headerMarshaller = new HeaderMarshaller(toUtf8, fromUtf8);\n this.messageBuffer = [];\n this.isEndOfStream = false;\n }\n feed(message) {\n this.messageBuffer.push(this.decode(message));\n }\n endOfStream() {\n this.isEndOfStream = true;\n }\n getMessage() {\n const message = this.messageBuffer.pop();\n const isEndOfStream = this.isEndOfStream;\n return {\n getMessage() {\n return message;\n },\n isEndOfStream() {\n return isEndOfStream;\n },\n };\n }\n getAvailableMessages() {\n const messages = this.messageBuffer;\n this.messageBuffer = [];\n const isEndOfStream = this.isEndOfStream;\n return {\n getMessages() {\n return messages;\n },\n isEndOfStream() {\n return isEndOfStream;\n },\n };\n }\n encode({ headers: rawHeaders, body }) {\n const headers = this.headerMarshaller.format(rawHeaders);\n const length = headers.byteLength + body.byteLength + 16;\n const out = new Uint8Array(length);\n const view = new DataView(out.buffer, out.byteOffset, out.byteLength);\n const checksum = new Crc32();\n view.setUint32(0, length, false);\n view.setUint32(4, headers.byteLength, false);\n view.setUint32(8, checksum.update(out.subarray(0, 8)).digest(), false);\n out.set(headers, 12);\n out.set(body, headers.byteLength + 12);\n view.setUint32(length - 4, checksum.update(out.subarray(8, length - 4)).digest(), false);\n return out;\n }\n decode(message) {\n const { headers, body } = splitMessage(message);\n return { headers: this.headerMarshaller.parse(headers), body };\n }\n formatHeaders(rawHeaders) {\n return this.headerMarshaller.format(rawHeaders);\n }\n}\n","import { Crc32 } from \"@aws-crypto/crc32\";\nconst PRELUDE_MEMBER_LENGTH = 4;\nconst PRELUDE_LENGTH = PRELUDE_MEMBER_LENGTH * 2;\nconst CHECKSUM_LENGTH = 4;\nconst MINIMUM_MESSAGE_LENGTH = PRELUDE_LENGTH + CHECKSUM_LENGTH * 2;\nexport function splitMessage({ byteLength, byteOffset, buffer }) {\n if (byteLength < MINIMUM_MESSAGE_LENGTH) {\n throw new Error(\"Provided message too short to accommodate event stream message overhead\");\n }\n const view = new DataView(buffer, byteOffset, byteLength);\n const messageLength = view.getUint32(0, false);\n if (byteLength !== messageLength) {\n throw new Error(\"Reported message length does not match received message length\");\n }\n const headerLength = view.getUint32(PRELUDE_MEMBER_LENGTH, false);\n const expectedPreludeChecksum = view.getUint32(PRELUDE_LENGTH, false);\n const expectedMessageChecksum = view.getUint32(byteLength - CHECKSUM_LENGTH, false);\n const checksummer = new Crc32().update(new Uint8Array(buffer, byteOffset, PRELUDE_LENGTH));\n if (expectedPreludeChecksum !== checksummer.digest()) {\n throw new Error(`The prelude checksum specified in the message (${expectedPreludeChecksum}) does not match the calculated CRC32 checksum (${checksummer.digest()})`);\n }\n checksummer.update(new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH, byteLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH)));\n if (expectedMessageChecksum !== checksummer.digest()) {\n throw new Error(`The message checksum (${checksummer.digest()}) did not match the expected value of ${expectedMessageChecksum}`);\n }\n return {\n headers: new DataView(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH, headerLength),\n body: new Uint8Array(buffer, byteOffset + PRELUDE_LENGTH + CHECKSUM_LENGTH + headerLength, messageLength - headerLength - (PRELUDE_LENGTH + CHECKSUM_LENGTH + CHECKSUM_LENGTH)),\n };\n}\n","export class MessageDecoderStream {\n constructor(options) {\n this.options = options;\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const bytes of this.options.inputStream) {\n const decoded = this.options.decoder.decode(bytes);\n yield decoded;\n }\n }\n}\n","export class MessageEncoderStream {\n constructor(options) {\n this.options = options;\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const msg of this.options.messageStream) {\n const encoded = this.options.encoder.encode(msg);\n yield encoded;\n }\n if (this.options.includeEndFrame) {\n yield new Uint8Array(0);\n }\n }\n}\n","export class SmithyMessageDecoderStream {\n constructor(options) {\n this.options = options;\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const message of this.options.messageStream) {\n const deserialized = await this.options.deserializer(message);\n if (deserialized === undefined)\n continue;\n yield deserialized;\n }\n }\n}\n","export class SmithyMessageEncoderStream {\n constructor(options) {\n this.options = options;\n }\n [Symbol.asyncIterator]() {\n return this.asyncIterator();\n }\n async *asyncIterator() {\n for await (const chunk of this.options.inputStream) {\n const payloadBuf = this.options.serializer(chunk);\n yield payloadBuf;\n }\n }\n}\n","export const ALGORITHM_QUERY_PARAM = \"X-Amz-Algorithm\";\nexport const CREDENTIAL_QUERY_PARAM = \"X-Amz-Credential\";\nexport const AMZ_DATE_QUERY_PARAM = \"X-Amz-Date\";\nexport const SIGNED_HEADERS_QUERY_PARAM = \"X-Amz-SignedHeaders\";\nexport const EXPIRES_QUERY_PARAM = \"X-Amz-Expires\";\nexport const SIGNATURE_QUERY_PARAM = \"X-Amz-Signature\";\nexport const TOKEN_QUERY_PARAM = \"X-Amz-Security-Token\";\nexport const REGION_SET_PARAM = \"X-Amz-Region-Set\";\nexport const AUTH_HEADER = \"authorization\";\nexport const AMZ_DATE_HEADER = AMZ_DATE_QUERY_PARAM.toLowerCase();\nexport const DATE_HEADER = \"date\";\nexport const GENERATED_HEADERS = [AUTH_HEADER, AMZ_DATE_HEADER, DATE_HEADER];\nexport const SIGNATURE_HEADER = SIGNATURE_QUERY_PARAM.toLowerCase();\nexport const SHA256_HEADER = \"x-amz-content-sha256\";\nexport const TOKEN_HEADER = TOKEN_QUERY_PARAM.toLowerCase();\nexport const HOST_HEADER = \"host\";\nexport const ALWAYS_UNSIGNABLE_HEADERS = {\n authorization: true,\n \"cache-control\": true,\n connection: true,\n expect: true,\n from: true,\n \"keep-alive\": true,\n \"max-forwards\": true,\n pragma: true,\n referer: true,\n te: true,\n trailer: true,\n \"transfer-encoding\": true,\n upgrade: true,\n \"user-agent\": true,\n \"x-amzn-trace-id\": true,\n};\nexport const PROXY_HEADER_PATTERN = /^proxy-/;\nexport const SEC_HEADER_PATTERN = /^sec-/;\nexport const UNSIGNABLE_PATTERNS = [/^proxy-/i, /^sec-/i];\nexport const ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256\";\nexport const ALGORITHM_IDENTIFIER_V4A = \"AWS4-ECDSA-P256-SHA256\";\nexport const EVENT_ALGORITHM_IDENTIFIER = \"AWS4-HMAC-SHA256-PAYLOAD\";\nexport const UNSIGNED_PAYLOAD = \"UNSIGNED-PAYLOAD\";\nexport const MAX_CACHE_SIZE = 50;\nexport const KEY_TYPE_IDENTIFIER = \"aws4_request\";\nexport const MAX_PRESIGNED_TTL = 60 * 60 * 24 * 7;\n","import { toHex } from \"@smithy/util-hex-encoding\";\nimport { toUint8Array } from \"@smithy/util-utf8\";\nimport { KEY_TYPE_IDENTIFIER, MAX_CACHE_SIZE } from \"./constants\";\nconst signingKeyCache = {};\nconst cacheQueue = [];\nexport const createScope = (shortDate, region, service) => `${shortDate}/${region}/${service}/${KEY_TYPE_IDENTIFIER}`;\nexport const getSigningKey = async (sha256Constructor, credentials, shortDate, region, service) => {\n const credsHash = await hmac(sha256Constructor, credentials.secretAccessKey, credentials.accessKeyId);\n const cacheKey = `${shortDate}:${region}:${service}:${toHex(credsHash)}:${credentials.sessionToken}`;\n if (cacheKey in signingKeyCache) {\n return signingKeyCache[cacheKey];\n }\n cacheQueue.push(cacheKey);\n while (cacheQueue.length > MAX_CACHE_SIZE) {\n delete signingKeyCache[cacheQueue.shift()];\n }\n let key = `AWS4${credentials.secretAccessKey}`;\n for (const signable of [shortDate, region, service, KEY_TYPE_IDENTIFIER]) {\n key = await hmac(sha256Constructor, key, signable);\n }\n return (signingKeyCache[cacheKey] = key);\n};\nexport const clearCredentialCache = () => {\n cacheQueue.length = 0;\n Object.keys(signingKeyCache).forEach((cacheKey) => {\n delete signingKeyCache[cacheKey];\n });\n};\nconst hmac = (ctor, secret, data) => {\n const hash = new ctor(secret);\n hash.update(toUint8Array(data));\n return hash.digest();\n};\n","import { ALWAYS_UNSIGNABLE_HEADERS, PROXY_HEADER_PATTERN, SEC_HEADER_PATTERN } from \"./constants\";\nexport const getCanonicalHeaders = ({ headers }, unsignableHeaders, signableHeaders) => {\n const canonical = {};\n for (const headerName of Object.keys(headers).sort()) {\n if (headers[headerName] == undefined) {\n continue;\n }\n const canonicalHeaderName = headerName.toLowerCase();\n if (canonicalHeaderName in ALWAYS_UNSIGNABLE_HEADERS ||\n unsignableHeaders?.has(canonicalHeaderName) ||\n PROXY_HEADER_PATTERN.test(canonicalHeaderName) ||\n SEC_HEADER_PATTERN.test(canonicalHeaderName)) {\n if (!signableHeaders || (signableHeaders && !signableHeaders.has(canonicalHeaderName))) {\n continue;\n }\n }\n canonical[canonicalHeaderName] = headers[headerName].trim().replace(/\\s+/g, \" \");\n }\n return canonical;\n};\n","import { isArrayBuffer } from \"@smithy/is-array-buffer\";\nimport { toHex } from \"@smithy/util-hex-encoding\";\nimport { toUint8Array } from \"@smithy/util-utf8\";\nimport { SHA256_HEADER, UNSIGNED_PAYLOAD } from \"./constants\";\nexport const getPayloadHash = async ({ headers, body }, hashConstructor) => {\n for (const headerName of Object.keys(headers)) {\n if (headerName.toLowerCase() === SHA256_HEADER) {\n return headers[headerName];\n }\n }\n if (body == undefined) {\n return \"e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855\";\n }\n else if (typeof body === \"string\" || ArrayBuffer.isView(body) || isArrayBuffer(body)) {\n const hashCtor = new hashConstructor();\n hashCtor.update(toUint8Array(body));\n return toHex(await hashCtor.digest());\n }\n return UNSIGNED_PAYLOAD;\n};\n","export const cloneRequest = ({ headers, query, ...rest }) => ({\n ...rest,\n headers: { ...headers },\n query: query ? cloneQuery(query) : undefined,\n});\nexport const cloneQuery = (query) => Object.keys(query).reduce((carry, paramName) => {\n const param = query[paramName];\n return {\n ...carry,\n [paramName]: Array.isArray(param) ? [...param] : param,\n };\n}, {});\n","import { cloneRequest } from \"./cloneRequest\";\nimport { GENERATED_HEADERS } from \"./constants\";\nexport const prepareRequest = (request) => {\n request = typeof request.clone === \"function\" ? request.clone() : cloneRequest(request);\n for (const headerName of Object.keys(request.headers)) {\n if (GENERATED_HEADERS.indexOf(headerName.toLowerCase()) > -1) {\n delete request.headers[headerName];\n }\n }\n return request;\n};\n","export const iso8601 = (time) => toDate(time)\n .toISOString()\n .replace(/\\.\\d{3}Z$/, \"Z\");\nexport const toDate = (time) => {\n if (typeof time === \"number\") {\n return new Date(time * 1000);\n }\n if (typeof time === \"string\") {\n if (Number(time)) {\n return new Date(Number(time) * 1000);\n }\n return new Date(time);\n }\n return time;\n};\n","import { HeaderMarshaller } from \"@smithy/eventstream-codec\";\nimport { toHex } from \"@smithy/util-hex-encoding\";\nimport { normalizeProvider } from \"@smithy/util-middleware\";\nimport { fromUtf8, toUint8Array, toUtf8 } from \"@smithy/util-utf8\";\nimport { ALGORITHM_IDENTIFIER, ALGORITHM_QUERY_PARAM, AMZ_DATE_HEADER, AMZ_DATE_QUERY_PARAM, AUTH_HEADER, CREDENTIAL_QUERY_PARAM, EVENT_ALGORITHM_IDENTIFIER, EXPIRES_QUERY_PARAM, MAX_PRESIGNED_TTL, SHA256_HEADER, SIGNATURE_QUERY_PARAM, SIGNED_HEADERS_QUERY_PARAM, TOKEN_HEADER, TOKEN_QUERY_PARAM, } from \"./constants\";\nimport { createScope, getSigningKey } from \"./credentialDerivation\";\nimport { getCanonicalHeaders } from \"./getCanonicalHeaders\";\nimport { getCanonicalQuery } from \"./getCanonicalQuery\";\nimport { getPayloadHash } from \"./getPayloadHash\";\nimport { hasHeader } from \"./headerUtil\";\nimport { moveHeadersToQuery } from \"./moveHeadersToQuery\";\nimport { prepareRequest } from \"./prepareRequest\";\nimport { iso8601 } from \"./utilDate\";\nexport class SignatureV4 {\n constructor({ applyChecksum, credentials, region, service, sha256, uriEscapePath = true, }) {\n this.headerMarshaller = new HeaderMarshaller(toUtf8, fromUtf8);\n this.service = service;\n this.sha256 = sha256;\n this.uriEscapePath = uriEscapePath;\n this.applyChecksum = typeof applyChecksum === \"boolean\" ? applyChecksum : true;\n this.regionProvider = normalizeProvider(region);\n this.credentialProvider = normalizeProvider(credentials);\n }\n async presign(originalRequest, options = {}) {\n const { signingDate = new Date(), expiresIn = 3600, unsignableHeaders, unhoistableHeaders, signableHeaders, signingRegion, signingService, } = options;\n const credentials = await this.credentialProvider();\n this.validateResolvedCredentials(credentials);\n const region = signingRegion ?? (await this.regionProvider());\n const { longDate, shortDate } = formatDate(signingDate);\n if (expiresIn > MAX_PRESIGNED_TTL) {\n return Promise.reject(\"Signature version 4 presigned URLs\" + \" must have an expiration date less than one week in\" + \" the future\");\n }\n const scope = createScope(shortDate, region, signingService ?? this.service);\n const request = moveHeadersToQuery(prepareRequest(originalRequest), { unhoistableHeaders });\n if (credentials.sessionToken) {\n request.query[TOKEN_QUERY_PARAM] = credentials.sessionToken;\n }\n request.query[ALGORITHM_QUERY_PARAM] = ALGORITHM_IDENTIFIER;\n request.query[CREDENTIAL_QUERY_PARAM] = `${credentials.accessKeyId}/${scope}`;\n request.query[AMZ_DATE_QUERY_PARAM] = longDate;\n request.query[EXPIRES_QUERY_PARAM] = expiresIn.toString(10);\n const canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n request.query[SIGNED_HEADERS_QUERY_PARAM] = getCanonicalHeaderList(canonicalHeaders);\n request.query[SIGNATURE_QUERY_PARAM] = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, await getPayloadHash(originalRequest, this.sha256)));\n return request;\n }\n async sign(toSign, options) {\n if (typeof toSign === \"string\") {\n return this.signString(toSign, options);\n }\n else if (toSign.headers && toSign.payload) {\n return this.signEvent(toSign, options);\n }\n else if (toSign.message) {\n return this.signMessage(toSign, options);\n }\n else {\n return this.signRequest(toSign, options);\n }\n }\n async signEvent({ headers, payload }, { signingDate = new Date(), priorSignature, signingRegion, signingService }) {\n const region = signingRegion ?? (await this.regionProvider());\n const { shortDate, longDate } = formatDate(signingDate);\n const scope = createScope(shortDate, region, signingService ?? this.service);\n const hashedPayload = await getPayloadHash({ headers: {}, body: payload }, this.sha256);\n const hash = new this.sha256();\n hash.update(headers);\n const hashedHeaders = toHex(await hash.digest());\n const stringToSign = [\n EVENT_ALGORITHM_IDENTIFIER,\n longDate,\n scope,\n priorSignature,\n hashedHeaders,\n hashedPayload,\n ].join(\"\\n\");\n return this.signString(stringToSign, { signingDate, signingRegion: region, signingService });\n }\n async signMessage(signableMessage, { signingDate = new Date(), signingRegion, signingService }) {\n const promise = this.signEvent({\n headers: this.headerMarshaller.format(signableMessage.message.headers),\n payload: signableMessage.message.body,\n }, {\n signingDate,\n signingRegion,\n signingService,\n priorSignature: signableMessage.priorSignature,\n });\n return promise.then((signature) => {\n return { message: signableMessage.message, signature };\n });\n }\n async signString(stringToSign, { signingDate = new Date(), signingRegion, signingService } = {}) {\n const credentials = await this.credentialProvider();\n this.validateResolvedCredentials(credentials);\n const region = signingRegion ?? (await this.regionProvider());\n const { shortDate } = formatDate(signingDate);\n const hash = new this.sha256(await this.getSigningKey(credentials, region, shortDate, signingService));\n hash.update(toUint8Array(stringToSign));\n return toHex(await hash.digest());\n }\n async signRequest(requestToSign, { signingDate = new Date(), signableHeaders, unsignableHeaders, signingRegion, signingService, } = {}) {\n const credentials = await this.credentialProvider();\n this.validateResolvedCredentials(credentials);\n const region = signingRegion ?? (await this.regionProvider());\n const request = prepareRequest(requestToSign);\n const { longDate, shortDate } = formatDate(signingDate);\n const scope = createScope(shortDate, region, signingService ?? this.service);\n request.headers[AMZ_DATE_HEADER] = longDate;\n if (credentials.sessionToken) {\n request.headers[TOKEN_HEADER] = credentials.sessionToken;\n }\n const payloadHash = await getPayloadHash(request, this.sha256);\n if (!hasHeader(SHA256_HEADER, request.headers) && this.applyChecksum) {\n request.headers[SHA256_HEADER] = payloadHash;\n }\n const canonicalHeaders = getCanonicalHeaders(request, unsignableHeaders, signableHeaders);\n const signature = await this.getSignature(longDate, scope, this.getSigningKey(credentials, region, shortDate, signingService), this.createCanonicalRequest(request, canonicalHeaders, payloadHash));\n request.headers[AUTH_HEADER] =\n `${ALGORITHM_IDENTIFIER} ` +\n `Credential=${credentials.accessKeyId}/${scope}, ` +\n `SignedHeaders=${getCanonicalHeaderList(canonicalHeaders)}, ` +\n `Signature=${signature}`;\n return request;\n }\n createCanonicalRequest(request, canonicalHeaders, payloadHash) {\n const sortedHeaders = Object.keys(canonicalHeaders).sort();\n return `${request.method}\n${this.getCanonicalPath(request)}\n${getCanonicalQuery(request)}\n${sortedHeaders.map((name) => `${name}:${canonicalHeaders[name]}`).join(\"\\n\")}\n\n${sortedHeaders.join(\";\")}\n${payloadHash}`;\n }\n async createStringToSign(longDate, credentialScope, canonicalRequest) {\n const hash = new this.sha256();\n hash.update(toUint8Array(canonicalRequest));\n const hashedRequest = await hash.digest();\n return `${ALGORITHM_IDENTIFIER}\n${longDate}\n${credentialScope}\n${toHex(hashedRequest)}`;\n }\n getCanonicalPath({ path }) {\n if (this.uriEscapePath) {\n const normalizedPathSegments = [];\n for (const pathSegment of path.split(\"/\")) {\n if (pathSegment?.length === 0)\n continue;\n if (pathSegment === \".\")\n continue;\n if (pathSegment === \"..\") {\n normalizedPathSegments.pop();\n }\n else {\n normalizedPathSegments.push(pathSegment);\n }\n }\n const normalizedPath = `${path?.startsWith(\"/\") ? \"/\" : \"\"}${normalizedPathSegments.join(\"/\")}${normalizedPathSegments.length > 0 && path?.endsWith(\"/\") ? \"/\" : \"\"}`;\n const doubleEncoded = encodeURIComponent(normalizedPath);\n return doubleEncoded.replace(/%2F/g, \"/\");\n }\n return path;\n }\n async getSignature(longDate, credentialScope, keyPromise, canonicalRequest) {\n const stringToSign = await this.createStringToSign(longDate, credentialScope, canonicalRequest);\n const hash = new this.sha256(await keyPromise);\n hash.update(toUint8Array(stringToSign));\n return toHex(await hash.digest());\n }\n getSigningKey(credentials, region, shortDate, service) {\n return getSigningKey(this.sha256, credentials, shortDate, region, service || this.service);\n }\n validateResolvedCredentials(credentials) {\n if (typeof credentials !== \"object\" ||\n typeof credentials.accessKeyId !== \"string\" ||\n typeof credentials.secretAccessKey !== \"string\") {\n throw new Error(\"Resolved credential object is not valid\");\n }\n }\n}\nconst formatDate = (now) => {\n const longDate = iso8601(now).replace(/[\\-:]/g, \"\");\n return {\n longDate,\n shortDate: longDate.slice(0, 8),\n };\n};\nconst getCanonicalHeaderList = (headers) => Object.keys(headers).sort().join(\";\");\n","import { cloneRequest } from \"./cloneRequest\";\nexport const moveHeadersToQuery = (request, options = {}) => {\n const { headers, query = {} } = typeof request.clone === \"function\" ? request.clone() : cloneRequest(request);\n for (const name of Object.keys(headers)) {\n const lname = name.toLowerCase();\n if (lname.slice(0, 6) === \"x-amz-\" && !options.unhoistableHeaders?.has(lname)) {\n query[name] = headers[name];\n delete headers[name];\n }\n }\n return {\n ...request,\n headers,\n query,\n };\n};\n","export const hasHeader = (soughtHeader, headers) => {\n soughtHeader = soughtHeader.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return true;\n }\n }\n return false;\n};\nexport const getHeaderValue = (soughtHeader, headers) => {\n soughtHeader = soughtHeader.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return headers[headerName];\n }\n }\n return undefined;\n};\nexport const deleteHeader = (soughtHeader, headers) => {\n soughtHeader = soughtHeader.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n delete headers[headerName];\n }\n }\n};\n","import { escapeUri } from \"@smithy/util-uri-escape\";\nimport { SIGNATURE_HEADER } from \"./constants\";\nexport const getCanonicalQuery = ({ query = {} }) => {\n const keys = [];\n const serialized = {};\n for (const key of Object.keys(query).sort()) {\n if (key.toLowerCase() === SIGNATURE_HEADER) {\n continue;\n }\n keys.push(key);\n const value = query[key];\n if (typeof value === \"string\") {\n serialized[key] = `${escapeUri(key)}=${escapeUri(value)}`;\n }\n else if (Array.isArray(value)) {\n serialized[key] = value\n .slice(0)\n .reduce((encoded, value) => encoded.concat([`${escapeUri(key)}=${escapeUri(value)}`]), [])\n .sort()\n .join(\"&\");\n }\n }\n return keys\n .map((key) => serialized[key])\n .filter((serialized) => serialized)\n .join(\"&\");\n};\n","import { memoize } from \"@smithy/property-provider\";\nimport { SignatureV4 } from \"@smithy/signature-v4\";\nimport { normalizeProvider } from \"@smithy/util-middleware\";\nconst CREDENTIAL_EXPIRE_WINDOW = 300000;\nexport const resolveAwsAuthConfig = (input) => {\n const normalizedCreds = input.credentials\n ? normalizeCredentialProvider(input.credentials)\n : input.credentialDefaultProvider(input);\n const { signingEscapePath = true, systemClockOffset = input.systemClockOffset || 0, sha256 } = input;\n let signer;\n if (input.signer) {\n signer = normalizeProvider(input.signer);\n }\n else if (input.regionInfoProvider) {\n signer = () => normalizeProvider(input.region)()\n .then(async (region) => [\n (await input.regionInfoProvider(region, {\n useFipsEndpoint: await input.useFipsEndpoint(),\n useDualstackEndpoint: await input.useDualstackEndpoint(),\n })) || {},\n region,\n ])\n .then(([regionInfo, region]) => {\n const { signingRegion, signingService } = regionInfo;\n input.signingRegion = input.signingRegion || signingRegion || region;\n input.signingName = input.signingName || signingService || input.serviceId;\n const params = {\n ...input,\n credentials: normalizedCreds,\n region: input.signingRegion,\n service: input.signingName,\n sha256,\n uriEscapePath: signingEscapePath,\n };\n const SignerCtor = input.signerConstructor || SignatureV4;\n return new SignerCtor(params);\n });\n }\n else {\n signer = async (authScheme) => {\n authScheme = Object.assign({}, {\n name: \"sigv4\",\n signingName: input.signingName || input.defaultSigningName,\n signingRegion: await normalizeProvider(input.region)(),\n properties: {},\n }, authScheme);\n const signingRegion = authScheme.signingRegion;\n const signingService = authScheme.signingName;\n input.signingRegion = input.signingRegion || signingRegion;\n input.signingName = input.signingName || signingService || input.serviceId;\n const params = {\n ...input,\n credentials: normalizedCreds,\n region: input.signingRegion,\n service: input.signingName,\n sha256,\n uriEscapePath: signingEscapePath,\n };\n const SignerCtor = input.signerConstructor || SignatureV4;\n return new SignerCtor(params);\n };\n }\n return {\n ...input,\n systemClockOffset,\n signingEscapePath,\n credentials: normalizedCreds,\n signer,\n };\n};\nexport const resolveSigV4AuthConfig = (input) => {\n const normalizedCreds = input.credentials\n ? normalizeCredentialProvider(input.credentials)\n : input.credentialDefaultProvider(input);\n const { signingEscapePath = true, systemClockOffset = input.systemClockOffset || 0, sha256 } = input;\n let signer;\n if (input.signer) {\n signer = normalizeProvider(input.signer);\n }\n else {\n signer = normalizeProvider(new SignatureV4({\n credentials: normalizedCreds,\n region: input.region,\n service: input.signingName,\n sha256,\n uriEscapePath: signingEscapePath,\n }));\n }\n return {\n ...input,\n systemClockOffset,\n signingEscapePath,\n credentials: normalizedCreds,\n signer,\n };\n};\nconst normalizeCredentialProvider = (credentials) => {\n if (typeof credentials === \"function\") {\n return memoize(credentials, (credentials) => credentials.expiration !== undefined &&\n credentials.expiration.getTime() - Date.now() < CREDENTIAL_EXPIRE_WINDOW, (credentials) => credentials.expiration !== undefined);\n }\n return normalizeProvider(credentials);\n};\n","export const getSkewCorrectedDate = (systemClockOffset) => new Date(Date.now() + systemClockOffset);\n","import { isClockSkewed } from \"./isClockSkewed\";\nexport const getUpdatedSystemClockOffset = (clockTime, currentSystemClockOffset) => {\n const clockTimeInMs = Date.parse(clockTime);\n if (isClockSkewed(clockTimeInMs, currentSystemClockOffset)) {\n return clockTimeInMs - Date.now();\n }\n return currentSystemClockOffset;\n};\n","import { getSkewCorrectedDate } from \"./getSkewCorrectedDate\";\nexport const isClockSkewed = (clockTime, systemClockOffset) => Math.abs(getSkewCorrectedDate(systemClockOffset).getTime() - clockTime) >= 300000;\n","import { HttpRequest, HttpResponse } from \"@smithy/protocol-http\";\nimport { getSkewCorrectedDate } from \"./utils/getSkewCorrectedDate\";\nimport { getUpdatedSystemClockOffset } from \"./utils/getUpdatedSystemClockOffset\";\nexport const awsAuthMiddleware = (options) => (next, context) => async function (args) {\n if (!HttpRequest.isInstance(args.request))\n return next(args);\n const authScheme = context.endpointV2?.properties?.authSchemes?.[0];\n const multiRegionOverride = authScheme?.name === \"sigv4a\" ? authScheme?.signingRegionSet?.join(\",\") : undefined;\n const signer = await options.signer(authScheme);\n const output = await next({\n ...args,\n request: await signer.sign(args.request, {\n signingDate: getSkewCorrectedDate(options.systemClockOffset),\n signingRegion: multiRegionOverride || context[\"signing_region\"],\n signingService: context[\"signing_service\"],\n }),\n }).catch((error) => {\n const serverTime = error.ServerTime ?? getDateHeader(error.$response);\n if (serverTime) {\n options.systemClockOffset = getUpdatedSystemClockOffset(serverTime, options.systemClockOffset);\n }\n throw error;\n });\n const dateHeader = getDateHeader(output.response);\n if (dateHeader) {\n options.systemClockOffset = getUpdatedSystemClockOffset(dateHeader, options.systemClockOffset);\n }\n return output;\n};\nconst getDateHeader = (response) => HttpResponse.isInstance(response) ? response.headers?.date ?? response.headers?.Date : undefined;\nexport const awsAuthMiddlewareOptions = {\n name: \"awsAuthMiddleware\",\n tags: [\"SIGNATURE\", \"AWSAUTH\"],\n relation: \"after\",\n toMiddleware: \"retryMiddleware\",\n override: true,\n};\nexport const getAwsAuthPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(awsAuthMiddleware(options), awsAuthMiddlewareOptions);\n },\n});\nexport const getSigV4AuthPlugin = getAwsAuthPlugin;\n","import partitionsInfo from \"./partitions.json\";\nlet selectedPartitionsInfo = partitionsInfo;\nlet selectedUserAgentPrefix = \"\";\nexport const partition = (value) => {\n const { partitions } = selectedPartitionsInfo;\n for (const partition of partitions) {\n const { regions, outputs } = partition;\n for (const [region, regionData] of Object.entries(regions)) {\n if (region === value) {\n return {\n ...outputs,\n ...regionData,\n };\n }\n }\n }\n for (const partition of partitions) {\n const { regionRegex, outputs } = partition;\n if (new RegExp(regionRegex).test(value)) {\n return {\n ...outputs,\n };\n }\n }\n const DEFAULT_PARTITION = partitions.find((partition) => partition.id === \"aws\");\n if (!DEFAULT_PARTITION) {\n throw new Error(\"Provided region was not found in the partition array or regex,\" +\n \" and default partition with id 'aws' doesn't exist.\");\n }\n return {\n ...DEFAULT_PARTITION.outputs,\n };\n};\nexport const setPartitionInfo = (partitionsInfo, userAgentPrefix = \"\") => {\n selectedPartitionsInfo = partitionsInfo;\n selectedUserAgentPrefix = userAgentPrefix;\n};\nexport const useDefaultPartitionInfo = () => {\n setPartitionInfo(partitionsInfo, \"\");\n};\nexport const getUserAgentPrefix = () => selectedUserAgentPrefix;\n","export const debugId = \"endpoints\";\n","export function toDebugString(input) {\n if (typeof input !== \"object\" || input == null) {\n return input;\n }\n if (\"ref\" in input) {\n return `$${toDebugString(input.ref)}`;\n }\n if (\"fn\" in input) {\n return `${input.fn}(${(input.argv || []).map(toDebugString).join(\", \")})`;\n }\n return JSON.stringify(input, null, 2);\n}\n","export class EndpointError extends Error {\n constructor(message) {\n super(message);\n this.name = \"EndpointError\";\n }\n}\n","const IP_V4_REGEX = new RegExp(`^(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)(?:\\\\.(?:25[0-5]|2[0-4]\\\\d|1\\\\d\\\\d|[1-9]\\\\d|\\\\d)){3}$`);\nexport const isIpAddress = (value) => IP_V4_REGEX.test(value) || (value.startsWith(\"[\") && value.endsWith(\"]\"));\n","const VALID_HOST_LABEL_REGEX = new RegExp(`^(?!.*-$)(?!-)[a-zA-Z0-9-]{1,63}$`);\nexport const isValidHostLabel = (value, allowSubDomains = false) => {\n if (!allowSubDomains) {\n return VALID_HOST_LABEL_REGEX.test(value);\n }\n const labels = value.split(\".\");\n for (const label of labels) {\n if (!isValidHostLabel(label)) {\n return false;\n }\n }\n return true;\n};\n","import { isIpAddress } from \"../isIpAddress\";\nimport { isValidHostLabel } from \"../isValidHostLabel\";\nexport const isVirtualHostableS3Bucket = (value, allowSubDomains = false) => {\n if (allowSubDomains) {\n for (const label of value.split(\".\")) {\n if (!isVirtualHostableS3Bucket(label)) {\n return false;\n }\n }\n return true;\n }\n if (!isValidHostLabel(value)) {\n return false;\n }\n if (value.length < 3 || value.length > 63) {\n return false;\n }\n if (value !== value.toLowerCase()) {\n return false;\n }\n if (isIpAddress(value)) {\n return false;\n }\n return true;\n};\n","export const parseArn = (value) => {\n const segments = value.split(\":\");\n if (segments.length < 6)\n return null;\n const [arn, partition, service, region, accountId, ...resourceId] = segments;\n if (arn !== \"arn\" || partition === \"\" || service === \"\" || resourceId[0] === \"\")\n return null;\n return {\n partition,\n service,\n region,\n accountId,\n resourceId: resourceId[0].includes(\"/\") ? resourceId[0].split(\"/\") : resourceId,\n };\n};\n","export const booleanEquals = (value1, value2) => value1 === value2;\n","import { EndpointError } from \"../types\";\nimport { getAttrPathList } from \"./getAttrPathList\";\nexport const getAttr = (value, path) => getAttrPathList(path).reduce((acc, index) => {\n if (typeof acc !== \"object\") {\n throw new EndpointError(`Index '${index}' in '${path}' not found in '${JSON.stringify(value)}'`);\n }\n else if (Array.isArray(acc)) {\n return acc[parseInt(index)];\n }\n return acc[index];\n}, value);\n","import { EndpointError } from \"../types\";\nexport const getAttrPathList = (path) => {\n const parts = path.split(\".\");\n const pathList = [];\n for (const part of parts) {\n const squareBracketIndex = part.indexOf(\"[\");\n if (squareBracketIndex !== -1) {\n if (part.indexOf(\"]\") !== part.length - 1) {\n throw new EndpointError(`Path: '${path}' does not end with ']'`);\n }\n const arrayIndex = part.slice(squareBracketIndex + 1, -1);\n if (Number.isNaN(parseInt(arrayIndex))) {\n throw new EndpointError(`Invalid array index: '${arrayIndex}' in path: '${path}'`);\n }\n if (squareBracketIndex !== 0) {\n pathList.push(part.slice(0, squareBracketIndex));\n }\n pathList.push(arrayIndex);\n }\n else {\n pathList.push(part);\n }\n }\n return pathList;\n};\n","export const isSet = (value) => value != null;\n","export const not = (value) => !value;\n","export var HostAddressType;\n(function (HostAddressType) {\n HostAddressType[\"AAAA\"] = \"AAAA\";\n HostAddressType[\"A\"] = \"A\";\n})(HostAddressType || (HostAddressType = {}));\n","import { EndpointURLScheme } from \"@aws-sdk/types\";\nimport { isIpAddress } from \"./isIpAddress\";\nconst DEFAULT_PORTS = {\n [EndpointURLScheme.HTTP]: 80,\n [EndpointURLScheme.HTTPS]: 443,\n};\nexport const parseURL = (value) => {\n const whatwgURL = (() => {\n try {\n if (value instanceof URL) {\n return value;\n }\n if (typeof value === \"object\" && \"hostname\" in value) {\n const { hostname, port, protocol = \"\", path = \"\", query = {} } = value;\n const url = new URL(`${protocol}//${hostname}${port ? `:${port}` : \"\"}${path}`);\n url.search = Object.entries(query)\n .map(([k, v]) => `${k}=${v}`)\n .join(\"&\");\n return url;\n }\n return new URL(value);\n }\n catch (error) {\n return null;\n }\n })();\n if (!whatwgURL) {\n console.error(`Unable to parse ${JSON.stringify(value)} as a whatwg URL.`);\n return null;\n }\n const urlString = whatwgURL.href;\n const { host, hostname, pathname, protocol, search } = whatwgURL;\n if (search) {\n return null;\n }\n const scheme = protocol.slice(0, -1);\n if (!Object.values(EndpointURLScheme).includes(scheme)) {\n return null;\n }\n const isIp = isIpAddress(hostname);\n const inputContainsDefaultPort = urlString.includes(`${host}:${DEFAULT_PORTS[scheme]}`) ||\n (typeof value === \"string\" && value.includes(`${host}:${DEFAULT_PORTS[scheme]}`));\n const authority = `${host}${inputContainsDefaultPort ? `:${DEFAULT_PORTS[scheme]}` : ``}`;\n return {\n scheme,\n authority,\n path: pathname,\n normalizedPath: pathname.endsWith(\"/\") ? pathname : `${pathname}/`,\n isIp,\n };\n};\n","export const stringEquals = (value1, value2) => value1 === value2;\n","export const substring = (input, start, stop, reverse) => {\n if (start >= stop || input.length < stop) {\n return null;\n }\n if (!reverse) {\n return input.substring(start, stop);\n }\n return input.substring(input.length - stop, input.length - start);\n};\n","export const uriEncode = (value) => encodeURIComponent(value).replace(/[!*'()]/g, (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`);\n","import { getAttr } from \"../lib\";\nexport const evaluateTemplate = (template, options) => {\n const evaluatedTemplateArr = [];\n const templateContext = {\n ...options.endpointParams,\n ...options.referenceRecord,\n };\n let currentIndex = 0;\n while (currentIndex < template.length) {\n const openingBraceIndex = template.indexOf(\"{\", currentIndex);\n if (openingBraceIndex === -1) {\n evaluatedTemplateArr.push(template.slice(currentIndex));\n break;\n }\n evaluatedTemplateArr.push(template.slice(currentIndex, openingBraceIndex));\n const closingBraceIndex = template.indexOf(\"}\", openingBraceIndex);\n if (closingBraceIndex === -1) {\n evaluatedTemplateArr.push(template.slice(openingBraceIndex));\n break;\n }\n if (template[openingBraceIndex + 1] === \"{\" && template[closingBraceIndex + 1] === \"}\") {\n evaluatedTemplateArr.push(template.slice(openingBraceIndex + 1, closingBraceIndex));\n currentIndex = closingBraceIndex + 2;\n }\n const parameterName = template.substring(openingBraceIndex + 1, closingBraceIndex);\n if (parameterName.includes(\"#\")) {\n const [refName, attrName] = parameterName.split(\"#\");\n evaluatedTemplateArr.push(getAttr(templateContext[refName], attrName));\n }\n else {\n evaluatedTemplateArr.push(templateContext[parameterName]);\n }\n currentIndex = closingBraceIndex + 1;\n }\n return evaluatedTemplateArr.join(\"\");\n};\n","import { EndpointError } from \"../types\";\nimport { callFunction } from \"./callFunction\";\nimport { evaluateTemplate } from \"./evaluateTemplate\";\nimport { getReferenceValue } from \"./getReferenceValue\";\nexport const evaluateExpression = (obj, keyName, options) => {\n if (typeof obj === \"string\") {\n return evaluateTemplate(obj, options);\n }\n else if (obj[\"fn\"]) {\n return callFunction(obj, options);\n }\n else if (obj[\"ref\"]) {\n return getReferenceValue(obj, options);\n }\n throw new EndpointError(`'${keyName}': ${String(obj)} is not a string, function or reference.`);\n};\n","export const getReferenceValue = ({ ref }, options) => {\n const referenceRecord = {\n ...options.endpointParams,\n ...options.referenceRecord,\n };\n return referenceRecord[ref];\n};\n","import * as lib from \"../lib\";\nimport { evaluateExpression } from \"./evaluateExpression\";\nexport const callFunction = ({ fn, argv }, options) => {\n const evaluatedArgs = argv.map((arg) => [\"boolean\", \"number\"].includes(typeof arg) ? arg : evaluateExpression(arg, \"arg\", options));\n return fn.split(\".\").reduce((acc, key) => acc[key], lib)(...evaluatedArgs);\n};\n","import { debugId, toDebugString } from \"../debug\";\nimport { EndpointError } from \"../types\";\nimport { callFunction } from \"./callFunction\";\nexport const evaluateCondition = ({ assign, ...fnArgs }, options) => {\n if (assign && assign in options.referenceRecord) {\n throw new EndpointError(`'${assign}' is already defined in Reference Record.`);\n }\n const value = callFunction(fnArgs, options);\n options.logger?.debug?.(debugId, `evaluateCondition: ${toDebugString(fnArgs)} = ${toDebugString(value)}`);\n return {\n result: value === \"\" ? true : !!value,\n ...(assign != null && { toAssign: { name: assign, value } }),\n };\n};\n","import { debugId, toDebugString } from \"../debug\";\nimport { evaluateCondition } from \"./evaluateCondition\";\nexport const evaluateConditions = (conditions = [], options) => {\n const conditionsReferenceRecord = {};\n for (const condition of conditions) {\n const { result, toAssign } = evaluateCondition(condition, {\n ...options,\n referenceRecord: {\n ...options.referenceRecord,\n ...conditionsReferenceRecord,\n },\n });\n if (!result) {\n return { result };\n }\n if (toAssign) {\n conditionsReferenceRecord[toAssign.name] = toAssign.value;\n options.logger?.debug?.(debugId, `assign: ${toAssign.name} := ${toDebugString(toAssign.value)}`);\n }\n }\n return { result: true, referenceRecord: conditionsReferenceRecord };\n};\n","import { EndpointError } from \"../types\";\nimport { evaluateExpression } from \"./evaluateExpression\";\nexport const getEndpointHeaders = (headers, options) => Object.entries(headers).reduce((acc, [headerKey, headerVal]) => ({\n ...acc,\n [headerKey]: headerVal.map((headerValEntry) => {\n const processedExpr = evaluateExpression(headerValEntry, \"Header value entry\", options);\n if (typeof processedExpr !== \"string\") {\n throw new EndpointError(`Header '${headerKey}' value '${processedExpr}' is not a string`);\n }\n return processedExpr;\n }),\n}), {});\n","import { EndpointError } from \"../types\";\nimport { evaluateTemplate } from \"./evaluateTemplate\";\nimport { getEndpointProperties } from \"./getEndpointProperties\";\nexport const getEndpointProperty = (property, options) => {\n if (Array.isArray(property)) {\n return property.map((propertyEntry) => getEndpointProperty(propertyEntry, options));\n }\n switch (typeof property) {\n case \"string\":\n return evaluateTemplate(property, options);\n case \"object\":\n if (property === null) {\n throw new EndpointError(`Unexpected endpoint property: ${property}`);\n }\n return getEndpointProperties(property, options);\n case \"boolean\":\n return property;\n default:\n throw new EndpointError(`Unexpected endpoint property type: ${typeof property}`);\n }\n};\n","import { getEndpointProperty } from \"./getEndpointProperty\";\nexport const getEndpointProperties = (properties, options) => Object.entries(properties).reduce((acc, [propertyKey, propertyVal]) => ({\n ...acc,\n [propertyKey]: getEndpointProperty(propertyVal, options),\n}), {});\n","import { EndpointError } from \"../types\";\nimport { evaluateExpression } from \"./evaluateExpression\";\nexport const getEndpointUrl = (endpointUrl, options) => {\n const expression = evaluateExpression(endpointUrl, \"Endpoint URL\", options);\n if (typeof expression === \"string\") {\n try {\n return new URL(expression);\n }\n catch (error) {\n console.error(`Failed to construct URL with ${expression}`, error);\n throw error;\n }\n }\n throw new EndpointError(`Endpoint URL must be a string, got ${typeof expression}`);\n};\n","import { debugId, toDebugString } from \"../debug\";\nimport { evaluateConditions } from \"./evaluateConditions\";\nimport { getEndpointHeaders } from \"./getEndpointHeaders\";\nimport { getEndpointProperties } from \"./getEndpointProperties\";\nimport { getEndpointUrl } from \"./getEndpointUrl\";\nexport const evaluateEndpointRule = (endpointRule, options) => {\n const { conditions, endpoint } = endpointRule;\n const { result, referenceRecord } = evaluateConditions(conditions, options);\n if (!result) {\n return;\n }\n const endpointRuleOptions = {\n ...options,\n referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n };\n const { url, properties, headers } = endpoint;\n options.logger?.debug?.(debugId, `Resolving endpoint from template: ${toDebugString(endpoint)}`);\n return {\n ...(headers != undefined && {\n headers: getEndpointHeaders(headers, endpointRuleOptions),\n }),\n ...(properties != undefined && {\n properties: getEndpointProperties(properties, endpointRuleOptions),\n }),\n url: getEndpointUrl(url, endpointRuleOptions),\n };\n};\n","import { EndpointError } from \"../types\";\nimport { evaluateConditions } from \"./evaluateConditions\";\nimport { evaluateExpression } from \"./evaluateExpression\";\nexport const evaluateErrorRule = (errorRule, options) => {\n const { conditions, error } = errorRule;\n const { result, referenceRecord } = evaluateConditions(conditions, options);\n if (!result) {\n return;\n }\n throw new EndpointError(evaluateExpression(error, \"Error\", {\n ...options,\n referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n }));\n};\n","import { evaluateConditions } from \"./evaluateConditions\";\nimport { evaluateRules } from \"./evaluateRules\";\nexport const evaluateTreeRule = (treeRule, options) => {\n const { conditions, rules } = treeRule;\n const { result, referenceRecord } = evaluateConditions(conditions, options);\n if (!result) {\n return;\n }\n return evaluateRules(rules, {\n ...options,\n referenceRecord: { ...options.referenceRecord, ...referenceRecord },\n });\n};\n","import { EndpointError } from \"../types\";\nimport { evaluateEndpointRule } from \"./evaluateEndpointRule\";\nimport { evaluateErrorRule } from \"./evaluateErrorRule\";\nimport { evaluateTreeRule } from \"./evaluateTreeRule\";\nexport const evaluateRules = (rules, options) => {\n for (const rule of rules) {\n if (rule.type === \"endpoint\") {\n const endpointOrUndefined = evaluateEndpointRule(rule, options);\n if (endpointOrUndefined) {\n return endpointOrUndefined;\n }\n }\n else if (rule.type === \"error\") {\n evaluateErrorRule(rule, options);\n }\n else if (rule.type === \"tree\") {\n const endpointOrUndefined = evaluateTreeRule(rule, options);\n if (endpointOrUndefined) {\n return endpointOrUndefined;\n }\n }\n else {\n throw new EndpointError(`Unknown endpoint rule: ${rule}`);\n }\n }\n throw new EndpointError(`Rules evaluation failed`);\n};\n","export const USER_AGENT = \"user-agent\";\nexport const X_AMZ_USER_AGENT = \"x-amz-user-agent\";\nexport const SPACE = \" \";\nexport const UA_NAME_SEPARATOR = \"/\";\nexport const UA_NAME_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w]/g;\nexport const UA_VALUE_ESCAPE_REGEX = /[^\\!\\$\\%\\&\\'\\*\\+\\-\\.\\^\\_\\`\\|\\~\\d\\w\\#]/g;\nexport const UA_ESCAPE_CHAR = \"-\";\n","import { getUserAgentPrefix } from \"@aws-sdk/util-endpoints\";\nimport { HttpRequest } from \"@smithy/protocol-http\";\nimport { SPACE, UA_ESCAPE_CHAR, UA_NAME_ESCAPE_REGEX, UA_NAME_SEPARATOR, UA_VALUE_ESCAPE_REGEX, USER_AGENT, X_AMZ_USER_AGENT, } from \"./constants\";\nexport const userAgentMiddleware = (options) => (next, context) => async (args) => {\n const { request } = args;\n if (!HttpRequest.isInstance(request))\n return next(args);\n const { headers } = request;\n const userAgent = context?.userAgent?.map(escapeUserAgent) || [];\n const defaultUserAgent = (await options.defaultUserAgentProvider()).map(escapeUserAgent);\n const customUserAgent = options?.customUserAgent?.map(escapeUserAgent) || [];\n const prefix = getUserAgentPrefix();\n const sdkUserAgentValue = (prefix ? [prefix] : [])\n .concat([...defaultUserAgent, ...userAgent, ...customUserAgent])\n .join(SPACE);\n const normalUAValue = [\n ...defaultUserAgent.filter((section) => section.startsWith(\"aws-sdk-\")),\n ...customUserAgent,\n ].join(SPACE);\n if (options.runtime !== \"browser\") {\n if (normalUAValue) {\n headers[X_AMZ_USER_AGENT] = headers[X_AMZ_USER_AGENT]\n ? `${headers[USER_AGENT]} ${normalUAValue}`\n : normalUAValue;\n }\n headers[USER_AGENT] = sdkUserAgentValue;\n }\n else {\n headers[X_AMZ_USER_AGENT] = sdkUserAgentValue;\n }\n return next({\n ...args,\n request,\n });\n};\nconst escapeUserAgent = (userAgentPair) => {\n const name = userAgentPair[0]\n .split(UA_NAME_SEPARATOR)\n .map((part) => part.replace(UA_NAME_ESCAPE_REGEX, UA_ESCAPE_CHAR))\n .join(UA_NAME_SEPARATOR);\n const version = userAgentPair[1]?.replace(UA_VALUE_ESCAPE_REGEX, UA_ESCAPE_CHAR);\n const prefixSeparatorIndex = name.indexOf(UA_NAME_SEPARATOR);\n const prefix = name.substring(0, prefixSeparatorIndex);\n let uaName = name.substring(prefixSeparatorIndex + 1);\n if (prefix === \"api\") {\n uaName = uaName.toLowerCase();\n }\n return [prefix, uaName, version]\n .filter((item) => item && item.length > 0)\n .reduce((acc, item, index) => {\n switch (index) {\n case 0:\n return item;\n case 1:\n return `${acc}/${item}`;\n default:\n return `${acc}#${item}`;\n }\n }, \"\");\n};\nexport const getUserAgentMiddlewareOptions = {\n name: \"getUserAgentMiddleware\",\n step: \"build\",\n priority: \"low\",\n tags: [\"SET_USER_AGENT\", \"USER_AGENT\"],\n override: true,\n};\nexport const getUserAgentPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.add(userAgentMiddleware(config), getUserAgentMiddlewareOptions);\n },\n});\n","export var SelectorType;\n(function (SelectorType) {\n SelectorType[\"ENV\"] = \"env\";\n SelectorType[\"CONFIG\"] = \"shared config entry\";\n})(SelectorType || (SelectorType = {}));\nexport const booleanSelector = (obj, key, type) => {\n if (!(key in obj))\n return undefined;\n if (obj[key] === \"true\")\n return true;\n if (obj[key] === \"false\")\n return false;\n throw new Error(`Cannot load ${type} \"${key}\". Expected \"true\" or \"false\", got ${obj[key]}.`);\n};\n","export const isFipsRegion = (region) => typeof region === \"string\" && (region.startsWith(\"fips-\") || region.endsWith(\"-fips\"));\n","import { isFipsRegion } from \"./isFipsRegion\";\nexport const getRealRegion = (region) => isFipsRegion(region)\n ? [\"fips-aws-global\", \"aws-fips\"].includes(region)\n ? \"us-east-1\"\n : region.replace(/fips-(dkr-|prod-)?|-fips/, \"\")\n : region;\n","import { HttpRequest } from \"@smithy/protocol-http\";\nconst CONTENT_LENGTH_HEADER = \"content-length\";\nexport function contentLengthMiddleware(bodyLengthChecker) {\n return (next) => async (args) => {\n const request = args.request;\n if (HttpRequest.isInstance(request)) {\n const { body, headers } = request;\n if (body &&\n Object.keys(headers)\n .map((str) => str.toLowerCase())\n .indexOf(CONTENT_LENGTH_HEADER) === -1) {\n try {\n const length = bodyLengthChecker(body);\n request.headers = {\n ...request.headers,\n [CONTENT_LENGTH_HEADER]: String(length),\n };\n }\n catch (error) {\n }\n }\n }\n return next({\n ...args,\n request,\n });\n };\n}\nexport const contentLengthMiddlewareOptions = {\n step: \"build\",\n tags: [\"SET_CONTENT_LENGTH\", \"CONTENT_LENGTH\"],\n name: \"contentLengthMiddleware\",\n override: true,\n};\nexport const getContentLengthPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(contentLengthMiddleware(options.bodyLengthChecker), contentLengthMiddlewareOptions);\n },\n});\n","export var RETRY_MODES;\n(function (RETRY_MODES) {\n RETRY_MODES[\"STANDARD\"] = \"standard\";\n RETRY_MODES[\"ADAPTIVE\"] = \"adaptive\";\n})(RETRY_MODES || (RETRY_MODES = {}));\nexport const DEFAULT_MAX_ATTEMPTS = 3;\nexport const DEFAULT_RETRY_MODE = RETRY_MODES.STANDARD;\n","export const CLOCK_SKEW_ERROR_CODES = [\n \"AuthFailure\",\n \"InvalidSignatureException\",\n \"RequestExpired\",\n \"RequestInTheFuture\",\n \"RequestTimeTooSkewed\",\n \"SignatureDoesNotMatch\",\n];\nexport const THROTTLING_ERROR_CODES = [\n \"BandwidthLimitExceeded\",\n \"EC2ThrottledException\",\n \"LimitExceededException\",\n \"PriorRequestNotComplete\",\n \"ProvisionedThroughputExceededException\",\n \"RequestLimitExceeded\",\n \"RequestThrottled\",\n \"RequestThrottledException\",\n \"SlowDown\",\n \"ThrottledException\",\n \"Throttling\",\n \"ThrottlingException\",\n \"TooManyRequestsException\",\n \"TransactionInProgressException\",\n];\nexport const TRANSIENT_ERROR_CODES = [\"TimeoutError\", \"RequestTimeout\", \"RequestTimeoutException\"];\nexport const TRANSIENT_ERROR_STATUS_CODES = [500, 502, 503, 504];\nexport const NODEJS_TIMEOUT_ERROR_CODES = [\"ECONNRESET\", \"ECONNREFUSED\", \"EPIPE\", \"ETIMEDOUT\"];\n","import { CLOCK_SKEW_ERROR_CODES, NODEJS_TIMEOUT_ERROR_CODES, THROTTLING_ERROR_CODES, TRANSIENT_ERROR_CODES, TRANSIENT_ERROR_STATUS_CODES, } from \"./constants\";\nexport const isRetryableByTrait = (error) => error.$retryable !== undefined;\nexport const isClockSkewError = (error) => CLOCK_SKEW_ERROR_CODES.includes(error.name);\nexport const isThrottlingError = (error) => error.$metadata?.httpStatusCode === 429 ||\n THROTTLING_ERROR_CODES.includes(error.name) ||\n error.$retryable?.throttling == true;\nexport const isTransientError = (error) => TRANSIENT_ERROR_CODES.includes(error.name) ||\n NODEJS_TIMEOUT_ERROR_CODES.includes(error?.code || \"\") ||\n TRANSIENT_ERROR_STATUS_CODES.includes(error.$metadata?.httpStatusCode || 0);\nexport const isServerError = (error) => {\n if (error.$metadata?.httpStatusCode !== undefined) {\n const statusCode = error.$metadata.httpStatusCode;\n if (500 <= statusCode && statusCode <= 599 && !isTransientError(error)) {\n return true;\n }\n return false;\n }\n return false;\n};\n","import { isThrottlingError } from \"@smithy/service-error-classification\";\nexport class DefaultRateLimiter {\n constructor(options) {\n this.currentCapacity = 0;\n this.enabled = false;\n this.lastMaxRate = 0;\n this.measuredTxRate = 0;\n this.requestCount = 0;\n this.lastTimestamp = 0;\n this.timeWindow = 0;\n this.beta = options?.beta ?? 0.7;\n this.minCapacity = options?.minCapacity ?? 1;\n this.minFillRate = options?.minFillRate ?? 0.5;\n this.scaleConstant = options?.scaleConstant ?? 0.4;\n this.smooth = options?.smooth ?? 0.8;\n const currentTimeInSeconds = this.getCurrentTimeInSeconds();\n this.lastThrottleTime = currentTimeInSeconds;\n this.lastTxRateBucket = Math.floor(this.getCurrentTimeInSeconds());\n this.fillRate = this.minFillRate;\n this.maxCapacity = this.minCapacity;\n }\n getCurrentTimeInSeconds() {\n return Date.now() / 1000;\n }\n async getSendToken() {\n return this.acquireTokenBucket(1);\n }\n async acquireTokenBucket(amount) {\n if (!this.enabled) {\n return;\n }\n this.refillTokenBucket();\n if (amount > this.currentCapacity) {\n const delay = ((amount - this.currentCapacity) / this.fillRate) * 1000;\n await new Promise((resolve) => setTimeout(resolve, delay));\n }\n this.currentCapacity = this.currentCapacity - amount;\n }\n refillTokenBucket() {\n const timestamp = this.getCurrentTimeInSeconds();\n if (!this.lastTimestamp) {\n this.lastTimestamp = timestamp;\n return;\n }\n const fillAmount = (timestamp - this.lastTimestamp) * this.fillRate;\n this.currentCapacity = Math.min(this.maxCapacity, this.currentCapacity + fillAmount);\n this.lastTimestamp = timestamp;\n }\n updateClientSendingRate(response) {\n let calculatedRate;\n this.updateMeasuredRate();\n if (isThrottlingError(response)) {\n const rateToUse = !this.enabled ? this.measuredTxRate : Math.min(this.measuredTxRate, this.fillRate);\n this.lastMaxRate = rateToUse;\n this.calculateTimeWindow();\n this.lastThrottleTime = this.getCurrentTimeInSeconds();\n calculatedRate = this.cubicThrottle(rateToUse);\n this.enableTokenBucket();\n }\n else {\n this.calculateTimeWindow();\n calculatedRate = this.cubicSuccess(this.getCurrentTimeInSeconds());\n }\n const newRate = Math.min(calculatedRate, 2 * this.measuredTxRate);\n this.updateTokenBucketRate(newRate);\n }\n calculateTimeWindow() {\n this.timeWindow = this.getPrecise(Math.pow((this.lastMaxRate * (1 - this.beta)) / this.scaleConstant, 1 / 3));\n }\n cubicThrottle(rateToUse) {\n return this.getPrecise(rateToUse * this.beta);\n }\n cubicSuccess(timestamp) {\n return this.getPrecise(this.scaleConstant * Math.pow(timestamp - this.lastThrottleTime - this.timeWindow, 3) + this.lastMaxRate);\n }\n enableTokenBucket() {\n this.enabled = true;\n }\n updateTokenBucketRate(newRate) {\n this.refillTokenBucket();\n this.fillRate = Math.max(newRate, this.minFillRate);\n this.maxCapacity = Math.max(newRate, this.minCapacity);\n this.currentCapacity = Math.min(this.currentCapacity, this.maxCapacity);\n }\n updateMeasuredRate() {\n const t = this.getCurrentTimeInSeconds();\n const timeBucket = Math.floor(t * 2) / 2;\n this.requestCount++;\n if (timeBucket > this.lastTxRateBucket) {\n const currentRate = this.requestCount / (timeBucket - this.lastTxRateBucket);\n this.measuredTxRate = this.getPrecise(currentRate * this.smooth + this.measuredTxRate * (1 - this.smooth));\n this.requestCount = 0;\n this.lastTxRateBucket = timeBucket;\n }\n }\n getPrecise(num) {\n return parseFloat(num.toFixed(8));\n }\n}\n","export const DEFAULT_RETRY_DELAY_BASE = 100;\nexport const MAXIMUM_RETRY_DELAY = 20 * 1000;\nexport const THROTTLING_RETRY_DELAY_BASE = 500;\nexport const INITIAL_RETRY_TOKENS = 500;\nexport const RETRY_COST = 5;\nexport const TIMEOUT_RETRY_COST = 10;\nexport const NO_RETRY_INCREMENT = 1;\nexport const INVOCATION_ID_HEADER = \"amz-sdk-invocation-id\";\nexport const REQUEST_HEADER = \"amz-sdk-request\";\n","import { MAXIMUM_RETRY_DELAY } from \"./constants\";\nexport const createDefaultRetryToken = ({ retryDelay, retryCount, retryCost, }) => {\n const getRetryCount = () => retryCount;\n const getRetryDelay = () => Math.min(MAXIMUM_RETRY_DELAY, retryDelay);\n const getRetryCost = () => retryCost;\n return {\n getRetryCount,\n getRetryDelay,\n getRetryCost,\n };\n};\n","import { DEFAULT_MAX_ATTEMPTS, RETRY_MODES } from \"./config\";\nimport { DEFAULT_RETRY_DELAY_BASE, INITIAL_RETRY_TOKENS, NO_RETRY_INCREMENT, RETRY_COST, THROTTLING_RETRY_DELAY_BASE, TIMEOUT_RETRY_COST, } from \"./constants\";\nimport { getDefaultRetryBackoffStrategy } from \"./defaultRetryBackoffStrategy\";\nimport { createDefaultRetryToken } from \"./defaultRetryToken\";\nexport class StandardRetryStrategy {\n constructor(maxAttempts) {\n this.maxAttempts = maxAttempts;\n this.mode = RETRY_MODES.STANDARD;\n this.capacity = INITIAL_RETRY_TOKENS;\n this.retryBackoffStrategy = getDefaultRetryBackoffStrategy();\n this.maxAttemptsProvider = typeof maxAttempts === \"function\" ? maxAttempts : async () => maxAttempts;\n }\n async acquireInitialRetryToken(retryTokenScope) {\n return createDefaultRetryToken({\n retryDelay: DEFAULT_RETRY_DELAY_BASE,\n retryCount: 0,\n });\n }\n async refreshRetryTokenForRetry(token, errorInfo) {\n const maxAttempts = await this.getMaxAttempts();\n if (this.shouldRetry(token, errorInfo, maxAttempts)) {\n const errorType = errorInfo.errorType;\n this.retryBackoffStrategy.setDelayBase(errorType === \"THROTTLING\" ? THROTTLING_RETRY_DELAY_BASE : DEFAULT_RETRY_DELAY_BASE);\n const delayFromErrorType = this.retryBackoffStrategy.computeNextBackoffDelay(token.getRetryCount());\n const retryDelay = errorInfo.retryAfterHint\n ? Math.max(errorInfo.retryAfterHint.getTime() - Date.now() || 0, delayFromErrorType)\n : delayFromErrorType;\n const capacityCost = this.getCapacityCost(errorType);\n this.capacity -= capacityCost;\n return createDefaultRetryToken({\n retryDelay,\n retryCount: token.getRetryCount() + 1,\n retryCost: capacityCost,\n });\n }\n throw new Error(\"No retry token available\");\n }\n recordSuccess(token) {\n this.capacity = Math.max(INITIAL_RETRY_TOKENS, this.capacity + (token.getRetryCost() ?? NO_RETRY_INCREMENT));\n }\n getCapacity() {\n return this.capacity;\n }\n async getMaxAttempts() {\n try {\n return await this.maxAttemptsProvider();\n }\n catch (error) {\n console.warn(`Max attempts provider could not resolve. Using default of ${DEFAULT_MAX_ATTEMPTS}`);\n return DEFAULT_MAX_ATTEMPTS;\n }\n }\n shouldRetry(tokenToRenew, errorInfo, maxAttempts) {\n const attempts = tokenToRenew.getRetryCount() + 1;\n return (attempts < maxAttempts &&\n this.capacity >= this.getCapacityCost(errorInfo.errorType) &&\n this.isRetryableError(errorInfo.errorType));\n }\n getCapacityCost(errorType) {\n return errorType === \"TRANSIENT\" ? TIMEOUT_RETRY_COST : RETRY_COST;\n }\n isRetryableError(errorType) {\n return errorType === \"THROTTLING\" || errorType === \"TRANSIENT\";\n }\n}\n","import { DEFAULT_RETRY_DELAY_BASE, MAXIMUM_RETRY_DELAY } from \"./constants\";\nexport const getDefaultRetryBackoffStrategy = () => {\n let delayBase = DEFAULT_RETRY_DELAY_BASE;\n const computeNextBackoffDelay = (attempts) => {\n return Math.floor(Math.min(MAXIMUM_RETRY_DELAY, Math.random() * 2 ** attempts * delayBase));\n };\n const setDelayBase = (delay) => {\n delayBase = delay;\n };\n return {\n computeNextBackoffDelay,\n setDelayBase,\n };\n};\n","import { RETRY_MODES } from \"./config\";\nimport { DefaultRateLimiter } from \"./DefaultRateLimiter\";\nimport { StandardRetryStrategy } from \"./StandardRetryStrategy\";\nexport class AdaptiveRetryStrategy {\n constructor(maxAttemptsProvider, options) {\n this.maxAttemptsProvider = maxAttemptsProvider;\n this.mode = RETRY_MODES.ADAPTIVE;\n const { rateLimiter } = options ?? {};\n this.rateLimiter = rateLimiter ?? new DefaultRateLimiter();\n this.standardRetryStrategy = new StandardRetryStrategy(maxAttemptsProvider);\n }\n async acquireInitialRetryToken(retryTokenScope) {\n await this.rateLimiter.getSendToken();\n return this.standardRetryStrategy.acquireInitialRetryToken(retryTokenScope);\n }\n async refreshRetryTokenForRetry(tokenToRenew, errorInfo) {\n this.rateLimiter.updateClientSendingRate(errorInfo);\n return this.standardRetryStrategy.refreshRetryTokenForRetry(tokenToRenew, errorInfo);\n }\n recordSuccess(token) {\n this.rateLimiter.updateClientSendingRate({});\n this.standardRetryStrategy.recordSuccess(token);\n }\n}\n","// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\nvar getRandomValues;\nvar rnds8 = new Uint8Array(16);\nexport default function rng() {\n // lazy load so that environments that need to polyfill have a chance to do so\n if (!getRandomValues) {\n // getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n // find the complete implementation of crypto (msCrypto) on IE11.\n getRandomValues = typeof crypto !== 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto !== 'undefined' && typeof msCrypto.getRandomValues === 'function' && msCrypto.getRandomValues.bind(msCrypto);\n\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n }\n\n return getRandomValues(rnds8);\n}","export default /^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;","import validate from './validate.js';\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\n\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex.push((i + 0x100).toString(16).substr(1));\n}\n\nfunction stringify(arr) {\n var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n // Note: Be careful editing this code! It's been tuned for performance\n // and works in ways you may not expect. See https://github.com/uuidjs/uuid/pull/434\n var uuid = (byteToHex[arr[offset + 0]] + byteToHex[arr[offset + 1]] + byteToHex[arr[offset + 2]] + byteToHex[arr[offset + 3]] + '-' + byteToHex[arr[offset + 4]] + byteToHex[arr[offset + 5]] + '-' + byteToHex[arr[offset + 6]] + byteToHex[arr[offset + 7]] + '-' + byteToHex[arr[offset + 8]] + byteToHex[arr[offset + 9]] + '-' + byteToHex[arr[offset + 10]] + byteToHex[arr[offset + 11]] + byteToHex[arr[offset + 12]] + byteToHex[arr[offset + 13]] + byteToHex[arr[offset + 14]] + byteToHex[arr[offset + 15]]).toLowerCase(); // Consistency check for valid UUID. If this throws, it's likely due to one\n // of the following:\n // - One or more input array values don't map to a hex octet (leading to\n // \"undefined\" in the uuid)\n // - Invalid input values for the RFC `version` or `variant` fields\n\n if (!validate(uuid)) {\n throw TypeError('Stringified UUID is invalid');\n }\n\n return uuid;\n}\n\nexport default stringify;","import REGEX from './regex.js';\n\nfunction validate(uuid) {\n return typeof uuid === 'string' && REGEX.test(uuid);\n}\n\nexport default validate;","import rng from './rng.js';\nimport stringify from './stringify.js';\n\nfunction v4(options, buf, offset) {\n options = options || {};\n var rnds = options.random || (options.rng || rng)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n offset = offset || 0;\n\n for (var i = 0; i < 16; ++i) {\n buf[offset + i] = rnds[i];\n }\n\n return buf;\n }\n\n return stringify(rnds);\n}\n\nexport default v4;","export const asSdkError = (error) => {\n if (error instanceof Error)\n return error;\n if (error instanceof Object)\n return Object.assign(new Error(), error);\n if (typeof error === \"string\")\n return new Error(error);\n return new Error(`AWS SDK error wrapper for ${error}`);\n};\n","import { HttpRequest, HttpResponse } from \"@smithy/protocol-http\";\nimport { isServerError, isThrottlingError, isTransientError } from \"@smithy/service-error-classification\";\nimport { INVOCATION_ID_HEADER, REQUEST_HEADER } from \"@smithy/util-retry\";\nimport { v4 } from \"uuid\";\nimport { asSdkError } from \"./util\";\nexport const retryMiddleware = (options) => (next, context) => async (args) => {\n let retryStrategy = await options.retryStrategy();\n const maxAttempts = await options.maxAttempts();\n if (isRetryStrategyV2(retryStrategy)) {\n retryStrategy = retryStrategy;\n let retryToken = await retryStrategy.acquireInitialRetryToken(context[\"partition_id\"]);\n let lastError = new Error();\n let attempts = 0;\n let totalRetryDelay = 0;\n const { request } = args;\n if (HttpRequest.isInstance(request)) {\n request.headers[INVOCATION_ID_HEADER] = v4();\n }\n while (true) {\n try {\n if (HttpRequest.isInstance(request)) {\n request.headers[REQUEST_HEADER] = `attempt=${attempts + 1}; max=${maxAttempts}`;\n }\n const { response, output } = await next(args);\n retryStrategy.recordSuccess(retryToken);\n output.$metadata.attempts = attempts + 1;\n output.$metadata.totalRetryDelay = totalRetryDelay;\n return { response, output };\n }\n catch (e) {\n const retryErrorInfo = getRetryErrorInfo(e);\n lastError = asSdkError(e);\n try {\n retryToken = await retryStrategy.refreshRetryTokenForRetry(retryToken, retryErrorInfo);\n }\n catch (refreshError) {\n if (!lastError.$metadata) {\n lastError.$metadata = {};\n }\n lastError.$metadata.attempts = attempts + 1;\n lastError.$metadata.totalRetryDelay = totalRetryDelay;\n throw lastError;\n }\n attempts = retryToken.getRetryCount();\n const delay = retryToken.getRetryDelay();\n totalRetryDelay += delay;\n await new Promise((resolve) => setTimeout(resolve, delay));\n }\n }\n }\n else {\n retryStrategy = retryStrategy;\n if (retryStrategy?.mode)\n context.userAgent = [...(context.userAgent || []), [\"cfg/retry-mode\", retryStrategy.mode]];\n return retryStrategy.retry(next, args);\n }\n};\nconst isRetryStrategyV2 = (retryStrategy) => typeof retryStrategy.acquireInitialRetryToken !== \"undefined\" &&\n typeof retryStrategy.refreshRetryTokenForRetry !== \"undefined\" &&\n typeof retryStrategy.recordSuccess !== \"undefined\";\nconst getRetryErrorInfo = (error) => {\n const errorInfo = {\n errorType: getRetryErrorType(error),\n };\n const retryAfterHint = getRetryAfterHint(error.$response);\n if (retryAfterHint) {\n errorInfo.retryAfterHint = retryAfterHint;\n }\n return errorInfo;\n};\nconst getRetryErrorType = (error) => {\n if (isThrottlingError(error))\n return \"THROTTLING\";\n if (isTransientError(error))\n return \"TRANSIENT\";\n if (isServerError(error))\n return \"SERVER_ERROR\";\n return \"CLIENT_ERROR\";\n};\nexport const retryMiddlewareOptions = {\n name: \"retryMiddleware\",\n tags: [\"RETRY\"],\n step: \"finalizeRequest\",\n priority: \"high\",\n override: true,\n};\nexport const getRetryPlugin = (options) => ({\n applyToStack: (clientStack) => {\n clientStack.add(retryMiddleware(options), retryMiddlewareOptions);\n },\n});\nexport const getRetryAfterHint = (response) => {\n if (!HttpResponse.isInstance(response))\n return;\n const retryAfterHeaderName = Object.keys(response.headers).find((key) => key.toLowerCase() === \"retry-after\");\n if (!retryAfterHeaderName)\n return;\n const retryAfter = response.headers[retryAfterHeaderName];\n const retryAfterSeconds = Number(retryAfter);\n if (!Number.isNaN(retryAfterSeconds))\n return new Date(retryAfterSeconds * 1000);\n const retryAfterDate = new Date(retryAfter);\n return retryAfterDate;\n};\n","import bowser from \"bowser\";\nexport const defaultUserAgent = ({ serviceId, clientVersion }) => async () => {\n const parsedUA = typeof window !== \"undefined\" && window?.navigator?.userAgent\n ? bowser.parse(window.navigator.userAgent)\n : undefined;\n const sections = [\n [\"aws-sdk-js\", clientVersion],\n [\"ua\", \"2.0\"],\n [`os/${parsedUA?.os?.name || \"other\"}`, parsedUA?.os?.version],\n [\"lang/js\"],\n [\"md/browser\", `${parsedUA?.browser?.name ?? \"unknown\"}_${parsedUA?.browser?.version ?? \"unknown\"}`],\n ];\n if (serviceId) {\n sections.push([`api/${serviceId}`, clientVersion]);\n }\n return sections;\n};\n","export function getUnmarshalledStream(source, options) {\n const messageUnmarshaller = getMessageUnmarshaller(options.deserializer, options.toUtf8);\n return {\n [Symbol.asyncIterator]: async function* () {\n for await (const chunk of source) {\n const message = options.eventStreamCodec.decode(chunk);\n const type = await messageUnmarshaller(message);\n if (type === undefined)\n continue;\n yield type;\n }\n },\n };\n}\nexport function getMessageUnmarshaller(deserializer, toUtf8) {\n return async function (message) {\n const { value: messageType } = message.headers[\":message-type\"];\n if (messageType === \"error\") {\n const unmodeledError = new Error(message.headers[\":error-message\"].value || \"UnknownError\");\n unmodeledError.name = message.headers[\":error-code\"].value;\n throw unmodeledError;\n }\n else if (messageType === \"exception\") {\n const code = message.headers[\":exception-type\"].value;\n const exception = { [code]: message };\n const deserializedException = await deserializer(exception);\n if (deserializedException.$unknown) {\n const error = new Error(toUtf8(message.body));\n error.name = code;\n throw error;\n }\n throw deserializedException[code];\n }\n else if (messageType === \"event\") {\n const event = {\n [message.headers[\":event-type\"].value]: message,\n };\n const deserialized = await deserializer(event);\n if (deserialized.$unknown)\n return;\n return deserialized;\n }\n else {\n throw Error(`Unrecognizable event type: ${message.headers[\":event-type\"].value}`);\n }\n };\n}\n","import { EventStreamCodec, MessageDecoderStream, MessageEncoderStream, SmithyMessageDecoderStream, SmithyMessageEncoderStream, } from \"@smithy/eventstream-codec\";\nimport { getChunkedStream } from \"./getChunkedStream\";\nimport { getMessageUnmarshaller } from \"./getUnmarshalledStream\";\nexport class EventStreamMarshaller {\n constructor({ utf8Encoder, utf8Decoder }) {\n this.eventStreamCodec = new EventStreamCodec(utf8Encoder, utf8Decoder);\n this.utfEncoder = utf8Encoder;\n }\n deserialize(body, deserializer) {\n const inputStream = getChunkedStream(body);\n return new SmithyMessageDecoderStream({\n messageStream: new MessageDecoderStream({ inputStream, decoder: this.eventStreamCodec }),\n deserializer: getMessageUnmarshaller(deserializer, this.utfEncoder),\n });\n }\n serialize(inputStream, serializer) {\n return new MessageEncoderStream({\n messageStream: new SmithyMessageEncoderStream({ inputStream, serializer }),\n encoder: this.eventStreamCodec,\n includeEndFrame: true,\n });\n }\n}\n","export function getChunkedStream(source) {\n let currentMessageTotalLength = 0;\n let currentMessagePendingLength = 0;\n let currentMessage = null;\n let messageLengthBuffer = null;\n const allocateMessage = (size) => {\n if (typeof size !== \"number\") {\n throw new Error(\"Attempted to allocate an event message where size was not a number: \" + size);\n }\n currentMessageTotalLength = size;\n currentMessagePendingLength = 4;\n currentMessage = new Uint8Array(size);\n const currentMessageView = new DataView(currentMessage.buffer);\n currentMessageView.setUint32(0, size, false);\n };\n const iterator = async function* () {\n const sourceIterator = source[Symbol.asyncIterator]();\n while (true) {\n const { value, done } = await sourceIterator.next();\n if (done) {\n if (!currentMessageTotalLength) {\n return;\n }\n else if (currentMessageTotalLength === currentMessagePendingLength) {\n yield currentMessage;\n }\n else {\n throw new Error(\"Truncated event message received.\");\n }\n return;\n }\n const chunkLength = value.length;\n let currentOffset = 0;\n while (currentOffset < chunkLength) {\n if (!currentMessage) {\n const bytesRemaining = chunkLength - currentOffset;\n if (!messageLengthBuffer) {\n messageLengthBuffer = new Uint8Array(4);\n }\n const numBytesForTotal = Math.min(4 - currentMessagePendingLength, bytesRemaining);\n messageLengthBuffer.set(value.slice(currentOffset, currentOffset + numBytesForTotal), currentMessagePendingLength);\n currentMessagePendingLength += numBytesForTotal;\n currentOffset += numBytesForTotal;\n if (currentMessagePendingLength < 4) {\n break;\n }\n allocateMessage(new DataView(messageLengthBuffer.buffer).getUint32(0, false));\n messageLengthBuffer = null;\n }\n const numBytesToWrite = Math.min(currentMessageTotalLength - currentMessagePendingLength, chunkLength - currentOffset);\n currentMessage.set(value.slice(currentOffset, currentOffset + numBytesToWrite), currentMessagePendingLength);\n currentMessagePendingLength += numBytesToWrite;\n currentOffset += numBytesToWrite;\n if (currentMessageTotalLength && currentMessageTotalLength === currentMessagePendingLength) {\n yield currentMessage;\n currentMessage = null;\n currentMessageTotalLength = 0;\n currentMessagePendingLength = 0;\n }\n }\n }\n };\n return {\n [Symbol.asyncIterator]: iterator,\n };\n}\n","import { EventStreamMarshaller as UniversalEventStreamMarshaller } from \"@smithy/eventstream-serde-universal\";\nimport { iterableToReadableStream, readableStreamtoIterable } from \"./utils\";\nexport class EventStreamMarshaller {\n constructor({ utf8Encoder, utf8Decoder }) {\n this.universalMarshaller = new UniversalEventStreamMarshaller({\n utf8Decoder,\n utf8Encoder,\n });\n }\n deserialize(body, deserializer) {\n const bodyIterable = isReadableStream(body) ? readableStreamtoIterable(body) : body;\n return this.universalMarshaller.deserialize(bodyIterable, deserializer);\n }\n serialize(input, serializer) {\n const serialziedIterable = this.universalMarshaller.serialize(input, serializer);\n return typeof ReadableStream === \"function\" ? iterableToReadableStream(serialziedIterable) : serialziedIterable;\n }\n}\nconst isReadableStream = (body) => typeof ReadableStream === \"function\" && body instanceof ReadableStream;\n","export const readableStreamtoIterable = (readableStream) => ({\n [Symbol.asyncIterator]: async function* () {\n const reader = readableStream.getReader();\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done)\n return;\n yield value;\n }\n }\n finally {\n reader.releaseLock();\n }\n },\n});\nexport const iterableToReadableStream = (asyncIterable) => {\n const iterator = asyncIterable[Symbol.asyncIterator]();\n return new ReadableStream({\n async pull(controller) {\n const { done, value } = await iterator.next();\n if (done) {\n return controller.close();\n }\n controller.enqueue(value);\n },\n });\n};\n","import { EventStreamMarshaller } from \"./EventStreamMarshaller\";\nexport const eventStreamSerdeProvider = (options) => new EventStreamMarshaller(options);\n","import { blobReader } from \"@smithy/chunked-blob-reader\";\nexport const blobHasher = async function blobHasher(hashCtor, blob) {\n const hash = new hashCtor();\n await blobReader(blob, (chunk) => {\n hash.update(chunk);\n });\n return hash.digest();\n};\n","export function blobReader(blob, onChunk, chunkSize = 1024 * 1024) {\n return new Promise((resolve, reject) => {\n const fileReader = new FileReader();\n fileReader.addEventListener(\"error\", reject);\n fileReader.addEventListener(\"abort\", reject);\n const size = blob.size;\n let totalBytesRead = 0;\n function read() {\n if (totalBytesRead >= size) {\n resolve();\n return;\n }\n fileReader.readAsArrayBuffer(blob.slice(totalBytesRead, Math.min(size, totalBytesRead + chunkSize)));\n }\n fileReader.addEventListener(\"load\", (event) => {\n const result = event.target.result;\n onChunk(new Uint8Array(result));\n totalBytesRead += result.byteLength;\n read();\n });\n read();\n });\n}\n","export const BLOCK_SIZE = 64;\nexport const DIGEST_LENGTH = 16;\nexport const INIT = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476];\n","import { fromUtf8 } from \"@smithy/util-utf8\";\nimport { BLOCK_SIZE, DIGEST_LENGTH, INIT } from \"./constants\";\nexport class Md5 {\n constructor() {\n this.reset();\n }\n update(sourceData) {\n if (isEmptyData(sourceData)) {\n return;\n }\n else if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n const data = convertToBuffer(sourceData);\n let position = 0;\n let { byteLength } = data;\n this.bytesHashed += byteLength;\n while (byteLength > 0) {\n this.buffer.setUint8(this.bufferLength++, data[position++]);\n byteLength--;\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n }\n async digest() {\n if (!this.finished) {\n const { buffer, bufferLength: undecoratedLength, bytesHashed } = this;\n const bitsHashed = bytesHashed * 8;\n buffer.setUint8(this.bufferLength++, 0b10000000);\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (let i = this.bufferLength; i < BLOCK_SIZE; i++) {\n buffer.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (let i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n buffer.setUint8(i, 0);\n }\n buffer.setUint32(BLOCK_SIZE - 8, bitsHashed >>> 0, true);\n buffer.setUint32(BLOCK_SIZE - 4, Math.floor(bitsHashed / 0x100000000), true);\n this.hashBuffer();\n this.finished = true;\n }\n const out = new DataView(new ArrayBuffer(DIGEST_LENGTH));\n for (let i = 0; i < 4; i++) {\n out.setUint32(i * 4, this.state[i], true);\n }\n return new Uint8Array(out.buffer, out.byteOffset, out.byteLength);\n }\n hashBuffer() {\n const { buffer, state } = this;\n let a = state[0], b = state[1], c = state[2], d = state[3];\n a = ff(a, b, c, d, buffer.getUint32(0, true), 7, 0xd76aa478);\n d = ff(d, a, b, c, buffer.getUint32(4, true), 12, 0xe8c7b756);\n c = ff(c, d, a, b, buffer.getUint32(8, true), 17, 0x242070db);\n b = ff(b, c, d, a, buffer.getUint32(12, true), 22, 0xc1bdceee);\n a = ff(a, b, c, d, buffer.getUint32(16, true), 7, 0xf57c0faf);\n d = ff(d, a, b, c, buffer.getUint32(20, true), 12, 0x4787c62a);\n c = ff(c, d, a, b, buffer.getUint32(24, true), 17, 0xa8304613);\n b = ff(b, c, d, a, buffer.getUint32(28, true), 22, 0xfd469501);\n a = ff(a, b, c, d, buffer.getUint32(32, true), 7, 0x698098d8);\n d = ff(d, a, b, c, buffer.getUint32(36, true), 12, 0x8b44f7af);\n c = ff(c, d, a, b, buffer.getUint32(40, true), 17, 0xffff5bb1);\n b = ff(b, c, d, a, buffer.getUint32(44, true), 22, 0x895cd7be);\n a = ff(a, b, c, d, buffer.getUint32(48, true), 7, 0x6b901122);\n d = ff(d, a, b, c, buffer.getUint32(52, true), 12, 0xfd987193);\n c = ff(c, d, a, b, buffer.getUint32(56, true), 17, 0xa679438e);\n b = ff(b, c, d, a, buffer.getUint32(60, true), 22, 0x49b40821);\n a = gg(a, b, c, d, buffer.getUint32(4, true), 5, 0xf61e2562);\n d = gg(d, a, b, c, buffer.getUint32(24, true), 9, 0xc040b340);\n c = gg(c, d, a, b, buffer.getUint32(44, true), 14, 0x265e5a51);\n b = gg(b, c, d, a, buffer.getUint32(0, true), 20, 0xe9b6c7aa);\n a = gg(a, b, c, d, buffer.getUint32(20, true), 5, 0xd62f105d);\n d = gg(d, a, b, c, buffer.getUint32(40, true), 9, 0x02441453);\n c = gg(c, d, a, b, buffer.getUint32(60, true), 14, 0xd8a1e681);\n b = gg(b, c, d, a, buffer.getUint32(16, true), 20, 0xe7d3fbc8);\n a = gg(a, b, c, d, buffer.getUint32(36, true), 5, 0x21e1cde6);\n d = gg(d, a, b, c, buffer.getUint32(56, true), 9, 0xc33707d6);\n c = gg(c, d, a, b, buffer.getUint32(12, true), 14, 0xf4d50d87);\n b = gg(b, c, d, a, buffer.getUint32(32, true), 20, 0x455a14ed);\n a = gg(a, b, c, d, buffer.getUint32(52, true), 5, 0xa9e3e905);\n d = gg(d, a, b, c, buffer.getUint32(8, true), 9, 0xfcefa3f8);\n c = gg(c, d, a, b, buffer.getUint32(28, true), 14, 0x676f02d9);\n b = gg(b, c, d, a, buffer.getUint32(48, true), 20, 0x8d2a4c8a);\n a = hh(a, b, c, d, buffer.getUint32(20, true), 4, 0xfffa3942);\n d = hh(d, a, b, c, buffer.getUint32(32, true), 11, 0x8771f681);\n c = hh(c, d, a, b, buffer.getUint32(44, true), 16, 0x6d9d6122);\n b = hh(b, c, d, a, buffer.getUint32(56, true), 23, 0xfde5380c);\n a = hh(a, b, c, d, buffer.getUint32(4, true), 4, 0xa4beea44);\n d = hh(d, a, b, c, buffer.getUint32(16, true), 11, 0x4bdecfa9);\n c = hh(c, d, a, b, buffer.getUint32(28, true), 16, 0xf6bb4b60);\n b = hh(b, c, d, a, buffer.getUint32(40, true), 23, 0xbebfbc70);\n a = hh(a, b, c, d, buffer.getUint32(52, true), 4, 0x289b7ec6);\n d = hh(d, a, b, c, buffer.getUint32(0, true), 11, 0xeaa127fa);\n c = hh(c, d, a, b, buffer.getUint32(12, true), 16, 0xd4ef3085);\n b = hh(b, c, d, a, buffer.getUint32(24, true), 23, 0x04881d05);\n a = hh(a, b, c, d, buffer.getUint32(36, true), 4, 0xd9d4d039);\n d = hh(d, a, b, c, buffer.getUint32(48, true), 11, 0xe6db99e5);\n c = hh(c, d, a, b, buffer.getUint32(60, true), 16, 0x1fa27cf8);\n b = hh(b, c, d, a, buffer.getUint32(8, true), 23, 0xc4ac5665);\n a = ii(a, b, c, d, buffer.getUint32(0, true), 6, 0xf4292244);\n d = ii(d, a, b, c, buffer.getUint32(28, true), 10, 0x432aff97);\n c = ii(c, d, a, b, buffer.getUint32(56, true), 15, 0xab9423a7);\n b = ii(b, c, d, a, buffer.getUint32(20, true), 21, 0xfc93a039);\n a = ii(a, b, c, d, buffer.getUint32(48, true), 6, 0x655b59c3);\n d = ii(d, a, b, c, buffer.getUint32(12, true), 10, 0x8f0ccc92);\n c = ii(c, d, a, b, buffer.getUint32(40, true), 15, 0xffeff47d);\n b = ii(b, c, d, a, buffer.getUint32(4, true), 21, 0x85845dd1);\n a = ii(a, b, c, d, buffer.getUint32(32, true), 6, 0x6fa87e4f);\n d = ii(d, a, b, c, buffer.getUint32(60, true), 10, 0xfe2ce6e0);\n c = ii(c, d, a, b, buffer.getUint32(24, true), 15, 0xa3014314);\n b = ii(b, c, d, a, buffer.getUint32(52, true), 21, 0x4e0811a1);\n a = ii(a, b, c, d, buffer.getUint32(16, true), 6, 0xf7537e82);\n d = ii(d, a, b, c, buffer.getUint32(44, true), 10, 0xbd3af235);\n c = ii(c, d, a, b, buffer.getUint32(8, true), 15, 0x2ad7d2bb);\n b = ii(b, c, d, a, buffer.getUint32(36, true), 21, 0xeb86d391);\n state[0] = (a + state[0]) & 0xffffffff;\n state[1] = (b + state[1]) & 0xffffffff;\n state[2] = (c + state[2]) & 0xffffffff;\n state[3] = (d + state[3]) & 0xffffffff;\n }\n reset() {\n this.state = Uint32Array.from(INIT);\n this.buffer = new DataView(new ArrayBuffer(BLOCK_SIZE));\n this.bufferLength = 0;\n this.bytesHashed = 0;\n this.finished = false;\n }\n}\nfunction cmn(q, a, b, x, s, t) {\n a = (((a + q) & 0xffffffff) + ((x + t) & 0xffffffff)) & 0xffffffff;\n return (((a << s) | (a >>> (32 - s))) + b) & 0xffffffff;\n}\nfunction ff(a, b, c, d, x, s, t) {\n return cmn((b & c) | (~b & d), a, b, x, s, t);\n}\nfunction gg(a, b, c, d, x, s, t) {\n return cmn((b & d) | (c & ~d), a, b, x, s, t);\n}\nfunction hh(a, b, c, d, x, s, t) {\n return cmn(b ^ c ^ d, a, b, x, s, t);\n}\nfunction ii(a, b, c, d, x, s, t) {\n return cmn(c ^ (b | ~d), a, b, x, s, t);\n}\nfunction isEmptyData(data) {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\nfunction convertToBuffer(data) {\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n}\n","export const calculateBodyLength = (body) => {\n if (typeof body === \"string\") {\n let len = body.length;\n for (let i = len - 1; i >= 0; i--) {\n const code = body.charCodeAt(i);\n if (code > 0x7f && code <= 0x7ff)\n len++;\n else if (code > 0x7ff && code <= 0xffff)\n len += 2;\n if (code >= 0xdc00 && code <= 0xdfff)\n i--;\n }\n return len;\n }\n else if (typeof body.byteLength === \"number\") {\n return body.byteLength;\n }\n else if (typeof body.size === \"number\") {\n return body.size;\n }\n throw new Error(`Body Length computation failed for ${body}`);\n};\n","export const signatureV4CrtContainer = {\n CrtSignerV4: null,\n};\n","import { SignatureV4 } from \"@smithy/signature-v4\";\nimport { loadCrt } from \"./load-crt\";\nimport { signatureV4CrtContainer } from \"./signature-v4-crt-container\";\nexport class SignatureV4MultiRegion {\n constructor(options) {\n this.sigv4Signer = new SignatureV4(options);\n this.signerOptions = options;\n }\n async sign(requestToSign, options = {}) {\n if (options.signingRegion === \"*\") {\n if (this.signerOptions.runtime !== \"node\")\n throw new Error(\"This request requires signing with SigV4Asymmetric algorithm. It's only available in Node.js\");\n return this.getSigv4aSigner().sign(requestToSign, options);\n }\n return this.sigv4Signer.sign(requestToSign, options);\n }\n async presign(originalRequest, options = {}) {\n if (options.signingRegion === \"*\") {\n if (this.signerOptions.runtime !== \"node\")\n throw new Error(\"This request requires signing with SigV4Asymmetric algorithm. It's only available in Node.js\");\n return this.getSigv4aSigner().presign(originalRequest, options);\n }\n return this.sigv4Signer.presign(originalRequest, options);\n }\n getSigv4aSigner() {\n if (!this.sigv4aSigner) {\n let CrtSignerV4 = null;\n try {\n loadCrt();\n CrtSignerV4 = signatureV4CrtContainer.CrtSignerV4;\n if (typeof CrtSignerV4 !== \"function\")\n throw new Error();\n }\n catch (e) {\n e.message =\n `${e.message}\\nPlease check if you have installed \"@aws-sdk/signature-v4-crt\" package explicitly. \\n` +\n \"For more information please go to \" +\n \"https://github.com/aws/aws-sdk-js-v3#functionality-requiring-aws-common-runtime-crt\";\n throw e;\n }\n this.sigv4aSigner = new CrtSignerV4({\n ...this.signerOptions,\n signingAlgorithm: 1,\n });\n }\n return this.sigv4aSigner;\n }\n}\n","const bJ = \"required\", bK = \"type\", bL = \"conditions\", bM = \"fn\", bN = \"argv\", bO = \"ref\", bP = \"assign\", bQ = \"url\", bR = \"properties\", bS = \"authSchemes\", bT = \"disableDoubleEncoding\", bU = \"signingName\", bV = \"signingRegion\", bW = \"headers\";\nconst a = false, b = true, c = \"isSet\", d = \"tree\", e = \"booleanEquals\", f = \"error\", g = \"aws.partition\", h = \"stringEquals\", i = \"getAttr\", j = \"name\", k = \"substring\", l = \"hardwareType\", m = \"regionPrefix\", n = \"bucketAliasSuffix\", o = \"outpostId\", p = \"isValidHostLabel\", q = \"not\", r = \"parseURL\", s = \"s3-outposts\", t = \"endpoint\", u = \"aws.isVirtualHostableS3Bucket\", v = \"s3\", w = \"{url#scheme}://{url#authority}{url#normalizedPath}{Bucket}\", x = \"{url#scheme}://{Bucket}.{url#authority}{url#path}\", y = \"https://{Bucket}.s3-accelerate.{partitionResult#dnsSuffix}\", z = \"https://{Bucket}.s3.{partitionResult#dnsSuffix}\", A = \"aws.parseArn\", B = \"bucketArn\", C = \"arnType\", D = \"\", E = \"s3-object-lambda\", F = \"accesspoint\", G = \"accessPointName\", H = \"{url#scheme}://{accessPointName}-{bucketArn#accountId}.{url#authority}{url#path}\", I = \"mrapPartition\", J = \"outpostType\", K = \"arnPrefix\", L = \"{url#scheme}://{url#authority}{url#normalizedPath}{uri_encoded_bucket}\", M = \"https://s3.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", N = \"{url#scheme}://{url#authority}{url#path}\", O = \"https://s3.{partitionResult#dnsSuffix}\", P = { [bJ]: false, [bK]: \"String\" }, Q = { [bJ]: true, \"default\": false, [bK]: \"Boolean\" }, R = { [bJ]: false, [bK]: \"Boolean\" }, S = { [bM]: e, [bN]: [{ [bO]: \"Accelerate\" }, true] }, T = { [bM]: e, [bN]: [{ [bO]: \"UseFIPS\" }, true] }, U = { [bM]: e, [bN]: [{ [bO]: \"UseDualStack\" }, true] }, V = { [bM]: c, [bN]: [{ [bO]: \"Endpoint\" }] }, W = { [bM]: g, [bN]: [{ [bO]: \"Region\" }], [bP]: \"partitionResult\" }, X = { [bM]: h, [bN]: [{ [bM]: i, [bN]: [{ [bO]: \"partitionResult\" }, j] }, \"aws-cn\"] }, Y = { [bM]: c, [bN]: [{ [bO]: \"Bucket\" }] }, Z = { [bO]: \"Bucket\" }, aa = { [bO]: l }, ab = { [bL]: [{ [bM]: q, [bN]: [V] }], [f]: \"Expected a endpoint to be specified but no endpoint was found\", [bK]: f }, ac = { [bM]: q, [bN]: [V] }, ad = { [bM]: r, [bN]: [{ [bO]: \"Endpoint\" }], [bP]: \"url\" }, ae = { [bS]: [{ [bT]: true, [j]: \"sigv4\", [bU]: s, [bV]: \"{Region}\" }] }, af = {}, ag = { [bM]: e, [bN]: [{ [bO]: \"ForcePathStyle\" }, false] }, ah = { [bO]: \"ForcePathStyle\" }, ai = { [bM]: e, [bN]: [{ [bO]: \"Accelerate\" }, false] }, aj = { [bM]: h, [bN]: [{ [bO]: \"Region\" }, \"aws-global\"] }, ak = { [bS]: [{ [bT]: true, [j]: \"sigv4\", [bU]: v, [bV]: \"us-east-1\" }] }, al = { [bM]: q, [bN]: [aj] }, am = { [bM]: e, [bN]: [{ [bO]: \"UseGlobalEndpoint\" }, true] }, an = { [bQ]: \"https://{Bucket}.s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\", [bR]: { [bS]: [{ [bT]: true, [j]: \"sigv4\", [bU]: v, [bV]: \"{Region}\" }] }, [bW]: {} }, ao = { [bS]: [{ [bT]: true, [j]: \"sigv4\", [bU]: v, [bV]: \"{Region}\" }] }, ap = { [bM]: e, [bN]: [{ [bO]: \"UseGlobalEndpoint\" }, false] }, aq = { [bM]: e, [bN]: [{ [bO]: \"UseDualStack\" }, false] }, ar = { [bQ]: \"https://{Bucket}.s3-fips.{Region}.{partitionResult#dnsSuffix}\", [bR]: ao, [bW]: {} }, as = { [bM]: e, [bN]: [{ [bO]: \"UseFIPS\" }, false] }, at = { [bQ]: \"https://{Bucket}.s3-accelerate.dualstack.{partitionResult#dnsSuffix}\", [bR]: ao, [bW]: {} }, au = { [bQ]: \"https://{Bucket}.s3.dualstack.{Region}.{partitionResult#dnsSuffix}\", [bR]: ao, [bW]: {} }, av = { [bM]: e, [bN]: [{ [bM]: i, [bN]: [{ [bO]: \"url\" }, \"isIp\"] }, true] }, aw = { [bO]: \"url\" }, ax = { [bM]: e, [bN]: [{ [bM]: i, [bN]: [aw, \"isIp\"] }, false] }, ay = { [bQ]: w, [bR]: ao, [bW]: {} }, az = { [bQ]: x, [bR]: ao, [bW]: {} }, aA = { [t]: az, [bK]: t }, aB = { [bQ]: y, [bR]: ao, [bW]: {} }, aC = { [bQ]: \"https://{Bucket}.s3.{Region}.{partitionResult#dnsSuffix}\", [bR]: ao, [bW]: {} }, aD = { [f]: \"Invalid region: region was not a valid DNS name.\", [bK]: f }, aE = { [bO]: B }, aF = { [bO]: C }, aG = { [bM]: i, [bN]: [aE, \"service\"] }, aH = { [bO]: G }, aI = { [bL]: [U], [f]: \"S3 Object Lambda does not support Dual-stack\", [bK]: f }, aJ = { [bL]: [S], [f]: \"S3 Object Lambda does not support S3 Accelerate\", [bK]: f }, aK = { [bL]: [{ [bM]: c, [bN]: [{ [bO]: \"DisableAccessPoints\" }] }, { [bM]: e, [bN]: [{ [bO]: \"DisableAccessPoints\" }, true] }], [f]: \"Access points are not supported for this operation\", [bK]: f }, aL = { [bL]: [{ [bM]: c, [bN]: [{ [bO]: \"UseArnRegion\" }] }, { [bM]: e, [bN]: [{ [bO]: \"UseArnRegion\" }, false] }, { [bM]: q, [bN]: [{ [bM]: h, [bN]: [{ [bM]: i, [bN]: [aE, \"region\"] }, \"{Region}\"] }] }], [f]: \"Invalid configuration: region from ARN `{bucketArn#region}` does not match client region `{Region}` and UseArnRegion is `false`\", [bK]: f }, aM = { [bM]: i, [bN]: [{ [bO]: \"bucketPartition\" }, j] }, aN = { [bM]: i, [bN]: [aE, \"accountId\"] }, aO = { [bS]: [{ [bT]: true, [j]: \"sigv4\", [bU]: E, [bV]: \"{bucketArn#region}\" }] }, aP = { [f]: \"Invalid ARN: The access point name may only contain a-z, A-Z, 0-9 and `-`. Found: `{accessPointName}`\", [bK]: f }, aQ = { [f]: \"Invalid ARN: The account id may only contain a-z, A-Z, 0-9 and `-`. Found: `{bucketArn#accountId}`\", [bK]: f }, aR = { [f]: \"Invalid region in ARN: `{bucketArn#region}` (invalid DNS name)\", [bK]: f }, aS = { [f]: \"Client was configured for partition `{partitionResult#name}` but ARN (`{Bucket}`) has `{bucketPartition#name}`\", [bK]: f }, aT = { [f]: \"Invalid ARN: The ARN may only contain a single resource component after `accesspoint`.\", [bK]: f }, aU = { [f]: \"Invalid ARN: Expected a resource of the format `accesspoint:` but no name was provided\", [bK]: f }, aV = { [bS]: [{ [bT]: true, [j]: \"sigv4\", [bU]: v, [bV]: \"{bucketArn#region}\" }] }, aW = { [bS]: [{ [bT]: true, [j]: \"sigv4\", [bU]: s, [bV]: \"{bucketArn#region}\" }] }, aX = { [bM]: A, [bN]: [Z] }, aY = { [bQ]: \"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [bR]: ao, [bW]: {} }, aZ = { [bQ]: \"https://s3-fips.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [bR]: ao, [bW]: {} }, ba = { [bQ]: \"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [bR]: ao, [bW]: {} }, bb = { [bQ]: L, [bR]: ao, [bW]: {} }, bc = { [bQ]: \"https://s3.{Region}.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [bR]: ao, [bW]: {} }, bd = { [bO]: \"UseObjectLambdaEndpoint\" }, be = { [bS]: [{ [bT]: true, [j]: \"sigv4\", [bU]: E, [bV]: \"{Region}\" }] }, bf = { [bQ]: \"https://s3-fips.dualstack.{Region}.{partitionResult#dnsSuffix}\", [bR]: ao, [bW]: {} }, bg = { [bQ]: \"https://s3-fips.{Region}.{partitionResult#dnsSuffix}\", [bR]: ao, [bW]: {} }, bh = { [bQ]: \"https://s3.dualstack.{Region}.{partitionResult#dnsSuffix}\", [bR]: ao, [bW]: {} }, bi = { [bQ]: N, [bR]: ao, [bW]: {} }, bj = { [bQ]: \"https://s3.{Region}.{partitionResult#dnsSuffix}\", [bR]: ao, [bW]: {} }, bk = [{ [bO]: \"Region\" }], bl = [{ [bO]: \"Endpoint\" }], bm = [Z], bn = [{ [bM]: p, [bN]: [{ [bO]: o }, false] }], bo = [{ [bM]: h, [bN]: [{ [bO]: m }, \"beta\"] }], bp = [V, ad], bq = [Y], br = [W], bs = [{ [bM]: p, [bN]: [{ [bO]: \"Region\" }, false] }], bt = [{ [bM]: h, [bN]: [{ [bO]: \"Region\" }, \"us-east-1\"] }], bu = [{ [bM]: h, [bN]: [aF, F] }], bv = [{ [bM]: i, [bN]: [aE, \"resourceId[1]\"], [bP]: G }, { [bM]: q, [bN]: [{ [bM]: h, [bN]: [aH, D] }] }], bw = [aE, \"resourceId[1]\"], bx = [U], by = [S], bz = [{ [bM]: q, [bN]: [{ [bM]: h, [bN]: [{ [bM]: i, [bN]: [aE, \"region\"] }, D] }] }], bA = [{ [bM]: q, [bN]: [{ [bM]: c, [bN]: [{ [bM]: i, [bN]: [aE, \"resourceId[2]\"] }] }] }], bB = [aE, \"resourceId[2]\"], bC = [{ [bM]: g, [bN]: [{ [bM]: i, [bN]: [aE, \"region\"] }], [bP]: \"bucketPartition\" }], bD = [{ [bM]: h, [bN]: [aM, { [bM]: i, [bN]: [{ [bO]: \"partitionResult\" }, j] }] }], bE = [{ [bM]: p, [bN]: [{ [bM]: i, [bN]: [aE, \"region\"] }, true] }], bF = [{ [bM]: p, [bN]: [aN, false] }], bG = [{ [bM]: p, [bN]: [aH, false] }], bH = [T], bI = [{ [bM]: p, [bN]: [{ [bO]: \"Region\" }, true] }];\nconst _data = { version: \"1.0\", parameters: { Bucket: P, Region: P, UseFIPS: Q, UseDualStack: Q, Endpoint: P, ForcePathStyle: Q, Accelerate: Q, UseGlobalEndpoint: Q, UseObjectLambdaEndpoint: R, DisableAccessPoints: R, DisableMultiRegionAccessPoints: Q, UseArnRegion: R }, rules: [{ [bL]: [{ [bM]: c, [bN]: bk }], [bK]: d, rules: [{ [bL]: [S, T], error: \"Accelerate cannot be used with FIPS\", [bK]: f }, { [bL]: [U, V], error: \"Cannot set dual-stack in combination with a custom endpoint.\", [bK]: f }, { [bL]: [V, T], error: \"A custom endpoint cannot be combined with FIPS\", [bK]: f }, { [bL]: [V, S], error: \"A custom endpoint cannot be combined with S3 Accelerate\", [bK]: f }, { [bL]: [T, W, X], error: \"Partition does not support FIPS\", [bK]: f }, { [bL]: [Y, { [bM]: k, [bN]: [Z, 49, 50, b], [bP]: l }, { [bM]: k, [bN]: [Z, 8, 12, b], [bP]: m }, { [bM]: k, [bN]: [Z, 0, 7, b], [bP]: n }, { [bM]: k, [bN]: [Z, 32, 49, b], [bP]: o }, { [bM]: g, [bN]: bk, [bP]: \"regionPartition\" }, { [bM]: h, [bN]: [{ [bO]: n }, \"--op-s3\"] }], [bK]: d, rules: [{ [bL]: bn, [bK]: d, rules: [{ [bL]: [{ [bM]: h, [bN]: [aa, \"e\"] }], [bK]: d, rules: [{ [bL]: bo, [bK]: d, rules: [ab, { [bL]: bp, endpoint: { [bQ]: \"https://{Bucket}.ec2.{url#authority}\", [bR]: ae, [bW]: af }, [bK]: t }] }, { endpoint: { [bQ]: \"https://{Bucket}.ec2.s3-outposts.{Region}.{regionPartition#dnsSuffix}\", [bR]: ae, [bW]: af }, [bK]: t }] }, { [bL]: [{ [bM]: h, [bN]: [aa, \"o\"] }], [bK]: d, rules: [{ [bL]: bo, [bK]: d, rules: [ab, { [bL]: bp, endpoint: { [bQ]: \"https://{Bucket}.op-{outpostId}.{url#authority}\", [bR]: ae, [bW]: af }, [bK]: t }] }, { endpoint: { [bQ]: \"https://{Bucket}.op-{outpostId}.s3-outposts.{Region}.{regionPartition#dnsSuffix}\", [bR]: ae, [bW]: af }, [bK]: t }] }, { error: \"Unrecognized hardware type: \\\"Expected hardware type o or e but got {hardwareType}\\\"\", [bK]: f }] }, { error: \"Invalid ARN: The outpost Id must only contain a-z, A-Z, 0-9 and `-`.\", [bK]: f }] }, { [bL]: bq, [bK]: d, rules: [{ [bL]: [V, { [bM]: q, [bN]: [{ [bM]: c, [bN]: [{ [bM]: r, [bN]: bl }] }] }], error: \"Custom endpoint `{Endpoint}` was not a valid URI\", [bK]: f }, { [bL]: [ag, { [bM]: u, [bN]: [Z, a] }], [bK]: d, rules: [{ [bL]: br, [bK]: d, rules: [{ [bL]: bs, [bK]: d, rules: [{ [bL]: [S, X], error: \"S3 Accelerate cannot be used in this region\", [bK]: f }, { [bL]: [U, T, ai, ac, aj], endpoint: { [bQ]: \"https://{Bucket}.s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [bR]: ak, [bW]: af }, [bK]: t }, { [bL]: [U, T, ai, ac, al, am], [bK]: d, rules: [{ endpoint: an, [bK]: t }] }, { [bL]: [U, T, ai, ac, al, ap], endpoint: an, [bK]: t }, { [bL]: [aq, T, ai, ac, aj], endpoint: { [bQ]: \"https://{Bucket}.s3-fips.us-east-1.{partitionResult#dnsSuffix}\", [bR]: ak, [bW]: af }, [bK]: t }, { [bL]: [aq, T, ai, ac, al, am], [bK]: d, rules: [{ endpoint: ar, [bK]: t }] }, { [bL]: [aq, T, ai, ac, al, ap], endpoint: ar, [bK]: t }, { [bL]: [U, as, S, ac, aj], endpoint: { [bQ]: \"https://{Bucket}.s3-accelerate.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [bR]: ak, [bW]: af }, [bK]: t }, { [bL]: [U, as, S, ac, al, am], [bK]: d, rules: [{ endpoint: at, [bK]: t }] }, { [bL]: [U, as, S, ac, al, ap], endpoint: at, [bK]: t }, { [bL]: [U, as, ai, ac, aj], endpoint: { [bQ]: \"https://{Bucket}.s3.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [bR]: ak, [bW]: af }, [bK]: t }, { [bL]: [U, as, ai, ac, al, am], [bK]: d, rules: [{ endpoint: au, [bK]: t }] }, { [bL]: [U, as, ai, ac, al, ap], endpoint: au, [bK]: t }, { [bL]: [aq, as, ai, V, ad, av, aj], endpoint: { [bQ]: w, [bR]: ak, [bW]: af }, [bK]: t }, { [bL]: [aq, as, ai, V, ad, ax, aj], endpoint: { [bQ]: x, [bR]: ak, [bW]: af }, [bK]: t }, { [bL]: [aq, as, ai, V, ad, av, al, am], [bK]: d, rules: [{ [bL]: bt, endpoint: ay, [bK]: t }, { endpoint: ay, [bK]: t }] }, { [bL]: [aq, as, ai, V, ad, ax, al, am], [bK]: d, rules: [{ [bL]: bt, endpoint: az, [bK]: t }, aA] }, { [bL]: [aq, as, ai, V, ad, av, al, ap], endpoint: ay, [bK]: t }, { [bL]: [aq, as, ai, V, ad, ax, al, ap], endpoint: az, [bK]: t }, { [bL]: [aq, as, S, ac, aj], endpoint: { [bQ]: y, [bR]: ak, [bW]: af }, [bK]: t }, { [bL]: [aq, as, S, ac, al, am], [bK]: d, rules: [{ [bL]: bt, endpoint: aB, [bK]: t }, { endpoint: aB, [bK]: t }] }, { [bL]: [aq, as, S, ac, al, ap], endpoint: aB, [bK]: t }, { [bL]: [aq, as, ai, ac, aj], endpoint: { [bQ]: z, [bR]: ak, [bW]: af }, [bK]: t }, { [bL]: [aq, as, ai, ac, al, am], [bK]: d, rules: [{ [bL]: bt, endpoint: { [bQ]: z, [bR]: ao, [bW]: af }, [bK]: t }, { endpoint: aC, [bK]: t }] }, { [bL]: [aq, as, ai, ac, al, ap], endpoint: aC, [bK]: t }] }, aD] }] }, { [bL]: [V, ad, { [bM]: h, [bN]: [{ [bM]: i, [bN]: [aw, \"scheme\"] }, \"http\"] }, { [bM]: u, [bN]: [Z, b] }, ag, as, aq, ai], [bK]: d, rules: [{ [bL]: br, [bK]: d, rules: [{ [bL]: bs, [bK]: d, rules: [aA] }, aD] }] }, { [bL]: [ag, { [bM]: A, [bN]: bm, [bP]: B }], [bK]: d, rules: [{ [bL]: [{ [bM]: i, [bN]: [aE, \"resourceId[0]\"], [bP]: C }, { [bM]: q, [bN]: [{ [bM]: h, [bN]: [aF, D] }] }], [bK]: d, rules: [{ [bL]: [{ [bM]: h, [bN]: [aG, E] }], [bK]: d, rules: [{ [bL]: bu, [bK]: d, rules: [{ [bL]: bv, [bK]: d, rules: [aI, aJ, { [bL]: bz, [bK]: d, rules: [aK, { [bL]: bA, [bK]: d, rules: [aL, { [bL]: bC, [bK]: d, rules: [{ [bL]: br, [bK]: d, rules: [{ [bL]: bD, [bK]: d, rules: [{ [bL]: bE, [bK]: d, rules: [{ [bL]: [{ [bM]: h, [bN]: [aN, D] }], error: \"Invalid ARN: Missing account id\", [bK]: f }, { [bL]: bF, [bK]: d, rules: [{ [bL]: bG, [bK]: d, rules: [{ [bL]: bp, endpoint: { [bQ]: H, [bR]: aO, [bW]: af }, [bK]: t }, { [bL]: bH, endpoint: { [bQ]: \"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [bR]: aO, [bW]: af }, [bK]: t }, { endpoint: { [bQ]: \"https://{accessPointName}-{bucketArn#accountId}.s3-object-lambda.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [bR]: aO, [bW]: af }, [bK]: t }] }, aP] }, aQ] }, aR] }, aS] }] }] }, aT] }, { error: \"Invalid ARN: bucket ARN is missing a region\", [bK]: f }] }, aU] }, { error: \"Invalid ARN: Object Lambda ARNs only support `accesspoint` arn types, but found: `{arnType}`\", [bK]: f }] }, { [bL]: bu, [bK]: d, rules: [{ [bL]: bv, [bK]: d, rules: [{ [bL]: bz, [bK]: d, rules: [{ [bL]: bu, [bK]: d, rules: [{ [bL]: bz, [bK]: d, rules: [aK, { [bL]: bA, [bK]: d, rules: [aL, { [bL]: bC, [bK]: d, rules: [{ [bL]: br, [bK]: d, rules: [{ [bL]: [{ [bM]: h, [bN]: [aM, \"{partitionResult#name}\"] }], [bK]: d, rules: [{ [bL]: bE, [bK]: d, rules: [{ [bL]: [{ [bM]: h, [bN]: [aG, v] }], [bK]: d, rules: [{ [bL]: bF, [bK]: d, rules: [{ [bL]: bG, [bK]: d, rules: [{ [bL]: by, error: \"Access Points do not support S3 Accelerate\", [bK]: f }, { [bL]: [T, U], endpoint: { [bQ]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [bR]: aV, [bW]: af }, [bK]: t }, { [bL]: [T, aq], endpoint: { [bQ]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint-fips.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [bR]: aV, [bW]: af }, [bK]: t }, { [bL]: [as, U], endpoint: { [bQ]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.dualstack.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [bR]: aV, [bW]: af }, [bK]: t }, { [bL]: [as, aq, V, ad], endpoint: { [bQ]: H, [bR]: aV, [bW]: af }, [bK]: t }, { [bL]: [as, aq], endpoint: { [bQ]: \"https://{accessPointName}-{bucketArn#accountId}.s3-accesspoint.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [bR]: aV, [bW]: af }, [bK]: t }] }, aP] }, aQ] }, { error: \"Invalid ARN: The ARN was not for the S3 service, found: {bucketArn#service}\", [bK]: f }] }, aR] }, aS] }] }] }, aT] }] }] }, { [bL]: [{ [bM]: p, [bN]: [aH, b] }], [bK]: d, rules: [{ [bL]: bx, error: \"S3 MRAP does not support dual-stack\", [bK]: f }, { [bL]: bH, error: \"S3 MRAP does not support FIPS\", [bK]: f }, { [bL]: by, error: \"S3 MRAP does not support S3 Accelerate\", [bK]: f }, { [bL]: [{ [bM]: e, [bN]: [{ [bO]: \"DisableMultiRegionAccessPoints\" }, b] }], error: \"Invalid configuration: Multi-Region Access Point ARNs are disabled.\", [bK]: f }, { [bL]: [{ [bM]: g, [bN]: bk, [bP]: I }], [bK]: d, rules: [{ [bL]: [{ [bM]: h, [bN]: [{ [bM]: i, [bN]: [{ [bO]: I }, j] }, { [bM]: i, [bN]: [aE, \"partition\"] }] }], [bK]: d, rules: [{ endpoint: { [bQ]: \"https://{accessPointName}.accesspoint.s3-global.{mrapPartition#dnsSuffix}\", [bR]: { [bS]: [{ [bT]: b, name: \"sigv4a\", [bU]: v, signingRegionSet: [\"*\"] }] }, [bW]: af }, [bK]: t }] }, { error: \"Client was configured for partition `{mrapPartition#name}` but bucket referred to partition `{bucketArn#partition}`\", [bK]: f }] }] }, { error: \"Invalid Access Point Name\", [bK]: f }] }, aU] }, { [bL]: [{ [bM]: h, [bN]: [aG, s] }], [bK]: d, rules: [{ [bL]: bx, error: \"S3 Outposts does not support Dual-stack\", [bK]: f }, { [bL]: bH, error: \"S3 Outposts does not support FIPS\", [bK]: f }, { [bL]: by, error: \"S3 Outposts does not support S3 Accelerate\", [bK]: f }, { [bL]: [{ [bM]: c, [bN]: [{ [bM]: i, [bN]: [aE, \"resourceId[4]\"] }] }], error: \"Invalid Arn: Outpost Access Point ARN contains sub resources\", [bK]: f }, { [bL]: [{ [bM]: i, [bN]: bw, [bP]: o }], [bK]: d, rules: [{ [bL]: bn, [bK]: d, rules: [aL, { [bL]: bC, [bK]: d, rules: [{ [bL]: br, [bK]: d, rules: [{ [bL]: bD, [bK]: d, rules: [{ [bL]: bE, [bK]: d, rules: [{ [bL]: bF, [bK]: d, rules: [{ [bL]: [{ [bM]: i, [bN]: bB, [bP]: J }], [bK]: d, rules: [{ [bL]: [{ [bM]: i, [bN]: [aE, \"resourceId[3]\"], [bP]: G }], [bK]: d, rules: [{ [bL]: [{ [bM]: h, [bN]: [{ [bO]: J }, F] }], [bK]: d, rules: [{ [bL]: bp, endpoint: { [bQ]: \"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.{url#authority}\", [bR]: aW, [bW]: af }, [bK]: t }, { endpoint: { [bQ]: \"https://{accessPointName}-{bucketArn#accountId}.{outpostId}.s3-outposts.{bucketArn#region}.{bucketPartition#dnsSuffix}\", [bR]: aW, [bW]: af }, [bK]: t }] }, { error: \"Expected an outpost type `accesspoint`, found {outpostType}\", [bK]: f }] }, { error: \"Invalid ARN: expected an access point name\", [bK]: f }] }, { error: \"Invalid ARN: Expected a 4-component resource\", [bK]: f }] }, aQ] }, aR] }, aS] }] }] }, { error: \"Invalid ARN: The outpost Id may only contain a-z, A-Z, 0-9 and `-`. Found: `{outpostId}`\", [bK]: f }] }, { error: \"Invalid ARN: The Outpost Id was not set\", [bK]: f }] }, { error: \"Invalid ARN: Unrecognized format: {Bucket} (type: {arnType})\", [bK]: f }] }, { error: \"Invalid ARN: No ARN type specified\", [bK]: f }] }, { [bL]: [{ [bM]: k, [bN]: [Z, 0, 4, a], [bP]: K }, { [bM]: h, [bN]: [{ [bO]: K }, \"arn:\"] }, { [bM]: q, [bN]: [{ [bM]: c, [bN]: [aX] }] }], error: \"Invalid ARN: `{Bucket}` was not a valid ARN\", [bK]: f }, { [bL]: [{ [bM]: e, [bN]: [ah, b] }, aX], error: \"Path-style addressing cannot be used with ARN buckets\", [bK]: f }, { [bL]: [{ [bM]: \"uriEncode\", [bN]: bm, [bP]: \"uri_encoded_bucket\" }], [bK]: d, rules: [{ [bL]: br, [bK]: d, rules: [{ [bL]: [ai], [bK]: d, rules: [{ [bL]: [U, ac, T, aj], endpoint: { [bQ]: \"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [bR]: ak, [bW]: af }, [bK]: t }, { [bL]: [U, ac, T, al, am], [bK]: d, rules: [{ endpoint: aY, [bK]: t }] }, { [bL]: [U, ac, T, al, ap], endpoint: aY, [bK]: t }, { [bL]: [aq, ac, T, aj], endpoint: { [bQ]: \"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [bR]: ak, [bW]: af }, [bK]: t }, { [bL]: [aq, ac, T, al, am], [bK]: d, rules: [{ endpoint: aZ, [bK]: t }] }, { [bL]: [aq, ac, T, al, ap], endpoint: aZ, [bK]: t }, { [bL]: [U, ac, as, aj], endpoint: { [bQ]: \"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}/{uri_encoded_bucket}\", [bR]: ak, [bW]: af }, [bK]: t }, { [bL]: [U, ac, as, al, am], [bK]: d, rules: [{ endpoint: ba, [bK]: t }] }, { [bL]: [U, ac, as, al, ap], endpoint: ba, [bK]: t }, { [bL]: [aq, V, ad, as, aj], endpoint: { [bQ]: L, [bR]: ak, [bW]: af }, [bK]: t }, { [bL]: [aq, V, ad, as, al, am], [bK]: d, rules: [{ [bL]: bt, endpoint: bb, [bK]: t }, { endpoint: bb, [bK]: t }] }, { [bL]: [aq, V, ad, as, al, ap], endpoint: bb, [bK]: t }, { [bL]: [aq, ac, as, aj], endpoint: { [bQ]: M, [bR]: ak, [bW]: af }, [bK]: t }, { [bL]: [aq, ac, as, al, am], [bK]: d, rules: [{ [bL]: bt, endpoint: { [bQ]: M, [bR]: ao, [bW]: af }, [bK]: t }, { endpoint: bc, [bK]: t }] }, { [bL]: [aq, ac, as, al, ap], endpoint: bc, [bK]: t }] }, { error: \"Path-style addressing cannot be used with S3 Accelerate\", [bK]: f }] }] }] }, { [bL]: [{ [bM]: c, [bN]: [bd] }, { [bM]: e, [bN]: [bd, b] }], [bK]: d, rules: [{ [bL]: br, [bK]: d, rules: [{ [bL]: bI, [bK]: d, rules: [aI, aJ, { [bL]: bp, endpoint: { [bQ]: N, [bR]: be, [bW]: af }, [bK]: t }, { [bL]: bH, endpoint: { [bQ]: \"https://s3-object-lambda-fips.{Region}.{partitionResult#dnsSuffix}\", [bR]: be, [bW]: af }, [bK]: t }, { endpoint: { [bQ]: \"https://s3-object-lambda.{Region}.{partitionResult#dnsSuffix}\", [bR]: be, [bW]: af }, [bK]: t }] }, aD] }] }, { [bL]: [{ [bM]: q, [bN]: bq }], [bK]: d, rules: [{ [bL]: br, [bK]: d, rules: [{ [bL]: bI, [bK]: d, rules: [{ [bL]: [T, U, ac, aj], endpoint: { [bQ]: \"https://s3-fips.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [bR]: ak, [bW]: af }, [bK]: t }, { [bL]: [T, U, ac, al, am], [bK]: d, rules: [{ endpoint: bf, [bK]: t }] }, { [bL]: [T, U, ac, al, ap], endpoint: bf, [bK]: t }, { [bL]: [T, aq, ac, aj], endpoint: { [bQ]: \"https://s3-fips.us-east-1.{partitionResult#dnsSuffix}\", [bR]: ak, [bW]: af }, [bK]: t }, { [bL]: [T, aq, ac, al, am], [bK]: d, rules: [{ endpoint: bg, [bK]: t }] }, { [bL]: [T, aq, ac, al, ap], endpoint: bg, [bK]: t }, { [bL]: [as, U, ac, aj], endpoint: { [bQ]: \"https://s3.dualstack.us-east-1.{partitionResult#dnsSuffix}\", [bR]: ak, [bW]: af }, [bK]: t }, { [bL]: [as, U, ac, al, am], [bK]: d, rules: [{ endpoint: bh, [bK]: t }] }, { [bL]: [as, U, ac, al, ap], endpoint: bh, [bK]: t }, { [bL]: [as, aq, V, ad, aj], endpoint: { [bQ]: N, [bR]: ak, [bW]: af }, [bK]: t }, { [bL]: [as, aq, V, ad, al, am], [bK]: d, rules: [{ [bL]: bt, endpoint: bi, [bK]: t }, { endpoint: bi, [bK]: t }] }, { [bL]: [as, aq, V, ad, al, ap], endpoint: bi, [bK]: t }, { [bL]: [as, aq, ac, aj], endpoint: { [bQ]: O, [bR]: ak, [bW]: af }, [bK]: t }, { [bL]: [as, aq, ac, al, am], [bK]: d, rules: [{ [bL]: bt, endpoint: { [bQ]: O, [bR]: ao, [bW]: af }, [bK]: t }, { endpoint: bj, [bK]: t }] }, { [bL]: [as, aq, ac, al, ap], endpoint: bj, [bK]: t }] }, aD] }] }] }, { error: \"A region must be set when sending requests to S3.\", [bK]: f }] };\nexport const ruleSet = _data;\n","import { resolveEndpoint } from \"@aws-sdk/util-endpoints\";\nimport { ruleSet } from \"./ruleset\";\nexport const defaultEndpointResolver = (endpointParams, context = {}) => {\n return resolveEndpoint(ruleSet, {\n endpointParams: endpointParams,\n logger: context.logger,\n });\n};\n","import { debugId, toDebugString } from \"./debug\";\nimport { EndpointError } from \"./types\";\nimport { evaluateRules } from \"./utils\";\nexport const resolveEndpoint = (ruleSetObject, options) => {\n const { endpointParams, logger } = options;\n const { parameters, rules } = ruleSetObject;\n options.logger?.debug?.(`${debugId} Initial EndpointParams: ${toDebugString(endpointParams)}`);\n const paramsWithDefault = Object.entries(parameters)\n .filter(([, v]) => v.default != null)\n .map(([k, v]) => [k, v.default]);\n if (paramsWithDefault.length > 0) {\n for (const [paramKey, paramDefaultValue] of paramsWithDefault) {\n endpointParams[paramKey] = endpointParams[paramKey] ?? paramDefaultValue;\n }\n }\n const requiredParams = Object.entries(parameters)\n .filter(([, v]) => v.required)\n .map(([k]) => k);\n for (const requiredParam of requiredParams) {\n if (endpointParams[requiredParam] == null) {\n throw new EndpointError(`Missing required parameter: '${requiredParam}'`);\n }\n }\n const endpoint = evaluateRules(rules, { endpointParams, logger, referenceRecord: {} });\n if (options.endpointParams?.Endpoint) {\n try {\n const givenEndpoint = new URL(options.endpointParams.Endpoint);\n const { protocol, port } = givenEndpoint;\n endpoint.url.protocol = protocol;\n endpoint.url.port = port;\n }\n catch (e) {\n }\n }\n options.logger?.debug?.(`${debugId} Resolved endpoint: ${toDebugString(endpoint)}`);\n return endpoint;\n};\n","export const DEFAULTS_MODE_OPTIONS = [\"in-region\", \"cross-region\", \"mobile\", \"standard\", \"legacy\"];\n","import { memoize } from \"@smithy/property-provider\";\nimport bowser from \"bowser\";\nimport { DEFAULTS_MODE_OPTIONS } from \"./constants\";\nexport const resolveDefaultsModeConfig = ({ defaultsMode, } = {}) => memoize(async () => {\n const mode = typeof defaultsMode === \"function\" ? await defaultsMode() : defaultsMode;\n switch (mode?.toLowerCase()) {\n case \"auto\":\n return Promise.resolve(isMobileBrowser() ? \"mobile\" : \"standard\");\n case \"mobile\":\n case \"in-region\":\n case \"cross-region\":\n case \"standard\":\n case \"legacy\":\n return Promise.resolve(mode?.toLocaleLowerCase());\n case undefined:\n return Promise.resolve(\"legacy\");\n default:\n throw new Error(`Invalid parameter for \"defaultsMode\", expect ${DEFAULTS_MODE_OPTIONS.join(\", \")}, got ${mode}`);\n }\n});\nconst isMobileBrowser = () => {\n const parsedUA = typeof window !== \"undefined\" && window?.navigator?.userAgent\n ? bowser.parse(window.navigator.userAgent)\n : undefined;\n const platform = parsedUA?.platform?.type;\n return platform === \"tablet\" || platform === \"mobile\";\n};\n","import packageInfo from \"../package.json\";\nimport { Sha1 } from \"@aws-crypto/sha1-browser\";\nimport { Sha256 } from \"@aws-crypto/sha256-browser\";\nimport { defaultUserAgent } from \"@aws-sdk/util-user-agent-browser\";\nimport { DEFAULT_USE_DUALSTACK_ENDPOINT, DEFAULT_USE_FIPS_ENDPOINT } from \"@smithy/config-resolver\";\nimport { eventStreamSerdeProvider } from \"@smithy/eventstream-serde-browser\";\nimport { FetchHttpHandler as RequestHandler, streamCollector } from \"@smithy/fetch-http-handler\";\nimport { blobHasher as streamHasher } from \"@smithy/hash-blob-browser\";\nimport { invalidProvider } from \"@smithy/invalid-dependency\";\nimport { Md5 } from \"@smithy/md5-js\";\nimport { calculateBodyLength } from \"@smithy/util-body-length-browser\";\nimport { DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE } from \"@smithy/util-retry\";\nimport { getRuntimeConfig as getSharedRuntimeConfig } from \"./runtimeConfig.shared\";\nimport { loadConfigsForDefaultMode } from \"@smithy/smithy-client\";\nimport { resolveDefaultsModeConfig } from \"@smithy/util-defaults-mode-browser\";\nexport const getRuntimeConfig = (config) => {\n const defaultsMode = resolveDefaultsModeConfig(config);\n const defaultConfigProvider = () => defaultsMode().then(loadConfigsForDefaultMode);\n const clientSharedValues = getSharedRuntimeConfig(config);\n return {\n ...clientSharedValues,\n ...config,\n runtime: \"browser\",\n defaultsMode,\n bodyLengthChecker: config?.bodyLengthChecker ?? calculateBodyLength,\n credentialDefaultProvider: config?.credentialDefaultProvider ?? ((_) => () => Promise.reject(new Error(\"Credential is missing\"))),\n defaultUserAgentProvider: config?.defaultUserAgentProvider ??\n defaultUserAgent({ serviceId: clientSharedValues.serviceId, clientVersion: packageInfo.version }),\n eventStreamSerdeProvider: config?.eventStreamSerdeProvider ?? eventStreamSerdeProvider,\n maxAttempts: config?.maxAttempts ?? DEFAULT_MAX_ATTEMPTS,\n md5: config?.md5 ?? Md5,\n region: config?.region ?? invalidProvider(\"Region is missing\"),\n requestHandler: config?.requestHandler ?? new RequestHandler(defaultConfigProvider),\n retryMode: config?.retryMode ?? (async () => (await defaultConfigProvider()).retryMode || DEFAULT_RETRY_MODE),\n sha1: config?.sha1 ?? Sha1,\n sha256: config?.sha256 ?? Sha256,\n streamCollector: config?.streamCollector ?? streamCollector,\n streamHasher: config?.streamHasher ?? streamHasher,\n useDualstackEndpoint: config?.useDualstackEndpoint ?? (() => Promise.resolve(DEFAULT_USE_DUALSTACK_ENDPOINT)),\n useFipsEndpoint: config?.useFipsEndpoint ?? (() => Promise.resolve(DEFAULT_USE_FIPS_ENDPOINT)),\n };\n};\n","import { SignatureV4MultiRegion } from \"@aws-sdk/signature-v4-multi-region\";\nimport { NoOpLogger } from \"@smithy/smithy-client\";\nimport { parseUrl } from \"@smithy/url-parser\";\nimport { fromBase64, toBase64 } from \"@smithy/util-base64\";\nimport { getAwsChunkedEncodingStream, sdkStreamMixin } from \"@smithy/util-stream\";\nimport { fromUtf8, toUtf8 } from \"@smithy/util-utf8\";\nimport { defaultEndpointResolver } from \"./endpoint/endpointResolver\";\nexport const getRuntimeConfig = (config) => ({\n apiVersion: \"2006-03-01\",\n base64Decoder: config?.base64Decoder ?? fromBase64,\n base64Encoder: config?.base64Encoder ?? toBase64,\n disableHostPrefix: config?.disableHostPrefix ?? false,\n endpointProvider: config?.endpointProvider ?? defaultEndpointResolver,\n extensions: config?.extensions ?? [],\n getAwsChunkedEncodingStream: config?.getAwsChunkedEncodingStream ?? getAwsChunkedEncodingStream,\n logger: config?.logger ?? new NoOpLogger(),\n sdkStreamMixin: config?.sdkStreamMixin ?? sdkStreamMixin,\n serviceId: config?.serviceId ?? \"S3\",\n signerConstructor: config?.signerConstructor ?? SignatureV4MultiRegion,\n signingEscapePath: config?.signingEscapePath ?? false,\n urlParser: config?.urlParser ?? parseUrl,\n useArnRegion: config?.useArnRegion ?? false,\n utf8Decoder: config?.utf8Decoder ?? fromUtf8,\n utf8Encoder: config?.utf8Encoder ?? toUtf8,\n});\n","export const invalidProvider = (message) => () => Promise.reject(message);\n","import { booleanSelector, SelectorType } from \"@smithy/util-config-provider\";\nexport const ENV_USE_DUALSTACK_ENDPOINT = \"AWS_USE_DUALSTACK_ENDPOINT\";\nexport const CONFIG_USE_DUALSTACK_ENDPOINT = \"use_dualstack_endpoint\";\nexport const DEFAULT_USE_DUALSTACK_ENDPOINT = false;\nexport const NODE_USE_DUALSTACK_ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => booleanSelector(env, ENV_USE_DUALSTACK_ENDPOINT, SelectorType.ENV),\n configFileSelector: (profile) => booleanSelector(profile, CONFIG_USE_DUALSTACK_ENDPOINT, SelectorType.CONFIG),\n default: false,\n};\n","import { booleanSelector, SelectorType } from \"@smithy/util-config-provider\";\nexport const ENV_USE_FIPS_ENDPOINT = \"AWS_USE_FIPS_ENDPOINT\";\nexport const CONFIG_USE_FIPS_ENDPOINT = \"use_fips_endpoint\";\nexport const DEFAULT_USE_FIPS_ENDPOINT = false;\nexport const NODE_USE_FIPS_ENDPOINT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => booleanSelector(env, ENV_USE_FIPS_ENDPOINT, SelectorType.ENV),\n configFileSelector: (profile) => booleanSelector(profile, CONFIG_USE_FIPS_ENDPOINT, SelectorType.CONFIG),\n default: false,\n};\n","export const getAwsRegionExtensionConfiguration = (runtimeConfig) => {\n let runtimeConfigRegion = async () => {\n if (runtimeConfig.region === undefined) {\n throw new Error(\"Region is missing from runtimeConfig\");\n }\n const region = runtimeConfig.region;\n if (typeof region === \"string\") {\n return region;\n }\n return region();\n };\n return {\n setRegion(region) {\n runtimeConfigRegion = region;\n },\n region() {\n return runtimeConfigRegion;\n },\n };\n};\nexport const resolveAwsRegionExtensionConfiguration = (awsRegionExtensionConfiguration) => {\n return {\n region: awsRegionExtensionConfiguration.region(),\n };\n};\n","import { getAddExpectContinuePlugin } from \"@aws-sdk/middleware-expect-continue\";\nimport { getHostHeaderPlugin, resolveHostHeaderConfig, } from \"@aws-sdk/middleware-host-header\";\nimport { getLoggerPlugin } from \"@aws-sdk/middleware-logger\";\nimport { getRecursionDetectionPlugin } from \"@aws-sdk/middleware-recursion-detection\";\nimport { getRegionRedirectMiddlewarePlugin, getValidateBucketNamePlugin, resolveS3Config, } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getAwsAuthPlugin, resolveAwsAuthConfig, } from \"@aws-sdk/middleware-signing\";\nimport { getUserAgentPlugin, resolveUserAgentConfig, } from \"@aws-sdk/middleware-user-agent\";\nimport { resolveRegionConfig } from \"@smithy/config-resolver\";\nimport { resolveEventStreamSerdeConfig, } from \"@smithy/eventstream-serde-config-resolver\";\nimport { getContentLengthPlugin } from \"@smithy/middleware-content-length\";\nimport { resolveEndpointConfig } from \"@smithy/middleware-endpoint\";\nimport { getRetryPlugin, resolveRetryConfig } from \"@smithy/middleware-retry\";\nimport { Client as __Client, } from \"@smithy/smithy-client\";\nimport { resolveClientEndpointParameters, } from \"./endpoint/EndpointParameters\";\nimport { getRuntimeConfig as __getRuntimeConfig } from \"./runtimeConfig\";\nimport { resolveRuntimeExtensions } from \"./runtimeExtensions\";\nexport { __Client };\nexport class S3Client extends __Client {\n constructor(...[configuration]) {\n const _config_0 = __getRuntimeConfig(configuration || {});\n const _config_1 = resolveClientEndpointParameters(_config_0);\n const _config_2 = resolveRegionConfig(_config_1);\n const _config_3 = resolveEndpointConfig(_config_2);\n const _config_4 = resolveRetryConfig(_config_3);\n const _config_5 = resolveHostHeaderConfig(_config_4);\n const _config_6 = resolveAwsAuthConfig(_config_5);\n const _config_7 = resolveS3Config(_config_6);\n const _config_8 = resolveUserAgentConfig(_config_7);\n const _config_9 = resolveEventStreamSerdeConfig(_config_8);\n const _config_10 = resolveRuntimeExtensions(_config_9, configuration?.extensions || []);\n super(_config_10);\n this.config = _config_10;\n this.middlewareStack.use(getRetryPlugin(this.config));\n this.middlewareStack.use(getContentLengthPlugin(this.config));\n this.middlewareStack.use(getHostHeaderPlugin(this.config));\n this.middlewareStack.use(getLoggerPlugin(this.config));\n this.middlewareStack.use(getRecursionDetectionPlugin(this.config));\n this.middlewareStack.use(getAwsAuthPlugin(this.config));\n this.middlewareStack.use(getValidateBucketNamePlugin(this.config));\n this.middlewareStack.use(getAddExpectContinuePlugin(this.config));\n this.middlewareStack.use(getRegionRedirectMiddlewarePlugin(this.config));\n this.middlewareStack.use(getUserAgentPlugin(this.config));\n }\n destroy() {\n super.destroy();\n }\n}\n","export const resolveClientEndpointParameters = (options) => {\n return {\n ...options,\n useFipsEndpoint: options.useFipsEndpoint ?? false,\n useDualstackEndpoint: options.useDualstackEndpoint ?? false,\n forcePathStyle: options.forcePathStyle ?? false,\n useAccelerateEndpoint: options.useAccelerateEndpoint ?? false,\n useGlobalEndpoint: options.useGlobalEndpoint ?? false,\n disableMultiregionAccessPoints: options.disableMultiregionAccessPoints ?? false,\n defaultSigningName: \"s3\",\n };\n};\n","import { getRealRegion } from \"./getRealRegion\";\nimport { isFipsRegion } from \"./isFipsRegion\";\nexport const resolveRegionConfig = (input) => {\n const { region, useFipsEndpoint } = input;\n if (!region) {\n throw new Error(\"Region is missing\");\n }\n return {\n ...input,\n region: async () => {\n if (typeof region === \"string\") {\n return getRealRegion(region);\n }\n const providedRegion = await region();\n return getRealRegion(providedRegion);\n },\n useFipsEndpoint: async () => {\n const providedRegion = typeof region === \"string\" ? region : await region();\n if (isFipsRegion(providedRegion)) {\n return true;\n }\n return typeof useFipsEndpoint !== \"function\" ? Promise.resolve(!!useFipsEndpoint) : useFipsEndpoint();\n },\n };\n};\n","import { normalizeProvider } from \"@smithy/util-middleware\";\nimport { AdaptiveRetryStrategy, DEFAULT_MAX_ATTEMPTS, DEFAULT_RETRY_MODE, RETRY_MODES, StandardRetryStrategy, } from \"@smithy/util-retry\";\nexport const ENV_MAX_ATTEMPTS = \"AWS_MAX_ATTEMPTS\";\nexport const CONFIG_MAX_ATTEMPTS = \"max_attempts\";\nexport const NODE_MAX_ATTEMPT_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => {\n const value = env[ENV_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n const maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(`Environment variable ${ENV_MAX_ATTEMPTS} mast be a number, got \"${value}\"`);\n }\n return maxAttempt;\n },\n configFileSelector: (profile) => {\n const value = profile[CONFIG_MAX_ATTEMPTS];\n if (!value)\n return undefined;\n const maxAttempt = parseInt(value);\n if (Number.isNaN(maxAttempt)) {\n throw new Error(`Shared config file entry ${CONFIG_MAX_ATTEMPTS} mast be a number, got \"${value}\"`);\n }\n return maxAttempt;\n },\n default: DEFAULT_MAX_ATTEMPTS,\n};\nexport const resolveRetryConfig = (input) => {\n const { retryStrategy } = input;\n const maxAttempts = normalizeProvider(input.maxAttempts ?? DEFAULT_MAX_ATTEMPTS);\n return {\n ...input,\n maxAttempts,\n retryStrategy: async () => {\n if (retryStrategy) {\n return retryStrategy;\n }\n const retryMode = await normalizeProvider(input.retryMode)();\n if (retryMode === RETRY_MODES.ADAPTIVE) {\n return new AdaptiveRetryStrategy(maxAttempts);\n }\n return new StandardRetryStrategy(maxAttempts);\n },\n };\n};\nexport const ENV_RETRY_MODE = \"AWS_RETRY_MODE\";\nexport const CONFIG_RETRY_MODE = \"retry_mode\";\nexport const NODE_RETRY_MODE_CONFIG_OPTIONS = {\n environmentVariableSelector: (env) => env[ENV_RETRY_MODE],\n configFileSelector: (profile) => profile[CONFIG_RETRY_MODE],\n default: DEFAULT_RETRY_MODE,\n};\n","export function resolveUserAgentConfig(input) {\n return {\n ...input,\n customUserAgent: typeof input.customUserAgent === \"string\" ? [[input.customUserAgent]] : input.customUserAgent,\n };\n}\n","import { getAwsRegionExtensionConfiguration, resolveAwsRegionExtensionConfiguration, } from \"@aws-sdk/region-config-resolver\";\nimport { getHttpHandlerExtensionConfiguration, resolveHttpHandlerRuntimeConfig } from \"@smithy/protocol-http\";\nimport { getDefaultExtensionConfiguration, resolveDefaultRuntimeConfig } from \"@smithy/smithy-client\";\nconst asPartial = (t) => t;\nexport const resolveRuntimeExtensions = (runtimeConfig, extensions) => {\n const extensionConfiguration = {\n ...asPartial(getAwsRegionExtensionConfiguration(runtimeConfig)),\n ...asPartial(getDefaultExtensionConfiguration(runtimeConfig)),\n ...asPartial(getHttpHandlerExtensionConfiguration(runtimeConfig)),\n };\n extensions.forEach((extension) => extension.configure(extensionConfiguration));\n return {\n ...runtimeConfig,\n ...resolveAwsRegionExtensionConfiguration(extensionConfiguration),\n ...resolveDefaultRuntimeConfig(extensionConfiguration),\n ...resolveHttpHandlerRuntimeConfig(extensionConfiguration),\n };\n};\n","export const resolveEventStreamSerdeConfig = (input) => ({\n ...input,\n eventStreamMarshaller: input.eventStreamSerdeProvider(input),\n});\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_AbortMultipartUploadCommand, se_AbortMultipartUploadCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class AbortMultipartUploadCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, AbortMultipartUploadCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"AbortMultipartUploadCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"AbortMultipartUpload\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_AbortMultipartUploadCommand(input, context);\n }\n deserialize(output, context) {\n return de_AbortMultipartUploadCommand(output, context);\n }\n}\n","import { getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { CopyObjectOutputFilterSensitiveLog, CopyObjectRequestFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_CopyObjectCommand, se_CopyObjectCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class CopyObjectCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, CopyObjectCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getThrow200ExceptionsPlugin(configuration));\n this.middlewareStack.use(getSsecPlugin(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"CopyObjectCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: CopyObjectRequestFilterSensitiveLog,\n outputFilterSensitiveLog: CopyObjectOutputFilterSensitiveLog,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"CopyObject\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_CopyObjectCommand(input, context);\n }\n deserialize(output, context) {\n return de_CopyObjectCommand(output, context);\n }\n}\n","export function locationConstraintMiddleware(options) {\n return (next) => async (args) => {\n const { CreateBucketConfiguration } = args.input;\n const region = await options.region();\n if (!CreateBucketConfiguration || !CreateBucketConfiguration.LocationConstraint) {\n args = {\n ...args,\n input: {\n ...args.input,\n CreateBucketConfiguration: region === \"us-east-1\" ? undefined : { LocationConstraint: region },\n },\n };\n }\n return next(args);\n };\n}\nexport const locationConstraintMiddlewareOptions = {\n step: \"initialize\",\n tags: [\"LOCATION_CONSTRAINT\", \"CREATE_BUCKET_CONFIGURATION\"],\n name: \"locationConstraintMiddleware\",\n override: true,\n};\nexport const getLocationConstraintPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.add(locationConstraintMiddleware(config), locationConstraintMiddlewareOptions);\n },\n});\n","import { getLocationConstraintPlugin } from \"@aws-sdk/middleware-location-constraint\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_CreateBucketCommand, se_CreateBucketCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class CreateBucketCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n DisableAccessPoints: { type: \"staticContextParams\", value: true },\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, CreateBucketCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getLocationConstraintPlugin(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"CreateBucketCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"CreateBucket\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_CreateBucketCommand(input, context);\n }\n deserialize(output, context) {\n return de_CreateBucketCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_DeleteBucketAnalyticsConfigurationCommand, se_DeleteBucketAnalyticsConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteBucketAnalyticsConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteBucketAnalyticsConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketAnalyticsConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"DeleteBucketAnalyticsConfiguration\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteBucketAnalyticsConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteBucketAnalyticsConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_DeleteBucketCommand, se_DeleteBucketCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteBucketCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteBucketCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"DeleteBucket\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteBucketCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteBucketCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_DeleteBucketCorsCommand, se_DeleteBucketCorsCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteBucketCorsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteBucketCorsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketCorsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"DeleteBucketCors\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteBucketCorsCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteBucketCorsCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_DeleteBucketEncryptionCommand, se_DeleteBucketEncryptionCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteBucketEncryptionCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteBucketEncryptionCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketEncryptionCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"DeleteBucketEncryption\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteBucketEncryptionCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteBucketEncryptionCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_DeleteBucketIntelligentTieringConfigurationCommand, se_DeleteBucketIntelligentTieringConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteBucketIntelligentTieringConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteBucketIntelligentTieringConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketIntelligentTieringConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"DeleteBucketIntelligentTieringConfiguration\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteBucketIntelligentTieringConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteBucketIntelligentTieringConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_DeleteBucketInventoryConfigurationCommand, se_DeleteBucketInventoryConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteBucketInventoryConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteBucketInventoryConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketInventoryConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"DeleteBucketInventoryConfiguration\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteBucketInventoryConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteBucketInventoryConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_DeleteBucketLifecycleCommand, se_DeleteBucketLifecycleCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteBucketLifecycleCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteBucketLifecycleCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketLifecycleCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"DeleteBucketLifecycle\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteBucketLifecycleCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteBucketLifecycleCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_DeleteBucketMetricsConfigurationCommand, se_DeleteBucketMetricsConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteBucketMetricsConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteBucketMetricsConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketMetricsConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"DeleteBucketMetricsConfiguration\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteBucketMetricsConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteBucketMetricsConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_DeleteBucketOwnershipControlsCommand, se_DeleteBucketOwnershipControlsCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteBucketOwnershipControlsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteBucketOwnershipControlsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketOwnershipControlsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"DeleteBucketOwnershipControls\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteBucketOwnershipControlsCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteBucketOwnershipControlsCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_DeleteBucketPolicyCommand, se_DeleteBucketPolicyCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteBucketPolicyCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteBucketPolicyCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketPolicyCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"DeleteBucketPolicy\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteBucketPolicyCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteBucketPolicyCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_DeleteBucketReplicationCommand, se_DeleteBucketReplicationCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteBucketReplicationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteBucketReplicationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketReplicationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"DeleteBucketReplication\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteBucketReplicationCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteBucketReplicationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_DeleteBucketTaggingCommand, se_DeleteBucketTaggingCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteBucketTaggingCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteBucketTaggingCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketTaggingCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"DeleteBucketTagging\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteBucketTaggingCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteBucketTaggingCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_DeleteBucketWebsiteCommand, se_DeleteBucketWebsiteCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteBucketWebsiteCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteBucketWebsiteCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteBucketWebsiteCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"DeleteBucketWebsite\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteBucketWebsiteCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteBucketWebsiteCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_DeleteObjectCommand, se_DeleteObjectCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteObjectCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteObjectCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteObjectCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"DeleteObject\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteObjectCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteObjectCommand(output, context);\n }\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_DeleteObjectsCommand, se_DeleteObjectsCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteObjectsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteObjectsCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteObjectsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"DeleteObjects\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteObjectsCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteObjectsCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_DeleteObjectTaggingCommand, se_DeleteObjectTaggingCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeleteObjectTaggingCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeleteObjectTaggingCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeleteObjectTaggingCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"DeleteObjectTagging\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeleteObjectTaggingCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeleteObjectTaggingCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_DeletePublicAccessBlockCommand, se_DeletePublicAccessBlockCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class DeletePublicAccessBlockCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, DeletePublicAccessBlockCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"DeletePublicAccessBlockCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"DeletePublicAccessBlock\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_DeletePublicAccessBlockCommand(input, context);\n }\n deserialize(output, context) {\n return de_DeletePublicAccessBlockCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_GetBucketAccelerateConfigurationCommand, se_GetBucketAccelerateConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketAccelerateConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketAccelerateConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketAccelerateConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"GetBucketAccelerateConfiguration\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketAccelerateConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketAccelerateConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_GetBucketAclCommand, se_GetBucketAclCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketAclCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketAclCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketAclCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"GetBucketAcl\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketAclCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketAclCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_GetBucketAnalyticsConfigurationCommand, se_GetBucketAnalyticsConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketAnalyticsConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketAnalyticsConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketAnalyticsConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"GetBucketAnalyticsConfiguration\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketAnalyticsConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketAnalyticsConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_GetBucketCorsCommand, se_GetBucketCorsCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketCorsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketCorsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketCorsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"GetBucketCors\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketCorsCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketCorsCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { GetBucketEncryptionOutputFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_GetBucketEncryptionCommand, se_GetBucketEncryptionCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketEncryptionCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketEncryptionCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketEncryptionCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: GetBucketEncryptionOutputFilterSensitiveLog,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"GetBucketEncryption\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketEncryptionCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketEncryptionCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_GetBucketIntelligentTieringConfigurationCommand, se_GetBucketIntelligentTieringConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketIntelligentTieringConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketIntelligentTieringConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketIntelligentTieringConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"GetBucketIntelligentTieringConfiguration\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketIntelligentTieringConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketIntelligentTieringConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { GetBucketInventoryConfigurationOutputFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_GetBucketInventoryConfigurationCommand, se_GetBucketInventoryConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketInventoryConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketInventoryConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketInventoryConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: GetBucketInventoryConfigurationOutputFilterSensitiveLog,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"GetBucketInventoryConfiguration\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketInventoryConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketInventoryConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_GetBucketLifecycleConfigurationCommand, se_GetBucketLifecycleConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketLifecycleConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketLifecycleConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketLifecycleConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"GetBucketLifecycleConfiguration\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketLifecycleConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketLifecycleConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_GetBucketLocationCommand, se_GetBucketLocationCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketLocationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketLocationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketLocationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"GetBucketLocation\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketLocationCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketLocationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_GetBucketLoggingCommand, se_GetBucketLoggingCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketLoggingCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketLoggingCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketLoggingCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"GetBucketLogging\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketLoggingCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketLoggingCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_GetBucketMetricsConfigurationCommand, se_GetBucketMetricsConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketMetricsConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketMetricsConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketMetricsConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"GetBucketMetricsConfiguration\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketMetricsConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketMetricsConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_GetBucketNotificationConfigurationCommand, se_GetBucketNotificationConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketNotificationConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketNotificationConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketNotificationConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"GetBucketNotificationConfiguration\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketNotificationConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketNotificationConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_GetBucketOwnershipControlsCommand, se_GetBucketOwnershipControlsCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketOwnershipControlsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketOwnershipControlsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketOwnershipControlsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"GetBucketOwnershipControls\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketOwnershipControlsCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketOwnershipControlsCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_GetBucketPolicyCommand, se_GetBucketPolicyCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketPolicyCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketPolicyCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketPolicyCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"GetBucketPolicy\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketPolicyCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketPolicyCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_GetBucketPolicyStatusCommand, se_GetBucketPolicyStatusCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketPolicyStatusCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketPolicyStatusCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketPolicyStatusCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"GetBucketPolicyStatus\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketPolicyStatusCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketPolicyStatusCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_GetBucketReplicationCommand, se_GetBucketReplicationCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketReplicationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketReplicationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketReplicationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"GetBucketReplication\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketReplicationCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketReplicationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_GetBucketRequestPaymentCommand, se_GetBucketRequestPaymentCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketRequestPaymentCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketRequestPaymentCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketRequestPaymentCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"GetBucketRequestPayment\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketRequestPaymentCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketRequestPaymentCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_GetBucketTaggingCommand, se_GetBucketTaggingCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketTaggingCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketTaggingCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketTaggingCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"GetBucketTagging\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketTaggingCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketTaggingCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_GetBucketVersioningCommand, se_GetBucketVersioningCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketVersioningCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketVersioningCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketVersioningCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"GetBucketVersioning\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketVersioningCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketVersioningCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_GetBucketWebsiteCommand, se_GetBucketWebsiteCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetBucketWebsiteCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetBucketWebsiteCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetBucketWebsiteCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"GetBucketWebsite\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetBucketWebsiteCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetBucketWebsiteCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_GetObjectAclCommand, se_GetObjectAclCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetObjectAclCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetObjectAclCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetObjectAclCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"GetObjectAcl\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetObjectAclCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetObjectAclCommand(output, context);\n }\n}\n","import { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { GetObjectAttributesRequestFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_GetObjectAttributesCommand, se_GetObjectAttributesCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetObjectAttributesCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetObjectAttributesCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getSsecPlugin(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetObjectAttributesCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: GetObjectAttributesRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"GetObjectAttributes\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetObjectAttributesCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetObjectAttributesCommand(output, context);\n }\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { GetObjectOutputFilterSensitiveLog, GetObjectRequestFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_GetObjectCommand, se_GetObjectCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetObjectCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetObjectCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getSsecPlugin(configuration));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestChecksumRequired: false,\n requestValidationModeMember: \"ChecksumMode\",\n responseAlgorithms: [\"CRC32\", \"CRC32C\", \"SHA256\", \"SHA1\"],\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetObjectCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: GetObjectRequestFilterSensitiveLog,\n outputFilterSensitiveLog: GetObjectOutputFilterSensitiveLog,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"GetObject\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetObjectCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetObjectCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_GetObjectLegalHoldCommand, se_GetObjectLegalHoldCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetObjectLegalHoldCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetObjectLegalHoldCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetObjectLegalHoldCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"GetObjectLegalHold\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetObjectLegalHoldCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetObjectLegalHoldCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_GetObjectLockConfigurationCommand, se_GetObjectLockConfigurationCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetObjectLockConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetObjectLockConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetObjectLockConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"GetObjectLockConfiguration\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetObjectLockConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetObjectLockConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_GetObjectRetentionCommand, se_GetObjectRetentionCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetObjectRetentionCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetObjectRetentionCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetObjectRetentionCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"GetObjectRetention\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetObjectRetentionCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetObjectRetentionCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_GetObjectTaggingCommand, se_GetObjectTaggingCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetObjectTaggingCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetObjectTaggingCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetObjectTaggingCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"GetObjectTagging\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetObjectTaggingCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetObjectTaggingCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { GetObjectTorrentOutputFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_GetObjectTorrentCommand, se_GetObjectTorrentCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetObjectTorrentCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetObjectTorrentCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetObjectTorrentCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: GetObjectTorrentOutputFilterSensitiveLog,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"GetObjectTorrent\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetObjectTorrentCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetObjectTorrentCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_GetPublicAccessBlockCommand, se_GetPublicAccessBlockCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class GetPublicAccessBlockCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, GetPublicAccessBlockCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"GetPublicAccessBlockCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"GetPublicAccessBlock\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_GetPublicAccessBlockCommand(input, context);\n }\n deserialize(output, context) {\n return de_GetPublicAccessBlockCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_HeadBucketCommand, se_HeadBucketCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class HeadBucketCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, HeadBucketCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"HeadBucketCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"HeadBucket\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_HeadBucketCommand(input, context);\n }\n deserialize(output, context) {\n return de_HeadBucketCommand(output, context);\n }\n}\n","import { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { HeadObjectOutputFilterSensitiveLog, HeadObjectRequestFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_HeadObjectCommand, se_HeadObjectCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class HeadObjectCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, HeadObjectCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getSsecPlugin(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"HeadObjectCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: HeadObjectRequestFilterSensitiveLog,\n outputFilterSensitiveLog: HeadObjectOutputFilterSensitiveLog,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"HeadObject\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_HeadObjectCommand(input, context);\n }\n deserialize(output, context) {\n return de_HeadObjectCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_ListBucketAnalyticsConfigurationsCommand, se_ListBucketAnalyticsConfigurationsCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class ListBucketAnalyticsConfigurationsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, ListBucketAnalyticsConfigurationsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListBucketAnalyticsConfigurationsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"ListBucketAnalyticsConfigurations\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_ListBucketAnalyticsConfigurationsCommand(input, context);\n }\n deserialize(output, context) {\n return de_ListBucketAnalyticsConfigurationsCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_ListBucketIntelligentTieringConfigurationsCommand, se_ListBucketIntelligentTieringConfigurationsCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class ListBucketIntelligentTieringConfigurationsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, ListBucketIntelligentTieringConfigurationsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListBucketIntelligentTieringConfigurationsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"ListBucketIntelligentTieringConfigurations\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_ListBucketIntelligentTieringConfigurationsCommand(input, context);\n }\n deserialize(output, context) {\n return de_ListBucketIntelligentTieringConfigurationsCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { ListBucketInventoryConfigurationsOutputFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_ListBucketInventoryConfigurationsCommand, se_ListBucketInventoryConfigurationsCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class ListBucketInventoryConfigurationsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, ListBucketInventoryConfigurationsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListBucketInventoryConfigurationsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: ListBucketInventoryConfigurationsOutputFilterSensitiveLog,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"ListBucketInventoryConfigurations\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_ListBucketInventoryConfigurationsCommand(input, context);\n }\n deserialize(output, context) {\n return de_ListBucketInventoryConfigurationsCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_ListBucketMetricsConfigurationsCommand, se_ListBucketMetricsConfigurationsCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class ListBucketMetricsConfigurationsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, ListBucketMetricsConfigurationsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListBucketMetricsConfigurationsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"ListBucketMetricsConfigurations\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_ListBucketMetricsConfigurationsCommand(input, context);\n }\n deserialize(output, context) {\n return de_ListBucketMetricsConfigurationsCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_ListBucketsCommand, se_ListBucketsCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class ListBucketsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, ListBucketsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListBucketsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"ListBuckets\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_ListBucketsCommand(input, context);\n }\n deserialize(output, context) {\n return de_ListBucketsCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_ListMultipartUploadsCommand, se_ListMultipartUploadsCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class ListMultipartUploadsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, ListMultipartUploadsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListMultipartUploadsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"ListMultipartUploads\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_ListMultipartUploadsCommand(input, context);\n }\n deserialize(output, context) {\n return de_ListMultipartUploadsCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_ListObjectsCommand, se_ListObjectsCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class ListObjectsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, ListObjectsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListObjectsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"ListObjects\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_ListObjectsCommand(input, context);\n }\n deserialize(output, context) {\n return de_ListObjectsCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_ListObjectsV2Command, se_ListObjectsV2Command } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class ListObjectsV2Command extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, ListObjectsV2Command.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListObjectsV2Command\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"ListObjectsV2\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_ListObjectsV2Command(input, context);\n }\n deserialize(output, context) {\n return de_ListObjectsV2Command(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_ListObjectVersionsCommand, se_ListObjectVersionsCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class ListObjectVersionsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, ListObjectVersionsCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListObjectVersionsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"ListObjectVersions\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_ListObjectVersionsCommand(input, context);\n }\n deserialize(output, context) {\n return de_ListObjectVersionsCommand(output, context);\n }\n}\n","import { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { ListPartsRequestFilterSensitiveLog } from \"../models/models_0\";\nimport { de_ListPartsCommand, se_ListPartsCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class ListPartsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, ListPartsCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getSsecPlugin(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"ListPartsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: ListPartsRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"ListParts\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_ListPartsCommand(input, context);\n }\n deserialize(output, context) {\n return de_ListPartsCommand(output, context);\n }\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_PutBucketAccelerateConfigurationCommand, se_PutBucketAccelerateConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketAccelerateConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketAccelerateConfigurationCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: false,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketAccelerateConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"PutBucketAccelerateConfiguration\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketAccelerateConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketAccelerateConfigurationCommand(output, context);\n }\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_PutBucketAclCommand, se_PutBucketAclCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketAclCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketAclCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketAclCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"PutBucketAcl\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketAclCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketAclCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_PutBucketAnalyticsConfigurationCommand, se_PutBucketAnalyticsConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketAnalyticsConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketAnalyticsConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketAnalyticsConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"PutBucketAnalyticsConfiguration\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketAnalyticsConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketAnalyticsConfigurationCommand(output, context);\n }\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_PutBucketCorsCommand, se_PutBucketCorsCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketCorsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketCorsCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketCorsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"PutBucketCors\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketCorsCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketCorsCommand(output, context);\n }\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { PutBucketEncryptionRequestFilterSensitiveLog } from \"../models/models_0\";\nimport { de_PutBucketEncryptionCommand, se_PutBucketEncryptionCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketEncryptionCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketEncryptionCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketEncryptionCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: PutBucketEncryptionRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"PutBucketEncryption\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketEncryptionCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketEncryptionCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_PutBucketIntelligentTieringConfigurationCommand, se_PutBucketIntelligentTieringConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketIntelligentTieringConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketIntelligentTieringConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketIntelligentTieringConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"PutBucketIntelligentTieringConfiguration\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketIntelligentTieringConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketIntelligentTieringConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { PutBucketInventoryConfigurationRequestFilterSensitiveLog, } from \"../models/models_0\";\nimport { de_PutBucketInventoryConfigurationCommand, se_PutBucketInventoryConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketInventoryConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketInventoryConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketInventoryConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: PutBucketInventoryConfigurationRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"PutBucketInventoryConfiguration\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketInventoryConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketInventoryConfigurationCommand(output, context);\n }\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_PutBucketLifecycleConfigurationCommand, se_PutBucketLifecycleConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketLifecycleConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketLifecycleConfigurationCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketLifecycleConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"PutBucketLifecycleConfiguration\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketLifecycleConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketLifecycleConfigurationCommand(output, context);\n }\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_PutBucketLoggingCommand, se_PutBucketLoggingCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketLoggingCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketLoggingCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketLoggingCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"PutBucketLogging\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketLoggingCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketLoggingCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_PutBucketMetricsConfigurationCommand, se_PutBucketMetricsConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketMetricsConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketMetricsConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketMetricsConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"PutBucketMetricsConfiguration\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketMetricsConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketMetricsConfigurationCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_PutBucketNotificationConfigurationCommand, se_PutBucketNotificationConfigurationCommand, } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketNotificationConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketNotificationConfigurationCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketNotificationConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"PutBucketNotificationConfiguration\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketNotificationConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketNotificationConfigurationCommand(output, context);\n }\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_PutBucketOwnershipControlsCommand, se_PutBucketOwnershipControlsCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketOwnershipControlsCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketOwnershipControlsCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, { input: this.input, requestChecksumRequired: true }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketOwnershipControlsCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"PutBucketOwnershipControls\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketOwnershipControlsCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketOwnershipControlsCommand(output, context);\n }\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_PutBucketPolicyCommand, se_PutBucketPolicyCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketPolicyCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketPolicyCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketPolicyCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"PutBucketPolicy\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketPolicyCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketPolicyCommand(output, context);\n }\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_PutBucketReplicationCommand, se_PutBucketReplicationCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketReplicationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketReplicationCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketReplicationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"PutBucketReplication\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketReplicationCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketReplicationCommand(output, context);\n }\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_PutBucketRequestPaymentCommand, se_PutBucketRequestPaymentCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketRequestPaymentCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketRequestPaymentCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketRequestPaymentCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"PutBucketRequestPayment\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketRequestPaymentCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketRequestPaymentCommand(output, context);\n }\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_PutBucketTaggingCommand, se_PutBucketTaggingCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketTaggingCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketTaggingCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketTaggingCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"PutBucketTagging\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketTaggingCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketTaggingCommand(output, context);\n }\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_PutBucketVersioningCommand, se_PutBucketVersioningCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketVersioningCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketVersioningCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketVersioningCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"PutBucketVersioning\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketVersioningCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketVersioningCommand(output, context);\n }\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_PutBucketWebsiteCommand, se_PutBucketWebsiteCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutBucketWebsiteCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutBucketWebsiteCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutBucketWebsiteCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"PutBucketWebsite\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutBucketWebsiteCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutBucketWebsiteCommand(output, context);\n }\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_PutObjectAclCommand, se_PutObjectAclCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutObjectAclCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutObjectAclCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutObjectAclCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"PutObjectAcl\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutObjectAclCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutObjectAclCommand(output, context);\n }\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_PutObjectLegalHoldCommand, se_PutObjectLegalHoldCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutObjectLegalHoldCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutObjectLegalHoldCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutObjectLegalHoldCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"PutObjectLegalHold\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutObjectLegalHoldCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutObjectLegalHoldCommand(output, context);\n }\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_PutObjectLockConfigurationCommand, se_PutObjectLockConfigurationCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutObjectLockConfigurationCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutObjectLockConfigurationCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutObjectLockConfigurationCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"PutObjectLockConfiguration\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutObjectLockConfigurationCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutObjectLockConfigurationCommand(output, context);\n }\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_PutObjectRetentionCommand, se_PutObjectRetentionCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutObjectRetentionCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutObjectRetentionCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutObjectRetentionCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"PutObjectRetention\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutObjectRetentionCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutObjectRetentionCommand(output, context);\n }\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { de_PutPublicAccessBlockCommand, se_PutPublicAccessBlockCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class PutPublicAccessBlockCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, PutPublicAccessBlockCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: true,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"PutPublicAccessBlockCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: (_) => _,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"PutPublicAccessBlock\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_PutPublicAccessBlockCommand(input, context);\n }\n deserialize(output, context) {\n return de_PutPublicAccessBlockCommand(output, context);\n }\n}\n","import { getFlexibleChecksumsPlugin } from \"@aws-sdk/middleware-flexible-checksums\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { RestoreObjectRequestFilterSensitiveLog } from \"../models/models_1\";\nimport { de_RestoreObjectCommand, se_RestoreObjectCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class RestoreObjectCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, RestoreObjectCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getFlexibleChecksumsPlugin(configuration, {\n input: this.input,\n requestAlgorithmMember: \"ChecksumAlgorithm\",\n requestChecksumRequired: false,\n }));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"RestoreObjectCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: RestoreObjectRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"RestoreObject\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_RestoreObjectCommand(input, context);\n }\n deserialize(output, context) {\n return de_RestoreObjectCommand(output, context);\n }\n}\n","import { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { SelectObjectContentOutputFilterSensitiveLog, SelectObjectContentRequestFilterSensitiveLog, } from \"../models/models_1\";\nimport { de_SelectObjectContentCommand, se_SelectObjectContentCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class SelectObjectContentCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, SelectObjectContentCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getSsecPlugin(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"SelectObjectContentCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: SelectObjectContentRequestFilterSensitiveLog,\n outputFilterSensitiveLog: SelectObjectContentOutputFilterSensitiveLog,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"SelectObjectContent\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_SelectObjectContentCommand(input, context);\n }\n deserialize(output, context) {\n return de_SelectObjectContentCommand(output, context);\n }\n}\n","import { getThrow200ExceptionsPlugin } from \"@aws-sdk/middleware-sdk-s3\";\nimport { getSsecPlugin } from \"@aws-sdk/middleware-ssec\";\nimport { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { UploadPartCopyOutputFilterSensitiveLog, UploadPartCopyRequestFilterSensitiveLog, } from \"../models/models_1\";\nimport { de_UploadPartCopyCommand, se_UploadPartCopyCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class UploadPartCopyCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n Bucket: { type: \"contextParams\", name: \"Bucket\" },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, UploadPartCopyCommand.getEndpointParameterInstructions()));\n this.middlewareStack.use(getThrow200ExceptionsPlugin(configuration));\n this.middlewareStack.use(getSsecPlugin(configuration));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"UploadPartCopyCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: UploadPartCopyRequestFilterSensitiveLog,\n outputFilterSensitiveLog: UploadPartCopyOutputFilterSensitiveLog,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"UploadPartCopy\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_UploadPartCopyCommand(input, context);\n }\n deserialize(output, context) {\n return de_UploadPartCopyCommand(output, context);\n }\n}\n","import { getEndpointPlugin } from \"@smithy/middleware-endpoint\";\nimport { getSerdePlugin } from \"@smithy/middleware-serde\";\nimport { Command as $Command } from \"@smithy/smithy-client\";\nimport { SMITHY_CONTEXT_KEY, } from \"@smithy/types\";\nimport { WriteGetObjectResponseRequestFilterSensitiveLog } from \"../models/models_1\";\nimport { de_WriteGetObjectResponseCommand, se_WriteGetObjectResponseCommand } from \"../protocols/Aws_restXml\";\nexport { $Command };\nexport class WriteGetObjectResponseCommand extends $Command {\n static getEndpointParameterInstructions() {\n return {\n UseObjectLambdaEndpoint: { type: \"staticContextParams\", value: true },\n ForcePathStyle: { type: \"clientContextParams\", name: \"forcePathStyle\" },\n UseArnRegion: { type: \"clientContextParams\", name: \"useArnRegion\" },\n DisableMultiRegionAccessPoints: { type: \"clientContextParams\", name: \"disableMultiregionAccessPoints\" },\n Accelerate: { type: \"clientContextParams\", name: \"useAccelerateEndpoint\" },\n UseGlobalEndpoint: { type: \"builtInParams\", name: \"useGlobalEndpoint\" },\n UseFIPS: { type: \"builtInParams\", name: \"useFipsEndpoint\" },\n Endpoint: { type: \"builtInParams\", name: \"endpoint\" },\n Region: { type: \"builtInParams\", name: \"region\" },\n UseDualStack: { type: \"builtInParams\", name: \"useDualstackEndpoint\" },\n };\n }\n constructor(input) {\n super();\n this.input = input;\n }\n resolveMiddleware(clientStack, configuration, options) {\n this.middlewareStack.use(getSerdePlugin(configuration, this.serialize, this.deserialize));\n this.middlewareStack.use(getEndpointPlugin(configuration, WriteGetObjectResponseCommand.getEndpointParameterInstructions()));\n const stack = clientStack.concat(this.middlewareStack);\n const { logger } = configuration;\n const clientName = \"S3Client\";\n const commandName = \"WriteGetObjectResponseCommand\";\n const handlerExecutionContext = {\n logger,\n clientName,\n commandName,\n inputFilterSensitiveLog: WriteGetObjectResponseRequestFilterSensitiveLog,\n outputFilterSensitiveLog: (_) => _,\n [SMITHY_CONTEXT_KEY]: {\n service: \"AmazonS3\",\n operation: \"WriteGetObjectResponse\",\n },\n };\n const { requestHandler } = configuration;\n return stack.resolve((request) => requestHandler.handle(request.request, options || {}), handlerExecutionContext);\n }\n serialize(input, context) {\n return se_WriteGetObjectResponseCommand(input, context);\n }\n deserialize(output, context) {\n return de_WriteGetObjectResponseCommand(output, context);\n }\n}\n","import { createAggregatedClient } from \"@smithy/smithy-client\";\nimport { AbortMultipartUploadCommand, } from \"./commands/AbortMultipartUploadCommand\";\nimport { CompleteMultipartUploadCommand, } from \"./commands/CompleteMultipartUploadCommand\";\nimport { CopyObjectCommand } from \"./commands/CopyObjectCommand\";\nimport { CreateBucketCommand, } from \"./commands/CreateBucketCommand\";\nimport { CreateMultipartUploadCommand, } from \"./commands/CreateMultipartUploadCommand\";\nimport { DeleteBucketAnalyticsConfigurationCommand, } from \"./commands/DeleteBucketAnalyticsConfigurationCommand\";\nimport { DeleteBucketCommand, } from \"./commands/DeleteBucketCommand\";\nimport { DeleteBucketCorsCommand, } from \"./commands/DeleteBucketCorsCommand\";\nimport { DeleteBucketEncryptionCommand, } from \"./commands/DeleteBucketEncryptionCommand\";\nimport { DeleteBucketIntelligentTieringConfigurationCommand, } from \"./commands/DeleteBucketIntelligentTieringConfigurationCommand\";\nimport { DeleteBucketInventoryConfigurationCommand, } from \"./commands/DeleteBucketInventoryConfigurationCommand\";\nimport { DeleteBucketLifecycleCommand, } from \"./commands/DeleteBucketLifecycleCommand\";\nimport { DeleteBucketMetricsConfigurationCommand, } from \"./commands/DeleteBucketMetricsConfigurationCommand\";\nimport { DeleteBucketOwnershipControlsCommand, } from \"./commands/DeleteBucketOwnershipControlsCommand\";\nimport { DeleteBucketPolicyCommand, } from \"./commands/DeleteBucketPolicyCommand\";\nimport { DeleteBucketReplicationCommand, } from \"./commands/DeleteBucketReplicationCommand\";\nimport { DeleteBucketTaggingCommand, } from \"./commands/DeleteBucketTaggingCommand\";\nimport { DeleteBucketWebsiteCommand, } from \"./commands/DeleteBucketWebsiteCommand\";\nimport { DeleteObjectCommand, } from \"./commands/DeleteObjectCommand\";\nimport { DeleteObjectsCommand, } from \"./commands/DeleteObjectsCommand\";\nimport { DeleteObjectTaggingCommand, } from \"./commands/DeleteObjectTaggingCommand\";\nimport { DeletePublicAccessBlockCommand, } from \"./commands/DeletePublicAccessBlockCommand\";\nimport { GetBucketAccelerateConfigurationCommand, } from \"./commands/GetBucketAccelerateConfigurationCommand\";\nimport { GetBucketAclCommand, } from \"./commands/GetBucketAclCommand\";\nimport { GetBucketAnalyticsConfigurationCommand, } from \"./commands/GetBucketAnalyticsConfigurationCommand\";\nimport { GetBucketCorsCommand, } from \"./commands/GetBucketCorsCommand\";\nimport { GetBucketEncryptionCommand, } from \"./commands/GetBucketEncryptionCommand\";\nimport { GetBucketIntelligentTieringConfigurationCommand, } from \"./commands/GetBucketIntelligentTieringConfigurationCommand\";\nimport { GetBucketInventoryConfigurationCommand, } from \"./commands/GetBucketInventoryConfigurationCommand\";\nimport { GetBucketLifecycleConfigurationCommand, } from \"./commands/GetBucketLifecycleConfigurationCommand\";\nimport { GetBucketLocationCommand, } from \"./commands/GetBucketLocationCommand\";\nimport { GetBucketLoggingCommand, } from \"./commands/GetBucketLoggingCommand\";\nimport { GetBucketMetricsConfigurationCommand, } from \"./commands/GetBucketMetricsConfigurationCommand\";\nimport { GetBucketNotificationConfigurationCommand, } from \"./commands/GetBucketNotificationConfigurationCommand\";\nimport { GetBucketOwnershipControlsCommand, } from \"./commands/GetBucketOwnershipControlsCommand\";\nimport { GetBucketPolicyCommand, } from \"./commands/GetBucketPolicyCommand\";\nimport { GetBucketPolicyStatusCommand, } from \"./commands/GetBucketPolicyStatusCommand\";\nimport { GetBucketReplicationCommand, } from \"./commands/GetBucketReplicationCommand\";\nimport { GetBucketRequestPaymentCommand, } from \"./commands/GetBucketRequestPaymentCommand\";\nimport { GetBucketTaggingCommand, } from \"./commands/GetBucketTaggingCommand\";\nimport { GetBucketVersioningCommand, } from \"./commands/GetBucketVersioningCommand\";\nimport { GetBucketWebsiteCommand, } from \"./commands/GetBucketWebsiteCommand\";\nimport { GetObjectAclCommand, } from \"./commands/GetObjectAclCommand\";\nimport { GetObjectAttributesCommand, } from \"./commands/GetObjectAttributesCommand\";\nimport { GetObjectCommand } from \"./commands/GetObjectCommand\";\nimport { GetObjectLegalHoldCommand, } from \"./commands/GetObjectLegalHoldCommand\";\nimport { GetObjectLockConfigurationCommand, } from \"./commands/GetObjectLockConfigurationCommand\";\nimport { GetObjectRetentionCommand, } from \"./commands/GetObjectRetentionCommand\";\nimport { GetObjectTaggingCommand, } from \"./commands/GetObjectTaggingCommand\";\nimport { GetObjectTorrentCommand, } from \"./commands/GetObjectTorrentCommand\";\nimport { GetPublicAccessBlockCommand, } from \"./commands/GetPublicAccessBlockCommand\";\nimport { HeadBucketCommand } from \"./commands/HeadBucketCommand\";\nimport { HeadObjectCommand } from \"./commands/HeadObjectCommand\";\nimport { ListBucketAnalyticsConfigurationsCommand, } from \"./commands/ListBucketAnalyticsConfigurationsCommand\";\nimport { ListBucketIntelligentTieringConfigurationsCommand, } from \"./commands/ListBucketIntelligentTieringConfigurationsCommand\";\nimport { ListBucketInventoryConfigurationsCommand, } from \"./commands/ListBucketInventoryConfigurationsCommand\";\nimport { ListBucketMetricsConfigurationsCommand, } from \"./commands/ListBucketMetricsConfigurationsCommand\";\nimport { ListBucketsCommand } from \"./commands/ListBucketsCommand\";\nimport { ListMultipartUploadsCommand, } from \"./commands/ListMultipartUploadsCommand\";\nimport { ListObjectsCommand } from \"./commands/ListObjectsCommand\";\nimport { ListObjectsV2Command, } from \"./commands/ListObjectsV2Command\";\nimport { ListObjectVersionsCommand, } from \"./commands/ListObjectVersionsCommand\";\nimport { ListPartsCommand } from \"./commands/ListPartsCommand\";\nimport { PutBucketAccelerateConfigurationCommand, } from \"./commands/PutBucketAccelerateConfigurationCommand\";\nimport { PutBucketAclCommand, } from \"./commands/PutBucketAclCommand\";\nimport { PutBucketAnalyticsConfigurationCommand, } from \"./commands/PutBucketAnalyticsConfigurationCommand\";\nimport { PutBucketCorsCommand, } from \"./commands/PutBucketCorsCommand\";\nimport { PutBucketEncryptionCommand, } from \"./commands/PutBucketEncryptionCommand\";\nimport { PutBucketIntelligentTieringConfigurationCommand, } from \"./commands/PutBucketIntelligentTieringConfigurationCommand\";\nimport { PutBucketInventoryConfigurationCommand, } from \"./commands/PutBucketInventoryConfigurationCommand\";\nimport { PutBucketLifecycleConfigurationCommand, } from \"./commands/PutBucketLifecycleConfigurationCommand\";\nimport { PutBucketLoggingCommand, } from \"./commands/PutBucketLoggingCommand\";\nimport { PutBucketMetricsConfigurationCommand, } from \"./commands/PutBucketMetricsConfigurationCommand\";\nimport { PutBucketNotificationConfigurationCommand, } from \"./commands/PutBucketNotificationConfigurationCommand\";\nimport { PutBucketOwnershipControlsCommand, } from \"./commands/PutBucketOwnershipControlsCommand\";\nimport { PutBucketPolicyCommand, } from \"./commands/PutBucketPolicyCommand\";\nimport { PutBucketReplicationCommand, } from \"./commands/PutBucketReplicationCommand\";\nimport { PutBucketRequestPaymentCommand, } from \"./commands/PutBucketRequestPaymentCommand\";\nimport { PutBucketTaggingCommand, } from \"./commands/PutBucketTaggingCommand\";\nimport { PutBucketVersioningCommand, } from \"./commands/PutBucketVersioningCommand\";\nimport { PutBucketWebsiteCommand, } from \"./commands/PutBucketWebsiteCommand\";\nimport { PutObjectAclCommand, } from \"./commands/PutObjectAclCommand\";\nimport { PutObjectCommand } from \"./commands/PutObjectCommand\";\nimport { PutObjectLegalHoldCommand, } from \"./commands/PutObjectLegalHoldCommand\";\nimport { PutObjectLockConfigurationCommand, } from \"./commands/PutObjectLockConfigurationCommand\";\nimport { PutObjectRetentionCommand, } from \"./commands/PutObjectRetentionCommand\";\nimport { PutObjectTaggingCommand, } from \"./commands/PutObjectTaggingCommand\";\nimport { PutPublicAccessBlockCommand, } from \"./commands/PutPublicAccessBlockCommand\";\nimport { RestoreObjectCommand, } from \"./commands/RestoreObjectCommand\";\nimport { SelectObjectContentCommand, } from \"./commands/SelectObjectContentCommand\";\nimport { UploadPartCommand } from \"./commands/UploadPartCommand\";\nimport { UploadPartCopyCommand, } from \"./commands/UploadPartCopyCommand\";\nimport { WriteGetObjectResponseCommand, } from \"./commands/WriteGetObjectResponseCommand\";\nimport { S3Client } from \"./S3Client\";\nconst commands = {\n AbortMultipartUploadCommand,\n CompleteMultipartUploadCommand,\n CopyObjectCommand,\n CreateBucketCommand,\n CreateMultipartUploadCommand,\n DeleteBucketCommand,\n DeleteBucketAnalyticsConfigurationCommand,\n DeleteBucketCorsCommand,\n DeleteBucketEncryptionCommand,\n DeleteBucketIntelligentTieringConfigurationCommand,\n DeleteBucketInventoryConfigurationCommand,\n DeleteBucketLifecycleCommand,\n DeleteBucketMetricsConfigurationCommand,\n DeleteBucketOwnershipControlsCommand,\n DeleteBucketPolicyCommand,\n DeleteBucketReplicationCommand,\n DeleteBucketTaggingCommand,\n DeleteBucketWebsiteCommand,\n DeleteObjectCommand,\n DeleteObjectsCommand,\n DeleteObjectTaggingCommand,\n DeletePublicAccessBlockCommand,\n GetBucketAccelerateConfigurationCommand,\n GetBucketAclCommand,\n GetBucketAnalyticsConfigurationCommand,\n GetBucketCorsCommand,\n GetBucketEncryptionCommand,\n GetBucketIntelligentTieringConfigurationCommand,\n GetBucketInventoryConfigurationCommand,\n GetBucketLifecycleConfigurationCommand,\n GetBucketLocationCommand,\n GetBucketLoggingCommand,\n GetBucketMetricsConfigurationCommand,\n GetBucketNotificationConfigurationCommand,\n GetBucketOwnershipControlsCommand,\n GetBucketPolicyCommand,\n GetBucketPolicyStatusCommand,\n GetBucketReplicationCommand,\n GetBucketRequestPaymentCommand,\n GetBucketTaggingCommand,\n GetBucketVersioningCommand,\n GetBucketWebsiteCommand,\n GetObjectCommand,\n GetObjectAclCommand,\n GetObjectAttributesCommand,\n GetObjectLegalHoldCommand,\n GetObjectLockConfigurationCommand,\n GetObjectRetentionCommand,\n GetObjectTaggingCommand,\n GetObjectTorrentCommand,\n GetPublicAccessBlockCommand,\n HeadBucketCommand,\n HeadObjectCommand,\n ListBucketAnalyticsConfigurationsCommand,\n ListBucketIntelligentTieringConfigurationsCommand,\n ListBucketInventoryConfigurationsCommand,\n ListBucketMetricsConfigurationsCommand,\n ListBucketsCommand,\n ListMultipartUploadsCommand,\n ListObjectsCommand,\n ListObjectsV2Command,\n ListObjectVersionsCommand,\n ListPartsCommand,\n PutBucketAccelerateConfigurationCommand,\n PutBucketAclCommand,\n PutBucketAnalyticsConfigurationCommand,\n PutBucketCorsCommand,\n PutBucketEncryptionCommand,\n PutBucketIntelligentTieringConfigurationCommand,\n PutBucketInventoryConfigurationCommand,\n PutBucketLifecycleConfigurationCommand,\n PutBucketLoggingCommand,\n PutBucketMetricsConfigurationCommand,\n PutBucketNotificationConfigurationCommand,\n PutBucketOwnershipControlsCommand,\n PutBucketPolicyCommand,\n PutBucketReplicationCommand,\n PutBucketRequestPaymentCommand,\n PutBucketTaggingCommand,\n PutBucketVersioningCommand,\n PutBucketWebsiteCommand,\n PutObjectCommand,\n PutObjectAclCommand,\n PutObjectLegalHoldCommand,\n PutObjectLockConfigurationCommand,\n PutObjectRetentionCommand,\n PutObjectTaggingCommand,\n PutPublicAccessBlockCommand,\n RestoreObjectCommand,\n SelectObjectContentCommand,\n UploadPartCommand,\n UploadPartCopyCommand,\n WriteGetObjectResponseCommand,\n};\nexport class S3 extends S3Client {\n}\ncreateAggregatedClient(commands, S3);\n","import { ListObjectsV2Command, } from \"../commands/ListObjectsV2Command\";\nimport { S3Client } from \"../S3Client\";\nconst makePagedClientRequest = async (client, input, ...args) => {\n return await client.send(new ListObjectsV2Command(input), ...args);\n};\nexport async function* paginateListObjectsV2(config, input, ...additionalArguments) {\n let token = config.startingToken || undefined;\n let hasNext = true;\n let page;\n while (hasNext) {\n input.ContinuationToken = token;\n input[\"MaxKeys\"] = config.pageSize;\n if (config.client instanceof S3Client) {\n page = await makePagedClientRequest(config.client, input, ...additionalArguments);\n }\n else {\n throw new Error(\"Invalid client, expected S3 | S3Client\");\n }\n yield page;\n const prevToken = token;\n token = page.NextContinuationToken;\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n}\n","import { ListPartsCommand } from \"../commands/ListPartsCommand\";\nimport { S3Client } from \"../S3Client\";\nconst makePagedClientRequest = async (client, input, ...args) => {\n return await client.send(new ListPartsCommand(input), ...args);\n};\nexport async function* paginateListParts(config, input, ...additionalArguments) {\n let token = config.startingToken || undefined;\n let hasNext = true;\n let page;\n while (hasNext) {\n input.PartNumberMarker = token;\n input[\"MaxParts\"] = config.pageSize;\n if (config.client instanceof S3Client) {\n page = await makePagedClientRequest(config.client, input, ...additionalArguments);\n }\n else {\n throw new Error(\"Invalid client, expected S3 | S3Client\");\n }\n yield page;\n const prevToken = token;\n token = page.NextPartNumberMarker;\n hasNext = !!(token && (!config.stopOnSameToken || token !== prevToken));\n }\n return undefined;\n}\n","export const sleep = (seconds) => {\n return new Promise((resolve) => setTimeout(resolve, seconds * 1000));\n};\n","export const waiterServiceDefaults = {\n minDelay: 2,\n maxDelay: 120,\n};\nexport var WaiterState;\n(function (WaiterState) {\n WaiterState[\"ABORTED\"] = \"ABORTED\";\n WaiterState[\"FAILURE\"] = \"FAILURE\";\n WaiterState[\"SUCCESS\"] = \"SUCCESS\";\n WaiterState[\"RETRY\"] = \"RETRY\";\n WaiterState[\"TIMEOUT\"] = \"TIMEOUT\";\n})(WaiterState || (WaiterState = {}));\nexport const checkExceptions = (result) => {\n if (result.state === WaiterState.ABORTED) {\n const abortError = new Error(`${JSON.stringify({\n ...result,\n reason: \"Request was aborted\",\n })}`);\n abortError.name = \"AbortError\";\n throw abortError;\n }\n else if (result.state === WaiterState.TIMEOUT) {\n const timeoutError = new Error(`${JSON.stringify({\n ...result,\n reason: \"Waiter has timed out\",\n })}`);\n timeoutError.name = \"TimeoutError\";\n throw timeoutError;\n }\n else if (result.state !== WaiterState.SUCCESS) {\n throw new Error(`${JSON.stringify({ result })}`);\n }\n return result;\n};\n","import { sleep } from \"./utils/sleep\";\nimport { WaiterState } from \"./waiter\";\nconst exponentialBackoffWithJitter = (minDelay, maxDelay, attemptCeiling, attempt) => {\n if (attempt > attemptCeiling)\n return maxDelay;\n const delay = minDelay * 2 ** (attempt - 1);\n return randomInRange(minDelay, delay);\n};\nconst randomInRange = (min, max) => min + Math.random() * (max - min);\nexport const runPolling = async ({ minDelay, maxDelay, maxWaitTime, abortController, client, abortSignal }, input, acceptorChecks) => {\n const { state, reason } = await acceptorChecks(client, input);\n if (state !== WaiterState.RETRY) {\n return { state, reason };\n }\n let currentAttempt = 1;\n const waitUntil = Date.now() + maxWaitTime * 1000;\n const attemptCeiling = Math.log(maxDelay / minDelay) / Math.log(2) + 1;\n while (true) {\n if (abortController?.signal?.aborted || abortSignal?.aborted) {\n return { state: WaiterState.ABORTED };\n }\n const delay = exponentialBackoffWithJitter(minDelay, maxDelay, attemptCeiling, currentAttempt);\n if (Date.now() + delay * 1000 > waitUntil) {\n return { state: WaiterState.TIMEOUT };\n }\n await sleep(delay);\n const { state, reason } = await acceptorChecks(client, input);\n if (state !== WaiterState.RETRY) {\n return { state, reason };\n }\n currentAttempt += 1;\n }\n};\n","import { runPolling } from \"./poller\";\nimport { validateWaiterOptions } from \"./utils\";\nimport { waiterServiceDefaults, WaiterState } from \"./waiter\";\nconst abortTimeout = async (abortSignal) => {\n return new Promise((resolve) => {\n abortSignal.onabort = () => resolve({ state: WaiterState.ABORTED });\n });\n};\nexport const createWaiter = async (options, input, acceptorChecks) => {\n const params = {\n ...waiterServiceDefaults,\n ...options,\n };\n validateWaiterOptions(params);\n const exitConditions = [runPolling(params, input, acceptorChecks)];\n if (options.abortController) {\n exitConditions.push(abortTimeout(options.abortController.signal));\n }\n if (options.abortSignal) {\n exitConditions.push(abortTimeout(options.abortSignal));\n }\n return Promise.race(exitConditions);\n};\n","export const validateWaiterOptions = (options) => {\n if (options.maxWaitTime < 1) {\n throw new Error(`WaiterConfiguration.maxWaitTime must be greater than 0`);\n }\n else if (options.minDelay < 1) {\n throw new Error(`WaiterConfiguration.minDelay must be greater than 0`);\n }\n else if (options.maxDelay < 1) {\n throw new Error(`WaiterConfiguration.maxDelay must be greater than 0`);\n }\n else if (options.maxWaitTime <= options.minDelay) {\n throw new Error(`WaiterConfiguration.maxWaitTime [${options.maxWaitTime}] must be greater than WaiterConfiguration.minDelay [${options.minDelay}] for this waiter`);\n }\n else if (options.maxDelay < options.minDelay) {\n throw new Error(`WaiterConfiguration.maxDelay [${options.maxDelay}] must be greater than WaiterConfiguration.minDelay [${options.minDelay}] for this waiter`);\n }\n};\n","import { checkExceptions, createWaiter, WaiterState } from \"@smithy/util-waiter\";\nimport { HeadBucketCommand } from \"../commands/HeadBucketCommand\";\nconst checkState = async (client, input) => {\n let reason;\n try {\n const result = await client.send(new HeadBucketCommand(input));\n reason = result;\n return { state: WaiterState.SUCCESS, reason };\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NotFound\") {\n return { state: WaiterState.RETRY, reason };\n }\n }\n return { state: WaiterState.RETRY, reason };\n};\nexport const waitForBucketExists = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return createWaiter({ ...serviceDefaults, ...params }, input, checkState);\n};\nexport const waitUntilBucketExists = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await createWaiter({ ...serviceDefaults, ...params }, input, checkState);\n return checkExceptions(result);\n};\n","import { checkExceptions, createWaiter, WaiterState } from \"@smithy/util-waiter\";\nimport { HeadBucketCommand } from \"../commands/HeadBucketCommand\";\nconst checkState = async (client, input) => {\n let reason;\n try {\n const result = await client.send(new HeadBucketCommand(input));\n reason = result;\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NotFound\") {\n return { state: WaiterState.SUCCESS, reason };\n }\n }\n return { state: WaiterState.RETRY, reason };\n};\nexport const waitForBucketNotExists = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return createWaiter({ ...serviceDefaults, ...params }, input, checkState);\n};\nexport const waitUntilBucketNotExists = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await createWaiter({ ...serviceDefaults, ...params }, input, checkState);\n return checkExceptions(result);\n};\n","import { checkExceptions, createWaiter, WaiterState } from \"@smithy/util-waiter\";\nimport { HeadObjectCommand } from \"../commands/HeadObjectCommand\";\nconst checkState = async (client, input) => {\n let reason;\n try {\n const result = await client.send(new HeadObjectCommand(input));\n reason = result;\n return { state: WaiterState.SUCCESS, reason };\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NotFound\") {\n return { state: WaiterState.RETRY, reason };\n }\n }\n return { state: WaiterState.RETRY, reason };\n};\nexport const waitForObjectExists = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return createWaiter({ ...serviceDefaults, ...params }, input, checkState);\n};\nexport const waitUntilObjectExists = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await createWaiter({ ...serviceDefaults, ...params }, input, checkState);\n return checkExceptions(result);\n};\n","import { checkExceptions, createWaiter, WaiterState } from \"@smithy/util-waiter\";\nimport { HeadObjectCommand } from \"../commands/HeadObjectCommand\";\nconst checkState = async (client, input) => {\n let reason;\n try {\n const result = await client.send(new HeadObjectCommand(input));\n reason = result;\n }\n catch (exception) {\n reason = exception;\n if (exception.name && exception.name == \"NotFound\") {\n return { state: WaiterState.SUCCESS, reason };\n }\n }\n return { state: WaiterState.RETRY, reason };\n};\nexport const waitForObjectNotExists = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n return createWaiter({ ...serviceDefaults, ...params }, input, checkState);\n};\nexport const waitUntilObjectNotExists = async (params, input) => {\n const serviceDefaults = { minDelay: 5, maxDelay: 120 };\n const result = await createWaiter({ ...serviceDefaults, ...params }, input, checkState);\n return checkExceptions(result);\n};\n","import { ServiceException as __ServiceException, } from \"@smithy/smithy-client\";\nexport { __ServiceException };\nexport class S3ServiceException extends __ServiceException {\n constructor(options) {\n super(options);\n Object.setPrototypeOf(this, S3ServiceException.prototype);\n }\n}\n","import { SENSITIVE_STRING } from \"@smithy/smithy-client\";\nimport { S3ServiceException as __BaseException } from \"./S3ServiceException\";\nexport const RequestCharged = {\n requester: \"requester\",\n};\nexport const RequestPayer = {\n requester: \"requester\",\n};\nexport class NoSuchUpload extends __BaseException {\n constructor(opts) {\n super({\n name: \"NoSuchUpload\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"NoSuchUpload\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, NoSuchUpload.prototype);\n }\n}\nexport const BucketAccelerateStatus = {\n Enabled: \"Enabled\",\n Suspended: \"Suspended\",\n};\nexport const Type = {\n AmazonCustomerByEmail: \"AmazonCustomerByEmail\",\n CanonicalUser: \"CanonicalUser\",\n Group: \"Group\",\n};\nexport const Permission = {\n FULL_CONTROL: \"FULL_CONTROL\",\n READ: \"READ\",\n READ_ACP: \"READ_ACP\",\n WRITE: \"WRITE\",\n WRITE_ACP: \"WRITE_ACP\",\n};\nexport const OwnerOverride = {\n Destination: \"Destination\",\n};\nexport const ServerSideEncryption = {\n AES256: \"AES256\",\n aws_kms: \"aws:kms\",\n aws_kms_dsse: \"aws:kms:dsse\",\n};\nexport const ObjectCannedACL = {\n authenticated_read: \"authenticated-read\",\n aws_exec_read: \"aws-exec-read\",\n bucket_owner_full_control: \"bucket-owner-full-control\",\n bucket_owner_read: \"bucket-owner-read\",\n private: \"private\",\n public_read: \"public-read\",\n public_read_write: \"public-read-write\",\n};\nexport const ChecksumAlgorithm = {\n CRC32: \"CRC32\",\n CRC32C: \"CRC32C\",\n SHA1: \"SHA1\",\n SHA256: \"SHA256\",\n};\nexport const MetadataDirective = {\n COPY: \"COPY\",\n REPLACE: \"REPLACE\",\n};\nexport const ObjectLockLegalHoldStatus = {\n OFF: \"OFF\",\n ON: \"ON\",\n};\nexport const ObjectLockMode = {\n COMPLIANCE: \"COMPLIANCE\",\n GOVERNANCE: \"GOVERNANCE\",\n};\nexport const StorageClass = {\n DEEP_ARCHIVE: \"DEEP_ARCHIVE\",\n GLACIER: \"GLACIER\",\n GLACIER_IR: \"GLACIER_IR\",\n INTELLIGENT_TIERING: \"INTELLIGENT_TIERING\",\n ONEZONE_IA: \"ONEZONE_IA\",\n OUTPOSTS: \"OUTPOSTS\",\n REDUCED_REDUNDANCY: \"REDUCED_REDUNDANCY\",\n SNOW: \"SNOW\",\n STANDARD: \"STANDARD\",\n STANDARD_IA: \"STANDARD_IA\",\n};\nexport const TaggingDirective = {\n COPY: \"COPY\",\n REPLACE: \"REPLACE\",\n};\nexport class ObjectNotInActiveTierError extends __BaseException {\n constructor(opts) {\n super({\n name: \"ObjectNotInActiveTierError\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"ObjectNotInActiveTierError\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, ObjectNotInActiveTierError.prototype);\n }\n}\nexport class BucketAlreadyExists extends __BaseException {\n constructor(opts) {\n super({\n name: \"BucketAlreadyExists\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"BucketAlreadyExists\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, BucketAlreadyExists.prototype);\n }\n}\nexport class BucketAlreadyOwnedByYou extends __BaseException {\n constructor(opts) {\n super({\n name: \"BucketAlreadyOwnedByYou\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"BucketAlreadyOwnedByYou\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, BucketAlreadyOwnedByYou.prototype);\n }\n}\nexport const BucketCannedACL = {\n authenticated_read: \"authenticated-read\",\n private: \"private\",\n public_read: \"public-read\",\n public_read_write: \"public-read-write\",\n};\nexport const BucketLocationConstraint = {\n EU: \"EU\",\n af_south_1: \"af-south-1\",\n ap_east_1: \"ap-east-1\",\n ap_northeast_1: \"ap-northeast-1\",\n ap_northeast_2: \"ap-northeast-2\",\n ap_northeast_3: \"ap-northeast-3\",\n ap_south_1: \"ap-south-1\",\n ap_south_2: \"ap-south-2\",\n ap_southeast_1: \"ap-southeast-1\",\n ap_southeast_2: \"ap-southeast-2\",\n ap_southeast_3: \"ap-southeast-3\",\n ca_central_1: \"ca-central-1\",\n cn_north_1: \"cn-north-1\",\n cn_northwest_1: \"cn-northwest-1\",\n eu_central_1: \"eu-central-1\",\n eu_north_1: \"eu-north-1\",\n eu_south_1: \"eu-south-1\",\n eu_south_2: \"eu-south-2\",\n eu_west_1: \"eu-west-1\",\n eu_west_2: \"eu-west-2\",\n eu_west_3: \"eu-west-3\",\n me_south_1: \"me-south-1\",\n sa_east_1: \"sa-east-1\",\n us_east_2: \"us-east-2\",\n us_gov_east_1: \"us-gov-east-1\",\n us_gov_west_1: \"us-gov-west-1\",\n us_west_1: \"us-west-1\",\n us_west_2: \"us-west-2\",\n};\nexport const ObjectOwnership = {\n BucketOwnerEnforced: \"BucketOwnerEnforced\",\n BucketOwnerPreferred: \"BucketOwnerPreferred\",\n ObjectWriter: \"ObjectWriter\",\n};\nexport var AnalyticsFilter;\n(function (AnalyticsFilter) {\n AnalyticsFilter.visit = (value, visitor) => {\n if (value.Prefix !== undefined)\n return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined)\n return visitor.Tag(value.Tag);\n if (value.And !== undefined)\n return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n})(AnalyticsFilter || (AnalyticsFilter = {}));\nexport const AnalyticsS3ExportFileFormat = {\n CSV: \"CSV\",\n};\nexport const StorageClassAnalysisSchemaVersion = {\n V_1: \"V_1\",\n};\nexport const IntelligentTieringStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\",\n};\nexport const IntelligentTieringAccessTier = {\n ARCHIVE_ACCESS: \"ARCHIVE_ACCESS\",\n DEEP_ARCHIVE_ACCESS: \"DEEP_ARCHIVE_ACCESS\",\n};\nexport const InventoryFormat = {\n CSV: \"CSV\",\n ORC: \"ORC\",\n Parquet: \"Parquet\",\n};\nexport const InventoryIncludedObjectVersions = {\n All: \"All\",\n Current: \"Current\",\n};\nexport const InventoryOptionalField = {\n BucketKeyStatus: \"BucketKeyStatus\",\n ChecksumAlgorithm: \"ChecksumAlgorithm\",\n ETag: \"ETag\",\n EncryptionStatus: \"EncryptionStatus\",\n IntelligentTieringAccessTier: \"IntelligentTieringAccessTier\",\n IsMultipartUploaded: \"IsMultipartUploaded\",\n LastModifiedDate: \"LastModifiedDate\",\n ObjectAccessControlList: \"ObjectAccessControlList\",\n ObjectLockLegalHoldStatus: \"ObjectLockLegalHoldStatus\",\n ObjectLockMode: \"ObjectLockMode\",\n ObjectLockRetainUntilDate: \"ObjectLockRetainUntilDate\",\n ObjectOwner: \"ObjectOwner\",\n ReplicationStatus: \"ReplicationStatus\",\n Size: \"Size\",\n StorageClass: \"StorageClass\",\n};\nexport const InventoryFrequency = {\n Daily: \"Daily\",\n Weekly: \"Weekly\",\n};\nexport var LifecycleRuleFilter;\n(function (LifecycleRuleFilter) {\n LifecycleRuleFilter.visit = (value, visitor) => {\n if (value.Prefix !== undefined)\n return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined)\n return visitor.Tag(value.Tag);\n if (value.ObjectSizeGreaterThan !== undefined)\n return visitor.ObjectSizeGreaterThan(value.ObjectSizeGreaterThan);\n if (value.ObjectSizeLessThan !== undefined)\n return visitor.ObjectSizeLessThan(value.ObjectSizeLessThan);\n if (value.And !== undefined)\n return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n})(LifecycleRuleFilter || (LifecycleRuleFilter = {}));\nexport const TransitionStorageClass = {\n DEEP_ARCHIVE: \"DEEP_ARCHIVE\",\n GLACIER: \"GLACIER\",\n GLACIER_IR: \"GLACIER_IR\",\n INTELLIGENT_TIERING: \"INTELLIGENT_TIERING\",\n ONEZONE_IA: \"ONEZONE_IA\",\n STANDARD_IA: \"STANDARD_IA\",\n};\nexport const ExpirationStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\",\n};\nexport const BucketLogsPermission = {\n FULL_CONTROL: \"FULL_CONTROL\",\n READ: \"READ\",\n WRITE: \"WRITE\",\n};\nexport var MetricsFilter;\n(function (MetricsFilter) {\n MetricsFilter.visit = (value, visitor) => {\n if (value.Prefix !== undefined)\n return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined)\n return visitor.Tag(value.Tag);\n if (value.AccessPointArn !== undefined)\n return visitor.AccessPointArn(value.AccessPointArn);\n if (value.And !== undefined)\n return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n})(MetricsFilter || (MetricsFilter = {}));\nexport const Event = {\n s3_IntelligentTiering: \"s3:IntelligentTiering\",\n s3_LifecycleExpiration_: \"s3:LifecycleExpiration:*\",\n s3_LifecycleExpiration_Delete: \"s3:LifecycleExpiration:Delete\",\n s3_LifecycleExpiration_DeleteMarkerCreated: \"s3:LifecycleExpiration:DeleteMarkerCreated\",\n s3_LifecycleTransition: \"s3:LifecycleTransition\",\n s3_ObjectAcl_Put: \"s3:ObjectAcl:Put\",\n s3_ObjectCreated_: \"s3:ObjectCreated:*\",\n s3_ObjectCreated_CompleteMultipartUpload: \"s3:ObjectCreated:CompleteMultipartUpload\",\n s3_ObjectCreated_Copy: \"s3:ObjectCreated:Copy\",\n s3_ObjectCreated_Post: \"s3:ObjectCreated:Post\",\n s3_ObjectCreated_Put: \"s3:ObjectCreated:Put\",\n s3_ObjectRemoved_: \"s3:ObjectRemoved:*\",\n s3_ObjectRemoved_Delete: \"s3:ObjectRemoved:Delete\",\n s3_ObjectRemoved_DeleteMarkerCreated: \"s3:ObjectRemoved:DeleteMarkerCreated\",\n s3_ObjectRestore_: \"s3:ObjectRestore:*\",\n s3_ObjectRestore_Completed: \"s3:ObjectRestore:Completed\",\n s3_ObjectRestore_Delete: \"s3:ObjectRestore:Delete\",\n s3_ObjectRestore_Post: \"s3:ObjectRestore:Post\",\n s3_ObjectTagging_: \"s3:ObjectTagging:*\",\n s3_ObjectTagging_Delete: \"s3:ObjectTagging:Delete\",\n s3_ObjectTagging_Put: \"s3:ObjectTagging:Put\",\n s3_ReducedRedundancyLostObject: \"s3:ReducedRedundancyLostObject\",\n s3_Replication_: \"s3:Replication:*\",\n s3_Replication_OperationFailedReplication: \"s3:Replication:OperationFailedReplication\",\n s3_Replication_OperationMissedThreshold: \"s3:Replication:OperationMissedThreshold\",\n s3_Replication_OperationNotTracked: \"s3:Replication:OperationNotTracked\",\n s3_Replication_OperationReplicatedAfterThreshold: \"s3:Replication:OperationReplicatedAfterThreshold\",\n};\nexport const FilterRuleName = {\n prefix: \"prefix\",\n suffix: \"suffix\",\n};\nexport const DeleteMarkerReplicationStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\",\n};\nexport const MetricsStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\",\n};\nexport const ReplicationTimeStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\",\n};\nexport const ExistingObjectReplicationStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\",\n};\nexport var ReplicationRuleFilter;\n(function (ReplicationRuleFilter) {\n ReplicationRuleFilter.visit = (value, visitor) => {\n if (value.Prefix !== undefined)\n return visitor.Prefix(value.Prefix);\n if (value.Tag !== undefined)\n return visitor.Tag(value.Tag);\n if (value.And !== undefined)\n return visitor.And(value.And);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n})(ReplicationRuleFilter || (ReplicationRuleFilter = {}));\nexport const ReplicaModificationsStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\",\n};\nexport const SseKmsEncryptedObjectsStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\",\n};\nexport const ReplicationRuleStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\",\n};\nexport const Payer = {\n BucketOwner: \"BucketOwner\",\n Requester: \"Requester\",\n};\nexport const MFADeleteStatus = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\",\n};\nexport const BucketVersioningStatus = {\n Enabled: \"Enabled\",\n Suspended: \"Suspended\",\n};\nexport const Protocol = {\n http: \"http\",\n https: \"https\",\n};\nexport const ReplicationStatus = {\n COMPLETE: \"COMPLETE\",\n COMPLETED: \"COMPLETED\",\n FAILED: \"FAILED\",\n PENDING: \"PENDING\",\n REPLICA: \"REPLICA\",\n};\nexport const ChecksumMode = {\n ENABLED: \"ENABLED\",\n};\nexport class InvalidObjectState extends __BaseException {\n constructor(opts) {\n super({\n name: \"InvalidObjectState\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"InvalidObjectState\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, InvalidObjectState.prototype);\n this.StorageClass = opts.StorageClass;\n this.AccessTier = opts.AccessTier;\n }\n}\nexport class NoSuchKey extends __BaseException {\n constructor(opts) {\n super({\n name: \"NoSuchKey\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"NoSuchKey\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, NoSuchKey.prototype);\n }\n}\nexport const ObjectAttributes = {\n CHECKSUM: \"Checksum\",\n ETAG: \"ETag\",\n OBJECT_PARTS: \"ObjectParts\",\n OBJECT_SIZE: \"ObjectSize\",\n STORAGE_CLASS: \"StorageClass\",\n};\nexport const ObjectLockEnabled = {\n Enabled: \"Enabled\",\n};\nexport const ObjectLockRetentionMode = {\n COMPLIANCE: \"COMPLIANCE\",\n GOVERNANCE: \"GOVERNANCE\",\n};\nexport class NotFound extends __BaseException {\n constructor(opts) {\n super({\n name: \"NotFound\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"NotFound\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, NotFound.prototype);\n }\n}\nexport const ArchiveStatus = {\n ARCHIVE_ACCESS: \"ARCHIVE_ACCESS\",\n DEEP_ARCHIVE_ACCESS: \"DEEP_ARCHIVE_ACCESS\",\n};\nexport const EncodingType = {\n url: \"url\",\n};\nexport const ObjectStorageClass = {\n DEEP_ARCHIVE: \"DEEP_ARCHIVE\",\n GLACIER: \"GLACIER\",\n GLACIER_IR: \"GLACIER_IR\",\n INTELLIGENT_TIERING: \"INTELLIGENT_TIERING\",\n ONEZONE_IA: \"ONEZONE_IA\",\n OUTPOSTS: \"OUTPOSTS\",\n REDUCED_REDUNDANCY: \"REDUCED_REDUNDANCY\",\n SNOW: \"SNOW\",\n STANDARD: \"STANDARD\",\n STANDARD_IA: \"STANDARD_IA\",\n};\nexport const OptionalObjectAttributes = {\n RESTORE_STATUS: \"RestoreStatus\",\n};\nexport class NoSuchBucket extends __BaseException {\n constructor(opts) {\n super({\n name: \"NoSuchBucket\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"NoSuchBucket\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, NoSuchBucket.prototype);\n }\n}\nexport const ObjectVersionStorageClass = {\n STANDARD: \"STANDARD\",\n};\nexport const MFADelete = {\n Disabled: \"Disabled\",\n Enabled: \"Enabled\",\n};\nexport const CompleteMultipartUploadOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n});\nexport const CompleteMultipartUploadRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n});\nexport const CopyObjectOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n ...(obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }),\n});\nexport const CopyObjectRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n ...(obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }),\n ...(obj.CopySourceSSECustomerKey && { CopySourceSSECustomerKey: SENSITIVE_STRING }),\n});\nexport const CreateMultipartUploadOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n ...(obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }),\n});\nexport const CreateMultipartUploadRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n ...(obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }),\n});\nexport const ServerSideEncryptionByDefaultFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.KMSMasterKeyID && { KMSMasterKeyID: SENSITIVE_STRING }),\n});\nexport const ServerSideEncryptionRuleFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.ApplyServerSideEncryptionByDefault && {\n ApplyServerSideEncryptionByDefault: ServerSideEncryptionByDefaultFilterSensitiveLog(obj.ApplyServerSideEncryptionByDefault),\n }),\n});\nexport const ServerSideEncryptionConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Rules && { Rules: obj.Rules.map((item) => ServerSideEncryptionRuleFilterSensitiveLog(item)) }),\n});\nexport const GetBucketEncryptionOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.ServerSideEncryptionConfiguration && {\n ServerSideEncryptionConfiguration: ServerSideEncryptionConfigurationFilterSensitiveLog(obj.ServerSideEncryptionConfiguration),\n }),\n});\nexport const SSEKMSFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.KeyId && { KeyId: SENSITIVE_STRING }),\n});\nexport const InventoryEncryptionFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMS && { SSEKMS: SSEKMSFilterSensitiveLog(obj.SSEKMS) }),\n});\nexport const InventoryS3BucketDestinationFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Encryption && { Encryption: InventoryEncryptionFilterSensitiveLog(obj.Encryption) }),\n});\nexport const InventoryDestinationFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.S3BucketDestination && {\n S3BucketDestination: InventoryS3BucketDestinationFilterSensitiveLog(obj.S3BucketDestination),\n }),\n});\nexport const InventoryConfigurationFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Destination && { Destination: InventoryDestinationFilterSensitiveLog(obj.Destination) }),\n});\nexport const GetBucketInventoryConfigurationOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.InventoryConfiguration && {\n InventoryConfiguration: InventoryConfigurationFilterSensitiveLog(obj.InventoryConfiguration),\n }),\n});\nexport const GetObjectOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n});\nexport const GetObjectRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n});\nexport const GetObjectAttributesRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n});\nexport const GetObjectTorrentOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n});\nexport const HeadObjectOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n});\nexport const HeadObjectRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n});\nexport const ListBucketInventoryConfigurationsOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.InventoryConfigurationList && {\n InventoryConfigurationList: obj.InventoryConfigurationList.map((item) => InventoryConfigurationFilterSensitiveLog(item)),\n }),\n});\nexport const ListPartsRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n});\nexport const PutBucketEncryptionRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.ServerSideEncryptionConfiguration && {\n ServerSideEncryptionConfiguration: ServerSideEncryptionConfigurationFilterSensitiveLog(obj.ServerSideEncryptionConfiguration),\n }),\n});\nexport const PutBucketInventoryConfigurationRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.InventoryConfiguration && {\n InventoryConfiguration: InventoryConfigurationFilterSensitiveLog(obj.InventoryConfiguration),\n }),\n});\nexport const PutObjectOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n ...(obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }),\n});\nexport const PutObjectRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n ...(obj.SSEKMSEncryptionContext && { SSEKMSEncryptionContext: SENSITIVE_STRING }),\n});\n","import { SENSITIVE_STRING } from \"@smithy/smithy-client\";\nimport { S3ServiceException as __BaseException } from \"./S3ServiceException\";\nexport class ObjectAlreadyInActiveTierError extends __BaseException {\n constructor(opts) {\n super({\n name: \"ObjectAlreadyInActiveTierError\",\n $fault: \"client\",\n ...opts,\n });\n this.name = \"ObjectAlreadyInActiveTierError\";\n this.$fault = \"client\";\n Object.setPrototypeOf(this, ObjectAlreadyInActiveTierError.prototype);\n }\n}\nexport const Tier = {\n Bulk: \"Bulk\",\n Expedited: \"Expedited\",\n Standard: \"Standard\",\n};\nexport const ExpressionType = {\n SQL: \"SQL\",\n};\nexport const CompressionType = {\n BZIP2: \"BZIP2\",\n GZIP: \"GZIP\",\n NONE: \"NONE\",\n};\nexport const FileHeaderInfo = {\n IGNORE: \"IGNORE\",\n NONE: \"NONE\",\n USE: \"USE\",\n};\nexport const JSONType = {\n DOCUMENT: \"DOCUMENT\",\n LINES: \"LINES\",\n};\nexport const QuoteFields = {\n ALWAYS: \"ALWAYS\",\n ASNEEDED: \"ASNEEDED\",\n};\nexport const RestoreRequestType = {\n SELECT: \"SELECT\",\n};\nexport var SelectObjectContentEventStream;\n(function (SelectObjectContentEventStream) {\n SelectObjectContentEventStream.visit = (value, visitor) => {\n if (value.Records !== undefined)\n return visitor.Records(value.Records);\n if (value.Stats !== undefined)\n return visitor.Stats(value.Stats);\n if (value.Progress !== undefined)\n return visitor.Progress(value.Progress);\n if (value.Cont !== undefined)\n return visitor.Cont(value.Cont);\n if (value.End !== undefined)\n return visitor.End(value.End);\n return visitor._(value.$unknown[0], value.$unknown[1]);\n };\n})(SelectObjectContentEventStream || (SelectObjectContentEventStream = {}));\nexport const EncryptionFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.KMSKeyId && { KMSKeyId: SENSITIVE_STRING }),\n});\nexport const S3LocationFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Encryption && { Encryption: EncryptionFilterSensitiveLog(obj.Encryption) }),\n});\nexport const OutputLocationFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.S3 && { S3: S3LocationFilterSensitiveLog(obj.S3) }),\n});\nexport const RestoreRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.OutputLocation && { OutputLocation: OutputLocationFilterSensitiveLog(obj.OutputLocation) }),\n});\nexport const RestoreObjectRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.RestoreRequest && { RestoreRequest: RestoreRequestFilterSensitiveLog(obj.RestoreRequest) }),\n});\nexport const SelectObjectContentEventStreamFilterSensitiveLog = (obj) => {\n if (obj.Records !== undefined)\n return { Records: obj.Records };\n if (obj.Stats !== undefined)\n return { Stats: obj.Stats };\n if (obj.Progress !== undefined)\n return { Progress: obj.Progress };\n if (obj.Cont !== undefined)\n return { Cont: obj.Cont };\n if (obj.End !== undefined)\n return { End: obj.End };\n if (obj.$unknown !== undefined)\n return { [obj.$unknown[0]]: \"UNKNOWN\" };\n};\nexport const SelectObjectContentOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.Payload && { Payload: \"STREAMING_CONTENT\" }),\n});\nexport const SelectObjectContentRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n});\nexport const UploadPartOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n});\nexport const UploadPartRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n});\nexport const UploadPartCopyOutputFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n});\nexport const UploadPartCopyRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSECustomerKey && { SSECustomerKey: SENSITIVE_STRING }),\n ...(obj.CopySourceSSECustomerKey && { CopySourceSSECustomerKey: SENSITIVE_STRING }),\n});\nexport const WriteGetObjectResponseRequestFilterSensitiveLog = (obj) => ({\n ...obj,\n ...(obj.SSEKMSKeyId && { SSEKMSKeyId: SENSITIVE_STRING }),\n});\n","import { escapeElement } from \"./escape-element\";\nexport class XmlText {\n constructor(value) {\n this.value = value;\n }\n toString() {\n return escapeElement(\"\" + this.value);\n }\n}\n","export function escapeElement(value) {\n return value\n .replace(/&/g, \"&\")\n .replace(/\"/g, \""\")\n .replace(/'/g, \"'\")\n .replace(//g, \">\")\n .replace(/\\r/g, \" \")\n .replace(/\\n/g, \" \")\n .replace(/\\u0085/g, \"…\")\n .replace(/\\u2028/, \"
\");\n}\n","import { escapeAttribute } from \"./escape-attribute\";\nimport { XmlText } from \"./XmlText\";\nexport class XmlNode {\n static of(name, childText, withName) {\n const node = new XmlNode(name);\n if (childText !== undefined) {\n node.addChildNode(new XmlText(childText));\n }\n if (withName !== undefined) {\n node.withName(withName);\n }\n return node;\n }\n constructor(name, children = []) {\n this.name = name;\n this.children = children;\n this.attributes = {};\n }\n withName(name) {\n this.name = name;\n return this;\n }\n addAttribute(name, value) {\n this.attributes[name] = value;\n return this;\n }\n addChildNode(child) {\n this.children.push(child);\n return this;\n }\n removeAttribute(name) {\n delete this.attributes[name];\n return this;\n }\n toString() {\n const hasChildren = Boolean(this.children.length);\n let xmlText = `<${this.name}`;\n const attributes = this.attributes;\n for (const attributeName of Object.keys(attributes)) {\n const attribute = attributes[attributeName];\n if (typeof attribute !== \"undefined\" && attribute !== null) {\n xmlText += ` ${attributeName}=\"${escapeAttribute(\"\" + attribute)}\"`;\n }\n }\n return (xmlText += !hasChildren ? \"/>\" : `>${this.children.map((c) => c.toString()).join(\"\")}`);\n }\n}\n","export function escapeAttribute(value) {\n return value.replace(/&/g, \"&\").replace(//g, \">\").replace(/\"/g, \""\");\n}\n","import { XmlNode as __XmlNode, XmlText as __XmlText } from \"@aws-sdk/xml-builder\";\nimport { HttpRequest as __HttpRequest, isValidHostname as __isValidHostname, } from \"@smithy/protocol-http\";\nimport { collectBody, dateToUtcString as __dateToUtcString, decorateServiceException as __decorateServiceException, expectNonNull as __expectNonNull, expectObject as __expectObject, expectString as __expectString, expectUnion as __expectUnion, getArrayIfSingleItem as __getArrayIfSingleItem, getValueFromTextNode as __getValueFromTextNode, map, parseBoolean as __parseBoolean, parseRfc3339DateTimeWithOffset as __parseRfc3339DateTimeWithOffset, parseRfc7231DateTime as __parseRfc7231DateTime, resolvedPath as __resolvedPath, strictParseInt32 as __strictParseInt32, strictParseLong as __strictParseLong, withBaseException, } from \"@smithy/smithy-client\";\nimport { XMLParser } from \"fast-xml-parser\";\nimport { AnalyticsFilter, BucketAlreadyExists, BucketAlreadyOwnedByYou, InvalidObjectState, LifecycleRuleFilter, MetricsFilter, NoSuchBucket, NoSuchKey, NoSuchUpload, NotFound, ObjectNotInActiveTierError, ReplicationRuleFilter, } from \"../models/models_0\";\nimport { ObjectAlreadyInActiveTierError, } from \"../models/models_1\";\nimport { S3ServiceException as __BaseException } from \"../models/S3ServiceException\";\nexport const se_AbortMultipartUploadCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"x-id\": [, \"AbortMultipartUpload\"],\n uploadId: [, __expectNonNull(input.UploadId, `UploadId`)],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_CompleteMultipartUploadCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-checksum-crc32\": input.ChecksumCRC32,\n \"x-amz-checksum-crc32c\": input.ChecksumCRC32C,\n \"x-amz-checksum-sha1\": input.ChecksumSHA1,\n \"x-amz-checksum-sha256\": input.ChecksumSHA256,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"x-id\": [, \"CompleteMultipartUpload\"],\n uploadId: [, __expectNonNull(input.UploadId, `UploadId`)],\n });\n let body;\n if (input.MultipartUpload !== undefined) {\n body = se_CompletedMultipartUpload(input.MultipartUpload, context);\n }\n let contents;\n if (input.MultipartUpload !== undefined) {\n contents = se_CompletedMultipartUpload(input.MultipartUpload, context);\n contents = contents.withName(\"CompleteMultipartUpload\");\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"POST\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_CopyObjectCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-acl\": input.ACL,\n \"cache-control\": input.CacheControl,\n \"x-amz-checksum-algorithm\": input.ChecksumAlgorithm,\n \"content-disposition\": input.ContentDisposition,\n \"content-encoding\": input.ContentEncoding,\n \"content-language\": input.ContentLanguage,\n \"content-type\": input.ContentType,\n \"x-amz-copy-source\": input.CopySource,\n \"x-amz-copy-source-if-match\": input.CopySourceIfMatch,\n \"x-amz-copy-source-if-modified-since\": [\n () => isSerializableHeaderValue(input.CopySourceIfModifiedSince),\n () => __dateToUtcString(input.CopySourceIfModifiedSince).toString(),\n ],\n \"x-amz-copy-source-if-none-match\": input.CopySourceIfNoneMatch,\n \"x-amz-copy-source-if-unmodified-since\": [\n () => isSerializableHeaderValue(input.CopySourceIfUnmodifiedSince),\n () => __dateToUtcString(input.CopySourceIfUnmodifiedSince).toString(),\n ],\n expires: [() => isSerializableHeaderValue(input.Expires), () => __dateToUtcString(input.Expires).toString()],\n \"x-amz-grant-full-control\": input.GrantFullControl,\n \"x-amz-grant-read\": input.GrantRead,\n \"x-amz-grant-read-acp\": input.GrantReadACP,\n \"x-amz-grant-write-acp\": input.GrantWriteACP,\n \"x-amz-metadata-directive\": input.MetadataDirective,\n \"x-amz-tagging-directive\": input.TaggingDirective,\n \"x-amz-server-side-encryption\": input.ServerSideEncryption,\n \"x-amz-storage-class\": input.StorageClass,\n \"x-amz-website-redirect-location\": input.WebsiteRedirectLocation,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-server-side-encryption-aws-kms-key-id\": input.SSEKMSKeyId,\n \"x-amz-server-side-encryption-context\": input.SSEKMSEncryptionContext,\n \"x-amz-server-side-encryption-bucket-key-enabled\": [\n () => isSerializableHeaderValue(input.BucketKeyEnabled),\n () => input.BucketKeyEnabled.toString(),\n ],\n \"x-amz-copy-source-server-side-encryption-customer-algorithm\": input.CopySourceSSECustomerAlgorithm,\n \"x-amz-copy-source-server-side-encryption-customer-key\": input.CopySourceSSECustomerKey,\n \"x-amz-copy-source-server-side-encryption-customer-key-md5\": input.CopySourceSSECustomerKeyMD5,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-tagging\": input.Tagging,\n \"x-amz-object-lock-mode\": input.ObjectLockMode,\n \"x-amz-object-lock-retain-until-date\": [\n () => isSerializableHeaderValue(input.ObjectLockRetainUntilDate),\n () => (input.ObjectLockRetainUntilDate.toISOString().split(\".\")[0] + \"Z\").toString(),\n ],\n \"x-amz-object-lock-legal-hold\": input.ObjectLockLegalHoldStatus,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-source-expected-bucket-owner\": input.ExpectedSourceBucketOwner,\n ...(input.Metadata !== undefined &&\n Object.keys(input.Metadata).reduce((acc, suffix) => {\n acc[`x-amz-meta-${suffix.toLowerCase()}`] = input.Metadata[suffix];\n return acc;\n }, {})),\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"x-id\": [, \"CopyObject\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_CreateBucketCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-acl\": input.ACL,\n \"x-amz-grant-full-control\": input.GrantFullControl,\n \"x-amz-grant-read\": input.GrantRead,\n \"x-amz-grant-read-acp\": input.GrantReadACP,\n \"x-amz-grant-write\": input.GrantWrite,\n \"x-amz-grant-write-acp\": input.GrantWriteACP,\n \"x-amz-bucket-object-lock-enabled\": [\n () => isSerializableHeaderValue(input.ObjectLockEnabledForBucket),\n () => input.ObjectLockEnabledForBucket.toString(),\n ],\n \"x-amz-object-ownership\": input.ObjectOwnership,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n let body;\n if (input.CreateBucketConfiguration !== undefined) {\n body = se_CreateBucketConfiguration(input.CreateBucketConfiguration, context);\n }\n let contents;\n if (input.CreateBucketConfiguration !== undefined) {\n contents = se_CreateBucketConfiguration(input.CreateBucketConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n body,\n });\n};\nexport const se_CreateMultipartUploadCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-acl\": input.ACL,\n \"cache-control\": input.CacheControl,\n \"content-disposition\": input.ContentDisposition,\n \"content-encoding\": input.ContentEncoding,\n \"content-language\": input.ContentLanguage,\n \"content-type\": input.ContentType,\n expires: [() => isSerializableHeaderValue(input.Expires), () => __dateToUtcString(input.Expires).toString()],\n \"x-amz-grant-full-control\": input.GrantFullControl,\n \"x-amz-grant-read\": input.GrantRead,\n \"x-amz-grant-read-acp\": input.GrantReadACP,\n \"x-amz-grant-write-acp\": input.GrantWriteACP,\n \"x-amz-server-side-encryption\": input.ServerSideEncryption,\n \"x-amz-storage-class\": input.StorageClass,\n \"x-amz-website-redirect-location\": input.WebsiteRedirectLocation,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-server-side-encryption-aws-kms-key-id\": input.SSEKMSKeyId,\n \"x-amz-server-side-encryption-context\": input.SSEKMSEncryptionContext,\n \"x-amz-server-side-encryption-bucket-key-enabled\": [\n () => isSerializableHeaderValue(input.BucketKeyEnabled),\n () => input.BucketKeyEnabled.toString(),\n ],\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-tagging\": input.Tagging,\n \"x-amz-object-lock-mode\": input.ObjectLockMode,\n \"x-amz-object-lock-retain-until-date\": [\n () => isSerializableHeaderValue(input.ObjectLockRetainUntilDate),\n () => (input.ObjectLockRetainUntilDate.toISOString().split(\".\")[0] + \"Z\").toString(),\n ],\n \"x-amz-object-lock-legal-hold\": input.ObjectLockLegalHoldStatus,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-checksum-algorithm\": input.ChecksumAlgorithm,\n ...(input.Metadata !== undefined &&\n Object.keys(input.Metadata).reduce((acc, suffix) => {\n acc[`x-amz-meta-${suffix.toLowerCase()}`] = input.Metadata[suffix];\n return acc;\n }, {})),\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n uploads: [, \"\"],\n \"x-id\": [, \"CreateMultipartUpload\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"POST\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteBucketCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n body,\n });\n};\nexport const se_DeleteBucketAnalyticsConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n analytics: [, \"\"],\n id: [, __expectNonNull(input.Id, `Id`)],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteBucketCorsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n cors: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteBucketEncryptionCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n encryption: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteBucketIntelligentTieringConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = {};\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n \"intelligent-tiering\": [, \"\"],\n id: [, __expectNonNull(input.Id, `Id`)],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteBucketInventoryConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n inventory: [, \"\"],\n id: [, __expectNonNull(input.Id, `Id`)],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteBucketLifecycleCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n lifecycle: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteBucketMetricsConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n metrics: [, \"\"],\n id: [, __expectNonNull(input.Id, `Id`)],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteBucketOwnershipControlsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n ownershipControls: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteBucketPolicyCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n policy: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteBucketReplicationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n replication: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteBucketTaggingCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n tagging: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteBucketWebsiteCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n website: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteObjectCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-mfa\": input.MFA,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-bypass-governance-retention\": [\n () => isSerializableHeaderValue(input.BypassGovernanceRetention),\n () => input.BypassGovernanceRetention.toString(),\n ],\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"x-id\": [, \"DeleteObject\"],\n versionId: [, input.VersionId],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteObjectsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-mfa\": input.MFA,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-bypass-governance-retention\": [\n () => isSerializableHeaderValue(input.BypassGovernanceRetention),\n () => input.BypassGovernanceRetention.toString(),\n ],\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n delete: [, \"\"],\n \"x-id\": [, \"DeleteObjects\"],\n });\n let body;\n if (input.Delete !== undefined) {\n body = se_Delete(input.Delete, context);\n }\n let contents;\n if (input.Delete !== undefined) {\n contents = se_Delete(input.Delete, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"POST\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeleteObjectTaggingCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n tagging: [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_DeletePublicAccessBlockCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n publicAccessBlock: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"DELETE\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketAccelerateConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-request-payer\": input.RequestPayer,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n accelerate: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketAclCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n acl: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketAnalyticsConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n analytics: [, \"\"],\n \"x-id\": [, \"GetBucketAnalyticsConfiguration\"],\n id: [, __expectNonNull(input.Id, `Id`)],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketCorsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n cors: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketEncryptionCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n encryption: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketIntelligentTieringConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = {};\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n \"intelligent-tiering\": [, \"\"],\n \"x-id\": [, \"GetBucketIntelligentTieringConfiguration\"],\n id: [, __expectNonNull(input.Id, `Id`)],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketInventoryConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n inventory: [, \"\"],\n \"x-id\": [, \"GetBucketInventoryConfiguration\"],\n id: [, __expectNonNull(input.Id, `Id`)],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketLifecycleConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n lifecycle: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketLocationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n location: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketLoggingCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n logging: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketMetricsConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n metrics: [, \"\"],\n \"x-id\": [, \"GetBucketMetricsConfiguration\"],\n id: [, __expectNonNull(input.Id, `Id`)],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketNotificationConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n notification: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketOwnershipControlsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n ownershipControls: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketPolicyCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n policy: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketPolicyStatusCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n policyStatus: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketReplicationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n replication: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketRequestPaymentCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n requestPayment: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketTaggingCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n tagging: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketVersioningCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n versioning: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetBucketWebsiteCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n website: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetObjectCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"if-match\": input.IfMatch,\n \"if-modified-since\": [\n () => isSerializableHeaderValue(input.IfModifiedSince),\n () => __dateToUtcString(input.IfModifiedSince).toString(),\n ],\n \"if-none-match\": input.IfNoneMatch,\n \"if-unmodified-since\": [\n () => isSerializableHeaderValue(input.IfUnmodifiedSince),\n () => __dateToUtcString(input.IfUnmodifiedSince).toString(),\n ],\n range: input.Range,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-checksum-mode\": input.ChecksumMode,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"x-id\": [, \"GetObject\"],\n \"response-cache-control\": [, input.ResponseCacheControl],\n \"response-content-disposition\": [, input.ResponseContentDisposition],\n \"response-content-encoding\": [, input.ResponseContentEncoding],\n \"response-content-language\": [, input.ResponseContentLanguage],\n \"response-content-type\": [, input.ResponseContentType],\n \"response-expires\": [\n () => input.ResponseExpires !== void 0,\n () => __dateToUtcString(input.ResponseExpires).toString(),\n ],\n versionId: [, input.VersionId],\n partNumber: [() => input.PartNumber !== void 0, () => input.PartNumber.toString()],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetObjectAclCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n acl: [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetObjectAttributesCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-max-parts\": [() => isSerializableHeaderValue(input.MaxParts), () => input.MaxParts.toString()],\n \"x-amz-part-number-marker\": input.PartNumberMarker,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-object-attributes\": [\n () => isSerializableHeaderValue(input.ObjectAttributes),\n () => (input.ObjectAttributes || []).map((_entry) => _entry).join(\", \"),\n ],\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n attributes: [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetObjectLegalHoldCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"legal-hold\": [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetObjectLockConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n \"object-lock\": [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetObjectRetentionCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n retention: [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetObjectTaggingCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-request-payer\": input.RequestPayer,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n tagging: [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetObjectTorrentCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n torrent: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_GetPublicAccessBlockCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n publicAccessBlock: [, \"\"],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_HeadBucketCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"HEAD\",\n headers,\n path: resolvedPath,\n body,\n });\n};\nexport const se_HeadObjectCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"if-match\": input.IfMatch,\n \"if-modified-since\": [\n () => isSerializableHeaderValue(input.IfModifiedSince),\n () => __dateToUtcString(input.IfModifiedSince).toString(),\n ],\n \"if-none-match\": input.IfNoneMatch,\n \"if-unmodified-since\": [\n () => isSerializableHeaderValue(input.IfUnmodifiedSince),\n () => __dateToUtcString(input.IfUnmodifiedSince).toString(),\n ],\n range: input.Range,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-checksum-mode\": input.ChecksumMode,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n versionId: [, input.VersionId],\n partNumber: [() => input.PartNumber !== void 0, () => input.PartNumber.toString()],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"HEAD\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_ListBucketAnalyticsConfigurationsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n analytics: [, \"\"],\n \"x-id\": [, \"ListBucketAnalyticsConfigurations\"],\n \"continuation-token\": [, input.ContinuationToken],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_ListBucketIntelligentTieringConfigurationsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = {};\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n \"intelligent-tiering\": [, \"\"],\n \"x-id\": [, \"ListBucketIntelligentTieringConfigurations\"],\n \"continuation-token\": [, input.ContinuationToken],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_ListBucketInventoryConfigurationsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n inventory: [, \"\"],\n \"x-id\": [, \"ListBucketInventoryConfigurations\"],\n \"continuation-token\": [, input.ContinuationToken],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_ListBucketMetricsConfigurationsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n metrics: [, \"\"],\n \"x-id\": [, \"ListBucketMetricsConfigurations\"],\n \"continuation-token\": [, input.ContinuationToken],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_ListBucketsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = {\n \"content-type\": \"application/xml\",\n };\n const resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n let body;\n body = \"\";\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n body,\n });\n};\nexport const se_ListMultipartUploadsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-request-payer\": input.RequestPayer,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n uploads: [, \"\"],\n delimiter: [, input.Delimiter],\n \"encoding-type\": [, input.EncodingType],\n \"key-marker\": [, input.KeyMarker],\n \"max-uploads\": [() => input.MaxUploads !== void 0, () => input.MaxUploads.toString()],\n prefix: [, input.Prefix],\n \"upload-id-marker\": [, input.UploadIdMarker],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_ListObjectsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-optional-object-attributes\": [\n () => isSerializableHeaderValue(input.OptionalObjectAttributes),\n () => (input.OptionalObjectAttributes || []).map((_entry) => _entry).join(\", \"),\n ],\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n delimiter: [, input.Delimiter],\n \"encoding-type\": [, input.EncodingType],\n marker: [, input.Marker],\n \"max-keys\": [() => input.MaxKeys !== void 0, () => input.MaxKeys.toString()],\n prefix: [, input.Prefix],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_ListObjectsV2Command = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-optional-object-attributes\": [\n () => isSerializableHeaderValue(input.OptionalObjectAttributes),\n () => (input.OptionalObjectAttributes || []).map((_entry) => _entry).join(\", \"),\n ],\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n \"list-type\": [, \"2\"],\n delimiter: [, input.Delimiter],\n \"encoding-type\": [, input.EncodingType],\n \"max-keys\": [() => input.MaxKeys !== void 0, () => input.MaxKeys.toString()],\n prefix: [, input.Prefix],\n \"continuation-token\": [, input.ContinuationToken],\n \"fetch-owner\": [() => input.FetchOwner !== void 0, () => input.FetchOwner.toString()],\n \"start-after\": [, input.StartAfter],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_ListObjectVersionsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-optional-object-attributes\": [\n () => isSerializableHeaderValue(input.OptionalObjectAttributes),\n () => (input.OptionalObjectAttributes || []).map((_entry) => _entry).join(\", \"),\n ],\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n versions: [, \"\"],\n delimiter: [, input.Delimiter],\n \"encoding-type\": [, input.EncodingType],\n \"key-marker\": [, input.KeyMarker],\n \"max-keys\": [() => input.MaxKeys !== void 0, () => input.MaxKeys.toString()],\n prefix: [, input.Prefix],\n \"version-id-marker\": [, input.VersionIdMarker],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_ListPartsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"x-id\": [, \"ListParts\"],\n \"max-parts\": [() => input.MaxParts !== void 0, () => input.MaxParts.toString()],\n \"part-number-marker\": [, input.PartNumberMarker],\n uploadId: [, __expectNonNull(input.UploadId, `UploadId`)],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"GET\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketAccelerateConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n accelerate: [, \"\"],\n });\n let body;\n if (input.AccelerateConfiguration !== undefined) {\n body = se_AccelerateConfiguration(input.AccelerateConfiguration, context);\n }\n let contents;\n if (input.AccelerateConfiguration !== undefined) {\n contents = se_AccelerateConfiguration(input.AccelerateConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketAclCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-acl\": input.ACL,\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-grant-full-control\": input.GrantFullControl,\n \"x-amz-grant-read\": input.GrantRead,\n \"x-amz-grant-read-acp\": input.GrantReadACP,\n \"x-amz-grant-write\": input.GrantWrite,\n \"x-amz-grant-write-acp\": input.GrantWriteACP,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n acl: [, \"\"],\n });\n let body;\n if (input.AccessControlPolicy !== undefined) {\n body = se_AccessControlPolicy(input.AccessControlPolicy, context);\n }\n let contents;\n if (input.AccessControlPolicy !== undefined) {\n contents = se_AccessControlPolicy(input.AccessControlPolicy, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketAnalyticsConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n analytics: [, \"\"],\n id: [, __expectNonNull(input.Id, `Id`)],\n });\n let body;\n if (input.AnalyticsConfiguration !== undefined) {\n body = se_AnalyticsConfiguration(input.AnalyticsConfiguration, context);\n }\n let contents;\n if (input.AnalyticsConfiguration !== undefined) {\n contents = se_AnalyticsConfiguration(input.AnalyticsConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketCorsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n cors: [, \"\"],\n });\n let body;\n if (input.CORSConfiguration !== undefined) {\n body = se_CORSConfiguration(input.CORSConfiguration, context);\n }\n let contents;\n if (input.CORSConfiguration !== undefined) {\n contents = se_CORSConfiguration(input.CORSConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketEncryptionCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n encryption: [, \"\"],\n });\n let body;\n if (input.ServerSideEncryptionConfiguration !== undefined) {\n body = se_ServerSideEncryptionConfiguration(input.ServerSideEncryptionConfiguration, context);\n }\n let contents;\n if (input.ServerSideEncryptionConfiguration !== undefined) {\n contents = se_ServerSideEncryptionConfiguration(input.ServerSideEncryptionConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketIntelligentTieringConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = {\n \"content-type\": \"application/xml\",\n };\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n \"intelligent-tiering\": [, \"\"],\n id: [, __expectNonNull(input.Id, `Id`)],\n });\n let body;\n if (input.IntelligentTieringConfiguration !== undefined) {\n body = se_IntelligentTieringConfiguration(input.IntelligentTieringConfiguration, context);\n }\n let contents;\n if (input.IntelligentTieringConfiguration !== undefined) {\n contents = se_IntelligentTieringConfiguration(input.IntelligentTieringConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketInventoryConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n inventory: [, \"\"],\n id: [, __expectNonNull(input.Id, `Id`)],\n });\n let body;\n if (input.InventoryConfiguration !== undefined) {\n body = se_InventoryConfiguration(input.InventoryConfiguration, context);\n }\n let contents;\n if (input.InventoryConfiguration !== undefined) {\n contents = se_InventoryConfiguration(input.InventoryConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketLifecycleConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n lifecycle: [, \"\"],\n });\n let body;\n if (input.LifecycleConfiguration !== undefined) {\n body = se_BucketLifecycleConfiguration(input.LifecycleConfiguration, context);\n }\n let contents;\n if (input.LifecycleConfiguration !== undefined) {\n contents = se_BucketLifecycleConfiguration(input.LifecycleConfiguration, context);\n contents = contents.withName(\"LifecycleConfiguration\");\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketLoggingCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n logging: [, \"\"],\n });\n let body;\n if (input.BucketLoggingStatus !== undefined) {\n body = se_BucketLoggingStatus(input.BucketLoggingStatus, context);\n }\n let contents;\n if (input.BucketLoggingStatus !== undefined) {\n contents = se_BucketLoggingStatus(input.BucketLoggingStatus, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketMetricsConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n metrics: [, \"\"],\n id: [, __expectNonNull(input.Id, `Id`)],\n });\n let body;\n if (input.MetricsConfiguration !== undefined) {\n body = se_MetricsConfiguration(input.MetricsConfiguration, context);\n }\n let contents;\n if (input.MetricsConfiguration !== undefined) {\n contents = se_MetricsConfiguration(input.MetricsConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketNotificationConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-skip-destination-validation\": [\n () => isSerializableHeaderValue(input.SkipDestinationValidation),\n () => input.SkipDestinationValidation.toString(),\n ],\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n notification: [, \"\"],\n });\n let body;\n if (input.NotificationConfiguration !== undefined) {\n body = se_NotificationConfiguration(input.NotificationConfiguration, context);\n }\n let contents;\n if (input.NotificationConfiguration !== undefined) {\n contents = se_NotificationConfiguration(input.NotificationConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketOwnershipControlsCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n ownershipControls: [, \"\"],\n });\n let body;\n if (input.OwnershipControls !== undefined) {\n body = se_OwnershipControls(input.OwnershipControls, context);\n }\n let contents;\n if (input.OwnershipControls !== undefined) {\n contents = se_OwnershipControls(input.OwnershipControls, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketPolicyCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"text/plain\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-confirm-remove-self-bucket-access\": [\n () => isSerializableHeaderValue(input.ConfirmRemoveSelfBucketAccess),\n () => input.ConfirmRemoveSelfBucketAccess.toString(),\n ],\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n policy: [, \"\"],\n });\n let body;\n if (input.Policy !== undefined) {\n body = input.Policy;\n }\n let contents;\n if (input.Policy !== undefined) {\n contents = input.Policy;\n body = contents;\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketReplicationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-bucket-object-lock-token\": input.Token,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n replication: [, \"\"],\n });\n let body;\n if (input.ReplicationConfiguration !== undefined) {\n body = se_ReplicationConfiguration(input.ReplicationConfiguration, context);\n }\n let contents;\n if (input.ReplicationConfiguration !== undefined) {\n contents = se_ReplicationConfiguration(input.ReplicationConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketRequestPaymentCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n requestPayment: [, \"\"],\n });\n let body;\n if (input.RequestPaymentConfiguration !== undefined) {\n body = se_RequestPaymentConfiguration(input.RequestPaymentConfiguration, context);\n }\n let contents;\n if (input.RequestPaymentConfiguration !== undefined) {\n contents = se_RequestPaymentConfiguration(input.RequestPaymentConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketTaggingCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n tagging: [, \"\"],\n });\n let body;\n if (input.Tagging !== undefined) {\n body = se_Tagging(input.Tagging, context);\n }\n let contents;\n if (input.Tagging !== undefined) {\n contents = se_Tagging(input.Tagging, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketVersioningCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-mfa\": input.MFA,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n versioning: [, \"\"],\n });\n let body;\n if (input.VersioningConfiguration !== undefined) {\n body = se_VersioningConfiguration(input.VersioningConfiguration, context);\n }\n let contents;\n if (input.VersioningConfiguration !== undefined) {\n contents = se_VersioningConfiguration(input.VersioningConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutBucketWebsiteCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n website: [, \"\"],\n });\n let body;\n if (input.WebsiteConfiguration !== undefined) {\n body = se_WebsiteConfiguration(input.WebsiteConfiguration, context);\n }\n let contents;\n if (input.WebsiteConfiguration !== undefined) {\n contents = se_WebsiteConfiguration(input.WebsiteConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutObjectCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": input.ContentType || \"application/octet-stream\",\n \"x-amz-acl\": input.ACL,\n \"cache-control\": input.CacheControl,\n \"content-disposition\": input.ContentDisposition,\n \"content-encoding\": input.ContentEncoding,\n \"content-language\": input.ContentLanguage,\n \"content-length\": [() => isSerializableHeaderValue(input.ContentLength), () => input.ContentLength.toString()],\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-checksum-crc32\": input.ChecksumCRC32,\n \"x-amz-checksum-crc32c\": input.ChecksumCRC32C,\n \"x-amz-checksum-sha1\": input.ChecksumSHA1,\n \"x-amz-checksum-sha256\": input.ChecksumSHA256,\n expires: [() => isSerializableHeaderValue(input.Expires), () => __dateToUtcString(input.Expires).toString()],\n \"x-amz-grant-full-control\": input.GrantFullControl,\n \"x-amz-grant-read\": input.GrantRead,\n \"x-amz-grant-read-acp\": input.GrantReadACP,\n \"x-amz-grant-write-acp\": input.GrantWriteACP,\n \"x-amz-server-side-encryption\": input.ServerSideEncryption,\n \"x-amz-storage-class\": input.StorageClass,\n \"x-amz-website-redirect-location\": input.WebsiteRedirectLocation,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-server-side-encryption-aws-kms-key-id\": input.SSEKMSKeyId,\n \"x-amz-server-side-encryption-context\": input.SSEKMSEncryptionContext,\n \"x-amz-server-side-encryption-bucket-key-enabled\": [\n () => isSerializableHeaderValue(input.BucketKeyEnabled),\n () => input.BucketKeyEnabled.toString(),\n ],\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-tagging\": input.Tagging,\n \"x-amz-object-lock-mode\": input.ObjectLockMode,\n \"x-amz-object-lock-retain-until-date\": [\n () => isSerializableHeaderValue(input.ObjectLockRetainUntilDate),\n () => (input.ObjectLockRetainUntilDate.toISOString().split(\".\")[0] + \"Z\").toString(),\n ],\n \"x-amz-object-lock-legal-hold\": input.ObjectLockLegalHoldStatus,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n ...(input.Metadata !== undefined &&\n Object.keys(input.Metadata).reduce((acc, suffix) => {\n acc[`x-amz-meta-${suffix.toLowerCase()}`] = input.Metadata[suffix];\n return acc;\n }, {})),\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"x-id\": [, \"PutObject\"],\n });\n let body;\n if (input.Body !== undefined) {\n body = input.Body;\n }\n let contents;\n if (input.Body !== undefined) {\n contents = input.Body;\n body = contents;\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutObjectAclCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-acl\": input.ACL,\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-grant-full-control\": input.GrantFullControl,\n \"x-amz-grant-read\": input.GrantRead,\n \"x-amz-grant-read-acp\": input.GrantReadACP,\n \"x-amz-grant-write\": input.GrantWrite,\n \"x-amz-grant-write-acp\": input.GrantWriteACP,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n acl: [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n if (input.AccessControlPolicy !== undefined) {\n body = se_AccessControlPolicy(input.AccessControlPolicy, context);\n }\n let contents;\n if (input.AccessControlPolicy !== undefined) {\n contents = se_AccessControlPolicy(input.AccessControlPolicy, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutObjectLegalHoldCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-request-payer\": input.RequestPayer,\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"legal-hold\": [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n if (input.LegalHold !== undefined) {\n body = se_ObjectLockLegalHold(input.LegalHold, context);\n }\n let contents;\n if (input.LegalHold !== undefined) {\n contents = se_ObjectLockLegalHold(input.LegalHold, context);\n contents = contents.withName(\"LegalHold\");\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutObjectLockConfigurationCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-bucket-object-lock-token\": input.Token,\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n \"object-lock\": [, \"\"],\n });\n let body;\n if (input.ObjectLockConfiguration !== undefined) {\n body = se_ObjectLockConfiguration(input.ObjectLockConfiguration, context);\n }\n let contents;\n if (input.ObjectLockConfiguration !== undefined) {\n contents = se_ObjectLockConfiguration(input.ObjectLockConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutObjectRetentionCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-bypass-governance-retention\": [\n () => isSerializableHeaderValue(input.BypassGovernanceRetention),\n () => input.BypassGovernanceRetention.toString(),\n ],\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n retention: [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n if (input.Retention !== undefined) {\n body = se_ObjectLockRetention(input.Retention, context);\n }\n let contents;\n if (input.Retention !== undefined) {\n contents = se_ObjectLockRetention(input.Retention, context);\n contents = contents.withName(\"Retention\");\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutObjectTaggingCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-request-payer\": input.RequestPayer,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n tagging: [, \"\"],\n versionId: [, input.VersionId],\n });\n let body;\n if (input.Tagging !== undefined) {\n body = se_Tagging(input.Tagging, context);\n }\n let contents;\n if (input.Tagging !== undefined) {\n contents = se_Tagging(input.Tagging, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_PutPublicAccessBlockCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n const query = map({\n publicAccessBlock: [, \"\"],\n });\n let body;\n if (input.PublicAccessBlockConfiguration !== undefined) {\n body = se_PublicAccessBlockConfiguration(input.PublicAccessBlockConfiguration, context);\n }\n let contents;\n if (input.PublicAccessBlockConfiguration !== undefined) {\n contents = se_PublicAccessBlockConfiguration(input.PublicAccessBlockConfiguration, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_RestoreObjectCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n restore: [, \"\"],\n \"x-id\": [, \"RestoreObject\"],\n versionId: [, input.VersionId],\n });\n let body;\n if (input.RestoreRequest !== undefined) {\n body = se_RestoreRequest(input.RestoreRequest, context);\n }\n let contents;\n if (input.RestoreRequest !== undefined) {\n contents = se_RestoreRequest(input.RestoreRequest, context);\n body = '';\n contents.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n body += contents.toString();\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"POST\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_SelectObjectContentCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/xml\",\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n select: [, \"\"],\n \"select-type\": [, \"2\"],\n \"x-id\": [, \"SelectObjectContent\"],\n });\n let body;\n body = '';\n const bodyNode = new __XmlNode(\"SelectObjectContentRequest\");\n bodyNode.addAttribute(\"xmlns\", \"http://s3.amazonaws.com/doc/2006-03-01/\");\n if (input.Expression !== undefined) {\n const node = __XmlNode.of(\"Expression\", input.Expression).withName(\"Expression\");\n bodyNode.addChildNode(node);\n }\n if (input.ExpressionType !== undefined) {\n const node = __XmlNode.of(\"ExpressionType\", input.ExpressionType).withName(\"ExpressionType\");\n bodyNode.addChildNode(node);\n }\n if (input.InputSerialization !== undefined) {\n const node = se_InputSerialization(input.InputSerialization, context).withName(\"InputSerialization\");\n bodyNode.addChildNode(node);\n }\n if (input.OutputSerialization !== undefined) {\n const node = se_OutputSerialization(input.OutputSerialization, context).withName(\"OutputSerialization\");\n bodyNode.addChildNode(node);\n }\n if (input.RequestProgress !== undefined) {\n const node = se_RequestProgress(input.RequestProgress, context).withName(\"RequestProgress\");\n bodyNode.addChildNode(node);\n }\n if (input.ScanRange !== undefined) {\n const node = se_ScanRange(input.ScanRange, context).withName(\"ScanRange\");\n bodyNode.addChildNode(node);\n }\n body += bodyNode.toString();\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"POST\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_UploadPartCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"content-type\": \"application/octet-stream\",\n \"content-length\": [() => isSerializableHeaderValue(input.ContentLength), () => input.ContentLength.toString()],\n \"content-md5\": input.ContentMD5,\n \"x-amz-sdk-checksum-algorithm\": input.ChecksumAlgorithm,\n \"x-amz-checksum-crc32\": input.ChecksumCRC32,\n \"x-amz-checksum-crc32c\": input.ChecksumCRC32C,\n \"x-amz-checksum-sha1\": input.ChecksumSHA1,\n \"x-amz-checksum-sha256\": input.ChecksumSHA256,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"x-id\": [, \"UploadPart\"],\n partNumber: [__expectNonNull(input.PartNumber, `PartNumber`) != null, () => input.PartNumber.toString()],\n uploadId: [, __expectNonNull(input.UploadId, `UploadId`)],\n });\n let body;\n if (input.Body !== undefined) {\n body = input.Body;\n }\n let contents;\n if (input.Body !== undefined) {\n contents = input.Body;\n body = contents;\n }\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_UploadPartCopyCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-copy-source\": input.CopySource,\n \"x-amz-copy-source-if-match\": input.CopySourceIfMatch,\n \"x-amz-copy-source-if-modified-since\": [\n () => isSerializableHeaderValue(input.CopySourceIfModifiedSince),\n () => __dateToUtcString(input.CopySourceIfModifiedSince).toString(),\n ],\n \"x-amz-copy-source-if-none-match\": input.CopySourceIfNoneMatch,\n \"x-amz-copy-source-if-unmodified-since\": [\n () => isSerializableHeaderValue(input.CopySourceIfUnmodifiedSince),\n () => __dateToUtcString(input.CopySourceIfUnmodifiedSince).toString(),\n ],\n \"x-amz-copy-source-range\": input.CopySourceRange,\n \"x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-server-side-encryption-customer-key\": input.SSECustomerKey,\n \"x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-copy-source-server-side-encryption-customer-algorithm\": input.CopySourceSSECustomerAlgorithm,\n \"x-amz-copy-source-server-side-encryption-customer-key\": input.CopySourceSSECustomerKey,\n \"x-amz-copy-source-server-side-encryption-customer-key-md5\": input.CopySourceSSECustomerKeyMD5,\n \"x-amz-request-payer\": input.RequestPayer,\n \"x-amz-expected-bucket-owner\": input.ExpectedBucketOwner,\n \"x-amz-source-expected-bucket-owner\": input.ExpectedSourceBucketOwner,\n });\n let resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/{Key+}\";\n resolvedPath = __resolvedPath(resolvedPath, input, \"Bucket\", () => input.Bucket, \"{Bucket}\", false);\n resolvedPath = __resolvedPath(resolvedPath, input, \"Key\", () => input.Key, \"{Key+}\", true);\n const query = map({\n \"x-id\": [, \"UploadPartCopy\"],\n partNumber: [__expectNonNull(input.PartNumber, `PartNumber`) != null, () => input.PartNumber.toString()],\n uploadId: [, __expectNonNull(input.UploadId, `UploadId`)],\n });\n let body;\n return new __HttpRequest({\n protocol,\n hostname,\n port,\n method: \"PUT\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const se_WriteGetObjectResponseCommand = async (input, context) => {\n const { hostname, protocol = \"https\", port, path: basePath } = await context.endpoint();\n const headers = map({}, isSerializableHeaderValue, {\n \"x-amz-content-sha256\": \"UNSIGNED-PAYLOAD\",\n \"content-type\": \"application/octet-stream\",\n \"x-amz-request-route\": input.RequestRoute,\n \"x-amz-request-token\": input.RequestToken,\n \"x-amz-fwd-status\": [() => isSerializableHeaderValue(input.StatusCode), () => input.StatusCode.toString()],\n \"x-amz-fwd-error-code\": input.ErrorCode,\n \"x-amz-fwd-error-message\": input.ErrorMessage,\n \"x-amz-fwd-header-accept-ranges\": input.AcceptRanges,\n \"x-amz-fwd-header-cache-control\": input.CacheControl,\n \"x-amz-fwd-header-content-disposition\": input.ContentDisposition,\n \"x-amz-fwd-header-content-encoding\": input.ContentEncoding,\n \"x-amz-fwd-header-content-language\": input.ContentLanguage,\n \"content-length\": [() => isSerializableHeaderValue(input.ContentLength), () => input.ContentLength.toString()],\n \"x-amz-fwd-header-content-range\": input.ContentRange,\n \"x-amz-fwd-header-content-type\": input.ContentType,\n \"x-amz-fwd-header-x-amz-checksum-crc32\": input.ChecksumCRC32,\n \"x-amz-fwd-header-x-amz-checksum-crc32c\": input.ChecksumCRC32C,\n \"x-amz-fwd-header-x-amz-checksum-sha1\": input.ChecksumSHA1,\n \"x-amz-fwd-header-x-amz-checksum-sha256\": input.ChecksumSHA256,\n \"x-amz-fwd-header-x-amz-delete-marker\": [\n () => isSerializableHeaderValue(input.DeleteMarker),\n () => input.DeleteMarker.toString(),\n ],\n \"x-amz-fwd-header-etag\": input.ETag,\n \"x-amz-fwd-header-expires\": [\n () => isSerializableHeaderValue(input.Expires),\n () => __dateToUtcString(input.Expires).toString(),\n ],\n \"x-amz-fwd-header-x-amz-expiration\": input.Expiration,\n \"x-amz-fwd-header-last-modified\": [\n () => isSerializableHeaderValue(input.LastModified),\n () => __dateToUtcString(input.LastModified).toString(),\n ],\n \"x-amz-fwd-header-x-amz-missing-meta\": [\n () => isSerializableHeaderValue(input.MissingMeta),\n () => input.MissingMeta.toString(),\n ],\n \"x-amz-fwd-header-x-amz-object-lock-mode\": input.ObjectLockMode,\n \"x-amz-fwd-header-x-amz-object-lock-legal-hold\": input.ObjectLockLegalHoldStatus,\n \"x-amz-fwd-header-x-amz-object-lock-retain-until-date\": [\n () => isSerializableHeaderValue(input.ObjectLockRetainUntilDate),\n () => (input.ObjectLockRetainUntilDate.toISOString().split(\".\")[0] + \"Z\").toString(),\n ],\n \"x-amz-fwd-header-x-amz-mp-parts-count\": [\n () => isSerializableHeaderValue(input.PartsCount),\n () => input.PartsCount.toString(),\n ],\n \"x-amz-fwd-header-x-amz-replication-status\": input.ReplicationStatus,\n \"x-amz-fwd-header-x-amz-request-charged\": input.RequestCharged,\n \"x-amz-fwd-header-x-amz-restore\": input.Restore,\n \"x-amz-fwd-header-x-amz-server-side-encryption\": input.ServerSideEncryption,\n \"x-amz-fwd-header-x-amz-server-side-encryption-customer-algorithm\": input.SSECustomerAlgorithm,\n \"x-amz-fwd-header-x-amz-server-side-encryption-aws-kms-key-id\": input.SSEKMSKeyId,\n \"x-amz-fwd-header-x-amz-server-side-encryption-customer-key-md5\": input.SSECustomerKeyMD5,\n \"x-amz-fwd-header-x-amz-storage-class\": input.StorageClass,\n \"x-amz-fwd-header-x-amz-tagging-count\": [\n () => isSerializableHeaderValue(input.TagCount),\n () => input.TagCount.toString(),\n ],\n \"x-amz-fwd-header-x-amz-version-id\": input.VersionId,\n \"x-amz-fwd-header-x-amz-server-side-encryption-bucket-key-enabled\": [\n () => isSerializableHeaderValue(input.BucketKeyEnabled),\n () => input.BucketKeyEnabled.toString(),\n ],\n ...(input.Metadata !== undefined &&\n Object.keys(input.Metadata).reduce((acc, suffix) => {\n acc[`x-amz-meta-${suffix.toLowerCase()}`] = input.Metadata[suffix];\n return acc;\n }, {})),\n });\n const resolvedPath = `${basePath?.endsWith(\"/\") ? basePath.slice(0, -1) : basePath || \"\"}` + \"/WriteGetObjectResponse\";\n const query = map({\n \"x-id\": [, \"WriteGetObjectResponse\"],\n });\n let body;\n if (input.Body !== undefined) {\n body = input.Body;\n }\n let contents;\n if (input.Body !== undefined) {\n contents = input.Body;\n body = contents;\n }\n let { hostname: resolvedHostname } = await context.endpoint();\n if (context.disableHostPrefix !== true) {\n resolvedHostname = \"{RequestRoute}.\" + resolvedHostname;\n if (input.RequestRoute === undefined) {\n throw new Error(\"Empty value provided for input host prefix: RequestRoute.\");\n }\n resolvedHostname = resolvedHostname.replace(\"{RequestRoute}\", input.RequestRoute);\n if (!__isValidHostname(resolvedHostname)) {\n throw new Error(\"ValidationError: prefixed hostname must be hostname compatible.\");\n }\n }\n return new __HttpRequest({\n protocol,\n hostname: resolvedHostname,\n port,\n method: \"POST\",\n headers,\n path: resolvedPath,\n query,\n body,\n });\n};\nexport const de_AbortMultipartUploadCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_AbortMultipartUploadCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_AbortMultipartUploadCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"NoSuchUpload\":\n case \"com.amazonaws.s3#NoSuchUpload\":\n throw await de_NoSuchUploadRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_CompleteMultipartUploadCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CompleteMultipartUploadCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n Expiration: [, output.headers[\"x-amz-expiration\"]],\n ServerSideEncryption: [, output.headers[\"x-amz-server-side-encryption\"]],\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n SSEKMSKeyId: [, output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"]],\n BucketKeyEnabled: [\n () => void 0 !== output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"],\n () => __parseBoolean(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]),\n ],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"Bucket\"] !== undefined) {\n contents.Bucket = __expectString(data[\"Bucket\"]);\n }\n if (data[\"ChecksumCRC32\"] !== undefined) {\n contents.ChecksumCRC32 = __expectString(data[\"ChecksumCRC32\"]);\n }\n if (data[\"ChecksumCRC32C\"] !== undefined) {\n contents.ChecksumCRC32C = __expectString(data[\"ChecksumCRC32C\"]);\n }\n if (data[\"ChecksumSHA1\"] !== undefined) {\n contents.ChecksumSHA1 = __expectString(data[\"ChecksumSHA1\"]);\n }\n if (data[\"ChecksumSHA256\"] !== undefined) {\n contents.ChecksumSHA256 = __expectString(data[\"ChecksumSHA256\"]);\n }\n if (data[\"ETag\"] !== undefined) {\n contents.ETag = __expectString(data[\"ETag\"]);\n }\n if (data[\"Key\"] !== undefined) {\n contents.Key = __expectString(data[\"Key\"]);\n }\n if (data[\"Location\"] !== undefined) {\n contents.Location = __expectString(data[\"Location\"]);\n }\n return contents;\n};\nconst de_CompleteMultipartUploadCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_CopyObjectCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CopyObjectCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n Expiration: [, output.headers[\"x-amz-expiration\"]],\n CopySourceVersionId: [, output.headers[\"x-amz-copy-source-version-id\"]],\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n ServerSideEncryption: [, output.headers[\"x-amz-server-side-encryption\"]],\n SSECustomerAlgorithm: [, output.headers[\"x-amz-server-side-encryption-customer-algorithm\"]],\n SSECustomerKeyMD5: [, output.headers[\"x-amz-server-side-encryption-customer-key-md5\"]],\n SSEKMSKeyId: [, output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"]],\n SSEKMSEncryptionContext: [, output.headers[\"x-amz-server-side-encryption-context\"]],\n BucketKeyEnabled: [\n () => void 0 !== output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"],\n () => __parseBoolean(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]),\n ],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = __expectObject(await parseBody(output.body, context));\n contents.CopyObjectResult = de_CopyObjectResult(data, context);\n return contents;\n};\nconst de_CopyObjectCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ObjectNotInActiveTierError\":\n case \"com.amazonaws.s3#ObjectNotInActiveTierError\":\n throw await de_ObjectNotInActiveTierErrorRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_CreateBucketCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CreateBucketCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n Location: [, output.headers[\"location\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_CreateBucketCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"BucketAlreadyExists\":\n case \"com.amazonaws.s3#BucketAlreadyExists\":\n throw await de_BucketAlreadyExistsRes(parsedOutput, context);\n case \"BucketAlreadyOwnedByYou\":\n case \"com.amazonaws.s3#BucketAlreadyOwnedByYou\":\n throw await de_BucketAlreadyOwnedByYouRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_CreateMultipartUploadCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_CreateMultipartUploadCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n AbortDate: [\n () => void 0 !== output.headers[\"x-amz-abort-date\"],\n () => __expectNonNull(__parseRfc7231DateTime(output.headers[\"x-amz-abort-date\"])),\n ],\n AbortRuleId: [, output.headers[\"x-amz-abort-rule-id\"]],\n ServerSideEncryption: [, output.headers[\"x-amz-server-side-encryption\"]],\n SSECustomerAlgorithm: [, output.headers[\"x-amz-server-side-encryption-customer-algorithm\"]],\n SSECustomerKeyMD5: [, output.headers[\"x-amz-server-side-encryption-customer-key-md5\"]],\n SSEKMSKeyId: [, output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"]],\n SSEKMSEncryptionContext: [, output.headers[\"x-amz-server-side-encryption-context\"]],\n BucketKeyEnabled: [\n () => void 0 !== output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"],\n () => __parseBoolean(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]),\n ],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n ChecksumAlgorithm: [, output.headers[\"x-amz-checksum-algorithm\"]],\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"Bucket\"] !== undefined) {\n contents.Bucket = __expectString(data[\"Bucket\"]);\n }\n if (data[\"Key\"] !== undefined) {\n contents.Key = __expectString(data[\"Key\"]);\n }\n if (data[\"UploadId\"] !== undefined) {\n contents.UploadId = __expectString(data[\"UploadId\"]);\n }\n return contents;\n};\nconst de_CreateMultipartUploadCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteBucketCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteBucketCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteBucketCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteBucketAnalyticsConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteBucketAnalyticsConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteBucketAnalyticsConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteBucketCorsCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteBucketCorsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteBucketCorsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteBucketEncryptionCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteBucketEncryptionCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteBucketEncryptionCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteBucketIntelligentTieringConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteBucketIntelligentTieringConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteBucketIntelligentTieringConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteBucketInventoryConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteBucketInventoryConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteBucketInventoryConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteBucketLifecycleCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteBucketLifecycleCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteBucketLifecycleCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteBucketMetricsConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteBucketMetricsConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteBucketMetricsConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteBucketOwnershipControlsCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteBucketOwnershipControlsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteBucketOwnershipControlsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteBucketPolicyCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteBucketPolicyCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteBucketPolicyCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteBucketReplicationCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteBucketReplicationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteBucketReplicationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteBucketTaggingCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteBucketTaggingCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteBucketTaggingCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteBucketWebsiteCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteBucketWebsiteCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteBucketWebsiteCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteObjectCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteObjectCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n DeleteMarker: [\n () => void 0 !== output.headers[\"x-amz-delete-marker\"],\n () => __parseBoolean(output.headers[\"x-amz-delete-marker\"]),\n ],\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteObjectCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteObjectsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_DeleteObjectsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data.Deleted === \"\") {\n contents.Deleted = [];\n }\n else if (data[\"Deleted\"] !== undefined) {\n contents.Deleted = de_DeletedObjects(__getArrayIfSingleItem(data[\"Deleted\"]), context);\n }\n if (data.Error === \"\") {\n contents.Errors = [];\n }\n else if (data[\"Error\"] !== undefined) {\n contents.Errors = de_Errors(__getArrayIfSingleItem(data[\"Error\"]), context);\n }\n return contents;\n};\nconst de_DeleteObjectsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeleteObjectTaggingCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeleteObjectTaggingCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeleteObjectTaggingCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_DeletePublicAccessBlockCommand = async (output, context) => {\n if (output.statusCode !== 204 && output.statusCode >= 300) {\n return de_DeletePublicAccessBlockCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_DeletePublicAccessBlockCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketAccelerateConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketAccelerateConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"Status\"] !== undefined) {\n contents.Status = __expectString(data[\"Status\"]);\n }\n return contents;\n};\nconst de_GetBucketAccelerateConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketAclCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketAclCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data.AccessControlList === \"\") {\n contents.Grants = [];\n }\n else if (data[\"AccessControlList\"] !== undefined && data[\"AccessControlList\"][\"Grant\"] !== undefined) {\n contents.Grants = de_Grants(__getArrayIfSingleItem(data[\"AccessControlList\"][\"Grant\"]), context);\n }\n if (data[\"Owner\"] !== undefined) {\n contents.Owner = de_Owner(data[\"Owner\"], context);\n }\n return contents;\n};\nconst de_GetBucketAclCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketAnalyticsConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketAnalyticsConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectObject(await parseBody(output.body, context));\n contents.AnalyticsConfiguration = de_AnalyticsConfiguration(data, context);\n return contents;\n};\nconst de_GetBucketAnalyticsConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketCorsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketCorsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data.CORSRule === \"\") {\n contents.CORSRules = [];\n }\n else if (data[\"CORSRule\"] !== undefined) {\n contents.CORSRules = de_CORSRules(__getArrayIfSingleItem(data[\"CORSRule\"]), context);\n }\n return contents;\n};\nconst de_GetBucketCorsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketEncryptionCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketEncryptionCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectObject(await parseBody(output.body, context));\n contents.ServerSideEncryptionConfiguration = de_ServerSideEncryptionConfiguration(data, context);\n return contents;\n};\nconst de_GetBucketEncryptionCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketIntelligentTieringConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketIntelligentTieringConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectObject(await parseBody(output.body, context));\n contents.IntelligentTieringConfiguration = de_IntelligentTieringConfiguration(data, context);\n return contents;\n};\nconst de_GetBucketIntelligentTieringConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketInventoryConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketInventoryConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectObject(await parseBody(output.body, context));\n contents.InventoryConfiguration = de_InventoryConfiguration(data, context);\n return contents;\n};\nconst de_GetBucketInventoryConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketLifecycleConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketLifecycleConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data.Rule === \"\") {\n contents.Rules = [];\n }\n else if (data[\"Rule\"] !== undefined) {\n contents.Rules = de_LifecycleRules(__getArrayIfSingleItem(data[\"Rule\"]), context);\n }\n return contents;\n};\nconst de_GetBucketLifecycleConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketLocationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketLocationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"LocationConstraint\"] !== undefined) {\n contents.LocationConstraint = __expectString(data[\"LocationConstraint\"]);\n }\n return contents;\n};\nconst de_GetBucketLocationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketLoggingCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketLoggingCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"LoggingEnabled\"] !== undefined) {\n contents.LoggingEnabled = de_LoggingEnabled(data[\"LoggingEnabled\"], context);\n }\n return contents;\n};\nconst de_GetBucketLoggingCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketMetricsConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketMetricsConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectObject(await parseBody(output.body, context));\n contents.MetricsConfiguration = de_MetricsConfiguration(data, context);\n return contents;\n};\nconst de_GetBucketMetricsConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketNotificationConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketNotificationConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"EventBridgeConfiguration\"] !== undefined) {\n contents.EventBridgeConfiguration = de_EventBridgeConfiguration(data[\"EventBridgeConfiguration\"], context);\n }\n if (data.CloudFunctionConfiguration === \"\") {\n contents.LambdaFunctionConfigurations = [];\n }\n else if (data[\"CloudFunctionConfiguration\"] !== undefined) {\n contents.LambdaFunctionConfigurations = de_LambdaFunctionConfigurationList(__getArrayIfSingleItem(data[\"CloudFunctionConfiguration\"]), context);\n }\n if (data.QueueConfiguration === \"\") {\n contents.QueueConfigurations = [];\n }\n else if (data[\"QueueConfiguration\"] !== undefined) {\n contents.QueueConfigurations = de_QueueConfigurationList(__getArrayIfSingleItem(data[\"QueueConfiguration\"]), context);\n }\n if (data.TopicConfiguration === \"\") {\n contents.TopicConfigurations = [];\n }\n else if (data[\"TopicConfiguration\"] !== undefined) {\n contents.TopicConfigurations = de_TopicConfigurationList(__getArrayIfSingleItem(data[\"TopicConfiguration\"]), context);\n }\n return contents;\n};\nconst de_GetBucketNotificationConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketOwnershipControlsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketOwnershipControlsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectObject(await parseBody(output.body, context));\n contents.OwnershipControls = de_OwnershipControls(data, context);\n return contents;\n};\nconst de_GetBucketOwnershipControlsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketPolicyCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketPolicyCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = await collectBodyString(output.body, context);\n contents.Policy = __expectString(data);\n return contents;\n};\nconst de_GetBucketPolicyCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketPolicyStatusCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketPolicyStatusCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectObject(await parseBody(output.body, context));\n contents.PolicyStatus = de_PolicyStatus(data, context);\n return contents;\n};\nconst de_GetBucketPolicyStatusCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketReplicationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketReplicationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectObject(await parseBody(output.body, context));\n contents.ReplicationConfiguration = de_ReplicationConfiguration(data, context);\n return contents;\n};\nconst de_GetBucketReplicationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketRequestPaymentCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketRequestPaymentCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"Payer\"] !== undefined) {\n contents.Payer = __expectString(data[\"Payer\"]);\n }\n return contents;\n};\nconst de_GetBucketRequestPaymentCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketTaggingCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketTaggingCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data.TagSet === \"\") {\n contents.TagSet = [];\n }\n else if (data[\"TagSet\"] !== undefined && data[\"TagSet\"][\"Tag\"] !== undefined) {\n contents.TagSet = de_TagSet(__getArrayIfSingleItem(data[\"TagSet\"][\"Tag\"]), context);\n }\n return contents;\n};\nconst de_GetBucketTaggingCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketVersioningCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketVersioningCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"MfaDelete\"] !== undefined) {\n contents.MFADelete = __expectString(data[\"MfaDelete\"]);\n }\n if (data[\"Status\"] !== undefined) {\n contents.Status = __expectString(data[\"Status\"]);\n }\n return contents;\n};\nconst de_GetBucketVersioningCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetBucketWebsiteCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetBucketWebsiteCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"ErrorDocument\"] !== undefined) {\n contents.ErrorDocument = de_ErrorDocument(data[\"ErrorDocument\"], context);\n }\n if (data[\"IndexDocument\"] !== undefined) {\n contents.IndexDocument = de_IndexDocument(data[\"IndexDocument\"], context);\n }\n if (data[\"RedirectAllRequestsTo\"] !== undefined) {\n contents.RedirectAllRequestsTo = de_RedirectAllRequestsTo(data[\"RedirectAllRequestsTo\"], context);\n }\n if (data.RoutingRules === \"\") {\n contents.RoutingRules = [];\n }\n else if (data[\"RoutingRules\"] !== undefined && data[\"RoutingRules\"][\"RoutingRule\"] !== undefined) {\n contents.RoutingRules = de_RoutingRules(__getArrayIfSingleItem(data[\"RoutingRules\"][\"RoutingRule\"]), context);\n }\n return contents;\n};\nconst de_GetBucketWebsiteCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetObjectCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetObjectCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n DeleteMarker: [\n () => void 0 !== output.headers[\"x-amz-delete-marker\"],\n () => __parseBoolean(output.headers[\"x-amz-delete-marker\"]),\n ],\n AcceptRanges: [, output.headers[\"accept-ranges\"]],\n Expiration: [, output.headers[\"x-amz-expiration\"]],\n Restore: [, output.headers[\"x-amz-restore\"]],\n LastModified: [\n () => void 0 !== output.headers[\"last-modified\"],\n () => __expectNonNull(__parseRfc7231DateTime(output.headers[\"last-modified\"])),\n ],\n ContentLength: [\n () => void 0 !== output.headers[\"content-length\"],\n () => __strictParseLong(output.headers[\"content-length\"]),\n ],\n ETag: [, output.headers[\"etag\"]],\n ChecksumCRC32: [, output.headers[\"x-amz-checksum-crc32\"]],\n ChecksumCRC32C: [, output.headers[\"x-amz-checksum-crc32c\"]],\n ChecksumSHA1: [, output.headers[\"x-amz-checksum-sha1\"]],\n ChecksumSHA256: [, output.headers[\"x-amz-checksum-sha256\"]],\n MissingMeta: [\n () => void 0 !== output.headers[\"x-amz-missing-meta\"],\n () => __strictParseInt32(output.headers[\"x-amz-missing-meta\"]),\n ],\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n CacheControl: [, output.headers[\"cache-control\"]],\n ContentDisposition: [, output.headers[\"content-disposition\"]],\n ContentEncoding: [, output.headers[\"content-encoding\"]],\n ContentLanguage: [, output.headers[\"content-language\"]],\n ContentRange: [, output.headers[\"content-range\"]],\n ContentType: [, output.headers[\"content-type\"]],\n Expires: [\n () => void 0 !== output.headers[\"expires\"],\n () => __expectNonNull(__parseRfc7231DateTime(output.headers[\"expires\"])),\n ],\n WebsiteRedirectLocation: [, output.headers[\"x-amz-website-redirect-location\"]],\n ServerSideEncryption: [, output.headers[\"x-amz-server-side-encryption\"]],\n SSECustomerAlgorithm: [, output.headers[\"x-amz-server-side-encryption-customer-algorithm\"]],\n SSECustomerKeyMD5: [, output.headers[\"x-amz-server-side-encryption-customer-key-md5\"]],\n SSEKMSKeyId: [, output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"]],\n BucketKeyEnabled: [\n () => void 0 !== output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"],\n () => __parseBoolean(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]),\n ],\n StorageClass: [, output.headers[\"x-amz-storage-class\"]],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n ReplicationStatus: [, output.headers[\"x-amz-replication-status\"]],\n PartsCount: [\n () => void 0 !== output.headers[\"x-amz-mp-parts-count\"],\n () => __strictParseInt32(output.headers[\"x-amz-mp-parts-count\"]),\n ],\n TagCount: [\n () => void 0 !== output.headers[\"x-amz-tagging-count\"],\n () => __strictParseInt32(output.headers[\"x-amz-tagging-count\"]),\n ],\n ObjectLockMode: [, output.headers[\"x-amz-object-lock-mode\"]],\n ObjectLockRetainUntilDate: [\n () => void 0 !== output.headers[\"x-amz-object-lock-retain-until-date\"],\n () => __expectNonNull(__parseRfc3339DateTimeWithOffset(output.headers[\"x-amz-object-lock-retain-until-date\"])),\n ],\n ObjectLockLegalHoldStatus: [, output.headers[\"x-amz-object-lock-legal-hold\"]],\n Metadata: [\n ,\n Object.keys(output.headers)\n .filter((header) => header.startsWith(\"x-amz-meta-\"))\n .reduce((acc, header) => {\n acc[header.substring(11)] = output.headers[header];\n return acc;\n }, {}),\n ],\n });\n const data = output.body;\n context.sdkStreamMixin(data);\n contents.Body = data;\n return contents;\n};\nconst de_GetObjectCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"InvalidObjectState\":\n case \"com.amazonaws.s3#InvalidObjectState\":\n throw await de_InvalidObjectStateRes(parsedOutput, context);\n case \"NoSuchKey\":\n case \"com.amazonaws.s3#NoSuchKey\":\n throw await de_NoSuchKeyRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_GetObjectAclCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetObjectAclCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data.AccessControlList === \"\") {\n contents.Grants = [];\n }\n else if (data[\"AccessControlList\"] !== undefined && data[\"AccessControlList\"][\"Grant\"] !== undefined) {\n contents.Grants = de_Grants(__getArrayIfSingleItem(data[\"AccessControlList\"][\"Grant\"]), context);\n }\n if (data[\"Owner\"] !== undefined) {\n contents.Owner = de_Owner(data[\"Owner\"], context);\n }\n return contents;\n};\nconst de_GetObjectAclCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"NoSuchKey\":\n case \"com.amazonaws.s3#NoSuchKey\":\n throw await de_NoSuchKeyRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_GetObjectAttributesCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetObjectAttributesCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n DeleteMarker: [\n () => void 0 !== output.headers[\"x-amz-delete-marker\"],\n () => __parseBoolean(output.headers[\"x-amz-delete-marker\"]),\n ],\n LastModified: [\n () => void 0 !== output.headers[\"last-modified\"],\n () => __expectNonNull(__parseRfc7231DateTime(output.headers[\"last-modified\"])),\n ],\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"Checksum\"] !== undefined) {\n contents.Checksum = de_Checksum(data[\"Checksum\"], context);\n }\n if (data[\"ETag\"] !== undefined) {\n contents.ETag = __expectString(data[\"ETag\"]);\n }\n if (data[\"ObjectParts\"] !== undefined) {\n contents.ObjectParts = de_GetObjectAttributesParts(data[\"ObjectParts\"], context);\n }\n if (data[\"ObjectSize\"] !== undefined) {\n contents.ObjectSize = __strictParseLong(data[\"ObjectSize\"]);\n }\n if (data[\"StorageClass\"] !== undefined) {\n contents.StorageClass = __expectString(data[\"StorageClass\"]);\n }\n return contents;\n};\nconst de_GetObjectAttributesCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"NoSuchKey\":\n case \"com.amazonaws.s3#NoSuchKey\":\n throw await de_NoSuchKeyRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_GetObjectLegalHoldCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetObjectLegalHoldCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectObject(await parseBody(output.body, context));\n contents.LegalHold = de_ObjectLockLegalHold(data, context);\n return contents;\n};\nconst de_GetObjectLegalHoldCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetObjectLockConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetObjectLockConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectObject(await parseBody(output.body, context));\n contents.ObjectLockConfiguration = de_ObjectLockConfiguration(data, context);\n return contents;\n};\nconst de_GetObjectLockConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetObjectRetentionCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetObjectRetentionCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectObject(await parseBody(output.body, context));\n contents.Retention = de_ObjectLockRetention(data, context);\n return contents;\n};\nconst de_GetObjectRetentionCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetObjectTaggingCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetObjectTaggingCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data.TagSet === \"\") {\n contents.TagSet = [];\n }\n else if (data[\"TagSet\"] !== undefined && data[\"TagSet\"][\"Tag\"] !== undefined) {\n contents.TagSet = de_TagSet(__getArrayIfSingleItem(data[\"TagSet\"][\"Tag\"]), context);\n }\n return contents;\n};\nconst de_GetObjectTaggingCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetObjectTorrentCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetObjectTorrentCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = output.body;\n context.sdkStreamMixin(data);\n contents.Body = data;\n return contents;\n};\nconst de_GetObjectTorrentCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_GetPublicAccessBlockCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_GetPublicAccessBlockCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectObject(await parseBody(output.body, context));\n contents.PublicAccessBlockConfiguration = de_PublicAccessBlockConfiguration(data, context);\n return contents;\n};\nconst de_GetPublicAccessBlockCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_HeadBucketCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_HeadBucketCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_HeadBucketCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"NotFound\":\n case \"com.amazonaws.s3#NotFound\":\n throw await de_NotFoundRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_HeadObjectCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_HeadObjectCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n DeleteMarker: [\n () => void 0 !== output.headers[\"x-amz-delete-marker\"],\n () => __parseBoolean(output.headers[\"x-amz-delete-marker\"]),\n ],\n AcceptRanges: [, output.headers[\"accept-ranges\"]],\n Expiration: [, output.headers[\"x-amz-expiration\"]],\n Restore: [, output.headers[\"x-amz-restore\"]],\n ArchiveStatus: [, output.headers[\"x-amz-archive-status\"]],\n LastModified: [\n () => void 0 !== output.headers[\"last-modified\"],\n () => __expectNonNull(__parseRfc7231DateTime(output.headers[\"last-modified\"])),\n ],\n ContentLength: [\n () => void 0 !== output.headers[\"content-length\"],\n () => __strictParseLong(output.headers[\"content-length\"]),\n ],\n ChecksumCRC32: [, output.headers[\"x-amz-checksum-crc32\"]],\n ChecksumCRC32C: [, output.headers[\"x-amz-checksum-crc32c\"]],\n ChecksumSHA1: [, output.headers[\"x-amz-checksum-sha1\"]],\n ChecksumSHA256: [, output.headers[\"x-amz-checksum-sha256\"]],\n ETag: [, output.headers[\"etag\"]],\n MissingMeta: [\n () => void 0 !== output.headers[\"x-amz-missing-meta\"],\n () => __strictParseInt32(output.headers[\"x-amz-missing-meta\"]),\n ],\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n CacheControl: [, output.headers[\"cache-control\"]],\n ContentDisposition: [, output.headers[\"content-disposition\"]],\n ContentEncoding: [, output.headers[\"content-encoding\"]],\n ContentLanguage: [, output.headers[\"content-language\"]],\n ContentType: [, output.headers[\"content-type\"]],\n Expires: [\n () => void 0 !== output.headers[\"expires\"],\n () => __expectNonNull(__parseRfc7231DateTime(output.headers[\"expires\"])),\n ],\n WebsiteRedirectLocation: [, output.headers[\"x-amz-website-redirect-location\"]],\n ServerSideEncryption: [, output.headers[\"x-amz-server-side-encryption\"]],\n SSECustomerAlgorithm: [, output.headers[\"x-amz-server-side-encryption-customer-algorithm\"]],\n SSECustomerKeyMD5: [, output.headers[\"x-amz-server-side-encryption-customer-key-md5\"]],\n SSEKMSKeyId: [, output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"]],\n BucketKeyEnabled: [\n () => void 0 !== output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"],\n () => __parseBoolean(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]),\n ],\n StorageClass: [, output.headers[\"x-amz-storage-class\"]],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n ReplicationStatus: [, output.headers[\"x-amz-replication-status\"]],\n PartsCount: [\n () => void 0 !== output.headers[\"x-amz-mp-parts-count\"],\n () => __strictParseInt32(output.headers[\"x-amz-mp-parts-count\"]),\n ],\n ObjectLockMode: [, output.headers[\"x-amz-object-lock-mode\"]],\n ObjectLockRetainUntilDate: [\n () => void 0 !== output.headers[\"x-amz-object-lock-retain-until-date\"],\n () => __expectNonNull(__parseRfc3339DateTimeWithOffset(output.headers[\"x-amz-object-lock-retain-until-date\"])),\n ],\n ObjectLockLegalHoldStatus: [, output.headers[\"x-amz-object-lock-legal-hold\"]],\n Metadata: [\n ,\n Object.keys(output.headers)\n .filter((header) => header.startsWith(\"x-amz-meta-\"))\n .reduce((acc, header) => {\n acc[header.substring(11)] = output.headers[header];\n return acc;\n }, {}),\n ],\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_HeadObjectCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"NotFound\":\n case \"com.amazonaws.s3#NotFound\":\n throw await de_NotFoundRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_ListBucketAnalyticsConfigurationsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_ListBucketAnalyticsConfigurationsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data.AnalyticsConfiguration === \"\") {\n contents.AnalyticsConfigurationList = [];\n }\n else if (data[\"AnalyticsConfiguration\"] !== undefined) {\n contents.AnalyticsConfigurationList = de_AnalyticsConfigurationList(__getArrayIfSingleItem(data[\"AnalyticsConfiguration\"]), context);\n }\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = __expectString(data[\"ContinuationToken\"]);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = __parseBoolean(data[\"IsTruncated\"]);\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = __expectString(data[\"NextContinuationToken\"]);\n }\n return contents;\n};\nconst de_ListBucketAnalyticsConfigurationsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_ListBucketIntelligentTieringConfigurationsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_ListBucketIntelligentTieringConfigurationsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = __expectString(data[\"ContinuationToken\"]);\n }\n if (data.IntelligentTieringConfiguration === \"\") {\n contents.IntelligentTieringConfigurationList = [];\n }\n else if (data[\"IntelligentTieringConfiguration\"] !== undefined) {\n contents.IntelligentTieringConfigurationList = de_IntelligentTieringConfigurationList(__getArrayIfSingleItem(data[\"IntelligentTieringConfiguration\"]), context);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = __parseBoolean(data[\"IsTruncated\"]);\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = __expectString(data[\"NextContinuationToken\"]);\n }\n return contents;\n};\nconst de_ListBucketIntelligentTieringConfigurationsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_ListBucketInventoryConfigurationsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_ListBucketInventoryConfigurationsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = __expectString(data[\"ContinuationToken\"]);\n }\n if (data.InventoryConfiguration === \"\") {\n contents.InventoryConfigurationList = [];\n }\n else if (data[\"InventoryConfiguration\"] !== undefined) {\n contents.InventoryConfigurationList = de_InventoryConfigurationList(__getArrayIfSingleItem(data[\"InventoryConfiguration\"]), context);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = __parseBoolean(data[\"IsTruncated\"]);\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = __expectString(data[\"NextContinuationToken\"]);\n }\n return contents;\n};\nconst de_ListBucketInventoryConfigurationsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_ListBucketMetricsConfigurationsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_ListBucketMetricsConfigurationsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = __expectString(data[\"ContinuationToken\"]);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = __parseBoolean(data[\"IsTruncated\"]);\n }\n if (data.MetricsConfiguration === \"\") {\n contents.MetricsConfigurationList = [];\n }\n else if (data[\"MetricsConfiguration\"] !== undefined) {\n contents.MetricsConfigurationList = de_MetricsConfigurationList(__getArrayIfSingleItem(data[\"MetricsConfiguration\"]), context);\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = __expectString(data[\"NextContinuationToken\"]);\n }\n return contents;\n};\nconst de_ListBucketMetricsConfigurationsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_ListBucketsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_ListBucketsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data.Buckets === \"\") {\n contents.Buckets = [];\n }\n else if (data[\"Buckets\"] !== undefined && data[\"Buckets\"][\"Bucket\"] !== undefined) {\n contents.Buckets = de_Buckets(__getArrayIfSingleItem(data[\"Buckets\"][\"Bucket\"]), context);\n }\n if (data[\"Owner\"] !== undefined) {\n contents.Owner = de_Owner(data[\"Owner\"], context);\n }\n return contents;\n};\nconst de_ListBucketsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_ListMultipartUploadsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_ListMultipartUploadsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"Bucket\"] !== undefined) {\n contents.Bucket = __expectString(data[\"Bucket\"]);\n }\n if (data.CommonPrefixes === \"\") {\n contents.CommonPrefixes = [];\n }\n else if (data[\"CommonPrefixes\"] !== undefined) {\n contents.CommonPrefixes = de_CommonPrefixList(__getArrayIfSingleItem(data[\"CommonPrefixes\"]), context);\n }\n if (data[\"Delimiter\"] !== undefined) {\n contents.Delimiter = __expectString(data[\"Delimiter\"]);\n }\n if (data[\"EncodingType\"] !== undefined) {\n contents.EncodingType = __expectString(data[\"EncodingType\"]);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = __parseBoolean(data[\"IsTruncated\"]);\n }\n if (data[\"KeyMarker\"] !== undefined) {\n contents.KeyMarker = __expectString(data[\"KeyMarker\"]);\n }\n if (data[\"MaxUploads\"] !== undefined) {\n contents.MaxUploads = __strictParseInt32(data[\"MaxUploads\"]);\n }\n if (data[\"NextKeyMarker\"] !== undefined) {\n contents.NextKeyMarker = __expectString(data[\"NextKeyMarker\"]);\n }\n if (data[\"NextUploadIdMarker\"] !== undefined) {\n contents.NextUploadIdMarker = __expectString(data[\"NextUploadIdMarker\"]);\n }\n if (data[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(data[\"Prefix\"]);\n }\n if (data[\"UploadIdMarker\"] !== undefined) {\n contents.UploadIdMarker = __expectString(data[\"UploadIdMarker\"]);\n }\n if (data.Upload === \"\") {\n contents.Uploads = [];\n }\n else if (data[\"Upload\"] !== undefined) {\n contents.Uploads = de_MultipartUploadList(__getArrayIfSingleItem(data[\"Upload\"]), context);\n }\n return contents;\n};\nconst de_ListMultipartUploadsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_ListObjectsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_ListObjectsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data.CommonPrefixes === \"\") {\n contents.CommonPrefixes = [];\n }\n else if (data[\"CommonPrefixes\"] !== undefined) {\n contents.CommonPrefixes = de_CommonPrefixList(__getArrayIfSingleItem(data[\"CommonPrefixes\"]), context);\n }\n if (data.Contents === \"\") {\n contents.Contents = [];\n }\n else if (data[\"Contents\"] !== undefined) {\n contents.Contents = de_ObjectList(__getArrayIfSingleItem(data[\"Contents\"]), context);\n }\n if (data[\"Delimiter\"] !== undefined) {\n contents.Delimiter = __expectString(data[\"Delimiter\"]);\n }\n if (data[\"EncodingType\"] !== undefined) {\n contents.EncodingType = __expectString(data[\"EncodingType\"]);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = __parseBoolean(data[\"IsTruncated\"]);\n }\n if (data[\"Marker\"] !== undefined) {\n contents.Marker = __expectString(data[\"Marker\"]);\n }\n if (data[\"MaxKeys\"] !== undefined) {\n contents.MaxKeys = __strictParseInt32(data[\"MaxKeys\"]);\n }\n if (data[\"Name\"] !== undefined) {\n contents.Name = __expectString(data[\"Name\"]);\n }\n if (data[\"NextMarker\"] !== undefined) {\n contents.NextMarker = __expectString(data[\"NextMarker\"]);\n }\n if (data[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(data[\"Prefix\"]);\n }\n return contents;\n};\nconst de_ListObjectsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"NoSuchBucket\":\n case \"com.amazonaws.s3#NoSuchBucket\":\n throw await de_NoSuchBucketRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_ListObjectsV2Command = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_ListObjectsV2CommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data.CommonPrefixes === \"\") {\n contents.CommonPrefixes = [];\n }\n else if (data[\"CommonPrefixes\"] !== undefined) {\n contents.CommonPrefixes = de_CommonPrefixList(__getArrayIfSingleItem(data[\"CommonPrefixes\"]), context);\n }\n if (data.Contents === \"\") {\n contents.Contents = [];\n }\n else if (data[\"Contents\"] !== undefined) {\n contents.Contents = de_ObjectList(__getArrayIfSingleItem(data[\"Contents\"]), context);\n }\n if (data[\"ContinuationToken\"] !== undefined) {\n contents.ContinuationToken = __expectString(data[\"ContinuationToken\"]);\n }\n if (data[\"Delimiter\"] !== undefined) {\n contents.Delimiter = __expectString(data[\"Delimiter\"]);\n }\n if (data[\"EncodingType\"] !== undefined) {\n contents.EncodingType = __expectString(data[\"EncodingType\"]);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = __parseBoolean(data[\"IsTruncated\"]);\n }\n if (data[\"KeyCount\"] !== undefined) {\n contents.KeyCount = __strictParseInt32(data[\"KeyCount\"]);\n }\n if (data[\"MaxKeys\"] !== undefined) {\n contents.MaxKeys = __strictParseInt32(data[\"MaxKeys\"]);\n }\n if (data[\"Name\"] !== undefined) {\n contents.Name = __expectString(data[\"Name\"]);\n }\n if (data[\"NextContinuationToken\"] !== undefined) {\n contents.NextContinuationToken = __expectString(data[\"NextContinuationToken\"]);\n }\n if (data[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(data[\"Prefix\"]);\n }\n if (data[\"StartAfter\"] !== undefined) {\n contents.StartAfter = __expectString(data[\"StartAfter\"]);\n }\n return contents;\n};\nconst de_ListObjectsV2CommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"NoSuchBucket\":\n case \"com.amazonaws.s3#NoSuchBucket\":\n throw await de_NoSuchBucketRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_ListObjectVersionsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_ListObjectVersionsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data.CommonPrefixes === \"\") {\n contents.CommonPrefixes = [];\n }\n else if (data[\"CommonPrefixes\"] !== undefined) {\n contents.CommonPrefixes = de_CommonPrefixList(__getArrayIfSingleItem(data[\"CommonPrefixes\"]), context);\n }\n if (data.DeleteMarker === \"\") {\n contents.DeleteMarkers = [];\n }\n else if (data[\"DeleteMarker\"] !== undefined) {\n contents.DeleteMarkers = de_DeleteMarkers(__getArrayIfSingleItem(data[\"DeleteMarker\"]), context);\n }\n if (data[\"Delimiter\"] !== undefined) {\n contents.Delimiter = __expectString(data[\"Delimiter\"]);\n }\n if (data[\"EncodingType\"] !== undefined) {\n contents.EncodingType = __expectString(data[\"EncodingType\"]);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = __parseBoolean(data[\"IsTruncated\"]);\n }\n if (data[\"KeyMarker\"] !== undefined) {\n contents.KeyMarker = __expectString(data[\"KeyMarker\"]);\n }\n if (data[\"MaxKeys\"] !== undefined) {\n contents.MaxKeys = __strictParseInt32(data[\"MaxKeys\"]);\n }\n if (data[\"Name\"] !== undefined) {\n contents.Name = __expectString(data[\"Name\"]);\n }\n if (data[\"NextKeyMarker\"] !== undefined) {\n contents.NextKeyMarker = __expectString(data[\"NextKeyMarker\"]);\n }\n if (data[\"NextVersionIdMarker\"] !== undefined) {\n contents.NextVersionIdMarker = __expectString(data[\"NextVersionIdMarker\"]);\n }\n if (data[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(data[\"Prefix\"]);\n }\n if (data[\"VersionIdMarker\"] !== undefined) {\n contents.VersionIdMarker = __expectString(data[\"VersionIdMarker\"]);\n }\n if (data.Version === \"\") {\n contents.Versions = [];\n }\n else if (data[\"Version\"] !== undefined) {\n contents.Versions = de_ObjectVersionList(__getArrayIfSingleItem(data[\"Version\"]), context);\n }\n return contents;\n};\nconst de_ListObjectVersionsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_ListPartsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_ListPartsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n AbortDate: [\n () => void 0 !== output.headers[\"x-amz-abort-date\"],\n () => __expectNonNull(__parseRfc7231DateTime(output.headers[\"x-amz-abort-date\"])),\n ],\n AbortRuleId: [, output.headers[\"x-amz-abort-rule-id\"]],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = __expectNonNull(__expectObject(await parseBody(output.body, context)), \"body\");\n if (data[\"Bucket\"] !== undefined) {\n contents.Bucket = __expectString(data[\"Bucket\"]);\n }\n if (data[\"ChecksumAlgorithm\"] !== undefined) {\n contents.ChecksumAlgorithm = __expectString(data[\"ChecksumAlgorithm\"]);\n }\n if (data[\"Initiator\"] !== undefined) {\n contents.Initiator = de_Initiator(data[\"Initiator\"], context);\n }\n if (data[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = __parseBoolean(data[\"IsTruncated\"]);\n }\n if (data[\"Key\"] !== undefined) {\n contents.Key = __expectString(data[\"Key\"]);\n }\n if (data[\"MaxParts\"] !== undefined) {\n contents.MaxParts = __strictParseInt32(data[\"MaxParts\"]);\n }\n if (data[\"NextPartNumberMarker\"] !== undefined) {\n contents.NextPartNumberMarker = __expectString(data[\"NextPartNumberMarker\"]);\n }\n if (data[\"Owner\"] !== undefined) {\n contents.Owner = de_Owner(data[\"Owner\"], context);\n }\n if (data[\"PartNumberMarker\"] !== undefined) {\n contents.PartNumberMarker = __expectString(data[\"PartNumberMarker\"]);\n }\n if (data.Part === \"\") {\n contents.Parts = [];\n }\n else if (data[\"Part\"] !== undefined) {\n contents.Parts = de_Parts(__getArrayIfSingleItem(data[\"Part\"]), context);\n }\n if (data[\"StorageClass\"] !== undefined) {\n contents.StorageClass = __expectString(data[\"StorageClass\"]);\n }\n if (data[\"UploadId\"] !== undefined) {\n contents.UploadId = __expectString(data[\"UploadId\"]);\n }\n return contents;\n};\nconst de_ListPartsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketAccelerateConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketAccelerateConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketAccelerateConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketAclCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketAclCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketAclCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketAnalyticsConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketAnalyticsConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketAnalyticsConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketCorsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketCorsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketCorsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketEncryptionCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketEncryptionCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketEncryptionCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketIntelligentTieringConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketIntelligentTieringConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketIntelligentTieringConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketInventoryConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketInventoryConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketInventoryConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketLifecycleConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketLifecycleConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketLifecycleConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketLoggingCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketLoggingCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketLoggingCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketMetricsConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketMetricsConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketMetricsConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketNotificationConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketNotificationConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketNotificationConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketOwnershipControlsCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketOwnershipControlsCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketOwnershipControlsCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketPolicyCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketPolicyCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketPolicyCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketReplicationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketReplicationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketReplicationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketRequestPaymentCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketRequestPaymentCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketRequestPaymentCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketTaggingCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketTaggingCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketTaggingCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketVersioningCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketVersioningCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketVersioningCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutBucketWebsiteCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutBucketWebsiteCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutBucketWebsiteCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutObjectCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutObjectCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n Expiration: [, output.headers[\"x-amz-expiration\"]],\n ETag: [, output.headers[\"etag\"]],\n ChecksumCRC32: [, output.headers[\"x-amz-checksum-crc32\"]],\n ChecksumCRC32C: [, output.headers[\"x-amz-checksum-crc32c\"]],\n ChecksumSHA1: [, output.headers[\"x-amz-checksum-sha1\"]],\n ChecksumSHA256: [, output.headers[\"x-amz-checksum-sha256\"]],\n ServerSideEncryption: [, output.headers[\"x-amz-server-side-encryption\"]],\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n SSECustomerAlgorithm: [, output.headers[\"x-amz-server-side-encryption-customer-algorithm\"]],\n SSECustomerKeyMD5: [, output.headers[\"x-amz-server-side-encryption-customer-key-md5\"]],\n SSEKMSKeyId: [, output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"]],\n SSEKMSEncryptionContext: [, output.headers[\"x-amz-server-side-encryption-context\"]],\n BucketKeyEnabled: [\n () => void 0 !== output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"],\n () => __parseBoolean(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]),\n ],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutObjectCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutObjectAclCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutObjectAclCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutObjectAclCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"NoSuchKey\":\n case \"com.amazonaws.s3#NoSuchKey\":\n throw await de_NoSuchKeyRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_PutObjectLegalHoldCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutObjectLegalHoldCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutObjectLegalHoldCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutObjectLockConfigurationCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutObjectLockConfigurationCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutObjectLockConfigurationCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutObjectRetentionCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutObjectRetentionCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutObjectRetentionCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutObjectTaggingCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutObjectTaggingCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n VersionId: [, output.headers[\"x-amz-version-id\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutObjectTaggingCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_PutPublicAccessBlockCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_PutPublicAccessBlockCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_PutPublicAccessBlockCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_RestoreObjectCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_RestoreObjectCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n RestoreOutputPath: [, output.headers[\"x-amz-restore-output-path\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_RestoreObjectCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n switch (errorCode) {\n case \"ObjectAlreadyInActiveTierError\":\n case \"com.amazonaws.s3#ObjectAlreadyInActiveTierError\":\n throw await de_ObjectAlreadyInActiveTierErrorRes(parsedOutput, context);\n default:\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n }\n};\nexport const de_SelectObjectContentCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_SelectObjectContentCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n const data = output.body;\n contents.Payload = de_SelectObjectContentEventStream(data, context);\n return contents;\n};\nconst de_SelectObjectContentCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_UploadPartCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_UploadPartCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n ServerSideEncryption: [, output.headers[\"x-amz-server-side-encryption\"]],\n ETag: [, output.headers[\"etag\"]],\n ChecksumCRC32: [, output.headers[\"x-amz-checksum-crc32\"]],\n ChecksumCRC32C: [, output.headers[\"x-amz-checksum-crc32c\"]],\n ChecksumSHA1: [, output.headers[\"x-amz-checksum-sha1\"]],\n ChecksumSHA256: [, output.headers[\"x-amz-checksum-sha256\"]],\n SSECustomerAlgorithm: [, output.headers[\"x-amz-server-side-encryption-customer-algorithm\"]],\n SSECustomerKeyMD5: [, output.headers[\"x-amz-server-side-encryption-customer-key-md5\"]],\n SSEKMSKeyId: [, output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"]],\n BucketKeyEnabled: [\n () => void 0 !== output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"],\n () => __parseBoolean(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]),\n ],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_UploadPartCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_UploadPartCopyCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_UploadPartCopyCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n CopySourceVersionId: [, output.headers[\"x-amz-copy-source-version-id\"]],\n ServerSideEncryption: [, output.headers[\"x-amz-server-side-encryption\"]],\n SSECustomerAlgorithm: [, output.headers[\"x-amz-server-side-encryption-customer-algorithm\"]],\n SSECustomerKeyMD5: [, output.headers[\"x-amz-server-side-encryption-customer-key-md5\"]],\n SSEKMSKeyId: [, output.headers[\"x-amz-server-side-encryption-aws-kms-key-id\"]],\n BucketKeyEnabled: [\n () => void 0 !== output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"],\n () => __parseBoolean(output.headers[\"x-amz-server-side-encryption-bucket-key-enabled\"]),\n ],\n RequestCharged: [, output.headers[\"x-amz-request-charged\"]],\n });\n const data = __expectObject(await parseBody(output.body, context));\n contents.CopyPartResult = de_CopyPartResult(data, context);\n return contents;\n};\nconst de_UploadPartCopyCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nexport const de_WriteGetObjectResponseCommand = async (output, context) => {\n if (output.statusCode !== 200 && output.statusCode >= 300) {\n return de_WriteGetObjectResponseCommandError(output, context);\n }\n const contents = map({\n $metadata: deserializeMetadata(output),\n });\n await collectBody(output.body, context);\n return contents;\n};\nconst de_WriteGetObjectResponseCommandError = async (output, context) => {\n const parsedOutput = {\n ...output,\n body: await parseErrorBody(output.body, context),\n };\n const errorCode = loadRestXmlErrorCode(output, parsedOutput.body);\n const parsedBody = parsedOutput.body;\n return throwDefaultError({\n output,\n parsedBody,\n errorCode,\n });\n};\nconst throwDefaultError = withBaseException(__BaseException);\nconst de_BucketAlreadyExistsRes = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n const exception = new BucketAlreadyExists({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_BucketAlreadyOwnedByYouRes = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n const exception = new BucketAlreadyOwnedByYou({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_InvalidObjectStateRes = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n if (data[\"AccessTier\"] !== undefined) {\n contents.AccessTier = __expectString(data[\"AccessTier\"]);\n }\n if (data[\"StorageClass\"] !== undefined) {\n contents.StorageClass = __expectString(data[\"StorageClass\"]);\n }\n const exception = new InvalidObjectState({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_NoSuchBucketRes = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n const exception = new NoSuchBucket({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_NoSuchKeyRes = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n const exception = new NoSuchKey({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_NoSuchUploadRes = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n const exception = new NoSuchUpload({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_NotFoundRes = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n const exception = new NotFound({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_ObjectAlreadyInActiveTierErrorRes = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n const exception = new ObjectAlreadyInActiveTierError({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_ObjectNotInActiveTierErrorRes = async (parsedOutput, context) => {\n const contents = map({});\n const data = parsedOutput.body;\n const exception = new ObjectNotInActiveTierError({\n $metadata: deserializeMetadata(parsedOutput),\n ...contents,\n });\n return __decorateServiceException(exception, parsedOutput.body);\n};\nconst de_SelectObjectContentEventStream = (output, context) => {\n return context.eventStreamMarshaller.deserialize(output, async (event) => {\n if (event[\"Records\"] != null) {\n return {\n Records: await de_RecordsEvent_event(event[\"Records\"], context),\n };\n }\n if (event[\"Stats\"] != null) {\n return {\n Stats: await de_StatsEvent_event(event[\"Stats\"], context),\n };\n }\n if (event[\"Progress\"] != null) {\n return {\n Progress: await de_ProgressEvent_event(event[\"Progress\"], context),\n };\n }\n if (event[\"Cont\"] != null) {\n return {\n Cont: await de_ContinuationEvent_event(event[\"Cont\"], context),\n };\n }\n if (event[\"End\"] != null) {\n return {\n End: await de_EndEvent_event(event[\"End\"], context),\n };\n }\n return { $unknown: output };\n });\n};\nconst de_ContinuationEvent_event = async (output, context) => {\n const contents = {};\n const data = await parseBody(output.body, context);\n Object.assign(contents, de_ContinuationEvent(data, context));\n return contents;\n};\nconst de_EndEvent_event = async (output, context) => {\n const contents = {};\n const data = await parseBody(output.body, context);\n Object.assign(contents, de_EndEvent(data, context));\n return contents;\n};\nconst de_ProgressEvent_event = async (output, context) => {\n const contents = {};\n const data = await parseBody(output.body, context);\n contents.Details = de_Progress(data, context);\n return contents;\n};\nconst de_RecordsEvent_event = async (output, context) => {\n const contents = {};\n contents.Payload = output.body;\n return contents;\n};\nconst de_StatsEvent_event = async (output, context) => {\n const contents = {};\n const data = await parseBody(output.body, context);\n contents.Details = de_Stats(data, context);\n return contents;\n};\nconst se_AbortIncompleteMultipartUpload = (input, context) => {\n const bodyNode = new __XmlNode(\"AbortIncompleteMultipartUpload\");\n if (input.DaysAfterInitiation != null) {\n const node = __XmlNode.of(\"DaysAfterInitiation\", String(input.DaysAfterInitiation)).withName(\"DaysAfterInitiation\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_AccelerateConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"AccelerateConfiguration\");\n if (input.Status != null) {\n const node = __XmlNode.of(\"BucketAccelerateStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_AccessControlPolicy = (input, context) => {\n const bodyNode = new __XmlNode(\"AccessControlPolicy\");\n if (input.Grants != null) {\n const nodes = se_Grants(input.Grants, context);\n const containerNode = new __XmlNode(\"AccessControlList\");\n nodes.map((node) => {\n containerNode.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode);\n }\n if (input.Owner != null) {\n const node = se_Owner(input.Owner, context).withName(\"Owner\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_AccessControlTranslation = (input, context) => {\n const bodyNode = new __XmlNode(\"AccessControlTranslation\");\n if (input.Owner != null) {\n const node = __XmlNode.of(\"OwnerOverride\", input.Owner).withName(\"Owner\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_AllowedHeaders = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = __XmlNode.of(\"AllowedHeader\", entry);\n return node.withName(\"member\");\n });\n};\nconst se_AllowedMethods = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = __XmlNode.of(\"AllowedMethod\", entry);\n return node.withName(\"member\");\n });\n};\nconst se_AllowedOrigins = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = __XmlNode.of(\"AllowedOrigin\", entry);\n return node.withName(\"member\");\n });\n};\nconst se_AnalyticsAndOperator = (input, context) => {\n const bodyNode = new __XmlNode(\"AnalyticsAndOperator\");\n if (input.Prefix != null) {\n const node = __XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags != null) {\n const nodes = se_TagSet(input.Tags, context);\n nodes.map((node) => {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst se_AnalyticsConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"AnalyticsConfiguration\");\n if (input.Id != null) {\n const node = __XmlNode.of(\"AnalyticsId\", input.Id).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter != null) {\n const node = se_AnalyticsFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.StorageClassAnalysis != null) {\n const node = se_StorageClassAnalysis(input.StorageClassAnalysis, context).withName(\"StorageClassAnalysis\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_AnalyticsExportDestination = (input, context) => {\n const bodyNode = new __XmlNode(\"AnalyticsExportDestination\");\n if (input.S3BucketDestination != null) {\n const node = se_AnalyticsS3BucketDestination(input.S3BucketDestination, context).withName(\"S3BucketDestination\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_AnalyticsFilter = (input, context) => {\n const bodyNode = new __XmlNode(\"AnalyticsFilter\");\n AnalyticsFilter.visit(input, {\n Prefix: (value) => {\n const node = __XmlNode.of(\"Prefix\", value).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n },\n Tag: (value) => {\n const node = se_Tag(value, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n },\n And: (value) => {\n const node = se_AnalyticsAndOperator(value, context).withName(\"And\");\n bodyNode.addChildNode(node);\n },\n _: (name, value) => {\n if (!(value instanceof __XmlNode || value instanceof __XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n bodyNode.addChildNode(new __XmlNode(name).addChildNode(value));\n },\n });\n return bodyNode;\n};\nconst se_AnalyticsS3BucketDestination = (input, context) => {\n const bodyNode = new __XmlNode(\"AnalyticsS3BucketDestination\");\n if (input.Format != null) {\n const node = __XmlNode.of(\"AnalyticsS3ExportFileFormat\", input.Format).withName(\"Format\");\n bodyNode.addChildNode(node);\n }\n if (input.BucketAccountId != null) {\n const node = __XmlNode.of(\"AccountId\", input.BucketAccountId).withName(\"BucketAccountId\");\n bodyNode.addChildNode(node);\n }\n if (input.Bucket != null) {\n const node = __XmlNode.of(\"BucketName\", input.Bucket).withName(\"Bucket\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix != null) {\n const node = __XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_BucketLifecycleConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"BucketLifecycleConfiguration\");\n if (input.Rules != null) {\n const nodes = se_LifecycleRules(input.Rules, context);\n nodes.map((node) => {\n node = node.withName(\"Rule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst se_BucketLoggingStatus = (input, context) => {\n const bodyNode = new __XmlNode(\"BucketLoggingStatus\");\n if (input.LoggingEnabled != null) {\n const node = se_LoggingEnabled(input.LoggingEnabled, context).withName(\"LoggingEnabled\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_CompletedMultipartUpload = (input, context) => {\n const bodyNode = new __XmlNode(\"CompletedMultipartUpload\");\n if (input.Parts != null) {\n const nodes = se_CompletedPartList(input.Parts, context);\n nodes.map((node) => {\n node = node.withName(\"Part\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst se_CompletedPart = (input, context) => {\n const bodyNode = new __XmlNode(\"CompletedPart\");\n if (input.ETag != null) {\n const node = __XmlNode.of(\"ETag\", input.ETag).withName(\"ETag\");\n bodyNode.addChildNode(node);\n }\n if (input.ChecksumCRC32 != null) {\n const node = __XmlNode.of(\"ChecksumCRC32\", input.ChecksumCRC32).withName(\"ChecksumCRC32\");\n bodyNode.addChildNode(node);\n }\n if (input.ChecksumCRC32C != null) {\n const node = __XmlNode.of(\"ChecksumCRC32C\", input.ChecksumCRC32C).withName(\"ChecksumCRC32C\");\n bodyNode.addChildNode(node);\n }\n if (input.ChecksumSHA1 != null) {\n const node = __XmlNode.of(\"ChecksumSHA1\", input.ChecksumSHA1).withName(\"ChecksumSHA1\");\n bodyNode.addChildNode(node);\n }\n if (input.ChecksumSHA256 != null) {\n const node = __XmlNode.of(\"ChecksumSHA256\", input.ChecksumSHA256).withName(\"ChecksumSHA256\");\n bodyNode.addChildNode(node);\n }\n if (input.PartNumber != null) {\n const node = __XmlNode.of(\"PartNumber\", String(input.PartNumber)).withName(\"PartNumber\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_CompletedPartList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_CompletedPart(entry, context);\n return node.withName(\"member\");\n });\n};\nconst se_Condition = (input, context) => {\n const bodyNode = new __XmlNode(\"Condition\");\n if (input.HttpErrorCodeReturnedEquals != null) {\n const node = __XmlNode\n .of(\"HttpErrorCodeReturnedEquals\", input.HttpErrorCodeReturnedEquals)\n .withName(\"HttpErrorCodeReturnedEquals\");\n bodyNode.addChildNode(node);\n }\n if (input.KeyPrefixEquals != null) {\n const node = __XmlNode.of(\"KeyPrefixEquals\", input.KeyPrefixEquals).withName(\"KeyPrefixEquals\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_CORSConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"CORSConfiguration\");\n if (input.CORSRules != null) {\n const nodes = se_CORSRules(input.CORSRules, context);\n nodes.map((node) => {\n node = node.withName(\"CORSRule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst se_CORSRule = (input, context) => {\n const bodyNode = new __XmlNode(\"CORSRule\");\n if (input.ID != null) {\n const node = __XmlNode.of(\"ID\", input.ID).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n if (input.AllowedHeaders != null) {\n const nodes = se_AllowedHeaders(input.AllowedHeaders, context);\n nodes.map((node) => {\n node = node.withName(\"AllowedHeader\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.AllowedMethods != null) {\n const nodes = se_AllowedMethods(input.AllowedMethods, context);\n nodes.map((node) => {\n node = node.withName(\"AllowedMethod\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.AllowedOrigins != null) {\n const nodes = se_AllowedOrigins(input.AllowedOrigins, context);\n nodes.map((node) => {\n node = node.withName(\"AllowedOrigin\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.ExposeHeaders != null) {\n const nodes = se_ExposeHeaders(input.ExposeHeaders, context);\n nodes.map((node) => {\n node = node.withName(\"ExposeHeader\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.MaxAgeSeconds != null) {\n const node = __XmlNode.of(\"MaxAgeSeconds\", String(input.MaxAgeSeconds)).withName(\"MaxAgeSeconds\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_CORSRules = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_CORSRule(entry, context);\n return node.withName(\"member\");\n });\n};\nconst se_CreateBucketConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"CreateBucketConfiguration\");\n if (input.LocationConstraint != null) {\n const node = __XmlNode.of(\"BucketLocationConstraint\", input.LocationConstraint).withName(\"LocationConstraint\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_CSVInput = (input, context) => {\n const bodyNode = new __XmlNode(\"CSVInput\");\n if (input.FileHeaderInfo != null) {\n const node = __XmlNode.of(\"FileHeaderInfo\", input.FileHeaderInfo).withName(\"FileHeaderInfo\");\n bodyNode.addChildNode(node);\n }\n if (input.Comments != null) {\n const node = __XmlNode.of(\"Comments\", input.Comments).withName(\"Comments\");\n bodyNode.addChildNode(node);\n }\n if (input.QuoteEscapeCharacter != null) {\n const node = __XmlNode.of(\"QuoteEscapeCharacter\", input.QuoteEscapeCharacter).withName(\"QuoteEscapeCharacter\");\n bodyNode.addChildNode(node);\n }\n if (input.RecordDelimiter != null) {\n const node = __XmlNode.of(\"RecordDelimiter\", input.RecordDelimiter).withName(\"RecordDelimiter\");\n bodyNode.addChildNode(node);\n }\n if (input.FieldDelimiter != null) {\n const node = __XmlNode.of(\"FieldDelimiter\", input.FieldDelimiter).withName(\"FieldDelimiter\");\n bodyNode.addChildNode(node);\n }\n if (input.QuoteCharacter != null) {\n const node = __XmlNode.of(\"QuoteCharacter\", input.QuoteCharacter).withName(\"QuoteCharacter\");\n bodyNode.addChildNode(node);\n }\n if (input.AllowQuotedRecordDelimiter != null) {\n const node = __XmlNode\n .of(\"AllowQuotedRecordDelimiter\", String(input.AllowQuotedRecordDelimiter))\n .withName(\"AllowQuotedRecordDelimiter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_CSVOutput = (input, context) => {\n const bodyNode = new __XmlNode(\"CSVOutput\");\n if (input.QuoteFields != null) {\n const node = __XmlNode.of(\"QuoteFields\", input.QuoteFields).withName(\"QuoteFields\");\n bodyNode.addChildNode(node);\n }\n if (input.QuoteEscapeCharacter != null) {\n const node = __XmlNode.of(\"QuoteEscapeCharacter\", input.QuoteEscapeCharacter).withName(\"QuoteEscapeCharacter\");\n bodyNode.addChildNode(node);\n }\n if (input.RecordDelimiter != null) {\n const node = __XmlNode.of(\"RecordDelimiter\", input.RecordDelimiter).withName(\"RecordDelimiter\");\n bodyNode.addChildNode(node);\n }\n if (input.FieldDelimiter != null) {\n const node = __XmlNode.of(\"FieldDelimiter\", input.FieldDelimiter).withName(\"FieldDelimiter\");\n bodyNode.addChildNode(node);\n }\n if (input.QuoteCharacter != null) {\n const node = __XmlNode.of(\"QuoteCharacter\", input.QuoteCharacter).withName(\"QuoteCharacter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_DefaultRetention = (input, context) => {\n const bodyNode = new __XmlNode(\"DefaultRetention\");\n if (input.Mode != null) {\n const node = __XmlNode.of(\"ObjectLockRetentionMode\", input.Mode).withName(\"Mode\");\n bodyNode.addChildNode(node);\n }\n if (input.Days != null) {\n const node = __XmlNode.of(\"Days\", String(input.Days)).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.Years != null) {\n const node = __XmlNode.of(\"Years\", String(input.Years)).withName(\"Years\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_Delete = (input, context) => {\n const bodyNode = new __XmlNode(\"Delete\");\n if (input.Objects != null) {\n const nodes = se_ObjectIdentifierList(input.Objects, context);\n nodes.map((node) => {\n node = node.withName(\"Object\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.Quiet != null) {\n const node = __XmlNode.of(\"Quiet\", String(input.Quiet)).withName(\"Quiet\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_DeleteMarkerReplication = (input, context) => {\n const bodyNode = new __XmlNode(\"DeleteMarkerReplication\");\n if (input.Status != null) {\n const node = __XmlNode.of(\"DeleteMarkerReplicationStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_Destination = (input, context) => {\n const bodyNode = new __XmlNode(\"Destination\");\n if (input.Bucket != null) {\n const node = __XmlNode.of(\"BucketName\", input.Bucket).withName(\"Bucket\");\n bodyNode.addChildNode(node);\n }\n if (input.Account != null) {\n const node = __XmlNode.of(\"AccountId\", input.Account).withName(\"Account\");\n bodyNode.addChildNode(node);\n }\n if (input.StorageClass != null) {\n const node = __XmlNode.of(\"StorageClass\", input.StorageClass).withName(\"StorageClass\");\n bodyNode.addChildNode(node);\n }\n if (input.AccessControlTranslation != null) {\n const node = se_AccessControlTranslation(input.AccessControlTranslation, context).withName(\"AccessControlTranslation\");\n bodyNode.addChildNode(node);\n }\n if (input.EncryptionConfiguration != null) {\n const node = se_EncryptionConfiguration(input.EncryptionConfiguration, context).withName(\"EncryptionConfiguration\");\n bodyNode.addChildNode(node);\n }\n if (input.ReplicationTime != null) {\n const node = se_ReplicationTime(input.ReplicationTime, context).withName(\"ReplicationTime\");\n bodyNode.addChildNode(node);\n }\n if (input.Metrics != null) {\n const node = se_Metrics(input.Metrics, context).withName(\"Metrics\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_Encryption = (input, context) => {\n const bodyNode = new __XmlNode(\"Encryption\");\n if (input.EncryptionType != null) {\n const node = __XmlNode.of(\"ServerSideEncryption\", input.EncryptionType).withName(\"EncryptionType\");\n bodyNode.addChildNode(node);\n }\n if (input.KMSKeyId != null) {\n const node = __XmlNode.of(\"SSEKMSKeyId\", input.KMSKeyId).withName(\"KMSKeyId\");\n bodyNode.addChildNode(node);\n }\n if (input.KMSContext != null) {\n const node = __XmlNode.of(\"KMSContext\", input.KMSContext).withName(\"KMSContext\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_EncryptionConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"EncryptionConfiguration\");\n if (input.ReplicaKmsKeyID != null) {\n const node = __XmlNode.of(\"ReplicaKmsKeyID\", input.ReplicaKmsKeyID).withName(\"ReplicaKmsKeyID\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ErrorDocument = (input, context) => {\n const bodyNode = new __XmlNode(\"ErrorDocument\");\n if (input.Key != null) {\n const node = __XmlNode.of(\"ObjectKey\", input.Key).withName(\"Key\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_EventBridgeConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"EventBridgeConfiguration\");\n return bodyNode;\n};\nconst se_EventList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = __XmlNode.of(\"Event\", entry);\n return node.withName(\"member\");\n });\n};\nconst se_ExistingObjectReplication = (input, context) => {\n const bodyNode = new __XmlNode(\"ExistingObjectReplication\");\n if (input.Status != null) {\n const node = __XmlNode.of(\"ExistingObjectReplicationStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ExposeHeaders = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = __XmlNode.of(\"ExposeHeader\", entry);\n return node.withName(\"member\");\n });\n};\nconst se_FilterRule = (input, context) => {\n const bodyNode = new __XmlNode(\"FilterRule\");\n if (input.Name != null) {\n const node = __XmlNode.of(\"FilterRuleName\", input.Name).withName(\"Name\");\n bodyNode.addChildNode(node);\n }\n if (input.Value != null) {\n const node = __XmlNode.of(\"FilterRuleValue\", input.Value).withName(\"Value\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_FilterRuleList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_FilterRule(entry, context);\n return node.withName(\"member\");\n });\n};\nconst se_GlacierJobParameters = (input, context) => {\n const bodyNode = new __XmlNode(\"GlacierJobParameters\");\n if (input.Tier != null) {\n const node = __XmlNode.of(\"Tier\", input.Tier).withName(\"Tier\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_Grant = (input, context) => {\n const bodyNode = new __XmlNode(\"Grant\");\n if (input.Grantee != null) {\n const node = se_Grantee(input.Grantee, context).withName(\"Grantee\");\n node.addAttribute(\"xmlns:xsi\", \"http://www.w3.org/2001/XMLSchema-instance\");\n bodyNode.addChildNode(node);\n }\n if (input.Permission != null) {\n const node = __XmlNode.of(\"Permission\", input.Permission).withName(\"Permission\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_Grantee = (input, context) => {\n const bodyNode = new __XmlNode(\"Grantee\");\n if (input.DisplayName != null) {\n const node = __XmlNode.of(\"DisplayName\", input.DisplayName).withName(\"DisplayName\");\n bodyNode.addChildNode(node);\n }\n if (input.EmailAddress != null) {\n const node = __XmlNode.of(\"EmailAddress\", input.EmailAddress).withName(\"EmailAddress\");\n bodyNode.addChildNode(node);\n }\n if (input.ID != null) {\n const node = __XmlNode.of(\"ID\", input.ID).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n if (input.URI != null) {\n const node = __XmlNode.of(\"URI\", input.URI).withName(\"URI\");\n bodyNode.addChildNode(node);\n }\n if (input.Type != null) {\n bodyNode.addAttribute(\"xsi:type\", input.Type);\n }\n return bodyNode;\n};\nconst se_Grants = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_Grant(entry, context);\n return node.withName(\"Grant\");\n });\n};\nconst se_IndexDocument = (input, context) => {\n const bodyNode = new __XmlNode(\"IndexDocument\");\n if (input.Suffix != null) {\n const node = __XmlNode.of(\"Suffix\", input.Suffix).withName(\"Suffix\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_InputSerialization = (input, context) => {\n const bodyNode = new __XmlNode(\"InputSerialization\");\n if (input.CSV != null) {\n const node = se_CSVInput(input.CSV, context).withName(\"CSV\");\n bodyNode.addChildNode(node);\n }\n if (input.CompressionType != null) {\n const node = __XmlNode.of(\"CompressionType\", input.CompressionType).withName(\"CompressionType\");\n bodyNode.addChildNode(node);\n }\n if (input.JSON != null) {\n const node = se_JSONInput(input.JSON, context).withName(\"JSON\");\n bodyNode.addChildNode(node);\n }\n if (input.Parquet != null) {\n const node = se_ParquetInput(input.Parquet, context).withName(\"Parquet\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_IntelligentTieringAndOperator = (input, context) => {\n const bodyNode = new __XmlNode(\"IntelligentTieringAndOperator\");\n if (input.Prefix != null) {\n const node = __XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags != null) {\n const nodes = se_TagSet(input.Tags, context);\n nodes.map((node) => {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst se_IntelligentTieringConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"IntelligentTieringConfiguration\");\n if (input.Id != null) {\n const node = __XmlNode.of(\"IntelligentTieringId\", input.Id).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter != null) {\n const node = se_IntelligentTieringFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.Status != null) {\n const node = __XmlNode.of(\"IntelligentTieringStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.Tierings != null) {\n const nodes = se_TieringList(input.Tierings, context);\n nodes.map((node) => {\n node = node.withName(\"Tiering\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst se_IntelligentTieringFilter = (input, context) => {\n const bodyNode = new __XmlNode(\"IntelligentTieringFilter\");\n if (input.Prefix != null) {\n const node = __XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tag != null) {\n const node = se_Tag(input.Tag, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n }\n if (input.And != null) {\n const node = se_IntelligentTieringAndOperator(input.And, context).withName(\"And\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_InventoryConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"InventoryConfiguration\");\n if (input.Destination != null) {\n const node = se_InventoryDestination(input.Destination, context).withName(\"Destination\");\n bodyNode.addChildNode(node);\n }\n if (input.IsEnabled != null) {\n const node = __XmlNode.of(\"IsEnabled\", String(input.IsEnabled)).withName(\"IsEnabled\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter != null) {\n const node = se_InventoryFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.Id != null) {\n const node = __XmlNode.of(\"InventoryId\", input.Id).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.IncludedObjectVersions != null) {\n const node = __XmlNode\n .of(\"InventoryIncludedObjectVersions\", input.IncludedObjectVersions)\n .withName(\"IncludedObjectVersions\");\n bodyNode.addChildNode(node);\n }\n if (input.OptionalFields != null) {\n const nodes = se_InventoryOptionalFields(input.OptionalFields, context);\n const containerNode = new __XmlNode(\"OptionalFields\");\n nodes.map((node) => {\n containerNode.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode);\n }\n if (input.Schedule != null) {\n const node = se_InventorySchedule(input.Schedule, context).withName(\"Schedule\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_InventoryDestination = (input, context) => {\n const bodyNode = new __XmlNode(\"InventoryDestination\");\n if (input.S3BucketDestination != null) {\n const node = se_InventoryS3BucketDestination(input.S3BucketDestination, context).withName(\"S3BucketDestination\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_InventoryEncryption = (input, context) => {\n const bodyNode = new __XmlNode(\"InventoryEncryption\");\n if (input.SSES3 != null) {\n const node = se_SSES3(input.SSES3, context).withName(\"SSE-S3\");\n bodyNode.addChildNode(node);\n }\n if (input.SSEKMS != null) {\n const node = se_SSEKMS(input.SSEKMS, context).withName(\"SSE-KMS\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_InventoryFilter = (input, context) => {\n const bodyNode = new __XmlNode(\"InventoryFilter\");\n if (input.Prefix != null) {\n const node = __XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_InventoryOptionalFields = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = __XmlNode.of(\"InventoryOptionalField\", entry);\n return node.withName(\"Field\");\n });\n};\nconst se_InventoryS3BucketDestination = (input, context) => {\n const bodyNode = new __XmlNode(\"InventoryS3BucketDestination\");\n if (input.AccountId != null) {\n const node = __XmlNode.of(\"AccountId\", input.AccountId).withName(\"AccountId\");\n bodyNode.addChildNode(node);\n }\n if (input.Bucket != null) {\n const node = __XmlNode.of(\"BucketName\", input.Bucket).withName(\"Bucket\");\n bodyNode.addChildNode(node);\n }\n if (input.Format != null) {\n const node = __XmlNode.of(\"InventoryFormat\", input.Format).withName(\"Format\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix != null) {\n const node = __XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Encryption != null) {\n const node = se_InventoryEncryption(input.Encryption, context).withName(\"Encryption\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_InventorySchedule = (input, context) => {\n const bodyNode = new __XmlNode(\"InventorySchedule\");\n if (input.Frequency != null) {\n const node = __XmlNode.of(\"InventoryFrequency\", input.Frequency).withName(\"Frequency\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_JSONInput = (input, context) => {\n const bodyNode = new __XmlNode(\"JSONInput\");\n if (input.Type != null) {\n const node = __XmlNode.of(\"JSONType\", input.Type).withName(\"Type\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_JSONOutput = (input, context) => {\n const bodyNode = new __XmlNode(\"JSONOutput\");\n if (input.RecordDelimiter != null) {\n const node = __XmlNode.of(\"RecordDelimiter\", input.RecordDelimiter).withName(\"RecordDelimiter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_LambdaFunctionConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"LambdaFunctionConfiguration\");\n if (input.Id != null) {\n const node = __XmlNode.of(\"NotificationId\", input.Id).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.LambdaFunctionArn != null) {\n const node = __XmlNode.of(\"LambdaFunctionArn\", input.LambdaFunctionArn).withName(\"CloudFunction\");\n bodyNode.addChildNode(node);\n }\n if (input.Events != null) {\n const nodes = se_EventList(input.Events, context);\n nodes.map((node) => {\n node = node.withName(\"Event\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.Filter != null) {\n const node = se_NotificationConfigurationFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_LambdaFunctionConfigurationList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_LambdaFunctionConfiguration(entry, context);\n return node.withName(\"member\");\n });\n};\nconst se_LifecycleExpiration = (input, context) => {\n const bodyNode = new __XmlNode(\"LifecycleExpiration\");\n if (input.Date != null) {\n const node = __XmlNode.of(\"Date\", (input.Date.toISOString().split(\".\")[0] + \"Z\").toString()).withName(\"Date\");\n bodyNode.addChildNode(node);\n }\n if (input.Days != null) {\n const node = __XmlNode.of(\"Days\", String(input.Days)).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.ExpiredObjectDeleteMarker != null) {\n const node = __XmlNode\n .of(\"ExpiredObjectDeleteMarker\", String(input.ExpiredObjectDeleteMarker))\n .withName(\"ExpiredObjectDeleteMarker\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_LifecycleRule = (input, context) => {\n const bodyNode = new __XmlNode(\"LifecycleRule\");\n if (input.Expiration != null) {\n const node = se_LifecycleExpiration(input.Expiration, context).withName(\"Expiration\");\n bodyNode.addChildNode(node);\n }\n if (input.ID != null) {\n const node = __XmlNode.of(\"ID\", input.ID).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix != null) {\n const node = __XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter != null) {\n const node = se_LifecycleRuleFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.Status != null) {\n const node = __XmlNode.of(\"ExpirationStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.Transitions != null) {\n const nodes = se_TransitionList(input.Transitions, context);\n nodes.map((node) => {\n node = node.withName(\"Transition\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.NoncurrentVersionTransitions != null) {\n const nodes = se_NoncurrentVersionTransitionList(input.NoncurrentVersionTransitions, context);\n nodes.map((node) => {\n node = node.withName(\"NoncurrentVersionTransition\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.NoncurrentVersionExpiration != null) {\n const node = se_NoncurrentVersionExpiration(input.NoncurrentVersionExpiration, context).withName(\"NoncurrentVersionExpiration\");\n bodyNode.addChildNode(node);\n }\n if (input.AbortIncompleteMultipartUpload != null) {\n const node = se_AbortIncompleteMultipartUpload(input.AbortIncompleteMultipartUpload, context).withName(\"AbortIncompleteMultipartUpload\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_LifecycleRuleAndOperator = (input, context) => {\n const bodyNode = new __XmlNode(\"LifecycleRuleAndOperator\");\n if (input.Prefix != null) {\n const node = __XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags != null) {\n const nodes = se_TagSet(input.Tags, context);\n nodes.map((node) => {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.ObjectSizeGreaterThan != null) {\n const node = __XmlNode\n .of(\"ObjectSizeGreaterThanBytes\", String(input.ObjectSizeGreaterThan))\n .withName(\"ObjectSizeGreaterThan\");\n bodyNode.addChildNode(node);\n }\n if (input.ObjectSizeLessThan != null) {\n const node = __XmlNode\n .of(\"ObjectSizeLessThanBytes\", String(input.ObjectSizeLessThan))\n .withName(\"ObjectSizeLessThan\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_LifecycleRuleFilter = (input, context) => {\n const bodyNode = new __XmlNode(\"LifecycleRuleFilter\");\n LifecycleRuleFilter.visit(input, {\n Prefix: (value) => {\n const node = __XmlNode.of(\"Prefix\", value).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n },\n Tag: (value) => {\n const node = se_Tag(value, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n },\n ObjectSizeGreaterThan: (value) => {\n const node = __XmlNode.of(\"ObjectSizeGreaterThanBytes\", String(value)).withName(\"ObjectSizeGreaterThan\");\n bodyNode.addChildNode(node);\n },\n ObjectSizeLessThan: (value) => {\n const node = __XmlNode.of(\"ObjectSizeLessThanBytes\", String(value)).withName(\"ObjectSizeLessThan\");\n bodyNode.addChildNode(node);\n },\n And: (value) => {\n const node = se_LifecycleRuleAndOperator(value, context).withName(\"And\");\n bodyNode.addChildNode(node);\n },\n _: (name, value) => {\n if (!(value instanceof __XmlNode || value instanceof __XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n bodyNode.addChildNode(new __XmlNode(name).addChildNode(value));\n },\n });\n return bodyNode;\n};\nconst se_LifecycleRules = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_LifecycleRule(entry, context);\n return node.withName(\"member\");\n });\n};\nconst se_LoggingEnabled = (input, context) => {\n const bodyNode = new __XmlNode(\"LoggingEnabled\");\n if (input.TargetBucket != null) {\n const node = __XmlNode.of(\"TargetBucket\", input.TargetBucket).withName(\"TargetBucket\");\n bodyNode.addChildNode(node);\n }\n if (input.TargetGrants != null) {\n const nodes = se_TargetGrants(input.TargetGrants, context);\n const containerNode = new __XmlNode(\"TargetGrants\");\n nodes.map((node) => {\n containerNode.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode);\n }\n if (input.TargetPrefix != null) {\n const node = __XmlNode.of(\"TargetPrefix\", input.TargetPrefix).withName(\"TargetPrefix\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_MetadataEntry = (input, context) => {\n const bodyNode = new __XmlNode(\"MetadataEntry\");\n if (input.Name != null) {\n const node = __XmlNode.of(\"MetadataKey\", input.Name).withName(\"Name\");\n bodyNode.addChildNode(node);\n }\n if (input.Value != null) {\n const node = __XmlNode.of(\"MetadataValue\", input.Value).withName(\"Value\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_Metrics = (input, context) => {\n const bodyNode = new __XmlNode(\"Metrics\");\n if (input.Status != null) {\n const node = __XmlNode.of(\"MetricsStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.EventThreshold != null) {\n const node = se_ReplicationTimeValue(input.EventThreshold, context).withName(\"EventThreshold\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_MetricsAndOperator = (input, context) => {\n const bodyNode = new __XmlNode(\"MetricsAndOperator\");\n if (input.Prefix != null) {\n const node = __XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags != null) {\n const nodes = se_TagSet(input.Tags, context);\n nodes.map((node) => {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.AccessPointArn != null) {\n const node = __XmlNode.of(\"AccessPointArn\", input.AccessPointArn).withName(\"AccessPointArn\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_MetricsConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"MetricsConfiguration\");\n if (input.Id != null) {\n const node = __XmlNode.of(\"MetricsId\", input.Id).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter != null) {\n const node = se_MetricsFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_MetricsFilter = (input, context) => {\n const bodyNode = new __XmlNode(\"MetricsFilter\");\n MetricsFilter.visit(input, {\n Prefix: (value) => {\n const node = __XmlNode.of(\"Prefix\", value).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n },\n Tag: (value) => {\n const node = se_Tag(value, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n },\n AccessPointArn: (value) => {\n const node = __XmlNode.of(\"AccessPointArn\", value).withName(\"AccessPointArn\");\n bodyNode.addChildNode(node);\n },\n And: (value) => {\n const node = se_MetricsAndOperator(value, context).withName(\"And\");\n bodyNode.addChildNode(node);\n },\n _: (name, value) => {\n if (!(value instanceof __XmlNode || value instanceof __XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n bodyNode.addChildNode(new __XmlNode(name).addChildNode(value));\n },\n });\n return bodyNode;\n};\nconst se_NoncurrentVersionExpiration = (input, context) => {\n const bodyNode = new __XmlNode(\"NoncurrentVersionExpiration\");\n if (input.NoncurrentDays != null) {\n const node = __XmlNode.of(\"Days\", String(input.NoncurrentDays)).withName(\"NoncurrentDays\");\n bodyNode.addChildNode(node);\n }\n if (input.NewerNoncurrentVersions != null) {\n const node = __XmlNode\n .of(\"VersionCount\", String(input.NewerNoncurrentVersions))\n .withName(\"NewerNoncurrentVersions\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_NoncurrentVersionTransition = (input, context) => {\n const bodyNode = new __XmlNode(\"NoncurrentVersionTransition\");\n if (input.NoncurrentDays != null) {\n const node = __XmlNode.of(\"Days\", String(input.NoncurrentDays)).withName(\"NoncurrentDays\");\n bodyNode.addChildNode(node);\n }\n if (input.StorageClass != null) {\n const node = __XmlNode.of(\"TransitionStorageClass\", input.StorageClass).withName(\"StorageClass\");\n bodyNode.addChildNode(node);\n }\n if (input.NewerNoncurrentVersions != null) {\n const node = __XmlNode\n .of(\"VersionCount\", String(input.NewerNoncurrentVersions))\n .withName(\"NewerNoncurrentVersions\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_NoncurrentVersionTransitionList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_NoncurrentVersionTransition(entry, context);\n return node.withName(\"member\");\n });\n};\nconst se_NotificationConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"NotificationConfiguration\");\n if (input.TopicConfigurations != null) {\n const nodes = se_TopicConfigurationList(input.TopicConfigurations, context);\n nodes.map((node) => {\n node = node.withName(\"TopicConfiguration\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.QueueConfigurations != null) {\n const nodes = se_QueueConfigurationList(input.QueueConfigurations, context);\n nodes.map((node) => {\n node = node.withName(\"QueueConfiguration\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.LambdaFunctionConfigurations != null) {\n const nodes = se_LambdaFunctionConfigurationList(input.LambdaFunctionConfigurations, context);\n nodes.map((node) => {\n node = node.withName(\"CloudFunctionConfiguration\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.EventBridgeConfiguration != null) {\n const node = se_EventBridgeConfiguration(input.EventBridgeConfiguration, context).withName(\"EventBridgeConfiguration\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_NotificationConfigurationFilter = (input, context) => {\n const bodyNode = new __XmlNode(\"NotificationConfigurationFilter\");\n if (input.Key != null) {\n const node = se_S3KeyFilter(input.Key, context).withName(\"S3Key\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ObjectIdentifier = (input, context) => {\n const bodyNode = new __XmlNode(\"ObjectIdentifier\");\n if (input.Key != null) {\n const node = __XmlNode.of(\"ObjectKey\", input.Key).withName(\"Key\");\n bodyNode.addChildNode(node);\n }\n if (input.VersionId != null) {\n const node = __XmlNode.of(\"ObjectVersionId\", input.VersionId).withName(\"VersionId\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ObjectIdentifierList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_ObjectIdentifier(entry, context);\n return node.withName(\"member\");\n });\n};\nconst se_ObjectLockConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"ObjectLockConfiguration\");\n if (input.ObjectLockEnabled != null) {\n const node = __XmlNode.of(\"ObjectLockEnabled\", input.ObjectLockEnabled).withName(\"ObjectLockEnabled\");\n bodyNode.addChildNode(node);\n }\n if (input.Rule != null) {\n const node = se_ObjectLockRule(input.Rule, context).withName(\"Rule\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ObjectLockLegalHold = (input, context) => {\n const bodyNode = new __XmlNode(\"ObjectLockLegalHold\");\n if (input.Status != null) {\n const node = __XmlNode.of(\"ObjectLockLegalHoldStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ObjectLockRetention = (input, context) => {\n const bodyNode = new __XmlNode(\"ObjectLockRetention\");\n if (input.Mode != null) {\n const node = __XmlNode.of(\"ObjectLockRetentionMode\", input.Mode).withName(\"Mode\");\n bodyNode.addChildNode(node);\n }\n if (input.RetainUntilDate != null) {\n const node = __XmlNode\n .of(\"Date\", (input.RetainUntilDate.toISOString().split(\".\")[0] + \"Z\").toString())\n .withName(\"RetainUntilDate\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ObjectLockRule = (input, context) => {\n const bodyNode = new __XmlNode(\"ObjectLockRule\");\n if (input.DefaultRetention != null) {\n const node = se_DefaultRetention(input.DefaultRetention, context).withName(\"DefaultRetention\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_OutputLocation = (input, context) => {\n const bodyNode = new __XmlNode(\"OutputLocation\");\n if (input.S3 != null) {\n const node = se_S3Location(input.S3, context).withName(\"S3\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_OutputSerialization = (input, context) => {\n const bodyNode = new __XmlNode(\"OutputSerialization\");\n if (input.CSV != null) {\n const node = se_CSVOutput(input.CSV, context).withName(\"CSV\");\n bodyNode.addChildNode(node);\n }\n if (input.JSON != null) {\n const node = se_JSONOutput(input.JSON, context).withName(\"JSON\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_Owner = (input, context) => {\n const bodyNode = new __XmlNode(\"Owner\");\n if (input.DisplayName != null) {\n const node = __XmlNode.of(\"DisplayName\", input.DisplayName).withName(\"DisplayName\");\n bodyNode.addChildNode(node);\n }\n if (input.ID != null) {\n const node = __XmlNode.of(\"ID\", input.ID).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_OwnershipControls = (input, context) => {\n const bodyNode = new __XmlNode(\"OwnershipControls\");\n if (input.Rules != null) {\n const nodes = se_OwnershipControlsRules(input.Rules, context);\n nodes.map((node) => {\n node = node.withName(\"Rule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst se_OwnershipControlsRule = (input, context) => {\n const bodyNode = new __XmlNode(\"OwnershipControlsRule\");\n if (input.ObjectOwnership != null) {\n const node = __XmlNode.of(\"ObjectOwnership\", input.ObjectOwnership).withName(\"ObjectOwnership\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_OwnershipControlsRules = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_OwnershipControlsRule(entry, context);\n return node.withName(\"member\");\n });\n};\nconst se_ParquetInput = (input, context) => {\n const bodyNode = new __XmlNode(\"ParquetInput\");\n return bodyNode;\n};\nconst se_PublicAccessBlockConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"PublicAccessBlockConfiguration\");\n if (input.BlockPublicAcls != null) {\n const node = __XmlNode.of(\"Setting\", String(input.BlockPublicAcls)).withName(\"BlockPublicAcls\");\n bodyNode.addChildNode(node);\n }\n if (input.IgnorePublicAcls != null) {\n const node = __XmlNode.of(\"Setting\", String(input.IgnorePublicAcls)).withName(\"IgnorePublicAcls\");\n bodyNode.addChildNode(node);\n }\n if (input.BlockPublicPolicy != null) {\n const node = __XmlNode.of(\"Setting\", String(input.BlockPublicPolicy)).withName(\"BlockPublicPolicy\");\n bodyNode.addChildNode(node);\n }\n if (input.RestrictPublicBuckets != null) {\n const node = __XmlNode.of(\"Setting\", String(input.RestrictPublicBuckets)).withName(\"RestrictPublicBuckets\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_QueueConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"QueueConfiguration\");\n if (input.Id != null) {\n const node = __XmlNode.of(\"NotificationId\", input.Id).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.QueueArn != null) {\n const node = __XmlNode.of(\"QueueArn\", input.QueueArn).withName(\"Queue\");\n bodyNode.addChildNode(node);\n }\n if (input.Events != null) {\n const nodes = se_EventList(input.Events, context);\n nodes.map((node) => {\n node = node.withName(\"Event\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.Filter != null) {\n const node = se_NotificationConfigurationFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_QueueConfigurationList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_QueueConfiguration(entry, context);\n return node.withName(\"member\");\n });\n};\nconst se_Redirect = (input, context) => {\n const bodyNode = new __XmlNode(\"Redirect\");\n if (input.HostName != null) {\n const node = __XmlNode.of(\"HostName\", input.HostName).withName(\"HostName\");\n bodyNode.addChildNode(node);\n }\n if (input.HttpRedirectCode != null) {\n const node = __XmlNode.of(\"HttpRedirectCode\", input.HttpRedirectCode).withName(\"HttpRedirectCode\");\n bodyNode.addChildNode(node);\n }\n if (input.Protocol != null) {\n const node = __XmlNode.of(\"Protocol\", input.Protocol).withName(\"Protocol\");\n bodyNode.addChildNode(node);\n }\n if (input.ReplaceKeyPrefixWith != null) {\n const node = __XmlNode.of(\"ReplaceKeyPrefixWith\", input.ReplaceKeyPrefixWith).withName(\"ReplaceKeyPrefixWith\");\n bodyNode.addChildNode(node);\n }\n if (input.ReplaceKeyWith != null) {\n const node = __XmlNode.of(\"ReplaceKeyWith\", input.ReplaceKeyWith).withName(\"ReplaceKeyWith\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_RedirectAllRequestsTo = (input, context) => {\n const bodyNode = new __XmlNode(\"RedirectAllRequestsTo\");\n if (input.HostName != null) {\n const node = __XmlNode.of(\"HostName\", input.HostName).withName(\"HostName\");\n bodyNode.addChildNode(node);\n }\n if (input.Protocol != null) {\n const node = __XmlNode.of(\"Protocol\", input.Protocol).withName(\"Protocol\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ReplicaModifications = (input, context) => {\n const bodyNode = new __XmlNode(\"ReplicaModifications\");\n if (input.Status != null) {\n const node = __XmlNode.of(\"ReplicaModificationsStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ReplicationConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"ReplicationConfiguration\");\n if (input.Role != null) {\n const node = __XmlNode.of(\"Role\", input.Role).withName(\"Role\");\n bodyNode.addChildNode(node);\n }\n if (input.Rules != null) {\n const nodes = se_ReplicationRules(input.Rules, context);\n nodes.map((node) => {\n node = node.withName(\"Rule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst se_ReplicationRule = (input, context) => {\n const bodyNode = new __XmlNode(\"ReplicationRule\");\n if (input.ID != null) {\n const node = __XmlNode.of(\"ID\", input.ID).withName(\"ID\");\n bodyNode.addChildNode(node);\n }\n if (input.Priority != null) {\n const node = __XmlNode.of(\"Priority\", String(input.Priority)).withName(\"Priority\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix != null) {\n const node = __XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Filter != null) {\n const node = se_ReplicationRuleFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n if (input.Status != null) {\n const node = __XmlNode.of(\"ReplicationRuleStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.SourceSelectionCriteria != null) {\n const node = se_SourceSelectionCriteria(input.SourceSelectionCriteria, context).withName(\"SourceSelectionCriteria\");\n bodyNode.addChildNode(node);\n }\n if (input.ExistingObjectReplication != null) {\n const node = se_ExistingObjectReplication(input.ExistingObjectReplication, context).withName(\"ExistingObjectReplication\");\n bodyNode.addChildNode(node);\n }\n if (input.Destination != null) {\n const node = se_Destination(input.Destination, context).withName(\"Destination\");\n bodyNode.addChildNode(node);\n }\n if (input.DeleteMarkerReplication != null) {\n const node = se_DeleteMarkerReplication(input.DeleteMarkerReplication, context).withName(\"DeleteMarkerReplication\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ReplicationRuleAndOperator = (input, context) => {\n const bodyNode = new __XmlNode(\"ReplicationRuleAndOperator\");\n if (input.Prefix != null) {\n const node = __XmlNode.of(\"Prefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Tags != null) {\n const nodes = se_TagSet(input.Tags, context);\n nodes.map((node) => {\n node = node.withName(\"Tag\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst se_ReplicationRuleFilter = (input, context) => {\n const bodyNode = new __XmlNode(\"ReplicationRuleFilter\");\n ReplicationRuleFilter.visit(input, {\n Prefix: (value) => {\n const node = __XmlNode.of(\"Prefix\", value).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n },\n Tag: (value) => {\n const node = se_Tag(value, context).withName(\"Tag\");\n bodyNode.addChildNode(node);\n },\n And: (value) => {\n const node = se_ReplicationRuleAndOperator(value, context).withName(\"And\");\n bodyNode.addChildNode(node);\n },\n _: (name, value) => {\n if (!(value instanceof __XmlNode || value instanceof __XmlText)) {\n throw new Error(\"Unable to serialize unknown union members in XML.\");\n }\n bodyNode.addChildNode(new __XmlNode(name).addChildNode(value));\n },\n });\n return bodyNode;\n};\nconst se_ReplicationRules = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_ReplicationRule(entry, context);\n return node.withName(\"member\");\n });\n};\nconst se_ReplicationTime = (input, context) => {\n const bodyNode = new __XmlNode(\"ReplicationTime\");\n if (input.Status != null) {\n const node = __XmlNode.of(\"ReplicationTimeStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n if (input.Time != null) {\n const node = se_ReplicationTimeValue(input.Time, context).withName(\"Time\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ReplicationTimeValue = (input, context) => {\n const bodyNode = new __XmlNode(\"ReplicationTimeValue\");\n if (input.Minutes != null) {\n const node = __XmlNode.of(\"Minutes\", String(input.Minutes)).withName(\"Minutes\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_RequestPaymentConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"RequestPaymentConfiguration\");\n if (input.Payer != null) {\n const node = __XmlNode.of(\"Payer\", input.Payer).withName(\"Payer\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_RequestProgress = (input, context) => {\n const bodyNode = new __XmlNode(\"RequestProgress\");\n if (input.Enabled != null) {\n const node = __XmlNode.of(\"EnableRequestProgress\", String(input.Enabled)).withName(\"Enabled\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_RestoreRequest = (input, context) => {\n const bodyNode = new __XmlNode(\"RestoreRequest\");\n if (input.Days != null) {\n const node = __XmlNode.of(\"Days\", String(input.Days)).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.GlacierJobParameters != null) {\n const node = se_GlacierJobParameters(input.GlacierJobParameters, context).withName(\"GlacierJobParameters\");\n bodyNode.addChildNode(node);\n }\n if (input.Type != null) {\n const node = __XmlNode.of(\"RestoreRequestType\", input.Type).withName(\"Type\");\n bodyNode.addChildNode(node);\n }\n if (input.Tier != null) {\n const node = __XmlNode.of(\"Tier\", input.Tier).withName(\"Tier\");\n bodyNode.addChildNode(node);\n }\n if (input.Description != null) {\n const node = __XmlNode.of(\"Description\", input.Description).withName(\"Description\");\n bodyNode.addChildNode(node);\n }\n if (input.SelectParameters != null) {\n const node = se_SelectParameters(input.SelectParameters, context).withName(\"SelectParameters\");\n bodyNode.addChildNode(node);\n }\n if (input.OutputLocation != null) {\n const node = se_OutputLocation(input.OutputLocation, context).withName(\"OutputLocation\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_RoutingRule = (input, context) => {\n const bodyNode = new __XmlNode(\"RoutingRule\");\n if (input.Condition != null) {\n const node = se_Condition(input.Condition, context).withName(\"Condition\");\n bodyNode.addChildNode(node);\n }\n if (input.Redirect != null) {\n const node = se_Redirect(input.Redirect, context).withName(\"Redirect\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_RoutingRules = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_RoutingRule(entry, context);\n return node.withName(\"RoutingRule\");\n });\n};\nconst se_S3KeyFilter = (input, context) => {\n const bodyNode = new __XmlNode(\"S3KeyFilter\");\n if (input.FilterRules != null) {\n const nodes = se_FilterRuleList(input.FilterRules, context);\n nodes.map((node) => {\n node = node.withName(\"FilterRule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst se_S3Location = (input, context) => {\n const bodyNode = new __XmlNode(\"S3Location\");\n if (input.BucketName != null) {\n const node = __XmlNode.of(\"BucketName\", input.BucketName).withName(\"BucketName\");\n bodyNode.addChildNode(node);\n }\n if (input.Prefix != null) {\n const node = __XmlNode.of(\"LocationPrefix\", input.Prefix).withName(\"Prefix\");\n bodyNode.addChildNode(node);\n }\n if (input.Encryption != null) {\n const node = se_Encryption(input.Encryption, context).withName(\"Encryption\");\n bodyNode.addChildNode(node);\n }\n if (input.CannedACL != null) {\n const node = __XmlNode.of(\"ObjectCannedACL\", input.CannedACL).withName(\"CannedACL\");\n bodyNode.addChildNode(node);\n }\n if (input.AccessControlList != null) {\n const nodes = se_Grants(input.AccessControlList, context);\n const containerNode = new __XmlNode(\"AccessControlList\");\n nodes.map((node) => {\n containerNode.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode);\n }\n if (input.Tagging != null) {\n const node = se_Tagging(input.Tagging, context).withName(\"Tagging\");\n bodyNode.addChildNode(node);\n }\n if (input.UserMetadata != null) {\n const nodes = se_UserMetadata(input.UserMetadata, context);\n const containerNode = new __XmlNode(\"UserMetadata\");\n nodes.map((node) => {\n containerNode.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode);\n }\n if (input.StorageClass != null) {\n const node = __XmlNode.of(\"StorageClass\", input.StorageClass).withName(\"StorageClass\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ScanRange = (input, context) => {\n const bodyNode = new __XmlNode(\"ScanRange\");\n if (input.Start != null) {\n const node = __XmlNode.of(\"Start\", String(input.Start)).withName(\"Start\");\n bodyNode.addChildNode(node);\n }\n if (input.End != null) {\n const node = __XmlNode.of(\"End\", String(input.End)).withName(\"End\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_SelectParameters = (input, context) => {\n const bodyNode = new __XmlNode(\"SelectParameters\");\n if (input.InputSerialization != null) {\n const node = se_InputSerialization(input.InputSerialization, context).withName(\"InputSerialization\");\n bodyNode.addChildNode(node);\n }\n if (input.ExpressionType != null) {\n const node = __XmlNode.of(\"ExpressionType\", input.ExpressionType).withName(\"ExpressionType\");\n bodyNode.addChildNode(node);\n }\n if (input.Expression != null) {\n const node = __XmlNode.of(\"Expression\", input.Expression).withName(\"Expression\");\n bodyNode.addChildNode(node);\n }\n if (input.OutputSerialization != null) {\n const node = se_OutputSerialization(input.OutputSerialization, context).withName(\"OutputSerialization\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ServerSideEncryptionByDefault = (input, context) => {\n const bodyNode = new __XmlNode(\"ServerSideEncryptionByDefault\");\n if (input.SSEAlgorithm != null) {\n const node = __XmlNode.of(\"ServerSideEncryption\", input.SSEAlgorithm).withName(\"SSEAlgorithm\");\n bodyNode.addChildNode(node);\n }\n if (input.KMSMasterKeyID != null) {\n const node = __XmlNode.of(\"SSEKMSKeyId\", input.KMSMasterKeyID).withName(\"KMSMasterKeyID\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ServerSideEncryptionConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"ServerSideEncryptionConfiguration\");\n if (input.Rules != null) {\n const nodes = se_ServerSideEncryptionRules(input.Rules, context);\n nodes.map((node) => {\n node = node.withName(\"Rule\");\n bodyNode.addChildNode(node);\n });\n }\n return bodyNode;\n};\nconst se_ServerSideEncryptionRule = (input, context) => {\n const bodyNode = new __XmlNode(\"ServerSideEncryptionRule\");\n if (input.ApplyServerSideEncryptionByDefault != null) {\n const node = se_ServerSideEncryptionByDefault(input.ApplyServerSideEncryptionByDefault, context).withName(\"ApplyServerSideEncryptionByDefault\");\n bodyNode.addChildNode(node);\n }\n if (input.BucketKeyEnabled != null) {\n const node = __XmlNode.of(\"BucketKeyEnabled\", String(input.BucketKeyEnabled)).withName(\"BucketKeyEnabled\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_ServerSideEncryptionRules = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_ServerSideEncryptionRule(entry, context);\n return node.withName(\"member\");\n });\n};\nconst se_SourceSelectionCriteria = (input, context) => {\n const bodyNode = new __XmlNode(\"SourceSelectionCriteria\");\n if (input.SseKmsEncryptedObjects != null) {\n const node = se_SseKmsEncryptedObjects(input.SseKmsEncryptedObjects, context).withName(\"SseKmsEncryptedObjects\");\n bodyNode.addChildNode(node);\n }\n if (input.ReplicaModifications != null) {\n const node = se_ReplicaModifications(input.ReplicaModifications, context).withName(\"ReplicaModifications\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_SSEKMS = (input, context) => {\n const bodyNode = new __XmlNode(\"SSE-KMS\");\n if (input.KeyId != null) {\n const node = __XmlNode.of(\"SSEKMSKeyId\", input.KeyId).withName(\"KeyId\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_SseKmsEncryptedObjects = (input, context) => {\n const bodyNode = new __XmlNode(\"SseKmsEncryptedObjects\");\n if (input.Status != null) {\n const node = __XmlNode.of(\"SseKmsEncryptedObjectsStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_SSES3 = (input, context) => {\n const bodyNode = new __XmlNode(\"SSE-S3\");\n return bodyNode;\n};\nconst se_StorageClassAnalysis = (input, context) => {\n const bodyNode = new __XmlNode(\"StorageClassAnalysis\");\n if (input.DataExport != null) {\n const node = se_StorageClassAnalysisDataExport(input.DataExport, context).withName(\"DataExport\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_StorageClassAnalysisDataExport = (input, context) => {\n const bodyNode = new __XmlNode(\"StorageClassAnalysisDataExport\");\n if (input.OutputSchemaVersion != null) {\n const node = __XmlNode\n .of(\"StorageClassAnalysisSchemaVersion\", input.OutputSchemaVersion)\n .withName(\"OutputSchemaVersion\");\n bodyNode.addChildNode(node);\n }\n if (input.Destination != null) {\n const node = se_AnalyticsExportDestination(input.Destination, context).withName(\"Destination\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_Tag = (input, context) => {\n const bodyNode = new __XmlNode(\"Tag\");\n if (input.Key != null) {\n const node = __XmlNode.of(\"ObjectKey\", input.Key).withName(\"Key\");\n bodyNode.addChildNode(node);\n }\n if (input.Value != null) {\n const node = __XmlNode.of(\"Value\", input.Value).withName(\"Value\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_Tagging = (input, context) => {\n const bodyNode = new __XmlNode(\"Tagging\");\n if (input.TagSet != null) {\n const nodes = se_TagSet(input.TagSet, context);\n const containerNode = new __XmlNode(\"TagSet\");\n nodes.map((node) => {\n containerNode.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode);\n }\n return bodyNode;\n};\nconst se_TagSet = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_Tag(entry, context);\n return node.withName(\"Tag\");\n });\n};\nconst se_TargetGrant = (input, context) => {\n const bodyNode = new __XmlNode(\"TargetGrant\");\n if (input.Grantee != null) {\n const node = se_Grantee(input.Grantee, context).withName(\"Grantee\");\n node.addAttribute(\"xmlns:xsi\", \"http://www.w3.org/2001/XMLSchema-instance\");\n bodyNode.addChildNode(node);\n }\n if (input.Permission != null) {\n const node = __XmlNode.of(\"BucketLogsPermission\", input.Permission).withName(\"Permission\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_TargetGrants = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_TargetGrant(entry, context);\n return node.withName(\"Grant\");\n });\n};\nconst se_Tiering = (input, context) => {\n const bodyNode = new __XmlNode(\"Tiering\");\n if (input.Days != null) {\n const node = __XmlNode.of(\"IntelligentTieringDays\", String(input.Days)).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.AccessTier != null) {\n const node = __XmlNode.of(\"IntelligentTieringAccessTier\", input.AccessTier).withName(\"AccessTier\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_TieringList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_Tiering(entry, context);\n return node.withName(\"member\");\n });\n};\nconst se_TopicConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"TopicConfiguration\");\n if (input.Id != null) {\n const node = __XmlNode.of(\"NotificationId\", input.Id).withName(\"Id\");\n bodyNode.addChildNode(node);\n }\n if (input.TopicArn != null) {\n const node = __XmlNode.of(\"TopicArn\", input.TopicArn).withName(\"Topic\");\n bodyNode.addChildNode(node);\n }\n if (input.Events != null) {\n const nodes = se_EventList(input.Events, context);\n nodes.map((node) => {\n node = node.withName(\"Event\");\n bodyNode.addChildNode(node);\n });\n }\n if (input.Filter != null) {\n const node = se_NotificationConfigurationFilter(input.Filter, context).withName(\"Filter\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_TopicConfigurationList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_TopicConfiguration(entry, context);\n return node.withName(\"member\");\n });\n};\nconst se_Transition = (input, context) => {\n const bodyNode = new __XmlNode(\"Transition\");\n if (input.Date != null) {\n const node = __XmlNode.of(\"Date\", (input.Date.toISOString().split(\".\")[0] + \"Z\").toString()).withName(\"Date\");\n bodyNode.addChildNode(node);\n }\n if (input.Days != null) {\n const node = __XmlNode.of(\"Days\", String(input.Days)).withName(\"Days\");\n bodyNode.addChildNode(node);\n }\n if (input.StorageClass != null) {\n const node = __XmlNode.of(\"TransitionStorageClass\", input.StorageClass).withName(\"StorageClass\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_TransitionList = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_Transition(entry, context);\n return node.withName(\"member\");\n });\n};\nconst se_UserMetadata = (input, context) => {\n return input\n .filter((e) => e != null)\n .map((entry) => {\n const node = se_MetadataEntry(entry, context);\n return node.withName(\"MetadataEntry\");\n });\n};\nconst se_VersioningConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"VersioningConfiguration\");\n if (input.MFADelete != null) {\n const node = __XmlNode.of(\"MFADelete\", input.MFADelete).withName(\"MfaDelete\");\n bodyNode.addChildNode(node);\n }\n if (input.Status != null) {\n const node = __XmlNode.of(\"BucketVersioningStatus\", input.Status).withName(\"Status\");\n bodyNode.addChildNode(node);\n }\n return bodyNode;\n};\nconst se_WebsiteConfiguration = (input, context) => {\n const bodyNode = new __XmlNode(\"WebsiteConfiguration\");\n if (input.ErrorDocument != null) {\n const node = se_ErrorDocument(input.ErrorDocument, context).withName(\"ErrorDocument\");\n bodyNode.addChildNode(node);\n }\n if (input.IndexDocument != null) {\n const node = se_IndexDocument(input.IndexDocument, context).withName(\"IndexDocument\");\n bodyNode.addChildNode(node);\n }\n if (input.RedirectAllRequestsTo != null) {\n const node = se_RedirectAllRequestsTo(input.RedirectAllRequestsTo, context).withName(\"RedirectAllRequestsTo\");\n bodyNode.addChildNode(node);\n }\n if (input.RoutingRules != null) {\n const nodes = se_RoutingRules(input.RoutingRules, context);\n const containerNode = new __XmlNode(\"RoutingRules\");\n nodes.map((node) => {\n containerNode.addChildNode(node);\n });\n bodyNode.addChildNode(containerNode);\n }\n return bodyNode;\n};\nconst de_AbortIncompleteMultipartUpload = (output, context) => {\n const contents = {};\n if (output[\"DaysAfterInitiation\"] !== undefined) {\n contents.DaysAfterInitiation = __strictParseInt32(output[\"DaysAfterInitiation\"]);\n }\n return contents;\n};\nconst de_AccessControlTranslation = (output, context) => {\n const contents = {};\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = __expectString(output[\"Owner\"]);\n }\n return contents;\n};\nconst de_AllowedHeaders = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return __expectString(entry);\n });\n};\nconst de_AllowedMethods = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return __expectString(entry);\n });\n};\nconst de_AllowedOrigins = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return __expectString(entry);\n });\n};\nconst de_AnalyticsAndOperator = (output, context) => {\n const contents = {};\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n else if (output[\"Tag\"] !== undefined) {\n contents.Tags = de_TagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n return contents;\n};\nconst de_AnalyticsConfiguration = (output, context) => {\n const contents = {};\n if (output[\"Id\"] !== undefined) {\n contents.Id = __expectString(output[\"Id\"]);\n }\n if (output.Filter === \"\") {\n }\n else if (output[\"Filter\"] !== undefined) {\n contents.Filter = de_AnalyticsFilter(__expectUnion(output[\"Filter\"]), context);\n }\n if (output[\"StorageClassAnalysis\"] !== undefined) {\n contents.StorageClassAnalysis = de_StorageClassAnalysis(output[\"StorageClassAnalysis\"], context);\n }\n return contents;\n};\nconst de_AnalyticsConfigurationList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_AnalyticsConfiguration(entry, context);\n });\n};\nconst de_AnalyticsExportDestination = (output, context) => {\n const contents = {};\n if (output[\"S3BucketDestination\"] !== undefined) {\n contents.S3BucketDestination = de_AnalyticsS3BucketDestination(output[\"S3BucketDestination\"], context);\n }\n return contents;\n};\nconst de_AnalyticsFilter = (output, context) => {\n if (output[\"Prefix\"] !== undefined) {\n return {\n Prefix: __expectString(output[\"Prefix\"]),\n };\n }\n if (output[\"Tag\"] !== undefined) {\n return {\n Tag: de_Tag(output[\"Tag\"], context),\n };\n }\n if (output[\"And\"] !== undefined) {\n return {\n And: de_AnalyticsAndOperator(output[\"And\"], context),\n };\n }\n return { $unknown: Object.entries(output)[0] };\n};\nconst de_AnalyticsS3BucketDestination = (output, context) => {\n const contents = {};\n if (output[\"Format\"] !== undefined) {\n contents.Format = __expectString(output[\"Format\"]);\n }\n if (output[\"BucketAccountId\"] !== undefined) {\n contents.BucketAccountId = __expectString(output[\"BucketAccountId\"]);\n }\n if (output[\"Bucket\"] !== undefined) {\n contents.Bucket = __expectString(output[\"Bucket\"]);\n }\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n return contents;\n};\nconst de_Bucket = (output, context) => {\n const contents = {};\n if (output[\"Name\"] !== undefined) {\n contents.Name = __expectString(output[\"Name\"]);\n }\n if (output[\"CreationDate\"] !== undefined) {\n contents.CreationDate = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[\"CreationDate\"]));\n }\n return contents;\n};\nconst de_Buckets = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_Bucket(entry, context);\n });\n};\nconst de_Checksum = (output, context) => {\n const contents = {};\n if (output[\"ChecksumCRC32\"] !== undefined) {\n contents.ChecksumCRC32 = __expectString(output[\"ChecksumCRC32\"]);\n }\n if (output[\"ChecksumCRC32C\"] !== undefined) {\n contents.ChecksumCRC32C = __expectString(output[\"ChecksumCRC32C\"]);\n }\n if (output[\"ChecksumSHA1\"] !== undefined) {\n contents.ChecksumSHA1 = __expectString(output[\"ChecksumSHA1\"]);\n }\n if (output[\"ChecksumSHA256\"] !== undefined) {\n contents.ChecksumSHA256 = __expectString(output[\"ChecksumSHA256\"]);\n }\n return contents;\n};\nconst de_ChecksumAlgorithmList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return __expectString(entry);\n });\n};\nconst de_CommonPrefix = (output, context) => {\n const contents = {};\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n return contents;\n};\nconst de_CommonPrefixList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_CommonPrefix(entry, context);\n });\n};\nconst de_Condition = (output, context) => {\n const contents = {};\n if (output[\"HttpErrorCodeReturnedEquals\"] !== undefined) {\n contents.HttpErrorCodeReturnedEquals = __expectString(output[\"HttpErrorCodeReturnedEquals\"]);\n }\n if (output[\"KeyPrefixEquals\"] !== undefined) {\n contents.KeyPrefixEquals = __expectString(output[\"KeyPrefixEquals\"]);\n }\n return contents;\n};\nconst de_ContinuationEvent = (output, context) => {\n const contents = {};\n return contents;\n};\nconst de_CopyObjectResult = (output, context) => {\n const contents = {};\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = __expectString(output[\"ETag\"]);\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[\"LastModified\"]));\n }\n if (output[\"ChecksumCRC32\"] !== undefined) {\n contents.ChecksumCRC32 = __expectString(output[\"ChecksumCRC32\"]);\n }\n if (output[\"ChecksumCRC32C\"] !== undefined) {\n contents.ChecksumCRC32C = __expectString(output[\"ChecksumCRC32C\"]);\n }\n if (output[\"ChecksumSHA1\"] !== undefined) {\n contents.ChecksumSHA1 = __expectString(output[\"ChecksumSHA1\"]);\n }\n if (output[\"ChecksumSHA256\"] !== undefined) {\n contents.ChecksumSHA256 = __expectString(output[\"ChecksumSHA256\"]);\n }\n return contents;\n};\nconst de_CopyPartResult = (output, context) => {\n const contents = {};\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = __expectString(output[\"ETag\"]);\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[\"LastModified\"]));\n }\n if (output[\"ChecksumCRC32\"] !== undefined) {\n contents.ChecksumCRC32 = __expectString(output[\"ChecksumCRC32\"]);\n }\n if (output[\"ChecksumCRC32C\"] !== undefined) {\n contents.ChecksumCRC32C = __expectString(output[\"ChecksumCRC32C\"]);\n }\n if (output[\"ChecksumSHA1\"] !== undefined) {\n contents.ChecksumSHA1 = __expectString(output[\"ChecksumSHA1\"]);\n }\n if (output[\"ChecksumSHA256\"] !== undefined) {\n contents.ChecksumSHA256 = __expectString(output[\"ChecksumSHA256\"]);\n }\n return contents;\n};\nconst de_CORSRule = (output, context) => {\n const contents = {};\n if (output[\"ID\"] !== undefined) {\n contents.ID = __expectString(output[\"ID\"]);\n }\n if (output.AllowedHeader === \"\") {\n contents.AllowedHeaders = [];\n }\n else if (output[\"AllowedHeader\"] !== undefined) {\n contents.AllowedHeaders = de_AllowedHeaders(__getArrayIfSingleItem(output[\"AllowedHeader\"]), context);\n }\n if (output.AllowedMethod === \"\") {\n contents.AllowedMethods = [];\n }\n else if (output[\"AllowedMethod\"] !== undefined) {\n contents.AllowedMethods = de_AllowedMethods(__getArrayIfSingleItem(output[\"AllowedMethod\"]), context);\n }\n if (output.AllowedOrigin === \"\") {\n contents.AllowedOrigins = [];\n }\n else if (output[\"AllowedOrigin\"] !== undefined) {\n contents.AllowedOrigins = de_AllowedOrigins(__getArrayIfSingleItem(output[\"AllowedOrigin\"]), context);\n }\n if (output.ExposeHeader === \"\") {\n contents.ExposeHeaders = [];\n }\n else if (output[\"ExposeHeader\"] !== undefined) {\n contents.ExposeHeaders = de_ExposeHeaders(__getArrayIfSingleItem(output[\"ExposeHeader\"]), context);\n }\n if (output[\"MaxAgeSeconds\"] !== undefined) {\n contents.MaxAgeSeconds = __strictParseInt32(output[\"MaxAgeSeconds\"]);\n }\n return contents;\n};\nconst de_CORSRules = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_CORSRule(entry, context);\n });\n};\nconst de_DefaultRetention = (output, context) => {\n const contents = {};\n if (output[\"Mode\"] !== undefined) {\n contents.Mode = __expectString(output[\"Mode\"]);\n }\n if (output[\"Days\"] !== undefined) {\n contents.Days = __strictParseInt32(output[\"Days\"]);\n }\n if (output[\"Years\"] !== undefined) {\n contents.Years = __strictParseInt32(output[\"Years\"]);\n }\n return contents;\n};\nconst de_DeletedObject = (output, context) => {\n const contents = {};\n if (output[\"Key\"] !== undefined) {\n contents.Key = __expectString(output[\"Key\"]);\n }\n if (output[\"VersionId\"] !== undefined) {\n contents.VersionId = __expectString(output[\"VersionId\"]);\n }\n if (output[\"DeleteMarker\"] !== undefined) {\n contents.DeleteMarker = __parseBoolean(output[\"DeleteMarker\"]);\n }\n if (output[\"DeleteMarkerVersionId\"] !== undefined) {\n contents.DeleteMarkerVersionId = __expectString(output[\"DeleteMarkerVersionId\"]);\n }\n return contents;\n};\nconst de_DeletedObjects = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_DeletedObject(entry, context);\n });\n};\nconst de_DeleteMarkerEntry = (output, context) => {\n const contents = {};\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = de_Owner(output[\"Owner\"], context);\n }\n if (output[\"Key\"] !== undefined) {\n contents.Key = __expectString(output[\"Key\"]);\n }\n if (output[\"VersionId\"] !== undefined) {\n contents.VersionId = __expectString(output[\"VersionId\"]);\n }\n if (output[\"IsLatest\"] !== undefined) {\n contents.IsLatest = __parseBoolean(output[\"IsLatest\"]);\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[\"LastModified\"]));\n }\n return contents;\n};\nconst de_DeleteMarkerReplication = (output, context) => {\n const contents = {};\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n return contents;\n};\nconst de_DeleteMarkers = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_DeleteMarkerEntry(entry, context);\n });\n};\nconst de_Destination = (output, context) => {\n const contents = {};\n if (output[\"Bucket\"] !== undefined) {\n contents.Bucket = __expectString(output[\"Bucket\"]);\n }\n if (output[\"Account\"] !== undefined) {\n contents.Account = __expectString(output[\"Account\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = __expectString(output[\"StorageClass\"]);\n }\n if (output[\"AccessControlTranslation\"] !== undefined) {\n contents.AccessControlTranslation = de_AccessControlTranslation(output[\"AccessControlTranslation\"], context);\n }\n if (output[\"EncryptionConfiguration\"] !== undefined) {\n contents.EncryptionConfiguration = de_EncryptionConfiguration(output[\"EncryptionConfiguration\"], context);\n }\n if (output[\"ReplicationTime\"] !== undefined) {\n contents.ReplicationTime = de_ReplicationTime(output[\"ReplicationTime\"], context);\n }\n if (output[\"Metrics\"] !== undefined) {\n contents.Metrics = de_Metrics(output[\"Metrics\"], context);\n }\n return contents;\n};\nconst de_EncryptionConfiguration = (output, context) => {\n const contents = {};\n if (output[\"ReplicaKmsKeyID\"] !== undefined) {\n contents.ReplicaKmsKeyID = __expectString(output[\"ReplicaKmsKeyID\"]);\n }\n return contents;\n};\nconst de_EndEvent = (output, context) => {\n const contents = {};\n return contents;\n};\nconst de__Error = (output, context) => {\n const contents = {};\n if (output[\"Key\"] !== undefined) {\n contents.Key = __expectString(output[\"Key\"]);\n }\n if (output[\"VersionId\"] !== undefined) {\n contents.VersionId = __expectString(output[\"VersionId\"]);\n }\n if (output[\"Code\"] !== undefined) {\n contents.Code = __expectString(output[\"Code\"]);\n }\n if (output[\"Message\"] !== undefined) {\n contents.Message = __expectString(output[\"Message\"]);\n }\n return contents;\n};\nconst de_ErrorDocument = (output, context) => {\n const contents = {};\n if (output[\"Key\"] !== undefined) {\n contents.Key = __expectString(output[\"Key\"]);\n }\n return contents;\n};\nconst de_Errors = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de__Error(entry, context);\n });\n};\nconst de_EventBridgeConfiguration = (output, context) => {\n const contents = {};\n return contents;\n};\nconst de_EventList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return __expectString(entry);\n });\n};\nconst de_ExistingObjectReplication = (output, context) => {\n const contents = {};\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n return contents;\n};\nconst de_ExposeHeaders = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return __expectString(entry);\n });\n};\nconst de_FilterRule = (output, context) => {\n const contents = {};\n if (output[\"Name\"] !== undefined) {\n contents.Name = __expectString(output[\"Name\"]);\n }\n if (output[\"Value\"] !== undefined) {\n contents.Value = __expectString(output[\"Value\"]);\n }\n return contents;\n};\nconst de_FilterRuleList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_FilterRule(entry, context);\n });\n};\nconst de_GetObjectAttributesParts = (output, context) => {\n const contents = {};\n if (output[\"PartsCount\"] !== undefined) {\n contents.TotalPartsCount = __strictParseInt32(output[\"PartsCount\"]);\n }\n if (output[\"PartNumberMarker\"] !== undefined) {\n contents.PartNumberMarker = __expectString(output[\"PartNumberMarker\"]);\n }\n if (output[\"NextPartNumberMarker\"] !== undefined) {\n contents.NextPartNumberMarker = __expectString(output[\"NextPartNumberMarker\"]);\n }\n if (output[\"MaxParts\"] !== undefined) {\n contents.MaxParts = __strictParseInt32(output[\"MaxParts\"]);\n }\n if (output[\"IsTruncated\"] !== undefined) {\n contents.IsTruncated = __parseBoolean(output[\"IsTruncated\"]);\n }\n if (output.Part === \"\") {\n contents.Parts = [];\n }\n else if (output[\"Part\"] !== undefined) {\n contents.Parts = de_PartsList(__getArrayIfSingleItem(output[\"Part\"]), context);\n }\n return contents;\n};\nconst de_Grant = (output, context) => {\n const contents = {};\n if (output[\"Grantee\"] !== undefined) {\n contents.Grantee = de_Grantee(output[\"Grantee\"], context);\n }\n if (output[\"Permission\"] !== undefined) {\n contents.Permission = __expectString(output[\"Permission\"]);\n }\n return contents;\n};\nconst de_Grantee = (output, context) => {\n const contents = {};\n if (output[\"DisplayName\"] !== undefined) {\n contents.DisplayName = __expectString(output[\"DisplayName\"]);\n }\n if (output[\"EmailAddress\"] !== undefined) {\n contents.EmailAddress = __expectString(output[\"EmailAddress\"]);\n }\n if (output[\"ID\"] !== undefined) {\n contents.ID = __expectString(output[\"ID\"]);\n }\n if (output[\"URI\"] !== undefined) {\n contents.URI = __expectString(output[\"URI\"]);\n }\n if (output[\"xsi:type\"] !== undefined) {\n contents.Type = __expectString(output[\"xsi:type\"]);\n }\n return contents;\n};\nconst de_Grants = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_Grant(entry, context);\n });\n};\nconst de_IndexDocument = (output, context) => {\n const contents = {};\n if (output[\"Suffix\"] !== undefined) {\n contents.Suffix = __expectString(output[\"Suffix\"]);\n }\n return contents;\n};\nconst de_Initiator = (output, context) => {\n const contents = {};\n if (output[\"ID\"] !== undefined) {\n contents.ID = __expectString(output[\"ID\"]);\n }\n if (output[\"DisplayName\"] !== undefined) {\n contents.DisplayName = __expectString(output[\"DisplayName\"]);\n }\n return contents;\n};\nconst de_IntelligentTieringAndOperator = (output, context) => {\n const contents = {};\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n else if (output[\"Tag\"] !== undefined) {\n contents.Tags = de_TagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n return contents;\n};\nconst de_IntelligentTieringConfiguration = (output, context) => {\n const contents = {};\n if (output[\"Id\"] !== undefined) {\n contents.Id = __expectString(output[\"Id\"]);\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = de_IntelligentTieringFilter(output[\"Filter\"], context);\n }\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n if (output.Tiering === \"\") {\n contents.Tierings = [];\n }\n else if (output[\"Tiering\"] !== undefined) {\n contents.Tierings = de_TieringList(__getArrayIfSingleItem(output[\"Tiering\"]), context);\n }\n return contents;\n};\nconst de_IntelligentTieringConfigurationList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_IntelligentTieringConfiguration(entry, context);\n });\n};\nconst de_IntelligentTieringFilter = (output, context) => {\n const contents = {};\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n if (output[\"Tag\"] !== undefined) {\n contents.Tag = de_Tag(output[\"Tag\"], context);\n }\n if (output[\"And\"] !== undefined) {\n contents.And = de_IntelligentTieringAndOperator(output[\"And\"], context);\n }\n return contents;\n};\nconst de_InventoryConfiguration = (output, context) => {\n const contents = {};\n if (output[\"Destination\"] !== undefined) {\n contents.Destination = de_InventoryDestination(output[\"Destination\"], context);\n }\n if (output[\"IsEnabled\"] !== undefined) {\n contents.IsEnabled = __parseBoolean(output[\"IsEnabled\"]);\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = de_InventoryFilter(output[\"Filter\"], context);\n }\n if (output[\"Id\"] !== undefined) {\n contents.Id = __expectString(output[\"Id\"]);\n }\n if (output[\"IncludedObjectVersions\"] !== undefined) {\n contents.IncludedObjectVersions = __expectString(output[\"IncludedObjectVersions\"]);\n }\n if (output.OptionalFields === \"\") {\n contents.OptionalFields = [];\n }\n else if (output[\"OptionalFields\"] !== undefined && output[\"OptionalFields\"][\"Field\"] !== undefined) {\n contents.OptionalFields = de_InventoryOptionalFields(__getArrayIfSingleItem(output[\"OptionalFields\"][\"Field\"]), context);\n }\n if (output[\"Schedule\"] !== undefined) {\n contents.Schedule = de_InventorySchedule(output[\"Schedule\"], context);\n }\n return contents;\n};\nconst de_InventoryConfigurationList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_InventoryConfiguration(entry, context);\n });\n};\nconst de_InventoryDestination = (output, context) => {\n const contents = {};\n if (output[\"S3BucketDestination\"] !== undefined) {\n contents.S3BucketDestination = de_InventoryS3BucketDestination(output[\"S3BucketDestination\"], context);\n }\n return contents;\n};\nconst de_InventoryEncryption = (output, context) => {\n const contents = {};\n if (output[\"SSE-S3\"] !== undefined) {\n contents.SSES3 = de_SSES3(output[\"SSE-S3\"], context);\n }\n if (output[\"SSE-KMS\"] !== undefined) {\n contents.SSEKMS = de_SSEKMS(output[\"SSE-KMS\"], context);\n }\n return contents;\n};\nconst de_InventoryFilter = (output, context) => {\n const contents = {};\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n return contents;\n};\nconst de_InventoryOptionalFields = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return __expectString(entry);\n });\n};\nconst de_InventoryS3BucketDestination = (output, context) => {\n const contents = {};\n if (output[\"AccountId\"] !== undefined) {\n contents.AccountId = __expectString(output[\"AccountId\"]);\n }\n if (output[\"Bucket\"] !== undefined) {\n contents.Bucket = __expectString(output[\"Bucket\"]);\n }\n if (output[\"Format\"] !== undefined) {\n contents.Format = __expectString(output[\"Format\"]);\n }\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n if (output[\"Encryption\"] !== undefined) {\n contents.Encryption = de_InventoryEncryption(output[\"Encryption\"], context);\n }\n return contents;\n};\nconst de_InventorySchedule = (output, context) => {\n const contents = {};\n if (output[\"Frequency\"] !== undefined) {\n contents.Frequency = __expectString(output[\"Frequency\"]);\n }\n return contents;\n};\nconst de_LambdaFunctionConfiguration = (output, context) => {\n const contents = {};\n if (output[\"Id\"] !== undefined) {\n contents.Id = __expectString(output[\"Id\"]);\n }\n if (output[\"CloudFunction\"] !== undefined) {\n contents.LambdaFunctionArn = __expectString(output[\"CloudFunction\"]);\n }\n if (output.Event === \"\") {\n contents.Events = [];\n }\n else if (output[\"Event\"] !== undefined) {\n contents.Events = de_EventList(__getArrayIfSingleItem(output[\"Event\"]), context);\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = de_NotificationConfigurationFilter(output[\"Filter\"], context);\n }\n return contents;\n};\nconst de_LambdaFunctionConfigurationList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_LambdaFunctionConfiguration(entry, context);\n });\n};\nconst de_LifecycleExpiration = (output, context) => {\n const contents = {};\n if (output[\"Date\"] !== undefined) {\n contents.Date = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[\"Date\"]));\n }\n if (output[\"Days\"] !== undefined) {\n contents.Days = __strictParseInt32(output[\"Days\"]);\n }\n if (output[\"ExpiredObjectDeleteMarker\"] !== undefined) {\n contents.ExpiredObjectDeleteMarker = __parseBoolean(output[\"ExpiredObjectDeleteMarker\"]);\n }\n return contents;\n};\nconst de_LifecycleRule = (output, context) => {\n const contents = {};\n if (output[\"Expiration\"] !== undefined) {\n contents.Expiration = de_LifecycleExpiration(output[\"Expiration\"], context);\n }\n if (output[\"ID\"] !== undefined) {\n contents.ID = __expectString(output[\"ID\"]);\n }\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n if (output.Filter === \"\") {\n }\n else if (output[\"Filter\"] !== undefined) {\n contents.Filter = de_LifecycleRuleFilter(__expectUnion(output[\"Filter\"]), context);\n }\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n if (output.Transition === \"\") {\n contents.Transitions = [];\n }\n else if (output[\"Transition\"] !== undefined) {\n contents.Transitions = de_TransitionList(__getArrayIfSingleItem(output[\"Transition\"]), context);\n }\n if (output.NoncurrentVersionTransition === \"\") {\n contents.NoncurrentVersionTransitions = [];\n }\n else if (output[\"NoncurrentVersionTransition\"] !== undefined) {\n contents.NoncurrentVersionTransitions = de_NoncurrentVersionTransitionList(__getArrayIfSingleItem(output[\"NoncurrentVersionTransition\"]), context);\n }\n if (output[\"NoncurrentVersionExpiration\"] !== undefined) {\n contents.NoncurrentVersionExpiration = de_NoncurrentVersionExpiration(output[\"NoncurrentVersionExpiration\"], context);\n }\n if (output[\"AbortIncompleteMultipartUpload\"] !== undefined) {\n contents.AbortIncompleteMultipartUpload = de_AbortIncompleteMultipartUpload(output[\"AbortIncompleteMultipartUpload\"], context);\n }\n return contents;\n};\nconst de_LifecycleRuleAndOperator = (output, context) => {\n const contents = {};\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n else if (output[\"Tag\"] !== undefined) {\n contents.Tags = de_TagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n if (output[\"ObjectSizeGreaterThan\"] !== undefined) {\n contents.ObjectSizeGreaterThan = __strictParseLong(output[\"ObjectSizeGreaterThan\"]);\n }\n if (output[\"ObjectSizeLessThan\"] !== undefined) {\n contents.ObjectSizeLessThan = __strictParseLong(output[\"ObjectSizeLessThan\"]);\n }\n return contents;\n};\nconst de_LifecycleRuleFilter = (output, context) => {\n if (output[\"Prefix\"] !== undefined) {\n return {\n Prefix: __expectString(output[\"Prefix\"]),\n };\n }\n if (output[\"Tag\"] !== undefined) {\n return {\n Tag: de_Tag(output[\"Tag\"], context),\n };\n }\n if (output[\"ObjectSizeGreaterThan\"] !== undefined) {\n return {\n ObjectSizeGreaterThan: __strictParseLong(output[\"ObjectSizeGreaterThan\"]),\n };\n }\n if (output[\"ObjectSizeLessThan\"] !== undefined) {\n return {\n ObjectSizeLessThan: __strictParseLong(output[\"ObjectSizeLessThan\"]),\n };\n }\n if (output[\"And\"] !== undefined) {\n return {\n And: de_LifecycleRuleAndOperator(output[\"And\"], context),\n };\n }\n return { $unknown: Object.entries(output)[0] };\n};\nconst de_LifecycleRules = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_LifecycleRule(entry, context);\n });\n};\nconst de_LoggingEnabled = (output, context) => {\n const contents = {};\n if (output[\"TargetBucket\"] !== undefined) {\n contents.TargetBucket = __expectString(output[\"TargetBucket\"]);\n }\n if (output.TargetGrants === \"\") {\n contents.TargetGrants = [];\n }\n else if (output[\"TargetGrants\"] !== undefined && output[\"TargetGrants\"][\"Grant\"] !== undefined) {\n contents.TargetGrants = de_TargetGrants(__getArrayIfSingleItem(output[\"TargetGrants\"][\"Grant\"]), context);\n }\n if (output[\"TargetPrefix\"] !== undefined) {\n contents.TargetPrefix = __expectString(output[\"TargetPrefix\"]);\n }\n return contents;\n};\nconst de_Metrics = (output, context) => {\n const contents = {};\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n if (output[\"EventThreshold\"] !== undefined) {\n contents.EventThreshold = de_ReplicationTimeValue(output[\"EventThreshold\"], context);\n }\n return contents;\n};\nconst de_MetricsAndOperator = (output, context) => {\n const contents = {};\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n else if (output[\"Tag\"] !== undefined) {\n contents.Tags = de_TagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n if (output[\"AccessPointArn\"] !== undefined) {\n contents.AccessPointArn = __expectString(output[\"AccessPointArn\"]);\n }\n return contents;\n};\nconst de_MetricsConfiguration = (output, context) => {\n const contents = {};\n if (output[\"Id\"] !== undefined) {\n contents.Id = __expectString(output[\"Id\"]);\n }\n if (output.Filter === \"\") {\n }\n else if (output[\"Filter\"] !== undefined) {\n contents.Filter = de_MetricsFilter(__expectUnion(output[\"Filter\"]), context);\n }\n return contents;\n};\nconst de_MetricsConfigurationList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_MetricsConfiguration(entry, context);\n });\n};\nconst de_MetricsFilter = (output, context) => {\n if (output[\"Prefix\"] !== undefined) {\n return {\n Prefix: __expectString(output[\"Prefix\"]),\n };\n }\n if (output[\"Tag\"] !== undefined) {\n return {\n Tag: de_Tag(output[\"Tag\"], context),\n };\n }\n if (output[\"AccessPointArn\"] !== undefined) {\n return {\n AccessPointArn: __expectString(output[\"AccessPointArn\"]),\n };\n }\n if (output[\"And\"] !== undefined) {\n return {\n And: de_MetricsAndOperator(output[\"And\"], context),\n };\n }\n return { $unknown: Object.entries(output)[0] };\n};\nconst de_MultipartUpload = (output, context) => {\n const contents = {};\n if (output[\"UploadId\"] !== undefined) {\n contents.UploadId = __expectString(output[\"UploadId\"]);\n }\n if (output[\"Key\"] !== undefined) {\n contents.Key = __expectString(output[\"Key\"]);\n }\n if (output[\"Initiated\"] !== undefined) {\n contents.Initiated = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[\"Initiated\"]));\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = __expectString(output[\"StorageClass\"]);\n }\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = de_Owner(output[\"Owner\"], context);\n }\n if (output[\"Initiator\"] !== undefined) {\n contents.Initiator = de_Initiator(output[\"Initiator\"], context);\n }\n if (output[\"ChecksumAlgorithm\"] !== undefined) {\n contents.ChecksumAlgorithm = __expectString(output[\"ChecksumAlgorithm\"]);\n }\n return contents;\n};\nconst de_MultipartUploadList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_MultipartUpload(entry, context);\n });\n};\nconst de_NoncurrentVersionExpiration = (output, context) => {\n const contents = {};\n if (output[\"NoncurrentDays\"] !== undefined) {\n contents.NoncurrentDays = __strictParseInt32(output[\"NoncurrentDays\"]);\n }\n if (output[\"NewerNoncurrentVersions\"] !== undefined) {\n contents.NewerNoncurrentVersions = __strictParseInt32(output[\"NewerNoncurrentVersions\"]);\n }\n return contents;\n};\nconst de_NoncurrentVersionTransition = (output, context) => {\n const contents = {};\n if (output[\"NoncurrentDays\"] !== undefined) {\n contents.NoncurrentDays = __strictParseInt32(output[\"NoncurrentDays\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = __expectString(output[\"StorageClass\"]);\n }\n if (output[\"NewerNoncurrentVersions\"] !== undefined) {\n contents.NewerNoncurrentVersions = __strictParseInt32(output[\"NewerNoncurrentVersions\"]);\n }\n return contents;\n};\nconst de_NoncurrentVersionTransitionList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_NoncurrentVersionTransition(entry, context);\n });\n};\nconst de_NotificationConfigurationFilter = (output, context) => {\n const contents = {};\n if (output[\"S3Key\"] !== undefined) {\n contents.Key = de_S3KeyFilter(output[\"S3Key\"], context);\n }\n return contents;\n};\nconst de__Object = (output, context) => {\n const contents = {};\n if (output[\"Key\"] !== undefined) {\n contents.Key = __expectString(output[\"Key\"]);\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[\"LastModified\"]));\n }\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = __expectString(output[\"ETag\"]);\n }\n if (output.ChecksumAlgorithm === \"\") {\n contents.ChecksumAlgorithm = [];\n }\n else if (output[\"ChecksumAlgorithm\"] !== undefined) {\n contents.ChecksumAlgorithm = de_ChecksumAlgorithmList(__getArrayIfSingleItem(output[\"ChecksumAlgorithm\"]), context);\n }\n if (output[\"Size\"] !== undefined) {\n contents.Size = __strictParseLong(output[\"Size\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = __expectString(output[\"StorageClass\"]);\n }\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = de_Owner(output[\"Owner\"], context);\n }\n if (output[\"RestoreStatus\"] !== undefined) {\n contents.RestoreStatus = de_RestoreStatus(output[\"RestoreStatus\"], context);\n }\n return contents;\n};\nconst de_ObjectList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de__Object(entry, context);\n });\n};\nconst de_ObjectLockConfiguration = (output, context) => {\n const contents = {};\n if (output[\"ObjectLockEnabled\"] !== undefined) {\n contents.ObjectLockEnabled = __expectString(output[\"ObjectLockEnabled\"]);\n }\n if (output[\"Rule\"] !== undefined) {\n contents.Rule = de_ObjectLockRule(output[\"Rule\"], context);\n }\n return contents;\n};\nconst de_ObjectLockLegalHold = (output, context) => {\n const contents = {};\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n return contents;\n};\nconst de_ObjectLockRetention = (output, context) => {\n const contents = {};\n if (output[\"Mode\"] !== undefined) {\n contents.Mode = __expectString(output[\"Mode\"]);\n }\n if (output[\"RetainUntilDate\"] !== undefined) {\n contents.RetainUntilDate = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[\"RetainUntilDate\"]));\n }\n return contents;\n};\nconst de_ObjectLockRule = (output, context) => {\n const contents = {};\n if (output[\"DefaultRetention\"] !== undefined) {\n contents.DefaultRetention = de_DefaultRetention(output[\"DefaultRetention\"], context);\n }\n return contents;\n};\nconst de_ObjectPart = (output, context) => {\n const contents = {};\n if (output[\"PartNumber\"] !== undefined) {\n contents.PartNumber = __strictParseInt32(output[\"PartNumber\"]);\n }\n if (output[\"Size\"] !== undefined) {\n contents.Size = __strictParseLong(output[\"Size\"]);\n }\n if (output[\"ChecksumCRC32\"] !== undefined) {\n contents.ChecksumCRC32 = __expectString(output[\"ChecksumCRC32\"]);\n }\n if (output[\"ChecksumCRC32C\"] !== undefined) {\n contents.ChecksumCRC32C = __expectString(output[\"ChecksumCRC32C\"]);\n }\n if (output[\"ChecksumSHA1\"] !== undefined) {\n contents.ChecksumSHA1 = __expectString(output[\"ChecksumSHA1\"]);\n }\n if (output[\"ChecksumSHA256\"] !== undefined) {\n contents.ChecksumSHA256 = __expectString(output[\"ChecksumSHA256\"]);\n }\n return contents;\n};\nconst de_ObjectVersion = (output, context) => {\n const contents = {};\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = __expectString(output[\"ETag\"]);\n }\n if (output.ChecksumAlgorithm === \"\") {\n contents.ChecksumAlgorithm = [];\n }\n else if (output[\"ChecksumAlgorithm\"] !== undefined) {\n contents.ChecksumAlgorithm = de_ChecksumAlgorithmList(__getArrayIfSingleItem(output[\"ChecksumAlgorithm\"]), context);\n }\n if (output[\"Size\"] !== undefined) {\n contents.Size = __strictParseLong(output[\"Size\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = __expectString(output[\"StorageClass\"]);\n }\n if (output[\"Key\"] !== undefined) {\n contents.Key = __expectString(output[\"Key\"]);\n }\n if (output[\"VersionId\"] !== undefined) {\n contents.VersionId = __expectString(output[\"VersionId\"]);\n }\n if (output[\"IsLatest\"] !== undefined) {\n contents.IsLatest = __parseBoolean(output[\"IsLatest\"]);\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[\"LastModified\"]));\n }\n if (output[\"Owner\"] !== undefined) {\n contents.Owner = de_Owner(output[\"Owner\"], context);\n }\n if (output[\"RestoreStatus\"] !== undefined) {\n contents.RestoreStatus = de_RestoreStatus(output[\"RestoreStatus\"], context);\n }\n return contents;\n};\nconst de_ObjectVersionList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_ObjectVersion(entry, context);\n });\n};\nconst de_Owner = (output, context) => {\n const contents = {};\n if (output[\"DisplayName\"] !== undefined) {\n contents.DisplayName = __expectString(output[\"DisplayName\"]);\n }\n if (output[\"ID\"] !== undefined) {\n contents.ID = __expectString(output[\"ID\"]);\n }\n return contents;\n};\nconst de_OwnershipControls = (output, context) => {\n const contents = {};\n if (output.Rule === \"\") {\n contents.Rules = [];\n }\n else if (output[\"Rule\"] !== undefined) {\n contents.Rules = de_OwnershipControlsRules(__getArrayIfSingleItem(output[\"Rule\"]), context);\n }\n return contents;\n};\nconst de_OwnershipControlsRule = (output, context) => {\n const contents = {};\n if (output[\"ObjectOwnership\"] !== undefined) {\n contents.ObjectOwnership = __expectString(output[\"ObjectOwnership\"]);\n }\n return contents;\n};\nconst de_OwnershipControlsRules = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_OwnershipControlsRule(entry, context);\n });\n};\nconst de_Part = (output, context) => {\n const contents = {};\n if (output[\"PartNumber\"] !== undefined) {\n contents.PartNumber = __strictParseInt32(output[\"PartNumber\"]);\n }\n if (output[\"LastModified\"] !== undefined) {\n contents.LastModified = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[\"LastModified\"]));\n }\n if (output[\"ETag\"] !== undefined) {\n contents.ETag = __expectString(output[\"ETag\"]);\n }\n if (output[\"Size\"] !== undefined) {\n contents.Size = __strictParseLong(output[\"Size\"]);\n }\n if (output[\"ChecksumCRC32\"] !== undefined) {\n contents.ChecksumCRC32 = __expectString(output[\"ChecksumCRC32\"]);\n }\n if (output[\"ChecksumCRC32C\"] !== undefined) {\n contents.ChecksumCRC32C = __expectString(output[\"ChecksumCRC32C\"]);\n }\n if (output[\"ChecksumSHA1\"] !== undefined) {\n contents.ChecksumSHA1 = __expectString(output[\"ChecksumSHA1\"]);\n }\n if (output[\"ChecksumSHA256\"] !== undefined) {\n contents.ChecksumSHA256 = __expectString(output[\"ChecksumSHA256\"]);\n }\n return contents;\n};\nconst de_Parts = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_Part(entry, context);\n });\n};\nconst de_PartsList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_ObjectPart(entry, context);\n });\n};\nconst de_PolicyStatus = (output, context) => {\n const contents = {};\n if (output[\"IsPublic\"] !== undefined) {\n contents.IsPublic = __parseBoolean(output[\"IsPublic\"]);\n }\n return contents;\n};\nconst de_Progress = (output, context) => {\n const contents = {};\n if (output[\"BytesScanned\"] !== undefined) {\n contents.BytesScanned = __strictParseLong(output[\"BytesScanned\"]);\n }\n if (output[\"BytesProcessed\"] !== undefined) {\n contents.BytesProcessed = __strictParseLong(output[\"BytesProcessed\"]);\n }\n if (output[\"BytesReturned\"] !== undefined) {\n contents.BytesReturned = __strictParseLong(output[\"BytesReturned\"]);\n }\n return contents;\n};\nconst de_PublicAccessBlockConfiguration = (output, context) => {\n const contents = {};\n if (output[\"BlockPublicAcls\"] !== undefined) {\n contents.BlockPublicAcls = __parseBoolean(output[\"BlockPublicAcls\"]);\n }\n if (output[\"IgnorePublicAcls\"] !== undefined) {\n contents.IgnorePublicAcls = __parseBoolean(output[\"IgnorePublicAcls\"]);\n }\n if (output[\"BlockPublicPolicy\"] !== undefined) {\n contents.BlockPublicPolicy = __parseBoolean(output[\"BlockPublicPolicy\"]);\n }\n if (output[\"RestrictPublicBuckets\"] !== undefined) {\n contents.RestrictPublicBuckets = __parseBoolean(output[\"RestrictPublicBuckets\"]);\n }\n return contents;\n};\nconst de_QueueConfiguration = (output, context) => {\n const contents = {};\n if (output[\"Id\"] !== undefined) {\n contents.Id = __expectString(output[\"Id\"]);\n }\n if (output[\"Queue\"] !== undefined) {\n contents.QueueArn = __expectString(output[\"Queue\"]);\n }\n if (output.Event === \"\") {\n contents.Events = [];\n }\n else if (output[\"Event\"] !== undefined) {\n contents.Events = de_EventList(__getArrayIfSingleItem(output[\"Event\"]), context);\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = de_NotificationConfigurationFilter(output[\"Filter\"], context);\n }\n return contents;\n};\nconst de_QueueConfigurationList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_QueueConfiguration(entry, context);\n });\n};\nconst de_Redirect = (output, context) => {\n const contents = {};\n if (output[\"HostName\"] !== undefined) {\n contents.HostName = __expectString(output[\"HostName\"]);\n }\n if (output[\"HttpRedirectCode\"] !== undefined) {\n contents.HttpRedirectCode = __expectString(output[\"HttpRedirectCode\"]);\n }\n if (output[\"Protocol\"] !== undefined) {\n contents.Protocol = __expectString(output[\"Protocol\"]);\n }\n if (output[\"ReplaceKeyPrefixWith\"] !== undefined) {\n contents.ReplaceKeyPrefixWith = __expectString(output[\"ReplaceKeyPrefixWith\"]);\n }\n if (output[\"ReplaceKeyWith\"] !== undefined) {\n contents.ReplaceKeyWith = __expectString(output[\"ReplaceKeyWith\"]);\n }\n return contents;\n};\nconst de_RedirectAllRequestsTo = (output, context) => {\n const contents = {};\n if (output[\"HostName\"] !== undefined) {\n contents.HostName = __expectString(output[\"HostName\"]);\n }\n if (output[\"Protocol\"] !== undefined) {\n contents.Protocol = __expectString(output[\"Protocol\"]);\n }\n return contents;\n};\nconst de_ReplicaModifications = (output, context) => {\n const contents = {};\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n return contents;\n};\nconst de_ReplicationConfiguration = (output, context) => {\n const contents = {};\n if (output[\"Role\"] !== undefined) {\n contents.Role = __expectString(output[\"Role\"]);\n }\n if (output.Rule === \"\") {\n contents.Rules = [];\n }\n else if (output[\"Rule\"] !== undefined) {\n contents.Rules = de_ReplicationRules(__getArrayIfSingleItem(output[\"Rule\"]), context);\n }\n return contents;\n};\nconst de_ReplicationRule = (output, context) => {\n const contents = {};\n if (output[\"ID\"] !== undefined) {\n contents.ID = __expectString(output[\"ID\"]);\n }\n if (output[\"Priority\"] !== undefined) {\n contents.Priority = __strictParseInt32(output[\"Priority\"]);\n }\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n if (output.Filter === \"\") {\n }\n else if (output[\"Filter\"] !== undefined) {\n contents.Filter = de_ReplicationRuleFilter(__expectUnion(output[\"Filter\"]), context);\n }\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n if (output[\"SourceSelectionCriteria\"] !== undefined) {\n contents.SourceSelectionCriteria = de_SourceSelectionCriteria(output[\"SourceSelectionCriteria\"], context);\n }\n if (output[\"ExistingObjectReplication\"] !== undefined) {\n contents.ExistingObjectReplication = de_ExistingObjectReplication(output[\"ExistingObjectReplication\"], context);\n }\n if (output[\"Destination\"] !== undefined) {\n contents.Destination = de_Destination(output[\"Destination\"], context);\n }\n if (output[\"DeleteMarkerReplication\"] !== undefined) {\n contents.DeleteMarkerReplication = de_DeleteMarkerReplication(output[\"DeleteMarkerReplication\"], context);\n }\n return contents;\n};\nconst de_ReplicationRuleAndOperator = (output, context) => {\n const contents = {};\n if (output[\"Prefix\"] !== undefined) {\n contents.Prefix = __expectString(output[\"Prefix\"]);\n }\n if (output.Tag === \"\") {\n contents.Tags = [];\n }\n else if (output[\"Tag\"] !== undefined) {\n contents.Tags = de_TagSet(__getArrayIfSingleItem(output[\"Tag\"]), context);\n }\n return contents;\n};\nconst de_ReplicationRuleFilter = (output, context) => {\n if (output[\"Prefix\"] !== undefined) {\n return {\n Prefix: __expectString(output[\"Prefix\"]),\n };\n }\n if (output[\"Tag\"] !== undefined) {\n return {\n Tag: de_Tag(output[\"Tag\"], context),\n };\n }\n if (output[\"And\"] !== undefined) {\n return {\n And: de_ReplicationRuleAndOperator(output[\"And\"], context),\n };\n }\n return { $unknown: Object.entries(output)[0] };\n};\nconst de_ReplicationRules = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_ReplicationRule(entry, context);\n });\n};\nconst de_ReplicationTime = (output, context) => {\n const contents = {};\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n if (output[\"Time\"] !== undefined) {\n contents.Time = de_ReplicationTimeValue(output[\"Time\"], context);\n }\n return contents;\n};\nconst de_ReplicationTimeValue = (output, context) => {\n const contents = {};\n if (output[\"Minutes\"] !== undefined) {\n contents.Minutes = __strictParseInt32(output[\"Minutes\"]);\n }\n return contents;\n};\nconst de_RestoreStatus = (output, context) => {\n const contents = {};\n if (output[\"IsRestoreInProgress\"] !== undefined) {\n contents.IsRestoreInProgress = __parseBoolean(output[\"IsRestoreInProgress\"]);\n }\n if (output[\"RestoreExpiryDate\"] !== undefined) {\n contents.RestoreExpiryDate = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[\"RestoreExpiryDate\"]));\n }\n return contents;\n};\nconst de_RoutingRule = (output, context) => {\n const contents = {};\n if (output[\"Condition\"] !== undefined) {\n contents.Condition = de_Condition(output[\"Condition\"], context);\n }\n if (output[\"Redirect\"] !== undefined) {\n contents.Redirect = de_Redirect(output[\"Redirect\"], context);\n }\n return contents;\n};\nconst de_RoutingRules = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_RoutingRule(entry, context);\n });\n};\nconst de_S3KeyFilter = (output, context) => {\n const contents = {};\n if (output.FilterRule === \"\") {\n contents.FilterRules = [];\n }\n else if (output[\"FilterRule\"] !== undefined) {\n contents.FilterRules = de_FilterRuleList(__getArrayIfSingleItem(output[\"FilterRule\"]), context);\n }\n return contents;\n};\nconst de_ServerSideEncryptionByDefault = (output, context) => {\n const contents = {};\n if (output[\"SSEAlgorithm\"] !== undefined) {\n contents.SSEAlgorithm = __expectString(output[\"SSEAlgorithm\"]);\n }\n if (output[\"KMSMasterKeyID\"] !== undefined) {\n contents.KMSMasterKeyID = __expectString(output[\"KMSMasterKeyID\"]);\n }\n return contents;\n};\nconst de_ServerSideEncryptionConfiguration = (output, context) => {\n const contents = {};\n if (output.Rule === \"\") {\n contents.Rules = [];\n }\n else if (output[\"Rule\"] !== undefined) {\n contents.Rules = de_ServerSideEncryptionRules(__getArrayIfSingleItem(output[\"Rule\"]), context);\n }\n return contents;\n};\nconst de_ServerSideEncryptionRule = (output, context) => {\n const contents = {};\n if (output[\"ApplyServerSideEncryptionByDefault\"] !== undefined) {\n contents.ApplyServerSideEncryptionByDefault = de_ServerSideEncryptionByDefault(output[\"ApplyServerSideEncryptionByDefault\"], context);\n }\n if (output[\"BucketKeyEnabled\"] !== undefined) {\n contents.BucketKeyEnabled = __parseBoolean(output[\"BucketKeyEnabled\"]);\n }\n return contents;\n};\nconst de_ServerSideEncryptionRules = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_ServerSideEncryptionRule(entry, context);\n });\n};\nconst de_SourceSelectionCriteria = (output, context) => {\n const contents = {};\n if (output[\"SseKmsEncryptedObjects\"] !== undefined) {\n contents.SseKmsEncryptedObjects = de_SseKmsEncryptedObjects(output[\"SseKmsEncryptedObjects\"], context);\n }\n if (output[\"ReplicaModifications\"] !== undefined) {\n contents.ReplicaModifications = de_ReplicaModifications(output[\"ReplicaModifications\"], context);\n }\n return contents;\n};\nconst de_SSEKMS = (output, context) => {\n const contents = {};\n if (output[\"KeyId\"] !== undefined) {\n contents.KeyId = __expectString(output[\"KeyId\"]);\n }\n return contents;\n};\nconst de_SseKmsEncryptedObjects = (output, context) => {\n const contents = {};\n if (output[\"Status\"] !== undefined) {\n contents.Status = __expectString(output[\"Status\"]);\n }\n return contents;\n};\nconst de_SSES3 = (output, context) => {\n const contents = {};\n return contents;\n};\nconst de_Stats = (output, context) => {\n const contents = {};\n if (output[\"BytesScanned\"] !== undefined) {\n contents.BytesScanned = __strictParseLong(output[\"BytesScanned\"]);\n }\n if (output[\"BytesProcessed\"] !== undefined) {\n contents.BytesProcessed = __strictParseLong(output[\"BytesProcessed\"]);\n }\n if (output[\"BytesReturned\"] !== undefined) {\n contents.BytesReturned = __strictParseLong(output[\"BytesReturned\"]);\n }\n return contents;\n};\nconst de_StorageClassAnalysis = (output, context) => {\n const contents = {};\n if (output[\"DataExport\"] !== undefined) {\n contents.DataExport = de_StorageClassAnalysisDataExport(output[\"DataExport\"], context);\n }\n return contents;\n};\nconst de_StorageClassAnalysisDataExport = (output, context) => {\n const contents = {};\n if (output[\"OutputSchemaVersion\"] !== undefined) {\n contents.OutputSchemaVersion = __expectString(output[\"OutputSchemaVersion\"]);\n }\n if (output[\"Destination\"] !== undefined) {\n contents.Destination = de_AnalyticsExportDestination(output[\"Destination\"], context);\n }\n return contents;\n};\nconst de_Tag = (output, context) => {\n const contents = {};\n if (output[\"Key\"] !== undefined) {\n contents.Key = __expectString(output[\"Key\"]);\n }\n if (output[\"Value\"] !== undefined) {\n contents.Value = __expectString(output[\"Value\"]);\n }\n return contents;\n};\nconst de_TagSet = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_Tag(entry, context);\n });\n};\nconst de_TargetGrant = (output, context) => {\n const contents = {};\n if (output[\"Grantee\"] !== undefined) {\n contents.Grantee = de_Grantee(output[\"Grantee\"], context);\n }\n if (output[\"Permission\"] !== undefined) {\n contents.Permission = __expectString(output[\"Permission\"]);\n }\n return contents;\n};\nconst de_TargetGrants = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_TargetGrant(entry, context);\n });\n};\nconst de_Tiering = (output, context) => {\n const contents = {};\n if (output[\"Days\"] !== undefined) {\n contents.Days = __strictParseInt32(output[\"Days\"]);\n }\n if (output[\"AccessTier\"] !== undefined) {\n contents.AccessTier = __expectString(output[\"AccessTier\"]);\n }\n return contents;\n};\nconst de_TieringList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_Tiering(entry, context);\n });\n};\nconst de_TopicConfiguration = (output, context) => {\n const contents = {};\n if (output[\"Id\"] !== undefined) {\n contents.Id = __expectString(output[\"Id\"]);\n }\n if (output[\"Topic\"] !== undefined) {\n contents.TopicArn = __expectString(output[\"Topic\"]);\n }\n if (output.Event === \"\") {\n contents.Events = [];\n }\n else if (output[\"Event\"] !== undefined) {\n contents.Events = de_EventList(__getArrayIfSingleItem(output[\"Event\"]), context);\n }\n if (output[\"Filter\"] !== undefined) {\n contents.Filter = de_NotificationConfigurationFilter(output[\"Filter\"], context);\n }\n return contents;\n};\nconst de_TopicConfigurationList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_TopicConfiguration(entry, context);\n });\n};\nconst de_Transition = (output, context) => {\n const contents = {};\n if (output[\"Date\"] !== undefined) {\n contents.Date = __expectNonNull(__parseRfc3339DateTimeWithOffset(output[\"Date\"]));\n }\n if (output[\"Days\"] !== undefined) {\n contents.Days = __strictParseInt32(output[\"Days\"]);\n }\n if (output[\"StorageClass\"] !== undefined) {\n contents.StorageClass = __expectString(output[\"StorageClass\"]);\n }\n return contents;\n};\nconst de_TransitionList = (output, context) => {\n return (output || [])\n .filter((e) => e != null)\n .map((entry) => {\n return de_Transition(entry, context);\n });\n};\nconst deserializeMetadata = (output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n});\nconst collectBodyString = (streamBody, context) => collectBody(streamBody, context).then((body) => context.utf8Encoder(body));\nconst isSerializableHeaderValue = (value) => value !== undefined &&\n value !== null &&\n value !== \"\" &&\n (!Object.getOwnPropertyNames(value).includes(\"length\") || value.length != 0) &&\n (!Object.getOwnPropertyNames(value).includes(\"size\") || value.size != 0);\nconst parseBody = (streamBody, context) => collectBodyString(streamBody, context).then((encoded) => {\n if (encoded.length) {\n const parser = new XMLParser({\n attributeNamePrefix: \"\",\n htmlEntities: true,\n ignoreAttributes: false,\n ignoreDeclaration: true,\n parseTagValue: false,\n trimValues: false,\n tagValueProcessor: (_, val) => (val.trim() === \"\" && val.includes(\"\\n\") ? \"\" : undefined),\n });\n parser.addEntity(\"#xD\", \"\\r\");\n parser.addEntity(\"#10\", \"\\n\");\n const parsedObj = parser.parse(encoded);\n const textNodeName = \"#text\";\n const key = Object.keys(parsedObj)[0];\n const parsedObjToReturn = parsedObj[key];\n if (parsedObjToReturn[textNodeName]) {\n parsedObjToReturn[key] = parsedObjToReturn[textNodeName];\n delete parsedObjToReturn[textNodeName];\n }\n return __getValueFromTextNode(parsedObjToReturn);\n }\n return {};\n});\nconst parseErrorBody = async (errorBody, context) => {\n const value = await parseBody(errorBody, context);\n if (value.Error) {\n value.Error.message = value.Error.message ?? value.Error.Message;\n }\n return value;\n};\nconst loadRestXmlErrorCode = (output, data) => {\n if (data?.Code !== undefined) {\n return data.Code;\n }\n if (output.statusCode == 404) {\n return \"NotFound\";\n }\n};\n","export const SHA_256_HASH: { name: \"SHA-256\" } = { name: \"SHA-256\" };\n\nexport const SHA_256_HMAC_ALGO: { name: \"HMAC\"; hash: { name: \"SHA-256\" } } = {\n name: \"HMAC\",\n hash: SHA_256_HASH\n};\n\nexport const EMPTY_DATA_SHA_256 = new Uint8Array([\n 227,\n 176,\n 196,\n 66,\n 152,\n 252,\n 28,\n 20,\n 154,\n 251,\n 244,\n 200,\n 153,\n 111,\n 185,\n 36,\n 39,\n 174,\n 65,\n 228,\n 100,\n 155,\n 147,\n 76,\n 164,\n 149,\n 153,\n 27,\n 120,\n 82,\n 184,\n 85\n]);\n","import { Sha256 as Ie11Sha256 } from \"./ie11Sha256\";\nimport { Sha256 as WebCryptoSha256 } from \"./webCryptoSha256\";\nimport { Sha256 as JsSha256 } from \"@aws-crypto/sha256-js\";\nimport { Checksum, SourceData } from \"@aws-sdk/types\";\nimport { supportsWebCrypto } from \"@aws-crypto/supports-web-crypto\";\nimport { isMsWindow } from \"@aws-crypto/ie11-detection\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\nimport { convertToBuffer } from \"@aws-crypto/util\";\n\nexport class Sha256 implements Checksum {\n private hash: Checksum;\n\n constructor(secret?: SourceData) {\n if (supportsWebCrypto(locateWindow())) {\n this.hash = new WebCryptoSha256(secret);\n } else if (isMsWindow(locateWindow())) {\n this.hash = new Ie11Sha256(secret);\n } else {\n this.hash = new JsSha256(secret);\n }\n }\n\n update(data: SourceData, encoding?: \"utf8\" | \"ascii\" | \"latin1\"): void {\n this.hash.update(convertToBuffer(data));\n }\n\n digest(): Promise {\n return this.hash.digest();\n }\n\n reset(): void {\n this.hash.reset();\n }\n}\n","import { isEmptyData } from \"./isEmptyData\";\nimport { SHA_256_HMAC_ALGO } from \"./constants\";\nimport { Checksum, SourceData } from \"@aws-sdk/types\";\nimport { fromUtf8 } from \"@aws-sdk/util-utf8-browser\";\nimport { CryptoOperation, Key, MsWindow } from \"@aws-crypto/ie11-detection\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\n\nexport class Sha256 implements Checksum {\n private readonly secret?: SourceData;\n private operation!: Promise;\n\n constructor(secret?: SourceData) {\n this.secret = secret;\n this.reset();\n }\n\n update(toHash: SourceData): void {\n if (isEmptyData(toHash)) {\n return;\n }\n\n this.operation = this.operation.then(operation => {\n operation.onerror = () => {\n this.operation = Promise.reject(\n new Error(\"Error encountered updating hash\")\n );\n };\n operation.process(toArrayBufferView(toHash));\n\n return operation;\n });\n this.operation.catch(() => {});\n }\n\n digest(): Promise {\n return this.operation.then(\n operation =>\n new Promise((resolve, reject) => {\n operation.onerror = () => {\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n operation.oncomplete = () => {\n if (operation.result) {\n resolve(new Uint8Array(operation.result));\n }\n reject(new Error(\"Error encountered finalizing hash\"));\n };\n\n operation.finish();\n })\n );\n }\n\n reset(): void {\n if (this.secret) {\n this.operation = getKeyPromise(this.secret).then(keyData =>\n (locateWindow() as MsWindow).msCrypto.subtle.sign(\n SHA_256_HMAC_ALGO,\n keyData\n )\n );\n this.operation.catch(() => {});\n } else {\n this.operation = Promise.resolve(\n (locateWindow() as MsWindow).msCrypto.subtle.digest(\"SHA-256\")\n );\n }\n }\n}\n\nfunction getKeyPromise(secret: SourceData): Promise {\n return new Promise((resolve, reject) => {\n const keyOperation = (locateWindow() as MsWindow).msCrypto.subtle.importKey(\n \"raw\",\n toArrayBufferView(secret),\n SHA_256_HMAC_ALGO,\n false,\n [\"sign\"]\n );\n\n keyOperation.oncomplete = () => {\n if (keyOperation.result) {\n resolve(keyOperation.result);\n }\n\n reject(new Error(\"ImportKey completed without importing key.\"));\n };\n keyOperation.onerror = () => {\n reject(new Error(\"ImportKey failed to import key.\"));\n };\n });\n}\n\nfunction toArrayBufferView(data: SourceData): Uint8Array {\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(\n data.buffer,\n data.byteOffset,\n data.byteLength / Uint8Array.BYTES_PER_ELEMENT\n );\n }\n\n return new Uint8Array(data);\n}\n","export * from \"./crossPlatformSha256\";\nexport { Sha256 as Ie11Sha256 } from \"./ie11Sha256\";\nexport { Sha256 as WebCryptoSha256 } from \"./webCryptoSha256\";\n","import { SourceData } from \"@aws-sdk/types\";\n\nexport function isEmptyData(data: SourceData): boolean {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n","import { Checksum, SourceData } from \"@aws-sdk/types\";\nimport { isEmptyData, convertToBuffer } from \"@aws-crypto/util\";\nimport {\n EMPTY_DATA_SHA_256,\n SHA_256_HASH,\n SHA_256_HMAC_ALGO,\n} from \"./constants\";\nimport { locateWindow } from \"@aws-sdk/util-locate-window\";\n\nexport class Sha256 implements Checksum {\n private readonly secret?: SourceData;\n private key: Promise | undefined;\n private toHash: Uint8Array = new Uint8Array(0);\n\n constructor(secret?: SourceData) {\n this.secret = secret;\n this.reset();\n }\n\n update(data: SourceData): void {\n if (isEmptyData(data)) {\n return;\n }\n\n const update = convertToBuffer(data);\n const typedArray = new Uint8Array(\n this.toHash.byteLength + update.byteLength\n );\n typedArray.set(this.toHash, 0);\n typedArray.set(update, this.toHash.byteLength);\n this.toHash = typedArray;\n }\n\n digest(): Promise {\n if (this.key) {\n return this.key.then((key) =>\n locateWindow()\n .crypto.subtle.sign(SHA_256_HMAC_ALGO, key, this.toHash)\n .then((data) => new Uint8Array(data))\n );\n }\n\n if (isEmptyData(this.toHash)) {\n return Promise.resolve(EMPTY_DATA_SHA_256);\n }\n\n return Promise.resolve()\n .then(() =>\n locateWindow().crypto.subtle.digest(SHA_256_HASH, this.toHash)\n )\n .then((data) => Promise.resolve(new Uint8Array(data)));\n }\n\n reset(): void {\n this.toHash = new Uint8Array(0);\n if (this.secret && this.secret !== void 0) {\n this.key = new Promise((resolve, reject) => {\n locateWindow()\n .crypto.subtle.importKey(\n \"raw\",\n convertToBuffer(this.secret as SourceData),\n SHA_256_HMAC_ALGO,\n false,\n [\"sign\"]\n )\n .then(resolve, reject);\n });\n this.key.catch(() => {});\n }\n }\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import {\n BLOCK_SIZE,\n DIGEST_LENGTH,\n INIT,\n KEY,\n MAX_HASHABLE_LENGTH\n} from \"./constants\";\n\n/**\n * @internal\n */\nexport class RawSha256 {\n private state: Int32Array = Int32Array.from(INIT);\n private temp: Int32Array = new Int32Array(64);\n private buffer: Uint8Array = new Uint8Array(64);\n private bufferLength: number = 0;\n private bytesHashed: number = 0;\n\n /**\n * @internal\n */\n finished: boolean = false;\n\n update(data: Uint8Array): void {\n if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n\n let position = 0;\n let { byteLength } = data;\n this.bytesHashed += byteLength;\n\n if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) {\n throw new Error(\"Cannot hash more than 2^53 - 1 bits\");\n }\n\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n }\n\n digest(): Uint8Array {\n if (!this.finished) {\n const bitsHashed = this.bytesHashed * 8;\n const bufferView = new DataView(\n this.buffer.buffer,\n this.buffer.byteOffset,\n this.buffer.byteLength\n );\n\n const undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (let i = this.bufferLength; i < BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n\n for (let i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(\n BLOCK_SIZE - 8,\n Math.floor(bitsHashed / 0x100000000),\n true\n );\n bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed);\n\n this.hashBuffer();\n\n this.finished = true;\n }\n\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n const out = new Uint8Array(DIGEST_LENGTH);\n for (let i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n\n return out;\n }\n\n private hashBuffer(): void {\n const { buffer, state } = this;\n\n let state0 = state[0],\n state1 = state[1],\n state2 = state[2],\n state3 = state[3],\n state4 = state[4],\n state5 = state[5],\n state6 = state[6],\n state7 = state[7];\n\n for (let i = 0; i < BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] =\n ((buffer[i * 4] & 0xff) << 24) |\n ((buffer[i * 4 + 1] & 0xff) << 16) |\n ((buffer[i * 4 + 2] & 0xff) << 8) |\n (buffer[i * 4 + 3] & 0xff);\n } else {\n let u = this.temp[i - 2];\n const t1 =\n ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\n\n u = this.temp[i - 15];\n const t2 =\n ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\n\n this.temp[i] =\n ((t1 + this.temp[i - 7]) | 0) + ((t2 + this.temp[i - 16]) | 0);\n }\n\n const t1 =\n ((((((state4 >>> 6) | (state4 << 26)) ^\n ((state4 >>> 11) | (state4 << 21)) ^\n ((state4 >>> 25) | (state4 << 7))) +\n ((state4 & state5) ^ (~state4 & state6))) |\n 0) +\n ((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) |\n 0;\n\n const t2 =\n ((((state0 >>> 2) | (state0 << 30)) ^\n ((state0 >>> 13) | (state0 << 19)) ^\n ((state0 >>> 22) | (state0 << 10))) +\n ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\n 0;\n\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n }\n}\n","/**\n * @internal\n */\nexport const BLOCK_SIZE: number = 64;\n\n/**\n * @internal\n */\nexport const DIGEST_LENGTH: number = 32;\n\n/**\n * @internal\n */\nexport const KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n\n/**\n * @internal\n */\nexport const INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n];\n\n/**\n * @internal\n */\nexport const MAX_HASHABLE_LENGTH = 2 ** 53 - 1;\n","export * from \"./jsSha256\";\n","import { BLOCK_SIZE } from \"./constants\";\nimport { RawSha256 } from \"./RawSha256\";\nimport { Checksum, SourceData } from \"@aws-sdk/types\";\nimport { isEmptyData, convertToBuffer } from \"@aws-crypto/util\";\n\nexport class Sha256 implements Checksum {\n private readonly secret?: SourceData;\n private hash: RawSha256;\n private outer?: RawSha256;\n private error: any;\n\n constructor(secret?: SourceData) {\n this.secret = secret;\n this.hash = new RawSha256();\n this.reset();\n }\n\n update(toHash: SourceData): void {\n if (isEmptyData(toHash) || this.error) {\n return;\n }\n\n try {\n this.hash.update(convertToBuffer(toHash));\n } catch (e) {\n this.error = e;\n }\n }\n\n /* This synchronous method keeps compatibility\n * with the v2 aws-sdk.\n */\n digestSync(): Uint8Array {\n if (this.error) {\n throw this.error;\n }\n\n if (this.outer) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n\n return this.outer.digest();\n }\n\n return this.hash.digest();\n }\n\n /* The underlying digest method here is synchronous.\n * To keep the same interface with the other hash functions\n * the default is to expose this as an async method.\n * However, it can sometimes be useful to have a sync method.\n */\n async digest(): Promise {\n return this.digestSync();\n }\n\n reset(): void {\n this.hash = new RawSha256();\n if (this.secret) {\n this.outer = new RawSha256();\n const inner = bufferFromSecret(this.secret);\n const outer = new Uint8Array(BLOCK_SIZE);\n outer.set(inner);\n\n for (let i = 0; i < BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n\n this.hash.update(inner);\n this.outer.update(outer);\n\n // overwrite the copied key in memory\n for (let i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n }\n }\n}\n\nfunction bufferFromSecret(secret: SourceData): Uint8Array {\n let input = convertToBuffer(secret);\n\n if (input.byteLength > BLOCK_SIZE) {\n const bufferHash = new RawSha256();\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n\n const buffer = new Uint8Array(BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport const fromUtf8 = (input) => typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\nexport const toUtf8 = (input) => typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n","export const fromUtf8 = (input) => {\n const bytes = [];\n for (let i = 0, len = input.length; i < len; i++) {\n const value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 0b11000000, (value & 0b111111) | 0b10000000);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n const surrogatePair = 0x10000 + ((value & 0b1111111111) << 10) + (input.charCodeAt(++i) & 0b1111111111);\n bytes.push((surrogatePair >> 18) | 0b11110000, ((surrogatePair >> 12) & 0b111111) | 0b10000000, ((surrogatePair >> 6) & 0b111111) | 0b10000000, (surrogatePair & 0b111111) | 0b10000000);\n }\n else {\n bytes.push((value >> 12) | 0b11100000, ((value >> 6) & 0b111111) | 0b10000000, (value & 0b111111) | 0b10000000);\n }\n }\n return Uint8Array.from(bytes);\n};\nexport const toUtf8 = (input) => {\n let decoded = \"\";\n for (let i = 0, len = input.length; i < len; i++) {\n const byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (0b11000000 <= byte && byte < 0b11100000) {\n const nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 0b11111) << 6) | (nextByte & 0b111111));\n }\n else if (0b11110000 <= byte && byte < 0b101101101) {\n const surrogatePair = [byte, input[++i], input[++i], input[++i]];\n const encoded = \"%\" + surrogatePair.map((byteValue) => byteValue.toString(16)).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 0b1111) << 12) | ((input[++i] & 0b111111) << 6) | (input[++i] & 0b111111));\n }\n }\n return decoded;\n};\n","export class AbortSignal {\n constructor() {\n this.onabort = null;\n this._aborted = false;\n Object.defineProperty(this, \"_aborted\", {\n value: false,\n writable: true,\n });\n }\n get aborted() {\n return this._aborted;\n }\n abort() {\n this._aborted = true;\n if (this.onabort) {\n this.onabort(this);\n this.onabort = null;\n }\n }\n}\n","import { AbortSignal } from \"./AbortSignal\";\nexport class AbortController {\n constructor() {\n this.signal = new AbortSignal();\n }\n abort() {\n this.signal.abort();\n }\n}\n","export const ClientSharedValues = {\n lstatSync: () => { },\n};\n","import { ClientSharedValues } from \"./runtimeConfig.shared\";\nexport const ClientDefaultValues = {\n ...ClientSharedValues,\n runtime: \"browser\",\n};\n","import { ClientDefaultValues } from \"./runtimeConfig\";\nexport const byteLength = (input) => {\n if (input === null || input === undefined)\n return 0;\n if (typeof input === \"string\")\n input = Buffer.from(input);\n if (typeof input.byteLength === \"number\") {\n return input.byteLength;\n }\n else if (typeof input.length === \"number\") {\n return input.length;\n }\n else if (typeof input.size === \"number\") {\n return input.size;\n }\n else if (typeof input.path === \"string\") {\n try {\n return ClientDefaultValues.lstatSync(input.path).size;\n }\n catch (error) {\n return undefined;\n }\n }\n return undefined;\n};\n","export async function* getChunkBuffer(data, partSize) {\n let partNumber = 1;\n let startByte = 0;\n let endByte = partSize;\n while (endByte < data.byteLength) {\n yield {\n partNumber,\n data: data.slice(startByte, endByte),\n };\n partNumber += 1;\n startByte = endByte;\n endByte = startByte + partSize;\n }\n yield {\n partNumber,\n data: data.slice(startByte),\n lastPart: true,\n };\n}\n","import { Buffer } from \"buffer\";\nexport async function* getChunkStream(data, partSize, getNextData) {\n let partNumber = 1;\n const currentBuffer = { chunks: [], length: 0 };\n for await (const datum of getNextData(data)) {\n currentBuffer.chunks.push(datum);\n currentBuffer.length += datum.length;\n while (currentBuffer.length >= partSize) {\n const dataChunk = currentBuffer.chunks.length > 1 ? Buffer.concat(currentBuffer.chunks) : currentBuffer.chunks[0];\n yield {\n partNumber,\n data: dataChunk.slice(0, partSize),\n };\n currentBuffer.chunks = [dataChunk.slice(partSize)];\n currentBuffer.length = currentBuffer.chunks[0].length;\n partNumber += 1;\n }\n }\n yield {\n partNumber,\n data: Buffer.concat(currentBuffer.chunks),\n lastPart: true,\n };\n}\n","import { Buffer } from \"buffer\";\nexport async function* getDataReadable(data) {\n for await (const chunk of data) {\n yield Buffer.from(chunk);\n }\n}\n","import { Buffer } from \"buffer\";\nexport async function* getDataReadableStream(data) {\n const reader = data.getReader();\n try {\n while (true) {\n const { done, value } = await reader.read();\n if (done)\n return;\n yield Buffer.from(value);\n }\n }\n catch (e) {\n throw e;\n }\n finally {\n reader.releaseLock();\n }\n}\n","import { Buffer } from \"buffer\";\nimport { Readable } from \"stream\";\nimport { getChunkBuffer } from \"./chunks/getChunkBuffer\";\nimport { getChunkStream } from \"./chunks/getChunkStream\";\nimport { getDataReadable } from \"./chunks/getDataReadable\";\nimport { getDataReadableStream } from \"./chunks/getDataReadableStream\";\nexport const getChunk = (data, partSize) => {\n if (data instanceof Buffer) {\n return getChunkBuffer(data, partSize);\n }\n else if (data instanceof Readable) {\n return getChunkStream(data, partSize, getDataReadable);\n }\n else if (data instanceof String || typeof data === \"string\" || data instanceof Uint8Array) {\n return getChunkBuffer(Buffer.from(data), partSize);\n }\n if (typeof data.stream === \"function\") {\n return getChunkStream(data.stream(), partSize, getDataReadableStream);\n }\n else if (data instanceof ReadableStream) {\n return getChunkStream(data, partSize, getDataReadableStream);\n }\n else {\n throw new Error(\"Body Data is unsupported format, expected data to be one of: string | Uint8Array | Buffer | Readable | ReadableStream | Blob;.\");\n }\n};\n","import { CompleteMultipartUploadCommand, CreateMultipartUploadCommand, PutObjectCommand, PutObjectTaggingCommand, UploadPartCommand, } from \"@aws-sdk/client-s3\";\nimport { AbortController } from \"@smithy/abort-controller\";\nimport { getEndpointFromInstructions, toEndpointV1, } from \"@smithy/middleware-endpoint\";\nimport { extendedEncodeURIComponent } from \"@smithy/smithy-client\";\nimport { EventEmitter } from \"events\";\nimport { byteLength } from \"./bytelength\";\nimport { getChunk } from \"./chunker\";\nconst MIN_PART_SIZE = 1024 * 1024 * 5;\nexport class Upload extends EventEmitter {\n constructor(options) {\n super();\n this.MAX_PARTS = 10000;\n this.queueSize = 4;\n this.partSize = MIN_PART_SIZE;\n this.leavePartsOnError = false;\n this.tags = [];\n this.concurrentUploaders = [];\n this.uploadedParts = [];\n this.isMultiPart = true;\n this.queueSize = options.queueSize || this.queueSize;\n this.partSize = options.partSize || this.partSize;\n this.leavePartsOnError = options.leavePartsOnError || this.leavePartsOnError;\n this.tags = options.tags || this.tags;\n this.client = options.client;\n this.params = options.params;\n this.__validateInput();\n this.totalBytes = byteLength(this.params.Body);\n this.bytesUploadedSoFar = 0;\n this.abortController = options.abortController ?? new AbortController();\n }\n async abort() {\n this.abortController.abort();\n }\n async done() {\n return await Promise.race([this.__doMultipartUpload(), this.__abortTimeout(this.abortController.signal)]);\n }\n on(event, listener) {\n this.uploadEvent = event;\n return super.on(event, listener);\n }\n async __uploadUsingPut(dataPart) {\n this.isMultiPart = false;\n const params = { ...this.params, Body: dataPart.data };\n const clientConfig = this.client.config;\n const requestHandler = clientConfig.requestHandler;\n const eventEmitter = requestHandler instanceof EventEmitter ? requestHandler : null;\n const uploadEventListener = (event) => {\n this.bytesUploadedSoFar = event.loaded;\n this.totalBytes = event.total;\n this.__notifyProgress({\n loaded: this.bytesUploadedSoFar,\n total: this.totalBytes,\n part: dataPart.partNumber,\n Key: this.params.Key,\n Bucket: this.params.Bucket,\n });\n };\n if (eventEmitter !== null) {\n eventEmitter.on(\"xhr.upload.progress\", uploadEventListener);\n }\n const resolved = await Promise.all([this.client.send(new PutObjectCommand(params)), clientConfig?.endpoint?.()]);\n const putResult = resolved[0];\n let endpoint = resolved[1];\n if (!endpoint) {\n endpoint = toEndpointV1(await getEndpointFromInstructions(params, PutObjectCommand, {\n ...clientConfig,\n }));\n }\n if (!endpoint) {\n throw new Error('Could not resolve endpoint from S3 \"client.config.endpoint()\" nor EndpointsV2.');\n }\n if (eventEmitter !== null) {\n eventEmitter.off(\"xhr.upload.progress\", uploadEventListener);\n }\n const locationKey = this.params\n .Key.split(\"/\")\n .map((segment) => extendedEncodeURIComponent(segment))\n .join(\"/\");\n const locationBucket = extendedEncodeURIComponent(this.params.Bucket);\n const Location = (() => {\n const endpointHostnameIncludesBucket = endpoint.hostname.startsWith(`${locationBucket}.`);\n const forcePathStyle = this.client.config.forcePathStyle;\n if (forcePathStyle) {\n return `${endpoint.protocol}//${endpoint.hostname}/${locationBucket}/${locationKey}`;\n }\n if (endpointHostnameIncludesBucket) {\n return `${endpoint.protocol}//${endpoint.hostname}/${locationKey}`;\n }\n return `${endpoint.protocol}//${locationBucket}.${endpoint.hostname}/${locationKey}`;\n })();\n this.singleUploadResult = {\n ...putResult,\n Bucket: this.params.Bucket,\n Key: this.params.Key,\n Location,\n };\n const totalSize = byteLength(dataPart.data);\n this.__notifyProgress({\n loaded: totalSize,\n total: totalSize,\n part: 1,\n Key: this.params.Key,\n Bucket: this.params.Bucket,\n });\n }\n async __createMultipartUpload() {\n if (!this.createMultiPartPromise) {\n const createCommandParams = { ...this.params, Body: undefined };\n this.createMultiPartPromise = this.client.send(new CreateMultipartUploadCommand(createCommandParams));\n }\n return this.createMultiPartPromise;\n }\n async __doConcurrentUpload(dataFeeder) {\n for await (const dataPart of dataFeeder) {\n if (this.uploadedParts.length > this.MAX_PARTS) {\n throw new Error(`Exceeded ${this.MAX_PARTS} as part of the upload to ${this.params.Key} and ${this.params.Bucket}.`);\n }\n try {\n if (this.abortController.signal.aborted) {\n return;\n }\n if (dataPart.partNumber === 1 && dataPart.lastPart) {\n return await this.__uploadUsingPut(dataPart);\n }\n if (!this.uploadId) {\n const { UploadId } = await this.__createMultipartUpload();\n this.uploadId = UploadId;\n if (this.abortController.signal.aborted) {\n return;\n }\n }\n const partSize = byteLength(dataPart.data) || 0;\n const requestHandler = this.client.config.requestHandler;\n const eventEmitter = requestHandler instanceof EventEmitter ? requestHandler : null;\n let lastSeenBytes = 0;\n const uploadEventListener = (event, request) => {\n const requestPartSize = Number(request.query[\"partNumber\"]) || -1;\n if (requestPartSize !== dataPart.partNumber) {\n return;\n }\n if (event.total && partSize) {\n this.bytesUploadedSoFar += event.loaded - lastSeenBytes;\n lastSeenBytes = event.loaded;\n }\n this.__notifyProgress({\n loaded: this.bytesUploadedSoFar,\n total: this.totalBytes,\n part: dataPart.partNumber,\n Key: this.params.Key,\n Bucket: this.params.Bucket,\n });\n };\n if (eventEmitter !== null) {\n eventEmitter.on(\"xhr.upload.progress\", uploadEventListener);\n }\n const partResult = await this.client.send(new UploadPartCommand({\n ...this.params,\n UploadId: this.uploadId,\n Body: dataPart.data,\n PartNumber: dataPart.partNumber,\n }));\n if (eventEmitter !== null) {\n eventEmitter.off(\"xhr.upload.progress\", uploadEventListener);\n }\n if (this.abortController.signal.aborted) {\n return;\n }\n if (!partResult.ETag) {\n throw new Error(`Part ${dataPart.partNumber} is missing ETag in UploadPart response. Missing Bucket CORS configuration for ETag header?`);\n }\n this.uploadedParts.push({\n PartNumber: dataPart.partNumber,\n ETag: partResult.ETag,\n ...(partResult.ChecksumCRC32 && { ChecksumCRC32: partResult.ChecksumCRC32 }),\n ...(partResult.ChecksumCRC32C && { ChecksumCRC32C: partResult.ChecksumCRC32C }),\n ...(partResult.ChecksumSHA1 && { ChecksumSHA1: partResult.ChecksumSHA1 }),\n ...(partResult.ChecksumSHA256 && { ChecksumSHA256: partResult.ChecksumSHA256 }),\n });\n if (eventEmitter === null) {\n this.bytesUploadedSoFar += partSize;\n }\n this.__notifyProgress({\n loaded: this.bytesUploadedSoFar,\n total: this.totalBytes,\n part: dataPart.partNumber,\n Key: this.params.Key,\n Bucket: this.params.Bucket,\n });\n }\n catch (e) {\n if (!this.uploadId) {\n throw e;\n }\n if (this.leavePartsOnError) {\n throw e;\n }\n }\n }\n }\n async __doMultipartUpload() {\n const dataFeeder = getChunk(this.params.Body, this.partSize);\n for (let index = 0; index < this.queueSize; index++) {\n const currentUpload = this.__doConcurrentUpload(dataFeeder);\n this.concurrentUploaders.push(currentUpload);\n }\n await Promise.all(this.concurrentUploaders);\n if (this.abortController.signal.aborted) {\n throw Object.assign(new Error(\"Upload aborted.\"), { name: \"AbortError\" });\n }\n let result;\n if (this.isMultiPart) {\n this.uploadedParts.sort((a, b) => a.PartNumber - b.PartNumber);\n const uploadCompleteParams = {\n ...this.params,\n Body: undefined,\n UploadId: this.uploadId,\n MultipartUpload: {\n Parts: this.uploadedParts,\n },\n };\n result = await this.client.send(new CompleteMultipartUploadCommand(uploadCompleteParams));\n }\n else {\n result = this.singleUploadResult;\n }\n if (this.tags.length) {\n await this.client.send(new PutObjectTaggingCommand({\n ...this.params,\n Tagging: {\n TagSet: this.tags,\n },\n }));\n }\n return result;\n }\n __notifyProgress(progress) {\n if (this.uploadEvent) {\n this.emit(this.uploadEvent, progress);\n }\n }\n async __abortTimeout(abortSignal) {\n return new Promise((resolve, reject) => {\n abortSignal.onabort = () => {\n const abortError = new Error(\"Upload aborted.\");\n abortError.name = \"AbortError\";\n reject(abortError);\n };\n });\n }\n __validateInput() {\n if (!this.params) {\n throw new Error(`InputError: Upload requires params to be passed to upload.`);\n }\n if (!this.client) {\n throw new Error(`InputError: Upload requires a AWS client to do uploads with.`);\n }\n if (this.partSize < MIN_PART_SIZE) {\n throw new Error(`EntityTooSmall: Your proposed upload partsize [${this.partSize}] is smaller than the minimum allowed size [${MIN_PART_SIZE}] (5MB)`);\n }\n if (this.queueSize < 1) {\n throw new Error(`Queue size: Must have at least one uploading queue.`);\n }\n }\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol.for === 'function')\n ? Symbol.for('nodejs.util.inspect.custom')\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nvar K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n var arr = new Uint8Array(1)\n var proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n var buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayLike(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n var valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n var b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(\n value[Symbol.toPrimitive]('string'), encodingOrOffset, length\n )\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n var length = byteLength(string, encoding) | 0\n var buf = createBuffer(length)\n\n var actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n var buf = createBuffer(length)\n for (var i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n var buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n var buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n buf = Buffer.from(buf)\n }\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n var len = string.length\n var mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n var strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n var limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (var i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n var len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nvar hexSliceLookupTable = (function () {\n var alphabet = '0123456789abcdef'\n var table = new Array(256)\n for (var i = 0; i < 16; ++i) {\n var i16 = i * 16\n for (var j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n","export var ChecksumAlgorithm;\n(function (ChecksumAlgorithm) {\n ChecksumAlgorithm[\"MD5\"] = \"MD5\";\n ChecksumAlgorithm[\"CRC32\"] = \"CRC32\";\n ChecksumAlgorithm[\"CRC32C\"] = \"CRC32C\";\n ChecksumAlgorithm[\"SHA1\"] = \"SHA1\";\n ChecksumAlgorithm[\"SHA256\"] = \"SHA256\";\n})(ChecksumAlgorithm || (ChecksumAlgorithm = {}));\nexport var ChecksumLocation;\n(function (ChecksumLocation) {\n ChecksumLocation[\"HEADER\"] = \"header\";\n ChecksumLocation[\"TRAILER\"] = \"trailer\";\n})(ChecksumLocation || (ChecksumLocation = {}));\n","import { ChecksumAlgorithm } from \"./constants\";\nexport const CLIENT_SUPPORTED_ALGORITHMS = [\n ChecksumAlgorithm.CRC32,\n ChecksumAlgorithm.CRC32C,\n ChecksumAlgorithm.SHA1,\n ChecksumAlgorithm.SHA256,\n];\nexport const PRIORITY_ORDER_ALGORITHMS = [\n ChecksumAlgorithm.CRC32,\n ChecksumAlgorithm.CRC32C,\n ChecksumAlgorithm.SHA1,\n ChecksumAlgorithm.SHA256,\n];\n","import { ChecksumAlgorithm } from \"./constants\";\nexport const getChecksumLocationName = (algorithm) => algorithm === ChecksumAlgorithm.MD5 ? \"content-md5\" : `x-amz-checksum-${algorithm.toLowerCase()}`;\n","import { isArrayBuffer } from \"@smithy/is-array-buffer\";\nexport const isStreaming = (body) => body !== undefined && typeof body !== \"string\" && !ArrayBuffer.isView(body) && !isArrayBuffer(body);\n","import { AwsCrc32 } from \"@aws-crypto/crc32\";\nimport { AwsCrc32c } from \"@aws-crypto/crc32c\";\nimport { ChecksumAlgorithm } from \"./constants\";\nexport const selectChecksumAlgorithmFunction = (checksumAlgorithm, config) => ({\n [ChecksumAlgorithm.MD5]: config.md5,\n [ChecksumAlgorithm.CRC32]: AwsCrc32,\n [ChecksumAlgorithm.CRC32C]: AwsCrc32c,\n [ChecksumAlgorithm.SHA1]: config.sha1,\n [ChecksumAlgorithm.SHA256]: config.sha256,\n}[checksumAlgorithm]);\n","import { toUint8Array } from \"@smithy/util-utf8\";\nexport const stringHasher = (checksumAlgorithmFn, body) => {\n const hash = new checksumAlgorithmFn();\n hash.update(toUint8Array(body || \"\"));\n return hash.digest();\n};\n","import { HttpRequest } from \"@smithy/protocol-http\";\nimport { getChecksumAlgorithmForRequest } from \"./getChecksumAlgorithmForRequest\";\nimport { getChecksumLocationName } from \"./getChecksumLocationName\";\nimport { hasHeader } from \"./hasHeader\";\nimport { isStreaming } from \"./isStreaming\";\nimport { selectChecksumAlgorithmFunction } from \"./selectChecksumAlgorithmFunction\";\nimport { stringHasher } from \"./stringHasher\";\nexport const flexibleChecksumsMiddlewareOptions = {\n name: \"flexibleChecksumsMiddleware\",\n step: \"build\",\n tags: [\"BODY_CHECKSUM\"],\n override: true,\n};\nexport const flexibleChecksumsMiddleware = (config, middlewareConfig) => (next) => async (args) => {\n if (!HttpRequest.isInstance(args.request)) {\n return next(args);\n }\n const { request } = args;\n const { body: requestBody, headers } = request;\n const { base64Encoder, streamHasher } = config;\n const { input, requestChecksumRequired, requestAlgorithmMember } = middlewareConfig;\n const checksumAlgorithm = getChecksumAlgorithmForRequest(input, {\n requestChecksumRequired,\n requestAlgorithmMember,\n });\n let updatedBody = requestBody;\n let updatedHeaders = headers;\n if (checksumAlgorithm) {\n const checksumLocationName = getChecksumLocationName(checksumAlgorithm);\n const checksumAlgorithmFn = selectChecksumAlgorithmFunction(checksumAlgorithm, config);\n if (isStreaming(requestBody)) {\n const { getAwsChunkedEncodingStream, bodyLengthChecker } = config;\n updatedBody = getAwsChunkedEncodingStream(requestBody, {\n base64Encoder,\n bodyLengthChecker,\n checksumLocationName,\n checksumAlgorithmFn,\n streamHasher,\n });\n updatedHeaders = {\n ...headers,\n \"content-encoding\": headers[\"content-encoding\"]\n ? `${headers[\"content-encoding\"]},aws-chunked`\n : \"aws-chunked\",\n \"transfer-encoding\": \"chunked\",\n \"x-amz-decoded-content-length\": headers[\"content-length\"],\n \"x-amz-content-sha256\": \"STREAMING-UNSIGNED-PAYLOAD-TRAILER\",\n \"x-amz-trailer\": checksumLocationName,\n };\n delete updatedHeaders[\"content-length\"];\n }\n else if (!hasHeader(checksumLocationName, headers)) {\n const rawChecksum = await stringHasher(checksumAlgorithmFn, requestBody);\n updatedHeaders = {\n ...headers,\n [checksumLocationName]: base64Encoder(rawChecksum),\n };\n }\n }\n const result = await next({\n ...args,\n request: {\n ...request,\n headers: updatedHeaders,\n body: updatedBody,\n },\n });\n return result;\n};\n","import { ChecksumAlgorithm } from \"./constants\";\nimport { CLIENT_SUPPORTED_ALGORITHMS } from \"./types\";\nexport const getChecksumAlgorithmForRequest = (input, { requestChecksumRequired, requestAlgorithmMember }) => {\n if (!requestAlgorithmMember || !input[requestAlgorithmMember]) {\n return requestChecksumRequired ? ChecksumAlgorithm.MD5 : undefined;\n }\n const checksumAlgorithm = input[requestAlgorithmMember];\n if (!CLIENT_SUPPORTED_ALGORITHMS.includes(checksumAlgorithm)) {\n throw new Error(`The checksum algorithm \"${checksumAlgorithm}\" is not supported by the client.` +\n ` Select one of ${CLIENT_SUPPORTED_ALGORITHMS}.`);\n }\n return checksumAlgorithm;\n};\n","export const hasHeader = (header, headers) => {\n const soughtHeader = header.toLowerCase();\n for (const headerName of Object.keys(headers)) {\n if (soughtHeader === headerName.toLowerCase()) {\n return true;\n }\n }\n return false;\n};\n","import { CLIENT_SUPPORTED_ALGORITHMS, PRIORITY_ORDER_ALGORITHMS } from \"./types\";\nexport const getChecksumAlgorithmListForResponse = (responseAlgorithms = []) => {\n const validChecksumAlgorithms = [];\n for (const algorithm of PRIORITY_ORDER_ALGORITHMS) {\n if (!responseAlgorithms.includes(algorithm) || !CLIENT_SUPPORTED_ALGORITHMS.includes(algorithm)) {\n continue;\n }\n validChecksumAlgorithms.push(algorithm);\n }\n return validChecksumAlgorithms;\n};\n","export function createReadStreamOnBuffer(buffer) {\n return new Blob([buffer]).stream();\n}\n","import { isStreaming } from \"./isStreaming\";\nimport { stringHasher } from \"./stringHasher\";\nexport const getChecksum = async (body, { streamHasher, checksumAlgorithmFn, base64Encoder }) => {\n const digest = isStreaming(body) ? streamHasher(checksumAlgorithmFn, body) : stringHasher(checksumAlgorithmFn, body);\n return base64Encoder(await digest);\n};\n","import { HttpRequest } from \"@smithy/protocol-http\";\nimport { getChecksumAlgorithmListForResponse } from \"./getChecksumAlgorithmListForResponse\";\nimport { getChecksumLocationName } from \"./getChecksumLocationName\";\nimport { isChecksumWithPartNumber } from \"./isChecksumWithPartNumber\";\nimport { isStreaming } from \"./isStreaming\";\nimport { createReadStreamOnBuffer } from \"./streams/create-read-stream-on-buffer\";\nimport { validateChecksumFromResponse } from \"./validateChecksumFromResponse\";\nexport const flexibleChecksumsResponseMiddlewareOptions = {\n name: \"flexibleChecksumsResponseMiddleware\",\n toMiddleware: \"deserializerMiddleware\",\n relation: \"after\",\n tags: [\"BODY_CHECKSUM\"],\n override: true,\n};\nexport const flexibleChecksumsResponseMiddleware = (config, middlewareConfig) => (next, context) => async (args) => {\n if (!HttpRequest.isInstance(args.request)) {\n return next(args);\n }\n const input = args.input;\n const result = await next(args);\n const response = result.response;\n let collectedStream = undefined;\n const { requestValidationModeMember, responseAlgorithms } = middlewareConfig;\n if (requestValidationModeMember && input[requestValidationModeMember] === \"ENABLED\") {\n const { clientName, commandName } = context;\n const isS3WholeObjectMultipartGetResponseChecksum = clientName === \"S3Client\" &&\n commandName === \"GetObjectCommand\" &&\n getChecksumAlgorithmListForResponse(responseAlgorithms).every((algorithm) => {\n const responseHeader = getChecksumLocationName(algorithm);\n const checksumFromResponse = response.headers[responseHeader];\n return !checksumFromResponse || isChecksumWithPartNumber(checksumFromResponse);\n });\n if (isS3WholeObjectMultipartGetResponseChecksum) {\n return result;\n }\n const isStreamingBody = isStreaming(response.body);\n if (isStreamingBody) {\n collectedStream = await config.streamCollector(response.body);\n response.body = createReadStreamOnBuffer(collectedStream);\n }\n await validateChecksumFromResponse(result.response, {\n config,\n responseAlgorithms,\n });\n if (isStreamingBody && collectedStream) {\n response.body = createReadStreamOnBuffer(collectedStream);\n }\n }\n return result;\n};\n","export const isChecksumWithPartNumber = (checksum) => {\n const lastHyphenIndex = checksum.lastIndexOf(\"-\");\n if (lastHyphenIndex !== -1) {\n const numberPart = checksum.slice(lastHyphenIndex + 1);\n if (!numberPart.startsWith(\"0\")) {\n const number = parseInt(numberPart, 10);\n if (!isNaN(number) && number >= 1 && number <= 10000) {\n return true;\n }\n }\n }\n return false;\n};\n","import { getChecksum } from \"./getChecksum\";\nimport { getChecksumAlgorithmListForResponse } from \"./getChecksumAlgorithmListForResponse\";\nimport { getChecksumLocationName } from \"./getChecksumLocationName\";\nimport { selectChecksumAlgorithmFunction } from \"./selectChecksumAlgorithmFunction\";\nexport const validateChecksumFromResponse = async (response, { config, responseAlgorithms }) => {\n const checksumAlgorithms = getChecksumAlgorithmListForResponse(responseAlgorithms);\n const { body: responseBody, headers: responseHeaders } = response;\n for (const algorithm of checksumAlgorithms) {\n const responseHeader = getChecksumLocationName(algorithm);\n const checksumFromResponse = responseHeaders[responseHeader];\n if (checksumFromResponse) {\n const checksumAlgorithmFn = selectChecksumAlgorithmFunction(algorithm, config);\n const { streamHasher, base64Encoder } = config;\n const checksum = await getChecksum(responseBody, { streamHasher, checksumAlgorithmFn, base64Encoder });\n if (checksum === checksumFromResponse) {\n break;\n }\n throw new Error(`Checksum mismatch: expected \"${checksum}\" but received \"${checksumFromResponse}\"` +\n ` in response header \"${responseHeader}\".`);\n }\n }\n};\n","import { flexibleChecksumsMiddleware, flexibleChecksumsMiddlewareOptions, } from \"./flexibleChecksumsMiddleware\";\nimport { flexibleChecksumsResponseMiddleware, flexibleChecksumsResponseMiddlewareOptions, } from \"./flexibleChecksumsResponseMiddleware\";\nexport const getFlexibleChecksumsPlugin = (config, middlewareConfig) => ({\n applyToStack: (clientStack) => {\n clientStack.add(flexibleChecksumsMiddleware(config, middlewareConfig), flexibleChecksumsMiddlewareOptions);\n clientStack.addRelativeTo(flexibleChecksumsResponseMiddleware(config, middlewareConfig), flexibleChecksumsResponseMiddlewareOptions);\n },\n});\n","import { HttpRequest } from \"@smithy/protocol-http\";\nimport { NoOpLogger } from \"@smithy/smithy-client\";\nconst CONTENT_LENGTH_HEADER = \"content-length\";\nexport function checkContentLengthHeader() {\n return (next, context) => async (args) => {\n const { request } = args;\n if (HttpRequest.isInstance(request)) {\n if (!request.headers[CONTENT_LENGTH_HEADER]) {\n const message = `Are you using a Stream of unknown length as the Body of a PutObject request? Consider using Upload instead from @aws-sdk/lib-storage.`;\n if (typeof context?.logger?.warn === \"function\" && !(context.logger instanceof NoOpLogger)) {\n context.logger.warn(message);\n }\n else {\n console.warn(message);\n }\n }\n }\n return next({ ...args });\n };\n}\nexport const checkContentLengthHeaderMiddlewareOptions = {\n step: \"finalizeRequest\",\n tags: [\"CHECK_CONTENT_LENGTH_HEADER\"],\n name: \"getCheckContentLengthHeaderPlugin\",\n override: true,\n};\nexport const getCheckContentLengthHeaderPlugin = (unused) => ({\n applyToStack: (clientStack) => {\n clientStack.add(checkContentLengthHeader(), checkContentLengthHeaderMiddlewareOptions);\n },\n});\n","export const regionRedirectEndpointMiddleware = (config) => {\n return (next, context) => async (args) => {\n const originalRegion = await config.region();\n const regionProviderRef = config.region;\n if (context.__s3RegionRedirect) {\n config.region = async () => {\n config.region = regionProviderRef;\n return context.__s3RegionRedirect;\n };\n }\n const result = await next(args);\n if (context.__s3RegionRedirect) {\n const region = await config.region();\n if (originalRegion !== region) {\n throw new Error(\"Region was not restored following S3 region redirect.\");\n }\n }\n return result;\n };\n};\nexport const regionRedirectEndpointMiddlewareOptions = {\n tags: [\"REGION_REDIRECT\", \"S3\"],\n name: \"regionRedirectEndpointMiddleware\",\n override: true,\n relation: \"before\",\n toMiddleware: \"endpointV2Middleware\",\n};\n","import { regionRedirectEndpointMiddleware, regionRedirectEndpointMiddlewareOptions, } from \"./region-redirect-endpoint-middleware\";\nexport function regionRedirectMiddleware(clientConfig) {\n return (next, context) => async (args) => {\n try {\n return await next(args);\n }\n catch (err) {\n if (clientConfig.followRegionRedirects &&\n err.name === \"PermanentRedirect\" &&\n err.$metadata.httpStatusCode === 301) {\n try {\n const actualRegion = err.$response.headers[\"x-amz-bucket-region\"];\n context.logger?.debug(`Redirecting from ${await clientConfig.region()} to ${actualRegion}`);\n context.__s3RegionRedirect = actualRegion;\n }\n catch (e) {\n throw new Error(\"Region redirect failed: \" + e);\n }\n return next(args);\n }\n else {\n throw err;\n }\n }\n };\n}\nexport const regionRedirectMiddlewareOptions = {\n step: \"initialize\",\n tags: [\"REGION_REDIRECT\", \"S3\"],\n name: \"regionRedirectMiddleware\",\n override: true,\n};\nexport const getRegionRedirectMiddlewarePlugin = (clientConfig) => ({\n applyToStack: (clientStack) => {\n clientStack.add(regionRedirectMiddleware(clientConfig), regionRedirectMiddlewareOptions);\n clientStack.addRelativeTo(regionRedirectEndpointMiddleware(clientConfig), regionRedirectEndpointMiddlewareOptions);\n },\n});\n","export const resolveS3Config = (input) => ({\n ...input,\n forcePathStyle: input.forcePathStyle ?? false,\n useAccelerateEndpoint: input.useAccelerateEndpoint ?? false,\n disableMultiregionAccessPoints: input.disableMultiregionAccessPoints ?? false,\n followRegionRedirects: input.followRegionRedirects ?? false,\n});\n","import { HttpResponse } from \"@smithy/protocol-http\";\nexport const throw200ExceptionsMiddleware = (config) => (next) => async (args) => {\n const result = await next(args);\n const { response } = result;\n if (!HttpResponse.isInstance(response))\n return result;\n const { statusCode, body } = response;\n if (statusCode < 200 || statusCode >= 300)\n return result;\n const bodyBytes = await collectBody(body, config);\n const bodyString = await collectBodyString(bodyBytes, config);\n if (bodyBytes.length === 0) {\n const err = new Error(\"S3 aborted request\");\n err.name = \"InternalError\";\n throw err;\n }\n if (bodyString && bodyString.match(\"\")) {\n response.statusCode = 400;\n }\n response.body = bodyBytes;\n return result;\n};\nconst collectBody = (streamBody = new Uint8Array(), context) => {\n if (streamBody instanceof Uint8Array) {\n return Promise.resolve(streamBody);\n }\n return context.streamCollector(streamBody) || Promise.resolve(new Uint8Array());\n};\nconst collectBodyString = (streamBody, context) => collectBody(streamBody, context).then((body) => context.utf8Encoder(body));\nexport const throw200ExceptionsMiddlewareOptions = {\n relation: \"after\",\n toMiddleware: \"deserializerMiddleware\",\n tags: [\"THROW_200_EXCEPTIONS\", \"S3\"],\n name: \"throw200ExceptionsMiddleware\",\n override: true,\n};\nexport const getThrow200ExceptionsPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(throw200ExceptionsMiddleware(config), throw200ExceptionsMiddlewareOptions);\n },\n});\n","import { validate as validateArn } from \"@aws-sdk/util-arn-parser\";\nexport function validateBucketNameMiddleware() {\n return (next) => async (args) => {\n const { input: { Bucket }, } = args;\n if (typeof Bucket === \"string\" && !validateArn(Bucket) && Bucket.indexOf(\"/\") >= 0) {\n const err = new Error(`Bucket name shouldn't contain '/', received '${Bucket}'`);\n err.name = \"InvalidBucketName\";\n throw err;\n }\n return next({ ...args });\n };\n}\nexport const validateBucketNameMiddlewareOptions = {\n step: \"initialize\",\n tags: [\"VALIDATE_BUCKET_NAME\"],\n name: \"validateBucketNameMiddleware\",\n override: true,\n};\nexport const getValidateBucketNamePlugin = (unused) => ({\n applyToStack: (clientStack) => {\n clientStack.add(validateBucketNameMiddleware(), validateBucketNameMiddlewareOptions);\n },\n});\n","export const validate = (str) => typeof str === \"string\" && str.indexOf(\"arn:\") === 0 && str.split(\":\").length >= 6;\nexport const parse = (arn) => {\n const segments = arn.split(\":\");\n if (segments.length < 6 || segments[0] !== \"arn\")\n throw new Error(\"Malformed ARN\");\n const [, partition, service, region, accountId, ...resource] = segments;\n return {\n partition,\n service,\n region,\n accountId,\n resource: resource.join(\":\"),\n };\n};\nexport const build = (arnObject) => {\n const { partition = \"aws\", service, region, accountId, resource } = arnObject;\n if ([service, region, accountId, resource].some((segment) => typeof segment !== \"string\")) {\n throw new Error(\"Input ARN object is invalid\");\n }\n return `arn:${partition}:${service}:${region}:${accountId}:${resource}`;\n};\n","export function ssecMiddleware(options) {\n return (next) => async (args) => {\n let input = { ...args.input };\n const properties = [\n {\n target: \"SSECustomerKey\",\n hash: \"SSECustomerKeyMD5\",\n },\n {\n target: \"CopySourceSSECustomerKey\",\n hash: \"CopySourceSSECustomerKeyMD5\",\n },\n ];\n for (const prop of properties) {\n const value = input[prop.target];\n if (value) {\n const valueView = ArrayBuffer.isView(value)\n ? new Uint8Array(value.buffer, value.byteOffset, value.byteLength)\n : typeof value === \"string\"\n ? options.utf8Decoder(value)\n : new Uint8Array(value);\n const encoded = options.base64Encoder(valueView);\n const hash = new options.md5();\n hash.update(valueView);\n input = {\n ...input,\n [prop.target]: encoded,\n [prop.hash]: options.base64Encoder(await hash.digest()),\n };\n }\n }\n return next({\n ...args,\n input,\n });\n };\n}\nexport const ssecMiddlewareOptions = {\n name: \"ssecMiddleware\",\n step: \"initialize\",\n tags: [\"SSE\"],\n override: true,\n};\nexport const getSsecPlugin = (config) => ({\n applyToStack: (clientStack) => {\n clientStack.add(ssecMiddleware(config), ssecMiddlewareOptions);\n },\n});\n","const SHORT_TO_HEX = {};\nconst HEX_TO_SHORT = {};\nfor (let i = 0; i < 256; i++) {\n let encodedByte = i.toString(16).toLowerCase();\n if (encodedByte.length === 1) {\n encodedByte = `0${encodedByte}`;\n }\n SHORT_TO_HEX[i] = encodedByte;\n HEX_TO_SHORT[encodedByte] = i;\n}\nexport function fromHex(encoded) {\n if (encoded.length % 2 !== 0) {\n throw new Error(\"Hex encoded strings must have an even number length\");\n }\n const out = new Uint8Array(encoded.length / 2);\n for (let i = 0; i < encoded.length; i += 2) {\n const encodedByte = encoded.slice(i, i + 2).toLowerCase();\n if (encodedByte in HEX_TO_SHORT) {\n out[i / 2] = HEX_TO_SHORT[encodedByte];\n }\n else {\n throw new Error(`Cannot decode unrecognized sequence ${encodedByte} as hexadecimal`);\n }\n }\n return out;\n}\nexport function toHex(bytes) {\n let out = \"\";\n for (let i = 0; i < bytes.byteLength; i++) {\n out += SHORT_TO_HEX[bytes[i]];\n }\n return out;\n}\n","const fallbackWindow = {};\nexport function locateWindow() {\n if (typeof window !== \"undefined\") {\n return window;\n }\n else if (typeof self !== \"undefined\") {\n return self;\n }\n return fallbackWindow;\n}\n","function memoize(fn) {\n var cache = Object.create(null);\n return function (arg) {\n if (cache[arg] === undefined) cache[arg] = fn(arg);\n return cache[arg];\n };\n}\n\nexport { memoize as default };\n","import hoistNonReactStatics$1 from 'hoist-non-react-statics';\n\n// this file isolates this package that is not tree-shakeable\n// and if this module doesn't actually contain any logic of its own\n// then Rollup just use 'hoist-non-react-statics' directly in other chunks\n\nvar hoistNonReactStatics = (function (targetComponent, sourceComponent) {\n return hoistNonReactStatics$1(targetComponent, sourceComponent);\n});\n\nexport default hoistNonReactStatics;\n","import { createContext, useContext, forwardRef, createElement, Fragment } from 'react';\nimport createCache from '@emotion/cache';\nimport _extends from '@babel/runtime/helpers/esm/extends';\nimport weakMemoize from '@emotion/weak-memoize';\nimport hoistNonReactStatics from '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar hasOwnProperty = {}.hasOwnProperty;\n\nvar EmotionCacheContext = /* #__PURE__ */createContext( // we're doing this to avoid preconstruct's dead code elimination in this one case\n// because this module is primarily intended for the browser and node\n// but it's also required in react native and similar environments sometimes\n// and we could have a special build just for that\n// but this is much easier and the native packages\n// might use a different theme context in the future anyway\ntypeof HTMLElement !== 'undefined' ? /* #__PURE__ */createCache({\n key: 'css'\n}) : null);\n\nif (process.env.NODE_ENV !== 'production') {\n EmotionCacheContext.displayName = 'EmotionCacheContext';\n}\n\nvar CacheProvider = EmotionCacheContext.Provider;\nvar __unsafe_useEmotionCache = function useEmotionCache() {\n return useContext(EmotionCacheContext);\n};\n\nvar withEmotionCache = function withEmotionCache(func) {\n // $FlowFixMe\n return /*#__PURE__*/forwardRef(function (props, ref) {\n // the cache will never be null in the browser\n var cache = useContext(EmotionCacheContext);\n return func(props, cache, ref);\n });\n};\n\nvar ThemeContext = /* #__PURE__ */createContext({});\n\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'EmotionThemeContext';\n}\n\nvar useTheme = function useTheme() {\n return useContext(ThemeContext);\n};\n\nvar getTheme = function getTheme(outerTheme, theme) {\n if (typeof theme === 'function') {\n var mergedTheme = theme(outerTheme);\n\n if (process.env.NODE_ENV !== 'production' && (mergedTheme == null || typeof mergedTheme !== 'object' || Array.isArray(mergedTheme))) {\n throw new Error('[ThemeProvider] Please return an object from your theme function, i.e. theme={() => ({})}!');\n }\n\n return mergedTheme;\n }\n\n if (process.env.NODE_ENV !== 'production' && (theme == null || typeof theme !== 'object' || Array.isArray(theme))) {\n throw new Error('[ThemeProvider] Please make your theme prop a plain object');\n }\n\n return _extends({}, outerTheme, theme);\n};\n\nvar createCacheWithTheme = /* #__PURE__ */weakMemoize(function (outerTheme) {\n return weakMemoize(function (theme) {\n return getTheme(outerTheme, theme);\n });\n});\nvar ThemeProvider = function ThemeProvider(props) {\n var theme = useContext(ThemeContext);\n\n if (props.theme !== theme) {\n theme = createCacheWithTheme(theme)(props.theme);\n }\n\n return /*#__PURE__*/createElement(ThemeContext.Provider, {\n value: theme\n }, props.children);\n};\nfunction withTheme(Component) {\n var componentName = Component.displayName || Component.name || 'Component';\n\n var render = function render(props, ref) {\n var theme = useContext(ThemeContext);\n return /*#__PURE__*/createElement(Component, _extends({\n theme: theme,\n ref: ref\n }, props));\n }; // $FlowFixMe\n\n\n var WithTheme = /*#__PURE__*/forwardRef(render);\n WithTheme.displayName = \"WithTheme(\" + componentName + \")\";\n return hoistNonReactStatics(WithTheme, Component);\n}\n\nvar getLastPart = function getLastPart(functionName) {\n // The match may be something like 'Object.createEmotionProps' or\n // 'Loader.prototype.render'\n var parts = functionName.split('.');\n return parts[parts.length - 1];\n};\n\nvar getFunctionNameFromStackTraceLine = function getFunctionNameFromStackTraceLine(line) {\n // V8\n var match = /^\\s+at\\s+([A-Za-z0-9$.]+)\\s/.exec(line);\n if (match) return getLastPart(match[1]); // Safari / Firefox\n\n match = /^([A-Za-z0-9$.]+)@/.exec(line);\n if (match) return getLastPart(match[1]);\n return undefined;\n};\n\nvar internalReactFunctionNames = /* #__PURE__ */new Set(['renderWithHooks', 'processChild', 'finishClassComponent', 'renderToString']); // These identifiers come from error stacks, so they have to be valid JS\n// identifiers, thus we only need to replace what is a valid character for JS,\n// but not for CSS.\n\nvar sanitizeIdentifier = function sanitizeIdentifier(identifier) {\n return identifier.replace(/\\$/g, '-');\n};\n\nvar getLabelFromStackTrace = function getLabelFromStackTrace(stackTrace) {\n if (!stackTrace) return undefined;\n var lines = stackTrace.split('\\n');\n\n for (var i = 0; i < lines.length; i++) {\n var functionName = getFunctionNameFromStackTraceLine(lines[i]); // The first line of V8 stack traces is just \"Error\"\n\n if (!functionName) continue; // If we reach one of these, we have gone too far and should quit\n\n if (internalReactFunctionNames.has(functionName)) break; // The component name is the first function in the stack that starts with an\n // uppercase letter\n\n if (/^[A-Z]/.test(functionName)) return sanitizeIdentifier(functionName);\n }\n\n return undefined;\n};\n\nvar typePropName = '__EMOTION_TYPE_PLEASE_DO_NOT_USE__';\nvar labelPropName = '__EMOTION_LABEL_PLEASE_DO_NOT_USE__';\nvar createEmotionProps = function createEmotionProps(type, props) {\n if (process.env.NODE_ENV !== 'production' && typeof props.css === 'string' && // check if there is a css declaration\n props.css.indexOf(':') !== -1) {\n throw new Error(\"Strings are not allowed as css prop values, please wrap it in a css template literal from '@emotion/react' like this: css`\" + props.css + \"`\");\n }\n\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key)) {\n newProps[key] = props[key];\n }\n }\n\n newProps[typePropName] = type; // For performance, only call getLabelFromStackTrace in development and when\n // the label hasn't already been computed\n\n if (process.env.NODE_ENV !== 'production' && !!props.css && (typeof props.css !== 'object' || typeof props.css.name !== 'string' || props.css.name.indexOf('-') === -1)) {\n var label = getLabelFromStackTrace(new Error().stack);\n if (label) newProps[labelPropName] = label;\n }\n\n return newProps;\n};\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n var rules = useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar Emotion = /* #__PURE__ */withEmotionCache(function (props, cache, ref) {\n var cssProp = props.css; // so that using `css` from `emotion` and passing the result to the css prop works\n // not passing the registered cache to serializeStyles because it would\n // make certain babel optimisations not possible\n\n if (typeof cssProp === 'string' && cache.registered[cssProp] !== undefined) {\n cssProp = cache.registered[cssProp];\n }\n\n var WrappedComponent = props[typePropName];\n var registeredStyles = [cssProp];\n var className = '';\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, registeredStyles, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(registeredStyles, undefined, useContext(ThemeContext));\n\n if (process.env.NODE_ENV !== 'production' && serialized.name.indexOf('-') === -1) {\n var labelFromStack = props[labelPropName];\n\n if (labelFromStack) {\n serialized = serializeStyles([serialized, 'label:' + labelFromStack + ';']);\n }\n }\n\n className += cache.key + \"-\" + serialized.name;\n var newProps = {};\n\n for (var key in props) {\n if (hasOwnProperty.call(props, key) && key !== 'css' && key !== typePropName && (process.env.NODE_ENV === 'production' || key !== labelPropName)) {\n newProps[key] = props[key];\n }\n }\n\n newProps.ref = ref;\n newProps.className = className;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof WrappedComponent === 'string'\n }), /*#__PURE__*/createElement(WrappedComponent, newProps));\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Emotion.displayName = 'EmotionCssPropInternal';\n}\n\nexport { CacheProvider as C, Emotion as E, ThemeContext as T, __unsafe_useEmotionCache as _, ThemeProvider as a, withTheme as b, createEmotionProps as c, hasOwnProperty as h, useTheme as u, withEmotionCache as w };\n","import { createElement, useContext, useRef, Fragment } from 'react';\nimport '@emotion/cache';\nimport { h as hasOwnProperty, E as Emotion, c as createEmotionProps, w as withEmotionCache, T as ThemeContext } from './emotion-element-6a883da9.browser.esm.js';\nexport { C as CacheProvider, T as ThemeContext, a as ThemeProvider, _ as __unsafe_useEmotionCache, u as useTheme, w as withEmotionCache, b as withTheme } from './emotion-element-6a883da9.browser.esm.js';\nimport '@babel/runtime/helpers/extends';\nimport '@emotion/weak-memoize';\nimport 'hoist-non-react-statics';\nimport '../_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js';\nimport { insertStyles, registerStyles, getRegisteredStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectWithLayoutFallback, useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar pkg = {\n\tname: \"@emotion/react\",\n\tversion: \"11.10.5\",\n\tmain: \"dist/emotion-react.cjs.js\",\n\tmodule: \"dist/emotion-react.esm.js\",\n\tbrowser: {\n\t\t\"./dist/emotion-react.esm.js\": \"./dist/emotion-react.browser.esm.js\"\n\t},\n\texports: {\n\t\t\".\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./dist/emotion-react.worker.esm.js\",\n\t\t\t\tbrowser: \"./dist/emotion-react.browser.esm.js\",\n\t\t\t\t\"default\": \"./dist/emotion-react.esm.js\"\n\t\t\t},\n\t\t\t\"default\": \"./dist/emotion-react.cjs.js\"\n\t\t},\n\t\t\"./jsx-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-runtime/dist/emotion-react-jsx-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-runtime/dist/emotion-react-jsx-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"default\": \"./jsx-runtime/dist/emotion-react-jsx-runtime.cjs.js\"\n\t\t},\n\t\t\"./_isolated-hnrs\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.worker.esm.js\",\n\t\t\t\tbrowser: \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.browser.esm.js\",\n\t\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.esm.js\"\n\t\t\t},\n\t\t\t\"default\": \"./_isolated-hnrs/dist/emotion-react-_isolated-hnrs.cjs.js\"\n\t\t},\n\t\t\"./jsx-dev-runtime\": {\n\t\t\tmodule: {\n\t\t\t\tworker: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.worker.esm.js\",\n\t\t\t\tbrowser: \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.browser.esm.js\",\n\t\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.esm.js\"\n\t\t\t},\n\t\t\t\"default\": \"./jsx-dev-runtime/dist/emotion-react-jsx-dev-runtime.cjs.js\"\n\t\t},\n\t\t\"./package.json\": \"./package.json\",\n\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\"./macro\": \"./macro.js\"\n\t},\n\ttypes: \"types/index.d.ts\",\n\tfiles: [\n\t\t\"src\",\n\t\t\"dist\",\n\t\t\"jsx-runtime\",\n\t\t\"jsx-dev-runtime\",\n\t\t\"_isolated-hnrs\",\n\t\t\"types/*.d.ts\",\n\t\t\"macro.js\",\n\t\t\"macro.d.ts\",\n\t\t\"macro.js.flow\"\n\t],\n\tsideEffects: false,\n\tauthor: \"Emotion Contributors\",\n\tlicense: \"MIT\",\n\tscripts: {\n\t\t\"test:typescript\": \"dtslint types\"\n\t},\n\tdependencies: {\n\t\t\"@babel/runtime\": \"^7.18.3\",\n\t\t\"@emotion/babel-plugin\": \"^11.10.5\",\n\t\t\"@emotion/cache\": \"^11.10.5\",\n\t\t\"@emotion/serialize\": \"^1.1.1\",\n\t\t\"@emotion/use-insertion-effect-with-fallbacks\": \"^1.0.0\",\n\t\t\"@emotion/utils\": \"^1.2.0\",\n\t\t\"@emotion/weak-memoize\": \"^0.3.0\",\n\t\t\"hoist-non-react-statics\": \"^3.3.1\"\n\t},\n\tpeerDependencies: {\n\t\t\"@babel/core\": \"^7.0.0\",\n\t\treact: \">=16.8.0\"\n\t},\n\tpeerDependenciesMeta: {\n\t\t\"@babel/core\": {\n\t\t\toptional: true\n\t\t},\n\t\t\"@types/react\": {\n\t\t\toptional: true\n\t\t}\n\t},\n\tdevDependencies: {\n\t\t\"@babel/core\": \"^7.18.5\",\n\t\t\"@definitelytyped/dtslint\": \"0.0.112\",\n\t\t\"@emotion/css\": \"11.10.5\",\n\t\t\"@emotion/css-prettifier\": \"1.1.1\",\n\t\t\"@emotion/server\": \"11.10.0\",\n\t\t\"@emotion/styled\": \"11.10.5\",\n\t\t\"html-tag-names\": \"^1.1.2\",\n\t\treact: \"16.14.0\",\n\t\t\"svg-tag-names\": \"^1.1.1\",\n\t\ttypescript: \"^4.5.5\"\n\t},\n\trepository: \"https://github.com/emotion-js/emotion/tree/main/packages/react\",\n\tpublishConfig: {\n\t\taccess: \"public\"\n\t},\n\t\"umd:main\": \"dist/emotion-react.umd.min.js\",\n\tpreconstruct: {\n\t\tentrypoints: [\n\t\t\t\"./index.js\",\n\t\t\t\"./jsx-runtime.js\",\n\t\t\t\"./jsx-dev-runtime.js\",\n\t\t\t\"./_isolated-hnrs.js\"\n\t\t],\n\t\tumdName: \"emotionReact\",\n\t\texports: {\n\t\t\tenvConditions: [\n\t\t\t\t\"browser\",\n\t\t\t\t\"worker\"\n\t\t\t],\n\t\t\textra: {\n\t\t\t\t\"./types/css-prop\": \"./types/css-prop.d.ts\",\n\t\t\t\t\"./macro\": \"./macro.js\"\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar jsx = function jsx(type, props) {\n var args = arguments;\n\n if (props == null || !hasOwnProperty.call(props, 'css')) {\n // $FlowFixMe\n return createElement.apply(undefined, args);\n }\n\n var argsLength = args.length;\n var createElementArgArray = new Array(argsLength);\n createElementArgArray[0] = Emotion;\n createElementArgArray[1] = createEmotionProps(type, props);\n\n for (var i = 2; i < argsLength; i++) {\n createElementArgArray[i] = args[i];\n } // $FlowFixMe\n\n\n return createElement.apply(null, createElementArgArray);\n};\n\nvar warnedAboutCssPropForGlobal = false; // maintain place over rerenders.\n// initial render from browser, insertBefore context.sheet.tags[0] or if a style hasn't been inserted there yet, appendChild\n// initial client-side render from SSR, use place of hydrating tag\n\nvar Global = /* #__PURE__ */withEmotionCache(function (props, cache) {\n if (process.env.NODE_ENV !== 'production' && !warnedAboutCssPropForGlobal && ( // check for className as well since the user is\n // probably using the custom createElement which\n // means it will be turned into a className prop\n // $FlowFixMe I don't really want to add it to the type since it shouldn't be used\n props.className || props.css)) {\n console.error(\"It looks like you're using the css prop on Global, did you mean to use the styles prop instead?\");\n warnedAboutCssPropForGlobal = true;\n }\n\n var styles = props.styles;\n var serialized = serializeStyles([styles], undefined, useContext(ThemeContext));\n // but it is based on a constant that will never change at runtime\n // it's effectively like having two implementations and switching them out\n // so it's not actually breaking anything\n\n\n var sheetRef = useRef();\n useInsertionEffectWithLayoutFallback(function () {\n var key = cache.key + \"-global\"; // use case of https://github.com/emotion-js/emotion/issues/2675\n\n var sheet = new cache.sheet.constructor({\n key: key,\n nonce: cache.sheet.nonce,\n container: cache.sheet.container,\n speedy: cache.sheet.isSpeedy\n });\n var rehydrating = false; // $FlowFixMe\n\n var node = document.querySelector(\"style[data-emotion=\\\"\" + key + \" \" + serialized.name + \"\\\"]\");\n\n if (cache.sheet.tags.length) {\n sheet.before = cache.sheet.tags[0];\n }\n\n if (node !== null) {\n rehydrating = true; // clear the hash so this node won't be recognizable as rehydratable by other s\n\n node.setAttribute('data-emotion', key);\n sheet.hydrate([node]);\n }\n\n sheetRef.current = [sheet, rehydrating];\n return function () {\n sheet.flush();\n };\n }, [cache]);\n useInsertionEffectWithLayoutFallback(function () {\n var sheetRefCurrent = sheetRef.current;\n var sheet = sheetRefCurrent[0],\n rehydrating = sheetRefCurrent[1];\n\n if (rehydrating) {\n sheetRefCurrent[1] = false;\n return;\n }\n\n if (serialized.next !== undefined) {\n // insert keyframes\n insertStyles(cache, serialized.next, true);\n }\n\n if (sheet.tags.length) {\n // if this doesn't exist then it will be null so the style element will be appended\n var element = sheet.tags[sheet.tags.length - 1].nextElementSibling;\n sheet.before = element;\n sheet.flush();\n }\n\n cache.insert(\"\", serialized, sheet, false);\n }, [cache, serialized.name]);\n return null;\n});\n\nif (process.env.NODE_ENV !== 'production') {\n Global.displayName = 'EmotionGlobal';\n}\n\nfunction css() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return serializeStyles(args);\n}\n\nvar keyframes = function keyframes() {\n var insertable = css.apply(void 0, arguments);\n var name = \"animation-\" + insertable.name; // $FlowFixMe\n\n return {\n name: name,\n styles: \"@keyframes \" + name + \"{\" + insertable.styles + \"}\",\n anim: 1,\n toString: function toString() {\n return \"_EMO_\" + this.name + \"_\" + this.styles + \"_EMO_\";\n }\n };\n};\n\nvar classnames = function classnames(args) {\n var len = args.length;\n var i = 0;\n var cls = '';\n\n for (; i < len; i++) {\n var arg = args[i];\n if (arg == null) continue;\n var toAdd = void 0;\n\n switch (typeof arg) {\n case 'boolean':\n break;\n\n case 'object':\n {\n if (Array.isArray(arg)) {\n toAdd = classnames(arg);\n } else {\n if (process.env.NODE_ENV !== 'production' && arg.styles !== undefined && arg.name !== undefined) {\n console.error('You have passed styles created with `css` from `@emotion/react` package to the `cx`.\\n' + '`cx` is meant to compose class names (strings) so you should convert those styles to a class name by passing them to the `css` received from component.');\n }\n\n toAdd = '';\n\n for (var k in arg) {\n if (arg[k] && k) {\n toAdd && (toAdd += ' ');\n toAdd += k;\n }\n }\n }\n\n break;\n }\n\n default:\n {\n toAdd = arg;\n }\n }\n\n if (toAdd) {\n cls && (cls += ' ');\n cls += toAdd;\n }\n }\n\n return cls;\n};\n\nfunction merge(registered, css, className) {\n var registeredStyles = [];\n var rawClassName = getRegisteredStyles(registered, registeredStyles, className);\n\n if (registeredStyles.length < 2) {\n return className;\n }\n\n return rawClassName + css(registeredStyles);\n}\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serializedArr = _ref.serializedArr;\n var rules = useInsertionEffectAlwaysWithSyncFallback(function () {\n\n for (var i = 0; i < serializedArr.length; i++) {\n var res = insertStyles(cache, serializedArr[i], false);\n }\n });\n\n return null;\n};\n\nvar ClassNames = /* #__PURE__ */withEmotionCache(function (props, cache) {\n var hasRendered = false;\n var serializedArr = [];\n\n var css = function css() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('css can only be used during render');\n }\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var serialized = serializeStyles(args, cache.registered);\n serializedArr.push(serialized); // registration has to happen here as the result of this might get consumed by `cx`\n\n registerStyles(cache, serialized, false);\n return cache.key + \"-\" + serialized.name;\n };\n\n var cx = function cx() {\n if (hasRendered && process.env.NODE_ENV !== 'production') {\n throw new Error('cx can only be used during render');\n }\n\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n\n return merge(cache.registered, css, classnames(args));\n };\n\n var content = {\n css: css,\n cx: cx,\n theme: useContext(ThemeContext)\n };\n var ele = props.children(content);\n hasRendered = true;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serializedArr: serializedArr\n }), ele);\n});\n\nif (process.env.NODE_ENV !== 'production') {\n ClassNames.displayName = 'EmotionClassNames';\n}\n\nif (process.env.NODE_ENV !== 'production') {\n var isBrowser = \"object\" !== 'undefined'; // #1727, #2905 for some reason Jest and Vitest evaluate modules twice if some consuming module gets mocked\n\n var isTestEnv = typeof jest !== 'undefined' || typeof vi !== 'undefined';\n\n if (isBrowser && !isTestEnv) {\n // globalThis has wide browser support - https://caniuse.com/?search=globalThis, Node.js 12 and later\n var globalContext = // $FlowIgnore\n typeof globalThis !== 'undefined' ? globalThis // eslint-disable-line no-undef\n : isBrowser ? window : global;\n var globalKey = \"__EMOTION_REACT_\" + pkg.version.split('.')[0] + \"__\";\n\n if (globalContext[globalKey]) {\n console.warn('You are loading @emotion/react when it is already loaded. Running ' + 'multiple instances may cause problems. This can happen if multiple ' + 'versions are used, or if multiple builds of the same version are ' + 'used.');\n }\n\n globalContext[globalKey] = true;\n }\n}\n\nexport { ClassNames, Global, jsx as createElement, css, jsx, keyframes };\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @return {number}\n */\nexport function indexof (value, search) {\n\treturn value.indexOf(search)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: ''}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0), root, {length: -root.length}, props)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen, sizeof} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\tvar length = sizeof(children)\n\n\tfor (var i = 0; i < length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: element.value = element.props.join(',')\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f') != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @return {object}\n */\nexport function comment (value, root, parent) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @return {object}\n */\nexport function declaration (value, root, parent, length) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length)\n}\n","import { StyleSheet } from '@emotion/sheet';\nimport { dealloc, alloc, next, token, from, peek, delimit, slice, position, RULESET, combine, match, serialize, copy, replace, WEBKIT, MOZ, MS, KEYFRAMES, DECLARATION, hash, charat, strlen, indexof, stringify, COMMENT, rulesheet, middleware, compile } from 'stylis';\nimport '@emotion/weak-memoize';\nimport '@emotion/memoize';\n\nvar identifierWithPointTracking = function identifierWithPointTracking(begin, points, index) {\n var previous = 0;\n var character = 0;\n\n while (true) {\n previous = character;\n character = peek(); // &\\f\n\n if (previous === 38 && character === 12) {\n points[index] = 1;\n }\n\n if (token(character)) {\n break;\n }\n\n next();\n }\n\n return slice(begin, position);\n};\n\nvar toRules = function toRules(parsed, points) {\n // pretend we've started with a comma\n var index = -1;\n var character = 44;\n\n do {\n switch (token(character)) {\n case 0:\n // &\\f\n if (character === 38 && peek() === 12) {\n // this is not 100% correct, we don't account for literal sequences here - like for example quoted strings\n // stylis inserts \\f after & to know when & where it should replace this sequence with the context selector\n // and when it should just concatenate the outer and inner selectors\n // it's very unlikely for this sequence to actually appear in a different context, so we just leverage this fact here\n points[index] = 1;\n }\n\n parsed[index] += identifierWithPointTracking(position - 1, points, index);\n break;\n\n case 2:\n parsed[index] += delimit(character);\n break;\n\n case 4:\n // comma\n if (character === 44) {\n // colon\n parsed[++index] = peek() === 58 ? '&\\f' : '';\n points[index] = parsed[index].length;\n break;\n }\n\n // fallthrough\n\n default:\n parsed[index] += from(character);\n }\n } while (character = next());\n\n return parsed;\n};\n\nvar getRules = function getRules(value, points) {\n return dealloc(toRules(alloc(value), points));\n}; // WeakSet would be more appropriate, but only WeakMap is supported in IE11\n\n\nvar fixedElements = /* #__PURE__ */new WeakMap();\nvar compat = function compat(element) {\n if (element.type !== 'rule' || !element.parent || // positive .length indicates that this rule contains pseudo\n // negative .length indicates that this rule has been already prefixed\n element.length < 1) {\n return;\n }\n\n var value = element.value,\n parent = element.parent;\n var isImplicitRule = element.column === parent.column && element.line === parent.line;\n\n while (parent.type !== 'rule') {\n parent = parent.parent;\n if (!parent) return;\n } // short-circuit for the simplest case\n\n\n if (element.props.length === 1 && value.charCodeAt(0) !== 58\n /* colon */\n && !fixedElements.get(parent)) {\n return;\n } // if this is an implicitly inserted rule (the one eagerly inserted at the each new nested level)\n // then the props has already been manipulated beforehand as they that array is shared between it and its \"rule parent\"\n\n\n if (isImplicitRule) {\n return;\n }\n\n fixedElements.set(element, true);\n var points = [];\n var rules = getRules(value, points);\n var parentRules = parent.props;\n\n for (var i = 0, k = 0; i < rules.length; i++) {\n for (var j = 0; j < parentRules.length; j++, k++) {\n element.props[k] = points[i] ? rules[i].replace(/&\\f/g, parentRules[j]) : parentRules[j] + \" \" + rules[i];\n }\n }\n};\nvar removeLabel = function removeLabel(element) {\n if (element.type === 'decl') {\n var value = element.value;\n\n if ( // charcode for l\n value.charCodeAt(0) === 108 && // charcode for b\n value.charCodeAt(2) === 98) {\n // this ignores label\n element[\"return\"] = '';\n element.value = '';\n }\n }\n};\nvar ignoreFlag = 'emotion-disable-server-rendering-unsafe-selector-warning-please-do-not-use-this-the-warning-exists-for-a-reason';\n\nvar isIgnoringComment = function isIgnoringComment(element) {\n return element.type === 'comm' && element.children.indexOf(ignoreFlag) > -1;\n};\n\nvar createUnsafeSelectorsAlarm = function createUnsafeSelectorsAlarm(cache) {\n return function (element, index, children) {\n if (element.type !== 'rule' || cache.compat) return;\n var unsafePseudoClasses = element.value.match(/(:first|:nth|:nth-last)-child/g);\n\n if (unsafePseudoClasses) {\n var isNested = !!element.parent; // in nested rules comments become children of the \"auto-inserted\" rule and that's always the `element.parent`\n //\n // considering this input:\n // .a {\n // .b /* comm */ {}\n // color: hotpink;\n // }\n // we get output corresponding to this:\n // .a {\n // & {\n // /* comm */\n // color: hotpink;\n // }\n // .b {}\n // }\n\n var commentContainer = isNested ? element.parent.children : // global rule at the root level\n children;\n\n for (var i = commentContainer.length - 1; i >= 0; i--) {\n var node = commentContainer[i];\n\n if (node.line < element.line) {\n break;\n } // it is quite weird but comments are *usually* put at `column: element.column - 1`\n // so we seek *from the end* for the node that is earlier than the rule's `element` and check that\n // this will also match inputs like this:\n // .a {\n // /* comm */\n // .b {}\n // }\n //\n // but that is fine\n //\n // it would be the easiest to change the placement of the comment to be the first child of the rule:\n // .a {\n // .b { /* comm */ }\n // }\n // with such inputs we wouldn't have to search for the comment at all\n // TODO: consider changing this comment placement in the next major version\n\n\n if (node.column < element.column) {\n if (isIgnoringComment(node)) {\n return;\n }\n\n break;\n }\n }\n\n unsafePseudoClasses.forEach(function (unsafePseudoClass) {\n console.error(\"The pseudo class \\\"\" + unsafePseudoClass + \"\\\" is potentially unsafe when doing server-side rendering. Try changing it to \\\"\" + unsafePseudoClass.split('-child')[0] + \"-of-type\\\".\");\n });\n }\n };\n};\n\nvar isImportRule = function isImportRule(element) {\n return element.type.charCodeAt(1) === 105 && element.type.charCodeAt(0) === 64;\n};\n\nvar isPrependedWithRegularRules = function isPrependedWithRegularRules(index, children) {\n for (var i = index - 1; i >= 0; i--) {\n if (!isImportRule(children[i])) {\n return true;\n }\n }\n\n return false;\n}; // use this to remove incorrect elements from further processing\n// so they don't get handed to the `sheet` (or anything else)\n// as that could potentially lead to additional logs which in turn could be overhelming to the user\n\n\nvar nullifyElement = function nullifyElement(element) {\n element.type = '';\n element.value = '';\n element[\"return\"] = '';\n element.children = '';\n element.props = '';\n};\n\nvar incorrectImportAlarm = function incorrectImportAlarm(element, index, children) {\n if (!isImportRule(element)) {\n return;\n }\n\n if (element.parent) {\n console.error(\"`@import` rules can't be nested inside other rules. Please move it to the top level and put it before regular rules. Keep in mind that they can only be used within global styles.\");\n nullifyElement(element);\n } else if (isPrependedWithRegularRules(index, children)) {\n console.error(\"`@import` rules can't be after other rules. Please put your `@import` rules before your other rules.\");\n nullifyElement(element);\n }\n};\n\n/* eslint-disable no-fallthrough */\n\nfunction prefix(value, length) {\n switch (hash(value, length)) {\n // color-adjust\n case 5103:\n return WEBKIT + 'print-' + value + value;\n // animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\n case 5737:\n case 4201:\n case 3177:\n case 3433:\n case 1641:\n case 4457:\n case 2921: // text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\n case 5572:\n case 6356:\n case 5844:\n case 3191:\n case 6645:\n case 3005: // mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\n case 6391:\n case 5879:\n case 5623:\n case 6135:\n case 4599:\n case 4855: // background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\n case 4215:\n case 6389:\n case 5109:\n case 5365:\n case 5621:\n case 3829:\n return WEBKIT + value + value;\n // appearance, user-select, transform, hyphens, text-size-adjust\n\n case 5349:\n case 4246:\n case 4810:\n case 6968:\n case 2756:\n return WEBKIT + value + MOZ + value + MS + value + value;\n // flex, flex-direction\n\n case 6828:\n case 4268:\n return WEBKIT + value + MS + value + value;\n // order\n\n case 6165:\n return WEBKIT + value + MS + 'flex-' + value + value;\n // align-items\n\n case 5187:\n return WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value;\n // align-self\n\n case 5443:\n return WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/, '') + value;\n // align-content\n\n case 4675:\n return WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/, '') + value;\n // flex-shrink\n\n case 5548:\n return WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value;\n // flex-basis\n\n case 5292:\n return WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value;\n // flex-grow\n\n case 6060:\n return WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value;\n // transition\n\n case 4554:\n return WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value;\n // cursor\n\n case 6187:\n return replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value;\n // background, background-image\n\n case 5495:\n case 3959:\n return replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1');\n // justify-content\n\n case 4968:\n return replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value;\n // (margin|padding)-inline-(start|end)\n\n case 4095:\n case 3583:\n case 4068:\n case 2532:\n return replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value;\n // (min|max)?(width|height|inline-size|block-size)\n\n case 8116:\n case 7059:\n case 5753:\n case 5535:\n case 5445:\n case 5701:\n case 4933:\n case 4677:\n case 5533:\n case 5789:\n case 5021:\n case 4765:\n // stretch, max-content, min-content, fill-available\n if (strlen(value) - 1 - length > 6) switch (charat(value, length + 1)) {\n // (m)ax-content, (m)in-content\n case 109:\n // -\n if (charat(value, length + 4) !== 45) break;\n // (f)ill-available, (f)it-content\n\n case 102:\n return replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value;\n // (s)tretch\n\n case 115:\n return ~indexof(value, 'stretch') ? prefix(replace(value, 'stretch', 'fill-available'), length) + value : value;\n }\n break;\n // position: sticky\n\n case 4949:\n // (s)ticky?\n if (charat(value, length + 1) !== 115) break;\n // display: (flex|inline-flex)\n\n case 6444:\n switch (charat(value, strlen(value) - 3 - (~indexof(value, '!important') && 10))) {\n // stic(k)y\n case 107:\n return replace(value, ':', ':' + WEBKIT) + value;\n // (inline-)?fl(e)x\n\n case 101:\n return replace(value, /(.+:)([^;!]+)(;|!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value;\n }\n\n break;\n // writing-mode\n\n case 5936:\n switch (charat(value, length + 11)) {\n // vertical-l(r)\n case 114:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value;\n // vertical-r(l)\n\n case 108:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value;\n // horizontal(-)tb\n\n case 45:\n return WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value;\n }\n\n return WEBKIT + value + MS + value + value;\n }\n\n return value;\n}\n\nvar prefixer = function prefixer(element, index, children, callback) {\n if (element.length > -1) if (!element[\"return\"]) switch (element.type) {\n case DECLARATION:\n element[\"return\"] = prefix(element.value, element.length);\n break;\n\n case KEYFRAMES:\n return serialize([copy(element, {\n value: replace(element.value, '@', '@' + WEBKIT)\n })], callback);\n\n case RULESET:\n if (element.length) return combine(element.props, function (value) {\n switch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n // :read-(only|write)\n case ':read-only':\n case ':read-write':\n return serialize([copy(element, {\n props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]\n })], callback);\n // :placeholder\n\n case '::placeholder':\n return serialize([copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]\n }), copy(element, {\n props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]\n })], callback);\n }\n\n return '';\n });\n }\n};\n\nvar defaultStylisPlugins = [prefixer];\n\nvar createCache = function createCache(options) {\n var key = options.key;\n\n if (process.env.NODE_ENV !== 'production' && !key) {\n throw new Error(\"You have to configure `key` for your cache. Please make sure it's unique (and not equal to 'css') as it's used for linking styles to your cache.\\n\" + \"If multiple caches share the same key they might \\\"fight\\\" for each other's style elements.\");\n }\n\n if (key === 'css') {\n var ssrStyles = document.querySelectorAll(\"style[data-emotion]:not([data-s])\"); // get SSRed styles out of the way of React's hydration\n // document.head is a safe place to move them to(though note document.head is not necessarily the last place they will be)\n // note this very very intentionally targets all style elements regardless of the key to ensure\n // that creating a cache works inside of render of a React component\n\n Array.prototype.forEach.call(ssrStyles, function (node) {\n // we want to only move elements which have a space in the data-emotion attribute value\n // because that indicates that it is an Emotion 11 server-side rendered style elements\n // while we will already ignore Emotion 11 client-side inserted styles because of the :not([data-s]) part in the selector\n // Emotion 10 client-side inserted styles did not have data-s (but importantly did not have a space in their data-emotion attributes)\n // so checking for the space ensures that loading Emotion 11 after Emotion 10 has inserted some styles\n // will not result in the Emotion 10 styles being destroyed\n var dataEmotionAttribute = node.getAttribute('data-emotion');\n\n if (dataEmotionAttribute.indexOf(' ') === -1) {\n return;\n }\n document.head.appendChild(node);\n node.setAttribute('data-s', '');\n });\n }\n\n var stylisPlugins = options.stylisPlugins || defaultStylisPlugins;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe\n if (/[^a-z-]/.test(key)) {\n throw new Error(\"Emotion key must only contain lower case alphabetical characters and - but \\\"\" + key + \"\\\" was passed\");\n }\n }\n\n var inserted = {};\n var container;\n var nodesToHydrate = [];\n\n {\n container = options.container || document.head;\n Array.prototype.forEach.call( // this means we will ignore elements which don't have a space in them which\n // means that the style elements we're looking at are only Emotion 11 server-rendered style elements\n document.querySelectorAll(\"style[data-emotion^=\\\"\" + key + \" \\\"]\"), function (node) {\n var attrib = node.getAttribute(\"data-emotion\").split(' '); // $FlowFixMe\n\n for (var i = 1; i < attrib.length; i++) {\n inserted[attrib[i]] = true;\n }\n\n nodesToHydrate.push(node);\n });\n }\n\n var _insert;\n\n var omnipresentPlugins = [compat, removeLabel];\n\n if (process.env.NODE_ENV !== 'production') {\n omnipresentPlugins.push(createUnsafeSelectorsAlarm({\n get compat() {\n return cache.compat;\n }\n\n }), incorrectImportAlarm);\n }\n\n {\n var currentSheet;\n var finalizingPlugins = [stringify, process.env.NODE_ENV !== 'production' ? function (element) {\n if (!element.root) {\n if (element[\"return\"]) {\n currentSheet.insert(element[\"return\"]);\n } else if (element.value && element.type !== COMMENT) {\n // insert empty rule in non-production environments\n // so @emotion/jest can grab `key` from the (JS)DOM for caches without any rules inserted yet\n currentSheet.insert(element.value + \"{}\");\n }\n }\n } : rulesheet(function (rule) {\n currentSheet.insert(rule);\n })];\n var serializer = middleware(omnipresentPlugins.concat(stylisPlugins, finalizingPlugins));\n\n var stylis = function stylis(styles) {\n return serialize(compile(styles), serializer);\n };\n\n _insert = function insert(selector, serialized, sheet, shouldCache) {\n currentSheet = sheet;\n\n if (process.env.NODE_ENV !== 'production' && serialized.map !== undefined) {\n currentSheet = {\n insert: function insert(rule) {\n sheet.insert(rule + serialized.map);\n }\n };\n }\n\n stylis(selector ? selector + \"{\" + serialized.styles + \"}\" : serialized.styles);\n\n if (shouldCache) {\n cache.inserted[serialized.name] = true;\n }\n };\n }\n\n var cache = {\n key: key,\n sheet: new StyleSheet({\n key: key,\n container: container,\n nonce: options.nonce,\n speedy: options.speedy,\n prepend: options.prepend,\n insertionPoint: options.insertionPoint\n }),\n nonce: options.nonce,\n inserted: inserted,\n registered: {},\n insert: _insert\n };\n cache.sheet.hydrate(nodesToHydrate);\n return cache;\n};\n\nexport { createCache as default };\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine} from './Utility.js'\nimport {copy, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\treturn serialize([copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]})], callback)\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\treturn serialize([\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}),\n\t\t\t\t\t\t\t\t\t\tcopy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]})\n\t\t\t\t\t\t\t\t\t], callback)\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","import hashString from '@emotion/hash';\nimport unitless from '@emotion/unitless';\nimport memoize from '@emotion/memoize';\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\nvar UNDEFINED_AS_OBJECT_KEY_ERROR = \"You have passed in falsy value as style object's key (can happen when in example you pass unexported component as computed key).\";\nvar hyphenateRegex = /[A-Z]|^ms/g;\nvar animationRegex = /_EMO_([^_]+?)_([^]*?)_EMO_/g;\n\nvar isCustomProperty = function isCustomProperty(property) {\n return property.charCodeAt(1) === 45;\n};\n\nvar isProcessableValue = function isProcessableValue(value) {\n return value != null && typeof value !== 'boolean';\n};\n\nvar processStyleName = /* #__PURE__ */memoize(function (styleName) {\n return isCustomProperty(styleName) ? styleName : styleName.replace(hyphenateRegex, '-$&').toLowerCase();\n});\n\nvar processStyleValue = function processStyleValue(key, value) {\n switch (key) {\n case 'animation':\n case 'animationName':\n {\n if (typeof value === 'string') {\n return value.replace(animationRegex, function (match, p1, p2) {\n cursor = {\n name: p1,\n styles: p2,\n next: cursor\n };\n return p1;\n });\n }\n }\n }\n\n if (unitless[key] !== 1 && !isCustomProperty(key) && typeof value === 'number' && value !== 0) {\n return value + 'px';\n }\n\n return value;\n};\n\nif (process.env.NODE_ENV !== 'production') {\n var contentValuePattern = /(var|attr|counters?|url|element|(((repeating-)?(linear|radial))|conic)-gradient)\\(|(no-)?(open|close)-quote/;\n var contentValues = ['normal', 'none', 'initial', 'inherit', 'unset'];\n var oldProcessStyleValue = processStyleValue;\n var msPattern = /^-ms-/;\n var hyphenPattern = /-(.)/g;\n var hyphenatedCache = {};\n\n processStyleValue = function processStyleValue(key, value) {\n if (key === 'content') {\n if (typeof value !== 'string' || contentValues.indexOf(value) === -1 && !contentValuePattern.test(value) && (value.charAt(0) !== value.charAt(value.length - 1) || value.charAt(0) !== '\"' && value.charAt(0) !== \"'\")) {\n throw new Error(\"You seem to be using a value for 'content' without quotes, try replacing it with `content: '\\\"\" + value + \"\\\"'`\");\n }\n }\n\n var processed = oldProcessStyleValue(key, value);\n\n if (processed !== '' && !isCustomProperty(key) && key.indexOf('-') !== -1 && hyphenatedCache[key] === undefined) {\n hyphenatedCache[key] = true;\n console.error(\"Using kebab-case for css properties in objects is not supported. Did you mean \" + key.replace(msPattern, 'ms-').replace(hyphenPattern, function (str, _char) {\n return _char.toUpperCase();\n }) + \"?\");\n }\n\n return processed;\n };\n}\n\nvar noComponentSelectorMessage = 'Component selectors can only be used in conjunction with ' + '@emotion/babel-plugin, the swc Emotion plugin, or another Emotion-aware ' + 'compiler transform.';\n\nfunction handleInterpolation(mergedProps, registered, interpolation) {\n if (interpolation == null) {\n return '';\n }\n\n if (interpolation.__emotion_styles !== undefined) {\n if (process.env.NODE_ENV !== 'production' && interpolation.toString() === 'NO_COMPONENT_SELECTOR') {\n throw new Error(noComponentSelectorMessage);\n }\n\n return interpolation;\n }\n\n switch (typeof interpolation) {\n case 'boolean':\n {\n return '';\n }\n\n case 'object':\n {\n if (interpolation.anim === 1) {\n cursor = {\n name: interpolation.name,\n styles: interpolation.styles,\n next: cursor\n };\n return interpolation.name;\n }\n\n if (interpolation.styles !== undefined) {\n var next = interpolation.next;\n\n if (next !== undefined) {\n // not the most efficient thing ever but this is a pretty rare case\n // and there will be very few iterations of this generally\n while (next !== undefined) {\n cursor = {\n name: next.name,\n styles: next.styles,\n next: cursor\n };\n next = next.next;\n }\n }\n\n var styles = interpolation.styles + \";\";\n\n if (process.env.NODE_ENV !== 'production' && interpolation.map !== undefined) {\n styles += interpolation.map;\n }\n\n return styles;\n }\n\n return createStringFromObject(mergedProps, registered, interpolation);\n }\n\n case 'function':\n {\n if (mergedProps !== undefined) {\n var previousCursor = cursor;\n var result = interpolation(mergedProps);\n cursor = previousCursor;\n return handleInterpolation(mergedProps, registered, result);\n } else if (process.env.NODE_ENV !== 'production') {\n console.error('Functions that are interpolated in css calls will be stringified.\\n' + 'If you want to have a css call based on props, create a function that returns a css call like this\\n' + 'let dynamicStyle = (props) => css`color: ${props.color}`\\n' + 'It can be called directly with props or interpolated in a styled call like this\\n' + \"let SomeComponent = styled('div')`${dynamicStyle}`\");\n }\n\n break;\n }\n\n case 'string':\n if (process.env.NODE_ENV !== 'production') {\n var matched = [];\n var replaced = interpolation.replace(animationRegex, function (match, p1, p2) {\n var fakeVarName = \"animation\" + matched.length;\n matched.push(\"const \" + fakeVarName + \" = keyframes`\" + p2.replace(/^@keyframes animation-\\w+/, '') + \"`\");\n return \"${\" + fakeVarName + \"}\";\n });\n\n if (matched.length) {\n console.error('`keyframes` output got interpolated into plain string, please wrap it with `css`.\\n\\n' + 'Instead of doing this:\\n\\n' + [].concat(matched, [\"`\" + replaced + \"`\"]).join('\\n') + '\\n\\nYou should wrap it with `css` like this:\\n\\n' + (\"css`\" + replaced + \"`\"));\n }\n }\n\n break;\n } // finalize string values (regular strings and functions interpolated into css calls)\n\n\n if (registered == null) {\n return interpolation;\n }\n\n var cached = registered[interpolation];\n return cached !== undefined ? cached : interpolation;\n}\n\nfunction createStringFromObject(mergedProps, registered, obj) {\n var string = '';\n\n if (Array.isArray(obj)) {\n for (var i = 0; i < obj.length; i++) {\n string += handleInterpolation(mergedProps, registered, obj[i]) + \";\";\n }\n } else {\n for (var _key in obj) {\n var value = obj[_key];\n\n if (typeof value !== 'object') {\n if (registered != null && registered[value] !== undefined) {\n string += _key + \"{\" + registered[value] + \"}\";\n } else if (isProcessableValue(value)) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value) + \";\";\n }\n } else {\n if (_key === 'NO_COMPONENT_SELECTOR' && process.env.NODE_ENV !== 'production') {\n throw new Error(noComponentSelectorMessage);\n }\n\n if (Array.isArray(value) && typeof value[0] === 'string' && (registered == null || registered[value[0]] === undefined)) {\n for (var _i = 0; _i < value.length; _i++) {\n if (isProcessableValue(value[_i])) {\n string += processStyleName(_key) + \":\" + processStyleValue(_key, value[_i]) + \";\";\n }\n }\n } else {\n var interpolated = handleInterpolation(mergedProps, registered, value);\n\n switch (_key) {\n case 'animation':\n case 'animationName':\n {\n string += processStyleName(_key) + \":\" + interpolated + \";\";\n break;\n }\n\n default:\n {\n if (process.env.NODE_ENV !== 'production' && _key === 'undefined') {\n console.error(UNDEFINED_AS_OBJECT_KEY_ERROR);\n }\n\n string += _key + \"{\" + interpolated + \"}\";\n }\n }\n }\n }\n }\n }\n\n return string;\n}\n\nvar labelPattern = /label:\\s*([^\\s;\\n{]+)\\s*(;|$)/g;\nvar sourceMapPattern;\n\nif (process.env.NODE_ENV !== 'production') {\n sourceMapPattern = /\\/\\*#\\ssourceMappingURL=data:application\\/json;\\S+\\s+\\*\\//g;\n} // this is the cursor for keyframes\n// keyframes are stored on the SerializedStyles object as a linked list\n\n\nvar cursor;\nvar serializeStyles = function serializeStyles(args, registered, mergedProps) {\n if (args.length === 1 && typeof args[0] === 'object' && args[0] !== null && args[0].styles !== undefined) {\n return args[0];\n }\n\n var stringMode = true;\n var styles = '';\n cursor = undefined;\n var strings = args[0];\n\n if (strings == null || strings.raw === undefined) {\n stringMode = false;\n styles += handleInterpolation(mergedProps, registered, strings);\n } else {\n if (process.env.NODE_ENV !== 'production' && strings[0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[0];\n } // we start at 1 since we've already handled the first arg\n\n\n for (var i = 1; i < args.length; i++) {\n styles += handleInterpolation(mergedProps, registered, args[i]);\n\n if (stringMode) {\n if (process.env.NODE_ENV !== 'production' && strings[i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles += strings[i];\n }\n }\n\n var sourceMap;\n\n if (process.env.NODE_ENV !== 'production') {\n styles = styles.replace(sourceMapPattern, function (match) {\n sourceMap = match;\n return '';\n });\n } // using a global regex with .exec is stateful so lastIndex has to be reset each time\n\n\n labelPattern.lastIndex = 0;\n var identifierName = '';\n var match; // https://esbench.com/bench/5b809c2cf2949800a0f61fb5\n\n while ((match = labelPattern.exec(styles)) !== null) {\n identifierName += '-' + // $FlowFixMe we know it's not null\n match[1];\n }\n\n var name = hashString(styles) + identifierName;\n\n if (process.env.NODE_ENV !== 'production') {\n // $FlowFixMe SerializedStyles type doesn't have toString property (and we don't want to add it)\n return {\n name: name,\n styles: styles,\n map: sourceMap,\n next: cursor,\n toString: function toString() {\n return \"You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop).\";\n }\n };\n }\n\n return {\n name: name,\n styles: styles,\n next: cursor\n };\n};\n\nexport { serializeStyles };\n","/* eslint-disable */\n// Inspired by https://github.com/garycourt/murmurhash-js\n// Ported from https://github.com/aappleby/smhasher/blob/61a0530f28277f2e850bfc39600ce61d02b518de/src/MurmurHash2.cpp#L37-L86\nfunction murmur2(str) {\n // 'm' and 'r' are mixing constants generated offline.\n // They're not really 'magic', they just happen to work well.\n // const m = 0x5bd1e995;\n // const r = 24;\n // Initialize the hash\n var h = 0; // Mix 4 bytes at a time into the hash\n\n var k,\n i = 0,\n len = str.length;\n\n for (; len >= 4; ++i, len -= 4) {\n k = str.charCodeAt(i) & 0xff | (str.charCodeAt(++i) & 0xff) << 8 | (str.charCodeAt(++i) & 0xff) << 16 | (str.charCodeAt(++i) & 0xff) << 24;\n k =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16);\n k ^=\n /* k >>> r: */\n k >>> 24;\n h =\n /* Math.imul(k, m): */\n (k & 0xffff) * 0x5bd1e995 + ((k >>> 16) * 0xe995 << 16) ^\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Handle the last few bytes of the input array\n\n\n switch (len) {\n case 3:\n h ^= (str.charCodeAt(i + 2) & 0xff) << 16;\n\n case 2:\n h ^= (str.charCodeAt(i + 1) & 0xff) << 8;\n\n case 1:\n h ^= str.charCodeAt(i) & 0xff;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n } // Do a few final mixes of the hash to ensure the last few\n // bytes are well-incorporated.\n\n\n h ^= h >>> 13;\n h =\n /* Math.imul(h, m): */\n (h & 0xffff) * 0x5bd1e995 + ((h >>> 16) * 0xe995 << 16);\n return ((h ^ h >>> 15) >>> 0).toString(36);\n}\n\nexport { murmur2 as default };\n","/*\n\nBased off glamor's StyleSheet, thanks Sunil ❤️\n\nhigh performance StyleSheet for css-in-js systems\n\n- uses multiple style tags behind the scenes for millions of rules\n- uses `insertRule` for appending in production for *much* faster performance\n\n// usage\n\nimport { StyleSheet } from '@emotion/sheet'\n\nlet styleSheet = new StyleSheet({ key: '', container: document.head })\n\nstyleSheet.insert('#box { border: 1px solid red; }')\n- appends a css rule into the stylesheet\n\nstyleSheet.flush()\n- empties the stylesheet of all its contents\n\n*/\n// $FlowFixMe\nfunction sheetForTag(tag) {\n if (tag.sheet) {\n // $FlowFixMe\n return tag.sheet;\n } // this weirdness brought to you by firefox\n\n /* istanbul ignore next */\n\n\n for (var i = 0; i < document.styleSheets.length; i++) {\n if (document.styleSheets[i].ownerNode === tag) {\n // $FlowFixMe\n return document.styleSheets[i];\n }\n }\n}\n\nfunction createStyleElement(options) {\n var tag = document.createElement('style');\n tag.setAttribute('data-emotion', options.key);\n\n if (options.nonce !== undefined) {\n tag.setAttribute('nonce', options.nonce);\n }\n\n tag.appendChild(document.createTextNode(''));\n tag.setAttribute('data-s', '');\n return tag;\n}\n\nvar StyleSheet = /*#__PURE__*/function () {\n // Using Node instead of HTMLElement since container may be a ShadowRoot\n function StyleSheet(options) {\n var _this = this;\n\n this._insertTag = function (tag) {\n var before;\n\n if (_this.tags.length === 0) {\n if (_this.insertionPoint) {\n before = _this.insertionPoint.nextSibling;\n } else if (_this.prepend) {\n before = _this.container.firstChild;\n } else {\n before = _this.before;\n }\n } else {\n before = _this.tags[_this.tags.length - 1].nextSibling;\n }\n\n _this.container.insertBefore(tag, before);\n\n _this.tags.push(tag);\n };\n\n this.isSpeedy = options.speedy === undefined ? process.env.NODE_ENV === 'production' : options.speedy;\n this.tags = [];\n this.ctr = 0;\n this.nonce = options.nonce; // key is the value of the data-emotion attribute, it's used to identify different sheets\n\n this.key = options.key;\n this.container = options.container;\n this.prepend = options.prepend;\n this.insertionPoint = options.insertionPoint;\n this.before = null;\n }\n\n var _proto = StyleSheet.prototype;\n\n _proto.hydrate = function hydrate(nodes) {\n nodes.forEach(this._insertTag);\n };\n\n _proto.insert = function insert(rule) {\n // the max length is how many rules we have per style tag, it's 65000 in speedy mode\n // it's 1 in dev because we insert source maps that map a single rule to a location\n // and you can only have one source map per style tag\n if (this.ctr % (this.isSpeedy ? 65000 : 1) === 0) {\n this._insertTag(createStyleElement(this));\n }\n\n var tag = this.tags[this.tags.length - 1];\n\n if (process.env.NODE_ENV !== 'production') {\n var isImportRule = rule.charCodeAt(0) === 64 && rule.charCodeAt(1) === 105;\n\n if (isImportRule && this._alreadyInsertedOrderInsensitiveRule) {\n // this would only cause problem in speedy mode\n // but we don't want enabling speedy to affect the observable behavior\n // so we report this error at all times\n console.error(\"You're attempting to insert the following rule:\\n\" + rule + '\\n\\n`@import` rules must be before all other types of rules in a stylesheet but other rules have already been inserted. Please ensure that `@import` rules are before all other rules.');\n }\n this._alreadyInsertedOrderInsensitiveRule = this._alreadyInsertedOrderInsensitiveRule || !isImportRule;\n }\n\n if (this.isSpeedy) {\n var sheet = sheetForTag(tag);\n\n try {\n // this is the ultrafast version, works across browsers\n // the big drawback is that the css won't be editable in devtools\n sheet.insertRule(rule, sheet.cssRules.length);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production' && !/:(-moz-placeholder|-moz-focus-inner|-moz-focusring|-ms-input-placeholder|-moz-read-write|-moz-read-only|-ms-clear|-ms-expand|-ms-reveal){/.test(rule)) {\n console.error(\"There was a problem inserting the following rule: \\\"\" + rule + \"\\\"\", e);\n }\n }\n } else {\n tag.appendChild(document.createTextNode(rule));\n }\n\n this.ctr++;\n };\n\n _proto.flush = function flush() {\n // $FlowFixMe\n this.tags.forEach(function (tag) {\n return tag.parentNode && tag.parentNode.removeChild(tag);\n });\n this.tags = [];\n this.ctr = 0;\n\n if (process.env.NODE_ENV !== 'production') {\n this._alreadyInsertedOrderInsensitiveRule = false;\n }\n };\n\n return StyleSheet;\n}();\n\nexport { StyleSheet };\n","import memoize from '@emotion/memoize';\n\nvar reactPropsRegex = /^((children|dangerouslySetInnerHTML|key|ref|autoFocus|defaultValue|defaultChecked|innerHTML|suppressContentEditableWarning|suppressHydrationWarning|valueLink|abbr|accept|acceptCharset|accessKey|action|allow|allowUserMedia|allowPaymentRequest|allowFullScreen|allowTransparency|alt|async|autoComplete|autoPlay|capture|cellPadding|cellSpacing|challenge|charSet|checked|cite|classID|className|cols|colSpan|content|contentEditable|contextMenu|controls|controlsList|coords|crossOrigin|data|dateTime|decoding|default|defer|dir|disabled|disablePictureInPicture|download|draggable|encType|enterKeyHint|form|formAction|formEncType|formMethod|formNoValidate|formTarget|frameBorder|headers|height|hidden|high|href|hrefLang|htmlFor|httpEquiv|id|inputMode|integrity|is|keyParams|keyType|kind|label|lang|list|loading|loop|low|marginHeight|marginWidth|max|maxLength|media|mediaGroup|method|min|minLength|multiple|muted|name|nonce|noValidate|open|optimum|pattern|placeholder|playsInline|poster|preload|profile|radioGroup|readOnly|referrerPolicy|rel|required|reversed|role|rows|rowSpan|sandbox|scope|scoped|scrolling|seamless|selected|shape|size|sizes|slot|span|spellCheck|src|srcDoc|srcLang|srcSet|start|step|style|summary|tabIndex|target|title|translate|type|useMap|value|width|wmode|wrap|about|datatype|inlist|prefix|property|resource|typeof|vocab|autoCapitalize|autoCorrect|autoSave|color|incremental|fallback|inert|itemProp|itemScope|itemType|itemID|itemRef|on|option|results|security|unselectable|accentHeight|accumulate|additive|alignmentBaseline|allowReorder|alphabetic|amplitude|arabicForm|ascent|attributeName|attributeType|autoReverse|azimuth|baseFrequency|baselineShift|baseProfile|bbox|begin|bias|by|calcMode|capHeight|clip|clipPathUnits|clipPath|clipRule|colorInterpolation|colorInterpolationFilters|colorProfile|colorRendering|contentScriptType|contentStyleType|cursor|cx|cy|d|decelerate|descent|diffuseConstant|direction|display|divisor|dominantBaseline|dur|dx|dy|edgeMode|elevation|enableBackground|end|exponent|externalResourcesRequired|fill|fillOpacity|fillRule|filter|filterRes|filterUnits|floodColor|floodOpacity|focusable|fontFamily|fontSize|fontSizeAdjust|fontStretch|fontStyle|fontVariant|fontWeight|format|from|fr|fx|fy|g1|g2|glyphName|glyphOrientationHorizontal|glyphOrientationVertical|glyphRef|gradientTransform|gradientUnits|hanging|horizAdvX|horizOriginX|ideographic|imageRendering|in|in2|intercept|k|k1|k2|k3|k4|kernelMatrix|kernelUnitLength|kerning|keyPoints|keySplines|keyTimes|lengthAdjust|letterSpacing|lightingColor|limitingConeAngle|local|markerEnd|markerMid|markerStart|markerHeight|markerUnits|markerWidth|mask|maskContentUnits|maskUnits|mathematical|mode|numOctaves|offset|opacity|operator|order|orient|orientation|origin|overflow|overlinePosition|overlineThickness|panose1|paintOrder|pathLength|patternContentUnits|patternTransform|patternUnits|pointerEvents|points|pointsAtX|pointsAtY|pointsAtZ|preserveAlpha|preserveAspectRatio|primitiveUnits|r|radius|refX|refY|renderingIntent|repeatCount|repeatDur|requiredExtensions|requiredFeatures|restart|result|rotate|rx|ry|scale|seed|shapeRendering|slope|spacing|specularConstant|specularExponent|speed|spreadMethod|startOffset|stdDeviation|stemh|stemv|stitchTiles|stopColor|stopOpacity|strikethroughPosition|strikethroughThickness|string|stroke|strokeDasharray|strokeDashoffset|strokeLinecap|strokeLinejoin|strokeMiterlimit|strokeOpacity|strokeWidth|surfaceScale|systemLanguage|tableValues|targetX|targetY|textAnchor|textDecoration|textRendering|textLength|to|transform|u1|u2|underlinePosition|underlineThickness|unicode|unicodeBidi|unicodeRange|unitsPerEm|vAlphabetic|vHanging|vIdeographic|vMathematical|values|vectorEffect|version|vertAdvY|vertOriginX|vertOriginY|viewBox|viewTarget|visibility|widths|wordSpacing|writingMode|x|xHeight|x1|x2|xChannelSelector|xlinkActuate|xlinkArcrole|xlinkHref|xlinkRole|xlinkShow|xlinkTitle|xlinkType|xmlBase|xmlns|xmlnsXlink|xmlLang|xmlSpace|y|y1|y2|yChannelSelector|z|zoomAndPan|for|class|autofocus)|(([Dd][Aa][Tt][Aa]|[Aa][Rr][Ii][Aa]|x)-.*))$/; // https://esbench.com/bench/5bfee68a4cd7e6009ef61d23\n\nvar isPropValid = /* #__PURE__ */memoize(function (prop) {\n return reactPropsRegex.test(prop) || prop.charCodeAt(0) === 111\n /* o */\n && prop.charCodeAt(1) === 110\n /* n */\n && prop.charCodeAt(2) < 91;\n}\n/* Z+1 */\n);\n\nexport { isPropValid as default };\n","import _extends from '@babel/runtime/helpers/esm/extends';\nimport { useContext, createElement, Fragment } from 'react';\nimport isPropValid from '@emotion/is-prop-valid';\nimport { withEmotionCache, ThemeContext } from '@emotion/react';\nimport { getRegisteredStyles, registerStyles, insertStyles } from '@emotion/utils';\nimport { serializeStyles } from '@emotion/serialize';\nimport { useInsertionEffectAlwaysWithSyncFallback } from '@emotion/use-insertion-effect-with-fallbacks';\n\nvar testOmitPropsOnStringTag = isPropValid;\n\nvar testOmitPropsOnComponent = function testOmitPropsOnComponent(key) {\n return key !== 'theme';\n};\n\nvar getDefaultShouldForwardProp = function getDefaultShouldForwardProp(tag) {\n return typeof tag === 'string' && // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96 ? testOmitPropsOnStringTag : testOmitPropsOnComponent;\n};\nvar composeShouldForwardProps = function composeShouldForwardProps(tag, options, isReal) {\n var shouldForwardProp;\n\n if (options) {\n var optionsShouldForwardProp = options.shouldForwardProp;\n shouldForwardProp = tag.__emotion_forwardProp && optionsShouldForwardProp ? function (propName) {\n return tag.__emotion_forwardProp(propName) && optionsShouldForwardProp(propName);\n } : optionsShouldForwardProp;\n }\n\n if (typeof shouldForwardProp !== 'function' && isReal) {\n shouldForwardProp = tag.__emotion_forwardProp;\n }\n\n return shouldForwardProp;\n};\n\nvar ILLEGAL_ESCAPE_SEQUENCE_ERROR = \"You have illegal escape sequence in your template literal, most likely inside content's property value.\\nBecause you write your CSS inside a JavaScript string you actually have to do double escaping, so for example \\\"content: '\\\\00d7';\\\" should become \\\"content: '\\\\\\\\00d7';\\\".\\nYou can read more about this here:\\nhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Template_literals#ES2018_revision_of_illegal_escape_sequences\";\n\nvar Insertion = function Insertion(_ref) {\n var cache = _ref.cache,\n serialized = _ref.serialized,\n isStringTag = _ref.isStringTag;\n registerStyles(cache, serialized, isStringTag);\n var rules = useInsertionEffectAlwaysWithSyncFallback(function () {\n return insertStyles(cache, serialized, isStringTag);\n });\n\n return null;\n};\n\nvar createStyled = function createStyled(tag, options) {\n if (process.env.NODE_ENV !== 'production') {\n if (tag === undefined) {\n throw new Error('You are trying to create a styled element with an undefined component.\\nYou may have forgotten to import it.');\n }\n }\n\n var isReal = tag.__emotion_real === tag;\n var baseTag = isReal && tag.__emotion_base || tag;\n var identifierName;\n var targetClassName;\n\n if (options !== undefined) {\n identifierName = options.label;\n targetClassName = options.target;\n }\n\n var shouldForwardProp = composeShouldForwardProps(tag, options, isReal);\n var defaultShouldForwardProp = shouldForwardProp || getDefaultShouldForwardProp(baseTag);\n var shouldUseAs = !defaultShouldForwardProp('as');\n return function () {\n var args = arguments;\n var styles = isReal && tag.__emotion_styles !== undefined ? tag.__emotion_styles.slice(0) : [];\n\n if (identifierName !== undefined) {\n styles.push(\"label:\" + identifierName + \";\");\n }\n\n if (args[0] == null || args[0].raw === undefined) {\n styles.push.apply(styles, args);\n } else {\n if (process.env.NODE_ENV !== 'production' && args[0][0] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[0][0]);\n var len = args.length;\n var i = 1;\n\n for (; i < len; i++) {\n if (process.env.NODE_ENV !== 'production' && args[0][i] === undefined) {\n console.error(ILLEGAL_ESCAPE_SEQUENCE_ERROR);\n }\n\n styles.push(args[i], args[0][i]);\n }\n } // $FlowFixMe: we need to cast StatelessFunctionalComponent to our PrivateStyledComponent class\n\n\n var Styled = withEmotionCache(function (props, cache, ref) {\n var FinalTag = shouldUseAs && props.as || baseTag;\n var className = '';\n var classInterpolations = [];\n var mergedProps = props;\n\n if (props.theme == null) {\n mergedProps = {};\n\n for (var key in props) {\n mergedProps[key] = props[key];\n }\n\n mergedProps.theme = useContext(ThemeContext);\n }\n\n if (typeof props.className === 'string') {\n className = getRegisteredStyles(cache.registered, classInterpolations, props.className);\n } else if (props.className != null) {\n className = props.className + \" \";\n }\n\n var serialized = serializeStyles(styles.concat(classInterpolations), cache.registered, mergedProps);\n className += cache.key + \"-\" + serialized.name;\n\n if (targetClassName !== undefined) {\n className += \" \" + targetClassName;\n }\n\n var finalShouldForwardProp = shouldUseAs && shouldForwardProp === undefined ? getDefaultShouldForwardProp(FinalTag) : defaultShouldForwardProp;\n var newProps = {};\n\n for (var _key in props) {\n if (shouldUseAs && _key === 'as') continue;\n\n if ( // $FlowFixMe\n finalShouldForwardProp(_key)) {\n newProps[_key] = props[_key];\n }\n }\n\n newProps.className = className;\n newProps.ref = ref;\n return /*#__PURE__*/createElement(Fragment, null, /*#__PURE__*/createElement(Insertion, {\n cache: cache,\n serialized: serialized,\n isStringTag: typeof FinalTag === 'string'\n }), /*#__PURE__*/createElement(FinalTag, newProps));\n });\n Styled.displayName = identifierName !== undefined ? identifierName : \"Styled(\" + (typeof baseTag === 'string' ? baseTag : baseTag.displayName || baseTag.name || 'Component') + \")\";\n Styled.defaultProps = tag.defaultProps;\n Styled.__emotion_real = Styled;\n Styled.__emotion_base = baseTag;\n Styled.__emotion_styles = styles;\n Styled.__emotion_forwardProp = shouldForwardProp;\n Object.defineProperty(Styled, 'toString', {\n value: function value() {\n if (targetClassName === undefined && process.env.NODE_ENV !== 'production') {\n return 'NO_COMPONENT_SELECTOR';\n } // $FlowFixMe: coerce undefined to string\n\n\n return \".\" + targetClassName;\n }\n });\n\n Styled.withComponent = function (nextTag, nextOptions) {\n return createStyled(nextTag, _extends({}, options, nextOptions, {\n shouldForwardProp: composeShouldForwardProps(Styled, nextOptions, true)\n })).apply(void 0, styles);\n };\n\n return Styled;\n };\n};\n\nexport default createStyled;\n","import '@babel/runtime/helpers/extends';\nimport 'react';\nimport '@emotion/is-prop-valid';\nimport createStyled from '../base/dist/emotion-styled-base.browser.esm.js';\nimport '@emotion/react';\nimport '@emotion/utils';\nimport '@emotion/serialize';\nimport '@emotion/use-insertion-effect-with-fallbacks';\n\nvar tags = ['a', 'abbr', 'address', 'area', 'article', 'aside', 'audio', 'b', 'base', 'bdi', 'bdo', 'big', 'blockquote', 'body', 'br', 'button', 'canvas', 'caption', 'cite', 'code', 'col', 'colgroup', 'data', 'datalist', 'dd', 'del', 'details', 'dfn', 'dialog', 'div', 'dl', 'dt', 'em', 'embed', 'fieldset', 'figcaption', 'figure', 'footer', 'form', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'head', 'header', 'hgroup', 'hr', 'html', 'i', 'iframe', 'img', 'input', 'ins', 'kbd', 'keygen', 'label', 'legend', 'li', 'link', 'main', 'map', 'mark', 'marquee', 'menu', 'menuitem', 'meta', 'meter', 'nav', 'noscript', 'object', 'ol', 'optgroup', 'option', 'output', 'p', 'param', 'picture', 'pre', 'progress', 'q', 'rp', 'rt', 'ruby', 's', 'samp', 'script', 'section', 'select', 'small', 'source', 'span', 'strong', 'style', 'sub', 'summary', 'sup', 'table', 'tbody', 'td', 'textarea', 'tfoot', 'th', 'thead', 'time', 'title', 'tr', 'track', 'u', 'ul', 'var', 'video', 'wbr', // SVG\n'circle', 'clipPath', 'defs', 'ellipse', 'foreignObject', 'g', 'image', 'line', 'linearGradient', 'mask', 'path', 'pattern', 'polygon', 'polyline', 'radialGradient', 'rect', 'stop', 'svg', 'text', 'tspan'];\n\nvar newStyled = createStyled.bind();\ntags.forEach(function (tagName) {\n // $FlowFixMe: we can ignore this because its exposed type is defined by the CreateStyled type\n newStyled[tagName] = newStyled(tagName);\n});\n\nexport default newStyled;\n","import * as React from 'react';\n\nvar syncFallback = function syncFallback(create) {\n return create();\n};\n\nvar useInsertionEffect = React['useInsertion' + 'Effect'] ? React['useInsertion' + 'Effect'] : false;\nvar useInsertionEffectAlwaysWithSyncFallback = useInsertionEffect || syncFallback;\nvar useInsertionEffectWithLayoutFallback = useInsertionEffect || React.useLayoutEffect;\n\nexport { useInsertionEffectAlwaysWithSyncFallback, useInsertionEffectWithLayoutFallback };\n","var isBrowser = \"object\" !== 'undefined';\nfunction getRegisteredStyles(registered, registeredStyles, classNames) {\n var rawClassName = '';\n classNames.split(' ').forEach(function (className) {\n if (registered[className] !== undefined) {\n registeredStyles.push(registered[className] + \";\");\n } else {\n rawClassName += className + \" \";\n }\n });\n return rawClassName;\n}\nvar registerStyles = function registerStyles(cache, serialized, isStringTag) {\n var className = cache.key + \"-\" + serialized.name;\n\n if ( // we only need to add the styles to the registered cache if the\n // class name could be used further down\n // the tree but if it's a string tag, we know it won't\n // so we don't have to add it to registered cache.\n // this improves memory usage since we can avoid storing the whole style string\n (isStringTag === false || // we need to always store it if we're in compat mode and\n // in node since emotion-server relies on whether a style is in\n // the registered cache to know whether a style is global or not\n // also, note that this check will be dead code eliminated in the browser\n isBrowser === false ) && cache.registered[className] === undefined) {\n cache.registered[className] = serialized.styles;\n }\n};\nvar insertStyles = function insertStyles(cache, serialized, isStringTag) {\n registerStyles(cache, serialized, isStringTag);\n var className = cache.key + \"-\" + serialized.name;\n\n if (cache.inserted[serialized.name] === undefined) {\n var current = serialized;\n\n do {\n cache.insert(serialized === current ? \".\" + className : '', current, cache.sheet, true);\n\n current = current.next;\n } while (current !== undefined);\n }\n};\n\nexport { getRegisteredStyles, insertStyles, registerStyles };\n","import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { elementAcceptingRef, exactProp, unstable_ownerDocument as ownerDocument, unstable_useForkRef as useForkRef, unstable_useEventCallback as useEventCallback } from '@mui/utils';\n\n// TODO: return `EventHandlerName extends `on${infer EventName}` ? Lowercase : never` once generatePropTypes runs with TS 4.1\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction mapEventPropToEvent(eventProp) {\n return eventProp.substring(2).toLowerCase();\n}\nfunction clickedRootScrollbar(event, doc) {\n return doc.documentElement.clientWidth < event.clientX || doc.documentElement.clientHeight < event.clientY;\n}\n/**\n * Listen for click events that occur somewhere in the document, outside of the element itself.\n * For instance, if you need to hide a menu when people click anywhere else on your page.\n *\n * Demos:\n *\n * - [Click-Away Listener](https://mui.com/base/react-click-away-listener/)\n *\n * API:\n *\n * - [ClickAwayListener API](https://mui.com/base/api/click-away-listener/)\n */\nfunction ClickAwayListener(props) {\n const {\n children,\n disableReactTree = false,\n mouseEvent = 'onClick',\n onClickAway,\n touchEvent = 'onTouchEnd'\n } = props;\n const movedRef = React.useRef(false);\n const nodeRef = React.useRef(null);\n const activatedRef = React.useRef(false);\n const syntheticEventRef = React.useRef(false);\n React.useEffect(() => {\n // Ensure that this component is not \"activated\" synchronously.\n // https://github.com/facebook/react/issues/20074\n setTimeout(() => {\n activatedRef.current = true;\n }, 0);\n return () => {\n activatedRef.current = false;\n };\n }, []);\n const handleRef = useForkRef(\n // @ts-expect-error TODO upstream fix\n children.ref, nodeRef);\n\n // The handler doesn't take event.defaultPrevented into account:\n //\n // event.preventDefault() is meant to stop default behaviors like\n // clicking a checkbox to check it, hitting a button to submit a form,\n // and hitting left arrow to move the cursor in a text input etc.\n // Only special HTML elements have these default behaviors.\n const handleClickAway = useEventCallback(event => {\n // Given developers can stop the propagation of the synthetic event,\n // we can only be confident with a positive value.\n const insideReactTree = syntheticEventRef.current;\n syntheticEventRef.current = false;\n const doc = ownerDocument(nodeRef.current);\n\n // 1. IE11 support, which trigger the handleClickAway even after the unbind\n // 2. The child might render null.\n // 3. Behave like a blur listener.\n if (!activatedRef.current || !nodeRef.current || 'clientX' in event && clickedRootScrollbar(event, doc)) {\n return;\n }\n\n // Do not act if user performed touchmove\n if (movedRef.current) {\n movedRef.current = false;\n return;\n }\n let insideDOM;\n\n // If not enough, can use https://github.com/DieterHolvoet/event-propagation-path/blob/master/propagationPath.js\n if (event.composedPath) {\n insideDOM = event.composedPath().indexOf(nodeRef.current) > -1;\n } else {\n insideDOM = !doc.documentElement.contains(\n // @ts-expect-error returns `false` as intended when not dispatched from a Node\n event.target) || nodeRef.current.contains(\n // @ts-expect-error returns `false` as intended when not dispatched from a Node\n event.target);\n }\n if (!insideDOM && (disableReactTree || !insideReactTree)) {\n onClickAway(event);\n }\n });\n\n // Keep track of mouse/touch events that bubbled up through the portal.\n const createHandleSynthetic = handlerName => event => {\n syntheticEventRef.current = true;\n const childrenPropsHandler = children.props[handlerName];\n if (childrenPropsHandler) {\n childrenPropsHandler(event);\n }\n };\n const childrenProps = {\n ref: handleRef\n };\n if (touchEvent !== false) {\n childrenProps[touchEvent] = createHandleSynthetic(touchEvent);\n }\n React.useEffect(() => {\n if (touchEvent !== false) {\n const mappedTouchEvent = mapEventPropToEvent(touchEvent);\n const doc = ownerDocument(nodeRef.current);\n const handleTouchMove = () => {\n movedRef.current = true;\n };\n doc.addEventListener(mappedTouchEvent, handleClickAway);\n doc.addEventListener('touchmove', handleTouchMove);\n return () => {\n doc.removeEventListener(mappedTouchEvent, handleClickAway);\n doc.removeEventListener('touchmove', handleTouchMove);\n };\n }\n return undefined;\n }, [handleClickAway, touchEvent]);\n if (mouseEvent !== false) {\n childrenProps[mouseEvent] = createHandleSynthetic(mouseEvent);\n }\n React.useEffect(() => {\n if (mouseEvent !== false) {\n const mappedMouseEvent = mapEventPropToEvent(mouseEvent);\n const doc = ownerDocument(nodeRef.current);\n doc.addEventListener(mappedMouseEvent, handleClickAway);\n return () => {\n doc.removeEventListener(mappedMouseEvent, handleClickAway);\n };\n }\n return undefined;\n }, [handleClickAway, mouseEvent]);\n return /*#__PURE__*/_jsx(React.Fragment, {\n children: /*#__PURE__*/React.cloneElement(children, childrenProps)\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? ClickAwayListener.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The wrapped element.\n */\n children: elementAcceptingRef.isRequired,\n /**\n * If `true`, the React tree is ignored and only the DOM tree is considered.\n * This prop changes how portaled elements are handled.\n * @default false\n */\n disableReactTree: PropTypes.bool,\n /**\n * The mouse event to listen to. You can disable the listener by providing `false`.\n * @default 'onClick'\n */\n mouseEvent: PropTypes.oneOf(['onClick', 'onMouseDown', 'onMouseUp', 'onPointerDown', 'onPointerUp', false]),\n /**\n * Callback fired when a \"click away\" event is detected.\n */\n onClickAway: PropTypes.func.isRequired,\n /**\n * The touch event to listen to. You can disable the listener by providing `false`.\n * @default 'onTouchEnd'\n */\n touchEvent: PropTypes.oneOf(['onTouchEnd', 'onTouchStart', false])\n} : void 0;\nif (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line\n ClickAwayListener['propTypes' + ''] = exactProp(ClickAwayListener.propTypes);\n}\nexport default ClickAwayListener;","/* eslint-disable consistent-return, jsx-a11y/no-noninteractive-tabindex */\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { exactProp, elementAcceptingRef, unstable_useForkRef as useForkRef, unstable_ownerDocument as ownerDocument } from '@mui/utils';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\n// Inspired by https://github.com/focus-trap/tabbable\nconst candidatesSelector = ['input', 'select', 'textarea', 'a[href]', 'button', '[tabindex]', 'audio[controls]', 'video[controls]', '[contenteditable]:not([contenteditable=\"false\"])'].join(',');\nfunction getTabIndex(node) {\n const tabindexAttr = parseInt(node.getAttribute('tabindex') || '', 10);\n if (!Number.isNaN(tabindexAttr)) {\n return tabindexAttr;\n }\n\n // Browsers do not return `tabIndex` correctly for contentEditable nodes;\n // https://bugs.chromium.org/p/chromium/issues/detail?id=661108&q=contenteditable%20tabindex&can=2\n // so if they don't have a tabindex attribute specifically set, assume it's 0.\n // in Chrome,
,
children such as `TableCell`.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, the table row will shade on hover.\n * @default false\n */\n hover: PropTypes.bool,\n /**\n * If `true`, the table row will have the selected shading.\n * @default false\n */\n selected: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default TableRow;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getTableUtilityClass(slot) {\n return generateUtilityClass('MuiTable', slot);\n}\nconst tableClasses = generateUtilityClasses('MuiTable', ['root', 'stickyHeader']);\nexport default tableClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"component\", \"padding\", \"size\", \"stickyHeader\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport TableContext from './TableContext';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { getTableUtilityClass } from './tableClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n stickyHeader\n } = ownerState;\n const slots = {\n root: ['root', stickyHeader && 'stickyHeader']\n };\n return composeClasses(slots, getTableUtilityClass, classes);\n};\nconst TableRoot = styled('table', {\n name: 'MuiTable',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.stickyHeader && styles.stickyHeader];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n display: 'table',\n width: '100%',\n borderCollapse: 'collapse',\n borderSpacing: 0,\n '& caption': _extends({}, theme.typography.body2, {\n padding: theme.spacing(2),\n color: (theme.vars || theme).palette.text.secondary,\n textAlign: 'left',\n captionSide: 'bottom'\n })\n}, ownerState.stickyHeader && {\n borderCollapse: 'separate'\n}));\nconst defaultComponent = 'table';\nconst Table = /*#__PURE__*/React.forwardRef(function Table(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTable'\n });\n const {\n className,\n component = defaultComponent,\n padding = 'normal',\n size = 'medium',\n stickyHeader = false\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n component,\n padding,\n size,\n stickyHeader\n });\n const classes = useUtilityClasses(ownerState);\n const table = React.useMemo(() => ({\n padding,\n size,\n stickyHeader\n }), [padding, size, stickyHeader]);\n return /*#__PURE__*/_jsx(TableContext.Provider, {\n value: table,\n children: /*#__PURE__*/_jsx(TableRoot, _extends({\n as: component,\n role: component === defaultComponent ? null : 'table',\n ref: ref,\n className: clsx(classes.root, className),\n ownerState: ownerState\n }, other))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Table.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the table, normally `TableHead` and `TableBody`.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * Allows TableCells to inherit padding of the Table.\n * @default 'normal'\n */\n padding: PropTypes.oneOf(['checkbox', 'none', 'normal']),\n /**\n * Allows TableCells to inherit size of the Table.\n * @default 'medium'\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n /**\n * Set the header sticky.\n *\n * ⚠️ It doesn't work with IE11.\n * @default false\n */\n stickyHeader: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default Table;","import * as React from 'react';\n\n/**\n * @ignore - internal component.\n */\nconst TableContext = /*#__PURE__*/React.createContext();\nif (process.env.NODE_ENV !== 'production') {\n TableContext.displayName = 'TableContext';\n}\nexport default TableContext;","import * as React from 'react';\n\n/**\n * @ignore - internal component.\n */\nconst Tablelvl2Context = /*#__PURE__*/React.createContext();\nif (process.env.NODE_ENV !== 'production') {\n Tablelvl2Context.displayName = 'Tablelvl2Context';\n}\nexport default Tablelvl2Context;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getTextFieldUtilityClass(slot) {\n return generateUtilityClass('MuiTextField', slot);\n}\nconst textFieldClasses = generateUtilityClasses('MuiTextField', ['root']);\nexport default textFieldClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"autoComplete\", \"autoFocus\", \"children\", \"className\", \"color\", \"defaultValue\", \"disabled\", \"error\", \"FormHelperTextProps\", \"fullWidth\", \"helperText\", \"id\", \"InputLabelProps\", \"inputProps\", \"InputProps\", \"inputRef\", \"label\", \"maxRows\", \"minRows\", \"multiline\", \"name\", \"onBlur\", \"onChange\", \"onFocus\", \"placeholder\", \"required\", \"rows\", \"select\", \"SelectProps\", \"type\", \"value\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport { refType, unstable_useId as useId } from '@mui/utils';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport Input from '../Input';\nimport FilledInput from '../FilledInput';\nimport OutlinedInput from '../OutlinedInput';\nimport InputLabel from '../InputLabel';\nimport FormControl from '../FormControl';\nimport FormHelperText from '../FormHelperText';\nimport Select from '../Select';\nimport { getTextFieldUtilityClass } from './textFieldClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst variantComponent = {\n standard: Input,\n filled: FilledInput,\n outlined: OutlinedInput\n};\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTextFieldUtilityClass, classes);\n};\nconst TextFieldRoot = styled(FormControl, {\n name: 'MuiTextField',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({});\n\n/**\n * The `TextField` is a convenience wrapper for the most common cases (80%).\n * It cannot be all things to all people, otherwise the API would grow out of control.\n *\n * ## Advanced Configuration\n *\n * It's important to understand that the text field is a simple abstraction\n * on top of the following components:\n *\n * - [FormControl](/material-ui/api/form-control/)\n * - [InputLabel](/material-ui/api/input-label/)\n * - [FilledInput](/material-ui/api/filled-input/)\n * - [OutlinedInput](/material-ui/api/outlined-input/)\n * - [Input](/material-ui/api/input/)\n * - [FormHelperText](/material-ui/api/form-helper-text/)\n *\n * If you wish to alter the props applied to the `input` element, you can do so as follows:\n *\n * ```jsx\n * const inputProps = {\n * step: 300,\n * };\n *\n * return ;\n * ```\n *\n * For advanced cases, please look at the source of TextField by clicking on the\n * \"Edit this page\" button above. Consider either:\n *\n * - using the upper case props for passing values directly to the components\n * - using the underlying components directly as shown in the demos\n */\nconst TextField = /*#__PURE__*/React.forwardRef(function TextField(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTextField'\n });\n const {\n autoComplete,\n autoFocus = false,\n children,\n className,\n color = 'primary',\n defaultValue,\n disabled = false,\n error = false,\n FormHelperTextProps,\n fullWidth = false,\n helperText,\n id: idOverride,\n InputLabelProps,\n inputProps,\n InputProps,\n inputRef,\n label,\n maxRows,\n minRows,\n multiline = false,\n name,\n onBlur,\n onChange,\n onFocus,\n placeholder,\n required = false,\n rows,\n select = false,\n SelectProps,\n type,\n value,\n variant = 'outlined'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n autoFocus,\n color,\n disabled,\n error,\n fullWidth,\n multiline,\n required,\n select,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n if (process.env.NODE_ENV !== 'production') {\n if (select && !children) {\n console.error('MUI: `children` must be passed when using the `TextField` component with `select`.');\n }\n }\n const InputMore = {};\n if (variant === 'outlined') {\n if (InputLabelProps && typeof InputLabelProps.shrink !== 'undefined') {\n InputMore.notched = InputLabelProps.shrink;\n }\n InputMore.label = label;\n }\n if (select) {\n // unset defaults from textbox inputs\n if (!SelectProps || !SelectProps.native) {\n InputMore.id = undefined;\n }\n InputMore['aria-describedby'] = undefined;\n }\n const id = useId(idOverride);\n const helperTextId = helperText && id ? `${id}-helper-text` : undefined;\n const inputLabelId = label && id ? `${id}-label` : undefined;\n const InputComponent = variantComponent[variant];\n const InputElement = /*#__PURE__*/_jsx(InputComponent, _extends({\n \"aria-describedby\": helperTextId,\n autoComplete: autoComplete,\n autoFocus: autoFocus,\n defaultValue: defaultValue,\n fullWidth: fullWidth,\n multiline: multiline,\n name: name,\n rows: rows,\n maxRows: maxRows,\n minRows: minRows,\n type: type,\n value: value,\n id: id,\n inputRef: inputRef,\n onBlur: onBlur,\n onChange: onChange,\n onFocus: onFocus,\n placeholder: placeholder,\n inputProps: inputProps\n }, InputMore, InputProps));\n return /*#__PURE__*/_jsxs(TextFieldRoot, _extends({\n className: clsx(classes.root, className),\n disabled: disabled,\n error: error,\n fullWidth: fullWidth,\n ref: ref,\n required: required,\n color: color,\n variant: variant,\n ownerState: ownerState\n }, other, {\n children: [label != null && label !== '' && /*#__PURE__*/_jsx(InputLabel, _extends({\n htmlFor: id,\n id: inputLabelId\n }, InputLabelProps, {\n children: label\n })), select ? /*#__PURE__*/_jsx(Select, _extends({\n \"aria-describedby\": helperTextId,\n id: id,\n labelId: inputLabelId,\n value: value,\n input: InputElement\n }, SelectProps, {\n children: children\n })) : InputElement, helperText && /*#__PURE__*/_jsx(FormHelperText, _extends({\n id: helperTextId\n }, FormHelperTextProps, {\n children: helperText\n }))]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TextField.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * This prop helps users to fill forms faster, especially on mobile devices.\n * The name can be confusing, as it's more like an autofill.\n * You can learn more about it [following the specification](https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#autofill).\n */\n autoComplete: PropTypes.string,\n /**\n * If `true`, the `input` element is focused during the first mount.\n * @default false\n */\n autoFocus: PropTypes.bool,\n /**\n * @ignore\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The color of the component.\n * It supports both default and custom theme colors, which can be added as shown in the\n * [palette customization guide](https://mui.com/material-ui/customization/palette/#adding-new-colors).\n * @default 'primary'\n */\n color: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['primary', 'secondary', 'error', 'info', 'success', 'warning']), PropTypes.string]),\n /**\n * The default value. Use when the component is not controlled.\n */\n defaultValue: PropTypes.any,\n /**\n * If `true`, the component is disabled.\n * @default false\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the label is displayed in an error state.\n * @default false\n */\n error: PropTypes.bool,\n /**\n * Props applied to the [`FormHelperText`](/material-ui/api/form-helper-text/) element.\n */\n FormHelperTextProps: PropTypes.object,\n /**\n * If `true`, the input will take up the full width of its container.\n * @default false\n */\n fullWidth: PropTypes.bool,\n /**\n * The helper text content.\n */\n helperText: PropTypes.node,\n /**\n * The id of the `input` element.\n * Use this prop to make `label` and `helperText` accessible for screen readers.\n */\n id: PropTypes.string,\n /**\n * Props applied to the [`InputLabel`](/material-ui/api/input-label/) element.\n * Pointer events like `onClick` are enabled if and only if `shrink` is `true`.\n */\n InputLabelProps: PropTypes.object,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n /**\n * Props applied to the Input element.\n * It will be a [`FilledInput`](/material-ui/api/filled-input/),\n * [`OutlinedInput`](/material-ui/api/outlined-input/) or [`Input`](/material-ui/api/input/)\n * component depending on the `variant` prop value.\n */\n InputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /**\n * The label content.\n */\n label: PropTypes.node,\n /**\n * If `dense` or `normal`, will adjust vertical spacing of this and contained components.\n * @default 'none'\n */\n margin: PropTypes.oneOf(['dense', 'none', 'normal']),\n /**\n * Maximum number of rows to display when multiline option is set to true.\n */\n maxRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * Minimum number of rows to display when multiline option is set to true.\n */\n minRows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * If `true`, a `textarea` element is rendered instead of an input.\n * @default false\n */\n multiline: PropTypes.bool,\n /**\n * Name attribute of the `input` element.\n */\n name: PropTypes.string,\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n /**\n * Callback fired when the value is changed.\n *\n * @param {object} event The event source of the callback.\n * You can pull out the new value by accessing `event.target.value` (string).\n */\n onChange: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * The short hint displayed in the `input` before the user enters a value.\n */\n placeholder: PropTypes.string,\n /**\n * If `true`, the label is displayed as required and the `input` element is required.\n * @default false\n */\n required: PropTypes.bool,\n /**\n * Number of rows to display when multiline option is set to true.\n */\n rows: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * Render a [`Select`](/material-ui/api/select/) element while passing the Input element to `Select` as `input` parameter.\n * If this option is set you must pass the options of the select as children.\n * @default false\n */\n select: PropTypes.bool,\n /**\n * Props applied to the [`Select`](/material-ui/api/select/) element.\n */\n SelectProps: PropTypes.object,\n /**\n * The size of the component.\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Type of the `input` element. It should be [a valid HTML5 input type](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Form_%3Cinput%3E_types).\n */\n type: PropTypes /* @typescript-to-proptypes-ignore */.string,\n /**\n * The value of the `input` element, required for a controlled component.\n */\n value: PropTypes.any,\n /**\n * The variant to use.\n * @default 'outlined'\n */\n variant: PropTypes.oneOf(['filled', 'outlined', 'standard'])\n} : void 0;\nexport default TextField;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getToolbarUtilityClass(slot) {\n return generateUtilityClass('MuiToolbar', slot);\n}\nconst toolbarClasses = generateUtilityClasses('MuiToolbar', ['root', 'gutters', 'regular', 'dense']);\nexport default toolbarClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"className\", \"component\", \"disableGutters\", \"variant\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { getToolbarUtilityClass } from './toolbarClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disableGutters,\n variant\n } = ownerState;\n const slots = {\n root: ['root', !disableGutters && 'gutters', variant]\n };\n return composeClasses(slots, getToolbarUtilityClass, classes);\n};\nconst ToolbarRoot = styled('div', {\n name: 'MuiToolbar',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, !ownerState.disableGutters && styles.gutters, styles[ownerState.variant]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n position: 'relative',\n display: 'flex',\n alignItems: 'center'\n}, !ownerState.disableGutters && {\n paddingLeft: theme.spacing(2),\n paddingRight: theme.spacing(2),\n [theme.breakpoints.up('sm')]: {\n paddingLeft: theme.spacing(3),\n paddingRight: theme.spacing(3)\n }\n}, ownerState.variant === 'dense' && {\n minHeight: 48\n}), ({\n theme,\n ownerState\n}) => ownerState.variant === 'regular' && theme.mixins.toolbar);\nconst Toolbar = /*#__PURE__*/React.forwardRef(function Toolbar(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiToolbar'\n });\n const {\n className,\n component = 'div',\n disableGutters = false,\n variant = 'regular'\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n component,\n disableGutters,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(ToolbarRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n ownerState: ownerState\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Toolbar.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The Toolbar children, usually a mixture of `IconButton`, `Button` and `Typography`.\n * The Toolbar is a flex container, allowing flex item properites to be used to lay out the children.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, disables gutter padding.\n * @default false\n */\n disableGutters: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * The variant to use.\n * @default 'regular'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['dense', 'regular']), PropTypes.string])\n} : void 0;\nexport default Toolbar;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getTooltipUtilityClass(slot) {\n return generateUtilityClass('MuiTooltip', slot);\n}\nconst tooltipClasses = generateUtilityClasses('MuiTooltip', ['popper', 'popperInteractive', 'popperArrow', 'popperClose', 'tooltip', 'tooltipArrow', 'touch', 'tooltipPlacementLeft', 'tooltipPlacementRight', 'tooltipPlacementTop', 'tooltipPlacementBottom', 'arrow']);\nexport default tooltipClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"arrow\", \"children\", \"classes\", \"components\", \"componentsProps\", \"describeChild\", \"disableFocusListener\", \"disableHoverListener\", \"disableInteractive\", \"disableTouchListener\", \"enterDelay\", \"enterNextDelay\", \"enterTouchDelay\", \"followCursor\", \"id\", \"leaveDelay\", \"leaveTouchDelay\", \"onClose\", \"onOpen\", \"open\", \"placement\", \"PopperComponent\", \"PopperProps\", \"slotProps\", \"slots\", \"title\", \"TransitionComponent\", \"TransitionProps\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { elementAcceptingRef } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses, appendOwnerState } from '@mui/base';\nimport { alpha } from '@mui/system';\nimport styled from '../styles/styled';\nimport useTheme from '../styles/useTheme';\nimport useThemeProps from '../styles/useThemeProps';\nimport capitalize from '../utils/capitalize';\nimport Grow from '../Grow';\nimport Popper from '../Popper';\nimport useEventCallback from '../utils/useEventCallback';\nimport useForkRef from '../utils/useForkRef';\nimport useId from '../utils/useId';\nimport useIsFocusVisible from '../utils/useIsFocusVisible';\nimport useControlled from '../utils/useControlled';\nimport tooltipClasses, { getTooltipUtilityClass } from './tooltipClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n disableInteractive,\n arrow,\n touch,\n placement\n } = ownerState;\n const slots = {\n popper: ['popper', !disableInteractive && 'popperInteractive', arrow && 'popperArrow'],\n tooltip: ['tooltip', arrow && 'tooltipArrow', touch && 'touch', `tooltipPlacement${capitalize(placement.split('-')[0])}`],\n arrow: ['arrow']\n };\n return composeClasses(slots, getTooltipUtilityClass, classes);\n};\nconst TooltipPopper = styled(Popper, {\n name: 'MuiTooltip',\n slot: 'Popper',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.popper, !ownerState.disableInteractive && styles.popperInteractive, ownerState.arrow && styles.popperArrow, !ownerState.open && styles.popperClose];\n }\n})(({\n theme,\n ownerState,\n open\n}) => _extends({\n zIndex: (theme.vars || theme).zIndex.tooltip,\n pointerEvents: 'none'\n}, !ownerState.disableInteractive && {\n pointerEvents: 'auto'\n}, !open && {\n pointerEvents: 'none'\n}, ownerState.arrow && {\n [`&[data-popper-placement*=\"bottom\"] .${tooltipClasses.arrow}`]: {\n top: 0,\n marginTop: '-0.71em',\n '&::before': {\n transformOrigin: '0 100%'\n }\n },\n [`&[data-popper-placement*=\"top\"] .${tooltipClasses.arrow}`]: {\n bottom: 0,\n marginBottom: '-0.71em',\n '&::before': {\n transformOrigin: '100% 0'\n }\n },\n [`&[data-popper-placement*=\"right\"] .${tooltipClasses.arrow}`]: _extends({}, !ownerState.isRtl ? {\n left: 0,\n marginLeft: '-0.71em'\n } : {\n right: 0,\n marginRight: '-0.71em'\n }, {\n height: '1em',\n width: '0.71em',\n '&::before': {\n transformOrigin: '100% 100%'\n }\n }),\n [`&[data-popper-placement*=\"left\"] .${tooltipClasses.arrow}`]: _extends({}, !ownerState.isRtl ? {\n right: 0,\n marginRight: '-0.71em'\n } : {\n left: 0,\n marginLeft: '-0.71em'\n }, {\n height: '1em',\n width: '0.71em',\n '&::before': {\n transformOrigin: '0 0'\n }\n })\n}));\nconst TooltipTooltip = styled('div', {\n name: 'MuiTooltip',\n slot: 'Tooltip',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.tooltip, ownerState.touch && styles.touch, ownerState.arrow && styles.tooltipArrow, styles[`tooltipPlacement${capitalize(ownerState.placement.split('-')[0])}`]];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n backgroundColor: theme.vars ? theme.vars.palette.Tooltip.bg : alpha(theme.palette.grey[700], 0.92),\n borderRadius: (theme.vars || theme).shape.borderRadius,\n color: (theme.vars || theme).palette.common.white,\n fontFamily: theme.typography.fontFamily,\n padding: '4px 8px',\n fontSize: theme.typography.pxToRem(11),\n maxWidth: 300,\n margin: 2,\n wordWrap: 'break-word',\n fontWeight: theme.typography.fontWeightMedium\n}, ownerState.arrow && {\n position: 'relative',\n margin: 0\n}, ownerState.touch && {\n padding: '8px 16px',\n fontSize: theme.typography.pxToRem(14),\n lineHeight: `${round(16 / 14)}em`,\n fontWeight: theme.typography.fontWeightRegular\n}, {\n [`.${tooltipClasses.popper}[data-popper-placement*=\"left\"] &`]: _extends({\n transformOrigin: 'right center'\n }, !ownerState.isRtl ? _extends({\n marginRight: '14px'\n }, ownerState.touch && {\n marginRight: '24px'\n }) : _extends({\n marginLeft: '14px'\n }, ownerState.touch && {\n marginLeft: '24px'\n })),\n [`.${tooltipClasses.popper}[data-popper-placement*=\"right\"] &`]: _extends({\n transformOrigin: 'left center'\n }, !ownerState.isRtl ? _extends({\n marginLeft: '14px'\n }, ownerState.touch && {\n marginLeft: '24px'\n }) : _extends({\n marginRight: '14px'\n }, ownerState.touch && {\n marginRight: '24px'\n })),\n [`.${tooltipClasses.popper}[data-popper-placement*=\"top\"] &`]: _extends({\n transformOrigin: 'center bottom',\n marginBottom: '14px'\n }, ownerState.touch && {\n marginBottom: '24px'\n }),\n [`.${tooltipClasses.popper}[data-popper-placement*=\"bottom\"] &`]: _extends({\n transformOrigin: 'center top',\n marginTop: '14px'\n }, ownerState.touch && {\n marginTop: '24px'\n })\n}));\nconst TooltipArrow = styled('span', {\n name: 'MuiTooltip',\n slot: 'Arrow',\n overridesResolver: (props, styles) => styles.arrow\n})(({\n theme\n}) => ({\n overflow: 'hidden',\n position: 'absolute',\n width: '1em',\n height: '0.71em' /* = width / sqrt(2) = (length of the hypotenuse) */,\n boxSizing: 'border-box',\n color: theme.vars ? theme.vars.palette.Tooltip.bg : alpha(theme.palette.grey[700], 0.9),\n '&::before': {\n content: '\"\"',\n margin: 'auto',\n display: 'block',\n width: '100%',\n height: '100%',\n backgroundColor: 'currentColor',\n transform: 'rotate(45deg)'\n }\n}));\nlet hystersisOpen = false;\nlet hystersisTimer = null;\nlet cursorPosition = {\n x: 0,\n y: 0\n};\nexport function testReset() {\n hystersisOpen = false;\n clearTimeout(hystersisTimer);\n}\nfunction composeEventHandler(handler, eventHandler) {\n return event => {\n if (eventHandler) {\n eventHandler(event);\n }\n handler(event);\n };\n}\n\n// TODO v6: Remove PopperComponent, PopperProps, TransitionComponent and TransitionProps.\nconst Tooltip = /*#__PURE__*/React.forwardRef(function Tooltip(inProps, ref) {\n var _ref, _slots$popper, _ref2, _ref3, _slots$transition, _ref4, _slots$tooltip, _ref5, _slots$arrow, _slotProps$popper, _ref6, _slotProps$popper2, _slotProps$transition, _slotProps$tooltip, _ref7, _slotProps$tooltip2, _slotProps$arrow, _ref8, _slotProps$arrow2;\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTooltip'\n });\n const {\n arrow = false,\n children,\n components = {},\n componentsProps = {},\n describeChild = false,\n disableFocusListener = false,\n disableHoverListener = false,\n disableInteractive: disableInteractiveProp = false,\n disableTouchListener = false,\n enterDelay = 100,\n enterNextDelay = 0,\n enterTouchDelay = 700,\n followCursor = false,\n id: idProp,\n leaveDelay = 0,\n leaveTouchDelay = 1500,\n onClose,\n onOpen,\n open: openProp,\n placement = 'bottom',\n PopperComponent: PopperComponentProp,\n PopperProps = {},\n slotProps = {},\n slots = {},\n title,\n TransitionComponent: TransitionComponentProp = Grow,\n TransitionProps\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const theme = useTheme();\n const isRtl = theme.direction === 'rtl';\n const [childNode, setChildNode] = React.useState();\n const [arrowRef, setArrowRef] = React.useState(null);\n const ignoreNonTouchEvents = React.useRef(false);\n const disableInteractive = disableInteractiveProp || followCursor;\n const closeTimer = React.useRef();\n const enterTimer = React.useRef();\n const leaveTimer = React.useRef();\n const touchTimer = React.useRef();\n const [openState, setOpenState] = useControlled({\n controlled: openProp,\n default: false,\n name: 'Tooltip',\n state: 'open'\n });\n let open = openState;\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n const {\n current: isControlled\n } = React.useRef(openProp !== undefined);\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n if (childNode && childNode.disabled && !isControlled && title !== '' && childNode.tagName.toLowerCase() === 'button') {\n console.error(['MUI: You are providing a disabled `button` child to the Tooltip component.', 'A disabled element does not fire events.', \"Tooltip needs to listen to the child element's events to display the title.\", '', 'Add a simple wrapper element, such as a `span`.'].join('\\n'));\n }\n }, [title, childNode, isControlled]);\n }\n const id = useId(idProp);\n const prevUserSelect = React.useRef();\n const stopTouchInteraction = React.useCallback(() => {\n if (prevUserSelect.current !== undefined) {\n document.body.style.WebkitUserSelect = prevUserSelect.current;\n prevUserSelect.current = undefined;\n }\n clearTimeout(touchTimer.current);\n }, []);\n React.useEffect(() => {\n return () => {\n clearTimeout(closeTimer.current);\n clearTimeout(enterTimer.current);\n clearTimeout(leaveTimer.current);\n stopTouchInteraction();\n };\n }, [stopTouchInteraction]);\n const handleOpen = event => {\n clearTimeout(hystersisTimer);\n hystersisOpen = true;\n\n // The mouseover event will trigger for every nested element in the tooltip.\n // We can skip rerendering when the tooltip is already open.\n // We are using the mouseover event instead of the mouseenter event to fix a hide/show issue.\n setOpenState(true);\n if (onOpen && !open) {\n onOpen(event);\n }\n };\n const handleClose = useEventCallback(\n /**\n * @param {React.SyntheticEvent | Event} event\n */\n event => {\n clearTimeout(hystersisTimer);\n hystersisTimer = setTimeout(() => {\n hystersisOpen = false;\n }, 800 + leaveDelay);\n setOpenState(false);\n if (onClose && open) {\n onClose(event);\n }\n clearTimeout(closeTimer.current);\n closeTimer.current = setTimeout(() => {\n ignoreNonTouchEvents.current = false;\n }, theme.transitions.duration.shortest);\n });\n const handleEnter = event => {\n if (ignoreNonTouchEvents.current && event.type !== 'touchstart') {\n return;\n }\n\n // Remove the title ahead of time.\n // We don't want to wait for the next render commit.\n // We would risk displaying two tooltips at the same time (native + this one).\n if (childNode) {\n childNode.removeAttribute('title');\n }\n clearTimeout(enterTimer.current);\n clearTimeout(leaveTimer.current);\n if (enterDelay || hystersisOpen && enterNextDelay) {\n enterTimer.current = setTimeout(() => {\n handleOpen(event);\n }, hystersisOpen ? enterNextDelay : enterDelay);\n } else {\n handleOpen(event);\n }\n };\n const handleLeave = event => {\n clearTimeout(enterTimer.current);\n clearTimeout(leaveTimer.current);\n leaveTimer.current = setTimeout(() => {\n handleClose(event);\n }, leaveDelay);\n };\n const {\n isFocusVisibleRef,\n onBlur: handleBlurVisible,\n onFocus: handleFocusVisible,\n ref: focusVisibleRef\n } = useIsFocusVisible();\n // We don't necessarily care about the focusVisible state (which is safe to access via ref anyway).\n // We just need to re-render the Tooltip if the focus-visible state changes.\n const [, setChildIsFocusVisible] = React.useState(false);\n const handleBlur = event => {\n handleBlurVisible(event);\n if (isFocusVisibleRef.current === false) {\n setChildIsFocusVisible(false);\n handleLeave(event);\n }\n };\n const handleFocus = event => {\n // Workaround for https://github.com/facebook/react/issues/7769\n // The autoFocus of React might trigger the event before the componentDidMount.\n // We need to account for this eventuality.\n if (!childNode) {\n setChildNode(event.currentTarget);\n }\n handleFocusVisible(event);\n if (isFocusVisibleRef.current === true) {\n setChildIsFocusVisible(true);\n handleEnter(event);\n }\n };\n const detectTouchStart = event => {\n ignoreNonTouchEvents.current = true;\n const childrenProps = children.props;\n if (childrenProps.onTouchStart) {\n childrenProps.onTouchStart(event);\n }\n };\n const handleMouseOver = handleEnter;\n const handleMouseLeave = handleLeave;\n const handleTouchStart = event => {\n detectTouchStart(event);\n clearTimeout(leaveTimer.current);\n clearTimeout(closeTimer.current);\n stopTouchInteraction();\n prevUserSelect.current = document.body.style.WebkitUserSelect;\n // Prevent iOS text selection on long-tap.\n document.body.style.WebkitUserSelect = 'none';\n touchTimer.current = setTimeout(() => {\n document.body.style.WebkitUserSelect = prevUserSelect.current;\n handleEnter(event);\n }, enterTouchDelay);\n };\n const handleTouchEnd = event => {\n if (children.props.onTouchEnd) {\n children.props.onTouchEnd(event);\n }\n stopTouchInteraction();\n clearTimeout(leaveTimer.current);\n leaveTimer.current = setTimeout(() => {\n handleClose(event);\n }, leaveTouchDelay);\n };\n React.useEffect(() => {\n if (!open) {\n return undefined;\n }\n\n /**\n * @param {KeyboardEvent} nativeEvent\n */\n function handleKeyDown(nativeEvent) {\n // IE11, Edge (prior to using Bink?) use 'Esc'\n if (nativeEvent.key === 'Escape' || nativeEvent.key === 'Esc') {\n handleClose(nativeEvent);\n }\n }\n document.addEventListener('keydown', handleKeyDown);\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n };\n }, [handleClose, open]);\n const handleRef = useForkRef(children.ref, focusVisibleRef, setChildNode, ref);\n\n // There is no point in displaying an empty tooltip.\n if (!title && title !== 0) {\n open = false;\n }\n const popperRef = React.useRef();\n const handleMouseMove = event => {\n const childrenProps = children.props;\n if (childrenProps.onMouseMove) {\n childrenProps.onMouseMove(event);\n }\n cursorPosition = {\n x: event.clientX,\n y: event.clientY\n };\n if (popperRef.current) {\n popperRef.current.update();\n }\n };\n const nameOrDescProps = {};\n const titleIsString = typeof title === 'string';\n if (describeChild) {\n nameOrDescProps.title = !open && titleIsString && !disableHoverListener ? title : null;\n nameOrDescProps['aria-describedby'] = open ? id : null;\n } else {\n nameOrDescProps['aria-label'] = titleIsString ? title : null;\n nameOrDescProps['aria-labelledby'] = open && !titleIsString ? id : null;\n }\n const childrenProps = _extends({}, nameOrDescProps, other, children.props, {\n className: clsx(other.className, children.props.className),\n onTouchStart: detectTouchStart,\n ref: handleRef\n }, followCursor ? {\n onMouseMove: handleMouseMove\n } : {});\n if (process.env.NODE_ENV !== 'production') {\n childrenProps['data-mui-internal-clone-element'] = true;\n\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n if (childNode && !childNode.getAttribute('data-mui-internal-clone-element')) {\n console.error(['MUI: The `children` component of the Tooltip is not forwarding its props correctly.', 'Please make sure that props are spread on the same element that the ref is applied to.'].join('\\n'));\n }\n }, [childNode]);\n }\n const interactiveWrapperListeners = {};\n if (!disableTouchListener) {\n childrenProps.onTouchStart = handleTouchStart;\n childrenProps.onTouchEnd = handleTouchEnd;\n }\n if (!disableHoverListener) {\n childrenProps.onMouseOver = composeEventHandler(handleMouseOver, childrenProps.onMouseOver);\n childrenProps.onMouseLeave = composeEventHandler(handleMouseLeave, childrenProps.onMouseLeave);\n if (!disableInteractive) {\n interactiveWrapperListeners.onMouseOver = handleMouseOver;\n interactiveWrapperListeners.onMouseLeave = handleMouseLeave;\n }\n }\n if (!disableFocusListener) {\n childrenProps.onFocus = composeEventHandler(handleFocus, childrenProps.onFocus);\n childrenProps.onBlur = composeEventHandler(handleBlur, childrenProps.onBlur);\n if (!disableInteractive) {\n interactiveWrapperListeners.onFocus = handleFocus;\n interactiveWrapperListeners.onBlur = handleBlur;\n }\n }\n if (process.env.NODE_ENV !== 'production') {\n if (children.props.title) {\n console.error(['MUI: You have provided a `title` prop to the child of .', `Remove this title prop \\`${children.props.title}\\` or the Tooltip component.`].join('\\n'));\n }\n }\n const popperOptions = React.useMemo(() => {\n var _PopperProps$popperOp;\n let tooltipModifiers = [{\n name: 'arrow',\n enabled: Boolean(arrowRef),\n options: {\n element: arrowRef,\n padding: 4\n }\n }];\n if ((_PopperProps$popperOp = PopperProps.popperOptions) != null && _PopperProps$popperOp.modifiers) {\n tooltipModifiers = tooltipModifiers.concat(PopperProps.popperOptions.modifiers);\n }\n return _extends({}, PopperProps.popperOptions, {\n modifiers: tooltipModifiers\n });\n }, [arrowRef, PopperProps]);\n const ownerState = _extends({}, props, {\n isRtl,\n arrow,\n disableInteractive,\n placement,\n PopperComponentProp,\n touch: ignoreNonTouchEvents.current\n });\n const classes = useUtilityClasses(ownerState);\n const PopperComponent = (_ref = (_slots$popper = slots.popper) != null ? _slots$popper : components.Popper) != null ? _ref : TooltipPopper;\n const TransitionComponent = (_ref2 = (_ref3 = (_slots$transition = slots.transition) != null ? _slots$transition : components.Transition) != null ? _ref3 : TransitionComponentProp) != null ? _ref2 : Grow;\n const TooltipComponent = (_ref4 = (_slots$tooltip = slots.tooltip) != null ? _slots$tooltip : components.Tooltip) != null ? _ref4 : TooltipTooltip;\n const ArrowComponent = (_ref5 = (_slots$arrow = slots.arrow) != null ? _slots$arrow : components.Arrow) != null ? _ref5 : TooltipArrow;\n const popperProps = appendOwnerState(PopperComponent, _extends({}, PopperProps, (_slotProps$popper = slotProps.popper) != null ? _slotProps$popper : componentsProps.popper, {\n className: clsx(classes.popper, PopperProps == null ? void 0 : PopperProps.className, (_ref6 = (_slotProps$popper2 = slotProps.popper) != null ? _slotProps$popper2 : componentsProps.popper) == null ? void 0 : _ref6.className)\n }), ownerState);\n const transitionProps = appendOwnerState(TransitionComponent, _extends({}, TransitionProps, (_slotProps$transition = slotProps.transition) != null ? _slotProps$transition : componentsProps.transition), ownerState);\n const tooltipProps = appendOwnerState(TooltipComponent, _extends({}, (_slotProps$tooltip = slotProps.tooltip) != null ? _slotProps$tooltip : componentsProps.tooltip, {\n className: clsx(classes.tooltip, (_ref7 = (_slotProps$tooltip2 = slotProps.tooltip) != null ? _slotProps$tooltip2 : componentsProps.tooltip) == null ? void 0 : _ref7.className)\n }), ownerState);\n const tooltipArrowProps = appendOwnerState(ArrowComponent, _extends({}, (_slotProps$arrow = slotProps.arrow) != null ? _slotProps$arrow : componentsProps.arrow, {\n className: clsx(classes.arrow, (_ref8 = (_slotProps$arrow2 = slotProps.arrow) != null ? _slotProps$arrow2 : componentsProps.arrow) == null ? void 0 : _ref8.className)\n }), ownerState);\n return /*#__PURE__*/_jsxs(React.Fragment, {\n children: [/*#__PURE__*/React.cloneElement(children, childrenProps), /*#__PURE__*/_jsx(PopperComponent, _extends({\n as: PopperComponentProp != null ? PopperComponentProp : Popper,\n placement: placement,\n anchorEl: followCursor ? {\n getBoundingClientRect: () => ({\n top: cursorPosition.y,\n left: cursorPosition.x,\n right: cursorPosition.x,\n bottom: cursorPosition.y,\n width: 0,\n height: 0\n })\n } : childNode,\n popperRef: popperRef,\n open: childNode ? open : false,\n id: id,\n transition: true\n }, interactiveWrapperListeners, popperProps, {\n popperOptions: popperOptions,\n children: ({\n TransitionProps: TransitionPropsInner\n }) => /*#__PURE__*/_jsx(TransitionComponent, _extends({\n timeout: theme.transitions.duration.shorter\n }, TransitionPropsInner, transitionProps, {\n children: /*#__PURE__*/_jsxs(TooltipComponent, _extends({}, tooltipProps, {\n children: [title, arrow ? /*#__PURE__*/_jsx(ArrowComponent, _extends({}, tooltipArrowProps, {\n ref: setArrowRef\n })) : null]\n }))\n }))\n }))]\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? Tooltip.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * If `true`, adds an arrow to the tooltip.\n * @default false\n */\n arrow: PropTypes.bool,\n /**\n * Tooltip reference element.\n */\n children: elementAcceptingRef.isRequired,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The components used for each slot inside.\n *\n * This prop is an alias for the `slots` prop.\n * It's recommended to use the `slots` prop instead.\n *\n * @default {}\n */\n components: PropTypes.shape({\n Arrow: PropTypes.elementType,\n Popper: PropTypes.elementType,\n Tooltip: PropTypes.elementType,\n Transition: PropTypes.elementType\n }),\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * This prop is an alias for the `slotProps` prop.\n * It's recommended to use the `slotProps` prop instead, as `componentsProps` will be deprecated in the future.\n *\n * @default {}\n */\n componentsProps: PropTypes.shape({\n arrow: PropTypes.object,\n popper: PropTypes.object,\n tooltip: PropTypes.object,\n transition: PropTypes.object\n }),\n /**\n * Set to `true` if the `title` acts as an accessible description.\n * By default the `title` acts as an accessible label for the child.\n * @default false\n */\n describeChild: PropTypes.bool,\n /**\n * Do not respond to focus-visible events.\n * @default false\n */\n disableFocusListener: PropTypes.bool,\n /**\n * Do not respond to hover events.\n * @default false\n */\n disableHoverListener: PropTypes.bool,\n /**\n * Makes a tooltip not interactive, i.e. it will close when the user\n * hovers over the tooltip before the `leaveDelay` is expired.\n * @default false\n */\n disableInteractive: PropTypes.bool,\n /**\n * Do not respond to long press touch events.\n * @default false\n */\n disableTouchListener: PropTypes.bool,\n /**\n * The number of milliseconds to wait before showing the tooltip.\n * This prop won't impact the enter touch delay (`enterTouchDelay`).\n * @default 100\n */\n enterDelay: PropTypes.number,\n /**\n * The number of milliseconds to wait before showing the tooltip when one was already recently opened.\n * @default 0\n */\n enterNextDelay: PropTypes.number,\n /**\n * The number of milliseconds a user must touch the element before showing the tooltip.\n * @default 700\n */\n enterTouchDelay: PropTypes.number,\n /**\n * If `true`, the tooltip follow the cursor over the wrapped element.\n * @default false\n */\n followCursor: PropTypes.bool,\n /**\n * This prop is used to help implement the accessibility logic.\n * If you don't provide this prop. It falls back to a randomly generated id.\n */\n id: PropTypes.string,\n /**\n * The number of milliseconds to wait before hiding the tooltip.\n * This prop won't impact the leave touch delay (`leaveTouchDelay`).\n * @default 0\n */\n leaveDelay: PropTypes.number,\n /**\n * The number of milliseconds after the user stops touching an element before hiding the tooltip.\n * @default 1500\n */\n leaveTouchDelay: PropTypes.number,\n /**\n * Callback fired when the component requests to be closed.\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n */\n onClose: PropTypes.func,\n /**\n * Callback fired when the component requests to be open.\n *\n * @param {React.SyntheticEvent} event The event source of the callback.\n */\n onOpen: PropTypes.func,\n /**\n * If `true`, the component is shown.\n */\n open: PropTypes.bool,\n /**\n * Tooltip placement.\n * @default 'bottom'\n */\n placement: PropTypes.oneOf(['bottom-end', 'bottom-start', 'bottom', 'left-end', 'left-start', 'left', 'right-end', 'right-start', 'right', 'top-end', 'top-start', 'top']),\n /**\n * The component used for the popper.\n * @default Popper\n */\n PopperComponent: PropTypes.elementType,\n /**\n * Props applied to the [`Popper`](/material-ui/api/popper/) element.\n * @default {}\n */\n PopperProps: PropTypes.object,\n /**\n * The extra props for the slot components.\n * You can override the existing props or add new ones.\n *\n * This prop is an alias for the `componentsProps` prop, which will be deprecated in the future.\n *\n * @default {}\n */\n slotProps: PropTypes.shape({\n arrow: PropTypes.object,\n popper: PropTypes.object,\n tooltip: PropTypes.object,\n transition: PropTypes.object\n }),\n /**\n * The components used for each slot inside.\n *\n * This prop is an alias for the `components` prop, which will be deprecated in the future.\n *\n * @default {}\n */\n slots: PropTypes.shape({\n arrow: PropTypes.elementType,\n popper: PropTypes.elementType,\n tooltip: PropTypes.elementType,\n transition: PropTypes.elementType\n }),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Tooltip title. Zero-length titles string, undefined, null and false are never displayed.\n */\n title: PropTypes.node,\n /**\n * The component used for the transition.\n * [Follow this guide](/material-ui/transitions/#transitioncomponent-prop) to learn more about the requirements for this component.\n * @default Grow\n */\n TransitionComponent: PropTypes.elementType,\n /**\n * Props applied to the transition element.\n * By default, the element is based on this [`Transition`](http://reactcommunity.org/react-transition-group/transition/) component.\n */\n TransitionProps: PropTypes.object\n} : void 0;\nexport default Tooltip;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getTypographyUtilityClass(slot) {\n return generateUtilityClass('MuiTypography', slot);\n}\nconst typographyClasses = generateUtilityClasses('MuiTypography', ['root', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'subtitle1', 'subtitle2', 'body1', 'body2', 'inherit', 'button', 'caption', 'overline', 'alignLeft', 'alignRight', 'alignCenter', 'alignJustify', 'noWrap', 'gutterBottom', 'paragraph']);\nexport default typographyClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"align\", \"className\", \"component\", \"gutterBottom\", \"noWrap\", \"paragraph\", \"variant\", \"variantMapping\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_extendSxProp as extendSxProp } from '@mui/system';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport capitalize from '../utils/capitalize';\nimport { getTypographyUtilityClass } from './typographyClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n align,\n gutterBottom,\n noWrap,\n paragraph,\n variant,\n classes\n } = ownerState;\n const slots = {\n root: ['root', variant, ownerState.align !== 'inherit' && `align${capitalize(align)}`, gutterBottom && 'gutterBottom', noWrap && 'noWrap', paragraph && 'paragraph']\n };\n return composeClasses(slots, getTypographyUtilityClass, classes);\n};\nexport const TypographyRoot = styled('span', {\n name: 'MuiTypography',\n slot: 'Root',\n overridesResolver: (props, styles) => {\n const {\n ownerState\n } = props;\n return [styles.root, ownerState.variant && styles[ownerState.variant], ownerState.align !== 'inherit' && styles[`align${capitalize(ownerState.align)}`], ownerState.noWrap && styles.noWrap, ownerState.gutterBottom && styles.gutterBottom, ownerState.paragraph && styles.paragraph];\n }\n})(({\n theme,\n ownerState\n}) => _extends({\n margin: 0\n}, ownerState.variant && theme.typography[ownerState.variant], ownerState.align !== 'inherit' && {\n textAlign: ownerState.align\n}, ownerState.noWrap && {\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap'\n}, ownerState.gutterBottom && {\n marginBottom: '0.35em'\n}, ownerState.paragraph && {\n marginBottom: 16\n}));\nconst defaultVariantMapping = {\n h1: 'h1',\n h2: 'h2',\n h3: 'h3',\n h4: 'h4',\n h5: 'h5',\n h6: 'h6',\n subtitle1: 'h6',\n subtitle2: 'h6',\n body1: 'p',\n body2: 'p',\n inherit: 'p'\n};\n\n// TODO v6: deprecate these color values in v5.x and remove the transformation in v6\nconst colorTransformations = {\n primary: 'primary.main',\n textPrimary: 'text.primary',\n secondary: 'secondary.main',\n textSecondary: 'text.secondary',\n error: 'error.main'\n};\nconst transformDeprecatedColors = color => {\n return colorTransformations[color] || color;\n};\nconst Typography = /*#__PURE__*/React.forwardRef(function Typography(inProps, ref) {\n const themeProps = useThemeProps({\n props: inProps,\n name: 'MuiTypography'\n });\n const color = transformDeprecatedColors(themeProps.color);\n const props = extendSxProp(_extends({}, themeProps, {\n color\n }));\n const {\n align = 'inherit',\n className,\n component,\n gutterBottom = false,\n noWrap = false,\n paragraph = false,\n variant = 'body1',\n variantMapping = defaultVariantMapping\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n align,\n color,\n className,\n component,\n gutterBottom,\n noWrap,\n paragraph,\n variant,\n variantMapping\n });\n const Component = component || (paragraph ? 'p' : variantMapping[variant] || defaultVariantMapping[variant]) || 'span';\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(TypographyRoot, _extends({\n as: Component,\n ref: ref,\n ownerState: ownerState,\n className: clsx(classes.root, className)\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? Typography.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * Set the text-align on the component.\n * @default 'inherit'\n */\n align: PropTypes.oneOf(['center', 'inherit', 'justify', 'left', 'right']),\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * If `true`, the text will have a bottom margin.\n * @default false\n */\n gutterBottom: PropTypes.bool,\n /**\n * If `true`, the text will not wrap, but instead will truncate with a text overflow ellipsis.\n *\n * Note that text overflow can only happen with block or inline-block level elements\n * (the element needs to have a width in order to overflow).\n * @default false\n */\n noWrap: PropTypes.bool,\n /**\n * If `true`, the element will be a paragraph element.\n * @default false\n */\n paragraph: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Applies the theme typography styles.\n * @default 'body1'\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['body1', 'body2', 'button', 'caption', 'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'inherit', 'overline', 'subtitle1', 'subtitle2']), PropTypes.string]),\n /**\n * The component maps the variant prop to a range of different HTML element types.\n * For instance, subtitle1 to `
`.\n * If you wish to change that mapping, you can provide your own.\n * Alternatively, you can use the `component` prop.\n * @default {\n * h1: 'h1',\n * h2: 'h2',\n * h3: 'h3',\n * h4: 'h4',\n * h5: 'h5',\n * h6: 'h6',\n * subtitle1: 'h6',\n * subtitle2: 'h6',\n * body1: 'p',\n * body2: 'p',\n * inherit: 'p',\n * }\n */\n variantMapping: PropTypes /* @typescript-to-proptypes-ignore */.object\n} : void 0;\nexport default Typography;","const blue = {\n 50: '#e3f2fd',\n 100: '#bbdefb',\n 200: '#90caf9',\n 300: '#64b5f6',\n 400: '#42a5f5',\n 500: '#2196f3',\n 600: '#1e88e5',\n 700: '#1976d2',\n 800: '#1565c0',\n 900: '#0d47a1',\n A100: '#82b1ff',\n A200: '#448aff',\n A400: '#2979ff',\n A700: '#2962ff'\n};\nexport default blue;","const green = {\n 50: '#e8f5e9',\n 100: '#c8e6c9',\n 200: '#a5d6a7',\n 300: '#81c784',\n 400: '#66bb6a',\n 500: '#4caf50',\n 600: '#43a047',\n 700: '#388e3c',\n 800: '#2e7d32',\n 900: '#1b5e20',\n A100: '#b9f6ca',\n A200: '#69f0ae',\n A400: '#00e676',\n A700: '#00c853'\n};\nexport default green;","const grey = {\n 50: '#fafafa',\n 100: '#f5f5f5',\n 200: '#eeeeee',\n 300: '#e0e0e0',\n 400: '#bdbdbd',\n 500: '#9e9e9e',\n 600: '#757575',\n 700: '#616161',\n 800: '#424242',\n 900: '#212121',\n A100: '#f5f5f5',\n A200: '#eeeeee',\n A400: '#bdbdbd',\n A700: '#616161'\n};\nexport default grey;","const orange = {\n 50: '#fff3e0',\n 100: '#ffe0b2',\n 200: '#ffcc80',\n 300: '#ffb74d',\n 400: '#ffa726',\n 500: '#ff9800',\n 600: '#fb8c00',\n 700: '#f57c00',\n 800: '#ef6c00',\n 900: '#e65100',\n A100: '#ffd180',\n A200: '#ffab40',\n A400: '#ff9100',\n A700: '#ff6d00'\n};\nexport default orange;","const red = {\n 50: '#ffebee',\n 100: '#ffcdd2',\n 200: '#ef9a9a',\n 300: '#e57373',\n 400: '#ef5350',\n 500: '#f44336',\n 600: '#e53935',\n 700: '#d32f2f',\n 800: '#c62828',\n 900: '#b71c1c',\n A100: '#ff8a80',\n A200: '#ff5252',\n A400: '#ff1744',\n A700: '#d50000'\n};\nexport default red;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getSwitchBaseUtilityClass(slot) {\n return generateUtilityClass('PrivateSwitchBase', slot);\n}\nconst switchBaseClasses = generateUtilityClasses('PrivateSwitchBase', ['root', 'checked', 'disabled', 'input', 'edgeStart', 'edgeEnd']);\nexport default switchBaseClasses;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"autoFocus\", \"checked\", \"checkedIcon\", \"className\", \"defaultChecked\", \"disabled\", \"disableFocusRipple\", \"edge\", \"icon\", \"id\", \"inputProps\", \"inputRef\", \"name\", \"onBlur\", \"onChange\", \"onFocus\", \"readOnly\", \"required\", \"tabIndex\", \"type\", \"value\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { refType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport capitalize from '../utils/capitalize';\nimport styled from '../styles/styled';\nimport useControlled from '../utils/useControlled';\nimport useFormControl from '../FormControl/useFormControl';\nimport ButtonBase from '../ButtonBase';\nimport { getSwitchBaseUtilityClass } from './switchBaseClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes,\n checked,\n disabled,\n edge\n } = ownerState;\n const slots = {\n root: ['root', checked && 'checked', disabled && 'disabled', edge && `edge${capitalize(edge)}`],\n input: ['input']\n };\n return composeClasses(slots, getSwitchBaseUtilityClass, classes);\n};\nconst SwitchBaseRoot = styled(ButtonBase)(({\n ownerState\n}) => _extends({\n padding: 9,\n borderRadius: '50%'\n}, ownerState.edge === 'start' && {\n marginLeft: ownerState.size === 'small' ? -3 : -12\n}, ownerState.edge === 'end' && {\n marginRight: ownerState.size === 'small' ? -3 : -12\n}));\nconst SwitchBaseInput = styled('input')({\n cursor: 'inherit',\n position: 'absolute',\n opacity: 0,\n width: '100%',\n height: '100%',\n top: 0,\n left: 0,\n margin: 0,\n padding: 0,\n zIndex: 1\n});\n\n/**\n * @ignore - internal component.\n */\nconst SwitchBase = /*#__PURE__*/React.forwardRef(function SwitchBase(props, ref) {\n const {\n autoFocus,\n checked: checkedProp,\n checkedIcon,\n className,\n defaultChecked,\n disabled: disabledProp,\n disableFocusRipple = false,\n edge = false,\n icon,\n id,\n inputProps,\n inputRef,\n name,\n onBlur,\n onChange,\n onFocus,\n readOnly,\n required = false,\n tabIndex,\n type,\n value\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const [checked, setCheckedState] = useControlled({\n controlled: checkedProp,\n default: Boolean(defaultChecked),\n name: 'SwitchBase',\n state: 'checked'\n });\n const muiFormControl = useFormControl();\n const handleFocus = event => {\n if (onFocus) {\n onFocus(event);\n }\n if (muiFormControl && muiFormControl.onFocus) {\n muiFormControl.onFocus(event);\n }\n };\n const handleBlur = event => {\n if (onBlur) {\n onBlur(event);\n }\n if (muiFormControl && muiFormControl.onBlur) {\n muiFormControl.onBlur(event);\n }\n };\n const handleInputChange = event => {\n // Workaround for https://github.com/facebook/react/issues/9023\n if (event.nativeEvent.defaultPrevented) {\n return;\n }\n const newChecked = event.target.checked;\n setCheckedState(newChecked);\n if (onChange) {\n // TODO v6: remove the second argument.\n onChange(event, newChecked);\n }\n };\n let disabled = disabledProp;\n if (muiFormControl) {\n if (typeof disabled === 'undefined') {\n disabled = muiFormControl.disabled;\n }\n }\n const hasLabelFor = type === 'checkbox' || type === 'radio';\n const ownerState = _extends({}, props, {\n checked,\n disabled,\n disableFocusRipple,\n edge\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsxs(SwitchBaseRoot, _extends({\n component: \"span\",\n className: clsx(classes.root, className),\n centerRipple: true,\n focusRipple: !disableFocusRipple,\n disabled: disabled,\n tabIndex: null,\n role: undefined,\n onFocus: handleFocus,\n onBlur: handleBlur,\n ownerState: ownerState,\n ref: ref\n }, other, {\n children: [/*#__PURE__*/_jsx(SwitchBaseInput, _extends({\n autoFocus: autoFocus,\n checked: checkedProp,\n defaultChecked: defaultChecked,\n className: classes.input,\n disabled: disabled,\n id: hasLabelFor && id,\n name: name,\n onChange: handleInputChange,\n readOnly: readOnly,\n ref: inputRef,\n required: required,\n ownerState: ownerState,\n tabIndex: tabIndex,\n type: type\n }, type === 'checkbox' && value === undefined ? {} : {\n value\n }, inputProps)), checked ? checkedIcon : icon]\n }));\n});\n\n// NB: If changed, please update Checkbox, Switch and Radio\n// so that the API documentation is updated.\nprocess.env.NODE_ENV !== \"production\" ? SwitchBase.propTypes = {\n /**\n * If `true`, the `input` element is focused during the first mount.\n */\n autoFocus: PropTypes.bool,\n /**\n * If `true`, the component is checked.\n */\n checked: PropTypes.bool,\n /**\n * The icon to display when the component is checked.\n */\n checkedIcon: PropTypes.node.isRequired,\n /**\n * Override or extend the styles applied to the component.\n * See [CSS API](#css) below for more details.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * @ignore\n */\n defaultChecked: PropTypes.bool,\n /**\n * If `true`, the component is disabled.\n */\n disabled: PropTypes.bool,\n /**\n * If `true`, the keyboard focus ripple is disabled.\n * @default false\n */\n disableFocusRipple: PropTypes.bool,\n /**\n * If given, uses a negative margin to counteract the padding on one\n * side (this is often helpful for aligning the left or right\n * side of the icon with content above or below, without ruining the border\n * size and shape).\n * @default false\n */\n edge: PropTypes.oneOf(['end', 'start', false]),\n /**\n * The icon to display when the component is unchecked.\n */\n icon: PropTypes.node.isRequired,\n /**\n * The id of the `input` element.\n */\n id: PropTypes.string,\n /**\n * [Attributes](https://developer.mozilla.org/en-US/docs/Web/HTML/Element/input#Attributes) applied to the `input` element.\n */\n inputProps: PropTypes.object,\n /**\n * Pass a ref to the `input` element.\n */\n inputRef: refType,\n /*\n * @ignore\n */\n name: PropTypes.string,\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n /**\n * Callback fired when the state is changed.\n *\n * @param {object} event The event source of the callback.\n * You can pull out the new checked state by accessing `event.target.checked` (boolean).\n */\n onChange: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * It prevents the user from changing the value of the field\n * (not from interacting with the field).\n */\n readOnly: PropTypes.bool,\n /**\n * If `true`, the `input` element is required.\n */\n required: PropTypes.bool,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.object,\n /**\n * @ignore\n */\n tabIndex: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n /**\n * The input component prop `type`.\n */\n type: PropTypes.string.isRequired,\n /**\n * The value of the component.\n */\n value: PropTypes.any\n} : void 0;\nexport default SwitchBase;","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M7 10l5 5 5-5z\"\n}), 'ArrowDropDown');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n *\n * Alias to `Clear`.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z\"\n}), 'Close');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M18.41 16.59L13.82 12l4.59-4.59L17 6l-6 6 6 6zM6 6h2v12H6z\"\n}), 'FirstPage');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M15.41 16.09l-4.58-4.59 4.58-4.59L14 5.5l-6 6 6 6z\"\n}), 'KeyboardArrowLeft');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M8.59 16.34l4.58-4.59-4.58-4.59L10 5.75l6 6-6 6z\"\n}), 'KeyboardArrowRight');","import * as React from 'react';\nimport createSvgIcon from '../../utils/createSvgIcon';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default createSvgIcon( /*#__PURE__*/_jsx(\"path\", {\n d: \"M5.59 7.41L10.18 12l-4.59 4.59L7 18l6-6-6-6zM16 6h2v12h-2z\"\n}), 'LastPage');","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport PropTypes from 'prop-types';\nimport { deepmerge } from '@mui/utils';\nimport merge from './merge';\n\n// The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\nexport const values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n};\n\nconst defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: key => `@media (min-width:${values[key]}px)`\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n const theme = props.theme || {};\n if (Array.isArray(propValue)) {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return propValue.reduce((acc, item, index) => {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n if (typeof propValue === 'object') {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return Object.keys(propValue).reduce((acc, breakpoint) => {\n // key is breakpoint\n if (Object.keys(themeBreakpoints.values || values).indexOf(breakpoint) !== -1) {\n const mediaKey = themeBreakpoints.up(breakpoint);\n acc[mediaKey] = styleFromPropValue(propValue[breakpoint], breakpoint);\n } else {\n const cssKey = breakpoint;\n acc[cssKey] = propValue[cssKey];\n }\n return acc;\n }, {});\n }\n const output = styleFromPropValue(propValue);\n return output;\n}\nfunction breakpoints(styleFunction) {\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const newStyleFunction = props => {\n const theme = props.theme || {};\n const base = styleFunction(props);\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n const extended = themeBreakpoints.keys.reduce((acc, key) => {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction(_extends({\n theme\n }, props[key]));\n }\n return acc;\n }, null);\n return merge(base, extended);\n };\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {\n xs: PropTypes.object,\n sm: PropTypes.object,\n md: PropTypes.object,\n lg: PropTypes.object,\n xl: PropTypes.object\n }) : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl', ...styleFunction.filterProps];\n return newStyleFunction;\n}\nexport function createEmptyBreakpointObject(breakpointsInput = {}) {\n var _breakpointsInput$key;\n const breakpointsInOrder = (_breakpointsInput$key = breakpointsInput.keys) == null ? void 0 : _breakpointsInput$key.reduce((acc, key) => {\n const breakpointStyleKey = breakpointsInput.up(key);\n acc[breakpointStyleKey] = {};\n return acc;\n }, {});\n return breakpointsInOrder || {};\n}\nexport function removeUnusedBreakpoints(breakpointKeys, style) {\n return breakpointKeys.reduce((acc, key) => {\n const breakpointOutput = acc[key];\n const isBreakpointUnused = !breakpointOutput || Object.keys(breakpointOutput).length === 0;\n if (isBreakpointUnused) {\n delete acc[key];\n }\n return acc;\n }, style);\n}\nexport function mergeBreakpointsInOrder(breakpointsInput, ...styles) {\n const emptyBreakpoints = createEmptyBreakpointObject(breakpointsInput);\n const mergedOutput = [emptyBreakpoints, ...styles].reduce((prev, next) => deepmerge(prev, next), {});\n return removeUnusedBreakpoints(Object.keys(emptyBreakpoints), mergedOutput);\n}\n\n// compute base for responsive values; e.g.,\n// [1,2,3] => {xs: true, sm: true, md: true}\n// {xs: 1, sm: 2, md: 3} => {xs: true, sm: true, md: true}\nexport function computeBreakpointsBase(breakpointValues, themeBreakpoints) {\n // fixed value\n if (typeof breakpointValues !== 'object') {\n return {};\n }\n const base = {};\n const breakpointsKeys = Object.keys(themeBreakpoints);\n if (Array.isArray(breakpointValues)) {\n breakpointsKeys.forEach((breakpoint, i) => {\n if (i < breakpointValues.length) {\n base[breakpoint] = true;\n }\n });\n } else {\n breakpointsKeys.forEach(breakpoint => {\n if (breakpointValues[breakpoint] != null) {\n base[breakpoint] = true;\n }\n });\n }\n return base;\n}\nexport function resolveBreakpointValues({\n values: breakpointValues,\n breakpoints: themeBreakpoints,\n base: customBase\n}) {\n const base = customBase || computeBreakpointsBase(breakpointValues, themeBreakpoints);\n const keys = Object.keys(base);\n if (keys.length === 0) {\n return breakpointValues;\n }\n let previous;\n return keys.reduce((acc, breakpoint, i) => {\n if (Array.isArray(breakpointValues)) {\n acc[breakpoint] = breakpointValues[i] != null ? breakpointValues[i] : breakpointValues[previous];\n previous = i;\n } else if (typeof breakpointValues === 'object') {\n acc[breakpoint] = breakpointValues[breakpoint] != null ? breakpointValues[breakpoint] : breakpointValues[previous];\n previous = breakpoint;\n } else {\n acc[breakpoint] = breakpointValues;\n }\n return acc;\n }, {});\n}\nexport default breakpoints;","import { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@mui/utils\";\n/* eslint-disable @typescript-eslint/naming-convention */\n/**\n * Returns a number whose value is limited to the given range.\n * @param {number} value The value to be clamped\n * @param {number} min The lower boundary of the output range\n * @param {number} max The upper boundary of the output range\n * @returns {number} A number in the range [min, max]\n */\nfunction clamp(value, min = 0, max = 1) {\n if (process.env.NODE_ENV !== 'production') {\n if (value < min || value > max) {\n console.error(`MUI: The value provided ${value} is out of range [${min}, ${max}].`);\n }\n }\n return Math.min(Math.max(min, value), max);\n}\n\n/**\n * Converts a color from CSS hex format to CSS rgb format.\n * @param {string} color - Hex color, i.e. #nnn or #nnnnnn\n * @returns {string} A CSS rgb color string\n */\nexport function hexToRgb(color) {\n color = color.slice(1);\n const re = new RegExp(`.{1,${color.length >= 6 ? 2 : 1}}`, 'g');\n let colors = color.match(re);\n if (colors && colors[0].length === 1) {\n colors = colors.map(n => n + n);\n }\n return colors ? `rgb${colors.length === 4 ? 'a' : ''}(${colors.map((n, index) => {\n return index < 3 ? parseInt(n, 16) : Math.round(parseInt(n, 16) / 255 * 1000) / 1000;\n }).join(', ')})` : '';\n}\nfunction intToHex(int) {\n const hex = int.toString(16);\n return hex.length === 1 ? `0${hex}` : hex;\n}\n\n/**\n * Returns an object with the type and values of a color.\n *\n * Note: Does not support rgb % values.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {object} - A MUI color object: {type: string, values: number[]}\n */\nexport function decomposeColor(color) {\n // Idempotent\n if (color.type) {\n return color;\n }\n if (color.charAt(0) === '#') {\n return decomposeColor(hexToRgb(color));\n }\n const marker = color.indexOf('(');\n const type = color.substring(0, marker);\n if (['rgb', 'rgba', 'hsl', 'hsla', 'color'].indexOf(type) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: Unsupported \\`${color}\\` color.\nThe following formats are supported: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color().` : _formatMuiErrorMessage(9, color));\n }\n let values = color.substring(marker + 1, color.length - 1);\n let colorSpace;\n if (type === 'color') {\n values = values.split(' ');\n colorSpace = values.shift();\n if (values.length === 4 && values[3].charAt(0) === '/') {\n values[3] = values[3].slice(1);\n }\n if (['srgb', 'display-p3', 'a98-rgb', 'prophoto-rgb', 'rec-2020'].indexOf(colorSpace) === -1) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: unsupported \\`${colorSpace}\\` color space.\nThe following color spaces are supported: srgb, display-p3, a98-rgb, prophoto-rgb, rec-2020.` : _formatMuiErrorMessage(10, colorSpace));\n }\n } else {\n values = values.split(',');\n }\n values = values.map(value => parseFloat(value));\n return {\n type,\n values,\n colorSpace\n };\n}\n\n/**\n * Returns a channel created from the input color.\n *\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {string} - The channel for the color, that can be used in rgba or hsla colors\n */\nexport const colorChannel = color => {\n const decomposedColor = decomposeColor(color);\n return decomposedColor.values.slice(0, 3).map((val, idx) => decomposedColor.type.indexOf('hsl') !== -1 && idx !== 0 ? `${val}%` : val).join(' ');\n};\nexport const private_safeColorChannel = (color, warning) => {\n try {\n return colorChannel(color);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n};\n\n/**\n * Converts a color object with type and values to a string.\n * @param {object} color - Decomposed color\n * @param {string} color.type - One of: 'rgb', 'rgba', 'hsl', 'hsla', 'color'\n * @param {array} color.values - [n,n,n] or [n,n,n,n]\n * @returns {string} A CSS color string\n */\nexport function recomposeColor(color) {\n const {\n type,\n colorSpace\n } = color;\n let {\n values\n } = color;\n if (type.indexOf('rgb') !== -1) {\n // Only convert the first 3 values to int (i.e. not alpha)\n values = values.map((n, i) => i < 3 ? parseInt(n, 10) : n);\n } else if (type.indexOf('hsl') !== -1) {\n values[1] = `${values[1]}%`;\n values[2] = `${values[2]}%`;\n }\n if (type.indexOf('color') !== -1) {\n values = `${colorSpace} ${values.join(' ')}`;\n } else {\n values = `${values.join(', ')}`;\n }\n return `${type}(${values})`;\n}\n\n/**\n * Converts a color from CSS rgb format to CSS hex format.\n * @param {string} color - RGB color, i.e. rgb(n, n, n)\n * @returns {string} A CSS rgb color string, i.e. #nnnnnn\n */\nexport function rgbToHex(color) {\n // Idempotent\n if (color.indexOf('#') === 0) {\n return color;\n }\n const {\n values\n } = decomposeColor(color);\n return `#${values.map((n, i) => intToHex(i === 3 ? Math.round(255 * n) : n)).join('')}`;\n}\n\n/**\n * Converts a color from hsl format to rgb format.\n * @param {string} color - HSL color values\n * @returns {string} rgb color values\n */\nexport function hslToRgb(color) {\n color = decomposeColor(color);\n const {\n values\n } = color;\n const h = values[0];\n const s = values[1] / 100;\n const l = values[2] / 100;\n const a = s * Math.min(l, 1 - l);\n const f = (n, k = (n + h / 30) % 12) => l - a * Math.max(Math.min(k - 3, 9 - k, 1), -1);\n let type = 'rgb';\n const rgb = [Math.round(f(0) * 255), Math.round(f(8) * 255), Math.round(f(4) * 255)];\n if (color.type === 'hsla') {\n type += 'a';\n rgb.push(values[3]);\n }\n return recomposeColor({\n type,\n values: rgb\n });\n}\n/**\n * The relative brightness of any point in a color space,\n * normalized to 0 for darkest black and 1 for lightest white.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @returns {number} The relative brightness of the color in the range 0 - 1\n */\nexport function getLuminance(color) {\n color = decomposeColor(color);\n let rgb = color.type === 'hsl' || color.type === 'hsla' ? decomposeColor(hslToRgb(color)).values : color.values;\n rgb = rgb.map(val => {\n if (color.type !== 'color') {\n val /= 255; // normalized\n }\n\n return val <= 0.03928 ? val / 12.92 : ((val + 0.055) / 1.055) ** 2.4;\n });\n\n // Truncate at 3 digits\n return Number((0.2126 * rgb[0] + 0.7152 * rgb[1] + 0.0722 * rgb[2]).toFixed(3));\n}\n\n/**\n * Calculates the contrast ratio between two colors.\n *\n * Formula: https://www.w3.org/TR/WCAG20-TECHS/G17.html#G17-tests\n * @param {string} foreground - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @param {string} background - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla()\n * @returns {number} A contrast ratio value in the range 0 - 21.\n */\nexport function getContrastRatio(foreground, background) {\n const lumA = getLuminance(foreground);\n const lumB = getLuminance(background);\n return (Math.max(lumA, lumB) + 0.05) / (Math.min(lumA, lumB) + 0.05);\n}\n\n/**\n * Sets the absolute transparency of a color.\n * Any existing alpha values are overwritten.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} value - value to set the alpha channel to in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nexport function alpha(color, value) {\n color = decomposeColor(color);\n value = clamp(value);\n if (color.type === 'rgb' || color.type === 'hsl') {\n color.type += 'a';\n }\n if (color.type === 'color') {\n color.values[3] = `/${value}`;\n } else {\n color.values[3] = value;\n }\n return recomposeColor(color);\n}\nexport function private_safeAlpha(color, value, warning) {\n try {\n return alpha(color, value);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darkens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nexport function darken(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] *= 1 - coefficient;\n } else if (color.type.indexOf('rgb') !== -1 || color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] *= 1 - coefficient;\n }\n }\n return recomposeColor(color);\n}\nexport function private_safeDarken(color, coefficient, warning) {\n try {\n return darken(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Lightens a color.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nexport function lighten(color, coefficient) {\n color = decomposeColor(color);\n coefficient = clamp(coefficient);\n if (color.type.indexOf('hsl') !== -1) {\n color.values[2] += (100 - color.values[2]) * coefficient;\n } else if (color.type.indexOf('rgb') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (255 - color.values[i]) * coefficient;\n }\n } else if (color.type.indexOf('color') !== -1) {\n for (let i = 0; i < 3; i += 1) {\n color.values[i] += (1 - color.values[i]) * coefficient;\n }\n }\n return recomposeColor(color);\n}\nexport function private_safeLighten(color, coefficient, warning) {\n try {\n return lighten(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}\n\n/**\n * Darken or lighten a color, depending on its luminance.\n * Light colors are darkened, dark colors are lightened.\n * @param {string} color - CSS color, i.e. one of: #nnn, #nnnnnn, rgb(), rgba(), hsl(), hsla(), color()\n * @param {number} coefficient=0.15 - multiplier in the range 0 - 1\n * @returns {string} A CSS color string. Hex input values are returned as rgb\n */\nexport function emphasize(color, coefficient = 0.15) {\n return getLuminance(color) > 0.5 ? darken(color, coefficient) : lighten(color, coefficient);\n}\nexport function private_safeEmphasize(color, coefficient, warning) {\n try {\n return private_safeEmphasize(color, coefficient);\n } catch (error) {\n if (warning && process.env.NODE_ENV !== 'production') {\n console.warn(warning);\n }\n return color;\n }\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"variant\"];\nimport { unstable_capitalize as capitalize } from '@mui/utils';\nfunction isEmpty(string) {\n return string.length === 0;\n}\n\n/**\n * Generates string classKey based on the properties provided. It starts with the\n * variant if defined, and then it appends all other properties in alphabetical order.\n * @param {object} props - the properties for which the classKey should be created.\n */\nexport default function propsToClassKey(props) {\n const {\n variant\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n let classKey = variant || '';\n Object.keys(other).sort().forEach(key => {\n if (key === 'color') {\n classKey += isEmpty(classKey) ? props[key] : capitalize(props[key]);\n } else {\n classKey += `${isEmpty(classKey) ? key : capitalize(key)}${capitalize(props[key].toString())}`;\n }\n });\n return classKey;\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"name\", \"slot\", \"skipVariantsResolver\", \"skipSx\", \"overridesResolver\"];\n/* eslint-disable no-underscore-dangle */\nimport styledEngineStyled, { internal_processStyles as processStyles } from '@mui/styled-engine';\nimport { getDisplayName, unstable_capitalize as capitalize, isPlainObject, deepmerge } from '@mui/utils';\nimport createTheme from './createTheme';\nimport propsToClassKey from './propsToClassKey';\nimport styleFunctionSx from './styleFunctionSx';\nfunction isEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\n\n// https://github.com/emotion-js/emotion/blob/26ded6109fcd8ca9875cc2ce4564fee678a3f3c5/packages/styled/src/utils.js#L40\nfunction isStringTag(tag) {\n return typeof tag === 'string' &&\n // 96 is one less than the char code\n // for \"a\" so this is checking that\n // it's a lowercase character\n tag.charCodeAt(0) > 96;\n}\nconst getStyleOverrides = (name, theme) => {\n if (theme.components && theme.components[name] && theme.components[name].styleOverrides) {\n return theme.components[name].styleOverrides;\n }\n return null;\n};\nconst transformVariants = variants => {\n const variantsStyles = {};\n if (variants) {\n variants.forEach(definition => {\n const key = propsToClassKey(definition.props);\n variantsStyles[key] = definition.style;\n });\n }\n return variantsStyles;\n};\nconst getVariantStyles = (name, theme) => {\n let variants = [];\n if (theme && theme.components && theme.components[name] && theme.components[name].variants) {\n variants = theme.components[name].variants;\n }\n return transformVariants(variants);\n};\nconst variantsResolver = (props, styles, variants) => {\n const {\n ownerState = {}\n } = props;\n const variantsStyles = [];\n if (variants) {\n variants.forEach(variant => {\n let isMatch = true;\n Object.keys(variant.props).forEach(key => {\n if (ownerState[key] !== variant.props[key] && props[key] !== variant.props[key]) {\n isMatch = false;\n }\n });\n if (isMatch) {\n variantsStyles.push(styles[propsToClassKey(variant.props)]);\n }\n });\n }\n return variantsStyles;\n};\nconst themeVariantsResolver = (props, styles, theme, name) => {\n var _theme$components;\n const themeVariants = theme == null || (_theme$components = theme.components) == null || (_theme$components = _theme$components[name]) == null ? void 0 : _theme$components.variants;\n return variantsResolver(props, styles, themeVariants);\n};\n\n// Update /system/styled/#api in case if this changes\nexport function shouldForwardProp(prop) {\n return prop !== 'ownerState' && prop !== 'theme' && prop !== 'sx' && prop !== 'as';\n}\nexport const systemDefaultTheme = createTheme();\nconst lowercaseFirstLetter = string => {\n if (!string) {\n return string;\n }\n return string.charAt(0).toLowerCase() + string.slice(1);\n};\nfunction resolveTheme({\n defaultTheme,\n theme,\n themeId\n}) {\n return isEmpty(theme) ? defaultTheme : theme[themeId] || theme;\n}\nfunction defaultOverridesResolver(slot) {\n if (!slot) {\n return null;\n }\n return (props, styles) => styles[slot];\n}\nconst muiStyledFunctionResolver = ({\n styledArg,\n props,\n defaultTheme,\n themeId\n}) => {\n const resolvedStyles = styledArg(_extends({}, props, {\n theme: resolveTheme(_extends({}, props, {\n defaultTheme,\n themeId\n }))\n }));\n let optionalVariants;\n if (resolvedStyles && resolvedStyles.variants) {\n optionalVariants = resolvedStyles.variants;\n delete resolvedStyles.variants;\n }\n if (optionalVariants) {\n const variantsStyles = variantsResolver(props, transformVariants(optionalVariants), optionalVariants);\n return [resolvedStyles, ...variantsStyles];\n }\n return resolvedStyles;\n};\nexport default function createStyled(input = {}) {\n const {\n themeId,\n defaultTheme = systemDefaultTheme,\n rootShouldForwardProp = shouldForwardProp,\n slotShouldForwardProp = shouldForwardProp\n } = input;\n const systemSx = props => {\n return styleFunctionSx(_extends({}, props, {\n theme: resolveTheme(_extends({}, props, {\n defaultTheme,\n themeId\n }))\n }));\n };\n systemSx.__mui_systemSx = true;\n return (tag, inputOptions = {}) => {\n // Filter out the `sx` style function from the previous styled component to prevent unnecessary styles generated by the composite components.\n processStyles(tag, styles => styles.filter(style => !(style != null && style.__mui_systemSx)));\n const {\n name: componentName,\n slot: componentSlot,\n skipVariantsResolver: inputSkipVariantsResolver,\n skipSx: inputSkipSx,\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n overridesResolver = defaultOverridesResolver(lowercaseFirstLetter(componentSlot))\n } = inputOptions,\n options = _objectWithoutPropertiesLoose(inputOptions, _excluded);\n\n // if skipVariantsResolver option is defined, take the value, otherwise, true for root and false for other slots.\n const skipVariantsResolver = inputSkipVariantsResolver !== undefined ? inputSkipVariantsResolver :\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n componentSlot && componentSlot !== 'Root' && componentSlot !== 'root' || false;\n const skipSx = inputSkipSx || false;\n let label;\n if (process.env.NODE_ENV !== 'production') {\n if (componentName) {\n // TODO v6: remove `lowercaseFirstLetter()` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n label = `${componentName}-${lowercaseFirstLetter(componentSlot || 'Root')}`;\n }\n }\n let shouldForwardPropOption = shouldForwardProp;\n\n // TODO v6: remove `Root` in the next major release\n // For more details: https://github.com/mui/material-ui/pull/37908\n if (componentSlot === 'Root' || componentSlot === 'root') {\n shouldForwardPropOption = rootShouldForwardProp;\n } else if (componentSlot) {\n // any other slot specified\n shouldForwardPropOption = slotShouldForwardProp;\n } else if (isStringTag(tag)) {\n // for string (html) tag, preserve the behavior in emotion & styled-components.\n shouldForwardPropOption = undefined;\n }\n const defaultStyledResolver = styledEngineStyled(tag, _extends({\n shouldForwardProp: shouldForwardPropOption,\n label\n }, options));\n const muiStyledResolver = (styleArg, ...expressions) => {\n const expressionsWithDefaultTheme = expressions ? expressions.map(stylesArg => {\n // On the server Emotion doesn't use React.forwardRef for creating components, so the created\n // component stays as a function. This condition makes sure that we do not interpolate functions\n // which are basically components used as a selectors.\n if (typeof stylesArg === 'function' && stylesArg.__emotion_real !== stylesArg) {\n return props => muiStyledFunctionResolver({\n styledArg: stylesArg,\n props,\n defaultTheme,\n themeId\n });\n }\n if (isPlainObject(stylesArg)) {\n let transformedStylesArg = stylesArg;\n let styledArgVariants;\n if (stylesArg && stylesArg.variants) {\n styledArgVariants = stylesArg.variants;\n delete transformedStylesArg.variants;\n transformedStylesArg = props => {\n let result = stylesArg;\n const variantStyles = variantsResolver(props, transformVariants(styledArgVariants), styledArgVariants);\n variantStyles.forEach(variantStyle => {\n result = deepmerge(result, variantStyle);\n });\n return result;\n };\n }\n return transformedStylesArg;\n }\n return stylesArg;\n }) : [];\n let transformedStyleArg = styleArg;\n if (isPlainObject(styleArg)) {\n let styledArgVariants;\n if (styleArg && styleArg.variants) {\n styledArgVariants = styleArg.variants;\n delete transformedStyleArg.variants;\n transformedStyleArg = props => {\n let result = styleArg;\n const variantStyles = variantsResolver(props, transformVariants(styledArgVariants), styledArgVariants);\n variantStyles.forEach(variantStyle => {\n result = deepmerge(result, variantStyle);\n });\n return result;\n };\n }\n } else if (typeof styleArg === 'function' &&\n // On the server Emotion doesn't use React.forwardRef for creating components, so the created\n // component stays as a function. This condition makes sure that we do not interpolate functions\n // which are basically components used as a selectors.\n styleArg.__emotion_real !== styleArg) {\n // If the type is function, we need to define the default theme.\n transformedStyleArg = props => muiStyledFunctionResolver({\n styledArg: styleArg,\n props,\n defaultTheme,\n themeId\n });\n }\n if (componentName && overridesResolver) {\n expressionsWithDefaultTheme.push(props => {\n const theme = resolveTheme(_extends({}, props, {\n defaultTheme,\n themeId\n }));\n const styleOverrides = getStyleOverrides(componentName, theme);\n if (styleOverrides) {\n const resolvedStyleOverrides = {};\n Object.entries(styleOverrides).forEach(([slotKey, slotStyle]) => {\n resolvedStyleOverrides[slotKey] = typeof slotStyle === 'function' ? slotStyle(_extends({}, props, {\n theme\n })) : slotStyle;\n });\n return overridesResolver(props, resolvedStyleOverrides);\n }\n return null;\n });\n }\n if (componentName && !skipVariantsResolver) {\n expressionsWithDefaultTheme.push(props => {\n const theme = resolveTheme(_extends({}, props, {\n defaultTheme,\n themeId\n }));\n return themeVariantsResolver(props, getVariantStyles(componentName, theme), theme, componentName);\n });\n }\n if (!skipSx) {\n expressionsWithDefaultTheme.push(systemSx);\n }\n const numOfCustomFnsApplied = expressionsWithDefaultTheme.length - expressions.length;\n if (Array.isArray(styleArg) && numOfCustomFnsApplied > 0) {\n const placeholders = new Array(numOfCustomFnsApplied).fill('');\n // If the type is array, than we need to add placeholders in the template for the overrides, variants and the sx styles.\n transformedStyleArg = [...styleArg, ...placeholders];\n transformedStyleArg.raw = [...styleArg.raw, ...placeholders];\n }\n const Component = defaultStyledResolver(transformedStyleArg, ...expressionsWithDefaultTheme);\n if (process.env.NODE_ENV !== 'production') {\n let displayName;\n if (componentName) {\n displayName = `${componentName}${capitalize(componentSlot || '')}`;\n }\n if (displayName === undefined) {\n displayName = `Styled(${getDisplayName(tag)})`;\n }\n Component.displayName = displayName;\n }\n if (tag.muiName) {\n Component.muiName = tag.muiName;\n }\n return Component;\n };\n if (defaultStyledResolver.withConfig) {\n muiStyledResolver.withConfig = defaultStyledResolver.withConfig;\n }\n return muiStyledResolver;\n };\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"values\", \"unit\", \"step\"];\n// Sorted ASC by size. That's important.\n// It can't be configured as it's used statically for propTypes.\nexport const breakpointKeys = ['xs', 'sm', 'md', 'lg', 'xl'];\nconst sortBreakpointsValues = values => {\n const breakpointsAsArray = Object.keys(values).map(key => ({\n key,\n val: values[key]\n })) || [];\n // Sort in ascending order\n breakpointsAsArray.sort((breakpoint1, breakpoint2) => breakpoint1.val - breakpoint2.val);\n return breakpointsAsArray.reduce((acc, obj) => {\n return _extends({}, acc, {\n [obj.key]: obj.val\n });\n }, {});\n};\n\n// Keep in mind that @media is inclusive by the CSS specification.\nexport default function createBreakpoints(breakpoints) {\n const {\n // The breakpoint **start** at this value.\n // For instance with the first breakpoint xs: [xs, sm).\n values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n },\n\n unit = 'px',\n step = 5\n } = breakpoints,\n other = _objectWithoutPropertiesLoose(breakpoints, _excluded);\n const sortedValues = sortBreakpointsValues(values);\n const keys = Object.keys(sortedValues);\n function up(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (min-width:${value}${unit})`;\n }\n function down(key) {\n const value = typeof values[key] === 'number' ? values[key] : key;\n return `@media (max-width:${value - step / 100}${unit})`;\n }\n function between(start, end) {\n const endIndex = keys.indexOf(end);\n return `@media (min-width:${typeof values[start] === 'number' ? values[start] : start}${unit}) and ` + `(max-width:${(endIndex !== -1 && typeof values[keys[endIndex]] === 'number' ? values[keys[endIndex]] : end) - step / 100}${unit})`;\n }\n function only(key) {\n if (keys.indexOf(key) + 1 < keys.length) {\n return between(key, keys[keys.indexOf(key) + 1]);\n }\n return up(key);\n }\n function not(key) {\n // handle first and last key separately, for better readability\n const keyIndex = keys.indexOf(key);\n if (keyIndex === 0) {\n return up(keys[1]);\n }\n if (keyIndex === keys.length - 1) {\n return down(keys[keyIndex]);\n }\n return between(key, keys[keys.indexOf(key) + 1]).replace('@media', '@media not all and');\n }\n return _extends({\n keys,\n values: sortedValues,\n up,\n down,\n between,\n only,\n not,\n unit\n }, other);\n}","const shape = {\n borderRadius: 4\n};\nexport default shape;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"breakpoints\", \"palette\", \"spacing\", \"shape\"];\nimport { deepmerge } from '@mui/utils';\nimport createBreakpoints from './createBreakpoints';\nimport shape from './shape';\nimport createSpacing from './createSpacing';\nimport styleFunctionSx from '../styleFunctionSx/styleFunctionSx';\nimport defaultSxConfig from '../styleFunctionSx/defaultSxConfig';\nfunction createTheme(options = {}, ...args) {\n const {\n breakpoints: breakpointsInput = {},\n palette: paletteInput = {},\n spacing: spacingInput,\n shape: shapeInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n const breakpoints = createBreakpoints(breakpointsInput);\n const spacing = createSpacing(spacingInput);\n let muiTheme = deepmerge({\n breakpoints,\n direction: 'ltr',\n components: {},\n // Inject component definitions.\n palette: _extends({\n mode: 'light'\n }, paletteInput),\n spacing,\n shape: _extends({}, shape, shapeInput)\n }, other);\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n muiTheme.unstable_sxConfig = _extends({}, defaultSxConfig, other == null ? void 0 : other.unstable_sxConfig);\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nexport default createTheme;","import { createUnarySpacing } from '../spacing';\n\n// The different signatures imply different meaning for their arguments that can't be expressed structurally.\n// We express the difference with variable names.\n/* tslint:disable:unified-signatures */\n/* tslint:enable:unified-signatures */\n\nexport default function createSpacing(spacingInput = 8) {\n // Already transformed.\n if (spacingInput.mui) {\n return spacingInput;\n }\n\n // Material Design layouts are visually balanced. Most measurements align to an 8dp grid, which aligns both spacing and the overall layout.\n // Smaller components, such as icons, can align to a 4dp grid.\n // https://m2.material.io/design/layout/understanding-layout.html\n const transform = createUnarySpacing({\n spacing: spacingInput\n });\n const spacing = (...argsInput) => {\n if (process.env.NODE_ENV !== 'production') {\n if (!(argsInput.length <= 4)) {\n console.error(`MUI: Too many arguments provided, expected between 0 and 4, got ${argsInput.length}`);\n }\n }\n const args = argsInput.length === 0 ? [1] : argsInput;\n return args.map(argument => {\n const output = transform(argument);\n return typeof output === 'number' ? `${output}px` : output;\n }).join(' ');\n };\n spacing.mui = true;\n return spacing;\n}","import { deepmerge } from '@mui/utils';\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n });\n}\n\nexport default merge;","import responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nimport { getPath } from './style';\nimport merge from './merge';\nimport memoize from './memoize';\nconst properties = {\n m: 'margin',\n p: 'padding'\n};\nconst directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nconst aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n};\n\n// memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\nconst getCssProperties = memoize(prop => {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n const [a, b] = prop.split('');\n const property = properties[a];\n const direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(dir => property + dir) : [property + direction];\n});\nexport const marginKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'marginInline', 'marginInlineStart', 'marginInlineEnd', 'marginBlock', 'marginBlockStart', 'marginBlockEnd'];\nexport const paddingKeys = ['p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY', 'paddingInline', 'paddingInlineStart', 'paddingInlineEnd', 'paddingBlock', 'paddingBlockStart', 'paddingBlockEnd'];\nconst spacingKeys = [...marginKeys, ...paddingKeys];\nexport function createUnaryUnit(theme, themeKey, defaultValue, propName) {\n var _getPath;\n const themeSpacing = (_getPath = getPath(theme, themeKey, false)) != null ? _getPath : defaultValue;\n if (typeof themeSpacing === 'number') {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (typeof abs !== 'number') {\n console.error(`MUI: Expected ${propName} argument to be a number or a string, got ${abs}.`);\n }\n }\n return themeSpacing * abs;\n };\n }\n if (Array.isArray(themeSpacing)) {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!Number.isInteger(abs)) {\n console.error([`MUI: The \\`theme.${themeKey}\\` array type cannot be combined with non integer values.` + `You should either use an integer value that can be used as index, or define the \\`theme.${themeKey}\\` as a number.`].join('\\n'));\n } else if (abs > themeSpacing.length - 1) {\n console.error([`MUI: The value provided (${abs}) overflows.`, `The supported values are: ${JSON.stringify(themeSpacing)}.`, `${abs} > ${themeSpacing.length - 1}, you need to add the missing values.`].join('\\n'));\n }\n }\n return themeSpacing[abs];\n };\n }\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n if (process.env.NODE_ENV !== 'production') {\n console.error([`MUI: The \\`theme.${themeKey}\\` value (${themeSpacing}) is invalid.`, 'It should be a number, an array or a function.'].join('\\n'));\n }\n return () => undefined;\n}\nexport function createUnarySpacing(theme) {\n return createUnaryUnit(theme, 'spacing', 8, 'spacing');\n}\nexport function getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n const abs = Math.abs(propValue);\n const transformed = transformer(abs);\n if (propValue >= 0) {\n return transformed;\n }\n if (typeof transformed === 'number') {\n return -transformed;\n }\n return `-${transformed}`;\n}\nexport function getStyleFromPropValue(cssProperties, transformer) {\n return propValue => cssProperties.reduce((acc, cssProperty) => {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n}\nfunction resolveCssProperty(props, keys, prop, transformer) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (keys.indexOf(prop) === -1) {\n return null;\n }\n const cssProperties = getCssProperties(prop);\n const styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n const propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n}\nfunction style(props, keys) {\n const transformer = createUnarySpacing(props.theme);\n return Object.keys(props).map(prop => resolveCssProperty(props, keys, prop, transformer)).reduce(merge, {});\n}\nexport function margin(props) {\n return style(props, marginKeys);\n}\nmargin.propTypes = process.env.NODE_ENV !== 'production' ? marginKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nmargin.filterProps = marginKeys;\nexport function padding(props) {\n return style(props, paddingKeys);\n}\npadding.propTypes = process.env.NODE_ENV !== 'production' ? paddingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\npadding.filterProps = paddingKeys;\nfunction spacing(props) {\n return style(props, spacingKeys);\n}\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","export default function memoize(fn) {\n const cache = {};\n return arg => {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n return cache[arg];\n };\n}","import { unstable_capitalize as capitalize } from '@mui/utils';\nimport responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nexport function getPath(obj, path, checkVars = true) {\n if (!path || typeof path !== 'string') {\n return null;\n }\n\n // Check if CSS variables are used\n if (obj && obj.vars && checkVars) {\n const val = `vars.${path}`.split('.').reduce((acc, item) => acc && acc[item] ? acc[item] : null, obj);\n if (val != null) {\n return val;\n }\n }\n return path.split('.').reduce((acc, item) => {\n if (acc && acc[item] != null) {\n return acc[item];\n }\n return null;\n }, obj);\n}\nexport function getStyleValue(themeMapping, transform, propValueFinal, userValue = propValueFinal) {\n let value;\n if (typeof themeMapping === 'function') {\n value = themeMapping(propValueFinal);\n } else if (Array.isArray(themeMapping)) {\n value = themeMapping[propValueFinal] || userValue;\n } else {\n value = getPath(themeMapping, propValueFinal) || userValue;\n }\n if (transform) {\n value = transform(value, userValue, themeMapping);\n }\n return value;\n}\nfunction style(options) {\n const {\n prop,\n cssProperty = options.prop,\n themeKey,\n transform\n } = options;\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n if (props[prop] == null) {\n return null;\n }\n const propValue = props[prop];\n const theme = props.theme;\n const themeMapping = getPath(theme, themeKey) || {};\n const styleFromPropValue = propValueFinal => {\n let value = getStyleValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getStyleValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, propValue, styleFromPropValue);\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? {\n [prop]: responsivePropType\n } : {};\n fn.filterProps = [prop];\n return fn;\n}\nexport default style;","import merge from './merge';\nfunction compose(...styles) {\n const handlers = styles.reduce((acc, style) => {\n style.filterProps.forEach(prop => {\n acc[prop] = style;\n });\n return acc;\n }, {});\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n return Object.keys(props).reduce((acc, prop) => {\n if (handlers[prop]) {\n return merge(acc, handlers[prop](props));\n }\n return acc;\n }, {});\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? styles.reduce((acc, style) => Object.assign(acc, style.propTypes), {}) : {};\n fn.filterProps = styles.reduce((acc, style) => acc.concat(style.filterProps), []);\n return fn;\n}\nexport default compose;","import responsivePropType from './responsivePropType';\nimport style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nexport function borderTransform(value) {\n if (typeof value !== 'number') {\n return value;\n }\n return `${value}px solid`;\n}\nexport const border = style({\n prop: 'border',\n themeKey: 'borders',\n transform: borderTransform\n});\nexport const borderTop = style({\n prop: 'borderTop',\n themeKey: 'borders',\n transform: borderTransform\n});\nexport const borderRight = style({\n prop: 'borderRight',\n themeKey: 'borders',\n transform: borderTransform\n});\nexport const borderBottom = style({\n prop: 'borderBottom',\n themeKey: 'borders',\n transform: borderTransform\n});\nexport const borderLeft = style({\n prop: 'borderLeft',\n themeKey: 'borders',\n transform: borderTransform\n});\nexport const borderColor = style({\n prop: 'borderColor',\n themeKey: 'palette'\n});\nexport const borderTopColor = style({\n prop: 'borderTopColor',\n themeKey: 'palette'\n});\nexport const borderRightColor = style({\n prop: 'borderRightColor',\n themeKey: 'palette'\n});\nexport const borderBottomColor = style({\n prop: 'borderBottomColor',\n themeKey: 'palette'\n});\nexport const borderLeftColor = style({\n prop: 'borderLeftColor',\n themeKey: 'palette'\n});\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const borderRadius = props => {\n if (props.borderRadius !== undefined && props.borderRadius !== null) {\n const transformer = createUnaryUnit(props.theme, 'shape.borderRadius', 4, 'borderRadius');\n const styleFromPropValue = propValue => ({\n borderRadius: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.borderRadius, styleFromPropValue);\n }\n return null;\n};\nborderRadius.propTypes = process.env.NODE_ENV !== 'production' ? {\n borderRadius: responsivePropType\n} : {};\nborderRadius.filterProps = ['borderRadius'];\nconst borders = compose(border, borderTop, borderRight, borderBottom, borderLeft, borderColor, borderTopColor, borderRightColor, borderBottomColor, borderLeftColor, borderRadius);\nexport default borders;","import style from './style';\nimport compose from './compose';\nimport { createUnaryUnit, getValue } from './spacing';\nimport { handleBreakpoints } from './breakpoints';\nimport responsivePropType from './responsivePropType';\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const gap = props => {\n if (props.gap !== undefined && props.gap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'gap');\n const styleFromPropValue = propValue => ({\n gap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.gap, styleFromPropValue);\n }\n return null;\n};\ngap.propTypes = process.env.NODE_ENV !== 'production' ? {\n gap: responsivePropType\n} : {};\ngap.filterProps = ['gap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const columnGap = props => {\n if (props.columnGap !== undefined && props.columnGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'columnGap');\n const styleFromPropValue = propValue => ({\n columnGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.columnGap, styleFromPropValue);\n }\n return null;\n};\ncolumnGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n columnGap: responsivePropType\n} : {};\ncolumnGap.filterProps = ['columnGap'];\n\n// false positive\n// eslint-disable-next-line react/function-component-definition\nexport const rowGap = props => {\n if (props.rowGap !== undefined && props.rowGap !== null) {\n const transformer = createUnaryUnit(props.theme, 'spacing', 8, 'rowGap');\n const styleFromPropValue = propValue => ({\n rowGap: getValue(transformer, propValue)\n });\n return handleBreakpoints(props, props.rowGap, styleFromPropValue);\n }\n return null;\n};\nrowGap.propTypes = process.env.NODE_ENV !== 'production' ? {\n rowGap: responsivePropType\n} : {};\nrowGap.filterProps = ['rowGap'];\nexport const gridColumn = style({\n prop: 'gridColumn'\n});\nexport const gridRow = style({\n prop: 'gridRow'\n});\nexport const gridAutoFlow = style({\n prop: 'gridAutoFlow'\n});\nexport const gridAutoColumns = style({\n prop: 'gridAutoColumns'\n});\nexport const gridAutoRows = style({\n prop: 'gridAutoRows'\n});\nexport const gridTemplateColumns = style({\n prop: 'gridTemplateColumns'\n});\nexport const gridTemplateRows = style({\n prop: 'gridTemplateRows'\n});\nexport const gridTemplateAreas = style({\n prop: 'gridTemplateAreas'\n});\nexport const gridArea = style({\n prop: 'gridArea'\n});\nconst grid = compose(gap, columnGap, rowGap, gridColumn, gridRow, gridAutoFlow, gridAutoColumns, gridAutoRows, gridTemplateColumns, gridTemplateRows, gridTemplateAreas, gridArea);\nexport default grid;","import style from './style';\nimport compose from './compose';\nexport function paletteTransform(value, userValue) {\n if (userValue === 'grey') {\n return userValue;\n }\n return value;\n}\nexport const color = style({\n prop: 'color',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const bgcolor = style({\n prop: 'bgcolor',\n cssProperty: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nexport const backgroundColor = style({\n prop: 'backgroundColor',\n themeKey: 'palette',\n transform: paletteTransform\n});\nconst palette = compose(color, bgcolor, backgroundColor);\nexport default palette;","import style from './style';\nimport compose from './compose';\nimport { handleBreakpoints, values as breakpointsValues } from './breakpoints';\nexport function sizingTransform(value) {\n return value <= 1 && value !== 0 ? `${value * 100}%` : value;\n}\nexport const width = style({\n prop: 'width',\n transform: sizingTransform\n});\nexport const maxWidth = props => {\n if (props.maxWidth !== undefined && props.maxWidth !== null) {\n const styleFromPropValue = propValue => {\n var _props$theme, _props$theme2;\n const breakpoint = ((_props$theme = props.theme) == null || (_props$theme = _props$theme.breakpoints) == null || (_props$theme = _props$theme.values) == null ? void 0 : _props$theme[propValue]) || breakpointsValues[propValue];\n if (!breakpoint) {\n return {\n maxWidth: sizingTransform(propValue)\n };\n }\n if (((_props$theme2 = props.theme) == null || (_props$theme2 = _props$theme2.breakpoints) == null ? void 0 : _props$theme2.unit) !== 'px') {\n return {\n maxWidth: `${breakpoint}${props.theme.breakpoints.unit}`\n };\n }\n return {\n maxWidth: breakpoint\n };\n };\n return handleBreakpoints(props, props.maxWidth, styleFromPropValue);\n }\n return null;\n};\nmaxWidth.filterProps = ['maxWidth'];\nexport const minWidth = style({\n prop: 'minWidth',\n transform: sizingTransform\n});\nexport const height = style({\n prop: 'height',\n transform: sizingTransform\n});\nexport const maxHeight = style({\n prop: 'maxHeight',\n transform: sizingTransform\n});\nexport const minHeight = style({\n prop: 'minHeight',\n transform: sizingTransform\n});\nexport const sizeWidth = style({\n prop: 'size',\n cssProperty: 'width',\n transform: sizingTransform\n});\nexport const sizeHeight = style({\n prop: 'size',\n cssProperty: 'height',\n transform: sizingTransform\n});\nexport const boxSizing = style({\n prop: 'boxSizing'\n});\nconst sizing = compose(width, maxWidth, minWidth, height, maxHeight, minHeight, boxSizing);\nexport default sizing;","import { padding, margin } from '../spacing';\nimport { borderRadius, borderTransform } from '../borders';\nimport { gap, rowGap, columnGap } from '../cssGrid';\nimport { paletteTransform } from '../palette';\nimport { maxWidth, sizingTransform } from '../sizing';\nconst defaultSxConfig = {\n // borders\n border: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderTop: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderRight: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderBottom: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderLeft: {\n themeKey: 'borders',\n transform: borderTransform\n },\n borderColor: {\n themeKey: 'palette'\n },\n borderTopColor: {\n themeKey: 'palette'\n },\n borderRightColor: {\n themeKey: 'palette'\n },\n borderBottomColor: {\n themeKey: 'palette'\n },\n borderLeftColor: {\n themeKey: 'palette'\n },\n borderRadius: {\n themeKey: 'shape.borderRadius',\n style: borderRadius\n },\n // palette\n color: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n bgcolor: {\n themeKey: 'palette',\n cssProperty: 'backgroundColor',\n transform: paletteTransform\n },\n backgroundColor: {\n themeKey: 'palette',\n transform: paletteTransform\n },\n // spacing\n p: {\n style: padding\n },\n pt: {\n style: padding\n },\n pr: {\n style: padding\n },\n pb: {\n style: padding\n },\n pl: {\n style: padding\n },\n px: {\n style: padding\n },\n py: {\n style: padding\n },\n padding: {\n style: padding\n },\n paddingTop: {\n style: padding\n },\n paddingRight: {\n style: padding\n },\n paddingBottom: {\n style: padding\n },\n paddingLeft: {\n style: padding\n },\n paddingX: {\n style: padding\n },\n paddingY: {\n style: padding\n },\n paddingInline: {\n style: padding\n },\n paddingInlineStart: {\n style: padding\n },\n paddingInlineEnd: {\n style: padding\n },\n paddingBlock: {\n style: padding\n },\n paddingBlockStart: {\n style: padding\n },\n paddingBlockEnd: {\n style: padding\n },\n m: {\n style: margin\n },\n mt: {\n style: margin\n },\n mr: {\n style: margin\n },\n mb: {\n style: margin\n },\n ml: {\n style: margin\n },\n mx: {\n style: margin\n },\n my: {\n style: margin\n },\n margin: {\n style: margin\n },\n marginTop: {\n style: margin\n },\n marginRight: {\n style: margin\n },\n marginBottom: {\n style: margin\n },\n marginLeft: {\n style: margin\n },\n marginX: {\n style: margin\n },\n marginY: {\n style: margin\n },\n marginInline: {\n style: margin\n },\n marginInlineStart: {\n style: margin\n },\n marginInlineEnd: {\n style: margin\n },\n marginBlock: {\n style: margin\n },\n marginBlockStart: {\n style: margin\n },\n marginBlockEnd: {\n style: margin\n },\n // display\n displayPrint: {\n cssProperty: false,\n transform: value => ({\n '@media print': {\n display: value\n }\n })\n },\n display: {},\n overflow: {},\n textOverflow: {},\n visibility: {},\n whiteSpace: {},\n // flexbox\n flexBasis: {},\n flexDirection: {},\n flexWrap: {},\n justifyContent: {},\n alignItems: {},\n alignContent: {},\n order: {},\n flex: {},\n flexGrow: {},\n flexShrink: {},\n alignSelf: {},\n justifyItems: {},\n justifySelf: {},\n // grid\n gap: {\n style: gap\n },\n rowGap: {\n style: rowGap\n },\n columnGap: {\n style: columnGap\n },\n gridColumn: {},\n gridRow: {},\n gridAutoFlow: {},\n gridAutoColumns: {},\n gridAutoRows: {},\n gridTemplateColumns: {},\n gridTemplateRows: {},\n gridTemplateAreas: {},\n gridArea: {},\n // positions\n position: {},\n zIndex: {\n themeKey: 'zIndex'\n },\n top: {},\n right: {},\n bottom: {},\n left: {},\n // shadows\n boxShadow: {\n themeKey: 'shadows'\n },\n // sizing\n width: {\n transform: sizingTransform\n },\n maxWidth: {\n style: maxWidth\n },\n minWidth: {\n transform: sizingTransform\n },\n height: {\n transform: sizingTransform\n },\n maxHeight: {\n transform: sizingTransform\n },\n minHeight: {\n transform: sizingTransform\n },\n boxSizing: {},\n // typography\n fontFamily: {\n themeKey: 'typography'\n },\n fontSize: {\n themeKey: 'typography'\n },\n fontStyle: {\n themeKey: 'typography'\n },\n fontWeight: {\n themeKey: 'typography'\n },\n letterSpacing: {},\n textTransform: {},\n lineHeight: {},\n textAlign: {},\n typography: {\n cssProperty: false,\n themeKey: 'typography'\n }\n};\nexport default defaultSxConfig;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"sx\"];\nimport { isPlainObject } from '@mui/utils';\nimport defaultSxConfig from './defaultSxConfig';\nconst splitProps = props => {\n var _props$theme$unstable, _props$theme;\n const result = {\n systemProps: {},\n otherProps: {}\n };\n const config = (_props$theme$unstable = props == null || (_props$theme = props.theme) == null ? void 0 : _props$theme.unstable_sxConfig) != null ? _props$theme$unstable : defaultSxConfig;\n Object.keys(props).forEach(prop => {\n if (config[prop]) {\n result.systemProps[prop] = props[prop];\n } else {\n result.otherProps[prop] = props[prop];\n }\n });\n return result;\n};\nexport default function extendSxProp(props) {\n const {\n sx: inSx\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const {\n systemProps,\n otherProps\n } = splitProps(other);\n let finalSx;\n if (Array.isArray(inSx)) {\n finalSx = [systemProps, ...inSx];\n } else if (typeof inSx === 'function') {\n finalSx = (...args) => {\n const result = inSx(...args);\n if (!isPlainObject(result)) {\n return systemProps;\n }\n return _extends({}, systemProps, result);\n };\n } else {\n finalSx = _extends({}, systemProps, inSx);\n }\n return _extends({}, otherProps, {\n sx: finalSx\n });\n}","import { unstable_capitalize as capitalize } from '@mui/utils';\nimport merge from '../merge';\nimport { getPath, getStyleValue as getValue } from '../style';\nimport { handleBreakpoints, createEmptyBreakpointObject, removeUnusedBreakpoints } from '../breakpoints';\nimport defaultSxConfig from './defaultSxConfig';\nfunction objectsHaveSameKeys(...objects) {\n const allKeys = objects.reduce((keys, object) => keys.concat(Object.keys(object)), []);\n const union = new Set(allKeys);\n return objects.every(object => union.size === Object.keys(object).length);\n}\nfunction callIfFn(maybeFn, arg) {\n return typeof maybeFn === 'function' ? maybeFn(arg) : maybeFn;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport function unstable_createStyleFunctionSx() {\n function getThemeValue(prop, val, theme, config) {\n const props = {\n [prop]: val,\n theme\n };\n const options = config[prop];\n if (!options) {\n return {\n [prop]: val\n };\n }\n const {\n cssProperty = prop,\n themeKey,\n transform,\n style\n } = options;\n if (val == null) {\n return null;\n }\n\n // TODO v6: remove, see https://github.com/mui/material-ui/pull/38123\n if (themeKey === 'typography' && val === 'inherit') {\n return {\n [prop]: val\n };\n }\n const themeMapping = getPath(theme, themeKey) || {};\n if (style) {\n return style(props);\n }\n const styleFromPropValue = propValueFinal => {\n let value = getValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, val, styleFromPropValue);\n }\n function styleFunctionSx(props) {\n var _theme$unstable_sxCon;\n const {\n sx,\n theme = {}\n } = props || {};\n if (!sx) {\n return null; // Emotion & styled-components will neglect null\n }\n\n const config = (_theme$unstable_sxCon = theme.unstable_sxConfig) != null ? _theme$unstable_sxCon : defaultSxConfig;\n\n /*\n * Receive `sxInput` as object or callback\n * and then recursively check keys & values to create media query object styles.\n * (the result will be used in `styled`)\n */\n function traverse(sxInput) {\n let sxObject = sxInput;\n if (typeof sxInput === 'function') {\n sxObject = sxInput(theme);\n } else if (typeof sxInput !== 'object') {\n // value\n return sxInput;\n }\n if (!sxObject) {\n return null;\n }\n const emptyBreakpoints = createEmptyBreakpointObject(theme.breakpoints);\n const breakpointsKeys = Object.keys(emptyBreakpoints);\n let css = emptyBreakpoints;\n Object.keys(sxObject).forEach(styleKey => {\n const value = callIfFn(sxObject[styleKey], theme);\n if (value !== null && value !== undefined) {\n if (typeof value === 'object') {\n if (config[styleKey]) {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n } else {\n const breakpointsValues = handleBreakpoints({\n theme\n }, value, x => ({\n [styleKey]: x\n }));\n if (objectsHaveSameKeys(breakpointsValues, value)) {\n css[styleKey] = styleFunctionSx({\n sx: value,\n theme\n });\n } else {\n css = merge(css, breakpointsValues);\n }\n }\n } else {\n css = merge(css, getThemeValue(styleKey, value, theme, config));\n }\n }\n });\n return removeUnusedBreakpoints(breakpointsKeys, css);\n }\n return Array.isArray(sx) ? sx.map(traverse) : traverse(sx);\n }\n return styleFunctionSx;\n}\nconst styleFunctionSx = unstable_createStyleFunctionSx();\nstyleFunctionSx.filterProps = ['sx'];\nexport default styleFunctionSx;","'use client';\n\nimport createTheme from './createTheme';\nimport useThemeWithoutDefault from './useThemeWithoutDefault';\nexport const systemDefaultTheme = createTheme();\nfunction useTheme(defaultTheme = systemDefaultTheme) {\n return useThemeWithoutDefault(defaultTheme);\n}\nexport default useTheme;","import { internal_resolveProps as resolveProps } from '@mui/utils';\nexport default function getThemeProps(params) {\n const {\n theme,\n name,\n props\n } = params;\n if (!theme || !theme.components || !theme.components[name] || !theme.components[name].defaultProps) {\n return props;\n }\n return resolveProps(theme.components[name].defaultProps, props);\n}","'use client';\n\nimport getThemeProps from './getThemeProps';\nimport useTheme from '../useTheme';\nexport default function useThemeProps({\n props,\n name,\n defaultTheme,\n themeId\n}) {\n let theme = useTheme(defaultTheme);\n if (themeId) {\n theme = theme[themeId] || theme;\n }\n const mergedProps = getThemeProps({\n theme,\n name,\n props\n });\n return mergedProps;\n}","'use client';\n\nimport * as React from 'react';\nimport { ThemeContext } from '@mui/styled-engine';\nfunction isObjectEmpty(obj) {\n return Object.keys(obj).length === 0;\n}\nfunction useTheme(defaultTheme = null) {\n const contextTheme = React.useContext(ThemeContext);\n return !contextTheme || isObjectEmpty(contextTheme) ? defaultTheme : contextTheme;\n}\nexport default useTheme;","const common = {\n black: '#000',\n white: '#fff'\n};\nexport default common;","const purple = {\n 50: '#f3e5f5',\n 100: '#e1bee7',\n 200: '#ce93d8',\n 300: '#ba68c8',\n 400: '#ab47bc',\n 500: '#9c27b0',\n 600: '#8e24aa',\n 700: '#7b1fa2',\n 800: '#6a1b9a',\n 900: '#4a148c',\n A100: '#ea80fc',\n A200: '#e040fb',\n A400: '#d500f9',\n A700: '#aa00ff'\n};\nexport default purple;","const lightBlue = {\n 50: '#e1f5fe',\n 100: '#b3e5fc',\n 200: '#81d4fa',\n 300: '#4fc3f7',\n 400: '#29b6f6',\n 500: '#03a9f4',\n 600: '#039be5',\n 700: '#0288d1',\n 800: '#0277bd',\n 900: '#01579b',\n A100: '#80d8ff',\n A200: '#40c4ff',\n A400: '#00b0ff',\n A700: '#0091ea'\n};\nexport default lightBlue;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@mui/utils\";\nconst _excluded = [\"mode\", \"contrastThreshold\", \"tonalOffset\"];\nimport { deepmerge } from '@mui/utils';\nimport { darken, getContrastRatio, lighten } from '@mui/system';\nimport common from '../colors/common';\nimport grey from '../colors/grey';\nimport purple from '../colors/purple';\nimport red from '../colors/red';\nimport orange from '../colors/orange';\nimport blue from '../colors/blue';\nimport lightBlue from '../colors/lightBlue';\nimport green from '../colors/green';\nexport const light = {\n // The colors used to style the text.\n text: {\n // The most important text.\n primary: 'rgba(0, 0, 0, 0.87)',\n // Secondary text.\n secondary: 'rgba(0, 0, 0, 0.6)',\n // Disabled text have even lower visual prominence.\n disabled: 'rgba(0, 0, 0, 0.38)'\n },\n // The color used to divide different elements.\n divider: 'rgba(0, 0, 0, 0.12)',\n // The background colors used to style the surfaces.\n // Consistency between these values is important.\n background: {\n paper: common.white,\n default: common.white\n },\n // The colors used to style the action elements.\n action: {\n // The color of an active action like an icon button.\n active: 'rgba(0, 0, 0, 0.54)',\n // The color of an hovered action.\n hover: 'rgba(0, 0, 0, 0.04)',\n hoverOpacity: 0.04,\n // The color of a selected action.\n selected: 'rgba(0, 0, 0, 0.08)',\n selectedOpacity: 0.08,\n // The color of a disabled action.\n disabled: 'rgba(0, 0, 0, 0.26)',\n // The background color of a disabled action.\n disabledBackground: 'rgba(0, 0, 0, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(0, 0, 0, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.12\n }\n};\nexport const dark = {\n text: {\n primary: common.white,\n secondary: 'rgba(255, 255, 255, 0.7)',\n disabled: 'rgba(255, 255, 255, 0.5)',\n icon: 'rgba(255, 255, 255, 0.5)'\n },\n divider: 'rgba(255, 255, 255, 0.12)',\n background: {\n paper: '#121212',\n default: '#121212'\n },\n action: {\n active: common.white,\n hover: 'rgba(255, 255, 255, 0.08)',\n hoverOpacity: 0.08,\n selected: 'rgba(255, 255, 255, 0.16)',\n selectedOpacity: 0.16,\n disabled: 'rgba(255, 255, 255, 0.3)',\n disabledBackground: 'rgba(255, 255, 255, 0.12)',\n disabledOpacity: 0.38,\n focus: 'rgba(255, 255, 255, 0.12)',\n focusOpacity: 0.12,\n activatedOpacity: 0.24\n }\n};\nfunction addLightOrDark(intent, direction, shade, tonalOffset) {\n const tonalOffsetLight = tonalOffset.light || tonalOffset;\n const tonalOffsetDark = tonalOffset.dark || tonalOffset * 1.5;\n if (!intent[direction]) {\n if (intent.hasOwnProperty(shade)) {\n intent[direction] = intent[shade];\n } else if (direction === 'light') {\n intent.light = lighten(intent.main, tonalOffsetLight);\n } else if (direction === 'dark') {\n intent.dark = darken(intent.main, tonalOffsetDark);\n }\n }\n}\nfunction getDefaultPrimary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: blue[200],\n light: blue[50],\n dark: blue[400]\n };\n }\n return {\n main: blue[700],\n light: blue[400],\n dark: blue[800]\n };\n}\nfunction getDefaultSecondary(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: purple[200],\n light: purple[50],\n dark: purple[400]\n };\n }\n return {\n main: purple[500],\n light: purple[300],\n dark: purple[700]\n };\n}\nfunction getDefaultError(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: red[500],\n light: red[300],\n dark: red[700]\n };\n }\n return {\n main: red[700],\n light: red[400],\n dark: red[800]\n };\n}\nfunction getDefaultInfo(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: lightBlue[400],\n light: lightBlue[300],\n dark: lightBlue[700]\n };\n }\n return {\n main: lightBlue[700],\n light: lightBlue[500],\n dark: lightBlue[900]\n };\n}\nfunction getDefaultSuccess(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: green[400],\n light: green[300],\n dark: green[700]\n };\n }\n return {\n main: green[800],\n light: green[500],\n dark: green[900]\n };\n}\nfunction getDefaultWarning(mode = 'light') {\n if (mode === 'dark') {\n return {\n main: orange[400],\n light: orange[300],\n dark: orange[700]\n };\n }\n return {\n main: '#ed6c02',\n // closest to orange[800] that pass 3:1.\n light: orange[500],\n dark: orange[900]\n };\n}\nexport default function createPalette(palette) {\n const {\n mode = 'light',\n contrastThreshold = 3,\n tonalOffset = 0.2\n } = palette,\n other = _objectWithoutPropertiesLoose(palette, _excluded);\n const primary = palette.primary || getDefaultPrimary(mode);\n const secondary = palette.secondary || getDefaultSecondary(mode);\n const error = palette.error || getDefaultError(mode);\n const info = palette.info || getDefaultInfo(mode);\n const success = palette.success || getDefaultSuccess(mode);\n const warning = palette.warning || getDefaultWarning(mode);\n\n // Use the same logic as\n // Bootstrap: https://github.com/twbs/bootstrap/blob/1d6e3710dd447de1a200f29e8fa521f8a0908f70/scss/_functions.scss#L59\n // and material-components-web https://github.com/material-components/material-components-web/blob/ac46b8863c4dab9fc22c4c662dc6bd1b65dd652f/packages/mdc-theme/_functions.scss#L54\n function getContrastText(background) {\n const contrastText = getContrastRatio(background, dark.text.primary) >= contrastThreshold ? dark.text.primary : light.text.primary;\n if (process.env.NODE_ENV !== 'production') {\n const contrast = getContrastRatio(background, contrastText);\n if (contrast < 3) {\n console.error([`MUI: The contrast ratio of ${contrast}:1 for ${contrastText} on ${background}`, 'falls below the WCAG recommended absolute minimum contrast ratio of 3:1.', 'https://www.w3.org/TR/2008/REC-WCAG20-20081211/#visual-audio-contrast-contrast'].join('\\n'));\n }\n }\n return contrastText;\n }\n const augmentColor = ({\n color,\n name,\n mainShade = 500,\n lightShade = 300,\n darkShade = 700\n }) => {\n color = _extends({}, color);\n if (!color.main && color[mainShade]) {\n color.main = color[mainShade];\n }\n if (!color.hasOwnProperty('main')) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\nThe color object needs to have a \\`main\\` property or a \\`${mainShade}\\` property.` : _formatMuiErrorMessage(11, name ? ` (${name})` : '', mainShade));\n }\n if (typeof color.main !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: The color${name ? ` (${name})` : ''} provided to augmentColor(color) is invalid.\n\\`color.main\\` should be a string, but \\`${JSON.stringify(color.main)}\\` was provided instead.\n\nDid you intend to use one of the following approaches?\n\nimport { green } from \"@mui/material/colors\";\n\nconst theme1 = createTheme({ palette: {\n primary: green,\n} });\n\nconst theme2 = createTheme({ palette: {\n primary: { main: green[500] },\n} });` : _formatMuiErrorMessage(12, name ? ` (${name})` : '', JSON.stringify(color.main)));\n }\n addLightOrDark(color, 'light', lightShade, tonalOffset);\n addLightOrDark(color, 'dark', darkShade, tonalOffset);\n if (!color.contrastText) {\n color.contrastText = getContrastText(color.main);\n }\n return color;\n };\n const modes = {\n dark,\n light\n };\n if (process.env.NODE_ENV !== 'production') {\n if (!modes[mode]) {\n console.error(`MUI: The palette mode \\`${mode}\\` is not supported.`);\n }\n }\n const paletteOutput = deepmerge(_extends({\n // A collection of common colors.\n common: _extends({}, common),\n // prevent mutable object.\n // The palette mode, can be light or dark.\n mode,\n // The colors used to represent primary interface elements for a user.\n primary: augmentColor({\n color: primary,\n name: 'primary'\n }),\n // The colors used to represent secondary interface elements for a user.\n secondary: augmentColor({\n color: secondary,\n name: 'secondary',\n mainShade: 'A400',\n lightShade: 'A200',\n darkShade: 'A700'\n }),\n // The colors used to represent interface elements that the user should be made aware of.\n error: augmentColor({\n color: error,\n name: 'error'\n }),\n // The colors used to represent potentially dangerous actions or important messages.\n warning: augmentColor({\n color: warning,\n name: 'warning'\n }),\n // The colors used to present information to the user that is neutral and not necessarily important.\n info: augmentColor({\n color: info,\n name: 'info'\n }),\n // The colors used to indicate the successful completion of an action that user triggered.\n success: augmentColor({\n color: success,\n name: 'success'\n }),\n // The grey colors.\n grey,\n // Used by `getContrastText()` to maximize the contrast between\n // the background and the text.\n contrastThreshold,\n // Takes a background color and returns the text color that maximizes the contrast.\n getContrastText,\n // Generate a rich color object.\n augmentColor,\n // Used by the functions below to shift a color's luminance by approximately\n // two indexes within its tonal palette.\n // E.g., shift from Red 500 to Red 300 or Red 700.\n tonalOffset\n }, modes[mode]), other);\n return paletteOutput;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"fontFamily\", \"fontSize\", \"fontWeightLight\", \"fontWeightRegular\", \"fontWeightMedium\", \"fontWeightBold\", \"htmlFontSize\", \"allVariants\", \"pxToRem\"];\nimport { deepmerge } from '@mui/utils';\nfunction round(value) {\n return Math.round(value * 1e5) / 1e5;\n}\nconst caseAllCaps = {\n textTransform: 'uppercase'\n};\nconst defaultFontFamily = '\"Roboto\", \"Helvetica\", \"Arial\", sans-serif';\n\n/**\n * @see @link{https://m2.material.io/design/typography/the-type-system.html}\n * @see @link{https://m2.material.io/design/typography/understanding-typography.html}\n */\nexport default function createTypography(palette, typography) {\n const _ref = typeof typography === 'function' ? typography(palette) : typography,\n {\n fontFamily = defaultFontFamily,\n // The default font size of the Material Specification.\n fontSize = 14,\n // px\n fontWeightLight = 300,\n fontWeightRegular = 400,\n fontWeightMedium = 500,\n fontWeightBold = 700,\n // Tell MUI what's the font-size on the html element.\n // 16px is the default font-size used by browsers.\n htmlFontSize = 16,\n // Apply the CSS properties to all the variants.\n allVariants,\n pxToRem: pxToRem2\n } = _ref,\n other = _objectWithoutPropertiesLoose(_ref, _excluded);\n if (process.env.NODE_ENV !== 'production') {\n if (typeof fontSize !== 'number') {\n console.error('MUI: `fontSize` is required to be a number.');\n }\n if (typeof htmlFontSize !== 'number') {\n console.error('MUI: `htmlFontSize` is required to be a number.');\n }\n }\n const coef = fontSize / 14;\n const pxToRem = pxToRem2 || (size => `${size / htmlFontSize * coef}rem`);\n const buildVariant = (fontWeight, size, lineHeight, letterSpacing, casing) => _extends({\n fontFamily,\n fontWeight,\n fontSize: pxToRem(size),\n // Unitless following https://meyerweb.com/eric/thoughts/2006/02/08/unitless-line-heights/\n lineHeight\n }, fontFamily === defaultFontFamily ? {\n letterSpacing: `${round(letterSpacing / size)}em`\n } : {}, casing, allVariants);\n const variants = {\n h1: buildVariant(fontWeightLight, 96, 1.167, -1.5),\n h2: buildVariant(fontWeightLight, 60, 1.2, -0.5),\n h3: buildVariant(fontWeightRegular, 48, 1.167, 0),\n h4: buildVariant(fontWeightRegular, 34, 1.235, 0.25),\n h5: buildVariant(fontWeightRegular, 24, 1.334, 0),\n h6: buildVariant(fontWeightMedium, 20, 1.6, 0.15),\n subtitle1: buildVariant(fontWeightRegular, 16, 1.75, 0.15),\n subtitle2: buildVariant(fontWeightMedium, 14, 1.57, 0.1),\n body1: buildVariant(fontWeightRegular, 16, 1.5, 0.15),\n body2: buildVariant(fontWeightRegular, 14, 1.43, 0.15),\n button: buildVariant(fontWeightMedium, 14, 1.75, 0.4, caseAllCaps),\n caption: buildVariant(fontWeightRegular, 12, 1.66, 0.4),\n overline: buildVariant(fontWeightRegular, 12, 2.66, 1, caseAllCaps)\n };\n return deepmerge(_extends({\n htmlFontSize,\n pxToRem,\n fontFamily,\n fontSize,\n fontWeightLight,\n fontWeightRegular,\n fontWeightMedium,\n fontWeightBold\n }, variants), other, {\n clone: false // No need to clone deep\n });\n}","const shadowKeyUmbraOpacity = 0.2;\nconst shadowKeyPenumbraOpacity = 0.14;\nconst shadowAmbientShadowOpacity = 0.12;\nfunction createShadow(...px) {\n return [`${px[0]}px ${px[1]}px ${px[2]}px ${px[3]}px rgba(0,0,0,${shadowKeyUmbraOpacity})`, `${px[4]}px ${px[5]}px ${px[6]}px ${px[7]}px rgba(0,0,0,${shadowKeyPenumbraOpacity})`, `${px[8]}px ${px[9]}px ${px[10]}px ${px[11]}px rgba(0,0,0,${shadowAmbientShadowOpacity})`].join(',');\n}\n\n// Values from https://github.com/material-components/material-components-web/blob/be8747f94574669cb5e7add1a7c54fa41a89cec7/packages/mdc-elevation/_variables.scss\nconst shadows = ['none', createShadow(0, 2, 1, -1, 0, 1, 1, 0, 0, 1, 3, 0), createShadow(0, 3, 1, -2, 0, 2, 2, 0, 0, 1, 5, 0), createShadow(0, 3, 3, -2, 0, 3, 4, 0, 0, 1, 8, 0), createShadow(0, 2, 4, -1, 0, 4, 5, 0, 0, 1, 10, 0), createShadow(0, 3, 5, -1, 0, 5, 8, 0, 0, 1, 14, 0), createShadow(0, 3, 5, -1, 0, 6, 10, 0, 0, 1, 18, 0), createShadow(0, 4, 5, -2, 0, 7, 10, 1, 0, 2, 16, 1), createShadow(0, 5, 5, -3, 0, 8, 10, 1, 0, 3, 14, 2), createShadow(0, 5, 6, -3, 0, 9, 12, 1, 0, 3, 16, 2), createShadow(0, 6, 6, -3, 0, 10, 14, 1, 0, 4, 18, 3), createShadow(0, 6, 7, -4, 0, 11, 15, 1, 0, 4, 20, 3), createShadow(0, 7, 8, -4, 0, 12, 17, 2, 0, 5, 22, 4), createShadow(0, 7, 8, -4, 0, 13, 19, 2, 0, 5, 24, 4), createShadow(0, 7, 9, -4, 0, 14, 21, 2, 0, 5, 26, 4), createShadow(0, 8, 9, -5, 0, 15, 22, 2, 0, 6, 28, 5), createShadow(0, 8, 10, -5, 0, 16, 24, 2, 0, 6, 30, 5), createShadow(0, 8, 11, -5, 0, 17, 26, 2, 0, 6, 32, 5), createShadow(0, 9, 11, -5, 0, 18, 28, 2, 0, 7, 34, 6), createShadow(0, 9, 12, -6, 0, 19, 29, 2, 0, 7, 36, 6), createShadow(0, 10, 13, -6, 0, 20, 31, 3, 0, 8, 38, 7), createShadow(0, 10, 13, -6, 0, 21, 33, 3, 0, 8, 40, 7), createShadow(0, 10, 14, -6, 0, 22, 35, 3, 0, 8, 42, 7), createShadow(0, 11, 14, -7, 0, 23, 36, 3, 0, 9, 44, 8), createShadow(0, 11, 15, -7, 0, 24, 38, 3, 0, 9, 46, 8)];\nexport default shadows;","// We need to centralize the zIndex definitions as they work\n// like global values in the browser.\nconst zIndex = {\n mobileStepper: 1000,\n fab: 1050,\n speedDial: 1050,\n appBar: 1100,\n drawer: 1200,\n modal: 1300,\n snackbar: 1400,\n tooltip: 1500\n};\nexport default zIndex;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport { formatMuiErrorMessage as _formatMuiErrorMessage } from \"@mui/utils\";\nconst _excluded = [\"breakpoints\", \"mixins\", \"spacing\", \"palette\", \"transitions\", \"typography\", \"shape\"];\nimport { deepmerge } from '@mui/utils';\nimport { createTheme as systemCreateTheme, unstable_defaultSxConfig as defaultSxConfig, unstable_styleFunctionSx as styleFunctionSx } from '@mui/system';\nimport generateUtilityClass from '../generateUtilityClass';\nimport createMixins from './createMixins';\nimport createPalette from './createPalette';\nimport createTypography from './createTypography';\nimport shadows from './shadows';\nimport createTransitions from './createTransitions';\nimport zIndex from './zIndex';\nfunction createTheme(options = {}, ...args) {\n const {\n mixins: mixinsInput = {},\n palette: paletteInput = {},\n transitions: transitionsInput = {},\n typography: typographyInput = {}\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n if (options.vars) {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`vars\\` is a private field used for CSS variables support.\nPlease use another name.` : _formatMuiErrorMessage(18));\n }\n const palette = createPalette(paletteInput);\n const systemTheme = systemCreateTheme(options);\n let muiTheme = deepmerge(systemTheme, {\n mixins: createMixins(systemTheme.breakpoints, mixinsInput),\n palette,\n // Don't use [...shadows] until you've verified its transpiled code is not invoking the iterator protocol.\n shadows: shadows.slice(),\n typography: createTypography(palette, typographyInput),\n transitions: createTransitions(transitionsInput),\n zIndex: _extends({}, zIndex)\n });\n muiTheme = deepmerge(muiTheme, other);\n muiTheme = args.reduce((acc, argument) => deepmerge(acc, argument), muiTheme);\n if (process.env.NODE_ENV !== 'production') {\n const stateClasses = ['active', 'checked', 'completed', 'disabled', 'error', 'expanded', 'focused', 'focusVisible', 'required', 'selected'];\n const traverse = (node, component) => {\n let key;\n\n // eslint-disable-next-line guard-for-in, no-restricted-syntax\n for (key in node) {\n const child = node[key];\n if (stateClasses.indexOf(key) !== -1 && Object.keys(child).length > 0) {\n if (process.env.NODE_ENV !== 'production') {\n const stateClass = generateUtilityClass('', key);\n console.error([`MUI: The \\`${component}\\` component increases ` + `the CSS specificity of the \\`${key}\\` internal state.`, 'You can not override it like this: ', JSON.stringify(node, null, 2), '', `Instead, you need to use the '&.${stateClass}' syntax:`, JSON.stringify({\n root: {\n [`&.${stateClass}`]: child\n }\n }, null, 2), '', 'https://mui.com/r/state-classes-guide'].join('\\n'));\n }\n // Remove the style to prevent global conflicts.\n node[key] = {};\n }\n }\n };\n Object.keys(muiTheme.components).forEach(component => {\n const styleOverrides = muiTheme.components[component].styleOverrides;\n if (styleOverrides && component.indexOf('Mui') === 0) {\n traverse(styleOverrides, component);\n }\n });\n }\n muiTheme.unstable_sxConfig = _extends({}, defaultSxConfig, other == null ? void 0 : other.unstable_sxConfig);\n muiTheme.unstable_sx = function sx(props) {\n return styleFunctionSx({\n sx: props,\n theme: this\n });\n };\n return muiTheme;\n}\nlet warnedOnce = false;\nexport function createMuiTheme(...args) {\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce) {\n warnedOnce = true;\n console.error(['MUI: the createMuiTheme function was renamed to createTheme.', '', \"You should use `import { createTheme } from '@mui/material/styles'`\"].join('\\n'));\n }\n }\n return createTheme(...args);\n}\nexport default createTheme;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function createMixins(breakpoints, mixins) {\n return _extends({\n toolbar: {\n minHeight: 56,\n [breakpoints.up('xs')]: {\n '@media (orientation: landscape)': {\n minHeight: 48\n }\n },\n [breakpoints.up('sm')]: {\n minHeight: 64\n }\n }\n }, mixins);\n}","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nconst _excluded = [\"duration\", \"easing\", \"delay\"];\n// Follow https://material.google.com/motion/duration-easing.html#duration-easing-natural-easing-curves\n// to learn the context in which each easing should be used.\nexport const easing = {\n // This is the most common easing curve.\n easeInOut: 'cubic-bezier(0.4, 0, 0.2, 1)',\n // Objects enter the screen at full velocity from off-screen and\n // slowly decelerate to a resting point.\n easeOut: 'cubic-bezier(0.0, 0, 0.2, 1)',\n // Objects leave the screen at full velocity. They do not decelerate when off-screen.\n easeIn: 'cubic-bezier(0.4, 0, 1, 1)',\n // The sharp curve is used by objects that may return to the screen at any time.\n sharp: 'cubic-bezier(0.4, 0, 0.6, 1)'\n};\n\n// Follow https://m2.material.io/guidelines/motion/duration-easing.html#duration-easing-common-durations\n// to learn when use what timing\nexport const duration = {\n shortest: 150,\n shorter: 200,\n short: 250,\n // most basic recommended timing\n standard: 300,\n // this is to be used in complex animations\n complex: 375,\n // recommended when something is entering screen\n enteringScreen: 225,\n // recommended when something is leaving screen\n leavingScreen: 195\n};\nfunction formatMs(milliseconds) {\n return `${Math.round(milliseconds)}ms`;\n}\nfunction getAutoHeightDuration(height) {\n if (!height) {\n return 0;\n }\n const constant = height / 36;\n\n // https://www.wolframalpha.com/input/?i=(4+%2B+15+*+(x+%2F+36+)+**+0.25+%2B+(x+%2F+36)+%2F+5)+*+10\n return Math.round((4 + 15 * constant ** 0.25 + constant / 5) * 10);\n}\nexport default function createTransitions(inputTransitions) {\n const mergedEasing = _extends({}, easing, inputTransitions.easing);\n const mergedDuration = _extends({}, duration, inputTransitions.duration);\n const create = (props = ['all'], options = {}) => {\n const {\n duration: durationOption = mergedDuration.standard,\n easing: easingOption = mergedEasing.easeInOut,\n delay = 0\n } = options,\n other = _objectWithoutPropertiesLoose(options, _excluded);\n if (process.env.NODE_ENV !== 'production') {\n const isString = value => typeof value === 'string';\n // IE11 support, replace with Number.isNaN\n // eslint-disable-next-line no-restricted-globals\n const isNumber = value => !isNaN(parseFloat(value));\n if (!isString(props) && !Array.isArray(props)) {\n console.error('MUI: Argument \"props\" must be a string or Array.');\n }\n if (!isNumber(durationOption) && !isString(durationOption)) {\n console.error(`MUI: Argument \"duration\" must be a number or a string but found ${durationOption}.`);\n }\n if (!isString(easingOption)) {\n console.error('MUI: Argument \"easing\" must be a string.');\n }\n if (!isNumber(delay) && !isString(delay)) {\n console.error('MUI: Argument \"delay\" must be a number or a string.');\n }\n if (Object.keys(other).length !== 0) {\n console.error(`MUI: Unrecognized argument(s) [${Object.keys(other).join(',')}].`);\n }\n }\n return (Array.isArray(props) ? props : [props]).map(animatedProp => `${animatedProp} ${typeof durationOption === 'string' ? durationOption : formatMs(durationOption)} ${easingOption} ${typeof delay === 'string' ? delay : formatMs(delay)}`).join(',');\n };\n return _extends({\n getAutoHeightDuration,\n create\n }, inputTransitions, {\n easing: mergedEasing,\n duration: mergedDuration\n });\n}","import createTheme from './createTheme';\nconst defaultTheme = createTheme();\nexport default defaultTheme;","import { createStyled, shouldForwardProp } from '@mui/system';\nimport defaultTheme from './defaultTheme';\nexport const rootShouldForwardProp = prop => shouldForwardProp(prop) && prop !== 'classes';\nexport const slotShouldForwardProp = shouldForwardProp;\nconst styled = createStyled({\n defaultTheme,\n rootShouldForwardProp\n});\nexport default styled;","import * as React from 'react';\nimport { useTheme as useThemeSystem } from '@mui/system';\nimport defaultTheme from './defaultTheme';\nexport default function useTheme() {\n const theme = useThemeSystem(defaultTheme);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n return theme;\n}","import { useThemeProps as systemUseThemeProps } from '@mui/system';\nimport defaultTheme from './defaultTheme';\nexport default function useThemeProps({\n props,\n name\n}) {\n return systemUseThemeProps({\n props,\n name,\n defaultTheme\n });\n}","export const reflow = node => node.scrollTop;\nexport function getTransitionProps(props, options) {\n var _style$transitionDura, _style$transitionTimi;\n const {\n timeout,\n easing,\n style = {}\n } = props;\n return {\n duration: (_style$transitionDura = style.transitionDuration) != null ? _style$transitionDura : typeof timeout === 'number' ? timeout : timeout[options.mode] || 0,\n easing: (_style$transitionTimi = style.transitionTimingFunction) != null ? _style$transitionTimi : typeof easing === 'object' ? easing[options.mode] : easing,\n delay: style.transitionDelay\n };\n}","import * as React from 'react';\nimport { getThemeProps, useThemeWithoutDefault as useTheme } from '@mui/system';\nimport useEnhancedEffect from '../utils/useEnhancedEffect';\n\n/**\n * @deprecated Not used internally. Use `MediaQueryListEvent` from lib.dom.d.ts instead.\n */\n\nfunction useMediaQueryOld(query, defaultMatches, matchMedia, ssrMatchMedia, noSsr) {\n const supportMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia !== 'undefined';\n const [match, setMatch] = React.useState(() => {\n if (noSsr && supportMatchMedia) {\n return matchMedia(query).matches;\n }\n if (ssrMatchMedia) {\n return ssrMatchMedia(query).matches;\n }\n\n // Once the component is mounted, we rely on the\n // event listeners to return the correct matches value.\n return defaultMatches;\n });\n useEnhancedEffect(() => {\n let active = true;\n if (!supportMatchMedia) {\n return undefined;\n }\n const queryList = matchMedia(query);\n const updateMatch = () => {\n // Workaround Safari wrong implementation of matchMedia\n // TODO can we remove it?\n // https://github.com/mui/material-ui/pull/17315#issuecomment-528286677\n if (active) {\n setMatch(queryList.matches);\n }\n };\n updateMatch();\n // TODO: Use `addEventListener` once support for Safari < 14 is dropped\n queryList.addListener(updateMatch);\n return () => {\n active = false;\n queryList.removeListener(updateMatch);\n };\n }, [query, matchMedia, supportMatchMedia]);\n return match;\n}\n\n// eslint-disable-next-line no-useless-concat -- Workaround for https://github.com/webpack/webpack/issues/14814\nconst maybeReactUseSyncExternalStore = React['useSyncExternalStore' + ''];\nfunction useMediaQueryNew(query, defaultMatches, matchMedia, ssrMatchMedia) {\n const getDefaultSnapshot = React.useCallback(() => defaultMatches, [defaultMatches]);\n const getServerSnapshot = React.useMemo(() => {\n if (ssrMatchMedia !== null) {\n const {\n matches\n } = ssrMatchMedia(query);\n return () => matches;\n }\n return getDefaultSnapshot;\n }, [getDefaultSnapshot, query, ssrMatchMedia]);\n const [getSnapshot, subscribe] = React.useMemo(() => {\n if (matchMedia === null) {\n return [getDefaultSnapshot, () => () => {}];\n }\n const mediaQueryList = matchMedia(query);\n return [() => mediaQueryList.matches, notify => {\n // TODO: Use `addEventListener` once support for Safari < 14 is dropped\n mediaQueryList.addListener(notify);\n return () => {\n mediaQueryList.removeListener(notify);\n };\n }];\n }, [getDefaultSnapshot, matchMedia, query]);\n const match = maybeReactUseSyncExternalStore(subscribe, getSnapshot, getServerSnapshot);\n return match;\n}\nexport default function useMediaQuery(queryInput, options = {}) {\n const theme = useTheme();\n // Wait for jsdom to support the match media feature.\n // All the browsers MUI support have this built-in.\n // This defensive check is here for simplicity.\n // Most of the time, the match media logic isn't central to people tests.\n const supportMatchMedia = typeof window !== 'undefined' && typeof window.matchMedia !== 'undefined';\n const {\n defaultMatches = false,\n matchMedia = supportMatchMedia ? window.matchMedia : null,\n ssrMatchMedia = null,\n noSsr\n } = getThemeProps({\n name: 'MuiUseMediaQuery',\n props: options,\n theme\n });\n if (process.env.NODE_ENV !== 'production') {\n if (typeof queryInput === 'function' && theme === null) {\n console.error(['MUI: The `query` argument provided is invalid.', 'You are providing a function without a theme in the context.', 'One of the parent elements needs to use a ThemeProvider.'].join('\\n'));\n }\n }\n let query = typeof queryInput === 'function' ? queryInput(theme) : queryInput;\n query = query.replace(/^@media( ?)/m, '');\n\n // TODO: Drop `useMediaQueryOld` and use `use-sync-external-store` shim in `useMediaQueryNew` once the package is stable\n const useMediaQueryImplementation = maybeReactUseSyncExternalStore !== undefined ? useMediaQueryNew : useMediaQueryOld;\n const match = useMediaQueryImplementation(query, defaultMatches, matchMedia, ssrMatchMedia, noSsr);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue({\n query,\n match\n });\n }\n return match;\n}","import { unstable_capitalize as capitalize } from '@mui/utils';\nexport default capitalize;","import { unstable_createChainedFunction as createChainedFunction } from '@mui/utils';\nexport default createChainedFunction;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport SvgIcon from '../SvgIcon';\n\n/**\n * Private module reserved for @mui packages.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport default function createSvgIcon(path, displayName) {\n function Component(props, ref) {\n return /*#__PURE__*/_jsx(SvgIcon, _extends({\n \"data-testid\": `${displayName}Icon`,\n ref: ref\n }, props, {\n children: path\n }));\n }\n if (process.env.NODE_ENV !== 'production') {\n // Need to set `displayName` on the inner component for React.memo.\n // React prior to 16.14 ignores `displayName` on the wrapper.\n Component.displayName = `${displayName}Icon`;\n }\n Component.muiName = SvgIcon.muiName;\n return /*#__PURE__*/React.memo( /*#__PURE__*/React.forwardRef(Component));\n}","import { unstable_debounce as debounce } from '@mui/utils';\nexport default debounce;","import { unstable_deprecatedPropType as deprecatedPropType } from '@mui/utils';\nexport default deprecatedPropType;","export default function deprecatedPropType(validator, reason) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n return (props, propName, componentName, location, propFullName) => {\n const componentNameSafe = componentName || '<>';\n const propFullNameSafe = propFullName || propName;\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The ${location} \\`${propFullNameSafe}\\` of ` + `\\`${componentNameSafe}\\` is deprecated. ${reason}`);\n }\n return null;\n };\n}","import { unstable_requirePropFactory as requirePropFactory } from '@mui/utils';\nexport default requirePropFactory;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport default function requirePropFactory(componentNameInError, Component) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n\n // eslint-disable-next-line react/forbid-foreign-prop-types\n const prevPropTypes = Component ? _extends({}, Component.propTypes) : null;\n const requireProp = requiredProp => (props, propName, componentName, location, propFullName, ...args) => {\n const propFullNameSafe = propFullName || propName;\n const defaultTypeChecker = prevPropTypes == null ? void 0 : prevPropTypes[propFullNameSafe];\n if (defaultTypeChecker) {\n const typeCheckerResult = defaultTypeChecker(props, propName, componentName, location, propFullName, ...args);\n if (typeCheckerResult) {\n return typeCheckerResult;\n }\n }\n if (typeof props[propName] !== 'undefined' && !props[requiredProp]) {\n return new Error(`The prop \\`${propFullNameSafe}\\` of ` + `\\`${componentNameInError}\\` can only be used together with the \\`${requiredProp}\\` prop.`);\n }\n return null;\n };\n return requireProp;\n}","import { unstable_setRef as setRef } from '@mui/utils';\nexport default setRef;","import { unstable_unsupportedProp as unsupportedProp } from '@mui/utils';\nexport default unsupportedProp;","export default function unsupportedProp(props, propName, componentName, location, propFullName) {\n if (process.env.NODE_ENV === 'production') {\n return null;\n }\n const propFullNameSafe = propFullName || propName;\n if (typeof props[propName] !== 'undefined') {\n return new Error(`The prop \\`${propFullNameSafe}\\` is not supported. Please remove it.`);\n }\n return null;\n}","import { unstable_ClassNameGenerator as ClassNameGenerator } from '@mui/base/className';\nexport { default as capitalize } from './capitalize';\nexport { default as createChainedFunction } from './createChainedFunction';\nexport { default as createSvgIcon } from './createSvgIcon';\nexport { default as debounce } from './debounce';\nexport { default as deprecatedPropType } from './deprecatedPropType';\nexport { default as isMuiElement } from './isMuiElement';\nexport { default as ownerDocument } from './ownerDocument';\nexport { default as ownerWindow } from './ownerWindow';\nexport { default as requirePropFactory } from './requirePropFactory';\nexport { default as setRef } from './setRef';\nexport { default as unstable_useEnhancedEffect } from './useEnhancedEffect';\nexport { default as unstable_useId } from './useId';\nexport { default as unsupportedProp } from './unsupportedProp';\nexport { default as useControlled } from './useControlled';\nexport { default as useEventCallback } from './useEventCallback';\nexport { default as useForkRef } from './useForkRef';\nexport { default as useIsFocusVisible } from './useIsFocusVisible';\n// TODO: remove this export once ClassNameGenerator is stable\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const unstable_ClassNameGenerator = {\n configure: generator => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(['MUI: `ClassNameGenerator` import from `@mui/material/utils` is outdated and might cause unexpected issues.', '', \"You should use `import { unstable_ClassNameGenerator } from '@mui/material/className'` instead\", '', 'The detail of the issue: https://github.com/mui/material-ui/issues/30011#issuecomment-1024993401', '', 'The updated documentation: https://mui.com/guides/classname-generator/'].join('\\n'));\n }\n ClassNameGenerator.configure(generator);\n }\n};","import { unstable_isMuiElement as isMuiElement } from '@mui/utils';\nexport default isMuiElement;","import * as React from 'react';\nexport default function isMuiElement(element, muiNames) {\n var _muiName, _element$type;\n return /*#__PURE__*/React.isValidElement(element) && muiNames.indexOf( // For server components `muiName` is avaialble in element.type._payload.value.muiName\n // relevant info - https://github.com/facebook/react/blob/2807d781a08db8e9873687fccc25c0f12b4fb3d4/packages/react/src/ReactLazy.js#L45\n // eslint-disable-next-line no-underscore-dangle\n (_muiName = element.type.muiName) != null ? _muiName : (_element$type = element.type) == null || (_element$type = _element$type._payload) == null || (_element$type = _element$type.value) == null ? void 0 : _element$type.muiName) !== -1;\n}","import { unstable_ownerDocument as ownerDocument } from '@mui/utils';\nexport default ownerDocument;","import { unstable_ownerWindow as ownerWindow } from '@mui/utils';\nexport default ownerWindow;","import { unstable_useControlled as useControlled } from '@mui/utils';\nexport default useControlled;","import { unstable_useEnhancedEffect as useEnhancedEffect } from '@mui/utils';\nexport default useEnhancedEffect;","import { unstable_useEventCallback as useEventCallback } from '@mui/utils';\nexport default useEventCallback;","import { unstable_useForkRef as useForkRef } from '@mui/utils';\nexport default useForkRef;","import { unstable_useId as useId } from '@mui/utils';\nexport default useId;","'use client';\n\n// based on https://github.com/WICG/focus-visible/blob/v4.1.5/src/focus-visible.js\nimport * as React from 'react';\nlet hadKeyboardEvent = true;\nlet hadFocusVisibleRecently = false;\nlet hadFocusVisibleRecentlyTimeout;\nconst inputTypesWhitelist = {\n text: true,\n search: true,\n url: true,\n tel: true,\n email: true,\n password: true,\n number: true,\n date: true,\n month: true,\n week: true,\n time: true,\n datetime: true,\n 'datetime-local': true\n};\n\n/**\n * Computes whether the given element should automatically trigger the\n * `focus-visible` class being added, i.e. whether it should always match\n * `:focus-visible` when focused.\n * @param {Element} node\n * @returns {boolean}\n */\nfunction focusTriggersKeyboardModality(node) {\n const {\n type,\n tagName\n } = node;\n if (tagName === 'INPUT' && inputTypesWhitelist[type] && !node.readOnly) {\n return true;\n }\n if (tagName === 'TEXTAREA' && !node.readOnly) {\n return true;\n }\n if (node.isContentEditable) {\n return true;\n }\n return false;\n}\n\n/**\n * Keep track of our keyboard modality state with `hadKeyboardEvent`.\n * If the most recent user interaction was via the keyboard;\n * and the key press did not include a meta, alt/option, or control key;\n * then the modality is keyboard. Otherwise, the modality is not keyboard.\n * @param {KeyboardEvent} event\n */\nfunction handleKeyDown(event) {\n if (event.metaKey || event.altKey || event.ctrlKey) {\n return;\n }\n hadKeyboardEvent = true;\n}\n\n/**\n * If at any point a user clicks with a pointing device, ensure that we change\n * the modality away from keyboard.\n * This avoids the situation where a user presses a key on an already focused\n * element, and then clicks on a different element, focusing it with a\n * pointing device, while we still think we're in keyboard modality.\n */\nfunction handlePointerDown() {\n hadKeyboardEvent = false;\n}\nfunction handleVisibilityChange() {\n if (this.visibilityState === 'hidden') {\n // If the tab becomes active again, the browser will handle calling focus\n // on the element (Safari actually calls it twice).\n // If this tab change caused a blur on an element with focus-visible,\n // re-apply the class when the user switches back to the tab.\n if (hadFocusVisibleRecently) {\n hadKeyboardEvent = true;\n }\n }\n}\nfunction prepare(doc) {\n doc.addEventListener('keydown', handleKeyDown, true);\n doc.addEventListener('mousedown', handlePointerDown, true);\n doc.addEventListener('pointerdown', handlePointerDown, true);\n doc.addEventListener('touchstart', handlePointerDown, true);\n doc.addEventListener('visibilitychange', handleVisibilityChange, true);\n}\nexport function teardown(doc) {\n doc.removeEventListener('keydown', handleKeyDown, true);\n doc.removeEventListener('mousedown', handlePointerDown, true);\n doc.removeEventListener('pointerdown', handlePointerDown, true);\n doc.removeEventListener('touchstart', handlePointerDown, true);\n doc.removeEventListener('visibilitychange', handleVisibilityChange, true);\n}\nfunction isFocusVisible(event) {\n const {\n target\n } = event;\n try {\n return target.matches(':focus-visible');\n } catch (error) {\n // Browsers not implementing :focus-visible will throw a SyntaxError.\n // We use our own heuristic for those browsers.\n // Rethrow might be better if it's not the expected error but do we really\n // want to crash if focus-visible malfunctioned?\n }\n\n // No need for validFocusTarget check. The user does that by attaching it to\n // focusable events only.\n return hadKeyboardEvent || focusTriggersKeyboardModality(target);\n}\nexport default function useIsFocusVisible() {\n const ref = React.useCallback(node => {\n if (node != null) {\n prepare(node.ownerDocument);\n }\n }, []);\n const isFocusVisibleRef = React.useRef(false);\n\n /**\n * Should be called if a blur event is fired\n */\n function handleBlurVisible() {\n // checking against potential state variable does not suffice if we focus and blur synchronously.\n // React wouldn't have time to trigger a re-render so `focusVisible` would be stale.\n // Ideally we would adjust `isFocusVisible(event)` to look at `relatedTarget` for blur events.\n // This doesn't work in IE11 due to https://github.com/facebook/react/issues/3751\n // TODO: check again if React releases their internal changes to focus event handling (https://github.com/facebook/react/pull/19186).\n if (isFocusVisibleRef.current) {\n // To detect a tab/window switch, we look for a blur event followed\n // rapidly by a visibility change.\n // If we don't see a visibility change within 100ms, it's probably a\n // regular focus change.\n hadFocusVisibleRecently = true;\n window.clearTimeout(hadFocusVisibleRecentlyTimeout);\n hadFocusVisibleRecentlyTimeout = window.setTimeout(() => {\n hadFocusVisibleRecently = false;\n }, 100);\n isFocusVisibleRef.current = false;\n return true;\n }\n return false;\n }\n\n /**\n * Should be called if a blur event is fired\n */\n function handleFocusVisible(event) {\n if (isFocusVisible(event)) {\n isFocusVisibleRef.current = true;\n return true;\n }\n return false;\n }\n return {\n isFocusVisibleRef,\n onFocus: handleFocusVisible,\n onBlur: handleBlurVisible,\n ref\n };\n}","import { unstable_useIsFocusVisible as useIsFocusVisible } from '@mui/utils';\nexport default useIsFocusVisible;","const hasSymbol = typeof Symbol === 'function' && Symbol.for;\nexport default hasSymbol ? Symbol.for('mui.nested') : '__THEME_NESTED__';","import * as React from 'react';\nconst ThemeContext = /*#__PURE__*/React.createContext(null);\nif (process.env.NODE_ENV !== 'production') {\n ThemeContext.displayName = 'ThemeContext';\n}\nexport default ThemeContext;","import * as React from 'react';\nimport ThemeContext from './ThemeContext';\nexport default function useTheme() {\n const theme = React.useContext(ThemeContext);\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useDebugValue(theme);\n }\n return theme;\n}","/**\n * @mui/styled-engine v5.14.14\n *\n * @license MIT\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 client';\n\n/* eslint-disable no-underscore-dangle */\nimport emStyled from '@emotion/styled';\nexport default function styled(tag, options) {\n const stylesFactory = emStyled(tag, options);\n if (process.env.NODE_ENV !== 'production') {\n return (...styles) => {\n const component = typeof tag === 'string' ? `\"${tag}\"` : 'component';\n if (styles.length === 0) {\n console.error([`MUI: Seems like you called \\`styled(${component})()\\` without a \\`style\\` argument.`, 'You must provide a `styles` argument: `styled(\"div\")(styleYouForgotToPass)`.'].join('\\n'));\n } else if (styles.some(style => style === undefined)) {\n console.error(`MUI: the styled(${component})(...args) API requires all its args to be defined.`);\n }\n return stylesFactory(...styles);\n };\n }\n return stylesFactory;\n}\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nexport const internal_processStyles = (tag, processor) => {\n // Emotion attaches all the styles as `__emotion_styles`.\n // Ref: https://github.com/emotion-js/emotion/blob/16d971d0da229596d6bcc39d282ba9753c9ee7cf/packages/styled/src/base.js#L186\n if (Array.isArray(tag.__emotion_styles)) {\n tag.__emotion_styles = processor(tag.__emotion_styles);\n }\n};\nexport { ThemeContext, keyframes, css } from '@emotion/react';\nexport { default as StyledEngineProvider } from './StyledEngineProvider';\nexport { default as GlobalStyles } from './GlobalStyles';","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport PropTypes from 'prop-types';\nimport { deepmerge } from '@mui/utils';\nimport merge from './merge';\n\n// The breakpoint **start** at this value.\n// For instance with the first breakpoint xs: [xs, sm[.\nexport const values = {\n xs: 0,\n // phone\n sm: 600,\n // tablet\n md: 900,\n // small laptop\n lg: 1200,\n // desktop\n xl: 1536 // large screen\n};\n\nconst defaultBreakpoints = {\n // Sorted ASC by size. That's important.\n // It can't be configured as it's used statically for propTypes.\n keys: ['xs', 'sm', 'md', 'lg', 'xl'],\n up: key => `@media (min-width:${values[key]}px)`\n};\nexport function handleBreakpoints(props, propValue, styleFromPropValue) {\n const theme = props.theme || {};\n if (Array.isArray(propValue)) {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return propValue.reduce((acc, item, index) => {\n acc[themeBreakpoints.up(themeBreakpoints.keys[index])] = styleFromPropValue(propValue[index]);\n return acc;\n }, {});\n }\n if (typeof propValue === 'object') {\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n return Object.keys(propValue).reduce((acc, breakpoint) => {\n // key is breakpoint\n if (Object.keys(themeBreakpoints.values || values).indexOf(breakpoint) !== -1) {\n const mediaKey = themeBreakpoints.up(breakpoint);\n acc[mediaKey] = styleFromPropValue(propValue[breakpoint], breakpoint);\n } else {\n const cssKey = breakpoint;\n acc[cssKey] = propValue[cssKey];\n }\n return acc;\n }, {});\n }\n const output = styleFromPropValue(propValue);\n return output;\n}\nfunction breakpoints(styleFunction) {\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const newStyleFunction = props => {\n const theme = props.theme || {};\n const base = styleFunction(props);\n const themeBreakpoints = theme.breakpoints || defaultBreakpoints;\n const extended = themeBreakpoints.keys.reduce((acc, key) => {\n if (props[key]) {\n acc = acc || {};\n acc[themeBreakpoints.up(key)] = styleFunction(_extends({\n theme\n }, props[key]));\n }\n return acc;\n }, null);\n return merge(base, extended);\n };\n newStyleFunction.propTypes = process.env.NODE_ENV !== 'production' ? _extends({}, styleFunction.propTypes, {\n xs: PropTypes.object,\n sm: PropTypes.object,\n md: PropTypes.object,\n lg: PropTypes.object,\n xl: PropTypes.object\n }) : {};\n newStyleFunction.filterProps = ['xs', 'sm', 'md', 'lg', 'xl', ...styleFunction.filterProps];\n return newStyleFunction;\n}\nexport function createEmptyBreakpointObject(breakpointsInput = {}) {\n var _breakpointsInput$key;\n const breakpointsInOrder = (_breakpointsInput$key = breakpointsInput.keys) == null ? void 0 : _breakpointsInput$key.reduce((acc, key) => {\n const breakpointStyleKey = breakpointsInput.up(key);\n acc[breakpointStyleKey] = {};\n return acc;\n }, {});\n return breakpointsInOrder || {};\n}\nexport function removeUnusedBreakpoints(breakpointKeys, style) {\n return breakpointKeys.reduce((acc, key) => {\n const breakpointOutput = acc[key];\n const isBreakpointUnused = !breakpointOutput || Object.keys(breakpointOutput).length === 0;\n if (isBreakpointUnused) {\n delete acc[key];\n }\n return acc;\n }, style);\n}\nexport function mergeBreakpointsInOrder(breakpointsInput, ...styles) {\n const emptyBreakpoints = createEmptyBreakpointObject(breakpointsInput);\n const mergedOutput = [emptyBreakpoints, ...styles].reduce((prev, next) => deepmerge(prev, next), {});\n return removeUnusedBreakpoints(Object.keys(emptyBreakpoints), mergedOutput);\n}\n\n// compute base for responsive values; e.g.,\n// [1,2,3] => {xs: true, sm: true, md: true}\n// {xs: 1, sm: 2, md: 3} => {xs: true, sm: true, md: true}\nexport function computeBreakpointsBase(breakpointValues, themeBreakpoints) {\n // fixed value\n if (typeof breakpointValues !== 'object') {\n return {};\n }\n const base = {};\n const breakpointsKeys = Object.keys(themeBreakpoints);\n if (Array.isArray(breakpointValues)) {\n breakpointsKeys.forEach((breakpoint, i) => {\n if (i < breakpointValues.length) {\n base[breakpoint] = true;\n }\n });\n } else {\n breakpointsKeys.forEach(breakpoint => {\n if (breakpointValues[breakpoint] != null) {\n base[breakpoint] = true;\n }\n });\n }\n return base;\n}\nexport function resolveBreakpointValues({\n values: breakpointValues,\n breakpoints: themeBreakpoints,\n base: customBase\n}) {\n const base = customBase || computeBreakpointsBase(breakpointValues, themeBreakpoints);\n const keys = Object.keys(base);\n if (keys.length === 0) {\n return breakpointValues;\n }\n let previous;\n return keys.reduce((acc, breakpoint, i) => {\n if (Array.isArray(breakpointValues)) {\n acc[breakpoint] = breakpointValues[i] != null ? breakpointValues[i] : breakpointValues[previous];\n previous = i;\n } else if (typeof breakpointValues === 'object') {\n acc[breakpoint] = breakpointValues[breakpoint] != null ? breakpointValues[breakpoint] : breakpointValues[previous];\n previous = breakpoint;\n } else {\n acc[breakpoint] = breakpointValues;\n }\n return acc;\n }, {});\n}\nexport default breakpoints;","import merge from './merge';\nfunction compose(...styles) {\n const handlers = styles.reduce((acc, style) => {\n style.filterProps.forEach(prop => {\n acc[prop] = style;\n });\n return acc;\n }, {});\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n return Object.keys(props).reduce((acc, prop) => {\n if (handlers[prop]) {\n return merge(acc, handlers[prop](props));\n }\n return acc;\n }, {});\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? styles.reduce((acc, style) => Object.assign(acc, style.propTypes), {}) : {};\n fn.filterProps = styles.reduce((acc, style) => acc.concat(style.filterProps), []);\n return fn;\n}\nexport default compose;","import { deepmerge } from '@mui/utils';\nfunction merge(acc, item) {\n if (!item) {\n return acc;\n }\n return deepmerge(acc, item, {\n clone: false // No need to clone deep, it's way faster.\n });\n}\n\nexport default merge;","import responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nimport { getPath } from './style';\nimport merge from './merge';\nimport memoize from './memoize';\nconst properties = {\n m: 'margin',\n p: 'padding'\n};\nconst directions = {\n t: 'Top',\n r: 'Right',\n b: 'Bottom',\n l: 'Left',\n x: ['Left', 'Right'],\n y: ['Top', 'Bottom']\n};\nconst aliases = {\n marginX: 'mx',\n marginY: 'my',\n paddingX: 'px',\n paddingY: 'py'\n};\n\n// memoize() impact:\n// From 300,000 ops/sec\n// To 350,000 ops/sec\nconst getCssProperties = memoize(prop => {\n // It's not a shorthand notation.\n if (prop.length > 2) {\n if (aliases[prop]) {\n prop = aliases[prop];\n } else {\n return [prop];\n }\n }\n const [a, b] = prop.split('');\n const property = properties[a];\n const direction = directions[b] || '';\n return Array.isArray(direction) ? direction.map(dir => property + dir) : [property + direction];\n});\nexport const marginKeys = ['m', 'mt', 'mr', 'mb', 'ml', 'mx', 'my', 'margin', 'marginTop', 'marginRight', 'marginBottom', 'marginLeft', 'marginX', 'marginY', 'marginInline', 'marginInlineStart', 'marginInlineEnd', 'marginBlock', 'marginBlockStart', 'marginBlockEnd'];\nexport const paddingKeys = ['p', 'pt', 'pr', 'pb', 'pl', 'px', 'py', 'padding', 'paddingTop', 'paddingRight', 'paddingBottom', 'paddingLeft', 'paddingX', 'paddingY', 'paddingInline', 'paddingInlineStart', 'paddingInlineEnd', 'paddingBlock', 'paddingBlockStart', 'paddingBlockEnd'];\nconst spacingKeys = [...marginKeys, ...paddingKeys];\nexport function createUnaryUnit(theme, themeKey, defaultValue, propName) {\n var _getPath;\n const themeSpacing = (_getPath = getPath(theme, themeKey, false)) != null ? _getPath : defaultValue;\n if (typeof themeSpacing === 'number') {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (typeof abs !== 'number') {\n console.error(`MUI: Expected ${propName} argument to be a number or a string, got ${abs}.`);\n }\n }\n return themeSpacing * abs;\n };\n }\n if (Array.isArray(themeSpacing)) {\n return abs => {\n if (typeof abs === 'string') {\n return abs;\n }\n if (process.env.NODE_ENV !== 'production') {\n if (!Number.isInteger(abs)) {\n console.error([`MUI: The \\`theme.${themeKey}\\` array type cannot be combined with non integer values.` + `You should either use an integer value that can be used as index, or define the \\`theme.${themeKey}\\` as a number.`].join('\\n'));\n } else if (abs > themeSpacing.length - 1) {\n console.error([`MUI: The value provided (${abs}) overflows.`, `The supported values are: ${JSON.stringify(themeSpacing)}.`, `${abs} > ${themeSpacing.length - 1}, you need to add the missing values.`].join('\\n'));\n }\n }\n return themeSpacing[abs];\n };\n }\n if (typeof themeSpacing === 'function') {\n return themeSpacing;\n }\n if (process.env.NODE_ENV !== 'production') {\n console.error([`MUI: The \\`theme.${themeKey}\\` value (${themeSpacing}) is invalid.`, 'It should be a number, an array or a function.'].join('\\n'));\n }\n return () => undefined;\n}\nexport function createUnarySpacing(theme) {\n return createUnaryUnit(theme, 'spacing', 8, 'spacing');\n}\nexport function getValue(transformer, propValue) {\n if (typeof propValue === 'string' || propValue == null) {\n return propValue;\n }\n const abs = Math.abs(propValue);\n const transformed = transformer(abs);\n if (propValue >= 0) {\n return transformed;\n }\n if (typeof transformed === 'number') {\n return -transformed;\n }\n return `-${transformed}`;\n}\nexport function getStyleFromPropValue(cssProperties, transformer) {\n return propValue => cssProperties.reduce((acc, cssProperty) => {\n acc[cssProperty] = getValue(transformer, propValue);\n return acc;\n }, {});\n}\nfunction resolveCssProperty(props, keys, prop, transformer) {\n // Using a hash computation over an array iteration could be faster, but with only 28 items,\n // it's doesn't worth the bundle size.\n if (keys.indexOf(prop) === -1) {\n return null;\n }\n const cssProperties = getCssProperties(prop);\n const styleFromPropValue = getStyleFromPropValue(cssProperties, transformer);\n const propValue = props[prop];\n return handleBreakpoints(props, propValue, styleFromPropValue);\n}\nfunction style(props, keys) {\n const transformer = createUnarySpacing(props.theme);\n return Object.keys(props).map(prop => resolveCssProperty(props, keys, prop, transformer)).reduce(merge, {});\n}\nexport function margin(props) {\n return style(props, marginKeys);\n}\nmargin.propTypes = process.env.NODE_ENV !== 'production' ? marginKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nmargin.filterProps = marginKeys;\nexport function padding(props) {\n return style(props, paddingKeys);\n}\npadding.propTypes = process.env.NODE_ENV !== 'production' ? paddingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\npadding.filterProps = paddingKeys;\nfunction spacing(props) {\n return style(props, spacingKeys);\n}\nspacing.propTypes = process.env.NODE_ENV !== 'production' ? spacingKeys.reduce((obj, key) => {\n obj[key] = responsivePropType;\n return obj;\n}, {}) : {};\nspacing.filterProps = spacingKeys;\nexport default spacing;","export default function memoize(fn) {\n const cache = {};\n return arg => {\n if (cache[arg] === undefined) {\n cache[arg] = fn(arg);\n }\n return cache[arg];\n };\n}","import { unstable_capitalize as capitalize } from '@mui/utils';\nimport responsivePropType from './responsivePropType';\nimport { handleBreakpoints } from './breakpoints';\nexport function getPath(obj, path, checkVars = true) {\n if (!path || typeof path !== 'string') {\n return null;\n }\n\n // Check if CSS variables are used\n if (obj && obj.vars && checkVars) {\n const val = `vars.${path}`.split('.').reduce((acc, item) => acc && acc[item] ? acc[item] : null, obj);\n if (val != null) {\n return val;\n }\n }\n return path.split('.').reduce((acc, item) => {\n if (acc && acc[item] != null) {\n return acc[item];\n }\n return null;\n }, obj);\n}\nexport function getStyleValue(themeMapping, transform, propValueFinal, userValue = propValueFinal) {\n let value;\n if (typeof themeMapping === 'function') {\n value = themeMapping(propValueFinal);\n } else if (Array.isArray(themeMapping)) {\n value = themeMapping[propValueFinal] || userValue;\n } else {\n value = getPath(themeMapping, propValueFinal) || userValue;\n }\n if (transform) {\n value = transform(value, userValue, themeMapping);\n }\n return value;\n}\nfunction style(options) {\n const {\n prop,\n cssProperty = options.prop,\n themeKey,\n transform\n } = options;\n\n // false positive\n // eslint-disable-next-line react/function-component-definition\n const fn = props => {\n if (props[prop] == null) {\n return null;\n }\n const propValue = props[prop];\n const theme = props.theme;\n const themeMapping = getPath(theme, themeKey) || {};\n const styleFromPropValue = propValueFinal => {\n let value = getStyleValue(themeMapping, transform, propValueFinal);\n if (propValueFinal === value && typeof propValueFinal === 'string') {\n // Haven't found value\n value = getStyleValue(themeMapping, transform, `${prop}${propValueFinal === 'default' ? '' : capitalize(propValueFinal)}`, propValueFinal);\n }\n if (cssProperty === false) {\n return value;\n }\n return {\n [cssProperty]: value\n };\n };\n return handleBreakpoints(props, propValue, styleFromPropValue);\n };\n fn.propTypes = process.env.NODE_ENV !== 'production' ? {\n [prop]: responsivePropType\n } : {};\n fn.filterProps = [prop];\n return fn;\n}\nexport default style;","const defaultGenerator = componentName => componentName;\nconst createClassNameGenerator = () => {\n let generate = defaultGenerator;\n return {\n configure(generator) {\n generate = generator;\n },\n generate(componentName) {\n return generate(componentName);\n },\n reset() {\n generate = defaultGenerator;\n }\n };\n};\nconst ClassNameGenerator = createClassNameGenerator();\nexport default ClassNameGenerator;","import _formatMuiErrorMessage from \"../formatMuiErrorMessage\";\n// It should to be noted that this function isn't equivalent to `text-transform: capitalize`.\n//\n// A strict capitalization should uppercase the first letter of each word in the sentence.\n// We only handle the first word.\nexport default function capitalize(string) {\n if (typeof string !== 'string') {\n throw new Error(process.env.NODE_ENV !== \"production\" ? `MUI: \\`capitalize(string)\\` expects a string argument.` : _formatMuiErrorMessage(7));\n }\n return string.charAt(0).toUpperCase() + string.slice(1);\n}","export default function composeClasses(slots, getUtilityClass, classes = undefined) {\n const output = {};\n Object.keys(slots).forEach(\n // `Object.keys(slots)` can't be wider than `T` because we infer `T` from `slots`.\n // @ts-expect-error https://github.com/microsoft/TypeScript/pull/12253#issuecomment-263132208\n slot => {\n output[slot] = slots[slot].reduce((acc, key) => {\n if (key) {\n const utilityClass = getUtilityClass(key);\n if (utilityClass !== '') {\n acc.push(utilityClass);\n }\n if (classes && classes[key]) {\n acc.push(classes[key]);\n }\n }\n return acc;\n }, []).join(' ');\n });\n return output;\n}","/**\n * Safe chained function.\n *\n * Will only create a new function if needed,\n * otherwise will pass back existing functions or null.\n */\nexport default function createChainedFunction(...funcs) {\n return funcs.reduce((acc, func) => {\n if (func == null) {\n return acc;\n }\n return function chainedFunction(...args) {\n acc.apply(this, args);\n func.apply(this, args);\n };\n }, () => {});\n}","// Corresponds to 10 frames at 60 Hz.\n// A few bytes payload overhead when lodash/debounce is ~3 kB and debounce ~300 B.\nexport default function debounce(func, wait = 166) {\n let timeout;\n function debounced(...args) {\n const later = () => {\n // @ts-ignore\n func.apply(this, args);\n };\n clearTimeout(timeout);\n timeout = setTimeout(later, wait);\n }\n debounced.clear = () => {\n clearTimeout(timeout);\n };\n return debounced;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport function isPlainObject(item) {\n return item !== null && typeof item === 'object' && item.constructor === Object;\n}\nfunction deepClone(source) {\n if (!isPlainObject(source)) {\n return source;\n }\n const output = {};\n Object.keys(source).forEach(key => {\n output[key] = deepClone(source[key]);\n });\n return output;\n}\nexport default function deepmerge(target, source, options = {\n clone: true\n}) {\n const output = options.clone ? _extends({}, target) : target;\n if (isPlainObject(target) && isPlainObject(source)) {\n Object.keys(source).forEach(key => {\n // Avoid prototype pollution\n if (key === '__proto__') {\n return;\n }\n if (isPlainObject(source[key]) && key in target && isPlainObject(target[key])) {\n // Since `output` is a clone of `target` and we have narrowed `target` in this block we can cast to the same type.\n output[key] = deepmerge(target[key], source[key], options);\n } else if (options.clone) {\n output[key] = isPlainObject(source[key]) ? deepClone(source[key]) : source[key];\n } else {\n output[key] = source[key];\n }\n });\n }\n return output;\n}","/**\n * WARNING: Don't import this directly.\n * Use `MuiError` from `@mui/utils/macros/MuiError.macro` instead.\n * @param {number} code\n */\nexport default function formatMuiErrorMessage(code) {\n // Apply babel-plugin-transform-template-literals in loose mode\n // loose mode is safe iff we're concatenating primitives\n // see https://babeljs.io/docs/en/babel-plugin-transform-template-literals#loose\n /* eslint-disable prefer-template */\n let url = 'https://mui.com/production-error/?code=' + code;\n for (let i = 1; i < arguments.length; i += 1) {\n // rest params over-transpile for this case\n // eslint-disable-next-line prefer-rest-params\n url += '&args[]=' + encodeURIComponent(arguments[i]);\n }\n return 'Minified MUI error #' + code + '; visit ' + url + ' for the full message.';\n /* eslint-enable prefer-template */\n}","import ClassNameGenerator from '../ClassNameGenerator';\n\n// If GlobalStateSlot is changed, GLOBAL_STATE_CLASSES in\n// \\packages\\api-docs-builder\\utils\\parseSlotsAndClasses.ts must be updated accordingly.\nconst globalStateClassesMapping = {\n active: 'active',\n checked: 'checked',\n completed: 'completed',\n disabled: 'disabled',\n error: 'error',\n expanded: 'expanded',\n focused: 'focused',\n focusVisible: 'focusVisible',\n open: 'open',\n readOnly: 'readOnly',\n required: 'required',\n selected: 'selected'\n};\nexport default function generateUtilityClass(componentName, slot, globalStatePrefix = 'Mui') {\n const globalStateClass = globalStateClassesMapping[slot];\n return globalStateClass ? `${globalStatePrefix}-${globalStateClass}` : `${ClassNameGenerator.generate(componentName)}-${slot}`;\n}","import generateUtilityClass from '../generateUtilityClass';\nexport default function generateUtilityClasses(componentName, slots, globalStatePrefix = 'Mui') {\n const result = {};\n slots.forEach(slot => {\n result[slot] = generateUtilityClass(componentName, slot, globalStatePrefix);\n });\n return result;\n}","// A change of the browser zoom change the scrollbar size.\n// Credit https://github.com/twbs/bootstrap/blob/488fd8afc535ca3a6ad4dc581f5e89217b6a36ac/js/src/util/scrollbar.js#L14-L18\nexport default function getScrollbarSize(doc) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/innerWidth#usage_notes\n const documentWidth = doc.documentElement.clientWidth;\n return Math.abs(window.innerWidth - documentWidth);\n}","export default function ownerDocument(node) {\n return node && node.ownerDocument || document;\n}","import ownerDocument from '../ownerDocument';\nexport default function ownerWindow(node) {\n const doc = ownerDocument(node);\n return doc.defaultView || window;\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\n/**\n * Add keys, values of `defaultProps` that does not exist in `props`\n * @param {object} defaultProps\n * @param {object} props\n * @returns {object} resolved props\n */\nexport default function resolveProps(defaultProps, props) {\n const output = _extends({}, props);\n Object.keys(defaultProps).forEach(propName => {\n if (propName.toString().match(/^(components|slots)$/)) {\n output[propName] = _extends({}, defaultProps[propName], output[propName]);\n } else if (propName.toString().match(/^(componentsProps|slotProps)$/)) {\n const defaultSlotProps = defaultProps[propName] || {};\n const slotProps = props[propName];\n output[propName] = {};\n if (!slotProps || !Object.keys(slotProps)) {\n // Reduce the iteration if the slot props is empty\n output[propName] = defaultSlotProps;\n } else if (!defaultSlotProps || !Object.keys(defaultSlotProps)) {\n // Reduce the iteration if the default slot props is empty\n output[propName] = slotProps;\n } else {\n output[propName] = _extends({}, slotProps);\n Object.keys(defaultSlotProps).forEach(slotPropName => {\n output[propName][slotPropName] = resolveProps(defaultSlotProps[slotPropName], slotProps[slotPropName]);\n });\n }\n } else if (output[propName] === undefined) {\n output[propName] = defaultProps[propName];\n }\n });\n return output;\n}","/**\n * TODO v5: consider making it private\n *\n * passes {value} to {ref}\n *\n * WARNING: Be sure to only call this inside a callback that is passed as a ref.\n * Otherwise, make sure to cleanup the previous {ref} if it changes. See\n * https://github.com/mui/material-ui/issues/13539\n *\n * Useful if you want to expose the ref of an inner component to the public API\n * while still using it inside the component.\n * @param ref A ref callback or ref object. If anything falsy, this is a no-op.\n */\nexport default function setRef(ref, value) {\n if (typeof ref === 'function') {\n ref(value);\n } else if (ref) {\n ref.current = value;\n }\n}","'use client';\n\n/* eslint-disable react-hooks/rules-of-hooks, react-hooks/exhaustive-deps */\nimport * as React from 'react';\nexport default function useControlled({\n controlled,\n default: defaultProp,\n name,\n state = 'value'\n}) {\n // isControlled is ignored in the hook dependency lists as it should never change.\n const {\n current: isControlled\n } = React.useRef(controlled !== undefined);\n const [valueState, setValue] = React.useState(defaultProp);\n const value = isControlled ? controlled : valueState;\n if (process.env.NODE_ENV !== 'production') {\n React.useEffect(() => {\n if (isControlled !== (controlled !== undefined)) {\n console.error([`MUI: A component is changing the ${isControlled ? '' : 'un'}controlled ${state} state of ${name} to be ${isControlled ? 'un' : ''}controlled.`, 'Elements should not switch from uncontrolled to controlled (or vice versa).', `Decide between using a controlled or uncontrolled ${name} ` + 'element for the lifetime of the component.', \"The nature of the state is determined during the first render. It's considered controlled if the value is not `undefined`.\", 'More info: https://fb.me/react-controlled-components'].join('\\n'));\n }\n }, [state, name, controlled]);\n const {\n current: defaultValue\n } = React.useRef(defaultProp);\n React.useEffect(() => {\n if (!isControlled && defaultValue !== defaultProp) {\n console.error([`MUI: A component is changing the default ${state} state of an uncontrolled ${name} after being initialized. ` + `To suppress this warning opt to use a controlled ${name}.`].join('\\n'));\n }\n }, [JSON.stringify(defaultProp)]);\n }\n const setValueIfUncontrolled = React.useCallback(newValue => {\n if (!isControlled) {\n setValue(newValue);\n }\n }, []);\n return [value, setValueIfUncontrolled];\n}","'use client';\n\nimport * as React from 'react';\n\n/**\n * A version of `React.useLayoutEffect` that does not show a warning when server-side rendering.\n * This is useful for effects that are only needed for client-side rendering but not for SSR.\n *\n * Before you use this hook, make sure to read https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * and confirm it doesn't apply to your use-case.\n */\nconst useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nexport default useEnhancedEffect;","'use client';\n\nimport * as React from 'react';\nimport useEnhancedEffect from '../useEnhancedEffect';\n\n/**\n * Inspired by https://github.com/facebook/react/issues/14099#issuecomment-440013892\n * See RFC in https://github.com/reactjs/rfcs/pull/220\n */\n\nfunction useEventCallback(fn) {\n const ref = React.useRef(fn);\n useEnhancedEffect(() => {\n ref.current = fn;\n });\n return React.useCallback((...args) =>\n // @ts-expect-error hide `this`\n // tslint:disable-next-line:ban-comma-operator\n (0, ref.current)(...args), []);\n}\nexport default useEventCallback;","'use client';\n\nimport * as React from 'react';\nimport setRef from '../setRef';\nexport default function useForkRef(...refs) {\n /**\n * This will create a new function if the refs passed to this hook change and are all defined.\n * This means react will call the old forkRef with `null` and the new forkRef\n * with the ref. Cleanup naturally emerges from this behavior.\n */\n return React.useMemo(() => {\n if (refs.every(ref => ref == null)) {\n return null;\n }\n return instance => {\n refs.forEach(ref => {\n setRef(ref, instance);\n });\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, refs);\n}","'use client';\n\nimport * as React from 'react';\nlet globalId = 0;\nfunction useGlobalId(idOverride) {\n const [defaultId, setDefaultId] = React.useState(idOverride);\n const id = idOverride || defaultId;\n React.useEffect(() => {\n if (defaultId == null) {\n // Fallback to this default id when possible.\n // Use the incrementing value for client-side rendering only.\n // We can't use it server-side.\n // If you want to use random values please consider the Birthday Problem: https://en.wikipedia.org/wiki/Birthday_problem\n globalId += 1;\n setDefaultId(`mui-${globalId}`);\n }\n }, [defaultId]);\n return id;\n}\n\n// downstream bundlers may remove unnecessary concatenation, but won't remove toString call -- Workaround for https://github.com/webpack/webpack/issues/14814\nconst maybeReactUseId = React['useId'.toString()];\n/**\n *\n * @example
\n * @param idOverride\n * @returns {string}\n */\nexport default function useId(idOverride) {\n if (maybeReactUseId !== undefined) {\n const reactId = maybeReactUseId();\n return idOverride != null ? idOverride : reactId;\n }\n // eslint-disable-next-line react-hooks/rules-of-hooks -- `React.useId` is invariant at runtime.\n return useGlobalId(idOverride);\n}","'use client';\n\nimport * as React from 'react';\nconst usePreviousProps = value => {\n const ref = React.useRef({});\n React.useEffect(() => {\n ref.current = value;\n });\n return ref.current;\n};\nexport default usePreviousProps;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nexport const getPickersLocalization = pickersTranslations => {\n return {\n components: {\n MuiLocalizationProvider: {\n defaultProps: {\n localeText: _extends({}, pickersTranslations)\n }\n }\n }\n };\n};","import { getPickersLocalization } from './utils/getPickersLocalization';\n// This object is not Partial because it is the default values\nconst enUSPickers = {\n // Calendar navigation\n previousMonth: 'Previous month',\n nextMonth: 'Next month',\n // View navigation\n openPreviousView: 'open previous view',\n openNextView: 'open next view',\n calendarViewSwitchingButtonAriaLabel: view => view === 'year' ? 'year view is open, switch to calendar view' : 'calendar view is open, switch to year view',\n inputModeToggleButtonAriaLabel: (isKeyboardInputOpen, viewType) => isKeyboardInputOpen ? `text input view is open, go to ${viewType} view` : `${viewType} view is open, go to text input view`,\n // DateRange placeholders\n start: 'Start',\n end: 'End',\n // Action bar\n cancelButtonLabel: 'Cancel',\n clearButtonLabel: 'Clear',\n okButtonLabel: 'OK',\n todayButtonLabel: 'Today',\n // Toolbar titles\n datePickerDefaultToolbarTitle: 'Select date',\n dateTimePickerDefaultToolbarTitle: 'Select date & time',\n timePickerDefaultToolbarTitle: 'Select time',\n dateRangePickerDefaultToolbarTitle: 'Select date range',\n // Clock labels\n clockLabelText: (view, time, adapter) => `Select ${view}. ${time === null ? 'No time selected' : `Selected time is ${adapter.format(time, 'fullTime')}`}`,\n hoursClockNumberText: hours => `${hours} hours`,\n minutesClockNumberText: minutes => `${minutes} minutes`,\n secondsClockNumberText: seconds => `${seconds} seconds`,\n // Open picker labels\n openDatePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Choose date, selected date is ${utils.format(utils.date(rawValue), 'fullDate')}` : 'Choose date',\n openTimePickerDialogue: (rawValue, utils) => rawValue && utils.isValid(utils.date(rawValue)) ? `Choose time, selected time is ${utils.format(utils.date(rawValue), 'fullTime')}` : 'Choose time',\n // Table labels\n timeTableLabel: 'pick time',\n dateTableLabel: 'pick date'\n};\nexport const DEFAULT_LOCALE = enUSPickers;\nexport const enUS = getPickersLocalization(enUSPickers);","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useThemeProps } from '@mui/material/styles';\nimport { DEFAULT_LOCALE } from '../locales';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const MuiPickersAdapterContext = /*#__PURE__*/React.createContext(null);\n\nif (process.env.NODE_ENV !== 'production') {\n MuiPickersAdapterContext.displayName = 'MuiPickersAdapterContext';\n}\n\nlet warnedOnce = false;\n/**\n * @ignore - do not document.\n */\n\nexport function LocalizationProvider(inProps) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiLocalizationProvider'\n });\n const {\n children,\n dateAdapter: Utils,\n dateFormats,\n dateLibInstance,\n locale,\n adapterLocale,\n localeText\n } = props;\n\n if (process.env.NODE_ENV !== 'production') {\n if (!warnedOnce && locale !== undefined) {\n warnedOnce = true;\n console.warn(\"LocalizationProvider's prop `locale` is deprecated and replaced by `adapterLocale`\");\n }\n }\n\n const utils = React.useMemo(() => new Utils({\n locale: adapterLocale != null ? adapterLocale : locale,\n formats: dateFormats,\n instance: dateLibInstance\n }), [Utils, locale, adapterLocale, dateFormats, dateLibInstance]);\n const defaultDates = React.useMemo(() => {\n return {\n minDate: utils.date('1900-01-01T00:00:00.000'),\n maxDate: utils.date('2099-12-31T00:00:00.000')\n };\n }, [utils]);\n const contextValue = React.useMemo(() => {\n return {\n utils,\n defaultDates,\n localeText: _extends({}, DEFAULT_LOCALE, localeText != null ? localeText : {})\n };\n }, [defaultDates, utils, localeText]);\n return /*#__PURE__*/_jsx(MuiPickersAdapterContext.Provider, {\n value: contextValue,\n children: children\n });\n}\nprocess.env.NODE_ENV !== \"production\" ? LocalizationProvider.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n\n /**\n * Locale for the date library you are using\n */\n adapterLocale: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n children: PropTypes.node,\n\n /**\n * DateIO adapter class function\n */\n dateAdapter: PropTypes.func.isRequired,\n\n /**\n * Formats that are used for any child pickers\n */\n dateFormats: PropTypes.shape({\n dayOfMonth: PropTypes.string,\n fullDate: PropTypes.string,\n fullDateTime: PropTypes.string,\n fullDateTime12h: PropTypes.string,\n fullDateTime24h: PropTypes.string,\n fullDateWithWeekday: PropTypes.string,\n fullTime: PropTypes.string,\n fullTime12h: PropTypes.string,\n fullTime24h: PropTypes.string,\n hours12h: PropTypes.string,\n hours24h: PropTypes.string,\n keyboardDate: PropTypes.string,\n keyboardDateTime: PropTypes.string,\n keyboardDateTime12h: PropTypes.string,\n keyboardDateTime24h: PropTypes.string,\n minutes: PropTypes.string,\n month: PropTypes.string,\n monthAndDate: PropTypes.string,\n monthAndYear: PropTypes.string,\n monthShort: PropTypes.string,\n normalDate: PropTypes.string,\n normalDateWithWeekday: PropTypes.string,\n seconds: PropTypes.string,\n shortDate: PropTypes.string,\n weekday: PropTypes.string,\n weekdayShort: PropTypes.string,\n year: PropTypes.string\n }),\n\n /**\n * Date library instance you are using, if it has some global overrides\n * ```jsx\n * dateLibInstance={momentTimeZone}\n * ```\n */\n dateLibInstance: PropTypes.any,\n\n /**\n * Locale for the date library you are using\n * @deprecated Use `adapterLocale` instead\n */\n locale: PropTypes.oneOfType([PropTypes.object, PropTypes.string]),\n\n /**\n * Locale for components texts\n */\n localeText: PropTypes.object\n} : void 0;","const errors = {\n\t0: \"Illegal state\",\n\t1: \"Immer drafts cannot have computed properties\",\n\t2: \"This object has been frozen and should not be mutated\",\n\t3(data: any) {\n\t\treturn (\n\t\t\t\"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" +\n\t\t\tdata\n\t\t)\n\t},\n\t4: \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n\t5: \"Immer forbids circular references\",\n\t6: \"The first or second argument to `produce` must be a function\",\n\t7: \"The third argument to `produce` must be a function or undefined\",\n\t8: \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n\t9: \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n\t10: \"The given draft is already finalized\",\n\t11: \"Object.defineProperty() cannot be used on an Immer draft\",\n\t12: \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n\t13: \"Immer only supports deleting array indices\",\n\t14: \"Immer only supports setting array indices and the 'length' property\",\n\t15(path: string) {\n\t\treturn \"Cannot apply patch, path doesn't resolve: \" + path\n\t},\n\t16: 'Sets cannot have \"replace\" patches.',\n\t17(op: string) {\n\t\treturn \"Unsupported patch operation: \" + op\n\t},\n\t18(plugin: string) {\n\t\treturn `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`\n\t},\n\t20: \"Cannot use proxies if Proxy, Proxy.revocable or Reflect are not available\",\n\t21(thing: string) {\n\t\treturn `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`\n\t},\n\t22(thing: string) {\n\t\treturn `'current' expects a draft, got: ${thing}`\n\t},\n\t23(thing: string) {\n\t\treturn `'original' expects a draft, got: ${thing}`\n\t},\n\t24: \"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n} as const\n\nexport function die(error: keyof typeof errors, ...args: any[]): never {\n\tif (__DEV__) {\n\t\tconst e = errors[error]\n\t\tconst msg = !e\n\t\t\t? \"unknown error nr: \" + error\n\t\t\t: typeof e === \"function\"\n\t\t\t? e.apply(null, args as any)\n\t\t\t: e\n\t\tthrow new Error(`[Immer] ${msg}`)\n\t}\n\tthrow new Error(\n\t\t`[Immer] minified error nr: ${error}${\n\t\t\targs.length ? \" \" + args.map(s => `'${s}'`).join(\",\") : \"\"\n\t\t}. Find the full error at: https://bit.ly/3cXEKWf`\n\t)\n}\n","import {\n\tDRAFT_STATE,\n\tDRAFTABLE,\n\thasSet,\n\tObjectish,\n\tDrafted,\n\tAnyObject,\n\tAnyMap,\n\tAnySet,\n\tImmerState,\n\thasMap,\n\tArchtype,\n\tdie\n} from \"../internal\"\n\n/** Returns true if the given value is an Immer draft */\n/*#__PURE__*/\nexport function isDraft(value: any): boolean {\n\treturn !!value && !!value[DRAFT_STATE]\n}\n\n/** Returns true if the given value can be drafted by Immer */\n/*#__PURE__*/\nexport function isDraftable(value: any): boolean {\n\tif (!value) return false\n\treturn (\n\t\tisPlainObject(value) ||\n\t\tArray.isArray(value) ||\n\t\t!!value[DRAFTABLE] ||\n\t\t!!value.constructor?.[DRAFTABLE] ||\n\t\tisMap(value) ||\n\t\tisSet(value)\n\t)\n}\n\nconst objectCtorString = Object.prototype.constructor.toString()\n/*#__PURE__*/\nexport function isPlainObject(value: any): boolean {\n\tif (!value || typeof value !== \"object\") return false\n\tconst proto = Object.getPrototypeOf(value)\n\tif (proto === null) {\n\t\treturn true\n\t}\n\tconst Ctor =\n\t\tObject.hasOwnProperty.call(proto, \"constructor\") && proto.constructor\n\n\tif (Ctor === Object) return true\n\n\treturn (\n\t\ttypeof Ctor == \"function\" &&\n\t\tFunction.toString.call(Ctor) === objectCtorString\n\t)\n}\n\n/** Get the underlying object that is represented by the given draft */\n/*#__PURE__*/\nexport function original(value: T): T | undefined\nexport function original(value: Drafted): any {\n\tif (!isDraft(value)) die(23, value)\n\treturn value[DRAFT_STATE].base_\n}\n\n/*#__PURE__*/\nexport const ownKeys: (target: AnyObject) => PropertyKey[] =\n\ttypeof Reflect !== \"undefined\" && Reflect.ownKeys\n\t\t? Reflect.ownKeys\n\t\t: typeof Object.getOwnPropertySymbols !== \"undefined\"\n\t\t? obj =>\n\t\t\t\tObject.getOwnPropertyNames(obj).concat(\n\t\t\t\t\tObject.getOwnPropertySymbols(obj) as any\n\t\t\t\t)\n\t\t: /* istanbul ignore next */ Object.getOwnPropertyNames\n\nexport const getOwnPropertyDescriptors =\n\tObject.getOwnPropertyDescriptors ||\n\tfunction getOwnPropertyDescriptors(target: any) {\n\t\t// Polyfill needed for Hermes and IE, see https://github.com/facebook/hermes/issues/274\n\t\tconst res: any = {}\n\t\townKeys(target).forEach(key => {\n\t\t\tres[key] = Object.getOwnPropertyDescriptor(target, key)\n\t\t})\n\t\treturn res\n\t}\n\nexport function each(\n\tobj: T,\n\titer: (key: string | number, value: any, source: T) => void,\n\tenumerableOnly?: boolean\n): void\nexport function each(obj: any, iter: any, enumerableOnly = false) {\n\tif (getArchtype(obj) === Archtype.Object) {\n\t\t;(enumerableOnly ? Object.keys : ownKeys)(obj).forEach(key => {\n\t\t\tif (!enumerableOnly || typeof key !== \"symbol\") iter(key, obj[key], obj)\n\t\t})\n\t} else {\n\t\tobj.forEach((entry: any, index: any) => iter(index, entry, obj))\n\t}\n}\n\n/*#__PURE__*/\nexport function getArchtype(thing: any): Archtype {\n\t/* istanbul ignore next */\n\tconst state: undefined | ImmerState = thing[DRAFT_STATE]\n\treturn state\n\t\t? state.type_ > 3\n\t\t\t? state.type_ - 4 // cause Object and Array map back from 4 and 5\n\t\t\t: (state.type_ as any) // others are the same\n\t\t: Array.isArray(thing)\n\t\t? Archtype.Array\n\t\t: isMap(thing)\n\t\t? Archtype.Map\n\t\t: isSet(thing)\n\t\t? Archtype.Set\n\t\t: Archtype.Object\n}\n\n/*#__PURE__*/\nexport function has(thing: any, prop: PropertyKey): boolean {\n\treturn getArchtype(thing) === Archtype.Map\n\t\t? thing.has(prop)\n\t\t: Object.prototype.hasOwnProperty.call(thing, prop)\n}\n\n/*#__PURE__*/\nexport function get(thing: AnyMap | AnyObject, prop: PropertyKey): any {\n\t// @ts-ignore\n\treturn getArchtype(thing) === Archtype.Map ? thing.get(prop) : thing[prop]\n}\n\n/*#__PURE__*/\nexport function set(thing: any, propOrOldValue: PropertyKey, value: any) {\n\tconst t = getArchtype(thing)\n\tif (t === Archtype.Map) thing.set(propOrOldValue, value)\n\telse if (t === Archtype.Set) {\n\t\tthing.add(value)\n\t} else thing[propOrOldValue] = value\n}\n\n/*#__PURE__*/\nexport function is(x: any, y: any): boolean {\n\t// From: https://github.com/facebook/fbjs/blob/c69904a511b900266935168223063dd8772dfc40/packages/fbjs/src/core/shallowEqual.js\n\tif (x === y) {\n\t\treturn x !== 0 || 1 / x === 1 / y\n\t} else {\n\t\treturn x !== x && y !== y\n\t}\n}\n\n/*#__PURE__*/\nexport function isMap(target: any): target is AnyMap {\n\treturn hasMap && target instanceof Map\n}\n\n/*#__PURE__*/\nexport function isSet(target: any): target is AnySet {\n\treturn hasSet && target instanceof Set\n}\n/*#__PURE__*/\nexport function latest(state: ImmerState): any {\n\treturn state.copy_ || state.base_\n}\n\n/*#__PURE__*/\nexport function shallowCopy(base: any) {\n\tif (Array.isArray(base)) return Array.prototype.slice.call(base)\n\tconst descriptors = getOwnPropertyDescriptors(base)\n\tdelete descriptors[DRAFT_STATE as any]\n\tlet keys = ownKeys(descriptors)\n\tfor (let i = 0; i < keys.length; i++) {\n\t\tconst key: any = keys[i]\n\t\tconst desc = descriptors[key]\n\t\tif (desc.writable === false) {\n\t\t\tdesc.writable = true\n\t\t\tdesc.configurable = true\n\t\t}\n\t\t// like object.assign, we will read any _own_, get/set accessors. This helps in dealing\n\t\t// with libraries that trap values, like mobx or vue\n\t\t// unlike object.assign, non-enumerables will be copied as well\n\t\tif (desc.get || desc.set)\n\t\t\tdescriptors[key] = {\n\t\t\t\tconfigurable: true,\n\t\t\t\twritable: true, // could live with !!desc.set as well here...\n\t\t\t\tenumerable: desc.enumerable,\n\t\t\t\tvalue: base[key]\n\t\t\t}\n\t}\n\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n}\n\n/**\n * Freezes draftable objects. Returns the original object.\n * By default freezes shallowly, but if the second argument is `true` it will freeze recursively.\n *\n * @param obj\n * @param deep\n */\nexport function freeze(obj: T, deep?: boolean): T\nexport function freeze(obj: any, deep: boolean = false): T {\n\tif (isFrozen(obj) || isDraft(obj) || !isDraftable(obj)) return obj\n\tif (getArchtype(obj) > 1 /* Map or Set */) {\n\t\tobj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections as any\n\t}\n\tObject.freeze(obj)\n\tif (deep) each(obj, (key, value) => freeze(value, true), true)\n\treturn obj\n}\n\nfunction dontMutateFrozenCollections() {\n\tdie(2)\n}\n\nexport function isFrozen(obj: any): boolean {\n\tif (obj == null || typeof obj !== \"object\") return true\n\t// See #600, IE dies on non-objects in Object.isFrozen\n\treturn Object.isFrozen(obj)\n}\n","import {\n\tImmerState,\n\tPatch,\n\tImmerScope,\n\tDrafted,\n\tAnyObject,\n\tImmerBaseState,\n\tAnyMap,\n\tAnySet,\n\tProxyType,\n\tdie\n} from \"../internal\"\n\n/** Plugin utilities */\nconst plugins: {\n\tPatches?: {\n\t\tgeneratePatches_(\n\t\t\tstate: ImmerState,\n\t\t\tbasePath: PatchPath,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tgenerateReplacementPatches_(\n\t\t\tbase: any,\n\t\t\treplacement: any,\n\t\t\tpatches: Patch[],\n\t\t\tinversePatches: Patch[]\n\t\t): void\n\t\tapplyPatches_(draft: T, patches: Patch[]): T\n\t}\n\tES5?: {\n\t\twillFinalizeES5_(scope: ImmerScope, result: any, isReplaced: boolean): void\n\t\tcreateES5Proxy_(\n\t\t\tbase: T,\n\t\t\tparent?: ImmerState\n\t\t): Drafted\n\t\thasChanges_(state: ES5ArrayState | ES5ObjectState): boolean\n\t}\n\tMapSet?: {\n\t\tproxyMap_(target: T, parent?: ImmerState): T\n\t\tproxySet_(target: T, parent?: ImmerState): T\n\t}\n} = {}\n\ntype Plugins = typeof plugins\n\nexport function getPlugin(\n\tpluginKey: K\n): Exclude {\n\tconst plugin = plugins[pluginKey]\n\tif (!plugin) {\n\t\tdie(18, pluginKey)\n\t}\n\t// @ts-ignore\n\treturn plugin\n}\n\nexport function loadPlugin(\n\tpluginKey: K,\n\timplementation: Plugins[K]\n): void {\n\tif (!plugins[pluginKey]) plugins[pluginKey] = implementation\n}\n\n/** ES5 Plugin */\n\ninterface ES5BaseState extends ImmerBaseState {\n\tassigned_: {[key: string]: any}\n\tparent_?: ImmerState\n\trevoked_: boolean\n}\n\nexport interface ES5ObjectState extends ES5BaseState {\n\ttype_: ProxyType.ES5Object\n\tdraft_: Drafted\n\tbase_: AnyObject\n\tcopy_: AnyObject | null\n}\n\nexport interface ES5ArrayState extends ES5BaseState {\n\ttype_: ProxyType.ES5Array\n\tdraft_: Drafted\n\tbase_: any\n\tcopy_: any\n}\n\n/** Map / Set plugin */\n\nexport interface MapState extends ImmerBaseState {\n\ttype_: ProxyType.Map\n\tcopy_: AnyMap | undefined\n\tassigned_: Map | undefined\n\tbase_: AnyMap\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\nexport interface SetState extends ImmerBaseState {\n\ttype_: ProxyType.Set\n\tcopy_: AnySet | undefined\n\tbase_: AnySet\n\tdrafts_: Map // maps the original value to the draft value in the new set\n\trevoked_: boolean\n\tdraft_: Drafted\n}\n\n/** Patches plugin */\n\nexport type PatchPath = (string | number)[]\n","import {\n\tPatch,\n\tPatchListener,\n\tDrafted,\n\tImmer,\n\tDRAFT_STATE,\n\tImmerState,\n\tProxyType,\n\tgetPlugin\n} from \"../internal\"\nimport {die} from \"../utils/errors\"\n\n/** Each scope represents a `produce` call. */\n\nexport interface ImmerScope {\n\tpatches_?: Patch[]\n\tinversePatches_?: Patch[]\n\tcanAutoFreeze_: boolean\n\tdrafts_: any[]\n\tparent_?: ImmerScope\n\tpatchListener_?: PatchListener\n\timmer_: Immer\n\tunfinalizedDrafts_: number\n}\n\nlet currentScope: ImmerScope | undefined\n\nexport function getCurrentScope() {\n\tif (__DEV__ && !currentScope) die(0)\n\treturn currentScope!\n}\n\nfunction createScope(\n\tparent_: ImmerScope | undefined,\n\timmer_: Immer\n): ImmerScope {\n\treturn {\n\t\tdrafts_: [],\n\t\tparent_,\n\t\timmer_,\n\t\t// Whenever the modified draft contains a draft from another scope, we\n\t\t// need to prevent auto-freezing so the unowned draft can be finalized.\n\t\tcanAutoFreeze_: true,\n\t\tunfinalizedDrafts_: 0\n\t}\n}\n\nexport function usePatchesInScope(\n\tscope: ImmerScope,\n\tpatchListener?: PatchListener\n) {\n\tif (patchListener) {\n\t\tgetPlugin(\"Patches\") // assert we have the plugin\n\t\tscope.patches_ = []\n\t\tscope.inversePatches_ = []\n\t\tscope.patchListener_ = patchListener\n\t}\n}\n\nexport function revokeScope(scope: ImmerScope) {\n\tleaveScope(scope)\n\tscope.drafts_.forEach(revokeDraft)\n\t// @ts-ignore\n\tscope.drafts_ = null\n}\n\nexport function leaveScope(scope: ImmerScope) {\n\tif (scope === currentScope) {\n\t\tcurrentScope = scope.parent_\n\t}\n}\n\nexport function enterScope(immer: Immer) {\n\treturn (currentScope = createScope(currentScope, immer))\n}\n\nfunction revokeDraft(draft: Drafted) {\n\tconst state: ImmerState = draft[DRAFT_STATE]\n\tif (\n\t\tstate.type_ === ProxyType.ProxyObject ||\n\t\tstate.type_ === ProxyType.ProxyArray\n\t)\n\t\tstate.revoke_()\n\telse state.revoked_ = true\n}\n","import {\n\tImmerScope,\n\tDRAFT_STATE,\n\tisDraftable,\n\tNOTHING,\n\tPatchPath,\n\teach,\n\thas,\n\tfreeze,\n\tImmerState,\n\tisDraft,\n\tSetState,\n\tset,\n\tProxyType,\n\tgetPlugin,\n\tdie,\n\trevokeScope,\n\tisFrozen,\n\tshallowCopy\n} from \"../internal\"\n\nexport function processResult(result: any, scope: ImmerScope) {\n\tscope.unfinalizedDrafts_ = scope.drafts_.length\n\tconst baseDraft = scope.drafts_![0]\n\tconst isReplaced = result !== undefined && result !== baseDraft\n\tif (!scope.immer_.useProxies_)\n\t\tgetPlugin(\"ES5\").willFinalizeES5_(scope, result, isReplaced)\n\tif (isReplaced) {\n\t\tif (baseDraft[DRAFT_STATE].modified_) {\n\t\t\trevokeScope(scope)\n\t\t\tdie(4)\n\t\t}\n\t\tif (isDraftable(result)) {\n\t\t\t// Finalize the result in case it contains (or is) a subset of the draft.\n\t\t\tresult = finalize(scope, result)\n\t\t\tif (!scope.parent_) maybeFreeze(scope, result)\n\t\t}\n\t\tif (scope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(\n\t\t\t\tbaseDraft[DRAFT_STATE].base_,\n\t\t\t\tresult,\n\t\t\t\tscope.patches_,\n\t\t\t\tscope.inversePatches_!\n\t\t\t)\n\t\t}\n\t} else {\n\t\t// Finalize the base draft.\n\t\tresult = finalize(scope, baseDraft, [])\n\t}\n\trevokeScope(scope)\n\tif (scope.patches_) {\n\t\tscope.patchListener_!(scope.patches_, scope.inversePatches_!)\n\t}\n\treturn result !== NOTHING ? result : undefined\n}\n\nfunction finalize(rootScope: ImmerScope, value: any, path?: PatchPath) {\n\t// Don't recurse in tho recursive data structures\n\tif (isFrozen(value)) return value\n\n\tconst state: ImmerState = value[DRAFT_STATE]\n\t// A plain object, might need freezing, might contain drafts\n\tif (!state) {\n\t\teach(\n\t\t\tvalue,\n\t\t\t(key, childValue) =>\n\t\t\t\tfinalizeProperty(rootScope, state, value, key, childValue, path),\n\t\t\ttrue // See #590, don't recurse into non-enumerable of non drafted objects\n\t\t)\n\t\treturn value\n\t}\n\t// Never finalize drafts owned by another scope.\n\tif (state.scope_ !== rootScope) return value\n\t// Unmodified draft, return the (frozen) original\n\tif (!state.modified_) {\n\t\tmaybeFreeze(rootScope, state.base_, true)\n\t\treturn state.base_\n\t}\n\t// Not finalized yet, let's do that now\n\tif (!state.finalized_) {\n\t\tstate.finalized_ = true\n\t\tstate.scope_.unfinalizedDrafts_--\n\t\tconst result =\n\t\t\t// For ES5, create a good copy from the draft first, with added keys and without deleted keys.\n\t\t\tstate.type_ === ProxyType.ES5Object || state.type_ === ProxyType.ES5Array\n\t\t\t\t? (state.copy_ = shallowCopy(state.draft_))\n\t\t\t\t: state.copy_\n\t\t// Finalize all children of the copy\n\t\t// For sets we clone before iterating, otherwise we can get in endless loop due to modifying during iteration, see #628\n\t\t// To preserve insertion order in all cases we then clear the set\n\t\t// And we let finalizeProperty know it needs to re-add non-draft children back to the target\n\t\tlet resultEach = result\n\t\tlet isSet = false\n\t\tif (state.type_ === ProxyType.Set) {\n\t\t\tresultEach = new Set(result)\n\t\t\tresult.clear()\n\t\t\tisSet = true\n\t\t}\n\t\teach(resultEach, (key, childValue) =>\n\t\t\tfinalizeProperty(rootScope, state, result, key, childValue, path, isSet)\n\t\t)\n\t\t// everything inside is frozen, we can freeze here\n\t\tmaybeFreeze(rootScope, result, false)\n\t\t// first time finalizing, let's create those patches\n\t\tif (path && rootScope.patches_) {\n\t\t\tgetPlugin(\"Patches\").generatePatches_(\n\t\t\t\tstate,\n\t\t\t\tpath,\n\t\t\t\trootScope.patches_,\n\t\t\t\trootScope.inversePatches_!\n\t\t\t)\n\t\t}\n\t}\n\treturn state.copy_\n}\n\nfunction finalizeProperty(\n\trootScope: ImmerScope,\n\tparentState: undefined | ImmerState,\n\ttargetObject: any,\n\tprop: string | number,\n\tchildValue: any,\n\trootPath?: PatchPath,\n\ttargetIsSet?: boolean\n) {\n\tif (__DEV__ && childValue === targetObject) die(5)\n\tif (isDraft(childValue)) {\n\t\tconst path =\n\t\t\trootPath &&\n\t\t\tparentState &&\n\t\t\tparentState!.type_ !== ProxyType.Set && // Set objects are atomic since they have no keys.\n\t\t\t!has((parentState as Exclude).assigned_!, prop) // Skip deep patches for assigned keys.\n\t\t\t\t? rootPath!.concat(prop)\n\t\t\t\t: undefined\n\t\t// Drafts owned by `scope` are finalized here.\n\t\tconst res = finalize(rootScope, childValue, path)\n\t\tset(targetObject, prop, res)\n\t\t// Drafts from another scope must prevented to be frozen\n\t\t// if we got a draft back from finalize, we're in a nested produce and shouldn't freeze\n\t\tif (isDraft(res)) {\n\t\t\trootScope.canAutoFreeze_ = false\n\t\t} else return\n\t} else if (targetIsSet) {\n\t\ttargetObject.add(childValue)\n\t}\n\t// Search new objects for unfinalized drafts. Frozen objects should never contain drafts.\n\tif (isDraftable(childValue) && !isFrozen(childValue)) {\n\t\tif (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n\t\t\t// optimization: if an object is not a draft, and we don't have to\n\t\t\t// deepfreeze everything, and we are sure that no drafts are left in the remaining object\n\t\t\t// cause we saw and finalized all drafts already; we can stop visiting the rest of the tree.\n\t\t\t// This benefits especially adding large data tree's without further processing.\n\t\t\t// See add-data.js perf test\n\t\t\treturn\n\t\t}\n\t\tfinalize(rootScope, childValue)\n\t\t// immer deep freezes plain objects, so if there is no parent state, we freeze as well\n\t\tif (!parentState || !parentState.scope_.parent_)\n\t\t\tmaybeFreeze(rootScope, childValue)\n\t}\n}\n\nfunction maybeFreeze(scope: ImmerScope, value: any, deep = false) {\n\t// we never freeze for a non-root scope; as it would prevent pruning for drafts inside wrapping objects\n\tif (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n\t\tfreeze(value, deep)\n\t}\n}\n","import {\n\teach,\n\thas,\n\tis,\n\tisDraftable,\n\tshallowCopy,\n\tlatest,\n\tImmerBaseState,\n\tImmerState,\n\tDrafted,\n\tAnyObject,\n\tAnyArray,\n\tObjectish,\n\tgetCurrentScope,\n\tDRAFT_STATE,\n\tdie,\n\tcreateProxy,\n\tProxyType\n} from \"../internal\"\n\ninterface ProxyBaseState extends ImmerBaseState {\n\tassigned_: {\n\t\t[property: string]: boolean\n\t}\n\tparent_?: ImmerState\n\trevoke_(): void\n}\n\nexport interface ProxyObjectState extends ProxyBaseState {\n\ttype_: ProxyType.ProxyObject\n\tbase_: any\n\tcopy_: any\n\tdraft_: Drafted\n}\n\nexport interface ProxyArrayState extends ProxyBaseState {\n\ttype_: ProxyType.ProxyArray\n\tbase_: AnyArray\n\tcopy_: AnyArray | null\n\tdraft_: Drafted\n}\n\ntype ProxyState = ProxyObjectState | ProxyArrayState\n\n/**\n * Returns a new draft of the `base` object.\n *\n * The second argument is the parent draft-state (used internally).\n */\nexport function createProxyProxy(\n\tbase: T,\n\tparent?: ImmerState\n): Drafted {\n\tconst isArray = Array.isArray(base)\n\tconst state: ProxyState = {\n\t\ttype_: isArray ? ProxyType.ProxyArray : (ProxyType.ProxyObject as any),\n\t\t// Track which produce call this is associated with.\n\t\tscope_: parent ? parent.scope_ : getCurrentScope()!,\n\t\t// True for both shallow and deep changes.\n\t\tmodified_: false,\n\t\t// Used during finalization.\n\t\tfinalized_: false,\n\t\t// Track which properties have been assigned (true) or deleted (false).\n\t\tassigned_: {},\n\t\t// The parent draft state.\n\t\tparent_: parent,\n\t\t// The base state.\n\t\tbase_: base,\n\t\t// The base proxy.\n\t\tdraft_: null as any, // set below\n\t\t// The base copy with any updated values.\n\t\tcopy_: null,\n\t\t// Called by the `produce` function.\n\t\trevoke_: null as any,\n\t\tisManual_: false\n\t}\n\n\t// the traps must target something, a bit like the 'real' base.\n\t// but also, we need to be able to determine from the target what the relevant state is\n\t// (to avoid creating traps per instance to capture the state in closure,\n\t// and to avoid creating weird hidden properties as well)\n\t// So the trick is to use 'state' as the actual 'target'! (and make sure we intercept everything)\n\t// Note that in the case of an array, we put the state in an array to have better Reflect defaults ootb\n\tlet target: T = state as any\n\tlet traps: ProxyHandler> = objectTraps\n\tif (isArray) {\n\t\ttarget = [state] as any\n\t\ttraps = arrayTraps\n\t}\n\n\tconst {revoke, proxy} = Proxy.revocable(target, traps)\n\tstate.draft_ = proxy as any\n\tstate.revoke_ = revoke\n\treturn proxy as any\n}\n\n/**\n * Object drafts\n */\nexport const objectTraps: ProxyHandler = {\n\tget(state, prop) {\n\t\tif (prop === DRAFT_STATE) return state\n\n\t\tconst source = latest(state)\n\t\tif (!has(source, prop)) {\n\t\t\t// non-existing or non-own property...\n\t\t\treturn readPropFromProto(state, source, prop)\n\t\t}\n\t\tconst value = source[prop]\n\t\tif (state.finalized_ || !isDraftable(value)) {\n\t\t\treturn value\n\t\t}\n\t\t// Check for existing draft in modified state.\n\t\t// Assigned values are never drafted. This catches any drafts we created, too.\n\t\tif (value === peek(state.base_, prop)) {\n\t\t\tprepareCopy(state)\n\t\t\treturn (state.copy_![prop as any] = createProxy(\n\t\t\t\tstate.scope_.immer_,\n\t\t\t\tvalue,\n\t\t\t\tstate\n\t\t\t))\n\t\t}\n\t\treturn value\n\t},\n\thas(state, prop) {\n\t\treturn prop in latest(state)\n\t},\n\townKeys(state) {\n\t\treturn Reflect.ownKeys(latest(state))\n\t},\n\tset(\n\t\tstate: ProxyObjectState,\n\t\tprop: string /* strictly not, but helps TS */,\n\t\tvalue\n\t) {\n\t\tconst desc = getDescriptorFromProto(latest(state), prop)\n\t\tif (desc?.set) {\n\t\t\t// special case: if this write is captured by a setter, we have\n\t\t\t// to trigger it with the correct context\n\t\t\tdesc.set.call(state.draft_, value)\n\t\t\treturn true\n\t\t}\n\t\tif (!state.modified_) {\n\t\t\t// the last check is because we need to be able to distinguish setting a non-existing to undefined (which is a change)\n\t\t\t// from setting an existing property with value undefined to undefined (which is not a change)\n\t\t\tconst current = peek(latest(state), prop)\n\t\t\t// special case, if we assigning the original value to a draft, we can ignore the assignment\n\t\t\tconst currentState: ProxyObjectState = current?.[DRAFT_STATE]\n\t\t\tif (currentState && currentState.base_ === value) {\n\t\t\t\tstate.copy_![prop] = value\n\t\t\t\tstate.assigned_[prop] = false\n\t\t\t\treturn true\n\t\t\t}\n\t\t\tif (is(value, current) && (value !== undefined || has(state.base_, prop)))\n\t\t\t\treturn true\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t}\n\n\t\tif (\n\t\t\t(state.copy_![prop] === value &&\n\t\t\t\t// special case: handle new props with value 'undefined'\n\t\t\t\t(value !== undefined || prop in state.copy_)) ||\n\t\t\t// special case: NaN\n\t\t\t(Number.isNaN(value) && Number.isNaN(state.copy_![prop]))\n\t\t)\n\t\t\treturn true\n\n\t\t// @ts-ignore\n\t\tstate.copy_![prop] = value\n\t\tstate.assigned_[prop] = true\n\t\treturn true\n\t},\n\tdeleteProperty(state, prop: string) {\n\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\tif (peek(state.base_, prop) !== undefined || prop in state.base_) {\n\t\t\tstate.assigned_[prop] = false\n\t\t\tprepareCopy(state)\n\t\t\tmarkChanged(state)\n\t\t} else {\n\t\t\t// if an originally not assigned property was deleted\n\t\t\tdelete state.assigned_[prop]\n\t\t}\n\t\t// @ts-ignore\n\t\tif (state.copy_) delete state.copy_[prop]\n\t\treturn true\n\t},\n\t// Note: We never coerce `desc.value` into an Immer draft, because we can't make\n\t// the same guarantee in ES5 mode.\n\tgetOwnPropertyDescriptor(state, prop) {\n\t\tconst owner = latest(state)\n\t\tconst desc = Reflect.getOwnPropertyDescriptor(owner, prop)\n\t\tif (!desc) return desc\n\t\treturn {\n\t\t\twritable: true,\n\t\t\tconfigurable: state.type_ !== ProxyType.ProxyArray || prop !== \"length\",\n\t\t\tenumerable: desc.enumerable,\n\t\t\tvalue: owner[prop]\n\t\t}\n\t},\n\tdefineProperty() {\n\t\tdie(11)\n\t},\n\tgetPrototypeOf(state) {\n\t\treturn Object.getPrototypeOf(state.base_)\n\t},\n\tsetPrototypeOf() {\n\t\tdie(12)\n\t}\n}\n\n/**\n * Array drafts\n */\n\nconst arrayTraps: ProxyHandler<[ProxyArrayState]> = {}\neach(objectTraps, (key, fn) => {\n\t// @ts-ignore\n\tarrayTraps[key] = function() {\n\t\targuments[0] = arguments[0][0]\n\t\treturn fn.apply(this, arguments)\n\t}\n})\narrayTraps.deleteProperty = function(state, prop) {\n\tif (__DEV__ && isNaN(parseInt(prop as any))) die(13)\n\t// @ts-ignore\n\treturn arrayTraps.set!.call(this, state, prop, undefined)\n}\narrayTraps.set = function(state, prop, value) {\n\tif (__DEV__ && prop !== \"length\" && isNaN(parseInt(prop as any))) die(14)\n\treturn objectTraps.set!.call(this, state[0], prop, value, state[0])\n}\n\n// Access a property without creating an Immer draft.\nfunction peek(draft: Drafted, prop: PropertyKey) {\n\tconst state = draft[DRAFT_STATE]\n\tconst source = state ? latest(state) : draft\n\treturn source[prop]\n}\n\nfunction readPropFromProto(state: ImmerState, source: any, prop: PropertyKey) {\n\tconst desc = getDescriptorFromProto(source, prop)\n\treturn desc\n\t\t? `value` in desc\n\t\t\t? desc.value\n\t\t\t: // This is a very special case, if the prop is a getter defined by the\n\t\t\t // prototype, we should invoke it with the draft as context!\n\t\t\t desc.get?.call(state.draft_)\n\t\t: undefined\n}\n\nfunction getDescriptorFromProto(\n\tsource: any,\n\tprop: PropertyKey\n): PropertyDescriptor | undefined {\n\t// 'in' checks proto!\n\tif (!(prop in source)) return undefined\n\tlet proto = Object.getPrototypeOf(source)\n\twhile (proto) {\n\t\tconst desc = Object.getOwnPropertyDescriptor(proto, prop)\n\t\tif (desc) return desc\n\t\tproto = Object.getPrototypeOf(proto)\n\t}\n\treturn undefined\n}\n\nexport function markChanged(state: ImmerState) {\n\tif (!state.modified_) {\n\t\tstate.modified_ = true\n\t\tif (state.parent_) {\n\t\t\tmarkChanged(state.parent_)\n\t\t}\n\t}\n}\n\nexport function prepareCopy(state: {base_: any; copy_: any}) {\n\tif (!state.copy_) {\n\t\tstate.copy_ = shallowCopy(state.base_)\n\t}\n}\n","import {\n\tIProduceWithPatches,\n\tIProduce,\n\tImmerState,\n\tDrafted,\n\tisDraftable,\n\tprocessResult,\n\tPatch,\n\tObjectish,\n\tDRAFT_STATE,\n\tDraft,\n\tPatchListener,\n\tisDraft,\n\tisMap,\n\tisSet,\n\tcreateProxyProxy,\n\tgetPlugin,\n\tdie,\n\thasProxies,\n\tenterScope,\n\trevokeScope,\n\tleaveScope,\n\tusePatchesInScope,\n\tgetCurrentScope,\n\tNOTHING,\n\tfreeze,\n\tcurrent\n} from \"../internal\"\n\ninterface ProducersFns {\n\tproduce: IProduce\n\tproduceWithPatches: IProduceWithPatches\n}\n\nexport class Immer implements ProducersFns {\n\tuseProxies_: boolean = hasProxies\n\n\tautoFreeze_: boolean = true\n\n\tconstructor(config?: {useProxies?: boolean; autoFreeze?: boolean}) {\n\t\tif (typeof config?.useProxies === \"boolean\")\n\t\t\tthis.setUseProxies(config!.useProxies)\n\t\tif (typeof config?.autoFreeze === \"boolean\")\n\t\t\tthis.setAutoFreeze(config!.autoFreeze)\n\t}\n\n\t/**\n\t * The `produce` function takes a value and a \"recipe function\" (whose\n\t * return value often depends on the base state). The recipe function is\n\t * free to mutate its first argument however it wants. All mutations are\n\t * only ever applied to a __copy__ of the base state.\n\t *\n\t * Pass only a function to create a \"curried producer\" which relieves you\n\t * from passing the recipe function every time.\n\t *\n\t * Only plain objects and arrays are made mutable. All other objects are\n\t * considered uncopyable.\n\t *\n\t * Note: This function is __bound__ to its `Immer` instance.\n\t *\n\t * @param {any} base - the initial state\n\t * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n\t * @param {Function} patchListener - optional function that will be called with all the patches produced here\n\t * @returns {any} a new state, or the initial state if nothing was modified\n\t */\n\tproduce: IProduce = (base: any, recipe?: any, patchListener?: any) => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\" && typeof recipe !== \"function\") {\n\t\t\tconst defaultBase = recipe\n\t\t\trecipe = base\n\n\t\t\tconst self = this\n\t\t\treturn function curriedProduce(\n\t\t\t\tthis: any,\n\t\t\t\tbase = defaultBase,\n\t\t\t\t...args: any[]\n\t\t\t) {\n\t\t\t\treturn self.produce(base, (draft: Drafted) => recipe.call(this, draft, ...args)) // prettier-ignore\n\t\t\t}\n\t\t}\n\n\t\tif (typeof recipe !== \"function\") die(6)\n\t\tif (patchListener !== undefined && typeof patchListener !== \"function\")\n\t\t\tdie(7)\n\n\t\tlet result\n\n\t\t// Only plain objects, arrays, and \"immerable classes\" are drafted.\n\t\tif (isDraftable(base)) {\n\t\t\tconst scope = enterScope(this)\n\t\t\tconst proxy = createProxy(this, base, undefined)\n\t\t\tlet hasError = true\n\t\t\ttry {\n\t\t\t\tresult = recipe(proxy)\n\t\t\t\thasError = false\n\t\t\t} finally {\n\t\t\t\t// finally instead of catch + rethrow better preserves original stack\n\t\t\t\tif (hasError) revokeScope(scope)\n\t\t\t\telse leaveScope(scope)\n\t\t\t}\n\t\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\t\treturn result.then(\n\t\t\t\t\tresult => {\n\t\t\t\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\t\t\t\treturn processResult(result, scope)\n\t\t\t\t\t},\n\t\t\t\t\terror => {\n\t\t\t\t\t\trevokeScope(scope)\n\t\t\t\t\t\tthrow error\n\t\t\t\t\t}\n\t\t\t\t)\n\t\t\t}\n\t\t\tusePatchesInScope(scope, patchListener)\n\t\t\treturn processResult(result, scope)\n\t\t} else if (!base || typeof base !== \"object\") {\n\t\t\tresult = recipe(base)\n\t\t\tif (result === undefined) result = base\n\t\t\tif (result === NOTHING) result = undefined\n\t\t\tif (this.autoFreeze_) freeze(result, true)\n\t\t\tif (patchListener) {\n\t\t\t\tconst p: Patch[] = []\n\t\t\t\tconst ip: Patch[] = []\n\t\t\t\tgetPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip)\n\t\t\t\tpatchListener(p, ip)\n\t\t\t}\n\t\t\treturn result\n\t\t} else die(21, base)\n\t}\n\n\tproduceWithPatches: IProduceWithPatches = (base: any, recipe?: any): any => {\n\t\t// curried invocation\n\t\tif (typeof base === \"function\") {\n\t\t\treturn (state: any, ...args: any[]) =>\n\t\t\t\tthis.produceWithPatches(state, (draft: any) => base(draft, ...args))\n\t\t}\n\n\t\tlet patches: Patch[], inversePatches: Patch[]\n\t\tconst result = this.produce(base, recipe, (p: Patch[], ip: Patch[]) => {\n\t\t\tpatches = p\n\t\t\tinversePatches = ip\n\t\t})\n\n\t\tif (typeof Promise !== \"undefined\" && result instanceof Promise) {\n\t\t\treturn result.then(nextState => [nextState, patches!, inversePatches!])\n\t\t}\n\t\treturn [result, patches!, inversePatches!]\n\t}\n\n\tcreateDraft(base: T): Draft {\n\t\tif (!isDraftable(base)) die(8)\n\t\tif (isDraft(base)) base = current(base)\n\t\tconst scope = enterScope(this)\n\t\tconst proxy = createProxy(this, base, undefined)\n\t\tproxy[DRAFT_STATE].isManual_ = true\n\t\tleaveScope(scope)\n\t\treturn proxy as any\n\t}\n\n\tfinishDraft>(\n\t\tdraft: D,\n\t\tpatchListener?: PatchListener\n\t): D extends Draft ? T : never {\n\t\tconst state: ImmerState = draft && (draft as any)[DRAFT_STATE]\n\t\tif (__DEV__) {\n\t\t\tif (!state || !state.isManual_) die(9)\n\t\t\tif (state.finalized_) die(10)\n\t\t}\n\t\tconst {scope_: scope} = state\n\t\tusePatchesInScope(scope, patchListener)\n\t\treturn processResult(undefined, scope)\n\t}\n\n\t/**\n\t * Pass true to automatically freeze all copies created by Immer.\n\t *\n\t * By default, auto-freezing is enabled.\n\t */\n\tsetAutoFreeze(value: boolean) {\n\t\tthis.autoFreeze_ = value\n\t}\n\n\t/**\n\t * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n\t * always faster than using ES5 proxies.\n\t *\n\t * By default, feature detection is used, so calling this is rarely necessary.\n\t */\n\tsetUseProxies(value: boolean) {\n\t\tif (value && !hasProxies) {\n\t\t\tdie(20)\n\t\t}\n\t\tthis.useProxies_ = value\n\t}\n\n\tapplyPatches(base: T, patches: Patch[]): T {\n\t\t// If a patch replaces the entire state, take that replacement as base\n\t\t// before applying patches\n\t\tlet i: number\n\t\tfor (i = patches.length - 1; i >= 0; i--) {\n\t\t\tconst patch = patches[i]\n\t\t\tif (patch.path.length === 0 && patch.op === \"replace\") {\n\t\t\t\tbase = patch.value\n\t\t\t\tbreak\n\t\t\t}\n\t\t}\n\t\t// If there was a patch that replaced the entire state, start from the\n\t\t// patch after that.\n\t\tif (i > -1) {\n\t\t\tpatches = patches.slice(i + 1)\n\t\t}\n\n\t\tconst applyPatchesImpl = getPlugin(\"Patches\").applyPatches_\n\t\tif (isDraft(base)) {\n\t\t\t// N.B: never hits if some patch a replacement, patches are never drafts\n\t\t\treturn applyPatchesImpl(base, patches)\n\t\t}\n\t\t// Otherwise, produce a copy of the base state.\n\t\treturn this.produce(base, (draft: Drafted) =>\n\t\t\tapplyPatchesImpl(draft, patches)\n\t\t)\n\t}\n}\n\nexport function createProxy(\n\timmer: Immer,\n\tvalue: T,\n\tparent?: ImmerState\n): Drafted {\n\t// precondition: createProxy should be guarded by isDraftable, so we know we can safely draft\n\tconst draft: Drafted = isMap(value)\n\t\t? getPlugin(\"MapSet\").proxyMap_(value, parent)\n\t\t: isSet(value)\n\t\t? getPlugin(\"MapSet\").proxySet_(value, parent)\n\t\t: immer.useProxies_\n\t\t? createProxyProxy(value, parent)\n\t\t: getPlugin(\"ES5\").createES5Proxy_(value, parent)\n\n\tconst scope = parent ? parent.scope_ : getCurrentScope()\n\tscope.drafts_.push(draft)\n\treturn draft\n}\n","import {\n\tdie,\n\tisDraft,\n\tshallowCopy,\n\teach,\n\tDRAFT_STATE,\n\tget,\n\tset,\n\tImmerState,\n\tisDraftable,\n\tArchtype,\n\tgetArchtype,\n\tgetPlugin\n} from \"../internal\"\n\n/** Takes a snapshot of the current state of a draft and finalizes it (but without freezing). This is a great utility to print the current state during debugging (no Proxies in the way). The output of current can also be safely leaked outside the producer. */\nexport function current(value: T): T\nexport function current(value: any): any {\n\tif (!isDraft(value)) die(22, value)\n\treturn currentImpl(value)\n}\n\nfunction currentImpl(value: any): any {\n\tif (!isDraftable(value)) return value\n\tconst state: ImmerState | undefined = value[DRAFT_STATE]\n\tlet copy: any\n\tconst archType = getArchtype(value)\n\tif (state) {\n\t\tif (\n\t\t\t!state.modified_ &&\n\t\t\t(state.type_ < 4 || !getPlugin(\"ES5\").hasChanges_(state as any))\n\t\t)\n\t\t\treturn state.base_\n\t\t// Optimization: avoid generating new drafts during copying\n\t\tstate.finalized_ = true\n\t\tcopy = copyHelper(value, archType)\n\t\tstate.finalized_ = false\n\t} else {\n\t\tcopy = copyHelper(value, archType)\n\t}\n\n\teach(copy, (key, childValue) => {\n\t\tif (state && get(state.base_, key) === childValue) return // no need to copy or search in something that didn't change\n\t\tset(copy, key, currentImpl(childValue))\n\t})\n\t// In the future, we might consider freezing here, based on the current settings\n\treturn archType === Archtype.Set ? new Set(copy) : copy\n}\n\nfunction copyHelper(value: any, archType: number): any {\n\t// creates a shallow copy, even if it is a map or set\n\tswitch (archType) {\n\t\tcase Archtype.Map:\n\t\t\treturn new Map(value)\n\t\tcase Archtype.Set:\n\t\t\t// Set will be cloned as array temporarily, so that we can replace individual items\n\t\t\treturn Array.from(value)\n\t}\n\treturn shallowCopy(value)\n}\n","import {\n\tImmerState,\n\tDrafted,\n\tES5ArrayState,\n\tES5ObjectState,\n\teach,\n\thas,\n\tisDraft,\n\tlatest,\n\tDRAFT_STATE,\n\tis,\n\tloadPlugin,\n\tImmerScope,\n\tProxyType,\n\tgetCurrentScope,\n\tdie,\n\tmarkChanged,\n\tobjectTraps,\n\townKeys,\n\tgetOwnPropertyDescriptors\n} from \"../internal\"\n\ntype ES5State = ES5ArrayState | ES5ObjectState\n\nexport function enableES5() {\n\tfunction willFinalizeES5_(\n\t\tscope: ImmerScope,\n\t\tresult: any,\n\t\tisReplaced: boolean\n\t) {\n\t\tif (!isReplaced) {\n\t\t\tif (scope.patches_) {\n\t\t\t\tmarkChangesRecursively(scope.drafts_![0])\n\t\t\t}\n\t\t\t// This is faster when we don't care about which attributes changed.\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t\t// When a child draft is returned, look for changes.\n\t\telse if (\n\t\t\tisDraft(result) &&\n\t\t\t(result[DRAFT_STATE] as ES5State).scope_ === scope\n\t\t) {\n\t\t\tmarkChangesSweep(scope.drafts_)\n\t\t}\n\t}\n\n\tfunction createES5Draft(isArray: boolean, base: any) {\n\t\tif (isArray) {\n\t\t\tconst draft = new Array(base.length)\n\t\t\tfor (let i = 0; i < base.length; i++)\n\t\t\t\tObject.defineProperty(draft, \"\" + i, proxyProperty(i, true))\n\t\t\treturn draft\n\t\t} else {\n\t\t\tconst descriptors = getOwnPropertyDescriptors(base)\n\t\t\tdelete descriptors[DRAFT_STATE as any]\n\t\t\tconst keys = ownKeys(descriptors)\n\t\t\tfor (let i = 0; i < keys.length; i++) {\n\t\t\t\tconst key: any = keys[i]\n\t\t\t\tdescriptors[key] = proxyProperty(\n\t\t\t\t\tkey,\n\t\t\t\t\tisArray || !!descriptors[key].enumerable\n\t\t\t\t)\n\t\t\t}\n\t\t\treturn Object.create(Object.getPrototypeOf(base), descriptors)\n\t\t}\n\t}\n\n\tfunction createES5Proxy_(\n\t\tbase: T,\n\t\tparent?: ImmerState\n\t): Drafted {\n\t\tconst isArray = Array.isArray(base)\n\t\tconst draft = createES5Draft(isArray, base)\n\n\t\tconst state: ES5ObjectState | ES5ArrayState = {\n\t\t\ttype_: isArray ? ProxyType.ES5Array : (ProxyType.ES5Object as any),\n\t\t\tscope_: parent ? parent.scope_ : getCurrentScope(),\n\t\t\tmodified_: false,\n\t\t\tfinalized_: false,\n\t\t\tassigned_: {},\n\t\t\tparent_: parent,\n\t\t\t// base is the object we are drafting\n\t\t\tbase_: base,\n\t\t\t// draft is the draft object itself, that traps all reads and reads from either the base (if unmodified) or copy (if modified)\n\t\t\tdraft_: draft,\n\t\t\tcopy_: null,\n\t\t\trevoked_: false,\n\t\t\tisManual_: false\n\t\t}\n\n\t\tObject.defineProperty(draft, DRAFT_STATE, {\n\t\t\tvalue: state,\n\t\t\t// enumerable: false <- the default\n\t\t\twritable: true\n\t\t})\n\t\treturn draft\n\t}\n\n\t// property descriptors are recycled to make sure we don't create a get and set closure per property,\n\t// but share them all instead\n\tconst descriptors: {[prop: string]: PropertyDescriptor} = {}\n\n\tfunction proxyProperty(\n\t\tprop: string | number,\n\t\tenumerable: boolean\n\t): PropertyDescriptor {\n\t\tlet desc = descriptors[prop]\n\t\tif (desc) {\n\t\t\tdesc.enumerable = enumerable\n\t\t} else {\n\t\t\tdescriptors[prop] = desc = {\n\t\t\t\tconfigurable: true,\n\t\t\t\tenumerable,\n\t\t\t\tget(this: any) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\treturn objectTraps.get(state, prop)\n\t\t\t\t},\n\t\t\t\tset(this: any, value) {\n\t\t\t\t\tconst state = this[DRAFT_STATE]\n\t\t\t\t\tif (__DEV__) assertUnrevoked(state)\n\t\t\t\t\t// @ts-ignore\n\t\t\t\t\tobjectTraps.set(state, prop, value)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn desc\n\t}\n\n\t// This looks expensive, but only proxies are visited, and only objects without known changes are scanned.\n\tfunction markChangesSweep(drafts: Drafted[]) {\n\t\t// The natural order of drafts in the `scope` array is based on when they\n\t\t// were accessed. By processing drafts in reverse natural order, we have a\n\t\t// better chance of processing leaf nodes first. When a leaf node is known to\n\t\t// have changed, we can avoid any traversal of its ancestor nodes.\n\t\tfor (let i = drafts.length - 1; i >= 0; i--) {\n\t\t\tconst state: ES5State = drafts[i][DRAFT_STATE]\n\t\t\tif (!state.modified_) {\n\t\t\t\tswitch (state.type_) {\n\t\t\t\t\tcase ProxyType.ES5Array:\n\t\t\t\t\t\tif (hasArrayChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tcase ProxyType.ES5Object:\n\t\t\t\t\t\tif (hasObjectChanges(state)) markChanged(state)\n\t\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction markChangesRecursively(object: any) {\n\t\tif (!object || typeof object !== \"object\") return\n\t\tconst state: ES5State | undefined = object[DRAFT_STATE]\n\t\tif (!state) return\n\t\tconst {base_, draft_, assigned_, type_} = state\n\t\tif (type_ === ProxyType.ES5Object) {\n\t\t\t// Look for added keys.\n\t\t\t// probably there is a faster way to detect changes, as sweep + recurse seems to do some\n\t\t\t// unnecessary work.\n\t\t\t// also: probably we can store the information we detect here, to speed up tree finalization!\n\t\t\teach(draft_, key => {\n\t\t\t\tif ((key as any) === DRAFT_STATE) return\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif ((base_ as any)[key] === undefined && !has(base_, key)) {\n\t\t\t\t\tassigned_[key] = true\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t} else if (!assigned_[key]) {\n\t\t\t\t\t// Only untouched properties trigger recursion.\n\t\t\t\t\tmarkChangesRecursively(draft_[key])\n\t\t\t\t}\n\t\t\t})\n\t\t\t// Look for removed keys.\n\t\t\teach(base_, key => {\n\t\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\t\tif (draft_[key] === undefined && !has(draft_, key)) {\n\t\t\t\t\tassigned_[key] = false\n\t\t\t\t\tmarkChanged(state)\n\t\t\t\t}\n\t\t\t})\n\t\t} else if (type_ === ProxyType.ES5Array) {\n\t\t\tif (hasArrayChanges(state as ES5ArrayState)) {\n\t\t\t\tmarkChanged(state)\n\t\t\t\tassigned_.length = true\n\t\t\t}\n\n\t\t\tif (draft_.length < base_.length) {\n\t\t\t\tfor (let i = draft_.length; i < base_.length; i++) assigned_[i] = false\n\t\t\t} else {\n\t\t\t\tfor (let i = base_.length; i < draft_.length; i++) assigned_[i] = true\n\t\t\t}\n\n\t\t\t// Minimum count is enough, the other parts has been processed.\n\t\t\tconst min = Math.min(draft_.length, base_.length)\n\n\t\t\tfor (let i = 0; i < min; i++) {\n\t\t\t\t// Only untouched indices trigger recursion.\n\t\t\t\tif (!draft_.hasOwnProperty(i)) {\n\t\t\t\t\tassigned_[i] = true\n\t\t\t\t}\n\t\t\t\tif (assigned_[i] === undefined) markChangesRecursively(draft_[i])\n\t\t\t}\n\t\t}\n\t}\n\n\tfunction hasObjectChanges(state: ES5ObjectState) {\n\t\tconst {base_, draft_} = state\n\n\t\t// Search for added keys and changed keys. Start at the back, because\n\t\t// non-numeric keys are ordered by time of definition on the object.\n\t\tconst keys = ownKeys(draft_)\n\t\tfor (let i = keys.length - 1; i >= 0; i--) {\n\t\t\tconst key: any = keys[i]\n\t\t\tif (key === DRAFT_STATE) continue\n\t\t\tconst baseValue = base_[key]\n\t\t\t// The `undefined` check is a fast path for pre-existing keys.\n\t\t\tif (baseValue === undefined && !has(base_, key)) {\n\t\t\t\treturn true\n\t\t\t}\n\t\t\t// Once a base key is deleted, future changes go undetected, because its\n\t\t\t// descriptor is erased. This branch detects any missed changes.\n\t\t\telse {\n\t\t\t\tconst value = draft_[key]\n\t\t\t\tconst state: ImmerState = value && value[DRAFT_STATE]\n\t\t\t\tif (state ? state.base_ !== baseValue : !is(value, baseValue)) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\t// At this point, no keys were added or changed.\n\t\t// Compare key count to determine if keys were deleted.\n\t\tconst baseIsDraft = !!base_[DRAFT_STATE as any]\n\t\treturn keys.length !== ownKeys(base_).length + (baseIsDraft ? 0 : 1) // + 1 to correct for DRAFT_STATE\n\t}\n\n\tfunction hasArrayChanges(state: ES5ArrayState) {\n\t\tconst {draft_} = state\n\t\tif (draft_.length !== state.base_.length) return true\n\t\t// See #116\n\t\t// If we first shorten the length, our array interceptors will be removed.\n\t\t// If after that new items are added, result in the same original length,\n\t\t// those last items will have no intercepting property.\n\t\t// So if there is no own descriptor on the last position, we know that items were removed and added\n\t\t// N.B.: splice, unshift, etc only shift values around, but not prop descriptors, so we only have to check\n\t\t// the last one\n\t\t// last descriptor can be not a trap, if the array was extended\n\t\tconst descriptor = Object.getOwnPropertyDescriptor(\n\t\t\tdraft_,\n\t\t\tdraft_.length - 1\n\t\t)\n\t\t// descriptor can be null, but only for newly created sparse arrays, eg. new Array(10)\n\t\tif (descriptor && !descriptor.get) return true\n\t\t// if we miss a property, it has been deleted, so array probobaly changed\n\t\tfor (let i = 0; i < draft_.length; i++) {\n\t\t\tif (!draft_.hasOwnProperty(i)) return true\n\t\t}\n\t\t// For all other cases, we don't have to compare, as they would have been picked up by the index setters\n\t\treturn false\n\t}\n\n\tfunction hasChanges_(state: ES5State) {\n\t\treturn state.type_ === ProxyType.ES5Object\n\t\t\t? hasObjectChanges(state)\n\t\t\t: hasArrayChanges(state)\n\t}\n\n\tfunction assertUnrevoked(state: any /*ES5State | MapState | SetState*/) {\n\t\tif (state.revoked_) die(3, JSON.stringify(latest(state)))\n\t}\n\n\tloadPlugin(\"ES5\", {\n\t\tcreateES5Proxy_,\n\t\twillFinalizeES5_,\n\t\thasChanges_\n\t})\n}\n","import {\n\tIProduce,\n\tIProduceWithPatches,\n\tImmer,\n\tDraft,\n\tImmutable\n} from \"./internal\"\n\nexport {\n\tDraft,\n\tImmutable,\n\tPatch,\n\tPatchListener,\n\toriginal,\n\tcurrent,\n\tisDraft,\n\tisDraftable,\n\tNOTHING as nothing,\n\tDRAFTABLE as immerable,\n\tfreeze\n} from \"./internal\"\n\nconst immer = new Immer()\n\n/**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} producer - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\nexport const produce: IProduce = immer.produce\nexport default produce\n\n/**\n * Like `produce`, but `produceWithPatches` always returns a tuple\n * [nextState, patches, inversePatches] (instead of just the next state)\n */\nexport const produceWithPatches: IProduceWithPatches = immer.produceWithPatches.bind(\n\timmer\n)\n\n/**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * Always freeze by default, even in production mode\n */\nexport const setAutoFreeze = immer.setAutoFreeze.bind(immer)\n\n/**\n * Pass true to use the ES2015 `Proxy` class when creating drafts, which is\n * always faster than using ES5 proxies.\n *\n * By default, feature detection is used, so calling this is rarely necessary.\n */\nexport const setUseProxies = immer.setUseProxies.bind(immer)\n\n/**\n * Apply an array of Immer patches to the first argument.\n *\n * This function is a producer, which means copy-on-write is in effect.\n */\nexport const applyPatches = immer.applyPatches.bind(immer)\n\n/**\n * Create an Immer draft from the given base state, which may be a draft itself.\n * The draft can be modified until you finalize it with the `finishDraft` function.\n */\nexport const createDraft = immer.createDraft.bind(immer)\n\n/**\n * Finalize an Immer draft from a `createDraft` call, returning the base state\n * (if no changes were made) or a modified copy. The draft must *not* be\n * mutated afterwards.\n *\n * Pass a function as the 2nd argument to generate Immer patches based on the\n * changes that were made.\n */\nexport const finishDraft = immer.finishDraft.bind(immer)\n\n/**\n * This function is actually a no-op, but can be used to cast an immutable type\n * to an draft type and make TypeScript happy\n *\n * @param value\n */\nexport function castDraft(value: T): Draft {\n\treturn value as any\n}\n\n/**\n * This function is actually a no-op, but can be used to cast a mutable type\n * to an immutable type and make TypeScript happy\n * @param value\n */\nexport function castImmutable(value: T): Immutable {\n\treturn value as any\n}\n\nexport {Immer}\n\nexport {enableES5} from \"./plugins/es5\"\nexport {enablePatches} from \"./plugins/patches\"\nexport {enableMapSet} from \"./plugins/mapset\"\nexport {enableAllPlugins} from \"./plugins/all\"\n","// Should be no imports here!\n\n// Some things that should be evaluated before all else...\n\n// We only want to know if non-polyfilled symbols are available\nconst hasSymbol =\n\ttypeof Symbol !== \"undefined\" && typeof Symbol(\"x\") === \"symbol\"\nexport const hasMap = typeof Map !== \"undefined\"\nexport const hasSet = typeof Set !== \"undefined\"\nexport const hasProxies =\n\ttypeof Proxy !== \"undefined\" &&\n\ttypeof Proxy.revocable !== \"undefined\" &&\n\ttypeof Reflect !== \"undefined\"\n\n/**\n * The sentinel value returned by producers to replace the draft with undefined.\n */\nexport const NOTHING: Nothing = hasSymbol\n\t? Symbol.for(\"immer-nothing\")\n\t: ({[\"immer-nothing\"]: true} as any)\n\n/**\n * To let Immer treat your class instances as plain immutable objects\n * (albeit with a custom prototype), you must define either an instance property\n * or a static property on each of your custom classes.\n *\n * Otherwise, your class instance will never be drafted, which means it won't be\n * safe to mutate in a produce callback.\n */\nexport const DRAFTABLE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-draftable\")\n\t: (\"__$immer_draftable\" as any)\n\nexport const DRAFT_STATE: unique symbol = hasSymbol\n\t? Symbol.for(\"immer-state\")\n\t: (\"__$immer_state\" as any)\n\n// Even a polyfilled Symbol might provide Symbol.iterator\nexport const iteratorSymbol: typeof Symbol.iterator =\n\t(typeof Symbol != \"undefined\" && Symbol.iterator) || (\"@@iterator\" as any)\n\n/** Use a class type for `nothing` so its type is unique */\nexport class Nothing {\n\t// This lets us do `Exclude`\n\t// @ts-ignore\n\tprivate _!: unique symbol\n}\n","/** A function that accepts a potential \"extra argument\" value to be injected later,\r\n * and returns an instance of the thunk middleware that uses that value\r\n */\nfunction createThunkMiddleware(extraArgument) {\n // Standard Redux middleware definition pattern:\n // See: https://redux.js.org/tutorials/fundamentals/part-4-store#writing-custom-middleware\n var middleware = function middleware(_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n // The thunk middleware looks for any functions that were passed to `store.dispatch`.\n // If this \"action\" is really a function, call it and return the result.\n if (typeof action === 'function') {\n // Inject the store's `dispatch` and `getState` methods, as well as any \"extra arg\"\n return action(dispatch, getState, extraArgument);\n } // Otherwise, pass the action down the middleware chain as usual\n\n\n return next(action);\n };\n };\n };\n\n return middleware;\n}\n\nvar thunk = createThunkMiddleware(); // Attach the factory function so users can create a customized version\n// with whatever \"extra arg\" they want to inject into their thunks\n\nthunk.withExtraArgument = createThunkMiddleware;\nexport default thunk;","import type { Action, ActionCreator, StoreEnhancer } from 'redux'\r\nimport { compose } from 'redux'\r\n\r\n/**\r\n * @public\r\n */\r\nexport interface DevToolsEnhancerOptions {\r\n /**\r\n * the instance name to be showed on the monitor page. Default value is `document.title`.\r\n * If not specified and there's no document title, it will consist of `tabId` and `instanceId`.\r\n */\r\n name?: string\r\n /**\r\n * action creators functions to be available in the Dispatcher.\r\n */\r\n actionCreators?: ActionCreator[] | { [key: string]: ActionCreator }\r\n /**\r\n * if more than one action is dispatched in the indicated interval, all new actions will be collected and sent at once.\r\n * It is the joint between performance and speed. When set to `0`, all actions will be sent instantly.\r\n * Set it to a higher value when experiencing perf issues (also `maxAge` to a lower value).\r\n *\r\n * @default 500 ms.\r\n */\r\n latency?: number\r\n /**\r\n * (> 1) - maximum allowed actions to be stored in the history tree. The oldest actions are removed once maxAge is reached. It's critical for performance.\r\n *\r\n * @default 50\r\n */\r\n maxAge?: number\r\n /**\r\n * Customizes how actions and state are serialized and deserialized. Can be a boolean or object. If given a boolean, the behavior is the same as if you\r\n * were to pass an object and specify `options` as a boolean. Giving an object allows fine-grained customization using the `replacer` and `reviver`\r\n * functions.\r\n */\r\n serialize?:\r\n | boolean\r\n | {\r\n /**\r\n * - `undefined` - will use regular `JSON.stringify` to send data (it's the fast mode).\r\n * - `false` - will handle also circular references.\r\n * - `true` - will handle also date, regex, undefined, error objects, symbols, maps, sets and functions.\r\n * - object, which contains `date`, `regex`, `undefined`, `error`, `symbol`, `map`, `set` and `function` keys.\r\n * For each of them you can indicate if to include (by setting as `true`).\r\n * For `function` key you can also specify a custom function which handles serialization.\r\n * See [`jsan`](https://github.com/kolodny/jsan) for more details.\r\n */\r\n options?:\r\n | undefined\r\n | boolean\r\n | {\r\n date?: true\r\n regex?: true\r\n undefined?: true\r\n error?: true\r\n symbol?: true\r\n map?: true\r\n set?: true\r\n function?: true | ((fn: (...args: any[]) => any) => string)\r\n }\r\n /**\r\n * [JSON replacer function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify#The_replacer_parameter) used for both actions and states stringify.\r\n * In addition, you can specify a data type by adding a [`__serializedType__`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/helpers/index.js#L4)\r\n * key. So you can deserialize it back while importing or persisting data.\r\n * Moreover, it will also [show a nice preview showing the provided custom type](https://cloud.githubusercontent.com/assets/7957859/21814330/a17d556a-d761-11e6-85ef-159dd12f36c5.png):\r\n */\r\n replacer?: (key: string, value: unknown) => any\r\n /**\r\n * [JSON `reviver` function](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/parse#Using_the_reviver_parameter)\r\n * used for parsing the imported actions and states. See [`remotedev-serialize`](https://github.com/zalmoxisus/remotedev-serialize/blob/master/immutable/serialize.js#L8-L41)\r\n * as an example on how to serialize special data types and get them back.\r\n */\r\n reviver?: (key: string, value: unknown) => any\r\n /**\r\n * Automatically serialize/deserialize immutablejs via [remotedev-serialize](https://github.com/zalmoxisus/remotedev-serialize).\r\n * Just pass the Immutable library. It will support all ImmutableJS structures. You can even export them into a file and get them back.\r\n * The only exception is `Record` class, for which you should pass this in addition the references to your classes in `refs`.\r\n */\r\n immutable?: any\r\n /**\r\n * ImmutableJS `Record` classes used to make possible restore its instances back when importing, persisting...\r\n */\r\n refs?: any\r\n }\r\n /**\r\n * function which takes `action` object and id number as arguments, and should return `action` object back.\r\n */\r\n actionSanitizer?: (action: A, id: number) => A\r\n /**\r\n * function which takes `state` object and index as arguments, and should return `state` object back.\r\n */\r\n stateSanitizer?: (state: S, index: number) => S\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsWhitelist` specified, `actionsBlacklist` is ignored.\r\n * @deprecated Use actionsDenylist instead.\r\n */\r\n actionsBlacklist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsWhitelist` specified, `actionsBlacklist` is ignored.\r\n * @deprecated Use actionsAllowlist instead.\r\n */\r\n actionsWhitelist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\r\n */\r\n actionsDenylist?: string | string[]\r\n /**\r\n * *string or array of strings as regex* - actions types to be hidden / shown in the monitors (while passed to the reducers).\r\n * If `actionsAllowlist` specified, `actionsDenylist` is ignored.\r\n */\r\n actionsAllowlist?: string | string[]\r\n /**\r\n * called for every action before sending, takes `state` and `action` object, and returns `true` in case it allows sending the current data to the monitor.\r\n * Use it as a more advanced version of `actionsDenylist`/`actionsAllowlist` parameters.\r\n */\r\n predicate?: (state: S, action: A) => boolean\r\n /**\r\n * if specified as `false`, it will not record the changes till clicking on `Start recording` button.\r\n * Available only for Redux enhancer, for others use `autoPause`.\r\n *\r\n * @default true\r\n */\r\n shouldRecordChanges?: boolean\r\n /**\r\n * if specified, whenever clicking on `Pause recording` button and there are actions in the history log, will add this action type.\r\n * If not specified, will commit when paused. Available only for Redux enhancer.\r\n *\r\n * @default \"@@PAUSED\"\"\r\n */\r\n pauseActionType?: string\r\n /**\r\n * auto pauses when the extension’s window is not opened, and so has zero impact on your app when not in use.\r\n * Not available for Redux enhancer (as it already does it but storing the data to be sent).\r\n *\r\n * @default false\r\n */\r\n autoPause?: boolean\r\n /**\r\n * if specified as `true`, it will not allow any non-monitor actions to be dispatched till clicking on `Unlock changes` button.\r\n * Available only for Redux enhancer.\r\n *\r\n * @default false\r\n */\r\n shouldStartLocked?: boolean\r\n /**\r\n * if set to `false`, will not recompute the states on hot reloading (or on replacing the reducers). Available only for Redux enhancer.\r\n *\r\n * @default true\r\n */\r\n shouldHotReload?: boolean\r\n /**\r\n * if specified as `true`, whenever there's an exception in reducers, the monitors will show the error message, and next actions will not be dispatched.\r\n *\r\n * @default false\r\n */\r\n shouldCatchErrors?: boolean\r\n /**\r\n * If you want to restrict the extension, specify the features you allow.\r\n * If not specified, all of the features are enabled. When set as an object, only those included as `true` will be allowed.\r\n * Note that except `true`/`false`, `import` and `export` can be set as `custom` (which is by default for Redux enhancer), meaning that the importing/exporting occurs on the client side.\r\n * Otherwise, you'll get/set the data right from the monitor part.\r\n */\r\n features?: {\r\n /**\r\n * start/pause recording of dispatched actions\r\n */\r\n pause?: boolean\r\n /**\r\n * lock/unlock dispatching actions and side effects\r\n */\r\n lock?: boolean\r\n /**\r\n * persist states on page reloading\r\n */\r\n persist?: boolean\r\n /**\r\n * export history of actions in a file\r\n */\r\n export?: boolean | 'custom'\r\n /**\r\n * import history of actions from a file\r\n */\r\n import?: boolean | 'custom'\r\n /**\r\n * jump back and forth (time travelling)\r\n */\r\n jump?: boolean\r\n /**\r\n * skip (cancel) actions\r\n */\r\n skip?: boolean\r\n /**\r\n * drag and drop actions in the history list\r\n */\r\n reorder?: boolean\r\n /**\r\n * dispatch custom actions or action creators\r\n */\r\n dispatch?: boolean\r\n /**\r\n * generate tests for the selected actions\r\n */\r\n test?: boolean\r\n }\r\n /**\r\n * Set to true or a stacktrace-returning function to record call stack traces for dispatched actions.\r\n * Defaults to false.\r\n */\r\n trace?: boolean | ((action: A) => string)\r\n /**\r\n * The maximum number of stack trace entries to record per action. Defaults to 10.\r\n */\r\n traceLimit?: number\r\n}\r\n\r\ntype Compose = typeof compose\r\n\r\ninterface ComposeWithDevTools {\r\n (options: DevToolsEnhancerOptions): Compose\r\n (...funcs: StoreEnhancer[]): StoreEnhancer\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport const composeWithDevTools: ComposeWithDevTools =\r\n typeof window !== 'undefined' &&\r\n (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n ? (window as any).__REDUX_DEVTOOLS_EXTENSION_COMPOSE__\r\n : function () {\r\n if (arguments.length === 0) return undefined\r\n if (typeof arguments[0] === 'object') return compose\r\n return compose.apply(null, arguments as any as Function[])\r\n }\r\n\r\n/**\r\n * @public\r\n */\r\nexport const devToolsEnhancer: {\r\n (options: DevToolsEnhancerOptions): StoreEnhancer\r\n} =\r\n typeof window !== 'undefined' && (window as any).__REDUX_DEVTOOLS_EXTENSION__\r\n ? (window as any).__REDUX_DEVTOOLS_EXTENSION__\r\n : function () {\r\n return function (noop) {\r\n return noop\r\n }\r\n }\r\n","/**\r\n * Returns true if the passed value is \"plain\" object, i.e. an object whose\r\n * prototype is the root `Object.prototype`. This includes objects created\r\n * using object literals, but not for instance for class instances.\r\n *\r\n * @param {any} value The value to inspect.\r\n * @returns {boolean} True if the argument appears to be a plain object.\r\n *\r\n * @public\r\n */\r\nexport default function isPlainObject(value: unknown): value is object {\r\n if (typeof value !== 'object' || value === null) return false\r\n\r\n let proto = Object.getPrototypeOf(value)\r\n if (proto === null) return true\r\n\r\n let baseProto = proto\r\n while (Object.getPrototypeOf(baseProto) !== null) {\r\n baseProto = Object.getPrototypeOf(baseProto)\r\n }\r\n\r\n return proto === baseProto\r\n}\r\n","import createNextState, { isDraftable } from 'immer'\r\nimport type { Middleware } from 'redux'\r\n\r\nexport function getTimeMeasureUtils(maxDelay: number, fnName: string) {\r\n let elapsed = 0\r\n return {\r\n measureTime(fn: () => T): T {\r\n const started = Date.now()\r\n try {\r\n return fn()\r\n } finally {\r\n const finished = Date.now()\r\n elapsed += finished - started\r\n }\r\n },\r\n warnIfExceeded() {\r\n if (elapsed > maxDelay) {\r\n console.warn(`${fnName} took ${elapsed}ms, which is more than the warning threshold of ${maxDelay}ms. \r\nIf your state or actions are very large, you may want to disable the middleware as it might cause too much of a slowdown in development mode. See https://redux-toolkit.js.org/api/getDefaultMiddleware for instructions.\r\nIt is disabled in production builds, so you don't need to worry about that.`)\r\n }\r\n },\r\n }\r\n}\r\n\r\nexport function delay(ms: number) {\r\n return new Promise((resolve) => setTimeout(resolve, ms))\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport class MiddlewareArray<\r\n Middlewares extends Middleware[]\r\n> extends Array {\r\n constructor(...items: Middlewares)\r\n constructor(...args: any[]) {\r\n super(...args)\r\n Object.setPrototypeOf(this, MiddlewareArray.prototype)\r\n }\r\n\r\n static get [Symbol.species]() {\r\n return MiddlewareArray as any\r\n }\r\n\r\n concat>>(\r\n items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...Middlewares, ...AdditionalMiddlewares]>\r\n\r\n concat>>(\r\n ...items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...Middlewares, ...AdditionalMiddlewares]>\r\n concat(...arr: any[]) {\r\n return super.concat.apply(this, arr)\r\n }\r\n\r\n prepend>>(\r\n items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...AdditionalMiddlewares, ...Middlewares]>\r\n\r\n prepend>>(\r\n ...items: AdditionalMiddlewares\r\n ): MiddlewareArray<[...AdditionalMiddlewares, ...Middlewares]>\r\n\r\n prepend(...arr: any[]) {\r\n if (arr.length === 1 && Array.isArray(arr[0])) {\r\n return new MiddlewareArray(...arr[0].concat(this))\r\n }\r\n return new MiddlewareArray(...arr.concat(this))\r\n }\r\n}\r\n\r\nexport function freezeDraftable(val: T) {\r\n return isDraftable(val) ? createNextState(val, () => {}) : val\r\n}\r\n","import type { Middleware, AnyAction } from 'redux'\r\nimport type { ThunkMiddleware } from 'redux-thunk'\r\nimport thunkMiddleware from 'redux-thunk'\r\nimport type { ImmutableStateInvariantMiddlewareOptions } from './immutableStateInvariantMiddleware'\r\n/* PROD_START_REMOVE_UMD */\r\nimport { createImmutableStateInvariantMiddleware } from './immutableStateInvariantMiddleware'\r\n/* PROD_STOP_REMOVE_UMD */\r\n\r\nimport type { SerializableStateInvariantMiddlewareOptions } from './serializableStateInvariantMiddleware'\r\nimport { createSerializableStateInvariantMiddleware } from './serializableStateInvariantMiddleware'\r\nimport type { ExcludeFromTuple } from './tsHelpers'\r\nimport { MiddlewareArray } from './utils'\r\n\r\nfunction isBoolean(x: any): x is boolean {\r\n return typeof x === 'boolean'\r\n}\r\n\r\ninterface ThunkOptions {\r\n extraArgument: E\r\n}\r\n\r\ninterface GetDefaultMiddlewareOptions {\r\n thunk?: boolean | ThunkOptions\r\n immutableCheck?: boolean | ImmutableStateInvariantMiddlewareOptions\r\n serializableCheck?: boolean | SerializableStateInvariantMiddlewareOptions\r\n}\r\n\r\nexport type ThunkMiddlewareFor<\r\n S,\r\n O extends GetDefaultMiddlewareOptions = {}\r\n> = O extends {\r\n thunk: false\r\n}\r\n ? never\r\n : O extends { thunk: { extraArgument: infer E } }\r\n ? ThunkMiddleware\r\n : ThunkMiddleware\r\n\r\nexport type CurriedGetDefaultMiddleware = <\r\n O extends Partial = {\r\n thunk: true\r\n immutableCheck: true\r\n serializableCheck: true\r\n }\r\n>(\r\n options?: O\r\n) => MiddlewareArray], never>>\r\n\r\nexport function curryGetDefaultMiddleware<\r\n S = any\r\n>(): CurriedGetDefaultMiddleware {\r\n return function curriedGetDefaultMiddleware(options) {\r\n return getDefaultMiddleware(options)\r\n }\r\n}\r\n\r\n/**\r\n * Returns any array containing the default middleware installed by\r\n * `configureStore()`. Useful if you want to configure your store with a custom\r\n * `middleware` array but still keep the default set.\r\n *\r\n * @return The default middleware used by `configureStore()`.\r\n *\r\n * @public\r\n *\r\n * @deprecated Prefer to use the callback notation for the `middleware` option in `configureStore`\r\n * to access a pre-typed `getDefaultMiddleware` instead.\r\n */\r\nexport function getDefaultMiddleware<\r\n S = any,\r\n O extends Partial = {\r\n thunk: true\r\n immutableCheck: true\r\n serializableCheck: true\r\n }\r\n>(\r\n options: O = {} as O\r\n): MiddlewareArray], never>> {\r\n const {\r\n thunk = true,\r\n immutableCheck = true,\r\n serializableCheck = true,\r\n } = options\r\n\r\n let middlewareArray = new MiddlewareArray()\r\n\r\n if (thunk) {\r\n if (isBoolean(thunk)) {\r\n middlewareArray.push(thunkMiddleware)\r\n } else {\r\n middlewareArray.push(\r\n thunkMiddleware.withExtraArgument(thunk.extraArgument)\r\n )\r\n }\r\n }\r\n\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (immutableCheck) {\r\n /* PROD_START_REMOVE_UMD */\r\n let immutableOptions: ImmutableStateInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(immutableCheck)) {\r\n immutableOptions = immutableCheck\r\n }\r\n\r\n middlewareArray.unshift(\r\n createImmutableStateInvariantMiddleware(immutableOptions)\r\n )\r\n /* PROD_STOP_REMOVE_UMD */\r\n }\r\n\r\n if (serializableCheck) {\r\n let serializableOptions: SerializableStateInvariantMiddlewareOptions = {}\r\n\r\n if (!isBoolean(serializableCheck)) {\r\n serializableOptions = serializableCheck\r\n }\r\n\r\n middlewareArray.push(\r\n createSerializableStateInvariantMiddleware(serializableOptions)\r\n )\r\n }\r\n }\r\n\r\n return middlewareArray as any\r\n}\r\n","import type {\r\n Reducer,\r\n ReducersMapObject,\r\n Middleware,\r\n Action,\r\n AnyAction,\r\n StoreEnhancer,\r\n Store,\r\n Dispatch,\r\n PreloadedState,\r\n CombinedState,\r\n} from 'redux'\r\nimport { createStore, compose, applyMiddleware, combineReducers } from 'redux'\r\nimport type { DevToolsEnhancerOptions as DevToolsOptions } from './devtoolsExtension'\r\nimport { composeWithDevTools } from './devtoolsExtension'\r\n\r\nimport isPlainObject from './isPlainObject'\r\nimport type {\r\n ThunkMiddlewareFor,\r\n CurriedGetDefaultMiddleware,\r\n} from './getDefaultMiddleware'\r\nimport { curryGetDefaultMiddleware } from './getDefaultMiddleware'\r\nimport type {\r\n NoInfer,\r\n ExtractDispatchExtensions,\r\n ExtractStoreExtensions,\r\n} from './tsHelpers'\r\n\r\nconst IS_PRODUCTION = process.env.NODE_ENV === 'production'\r\n\r\n/**\r\n * Callback function type, to be used in `ConfigureStoreOptions.enhancers`\r\n *\r\n * @public\r\n */\r\nexport type ConfigureEnhancersCallback = (\r\n defaultEnhancers: readonly StoreEnhancer[]\r\n) => [...E]\r\n\r\n/**\r\n * Options for `configureStore()`.\r\n *\r\n * @public\r\n */\r\nexport interface ConfigureStoreOptions<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = Middlewares,\r\n E extends Enhancers = Enhancers\r\n> {\r\n /**\r\n * A single reducer function that will be used as the root reducer, or an\r\n * object of slice reducers that will be passed to `combineReducers()`.\r\n */\r\n reducer: Reducer | ReducersMapObject\r\n\r\n /**\r\n * An array of Redux middleware to install. If not supplied, defaults to\r\n * the set of middleware returned by `getDefaultMiddleware()`.\r\n *\r\n * @example `middleware: (gDM) => gDM().concat(logger, apiMiddleware, yourCustomMiddleware)`\r\n * @see https://redux-toolkit.js.org/api/getDefaultMiddleware#intended-usage\r\n */\r\n middleware?: ((getDefaultMiddleware: CurriedGetDefaultMiddleware) => M) | M\r\n\r\n /**\r\n * Whether to enable Redux DevTools integration. Defaults to `true`.\r\n *\r\n * Additional configuration can be done by passing Redux DevTools options\r\n */\r\n devTools?: boolean | DevToolsOptions\r\n\r\n /**\r\n * The initial state, same as Redux's createStore.\r\n * You may optionally specify it to hydrate the state\r\n * from the server in universal apps, or to restore a previously serialized\r\n * user session. If you use `combineReducers()` to produce the root reducer\r\n * function (either directly or indirectly by passing an object as `reducer`),\r\n * this must be an object with the same shape as the reducer map keys.\r\n */\r\n /*\r\n Not 100% correct but the best approximation we can get:\r\n - if S is a `CombinedState` applying a second `CombinedState` on it does not change anything.\r\n - if it is not, there could be two cases:\r\n - `ReducersMapObject` is being passed in. In this case, we will call `combineReducers` on it and `CombinedState` is correct\r\n - `Reducer` is being passed in. In this case, actually `CombinedState` is wrong and `S` would be correct.\r\n As we cannot distinguish between those two cases without adding another generic parameter,\r\n we just make the pragmatic assumption that the latter almost never happens.\r\n */\r\n preloadedState?: PreloadedState>>\r\n\r\n /**\r\n * The store enhancers to apply. See Redux's `createStore()`.\r\n * All enhancers will be included before the DevTools Extension enhancer.\r\n * If you need to customize the order of enhancers, supply a callback\r\n * function that will receive the original array (ie, `[applyMiddleware]`),\r\n * and should return a new array (such as `[applyMiddleware, offline]`).\r\n * If you only need to add middleware, you can use the `middleware` parameter instead.\r\n */\r\n enhancers?: E | ConfigureEnhancersCallback\r\n}\r\n\r\ntype Middlewares = ReadonlyArray>\r\n\r\ntype Enhancers = ReadonlyArray\r\n\r\nexport interface ToolkitStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = Middlewares,\r\n> extends Store {\r\n /**\r\n * The `dispatch` method of your store, enhanced by all its middlewares.\r\n *\r\n * @inheritdoc\r\n */\r\n dispatch: ExtractDispatchExtensions & Dispatch\r\n}\r\n\r\n/**\r\n * A Redux store returned by `configureStore()`. Supports dispatching\r\n * side-effectful _thunks_ in addition to plain actions.\r\n *\r\n * @public\r\n */\r\nexport type EnhancedStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = Middlewares,\r\n E extends Enhancers = Enhancers\r\n> = ToolkitStore & ExtractStoreExtensions\r\n\r\n/**\r\n * A friendly abstraction over the standard Redux `createStore()` function.\r\n *\r\n * @param options The store configuration.\r\n * @returns A configured Redux store.\r\n *\r\n * @public\r\n */\r\nexport function configureStore<\r\n S = any,\r\n A extends Action = AnyAction,\r\n M extends Middlewares = [ThunkMiddlewareFor],\r\n E extends Enhancers = [StoreEnhancer]\r\n>(options: ConfigureStoreOptions): EnhancedStore {\r\n const curriedGetDefaultMiddleware = curryGetDefaultMiddleware()\r\n\r\n const {\r\n reducer = undefined,\r\n middleware = curriedGetDefaultMiddleware(),\r\n devTools = true,\r\n preloadedState = undefined,\r\n enhancers = undefined,\r\n } = options || {}\r\n\r\n let rootReducer: Reducer\r\n\r\n if (typeof reducer === 'function') {\r\n rootReducer = reducer\r\n } else if (isPlainObject(reducer)) {\r\n rootReducer = combineReducers(reducer) as unknown as Reducer\r\n } else {\r\n throw new Error(\r\n '\"reducer\" is a required argument, and must be a function or an object of functions that can be passed to combineReducers'\r\n )\r\n }\r\n\r\n let finalMiddleware = middleware\r\n if (typeof finalMiddleware === 'function') {\r\n finalMiddleware = finalMiddleware(curriedGetDefaultMiddleware)\r\n\r\n if (!IS_PRODUCTION && !Array.isArray(finalMiddleware)) {\r\n throw new Error(\r\n 'when using a middleware builder function, an array of middleware must be returned'\r\n )\r\n }\r\n }\r\n if (\r\n !IS_PRODUCTION &&\r\n finalMiddleware.some((item: any) => typeof item !== 'function')\r\n ) {\r\n throw new Error(\r\n 'each middleware provided to configureStore must be a function'\r\n )\r\n }\r\n\r\n const middlewareEnhancer: StoreEnhancer = applyMiddleware(...finalMiddleware)\r\n\r\n let finalCompose = compose\r\n\r\n if (devTools) {\r\n finalCompose = composeWithDevTools({\r\n // Enable capture of stack traces for dispatched Redux actions\r\n trace: !IS_PRODUCTION,\r\n ...(typeof devTools === 'object' && devTools),\r\n })\r\n }\r\n\r\n let storeEnhancers: Enhancers = [middlewareEnhancer]\r\n\r\n if (Array.isArray(enhancers)) {\r\n storeEnhancers = [middlewareEnhancer, ...enhancers]\r\n } else if (typeof enhancers === 'function') {\r\n storeEnhancers = enhancers(storeEnhancers)\r\n }\r\n\r\n const composedEnhancer = finalCompose(...storeEnhancers) as StoreEnhancer\r\n\r\n return createStore(rootReducer, preloadedState, composedEnhancer)\r\n}\r\n","import type { Action } from 'redux'\r\nimport type {\r\n IsUnknownOrNonInferrable,\r\n IfMaybeUndefined,\r\n IfVoid,\r\n IsAny,\r\n} from './tsHelpers'\r\nimport isPlainObject from './isPlainObject'\r\n\r\n/**\r\n * An action with a string type and an associated payload. This is the\r\n * type of action returned by `createAction()` action creators.\r\n *\r\n * @template P The type of the action's payload.\r\n * @template T the type used for the action type.\r\n * @template M The type of the action's meta (optional)\r\n * @template E The type of the action's error (optional)\r\n *\r\n * @public\r\n */\r\nexport type PayloadAction<\r\n P = void,\r\n T extends string = string,\r\n M = never,\r\n E = never\r\n> = {\r\n payload: P\r\n type: T\r\n} & ([M] extends [never]\r\n ? {}\r\n : {\r\n meta: M\r\n }) &\r\n ([E] extends [never]\r\n ? {}\r\n : {\r\n error: E\r\n })\r\n\r\n/**\r\n * A \"prepare\" method to be used as the second parameter of `createAction`.\r\n * Takes any number of arguments and returns a Flux Standard Action without\r\n * type (will be added later) that *must* contain a payload (might be undefined).\r\n *\r\n * @public\r\n */\r\nexport type PrepareAction

=\r\n | ((...args: any[]) => { payload: P })\r\n | ((...args: any[]) => { payload: P; meta: any })\r\n | ((...args: any[]) => { payload: P; error: any })\r\n | ((...args: any[]) => { payload: P; meta: any; error: any })\r\n\r\n/**\r\n * Internal version of `ActionCreatorWithPreparedPayload`. Not to be used externally.\r\n *\r\n * @internal\r\n */\r\nexport type _ActionCreatorWithPreparedPayload<\r\n PA extends PrepareAction | void,\r\n T extends string = string\r\n> = PA extends PrepareAction\r\n ? ActionCreatorWithPreparedPayload<\r\n Parameters,\r\n P,\r\n T,\r\n ReturnType extends {\r\n error: infer E\r\n }\r\n ? E\r\n : never,\r\n ReturnType extends {\r\n meta: infer M\r\n }\r\n ? M\r\n : never\r\n >\r\n : void\r\n\r\n/**\r\n * Basic type for all action creators.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n */\r\nexport interface BaseActionCreator {\r\n type: T\r\n match: (action: Action) => action is PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator that takes multiple arguments that are passed\r\n * to a `PrepareAction` method to create the final Action.\r\n * @typeParam Args arguments for the action creator function\r\n * @typeParam P `payload` type\r\n * @typeParam T `type` name\r\n * @typeParam E optional `error` type\r\n * @typeParam M optional `meta` type\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithPreparedPayload<\r\n Args extends unknown[],\r\n P,\r\n T extends string = string,\r\n E = never,\r\n M = never\r\n> extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with `Args` will return\r\n * an Action with a payload of type `P` and (depending on the `PrepareAction`\r\n * method used) a `meta`- and `error` property of types `M` and `E` respectively.\r\n */\r\n (...args: Args): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that takes an optional payload of type `P`.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithOptionalPayload\r\n extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload of `P`.\r\n * Calling it without an argument will return a PayloadAction with a payload of `undefined`.\r\n */\r\n (payload?: P): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that takes no payload.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithoutPayload\r\n extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} will\r\n * return a {@link PayloadAction} of type `T` with a payload of `undefined`\r\n */\r\n (noArgument: void): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` that requires a payload of type P.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithPayload\r\n extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload of `P`\r\n */\r\n (payload: P): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator of type `T` whose `payload` type could not be inferred. Accepts everything as `payload`.\r\n *\r\n * @inheritdoc {redux#ActionCreator}\r\n *\r\n * @public\r\n */\r\nexport interface ActionCreatorWithNonInferrablePayload<\r\n T extends string = string\r\n> extends BaseActionCreator {\r\n /**\r\n * Calling this {@link redux#ActionCreator} with an argument will\r\n * return a {@link PayloadAction} of type `T` with a payload\r\n * of exactly the type of the argument.\r\n */\r\n (payload: PT): PayloadAction\r\n}\r\n\r\n/**\r\n * An action creator that produces actions with a `payload` attribute.\r\n *\r\n * @typeParam P the `payload` type\r\n * @typeParam T the `type` of the resulting action\r\n * @typeParam PA if the resulting action is preprocessed by a `prepare` method, the signature of said method.\r\n *\r\n * @public\r\n */\r\nexport type PayloadActionCreator<\r\n P = void,\r\n T extends string = string,\r\n PA extends PrepareAction

| void = void\r\n> = IfPrepareActionMethodProvided<\r\n PA,\r\n _ActionCreatorWithPreparedPayload,\r\n // else\r\n IsAny<\r\n P,\r\n ActionCreatorWithPayload,\r\n IsUnknownOrNonInferrable<\r\n P,\r\n ActionCreatorWithNonInferrablePayload,\r\n // else\r\n IfVoid<\r\n P,\r\n ActionCreatorWithoutPayload,\r\n // else\r\n IfMaybeUndefined<\r\n P,\r\n ActionCreatorWithOptionalPayload,\r\n // else\r\n ActionCreatorWithPayload\r\n >\r\n >\r\n >\r\n >\r\n>\r\n\r\n/**\r\n * A utility function to create an action creator for the given action type\r\n * string. The action creator accepts a single argument, which will be included\r\n * in the action object as a field called payload. The action creator function\r\n * will also have its toString() overriden so that it returns the action type,\r\n * allowing it to be used in reducer logic that is looking for that action type.\r\n *\r\n * @param type The action type to use for created actions.\r\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\r\n * If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\r\n *\r\n * @public\r\n */\r\nexport function createAction

= PayloadActionCreator

\r\n\r\n/**\r\n * The return value of `createSlice`\r\n *\r\n * @public\r\n */\r\nexport interface Slice<\r\n State = any,\r\n CaseReducers extends SliceCaseReducers = SliceCaseReducers,\r\n Name extends string = string\r\n> {\r\n /**\r\n * The slice name.\r\n */\r\n name: Name\r\n\r\n /**\r\n * The slice's reducer.\r\n */\r\n reducer: Reducer\r\n\r\n /**\r\n * Action creators for the types of actions that are handled by the slice\r\n * reducer.\r\n */\r\n actions: CaseReducerActions\r\n\r\n /**\r\n * The individual case reducer functions that were passed in the `reducers` parameter.\r\n * This enables reuse and testing if they were defined inline when calling `createSlice`.\r\n */\r\n caseReducers: SliceDefinedCaseReducers\r\n\r\n /**\r\n * Provides access to the initial state value given to the slice.\r\n * If a lazy state initializer was provided, it will be called and a fresh value returned.\r\n */\r\n getInitialState: () => State\r\n}\r\n\r\n/**\r\n * Options for `createSlice()`.\r\n *\r\n * @public\r\n */\r\nexport interface CreateSliceOptions<\r\n State = any,\r\n CR extends SliceCaseReducers = SliceCaseReducers,\r\n Name extends string = string\r\n> {\r\n /**\r\n * The slice's name. Used to namespace the generated action types.\r\n */\r\n name: Name\r\n\r\n /**\r\n * The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n */\r\n initialState: State | (() => State)\r\n\r\n /**\r\n * A mapping from action types to action-type-specific *case reducer*\r\n * functions. For every action type, a matching action creator will be\r\n * generated using `createAction()`.\r\n */\r\n reducers: ValidateSliceCaseReducers\r\n\r\n /**\r\n * A callback that receives a *builder* object to define\r\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\r\n * \r\n * Alternatively, a mapping from action types to action-type-specific *case reducer*\r\n * functions. These reducers should have existing action types used\r\n * as the keys, and action creators will _not_ be generated.\r\n * \r\n * @example\r\n```ts\r\nimport { createAction, createSlice, Action, AnyAction } from '@reduxjs/toolkit'\r\nconst incrementBy = createAction('incrementBy')\r\nconst decrement = createAction('decrement')\r\n\r\ninterface RejectedAction extends Action {\r\n error: Error\r\n}\r\n\r\nfunction isRejectedAction(action: AnyAction): action is RejectedAction {\r\n return action.type.endsWith('rejected')\r\n}\r\n\r\ncreateSlice({\r\n name: 'counter',\r\n initialState: 0,\r\n reducers: {},\r\n extraReducers: builder => {\r\n builder\r\n .addCase(incrementBy, (state, action) => {\r\n // action is inferred correctly here if using TS\r\n })\r\n // You can chain calls, or have separate `builder.addCase()` lines each time\r\n .addCase(decrement, (state, action) => {})\r\n // You can match a range of action types\r\n .addMatcher(\r\n isRejectedAction,\r\n // `action` will be inferred as a RejectedAction due to isRejectedAction being defined as a type guard\r\n (state, action) => {}\r\n )\r\n // and provide a default case if no other handlers matched\r\n .addDefaultCase((state, action) => {})\r\n }\r\n})\r\n```\r\n */\r\n extraReducers?:\r\n | CaseReducers, any>\r\n | ((builder: ActionReducerMapBuilder>) => void)\r\n}\r\n\r\n/**\r\n * A CaseReducer with a `prepare` method.\r\n *\r\n * @public\r\n */\r\nexport type CaseReducerWithPrepare = {\r\n reducer: CaseReducer\r\n prepare: PrepareAction\r\n}\r\n\r\n/**\r\n * The type describing a slice's `reducers` option.\r\n *\r\n * @public\r\n */\r\nexport type SliceCaseReducers = {\r\n [K: string]:\r\n | CaseReducer>\r\n | CaseReducerWithPrepare>\r\n}\r\n\r\ntype SliceActionType<\r\n SliceName extends string,\r\n ActionName extends keyof any\r\n> = ActionName extends string | number ? `${SliceName}/${ActionName}` : string\r\n\r\n/**\r\n * Derives the slice's `actions` property from the `reducers` options\r\n *\r\n * @public\r\n */\r\nexport type CaseReducerActions<\r\n CaseReducers extends SliceCaseReducers,\r\n SliceName extends string\r\n> = {\r\n [Type in keyof CaseReducers]: CaseReducers[Type] extends { prepare: any }\r\n ? ActionCreatorForCaseReducerWithPrepare<\r\n CaseReducers[Type],\r\n SliceActionType\r\n >\r\n : ActionCreatorForCaseReducer<\r\n CaseReducers[Type],\r\n SliceActionType\r\n >\r\n}\r\n\r\n/**\r\n * Get a `PayloadActionCreator` type for a passed `CaseReducerWithPrepare`\r\n *\r\n * @internal\r\n */\r\ntype ActionCreatorForCaseReducerWithPrepare<\r\n CR extends { prepare: any },\r\n Type extends string\r\n> = _ActionCreatorWithPreparedPayload\r\n\r\n/**\r\n * Get a `PayloadActionCreator` type for a passed `CaseReducer`\r\n *\r\n * @internal\r\n */\r\ntype ActionCreatorForCaseReducer = CR extends (\r\n state: any,\r\n action: infer Action\r\n) => any\r\n ? Action extends { payload: infer P }\r\n ? PayloadActionCreator\r\n : ActionCreatorWithoutPayload\r\n : ActionCreatorWithoutPayload\r\n\r\n/**\r\n * Extracts the CaseReducers out of a `reducers` object, even if they are\r\n * tested into a `CaseReducerWithPrepare`.\r\n *\r\n * @internal\r\n */\r\ntype SliceDefinedCaseReducers> = {\r\n [Type in keyof CaseReducers]: CaseReducers[Type] extends {\r\n reducer: infer Reducer\r\n }\r\n ? Reducer\r\n : CaseReducers[Type]\r\n}\r\n\r\n/**\r\n * Used on a SliceCaseReducers object.\r\n * Ensures that if a CaseReducer is a `CaseReducerWithPrepare`, that\r\n * the `reducer` and the `prepare` function use the same type of `payload`.\r\n *\r\n * Might do additional such checks in the future.\r\n *\r\n * This type is only ever useful if you want to write your own wrapper around\r\n * `createSlice`. Please don't use it otherwise!\r\n *\r\n * @public\r\n */\r\nexport type ValidateSliceCaseReducers<\r\n S,\r\n ACR extends SliceCaseReducers\r\n> = ACR &\r\n {\r\n [T in keyof ACR]: ACR[T] extends {\r\n reducer(s: S, action?: infer A): any\r\n }\r\n ? {\r\n prepare(...a: never[]): Omit\r\n }\r\n : {}\r\n }\r\n\r\nfunction getType(slice: string, actionKey: string): string {\r\n return `${slice}/${actionKey}`\r\n}\r\n\r\n/**\r\n * A function that accepts an initial state, an object full of reducer\r\n * functions, and a \"slice name\", and automatically generates\r\n * action creators and action types that correspond to the\r\n * reducers and state.\r\n *\r\n * The `reducer` argument is passed to `createReducer()`.\r\n *\r\n * @public\r\n */\r\nexport function createSlice<\r\n State,\r\n CaseReducers extends SliceCaseReducers,\r\n Name extends string = string\r\n>(\r\n options: CreateSliceOptions\r\n): Slice {\r\n const { name } = options\r\n if (!name) {\r\n throw new Error('`name` is a required option for createSlice')\r\n }\r\n\r\n if (\r\n typeof process !== 'undefined' &&\r\n process.env.NODE_ENV === 'development'\r\n ) {\r\n if (options.initialState === undefined) {\r\n console.error(\r\n 'You must provide an `initialState` value that is not `undefined`. You may have misspelled `initialState`'\r\n )\r\n }\r\n }\r\n\r\n const initialState =\r\n typeof options.initialState == 'function'\r\n ? options.initialState\r\n : freezeDraftable(options.initialState)\r\n\r\n const reducers = options.reducers || {}\r\n\r\n const reducerNames = Object.keys(reducers)\r\n\r\n const sliceCaseReducersByName: Record = {}\r\n const sliceCaseReducersByType: Record = {}\r\n const actionCreators: Record = {}\r\n\r\n reducerNames.forEach((reducerName) => {\r\n const maybeReducerWithPrepare = reducers[reducerName]\r\n const type = getType(name, reducerName)\r\n\r\n let caseReducer: CaseReducer\r\n let prepareCallback: PrepareAction | undefined\r\n\r\n if ('reducer' in maybeReducerWithPrepare) {\r\n caseReducer = maybeReducerWithPrepare.reducer\r\n prepareCallback = maybeReducerWithPrepare.prepare\r\n } else {\r\n caseReducer = maybeReducerWithPrepare\r\n }\r\n\r\n sliceCaseReducersByName[reducerName] = caseReducer\r\n sliceCaseReducersByType[type] = caseReducer\r\n actionCreators[reducerName] = prepareCallback\r\n ? createAction(type, prepareCallback)\r\n : createAction(type)\r\n })\r\n\r\n function buildReducer() {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (typeof options.extraReducers === 'object') {\r\n if (!hasWarnedAboutObjectNotation) {\r\n hasWarnedAboutObjectNotation = true\r\n console.warn(\r\n \"The object notation for `createSlice.extraReducers` is deprecated, and will be removed in RTK 2.0. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createSlice\"\r\n )\r\n }\r\n }\r\n }\r\n const [\r\n extraReducers = {},\r\n actionMatchers = [],\r\n defaultCaseReducer = undefined,\r\n ] =\r\n typeof options.extraReducers === 'function'\r\n ? executeReducerBuilderCallback(options.extraReducers)\r\n : [options.extraReducers]\r\n\r\n const finalCaseReducers = { ...extraReducers, ...sliceCaseReducersByType }\r\n\r\n return createReducer(initialState, (builder) => {\r\n for (let key in finalCaseReducers) {\r\n builder.addCase(key, finalCaseReducers[key] as CaseReducer)\r\n }\r\n for (let m of actionMatchers) {\r\n builder.addMatcher(m.matcher, m.reducer)\r\n }\r\n if (defaultCaseReducer) {\r\n builder.addDefaultCase(defaultCaseReducer)\r\n }\r\n })\r\n }\r\n\r\n let _reducer: ReducerWithInitialState\r\n\r\n return {\r\n name,\r\n reducer(state, action) {\r\n if (!_reducer) _reducer = buildReducer()\r\n\r\n return _reducer(state, action)\r\n },\r\n actions: actionCreators as any,\r\n caseReducers: sliceCaseReducersByName as any,\r\n getInitialState() {\r\n if (!_reducer) _reducer = buildReducer()\r\n\r\n return _reducer.getInitialState()\r\n },\r\n }\r\n}\r\n","import type { Draft } from 'immer'\r\nimport createNextState, { isDraft, isDraftable } from 'immer'\r\nimport type { AnyAction, Action, Reducer } from 'redux'\r\nimport type { ActionReducerMapBuilder } from './mapBuilders'\r\nimport { executeReducerBuilderCallback } from './mapBuilders'\r\nimport type { NoInfer } from './tsHelpers'\r\nimport { freezeDraftable } from './utils'\r\n\r\n/**\r\n * Defines a mapping from action types to corresponding action object shapes.\r\n *\r\n * @deprecated This should not be used manually - it is only used for internal\r\n * inference purposes and should not have any further value.\r\n * It might be removed in the future.\r\n * @public\r\n */\r\nexport type Actions = Record\r\n\r\n/**\r\n * @deprecated use `TypeGuard` instead\r\n */\r\nexport interface ActionMatcher {\r\n (action: AnyAction): action is A\r\n}\r\n\r\nexport type ActionMatcherDescription = {\r\n matcher: ActionMatcher\r\n reducer: CaseReducer>\r\n}\r\n\r\nexport type ReadonlyActionMatcherDescriptionCollection = ReadonlyArray<\r\n ActionMatcherDescription\r\n>\r\n\r\nexport type ActionMatcherDescriptionCollection = Array<\r\n ActionMatcherDescription\r\n>\r\n\r\n/**\r\n * A *case reducer* is a reducer function for a specific action type. Case\r\n * reducers can be composed to full reducers using `createReducer()`.\r\n *\r\n * Unlike a normal Redux reducer, a case reducer is never called with an\r\n * `undefined` state to determine the initial state. Instead, the initial\r\n * state is explicitly specified as an argument to `createReducer()`.\r\n *\r\n * In addition, a case reducer can choose to mutate the passed-in `state`\r\n * value directly instead of returning a new state. This does not actually\r\n * cause the store state to be mutated directly; instead, thanks to\r\n * [immer](https://github.com/mweststrate/immer), the mutations are\r\n * translated to copy operations that result in a new state.\r\n *\r\n * @public\r\n */\r\nexport type CaseReducer = (\r\n state: Draft,\r\n action: A\r\n) => NoInfer | void | Draft>\r\n\r\n/**\r\n * A mapping from action types to case reducers for `createReducer()`.\r\n *\r\n * @deprecated This should not be used manually - it is only used\r\n * for internal inference purposes and using it manually\r\n * would lead to type erasure.\r\n * It might be removed in the future.\r\n * @public\r\n */\r\nexport type CaseReducers = {\r\n [T in keyof AS]: AS[T] extends Action ? CaseReducer : void\r\n}\r\n\r\nexport type NotFunction = T extends Function ? never : T\r\n\r\nfunction isStateFunction(x: unknown): x is () => S {\r\n return typeof x === 'function'\r\n}\r\n\r\nexport type ReducerWithInitialState> = Reducer & {\r\n getInitialState: () => S\r\n}\r\n\r\nlet hasWarnedAboutObjectNotation = false\r\n\r\n/**\r\n * A utility function that allows defining a reducer as a mapping from action\r\n * type to *case reducer* functions that handle these action types. The\r\n * reducer's initial state is passed as the first argument.\r\n *\r\n * @remarks\r\n * The body of every case reducer is implicitly wrapped with a call to\r\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\r\n * This means that rather than returning a new state object, you can also\r\n * mutate the passed-in state object directly; these mutations will then be\r\n * automatically and efficiently translated into copies, giving you both\r\n * convenience and immutability.\r\n *\r\n * @overloadSummary\r\n * This overload accepts a callback function that receives a `builder` object as its argument.\r\n * That builder provides `addCase`, `addMatcher` and `addDefaultCase` functions that may be\r\n * called to define what actions this reducer will handle.\r\n *\r\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n * @param builderCallback - `(builder: Builder) => void` A callback that receives a *builder* object to define\r\n * case reducers via calls to `builder.addCase(actionCreatorOrType, reducer)`.\r\n * @example\r\n```ts\r\nimport {\r\n createAction,\r\n createReducer,\r\n AnyAction,\r\n PayloadAction,\r\n} from \"@reduxjs/toolkit\";\r\n\r\nconst increment = createAction(\"increment\");\r\nconst decrement = createAction(\"decrement\");\r\n\r\nfunction isActionWithNumberPayload(\r\n action: AnyAction\r\n): action is PayloadAction {\r\n return typeof action.payload === \"number\";\r\n}\r\n\r\nconst reducer = createReducer(\r\n {\r\n counter: 0,\r\n sumOfNumberPayloads: 0,\r\n unhandledActions: 0,\r\n },\r\n (builder) => {\r\n builder\r\n .addCase(increment, (state, action) => {\r\n // action is inferred correctly here\r\n state.counter += action.payload;\r\n })\r\n // You can chain calls, or have separate `builder.addCase()` lines each time\r\n .addCase(decrement, (state, action) => {\r\n state.counter -= action.payload;\r\n })\r\n // You can apply a \"matcher function\" to incoming actions\r\n .addMatcher(isActionWithNumberPayload, (state, action) => {})\r\n // and provide a default case if no other handlers matched\r\n .addDefaultCase((state, action) => {});\r\n }\r\n);\r\n```\r\n * @public\r\n */\r\nexport function createReducer>(\r\n initialState: S | (() => S),\r\n builderCallback: (builder: ActionReducerMapBuilder) => void\r\n): ReducerWithInitialState\r\n\r\n/**\r\n * A utility function that allows defining a reducer as a mapping from action\r\n * type to *case reducer* functions that handle these action types. The\r\n * reducer's initial state is passed as the first argument.\r\n *\r\n * The body of every case reducer is implicitly wrapped with a call to\r\n * `produce()` from the [immer](https://github.com/mweststrate/immer) library.\r\n * This means that rather than returning a new state object, you can also\r\n * mutate the passed-in state object directly; these mutations will then be\r\n * automatically and efficiently translated into copies, giving you both\r\n * convenience and immutability.\r\n * \r\n * @overloadSummary\r\n * This overload accepts an object where the keys are string action types, and the values\r\n * are case reducer functions to handle those action types.\r\n *\r\n * @param initialState - `State | (() => State)`: The initial state that should be used when the reducer is called the first time. This may also be a \"lazy initializer\" function, which should return an initial state value when called. This will be used whenever the reducer is called with `undefined` as its state value, and is primarily useful for cases like reading initial state from `localStorage`.\r\n * @param actionsMap - An object mapping from action types to _case reducers_, each of which handles one specific action type.\r\n * @param actionMatchers - An array of matcher definitions in the form `{matcher, reducer}`.\r\n * All matching reducers will be executed in order, independently if a case reducer matched or not.\r\n * @param defaultCaseReducer - A \"default case\" reducer that is executed if no case reducer and no matcher\r\n * reducer was executed for this action.\r\n *\r\n * @example\r\n```js\r\nconst counterReducer = createReducer(0, {\r\n increment: (state, action) => state + action.payload,\r\n decrement: (state, action) => state - action.payload\r\n})\r\n\r\n// Alternately, use a \"lazy initializer\" to provide the initial state\r\n// (works with either form of createReducer)\r\nconst initialState = () => 0\r\nconst counterReducer = createReducer(initialState, {\r\n increment: (state, action) => state + action.payload,\r\n decrement: (state, action) => state - action.payload\r\n})\r\n```\r\n \r\n * Action creators that were generated using [`createAction`](./createAction) may be used directly as the keys here, using computed property syntax:\r\n\r\n```js\r\nconst increment = createAction('increment')\r\nconst decrement = createAction('decrement')\r\n\r\nconst counterReducer = createReducer(0, {\r\n [increment]: (state, action) => state + action.payload,\r\n [decrement.type]: (state, action) => state - action.payload\r\n})\r\n```\r\n * @public\r\n */\r\nexport function createReducer<\r\n S extends NotFunction,\r\n CR extends CaseReducers = CaseReducers\r\n>(\r\n initialState: S | (() => S),\r\n actionsMap: CR,\r\n actionMatchers?: ActionMatcherDescriptionCollection,\r\n defaultCaseReducer?: CaseReducer\r\n): ReducerWithInitialState\r\n\r\nexport function createReducer>(\r\n initialState: S | (() => S),\r\n mapOrBuilderCallback:\r\n | CaseReducers\r\n | ((builder: ActionReducerMapBuilder) => void),\r\n actionMatchers: ReadonlyActionMatcherDescriptionCollection = [],\r\n defaultCaseReducer?: CaseReducer\r\n): ReducerWithInitialState {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (typeof mapOrBuilderCallback === 'object') {\r\n if (!hasWarnedAboutObjectNotation) {\r\n hasWarnedAboutObjectNotation = true\r\n console.warn(\r\n \"The object notation for `createReducer` is deprecated, and will be removed in RTK 2.0. Please use the 'builder callback' notation instead: https://redux-toolkit.js.org/api/createReducer\"\r\n )\r\n }\r\n }\r\n }\r\n\r\n let [actionsMap, finalActionMatchers, finalDefaultCaseReducer] =\r\n typeof mapOrBuilderCallback === 'function'\r\n ? executeReducerBuilderCallback(mapOrBuilderCallback)\r\n : [mapOrBuilderCallback, actionMatchers, defaultCaseReducer]\r\n\r\n // Ensure the initial state gets frozen either way (if draftable)\r\n let getInitialState: () => S\r\n if (isStateFunction(initialState)) {\r\n getInitialState = () => freezeDraftable(initialState())\r\n } else {\r\n const frozenInitialState = freezeDraftable(initialState)\r\n getInitialState = () => frozenInitialState\r\n }\r\n\r\n function reducer(state = getInitialState(), action: any): S {\r\n let caseReducers = [\r\n actionsMap[action.type],\r\n ...finalActionMatchers\r\n .filter(({ matcher }) => matcher(action))\r\n .map(({ reducer }) => reducer),\r\n ]\r\n if (caseReducers.filter((cr) => !!cr).length === 0) {\r\n caseReducers = [finalDefaultCaseReducer]\r\n }\r\n\r\n return caseReducers.reduce((previousState, caseReducer): S => {\r\n if (caseReducer) {\r\n if (isDraft(previousState)) {\r\n // If it's already a draft, we must already be inside a `createNextState` call,\r\n // likely because this is being wrapped in `createReducer`, `createSlice`, or nested\r\n // inside an existing draft. It's safe to just pass the draft to the mutator.\r\n const draft = previousState as Draft // We can assume this is already a draft\r\n const result = caseReducer(draft, action)\r\n\r\n if (result === undefined) {\r\n return previousState\r\n }\r\n\r\n return result as S\r\n } else if (!isDraftable(previousState)) {\r\n // If state is not draftable (ex: a primitive, such as 0), we want to directly\r\n // return the caseReducer func and not wrap it with produce.\r\n const result = caseReducer(previousState as any, action)\r\n\r\n if (result === undefined) {\r\n if (previousState === null) {\r\n return previousState\r\n }\r\n throw Error(\r\n 'A case reducer on a non-draftable value must not return undefined'\r\n )\r\n }\r\n\r\n return result as S\r\n } else {\r\n // @ts-ignore createNextState() produces an Immutable> rather\r\n // than an Immutable, and TypeScript cannot find out how to reconcile\r\n // these two types.\r\n return createNextState(previousState, (draft: Draft) => {\r\n return caseReducer(draft, action)\r\n })\r\n }\r\n }\r\n\r\n return previousState\r\n }, state)\r\n }\r\n\r\n reducer.getInitialState = getInitialState\r\n\r\n return reducer as ReducerWithInitialState\r\n}\r\n","// Borrowed from https://github.com/ai/nanoid/blob/3.0.2/non-secure/index.js\r\n// This alphabet uses `A-Za-z0-9_-` symbols. A genetic algorithm helped\r\n// optimize the gzip compression for this alphabet.\r\nlet urlAlphabet =\r\n 'ModuleSymbhasOwnPr-0123456789ABCDEFGHNRVfgctiUvz_KqYTJkLxpZXIjQW'\r\n\r\n/**\r\n *\r\n * @public\r\n */\r\nexport let nanoid = (size = 21) => {\r\n let id = ''\r\n // A compact alternative for `for (var i = 0; i < step; i++)`.\r\n let i = size\r\n while (i--) {\r\n // `| 0` is more compact and faster than `Math.floor()`.\r\n id += urlAlphabet[(Math.random() * 64) | 0]\r\n }\r\n return id\r\n}\r\n","import type { Dispatch, AnyAction } from 'redux'\r\nimport type {\r\n PayloadAction,\r\n ActionCreatorWithPreparedPayload,\r\n} from './createAction'\r\nimport { createAction } from './createAction'\r\nimport type { ThunkDispatch } from 'redux-thunk'\r\nimport type { FallbackIfUnknown, Id, IsAny, IsUnknown } from './tsHelpers'\r\nimport { nanoid } from './nanoid'\r\n\r\n// @ts-ignore we need the import of these types due to a bundling issue.\r\ntype _Keep = PayloadAction | ActionCreatorWithPreparedPayload\r\n\r\nexport type BaseThunkAPI<\r\n S,\r\n E,\r\n D extends Dispatch = Dispatch,\r\n RejectedValue = undefined,\r\n RejectedMeta = unknown,\r\n FulfilledMeta = unknown\r\n> = {\r\n dispatch: D\r\n getState: () => S\r\n extra: E\r\n requestId: string\r\n signal: AbortSignal\r\n abort: (reason?: string) => void\r\n rejectWithValue: IsUnknown<\r\n RejectedMeta,\r\n (value: RejectedValue) => RejectWithValue,\r\n (\r\n value: RejectedValue,\r\n meta: RejectedMeta\r\n ) => RejectWithValue\r\n >\r\n fulfillWithValue: IsUnknown<\r\n FulfilledMeta,\r\n (value: FulfilledValue) => FulfilledValue,\r\n (\r\n value: FulfilledValue,\r\n meta: FulfilledMeta\r\n ) => FulfillWithMeta\r\n >\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport interface SerializedError {\r\n name?: string\r\n message?: string\r\n stack?: string\r\n code?: string\r\n}\r\n\r\nconst commonProperties: Array = [\r\n 'name',\r\n 'message',\r\n 'stack',\r\n 'code',\r\n]\r\n\r\nclass RejectWithValue {\r\n /*\r\n type-only property to distinguish between RejectWithValue and FulfillWithMeta\r\n does not exist at runtime\r\n */\r\n private readonly _type!: 'RejectWithValue'\r\n constructor(\r\n public readonly payload: Payload,\r\n public readonly meta: RejectedMeta\r\n ) {}\r\n}\r\n\r\nclass FulfillWithMeta {\r\n /*\r\n type-only property to distinguish between RejectWithValue and FulfillWithMeta\r\n does not exist at runtime\r\n */\r\n private readonly _type!: 'FulfillWithMeta'\r\n constructor(\r\n public readonly payload: Payload,\r\n public readonly meta: FulfilledMeta\r\n ) {}\r\n}\r\n\r\n/**\r\n * Serializes an error into a plain object.\r\n * Reworked from https://github.com/sindresorhus/serialize-error\r\n *\r\n * @public\r\n */\r\nexport const miniSerializeError = (value: any): SerializedError => {\r\n if (typeof value === 'object' && value !== null) {\r\n const simpleError: SerializedError = {}\r\n for (const property of commonProperties) {\r\n if (typeof value[property] === 'string') {\r\n simpleError[property] = value[property]\r\n }\r\n }\r\n\r\n return simpleError\r\n }\r\n\r\n return { message: String(value) }\r\n}\r\n\r\ntype AsyncThunkConfig = {\r\n state?: unknown\r\n dispatch?: Dispatch\r\n extra?: unknown\r\n rejectValue?: unknown\r\n serializedErrorType?: unknown\r\n pendingMeta?: unknown\r\n fulfilledMeta?: unknown\r\n rejectedMeta?: unknown\r\n}\r\n\r\ntype GetState = ThunkApiConfig extends {\r\n state: infer State\r\n}\r\n ? State\r\n : unknown\r\ntype GetExtra = ThunkApiConfig extends { extra: infer Extra }\r\n ? Extra\r\n : unknown\r\ntype GetDispatch = ThunkApiConfig extends {\r\n dispatch: infer Dispatch\r\n}\r\n ? FallbackIfUnknown<\r\n Dispatch,\r\n ThunkDispatch<\r\n GetState,\r\n GetExtra,\r\n AnyAction\r\n >\r\n >\r\n : ThunkDispatch, GetExtra, AnyAction>\r\n\r\ntype GetThunkAPI = BaseThunkAPI<\r\n GetState,\r\n GetExtra,\r\n GetDispatch,\r\n GetRejectValue,\r\n GetRejectedMeta,\r\n GetFulfilledMeta\r\n>\r\n\r\ntype GetRejectValue = ThunkApiConfig extends {\r\n rejectValue: infer RejectValue\r\n}\r\n ? RejectValue\r\n : unknown\r\n\r\ntype GetPendingMeta = ThunkApiConfig extends {\r\n pendingMeta: infer PendingMeta\r\n}\r\n ? PendingMeta\r\n : unknown\r\n\r\ntype GetFulfilledMeta = ThunkApiConfig extends {\r\n fulfilledMeta: infer FulfilledMeta\r\n}\r\n ? FulfilledMeta\r\n : unknown\r\n\r\ntype GetRejectedMeta = ThunkApiConfig extends {\r\n rejectedMeta: infer RejectedMeta\r\n}\r\n ? RejectedMeta\r\n : unknown\r\n\r\ntype GetSerializedErrorType = ThunkApiConfig extends {\r\n serializedErrorType: infer GetSerializedErrorType\r\n}\r\n ? GetSerializedErrorType\r\n : SerializedError\r\n\r\ntype MaybePromise = T | Promise | (T extends any ? Promise : never)\r\n\r\n/**\r\n * A type describing the return value of the `payloadCreator` argument to `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkPayloadCreatorReturnValue<\r\n Returned,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = MaybePromise<\r\n | IsUnknown<\r\n GetFulfilledMeta,\r\n Returned,\r\n FulfillWithMeta>\r\n >\r\n | RejectWithValue<\r\n GetRejectValue,\r\n GetRejectedMeta\r\n >\r\n>\r\n/**\r\n * A type describing the `payloadCreator` argument to `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg = void,\r\n ThunkApiConfig extends AsyncThunkConfig = {}\r\n> = (\r\n arg: ThunkArg,\r\n thunkAPI: GetThunkAPI\r\n) => AsyncThunkPayloadCreatorReturnValue\r\n\r\n/**\r\n * A ThunkAction created by `createAsyncThunk`.\r\n * Dispatching it returns a Promise for either a\r\n * fulfilled or rejected action.\r\n * Also, the returned value contains an `abort()` method\r\n * that allows the asyncAction to be cancelled from the outside.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkAction<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = (\r\n dispatch: GetDispatch,\r\n getState: () => GetState,\r\n extra: GetExtra\r\n) => Promise<\r\n | ReturnType>\r\n | ReturnType>\r\n> & {\r\n abort: (reason?: string) => void\r\n requestId: string\r\n arg: ThunkArg\r\n unwrap: () => Promise\r\n}\r\n\r\ntype AsyncThunkActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = IsAny<\r\n ThunkArg,\r\n // any handling\r\n (arg: ThunkArg) => AsyncThunkAction,\r\n // unknown handling\r\n unknown extends ThunkArg\r\n ? (arg: ThunkArg) => AsyncThunkAction // argument not specified or specified as void or undefined\r\n : [ThunkArg] extends [void] | [undefined]\r\n ? () => AsyncThunkAction // argument contains void\r\n : [void] extends [ThunkArg] // make optional\r\n ? (arg?: ThunkArg) => AsyncThunkAction // argument contains undefined\r\n : [undefined] extends [ThunkArg]\r\n ? WithStrictNullChecks<\r\n // with strict nullChecks: make optional\r\n (\r\n arg?: ThunkArg\r\n ) => AsyncThunkAction,\r\n // without strict null checks this will match everything, so don't make it optional\r\n (arg: ThunkArg) => AsyncThunkAction\r\n > // default case: normal argument\r\n : (arg: ThunkArg) => AsyncThunkAction\r\n>\r\n\r\n/**\r\n * Options object for `createAsyncThunk`.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunkOptions<\r\n ThunkArg = void,\r\n ThunkApiConfig extends AsyncThunkConfig = {}\r\n> = {\r\n /**\r\n * A method to control whether the asyncThunk should be executed. Has access to the\r\n * `arg`, `api.getState()` and `api.extra` arguments.\r\n *\r\n * @returns `false` if it should be skipped\r\n */\r\n condition?(\r\n arg: ThunkArg,\r\n api: Pick, 'getState' | 'extra'>\r\n ): MaybePromise\r\n /**\r\n * If `condition` returns `false`, the asyncThunk will be skipped.\r\n * This option allows you to control whether a `rejected` action with `meta.condition == false`\r\n * will be dispatched or not.\r\n *\r\n * @default `false`\r\n */\r\n dispatchConditionRejection?: boolean\r\n\r\n serializeError?: (x: unknown) => GetSerializedErrorType\r\n\r\n /**\r\n * A function to use when generating the `requestId` for the request sequence.\r\n *\r\n * @default `nanoid`\r\n */\r\n idGenerator?: (arg: ThunkArg) => string\r\n} & IsUnknown<\r\n GetPendingMeta,\r\n {\r\n /**\r\n * A method to generate additional properties to be added to `meta` of the pending action.\r\n *\r\n * Using this optional overload will not modify the types correctly, this overload is only in place to support JavaScript users.\r\n * Please use the `ThunkApiConfig` parameter `pendingMeta` to get access to a correctly typed overload\r\n */\r\n getPendingMeta?(\r\n base: {\r\n arg: ThunkArg\r\n requestId: string\r\n },\r\n api: Pick, 'getState' | 'extra'>\r\n ): GetPendingMeta\r\n },\r\n {\r\n /**\r\n * A method to generate additional properties to be added to `meta` of the pending action.\r\n */\r\n getPendingMeta(\r\n base: {\r\n arg: ThunkArg\r\n requestId: string\r\n },\r\n api: Pick, 'getState' | 'extra'>\r\n ): GetPendingMeta\r\n }\r\n>\r\n\r\nexport type AsyncThunkPendingActionCreator<\r\n ThunkArg,\r\n ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n [string, ThunkArg, GetPendingMeta?],\r\n undefined,\r\n string,\r\n never,\r\n {\r\n arg: ThunkArg\r\n requestId: string\r\n requestStatus: 'pending'\r\n } & GetPendingMeta\r\n>\r\n\r\nexport type AsyncThunkRejectedActionCreator<\r\n ThunkArg,\r\n ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n [\r\n Error | null,\r\n string,\r\n ThunkArg,\r\n GetRejectValue?,\r\n GetRejectedMeta?\r\n ],\r\n GetRejectValue | undefined,\r\n string,\r\n GetSerializedErrorType,\r\n {\r\n arg: ThunkArg\r\n requestId: string\r\n requestStatus: 'rejected'\r\n aborted: boolean\r\n condition: boolean\r\n } & (\r\n | ({ rejectedWithValue: false } & {\r\n [K in keyof GetRejectedMeta]?: undefined\r\n })\r\n | ({ rejectedWithValue: true } & GetRejectedMeta)\r\n )\r\n>\r\n\r\nexport type AsyncThunkFulfilledActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig = {}\r\n> = ActionCreatorWithPreparedPayload<\r\n [Returned, string, ThunkArg, GetFulfilledMeta?],\r\n Returned,\r\n string,\r\n never,\r\n {\r\n arg: ThunkArg\r\n requestId: string\r\n requestStatus: 'fulfilled'\r\n } & GetFulfilledMeta\r\n>\r\n\r\n/**\r\n * A type describing the return value of `createAsyncThunk`.\r\n * Might be useful for wrapping `createAsyncThunk` in custom abstractions.\r\n *\r\n * @public\r\n */\r\nexport type AsyncThunk<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n> = AsyncThunkActionCreator & {\r\n pending: AsyncThunkPendingActionCreator\r\n rejected: AsyncThunkRejectedActionCreator\r\n fulfilled: AsyncThunkFulfilledActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n >\r\n typePrefix: string\r\n}\r\n\r\ntype OverrideThunkApiConfigs = Id<\r\n NewConfig & Omit\r\n>\r\n\r\ntype CreateAsyncThunk = {\r\n /**\r\n *\r\n * @param typePrefix\r\n * @param payloadCreator\r\n * @param options\r\n *\r\n * @public\r\n */\r\n // separate signature without `AsyncThunkConfig` for better inference\r\n (\r\n typePrefix: string,\r\n payloadCreator: AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg,\r\n CurriedThunkApiConfig\r\n >,\r\n options?: AsyncThunkOptions\r\n ): AsyncThunk\r\n\r\n /**\r\n *\r\n * @param typePrefix\r\n * @param payloadCreator\r\n * @param options\r\n *\r\n * @public\r\n */\r\n (\r\n typePrefix: string,\r\n payloadCreator: AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg,\r\n OverrideThunkApiConfigs\r\n >,\r\n options?: AsyncThunkOptions<\r\n ThunkArg,\r\n OverrideThunkApiConfigs\r\n >\r\n ): AsyncThunk<\r\n Returned,\r\n ThunkArg,\r\n OverrideThunkApiConfigs\r\n >\r\n\r\n withTypes(): CreateAsyncThunk<\r\n OverrideThunkApiConfigs\r\n >\r\n}\r\n\r\nexport const createAsyncThunk = (() => {\r\n function createAsyncThunk<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig extends AsyncThunkConfig\r\n >(\r\n typePrefix: string,\r\n payloadCreator: AsyncThunkPayloadCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n >,\r\n options?: AsyncThunkOptions\r\n ): AsyncThunk {\r\n type RejectedValue = GetRejectValue\r\n type PendingMeta = GetPendingMeta\r\n type FulfilledMeta = GetFulfilledMeta\r\n type RejectedMeta = GetRejectedMeta\r\n\r\n const fulfilled: AsyncThunkFulfilledActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n > = createAction(\r\n typePrefix + '/fulfilled',\r\n (\r\n payload: Returned,\r\n requestId: string,\r\n arg: ThunkArg,\r\n meta?: FulfilledMeta\r\n ) => ({\r\n payload,\r\n meta: {\r\n ...((meta as any) || {}),\r\n arg,\r\n requestId,\r\n requestStatus: 'fulfilled' as const,\r\n },\r\n })\r\n )\r\n\r\n const pending: AsyncThunkPendingActionCreator =\r\n createAction(\r\n typePrefix + '/pending',\r\n (requestId: string, arg: ThunkArg, meta?: PendingMeta) => ({\r\n payload: undefined,\r\n meta: {\r\n ...((meta as any) || {}),\r\n arg,\r\n requestId,\r\n requestStatus: 'pending' as const,\r\n },\r\n })\r\n )\r\n\r\n const rejected: AsyncThunkRejectedActionCreator =\r\n createAction(\r\n typePrefix + '/rejected',\r\n (\r\n error: Error | null,\r\n requestId: string,\r\n arg: ThunkArg,\r\n payload?: RejectedValue,\r\n meta?: RejectedMeta\r\n ) => ({\r\n payload,\r\n error: ((options && options.serializeError) || miniSerializeError)(\r\n error || 'Rejected'\r\n ) as GetSerializedErrorType,\r\n meta: {\r\n ...((meta as any) || {}),\r\n arg,\r\n requestId,\r\n rejectedWithValue: !!payload,\r\n requestStatus: 'rejected' as const,\r\n aborted: error?.name === 'AbortError',\r\n condition: error?.name === 'ConditionError',\r\n },\r\n })\r\n )\r\n\r\n let displayedWarning = false\r\n\r\n const AC =\r\n typeof AbortController !== 'undefined'\r\n ? AbortController\r\n : class implements AbortController {\r\n signal = {\r\n aborted: false,\r\n addEventListener() {},\r\n dispatchEvent() {\r\n return false\r\n },\r\n onabort() {},\r\n removeEventListener() {},\r\n reason: undefined,\r\n throwIfAborted() {},\r\n }\r\n abort() {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (!displayedWarning) {\r\n displayedWarning = true\r\n console.info(\r\n `This platform does not implement AbortController. \r\nIf you want to use the AbortController to react to \\`abort\\` events, please consider importing a polyfill like 'abortcontroller-polyfill/dist/abortcontroller-polyfill-only'.`\r\n )\r\n }\r\n }\r\n }\r\n }\r\n\r\n function actionCreator(\r\n arg: ThunkArg\r\n ): AsyncThunkAction {\r\n return (dispatch, getState, extra) => {\r\n const requestId = options?.idGenerator\r\n ? options.idGenerator(arg)\r\n : nanoid()\r\n\r\n const abortController = new AC()\r\n let abortReason: string | undefined\r\n\r\n let started = false\r\n function abort(reason?: string) {\r\n abortReason = reason\r\n abortController.abort()\r\n }\r\n\r\n const promise = (async function () {\r\n let finalAction: ReturnType\r\n try {\r\n let conditionResult = options?.condition?.(arg, { getState, extra })\r\n if (isThenable(conditionResult)) {\r\n conditionResult = await conditionResult\r\n }\r\n\r\n if (conditionResult === false || abortController.signal.aborted) {\r\n // eslint-disable-next-line no-throw-literal\r\n throw {\r\n name: 'ConditionError',\r\n message: 'Aborted due to condition callback returning false.',\r\n }\r\n }\r\n started = true\r\n\r\n const abortedPromise = new Promise((_, reject) =>\r\n abortController.signal.addEventListener('abort', () =>\r\n reject({\r\n name: 'AbortError',\r\n message: abortReason || 'Aborted',\r\n })\r\n )\r\n )\r\n dispatch(\r\n pending(\r\n requestId,\r\n arg,\r\n options?.getPendingMeta?.(\r\n { requestId, arg },\r\n { getState, extra }\r\n )\r\n )\r\n )\r\n finalAction = await Promise.race([\r\n abortedPromise,\r\n Promise.resolve(\r\n payloadCreator(arg, {\r\n dispatch,\r\n getState,\r\n extra,\r\n requestId,\r\n signal: abortController.signal,\r\n abort,\r\n rejectWithValue: ((\r\n value: RejectedValue,\r\n meta?: RejectedMeta\r\n ) => {\r\n return new RejectWithValue(value, meta)\r\n }) as any,\r\n fulfillWithValue: ((value: unknown, meta?: FulfilledMeta) => {\r\n return new FulfillWithMeta(value, meta)\r\n }) as any,\r\n })\r\n ).then((result) => {\r\n if (result instanceof RejectWithValue) {\r\n throw result\r\n }\r\n if (result instanceof FulfillWithMeta) {\r\n return fulfilled(result.payload, requestId, arg, result.meta)\r\n }\r\n return fulfilled(result as any, requestId, arg)\r\n }),\r\n ])\r\n } catch (err) {\r\n finalAction =\r\n err instanceof RejectWithValue\r\n ? rejected(null, requestId, arg, err.payload, err.meta)\r\n : rejected(err as any, requestId, arg)\r\n }\r\n // We dispatch the result action _after_ the catch, to avoid having any errors\r\n // here get swallowed by the try/catch block,\r\n // per https://twitter.com/dan_abramov/status/770914221638942720\r\n // and https://github.com/reduxjs/redux-toolkit/blob/e85eb17b39a2118d859f7b7746e0f3fee523e089/docs/tutorials/advanced-tutorial.md#async-error-handling-logic-in-thunks\r\n\r\n const skipDispatch =\r\n options &&\r\n !options.dispatchConditionRejection &&\r\n rejected.match(finalAction) &&\r\n (finalAction as any).meta.condition\r\n\r\n if (!skipDispatch) {\r\n dispatch(finalAction)\r\n }\r\n return finalAction\r\n })()\r\n return Object.assign(promise as Promise, {\r\n abort,\r\n requestId,\r\n arg,\r\n unwrap() {\r\n return promise.then(unwrapResult)\r\n },\r\n })\r\n }\r\n }\r\n\r\n return Object.assign(\r\n actionCreator as AsyncThunkActionCreator<\r\n Returned,\r\n ThunkArg,\r\n ThunkApiConfig\r\n >,\r\n {\r\n pending,\r\n rejected,\r\n fulfilled,\r\n typePrefix,\r\n }\r\n )\r\n }\r\n createAsyncThunk.withTypes = () => createAsyncThunk\r\n\r\n return createAsyncThunk as CreateAsyncThunk\r\n})()\r\n\r\ninterface UnwrappableAction {\r\n payload: any\r\n meta?: any\r\n error?: any\r\n}\r\n\r\ntype UnwrappedActionPayload = Exclude<\r\n T,\r\n { error: any }\r\n>['payload']\r\n\r\n/**\r\n * @public\r\n */\r\nexport function unwrapResult(\r\n action: R\r\n): UnwrappedActionPayload {\r\n if (action.meta && action.meta.rejectedWithValue) {\r\n throw action.payload\r\n }\r\n if (action.error) {\r\n throw action.error\r\n }\r\n return action.payload\r\n}\r\n\r\ntype WithStrictNullChecks = undefined extends boolean\r\n ? False\r\n : True\r\n\r\nfunction isThenable(value: any): value is PromiseLike {\r\n return (\r\n value !== null &&\r\n typeof value === 'object' &&\r\n typeof value.then === 'function'\r\n )\r\n}\r\n","import type { Dispatch, AnyAction, MiddlewareAPI } from 'redux'\r\nimport type { ThunkDispatch } from 'redux-thunk'\r\nimport { createAction } from '../createAction'\r\nimport { nanoid } from '../nanoid'\r\n\r\nimport type {\r\n ListenerMiddleware,\r\n ListenerMiddlewareInstance,\r\n AddListenerOverloads,\r\n AnyListenerPredicate,\r\n CreateListenerMiddlewareOptions,\r\n TypedAddListener,\r\n TypedCreateListenerEntry,\r\n FallbackAddListenerOptions,\r\n ListenerEntry,\r\n ListenerErrorHandler,\r\n UnsubscribeListener,\r\n TakePattern,\r\n ListenerErrorInfo,\r\n ForkedTaskExecutor,\r\n ForkedTask,\r\n TypedRemoveListener,\r\n TaskResult,\r\n AbortSignalWithReason,\r\n UnsubscribeListenerOptions,\r\n} from './types'\r\nimport {\r\n abortControllerWithReason,\r\n addAbortSignalListener,\r\n assertFunction,\r\n catchRejection,\r\n} from './utils'\r\nimport {\r\n listenerCancelled,\r\n listenerCompleted,\r\n TaskAbortError,\r\n taskCancelled,\r\n taskCompleted,\r\n} from './exceptions'\r\nimport {\r\n runTask,\r\n validateActive,\r\n createPause,\r\n createDelay,\r\n raceWithSignal,\r\n} from './task'\r\nexport { TaskAbortError } from './exceptions'\r\nexport type {\r\n ListenerEffect,\r\n ListenerMiddleware,\r\n ListenerEffectAPI,\r\n ListenerMiddlewareInstance,\r\n CreateListenerMiddlewareOptions,\r\n ListenerErrorHandler,\r\n TypedStartListening,\r\n TypedAddListener,\r\n TypedStopListening,\r\n TypedRemoveListener,\r\n UnsubscribeListener,\r\n UnsubscribeListenerOptions,\r\n ForkedTaskExecutor,\r\n ForkedTask,\r\n ForkedTaskAPI,\r\n AsyncTaskExecutor,\r\n SyncTaskExecutor,\r\n TaskCancelled,\r\n TaskRejected,\r\n TaskResolved,\r\n TaskResult,\r\n} from './types'\r\n\r\n//Overly-aggressive byte-shaving\r\nconst { assign } = Object\r\n/**\r\n * @internal\r\n */\r\nconst INTERNAL_NIL_TOKEN = {} as const\r\n\r\nconst alm = 'listenerMiddleware' as const\r\n\r\nconst createFork = (parentAbortSignal: AbortSignalWithReason) => {\r\n const linkControllers = (controller: AbortController) =>\r\n addAbortSignalListener(parentAbortSignal, () =>\r\n abortControllerWithReason(controller, parentAbortSignal.reason)\r\n )\r\n\r\n return (taskExecutor: ForkedTaskExecutor): ForkedTask => {\r\n assertFunction(taskExecutor, 'taskExecutor')\r\n const childAbortController = new AbortController()\r\n\r\n linkControllers(childAbortController)\r\n\r\n const result = runTask(\r\n async (): Promise => {\r\n validateActive(parentAbortSignal)\r\n validateActive(childAbortController.signal)\r\n const result = (await taskExecutor({\r\n pause: createPause(childAbortController.signal),\r\n delay: createDelay(childAbortController.signal),\r\n signal: childAbortController.signal,\r\n })) as T\r\n validateActive(childAbortController.signal)\r\n return result\r\n },\r\n () => abortControllerWithReason(childAbortController, taskCompleted)\r\n )\r\n\r\n return {\r\n result: createPause>(parentAbortSignal)(result),\r\n cancel() {\r\n abortControllerWithReason(childAbortController, taskCancelled)\r\n },\r\n }\r\n }\r\n}\r\n\r\nconst createTakePattern = (\r\n startListening: AddListenerOverloads<\r\n UnsubscribeListener,\r\n S,\r\n Dispatch\r\n >,\r\n signal: AbortSignal\r\n): TakePattern => {\r\n /**\r\n * A function that takes a ListenerPredicate and an optional timeout,\r\n * and resolves when either the predicate returns `true` based on an action\r\n * state combination or when the timeout expires.\r\n * If the parent listener is canceled while waiting, this will throw a\r\n * TaskAbortError.\r\n */\r\n const take = async

>(\r\n predicate: P,\r\n timeout: number | undefined\r\n ) => {\r\n validateActive(signal)\r\n\r\n // Placeholder unsubscribe function until the listener is added\r\n let unsubscribe: UnsubscribeListener = () => {}\r\n\r\n const tuplePromise = new Promise<[AnyAction, S, S]>((resolve, reject) => {\r\n // Inside the Promise, we synchronously add the listener.\r\n let stopListening = startListening({\r\n predicate: predicate as any,\r\n effect: (action, listenerApi): void => {\r\n // One-shot listener that cleans up as soon as the predicate passes\r\n listenerApi.unsubscribe()\r\n // Resolve the promise with the same arguments the predicate saw\r\n resolve([\r\n action,\r\n listenerApi.getState(),\r\n listenerApi.getOriginalState(),\r\n ])\r\n },\r\n })\r\n unsubscribe = () => {\r\n stopListening()\r\n reject()\r\n }\r\n })\r\n\r\n const promises: (Promise | Promise<[AnyAction, S, S]>)[] = [\r\n tuplePromise,\r\n ]\r\n\r\n if (timeout != null) {\r\n promises.push(\r\n new Promise((resolve) => setTimeout(resolve, timeout, null))\r\n )\r\n }\r\n\r\n try {\r\n const output = await raceWithSignal(signal, Promise.race(promises))\r\n\r\n validateActive(signal)\r\n return output\r\n } finally {\r\n // Always clean up the listener\r\n unsubscribe()\r\n }\r\n }\r\n\r\n return ((predicate: AnyListenerPredicate, timeout: number | undefined) =>\r\n catchRejection(take(predicate, timeout))) as TakePattern\r\n}\r\n\r\nconst getListenerEntryPropsFrom = (options: FallbackAddListenerOptions) => {\r\n let { type, actionCreator, matcher, predicate, effect } = options\r\n\r\n if (type) {\r\n predicate = createAction(type).match\r\n } else if (actionCreator) {\r\n type = actionCreator!.type\r\n predicate = actionCreator.match\r\n } else if (matcher) {\r\n predicate = matcher\r\n } else if (predicate) {\r\n // pass\r\n } else {\r\n throw new Error(\r\n 'Creating or removing a listener requires one of the known fields for matching an action'\r\n )\r\n }\r\n\r\n assertFunction(effect, 'options.listener')\r\n\r\n return { predicate, type, effect }\r\n}\r\n\r\n/** Accepts the possible options for creating a listener, and returns a formatted listener entry */\r\nexport const createListenerEntry: TypedCreateListenerEntry = (\r\n options: FallbackAddListenerOptions\r\n) => {\r\n const { type, predicate, effect } = getListenerEntryPropsFrom(options)\r\n\r\n const id = nanoid()\r\n const entry: ListenerEntry = {\r\n id,\r\n effect,\r\n type,\r\n predicate,\r\n pending: new Set(),\r\n unsubscribe: () => {\r\n throw new Error('Unsubscribe not initialized')\r\n },\r\n }\r\n\r\n return entry\r\n}\r\n\r\nconst cancelActiveListeners = (\r\n entry: ListenerEntry>\r\n) => {\r\n entry.pending.forEach((controller) => {\r\n abortControllerWithReason(controller, listenerCancelled)\r\n })\r\n}\r\n\r\nconst createClearListenerMiddleware = (\r\n listenerMap: Map\r\n) => {\r\n return () => {\r\n listenerMap.forEach(cancelActiveListeners)\r\n\r\n listenerMap.clear()\r\n }\r\n}\r\n\r\n/**\r\n * Safely reports errors to the `errorHandler` provided.\r\n * Errors that occur inside `errorHandler` are notified in a new task.\r\n * Inspired by [rxjs reportUnhandledError](https://github.com/ReactiveX/rxjs/blob/6fafcf53dc9e557439b25debaeadfd224b245a66/src/internal/util/reportUnhandledError.ts)\r\n * @param errorHandler\r\n * @param errorToNotify\r\n */\r\nconst safelyNotifyError = (\r\n errorHandler: ListenerErrorHandler,\r\n errorToNotify: unknown,\r\n errorInfo: ListenerErrorInfo\r\n): void => {\r\n try {\r\n errorHandler(errorToNotify, errorInfo)\r\n } catch (errorHandlerError) {\r\n // We cannot let an error raised here block the listener queue.\r\n // The error raised here will be picked up by `window.onerror`, `process.on('error')` etc...\r\n setTimeout(() => {\r\n throw errorHandlerError\r\n }, 0)\r\n }\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport const addListener = createAction(\r\n `${alm}/add`\r\n) as TypedAddListener\r\n\r\n/**\r\n * @public\r\n */\r\nexport const clearAllListeners = createAction(`${alm}/removeAll`)\r\n\r\n/**\r\n * @public\r\n */\r\nexport const removeListener = createAction(\r\n `${alm}/remove`\r\n) as TypedRemoveListener\r\n\r\nconst defaultErrorHandler: ListenerErrorHandler = (...args: unknown[]) => {\r\n console.error(`${alm}/error`, ...args)\r\n}\r\n\r\n/**\r\n * @public\r\n */\r\nexport function createListenerMiddleware<\r\n S = unknown,\r\n D extends Dispatch = ThunkDispatch,\r\n ExtraArgument = unknown\r\n>(middlewareOptions: CreateListenerMiddlewareOptions = {}) {\r\n const listenerMap = new Map()\r\n const { extra, onError = defaultErrorHandler } = middlewareOptions\r\n\r\n assertFunction(onError, 'onError')\r\n\r\n const insertEntry = (entry: ListenerEntry) => {\r\n entry.unsubscribe = () => listenerMap.delete(entry!.id)\r\n\r\n listenerMap.set(entry.id, entry)\r\n return (cancelOptions?: UnsubscribeListenerOptions) => {\r\n entry.unsubscribe()\r\n if (cancelOptions?.cancelActive) {\r\n cancelActiveListeners(entry)\r\n }\r\n }\r\n }\r\n\r\n const findListenerEntry = (\r\n comparator: (entry: ListenerEntry) => boolean\r\n ): ListenerEntry | undefined => {\r\n for (const entry of Array.from(listenerMap.values())) {\r\n if (comparator(entry)) {\r\n return entry\r\n }\r\n }\r\n\r\n return undefined\r\n }\r\n\r\n const startListening = (options: FallbackAddListenerOptions) => {\r\n let entry = findListenerEntry(\r\n (existingEntry) => existingEntry.effect === options.effect\r\n )\r\n\r\n if (!entry) {\r\n entry = createListenerEntry(options as any)\r\n }\r\n\r\n return insertEntry(entry)\r\n }\r\n\r\n const stopListening = (\r\n options: FallbackAddListenerOptions & UnsubscribeListenerOptions\r\n ): boolean => {\r\n const { type, effect, predicate } = getListenerEntryPropsFrom(options)\r\n\r\n const entry = findListenerEntry((entry) => {\r\n const matchPredicateOrType =\r\n typeof type === 'string'\r\n ? entry.type === type\r\n : entry.predicate === predicate\r\n\r\n return matchPredicateOrType && entry.effect === effect\r\n })\r\n\r\n if (entry) {\r\n entry.unsubscribe()\r\n if (options.cancelActive) {\r\n cancelActiveListeners(entry)\r\n }\r\n }\r\n\r\n return !!entry\r\n }\r\n\r\n const notifyListener = async (\r\n entry: ListenerEntry>,\r\n action: AnyAction,\r\n api: MiddlewareAPI,\r\n getOriginalState: () => S\r\n ) => {\r\n const internalTaskController = new AbortController()\r\n const take = createTakePattern(\r\n startListening,\r\n internalTaskController.signal\r\n )\r\n\r\n try {\r\n entry.pending.add(internalTaskController)\r\n await Promise.resolve(\r\n entry.effect(\r\n action,\r\n // Use assign() rather than ... to avoid extra helper functions added to bundle\r\n assign({}, api, {\r\n getOriginalState,\r\n condition: (\r\n predicate: AnyListenerPredicate,\r\n timeout?: number\r\n ) => take(predicate, timeout).then(Boolean),\r\n take,\r\n delay: createDelay(internalTaskController.signal),\r\n pause: createPause(internalTaskController.signal),\r\n extra,\r\n signal: internalTaskController.signal,\r\n fork: createFork(internalTaskController.signal),\r\n unsubscribe: entry.unsubscribe,\r\n subscribe: () => {\r\n listenerMap.set(entry.id, entry)\r\n },\r\n cancelActiveListeners: () => {\r\n entry.pending.forEach((controller, _, set) => {\r\n if (controller !== internalTaskController) {\r\n abortControllerWithReason(controller, listenerCancelled)\r\n set.delete(controller)\r\n }\r\n })\r\n },\r\n })\r\n )\r\n )\r\n } catch (listenerError) {\r\n if (!(listenerError instanceof TaskAbortError)) {\r\n safelyNotifyError(onError, listenerError, {\r\n raisedBy: 'effect',\r\n })\r\n }\r\n } finally {\r\n abortControllerWithReason(internalTaskController, listenerCompleted) // Notify that the task has completed\r\n entry.pending.delete(internalTaskController)\r\n }\r\n }\r\n\r\n const clearListenerMiddleware = createClearListenerMiddleware(listenerMap)\r\n\r\n const middleware: ListenerMiddleware =\r\n (api) => (next) => (action) => {\r\n if (addListener.match(action)) {\r\n return startListening(action.payload)\r\n }\r\n\r\n if (clearAllListeners.match(action)) {\r\n clearListenerMiddleware()\r\n return\r\n }\r\n\r\n if (removeListener.match(action)) {\r\n return stopListening(action.payload)\r\n }\r\n\r\n // Need to get this state _before_ the reducer processes the action\r\n let originalState: S | typeof INTERNAL_NIL_TOKEN = api.getState()\r\n\r\n // `getOriginalState` can only be called synchronously.\r\n // @see https://github.com/reduxjs/redux-toolkit/discussions/1648#discussioncomment-1932820\r\n const getOriginalState = (): S => {\r\n if (originalState === INTERNAL_NIL_TOKEN) {\r\n throw new Error(\r\n `${alm}: getOriginalState can only be called synchronously`\r\n )\r\n }\r\n\r\n return originalState as S\r\n }\r\n\r\n let result: unknown\r\n\r\n try {\r\n // Actually forward the action to the reducer before we handle listeners\r\n result = next(action)\r\n\r\n if (listenerMap.size > 0) {\r\n let currentState = api.getState()\r\n // Work around ESBuild+TS transpilation issue\r\n const listenerEntries = Array.from(listenerMap.values())\r\n for (let entry of listenerEntries) {\r\n let runListener = false\r\n\r\n try {\r\n runListener = entry.predicate(action, currentState, originalState)\r\n } catch (predicateError) {\r\n runListener = false\r\n\r\n safelyNotifyError(onError, predicateError, {\r\n raisedBy: 'predicate',\r\n })\r\n }\r\n\r\n if (!runListener) {\r\n continue\r\n }\r\n\r\n notifyListener(entry, action, api, getOriginalState)\r\n }\r\n }\r\n } finally {\r\n // Remove `originalState` store from this scope.\r\n originalState = INTERNAL_NIL_TOKEN\r\n }\r\n\r\n return result\r\n }\r\n\r\n return {\r\n middleware,\r\n startListening,\r\n stopListening,\r\n clearListeners: clearListenerMiddleware,\r\n } as ListenerMiddlewareInstance\r\n}\r\n","import { TaskAbortError } from './exceptions'\r\nimport type { AbortSignalWithReason, TaskResult } from './types'\r\nimport { addAbortSignalListener, catchRejection, noop } from './utils'\r\n\r\n/**\r\n * Synchronously raises {@link TaskAbortError} if the task tied to the input `signal` has been cancelled.\r\n * @param signal\r\n * @param reason\r\n * @see {TaskAbortError}\r\n */\r\nexport const validateActive = (signal: AbortSignal): void => {\r\n if (signal.aborted) {\r\n throw new TaskAbortError((signal as AbortSignalWithReason).reason)\r\n }\r\n}\r\n\r\n/**\r\n * Generates a race between the promise(s) and the AbortSignal\r\n * This avoids `Promise.race()`-related memory leaks:\r\n * https://github.com/nodejs/node/issues/17469#issuecomment-349794909\r\n */\r\nexport function raceWithSignal(\r\n signal: AbortSignalWithReason,\r\n promise: Promise\r\n): Promise {\r\n let cleanup = noop\r\n return new Promise((resolve, reject) => {\r\n const notifyRejection = () => reject(new TaskAbortError(signal.reason))\r\n\r\n if (signal.aborted) {\r\n notifyRejection()\r\n return\r\n }\r\n\r\n cleanup = addAbortSignalListener(signal, notifyRejection)\r\n promise.finally(() => cleanup()).then(resolve, reject)\r\n }).finally(() => {\r\n // after this point, replace `cleanup` with a noop, so there is no reference to `signal` any more\r\n cleanup = noop\r\n })\r\n}\r\n\r\n/**\r\n * Runs a task and returns promise that resolves to {@link TaskResult}.\r\n * Second argument is an optional `cleanUp` function that always runs after task.\r\n *\r\n * **Note:** `runTask` runs the executor in the next microtask.\r\n * @returns\r\n */\r\nexport const runTask = async (\r\n task: () => Promise,\r\n cleanUp?: () => void\r\n): Promise> => {\r\n try {\r\n await Promise.resolve()\r\n const value = await task()\r\n return {\r\n status: 'ok',\r\n value,\r\n }\r\n } catch (error: any) {\r\n return {\r\n status: error instanceof TaskAbortError ? 'cancelled' : 'rejected',\r\n error,\r\n }\r\n } finally {\r\n cleanUp?.()\r\n }\r\n}\r\n\r\n/**\r\n * Given an input `AbortSignal` and a promise returns another promise that resolves\r\n * as soon the input promise is provided or rejects as soon as\r\n * `AbortSignal.abort` is `true`.\r\n * @param signal\r\n * @returns\r\n */\r\nexport const createPause = (signal: AbortSignal) => {\r\n return (promise: Promise): Promise => {\r\n return catchRejection(\r\n raceWithSignal(signal, promise).then((output) => {\r\n validateActive(signal)\r\n return output\r\n })\r\n )\r\n }\r\n}\r\n\r\n/**\r\n * Given an input `AbortSignal` and `timeoutMs` returns a promise that resolves\r\n * after `timeoutMs` or rejects as soon as `AbortSignal.abort` is `true`.\r\n * @param signal\r\n * @returns\r\n */\r\nexport const createDelay = (signal: AbortSignal) => {\r\n const pause = createPause(signal)\r\n return (timeoutMs: number): Promise => {\r\n return pause(new Promise((resolve) => setTimeout(resolve, timeoutMs)))\r\n }\r\n}\r\n","import type { StoreEnhancer } from 'redux'\r\n\r\nexport const SHOULD_AUTOBATCH = 'RTK_autoBatch'\r\n\r\nexport const prepareAutoBatched =\r\n () =>\r\n (payload: T): { payload: T; meta: unknown } => ({\r\n payload,\r\n meta: { [SHOULD_AUTOBATCH]: true },\r\n })\r\n\r\n// TODO Remove this in 2.0\r\n// Copied from https://github.com/feross/queue-microtask\r\nlet promise: Promise\r\nconst queueMicrotaskShim =\r\n typeof queueMicrotask === 'function'\r\n ? queueMicrotask.bind(\r\n typeof window !== 'undefined'\r\n ? window\r\n : typeof global !== 'undefined'\r\n ? global\r\n : globalThis\r\n )\r\n : // reuse resolved promise, and allocate it lazily\r\n (cb: () => void) =>\r\n (promise || (promise = Promise.resolve())).then(cb).catch((err: any) =>\r\n setTimeout(() => {\r\n throw err\r\n }, 0)\r\n )\r\n\r\nconst createQueueWithTimer = (timeout: number) => {\r\n return (notify: () => void) => {\r\n setTimeout(notify, timeout)\r\n }\r\n}\r\n\r\n// requestAnimationFrame won't exist in SSR environments.\r\n// Fall back to a vague approximation just to keep from erroring.\r\nconst rAF =\r\n typeof window !== 'undefined' && window.requestAnimationFrame\r\n ? window.requestAnimationFrame\r\n : createQueueWithTimer(10)\r\n\r\nexport type AutoBatchOptions =\r\n | { type: 'tick' }\r\n | { type: 'timer'; timeout: number }\r\n | { type: 'raf' }\r\n | { type: 'callback'; queueNotification: (notify: () => void) => void }\r\n\r\n/**\r\n * A Redux store enhancer that watches for \"low-priority\" actions, and delays\r\n * notifying subscribers until either the queued callback executes or the\r\n * next \"standard-priority\" action is dispatched.\r\n *\r\n * This allows dispatching multiple \"low-priority\" actions in a row with only\r\n * a single subscriber notification to the UI after the sequence of actions\r\n * is finished, thus improving UI re-render performance.\r\n *\r\n * Watches for actions with the `action.meta[SHOULD_AUTOBATCH]` attribute.\r\n * This can be added to `action.meta` manually, or by using the\r\n * `prepareAutoBatched` helper.\r\n *\r\n * By default, it will queue a notification for the end of the event loop tick.\r\n * However, you can pass several other options to configure the behavior:\r\n * - `{type: 'tick'}: queues using `queueMicrotask` (default)\r\n * - `{type: 'timer, timeout: number}`: queues using `setTimeout`\r\n * - `{type: 'raf'}`: queues using `requestAnimationFrame`\r\n * - `{type: 'callback', queueNotification: (notify: () => void) => void}: lets you provide your own callback\r\n *\r\n *\r\n */\r\nexport const autoBatchEnhancer =\r\n (options: AutoBatchOptions = { type: 'raf' }): StoreEnhancer =>\r\n (next) =>\r\n (...args) => {\r\n const store = next(...args)\r\n\r\n let notifying = true\r\n let shouldNotifyAtEndOfTick = false\r\n let notificationQueued = false\r\n\r\n const listeners = new Set<() => void>()\r\n\r\n const queueCallback =\r\n options.type === 'tick'\r\n ? queueMicrotaskShim\r\n : options.type === 'raf'\r\n ? rAF\r\n : options.type === 'callback'\r\n ? options.queueNotification\r\n : createQueueWithTimer(options.timeout)\r\n\r\n const notifyListeners = () => {\r\n // We're running at the end of the event loop tick.\r\n // Run the real listener callbacks to actually update the UI.\r\n notificationQueued = false\r\n if (shouldNotifyAtEndOfTick) {\r\n shouldNotifyAtEndOfTick = false\r\n listeners.forEach((l) => l())\r\n }\r\n }\r\n\r\n return Object.assign({}, store, {\r\n // Override the base `store.subscribe` method to keep original listeners\r\n // from running if we're delaying notifications\r\n subscribe(listener: () => void) {\r\n // Each wrapped listener will only call the real listener if\r\n // the `notifying` flag is currently active when it's called.\r\n // This lets the base store work as normal, while the actual UI\r\n // update becomes controlled by this enhancer.\r\n const wrappedListener: typeof listener = () => notifying && listener()\r\n const unsubscribe = store.subscribe(wrappedListener)\r\n listeners.add(listener)\r\n return () => {\r\n unsubscribe()\r\n listeners.delete(listener)\r\n }\r\n },\r\n // Override the base `store.dispatch` method so that we can check actions\r\n // for the `shouldAutoBatch` flag and determine if batching is active\r\n dispatch(action: any) {\r\n try {\r\n // If the action does _not_ have the `shouldAutoBatch` flag,\r\n // we resume/continue normal notify-after-each-dispatch behavior\r\n notifying = !action?.meta?.[SHOULD_AUTOBATCH]\r\n // If a `notifyListeners` microtask was queued, you can't cancel it.\r\n // Instead, we set a flag so that it's a no-op when it does run\r\n shouldNotifyAtEndOfTick = !notifying\r\n if (shouldNotifyAtEndOfTick) {\r\n // We've seen at least 1 action with `SHOULD_AUTOBATCH`. Try to queue\r\n // a microtask to notify listeners at the end of the event loop tick.\r\n // Make sure we only enqueue this _once_ per tick.\r\n if (!notificationQueued) {\r\n notificationQueued = true\r\n queueCallback(notifyListeners)\r\n }\r\n }\r\n // Go ahead and process the action as usual, including reducers.\r\n // If normal notification behavior is enabled, the store will notify\r\n // all of its own listeners, and the wrapper callbacks above will\r\n // see `notifying` is true and pass on to the real listener callbacks.\r\n // If we're \"batching\" behavior, then the wrapped callbacks will\r\n // bail out, causing the base store notification behavior to be no-ops.\r\n return store.dispatch(action)\r\n } finally {\r\n // Assume we're back to normal behavior after each action\r\n notifying = true\r\n }\r\n },\r\n })\r\n }\r\n","import { enableES5 } from 'immer'\r\nexport * from 'redux'\r\nexport {\r\n default as createNextState,\r\n current,\r\n freeze,\r\n original,\r\n isDraft,\r\n} from 'immer'\r\nexport type { Draft } from 'immer'\r\nexport { createSelector } from 'reselect'\r\nexport type {\r\n Selector,\r\n OutputParametricSelector,\r\n OutputSelector,\r\n ParametricSelector,\r\n} from 'reselect'\r\nexport { createDraftSafeSelector } from './createDraftSafeSelector'\r\nexport type { ThunkAction, ThunkDispatch, ThunkMiddleware } from 'redux-thunk'\r\n\r\n// We deliberately enable Immer's ES5 support, on the grounds that\r\n// we assume RTK will be used with React Native and other Proxy-less\r\n// environments. In addition, that's how Immer 4 behaved, and since\r\n// we want to ship this in an RTK minor, we should keep the same behavior.\r\nenableES5()\r\n\r\nexport {\r\n // js\r\n configureStore,\r\n} from './configureStore'\r\nexport type {\r\n // types\r\n ConfigureEnhancersCallback,\r\n ConfigureStoreOptions,\r\n EnhancedStore,\r\n} from './configureStore'\r\nexport type { DevToolsEnhancerOptions } from './devtoolsExtension'\r\nexport {\r\n // js\r\n createAction,\r\n getType,\r\n} from './createAction'\r\nexport type {\r\n // types\r\n PayloadAction,\r\n PayloadActionCreator,\r\n ActionCreatorWithNonInferrablePayload,\r\n ActionCreatorWithOptionalPayload,\r\n ActionCreatorWithPayload,\r\n ActionCreatorWithoutPayload,\r\n ActionCreatorWithPreparedPayload,\r\n PrepareAction,\r\n} from './createAction'\r\nexport {\r\n // js\r\n createReducer,\r\n} from './createReducer'\r\nexport type {\r\n // types\r\n Actions,\r\n CaseReducer,\r\n CaseReducers,\r\n} from './createReducer'\r\nexport {\r\n // js\r\n createSlice,\r\n} from './createSlice'\r\n\r\nexport type {\r\n // types\r\n CreateSliceOptions,\r\n Slice,\r\n CaseReducerActions,\r\n SliceCaseReducers,\r\n ValidateSliceCaseReducers,\r\n CaseReducerWithPrepare,\r\n SliceActionCreator,\r\n} from './createSlice'\r\nexport {\r\n // js\r\n createImmutableStateInvariantMiddleware,\r\n isImmutableDefault,\r\n} from './immutableStateInvariantMiddleware'\r\nexport type {\r\n // types\r\n ImmutableStateInvariantMiddlewareOptions,\r\n} from './immutableStateInvariantMiddleware'\r\nexport {\r\n // js\r\n createSerializableStateInvariantMiddleware,\r\n findNonSerializableValue,\r\n isPlain,\r\n} from './serializableStateInvariantMiddleware'\r\nexport type {\r\n // types\r\n SerializableStateInvariantMiddlewareOptions,\r\n} from './serializableStateInvariantMiddleware'\r\nexport {\r\n // js\r\n getDefaultMiddleware,\r\n} from './getDefaultMiddleware'\r\nexport type {\r\n // types\r\n ActionReducerMapBuilder,\r\n} from './mapBuilders'\r\nexport { MiddlewareArray } from './utils'\r\n\r\nexport { createEntityAdapter } from './entities/create_adapter'\r\nexport type {\r\n Dictionary,\r\n EntityState,\r\n EntityAdapter,\r\n EntitySelectors,\r\n EntityStateAdapter,\r\n EntityId,\r\n Update,\r\n IdSelector,\r\n Comparer,\r\n} from './entities/models'\r\n\r\nexport {\r\n createAsyncThunk,\r\n unwrapResult,\r\n miniSerializeError,\r\n} from './createAsyncThunk'\r\nexport type {\r\n AsyncThunk,\r\n AsyncThunkOptions,\r\n AsyncThunkAction,\r\n AsyncThunkPayloadCreatorReturnValue,\r\n AsyncThunkPayloadCreator,\r\n SerializedError,\r\n} from './createAsyncThunk'\r\n\r\nexport {\r\n // js\r\n isAllOf,\r\n isAnyOf,\r\n isPending,\r\n isRejected,\r\n isFulfilled,\r\n isAsyncThunkAction,\r\n isRejectedWithValue,\r\n} from './matchers'\r\nexport type {\r\n // types\r\n ActionMatchingAllOf,\r\n ActionMatchingAnyOf,\r\n} from './matchers'\r\n\r\nexport { nanoid } from './nanoid'\r\n\r\nexport { default as isPlainObject } from './isPlainObject'\r\n\r\nexport type {\r\n ListenerEffect,\r\n ListenerMiddleware,\r\n ListenerEffectAPI,\r\n ListenerMiddlewareInstance,\r\n CreateListenerMiddlewareOptions,\r\n ListenerErrorHandler,\r\n TypedStartListening,\r\n TypedAddListener,\r\n TypedStopListening,\r\n TypedRemoveListener,\r\n UnsubscribeListener,\r\n UnsubscribeListenerOptions,\r\n ForkedTaskExecutor,\r\n ForkedTask,\r\n ForkedTaskAPI,\r\n AsyncTaskExecutor,\r\n SyncTaskExecutor,\r\n TaskCancelled,\r\n TaskRejected,\r\n TaskResolved,\r\n TaskResult,\r\n} from './listenerMiddleware/index'\r\nexport type { AnyListenerPredicate } from './listenerMiddleware/types'\r\n\r\nexport {\r\n createListenerMiddleware,\r\n addListener,\r\n removeListener,\r\n clearAllListeners,\r\n TaskAbortError,\r\n} from './listenerMiddleware/index'\r\n\r\nexport {\r\n SHOULD_AUTOBATCH,\r\n prepareAutoBatched,\r\n autoBatchEnhancer,\r\n} from './autoBatchEnhancer'\r\nexport type { AutoBatchOptions } from './autoBatchEnhancer'\r\n","////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Actions represent the type of change to a location value.\n */\nexport enum Action {\n /**\n * A POP indicates a change to an arbitrary index in the history stack, such\n * as a back or forward navigation. It does not describe the direction of the\n * navigation, only that the current index changed.\n *\n * Note: This is the default action for newly created history objects.\n */\n Pop = \"POP\",\n\n /**\n * A PUSH indicates a new entry being added to the history stack, such as when\n * a link is clicked and a new page loads. When this happens, all subsequent\n * entries in the stack are lost.\n */\n Push = \"PUSH\",\n\n /**\n * A REPLACE indicates the entry at the current index in the history stack\n * being replaced by a new one.\n */\n Replace = \"REPLACE\",\n}\n\n/**\n * The pathname, search, and hash values of a URL.\n */\nexport interface Path {\n /**\n * A URL pathname, beginning with a /.\n */\n pathname: string;\n\n /**\n * A URL search string, beginning with a ?.\n */\n search: string;\n\n /**\n * A URL fragment identifier, beginning with a #.\n */\n hash: string;\n}\n\n/**\n * An entry in a history stack. A location contains information about the\n * URL path, as well as possibly some arbitrary state and a key.\n */\nexport interface Location extends Path {\n /**\n * A value of arbitrary data associated with this location.\n */\n state: any;\n\n /**\n * A unique string associated with this location. May be used to safely store\n * and retrieve data in some other storage API, like `localStorage`.\n *\n * Note: This value is always \"default\" on the initial location.\n */\n key: string;\n}\n\n/**\n * A change to the current location.\n */\nexport interface Update {\n /**\n * The action that triggered the change.\n */\n action: Action;\n\n /**\n * The new location.\n */\n location: Location;\n\n /**\n * The delta between this location and the former location in the history stack\n */\n delta: number | null;\n}\n\n/**\n * A function that receives notifications about location changes.\n */\nexport interface Listener {\n (update: Update): void;\n}\n\n/**\n * Describes a location that is the destination of some navigation, either via\n * `history.push` or `history.replace`. May be either a URL or the pieces of a\n * URL path.\n */\nexport type To = string | Partial;\n\n/**\n * A history is an interface to the navigation stack. The history serves as the\n * source of truth for the current location, as well as provides a set of\n * methods that may be used to change it.\n *\n * It is similar to the DOM's `window.history` object, but with a smaller, more\n * focused API.\n */\nexport interface History {\n /**\n * The last action that modified the current location. This will always be\n * Action.Pop when a history instance is first created. This value is mutable.\n */\n readonly action: Action;\n\n /**\n * The current location. This value is mutable.\n */\n readonly location: Location;\n\n /**\n * Returns a valid href for the given `to` value that may be used as\n * the value of an attribute.\n *\n * @param to - The destination URL\n */\n createHref(to: To): string;\n\n /**\n * Returns a URL for the given `to` value\n *\n * @param to - The destination URL\n */\n createURL(to: To): URL;\n\n /**\n * Encode a location the same way window.history would do (no-op for memory\n * history) so we ensure our PUSH/REPLACE navigations for data routers\n * behave the same as POP\n *\n * @param to Unencoded path\n */\n encodeLocation(to: To): Path;\n\n /**\n * Pushes a new location onto the history stack, increasing its length by one.\n * If there were any entries in the stack after the current one, they are\n * lost.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n push(to: To, state?: any): void;\n\n /**\n * Replaces the current location in the history stack with a new one. The\n * location that was replaced will no longer be available.\n *\n * @param to - The new URL\n * @param state - Data to associate with the new location\n */\n replace(to: To, state?: any): void;\n\n /**\n * Navigates `n` entries backward/forward in the history stack relative to the\n * current index. For example, a \"back\" navigation would use go(-1).\n *\n * @param delta - The delta in the stack index\n */\n go(delta: number): void;\n\n /**\n * Sets up a listener that will be called whenever the current location\n * changes.\n *\n * @param listener - A function that will be called when the location changes\n * @returns unlisten - A function that may be used to stop listening\n */\n listen(listener: Listener): () => void;\n}\n\ntype HistoryState = {\n usr: any;\n key?: string;\n idx: number;\n};\n\nconst PopStateEventType = \"popstate\";\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Memory History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A user-supplied object that describes a location. Used when providing\n * entries to `createMemoryHistory` via its `initialEntries` option.\n */\nexport type InitialEntry = string | Partial;\n\nexport type MemoryHistoryOptions = {\n initialEntries?: InitialEntry[];\n initialIndex?: number;\n v5Compat?: boolean;\n};\n\n/**\n * A memory history stores locations in memory. This is useful in stateful\n * environments where there is no web browser, such as node tests or React\n * Native.\n */\nexport interface MemoryHistory extends History {\n /**\n * The current index in the history stack.\n */\n readonly index: number;\n}\n\n/**\n * Memory history stores the current location in memory. It is designed for use\n * in stateful non-browser environments like tests and React Native.\n */\nexport function createMemoryHistory(\n options: MemoryHistoryOptions = {}\n): MemoryHistory {\n let { initialEntries = [\"/\"], initialIndex, v5Compat = false } = options;\n let entries: Location[]; // Declare so we can access from createMemoryLocation\n entries = initialEntries.map((entry, index) =>\n createMemoryLocation(\n entry,\n typeof entry === \"string\" ? null : entry.state,\n index === 0 ? \"default\" : undefined\n )\n );\n let index = clampIndex(\n initialIndex == null ? entries.length - 1 : initialIndex\n );\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n function clampIndex(n: number): number {\n return Math.min(Math.max(n, 0), entries.length - 1);\n }\n function getCurrentLocation(): Location {\n return entries[index];\n }\n function createMemoryLocation(\n to: To,\n state: any = null,\n key?: string\n ): Location {\n let location = createLocation(\n entries ? getCurrentLocation().pathname : \"/\",\n to,\n state,\n key\n );\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in memory history: ${JSON.stringify(\n to\n )}`\n );\n return location;\n }\n\n function createHref(to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n let history: MemoryHistory = {\n get index() {\n return index;\n },\n get action() {\n return action;\n },\n get location() {\n return getCurrentLocation();\n },\n createHref,\n createURL(to) {\n return new URL(createHref(to), \"http://localhost\");\n },\n encodeLocation(to: To) {\n let path = typeof to === \"string\" ? parsePath(to) : to;\n return {\n pathname: path.pathname || \"\",\n search: path.search || \"\",\n hash: path.hash || \"\",\n };\n },\n push(to, state) {\n action = Action.Push;\n let nextLocation = createMemoryLocation(to, state);\n index += 1;\n entries.splice(index, entries.length, nextLocation);\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 1 });\n }\n },\n replace(to, state) {\n action = Action.Replace;\n let nextLocation = createMemoryLocation(to, state);\n entries[index] = nextLocation;\n if (v5Compat && listener) {\n listener({ action, location: nextLocation, delta: 0 });\n }\n },\n go(delta) {\n action = Action.Pop;\n let nextIndex = clampIndex(index + delta);\n let nextLocation = entries[nextIndex];\n index = nextIndex;\n if (listener) {\n listener({ action, location: nextLocation, delta });\n }\n },\n listen(fn: Listener) {\n listener = fn;\n return () => {\n listener = null;\n };\n },\n };\n\n return history;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Browser History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A browser history stores the current location in regular URLs in a web\n * browser environment. This is the standard for most web apps and provides the\n * cleanest URLs the browser's address bar.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#browserhistory\n */\nexport interface BrowserHistory extends UrlHistory {}\n\nexport type BrowserHistoryOptions = UrlHistoryOptions;\n\n/**\n * Browser history stores the location in regular URLs. This is the standard for\n * most web apps, but it requires some configuration on the server to ensure you\n * serve the same app at multiple URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createbrowserhistory\n */\nexport function createBrowserHistory(\n options: BrowserHistoryOptions = {}\n): BrowserHistory {\n function createBrowserLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let { pathname, search, hash } = window.location;\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createBrowserHref(window: Window, to: To) {\n return typeof to === \"string\" ? to : createPath(to);\n }\n\n return getUrlBasedHistory(\n createBrowserLocation,\n createBrowserHref,\n null,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Hash History\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A hash history stores the current location in the fragment identifier portion\n * of the URL in a web browser environment.\n *\n * This is ideal for apps that do not control the server for some reason\n * (because the fragment identifier is never sent to the server), including some\n * shared hosting environments that do not provide fine-grained controls over\n * which pages are served at which URLs.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#hashhistory\n */\nexport interface HashHistory extends UrlHistory {}\n\nexport type HashHistoryOptions = UrlHistoryOptions;\n\n/**\n * Hash history stores the location in window.location.hash. This makes it ideal\n * for situations where you don't want to send the location to the server for\n * some reason, either because you do cannot configure it or the URL space is\n * reserved for something else.\n *\n * @see https://github.com/remix-run/history/tree/main/docs/api-reference.md#createhashhistory\n */\nexport function createHashHistory(\n options: HashHistoryOptions = {}\n): HashHistory {\n function createHashLocation(\n window: Window,\n globalHistory: Window[\"history\"]\n ) {\n let {\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n } = parsePath(window.location.hash.substr(1));\n return createLocation(\n \"\",\n { pathname, search, hash },\n // state defaults to `null` because `window.history.state` does\n (globalHistory.state && globalHistory.state.usr) || null,\n (globalHistory.state && globalHistory.state.key) || \"default\"\n );\n }\n\n function createHashHref(window: Window, to: To) {\n let base = window.document.querySelector(\"base\");\n let href = \"\";\n\n if (base && base.getAttribute(\"href\")) {\n let url = window.location.href;\n let hashIndex = url.indexOf(\"#\");\n href = hashIndex === -1 ? url : url.slice(0, hashIndex);\n }\n\n return href + \"#\" + (typeof to === \"string\" ? to : createPath(to));\n }\n\n function validateHashLocation(location: Location, to: To) {\n warning(\n location.pathname.charAt(0) === \"/\",\n `relative pathnames are not supported in hash history.push(${JSON.stringify(\n to\n )})`\n );\n }\n\n return getUrlBasedHistory(\n createHashLocation,\n createHashHref,\n validateHashLocation,\n options\n );\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region UTILS\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * @private\n */\nexport function invariant(value: boolean, message?: string): asserts value;\nexport function invariant(\n value: T | null | undefined,\n message?: string\n): asserts value is T;\nexport function invariant(value: any, message?: string) {\n if (value === false || value === null || typeof value === \"undefined\") {\n throw new Error(message);\n }\n}\n\nfunction warning(cond: any, message: string) {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging history!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\nfunction createKey() {\n return Math.random().toString(36).substr(2, 8);\n}\n\n/**\n * For browser-based histories, we combine the state and key into an object\n */\nfunction getHistoryState(location: Location, index: number): HistoryState {\n return {\n usr: location.state,\n key: location.key,\n idx: index,\n };\n}\n\n/**\n * Creates a Location object with a unique key from the given Path\n */\nexport function createLocation(\n current: string | Location,\n to: To,\n state: any = null,\n key?: string\n): Readonly {\n let location: Readonly = {\n pathname: typeof current === \"string\" ? current : current.pathname,\n search: \"\",\n hash: \"\",\n ...(typeof to === \"string\" ? parsePath(to) : to),\n state,\n // TODO: This could be cleaned up. push/replace should probably just take\n // full Locations now and avoid the need to run through this flow at all\n // But that's a pretty big refactor to the current test suite so going to\n // keep as is for the time being and just let any incoming keys take precedence\n key: (to && (to as Location).key) || key || createKey(),\n };\n return location;\n}\n\n/**\n * Creates a string URL path from the given pathname, search, and hash components.\n */\nexport function createPath({\n pathname = \"/\",\n search = \"\",\n hash = \"\",\n}: Partial) {\n if (search && search !== \"?\")\n pathname += search.charAt(0) === \"?\" ? search : \"?\" + search;\n if (hash && hash !== \"#\")\n pathname += hash.charAt(0) === \"#\" ? hash : \"#\" + hash;\n return pathname;\n}\n\n/**\n * Parses a string URL path into its separate pathname, search, and hash components.\n */\nexport function parsePath(path: string): Partial {\n let parsedPath: Partial = {};\n\n if (path) {\n let hashIndex = path.indexOf(\"#\");\n if (hashIndex >= 0) {\n parsedPath.hash = path.substr(hashIndex);\n path = path.substr(0, hashIndex);\n }\n\n let searchIndex = path.indexOf(\"?\");\n if (searchIndex >= 0) {\n parsedPath.search = path.substr(searchIndex);\n path = path.substr(0, searchIndex);\n }\n\n if (path) {\n parsedPath.pathname = path;\n }\n }\n\n return parsedPath;\n}\n\nexport interface UrlHistory extends History {}\n\nexport type UrlHistoryOptions = {\n window?: Window;\n v5Compat?: boolean;\n};\n\nfunction getUrlBasedHistory(\n getLocation: (window: Window, globalHistory: Window[\"history\"]) => Location,\n createHref: (window: Window, to: To) => string,\n validateLocation: ((location: Location, to: To) => void) | null,\n options: UrlHistoryOptions = {}\n): UrlHistory {\n let { window = document.defaultView!, v5Compat = false } = options;\n let globalHistory = window.history;\n let action = Action.Pop;\n let listener: Listener | null = null;\n\n let index = getIndex()!;\n // Index should only be null when we initialize. If not, it's because the\n // user called history.pushState or history.replaceState directly, in which\n // case we should log a warning as it will result in bugs.\n if (index == null) {\n index = 0;\n globalHistory.replaceState({ ...globalHistory.state, idx: index }, \"\");\n }\n\n function getIndex(): number {\n let state = globalHistory.state || { idx: null };\n return state.idx;\n }\n\n function handlePop() {\n action = Action.Pop;\n let nextIndex = getIndex();\n let delta = nextIndex == null ? null : nextIndex - index;\n index = nextIndex;\n if (listener) {\n listener({ action, location: history.location, delta });\n }\n }\n\n function push(to: To, state?: any) {\n action = Action.Push;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex() + 1;\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n\n // try...catch because iOS limits us to 100 pushState calls :/\n try {\n globalHistory.pushState(historyState, \"\", url);\n } catch (error) {\n // They are going to lose state here, but there is no real\n // way to warn them about it since the page will refresh...\n window.location.assign(url);\n }\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 1 });\n }\n }\n\n function replace(to: To, state?: any) {\n action = Action.Replace;\n let location = createLocation(history.location, to, state);\n if (validateLocation) validateLocation(location, to);\n\n index = getIndex();\n let historyState = getHistoryState(location, index);\n let url = history.createHref(location);\n globalHistory.replaceState(historyState, \"\", url);\n\n if (v5Compat && listener) {\n listener({ action, location: history.location, delta: 0 });\n }\n }\n\n function createURL(to: To): URL {\n // window.location.origin is \"null\" (the literal string value) in Firefox\n // under certain conditions, notably when serving from a local HTML file\n // See https://bugzilla.mozilla.org/show_bug.cgi?id=878297\n let base =\n window.location.origin !== \"null\"\n ? window.location.origin\n : window.location.href;\n\n let href = typeof to === \"string\" ? to : createPath(to);\n invariant(\n base,\n `No window.location.(origin|href) available to create URL for href: ${href}`\n );\n return new URL(href, base);\n }\n\n let history: History = {\n get action() {\n return action;\n },\n get location() {\n return getLocation(window, globalHistory);\n },\n listen(fn: Listener) {\n if (listener) {\n throw new Error(\"A history only accepts one active listener\");\n }\n window.addEventListener(PopStateEventType, handlePop);\n listener = fn;\n\n return () => {\n window.removeEventListener(PopStateEventType, handlePop);\n listener = null;\n };\n },\n createHref(to) {\n return createHref(window, to);\n },\n createURL,\n encodeLocation(to) {\n // Encode a Location the same way window.location would\n let url = createURL(to);\n return {\n pathname: url.pathname,\n search: url.search,\n hash: url.hash,\n };\n },\n push,\n replace,\n go(n) {\n return globalHistory.go(n);\n },\n };\n\n return history;\n}\n\n//#endregion\n","import type { Location, Path, To } from \"./history\";\nimport { invariant, parsePath } from \"./history\";\n\n/**\n * Map of routeId -> data returned from a loader/action/error\n */\nexport interface RouteData {\n [routeId: string]: any;\n}\n\nexport enum ResultType {\n data = \"data\",\n deferred = \"deferred\",\n redirect = \"redirect\",\n error = \"error\",\n}\n\n/**\n * Successful result from a loader or action\n */\nexport interface SuccessResult {\n type: ResultType.data;\n data: any;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Successful defer() result from a loader or action\n */\nexport interface DeferredResult {\n type: ResultType.deferred;\n deferredData: DeferredData;\n statusCode?: number;\n headers?: Headers;\n}\n\n/**\n * Redirect result from a loader or action\n */\nexport interface RedirectResult {\n type: ResultType.redirect;\n status: number;\n location: string;\n revalidate: boolean;\n}\n\n/**\n * Unsuccessful result from a loader or action\n */\nexport interface ErrorResult {\n type: ResultType.error;\n error: any;\n headers?: Headers;\n}\n\n/**\n * Result from a loader or action - potentially successful or unsuccessful\n */\nexport type DataResult =\n | SuccessResult\n | DeferredResult\n | RedirectResult\n | ErrorResult;\n\nexport type MutationFormMethod = \"post\" | \"put\" | \"patch\" | \"delete\";\nexport type FormMethod = \"get\" | MutationFormMethod;\n\nexport type FormEncType =\n | \"application/x-www-form-urlencoded\"\n | \"multipart/form-data\";\n\n/**\n * @private\n * Internal interface to pass around for action submissions, not intended for\n * external consumption\n */\nexport interface Submission {\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n}\n\n/**\n * @private\n * Arguments passed to route loader/action functions. Same for now but we keep\n * this as a private implementation detail in case they diverge in the future.\n */\ninterface DataFunctionArgs {\n request: Request;\n params: Params;\n context?: any;\n}\n\n/**\n * Arguments passed to loader functions\n */\nexport interface LoaderFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Arguments passed to action functions\n */\nexport interface ActionFunctionArgs extends DataFunctionArgs {}\n\n/**\n * Route loader function signature\n */\nexport interface LoaderFunction {\n (args: LoaderFunctionArgs): Promise | Response | Promise | any;\n}\n\n/**\n * Route action function signature\n */\nexport interface ActionFunction {\n (args: ActionFunctionArgs): Promise | Response | Promise | any;\n}\n\n/**\n * Route shouldRevalidate function signature. This runs after any submission\n * (navigation or fetcher), so we flatten the navigation/fetcher submission\n * onto the arguments. It shouldn't matter whether it came from a navigation\n * or a fetcher, what really matters is the URLs and the formData since loaders\n * have to re-run based on the data models that were potentially mutated.\n */\nexport interface ShouldRevalidateFunction {\n (args: {\n currentUrl: URL;\n currentParams: AgnosticDataRouteMatch[\"params\"];\n nextUrl: URL;\n nextParams: AgnosticDataRouteMatch[\"params\"];\n formMethod?: Submission[\"formMethod\"];\n formAction?: Submission[\"formAction\"];\n formEncType?: Submission[\"formEncType\"];\n formData?: Submission[\"formData\"];\n actionResult?: DataResult;\n defaultShouldRevalidate: boolean;\n }): boolean;\n}\n\n/**\n * Base RouteObject with common props shared by all types of routes\n */\ntype AgnosticBaseRouteObject = {\n caseSensitive?: boolean;\n path?: string;\n id?: string;\n loader?: LoaderFunction;\n action?: ActionFunction;\n hasErrorBoundary?: boolean;\n shouldRevalidate?: ShouldRevalidateFunction;\n handle?: any;\n};\n\n/**\n * Index routes must not have children\n */\nexport type AgnosticIndexRouteObject = AgnosticBaseRouteObject & {\n children?: undefined;\n index: true;\n};\n\n/**\n * Non-index routes may have children, but cannot have index\n */\nexport type AgnosticNonIndexRouteObject = AgnosticBaseRouteObject & {\n children?: AgnosticRouteObject[];\n index?: false;\n};\n\n/**\n * A route object represents a logical route, with (optionally) its child\n * routes organized in a tree-like structure.\n */\nexport type AgnosticRouteObject =\n | AgnosticIndexRouteObject\n | AgnosticNonIndexRouteObject;\n\nexport type AgnosticDataIndexRouteObject = AgnosticIndexRouteObject & {\n id: string;\n};\n\nexport type AgnosticDataNonIndexRouteObject = AgnosticNonIndexRouteObject & {\n children?: AgnosticDataRouteObject[];\n id: string;\n};\n\n/**\n * A data route object, which is just a RouteObject with a required unique ID\n */\nexport type AgnosticDataRouteObject =\n | AgnosticDataIndexRouteObject\n | AgnosticDataNonIndexRouteObject;\n\n// Recursive helper for finding path parameters in the absence of wildcards\ntype _PathParam =\n // split path into individual path segments\n Path extends `${infer L}/${infer R}`\n ? _PathParam | _PathParam\n : // find params after `:`\n Path extends `:${infer Param}`\n ? Param extends `${infer Optional}?`\n ? Optional\n : Param\n : // otherwise, there aren't any params present\n never;\n\n/**\n * Examples:\n * \"/a/b/*\" -> \"*\"\n * \":a\" -> \"a\"\n * \"/a/:b\" -> \"b\"\n * \"/a/blahblahblah:b\" -> \"b\"\n * \"/:a/:b\" -> \"a\" | \"b\"\n * \"/:a/b/:c/*\" -> \"a\" | \"c\" | \"*\"\n */\ntype PathParam =\n // check if path is just a wildcard\n Path extends \"*\"\n ? \"*\"\n : // look for wildcard at the end of the path\n Path extends `${infer Rest}/*`\n ? \"*\" | _PathParam\n : // look for params in the absence of wildcards\n _PathParam;\n\n// Attempt to parse the given string segment. If it fails, then just return the\n// plain string type as a default fallback. Otherwise return the union of the\n// parsed string literals that were referenced as dynamic segments in the route.\nexport type ParamParseKey =\n // if could not find path params, fallback to `string`\n [PathParam] extends [never] ? string : PathParam;\n\n/**\n * The parameters that were parsed from the URL path.\n */\nexport type Params = {\n readonly [key in Key]: string | undefined;\n};\n\n/**\n * A RouteMatch contains info about how a route matched a URL.\n */\nexport interface AgnosticRouteMatch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The route object that was used to match.\n */\n route: RouteObjectType;\n}\n\nexport interface AgnosticDataRouteMatch\n extends AgnosticRouteMatch {}\n\nfunction isIndexRoute(\n route: AgnosticRouteObject\n): route is AgnosticIndexRouteObject {\n return route.index === true;\n}\n\n// Walk the route tree generating unique IDs where necessary so we are working\n// solely with AgnosticDataRouteObject's within the Router\nexport function convertRoutesToDataRoutes(\n routes: AgnosticRouteObject[],\n parentPath: number[] = [],\n allIds: Set = new Set()\n): AgnosticDataRouteObject[] {\n return routes.map((route, index) => {\n let treePath = [...parentPath, index];\n let id = typeof route.id === \"string\" ? route.id : treePath.join(\"-\");\n invariant(\n route.index !== true || !route.children,\n `Cannot specify children on an index route`\n );\n invariant(\n !allIds.has(id),\n `Found a route id collision on id \"${id}\". Route ` +\n \"id's must be globally unique within Data Router usages\"\n );\n allIds.add(id);\n\n if (isIndexRoute(route)) {\n let indexRoute: AgnosticDataIndexRouteObject = { ...route, id };\n return indexRoute;\n } else {\n let pathOrLayoutRoute: AgnosticDataNonIndexRouteObject = {\n ...route,\n id,\n children: route.children\n ? convertRoutesToDataRoutes(route.children, treePath, allIds)\n : undefined,\n };\n return pathOrLayoutRoute;\n }\n });\n}\n\n/**\n * Matches the given routes to a location and returns the match data.\n *\n * @see https://reactrouter.com/utils/match-routes\n */\nexport function matchRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n locationArg: Partial | string,\n basename = \"/\"\n): AgnosticRouteMatch[] | null {\n let location =\n typeof locationArg === \"string\" ? parsePath(locationArg) : locationArg;\n\n let pathname = stripBasename(location.pathname || \"/\", basename);\n\n if (pathname == null) {\n return null;\n }\n\n let branches = flattenRoutes(routes);\n rankRouteBranches(branches);\n\n let matches = null;\n for (let i = 0; matches == null && i < branches.length; ++i) {\n matches = matchRouteBranch(\n branches[i],\n // Incoming pathnames are generally encoded from either window.location\n // or from router.navigate, but we want to match against the unencoded\n // paths in the route definitions. Memory router locations won't be\n // encoded here but there also shouldn't be anything to decode so this\n // should be a safe operation. This avoids needing matchRoutes to be\n // history-aware.\n safelyDecodeURI(pathname)\n );\n }\n\n return matches;\n}\n\ninterface RouteMeta<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n relativePath: string;\n caseSensitive: boolean;\n childrenIndex: number;\n route: RouteObjectType;\n}\n\ninterface RouteBranch<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n> {\n path: string;\n score: number;\n routesMeta: RouteMeta[];\n}\n\nfunction flattenRoutes<\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n routes: RouteObjectType[],\n branches: RouteBranch[] = [],\n parentsMeta: RouteMeta[] = [],\n parentPath = \"\"\n): RouteBranch[] {\n let flattenRoute = (\n route: RouteObjectType,\n index: number,\n relativePath?: string\n ) => {\n let meta: RouteMeta = {\n relativePath:\n relativePath === undefined ? route.path || \"\" : relativePath,\n caseSensitive: route.caseSensitive === true,\n childrenIndex: index,\n route,\n };\n\n if (meta.relativePath.startsWith(\"/\")) {\n invariant(\n meta.relativePath.startsWith(parentPath),\n `Absolute route path \"${meta.relativePath}\" nested under path ` +\n `\"${parentPath}\" is not valid. An absolute child route path ` +\n `must start with the combined path of all its parent routes.`\n );\n\n meta.relativePath = meta.relativePath.slice(parentPath.length);\n }\n\n let path = joinPaths([parentPath, meta.relativePath]);\n let routesMeta = parentsMeta.concat(meta);\n\n // Add the children before adding this route to the array so we traverse the\n // route tree depth-first and child routes appear before their parents in\n // the \"flattened\" version.\n if (route.children && route.children.length > 0) {\n invariant(\n // Our types know better, but runtime JS may not!\n // @ts-expect-error\n route.index !== true,\n `Index routes must not have child routes. Please remove ` +\n `all child routes from route path \"${path}\".`\n );\n\n flattenRoutes(route.children, branches, routesMeta, path);\n }\n\n // Routes without a path shouldn't ever match by themselves unless they are\n // index routes, so don't add them to the list of possible branches.\n if (route.path == null && !route.index) {\n return;\n }\n\n branches.push({\n path,\n score: computeScore(path, route.index),\n routesMeta,\n });\n };\n routes.forEach((route, index) => {\n // coarse-grain check for optional params\n if (route.path === \"\" || !route.path?.includes(\"?\")) {\n flattenRoute(route, index);\n } else {\n for (let exploded of explodeOptionalSegments(route.path)) {\n flattenRoute(route, index, exploded);\n }\n }\n });\n\n return branches;\n}\n\n/**\n * Computes all combinations of optional path segments for a given path,\n * excluding combinations that are ambiguous and of lower priority.\n *\n * For example, `/one/:two?/three/:four?/:five?` explodes to:\n * - `/one/three`\n * - `/one/:two/three`\n * - `/one/three/:four`\n * - `/one/three/:five`\n * - `/one/:two/three/:four`\n * - `/one/:two/three/:five`\n * - `/one/three/:four/:five`\n * - `/one/:two/three/:four/:five`\n */\nfunction explodeOptionalSegments(path: string): string[] {\n let segments = path.split(\"/\");\n if (segments.length === 0) return [];\n\n let [first, ...rest] = segments;\n\n // Optional path segments are denoted by a trailing `?`\n let isOptional = first.endsWith(\"?\");\n // Compute the corresponding required segment: `foo?` -> `foo`\n let required = first.replace(/\\?$/, \"\");\n\n if (rest.length === 0) {\n // Intepret empty string as omitting an optional segment\n // `[\"one\", \"\", \"three\"]` corresponds to omitting `:two` from `/one/:two?/three` -> `/one/three`\n return isOptional ? [required, \"\"] : [required];\n }\n\n let restExploded = explodeOptionalSegments(rest.join(\"/\"));\n\n let result: string[] = [];\n\n // All child paths with the prefix. Do this for all children before the\n // optional version for all children so we get consistent ordering where the\n // parent optional aspect is preferred as required. Otherwise, we can get\n // child sections interspersed where deeper optional segments are higher than\n // parent optional segments, where for example, /:two would explodes _earlier_\n // then /:one. By always including the parent as required _for all children_\n // first, we avoid this issue\n result.push(\n ...restExploded.map((subpath) =>\n subpath === \"\" ? required : [required, subpath].join(\"/\")\n )\n );\n\n // Then if this is an optional value, add all child versions without\n if (isOptional) {\n result.push(...restExploded);\n }\n\n // for absolute paths, ensure `/` instead of empty segment\n return result.map((exploded) =>\n path.startsWith(\"/\") && exploded === \"\" ? \"/\" : exploded\n );\n}\n\nfunction rankRouteBranches(branches: RouteBranch[]): void {\n branches.sort((a, b) =>\n a.score !== b.score\n ? b.score - a.score // Higher score first\n : compareIndexes(\n a.routesMeta.map((meta) => meta.childrenIndex),\n b.routesMeta.map((meta) => meta.childrenIndex)\n )\n );\n}\n\nconst paramRe = /^:\\w+$/;\nconst dynamicSegmentValue = 3;\nconst indexRouteValue = 2;\nconst emptySegmentValue = 1;\nconst staticSegmentValue = 10;\nconst splatPenalty = -2;\nconst isSplat = (s: string) => s === \"*\";\n\nfunction computeScore(path: string, index: boolean | undefined): number {\n let segments = path.split(\"/\");\n let initialScore = segments.length;\n if (segments.some(isSplat)) {\n initialScore += splatPenalty;\n }\n\n if (index) {\n initialScore += indexRouteValue;\n }\n\n return segments\n .filter((s) => !isSplat(s))\n .reduce(\n (score, segment) =>\n score +\n (paramRe.test(segment)\n ? dynamicSegmentValue\n : segment === \"\"\n ? emptySegmentValue\n : staticSegmentValue),\n initialScore\n );\n}\n\nfunction compareIndexes(a: number[], b: number[]): number {\n let siblings =\n a.length === b.length && a.slice(0, -1).every((n, i) => n === b[i]);\n\n return siblings\n ? // If two routes are siblings, we should try to match the earlier sibling\n // first. This allows people to have fine-grained control over the matching\n // behavior by simply putting routes with identical paths in the order they\n // want them tried.\n a[a.length - 1] - b[b.length - 1]\n : // Otherwise, it doesn't really make sense to rank non-siblings by index,\n // so they sort equally.\n 0;\n}\n\nfunction matchRouteBranch<\n ParamKey extends string = string,\n RouteObjectType extends AgnosticRouteObject = AgnosticRouteObject\n>(\n branch: RouteBranch,\n pathname: string\n): AgnosticRouteMatch[] | null {\n let { routesMeta } = branch;\n\n let matchedParams = {};\n let matchedPathname = \"/\";\n let matches: AgnosticRouteMatch[] = [];\n for (let i = 0; i < routesMeta.length; ++i) {\n let meta = routesMeta[i];\n let end = i === routesMeta.length - 1;\n let remainingPathname =\n matchedPathname === \"/\"\n ? pathname\n : pathname.slice(matchedPathname.length) || \"/\";\n let match = matchPath(\n { path: meta.relativePath, caseSensitive: meta.caseSensitive, end },\n remainingPathname\n );\n\n if (!match) return null;\n\n Object.assign(matchedParams, match.params);\n\n let route = meta.route;\n\n matches.push({\n // TODO: Can this as be avoided?\n params: matchedParams as Params,\n pathname: joinPaths([matchedPathname, match.pathname]),\n pathnameBase: normalizePathname(\n joinPaths([matchedPathname, match.pathnameBase])\n ),\n route,\n });\n\n if (match.pathnameBase !== \"/\") {\n matchedPathname = joinPaths([matchedPathname, match.pathnameBase]);\n }\n }\n\n return matches;\n}\n\n/**\n * Returns a path with params interpolated.\n *\n * @see https://reactrouter.com/utils/generate-path\n */\nexport function generatePath(\n originalPath: Path,\n params: {\n [key in PathParam]: string | null;\n } = {} as any\n): string {\n let path = originalPath;\n if (path.endsWith(\"*\") && path !== \"*\" && !path.endsWith(\"/*\")) {\n warning(\n false,\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n path = path.replace(/\\*$/, \"/*\") as Path;\n }\n\n return (\n path\n .replace(\n /^:(\\w+)(\\??)/g,\n (_, key: PathParam, optional: string | undefined) => {\n let param = params[key];\n if (optional === \"?\") {\n return param == null ? \"\" : param;\n }\n if (param == null) {\n invariant(false, `Missing \":${key}\" param`);\n }\n return param;\n }\n )\n .replace(\n /\\/:(\\w+)(\\??)/g,\n (_, key: PathParam, optional: string | undefined) => {\n let param = params[key];\n if (optional === \"?\") {\n return param == null ? \"\" : `/${param}`;\n }\n if (param == null) {\n invariant(false, `Missing \":${key}\" param`);\n }\n return `/${param}`;\n }\n )\n // Remove any optional markers from optional static segments\n .replace(/\\?/g, \"\")\n .replace(/(\\/?)\\*/, (_, prefix, __, str) => {\n const star = \"*\" as PathParam;\n\n if (params[star] == null) {\n // If no splat was provided, trim the trailing slash _unless_ it's\n // the entire path\n return str === \"/*\" ? \"/\" : \"\";\n }\n\n // Apply the splat\n return `${prefix}${params[star]}`;\n })\n );\n}\n\n/**\n * A PathPattern is used to match on some portion of a URL pathname.\n */\nexport interface PathPattern {\n /**\n * A string to match against a URL pathname. May contain `:id`-style segments\n * to indicate placeholders for dynamic parameters. May also end with `/*` to\n * indicate matching the rest of the URL pathname.\n */\n path: Path;\n /**\n * Should be `true` if the static portions of the `path` should be matched in\n * the same case.\n */\n caseSensitive?: boolean;\n /**\n * Should be `true` if this pattern should match the entire URL pathname.\n */\n end?: boolean;\n}\n\n/**\n * A PathMatch contains info about how a PathPattern matched on a URL pathname.\n */\nexport interface PathMatch {\n /**\n * The names and values of dynamic parameters in the URL.\n */\n params: Params;\n /**\n * The portion of the URL pathname that was matched.\n */\n pathname: string;\n /**\n * The portion of the URL pathname that was matched before child routes.\n */\n pathnameBase: string;\n /**\n * The pattern that was used to match.\n */\n pattern: PathPattern;\n}\n\ntype Mutable = {\n -readonly [P in keyof T]: T[P];\n};\n\n/**\n * Performs pattern matching on a URL pathname and returns information about\n * the match.\n *\n * @see https://reactrouter.com/utils/match-path\n */\nexport function matchPath<\n ParamKey extends ParamParseKey,\n Path extends string\n>(\n pattern: PathPattern | Path,\n pathname: string\n): PathMatch | null {\n if (typeof pattern === \"string\") {\n pattern = { path: pattern, caseSensitive: false, end: true };\n }\n\n let [matcher, paramNames] = compilePath(\n pattern.path,\n pattern.caseSensitive,\n pattern.end\n );\n\n let match = pathname.match(matcher);\n if (!match) return null;\n\n let matchedPathname = match[0];\n let pathnameBase = matchedPathname.replace(/(.)\\/+$/, \"$1\");\n let captureGroups = match.slice(1);\n let params: Params = paramNames.reduce>(\n (memo, paramName, index) => {\n // We need to compute the pathnameBase here using the raw splat value\n // instead of using params[\"*\"] later because it will be decoded then\n if (paramName === \"*\") {\n let splatValue = captureGroups[index] || \"\";\n pathnameBase = matchedPathname\n .slice(0, matchedPathname.length - splatValue.length)\n .replace(/(.)\\/+$/, \"$1\");\n }\n\n memo[paramName] = safelyDecodeURIComponent(\n captureGroups[index] || \"\",\n paramName\n );\n return memo;\n },\n {}\n );\n\n return {\n params,\n pathname: matchedPathname,\n pathnameBase,\n pattern,\n };\n}\n\nfunction compilePath(\n path: string,\n caseSensitive = false,\n end = true\n): [RegExp, string[]] {\n warning(\n path === \"*\" || !path.endsWith(\"*\") || path.endsWith(\"/*\"),\n `Route path \"${path}\" will be treated as if it were ` +\n `\"${path.replace(/\\*$/, \"/*\")}\" because the \\`*\\` character must ` +\n `always follow a \\`/\\` in the pattern. To get rid of this warning, ` +\n `please change the route path to \"${path.replace(/\\*$/, \"/*\")}\".`\n );\n\n let paramNames: string[] = [];\n let regexpSource =\n \"^\" +\n path\n .replace(/\\/*\\*?$/, \"\") // Ignore trailing / and /*, we'll handle it below\n .replace(/^\\/*/, \"/\") // Make sure it has a leading /\n .replace(/[\\\\.*+^$?{}|()[\\]]/g, \"\\\\$&\") // Escape special regex chars\n .replace(/\\/:(\\w+)/g, (_: string, paramName: string) => {\n paramNames.push(paramName);\n return \"/([^\\\\/]+)\";\n });\n\n if (path.endsWith(\"*\")) {\n paramNames.push(\"*\");\n regexpSource +=\n path === \"*\" || path === \"/*\"\n ? \"(.*)$\" // Already matched the initial /, just match the rest\n : \"(?:\\\\/(.+)|\\\\/*)$\"; // Don't include the / in params[\"*\"]\n } else if (end) {\n // When matching to the end, ignore trailing slashes\n regexpSource += \"\\\\/*$\";\n } else if (path !== \"\" && path !== \"/\") {\n // If our path is non-empty and contains anything beyond an initial slash,\n // then we have _some_ form of path in our regex so we should expect to\n // match only if we find the end of this path segment. Look for an optional\n // non-captured trailing slash (to match a portion of the URL) or the end\n // of the path (if we've matched to the end). We used to do this with a\n // word boundary but that gives false positives on routes like\n // /user-preferences since `-` counts as a word boundary.\n regexpSource += \"(?:(?=\\\\/|$))\";\n } else {\n // Nothing to match for \"\" or \"/\"\n }\n\n let matcher = new RegExp(regexpSource, caseSensitive ? undefined : \"i\");\n\n return [matcher, paramNames];\n}\n\nfunction safelyDecodeURI(value: string) {\n try {\n return decodeURI(value);\n } catch (error) {\n warning(\n false,\n `The URL path \"${value}\" could not be decoded because it is is a ` +\n `malformed URL segment. This is probably due to a bad percent ` +\n `encoding (${error}).`\n );\n\n return value;\n }\n}\n\nfunction safelyDecodeURIComponent(value: string, paramName: string) {\n try {\n return decodeURIComponent(value);\n } catch (error) {\n warning(\n false,\n `The value for the URL param \"${paramName}\" will not be decoded because` +\n ` the string \"${value}\" is a malformed URL segment. This is probably` +\n ` due to a bad percent encoding (${error}).`\n );\n\n return value;\n }\n}\n\n/**\n * @private\n */\nexport function stripBasename(\n pathname: string,\n basename: string\n): string | null {\n if (basename === \"/\") return pathname;\n\n if (!pathname.toLowerCase().startsWith(basename.toLowerCase())) {\n return null;\n }\n\n // We want to leave trailing slash behavior in the user's control, so if they\n // specify a basename with a trailing slash, we should support it\n let startIndex = basename.endsWith(\"/\")\n ? basename.length - 1\n : basename.length;\n let nextChar = pathname.charAt(startIndex);\n if (nextChar && nextChar !== \"/\") {\n // pathname does not start with basename/\n return null;\n }\n\n return pathname.slice(startIndex) || \"/\";\n}\n\n/**\n * @private\n */\nexport function warning(cond: any, message: string): void {\n if (!cond) {\n // eslint-disable-next-line no-console\n if (typeof console !== \"undefined\") console.warn(message);\n\n try {\n // Welcome to debugging @remix-run/router!\n //\n // This error is thrown as a convenience so you can more easily\n // find the source for a warning that appears in the console by\n // enabling \"pause on exceptions\" in your JavaScript debugger.\n throw new Error(message);\n // eslint-disable-next-line no-empty\n } catch (e) {}\n }\n}\n\n/**\n * Returns a resolved path object relative to the given pathname.\n *\n * @see https://reactrouter.com/utils/resolve-path\n */\nexport function resolvePath(to: To, fromPathname = \"/\"): Path {\n let {\n pathname: toPathname,\n search = \"\",\n hash = \"\",\n } = typeof to === \"string\" ? parsePath(to) : to;\n\n let pathname = toPathname\n ? toPathname.startsWith(\"/\")\n ? toPathname\n : resolvePathname(toPathname, fromPathname)\n : fromPathname;\n\n return {\n pathname,\n search: normalizeSearch(search),\n hash: normalizeHash(hash),\n };\n}\n\nfunction resolvePathname(relativePath: string, fromPathname: string): string {\n let segments = fromPathname.replace(/\\/+$/, \"\").split(\"/\");\n let relativeSegments = relativePath.split(\"/\");\n\n relativeSegments.forEach((segment) => {\n if (segment === \"..\") {\n // Keep the root \"\" segment so the pathname starts at /\n if (segments.length > 1) segments.pop();\n } else if (segment !== \".\") {\n segments.push(segment);\n }\n });\n\n return segments.length > 1 ? segments.join(\"/\") : \"/\";\n}\n\nfunction getInvalidPathError(\n char: string,\n field: string,\n dest: string,\n path: Partial\n) {\n return (\n `Cannot include a '${char}' character in a manually specified ` +\n `\\`to.${field}\\` field [${JSON.stringify(\n path\n )}]. Please separate it out to the ` +\n `\\`to.${dest}\\` field. Alternatively you may provide the full path as ` +\n `a string in and the router will parse it for you.`\n );\n}\n\n/**\n * @private\n *\n * When processing relative navigation we want to ignore ancestor routes that\n * do not contribute to the path, such that index/pathless layout routes don't\n * interfere.\n *\n * For example, when moving a route element into an index route and/or a\n * pathless layout route, relative link behavior contained within should stay\n * the same. Both of the following examples should link back to the root:\n *\n * \n * \n * \n *\n * \n * \n * }> // <-- Does not contribute\n * // <-- Does not contribute\n * \n * \n */\nexport function getPathContributingMatches<\n T extends AgnosticRouteMatch = AgnosticRouteMatch\n>(matches: T[]) {\n return matches.filter(\n (match, index) =>\n index === 0 || (match.route.path && match.route.path.length > 0)\n );\n}\n\n/**\n * @private\n */\nexport function resolveTo(\n toArg: To,\n routePathnames: string[],\n locationPathname: string,\n isPathRelative = false\n): Path {\n let to: Partial;\n if (typeof toArg === \"string\") {\n to = parsePath(toArg);\n } else {\n to = { ...toArg };\n\n invariant(\n !to.pathname || !to.pathname.includes(\"?\"),\n getInvalidPathError(\"?\", \"pathname\", \"search\", to)\n );\n invariant(\n !to.pathname || !to.pathname.includes(\"#\"),\n getInvalidPathError(\"#\", \"pathname\", \"hash\", to)\n );\n invariant(\n !to.search || !to.search.includes(\"#\"),\n getInvalidPathError(\"#\", \"search\", \"hash\", to)\n );\n }\n\n let isEmptyPath = toArg === \"\" || to.pathname === \"\";\n let toPathname = isEmptyPath ? \"/\" : to.pathname;\n\n let from: string;\n\n // Routing is relative to the current pathname if explicitly requested.\n //\n // If a pathname is explicitly provided in `to`, it should be relative to the\n // route context. This is explained in `Note on `` values` in our\n // migration guide from v5 as a means of disambiguation between `to` values\n // that begin with `/` and those that do not. However, this is problematic for\n // `to` values that do not provide a pathname. `to` can simply be a search or\n // hash string, in which case we should assume that the navigation is relative\n // to the current location's pathname and *not* the route pathname.\n if (isPathRelative || toPathname == null) {\n from = locationPathname;\n } else {\n let routePathnameIndex = routePathnames.length - 1;\n\n if (toPathname.startsWith(\"..\")) {\n let toSegments = toPathname.split(\"/\");\n\n // Each leading .. segment means \"go up one route\" instead of \"go up one\n // URL segment\". This is a key difference from how works and a\n // major reason we call this a \"to\" value instead of a \"href\".\n while (toSegments[0] === \"..\") {\n toSegments.shift();\n routePathnameIndex -= 1;\n }\n\n to.pathname = toSegments.join(\"/\");\n }\n\n // If there are more \"..\" segments than parent routes, resolve relative to\n // the root / URL.\n from = routePathnameIndex >= 0 ? routePathnames[routePathnameIndex] : \"/\";\n }\n\n let path = resolvePath(to, from);\n\n // Ensure the pathname has a trailing slash if the original \"to\" had one\n let hasExplicitTrailingSlash =\n toPathname && toPathname !== \"/\" && toPathname.endsWith(\"/\");\n // Or if this was a link to the current path which has a trailing slash\n let hasCurrentTrailingSlash =\n (isEmptyPath || toPathname === \".\") && locationPathname.endsWith(\"/\");\n if (\n !path.pathname.endsWith(\"/\") &&\n (hasExplicitTrailingSlash || hasCurrentTrailingSlash)\n ) {\n path.pathname += \"/\";\n }\n\n return path;\n}\n\n/**\n * @private\n */\nexport function getToPathname(to: To): string | undefined {\n // Empty strings should be treated the same as / paths\n return to === \"\" || (to as Path).pathname === \"\"\n ? \"/\"\n : typeof to === \"string\"\n ? parsePath(to).pathname\n : to.pathname;\n}\n\n/**\n * @private\n */\nexport const joinPaths = (paths: string[]): string =>\n paths.join(\"/\").replace(/\\/\\/+/g, \"/\");\n\n/**\n * @private\n */\nexport const normalizePathname = (pathname: string): string =>\n pathname.replace(/\\/+$/, \"\").replace(/^\\/*/, \"/\");\n\n/**\n * @private\n */\nexport const normalizeSearch = (search: string): string =>\n !search || search === \"?\"\n ? \"\"\n : search.startsWith(\"?\")\n ? search\n : \"?\" + search;\n\n/**\n * @private\n */\nexport const normalizeHash = (hash: string): string =>\n !hash || hash === \"#\" ? \"\" : hash.startsWith(\"#\") ? hash : \"#\" + hash;\n\nexport type JsonFunction = (\n data: Data,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * This is a shortcut for creating `application/json` responses. Converts `data`\n * to JSON and sets the `Content-Type` header.\n */\nexport const json: JsonFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n let headers = new Headers(responseInit.headers);\n if (!headers.has(\"Content-Type\")) {\n headers.set(\"Content-Type\", \"application/json; charset=utf-8\");\n }\n\n return new Response(JSON.stringify(data), {\n ...responseInit,\n headers,\n });\n};\n\nexport interface TrackedPromise extends Promise {\n _tracked?: boolean;\n _data?: any;\n _error?: any;\n}\n\nexport class AbortedDeferredError extends Error {}\n\nexport class DeferredData {\n private pendingKeysSet: Set = new Set();\n private controller: AbortController;\n private abortPromise: Promise;\n private unlistenAbortSignal: () => void;\n private subscribers: Set<(aborted: boolean, settledKey?: string) => void> =\n new Set();\n data: Record;\n init?: ResponseInit;\n deferredKeys: string[] = [];\n\n constructor(data: Record, responseInit?: ResponseInit) {\n invariant(\n data && typeof data === \"object\" && !Array.isArray(data),\n \"defer() only accepts plain objects\"\n );\n\n // Set up an AbortController + Promise we can race against to exit early\n // cancellation\n let reject: (e: AbortedDeferredError) => void;\n this.abortPromise = new Promise((_, r) => (reject = r));\n this.controller = new AbortController();\n let onAbort = () =>\n reject(new AbortedDeferredError(\"Deferred data aborted\"));\n this.unlistenAbortSignal = () =>\n this.controller.signal.removeEventListener(\"abort\", onAbort);\n this.controller.signal.addEventListener(\"abort\", onAbort);\n\n this.data = Object.entries(data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: this.trackPromise(key, value),\n }),\n {}\n );\n\n if (this.done) {\n // All incoming values were resolved\n this.unlistenAbortSignal();\n }\n\n this.init = responseInit;\n }\n\n private trackPromise(\n key: string,\n value: Promise | unknown\n ): TrackedPromise | unknown {\n if (!(value instanceof Promise)) {\n return value;\n }\n\n this.deferredKeys.push(key);\n this.pendingKeysSet.add(key);\n\n // We store a little wrapper promise that will be extended with\n // _data/_error props upon resolve/reject\n let promise: TrackedPromise = Promise.race([value, this.abortPromise]).then(\n (data) => this.onSettle(promise, key, null, data as unknown),\n (error) => this.onSettle(promise, key, error as unknown)\n );\n\n // Register rejection listeners to avoid uncaught promise rejections on\n // errors or aborted deferred values\n promise.catch(() => {});\n\n Object.defineProperty(promise, \"_tracked\", { get: () => true });\n return promise;\n }\n\n private onSettle(\n promise: TrackedPromise,\n key: string,\n error: unknown,\n data?: unknown\n ): unknown {\n if (\n this.controller.signal.aborted &&\n error instanceof AbortedDeferredError\n ) {\n this.unlistenAbortSignal();\n Object.defineProperty(promise, \"_error\", { get: () => error });\n return Promise.reject(error);\n }\n\n this.pendingKeysSet.delete(key);\n\n if (this.done) {\n // Nothing left to abort!\n this.unlistenAbortSignal();\n }\n\n if (error) {\n Object.defineProperty(promise, \"_error\", { get: () => error });\n this.emit(false, key);\n return Promise.reject(error);\n }\n\n Object.defineProperty(promise, \"_data\", { get: () => data });\n this.emit(false, key);\n return data;\n }\n\n private emit(aborted: boolean, settledKey?: string) {\n this.subscribers.forEach((subscriber) => subscriber(aborted, settledKey));\n }\n\n subscribe(fn: (aborted: boolean, settledKey?: string) => void) {\n this.subscribers.add(fn);\n return () => this.subscribers.delete(fn);\n }\n\n cancel() {\n this.controller.abort();\n this.pendingKeysSet.forEach((v, k) => this.pendingKeysSet.delete(k));\n this.emit(true);\n }\n\n async resolveData(signal: AbortSignal) {\n let aborted = false;\n if (!this.done) {\n let onAbort = () => this.cancel();\n signal.addEventListener(\"abort\", onAbort);\n aborted = await new Promise((resolve) => {\n this.subscribe((aborted) => {\n signal.removeEventListener(\"abort\", onAbort);\n if (aborted || this.done) {\n resolve(aborted);\n }\n });\n });\n }\n return aborted;\n }\n\n get done() {\n return this.pendingKeysSet.size === 0;\n }\n\n get unwrappedData() {\n invariant(\n this.data !== null && this.done,\n \"Can only unwrap data on initialized and settled deferreds\"\n );\n\n return Object.entries(this.data).reduce(\n (acc, [key, value]) =>\n Object.assign(acc, {\n [key]: unwrapTrackedPromise(value),\n }),\n {}\n );\n }\n\n get pendingKeys() {\n return Array.from(this.pendingKeysSet);\n }\n}\n\nfunction isTrackedPromise(value: any): value is TrackedPromise {\n return (\n value instanceof Promise && (value as TrackedPromise)._tracked === true\n );\n}\n\nfunction unwrapTrackedPromise(value: any) {\n if (!isTrackedPromise(value)) {\n return value;\n }\n\n if (value._error) {\n throw value._error;\n }\n return value._data;\n}\n\nexport type DeferFunction = (\n data: Record,\n init?: number | ResponseInit\n) => DeferredData;\n\nexport const defer: DeferFunction = (data, init = {}) => {\n let responseInit = typeof init === \"number\" ? { status: init } : init;\n\n return new DeferredData(data, responseInit);\n};\n\nexport type RedirectFunction = (\n url: string,\n init?: number | ResponseInit\n) => Response;\n\n/**\n * A redirect response. Sets the status code and the `Location` header.\n * Defaults to \"302 Found\".\n */\nexport const redirect: RedirectFunction = (url, init = 302) => {\n let responseInit = init;\n if (typeof responseInit === \"number\") {\n responseInit = { status: responseInit };\n } else if (typeof responseInit.status === \"undefined\") {\n responseInit.status = 302;\n }\n\n let headers = new Headers(responseInit.headers);\n headers.set(\"Location\", url);\n\n return new Response(null, {\n ...responseInit,\n headers,\n });\n};\n\n/**\n * @private\n * Utility class we use to hold auto-unwrapped 4xx/5xx Response bodies\n */\nexport class ErrorResponse {\n status: number;\n statusText: string;\n data: any;\n error?: Error;\n internal: boolean;\n\n constructor(\n status: number,\n statusText: string | undefined,\n data: any,\n internal = false\n ) {\n this.status = status;\n this.statusText = statusText || \"\";\n this.internal = internal;\n if (data instanceof Error) {\n this.data = data.toString();\n this.error = data;\n } else {\n this.data = data;\n }\n }\n}\n\n/**\n * Check if the given error is an ErrorResponse generated from a 4xx/5xx\n * Response thrown from an action/loader\n */\nexport function isRouteErrorResponse(error: any): error is ErrorResponse {\n return (\n error != null &&\n typeof error.status === \"number\" &&\n typeof error.statusText === \"string\" &&\n typeof error.internal === \"boolean\" &&\n \"data\" in error\n );\n}\n","import type { History, Location, Path, To } from \"./history\";\nimport {\n Action as HistoryAction,\n createLocation,\n createPath,\n invariant,\n parsePath,\n} from \"./history\";\nimport type {\n DataResult,\n AgnosticDataRouteMatch,\n AgnosticDataRouteObject,\n DeferredResult,\n ErrorResult,\n FormEncType,\n FormMethod,\n RedirectResult,\n RouteData,\n AgnosticRouteObject,\n Submission,\n SuccessResult,\n AgnosticRouteMatch,\n MutationFormMethod,\n ShouldRevalidateFunction,\n} from \"./utils\";\nimport {\n DeferredData,\n ErrorResponse,\n ResultType,\n convertRoutesToDataRoutes,\n getPathContributingMatches,\n isRouteErrorResponse,\n joinPaths,\n matchRoutes,\n resolveTo,\n warning,\n} from \"./utils\";\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Types and Constants\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * A Router instance manages all navigation and data loading/mutations\n */\nexport interface Router {\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the basename for the router\n */\n get basename(): RouterInit[\"basename\"];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the current state of the router\n */\n get state(): RouterState;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Return the routes for this router instance\n */\n get routes(): AgnosticDataRouteObject[];\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Initialize the router, including adding history listeners and kicking off\n * initial data fetches. Returns a function to cleanup listeners and abort\n * any in-progress loads\n */\n initialize(): Router;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Subscribe to router.state updates\n *\n * @param fn function to call with the new state\n */\n subscribe(fn: RouterSubscriber): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Enable scroll restoration behavior in the router\n *\n * @param savedScrollPositions Object that will manage positions, in case\n * it's being restored from sessionStorage\n * @param getScrollPosition Function to get the active Y scroll position\n * @param getKey Function to get the key to use for restoration\n */\n enableScrollRestoration(\n savedScrollPositions: Record,\n getScrollPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ): () => void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Navigate forward/backward in the history stack\n * @param to Delta to move in the history stack\n */\n navigate(to: number): Promise;\n\n /**\n * Navigate to the given path\n * @param to Path to navigate to\n * @param opts Navigation options (method, submission, etc.)\n */\n navigate(to: To, opts?: RouterNavigateOptions): Promise;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a fetcher load/submission\n *\n * @param key Fetcher key\n * @param routeId Route that owns the fetcher\n * @param href href to fetch\n * @param opts Fetcher options, (method, submission, etc.)\n */\n fetch(\n key: string,\n routeId: string,\n href: string,\n opts?: RouterNavigateOptions\n ): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Trigger a revalidation of all current route loaders and fetcher loads\n */\n revalidate(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to create an href for the given location\n * @param location\n */\n createHref(location: Location | URL): string;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Utility function to URL encode a destination path according to the internal\n * history implementation\n * @param to\n */\n encodeLocation(to: To): Path;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get/create a fetcher for the given key\n * @param key\n */\n getFetcher(key?: string): Fetcher;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete the fetcher for a given key\n * @param key\n */\n deleteFetcher(key?: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Cleanup listeners and abort any in-progress loads\n */\n dispose(): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Get a navigation blocker\n * @param key The identifier for the blocker\n * @param fn The blocker function implementation\n */\n getBlocker(key: string, fn: BlockerFunction): Blocker;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Delete a navigation blocker\n * @param key The identifier for the blocker\n */\n deleteBlocker(key: string): void;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal fetch AbortControllers accessed by unit tests\n */\n _internalFetchControllers: Map;\n\n /**\n * @internal\n * PRIVATE - DO NOT USE\n *\n * Internal pending DeferredData instances accessed by unit tests\n */\n _internalActiveDeferreds: Map;\n}\n\n/**\n * State maintained internally by the router. During a navigation, all states\n * reflect the the \"old\" location unless otherwise noted.\n */\nexport interface RouterState {\n /**\n * The action of the most recent navigation\n */\n historyAction: HistoryAction;\n\n /**\n * The current location reflected by the router\n */\n location: Location;\n\n /**\n * The current set of route matches\n */\n matches: AgnosticDataRouteMatch[];\n\n /**\n * Tracks whether we've completed our initial data load\n */\n initialized: boolean;\n\n /**\n * Current scroll position we should start at for a new view\n * - number -> scroll position to restore to\n * - false -> do not restore scroll at all (used during submissions)\n * - null -> don't have a saved position, scroll to hash or top of page\n */\n restoreScrollPosition: number | false | null;\n\n /**\n * Indicate whether this navigation should skip resetting the scroll position\n * if we are unable to restore the scroll position\n */\n preventScrollReset: boolean;\n\n /**\n * Tracks the state of the current navigation\n */\n navigation: Navigation;\n\n /**\n * Tracks any in-progress revalidations\n */\n revalidation: RevalidationState;\n\n /**\n * Data from the loaders for the current matches\n */\n loaderData: RouteData;\n\n /**\n * Data from the action for the current matches\n */\n actionData: RouteData | null;\n\n /**\n * Errors caught from loaders for the current matches\n */\n errors: RouteData | null;\n\n /**\n * Map of current fetchers\n */\n fetchers: Map;\n\n /**\n * Map of current blockers\n */\n blockers: Map;\n}\n\n/**\n * Data that can be passed into hydrate a Router from SSR\n */\nexport type HydrationState = Partial<\n Pick\n>;\n\n/**\n * Initialization options for createRouter\n */\nexport interface RouterInit {\n basename?: string;\n routes: AgnosticRouteObject[];\n history: History;\n hydrationData?: HydrationState;\n}\n\n/**\n * State returned from a server-side query() call\n */\nexport interface StaticHandlerContext {\n basename: Router[\"basename\"];\n location: RouterState[\"location\"];\n matches: RouterState[\"matches\"];\n loaderData: RouterState[\"loaderData\"];\n actionData: RouterState[\"actionData\"];\n errors: RouterState[\"errors\"];\n statusCode: number;\n loaderHeaders: Record;\n actionHeaders: Record;\n activeDeferreds: Record | null;\n _deepestRenderedBoundaryId?: string | null;\n}\n\n/**\n * A StaticHandler instance manages a singular SSR navigation/fetch event\n */\nexport interface StaticHandler {\n dataRoutes: AgnosticDataRouteObject[];\n query(\n request: Request,\n opts?: { requestContext?: unknown }\n ): Promise;\n queryRoute(\n request: Request,\n opts?: { routeId?: string; requestContext?: unknown }\n ): Promise;\n}\n\n/**\n * Subscriber function signature for changes to router state\n */\nexport interface RouterSubscriber {\n (state: RouterState): void;\n}\n\ninterface UseMatchesMatch {\n id: string;\n pathname: string;\n params: AgnosticRouteMatch[\"params\"];\n data: unknown;\n handle: unknown;\n}\n\n/**\n * Function signature for determining the key to be used in scroll restoration\n * for a given location\n */\nexport interface GetScrollRestorationKeyFunction {\n (location: Location, matches: UseMatchesMatch[]): string | null;\n}\n\n/**\n * Function signature for determining the current scroll position\n */\nexport interface GetScrollPositionFunction {\n (): number;\n}\n\n/**\n * Options for a navigate() call for a Link navigation\n */\ntype LinkNavigateOptions = {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n};\n\n/**\n * Options for a navigate() call for a Form navigation\n */\ntype SubmissionNavigateOptions = {\n replace?: boolean;\n state?: any;\n preventScrollReset?: boolean;\n formMethod?: FormMethod;\n formEncType?: FormEncType;\n formData: FormData;\n};\n\n/**\n * Options to pass to navigate() for either a Link or Form navigation\n */\nexport type RouterNavigateOptions =\n | LinkNavigateOptions\n | SubmissionNavigateOptions;\n\n/**\n * Options to pass to fetch()\n */\nexport type RouterFetchOptions =\n | Omit\n | Omit;\n\n/**\n * Potential states for state.navigation\n */\nexport type NavigationStates = {\n Idle: {\n state: \"idle\";\n location: undefined;\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n };\n Loading: {\n state: \"loading\";\n location: Location;\n formMethod: FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n };\n Submitting: {\n state: \"submitting\";\n location: Location;\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n };\n};\n\nexport type Navigation = NavigationStates[keyof NavigationStates];\n\nexport type RevalidationState = \"idle\" | \"loading\";\n\n/**\n * Potential states for fetchers\n */\ntype FetcherStates = {\n Idle: {\n state: \"idle\";\n formMethod: undefined;\n formAction: undefined;\n formEncType: undefined;\n formData: undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Loading: {\n state: \"loading\";\n formMethod: FormMethod | undefined;\n formAction: string | undefined;\n formEncType: FormEncType | undefined;\n formData: FormData | undefined;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n Submitting: {\n state: \"submitting\";\n formMethod: FormMethod;\n formAction: string;\n formEncType: FormEncType;\n formData: FormData;\n data: TData | undefined;\n \" _hasFetcherDoneAnything \"?: boolean;\n };\n};\n\nexport type Fetcher =\n FetcherStates[keyof FetcherStates];\n\ninterface BlockerBlocked {\n state: \"blocked\";\n reset(): void;\n proceed(): void;\n location: Location;\n}\n\ninterface BlockerUnblocked {\n state: \"unblocked\";\n reset: undefined;\n proceed: undefined;\n location: undefined;\n}\n\ninterface BlockerProceeding {\n state: \"proceeding\";\n reset: undefined;\n proceed: undefined;\n location: Location;\n}\n\nexport type Blocker = BlockerUnblocked | BlockerBlocked | BlockerProceeding;\n\nexport type BlockerFunction = (args: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n}) => boolean;\n\ninterface ShortCircuitable {\n /**\n * startNavigation does not need to complete the navigation because we\n * redirected or got interrupted\n */\n shortCircuited?: boolean;\n}\n\ninterface HandleActionResult extends ShortCircuitable {\n /**\n * Error thrown from the current action, keyed by the route containing the\n * error boundary to render the error. To be committed to the state after\n * loaders have completed\n */\n pendingActionError?: RouteData;\n /**\n * Data returned from the current action, keyed by the route owning the action.\n * To be committed to the state after loaders have completed\n */\n pendingActionData?: RouteData;\n}\n\ninterface HandleLoadersResult extends ShortCircuitable {\n /**\n * loaderData returned from the current set of loaders\n */\n loaderData?: RouterState[\"loaderData\"];\n /**\n * errors thrown from the current set of loaders\n */\n errors?: RouterState[\"errors\"];\n}\n\n/**\n * Cached info for active fetcher.load() instances so they can participate\n * in revalidation\n */\ninterface FetchLoadMatch {\n routeId: string;\n path: string;\n match: AgnosticDataRouteMatch;\n matches: AgnosticDataRouteMatch[];\n}\n\n/**\n * Identified fetcher.load() calls that need to be revalidated\n */\ninterface RevalidatingFetcher extends FetchLoadMatch {\n key: string;\n}\n\n/**\n * Wrapper object to allow us to throw any response out from callLoaderOrAction\n * for queryRouter while preserving whether or not it was thrown or returned\n * from the loader/action\n */\ninterface QueryRouteResponse {\n type: ResultType.data | ResultType.error;\n response: Response;\n}\n\nconst validMutationMethodsArr: MutationFormMethod[] = [\n \"post\",\n \"put\",\n \"patch\",\n \"delete\",\n];\nconst validMutationMethods = new Set(\n validMutationMethodsArr\n);\n\nconst validRequestMethodsArr: FormMethod[] = [\n \"get\",\n ...validMutationMethodsArr,\n];\nconst validRequestMethods = new Set(validRequestMethodsArr);\n\nconst redirectStatusCodes = new Set([301, 302, 303, 307, 308]);\nconst redirectPreserveMethodStatusCodes = new Set([307, 308]);\n\nexport const IDLE_NAVIGATION: NavigationStates[\"Idle\"] = {\n state: \"idle\",\n location: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n};\n\nexport const IDLE_FETCHER: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: undefined,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n};\n\nexport const IDLE_BLOCKER: BlockerUnblocked = {\n state: \"unblocked\",\n proceed: undefined,\n reset: undefined,\n location: undefined,\n};\n\nconst ABSOLUTE_URL_REGEX = /^(?:[a-z][a-z0-9+.-]*:|\\/\\/)/i;\n\nconst isBrowser =\n typeof window !== \"undefined\" &&\n typeof window.document !== \"undefined\" &&\n typeof window.document.createElement !== \"undefined\";\nconst isServer = !isBrowser;\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createRouter\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Create a router and listen to history POP navigations\n */\nexport function createRouter(init: RouterInit): Router {\n invariant(\n init.routes.length > 0,\n \"You must provide a non-empty routes array to createRouter\"\n );\n\n let dataRoutes = convertRoutesToDataRoutes(init.routes);\n // Cleanup function for history\n let unlistenHistory: (() => void) | null = null;\n // Externally-provided functions to call on all state changes\n let subscribers = new Set();\n // Externally-provided object to hold scroll restoration locations during routing\n let savedScrollPositions: Record | null = null;\n // Externally-provided function to get scroll restoration keys\n let getScrollRestorationKey: GetScrollRestorationKeyFunction | null = null;\n // Externally-provided function to get current scroll position\n let getScrollPosition: GetScrollPositionFunction | null = null;\n // One-time flag to control the initial hydration scroll restoration. Because\n // we don't get the saved positions from until _after_\n // the initial render, we need to manually trigger a separate updateState to\n // send along the restoreScrollPosition\n // Set to true if we have `hydrationData` since we assume we were SSR'd and that\n // SSR did the initial scroll restoration.\n let initialScrollRestored = init.hydrationData != null;\n\n let initialMatches = matchRoutes(\n dataRoutes,\n init.history.location,\n init.basename\n );\n let initialErrors: RouteData | null = null;\n\n if (initialMatches == null) {\n // If we do not match a user-provided-route, fall back to the root\n // to allow the error boundary to take over\n let error = getInternalRouterError(404, {\n pathname: init.history.location.pathname,\n });\n let { matches, route } = getShortCircuitMatches(dataRoutes);\n initialMatches = matches;\n initialErrors = { [route.id]: error };\n }\n\n let initialized =\n !initialMatches.some((m) => m.route.loader) || init.hydrationData != null;\n\n let router: Router;\n let state: RouterState = {\n historyAction: init.history.action,\n location: init.history.location,\n matches: initialMatches,\n initialized,\n navigation: IDLE_NAVIGATION,\n // Don't restore on initial updateState() if we were SSR'd\n restoreScrollPosition: init.hydrationData != null ? false : null,\n preventScrollReset: false,\n revalidation: \"idle\",\n loaderData: (init.hydrationData && init.hydrationData.loaderData) || {},\n actionData: (init.hydrationData && init.hydrationData.actionData) || null,\n errors: (init.hydrationData && init.hydrationData.errors) || initialErrors,\n fetchers: new Map(),\n blockers: new Map(),\n };\n\n // -- Stateful internal variables to manage navigations --\n // Current navigation in progress (to be committed in completeNavigation)\n let pendingAction: HistoryAction = HistoryAction.Pop;\n\n // Should the current navigation prevent the scroll reset if scroll cannot\n // be restored?\n let pendingPreventScrollReset = false;\n\n // AbortController for the active navigation\n let pendingNavigationController: AbortController | null;\n\n // We use this to avoid touching history in completeNavigation if a\n // revalidation is entirely uninterrupted\n let isUninterruptedRevalidation = false;\n\n // Use this internal flag to force revalidation of all loaders:\n // - submissions (completed or interrupted)\n // - useRevalidate()\n // - X-Remix-Revalidate (from redirect)\n let isRevalidationRequired = false;\n\n // Use this internal array to capture routes that require revalidation due\n // to a cancelled deferred on action submission\n let cancelledDeferredRoutes: string[] = [];\n\n // Use this internal array to capture fetcher loads that were cancelled by an\n // action navigation and require revalidation\n let cancelledFetcherLoads: string[] = [];\n\n // AbortControllers for any in-flight fetchers\n let fetchControllers = new Map();\n\n // Track loads based on the order in which they started\n let incrementingLoadId = 0;\n\n // Track the outstanding pending navigation data load to be compared against\n // the globally incrementing load when a fetcher load lands after a completed\n // navigation\n let pendingNavigationLoadId = -1;\n\n // Fetchers that triggered data reloads as a result of their actions\n let fetchReloadIds = new Map();\n\n // Fetchers that triggered redirect navigations from their actions\n let fetchRedirectIds = new Set();\n\n // Most recent href/match for fetcher.load calls for fetchers\n let fetchLoadMatches = new Map();\n\n // Store DeferredData instances for active route matches. When a\n // route loader returns defer() we stick one in here. Then, when a nested\n // promise resolves we update loaderData. If a new navigation starts we\n // cancel active deferreds for eliminated routes.\n let activeDeferreds = new Map();\n\n // Store blocker functions in a separate Map outside of router state since\n // we don't need to update UI state if they change\n let blockerFunctions = new Map();\n\n // Flag to ignore the next history update, so we can revert the URL change on\n // a POP navigation that was blocked by the user without touching router state\n let ignoreNextHistoryUpdate = false;\n\n // Initialize the router, all side effects should be kicked off from here.\n // Implemented as a Fluent API for ease of:\n // let router = createRouter(init).initialize();\n function initialize() {\n // If history informs us of a POP navigation, start the navigation but do not update\n // state. We'll update our own state once the navigation completes\n unlistenHistory = init.history.listen(\n ({ action: historyAction, location, delta }) => {\n // Ignore this event if it was just us resetting the URL from a\n // blocked POP navigation\n if (ignoreNextHistoryUpdate) {\n ignoreNextHistoryUpdate = false;\n return;\n }\n\n warning(\n blockerFunctions.size === 0 || delta != null,\n \"You are trying to use a blocker on a POP navigation to a location \" +\n \"that was not created by @remix-run/router. This will fail silently in \" +\n \"production. This can happen if you are navigating outside the router \" +\n \"via `window.history.pushState`/`window.location.hash` instead of using \" +\n \"router navigation APIs. This can also happen if you are using \" +\n \"createHashRouter and the user manually changes the URL.\"\n );\n\n let blockerKey = shouldBlockNavigation({\n currentLocation: state.location,\n nextLocation: location,\n historyAction,\n });\n\n if (blockerKey && delta != null) {\n // Restore the URL to match the current UI, but don't update router state\n ignoreNextHistoryUpdate = true;\n init.history.go(delta * -1);\n\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location,\n });\n // Re-do the same POP navigation we just blocked\n init.history.go(delta);\n },\n reset() {\n deleteBlocker(blockerKey!);\n updateState({ blockers: new Map(router.state.blockers) });\n },\n });\n return;\n }\n\n return startNavigation(historyAction, location);\n }\n );\n\n // Kick off initial data load if needed. Use Pop to avoid modifying history\n if (!state.initialized) {\n startNavigation(HistoryAction.Pop, state.location);\n }\n\n return router;\n }\n\n // Clean up a router and it's side effects\n function dispose() {\n if (unlistenHistory) {\n unlistenHistory();\n }\n subscribers.clear();\n pendingNavigationController && pendingNavigationController.abort();\n state.fetchers.forEach((_, key) => deleteFetcher(key));\n state.blockers.forEach((_, key) => deleteBlocker(key));\n }\n\n // Subscribe to state updates for the router\n function subscribe(fn: RouterSubscriber) {\n subscribers.add(fn);\n return () => subscribers.delete(fn);\n }\n\n // Update our state and notify the calling context of the change\n function updateState(newState: Partial): void {\n state = {\n ...state,\n ...newState,\n };\n subscribers.forEach((subscriber) => subscriber(state));\n }\n\n // Complete a navigation returning the state.navigation back to the IDLE_NAVIGATION\n // and setting state.[historyAction/location/matches] to the new route.\n // - Location is a required param\n // - Navigation will always be set to IDLE_NAVIGATION\n // - Can pass any other state in newState\n function completeNavigation(\n location: Location,\n newState: Partial>\n ): void {\n // Deduce if we're in a loading/actionReload state:\n // - We have committed actionData in the store\n // - The current navigation was a mutation submission\n // - We're past the submitting state and into the loading state\n // - The location being loaded is not the result of a redirect\n let isActionReload =\n state.actionData != null &&\n state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n state.navigation.state === \"loading\" &&\n location.state?._isRedirect !== true;\n\n let actionData: RouteData | null;\n if (newState.actionData) {\n if (Object.keys(newState.actionData).length > 0) {\n actionData = newState.actionData;\n } else {\n // Empty actionData -> clear prior actionData due to an action error\n actionData = null;\n }\n } else if (isActionReload) {\n // Keep the current data if we're wrapping up the action reload\n actionData = state.actionData;\n } else {\n // Clear actionData on any other completed navigations\n actionData = null;\n }\n\n // Always preserve any existing loaderData from re-used routes\n let loaderData = newState.loaderData\n ? mergeLoaderData(\n state.loaderData,\n newState.loaderData,\n newState.matches || [],\n newState.errors\n )\n : state.loaderData;\n\n // On a successful navigation we can assume we got through all blockers\n // so we can start fresh\n for (let [key] of blockerFunctions) {\n deleteBlocker(key);\n }\n\n // Always respect the user flag. Otherwise don't reset on mutation\n // submission navigations unless they redirect\n let preventScrollReset =\n pendingPreventScrollReset === true ||\n (state.navigation.formMethod != null &&\n isMutationMethod(state.navigation.formMethod) &&\n location.state?._isRedirect !== true);\n\n updateState({\n ...newState, // matches, errors, fetchers go through as-is\n actionData,\n loaderData,\n historyAction: pendingAction,\n location,\n initialized: true,\n navigation: IDLE_NAVIGATION,\n revalidation: \"idle\",\n restoreScrollPosition: getSavedScrollPosition(\n location,\n newState.matches || state.matches\n ),\n preventScrollReset,\n blockers: new Map(state.blockers),\n });\n\n if (isUninterruptedRevalidation) {\n // If this was an uninterrupted revalidation then do not touch history\n } else if (pendingAction === HistoryAction.Pop) {\n // Do nothing for POP - URL has already been updated\n } else if (pendingAction === HistoryAction.Push) {\n init.history.push(location, location.state);\n } else if (pendingAction === HistoryAction.Replace) {\n init.history.replace(location, location.state);\n }\n\n // Reset stateful navigation vars\n pendingAction = HistoryAction.Pop;\n pendingPreventScrollReset = false;\n isUninterruptedRevalidation = false;\n isRevalidationRequired = false;\n cancelledDeferredRoutes = [];\n cancelledFetcherLoads = [];\n }\n\n // Trigger a navigation event, which can either be a numerical POP or a PUSH\n // replace with an optional submission\n async function navigate(\n to: number | To,\n opts?: RouterNavigateOptions\n ): Promise {\n if (typeof to === \"number\") {\n init.history.go(to);\n return;\n }\n\n let { path, submission, error } = normalizeNavigateOptions(to, opts);\n\n let currentLocation = state.location;\n let nextLocation = createLocation(state.location, path, opts && opts.state);\n\n // When using navigate as a PUSH/REPLACE we aren't reading an already-encoded\n // URL from window.location, so we need to encode it here so the behavior\n // remains the same as POP and non-data-router usages. new URL() does all\n // the same encoding we'd get from a history.pushState/window.location read\n // without having to touch history\n nextLocation = {\n ...nextLocation,\n ...init.history.encodeLocation(nextLocation),\n };\n\n let userReplace = opts && opts.replace != null ? opts.replace : undefined;\n\n let historyAction = HistoryAction.Push;\n\n if (userReplace === true) {\n historyAction = HistoryAction.Replace;\n } else if (userReplace === false) {\n // no-op\n } else if (\n submission != null &&\n isMutationMethod(submission.formMethod) &&\n submission.formAction === state.location.pathname + state.location.search\n ) {\n // By default on submissions to the current location we REPLACE so that\n // users don't have to double-click the back button to get to the prior\n // location. If the user redirects to a different location from the\n // action/loader this will be ignored and the redirect will be a PUSH\n historyAction = HistoryAction.Replace;\n }\n\n let preventScrollReset =\n opts && \"preventScrollReset\" in opts\n ? opts.preventScrollReset === true\n : undefined;\n\n let blockerKey = shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n });\n if (blockerKey) {\n // Put the blocker into a blocked state\n updateBlocker(blockerKey, {\n state: \"blocked\",\n location: nextLocation,\n proceed() {\n updateBlocker(blockerKey!, {\n state: \"proceeding\",\n proceed: undefined,\n reset: undefined,\n location: nextLocation,\n });\n // Send the same navigation through\n navigate(to, opts);\n },\n reset() {\n deleteBlocker(blockerKey!);\n updateState({ blockers: new Map(state.blockers) });\n },\n });\n return;\n }\n\n return await startNavigation(historyAction, nextLocation, {\n submission,\n // Send through the formData serialization error if we have one so we can\n // render at the right error boundary after we match routes\n pendingError: error,\n preventScrollReset,\n replace: opts && opts.replace,\n });\n }\n\n // Revalidate all current loaders. If a navigation is in progress or if this\n // is interrupted by a navigation, allow this to \"succeed\" by calling all\n // loaders during the next loader round\n function revalidate() {\n interruptActiveLoads();\n updateState({ revalidation: \"loading\" });\n\n // If we're currently submitting an action, we don't need to start a new\n // navigation, we'll just let the follow up loader execution call all loaders\n if (state.navigation.state === \"submitting\") {\n return;\n }\n\n // If we're currently in an idle state, start a new navigation for the current\n // action/location and mark it as uninterrupted, which will skip the history\n // update in completeNavigation\n if (state.navigation.state === \"idle\") {\n startNavigation(state.historyAction, state.location, {\n startUninterruptedRevalidation: true,\n });\n return;\n }\n\n // Otherwise, if we're currently in a loading state, just start a new\n // navigation to the navigation.location but do not trigger an uninterrupted\n // revalidation so that history correctly updates once the navigation completes\n startNavigation(\n pendingAction || state.historyAction,\n state.navigation.location,\n { overrideNavigation: state.navigation }\n );\n }\n\n // Start a navigation to the given action/location. Can optionally provide a\n // overrideNavigation which will override the normalLoad in the case of a redirect\n // navigation\n async function startNavigation(\n historyAction: HistoryAction,\n location: Location,\n opts?: {\n submission?: Submission;\n overrideNavigation?: Navigation;\n pendingError?: ErrorResponse;\n startUninterruptedRevalidation?: boolean;\n preventScrollReset?: boolean;\n replace?: boolean;\n }\n ): Promise {\n // Abort any in-progress navigations and start a new one. Unset any ongoing\n // uninterrupted revalidations unless told otherwise, since we want this\n // new navigation to update history normally\n pendingNavigationController && pendingNavigationController.abort();\n pendingNavigationController = null;\n pendingAction = historyAction;\n isUninterruptedRevalidation =\n (opts && opts.startUninterruptedRevalidation) === true;\n\n // Save the current scroll position every time we start a new navigation,\n // and track whether we should reset scroll on completion\n saveScrollPosition(state.location, state.matches);\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n let loadingNavigation = opts && opts.overrideNavigation;\n let matches = matchRoutes(dataRoutes, location, init.basename);\n\n // Short circuit with a 404 on the root error boundary if we match nothing\n if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n // Cancel all pending deferred on 404s since we don't keep any routes\n cancelActiveDeferreds();\n completeNavigation(location, {\n matches: notFoundMatches,\n loaderData: {},\n errors: {\n [route.id]: error,\n },\n });\n return;\n }\n\n // Short circuit if it's only a hash change and not a mutation submission\n // For example, on /page#hash and submit a
which will\n // default to a navigation to /page\n if (\n isHashChangeOnly(state.location, location) &&\n !(opts && opts.submission && isMutationMethod(opts.submission.formMethod))\n ) {\n completeNavigation(location, { matches });\n return;\n }\n\n // Create a controller/Request for this navigation\n pendingNavigationController = new AbortController();\n let request = createClientSideRequest(\n init.history,\n location,\n pendingNavigationController.signal,\n opts && opts.submission\n );\n let pendingActionData: RouteData | undefined;\n let pendingError: RouteData | undefined;\n\n if (opts && opts.pendingError) {\n // If we have a pendingError, it means the user attempted a GET submission\n // with binary FormData so assign here and skip to handleLoaders. That\n // way we handle calling loaders above the boundary etc. It's not really\n // different from an actionError in that sense.\n pendingError = {\n [findNearestBoundary(matches).route.id]: opts.pendingError,\n };\n } else if (\n opts &&\n opts.submission &&\n isMutationMethod(opts.submission.formMethod)\n ) {\n // Call action if we received an action submission\n let actionOutput = await handleAction(\n request,\n location,\n opts.submission,\n matches,\n { replace: opts.replace }\n );\n\n if (actionOutput.shortCircuited) {\n return;\n }\n\n pendingActionData = actionOutput.pendingActionData;\n pendingError = actionOutput.pendingActionError;\n\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n ...opts.submission,\n };\n loadingNavigation = navigation;\n\n // Create a GET request for the loaders\n request = new Request(request.url, { signal: request.signal });\n }\n\n // Call loaders\n let { shortCircuited, loaderData, errors } = await handleLoaders(\n request,\n location,\n matches,\n loadingNavigation,\n opts && opts.submission,\n opts && opts.replace,\n pendingActionData,\n pendingError\n );\n\n if (shortCircuited) {\n return;\n }\n\n // Clean up now that the action/loaders have completed. Don't clean up if\n // we short circuited because pendingNavigationController will have already\n // been assigned to a new controller for the next navigation\n pendingNavigationController = null;\n\n completeNavigation(location, {\n matches,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n loaderData,\n errors,\n });\n }\n\n // Call the action matched by the leaf route for this navigation and handle\n // redirects/errors\n async function handleAction(\n request: Request,\n location: Location,\n submission: Submission,\n matches: AgnosticDataRouteMatch[],\n opts?: { replace?: boolean }\n ): Promise {\n interruptActiveLoads();\n\n // Put us in a submitting state\n let navigation: NavigationStates[\"Submitting\"] = {\n state: \"submitting\",\n location,\n ...submission,\n };\n updateState({ navigation });\n\n // Call our action and get the result\n let result: DataResult;\n let actionMatch = getTargetMatch(matches, location);\n\n if (!actionMatch.route.action) {\n result = {\n type: ResultType.error,\n error: getInternalRouterError(405, {\n method: request.method,\n pathname: location.pathname,\n routeId: actionMatch.route.id,\n }),\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n router.basename\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n }\n\n if (isRedirectResult(result)) {\n let replace: boolean;\n if (opts && opts.replace != null) {\n replace = opts.replace;\n } else {\n // If the user didn't explicity indicate replace behavior, replace if\n // we redirected to the exact same location we're currently at to avoid\n // double back-buttons\n replace =\n result.location === state.location.pathname + state.location.search;\n }\n await startRedirectNavigation(state, result, { submission, replace });\n return { shortCircuited: true };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n\n // By default, all submissions are REPLACE navigations, but if the\n // action threw an error that'll be rendered in an errorElement, we fall\n // back to PUSH so that the user can use the back button to get back to\n // the pre-submission form location to try again\n if ((opts && opts.replace) !== true) {\n pendingAction = HistoryAction.Push;\n }\n\n return {\n // Send back an empty object we can use to clear out any prior actionData\n pendingActionData: {},\n pendingActionError: { [boundaryMatch.route.id]: result.error },\n };\n }\n\n if (isDeferredResult(result)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n return {\n pendingActionData: { [actionMatch.route.id]: result.data },\n };\n }\n\n // Call all applicable loaders for the given matches, handling redirects,\n // errors, etc.\n async function handleLoaders(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n overrideNavigation?: Navigation,\n submission?: Submission,\n replace?: boolean,\n pendingActionData?: RouteData,\n pendingError?: RouteData\n ): Promise {\n // Figure out the right navigation we want to use for data loading\n let loadingNavigation = overrideNavigation;\n if (!loadingNavigation) {\n let navigation: NavigationStates[\"Loading\"] = {\n state: \"loading\",\n location,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n ...submission,\n };\n loadingNavigation = navigation;\n }\n\n // If this was a redirect from an action we don't have a \"submission\" but\n // we have it on the loading navigation so use that if available\n let activeSubmission = submission\n ? submission\n : loadingNavigation.formMethod &&\n loadingNavigation.formAction &&\n loadingNavigation.formData &&\n loadingNavigation.formEncType\n ? {\n formMethod: loadingNavigation.formMethod,\n formAction: loadingNavigation.formAction,\n formData: loadingNavigation.formData,\n formEncType: loadingNavigation.formEncType,\n }\n : undefined;\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n activeSubmission,\n location,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n pendingActionData,\n pendingError,\n fetchLoadMatches\n );\n\n // Cancel pending deferreds for no-longer-matched routes or routes we're\n // about to reload. Note that if this is an action reload we would have\n // already cancelled all pending deferreds so this would be a no-op\n cancelActiveDeferreds(\n (routeId) =>\n !(matches && matches.some((m) => m.route.id === routeId)) ||\n (matchesToLoad && matchesToLoad.some((m) => m.route.id === routeId))\n );\n\n // Short circuit if we have no loaders to run\n if (matchesToLoad.length === 0 && revalidatingFetchers.length === 0) {\n completeNavigation(location, {\n matches,\n loaderData: {},\n // Commit pending error if we're short circuiting\n errors: pendingError || null,\n ...(pendingActionData ? { actionData: pendingActionData } : {}),\n });\n return { shortCircuited: true };\n }\n\n // If this is an uninterrupted revalidation, we remain in our current idle\n // state. If not, we need to switch to our loading state and load data,\n // preserving any new action data or existing action data (in the case of\n // a revalidation interrupting an actionReload)\n if (!isUninterruptedRevalidation) {\n revalidatingFetchers.forEach((rf) => {\n let fetcher = state.fetchers.get(rf.key);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: fetcher && fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(rf.key, revalidatingFetcher);\n });\n let actionData = pendingActionData || state.actionData;\n updateState({\n navigation: loadingNavigation,\n ...(actionData\n ? Object.keys(actionData).length === 0\n ? { actionData: null }\n : { actionData }\n : {}),\n ...(revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n });\n }\n\n pendingNavigationLoadId = ++incrementingLoadId;\n revalidatingFetchers.forEach((rf) =>\n fetchControllers.set(rf.key, pendingNavigationController!)\n );\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n request\n );\n\n if (request.signal.aborted) {\n return { shortCircuited: true };\n }\n\n // Clean up _after_ loaders have completed. Don't clean up if we short\n // circuited because fetchControllers would have been aborted and\n // reassigned to new controllers for the next navigation\n revalidatingFetchers.forEach((rf) => fetchControllers.delete(rf.key));\n\n // If any loaders returned a redirect Response, start a new REPLACE navigation\n let redirect = findRedirect(results);\n if (redirect) {\n await startRedirectNavigation(state, redirect, { replace });\n return { shortCircuited: true };\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n matches,\n matchesToLoad,\n loaderResults,\n pendingError,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n // Wire up subscribers to update loaderData as promises settle\n activeDeferreds.forEach((deferredData, routeId) => {\n deferredData.subscribe((aborted) => {\n // Note: No need to updateState here since the TrackedPromise on\n // loaderData is stable across resolve/reject\n // Remove this instance if we were aborted or if promises have settled\n if (aborted || deferredData.done) {\n activeDeferreds.delete(routeId);\n }\n });\n });\n\n markFetchRedirectsDone();\n let didAbortFetchLoads = abortStaleFetchLoads(pendingNavigationLoadId);\n\n return {\n loaderData,\n errors,\n ...(didAbortFetchLoads || revalidatingFetchers.length > 0\n ? { fetchers: new Map(state.fetchers) }\n : {}),\n };\n }\n\n function getFetcher(key: string): Fetcher {\n return state.fetchers.get(key) || IDLE_FETCHER;\n }\n\n // Trigger a fetcher load/submit for the given fetcher key\n function fetch(\n key: string,\n routeId: string,\n href: string,\n opts?: RouterFetchOptions\n ) {\n if (isServer) {\n throw new Error(\n \"router.fetch() was called during the server render, but it shouldn't be. \" +\n \"You are likely calling a useFetcher() method in the body of your component. \" +\n \"Try moving it to a useEffect or a callback.\"\n );\n }\n\n if (fetchControllers.has(key)) abortFetcher(key);\n\n let matches = matchRoutes(dataRoutes, href, init.basename);\n if (!matches) {\n setFetcherError(\n key,\n routeId,\n getInternalRouterError(404, { pathname: href })\n );\n return;\n }\n\n let { path, submission } = normalizeNavigateOptions(href, opts, true);\n let match = getTargetMatch(matches, path);\n\n pendingPreventScrollReset = (opts && opts.preventScrollReset) === true;\n\n if (submission && isMutationMethod(submission.formMethod)) {\n handleFetcherAction(key, routeId, path, match, matches, submission);\n return;\n }\n\n // Store off the match so we can call it's shouldRevalidate on subsequent\n // revalidations\n fetchLoadMatches.set(key, { routeId, path, match, matches });\n handleFetcherLoader(key, routeId, path, match, matches, submission);\n }\n\n // Call the action for the matched fetcher.submit(), and then handle redirects,\n // errors, and revalidation\n async function handleFetcherAction(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n requestMatches: AgnosticDataRouteMatch[],\n submission: Submission\n ) {\n interruptActiveLoads();\n fetchLoadMatches.delete(key);\n\n if (!match.route.action) {\n let error = getInternalRouterError(405, {\n method: submission.formMethod,\n pathname: path,\n routeId: routeId,\n });\n setFetcherError(key, routeId, error);\n return;\n }\n\n // Put this fetcher into it's submitting state\n let existingFetcher = state.fetchers.get(key);\n let fetcher: FetcherStates[\"Submitting\"] = {\n state: \"submitting\",\n ...submission,\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, fetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the action for the fetcher\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal,\n submission\n );\n fetchControllers.set(key, abortController);\n\n let actionResult = await callLoaderOrAction(\n \"action\",\n fetchRequest,\n match,\n requestMatches,\n router.basename\n );\n\n if (fetchRequest.signal.aborted) {\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-submit which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n return;\n }\n\n if (isRedirectResult(actionResult)) {\n fetchControllers.delete(key);\n fetchRedirectIds.add(key);\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n ...submission,\n data: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n return startRedirectNavigation(state, actionResult, {\n isFetchActionRedirect: true,\n });\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(actionResult)) {\n setFetcherError(key, routeId, actionResult.error);\n return;\n }\n\n if (isDeferredResult(actionResult)) {\n throw getInternalRouterError(400, { type: \"defer-action\" });\n }\n\n // Start the data load for current matches, or the next location if we're\n // in the middle of a navigation\n let nextLocation = state.navigation.location || state.location;\n let revalidationRequest = createClientSideRequest(\n init.history,\n\n nextLocation,\n abortController.signal\n );\n let matches =\n state.navigation.state !== \"idle\"\n ? matchRoutes(dataRoutes, state.navigation.location, init.basename)\n : state.matches;\n\n invariant(matches, \"Didn't find any matches after fetcher action\");\n\n let loadId = ++incrementingLoadId;\n fetchReloadIds.set(key, loadId);\n\n let loadFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: actionResult.data,\n ...submission,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadFetcher);\n\n let [matchesToLoad, revalidatingFetchers] = getMatchesToLoad(\n init.history,\n state,\n matches,\n submission,\n nextLocation,\n isRevalidationRequired,\n cancelledDeferredRoutes,\n cancelledFetcherLoads,\n { [match.route.id]: actionResult.data },\n undefined, // No need to send through errors since we short circuit above\n fetchLoadMatches\n );\n\n // Put all revalidating fetchers into the loading state, except for the\n // current fetcher which we want to keep in it's current loading state which\n // contains it's action submission info + action data\n revalidatingFetchers\n .filter((rf) => rf.key !== key)\n .forEach((rf) => {\n let staleKey = rf.key;\n let existingFetcher = state.fetchers.get(staleKey);\n let revalidatingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n data: existingFetcher && existingFetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(staleKey, revalidatingFetcher);\n fetchControllers.set(staleKey, abortController);\n });\n\n updateState({ fetchers: new Map(state.fetchers) });\n\n let { results, loaderResults, fetcherResults } =\n await callLoadersAndMaybeResolveData(\n state.matches,\n matches,\n matchesToLoad,\n revalidatingFetchers,\n revalidationRequest\n );\n\n if (abortController.signal.aborted) {\n return;\n }\n\n fetchReloadIds.delete(key);\n fetchControllers.delete(key);\n revalidatingFetchers.forEach((r) => fetchControllers.delete(r.key));\n\n let redirect = findRedirect(results);\n if (redirect) {\n return startRedirectNavigation(state, redirect);\n }\n\n // Process and commit output from loaders\n let { loaderData, errors } = processLoaderData(\n state,\n state.matches,\n matchesToLoad,\n loaderResults,\n undefined,\n revalidatingFetchers,\n fetcherResults,\n activeDeferreds\n );\n\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: actionResult.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n\n let didAbortFetchLoads = abortStaleFetchLoads(loadId);\n\n // If we are currently in a navigation loading state and this fetcher is\n // more recent than the navigation, we want the newer data so abort the\n // navigation and complete it with the fetcher data\n if (\n state.navigation.state === \"loading\" &&\n loadId > pendingNavigationLoadId\n ) {\n invariant(pendingAction, \"Expected pending action\");\n pendingNavigationController && pendingNavigationController.abort();\n\n completeNavigation(state.navigation.location, {\n matches,\n loaderData,\n errors,\n fetchers: new Map(state.fetchers),\n });\n } else {\n // otherwise just update with the fetcher data, preserving any existing\n // loaderData for loaders that did not need to reload. We have to\n // manually merge here since we aren't going through completeNavigation\n updateState({\n errors,\n loaderData: mergeLoaderData(\n state.loaderData,\n loaderData,\n matches,\n errors\n ),\n ...(didAbortFetchLoads ? { fetchers: new Map(state.fetchers) } : {}),\n });\n isRevalidationRequired = false;\n }\n }\n\n // Call the matched loader for fetcher.load(), handling redirects, errors, etc.\n async function handleFetcherLoader(\n key: string,\n routeId: string,\n path: string,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n submission?: Submission\n ) {\n let existingFetcher = state.fetchers.get(key);\n // Put this fetcher into it's loading state\n let loadingFetcher: FetcherStates[\"Loading\"] = {\n state: \"loading\",\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n ...submission,\n data: existingFetcher && existingFetcher.data,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, loadingFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n\n // Call the loader for this fetcher route match\n let abortController = new AbortController();\n let fetchRequest = createClientSideRequest(\n init.history,\n path,\n abortController.signal\n );\n fetchControllers.set(key, abortController);\n let result: DataResult = await callLoaderOrAction(\n \"loader\",\n fetchRequest,\n match,\n matches,\n router.basename\n );\n\n // Deferred isn't supported for fetcher loads, await everything and treat it\n // as a normal load. resolveDeferredData will return undefined if this\n // fetcher gets aborted, so we just leave result untouched and short circuit\n // below if that happens\n if (isDeferredResult(result)) {\n result =\n (await resolveDeferredData(result, fetchRequest.signal, true)) ||\n result;\n }\n\n // We can delete this so long as we weren't aborted by ou our own fetcher\n // re-load which would have put _new_ controller is in fetchControllers\n if (fetchControllers.get(key) === abortController) {\n fetchControllers.delete(key);\n }\n\n if (fetchRequest.signal.aborted) {\n return;\n }\n\n // If the loader threw a redirect Response, start a new REPLACE navigation\n if (isRedirectResult(result)) {\n await startRedirectNavigation(state, result);\n return;\n }\n\n // Process any non-redirect errors thrown\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n state.fetchers.delete(key);\n // TODO: In remix, this would reset to IDLE_NAVIGATION if it was a catch -\n // do we need to behave any differently with our non-redirect errors?\n // What if it was a non-redirect Response?\n updateState({\n fetchers: new Map(state.fetchers),\n errors: {\n [boundaryMatch.route.id]: result.error,\n },\n });\n return;\n }\n\n invariant(!isDeferredResult(result), \"Unhandled fetcher deferred data\");\n\n // Put the fetcher back into an idle state\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n updateState({ fetchers: new Map(state.fetchers) });\n }\n\n /**\n * Utility function to handle redirects returned from an action or loader.\n * Normally, a redirect \"replaces\" the navigation that triggered it. So, for\n * example:\n *\n * - user is on /a\n * - user clicks a link to /b\n * - loader for /b redirects to /c\n *\n * In a non-JS app the browser would track the in-flight navigation to /b and\n * then replace it with /c when it encountered the redirect response. In\n * the end it would only ever update the URL bar with /c.\n *\n * In client-side routing using pushState/replaceState, we aim to emulate\n * this behavior and we also do not update history until the end of the\n * navigation (including processed redirects). This means that we never\n * actually touch history until we've processed redirects, so we just use\n * the history action from the original navigation (PUSH or REPLACE).\n */\n async function startRedirectNavigation(\n state: RouterState,\n redirect: RedirectResult,\n {\n submission,\n replace,\n isFetchActionRedirect,\n }: {\n submission?: Submission;\n replace?: boolean;\n isFetchActionRedirect?: boolean;\n } = {}\n ) {\n if (redirect.revalidate) {\n isRevalidationRequired = true;\n }\n\n let redirectLocation = createLocation(\n state.location,\n redirect.location,\n // TODO: This can be removed once we get rid of useTransition in Remix v2\n {\n _isRedirect: true,\n ...(isFetchActionRedirect ? { _isFetchActionRedirect: true } : {}),\n }\n );\n invariant(\n redirectLocation,\n \"Expected a location on the redirect navigation\"\n );\n\n // Check if this an absolute external redirect that goes to a new origin\n if (\n ABSOLUTE_URL_REGEX.test(redirect.location) &&\n isBrowser &&\n typeof window?.location !== \"undefined\"\n ) {\n let newOrigin = init.history.createURL(redirect.location).origin;\n if (window.location.origin !== newOrigin) {\n if (replace) {\n window.location.replace(redirect.location);\n } else {\n window.location.assign(redirect.location);\n }\n return;\n }\n }\n\n // There's no need to abort on redirects, since we don't detect the\n // redirect until the action/loaders have settled\n pendingNavigationController = null;\n\n let redirectHistoryAction =\n replace === true ? HistoryAction.Replace : HistoryAction.Push;\n\n // Use the incoming submission if provided, fallback on the active one in\n // state.navigation\n let { formMethod, formAction, formEncType, formData } = state.navigation;\n if (!submission && formMethod && formAction && formData && formEncType) {\n submission = {\n formMethod,\n formAction,\n formEncType,\n formData,\n };\n }\n\n // If this was a 307/308 submission we want to preserve the HTTP method and\n // re-submit the GET/POST/PUT/PATCH/DELETE as a submission navigation to the\n // redirected location\n if (\n redirectPreserveMethodStatusCodes.has(redirect.status) &&\n submission &&\n isMutationMethod(submission.formMethod)\n ) {\n await startNavigation(redirectHistoryAction, redirectLocation, {\n submission: {\n ...submission,\n formAction: redirect.location,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n } else {\n // Otherwise, we kick off a new loading navigation, preserving the\n // submission info for the duration of this navigation\n await startNavigation(redirectHistoryAction, redirectLocation, {\n overrideNavigation: {\n state: \"loading\",\n location: redirectLocation,\n formMethod: submission ? submission.formMethod : undefined,\n formAction: submission ? submission.formAction : undefined,\n formEncType: submission ? submission.formEncType : undefined,\n formData: submission ? submission.formData : undefined,\n },\n // Preserve this flag across redirects\n preventScrollReset: pendingPreventScrollReset,\n });\n }\n }\n\n async function callLoadersAndMaybeResolveData(\n currentMatches: AgnosticDataRouteMatch[],\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n fetchersToLoad: RevalidatingFetcher[],\n request: Request\n ) {\n // Call all navigation loaders and revalidating fetcher loaders in parallel,\n // then slice off the results into separate arrays so we can handle them\n // accordingly\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\"loader\", request, match, matches, router.basename)\n ),\n ...fetchersToLoad.map((f) =>\n callLoaderOrAction(\n \"loader\",\n createClientSideRequest(init.history, f.path, request.signal),\n f.match,\n f.matches,\n router.basename\n )\n ),\n ]);\n let loaderResults = results.slice(0, matchesToLoad.length);\n let fetcherResults = results.slice(matchesToLoad.length);\n\n await Promise.all([\n resolveDeferredResults(\n currentMatches,\n matchesToLoad,\n loaderResults,\n request.signal,\n false,\n state.loaderData\n ),\n resolveDeferredResults(\n currentMatches,\n fetchersToLoad.map((f) => f.match),\n fetcherResults,\n request.signal,\n true\n ),\n ]);\n\n return { results, loaderResults, fetcherResults };\n }\n\n function interruptActiveLoads() {\n // Every interruption triggers a revalidation\n isRevalidationRequired = true;\n\n // Cancel pending route-level deferreds and mark cancelled routes for\n // revalidation\n cancelledDeferredRoutes.push(...cancelActiveDeferreds());\n\n // Abort in-flight fetcher loads\n fetchLoadMatches.forEach((_, key) => {\n if (fetchControllers.has(key)) {\n cancelledFetcherLoads.push(key);\n abortFetcher(key);\n }\n });\n }\n\n function setFetcherError(key: string, routeId: string, error: any) {\n let boundaryMatch = findNearestBoundary(state.matches, routeId);\n deleteFetcher(key);\n updateState({\n errors: {\n [boundaryMatch.route.id]: error,\n },\n fetchers: new Map(state.fetchers),\n });\n }\n\n function deleteFetcher(key: string): void {\n if (fetchControllers.has(key)) abortFetcher(key);\n fetchLoadMatches.delete(key);\n fetchReloadIds.delete(key);\n fetchRedirectIds.delete(key);\n state.fetchers.delete(key);\n }\n\n function abortFetcher(key: string) {\n let controller = fetchControllers.get(key);\n invariant(controller, `Expected fetch controller: ${key}`);\n controller.abort();\n fetchControllers.delete(key);\n }\n\n function markFetchersDone(keys: string[]) {\n for (let key of keys) {\n let fetcher = getFetcher(key);\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: fetcher.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n function markFetchRedirectsDone(): void {\n let doneKeys = [];\n for (let key of fetchRedirectIds) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n fetchRedirectIds.delete(key);\n doneKeys.push(key);\n }\n }\n markFetchersDone(doneKeys);\n }\n\n function abortStaleFetchLoads(landedId: number): boolean {\n let yeetedKeys = [];\n for (let [key, id] of fetchReloadIds) {\n if (id < landedId) {\n let fetcher = state.fetchers.get(key);\n invariant(fetcher, `Expected fetcher: ${key}`);\n if (fetcher.state === \"loading\") {\n abortFetcher(key);\n fetchReloadIds.delete(key);\n yeetedKeys.push(key);\n }\n }\n }\n markFetchersDone(yeetedKeys);\n return yeetedKeys.length > 0;\n }\n\n function getBlocker(key: string, fn: BlockerFunction) {\n let blocker: Blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n if (blockerFunctions.get(key) !== fn) {\n blockerFunctions.set(key, fn);\n }\n\n return blocker;\n }\n\n function deleteBlocker(key: string) {\n state.blockers.delete(key);\n blockerFunctions.delete(key);\n }\n\n // Utility function to update blockers, ensuring valid state transitions\n function updateBlocker(key: string, newBlocker: Blocker) {\n let blocker = state.blockers.get(key) || IDLE_BLOCKER;\n\n // Poor mans state machine :)\n // https://mermaid.live/edit#pako:eNqVkc9OwzAMxl8l8nnjAYrEtDIOHEBIgwvKJTReGy3_lDpIqO27k6awMG0XcrLlnz87nwdonESogKXXBuE79rq75XZO3-yHds0RJVuv70YrPlUrCEe2HfrORS3rubqZfuhtpg5C9wk5tZ4VKcRUq88q9Z8RS0-48cE1iHJkL0ugbHuFLus9L6spZy8nX9MP2CNdomVaposqu3fGayT8T8-jJQwhepo_UtpgBQaDEUom04dZhAN1aJBDlUKJBxE1ceB2Smj0Mln-IBW5AFU2dwUiktt_2Qaq2dBfaKdEup85UV7Yd-dKjlnkabl2Pvr0DTkTreM\n invariant(\n (blocker.state === \"unblocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"blocked\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"proceeding\") ||\n (blocker.state === \"blocked\" && newBlocker.state === \"unblocked\") ||\n (blocker.state === \"proceeding\" && newBlocker.state === \"unblocked\"),\n `Invalid blocker state transition: ${blocker.state} -> ${newBlocker.state}`\n );\n\n state.blockers.set(key, newBlocker);\n updateState({ blockers: new Map(state.blockers) });\n }\n\n function shouldBlockNavigation({\n currentLocation,\n nextLocation,\n historyAction,\n }: {\n currentLocation: Location;\n nextLocation: Location;\n historyAction: HistoryAction;\n }): string | undefined {\n if (blockerFunctions.size === 0) {\n return;\n }\n\n // We ony support a single active blocker at the moment since we don't have\n // any compelling use cases for multi-blocker yet\n if (blockerFunctions.size > 1) {\n warning(false, \"A router only supports one blocker at a time\");\n }\n\n let entries = Array.from(blockerFunctions.entries());\n let [blockerKey, blockerFunction] = entries[entries.length - 1];\n let blocker = state.blockers.get(blockerKey);\n\n if (blocker && blocker.state === \"proceeding\") {\n // If the blocker is currently proceeding, we don't need to re-check\n // it and can let this navigation continue\n return;\n }\n\n // At this point, we know we're unblocked/blocked so we need to check the\n // user-provided blocker function\n if (blockerFunction({ currentLocation, nextLocation, historyAction })) {\n return blockerKey;\n }\n }\n\n function cancelActiveDeferreds(\n predicate?: (routeId: string) => boolean\n ): string[] {\n let cancelledRouteIds: string[] = [];\n activeDeferreds.forEach((dfd, routeId) => {\n if (!predicate || predicate(routeId)) {\n // Cancel the deferred - but do not remove from activeDeferreds here -\n // we rely on the subscribers to do that so our tests can assert proper\n // cleanup via _internalActiveDeferreds\n dfd.cancel();\n cancelledRouteIds.push(routeId);\n activeDeferreds.delete(routeId);\n }\n });\n return cancelledRouteIds;\n }\n\n // Opt in to capturing and reporting scroll positions during navigations,\n // used by the component\n function enableScrollRestoration(\n positions: Record,\n getPosition: GetScrollPositionFunction,\n getKey?: GetScrollRestorationKeyFunction\n ) {\n savedScrollPositions = positions;\n getScrollPosition = getPosition;\n getScrollRestorationKey = getKey || ((location) => location.key);\n\n // Perform initial hydration scroll restoration, since we miss the boat on\n // the initial updateState() because we've not yet rendered \n // and therefore have no savedScrollPositions available\n if (!initialScrollRestored && state.navigation === IDLE_NAVIGATION) {\n initialScrollRestored = true;\n let y = getSavedScrollPosition(state.location, state.matches);\n if (y != null) {\n updateState({ restoreScrollPosition: y });\n }\n }\n\n return () => {\n savedScrollPositions = null;\n getScrollPosition = null;\n getScrollRestorationKey = null;\n };\n }\n\n function saveScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): void {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n savedScrollPositions[key] = getScrollPosition();\n }\n }\n\n function getSavedScrollPosition(\n location: Location,\n matches: AgnosticDataRouteMatch[]\n ): number | null {\n if (savedScrollPositions && getScrollRestorationKey && getScrollPosition) {\n let userMatches = matches.map((m) =>\n createUseMatchesMatch(m, state.loaderData)\n );\n let key = getScrollRestorationKey(location, userMatches) || location.key;\n let y = savedScrollPositions[key];\n if (typeof y === \"number\") {\n return y;\n }\n }\n return null;\n }\n\n router = {\n get basename() {\n return init.basename;\n },\n get state() {\n return state;\n },\n get routes() {\n return dataRoutes;\n },\n initialize,\n subscribe,\n enableScrollRestoration,\n navigate,\n fetch,\n revalidate,\n // Passthrough to history-aware createHref used by useHref so we get proper\n // hash-aware URLs in DOM paths\n createHref: (to: To) => init.history.createHref(to),\n encodeLocation: (to: To) => init.history.encodeLocation(to),\n getFetcher,\n deleteFetcher,\n dispose,\n getBlocker,\n deleteBlocker,\n _internalFetchControllers: fetchControllers,\n _internalActiveDeferreds: activeDeferreds,\n };\n\n return router;\n}\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region createStaticHandler\n////////////////////////////////////////////////////////////////////////////////\n\nexport const UNSAFE_DEFERRED_SYMBOL = Symbol(\"deferred\");\n\nexport function createStaticHandler(\n routes: AgnosticRouteObject[],\n opts?: {\n basename?: string;\n }\n): StaticHandler {\n invariant(\n routes.length > 0,\n \"You must provide a non-empty routes array to createStaticHandler\"\n );\n\n let dataRoutes = convertRoutesToDataRoutes(routes);\n let basename = (opts ? opts.basename : null) || \"/\";\n\n /**\n * The query() method is intended for document requests, in which we want to\n * call an optional action and potentially multiple loaders for all nested\n * routes. It returns a StaticHandlerContext object, which is very similar\n * to the router state (location, loaderData, actionData, errors, etc.) and\n * also adds SSR-specific information such as the statusCode and headers\n * from action/loaders Responses.\n *\n * It _should_ never throw and should report all errors through the\n * returned context.errors object, properly associating errors to their error\n * boundary. Additionally, it tracks _deepestRenderedBoundaryId which can be\n * used to emulate React error boundaries during SSr by performing a second\n * pass only down to the boundaryId.\n *\n * The one exception where we do not return a StaticHandlerContext is when a\n * redirect response is returned or thrown from any action/loader. We\n * propagate that out and return the raw Response so the HTTP server can\n * return it directly.\n */\n async function query(\n request: Request,\n { requestContext }: { requestContext?: unknown } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method.toLowerCase();\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"head\") {\n let error = getInternalRouterError(405, { method });\n let { matches: methodNotAllowedMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: methodNotAllowedMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n } else if (!matches) {\n let error = getInternalRouterError(404, { pathname: location.pathname });\n let { matches: notFoundMatches, route } =\n getShortCircuitMatches(dataRoutes);\n return {\n basename,\n location,\n matches: notFoundMatches,\n loaderData: {},\n actionData: null,\n errors: {\n [route.id]: error,\n },\n statusCode: error.status,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let result = await queryImpl(request, location, matches, requestContext);\n if (isResponse(result)) {\n return result;\n }\n\n // When returning StaticHandlerContext, we patch back in the location here\n // since we need it for React Context. But this helps keep our submit and\n // loadRouteData operating on a Request instead of a Location\n return { location, basename, ...result };\n }\n\n /**\n * The queryRoute() method is intended for targeted route requests, either\n * for fetch ?_data requests or resource route requests. In this case, we\n * are only ever calling a single action or loader, and we are returning the\n * returned value directly. In most cases, this will be a Response returned\n * from the action/loader, but it may be a primitive or other value as well -\n * and in such cases the calling context should handle that accordingly.\n *\n * We do respect the throw/return differentiation, so if an action/loader\n * throws, then this method will throw the value. This is important so we\n * can do proper boundary identification in Remix where a thrown Response\n * must go to the Catch Boundary but a returned Response is happy-path.\n *\n * One thing to note is that any Router-initiated Errors that make sense\n * to associate with a status code will be thrown as an ErrorResponse\n * instance which include the raw Error, such that the calling context can\n * serialize the error as they see fit while including the proper response\n * code. Examples here are 404 and 405 errors that occur prior to reaching\n * any user-defined loaders.\n */\n async function queryRoute(\n request: Request,\n {\n routeId,\n requestContext,\n }: { requestContext?: unknown; routeId?: string } = {}\n ): Promise {\n let url = new URL(request.url);\n let method = request.method.toLowerCase();\n let location = createLocation(\"\", createPath(url), null, \"default\");\n let matches = matchRoutes(dataRoutes, location, basename);\n\n // SSR supports HEAD requests while SPA doesn't\n if (!isValidMethod(method) && method !== \"head\" && method !== \"options\") {\n throw getInternalRouterError(405, { method });\n } else if (!matches) {\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let match = routeId\n ? matches.find((m) => m.route.id === routeId)\n : getTargetMatch(matches, location);\n\n if (routeId && !match) {\n throw getInternalRouterError(403, {\n pathname: location.pathname,\n routeId,\n });\n } else if (!match) {\n // This should never hit I don't think?\n throw getInternalRouterError(404, { pathname: location.pathname });\n }\n\n let result = await queryImpl(\n request,\n location,\n matches,\n requestContext,\n match\n );\n if (isResponse(result)) {\n return result;\n }\n\n let error = result.errors ? Object.values(result.errors)[0] : undefined;\n if (error !== undefined) {\n // If we got back result.errors, that means the loader/action threw\n // _something_ that wasn't a Response, but it's not guaranteed/required\n // to be an `instanceof Error` either, so we have to use throw here to\n // preserve the \"error\" state outside of queryImpl.\n throw error;\n }\n\n // Pick off the right state value to return\n if (result.actionData) {\n return Object.values(result.actionData)[0];\n }\n\n if (result.loaderData) {\n let data = Object.values(result.loaderData)[0];\n if (result.activeDeferreds?.[match.route.id]) {\n data[UNSAFE_DEFERRED_SYMBOL] = result.activeDeferreds[match.route.id];\n }\n return data;\n }\n\n return undefined;\n }\n\n async function queryImpl(\n request: Request,\n location: Location,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch\n ): Promise | Response> {\n invariant(\n request.signal,\n \"query()/queryRoute() requests must contain an AbortController signal\"\n );\n\n try {\n if (isMutationMethod(request.method.toLowerCase())) {\n let result = await submit(\n request,\n matches,\n routeMatch || getTargetMatch(matches, location),\n requestContext,\n routeMatch != null\n );\n return result;\n }\n\n let result = await loadRouteData(\n request,\n matches,\n requestContext,\n routeMatch\n );\n return isResponse(result)\n ? result\n : {\n ...result,\n actionData: null,\n actionHeaders: {},\n };\n } catch (e) {\n // If the user threw/returned a Response in callLoaderOrAction, we throw\n // it to bail out and then return or throw here based on whether the user\n // returned or threw\n if (isQueryRouteResponse(e)) {\n if (e.type === ResultType.error && !isRedirectResponse(e.response)) {\n throw e.response;\n }\n return e.response;\n }\n // Redirects are always returned since they don't propagate to catch\n // boundaries\n if (isRedirectResponse(e)) {\n return e;\n }\n throw e;\n }\n }\n\n async function submit(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n actionMatch: AgnosticDataRouteMatch,\n requestContext: unknown,\n isRouteRequest: boolean\n ): Promise | Response> {\n let result: DataResult;\n\n if (!actionMatch.route.action) {\n let error = getInternalRouterError(405, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: actionMatch.route.id,\n });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n } else {\n result = await callLoaderOrAction(\n \"action\",\n request,\n actionMatch,\n matches,\n basename,\n true,\n isRouteRequest,\n requestContext\n );\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n }\n\n if (isRedirectResult(result)) {\n // Uhhhh - this should never happen, we should always throw these from\n // callLoaderOrAction, but the type narrowing here keeps TS happy and we\n // can get back on the \"throw all redirect responses\" train here should\n // this ever happen :/\n throw new Response(null, {\n status: result.status,\n headers: {\n Location: result.location,\n },\n });\n }\n\n if (isDeferredResult(result)) {\n let error = getInternalRouterError(400, { type: \"defer-action\" });\n if (isRouteRequest) {\n throw error;\n }\n result = {\n type: ResultType.error,\n error,\n };\n }\n\n if (isRouteRequest) {\n // Note: This should only be non-Response values if we get here, since\n // isRouteRequest should throw any Response received in callLoaderOrAction\n if (isErrorResult(result)) {\n throw result.error;\n }\n\n return {\n matches: [actionMatch],\n loaderData: {},\n actionData: { [actionMatch.route.id]: result.data },\n errors: null,\n // Note: statusCode + headers are unused here since queryRoute will\n // return the raw Response or value\n statusCode: 200,\n loaderHeaders: {},\n actionHeaders: {},\n activeDeferreds: null,\n };\n }\n\n if (isErrorResult(result)) {\n // Store off the pending error - we use it to determine which loaders\n // to call and will commit it when we complete the navigation\n let boundaryMatch = findNearestBoundary(matches, actionMatch.route.id);\n let context = await loadRouteData(\n request,\n matches,\n requestContext,\n undefined,\n {\n [boundaryMatch.route.id]: result.error,\n }\n );\n\n // action status codes take precedence over loader status codes\n return {\n ...context,\n statusCode: isRouteErrorResponse(result.error)\n ? result.error.status\n : 500,\n actionData: null,\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n // Create a GET request for the loaders\n let loaderRequest = new Request(request.url, {\n headers: request.headers,\n redirect: request.redirect,\n signal: request.signal,\n });\n let context = await loadRouteData(loaderRequest, matches, requestContext);\n\n return {\n ...context,\n // action status codes take precedence over loader status codes\n ...(result.statusCode ? { statusCode: result.statusCode } : {}),\n actionData: {\n [actionMatch.route.id]: result.data,\n },\n actionHeaders: {\n ...(result.headers ? { [actionMatch.route.id]: result.headers } : {}),\n },\n };\n }\n\n async function loadRouteData(\n request: Request,\n matches: AgnosticDataRouteMatch[],\n requestContext: unknown,\n routeMatch?: AgnosticDataRouteMatch,\n pendingActionError?: RouteData\n ): Promise<\n | Omit<\n StaticHandlerContext,\n \"location\" | \"basename\" | \"actionData\" | \"actionHeaders\"\n >\n | Response\n > {\n let isRouteRequest = routeMatch != null;\n\n // Short circuit if we have no loaders to run (queryRoute())\n if (isRouteRequest && !routeMatch?.route.loader) {\n throw getInternalRouterError(400, {\n method: request.method,\n pathname: new URL(request.url).pathname,\n routeId: routeMatch?.route.id,\n });\n }\n\n let requestMatches = routeMatch\n ? [routeMatch]\n : getLoaderMatchesUntilBoundary(\n matches,\n Object.keys(pendingActionError || {})[0]\n );\n let matchesToLoad = requestMatches.filter((m) => m.route.loader);\n\n // Short circuit if we have no loaders to run (query())\n if (matchesToLoad.length === 0) {\n return {\n matches,\n // Add a null for all matched routes for proper revalidation on the client\n loaderData: matches.reduce(\n (acc, m) => Object.assign(acc, { [m.route.id]: null }),\n {}\n ),\n errors: pendingActionError || null,\n statusCode: 200,\n loaderHeaders: {},\n activeDeferreds: null,\n };\n }\n\n let results = await Promise.all([\n ...matchesToLoad.map((match) =>\n callLoaderOrAction(\n \"loader\",\n request,\n match,\n matches,\n basename,\n true,\n isRouteRequest,\n requestContext\n )\n ),\n ]);\n\n if (request.signal.aborted) {\n let method = isRouteRequest ? \"queryRoute\" : \"query\";\n throw new Error(`${method}() call aborted`);\n }\n\n // Process and commit output from loaders\n let activeDeferreds = new Map();\n let context = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingActionError,\n activeDeferreds\n );\n\n // Add a null for any non-loader matches for proper revalidation on the client\n let executedLoaders = new Set(\n matchesToLoad.map((match) => match.route.id)\n );\n matches.forEach((match) => {\n if (!executedLoaders.has(match.route.id)) {\n context.loaderData[match.route.id] = null;\n }\n });\n\n return {\n ...context,\n matches,\n activeDeferreds:\n activeDeferreds.size > 0\n ? Object.fromEntries(activeDeferreds.entries())\n : null,\n };\n }\n\n return {\n dataRoutes,\n query,\n queryRoute,\n };\n}\n\n//#endregion\n\n////////////////////////////////////////////////////////////////////////////////\n//#region Helpers\n////////////////////////////////////////////////////////////////////////////////\n\n/**\n * Given an existing StaticHandlerContext and an error thrown at render time,\n * provide an updated StaticHandlerContext suitable for a second SSR render\n */\nexport function getStaticContextFromError(\n routes: AgnosticDataRouteObject[],\n context: StaticHandlerContext,\n error: any\n) {\n let newContext: StaticHandlerContext = {\n ...context,\n statusCode: 500,\n errors: {\n [context._deepestRenderedBoundaryId || routes[0].id]: error,\n },\n };\n return newContext;\n}\n\nfunction isSubmissionNavigation(\n opts: RouterNavigateOptions\n): opts is SubmissionNavigateOptions {\n return opts != null && \"formData\" in opts;\n}\n\n// Normalize navigation options by converting formMethod=GET formData objects to\n// URLSearchParams so they behave identically to links with query params\nfunction normalizeNavigateOptions(\n to: To,\n opts?: RouterNavigateOptions,\n isFetcher = false\n): {\n path: string;\n submission?: Submission;\n error?: ErrorResponse;\n} {\n let path = typeof to === \"string\" ? to : createPath(to);\n\n // Return location verbatim on non-submission navigations\n if (!opts || !isSubmissionNavigation(opts)) {\n return { path };\n }\n\n if (opts.formMethod && !isValidMethod(opts.formMethod)) {\n return {\n path,\n error: getInternalRouterError(405, { method: opts.formMethod }),\n };\n }\n\n // Create a Submission on non-GET navigations\n let submission: Submission | undefined;\n if (opts.formData) {\n submission = {\n formMethod: opts.formMethod || \"get\",\n formAction: stripHashFromPath(path),\n formEncType:\n (opts && opts.formEncType) || \"application/x-www-form-urlencoded\",\n formData: opts.formData,\n };\n\n if (isMutationMethod(submission.formMethod)) {\n return { path, submission };\n }\n }\n\n // Flatten submission onto URLSearchParams for GET submissions\n let parsedPath = parsePath(path);\n let searchParams = convertFormDataToSearchParams(opts.formData);\n // Since fetcher GET submissions only run a single loader (as opposed to\n // navigation GET submissions which run all loaders), we need to preserve\n // any incoming ?index params\n if (isFetcher && parsedPath.search && hasNakedIndexQuery(parsedPath.search)) {\n searchParams.append(\"index\", \"\");\n }\n parsedPath.search = `?${searchParams}`;\n\n return { path: createPath(parsedPath), submission };\n}\n\n// Filter out all routes below any caught error as they aren't going to\n// render so we don't need to load them\nfunction getLoaderMatchesUntilBoundary(\n matches: AgnosticDataRouteMatch[],\n boundaryId?: string\n) {\n let boundaryMatches = matches;\n if (boundaryId) {\n let index = matches.findIndex((m) => m.route.id === boundaryId);\n if (index >= 0) {\n boundaryMatches = matches.slice(0, index);\n }\n }\n return boundaryMatches;\n}\n\nfunction getMatchesToLoad(\n history: History,\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n submission: Submission | undefined,\n location: Location,\n isRevalidationRequired: boolean,\n cancelledDeferredRoutes: string[],\n cancelledFetcherLoads: string[],\n pendingActionData?: RouteData,\n pendingError?: RouteData,\n fetchLoadMatches?: Map\n): [AgnosticDataRouteMatch[], RevalidatingFetcher[]] {\n let actionResult = pendingError\n ? Object.values(pendingError)[0]\n : pendingActionData\n ? Object.values(pendingActionData)[0]\n : undefined;\n\n let currentUrl = history.createURL(state.location);\n let nextUrl = history.createURL(location);\n\n let defaultShouldRevalidate =\n // Forced revalidation due to submission, useRevalidate, or X-Remix-Revalidate\n isRevalidationRequired ||\n // Clicked the same link, resubmitted a GET form\n currentUrl.toString() === nextUrl.toString() ||\n // Search params affect all loaders\n currentUrl.search !== nextUrl.search;\n\n // Pick navigation matches that are net-new or qualify for revalidation\n let boundaryId = pendingError ? Object.keys(pendingError)[0] : undefined;\n let boundaryMatches = getLoaderMatchesUntilBoundary(matches, boundaryId);\n\n let navigationMatches = boundaryMatches.filter((match, index) => {\n if (match.route.loader == null) {\n return false;\n }\n\n // Always call the loader on new route instances and pending defer cancellations\n if (\n isNewLoader(state.loaderData, state.matches[index], match) ||\n cancelledDeferredRoutes.some((id) => id === match.route.id)\n ) {\n return true;\n }\n\n // This is the default implementation for when we revalidate. If the route\n // provides it's own implementation, then we give them full control but\n // provide this value so they can leverage it if needed after they check\n // their own specific use cases\n let currentRouteMatch = state.matches[index];\n let nextRouteMatch = match;\n\n return shouldRevalidateLoader(match, {\n currentUrl,\n currentParams: currentRouteMatch.params,\n nextUrl,\n nextParams: nextRouteMatch.params,\n ...submission,\n actionResult,\n defaultShouldRevalidate:\n defaultShouldRevalidate ||\n isNewRouteInstance(currentRouteMatch, nextRouteMatch),\n });\n });\n\n // Pick fetcher.loads that need to be revalidated\n let revalidatingFetchers: RevalidatingFetcher[] = [];\n fetchLoadMatches &&\n fetchLoadMatches.forEach((f, key) => {\n if (!matches.some((m) => m.route.id === f.routeId)) {\n // This fetcher is not going to be present in the subsequent render so\n // there's no need to revalidate it\n return;\n } else if (cancelledFetcherLoads.includes(key)) {\n // This fetcher was cancelled from a prior action submission - force reload\n revalidatingFetchers.push({ key, ...f });\n } else {\n // Revalidating fetchers are decoupled from the route matches since they\n // hit a static href, so they _always_ check shouldRevalidate and the\n // default is strictly if a revalidation is explicitly required (action\n // submissions, useRevalidator, X-Remix-Revalidate).\n let shouldRevalidate = shouldRevalidateLoader(f.match, {\n currentUrl,\n currentParams: state.matches[state.matches.length - 1].params,\n nextUrl,\n nextParams: matches[matches.length - 1].params,\n ...submission,\n actionResult,\n defaultShouldRevalidate,\n });\n if (shouldRevalidate) {\n revalidatingFetchers.push({ key, ...f });\n }\n }\n });\n\n return [navigationMatches, revalidatingFetchers];\n}\n\nfunction isNewLoader(\n currentLoaderData: RouteData,\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let isNew =\n // [a] -> [a, b]\n !currentMatch ||\n // [a, b] -> [a, c]\n match.route.id !== currentMatch.route.id;\n\n // Handle the case that we don't have data for a re-used route, potentially\n // from a prior error or from a cancelled pending deferred\n let isMissingData = currentLoaderData[match.route.id] === undefined;\n\n // Always load if this is a net-new route or we don't yet have data\n return isNew || isMissingData;\n}\n\nfunction isNewRouteInstance(\n currentMatch: AgnosticDataRouteMatch,\n match: AgnosticDataRouteMatch\n) {\n let currentPath = currentMatch.route.path;\n return (\n // param change for this match, /users/123 -> /users/456\n currentMatch.pathname !== match.pathname ||\n // splat param changed, which is not present in match.path\n // e.g. /files/images/avatar.jpg -> files/finances.xls\n (currentPath != null &&\n currentPath.endsWith(\"*\") &&\n currentMatch.params[\"*\"] !== match.params[\"*\"])\n );\n}\n\nfunction shouldRevalidateLoader(\n loaderMatch: AgnosticDataRouteMatch,\n arg: Parameters[0]\n) {\n if (loaderMatch.route.shouldRevalidate) {\n let routeChoice = loaderMatch.route.shouldRevalidate(arg);\n if (typeof routeChoice === \"boolean\") {\n return routeChoice;\n }\n }\n\n return arg.defaultShouldRevalidate;\n}\n\nasync function callLoaderOrAction(\n type: \"loader\" | \"action\",\n request: Request,\n match: AgnosticDataRouteMatch,\n matches: AgnosticDataRouteMatch[],\n basename = \"/\",\n isStaticRequest: boolean = false,\n isRouteRequest: boolean = false,\n requestContext?: unknown\n): Promise {\n let resultType;\n let result;\n\n // Setup a promise we can race against so that abort signals short circuit\n let reject: () => void;\n let abortPromise = new Promise((_, r) => (reject = r));\n let onReject = () => reject();\n request.signal.addEventListener(\"abort\", onReject);\n\n try {\n let handler = match.route[type];\n invariant(\n handler,\n `Could not find the ${type} to run on the \"${match.route.id}\" route`\n );\n\n result = await Promise.race([\n handler({ request, params: match.params, context: requestContext }),\n abortPromise,\n ]);\n\n invariant(\n result !== undefined,\n `You defined ${type === \"action\" ? \"an action\" : \"a loader\"} for route ` +\n `\"${match.route.id}\" but didn't return anything from your \\`${type}\\` ` +\n `function. Please return a value or \\`null\\`.`\n );\n } catch (e) {\n resultType = ResultType.error;\n result = e;\n } finally {\n request.signal.removeEventListener(\"abort\", onReject);\n }\n\n if (isResponse(result)) {\n let status = result.status;\n\n // Process redirects\n if (redirectStatusCodes.has(status)) {\n let location = result.headers.get(\"Location\");\n invariant(\n location,\n \"Redirects returned/thrown from loaders/actions must have a Location header\"\n );\n\n // Support relative routing in internal redirects\n if (!ABSOLUTE_URL_REGEX.test(location)) {\n let activeMatches = matches.slice(0, matches.indexOf(match) + 1);\n let routePathnames = getPathContributingMatches(activeMatches).map(\n (match) => match.pathnameBase\n );\n let resolvedLocation = resolveTo(\n location,\n routePathnames,\n new URL(request.url).pathname\n );\n invariant(\n createPath(resolvedLocation),\n `Unable to resolve redirect location: ${location}`\n );\n\n // Prepend the basename to the redirect location if we have one\n if (basename) {\n let path = resolvedLocation.pathname;\n resolvedLocation.pathname =\n path === \"/\" ? basename : joinPaths([basename, path]);\n }\n\n location = createPath(resolvedLocation);\n } else if (!isStaticRequest) {\n // Strip off the protocol+origin for same-origin absolute redirects.\n // If this is a static reques, we can let it go back to the browser\n // as-is\n let currentUrl = new URL(request.url);\n let url = location.startsWith(\"//\")\n ? new URL(currentUrl.protocol + location)\n : new URL(location);\n if (url.origin === currentUrl.origin) {\n location = url.pathname + url.search + url.hash;\n }\n }\n\n // Don't process redirects in the router during static requests requests.\n // Instead, throw the Response and let the server handle it with an HTTP\n // redirect. We also update the Location header in place in this flow so\n // basename and relative routing is taken into account\n if (isStaticRequest) {\n result.headers.set(\"Location\", location);\n throw result;\n }\n\n return {\n type: ResultType.redirect,\n status,\n location,\n revalidate: result.headers.get(\"X-Remix-Revalidate\") !== null,\n };\n }\n\n // For SSR single-route requests, we want to hand Responses back directly\n // without unwrapping. We do this with the QueryRouteResponse wrapper\n // interface so we can know whether it was returned or thrown\n if (isRouteRequest) {\n // eslint-disable-next-line no-throw-literal\n throw {\n type: resultType || ResultType.data,\n response: result,\n };\n }\n\n let data: any;\n let contentType = result.headers.get(\"Content-Type\");\n // Check between word boundaries instead of startsWith() due to the last\n // paragraph of https://httpwg.org/specs/rfc9110.html#field.content-type\n if (contentType && /\\bapplication\\/json\\b/.test(contentType)) {\n data = await result.json();\n } else {\n data = await result.text();\n }\n\n if (resultType === ResultType.error) {\n return {\n type: resultType,\n error: new ErrorResponse(status, result.statusText, data),\n headers: result.headers,\n };\n }\n\n return {\n type: ResultType.data,\n data,\n statusCode: result.status,\n headers: result.headers,\n };\n }\n\n if (resultType === ResultType.error) {\n return { type: resultType, error: result };\n }\n\n if (result instanceof DeferredData) {\n return { type: ResultType.deferred, deferredData: result };\n }\n\n return { type: ResultType.data, data: result };\n}\n\n// Utility method for creating the Request instances for loaders/actions during\n// client-side navigations and fetches. During SSR we will always have a\n// Request instance from the static handler (query/queryRoute)\nfunction createClientSideRequest(\n history: History,\n location: string | Location,\n signal: AbortSignal,\n submission?: Submission\n): Request {\n let url = history.createURL(stripHashFromPath(location)).toString();\n let init: RequestInit = { signal };\n\n if (submission && isMutationMethod(submission.formMethod)) {\n let { formMethod, formEncType, formData } = submission;\n init.method = formMethod.toUpperCase();\n init.body =\n formEncType === \"application/x-www-form-urlencoded\"\n ? convertFormDataToSearchParams(formData)\n : formData;\n }\n\n // Content-Type is inferred (https://fetch.spec.whatwg.org/#dom-request)\n return new Request(url, init);\n}\n\nfunction convertFormDataToSearchParams(formData: FormData): URLSearchParams {\n let searchParams = new URLSearchParams();\n\n for (let [key, value] of formData.entries()) {\n // https://html.spec.whatwg.org/multipage/form-control-infrastructure.html#converting-an-entry-list-to-a-list-of-name-value-pairs\n searchParams.append(key, value instanceof File ? value.name : value);\n }\n\n return searchParams;\n}\n\nfunction processRouteLoaderData(\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors: RouterState[\"errors\"] | null;\n statusCode: number;\n loaderHeaders: Record;\n} {\n // Fill in loaderData/errors from our loaders\n let loaderData: RouterState[\"loaderData\"] = {};\n let errors: RouterState[\"errors\"] | null = null;\n let statusCode: number | undefined;\n let foundError = false;\n let loaderHeaders: Record = {};\n\n // Process loader results into state.loaderData/state.errors\n results.forEach((result, index) => {\n let id = matchesToLoad[index].route.id;\n invariant(\n !isRedirectResult(result),\n \"Cannot handle redirect results in processLoaderData\"\n );\n if (isErrorResult(result)) {\n // Look upwards from the matched route for the closest ancestor\n // error boundary, defaulting to the root match\n let boundaryMatch = findNearestBoundary(matches, id);\n let error = result.error;\n // If we have a pending action error, we report it at the highest-route\n // that throws a loader error, and then clear it out to indicate that\n // it was consumed\n if (pendingError) {\n error = Object.values(pendingError)[0];\n pendingError = undefined;\n }\n\n errors = errors || {};\n\n // Prefer higher error values if lower errors bubble to the same boundary\n if (errors[boundaryMatch.route.id] == null) {\n errors[boundaryMatch.route.id] = error;\n }\n\n // Clear our any prior loaderData for the throwing route\n loaderData[id] = undefined;\n\n // Once we find our first (highest) error, we set the status code and\n // prevent deeper status codes from overriding\n if (!foundError) {\n foundError = true;\n statusCode = isRouteErrorResponse(result.error)\n ? result.error.status\n : 500;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n } else {\n if (isDeferredResult(result)) {\n activeDeferreds.set(id, result.deferredData);\n loaderData[id] = result.deferredData.data;\n } else {\n loaderData[id] = result.data;\n }\n\n // Error status codes always override success status codes, but if all\n // loaders are successful we take the deepest status code.\n if (\n result.statusCode != null &&\n result.statusCode !== 200 &&\n !foundError\n ) {\n statusCode = result.statusCode;\n }\n if (result.headers) {\n loaderHeaders[id] = result.headers;\n }\n }\n });\n\n // If we didn't consume the pending action error (i.e., all loaders\n // resolved), then consume it here. Also clear out any loaderData for the\n // throwing route\n if (pendingError) {\n errors = pendingError;\n loaderData[Object.keys(pendingError)[0]] = undefined;\n }\n\n return {\n loaderData,\n errors,\n statusCode: statusCode || 200,\n loaderHeaders,\n };\n}\n\nfunction processLoaderData(\n state: RouterState,\n matches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n pendingError: RouteData | undefined,\n revalidatingFetchers: RevalidatingFetcher[],\n fetcherResults: DataResult[],\n activeDeferreds: Map\n): {\n loaderData: RouterState[\"loaderData\"];\n errors?: RouterState[\"errors\"];\n} {\n let { loaderData, errors } = processRouteLoaderData(\n matches,\n matchesToLoad,\n results,\n pendingError,\n activeDeferreds\n );\n\n // Process results from our revalidating fetchers\n for (let index = 0; index < revalidatingFetchers.length; index++) {\n let { key, match } = revalidatingFetchers[index];\n invariant(\n fetcherResults !== undefined && fetcherResults[index] !== undefined,\n \"Did not find corresponding fetcher result\"\n );\n let result = fetcherResults[index];\n\n // Process fetcher non-redirect errors\n if (isErrorResult(result)) {\n let boundaryMatch = findNearestBoundary(state.matches, match.route.id);\n if (!(errors && errors[boundaryMatch.route.id])) {\n errors = {\n ...errors,\n [boundaryMatch.route.id]: result.error,\n };\n }\n state.fetchers.delete(key);\n } else if (isRedirectResult(result)) {\n // Should never get here, redirects should get processed above, but we\n // keep this to type narrow to a success result in the else\n invariant(false, \"Unhandled fetcher revalidation redirect\");\n } else if (isDeferredResult(result)) {\n // Should never get here, deferred data should be awaited for fetchers\n // in resolveDeferredResults\n invariant(false, \"Unhandled fetcher deferred data\");\n } else {\n let doneFetcher: FetcherStates[\"Idle\"] = {\n state: \"idle\",\n data: result.data,\n formMethod: undefined,\n formAction: undefined,\n formEncType: undefined,\n formData: undefined,\n \" _hasFetcherDoneAnything \": true,\n };\n state.fetchers.set(key, doneFetcher);\n }\n }\n\n return { loaderData, errors };\n}\n\nfunction mergeLoaderData(\n loaderData: RouteData,\n newLoaderData: RouteData,\n matches: AgnosticDataRouteMatch[],\n errors: RouteData | null | undefined\n): RouteData {\n let mergedLoaderData = { ...newLoaderData };\n for (let match of matches) {\n let id = match.route.id;\n if (newLoaderData.hasOwnProperty(id)) {\n if (newLoaderData[id] !== undefined) {\n mergedLoaderData[id] = newLoaderData[id];\n } else {\n // No-op - this is so we ignore existing data if we have a key in the\n // incoming object with an undefined value, which is how we unset a prior\n // loaderData if we encounter a loader error\n }\n } else if (loaderData[id] !== undefined) {\n mergedLoaderData[id] = loaderData[id];\n }\n\n if (errors && errors.hasOwnProperty(id)) {\n // Don't keep any loader data below the boundary\n break;\n }\n }\n return mergedLoaderData;\n}\n\n// Find the nearest error boundary, looking upwards from the leaf route (or the\n// route specified by routeId) for the closest ancestor error boundary,\n// defaulting to the root match\nfunction findNearestBoundary(\n matches: AgnosticDataRouteMatch[],\n routeId?: string\n): AgnosticDataRouteMatch {\n let eligibleMatches = routeId\n ? matches.slice(0, matches.findIndex((m) => m.route.id === routeId) + 1)\n : [...matches];\n return (\n eligibleMatches.reverse().find((m) => m.route.hasErrorBoundary === true) ||\n matches[0]\n );\n}\n\nfunction getShortCircuitMatches(routes: AgnosticDataRouteObject[]): {\n matches: AgnosticDataRouteMatch[];\n route: AgnosticDataRouteObject;\n} {\n // Prefer a root layout route if present, otherwise shim in a route object\n let route = routes.find((r) => r.index || !r.path || r.path === \"/\") || {\n id: `__shim-error-route__`,\n };\n\n return {\n matches: [\n {\n params: {},\n pathname: \"\",\n pathnameBase: \"\",\n route,\n },\n ],\n route,\n };\n}\n\nfunction getInternalRouterError(\n status: number,\n {\n pathname,\n routeId,\n method,\n type,\n }: {\n pathname?: string;\n routeId?: string;\n method?: string;\n type?: \"defer-action\";\n } = {}\n) {\n let statusText = \"Unknown Server Error\";\n let errorMessage = \"Unknown @remix-run/router error\";\n\n if (status === 400) {\n statusText = \"Bad Request\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method} request to \"${pathname}\" but ` +\n `did not provide a \\`loader\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (type === \"defer-action\") {\n errorMessage = \"defer() is not supported in actions\";\n }\n } else if (status === 403) {\n statusText = \"Forbidden\";\n errorMessage = `Route \"${routeId}\" does not match URL \"${pathname}\"`;\n } else if (status === 404) {\n statusText = \"Not Found\";\n errorMessage = `No route matches URL \"${pathname}\"`;\n } else if (status === 405) {\n statusText = \"Method Not Allowed\";\n if (method && pathname && routeId) {\n errorMessage =\n `You made a ${method.toUpperCase()} request to \"${pathname}\" but ` +\n `did not provide an \\`action\\` for route \"${routeId}\", ` +\n `so there is no way to handle the request.`;\n } else if (method) {\n errorMessage = `Invalid request method \"${method.toUpperCase()}\"`;\n }\n }\n\n return new ErrorResponse(\n status || 500,\n statusText,\n new Error(errorMessage),\n true\n );\n}\n\n// Find any returned redirect errors, starting from the lowest match\nfunction findRedirect(results: DataResult[]): RedirectResult | undefined {\n for (let i = results.length - 1; i >= 0; i--) {\n let result = results[i];\n if (isRedirectResult(result)) {\n return result;\n }\n }\n}\n\nfunction stripHashFromPath(path: To) {\n let parsedPath = typeof path === \"string\" ? parsePath(path) : path;\n return createPath({ ...parsedPath, hash: \"\" });\n}\n\nfunction isHashChangeOnly(a: Location, b: Location): boolean {\n return (\n a.pathname === b.pathname && a.search === b.search && a.hash !== b.hash\n );\n}\n\nfunction isDeferredResult(result: DataResult): result is DeferredResult {\n return result.type === ResultType.deferred;\n}\n\nfunction isErrorResult(result: DataResult): result is ErrorResult {\n return result.type === ResultType.error;\n}\n\nfunction isRedirectResult(result?: DataResult): result is RedirectResult {\n return (result && result.type) === ResultType.redirect;\n}\n\nfunction isResponse(value: any): value is Response {\n return (\n value != null &&\n typeof value.status === \"number\" &&\n typeof value.statusText === \"string\" &&\n typeof value.headers === \"object\" &&\n typeof value.body !== \"undefined\"\n );\n}\n\nfunction isRedirectResponse(result: any): result is Response {\n if (!isResponse(result)) {\n return false;\n }\n\n let status = result.status;\n let location = result.headers.get(\"Location\");\n return status >= 300 && status <= 399 && location != null;\n}\n\nfunction isQueryRouteResponse(obj: any): obj is QueryRouteResponse {\n return (\n obj &&\n isResponse(obj.response) &&\n (obj.type === ResultType.data || ResultType.error)\n );\n}\n\nfunction isValidMethod(method: string): method is FormMethod {\n return validRequestMethods.has(method as FormMethod);\n}\n\nfunction isMutationMethod(method?: string): method is MutationFormMethod {\n return validMutationMethods.has(method as MutationFormMethod);\n}\n\nasync function resolveDeferredResults(\n currentMatches: AgnosticDataRouteMatch[],\n matchesToLoad: AgnosticDataRouteMatch[],\n results: DataResult[],\n signal: AbortSignal,\n isFetcher: boolean,\n currentLoaderData?: RouteData\n) {\n for (let index = 0; index < results.length; index++) {\n let result = results[index];\n let match = matchesToLoad[index];\n let currentMatch = currentMatches.find(\n (m) => m.route.id === match.route.id\n );\n let isRevalidatingLoader =\n currentMatch != null &&\n !isNewRouteInstance(currentMatch, match) &&\n (currentLoaderData && currentLoaderData[match.route.id]) !== undefined;\n\n if (isDeferredResult(result) && (isFetcher || isRevalidatingLoader)) {\n // Note: we do not have to touch activeDeferreds here since we race them\n // against the signal in resolveDeferredData and they'll get aborted\n // there if needed\n await resolveDeferredData(result, signal, isFetcher).then((result) => {\n if (result) {\n results[index] = result || results[index];\n }\n });\n }\n }\n}\n\nasync function resolveDeferredData(\n result: DeferredResult,\n signal: AbortSignal,\n unwrap = false\n): Promise {\n let aborted = await result.deferredData.resolveData(signal);\n if (aborted) {\n return;\n }\n\n if (unwrap) {\n try {\n return {\n type: ResultType.data,\n data: result.deferredData.unwrappedData,\n };\n } catch (e) {\n // Handle any TrackedPromise._error values encountered while unwrapping\n return {\n type: ResultType.error,\n error: e,\n };\n }\n }\n\n return {\n type: ResultType.data,\n data: result.deferredData.data,\n };\n}\n\nfunction hasNakedIndexQuery(search: string): boolean {\n return new URLSearchParams(search).getAll(\"index\").some((v) => v === \"\");\n}\n\n// Note: This should match the format exported by useMatches, so if you change\n// this please also change that :) Eventually we'll DRY this up\nfunction createUseMatchesMatch(\n match: AgnosticDataRouteMatch,\n loaderData: RouteData\n): UseMatchesMatch {\n let { route, pathname, params } = match;\n return {\n id: route.id,\n pathname,\n params,\n data: loaderData[route.id] as unknown,\n handle: route.handle as unknown,\n };\n}\n\nfunction getTargetMatch(\n matches: AgnosticDataRouteMatch[],\n location: Location | string\n) {\n let search =\n typeof location === \"string\" ? parsePath(location).search : location.search;\n if (\n matches[matches.length - 1].route.index &&\n hasNakedIndexQuery(search || \"\")\n ) {\n // Return the leaf index route when index is present\n return matches[matches.length - 1];\n }\n // Otherwise grab the deepest \"path contributing\" match (ignoring index and\n // pathless layout routes)\n let pathMatches = getPathContributingMatches(matches);\n return pathMatches[pathMatches.length - 1];\n}\n//#endregion\n","export function requestTimeout(timeoutInMs = 0) {\n return new Promise((resolve, reject) => {\n if (timeoutInMs) {\n setTimeout(() => {\n const timeoutError = new Error(`Request did not complete within ${timeoutInMs} ms`);\n timeoutError.name = \"TimeoutError\";\n reject(timeoutError);\n }, timeoutInMs);\n }\n });\n}\n","import { HttpResponse } from \"@smithy/protocol-http\";\nimport { buildQueryString } from \"@smithy/querystring-builder\";\nimport { requestTimeout } from \"./request-timeout\";\nexport const keepAliveSupport = {\n supported: Boolean(typeof Request !== \"undefined\" && \"keepalive\" in new Request(\"https://[::1]\")),\n};\nexport class FetchHttpHandler {\n constructor(options) {\n if (typeof options === \"function\") {\n this.configProvider = options().then((opts) => opts || {});\n }\n else {\n this.config = options ?? {};\n this.configProvider = Promise.resolve(this.config);\n }\n }\n destroy() {\n }\n async handle(request, { abortSignal } = {}) {\n if (!this.config) {\n this.config = await this.configProvider;\n }\n const requestTimeoutInMs = this.config.requestTimeout;\n const keepAlive = this.config.keepAlive === true;\n if (abortSignal?.aborted) {\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n return Promise.reject(abortError);\n }\n let path = request.path;\n const queryString = buildQueryString(request.query || {});\n if (queryString) {\n path += `?${queryString}`;\n }\n if (request.fragment) {\n path += `#${request.fragment}`;\n }\n let auth = \"\";\n if (request.username != null || request.password != null) {\n const username = request.username ?? \"\";\n const password = request.password ?? \"\";\n auth = `${username}:${password}@`;\n }\n const { port, method } = request;\n const url = `${request.protocol}//${auth}${request.hostname}${port ? `:${port}` : \"\"}${path}`;\n const body = method === \"GET\" || method === \"HEAD\" ? undefined : request.body;\n const requestOptions = { body, headers: new Headers(request.headers), method: method };\n if (typeof AbortController !== \"undefined\") {\n requestOptions[\"signal\"] = abortSignal;\n }\n if (keepAliveSupport.supported) {\n requestOptions[\"keepalive\"] = keepAlive;\n }\n const fetchRequest = new Request(url, requestOptions);\n const raceOfPromises = [\n fetch(fetchRequest).then((response) => {\n const fetchHeaders = response.headers;\n const transformedHeaders = {};\n for (const pair of fetchHeaders.entries()) {\n transformedHeaders[pair[0]] = pair[1];\n }\n const hasReadableStream = response.body != undefined;\n if (!hasReadableStream) {\n return response.blob().then((body) => ({\n response: new HttpResponse({\n headers: transformedHeaders,\n reason: response.statusText,\n statusCode: response.status,\n body,\n }),\n }));\n }\n return {\n response: new HttpResponse({\n headers: transformedHeaders,\n reason: response.statusText,\n statusCode: response.status,\n body: response.body,\n }),\n };\n }),\n requestTimeout(requestTimeoutInMs),\n ];\n if (abortSignal) {\n raceOfPromises.push(new Promise((resolve, reject) => {\n abortSignal.onabort = () => {\n const abortError = new Error(\"Request aborted\");\n abortError.name = \"AbortError\";\n reject(abortError);\n };\n }));\n }\n return Promise.race(raceOfPromises);\n }\n updateHttpClientConfig(key, value) {\n this.config = undefined;\n this.configProvider = this.configProvider.then((config) => {\n config[key] = value;\n return config;\n });\n }\n httpHandlerConfigs() {\n return this.config ?? {};\n }\n}\n","import { escapeUri } from \"@smithy/util-uri-escape\";\nexport function buildQueryString(query) {\n const parts = [];\n for (let key of Object.keys(query).sort()) {\n const value = query[key];\n key = escapeUri(key);\n if (Array.isArray(value)) {\n for (let i = 0, iLen = value.length; i < iLen; i++) {\n parts.push(`${key}=${escapeUri(value[i])}`);\n }\n }\n else {\n let qsEntry = key;\n if (value || typeof value === \"string\") {\n qsEntry += `=${escapeUri(value)}`;\n }\n parts.push(qsEntry);\n }\n }\n return parts.join(\"&\");\n}\n","import { fromBase64 } from \"@smithy/util-base64\";\nexport const streamCollector = (stream) => {\n if (typeof Blob === \"function\" && stream instanceof Blob) {\n return collectBlob(stream);\n }\n return collectStream(stream);\n};\nasync function collectBlob(blob) {\n const base64 = await readToBase64(blob);\n const arrayBuffer = fromBase64(base64);\n return new Uint8Array(arrayBuffer);\n}\nasync function collectStream(stream) {\n let res = new Uint8Array(0);\n const reader = stream.getReader();\n let isDone = false;\n while (!isDone) {\n const { done, value } = await reader.read();\n if (value) {\n const prior = res;\n res = new Uint8Array(prior.length + value.length);\n res.set(prior);\n res.set(value, prior.length);\n }\n isDone = done;\n }\n return res;\n}\nfunction readToBase64(blob) {\n return new Promise((resolve, reject) => {\n const reader = new FileReader();\n reader.onloadend = () => {\n if (reader.readyState !== 2) {\n return reject(new Error(\"Reader aborted too early\"));\n }\n const result = (reader.result ?? \"\");\n const commaIndex = result.indexOf(\",\");\n const dataOffset = commaIndex > -1 ? commaIndex + 1 : result.length;\n resolve(result.substring(dataOffset));\n };\n reader.onabort = () => reject(new Error(\"Read aborted\"));\n reader.onerror = () => reject(reader.error);\n reader.readAsDataURL(blob);\n });\n}\n","export const isArrayBuffer = (arg) => (typeof ArrayBuffer === \"function\" && arg instanceof ArrayBuffer) ||\n Object.prototype.toString.call(arg) === \"[object ArrayBuffer]\";\n","export const resolveParamsForS3 = async (endpointParams) => {\n const bucket = endpointParams?.Bucket || \"\";\n if (typeof endpointParams.Bucket === \"string\") {\n endpointParams.Bucket = bucket.replace(/#/g, encodeURIComponent(\"#\")).replace(/\\?/g, encodeURIComponent(\"?\"));\n }\n if (isArnBucketName(bucket)) {\n if (endpointParams.ForcePathStyle === true) {\n throw new Error(\"Path-style addressing cannot be used with ARN buckets\");\n }\n }\n else if (!isDnsCompatibleBucketName(bucket) ||\n (bucket.indexOf(\".\") !== -1 && !String(endpointParams.Endpoint).startsWith(\"http:\")) ||\n bucket.toLowerCase() !== bucket ||\n bucket.length < 3) {\n endpointParams.ForcePathStyle = true;\n }\n if (endpointParams.DisableMultiRegionAccessPoints) {\n endpointParams.disableMultiRegionAccessPoints = true;\n endpointParams.DisableMRAP = true;\n }\n return endpointParams;\n};\nconst DOMAIN_PATTERN = /^[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]$/;\nconst IP_ADDRESS_PATTERN = /(\\d+\\.){3}\\d+/;\nconst DOTS_PATTERN = /\\.\\./;\nexport const DOT_PATTERN = /\\./;\nexport const S3_HOSTNAME_PATTERN = /^(.+\\.)?s3(-fips)?(\\.dualstack)?[.-]([a-z0-9-]+)\\./;\nexport const isDnsCompatibleBucketName = (bucketName) => DOMAIN_PATTERN.test(bucketName) && !IP_ADDRESS_PATTERN.test(bucketName) && !DOTS_PATTERN.test(bucketName);\nexport const isArnBucketName = (bucketName) => {\n const [arn, partition, service, region, account, typeOrId] = bucketName.split(\":\");\n const isArn = arn === \"arn\" && bucketName.split(\":\").length >= 6;\n const isValidArn = [arn, partition, service, account, typeOrId].filter(Boolean).length === 5;\n if (isArn && !isValidArn) {\n throw new Error(`Invalid ARN: ${bucketName} was an invalid ARN.`);\n }\n return arn === \"arn\" && !!partition && !!service && !!account && !!typeOrId;\n};\n","export const createConfigValueProvider = (configKey, canonicalEndpointParamKey, config) => {\n const configProvider = async () => {\n const configValue = config[configKey] ?? config[canonicalEndpointParamKey];\n if (typeof configValue === \"function\") {\n return configValue();\n }\n return configValue;\n };\n if (configKey === \"endpoint\" || canonicalEndpointParamKey === \"endpoint\") {\n return async () => {\n const endpoint = await configProvider();\n if (endpoint && typeof endpoint === \"object\") {\n if (\"url\" in endpoint) {\n return endpoint.url.href;\n }\n if (\"hostname\" in endpoint) {\n const { protocol, hostname, port, path } = endpoint;\n return `${protocol}//${hostname}${port ? \":\" + port : \"\"}${path}`;\n }\n }\n return endpoint;\n };\n }\n return configProvider;\n};\n","import { parseUrl } from \"@smithy/url-parser\";\nexport const toEndpointV1 = (endpoint) => {\n if (typeof endpoint === \"object\") {\n if (\"url\" in endpoint) {\n return parseUrl(endpoint.url);\n }\n return endpoint;\n }\n return parseUrl(endpoint);\n};\n","import { resolveParamsForS3 } from \"../service-customizations\";\nimport { createConfigValueProvider } from \"./createConfigValueProvider\";\nimport { getEndpointFromConfig } from \"./getEndpointFromConfig\";\nimport { toEndpointV1 } from \"./toEndpointV1\";\nexport const getEndpointFromInstructions = async (commandInput, instructionsSupplier, clientConfig, context) => {\n if (!clientConfig.endpoint) {\n const endpointFromConfig = await getEndpointFromConfig(clientConfig.serviceId || \"\");\n if (endpointFromConfig) {\n clientConfig.endpoint = () => Promise.resolve(toEndpointV1(endpointFromConfig));\n }\n }\n const endpointParams = await resolveParams(commandInput, instructionsSupplier, clientConfig);\n if (typeof clientConfig.endpointProvider !== \"function\") {\n throw new Error(\"config.endpointProvider is not set.\");\n }\n const endpoint = clientConfig.endpointProvider(endpointParams, context);\n return endpoint;\n};\nexport const resolveParams = async (commandInput, instructionsSupplier, clientConfig) => {\n const endpointParams = {};\n const instructions = instructionsSupplier?.getEndpointParameterInstructions?.() || {};\n for (const [name, instruction] of Object.entries(instructions)) {\n switch (instruction.type) {\n case \"staticContextParams\":\n endpointParams[name] = instruction.value;\n break;\n case \"contextParams\":\n endpointParams[name] = commandInput[instruction.name];\n break;\n case \"clientContextParams\":\n case \"builtInParams\":\n endpointParams[name] = await createConfigValueProvider(instruction.name, name, clientConfig)();\n break;\n default:\n throw new Error(\"Unrecognized endpoint parameter instruction: \" + JSON.stringify(instruction));\n }\n }\n if (Object.keys(instructions).length === 0) {\n Object.assign(endpointParams, clientConfig);\n }\n if (String(clientConfig.serviceId).toLowerCase() === \"s3\") {\n await resolveParamsForS3(endpointParams);\n }\n return endpointParams;\n};\n","export const getEndpointFromConfig = async (serviceId) => undefined;\n","import { getEndpointFromInstructions } from \"./adaptors/getEndpointFromInstructions\";\nexport const endpointMiddleware = ({ config, instructions, }) => {\n return (next, context) => async (args) => {\n const endpoint = await getEndpointFromInstructions(args.input, {\n getEndpointParameterInstructions() {\n return instructions;\n },\n }, { ...config }, context);\n context.endpointV2 = endpoint;\n context.authSchemes = endpoint.properties?.authSchemes;\n const authScheme = context.authSchemes?.[0];\n if (authScheme) {\n context[\"signing_region\"] = authScheme.signingRegion;\n context[\"signing_service\"] = authScheme.signingName;\n }\n return next({\n ...args,\n });\n };\n};\n","import { serializerMiddlewareOption } from \"@smithy/middleware-serde\";\nimport { endpointMiddleware } from \"./endpointMiddleware\";\nexport const endpointMiddlewareOptions = {\n step: \"serialize\",\n tags: [\"ENDPOINT_PARAMETERS\", \"ENDPOINT_V2\", \"ENDPOINT\"],\n name: \"endpointV2Middleware\",\n override: true,\n relation: \"before\",\n toMiddleware: serializerMiddlewareOption.name,\n};\nexport const getEndpointPlugin = (config, instructions) => ({\n applyToStack: (clientStack) => {\n clientStack.addRelativeTo(endpointMiddleware({\n config,\n instructions,\n }), endpointMiddlewareOptions);\n },\n});\n","import { normalizeProvider } from \"@smithy/util-middleware\";\nimport { toEndpointV1 } from \"./adaptors/toEndpointV1\";\nexport const resolveEndpointConfig = (input) => {\n const tls = input.tls ?? true;\n const { endpoint } = input;\n const customEndpointProvider = endpoint != null ? async () => toEndpointV1(await normalizeProvider(endpoint)()) : undefined;\n const isCustomEndpoint = !!endpoint;\n return {\n ...input,\n endpoint: customEndpointProvider,\n tls,\n isCustomEndpoint,\n useDualstackEndpoint: normalizeProvider(input.useDualstackEndpoint ?? false),\n useFipsEndpoint: normalizeProvider(input.useFipsEndpoint ?? false),\n };\n};\n","export const deserializerMiddleware = (options, deserializer) => (next, context) => async (args) => {\n const { response } = await next(args);\n try {\n const parsed = await deserializer(response, options);\n return {\n response,\n output: parsed,\n };\n }\n catch (error) {\n Object.defineProperty(error, \"$response\", {\n value: response,\n });\n if (!(\"$metadata\" in error)) {\n const hint = `Deserialization error: to see the raw response, inspect the hidden field {error}.$response on this object.`;\n error.message += \"\\n \" + hint;\n }\n throw error;\n }\n};\n","export const serializerMiddleware = (options, serializer) => (next, context) => async (args) => {\n const endpoint = context.endpointV2?.url && options.urlParser\n ? async () => options.urlParser(context.endpointV2.url)\n : options.endpoint;\n if (!endpoint) {\n throw new Error(\"No valid endpoint provider available.\");\n }\n const request = await serializer(args.input, { ...options, endpoint });\n return next({\n ...args,\n request,\n });\n};\n","import { deserializerMiddleware } from \"./deserializerMiddleware\";\nimport { serializerMiddleware } from \"./serializerMiddleware\";\nexport const deserializerMiddlewareOption = {\n name: \"deserializerMiddleware\",\n step: \"deserialize\",\n tags: [\"DESERIALIZER\"],\n override: true,\n};\nexport const serializerMiddlewareOption = {\n name: \"serializerMiddleware\",\n step: \"serialize\",\n tags: [\"SERIALIZER\"],\n override: true,\n};\nexport function getSerdePlugin(config, serializer, deserializer) {\n return {\n applyToStack: (commandStack) => {\n commandStack.add(deserializerMiddleware(config, deserializer), deserializerMiddlewareOption);\n commandStack.add(serializerMiddleware(config, serializer), serializerMiddlewareOption);\n },\n };\n}\n","export const getHttpHandlerExtensionConfiguration = (runtimeConfig) => {\n let httpHandler = runtimeConfig.httpHandler;\n return {\n setHttpHandler(handler) {\n httpHandler = handler;\n },\n httpHandler() {\n return httpHandler;\n },\n updateHttpClientConfig(key, value) {\n httpHandler.updateHttpClientConfig(key, value);\n },\n httpHandlerConfigs() {\n return httpHandler.httpHandlerConfigs();\n },\n };\n};\nexport const resolveHttpHandlerRuntimeConfig = (httpHandlerExtensionConfiguration) => {\n return {\n httpHandler: httpHandlerExtensionConfiguration.httpHandler(),\n };\n};\n","export class HttpRequest {\n constructor(options) {\n this.method = options.method || \"GET\";\n this.hostname = options.hostname || \"localhost\";\n this.port = options.port;\n this.query = options.query || {};\n this.headers = options.headers || {};\n this.body = options.body;\n this.protocol = options.protocol\n ? options.protocol.slice(-1) !== \":\"\n ? `${options.protocol}:`\n : options.protocol\n : \"https:\";\n this.path = options.path ? (options.path.charAt(0) !== \"/\" ? `/${options.path}` : options.path) : \"/\";\n this.username = options.username;\n this.password = options.password;\n this.fragment = options.fragment;\n }\n static isInstance(request) {\n if (!request)\n return false;\n const req = request;\n return (\"method\" in req &&\n \"protocol\" in req &&\n \"hostname\" in req &&\n \"path\" in req &&\n typeof req[\"query\"] === \"object\" &&\n typeof req[\"headers\"] === \"object\");\n }\n clone() {\n const cloned = new HttpRequest({\n ...this,\n headers: { ...this.headers },\n });\n if (cloned.query)\n cloned.query = cloneQuery(cloned.query);\n return cloned;\n }\n}\nfunction cloneQuery(query) {\n return Object.keys(query).reduce((carry, paramName) => {\n const param = query[paramName];\n return {\n ...carry,\n [paramName]: Array.isArray(param) ? [...param] : param,\n };\n }, {});\n}\n","export class HttpResponse {\n constructor(options) {\n this.statusCode = options.statusCode;\n this.reason = options.reason;\n this.headers = options.headers || {};\n this.body = options.body;\n }\n static isInstance(response) {\n if (!response)\n return false;\n const resp = response;\n return typeof resp.statusCode === \"number\" && typeof resp.headers === \"object\";\n }\n}\n","export function isValidHostname(hostname) {\n const hostPattern = /^[a-z0-9][a-z0-9\\.\\-]*[a-z0-9]$/;\n return hostPattern.test(hostname);\n}\n","export class NoOpLogger {\n trace() { }\n debug() { }\n info() { }\n warn() { }\n error() { }\n}\n","const getAllAliases = (name, aliases) => {\n const _aliases = [];\n if (name) {\n _aliases.push(name);\n }\n if (aliases) {\n for (const alias of aliases) {\n _aliases.push(alias);\n }\n }\n return _aliases;\n};\nconst getMiddlewareNameWithAliases = (name, aliases) => {\n return `${name || \"anonymous\"}${aliases && aliases.length > 0 ? ` (a.k.a. ${aliases.join(\",\")})` : \"\"}`;\n};\nexport const constructStack = () => {\n let absoluteEntries = [];\n let relativeEntries = [];\n let identifyOnResolve = false;\n const entriesNameSet = new Set();\n const sort = (entries) => entries.sort((a, b) => stepWeights[b.step] - stepWeights[a.step] ||\n priorityWeights[b.priority || \"normal\"] - priorityWeights[a.priority || \"normal\"]);\n const removeByName = (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n const aliases = getAllAliases(entry.name, entry.aliases);\n if (aliases.includes(toRemove)) {\n isRemoved = true;\n for (const alias of aliases) {\n entriesNameSet.delete(alias);\n }\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n const removeByReference = (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n if (entry.middleware === toRemove) {\n isRemoved = true;\n for (const alias of getAllAliases(entry.name, entry.aliases)) {\n entriesNameSet.delete(alias);\n }\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n };\n const cloneTo = (toStack) => {\n absoluteEntries.forEach((entry) => {\n toStack.add(entry.middleware, { ...entry });\n });\n relativeEntries.forEach((entry) => {\n toStack.addRelativeTo(entry.middleware, { ...entry });\n });\n toStack.identifyOnResolve?.(stack.identifyOnResolve());\n return toStack;\n };\n const expandRelativeMiddlewareList = (from) => {\n const expandedMiddlewareList = [];\n from.before.forEach((entry) => {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry));\n }\n });\n expandedMiddlewareList.push(from);\n from.after.reverse().forEach((entry) => {\n if (entry.before.length === 0 && entry.after.length === 0) {\n expandedMiddlewareList.push(entry);\n }\n else {\n expandedMiddlewareList.push(...expandRelativeMiddlewareList(entry));\n }\n });\n return expandedMiddlewareList;\n };\n const getMiddlewareList = (debug = false) => {\n const normalizedAbsoluteEntries = [];\n const normalizedRelativeEntries = [];\n const normalizedEntriesNameMap = {};\n absoluteEntries.forEach((entry) => {\n const normalizedEntry = {\n ...entry,\n before: [],\n after: [],\n };\n for (const alias of getAllAliases(normalizedEntry.name, normalizedEntry.aliases)) {\n normalizedEntriesNameMap[alias] = normalizedEntry;\n }\n normalizedAbsoluteEntries.push(normalizedEntry);\n });\n relativeEntries.forEach((entry) => {\n const normalizedEntry = {\n ...entry,\n before: [],\n after: [],\n };\n for (const alias of getAllAliases(normalizedEntry.name, normalizedEntry.aliases)) {\n normalizedEntriesNameMap[alias] = normalizedEntry;\n }\n normalizedRelativeEntries.push(normalizedEntry);\n });\n normalizedRelativeEntries.forEach((entry) => {\n if (entry.toMiddleware) {\n const toMiddleware = normalizedEntriesNameMap[entry.toMiddleware];\n if (toMiddleware === undefined) {\n if (debug) {\n return;\n }\n throw new Error(`${entry.toMiddleware} is not found when adding ` +\n `${getMiddlewareNameWithAliases(entry.name, entry.aliases)} ` +\n `middleware ${entry.relation} ${entry.toMiddleware}`);\n }\n if (entry.relation === \"after\") {\n toMiddleware.after.push(entry);\n }\n if (entry.relation === \"before\") {\n toMiddleware.before.push(entry);\n }\n }\n });\n const mainChain = sort(normalizedAbsoluteEntries)\n .map(expandRelativeMiddlewareList)\n .reduce((wholeList, expandedMiddlewareList) => {\n wholeList.push(...expandedMiddlewareList);\n return wholeList;\n }, []);\n return mainChain;\n };\n const stack = {\n add: (middleware, options = {}) => {\n const { name, override, aliases: _aliases } = options;\n const entry = {\n step: \"initialize\",\n priority: \"normal\",\n middleware,\n ...options,\n };\n const aliases = getAllAliases(name, _aliases);\n if (aliases.length > 0) {\n if (aliases.some((alias) => entriesNameSet.has(alias))) {\n if (!override)\n throw new Error(`Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'`);\n for (const alias of aliases) {\n const toOverrideIndex = absoluteEntries.findIndex((entry) => entry.name === alias || entry.aliases?.some((a) => a === alias));\n if (toOverrideIndex === -1) {\n continue;\n }\n const toOverride = absoluteEntries[toOverrideIndex];\n if (toOverride.step !== entry.step || entry.priority !== toOverride.priority) {\n throw new Error(`\"${getMiddlewareNameWithAliases(toOverride.name, toOverride.aliases)}\" middleware with ` +\n `${toOverride.priority} priority in ${toOverride.step} step cannot ` +\n `be overridden by \"${getMiddlewareNameWithAliases(name, _aliases)}\" middleware with ` +\n `${entry.priority} priority in ${entry.step} step.`);\n }\n absoluteEntries.splice(toOverrideIndex, 1);\n }\n }\n for (const alias of aliases) {\n entriesNameSet.add(alias);\n }\n }\n absoluteEntries.push(entry);\n },\n addRelativeTo: (middleware, options) => {\n const { name, override, aliases: _aliases } = options;\n const entry = {\n middleware,\n ...options,\n };\n const aliases = getAllAliases(name, _aliases);\n if (aliases.length > 0) {\n if (aliases.some((alias) => entriesNameSet.has(alias))) {\n if (!override)\n throw new Error(`Duplicate middleware name '${getMiddlewareNameWithAliases(name, _aliases)}'`);\n for (const alias of aliases) {\n const toOverrideIndex = relativeEntries.findIndex((entry) => entry.name === alias || entry.aliases?.some((a) => a === alias));\n if (toOverrideIndex === -1) {\n continue;\n }\n const toOverride = relativeEntries[toOverrideIndex];\n if (toOverride.toMiddleware !== entry.toMiddleware || toOverride.relation !== entry.relation) {\n throw new Error(`\"${getMiddlewareNameWithAliases(toOverride.name, toOverride.aliases)}\" middleware ` +\n `${toOverride.relation} \"${toOverride.toMiddleware}\" middleware cannot be overridden ` +\n `by \"${getMiddlewareNameWithAliases(name, _aliases)}\" middleware ${entry.relation} ` +\n `\"${entry.toMiddleware}\" middleware.`);\n }\n relativeEntries.splice(toOverrideIndex, 1);\n }\n }\n for (const alias of aliases) {\n entriesNameSet.add(alias);\n }\n }\n relativeEntries.push(entry);\n },\n clone: () => cloneTo(constructStack()),\n use: (plugin) => {\n plugin.applyToStack(stack);\n },\n remove: (toRemove) => {\n if (typeof toRemove === \"string\")\n return removeByName(toRemove);\n else\n return removeByReference(toRemove);\n },\n removeByTag: (toRemove) => {\n let isRemoved = false;\n const filterCb = (entry) => {\n const { tags, name, aliases: _aliases } = entry;\n if (tags && tags.includes(toRemove)) {\n const aliases = getAllAliases(name, _aliases);\n for (const alias of aliases) {\n entriesNameSet.delete(alias);\n }\n isRemoved = true;\n return false;\n }\n return true;\n };\n absoluteEntries = absoluteEntries.filter(filterCb);\n relativeEntries = relativeEntries.filter(filterCb);\n return isRemoved;\n },\n concat: (from) => {\n const cloned = cloneTo(constructStack());\n cloned.use(from);\n cloned.identifyOnResolve(identifyOnResolve || cloned.identifyOnResolve() || (from.identifyOnResolve?.() ?? false));\n return cloned;\n },\n applyToStack: cloneTo,\n identify: () => {\n return getMiddlewareList(true).map((mw) => {\n const step = mw.step ??\n mw.relation +\n \" \" +\n mw.toMiddleware;\n return getMiddlewareNameWithAliases(mw.name, mw.aliases) + \" - \" + step;\n });\n },\n identifyOnResolve(toggle) {\n if (typeof toggle === \"boolean\")\n identifyOnResolve = toggle;\n return identifyOnResolve;\n },\n resolve: (handler, context) => {\n for (const middleware of getMiddlewareList()\n .map((entry) => entry.middleware)\n .reverse()) {\n handler = middleware(handler, context);\n }\n if (identifyOnResolve) {\n console.log(stack.identify());\n }\n return handler;\n },\n };\n return stack;\n};\nconst stepWeights = {\n initialize: 5,\n serialize: 4,\n build: 3,\n finalizeRequest: 2,\n deserialize: 1,\n};\nconst priorityWeights = {\n high: 3,\n normal: 2,\n low: 1,\n};\n","import { constructStack } from \"@smithy/middleware-stack\";\nexport class Client {\n constructor(config) {\n this.middlewareStack = constructStack();\n this.config = config;\n }\n send(command, optionsOrCb, cb) {\n const options = typeof optionsOrCb !== \"function\" ? optionsOrCb : undefined;\n const callback = typeof optionsOrCb === \"function\" ? optionsOrCb : cb;\n const handler = command.resolveMiddleware(this.middlewareStack, this.config, options);\n if (callback) {\n handler(command)\n .then((result) => callback(null, result.output), (err) => callback(err))\n .catch(() => { });\n }\n else {\n return handler(command).then((result) => result.output);\n }\n }\n destroy() {\n if (this.config.requestHandler.destroy)\n this.config.requestHandler.destroy();\n }\n}\n","import { Uint8ArrayBlobAdapter } from \"@smithy/util-stream\";\nexport const collectBody = async (streamBody = new Uint8Array(), context) => {\n if (streamBody instanceof Uint8Array) {\n return Uint8ArrayBlobAdapter.mutate(streamBody);\n }\n if (!streamBody) {\n return Uint8ArrayBlobAdapter.mutate(new Uint8Array());\n }\n const fromContext = context.streamCollector(streamBody);\n return Uint8ArrayBlobAdapter.mutate(await fromContext);\n};\n","import { constructStack } from \"@smithy/middleware-stack\";\nexport class Command {\n constructor() {\n this.middlewareStack = constructStack();\n }\n}\n","export const SENSITIVE_STRING = \"***SensitiveInformation***\";\n","export const createAggregatedClient = (commands, Client) => {\n for (const command of Object.keys(commands)) {\n const CommandCtor = commands[command];\n const methodImpl = async function (args, optionsOrCb, cb) {\n const command = new CommandCtor(args);\n if (typeof optionsOrCb === \"function\") {\n this.send(command, optionsOrCb);\n }\n else if (typeof cb === \"function\") {\n if (typeof optionsOrCb !== \"object\")\n throw new Error(`Expected http options but got ${typeof optionsOrCb}`);\n this.send(command, optionsOrCb || {}, cb);\n }\n else {\n return this.send(command, optionsOrCb);\n }\n };\n const methodName = (command[0].toLowerCase() + command.slice(1)).replace(/Command$/, \"\");\n Client.prototype[methodName] = methodImpl;\n }\n};\n","export const parseBoolean = (value) => {\n switch (value) {\n case \"true\":\n return true;\n case \"false\":\n return false;\n default:\n throw new Error(`Unable to parse boolean value \"${value}\"`);\n }\n};\nexport const expectBoolean = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"number\") {\n if (value === 0 || value === 1) {\n logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`));\n }\n if (value === 0) {\n return false;\n }\n if (value === 1) {\n return true;\n }\n }\n if (typeof value === \"string\") {\n const lower = value.toLowerCase();\n if (lower === \"false\" || lower === \"true\") {\n logger.warn(stackTraceWarning(`Expected boolean, got ${typeof value}: ${value}`));\n }\n if (lower === \"false\") {\n return false;\n }\n if (lower === \"true\") {\n return true;\n }\n }\n if (typeof value === \"boolean\") {\n return value;\n }\n throw new TypeError(`Expected boolean, got ${typeof value}: ${value}`);\n};\nexport const expectNumber = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"string\") {\n const parsed = parseFloat(value);\n if (!Number.isNaN(parsed)) {\n if (String(parsed) !== String(value)) {\n logger.warn(stackTraceWarning(`Expected number but observed string: ${value}`));\n }\n return parsed;\n }\n }\n if (typeof value === \"number\") {\n return value;\n }\n throw new TypeError(`Expected number, got ${typeof value}: ${value}`);\n};\nconst MAX_FLOAT = Math.ceil(2 ** 127 * (2 - 2 ** -23));\nexport const expectFloat32 = (value) => {\n const expected = expectNumber(value);\n if (expected !== undefined && !Number.isNaN(expected) && expected !== Infinity && expected !== -Infinity) {\n if (Math.abs(expected) > MAX_FLOAT) {\n throw new TypeError(`Expected 32-bit float, got ${value}`);\n }\n }\n return expected;\n};\nexport const expectLong = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (Number.isInteger(value) && !Number.isNaN(value)) {\n return value;\n }\n throw new TypeError(`Expected integer, got ${typeof value}: ${value}`);\n};\nexport const expectInt = expectLong;\nexport const expectInt32 = (value) => expectSizedInt(value, 32);\nexport const expectShort = (value) => expectSizedInt(value, 16);\nexport const expectByte = (value) => expectSizedInt(value, 8);\nconst expectSizedInt = (value, size) => {\n const expected = expectLong(value);\n if (expected !== undefined && castInt(expected, size) !== expected) {\n throw new TypeError(`Expected ${size}-bit integer, got ${value}`);\n }\n return expected;\n};\nconst castInt = (value, size) => {\n switch (size) {\n case 32:\n return Int32Array.of(value)[0];\n case 16:\n return Int16Array.of(value)[0];\n case 8:\n return Int8Array.of(value)[0];\n }\n};\nexport const expectNonNull = (value, location) => {\n if (value === null || value === undefined) {\n if (location) {\n throw new TypeError(`Expected a non-null value for ${location}`);\n }\n throw new TypeError(\"Expected a non-null value\");\n }\n return value;\n};\nexport const expectObject = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"object\" && !Array.isArray(value)) {\n return value;\n }\n const receivedType = Array.isArray(value) ? \"array\" : typeof value;\n throw new TypeError(`Expected object, got ${receivedType}: ${value}`);\n};\nexport const expectString = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value === \"string\") {\n return value;\n }\n if ([\"boolean\", \"number\", \"bigint\"].includes(typeof value)) {\n logger.warn(stackTraceWarning(`Expected string, got ${typeof value}: ${value}`));\n return String(value);\n }\n throw new TypeError(`Expected string, got ${typeof value}: ${value}`);\n};\nexport const expectUnion = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n const asObject = expectObject(value);\n const setKeys = Object.entries(asObject)\n .filter(([, v]) => v != null)\n .map(([k]) => k);\n if (setKeys.length === 0) {\n throw new TypeError(`Unions must have exactly one non-null member. None were found.`);\n }\n if (setKeys.length > 1) {\n throw new TypeError(`Unions must have exactly one non-null member. Keys ${setKeys} were not null.`);\n }\n return asObject;\n};\nexport const strictParseDouble = (value) => {\n if (typeof value == \"string\") {\n return expectNumber(parseNumber(value));\n }\n return expectNumber(value);\n};\nexport const strictParseFloat = strictParseDouble;\nexport const strictParseFloat32 = (value) => {\n if (typeof value == \"string\") {\n return expectFloat32(parseNumber(value));\n }\n return expectFloat32(value);\n};\nconst NUMBER_REGEX = /(-?(?:0|[1-9]\\d*)(?:\\.\\d+)?(?:[eE][+-]?\\d+)?)|(-?Infinity)|(NaN)/g;\nconst parseNumber = (value) => {\n const matches = value.match(NUMBER_REGEX);\n if (matches === null || matches[0].length !== value.length) {\n throw new TypeError(`Expected real number, got implicit NaN`);\n }\n return parseFloat(value);\n};\nexport const limitedParseDouble = (value) => {\n if (typeof value == \"string\") {\n return parseFloatString(value);\n }\n return expectNumber(value);\n};\nexport const handleFloat = limitedParseDouble;\nexport const limitedParseFloat = limitedParseDouble;\nexport const limitedParseFloat32 = (value) => {\n if (typeof value == \"string\") {\n return parseFloatString(value);\n }\n return expectFloat32(value);\n};\nconst parseFloatString = (value) => {\n switch (value) {\n case \"NaN\":\n return NaN;\n case \"Infinity\":\n return Infinity;\n case \"-Infinity\":\n return -Infinity;\n default:\n throw new Error(`Unable to parse float value: ${value}`);\n }\n};\nexport const strictParseLong = (value) => {\n if (typeof value === \"string\") {\n return expectLong(parseNumber(value));\n }\n return expectLong(value);\n};\nexport const strictParseInt = strictParseLong;\nexport const strictParseInt32 = (value) => {\n if (typeof value === \"string\") {\n return expectInt32(parseNumber(value));\n }\n return expectInt32(value);\n};\nexport const strictParseShort = (value) => {\n if (typeof value === \"string\") {\n return expectShort(parseNumber(value));\n }\n return expectShort(value);\n};\nexport const strictParseByte = (value) => {\n if (typeof value === \"string\") {\n return expectByte(parseNumber(value));\n }\n return expectByte(value);\n};\nconst stackTraceWarning = (message) => {\n return String(new TypeError(message).stack || message)\n .split(\"\\n\")\n .slice(0, 5)\n .filter((s) => !s.includes(\"stackTraceWarning\"))\n .join(\"\\n\");\n};\nexport const logger = {\n warn: console.warn,\n};\n","import { strictParseByte, strictParseDouble, strictParseFloat32, strictParseShort } from \"./parse-utils\";\nconst DAYS = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\nconst MONTHS = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\nexport function dateToUtcString(date) {\n const year = date.getUTCFullYear();\n const month = date.getUTCMonth();\n const dayOfWeek = date.getUTCDay();\n const dayOfMonthInt = date.getUTCDate();\n const hoursInt = date.getUTCHours();\n const minutesInt = date.getUTCMinutes();\n const secondsInt = date.getUTCSeconds();\n const dayOfMonthString = dayOfMonthInt < 10 ? `0${dayOfMonthInt}` : `${dayOfMonthInt}`;\n const hoursString = hoursInt < 10 ? `0${hoursInt}` : `${hoursInt}`;\n const minutesString = minutesInt < 10 ? `0${minutesInt}` : `${minutesInt}`;\n const secondsString = secondsInt < 10 ? `0${secondsInt}` : `${secondsInt}`;\n return `${DAYS[dayOfWeek]}, ${dayOfMonthString} ${MONTHS[month]} ${year} ${hoursString}:${minutesString}:${secondsString} GMT`;\n}\nconst RFC3339 = new RegExp(/^(\\d{4})-(\\d{2})-(\\d{2})[tT](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?[zZ]$/);\nexport const parseRfc3339DateTime = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-3339 date-times must be expressed as strings\");\n }\n const match = RFC3339.exec(value);\n if (!match) {\n throw new TypeError(\"Invalid RFC-3339 date-time value\");\n }\n const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n const year = strictParseShort(stripLeadingZeroes(yearStr));\n const month = parseDateValue(monthStr, \"month\", 1, 12);\n const day = parseDateValue(dayStr, \"day\", 1, 31);\n return buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds });\n};\nconst RFC3339_WITH_OFFSET = new RegExp(/^(\\d{4})-(\\d{2})-(\\d{2})[tT](\\d{2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))?(([-+]\\d{2}\\:\\d{2})|[zZ])$/);\nexport const parseRfc3339DateTimeWithOffset = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-3339 date-times must be expressed as strings\");\n }\n const match = RFC3339_WITH_OFFSET.exec(value);\n if (!match) {\n throw new TypeError(\"Invalid RFC-3339 date-time value\");\n }\n const [_, yearStr, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, offsetStr] = match;\n const year = strictParseShort(stripLeadingZeroes(yearStr));\n const month = parseDateValue(monthStr, \"month\", 1, 12);\n const day = parseDateValue(dayStr, \"day\", 1, 31);\n const date = buildDate(year, month, day, { hours, minutes, seconds, fractionalMilliseconds });\n if (offsetStr.toUpperCase() != \"Z\") {\n date.setTime(date.getTime() - parseOffsetToMilliseconds(offsetStr));\n }\n return date;\n};\nconst IMF_FIXDATE = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun), (\\d{2}) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) (\\d{4}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? GMT$/);\nconst RFC_850_DATE = new RegExp(/^(?:Monday|Tuesday|Wednesday|Thursday|Friday|Saturday|Sunday), (\\d{2})-(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec)-(\\d{2}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? GMT$/);\nconst ASC_TIME = new RegExp(/^(?:Mon|Tue|Wed|Thu|Fri|Sat|Sun) (Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec) ( [1-9]|\\d{2}) (\\d{1,2}):(\\d{2}):(\\d{2})(?:\\.(\\d+))? (\\d{4})$/);\nexport const parseRfc7231DateTime = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n if (typeof value !== \"string\") {\n throw new TypeError(\"RFC-7231 date-times must be expressed as strings\");\n }\n let match = IMF_FIXDATE.exec(value);\n if (match) {\n const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n return buildDate(strictParseShort(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr, \"day\", 1, 31), { hours, minutes, seconds, fractionalMilliseconds });\n }\n match = RFC_850_DATE.exec(value);\n if (match) {\n const [_, dayStr, monthStr, yearStr, hours, minutes, seconds, fractionalMilliseconds] = match;\n return adjustRfc850Year(buildDate(parseTwoDigitYear(yearStr), parseMonthByShortName(monthStr), parseDateValue(dayStr, \"day\", 1, 31), {\n hours,\n minutes,\n seconds,\n fractionalMilliseconds,\n }));\n }\n match = ASC_TIME.exec(value);\n if (match) {\n const [_, monthStr, dayStr, hours, minutes, seconds, fractionalMilliseconds, yearStr] = match;\n return buildDate(strictParseShort(stripLeadingZeroes(yearStr)), parseMonthByShortName(monthStr), parseDateValue(dayStr.trimLeft(), \"day\", 1, 31), { hours, minutes, seconds, fractionalMilliseconds });\n }\n throw new TypeError(\"Invalid RFC-7231 date-time value\");\n};\nexport const parseEpochTimestamp = (value) => {\n if (value === null || value === undefined) {\n return undefined;\n }\n let valueAsDouble;\n if (typeof value === \"number\") {\n valueAsDouble = value;\n }\n else if (typeof value === \"string\") {\n valueAsDouble = strictParseDouble(value);\n }\n else {\n throw new TypeError(\"Epoch timestamps must be expressed as floating point numbers or their string representation\");\n }\n if (Number.isNaN(valueAsDouble) || valueAsDouble === Infinity || valueAsDouble === -Infinity) {\n throw new TypeError(\"Epoch timestamps must be valid, non-Infinite, non-NaN numerics\");\n }\n return new Date(Math.round(valueAsDouble * 1000));\n};\nconst buildDate = (year, month, day, time) => {\n const adjustedMonth = month - 1;\n validateDayOfMonth(year, adjustedMonth, day);\n return new Date(Date.UTC(year, adjustedMonth, day, parseDateValue(time.hours, \"hour\", 0, 23), parseDateValue(time.minutes, \"minute\", 0, 59), parseDateValue(time.seconds, \"seconds\", 0, 60), parseMilliseconds(time.fractionalMilliseconds)));\n};\nconst parseTwoDigitYear = (value) => {\n const thisYear = new Date().getUTCFullYear();\n const valueInThisCentury = Math.floor(thisYear / 100) * 100 + strictParseShort(stripLeadingZeroes(value));\n if (valueInThisCentury < thisYear) {\n return valueInThisCentury + 100;\n }\n return valueInThisCentury;\n};\nconst FIFTY_YEARS_IN_MILLIS = 50 * 365 * 24 * 60 * 60 * 1000;\nconst adjustRfc850Year = (input) => {\n if (input.getTime() - new Date().getTime() > FIFTY_YEARS_IN_MILLIS) {\n return new Date(Date.UTC(input.getUTCFullYear() - 100, input.getUTCMonth(), input.getUTCDate(), input.getUTCHours(), input.getUTCMinutes(), input.getUTCSeconds(), input.getUTCMilliseconds()));\n }\n return input;\n};\nconst parseMonthByShortName = (value) => {\n const monthIdx = MONTHS.indexOf(value);\n if (monthIdx < 0) {\n throw new TypeError(`Invalid month: ${value}`);\n }\n return monthIdx + 1;\n};\nconst DAYS_IN_MONTH = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\nconst validateDayOfMonth = (year, month, day) => {\n let maxDays = DAYS_IN_MONTH[month];\n if (month === 1 && isLeapYear(year)) {\n maxDays = 29;\n }\n if (day > maxDays) {\n throw new TypeError(`Invalid day for ${MONTHS[month]} in ${year}: ${day}`);\n }\n};\nconst isLeapYear = (year) => {\n return year % 4 === 0 && (year % 100 !== 0 || year % 400 === 0);\n};\nconst parseDateValue = (value, type, lower, upper) => {\n const dateVal = strictParseByte(stripLeadingZeroes(value));\n if (dateVal < lower || dateVal > upper) {\n throw new TypeError(`${type} must be between ${lower} and ${upper}, inclusive`);\n }\n return dateVal;\n};\nconst parseMilliseconds = (value) => {\n if (value === null || value === undefined) {\n return 0;\n }\n return strictParseFloat32(\"0.\" + value) * 1000;\n};\nconst parseOffsetToMilliseconds = (value) => {\n const directionStr = value[0];\n let direction = 1;\n if (directionStr == \"+\") {\n direction = 1;\n }\n else if (directionStr == \"-\") {\n direction = -1;\n }\n else {\n throw new TypeError(`Offset direction, ${directionStr}, must be \"+\" or \"-\"`);\n }\n const hour = Number(value.substring(1, 3));\n const minute = Number(value.substring(4, 6));\n return direction * (hour * 60 + minute) * 60 * 1000;\n};\nconst stripLeadingZeroes = (value) => {\n let idx = 0;\n while (idx < value.length - 1 && value.charAt(idx) === \"0\") {\n idx++;\n }\n if (idx === 0) {\n return value;\n }\n return value.slice(idx);\n};\n","export class ServiceException extends Error {\n constructor(options) {\n super(options.message);\n Object.setPrototypeOf(this, ServiceException.prototype);\n this.name = options.name;\n this.$fault = options.$fault;\n this.$metadata = options.$metadata;\n }\n}\nexport const decorateServiceException = (exception, additions = {}) => {\n Object.entries(additions)\n .filter(([, v]) => v !== undefined)\n .forEach(([k, v]) => {\n if (exception[k] == undefined || exception[k] === \"\") {\n exception[k] = v;\n }\n });\n const message = exception.message || exception.Message || \"UnknownError\";\n exception.message = message;\n delete exception.Message;\n return exception;\n};\n","import { decorateServiceException } from \"./exceptions\";\nexport const throwDefaultError = ({ output, parsedBody, exceptionCtor, errorCode }) => {\n const $metadata = deserializeMetadata(output);\n const statusCode = $metadata.httpStatusCode ? $metadata.httpStatusCode + \"\" : undefined;\n const response = new exceptionCtor({\n name: parsedBody?.code || parsedBody?.Code || errorCode || statusCode || \"UnknownError\",\n $fault: \"client\",\n $metadata,\n });\n throw decorateServiceException(response, parsedBody);\n};\nexport const withBaseException = (ExceptionCtor) => {\n return ({ output, parsedBody, errorCode }) => {\n throwDefaultError({ output, parsedBody, exceptionCtor: ExceptionCtor, errorCode });\n };\n};\nconst deserializeMetadata = (output) => ({\n httpStatusCode: output.statusCode,\n requestId: output.headers[\"x-amzn-requestid\"] ?? output.headers[\"x-amzn-request-id\"] ?? output.headers[\"x-amz-request-id\"],\n extendedRequestId: output.headers[\"x-amz-id-2\"],\n cfId: output.headers[\"x-amz-cf-id\"],\n});\n","export const loadConfigsForDefaultMode = (mode) => {\n switch (mode) {\n case \"standard\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 3100,\n };\n case \"in-region\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 1100,\n };\n case \"cross-region\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 3100,\n };\n case \"mobile\":\n return {\n retryMode: \"standard\",\n connectionTimeout: 30000,\n };\n default:\n return {};\n }\n};\n","import { AlgorithmId } from \"@smithy/types\";\nexport { AlgorithmId };\nexport const getChecksumConfiguration = (runtimeConfig) => {\n const checksumAlgorithms = [];\n for (const id in AlgorithmId) {\n const algorithmId = AlgorithmId[id];\n if (runtimeConfig[algorithmId] === undefined) {\n continue;\n }\n checksumAlgorithms.push({\n algorithmId: () => algorithmId,\n checksumConstructor: () => runtimeConfig[algorithmId],\n });\n }\n return {\n _checksumAlgorithms: checksumAlgorithms,\n addChecksumAlgorithm(algo) {\n this._checksumAlgorithms.push(algo);\n },\n checksumAlgorithms() {\n return this._checksumAlgorithms;\n },\n };\n};\nexport const resolveChecksumRuntimeConfig = (clientConfig) => {\n const runtimeConfig = {};\n clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => {\n runtimeConfig[checksumAlgorithm.algorithmId()] = checksumAlgorithm.checksumConstructor();\n });\n return runtimeConfig;\n};\n","export const getRetryConfiguration = (runtimeConfig) => {\n let _retryStrategy = runtimeConfig.retryStrategy;\n return {\n setRetryStrategy(retryStrategy) {\n _retryStrategy = retryStrategy;\n },\n retryStrategy() {\n return _retryStrategy;\n },\n };\n};\nexport const resolveRetryRuntimeConfig = (retryStrategyConfiguration) => {\n const runtimeConfig = {};\n runtimeConfig.retryStrategy = retryStrategyConfiguration.retryStrategy();\n return runtimeConfig;\n};\n","import { getChecksumConfiguration, resolveChecksumRuntimeConfig } from \"./checksum\";\nimport { getRetryConfiguration, resolveRetryRuntimeConfig } from \"./retry\";\nexport const getDefaultExtensionConfiguration = (runtimeConfig) => {\n return {\n ...getChecksumConfiguration(runtimeConfig),\n ...getRetryConfiguration(runtimeConfig),\n };\n};\nexport const getDefaultClientConfiguration = getDefaultExtensionConfiguration;\nexport const resolveDefaultRuntimeConfig = (config) => {\n return {\n ...resolveChecksumRuntimeConfig(config),\n ...resolveRetryRuntimeConfig(config),\n };\n};\n","export function extendedEncodeURIComponent(str) {\n return encodeURIComponent(str).replace(/[!'()*]/g, function (c) {\n return \"%\" + c.charCodeAt(0).toString(16).toUpperCase();\n });\n}\n","export const getArrayIfSingleItem = (mayBeArray) => Array.isArray(mayBeArray) ? mayBeArray : [mayBeArray];\n","export const getValueFromTextNode = (obj) => {\n const textNodeName = \"#text\";\n for (const key in obj) {\n if (obj.hasOwnProperty(key) && obj[key][textNodeName] !== undefined) {\n obj[key] = obj[key][textNodeName];\n }\n else if (typeof obj[key] === \"object\" && obj[key] !== null) {\n obj[key] = getValueFromTextNode(obj[key]);\n }\n }\n return obj;\n};\n","export const StringWrapper = function () {\n const Class = Object.getPrototypeOf(this).constructor;\n const Constructor = Function.bind.apply(String, [null, ...arguments]);\n const instance = new Constructor();\n Object.setPrototypeOf(instance, Class.prototype);\n return instance;\n};\nStringWrapper.prototype = Object.create(String.prototype, {\n constructor: {\n value: StringWrapper,\n enumerable: false,\n writable: true,\n configurable: true,\n },\n});\nObject.setPrototypeOf(StringWrapper, String);\nexport class LazyJsonString extends StringWrapper {\n deserializeJSON() {\n return JSON.parse(super.toString());\n }\n toJSON() {\n return super.toString();\n }\n static fromObject(object) {\n if (object instanceof LazyJsonString) {\n return object;\n }\n else if (object instanceof String || typeof object === \"string\") {\n return new LazyJsonString(object);\n }\n return new LazyJsonString(JSON.stringify(object));\n }\n}\n","export function map(arg0, arg1, arg2) {\n let target;\n let filter;\n let instructions;\n if (typeof arg1 === \"undefined\" && typeof arg2 === \"undefined\") {\n target = {};\n instructions = arg0;\n }\n else {\n target = arg0;\n if (typeof arg1 === \"function\") {\n filter = arg1;\n instructions = arg2;\n return mapWithFilter(target, filter, instructions);\n }\n else {\n instructions = arg1;\n }\n }\n for (const key of Object.keys(instructions)) {\n if (!Array.isArray(instructions[key])) {\n target[key] = instructions[key];\n continue;\n }\n applyInstruction(target, null, instructions, key);\n }\n return target;\n}\nexport const convertMap = (target) => {\n const output = {};\n for (const [k, v] of Object.entries(target || {})) {\n output[k] = [, v];\n }\n return output;\n};\nexport const take = (source, instructions) => {\n const out = {};\n for (const key in instructions) {\n applyInstruction(out, source, instructions, key);\n }\n return out;\n};\nconst mapWithFilter = (target, filter, instructions) => {\n return map(target, Object.entries(instructions).reduce((_instructions, [key, value]) => {\n if (Array.isArray(value)) {\n _instructions[key] = value;\n }\n else {\n if (typeof value === \"function\") {\n _instructions[key] = [filter, value()];\n }\n else {\n _instructions[key] = [filter, value];\n }\n }\n return _instructions;\n }, {}));\n};\nconst applyInstruction = (target, source, instructions, targetKey) => {\n if (source !== null) {\n let instruction = instructions[targetKey];\n if (typeof instruction === \"function\") {\n instruction = [, instruction];\n }\n const [filter = nonNullish, valueFn = pass, sourceKey = targetKey] = instruction;\n if ((typeof filter === \"function\" && filter(source[sourceKey])) || (typeof filter !== \"function\" && !!filter)) {\n target[targetKey] = valueFn(source[sourceKey]);\n }\n return;\n }\n let [filter, value] = instructions[targetKey];\n if (typeof value === \"function\") {\n let _value;\n const defaultFilterPassed = filter === undefined && (_value = value()) != null;\n const customFilterPassed = (typeof filter === \"function\" && !!filter(void 0)) || (typeof filter !== \"function\" && !!filter);\n if (defaultFilterPassed) {\n target[targetKey] = _value;\n }\n else if (customFilterPassed) {\n target[targetKey] = value();\n }\n }\n else {\n const defaultFilterPassed = filter === undefined && value != null;\n const customFilterPassed = (typeof filter === \"function\" && !!filter(value)) || (typeof filter !== \"function\" && !!filter);\n if (defaultFilterPassed || customFilterPassed) {\n target[targetKey] = value;\n }\n }\n};\nconst nonNullish = (_) => _ != null;\nconst pass = (_) => _;\n","import { extendedEncodeURIComponent } from \"./extended-encode-uri-component\";\nexport const resolvedPath = (resolvedPath, input, memberName, labelValueProvider, uriLabel, isGreedyLabel) => {\n if (input != null && input[memberName] !== undefined) {\n const labelValue = labelValueProvider();\n if (labelValue.length <= 0) {\n throw new Error(\"Empty value provided for input HTTP label: \" + memberName + \".\");\n }\n resolvedPath = resolvedPath.replace(uriLabel, isGreedyLabel\n ? labelValue\n .split(\"/\")\n .map((segment) => extendedEncodeURIComponent(segment))\n .join(\"/\")\n : extendedEncodeURIComponent(labelValue));\n }\n else {\n throw new Error(\"No value provided for input HTTP label: \" + memberName + \".\");\n }\n return resolvedPath;\n};\n","export var HttpAuthLocation;\n(function (HttpAuthLocation) {\n HttpAuthLocation[\"HEADER\"] = \"header\";\n HttpAuthLocation[\"QUERY\"] = \"query\";\n})(HttpAuthLocation || (HttpAuthLocation = {}));\n","export var EndpointURLScheme;\n(function (EndpointURLScheme) {\n EndpointURLScheme[\"HTTP\"] = \"http\";\n EndpointURLScheme[\"HTTPS\"] = \"https\";\n})(EndpointURLScheme || (EndpointURLScheme = {}));\n","export var AlgorithmId;\n(function (AlgorithmId) {\n AlgorithmId[\"MD5\"] = \"md5\";\n AlgorithmId[\"CRC32\"] = \"crc32\";\n AlgorithmId[\"CRC32C\"] = \"crc32c\";\n AlgorithmId[\"SHA1\"] = \"sha1\";\n AlgorithmId[\"SHA256\"] = \"sha256\";\n})(AlgorithmId || (AlgorithmId = {}));\nexport const getChecksumConfiguration = (runtimeConfig) => {\n const checksumAlgorithms = [];\n if (runtimeConfig.sha256 !== undefined) {\n checksumAlgorithms.push({\n algorithmId: () => AlgorithmId.SHA256,\n checksumConstructor: () => runtimeConfig.sha256,\n });\n }\n if (runtimeConfig.md5 != undefined) {\n checksumAlgorithms.push({\n algorithmId: () => AlgorithmId.MD5,\n checksumConstructor: () => runtimeConfig.md5,\n });\n }\n return {\n _checksumAlgorithms: checksumAlgorithms,\n addChecksumAlgorithm(algo) {\n this._checksumAlgorithms.push(algo);\n },\n checksumAlgorithms() {\n return this._checksumAlgorithms;\n },\n };\n};\nexport const resolveChecksumRuntimeConfig = (clientConfig) => {\n const runtimeConfig = {};\n clientConfig.checksumAlgorithms().forEach((checksumAlgorithm) => {\n runtimeConfig[checksumAlgorithm.algorithmId()] = checksumAlgorithm.checksumConstructor();\n });\n return runtimeConfig;\n};\n","export var FieldPosition;\n(function (FieldPosition) {\n FieldPosition[FieldPosition[\"HEADER\"] = 0] = \"HEADER\";\n FieldPosition[FieldPosition[\"TRAILER\"] = 1] = \"TRAILER\";\n})(FieldPosition || (FieldPosition = {}));\n","export const SMITHY_CONTEXT_KEY = \"__smithy_context\";\n","export var IniSectionType;\n(function (IniSectionType) {\n IniSectionType[\"PROFILE\"] = \"profile\";\n IniSectionType[\"SSO_SESSION\"] = \"sso-session\";\n IniSectionType[\"SERVICES\"] = \"services\";\n})(IniSectionType || (IniSectionType = {}));\n","export var RequestHandlerProtocol;\n(function (RequestHandlerProtocol) {\n RequestHandlerProtocol[\"HTTP_0_9\"] = \"http/0.9\";\n RequestHandlerProtocol[\"HTTP_1_0\"] = \"http/1.0\";\n RequestHandlerProtocol[\"TDS_8_0\"] = \"tds/8.0\";\n})(RequestHandlerProtocol || (RequestHandlerProtocol = {}));\n","import { parseQueryString } from \"@smithy/querystring-parser\";\nexport const parseUrl = (url) => {\n if (typeof url === \"string\") {\n return parseUrl(new URL(url));\n }\n const { hostname, pathname, port, protocol, search } = url;\n let query;\n if (search) {\n query = parseQueryString(search);\n }\n return {\n hostname,\n port: port ? parseInt(port) : undefined,\n protocol,\n path: pathname,\n query,\n };\n};\n","export function parseQueryString(querystring) {\n const query = {};\n querystring = querystring.replace(/^\\?/, \"\");\n if (querystring) {\n for (const pair of querystring.split(\"&\")) {\n let [key, value = null] = pair.split(\"=\");\n key = decodeURIComponent(key);\n if (value) {\n value = decodeURIComponent(value);\n }\n if (!(key in query)) {\n query[key] = value;\n }\n else if (Array.isArray(query[key])) {\n query[key].push(value);\n }\n else {\n query[key] = [query[key], value];\n }\n }\n }\n return query;\n}\n","const alphabetByEncoding = {};\nconst alphabetByValue = new Array(64);\nfor (let i = 0, start = \"A\".charCodeAt(0), limit = \"Z\".charCodeAt(0); i + start <= limit; i++) {\n const char = String.fromCharCode(i + start);\n alphabetByEncoding[char] = i;\n alphabetByValue[i] = char;\n}\nfor (let i = 0, start = \"a\".charCodeAt(0), limit = \"z\".charCodeAt(0); i + start <= limit; i++) {\n const char = String.fromCharCode(i + start);\n const index = i + 26;\n alphabetByEncoding[char] = index;\n alphabetByValue[index] = char;\n}\nfor (let i = 0; i < 10; i++) {\n alphabetByEncoding[i.toString(10)] = i + 52;\n const char = i.toString(10);\n const index = i + 52;\n alphabetByEncoding[char] = index;\n alphabetByValue[index] = char;\n}\nalphabetByEncoding[\"+\"] = 62;\nalphabetByValue[62] = \"+\";\nalphabetByEncoding[\"/\"] = 63;\nalphabetByValue[63] = \"/\";\nconst bitsPerLetter = 6;\nconst bitsPerByte = 8;\nconst maxLetterValue = 0b111111;\nexport { alphabetByEncoding, alphabetByValue, bitsPerLetter, bitsPerByte, maxLetterValue };\n","import { alphabetByEncoding, bitsPerByte, bitsPerLetter } from \"./constants.browser\";\nexport const fromBase64 = (input) => {\n let totalByteLength = (input.length / 4) * 3;\n if (input.slice(-2) === \"==\") {\n totalByteLength -= 2;\n }\n else if (input.slice(-1) === \"=\") {\n totalByteLength--;\n }\n const out = new ArrayBuffer(totalByteLength);\n const dataView = new DataView(out);\n for (let i = 0; i < input.length; i += 4) {\n let bits = 0;\n let bitLength = 0;\n for (let j = i, limit = i + 3; j <= limit; j++) {\n if (input[j] !== \"=\") {\n if (!(input[j] in alphabetByEncoding)) {\n throw new TypeError(`Invalid character ${input[j]} in base64 string.`);\n }\n bits |= alphabetByEncoding[input[j]] << ((limit - j) * bitsPerLetter);\n bitLength += bitsPerLetter;\n }\n else {\n bits >>= bitsPerLetter;\n }\n }\n const chunkOffset = (i / 4) * 3;\n bits >>= bitLength % bitsPerByte;\n const byteLength = Math.floor(bitLength / bitsPerByte);\n for (let k = 0; k < byteLength; k++) {\n const offset = (byteLength - k - 1) * bitsPerByte;\n dataView.setUint8(chunkOffset + k, (bits & (255 << offset)) >> offset);\n }\n }\n return new Uint8Array(out);\n};\n","import { alphabetByValue, bitsPerByte, bitsPerLetter, maxLetterValue } from \"./constants.browser\";\nexport function toBase64(input) {\n let str = \"\";\n for (let i = 0; i < input.length; i += 3) {\n let bits = 0;\n let bitLength = 0;\n for (let j = i, limit = Math.min(i + 3, input.length); j < limit; j++) {\n bits |= input[j] << ((limit - j - 1) * bitsPerByte);\n bitLength += bitsPerByte;\n }\n const bitClusterCount = Math.ceil(bitLength / bitsPerLetter);\n bits <<= bitClusterCount * bitsPerLetter - bitLength;\n for (let k = 1; k <= bitClusterCount; k++) {\n const offset = (bitClusterCount - k) * bitsPerLetter;\n str += alphabetByValue[(bits & (maxLetterValue << offset)) >> offset];\n }\n str += \"==\".slice(0, 4 - bitClusterCount);\n }\n return str;\n}\n","const SHORT_TO_HEX = {};\nconst HEX_TO_SHORT = {};\nfor (let i = 0; i < 256; i++) {\n let encodedByte = i.toString(16).toLowerCase();\n if (encodedByte.length === 1) {\n encodedByte = `0${encodedByte}`;\n }\n SHORT_TO_HEX[i] = encodedByte;\n HEX_TO_SHORT[encodedByte] = i;\n}\nexport function fromHex(encoded) {\n if (encoded.length % 2 !== 0) {\n throw new Error(\"Hex encoded strings must have an even number length\");\n }\n const out = new Uint8Array(encoded.length / 2);\n for (let i = 0; i < encoded.length; i += 2) {\n const encodedByte = encoded.slice(i, i + 2).toLowerCase();\n if (encodedByte in HEX_TO_SHORT) {\n out[i / 2] = HEX_TO_SHORT[encodedByte];\n }\n else {\n throw new Error(`Cannot decode unrecognized sequence ${encodedByte} as hexadecimal`);\n }\n }\n return out;\n}\nexport function toHex(bytes) {\n let out = \"\";\n for (let i = 0; i < bytes.byteLength; i++) {\n out += SHORT_TO_HEX[bytes[i]];\n }\n return out;\n}\n","import { SMITHY_CONTEXT_KEY } from \"@smithy/types\";\nexport const getSmithyContext = (context) => context[SMITHY_CONTEXT_KEY] || (context[SMITHY_CONTEXT_KEY] = {});\n","export const normalizeProvider = (input) => {\n if (typeof input === \"function\")\n return input;\n const promisified = Promise.resolve(input);\n return () => promisified;\n};\n","import { transformFromString, transformToString } from \"./transforms\";\nexport class Uint8ArrayBlobAdapter extends Uint8Array {\n static fromString(source, encoding = \"utf-8\") {\n switch (typeof source) {\n case \"string\":\n return transformFromString(source, encoding);\n default:\n throw new Error(`Unsupported conversion from ${typeof source} to Uint8ArrayBlobAdapter.`);\n }\n }\n static mutate(source) {\n Object.setPrototypeOf(source, Uint8ArrayBlobAdapter.prototype);\n return source;\n }\n transformToString(encoding = \"utf-8\") {\n return transformToString(this, encoding);\n }\n}\n","import { fromBase64, toBase64 } from \"@smithy/util-base64\";\nimport { fromUtf8, toUtf8 } from \"@smithy/util-utf8\";\nimport { Uint8ArrayBlobAdapter } from \"./Uint8ArrayBlobAdapter\";\nexport function transformToString(payload, encoding = \"utf-8\") {\n if (encoding === \"base64\") {\n return toBase64(payload);\n }\n return toUtf8(payload);\n}\nexport function transformFromString(str, encoding) {\n if (encoding === \"base64\") {\n return Uint8ArrayBlobAdapter.mutate(fromBase64(str));\n }\n return Uint8ArrayBlobAdapter.mutate(fromUtf8(str));\n}\n","export const getAwsChunkedEncodingStream = (readableStream, options) => {\n const { base64Encoder, bodyLengthChecker, checksumAlgorithmFn, checksumLocationName, streamHasher } = options;\n const checksumRequired = base64Encoder !== undefined &&\n bodyLengthChecker !== undefined &&\n checksumAlgorithmFn !== undefined &&\n checksumLocationName !== undefined &&\n streamHasher !== undefined;\n const digest = checksumRequired ? streamHasher(checksumAlgorithmFn, readableStream) : undefined;\n const reader = readableStream.getReader();\n return new ReadableStream({\n async pull(controller) {\n const { value, done } = await reader.read();\n if (done) {\n controller.enqueue(`0\\r\\n`);\n if (checksumRequired) {\n const checksum = base64Encoder(await digest);\n controller.enqueue(`${checksumLocationName}:${checksum}\\r\\n`);\n controller.enqueue(`\\r\\n`);\n }\n controller.close();\n }\n else {\n controller.enqueue(`${(bodyLengthChecker(value) || 0).toString(16)}\\r\\n${value}\\r\\n`);\n }\n },\n });\n};\n","import { streamCollector } from \"@smithy/fetch-http-handler\";\nimport { toBase64 } from \"@smithy/util-base64\";\nimport { toHex } from \"@smithy/util-hex-encoding\";\nimport { toUtf8 } from \"@smithy/util-utf8\";\nconst ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED = \"The stream has already been transformed.\";\nexport const sdkStreamMixin = (stream) => {\n if (!isBlobInstance(stream) && !isReadableStreamInstance(stream)) {\n const name = stream?.__proto__?.constructor?.name || stream;\n throw new Error(`Unexpected stream implementation, expect Blob or ReadableStream, got ${name}`);\n }\n let transformed = false;\n const transformToByteArray = async () => {\n if (transformed) {\n throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED);\n }\n transformed = true;\n return await streamCollector(stream);\n };\n const blobToWebStream = (blob) => {\n if (typeof blob.stream !== \"function\") {\n throw new Error(\"Cannot transform payload Blob to web stream. Please make sure the Blob.stream() is polyfilled.\\n\" +\n \"If you are using React Native, this API is not yet supported, see: https://react-native.canny.io/feature-requests/p/fetch-streaming-body\");\n }\n return blob.stream();\n };\n return Object.assign(stream, {\n transformToByteArray: transformToByteArray,\n transformToString: async (encoding) => {\n const buf = await transformToByteArray();\n if (encoding === \"base64\") {\n return toBase64(buf);\n }\n else if (encoding === \"hex\") {\n return toHex(buf);\n }\n else if (encoding === undefined || encoding === \"utf8\" || encoding === \"utf-8\") {\n return toUtf8(buf);\n }\n else if (typeof TextDecoder === \"function\") {\n return new TextDecoder(encoding).decode(buf);\n }\n else {\n throw new Error(\"TextDecoder is not available, please make sure polyfill is provided.\");\n }\n },\n transformToWebStream: () => {\n if (transformed) {\n throw new Error(ERR_MSG_STREAM_HAS_BEEN_TRANSFORMED);\n }\n transformed = true;\n if (isBlobInstance(stream)) {\n return blobToWebStream(stream);\n }\n else if (isReadableStreamInstance(stream)) {\n return stream;\n }\n else {\n throw new Error(`Cannot transform payload to web stream, got ${stream}`);\n }\n },\n });\n};\nconst isBlobInstance = (stream) => typeof Blob === \"function\" && stream instanceof Blob;\nconst isReadableStreamInstance = (stream) => typeof ReadableStream === \"function\" && stream instanceof ReadableStream;\n","export const escapeUri = (uri) => encodeURIComponent(uri).replace(/[!'()*]/g, hexEncode);\nconst hexEncode = (c) => `%${c.charCodeAt(0).toString(16).toUpperCase()}`;\n","export const fromUtf8 = (input) => new TextEncoder().encode(input);\n","import { fromUtf8 } from \"./fromUtf8\";\nexport const toUint8Array = (data) => {\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n return new Uint8Array(data);\n};\n","export const toUtf8 = (input) => new TextDecoder(\"utf-8\").decode(input);\n","const { toString, hasOwnProperty } = Object.prototype;\nconst previousComparisons = new Map>();\n\n/**\n * Performs a deep equality check on two JavaScript values, tolerating cycles.\n */\nexport function equal(a: any, b: any): boolean {\n try {\n return check(a, b);\n } finally {\n previousComparisons.clear();\n }\n}\n\n// Allow default imports as well.\nexport default equal;\n\nfunction check(a: any, b: any): boolean {\n // If the two values are strictly equal, our job is easy.\n if (a === b) {\n return true;\n }\n\n // Object.prototype.toString returns a representation of the runtime type of\n // the given value that is considerably more precise than typeof.\n const aTag = toString.call(a);\n const bTag = toString.call(b);\n\n // If the runtime types of a and b are different, they could maybe be equal\n // under some interpretation of equality, but for simplicity and performance\n // we just return false instead.\n if (aTag !== bTag) {\n return false;\n }\n\n switch (aTag) {\n case '[object Array]':\n // Arrays are a lot like other objects, but we can cheaply compare their\n // lengths as a short-cut before comparing their elements.\n if (a.length !== b.length) return false;\n // Fall through to object case...\n case '[object Object]': {\n if (previouslyCompared(a, b)) return true;\n\n const aKeys = Object.keys(a);\n const bKeys = Object.keys(b);\n\n // If `a` and `b` have a different number of enumerable keys, they\n // must be different.\n const keyCount = aKeys.length;\n if (keyCount !== bKeys.length) return false;\n\n // Now make sure they have the same keys.\n for (let k = 0; k < keyCount; ++k) {\n if (!hasOwnProperty.call(b, aKeys[k])) {\n return false;\n }\n }\n\n // Finally, check deep equality of all child properties.\n for (let k = 0; k < keyCount; ++k) {\n const key = aKeys[k];\n if (!check(a[key], b[key])) {\n return false;\n }\n }\n\n return true;\n }\n\n case '[object Error]':\n return a.name === b.name && a.message === b.message;\n\n case '[object Number]':\n // Handle NaN, which is !== itself.\n if (a !== a) return b !== b;\n // Fall through to shared +a === +b case...\n case '[object Boolean]':\n case '[object Date]':\n return +a === +b;\n\n case '[object RegExp]':\n case '[object String]':\n return a == `${b}`;\n\n case '[object Map]':\n case '[object Set]': {\n if (a.size !== b.size) return false;\n if (previouslyCompared(a, b)) return true;\n\n const aIterator = a.entries();\n const isMap = aTag === '[object Map]';\n\n while (true) {\n const info = aIterator.next();\n if (info.done) break;\n\n // If a instanceof Set, aValue === aKey.\n const [aKey, aValue] = info.value;\n\n // So this works the same way for both Set and Map.\n if (!b.has(aKey)) {\n return false;\n }\n\n // However, we care about deep equality of values only when dealing\n // with Map structures.\n if (isMap && !check(aValue, b.get(aKey))) {\n return false;\n }\n }\n\n return true;\n }\n }\n\n // Otherwise the values are not equal.\n return false;\n}\n\nfunction previouslyCompared(a: object, b: object): boolean {\n // Though cyclic references can make an object graph appear infinite from the\n // perspective of a depth-first traversal, the graph still contains a finite\n // number of distinct object references. We use the previousComparisons cache\n // to avoid comparing the same pair of object references more than once, which\n // guarantees termination (even if we end up comparing every object in one\n // graph to every object in the other graph, which is extremely unlikely),\n // while still allowing weird isomorphic structures (like rings with different\n // lengths) a chance to pass the equality test.\n let bSet = previousComparisons.get(a);\n if (bSet) {\n // Return true here because we can be sure false will be returned somewhere\n // else if the objects are not equivalent.\n if (bSet.has(b)) return true;\n } else {\n previousComparisons.set(a, bSet = new Set);\n }\n bSet.add(b);\n return false;\n}\n","/**\n * @ag-grid-community/all-modules - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue * @version v30.2.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\n/**\n * If value is undefined, null or blank, returns null, otherwise returns the value\n * @param {T} value\n * @returns {T | null}\n */\nfunction makeNull(value) {\n if (value == null || value === '') {\n return null;\n }\n return value;\n}\nfunction exists(value, allowEmptyString) {\n if (allowEmptyString === void 0) { allowEmptyString = false; }\n return value != null && (value !== '' || allowEmptyString);\n}\nfunction missing(value) {\n return !exists(value);\n}\nfunction missingOrEmpty(value) {\n return value == null || value.length === 0;\n}\nfunction toStringOrNull(value) {\n return value != null && typeof value.toString === 'function' ? value.toString() : null;\n}\n// for parsing html attributes, where we want empty strings and missing attributes to be undefined\nfunction attrToNumber(value) {\n if (value === undefined) {\n // undefined or empty means ignore the value\n return;\n }\n if (value === null || value === '') {\n // null or blank means clear\n return null;\n }\n if (typeof value === 'number') {\n return isNaN(value) ? undefined : value;\n }\n var valueParsed = parseInt(value, 10);\n return isNaN(valueParsed) ? undefined : valueParsed;\n}\n// for parsing html attributes, where we want empty strings and missing attributes to be undefined\nfunction attrToBoolean(value) {\n if (value === undefined) {\n // undefined or empty means ignore the value\n return;\n }\n if (value === null || value === '') {\n // null means clear\n return false;\n }\n if (typeof value === 'boolean') {\n // if simple boolean, return the boolean\n return value;\n }\n // if equal to the string 'true' (ignoring case) then return true\n return (/true/i).test(value);\n}\n// for parsing html attributes, where we want empty strings and missing attributes to be undefined\nfunction attrToString(value) {\n if (value == null || value === '') {\n return;\n }\n return value;\n}\n/** @deprecated */\nfunction referenceCompare(left, right) {\n if (left == null && right == null) {\n return true;\n }\n if (left == null && right != null) {\n return false;\n }\n if (left != null && right == null) {\n return false;\n }\n return left === right;\n}\nfunction jsonEquals(val1, val2) {\n var val1Json = val1 ? JSON.stringify(val1) : null;\n var val2Json = val2 ? JSON.stringify(val2) : null;\n return val1Json === val2Json;\n}\nfunction defaultComparator(valueA, valueB, accentedCompare) {\n if (accentedCompare === void 0) { accentedCompare = false; }\n var valueAMissing = valueA == null;\n var valueBMissing = valueB == null;\n // this is for aggregations sum and avg, where the result can be a number that is wrapped.\n // if we didn't do this, then the toString() value would be used, which would result in\n // the strings getting used instead of the numbers.\n if (valueA && valueA.toNumber) {\n valueA = valueA.toNumber();\n }\n if (valueB && valueB.toNumber) {\n valueB = valueB.toNumber();\n }\n if (valueAMissing && valueBMissing) {\n return 0;\n }\n if (valueAMissing) {\n return -1;\n }\n if (valueBMissing) {\n return 1;\n }\n function doQuickCompare(a, b) {\n return (a > b ? 1 : (a < b ? -1 : 0));\n }\n if (typeof valueA !== 'string') {\n return doQuickCompare(valueA, valueB);\n }\n if (!accentedCompare) {\n return doQuickCompare(valueA, valueB);\n }\n try {\n // using local compare also allows chinese comparisons\n return valueA.localeCompare(valueB);\n }\n catch (e) {\n // if something wrong with localeCompare, eg not supported\n // by browser, then just continue with the quick one\n return doQuickCompare(valueA, valueB);\n }\n}\nfunction values(object) {\n if (object instanceof Set || object instanceof Map) {\n var arr_1 = [];\n object.forEach(function (value) { return arr_1.push(value); });\n return arr_1;\n }\n return Object.values(object);\n}\n\nvar GenericUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n makeNull: makeNull,\n exists: exists,\n missing: missing,\n missingOrEmpty: missingOrEmpty,\n toStringOrNull: toStringOrNull,\n attrToNumber: attrToNumber,\n attrToBoolean: attrToBoolean,\n attrToString: attrToString,\n referenceCompare: referenceCompare,\n jsonEquals: jsonEquals,\n defaultComparator: defaultComparator,\n values: values\n});\n\n// class returns a unique id to use for the column. it checks the existing columns, and if the requested\nvar ColumnKeyCreator = /** @class */ (function () {\n function ColumnKeyCreator() {\n this.existingKeys = {};\n }\n ColumnKeyCreator.prototype.addExistingKeys = function (keys) {\n for (var i = 0; i < keys.length; i++) {\n this.existingKeys[keys[i]] = true;\n }\n };\n ColumnKeyCreator.prototype.getUniqueKey = function (colId, colField) {\n // in case user passed in number for colId, convert to string\n colId = toStringOrNull(colId);\n var count = 0;\n while (true) {\n var idToTry = void 0;\n if (colId) {\n idToTry = colId;\n if (count !== 0) {\n idToTry += '_' + count;\n }\n }\n else if (colField) {\n idToTry = colField;\n if (count !== 0) {\n idToTry += '_' + count;\n }\n }\n else {\n // no point in stringing this, object treats it the same anyway.\n idToTry = count;\n }\n if (!this.existingKeys[idToTry]) {\n this.existingKeys[idToTry] = true;\n return String(idToTry);\n }\n count++;\n }\n };\n return ColumnKeyCreator;\n}());\n\nvar __values$8 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$z = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nfunction iterateObject(object, callback) {\n var e_1, _a;\n if (object == null) {\n return;\n }\n if (Array.isArray(object)) {\n for (var i = 0; i < object.length; i++) {\n callback(i.toString(), object[i]);\n }\n return;\n }\n try {\n for (var _b = __values$8(Object.entries(object)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read$z(_c.value, 2), key = _d[0], value = _d[1];\n callback(key, value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n}\nfunction cloneObject(object) {\n var copy = {};\n var keys = Object.keys(object);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = object[key];\n copy[key] = value;\n }\n return copy;\n}\nfunction deepCloneObject(object) {\n return JSON.parse(JSON.stringify(object));\n}\n// returns copy of an object, doing a deep clone of any objects with that object.\n// this is used for eg creating copies of Column Definitions, where we want to\n// deep copy all objects, but do not want to deep copy functions (eg when user provides\n// a function or class for colDef.cellRenderer)\nfunction deepCloneDefinition(object, keysToSkip) {\n if (!object) {\n return;\n }\n var obj = object;\n var res = {};\n Object.keys(obj).forEach(function (key) {\n if (keysToSkip && keysToSkip.indexOf(key) >= 0) {\n return;\n }\n var value = obj[key];\n // 'simple object' means a bunch of key/value pairs, eg {filter: 'myFilter'}. it does\n // NOT include the following:\n // 1) arrays\n // 2) functions or classes (eg ColumnAPI instance)\n var sourceIsSimpleObject = isNonNullObject(value) && value.constructor === Object;\n if (sourceIsSimpleObject) {\n res[key] = deepCloneDefinition(value);\n }\n else {\n res[key] = value;\n }\n });\n return res;\n}\nfunction getProperty(object, key) {\n return object[key];\n}\nfunction setProperty(object, key, value) {\n object[key] = value;\n}\n/**\n * Will copy the specified properties from `source` into the equivalent properties on `target`, ignoring properties with\n * a value of `undefined`.\n */\nfunction copyPropertiesIfPresent(source, target) {\n var properties = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n properties[_i - 2] = arguments[_i];\n }\n properties.forEach(function (p) { return copyPropertyIfPresent(source, target, p); });\n}\n/**\n * Will copy the specified property from `source` into the equivalent property on `target`, unless the property has a\n * value of `undefined`. If a transformation is provided, it will be applied to the value before being set on `target`.\n */\nfunction copyPropertyIfPresent(source, target, property, transform) {\n var value = getProperty(source, property);\n if (value !== undefined) {\n setProperty(target, property, transform ? transform(value) : value);\n }\n}\nfunction getAllKeysInObjects(objects) {\n var allValues = {};\n objects.filter(function (obj) { return obj != null; }).forEach(function (obj) {\n Object.keys(obj).forEach(function (key) { return allValues[key] = null; });\n });\n return Object.keys(allValues);\n}\nfunction getAllValuesInObject(obj) {\n if (!obj) {\n return [];\n }\n var anyObject = Object;\n if (typeof anyObject.values === 'function') {\n return anyObject.values(obj);\n }\n var ret = [];\n for (var key in obj) {\n if (obj.hasOwnProperty(key) && obj.propertyIsEnumerable(key)) {\n ret.push(obj[key]);\n }\n }\n return ret;\n}\nfunction mergeDeep(dest, source, copyUndefined, makeCopyOfSimpleObjects) {\n if (copyUndefined === void 0) { copyUndefined = true; }\n if (makeCopyOfSimpleObjects === void 0) { makeCopyOfSimpleObjects = false; }\n if (!exists(source)) {\n return;\n }\n iterateObject(source, function (key, sourceValue) {\n var destValue = dest[key];\n if (destValue === sourceValue) {\n return;\n }\n // when creating params, we don't want to just copy objects over. otherwise merging ColDefs (eg DefaultColDef\n // and Column Types) would result in params getting shared between objects.\n // by putting an empty value into destValue first, it means we end up copying over values from\n // the source object, rather than just copying in the source object in it's entirety.\n if (makeCopyOfSimpleObjects) {\n var objectIsDueToBeCopied = destValue == null && sourceValue != null;\n if (objectIsDueToBeCopied) {\n // 'simple object' means a bunch of key/value pairs, eg {filter: 'myFilter'}, as opposed\n // to a Class instance (such as ColumnAPI instance).\n var sourceIsSimpleObject = typeof sourceValue === 'object' && sourceValue.constructor === Object;\n var dontCopy = sourceIsSimpleObject;\n if (dontCopy) {\n destValue = {};\n dest[key] = destValue;\n }\n }\n }\n if (isNonNullObject(sourceValue) && isNonNullObject(destValue) && !Array.isArray(destValue)) {\n mergeDeep(destValue, sourceValue, copyUndefined, makeCopyOfSimpleObjects);\n }\n else if (copyUndefined || sourceValue !== undefined) {\n dest[key] = sourceValue;\n }\n });\n}\nfunction missingOrEmptyObject(value) {\n return missing(value) || Object.keys(value).length === 0;\n}\nfunction get(source, expression, defaultValue) {\n if (source == null) {\n return defaultValue;\n }\n var keys = expression.split('.');\n var objectToRead = source;\n while (keys.length > 1) {\n objectToRead = objectToRead[keys.shift()];\n if (objectToRead == null) {\n return defaultValue;\n }\n }\n var value = objectToRead[keys[0]];\n return value != null ? value : defaultValue;\n}\nfunction set(target, expression, value) {\n if (target == null) {\n return;\n }\n var keys = expression.split('.');\n var objectToUpdate = target;\n // Create empty objects\n keys.forEach(function (key, i) {\n if (!objectToUpdate[key]) {\n objectToUpdate[key] = {};\n }\n if (i < keys.length - 1) {\n objectToUpdate = objectToUpdate[key];\n }\n });\n objectToUpdate[keys[keys.length - 1]] = value;\n}\nfunction getValueUsingField(data, field, fieldContainsDots) {\n if (!field || !data) {\n return;\n }\n // if no '.', then it's not a deep value\n if (!fieldContainsDots) {\n return data[field];\n }\n // otherwise it is a deep value, so need to dig for it\n var fields = field.split('.');\n var currentObject = data;\n for (var i = 0; i < fields.length; i++) {\n if (currentObject == null) {\n return undefined;\n }\n currentObject = currentObject[fields[i]];\n }\n return currentObject;\n}\n// used by ColumnAPI and GridAPI to remove all references, so keeping grid in memory resulting in a\n// memory leak if user is not disposing of the GridAPI or ColumnApi references\nfunction removeAllReferences(obj, objectName) {\n Object.keys(obj).forEach(function (key) {\n var value = obj[key];\n // we want to replace all the @autowired services, which are objects. any simple types (boolean, string etc)\n // we don't care about\n if (typeof value === 'object') {\n obj[key] = undefined;\n }\n });\n var proto = Object.getPrototypeOf(obj);\n var properties = {};\n Object.keys(proto).forEach(function (key) {\n var value = proto[key];\n // leave all basic types - this is needed for GridAPI to leave the \"destroyed: boolean\" attribute alone\n if (typeof value === 'function') {\n var func = function () {\n console.warn(\"AG Grid: \" + objectName + \" function \" + key + \"() cannot be called as the grid has been destroyed.\\n Please don't call grid API functions on destroyed grids - as a matter of fact you shouldn't\\n be keeping the API reference, your application has a memory leak! Remove the API reference\\n when the grid is destroyed.\");\n };\n properties[key] = { value: func, writable: true };\n }\n });\n Object.defineProperties(obj, properties);\n}\nfunction isNonNullObject(value) {\n return typeof value === 'object' && value !== null;\n}\n\nvar ObjectUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n iterateObject: iterateObject,\n cloneObject: cloneObject,\n deepCloneObject: deepCloneObject,\n deepCloneDefinition: deepCloneDefinition,\n getProperty: getProperty,\n setProperty: setProperty,\n copyPropertiesIfPresent: copyPropertiesIfPresent,\n copyPropertyIfPresent: copyPropertyIfPresent,\n getAllKeysInObjects: getAllKeysInObjects,\n getAllValuesInObject: getAllValuesInObject,\n mergeDeep: mergeDeep,\n missingOrEmptyObject: missingOrEmptyObject,\n get: get,\n set: set,\n getValueUsingField: getValueUsingField,\n removeAllReferences: removeAllReferences,\n isNonNullObject: isNonNullObject\n});\n\nvar doOnceFlags = {};\n/**\n * If the key was passed before, then doesn't execute the func\n * @param {Function} func\n * @param {string} key\n */\nfunction doOnce(func, key) {\n if (doOnceFlags[key]) {\n return;\n }\n func();\n doOnceFlags[key] = true;\n}\nfunction getFunctionName(funcConstructor) {\n // for every other browser in the world\n if (funcConstructor.name) {\n return funcConstructor.name;\n }\n // for the pestilence that is ie11\n var matches = /function\\s+([^\\(]+)/.exec(funcConstructor.toString());\n return matches && matches.length === 2 ? matches[1].trim() : null;\n}\nfunction isFunction(val) {\n return !!(val && val.constructor && val.call && val.apply);\n}\nfunction executeInAWhile(funcs) {\n executeAfter(funcs, 400);\n}\nvar executeNextVMTurnFuncs = [];\nvar executeNextVMTurnPending = false;\nfunction executeNextVMTurn(func) {\n executeNextVMTurnFuncs.push(func);\n if (executeNextVMTurnPending) {\n return;\n }\n executeNextVMTurnPending = true;\n window.setTimeout(function () {\n var funcsCopy = executeNextVMTurnFuncs.slice();\n executeNextVMTurnFuncs.length = 0;\n executeNextVMTurnPending = false;\n funcsCopy.forEach(function (func) { return func(); });\n }, 0);\n}\nfunction executeAfter(funcs, milliseconds) {\n if (milliseconds === void 0) { milliseconds = 0; }\n if (funcs.length > 0) {\n window.setTimeout(function () { return funcs.forEach(function (func) { return func(); }); }, milliseconds);\n }\n}\n/**\n * @param {Function} func The function to be debounced\n * @param {number} delay The time in ms to debounce\n * @return {Function} The debounced function\n */\nfunction debounce(func, delay) {\n var timeout;\n // Calling debounce returns a new anonymous function\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var context = this;\n window.clearTimeout(timeout);\n // Set the new timeout\n timeout = window.setTimeout(function () {\n func.apply(context, args);\n }, delay);\n };\n}\n/**\n * @param {Function} func The function to be throttled\n * @param {number} wait The time in ms to throttle\n * @return {Function} The throttled function\n */\nfunction throttle(func, wait) {\n var previousCall = 0;\n return function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var context = this;\n var currentCall = new Date().getTime();\n if (currentCall - previousCall < wait) {\n return;\n }\n previousCall = currentCall;\n func.apply(context, args);\n };\n}\nfunction waitUntil(condition, callback, timeout, timeoutMessage) {\n if (timeout === void 0) { timeout = 100; }\n var timeStamp = new Date().getTime();\n var interval = null;\n var executed = false;\n var internalCallback = function () {\n var reachedTimeout = ((new Date().getTime()) - timeStamp) > timeout;\n if (condition() || reachedTimeout) {\n callback();\n executed = true;\n if (interval != null) {\n window.clearInterval(interval);\n interval = null;\n }\n if (reachedTimeout && timeoutMessage) {\n console.warn(timeoutMessage);\n }\n }\n };\n internalCallback();\n if (!executed) {\n interval = window.setInterval(internalCallback, 10);\n }\n}\nfunction compose() {\n var fns = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n fns[_i] = arguments[_i];\n }\n return function (arg) { return fns.reduce(function (composed, f) { return f(composed); }, arg); };\n}\nfunction callIfPresent(func) {\n if (func) {\n func();\n }\n}\nvar noop = function () { return; };\n\nvar FunctionUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n doOnce: doOnce,\n getFunctionName: getFunctionName,\n isFunction: isFunction,\n executeInAWhile: executeInAWhile,\n executeNextVMTurn: executeNextVMTurn,\n executeAfter: executeAfter,\n debounce: debounce,\n throttle: throttle,\n waitUntil: waitUntil,\n compose: compose,\n callIfPresent: callIfPresent,\n noop: noop\n});\n\nvar ModuleNames;\n(function (ModuleNames) {\n ModuleNames[\"CommunityCoreModule\"] = \"@ag-grid-community/core\";\n // community modules\n ModuleNames[\"InfiniteRowModelModule\"] = \"@ag-grid-community/infinite-row-model\";\n ModuleNames[\"ClientSideRowModelModule\"] = \"@ag-grid-community/client-side-row-model\";\n ModuleNames[\"CsvExportModule\"] = \"@ag-grid-community/csv-export\";\n // enterprise core - users don't need to import on this, but other enterprise modules do\n ModuleNames[\"EnterpriseCoreModule\"] = \"@ag-grid-enterprise/core\";\n // enterprise modules\n ModuleNames[\"RowGroupingModule\"] = \"@ag-grid-enterprise/row-grouping\";\n ModuleNames[\"ColumnsToolPanelModule\"] = \"@ag-grid-enterprise/column-tool-panel\";\n ModuleNames[\"FiltersToolPanelModule\"] = \"@ag-grid-enterprise/filter-tool-panel\";\n ModuleNames[\"MenuModule\"] = \"@ag-grid-enterprise/menu\";\n ModuleNames[\"SetFilterModule\"] = \"@ag-grid-enterprise/set-filter\";\n ModuleNames[\"MultiFilterModule\"] = \"@ag-grid-enterprise/multi-filter\";\n ModuleNames[\"StatusBarModule\"] = \"@ag-grid-enterprise/status-bar\";\n ModuleNames[\"SideBarModule\"] = \"@ag-grid-enterprise/side-bar\";\n ModuleNames[\"RangeSelectionModule\"] = \"@ag-grid-enterprise/range-selection\";\n ModuleNames[\"MasterDetailModule\"] = \"@ag-grid-enterprise/master-detail\";\n ModuleNames[\"RichSelectModule\"] = \"@ag-grid-enterprise/rich-select\";\n ModuleNames[\"GridChartsModule\"] = \"@ag-grid-enterprise/charts\";\n ModuleNames[\"ViewportRowModelModule\"] = \"@ag-grid-enterprise/viewport-row-model\";\n ModuleNames[\"ServerSideRowModelModule\"] = \"@ag-grid-enterprise/server-side-row-model\";\n ModuleNames[\"ExcelExportModule\"] = \"@ag-grid-enterprise/excel-export\";\n ModuleNames[\"ClipboardModule\"] = \"@ag-grid-enterprise/clipboard\";\n ModuleNames[\"SparklinesModule\"] = \"@ag-grid-enterprise/sparklines\";\n ModuleNames[\"AdvancedFilterModule\"] = \"@ag-grid-enterprise/advanced-filter\";\n // framework wrappers currently don't provide beans, comps etc, so no need to be modules,\n // however i argue they should be as in theory they 'could' provide beans etc\n ModuleNames[\"AngularModule\"] = \"@ag-grid-community/angular\";\n ModuleNames[\"ReactModule\"] = \"@ag-grid-community/react\";\n ModuleNames[\"VueModule\"] = \"@ag-grid-community/vue\";\n // and then this, which is definitely not a grid module, as it should not have any dependency\n // on the grid (ie shouldn't even reference the Module interface)\n // ChartsModule = \"@ag-grid-community/charts-core\",\n})(ModuleNames || (ModuleNames = {}));\n\nvar __read$y = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$r = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar ModuleRegistry = /** @class */ (function () {\n function ModuleRegistry() {\n }\n /**\n * Globally register the given module for all grids.\n * @param module - module to register\n */\n ModuleRegistry.register = function (module) {\n ModuleRegistry.__register(module, true, undefined);\n };\n /**\n * Globally register the given modules for all grids.\n * @param modules - modules to register\n */\n ModuleRegistry.registerModules = function (modules) {\n ModuleRegistry.__registerModules(modules, true, undefined);\n };\n /** AG GRID INTERNAL - Module registration helper. */\n ModuleRegistry.__register = function (module, moduleBased, gridId) {\n ModuleRegistry.runVersionChecks(module);\n if (gridId !== undefined) {\n ModuleRegistry.areGridScopedModules = true;\n if (ModuleRegistry.gridModulesMap[gridId] === undefined) {\n ModuleRegistry.gridModulesMap[gridId] = {};\n }\n ModuleRegistry.gridModulesMap[gridId][module.moduleName] = module;\n }\n else {\n ModuleRegistry.globalModulesMap[module.moduleName] = module;\n }\n ModuleRegistry.setModuleBased(moduleBased);\n };\n /** AG GRID INTERNAL - Unregister grid scoped module. */\n ModuleRegistry.__unRegisterGridModules = function (gridId) {\n delete ModuleRegistry.gridModulesMap[gridId];\n };\n /** AG GRID INTERNAL - Module registration helper. */\n ModuleRegistry.__registerModules = function (modules, moduleBased, gridId) {\n ModuleRegistry.setModuleBased(moduleBased);\n if (!modules) {\n return;\n }\n modules.forEach(function (module) { return ModuleRegistry.__register(module, moduleBased, gridId); });\n };\n ModuleRegistry.isValidModuleVersion = function (module) {\n var _a = __read$y(module.version.split('.') || [], 2), moduleMajor = _a[0], moduleMinor = _a[1];\n var _b = __read$y(ModuleRegistry.currentModuleVersion.split('.') || [], 2), currentModuleMajor = _b[0], currentModuleMinor = _b[1];\n return moduleMajor === currentModuleMajor && moduleMinor === currentModuleMinor;\n };\n ModuleRegistry.runVersionChecks = function (module) {\n if (!ModuleRegistry.currentModuleVersion) {\n ModuleRegistry.currentModuleVersion = module.version;\n }\n if (!module.version) {\n console.error(\"AG Grid: You are using incompatible versions of AG Grid modules. Major and minor versions should always match across modules. '\" + module.moduleName + \"' is incompatible. Please update all modules to the same version.\");\n }\n else if (!ModuleRegistry.isValidModuleVersion(module)) {\n console.error(\"AG Grid: You are using incompatible versions of AG Grid modules. Major and minor versions should always match across modules. '\" + module.moduleName + \"' is version \" + module.version + \" but the other modules are version \" + this.currentModuleVersion + \". Please update all modules to the same version.\");\n }\n if (module.validate) {\n var result = module.validate();\n if (!result.isValid) {\n var errorResult = result;\n console.error(\"AG Grid: \" + errorResult.message);\n }\n }\n };\n ModuleRegistry.setModuleBased = function (moduleBased) {\n if (ModuleRegistry.moduleBased === undefined) {\n ModuleRegistry.moduleBased = moduleBased;\n }\n else {\n if (ModuleRegistry.moduleBased !== moduleBased) {\n doOnce(function () {\n console.warn(\"AG Grid: You are mixing modules (i.e. @ag-grid-community/core) and packages (ag-grid-community) - you can only use one or the other of these mechanisms.\");\n console.warn('Please see https://www.ag-grid.com/javascript-grid/packages-modules/ for more information.');\n }, 'ModulePackageCheck');\n }\n }\n };\n /**\n * AG GRID INTERNAL - Set if files are being served from a single UMD bundle to provide accurate enterprise upgrade steps.\n */\n ModuleRegistry.__setIsBundled = function () {\n ModuleRegistry.isBundled = true;\n };\n /** AG GRID INTERNAL - Assert a given module has been register, globally or individually with this grid. */\n ModuleRegistry.__assertRegistered = function (moduleName, reason, gridId) {\n var _a;\n if (this.__isRegistered(moduleName, gridId)) {\n return true;\n }\n var warningKey = reason + moduleName;\n var warningMessage;\n if (ModuleRegistry.isBundled) {\n {\n warningMessage =\n \"AG Grid: unable to use \" + reason + \" as 'ag-grid-enterprise' has not been loaded. Check you are using the Enterprise bundle:\\n \\n \\n \\nFor more info see: https://ag-grid.com/javascript-data-grid/getting-started/#getting-started-with-ag-grid-enterprise\";\n }\n }\n else if (ModuleRegistry.moduleBased || ModuleRegistry.moduleBased === undefined) {\n var modName = (_a = Object.entries(ModuleNames).find(function (_a) {\n var _b = __read$y(_a, 2); _b[0]; var v = _b[1];\n return v === moduleName;\n })) === null || _a === void 0 ? void 0 : _a[0];\n warningMessage =\n \"AG Grid: unable to use \" + reason + \" as the \" + modName + \" is not registered\" + (ModuleRegistry.areGridScopedModules ? \" for gridId: \" + gridId : '') + \". Check if you have registered the module:\\n \\n import { ModuleRegistry } from '@ag-grid-community/core';\\n import { \" + modName + \" } from '\" + moduleName + \"';\\n \\n ModuleRegistry.registerModules([ \" + modName + \" ]);\\n\\nFor more info see: https://www.ag-grid.com/javascript-grid/modules/\";\n }\n else {\n warningMessage =\n \"AG Grid: unable to use \" + reason + \" as package 'ag-grid-enterprise' has not been imported. Check that you have imported the package:\\n \\n import 'ag-grid-enterprise';\\n \\nFor more info see: https://www.ag-grid.com/javascript-grid/packages/\";\n }\n doOnce(function () {\n console.warn(warningMessage);\n }, warningKey);\n return false;\n };\n /** AG GRID INTERNAL - Is the given module registered, globally or individually with this grid. */\n ModuleRegistry.__isRegistered = function (moduleName, gridId) {\n var _a;\n return !!ModuleRegistry.globalModulesMap[moduleName] || !!((_a = ModuleRegistry.gridModulesMap[gridId]) === null || _a === void 0 ? void 0 : _a[moduleName]);\n };\n /** AG GRID INTERNAL - Get all registered modules globally / individually for this grid. */\n ModuleRegistry.__getRegisteredModules = function (gridId) {\n return __spreadArray$r(__spreadArray$r([], __read$y(values(ModuleRegistry.globalModulesMap))), __read$y(values(ModuleRegistry.gridModulesMap[gridId] || {})));\n };\n /** AG GRID INTERNAL - Get the list of modules registered individually for this grid. */\n ModuleRegistry.__getGridRegisteredModules = function (gridId) {\n var _a;\n return values((_a = ModuleRegistry.gridModulesMap[gridId]) !== null && _a !== void 0 ? _a : {}) || [];\n };\n /** INTERNAL */\n ModuleRegistry.__isPackageBased = function () {\n return !ModuleRegistry.moduleBased;\n };\n // having in a map a) removes duplicates and b) allows fast lookup\n ModuleRegistry.globalModulesMap = {};\n ModuleRegistry.gridModulesMap = {};\n ModuleRegistry.areGridScopedModules = false;\n return ModuleRegistry;\n}());\n\nvar __read$x = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$q = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar Context = /** @class */ (function () {\n function Context(params, logger) {\n this.beanWrappers = {};\n this.destroyed = false;\n if (!params || !params.beanClasses) {\n return;\n }\n this.contextParams = params;\n this.logger = logger;\n this.logger.log(\">> creating ag-Application Context\");\n this.createBeans();\n var beanInstances = this.getBeanInstances();\n this.wireBeans(beanInstances);\n this.logger.log(\">> ag-Application Context ready - component is alive\");\n }\n Context.prototype.getBeanInstances = function () {\n return values(this.beanWrappers).map(function (beanEntry) { return beanEntry.beanInstance; });\n };\n Context.prototype.createBean = function (bean, afterPreCreateCallback) {\n if (!bean) {\n throw Error(\"Can't wire to bean since it is null\");\n }\n this.wireBeans([bean], afterPreCreateCallback);\n return bean;\n };\n Context.prototype.wireBeans = function (beanInstances, afterPreCreateCallback) {\n this.autoWireBeans(beanInstances);\n this.methodWireBeans(beanInstances);\n this.callLifeCycleMethods(beanInstances, 'preConstructMethods');\n // the callback sets the attributes, so the component has access to attributes\n // before postConstruct methods in the component are executed\n if (exists(afterPreCreateCallback)) {\n beanInstances.forEach(afterPreCreateCallback);\n }\n this.callLifeCycleMethods(beanInstances, 'postConstructMethods');\n };\n Context.prototype.createBeans = function () {\n var _this = this;\n // register all normal beans\n this.contextParams.beanClasses.forEach(this.createBeanWrapper.bind(this));\n // register override beans, these will overwrite beans above of same name\n // instantiate all beans - overridden beans will be left out\n iterateObject(this.beanWrappers, function (key, beanEntry) {\n var constructorParamsMeta;\n if (beanEntry.bean.__agBeanMetaData && beanEntry.bean.__agBeanMetaData.autowireMethods && beanEntry.bean.__agBeanMetaData.autowireMethods.agConstructor) {\n constructorParamsMeta = beanEntry.bean.__agBeanMetaData.autowireMethods.agConstructor;\n }\n var constructorParams = _this.getBeansForParameters(constructorParamsMeta, beanEntry.bean.name);\n var newInstance = new (beanEntry.bean.bind.apply(beanEntry.bean, __spreadArray$q([null], __read$x(constructorParams))));\n beanEntry.beanInstance = newInstance;\n });\n var createdBeanNames = Object.keys(this.beanWrappers).join(', ');\n this.logger.log(\"created beans: \" + createdBeanNames);\n };\n // tslint:disable-next-line\n Context.prototype.createBeanWrapper = function (BeanClass) {\n var metaData = BeanClass.__agBeanMetaData;\n if (!metaData) {\n var beanName = void 0;\n if (BeanClass.prototype.constructor) {\n beanName = getFunctionName(BeanClass.prototype.constructor);\n }\n else {\n beanName = \"\" + BeanClass;\n }\n console.error(\"Context item \" + beanName + \" is not a bean\");\n return;\n }\n var beanEntry = {\n bean: BeanClass,\n beanInstance: null,\n beanName: metaData.beanName\n };\n this.beanWrappers[metaData.beanName] = beanEntry;\n };\n Context.prototype.autoWireBeans = function (beanInstances) {\n var _this = this;\n beanInstances.forEach(function (beanInstance) {\n _this.forEachMetaDataInHierarchy(beanInstance, function (metaData, beanName) {\n var attributes = metaData.agClassAttributes;\n if (!attributes) {\n return;\n }\n attributes.forEach(function (attribute) {\n var otherBean = _this.lookupBeanInstance(beanName, attribute.beanName, attribute.optional);\n beanInstance[attribute.attributeName] = otherBean;\n });\n });\n });\n };\n Context.prototype.methodWireBeans = function (beanInstances) {\n var _this = this;\n beanInstances.forEach(function (beanInstance) {\n _this.forEachMetaDataInHierarchy(beanInstance, function (metaData, beanName) {\n iterateObject(metaData.autowireMethods, function (methodName, wireParams) {\n // skip constructor, as this is dealt with elsewhere\n if (methodName === \"agConstructor\") {\n return;\n }\n var initParams = _this.getBeansForParameters(wireParams, beanName);\n beanInstance[methodName].apply(beanInstance, initParams);\n });\n });\n });\n };\n Context.prototype.forEachMetaDataInHierarchy = function (beanInstance, callback) {\n var prototype = Object.getPrototypeOf(beanInstance);\n while (prototype != null) {\n var constructor = prototype.constructor;\n if (constructor.hasOwnProperty('__agBeanMetaData')) {\n var metaData = constructor.__agBeanMetaData;\n var beanName = this.getBeanName(constructor);\n callback(metaData, beanName);\n }\n prototype = Object.getPrototypeOf(prototype);\n }\n };\n Context.prototype.getBeanName = function (constructor) {\n if (constructor.__agBeanMetaData && constructor.__agBeanMetaData.beanName) {\n return constructor.__agBeanMetaData.beanName;\n }\n var constructorString = constructor.toString();\n var beanName = constructorString.substring(9, constructorString.indexOf(\"(\"));\n return beanName;\n };\n Context.prototype.getBeansForParameters = function (parameters, beanName) {\n var _this = this;\n var beansList = [];\n if (parameters) {\n iterateObject(parameters, function (paramIndex, otherBeanName) {\n var otherBean = _this.lookupBeanInstance(beanName, otherBeanName);\n beansList[Number(paramIndex)] = otherBean;\n });\n }\n return beansList;\n };\n Context.prototype.lookupBeanInstance = function (wiringBean, beanName, optional) {\n if (optional === void 0) { optional = false; }\n if (this.destroyed) {\n this.logger.log(\"AG Grid: bean reference \" + beanName + \" is used after the grid is destroyed!\");\n return null;\n }\n if (beanName === \"context\") {\n return this;\n }\n if (this.contextParams.providedBeanInstances && this.contextParams.providedBeanInstances.hasOwnProperty(beanName)) {\n return this.contextParams.providedBeanInstances[beanName];\n }\n var beanEntry = this.beanWrappers[beanName];\n if (beanEntry) {\n return beanEntry.beanInstance;\n }\n if (!optional) {\n console.error(\"AG Grid: unable to find bean reference \" + beanName + \" while initialising \" + wiringBean);\n }\n return null;\n };\n Context.prototype.callLifeCycleMethods = function (beanInstances, lifeCycleMethod) {\n var _this = this;\n beanInstances.forEach(function (beanInstance) { return _this.callLifeCycleMethodsOnBean(beanInstance, lifeCycleMethod); });\n };\n Context.prototype.callLifeCycleMethodsOnBean = function (beanInstance, lifeCycleMethod, methodToIgnore) {\n // putting all methods into a map removes duplicates\n var allMethods = {};\n // dump methods from each level of the metadata hierarchy\n this.forEachMetaDataInHierarchy(beanInstance, function (metaData) {\n var methods = metaData[lifeCycleMethod];\n if (methods) {\n methods.forEach(function (methodName) {\n if (methodName != methodToIgnore) {\n allMethods[methodName] = true;\n }\n });\n }\n });\n var allMethodsList = Object.keys(allMethods);\n allMethodsList.forEach(function (methodName) { return beanInstance[methodName](); });\n };\n Context.prototype.getBean = function (name) {\n return this.lookupBeanInstance(\"getBean\", name, true);\n };\n Context.prototype.destroy = function () {\n if (this.destroyed) {\n return;\n }\n // Set before doing the destroy, so if context.destroy() gets called via another bean\n // we are marked as destroyed already to prevent running destroy() twice\n this.destroyed = true;\n this.logger.log(\">> Shutting down ag-Application Context\");\n var beanInstances = this.getBeanInstances();\n this.destroyBeans(beanInstances);\n this.contextParams.providedBeanInstances = null;\n ModuleRegistry.__unRegisterGridModules(this.contextParams.gridId);\n this.logger.log(\">> ag-Application Context shut down - component is dead\");\n };\n Context.prototype.destroyBean = function (bean) {\n if (!bean) {\n return;\n }\n this.destroyBeans([bean]);\n };\n Context.prototype.destroyBeans = function (beans) {\n var _this = this;\n if (!beans) {\n return [];\n }\n beans.forEach(function (bean) {\n _this.callLifeCycleMethodsOnBean(bean, 'preDestroyMethods', 'destroy');\n // call destroy() explicitly if it exists\n var beanAny = bean;\n if (typeof beanAny.destroy === 'function') {\n beanAny.destroy();\n }\n });\n return [];\n };\n Context.prototype.isDestroyed = function () {\n return this.destroyed;\n };\n Context.prototype.getGridId = function () {\n return this.contextParams.gridId;\n };\n return Context;\n}());\nfunction PreConstruct(target, methodName, descriptor) {\n var props = getOrCreateProps$1(target.constructor);\n if (!props.preConstructMethods) {\n props.preConstructMethods = [];\n }\n props.preConstructMethods.push(methodName);\n}\nfunction PostConstruct(target, methodName, descriptor) {\n var props = getOrCreateProps$1(target.constructor);\n if (!props.postConstructMethods) {\n props.postConstructMethods = [];\n }\n props.postConstructMethods.push(methodName);\n}\nfunction PreDestroy(target, methodName, descriptor) {\n var props = getOrCreateProps$1(target.constructor);\n if (!props.preDestroyMethods) {\n props.preDestroyMethods = [];\n }\n props.preDestroyMethods.push(methodName);\n}\nfunction Bean(beanName) {\n return function (classConstructor) {\n var props = getOrCreateProps$1(classConstructor);\n props.beanName = beanName;\n };\n}\nfunction Autowired(name) {\n return function (target, propertyKey, descriptor) {\n autowiredFunc(target, name, false, target, propertyKey, null);\n };\n}\nfunction Optional(name) {\n return function (target, propertyKey, descriptor) {\n autowiredFunc(target, name, true, target, propertyKey, null);\n };\n}\nfunction autowiredFunc(target, name, optional, classPrototype, methodOrAttributeName, index) {\n if (name === null) {\n console.error(\"AG Grid: Autowired name should not be null\");\n return;\n }\n if (typeof index === \"number\") {\n console.error(\"AG Grid: Autowired should be on an attribute\");\n return;\n }\n // it's an attribute on the class\n var props = getOrCreateProps$1(target.constructor);\n if (!props.agClassAttributes) {\n props.agClassAttributes = [];\n }\n props.agClassAttributes.push({\n attributeName: methodOrAttributeName,\n beanName: name,\n optional: optional\n });\n}\nfunction Qualifier(name) {\n return function (classPrototype, methodOrAttributeName, index) {\n var constructor = typeof classPrototype == \"function\" ? classPrototype : classPrototype.constructor;\n var props;\n if (typeof index === \"number\") {\n // it's a parameter on a method\n var methodName = void 0;\n if (methodOrAttributeName) {\n props = getOrCreateProps$1(constructor);\n methodName = methodOrAttributeName;\n }\n else {\n props = getOrCreateProps$1(constructor);\n methodName = \"agConstructor\";\n }\n if (!props.autowireMethods) {\n props.autowireMethods = {};\n }\n if (!props.autowireMethods[methodName]) {\n props.autowireMethods[methodName] = {};\n }\n props.autowireMethods[methodName][index] = name;\n }\n };\n}\nfunction getOrCreateProps$1(target) {\n if (!target.hasOwnProperty(\"__agBeanMetaData\")) {\n target.__agBeanMetaData = {};\n }\n return target.__agBeanMetaData;\n}\n\nvar __decorate$2J = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$a = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar EventService = /** @class */ (function () {\n function EventService() {\n this.allSyncListeners = new Map();\n this.allAsyncListeners = new Map();\n this.globalSyncListeners = new Set();\n this.globalAsyncListeners = new Set();\n this.asyncFunctionsQueue = [];\n this.scheduled = false;\n // using an object performs better than a Set for the number of different events we have\n this.firedEvents = {};\n }\n // because this class is used both inside the context and outside the context, we do not\n // use autowired attributes, as that would be confusing, as sometimes the attributes\n // would be wired, and sometimes not.\n //\n // the global event servers used by AG Grid is autowired by the context once, and this\n // setBeans method gets called once.\n //\n // the times when this class is used outside of the context (eg RowNode has an instance of this\n // class) then it is not a bean, and this setBeans method is not called.\n EventService.prototype.setBeans = function (loggerFactory, gridOptionsService, frameworkOverrides, globalEventListener, globalSyncEventListener) {\n if (globalEventListener === void 0) { globalEventListener = null; }\n if (globalSyncEventListener === void 0) { globalSyncEventListener = null; }\n this.frameworkOverrides = frameworkOverrides;\n this.gridOptionsService = gridOptionsService;\n if (globalEventListener) {\n var async = gridOptionsService.useAsyncEvents();\n this.addGlobalListener(globalEventListener, async);\n }\n if (globalSyncEventListener) {\n this.addGlobalListener(globalSyncEventListener, false);\n }\n };\n EventService.prototype.getListeners = function (eventType, async, autoCreateListenerCollection) {\n var listenerMap = async ? this.allAsyncListeners : this.allSyncListeners;\n var listeners = listenerMap.get(eventType);\n // Note: 'autoCreateListenerCollection' should only be 'true' if a listener is about to be added. For instance\n // getListeners() is also called during event dispatch even though no listeners are added. This measure protects\n // against 'memory bloat' as empty collections will prevent the RowNode's event service from being removed after\n // the RowComp is destroyed, see noRegisteredListenersExist() below.\n if (!listeners && autoCreateListenerCollection) {\n listeners = new Set();\n listenerMap.set(eventType, listeners);\n }\n return listeners;\n };\n EventService.prototype.noRegisteredListenersExist = function () {\n return this.allSyncListeners.size === 0 && this.allAsyncListeners.size === 0 &&\n this.globalSyncListeners.size === 0 && this.globalAsyncListeners.size === 0;\n };\n EventService.prototype.addEventListener = function (eventType, listener, async) {\n if (async === void 0) { async = false; }\n this.getListeners(eventType, async, true).add(listener);\n };\n EventService.prototype.removeEventListener = function (eventType, listener, async) {\n if (async === void 0) { async = false; }\n var listeners = this.getListeners(eventType, async, false);\n if (!listeners) {\n return;\n }\n listeners.delete(listener);\n if (listeners.size === 0) {\n var listenerMap = async ? this.allAsyncListeners : this.allSyncListeners;\n listenerMap.delete(eventType);\n }\n };\n EventService.prototype.addGlobalListener = function (listener, async) {\n if (async === void 0) { async = false; }\n (async ? this.globalAsyncListeners : this.globalSyncListeners).add(listener);\n };\n EventService.prototype.removeGlobalListener = function (listener, async) {\n if (async === void 0) { async = false; }\n (async ? this.globalAsyncListeners : this.globalSyncListeners).delete(listener);\n };\n EventService.prototype.dispatchEvent = function (event) {\n var agEvent = event;\n if (this.gridOptionsService) {\n // Apply common properties to all dispatched events if this event service has had its beans set with gridOptionsService.\n // Note there are multiple instances of EventService that are used local to components which do not set gridOptionsService.\n var _a = this.gridOptionsService, api = _a.api, columnApi = _a.columnApi, context = _a.context;\n agEvent.api = api;\n agEvent.columnApi = columnApi;\n agEvent.context = context;\n }\n this.dispatchToListeners(agEvent, true);\n this.dispatchToListeners(agEvent, false);\n this.firedEvents[agEvent.type] = true;\n };\n EventService.prototype.dispatchEventOnce = function (event) {\n if (!this.firedEvents[event.type]) {\n this.dispatchEvent(event);\n }\n };\n EventService.prototype.dispatchToListeners = function (event, async) {\n var _this = this;\n var eventType = event.type;\n if (async && 'event' in event) {\n var browserEvent = event.event;\n if (browserEvent instanceof Event) {\n // AG-7893 - Persist composedPath() so that its result can still be accessed by the user asynchronously.\n // Within an async event handler if they call composedPath() on the event it will always return an empty [].\n event.eventPath = browserEvent.composedPath();\n }\n }\n var processEventListeners = function (listeners) { return listeners.forEach(function (listener) {\n if (async) {\n _this.dispatchAsync(function () { return listener(event); });\n }\n else {\n listener(event);\n }\n }); };\n // create a shallow copy to prevent listeners cyclically adding more listeners to capture this event\n var listeners = new Set(this.getListeners(eventType, async, false));\n if (listeners.size > 0) {\n processEventListeners(listeners);\n }\n var globalListeners = new Set(async ? this.globalAsyncListeners : this.globalSyncListeners);\n globalListeners.forEach(function (listener) {\n if (async) {\n _this.dispatchAsync(function () { return _this.frameworkOverrides.dispatchEvent(eventType, function () { return listener(eventType, event); }, true); });\n }\n else {\n _this.frameworkOverrides.dispatchEvent(eventType, function () { return listener(eventType, event); }, true);\n }\n });\n };\n // this gets called inside the grid's thread, for each event that it\n // wants to set async. the grid then batches the events into one setTimeout()\n // because setTimeout() is an expensive operation. ideally we would have\n // each event in it's own setTimeout(), but we batch for performance.\n EventService.prototype.dispatchAsync = function (func) {\n // add to the queue for executing later in the next VM turn\n this.asyncFunctionsQueue.push(func);\n // check if timeout is already scheduled. the first time the grid calls\n // this within it's thread turn, this should be false, so it will schedule\n // the 'flush queue' method the first time it comes here. then the flag is\n // set to 'true' so it will know it's already scheduled for subsequent calls.\n if (!this.scheduled) {\n // if not scheduled, schedule one\n window.setTimeout(this.flushAsyncQueue.bind(this), 0);\n // mark that it is scheduled\n this.scheduled = true;\n }\n };\n // this happens in the next VM turn only, and empties the queue of events\n EventService.prototype.flushAsyncQueue = function () {\n this.scheduled = false;\n // we take a copy, because the event listener could be using\n // the grid, which would cause more events, which would be potentially\n // added to the queue, so safe to take a copy, the new events will\n // get executed in a later VM turn rather than risk updating the\n // queue as we are flushing it.\n var queueCopy = this.asyncFunctionsQueue.slice();\n this.asyncFunctionsQueue = [];\n // execute the queue\n queueCopy.forEach(function (func) { return func(); });\n };\n __decorate$2J([\n __param$a(0, Qualifier('loggerFactory')),\n __param$a(1, Qualifier('gridOptionsService')),\n __param$a(2, Qualifier('frameworkOverrides')),\n __param$a(3, Qualifier('globalEventListener')),\n __param$a(4, Qualifier('globalSyncEventListener'))\n ], EventService.prototype, \"setBeans\", null);\n EventService = __decorate$2J([\n Bean('eventService')\n ], EventService);\n return EventService;\n}());\n\nvar __decorate$2I = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$w = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$p = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar instanceIdSequence$4 = 0;\nfunction getNextColInstanceId() {\n return instanceIdSequence$4++;\n}\n// Wrapper around a user provide column definition. The grid treats the column definition as ready only.\n// This class contains all the runtime information about a column, plus some logic (the definition has no logic).\n// This class implements both interfaces ColumnGroupChild and ProvidedColumnGroupChild as the class can\n// appear as a child of either the original tree or the displayed tree. However the relevant group classes\n// for each type only implements one, as each group can only appear in it's associated tree (eg ProvidedColumnGroup\n// can only appear in OriginalColumn tree).\nvar Column = /** @class */ (function () {\n function Column(colDef, userProvidedColDef, colId, primary) {\n // used by React (and possibly other frameworks) as key for rendering. also used to\n // identify old vs new columns for destroying cols when no longer used.\n this.instanceId = getNextColInstanceId();\n // The measured height of this column's header when autoHeaderHeight is enabled\n this.autoHeaderHeight = null;\n this.moving = false;\n this.menuVisible = false;\n this.lastLeftPinned = false;\n this.firstRightPinned = false;\n this.filterActive = false;\n this.eventService = new EventService();\n this.tooltipEnabled = false;\n this.rowGroupActive = false;\n this.pivotActive = false;\n this.aggregationActive = false;\n this.colDef = colDef;\n this.userProvidedColDef = userProvidedColDef;\n this.colId = colId;\n this.primary = primary;\n this.setState(colDef);\n }\n Column.prototype.getInstanceId = function () {\n return this.instanceId;\n };\n Column.prototype.setState = function (colDef) {\n // sort\n if (colDef.sort !== undefined) {\n if (colDef.sort === 'asc' || colDef.sort === 'desc') {\n this.sort = colDef.sort;\n }\n }\n else {\n if (colDef.initialSort === 'asc' || colDef.initialSort === 'desc') {\n this.sort = colDef.initialSort;\n }\n }\n // sortIndex\n var sortIndex = attrToNumber(colDef.sortIndex);\n var initialSortIndex = attrToNumber(colDef.initialSortIndex);\n if (sortIndex !== undefined) {\n if (sortIndex !== null) {\n this.sortIndex = sortIndex;\n }\n }\n else {\n if (initialSortIndex !== null) {\n this.sortIndex = initialSortIndex;\n }\n }\n // hide\n var hide = attrToBoolean(colDef.hide);\n var initialHide = attrToBoolean(colDef.initialHide);\n if (hide !== undefined) {\n this.visible = !hide;\n }\n else {\n this.visible = !initialHide;\n }\n // pinned\n if (colDef.pinned !== undefined) {\n this.setPinned(colDef.pinned);\n }\n else {\n this.setPinned(colDef.initialPinned);\n }\n // flex\n var flex = attrToNumber(colDef.flex);\n var initialFlex = attrToNumber(colDef.initialFlex);\n if (flex !== undefined) {\n this.flex = flex;\n }\n else if (initialFlex !== undefined) {\n this.flex = initialFlex;\n }\n };\n // gets called when user provides an alternative colDef, eg\n Column.prototype.setColDef = function (colDef, userProvidedColDef) {\n this.colDef = colDef;\n this.userProvidedColDef = userProvidedColDef;\n this.initMinAndMaxWidths();\n this.initDotNotation();\n this.eventService.dispatchEvent(this.createColumnEvent('colDefChanged', \"api\"));\n };\n /**\n * Returns the column definition provided by the application.\n * This may not be correct, as items can be superseded by default column options.\n * However it's useful for comparison, eg to know which application column definition matches that column.\n */\n Column.prototype.getUserProvidedColDef = function () {\n return this.userProvidedColDef;\n };\n Column.prototype.setParent = function (parent) {\n this.parent = parent;\n };\n /** Returns the parent column group, if column grouping is active. */\n Column.prototype.getParent = function () {\n return this.parent;\n };\n Column.prototype.setOriginalParent = function (originalParent) {\n this.originalParent = originalParent;\n };\n /**\n * Used for marryChildren, helps with comparing when duplicate groups have been created to manage split groups.\n *\n * Parent may contain a duplicate but not identical group when the group is split.\n */\n Column.prototype.getOriginalParent = function () {\n return this.originalParent;\n };\n // this is done after constructor as it uses gridOptionsService\n Column.prototype.initialise = function () {\n this.initMinAndMaxWidths();\n this.resetActualWidth('gridInitializing');\n this.initDotNotation();\n this.initTooltip();\n this.validate();\n };\n Column.prototype.initDotNotation = function () {\n var suppressDotNotation = this.gridOptionsService.is('suppressFieldDotNotation');\n this.fieldContainsDots = exists(this.colDef.field) && this.colDef.field.indexOf('.') >= 0 && !suppressDotNotation;\n this.tooltipFieldContainsDots = exists(this.colDef.tooltipField) && this.colDef.tooltipField.indexOf('.') >= 0 && !suppressDotNotation;\n };\n Column.prototype.initMinAndMaxWidths = function () {\n var colDef = this.colDef;\n this.minWidth = this.columnUtils.calculateColMinWidth(colDef);\n this.maxWidth = this.columnUtils.calculateColMaxWidth(colDef);\n };\n Column.prototype.initTooltip = function () {\n this.tooltipEnabled = exists(this.colDef.tooltipField) ||\n exists(this.colDef.tooltipValueGetter) ||\n exists(this.colDef.tooltipComponent);\n };\n Column.prototype.resetActualWidth = function (source) {\n if (source === void 0) { source = 'api'; }\n var initialWidth = this.columnUtils.calculateColInitialWidth(this.colDef);\n this.setActualWidth(initialWidth, source, true);\n };\n Column.prototype.isEmptyGroup = function () {\n return false;\n };\n Column.prototype.isRowGroupDisplayed = function (colId) {\n if (missing(this.colDef) || missing(this.colDef.showRowGroup)) {\n return false;\n }\n var showingAllGroups = this.colDef.showRowGroup === true;\n var showingThisGroup = this.colDef.showRowGroup === colId;\n return showingAllGroups || showingThisGroup;\n };\n /** Returns `true` if column is a primary column, `false` if secondary. Secondary columns are used for pivoting. */\n Column.prototype.isPrimary = function () {\n return this.primary;\n };\n /** Returns `true` if column filtering is allowed. */\n Column.prototype.isFilterAllowed = function () {\n // filter defined means it's a string, class or true.\n // if its false, null or undefined then it's false.\n var filterDefined = !!this.colDef.filter;\n return filterDefined;\n };\n Column.prototype.isFieldContainsDots = function () {\n return this.fieldContainsDots;\n };\n Column.prototype.isTooltipEnabled = function () {\n return this.tooltipEnabled;\n };\n Column.prototype.isTooltipFieldContainsDots = function () {\n return this.tooltipFieldContainsDots;\n };\n Column.prototype.validate = function () {\n var colDefAny = this.colDef;\n function warnOnce(msg, key, obj) {\n doOnce(function () {\n if (obj) {\n console.warn(msg, obj);\n }\n else {\n doOnce(function () { return console.warn(msg); }, key);\n }\n }, key);\n }\n var usingCSRM = this.gridOptionsService.isRowModelType('clientSide');\n if (usingCSRM && !ModuleRegistry.__isRegistered(ModuleNames.RowGroupingModule, this.gridOptionsService.getGridId())) {\n var rowGroupingItems = ['enableRowGroup', 'rowGroup', 'rowGroupIndex', 'enablePivot', 'enableValue', 'pivot', 'pivotIndex', 'aggFunc'];\n var itemsUsed = rowGroupingItems.filter(function (x) { return exists(colDefAny[x]); });\n if (itemsUsed.length > 0) {\n ModuleRegistry.__assertRegistered(ModuleNames.RowGroupingModule, itemsUsed.map(function (i) { return 'colDef.' + i; }).join(', '), this.gridOptionsService.getGridId());\n }\n }\n if (this.colDef.cellEditor === 'agRichSelect' || this.colDef.cellEditor === 'agRichSelectCellEditor') {\n ModuleRegistry.__assertRegistered(ModuleNames.RichSelectModule, this.colDef.cellEditor, this.gridOptionsService.getGridId());\n }\n if (this.gridOptionsService.is('treeData')) {\n var itemsNotAllowedWithTreeData = ['rowGroup', 'rowGroupIndex', 'pivot', 'pivotIndex'];\n var itemsUsed = itemsNotAllowedWithTreeData.filter(function (x) { return exists(colDefAny[x]); });\n if (itemsUsed.length > 0) {\n warnOnce(\"AG Grid: \" + itemsUsed.join() + \" is not possible when doing tree data, your column definition should not have \" + itemsUsed.join(), 'TreeDataCannotRowGroup');\n }\n }\n if (exists(colDefAny.menuTabs)) {\n if (Array.isArray(colDefAny.menuTabs)) {\n var communityMenuTabs_1 = ['filterMenuTab'];\n var enterpriseMenuTabs_1 = ['columnsMenuTab', 'generalMenuTab'];\n var itemsUsed = enterpriseMenuTabs_1.filter(function (x) { return colDefAny.menuTabs.includes(x); });\n if (itemsUsed.length > 0) {\n ModuleRegistry.__assertRegistered(ModuleNames.MenuModule, \"menuTab(s): \" + itemsUsed.map(function (t) { return \"'\" + t + \"'\"; }).join(), this.gridOptionsService.getGridId());\n }\n colDefAny.menuTabs.forEach(function (tab) {\n if (!enterpriseMenuTabs_1.includes(tab) && !communityMenuTabs_1.includes(tab)) {\n warnOnce(\"AG Grid: '\" + tab + \"' is not valid for 'colDef.menuTabs'. Valid values are: \" + __spreadArray$p(__spreadArray$p([], __read$w(communityMenuTabs_1)), __read$w(enterpriseMenuTabs_1)).map(function (t) { return \"'\" + t + \"'\"; }).join() + \".\", 'wrongValue_menuTabs_' + tab);\n }\n });\n }\n else {\n warnOnce(\"AG Grid: The typeof 'colDef.menuTabs' should be an array not:\" + typeof colDefAny.menuTabs, 'wrongType_menuTabs');\n }\n }\n if (exists(colDefAny.columnsMenuParams)) {\n ModuleRegistry.__assertRegistered(ModuleNames.MenuModule, 'columnsMenuParams', this.gridOptionsService.getGridId());\n }\n if (exists(colDefAny.columnsMenuParams)) {\n ModuleRegistry.__assertRegistered(ModuleNames.ColumnsToolPanelModule, 'columnsMenuParams', this.gridOptionsService.getGridId());\n }\n if (exists(this.colDef.width) && typeof this.colDef.width !== 'number') {\n warnOnce('AG Grid: colDef.width should be a number, not ' + typeof this.colDef.width, 'ColumnCheck');\n }\n if (exists(colDefAny.columnGroupShow) && colDefAny.columnGroupShow !== 'closed' && colDefAny.columnGroupShow !== 'open') {\n warnOnce(\"AG Grid: '\" + colDefAny.columnGroupShow + \"' is not valid for columnGroupShow. Valid values are 'open', 'closed', undefined, null\", 'columnGroupShow_invalid');\n }\n };\n /** Add an event listener to the column. */\n Column.prototype.addEventListener = function (eventType, listener) {\n this.eventService.addEventListener(eventType, listener);\n };\n /** Remove event listener from the column. */\n Column.prototype.removeEventListener = function (eventType, listener) {\n this.eventService.removeEventListener(eventType, listener);\n };\n Column.prototype.createColumnFunctionCallbackParams = function (rowNode) {\n return {\n node: rowNode,\n data: rowNode.data,\n column: this,\n colDef: this.colDef,\n context: this.gridOptionsService.context,\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi\n };\n };\n Column.prototype.isSuppressNavigable = function (rowNode) {\n // if boolean set, then just use it\n if (typeof this.colDef.suppressNavigable === 'boolean') {\n return this.colDef.suppressNavigable;\n }\n // if function, then call the function to find out\n if (typeof this.colDef.suppressNavigable === 'function') {\n var params = this.createColumnFunctionCallbackParams(rowNode);\n var userFunc = this.colDef.suppressNavigable;\n return userFunc(params);\n }\n return false;\n };\n /**\n * Returns `true` if the cell for this column is editable for the given `rowNode`, otherwise `false`.\n */\n Column.prototype.isCellEditable = function (rowNode) {\n // only allow editing of groups if the user has this option enabled\n if (rowNode.group && !this.gridOptionsService.is('enableGroupEdit')) {\n return false;\n }\n return this.isColumnFunc(rowNode, this.colDef.editable);\n };\n Column.prototype.isSuppressFillHandle = function () {\n return !!attrToBoolean(this.colDef.suppressFillHandle);\n };\n Column.prototype.isAutoHeight = function () {\n return !!attrToBoolean(this.colDef.autoHeight);\n };\n Column.prototype.isAutoHeaderHeight = function () {\n return !!attrToBoolean(this.colDef.autoHeaderHeight);\n };\n Column.prototype.isRowDrag = function (rowNode) {\n return this.isColumnFunc(rowNode, this.colDef.rowDrag);\n };\n Column.prototype.isDndSource = function (rowNode) {\n return this.isColumnFunc(rowNode, this.colDef.dndSource);\n };\n Column.prototype.isCellCheckboxSelection = function (rowNode) {\n return this.isColumnFunc(rowNode, this.colDef.checkboxSelection);\n };\n Column.prototype.isSuppressPaste = function (rowNode) {\n return this.isColumnFunc(rowNode, this.colDef ? this.colDef.suppressPaste : null);\n };\n Column.prototype.isResizable = function () {\n return !!attrToBoolean(this.colDef.resizable);\n };\n Column.prototype.isColumnFunc = function (rowNode, value) {\n // if boolean set, then just use it\n if (typeof value === 'boolean') {\n return value;\n }\n // if function, then call the function to find out\n if (typeof value === 'function') {\n var params = this.createColumnFunctionCallbackParams(rowNode);\n var editableFunc = value;\n return editableFunc(params);\n }\n return false;\n };\n Column.prototype.setMoving = function (moving, source) {\n if (source === void 0) { source = \"api\"; }\n this.moving = moving;\n this.eventService.dispatchEvent(this.createColumnEvent('movingChanged', source));\n };\n Column.prototype.createColumnEvent = function (type, source) {\n return {\n type: type,\n column: this,\n columns: [this],\n source: source,\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context\n };\n };\n Column.prototype.isMoving = function () {\n return this.moving;\n };\n /** If sorting is active, returns the sort direction e.g. `'asc'` or `'desc'`. */\n Column.prototype.getSort = function () {\n return this.sort;\n };\n Column.prototype.setSort = function (sort, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.sort !== sort) {\n this.sort = sort;\n this.eventService.dispatchEvent(this.createColumnEvent('sortChanged', source));\n }\n this.dispatchStateUpdatedEvent('sort');\n };\n Column.prototype.setMenuVisible = function (visible, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.menuVisible !== visible) {\n this.menuVisible = visible;\n this.eventService.dispatchEvent(this.createColumnEvent('menuVisibleChanged', source));\n }\n };\n Column.prototype.isMenuVisible = function () {\n return this.menuVisible;\n };\n Column.prototype.isSortAscending = function () {\n return this.sort === 'asc';\n };\n Column.prototype.isSortDescending = function () {\n return this.sort === 'desc';\n };\n Column.prototype.isSortNone = function () {\n return missing(this.sort);\n };\n Column.prototype.isSorting = function () {\n return exists(this.sort);\n };\n Column.prototype.getSortIndex = function () {\n return this.sortIndex;\n };\n Column.prototype.setSortIndex = function (sortOrder) {\n this.sortIndex = sortOrder;\n this.dispatchStateUpdatedEvent('sortIndex');\n };\n Column.prototype.setAggFunc = function (aggFunc) {\n this.aggFunc = aggFunc;\n this.dispatchStateUpdatedEvent('aggFunc');\n };\n /** If aggregation is set for the column, returns the aggregation function. */\n Column.prototype.getAggFunc = function () {\n return this.aggFunc;\n };\n Column.prototype.getLeft = function () {\n return this.left;\n };\n Column.prototype.getOldLeft = function () {\n return this.oldLeft;\n };\n Column.prototype.getRight = function () {\n return this.left + this.actualWidth;\n };\n Column.prototype.setLeft = function (left, source) {\n if (source === void 0) { source = \"api\"; }\n this.oldLeft = this.left;\n if (this.left !== left) {\n this.left = left;\n this.eventService.dispatchEvent(this.createColumnEvent('leftChanged', source));\n }\n };\n /** Returns `true` if filter is active on the column. */\n Column.prototype.isFilterActive = function () {\n return this.filterActive;\n };\n // additionalEventAttributes is used by provided simple floating filter, so it can add 'floatingFilter=true' to the event\n Column.prototype.setFilterActive = function (active, source, additionalEventAttributes) {\n if (source === void 0) { source = \"api\"; }\n if (this.filterActive !== active) {\n this.filterActive = active;\n this.eventService.dispatchEvent(this.createColumnEvent('filterActiveChanged', source));\n }\n var filterChangedEvent = this.createColumnEvent('filterChanged', source);\n if (additionalEventAttributes) {\n mergeDeep(filterChangedEvent, additionalEventAttributes);\n }\n this.eventService.dispatchEvent(filterChangedEvent);\n };\n /** Returns `true` when this `Column` is hovered, otherwise `false` */\n Column.prototype.isHovered = function () {\n return this.columnHoverService.isHovered(this);\n };\n Column.prototype.setPinned = function (pinned) {\n if (pinned === true || pinned === 'left') {\n this.pinned = 'left';\n }\n else if (pinned === 'right') {\n this.pinned = 'right';\n }\n else {\n this.pinned = null;\n }\n this.dispatchStateUpdatedEvent('pinned');\n };\n Column.prototype.setFirstRightPinned = function (firstRightPinned, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.firstRightPinned !== firstRightPinned) {\n this.firstRightPinned = firstRightPinned;\n this.eventService.dispatchEvent(this.createColumnEvent('firstRightPinnedChanged', source));\n }\n };\n Column.prototype.setLastLeftPinned = function (lastLeftPinned, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.lastLeftPinned !== lastLeftPinned) {\n this.lastLeftPinned = lastLeftPinned;\n this.eventService.dispatchEvent(this.createColumnEvent('lastLeftPinnedChanged', source));\n }\n };\n Column.prototype.isFirstRightPinned = function () {\n return this.firstRightPinned;\n };\n Column.prototype.isLastLeftPinned = function () {\n return this.lastLeftPinned;\n };\n Column.prototype.isPinned = function () {\n return this.pinned === 'left' || this.pinned === 'right';\n };\n Column.prototype.isPinnedLeft = function () {\n return this.pinned === 'left';\n };\n Column.prototype.isPinnedRight = function () {\n return this.pinned === 'right';\n };\n Column.prototype.getPinned = function () {\n return this.pinned;\n };\n Column.prototype.setVisible = function (visible, source) {\n if (source === void 0) { source = \"api\"; }\n var newValue = visible === true;\n if (this.visible !== newValue) {\n this.visible = newValue;\n this.eventService.dispatchEvent(this.createColumnEvent('visibleChanged', source));\n }\n this.dispatchStateUpdatedEvent('hide');\n };\n Column.prototype.isVisible = function () {\n return this.visible;\n };\n Column.prototype.isSpanHeaderHeight = function () {\n var colDef = this.getColDef();\n return !colDef.suppressSpanHeaderHeight && !colDef.autoHeaderHeight;\n };\n /** Returns the column definition for this column.\n * The column definition will be the result of merging the application provided column definition with any provided defaults\n * (e.g. `defaultColDef` grid option, or column types.\n *\n * Equivalent: `getDefinition` */\n Column.prototype.getColDef = function () {\n return this.colDef;\n };\n Column.prototype.getColumnGroupShow = function () {\n return this.colDef.columnGroupShow;\n };\n /**\n * Returns the unique ID for the column.\n *\n * Equivalent: `getId`, `getUniqueId` */\n Column.prototype.getColId = function () {\n return this.colId;\n };\n /**\n * Returns the unique ID for the column.\n *\n * Equivalent: `getColId`, `getUniqueId` */\n Column.prototype.getId = function () {\n return this.colId;\n };\n /**\n * Returns the unique ID for the column.\n *\n * Equivalent: `getColId`, `getId` */\n Column.prototype.getUniqueId = function () {\n return this.colId;\n };\n Column.prototype.getDefinition = function () {\n return this.colDef;\n };\n /** Returns the current width of the column. If the column is resized, the actual width is the new size. */\n Column.prototype.getActualWidth = function () {\n return this.actualWidth;\n };\n Column.prototype.getAutoHeaderHeight = function () {\n return this.autoHeaderHeight;\n };\n /** Returns true if the header height has changed */\n Column.prototype.setAutoHeaderHeight = function (height) {\n var changed = height !== this.autoHeaderHeight;\n this.autoHeaderHeight = height;\n return changed;\n };\n Column.prototype.createBaseColDefParams = function (rowNode) {\n var params = {\n node: rowNode,\n data: rowNode.data,\n colDef: this.colDef,\n column: this,\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context\n };\n return params;\n };\n Column.prototype.getColSpan = function (rowNode) {\n if (missing(this.colDef.colSpan)) {\n return 1;\n }\n var params = this.createBaseColDefParams(rowNode);\n var colSpan = this.colDef.colSpan(params);\n // colSpan must be number equal to or greater than 1\n return Math.max(colSpan, 1);\n };\n Column.prototype.getRowSpan = function (rowNode) {\n if (missing(this.colDef.rowSpan)) {\n return 1;\n }\n var params = this.createBaseColDefParams(rowNode);\n var rowSpan = this.colDef.rowSpan(params);\n // rowSpan must be number equal to or greater than 1\n return Math.max(rowSpan, 1);\n };\n Column.prototype.setActualWidth = function (actualWidth, source, silent) {\n if (source === void 0) { source = \"api\"; }\n if (silent === void 0) { silent = false; }\n if (this.minWidth != null) {\n actualWidth = Math.max(actualWidth, this.minWidth);\n }\n if (this.maxWidth != null) {\n actualWidth = Math.min(actualWidth, this.maxWidth);\n }\n if (this.actualWidth !== actualWidth) {\n // disable flex for this column if it was manually resized.\n this.actualWidth = actualWidth;\n if (this.flex && source !== 'flex' && source !== 'gridInitializing') {\n this.flex = null;\n }\n if (!silent) {\n this.fireColumnWidthChangedEvent(source);\n }\n }\n this.dispatchStateUpdatedEvent('width');\n };\n Column.prototype.fireColumnWidthChangedEvent = function (source) {\n this.eventService.dispatchEvent(this.createColumnEvent('widthChanged', source));\n };\n Column.prototype.isGreaterThanMax = function (width) {\n if (this.maxWidth != null) {\n return width > this.maxWidth;\n }\n return false;\n };\n Column.prototype.getMinWidth = function () {\n return this.minWidth;\n };\n Column.prototype.getMaxWidth = function () {\n return this.maxWidth;\n };\n Column.prototype.getFlex = function () {\n return this.flex || 0;\n };\n // this method should only be used by the columnModel to\n // change flex when required by the applyColumnState method.\n Column.prototype.setFlex = function (flex) {\n if (this.flex !== flex) {\n this.flex = flex;\n }\n this.dispatchStateUpdatedEvent('flex');\n };\n Column.prototype.setMinimum = function (source) {\n if (source === void 0) { source = \"api\"; }\n if (exists(this.minWidth)) {\n this.setActualWidth(this.minWidth, source);\n }\n };\n Column.prototype.setRowGroupActive = function (rowGroup, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.rowGroupActive !== rowGroup) {\n this.rowGroupActive = rowGroup;\n this.eventService.dispatchEvent(this.createColumnEvent('columnRowGroupChanged', source));\n }\n this.dispatchStateUpdatedEvent('rowGroup');\n };\n /** Returns `true` if row group is currently active for this column. */\n Column.prototype.isRowGroupActive = function () {\n return this.rowGroupActive;\n };\n Column.prototype.setPivotActive = function (pivot, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.pivotActive !== pivot) {\n this.pivotActive = pivot;\n this.eventService.dispatchEvent(this.createColumnEvent('columnPivotChanged', source));\n }\n this.dispatchStateUpdatedEvent('pivot');\n };\n /** Returns `true` if pivot is currently active for this column. */\n Column.prototype.isPivotActive = function () {\n return this.pivotActive;\n };\n Column.prototype.isAnyFunctionActive = function () {\n return this.isPivotActive() || this.isRowGroupActive() || this.isValueActive();\n };\n Column.prototype.isAnyFunctionAllowed = function () {\n return this.isAllowPivot() || this.isAllowRowGroup() || this.isAllowValue();\n };\n Column.prototype.setValueActive = function (value, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.aggregationActive !== value) {\n this.aggregationActive = value;\n this.eventService.dispatchEvent(this.createColumnEvent('columnValueChanged', source));\n }\n };\n /** Returns `true` if value (aggregation) is currently active for this column. */\n Column.prototype.isValueActive = function () {\n return this.aggregationActive;\n };\n Column.prototype.isAllowPivot = function () {\n return this.colDef.enablePivot === true;\n };\n Column.prototype.isAllowValue = function () {\n return this.colDef.enableValue === true;\n };\n Column.prototype.isAllowRowGroup = function () {\n return this.colDef.enableRowGroup === true;\n };\n Column.prototype.getMenuTabs = function (defaultValues) {\n var menuTabs = this.getColDef().menuTabs;\n if (menuTabs == null) {\n menuTabs = defaultValues;\n }\n return menuTabs;\n };\n Column.prototype.dispatchStateUpdatedEvent = function (key) {\n this.eventService.dispatchEvent({\n type: Column.EVENT_STATE_UPDATED,\n key: key\n });\n };\n // + renderedHeaderCell - for making header cell transparent when moving\n Column.EVENT_MOVING_CHANGED = 'movingChanged';\n // + renderedCell - changing left position\n Column.EVENT_LEFT_CHANGED = 'leftChanged';\n // + renderedCell - changing width\n Column.EVENT_WIDTH_CHANGED = 'widthChanged';\n // + renderedCell - for changing pinned classes\n Column.EVENT_LAST_LEFT_PINNED_CHANGED = 'lastLeftPinnedChanged';\n Column.EVENT_FIRST_RIGHT_PINNED_CHANGED = 'firstRightPinnedChanged';\n // + renderedColumn - for changing visibility icon\n Column.EVENT_VISIBLE_CHANGED = 'visibleChanged';\n // + every time the filter changes, used in the floating filters\n Column.EVENT_FILTER_CHANGED = 'filterChanged';\n // + renderedHeaderCell - marks the header with filter icon\n Column.EVENT_FILTER_ACTIVE_CHANGED = 'filterActiveChanged';\n // + renderedHeaderCell - marks the header with sort icon\n Column.EVENT_SORT_CHANGED = 'sortChanged';\n // + renderedHeaderCell - marks the header with sort icon\n Column.EVENT_COL_DEF_CHANGED = 'colDefChanged';\n Column.EVENT_MENU_VISIBLE_CHANGED = 'menuVisibleChanged';\n // + toolpanel, for gui updates\n Column.EVENT_ROW_GROUP_CHANGED = 'columnRowGroupChanged';\n // + toolpanel, for gui updates\n Column.EVENT_PIVOT_CHANGED = 'columnPivotChanged';\n // + toolpanel, for gui updates\n Column.EVENT_VALUE_CHANGED = 'columnValueChanged';\n // + dataTypeService - when waiting to infer cell data types\n Column.EVENT_STATE_UPDATED = 'columnStateUpdated';\n __decorate$2I([\n Autowired('gridOptionsService')\n ], Column.prototype, \"gridOptionsService\", void 0);\n __decorate$2I([\n Autowired('columnUtils')\n ], Column.prototype, \"columnUtils\", void 0);\n __decorate$2I([\n Autowired('columnHoverService')\n ], Column.prototype, \"columnHoverService\", void 0);\n __decorate$2I([\n PostConstruct\n ], Column.prototype, \"initialise\", null);\n return Column;\n}());\n\nvar __decorate$2H = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ProvidedColumnGroup = /** @class */ (function () {\n function ProvidedColumnGroup(colGroupDef, groupId, padding, level) {\n this.localEventService = new EventService();\n this.expandable = false;\n // used by React (and possibly other frameworks) as key for rendering. also used to\n // identify old vs new columns for destroying cols when no longer used.\n this.instanceId = getNextColInstanceId();\n this.expandableListenerRemoveCallback = null;\n this.colGroupDef = colGroupDef;\n this.groupId = groupId;\n this.expanded = !!colGroupDef && !!colGroupDef.openByDefault;\n this.padding = padding;\n this.level = level;\n }\n ProvidedColumnGroup.prototype.destroy = function () {\n if (this.expandableListenerRemoveCallback) {\n this.reset(null, undefined);\n }\n };\n ProvidedColumnGroup.prototype.reset = function (colGroupDef, level) {\n this.colGroupDef = colGroupDef;\n this.level = level;\n this.originalParent = null;\n if (this.expandableListenerRemoveCallback) {\n this.expandableListenerRemoveCallback();\n }\n // we use ! below, as we want to set the object back to the\n // way it was when it was first created\n this.children = undefined;\n this.expandable = undefined;\n };\n ProvidedColumnGroup.prototype.getInstanceId = function () {\n return this.instanceId;\n };\n ProvidedColumnGroup.prototype.setOriginalParent = function (originalParent) {\n this.originalParent = originalParent;\n };\n ProvidedColumnGroup.prototype.getOriginalParent = function () {\n return this.originalParent;\n };\n ProvidedColumnGroup.prototype.getLevel = function () {\n return this.level;\n };\n ProvidedColumnGroup.prototype.isVisible = function () {\n // return true if at least one child is visible\n if (this.children) {\n return this.children.some(function (child) { return child.isVisible(); });\n }\n return false;\n };\n ProvidedColumnGroup.prototype.isPadding = function () {\n return this.padding;\n };\n ProvidedColumnGroup.prototype.setExpanded = function (expanded) {\n this.expanded = expanded === undefined ? false : expanded;\n var event = {\n type: ProvidedColumnGroup.EVENT_EXPANDED_CHANGED\n };\n this.localEventService.dispatchEvent(event);\n };\n ProvidedColumnGroup.prototype.isExpandable = function () {\n return this.expandable;\n };\n ProvidedColumnGroup.prototype.isExpanded = function () {\n return this.expanded;\n };\n ProvidedColumnGroup.prototype.getGroupId = function () {\n return this.groupId;\n };\n ProvidedColumnGroup.prototype.getId = function () {\n return this.getGroupId();\n };\n ProvidedColumnGroup.prototype.setChildren = function (children) {\n this.children = children;\n };\n ProvidedColumnGroup.prototype.getChildren = function () {\n return this.children;\n };\n ProvidedColumnGroup.prototype.getColGroupDef = function () {\n return this.colGroupDef;\n };\n ProvidedColumnGroup.prototype.getLeafColumns = function () {\n var result = [];\n this.addLeafColumns(result);\n return result;\n };\n ProvidedColumnGroup.prototype.addLeafColumns = function (leafColumns) {\n if (!this.children) {\n return;\n }\n this.children.forEach(function (child) {\n if (child instanceof Column) {\n leafColumns.push(child);\n }\n else if (child instanceof ProvidedColumnGroup) {\n child.addLeafColumns(leafColumns);\n }\n });\n };\n ProvidedColumnGroup.prototype.getColumnGroupShow = function () {\n var colGroupDef = this.colGroupDef;\n if (!colGroupDef) {\n return;\n }\n return colGroupDef.columnGroupShow;\n };\n // need to check that this group has at least one col showing when both expanded and contracted.\n // if not, then we don't allow expanding and contracting on this group\n ProvidedColumnGroup.prototype.setupExpandable = function () {\n var _this = this;\n this.setExpandable();\n if (this.expandableListenerRemoveCallback) {\n this.expandableListenerRemoveCallback();\n }\n var listener = this.onColumnVisibilityChanged.bind(this);\n this.getLeafColumns().forEach(function (col) { return col.addEventListener('visibleChanged', listener); });\n this.expandableListenerRemoveCallback = function () {\n _this.getLeafColumns().forEach(function (col) { return col.removeEventListener('visibleChanged', listener); });\n _this.expandableListenerRemoveCallback = null;\n };\n };\n ProvidedColumnGroup.prototype.setExpandable = function () {\n if (this.isPadding()) {\n return;\n }\n // want to make sure the group doesn't disappear when it's open\n var atLeastOneShowingWhenOpen = false;\n // want to make sure the group doesn't disappear when it's closed\n var atLeastOneShowingWhenClosed = false;\n // want to make sure the group has something to show / hide\n var atLeastOneChangeable = false;\n var children = this.findChildrenRemovingPadding();\n for (var i = 0, j = children.length; i < j; i++) {\n var abstractColumn = children[i];\n if (!abstractColumn.isVisible()) {\n continue;\n }\n // if the abstractColumn is a grid generated group, there will be no colDef\n var headerGroupShow = abstractColumn.getColumnGroupShow();\n if (headerGroupShow === 'open') {\n atLeastOneShowingWhenOpen = true;\n atLeastOneChangeable = true;\n }\n else if (headerGroupShow === 'closed') {\n atLeastOneShowingWhenClosed = true;\n atLeastOneChangeable = true;\n }\n else {\n atLeastOneShowingWhenOpen = true;\n atLeastOneShowingWhenClosed = true;\n }\n }\n var expandable = atLeastOneShowingWhenOpen && atLeastOneShowingWhenClosed && atLeastOneChangeable;\n if (this.expandable !== expandable) {\n this.expandable = expandable;\n var event_1 = {\n type: ProvidedColumnGroup.EVENT_EXPANDABLE_CHANGED\n };\n this.localEventService.dispatchEvent(event_1);\n }\n };\n ProvidedColumnGroup.prototype.findChildrenRemovingPadding = function () {\n var res = [];\n var process = function (items) {\n items.forEach(function (item) {\n // if padding, we add this children instead of the padding\n var skipBecausePadding = item instanceof ProvidedColumnGroup && item.isPadding();\n if (skipBecausePadding) {\n process(item.children);\n }\n else {\n res.push(item);\n }\n });\n };\n process(this.children);\n return res;\n };\n ProvidedColumnGroup.prototype.onColumnVisibilityChanged = function () {\n this.setExpandable();\n };\n ProvidedColumnGroup.prototype.addEventListener = function (eventType, listener) {\n this.localEventService.addEventListener(eventType, listener);\n };\n ProvidedColumnGroup.prototype.removeEventListener = function (eventType, listener) {\n this.localEventService.removeEventListener(eventType, listener);\n };\n ProvidedColumnGroup.EVENT_EXPANDED_CHANGED = 'expandedChanged';\n ProvidedColumnGroup.EVENT_EXPANDABLE_CHANGED = 'expandableChanged';\n __decorate$2H([\n PreDestroy\n ], ProvidedColumnGroup.prototype, \"destroy\", null);\n return ProvidedColumnGroup;\n}());\n\nvar DefaultColumnTypes = {\n numericColumn: {\n headerClass: 'ag-right-aligned-header',\n cellClass: 'ag-right-aligned-cell'\n },\n rightAligned: {\n headerClass: 'ag-right-aligned-header',\n cellClass: 'ag-right-aligned-cell'\n }\n};\n\nfunction firstExistingValue() {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n for (var i = 0; i < values.length; i++) {\n var value = values[i];\n if (exists(value)) {\n return value;\n }\n }\n return null;\n}\nfunction existsAndNotEmpty(value) {\n return value != null && value.length > 0;\n}\nfunction last(arr) {\n if (!arr || !arr.length) {\n return;\n }\n return arr[arr.length - 1];\n}\nfunction areEqual(a, b, comparator) {\n if (a == null && b == null) {\n return true;\n }\n return a != null &&\n b != null &&\n a.length === b.length &&\n a.every(function (value, index) { return comparator ? comparator(value, b[index]) : b[index] === value; });\n}\n/** @deprecated */\nfunction shallowCompare(arr1, arr2) {\n return areEqual(arr1, arr2);\n}\nfunction sortNumerically(array) {\n return array.sort(function (a, b) { return a - b; });\n}\nfunction removeRepeatsFromArray(array, object) {\n if (!array) {\n return;\n }\n for (var index = array.length - 2; index >= 0; index--) {\n var thisOneMatches = array[index] === object;\n var nextOneMatches = array[index + 1] === object;\n if (thisOneMatches && nextOneMatches) {\n array.splice(index + 1, 1);\n }\n }\n}\nfunction removeFromUnorderedArray(array, object) {\n var index = array.indexOf(object);\n if (index >= 0) {\n // preserve the last element, then shorten array length by 1 to delete index\n array[index] = array[array.length - 1];\n array.pop();\n }\n}\nfunction removeFromArray(array, object) {\n var index = array.indexOf(object);\n if (index >= 0) {\n array.splice(index, 1);\n }\n}\nfunction removeAllFromUnorderedArray(array, toRemove) {\n for (var i = 0; i < toRemove.length; i++) {\n removeFromUnorderedArray(array, toRemove[i]);\n }\n}\nfunction removeAllFromArray(array, toRemove) {\n for (var i = 0; i < toRemove.length; i++) {\n removeFromArray(array, toRemove[i]);\n }\n}\nfunction insertIntoArray(array, object, toIndex) {\n array.splice(toIndex, 0, object);\n}\nfunction insertArrayIntoArray(dest, src, toIndex) {\n if (dest == null || src == null) {\n return;\n }\n // put items in backwards, otherwise inserted items end up in reverse order\n for (var i = src.length - 1; i >= 0; i--) {\n var item = src[i];\n insertIntoArray(dest, item, toIndex);\n }\n}\nfunction moveInArray(array, objectsToMove, toIndex) {\n // first take out items from the array\n removeAllFromArray(array, objectsToMove);\n // now add the objects, in same order as provided to us, that means we start at the end\n // as the objects will be pushed to the right as they are inserted\n objectsToMove.slice().reverse().forEach(function (obj) { return insertIntoArray(array, obj, toIndex); });\n}\nfunction includes(array, value) {\n return array.indexOf(value) > -1;\n}\nfunction flatten(arrayOfArrays) {\n return [].concat.apply([], arrayOfArrays);\n}\nfunction pushAll(target, source) {\n if (source == null || target == null) {\n return;\n }\n source.forEach(function (value) { return target.push(value); });\n}\nfunction toStrings(array) {\n return array.map(toStringOrNull);\n}\nfunction forEachReverse(list, action) {\n if (list == null) {\n return;\n }\n for (var i = list.length - 1; i >= 0; i--) {\n action(list[i], i);\n }\n}\n\nvar ArrayUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n firstExistingValue: firstExistingValue,\n existsAndNotEmpty: existsAndNotEmpty,\n last: last,\n areEqual: areEqual,\n shallowCompare: shallowCompare,\n sortNumerically: sortNumerically,\n removeRepeatsFromArray: removeRepeatsFromArray,\n removeFromUnorderedArray: removeFromUnorderedArray,\n removeFromArray: removeFromArray,\n removeAllFromUnorderedArray: removeAllFromUnorderedArray,\n removeAllFromArray: removeAllFromArray,\n insertIntoArray: insertIntoArray,\n insertArrayIntoArray: insertArrayIntoArray,\n moveInArray: moveInArray,\n includes: includes,\n flatten: flatten,\n pushAll: pushAll,\n toStrings: toStrings,\n forEachReverse: forEachReverse\n});\n\nvar AG_GRID_STOP_PROPAGATION = '__ag_Grid_Stop_Propagation';\nvar PASSIVE_EVENTS$1 = ['touchstart', 'touchend', 'touchmove', 'touchcancel', 'scroll'];\nvar supports = {};\n/**\n * a user once raised an issue - they said that when you opened a popup (eg context menu)\n * and then clicked on a selection checkbox, the popup wasn't closed. this is because the\n * popup listens for clicks on the body, however ag-grid WAS stopping propagation on the\n * checkbox clicks (so the rows didn't pick them up as row selection selection clicks).\n * to get around this, we have a pattern to stop propagation for the purposes of AG Grid,\n * but we still let the event pass back to the body.\n * @param {Event} event\n */\nfunction stopPropagationForAgGrid(event) {\n event[AG_GRID_STOP_PROPAGATION] = true;\n}\nfunction isStopPropagationForAgGrid(event) {\n return event[AG_GRID_STOP_PROPAGATION] === true;\n}\nvar isEventSupported = (function () {\n var tags = {\n select: 'input',\n change: 'input',\n submit: 'form',\n reset: 'form',\n error: 'img',\n load: 'img',\n abort: 'img'\n };\n var eventChecker = function (eventName) {\n if (typeof supports[eventName] === 'boolean') {\n return supports[eventName];\n }\n var el = document.createElement(tags[eventName] || 'div');\n eventName = 'on' + eventName;\n return supports[eventName] = (eventName in el);\n };\n return eventChecker;\n})();\nfunction getCtrlForEventTarget(gridOptionsService, eventTarget, type) {\n var sourceElement = eventTarget;\n while (sourceElement) {\n var renderedComp = gridOptionsService.getDomData(sourceElement, type);\n if (renderedComp) {\n return renderedComp;\n }\n sourceElement = sourceElement.parentElement;\n }\n return null;\n}\nfunction isElementInEventPath(element, event) {\n if (!event || !element) {\n return false;\n }\n return getEventPath(event).indexOf(element) >= 0;\n}\nfunction createEventPath(event) {\n var res = [];\n var pointer = event.target;\n while (pointer) {\n res.push(pointer);\n pointer = pointer.parentElement;\n }\n return res;\n}\n/**\n * Gets the path for a browser Event or from the target on an AG Grid Event\n * https://developer.mozilla.org/en-US/docs/Web/API/Event\n * @param {Event| { target: EventTarget }} event\n * @returns {EventTarget[]}\n */\nfunction getEventPath(event) {\n // This can be called with either a browser event or an AG Grid Event that has a target property.\n var eventNoType = event;\n if (eventNoType.path) {\n return eventNoType.path;\n }\n if (eventNoType.composedPath) {\n return eventNoType.composedPath();\n }\n // If this is an AG Grid event build the path ourselves\n return createEventPath(eventNoType);\n}\nfunction addSafePassiveEventListener(frameworkOverrides, eElement, event, listener) {\n var isPassive = includes(PASSIVE_EVENTS$1, event);\n var options = isPassive ? { passive: true } : undefined;\n // this check is here for certain scenarios where I believe the user must be destroying\n // the grid somehow but continuing for it to be used\n if (frameworkOverrides && frameworkOverrides.addEventListener) {\n frameworkOverrides.addEventListener(eElement, event, listener, options);\n }\n}\n\nvar EventUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n stopPropagationForAgGrid: stopPropagationForAgGrid,\n isStopPropagationForAgGrid: isStopPropagationForAgGrid,\n isEventSupported: isEventSupported,\n getCtrlForEventTarget: getCtrlForEventTarget,\n isElementInEventPath: isElementInEventPath,\n createEventPath: createEventPath,\n getEventPath: getEventPath,\n addSafePassiveEventListener: addSafePassiveEventListener\n});\n\nvar __decorate$2G = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar BeanStub = /** @class */ (function () {\n function BeanStub() {\n var _this = this;\n this.destroyFunctions = [];\n this.destroyed = false;\n // for vue 3 - prevents Vue from trying to make this (and obviously any sub classes) from being reactive\n // prevents vue from creating proxies for created objects and prevents identity related issues\n this.__v_skip = true;\n // this was a test constructor niall built, when active, it prints after 5 seconds all beans/components that are\n // not destroyed. to use, create a new grid, then api.destroy() before 5 seconds. then anything that gets printed\n // points to a bean or component that was not properly disposed of.\n // constructor() {\n // setTimeout(()=> {\n // if (this.isAlive()) {\n // let prototype: any = Object.getPrototypeOf(this);\n // const constructor: any = prototype.constructor;\n // const constructorString = constructor.toString();\n // const beanName = constructorString.substring(9, constructorString.indexOf(\"(\"));\n // console.log('is alive ' + beanName);\n // }\n // }, 5000);\n // }\n // Enable multiple grid properties to be updated together by the user but only trigger shared logic once.\n // Closely related to logic in ComponentUtil.ts\n this.lastChangeSetIdLookup = {};\n this.propertyListenerId = 0;\n this.isAlive = function () { return !_this.destroyed; };\n }\n // CellComp and GridComp and override this because they get the FrameworkOverrides from the Beans bean\n BeanStub.prototype.getFrameworkOverrides = function () {\n return this.frameworkOverrides;\n };\n BeanStub.prototype.getContext = function () {\n return this.context;\n };\n BeanStub.prototype.destroy = function () {\n // let prototype: any = Object.getPrototypeOf(this);\n // const constructor: any = prototype.constructor;\n // const constructorString = constructor.toString();\n // const beanName = constructorString.substring(9, constructorString.indexOf(\"(\"));\n this.destroyFunctions.forEach(function (func) { return func(); });\n this.destroyFunctions.length = 0;\n this.destroyed = true;\n this.dispatchEvent({ type: BeanStub.EVENT_DESTROYED });\n };\n BeanStub.prototype.addEventListener = function (eventType, listener) {\n if (!this.localEventService) {\n this.localEventService = new EventService();\n }\n this.localEventService.addEventListener(eventType, listener);\n };\n BeanStub.prototype.removeEventListener = function (eventType, listener) {\n if (this.localEventService) {\n this.localEventService.removeEventListener(eventType, listener);\n }\n };\n BeanStub.prototype.dispatchEventAsync = function (event) {\n var _this = this;\n window.setTimeout(function () { return _this.dispatchEvent(event); }, 0);\n };\n BeanStub.prototype.dispatchEvent = function (event) {\n if (this.localEventService) {\n this.localEventService.dispatchEvent(event);\n }\n };\n BeanStub.prototype.addManagedListener = function (object, event, listener) {\n var _this = this;\n if (this.destroyed) {\n return;\n }\n if (object instanceof HTMLElement) {\n addSafePassiveEventListener(this.getFrameworkOverrides(), object, event, listener);\n }\n else {\n object.addEventListener(event, listener);\n }\n var destroyFunc = function () {\n object.removeEventListener(event, listener);\n _this.destroyFunctions = _this.destroyFunctions.filter(function (fn) { return fn !== destroyFunc; });\n return null;\n };\n this.destroyFunctions.push(destroyFunc);\n return destroyFunc;\n };\n BeanStub.prototype.setupGridOptionListener = function (event, listener) {\n var _this = this;\n this.gridOptionsService.addEventListener(event, listener);\n var destroyFunc = function () {\n _this.gridOptionsService.removeEventListener(event, listener);\n _this.destroyFunctions = _this.destroyFunctions.filter(function (fn) { return fn !== destroyFunc; });\n return null;\n };\n this.destroyFunctions.push(destroyFunc);\n };\n /**\n * Setup a managed property listener for the given GridOption property.\n * @param event GridOption property to listen to changes for.\n * @param listener Listener to run when property value changes\n */\n BeanStub.prototype.addManagedPropertyListener = function (event, listener) {\n if (this.destroyed) {\n return;\n }\n this.setupGridOptionListener(event, listener);\n };\n /**\n * Setup managed property listeners for the given set of GridOption properties.\n * The listener will be run if any of the property changes but will only run once if\n * multiple of the properties change within the same framework lifecycle event.\n * Works on the basis that GridOptionsService updates all properties *before* any property change events are fired.\n * @param events Array of GridOption properties to listen for changes too.\n * @param listener Shared listener to run if any of the properties change\n */\n BeanStub.prototype.addManagedPropertyListeners = function (events, listener) {\n var _this = this;\n if (this.destroyed) {\n return;\n }\n // Ensure each set of events can run for the same changeSetId\n var eventsKey = events.join('-') + this.propertyListenerId++;\n var wrappedListener = function (event) {\n if (event.changeSet) {\n // ChangeSet is only set when the property change is part of a group of changes from ComponentUtils\n // Direct api calls should always be run as \n if (event.changeSet && event.changeSet.id === _this.lastChangeSetIdLookup[eventsKey]) {\n // Already run the listener for this set of prop changes so don't run again\n return;\n }\n _this.lastChangeSetIdLookup[eventsKey] = event.changeSet.id;\n }\n // Don't expose the underlying event value changes to the group listener.\n var propertiesChangeEvent = {\n type: 'gridPropertyChanged',\n changeSet: event.changeSet,\n };\n listener(propertiesChangeEvent);\n };\n events.forEach(function (event) { return _this.setupGridOptionListener(event, wrappedListener); });\n };\n BeanStub.prototype.addDestroyFunc = function (func) {\n // if we are already destroyed, we execute the func now\n if (this.isAlive()) {\n this.destroyFunctions.push(func);\n }\n else {\n func();\n }\n };\n BeanStub.prototype.createManagedBean = function (bean, context) {\n var res = this.createBean(bean, context);\n this.addDestroyFunc(this.destroyBean.bind(this, bean, context));\n return res;\n };\n BeanStub.prototype.createBean = function (bean, context, afterPreCreateCallback) {\n return (context || this.getContext()).createBean(bean, afterPreCreateCallback);\n };\n BeanStub.prototype.destroyBean = function (bean, context) {\n return (context || this.getContext()).destroyBean(bean);\n };\n BeanStub.prototype.destroyBeans = function (beans, context) {\n var _this = this;\n if (beans) {\n beans.forEach(function (bean) { return _this.destroyBean(bean, context); });\n }\n return [];\n };\n BeanStub.EVENT_DESTROYED = 'destroyed';\n __decorate$2G([\n Autowired('frameworkOverrides')\n ], BeanStub.prototype, \"frameworkOverrides\", void 0);\n __decorate$2G([\n Autowired('context')\n ], BeanStub.prototype, \"context\", void 0);\n __decorate$2G([\n Autowired('eventService')\n ], BeanStub.prototype, \"eventService\", void 0);\n __decorate$2G([\n Autowired('gridOptionsService')\n ], BeanStub.prototype, \"gridOptionsService\", void 0);\n __decorate$2G([\n Autowired('localeService')\n ], BeanStub.prototype, \"localeService\", void 0);\n __decorate$2G([\n Autowired('environment')\n ], BeanStub.prototype, \"environment\", void 0);\n __decorate$2G([\n PreDestroy\n ], BeanStub.prototype, \"destroy\", null);\n return BeanStub;\n}());\n\nvar __extends$36 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2F = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$9 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\n// takes ColDefs and ColGroupDefs and turns them into Columns and OriginalGroups\nvar ColumnFactory = /** @class */ (function (_super) {\n __extends$36(ColumnFactory, _super);\n function ColumnFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ColumnFactory.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('ColumnFactory');\n };\n ColumnFactory.prototype.createColumnTree = function (defs, primaryColumns, existingTree) {\n // column key creator dishes out unique column id's in a deterministic way,\n // so if we have two grids (that could be master/slave) with same column definitions,\n // then this ensures the two grids use identical id's.\n var columnKeyCreator = new ColumnKeyCreator();\n var _a = this.extractExistingTreeData(existingTree), existingCols = _a.existingCols, existingGroups = _a.existingGroups, existingColKeys = _a.existingColKeys;\n columnKeyCreator.addExistingKeys(existingColKeys);\n // create am unbalanced tree that maps the provided definitions\n var unbalancedTree = this.recursivelyCreateColumns(defs, 0, primaryColumns, existingCols, columnKeyCreator, existingGroups);\n var treeDept = this.findMaxDept(unbalancedTree, 0);\n this.logger.log('Number of levels for grouped columns is ' + treeDept);\n var columnTree = this.balanceColumnTree(unbalancedTree, 0, treeDept, columnKeyCreator);\n var deptFirstCallback = function (child, parent) {\n if (child instanceof ProvidedColumnGroup) {\n child.setupExpandable();\n }\n // we set the original parents at the end, rather than when we go along, as balancing the tree\n // adds extra levels into the tree. so we can only set parents when balancing is done.\n child.setOriginalParent(parent);\n };\n this.columnUtils.depthFirstOriginalTreeSearch(null, columnTree, deptFirstCallback);\n return {\n columnTree: columnTree,\n treeDept: treeDept\n };\n };\n ColumnFactory.prototype.extractExistingTreeData = function (existingTree) {\n var existingCols = [];\n var existingGroups = [];\n var existingColKeys = [];\n if (existingTree) {\n this.columnUtils.depthFirstOriginalTreeSearch(null, existingTree, function (item) {\n if (item instanceof ProvidedColumnGroup) {\n var group = item;\n existingGroups.push(group);\n }\n else {\n var col = item;\n existingColKeys.push(col.getId());\n existingCols.push(col);\n }\n });\n }\n return { existingCols: existingCols, existingGroups: existingGroups, existingColKeys: existingColKeys };\n };\n ColumnFactory.prototype.createForAutoGroups = function (autoGroupCols, gridBalancedTree) {\n var _this = this;\n return autoGroupCols.map(function (col) { return _this.createAutoGroupTreeItem(gridBalancedTree, col); });\n };\n ColumnFactory.prototype.createAutoGroupTreeItem = function (balancedColumnTree, column) {\n var dept = this.findDepth(balancedColumnTree);\n // at the end, this will be the top of the tree item.\n var nextChild = column;\n for (var i = dept - 1; i >= 0; i--) {\n var autoGroup = new ProvidedColumnGroup(null, \"FAKE_PATH_\" + column.getId() + \"}_\" + i, true, i);\n this.createBean(autoGroup);\n autoGroup.setChildren([nextChild]);\n nextChild.setOriginalParent(autoGroup);\n nextChild = autoGroup;\n }\n if (dept === 0) {\n column.setOriginalParent(null);\n }\n // at this point, the nextChild is the top most item in the tree\n return nextChild;\n };\n ColumnFactory.prototype.findDepth = function (balancedColumnTree) {\n var dept = 0;\n var pointer = balancedColumnTree;\n while (pointer && pointer[0] && pointer[0] instanceof ProvidedColumnGroup) {\n dept++;\n pointer = pointer[0].getChildren();\n }\n return dept;\n };\n ColumnFactory.prototype.balanceColumnTree = function (unbalancedTree, currentDept, columnDept, columnKeyCreator) {\n var result = [];\n // go through each child, for groups, recurse a level deeper,\n // for columns we need to pad\n for (var i = 0; i < unbalancedTree.length; i++) {\n var child = unbalancedTree[i];\n if (child instanceof ProvidedColumnGroup) {\n // child is a group, all we do is go to the next level of recursion\n var originalGroup = child;\n var newChildren = this.balanceColumnTree(originalGroup.getChildren(), currentDept + 1, columnDept, columnKeyCreator);\n originalGroup.setChildren(newChildren);\n result.push(originalGroup);\n }\n else {\n // child is a column - so here we add in the padded column groups if needed\n var firstPaddedGroup = void 0;\n var currentPaddedGroup = void 0;\n // this for loop will NOT run any loops if no padded column groups are needed\n for (var j = columnDept - 1; j >= currentDept; j--) {\n var newColId = columnKeyCreator.getUniqueKey(null, null);\n var colGroupDefMerged = this.createMergedColGroupDef(null);\n var paddedGroup = new ProvidedColumnGroup(colGroupDefMerged, newColId, true, currentDept);\n this.createBean(paddedGroup);\n if (currentPaddedGroup) {\n currentPaddedGroup.setChildren([paddedGroup]);\n }\n currentPaddedGroup = paddedGroup;\n if (!firstPaddedGroup) {\n firstPaddedGroup = currentPaddedGroup;\n }\n }\n // likewise this if statement will not run if no padded groups\n if (firstPaddedGroup && currentPaddedGroup) {\n result.push(firstPaddedGroup);\n var hasGroups = unbalancedTree.some(function (leaf) { return leaf instanceof ProvidedColumnGroup; });\n if (hasGroups) {\n currentPaddedGroup.setChildren([child]);\n continue;\n }\n else {\n currentPaddedGroup.setChildren(unbalancedTree);\n break;\n }\n }\n result.push(child);\n }\n }\n return result;\n };\n ColumnFactory.prototype.findMaxDept = function (treeChildren, dept) {\n var maxDeptThisLevel = dept;\n for (var i = 0; i < treeChildren.length; i++) {\n var abstractColumn = treeChildren[i];\n if (abstractColumn instanceof ProvidedColumnGroup) {\n var originalGroup = abstractColumn;\n var newDept = this.findMaxDept(originalGroup.getChildren(), dept + 1);\n if (maxDeptThisLevel < newDept) {\n maxDeptThisLevel = newDept;\n }\n }\n }\n return maxDeptThisLevel;\n };\n ColumnFactory.prototype.recursivelyCreateColumns = function (defs, level, primaryColumns, existingColsCopy, columnKeyCreator, existingGroups) {\n if (!defs)\n return [];\n var result = new Array(defs.length);\n for (var i = 0; i < result.length; i++) {\n var def = defs[i];\n if (this.isColumnGroup(def)) {\n result[i] = this.createColumnGroup(primaryColumns, def, level, existingColsCopy, columnKeyCreator, existingGroups);\n }\n else {\n result[i] = this.createColumn(primaryColumns, def, existingColsCopy, columnKeyCreator);\n }\n }\n return result;\n };\n ColumnFactory.prototype.createColumnGroup = function (primaryColumns, colGroupDef, level, existingColumns, columnKeyCreator, existingGroups) {\n var colGroupDefMerged = this.createMergedColGroupDef(colGroupDef);\n var groupId = columnKeyCreator.getUniqueKey(colGroupDefMerged.groupId || null, null);\n var providedGroup = new ProvidedColumnGroup(colGroupDefMerged, groupId, false, level);\n this.createBean(providedGroup);\n var existingGroupAndIndex = this.findExistingGroup(colGroupDef, existingGroups);\n // make sure we remove, so if user provided duplicate id, then we don't have more than\n // one column instance for colDef with common id\n if (existingGroupAndIndex) {\n existingGroups.splice(existingGroupAndIndex.idx, 1);\n }\n var existingGroup = existingGroupAndIndex === null || existingGroupAndIndex === void 0 ? void 0 : existingGroupAndIndex.group;\n if (existingGroup) {\n providedGroup.setExpanded(existingGroup.isExpanded());\n }\n var children = this.recursivelyCreateColumns(colGroupDefMerged.children, level + 1, primaryColumns, existingColumns, columnKeyCreator, existingGroups);\n providedGroup.setChildren(children);\n return providedGroup;\n };\n ColumnFactory.prototype.createMergedColGroupDef = function (colGroupDef) {\n var colGroupDefMerged = {};\n Object.assign(colGroupDefMerged, this.gridOptionsService.get('defaultColGroupDef'));\n Object.assign(colGroupDefMerged, colGroupDef);\n return colGroupDefMerged;\n };\n ColumnFactory.prototype.createColumn = function (primaryColumns, colDef, existingColsCopy, columnKeyCreator) {\n // see if column already exists\n var existingColAndIndex = this.findExistingColumn(colDef, existingColsCopy);\n // make sure we remove, so if user provided duplicate id, then we don't have more than\n // one column instance for colDef with common id\n if (existingColAndIndex) {\n existingColsCopy === null || existingColsCopy === void 0 ? void 0 : existingColsCopy.splice(existingColAndIndex.idx, 1);\n }\n var column = existingColAndIndex === null || existingColAndIndex === void 0 ? void 0 : existingColAndIndex.column;\n if (!column) {\n // no existing column, need to create one\n var colId = columnKeyCreator.getUniqueKey(colDef.colId, colDef.field);\n var colDefMerged = this.addColumnDefaultAndTypes(colDef, colId);\n column = new Column(colDefMerged, colDef, colId, primaryColumns);\n this.context.createBean(column);\n }\n else {\n var colDefMerged = this.addColumnDefaultAndTypes(colDef, column.getColId());\n column.setColDef(colDefMerged, colDef);\n this.applyColumnState(column, colDefMerged);\n }\n this.dataTypeService.addColumnListeners(column);\n return column;\n };\n ColumnFactory.prototype.applyColumnState = function (column, colDef) {\n // flex\n var flex = attrToNumber(colDef.flex);\n if (flex !== undefined) {\n column.setFlex(flex);\n }\n // width - we only set width if column is not flexing\n var noFlexThisCol = column.getFlex() <= 0;\n if (noFlexThisCol) {\n // both null and undefined means we skip, as it's not possible to 'clear' width (a column must have a width)\n var width = attrToNumber(colDef.width);\n if (width != null) {\n column.setActualWidth(width);\n }\n else {\n // otherwise set the width again, in case min or max width has changed,\n // and width needs to be adjusted.\n var widthBeforeUpdate = column.getActualWidth();\n column.setActualWidth(widthBeforeUpdate);\n }\n }\n // sort - anything but undefined will set sort, thus null or empty string will clear the sort\n if (colDef.sort !== undefined) {\n if (colDef.sort == 'asc' || colDef.sort == 'desc') {\n column.setSort(colDef.sort);\n }\n else {\n column.setSort(undefined);\n }\n }\n // sorted at - anything but undefined, thus null will clear the sortIndex\n var sortIndex = attrToNumber(colDef.sortIndex);\n if (sortIndex !== undefined) {\n column.setSortIndex(sortIndex);\n }\n // hide - anything but undefined, thus null will clear the hide\n var hide = attrToBoolean(colDef.hide);\n if (hide !== undefined) {\n column.setVisible(!hide);\n }\n // pinned - anything but undefined, thus null or empty string will remove pinned\n if (colDef.pinned !== undefined) {\n column.setPinned(colDef.pinned);\n }\n };\n ColumnFactory.prototype.findExistingColumn = function (newColDef, existingColsCopy) {\n if (!existingColsCopy)\n return undefined;\n for (var i = 0; i < existingColsCopy.length; i++) {\n var def = existingColsCopy[i].getUserProvidedColDef();\n if (!def)\n continue;\n var newHasId = newColDef.colId != null;\n if (newHasId) {\n if (existingColsCopy[i].getId() === newColDef.colId) {\n return { idx: i, column: existingColsCopy[i] };\n }\n continue;\n }\n var newHasField = newColDef.field != null;\n if (newHasField) {\n if (def.field === newColDef.field) {\n return { idx: i, column: existingColsCopy[i] };\n }\n continue;\n }\n if (def === newColDef) {\n return { idx: i, column: existingColsCopy[i] };\n }\n }\n return undefined;\n };\n ColumnFactory.prototype.findExistingGroup = function (newGroupDef, existingGroups) {\n var newHasId = newGroupDef.groupId != null;\n if (!newHasId) {\n return undefined;\n }\n for (var i = 0; i < existingGroups.length; i++) {\n var existingGroup = existingGroups[i];\n var existingDef = existingGroup.getColGroupDef();\n if (!existingDef) {\n continue;\n }\n if (existingGroup.getId() === newGroupDef.groupId) {\n return { idx: i, group: existingGroup };\n }\n }\n return undefined;\n };\n ColumnFactory.prototype.addColumnDefaultAndTypes = function (colDef, colId) {\n // start with empty merged definition\n var res = {};\n // merge properties from default column definitions\n var defaultColDef = this.gridOptionsService.get('defaultColDef');\n mergeDeep(res, defaultColDef, false, true);\n var columnType = this.dataTypeService.updateColDefAndGetColumnType(res, colDef, colId);\n if (columnType) {\n this.assignColumnTypes(columnType, res);\n }\n // merge properties from column definitions\n mergeDeep(res, colDef, false, true);\n var autoGroupColDef = this.gridOptionsService.get('autoGroupColumnDef');\n var isSortingCoupled = this.gridOptionsService.isColumnsSortingCoupledToGroup();\n if (colDef.rowGroup && autoGroupColDef && isSortingCoupled) {\n // override the sort for row group columns where the autoGroupColDef defines these values.\n mergeDeep(res, { sort: autoGroupColDef.sort, initialSort: autoGroupColDef.initialSort }, false, true);\n }\n this.dataTypeService.validateColDef(res);\n return res;\n };\n ColumnFactory.prototype.assignColumnTypes = function (typeKeys, colDefMerged) {\n if (!typeKeys.length) {\n return;\n }\n // merge user defined with default column types\n var allColumnTypes = Object.assign({}, DefaultColumnTypes);\n var userTypes = this.gridOptionsService.get('columnTypes') || {};\n iterateObject(userTypes, function (key, value) {\n if (key in allColumnTypes) {\n console.warn(\"AG Grid: the column type '\" + key + \"' is a default column type and cannot be overridden.\");\n }\n else {\n allColumnTypes[key] = value;\n }\n });\n typeKeys.forEach(function (t) {\n var typeColDef = allColumnTypes[t.trim()];\n if (typeColDef) {\n mergeDeep(colDefMerged, typeColDef, false, true);\n }\n else {\n console.warn(\"AG Grid: colDef.type '\" + t + \"' does not correspond to defined gridOptions.columnTypes\");\n }\n });\n };\n // if object has children, we assume it's a group\n ColumnFactory.prototype.isColumnGroup = function (abstractColDef) {\n return abstractColDef.children !== undefined;\n };\n __decorate$2F([\n Autowired('columnUtils')\n ], ColumnFactory.prototype, \"columnUtils\", void 0);\n __decorate$2F([\n Autowired('dataTypeService')\n ], ColumnFactory.prototype, \"dataTypeService\", void 0);\n __decorate$2F([\n __param$9(0, Qualifier('loggerFactory'))\n ], ColumnFactory.prototype, \"setBeans\", null);\n ColumnFactory = __decorate$2F([\n Bean('columnFactory')\n ], ColumnFactory);\n return ColumnFactory;\n}(BeanStub));\n\nvar __decorate$2E = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ColumnGroup = /** @class */ (function () {\n function ColumnGroup(providedColumnGroup, groupId, partId, pinned) {\n // depends on the open/closed state of the group, only displaying columns are stored here\n this.displayedChildren = [];\n this.localEventService = new EventService();\n this.groupId = groupId;\n this.partId = partId;\n this.providedColumnGroup = providedColumnGroup;\n this.pinned = pinned;\n }\n // this is static, a it is used outside of this class\n ColumnGroup.createUniqueId = function (groupId, instanceId) {\n return groupId + '_' + instanceId;\n };\n // as the user is adding and removing columns, the groups are recalculated.\n // this reset clears out all children, ready for children to be added again\n ColumnGroup.prototype.reset = function () {\n this.parent = null;\n this.children = null;\n this.displayedChildren = null;\n };\n ColumnGroup.prototype.getParent = function () {\n return this.parent;\n };\n ColumnGroup.prototype.setParent = function (parent) {\n this.parent = parent;\n };\n ColumnGroup.prototype.getUniqueId = function () {\n return ColumnGroup.createUniqueId(this.groupId, this.partId);\n };\n ColumnGroup.prototype.isEmptyGroup = function () {\n return this.displayedChildren.length === 0;\n };\n ColumnGroup.prototype.isMoving = function () {\n var allLeafColumns = this.getProvidedColumnGroup().getLeafColumns();\n if (!allLeafColumns || allLeafColumns.length === 0) {\n return false;\n }\n return allLeafColumns.every(function (col) { return col.isMoving(); });\n };\n ColumnGroup.prototype.checkLeft = function () {\n // first get all children to setLeft, as it impacts our decision below\n this.displayedChildren.forEach(function (child) {\n if (child instanceof ColumnGroup) {\n child.checkLeft();\n }\n });\n // set our left based on first displayed column\n if (this.displayedChildren.length > 0) {\n if (this.gridOptionsService.is('enableRtl')) {\n var lastChild = last(this.displayedChildren);\n var lastChildLeft = lastChild.getLeft();\n this.setLeft(lastChildLeft);\n }\n else {\n var firstChildLeft = this.displayedChildren[0].getLeft();\n this.setLeft(firstChildLeft);\n }\n }\n else {\n // this should never happen, as if we have no displayed columns, then\n // this groups should not even exist.\n this.setLeft(null);\n }\n };\n ColumnGroup.prototype.getLeft = function () {\n return this.left;\n };\n ColumnGroup.prototype.getOldLeft = function () {\n return this.oldLeft;\n };\n ColumnGroup.prototype.setLeft = function (left) {\n this.oldLeft = left;\n if (this.left !== left) {\n this.left = left;\n this.localEventService.dispatchEvent(this.createAgEvent(ColumnGroup.EVENT_LEFT_CHANGED));\n }\n };\n ColumnGroup.prototype.getPinned = function () {\n return this.pinned;\n };\n ColumnGroup.prototype.createAgEvent = function (type) {\n return { type: type };\n };\n ColumnGroup.prototype.addEventListener = function (eventType, listener) {\n this.localEventService.addEventListener(eventType, listener);\n };\n ColumnGroup.prototype.removeEventListener = function (eventType, listener) {\n this.localEventService.removeEventListener(eventType, listener);\n };\n ColumnGroup.prototype.getGroupId = function () {\n return this.groupId;\n };\n ColumnGroup.prototype.getPartId = function () {\n return this.partId;\n };\n ColumnGroup.prototype.isChildInThisGroupDeepSearch = function (wantedChild) {\n var result = false;\n this.children.forEach(function (foundChild) {\n if (wantedChild === foundChild) {\n result = true;\n }\n if (foundChild instanceof ColumnGroup) {\n if (foundChild.isChildInThisGroupDeepSearch(wantedChild)) {\n result = true;\n }\n }\n });\n return result;\n };\n ColumnGroup.prototype.getActualWidth = function () {\n var groupActualWidth = 0;\n if (this.displayedChildren) {\n this.displayedChildren.forEach(function (child) {\n groupActualWidth += child.getActualWidth();\n });\n }\n return groupActualWidth;\n };\n ColumnGroup.prototype.isResizable = function () {\n if (!this.displayedChildren) {\n return false;\n }\n // if at least one child is resizable, then the group is resizable\n var result = false;\n this.displayedChildren.forEach(function (child) {\n if (child.isResizable()) {\n result = true;\n }\n });\n return result;\n };\n ColumnGroup.prototype.getMinWidth = function () {\n var result = 0;\n this.displayedChildren.forEach(function (groupChild) {\n result += groupChild.getMinWidth() || 0;\n });\n return result;\n };\n ColumnGroup.prototype.addChild = function (child) {\n if (!this.children) {\n this.children = [];\n }\n this.children.push(child);\n };\n ColumnGroup.prototype.getDisplayedChildren = function () {\n return this.displayedChildren;\n };\n ColumnGroup.prototype.getLeafColumns = function () {\n var result = [];\n this.addLeafColumns(result);\n return result;\n };\n ColumnGroup.prototype.getDisplayedLeafColumns = function () {\n var result = [];\n this.addDisplayedLeafColumns(result);\n return result;\n };\n ColumnGroup.prototype.getDefinition = function () {\n return this.providedColumnGroup.getColGroupDef();\n };\n ColumnGroup.prototype.getColGroupDef = function () {\n return this.providedColumnGroup.getColGroupDef();\n };\n ColumnGroup.prototype.isPadding = function () {\n return this.providedColumnGroup.isPadding();\n };\n ColumnGroup.prototype.isExpandable = function () {\n return this.providedColumnGroup.isExpandable();\n };\n ColumnGroup.prototype.isExpanded = function () {\n return this.providedColumnGroup.isExpanded();\n };\n ColumnGroup.prototype.setExpanded = function (expanded) {\n this.providedColumnGroup.setExpanded(expanded);\n };\n ColumnGroup.prototype.addDisplayedLeafColumns = function (leafColumns) {\n this.displayedChildren.forEach(function (child) {\n if (child instanceof Column) {\n leafColumns.push(child);\n }\n else if (child instanceof ColumnGroup) {\n child.addDisplayedLeafColumns(leafColumns);\n }\n });\n };\n ColumnGroup.prototype.addLeafColumns = function (leafColumns) {\n this.children.forEach(function (child) {\n if (child instanceof Column) {\n leafColumns.push(child);\n }\n else if (child instanceof ColumnGroup) {\n child.addLeafColumns(leafColumns);\n }\n });\n };\n ColumnGroup.prototype.getChildren = function () {\n return this.children;\n };\n ColumnGroup.prototype.getColumnGroupShow = function () {\n return this.providedColumnGroup.getColumnGroupShow();\n };\n ColumnGroup.prototype.getProvidedColumnGroup = function () {\n return this.providedColumnGroup;\n };\n ColumnGroup.prototype.getPaddingLevel = function () {\n var parent = this.getParent();\n if (!this.isPadding() || !parent || !parent.isPadding()) {\n return 0;\n }\n return 1 + parent.getPaddingLevel();\n };\n ColumnGroup.prototype.calculateDisplayedColumns = function () {\n var _this = this;\n // clear out last time we calculated\n this.displayedChildren = [];\n // find the column group that is controlling expandable. this is relevant when we have padding (empty)\n // groups, where the expandable is actually the first parent that is not a padding group.\n var parentWithExpansion = this;\n while (parentWithExpansion != null && parentWithExpansion.isPadding()) {\n parentWithExpansion = parentWithExpansion.getParent();\n }\n var isExpandable = parentWithExpansion ? parentWithExpansion.providedColumnGroup.isExpandable() : false;\n // it not expandable, everything is visible\n if (!isExpandable) {\n this.displayedChildren = this.children;\n this.localEventService.dispatchEvent(this.createAgEvent(ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED));\n return;\n }\n // Add cols based on columnGroupShow\n // Note - the below also adds padding groups, these are always added because they never have\n // colDef.columnGroupShow set.\n this.children.forEach(function (child) {\n // never add empty groups\n var emptyGroup = child instanceof ColumnGroup && (!child.displayedChildren || !child.displayedChildren.length);\n if (emptyGroup) {\n return;\n }\n var headerGroupShow = child.getColumnGroupShow();\n switch (headerGroupShow) {\n case 'open':\n // when set to open, only show col if group is open\n if (parentWithExpansion.providedColumnGroup.isExpanded()) {\n _this.displayedChildren.push(child);\n }\n break;\n case 'closed':\n // when set to open, only show col if group is open\n if (!parentWithExpansion.providedColumnGroup.isExpanded()) {\n _this.displayedChildren.push(child);\n }\n break;\n default:\n _this.displayedChildren.push(child);\n break;\n }\n });\n this.localEventService.dispatchEvent(this.createAgEvent(ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED));\n };\n ColumnGroup.EVENT_LEFT_CHANGED = 'leftChanged';\n ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED = 'displayedChildrenChanged';\n __decorate$2E([\n Autowired('gridOptionsService')\n ], ColumnGroup.prototype, \"gridOptionsService\", void 0);\n return ColumnGroup;\n}());\n\nvar Events = /** @class */ (function () {\n function Events() {\n }\n /** Everything has changed with the columns. Either complete new set of columns set, or user called applyColumnState() */\n /** @deprecated - grid no longer uses this, and setSate() also fires individual events */\n Events.EVENT_COLUMN_EVERYTHING_CHANGED = 'columnEverythingChanged';\n /** User has set in new columns. */\n Events.EVENT_NEW_COLUMNS_LOADED = 'newColumnsLoaded';\n /** The pivot mode flag was changed */\n Events.EVENT_COLUMN_PIVOT_MODE_CHANGED = 'columnPivotModeChanged';\n /** A row group column was added, removed or order changed. */\n Events.EVENT_COLUMN_ROW_GROUP_CHANGED = 'columnRowGroupChanged';\n /** expandAll / collapseAll was called from the api. */\n Events.EVENT_EXPAND_COLLAPSE_ALL = 'expandOrCollapseAll';\n /** A pivot column was added, removed or order changed. */\n Events.EVENT_COLUMN_PIVOT_CHANGED = 'columnPivotChanged';\n /** The list of grid columns has changed. */\n Events.EVENT_GRID_COLUMNS_CHANGED = 'gridColumnsChanged';\n /** A value column was added, removed or agg function was changed. */\n Events.EVENT_COLUMN_VALUE_CHANGED = 'columnValueChanged';\n /** A column was moved */\n Events.EVENT_COLUMN_MOVED = 'columnMoved';\n /** One or more columns was shown / hidden */\n Events.EVENT_COLUMN_VISIBLE = 'columnVisible';\n /** One or more columns was pinned / unpinned*/\n Events.EVENT_COLUMN_PINNED = 'columnPinned';\n /** A column group was opened / closed */\n Events.EVENT_COLUMN_GROUP_OPENED = 'columnGroupOpened';\n /** One or more columns was resized. If just one, the column in the event is set. */\n Events.EVENT_COLUMN_RESIZED = 'columnResized';\n /** The list of displayed columns has changed, can result from columns open / close, column move, pivot, group, etc */\n Events.EVENT_DISPLAYED_COLUMNS_CHANGED = 'displayedColumnsChanged';\n /** The list of virtual columns has changed, results from viewport changing */\n Events.EVENT_VIRTUAL_COLUMNS_CHANGED = 'virtualColumnsChanged';\n /** Async Transactions Executed */\n Events.EVENT_ASYNC_TRANSACTIONS_FLUSHED = 'asyncTransactionsFlushed';\n /** A row group was opened / closed */\n Events.EVENT_ROW_GROUP_OPENED = 'rowGroupOpened';\n /** @deprecated v28 use EVENT_ROW_DATA_UPDATED instead */\n Events.EVENT_ROW_DATA_CHANGED = 'rowDataChanged';\n /** The client has updated data for the grid */\n Events.EVENT_ROW_DATA_UPDATED = 'rowDataUpdated';\n /** The client has set new floating data into the grid */\n Events.EVENT_PINNED_ROW_DATA_CHANGED = 'pinnedRowDataChanged';\n /** Range selection has changed */\n Events.EVENT_RANGE_SELECTION_CHANGED = 'rangeSelectionChanged';\n /** Chart was created */\n Events.EVENT_CHART_CREATED = 'chartCreated';\n /** Chart Range selection has changed */\n Events.EVENT_CHART_RANGE_SELECTION_CHANGED = 'chartRangeSelectionChanged';\n /** Chart Options have changed */\n Events.EVENT_CHART_OPTIONS_CHANGED = 'chartOptionsChanged';\n /** Chart was destroyed */\n Events.EVENT_CHART_DESTROYED = 'chartDestroyed';\n /** For when the tool panel is shown / hidden */\n Events.EVENT_TOOL_PANEL_VISIBLE_CHANGED = 'toolPanelVisibleChanged';\n Events.EVENT_TOOL_PANEL_SIZE_CHANGED = 'toolPanelSizeChanged';\n Events.EVENT_COLUMN_PANEL_ITEM_DRAG_START = 'columnPanelItemDragStart';\n Events.EVENT_COLUMN_PANEL_ITEM_DRAG_END = 'columnPanelItemDragEnd';\n /** Model was updated - grid updates the drawn rows when this happens */\n Events.EVENT_MODEL_UPDATED = 'modelUpdated';\n Events.EVENT_CUT_START = 'cutStart';\n Events.EVENT_CUT_END = 'cutEnd';\n Events.EVENT_PASTE_START = 'pasteStart';\n Events.EVENT_PASTE_END = 'pasteEnd';\n Events.EVENT_FILL_START = 'fillStart';\n Events.EVENT_FILL_END = 'fillEnd';\n Events.EVENT_RANGE_DELETE_START = 'rangeDeleteStart';\n Events.EVENT_RANGE_DELETE_END = 'rangeDeleteEnd';\n /** Undo operation has started. */\n Events.EVENT_UNDO_STARTED = 'undoStarted';\n /** Undo operation has ended. */\n Events.EVENT_UNDO_ENDED = 'undoEnded';\n /** Redo operation has started. */\n Events.EVENT_REDO_STARTED = 'redoStarted';\n /** Redo operation has ended. */\n Events.EVENT_REDO_ENDED = 'redoEnded';\n Events.EVENT_KEY_SHORTCUT_CHANGED_CELL_START = 'keyShortcutChangedCellStart';\n Events.EVENT_KEY_SHORTCUT_CHANGED_CELL_END = 'keyShortcutChangedCellEnd';\n Events.EVENT_CELL_CLICKED = 'cellClicked';\n Events.EVENT_CELL_DOUBLE_CLICKED = 'cellDoubleClicked';\n Events.EVENT_CELL_MOUSE_DOWN = 'cellMouseDown';\n Events.EVENT_CELL_CONTEXT_MENU = 'cellContextMenu';\n Events.EVENT_CELL_VALUE_CHANGED = 'cellValueChanged';\n Events.EVENT_CELL_EDIT_REQUEST = 'cellEditRequest';\n Events.EVENT_ROW_VALUE_CHANGED = 'rowValueChanged';\n Events.EVENT_CELL_FOCUSED = 'cellFocused';\n Events.EVENT_CELL_FOCUS_CLEARED = 'cellFocusCleared';\n Events.EVENT_FULL_WIDTH_ROW_FOCUSED = 'fullWidthRowFocused';\n Events.EVENT_ROW_SELECTED = 'rowSelected';\n Events.EVENT_SELECTION_CHANGED = 'selectionChanged';\n Events.EVENT_TOOLTIP_SHOW = 'tooltipShow';\n Events.EVENT_TOOLTIP_HIDE = 'tooltipHide';\n Events.EVENT_CELL_KEY_DOWN = 'cellKeyDown';\n Events.EVENT_CELL_MOUSE_OVER = 'cellMouseOver';\n Events.EVENT_CELL_MOUSE_OUT = 'cellMouseOut';\n /** 2 events for filtering. The grid LISTENS for filterChanged and afterFilterChanged */\n Events.EVENT_FILTER_CHANGED = 'filterChanged';\n /** Filter was change but not applied. Only useful if apply buttons are used in filters. */\n Events.EVENT_FILTER_MODIFIED = 'filterModified';\n Events.EVENT_FILTER_OPENED = 'filterOpened';\n Events.EVENT_ADVANCED_FILTER_BUILDER_VISIBLE_CHANGED = 'advancedFilterBuilderVisibleChanged';\n Events.EVENT_SORT_CHANGED = 'sortChanged';\n /** A row was removed from the dom, for any reason. Use to clean up resources (if any) used by the row. */\n Events.EVENT_VIRTUAL_ROW_REMOVED = 'virtualRowRemoved';\n Events.EVENT_ROW_CLICKED = 'rowClicked';\n Events.EVENT_ROW_DOUBLE_CLICKED = 'rowDoubleClicked';\n /** Gets called once after the grid has finished initialising. */\n Events.EVENT_GRID_READY = 'gridReady';\n /** Called once when the grid is about to get destroyed. */\n Events.EVENT_GRID_PRE_DESTROYED = 'gridPreDestroyed';\n /** Width of height of the main grid div has changed. Grid listens for this and does layout of grid if it's\n * changed, so always filling the space it was given. */\n Events.EVENT_GRID_SIZE_CHANGED = 'gridSizeChanged';\n /** The indexes of the rows rendered has changed, eg user has scrolled to a new vertical position. */\n Events.EVENT_VIEWPORT_CHANGED = 'viewportChanged';\n /* The width of the scrollbar has been calculated */\n Events.EVENT_SCROLLBAR_WIDTH_CHANGED = 'scrollbarWidthChanged';\n /** Rows were rendered for the first time (ie on async data load). */\n Events.EVENT_FIRST_DATA_RENDERED = 'firstDataRendered';\n /** A column drag has started, either resizing a column or moving a column. */\n Events.EVENT_DRAG_STARTED = 'dragStarted';\n /** A column drag has stopped */\n Events.EVENT_DRAG_STOPPED = 'dragStopped';\n Events.EVENT_CHECKBOX_CHANGED = 'checkboxChanged';\n Events.EVENT_ROW_EDITING_STARTED = 'rowEditingStarted';\n Events.EVENT_ROW_EDITING_STOPPED = 'rowEditingStopped';\n Events.EVENT_CELL_EDITING_STARTED = 'cellEditingStarted';\n Events.EVENT_CELL_EDITING_STOPPED = 'cellEditingStopped';\n /** Main body of grid has scrolled, either horizontally or vertically */\n Events.EVENT_BODY_SCROLL = 'bodyScroll';\n /** Main body of the grid has stopped scrolling, either horizontally or vertically */\n Events.EVENT_BODY_SCROLL_END = 'bodyScrollEnd';\n Events.EVENT_HEIGHT_SCALE_CHANGED = 'heightScaleChanged';\n /** The displayed page for pagination has changed. For example the data was filtered or sorted,\n * or the user has moved to a different page. */\n Events.EVENT_PAGINATION_CHANGED = 'paginationChanged';\n /** Only used by React, Angular, Web Components and VueJS AG Grid components\n * (not used if doing plain JavaScript). If the grid receives changes due\n * to bound properties, this event fires after the grid has finished processing the change. */\n Events.EVENT_COMPONENT_STATE_CHANGED = 'componentStateChanged';\n /** Only used by the SSRM, called when the grid has no more rows to refresh */\n Events.EVENT_STORE_REFRESHED = 'storeRefreshed';\n /***************************** INTERNAL EVENTS: START ******************************************* */\n /** Please remember to add to ComponentUtil.EXCLUDED_INTERNAL_EVENTS to not have these events exposed to framework components. */\n /** All items from here down are used internally by the grid, not intended for external use. */\n // not documented, either experimental, or we just don't want users using an depending on them\n Events.EVENT_BODY_HEIGHT_CHANGED = 'bodyHeightChanged';\n Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED = 'displayedColumnsWidthChanged';\n Events.EVENT_SCROLL_VISIBILITY_CHANGED = 'scrollVisibilityChanged';\n Events.EVENT_COLUMN_HOVER_CHANGED = 'columnHoverChanged';\n Events.EVENT_FLASH_CELLS = 'flashCells';\n Events.EVENT_PAGINATION_PIXEL_OFFSET_CHANGED = 'paginationPixelOffsetChanged';\n Events.EVENT_DISPLAYED_ROWS_CHANGED = 'displayedRowsChanged';\n Events.EVENT_LEFT_PINNED_WIDTH_CHANGED = 'leftPinnedWidthChanged';\n Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED = 'rightPinnedWidthChanged';\n Events.EVENT_ROW_CONTAINER_HEIGHT_CHANGED = 'rowContainerHeightChanged';\n Events.EVENT_HEADER_HEIGHT_CHANGED = 'headerHeightChanged';\n Events.EVENT_COLUMN_HEADER_HEIGHT_CHANGED = 'columnHeaderHeightChanged';\n Events.EVENT_ROW_DRAG_ENTER = 'rowDragEnter';\n Events.EVENT_ROW_DRAG_MOVE = 'rowDragMove';\n Events.EVENT_ROW_DRAG_LEAVE = 'rowDragLeave';\n Events.EVENT_ROW_DRAG_END = 'rowDragEnd';\n // environment\n Events.EVENT_GRID_STYLES_CHANGED = 'gridStylesChanged';\n // primarily for charts\n Events.EVENT_POPUP_TO_FRONT = 'popupToFront';\n // these are used for server side group and agg - only used by CS with Viewport Row Model - intention is\n // to design these better around server side functions and then release to general public when fully working with\n // all the row models.\n Events.EVENT_COLUMN_ROW_GROUP_CHANGE_REQUEST = 'columnRowGroupChangeRequest';\n Events.EVENT_COLUMN_PIVOT_CHANGE_REQUEST = 'columnPivotChangeRequest';\n Events.EVENT_COLUMN_VALUE_CHANGE_REQUEST = 'columnValueChangeRequest';\n Events.EVENT_COLUMN_AGG_FUNC_CHANGE_REQUEST = 'columnAggFuncChangeRequest';\n Events.EVENT_KEYBOARD_FOCUS = 'keyboardFocus';\n Events.EVENT_MOUSE_FOCUS = 'mouseFocus';\n Events.EVENT_STORE_UPDATED = 'storeUpdated';\n Events.EVENT_FILTER_DESTROYED = 'filterDestroyed';\n Events.EVENT_ROW_DATA_UPDATE_STARTED = 'rowDataUpdateStarted';\n // Advanced Filters\n Events.EVENT_ADVANCED_FILTER_ENABLED_CHANGED = 'advancedFilterEnabledChanged';\n Events.EVENT_DATA_TYPES_INFERRED = 'dataTypesInferred';\n // Widgets\n Events.EVENT_FIELD_VALUE_CHANGED = 'fieldValueChanged';\n Events.EVENT_FIELD_PICKER_VALUE_SELECTED = 'fieldPickerValueSelected';\n return Events;\n}());\n\n// class returns unique instance id's for columns.\n// eg, the following calls (in this order) will result in:\n//\n// getInstanceIdForKey('country') => 0\n// getInstanceIdForKey('country') => 1\n// getInstanceIdForKey('country') => 2\n// getInstanceIdForKey('country') => 3\n// getInstanceIdForKey('age') => 0\n// getInstanceIdForKey('age') => 1\n// getInstanceIdForKey('country') => 4\nvar GroupInstanceIdCreator = /** @class */ (function () {\n function GroupInstanceIdCreator() {\n // this map contains keys to numbers, so we remember what the last call was\n this.existingIds = {};\n }\n GroupInstanceIdCreator.prototype.getInstanceIdForKey = function (key) {\n var lastResult = this.existingIds[key];\n var result;\n if (typeof lastResult !== 'number') {\n // first time this key\n result = 0;\n }\n else {\n result = lastResult + 1;\n }\n this.existingIds[key] = result;\n return result;\n };\n return GroupInstanceIdCreator;\n}());\n\nvar __extends$35 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2D = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GROUP_AUTO_COLUMN_ID = 'ag-Grid-AutoColumn';\nvar AutoGroupColService = /** @class */ (function (_super) {\n __extends$35(AutoGroupColService, _super);\n function AutoGroupColService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AutoGroupColService.prototype.createAutoGroupColumns = function (rowGroupColumns) {\n var _this = this;\n var groupAutoColumns = [];\n var doingTreeData = this.gridOptionsService.is('treeData');\n var doingMultiAutoColumn = this.gridOptionsService.isGroupMultiAutoColumn();\n if (doingTreeData && doingMultiAutoColumn) {\n console.warn('AG Grid: you cannot mix groupDisplayType = \"multipleColumns\" with treeData, only one column can be used to display groups when doing tree data');\n doingMultiAutoColumn = false;\n }\n // if doing groupDisplayType = \"multipleColumns\", then we call the method multiple times, once\n // for each column we are grouping by\n if (doingMultiAutoColumn) {\n rowGroupColumns.forEach(function (rowGroupCol, index) {\n groupAutoColumns.push(_this.createOneAutoGroupColumn(rowGroupCol, index));\n });\n }\n else {\n groupAutoColumns.push(this.createOneAutoGroupColumn());\n }\n return groupAutoColumns;\n };\n AutoGroupColService.prototype.updateAutoGroupColumns = function (autoGroupColumns) {\n var _this = this;\n autoGroupColumns.forEach(function (column, index) { return _this.updateOneAutoGroupColumn(column, index); });\n };\n // rowGroupCol and index are missing if groupDisplayType != \"multipleColumns\"\n AutoGroupColService.prototype.createOneAutoGroupColumn = function (rowGroupCol, index) {\n // if doing multi, set the field\n var colId;\n if (rowGroupCol) {\n colId = GROUP_AUTO_COLUMN_ID + \"-\" + rowGroupCol.getId();\n }\n else {\n colId = GROUP_AUTO_COLUMN_ID;\n }\n var colDef = this.createAutoGroupColDef(colId, rowGroupCol, index);\n colDef.colId = colId;\n var newCol = new Column(colDef, null, colId, true);\n this.context.createBean(newCol);\n return newCol;\n };\n /**\n * Refreshes an auto group col to load changes from defaultColDef or autoGroupColDef\n */\n AutoGroupColService.prototype.updateOneAutoGroupColumn = function (colToUpdate, index) {\n var oldColDef = colToUpdate.getColDef();\n var underlyingColId = typeof oldColDef.showRowGroup == 'string' ? oldColDef.showRowGroup : undefined;\n var underlyingColumn = underlyingColId != null ? this.columnModel.getPrimaryColumn(underlyingColId) : undefined;\n var colDef = this.createAutoGroupColDef(colToUpdate.getId(), underlyingColumn !== null && underlyingColumn !== void 0 ? underlyingColumn : undefined, index);\n colToUpdate.setColDef(colDef, null);\n this.columnFactory.applyColumnState(colToUpdate, colDef);\n };\n AutoGroupColService.prototype.createAutoGroupColDef = function (colId, underlyingColumn, index) {\n // if one provided by user, use it, otherwise create one\n var res = this.createBaseColDef(underlyingColumn);\n var autoGroupColumnDef = this.gridOptionsService.get('autoGroupColumnDef');\n mergeDeep(res, autoGroupColumnDef);\n res = this.columnFactory.addColumnDefaultAndTypes(res, colId);\n // For tree data the filter is always allowed\n if (!this.gridOptionsService.is('treeData')) {\n // we would only allow filter if the user has provided field or value getter. otherwise the filter\n // would not be able to work.\n var noFieldOrValueGetter = missing(res.field) &&\n missing(res.valueGetter) &&\n missing(res.filterValueGetter) &&\n res.filter !== 'agGroupColumnFilter';\n if (noFieldOrValueGetter) {\n res.filter = false;\n }\n }\n // if showing many cols, we don't want to show more than one with a checkbox for selection\n if (index && index > 0) {\n res.headerCheckboxSelection = false;\n }\n var isSortingCoupled = this.gridOptionsService.isColumnsSortingCoupledToGroup();\n var hasOwnData = res.valueGetter || res.field != null;\n if (isSortingCoupled && !hasOwnData) {\n // if col is coupled sorting, and has sort attribute, we want to ignore this\n // because we only accept the sort on creation of the col\n res.sortIndex = undefined;\n res.initialSort = undefined;\n }\n return res;\n };\n AutoGroupColService.prototype.createBaseColDef = function (rowGroupCol) {\n var userDef = this.gridOptionsService.get('autoGroupColumnDef');\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n var res = {\n headerName: localeTextFunc('group', 'Group')\n };\n var userHasProvidedGroupCellRenderer = userDef &&\n (userDef.cellRenderer || userDef.cellRendererSelector);\n // only add the default group cell renderer if user hasn't provided one\n if (!userHasProvidedGroupCellRenderer) {\n res.cellRenderer = 'agGroupCellRenderer';\n }\n // we never allow moving the group column\n // defaultAutoColDef.suppressMovable = true;\n if (rowGroupCol) {\n var colDef = rowGroupCol.getColDef();\n Object.assign(res, {\n // cellRendererParams.groupKey: colDefToCopy.field;\n headerName: this.columnModel.getDisplayNameForColumn(rowGroupCol, 'header'),\n headerValueGetter: colDef.headerValueGetter\n });\n if (colDef.cellRenderer) {\n Object.assign(res, {\n cellRendererParams: {\n innerRenderer: colDef.cellRenderer,\n innerRendererParams: colDef.cellRendererParams\n }\n });\n }\n res.showRowGroup = rowGroupCol.getColId();\n }\n else {\n res.showRowGroup = true;\n }\n return res;\n };\n __decorate$2D([\n Autowired('columnModel')\n ], AutoGroupColService.prototype, \"columnModel\", void 0);\n __decorate$2D([\n Autowired('columnFactory')\n ], AutoGroupColService.prototype, \"columnFactory\", void 0);\n AutoGroupColService = __decorate$2D([\n Bean('autoGroupColService')\n ], AutoGroupColService);\n return AutoGroupColService;\n}(BeanStub));\n\nvar reUnescapedHtml = /[&<>\"']/g;\n/**\n * HTML Escapes.\n */\nvar HTML_ESCAPES = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n \"'\": '''\n};\n/**\n * It encodes any string in UTF-8 format\n * taken from https://github.com/mathiasbynens/utf8.js\n * @param {string} s\n * @returns {string}\n */\nfunction utf8_encode(s) {\n var stringFromCharCode = String.fromCharCode;\n function ucs2decode(string) {\n var output = [];\n if (!string) {\n return [];\n }\n var len = string.length;\n var counter = 0;\n var value;\n var extra;\n while (counter < len) {\n value = string.charCodeAt(counter++);\n if (value >= 0xD800 && value <= 0xDBFF && counter < len) {\n // high surrogate, and there is a next character\n extra = string.charCodeAt(counter++);\n if ((extra & 0xFC00) == 0xDC00) { // low surrogate\n output.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n }\n else {\n // unmatched surrogate; only append this code unit, in case the next\n // code unit is the high surrogate of a surrogate pair\n output.push(value);\n counter--;\n }\n }\n else {\n output.push(value);\n }\n }\n return output;\n }\n function checkScalarValue(point) {\n if (point >= 0xD800 && point <= 0xDFFF) {\n throw Error('Lone surrogate U+' + point.toString(16).toUpperCase() +\n ' is not a scalar value');\n }\n }\n function createByte(point, shift) {\n return stringFromCharCode(((point >> shift) & 0x3F) | 0x80);\n }\n function encodeCodePoint(point) {\n if ((point >= 0 && point <= 31 && point !== 10)) {\n var convertedCode = point.toString(16).toUpperCase();\n var paddedCode = convertedCode.padStart(4, '0');\n return \"_x\" + paddedCode + \"_\";\n }\n if ((point & 0xFFFFFF80) == 0) { // 1-byte sequence\n return stringFromCharCode(point);\n }\n var symbol = '';\n if ((point & 0xFFFFF800) == 0) { // 2-byte sequence\n symbol = stringFromCharCode(((point >> 6) & 0x1F) | 0xC0);\n }\n else if ((point & 0xFFFF0000) == 0) { // 3-byte sequence\n checkScalarValue(point);\n symbol = stringFromCharCode(((point >> 12) & 0x0F) | 0xE0);\n symbol += createByte(point, 6);\n }\n else if ((point & 0xFFE00000) == 0) { // 4-byte sequence\n symbol = stringFromCharCode(((point >> 18) & 0x07) | 0xF0);\n symbol += createByte(point, 12);\n symbol += createByte(point, 6);\n }\n symbol += stringFromCharCode((point & 0x3F) | 0x80);\n return symbol;\n }\n var codePoints = ucs2decode(s);\n var length = codePoints.length;\n var index = -1;\n var codePoint;\n var byteString = '';\n while (++index < length) {\n codePoint = codePoints[index];\n byteString += encodeCodePoint(codePoint);\n }\n return byteString;\n}\nfunction capitalise(str) {\n return str[0].toUpperCase() + str.substr(1).toLowerCase();\n}\nfunction escapeString(toEscape, skipEscapingHtmlChars) {\n if (toEscape == null) {\n return null;\n }\n // we call toString() twice, in case value is an object, where user provides\n // a toString() method, and first call to toString() returns back something other\n // than a string (eg a number to render)\n var stringResult = toEscape.toString().toString();\n if (skipEscapingHtmlChars) {\n return stringResult;\n }\n // in react we don't need to escape html characters, as it's done by the framework\n return stringResult.replace(reUnescapedHtml, function (chr) { return HTML_ESCAPES[chr]; });\n}\n/**\n * Converts a camelCase string into startCase\n * @param {string} camelCase\n * @return {string}\n */\nfunction camelCaseToHumanText(camelCase) {\n if (!camelCase || camelCase == null) {\n return null;\n }\n // either split on a lowercase followed by uppercase ie asHereTo -> as Here To\n var rex = /([a-z])([A-Z])/g;\n // or starts with uppercase and we take all expect the last which is assumed to be part of next word if followed by lowercase HEREToThere -> HERE To There\n var rexCaps = /([A-Z]+)([A-Z])([a-z])/g;\n var words = camelCase\n .replace(rex, '$1 $2')\n .replace(rexCaps, '$1 $2$3')\n .replace(/\\./g, ' ')\n .split(' ');\n return words.map(function (word) { return word.substring(0, 1).toUpperCase() + ((word.length > 1) ? word.substring(1, word.length) : ''); }).join(' ');\n}\n/**\n * Converts a camelCase string into hyphenated string\n * @param {string} camelCase\n * @return {string}\n */\nfunction camelCaseToHyphenated(camelCase) {\n return camelCase.replace(/[A-Z]/g, function (s) { return \"-\" + s.toLocaleLowerCase(); });\n}\n\nvar StringUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n utf8_encode: utf8_encode,\n capitalise: capitalise,\n escapeString: escapeString,\n camelCaseToHumanText: camelCaseToHumanText,\n camelCaseToHyphenated: camelCaseToHyphenated\n});\n\nfunction convertToMap(arr) {\n var map = new Map();\n arr.forEach(function (pair) { return map.set(pair[0], pair[1]); });\n return map;\n}\n// handy for organising a list into a map, where each item is mapped by an attribute, eg mapping Columns by ID\nfunction mapById(arr, callback) {\n var map = new Map();\n arr.forEach(function (item) { return map.set(callback(item), item); });\n return map;\n}\nfunction keys(map) {\n var arr = [];\n map.forEach(function (_, key) { return arr.push(key); });\n return arr;\n}\n\nvar MapUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n convertToMap: convertToMap,\n mapById: mapById,\n keys: keys\n});\n\nvar ColDefUtil = /** @class */ (function () {\n function ColDefUtil() {\n }\n ColDefUtil.ColDefPropertyMap = {\n headerName: undefined,\n columnGroupShow: undefined,\n headerClass: undefined,\n toolPanelClass: undefined,\n headerValueGetter: undefined,\n pivotKeys: undefined,\n groupId: undefined,\n colId: undefined,\n sort: undefined,\n initialSort: undefined,\n field: undefined,\n type: undefined,\n cellDataType: undefined,\n tooltipComponent: undefined,\n tooltipField: undefined,\n headerTooltip: undefined,\n cellClass: undefined,\n showRowGroup: undefined,\n filter: undefined,\n initialAggFunc: undefined,\n defaultAggFunc: undefined,\n aggFunc: undefined,\n pinned: undefined,\n initialPinned: undefined,\n chartDataType: undefined,\n cellEditorPopupPosition: undefined,\n headerGroupComponent: undefined,\n headerGroupComponentParams: undefined,\n cellStyle: undefined,\n cellRenderer: undefined,\n cellRendererParams: undefined,\n cellEditor: undefined,\n cellEditorParams: undefined,\n filterParams: undefined,\n pivotValueColumn: undefined,\n headerComponent: undefined,\n headerComponentParams: undefined,\n floatingFilterComponent: undefined,\n floatingFilterComponentParams: undefined,\n tooltipComponentParams: undefined,\n refData: undefined,\n columnsMenuParams: undefined,\n children: undefined,\n sortingOrder: undefined,\n allowedAggFuncs: undefined,\n menuTabs: undefined,\n pivotTotalColumnIds: undefined,\n cellClassRules: undefined,\n icons: undefined,\n sortIndex: undefined,\n initialSortIndex: undefined,\n flex: undefined,\n initialFlex: undefined,\n width: undefined,\n initialWidth: undefined,\n minWidth: undefined,\n maxWidth: undefined,\n rowGroupIndex: undefined,\n initialRowGroupIndex: undefined,\n pivotIndex: undefined,\n initialPivotIndex: undefined,\n suppressCellFlash: undefined,\n suppressColumnsToolPanel: undefined,\n suppressFiltersToolPanel: undefined,\n openByDefault: undefined,\n marryChildren: undefined,\n suppressStickyLabel: undefined,\n hide: undefined,\n initialHide: undefined,\n rowGroup: undefined,\n initialRowGroup: undefined,\n pivot: undefined,\n initialPivot: undefined,\n checkboxSelection: undefined,\n showDisabledCheckboxes: undefined,\n headerCheckboxSelection: undefined,\n headerCheckboxSelectionFilteredOnly: undefined,\n headerCheckboxSelectionCurrentPageOnly: undefined,\n suppressMenu: undefined,\n suppressMovable: undefined,\n lockPosition: undefined,\n lockVisible: undefined,\n lockPinned: undefined,\n unSortIcon: undefined,\n suppressSizeToFit: undefined,\n suppressAutoSize: undefined,\n enableRowGroup: undefined,\n enablePivot: undefined,\n enableValue: undefined,\n editable: undefined,\n suppressPaste: undefined,\n suppressNavigable: undefined,\n enableCellChangeFlash: undefined,\n rowDrag: undefined,\n dndSource: undefined,\n autoHeight: undefined,\n wrapText: undefined,\n sortable: undefined,\n resizable: undefined,\n singleClickEdit: undefined,\n floatingFilter: undefined,\n cellEditorPopup: undefined,\n suppressFillHandle: undefined,\n wrapHeaderText: undefined,\n autoHeaderHeight: undefined,\n dndSourceOnRowDrag: undefined,\n valueGetter: undefined,\n valueSetter: undefined,\n filterValueGetter: undefined,\n keyCreator: undefined,\n valueFormatter: undefined,\n valueParser: undefined,\n comparator: undefined,\n equals: undefined,\n pivotComparator: undefined,\n suppressKeyboardEvent: undefined,\n suppressHeaderKeyboardEvent: undefined,\n colSpan: undefined,\n rowSpan: undefined,\n getQuickFilterText: undefined,\n onCellValueChanged: undefined,\n onCellClicked: undefined,\n onCellDoubleClicked: undefined,\n onCellContextMenu: undefined,\n rowDragText: undefined,\n tooltipValueGetter: undefined,\n cellRendererSelector: undefined,\n cellEditorSelector: undefined,\n suppressSpanHeaderHeight: undefined,\n useValueFormatterForExport: undefined,\n useValueParserForImport: undefined,\n };\n ColDefUtil.ALL_PROPERTIES = Object.keys(ColDefUtil.ColDefPropertyMap);\n return ColDefUtil;\n}());\n\nvar __read$v = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$o = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\n/**\n * These keys are used for validating properties supplied on a gridOptions object, and for code generation.\n * If you change the properties on the gridOptions interface, you *must* update this file as well to be consistent.\n */\nvar PropertyKeys = /** @class */ (function () {\n function PropertyKeys() {\n }\n PropertyKeys.STRING_PROPERTIES = [\n 'rowSelection', 'overlayLoadingTemplate', 'overlayNoRowsTemplate', 'gridId',\n 'quickFilterText', 'rowModelType', 'editType', 'domLayout', 'clipboardDelimiter', 'rowGroupPanelShow',\n 'multiSortKey', 'pivotColumnGroupTotals', 'pivotRowTotals', 'pivotPanelShow', 'fillHandleDirection',\n 'serverSideStoreType', 'groupDisplayType', 'treeDataDisplayType', 'colResizeDefault', 'tooltipTrigger',\n 'serverSidePivotResultFieldSeparator',\n ];\n PropertyKeys.OBJECT_PROPERTIES = [\n 'components', 'rowStyle', 'context', 'autoGroupColumnDef', 'localeText', 'icons',\n 'datasource', 'serverSideDatasource', 'viewportDatasource', 'groupRowRendererParams', 'aggFuncs', 'fullWidthCellRendererParams',\n 'defaultColGroupDef', 'defaultColDef', 'defaultCsvExportParams', 'defaultExcelExportParams', 'columnTypes',\n 'rowClassRules', 'detailCellRendererParams', 'loadingCellRendererParams', 'loadingOverlayComponentParams',\n 'noRowsOverlayComponentParams', 'popupParent', 'statusBar', 'sideBar', 'chartThemeOverrides',\n 'customChartThemes', 'chartToolPanelsDef', 'dataTypeDefinitions', 'advancedFilterModel', 'advancedFilterParent',\n 'advancedFilterBuilderParams',\n ];\n PropertyKeys.ARRAY_PROPERTIES = [\n 'sortingOrder', 'alignedGrids', 'rowData', 'columnDefs', 'excelStyles', 'pinnedTopRowData', 'pinnedBottomRowData', 'chartThemes', 'rowClass',\n ];\n PropertyKeys.NUMBER_PROPERTIES = [\n 'rowHeight', 'detailRowHeight', 'rowBuffer', 'headerHeight', 'groupHeaderHeight', 'floatingFiltersHeight',\n 'pivotHeaderHeight', 'pivotGroupHeaderHeight', 'groupDefaultExpanded', 'pivotDefaultExpanded', 'viewportRowModelPageSize',\n 'viewportRowModelBufferSize', 'autoSizePadding', 'maxBlocksInCache', 'maxConcurrentDatasourceRequests', 'tooltipShowDelay',\n 'tooltipHideDelay', 'cacheOverflowSize', 'paginationPageSize', 'cacheBlockSize', 'infiniteInitialRowCount', 'serverSideInitialRowCount', 'scrollbarWidth',\n 'asyncTransactionWaitMillis', 'blockLoadDebounceMillis', 'keepDetailRowsCount',\n 'undoRedoCellEditingLimit', 'cellFlashDelay', 'cellFadeDelay', 'tabIndex'\n ];\n PropertyKeys.BOOLEAN_PROPERTIES = [\n 'suppressMakeColumnVisibleAfterUnGroup', 'suppressRowClickSelection', 'suppressCellFocus', 'suppressHorizontalScroll',\n 'alwaysShowHorizontalScroll', 'alwaysShowVerticalScroll', 'debug', 'enableBrowserTooltips', 'enableCellExpressions', 'groupSelectsChildren',\n 'groupIncludeTotalFooter', 'groupSuppressBlankHeader', 'suppressMenuHide', 'suppressRowDeselection', 'unSortIcon',\n 'suppressMultiSort', 'alwaysMultiSort', 'singleClickEdit', 'suppressLoadingOverlay', 'suppressNoRowsOverlay', 'suppressAutoSize',\n 'skipHeaderOnAutoSize', 'suppressParentsInRowNodes', 'suppressColumnMoveAnimation', 'suppressMovableColumns', 'suppressFieldDotNotation',\n 'enableRangeSelection', 'enableRangeHandle', 'enableFillHandle', 'suppressClearOnFillReduction', 'deltaSort', 'suppressTouch', 'suppressAsyncEvents',\n 'allowContextMenuWithControlKey', 'suppressContextMenu', 'rememberGroupStateWhenNewData', 'enableCellChangeFlash', 'suppressDragLeaveHidesColumns',\n 'suppressRowGroupHidesColumns', 'suppressMiddleClickScrolls', 'suppressPreventDefaultOnMouseWheel', 'suppressCopyRowsToClipboard', 'copyHeadersToClipboard',\n 'copyGroupHeadersToClipboard', 'pivotMode', 'suppressAggFuncInHeader', 'suppressColumnVirtualisation', 'alwaysAggregateAtRootLevel', 'suppressAggAtRootLevel',\n 'suppressFocusAfterRefresh', 'functionsPassive', 'functionsReadOnly', 'animateRows', 'groupSelectsFiltered', 'groupRemoveSingleChildren',\n 'groupRemoveLowestSingleChildren', 'enableRtl', 'suppressClickEdit', 'rowDragEntireRow', 'rowDragManaged', 'suppressRowDrag', 'suppressMoveWhenRowDragging',\n 'rowDragMultiRow', 'enableGroupEdit', 'embedFullWidthRows', 'suppressPaginationPanel', 'groupHideOpenParents', 'groupAllowUnbalanced', 'pagination',\n 'paginationAutoPageSize', 'suppressScrollOnNewData', 'suppressScrollWhenPopupsAreOpen', 'purgeClosedRowNodes', 'cacheQuickFilter', 'includeHiddenColumnsInQuickFilter',\n 'excludeHiddenColumnsFromQuickFilter', 'ensureDomOrder', 'accentedSort', 'suppressChangeDetection', 'valueCache', 'valueCacheNeverExpires', 'aggregateOnlyChangedColumns',\n 'suppressAnimationFrame', 'suppressExcelExport', 'suppressCsvExport', 'treeData', 'masterDetail', 'suppressMultiRangeSelection', 'enterMovesDown',\n 'enterMovesDownAfterEdit', 'enterNavigatesVerticallyAfterEdit', 'enterNavigatesVertically', 'suppressPropertyNamesCheck', 'rowMultiSelectWithClick',\n 'suppressRowHoverHighlight', 'suppressRowTransform', 'suppressClipboardPaste', 'suppressLastEmptyLineOnPaste', 'enableCharts', 'enableChartToolPanelsButton',\n 'suppressChartToolPanelsButton', 'suppressMaintainUnsortedOrder', 'enableCellTextSelection', 'suppressBrowserResizeObserver', 'suppressMaxRenderedRowRestriction',\n 'excludeChildrenWhenTreeDataFiltering', 'tooltipMouseTrack', 'tooltipInteraction', 'keepDetailRows', 'paginateChildRows', 'preventDefaultOnContextMenu',\n 'undoRedoCellEditing', 'allowDragFromColumnsToolPanel', 'pivotSuppressAutoColumn', 'suppressExpandablePivotGroups', 'debounceVerticalScrollbar', 'detailRowAutoHeight',\n 'serverSideFilteringAlwaysResets', 'serverSideFilterAllLevels', 'serverSideSortingAlwaysResets', 'serverSideSortAllLevels', 'serverSideOnlyRefreshFilteredGroups',\n 'serverSideSortOnServer', 'serverSideFilterOnServer', 'suppressAggFilteredOnly', 'showOpenedGroup', 'suppressClipboardApi', 'suppressModelUpdateAfterUpdateTransaction',\n 'stopEditingWhenCellsLoseFocus', 'maintainColumnOrder', 'groupMaintainOrder', 'columnHoverHighlight', 'suppressReactUi', 'readOnlyEdit', 'suppressRowVirtualisation',\n 'enableCellEditingOnBackspace', 'resetRowDataOnUpdate', 'removePivotHeaderRowWhenSingleValueColumn', 'suppressCopySingleCellRanges', 'suppressGroupRowsSticky',\n 'suppressServerSideInfiniteScroll', 'rowGroupPanelSuppressSort', 'allowShowChangeAfterFilter', 'suppressCutToClipboard', 'enableAdvancedFilter',\n 'includeHiddenColumnsInAdvancedFilter',\n ];\n /** You do not need to include event callbacks in this list, as they are generated automatically. */\n PropertyKeys.FUNCTIONAL_PROPERTIES = [\n 'doesExternalFilterPass', 'processSecondaryColDef', 'processSecondaryColGroupDef', 'processPivotResultColDef',\n 'processPivotResultColGroupDef', 'getBusinessKeyForNode', 'isRowSelectable', 'rowDragText',\n 'groupRowRenderer', 'fullWidthCellRenderer',\n 'loadingCellRenderer', 'loadingOverlayComponent', 'noRowsOverlayComponent',\n 'detailCellRenderer', 'quickFilterParser', 'quickFilterMatcher'\n ];\n PropertyKeys.CALLBACK_PROPERTIES = [\n 'getLocaleText', 'isExternalFilterPresent', 'getRowHeight', 'getRowClass', 'getRowStyle', 'getContextMenuItems', 'getMainMenuItems',\n 'processRowPostCreate', 'processCellForClipboard', 'getGroupRowAgg', 'isFullWidthRow',\n 'sendToClipboard', 'navigateToNextHeader', 'tabToNextHeader', 'navigateToNextCell',\n 'tabToNextCell', 'processCellFromClipboard', 'getDocument', 'postProcessPopup', 'getChildCount', 'getDataPath', 'isRowMaster', 'postSortRows', 'processHeaderForClipboard',\n 'processGroupHeaderForClipboard', 'paginationNumberFormatter', 'processDataFromClipboard', 'getServerSideGroupKey', 'isServerSideGroup',\n 'createChartContainer', 'getChartToolbarItems', 'fillOperation', 'isApplyServerSideTransaction', 'getServerSideStoreParams', 'getServerSideGroupLevelParams',\n 'isServerSideGroupOpenByDefault', 'isGroupOpenByDefault', 'initialGroupOrderComparator', 'groupIncludeFooter',\n 'loadingCellRendererSelector', 'getRowId', 'groupAggFiltering'\n ];\n PropertyKeys.FUNCTION_PROPERTIES = __spreadArray$o(__spreadArray$o([], __read$v(PropertyKeys.FUNCTIONAL_PROPERTIES)), __read$v(PropertyKeys.CALLBACK_PROPERTIES));\n PropertyKeys.ALL_PROPERTIES = __spreadArray$o(__spreadArray$o(__spreadArray$o(__spreadArray$o(__spreadArray$o(__spreadArray$o([], __read$v(PropertyKeys.ARRAY_PROPERTIES)), __read$v(PropertyKeys.OBJECT_PROPERTIES)), __read$v(PropertyKeys.STRING_PROPERTIES)), __read$v(PropertyKeys.NUMBER_PROPERTIES)), __read$v(PropertyKeys.FUNCTION_PROPERTIES)), __read$v(PropertyKeys.BOOLEAN_PROPERTIES));\n return PropertyKeys;\n}());\n\nvar __assign$n = (undefined && undefined.__assign) || function () {\n __assign$n = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$n.apply(this, arguments);\n};\nvar __read$u = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$n = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar ComponentUtil = /** @class */ (function () {\n function ComponentUtil() {\n }\n ComponentUtil.getCallbackForEvent = function (eventName) {\n if (!eventName || eventName.length < 2) {\n return eventName;\n }\n return 'on' + eventName[0].toUpperCase() + eventName.substr(1);\n };\n ComponentUtil.getCoercionLookup = function () {\n var coercionLookup = {};\n __spreadArray$n(__spreadArray$n(__spreadArray$n(__spreadArray$n(__spreadArray$n([], __read$u(ComponentUtil.ARRAY_PROPERTIES)), __read$u(ComponentUtil.OBJECT_PROPERTIES)), __read$u(ComponentUtil.STRING_PROPERTIES)), __read$u(ComponentUtil.FUNCTION_PROPERTIES)), __read$u(ComponentUtil.EVENT_CALLBACKS)).forEach(function (key) { return coercionLookup[key] = 'none'; });\n ComponentUtil.BOOLEAN_PROPERTIES\n .forEach(function (key) { return coercionLookup[key] = 'boolean'; });\n ComponentUtil.NUMBER_PROPERTIES\n .forEach(function (key) { return coercionLookup[key] = 'number'; });\n return coercionLookup;\n };\n ComponentUtil.getValue = function (key, rawValue) {\n var coercionStep = ComponentUtil.coercionLookup[key];\n if (coercionStep) {\n var newValue = rawValue;\n switch (coercionStep) {\n case 'number': {\n newValue = ComponentUtil.toNumber(rawValue);\n break;\n }\n case 'boolean': {\n newValue = ComponentUtil.toBoolean(rawValue);\n break;\n }\n case 'none': {\n // if groupAggFiltering exists and isn't a function, handle as a boolean.\n if (key === 'groupAggFiltering' && typeof rawValue !== 'function') {\n newValue = ComponentUtil.toBoolean(rawValue);\n }\n break;\n }\n }\n return newValue;\n }\n return undefined;\n };\n ComponentUtil.getGridOptionKeys = function (component, isVue) {\n // Vue does not have keys in prod so instead need to run through all the \n // gridOptions checking for presence of a gridOption key.\n return isVue\n ? Object.keys(ComponentUtil.coercionLookup)\n : Object.keys(component);\n };\n ComponentUtil.copyAttributesToGridOptions = function (gridOptions, component, isVue) {\n if (isVue === void 0) { isVue = false; }\n // create empty grid options if none were passed\n if (typeof gridOptions !== 'object') {\n gridOptions = {};\n }\n // to allow array style lookup in TypeScript, take type away from 'this' and 'gridOptions'\n var pGridOptions = gridOptions;\n var keys = ComponentUtil.getGridOptionKeys(component, isVue);\n // Loop through component props, if they are not undefined and a valid gridOption copy to gridOptions\n keys.forEach(function (key) {\n var value = component[key];\n if (typeof value !== 'undefined') {\n var coercedValue = ComponentUtil.getValue(key, value);\n if (coercedValue !== undefined) {\n pGridOptions[key] = coercedValue;\n }\n }\n });\n return gridOptions;\n };\n ComponentUtil.processOnChange = function (changes, api) {\n var _this = this;\n if (!changes || Object.keys(changes).length === 0) {\n return;\n }\n this.changeSetId++;\n var changesToApply = __assign$n({}, changes);\n // We manually call these updates so that we can provide a different source of gridOptionsChanged\n // We do not call setProperty as this will be called by the grid api methods\n if (changesToApply.columnTypes) {\n api.setColumnTypes(changesToApply.columnTypes.currentValue, \"gridOptionsChanged\");\n delete changesToApply.columnTypes;\n }\n if (changesToApply.autoGroupColumnDef) {\n api.setAutoGroupColumnDef(changesToApply.autoGroupColumnDef.currentValue, \"gridOptionsChanged\");\n delete changesToApply.autoGroupColumnDef;\n }\n if (changesToApply.defaultColDef) {\n api.setDefaultColDef(changesToApply.defaultColDef.currentValue, \"gridOptionsChanged\");\n delete changesToApply.defaultColDef;\n }\n if (changesToApply.columnDefs) {\n api.setColumnDefs(changesToApply.columnDefs.currentValue, \"gridOptionsChanged\");\n delete changesToApply.columnDefs;\n }\n // Update all the properties on GridOptions first so that we can optimise updates\n // and so that any update logic triggered off events is only run after all the\n // props have been updated. This avoids potential sync issues\n var updates = Object.keys(changesToApply).map(function (key) {\n var gridKey = key;\n var coercedValue = ComponentUtil.getValue(gridKey, changesToApply[gridKey].currentValue);\n // Use isChanged to control event via force option as by the time we call __updateProperty the gridOptions[key] will already contain the new value.\n var isChanged = api.__setPropertyOnly(gridKey, coercedValue);\n return { gridKey: gridKey, coercedValue: coercedValue, isChanged: isChanged };\n })\n // Only include properties that have changed\n .filter(function (u) { return u.isChanged; });\n // Then cause any property change event listeners to be fired.\n var updatedKeys = updates.map(function (u) { return u.gridKey; });\n updates.forEach(function (u) { return api.__updateProperty(u.gridKey, u.coercedValue, u.isChanged, { id: _this.changeSetId, properties: updatedKeys }); });\n // copy changes into an event for dispatch\n var event = {\n type: Events.EVENT_COMPONENT_STATE_CHANGED\n };\n iterateObject(changes, function (key, value) {\n event[key] = value;\n });\n api.dispatchEvent(event);\n };\n ComponentUtil.toBoolean = function (value) {\n if (typeof value === 'boolean') {\n return value;\n }\n if (typeof value === 'string') {\n // for boolean, compare to empty String to allow attributes appearing with\n // no value to be treated as 'true'\n return value.toUpperCase() === 'TRUE' || value == '';\n }\n return false;\n };\n ComponentUtil.toNumber = function (value) {\n if (typeof value === 'number') {\n return value;\n }\n if (typeof value === 'string') {\n return Number(value);\n }\n };\n // all events\n ComponentUtil.EVENTS = values(Events);\n // events that are internal to AG Grid and should not be exposed to users via documentation or generated framework components\n /** Exclude the following internal events from code generation to prevent exposing these events via framework components */\n ComponentUtil.EXCLUDED_INTERNAL_EVENTS = [\n Events.EVENT_SCROLLBAR_WIDTH_CHANGED,\n Events.EVENT_CHECKBOX_CHANGED,\n Events.EVENT_HEIGHT_SCALE_CHANGED,\n Events.EVENT_BODY_HEIGHT_CHANGED,\n Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED,\n Events.EVENT_SCROLL_VISIBILITY_CHANGED,\n Events.EVENT_COLUMN_HOVER_CHANGED,\n Events.EVENT_FLASH_CELLS,\n Events.EVENT_PAGINATION_PIXEL_OFFSET_CHANGED,\n Events.EVENT_DISPLAYED_ROWS_CHANGED,\n Events.EVENT_LEFT_PINNED_WIDTH_CHANGED,\n Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED,\n Events.EVENT_ROW_CONTAINER_HEIGHT_CHANGED,\n Events.EVENT_POPUP_TO_FRONT,\n Events.EVENT_KEYBOARD_FOCUS,\n Events.EVENT_MOUSE_FOCUS,\n Events.EVENT_STORE_UPDATED,\n Events.EVENT_COLUMN_PANEL_ITEM_DRAG_START,\n Events.EVENT_COLUMN_PANEL_ITEM_DRAG_END,\n Events.EVENT_FILL_START,\n Events.EVENT_FILL_END,\n Events.EVENT_KEY_SHORTCUT_CHANGED_CELL_START,\n Events.EVENT_KEY_SHORTCUT_CHANGED_CELL_END,\n Events.EVENT_FULL_WIDTH_ROW_FOCUSED,\n Events.EVENT_HEADER_HEIGHT_CHANGED,\n Events.EVENT_COLUMN_HEADER_HEIGHT_CHANGED,\n Events.EVENT_CELL_FOCUS_CLEARED,\n Events.EVENT_GRID_STYLES_CHANGED,\n Events.EVENT_FILTER_DESTROYED,\n Events.EVENT_ROW_DATA_UPDATE_STARTED,\n Events.EVENT_ADVANCED_FILTER_ENABLED_CHANGED,\n Events.EVENT_DATA_TYPES_INFERRED,\n Events.EVENT_FIELD_VALUE_CHANGED,\n Events.EVENT_FIELD_PICKER_VALUE_SELECTED\n ];\n // events that are available for use by users of AG Grid and so should be documented\n /** EVENTS that should be exposed via code generation for the framework components. */\n ComponentUtil.PUBLIC_EVENTS = ComponentUtil.EVENTS.filter(function (e) { return !includes(ComponentUtil.EXCLUDED_INTERNAL_EVENTS, e); });\n // onXXX methods, based on the above events\n ComponentUtil.EVENT_CALLBACKS = ComponentUtil.EVENTS.map(function (event) { return ComponentUtil.getCallbackForEvent(event); });\n ComponentUtil.STRING_PROPERTIES = PropertyKeys.STRING_PROPERTIES;\n ComponentUtil.OBJECT_PROPERTIES = PropertyKeys.OBJECT_PROPERTIES;\n ComponentUtil.ARRAY_PROPERTIES = PropertyKeys.ARRAY_PROPERTIES;\n ComponentUtil.NUMBER_PROPERTIES = PropertyKeys.NUMBER_PROPERTIES;\n ComponentUtil.BOOLEAN_PROPERTIES = PropertyKeys.BOOLEAN_PROPERTIES;\n ComponentUtil.FUNCTION_PROPERTIES = PropertyKeys.FUNCTION_PROPERTIES;\n ComponentUtil.ALL_PROPERTIES = PropertyKeys.ALL_PROPERTIES;\n ComponentUtil.ALL_PROPERTIES_SET = new Set(PropertyKeys.ALL_PROPERTIES);\n ComponentUtil.changeSetId = 0;\n ComponentUtil.coercionLookup = ComponentUtil.getCoercionLookup();\n return ComponentUtil;\n}());\n\nvar __values$7 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nfunction fuzzyCheckStrings(inputValues, validValues, allSuggestions) {\n var fuzzyMatches = {};\n var invalidInputs = inputValues.filter(function (inputValue) {\n return !validValues.some(function (validValue) { return validValue === inputValue; });\n });\n if (invalidInputs.length > 0) {\n invalidInputs.forEach(function (invalidInput) {\n return fuzzyMatches[invalidInput] = fuzzySuggestions(invalidInput, allSuggestions).values;\n });\n }\n return fuzzyMatches;\n}\n/**\n *\n * @param {String} inputValue The value to be compared against a list of strings\n * @param allSuggestions The list of strings to be compared against\n */\nfunction fuzzySuggestions(inputValue, allSuggestions, hideIrrelevant, filterByPercentageOfBestMatch) {\n var e_1, _a;\n var thisSuggestions = allSuggestions.map(function (text, idx) { return ({\n value: text,\n relevance: stringWeightedDistances(inputValue.toLowerCase(), text.toLocaleLowerCase()),\n idx: idx\n }); });\n thisSuggestions.sort(function (a, b) { return b.relevance - a.relevance; });\n if (hideIrrelevant) {\n thisSuggestions = thisSuggestions.filter(function (suggestion) { return suggestion.relevance !== 0; });\n }\n if (thisSuggestions.length > 0 && filterByPercentageOfBestMatch && filterByPercentageOfBestMatch > 0) {\n var bestMatch = thisSuggestions[0].relevance;\n var limit_1 = bestMatch * filterByPercentageOfBestMatch;\n thisSuggestions = thisSuggestions.filter(function (suggestion) { return limit_1 - suggestion.relevance < 0; });\n }\n var values = [];\n var indices = [];\n try {\n for (var thisSuggestions_1 = __values$7(thisSuggestions), thisSuggestions_1_1 = thisSuggestions_1.next(); !thisSuggestions_1_1.done; thisSuggestions_1_1 = thisSuggestions_1.next()) {\n var suggestion = thisSuggestions_1_1.value;\n values.push(suggestion.value);\n indices.push(suggestion.idx);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (thisSuggestions_1_1 && !thisSuggestions_1_1.done && (_a = thisSuggestions_1.return)) _a.call(thisSuggestions_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return { values: values, indices: indices };\n}\nfunction stringWeightedDistances(str1, str2) {\n var a = str1.replace(/\\s/g, '');\n var b = str2.replace(/\\s/g, '');\n var weight = 0;\n var lastIndex = -1;\n for (var i = 0; i < a.length; i++) {\n var idx = b.indexOf(a[i], lastIndex + 1);\n if (idx === -1) {\n continue;\n }\n lastIndex = idx;\n weight += (100 - (lastIndex * 100 / 10000) * 100);\n }\n return weight;\n}\n\nvar FuzzyMatchUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n fuzzyCheckStrings: fuzzyCheckStrings,\n fuzzySuggestions: fuzzySuggestions\n});\n\nvar __decorate$2C = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$t = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$m = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nfunction logDeprecation(version, oldProp, newProp, message) {\n var newPropMsg = newProp ? \"Please use '\" + newProp + \"' instead. \" : '';\n doOnce(function () { return console.warn(\"AG Grid: since v\" + version + \", '\" + oldProp + \"' is deprecated. \" + newPropMsg + (message !== null && message !== void 0 ? message : '')); }, \"Deprecated_\" + oldProp);\n}\n// Vue adds these properties to all objects, so we ignore them when checking for invalid properties\nvar VUE_FRAMEWORK_PROPS = ['__ob__', '__v_skip', '__metadata__'];\nvar GridOptionsValidator = /** @class */ (function () {\n function GridOptionsValidator() {\n this.deprecatedProperties = {\n rememberGroupStateWhenNewData: { version: '24', message: 'Now that transaction updates are possible and they keep group state, this feature is no longer needed.' },\n serverSideFilteringAlwaysResets: { version: '28.0', newProp: 'serverSideOnlyRefreshFilteredGroups', copyToNewProp: true, },\n serverSideSortingAlwaysResets: { version: '28.0', newProp: 'serverSideSortAllLevels', copyToNewProp: true, },\n suppressReactUi: { version: '28', message: 'The legacy React rendering engine is deprecated and will be removed in the next major version of the grid.' },\n processSecondaryColDef: { version: '28', newProp: 'processPivotResultColDef', copyToNewProp: true },\n processSecondaryColGroupDef: { version: '28', newProp: 'processPivotResultColGroupDef', copyToNewProp: true },\n getServerSideStoreParams: { version: '28', newProp: 'getServerSideGroupLevelParams', copyToNewProp: true },\n serverSideInfiniteScroll: { version: '29', message: 'Infinite Scrolling is now the default behaviour. This can be suppressed with `suppressServerSideInfiniteScroll`.' },\n enableChartToolPanelsButton: { version: '29', message: 'The Chart Tool Panels button is now enabled by default. To hide the Chart Tool Panels button and display the hamburger button instead, set suppressChartToolPanelsButton=true.' },\n functionsPassive: { version: '29.2' },\n onColumnRowGroupChangeRequest: { version: '29.2' },\n onColumnPivotChangeRequest: { version: '29.2' },\n onColumnValueChangeRequest: { version: '29.2' },\n onColumnAggFuncChangeRequest: { version: '29.2' },\n serverSideFilterAllLevels: { version: '30', message: 'All server-side group levels are now filtered by default. This can be toggled using `serverSideOnlyRefreshFilteredGroups`.' },\n suppressAggAtRootLevel: { version: '30', message: 'The root level aggregation is now suppressed by default. This can be toggled using `alwaysAggregateAtRootLevel`.' },\n excludeHiddenColumnsFromQuickFilter: { version: '30', message: 'Hidden columns are now excluded from the Quick Filter by default. This can be toggled using `includeHiddenColumnsInQuickFilter`.' },\n enterMovesDown: { version: '30', newProp: 'enterNavigatesVertically', copyToNewProp: true },\n enterMovesDownAfterEdit: { version: '30', newProp: 'enterNavigatesVerticallyAfterEdit', copyToNewProp: true },\n suppressParentsInRowNodes: { version: '30.2', message: 'Using suppressParentsInRowNodes is no longer recommended. To serialize nodes it is now recommended to instead remove the parent node reference before serialization.' },\n };\n }\n GridOptionsValidator.prototype.pickOneWarning = function (prop1, prop2) {\n console.warn(\"AG Grid: \" + prop1 + \" and \" + prop2 + \" do not work with each other, you need to pick one.\");\n };\n GridOptionsValidator.prototype.init = function () {\n var _this = this;\n this.checkForDeprecated();\n this.checkForViolations();\n if (this.gridOptions.suppressPropertyNamesCheck !== true) {\n this.checkGridOptionsProperties();\n this.checkColumnDefProperties();\n }\n this.checkColumnDefViolations();\n if (this.gridOptionsService.is('groupSelectsChildren') && this.gridOptionsService.is('suppressParentsInRowNodes')) {\n console.warn(\"AG Grid: 'groupSelectsChildren' does not work with 'suppressParentsInRowNodes', this selection method needs the part in rowNode to work\");\n }\n if (this.gridOptionsService.is('groupSelectsChildren')) {\n if (this.gridOptionsService.get('rowSelection') !== 'multiple') {\n console.warn(\"AG Grid: rowSelection must be 'multiple' for groupSelectsChildren to make sense\");\n }\n }\n if (this.gridOptionsService.is('groupRemoveSingleChildren') && this.gridOptionsService.is('groupHideOpenParents')) {\n this.pickOneWarning('groupRemoveSingleChildren', 'groupHideOpenParents');\n }\n if (this.gridOptionsService.isRowModelType('serverSide')) {\n var msg = function (prop, alt) { return (\"AG Grid: '\" + prop + \"' is not supported on the Server-Side Row Model.\" + (alt ? \" Please use \" + alt + \" instead.\" : '')); };\n if (this.gridOptionsService.exists('groupDefaultExpanded')) {\n console.warn(msg('groupDefaultExpanded', 'isServerSideGroupOpenByDefault callback'));\n }\n if (this.gridOptionsService.exists('groupIncludeFooter') && this.gridOptionsService.is('suppressServerSideInfiniteScroll')) {\n console.warn(msg('groupIncludeFooter'));\n }\n if (this.gridOptionsService.exists('groupIncludeTotalFooter')) {\n console.warn(msg('groupIncludeTotalFooter'));\n }\n }\n if (this.gridOptionsService.is('enableRangeSelection')) {\n ModuleRegistry.__assertRegistered(ModuleNames.RangeSelectionModule, 'enableRangeSelection', this.gridOptionsService.getGridId());\n }\n else if (this.gridOptionsService.is('enableRangeHandle') || this.gridOptionsService.is('enableFillHandle')) {\n console.warn(\"AG Grid: 'enableRangeHandle' or 'enableFillHandle' will not work unless 'enableRangeSelection' is set to true\");\n }\n var validateRegistered = function (prop, module) { return _this.gridOptionsService.exists(prop) && ModuleRegistry.__assertRegistered(module, prop, _this.gridOptionsService.getGridId()); };\n // Ensure the SideBar is registered which will then lead them to register Column / Filter Tool panels as required by their config.\n // It is possible to use the SideBar only with your own custom tool panels.\n validateRegistered('sideBar', ModuleNames.SideBarModule);\n validateRegistered('statusBar', ModuleNames.StatusBarModule);\n validateRegistered('enableCharts', ModuleNames.GridChartsModule);\n validateRegistered('getMainMenuItems', ModuleNames.MenuModule);\n validateRegistered('getContextMenuItems', ModuleNames.MenuModule);\n validateRegistered('allowContextMenuWithControlKey', ModuleNames.MenuModule);\n validateRegistered('enableAdvancedFilter', ModuleNames.AdvancedFilterModule);\n validateRegistered('treeData', ModuleNames.RowGroupingModule);\n validateRegistered('enableRangeSelection', ModuleNames.RangeSelectionModule);\n validateRegistered('masterDetail', ModuleNames.MasterDetailModule);\n };\n GridOptionsValidator.prototype.checkColumnDefProperties = function () {\n var _this = this;\n if (this.gridOptions.columnDefs == null) {\n return;\n }\n var validProperties = ColDefUtil.ALL_PROPERTIES;\n var validateColDef = function (colDef, propertyName) {\n var userProperties = Object.getOwnPropertyNames(colDef);\n _this.checkProperties(userProperties, __spreadArray$m(__spreadArray$m([], __read$t(validProperties)), __read$t(VUE_FRAMEWORK_PROPS)), validProperties, propertyName, 'https://www.ag-grid.com/javascript-data-grid/column-properties/');\n if (colDef.children) {\n colDef.children.forEach(function (child) { return validateColDef(child, 'columnDefs.children'); });\n }\n };\n this.gridOptions.columnDefs.forEach(function (colDef) { return validateColDef(colDef, 'columnDefs'); });\n if (this.gridOptions.defaultColDef) {\n validateColDef(this.gridOptions.defaultColDef, 'defaultColDef');\n }\n };\n GridOptionsValidator.prototype.checkColumnDefViolations = function () {\n var _a;\n var rowModel = (_a = this.gridOptionsService.get('rowModelType')) !== null && _a !== void 0 ? _a : 'clientSide';\n var unsupportedPropertiesMap = {\n infinite: ['headerCheckboxSelection', 'headerCheckboxSelectionFilteredOnly', 'headerCheckboxSelectionCurrentPageOnly'],\n viewport: ['headerCheckboxSelection', 'headerCheckboxSelectionFilteredOnly', 'headerCheckboxSelectionCurrentPageOnly'],\n serverSide: ['headerCheckboxSelectionFilteredOnly', 'headerCheckboxSelectionCurrentPageOnly'],\n clientSide: [],\n };\n var unsupportedProperties = unsupportedPropertiesMap[rowModel];\n if (!unsupportedProperties) {\n return;\n }\n var isMultiSelect = this.gridOptionsService.get('rowSelection') === 'multiple';\n var multiSelectDependencies = ['headerCheckboxSelection', 'headerCheckboxSelectionFilteredOnly', 'headerCheckboxSelectionCurrentPageOnly'];\n var validateColDef = function (colDef) {\n if (!isMultiSelect) {\n multiSelectDependencies.forEach(function (property) {\n if (property in colDef && !!colDef[property]) {\n console.warn(\"AG Grid: Column property \" + property + \" is not supported unless rowSelection='multiple'.\");\n }\n });\n }\n unsupportedProperties.forEach(function (property) {\n if (property in colDef && !!colDef[property]) {\n console.warn(\"AG Grid: Column property \" + property + \" is not supported with the row model type \" + rowModel + \".\");\n }\n });\n };\n if (this.gridOptions.columnDefs != null) {\n this.gridOptions.columnDefs.forEach(function (colDef) { return validateColDef(colDef); });\n }\n if (this.gridOptions.autoGroupColumnDef != null) {\n validateColDef(this.gridOptions.autoGroupColumnDef);\n }\n if (this.gridOptions.defaultColDef != null) {\n validateColDef(this.gridOptions.defaultColDef);\n }\n };\n GridOptionsValidator.prototype.checkGridOptionsProperties = function () {\n var userProperties = Object.getOwnPropertyNames(this.gridOptions);\n var validProperties = __spreadArray$m(__spreadArray$m([], __read$t(PropertyKeys.ALL_PROPERTIES)), __read$t(ComponentUtil.EVENT_CALLBACKS));\n var validPropertiesAndExceptions = __spreadArray$m(__spreadArray$m(__spreadArray$m(__spreadArray$m([], __read$t(validProperties)), ['api', 'columnApi']), __read$t(VUE_FRAMEWORK_PROPS)), __read$t(Object.keys(this.deprecatedProperties)));\n this.checkProperties(userProperties, validPropertiesAndExceptions, validProperties, 'gridOptions', 'https://www.ag-grid.com/javascript-data-grid/grid-options/');\n };\n GridOptionsValidator.prototype.checkProperties = function (userProperties, validPropertiesAndExceptions, validProperties, containerName, docsUrl) {\n var invalidProperties = fuzzyCheckStrings(userProperties, validPropertiesAndExceptions, validProperties);\n iterateObject(invalidProperties, function (key, value) {\n doOnce(function () { return console.warn(\"AG Grid: invalid \" + containerName + \" property '\" + key + \"' did you mean any of these: \" + value.slice(0, 8).join(\", \")); }, 'invalidProperty' + containerName + key);\n });\n if (Object.keys(invalidProperties).length > 0) {\n doOnce(function () { return console.warn(\"AG Grid: to see all the valid \" + containerName + \" properties please check: \" + docsUrl); }, 'invalidProperties' + containerName + docsUrl);\n }\n };\n GridOptionsValidator.prototype.checkForDeprecated = function () {\n // casting to generic object, so typescript compiles even though\n // we are looking for attributes that don't exist\n var options = this.gridOptions;\n Object.entries(this.deprecatedProperties).forEach(function (_a) {\n var _b;\n var _c = __read$t(_a, 2), oldProp = _c[0], details = _c[1];\n var oldPropValue = options[oldProp];\n if (oldPropValue) {\n logDeprecation(details.version, oldProp, details.newProp, details.message);\n if (details.copyToNewProp && details.newProp && options[details.newProp] == null) {\n options[details.newProp] = (_b = details.newPropValue) !== null && _b !== void 0 ? _b : oldPropValue;\n }\n }\n });\n // Manual messages and deprecation behaviour that don't fit our standard approach above.\n if (options.serverSideStoreType) {\n console.warn('AG Grid: since v29.0, `serverSideStoreType` has been replaced by `suppressServerSideInfiniteScroll`. Set to false to use Partial Store, and true to use Full Store.');\n options.suppressServerSideInfiniteScroll = options.serverSideStoreType !== 'partial';\n }\n };\n GridOptionsValidator.prototype.checkForViolations = function () {\n if (this.gridOptionsService.is('treeData')) {\n this.treeDataViolations();\n }\n };\n GridOptionsValidator.prototype.treeDataViolations = function () {\n if (this.gridOptionsService.isRowModelType('clientSide')) {\n if (!this.gridOptionsService.exists('getDataPath')) {\n console.warn('AG Grid: property usingTreeData=true with rowModel=clientSide, but you did not ' +\n 'provide getDataPath function, please provide getDataPath function if using tree data.');\n }\n }\n if (this.gridOptionsService.isRowModelType('serverSide')) {\n if (!this.gridOptionsService.exists('isServerSideGroup')) {\n console.warn('AG Grid: property usingTreeData=true with rowModel=serverSide, but you did not ' +\n 'provide isServerSideGroup function, please provide isServerSideGroup function if using tree data.');\n }\n if (!this.gridOptionsService.exists('getServerSideGroupKey')) {\n console.warn('AG Grid: property usingTreeData=true with rowModel=serverSide, but you did not ' +\n 'provide getServerSideGroupKey function, please provide getServerSideGroupKey function if using tree data.');\n }\n }\n };\n __decorate$2C([\n Autowired('gridOptions')\n ], GridOptionsValidator.prototype, \"gridOptions\", void 0);\n __decorate$2C([\n Autowired('gridOptionsService')\n ], GridOptionsValidator.prototype, \"gridOptionsService\", void 0);\n __decorate$2C([\n PostConstruct\n ], GridOptionsValidator.prototype, \"init\", null);\n GridOptionsValidator = __decorate$2C([\n Bean('gridOptionsValidator')\n ], GridOptionsValidator);\n return GridOptionsValidator;\n}());\nfunction matchesGroupDisplayType(toMatch, supplied) {\n var groupDisplayTypeValues = ['groupRows', 'multipleColumns', 'custom', 'singleColumn'];\n if (groupDisplayTypeValues.indexOf(supplied) < 0) {\n console.warn(\"AG Grid: '\" + supplied + \"' is not a valid groupDisplayType value - possible values are: '\" + groupDisplayTypeValues.join(\"', '\") + \"'\");\n return false;\n }\n return supplied === toMatch;\n}\nfunction matchesTreeDataDisplayType(toMatch, supplied) {\n var treeDataDisplayTypeValues = ['auto', 'custom'];\n if (treeDataDisplayTypeValues.indexOf(supplied) < 0) {\n console.warn(\"AG Grid: '\" + supplied + \"' is not a valid treeDataDisplayType value - possible values are: '\" + treeDataDisplayTypeValues.join(\"', '\") + \"'\");\n return false;\n }\n return supplied === toMatch;\n}\n\nvar __extends$34 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2B = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$8 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __read$s = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$l = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar __values$6 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar ColumnModel = /** @class */ (function (_super) {\n __extends$34(ColumnModel, _super);\n function ColumnModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // header row count, based on user provided columns\n _this.primaryHeaderRowCount = 0;\n _this.secondaryHeaderRowCount = 0;\n // header row count, either above, or based on pivoting if we are pivoting\n _this.gridHeaderRowCount = 0;\n // leave level columns of the displayed trees\n _this.displayedColumnsLeft = [];\n _this.displayedColumnsRight = [];\n _this.displayedColumnsCenter = [];\n // all three lists above combined\n _this.displayedColumns = [];\n // for fast lookup, to see if a column or group is still displayed\n _this.displayedColumnsAndGroupsMap = {};\n // all columns to be rendered\n _this.viewportColumns = [];\n // A hash key to keep track of changes in viewport columns\n _this.viewportColumnsHash = '';\n // same as viewportColumns, except we always include columns with headerAutoHeight\n _this.headerViewportColumns = [];\n // all columns to be rendered in the centre\n _this.viewportColumnsCenter = [];\n // same as viewportColumnsCenter, except we always include columns with headerAutoHeight\n _this.headerViewportColumnsCenter = [];\n _this.autoHeightActiveAtLeastOnce = false;\n _this.rowGroupColumns = [];\n _this.valueColumns = [];\n _this.pivotColumns = [];\n _this.ready = false;\n _this.autoGroupsNeedBuilding = false;\n _this.forceRecreateAutoGroups = false;\n _this.pivotMode = false;\n _this.bodyWidth = 0;\n _this.leftWidth = 0;\n _this.rightWidth = 0;\n _this.bodyWidthDirty = true;\n // when we're waiting for cell data types to be inferred, we need to defer column resizing\n _this.shouldQueueResizeOperations = false;\n _this.resizeOperationQueue = [];\n return _this;\n }\n ColumnModel.prototype.init = function () {\n var _this = this;\n this.suppressColumnVirtualisation = this.gridOptionsService.is('suppressColumnVirtualisation');\n var pivotMode = this.gridOptionsService.is('pivotMode');\n if (this.isPivotSettingAllowed(pivotMode)) {\n this.pivotMode = pivotMode;\n }\n this.addManagedPropertyListeners(['groupDisplayType', 'treeData'], function () { return _this.buildAutoGroupColumns(); });\n this.addManagedPropertyListener('autoGroupColumnDef', function () { return _this.onAutoGroupColumnDefChanged(); });\n this.addManagedPropertyListener('defaultColDef', function (params) { return _this.onSharedColDefChanged(params.source); });\n this.addManagedPropertyListener('columnTypes', function (params) { return _this.onSharedColDefChanged(params.source); });\n };\n ColumnModel.prototype.buildAutoGroupColumns = function () {\n // Possible for update to be called before columns are present in which case there is nothing to do here.\n if (!this.columnDefs) {\n return;\n }\n this.autoGroupsNeedBuilding = true;\n this.forceRecreateAutoGroups = true;\n this.updateGridColumns();\n this.updateDisplayedColumns('gridOptionsChanged');\n };\n ColumnModel.prototype.onAutoGroupColumnDefChanged = function () {\n if (this.groupAutoColumns) {\n this.autoGroupColService.updateAutoGroupColumns(this.groupAutoColumns);\n }\n };\n ColumnModel.prototype.onSharedColDefChanged = function (source) {\n if (source === void 0) { source = 'api'; }\n // if we aren't going to force, update the auto cols in place\n if (this.groupAutoColumns) {\n this.autoGroupColService.updateAutoGroupColumns(this.groupAutoColumns);\n }\n this.createColumnsFromColumnDefs(true, source);\n };\n ColumnModel.prototype.setColumnDefs = function (columnDefs, source) {\n if (source === void 0) { source = 'api'; }\n var colsPreviouslyExisted = !!this.columnDefs;\n this.columnDefs = columnDefs;\n this.createColumnsFromColumnDefs(colsPreviouslyExisted, source);\n };\n ColumnModel.prototype.recreateColumnDefs = function (source) {\n if (source === void 0) { source = 'api'; }\n this.onSharedColDefChanged(source);\n };\n ColumnModel.prototype.destroyOldColumns = function (oldTree, newTree) {\n var oldObjectsById = {};\n if (!oldTree) {\n return;\n }\n // add in all old columns to be destroyed\n this.columnUtils.depthFirstOriginalTreeSearch(null, oldTree, function (child) {\n oldObjectsById[child.getInstanceId()] = child;\n });\n // however we don't destroy anything in the new tree. if destroying the grid, there is no new tree\n if (newTree) {\n this.columnUtils.depthFirstOriginalTreeSearch(null, newTree, function (child) {\n oldObjectsById[child.getInstanceId()] = null;\n });\n }\n // what's left can be destroyed\n var colsToDestroy = Object.values(oldObjectsById).filter(function (item) { return item != null; });\n this.destroyBeans(colsToDestroy);\n };\n ColumnModel.prototype.destroyColumns = function () {\n this.destroyOldColumns(this.primaryColumnTree);\n this.destroyOldColumns(this.secondaryBalancedTree);\n this.destroyOldColumns(this.groupAutoColsBalancedTree);\n };\n ColumnModel.prototype.createColumnsFromColumnDefs = function (colsPreviouslyExisted, source) {\n var _this = this;\n if (source === void 0) { source = 'api'; }\n // only need to dispatch before/after events if updating columns, never if setting columns for first time\n var dispatchEventsFunc = colsPreviouslyExisted ? this.compareColumnStatesAndDispatchEvents(source) : undefined;\n // always invalidate cache on changing columns, as the column id's for the new columns\n // could overlap with the old id's, so the cache would return old values for new columns.\n this.valueCache.expire();\n // NOTE ==================\n // we should be destroying the existing columns and groups if they exist, for example, the original column\n // group adds a listener to the columns, it should be also removing the listeners\n this.autoGroupsNeedBuilding = true;\n var oldPrimaryColumns = this.primaryColumns;\n var oldPrimaryTree = this.primaryColumnTree;\n var balancedTreeResult = this.columnFactory.createColumnTree(this.columnDefs, true, oldPrimaryTree);\n this.destroyOldColumns(this.primaryColumnTree, balancedTreeResult.columnTree);\n this.primaryColumnTree = balancedTreeResult.columnTree;\n this.primaryHeaderRowCount = balancedTreeResult.treeDept + 1;\n this.primaryColumns = this.getColumnsFromTree(this.primaryColumnTree);\n this.primaryColumnsMap = {};\n this.primaryColumns.forEach(function (col) { return _this.primaryColumnsMap[col.getId()] = col; });\n this.extractRowGroupColumns(source, oldPrimaryColumns);\n this.extractPivotColumns(source, oldPrimaryColumns);\n this.extractValueColumns(source, oldPrimaryColumns);\n this.ready = true;\n // if we are showing secondary columns, then no need to update grid columns\n // unless the auto column needs rebuilt, as it's the pivot service responsibility to change these\n // if we are no longer pivoting (ie and need to revert back to primary, otherwise\n // we shouldn't be touching the primary).\n var gridColsNotProcessed = this.gridColsArePrimary === undefined;\n var processGridCols = this.gridColsArePrimary || gridColsNotProcessed || this.autoGroupsNeedBuilding;\n if (processGridCols) {\n this.updateGridColumns();\n if (colsPreviouslyExisted && this.gridColsArePrimary && !this.gridOptionsService.is('maintainColumnOrder')) {\n this.orderGridColumnsLikePrimary();\n }\n this.updateDisplayedColumns(source);\n this.checkViewportColumns();\n }\n // this event is not used by AG Grid, but left here for backwards compatibility,\n // in case applications use it\n this.dispatchEverythingChanged(source);\n if (dispatchEventsFunc) {\n dispatchEventsFunc();\n }\n this.dispatchNewColumnsLoaded(source);\n };\n ColumnModel.prototype.dispatchNewColumnsLoaded = function (source) {\n var newColumnsLoadedEvent = {\n type: Events.EVENT_NEW_COLUMNS_LOADED,\n source: source\n };\n this.eventService.dispatchEvent(newColumnsLoadedEvent);\n };\n // this event is legacy, no grid code listens to it. instead the grid listens to New Columns Loaded\n ColumnModel.prototype.dispatchEverythingChanged = function (source) {\n if (source === void 0) { source = 'api'; }\n var eventEverythingChanged = {\n type: Events.EVENT_COLUMN_EVERYTHING_CHANGED,\n source: source\n };\n this.eventService.dispatchEvent(eventEverythingChanged);\n };\n ColumnModel.prototype.orderGridColumnsLikePrimary = function () {\n var _this = this;\n var primaryColumns = this.primaryColumns;\n if (!primaryColumns) {\n return;\n }\n var primaryColsOrdered = primaryColumns.filter(function (col) { return _this.gridColumns.indexOf(col) >= 0; });\n var otherCols = this.gridColumns.filter(function (col) { return primaryColsOrdered.indexOf(col) < 0; });\n this.gridColumns = __spreadArray$l(__spreadArray$l([], __read$s(otherCols)), __read$s(primaryColsOrdered));\n this.gridColumns = this.placeLockedColumns(this.gridColumns);\n };\n ColumnModel.prototype.getAllDisplayedAutoHeightCols = function () {\n return this.displayedAutoHeightCols;\n };\n ColumnModel.prototype.setViewport = function () {\n if (this.gridOptionsService.is('enableRtl')) {\n this.viewportLeft = this.bodyWidth - this.scrollPosition - this.scrollWidth;\n this.viewportRight = this.bodyWidth - this.scrollPosition;\n }\n else {\n this.viewportLeft = this.scrollPosition;\n this.viewportRight = this.scrollWidth + this.scrollPosition;\n }\n };\n // used by clipboard service, to know what columns to paste into\n ColumnModel.prototype.getDisplayedColumnsStartingAt = function (column) {\n var currentColumn = column;\n var columns = [];\n while (currentColumn != null) {\n columns.push(currentColumn);\n currentColumn = this.getDisplayedColAfter(currentColumn);\n }\n return columns;\n };\n // checks what columns are currently displayed due to column virtualisation. dispatches an event\n // if the list of columns has changed.\n // + setColumnWidth(), setViewportPosition(), setColumnDefs(), sizeColumnsToFit()\n ColumnModel.prototype.checkViewportColumns = function (afterScroll) {\n if (afterScroll === void 0) { afterScroll = false; }\n // check displayCenterColumnTree exists first, as it won't exist when grid is initialising\n if (this.displayedColumnsCenter == null) {\n return;\n }\n var viewportColumnsChanged = this.extractViewport();\n if (!viewportColumnsChanged) {\n return;\n }\n var event = {\n type: Events.EVENT_VIRTUAL_COLUMNS_CHANGED,\n afterScroll: afterScroll,\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.setViewportPosition = function (scrollWidth, scrollPosition, afterScroll) {\n if (afterScroll === void 0) { afterScroll = false; }\n if (scrollWidth !== this.scrollWidth || scrollPosition !== this.scrollPosition || this.bodyWidthDirty) {\n this.scrollWidth = scrollWidth;\n this.scrollPosition = scrollPosition;\n // we need to call setVirtualViewportLeftAndRight() at least once after the body width changes,\n // as the viewport can stay the same, but in RTL, if body width changes, we need to work out the\n // virtual columns again\n this.bodyWidthDirty = true;\n this.setViewport();\n if (this.ready) {\n this.checkViewportColumns(afterScroll);\n }\n }\n };\n ColumnModel.prototype.isPivotMode = function () {\n return this.pivotMode;\n };\n ColumnModel.prototype.isPivotSettingAllowed = function (pivot) {\n if (pivot && this.gridOptionsService.is('treeData')) {\n console.warn(\"AG Grid: Pivot mode not available in conjunction Tree Data i.e. 'gridOptions.treeData: true'\");\n return false;\n }\n return true;\n };\n ColumnModel.prototype.setPivotMode = function (pivotMode, source) {\n if (source === void 0) { source = 'api'; }\n if (pivotMode === this.pivotMode || !this.isPivotSettingAllowed(this.pivotMode)) {\n return;\n }\n this.pivotMode = pivotMode;\n // we need to update grid columns to cover the scenario where user has groupDisplayType = 'custom', as\n // this means we don't use auto group column UNLESS we are in pivot mode (it's mandatory in pivot mode),\n // so need to updateGridColumn() to check it autoGroupCol needs to be added / removed\n this.autoGroupsNeedBuilding = true;\n this.updateGridColumns();\n this.updateDisplayedColumns(source);\n var event = {\n type: Events.EVENT_COLUMN_PIVOT_MODE_CHANGED\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.getSecondaryPivotColumn = function (pivotKeys, valueColKey) {\n if (missing(this.secondaryColumns)) {\n return null;\n }\n var valueColumnToFind = this.getPrimaryColumn(valueColKey);\n var foundColumn = null;\n this.secondaryColumns.forEach(function (column) {\n var thisPivotKeys = column.getColDef().pivotKeys;\n var pivotValueColumn = column.getColDef().pivotValueColumn;\n var pivotKeyMatches = areEqual(thisPivotKeys, pivotKeys);\n var pivotValueMatches = pivotValueColumn === valueColumnToFind;\n if (pivotKeyMatches && pivotValueMatches) {\n foundColumn = column;\n }\n });\n return foundColumn;\n };\n ColumnModel.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('columnModel');\n };\n ColumnModel.prototype.setFirstRightAndLastLeftPinned = function (source) {\n var lastLeft;\n var firstRight;\n if (this.gridOptionsService.is('enableRtl')) {\n lastLeft = this.displayedColumnsLeft ? this.displayedColumnsLeft[0] : null;\n firstRight = this.displayedColumnsRight ? last(this.displayedColumnsRight) : null;\n }\n else {\n lastLeft = this.displayedColumnsLeft ? last(this.displayedColumnsLeft) : null;\n firstRight = this.displayedColumnsRight ? this.displayedColumnsRight[0] : null;\n }\n this.gridColumns.forEach(function (column) {\n column.setLastLeftPinned(column === lastLeft, source);\n column.setFirstRightPinned(column === firstRight, source);\n });\n };\n ColumnModel.prototype.autoSizeColumns = function (params) {\n var _this = this;\n if (this.shouldQueueResizeOperations) {\n this.resizeOperationQueue.push(function () { return _this.autoSizeColumns(params); });\n return;\n }\n var columns = params.columns, skipHeader = params.skipHeader, skipHeaderGroups = params.skipHeaderGroups, stopAtGroup = params.stopAtGroup, _a = params.source, source = _a === void 0 ? 'api' : _a;\n // because of column virtualisation, we can only do this function on columns that are\n // actually rendered, as non-rendered columns (outside the viewport and not rendered\n // due to column virtualisation) are not present. this can result in all rendered columns\n // getting narrowed, which in turn introduces more rendered columns on the RHS which\n // did not get autosized in the original run, leaving the visible grid with columns on\n // the LHS sized, but RHS no. so we keep looping through the visible columns until\n // no more cols are available (rendered) to be resized\n // we autosize after animation frames finish in case any cell renderers need to complete first. this can\n // happen eg if client code is calling api.autoSizeAllColumns() straight after grid is initialised, but grid\n // hasn't fully drawn out all the cells yet (due to cell renderers in animation frames).\n this.animationFrameService.flushAllFrames();\n // keep track of which cols we have resized in here\n var columnsAutosized = [];\n // initialise with anything except 0 so that while loop executes at least once\n var changesThisTimeAround = -1;\n var shouldSkipHeader = skipHeader != null ? skipHeader : this.gridOptionsService.is('skipHeaderOnAutoSize');\n var shouldSkipHeaderGroups = skipHeaderGroups != null ? skipHeaderGroups : shouldSkipHeader;\n while (changesThisTimeAround !== 0) {\n changesThisTimeAround = 0;\n this.actionOnGridColumns(columns, function (column) {\n // if already autosized, skip it\n if (columnsAutosized.indexOf(column) >= 0) {\n return false;\n }\n // get how wide this col should be\n var preferredWidth = _this.autoWidthCalculator.getPreferredWidthForColumn(column, shouldSkipHeader);\n // preferredWidth = -1 if this col is not on the screen\n if (preferredWidth > 0) {\n var newWidth = _this.normaliseColumnWidth(column, preferredWidth);\n column.setActualWidth(newWidth, source);\n columnsAutosized.push(column);\n changesThisTimeAround++;\n }\n return true;\n }, source);\n }\n if (!shouldSkipHeaderGroups) {\n this.autoSizeColumnGroupsByColumns(columns, source, stopAtGroup);\n }\n this.dispatchColumnResizedEvent(columnsAutosized, true, 'autosizeColumns');\n };\n ColumnModel.prototype.dispatchColumnResizedEvent = function (columns, finished, source, flexColumns) {\n if (flexColumns === void 0) { flexColumns = null; }\n if (columns && columns.length) {\n var event_1 = {\n type: Events.EVENT_COLUMN_RESIZED,\n columns: columns,\n column: columns.length === 1 ? columns[0] : null,\n flexColumns: flexColumns,\n finished: finished,\n source: source\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n ColumnModel.prototype.dispatchColumnChangedEvent = function (type, columns, source) {\n var event = {\n type: type,\n columns: columns,\n column: (columns && columns.length == 1) ? columns[0] : null,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.dispatchColumnMovedEvent = function (params) {\n var movedColumns = params.movedColumns, source = params.source, toIndex = params.toIndex, finished = params.finished;\n var event = {\n type: Events.EVENT_COLUMN_MOVED,\n columns: movedColumns,\n column: movedColumns && movedColumns.length === 1 ? movedColumns[0] : null,\n toIndex: toIndex,\n finished: finished,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.dispatchColumnPinnedEvent = function (changedColumns, source) {\n if (!changedColumns.length) {\n return;\n }\n // if just one column, we use this, otherwise we don't include the col\n var column = changedColumns.length === 1 ? changedColumns[0] : null;\n // only include visible if it's common in all columns\n var pinned = this.getCommonValue(changedColumns, function (col) { return col.getPinned(); });\n var event = {\n type: Events.EVENT_COLUMN_PINNED,\n // mistake in typing, 'undefined' should be allowed, as 'null' means 'not pinned'\n pinned: pinned != null ? pinned : null,\n columns: changedColumns,\n column: column,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.dispatchColumnVisibleEvent = function (changedColumns, source) {\n if (!changedColumns.length) {\n return;\n }\n // if just one column, we use this, otherwise we don't include the col\n var column = changedColumns.length === 1 ? changedColumns[0] : null;\n // only include visible if it's common in all columns\n var visible = this.getCommonValue(changedColumns, function (col) { return col.isVisible(); });\n var event = {\n type: Events.EVENT_COLUMN_VISIBLE,\n visible: visible,\n columns: changedColumns,\n column: column,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.autoSizeColumn = function (key, skipHeader, source) {\n if (source === void 0) { source = \"api\"; }\n if (key) {\n this.autoSizeColumns({ columns: [key], skipHeader: skipHeader, skipHeaderGroups: true, source: source });\n }\n };\n ColumnModel.prototype.autoSizeColumnGroupsByColumns = function (keys, source, stopAtGroup) {\n var e_1, _a, e_2, _b;\n var columnGroups = new Set();\n var columns = this.getGridColumns(keys);\n columns.forEach(function (col) {\n var parent = col.getParent();\n while (parent && parent != stopAtGroup) {\n if (!parent.isPadding()) {\n columnGroups.add(parent);\n }\n parent = parent.getParent();\n }\n });\n var headerGroupCtrl;\n var resizedColumns = [];\n try {\n for (var columnGroups_1 = __values$6(columnGroups), columnGroups_1_1 = columnGroups_1.next(); !columnGroups_1_1.done; columnGroups_1_1 = columnGroups_1.next()) {\n var columnGroup = columnGroups_1_1.value;\n try {\n for (var _c = (e_2 = void 0, __values$6(this.ctrlsService.getHeaderRowContainerCtrls())), _d = _c.next(); !_d.done; _d = _c.next()) {\n var headerContainerCtrl = _d.value;\n headerGroupCtrl = headerContainerCtrl.getHeaderCtrlForColumn(columnGroup);\n if (headerGroupCtrl) {\n break;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (headerGroupCtrl) {\n headerGroupCtrl.resizeLeafColumnsToFit(source);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (columnGroups_1_1 && !columnGroups_1_1.done && (_a = columnGroups_1.return)) _a.call(columnGroups_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return resizedColumns;\n };\n ColumnModel.prototype.autoSizeAllColumns = function (skipHeader, source) {\n var _this = this;\n if (source === void 0) { source = \"api\"; }\n if (this.shouldQueueResizeOperations) {\n this.resizeOperationQueue.push(function () { return _this.autoSizeAllColumns(skipHeader, source); });\n return;\n }\n var allDisplayedColumns = this.getAllDisplayedColumns();\n this.autoSizeColumns({ columns: allDisplayedColumns, skipHeader: skipHeader, source: source });\n };\n // Possible candidate for reuse (alot of recursive traversal duplication)\n ColumnModel.prototype.getColumnsFromTree = function (rootColumns) {\n var result = [];\n var recursiveFindColumns = function (childColumns) {\n for (var i = 0; i < childColumns.length; i++) {\n var child = childColumns[i];\n if (child instanceof Column) {\n result.push(child);\n }\n else if (child instanceof ProvidedColumnGroup) {\n recursiveFindColumns(child.getChildren());\n }\n }\n };\n recursiveFindColumns(rootColumns);\n return result;\n };\n ColumnModel.prototype.getAllDisplayedTrees = function () {\n if (this.displayedTreeLeft && this.displayedTreeRight && this.displayedTreeCentre) {\n return this.displayedTreeLeft\n .concat(this.displayedTreeCentre)\n .concat(this.displayedTreeRight);\n }\n return null;\n };\n // + columnSelectPanel\n ColumnModel.prototype.getPrimaryColumnTree = function () {\n return this.primaryColumnTree;\n };\n // + gridPanel -> for resizing the body and setting top margin\n ColumnModel.prototype.getHeaderRowCount = function () {\n return this.gridHeaderRowCount;\n };\n // + headerRenderer -> setting pinned body width\n ColumnModel.prototype.getDisplayedTreeLeft = function () {\n return this.displayedTreeLeft;\n };\n // + headerRenderer -> setting pinned body width\n ColumnModel.prototype.getDisplayedTreeRight = function () {\n return this.displayedTreeRight;\n };\n // + headerRenderer -> setting pinned body width\n ColumnModel.prototype.getDisplayedTreeCentre = function () {\n return this.displayedTreeCentre;\n };\n // gridPanel -> ensureColumnVisible\n ColumnModel.prototype.isColumnDisplayed = function (column) {\n return this.getAllDisplayedColumns().indexOf(column) >= 0;\n };\n // + csvCreator\n ColumnModel.prototype.getAllDisplayedColumns = function () {\n return this.displayedColumns;\n };\n ColumnModel.prototype.getViewportColumns = function () {\n return this.viewportColumns;\n };\n ColumnModel.prototype.getDisplayedLeftColumnsForRow = function (rowNode) {\n if (!this.colSpanActive) {\n return this.displayedColumnsLeft;\n }\n return this.getDisplayedColumnsForRow(rowNode, this.displayedColumnsLeft);\n };\n ColumnModel.prototype.getDisplayedRightColumnsForRow = function (rowNode) {\n if (!this.colSpanActive) {\n return this.displayedColumnsRight;\n }\n return this.getDisplayedColumnsForRow(rowNode, this.displayedColumnsRight);\n };\n ColumnModel.prototype.isColSpanActive = function () {\n return this.colSpanActive;\n };\n ColumnModel.prototype.getDisplayedColumnsForRow = function (rowNode, displayedColumns, filterCallback, emptySpaceBeforeColumn) {\n var result = [];\n var lastConsideredCol = null;\n var _loop_1 = function (i) {\n var col = displayedColumns[i];\n var maxAllowedColSpan = displayedColumns.length - i;\n var colSpan = Math.min(col.getColSpan(rowNode), maxAllowedColSpan);\n var columnsToCheckFilter = [col];\n if (colSpan > 1) {\n var colsToRemove = colSpan - 1;\n for (var j = 1; j <= colsToRemove; j++) {\n columnsToCheckFilter.push(displayedColumns[i + j]);\n }\n i += colsToRemove;\n }\n // see which cols we should take out for column virtualisation\n var filterPasses;\n if (filterCallback) {\n // if user provided a callback, means some columns may not be in the viewport.\n // the user will NOT provide a callback if we are talking about pinned areas,\n // as pinned areas have no horizontal scroll and do not virtualise the columns.\n // if lots of columns, that means column spanning, and we set filterPasses = true\n // if one or more of the columns spanned pass the filter.\n filterPasses = false;\n columnsToCheckFilter.forEach(function (colForFilter) {\n if (filterCallback(colForFilter)) {\n filterPasses = true;\n }\n });\n }\n else {\n filterPasses = true;\n }\n if (filterPasses) {\n if (result.length === 0 && lastConsideredCol) {\n var gapBeforeColumn = emptySpaceBeforeColumn ? emptySpaceBeforeColumn(col) : false;\n if (gapBeforeColumn) {\n result.push(lastConsideredCol);\n }\n }\n result.push(col);\n }\n lastConsideredCol = col;\n out_i_1 = i;\n };\n var out_i_1;\n for (var i = 0; i < displayedColumns.length; i++) {\n _loop_1(i);\n i = out_i_1;\n }\n return result;\n };\n // + rowRenderer\n // if we are not column spanning, this just returns back the virtual centre columns,\n // however if we are column spanning, then different rows can have different virtual\n // columns, so we have to work out the list for each individual row.\n ColumnModel.prototype.getViewportCenterColumnsForRow = function (rowNode) {\n var _this = this;\n if (!this.colSpanActive) {\n return this.viewportColumnsCenter;\n }\n var emptySpaceBeforeColumn = function (col) {\n var left = col.getLeft();\n return exists(left) && left > _this.viewportLeft;\n };\n // if doing column virtualisation, then we filter based on the viewport.\n var filterCallback = this.suppressColumnVirtualisation ? null : this.isColumnInRowViewport.bind(this);\n return this.getDisplayedColumnsForRow(rowNode, this.displayedColumnsCenter, filterCallback, emptySpaceBeforeColumn);\n };\n ColumnModel.prototype.getAriaColumnIndex = function (col) {\n return this.getAllGridColumns().indexOf(col) + 1;\n };\n ColumnModel.prototype.isColumnInHeaderViewport = function (col) {\n // for headers, we never filter out autoHeaderHeight columns, if calculating\n if (col.isAutoHeaderHeight()) {\n return true;\n }\n return this.isColumnInRowViewport(col);\n };\n ColumnModel.prototype.isColumnInRowViewport = function (col) {\n // we never filter out autoHeight columns, as we need them in the DOM for calculating Auto Height\n if (col.isAutoHeight()) {\n return true;\n }\n var columnLeft = col.getLeft() || 0;\n var columnRight = columnLeft + col.getActualWidth();\n // adding 200 for buffer size, so some cols off viewport are rendered.\n // this helps horizontal scrolling so user rarely sees white space (unless\n // they scroll horizontally fast). however we are conservative, as the more\n // buffer the slower the vertical redraw speed\n var leftBounds = this.viewportLeft - 200;\n var rightBounds = this.viewportRight + 200;\n var columnToMuchLeft = columnLeft < leftBounds && columnRight < leftBounds;\n var columnToMuchRight = columnLeft > rightBounds && columnRight > rightBounds;\n return !columnToMuchLeft && !columnToMuchRight;\n };\n // used by:\n // + angularGrid -> setting pinned body width\n // note: this should be cached\n ColumnModel.prototype.getDisplayedColumnsLeftWidth = function () {\n return this.getWidthOfColsInList(this.displayedColumnsLeft);\n };\n // note: this should be cached\n ColumnModel.prototype.getDisplayedColumnsRightWidth = function () {\n return this.getWidthOfColsInList(this.displayedColumnsRight);\n };\n ColumnModel.prototype.updatePrimaryColumnList = function (keys, masterList, actionIsAdd, columnCallback, eventType, source) {\n var _this = this;\n if (source === void 0) { source = \"api\"; }\n if (!keys || missingOrEmpty(keys)) {\n return;\n }\n var atLeastOne = false;\n keys.forEach(function (key) {\n var columnToAdd = _this.getPrimaryColumn(key);\n if (!columnToAdd) {\n return;\n }\n if (actionIsAdd) {\n if (masterList.indexOf(columnToAdd) >= 0) {\n return;\n }\n masterList.push(columnToAdd);\n }\n else {\n if (masterList.indexOf(columnToAdd) < 0) {\n return;\n }\n removeFromArray(masterList, columnToAdd);\n }\n columnCallback(columnToAdd);\n atLeastOne = true;\n });\n if (!atLeastOne) {\n return;\n }\n if (this.autoGroupsNeedBuilding) {\n this.updateGridColumns();\n }\n this.updateDisplayedColumns(source);\n var event = {\n type: eventType,\n columns: masterList,\n column: masterList.length === 1 ? masterList[0] : null,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.setRowGroupColumns = function (colKeys, source) {\n if (source === void 0) { source = \"api\"; }\n this.autoGroupsNeedBuilding = true;\n this.setPrimaryColumnList(colKeys, this.rowGroupColumns, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, true, this.setRowGroupActive.bind(this), source);\n };\n ColumnModel.prototype.setRowGroupActive = function (active, column, source) {\n if (active === column.isRowGroupActive()) {\n return;\n }\n column.setRowGroupActive(active, source);\n if (active && !this.gridOptionsService.is('suppressRowGroupHidesColumns')) {\n this.setColumnVisible(column, false, source);\n }\n if (!active && !this.gridOptionsService.is('suppressMakeColumnVisibleAfterUnGroup')) {\n this.setColumnVisible(column, true, source);\n }\n };\n ColumnModel.prototype.addRowGroupColumn = function (key, source) {\n if (source === void 0) { source = \"api\"; }\n if (key) {\n this.addRowGroupColumns([key], source);\n }\n };\n ColumnModel.prototype.addRowGroupColumns = function (keys, source) {\n if (source === void 0) { source = \"api\"; }\n this.autoGroupsNeedBuilding = true;\n this.updatePrimaryColumnList(keys, this.rowGroupColumns, true, this.setRowGroupActive.bind(this, true), Events.EVENT_COLUMN_ROW_GROUP_CHANGED, source);\n };\n ColumnModel.prototype.removeRowGroupColumns = function (keys, source) {\n if (source === void 0) { source = \"api\"; }\n this.autoGroupsNeedBuilding = true;\n this.updatePrimaryColumnList(keys, this.rowGroupColumns, false, this.setRowGroupActive.bind(this, false), Events.EVENT_COLUMN_ROW_GROUP_CHANGED, source);\n };\n ColumnModel.prototype.removeRowGroupColumn = function (key, source) {\n if (source === void 0) { source = \"api\"; }\n if (key) {\n this.removeRowGroupColumns([key], source);\n }\n };\n ColumnModel.prototype.addPivotColumns = function (keys, source) {\n if (source === void 0) { source = \"api\"; }\n this.updatePrimaryColumnList(keys, this.pivotColumns, true, function (column) { return column.setPivotActive(true, source); }, Events.EVENT_COLUMN_PIVOT_CHANGED, source);\n };\n ColumnModel.prototype.setPivotColumns = function (colKeys, source) {\n if (source === void 0) { source = \"api\"; }\n this.setPrimaryColumnList(colKeys, this.pivotColumns, Events.EVENT_COLUMN_PIVOT_CHANGED, true, function (added, column) {\n column.setPivotActive(added, source);\n }, source);\n };\n ColumnModel.prototype.addPivotColumn = function (key, source) {\n if (source === void 0) { source = \"api\"; }\n this.addPivotColumns([key], source);\n };\n ColumnModel.prototype.removePivotColumns = function (keys, source) {\n if (source === void 0) { source = \"api\"; }\n this.updatePrimaryColumnList(keys, this.pivotColumns, false, function (column) { return column.setPivotActive(false, source); }, Events.EVENT_COLUMN_PIVOT_CHANGED, source);\n };\n ColumnModel.prototype.removePivotColumn = function (key, source) {\n if (source === void 0) { source = \"api\"; }\n this.removePivotColumns([key], source);\n };\n ColumnModel.prototype.setPrimaryColumnList = function (colKeys, masterList, eventName, detectOrderChange, columnCallback, source) {\n var _this = this;\n var changes = new Map();\n // store all original cols and their index.\n masterList.forEach(function (col, idx) { return changes.set(col, idx); });\n masterList.length = 0;\n if (exists(colKeys)) {\n colKeys.forEach(function (key) {\n var column = _this.getPrimaryColumn(key);\n if (column) {\n masterList.push(column);\n }\n });\n }\n masterList.forEach(function (col, idx) {\n var oldIndex = changes.get(col);\n // if the column was not in the list, we add it as it's a change\n // idx is irrelevant now.\n if (oldIndex === undefined) {\n changes.set(col, 0);\n return;\n }\n if (detectOrderChange && oldIndex !== idx) {\n // if we're detecting order changes, and the indexes differ, we retain this as it's changed\n return;\n }\n // otherwise remove this col, as it's unchanged.\n changes.delete(col);\n });\n (this.primaryColumns || []).forEach(function (column) {\n var added = masterList.indexOf(column) >= 0;\n columnCallback(added, column);\n });\n if (this.autoGroupsNeedBuilding) {\n this.updateGridColumns();\n }\n this.updateDisplayedColumns(source);\n this.dispatchColumnChangedEvent(eventName, __spreadArray$l([], __read$s(changes.keys())), source);\n };\n ColumnModel.prototype.setValueColumns = function (colKeys, source) {\n if (source === void 0) { source = \"api\"; }\n this.setPrimaryColumnList(colKeys, this.valueColumns, Events.EVENT_COLUMN_VALUE_CHANGED, false, this.setValueActive.bind(this), source);\n };\n ColumnModel.prototype.setValueActive = function (active, column, source) {\n if (active === column.isValueActive()) {\n return;\n }\n column.setValueActive(active, source);\n if (active && !column.getAggFunc()) {\n var initialAggFunc = this.aggFuncService.getDefaultAggFunc(column);\n column.setAggFunc(initialAggFunc);\n }\n };\n ColumnModel.prototype.addValueColumns = function (keys, source) {\n if (source === void 0) { source = \"api\"; }\n this.updatePrimaryColumnList(keys, this.valueColumns, true, this.setValueActive.bind(this, true), Events.EVENT_COLUMN_VALUE_CHANGED, source);\n };\n ColumnModel.prototype.addValueColumn = function (colKey, source) {\n if (source === void 0) { source = \"api\"; }\n if (colKey) {\n this.addValueColumns([colKey], source);\n }\n };\n ColumnModel.prototype.removeValueColumn = function (colKey, source) {\n if (source === void 0) { source = \"api\"; }\n this.removeValueColumns([colKey], source);\n };\n ColumnModel.prototype.removeValueColumns = function (keys, source) {\n if (source === void 0) { source = \"api\"; }\n this.updatePrimaryColumnList(keys, this.valueColumns, false, this.setValueActive.bind(this, false), Events.EVENT_COLUMN_VALUE_CHANGED, source);\n };\n // returns the width we can set to this col, taking into consideration min and max widths\n ColumnModel.prototype.normaliseColumnWidth = function (column, newWidth) {\n var minWidth = column.getMinWidth();\n if (exists(minWidth) && newWidth < minWidth) {\n newWidth = minWidth;\n }\n var maxWidth = column.getMaxWidth();\n if (exists(maxWidth) && column.isGreaterThanMax(newWidth)) {\n newWidth = maxWidth;\n }\n return newWidth;\n };\n ColumnModel.prototype.getPrimaryOrGridColumn = function (key) {\n var column = this.getPrimaryColumn(key);\n return column || this.getGridColumn(key);\n };\n ColumnModel.prototype.setColumnWidths = function (columnWidths, shiftKey, // @takeFromAdjacent - if user has 'shift' pressed, then pixels are taken from adjacent column\n finished, // @finished - ends up in the event, tells the user if more events are to come\n source) {\n var _this = this;\n if (source === void 0) { source = \"api\"; }\n var sets = [];\n columnWidths.forEach(function (columnWidth) {\n var col = _this.getPrimaryOrGridColumn(columnWidth.key);\n if (!col) {\n return;\n }\n sets.push({\n width: columnWidth.newWidth,\n ratios: [1],\n columns: [col]\n });\n // if user wants to do shift resize by default, then we invert the shift operation\n var defaultIsShift = _this.gridOptionsService.get('colResizeDefault') === 'shift';\n if (defaultIsShift) {\n shiftKey = !shiftKey;\n }\n if (shiftKey) {\n var otherCol = _this.getDisplayedColAfter(col);\n if (!otherCol) {\n return;\n }\n var widthDiff = col.getActualWidth() - columnWidth.newWidth;\n var otherColWidth = otherCol.getActualWidth() + widthDiff;\n sets.push({\n width: otherColWidth,\n ratios: [1],\n columns: [otherCol]\n });\n }\n });\n if (sets.length === 0) {\n return;\n }\n this.resizeColumnSets({\n resizeSets: sets,\n finished: finished,\n source: source\n });\n };\n ColumnModel.prototype.checkMinAndMaxWidthsForSet = function (columnResizeSet) {\n var columns = columnResizeSet.columns, width = columnResizeSet.width;\n // every col has a min width, so sum them all up and see if we have enough room\n // for all the min widths\n var minWidthAccumulated = 0;\n var maxWidthAccumulated = 0;\n var maxWidthActive = true;\n columns.forEach(function (col) {\n var minWidth = col.getMinWidth();\n minWidthAccumulated += minWidth || 0;\n var maxWidth = col.getMaxWidth();\n if (exists(maxWidth) && maxWidth > 0) {\n maxWidthAccumulated += maxWidth;\n }\n else {\n // if at least one columns has no max width, it means the group of columns\n // then has no max width, as at least one column can take as much width as possible\n maxWidthActive = false;\n }\n });\n var minWidthPasses = width >= minWidthAccumulated;\n var maxWidthPasses = !maxWidthActive || (width <= maxWidthAccumulated);\n return minWidthPasses && maxWidthPasses;\n };\n // method takes sets of columns and resizes them. either all sets will be resized, or nothing\n // be resized. this is used for example when user tries to resize a group and holds shift key,\n // then both the current group (grows), and the adjacent group (shrinks), will get resized,\n // so that's two sets for this method.\n ColumnModel.prototype.resizeColumnSets = function (params) {\n var _this = this;\n var resizeSets = params.resizeSets, finished = params.finished, source = params.source;\n var passMinMaxCheck = !resizeSets || resizeSets.every(function (columnResizeSet) { return _this.checkMinAndMaxWidthsForSet(columnResizeSet); });\n if (!passMinMaxCheck) {\n // even though we are not going to resize beyond min/max size, we still need to dispatch event when finished\n if (finished) {\n var columns = resizeSets && resizeSets.length > 0 ? resizeSets[0].columns : null;\n this.dispatchColumnResizedEvent(columns, finished, source);\n }\n return; // don't resize!\n }\n var changedCols = [];\n var allResizedCols = [];\n resizeSets.forEach(function (set) {\n var width = set.width, columns = set.columns, ratios = set.ratios;\n // keep track of pixels used, and last column gets the remaining,\n // to cater for rounding errors, and min width adjustments\n var newWidths = {};\n var finishedCols = {};\n columns.forEach(function (col) { return allResizedCols.push(col); });\n // the loop below goes through each col. if a col exceeds it's min/max width,\n // it then gets set to its min/max width and the column is removed marked as 'finished'\n // and the calculation is done again leaving this column out. take for example columns\n // {A, width: 50, maxWidth: 100}\n // {B, width: 50}\n // {C, width: 50}\n // and then the set is set to width 600 - on the first pass the grid tries to set each column\n // to 200. it checks A and sees 200 > 100 and so sets the width to 100. col A is then marked\n // as 'finished' and the calculation is done again with the remaining cols B and C, which end up\n // splitting the remaining 500 pixels.\n var finishedColsGrew = true;\n var loopCount = 0;\n var _loop_2 = function () {\n loopCount++;\n if (loopCount > 1000) {\n // this should never happen, but in the future, someone might introduce a bug here,\n // so we stop the browser from hanging and report bug properly\n console.error('AG Grid: infinite loop in resizeColumnSets');\n return \"break\";\n }\n finishedColsGrew = false;\n var subsetCols = [];\n var subsetRatioTotal = 0;\n var pixelsToDistribute = width;\n columns.forEach(function (col, index) {\n var thisColFinished = finishedCols[col.getId()];\n if (thisColFinished) {\n pixelsToDistribute -= newWidths[col.getId()];\n }\n else {\n subsetCols.push(col);\n var ratioThisCol = ratios[index];\n subsetRatioTotal += ratioThisCol;\n }\n });\n // because we are not using all of the ratios (cols can be missing),\n // we scale the ratio. if all columns are included, then subsetRatioTotal=1,\n // and so the ratioScale will be 1.\n var ratioScale = 1 / subsetRatioTotal;\n subsetCols.forEach(function (col, index) {\n var lastCol = index === (subsetCols.length - 1);\n var colNewWidth;\n if (lastCol) {\n colNewWidth = pixelsToDistribute;\n }\n else {\n colNewWidth = Math.round(ratios[index] * width * ratioScale);\n pixelsToDistribute -= colNewWidth;\n }\n var minWidth = col.getMinWidth();\n var maxWidth = col.getMaxWidth();\n if (exists(minWidth) && colNewWidth < minWidth) {\n colNewWidth = minWidth;\n finishedCols[col.getId()] = true;\n finishedColsGrew = true;\n }\n else if (exists(maxWidth) && maxWidth > 0 && colNewWidth > maxWidth) {\n colNewWidth = maxWidth;\n finishedCols[col.getId()] = true;\n finishedColsGrew = true;\n }\n newWidths[col.getId()] = colNewWidth;\n });\n };\n while (finishedColsGrew) {\n var state_1 = _loop_2();\n if (state_1 === \"break\")\n break;\n }\n columns.forEach(function (col) {\n var newWidth = newWidths[col.getId()];\n var actualWidth = col.getActualWidth();\n if (actualWidth !== newWidth) {\n col.setActualWidth(newWidth, source);\n changedCols.push(col);\n }\n });\n });\n // if no cols changed, then no need to update more or send event.\n var atLeastOneColChanged = changedCols.length > 0;\n var flexedCols = [];\n if (atLeastOneColChanged) {\n flexedCols = this.refreshFlexedColumns({ resizingCols: allResizedCols, skipSetLeft: true });\n this.setLeftValues(source);\n this.updateBodyWidths();\n this.checkViewportColumns();\n }\n // check for change first, to avoid unnecessary firing of events\n // however we always dispatch 'finished' events. this is important\n // when groups are resized, as if the group is changing slowly,\n // eg 1 pixel at a time, then each change will dispatch change events\n // in all the columns in the group, but only one with get the pixel.\n var colsForEvent = allResizedCols.concat(flexedCols);\n if (atLeastOneColChanged || finished) {\n this.dispatchColumnResizedEvent(colsForEvent, finished, source, flexedCols);\n }\n };\n ColumnModel.prototype.setColumnAggFunc = function (key, aggFunc, source) {\n if (source === void 0) { source = \"api\"; }\n if (!key) {\n return;\n }\n var column = this.getPrimaryColumn(key);\n if (!column) {\n return;\n }\n column.setAggFunc(aggFunc);\n this.dispatchColumnChangedEvent(Events.EVENT_COLUMN_VALUE_CHANGED, [column], source);\n };\n ColumnModel.prototype.moveRowGroupColumn = function (fromIndex, toIndex, source) {\n if (source === void 0) { source = \"api\"; }\n var column = this.rowGroupColumns[fromIndex];\n var impactedColumns = this.rowGroupColumns.slice(fromIndex, toIndex);\n this.rowGroupColumns.splice(fromIndex, 1);\n this.rowGroupColumns.splice(toIndex, 0, column);\n var event = {\n type: Events.EVENT_COLUMN_ROW_GROUP_CHANGED,\n columns: impactedColumns,\n column: impactedColumns.length === 1 ? impactedColumns[0] : null,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.moveColumns = function (columnsToMoveKeys, toIndex, source, finished) {\n if (source === void 0) { source = \"api\"; }\n if (finished === void 0) { finished = true; }\n this.columnAnimationService.start();\n if (toIndex > this.gridColumns.length - columnsToMoveKeys.length) {\n console.warn('AG Grid: tried to insert columns in invalid location, toIndex = ' + toIndex);\n console.warn('AG Grid: remember that you should not count the moving columns when calculating the new index');\n return;\n }\n // we want to pull all the columns out first and put them into an ordered list\n var movedColumns = this.getGridColumns(columnsToMoveKeys);\n var failedRules = !this.doesMovePassRules(movedColumns, toIndex);\n if (failedRules) {\n return;\n }\n moveInArray(this.gridColumns, movedColumns, toIndex);\n this.updateDisplayedColumns(source);\n this.dispatchColumnMovedEvent({ movedColumns: movedColumns, source: source, toIndex: toIndex, finished: finished });\n this.columnAnimationService.finish();\n };\n ColumnModel.prototype.doesMovePassRules = function (columnsToMove, toIndex) {\n // make a copy of what the grid columns would look like after the move\n var proposedColumnOrder = this.getProposedColumnOrder(columnsToMove, toIndex);\n return this.doesOrderPassRules(proposedColumnOrder);\n };\n ColumnModel.prototype.doesOrderPassRules = function (gridOrder) {\n if (!this.doesMovePassMarryChildren(gridOrder)) {\n return false;\n }\n if (!this.doesMovePassLockedPositions(gridOrder)) {\n return false;\n }\n return true;\n };\n ColumnModel.prototype.getProposedColumnOrder = function (columnsToMove, toIndex) {\n var proposedColumnOrder = this.gridColumns.slice();\n moveInArray(proposedColumnOrder, columnsToMove, toIndex);\n return proposedColumnOrder;\n };\n // returns the provided cols sorted in same order as they appear in grid columns. eg if grid columns\n // contains [a,b,c,d,e] and col passed is [e,a] then the passed cols are sorted into [a,e]\n ColumnModel.prototype.sortColumnsLikeGridColumns = function (cols) {\n var _this = this;\n if (!cols || cols.length <= 1) {\n return;\n }\n var notAllColsInGridColumns = cols.filter(function (c) { return _this.gridColumns.indexOf(c) < 0; }).length > 0;\n if (notAllColsInGridColumns) {\n return;\n }\n cols.sort(function (a, b) {\n var indexA = _this.gridColumns.indexOf(a);\n var indexB = _this.gridColumns.indexOf(b);\n return indexA - indexB;\n });\n };\n ColumnModel.prototype.doesMovePassLockedPositions = function (proposedColumnOrder) {\n // Placement is a number indicating 'left' 'center' or 'right' as 0 1 2\n var lastPlacement = 0;\n var rulePassed = true;\n var lockPositionToPlacement = function (position) {\n if (!position) { // false or undefined\n return 1;\n }\n if (position === true) {\n return 0;\n }\n return position === 'left' ? 0 : 2; // Otherwise 'right'\n };\n proposedColumnOrder.forEach(function (col) {\n var placement = lockPositionToPlacement(col.getColDef().lockPosition);\n if (placement < lastPlacement) { // If placement goes down, we're not in the correct order\n rulePassed = false;\n }\n lastPlacement = placement;\n });\n return rulePassed;\n };\n ColumnModel.prototype.doesMovePassMarryChildren = function (allColumnsCopy) {\n var rulePassed = true;\n this.columnUtils.depthFirstOriginalTreeSearch(null, this.gridBalancedTree, function (child) {\n if (!(child instanceof ProvidedColumnGroup)) {\n return;\n }\n var columnGroup = child;\n var colGroupDef = columnGroup.getColGroupDef();\n var marryChildren = colGroupDef && colGroupDef.marryChildren;\n if (!marryChildren) {\n return;\n }\n var newIndexes = [];\n columnGroup.getLeafColumns().forEach(function (col) {\n var newColIndex = allColumnsCopy.indexOf(col);\n newIndexes.push(newColIndex);\n });\n var maxIndex = Math.max.apply(Math, newIndexes);\n var minIndex = Math.min.apply(Math, newIndexes);\n // spread is how far the first column in this group is away from the last column\n var spread = maxIndex - minIndex;\n var maxSpread = columnGroup.getLeafColumns().length - 1;\n // if the columns\n if (spread > maxSpread) {\n rulePassed = false;\n }\n // console.log(`maxIndex = ${maxIndex}, minIndex = ${minIndex}, spread = ${spread}, maxSpread = ${maxSpread}, fail = ${spread > (count-1)}`)\n // console.log(allColumnsCopy.map( col => col.getColDef().field).join(','));\n });\n return rulePassed;\n };\n ColumnModel.prototype.moveColumn = function (key, toIndex, source) {\n if (source === void 0) { source = \"api\"; }\n this.moveColumns([key], toIndex, source);\n };\n ColumnModel.prototype.moveColumnByIndex = function (fromIndex, toIndex, source) {\n if (source === void 0) { source = \"api\"; }\n var column = this.gridColumns[fromIndex];\n this.moveColumn(column, toIndex, source);\n };\n ColumnModel.prototype.getColumnDefs = function () {\n var _this = this;\n if (!this.primaryColumns) {\n return;\n }\n var cols = this.primaryColumns.slice();\n if (this.gridColsArePrimary) {\n cols.sort(function (a, b) { return _this.gridColumns.indexOf(a) - _this.gridColumns.indexOf(b); });\n }\n else if (this.lastPrimaryOrder) {\n cols.sort(function (a, b) { return _this.lastPrimaryOrder.indexOf(a) - _this.lastPrimaryOrder.indexOf(b); });\n }\n return this.columnDefFactory.buildColumnDefs(cols, this.rowGroupColumns, this.pivotColumns);\n };\n // used by:\n // + angularGrid -> for setting body width\n // + rowController -> setting main row widths (when inserting and resizing)\n // need to cache this\n ColumnModel.prototype.getBodyContainerWidth = function () {\n return this.bodyWidth;\n };\n ColumnModel.prototype.getContainerWidth = function (pinned) {\n switch (pinned) {\n case 'left':\n return this.leftWidth;\n case 'right':\n return this.rightWidth;\n default:\n return this.bodyWidth;\n }\n };\n // after setColumnWidth or updateGroupsAndDisplayedColumns\n ColumnModel.prototype.updateBodyWidths = function () {\n var newBodyWidth = this.getWidthOfColsInList(this.displayedColumnsCenter);\n var newLeftWidth = this.getWidthOfColsInList(this.displayedColumnsLeft);\n var newRightWidth = this.getWidthOfColsInList(this.displayedColumnsRight);\n // this is used by virtual col calculation, for RTL only, as a change to body width can impact displayed\n // columns, due to RTL inverting the y coordinates\n this.bodyWidthDirty = this.bodyWidth !== newBodyWidth;\n var atLeastOneChanged = this.bodyWidth !== newBodyWidth || this.leftWidth !== newLeftWidth || this.rightWidth !== newRightWidth;\n if (atLeastOneChanged) {\n this.bodyWidth = newBodyWidth;\n this.leftWidth = newLeftWidth;\n this.rightWidth = newRightWidth;\n // when this fires, it is picked up by the gridPanel, which ends up in\n // gridPanel calling setWidthAndScrollPosition(), which in turn calls setViewportPosition()\n var event_2 = {\n type: Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED,\n };\n this.eventService.dispatchEvent(event_2);\n }\n };\n // + rowController\n ColumnModel.prototype.getValueColumns = function () {\n return this.valueColumns ? this.valueColumns : [];\n };\n // + rowController\n ColumnModel.prototype.getPivotColumns = function () {\n return this.pivotColumns ? this.pivotColumns : [];\n };\n // + clientSideRowModel\n ColumnModel.prototype.isPivotActive = function () {\n return this.pivotColumns && this.pivotColumns.length > 0 && this.pivotMode;\n };\n // + toolPanel\n ColumnModel.prototype.getRowGroupColumns = function () {\n return this.rowGroupColumns ? this.rowGroupColumns : [];\n };\n // + rowController -> while inserting rows\n ColumnModel.prototype.getDisplayedCenterColumns = function () {\n return this.displayedColumnsCenter;\n };\n // + rowController -> while inserting rows\n ColumnModel.prototype.getDisplayedLeftColumns = function () {\n return this.displayedColumnsLeft;\n };\n ColumnModel.prototype.getDisplayedRightColumns = function () {\n return this.displayedColumnsRight;\n };\n ColumnModel.prototype.getDisplayedColumns = function (type) {\n switch (type) {\n case 'left':\n return this.getDisplayedLeftColumns();\n case 'right':\n return this.getDisplayedRightColumns();\n default:\n return this.getDisplayedCenterColumns();\n }\n };\n // used by:\n // + clientSideRowController -> sorting, building quick filter text\n // + headerRenderer -> sorting (clearing icon)\n ColumnModel.prototype.getAllPrimaryColumns = function () {\n return this.primaryColumns ? this.primaryColumns.slice() : null;\n };\n ColumnModel.prototype.getSecondaryColumns = function () {\n return this.secondaryColumns ? this.secondaryColumns.slice() : null;\n };\n ColumnModel.prototype.getAllColumnsForQuickFilter = function () {\n return this.columnsForQuickFilter;\n };\n // + moveColumnController\n ColumnModel.prototype.getAllGridColumns = function () {\n return this.gridColumns;\n };\n ColumnModel.prototype.isEmpty = function () {\n return missingOrEmpty(this.gridColumns);\n };\n ColumnModel.prototype.isRowGroupEmpty = function () {\n return missingOrEmpty(this.rowGroupColumns);\n };\n ColumnModel.prototype.setColumnVisible = function (key, visible, source) {\n if (source === void 0) { source = \"api\"; }\n this.setColumnsVisible([key], visible, source);\n };\n ColumnModel.prototype.setColumnsVisible = function (keys, visible, source) {\n if (visible === void 0) { visible = false; }\n if (source === void 0) { source = \"api\"; }\n this.applyColumnState({\n state: keys.map(function (key) { return ({\n colId: typeof key === 'string' ? key : key.getColId(),\n hide: !visible,\n }); }),\n }, source);\n };\n ColumnModel.prototype.setColumnPinned = function (key, pinned, source) {\n if (source === void 0) { source = \"api\"; }\n if (key) {\n this.setColumnsPinned([key], pinned, source);\n }\n };\n ColumnModel.prototype.setColumnsPinned = function (keys, pinned, source) {\n if (source === void 0) { source = \"api\"; }\n if (this.gridOptionsService.isDomLayout('print')) {\n console.warn(\"AG Grid: Changing the column pinning status is not allowed with domLayout='print'\");\n return;\n }\n this.columnAnimationService.start();\n var actualPinned;\n if (pinned === true || pinned === 'left') {\n actualPinned = 'left';\n }\n else if (pinned === 'right') {\n actualPinned = 'right';\n }\n else {\n actualPinned = null;\n }\n this.actionOnGridColumns(keys, function (col) {\n if (col.getPinned() !== actualPinned) {\n col.setPinned(actualPinned);\n return true;\n }\n return false;\n }, source, function () {\n var event = {\n type: Events.EVENT_COLUMN_PINNED,\n pinned: actualPinned,\n column: null,\n columns: null,\n source: source\n };\n return event;\n });\n this.columnAnimationService.finish();\n };\n // does an action on a set of columns. provides common functionality for looking up the\n // columns based on key, getting a list of effected columns, and then updated the event\n // with either one column (if it was just one col) or a list of columns\n // used by: autoResize, setVisible, setPinned\n ColumnModel.prototype.actionOnGridColumns = function (// the column keys this action will be on\n keys, \n // the action to do - if this returns false, the column was skipped\n // and won't be included in the event\n action, \n // should return back a column event of the right type\n source, createEvent) {\n var _this = this;\n if (missingOrEmpty(keys)) {\n return;\n }\n var updatedColumns = [];\n keys.forEach(function (key) {\n var column = _this.getGridColumn(key);\n if (!column) {\n return;\n }\n // need to check for false with type (ie !== instead of !=)\n // as not returning anything (undefined) would also be false\n var resultOfAction = action(column);\n if (resultOfAction !== false) {\n updatedColumns.push(column);\n }\n });\n if (!updatedColumns.length) {\n return;\n }\n this.updateDisplayedColumns(source);\n if (exists(createEvent) && createEvent) {\n var event_3 = createEvent();\n event_3.columns = updatedColumns;\n event_3.column = updatedColumns.length === 1 ? updatedColumns[0] : null;\n this.eventService.dispatchEvent(event_3);\n }\n };\n ColumnModel.prototype.getDisplayedColBefore = function (col) {\n var allDisplayedColumns = this.getAllDisplayedColumns();\n var oldIndex = allDisplayedColumns.indexOf(col);\n if (oldIndex > 0) {\n return allDisplayedColumns[oldIndex - 1];\n }\n return null;\n };\n // used by:\n // + rowRenderer -> for navigation\n ColumnModel.prototype.getDisplayedColAfter = function (col) {\n var allDisplayedColumns = this.getAllDisplayedColumns();\n var oldIndex = allDisplayedColumns.indexOf(col);\n if (oldIndex < (allDisplayedColumns.length - 1)) {\n return allDisplayedColumns[oldIndex + 1];\n }\n return null;\n };\n ColumnModel.prototype.getDisplayedGroupAfter = function (columnGroup) {\n return this.getDisplayedGroupAtDirection(columnGroup, 'After');\n };\n ColumnModel.prototype.getDisplayedGroupBefore = function (columnGroup) {\n return this.getDisplayedGroupAtDirection(columnGroup, 'Before');\n };\n ColumnModel.prototype.getDisplayedGroupAtDirection = function (columnGroup, direction) {\n // pick the last displayed column in this group\n var requiredLevel = columnGroup.getProvidedColumnGroup().getLevel() + columnGroup.getPaddingLevel();\n var colGroupLeafColumns = columnGroup.getDisplayedLeafColumns();\n var col = direction === 'After' ? last(colGroupLeafColumns) : colGroupLeafColumns[0];\n var getDisplayColMethod = \"getDisplayedCol\" + direction;\n while (true) {\n // keep moving to the next col, until we get to another group\n var column = this[getDisplayColMethod](col);\n if (!column) {\n return null;\n }\n var groupPointer = this.getColumnGroupAtLevel(column, requiredLevel);\n if (groupPointer !== columnGroup) {\n return groupPointer;\n }\n }\n };\n ColumnModel.prototype.getColumnGroupAtLevel = function (column, level) {\n // get group at same level as the one we are looking for\n var groupPointer = column.getParent();\n var originalGroupLevel;\n var groupPointerLevel;\n while (true) {\n var groupPointerProvidedColumnGroup = groupPointer.getProvidedColumnGroup();\n originalGroupLevel = groupPointerProvidedColumnGroup.getLevel();\n groupPointerLevel = groupPointer.getPaddingLevel();\n if (originalGroupLevel + groupPointerLevel <= level) {\n break;\n }\n groupPointer = groupPointer.getParent();\n }\n return groupPointer;\n };\n ColumnModel.prototype.isPinningLeft = function () {\n return this.displayedColumnsLeft.length > 0;\n };\n ColumnModel.prototype.isPinningRight = function () {\n return this.displayedColumnsRight.length > 0;\n };\n ColumnModel.prototype.getPrimaryAndSecondaryAndAutoColumns = function () {\n var _a;\n return (_a = []).concat.apply(_a, [\n this.primaryColumns || [],\n this.groupAutoColumns || [],\n this.secondaryColumns || [],\n ]);\n };\n ColumnModel.prototype.createStateItemFromColumn = function (column) {\n var rowGroupIndex = column.isRowGroupActive() ? this.rowGroupColumns.indexOf(column) : null;\n var pivotIndex = column.isPivotActive() ? this.pivotColumns.indexOf(column) : null;\n var aggFunc = column.isValueActive() ? column.getAggFunc() : null;\n var sort = column.getSort() != null ? column.getSort() : null;\n var sortIndex = column.getSortIndex() != null ? column.getSortIndex() : null;\n var flex = column.getFlex() != null && column.getFlex() > 0 ? column.getFlex() : null;\n var res = {\n colId: column.getColId(),\n width: column.getActualWidth(),\n hide: !column.isVisible(),\n pinned: column.getPinned(),\n sort: sort,\n sortIndex: sortIndex,\n aggFunc: aggFunc,\n rowGroup: column.isRowGroupActive(),\n rowGroupIndex: rowGroupIndex,\n pivot: column.isPivotActive(),\n pivotIndex: pivotIndex,\n flex: flex\n };\n return res;\n };\n ColumnModel.prototype.getColumnState = function () {\n if (missing(this.primaryColumns) || !this.isAlive()) {\n return [];\n }\n var colsForState = this.getPrimaryAndSecondaryAndAutoColumns();\n var res = colsForState.map(this.createStateItemFromColumn.bind(this));\n this.orderColumnStateList(res);\n return res;\n };\n ColumnModel.prototype.orderColumnStateList = function (columnStateList) {\n // for fast looking, store the index of each column\n var colIdToGridIndexMap = convertToMap(this.gridColumns.map(function (col, index) { return [col.getColId(), index]; }));\n columnStateList.sort(function (itemA, itemB) {\n var posA = colIdToGridIndexMap.has(itemA.colId) ? colIdToGridIndexMap.get(itemA.colId) : -1;\n var posB = colIdToGridIndexMap.has(itemB.colId) ? colIdToGridIndexMap.get(itemB.colId) : -1;\n return posA - posB;\n });\n };\n ColumnModel.prototype.resetColumnState = function (source) {\n // NOTE = there is one bug here that no customer has noticed - if a column has colDef.lockPosition,\n // this is ignored below when ordering the cols. to work, we should always put lockPosition cols first.\n // As a work around, developers should just put lockPosition columns first in their colDef list.\n var _this = this;\n if (source === void 0) { source = \"api\"; }\n // we can't use 'allColumns' as the order might of messed up, so get the primary ordered list\n var primaryColumns = this.getColumnsFromTree(this.primaryColumnTree);\n var columnStates = [];\n // we start at 1000, so if user has mix of rowGroup and group specified, it will work with both.\n // eg IF user has ColA.rowGroupIndex=0, ColB.rowGroupIndex=1, ColC.rowGroup=true,\n // THEN result will be ColA.rowGroupIndex=0, ColB.rowGroupIndex=1, ColC.rowGroup=1000\n var letRowGroupIndex = 1000;\n var letPivotIndex = 1000;\n var colsToProcess = [];\n if (this.groupAutoColumns) {\n colsToProcess = colsToProcess.concat(this.groupAutoColumns);\n }\n if (primaryColumns) {\n colsToProcess = colsToProcess.concat(primaryColumns);\n }\n colsToProcess.forEach(function (column) {\n var stateItem = _this.getColumnStateFromColDef(column);\n if (missing(stateItem.rowGroupIndex) && stateItem.rowGroup) {\n stateItem.rowGroupIndex = letRowGroupIndex++;\n }\n if (missing(stateItem.pivotIndex) && stateItem.pivot) {\n stateItem.pivotIndex = letPivotIndex++;\n }\n columnStates.push(stateItem);\n });\n this.applyColumnState({ state: columnStates, applyOrder: true }, source);\n };\n ColumnModel.prototype.getColumnStateFromColDef = function (column) {\n var getValueOrNull = function (a, b) { return a != null ? a : b != null ? b : null; };\n var colDef = column.getColDef();\n var sort = getValueOrNull(colDef.sort, colDef.initialSort);\n var sortIndex = getValueOrNull(colDef.sortIndex, colDef.initialSortIndex);\n var hide = getValueOrNull(colDef.hide, colDef.initialHide);\n var pinned = getValueOrNull(colDef.pinned, colDef.initialPinned);\n var width = getValueOrNull(colDef.width, colDef.initialWidth);\n var flex = getValueOrNull(colDef.flex, colDef.initialFlex);\n var rowGroupIndex = getValueOrNull(colDef.rowGroupIndex, colDef.initialRowGroupIndex);\n var rowGroup = getValueOrNull(colDef.rowGroup, colDef.initialRowGroup);\n if (rowGroupIndex == null && (rowGroup == null || rowGroup == false)) {\n rowGroupIndex = null;\n rowGroup = null;\n }\n var pivotIndex = getValueOrNull(colDef.pivotIndex, colDef.initialPivotIndex);\n var pivot = getValueOrNull(colDef.pivot, colDef.initialPivot);\n if (pivotIndex == null && (pivot == null || pivot == false)) {\n pivotIndex = null;\n pivot = null;\n }\n var aggFunc = getValueOrNull(colDef.aggFunc, colDef.initialAggFunc);\n return {\n colId: column.getColId(),\n sort: sort,\n sortIndex: sortIndex,\n hide: hide,\n pinned: pinned,\n width: width,\n flex: flex,\n rowGroup: rowGroup,\n rowGroupIndex: rowGroupIndex,\n pivot: pivot,\n pivotIndex: pivotIndex,\n aggFunc: aggFunc,\n };\n };\n ColumnModel.prototype.applyColumnState = function (params, source) {\n var _this = this;\n if (missingOrEmpty(this.primaryColumns)) {\n return false;\n }\n if (params && params.state && !params.state.forEach) {\n console.warn('AG Grid: applyColumnState() - the state attribute should be an array, however an array was not found. Please provide an array of items (one for each col you want to change) for state.');\n return false;\n }\n var applyStates = function (states, existingColumns, getById) {\n var dispatchEventsFunc = _this.compareColumnStatesAndDispatchEvents(source);\n _this.autoGroupsNeedBuilding = true;\n // at the end below, this list will have all columns we got no state for\n var columnsWithNoState = existingColumns.slice();\n var rowGroupIndexes = {};\n var pivotIndexes = {};\n var autoGroupColumnStates = [];\n // If pivoting is modified, these are the states we try to reapply after\n // the secondary columns are re-generated\n var unmatchedAndAutoStates = [];\n var unmatchedCount = 0;\n var previousRowGroupCols = _this.rowGroupColumns.slice();\n var previousPivotCols = _this.pivotColumns.slice();\n states.forEach(function (state) {\n var colId = state.colId || '';\n // auto group columns are re-created so deferring syncing with ColumnState\n var isAutoGroupColumn = colId.startsWith(GROUP_AUTO_COLUMN_ID);\n if (isAutoGroupColumn) {\n autoGroupColumnStates.push(state);\n unmatchedAndAutoStates.push(state);\n return;\n }\n var column = getById(colId);\n if (!column) {\n unmatchedAndAutoStates.push(state);\n unmatchedCount += 1;\n }\n else {\n _this.syncColumnWithStateItem(column, state, params.defaultState, rowGroupIndexes, pivotIndexes, false, source);\n removeFromArray(columnsWithNoState, column);\n }\n });\n // anything left over, we got no data for, so add in the column as non-value, non-rowGroup and hidden\n var applyDefaultsFunc = function (col) {\n return _this.syncColumnWithStateItem(col, null, params.defaultState, rowGroupIndexes, pivotIndexes, false, source);\n };\n columnsWithNoState.forEach(applyDefaultsFunc);\n // sort the lists according to the indexes that were provided\n var comparator = function (indexes, oldList, colA, colB) {\n var indexA = indexes[colA.getId()];\n var indexB = indexes[colB.getId()];\n var aHasIndex = indexA != null;\n var bHasIndex = indexB != null;\n if (aHasIndex && bHasIndex) {\n // both a and b are new cols with index, so sort on index\n return indexA - indexB;\n }\n if (aHasIndex) {\n // a has an index, so it should be before a\n return -1;\n }\n if (bHasIndex) {\n // b has an index, so it should be before a\n return 1;\n }\n var oldIndexA = oldList.indexOf(colA);\n var oldIndexB = oldList.indexOf(colB);\n var aHasOldIndex = oldIndexA >= 0;\n var bHasOldIndex = oldIndexB >= 0;\n if (aHasOldIndex && bHasOldIndex) {\n // both a and b are old cols, so sort based on last order\n return oldIndexA - oldIndexB;\n }\n if (aHasOldIndex) {\n // a is old, b is new, so b is first\n return -1;\n }\n // this bit does matter, means both are new cols\n // but without index or that b is old and a is new\n return 1;\n };\n _this.rowGroupColumns.sort(comparator.bind(_this, rowGroupIndexes, previousRowGroupCols));\n _this.pivotColumns.sort(comparator.bind(_this, pivotIndexes, previousPivotCols));\n _this.updateGridColumns();\n // sync newly created auto group columns with ColumnState\n var autoGroupColsCopy = _this.groupAutoColumns ? _this.groupAutoColumns.slice() : [];\n autoGroupColumnStates.forEach(function (stateItem) {\n var autoCol = _this.getAutoColumn(stateItem.colId);\n removeFromArray(autoGroupColsCopy, autoCol);\n _this.syncColumnWithStateItem(autoCol, stateItem, params.defaultState, null, null, true, source);\n });\n // autogroup cols with nothing else, apply the default\n autoGroupColsCopy.forEach(applyDefaultsFunc);\n _this.applyOrderAfterApplyState(params);\n _this.updateDisplayedColumns(source);\n _this.dispatchEverythingChanged(source);\n dispatchEventsFunc(); // Will trigger secondary column changes if pivoting modified\n return { unmatchedAndAutoStates: unmatchedAndAutoStates, unmatchedCount: unmatchedCount };\n };\n this.columnAnimationService.start();\n var _a = applyStates(params.state || [], this.primaryColumns || [], function (id) { return _this.getPrimaryColumn(id); }), unmatchedAndAutoStates = _a.unmatchedAndAutoStates, unmatchedCount = _a.unmatchedCount;\n // If there are still states left over, see if we can apply them to newly generated\n // secondary or auto columns. Also if defaults exist, ensure they are applied to secondary cols\n if (unmatchedAndAutoStates.length > 0 || exists(params.defaultState)) {\n unmatchedCount = applyStates(unmatchedAndAutoStates, this.secondaryColumns || [], function (id) { return _this.getSecondaryColumn(id); }).unmatchedCount;\n }\n this.columnAnimationService.finish();\n return unmatchedCount === 0; // Successful if no states unaccounted for\n };\n ColumnModel.prototype.applyOrderAfterApplyState = function (params) {\n var _this = this;\n if (!params.applyOrder || !params.state) {\n return;\n }\n var newOrder = [];\n var processedColIds = {};\n params.state.forEach(function (item) {\n if (!item.colId || processedColIds[item.colId]) {\n return;\n }\n var col = _this.gridColumnsMap[item.colId];\n if (col) {\n newOrder.push(col);\n processedColIds[item.colId] = true;\n }\n });\n // add in all other columns\n var autoGroupInsertIndex = 0;\n this.gridColumns.forEach(function (col) {\n var colId = col.getColId();\n var alreadyProcessed = processedColIds[colId] != null;\n if (alreadyProcessed) {\n return;\n }\n var isAutoGroupCol = colId.startsWith(GROUP_AUTO_COLUMN_ID);\n if (isAutoGroupCol) {\n // auto group columns, if missing from state list, are added to the start.\n // it's common to have autoGroup missing, as grouping could be on by default\n // on a column, but the user could of since removed the grouping via the UI.\n // if we don't inc the insert index, autoGroups will be inserted in reverse order\n insertIntoArray(newOrder, col, autoGroupInsertIndex++);\n }\n else {\n // normal columns, if missing from state list, are added at the end\n newOrder.push(col);\n }\n });\n // this is already done in updateGridColumns, however we changed the order above (to match the order of the state\n // columns) so we need to do it again. we could of put logic into the order above to take into account fixed\n // columns, however if we did then we would have logic for updating fixed columns twice. reusing the logic here\n // is less sexy for the code here, but it keeps consistency.\n newOrder = this.placeLockedColumns(newOrder);\n if (!this.doesMovePassMarryChildren(newOrder)) {\n console.warn('AG Grid: Applying column order broke a group where columns should be married together. Applying new order has been discarded.');\n return;\n }\n this.gridColumns = newOrder;\n };\n ColumnModel.prototype.compareColumnStatesAndDispatchEvents = function (source) {\n var _this = this;\n var startState = {\n rowGroupColumns: this.rowGroupColumns.slice(),\n pivotColumns: this.pivotColumns.slice(),\n valueColumns: this.valueColumns.slice()\n };\n var columnStateBefore = this.getColumnState();\n var columnStateBeforeMap = {};\n columnStateBefore.forEach(function (col) {\n columnStateBeforeMap[col.colId] = col;\n });\n return function () {\n var colsForState = _this.getPrimaryAndSecondaryAndAutoColumns();\n // dispatches generic ColumnEvents where all columns are returned rather than what has changed\n var dispatchWhenListsDifferent = function (eventType, colsBefore, colsAfter, idMapper) {\n var beforeList = colsBefore.map(idMapper);\n var afterList = colsAfter.map(idMapper);\n var unchanged = areEqual(beforeList, afterList);\n if (unchanged) {\n return;\n }\n var changes = new Set(colsBefore);\n colsAfter.forEach(function (id) {\n // if the first list had it, delete it, as it's unchanged.\n if (!changes.delete(id)) {\n // if the second list has it, and first doesn't, add it.\n changes.add(id);\n }\n });\n var changesArr = __spreadArray$l([], __read$s(changes));\n var event = {\n type: eventType,\n columns: changesArr,\n column: changesArr.length === 1 ? changesArr[0] : null,\n source: source\n };\n _this.eventService.dispatchEvent(event);\n };\n // determines which columns have changed according to supplied predicate\n var getChangedColumns = function (changedPredicate) {\n var changedColumns = [];\n colsForState.forEach(function (column) {\n var colStateBefore = columnStateBeforeMap[column.getColId()];\n if (colStateBefore && changedPredicate(colStateBefore, column)) {\n changedColumns.push(column);\n }\n });\n return changedColumns;\n };\n var columnIdMapper = function (c) { return c.getColId(); };\n dispatchWhenListsDifferent(Events.EVENT_COLUMN_ROW_GROUP_CHANGED, startState.rowGroupColumns, _this.rowGroupColumns, columnIdMapper);\n dispatchWhenListsDifferent(Events.EVENT_COLUMN_PIVOT_CHANGED, startState.pivotColumns, _this.pivotColumns, columnIdMapper);\n var valueChangePredicate = function (cs, c) {\n var oldActive = cs.aggFunc != null;\n var activeChanged = oldActive != c.isValueActive();\n // we only check aggFunc if the agg is active\n var aggFuncChanged = oldActive && cs.aggFunc != c.getAggFunc();\n return activeChanged || aggFuncChanged;\n };\n var changedValues = getChangedColumns(valueChangePredicate);\n if (changedValues.length > 0) {\n _this.dispatchColumnChangedEvent(Events.EVENT_COLUMN_VALUE_CHANGED, changedValues, source);\n }\n var resizeChangePredicate = function (cs, c) { return cs.width != c.getActualWidth(); };\n _this.dispatchColumnResizedEvent(getChangedColumns(resizeChangePredicate), true, source);\n var pinnedChangePredicate = function (cs, c) { return cs.pinned != c.getPinned(); };\n _this.dispatchColumnPinnedEvent(getChangedColumns(pinnedChangePredicate), source);\n var visibilityChangePredicate = function (cs, c) { return cs.hide == c.isVisible(); };\n _this.dispatchColumnVisibleEvent(getChangedColumns(visibilityChangePredicate), source);\n var sortChangePredicate = function (cs, c) { return cs.sort != c.getSort() || cs.sortIndex != c.getSortIndex(); };\n if (getChangedColumns(sortChangePredicate).length > 0) {\n _this.sortController.dispatchSortChangedEvents(source);\n }\n // special handling for moved column events\n _this.normaliseColumnMovedEventForColumnState(columnStateBefore, source);\n };\n };\n ColumnModel.prototype.getCommonValue = function (cols, valueGetter) {\n if (!cols || cols.length == 0) {\n return undefined;\n }\n // compare each value to the first value. if nothing differs, then value is common so return it.\n var firstValue = valueGetter(cols[0]);\n for (var i = 1; i < cols.length; i++) {\n if (firstValue !== valueGetter(cols[i])) {\n // values differ, no common value\n return undefined;\n }\n }\n return firstValue;\n };\n ColumnModel.prototype.normaliseColumnMovedEventForColumnState = function (colStateBefore, source) {\n // we are only interested in columns that were both present and visible before and after\n var _this = this;\n var colStateAfter = this.getColumnState();\n var colStateAfterMapped = {};\n colStateAfter.forEach(function (s) { return colStateAfterMapped[s.colId] = s; });\n // get id's of cols in both before and after lists\n var colsIntersectIds = {};\n colStateBefore.forEach(function (s) {\n if (colStateAfterMapped[s.colId]) {\n colsIntersectIds[s.colId] = true;\n }\n });\n // filter state lists, so we only have cols that were present before and after\n var beforeFiltered = colStateBefore.filter(function (c) { return colsIntersectIds[c.colId]; });\n var afterFiltered = colStateAfter.filter(function (c) { return colsIntersectIds[c.colId]; });\n // see if any cols are in a different location\n var movedColumns = [];\n afterFiltered.forEach(function (csAfter, index) {\n var csBefore = beforeFiltered && beforeFiltered[index];\n if (csBefore && csBefore.colId !== csAfter.colId) {\n var gridCol = _this.getGridColumn(csBefore.colId);\n if (gridCol) {\n movedColumns.push(gridCol);\n }\n }\n });\n if (!movedColumns.length) {\n return;\n }\n this.dispatchColumnMovedEvent({ movedColumns: movedColumns, source: source, finished: true });\n };\n ColumnModel.prototype.syncColumnWithStateItem = function (column, stateItem, defaultState, rowGroupIndexes, pivotIndexes, autoCol, source) {\n if (!column) {\n return;\n }\n var getValue = function (key1, key2) {\n var obj = { value1: undefined, value2: undefined };\n var calculated = false;\n if (stateItem) {\n if (stateItem[key1] !== undefined) {\n obj.value1 = stateItem[key1];\n calculated = true;\n }\n if (exists(key2) && stateItem[key2] !== undefined) {\n obj.value2 = stateItem[key2];\n calculated = true;\n }\n }\n if (!calculated && defaultState) {\n if (defaultState[key1] !== undefined) {\n obj.value1 = defaultState[key1];\n }\n if (exists(key2) && defaultState[key2] !== undefined) {\n obj.value2 = defaultState[key2];\n }\n }\n return obj;\n };\n // following ensures we are left with boolean true or false, eg converts (null, undefined, 0) all to true\n var hide = getValue('hide').value1;\n if (hide !== undefined) {\n column.setVisible(!hide, source);\n }\n // sets pinned to 'left' or 'right'\n var pinned = getValue('pinned').value1;\n if (pinned !== undefined) {\n column.setPinned(pinned);\n }\n // if width provided and valid, use it, otherwise stick with the old width\n var minColWidth = this.columnUtils.calculateColMinWidth(column.getColDef());\n // flex\n var flex = getValue('flex').value1;\n if (flex !== undefined) {\n column.setFlex(flex);\n }\n // width - we only set width if column is not flexing\n var noFlexThisCol = column.getFlex() <= 0;\n if (noFlexThisCol) {\n // both null and undefined means we skip, as it's not possible to 'clear' width (a column must have a width)\n var width = getValue('width').value1;\n if (width != null) {\n if (minColWidth != null && width >= minColWidth) {\n column.setActualWidth(width, source);\n }\n }\n }\n var sort = getValue('sort').value1;\n if (sort !== undefined) {\n if (sort === 'desc' || sort === 'asc') {\n column.setSort(sort, source);\n }\n else {\n column.setSort(undefined, source);\n }\n }\n var sortIndex = getValue('sortIndex').value1;\n if (sortIndex !== undefined) {\n column.setSortIndex(sortIndex);\n }\n // we do not do aggFunc, rowGroup or pivot for auto cols or secondary cols\n if (autoCol || !column.isPrimary()) {\n return;\n }\n var aggFunc = getValue('aggFunc').value1;\n if (aggFunc !== undefined) {\n if (typeof aggFunc === 'string') {\n column.setAggFunc(aggFunc);\n if (!column.isValueActive()) {\n column.setValueActive(true, source);\n this.valueColumns.push(column);\n }\n }\n else {\n if (exists(aggFunc)) {\n console.warn('AG Grid: stateItem.aggFunc must be a string. if using your own aggregation ' +\n 'functions, register the functions first before using them in get/set state. This is because it is ' +\n 'intended for the column state to be stored and retrieved as simple JSON.');\n }\n // Note: we do not call column.setAggFunc(null), so that next time we aggregate\n // by this column (eg drag the column to the agg section int he toolpanel) it will\n // default to the last aggregation function.\n if (column.isValueActive()) {\n column.setValueActive(false, source);\n removeFromArray(this.valueColumns, column);\n }\n }\n }\n var _a = getValue('rowGroup', 'rowGroupIndex'), rowGroup = _a.value1, rowGroupIndex = _a.value2;\n if (rowGroup !== undefined || rowGroupIndex !== undefined) {\n if (typeof rowGroupIndex === 'number' || rowGroup) {\n if (!column.isRowGroupActive()) {\n column.setRowGroupActive(true, source);\n this.rowGroupColumns.push(column);\n }\n if (rowGroupIndexes && typeof rowGroupIndex === 'number') {\n rowGroupIndexes[column.getId()] = rowGroupIndex;\n }\n }\n else {\n if (column.isRowGroupActive()) {\n column.setRowGroupActive(false, source);\n removeFromArray(this.rowGroupColumns, column);\n }\n }\n }\n var _b = getValue('pivot', 'pivotIndex'), pivot = _b.value1, pivotIndex = _b.value2;\n if (pivot !== undefined || pivotIndex !== undefined) {\n if (typeof pivotIndex === 'number' || pivot) {\n if (!column.isPivotActive()) {\n column.setPivotActive(true, source);\n this.pivotColumns.push(column);\n }\n if (pivotIndexes && typeof pivotIndex === 'number') {\n pivotIndexes[column.getId()] = pivotIndex;\n }\n }\n else {\n if (column.isPivotActive()) {\n column.setPivotActive(false, source);\n removeFromArray(this.pivotColumns, column);\n }\n }\n }\n };\n ColumnModel.prototype.getGridColumns = function (keys) {\n return this.getColumns(keys, this.getGridColumn.bind(this));\n };\n ColumnModel.prototype.getColumns = function (keys, columnLookupCallback) {\n var foundColumns = [];\n if (keys) {\n keys.forEach(function (key) {\n var column = columnLookupCallback(key);\n if (column) {\n foundColumns.push(column);\n }\n });\n }\n return foundColumns;\n };\n // used by growGroupPanel\n ColumnModel.prototype.getColumnWithValidation = function (key) {\n if (key == null) {\n return null;\n }\n var column = this.getGridColumn(key);\n if (!column) {\n console.warn('AG Grid: could not find column ' + key);\n }\n return column;\n };\n ColumnModel.prototype.getPrimaryColumn = function (key) {\n if (!this.primaryColumns) {\n return null;\n }\n return this.getColumn(key, this.primaryColumns, this.primaryColumnsMap);\n };\n ColumnModel.prototype.getGridColumn = function (key) {\n return this.getColumn(key, this.gridColumns, this.gridColumnsMap);\n };\n ColumnModel.prototype.lookupGridColumn = function (key) {\n return this.gridColumnsMap[key];\n };\n ColumnModel.prototype.getSecondaryColumn = function (key) {\n if (!this.secondaryColumns) {\n return null;\n }\n return this.getColumn(key, this.secondaryColumns, this.secondaryColumnsMap);\n };\n ColumnModel.prototype.getColumn = function (key, columnList, columnMap) {\n if (!key) {\n return null;\n }\n // most of the time this method gets called the key is a string, so we put this shortcut in\n // for performance reasons, to see if we can match for ID (it doesn't do auto columns, that's done below)\n if (typeof key == 'string' && columnMap[key]) {\n return columnMap[key];\n }\n for (var i = 0; i < columnList.length; i++) {\n if (this.columnsMatch(columnList[i], key)) {\n return columnList[i];\n }\n }\n return this.getAutoColumn(key);\n };\n ColumnModel.prototype.getSourceColumnsForGroupColumn = function (groupCol) {\n var sourceColumnId = groupCol.getColDef().showRowGroup;\n if (!sourceColumnId) {\n return null;\n }\n if (sourceColumnId === true) {\n return this.rowGroupColumns.slice(0);\n }\n var column = this.getPrimaryColumn(sourceColumnId);\n return column ? [column] : null;\n };\n ColumnModel.prototype.getAutoColumn = function (key) {\n var _this = this;\n if (!this.groupAutoColumns ||\n !exists(this.groupAutoColumns) ||\n missing(this.groupAutoColumns)) {\n return null;\n }\n return this.groupAutoColumns.find(function (groupCol) { return _this.columnsMatch(groupCol, key); }) || null;\n };\n ColumnModel.prototype.columnsMatch = function (column, key) {\n var columnMatches = column === key;\n var colDefMatches = column.getColDef() === key;\n var idMatches = column.getColId() == key;\n return columnMatches || colDefMatches || idMatches;\n };\n ColumnModel.prototype.getDisplayNameForColumn = function (column, location, includeAggFunc) {\n if (includeAggFunc === void 0) { includeAggFunc = false; }\n if (!column) {\n return null;\n }\n var headerName = this.getHeaderName(column.getColDef(), column, null, null, location);\n if (includeAggFunc) {\n return this.wrapHeaderNameWithAggFunc(column, headerName);\n }\n return headerName;\n };\n ColumnModel.prototype.getDisplayNameForProvidedColumnGroup = function (columnGroup, providedColumnGroup, location) {\n var colGroupDef = providedColumnGroup ? providedColumnGroup.getColGroupDef() : null;\n if (colGroupDef) {\n return this.getHeaderName(colGroupDef, null, columnGroup, providedColumnGroup, location);\n }\n return null;\n };\n ColumnModel.prototype.getDisplayNameForColumnGroup = function (columnGroup, location) {\n return this.getDisplayNameForProvidedColumnGroup(columnGroup, columnGroup.getProvidedColumnGroup(), location);\n };\n // location is where the column is going to appear, ie who is calling us\n ColumnModel.prototype.getHeaderName = function (colDef, column, columnGroup, providedColumnGroup, location) {\n var headerValueGetter = colDef.headerValueGetter;\n if (headerValueGetter) {\n var params = {\n colDef: colDef,\n column: column,\n columnGroup: columnGroup,\n providedColumnGroup: providedColumnGroup,\n location: location,\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context\n };\n if (typeof headerValueGetter === 'function') {\n // valueGetter is a function, so just call it\n return headerValueGetter(params);\n }\n else if (typeof headerValueGetter === 'string') {\n // valueGetter is an expression, so execute the expression\n return this.expressionService.evaluate(headerValueGetter, params);\n }\n console.warn('AG Grid: headerValueGetter must be a function or a string');\n return '';\n }\n else if (colDef.headerName != null) {\n return colDef.headerName;\n }\n else if (colDef.field) {\n return camelCaseToHumanText(colDef.field);\n }\n return '';\n };\n ColumnModel.prototype.wrapHeaderNameWithAggFunc = function (column, headerName) {\n if (this.gridOptionsService.is('suppressAggFuncInHeader')) {\n return headerName;\n }\n // only columns with aggregation active can have aggregations\n var pivotValueColumn = column.getColDef().pivotValueColumn;\n var pivotActiveOnThisColumn = exists(pivotValueColumn);\n var aggFunc = null;\n var aggFuncFound;\n // otherwise we have a measure that is active, and we are doing aggregation on it\n if (pivotActiveOnThisColumn) {\n var isCollapsedHeaderEnabled = this.gridOptionsService.is('removePivotHeaderRowWhenSingleValueColumn') && this.valueColumns.length === 1;\n var isTotalColumn = column.getColDef().pivotTotalColumnIds !== undefined;\n if (isCollapsedHeaderEnabled && !isTotalColumn) {\n return headerName; // Skip decorating the header - in this case the label is the pivot key, not the value col\n }\n aggFunc = pivotValueColumn ? pivotValueColumn.getAggFunc() : null;\n aggFuncFound = true;\n }\n else {\n var measureActive = column.isValueActive();\n var aggregationPresent = this.pivotMode || !this.isRowGroupEmpty();\n if (measureActive && aggregationPresent) {\n aggFunc = column.getAggFunc();\n aggFuncFound = true;\n }\n else {\n aggFuncFound = false;\n }\n }\n if (aggFuncFound) {\n var aggFuncString = (typeof aggFunc === 'string') ? aggFunc : 'func';\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n var aggFuncStringTranslated = localeTextFunc(aggFuncString, aggFuncString);\n return aggFuncStringTranslated + \"(\" + headerName + \")\";\n }\n return headerName;\n };\n // returns the group with matching colId and instanceId. If instanceId is missing,\n // matches only on the colId.\n ColumnModel.prototype.getColumnGroup = function (colId, partId) {\n if (!colId) {\n return null;\n }\n if (colId instanceof ColumnGroup) {\n return colId;\n }\n var allColumnGroups = this.getAllDisplayedTrees();\n var checkPartId = typeof partId === 'number';\n var result = null;\n this.columnUtils.depthFirstAllColumnTreeSearch(allColumnGroups, function (child) {\n if (child instanceof ColumnGroup) {\n var columnGroup = child;\n var matched = void 0;\n if (checkPartId) {\n matched = colId === columnGroup.getGroupId() && partId === columnGroup.getPartId();\n }\n else {\n matched = colId === columnGroup.getGroupId();\n }\n if (matched) {\n result = columnGroup;\n }\n }\n });\n return result;\n };\n ColumnModel.prototype.isReady = function () {\n return this.ready;\n };\n ColumnModel.prototype.extractValueColumns = function (source, oldPrimaryColumns) {\n this.valueColumns = this.extractColumns(oldPrimaryColumns, this.valueColumns, function (col, flag) { return col.setValueActive(flag, source); }, \n // aggFunc doesn't have index variant, cos order of value cols doesn't matter, so always return null\n function () { return undefined; }, function () { return undefined; }, \n // aggFunc is a string, so return it's existence\n function (colDef) {\n var aggFunc = colDef.aggFunc;\n // null or empty string means clear\n if (aggFunc === null || aggFunc === '') {\n return null;\n }\n if (aggFunc === undefined) {\n return;\n }\n return !!aggFunc;\n }, function (colDef) {\n // return false if any of the following: null, undefined, empty string\n return colDef.initialAggFunc != null && colDef.initialAggFunc != '';\n });\n // all new columns added will have aggFunc missing, so set it to what is in the colDef\n this.valueColumns.forEach(function (col) {\n var colDef = col.getColDef();\n // if aggFunc provided, we always override, as reactive property\n if (colDef.aggFunc != null && colDef.aggFunc != '') {\n col.setAggFunc(colDef.aggFunc);\n }\n else {\n // otherwise we use initialAggFunc only if no agg func set - which happens when new column only\n if (!col.getAggFunc()) {\n col.setAggFunc(colDef.initialAggFunc);\n }\n }\n });\n };\n ColumnModel.prototype.extractRowGroupColumns = function (source, oldPrimaryColumns) {\n this.rowGroupColumns = this.extractColumns(oldPrimaryColumns, this.rowGroupColumns, function (col, flag) { return col.setRowGroupActive(flag, source); }, function (colDef) { return colDef.rowGroupIndex; }, function (colDef) { return colDef.initialRowGroupIndex; }, function (colDef) { return colDef.rowGroup; }, function (colDef) { return colDef.initialRowGroup; });\n };\n ColumnModel.prototype.extractColumns = function (oldPrimaryColumns, previousCols, setFlagFunc, getIndexFunc, getInitialIndexFunc, getValueFunc, getInitialValueFunc) {\n if (oldPrimaryColumns === void 0) { oldPrimaryColumns = []; }\n if (previousCols === void 0) { previousCols = []; }\n var colsWithIndex = [];\n var colsWithValue = [];\n // go though all cols.\n // if value, change\n // if default only, change only if new\n (this.primaryColumns || []).forEach(function (col) {\n var colIsNew = oldPrimaryColumns.indexOf(col) < 0;\n var colDef = col.getColDef();\n var value = attrToBoolean(getValueFunc(colDef));\n var initialValue = attrToBoolean(getInitialValueFunc(colDef));\n var index = attrToNumber(getIndexFunc(colDef));\n var initialIndex = attrToNumber(getInitialIndexFunc(colDef));\n var include;\n var valuePresent = value !== undefined;\n var indexPresent = index !== undefined;\n var initialValuePresent = initialValue !== undefined;\n var initialIndexPresent = initialIndex !== undefined;\n if (valuePresent) {\n include = value; // boolean value is guaranteed as attrToBoolean() is used above\n }\n else if (indexPresent) {\n if (index === null) {\n // if col is new we don't want to use the default / initial if index is set to null. Similarly,\n // we don't want to include the property for existing columns, i.e. we want to 'clear' it.\n include = false;\n }\n else {\n // note that 'null >= 0' evaluates to true which means 'rowGroupIndex = null' would enable row\n // grouping if the null check didn't exist above.\n include = index >= 0;\n }\n }\n else {\n if (colIsNew) {\n // as no value or index is 'present' we use the default / initial when col is new\n if (initialValuePresent) {\n include = initialValue;\n }\n else if (initialIndexPresent) {\n include = initialIndex != null && initialIndex >= 0;\n }\n else {\n include = false;\n }\n }\n else {\n // otherwise include it if included last time, e.g. if we are extracting row group cols and this col\n // is an existing row group col (i.e. it exists in 'previousCols') then we should include it.\n include = previousCols.indexOf(col) >= 0;\n }\n }\n if (include) {\n var useIndex = colIsNew ? (index != null || initialIndex != null) : index != null;\n useIndex ? colsWithIndex.push(col) : colsWithValue.push(col);\n }\n });\n var getIndexForCol = function (col) {\n var index = getIndexFunc(col.getColDef());\n var defaultIndex = getInitialIndexFunc(col.getColDef());\n return index != null ? index : defaultIndex;\n };\n // sort cols with index, and add these first\n colsWithIndex.sort(function (colA, colB) {\n var indexA = getIndexForCol(colA);\n var indexB = getIndexForCol(colB);\n if (indexA === indexB) {\n return 0;\n }\n if (indexA < indexB) {\n return -1;\n }\n return 1;\n });\n var res = [].concat(colsWithIndex);\n // second add columns that were there before and in the same order as they were before,\n // so we are preserving order of current grouping of columns that simply have rowGroup=true\n previousCols.forEach(function (col) {\n if (colsWithValue.indexOf(col) >= 0) {\n res.push(col);\n }\n });\n // lastly put in all remaining cols\n colsWithValue.forEach(function (col) {\n if (res.indexOf(col) < 0) {\n res.push(col);\n }\n });\n // set flag=false for removed cols\n previousCols.forEach(function (col) {\n if (res.indexOf(col) < 0) {\n setFlagFunc(col, false);\n }\n });\n // set flag=true for newly added cols\n res.forEach(function (col) {\n if (previousCols.indexOf(col) < 0) {\n setFlagFunc(col, true);\n }\n });\n return res;\n };\n ColumnModel.prototype.extractPivotColumns = function (source, oldPrimaryColumns) {\n this.pivotColumns = this.extractColumns(oldPrimaryColumns, this.pivotColumns, function (col, flag) { return col.setPivotActive(flag, source); }, function (colDef) { return colDef.pivotIndex; }, function (colDef) { return colDef.initialPivotIndex; }, function (colDef) { return colDef.pivot; }, function (colDef) { return colDef.initialPivot; });\n };\n ColumnModel.prototype.resetColumnGroupState = function (source) {\n if (source === void 0) { source = \"api\"; }\n var stateItems = [];\n this.columnUtils.depthFirstOriginalTreeSearch(null, this.primaryColumnTree, function (child) {\n if (child instanceof ProvidedColumnGroup) {\n var colGroupDef = child.getColGroupDef();\n var groupState = {\n groupId: child.getGroupId(),\n open: !colGroupDef ? undefined : colGroupDef.openByDefault\n };\n stateItems.push(groupState);\n }\n });\n this.setColumnGroupState(stateItems, source);\n };\n ColumnModel.prototype.getColumnGroupState = function () {\n var columnGroupState = [];\n this.columnUtils.depthFirstOriginalTreeSearch(null, this.gridBalancedTree, function (node) {\n if (node instanceof ProvidedColumnGroup) {\n columnGroupState.push({\n groupId: node.getGroupId(),\n open: node.isExpanded()\n });\n }\n });\n return columnGroupState;\n };\n ColumnModel.prototype.setColumnGroupState = function (stateItems, source) {\n var _this = this;\n if (source === void 0) { source = \"api\"; }\n this.columnAnimationService.start();\n var impactedGroups = [];\n stateItems.forEach(function (stateItem) {\n var groupKey = stateItem.groupId;\n var newValue = stateItem.open;\n var providedColumnGroup = _this.getProvidedColumnGroup(groupKey);\n if (!providedColumnGroup) {\n return;\n }\n if (providedColumnGroup.isExpanded() === newValue) {\n return;\n }\n _this.logger.log('columnGroupOpened(' + providedColumnGroup.getGroupId() + ',' + newValue + ')');\n providedColumnGroup.setExpanded(newValue);\n impactedGroups.push(providedColumnGroup);\n });\n this.updateGroupsAndDisplayedColumns(source);\n this.setFirstRightAndLastLeftPinned(source);\n impactedGroups.forEach(function (providedColumnGroup) {\n var event = {\n type: Events.EVENT_COLUMN_GROUP_OPENED,\n columnGroup: providedColumnGroup\n };\n _this.eventService.dispatchEvent(event);\n });\n this.columnAnimationService.finish();\n };\n // called by headerRenderer - when a header is opened or closed\n ColumnModel.prototype.setColumnGroupOpened = function (key, newValue, source) {\n if (source === void 0) { source = \"api\"; }\n var keyAsString;\n if (key instanceof ProvidedColumnGroup) {\n keyAsString = key.getId();\n }\n else {\n keyAsString = key || '';\n }\n this.setColumnGroupState([{ groupId: keyAsString, open: newValue }], source);\n };\n ColumnModel.prototype.getProvidedColumnGroup = function (key) {\n // if (key instanceof ProvidedColumnGroup) { return key; }\n if (typeof key !== 'string') {\n console.error('AG Grid: group key must be a string');\n }\n // otherwise, search for the column group by id\n var res = null;\n this.columnUtils.depthFirstOriginalTreeSearch(null, this.gridBalancedTree, function (node) {\n if (node instanceof ProvidedColumnGroup) {\n if (node.getId() === key) {\n res = node;\n }\n }\n });\n return res;\n };\n ColumnModel.prototype.calculateColumnsForDisplay = function () {\n var _this = this;\n var columnsForDisplay;\n if (this.pivotMode && missing(this.secondaryColumns)) {\n // pivot mode is on, but we are not pivoting, so we only\n // show columns we are aggregating on\n columnsForDisplay = this.gridColumns.filter(function (column) {\n var isAutoGroupCol = _this.groupAutoColumns && includes(_this.groupAutoColumns, column);\n var isValueCol = _this.valueColumns && includes(_this.valueColumns, column);\n return isAutoGroupCol || isValueCol;\n });\n }\n else {\n // otherwise continue as normal. this can be working on the primary\n // or secondary columns, whatever the gridColumns are set to\n columnsForDisplay = this.gridColumns.filter(function (column) {\n // keep col if a) it's auto-group or b) it's visible\n var isAutoGroupCol = _this.groupAutoColumns && includes(_this.groupAutoColumns, column);\n return isAutoGroupCol || column.isVisible();\n });\n }\n return columnsForDisplay;\n };\n ColumnModel.prototype.checkColSpanActiveInCols = function (columns) {\n var result = false;\n columns.forEach(function (col) {\n if (exists(col.getColDef().colSpan)) {\n result = true;\n }\n });\n return result;\n };\n ColumnModel.prototype.calculateColumnsForGroupDisplay = function () {\n var _this = this;\n this.groupDisplayColumns = [];\n this.groupDisplayColumnsMap = {};\n var checkFunc = function (col) {\n var colDef = col.getColDef();\n var underlyingColumn = colDef.showRowGroup;\n if (colDef && exists(underlyingColumn)) {\n _this.groupDisplayColumns.push(col);\n if (typeof underlyingColumn === 'string') {\n _this.groupDisplayColumnsMap[underlyingColumn] = col;\n }\n else if (underlyingColumn === true) {\n _this.getRowGroupColumns().forEach(function (rowGroupCol) {\n _this.groupDisplayColumnsMap[rowGroupCol.getId()] = col;\n });\n }\n }\n };\n this.gridColumns.forEach(checkFunc);\n };\n ColumnModel.prototype.getGroupDisplayColumns = function () {\n return this.groupDisplayColumns;\n };\n ColumnModel.prototype.getGroupDisplayColumnForGroup = function (rowGroupColumnId) {\n return this.groupDisplayColumnsMap[rowGroupColumnId];\n };\n ColumnModel.prototype.updateDisplayedColumns = function (source) {\n var columnsForDisplay = this.calculateColumnsForDisplay();\n this.buildDisplayedTrees(columnsForDisplay);\n // also called when group opened/closed\n this.updateGroupsAndDisplayedColumns(source);\n // also called when group opened/closed\n this.setFirstRightAndLastLeftPinned(source);\n };\n ColumnModel.prototype.isSecondaryColumnsPresent = function () {\n return exists(this.secondaryColumns);\n };\n ColumnModel.prototype.setSecondaryColumns = function (colDefs, source) {\n var _this = this;\n if (source === void 0) { source = \"api\"; }\n var newColsPresent = colDefs && colDefs.length > 0;\n // if not cols passed, and we had no cols anyway, then do nothing\n if (!newColsPresent && missing(this.secondaryColumns)) {\n return;\n }\n if (newColsPresent) {\n this.processSecondaryColumnDefinitions(colDefs);\n var balancedTreeResult = this.columnFactory.createColumnTree(colDefs, false, this.secondaryBalancedTree || this.previousSecondaryColumns || undefined);\n this.destroyOldColumns(this.secondaryBalancedTree, balancedTreeResult.columnTree);\n this.secondaryBalancedTree = balancedTreeResult.columnTree;\n this.secondaryHeaderRowCount = balancedTreeResult.treeDept + 1;\n this.secondaryColumns = this.getColumnsFromTree(this.secondaryBalancedTree);\n this.secondaryColumnsMap = {};\n this.secondaryColumns.forEach(function (col) { return _this.secondaryColumnsMap[col.getId()] = col; });\n this.previousSecondaryColumns = null;\n }\n else {\n this.previousSecondaryColumns = this.secondaryBalancedTree;\n this.secondaryBalancedTree = null;\n this.secondaryHeaderRowCount = -1;\n this.secondaryColumns = null;\n this.secondaryColumnsMap = {};\n }\n this.updateGridColumns();\n this.updateDisplayedColumns(source);\n };\n ColumnModel.prototype.processSecondaryColumnDefinitions = function (colDefs) {\n var columnCallback = this.gridOptionsService.get('processPivotResultColDef') || this.gridOptionsService.get('processSecondaryColDef');\n var groupCallback = this.gridOptionsService.get('processPivotResultColGroupDef') || this.gridOptionsService.get('processSecondaryColGroupDef');\n if (!columnCallback && !groupCallback) {\n return undefined;\n }\n var searchForColDefs = function (colDefs2) {\n colDefs2.forEach(function (abstractColDef) {\n var isGroup = exists(abstractColDef.children);\n if (isGroup) {\n var colGroupDef = abstractColDef;\n if (groupCallback) {\n groupCallback(colGroupDef);\n }\n searchForColDefs(colGroupDef.children);\n }\n else {\n var colDef = abstractColDef;\n if (columnCallback) {\n columnCallback(colDef);\n }\n }\n });\n };\n if (colDefs) {\n searchForColDefs(colDefs);\n }\n };\n // called from: applyColumnState, setColumnDefs, setSecondaryColumns\n ColumnModel.prototype.updateGridColumns = function () {\n var _this = this;\n var prevGridCols = this.gridBalancedTree;\n if (this.gridColsArePrimary) {\n this.lastPrimaryOrder = this.gridColumns;\n }\n else {\n this.lastSecondaryOrder = this.gridColumns;\n }\n var sortOrderToRecover;\n if (this.secondaryColumns && this.secondaryBalancedTree) {\n var hasSameColumns = this.secondaryColumns.every(function (col) {\n return _this.gridColumnsMap[col.getColId()] !== undefined;\n });\n this.gridBalancedTree = this.secondaryBalancedTree.slice();\n this.gridHeaderRowCount = this.secondaryHeaderRowCount;\n this.gridColumns = this.secondaryColumns.slice();\n this.gridColsArePrimary = false;\n // If the current columns are the same or a subset of the previous\n // we keep the previous order, otherwise we go back to the order the pivot\n // cols are generated in\n if (hasSameColumns) {\n sortOrderToRecover = this.lastSecondaryOrder;\n }\n }\n else if (this.primaryColumns) {\n this.gridBalancedTree = this.primaryColumnTree.slice();\n this.gridHeaderRowCount = this.primaryHeaderRowCount;\n this.gridColumns = this.primaryColumns.slice();\n this.gridColsArePrimary = true;\n // updateGridColumns gets called after user adds a row group. we want to maintain the order of the columns\n // when this happens (eg if user moved a column) rather than revert back to the original column order.\n // likewise if changing in/out of pivot mode, we want to maintain the order of the cols\n sortOrderToRecover = this.lastPrimaryOrder;\n }\n // create the new auto columns\n var areAutoColsChanged = this.createGroupAutoColumnsIfNeeded();\n // if auto group cols have changed, and we have a sort order, we need to move auto cols to the start\n if (areAutoColsChanged && sortOrderToRecover) {\n var groupAutoColsMap_1 = convertToMap(this.groupAutoColumns.map(function (col) { return [col, true]; }));\n // if group columns has changed, we don't preserve the group column order, so remove them from the old order\n sortOrderToRecover = sortOrderToRecover.filter(function (col) { return !groupAutoColsMap_1.has(col); });\n // and add them to the start of the order\n sortOrderToRecover = __spreadArray$l(__spreadArray$l([], __read$s(this.groupAutoColumns)), __read$s(sortOrderToRecover));\n }\n this.addAutoGroupToGridColumns();\n this.orderGridColsLike(sortOrderToRecover);\n this.gridColumns = this.placeLockedColumns(this.gridColumns);\n this.calculateColumnsForGroupDisplay();\n this.refreshQuickFilterColumns();\n this.clearDisplayedAndViewportColumns();\n this.colSpanActive = this.checkColSpanActiveInCols(this.gridColumns);\n this.gridColumnsMap = {};\n this.gridColumns.forEach(function (col) { return _this.gridColumnsMap[col.getId()] = col; });\n this.setAutoHeightActive();\n if (!areEqual(prevGridCols, this.gridBalancedTree)) {\n var event_4 = {\n type: Events.EVENT_GRID_COLUMNS_CHANGED\n };\n this.eventService.dispatchEvent(event_4);\n }\n };\n ColumnModel.prototype.setAutoHeightActive = function () {\n this.autoHeightActive = this.gridColumns.filter(function (col) { return col.isAutoHeight(); }).length > 0;\n if (this.autoHeightActive) {\n this.autoHeightActiveAtLeastOnce = true;\n var supportedRowModel = this.gridOptionsService.isRowModelType('clientSide') || this.gridOptionsService.isRowModelType('serverSide');\n if (!supportedRowModel) {\n var message_1 = 'AG Grid - autoHeight columns only work with Client Side Row Model and Server Side Row Model.';\n doOnce(function () { return console.warn(message_1); }, 'autoHeightActive.wrongRowModel');\n }\n }\n };\n ColumnModel.prototype.orderGridColsLike = function (colsOrder) {\n if (missing(colsOrder)) {\n return;\n }\n var lastOrderMapped = convertToMap(colsOrder.map(function (col, index) { return [col, index]; }));\n // only do the sort if at least one column is accounted for. columns will be not accounted for\n // if changing from secondary to primary columns\n var noColsFound = true;\n this.gridColumns.forEach(function (col) {\n if (lastOrderMapped.has(col)) {\n noColsFound = false;\n }\n });\n if (noColsFound) {\n return;\n }\n // order cols in the same order as before. we need to make sure that all\n // cols still exists, so filter out any that no longer exist.\n var gridColsMap = convertToMap(this.gridColumns.map(function (col) { return [col, true]; }));\n var oldColsOrdered = colsOrder.filter(function (col) { return gridColsMap.has(col); });\n var oldColsMap = convertToMap(oldColsOrdered.map(function (col) { return [col, true]; }));\n var newColsOrdered = this.gridColumns.filter(function (col) { return !oldColsMap.has(col); });\n // add in the new columns, at the end (if no group), or at the end of the group (if a group)\n var newGridColumns = oldColsOrdered.slice();\n newColsOrdered.forEach(function (newCol) {\n var parent = newCol.getOriginalParent();\n // if no parent, means we are not grouping, so just add the column to the end\n if (!parent) {\n newGridColumns.push(newCol);\n return;\n }\n // find the group the column belongs to. if no siblings at the current level (eg col in group on it's\n // own) then go up one level and look for siblings there.\n var siblings = [];\n while (!siblings.length && parent) {\n var leafCols = parent.getLeafColumns();\n leafCols.forEach(function (leafCol) {\n var presentInNewGriColumns = newGridColumns.indexOf(leafCol) >= 0;\n var noYetInSiblings = siblings.indexOf(leafCol) < 0;\n if (presentInNewGriColumns && noYetInSiblings) {\n siblings.push(leafCol);\n }\n });\n parent = parent.getOriginalParent();\n }\n // if no siblings exist at any level, this means the col is in a group (or parent groups) on it's own\n if (!siblings.length) {\n newGridColumns.push(newCol);\n return;\n }\n // find index of last column in the group\n var indexes = siblings.map(function (col) { return newGridColumns.indexOf(col); });\n var lastIndex = Math.max.apply(Math, __spreadArray$l([], __read$s(indexes)));\n insertIntoArray(newGridColumns, newCol, lastIndex + 1);\n });\n this.gridColumns = newGridColumns;\n };\n ColumnModel.prototype.isPrimaryColumnGroupsPresent = function () {\n return this.primaryHeaderRowCount > 1;\n };\n // if we are using autoGroupCols, then they should be included for quick filter. this covers the\n // following scenarios:\n // a) user provides 'field' into autoGroupCol of normal grid, so now because a valid col to filter leafs on\n // b) using tree data and user depends on autoGroupCol for first col, and we also want to filter on this\n // (tree data is a bit different, as parent rows can be filtered on, unlike row grouping)\n ColumnModel.prototype.refreshQuickFilterColumns = function () {\n var _a;\n var columnsForQuickFilter = (_a = (this.isPivotMode() ? this.secondaryColumns : this.primaryColumns)) !== null && _a !== void 0 ? _a : [];\n if (this.groupAutoColumns) {\n columnsForQuickFilter = columnsForQuickFilter.concat(this.groupAutoColumns);\n }\n this.columnsForQuickFilter = this.gridOptionsService.is('includeHiddenColumnsInQuickFilter')\n ? columnsForQuickFilter\n : columnsForQuickFilter.filter(function (col) { return col.isVisible() || col.isRowGroupActive(); });\n };\n ColumnModel.prototype.placeLockedColumns = function (cols) {\n var left = [];\n var normal = [];\n var right = [];\n cols.forEach(function (col) {\n var position = col.getColDef().lockPosition;\n if (position === 'right') {\n right.push(col);\n }\n else if (position === 'left' || position === true) {\n left.push(col);\n }\n else {\n normal.push(col);\n }\n });\n return __spreadArray$l(__spreadArray$l(__spreadArray$l([], __read$s(left)), __read$s(normal)), __read$s(right));\n };\n ColumnModel.prototype.addAutoGroupToGridColumns = function () {\n if (missing(this.groupAutoColumns)) {\n this.destroyOldColumns(this.groupAutoColsBalancedTree);\n this.groupAutoColsBalancedTree = null;\n return;\n }\n this.gridColumns = this.groupAutoColumns ? this.groupAutoColumns.concat(this.gridColumns) : this.gridColumns;\n var newAutoColsTree = this.columnFactory.createForAutoGroups(this.groupAutoColumns, this.gridBalancedTree);\n this.destroyOldColumns(this.groupAutoColsBalancedTree, newAutoColsTree);\n this.groupAutoColsBalancedTree = newAutoColsTree;\n this.gridBalancedTree = newAutoColsTree.concat(this.gridBalancedTree);\n };\n // gets called after we copy down grid columns, to make sure any part of the gui\n // that tries to draw, eg the header, it will get empty lists of columns rather\n // than stale columns. for example, the header will received gridColumnsChanged\n // event, so will try and draw, but it will draw successfully when it acts on the\n // virtualColumnsChanged event\n ColumnModel.prototype.clearDisplayedAndViewportColumns = function () {\n this.viewportRowLeft = {};\n this.viewportRowRight = {};\n this.viewportRowCenter = {};\n this.displayedColumnsLeft = [];\n this.displayedColumnsRight = [];\n this.displayedColumnsCenter = [];\n this.displayedColumns = [];\n this.viewportColumns = [];\n this.headerViewportColumns = [];\n this.viewportColumnsHash = '';\n };\n ColumnModel.prototype.updateGroupsAndDisplayedColumns = function (source) {\n this.updateOpenClosedVisibilityInColumnGroups();\n this.deriveDisplayedColumns(source);\n this.refreshFlexedColumns();\n this.extractViewport();\n this.updateBodyWidths();\n // this event is picked up by the gui, headerRenderer and rowRenderer, to recalculate what columns to display\n var event = {\n type: Events.EVENT_DISPLAYED_COLUMNS_CHANGED\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnModel.prototype.deriveDisplayedColumns = function (source) {\n this.derivedDisplayedColumnsFromDisplayedTree(this.displayedTreeLeft, this.displayedColumnsLeft);\n this.derivedDisplayedColumnsFromDisplayedTree(this.displayedTreeCentre, this.displayedColumnsCenter);\n this.derivedDisplayedColumnsFromDisplayedTree(this.displayedTreeRight, this.displayedColumnsRight);\n this.joinDisplayedColumns();\n this.setLeftValues(source);\n this.displayedAutoHeightCols = this.displayedColumns.filter(function (col) { return col.isAutoHeight(); });\n };\n ColumnModel.prototype.isAutoRowHeightActive = function () {\n return this.autoHeightActive;\n };\n ColumnModel.prototype.wasAutoRowHeightEverActive = function () {\n return this.autoHeightActiveAtLeastOnce;\n };\n ColumnModel.prototype.joinDisplayedColumns = function () {\n if (this.gridOptionsService.is('enableRtl')) {\n this.displayedColumns = this.displayedColumnsRight\n .concat(this.displayedColumnsCenter)\n .concat(this.displayedColumnsLeft);\n }\n else {\n this.displayedColumns = this.displayedColumnsLeft\n .concat(this.displayedColumnsCenter)\n .concat(this.displayedColumnsRight);\n }\n };\n // sets the left pixel position of each column\n ColumnModel.prototype.setLeftValues = function (source) {\n this.setLeftValuesOfColumns(source);\n this.setLeftValuesOfGroups();\n };\n ColumnModel.prototype.setLeftValuesOfColumns = function (source) {\n var _this = this;\n if (!this.primaryColumns) {\n return;\n }\n // go through each list of displayed columns\n var allColumns = this.primaryColumns.slice(0);\n // let totalColumnWidth = this.getWidthOfColsInList()\n var doingRtl = this.gridOptionsService.is('enableRtl');\n [\n this.displayedColumnsLeft,\n this.displayedColumnsRight,\n this.displayedColumnsCenter\n ].forEach(function (columns) {\n if (doingRtl) {\n // when doing RTL, we start at the top most pixel (ie RHS) and work backwards\n var left_1 = _this.getWidthOfColsInList(columns);\n columns.forEach(function (column) {\n left_1 -= column.getActualWidth();\n column.setLeft(left_1, source);\n });\n }\n else {\n // otherwise normal LTR, we start at zero\n var left_2 = 0;\n columns.forEach(function (column) {\n column.setLeft(left_2, source);\n left_2 += column.getActualWidth();\n });\n }\n removeAllFromUnorderedArray(allColumns, columns);\n });\n // items left in allColumns are columns not displayed, so remove the left position. this is\n // important for the rows, as if a col is made visible, then taken out, then made visible again,\n // we don't want the animation of the cell floating in from the old position, whatever that was.\n allColumns.forEach(function (column) {\n column.setLeft(null, source);\n });\n };\n ColumnModel.prototype.setLeftValuesOfGroups = function () {\n // a groups left value is the lest left value of it's children\n [\n this.displayedTreeLeft,\n this.displayedTreeRight,\n this.displayedTreeCentre\n ].forEach(function (columns) {\n columns.forEach(function (column) {\n if (column instanceof ColumnGroup) {\n var columnGroup = column;\n columnGroup.checkLeft();\n }\n });\n });\n };\n ColumnModel.prototype.derivedDisplayedColumnsFromDisplayedTree = function (tree, columns) {\n columns.length = 0;\n this.columnUtils.depthFirstDisplayedColumnTreeSearch(tree, function (child) {\n if (child instanceof Column) {\n columns.push(child);\n }\n });\n };\n ColumnModel.prototype.extractViewportColumns = function () {\n if (this.suppressColumnVirtualisation) {\n // no virtualisation, so don't filter\n this.viewportColumnsCenter = this.displayedColumnsCenter;\n this.headerViewportColumnsCenter = this.displayedColumnsCenter;\n }\n else {\n // filter out what should be visible\n this.viewportColumnsCenter = this.displayedColumnsCenter.filter(this.isColumnInRowViewport.bind(this));\n this.headerViewportColumnsCenter = this.displayedColumnsCenter.filter(this.isColumnInHeaderViewport.bind(this));\n }\n this.viewportColumns = this.viewportColumnsCenter\n .concat(this.displayedColumnsLeft)\n .concat(this.displayedColumnsRight);\n this.headerViewportColumns = this.headerViewportColumnsCenter\n .concat(this.displayedColumnsLeft)\n .concat(this.displayedColumnsRight);\n };\n ColumnModel.prototype.getVirtualHeaderGroupRow = function (type, dept) {\n var result;\n switch (type) {\n case 'left':\n result = this.viewportRowLeft[dept];\n break;\n case 'right':\n result = this.viewportRowRight[dept];\n break;\n default:\n result = this.viewportRowCenter[dept];\n break;\n }\n if (missing(result)) {\n result = [];\n }\n return result;\n };\n ColumnModel.prototype.calculateHeaderRows = function () {\n // go through each group, see if any of it's cols are displayed, and if yes,\n // then this group is included\n this.viewportRowLeft = {};\n this.viewportRowRight = {};\n this.viewportRowCenter = {};\n // for easy lookup when building the groups.\n var virtualColIds = {};\n this.headerViewportColumns.forEach(function (col) { return virtualColIds[col.getId()] = true; });\n var testGroup = function (children, result, dept) {\n var returnValue = false;\n for (var i = 0; i < children.length; i++) {\n // see if this item is within viewport\n var child = children[i];\n var addThisItem = false;\n if (child instanceof Column) {\n // for column, test if column is included\n addThisItem = virtualColIds[child.getId()] === true;\n }\n else {\n // if group, base decision on children\n var columnGroup = child;\n var displayedChildren = columnGroup.getDisplayedChildren();\n if (displayedChildren) {\n addThisItem = testGroup(displayedChildren, result, dept + 1);\n }\n }\n if (addThisItem) {\n returnValue = true;\n if (!result[dept]) {\n result[dept] = [];\n }\n result[dept].push(child);\n }\n }\n return returnValue;\n };\n testGroup(this.displayedTreeLeft, this.viewportRowLeft, 0);\n testGroup(this.displayedTreeRight, this.viewportRowRight, 0);\n testGroup(this.displayedTreeCentre, this.viewportRowCenter, 0);\n };\n ColumnModel.prototype.extractViewport = function () {\n var hashColumn = function (c) { return c.getId() + \"-\" + (c.getPinned() || 'normal'); };\n this.extractViewportColumns();\n var newHash = this.viewportColumns.map(hashColumn).join('#');\n var changed = this.viewportColumnsHash !== newHash;\n if (changed) {\n this.viewportColumnsHash = newHash;\n this.calculateHeaderRows();\n }\n return changed;\n };\n ColumnModel.prototype.refreshFlexedColumns = function (params) {\n var _a;\n if (params === void 0) { params = {}; }\n var source = params.source ? params.source : 'flex';\n if (params.viewportWidth != null) {\n this.flexViewportWidth = params.viewportWidth;\n }\n if (!this.flexViewportWidth) {\n return [];\n }\n // If the grid has left-over space, divide it between flexing columns in proportion to their flex value.\n // A \"flexing column\" is one that has a 'flex' value set and is not currently being constrained by its\n // minWidth or maxWidth rules.\n var flexAfterDisplayIndex = -1;\n if (params.resizingCols) {\n var allResizingCols = new Set(params.resizingCols);\n // find the last resizing col, as only cols after this one are affected by the resizing\n var displayedCols = this.displayedColumnsCenter;\n for (var i = displayedCols.length - 1; i >= 0; i--) {\n if (allResizingCols.has(displayedCols[i])) {\n flexAfterDisplayIndex = i;\n break;\n }\n }\n }\n // the width of all of the columns for which the width has been determined\n var knownColumnsWidth = 0;\n var flexingColumns = [];\n // store the minimum width of all the flex columns, so we can determine if flex is even possible more quickly\n var minimumFlexedWidth = 0;\n var totalFlex = 0;\n for (var i = 0; i < this.displayedColumnsCenter.length; i++) {\n var isFlex = this.displayedColumnsCenter[i].getFlex() && i > flexAfterDisplayIndex;\n if (isFlex) {\n flexingColumns.push(this.displayedColumnsCenter[i]);\n totalFlex += this.displayedColumnsCenter[i].getFlex();\n minimumFlexedWidth += (_a = this.displayedColumnsCenter[i].getMinWidth()) !== null && _a !== void 0 ? _a : 0;\n }\n else {\n knownColumnsWidth += this.displayedColumnsCenter[i].getActualWidth();\n }\n }\n if (!flexingColumns.length) {\n return [];\n }\n var changedColumns = [];\n // this is for performance to prevent trying to flex when unnecessary\n if (knownColumnsWidth + minimumFlexedWidth > this.flexViewportWidth) {\n // known columns and the minimum width of all the flex cols are too wide for viewport\n // so don't flex\n flexingColumns.forEach(function (col) { var _a; return col.setActualWidth((_a = col.getMinWidth()) !== null && _a !== void 0 ? _a : 0, source); });\n // No columns should flex, but all have been changed. Swap arrays so events fire properly.\n // Expensive logic won't execute as flex columns is empty.\n changedColumns = flexingColumns;\n flexingColumns = [];\n }\n var flexingColumnSizes = [];\n var spaceForFlexingColumns;\n outer: while (true) {\n spaceForFlexingColumns = this.flexViewportWidth - knownColumnsWidth;\n var spacePerFlex = spaceForFlexingColumns / totalFlex;\n for (var i = 0; i < flexingColumns.length; i++) {\n var col = flexingColumns[i];\n var widthByFlexRule = spacePerFlex * col.getFlex();\n var constrainedWidth = 0;\n var minWidth = col.getMinWidth();\n var maxWidth = col.getMaxWidth();\n if (exists(minWidth) && widthByFlexRule < minWidth) {\n constrainedWidth = minWidth;\n }\n else if (exists(maxWidth) && widthByFlexRule > maxWidth) {\n constrainedWidth = maxWidth;\n }\n if (constrainedWidth) {\n // This column is not in fact flexing as it is being constrained to a specific size\n // so remove it from the list of flexing columns and start again\n col.setActualWidth(constrainedWidth, source);\n removeFromUnorderedArray(flexingColumns, col);\n totalFlex -= col.getFlex();\n changedColumns.push(col);\n knownColumnsWidth += col.getActualWidth();\n continue outer;\n }\n flexingColumnSizes[i] = Math.round(widthByFlexRule);\n }\n break;\n }\n var remainingSpace = spaceForFlexingColumns;\n flexingColumns.forEach(function (col, i) {\n col.setActualWidth(Math.min(flexingColumnSizes[i], remainingSpace), source);\n changedColumns.push(col);\n remainingSpace -= flexingColumnSizes[i];\n });\n if (!params.skipSetLeft) {\n this.setLeftValues(source);\n }\n if (params.updateBodyWidths) {\n this.updateBodyWidths();\n }\n if (params.fireResizedEvent) {\n this.dispatchColumnResizedEvent(changedColumns, true, source, flexingColumns);\n }\n return flexingColumns;\n };\n // called from api\n ColumnModel.prototype.sizeColumnsToFit = function (gridWidth, source, silent, params) {\n var _this = this;\n var _a, _b, _c, _d, _e;\n if (source === void 0) { source = \"sizeColumnsToFit\"; }\n if (this.shouldQueueResizeOperations) {\n this.resizeOperationQueue.push(function () { return _this.sizeColumnsToFit(gridWidth, source, silent, params); });\n return;\n }\n var limitsMap = {};\n if (params) {\n (_a = params === null || params === void 0 ? void 0 : params.columnLimits) === null || _a === void 0 ? void 0 : _a.forEach(function (_a) {\n var key = _a.key, dimensions = __rest(_a, [\"key\"]);\n limitsMap[typeof key === 'string' ? key : key.getColId()] = dimensions;\n });\n }\n // avoid divide by zero\n var allDisplayedColumns = this.getAllDisplayedColumns();\n var doColumnsAlreadyFit = gridWidth === this.getWidthOfColsInList(allDisplayedColumns);\n if (gridWidth <= 0 || !allDisplayedColumns.length || doColumnsAlreadyFit) {\n return;\n }\n var colsToSpread = [];\n var colsToNotSpread = [];\n allDisplayedColumns.forEach(function (column) {\n if (column.getColDef().suppressSizeToFit === true) {\n colsToNotSpread.push(column);\n }\n else {\n colsToSpread.push(column);\n }\n });\n // make a copy of the cols that are going to be resized\n var colsToDispatchEventFor = colsToSpread.slice(0);\n var finishedResizing = false;\n var moveToNotSpread = function (column) {\n removeFromArray(colsToSpread, column);\n colsToNotSpread.push(column);\n };\n // resetting cols to their original width makes the sizeColumnsToFit more deterministic,\n // rather than depending on the current size of the columns. most users call sizeColumnsToFit\n // immediately after grid is created, so will make no difference. however if application is calling\n // sizeColumnsToFit repeatedly (eg after column group is opened / closed repeatedly) we don't want\n // the columns to start shrinking / growing over time.\n //\n // NOTE: the process below will assign values to `this.actualWidth` of each column without firing events\n // for this reason we need to manually dispatch resize events after the resize has been done for each column.\n colsToSpread.forEach(function (column) {\n var _a, _b;\n column.resetActualWidth(source);\n var widthOverride = limitsMap === null || limitsMap === void 0 ? void 0 : limitsMap[column.getId()];\n var minOverride = ((_a = widthOverride === null || widthOverride === void 0 ? void 0 : widthOverride.minWidth) !== null && _a !== void 0 ? _a : params === null || params === void 0 ? void 0 : params.defaultMinWidth);\n var maxOverride = ((_b = widthOverride === null || widthOverride === void 0 ? void 0 : widthOverride.maxWidth) !== null && _b !== void 0 ? _b : params === null || params === void 0 ? void 0 : params.defaultMaxWidth);\n var colWidth = column.getActualWidth();\n if (typeof minOverride === 'number' && colWidth < minOverride) {\n column.setActualWidth(minOverride, source, true);\n }\n else if (typeof maxOverride === 'number' && colWidth > maxOverride) {\n column.setActualWidth(maxOverride, source, true);\n }\n });\n while (!finishedResizing) {\n finishedResizing = true;\n var availablePixels = gridWidth - this.getWidthOfColsInList(colsToNotSpread);\n if (availablePixels <= 0) {\n // no width, set everything to minimum\n colsToSpread.forEach(function (column) {\n var _a, _b;\n var widthOverride = (_b = (_a = limitsMap === null || limitsMap === void 0 ? void 0 : limitsMap[column.getId()]) === null || _a === void 0 ? void 0 : _a.minWidth) !== null && _b !== void 0 ? _b : params === null || params === void 0 ? void 0 : params.defaultMinWidth;\n if (typeof widthOverride === 'number') {\n column.setActualWidth(widthOverride, source, true);\n return;\n }\n column.setMinimum(source);\n });\n }\n else {\n var scale = availablePixels / this.getWidthOfColsInList(colsToSpread);\n // we set the pixels for the last col based on what's left, as otherwise\n // we could be a pixel or two short or extra because of rounding errors.\n var pixelsForLastCol = availablePixels;\n // backwards through loop, as we are removing items as we go\n for (var i = colsToSpread.length - 1; i >= 0; i--) {\n var column = colsToSpread[i];\n var widthOverride = limitsMap === null || limitsMap === void 0 ? void 0 : limitsMap[column.getId()];\n var minOverride = ((_b = widthOverride === null || widthOverride === void 0 ? void 0 : widthOverride.minWidth) !== null && _b !== void 0 ? _b : params === null || params === void 0 ? void 0 : params.defaultMinWidth);\n var maxOverride = ((_c = widthOverride === null || widthOverride === void 0 ? void 0 : widthOverride.maxWidth) !== null && _c !== void 0 ? _c : params === null || params === void 0 ? void 0 : params.defaultMaxWidth);\n var colMinWidth = (_d = column.getMinWidth()) !== null && _d !== void 0 ? _d : 0;\n var colMaxWidth = (_e = column.getMaxWidth()) !== null && _e !== void 0 ? _e : Number.MAX_VALUE;\n var minWidth = typeof minOverride === 'number' && minOverride > colMinWidth ? minOverride : column.getMinWidth();\n var maxWidth = typeof maxOverride === 'number' && maxOverride < colMaxWidth ? maxOverride : column.getMaxWidth();\n var newWidth = Math.round(column.getActualWidth() * scale);\n if (exists(minWidth) && newWidth < minWidth) {\n newWidth = minWidth;\n moveToNotSpread(column);\n finishedResizing = false;\n }\n else if (exists(maxWidth) && newWidth > maxWidth) {\n newWidth = maxWidth;\n moveToNotSpread(column);\n finishedResizing = false;\n }\n else if (i === 0) { // if this is the last column\n newWidth = pixelsForLastCol;\n }\n column.setActualWidth(newWidth, source, true);\n pixelsForLastCol -= newWidth;\n }\n }\n }\n // see notes above\n colsToDispatchEventFor.forEach(function (col) {\n col.fireColumnWidthChangedEvent(source);\n });\n this.setLeftValues(source);\n this.updateBodyWidths();\n if (silent) {\n return;\n }\n this.dispatchColumnResizedEvent(colsToDispatchEventFor, true, source);\n };\n ColumnModel.prototype.buildDisplayedTrees = function (visibleColumns) {\n var leftVisibleColumns = [];\n var rightVisibleColumns = [];\n var centerVisibleColumns = [];\n visibleColumns.forEach(function (column) {\n switch (column.getPinned()) {\n case \"left\":\n leftVisibleColumns.push(column);\n break;\n case \"right\":\n rightVisibleColumns.push(column);\n break;\n default:\n centerVisibleColumns.push(column);\n break;\n }\n });\n var groupInstanceIdCreator = new GroupInstanceIdCreator();\n this.displayedTreeLeft = this.displayedGroupCreator.createDisplayedGroups(leftVisibleColumns, groupInstanceIdCreator, 'left', this.displayedTreeLeft);\n this.displayedTreeRight = this.displayedGroupCreator.createDisplayedGroups(rightVisibleColumns, groupInstanceIdCreator, 'right', this.displayedTreeRight);\n this.displayedTreeCentre = this.displayedGroupCreator.createDisplayedGroups(centerVisibleColumns, groupInstanceIdCreator, null, this.displayedTreeCentre);\n this.updateDisplayedMap();\n };\n ColumnModel.prototype.updateDisplayedMap = function () {\n var _this = this;\n this.displayedColumnsAndGroupsMap = {};\n var func = function (child) {\n _this.displayedColumnsAndGroupsMap[child.getUniqueId()] = child;\n };\n this.columnUtils.depthFirstAllColumnTreeSearch(this.displayedTreeCentre, func);\n this.columnUtils.depthFirstAllColumnTreeSearch(this.displayedTreeLeft, func);\n this.columnUtils.depthFirstAllColumnTreeSearch(this.displayedTreeRight, func);\n };\n ColumnModel.prototype.isDisplayed = function (item) {\n var fromMap = this.displayedColumnsAndGroupsMap[item.getUniqueId()];\n // check for reference, in case new column / group with same id is now present\n return fromMap === item;\n };\n ColumnModel.prototype.updateOpenClosedVisibilityInColumnGroups = function () {\n var allColumnGroups = this.getAllDisplayedTrees();\n this.columnUtils.depthFirstAllColumnTreeSearch(allColumnGroups, function (child) {\n if (child instanceof ColumnGroup) {\n child.calculateDisplayedColumns();\n }\n });\n };\n ColumnModel.prototype.getGroupAutoColumns = function () {\n return this.groupAutoColumns;\n };\n /**\n * Creates new auto group columns if required\n * @returns whether auto cols have changed\n */\n ColumnModel.prototype.createGroupAutoColumnsIfNeeded = function () {\n var forceRecreateAutoGroups = this.forceRecreateAutoGroups;\n this.forceRecreateAutoGroups = false;\n if (!this.autoGroupsNeedBuilding) {\n return false;\n }\n this.autoGroupsNeedBuilding = false;\n var groupFullWidthRow = this.gridOptionsService.isGroupUseEntireRow(this.pivotMode);\n // we need to allow suppressing auto-column separately for group and pivot as the normal situation\n // is CSRM and user provides group column themselves for normal view, but when they go into pivot the\n // columns are generated by the grid so no opportunity for user to provide group column. so need a way\n // to suppress auto-col for grouping only, and not pivot.\n // however if using Viewport RM or SSRM and user is providing the columns, the user may wish full control\n // of the group column in this instance.\n var suppressAutoColumn = this.pivotMode ?\n this.gridOptionsService.is('pivotSuppressAutoColumn') : this.isGroupSuppressAutoColumn();\n var groupingActive = this.rowGroupColumns.length > 0 || this.gridOptionsService.is('treeData');\n var needAutoColumns = groupingActive && !suppressAutoColumn && !groupFullWidthRow;\n if (needAutoColumns) {\n var newAutoGroupCols = this.autoGroupColService.createAutoGroupColumns(this.rowGroupColumns);\n var autoColsDifferent = !this.autoColsEqual(newAutoGroupCols, this.groupAutoColumns);\n // we force recreate so new group cols pick up the new\n // definitions. otherwise we could ignore the new cols because they appear to be the same.\n if (autoColsDifferent || forceRecreateAutoGroups) {\n this.groupAutoColumns = newAutoGroupCols;\n return true;\n }\n }\n else {\n this.groupAutoColumns = null;\n }\n return false;\n };\n ColumnModel.prototype.isGroupSuppressAutoColumn = function () {\n var groupDisplayType = this.gridOptionsService.get('groupDisplayType');\n var isCustomRowGroups = groupDisplayType ? matchesGroupDisplayType('custom', groupDisplayType) : false;\n if (isCustomRowGroups) {\n return true;\n }\n var treeDataDisplayType = this.gridOptionsService.get('treeDataDisplayType');\n return treeDataDisplayType ? matchesTreeDataDisplayType('custom', treeDataDisplayType) : false;\n };\n ColumnModel.prototype.autoColsEqual = function (colsA, colsB) {\n return areEqual(colsA, colsB, function (a, b) { return a.getColId() === b.getColId(); });\n };\n ColumnModel.prototype.getWidthOfColsInList = function (columnList) {\n return columnList.reduce(function (width, col) { return width + col.getActualWidth(); }, 0);\n };\n ColumnModel.prototype.getGridBalancedTree = function () {\n return this.gridBalancedTree;\n };\n ColumnModel.prototype.getFirstDisplayedColumn = function () {\n var isRtl = this.gridOptionsService.is('enableRtl');\n var queryOrder = [\n 'getDisplayedLeftColumns',\n 'getDisplayedCenterColumns',\n 'getDisplayedRightColumns'\n ];\n if (isRtl) {\n queryOrder.reverse();\n }\n for (var i = 0; i < queryOrder.length; i++) {\n var container = this[queryOrder[i]]();\n if (container.length) {\n return isRtl ? last(container) : container[0];\n }\n }\n return null;\n };\n ColumnModel.prototype.setColumnHeaderHeight = function (col, height) {\n var changed = col.setAutoHeaderHeight(height);\n if (changed) {\n var event_5 = {\n type: Events.EVENT_COLUMN_HEADER_HEIGHT_CHANGED,\n column: col,\n columns: [col],\n source: 'autosizeColumnHeaderHeight',\n };\n this.eventService.dispatchEvent(event_5);\n }\n };\n ColumnModel.prototype.getColumnGroupHeaderRowHeight = function () {\n if (this.isPivotMode()) {\n return this.getPivotGroupHeaderHeight();\n }\n return this.getGroupHeaderHeight();\n };\n ColumnModel.prototype.getColumnHeaderRowHeight = function () {\n var defaultHeight = (this.isPivotMode() ?\n this.getPivotHeaderHeight() :\n this.getHeaderHeight());\n var displayedHeights = this.getAllDisplayedColumns()\n .filter(function (col) { return col.isAutoHeaderHeight(); })\n .map(function (col) { return col.getAutoHeaderHeight() || 0; });\n return Math.max.apply(Math, __spreadArray$l([defaultHeight], __read$s(displayedHeights)));\n };\n ColumnModel.prototype.getHeaderHeight = function () {\n var _a;\n return (_a = this.gridOptionsService.getNum('headerHeight')) !== null && _a !== void 0 ? _a : this.environment.getFromTheme(25, 'headerHeight');\n };\n ColumnModel.prototype.getFloatingFiltersHeight = function () {\n var _a;\n return (_a = this.gridOptionsService.getNum('floatingFiltersHeight')) !== null && _a !== void 0 ? _a : this.getHeaderHeight();\n };\n ColumnModel.prototype.getGroupHeaderHeight = function () {\n var _a;\n return (_a = this.gridOptionsService.getNum('groupHeaderHeight')) !== null && _a !== void 0 ? _a : this.getHeaderHeight();\n };\n ColumnModel.prototype.getPivotHeaderHeight = function () {\n var _a;\n return (_a = this.gridOptionsService.getNum('pivotHeaderHeight')) !== null && _a !== void 0 ? _a : this.getHeaderHeight();\n };\n ColumnModel.prototype.getPivotGroupHeaderHeight = function () {\n var _a;\n return (_a = this.gridOptionsService.getNum('pivotGroupHeaderHeight')) !== null && _a !== void 0 ? _a : this.getGroupHeaderHeight();\n };\n ColumnModel.prototype.queueResizeOperations = function () {\n this.shouldQueueResizeOperations = true;\n };\n ColumnModel.prototype.processResizeOperations = function () {\n this.shouldQueueResizeOperations = false;\n this.resizeOperationQueue.forEach(function (resizeOperation) { return resizeOperation(); });\n this.resizeOperationQueue = [];\n };\n ColumnModel.prototype.resetColumnDefIntoColumn = function (column) {\n var userColDef = column.getUserProvidedColDef();\n if (!userColDef) {\n return false;\n }\n var newColDef = this.columnFactory.addColumnDefaultAndTypes(userColDef, column.getColId());\n column.setColDef(newColDef, userColDef);\n return true;\n };\n ColumnModel.prototype.generateColumnStateForRowGroupAndPivotIndexes = function (updatedRowGroupColumnState, updatedPivotColumnState) {\n // Generally columns should appear in the order they were before. For any new columns, these should appear in the original col def order.\n // The exception is for columns that were added via `addGroupColumns`. These should appear at the end.\n // We don't have to worry about full updates, as in this case the arrays are correct, and they won't appear in the updated lists.\n var _this = this;\n var existingColumnStateUpdates = {};\n var orderColumns = function (updatedColumnState, colList, enableProp, initialEnableProp, indexProp, initialIndexProp) {\n if (!colList.length || !_this.primaryColumns) {\n return [];\n }\n var updatedColIdArray = Object.keys(updatedColumnState);\n var updatedColIds = new Set(updatedColIdArray);\n var newColIds = new Set(updatedColIdArray);\n var allColIds = new Set(colList.map(function (column) {\n var colId = column.getColId();\n newColIds.delete(colId);\n return colId;\n }).concat(updatedColIdArray));\n var colIdsInOriginalOrder = [];\n var originalOrderMap = {};\n var orderIndex = 0;\n for (var i = 0; i < _this.primaryColumns.length; i++) {\n var colId = _this.primaryColumns[i].getColId();\n if (allColIds.has(colId)) {\n colIdsInOriginalOrder.push(colId);\n originalOrderMap[colId] = orderIndex++;\n }\n }\n // follow approach in `resetColumnState`\n var index = 1000;\n var hasAddedNewCols = false;\n var lastIndex = 0;\n var processPrecedingNewCols = function (colId) {\n var originalOrderIndex = originalOrderMap[colId];\n for (var i = lastIndex; i < originalOrderIndex; i++) {\n var newColId = colIdsInOriginalOrder[i];\n if (newColIds.has(newColId)) {\n updatedColumnState[newColId][indexProp] = index++;\n newColIds.delete(newColId);\n }\n }\n lastIndex = originalOrderIndex;\n };\n colList.forEach(function (column) {\n var colId = column.getColId();\n if (updatedColIds.has(colId)) {\n // New col already exists. Add any other new cols that should be before it.\n processPrecedingNewCols(colId);\n updatedColumnState[colId][indexProp] = index++;\n }\n else {\n var colDef = column.getColDef();\n var missingIndex = colDef[indexProp] === null || (colDef[indexProp] === undefined && colDef[initialIndexProp] == null);\n if (missingIndex) {\n if (!hasAddedNewCols) {\n var propEnabled = colDef[enableProp] || (colDef[enableProp] === undefined && colDef[initialEnableProp]);\n if (propEnabled) {\n processPrecedingNewCols(colId);\n }\n else {\n // Reached the first manually added column. Add all the new columns now.\n newColIds.forEach(function (newColId) {\n // Rather than increment the index, just use the original order index - doesn't need to be contiguous.\n updatedColumnState[newColId][indexProp] = index + originalOrderMap[newColId];\n });\n index += colIdsInOriginalOrder.length;\n hasAddedNewCols = true;\n }\n }\n if (!existingColumnStateUpdates[colId]) {\n existingColumnStateUpdates[colId] = { colId: colId };\n }\n existingColumnStateUpdates[colId][indexProp] = index++;\n }\n }\n });\n };\n orderColumns(updatedRowGroupColumnState, this.rowGroupColumns, 'rowGroup', 'initialRowGroup', 'rowGroupIndex', 'initialRowGroupIndex');\n orderColumns(updatedPivotColumnState, this.pivotColumns, 'pivot', 'initialPivot', 'pivotIndex', 'initialPivotIndex');\n return Object.values(existingColumnStateUpdates);\n };\n __decorate$2B([\n Autowired('expressionService')\n ], ColumnModel.prototype, \"expressionService\", void 0);\n __decorate$2B([\n Autowired('columnFactory')\n ], ColumnModel.prototype, \"columnFactory\", void 0);\n __decorate$2B([\n Autowired('displayedGroupCreator')\n ], ColumnModel.prototype, \"displayedGroupCreator\", void 0);\n __decorate$2B([\n Autowired('ctrlsService')\n ], ColumnModel.prototype, \"ctrlsService\", void 0);\n __decorate$2B([\n Autowired('autoWidthCalculator')\n ], ColumnModel.prototype, \"autoWidthCalculator\", void 0);\n __decorate$2B([\n Autowired('columnUtils')\n ], ColumnModel.prototype, \"columnUtils\", void 0);\n __decorate$2B([\n Autowired('columnAnimationService')\n ], ColumnModel.prototype, \"columnAnimationService\", void 0);\n __decorate$2B([\n Autowired('autoGroupColService')\n ], ColumnModel.prototype, \"autoGroupColService\", void 0);\n __decorate$2B([\n Optional('aggFuncService')\n ], ColumnModel.prototype, \"aggFuncService\", void 0);\n __decorate$2B([\n Optional('valueCache')\n ], ColumnModel.prototype, \"valueCache\", void 0);\n __decorate$2B([\n Optional('animationFrameService')\n ], ColumnModel.prototype, \"animationFrameService\", void 0);\n __decorate$2B([\n Autowired('sortController')\n ], ColumnModel.prototype, \"sortController\", void 0);\n __decorate$2B([\n Autowired('columnDefFactory')\n ], ColumnModel.prototype, \"columnDefFactory\", void 0);\n __decorate$2B([\n PostConstruct\n ], ColumnModel.prototype, \"init\", null);\n __decorate$2B([\n PreDestroy\n ], ColumnModel.prototype, \"destroyColumns\", null);\n __decorate$2B([\n __param$8(0, Qualifier('loggerFactory'))\n ], ColumnModel.prototype, \"setBeans\", null);\n ColumnModel = __decorate$2B([\n Bean('columnModel')\n ], ColumnModel);\n return ColumnModel;\n}(BeanStub));\n\nvar __extends$33 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// takes in a list of columns, as specified by the column definitions, and returns column groups\nvar ColumnUtils = /** @class */ (function (_super) {\n __extends$33(ColumnUtils, _super);\n function ColumnUtils() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ColumnUtils.prototype.calculateColMinWidth = function (colDef) {\n return colDef.minWidth != null ? colDef.minWidth : this.environment.getMinColWidth();\n };\n ColumnUtils.prototype.calculateColMaxWidth = function (colDef) {\n return colDef.maxWidth != null ? colDef.maxWidth : Number.MAX_SAFE_INTEGER;\n };\n ColumnUtils.prototype.calculateColInitialWidth = function (colDef) {\n var minColWidth = this.calculateColMinWidth(colDef);\n var maxColWidth = this.calculateColMaxWidth(colDef);\n var width;\n var colDefWidth = attrToNumber(colDef.width);\n var colDefInitialWidth = attrToNumber(colDef.initialWidth);\n if (colDefWidth != null) {\n width = colDefWidth;\n }\n else if (colDefInitialWidth != null) {\n width = colDefInitialWidth;\n }\n else {\n width = 200;\n }\n return Math.max(Math.min(width, maxColWidth), minColWidth);\n };\n ColumnUtils.prototype.getOriginalPathForColumn = function (column, originalBalancedTree) {\n var result = [];\n var found = false;\n var recursePath = function (balancedColumnTree, dept) {\n for (var i = 0; i < balancedColumnTree.length; i++) {\n if (found) {\n return;\n }\n // quit the search, so 'result' is kept with the found result\n var node = balancedColumnTree[i];\n if (node instanceof ProvidedColumnGroup) {\n var nextNode = node;\n recursePath(nextNode.getChildren(), dept + 1);\n result[dept] = node;\n }\n else if (node === column) {\n found = true;\n }\n }\n };\n recursePath(originalBalancedTree, 0);\n // we should always find the path, but in case there is a bug somewhere, returning null\n // will make it fail rather than provide a 'hard to track down' bug\n return found ? result : null;\n };\n ColumnUtils.prototype.depthFirstOriginalTreeSearch = function (parent, tree, callback) {\n var _this = this;\n if (!tree) {\n return;\n }\n tree.forEach(function (child) {\n if (child instanceof ProvidedColumnGroup) {\n _this.depthFirstOriginalTreeSearch(child, child.getChildren(), callback);\n }\n callback(child, parent);\n });\n };\n ColumnUtils.prototype.depthFirstAllColumnTreeSearch = function (tree, callback) {\n var _this = this;\n if (!tree) {\n return;\n }\n tree.forEach(function (child) {\n if (child instanceof ColumnGroup) {\n _this.depthFirstAllColumnTreeSearch(child.getChildren(), callback);\n }\n callback(child);\n });\n };\n ColumnUtils.prototype.depthFirstDisplayedColumnTreeSearch = function (tree, callback) {\n var _this = this;\n if (!tree) {\n return;\n }\n tree.forEach(function (child) {\n if (child instanceof ColumnGroup) {\n _this.depthFirstDisplayedColumnTreeSearch(child.getDisplayedChildren(), callback);\n }\n callback(child);\n });\n };\n ColumnUtils = __decorate$2A([\n Bean('columnUtils')\n ], ColumnUtils);\n return ColumnUtils;\n}(BeanStub));\n\nvar __extends$32 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// takes in a list of columns, as specified by the column definitions, and returns column groups\nvar DisplayedGroupCreator = /** @class */ (function (_super) {\n __extends$32(DisplayedGroupCreator, _super);\n function DisplayedGroupCreator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DisplayedGroupCreator.prototype.createDisplayedGroups = function (\n // all displayed columns sorted - this is the columns the grid should show\n sortedVisibleColumns, \n // creates unique id's for the group\n groupInstanceIdCreator, \n // whether it's left, right or center col\n pinned, \n // we try to reuse old groups if we can, to allow gui to do animation\n oldDisplayedGroups) {\n var _this = this;\n var oldColumnsMapped = this.mapOldGroupsById(oldDisplayedGroups);\n /**\n * The following logic starts at the leaf level of columns, iterating through them to build their parent\n * groups when the parents match.\n *\n * The created groups are then added to an array, and similarly iterated on until we reach the top level.\n *\n * When row groups have no original parent, it's added to the result.\n */\n var topLevelResultCols = [];\n // this is an array of cols or col groups at one level of depth, starting from leaf and ending at root\n var groupsOrColsAtCurrentLevel = sortedVisibleColumns;\n var _loop_1 = function () {\n // store what's currently iterating so the function can build the next level of col groups\n var currentlyIterating = groupsOrColsAtCurrentLevel;\n groupsOrColsAtCurrentLevel = [];\n // store the index of the last row which was different from the previous row, this is used as a slice\n // index for finding the children to group together\n var lastGroupedColIdx = 0;\n // create a group of children from lastGroupedColIdx to the provided `to` parameter\n var createGroupToIndex = function (to) {\n var from = lastGroupedColIdx;\n lastGroupedColIdx = to;\n var previousNode = currentlyIterating[from];\n var previousNodeProvided = previousNode instanceof ColumnGroup ? previousNode.getProvidedColumnGroup() : previousNode;\n var previousNodeParent = previousNodeProvided.getOriginalParent();\n if (previousNodeParent == null) {\n // if the last node was different, and had a null parent, then we add all the nodes to the final\n // results)\n for (var i = from; i < to; i++) {\n topLevelResultCols.push(currentlyIterating[i]);\n }\n return;\n }\n // the parent differs from the previous node, so we create a group from the previous node\n // and add all to the result array, except the current node.\n var newGroup = _this.createColumnGroup(previousNodeParent, groupInstanceIdCreator, oldColumnsMapped, pinned);\n for (var i = from; i < to; i++) {\n newGroup.addChild(currentlyIterating[i]);\n }\n groupsOrColsAtCurrentLevel.push(newGroup);\n };\n for (var i = 1; i < currentlyIterating.length; i++) {\n var thisNode = currentlyIterating[i];\n var thisNodeProvided = thisNode instanceof ColumnGroup ? thisNode.getProvidedColumnGroup() : thisNode;\n var thisNodeParent = thisNodeProvided.getOriginalParent();\n var previousNode = currentlyIterating[lastGroupedColIdx];\n var previousNodeProvided = previousNode instanceof ColumnGroup ? previousNode.getProvidedColumnGroup() : previousNode;\n var previousNodeParent = previousNodeProvided.getOriginalParent();\n if (thisNodeParent !== previousNodeParent) {\n createGroupToIndex(i);\n }\n }\n if (lastGroupedColIdx < currentlyIterating.length) {\n createGroupToIndex(currentlyIterating.length);\n }\n };\n while (groupsOrColsAtCurrentLevel.length) {\n _loop_1();\n }\n this.setupParentsIntoColumns(topLevelResultCols, null);\n return topLevelResultCols;\n };\n DisplayedGroupCreator.prototype.createColumnGroup = function (providedGroup, groupInstanceIdCreator, oldColumnsMapped, pinned) {\n var groupId = providedGroup.getGroupId();\n var instanceId = groupInstanceIdCreator.getInstanceIdForKey(groupId);\n var uniqueId = ColumnGroup.createUniqueId(groupId, instanceId);\n var columnGroup = oldColumnsMapped[uniqueId];\n // if the user is setting new colDefs, it is possible that the id's overlap, and we\n // would have a false match from above. so we double check we are talking about the\n // same original column group.\n if (columnGroup && columnGroup.getProvidedColumnGroup() !== providedGroup) {\n columnGroup = null;\n }\n if (exists(columnGroup)) {\n // clean out the old column group here, as we will be adding children into it again\n columnGroup.reset();\n }\n else {\n columnGroup = new ColumnGroup(providedGroup, groupId, instanceId, pinned);\n this.context.createBean(columnGroup);\n }\n return columnGroup;\n };\n // returns back a 2d map of ColumnGroup as follows: groupId -> instanceId -> ColumnGroup\n DisplayedGroupCreator.prototype.mapOldGroupsById = function (displayedGroups) {\n var result = {};\n var recursive = function (columnsOrGroups) {\n columnsOrGroups.forEach(function (columnOrGroup) {\n if (columnOrGroup instanceof ColumnGroup) {\n var columnGroup = columnOrGroup;\n result[columnOrGroup.getUniqueId()] = columnGroup;\n recursive(columnGroup.getChildren());\n }\n });\n };\n if (displayedGroups) {\n recursive(displayedGroups);\n }\n return result;\n };\n DisplayedGroupCreator.prototype.setupParentsIntoColumns = function (columnsOrGroups, parent) {\n var _this = this;\n columnsOrGroups.forEach(function (columnsOrGroup) {\n columnsOrGroup.setParent(parent);\n if (columnsOrGroup instanceof ColumnGroup) {\n var columnGroup = columnsOrGroup;\n _this.setupParentsIntoColumns(columnGroup.getChildren(), columnGroup);\n }\n });\n };\n DisplayedGroupCreator = __decorate$2z([\n Bean('displayedGroupCreator')\n ], DisplayedGroupCreator);\n return DisplayedGroupCreator;\n}(BeanStub));\n\nvar __extends$31 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgStackComponentsRegistry = /** @class */ (function (_super) {\n __extends$31(AgStackComponentsRegistry, _super);\n function AgStackComponentsRegistry() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.componentsMappedByName = {};\n return _this;\n }\n AgStackComponentsRegistry.prototype.setupComponents = function (components) {\n var _this = this;\n if (components) {\n components.forEach(function (componentMeta) { return _this.addComponent(componentMeta); });\n }\n };\n AgStackComponentsRegistry.prototype.addComponent = function (componentMeta) {\n // get name of the class as a string\n // insert a dash after every capital letter\n // let classEscaped = className.replace(/([A-Z])/g, \"-$1\").toLowerCase();\n var classEscaped = componentMeta.componentName.replace(/([a-z])([A-Z])/g, \"$1-$2\").toLowerCase();\n // put all to upper case\n var classUpperCase = classEscaped.toUpperCase();\n // finally store\n this.componentsMappedByName[classUpperCase] = componentMeta.componentClass;\n };\n AgStackComponentsRegistry.prototype.getComponentClass = function (htmlTag) {\n return this.componentsMappedByName[htmlTag];\n };\n AgStackComponentsRegistry = __decorate$2y([\n Bean('agStackComponentsRegistry')\n ], AgStackComponentsRegistry);\n return AgStackComponentsRegistry;\n}(BeanStub));\n\n// ARIA HELPER FUNCTIONS\nfunction toggleAriaAttribute(element, attribute, value) {\n if (value == null || value == '') {\n removeAriaAttribute(element, attribute);\n }\n else {\n setAriaAttribute(element, attribute, value);\n }\n}\nfunction setAriaAttribute(element, attribute, value) {\n element.setAttribute(ariaAttributeName(attribute), value.toString());\n}\nfunction removeAriaAttribute(element, attribute) {\n element.removeAttribute(ariaAttributeName(attribute));\n}\nfunction ariaAttributeName(attribute) {\n return \"aria-\" + attribute;\n}\nfunction setAriaRole(element, role) {\n if (role) {\n element.setAttribute('role', role);\n }\n else {\n element.removeAttribute('role');\n }\n}\nfunction getAriaSortState(sortDirection) {\n var sort;\n if (sortDirection === 'asc') {\n sort = 'ascending';\n }\n else if (sortDirection === 'desc') {\n sort = 'descending';\n }\n else if (sortDirection === 'mixed') {\n sort = 'other';\n }\n else {\n sort = 'none';\n }\n return sort;\n}\n// ARIA ATTRIBUTE GETTERS\nfunction getAriaLevel(element) {\n return parseInt(element.getAttribute('aria-level'), 10);\n}\nfunction getAriaPosInSet(element) {\n return parseInt(element.getAttribute('aria-posinset'), 10);\n}\nfunction getAriaDescribedBy(element) {\n return element.getAttribute('aria-describedby') || '';\n}\n// ARIA ATTRIBUTE SETTERS\nfunction setAriaLabel(element, label) {\n toggleAriaAttribute(element, 'label', label);\n}\nfunction setAriaLabelledBy(element, labelledBy) {\n toggleAriaAttribute(element, 'labelledby', labelledBy);\n}\nfunction setAriaDescription(element, description) {\n toggleAriaAttribute(element, 'description', description);\n}\nfunction setAriaDescribedBy(element, describedby) {\n toggleAriaAttribute(element, 'describedby', describedby);\n}\nfunction setAriaLive(element, live) {\n toggleAriaAttribute(element, 'live', live);\n}\nfunction setAriaLevel(element, level) {\n toggleAriaAttribute(element, 'level', level);\n}\nfunction setAriaDisabled(element, disabled) {\n toggleAriaAttribute(element, 'disabled', disabled);\n}\nfunction setAriaHidden(element, hidden) {\n toggleAriaAttribute(element, 'hidden', hidden);\n}\nfunction setAriaActiveDescendant(element, descendantId) {\n toggleAriaAttribute(element, 'activedescendant', descendantId);\n}\nfunction setAriaExpanded(element, expanded) {\n setAriaAttribute(element, 'expanded', expanded);\n}\nfunction removeAriaExpanded(element) {\n removeAriaAttribute(element, 'expanded');\n}\nfunction setAriaSetSize(element, setsize) {\n setAriaAttribute(element, 'setsize', setsize);\n}\nfunction setAriaPosInSet(element, position) {\n setAriaAttribute(element, 'posinset', position);\n}\nfunction setAriaMultiSelectable(element, multiSelectable) {\n setAriaAttribute(element, 'multiselectable', multiSelectable);\n}\nfunction setAriaRowCount(element, rowCount) {\n setAriaAttribute(element, 'rowcount', rowCount);\n}\nfunction setAriaRowIndex(element, rowIndex) {\n setAriaAttribute(element, 'rowindex', rowIndex);\n}\nfunction setAriaColCount(element, colCount) {\n setAriaAttribute(element, 'colcount', colCount);\n}\nfunction setAriaColIndex(element, colIndex) {\n setAriaAttribute(element, 'colindex', colIndex);\n}\nfunction setAriaColSpan(element, colSpan) {\n setAriaAttribute(element, 'colspan', colSpan);\n}\nfunction setAriaSort(element, sort) {\n setAriaAttribute(element, 'sort', sort);\n}\nfunction removeAriaSort(element) {\n removeAriaAttribute(element, 'sort');\n}\nfunction setAriaSelected(element, selected) {\n toggleAriaAttribute(element, 'selected', selected);\n}\nfunction setAriaChecked(element, checked) {\n setAriaAttribute(element, 'checked', checked === undefined ? 'mixed' : checked);\n}\nfunction setAriaControls(controllerElement, controlledElement) {\n toggleAriaAttribute(controllerElement, 'controls', controlledElement.id);\n setAriaLabelledBy(controlledElement, controllerElement.id);\n}\nfunction getAriaCheckboxStateName(translate, state) {\n return state === undefined\n ? translate('ariaIndeterminate', 'indeterminate')\n : (state === true\n ? translate('ariaChecked', 'checked')\n : translate('ariaUnchecked', 'unchecked'));\n}\n\nvar AriaUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n setAriaRole: setAriaRole,\n getAriaSortState: getAriaSortState,\n getAriaLevel: getAriaLevel,\n getAriaPosInSet: getAriaPosInSet,\n getAriaDescribedBy: getAriaDescribedBy,\n setAriaLabel: setAriaLabel,\n setAriaLabelledBy: setAriaLabelledBy,\n setAriaDescription: setAriaDescription,\n setAriaDescribedBy: setAriaDescribedBy,\n setAriaLive: setAriaLive,\n setAriaLevel: setAriaLevel,\n setAriaDisabled: setAriaDisabled,\n setAriaHidden: setAriaHidden,\n setAriaActiveDescendant: setAriaActiveDescendant,\n setAriaExpanded: setAriaExpanded,\n removeAriaExpanded: removeAriaExpanded,\n setAriaSetSize: setAriaSetSize,\n setAriaPosInSet: setAriaPosInSet,\n setAriaMultiSelectable: setAriaMultiSelectable,\n setAriaRowCount: setAriaRowCount,\n setAriaRowIndex: setAriaRowIndex,\n setAriaColCount: setAriaColCount,\n setAriaColIndex: setAriaColIndex,\n setAriaColSpan: setAriaColSpan,\n setAriaSort: setAriaSort,\n removeAriaSort: removeAriaSort,\n setAriaSelected: setAriaSelected,\n setAriaChecked: setAriaChecked,\n setAriaControls: setAriaControls,\n getAriaCheckboxStateName: getAriaCheckboxStateName\n});\n\n/**\n * These variables are lazy loaded, as otherwise they try and get initialised when we are loading\n * unit tests and we don't have references to window or document in the unit tests\n */\nvar isSafari;\nvar safariVersion;\nvar isChrome;\nvar isFirefox;\nvar isMacOs;\nvar isIOS;\nvar invisibleScrollbar;\nvar browserScrollbarWidth;\nfunction isBrowserSafari() {\n if (isSafari === undefined) {\n isSafari = /^((?!chrome|android).)*safari/i.test(navigator.userAgent);\n }\n return isSafari;\n}\nfunction getSafariVersion() {\n if (safariVersion === undefined) {\n if (isBrowserSafari()) {\n var versionMatch = navigator.userAgent.match(/version\\/(\\d+)/i);\n if (versionMatch) {\n safariVersion = versionMatch[1] != null ? parseFloat(versionMatch[1]) : 0;\n }\n }\n else {\n safariVersion = 0;\n }\n }\n return safariVersion;\n}\n/**\n * Returns true for Chrome and also for Edge (Chromium)\n */\nfunction isBrowserChrome() {\n if (isChrome === undefined) {\n var win = window;\n isChrome = (!!win.chrome && (!!win.chrome.webstore || !!win.chrome.runtime)) ||\n (/Chrome/.test(navigator.userAgent) && /Google Inc/.test(navigator.vendor));\n }\n return isChrome;\n}\nfunction isBrowserFirefox() {\n if (isFirefox === undefined) {\n isFirefox = /(firefox)/i.test(navigator.userAgent);\n }\n return isFirefox;\n}\nfunction isMacOsUserAgent() {\n if (isMacOs === undefined) {\n isMacOs = /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform);\n }\n return isMacOs;\n}\nfunction isIOSUserAgent() {\n if (isIOS === undefined) {\n isIOS = (/iPad|iPhone|iPod/.test(navigator.platform) ||\n // eslint-disable-next-line\n (navigator.platform === 'MacIntel' && navigator.maxTouchPoints > 1));\n }\n return isIOS;\n}\nfunction browserSupportsPreventScroll() {\n // all browsers except safari support focus({ preventScroll: true }).\n // this feature was added on Safari 15+\n return !isBrowserSafari() || getSafariVersion() >= 15;\n}\nfunction getTabIndex(el) {\n if (!el) {\n return null;\n }\n var numberTabIndex = el.tabIndex;\n var tabIndex = el.getAttribute('tabIndex');\n if (numberTabIndex === -1 && (tabIndex === null || (tabIndex === '' && !isBrowserFirefox()))) {\n return null;\n }\n return numberTabIndex.toString();\n}\nfunction getMaxDivHeight() {\n if (!document.body) {\n return -1;\n }\n var res = 1000000;\n // FF reports the height back but still renders blank after ~6M px\n var testUpTo = navigator.userAgent.toLowerCase().match(/firefox/) ? 6000000 : 1000000000;\n var div = document.createElement('div');\n document.body.appendChild(div);\n while (true) {\n var test = res * 2;\n div.style.height = test + 'px';\n if (test > testUpTo || div.clientHeight !== test) {\n break;\n }\n else {\n res = test;\n }\n }\n document.body.removeChild(div);\n return res;\n}\nfunction getBodyWidth() {\n var _a, _b, _c;\n return (_b = (_a = document.body) === null || _a === void 0 ? void 0 : _a.clientWidth) !== null && _b !== void 0 ? _b : (window.innerHeight || ((_c = document.documentElement) === null || _c === void 0 ? void 0 : _c.clientWidth) || -1);\n}\nfunction getBodyHeight() {\n var _a, _b, _c;\n return (_b = (_a = document.body) === null || _a === void 0 ? void 0 : _a.clientHeight) !== null && _b !== void 0 ? _b : (window.innerHeight || ((_c = document.documentElement) === null || _c === void 0 ? void 0 : _c.clientHeight) || -1);\n}\nfunction getScrollbarWidth() {\n if (browserScrollbarWidth == null) {\n initScrollbarWidthAndVisibility();\n }\n return browserScrollbarWidth;\n}\nfunction initScrollbarWidthAndVisibility() {\n var body = document.body;\n var div = document.createElement('div');\n div.style.width = div.style.height = '100px';\n div.style.opacity = '0';\n div.style.overflow = 'scroll';\n div.style.msOverflowStyle = 'scrollbar'; // needed for WinJS apps\n div.style.position = 'absolute';\n body.appendChild(div);\n var width = div.offsetWidth - div.clientWidth;\n // if width is 0 and client width is 0, means the DOM isn't ready\n if (width === 0 && div.clientWidth === 0) {\n width = null;\n }\n // remove div\n if (div.parentNode) {\n div.parentNode.removeChild(div);\n }\n if (width != null) {\n browserScrollbarWidth = width;\n invisibleScrollbar = width === 0;\n }\n}\nfunction isInvisibleScrollbar() {\n if (invisibleScrollbar == null) {\n initScrollbarWidthAndVisibility();\n }\n return invisibleScrollbar;\n}\n\nvar BrowserUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n isBrowserSafari: isBrowserSafari,\n getSafariVersion: getSafariVersion,\n isBrowserChrome: isBrowserChrome,\n isBrowserFirefox: isBrowserFirefox,\n isMacOsUserAgent: isMacOsUserAgent,\n isIOSUserAgent: isIOSUserAgent,\n browserSupportsPreventScroll: browserSupportsPreventScroll,\n getTabIndex: getTabIndex,\n getMaxDivHeight: getMaxDivHeight,\n getBodyWidth: getBodyWidth,\n getBodyHeight: getBodyHeight,\n getScrollbarWidth: getScrollbarWidth,\n isInvisibleScrollbar: isInvisibleScrollbar\n});\n\nfunction padStartWidthZeros(value, totalStringSize) {\n return value.toString().padStart(totalStringSize, '0');\n}\nfunction createArrayOfNumbers(first, last) {\n var result = [];\n for (var i = first; i <= last; i++) {\n result.push(i);\n }\n return result;\n}\nfunction cleanNumber(value) {\n if (typeof value === 'string') {\n value = parseInt(value, 10);\n }\n if (typeof value === 'number') {\n return Math.floor(value);\n }\n return null;\n}\nfunction decToHex(number, bytes) {\n var hex = '';\n for (var i = 0; i < bytes; i++) {\n hex += String.fromCharCode(number & 0xff);\n number >>>= 8;\n }\n return hex;\n}\nfunction formatNumberTwoDecimalPlacesAndCommas(value, thousandSeparator, decimalSeparator) {\n if (typeof value !== 'number') {\n return '';\n }\n return formatNumberCommas(Math.round(value * 100) / 100, thousandSeparator, decimalSeparator);\n}\n/**\n * the native method number.toLocaleString(undefined, {minimumFractionDigits: 0})\n * puts in decimal places in IE, so we use this method instead\n * from: http://blog.tompawlak.org/number-currency-formatting-javascript\n * @param {number} value\n * @returns {string}\n */\nfunction formatNumberCommas(value, thousandSeparator, decimalSeparator) {\n if (typeof value !== 'number') {\n return '';\n }\n return value.toString().replace('.', decimalSeparator).replace(/(\\d)(?=(\\d{3})+(?!\\d))/g, \"$1\" + thousandSeparator);\n}\nfunction sum(values) {\n return values == null ? null : values.reduce(function (total, value) { return total + value; }, 0);\n}\nfunction zeroOrGreater(value, defaultValue) {\n if (value >= 0) {\n return value;\n }\n // zero gets returned if number is missing or the wrong type\n return defaultValue;\n}\nfunction oneOrGreater(value, defaultValue) {\n var valueNumber = parseInt(value, 10);\n if (!isNaN(valueNumber) && isFinite(valueNumber) && valueNumber > 0) {\n return valueNumber;\n }\n return defaultValue;\n}\n\nvar NumberUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n padStartWidthZeros: padStartWidthZeros,\n createArrayOfNumbers: createArrayOfNumbers,\n cleanNumber: cleanNumber,\n decToHex: decToHex,\n formatNumberTwoDecimalPlacesAndCommas: formatNumberTwoDecimalPlacesAndCommas,\n formatNumberCommas: formatNumberCommas,\n sum: sum,\n zeroOrGreater: zeroOrGreater,\n oneOrGreater: oneOrGreater\n});\n\nvar __read$r = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n/**\n * Serialises a Date to a string of format `yyyy-MM-dd HH:mm:ss`.\n * An alternative separator can be provided to be used instead of hyphens.\n * @param date The date to serialise\n * @param includeTime Whether to include the time in the serialised string\n * @param separator The separator to use between date parts\n */\nfunction serialiseDate(date, includeTime, separator) {\n if (includeTime === void 0) { includeTime = true; }\n if (separator === void 0) { separator = '-'; }\n if (!date) {\n return null;\n }\n var serialised = [date.getFullYear(), date.getMonth() + 1, date.getDate()].map(function (part) { return padStartWidthZeros(part, 2); }).join(separator);\n if (includeTime) {\n serialised += ' ' + [date.getHours(), date.getMinutes(), date.getSeconds()].map(function (part) { return padStartWidthZeros(part, 2); }).join(':');\n }\n return serialised;\n}\nvar calculateOrdinal = function (value) {\n if (value > 3 && value < 21) {\n return 'th';\n }\n var remainder = value % 10;\n switch (remainder) {\n case 1: return \"st\";\n case 2: return \"nd\";\n case 3: return \"rd\";\n }\n return 'th';\n};\n/**\n * Serialises a Date to a string of format the defined format, does not include time.\n * @param date The date to serialise\n * @param format The string to format the date to, defaults to YYYY-MM-DD\n */\nfunction dateToFormattedString(date, format) {\n if (format === void 0) { format = 'YYYY-MM-DD'; }\n var fullYear = padStartWidthZeros(date.getFullYear(), 4);\n var months = [\n 'January', 'February', 'March', 'April', 'May', 'June',\n 'July', 'August', 'September', 'October', 'November', 'December',\n ];\n var days = [\n 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday',\n ];\n var replace = {\n YYYY: function () { return fullYear.slice(fullYear.length - 4, fullYear.length); },\n YY: function () { return fullYear.slice(fullYear.length - 2, fullYear.length); },\n Y: function () { return \"\" + date.getFullYear(); },\n MMMM: function () { return months[date.getMonth()]; },\n MMM: function () { return months[date.getMonth()].slice(0, 3); },\n MM: function () { return padStartWidthZeros(date.getMonth() + 1, 2); },\n Mo: function () { return \"\" + (date.getMonth() + 1) + calculateOrdinal(date.getMonth() + 1); },\n M: function () { return \"\" + (date.getMonth() + 1); },\n Do: function () { return \"\" + date.getDate() + calculateOrdinal(date.getDate()); },\n DD: function () { return padStartWidthZeros(date.getDate(), 2); },\n D: function () { return \"\" + date.getDate(); },\n dddd: function () { return days[date.getDay()]; },\n ddd: function () { return days[date.getDay()].slice(0, 3); },\n dd: function () { return days[date.getDay()].slice(0, 2); },\n do: function () { return \"\" + date.getDay() + calculateOrdinal(date.getDay()); },\n d: function () { return \"\" + date.getDay(); },\n };\n var regexp = new RegExp(Object.keys(replace).join('|'), 'g');\n return format.replace(regexp, function (match) {\n if (match in replace) {\n return replace[match]();\n }\n return match;\n });\n}\n/**\n * Parses a date and time from a string in the format `yyyy-MM-dd HH:mm:ss`\n */\nfunction parseDateTimeFromString(value) {\n if (!value) {\n return null;\n }\n var _a = __read$r(value.split(' '), 2), dateStr = _a[0], timeStr = _a[1];\n if (!dateStr) {\n return null;\n }\n var fields = dateStr.split('-').map(function (f) { return parseInt(f, 10); });\n if (fields.filter(function (f) { return !isNaN(f); }).length !== 3) {\n return null;\n }\n var _b = __read$r(fields, 3), year = _b[0], month = _b[1], day = _b[2];\n var date = new Date(year, month - 1, day);\n if (date.getFullYear() !== year ||\n date.getMonth() !== month - 1 ||\n date.getDate() !== day) {\n // date was not parsed as expected so must have been invalid\n return null;\n }\n if (!timeStr || timeStr === '00:00:00') {\n return date;\n }\n var _c = __read$r(timeStr.split(':').map(function (part) { return parseInt(part, 10); }), 3), hours = _c[0], minutes = _c[1], seconds = _c[2];\n if (hours >= 0 && hours < 24) {\n date.setHours(hours);\n }\n if (minutes >= 0 && minutes < 60) {\n date.setMinutes(minutes);\n }\n if (seconds >= 0 && seconds < 60) {\n date.setSeconds(seconds);\n }\n return date;\n}\n\nvar DateUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n serialiseDate: serialiseDate,\n dateToFormattedString: dateToFormattedString,\n parseDateTimeFromString: parseDateTimeFromString\n});\n\nvar __values$5 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$q = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar rtlNegativeScroll;\n/**\n * This method adds a class to an element and remove that class from all siblings.\n * Useful for toggling state.\n * @param {HTMLElement} element The element to receive the class\n * @param {string} elementClass The class to be assigned to the element\n * @param {boolean} otherElementClass The class to be assigned to siblings of the element, but not the element itself\n */\nfunction radioCssClass(element, elementClass, otherElementClass) {\n var parent = element.parentElement;\n var sibling = parent && parent.firstChild;\n while (sibling) {\n if (elementClass) {\n sibling.classList.toggle(elementClass, sibling === element);\n }\n if (otherElementClass) {\n sibling.classList.toggle(otherElementClass, sibling !== element);\n }\n sibling = sibling.nextSibling;\n }\n}\nvar FOCUSABLE_SELECTOR = '[tabindex], input, select, button, textarea, [href]';\nvar FOCUSABLE_EXCLUDE = '.ag-hidden, .ag-hidden *, [disabled], .ag-disabled:not(.ag-button), .ag-disabled *';\nfunction isFocusableFormField(element) {\n var matches = Element.prototype.matches || Element.prototype.msMatchesSelector;\n var inputSelector = 'input, select, button, textarea';\n var isFocusable = matches.call(element, inputSelector);\n var isNotFocusable = matches.call(element, FOCUSABLE_EXCLUDE);\n var isElementVisible = isVisible(element);\n var focusable = isFocusable && !isNotFocusable && isElementVisible;\n return focusable;\n}\nfunction setDisplayed(element, displayed, options) {\n if (options === void 0) { options = {}; }\n var skipAriaHidden = options.skipAriaHidden;\n element.classList.toggle('ag-hidden', !displayed);\n if (!skipAriaHidden) {\n setAriaHidden(element, !displayed);\n }\n}\nfunction setVisible(element, visible, options) {\n if (options === void 0) { options = {}; }\n var skipAriaHidden = options.skipAriaHidden;\n element.classList.toggle('ag-invisible', !visible);\n if (!skipAriaHidden) {\n setAriaHidden(element, !visible);\n }\n}\nfunction setDisabled(element, disabled) {\n var attributeName = 'disabled';\n var addOrRemoveDisabledAttribute = disabled ?\n function (e) { return e.setAttribute(attributeName, ''); } :\n function (e) { return e.removeAttribute(attributeName); };\n addOrRemoveDisabledAttribute(element);\n nodeListForEach(element.querySelectorAll('input'), function (input) { return addOrRemoveDisabledAttribute(input); });\n}\nfunction isElementChildOfClass(element, cls, maxNest) {\n var counter = 0;\n while (element) {\n if (element.classList.contains(cls)) {\n return true;\n }\n element = element.parentElement;\n if (typeof maxNest == 'number') {\n if (++counter > maxNest) {\n break;\n }\n }\n else if (element === maxNest) {\n break;\n }\n }\n return false;\n}\n// returns back sizes as doubles instead of strings. similar to\n// getBoundingClientRect, however getBoundingClientRect does not:\n// a) work with fractions (eg browser is zooming)\n// b) has CSS transitions applied (eg CSS scale, browser zoom), which we don't want, we want the un-transitioned values\nfunction getElementSize(el) {\n var _a = window.getComputedStyle(el), height = _a.height, width = _a.width, borderTopWidth = _a.borderTopWidth, borderRightWidth = _a.borderRightWidth, borderBottomWidth = _a.borderBottomWidth, borderLeftWidth = _a.borderLeftWidth, paddingTop = _a.paddingTop, paddingRight = _a.paddingRight, paddingBottom = _a.paddingBottom, paddingLeft = _a.paddingLeft, marginTop = _a.marginTop, marginRight = _a.marginRight, marginBottom = _a.marginBottom, marginLeft = _a.marginLeft, boxSizing = _a.boxSizing;\n return {\n height: parseFloat(height),\n width: parseFloat(width),\n borderTopWidth: parseFloat(borderTopWidth),\n borderRightWidth: parseFloat(borderRightWidth),\n borderBottomWidth: parseFloat(borderBottomWidth),\n borderLeftWidth: parseFloat(borderLeftWidth),\n paddingTop: parseFloat(paddingTop),\n paddingRight: parseFloat(paddingRight),\n paddingBottom: parseFloat(paddingBottom),\n paddingLeft: parseFloat(paddingLeft),\n marginTop: parseFloat(marginTop),\n marginRight: parseFloat(marginRight),\n marginBottom: parseFloat(marginBottom),\n marginLeft: parseFloat(marginLeft),\n boxSizing: boxSizing\n };\n}\nfunction getInnerHeight(el) {\n var size = getElementSize(el);\n if (size.boxSizing === 'border-box') {\n return size.height - size.paddingTop - size.paddingBottom;\n }\n return size.height;\n}\nfunction getInnerWidth(el) {\n var size = getElementSize(el);\n if (size.boxSizing === 'border-box') {\n return size.width - size.paddingLeft - size.paddingRight;\n }\n return size.width;\n}\nfunction getAbsoluteHeight(el) {\n var size = getElementSize(el);\n var marginRight = size.marginBottom + size.marginTop;\n return Math.ceil(el.offsetHeight + marginRight);\n}\nfunction getAbsoluteWidth(el) {\n var size = getElementSize(el);\n var marginWidth = size.marginLeft + size.marginRight;\n return Math.ceil(el.offsetWidth + marginWidth);\n}\nfunction getElementRectWithOffset(el) {\n var offsetElementRect = el.getBoundingClientRect();\n var _a = getElementSize(el), borderTopWidth = _a.borderTopWidth, borderLeftWidth = _a.borderLeftWidth, borderRightWidth = _a.borderRightWidth, borderBottomWidth = _a.borderBottomWidth;\n return {\n top: offsetElementRect.top + (borderTopWidth || 0),\n left: offsetElementRect.left + (borderLeftWidth || 0),\n right: offsetElementRect.right + (borderRightWidth || 0),\n bottom: offsetElementRect.bottom + (borderBottomWidth || 0),\n };\n}\nfunction isRtlNegativeScroll() {\n if (typeof rtlNegativeScroll === \"boolean\") {\n return rtlNegativeScroll;\n }\n var template = document.createElement('div');\n template.style.direction = 'rtl';\n template.style.width = '1px';\n template.style.height = '1px';\n template.style.position = 'fixed';\n template.style.top = '0px';\n template.style.overflow = 'hidden';\n template.dir = 'rtl';\n template.innerHTML = /* html */\n \"

\";\n document.body.appendChild(template);\n template.scrollLeft = 1;\n rtlNegativeScroll = Math.floor(template.scrollLeft) === 0;\n document.body.removeChild(template);\n return rtlNegativeScroll;\n}\nfunction getScrollLeft(element, rtl) {\n var scrollLeft = element.scrollLeft;\n if (rtl) {\n // Absolute value - for FF that reports RTL scrolls in negative numbers\n scrollLeft = Math.abs(scrollLeft);\n if (isBrowserChrome() && !isRtlNegativeScroll()) {\n scrollLeft = element.scrollWidth - element.clientWidth - scrollLeft;\n }\n }\n return scrollLeft;\n}\nfunction setScrollLeft(element, value, rtl) {\n if (rtl) {\n // Chrome and Safari when doing RTL have the END position of the scroll as zero, not the start\n if (isRtlNegativeScroll()) {\n value *= -1;\n }\n else if (isBrowserSafari() || isBrowserChrome()) {\n value = element.scrollWidth - element.clientWidth - value;\n }\n }\n element.scrollLeft = value;\n}\nfunction clearElement(el) {\n while (el && el.firstChild) {\n el.removeChild(el.firstChild);\n }\n}\n/** @deprecated */\nfunction removeElement(parent, cssSelector) {\n removeFromParent(parent.querySelector(cssSelector));\n}\nfunction removeFromParent(node) {\n if (node && node.parentNode) {\n node.parentNode.removeChild(node);\n }\n}\nfunction isVisible(element) {\n return element.offsetParent !== null;\n}\n/**\n * Loads the template and returns it as an element. makes up for no simple way in\n * the dom api to load html directly, eg we cannot do this: document.createElement(template)\n * @param {string} template\n * @returns {HTMLElement}\n */\nfunction loadTemplate(template) {\n var tempDiv = document.createElement('div');\n tempDiv.innerHTML = (template || '').trim();\n return tempDiv.firstChild;\n}\nfunction appendHtml(eContainer, htmlTemplate) {\n if (eContainer.lastChild) {\n // https://developer.mozilla.org/en-US/docs/Web/API/Element/insertAdjacentHTML\n // we put the items at the start, so new items appear underneath old items,\n // so when expanding/collapsing groups, the new rows don't go on top of the\n // rows below that are moving our of the way\n eContainer.insertAdjacentHTML('afterbegin', htmlTemplate);\n }\n else {\n eContainer.innerHTML = htmlTemplate;\n }\n}\n/** @deprecated */\nfunction getElementAttribute(element, attributeName) {\n if (element.attributes && element.attributes[attributeName]) {\n var attribute = element.attributes[attributeName];\n return attribute.value;\n }\n return null;\n}\nfunction offsetHeight(element) {\n return element && element.clientHeight ? element.clientHeight : 0;\n}\nfunction offsetWidth(element) {\n return element && element.clientWidth ? element.clientWidth : 0;\n}\nfunction ensureDomOrder(eContainer, eChild, eChildBefore) {\n // if already in right order, do nothing\n if (eChildBefore && eChildBefore.nextSibling === eChild) {\n return;\n }\n var focusedEl = document.activeElement;\n var eChildHasFocus = eChild.contains(focusedEl);\n if (eChildBefore) {\n if (eChildBefore.nextSibling) {\n // insert between the eRowBefore and the row after it\n eContainer.insertBefore(eChild, eChildBefore.nextSibling);\n }\n else {\n // if nextSibling is missing, means other row is at end, so just append new row at the end\n eContainer.appendChild(eChild);\n }\n }\n else {\n // otherwise put at start\n if (eContainer.firstChild && eContainer.firstChild !== eChild) {\n // insert it at the first location\n eContainer.insertAdjacentElement('afterbegin', eChild);\n }\n }\n if (eChildHasFocus && focusedEl && browserSupportsPreventScroll()) {\n focusedEl.focus({ preventScroll: true });\n }\n}\nfunction setDomChildOrder(eContainer, orderedChildren) {\n for (var i = 0; i < orderedChildren.length; i++) {\n var correctCellAtIndex = orderedChildren[i];\n var actualCellAtIndex = eContainer.children[i];\n if (actualCellAtIndex !== correctCellAtIndex) {\n eContainer.insertBefore(correctCellAtIndex, actualCellAtIndex);\n }\n }\n}\nfunction insertWithDomOrder(eContainer, eToInsert, eChildBefore) {\n if (eChildBefore) {\n // if previous element exists, just slot in after the previous element\n eChildBefore.insertAdjacentElement('afterend', eToInsert);\n }\n else {\n if (eContainer.firstChild) {\n // insert it at the first location\n eContainer.insertAdjacentElement('afterbegin', eToInsert);\n }\n else {\n // otherwise eContainer is empty, so just append it\n eContainer.appendChild(eToInsert);\n }\n }\n}\n/** @deprecated */\nfunction prependDC(parent, documentFragment) {\n if (exists(parent.firstChild)) {\n parent.insertBefore(documentFragment, parent.firstChild);\n }\n else {\n parent.appendChild(documentFragment);\n }\n}\nfunction addStylesToElement(eElement, styles) {\n var e_1, _a;\n if (!styles) {\n return;\n }\n try {\n for (var _b = __values$5(Object.entries(styles)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read$q(_c.value, 2), key = _d[0], value = _d[1];\n if (!key || !key.length || value == null) {\n continue;\n }\n // changes the key from camelCase into a hyphenated-string\n var parsedKey = camelCaseToHyphenated(key);\n var valueAsString = value.toString();\n var parsedValue = valueAsString.replace(/\\s*!important/g, '');\n var priority = parsedValue.length != valueAsString.length ? 'important' : undefined;\n eElement.style.setProperty(parsedKey, parsedValue, priority);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n}\nfunction isHorizontalScrollShowing(element) {\n return element.clientWidth < element.scrollWidth;\n}\nfunction isVerticalScrollShowing(element) {\n return element.clientHeight < element.scrollHeight;\n}\nfunction setElementWidth(element, width) {\n if (width === 'flex') {\n element.style.removeProperty('width');\n element.style.removeProperty('minWidth');\n element.style.removeProperty('maxWidth');\n element.style.flex = '1 1 auto';\n }\n else {\n setFixedWidth(element, width);\n }\n}\nfunction setFixedWidth(element, width) {\n width = formatSize(width);\n element.style.width = width.toString();\n element.style.maxWidth = width.toString();\n element.style.minWidth = width.toString();\n}\nfunction setElementHeight(element, height) {\n if (height === 'flex') {\n element.style.removeProperty('height');\n element.style.removeProperty('minHeight');\n element.style.removeProperty('maxHeight');\n element.style.flex = '1 1 auto';\n }\n else {\n setFixedHeight(element, height);\n }\n}\nfunction setFixedHeight(element, height) {\n height = formatSize(height);\n element.style.height = height.toString();\n element.style.maxHeight = height.toString();\n element.style.minHeight = height.toString();\n}\nfunction formatSize(size) {\n if (typeof size === 'number') {\n return size + \"px\";\n }\n return size;\n}\nfunction isNodeOrElement(o) {\n return o instanceof Node || o instanceof HTMLElement;\n}\n/**\n * Makes a copy of a node list into a list\n * @param {NodeList} nodeList\n * @returns {Node[]}\n */\nfunction copyNodeList(nodeList) {\n if (nodeList == null) {\n return [];\n }\n var result = [];\n nodeListForEach(nodeList, function (node) { return result.push(node); });\n return result;\n}\nfunction iterateNamedNodeMap(map, callback) {\n if (!map) {\n return;\n }\n for (var i = 0; i < map.length; i++) {\n var attr = map[i];\n callback(attr.name, attr.value);\n }\n}\nfunction addOrRemoveAttribute(element, name, value) {\n if (value == null) {\n element.removeAttribute(name);\n }\n else {\n element.setAttribute(name, value.toString());\n }\n}\nfunction nodeListForEach(nodeList, action) {\n if (nodeList == null) {\n return;\n }\n for (var i = 0; i < nodeList.length; i++) {\n action(nodeList[i]);\n }\n}\n/**\n * cell renderers are used in a few places. they bind to dom slightly differently to other cell renders as they\n * can return back strings (instead of html element) in the getGui() method. common code placed here to handle that.\n * @param {AgPromise} cellRendererPromise\n * @param {HTMLElement} eTarget\n */\nfunction bindCellRendererToHtmlElement(cellRendererPromise, eTarget) {\n cellRendererPromise.then(function (cellRenderer) {\n var gui = cellRenderer.getGui();\n if (gui != null) {\n if (typeof gui === 'object') {\n eTarget.appendChild(gui);\n }\n else {\n eTarget.innerHTML = gui;\n }\n }\n });\n}\n\nvar DomUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n radioCssClass: radioCssClass,\n FOCUSABLE_SELECTOR: FOCUSABLE_SELECTOR,\n FOCUSABLE_EXCLUDE: FOCUSABLE_EXCLUDE,\n isFocusableFormField: isFocusableFormField,\n setDisplayed: setDisplayed,\n setVisible: setVisible,\n setDisabled: setDisabled,\n isElementChildOfClass: isElementChildOfClass,\n getElementSize: getElementSize,\n getInnerHeight: getInnerHeight,\n getInnerWidth: getInnerWidth,\n getAbsoluteHeight: getAbsoluteHeight,\n getAbsoluteWidth: getAbsoluteWidth,\n getElementRectWithOffset: getElementRectWithOffset,\n isRtlNegativeScroll: isRtlNegativeScroll,\n getScrollLeft: getScrollLeft,\n setScrollLeft: setScrollLeft,\n clearElement: clearElement,\n removeElement: removeElement,\n removeFromParent: removeFromParent,\n isVisible: isVisible,\n loadTemplate: loadTemplate,\n appendHtml: appendHtml,\n getElementAttribute: getElementAttribute,\n offsetHeight: offsetHeight,\n offsetWidth: offsetWidth,\n ensureDomOrder: ensureDomOrder,\n setDomChildOrder: setDomChildOrder,\n insertWithDomOrder: insertWithDomOrder,\n prependDC: prependDC,\n addStylesToElement: addStylesToElement,\n isHorizontalScrollShowing: isHorizontalScrollShowing,\n isVerticalScrollShowing: isVerticalScrollShowing,\n setElementWidth: setElementWidth,\n setFixedWidth: setFixedWidth,\n setElementHeight: setElementHeight,\n setFixedHeight: setFixedHeight,\n formatSize: formatSize,\n isNodeOrElement: isNodeOrElement,\n copyNodeList: copyNodeList,\n iterateNamedNodeMap: iterateNamedNodeMap,\n addOrRemoveAttribute: addOrRemoveAttribute,\n nodeListForEach: nodeListForEach,\n bindCellRendererToHtmlElement: bindCellRendererToHtmlElement\n});\n\n//\n// IMPORTANT NOTE!\n//\n// If you change the list below, copy/paste the new content into the docs page custom-icons\n//\nvar iconNameClassMap = {\n // header column group shown when expanded (click to contract)\n columnGroupOpened: 'expanded',\n // header column group shown when contracted (click to expand)\n columnGroupClosed: 'contracted',\n // tool panel column group contracted (click to expand)\n columnSelectClosed: 'tree-closed',\n // tool panel column group expanded (click to contract)\n columnSelectOpen: 'tree-open',\n // column tool panel header expand/collapse all button, shown when some children are expanded and\n // others are collapsed\n columnSelectIndeterminate: 'tree-indeterminate',\n // shown on ghost icon while dragging column to the side of the grid to pin\n columnMovePin: 'pin',\n // shown on ghost icon while dragging over part of the page that is not a drop zone\n columnMoveHide: 'eye-slash',\n // shown on ghost icon while dragging columns to reorder\n columnMoveMove: 'arrows',\n // animating icon shown when dragging a column to the right of the grid causes horizontal scrolling\n columnMoveLeft: 'left',\n // animating icon shown when dragging a column to the left of the grid causes horizontal scrolling\n columnMoveRight: 'right',\n // shown on ghost icon while dragging over Row Groups drop zone\n columnMoveGroup: 'group',\n // shown on ghost icon while dragging over Values drop zone\n columnMoveValue: 'aggregation',\n // shown on ghost icon while dragging over pivot drop zone\n columnMovePivot: 'pivot',\n // shown on ghost icon while dragging over drop zone that doesn't support it, e.g.\n // string column over aggregation drop zone\n dropNotAllowed: 'not-allowed',\n // shown on row group when contracted (click to expand)\n groupContracted: 'tree-closed',\n // shown on row group when expanded (click to contract)\n groupExpanded: 'tree-open',\n // set filter tree list group contracted (click to expand)\n setFilterGroupClosed: 'tree-closed',\n // set filter tree list group expanded (click to contract)\n setFilterGroupOpen: 'tree-open',\n // set filter tree list expand/collapse all button, shown when some children are expanded and\n // others are collapsed\n setFilterGroupIndeterminate: 'tree-indeterminate',\n // context menu chart item\n chart: 'chart',\n // chart window title bar\n close: 'cross',\n // X (remove) on column 'pill' after adding it to a drop zone list\n cancel: 'cancel',\n // indicates the currently active pin state in the \"Pin column\" sub-menu of the column menu\n check: 'tick',\n // \"go to first\" button in pagination controls\n first: 'first',\n // \"go to previous\" button in pagination controls\n previous: 'previous',\n // \"go to next\" button in pagination controls\n next: 'next',\n // \"go to last\" button in pagination controls\n last: 'last',\n // shown on top right of chart when chart is linked to range data (click to unlink)\n linked: 'linked',\n // shown on top right of chart when chart is not linked to range data (click to link)\n unlinked: 'unlinked',\n // \"Choose colour\" button on chart settings tab\n colorPicker: 'color-picker',\n // rotating spinner shown by the loading cell renderer\n groupLoading: 'loading',\n // button to launch enterprise column menu\n menu: 'menu',\n // filter tool panel tab\n filter: 'filter',\n // column tool panel tab\n columns: 'columns',\n // button in chart regular size window title bar (click to maximise)\n maximize: 'maximize',\n // button in chart maximised window title bar (click to make regular size)\n minimize: 'minimize',\n // \"Pin column\" item in column header menu\n menuPin: 'pin',\n // \"Value aggregation\" column menu item (shown on numeric columns when grouping is active)\"\n menuValue: 'aggregation',\n // \"Group by {column-name}\" item in column header menu\n menuAddRowGroup: 'group',\n // \"Un-Group by {column-name}\" item in column header menu\n menuRemoveRowGroup: 'group',\n // context menu copy item\n clipboardCopy: 'copy',\n // context menu cut item\n clipboardCut: 'cut',\n // context menu paste item\n clipboardPaste: 'paste',\n // identifies the pivot drop zone\n pivotPanel: 'pivot',\n // \"Row groups\" drop zone in column tool panel\n rowGroupPanel: 'group',\n // columns tool panel Values drop zone\n valuePanel: 'aggregation',\n // drag handle used to pick up draggable columns\n columnDrag: 'grip',\n // drag handle used to pick up draggable rows\n rowDrag: 'grip',\n // context menu export item\n save: 'save',\n // csv export\n csvExport: 'csv',\n // excel export,\n excelExport: 'excel',\n // icon on dropdown editors\n smallDown: 'small-down',\n // version of small-right used in RTL mode\n smallLeft: 'small-left',\n // separater between column 'pills' when you add multiple columns to the header drop zone\n smallRight: 'small-right',\n smallUp: 'small-up',\n // show on column header when column is sorted ascending\n sortAscending: 'asc',\n // show on column header when column is sorted descending\n sortDescending: 'desc',\n // show on column header when column has no sort, only when enabled with gridOptions.unSortIcon=true\n sortUnSort: 'none',\n // Builder button in Advanced Filter\n advancedFilterBuilder: 'group',\n // drag handle used to pick up Advanced Filter Builder rows\n advancedFilterBuilderDrag: 'grip',\n // Advanced Filter Builder row validation error\n advancedFilterBuilderInvalid: 'not-allowed',\n // shown on Advanced Filter Builder rows to move them up\n advancedFilterBuilderMoveUp: 'up',\n // shown on Advanced Filter Builder rows to move them down\n advancedFilterBuilderMoveDown: 'down',\n // shown on Advanced Filter Builder rows to add new rows\n advancedFilterBuilderAdd: 'plus',\n // shown on Advanced Filter Builder rows to remove row\n advancedFilterBuilderRemove: 'minus',\n};\n/**\n * If icon provided, use this (either a string, or a function callback).\n * if not, then use the default icon from the theme\n * @param {string} iconName\n * @param {GridOptionsService} gridOptionsService\n * @param {Column | null} [column]\n * @returns {Element}\n */\nfunction createIcon(iconName, gridOptionsService, column) {\n var iconContents = createIconNoSpan(iconName, gridOptionsService, column);\n if (iconContents) {\n var className = iconContents.className;\n if ((typeof className === 'string' && className.indexOf('ag-icon') > -1) ||\n (typeof className === 'object' && className['ag-icon'])) {\n return iconContents;\n }\n }\n var eResult = document.createElement('span');\n eResult.appendChild(iconContents);\n return eResult;\n}\nfunction createIconNoSpan(iconName, gridOptionsService, column, forceCreate) {\n var userProvidedIcon = null;\n // check col for icon first\n var icons = column && column.getColDef().icons;\n if (icons) {\n userProvidedIcon = icons[iconName];\n }\n // if not in col, try grid options\n if (gridOptionsService && !userProvidedIcon) {\n var optionsIcons = gridOptionsService.get('icons');\n if (optionsIcons) {\n userProvidedIcon = optionsIcons[iconName];\n }\n }\n // now if user provided, use it\n if (userProvidedIcon) {\n var rendererResult = void 0;\n if (typeof userProvidedIcon === 'function') {\n rendererResult = userProvidedIcon();\n }\n else if (typeof userProvidedIcon === 'string') {\n rendererResult = userProvidedIcon;\n }\n else {\n throw new Error('icon from grid options needs to be a string or a function');\n }\n if (typeof rendererResult === 'string') {\n return loadTemplate(rendererResult);\n }\n if (isNodeOrElement(rendererResult)) {\n return rendererResult;\n }\n console.warn('AG Grid: iconRenderer should return back a string or a dom object');\n }\n else {\n var span = document.createElement('span');\n var cssClass = iconNameClassMap[iconName];\n if (!cssClass) {\n if (!forceCreate) {\n console.warn(\"AG Grid: Did not find icon \" + iconName);\n cssClass = '';\n }\n else {\n cssClass = iconName;\n }\n }\n span.setAttribute('class', \"ag-icon ag-icon-\" + cssClass);\n span.setAttribute('unselectable', 'on');\n setAriaRole(span, 'presentation');\n return span;\n }\n}\n\nvar IconUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n iconNameClassMap: iconNameClassMap,\n createIcon: createIcon,\n createIconNoSpan: createIconNoSpan\n});\n\nvar KeyCode = /** @class */ (function () {\n function KeyCode() {\n }\n KeyCode.BACKSPACE = 'Backspace';\n KeyCode.TAB = 'Tab';\n KeyCode.ENTER = 'Enter';\n KeyCode.ESCAPE = 'Escape';\n KeyCode.SPACE = ' ';\n KeyCode.LEFT = 'ArrowLeft';\n KeyCode.UP = 'ArrowUp';\n KeyCode.RIGHT = 'ArrowRight';\n KeyCode.DOWN = 'ArrowDown';\n KeyCode.DELETE = 'Delete';\n KeyCode.F2 = 'F2';\n KeyCode.PAGE_UP = 'PageUp';\n KeyCode.PAGE_DOWN = 'PageDown';\n KeyCode.PAGE_HOME = 'Home';\n KeyCode.PAGE_END = 'End';\n // these should be used with `event.code` instead of `event.key`\n // as `event.key` changes when non-latin keyboards are used\n KeyCode.A = 'KeyA';\n KeyCode.C = 'KeyC';\n KeyCode.D = 'KeyD';\n KeyCode.V = 'KeyV';\n KeyCode.X = 'KeyX';\n KeyCode.Y = 'KeyY';\n KeyCode.Z = 'KeyZ';\n return KeyCode;\n}());\n\nvar A_KEYCODE = 65;\nvar C_KEYCODE = 67;\nvar V_KEYCODE = 86;\nvar D_KEYCODE = 68;\nvar Z_KEYCODE = 90;\nvar Y_KEYCODE = 89;\nfunction isEventFromPrintableCharacter(event) {\n // no allowed printable chars have alt or ctrl key combinations\n if (event.altKey || event.ctrlKey || event.metaKey) {\n return false;\n }\n // if key is length 1, eg if it is 'a' for the a key, or '2' for the '2' key.\n // non-printable characters have names, eg 'Enter' or 'Backspace'.\n var printableCharacter = event.key.length === 1;\n return printableCharacter;\n}\n/**\n * Allows user to tell the grid to skip specific keyboard events\n * @param {GridOptionsService} gridOptionsService\n * @param {KeyboardEvent} keyboardEvent\n * @param {IRowNode} rowNode\n * @param {Column} column\n * @param {boolean} editing\n * @returns {boolean}\n */\nfunction isUserSuppressingKeyboardEvent(gridOptionsService, keyboardEvent, rowNode, column, editing) {\n var colDefFunc = column ? column.getColDef().suppressKeyboardEvent : undefined;\n // if no callbacks provided by user, then do nothing\n if (!colDefFunc) {\n return false;\n }\n var params = {\n event: keyboardEvent,\n editing: editing,\n column: column,\n api: gridOptionsService.api,\n node: rowNode,\n data: rowNode.data,\n colDef: column.getColDef(),\n context: gridOptionsService.context,\n columnApi: gridOptionsService.columnApi\n };\n // colDef get first preference on suppressing events\n if (colDefFunc) {\n var colDefFuncResult = colDefFunc(params);\n // if colDef func suppressed, then return now, no need to call gridOption func\n if (colDefFuncResult) {\n return true;\n }\n }\n // otherwise return false, don't suppress, as colDef didn't suppress and no func on gridOptions\n return false;\n}\nfunction isUserSuppressingHeaderKeyboardEvent(gridOptionsService, keyboardEvent, headerRowIndex, column) {\n var colDef = column.getDefinition();\n var colDefFunc = colDef && colDef.suppressHeaderKeyboardEvent;\n if (!exists(colDefFunc)) {\n return false;\n }\n var params = {\n api: gridOptionsService.api,\n columnApi: gridOptionsService.columnApi,\n context: gridOptionsService.context,\n colDef: colDef,\n column: column,\n headerRowIndex: headerRowIndex,\n event: keyboardEvent\n };\n return !!colDefFunc(params);\n}\nfunction normaliseQwertyAzerty(keyboardEvent) {\n var keyCode = keyboardEvent.keyCode;\n var code;\n switch (keyCode) {\n case A_KEYCODE:\n code = KeyCode.A;\n break;\n case C_KEYCODE:\n code = KeyCode.C;\n break;\n case V_KEYCODE:\n code = KeyCode.V;\n break;\n case D_KEYCODE:\n code = KeyCode.D;\n break;\n case Z_KEYCODE:\n code = KeyCode.Z;\n break;\n case Y_KEYCODE:\n code = KeyCode.Y;\n break;\n default:\n code = keyboardEvent.code;\n }\n return code;\n}\nfunction isDeleteKey(key, alwaysReturnFalseOnBackspace) {\n if (alwaysReturnFalseOnBackspace === void 0) { alwaysReturnFalseOnBackspace = false; }\n if (key === KeyCode.DELETE) {\n return true;\n }\n if (!alwaysReturnFalseOnBackspace && key === KeyCode.BACKSPACE) {\n return isMacOsUserAgent();\n }\n return false;\n}\n\nvar KeyboardUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n isEventFromPrintableCharacter: isEventFromPrintableCharacter,\n isUserSuppressingKeyboardEvent: isUserSuppressingKeyboardEvent,\n isUserSuppressingHeaderKeyboardEvent: isUserSuppressingHeaderKeyboardEvent,\n normaliseQwertyAzerty: normaliseQwertyAzerty,\n isDeleteKey: isDeleteKey\n});\n\n/**\n * `True` if the event is close to the original event by X pixels either vertically or horizontally.\n * we only start dragging after X pixels so this allows us to know if we should start dragging yet.\n * @param {MouseEvent | TouchEvent} e1\n * @param {MouseEvent | TouchEvent} e2\n * @param {number} pixelCount\n * @returns {boolean}\n */\nfunction areEventsNear(e1, e2, pixelCount) {\n // by default, we wait 4 pixels before starting the drag\n if (pixelCount === 0) {\n return false;\n }\n var diffX = Math.abs(e1.clientX - e2.clientX);\n var diffY = Math.abs(e1.clientY - e2.clientY);\n return Math.max(diffX, diffY) <= pixelCount;\n}\n\nvar MouseUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n areEventsNear: areEventsNear\n});\n\n/**\n * Gets called by: a) ClientSideNodeManager and b) GroupStage to do sorting.\n * when in ClientSideNodeManager we always have indexes (as this sorts the items the\n * user provided) but when in GroupStage, the nodes can contain filler nodes that\n * don't have order id's\n * @param {RowNode[]} rowNodes\n * @param {Object} rowNodeOrder\n *\n * @returns a boolean representing whether nodes were reordered\n */\nfunction sortRowNodesByOrder(rowNodes, rowNodeOrder) {\n if (!rowNodes) {\n return false;\n }\n var comparator = function (nodeA, nodeB) {\n var positionA = rowNodeOrder[nodeA.id];\n var positionB = rowNodeOrder[nodeB.id];\n var aHasIndex = positionA !== undefined;\n var bHasIndex = positionB !== undefined;\n var bothNodesAreUserNodes = aHasIndex && bHasIndex;\n var bothNodesAreFillerNodes = !aHasIndex && !bHasIndex;\n if (bothNodesAreUserNodes) {\n // when comparing two nodes the user has provided, they always\n // have indexes\n return positionA - positionB;\n }\n if (bothNodesAreFillerNodes) {\n // when comparing two filler nodes, we have no index to compare them\n // against, however we want this sorting to be deterministic, so that\n // the rows don't jump around as the user does delta updates. so we\n // want the same sort result. so we use the __objectId - which doesn't make sense\n // from a sorting point of view, but does give consistent behaviour between\n // calls. otherwise groups jump around as delta updates are done.\n // note: previously here we used nodeId, however this gave a strange order\n // as string ordering of numbers is wrong, so using id based on creation order\n // as least gives better looking order.\n return nodeA.__objectId - nodeB.__objectId;\n }\n if (aHasIndex) {\n return 1;\n }\n return -1;\n };\n // check if the list first needs sorting\n var rowNodeA;\n var rowNodeB;\n var atLeastOneOutOfOrder = false;\n for (var i = 0; i < rowNodes.length - 1; i++) {\n rowNodeA = rowNodes[i];\n rowNodeB = rowNodes[i + 1];\n if (comparator(rowNodeA, rowNodeB) > 0) {\n atLeastOneOutOfOrder = true;\n break;\n }\n }\n if (atLeastOneOutOfOrder) {\n rowNodes.sort(comparator);\n return true;\n }\n return false;\n}\nfunction traverseNodesWithKey(nodes, callback) {\n var keyParts = [];\n recursiveSearchNodes(nodes);\n function recursiveSearchNodes(currentNodes) {\n if (!currentNodes) {\n return;\n }\n currentNodes.forEach(function (node) {\n // also checking for children for tree data\n if (node.group || node.hasChildren()) {\n keyParts.push(node.key);\n var key = keyParts.join('|');\n callback(node, key);\n recursiveSearchNodes(node.childrenAfterGroup);\n keyParts.pop();\n }\n });\n }\n}\n\nvar RowNodeUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n sortRowNodesByOrder: sortRowNodesByOrder,\n traverseNodesWithKey: traverseNodesWithKey\n});\n\nfunction convertToSet(list) {\n var set = new Set();\n list.forEach(function (x) { return set.add(x); });\n return set;\n}\n\nvar SetUtils = /*#__PURE__*/Object.freeze({\n __proto__: null,\n convertToSet: convertToSet\n});\n\nvar __assign$m = (undefined && undefined.__assign) || function () {\n __assign$m = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$m.apply(this, arguments);\n};\nvar utils = __assign$m(__assign$m(__assign$m(__assign$m(__assign$m(__assign$m(__assign$m(__assign$m(__assign$m(__assign$m(__assign$m(__assign$m(__assign$m(__assign$m(__assign$m(__assign$m(__assign$m(__assign$m({}, AriaUtils), ArrayUtils), BrowserUtils), DateUtils), DomUtils), EventUtils), FunctionUtils), FuzzyMatchUtils), GenericUtils), IconUtils), KeyboardUtils), MapUtils), MouseUtils), NumberUtils), ObjectUtils), RowNodeUtils), SetUtils), StringUtils);\nvar _ = utils;\n\nvar NumberSequence = /** @class */ (function () {\n function NumberSequence(initValue, step) {\n if (initValue === void 0) { initValue = 0; }\n if (step === void 0) { step = 1; }\n this.nextValue = initValue;\n this.step = step;\n }\n NumberSequence.prototype.next = function () {\n var valToReturn = this.nextValue;\n this.nextValue += this.step;\n return valToReturn;\n };\n NumberSequence.prototype.peek = function () {\n return this.nextValue;\n };\n NumberSequence.prototype.skip = function (count) {\n this.nextValue += count;\n };\n return NumberSequence;\n}());\n\nvar AgPromiseStatus;\n(function (AgPromiseStatus) {\n AgPromiseStatus[AgPromiseStatus[\"IN_PROGRESS\"] = 0] = \"IN_PROGRESS\";\n AgPromiseStatus[AgPromiseStatus[\"RESOLVED\"] = 1] = \"RESOLVED\";\n})(AgPromiseStatus || (AgPromiseStatus = {}));\nvar AgPromise = /** @class */ (function () {\n function AgPromise(callback) {\n var _this = this;\n this.status = AgPromiseStatus.IN_PROGRESS;\n this.resolution = null;\n this.waiters = [];\n callback(function (value) { return _this.onDone(value); }, function (params) { return _this.onReject(params); });\n }\n AgPromise.all = function (promises) {\n return new AgPromise(function (resolve) {\n var remainingToResolve = promises.length;\n var combinedValues = new Array(remainingToResolve);\n promises.forEach(function (promise, index) {\n promise.then(function (value) {\n combinedValues[index] = value;\n remainingToResolve--;\n if (remainingToResolve === 0) {\n resolve(combinedValues);\n }\n });\n });\n });\n };\n AgPromise.resolve = function (value) {\n if (value === void 0) { value = null; }\n return new AgPromise(function (resolve) { return resolve(value); });\n };\n AgPromise.prototype.then = function (func) {\n var _this = this;\n return new AgPromise(function (resolve) {\n if (_this.status === AgPromiseStatus.RESOLVED) {\n resolve(func(_this.resolution));\n }\n else {\n _this.waiters.push(function (value) { return resolve(func(value)); });\n }\n });\n };\n AgPromise.prototype.resolveNow = function (ifNotResolvedValue, ifResolved) {\n return this.status === AgPromiseStatus.RESOLVED ? ifResolved(this.resolution) : ifNotResolvedValue;\n };\n AgPromise.prototype.onDone = function (value) {\n this.status = AgPromiseStatus.RESOLVED;\n this.resolution = value;\n this.waiters.forEach(function (waiter) { return waiter(value); });\n };\n AgPromise.prototype.onReject = function (params) {\n console.warn('TBI');\n };\n return AgPromise;\n}());\n\n/**\n * A Util Class only used when debugging for printing time to console\n */\nvar Timer = /** @class */ (function () {\n function Timer() {\n this.timestamp = new Date().getTime();\n }\n Timer.prototype.print = function (msg) {\n var duration = (new Date().getTime()) - this.timestamp;\n console.info(msg + \" = \" + duration);\n this.timestamp = new Date().getTime();\n };\n return Timer;\n}());\n\nvar __extends$30 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$l = (undefined && undefined.__assign) || function () {\n __assign$l = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$l.apply(this, arguments);\n};\nvar __decorate$2x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TooltipStates;\n(function (TooltipStates) {\n TooltipStates[TooltipStates[\"NOTHING\"] = 0] = \"NOTHING\";\n TooltipStates[TooltipStates[\"WAITING_TO_SHOW\"] = 1] = \"WAITING_TO_SHOW\";\n TooltipStates[TooltipStates[\"SHOWING\"] = 2] = \"SHOWING\";\n})(TooltipStates || (TooltipStates = {}));\nvar TooltipTrigger;\n(function (TooltipTrigger) {\n TooltipTrigger[TooltipTrigger[\"HOVER\"] = 0] = \"HOVER\";\n TooltipTrigger[TooltipTrigger[\"FOCUS\"] = 1] = \"FOCUS\";\n})(TooltipTrigger || (TooltipTrigger = {}));\nvar CustomTooltipFeature = /** @class */ (function (_super) {\n __extends$30(CustomTooltipFeature, _super);\n function CustomTooltipFeature(parentComp, tooltipShowDelayOverride, tooltipHideDelayOverride) {\n var _this = _super.call(this) || this;\n _this.parentComp = parentComp;\n _this.tooltipShowDelayOverride = tooltipShowDelayOverride;\n _this.tooltipHideDelayOverride = tooltipHideDelayOverride;\n _this.DEFAULT_SHOW_TOOLTIP_DELAY = 2000;\n _this.DEFAULT_HIDE_TOOLTIP_DELAY = 10000;\n _this.SHOW_QUICK_TOOLTIP_DIFF = 1000;\n _this.FADE_OUT_TOOLTIP_TIMEOUT = 1000;\n _this.INTERACTIVE_HIDE_DELAY = 100;\n _this.interactionEnabled = false;\n _this.isInteractingWithTooltip = false;\n _this.state = TooltipStates.NOTHING;\n // when showing the tooltip, we need to make sure it's the most recent instance we request, as due to\n // async we could request two tooltips before the first instance returns, in which case we should\n // disregard the second instance.\n _this.tooltipInstanceCount = 0;\n _this.tooltipMouseTrack = false;\n return _this;\n }\n CustomTooltipFeature.prototype.postConstruct = function () {\n if (this.gridOptionsService.is('tooltipInteraction')) {\n this.interactionEnabled = true;\n }\n this.tooltipTrigger = this.getTooltipTrigger();\n this.tooltipShowDelay = this.getTooltipDelay('show');\n this.tooltipHideDelay = this.getTooltipDelay('hide');\n this.tooltipMouseTrack = this.gridOptionsService.is('tooltipMouseTrack');\n var el = this.parentComp.getGui();\n if (this.tooltipTrigger === TooltipTrigger.HOVER) {\n this.addManagedListener(el, 'mouseenter', this.onMouseEnter.bind(this));\n this.addManagedListener(el, 'mouseleave', this.onMouseLeave.bind(this));\n }\n if (this.tooltipTrigger === TooltipTrigger.FOCUS) {\n this.addManagedListener(el, 'focusin', this.onFocusIn.bind(this));\n this.addManagedListener(el, 'focusout', this.onFocusOut.bind(this));\n }\n this.addManagedListener(el, 'mousemove', this.onMouseMove.bind(this));\n if (!this.interactionEnabled) {\n this.addManagedListener(el, 'mousedown', this.onMouseDown.bind(this));\n this.addManagedListener(el, 'keydown', this.onKeyDown.bind(this));\n }\n };\n CustomTooltipFeature.prototype.getGridOptionsTooltipDelay = function (delayOption) {\n var delay = this.gridOptionsService.getNum(delayOption);\n if (exists(delay)) {\n if (delay < 0) {\n doOnce(function () { return console.warn(\"AG Grid: \" + delayOption + \" should not be lower than 0\"); }, delayOption + \"Warn\");\n }\n return Math.max(200, delay);\n }\n return undefined;\n };\n CustomTooltipFeature.prototype.getTooltipDelay = function (type) {\n var _a, _b, _c, _d;\n if (type === 'show') {\n return (_b = (_a = this.getGridOptionsTooltipDelay('tooltipShowDelay')) !== null && _a !== void 0 ? _a : this.tooltipShowDelayOverride) !== null && _b !== void 0 ? _b : this.DEFAULT_SHOW_TOOLTIP_DELAY;\n }\n else {\n return (_d = (_c = this.getGridOptionsTooltipDelay('tooltipHideDelay')) !== null && _c !== void 0 ? _c : this.tooltipHideDelayOverride) !== null && _d !== void 0 ? _d : this.DEFAULT_HIDE_TOOLTIP_DELAY;\n }\n };\n CustomTooltipFeature.prototype.destroy = function () {\n // if this component gets destroyed while tooltip is showing, need to make sure\n // we don't end with no mouseLeave event resulting in zombie tooltip\n this.setToDoNothing();\n _super.prototype.destroy.call(this);\n };\n CustomTooltipFeature.prototype.getTooltipTrigger = function () {\n var trigger = this.gridOptionsService.get('tooltipTrigger');\n if (!trigger || trigger === 'hover') {\n return TooltipTrigger.HOVER;\n }\n return TooltipTrigger.FOCUS;\n };\n CustomTooltipFeature.prototype.onMouseEnter = function (e) {\n var _this = this;\n // if `interactiveTooltipTimeoutId` is set, it means that this cell has a tooltip\n // and we are in the process of moving the cursor from the tooltip back to the cell\n // so we need to unlock this service here.\n if (this.interactionEnabled && this.interactiveTooltipTimeoutId) {\n this.unlockService();\n this.startHideTimeout();\n }\n if (isIOSUserAgent()) {\n return;\n }\n if (CustomTooltipFeature.isLocked) {\n this.showTooltipTimeoutId = window.setTimeout(function () {\n _this.prepareToShowTooltip(e);\n }, this.INTERACTIVE_HIDE_DELAY);\n }\n else {\n this.prepareToShowTooltip(e);\n }\n };\n CustomTooltipFeature.prototype.onMouseMove = function (e) {\n // there is a delay from the time we mouseOver a component and the time the\n // tooltip is displayed, so we need to track mousemove to be able to correctly\n // position the tooltip when showTooltip is called.\n if (this.lastMouseEvent) {\n this.lastMouseEvent = e;\n }\n if (this.tooltipMouseTrack &&\n this.state === TooltipStates.SHOWING &&\n this.tooltipComp) {\n this.positionTooltip();\n }\n };\n CustomTooltipFeature.prototype.onMouseDown = function () {\n this.setToDoNothing();\n };\n CustomTooltipFeature.prototype.onMouseLeave = function () {\n // if interaction is enabled, we need to verify if the user is moving\n // the cursor from the cell onto the tooltip, so we lock the service \n // for 100ms to prevent other tooltips from being created while this is happening.\n if (this.interactionEnabled) {\n this.lockService();\n }\n else {\n this.setToDoNothing();\n }\n };\n CustomTooltipFeature.prototype.onFocusIn = function () {\n this.prepareToShowTooltip();\n };\n CustomTooltipFeature.prototype.onFocusOut = function (e) {\n var _a;\n var relatedTarget = e.relatedTarget;\n var parentCompGui = this.parentComp.getGui();\n var tooltipGui = (_a = this.tooltipComp) === null || _a === void 0 ? void 0 : _a.getGui();\n if (this.isInteractingWithTooltip ||\n parentCompGui.contains(relatedTarget) ||\n (this.interactionEnabled && (tooltipGui === null || tooltipGui === void 0 ? void 0 : tooltipGui.contains(relatedTarget)))) {\n return;\n }\n this.setToDoNothing();\n };\n CustomTooltipFeature.prototype.onKeyDown = function () {\n this.setToDoNothing();\n };\n CustomTooltipFeature.prototype.prepareToShowTooltip = function (mouseEvent) {\n // every mouseenter should be following by a mouseleave, however for some unknown, it's possible for\n // mouseenter to be called twice in a row, which can happen if editing the cell. this was reported\n // in https://ag-grid.atlassian.net/browse/AG-4422. to get around this, we check the state, and if\n // state is != nothing, then we know mouseenter was already received.\n if (this.state != TooltipStates.NOTHING || CustomTooltipFeature.isLocked) {\n return false;\n }\n // if we are showing the tooltip because of focus, no delay at all\n // if another tooltip was hidden very recently, we only wait 200ms to show, not the normal waiting time\n var delay = 0;\n if (mouseEvent) {\n delay = this.isLastTooltipHiddenRecently() ? 200 : this.tooltipShowDelay;\n }\n this.lastMouseEvent = mouseEvent || null;\n this.showTooltipTimeoutId = window.setTimeout(this.showTooltip.bind(this), delay);\n this.state = TooltipStates.WAITING_TO_SHOW;\n return true;\n };\n CustomTooltipFeature.prototype.isLastTooltipHiddenRecently = function () {\n // return true if <1000ms since last time we hid a tooltip\n var now = new Date().getTime();\n var then = CustomTooltipFeature.lastTooltipHideTime;\n return (now - then) < this.SHOW_QUICK_TOOLTIP_DIFF;\n };\n CustomTooltipFeature.prototype.setToDoNothing = function () {\n if (this.state === TooltipStates.SHOWING) {\n this.hideTooltip();\n }\n if (this.onBodyScrollEventCallback) {\n this.onBodyScrollEventCallback();\n this.onBodyScrollEventCallback = undefined;\n }\n if (this.onColumnMovedEventCallback) {\n this.onColumnMovedEventCallback();\n this.onColumnMovedEventCallback = undefined;\n }\n this.clearTimeouts();\n this.state = TooltipStates.NOTHING;\n this.lastMouseEvent = null;\n };\n CustomTooltipFeature.prototype.showTooltip = function () {\n var params = __assign$l({}, this.parentComp.getTooltipParams());\n if (!exists(params.value)) {\n this.setToDoNothing();\n return;\n }\n this.state = TooltipStates.SHOWING;\n this.tooltipInstanceCount++;\n // we pass in tooltipInstanceCount so the callback knows what the count was when\n // we requested the tooltip, so if another tooltip was requested in the mean time\n // we disregard it\n var callback = this.newTooltipComponentCallback.bind(this, this.tooltipInstanceCount);\n var userDetails = this.userComponentFactory.getTooltipCompDetails(params);\n userDetails.newAgStackInstance().then(callback);\n };\n CustomTooltipFeature.prototype.hideTooltip = function (forceHide) {\n if (!forceHide && this.isInteractingWithTooltip) {\n return;\n }\n // check if comp exists - due to async, although we asked for\n // one, the instance may not be back yet\n if (this.tooltipComp) {\n this.destroyTooltipComp();\n CustomTooltipFeature.lastTooltipHideTime = new Date().getTime();\n }\n var event = {\n type: Events.EVENT_TOOLTIP_HIDE,\n parentGui: this.parentComp.getGui()\n };\n this.eventService.dispatchEvent(event);\n this.state = TooltipStates.NOTHING;\n };\n CustomTooltipFeature.prototype.newTooltipComponentCallback = function (tooltipInstanceCopy, tooltipComp) {\n var compNoLongerNeeded = this.state !== TooltipStates.SHOWING || this.tooltipInstanceCount !== tooltipInstanceCopy;\n if (compNoLongerNeeded) {\n this.getContext().destroyBean(tooltipComp);\n return;\n }\n var eGui = tooltipComp.getGui();\n this.tooltipComp = tooltipComp;\n if (!eGui.classList.contains('ag-tooltip')) {\n eGui.classList.add('ag-tooltip-custom');\n }\n if (this.tooltipTrigger === TooltipTrigger.HOVER) {\n eGui.classList.add('ag-tooltip-animate');\n }\n if (this.interactionEnabled) {\n eGui.classList.add('ag-tooltip-interactive');\n }\n var translate = this.localeService.getLocaleTextFunc();\n var addPopupRes = this.popupService.addPopup({\n eChild: eGui,\n ariaLabel: translate('ariaLabelTooltip', 'Tooltip')\n });\n if (addPopupRes) {\n this.tooltipPopupDestroyFunc = addPopupRes.hideFunc;\n }\n this.positionTooltip();\n if (this.tooltipTrigger === TooltipTrigger.FOCUS) {\n this.onBodyScrollEventCallback = this.addManagedListener(this.eventService, Events.EVENT_BODY_SCROLL, this.setToDoNothing.bind(this));\n this.onColumnMovedEventCallback = this.addManagedListener(this.eventService, Events.EVENT_COLUMN_MOVED, this.setToDoNothing.bind(this));\n }\n if (this.interactionEnabled) {\n if (this.tooltipTrigger === TooltipTrigger.HOVER) {\n this.tooltipMouseEnterListener = this.addManagedListener(eGui, 'mouseenter', this.onTooltipMouseEnter.bind(this)) || null;\n this.tooltipMouseLeaveListener = this.addManagedListener(eGui, 'mouseleave', this.onTooltipMouseLeave.bind(this)) || null;\n }\n else {\n this.tooltipFocusInListener = this.addManagedListener(eGui, 'focusin', this.onTooltipFocusIn.bind(this)) || null;\n this.tooltipFocusOutListener = this.addManagedListener(eGui, 'focusout', this.onTooltipFocusOut.bind(this)) || null;\n }\n }\n var event = {\n type: Events.EVENT_TOOLTIP_SHOW,\n tooltipGui: eGui,\n parentGui: this.parentComp.getGui()\n };\n this.eventService.dispatchEvent(event);\n this.startHideTimeout();\n };\n CustomTooltipFeature.prototype.onTooltipMouseEnter = function () {\n this.isInteractingWithTooltip = true;\n this.unlockService();\n };\n CustomTooltipFeature.prototype.onTooltipMouseLeave = function () {\n this.isInteractingWithTooltip = false;\n this.lockService();\n };\n CustomTooltipFeature.prototype.onTooltipFocusIn = function () {\n this.isInteractingWithTooltip = true;\n };\n CustomTooltipFeature.prototype.onTooltipFocusOut = function (e) {\n var _a;\n var parentGui = this.parentComp.getGui();\n var tooltipGui = (_a = this.tooltipComp) === null || _a === void 0 ? void 0 : _a.getGui();\n var relatedTarget = e.relatedTarget;\n // focusout is dispatched when inner elements lose focus\n // so we need to verify if focus is contained within the tooltip\n if (tooltipGui === null || tooltipGui === void 0 ? void 0 : tooltipGui.contains(relatedTarget)) {\n return;\n }\n this.isInteractingWithTooltip = false;\n // if we move the focus from the tooltip back to the original cell\n // the tooltip should remain open, but we need to restart the hide timeout counter\n if (parentGui.contains(relatedTarget)) {\n this.startHideTimeout();\n }\n // if the parent cell doesn't contain the focus, simply hide the tooltip\n else {\n this.hideTooltip();\n }\n };\n CustomTooltipFeature.prototype.positionTooltip = function () {\n var params = {\n type: 'tooltip',\n ePopup: this.tooltipComp.getGui(),\n nudgeY: 18,\n skipObserver: this.tooltipMouseTrack\n };\n if (this.lastMouseEvent) {\n this.popupService.positionPopupUnderMouseEvent(__assign$l(__assign$l({}, params), { mouseEvent: this.lastMouseEvent }));\n }\n else {\n this.popupService.positionPopupByComponent(__assign$l(__assign$l({}, params), { eventSource: this.parentComp.getGui(), position: 'under', keepWithinBounds: true, nudgeY: 5 }));\n }\n };\n CustomTooltipFeature.prototype.destroyTooltipComp = function () {\n var _this = this;\n // add class to fade out the tooltip\n this.tooltipComp.getGui().classList.add('ag-tooltip-hiding');\n // make local copies of these variables, as we use them in the async function below,\n // and we clear then to 'undefined' later, so need to take a copy before they are undefined.\n var tooltipPopupDestroyFunc = this.tooltipPopupDestroyFunc;\n var tooltipComp = this.tooltipComp;\n var delay = this.tooltipTrigger === TooltipTrigger.HOVER ? this.FADE_OUT_TOOLTIP_TIMEOUT : 0;\n window.setTimeout(function () {\n tooltipPopupDestroyFunc();\n _this.getContext().destroyBean(tooltipComp);\n }, delay);\n this.clearTooltipListeners();\n this.tooltipPopupDestroyFunc = undefined;\n this.tooltipComp = undefined;\n };\n CustomTooltipFeature.prototype.clearTooltipListeners = function () {\n [\n this.tooltipMouseEnterListener, this.tooltipMouseLeaveListener,\n this.tooltipFocusInListener, this.tooltipFocusOutListener\n ].forEach(function (listener) {\n if (listener) {\n listener();\n }\n });\n this.tooltipMouseEnterListener = this.tooltipMouseLeaveListener =\n this.tooltipFocusInListener = this.tooltipFocusOutListener = null;\n };\n CustomTooltipFeature.prototype.lockService = function () {\n var _this = this;\n CustomTooltipFeature.isLocked = true;\n this.interactiveTooltipTimeoutId = window.setTimeout(function () {\n _this.unlockService();\n _this.setToDoNothing();\n }, this.INTERACTIVE_HIDE_DELAY);\n };\n CustomTooltipFeature.prototype.unlockService = function () {\n CustomTooltipFeature.isLocked = false;\n this.clearInteractiveTimeout();\n };\n CustomTooltipFeature.prototype.startHideTimeout = function () {\n this.clearHideTimeout();\n this.hideTooltipTimeoutId = window.setTimeout(this.hideTooltip.bind(this), this.tooltipHideDelay);\n };\n CustomTooltipFeature.prototype.clearShowTimeout = function () {\n if (!this.showTooltipTimeoutId) {\n return;\n }\n window.clearTimeout(this.showTooltipTimeoutId);\n this.showTooltipTimeoutId = undefined;\n };\n CustomTooltipFeature.prototype.clearHideTimeout = function () {\n if (!this.hideTooltipTimeoutId) {\n return;\n }\n window.clearTimeout(this.hideTooltipTimeoutId);\n this.hideTooltipTimeoutId = undefined;\n };\n CustomTooltipFeature.prototype.clearInteractiveTimeout = function () {\n if (!this.interactiveTooltipTimeoutId) {\n return;\n }\n window.clearTimeout(this.interactiveTooltipTimeoutId);\n this.interactiveTooltipTimeoutId = undefined;\n };\n CustomTooltipFeature.prototype.clearTimeouts = function () {\n this.clearShowTimeout();\n this.clearHideTimeout();\n this.clearInteractiveTimeout();\n };\n CustomTooltipFeature.isLocked = false;\n __decorate$2x([\n Autowired('popupService')\n ], CustomTooltipFeature.prototype, \"popupService\", void 0);\n __decorate$2x([\n Autowired('userComponentFactory')\n ], CustomTooltipFeature.prototype, \"userComponentFactory\", void 0);\n __decorate$2x([\n PostConstruct\n ], CustomTooltipFeature.prototype, \"postConstruct\", null);\n return CustomTooltipFeature;\n}(BeanStub));\n\nvar CssClassManager = /** @class */ (function () {\n function CssClassManager(getGui) {\n // to minimise DOM hits, we only apply CSS classes if they have changed. as adding a CSS class that is already\n // there, or removing one that wasn't present, all takes CPU.\n this.cssClassStates = {};\n this.getGui = getGui;\n }\n CssClassManager.prototype.addCssClass = function (className) {\n var _this = this;\n var list = (className || '').split(' ');\n if (list.length > 1) {\n list.forEach(function (cls) { return _this.addCssClass(cls); });\n return;\n }\n var updateNeeded = this.cssClassStates[className] !== true;\n if (updateNeeded && className.length) {\n var eGui = this.getGui();\n if (eGui) {\n eGui.classList.add(className);\n }\n this.cssClassStates[className] = true;\n }\n };\n CssClassManager.prototype.removeCssClass = function (className) {\n var _this = this;\n var list = (className || '').split(' ');\n if (list.length > 1) {\n list.forEach(function (cls) { return _this.removeCssClass(cls); });\n return;\n }\n var updateNeeded = this.cssClassStates[className] !== false;\n if (updateNeeded && className.length) {\n var eGui = this.getGui();\n if (eGui) {\n eGui.classList.remove(className);\n }\n this.cssClassStates[className] = false;\n }\n };\n CssClassManager.prototype.containsCssClass = function (className) {\n var eGui = this.getGui();\n if (!eGui) {\n return false;\n }\n return eGui.classList.contains(className);\n };\n CssClassManager.prototype.addOrRemoveCssClass = function (className, addOrRemove) {\n var _this = this;\n if (!className) {\n return;\n }\n // we check for spaces before doing the split, as doing the split\n // created a performance problem (on windows only, see AG-6765)\n if (className.indexOf(' ') >= 0) {\n var list = (className || '').split(' ');\n if (list.length > 1) {\n list.forEach(function (cls) { return _this.addOrRemoveCssClass(cls, addOrRemove); });\n return;\n }\n }\n var updateNeeded = this.cssClassStates[className] !== addOrRemove;\n if (updateNeeded && className.length) {\n var eGui = this.getGui();\n if (eGui) {\n eGui.classList.toggle(className, addOrRemove);\n }\n this.cssClassStates[className] = addOrRemove;\n }\n };\n return CssClassManager;\n}());\n\nvar __extends$2$ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar compIdSequence = new NumberSequence();\nvar Component = /** @class */ (function (_super) {\n __extends$2$(Component, _super);\n function Component(template) {\n var _this = _super.call(this) || this;\n // if false, then CSS class \"ag-hidden\" is applied, which sets \"display: none\"\n _this.displayed = true;\n // if false, then CSS class \"ag-invisible\" is applied, which sets \"visibility: hidden\"\n _this.visible = true;\n // unique id for this row component. this is used for getting a reference to the HTML dom.\n // we cannot use the RowNode id as this is not unique (due to animation, old rows can be lying\n // around as we create a new rowComp instance for the same row node).\n _this.compId = compIdSequence.next();\n _this.cssClassManager = new CssClassManager(function () { return _this.eGui; });\n if (template) {\n _this.setTemplate(template);\n }\n return _this;\n }\n Component.prototype.preConstructOnComponent = function () {\n this.usingBrowserTooltips = this.gridOptionsService.is('enableBrowserTooltips');\n };\n Component.prototype.getCompId = function () {\n return this.compId;\n };\n Component.prototype.getTooltipParams = function () {\n return {\n value: this.tooltipText,\n location: 'UNKNOWN'\n };\n };\n Component.prototype.setTooltip = function (newTooltipText, showDelayOverride, hideDelayOverride) {\n var _this = this;\n var removeTooltip = function () {\n if (_this.usingBrowserTooltips) {\n _this.getGui().removeAttribute('title');\n }\n else {\n _this.tooltipFeature = _this.destroyBean(_this.tooltipFeature);\n }\n };\n var addTooltip = function () {\n if (_this.usingBrowserTooltips) {\n _this.getGui().setAttribute('title', _this.tooltipText);\n }\n else {\n _this.tooltipFeature = _this.createBean(new CustomTooltipFeature(_this, showDelayOverride, hideDelayOverride));\n }\n };\n if (this.tooltipText != newTooltipText) {\n if (this.tooltipText) {\n removeTooltip();\n }\n if (newTooltipText != null) {\n this.tooltipText = newTooltipText;\n if (this.tooltipText) {\n addTooltip();\n }\n }\n }\n };\n // for registered components only, eg creates AgCheckbox instance from ag-checkbox HTML tag\n Component.prototype.createChildComponentsFromTags = function (parentNode, paramsMap) {\n var _this = this;\n // we MUST take a copy of the list first, as the 'swapComponentForNode' adds comments into the DOM\n // which messes up the traversal order of the children.\n var childNodeList = copyNodeList(parentNode.childNodes);\n childNodeList.forEach(function (childNode) {\n if (!(childNode instanceof HTMLElement)) {\n return;\n }\n var childComp = _this.createComponentFromElement(childNode, function (childComp) {\n // copy over all attributes, including css classes, so any attributes user put on the tag\n // wll be carried across\n var childGui = childComp.getGui();\n if (childGui) {\n _this.copyAttributesFromNode(childNode, childComp.getGui());\n }\n }, paramsMap);\n if (childComp) {\n if (childComp.addItems && childNode.children.length) {\n _this.createChildComponentsFromTags(childNode, paramsMap);\n // converting from HTMLCollection to Array\n var items = Array.prototype.slice.call(childNode.children);\n childComp.addItems(items);\n }\n // replace the tag (eg ag-checkbox) with the proper HTMLElement (eg 'div') in the dom\n _this.swapComponentForNode(childComp, parentNode, childNode);\n }\n else if (childNode.childNodes) {\n _this.createChildComponentsFromTags(childNode, paramsMap);\n }\n });\n };\n Component.prototype.createComponentFromElement = function (element, afterPreCreateCallback, paramsMap) {\n var key = element.nodeName;\n var componentParams = paramsMap ? paramsMap[element.getAttribute('ref')] : undefined;\n var ComponentClass = this.agStackComponentsRegistry.getComponentClass(key);\n if (ComponentClass) {\n Component.elementGettingCreated = element;\n var newComponent = new ComponentClass(componentParams);\n newComponent.setParentComponent(this);\n this.createBean(newComponent, null, afterPreCreateCallback);\n return newComponent;\n }\n return null;\n };\n Component.prototype.copyAttributesFromNode = function (source, dest) {\n iterateNamedNodeMap(source.attributes, function (name, value) { return dest.setAttribute(name, value); });\n };\n Component.prototype.swapComponentForNode = function (newComponent, parentNode, childNode) {\n var eComponent = newComponent.getGui();\n parentNode.replaceChild(eComponent, childNode);\n parentNode.insertBefore(document.createComment(childNode.nodeName), eComponent);\n this.addDestroyFunc(this.destroyBean.bind(this, newComponent));\n this.swapInComponentForQuerySelectors(newComponent, childNode);\n };\n Component.prototype.swapInComponentForQuerySelectors = function (newComponent, childNode) {\n var thisNoType = this;\n this.iterateOverQuerySelectors(function (querySelector) {\n if (thisNoType[querySelector.attributeName] === childNode) {\n thisNoType[querySelector.attributeName] = newComponent;\n }\n });\n };\n Component.prototype.iterateOverQuerySelectors = function (action) {\n var thisPrototype = Object.getPrototypeOf(this);\n while (thisPrototype != null) {\n var metaData = thisPrototype.__agComponentMetaData;\n var currentProtoName = getFunctionName(thisPrototype.constructor);\n if (metaData && metaData[currentProtoName] && metaData[currentProtoName].querySelectors) {\n metaData[currentProtoName].querySelectors.forEach(function (querySelector) { return action(querySelector); });\n }\n thisPrototype = Object.getPrototypeOf(thisPrototype);\n }\n };\n Component.prototype.activateTabIndex = function (elements) {\n var tabIndex = this.gridOptionsService.getNum('tabIndex') || 0;\n if (!elements) {\n elements = [];\n }\n if (!elements.length) {\n elements.push(this.getGui());\n }\n elements.forEach(function (el) { return el.setAttribute('tabindex', tabIndex.toString()); });\n };\n Component.prototype.setTemplate = function (template, paramsMap) {\n var eGui = loadTemplate(template);\n this.setTemplateFromElement(eGui, paramsMap);\n };\n Component.prototype.setTemplateFromElement = function (element, paramsMap) {\n this.eGui = element;\n this.eGui.__agComponent = this;\n this.wireQuerySelectors();\n // context will not be available when user sets template in constructor\n if (!!this.getContext()) {\n this.createChildComponentsFromTags(this.getGui(), paramsMap);\n }\n };\n Component.prototype.createChildComponentsPreConstruct = function () {\n // ui exists if user sets template in constructor. when this happens, we have to wait for the context\n // to be autoWired first before we can create child components.\n if (!!this.getGui()) {\n this.createChildComponentsFromTags(this.getGui());\n }\n };\n Component.prototype.wireQuerySelectors = function () {\n var _this = this;\n if (!this.eGui) {\n return;\n }\n var thisNoType = this;\n this.iterateOverQuerySelectors(function (querySelector) {\n var setResult = function (result) { return thisNoType[querySelector.attributeName] = result; };\n // if it's a ref selector, and match is on top level component, we return\n // the element. otherwise no way of components putting ref=xxx on the top\n // level element as querySelector only looks at children.\n var topLevelRefMatch = querySelector.refSelector\n && _this.getAttribute('ref') === querySelector.refSelector;\n if (topLevelRefMatch) {\n setResult(_this.eGui);\n }\n else {\n // otherwise use querySelector, which looks at children\n var resultOfQuery = _this.eGui.querySelector(querySelector.querySelector);\n if (resultOfQuery) {\n setResult(resultOfQuery.__agComponent || resultOfQuery);\n }\n }\n });\n };\n Component.prototype.getGui = function () {\n return this.eGui;\n };\n Component.prototype.getFocusableElement = function () {\n return this.eGui;\n };\n Component.prototype.getAriaElement = function () {\n return this.getFocusableElement();\n };\n Component.prototype.setParentComponent = function (component) {\n this.parentComponent = component;\n };\n Component.prototype.getParentComponent = function () {\n return this.parentComponent;\n };\n // this method is for older code, that wants to provide the gui element,\n // it is not intended for this to be in ag-Stack\n Component.prototype.setGui = function (eGui) {\n this.eGui = eGui;\n };\n Component.prototype.queryForHtmlElement = function (cssSelector) {\n return this.eGui.querySelector(cssSelector);\n };\n Component.prototype.queryForHtmlInputElement = function (cssSelector) {\n return this.eGui.querySelector(cssSelector);\n };\n Component.prototype.appendChild = function (newChild, container) {\n if (newChild == null) {\n return;\n }\n if (!container) {\n container = this.eGui;\n }\n if (isNodeOrElement(newChild)) {\n container.appendChild(newChild);\n }\n else {\n var childComponent = newChild;\n container.appendChild(childComponent.getGui());\n }\n };\n Component.prototype.isDisplayed = function () {\n return this.displayed;\n };\n Component.prototype.setVisible = function (visible, options) {\n if (options === void 0) { options = {}; }\n if (visible !== this.visible) {\n this.visible = visible;\n var skipAriaHidden = options.skipAriaHidden;\n setVisible(this.eGui, visible, { skipAriaHidden: skipAriaHidden });\n }\n };\n Component.prototype.setDisplayed = function (displayed, options) {\n if (options === void 0) { options = {}; }\n if (displayed !== this.displayed) {\n this.displayed = displayed;\n var skipAriaHidden = options.skipAriaHidden;\n setDisplayed(this.eGui, displayed, { skipAriaHidden: skipAriaHidden });\n var event_1 = {\n type: Component.EVENT_DISPLAYED_CHANGED,\n visible: this.displayed\n };\n this.dispatchEvent(event_1);\n }\n };\n Component.prototype.destroy = function () {\n if (this.tooltipFeature) {\n this.tooltipFeature = this.destroyBean(this.tooltipFeature);\n }\n if (this.parentComponent) {\n this.parentComponent = undefined;\n }\n var eGui = this.eGui;\n if (eGui && eGui.__agComponent) {\n eGui.__agComponent = undefined;\n }\n _super.prototype.destroy.call(this);\n };\n Component.prototype.addGuiEventListener = function (event, listener, options) {\n var _this = this;\n this.eGui.addEventListener(event, listener, options);\n this.addDestroyFunc(function () { return _this.eGui.removeEventListener(event, listener); });\n };\n Component.prototype.addCssClass = function (className) {\n this.cssClassManager.addCssClass(className);\n };\n Component.prototype.removeCssClass = function (className) {\n this.cssClassManager.removeCssClass(className);\n };\n Component.prototype.containsCssClass = function (className) {\n return this.cssClassManager.containsCssClass(className);\n };\n Component.prototype.addOrRemoveCssClass = function (className, addOrRemove) {\n this.cssClassManager.addOrRemoveCssClass(className, addOrRemove);\n };\n Component.prototype.getAttribute = function (key) {\n var eGui = this.eGui;\n return eGui ? eGui.getAttribute(key) : null;\n };\n Component.prototype.getRefElement = function (refName) {\n return this.queryForHtmlElement(\"[ref=\\\"\" + refName + \"\\\"]\");\n };\n Component.EVENT_DISPLAYED_CHANGED = 'displayedChanged';\n __decorate$2w([\n Autowired('agStackComponentsRegistry')\n ], Component.prototype, \"agStackComponentsRegistry\", void 0);\n __decorate$2w([\n PreConstruct\n ], Component.prototype, \"preConstructOnComponent\", null);\n __decorate$2w([\n PreConstruct\n ], Component.prototype, \"createChildComponentsPreConstruct\", null);\n return Component;\n}(BeanStub));\n\nfunction QuerySelector(selector) {\n return querySelectorFunc.bind(this, selector, undefined);\n}\nfunction RefSelector(ref) {\n return querySelectorFunc.bind(this, \"[ref=\" + ref + \"]\", ref);\n}\nfunction querySelectorFunc(selector, refSelector, classPrototype, methodOrAttributeName, index) {\n if (selector === null) {\n console.error('AG Grid: QuerySelector selector should not be null');\n return;\n }\n if (typeof index === 'number') {\n console.error('AG Grid: QuerySelector should be on an attribute');\n return;\n }\n addToObjectProps(classPrototype, 'querySelectors', {\n attributeName: methodOrAttributeName,\n querySelector: selector,\n refSelector: refSelector\n });\n}\n// // think we should take this out, put property bindings on the\n// export function Method(eventName?: string): Function {\n// return methodFunc.bind(this, eventName);\n// }\n//\n// function methodFunc(alias: string, target: Object, methodName: string) {\n// if (alias === null) {\n// console.error(\"AG Grid: EventListener eventName should not be null\");\n// return;\n// }\n//\n// addToObjectProps(target, 'methods', {\n// methodName: methodName,\n// alias: alias\n// });\n// }\nfunction addToObjectProps(target, key, value) {\n // it's an attribute on the class\n var props = getOrCreateProps(target, getFunctionName(target.constructor));\n if (!props[key]) {\n props[key] = [];\n }\n props[key].push(value);\n}\nfunction getOrCreateProps(target, instanceName) {\n if (!target.__agComponentMetaData) {\n target.__agComponentMetaData = {};\n }\n if (!target.__agComponentMetaData[instanceName]) {\n target.__agComponentMetaData[instanceName] = {};\n }\n return target.__agComponentMetaData[instanceName];\n}\n\nvar __extends$2_ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// optional floating filter for user provided filters - instead of providing a floating filter,\n// they can provide a getModelAsString() method on the filter instead. this class just displays\n// the string returned from getModelAsString()\nvar ReadOnlyFloatingFilter = /** @class */ (function (_super) {\n __extends$2_(ReadOnlyFloatingFilter, _super);\n function ReadOnlyFloatingFilter() {\n return _super.call(this, /* html */ \"\\n
\\n \\n
\") || this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n ReadOnlyFloatingFilter.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n ReadOnlyFloatingFilter.prototype.init = function (params) {\n this.params = params;\n var displayName = this.columnModel.getDisplayNameForColumn(params.column, 'header', true);\n var translate = this.localeService.getLocaleTextFunc();\n this.eFloatingFilterText\n .setDisabled(true)\n .setInputAriaLabel(displayName + \" \" + translate('ariaFilterInput', 'Filter Input'));\n };\n ReadOnlyFloatingFilter.prototype.onParentModelChanged = function (parentModel) {\n var _this = this;\n if (!parentModel) {\n this.eFloatingFilterText.setValue('');\n return;\n }\n this.params.parentFilterInstance(function (filterInstance) {\n // it would be nice to check if getModelAsString was present before creating this component,\n // however that is not possible, as React Hooks and VueJS don't attached the methods to the Filter until\n // AFTER the filter is created, not allowing inspection before this (we create floating filters as columns\n // are drawn, but the parent filters are only created when needed).\n if (filterInstance.getModelAsString) {\n var modelAsString = filterInstance.getModelAsString(parentModel);\n _this.eFloatingFilterText.setValue(modelAsString);\n }\n });\n };\n ReadOnlyFloatingFilter.prototype.onParamsUpdated = function (params) {\n this.init(params);\n };\n __decorate$2v([\n RefSelector('eFloatingFilterText')\n ], ReadOnlyFloatingFilter.prototype, \"eFloatingFilterText\", void 0);\n __decorate$2v([\n Autowired('columnModel')\n ], ReadOnlyFloatingFilter.prototype, \"columnModel\", void 0);\n return ReadOnlyFloatingFilter;\n}(Component));\n\n/** Provides sync access to async component. Date component can be lazy created - this class encapsulates\n * this by keeping value locally until DateComp has loaded, then passing DateComp the value. */\nvar DateCompWrapper = /** @class */ (function () {\n function DateCompWrapper(context, userComponentFactory, dateComponentParams, eParent) {\n var _this = this;\n this.alive = true;\n this.context = context;\n this.eParent = eParent;\n var compDetails = userComponentFactory.getDateCompDetails(dateComponentParams);\n var promise = compDetails.newAgStackInstance();\n promise.then(function (dateComp) {\n // because async, check the filter still exists after component comes back\n if (!_this.alive) {\n context.destroyBean(dateComp);\n return;\n }\n _this.dateComp = dateComp;\n if (!dateComp) {\n return;\n }\n eParent.appendChild(dateComp.getGui());\n if (dateComp.afterGuiAttached) {\n dateComp.afterGuiAttached();\n }\n if (_this.tempValue) {\n dateComp.setDate(_this.tempValue);\n }\n if (_this.disabled != null) {\n _this.setDateCompDisabled(_this.disabled);\n }\n });\n }\n DateCompWrapper.prototype.destroy = function () {\n this.alive = false;\n this.dateComp = this.context.destroyBean(this.dateComp);\n };\n DateCompWrapper.prototype.getDate = function () {\n return this.dateComp ? this.dateComp.getDate() : this.tempValue;\n };\n DateCompWrapper.prototype.setDate = function (value) {\n if (this.dateComp) {\n this.dateComp.setDate(value);\n }\n else {\n this.tempValue = value;\n }\n };\n DateCompWrapper.prototype.setDisabled = function (disabled) {\n if (this.dateComp) {\n this.setDateCompDisabled(disabled);\n }\n else {\n this.disabled = disabled;\n }\n };\n DateCompWrapper.prototype.setDisplayed = function (displayed) {\n setDisplayed(this.eParent, displayed);\n };\n DateCompWrapper.prototype.setInputPlaceholder = function (placeholder) {\n if (this.dateComp && this.dateComp.setInputPlaceholder) {\n this.dateComp.setInputPlaceholder(placeholder);\n }\n };\n DateCompWrapper.prototype.setInputAriaLabel = function (label) {\n if (this.dateComp && this.dateComp.setInputAriaLabel) {\n this.dateComp.setInputAriaLabel(label);\n }\n };\n DateCompWrapper.prototype.afterGuiAttached = function (params) {\n if (this.dateComp && typeof this.dateComp.afterGuiAttached === 'function') {\n this.dateComp.afterGuiAttached(params);\n }\n };\n DateCompWrapper.prototype.updateParams = function (params) {\n var _a;\n if (((_a = this.dateComp) === null || _a === void 0 ? void 0 : _a.onParamsUpdated) && typeof this.dateComp.onParamsUpdated === 'function') {\n this.dateComp.onParamsUpdated(params);\n }\n };\n DateCompWrapper.prototype.setDateCompDisabled = function (disabled) {\n if (this.dateComp == null) {\n return;\n }\n if (this.dateComp.setDisabled == null) {\n return;\n }\n this.dateComp.setDisabled(disabled);\n };\n return DateCompWrapper;\n}());\n\n/* Common logic for options, used by both filters and floating filters. */\nvar OptionsFactory = /** @class */ (function () {\n function OptionsFactory() {\n this.customFilterOptions = {};\n }\n OptionsFactory.prototype.init = function (params, defaultOptions) {\n this.filterOptions = params.filterOptions || defaultOptions;\n this.mapCustomOptions();\n this.selectDefaultItem(params);\n };\n OptionsFactory.prototype.getFilterOptions = function () {\n return this.filterOptions;\n };\n OptionsFactory.prototype.mapCustomOptions = function () {\n var _this = this;\n if (!this.filterOptions) {\n return;\n }\n this.filterOptions.forEach(function (filterOption) {\n if (typeof filterOption === 'string') {\n return;\n }\n var requiredProperties = [['displayKey'], ['displayName'], ['predicate', 'test']];\n var propertyCheck = function (keys) {\n if (!keys.some(function (key) { return filterOption[key] != null; })) {\n console.warn(\"AG Grid: ignoring FilterOptionDef as it doesn't contain one of '\" + keys + \"'\");\n return false;\n }\n return true;\n };\n if (!requiredProperties.every(propertyCheck)) {\n _this.filterOptions = _this.filterOptions.filter(function (v) { return v === filterOption; }) || [];\n return;\n }\n _this.customFilterOptions[filterOption.displayKey] = filterOption;\n });\n };\n OptionsFactory.prototype.selectDefaultItem = function (params) {\n if (params.defaultOption) {\n this.defaultOption = params.defaultOption;\n }\n else if (this.filterOptions.length >= 1) {\n var firstFilterOption = this.filterOptions[0];\n if (typeof firstFilterOption === 'string') {\n this.defaultOption = firstFilterOption;\n }\n else if (firstFilterOption.displayKey) {\n this.defaultOption = firstFilterOption.displayKey;\n }\n else {\n console.warn(\"AG Grid: invalid FilterOptionDef supplied as it doesn't contain a 'displayKey'\");\n }\n }\n else {\n console.warn('AG Grid: no filter options for filter');\n }\n };\n OptionsFactory.prototype.getDefaultOption = function () {\n return this.defaultOption;\n };\n OptionsFactory.prototype.getCustomOption = function (name) {\n return this.customFilterOptions[name];\n };\n return OptionsFactory;\n}());\n\nvar DEFAULT_FILTER_LOCALE_TEXT = {\n applyFilter: 'Apply',\n clearFilter: 'Clear',\n resetFilter: 'Reset',\n cancelFilter: 'Cancel',\n textFilter: 'Text Filter',\n numberFilter: 'Number Filter',\n dateFilter: 'Date Filter',\n setFilter: 'Set Filter',\n filterOoo: 'Filter...',\n empty: 'Choose One',\n equals: 'Equals',\n notEqual: 'Not equal',\n lessThan: 'Less than',\n greaterThan: 'Greater than',\n inRange: 'In range',\n inRangeStart: 'From',\n inRangeEnd: 'To',\n lessThanOrEqual: 'Less than or equals',\n greaterThanOrEqual: 'Greater than or equals',\n contains: 'Contains',\n notContains: 'Not contains',\n startsWith: 'Starts with',\n endsWith: 'Ends with',\n blank: 'Blank',\n notBlank: 'Not blank',\n andCondition: 'AND',\n orCondition: 'OR',\n dateFormatOoo: 'yyyy-mm-dd',\n};\n\nvar __extends$2Z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$k = (undefined && undefined.__assign) || function () {\n __assign$k = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$k.apply(this, arguments);\n};\nvar __decorate$2u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ManagedFocusFeature = /** @class */ (function (_super) {\n __extends$2Z(ManagedFocusFeature, _super);\n function ManagedFocusFeature(eFocusableElement, callbacks) {\n if (callbacks === void 0) { callbacks = {}; }\n var _this = _super.call(this) || this;\n _this.eFocusableElement = eFocusableElement;\n _this.callbacks = callbacks;\n _this.callbacks = __assign$k({ shouldStopEventPropagation: function () { return false; }, onTabKeyDown: function (e) {\n if (e.defaultPrevented) {\n return;\n }\n var nextRoot = _this.focusService.findNextFocusableElement(_this.eFocusableElement, false, e.shiftKey);\n if (!nextRoot) {\n return;\n }\n nextRoot.focus();\n e.preventDefault();\n } }, callbacks);\n return _this;\n }\n ManagedFocusFeature.prototype.postConstruct = function () {\n this.eFocusableElement.classList.add(ManagedFocusFeature.FOCUS_MANAGED_CLASS);\n this.addKeyDownListeners(this.eFocusableElement);\n if (this.callbacks.onFocusIn) {\n this.addManagedListener(this.eFocusableElement, 'focusin', this.callbacks.onFocusIn);\n }\n if (this.callbacks.onFocusOut) {\n this.addManagedListener(this.eFocusableElement, 'focusout', this.callbacks.onFocusOut);\n }\n };\n ManagedFocusFeature.prototype.addKeyDownListeners = function (eGui) {\n var _this = this;\n this.addManagedListener(eGui, 'keydown', function (e) {\n if (e.defaultPrevented || isStopPropagationForAgGrid(e)) {\n return;\n }\n if (_this.callbacks.shouldStopEventPropagation(e)) {\n stopPropagationForAgGrid(e);\n return;\n }\n if (e.key === KeyCode.TAB) {\n _this.callbacks.onTabKeyDown(e);\n }\n else if (_this.callbacks.handleKeyDown) {\n _this.callbacks.handleKeyDown(e);\n }\n });\n };\n ManagedFocusFeature.FOCUS_MANAGED_CLASS = 'ag-focus-managed';\n __decorate$2u([\n Autowired('focusService')\n ], ManagedFocusFeature.prototype, \"focusService\", void 0);\n __decorate$2u([\n PostConstruct\n ], ManagedFocusFeature.prototype, \"postConstruct\", null);\n return ManagedFocusFeature;\n}(BeanStub));\n\nvar __extends$2Y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RESIZE_CONTAINER_STYLE = 'ag-resizer-wrapper';\nvar RESIZE_TEMPLATE = /* html */ \"
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\";\nvar PositionableFeature = /** @class */ (function (_super) {\n __extends$2Y(PositionableFeature, _super);\n function PositionableFeature(element, config) {\n var _this = _super.call(this) || this;\n _this.element = element;\n _this.dragStartPosition = {\n x: 0,\n y: 0\n };\n _this.position = {\n x: 0,\n y: 0\n };\n _this.lastSize = {\n width: -1,\n height: -1\n };\n _this.positioned = false;\n _this.resizersAdded = false;\n _this.resizeListeners = [];\n _this.boundaryEl = null;\n _this.isResizing = false;\n _this.isMoving = false;\n _this.resizable = {};\n _this.movable = false;\n _this.currentResizer = null;\n _this.config = Object.assign({}, { popup: false }, config);\n return _this;\n }\n PositionableFeature.prototype.center = function () {\n var _a = this.offsetParent, clientHeight = _a.clientHeight, clientWidth = _a.clientWidth;\n var x = (clientWidth / 2) - (this.getWidth() / 2);\n var y = (clientHeight / 2) - (this.getHeight() / 2);\n this.offsetElement(x, y);\n };\n PositionableFeature.prototype.initialisePosition = function () {\n if (this.positioned) {\n return;\n }\n var _a = this.config, centered = _a.centered, forcePopupParentAsOffsetParent = _a.forcePopupParentAsOffsetParent, minWidth = _a.minWidth, width = _a.width, minHeight = _a.minHeight, height = _a.height, x = _a.x, y = _a.y;\n if (!this.offsetParent) {\n this.setOffsetParent();\n }\n var computedMinHeight = 0;\n var computedMinWidth = 0;\n // here we don't use the main offset parent but the element's offsetParent\n // in order to calculated the minWidth and minHeight correctly\n var isVisible = !!this.element.offsetParent;\n if (isVisible) {\n var boundaryEl = this.findBoundaryElement();\n var offsetParentComputedStyles = window.getComputedStyle(boundaryEl);\n if (offsetParentComputedStyles.minWidth != null) {\n var paddingWidth = boundaryEl.offsetWidth - this.element.offsetWidth;\n computedMinWidth = parseInt(offsetParentComputedStyles.minWidth, 10) - paddingWidth;\n }\n if (offsetParentComputedStyles.minHeight != null) {\n var paddingHeight = boundaryEl.offsetHeight - this.element.offsetHeight;\n computedMinHeight = parseInt(offsetParentComputedStyles.minHeight, 10) - paddingHeight;\n }\n }\n this.minHeight = minHeight || computedMinHeight;\n this.minWidth = minWidth || computedMinWidth;\n if (width) {\n this.setWidth(width);\n }\n if (height) {\n this.setHeight(height);\n }\n if (!width || !height) {\n this.refreshSize();\n }\n if (centered) {\n this.center();\n }\n else if (x || y) {\n this.offsetElement(x, y);\n }\n else if (isVisible && forcePopupParentAsOffsetParent) {\n var boundaryEl = this.boundaryEl;\n var initialisedDuringPositioning = true;\n if (!boundaryEl) {\n boundaryEl = this.findBoundaryElement();\n initialisedDuringPositioning = false;\n }\n if (boundaryEl) {\n var top_1 = parseFloat(boundaryEl.style.top);\n var left = parseFloat(boundaryEl.style.left);\n if (initialisedDuringPositioning) {\n this.offsetElement(isNaN(left) ? 0 : left, isNaN(top_1) ? 0 : top_1);\n }\n else {\n this.setPosition(left, top_1);\n }\n }\n }\n this.positioned = !!this.offsetParent;\n };\n PositionableFeature.prototype.isPositioned = function () {\n return this.positioned;\n };\n PositionableFeature.prototype.getPosition = function () {\n return this.position;\n };\n PositionableFeature.prototype.setMovable = function (movable, moveElement) {\n if (!this.config.popup || movable === this.movable) {\n return;\n }\n this.movable = movable;\n var params = this.moveElementDragListener || {\n eElement: moveElement,\n onDragStart: this.onMoveStart.bind(this),\n onDragging: this.onMove.bind(this),\n onDragStop: this.onMoveEnd.bind(this)\n };\n if (movable) {\n this.dragService.addDragSource(params);\n this.moveElementDragListener = params;\n }\n else {\n this.dragService.removeDragSource(params);\n this.moveElementDragListener = undefined;\n }\n };\n PositionableFeature.prototype.setResizable = function (resizable) {\n var _this = this;\n this.clearResizeListeners();\n if (resizable) {\n this.addResizers();\n }\n else {\n this.removeResizers();\n }\n if (typeof resizable === 'boolean') {\n if (resizable === false) {\n return;\n }\n resizable = {\n topLeft: resizable,\n top: resizable,\n topRight: resizable,\n right: resizable,\n bottomRight: resizable,\n bottom: resizable,\n bottomLeft: resizable,\n left: resizable\n };\n }\n Object.keys(resizable).forEach(function (side) {\n var resizableStructure = resizable;\n var isSideResizable = !!resizableStructure[side];\n var resizerEl = _this.getResizerElement(side);\n var params = {\n dragStartPixels: 0,\n eElement: resizerEl,\n onDragStart: function (e) { return _this.onResizeStart(e, side); },\n onDragging: _this.onResize.bind(_this),\n onDragStop: function (e) { return _this.onResizeEnd(e, side); },\n };\n if (isSideResizable || (!_this.isAlive() && !isSideResizable)) {\n if (isSideResizable) {\n _this.dragService.addDragSource(params);\n _this.resizeListeners.push(params);\n resizerEl.style.pointerEvents = 'all';\n }\n else {\n resizerEl.style.pointerEvents = 'none';\n }\n _this.resizable[side] = isSideResizable;\n }\n });\n };\n PositionableFeature.prototype.removeSizeFromEl = function () {\n this.element.style.removeProperty('height');\n this.element.style.removeProperty('width');\n this.element.style.removeProperty('flex');\n };\n PositionableFeature.prototype.restoreLastSize = function () {\n this.element.style.flex = '0 0 auto';\n var _a = this.lastSize, height = _a.height, width = _a.width;\n if (width !== -1) {\n this.element.style.width = width + \"px\";\n }\n if (height !== -1) {\n this.element.style.height = height + \"px\";\n }\n };\n PositionableFeature.prototype.getHeight = function () {\n return this.element.offsetHeight;\n };\n PositionableFeature.prototype.setHeight = function (height) {\n var popup = this.config.popup;\n var eGui = this.element;\n var isPercent = false;\n if (typeof height === 'string' && height.indexOf('%') !== -1) {\n setFixedHeight(eGui, height);\n height = getAbsoluteHeight(eGui);\n isPercent = true;\n }\n else {\n height = Math.max(this.minHeight, height);\n if (this.positioned) {\n var availableHeight = this.getAvailableHeight();\n if (availableHeight && height > availableHeight) {\n height = availableHeight;\n }\n }\n }\n if (this.getHeight() === height) {\n return;\n }\n if (!isPercent) {\n if (popup) {\n setFixedHeight(eGui, height);\n }\n else {\n eGui.style.height = height + \"px\";\n eGui.style.flex = '0 0 auto';\n this.lastSize.height = typeof height === 'number' ? height : parseFloat(height);\n }\n }\n else {\n eGui.style.maxHeight = 'unset';\n eGui.style.minHeight = 'unset';\n }\n };\n PositionableFeature.prototype.getAvailableHeight = function () {\n var _a = this.config, popup = _a.popup, forcePopupParentAsOffsetParent = _a.forcePopupParentAsOffsetParent;\n if (!this.positioned) {\n this.initialisePosition();\n }\n var clientHeight = this.offsetParent.clientHeight;\n if (!clientHeight) {\n return null;\n }\n var elRect = this.element.getBoundingClientRect();\n var offsetParentRect = this.offsetParent.getBoundingClientRect();\n var yPosition = popup ? this.position.y : elRect.top;\n var parentTop = popup ? 0 : offsetParentRect.top;\n // When `forcePopupParentAsOffsetParent`, there may be elements that appear after the resizable element, but aren't included in the height.\n // Take these into account here\n var additionalHeight = 0;\n if (forcePopupParentAsOffsetParent) {\n var parentEl = this.element.parentElement;\n if (parentEl) {\n var bottom = parentEl.getBoundingClientRect().bottom;\n additionalHeight = bottom - elRect.bottom;\n }\n }\n var availableHeight = clientHeight + parentTop - yPosition - additionalHeight;\n return availableHeight;\n };\n PositionableFeature.prototype.getWidth = function () {\n return this.element.offsetWidth;\n };\n PositionableFeature.prototype.setWidth = function (width) {\n var eGui = this.element;\n var popup = this.config.popup;\n var isPercent = false;\n if (typeof width === 'string' && width.indexOf('%') !== -1) {\n setFixedWidth(eGui, width);\n width = getAbsoluteWidth(eGui);\n isPercent = true;\n }\n else if (this.positioned) {\n width = Math.max(this.minWidth, width);\n var clientWidth = this.offsetParent.clientWidth;\n var xPosition = popup ? this.position.x : this.element.getBoundingClientRect().left;\n if (clientWidth && (width + xPosition > clientWidth)) {\n width = clientWidth - xPosition;\n }\n }\n if (this.getWidth() === width) {\n return;\n }\n if (!isPercent) {\n if (this.config.popup) {\n setFixedWidth(eGui, width);\n }\n else {\n eGui.style.width = width + \"px\";\n eGui.style.flex = ' unset';\n this.lastSize.width = typeof width === 'number' ? width : parseFloat(width);\n }\n }\n else {\n eGui.style.maxWidth = 'unset';\n eGui.style.minWidth = 'unset';\n }\n };\n PositionableFeature.prototype.offsetElement = function (x, y) {\n if (x === void 0) { x = 0; }\n if (y === void 0) { y = 0; }\n var forcePopupParentAsOffsetParent = this.config.forcePopupParentAsOffsetParent;\n var ePopup = forcePopupParentAsOffsetParent ? this.boundaryEl : this.element;\n if (!ePopup) {\n return;\n }\n this.popupService.positionPopup({\n ePopup: ePopup,\n keepWithinBounds: true,\n skipObserver: this.movable || this.isResizable(),\n updatePosition: function () { return ({ x: x, y: y }); }\n });\n this.setPosition(parseFloat(ePopup.style.left), parseFloat(ePopup.style.top));\n };\n PositionableFeature.prototype.constrainSizeToAvailableHeight = function (constrain) {\n var _this = this;\n if (!this.config.forcePopupParentAsOffsetParent) {\n return;\n }\n var applyMaxHeightToElement = function () {\n var availableHeight = _this.getAvailableHeight();\n _this.element.style.setProperty('max-height', availableHeight + \"px\");\n };\n if (constrain) {\n this.resizeObserverSubscriber = this.resizeObserverService.observeResize(this.popupService.getPopupParent(), applyMaxHeightToElement);\n }\n else {\n this.element.style.removeProperty('max-height');\n if (this.resizeObserverSubscriber) {\n this.resizeObserverSubscriber();\n this.resizeObserverSubscriber = undefined;\n }\n }\n };\n PositionableFeature.prototype.setPosition = function (x, y) {\n this.position.x = x;\n this.position.y = y;\n };\n PositionableFeature.prototype.updateDragStartPosition = function (x, y) {\n this.dragStartPosition = { x: x, y: y };\n };\n PositionableFeature.prototype.calculateMouseMovement = function (params) {\n var e = params.e, isLeft = params.isLeft, isTop = params.isTop, anywhereWithin = params.anywhereWithin, topBuffer = params.topBuffer;\n var xDiff = e.clientX - this.dragStartPosition.x;\n var yDiff = e.clientY - this.dragStartPosition.y;\n var movementX = this.shouldSkipX(e, !!isLeft, !!anywhereWithin, xDiff) ? 0 : xDiff;\n var movementY = this.shouldSkipY(e, !!isTop, topBuffer, yDiff) ? 0 : yDiff;\n return { movementX: movementX, movementY: movementY };\n };\n PositionableFeature.prototype.shouldSkipX = function (e, isLeft, anywhereWithin, diff) {\n var elRect = this.element.getBoundingClientRect();\n var parentRect = this.offsetParent.getBoundingClientRect();\n var boundaryElRect = this.boundaryEl.getBoundingClientRect();\n var xPosition = this.config.popup ? this.position.x : elRect.left;\n // skip if cursor is outside of popupParent horizontally\n var skipX = ((xPosition <= 0 && parentRect.left >= e.clientX) ||\n (parentRect.right <= e.clientX && parentRect.right <= boundaryElRect.right));\n if (skipX) {\n return true;\n }\n if (isLeft) {\n skipX = (\n // skip if we are moving to the left and the cursor\n // is positioned to the right of the left side anchor\n (diff < 0 && e.clientX > xPosition + parentRect.left) ||\n // skip if we are moving to the right and the cursor\n // is positioned to the left of the dialog\n (diff > 0 && e.clientX < xPosition + parentRect.left));\n }\n else {\n if (anywhereWithin) {\n // if anywhereWithin is true, we allow to move\n // as long as the cursor is within the dialog\n skipX = ((diff < 0 && e.clientX > boundaryElRect.right) ||\n (diff > 0 && e.clientX < xPosition + parentRect.left));\n }\n else {\n skipX = (\n // if the movement is bound to the right side of the dialog\n // we skip if we are moving to the left and the cursor\n // is to the right of the dialog\n (diff < 0 && e.clientX > boundaryElRect.right) ||\n // or skip if we are moving to the right and the cursor\n // is to the left of the right side anchor\n (diff > 0 && e.clientX < boundaryElRect.right));\n }\n }\n return skipX;\n };\n PositionableFeature.prototype.shouldSkipY = function (e, isTop, topBuffer, diff) {\n if (topBuffer === void 0) { topBuffer = 0; }\n var elRect = this.element.getBoundingClientRect();\n var parentRect = this.offsetParent.getBoundingClientRect();\n var boundaryElRect = this.boundaryEl.getBoundingClientRect();\n var yPosition = this.config.popup ? this.position.y : elRect.top;\n // skip if cursor is outside of popupParent vertically\n var skipY = ((yPosition <= 0 && parentRect.top >= e.clientY) ||\n (parentRect.bottom <= e.clientY && parentRect.bottom <= boundaryElRect.bottom));\n if (skipY) {\n return true;\n }\n if (isTop) {\n skipY = (\n // skip if we are moving to towards top and the cursor is\n // below the top anchor + topBuffer\n // note: topBuffer is used when moving the dialog using the title bar\n (diff < 0 && e.clientY > yPosition + parentRect.top + topBuffer) ||\n // skip if we are moving to the bottom and the cursor is\n // above the top anchor\n (diff > 0 && e.clientY < yPosition + parentRect.top));\n }\n else {\n skipY = (\n // skip if we are moving towards the top and the cursor\n // is below the bottom anchor\n (diff < 0 && e.clientY > boundaryElRect.bottom) ||\n // skip if we are moving towards the bottom and the cursor\n // is above the bottom anchor\n (diff > 0 && e.clientY < boundaryElRect.bottom));\n }\n return skipY;\n };\n PositionableFeature.prototype.createResizeMap = function () {\n var eGui = this.element;\n this.resizerMap = {\n topLeft: { element: eGui.querySelector('[ref=eTopLeftResizer]') },\n top: { element: eGui.querySelector('[ref=eTopResizer]') },\n topRight: { element: eGui.querySelector('[ref=eTopRightResizer]') },\n right: { element: eGui.querySelector('[ref=eRightResizer]') },\n bottomRight: { element: eGui.querySelector('[ref=eBottomRightResizer]') },\n bottom: { element: eGui.querySelector('[ref=eBottomResizer]') },\n bottomLeft: { element: eGui.querySelector('[ref=eBottomLeftResizer]') },\n left: { element: eGui.querySelector('[ref=eLeftResizer]') }\n };\n };\n PositionableFeature.prototype.addResizers = function () {\n if (this.resizersAdded) {\n return;\n }\n var eGui = this.element;\n if (!eGui) {\n return;\n }\n var parser = new DOMParser();\n var resizers = parser.parseFromString(RESIZE_TEMPLATE, 'text/html').body;\n eGui.appendChild(resizers.firstChild);\n this.createResizeMap();\n this.resizersAdded = true;\n };\n PositionableFeature.prototype.removeResizers = function () {\n this.resizerMap = undefined;\n var resizerEl = this.element.querySelector(\".\" + RESIZE_CONTAINER_STYLE);\n if (resizerEl) {\n this.element.removeChild(resizerEl);\n }\n this.resizersAdded = false;\n };\n PositionableFeature.prototype.getResizerElement = function (side) {\n return this.resizerMap[side].element;\n };\n PositionableFeature.prototype.onResizeStart = function (e, side) {\n this.boundaryEl = this.findBoundaryElement();\n if (!this.positioned) {\n this.initialisePosition();\n }\n this.currentResizer = {\n isTop: !!side.match(/top/i),\n isRight: !!side.match(/right/i),\n isBottom: !!side.match(/bottom/i),\n isLeft: !!side.match(/left/i),\n };\n this.element.classList.add('ag-resizing');\n this.resizerMap[side].element.classList.add('ag-active');\n var _a = this.config, popup = _a.popup, forcePopupParentAsOffsetParent = _a.forcePopupParentAsOffsetParent;\n if (!popup && !forcePopupParentAsOffsetParent) {\n this.applySizeToSiblings(this.currentResizer.isBottom || this.currentResizer.isTop);\n }\n this.isResizing = true;\n this.updateDragStartPosition(e.clientX, e.clientY);\n };\n PositionableFeature.prototype.getSiblings = function () {\n var element = this.element;\n var parent = element.parentElement;\n if (!parent) {\n return null;\n }\n return Array.prototype.slice.call(parent.children).filter(function (el) { return !el.classList.contains('ag-hidden'); });\n };\n PositionableFeature.prototype.getMinSizeOfSiblings = function () {\n var siblings = this.getSiblings() || [];\n var height = 0;\n var width = 0;\n for (var i = 0; i < siblings.length; i++) {\n var currentEl = siblings[i];\n var isFlex = !!currentEl.style.flex && currentEl.style.flex !== '0 0 auto';\n if (currentEl === this.element) {\n continue;\n }\n var nextHeight = this.minHeight || 0;\n var nextWidth = this.minWidth || 0;\n if (isFlex) {\n var computedStyle = window.getComputedStyle(currentEl);\n if (computedStyle.minHeight) {\n nextHeight = parseInt(computedStyle.minHeight, 10);\n }\n if (computedStyle.minWidth) {\n nextWidth = parseInt(computedStyle.minWidth, 10);\n }\n }\n else {\n nextHeight = currentEl.offsetHeight;\n nextWidth = currentEl.offsetWidth;\n }\n height += nextHeight;\n width += nextWidth;\n }\n return { height: height, width: width };\n };\n PositionableFeature.prototype.applySizeToSiblings = function (vertical) {\n var containerToFlex = null;\n var siblings = this.getSiblings();\n if (!siblings) {\n return;\n }\n for (var i = 0; i < siblings.length; i++) {\n var el = siblings[i];\n if (el === containerToFlex) {\n continue;\n }\n if (vertical) {\n el.style.height = el.offsetHeight + \"px\";\n }\n else {\n el.style.width = el.offsetWidth + \"px\";\n }\n el.style.flex = '0 0 auto';\n if (el === this.element) {\n containerToFlex = siblings[i + 1];\n }\n }\n if (containerToFlex) {\n containerToFlex.style.removeProperty('height');\n containerToFlex.style.removeProperty('min-height');\n containerToFlex.style.removeProperty('max-height');\n containerToFlex.style.flex = '1 1 auto';\n }\n };\n PositionableFeature.prototype.isResizable = function () {\n return Object.values(this.resizable).some(function (value) { return value; });\n };\n PositionableFeature.prototype.onResize = function (e) {\n if (!this.isResizing || !this.currentResizer) {\n return;\n }\n var _a = this.config, popup = _a.popup, forcePopupParentAsOffsetParent = _a.forcePopupParentAsOffsetParent;\n var _b = this.currentResizer, isTop = _b.isTop, isRight = _b.isRight, isBottom = _b.isBottom, isLeft = _b.isLeft;\n var isHorizontal = isRight || isLeft;\n var isVertical = isBottom || isTop;\n var _c = this.calculateMouseMovement({ e: e, isLeft: isLeft, isTop: isTop }), movementX = _c.movementX, movementY = _c.movementY;\n var xPosition = this.position.x;\n var yPosition = this.position.y;\n var offsetLeft = 0;\n var offsetTop = 0;\n if (isHorizontal && movementX) {\n var direction = isLeft ? -1 : 1;\n var oldWidth = this.getWidth();\n var newWidth = oldWidth + (movementX * direction);\n var skipWidth = false;\n if (isLeft) {\n offsetLeft = oldWidth - newWidth;\n if (xPosition + offsetLeft <= 0 || newWidth <= this.minWidth) {\n skipWidth = true;\n offsetLeft = 0;\n }\n }\n if (!skipWidth) {\n this.setWidth(newWidth);\n }\n }\n if (isVertical && movementY) {\n var direction = isTop ? -1 : 1;\n var oldHeight = this.getHeight();\n var newHeight = oldHeight + (movementY * direction);\n var skipHeight = false;\n if (isTop) {\n offsetTop = oldHeight - newHeight;\n if (yPosition + offsetTop <= 0 || newHeight <= this.minHeight) {\n skipHeight = true;\n offsetTop = 0;\n }\n }\n else {\n // do not let the size of all siblings be higher than the parent container\n if (!this.config.popup &&\n !this.config.forcePopupParentAsOffsetParent &&\n oldHeight < newHeight &&\n (this.getMinSizeOfSiblings().height + newHeight) > this.element.parentElement.offsetHeight) {\n skipHeight = true;\n }\n }\n if (!skipHeight) {\n this.setHeight(newHeight);\n }\n }\n this.updateDragStartPosition(e.clientX, e.clientY);\n if ((popup || forcePopupParentAsOffsetParent) && offsetLeft || offsetTop) {\n this.offsetElement(xPosition + offsetLeft, yPosition + offsetTop);\n }\n };\n PositionableFeature.prototype.onResizeEnd = function (e, side) {\n this.isResizing = false;\n this.currentResizer = null;\n this.boundaryEl = null;\n var params = {\n type: 'resize',\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi\n };\n this.element.classList.remove('ag-resizing');\n this.resizerMap[side].element.classList.remove('ag-active');\n this.dispatchEvent(params);\n };\n PositionableFeature.prototype.refreshSize = function () {\n var eGui = this.element;\n if (this.config.popup) {\n if (!this.config.width) {\n this.setWidth(eGui.offsetWidth);\n }\n if (!this.config.height) {\n this.setHeight(eGui.offsetHeight);\n }\n }\n };\n PositionableFeature.prototype.onMoveStart = function (e) {\n this.boundaryEl = this.findBoundaryElement();\n if (!this.positioned) {\n this.initialisePosition();\n }\n this.isMoving = true;\n this.element.classList.add('ag-moving');\n this.updateDragStartPosition(e.clientX, e.clientY);\n };\n PositionableFeature.prototype.onMove = function (e) {\n if (!this.isMoving) {\n return;\n }\n var _a = this.position, x = _a.x, y = _a.y;\n var topBuffer;\n if (this.config.calculateTopBuffer) {\n topBuffer = this.config.calculateTopBuffer();\n }\n var _b = this.calculateMouseMovement({\n e: e,\n isTop: true,\n anywhereWithin: true,\n topBuffer: topBuffer\n }), movementX = _b.movementX, movementY = _b.movementY;\n this.offsetElement(x + movementX, y + movementY);\n this.updateDragStartPosition(e.clientX, e.clientY);\n };\n PositionableFeature.prototype.onMoveEnd = function () {\n this.isMoving = false;\n this.boundaryEl = null;\n this.element.classList.remove('ag-moving');\n };\n PositionableFeature.prototype.setOffsetParent = function () {\n if (this.config.forcePopupParentAsOffsetParent) {\n this.offsetParent = this.popupService.getPopupParent();\n }\n else {\n this.offsetParent = this.element.offsetParent;\n }\n };\n PositionableFeature.prototype.findBoundaryElement = function () {\n var el = this.element;\n while (el) {\n if (window.getComputedStyle(el).position !== 'static') {\n return el;\n }\n el = el.parentElement;\n }\n return this.element;\n };\n PositionableFeature.prototype.clearResizeListeners = function () {\n while (this.resizeListeners.length) {\n var params = this.resizeListeners.pop();\n this.dragService.removeDragSource(params);\n }\n };\n PositionableFeature.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (this.moveElementDragListener) {\n this.dragService.removeDragSource(this.moveElementDragListener);\n }\n this.constrainSizeToAvailableHeight(false);\n this.clearResizeListeners();\n this.removeResizers();\n };\n __decorate$2t([\n Autowired('popupService')\n ], PositionableFeature.prototype, \"popupService\", void 0);\n __decorate$2t([\n Autowired('resizeObserverService')\n ], PositionableFeature.prototype, \"resizeObserverService\", void 0);\n __decorate$2t([\n Autowired('dragService')\n ], PositionableFeature.prototype, \"dragService\", void 0);\n return PositionableFeature;\n}(BeanStub));\n\nvar __extends$2X = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/**\n * Contains common logic to all provided filters (apply button, clear button, etc).\n * All the filters that come with AG Grid extend this class. User filters do not\n * extend this class.\n *\n * @param M type of filter-model managed by the concrete sub-class that extends this type\n * @param V type of value managed by the concrete sub-class that extends this type\n */\nvar ProvidedFilter = /** @class */ (function (_super) {\n __extends$2X(ProvidedFilter, _super);\n function ProvidedFilter(filterNameKey) {\n var _this = _super.call(this) || this;\n _this.filterNameKey = filterNameKey;\n _this.applyActive = false;\n _this.hidePopup = null;\n _this.debouncePending = false;\n // after the user hits 'apply' the model gets copied to here. this is then the model that we use for\n // all filtering. so if user changes UI but doesn't hit apply, then the UI will be out of sync with this model.\n // this is what we want, as the UI should only become the 'active' filter once it's applied. when apply is\n // inactive, this model will be in sync (following the debounce ms). if the UI is not a valid filter\n // (eg the value is missing so nothing to filter on, or for set filter all checkboxes are checked so filter\n // not active) then this appliedModel will be null/undefined.\n _this.appliedModel = null;\n return _this;\n }\n ProvidedFilter.prototype.postConstruct = function () {\n this.resetTemplate(); // do this first to create the DOM\n this.createManagedBean(new ManagedFocusFeature(this.getFocusableElement(), {\n handleKeyDown: this.handleKeyDown.bind(this)\n }));\n this.positionableFeature = new PositionableFeature(this.getPositionableElement(), {\n forcePopupParentAsOffsetParent: true\n });\n this.createBean(this.positionableFeature);\n };\n // override\n ProvidedFilter.prototype.handleKeyDown = function (e) { };\n ProvidedFilter.prototype.getFilterTitle = function () {\n return this.translate(this.filterNameKey);\n };\n ProvidedFilter.prototype.isFilterActive = function () {\n // filter is active if we have a valid applied model\n return !!this.appliedModel;\n };\n ProvidedFilter.prototype.resetTemplate = function (paramsMap) {\n var eGui = this.getGui();\n if (eGui) {\n eGui.removeEventListener('submit', this.onFormSubmit);\n }\n var templateString = /* html */ \"\\n \\n
\\n \" + this.createBodyTemplate() + \"\\n
\\n \";\n this.setTemplate(templateString, paramsMap);\n eGui = this.getGui();\n if (eGui) {\n eGui.addEventListener('submit', this.onFormSubmit);\n }\n };\n ProvidedFilter.prototype.isReadOnly = function () {\n return !!this.providedFilterParams.readOnly;\n };\n ProvidedFilter.prototype.init = function (params) {\n var _this = this;\n this.setParams(params);\n this.resetUiToDefaults(true).then(function () {\n _this.updateUiVisibility();\n _this.setupOnBtApplyDebounce();\n });\n };\n ProvidedFilter.prototype.setParams = function (params) {\n this.providedFilterParams = params;\n this.applyActive = ProvidedFilter.isUseApplyButton(params);\n this.createButtonPanel();\n };\n ProvidedFilter.prototype.createButtonPanel = function () {\n var _this = this;\n var buttons = this.providedFilterParams.buttons;\n if (!buttons || buttons.length < 1 || this.isReadOnly()) {\n return;\n }\n var eButtonsPanel = document.createElement('div');\n eButtonsPanel.classList.add('ag-filter-apply-panel');\n var addButton = function (type) {\n var text;\n var clickListener;\n switch (type) {\n case 'apply':\n text = _this.translate('applyFilter');\n clickListener = function (e) { return _this.onBtApply(false, false, e); };\n break;\n case 'clear':\n text = _this.translate('clearFilter');\n clickListener = function () { return _this.onBtClear(); };\n break;\n case 'reset':\n text = _this.translate('resetFilter');\n clickListener = function () { return _this.onBtReset(); };\n break;\n case 'cancel':\n text = _this.translate('cancelFilter');\n clickListener = function (e) { _this.onBtCancel(e); };\n break;\n default:\n console.warn('AG Grid: Unknown button type specified');\n return;\n }\n var buttonType = type === 'apply' ? 'submit' : 'button';\n var button = loadTemplate(\n /* html */\n \"\" + text + \"\\n \");\n eButtonsPanel.appendChild(button);\n _this.addManagedListener(button, 'click', clickListener);\n };\n convertToSet(buttons).forEach(function (type) { return addButton(type); });\n this.getGui().appendChild(eButtonsPanel);\n };\n // subclasses can override this to provide alternative debounce defaults\n ProvidedFilter.prototype.getDefaultDebounceMs = function () {\n return 0;\n };\n ProvidedFilter.prototype.setupOnBtApplyDebounce = function () {\n var _this = this;\n var debounceMs = ProvidedFilter.getDebounceMs(this.providedFilterParams, this.getDefaultDebounceMs());\n var debounceFunc = debounce(this.checkApplyDebounce.bind(this), debounceMs);\n this.onBtApplyDebounce = function () {\n _this.debouncePending = true;\n debounceFunc();\n };\n };\n ProvidedFilter.prototype.checkApplyDebounce = function () {\n if (this.debouncePending) {\n // May already have been applied, so don't apply again (e.g. closing filter before debounce timeout)\n this.debouncePending = false;\n this.onBtApply();\n }\n };\n ProvidedFilter.prototype.getModel = function () {\n return this.appliedModel ? this.appliedModel : null;\n };\n ProvidedFilter.prototype.setModel = function (model) {\n var _this = this;\n var promise = model != null ? this.setModelIntoUi(model) : this.resetUiToDefaults();\n return promise.then(function () {\n _this.updateUiVisibility();\n // we set the model from the GUI, rather than the provided model,\n // so the model is consistent, e.g. handling of null/undefined will be the same,\n // or if model is case insensitive, then casing is removed.\n _this.applyModel('api');\n });\n };\n ProvidedFilter.prototype.onBtCancel = function (e) {\n var _this = this;\n this.resetUiToActiveModel(this.getModel(), function () {\n _this.handleCancelEnd(e);\n });\n };\n ProvidedFilter.prototype.handleCancelEnd = function (e) {\n if (this.providedFilterParams.closeOnApply) {\n this.close(e);\n }\n };\n ProvidedFilter.prototype.resetUiToActiveModel = function (currentModel, afterUiUpdatedFunc) {\n var _this = this;\n var afterAppliedFunc = function () {\n _this.onUiChanged(false, 'prevent');\n afterUiUpdatedFunc === null || afterUiUpdatedFunc === void 0 ? void 0 : afterUiUpdatedFunc();\n };\n if (currentModel != null) {\n this.setModelIntoUi(currentModel).then(afterAppliedFunc);\n }\n else {\n this.resetUiToDefaults().then(afterAppliedFunc);\n }\n };\n ProvidedFilter.prototype.onBtClear = function () {\n var _this = this;\n this.resetUiToDefaults().then(function () { return _this.onUiChanged(); });\n };\n ProvidedFilter.prototype.onBtReset = function () {\n this.onBtClear();\n this.onBtApply();\n };\n /**\n * Applies changes made in the UI to the filter, and returns true if the model has changed.\n */\n ProvidedFilter.prototype.applyModel = function (source) {\n var newModel = this.getModelFromUi();\n if (!this.isModelValid(newModel)) {\n return false;\n }\n var previousModel = this.appliedModel;\n this.appliedModel = newModel;\n // models can be same if user pasted same content into text field, or maybe just changed the case\n // and it's a case insensitive filter\n return !this.areModelsEqual(previousModel, newModel);\n };\n ProvidedFilter.prototype.isModelValid = function (model) {\n return true;\n };\n ProvidedFilter.prototype.onFormSubmit = function (e) {\n e.preventDefault();\n };\n ProvidedFilter.prototype.onBtApply = function (afterFloatingFilter, afterDataChange, e) {\n if (afterFloatingFilter === void 0) { afterFloatingFilter = false; }\n if (afterDataChange === void 0) { afterDataChange = false; }\n // Prevent form submission\n if (e) {\n e.preventDefault();\n }\n if (this.applyModel(afterDataChange ? 'rowDataUpdated' : 'ui')) {\n // the floating filter uses 'afterFloatingFilter' info, so it doesn't refresh after filter changed if change\n // came from floating filter\n var source = 'columnFilter';\n this.providedFilterParams.filterChangedCallback({ afterFloatingFilter: afterFloatingFilter, afterDataChange: afterDataChange, source: source });\n }\n var closeOnApply = this.providedFilterParams.closeOnApply;\n // only close if an apply button is visible, otherwise we'd be closing every time a change was made!\n if (closeOnApply && this.applyActive && !afterFloatingFilter && !afterDataChange) {\n this.close(e);\n }\n };\n ProvidedFilter.prototype.onNewRowsLoaded = function () {\n };\n ProvidedFilter.prototype.close = function (e) {\n if (!this.hidePopup) {\n return;\n }\n var keyboardEvent = e;\n var key = keyboardEvent && keyboardEvent.key;\n var params;\n if (key === 'Enter' || key === 'Space') {\n params = { keyboardEvent: keyboardEvent };\n }\n this.hidePopup(params);\n this.hidePopup = null;\n };\n /**\n * By default, if the change came from a floating filter it will be applied immediately, otherwise if there is no\n * apply button it will be applied after a debounce, otherwise it will not be applied at all. This behaviour can\n * be adjusted by using the apply parameter.\n */\n ProvidedFilter.prototype.onUiChanged = function (fromFloatingFilter, apply) {\n if (fromFloatingFilter === void 0) { fromFloatingFilter = false; }\n this.updateUiVisibility();\n this.providedFilterParams.filterModifiedCallback();\n if (this.applyActive && !this.isReadOnly()) {\n var isValid = this.isModelValid(this.getModelFromUi());\n setDisabled(this.getRefElement('applyFilterButton'), !isValid);\n }\n if ((fromFloatingFilter && !apply) || apply === 'immediately') {\n this.onBtApply(fromFloatingFilter);\n }\n else if ((!this.applyActive && !apply) || apply === 'debounce') {\n this.onBtApplyDebounce();\n }\n };\n ProvidedFilter.prototype.afterGuiAttached = function (params) {\n if (params) {\n this.hidePopup = params.hidePopup;\n }\n this.refreshFilterResizer(params === null || params === void 0 ? void 0 : params.container);\n };\n ProvidedFilter.prototype.refreshFilterResizer = function (containerType) {\n // tool panel is scrollable, so don't need to size\n if (!this.positionableFeature || containerType === 'toolPanel') {\n return;\n }\n var isFloatingFilter = containerType === 'floatingFilter';\n var _a = this, positionableFeature = _a.positionableFeature, gridOptionsService = _a.gridOptionsService;\n if (isFloatingFilter) {\n positionableFeature.restoreLastSize();\n positionableFeature.setResizable(gridOptionsService.is('enableRtl')\n ? { bottom: true, bottomLeft: true, left: true }\n : { bottom: true, bottomRight: true, right: true });\n }\n else {\n this.positionableFeature.removeSizeFromEl();\n this.positionableFeature.setResizable(false);\n }\n this.positionableFeature.constrainSizeToAvailableHeight(true);\n };\n ProvidedFilter.prototype.afterGuiDetached = function () {\n this.checkApplyDebounce();\n if (this.positionableFeature) {\n this.positionableFeature.constrainSizeToAvailableHeight(false);\n }\n };\n // static, as used by floating filter also\n ProvidedFilter.getDebounceMs = function (params, debounceDefault) {\n if (ProvidedFilter.isUseApplyButton(params)) {\n if (params.debounceMs != null) {\n console.warn('AG Grid: debounceMs is ignored when apply button is present');\n }\n return 0;\n }\n return params.debounceMs != null ? params.debounceMs : debounceDefault;\n };\n // static, as used by floating filter also\n ProvidedFilter.isUseApplyButton = function (params) {\n return !!params.buttons && params.buttons.indexOf('apply') >= 0;\n };\n ProvidedFilter.prototype.destroy = function () {\n var eGui = this.getGui();\n if (eGui) {\n eGui.removeEventListener('submit', this.onFormSubmit);\n }\n this.hidePopup = null;\n if (this.positionableFeature) {\n this.positionableFeature = this.destroyBean(this.positionableFeature);\n }\n _super.prototype.destroy.call(this);\n };\n ProvidedFilter.prototype.translate = function (key) {\n var translate = this.localeService.getLocaleTextFunc();\n return translate(key, DEFAULT_FILTER_LOCALE_TEXT[key]);\n };\n ProvidedFilter.prototype.getCellValue = function (rowNode) {\n var _a = this.providedFilterParams, api = _a.api, colDef = _a.colDef, column = _a.column, columnApi = _a.columnApi, context = _a.context;\n return this.providedFilterParams.valueGetter({\n api: api,\n colDef: colDef,\n column: column,\n columnApi: columnApi,\n context: context,\n data: rowNode.data,\n getValue: function (field) { return rowNode.data[field]; },\n node: rowNode,\n });\n };\n // override to control positionable feature\n ProvidedFilter.prototype.getPositionableElement = function () {\n return this.eFilterBody;\n };\n __decorate$2s([\n Autowired('rowModel')\n ], ProvidedFilter.prototype, \"rowModel\", void 0);\n __decorate$2s([\n RefSelector('eFilterBody')\n ], ProvidedFilter.prototype, \"eFilterBody\", void 0);\n __decorate$2s([\n PostConstruct\n ], ProvidedFilter.prototype, \"postConstruct\", null);\n return ProvidedFilter;\n}(Component));\n\nvar __extends$2W = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgAbstractLabel = /** @class */ (function (_super) {\n __extends$2W(AgAbstractLabel, _super);\n function AgAbstractLabel(config, template) {\n var _this = _super.call(this, template) || this;\n _this.labelSeparator = '';\n _this.labelAlignment = 'left';\n _this.disabled = false;\n _this.label = '';\n _this.config = config || {};\n return _this;\n }\n AgAbstractLabel.prototype.postConstruct = function () {\n this.addCssClass('ag-labeled');\n this.eLabel.classList.add('ag-label');\n var _a = this.config, labelSeparator = _a.labelSeparator, label = _a.label, labelWidth = _a.labelWidth, labelAlignment = _a.labelAlignment;\n if (labelSeparator != null) {\n this.setLabelSeparator(labelSeparator);\n }\n if (label != null) {\n this.setLabel(label);\n }\n if (labelWidth != null) {\n this.setLabelWidth(labelWidth);\n }\n this.setLabelAlignment(labelAlignment || this.labelAlignment);\n this.refreshLabel();\n };\n AgAbstractLabel.prototype.refreshLabel = function () {\n clearElement(this.eLabel);\n if (typeof this.label === 'string') {\n this.eLabel.innerText = this.label + this.labelSeparator;\n }\n else if (this.label) {\n this.eLabel.appendChild(this.label);\n }\n if (this.label === '') {\n setDisplayed(this.eLabel, false);\n setAriaRole(this.eLabel, 'presentation');\n }\n else {\n setDisplayed(this.eLabel, true);\n setAriaRole(this.eLabel, null);\n }\n };\n AgAbstractLabel.prototype.setLabelSeparator = function (labelSeparator) {\n if (this.labelSeparator === labelSeparator) {\n return this;\n }\n this.labelSeparator = labelSeparator;\n if (this.label != null) {\n this.refreshLabel();\n }\n return this;\n };\n AgAbstractLabel.prototype.getLabelId = function () {\n this.eLabel.id = this.eLabel.id || \"ag-\" + this.getCompId() + \"-label\";\n return this.eLabel.id;\n };\n AgAbstractLabel.prototype.getLabel = function () {\n return this.label;\n };\n AgAbstractLabel.prototype.setLabel = function (label) {\n if (this.label === label) {\n return this;\n }\n this.label = label;\n this.refreshLabel();\n return this;\n };\n AgAbstractLabel.prototype.setLabelAlignment = function (alignment) {\n var eGui = this.getGui();\n var eGuiClassList = eGui.classList;\n eGuiClassList.toggle('ag-label-align-left', alignment === 'left');\n eGuiClassList.toggle('ag-label-align-right', alignment === 'right');\n eGuiClassList.toggle('ag-label-align-top', alignment === 'top');\n return this;\n };\n AgAbstractLabel.prototype.setLabelEllipsis = function (hasEllipsis) {\n this.eLabel.classList.toggle('ag-label-ellipsis', hasEllipsis);\n return this;\n };\n AgAbstractLabel.prototype.setLabelWidth = function (width) {\n if (this.label == null) {\n return this;\n }\n setElementWidth(this.eLabel, width);\n return this;\n };\n AgAbstractLabel.prototype.setDisabled = function (disabled) {\n disabled = !!disabled;\n var element = this.getGui();\n setDisabled(element, disabled);\n element.classList.toggle('ag-disabled', disabled);\n this.disabled = disabled;\n return this;\n };\n AgAbstractLabel.prototype.isDisabled = function () {\n return !!this.disabled;\n };\n __decorate$2r([\n PostConstruct\n ], AgAbstractLabel.prototype, \"postConstruct\", null);\n return AgAbstractLabel;\n}(Component));\n\nvar __extends$2V = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgAbstractField = /** @class */ (function (_super) {\n __extends$2V(AgAbstractField, _super);\n function AgAbstractField(config, template, className) {\n var _this = _super.call(this, config, template) || this;\n _this.className = className;\n return _this;\n }\n AgAbstractField.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n if (this.className) {\n this.addCssClass(this.className);\n }\n };\n AgAbstractField.prototype.onValueChange = function (callbackFn) {\n var _this = this;\n this.addManagedListener(this, Events.EVENT_FIELD_VALUE_CHANGED, function () { return callbackFn(_this.getValue()); });\n return this;\n };\n AgAbstractField.prototype.getWidth = function () {\n return this.getGui().clientWidth;\n };\n AgAbstractField.prototype.setWidth = function (width) {\n setFixedWidth(this.getGui(), width);\n return this;\n };\n AgAbstractField.prototype.getPreviousValue = function () {\n return this.previousValue;\n };\n AgAbstractField.prototype.getValue = function () {\n return this.value;\n };\n AgAbstractField.prototype.setValue = function (value, silent) {\n if (this.value === value) {\n return this;\n }\n this.previousValue = this.value;\n this.value = value;\n if (!silent) {\n this.dispatchEvent({ type: Events.EVENT_FIELD_VALUE_CHANGED });\n }\n return this;\n };\n return AgAbstractField;\n}(AgAbstractLabel));\n\nvar __extends$2U = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TEMPLATE$1 = /* html */ \"\\n
\\n
\\n
\\n
\\n
\\n
\\n
\";\nvar AgPickerField = /** @class */ (function (_super) {\n __extends$2U(AgPickerField, _super);\n function AgPickerField(config) {\n var _this = _super.call(this, config, (config === null || config === void 0 ? void 0 : config.template) || TEMPLATE$1, config === null || config === void 0 ? void 0 : config.className) || this;\n _this.isPickerDisplayed = false;\n _this.skipClick = false;\n _this.pickerGap = 4;\n _this.hideCurrentPicker = null;\n _this.ariaRole = config === null || config === void 0 ? void 0 : config.ariaRole;\n _this.onPickerFocusIn = _this.onPickerFocusIn.bind(_this);\n _this.onPickerFocusOut = _this.onPickerFocusOut.bind(_this);\n if (!config) {\n return _this;\n }\n var pickerGap = config.pickerGap, maxPickerHeight = config.maxPickerHeight, variableWidth = config.variableWidth, minPickerWidth = config.minPickerWidth, maxPickerWidth = config.maxPickerWidth;\n if (pickerGap != null) {\n _this.pickerGap = pickerGap;\n }\n _this.variableWidth = !!variableWidth;\n if (maxPickerHeight != null) {\n _this.setPickerMaxHeight(maxPickerHeight);\n }\n if (minPickerWidth != null) {\n _this.setPickerMinWidth(minPickerWidth);\n }\n if (maxPickerWidth != null) {\n _this.setPickerMaxWidth(maxPickerWidth);\n }\n return _this;\n }\n AgPickerField.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n this.setupAria();\n var displayId = \"ag-\" + this.getCompId() + \"-display\";\n this.eDisplayField.setAttribute('id', displayId);\n var ariaEl = this.getAriaElement();\n setAriaDescribedBy(ariaEl, displayId);\n this.addManagedListener(ariaEl, 'keydown', this.onKeyDown.bind(this));\n this.addManagedListener(this.eLabel, 'mousedown', this.onLabelOrWrapperMouseDown.bind(this));\n this.addManagedListener(this.eWrapper, 'mousedown', this.onLabelOrWrapperMouseDown.bind(this));\n var pickerIcon = this.config.pickerIcon;\n if (pickerIcon) {\n var icon = createIconNoSpan(pickerIcon, this.gridOptionsService);\n if (icon) {\n this.eIcon.appendChild(icon);\n }\n }\n };\n AgPickerField.prototype.setupAria = function () {\n var ariaEl = this.getAriaElement();\n ariaEl.setAttribute('tabindex', (this.gridOptionsService.getNum('tabIndex') || 0).toString());\n setAriaExpanded(ariaEl, false);\n if (this.ariaRole) {\n setAriaRole(ariaEl, this.ariaRole);\n }\n };\n AgPickerField.prototype.refreshLabel = function () {\n var _a;\n var ariaEl = this.getAriaElement();\n setAriaLabelledBy(ariaEl, (_a = this.getLabelId()) !== null && _a !== void 0 ? _a : '');\n _super.prototype.refreshLabel.call(this);\n };\n AgPickerField.prototype.onLabelOrWrapperMouseDown = function () {\n if (this.skipClick) {\n this.skipClick = false;\n return;\n }\n if (this.isDisabled()) {\n return;\n }\n if (this.isPickerDisplayed) {\n this.hidePicker();\n }\n else {\n this.showPicker();\n }\n };\n AgPickerField.prototype.onKeyDown = function (e) {\n switch (e.key) {\n case KeyCode.UP:\n case KeyCode.DOWN:\n case KeyCode.ENTER:\n case KeyCode.SPACE:\n e.preventDefault();\n this.onLabelOrWrapperMouseDown();\n break;\n case KeyCode.ESCAPE:\n if (this.isPickerDisplayed) {\n e.preventDefault();\n e.stopPropagation();\n if (this.hideCurrentPicker) {\n this.hideCurrentPicker();\n }\n }\n break;\n }\n };\n AgPickerField.prototype.showPicker = function () {\n this.isPickerDisplayed = true;\n if (!this.pickerComponent) {\n this.pickerComponent = this.createPickerComponent();\n }\n var pickerGui = this.pickerComponent.getGui();\n pickerGui.addEventListener('focusin', this.onPickerFocusIn);\n pickerGui.addEventListener('focusout', this.onPickerFocusOut);\n this.hideCurrentPicker = this.renderAndPositionPicker();\n this.toggleExpandedStyles(true);\n };\n AgPickerField.prototype.renderAndPositionPicker = function () {\n var _this = this;\n var eDocument = this.gridOptionsService.getDocument();\n var ePicker = this.pickerComponent.getGui();\n if (!this.gridOptionsService.is('suppressScrollWhenPopupsAreOpen')) {\n this.destroyMouseWheelFunc = this.addManagedListener(eDocument.body, 'wheel', function (e) {\n if (!ePicker.contains(e.target)) {\n _this.hidePicker();\n }\n });\n }\n var translate = this.localeService.getLocaleTextFunc();\n var _a = this.config, pickerType = _a.pickerType, pickerAriaLabelKey = _a.pickerAriaLabelKey, pickerAriaLabelValue = _a.pickerAriaLabelValue, _b = _a.modalPicker, modalPicker = _b === void 0 ? true : _b;\n var popupParams = {\n modal: modalPicker,\n eChild: ePicker,\n closeOnEsc: true,\n closedCallback: function () {\n var shouldRestoreFocus = eDocument.activeElement === eDocument.body;\n _this.beforeHidePicker();\n if (shouldRestoreFocus && _this.isAlive()) {\n _this.getFocusableElement().focus();\n }\n },\n ariaLabel: translate(pickerAriaLabelKey, pickerAriaLabelValue),\n };\n var addPopupRes = this.popupService.addPopup(popupParams);\n var _c = this, maxPickerHeight = _c.maxPickerHeight, minPickerWidth = _c.minPickerWidth, maxPickerWidth = _c.maxPickerWidth, pickerGap = _c.pickerGap, variableWidth = _c.variableWidth;\n if (variableWidth) {\n if (minPickerWidth) {\n ePicker.style.minWidth = minPickerWidth;\n }\n ePicker.style.width = formatSize(getAbsoluteWidth(this.eWrapper));\n if (maxPickerWidth) {\n ePicker.style.maxWidth = maxPickerWidth;\n }\n }\n else {\n setElementWidth(ePicker, maxPickerWidth !== null && maxPickerWidth !== void 0 ? maxPickerWidth : getAbsoluteWidth(this.eWrapper));\n }\n var maxHeight = maxPickerHeight !== null && maxPickerHeight !== void 0 ? maxPickerHeight : getInnerHeight(this.popupService.getPopupParent()) + \"px\";\n ePicker.style.setProperty('max-height', maxHeight);\n ePicker.style.position = 'absolute';\n var alignSide = this.gridOptionsService.is('enableRtl') ? 'right' : 'left';\n this.popupService.positionPopupByComponent({\n type: pickerType,\n eventSource: this.eWrapper,\n ePopup: ePicker,\n position: 'under',\n alignSide: alignSide,\n keepWithinBounds: true,\n nudgeY: pickerGap\n });\n return addPopupRes.hideFunc;\n };\n AgPickerField.prototype.beforeHidePicker = function () {\n if (this.destroyMouseWheelFunc) {\n this.destroyMouseWheelFunc();\n this.destroyMouseWheelFunc = undefined;\n }\n this.toggleExpandedStyles(false);\n var pickerGui = this.pickerComponent.getGui();\n pickerGui.removeEventListener('focusin', this.onPickerFocusIn);\n pickerGui.removeEventListener('focusout', this.onPickerFocusOut);\n this.isPickerDisplayed = false;\n this.pickerComponent = undefined;\n this.hideCurrentPicker = null;\n };\n AgPickerField.prototype.toggleExpandedStyles = function (expanded) {\n if (!this.isAlive()) {\n return;\n }\n var ariaEl = this.getAriaElement();\n setAriaExpanded(ariaEl, expanded);\n this.eWrapper.classList.toggle('ag-picker-expanded', expanded);\n this.eWrapper.classList.toggle('ag-picker-collapsed', !expanded);\n };\n AgPickerField.prototype.onPickerFocusIn = function () {\n this.togglePickerHasFocus(true);\n };\n AgPickerField.prototype.onPickerFocusOut = function (e) {\n var _a;\n if (!((_a = this.pickerComponent) === null || _a === void 0 ? void 0 : _a.getGui().contains(e.relatedTarget))) {\n this.togglePickerHasFocus(false);\n }\n };\n AgPickerField.prototype.togglePickerHasFocus = function (focused) {\n if (!this.pickerComponent) {\n return;\n }\n this.eWrapper.classList.toggle('ag-picker-has-focus', focused);\n };\n AgPickerField.prototype.hidePicker = function () {\n if (this.hideCurrentPicker) {\n this.hideCurrentPicker();\n }\n };\n AgPickerField.prototype.setAriaLabel = function (label) {\n setAriaLabel(this.getAriaElement(), label);\n return this;\n };\n AgPickerField.prototype.setInputWidth = function (width) {\n setElementWidth(this.eWrapper, width);\n return this;\n };\n AgPickerField.prototype.getFocusableElement = function () {\n return this.eWrapper;\n };\n AgPickerField.prototype.setPickerGap = function (gap) {\n this.pickerGap = gap;\n return this;\n };\n AgPickerField.prototype.setPickerMinWidth = function (width) {\n if (typeof width === 'number') {\n width = width + \"px\";\n }\n this.minPickerWidth = width == null ? undefined : width;\n return this;\n };\n AgPickerField.prototype.setPickerMaxWidth = function (width) {\n if (typeof width === 'number') {\n width = width + \"px\";\n }\n this.maxPickerWidth = width == null ? undefined : width;\n return this;\n };\n AgPickerField.prototype.setPickerMaxHeight = function (height) {\n if (typeof height === 'number') {\n height = height + \"px\";\n }\n this.maxPickerHeight = height == null ? undefined : height;\n return this;\n };\n AgPickerField.prototype.destroy = function () {\n this.hidePicker();\n _super.prototype.destroy.call(this);\n };\n __decorate$2q([\n Autowired('popupService')\n ], AgPickerField.prototype, \"popupService\", void 0);\n __decorate$2q([\n RefSelector('eLabel')\n ], AgPickerField.prototype, \"eLabel\", void 0);\n __decorate$2q([\n RefSelector('eWrapper')\n ], AgPickerField.prototype, \"eWrapper\", void 0);\n __decorate$2q([\n RefSelector('eDisplayField')\n ], AgPickerField.prototype, \"eDisplayField\", void 0);\n __decorate$2q([\n RefSelector('eIcon')\n ], AgPickerField.prototype, \"eIcon\", void 0);\n return AgPickerField;\n}(AgAbstractField));\n\nvar __extends$2T = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgList = /** @class */ (function (_super) {\n __extends$2T(AgList, _super);\n function AgList(cssIdentifier) {\n if (cssIdentifier === void 0) { cssIdentifier = 'default'; }\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.cssIdentifier = cssIdentifier;\n _this.options = [];\n _this.itemEls = [];\n return _this;\n }\n AgList.prototype.init = function () {\n this.addManagedListener(this.getGui(), 'keydown', this.handleKeyDown.bind(this));\n };\n AgList.prototype.handleKeyDown = function (e) {\n var key = e.key;\n switch (key) {\n case KeyCode.ENTER:\n if (!this.highlightedEl) {\n this.setValue(this.getValue());\n }\n else {\n var pos = this.itemEls.indexOf(this.highlightedEl);\n this.setValueByIndex(pos);\n }\n break;\n case KeyCode.DOWN:\n case KeyCode.UP:\n var isDown = key === KeyCode.DOWN;\n var itemToHighlight = void 0;\n e.preventDefault();\n if (!this.highlightedEl) {\n itemToHighlight = this.itemEls[isDown ? 0 : this.itemEls.length - 1];\n }\n else {\n var currentIdx = this.itemEls.indexOf(this.highlightedEl);\n var nextPos = currentIdx + (isDown ? 1 : -1);\n nextPos = Math.min(Math.max(nextPos, 0), this.itemEls.length - 1);\n itemToHighlight = this.itemEls[nextPos];\n }\n this.highlightItem(itemToHighlight);\n break;\n }\n };\n AgList.prototype.addOptions = function (listOptions) {\n var _this = this;\n listOptions.forEach(function (listOption) { return _this.addOption(listOption); });\n return this;\n };\n AgList.prototype.addOption = function (listOption) {\n var value = listOption.value, text = listOption.text;\n var sanitisedText = escapeString(text || value);\n this.options.push({ value: value, text: sanitisedText });\n this.renderOption(value, sanitisedText);\n this.updateIndices();\n return this;\n };\n AgList.prototype.updateIndices = function () {\n var options = this.getGui().querySelectorAll('.ag-list-item');\n options.forEach(function (option, idx) {\n setAriaPosInSet(option, idx + 1);\n setAriaSetSize(option, options.length);\n });\n };\n AgList.prototype.renderOption = function (value, text) {\n var _this = this;\n var itemEl = document.createElement('div');\n setAriaRole(itemEl, 'option');\n itemEl.classList.add('ag-list-item', \"ag-\" + this.cssIdentifier + \"-list-item\");\n itemEl.innerHTML = \"\" + text + \"\";\n itemEl.tabIndex = -1;\n this.itemEls.push(itemEl);\n this.addManagedListener(itemEl, 'mouseover', function () { return _this.highlightItem(itemEl); });\n this.addManagedListener(itemEl, 'mouseleave', function () { return _this.clearHighlighted(); });\n this.addManagedListener(itemEl, 'click', function () { return _this.setValue(value); });\n this.getGui().appendChild(itemEl);\n };\n AgList.prototype.setValue = function (value, silent) {\n if (this.value === value) {\n this.fireItemSelected();\n return this;\n }\n if (value == null) {\n this.reset();\n return this;\n }\n var idx = this.options.findIndex(function (option) { return option.value === value; });\n if (idx !== -1) {\n var option = this.options[idx];\n this.value = option.value;\n this.displayValue = option.text != null ? option.text : option.value;\n this.highlightItem(this.itemEls[idx]);\n if (!silent) {\n this.fireChangeEvent();\n }\n }\n return this;\n };\n AgList.prototype.setValueByIndex = function (idx) {\n return this.setValue(this.options[idx].value);\n };\n AgList.prototype.getValue = function () {\n return this.value;\n };\n AgList.prototype.getDisplayValue = function () {\n return this.displayValue;\n };\n AgList.prototype.refreshHighlighted = function () {\n var _this = this;\n this.clearHighlighted();\n var idx = this.options.findIndex(function (option) { return option.value === _this.value; });\n if (idx !== -1) {\n this.highlightItem(this.itemEls[idx]);\n }\n };\n AgList.prototype.reset = function () {\n this.value = null;\n this.displayValue = null;\n this.clearHighlighted();\n this.fireChangeEvent();\n };\n AgList.prototype.highlightItem = function (el) {\n if (!el.offsetParent) {\n return;\n }\n this.clearHighlighted();\n this.highlightedEl = el;\n this.highlightedEl.classList.add(AgList.ACTIVE_CLASS);\n setAriaSelected(this.highlightedEl, true);\n this.highlightedEl.focus();\n };\n AgList.prototype.clearHighlighted = function () {\n if (!this.highlightedEl || !this.highlightedEl.offsetParent) {\n return;\n }\n this.highlightedEl.classList.remove(AgList.ACTIVE_CLASS);\n setAriaSelected(this.highlightedEl, false);\n this.highlightedEl = null;\n };\n AgList.prototype.fireChangeEvent = function () {\n this.dispatchEvent({ type: Events.EVENT_FIELD_VALUE_CHANGED });\n this.fireItemSelected();\n };\n AgList.prototype.fireItemSelected = function () {\n this.dispatchEvent({ type: AgList.EVENT_ITEM_SELECTED });\n };\n AgList.EVENT_ITEM_SELECTED = 'selectedItem';\n AgList.ACTIVE_CLASS = 'ag-active-item';\n __decorate$2p([\n PostConstruct\n ], AgList.prototype, \"init\", null);\n return AgList;\n}(Component));\n\nvar __extends$2S = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$j = (undefined && undefined.__assign) || function () {\n __assign$j = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$j.apply(this, arguments);\n};\nvar AgSelect = /** @class */ (function (_super) {\n __extends$2S(AgSelect, _super);\n function AgSelect(config) {\n return _super.call(this, __assign$j({ pickerAriaLabelKey: 'ariaLabelSelectField', pickerAriaLabelValue: 'Select Field', pickerType: 'ag-list', className: 'ag-select', pickerIcon: 'smallDown', ariaRole: 'listbox' }, config)) || this;\n }\n AgSelect.prototype.postConstruct = function () {\n var _a;\n _super.prototype.postConstruct.call(this);\n this.createListComponent();\n this.eWrapper.tabIndex = (_a = this.gridOptionsService.getNum('tabIndex')) !== null && _a !== void 0 ? _a : 0;\n };\n AgSelect.prototype.createListComponent = function () {\n var _this = this;\n this.listComponent = this.createBean(new AgList('select'));\n this.listComponent.setParentComponent(this);\n this.listComponent.addGuiEventListener('keydown', function (e) {\n if (e.key === KeyCode.TAB) {\n e.preventDefault();\n e.stopImmediatePropagation();\n _this.getGui().dispatchEvent(new KeyboardEvent('keydown', {\n key: e.key,\n shiftKey: e.shiftKey,\n ctrlKey: e.ctrlKey,\n bubbles: true\n }));\n }\n });\n this.listComponent.addManagedListener(this.listComponent, AgList.EVENT_ITEM_SELECTED, function () {\n _this.hidePicker();\n _this.dispatchEvent({ type: AgSelect.EVENT_ITEM_SELECTED });\n });\n this.listComponent.addManagedListener(this.listComponent, Events.EVENT_FIELD_VALUE_CHANGED, function () {\n if (!_this.listComponent) {\n return;\n }\n _this.setValue(_this.listComponent.getValue(), false, true);\n _this.hidePicker();\n });\n };\n AgSelect.prototype.createPickerComponent = function () {\n // do not create the picker every time to save state\n return this.listComponent;\n };\n AgSelect.prototype.showPicker = function () {\n if (!this.listComponent) {\n return;\n }\n _super.prototype.showPicker.call(this);\n this.listComponent.refreshHighlighted();\n };\n AgSelect.prototype.addOptions = function (options) {\n var _this = this;\n options.forEach(function (option) { return _this.addOption(option); });\n return this;\n };\n AgSelect.prototype.addOption = function (option) {\n this.listComponent.addOption(option);\n return this;\n };\n AgSelect.prototype.setValue = function (value, silent, fromPicker) {\n if (this.value === value || !this.listComponent) {\n return this;\n }\n if (!fromPicker) {\n this.listComponent.setValue(value, true);\n }\n var newValue = this.listComponent.getValue();\n if (newValue === this.getValue()) {\n return this;\n }\n this.eDisplayField.innerHTML = this.listComponent.getDisplayValue();\n return _super.prototype.setValue.call(this, value, silent);\n };\n AgSelect.prototype.destroy = function () {\n if (this.listComponent) {\n this.destroyBean(this.listComponent);\n this.listComponent = undefined;\n }\n _super.prototype.destroy.call(this);\n };\n AgSelect.EVENT_ITEM_SELECTED = 'selectedItem';\n return AgSelect;\n}(AgPickerField));\n\nvar __extends$2R = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgAbstractInputField = /** @class */ (function (_super) {\n __extends$2R(AgAbstractInputField, _super);\n function AgAbstractInputField(config, className, inputType, displayFieldTag) {\n if (inputType === void 0) { inputType = 'text'; }\n if (displayFieldTag === void 0) { displayFieldTag = 'input'; }\n var _this = _super.call(this, config, /* html */ \"\\n
\\n
\\n
\\n <\" + displayFieldTag + \" ref=\\\"eInput\\\" class=\\\"ag-input-field-input\\\">\\n
\\n
\", className) || this;\n _this.inputType = inputType;\n _this.displayFieldTag = displayFieldTag;\n return _this;\n }\n AgAbstractInputField.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n this.setInputType();\n this.eLabel.classList.add(this.className + \"-label\");\n this.eWrapper.classList.add(this.className + \"-input-wrapper\");\n this.eInput.classList.add(this.className + \"-input\");\n this.addCssClass('ag-input-field');\n this.eInput.id = this.eInput.id || \"ag-\" + this.getCompId() + \"-input\";\n var _a = this.config, width = _a.width, value = _a.value;\n if (width != null) {\n this.setWidth(width);\n }\n if (value != null) {\n this.setValue(value);\n }\n this.addInputListeners();\n this.activateTabIndex([this.eInput]);\n };\n AgAbstractInputField.prototype.refreshLabel = function () {\n if (exists(this.getLabel())) {\n setAriaLabelledBy(this.eInput, this.getLabelId());\n }\n else {\n this.eInput.removeAttribute('aria-labelledby');\n }\n _super.prototype.refreshLabel.call(this);\n };\n AgAbstractInputField.prototype.addInputListeners = function () {\n var _this = this;\n this.addManagedListener(this.eInput, 'input', function (e) { return _this.setValue(e.target.value); });\n };\n AgAbstractInputField.prototype.setInputType = function () {\n if (this.displayFieldTag === 'input') {\n this.eInput.setAttribute('type', this.inputType);\n }\n };\n AgAbstractInputField.prototype.getInputElement = function () {\n return this.eInput;\n };\n AgAbstractInputField.prototype.setInputWidth = function (width) {\n setElementWidth(this.eWrapper, width);\n return this;\n };\n AgAbstractInputField.prototype.setInputName = function (name) {\n this.getInputElement().setAttribute('name', name);\n return this;\n };\n AgAbstractInputField.prototype.getFocusableElement = function () {\n return this.eInput;\n };\n AgAbstractInputField.prototype.setMaxLength = function (length) {\n var eInput = this.eInput;\n eInput.maxLength = length;\n return this;\n };\n AgAbstractInputField.prototype.setInputPlaceholder = function (placeholder) {\n addOrRemoveAttribute(this.eInput, 'placeholder', placeholder);\n return this;\n };\n AgAbstractInputField.prototype.setInputAriaLabel = function (label) {\n setAriaLabel(this.eInput, label);\n return this;\n };\n AgAbstractInputField.prototype.setDisabled = function (disabled) {\n setDisabled(this.eInput, disabled);\n return _super.prototype.setDisabled.call(this, disabled);\n };\n AgAbstractInputField.prototype.setAutoComplete = function (value) {\n if (value === true) {\n // Remove the autocomplete attribute if the value is explicitly set to true\n // to allow the default browser autocomplete/autofill behaviour.\n addOrRemoveAttribute(this.eInput, 'autocomplete', null);\n }\n else {\n // When a string is provided, use it as the value of the autocomplete attribute.\n // This enables users to specify how they want to the browser to handle the autocomplete on the input, as per spec:\n // https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/autocomplete#values\n var autoCompleteValue = typeof value === 'string' ? value : 'off';\n addOrRemoveAttribute(this.eInput, 'autocomplete', autoCompleteValue);\n }\n return this;\n };\n __decorate$2o([\n RefSelector('eLabel')\n ], AgAbstractInputField.prototype, \"eLabel\", void 0);\n __decorate$2o([\n RefSelector('eWrapper')\n ], AgAbstractInputField.prototype, \"eWrapper\", void 0);\n __decorate$2o([\n RefSelector('eInput')\n ], AgAbstractInputField.prototype, \"eInput\", void 0);\n return AgAbstractInputField;\n}(AgAbstractField));\n\nvar __extends$2Q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgCheckbox = /** @class */ (function (_super) {\n __extends$2Q(AgCheckbox, _super);\n function AgCheckbox(config, className, inputType) {\n if (className === void 0) { className = 'ag-checkbox'; }\n if (inputType === void 0) { inputType = 'checkbox'; }\n var _this = _super.call(this, config, className, inputType) || this;\n _this.labelAlignment = 'right';\n _this.selected = false;\n _this.readOnly = false;\n _this.passive = false;\n return _this;\n }\n AgCheckbox.prototype.addInputListeners = function () {\n this.addManagedListener(this.eInput, 'click', this.onCheckboxClick.bind(this));\n this.addManagedListener(this.eLabel, 'click', this.toggle.bind(this));\n };\n AgCheckbox.prototype.getNextValue = function () {\n return this.selected === undefined ? true : !this.selected;\n };\n AgCheckbox.prototype.setPassive = function (passive) {\n this.passive = passive;\n };\n AgCheckbox.prototype.isReadOnly = function () {\n return this.readOnly;\n };\n AgCheckbox.prototype.setReadOnly = function (readOnly) {\n this.eWrapper.classList.toggle('ag-disabled', readOnly);\n this.eInput.disabled = readOnly;\n this.readOnly = readOnly;\n };\n AgCheckbox.prototype.setDisabled = function (disabled) {\n this.eWrapper.classList.toggle('ag-disabled', disabled);\n return _super.prototype.setDisabled.call(this, disabled);\n };\n AgCheckbox.prototype.toggle = function () {\n if (this.eInput.disabled) {\n return;\n }\n var previousValue = this.isSelected();\n var nextValue = this.getNextValue();\n if (this.passive) {\n this.dispatchChange(nextValue, previousValue);\n }\n else {\n this.setValue(nextValue);\n }\n };\n AgCheckbox.prototype.getValue = function () {\n return this.isSelected();\n };\n AgCheckbox.prototype.setValue = function (value, silent) {\n this.refreshSelectedClass(value);\n this.setSelected(value, silent);\n return this;\n };\n AgCheckbox.prototype.setName = function (name) {\n var input = this.getInputElement();\n input.name = name;\n return this;\n };\n AgCheckbox.prototype.isSelected = function () {\n return this.selected;\n };\n AgCheckbox.prototype.setSelected = function (selected, silent) {\n if (this.isSelected() === selected) {\n return;\n }\n this.previousValue = this.isSelected();\n selected = this.selected = typeof selected === 'boolean' ? selected : undefined;\n this.eInput.checked = selected;\n this.eInput.indeterminate = selected === undefined;\n if (!silent) {\n this.dispatchChange(this.selected, this.previousValue);\n }\n };\n AgCheckbox.prototype.dispatchChange = function (selected, previousValue, event) {\n this.dispatchEvent({ type: Events.EVENT_FIELD_VALUE_CHANGED, selected: selected, previousValue: previousValue, event: event });\n var input = this.getInputElement();\n var checkboxChangedEvent = {\n type: Events.EVENT_CHECKBOX_CHANGED,\n id: input.id,\n name: input.name,\n selected: selected,\n previousValue: previousValue\n };\n this.eventService.dispatchEvent(checkboxChangedEvent);\n };\n AgCheckbox.prototype.onCheckboxClick = function (e) {\n if (this.passive || this.eInput.disabled) {\n return;\n }\n var previousValue = this.isSelected();\n var selected = this.selected = e.target.checked;\n this.refreshSelectedClass(selected);\n this.dispatchChange(selected, previousValue, e);\n };\n AgCheckbox.prototype.refreshSelectedClass = function (value) {\n this.eWrapper.classList.toggle('ag-checked', value === true);\n this.eWrapper.classList.toggle('ag-indeterminate', value == null);\n };\n return AgCheckbox;\n}(AgAbstractInputField));\n\nvar __extends$2P = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgRadioButton = /** @class */ (function (_super) {\n __extends$2P(AgRadioButton, _super);\n function AgRadioButton(config) {\n return _super.call(this, config, 'ag-radio-button', 'radio') || this;\n }\n AgRadioButton.prototype.isSelected = function () {\n return this.eInput.checked;\n };\n AgRadioButton.prototype.toggle = function () {\n if (this.eInput.disabled) {\n return;\n }\n // do not allow an active radio button to be deselected\n if (!this.isSelected()) {\n this.setValue(true);\n }\n };\n AgRadioButton.prototype.addInputListeners = function () {\n _super.prototype.addInputListeners.call(this);\n this.addManagedListener(this.eventService, Events.EVENT_CHECKBOX_CHANGED, this.onChange.bind(this));\n };\n /**\n * This ensures that if another radio button in the same named group is selected, we deselect this radio button.\n * By default the browser does this for you, but we are managing classes ourselves in order to ensure input\n * elements are styled correctly in IE11, and the DOM 'changed' event is only fired when a button is selected,\n * not deselected, so we need to use our own event.\n */\n AgRadioButton.prototype.onChange = function (event) {\n if (event.selected &&\n event.name &&\n this.eInput.name &&\n this.eInput.name === event.name &&\n event.id &&\n this.eInput.id !== event.id) {\n this.setValue(false, true);\n }\n };\n return AgRadioButton;\n}(AgCheckbox));\n\nvar __extends$2O = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read$p = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$k = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar SimpleFilterModelFormatter = /** @class */ (function () {\n function SimpleFilterModelFormatter(localeService, optionsFactory, valueFormatter) {\n this.localeService = localeService;\n this.optionsFactory = optionsFactory;\n this.valueFormatter = valueFormatter;\n }\n // used by:\n // 1) NumberFloatingFilter & TextFloatingFilter: Always, for both when editable and read only.\n // 2) DateFloatingFilter: Only when read only (as we show text rather than a date picker when read only)\n SimpleFilterModelFormatter.prototype.getModelAsString = function (model) {\n var _this = this;\n if (!model) {\n return null;\n }\n var isCombined = model.operator != null;\n var translate = this.localeService.getLocaleTextFunc();\n if (isCombined) {\n var combinedModel = model;\n var conditions = combinedModel.conditions;\n if (!conditions) {\n var condition1 = combinedModel.condition1, condition2 = combinedModel.condition2;\n conditions = [condition1, condition2];\n }\n var customOptions = conditions.map(function (condition) { return _this.getModelAsString(condition); });\n var joinOperatorTranslateKey = combinedModel.operator === 'AND' ? 'andCondition' : 'orCondition';\n return customOptions.join(\" \" + translate(joinOperatorTranslateKey, DEFAULT_FILTER_LOCALE_TEXT[joinOperatorTranslateKey]) + \" \");\n }\n else if (model.type === SimpleFilter.BLANK || model.type === SimpleFilter.NOT_BLANK) {\n return translate(model.type, model.type);\n }\n else {\n var condition = model;\n var customOption = this.optionsFactory.getCustomOption(condition.type);\n // For custom filter options we display the Name of the filter instead\n // of displaying the `from` value, as it wouldn't be relevant\n var _a = customOption || {}, displayKey = _a.displayKey, displayName = _a.displayName, numberOfInputs = _a.numberOfInputs;\n if (displayKey && displayName && numberOfInputs === 0) {\n translate(displayKey, displayName);\n return displayName;\n }\n return this.conditionToString(condition, customOption);\n }\n };\n SimpleFilterModelFormatter.prototype.updateParams = function (params) {\n this.optionsFactory = params.optionsFactory;\n };\n SimpleFilterModelFormatter.prototype.formatValue = function (value) {\n var _a;\n return this.valueFormatter ? ((_a = this.valueFormatter(value !== null && value !== void 0 ? value : null)) !== null && _a !== void 0 ? _a : '') : String(value);\n };\n return SimpleFilterModelFormatter;\n}());\n/**\n * Every filter with a dropdown where the user can specify a comparing type against the filter values.\n *\n * @param M type of filter-model managed by the concrete sub-class that extends this type\n * @param V type of value managed by the concrete sub-class that extends this type\n * @param E type of UI element used for collecting user-input\n */\nvar SimpleFilter = /** @class */ (function (_super) {\n __extends$2O(SimpleFilter, _super);\n function SimpleFilter() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.eTypes = [];\n _this.eJoinOperatorPanels = [];\n _this.eJoinOperatorsAnd = [];\n _this.eJoinOperatorsOr = [];\n _this.eConditionBodies = [];\n _this.listener = function () { return _this.onUiChanged(); };\n _this.lastUiCompletePosition = null;\n _this.joinOperatorId = 0;\n return _this;\n }\n SimpleFilter.prototype.getNumberOfInputs = function (type) {\n var customOpts = this.optionsFactory.getCustomOption(type);\n if (customOpts) {\n var numberOfInputs = customOpts.numberOfInputs;\n return numberOfInputs != null ? numberOfInputs : 1;\n }\n var zeroInputTypes = [\n SimpleFilter.EMPTY, SimpleFilter.NOT_BLANK, SimpleFilter.BLANK,\n ];\n if (type && zeroInputTypes.indexOf(type) >= 0) {\n return 0;\n }\n else if (type === SimpleFilter.IN_RANGE) {\n return 2;\n }\n return 1;\n };\n // floating filter calls this when user applies filter from floating filter\n SimpleFilter.prototype.onFloatingFilterChanged = function (type, value) {\n this.setTypeFromFloatingFilter(type);\n this.setValueFromFloatingFilter(value);\n this.onUiChanged(true);\n };\n SimpleFilter.prototype.setTypeFromFloatingFilter = function (type) {\n var _this = this;\n this.eTypes.forEach(function (eType, position) {\n if (position === 0) {\n eType.setValue(type, true);\n }\n else {\n eType.setValue(_this.optionsFactory.getDefaultOption(), true);\n }\n });\n };\n SimpleFilter.prototype.getModelFromUi = function () {\n var conditions = this.getUiCompleteConditions();\n if (conditions.length === 0) {\n return null;\n }\n if (this.maxNumConditions > 1 && conditions.length > 1) {\n return {\n filterType: this.getFilterType(),\n operator: this.getJoinOperator(),\n condition1: conditions[0],\n condition2: conditions[1],\n conditions: conditions\n };\n }\n return conditions[0];\n };\n SimpleFilter.prototype.getConditionTypes = function () {\n return this.eTypes.map(function (eType) { return eType.getValue(); });\n };\n SimpleFilter.prototype.getConditionType = function (position) {\n return this.eTypes[position].getValue();\n };\n SimpleFilter.prototype.getJoinOperator = function () {\n if (this.eJoinOperatorsOr.length === 0) {\n return this.defaultJoinOperator;\n }\n return this.eJoinOperatorsOr[0].getValue() === true ? 'OR' : 'AND';\n };\n SimpleFilter.prototype.areModelsEqual = function (a, b) {\n var _this = this;\n // both are missing\n if (!a && !b) {\n return true;\n }\n // one is missing, other present\n if ((!a && b) || (a && !b)) {\n return false;\n }\n // one is combined, the other is not\n var aIsSimple = !a.operator;\n var bIsSimple = !b.operator;\n var oneSimpleOneCombined = (!aIsSimple && bIsSimple) || (aIsSimple && !bIsSimple);\n if (oneSimpleOneCombined) {\n return false;\n }\n var res;\n // otherwise both present, so compare\n if (aIsSimple) {\n var aSimple = a;\n var bSimple = b;\n res = this.areSimpleModelsEqual(aSimple, bSimple);\n }\n else {\n var aCombined = a;\n var bCombined = b;\n res = aCombined.operator === bCombined.operator\n && areEqual(aCombined.conditions, bCombined.conditions, function (aModel, bModel) { return _this.areSimpleModelsEqual(aModel, bModel); });\n }\n return res;\n };\n SimpleFilter.prototype.setModelIntoUi = function (model) {\n var _this = this;\n var isCombined = model.operator;\n if (isCombined) {\n var combinedModel = model;\n if (!combinedModel.conditions) {\n combinedModel.conditions = [\n combinedModel.condition1,\n combinedModel.condition2\n ];\n }\n var numConditions = this.validateAndUpdateConditions(combinedModel.conditions);\n var numPrevConditions = this.getNumConditions();\n if (numConditions < numPrevConditions) {\n this.removeConditionsAndOperators(numConditions);\n }\n else if (numConditions > numPrevConditions) {\n for (var i = numPrevConditions; i < numConditions; i++) {\n this.createJoinOperatorPanel();\n this.createOption();\n }\n }\n var orChecked_1 = combinedModel.operator === 'OR';\n this.eJoinOperatorsAnd.forEach(function (eJoinOperatorAnd) { return eJoinOperatorAnd.setValue(!orChecked_1, true); });\n this.eJoinOperatorsOr.forEach(function (eJoinOperatorOr) { return eJoinOperatorOr.setValue(orChecked_1, true); });\n combinedModel.conditions.forEach(function (condition, position) {\n _this.eTypes[position].setValue(condition.type, true);\n _this.setConditionIntoUi(condition, position);\n });\n }\n else {\n var simpleModel = model;\n if (this.getNumConditions() > 1) {\n this.removeConditionsAndOperators(1);\n }\n this.eTypes[0].setValue(simpleModel.type, true);\n this.setConditionIntoUi(simpleModel, 0);\n }\n this.lastUiCompletePosition = this.getNumConditions() - 1;\n this.createMissingConditionsAndOperators();\n this.onUiChanged();\n return AgPromise.resolve();\n };\n SimpleFilter.prototype.validateAndUpdateConditions = function (conditions) {\n var numConditions = conditions.length;\n if (numConditions > this.maxNumConditions) {\n conditions.splice(this.maxNumConditions);\n doOnce(function () { return console.warn('AG Grid: Filter Model contains more conditions than \"filterParams.maxNumConditions\". Additional conditions have been ignored.'); }, 'simpleFilterSetModelMaxNumConditions');\n numConditions = this.maxNumConditions;\n }\n return numConditions;\n };\n SimpleFilter.prototype.doesFilterPass = function (params) {\n var _this = this;\n var _a;\n var model = this.getModel();\n if (model == null) {\n return true;\n }\n var operator = model.operator;\n var models = [];\n if (operator) {\n var combinedModel = model;\n models.push.apply(models, __spreadArray$k([], __read$p(((_a = combinedModel.conditions) !== null && _a !== void 0 ? _a : []))));\n }\n else {\n models.push(model);\n }\n var combineFunction = operator && operator === 'OR' ? 'some' : 'every';\n return models[combineFunction](function (m) { return _this.individualConditionPasses(params, m); });\n };\n SimpleFilter.prototype.setParams = function (params) {\n _super.prototype.setParams.call(this, params);\n this.setNumConditions(params);\n this.defaultJoinOperator = this.getDefaultJoinOperator(params.defaultJoinOperator);\n this.filterPlaceholder = params.filterPlaceholder;\n this.optionsFactory = new OptionsFactory();\n this.optionsFactory.init(params, this.getDefaultFilterOptions());\n this.createFilterListOptions();\n this.createOption();\n this.createMissingConditionsAndOperators();\n if (this.isReadOnly()) {\n // only do this when read only (so no other focusable elements), otherwise the tab order breaks\n // as the tabbed layout managed focus feature will focus the body when it shouldn't\n this.eFilterBody.setAttribute('tabindex', '-1');\n }\n };\n SimpleFilter.prototype.setNumConditions = function (params) {\n var _a, _b;\n if (params.suppressAndOrCondition != null) {\n doOnce(function () { return console.warn('AG Grid: Since v29.2 \"filterParams.suppressAndOrCondition\" is deprecated. Use \"filterParams.maxNumConditions = 1\" instead.'); }, 'simpleFilterSuppressAndOrCondition');\n }\n if (params.alwaysShowBothConditions != null) {\n doOnce(function () { return console.warn('AG Grid: Since v29.2 \"filterParams.alwaysShowBothConditions\" is deprecated. Use \"filterParams.numAlwaysVisibleConditions = 2\" instead.'); }, 'simpleFilterAlwaysShowBothConditions');\n }\n this.maxNumConditions = (_a = params.maxNumConditions) !== null && _a !== void 0 ? _a : (params.suppressAndOrCondition ? 1 : 2);\n if (this.maxNumConditions < 1) {\n doOnce(function () { return console.warn('AG Grid: \"filterParams.maxNumConditions\" must be greater than or equal to zero.'); }, 'simpleFilterMaxNumConditions');\n this.maxNumConditions = 1;\n }\n this.numAlwaysVisibleConditions = (_b = params.numAlwaysVisibleConditions) !== null && _b !== void 0 ? _b : (params.alwaysShowBothConditions ? 2 : 1);\n if (this.numAlwaysVisibleConditions < 1) {\n doOnce(function () { return console.warn('AG Grid: \"filterParams.numAlwaysVisibleConditions\" must be greater than or equal to zero.'); }, 'simpleFilterNumAlwaysVisibleConditions');\n this.numAlwaysVisibleConditions = 1;\n }\n if (this.numAlwaysVisibleConditions > this.maxNumConditions) {\n doOnce(function () { return console.warn('AG Grid: \"filterParams.numAlwaysVisibleConditions\" cannot be greater than \"filterParams.maxNumConditions\".'); }, 'simpleFilterNumAlwaysVisibleGreaterThanMaxNumConditions');\n this.numAlwaysVisibleConditions = this.maxNumConditions;\n }\n };\n SimpleFilter.prototype.createOption = function () {\n var _this = this;\n var eType = this.createManagedBean(new AgSelect());\n this.eTypes.push(eType);\n eType.addCssClass('ag-filter-select');\n this.eFilterBody.appendChild(eType.getGui());\n var eConditionBody = this.createValueElement();\n this.eConditionBodies.push(eConditionBody);\n this.eFilterBody.appendChild(eConditionBody);\n this.putOptionsIntoDropdown(eType);\n this.resetType(eType);\n var position = this.getNumConditions() - 1;\n this.forEachPositionInput(position, function (element) { return _this.resetInput(element); });\n this.addChangedListeners(eType, position);\n };\n SimpleFilter.prototype.createJoinOperatorPanel = function () {\n var eJoinOperatorPanel = document.createElement('div');\n this.eJoinOperatorPanels.push(eJoinOperatorPanel);\n eJoinOperatorPanel.classList.add('ag-filter-condition');\n var eJoinOperatorAnd = this.createJoinOperator(this.eJoinOperatorsAnd, eJoinOperatorPanel, 'and');\n var eJoinOperatorOr = this.createJoinOperator(this.eJoinOperatorsOr, eJoinOperatorPanel, 'or');\n this.eFilterBody.appendChild(eJoinOperatorPanel);\n var index = this.eJoinOperatorPanels.length - 1;\n var uniqueGroupId = this.joinOperatorId++;\n this.resetJoinOperatorAnd(eJoinOperatorAnd, index, uniqueGroupId);\n this.resetJoinOperatorOr(eJoinOperatorOr, index, uniqueGroupId);\n if (!this.isReadOnly()) {\n eJoinOperatorAnd.onValueChange(this.listener);\n eJoinOperatorOr.onValueChange(this.listener);\n }\n };\n SimpleFilter.prototype.createJoinOperator = function (eJoinOperators, eJoinOperatorPanel, andOr) {\n var eJoinOperator = this.createManagedBean(new AgRadioButton());\n eJoinOperators.push(eJoinOperator);\n eJoinOperator.addCssClass('ag-filter-condition-operator');\n eJoinOperator.addCssClass(\"ag-filter-condition-operator-\" + andOr);\n eJoinOperatorPanel.appendChild(eJoinOperator.getGui());\n return eJoinOperator;\n };\n SimpleFilter.prototype.getDefaultJoinOperator = function (defaultJoinOperator) {\n return defaultJoinOperator === 'AND' || defaultJoinOperator === 'OR' ? defaultJoinOperator : 'AND';\n };\n SimpleFilter.prototype.createFilterListOptions = function () {\n var _this = this;\n var filterOptions = this.optionsFactory.getFilterOptions();\n this.filterListOptions = filterOptions.map(function (option) {\n return typeof option === 'string' ?\n _this.createBoilerplateListOption(option) :\n _this.createCustomListOption(option);\n });\n };\n SimpleFilter.prototype.putOptionsIntoDropdown = function (eType) {\n // Add specified options to condition drop-down.\n this.filterListOptions.forEach(function (listOption) {\n eType.addOption(listOption);\n });\n // Make drop-downs read-only if there is only one option.\n eType.setDisabled(this.filterListOptions.length <= 1);\n };\n SimpleFilter.prototype.createBoilerplateListOption = function (option) {\n return { value: option, text: this.translate(option) };\n };\n SimpleFilter.prototype.createCustomListOption = function (option) {\n var displayKey = option.displayKey;\n var customOption = this.optionsFactory.getCustomOption(option.displayKey);\n return {\n value: displayKey,\n text: customOption ?\n this.localeService.getLocaleTextFunc()(customOption.displayKey, customOption.displayName) :\n this.translate(displayKey),\n };\n };\n /**\n * @deprecated As of v29.2 filters can have more than two conditions. Check `colDef.filterParams.maxNumConditions` instead.\n */\n SimpleFilter.prototype.isAllowTwoConditions = function () {\n return this.maxNumConditions >= 2;\n };\n SimpleFilter.prototype.createBodyTemplate = function () {\n // created dynamically\n return '';\n };\n SimpleFilter.prototype.getCssIdentifier = function () {\n return 'simple-filter';\n };\n SimpleFilter.prototype.updateUiVisibility = function () {\n var joinOperator = this.getJoinOperator();\n this.updateNumConditions();\n // from here, the number of elements in all the collections is correct, so can just update the values/statuses\n this.updateConditionStatusesAndValues(this.lastUiCompletePosition, joinOperator);\n };\n SimpleFilter.prototype.updateNumConditions = function () {\n var _a;\n // Collection sizes are already correct if updated via API, so only need to handle UI updates here\n var lastUiCompletePosition = -1;\n var areAllConditionsUiComplete = true;\n for (var position = 0; position < this.getNumConditions(); position++) {\n if (this.isConditionUiComplete(position)) {\n lastUiCompletePosition = position;\n }\n else {\n areAllConditionsUiComplete = false;\n }\n }\n if (this.shouldAddNewConditionAtEnd(areAllConditionsUiComplete)) {\n this.createJoinOperatorPanel();\n this.createOption();\n }\n else {\n var activePosition = (_a = this.lastUiCompletePosition) !== null && _a !== void 0 ? _a : this.getNumConditions() - 2;\n if (lastUiCompletePosition < activePosition) {\n // remove any incomplete conditions at the end, excluding the active position\n this.removeConditionsAndOperators(activePosition + 1);\n var removeStartPosition = lastUiCompletePosition + 1;\n var numConditionsToRemove = activePosition - removeStartPosition;\n if (numConditionsToRemove > 0) {\n this.removeConditionsAndOperators(removeStartPosition, numConditionsToRemove);\n }\n this.createMissingConditionsAndOperators();\n }\n }\n this.lastUiCompletePosition = lastUiCompletePosition;\n };\n SimpleFilter.prototype.updateConditionStatusesAndValues = function (lastUiCompletePosition, joinOperator) {\n var _this = this;\n this.eTypes.forEach(function (eType, position) {\n var disabled = _this.isConditionDisabled(position, lastUiCompletePosition);\n eType.setDisabled(disabled || _this.filterListOptions.length <= 1);\n if (position === 1) {\n setDisabled(_this.eJoinOperatorPanels[0], disabled);\n _this.eJoinOperatorsAnd[0].setDisabled(disabled);\n _this.eJoinOperatorsOr[0].setDisabled(disabled);\n }\n });\n this.eConditionBodies.forEach(function (element, index) {\n setDisplayed(element, _this.isConditionBodyVisible(index));\n });\n var orChecked = (joinOperator !== null && joinOperator !== void 0 ? joinOperator : this.getJoinOperator()) === 'OR';\n this.eJoinOperatorsAnd.forEach(function (eJoinOperatorAnd, index) {\n eJoinOperatorAnd.setValue(!orChecked, true);\n });\n this.eJoinOperatorsOr.forEach(function (eJoinOperatorOr, index) {\n eJoinOperatorOr.setValue(orChecked, true);\n });\n this.forEachInput(function (element, index, position, numberOfInputs) {\n _this.setElementDisplayed(element, index < numberOfInputs);\n _this.setElementDisabled(element, _this.isConditionDisabled(position, lastUiCompletePosition));\n });\n this.resetPlaceholder();\n };\n SimpleFilter.prototype.shouldAddNewConditionAtEnd = function (areAllConditionsUiComplete) {\n return areAllConditionsUiComplete && this.getNumConditions() < this.maxNumConditions && !this.isReadOnly();\n };\n SimpleFilter.prototype.removeConditionsAndOperators = function (startPosition, deleteCount) {\n if (startPosition >= this.getNumConditions()) {\n return;\n }\n this.removeComponents(this.eTypes, startPosition, deleteCount);\n this.removeElements(this.eConditionBodies, startPosition, deleteCount);\n this.removeValueElements(startPosition, deleteCount);\n var joinOperatorIndex = Math.max(startPosition - 1, 0);\n this.removeElements(this.eJoinOperatorPanels, joinOperatorIndex, deleteCount);\n this.removeComponents(this.eJoinOperatorsAnd, joinOperatorIndex, deleteCount);\n this.removeComponents(this.eJoinOperatorsOr, joinOperatorIndex, deleteCount);\n };\n SimpleFilter.prototype.removeElements = function (elements, startPosition, deleteCount) {\n var removedElements = this.removeItems(elements, startPosition, deleteCount);\n removedElements.forEach(function (element) { return removeFromParent(element); });\n };\n SimpleFilter.prototype.removeComponents = function (components, startPosition, deleteCount) {\n var _this = this;\n var removedComponents = this.removeItems(components, startPosition, deleteCount);\n removedComponents.forEach(function (comp) {\n removeFromParent(comp.getGui());\n _this.destroyBean(comp);\n });\n };\n SimpleFilter.prototype.removeItems = function (items, startPosition, deleteCount) {\n return deleteCount == null ? items.splice(startPosition) : items.splice(startPosition, deleteCount);\n };\n SimpleFilter.prototype.afterGuiAttached = function (params) {\n _super.prototype.afterGuiAttached.call(this, params);\n this.resetPlaceholder();\n if (!(params === null || params === void 0 ? void 0 : params.suppressFocus)) {\n if (this.isReadOnly()) {\n // something needs focus otherwise keyboard navigation breaks, so focus the filter body\n this.eFilterBody.focus();\n }\n else {\n var firstInput = this.getInputs(0)[0];\n if (!firstInput) {\n return;\n }\n if (firstInput instanceof AgAbstractInputField) {\n firstInput.getInputElement().focus();\n }\n }\n }\n };\n SimpleFilter.prototype.afterGuiDetached = function () {\n _super.prototype.afterGuiDetached.call(this);\n var appliedModel = this.getModel();\n if (!this.areModelsEqual(appliedModel, this.getModelFromUi()) || this.hasInvalidInputs()) {\n this.resetUiToActiveModel(appliedModel);\n }\n // remove incomplete positions\n var lastUiCompletePosition = -1;\n // as we remove incomplete positions, the last UI complete position will change\n var updatedLastUiCompletePosition = -1;\n var conditionsRemoved = false;\n var joinOperator = this.getJoinOperator();\n for (var position = this.getNumConditions() - 1; position >= 0; position--) {\n if (this.isConditionUiComplete(position)) {\n if (lastUiCompletePosition === -1) {\n lastUiCompletePosition = position;\n updatedLastUiCompletePosition = position;\n }\n }\n else {\n var shouldRemovePositionAtEnd = position >= this.numAlwaysVisibleConditions && !this.isConditionUiComplete(position - 1);\n var positionBeforeLastUiCompletePosition = position < lastUiCompletePosition;\n if (shouldRemovePositionAtEnd || positionBeforeLastUiCompletePosition) {\n this.removeConditionsAndOperators(position, 1);\n conditionsRemoved = true;\n if (positionBeforeLastUiCompletePosition) {\n updatedLastUiCompletePosition--;\n }\n }\n }\n }\n var shouldUpdateConditionStatusesAndValues = false;\n if (this.getNumConditions() < this.numAlwaysVisibleConditions) {\n // if conditions have been removed, need to recreate new ones at the end up to the number required\n this.createMissingConditionsAndOperators();\n shouldUpdateConditionStatusesAndValues = true;\n }\n if (this.shouldAddNewConditionAtEnd(updatedLastUiCompletePosition === this.getNumConditions() - 1)) {\n this.createJoinOperatorPanel();\n this.createOption();\n shouldUpdateConditionStatusesAndValues = true;\n }\n if (shouldUpdateConditionStatusesAndValues) {\n this.updateConditionStatusesAndValues(updatedLastUiCompletePosition, joinOperator);\n }\n if (conditionsRemoved) {\n this.updateJoinOperatorsDisabled();\n }\n this.lastUiCompletePosition = updatedLastUiCompletePosition;\n };\n SimpleFilter.prototype.getPlaceholderText = function (defaultPlaceholder, position) {\n var placeholder = this.translate(defaultPlaceholder);\n if (isFunction(this.filterPlaceholder)) {\n var filterPlaceholderFn = this.filterPlaceholder;\n var filterOptionKey = this.eTypes[position].getValue();\n var filterOption = this.translate(filterOptionKey);\n placeholder = filterPlaceholderFn({\n filterOptionKey: filterOptionKey,\n filterOption: filterOption,\n placeholder: placeholder\n });\n }\n else if (typeof this.filterPlaceholder === 'string') {\n placeholder = this.filterPlaceholder;\n }\n return placeholder;\n };\n // allow sub-classes to reset HTML placeholders after UI update.\n SimpleFilter.prototype.resetPlaceholder = function () {\n var _this = this;\n var globalTranslate = this.localeService.getLocaleTextFunc();\n this.forEachInput(function (element, index, position, numberOfInputs) {\n if (!(element instanceof AgAbstractInputField)) {\n return;\n }\n var placeholder = index === 0 && numberOfInputs > 1 ? 'inRangeStart' :\n index === 0 ? 'filterOoo' :\n 'inRangeEnd';\n var ariaLabel = index === 0 && numberOfInputs > 1 ? globalTranslate('ariaFilterFromValue', 'Filter from value') :\n index === 0 ? globalTranslate('ariaFilterValue', 'Filter Value') :\n globalTranslate('ariaFilterToValue', 'Filter to Value');\n element.setInputPlaceholder(_this.getPlaceholderText(placeholder, position));\n element.setInputAriaLabel(ariaLabel);\n });\n };\n SimpleFilter.prototype.setElementValue = function (element, value, fromFloatingFilter) {\n if (element instanceof AgAbstractInputField) {\n element.setValue(value != null ? String(value) : null, true);\n }\n };\n SimpleFilter.prototype.setElementDisplayed = function (element, displayed) {\n if (element instanceof Component) {\n setDisplayed(element.getGui(), displayed);\n }\n };\n SimpleFilter.prototype.setElementDisabled = function (element, disabled) {\n if (element instanceof Component) {\n setDisabled(element.getGui(), disabled);\n }\n };\n SimpleFilter.prototype.attachElementOnChange = function (element, listener) {\n if (element instanceof AgAbstractInputField) {\n element.onValueChange(listener);\n }\n };\n SimpleFilter.prototype.forEachInput = function (cb) {\n var _this = this;\n this.getConditionTypes().forEach(function (type, position) {\n _this.forEachPositionTypeInput(position, type, cb);\n });\n };\n SimpleFilter.prototype.forEachPositionInput = function (position, cb) {\n var type = this.getConditionType(position);\n this.forEachPositionTypeInput(position, type, cb);\n };\n SimpleFilter.prototype.forEachPositionTypeInput = function (position, type, cb) {\n var numberOfInputs = this.getNumberOfInputs(type);\n var inputs = this.getInputs(position);\n for (var index = 0; index < inputs.length; index++) {\n var input = inputs[index];\n if (input != null) {\n cb(input, index, position, numberOfInputs);\n }\n }\n };\n SimpleFilter.prototype.isConditionDisabled = function (position, lastUiCompletePosition) {\n if (this.isReadOnly()) {\n return true;\n } // Read-only mode trumps everything.\n if (position === 0) {\n return false;\n } // Position 0 should typically be editable.\n // Only allow editing of a 2nd or later condition if the previous condition is complete and no subsequent conditions are complete.\n return position > lastUiCompletePosition + 1;\n };\n SimpleFilter.prototype.isConditionBodyVisible = function (position) {\n // Check that the condition needs inputs.\n var type = this.getConditionType(position);\n var numberOfInputs = this.getNumberOfInputs(type);\n return numberOfInputs > 0;\n };\n // returns true if the UI represents a working filter, eg all parts are filled out.\n // eg if text filter and textfield blank then returns false.\n SimpleFilter.prototype.isConditionUiComplete = function (position) {\n if (position >= this.getNumConditions()) {\n return false;\n } // Condition doesn't exist.\n var type = this.getConditionType(position);\n if (type === SimpleFilter.EMPTY) {\n return false;\n }\n if (this.getValues(position).some(function (v) { return v == null; })) {\n return false;\n }\n return true;\n };\n SimpleFilter.prototype.getNumConditions = function () {\n return this.eTypes.length;\n };\n SimpleFilter.prototype.getUiCompleteConditions = function () {\n var conditions = [];\n for (var position = 0; position < this.getNumConditions(); position++) {\n if (this.isConditionUiComplete(position)) {\n conditions.push(this.createCondition(position));\n }\n }\n return conditions;\n };\n SimpleFilter.prototype.createMissingConditionsAndOperators = function () {\n if (this.isReadOnly()) {\n return;\n } // don't show incomplete conditions when read only\n for (var i = this.getNumConditions(); i < this.numAlwaysVisibleConditions; i++) {\n this.createJoinOperatorPanel();\n this.createOption();\n }\n };\n SimpleFilter.prototype.resetUiToDefaults = function (silent) {\n var _this = this;\n this.removeConditionsAndOperators(this.isReadOnly() ? 1 : this.numAlwaysVisibleConditions);\n this.eTypes.forEach(function (eType) { return _this.resetType(eType); });\n this.eJoinOperatorsAnd.forEach(function (eJoinOperatorAnd, index) { return _this.resetJoinOperatorAnd(eJoinOperatorAnd, index, _this.joinOperatorId + index); });\n this.eJoinOperatorsOr.forEach(function (eJoinOperatorOr, index) { return _this.resetJoinOperatorOr(eJoinOperatorOr, index, _this.joinOperatorId + index); });\n this.joinOperatorId++;\n this.forEachInput(function (element) { return _this.resetInput(element); });\n this.resetPlaceholder();\n this.createMissingConditionsAndOperators();\n this.lastUiCompletePosition = null;\n if (!silent) {\n this.onUiChanged();\n }\n return AgPromise.resolve();\n };\n SimpleFilter.prototype.resetType = function (eType) {\n var translate = this.localeService.getLocaleTextFunc();\n var filteringLabel = translate('ariaFilteringOperator', 'Filtering operator');\n eType\n .setValue(this.optionsFactory.getDefaultOption(), true)\n .setAriaLabel(filteringLabel)\n .setDisabled(this.isReadOnly() || this.filterListOptions.length <= 1);\n };\n SimpleFilter.prototype.resetJoinOperatorAnd = function (eJoinOperatorAnd, index, uniqueGroupId) {\n this.resetJoinOperator(eJoinOperatorAnd, index, this.isDefaultOperator('AND'), this.translate('andCondition'), uniqueGroupId);\n };\n SimpleFilter.prototype.resetJoinOperatorOr = function (eJoinOperatorOr, index, uniqueGroupId) {\n this.resetJoinOperator(eJoinOperatorOr, index, this.isDefaultOperator('OR'), this.translate('orCondition'), uniqueGroupId);\n };\n SimpleFilter.prototype.resetJoinOperator = function (eJoinOperator, index, value, label, uniqueGroupId) {\n this.updateJoinOperatorDisabled(eJoinOperator\n .setValue(value, true)\n .setName(\"ag-simple-filter-and-or-\" + this.getCompId() + \"-\" + uniqueGroupId)\n .setLabel(label), index);\n };\n SimpleFilter.prototype.updateJoinOperatorsDisabled = function () {\n var _this = this;\n this.eJoinOperatorsAnd.forEach(function (eJoinOperator, index) { return _this.updateJoinOperatorDisabled(eJoinOperator, index); });\n this.eJoinOperatorsOr.forEach(function (eJoinOperator, index) { return _this.updateJoinOperatorDisabled(eJoinOperator, index); });\n };\n SimpleFilter.prototype.updateJoinOperatorDisabled = function (eJoinOperator, index) {\n eJoinOperator.setDisabled(this.isReadOnly() || index > 0);\n };\n SimpleFilter.prototype.resetInput = function (element) {\n this.setElementValue(element, null);\n this.setElementDisabled(element, this.isReadOnly());\n };\n // puts model values into the UI\n SimpleFilter.prototype.setConditionIntoUi = function (model, position) {\n var _this = this;\n var values = this.mapValuesFromModel(model);\n this.forEachInput(function (element, index, elPosition, _) {\n if (elPosition !== position) {\n return;\n }\n _this.setElementValue(element, values[index] != null ? values[index] : null);\n });\n };\n // after floating filter changes, this sets the 'value' section. this is implemented by the base class\n // (as that's where value is controlled), the 'type' part from the floating filter is dealt with in this class.\n SimpleFilter.prototype.setValueFromFloatingFilter = function (value) {\n var _this = this;\n this.forEachInput(function (element, index, position, _) {\n _this.setElementValue(element, index === 0 && position === 0 ? value : null, true);\n });\n };\n SimpleFilter.prototype.isDefaultOperator = function (operator) {\n return operator === this.defaultJoinOperator;\n };\n SimpleFilter.prototype.addChangedListeners = function (eType, position) {\n var _this = this;\n if (this.isReadOnly()) {\n return;\n }\n eType.onValueChange(this.listener);\n this.forEachPositionInput(position, function (element) {\n _this.attachElementOnChange(element, _this.listener);\n });\n };\n /** returns true if the row passes the said condition */\n SimpleFilter.prototype.individualConditionPasses = function (params, filterModel) {\n var cellValue = this.getCellValue(params.node);\n var values = this.mapValuesFromModel(filterModel);\n var customFilterOption = this.optionsFactory.getCustomOption(filterModel.type);\n var customFilterResult = this.evaluateCustomFilter(customFilterOption, values, cellValue);\n if (customFilterResult != null) {\n return customFilterResult;\n }\n if (cellValue == null) {\n return this.evaluateNullValue(filterModel.type);\n }\n return this.evaluateNonNullValue(values, cellValue, filterModel, params);\n };\n SimpleFilter.prototype.evaluateCustomFilter = function (customFilterOption, values, cellValue) {\n if (customFilterOption == null) {\n return;\n }\n var predicate = customFilterOption.predicate;\n // only execute the custom filter if a value exists or a value isn't required, i.e. input is hidden\n if (predicate != null && !values.some(function (v) { return v == null; })) {\n return predicate(values, cellValue);\n }\n // No custom filter invocation, indicate that to the caller.\n return;\n };\n SimpleFilter.prototype.isBlank = function (cellValue) {\n return cellValue == null ||\n (typeof cellValue === 'string' && cellValue.trim().length === 0);\n };\n SimpleFilter.prototype.hasInvalidInputs = function () {\n return false;\n };\n SimpleFilter.EMPTY = 'empty';\n SimpleFilter.BLANK = 'blank';\n SimpleFilter.NOT_BLANK = 'notBlank';\n SimpleFilter.EQUALS = 'equals';\n SimpleFilter.NOT_EQUAL = 'notEqual';\n SimpleFilter.LESS_THAN = 'lessThan';\n SimpleFilter.LESS_THAN_OR_EQUAL = 'lessThanOrEqual';\n SimpleFilter.GREATER_THAN = 'greaterThan';\n SimpleFilter.GREATER_THAN_OR_EQUAL = 'greaterThanOrEqual';\n SimpleFilter.IN_RANGE = 'inRange';\n SimpleFilter.CONTAINS = 'contains';\n SimpleFilter.NOT_CONTAINS = 'notContains';\n SimpleFilter.STARTS_WITH = 'startsWith';\n SimpleFilter.ENDS_WITH = 'endsWith';\n return SimpleFilter;\n}(ProvidedFilter));\n\nvar __extends$2N = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar ScalarFilter = /** @class */ (function (_super) {\n __extends$2N(ScalarFilter, _super);\n function ScalarFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ScalarFilter.prototype.setParams = function (params) {\n _super.prototype.setParams.call(this, params);\n this.scalarFilterParams = params;\n };\n ScalarFilter.prototype.evaluateNullValue = function (filterType) {\n switch (filterType) {\n case ScalarFilter.EQUALS:\n case ScalarFilter.NOT_EQUAL:\n if (this.scalarFilterParams.includeBlanksInEquals) {\n return true;\n }\n break;\n case ScalarFilter.GREATER_THAN:\n case ScalarFilter.GREATER_THAN_OR_EQUAL:\n if (this.scalarFilterParams.includeBlanksInGreaterThan) {\n return true;\n }\n break;\n case ScalarFilter.LESS_THAN:\n case ScalarFilter.LESS_THAN_OR_EQUAL:\n if (this.scalarFilterParams.includeBlanksInLessThan) {\n return true;\n }\n break;\n case ScalarFilter.IN_RANGE:\n if (this.scalarFilterParams.includeBlanksInRange) {\n return true;\n }\n break;\n case ScalarFilter.BLANK:\n return true;\n case ScalarFilter.NOT_BLANK:\n return false;\n }\n return false;\n };\n ScalarFilter.prototype.evaluateNonNullValue = function (values, cellValue, filterModel) {\n var comparator = this.comparator();\n var compareResult = values[0] != null ? comparator(values[0], cellValue) : 0;\n switch (filterModel.type) {\n case ScalarFilter.EQUALS:\n return compareResult === 0;\n case ScalarFilter.NOT_EQUAL:\n return compareResult !== 0;\n case ScalarFilter.GREATER_THAN:\n return compareResult > 0;\n case ScalarFilter.GREATER_THAN_OR_EQUAL:\n return compareResult >= 0;\n case ScalarFilter.LESS_THAN:\n return compareResult < 0;\n case ScalarFilter.LESS_THAN_OR_EQUAL:\n return compareResult <= 0;\n case ScalarFilter.IN_RANGE: {\n var compareToResult = comparator(values[1], cellValue);\n return this.scalarFilterParams.inRangeInclusive ?\n compareResult >= 0 && compareToResult <= 0 :\n compareResult > 0 && compareToResult < 0;\n }\n case ScalarFilter.BLANK:\n return this.isBlank(cellValue);\n case ScalarFilter.NOT_BLANK:\n return !this.isBlank(cellValue);\n default:\n console.warn('AG Grid: Unexpected type of filter \"' + filterModel.type + '\", it looks like the filter was configured with incorrect Filter Options');\n return true;\n }\n };\n return ScalarFilter;\n}(SimpleFilter));\n\nvar __extends$2M = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$i = (undefined && undefined.__assign) || function () {\n __assign$i = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$i.apply(this, arguments);\n};\nvar __decorate$2n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DEFAULT_MIN_YEAR = 1000;\nvar DEFAULT_MAX_YEAR = Infinity;\nvar DateFilterModelFormatter = /** @class */ (function (_super) {\n __extends$2M(DateFilterModelFormatter, _super);\n function DateFilterModelFormatter(dateFilterParams, localeService, optionsFactory) {\n var _this = _super.call(this, localeService, optionsFactory) || this;\n _this.dateFilterParams = dateFilterParams;\n return _this;\n }\n DateFilterModelFormatter.prototype.conditionToString = function (condition, options) {\n var type = condition.type;\n var numberOfInputs = (options || {}).numberOfInputs;\n var isRange = type == SimpleFilter.IN_RANGE || numberOfInputs === 2;\n var dateFrom = parseDateTimeFromString(condition.dateFrom);\n var dateTo = parseDateTimeFromString(condition.dateTo);\n var format = this.dateFilterParams.inRangeFloatingFilterDateFormat;\n if (isRange) {\n var formattedFrom = dateFrom !== null ? dateToFormattedString(dateFrom, format) : 'null';\n var formattedTo = dateTo !== null ? dateToFormattedString(dateTo, format) : 'null';\n return formattedFrom + \"-\" + formattedTo;\n }\n if (dateFrom != null) {\n return dateToFormattedString(dateFrom, format);\n }\n // cater for when the type doesn't need a value\n return \"\" + type;\n };\n DateFilterModelFormatter.prototype.updateParams = function (params) {\n _super.prototype.updateParams.call(this, params);\n this.dateFilterParams = params.dateFilterParams;\n };\n return DateFilterModelFormatter;\n}(SimpleFilterModelFormatter));\nvar DateFilter = /** @class */ (function (_super) {\n __extends$2M(DateFilter, _super);\n function DateFilter() {\n var _this = _super.call(this, 'dateFilter') || this;\n _this.eConditionPanelsFrom = [];\n _this.eConditionPanelsTo = [];\n _this.dateConditionFromComps = [];\n _this.dateConditionToComps = [];\n _this.minValidYear = DEFAULT_MIN_YEAR;\n _this.maxValidYear = DEFAULT_MAX_YEAR;\n _this.minValidDate = null;\n _this.maxValidDate = null;\n return _this;\n }\n DateFilter.prototype.afterGuiAttached = function (params) {\n _super.prototype.afterGuiAttached.call(this, params);\n this.dateConditionFromComps[0].afterGuiAttached(params);\n };\n DateFilter.prototype.mapValuesFromModel = function (filterModel) {\n // unlike the other filters, we do two things here:\n // 1) allow for different attribute names (same as done for other filters) (eg the 'from' and 'to'\n // are in different locations in Date and Number filter models)\n // 2) convert the type (because Date filter uses Dates, however model is 'string')\n //\n // NOTE: The conversion of string to date also removes the timezone - i.e. when user picks\n // a date from the UI, it will have timezone info in it. This is lost when creating\n // the model. When we recreate the date again here, it's without a timezone.\n var _a = filterModel || {}, dateFrom = _a.dateFrom, dateTo = _a.dateTo, type = _a.type;\n return [\n dateFrom && parseDateTimeFromString(dateFrom) || null,\n dateTo && parseDateTimeFromString(dateTo) || null,\n ].slice(0, this.getNumberOfInputs(type));\n };\n DateFilter.prototype.comparator = function () {\n return this.dateFilterParams.comparator ? this.dateFilterParams.comparator : this.defaultComparator.bind(this);\n };\n DateFilter.prototype.defaultComparator = function (filterDate, cellValue) {\n // The default comparator assumes that the cellValue is a date\n var cellAsDate = cellValue;\n if (cellValue == null || cellAsDate < filterDate) {\n return -1;\n }\n if (cellAsDate > filterDate) {\n return 1;\n }\n return 0;\n };\n DateFilter.prototype.setParams = function (params) {\n this.dateFilterParams = params;\n _super.prototype.setParams.call(this, params);\n var yearParser = function (param, fallback) {\n if (params[param] != null) {\n if (!isNaN(params[param])) {\n return params[param] == null ? fallback : Number(params[param]);\n }\n else {\n console.warn(\"AG Grid: DateFilter \" + param + \" is not a number\");\n }\n }\n return fallback;\n };\n this.minValidYear = yearParser('minValidYear', DEFAULT_MIN_YEAR);\n this.maxValidYear = yearParser('maxValidYear', DEFAULT_MAX_YEAR);\n if (this.minValidYear > this.maxValidYear) {\n console.warn(\"AG Grid: DateFilter minValidYear should be <= maxValidYear\");\n }\n if (params.minValidDate) {\n this.minValidDate = params.minValidDate instanceof Date ? params.minValidDate : parseDateTimeFromString(params.minValidDate);\n }\n else {\n this.minValidDate = null;\n }\n if (params.maxValidDate) {\n this.maxValidDate = params.maxValidDate instanceof Date ? params.maxValidDate : parseDateTimeFromString(params.maxValidDate);\n }\n else {\n this.maxValidDate = null;\n }\n if (this.minValidDate && this.maxValidDate && this.minValidDate > this.maxValidDate) {\n console.warn(\"AG Grid: DateFilter minValidDate should be <= maxValidDate\");\n }\n this.filterModelFormatter = new DateFilterModelFormatter(this.dateFilterParams, this.localeService, this.optionsFactory);\n };\n DateFilter.prototype.createDateCompWrapper = function (element) {\n var _this = this;\n var dateCompWrapper = new DateCompWrapper(this.getContext(), this.userComponentFactory, {\n onDateChanged: function () { return _this.onUiChanged(); },\n filterParams: this.dateFilterParams\n }, element);\n this.addDestroyFunc(function () { return dateCompWrapper.destroy(); });\n return dateCompWrapper;\n };\n DateFilter.prototype.setElementValue = function (element, value) {\n element.setDate(value);\n };\n DateFilter.prototype.setElementDisplayed = function (element, displayed) {\n element.setDisplayed(displayed);\n };\n DateFilter.prototype.setElementDisabled = function (element, disabled) {\n element.setDisabled(disabled);\n };\n DateFilter.prototype.getDefaultFilterOptions = function () {\n return DateFilter.DEFAULT_FILTER_OPTIONS;\n };\n DateFilter.prototype.createValueElement = function () {\n var eCondition = document.createElement('div');\n eCondition.classList.add('ag-filter-body');\n this.createFromToElement(eCondition, this.eConditionPanelsFrom, this.dateConditionFromComps, 'from');\n this.createFromToElement(eCondition, this.eConditionPanelsTo, this.dateConditionToComps, 'to');\n return eCondition;\n };\n DateFilter.prototype.createFromToElement = function (eCondition, eConditionPanels, dateConditionComps, fromTo) {\n var eConditionPanel = document.createElement('div');\n eConditionPanel.classList.add(\"ag-filter-\" + fromTo);\n eConditionPanel.classList.add(\"ag-filter-date-\" + fromTo);\n eConditionPanels.push(eConditionPanel);\n eCondition.appendChild(eConditionPanel);\n dateConditionComps.push(this.createDateCompWrapper(eConditionPanel));\n };\n DateFilter.prototype.removeValueElements = function (startPosition, deleteCount) {\n this.removeDateComps(this.dateConditionFromComps, startPosition, deleteCount);\n this.removeDateComps(this.dateConditionToComps, startPosition, deleteCount);\n this.removeItems(this.eConditionPanelsFrom, startPosition, deleteCount);\n this.removeItems(this.eConditionPanelsTo, startPosition, deleteCount);\n };\n DateFilter.prototype.removeDateComps = function (components, startPosition, deleteCount) {\n var removedComponents = this.removeItems(components, startPosition, deleteCount);\n removedComponents.forEach(function (comp) { return comp.destroy(); });\n };\n DateFilter.prototype.isValidDateValue = function (value) {\n if (value === null) {\n return false;\n }\n if (this.minValidDate) {\n if (value < this.minValidDate) {\n return false;\n }\n }\n else {\n if (value.getUTCFullYear() < this.minValidYear) {\n return false;\n }\n }\n if (this.maxValidDate) {\n if (value > this.maxValidDate) {\n return false;\n }\n }\n else {\n if (value.getUTCFullYear() > this.maxValidYear) {\n return false;\n }\n }\n return true;\n };\n DateFilter.prototype.isConditionUiComplete = function (position) {\n var _this = this;\n if (!_super.prototype.isConditionUiComplete.call(this, position)) {\n return false;\n }\n var valid = true;\n this.forEachInput(function (element, index, elPosition, numberOfInputs) {\n if (elPosition !== position || !valid || index >= numberOfInputs) {\n return;\n }\n valid = valid && _this.isValidDateValue(element.getDate());\n });\n return valid;\n };\n DateFilter.prototype.areSimpleModelsEqual = function (aSimple, bSimple) {\n return aSimple.dateFrom === bSimple.dateFrom\n && aSimple.dateTo === bSimple.dateTo\n && aSimple.type === bSimple.type;\n };\n DateFilter.prototype.getFilterType = function () {\n return 'date';\n };\n DateFilter.prototype.createCondition = function (position) {\n var type = this.getConditionType(position);\n var model = {};\n var values = this.getValues(position);\n if (values.length > 0) {\n model.dateFrom = serialiseDate(values[0]);\n }\n if (values.length > 1) {\n model.dateTo = serialiseDate(values[1]);\n }\n return __assign$i({ dateFrom: null, dateTo: null, filterType: this.getFilterType(), type: type }, model);\n };\n DateFilter.prototype.resetPlaceholder = function () {\n var globalTranslate = this.localeService.getLocaleTextFunc();\n var placeholder = this.translate('dateFormatOoo');\n var ariaLabel = globalTranslate('ariaFilterValue', 'Filter Value');\n this.forEachInput(function (element) {\n element.setInputPlaceholder(placeholder);\n element.setInputAriaLabel(ariaLabel);\n });\n };\n DateFilter.prototype.getInputs = function (position) {\n if (position >= this.dateConditionFromComps.length) {\n return [null, null];\n }\n return [this.dateConditionFromComps[position], this.dateConditionToComps[position]];\n };\n DateFilter.prototype.getValues = function (position) {\n var result = [];\n this.forEachPositionInput(position, function (element, index, _elPosition, numberOfInputs) {\n if (index < numberOfInputs) {\n result.push(element.getDate());\n }\n });\n return result;\n };\n DateFilter.prototype.getModelAsString = function (model) {\n var _a;\n return (_a = this.filterModelFormatter.getModelAsString(model)) !== null && _a !== void 0 ? _a : '';\n };\n DateFilter.DEFAULT_FILTER_OPTIONS = [\n ScalarFilter.EQUALS,\n ScalarFilter.GREATER_THAN,\n ScalarFilter.LESS_THAN,\n ScalarFilter.NOT_EQUAL,\n ScalarFilter.IN_RANGE,\n ScalarFilter.BLANK,\n ScalarFilter.NOT_BLANK,\n ];\n __decorate$2n([\n Autowired('userComponentFactory')\n ], DateFilter.prototype, \"userComponentFactory\", void 0);\n return DateFilter;\n}(ScalarFilter));\n\nvar __extends$2L = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar SimpleFloatingFilter = /** @class */ (function (_super) {\n __extends$2L(SimpleFloatingFilter, _super);\n function SimpleFloatingFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SimpleFloatingFilter.prototype.getDefaultDebounceMs = function () {\n return 0;\n };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n SimpleFloatingFilter.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n SimpleFloatingFilter.prototype.isEventFromFloatingFilter = function (event) {\n return event && event.afterFloatingFilter;\n };\n SimpleFloatingFilter.prototype.isEventFromDataChange = function (event) {\n return event === null || event === void 0 ? void 0 : event.afterDataChange;\n };\n SimpleFloatingFilter.prototype.getLastType = function () {\n return this.lastType;\n };\n SimpleFloatingFilter.prototype.isReadOnly = function () {\n return this.readOnly;\n };\n SimpleFloatingFilter.prototype.setLastTypeFromModel = function (model) {\n // if no model provided by the parent filter use default\n if (!model) {\n this.lastType = this.optionsFactory.getDefaultOption();\n return;\n }\n var isCombined = model.operator;\n var condition;\n if (isCombined) {\n var combinedModel = model;\n condition = combinedModel.conditions[0];\n }\n else {\n condition = model;\n }\n this.lastType = condition.type;\n };\n SimpleFloatingFilter.prototype.canWeEditAfterModelFromParentFilter = function (model) {\n if (!model) {\n // if no model, then we can edit as long as the lastType is something we can edit, as this\n // is the type we will provide to the parent filter if the user decides to use the floating filter.\n return this.isTypeEditable(this.lastType);\n }\n // never allow editing if the filter is combined (ie has two parts)\n var isCombined = model.operator;\n if (isCombined) {\n return false;\n }\n var simpleModel = model;\n return this.isTypeEditable(simpleModel.type);\n };\n SimpleFloatingFilter.prototype.init = function (params) {\n this.setSimpleParams(params);\n };\n SimpleFloatingFilter.prototype.setSimpleParams = function (params) {\n this.optionsFactory = new OptionsFactory();\n this.optionsFactory.init(params.filterParams, this.getDefaultFilterOptions());\n this.lastType = this.optionsFactory.getDefaultOption();\n // readOnly is a property of ProvidedFilterParams - we need to find a better (type-safe)\n // way to support reading this in the future.\n this.readOnly = !!params.filterParams.readOnly;\n // we are editable if:\n // 1) there is a type (user has configured filter wrong if not type)\n // AND\n // 2) the default type is not 'in range'\n var editable = this.isTypeEditable(this.lastType);\n this.setEditable(editable);\n };\n SimpleFloatingFilter.prototype.onParamsUpdated = function (params) {\n this.setSimpleParams(params);\n };\n SimpleFloatingFilter.prototype.doesFilterHaveSingleInput = function (filterType) {\n var customFilterOption = this.optionsFactory.getCustomOption(filterType);\n var numberOfInputs = (customFilterOption || {}).numberOfInputs;\n return numberOfInputs == null || numberOfInputs == 1;\n };\n SimpleFloatingFilter.prototype.isTypeEditable = function (type) {\n var uneditableTypes = [\n SimpleFilter.IN_RANGE, SimpleFilter.EMPTY, SimpleFilter.BLANK, SimpleFilter.NOT_BLANK,\n ];\n return !!type &&\n !this.isReadOnly() &&\n this.doesFilterHaveSingleInput(type) &&\n uneditableTypes.indexOf(type) < 0;\n };\n return SimpleFloatingFilter;\n}(Component));\n\nvar __extends$2K = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DateFloatingFilter = /** @class */ (function (_super) {\n __extends$2K(DateFloatingFilter, _super);\n function DateFloatingFilter() {\n return _super.call(this, /* html */ \"\\n
\\n \\n
\\n
\") || this;\n }\n DateFloatingFilter.prototype.getDefaultFilterOptions = function () {\n return DateFilter.DEFAULT_FILTER_OPTIONS;\n };\n DateFloatingFilter.prototype.init = function (params) {\n _super.prototype.init.call(this, params);\n this.params = params;\n this.filterParams = params.filterParams;\n this.createDateComponent();\n this.filterModelFormatter = new DateFilterModelFormatter(this.filterParams, this.localeService, this.optionsFactory);\n var translate = this.localeService.getLocaleTextFunc();\n this.eReadOnlyText\n .setDisabled(true)\n .setInputAriaLabel(translate('ariaDateFilterInput', 'Date Filter Input'));\n };\n DateFloatingFilter.prototype.onParamsUpdated = function (params) {\n _super.prototype.onParamsUpdated.call(this, params);\n this.params = params;\n this.filterParams = params.filterParams;\n this.updateDateComponent();\n this.filterModelFormatter.updateParams({ optionsFactory: this.optionsFactory, dateFilterParams: this.filterParams });\n };\n DateFloatingFilter.prototype.setEditable = function (editable) {\n setDisplayed(this.eDateWrapper, editable);\n setDisplayed(this.eReadOnlyText.getGui(), !editable);\n };\n DateFloatingFilter.prototype.onParentModelChanged = function (model, event) {\n // We don't want to update the floating filter if the floating filter caused the change,\n // because the UI is already in sync. if we didn't do this, the UI would behave strangely\n // as it would be updating as the user is typing.\n // This is similar for data changes, which don't affect provided date floating filters\n if (this.isEventFromFloatingFilter(event) || this.isEventFromDataChange(event)) {\n return;\n }\n _super.prototype.setLastTypeFromModel.call(this, model);\n var allowEditing = !this.isReadOnly() &&\n this.canWeEditAfterModelFromParentFilter(model);\n this.setEditable(allowEditing);\n if (allowEditing) {\n if (model) {\n var dateModel = model;\n this.dateComp.setDate(parseDateTimeFromString(dateModel.dateFrom));\n }\n else {\n this.dateComp.setDate(null);\n }\n this.eReadOnlyText.setValue('');\n }\n else {\n this.eReadOnlyText.setValue(this.filterModelFormatter.getModelAsString(model));\n this.dateComp.setDate(null);\n }\n };\n DateFloatingFilter.prototype.onDateChanged = function () {\n var _this = this;\n var filterValueDate = this.dateComp.getDate();\n var filterValueText = serialiseDate(filterValueDate);\n this.params.parentFilterInstance(function (filterInstance) {\n if (filterInstance) {\n var date = parseDateTimeFromString(filterValueText);\n filterInstance.onFloatingFilterChanged(_this.getLastType() || null, date);\n }\n });\n };\n DateFloatingFilter.prototype.getDateComponentParams = function () {\n var debounceMs = ProvidedFilter.getDebounceMs(this.params.filterParams, this.getDefaultDebounceMs());\n return {\n onDateChanged: debounce(this.onDateChanged.bind(this), debounceMs),\n filterParams: this.params.column.getColDef().filterParams\n };\n };\n DateFloatingFilter.prototype.createDateComponent = function () {\n var _this = this;\n this.dateComp = new DateCompWrapper(this.getContext(), this.userComponentFactory, this.getDateComponentParams(), this.eDateWrapper);\n this.addDestroyFunc(function () { return _this.dateComp.destroy(); });\n };\n DateFloatingFilter.prototype.updateDateComponent = function () {\n var params = this.getDateComponentParams();\n var _a = this.gridOptionsService, api = _a.api, columnApi = _a.columnApi, context = _a.context;\n params.api = api;\n params.columnApi = columnApi;\n params.context = context;\n this.dateComp.updateParams(params);\n };\n DateFloatingFilter.prototype.getFilterModelFormatter = function () {\n return this.filterModelFormatter;\n };\n __decorate$2m([\n Autowired('userComponentFactory')\n ], DateFloatingFilter.prototype, \"userComponentFactory\", void 0);\n __decorate$2m([\n RefSelector('eReadOnlyText')\n ], DateFloatingFilter.prototype, \"eReadOnlyText\", void 0);\n __decorate$2m([\n RefSelector('eDateWrapper')\n ], DateFloatingFilter.prototype, \"eDateWrapper\", void 0);\n return DateFloatingFilter;\n}(SimpleFloatingFilter));\n\nvar __extends$2J = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$o = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar DefaultDateComponent = /** @class */ (function (_super) {\n __extends$2J(DefaultDateComponent, _super);\n function DefaultDateComponent() {\n return _super.call(this, /* html */ \"\\n
\\n \\n
\") || this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n DefaultDateComponent.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n DefaultDateComponent.prototype.init = function (params) {\n var _this = this;\n this.params = params;\n this.setParams(params);\n var eDocument = this.gridOptionsService.getDocument();\n var inputElement = this.eDateInput.getInputElement();\n // ensures that the input element is focussed when a clear button is clicked,\n // unless using safari as there is no clear button and focus does not work properly\n this.addManagedListener(inputElement, 'mousedown', function () {\n if (_this.eDateInput.isDisabled() || _this.usingSafariDatePicker) {\n return;\n }\n inputElement.focus();\n });\n this.addManagedListener(inputElement, 'input', function (e) {\n if (e.target !== eDocument.activeElement) {\n return;\n }\n if (_this.eDateInput.isDisabled()) {\n return;\n }\n _this.params.onDateChanged();\n });\n };\n DefaultDateComponent.prototype.setParams = function (params) {\n var inputElement = this.eDateInput.getInputElement();\n var shouldUseBrowserDatePicker = this.shouldUseBrowserDatePicker(params);\n this.usingSafariDatePicker = shouldUseBrowserDatePicker && isBrowserSafari();\n inputElement.type = shouldUseBrowserDatePicker ? 'date' : 'text';\n var _a = params.filterParams || {}, minValidYear = _a.minValidYear, maxValidYear = _a.maxValidYear, minValidDate = _a.minValidDate, maxValidDate = _a.maxValidDate;\n if (minValidDate && minValidYear) {\n doOnce(function () { return console.warn('AG Grid: DateFilter should not have both minValidDate and minValidYear parameters set at the same time! minValidYear will be ignored.'); }, 'DateFilter.minValidDateAndMinValidYearWarning');\n }\n if (maxValidDate && maxValidYear) {\n doOnce(function () { return console.warn('AG Grid: DateFilter should not have both maxValidDate and maxValidYear parameters set at the same time! maxValidYear will be ignored.'); }, 'DateFilter.maxValidDateAndMaxValidYearWarning');\n }\n if (minValidDate && maxValidDate) {\n var _b = __read$o([minValidDate, maxValidDate]\n .map(function (v) { return v instanceof Date ? v : parseDateTimeFromString(v); }), 2), parsedMinValidDate = _b[0], parsedMaxValidDate = _b[1];\n if (parsedMinValidDate && parsedMaxValidDate && parsedMinValidDate.getTime() > parsedMaxValidDate.getTime()) {\n doOnce(function () { return console.warn('AG Grid: DateFilter parameter minValidDate should always be lower than or equal to parameter maxValidDate.'); }, 'DateFilter.minValidDateAndMaxValidDateWarning');\n }\n }\n if (minValidDate) {\n if (minValidDate instanceof Date) {\n inputElement.min = dateToFormattedString(minValidDate);\n }\n else {\n inputElement.min = minValidDate;\n }\n }\n else {\n if (minValidYear) {\n inputElement.min = minValidYear + \"-01-01\";\n }\n }\n if (maxValidDate) {\n if (maxValidDate instanceof Date) {\n inputElement.max = dateToFormattedString(maxValidDate);\n }\n else {\n inputElement.max = maxValidDate;\n }\n }\n else {\n if (maxValidYear) {\n inputElement.max = maxValidYear + \"-12-31\";\n }\n }\n };\n DefaultDateComponent.prototype.onParamsUpdated = function (params) {\n this.params = params;\n this.setParams(params);\n };\n DefaultDateComponent.prototype.getDate = function () {\n return parseDateTimeFromString(this.eDateInput.getValue());\n };\n DefaultDateComponent.prototype.setDate = function (date) {\n this.eDateInput.setValue(serialiseDate(date, false));\n };\n DefaultDateComponent.prototype.setInputPlaceholder = function (placeholder) {\n this.eDateInput.setInputPlaceholder(placeholder);\n };\n DefaultDateComponent.prototype.setDisabled = function (disabled) {\n this.eDateInput.setDisabled(disabled);\n };\n DefaultDateComponent.prototype.afterGuiAttached = function (params) {\n if (!params || !params.suppressFocus) {\n this.eDateInput.getInputElement().focus();\n }\n };\n DefaultDateComponent.prototype.shouldUseBrowserDatePicker = function (params) {\n if (params.filterParams && params.filterParams.browserDatePicker != null) {\n return params.filterParams.browserDatePicker;\n }\n return isBrowserChrome() || isBrowserFirefox() || (isBrowserSafari() && getSafariVersion() >= 14.1);\n };\n __decorate$2l([\n RefSelector('eDateInput')\n ], DefaultDateComponent.prototype, \"eDateInput\", void 0);\n return DefaultDateComponent;\n}(Component));\n\nvar __extends$2I = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgInputTextField = /** @class */ (function (_super) {\n __extends$2I(AgInputTextField, _super);\n function AgInputTextField(config, className, inputType) {\n if (className === void 0) { className = 'ag-text-field'; }\n if (inputType === void 0) { inputType = 'text'; }\n return _super.call(this, config, className, inputType) || this;\n }\n AgInputTextField.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n if (this.config.allowedCharPattern) {\n this.preventDisallowedCharacters();\n }\n };\n AgInputTextField.prototype.setValue = function (value, silent) {\n // update the input before we call super.setValue, so it's updated before the value changed event is fired\n if (this.eInput.value !== value) {\n this.eInput.value = exists(value) ? value : '';\n }\n return _super.prototype.setValue.call(this, value, silent);\n };\n /** Used to set an initial value into the input without necessarily setting `this.value` or triggering events (e.g. to set an invalid value) */\n AgInputTextField.prototype.setStartValue = function (value) {\n this.setValue(value, true);\n };\n AgInputTextField.prototype.preventDisallowedCharacters = function () {\n var pattern = new RegExp(\"[\" + this.config.allowedCharPattern + \"]\");\n var preventCharacters = function (event) {\n if (!isEventFromPrintableCharacter(event)) {\n return;\n }\n if (event.key && !pattern.test(event.key)) {\n event.preventDefault();\n }\n };\n this.addManagedListener(this.eInput, 'keydown', preventCharacters);\n this.addManagedListener(this.eInput, 'paste', function (e) {\n var _a;\n var text = (_a = e.clipboardData) === null || _a === void 0 ? void 0 : _a.getData('text');\n if (text && text.split('').some(function (c) { return !pattern.test(c); })) {\n e.preventDefault();\n }\n });\n };\n return AgInputTextField;\n}(AgAbstractInputField));\n\nvar __extends$2H = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgInputNumberField = /** @class */ (function (_super) {\n __extends$2H(AgInputNumberField, _super);\n function AgInputNumberField(config) {\n return _super.call(this, config, 'ag-number-field', 'number') || this;\n }\n AgInputNumberField.prototype.postConstruct = function () {\n var _this = this;\n _super.prototype.postConstruct.call(this);\n this.addManagedListener(this.eInput, 'blur', function () {\n var floatedValue = parseFloat(_this.eInput.value);\n var value = isNaN(floatedValue) ? '' : _this.normalizeValue(floatedValue.toString());\n if (_this.value !== value) {\n _this.setValue(value);\n }\n });\n this.addManagedListener(this.eInput, 'wheel', this.onWheel.bind(this));\n this.eInput.step = 'any';\n };\n AgInputNumberField.prototype.onWheel = function (e) {\n // Prevent default scroll events from incrementing / decrementing the input, since its inconsistent between browsers\n if (document.activeElement === this.eInput) {\n e.preventDefault();\n }\n };\n AgInputNumberField.prototype.normalizeValue = function (value) {\n if (value === '') {\n return '';\n }\n if (this.precision != null) {\n value = this.adjustPrecision(value);\n }\n var val = parseFloat(value);\n if (this.min != null && val < this.min) {\n value = this.min.toString();\n }\n else if (this.max != null && val > this.max) {\n value = this.max.toString();\n }\n return value;\n };\n AgInputNumberField.prototype.adjustPrecision = function (value, isScientificNotation) {\n if (this.precision == null) {\n return value;\n }\n if (isScientificNotation) {\n var floatString = parseFloat(value).toFixed(this.precision);\n return parseFloat(floatString).toString();\n }\n // can't use toFixed here because we don't want to round up\n var parts = String(value).split('.');\n if (parts.length > 1) {\n if (parts[1].length <= this.precision) {\n return value;\n }\n else if (this.precision > 0) {\n return parts[0] + \".\" + parts[1].slice(0, this.precision);\n }\n }\n return parts[0];\n };\n AgInputNumberField.prototype.setMin = function (min) {\n if (this.min === min) {\n return this;\n }\n this.min = min;\n addOrRemoveAttribute(this.eInput, 'min', min);\n return this;\n };\n AgInputNumberField.prototype.setMax = function (max) {\n if (this.max === max) {\n return this;\n }\n this.max = max;\n addOrRemoveAttribute(this.eInput, 'max', max);\n return this;\n };\n AgInputNumberField.prototype.setPrecision = function (precision) {\n this.precision = precision;\n return this;\n };\n AgInputNumberField.prototype.setStep = function (step) {\n if (this.step === step) {\n return this;\n }\n this.step = step;\n addOrRemoveAttribute(this.eInput, 'step', step);\n return this;\n };\n AgInputNumberField.prototype.setValue = function (value, silent) {\n var _this = this;\n return this.setValueOrInputValue(function (v) { return _super.prototype.setValue.call(_this, v, silent); }, function () { return _this; }, value);\n };\n AgInputNumberField.prototype.setStartValue = function (value) {\n var _this = this;\n return this.setValueOrInputValue(function (v) { return _super.prototype.setValue.call(_this, v, true); }, function (v) { _this.eInput.value = v; }, value);\n };\n AgInputNumberField.prototype.setValueOrInputValue = function (setValueFunc, setInputValueOnlyFunc, value) {\n if (exists(value)) {\n // need to maintain the scientific notation format whilst typing (e.g. 1e10)\n var setInputValueOnly = this.isScientificNotation(value);\n if (setInputValueOnly && this.eInput.validity.valid) {\n return setValueFunc(value);\n }\n if (!setInputValueOnly) {\n value = this.adjustPrecision(value);\n var normalizedValue = this.normalizeValue(value);\n // outside of valid range\n setInputValueOnly = value != normalizedValue;\n }\n if (setInputValueOnly) {\n return setInputValueOnlyFunc(value);\n }\n }\n return setValueFunc(value);\n };\n AgInputNumberField.prototype.getValue = function () {\n if (!this.eInput.validity.valid) {\n return undefined;\n }\n var inputValue = this.eInput.value;\n if (this.isScientificNotation(inputValue)) {\n return this.adjustPrecision(inputValue, true);\n }\n return _super.prototype.getValue.call(this);\n };\n AgInputNumberField.prototype.isScientificNotation = function (value) {\n return typeof value === 'string' && value.includes('e');\n };\n return AgInputNumberField;\n}(AgInputTextField));\n\nvar __extends$2G = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar NumberFilterModelFormatter = /** @class */ (function (_super) {\n __extends$2G(NumberFilterModelFormatter, _super);\n function NumberFilterModelFormatter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NumberFilterModelFormatter.prototype.conditionToString = function (condition, options) {\n var numberOfInputs = (options || {}).numberOfInputs;\n var isRange = condition.type == SimpleFilter.IN_RANGE || numberOfInputs === 2;\n if (isRange) {\n return this.formatValue(condition.filter) + \"-\" + this.formatValue(condition.filterTo);\n }\n // cater for when the type doesn't need a value\n if (condition.filter != null) {\n return this.formatValue(condition.filter);\n }\n return \"\" + condition.type;\n };\n return NumberFilterModelFormatter;\n}(SimpleFilterModelFormatter));\nfunction getAllowedCharPattern(filterParams) {\n var allowedCharPattern = (filterParams !== null && filterParams !== void 0 ? filterParams : {}).allowedCharPattern;\n return allowedCharPattern !== null && allowedCharPattern !== void 0 ? allowedCharPattern : null;\n}\nvar NumberFilter = /** @class */ (function (_super) {\n __extends$2G(NumberFilter, _super);\n function NumberFilter() {\n var _this = _super.call(this, 'numberFilter') || this;\n _this.eValuesFrom = [];\n _this.eValuesTo = [];\n return _this;\n }\n NumberFilter.prototype.mapValuesFromModel = function (filterModel) {\n var _a = filterModel || {}, filter = _a.filter, filterTo = _a.filterTo, type = _a.type;\n return [\n this.processValue(filter),\n this.processValue(filterTo),\n ].slice(0, this.getNumberOfInputs(type));\n };\n NumberFilter.prototype.getDefaultDebounceMs = function () {\n return 500;\n };\n NumberFilter.prototype.comparator = function () {\n return function (left, right) {\n if (left === right) {\n return 0;\n }\n return left < right ? 1 : -1;\n };\n };\n NumberFilter.prototype.setParams = function (params) {\n this.numberFilterParams = params;\n _super.prototype.setParams.call(this, params);\n this.filterModelFormatter = new NumberFilterModelFormatter(this.localeService, this.optionsFactory, this.numberFilterParams.numberFormatter);\n };\n NumberFilter.prototype.getDefaultFilterOptions = function () {\n return NumberFilter.DEFAULT_FILTER_OPTIONS;\n };\n NumberFilter.prototype.setElementValue = function (element, value, fromFloatingFilter) {\n // values from floating filter are directly from the input, not from the model\n var valueToSet = !fromFloatingFilter && this.numberFilterParams.numberFormatter\n ? this.numberFilterParams.numberFormatter(value !== null && value !== void 0 ? value : null)\n : value;\n _super.prototype.setElementValue.call(this, element, valueToSet);\n };\n NumberFilter.prototype.createValueElement = function () {\n var allowedCharPattern = getAllowedCharPattern(this.numberFilterParams);\n var eCondition = document.createElement('div');\n eCondition.classList.add('ag-filter-body');\n setAriaRole(eCondition, 'presentation');\n this.createFromToElement(eCondition, this.eValuesFrom, 'from', allowedCharPattern);\n this.createFromToElement(eCondition, this.eValuesTo, 'to', allowedCharPattern);\n return eCondition;\n };\n NumberFilter.prototype.createFromToElement = function (eCondition, eValues, fromTo, allowedCharPattern) {\n var eValue = this.createManagedBean(allowedCharPattern ? new AgInputTextField({ allowedCharPattern: allowedCharPattern }) : new AgInputNumberField());\n eValue.addCssClass(\"ag-filter-\" + fromTo);\n eValue.addCssClass('ag-filter-filter');\n eValues.push(eValue);\n eCondition.appendChild(eValue.getGui());\n };\n NumberFilter.prototype.removeValueElements = function (startPosition, deleteCount) {\n this.removeComponents(this.eValuesFrom, startPosition, deleteCount);\n this.removeComponents(this.eValuesTo, startPosition, deleteCount);\n };\n NumberFilter.prototype.getValues = function (position) {\n var _this = this;\n var result = [];\n this.forEachPositionInput(position, function (element, index, _elPosition, numberOfInputs) {\n if (index < numberOfInputs) {\n result.push(_this.processValue(_this.stringToFloat(element.getValue())));\n }\n });\n return result;\n };\n NumberFilter.prototype.areSimpleModelsEqual = function (aSimple, bSimple) {\n return aSimple.filter === bSimple.filter\n && aSimple.filterTo === bSimple.filterTo\n && aSimple.type === bSimple.type;\n };\n NumberFilter.prototype.getFilterType = function () {\n return 'number';\n };\n NumberFilter.prototype.processValue = function (value) {\n if (value == null) {\n return null;\n }\n return isNaN(value) ? null : value;\n };\n NumberFilter.prototype.stringToFloat = function (value) {\n if (typeof value === 'number') {\n return value;\n }\n var filterText = makeNull(value);\n if (filterText != null && filterText.trim() === '') {\n filterText = null;\n }\n if (this.numberFilterParams.numberParser) {\n return this.numberFilterParams.numberParser(filterText);\n }\n return filterText == null || filterText.trim() === '-' ? null : parseFloat(filterText);\n };\n NumberFilter.prototype.createCondition = function (position) {\n var type = this.getConditionType(position);\n var model = {\n filterType: this.getFilterType(),\n type: type\n };\n var values = this.getValues(position);\n if (values.length > 0) {\n model.filter = values[0];\n }\n if (values.length > 1) {\n model.filterTo = values[1];\n }\n return model;\n };\n NumberFilter.prototype.getInputs = function (position) {\n if (position >= this.eValuesFrom.length) {\n return [null, null];\n }\n return [this.eValuesFrom[position], this.eValuesTo[position]];\n };\n NumberFilter.prototype.getModelAsString = function (model) {\n var _a;\n return (_a = this.filterModelFormatter.getModelAsString(model)) !== null && _a !== void 0 ? _a : '';\n };\n NumberFilter.prototype.hasInvalidInputs = function () {\n var invalidInputs = false;\n this.forEachInput(function (element) {\n if (!element.getInputElement().validity.valid) {\n invalidInputs = true;\n return;\n }\n });\n return invalidInputs;\n };\n NumberFilter.DEFAULT_FILTER_OPTIONS = [\n ScalarFilter.EQUALS,\n ScalarFilter.NOT_EQUAL,\n ScalarFilter.LESS_THAN,\n ScalarFilter.LESS_THAN_OR_EQUAL,\n ScalarFilter.GREATER_THAN,\n ScalarFilter.GREATER_THAN_OR_EQUAL,\n ScalarFilter.IN_RANGE,\n ScalarFilter.BLANK,\n ScalarFilter.NOT_BLANK,\n ];\n return NumberFilter;\n}(ScalarFilter));\n\nvar __extends$2F = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$h = (undefined && undefined.__assign) || function () {\n __assign$h = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$h.apply(this, arguments);\n};\nvar TextFilterModelFormatter = /** @class */ (function (_super) {\n __extends$2F(TextFilterModelFormatter, _super);\n function TextFilterModelFormatter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TextFilterModelFormatter.prototype.conditionToString = function (condition, options) {\n var numberOfInputs = (options || {}).numberOfInputs;\n var isRange = condition.type == SimpleFilter.IN_RANGE || numberOfInputs === 2;\n if (isRange) {\n return condition.filter + \"-\" + condition.filterTo;\n }\n // cater for when the type doesn't need a value\n if (condition.filter != null) {\n return \"\" + condition.filter;\n }\n return \"\" + condition.type;\n };\n return TextFilterModelFormatter;\n}(SimpleFilterModelFormatter));\nvar TextFilter = /** @class */ (function (_super) {\n __extends$2F(TextFilter, _super);\n function TextFilter() {\n var _this = _super.call(this, 'textFilter') || this;\n _this.eValuesFrom = [];\n _this.eValuesTo = [];\n return _this;\n }\n TextFilter.trimInput = function (value) {\n var trimmedInput = value && value.trim();\n // trim the input, unless it is all whitespace (this is consistent with Excel behaviour)\n return trimmedInput === '' ? value : trimmedInput;\n };\n TextFilter.prototype.getDefaultDebounceMs = function () {\n return 500;\n };\n TextFilter.prototype.setParams = function (params) {\n this.textFilterParams = params;\n _super.prototype.setParams.call(this, params);\n this.matcher = this.getTextMatcher();\n this.formatter = this.textFilterParams.textFormatter ||\n (this.textFilterParams.caseSensitive ? TextFilter.DEFAULT_FORMATTER : TextFilter.DEFAULT_LOWERCASE_FORMATTER);\n this.filterModelFormatter = new TextFilterModelFormatter(this.localeService, this.optionsFactory);\n };\n TextFilter.prototype.getTextMatcher = function () {\n var legacyComparator = this.textFilterParams.textCustomComparator;\n if (legacyComparator) {\n _.doOnce(function () { return console.warn('AG Grid - textCustomComparator is deprecated, use textMatcher instead.'); }, 'textCustomComparator.deprecated');\n return function (_a) {\n var filterOption = _a.filterOption, value = _a.value, filterText = _a.filterText;\n return legacyComparator(filterOption, value, filterText);\n };\n }\n return this.textFilterParams.textMatcher || TextFilter.DEFAULT_MATCHER;\n };\n TextFilter.prototype.createCondition = function (position) {\n var type = this.getConditionType(position);\n var model = {\n filterType: this.getFilterType(),\n type: type,\n };\n var values = this.getValuesWithSideEffects(position, true);\n if (values.length > 0) {\n model.filter = values[0];\n }\n if (values.length > 1) {\n model.filterTo = values[1];\n }\n return model;\n };\n TextFilter.prototype.getFilterType = function () {\n return 'text';\n };\n TextFilter.prototype.areSimpleModelsEqual = function (aSimple, bSimple) {\n return aSimple.filter === bSimple.filter &&\n aSimple.filterTo === bSimple.filterTo &&\n aSimple.type === bSimple.type;\n };\n TextFilter.prototype.getInputs = function (position) {\n if (position >= this.eValuesFrom.length) {\n return [null, null];\n }\n return [this.eValuesFrom[position], this.eValuesTo[position]];\n };\n TextFilter.prototype.getValues = function (position) {\n return this.getValuesWithSideEffects(position, false);\n };\n TextFilter.prototype.getValuesWithSideEffects = function (position, applySideEffects) {\n var _this = this;\n var result = [];\n this.forEachPositionInput(position, function (element, index, _elPosition, numberOfInputs) {\n var _a;\n if (index < numberOfInputs) {\n var value = makeNull(element.getValue());\n if (applySideEffects && _this.textFilterParams.trimInput) {\n value = (_a = TextFilter.trimInput(value)) !== null && _a !== void 0 ? _a : null;\n element.setValue(value, true); // ensure clean value is visible\n }\n result.push(value);\n }\n });\n return result;\n };\n TextFilter.prototype.getDefaultFilterOptions = function () {\n return TextFilter.DEFAULT_FILTER_OPTIONS;\n };\n TextFilter.prototype.createValueElement = function () {\n var eCondition = document.createElement('div');\n eCondition.classList.add('ag-filter-body');\n setAriaRole(eCondition, 'presentation');\n this.createFromToElement(eCondition, this.eValuesFrom, 'from');\n this.createFromToElement(eCondition, this.eValuesTo, 'to');\n return eCondition;\n };\n TextFilter.prototype.createFromToElement = function (eCondition, eValues, fromTo) {\n var eValue = this.createManagedBean(new AgInputTextField());\n eValue.addCssClass(\"ag-filter-\" + fromTo);\n eValue.addCssClass('ag-filter-filter');\n eValues.push(eValue);\n eCondition.appendChild(eValue.getGui());\n };\n TextFilter.prototype.removeValueElements = function (startPosition, deleteCount) {\n this.removeComponents(this.eValuesFrom, startPosition, deleteCount);\n this.removeComponents(this.eValuesTo, startPosition, deleteCount);\n };\n TextFilter.prototype.mapValuesFromModel = function (filterModel) {\n var _a = filterModel || {}, filter = _a.filter, filterTo = _a.filterTo, type = _a.type;\n return [\n filter || null,\n filterTo || null,\n ].slice(0, this.getNumberOfInputs(type));\n };\n TextFilter.prototype.evaluateNullValue = function (filterType) {\n var filterTypesAllowNulls = [\n SimpleFilter.NOT_EQUAL, SimpleFilter.NOT_CONTAINS, SimpleFilter.BLANK,\n ];\n return filterType ? filterTypesAllowNulls.indexOf(filterType) >= 0 : false;\n };\n TextFilter.prototype.evaluateNonNullValue = function (values, cellValue, filterModel, params) {\n var _this = this;\n var formattedValues = values.map(function (v) { return _this.formatter(v); }) || [];\n var cellValueFormatted = this.formatter(cellValue);\n var _a = this.textFilterParams, api = _a.api, colDef = _a.colDef, column = _a.column, columnApi = _a.columnApi, context = _a.context, textFormatter = _a.textFormatter;\n if (filterModel.type === SimpleFilter.BLANK) {\n return this.isBlank(cellValue);\n }\n else if (filterModel.type === SimpleFilter.NOT_BLANK) {\n return !this.isBlank(cellValue);\n }\n var matcherParams = {\n api: api,\n colDef: colDef,\n column: column,\n columnApi: columnApi,\n context: context,\n node: params.node,\n data: params.data,\n filterOption: filterModel.type,\n value: cellValueFormatted,\n textFormatter: textFormatter,\n };\n return formattedValues.some(function (v) { return _this.matcher(__assign$h(__assign$h({}, matcherParams), { filterText: v })); });\n };\n TextFilter.prototype.getModelAsString = function (model) {\n var _a;\n return (_a = this.filterModelFormatter.getModelAsString(model)) !== null && _a !== void 0 ? _a : '';\n };\n TextFilter.DEFAULT_FILTER_OPTIONS = [\n SimpleFilter.CONTAINS,\n SimpleFilter.NOT_CONTAINS,\n SimpleFilter.EQUALS,\n SimpleFilter.NOT_EQUAL,\n SimpleFilter.STARTS_WITH,\n SimpleFilter.ENDS_WITH,\n SimpleFilter.BLANK,\n SimpleFilter.NOT_BLANK,\n ];\n TextFilter.DEFAULT_FORMATTER = function (from) { return from; };\n TextFilter.DEFAULT_LOWERCASE_FORMATTER = function (from) { return from == null ? null : from.toString().toLowerCase(); };\n TextFilter.DEFAULT_MATCHER = function (_a) {\n var filterOption = _a.filterOption, value = _a.value, filterText = _a.filterText;\n if (filterText == null) {\n return false;\n }\n switch (filterOption) {\n case TextFilter.CONTAINS:\n return value.indexOf(filterText) >= 0;\n case TextFilter.NOT_CONTAINS:\n return value.indexOf(filterText) < 0;\n case TextFilter.EQUALS:\n return value === filterText;\n case TextFilter.NOT_EQUAL:\n return value != filterText;\n case TextFilter.STARTS_WITH:\n return value.indexOf(filterText) === 0;\n case TextFilter.ENDS_WITH:\n var index = value.lastIndexOf(filterText);\n return index >= 0 && index === (value.length - filterText.length);\n default:\n return false;\n }\n };\n return TextFilter;\n}(SimpleFilter));\n\nvar __extends$2E = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FloatingFilterTextInputService = /** @class */ (function (_super) {\n __extends$2E(FloatingFilterTextInputService, _super);\n function FloatingFilterTextInputService(params) {\n var _this = _super.call(this) || this;\n _this.params = params;\n _this.valueChangedListener = function () { };\n return _this;\n }\n FloatingFilterTextInputService.prototype.setupGui = function (parentElement) {\n var _this = this;\n var _a;\n this.eFloatingFilterTextInput = this.createManagedBean(new AgInputTextField((_a = this.params) === null || _a === void 0 ? void 0 : _a.config));\n var eInput = this.eFloatingFilterTextInput.getGui();\n parentElement.appendChild(eInput);\n this.addManagedListener(eInput, 'input', function (e) { return _this.valueChangedListener(e); });\n this.addManagedListener(eInput, 'keydown', function (e) { return _this.valueChangedListener(e); });\n };\n FloatingFilterTextInputService.prototype.setEditable = function (editable) {\n this.eFloatingFilterTextInput.setDisabled(!editable);\n };\n FloatingFilterTextInputService.prototype.setAutoComplete = function (autoComplete) {\n this.eFloatingFilterTextInput.setAutoComplete(autoComplete);\n };\n FloatingFilterTextInputService.prototype.getValue = function () {\n return this.eFloatingFilterTextInput.getValue();\n };\n FloatingFilterTextInputService.prototype.setValue = function (value, silent) {\n this.eFloatingFilterTextInput.setValue(value, silent);\n };\n FloatingFilterTextInputService.prototype.setValueChangedListener = function (listener) {\n this.valueChangedListener = listener;\n };\n FloatingFilterTextInputService.prototype.setParams = function (params) {\n this.setAriaLabel(params.ariaLabel);\n if (params.autoComplete !== undefined) {\n this.setAutoComplete(params.autoComplete);\n }\n };\n FloatingFilterTextInputService.prototype.setAriaLabel = function (ariaLabel) {\n this.eFloatingFilterTextInput.setInputAriaLabel(ariaLabel);\n };\n return FloatingFilterTextInputService;\n}(BeanStub));\nvar TextInputFloatingFilter = /** @class */ (function (_super) {\n __extends$2E(TextInputFloatingFilter, _super);\n function TextInputFloatingFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TextInputFloatingFilter.prototype.postConstruct = function () {\n this.setTemplate(/* html */ \"\\n
\\n \");\n };\n TextInputFloatingFilter.prototype.getDefaultDebounceMs = function () {\n return 500;\n };\n TextInputFloatingFilter.prototype.onParentModelChanged = function (model, event) {\n if (this.isEventFromFloatingFilter(event) || this.isEventFromDataChange(event)) {\n // if the floating filter triggered the change, it is already in sync.\n // Data changes also do not affect provided text floating filters\n return;\n }\n this.setLastTypeFromModel(model);\n this.setEditable(this.canWeEditAfterModelFromParentFilter(model));\n this.floatingFilterInputService.setValue(this.getFilterModelFormatter().getModelAsString(model));\n };\n TextInputFloatingFilter.prototype.init = function (params) {\n this.setupFloatingFilterInputService(params);\n _super.prototype.init.call(this, params);\n this.setTextInputParams(params);\n };\n TextInputFloatingFilter.prototype.setupFloatingFilterInputService = function (params) {\n this.floatingFilterInputService = this.createFloatingFilterInputService(params);\n this.floatingFilterInputService.setupGui(this.eFloatingFilterInputContainer);\n };\n TextInputFloatingFilter.prototype.setTextInputParams = function (params) {\n var _a;\n this.params = params;\n var autoComplete = (_a = params.browserAutoComplete) !== null && _a !== void 0 ? _a : false;\n this.floatingFilterInputService.setParams({\n ariaLabel: this.getAriaLabel(params),\n autoComplete: autoComplete,\n });\n this.applyActive = ProvidedFilter.isUseApplyButton(this.params.filterParams);\n if (!this.isReadOnly()) {\n var debounceMs = ProvidedFilter.getDebounceMs(this.params.filterParams, this.getDefaultDebounceMs());\n var toDebounce = debounce(this.syncUpWithParentFilter.bind(this), debounceMs);\n this.floatingFilterInputService.setValueChangedListener(toDebounce);\n }\n };\n TextInputFloatingFilter.prototype.onParamsUpdated = function (params) {\n _super.prototype.onParamsUpdated.call(this, params);\n this.setTextInputParams(params);\n };\n TextInputFloatingFilter.prototype.recreateFloatingFilterInputService = function (params) {\n var value = this.floatingFilterInputService.getValue();\n clearElement(this.eFloatingFilterInputContainer);\n this.destroyBean(this.floatingFilterInputService);\n this.setupFloatingFilterInputService(params);\n this.floatingFilterInputService.setValue(value, true);\n };\n TextInputFloatingFilter.prototype.getAriaLabel = function (params) {\n var displayName = this.columnModel.getDisplayNameForColumn(params.column, 'header', true);\n var translate = this.localeService.getLocaleTextFunc();\n return displayName + \" \" + translate('ariaFilterInput', 'Filter Input');\n };\n TextInputFloatingFilter.prototype.syncUpWithParentFilter = function (e) {\n var _this = this;\n var isEnterKey = e.key === KeyCode.ENTER;\n if (this.applyActive && !isEnterKey) {\n return;\n }\n var value = this.floatingFilterInputService.getValue();\n if (this.params.filterParams.trimInput) {\n value = TextFilter.trimInput(value);\n this.floatingFilterInputService.setValue(value, true); // ensure visible value is trimmed\n }\n this.params.parentFilterInstance(function (filterInstance) {\n if (filterInstance) {\n // NumberFilter is typed as number, but actually receives string values\n filterInstance.onFloatingFilterChanged(_this.getLastType() || null, value || null);\n }\n });\n };\n TextInputFloatingFilter.prototype.setEditable = function (editable) {\n this.floatingFilterInputService.setEditable(editable);\n };\n __decorate$2k([\n Autowired('columnModel')\n ], TextInputFloatingFilter.prototype, \"columnModel\", void 0);\n __decorate$2k([\n RefSelector('eFloatingFilterInputContainer')\n ], TextInputFloatingFilter.prototype, \"eFloatingFilterInputContainer\", void 0);\n __decorate$2k([\n PostConstruct\n ], TextInputFloatingFilter.prototype, \"postConstruct\", null);\n return TextInputFloatingFilter;\n}(SimpleFloatingFilter));\n\nvar __extends$2D = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar FloatingFilterNumberInputService = /** @class */ (function (_super) {\n __extends$2D(FloatingFilterNumberInputService, _super);\n function FloatingFilterNumberInputService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.valueChangedListener = function () { };\n _this.numberInputActive = true;\n return _this;\n }\n FloatingFilterNumberInputService.prototype.setupGui = function (parentElement) {\n var _this = this;\n this.eFloatingFilterNumberInput = this.createManagedBean(new AgInputNumberField());\n this.eFloatingFilterTextInput = this.createManagedBean(new AgInputTextField());\n this.eFloatingFilterTextInput.setDisabled(true);\n var eNumberInput = this.eFloatingFilterNumberInput.getGui();\n var eTextInput = this.eFloatingFilterTextInput.getGui();\n parentElement.appendChild(eNumberInput);\n parentElement.appendChild(eTextInput);\n this.setupListeners(eNumberInput, function (e) { return _this.valueChangedListener(e); });\n this.setupListeners(eTextInput, function (e) { return _this.valueChangedListener(e); });\n };\n FloatingFilterNumberInputService.prototype.setEditable = function (editable) {\n this.numberInputActive = editable;\n this.eFloatingFilterNumberInput.setDisplayed(this.numberInputActive);\n this.eFloatingFilterTextInput.setDisplayed(!this.numberInputActive);\n };\n FloatingFilterNumberInputService.prototype.setAutoComplete = function (autoComplete) {\n this.eFloatingFilterNumberInput.setAutoComplete(autoComplete);\n this.eFloatingFilterTextInput.setAutoComplete(autoComplete);\n };\n FloatingFilterNumberInputService.prototype.getValue = function () {\n return this.getActiveInputElement().getValue();\n };\n FloatingFilterNumberInputService.prototype.setValue = function (value, silent) {\n this.getActiveInputElement().setValue(value, silent);\n };\n FloatingFilterNumberInputService.prototype.getActiveInputElement = function () {\n return this.numberInputActive ? this.eFloatingFilterNumberInput : this.eFloatingFilterTextInput;\n };\n FloatingFilterNumberInputService.prototype.setValueChangedListener = function (listener) {\n this.valueChangedListener = listener;\n };\n FloatingFilterNumberInputService.prototype.setupListeners = function (element, listener) {\n this.addManagedListener(element, 'input', listener);\n this.addManagedListener(element, 'keydown', listener);\n };\n FloatingFilterNumberInputService.prototype.setParams = function (params) {\n this.setAriaLabel(params.ariaLabel);\n if (params.autoComplete !== undefined) {\n this.setAutoComplete(params.autoComplete);\n }\n };\n FloatingFilterNumberInputService.prototype.setAriaLabel = function (ariaLabel) {\n this.eFloatingFilterNumberInput.setInputAriaLabel(ariaLabel);\n this.eFloatingFilterTextInput.setInputAriaLabel(ariaLabel);\n };\n return FloatingFilterNumberInputService;\n}(BeanStub));\nvar NumberFloatingFilter = /** @class */ (function (_super) {\n __extends$2D(NumberFloatingFilter, _super);\n function NumberFloatingFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n NumberFloatingFilter.prototype.init = function (params) {\n var _a;\n _super.prototype.init.call(this, params);\n this.filterModelFormatter = new NumberFilterModelFormatter(this.localeService, this.optionsFactory, (_a = params.filterParams) === null || _a === void 0 ? void 0 : _a.numberFormatter);\n };\n NumberFloatingFilter.prototype.onParamsUpdated = function (params) {\n var allowedCharPattern = getAllowedCharPattern(params.filterParams);\n if (allowedCharPattern !== this.allowedCharPattern) {\n this.recreateFloatingFilterInputService(params);\n }\n _super.prototype.onParamsUpdated.call(this, params);\n this.filterModelFormatter.updateParams({ optionsFactory: this.optionsFactory });\n };\n NumberFloatingFilter.prototype.getDefaultFilterOptions = function () {\n return NumberFilter.DEFAULT_FILTER_OPTIONS;\n };\n NumberFloatingFilter.prototype.getFilterModelFormatter = function () {\n return this.filterModelFormatter;\n };\n NumberFloatingFilter.prototype.createFloatingFilterInputService = function (params) {\n this.allowedCharPattern = getAllowedCharPattern(params.filterParams);\n if (this.allowedCharPattern) {\n // need to use text input\n return this.createManagedBean(new FloatingFilterTextInputService({\n config: { allowedCharPattern: this.allowedCharPattern },\n }));\n }\n return this.createManagedBean(new FloatingFilterNumberInputService());\n };\n return NumberFloatingFilter;\n}(TextInputFloatingFilter));\n\nvar __extends$2C = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar TextFloatingFilter = /** @class */ (function (_super) {\n __extends$2C(TextFloatingFilter, _super);\n function TextFloatingFilter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TextFloatingFilter.prototype.init = function (params) {\n _super.prototype.init.call(this, params);\n this.filterModelFormatter = new TextFilterModelFormatter(this.localeService, this.optionsFactory);\n };\n TextFloatingFilter.prototype.onParamsUpdated = function (params) {\n _super.prototype.onParamsUpdated.call(this, params);\n this.filterModelFormatter.updateParams({ optionsFactory: this.optionsFactory });\n };\n TextFloatingFilter.prototype.getDefaultFilterOptions = function () {\n return TextFilter.DEFAULT_FILTER_OPTIONS;\n };\n TextFloatingFilter.prototype.getFilterModelFormatter = function () {\n return this.filterModelFormatter;\n };\n TextFloatingFilter.prototype.createFloatingFilterInputService = function () {\n return this.createManagedBean(new FloatingFilterTextInputService());\n };\n return TextFloatingFilter;\n}(TextInputFloatingFilter));\n\nvar TouchListener = /** @class */ (function () {\n function TouchListener(eElement, preventMouseClick) {\n var _this = this;\n if (preventMouseClick === void 0) { preventMouseClick = false; }\n this.destroyFuncs = [];\n this.touching = false;\n this.eventService = new EventService();\n this.eElement = eElement;\n this.preventMouseClick = preventMouseClick;\n var startListener = this.onTouchStart.bind(this);\n var moveListener = this.onTouchMove.bind(this);\n var endListener = this.onTouchEnd.bind(this);\n this.eElement.addEventListener(\"touchstart\", startListener, { passive: true });\n this.eElement.addEventListener(\"touchmove\", moveListener, { passive: true });\n // we set passive=false, as we want to prevent default on this event\n this.eElement.addEventListener(\"touchend\", endListener, { passive: false });\n this.destroyFuncs.push(function () {\n _this.eElement.removeEventListener(\"touchstart\", startListener, { passive: true });\n _this.eElement.removeEventListener(\"touchmove\", moveListener, { passive: true });\n _this.eElement.removeEventListener(\"touchend\", endListener, { passive: false });\n });\n }\n TouchListener.prototype.getActiveTouch = function (touchList) {\n for (var i = 0; i < touchList.length; i++) {\n var matches = touchList[i].identifier === this.touchStart.identifier;\n if (matches) {\n return touchList[i];\n }\n }\n return null;\n };\n TouchListener.prototype.addEventListener = function (eventType, listener) {\n this.eventService.addEventListener(eventType, listener);\n };\n TouchListener.prototype.removeEventListener = function (eventType, listener) {\n this.eventService.removeEventListener(eventType, listener);\n };\n TouchListener.prototype.onTouchStart = function (touchEvent) {\n var _this = this;\n // only looking at one touch point at any time\n if (this.touching) {\n return;\n }\n this.touchStart = touchEvent.touches[0];\n this.touching = true;\n this.moved = false;\n var touchStartCopy = this.touchStart;\n window.setTimeout(function () {\n var touchesMatch = _this.touchStart === touchStartCopy;\n if (_this.touching && touchesMatch && !_this.moved) {\n _this.moved = true;\n var event_1 = {\n type: TouchListener.EVENT_LONG_TAP,\n touchStart: _this.touchStart,\n touchEvent: touchEvent\n };\n _this.eventService.dispatchEvent(event_1);\n }\n }, 500);\n };\n TouchListener.prototype.onTouchMove = function (touchEvent) {\n if (!this.touching) {\n return;\n }\n var touch = this.getActiveTouch(touchEvent.touches);\n if (!touch) {\n return;\n }\n var eventIsFarAway = !areEventsNear(touch, this.touchStart, 4);\n if (eventIsFarAway) {\n this.moved = true;\n }\n };\n TouchListener.prototype.onTouchEnd = function (touchEvent) {\n if (!this.touching) {\n return;\n }\n if (!this.moved) {\n var event_2 = {\n type: TouchListener.EVENT_TAP,\n touchStart: this.touchStart\n };\n this.eventService.dispatchEvent(event_2);\n this.checkForDoubleTap();\n }\n // stops the tap from also been processed as a mouse click\n if (this.preventMouseClick && touchEvent.cancelable) {\n touchEvent.preventDefault();\n }\n this.touching = false;\n };\n TouchListener.prototype.checkForDoubleTap = function () {\n var now = new Date().getTime();\n if (this.lastTapTime && this.lastTapTime > 0) {\n // if previous tap, see if duration is short enough to be considered double tap\n var interval = now - this.lastTapTime;\n if (interval > TouchListener.DOUBLE_TAP_MILLIS) {\n // dispatch double tap event\n var event_3 = {\n type: TouchListener.EVENT_DOUBLE_TAP,\n touchStart: this.touchStart\n };\n this.eventService.dispatchEvent(event_3);\n // this stops a tripple tap ending up as two double taps\n this.lastTapTime = null;\n }\n else {\n this.lastTapTime = now;\n }\n }\n else {\n this.lastTapTime = now;\n }\n };\n TouchListener.prototype.destroy = function () {\n this.destroyFuncs.forEach(function (func) { return func(); });\n };\n TouchListener.EVENT_TAP = \"tap\";\n TouchListener.EVENT_DOUBLE_TAP = \"doubleTap\";\n TouchListener.EVENT_LONG_TAP = \"longTap\";\n TouchListener.DOUBLE_TAP_MILLIS = 500;\n return TouchListener;\n}());\n\nvar __extends$2B = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SortIndicatorComp = /** @class */ (function (_super) {\n __extends$2B(SortIndicatorComp, _super);\n function SortIndicatorComp(skipTemplate) {\n var _this = _super.call(this) || this;\n if (!skipTemplate) {\n _this.setTemplate(SortIndicatorComp.TEMPLATE);\n }\n return _this;\n }\n SortIndicatorComp.prototype.attachCustomElements = function (eSortOrder, eSortAsc, eSortDesc, eSortMixed, eSortNone) {\n this.eSortOrder = eSortOrder;\n this.eSortAsc = eSortAsc;\n this.eSortDesc = eSortDesc;\n this.eSortMixed = eSortMixed;\n this.eSortNone = eSortNone;\n };\n SortIndicatorComp.prototype.setupSort = function (column, suppressOrder) {\n var _this = this;\n if (suppressOrder === void 0) { suppressOrder = false; }\n this.column = column;\n this.suppressOrder = suppressOrder;\n this.setupMultiSortIndicator();\n var canSort = !!this.column.getColDef().sortable;\n if (!canSort) {\n return;\n }\n this.addInIcon('sortAscending', this.eSortAsc, column);\n this.addInIcon('sortDescending', this.eSortDesc, column);\n this.addInIcon('sortUnSort', this.eSortNone, column);\n // Watch global events, as row group columns can effect their display column.\n this.addManagedListener(this.eventService, Events.EVENT_SORT_CHANGED, function () { return _this.onSortChanged(); });\n // when grouping changes so can sort indexes and icons\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, function () { return _this.onSortChanged(); });\n this.onSortChanged();\n };\n SortIndicatorComp.prototype.addInIcon = function (iconName, eParent, column) {\n if (eParent == null) {\n return;\n }\n var eIcon = createIconNoSpan(iconName, this.gridOptionsService, column);\n if (eIcon) {\n eParent.appendChild(eIcon);\n }\n };\n SortIndicatorComp.prototype.onSortChanged = function () {\n this.updateIcons();\n if (!this.suppressOrder) {\n this.updateSortOrder();\n }\n };\n SortIndicatorComp.prototype.updateIcons = function () {\n var sortDirection = this.sortController.getDisplaySortForColumn(this.column);\n if (this.eSortAsc) {\n var isAscending = sortDirection === 'asc';\n setDisplayed(this.eSortAsc, isAscending, { skipAriaHidden: true });\n }\n if (this.eSortDesc) {\n var isDescending = sortDirection === 'desc';\n setDisplayed(this.eSortDesc, isDescending, { skipAriaHidden: true });\n }\n if (this.eSortNone) {\n var alwaysHideNoSort = !this.column.getColDef().unSortIcon && !this.gridOptionsService.is('unSortIcon');\n var isNone = sortDirection === null || sortDirection === undefined;\n setDisplayed(this.eSortNone, !alwaysHideNoSort && isNone, { skipAriaHidden: true });\n }\n };\n SortIndicatorComp.prototype.setupMultiSortIndicator = function () {\n var _this = this;\n this.addInIcon('sortUnSort', this.eSortMixed, this.column);\n var isColumnShowingRowGroup = this.column.getColDef().showRowGroup;\n var areGroupsCoupled = this.gridOptionsService.isColumnsSortingCoupledToGroup();\n if (areGroupsCoupled && isColumnShowingRowGroup) {\n // Watch global events, as row group columns can effect their display column.\n this.addManagedListener(this.eventService, Events.EVENT_SORT_CHANGED, function () { return _this.updateMultiSortIndicator(); });\n // when grouping changes so can sort indexes and icons\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, function () { return _this.updateMultiSortIndicator(); });\n this.updateMultiSortIndicator();\n }\n };\n SortIndicatorComp.prototype.updateMultiSortIndicator = function () {\n if (this.eSortMixed) {\n var isMixedSort = this.sortController.getDisplaySortForColumn(this.column) === 'mixed';\n setDisplayed(this.eSortMixed, isMixedSort, { skipAriaHidden: true });\n }\n };\n // we listen here for global sort events, NOT column sort events, as we want to do this\n // when sorting has been set on all column (if we listened just for our col (where we\n // set the asc / desc icons) then it's possible other cols are yet to get their sorting state.\n SortIndicatorComp.prototype.updateSortOrder = function () {\n var _this = this;\n var _a;\n if (!this.eSortOrder) {\n return;\n }\n var allColumnsWithSorting = this.sortController.getColumnsWithSortingOrdered();\n var indexThisCol = (_a = this.sortController.getDisplaySortIndexForColumn(this.column)) !== null && _a !== void 0 ? _a : -1;\n var moreThanOneColSorting = allColumnsWithSorting.some(function (col) { var _a; return (_a = _this.sortController.getDisplaySortIndexForColumn(col)) !== null && _a !== void 0 ? _a : -1 >= 1; });\n var showIndex = indexThisCol >= 0 && moreThanOneColSorting;\n setDisplayed(this.eSortOrder, showIndex, { skipAriaHidden: true });\n if (indexThisCol >= 0) {\n this.eSortOrder.innerHTML = (indexThisCol + 1).toString();\n }\n else {\n clearElement(this.eSortOrder);\n }\n };\n SortIndicatorComp.TEMPLATE = \"\\n \\n \\n \\n \\n \\n \";\n __decorate$2j([\n RefSelector('eSortOrder')\n ], SortIndicatorComp.prototype, \"eSortOrder\", void 0);\n __decorate$2j([\n RefSelector('eSortAsc')\n ], SortIndicatorComp.prototype, \"eSortAsc\", void 0);\n __decorate$2j([\n RefSelector('eSortDesc')\n ], SortIndicatorComp.prototype, \"eSortDesc\", void 0);\n __decorate$2j([\n RefSelector('eSortMixed')\n ], SortIndicatorComp.prototype, \"eSortMixed\", void 0);\n __decorate$2j([\n RefSelector('eSortNone')\n ], SortIndicatorComp.prototype, \"eSortNone\", void 0);\n __decorate$2j([\n Autowired('columnModel')\n ], SortIndicatorComp.prototype, \"columnModel\", void 0);\n __decorate$2j([\n Autowired('sortController')\n ], SortIndicatorComp.prototype, \"sortController\", void 0);\n return SortIndicatorComp;\n}(Component));\n\nvar __extends$2A = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderComp = /** @class */ (function (_super) {\n __extends$2A(HeaderComp, _super);\n function HeaderComp() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.lastMovingChanged = 0;\n return _this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n HeaderComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n HeaderComp.prototype.refresh = function (params) {\n this.params = params;\n // if template changed, then recreate the whole comp, the code required to manage\n // a changing template is to difficult for what it's worth.\n if (this.workOutTemplate() != this.currentTemplate) {\n return false;\n }\n if (this.workOutShowMenu() != this.currentShowMenu) {\n return false;\n }\n if (this.workOutSort() != this.currentSort) {\n return false;\n }\n this.setDisplayName(params);\n return true;\n };\n HeaderComp.prototype.workOutTemplate = function () {\n var template = firstExistingValue(this.params.template, HeaderComp.TEMPLATE);\n // take account of any newlines & whitespace before/after the actual template\n template = template && template.trim ? template.trim() : template;\n return template;\n };\n HeaderComp.prototype.init = function (params) {\n this.params = params;\n this.currentTemplate = this.workOutTemplate();\n this.setTemplate(this.currentTemplate);\n this.setupTap();\n this.setupIcons(params.column);\n this.setMenu();\n this.setupSort();\n this.setupFilterIcon();\n this.setDisplayName(params);\n };\n HeaderComp.prototype.setDisplayName = function (params) {\n if (this.currentDisplayName != params.displayName) {\n this.currentDisplayName = params.displayName;\n var displayNameSanitised = escapeString(this.currentDisplayName);\n if (this.eText) {\n this.eText.innerHTML = displayNameSanitised;\n }\n }\n };\n HeaderComp.prototype.setupIcons = function (column) {\n this.addInIcon('menu', this.eMenu, column);\n this.addInIcon('filter', this.eFilter, column);\n };\n HeaderComp.prototype.addInIcon = function (iconName, eParent, column) {\n if (eParent == null) {\n return;\n }\n var eIcon = createIconNoSpan(iconName, this.gridOptionsService, column);\n if (eIcon) {\n eParent.appendChild(eIcon);\n }\n };\n HeaderComp.prototype.setupTap = function () {\n var _this = this;\n var gridOptionsService = this.gridOptionsService;\n if (gridOptionsService.is('suppressTouch')) {\n return;\n }\n var touchListener = new TouchListener(this.getGui(), true);\n var suppressMenuHide = gridOptionsService.is('suppressMenuHide');\n var tapMenuButton = suppressMenuHide && exists(this.eMenu);\n var menuTouchListener = tapMenuButton ? new TouchListener(this.eMenu, true) : touchListener;\n if (this.params.enableMenu) {\n var eventType = tapMenuButton ? 'EVENT_TAP' : 'EVENT_LONG_TAP';\n var showMenuFn = function (event) {\n gridOptionsService.api.showColumnMenuAfterMouseClick(_this.params.column, event.touchStart);\n };\n this.addManagedListener(menuTouchListener, TouchListener[eventType], showMenuFn);\n }\n if (this.params.enableSorting) {\n var tapListener = function (event) {\n var target = event.touchStart.target;\n // When suppressMenuHide is true, a tap on the menu icon will bubble up\n // to the header container, in that case we should not sort\n if (suppressMenuHide && _this.eMenu.contains(target)) {\n return;\n }\n _this.sortController.progressSort(_this.params.column, false, \"uiColumnSorted\");\n };\n this.addManagedListener(touchListener, TouchListener.EVENT_TAP, tapListener);\n }\n // if tapMenuButton is true `touchListener` and `menuTouchListener` are different\n // so we need to make sure to destroy both listeners here\n this.addDestroyFunc(function () { return touchListener.destroy(); });\n if (tapMenuButton) {\n this.addDestroyFunc(function () { return menuTouchListener.destroy(); });\n }\n };\n HeaderComp.prototype.workOutShowMenu = function () {\n // we don't show the menu if on an iPad/iPhone, as the user cannot have a pointer device/\n // However if suppressMenuHide is set to true the menu will be displayed alwasys, so it's ok\n // to show it on iPad in this case (as hover isn't needed). If suppressMenuHide\n // is false (default) user will need to use longpress to display the menu.\n var menuHides = !this.gridOptionsService.is('suppressMenuHide');\n var onIpadAndMenuHides = isIOSUserAgent() && menuHides;\n var showMenu = this.params.enableMenu && !onIpadAndMenuHides;\n return showMenu;\n };\n HeaderComp.prototype.setMenu = function () {\n var _this = this;\n // if no menu provided in template, do nothing\n if (!this.eMenu) {\n return;\n }\n this.currentShowMenu = this.workOutShowMenu();\n if (!this.currentShowMenu) {\n removeFromParent(this.eMenu);\n return;\n }\n var suppressMenuHide = this.gridOptionsService.is('suppressMenuHide');\n this.addManagedListener(this.eMenu, 'click', function () { return _this.showMenu(_this.eMenu); });\n this.eMenu.classList.toggle('ag-header-menu-always-show', suppressMenuHide);\n };\n HeaderComp.prototype.showMenu = function (eventSource) {\n if (!eventSource) {\n eventSource = this.eMenu;\n }\n this.menuFactory.showMenuAfterButtonClick(this.params.column, eventSource, 'columnMenu');\n };\n HeaderComp.prototype.workOutSort = function () {\n return this.params.enableSorting;\n };\n HeaderComp.prototype.setupSort = function () {\n var _this = this;\n this.currentSort = this.params.enableSorting;\n // eSortIndicator will not be present when customers provided custom header\n // templates, in that case, we need to look for provided sort elements and\n // manually create eSortIndicator.\n if (!this.eSortIndicator) {\n this.eSortIndicator = this.context.createBean(new SortIndicatorComp(true));\n this.eSortIndicator.attachCustomElements(this.eSortOrder, this.eSortAsc, this.eSortDesc, this.eSortMixed, this.eSortNone);\n }\n this.eSortIndicator.setupSort(this.params.column);\n // we set up the indicator prior to the check for whether this column is sortable, as it allows the indicator to\n // set up the multi sort indicator which can appear irrelevant of whether this column can itself be sorted.\n // this can occur in the case of a non-sortable group display column.\n if (!this.currentSort) {\n return;\n }\n var sortUsingCtrl = this.gridOptionsService.get('multiSortKey') === 'ctrl';\n // keep track of last time the moving changed flag was set\n this.addManagedListener(this.params.column, Column.EVENT_MOVING_CHANGED, function () {\n _this.lastMovingChanged = new Date().getTime();\n });\n // add the event on the header, so when clicked, we do sorting\n if (this.eLabel) {\n this.addManagedListener(this.eLabel, 'click', function (event) {\n // sometimes when moving a column via dragging, this was also firing a clicked event.\n // here is issue raised by user: https://ag-grid.zendesk.com/agent/tickets/1076\n // this check stops sort if a) column is moving or b) column moved less than 200ms ago (so caters for race condition)\n var moving = _this.params.column.isMoving();\n var nowTime = new Date().getTime();\n // typically there is <2ms if moving flag was set recently, as it would be done in same VM turn\n var movedRecently = (nowTime - _this.lastMovingChanged) < 50;\n var columnMoving = moving || movedRecently;\n if (!columnMoving) {\n var multiSort = sortUsingCtrl ? (event.ctrlKey || event.metaKey) : event.shiftKey;\n _this.params.progressSort(multiSort);\n }\n });\n }\n var onSortingChanged = function () {\n _this.addOrRemoveCssClass('ag-header-cell-sorted-asc', _this.params.column.isSortAscending());\n _this.addOrRemoveCssClass('ag-header-cell-sorted-desc', _this.params.column.isSortDescending());\n _this.addOrRemoveCssClass('ag-header-cell-sorted-none', _this.params.column.isSortNone());\n if (_this.params.column.getColDef().showRowGroup) {\n var sourceColumns = _this.columnModel.getSourceColumnsForGroupColumn(_this.params.column);\n // this == is intentional, as it allows null and undefined to match, which are both unsorted states\n var sortDirectionsMatch = sourceColumns === null || sourceColumns === void 0 ? void 0 : sourceColumns.every(function (sourceCol) { return _this.params.column.getSort() == sourceCol.getSort(); });\n var isMultiSorting = !sortDirectionsMatch;\n _this.addOrRemoveCssClass('ag-header-cell-sorted-mixed', isMultiSorting);\n }\n };\n this.addManagedListener(this.eventService, Events.EVENT_SORT_CHANGED, onSortingChanged);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, onSortingChanged);\n };\n HeaderComp.prototype.setupFilterIcon = function () {\n if (!this.eFilter) {\n return;\n }\n this.addManagedListener(this.params.column, Column.EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));\n this.onFilterChanged();\n };\n HeaderComp.prototype.onFilterChanged = function () {\n var filterPresent = this.params.column.isFilterActive();\n setDisplayed(this.eFilter, filterPresent, { skipAriaHidden: true });\n };\n HeaderComp.TEMPLATE = \"
\\n \\n
\\n \\n \\n \\n
\\n
\";\n __decorate$2i([\n Autowired('sortController')\n ], HeaderComp.prototype, \"sortController\", void 0);\n __decorate$2i([\n Autowired('menuFactory')\n ], HeaderComp.prototype, \"menuFactory\", void 0);\n __decorate$2i([\n Autowired('columnModel')\n ], HeaderComp.prototype, \"columnModel\", void 0);\n __decorate$2i([\n RefSelector('eFilter')\n ], HeaderComp.prototype, \"eFilter\", void 0);\n __decorate$2i([\n RefSelector('eSortIndicator')\n ], HeaderComp.prototype, \"eSortIndicator\", void 0);\n __decorate$2i([\n RefSelector('eMenu')\n ], HeaderComp.prototype, \"eMenu\", void 0);\n __decorate$2i([\n RefSelector('eLabel')\n ], HeaderComp.prototype, \"eLabel\", void 0);\n __decorate$2i([\n RefSelector('eText')\n ], HeaderComp.prototype, \"eText\", void 0);\n __decorate$2i([\n RefSelector('eSortOrder')\n ], HeaderComp.prototype, \"eSortOrder\", void 0);\n __decorate$2i([\n RefSelector('eSortAsc')\n ], HeaderComp.prototype, \"eSortAsc\", void 0);\n __decorate$2i([\n RefSelector('eSortDesc')\n ], HeaderComp.prototype, \"eSortDesc\", void 0);\n __decorate$2i([\n RefSelector('eSortMixed')\n ], HeaderComp.prototype, \"eSortMixed\", void 0);\n __decorate$2i([\n RefSelector('eSortNone')\n ], HeaderComp.prototype, \"eSortNone\", void 0);\n return HeaderComp;\n}(Component));\n\nvar __extends$2z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderGroupComp = /** @class */ (function (_super) {\n __extends$2z(HeaderGroupComp, _super);\n function HeaderGroupComp() {\n return _super.call(this, HeaderGroupComp.TEMPLATE) || this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n HeaderGroupComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n HeaderGroupComp.prototype.init = function (params) {\n this.params = params;\n this.checkWarnings();\n this.setupLabel();\n this.addGroupExpandIcon();\n this.setupExpandIcons();\n };\n HeaderGroupComp.prototype.checkWarnings = function () {\n var paramsAny = this.params;\n if (paramsAny.template) {\n var message_1 = \"AG Grid: A template was provided for Header Group Comp - templates are only supported for Header Comps (not groups)\";\n doOnce(function () { return console.warn(message_1); }, 'HeaderGroupComp.templateNotSupported');\n }\n };\n HeaderGroupComp.prototype.setupExpandIcons = function () {\n var _this = this;\n this.addInIcon(\"columnGroupOpened\", \"agOpened\");\n this.addInIcon(\"columnGroupClosed\", \"agClosed\");\n var expandAction = function (event) {\n if (isStopPropagationForAgGrid(event)) {\n return;\n }\n var newExpandedValue = !_this.params.columnGroup.isExpanded();\n _this.columnModel.setColumnGroupOpened(_this.params.columnGroup.getProvidedColumnGroup(), newExpandedValue, \"uiColumnExpanded\");\n };\n this.addTouchAndClickListeners(this.eCloseIcon, expandAction);\n this.addTouchAndClickListeners(this.eOpenIcon, expandAction);\n var stopPropagationAction = function (event) {\n stopPropagationForAgGrid(event);\n };\n // adding stopPropagation to the double click for the icons prevents double click action happening\n // when the icons are clicked. if the icons are double clicked, then the groups should open and\n // then close again straight away. if we also listened to double click, then the group would open,\n // close, then open, which is not what we want. double click should only action if the user double\n // clicks outside of the icons.\n this.addManagedListener(this.eCloseIcon, \"dblclick\", stopPropagationAction);\n this.addManagedListener(this.eOpenIcon, \"dblclick\", stopPropagationAction);\n this.addManagedListener(this.getGui(), \"dblclick\", expandAction);\n this.updateIconVisibility();\n var providedColumnGroup = this.params.columnGroup.getProvidedColumnGroup();\n this.addManagedListener(providedColumnGroup, ProvidedColumnGroup.EVENT_EXPANDED_CHANGED, this.updateIconVisibility.bind(this));\n this.addManagedListener(providedColumnGroup, ProvidedColumnGroup.EVENT_EXPANDABLE_CHANGED, this.updateIconVisibility.bind(this));\n };\n HeaderGroupComp.prototype.addTouchAndClickListeners = function (eElement, action) {\n var touchListener = new TouchListener(eElement, true);\n this.addManagedListener(touchListener, TouchListener.EVENT_TAP, action);\n this.addDestroyFunc(function () { return touchListener.destroy(); });\n this.addManagedListener(eElement, \"click\", action);\n };\n HeaderGroupComp.prototype.updateIconVisibility = function () {\n var columnGroup = this.params.columnGroup;\n if (columnGroup.isExpandable()) {\n var expanded = this.params.columnGroup.isExpanded();\n setDisplayed(this.eOpenIcon, expanded);\n setDisplayed(this.eCloseIcon, !expanded);\n }\n else {\n setDisplayed(this.eOpenIcon, false);\n setDisplayed(this.eCloseIcon, false);\n }\n };\n HeaderGroupComp.prototype.addInIcon = function (iconName, refName) {\n var eIcon = createIconNoSpan(iconName, this.gridOptionsService, null);\n if (eIcon) {\n this.getRefElement(refName).appendChild(eIcon);\n }\n };\n HeaderGroupComp.prototype.addGroupExpandIcon = function () {\n if (!this.params.columnGroup.isExpandable()) {\n setDisplayed(this.eOpenIcon, false);\n setDisplayed(this.eCloseIcon, false);\n return;\n }\n };\n HeaderGroupComp.prototype.setupLabel = function () {\n var _a;\n // no renderer, default text render\n var _b = this.params, displayName = _b.displayName, columnGroup = _b.columnGroup;\n if (exists(displayName)) {\n var displayNameSanitised = escapeString(displayName);\n this.getRefElement('agLabel').innerHTML = displayNameSanitised;\n }\n this.addOrRemoveCssClass('ag-sticky-label', !((_a = columnGroup.getColGroupDef()) === null || _a === void 0 ? void 0 : _a.suppressStickyLabel));\n };\n HeaderGroupComp.TEMPLATE = \"
\\n \\n \\n \\n
\";\n __decorate$2h([\n Autowired(\"columnModel\")\n ], HeaderGroupComp.prototype, \"columnModel\", void 0);\n __decorate$2h([\n RefSelector(\"agOpened\")\n ], HeaderGroupComp.prototype, \"eOpenIcon\", void 0);\n __decorate$2h([\n RefSelector(\"agClosed\")\n ], HeaderGroupComp.prototype, \"eCloseIcon\", void 0);\n return HeaderGroupComp;\n}(Component));\n\nvar __extends$2y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar PopupComponent = /** @class */ (function (_super) {\n __extends$2y(PopupComponent, _super);\n function PopupComponent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PopupComponent.prototype.isPopup = function () {\n return true;\n };\n PopupComponent.prototype.setParentComponent = function (container) {\n container.addCssClass('ag-has-popup');\n _super.prototype.setParentComponent.call(this, container);\n };\n PopupComponent.prototype.destroy = function () {\n var parentComp = this.parentComponent;\n var hasParent = parentComp && parentComp.isAlive();\n if (hasParent) {\n parentComp.getGui().classList.remove('ag-has-popup');\n }\n _super.prototype.destroy.call(this);\n };\n return PopupComponent;\n}(Component));\n\nvar __extends$2x = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar LargeTextCellEditor = /** @class */ (function (_super) {\n __extends$2x(LargeTextCellEditor, _super);\n function LargeTextCellEditor() {\n return _super.call(this, LargeTextCellEditor.TEMPLATE) || this;\n }\n LargeTextCellEditor.prototype.init = function (params) {\n this.params = params;\n this.focusAfterAttached = params.cellStartedEdit;\n this.eTextArea\n .setMaxLength(params.maxLength || 200)\n .setCols(params.cols || 60)\n .setRows(params.rows || 10);\n if (exists(params.value, true)) {\n this.eTextArea.setValue(params.value.toString(), true);\n }\n this.addGuiEventListener('keydown', this.onKeyDown.bind(this));\n this.activateTabIndex();\n };\n LargeTextCellEditor.prototype.onKeyDown = function (event) {\n var key = event.key;\n if (key === KeyCode.LEFT ||\n key === KeyCode.UP ||\n key === KeyCode.RIGHT ||\n key === KeyCode.DOWN ||\n (event.shiftKey && key === KeyCode.ENTER)) { // shift+enter allows for newlines\n event.stopPropagation();\n }\n };\n LargeTextCellEditor.prototype.afterGuiAttached = function () {\n var translate = this.localeService.getLocaleTextFunc();\n this.eTextArea.setInputAriaLabel(translate('ariaInputEditor', 'Input Editor'));\n if (this.focusAfterAttached) {\n this.eTextArea.getFocusableElement().focus();\n }\n };\n LargeTextCellEditor.prototype.getValue = function () {\n var value = this.eTextArea.getValue();\n if (!exists(value) && !exists(this.params.value)) {\n return this.params.value;\n }\n return this.params.parseValue(value);\n };\n LargeTextCellEditor.TEMPLATE = \"
\\n \\n
\";\n __decorate$2g([\n RefSelector(\"eTextArea\")\n ], LargeTextCellEditor.prototype, \"eTextArea\", void 0);\n return LargeTextCellEditor;\n}(PopupComponent));\n\nvar __extends$2w = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SelectCellEditor = /** @class */ (function (_super) {\n __extends$2w(SelectCellEditor, _super);\n function SelectCellEditor() {\n var _this = _super.call(this, /* html */ \"
\\n \\n
\") || this;\n _this.startedByEnter = false;\n return _this;\n }\n SelectCellEditor.prototype.init = function (params) {\n this.focusAfterAttached = params.cellStartedEdit;\n var _a = this, eSelect = _a.eSelect, valueFormatterService = _a.valueFormatterService, gridOptionsService = _a.gridOptionsService;\n var values = params.values, value = params.value, eventKey = params.eventKey;\n if (missing(values)) {\n console.warn('AG Grid: no values found for select cellEditor');\n return;\n }\n this.startedByEnter = eventKey != null ? eventKey === KeyCode.ENTER : false;\n var hasValue = false;\n values.forEach(function (currentValue) {\n var option = { value: currentValue };\n var valueFormatted = valueFormatterService.formatValue(params.column, null, currentValue);\n var valueFormattedExits = valueFormatted !== null && valueFormatted !== undefined;\n option.text = valueFormattedExits ? valueFormatted : currentValue;\n eSelect.addOption(option);\n hasValue = hasValue || value === currentValue;\n });\n if (hasValue) {\n eSelect.setValue(params.value, true);\n }\n else if (params.values.length) {\n eSelect.setValue(params.values[0], true);\n }\n var valueListGap = params.valueListGap, valueListMaxWidth = params.valueListMaxWidth, valueListMaxHeight = params.valueListMaxHeight;\n if (valueListGap != null) {\n eSelect.setPickerGap(valueListGap);\n }\n if (valueListMaxHeight != null) {\n eSelect.setPickerMaxHeight(valueListMaxHeight);\n }\n if (valueListMaxWidth != null) {\n eSelect.setPickerMaxWidth(valueListMaxWidth);\n }\n // we don't want to add this if full row editing, otherwise selecting will stop the\n // full row editing.\n if (gridOptionsService.get('editType') !== 'fullRow') {\n this.addManagedListener(this.eSelect, AgSelect.EVENT_ITEM_SELECTED, function () { return params.stopEditing(); });\n }\n };\n SelectCellEditor.prototype.afterGuiAttached = function () {\n var _this = this;\n if (this.focusAfterAttached) {\n this.eSelect.getFocusableElement().focus();\n }\n if (this.startedByEnter) {\n setTimeout(function () {\n if (_this.isAlive()) {\n _this.eSelect.showPicker();\n }\n });\n }\n };\n SelectCellEditor.prototype.focusIn = function () {\n this.eSelect.getFocusableElement().focus();\n };\n SelectCellEditor.prototype.getValue = function () {\n return this.eSelect.getValue();\n };\n SelectCellEditor.prototype.isPopup = function () {\n return false;\n };\n __decorate$2f([\n Autowired('valueFormatterService')\n ], SelectCellEditor.prototype, \"valueFormatterService\", void 0);\n __decorate$2f([\n RefSelector('eSelect')\n ], SelectCellEditor.prototype, \"eSelect\", void 0);\n return SelectCellEditor;\n}(PopupComponent));\n\nvar __extends$2v = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SimpleCellEditor = /** @class */ (function (_super) {\n __extends$2v(SimpleCellEditor, _super);\n function SimpleCellEditor(cellEditorInput) {\n var _this = _super.call(this, /* html */ \"\\n
\\n \" + cellEditorInput.getTemplate() + \"\\n
\") || this;\n _this.cellEditorInput = cellEditorInput;\n return _this;\n }\n SimpleCellEditor.prototype.init = function (params) {\n this.params = params;\n var eInput = this.eInput;\n this.cellEditorInput.init(eInput, params);\n var startValue;\n // cellStartedEdit is only false if we are doing fullRow editing\n if (params.cellStartedEdit) {\n this.focusAfterAttached = true;\n var eventKey = params.eventKey;\n if (eventKey === KeyCode.BACKSPACE || params.eventKey === KeyCode.DELETE) {\n startValue = '';\n }\n else if (eventKey && eventKey.length === 1) {\n startValue = eventKey;\n }\n else {\n startValue = this.cellEditorInput.getStartValue();\n if (eventKey !== KeyCode.F2) {\n this.highlightAllOnFocus = true;\n }\n }\n }\n else {\n this.focusAfterAttached = false;\n startValue = this.cellEditorInput.getStartValue();\n }\n if (startValue != null) {\n eInput.setStartValue(startValue);\n }\n this.addManagedListener(eInput.getGui(), 'keydown', function (event) {\n var key = event.key;\n if (key === KeyCode.PAGE_UP || key === KeyCode.PAGE_DOWN) {\n event.preventDefault();\n }\n });\n };\n SimpleCellEditor.prototype.afterGuiAttached = function () {\n var _a, _b;\n var translate = this.localeService.getLocaleTextFunc();\n var eInput = this.eInput;\n eInput.setInputAriaLabel(translate('ariaInputEditor', 'Input Editor'));\n if (!this.focusAfterAttached) {\n return;\n }\n // Added for AG-3238. We can't remove this explicit focus() because Chrome requires an input\n // to be focused before setSelectionRange will work. But it triggers a bug in Safari where\n // explicitly focusing then blurring an empty field will cause the parent container to scroll.\n if (!isBrowserSafari()) {\n eInput.getFocusableElement().focus();\n }\n var inputEl = eInput.getInputElement();\n if (this.highlightAllOnFocus) {\n inputEl.select();\n }\n else {\n (_b = (_a = this.cellEditorInput).setCaret) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n };\n // gets called when tabbing through cells and in full row edit mode\n SimpleCellEditor.prototype.focusIn = function () {\n var eInput = this.eInput;\n var focusEl = eInput.getFocusableElement();\n var inputEl = eInput.getInputElement();\n focusEl.focus();\n inputEl.select();\n };\n SimpleCellEditor.prototype.getValue = function () {\n return this.cellEditorInput.getValue();\n };\n SimpleCellEditor.prototype.isPopup = function () {\n return false;\n };\n __decorate$2e([\n RefSelector('eInput')\n ], SimpleCellEditor.prototype, \"eInput\", void 0);\n return SimpleCellEditor;\n}(PopupComponent));\n\nvar __extends$2u = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar TextCellEditorInput = /** @class */ (function () {\n function TextCellEditorInput() {\n }\n TextCellEditorInput.prototype.getTemplate = function () {\n return /* html */ \"\";\n };\n TextCellEditorInput.prototype.init = function (eInput, params) {\n this.eInput = eInput;\n this.params = params;\n if (params.maxLength != null) {\n eInput.setMaxLength(params.maxLength);\n }\n };\n TextCellEditorInput.prototype.getValue = function () {\n var value = this.eInput.getValue();\n if (!exists(value) && !exists(this.params.value)) {\n return this.params.value;\n }\n return this.params.parseValue(value);\n };\n TextCellEditorInput.prototype.getStartValue = function () {\n var formatValue = this.params.useFormatter || this.params.column.getColDef().refData;\n return formatValue ? this.params.formatValue(this.params.value) : this.params.value;\n };\n TextCellEditorInput.prototype.setCaret = function () {\n // when we started editing, we want the caret at the end, not the start.\n // this comes into play in two scenarios:\n // a) when user hits F2\n // b) when user hits a printable character\n var value = this.eInput.getValue();\n var len = (exists(value) && value.length) || 0;\n if (len) {\n this.eInput.getInputElement().setSelectionRange(len, len);\n }\n };\n return TextCellEditorInput;\n}());\nvar TextCellEditor = /** @class */ (function (_super) {\n __extends$2u(TextCellEditor, _super);\n function TextCellEditor() {\n return _super.call(this, new TextCellEditorInput()) || this;\n }\n return TextCellEditor;\n}(SimpleCellEditor));\n\nvar __extends$2t = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ARROW_UP = '\\u2191';\nvar ARROW_DOWN = '\\u2193';\nvar AnimateShowChangeCellRenderer = /** @class */ (function (_super) {\n __extends$2t(AnimateShowChangeCellRenderer, _super);\n function AnimateShowChangeCellRenderer() {\n var _this = _super.call(this, AnimateShowChangeCellRenderer.TEMPLATE) || this;\n _this.refreshCount = 0;\n return _this;\n }\n AnimateShowChangeCellRenderer.prototype.init = function (params) {\n // this.params = params;\n this.eValue = this.queryForHtmlElement('.ag-value-change-value');\n this.eDelta = this.queryForHtmlElement('.ag-value-change-delta');\n this.refresh(params);\n };\n AnimateShowChangeCellRenderer.prototype.showDelta = function (params, delta) {\n var absDelta = Math.abs(delta);\n var valueFormatted = params.formatValue(absDelta);\n var valueToUse = exists(valueFormatted) ? valueFormatted : absDelta;\n var deltaUp = (delta >= 0);\n if (deltaUp) {\n this.eDelta.innerHTML = ARROW_UP + valueToUse;\n }\n else {\n // because negative, use ABS to remove sign\n this.eDelta.innerHTML = ARROW_DOWN + valueToUse;\n }\n this.eDelta.classList.toggle('ag-value-change-delta-up', deltaUp);\n this.eDelta.classList.toggle('ag-value-change-delta-down', !deltaUp);\n };\n AnimateShowChangeCellRenderer.prototype.setTimerToRemoveDelta = function () {\n var _this = this;\n // the refreshCount makes sure that if the value updates again while\n // the below timer is waiting, then the below timer will realise it\n // is not the most recent and will not try to remove the delta value.\n this.refreshCount++;\n var refreshCountCopy = this.refreshCount;\n window.setTimeout(function () {\n if (refreshCountCopy === _this.refreshCount) {\n _this.hideDeltaValue();\n }\n }, 2000);\n };\n AnimateShowChangeCellRenderer.prototype.hideDeltaValue = function () {\n this.eValue.classList.remove('ag-value-change-value-highlight');\n clearElement(this.eDelta);\n };\n AnimateShowChangeCellRenderer.prototype.refresh = function (params) {\n var value = params.value;\n if (value === this.lastValue) {\n return false;\n }\n if (exists(params.valueFormatted)) {\n this.eValue.innerHTML = params.valueFormatted;\n }\n else if (exists(params.value)) {\n this.eValue.innerHTML = value;\n }\n else {\n clearElement(this.eValue);\n }\n // we don't show the delta if we are in the middle of a filter. see comment on FilterManager\n // with regards processingFilterChange\n if (this.filterManager.isSuppressFlashingCellsBecauseFiltering()) {\n return false;\n }\n if (typeof value === 'number' && typeof this.lastValue === 'number') {\n var delta = value - this.lastValue;\n this.showDelta(params, delta);\n }\n // highlight the current value, but only if it's not new, otherwise it\n // would get highlighted first time the value is shown\n if (this.lastValue) {\n this.eValue.classList.add('ag-value-change-value-highlight');\n }\n this.setTimerToRemoveDelta();\n this.lastValue = value;\n return true;\n };\n AnimateShowChangeCellRenderer.TEMPLATE = '' +\n '' +\n '' +\n '';\n __decorate$2d([\n Autowired('filterManager')\n ], AnimateShowChangeCellRenderer.prototype, \"filterManager\", void 0);\n return AnimateShowChangeCellRenderer;\n}(Component));\n\nvar __extends$2s = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AnimateSlideCellRenderer = /** @class */ (function (_super) {\n __extends$2s(AnimateSlideCellRenderer, _super);\n function AnimateSlideCellRenderer() {\n var _this = _super.call(this, AnimateSlideCellRenderer.TEMPLATE) || this;\n _this.refreshCount = 0;\n _this.eCurrent = _this.queryForHtmlElement('.ag-value-slide-current');\n return _this;\n }\n AnimateSlideCellRenderer.prototype.init = function (params) {\n this.refresh(params);\n };\n AnimateSlideCellRenderer.prototype.addSlideAnimation = function () {\n var _this = this;\n this.refreshCount++;\n // below we keep checking this, and stop working on the animation\n // if it no longer matches - this means another animation has started\n // and this one is stale.\n var refreshCountCopy = this.refreshCount;\n // if old animation, remove it\n if (this.ePrevious) {\n this.getGui().removeChild(this.ePrevious);\n }\n this.ePrevious = loadTemplate('');\n this.ePrevious.innerHTML = this.eCurrent.innerHTML;\n this.getGui().insertBefore(this.ePrevious, this.eCurrent);\n // having timeout of 0 allows use to skip to the next css turn,\n // so we know the previous css classes have been applied. so the\n // complex set of setTimeout below creates the animation\n window.setTimeout(function () {\n if (refreshCountCopy !== _this.refreshCount) {\n return;\n }\n _this.ePrevious.classList.add('ag-value-slide-out-end');\n }, 50);\n window.setTimeout(function () {\n if (refreshCountCopy !== _this.refreshCount) {\n return;\n }\n _this.getGui().removeChild(_this.ePrevious);\n _this.ePrevious = null;\n }, 3000);\n };\n AnimateSlideCellRenderer.prototype.refresh = function (params) {\n var value = params.value;\n if (missing(value)) {\n value = '';\n }\n if (value === this.lastValue) {\n return false;\n }\n // we don't show the delta if we are in the middle of a filter. see comment on FilterManager\n // with regards processingFilterChange\n if (this.filterManager.isSuppressFlashingCellsBecauseFiltering()) {\n return false;\n }\n this.addSlideAnimation();\n this.lastValue = value;\n if (exists(params.valueFormatted)) {\n this.eCurrent.innerHTML = params.valueFormatted;\n }\n else if (exists(params.value)) {\n this.eCurrent.innerHTML = value;\n }\n else {\n clearElement(this.eCurrent);\n }\n return true;\n };\n AnimateSlideCellRenderer.TEMPLATE = \"\\n \\n \";\n __decorate$2c([\n Autowired('filterManager')\n ], AnimateSlideCellRenderer.prototype, \"filterManager\", void 0);\n return AnimateSlideCellRenderer;\n}(Component));\n\nvar __assign$g = (undefined && undefined.__assign) || function () {\n __assign$g = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$g.apply(this, arguments);\n};\nvar RowNode = /** @class */ (function () {\n function RowNode(beans) {\n /** The current row index. If the row is filtered out or in a collapsed group, this value will be `null`. */\n this.rowIndex = null;\n /** The key for the group eg Ireland, UK, USA */\n this.key = null;\n /** Children mapped by the pivot columns. */\n this.childrenMapped = {};\n /**\n * This will be `true` if it has a rowIndex assigned, otherwise `false`.\n */\n this.displayed = false;\n /** The row top position in pixels. */\n this.rowTop = null;\n /** The top pixel for this row last time, makes sense if data set was ordered or filtered,\n * it is used so new rows can animate in from their old position. */\n this.oldRowTop = null;\n /** `true` by default - can be overridden via gridOptions.isRowSelectable(rowNode) */\n this.selectable = true;\n /** Used by sorting service - to give deterministic sort to groups. Previously we\n * just id for this, however id is a string and had slower sorting compared to numbers. */\n this.__objectId = RowNode.OBJECT_ID_SEQUENCE++;\n /** When one or more Columns are using autoHeight, this keeps track of height of each autoHeight Cell,\n * indexed by the Column ID. */\n this.__autoHeights = {};\n /** `true` when nodes with the same id are being removed and added as part of the same batch transaction */\n this.alreadyRendered = false;\n this.highlighted = null;\n this.hovered = false;\n this.selected = false;\n this.beans = beans;\n }\n /**\n * Replaces the data on the `rowNode`. When this method is called, the grid will refresh the entire rendered row if it is displayed.\n */\n RowNode.prototype.setData = function (data) {\n this.setDataCommon(data, false);\n };\n // similar to setRowData, however it is expected that the data is the same data item. this\n // is intended to be used with Redux type stores, where the whole data can be changed. we are\n // guaranteed that the data is the same entity (so grid doesn't need to worry about the id of the\n // underlying data changing, hence doesn't need to worry about selection). the grid, upon receiving\n // dataChanged event, will refresh the cells rather than rip them all out (so user can show transitions).\n /**\n * Updates the data on the `rowNode`. When this method is called, the grid will refresh the entire rendered row if it is displayed.\n */\n RowNode.prototype.updateData = function (data) {\n this.setDataCommon(data, true);\n };\n RowNode.prototype.setDataCommon = function (data, update) {\n var oldData = this.data;\n this.data = data;\n this.beans.valueCache.onDataChanged();\n this.updateDataOnDetailNode();\n this.checkRowSelectable();\n this.resetQuickFilterAggregateText();\n var event = this.createDataChangedEvent(data, oldData, update);\n this.dispatchLocalEvent(event);\n };\n // when we are doing master / detail, the detail node is lazy created, but then kept around.\n // so if we show / hide the detail, the same detail rowNode is used. so we need to keep the data\n // in sync, otherwise expand/collapse of the detail would still show the old values.\n RowNode.prototype.updateDataOnDetailNode = function () {\n if (this.detailNode) {\n this.detailNode.data = this.data;\n }\n };\n RowNode.prototype.createDataChangedEvent = function (newData, oldData, update) {\n return {\n type: RowNode.EVENT_DATA_CHANGED,\n node: this,\n oldData: oldData,\n newData: newData,\n update: update\n };\n };\n RowNode.prototype.createLocalRowEvent = function (type) {\n return {\n type: type,\n node: this\n };\n };\n RowNode.prototype.getRowIndexString = function () {\n if (this.rowPinned === 'top') {\n return 't-' + this.rowIndex;\n }\n if (this.rowPinned === 'bottom') {\n return 'b-' + this.rowIndex;\n }\n return this.rowIndex.toString();\n };\n RowNode.prototype.createDaemonNode = function () {\n var oldNode = new RowNode(this.beans);\n // just copy the id and data, this is enough for the node to be used\n // in the selection controller (the selection controller is the only\n // place where daemon nodes can live).\n oldNode.id = this.id;\n oldNode.data = this.data;\n oldNode.__daemon = true;\n oldNode.selected = this.selected;\n oldNode.level = this.level;\n return oldNode;\n };\n RowNode.prototype.setDataAndId = function (data, id) {\n var oldNode = exists(this.id) ? this.createDaemonNode() : null;\n var oldData = this.data;\n this.data = data;\n this.updateDataOnDetailNode();\n this.setId(id);\n this.checkRowSelectable();\n this.beans.selectionService.syncInRowNode(this, oldNode);\n var event = this.createDataChangedEvent(data, oldData, false);\n this.dispatchLocalEvent(event);\n };\n RowNode.prototype.checkRowSelectable = function () {\n var isRowSelectableFunc = this.beans.gridOptionsService.get('isRowSelectable');\n this.setRowSelectable(isRowSelectableFunc ? isRowSelectableFunc(this) : true);\n };\n RowNode.prototype.setRowSelectable = function (newVal) {\n if (this.selectable !== newVal) {\n this.selectable = newVal;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_SELECTABLE_CHANGED));\n }\n var isGroupSelectsChildren = this.beans.gridOptionsService.is('groupSelectsChildren');\n if (isGroupSelectsChildren) {\n var selected = this.calculateSelectedFromChildren();\n this.setSelectedParams({\n newValue: selected !== null && selected !== void 0 ? selected : false,\n source: 'selectableChanged',\n });\n }\n }\n };\n RowNode.prototype.setId = function (id) {\n // see if user is providing the id's\n var getRowIdFunc = this.beans.gridOptionsService.getCallback('getRowId');\n if (getRowIdFunc) {\n // if user is providing the id's, then we set the id only after the data has been set.\n // this is important for virtual pagination and viewport, where empty rows exist.\n if (this.data) {\n // we pass 'true' as we skip this level when generating keys,\n // as we don't always have the key for this level (eg when updating\n // data via transaction on SSRM, we are getting key to look up the\n // RowNode, don't have the RowNode yet, thus no way to get the current key)\n var parentKeys = this.getGroupKeys(true);\n this.id = getRowIdFunc({\n data: this.data,\n parentKeys: parentKeys.length > 0 ? parentKeys : undefined,\n level: this.level\n });\n // make sure id provided doesn't start with 'row-group-' as this is reserved. also check that\n // it has 'startsWith' in case the user provided a number.\n if (this.id !== null && typeof this.id === 'string' && this.id.startsWith(RowNode.ID_PREFIX_ROW_GROUP)) {\n console.error(\"AG Grid: Row IDs cannot start with \" + RowNode.ID_PREFIX_ROW_GROUP + \", this is a reserved prefix for AG Grid's row grouping feature.\");\n }\n // force id to be a string\n if (this.id !== null && typeof this.id !== 'string') {\n this.id = '' + this.id;\n }\n }\n else {\n // this can happen if user has set blank into the rowNode after the row previously\n // having data. this happens in virtual page row model, when data is delete and\n // the page is refreshed.\n this.id = undefined;\n }\n }\n else {\n this.id = id;\n }\n };\n RowNode.prototype.getGroupKeys = function (excludeSelf) {\n if (excludeSelf === void 0) { excludeSelf = false; }\n var keys = [];\n var pointer = this;\n if (excludeSelf) {\n pointer = pointer.parent;\n }\n while (pointer && pointer.level >= 0) {\n keys.push(pointer.key);\n pointer = pointer.parent;\n }\n keys.reverse();\n return keys;\n };\n RowNode.prototype.isPixelInRange = function (pixel) {\n if (!exists(this.rowTop) || !exists(this.rowHeight)) {\n return false;\n }\n return pixel >= this.rowTop && pixel < (this.rowTop + this.rowHeight);\n };\n RowNode.prototype.setFirstChild = function (firstChild) {\n if (this.firstChild === firstChild) {\n return;\n }\n this.firstChild = firstChild;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_FIRST_CHILD_CHANGED));\n }\n };\n RowNode.prototype.setLastChild = function (lastChild) {\n if (this.lastChild === lastChild) {\n return;\n }\n this.lastChild = lastChild;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_LAST_CHILD_CHANGED));\n }\n };\n RowNode.prototype.setChildIndex = function (childIndex) {\n if (this.childIndex === childIndex) {\n return;\n }\n this.childIndex = childIndex;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_CHILD_INDEX_CHANGED));\n }\n };\n RowNode.prototype.setRowTop = function (rowTop) {\n this.oldRowTop = this.rowTop;\n if (this.rowTop === rowTop) {\n return;\n }\n this.rowTop = rowTop;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_TOP_CHANGED));\n }\n this.setDisplayed(rowTop !== null);\n };\n RowNode.prototype.clearRowTopAndRowIndex = function () {\n this.oldRowTop = null;\n this.setRowTop(null);\n this.setRowIndex(null);\n };\n RowNode.prototype.setDisplayed = function (displayed) {\n if (this.displayed === displayed) {\n return;\n }\n this.displayed = displayed;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_DISPLAYED_CHANGED));\n }\n };\n RowNode.prototype.setDragging = function (dragging) {\n if (this.dragging === dragging) {\n return;\n }\n this.dragging = dragging;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_DRAGGING_CHANGED));\n }\n };\n RowNode.prototype.setHighlighted = function (highlighted) {\n if (highlighted === this.highlighted) {\n return;\n }\n this.highlighted = highlighted;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_HIGHLIGHT_CHANGED));\n }\n };\n RowNode.prototype.setHovered = function (hovered) {\n if (this.hovered === hovered) {\n return;\n }\n this.hovered = hovered;\n };\n RowNode.prototype.isHovered = function () {\n return this.hovered;\n };\n RowNode.prototype.setAllChildrenCount = function (allChildrenCount) {\n if (this.allChildrenCount === allChildrenCount) {\n return;\n }\n this.allChildrenCount = allChildrenCount;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED));\n }\n };\n RowNode.prototype.setMaster = function (master) {\n if (this.master === master) {\n return;\n }\n // if changing AWAY from master, then unexpand, otherwise\n // next time it's shown it is expanded again\n if (this.master && !master) {\n this.expanded = false;\n }\n this.master = master;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_MASTER_CHANGED));\n }\n };\n RowNode.prototype.setGroup = function (group) {\n if (this.group === group) {\n return;\n }\n // if we used to be a group, and no longer, then close the node\n if (this.group && !group) {\n this.expanded = false;\n }\n this.group = group;\n this.updateHasChildren();\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_GROUP_CHANGED));\n }\n };\n /**\n * Sets the row height.\n * Call if you want to change the height initially assigned to the row.\n * After calling, you must call `api.onRowHeightChanged()` so the grid knows it needs to work out the placement of the rows. */\n RowNode.prototype.setRowHeight = function (rowHeight, estimated) {\n if (estimated === void 0) { estimated = false; }\n this.rowHeight = rowHeight;\n this.rowHeightEstimated = estimated;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_HEIGHT_CHANGED));\n }\n };\n RowNode.prototype.setRowAutoHeight = function (cellHeight, column) {\n if (!this.__autoHeights) {\n this.__autoHeights = {};\n }\n this.__autoHeights[column.getId()] = cellHeight;\n if (cellHeight != null) {\n if (this.checkAutoHeightsDebounced == null) {\n this.checkAutoHeightsDebounced = debounce(this.checkAutoHeights.bind(this), 1);\n }\n this.checkAutoHeightsDebounced();\n }\n };\n RowNode.prototype.checkAutoHeights = function () {\n var _this = this;\n var notAllPresent = false;\n var nonePresent = true;\n var newRowHeight = 0;\n var autoHeights = this.__autoHeights;\n if (autoHeights == null) {\n return;\n }\n var displayedAutoHeightCols = this.beans.columnModel.getAllDisplayedAutoHeightCols();\n displayedAutoHeightCols.forEach(function (col) {\n var cellHeight = autoHeights[col.getId()];\n if (cellHeight == null) {\n // If column spanning is active a column may not provide auto height for a row if that\n // cell is not present for the given row due to a previous cell spanning over the auto height column.\n if (_this.beans.columnModel.isColSpanActive()) {\n var activeColsForRow = [];\n switch (col.getPinned()) {\n case 'left':\n activeColsForRow = _this.beans.columnModel.getDisplayedLeftColumnsForRow(_this);\n break;\n case 'right':\n activeColsForRow = _this.beans.columnModel.getDisplayedRightColumnsForRow(_this);\n break;\n case null:\n activeColsForRow = _this.beans.columnModel.getViewportCenterColumnsForRow(_this);\n break;\n }\n if (activeColsForRow.includes(col)) {\n // Column is present in the row, i.e not spanned over, but no auto height was provided so we cannot calculate the row height\n notAllPresent = true;\n return;\n }\n // Ignore this column as it is spanned over and not present in the row\n cellHeight = -1;\n }\n else {\n notAllPresent = true;\n return;\n }\n }\n else {\n // At least one auto height is present\n nonePresent = false;\n }\n if (cellHeight > newRowHeight) {\n newRowHeight = cellHeight;\n }\n });\n if (notAllPresent) {\n return;\n }\n // we take min of 10, so we don't adjust for empty rows. if <10, we put to default.\n // this prevents the row starting very small when waiting for async components,\n // which would then mean the grid squashes in far to many rows (as small heights\n // means more rows fit in) which looks crap. so best ignore small values and assume\n // we are still waiting for values to render.\n if (nonePresent || newRowHeight < 10) {\n newRowHeight = this.beans.gridOptionsService.getRowHeightForNode(this).height;\n }\n if (newRowHeight == this.rowHeight) {\n return;\n }\n this.setRowHeight(newRowHeight);\n var rowModel = this.beans.rowModel;\n if (rowModel.onRowHeightChangedDebounced) {\n rowModel.onRowHeightChangedDebounced();\n }\n };\n RowNode.prototype.setRowIndex = function (rowIndex) {\n if (this.rowIndex === rowIndex) {\n return;\n }\n this.rowIndex = rowIndex;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_ROW_INDEX_CHANGED));\n }\n };\n RowNode.prototype.setUiLevel = function (uiLevel) {\n if (this.uiLevel === uiLevel) {\n return;\n }\n this.uiLevel = uiLevel;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_UI_LEVEL_CHANGED));\n }\n };\n /**\n * Set the expanded state of this rowNode. Pass `true` to expand and `false` to collapse.\n */\n RowNode.prototype.setExpanded = function (expanded, e) {\n if (this.expanded === expanded) {\n return;\n }\n this.expanded = expanded;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_EXPANDED_CHANGED));\n }\n var event = Object.assign({}, this.createGlobalRowEvent(Events.EVENT_ROW_GROUP_OPENED), {\n expanded: expanded,\n event: e || null\n });\n this.beans.rowNodeEventThrottle.dispatchExpanded(event);\n // when using footers we need to refresh the group row, as the aggregation\n // values jump between group and footer\n if (this.sibling) {\n this.beans.rowRenderer.refreshCells({ rowNodes: [this] });\n }\n };\n RowNode.prototype.createGlobalRowEvent = function (type) {\n return {\n type: type,\n node: this,\n data: this.data,\n rowIndex: this.rowIndex,\n rowPinned: this.rowPinned,\n context: this.beans.gridOptionsService.context,\n api: this.beans.gridOptionsService.api,\n columnApi: this.beans.gridOptionsService.columnApi\n };\n };\n RowNode.prototype.dispatchLocalEvent = function (event) {\n if (this.eventService) {\n this.eventService.dispatchEvent(event);\n }\n };\n /**\n * Replaces the value on the `rowNode` for the specified column. When complete,\n * the grid will refresh the rendered cell on the required row only.\n * **Note**: This method only fires `onCellEditRequest` when the Grid is in **Read Only** mode.\n *\n * @param colKey The column where the value should be updated\n * @param newValue The new value\n * @param eventSource The source of the event\n * @returns `true` if the value was changed, otherwise `false`.\n */\n RowNode.prototype.setDataValue = function (colKey, newValue, eventSource) {\n var _this = this;\n var getColumnFromKey = function () {\n var _a;\n if (typeof colKey !== 'string') {\n return colKey;\n }\n // if in pivot mode, grid columns wont include primary columns\n return (_a = _this.beans.columnModel.getGridColumn(colKey)) !== null && _a !== void 0 ? _a : _this.beans.columnModel.getPrimaryColumn(colKey);\n };\n // When it is done via the editors, no 'cell changed' event gets fired, as it's assumed that\n // the cell knows about the change given it's in charge of the editing.\n // this method is for the client to call, so the cell listens for the change\n // event, and also flashes the cell when the change occurs.\n var column = getColumnFromKey();\n var oldValue = this.getValueFromValueService(column);\n if (this.beans.gridOptionsService.is('readOnlyEdit')) {\n this.dispatchEventForSaveValueReadOnly(column, oldValue, newValue, eventSource);\n return false;\n }\n var valueChanged = this.beans.valueService.setValue(this, column, newValue, eventSource);\n this.dispatchCellChangedEvent(column, newValue, oldValue);\n this.checkRowSelectable();\n return valueChanged;\n };\n RowNode.prototype.getValueFromValueService = function (column) {\n // if we don't check this, then the grid will render leaf groups as open even if we are not\n // allowing the user to open leaf groups. confused? remember for pivot mode we don't allow\n // opening leaf groups, so we have to force leafGroups to be closed in case the user expanded\n // them via the API, or user user expanded them in the UI before turning on pivot mode\n var lockedClosedGroup = this.leafGroup && this.beans.columnModel.isPivotMode();\n var isOpenGroup = this.group && this.expanded && !this.footer && !lockedClosedGroup;\n // are we showing group footers\n var getGroupIncludeFooter = this.beans.gridOptionsService.getGroupIncludeFooter();\n var groupFootersEnabled = getGroupIncludeFooter({ node: this });\n // if doing footers, we normally don't show agg data at group level when group is open\n var groupAlwaysShowAggData = this.beans.gridOptionsService.is('groupSuppressBlankHeader');\n // if doing grouping and footers, we don't want to include the agg value\n // in the header when the group is open\n var ignoreAggData = (isOpenGroup && groupFootersEnabled) && !groupAlwaysShowAggData;\n var value = this.beans.valueService.getValue(column, this, false, ignoreAggData);\n return value;\n };\n RowNode.prototype.dispatchEventForSaveValueReadOnly = function (column, oldValue, newValue, eventSource) {\n var event = {\n type: Events.EVENT_CELL_EDIT_REQUEST,\n event: null,\n rowIndex: this.rowIndex,\n rowPinned: this.rowPinned,\n column: column,\n colDef: column.getColDef(),\n context: this.beans.gridOptionsService.context,\n api: this.beans.gridOptionsService.api,\n columnApi: this.beans.gridOptionsService.columnApi,\n data: this.data,\n node: this,\n oldValue: oldValue,\n newValue: newValue,\n value: newValue,\n source: eventSource\n };\n this.beans.eventService.dispatchEvent(event);\n };\n RowNode.prototype.setGroupValue = function (colKey, newValue) {\n var column = this.beans.columnModel.getGridColumn(colKey);\n if (missing(this.groupData)) {\n this.groupData = {};\n }\n var columnId = column.getColId();\n var oldValue = this.groupData[columnId];\n if (oldValue === newValue) {\n return;\n }\n this.groupData[columnId] = newValue;\n this.dispatchCellChangedEvent(column, newValue, oldValue);\n };\n // sets the data for an aggregation\n RowNode.prototype.setAggData = function (newAggData) {\n var _this = this;\n // find out all keys that could potentially change\n var colIds = getAllKeysInObjects([this.aggData, newAggData]);\n var oldAggData = this.aggData;\n this.aggData = newAggData;\n // if no event service, nobody has registered for events, so no need fire event\n if (this.eventService) {\n colIds.forEach(function (colId) {\n var value = _this.aggData ? _this.aggData[colId] : undefined;\n var oldValue = oldAggData ? oldAggData[colId] : undefined;\n if (value === oldValue) {\n return;\n }\n // do a quick lookup - despite the event it's possible the column no longer exists\n var column = _this.beans.columnModel.lookupGridColumn(colId);\n if (!column) {\n return;\n }\n _this.dispatchCellChangedEvent(column, value, oldValue);\n });\n }\n };\n RowNode.prototype.updateHasChildren = function () {\n // in CSRM, the group property will be set before the childrenAfterGroup property, check both to prevent flickering\n var newValue = (this.group && !this.footer) || (this.childrenAfterGroup && this.childrenAfterGroup.length > 0);\n var isSsrm = this.beans.gridOptionsService.isRowModelType('serverSide');\n if (isSsrm) {\n var isTreeData = this.beans.gridOptionsService.is('treeData');\n var isGroupFunc = this.beans.gridOptionsService.get('isServerSideGroup');\n // stubs and footers can never have children, as they're grid rows. if tree data the presence of children\n // is determined by the isServerSideGroup callback, if not tree data then the rows group property will be set.\n newValue = !this.stub && !this.footer && (isTreeData ? !!isGroupFunc && isGroupFunc(this.data) : !!this.group);\n }\n if (newValue !== this.__hasChildren) {\n this.__hasChildren = !!newValue;\n if (this.eventService) {\n this.eventService.dispatchEvent(this.createLocalRowEvent(RowNode.EVENT_HAS_CHILDREN_CHANGED));\n }\n }\n };\n RowNode.prototype.hasChildren = function () {\n if (this.__hasChildren == null) {\n this.updateHasChildren();\n }\n return this.__hasChildren;\n };\n RowNode.prototype.isEmptyRowGroupNode = function () {\n return this.group && missingOrEmpty(this.childrenAfterGroup);\n };\n RowNode.prototype.dispatchCellChangedEvent = function (column, newValue, oldValue) {\n var cellChangedEvent = {\n type: RowNode.EVENT_CELL_CHANGED,\n node: this,\n column: column,\n newValue: newValue,\n oldValue: oldValue\n };\n this.dispatchLocalEvent(cellChangedEvent);\n };\n /**\n * The first time `quickFilter` runs, the grid creates a one-off string representation of the row.\n * This string is then used for the quick filter instead of hitting each column separately.\n * When you edit, using grid editing, this string gets cleared down.\n * However if you edit without using grid editing, you will need to clear this string down for the row to be updated with the new values.\n * Otherwise new values will not work with the `quickFilter`. */\n RowNode.prototype.resetQuickFilterAggregateText = function () {\n this.quickFilterAggregateText = null;\n };\n /** Returns:\n * - `true` if the node can be expanded, i.e it is a group or master row.\n * - `false` if the node cannot be expanded\n */\n RowNode.prototype.isExpandable = function () {\n return (this.hasChildren() && !this.footer) || this.master ? true : false;\n };\n /** Returns:\n * - `true` if node is selected,\n * - `false` if the node isn't selected\n * - `undefined` if it's partially selected (group where not all children are selected). */\n RowNode.prototype.isSelected = function () {\n // for footers, we just return what our sibling selected state is, as cannot select a footer\n if (this.footer) {\n return this.sibling.isSelected();\n }\n return this.selected;\n };\n /** Perform a depth-first search of this node and its children. */\n RowNode.prototype.depthFirstSearch = function (callback) {\n if (this.childrenAfterGroup) {\n this.childrenAfterGroup.forEach(function (child) { return child.depthFirstSearch(callback); });\n }\n callback(this);\n };\n // + selectionController.calculatedSelectedForAllGroupNodes()\n RowNode.prototype.calculateSelectedFromChildren = function () {\n var _a;\n var atLeastOneSelected = false;\n var atLeastOneDeSelected = false;\n var atLeastOneMixed = false;\n if (!((_a = this.childrenAfterGroup) === null || _a === void 0 ? void 0 : _a.length)) {\n return this.selectable ? this.selected : null;\n }\n for (var i = 0; i < this.childrenAfterGroup.length; i++) {\n var child = this.childrenAfterGroup[i];\n var childState = child.isSelected();\n // non-selectable nodes must be calculated from their children, or ignored if no value results.\n if (!child.selectable) {\n var selectable = child.calculateSelectedFromChildren();\n if (selectable === null) {\n continue;\n }\n childState = selectable;\n }\n switch (childState) {\n case true:\n atLeastOneSelected = true;\n break;\n case false:\n atLeastOneDeSelected = true;\n break;\n default:\n atLeastOneMixed = true;\n break;\n }\n }\n if (atLeastOneMixed || (atLeastOneSelected && atLeastOneDeSelected)) {\n return undefined;\n }\n if (atLeastOneSelected) {\n return true;\n }\n if (atLeastOneDeSelected) {\n return false;\n }\n if (!this.selectable) {\n return null;\n }\n return this.selected;\n };\n RowNode.prototype.setSelectedInitialValue = function (selected) {\n this.selected = selected;\n };\n RowNode.prototype.selectThisNode = function (newValue, e, source) {\n if (source === void 0) { source = 'api'; }\n // we only check selectable when newValue=true (ie selecting) to allow unselecting values,\n // as selectable is dynamic, need a way to unselect rows when selectable becomes false.\n var selectionNotAllowed = !this.selectable && newValue;\n var selectionNotChanged = this.selected === newValue;\n if (selectionNotAllowed || selectionNotChanged) {\n return false;\n }\n this.selected = newValue;\n if (this.eventService) {\n this.dispatchLocalEvent(this.createLocalRowEvent(RowNode.EVENT_ROW_SELECTED));\n var sibling = this.sibling;\n if (sibling && sibling.footer) {\n sibling.dispatchLocalEvent(sibling.createLocalRowEvent(RowNode.EVENT_ROW_SELECTED));\n }\n }\n var event = __assign$g(__assign$g({}, this.createGlobalRowEvent(Events.EVENT_ROW_SELECTED)), { event: e || null, source: source });\n this.beans.eventService.dispatchEvent(event);\n return true;\n };\n /**\n * Select (or deselect) the node.\n * @param newValue -`true` for selection, `false` for deselection.\n * @param clearSelection - If selecting, then passing `true` will select the node exclusively (i.e. NOT do multi select). If doing deselection, `clearSelection` has no impact.\n * @param source - Source property that will appear in the `selectionChanged` event.\n */\n RowNode.prototype.setSelected = function (newValue, clearSelection, source) {\n if (clearSelection === void 0) { clearSelection = false; }\n if (source === void 0) { source = 'api'; }\n if (typeof source === 'boolean') {\n console.warn('AG Grid: since version v30, rowNode.setSelected() property `suppressFinishActions` has been removed, please use `gridApi.setNodesSelected()` for bulk actions, and the event `source` property for ignoring events instead.');\n return;\n }\n this.setSelectedParams({\n newValue: newValue,\n clearSelection: clearSelection,\n rangeSelect: false,\n source: source\n });\n };\n // this is for internal use only. To make calling code more readable, this is the same method as setSelected except it takes names parameters\n RowNode.prototype.setSelectedParams = function (params) {\n if (this.rowPinned) {\n console.warn('AG Grid: cannot select pinned rows');\n return 0;\n }\n if (this.id === undefined) {\n console.warn('AG Grid: cannot select node until id for node is known');\n return 0;\n }\n return this.beans.selectionService.setNodesSelected(__assign$g(__assign$g({}, params), { nodes: [this.footer ? this.sibling : this] }));\n };\n /**\n * Returns:\n * - `true` if node is either pinned to the `top` or `bottom`\n * - `false` if the node isn't pinned\n */\n RowNode.prototype.isRowPinned = function () {\n return this.rowPinned === 'top' || this.rowPinned === 'bottom';\n };\n RowNode.prototype.isParentOfNode = function (potentialParent) {\n var parentNode = this.parent;\n while (parentNode) {\n if (parentNode === potentialParent) {\n return true;\n }\n parentNode = parentNode.parent;\n }\n return false;\n };\n /** Add an event listener. */\n RowNode.prototype.addEventListener = function (eventType, listener) {\n if (!this.eventService) {\n this.eventService = new EventService();\n }\n this.eventService.addEventListener(eventType, listener);\n };\n /** Remove event listener. */\n RowNode.prototype.removeEventListener = function (eventType, listener) {\n if (!this.eventService) {\n return;\n }\n this.eventService.removeEventListener(eventType, listener);\n if (this.eventService.noRegisteredListenersExist()) {\n this.eventService = null;\n }\n };\n RowNode.prototype.onMouseEnter = function () {\n this.dispatchLocalEvent(this.createLocalRowEvent(RowNode.EVENT_MOUSE_ENTER));\n };\n RowNode.prototype.onMouseLeave = function () {\n this.dispatchLocalEvent(this.createLocalRowEvent(RowNode.EVENT_MOUSE_LEAVE));\n };\n RowNode.prototype.getFirstChildOfFirstChild = function (rowGroupColumn) {\n var currentRowNode = this;\n var isCandidate = true;\n var foundFirstChildPath = false;\n var nodeToSwapIn = null;\n // if we are hiding groups, then if we are the first child, of the first child,\n // all the way up to the column we are interested in, then we show the group cell.\n while (isCandidate && !foundFirstChildPath) {\n var parentRowNode = currentRowNode.parent;\n var firstChild = exists(parentRowNode) && currentRowNode.firstChild;\n if (firstChild) {\n if (parentRowNode.rowGroupColumn === rowGroupColumn) {\n foundFirstChildPath = true;\n nodeToSwapIn = parentRowNode;\n }\n }\n else {\n isCandidate = false;\n }\n currentRowNode = parentRowNode;\n }\n return foundFirstChildPath ? nodeToSwapIn : null;\n };\n /**\n * Returns:\n * - `true` if the node is a full width cell\n * - `false` if the node is not a full width cell\n */\n RowNode.prototype.isFullWidthCell = function () {\n if (this.detail) {\n return true;\n }\n var isFullWidthCellFunc = this.beans.gridOptionsService.getCallback('isFullWidthRow');\n return isFullWidthCellFunc ? isFullWidthCellFunc({ rowNode: this }) : false;\n };\n /**\n * Returns the route of the row node. If the Row Node is a group, it returns the route to that Row Node.\n * If the Row Node is not a group, it returns `undefined`.\n */\n RowNode.prototype.getRoute = function () {\n if (this.key == null) {\n return;\n }\n var res = [];\n var pointer = this;\n while (pointer.key != null) {\n res.push(pointer.key);\n pointer = pointer.parent;\n }\n return res.reverse();\n };\n RowNode.prototype.createFooter = function () {\n var _this = this;\n // only create footer node once, otherwise we have daemons and\n // the animate screws up with the daemons hanging around\n if (this.sibling) {\n return;\n }\n // we don't copy these properties as they cause the footer node\n // to have properties which should be unique to the row.\n var ignoredProperties = new Set([\n 'eventService',\n '__objectId',\n 'sticky',\n ]);\n var footerNode = new RowNode(this.beans);\n Object.keys(this).forEach(function (key) {\n if (ignoredProperties.has(key)) {\n return;\n }\n footerNode[key] = _this[key];\n });\n footerNode.footer = true;\n footerNode.setRowTop(null);\n footerNode.setRowIndex(null);\n // manually set oldRowTop to null so we discard any\n // previous information about its position.\n footerNode.oldRowTop = null;\n footerNode.id = 'rowGroupFooter_' + this.id;\n // get both header and footer to reference each other as siblings. this is never undone,\n // only overwritten. so if a group is expanded, then contracted, it will have a ghost\n // sibling - but that's fine, as we can ignore this if the header is contracted.\n footerNode.sibling = this;\n this.sibling = footerNode;\n };\n // Only used by SSRM. In CSRM this is never used as footers should always be present for\n // the purpose of exporting collapsed groups. In SSRM it is not possible to export collapsed\n // groups anyway, so can destroy footers.\n RowNode.prototype.destroyFooter = function () {\n if (!this.sibling) {\n return;\n }\n this.sibling.setRowTop(null);\n this.sibling.setRowIndex(null);\n this.sibling = undefined;\n };\n RowNode.ID_PREFIX_ROW_GROUP = 'row-group-';\n RowNode.ID_PREFIX_TOP_PINNED = 't-';\n RowNode.ID_PREFIX_BOTTOM_PINNED = 'b-';\n RowNode.OBJECT_ID_SEQUENCE = 0;\n RowNode.EVENT_ROW_SELECTED = 'rowSelected';\n RowNode.EVENT_DATA_CHANGED = 'dataChanged';\n RowNode.EVENT_CELL_CHANGED = 'cellChanged';\n RowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED = 'allChildrenCountChanged';\n RowNode.EVENT_MASTER_CHANGED = 'masterChanged';\n RowNode.EVENT_GROUP_CHANGED = 'groupChanged';\n RowNode.EVENT_MOUSE_ENTER = 'mouseEnter';\n RowNode.EVENT_MOUSE_LEAVE = 'mouseLeave';\n RowNode.EVENT_HEIGHT_CHANGED = 'heightChanged';\n RowNode.EVENT_TOP_CHANGED = 'topChanged';\n RowNode.EVENT_DISPLAYED_CHANGED = 'displayedChanged';\n RowNode.EVENT_FIRST_CHILD_CHANGED = 'firstChildChanged';\n RowNode.EVENT_LAST_CHILD_CHANGED = 'lastChildChanged';\n RowNode.EVENT_CHILD_INDEX_CHANGED = 'childIndexChanged';\n RowNode.EVENT_ROW_INDEX_CHANGED = 'rowIndexChanged';\n RowNode.EVENT_EXPANDED_CHANGED = 'expandedChanged';\n RowNode.EVENT_HAS_CHILDREN_CHANGED = 'hasChildrenChanged';\n RowNode.EVENT_SELECTABLE_CHANGED = 'selectableChanged';\n RowNode.EVENT_UI_LEVEL_CHANGED = 'uiLevelChanged';\n RowNode.EVENT_HIGHLIGHT_CHANGED = 'rowHighlightChanged';\n RowNode.EVENT_DRAGGING_CHANGED = 'draggingChanged';\n return RowNode;\n}());\n\nvar __extends$2r = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$f = (undefined && undefined.__assign) || function () {\n __assign$f = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$f.apply(this, arguments);\n};\nvar __decorate$2b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CheckboxSelectionComponent = /** @class */ (function (_super) {\n __extends$2r(CheckboxSelectionComponent, _super);\n function CheckboxSelectionComponent() {\n return _super.call(this, /* html*/ \"\\n
\\n \\n
\") || this;\n }\n CheckboxSelectionComponent.prototype.postConstruct = function () {\n this.eCheckbox.setPassive(true);\n setAriaLive(this.eCheckbox.getInputElement(), 'polite');\n };\n CheckboxSelectionComponent.prototype.getCheckboxId = function () {\n return this.eCheckbox.getInputElement().id;\n };\n CheckboxSelectionComponent.prototype.onDataChanged = function () {\n // when rows are loaded for the second time, this can impact the selection, as a row\n // could be loaded as already selected (if user scrolls down, and then up again).\n this.onSelectionChanged();\n };\n CheckboxSelectionComponent.prototype.onSelectableChanged = function () {\n this.showOrHideSelect();\n };\n CheckboxSelectionComponent.prototype.onSelectionChanged = function () {\n var translate = this.localeService.getLocaleTextFunc();\n var state = this.rowNode.isSelected();\n var stateName = getAriaCheckboxStateName(translate, state);\n var ariaLabel = translate('ariaRowToggleSelection', 'Press Space to toggle row selection');\n this.eCheckbox.setValue(state, true);\n this.eCheckbox.setInputAriaLabel(ariaLabel + \" (\" + stateName + \")\");\n };\n CheckboxSelectionComponent.prototype.onClicked = function (newValue, groupSelectsFiltered, event) {\n return this.rowNode.setSelectedParams({ newValue: newValue, rangeSelect: event.shiftKey, groupSelectsFiltered: groupSelectsFiltered, event: event, source: 'checkboxSelected' });\n };\n CheckboxSelectionComponent.prototype.init = function (params) {\n var _this = this;\n this.rowNode = params.rowNode;\n this.column = params.column;\n this.overrides = params.overrides;\n this.onSelectionChanged();\n // we don't want double click on this icon to open a group\n this.addManagedListener(this.eCheckbox.getInputElement(), 'dblclick', function (event) {\n stopPropagationForAgGrid(event);\n });\n this.addManagedListener(this.eCheckbox.getInputElement(), 'click', function (event) {\n // we don't want the row clicked event to fire when selecting the checkbox, otherwise the row\n // would possibly get selected twice\n stopPropagationForAgGrid(event);\n var groupSelectsFiltered = _this.gridOptionsService.is('groupSelectsFiltered');\n var isSelected = _this.eCheckbox.getValue();\n if (_this.shouldHandleIndeterminateState(isSelected, groupSelectsFiltered)) {\n // try toggling children to determine action.\n var result = _this.onClicked(true, groupSelectsFiltered, event || {});\n if (result === 0) {\n _this.onClicked(false, groupSelectsFiltered, event);\n }\n }\n else if (isSelected) {\n _this.onClicked(false, groupSelectsFiltered, event);\n }\n else {\n _this.onClicked(true, groupSelectsFiltered, event || {});\n }\n });\n this.addManagedListener(this.rowNode, RowNode.EVENT_ROW_SELECTED, this.onSelectionChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_DATA_CHANGED, this.onDataChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_SELECTABLE_CHANGED, this.onSelectableChanged.bind(this));\n var isRowSelectableFunc = this.gridOptionsService.get('isRowSelectable');\n var checkboxVisibleIsDynamic = isRowSelectableFunc || typeof this.getIsVisible() === 'function';\n if (checkboxVisibleIsDynamic) {\n var showOrHideSelectListener = this.showOrHideSelect.bind(this);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, showOrHideSelectListener);\n this.addManagedListener(this.rowNode, RowNode.EVENT_DATA_CHANGED, showOrHideSelectListener);\n this.addManagedListener(this.rowNode, RowNode.EVENT_CELL_CHANGED, showOrHideSelectListener);\n this.showOrHideSelect();\n }\n this.eCheckbox.getInputElement().setAttribute('tabindex', '-1');\n };\n CheckboxSelectionComponent.prototype.shouldHandleIndeterminateState = function (isSelected, groupSelectsFiltered) {\n // for CSRM groupSelectsFiltered, we can get an indeterminate state where all filtered children are selected,\n // and we would expect clicking to deselect all rather than select all\n return groupSelectsFiltered &&\n (this.eCheckbox.getPreviousValue() === undefined || isSelected === undefined) &&\n this.gridOptionsService.isRowModelType('clientSide');\n };\n CheckboxSelectionComponent.prototype.showOrHideSelect = function () {\n var _a, _b, _c, _d;\n // if the isRowSelectable() is not provided the row node is selectable by default\n var selectable = this.rowNode.selectable;\n // checkboxSelection callback is deemed a legacy solution however we will still consider it's result.\n // If selectable, then also check the colDef callback. if not selectable, this it short circuits - no need\n // to call the colDef callback.\n var isVisible = this.getIsVisible();\n if (selectable) {\n if (typeof isVisible === 'function') {\n var extraParams = (_a = this.overrides) === null || _a === void 0 ? void 0 : _a.callbackParams;\n var params = (_b = this.column) === null || _b === void 0 ? void 0 : _b.createColumnFunctionCallbackParams(this.rowNode);\n selectable = params ? isVisible(__assign$f(__assign$f({}, extraParams), params)) : false;\n }\n else {\n selectable = isVisible !== null && isVisible !== void 0 ? isVisible : false;\n }\n }\n var disableInsteadOfHide = (_c = this.column) === null || _c === void 0 ? void 0 : _c.getColDef().showDisabledCheckboxes;\n if (disableInsteadOfHide) {\n this.eCheckbox.setDisabled(!selectable);\n this.setVisible(true);\n this.setDisplayed(true);\n return;\n }\n if ((_d = this.overrides) === null || _d === void 0 ? void 0 : _d.removeHidden) {\n this.setDisplayed(selectable);\n return;\n }\n this.setVisible(selectable);\n };\n CheckboxSelectionComponent.prototype.getIsVisible = function () {\n var _a, _b;\n if (this.overrides) {\n return this.overrides.isVisible;\n }\n // column will be missing if groupDisplayType = 'groupRows'\n return (_b = (_a = this.column) === null || _a === void 0 ? void 0 : _a.getColDef()) === null || _b === void 0 ? void 0 : _b.checkboxSelection;\n };\n __decorate$2b([\n RefSelector('eCheckbox')\n ], CheckboxSelectionComponent.prototype, \"eCheckbox\", void 0);\n __decorate$2b([\n PostConstruct\n ], CheckboxSelectionComponent.prototype, \"postConstruct\", null);\n return CheckboxSelectionComponent;\n}(Component));\n\nvar __extends$2q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __values$4 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar DragSourceType;\n(function (DragSourceType) {\n DragSourceType[DragSourceType[\"ToolPanel\"] = 0] = \"ToolPanel\";\n DragSourceType[DragSourceType[\"HeaderCell\"] = 1] = \"HeaderCell\";\n DragSourceType[DragSourceType[\"RowDrag\"] = 2] = \"RowDrag\";\n DragSourceType[DragSourceType[\"ChartPanel\"] = 3] = \"ChartPanel\";\n DragSourceType[DragSourceType[\"AdvancedFilterBuilder\"] = 4] = \"AdvancedFilterBuilder\";\n})(DragSourceType || (DragSourceType = {}));\nvar VerticalDirection;\n(function (VerticalDirection) {\n VerticalDirection[VerticalDirection[\"Up\"] = 0] = \"Up\";\n VerticalDirection[VerticalDirection[\"Down\"] = 1] = \"Down\";\n})(VerticalDirection || (VerticalDirection = {}));\nvar HorizontalDirection;\n(function (HorizontalDirection) {\n HorizontalDirection[HorizontalDirection[\"Left\"] = 0] = \"Left\";\n HorizontalDirection[HorizontalDirection[\"Right\"] = 1] = \"Right\";\n})(HorizontalDirection || (HorizontalDirection = {}));\nvar DragAndDropService = /** @class */ (function (_super) {\n __extends$2q(DragAndDropService, _super);\n function DragAndDropService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.dragSourceAndParamsList = [];\n _this.dropTargets = [];\n return _this;\n }\n DragAndDropService_1 = DragAndDropService;\n DragAndDropService.prototype.init = function () {\n this.ePinnedIcon = createIcon('columnMovePin', this.gridOptionsService, null);\n this.eHideIcon = createIcon('columnMoveHide', this.gridOptionsService, null);\n this.eMoveIcon = createIcon('columnMoveMove', this.gridOptionsService, null);\n this.eLeftIcon = createIcon('columnMoveLeft', this.gridOptionsService, null);\n this.eRightIcon = createIcon('columnMoveRight', this.gridOptionsService, null);\n this.eGroupIcon = createIcon('columnMoveGroup', this.gridOptionsService, null);\n this.eAggregateIcon = createIcon('columnMoveValue', this.gridOptionsService, null);\n this.ePivotIcon = createIcon('columnMovePivot', this.gridOptionsService, null);\n this.eDropNotAllowedIcon = createIcon('dropNotAllowed', this.gridOptionsService, null);\n };\n DragAndDropService.prototype.addDragSource = function (dragSource, allowTouch) {\n if (allowTouch === void 0) { allowTouch = false; }\n var params = {\n eElement: dragSource.eElement,\n dragStartPixels: dragSource.dragStartPixels,\n onDragStart: this.onDragStart.bind(this, dragSource),\n onDragStop: this.onDragStop.bind(this),\n onDragging: this.onDragging.bind(this),\n includeTouch: allowTouch\n };\n this.dragSourceAndParamsList.push({ params: params, dragSource: dragSource });\n this.dragService.addDragSource(params);\n };\n DragAndDropService.prototype.removeDragSource = function (dragSource) {\n var sourceAndParams = this.dragSourceAndParamsList.find(function (item) { return item.dragSource === dragSource; });\n if (sourceAndParams) {\n this.dragService.removeDragSource(sourceAndParams.params);\n removeFromArray(this.dragSourceAndParamsList, sourceAndParams);\n }\n };\n DragAndDropService.prototype.clearDragSourceParamsList = function () {\n var _this = this;\n this.dragSourceAndParamsList.forEach(function (sourceAndParams) { return _this.dragService.removeDragSource(sourceAndParams.params); });\n this.dragSourceAndParamsList.length = 0;\n this.dropTargets.length = 0;\n };\n DragAndDropService.prototype.nudge = function () {\n if (this.dragging) {\n this.onDragging(this.eventLastTime, true);\n }\n };\n DragAndDropService.prototype.onDragStart = function (dragSource, mouseEvent) {\n this.dragging = true;\n this.dragSource = dragSource;\n this.eventLastTime = mouseEvent;\n this.dragItem = this.dragSource.getDragItem();\n this.lastDropTarget = this.dragSource.dragSourceDropTarget;\n if (this.dragSource.onDragStarted) {\n this.dragSource.onDragStarted();\n }\n this.createGhost();\n };\n DragAndDropService.prototype.onDragStop = function (mouseEvent) {\n this.eventLastTime = null;\n this.dragging = false;\n if (this.dragSource.onDragStopped) {\n this.dragSource.onDragStopped();\n }\n if (this.lastDropTarget && this.lastDropTarget.onDragStop) {\n var draggingEvent = this.createDropTargetEvent(this.lastDropTarget, mouseEvent, null, null, false);\n this.lastDropTarget.onDragStop(draggingEvent);\n }\n this.lastDropTarget = null;\n this.dragItem = null;\n this.removeGhost();\n };\n DragAndDropService.prototype.onDragging = function (mouseEvent, fromNudge) {\n var _this = this;\n var _a, _b, _c, _d;\n var hDirection = this.getHorizontalDirection(mouseEvent);\n var vDirection = this.getVerticalDirection(mouseEvent);\n this.eventLastTime = mouseEvent;\n this.positionGhost(mouseEvent);\n // check if mouseEvent intersects with any of the drop targets\n var validDropTargets = this.dropTargets.filter(function (target) { return _this.isMouseOnDropTarget(mouseEvent, target); });\n var dropTarget = this.findCurrentDropTarget(mouseEvent, validDropTargets);\n if (dropTarget !== this.lastDropTarget) {\n this.leaveLastTargetIfExists(mouseEvent, hDirection, vDirection, fromNudge);\n if (this.lastDropTarget !== null && dropTarget === null) {\n (_b = (_a = this.dragSource).onGridExit) === null || _b === void 0 ? void 0 : _b.call(_a, this.dragItem);\n }\n if (this.lastDropTarget === null && dropTarget !== null) {\n (_d = (_c = this.dragSource).onGridEnter) === null || _d === void 0 ? void 0 : _d.call(_c, this.dragItem);\n }\n this.enterDragTargetIfExists(dropTarget, mouseEvent, hDirection, vDirection, fromNudge);\n this.lastDropTarget = dropTarget;\n }\n else if (dropTarget && dropTarget.onDragging) {\n var draggingEvent = this.createDropTargetEvent(dropTarget, mouseEvent, hDirection, vDirection, fromNudge);\n dropTarget.onDragging(draggingEvent);\n }\n };\n DragAndDropService.prototype.getAllContainersFromDropTarget = function (dropTarget) {\n var secondaryContainers = dropTarget.getSecondaryContainers ? dropTarget.getSecondaryContainers() : null;\n var containers = [[dropTarget.getContainer()]];\n return secondaryContainers ? containers.concat(secondaryContainers) : containers;\n };\n DragAndDropService.prototype.allContainersIntersect = function (mouseEvent, containers) {\n var e_1, _a;\n try {\n for (var containers_1 = __values$4(containers), containers_1_1 = containers_1.next(); !containers_1_1.done; containers_1_1 = containers_1.next()) {\n var container = containers_1_1.value;\n var rect = container.getBoundingClientRect();\n // if element is not visible, then width and height are zero\n if (rect.width === 0 || rect.height === 0) {\n return false;\n }\n var horizontalFit = mouseEvent.clientX >= rect.left && mouseEvent.clientX < rect.right;\n var verticalFit = mouseEvent.clientY >= rect.top && mouseEvent.clientY < rect.bottom;\n if (!horizontalFit || !verticalFit) {\n return false;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (containers_1_1 && !containers_1_1.done && (_a = containers_1.return)) _a.call(containers_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return true;\n };\n // checks if the mouse is on the drop target. it checks eContainer and eSecondaryContainers\n DragAndDropService.prototype.isMouseOnDropTarget = function (mouseEvent, dropTarget) {\n var e_2, _a;\n var allContainersFromDropTarget = this.getAllContainersFromDropTarget(dropTarget);\n var mouseOverTarget = false;\n try {\n for (var allContainersFromDropTarget_1 = __values$4(allContainersFromDropTarget), allContainersFromDropTarget_1_1 = allContainersFromDropTarget_1.next(); !allContainersFromDropTarget_1_1.done; allContainersFromDropTarget_1_1 = allContainersFromDropTarget_1.next()) {\n var currentContainers = allContainersFromDropTarget_1_1.value;\n if (this.allContainersIntersect(mouseEvent, currentContainers)) {\n mouseOverTarget = true;\n break;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (allContainersFromDropTarget_1_1 && !allContainersFromDropTarget_1_1.done && (_a = allContainersFromDropTarget_1.return)) _a.call(allContainersFromDropTarget_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (dropTarget.targetContainsSource && !dropTarget.getContainer().contains(this.dragSource.eElement)) {\n return false;\n }\n return mouseOverTarget && dropTarget.isInterestedIn(this.dragSource.type, this.dragSource.eElement);\n };\n DragAndDropService.prototype.findCurrentDropTarget = function (mouseEvent, validDropTargets) {\n var e_3, _a, e_4, _b;\n var len = validDropTargets.length;\n if (len === 0) {\n return null;\n }\n if (len === 1) {\n return validDropTargets[0];\n }\n var rootNode = this.gridOptionsService.getRootNode();\n // elementsFromPoint return a list of elements under\n // the mouseEvent sorted from topMost to bottomMost\n var elementStack = rootNode.elementsFromPoint(mouseEvent.clientX, mouseEvent.clientY);\n try {\n // loop over the sorted elementStack to find which dropTarget comes first\n for (var elementStack_1 = __values$4(elementStack), elementStack_1_1 = elementStack_1.next(); !elementStack_1_1.done; elementStack_1_1 = elementStack_1.next()) {\n var el = elementStack_1_1.value;\n try {\n for (var validDropTargets_1 = (e_4 = void 0, __values$4(validDropTargets)), validDropTargets_1_1 = validDropTargets_1.next(); !validDropTargets_1_1.done; validDropTargets_1_1 = validDropTargets_1.next()) {\n var dropTarget = validDropTargets_1_1.value;\n var containers = flatten(this.getAllContainersFromDropTarget(dropTarget));\n if (containers.indexOf(el) !== -1) {\n return dropTarget;\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (validDropTargets_1_1 && !validDropTargets_1_1.done && (_b = validDropTargets_1.return)) _b.call(validDropTargets_1);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (elementStack_1_1 && !elementStack_1_1.done && (_a = elementStack_1.return)) _a.call(elementStack_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n // we should never hit this point of the code because only\n // valid dropTargets should be provided to this method.\n return null;\n };\n DragAndDropService.prototype.enterDragTargetIfExists = function (dropTarget, mouseEvent, hDirection, vDirection, fromNudge) {\n if (!dropTarget) {\n return;\n }\n if (dropTarget.onDragEnter) {\n var dragEnterEvent = this.createDropTargetEvent(dropTarget, mouseEvent, hDirection, vDirection, fromNudge);\n dropTarget.onDragEnter(dragEnterEvent);\n }\n this.setGhostIcon(dropTarget.getIconName ? dropTarget.getIconName() : null);\n };\n DragAndDropService.prototype.leaveLastTargetIfExists = function (mouseEvent, hDirection, vDirection, fromNudge) {\n if (!this.lastDropTarget) {\n return;\n }\n if (this.lastDropTarget.onDragLeave) {\n var dragLeaveEvent = this.createDropTargetEvent(this.lastDropTarget, mouseEvent, hDirection, vDirection, fromNudge);\n this.lastDropTarget.onDragLeave(dragLeaveEvent);\n }\n this.setGhostIcon(null);\n };\n DragAndDropService.prototype.addDropTarget = function (dropTarget) {\n this.dropTargets.push(dropTarget);\n };\n DragAndDropService.prototype.removeDropTarget = function (dropTarget) {\n this.dropTargets = this.dropTargets.filter(function (target) { return target.getContainer() !== dropTarget.getContainer(); });\n };\n DragAndDropService.prototype.hasExternalDropZones = function () {\n return this.dropTargets.some(function (zones) { return zones.external; });\n };\n DragAndDropService.prototype.findExternalZone = function (params) {\n var externalTargets = this.dropTargets.filter(function (target) { return target.external; });\n return externalTargets.find(function (zone) { return zone.getContainer() === params.getContainer(); }) || null;\n };\n DragAndDropService.prototype.getHorizontalDirection = function (event) {\n var clientX = this.eventLastTime && this.eventLastTime.clientX;\n var eClientX = event.clientX;\n if (clientX === eClientX) {\n return null;\n }\n return clientX > eClientX ? HorizontalDirection.Left : HorizontalDirection.Right;\n };\n DragAndDropService.prototype.getVerticalDirection = function (event) {\n var clientY = this.eventLastTime && this.eventLastTime.clientY;\n var eClientY = event.clientY;\n if (clientY === eClientY) {\n return null;\n }\n return clientY > eClientY ? VerticalDirection.Up : VerticalDirection.Down;\n };\n DragAndDropService.prototype.createDropTargetEvent = function (dropTarget, event, hDirection, vDirection, fromNudge) {\n // localise x and y to the target\n var dropZoneTarget = dropTarget.getContainer();\n var rect = dropZoneTarget.getBoundingClientRect();\n var _a = this, api = _a.gridApi, columnApi = _a.columnApi, dragItem = _a.dragItem, dragSource = _a.dragSource;\n var x = event.clientX - rect.left;\n var y = event.clientY - rect.top;\n return { event: event, x: x, y: y, vDirection: vDirection, hDirection: hDirection, dragSource: dragSource, fromNudge: fromNudge, dragItem: dragItem, api: api, columnApi: columnApi, dropZoneTarget: dropZoneTarget };\n };\n DragAndDropService.prototype.positionGhost = function (event) {\n var ghost = this.eGhost;\n if (!ghost) {\n return;\n }\n var ghostRect = ghost.getBoundingClientRect();\n var ghostHeight = ghostRect.height;\n var browserWidth = getBodyWidth() - 2; // 2px for 1px borderLeft and 1px borderRight\n var browserHeight = getBodyHeight() - 2; // 2px for 1px borderTop and 1px borderBottom\n var offsetParentSize = getElementRectWithOffset(ghost.offsetParent);\n var clientY = event.clientY, clientX = event.clientX;\n var top = (clientY - offsetParentSize.top) - (ghostHeight / 2);\n var left = (clientX - offsetParentSize.left) - 10;\n var eDocument = this.gridOptionsService.getDocument();\n var win = (eDocument.defaultView || window);\n var windowScrollY = win.pageYOffset || eDocument.documentElement.scrollTop;\n var windowScrollX = win.pageXOffset || eDocument.documentElement.scrollLeft;\n // check ghost is not positioned outside of the browser\n if (browserWidth > 0 && ((left + ghost.clientWidth) > (browserWidth + windowScrollX))) {\n left = browserWidth + windowScrollX - ghost.clientWidth;\n }\n if (left < 0) {\n left = 0;\n }\n if (browserHeight > 0 && ((top + ghost.clientHeight) > (browserHeight + windowScrollY))) {\n top = browserHeight + windowScrollY - ghost.clientHeight;\n }\n if (top < 0) {\n top = 0;\n }\n ghost.style.left = left + \"px\";\n ghost.style.top = top + \"px\";\n };\n DragAndDropService.prototype.removeGhost = function () {\n if (this.eGhost && this.eGhostParent) {\n this.eGhostParent.removeChild(this.eGhost);\n }\n this.eGhost = null;\n };\n DragAndDropService.prototype.createGhost = function () {\n this.eGhost = loadTemplate(DragAndDropService_1.GHOST_TEMPLATE);\n this.mouseEventService.stampTopLevelGridCompWithGridInstance(this.eGhost);\n var theme = this.environment.getTheme().theme;\n if (theme) {\n this.eGhost.classList.add(theme);\n }\n this.eGhostIcon = this.eGhost.querySelector('.ag-dnd-ghost-icon');\n this.setGhostIcon(null);\n var eText = this.eGhost.querySelector('.ag-dnd-ghost-label');\n var dragItemName = this.dragSource.dragItemName;\n if (isFunction(dragItemName)) {\n dragItemName = dragItemName();\n }\n eText.innerHTML = escapeString(dragItemName) || '';\n this.eGhost.style.height = '25px';\n this.eGhost.style.top = '20px';\n this.eGhost.style.left = '20px';\n var eDocument = this.gridOptionsService.getDocument();\n var targetEl = null;\n try {\n targetEl = eDocument.fullscreenElement;\n }\n catch (e) {\n // some environments like SalesForce will throw errors\n // simply by trying to read the fullscreenElement property\n }\n finally {\n if (!targetEl) {\n var rootNode = this.gridOptionsService.getRootNode();\n var body = rootNode.querySelector('body');\n if (body) {\n targetEl = body;\n }\n else if (rootNode instanceof ShadowRoot) {\n targetEl = rootNode;\n }\n else {\n targetEl = rootNode === null || rootNode === void 0 ? void 0 : rootNode.documentElement;\n }\n }\n }\n this.eGhostParent = targetEl;\n if (!this.eGhostParent) {\n console.warn('AG Grid: could not find document body, it is needed for dragging columns');\n }\n else {\n this.eGhostParent.appendChild(this.eGhost);\n }\n };\n DragAndDropService.prototype.setGhostIcon = function (iconName, shake) {\n if (shake === void 0) { shake = false; }\n clearElement(this.eGhostIcon);\n var eIcon = null;\n if (!iconName) {\n iconName = this.dragSource.getDefaultIconName ? this.dragSource.getDefaultIconName() : DragAndDropService_1.ICON_NOT_ALLOWED;\n }\n switch (iconName) {\n case DragAndDropService_1.ICON_PINNED:\n eIcon = this.ePinnedIcon;\n break;\n case DragAndDropService_1.ICON_MOVE:\n eIcon = this.eMoveIcon;\n break;\n case DragAndDropService_1.ICON_LEFT:\n eIcon = this.eLeftIcon;\n break;\n case DragAndDropService_1.ICON_RIGHT:\n eIcon = this.eRightIcon;\n break;\n case DragAndDropService_1.ICON_GROUP:\n eIcon = this.eGroupIcon;\n break;\n case DragAndDropService_1.ICON_AGGREGATE:\n eIcon = this.eAggregateIcon;\n break;\n case DragAndDropService_1.ICON_PIVOT:\n eIcon = this.ePivotIcon;\n break;\n case DragAndDropService_1.ICON_NOT_ALLOWED:\n eIcon = this.eDropNotAllowedIcon;\n break;\n case DragAndDropService_1.ICON_HIDE:\n eIcon = this.eHideIcon;\n break;\n }\n this.eGhostIcon.classList.toggle('ag-shake-left-to-right', shake);\n if (eIcon === this.eHideIcon && this.gridOptionsService.is('suppressDragLeaveHidesColumns')) {\n return;\n }\n if (eIcon) {\n this.eGhostIcon.appendChild(eIcon);\n }\n };\n var DragAndDropService_1;\n DragAndDropService.ICON_PINNED = 'pinned';\n DragAndDropService.ICON_MOVE = 'move';\n DragAndDropService.ICON_LEFT = 'left';\n DragAndDropService.ICON_RIGHT = 'right';\n DragAndDropService.ICON_GROUP = 'group';\n DragAndDropService.ICON_AGGREGATE = 'aggregate';\n DragAndDropService.ICON_PIVOT = 'pivot';\n DragAndDropService.ICON_NOT_ALLOWED = 'notAllowed';\n DragAndDropService.ICON_HIDE = 'hide';\n DragAndDropService.GHOST_TEMPLATE = \"
\\n \\n
\\n
\";\n __decorate$2a([\n Autowired('dragService')\n ], DragAndDropService.prototype, \"dragService\", void 0);\n __decorate$2a([\n Autowired('mouseEventService')\n ], DragAndDropService.prototype, \"mouseEventService\", void 0);\n __decorate$2a([\n Autowired('columnApi')\n ], DragAndDropService.prototype, \"columnApi\", void 0);\n __decorate$2a([\n Autowired('gridApi')\n ], DragAndDropService.prototype, \"gridApi\", void 0);\n __decorate$2a([\n PostConstruct\n ], DragAndDropService.prototype, \"init\", null);\n __decorate$2a([\n PreDestroy\n ], DragAndDropService.prototype, \"clearDragSourceParamsList\", null);\n DragAndDropService = DragAndDropService_1 = __decorate$2a([\n Bean('dragAndDropService')\n ], DragAndDropService);\n return DragAndDropService;\n}(BeanStub));\n\nvar __extends$2p = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$29 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RowDragComp = /** @class */ (function (_super) {\n __extends$2p(RowDragComp, _super);\n function RowDragComp(cellValueFn, rowNode, column, customGui, dragStartPixels, suppressVisibilityChange) {\n var _this = _super.call(this) || this;\n _this.cellValueFn = cellValueFn;\n _this.rowNode = rowNode;\n _this.column = column;\n _this.customGui = customGui;\n _this.dragStartPixels = dragStartPixels;\n _this.suppressVisibilityChange = suppressVisibilityChange;\n _this.dragSource = null;\n return _this;\n }\n RowDragComp.prototype.isCustomGui = function () {\n return this.customGui != null;\n };\n RowDragComp.prototype.postConstruct = function () {\n if (!this.customGui) {\n this.setTemplate(/* html */ \"
\");\n this.getGui().appendChild(createIconNoSpan('rowDrag', this.gridOptionsService, null));\n this.addDragSource();\n }\n else {\n this.setDragElement(this.customGui, this.dragStartPixels);\n }\n this.checkCompatibility();\n if (!this.suppressVisibilityChange) {\n var strategy = this.gridOptionsService.is('rowDragManaged') ?\n new ManagedVisibilityStrategy(this, this.beans, this.rowNode, this.column) :\n new NonManagedVisibilityStrategy(this, this.beans, this.rowNode, this.column);\n this.createManagedBean(strategy, this.beans.context);\n }\n };\n RowDragComp.prototype.setDragElement = function (dragElement, dragStartPixels) {\n this.setTemplateFromElement(dragElement);\n this.addDragSource(dragStartPixels);\n };\n RowDragComp.prototype.getSelectedNodes = function () {\n var isRowDragMultiRow = this.gridOptionsService.is('rowDragMultiRow');\n if (!isRowDragMultiRow) {\n return [this.rowNode];\n }\n var selection = this.beans.selectionService.getSelectedNodes();\n return selection.indexOf(this.rowNode) !== -1 ? selection : [this.rowNode];\n };\n // returns true if all compatibility items work out\n RowDragComp.prototype.checkCompatibility = function () {\n var managed = this.gridOptionsService.is('rowDragManaged');\n var treeData = this.gridOptionsService.is('treeData');\n if (treeData && managed) {\n doOnce(function () {\n return console.warn('AG Grid: If using row drag with tree data, you cannot have rowDragManaged=true');\n }, 'RowDragComp.managedAndTreeData');\n }\n };\n RowDragComp.prototype.getDragItem = function () {\n return {\n rowNode: this.rowNode,\n rowNodes: this.getSelectedNodes(),\n columns: this.column ? [this.column] : undefined,\n defaultTextValue: this.cellValueFn(),\n };\n };\n RowDragComp.prototype.getRowDragText = function (column) {\n if (column) {\n var colDef = column.getColDef();\n if (colDef.rowDragText) {\n return colDef.rowDragText;\n }\n }\n return this.gridOptionsService.get('rowDragText');\n };\n RowDragComp.prototype.addDragSource = function (dragStartPixels) {\n var _this = this;\n if (dragStartPixels === void 0) { dragStartPixels = 4; }\n // if this is changing the drag element, delete the previous dragSource\n if (this.dragSource) {\n this.removeDragSource();\n }\n var rowDragText = this.getRowDragText(this.column);\n var translate = this.localeService.getLocaleTextFunc();\n this.dragSource = {\n type: DragSourceType.RowDrag,\n eElement: this.getGui(),\n dragItemName: function () {\n var _a;\n var dragItem = _this.getDragItem();\n var dragItemCount = ((_a = dragItem.rowNodes) === null || _a === void 0 ? void 0 : _a.length) || 1;\n if (rowDragText) {\n return rowDragText(dragItem, dragItemCount);\n }\n return dragItemCount === 1 ? _this.cellValueFn() : dragItemCount + \" \" + translate('rowDragRows', 'rows');\n },\n getDragItem: function () { return _this.getDragItem(); },\n dragStartPixels: dragStartPixels,\n dragSourceDomDataKey: this.gridOptionsService.getDomDataKey()\n };\n this.beans.dragAndDropService.addDragSource(this.dragSource, true);\n };\n RowDragComp.prototype.removeDragSource = function () {\n if (this.dragSource) {\n this.beans.dragAndDropService.removeDragSource(this.dragSource);\n }\n this.dragSource = null;\n };\n __decorate$29([\n Autowired('beans')\n ], RowDragComp.prototype, \"beans\", void 0);\n __decorate$29([\n PostConstruct\n ], RowDragComp.prototype, \"postConstruct\", null);\n __decorate$29([\n PreDestroy\n ], RowDragComp.prototype, \"removeDragSource\", null);\n return RowDragComp;\n}(Component));\nvar VisibilityStrategy = /** @class */ (function (_super) {\n __extends$2p(VisibilityStrategy, _super);\n function VisibilityStrategy(parent, rowNode, column) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n _this.rowNode = rowNode;\n _this.column = column;\n return _this;\n }\n VisibilityStrategy.prototype.setDisplayedOrVisible = function (neverDisplayed) {\n var displayedOptions = { skipAriaHidden: true };\n if (neverDisplayed) {\n this.parent.setDisplayed(false, displayedOptions);\n }\n else {\n var shown = true;\n var isShownSometimes = false;\n if (this.column) {\n shown = this.column.isRowDrag(this.rowNode) || this.parent.isCustomGui();\n isShownSometimes = isFunction(this.column.getColDef().rowDrag);\n }\n // if shown sometimes, them some rows can have drag handle while other don't,\n // so we use setVisible to keep the handles horizontally aligned (as setVisible\n // keeps the empty space, whereas setDisplayed looses the space)\n if (isShownSometimes) {\n this.parent.setDisplayed(true, displayedOptions);\n this.parent.setVisible(shown, displayedOptions);\n }\n else {\n this.parent.setDisplayed(shown, displayedOptions);\n this.parent.setVisible(true, displayedOptions);\n }\n }\n };\n return VisibilityStrategy;\n}(BeanStub));\n// when non managed, the visibility depends on suppressRowDrag property only\nvar NonManagedVisibilityStrategy = /** @class */ (function (_super) {\n __extends$2p(NonManagedVisibilityStrategy, _super);\n function NonManagedVisibilityStrategy(parent, beans, rowNode, column) {\n var _this = _super.call(this, parent, rowNode, column) || this;\n _this.beans = beans;\n return _this;\n }\n NonManagedVisibilityStrategy.prototype.postConstruct = function () {\n this.addManagedPropertyListener('suppressRowDrag', this.onSuppressRowDrag.bind(this));\n // in case data changes, then we need to update visibility of drag item\n this.addManagedListener(this.rowNode, RowNode.EVENT_DATA_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_CELL_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_CELL_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.beans.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.workOutVisibility.bind(this));\n this.workOutVisibility();\n };\n NonManagedVisibilityStrategy.prototype.onSuppressRowDrag = function () {\n this.workOutVisibility();\n };\n NonManagedVisibilityStrategy.prototype.workOutVisibility = function () {\n // only show the drag if both sort and filter are not present\n var neverDisplayed = this.gridOptionsService.is('suppressRowDrag');\n this.setDisplayedOrVisible(neverDisplayed);\n };\n __decorate$29([\n PostConstruct\n ], NonManagedVisibilityStrategy.prototype, \"postConstruct\", null);\n return NonManagedVisibilityStrategy;\n}(VisibilityStrategy));\n// when managed, the visibility depends on sort, filter and row group, as well as suppressRowDrag property\nvar ManagedVisibilityStrategy = /** @class */ (function (_super) {\n __extends$2p(ManagedVisibilityStrategy, _super);\n function ManagedVisibilityStrategy(parent, beans, rowNode, column) {\n var _this = _super.call(this, parent, rowNode, column) || this;\n _this.beans = beans;\n return _this;\n }\n ManagedVisibilityStrategy.prototype.postConstruct = function () {\n // we do not show the component if sort, filter or grouping is active\n this.addManagedListener(this.beans.eventService, Events.EVENT_SORT_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.beans.eventService, Events.EVENT_FILTER_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.beans.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.beans.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.workOutVisibility.bind(this));\n // in case data changes, then we need to update visibility of drag item\n this.addManagedListener(this.rowNode, RowNode.EVENT_DATA_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_CELL_CHANGED, this.workOutVisibility.bind(this));\n this.addManagedPropertyListener('suppressRowDrag', this.onSuppressRowDrag.bind(this));\n this.workOutVisibility();\n };\n ManagedVisibilityStrategy.prototype.onSuppressRowDrag = function () {\n this.workOutVisibility();\n };\n ManagedVisibilityStrategy.prototype.workOutVisibility = function () {\n // only show the drag if both sort and filter are not present\n var gridBodyCon = this.beans.ctrlsService.getGridBodyCtrl();\n var rowDragFeature = gridBodyCon.getRowDragFeature();\n var shouldPreventRowMove = rowDragFeature && rowDragFeature.shouldPreventRowMove();\n var suppressRowDrag = this.gridOptionsService.is('suppressRowDrag');\n var hasExternalDropZones = this.beans.dragAndDropService.hasExternalDropZones();\n var neverDisplayed = (shouldPreventRowMove && !hasExternalDropZones) || suppressRowDrag;\n this.setDisplayedOrVisible(neverDisplayed);\n };\n __decorate$29([\n PostConstruct\n ], ManagedVisibilityStrategy.prototype, \"postConstruct\", null);\n return ManagedVisibilityStrategy;\n}(VisibilityStrategy));\n\nvar __extends$2o = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$e = (undefined && undefined.__assign) || function () {\n __assign$e = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$e.apply(this, arguments);\n};\nvar __decorate$28 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GroupCellRendererCtrl = /** @class */ (function (_super) {\n __extends$2o(GroupCellRendererCtrl, _super);\n function GroupCellRendererCtrl() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GroupCellRendererCtrl.prototype.init = function (comp, eGui, eCheckbox, eExpanded, eContracted, compClass, params) {\n this.params = params;\n this.eGui = eGui;\n this.eCheckbox = eCheckbox;\n this.eExpanded = eExpanded;\n this.eContracted = eContracted;\n this.comp = comp;\n this.compClass = compClass;\n var node = params.node, value = params.value, colDef = params.colDef;\n var topLevelFooter = this.isTopLevelFooter();\n // logic for skipping cells follows, never skip top level footer cell.\n if (!topLevelFooter) {\n var embeddedRowMismatch = this.isEmbeddedRowMismatch();\n if (embeddedRowMismatch) {\n return;\n }\n // when group column is multiple group columns, don't render for empty checkboxes\n // as UX becomes overloaded with empty cells including checkboxes.\n var isSingleGroupColumn = (colDef === null || colDef === void 0 ? void 0 : colDef.showRowGroup) === true;\n var isNullValueAndNotMaster = value == null && !node.master;\n if (!isSingleGroupColumn && isNullValueAndNotMaster) {\n return;\n }\n // this footer should only be non-top level. Don't need to check groupIncludeFooter\n // as we won't have footer rows in that instance.\n if (node.footer && this.gridOptionsService.is('groupHideOpenParents')) {\n var showRowGroup = colDef && colDef.showRowGroup;\n var rowGroupColumnId = node.rowGroupColumn && node.rowGroupColumn.getColId();\n // if the groupCellRenderer is inside of a footer and groupHideOpenParents is true\n // we should only display the groupCellRenderer if the current column is the rowGroupedColumn\n if (showRowGroup !== rowGroupColumnId) {\n return;\n }\n }\n }\n this.setupShowingValueForOpenedParent();\n this.findDisplayedGroupNode();\n this.addFullWidthRowDraggerIfNeeded();\n this.addExpandAndContract();\n this.addCheckboxIfNeeded();\n this.addValueElement();\n this.setupIndent();\n this.refreshAriaExpanded();\n };\n GroupCellRendererCtrl.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n // property cleanup to avoid memory leaks\n this.expandListener = null;\n };\n GroupCellRendererCtrl.prototype.refreshAriaExpanded = function () {\n var _a = this.params, node = _a.node, eParentOfValue = _a.eParentOfValue;\n if (this.expandListener) {\n this.expandListener = this.expandListener();\n }\n if (!this.isExpandable()) {\n removeAriaExpanded(eParentOfValue);\n return;\n }\n var listener = function () {\n // for react, we don't use JSX, as setting attributes via jsx is slower\n setAriaExpanded(eParentOfValue, !!node.expanded);\n };\n this.expandListener = this.addManagedListener(node, RowNode.EVENT_EXPANDED_CHANGED, listener) || null;\n listener();\n };\n GroupCellRendererCtrl.prototype.isTopLevelFooter = function () {\n if (!this.gridOptionsService.is('groupIncludeTotalFooter')) {\n return false;\n }\n if (this.params.value != null || this.params.node.level != -1) {\n return false;\n }\n // at this point, we know it's the root node and there is no value present, so it's a footer cell.\n // the only thing to work out is if we are displaying groups across multiple\n // columns (groupDisplayType: 'multipleColumns'), we only want 'total' to appear in the first column.\n var colDef = this.params.colDef;\n var doingFullWidth = colDef == null;\n if (doingFullWidth) {\n return true;\n }\n if (colDef.showRowGroup === true) {\n return true;\n }\n var rowGroupCols = this.columnModel.getRowGroupColumns();\n // this is a sanity check, rowGroupCols should always be present\n if (!rowGroupCols || rowGroupCols.length === 0) {\n return true;\n }\n var firstRowGroupCol = rowGroupCols[0];\n return firstRowGroupCol.getId() === colDef.showRowGroup;\n };\n // if we are doing embedded full width rows, we only show the renderer when\n // in the body, or if pinning in the pinned section, or if pinning and RTL,\n // in the right section. otherwise we would have the cell repeated in each section.\n GroupCellRendererCtrl.prototype.isEmbeddedRowMismatch = function () {\n if (!this.params.fullWidth || !this.gridOptionsService.is('embedFullWidthRows')) {\n return false;\n }\n var pinnedLeftCell = this.params.pinned === 'left';\n var pinnedRightCell = this.params.pinned === 'right';\n var bodyCell = !pinnedLeftCell && !pinnedRightCell;\n if (this.gridOptionsService.is('enableRtl')) {\n if (this.columnModel.isPinningLeft()) {\n return !pinnedRightCell;\n }\n return !bodyCell;\n }\n if (this.columnModel.isPinningLeft()) {\n return !pinnedLeftCell;\n }\n return !bodyCell;\n };\n GroupCellRendererCtrl.prototype.findDisplayedGroupNode = function () {\n var column = this.params.column;\n var rowNode = this.params.node;\n if (this.showingValueForOpenedParent) {\n var pointer = rowNode.parent;\n while (pointer != null) {\n if (pointer.rowGroupColumn && column.isRowGroupDisplayed(pointer.rowGroupColumn.getId())) {\n this.displayedGroupNode = pointer;\n break;\n }\n pointer = pointer.parent;\n }\n }\n // if we didn't find a displayed group, set it to the row node\n if (missing(this.displayedGroupNode)) {\n this.displayedGroupNode = rowNode;\n }\n };\n GroupCellRendererCtrl.prototype.setupShowingValueForOpenedParent = function () {\n // note - this code depends on sortService.updateGroupDataForHiddenOpenParents, where group data\n // is updated to reflect the dragged down parents\n var rowNode = this.params.node;\n var column = this.params.column;\n if (!this.gridOptionsService.is('groupHideOpenParents')) {\n this.showingValueForOpenedParent = false;\n return;\n }\n // hideOpenParents means rowNode.groupData can have data for the group this column is displaying, even though\n // this rowNode isn't grouping by the column we are displaying\n // if no groupData at all, we are not showing a parent value\n if (!rowNode.groupData) {\n this.showingValueForOpenedParent = false;\n return;\n }\n // this is the normal case, in that we are showing a group for which this column is configured. note that\n // this means the Row Group is closed (if it was open, we would not be displaying it)\n var showingGroupNode = rowNode.rowGroupColumn != null;\n if (showingGroupNode) {\n var keyOfGroupingColumn = rowNode.rowGroupColumn.getId();\n var configuredToShowThisGroupLevel = column.isRowGroupDisplayed(keyOfGroupingColumn);\n // if showing group as normal, we didn't take group info from parent\n if (configuredToShowThisGroupLevel) {\n this.showingValueForOpenedParent = false;\n return;\n }\n }\n // see if we are showing a Group Value for the Displayed Group. if we are showing a group value, and this Row Node\n // is not grouping by this Displayed Group, we must of gotten the value from a parent node\n var valPresent = rowNode.groupData[column.getId()] != null;\n this.showingValueForOpenedParent = valPresent;\n };\n GroupCellRendererCtrl.prototype.addValueElement = function () {\n if (this.displayedGroupNode.footer) {\n this.addFooterValue();\n }\n else {\n this.addGroupValue();\n this.addChildCount();\n }\n };\n GroupCellRendererCtrl.prototype.addGroupValue = function () {\n // we try and use the cellRenderer of the column used for the grouping if we can\n var paramsAdjusted = this.adjustParamsWithDetailsFromRelatedColumn();\n var innerCompDetails = this.getInnerCompDetails(paramsAdjusted);\n var valueFormatted = paramsAdjusted.valueFormatted, value = paramsAdjusted.value;\n var valueWhenNoRenderer = valueFormatted;\n if (valueWhenNoRenderer == null) {\n if (value === '' && this.params.node.group) {\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n valueWhenNoRenderer = localeTextFunc('blanks', '(Blanks)');\n }\n else {\n valueWhenNoRenderer = value !== null && value !== void 0 ? value : null;\n }\n }\n this.comp.setInnerRenderer(innerCompDetails, valueWhenNoRenderer);\n };\n GroupCellRendererCtrl.prototype.adjustParamsWithDetailsFromRelatedColumn = function () {\n var relatedColumn = this.displayedGroupNode.rowGroupColumn;\n var column = this.params.column;\n if (!relatedColumn) {\n return this.params;\n }\n var notFullWidth = column != null;\n if (notFullWidth) {\n var showingThisRowGroup = column.isRowGroupDisplayed(relatedColumn.getId());\n if (!showingThisRowGroup) {\n return this.params;\n }\n }\n var params = this.params;\n var _a = this.params, value = _a.value, node = _a.node;\n var valueFormatted = this.valueFormatterService.formatValue(relatedColumn, node, value);\n // we don't update the original params, as they could of come through React,\n // as react has RowGroupCellRenderer, which means the params could be props which\n // would be read only\n var paramsAdjusted = __assign$e(__assign$e({}, params), { valueFormatted: valueFormatted });\n return paramsAdjusted;\n };\n GroupCellRendererCtrl.prototype.addFooterValue = function () {\n var footerValueGetter = this.params.footerValueGetter;\n var footerValue = '';\n if (footerValueGetter) {\n // params is same as we were given, except we set the value as the item to display\n var paramsClone = cloneObject(this.params);\n paramsClone.value = this.params.value;\n if (typeof footerValueGetter === 'function') {\n footerValue = footerValueGetter(paramsClone);\n }\n else if (typeof footerValueGetter === 'string') {\n footerValue = this.expressionService.evaluate(footerValueGetter, paramsClone);\n }\n else {\n console.warn('AG Grid: footerValueGetter should be either a function or a string (expression)');\n }\n }\n else {\n footerValue = 'Total ' + (this.params.value != null ? this.params.value : '');\n }\n var innerCompDetails = this.getInnerCompDetails(this.params);\n this.comp.setInnerRenderer(innerCompDetails, footerValue);\n };\n GroupCellRendererCtrl.prototype.getInnerCompDetails = function (params) {\n var _this = this;\n // for full width rows, we don't do any of the below\n if (params.fullWidth) {\n return this.userComponentFactory.getFullWidthGroupRowInnerCellRenderer(this.gridOptionsService.get('groupRowRendererParams'), params);\n }\n // when grouping, the normal case is we use the cell renderer of the grouped column. eg if grouping by country\n // and then rating, we will use the country cell renderer for each country group row and likewise the rating\n // cell renderer for each rating group row.\n //\n // however if the user has innerCellRenderer defined, this gets preference and we don't use cell renderers\n // of the grouped columns.\n //\n // so we check and use in the following order:\n //\n // 1) thisColDef.cellRendererParams.innerRenderer of the column showing the groups (eg auto group column)\n // 2) groupedColDef.cellRenderer of the grouped column\n // 3) groupedColDef.cellRendererParams.innerRenderer\n // we check if cell renderer provided for the group cell renderer, eg colDef.cellRendererParams.innerRenderer\n var innerCompDetails = this.userComponentFactory\n .getInnerRendererDetails(params, params);\n // avoid using GroupCellRenderer again, otherwise stack overflow, as we insert same renderer again and again.\n // this covers off chance user is grouping by a column that is also configured with GroupCellRenderer\n var isGroupRowRenderer = function (details) { return details && details.componentClass == _this.compClass; };\n if (innerCompDetails && !isGroupRowRenderer(innerCompDetails)) {\n // use the renderer defined in cellRendererParams.innerRenderer\n return innerCompDetails;\n }\n var relatedColumn = this.displayedGroupNode.rowGroupColumn;\n var relatedColDef = relatedColumn ? relatedColumn.getColDef() : undefined;\n if (!relatedColDef) {\n return;\n }\n // otherwise see if we can use the cellRenderer of the column we are grouping by\n var relatedCompDetails = this.userComponentFactory\n .getCellRendererDetails(relatedColDef, params);\n if (relatedCompDetails && !isGroupRowRenderer(relatedCompDetails)) {\n // Only if the original column is using a specific renderer, it it is a using a DEFAULT one ignore it\n return relatedCompDetails;\n }\n if (isGroupRowRenderer(relatedCompDetails) &&\n relatedColDef.cellRendererParams &&\n relatedColDef.cellRendererParams.innerRenderer) {\n // edge case - this comes from a column which has been grouped dynamically, that has a renderer 'group'\n // and has an inner cell renderer\n var res = this.userComponentFactory.getInnerRendererDetails(relatedColDef.cellRendererParams, params);\n return res;\n }\n };\n GroupCellRendererCtrl.prototype.addChildCount = function () {\n // only include the child count if it's included, eg if user doing custom aggregation,\n // then this could be left out, or set to -1, ie no child count\n if (this.params.suppressCount) {\n return;\n }\n this.addManagedListener(this.displayedGroupNode, RowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED, this.updateChildCount.bind(this));\n // filtering changes the child count, so need to cater for it\n this.updateChildCount();\n };\n GroupCellRendererCtrl.prototype.updateChildCount = function () {\n var allChildrenCount = this.displayedGroupNode.allChildrenCount;\n var showingGroupForThisNode = this.isShowRowGroupForThisRow();\n var showCount = showingGroupForThisNode && allChildrenCount != null && allChildrenCount >= 0;\n var countString = showCount ? \"(\" + allChildrenCount + \")\" : \"\";\n this.comp.setChildCount(countString);\n };\n GroupCellRendererCtrl.prototype.isShowRowGroupForThisRow = function () {\n if (this.gridOptionsService.is('treeData')) {\n return true;\n }\n var rowGroupColumn = this.displayedGroupNode.rowGroupColumn;\n if (!rowGroupColumn) {\n return false;\n }\n // column is null for fullWidthRows\n var column = this.params.column;\n var thisColumnIsInterested = column == null || column.isRowGroupDisplayed(rowGroupColumn.getId());\n return thisColumnIsInterested;\n };\n GroupCellRendererCtrl.prototype.addExpandAndContract = function () {\n var _a;\n var params = this.params;\n var eExpandedIcon = createIconNoSpan('groupExpanded', this.gridOptionsService, null);\n var eContractedIcon = createIconNoSpan('groupContracted', this.gridOptionsService, null);\n if (eExpandedIcon) {\n this.eExpanded.appendChild(eExpandedIcon);\n }\n if (eContractedIcon) {\n this.eContracted.appendChild(eContractedIcon);\n }\n var eGroupCell = params.eGridCell;\n // if editing groups, then double click is to start editing\n var isDoubleClickEdit = ((_a = this.params.column) === null || _a === void 0 ? void 0 : _a.isCellEditable(params.node)) && this.gridOptionsService.is('enableGroupEdit');\n if (!isDoubleClickEdit && this.isExpandable() && !params.suppressDoubleClickExpand) {\n this.addManagedListener(eGroupCell, 'dblclick', this.onCellDblClicked.bind(this));\n }\n this.addManagedListener(this.eExpanded, 'click', this.onExpandClicked.bind(this));\n this.addManagedListener(this.eContracted, 'click', this.onExpandClicked.bind(this));\n // expand / contract as the user hits enter\n this.addManagedListener(eGroupCell, 'keydown', this.onKeyDown.bind(this));\n this.addManagedListener(params.node, RowNode.EVENT_EXPANDED_CHANGED, this.showExpandAndContractIcons.bind(this));\n this.showExpandAndContractIcons();\n // because we don't show the expand / contract when there are no children, we need to check every time\n // the number of children change.\n var expandableChangedListener = this.onRowNodeIsExpandableChanged.bind(this);\n this.addManagedListener(this.displayedGroupNode, RowNode.EVENT_ALL_CHILDREN_COUNT_CHANGED, expandableChangedListener);\n this.addManagedListener(this.displayedGroupNode, RowNode.EVENT_MASTER_CHANGED, expandableChangedListener);\n this.addManagedListener(this.displayedGroupNode, RowNode.EVENT_GROUP_CHANGED, expandableChangedListener);\n this.addManagedListener(this.displayedGroupNode, RowNode.EVENT_HAS_CHILDREN_CHANGED, expandableChangedListener);\n };\n GroupCellRendererCtrl.prototype.onExpandClicked = function (mouseEvent) {\n if (isStopPropagationForAgGrid(mouseEvent)) {\n return;\n }\n // so if we expand a node, it does not also get selected.\n stopPropagationForAgGrid(mouseEvent);\n this.onExpandOrContract(mouseEvent);\n };\n GroupCellRendererCtrl.prototype.onExpandOrContract = function (e) {\n // must use the displayedGroup, so if data was dragged down, we expand the parent, not this row\n var rowNode = this.displayedGroupNode;\n var nextExpandState = !rowNode.expanded;\n if (!nextExpandState && rowNode.sticky) {\n this.scrollToStickyNode(rowNode);\n }\n rowNode.setExpanded(nextExpandState, e);\n };\n GroupCellRendererCtrl.prototype.scrollToStickyNode = function (rowNode) {\n var gridBodyCtrl = this.ctrlsService.getGridBodyCtrl();\n var scrollFeature = gridBodyCtrl.getScrollFeature();\n scrollFeature.setVerticalScrollPosition(rowNode.rowTop - rowNode.stickyRowTop);\n };\n GroupCellRendererCtrl.prototype.isExpandable = function () {\n if (this.showingValueForOpenedParent) {\n return true;\n }\n var rowNode = this.displayedGroupNode;\n var reducedLeafNode = this.columnModel.isPivotMode() && rowNode.leafGroup;\n var expandableGroup = rowNode.isExpandable() && !rowNode.footer && !reducedLeafNode;\n if (!expandableGroup) {\n return false;\n }\n // column is null for fullWidthRows\n var column = this.params.column;\n var displayingForOneColumnOnly = column != null && typeof column.getColDef().showRowGroup === 'string';\n if (displayingForOneColumnOnly) {\n var showing = this.isShowRowGroupForThisRow();\n return showing;\n }\n return true;\n };\n GroupCellRendererCtrl.prototype.showExpandAndContractIcons = function () {\n var _a = this, params = _a.params, displayedGroup = _a.displayedGroupNode, columnModel = _a.columnModel;\n var node = params.node;\n var isExpandable = this.isExpandable();\n if (isExpandable) {\n // if expandable, show one based on expand state.\n // if we were dragged down, means our parent is always expanded\n var expanded = this.showingValueForOpenedParent ? true : node.expanded;\n this.comp.setExpandedDisplayed(expanded);\n this.comp.setContractedDisplayed(!expanded);\n }\n else {\n // it not expandable, show neither\n this.comp.setExpandedDisplayed(false);\n this.comp.setContractedDisplayed(false);\n }\n // compensation padding for leaf nodes, so there is blank space instead of the expand icon\n var pivotMode = columnModel.isPivotMode();\n var pivotModeAndLeafGroup = pivotMode && displayedGroup.leafGroup;\n var addExpandableCss = isExpandable && !pivotModeAndLeafGroup;\n var isTotalFooterNode = node.footer && node.level === -1;\n this.comp.addOrRemoveCssClass('ag-cell-expandable', addExpandableCss);\n this.comp.addOrRemoveCssClass('ag-row-group', addExpandableCss);\n if (pivotMode) {\n this.comp.addOrRemoveCssClass('ag-pivot-leaf-group', pivotModeAndLeafGroup);\n }\n else if (!isTotalFooterNode) {\n this.comp.addOrRemoveCssClass('ag-row-group-leaf-indent', !addExpandableCss);\n }\n };\n GroupCellRendererCtrl.prototype.onRowNodeIsExpandableChanged = function () {\n // maybe if no children now, we should hide the expand / contract icons\n this.showExpandAndContractIcons();\n // if we have no children, this impacts the indent\n this.setIndent();\n this.refreshAriaExpanded();\n };\n GroupCellRendererCtrl.prototype.setupIndent = function () {\n // only do this if an indent - as this overwrites the padding that\n // the theme set, which will make things look 'not aligned' for the\n // first group level.\n var node = this.params.node;\n var suppressPadding = this.params.suppressPadding;\n if (!suppressPadding) {\n this.addManagedListener(node, RowNode.EVENT_UI_LEVEL_CHANGED, this.setIndent.bind(this));\n this.setIndent();\n }\n };\n GroupCellRendererCtrl.prototype.setIndent = function () {\n if (this.gridOptionsService.is('groupHideOpenParents')) {\n return;\n }\n var params = this.params;\n var rowNode = params.node;\n // if we are only showing one group column, we don't want to be indenting based on level\n var fullWithRow = !!params.colDef;\n var treeData = this.gridOptionsService.is('treeData');\n var manyDimensionThisColumn = !fullWithRow || treeData || params.colDef.showRowGroup === true;\n var paddingCount = manyDimensionThisColumn ? rowNode.uiLevel : 0;\n if (this.indentClass) {\n this.comp.addOrRemoveCssClass(this.indentClass, false);\n }\n this.indentClass = 'ag-row-group-indent-' + paddingCount;\n this.comp.addOrRemoveCssClass(this.indentClass, true);\n };\n GroupCellRendererCtrl.prototype.addFullWidthRowDraggerIfNeeded = function () {\n var _this = this;\n if (!this.params.fullWidth || !this.params.rowDrag) {\n return;\n }\n var rowDragComp = new RowDragComp(function () { return _this.params.value; }, this.params.node);\n this.createManagedBean(rowDragComp, this.context);\n this.eGui.insertAdjacentElement('afterbegin', rowDragComp.getGui());\n };\n GroupCellRendererCtrl.prototype.isUserWantsSelected = function () {\n var paramsCheckbox = this.params.checkbox;\n // if a function, we always return true as change detection can show or hide the checkbox.\n return typeof paramsCheckbox === 'function' || paramsCheckbox === true;\n };\n GroupCellRendererCtrl.prototype.addCheckboxIfNeeded = function () {\n var _this = this;\n var rowNode = this.displayedGroupNode;\n var checkboxNeeded = this.isUserWantsSelected() &&\n // footers cannot be selected\n !rowNode.footer &&\n // pinned rows cannot be selected\n !rowNode.rowPinned &&\n // details cannot be selected\n !rowNode.detail;\n if (checkboxNeeded) {\n var cbSelectionComponent_1 = new CheckboxSelectionComponent();\n this.getContext().createBean(cbSelectionComponent_1);\n cbSelectionComponent_1.init({\n rowNode: this.params.node,\n column: this.params.column,\n overrides: {\n isVisible: this.params.checkbox,\n callbackParams: this.params,\n removeHidden: true,\n },\n });\n this.eCheckbox.appendChild(cbSelectionComponent_1.getGui());\n this.addDestroyFunc(function () { return _this.getContext().destroyBean(cbSelectionComponent_1); });\n }\n this.comp.setCheckboxVisible(checkboxNeeded);\n };\n GroupCellRendererCtrl.prototype.onKeyDown = function (event) {\n var isEnterKey = event.key === KeyCode.ENTER;\n if (!isEnterKey || this.params.suppressEnterExpand) {\n return;\n }\n var cellEditable = this.params.column && this.params.column.isCellEditable(this.params.node);\n if (cellEditable) {\n return;\n }\n this.onExpandOrContract(event);\n };\n GroupCellRendererCtrl.prototype.onCellDblClicked = function (mouseEvent) {\n if (isStopPropagationForAgGrid(mouseEvent)) {\n return;\n }\n // we want to avoid acting on double click events on the expand / contract icon,\n // as that icons already has expand / collapse functionality on it. otherwise if\n // the icon was double clicked, we would get 'click', 'click', 'dblclick' which\n // is open->close->open, however double click should be open->close only.\n var targetIsExpandIcon = isElementInEventPath(this.eExpanded, mouseEvent)\n || isElementInEventPath(this.eContracted, mouseEvent);\n if (!targetIsExpandIcon) {\n this.onExpandOrContract(mouseEvent);\n }\n };\n __decorate$28([\n Autowired('expressionService')\n ], GroupCellRendererCtrl.prototype, \"expressionService\", void 0);\n __decorate$28([\n Autowired('valueFormatterService')\n ], GroupCellRendererCtrl.prototype, \"valueFormatterService\", void 0);\n __decorate$28([\n Autowired('columnModel')\n ], GroupCellRendererCtrl.prototype, \"columnModel\", void 0);\n __decorate$28([\n Autowired('userComponentFactory')\n ], GroupCellRendererCtrl.prototype, \"userComponentFactory\", void 0);\n __decorate$28([\n Autowired(\"ctrlsService\")\n ], GroupCellRendererCtrl.prototype, \"ctrlsService\", void 0);\n return GroupCellRendererCtrl;\n}(BeanStub));\n\nvar __extends$2n = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$27 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GroupCellRenderer = /** @class */ (function (_super) {\n __extends$2n(GroupCellRenderer, _super);\n function GroupCellRenderer() {\n return _super.call(this, GroupCellRenderer.TEMPLATE) || this;\n }\n GroupCellRenderer.prototype.init = function (params) {\n var _this = this;\n var compProxy = {\n setInnerRenderer: function (compDetails, valueToDisplay) { return _this.setRenderDetails(compDetails, valueToDisplay); },\n setChildCount: function (count) { return _this.eChildCount.innerHTML = count; },\n addOrRemoveCssClass: function (cssClass, value) { return _this.addOrRemoveCssClass(cssClass, value); },\n setContractedDisplayed: function (expanded) { return setDisplayed(_this.eContracted, expanded); },\n setExpandedDisplayed: function (expanded) { return setDisplayed(_this.eExpanded, expanded); },\n setCheckboxVisible: function (visible) { return _this.eCheckbox.classList.toggle('ag-invisible', !visible); }\n };\n var ctrl = this.createManagedBean(new GroupCellRendererCtrl());\n var fullWidth = !params.colDef;\n var eGui = this.getGui();\n ctrl.init(compProxy, eGui, this.eCheckbox, this.eExpanded, this.eContracted, this.constructor, params);\n if (fullWidth) {\n setAriaRole(eGui, 'gridcell');\n }\n };\n GroupCellRenderer.prototype.setRenderDetails = function (compDetails, valueToDisplay) {\n var _this = this;\n if (compDetails) {\n var componentPromise = compDetails.newAgStackInstance();\n if (!componentPromise) {\n return;\n }\n componentPromise.then(function (comp) {\n if (!comp) {\n return;\n }\n var destroyComp = function () { return _this.context.destroyBean(comp); };\n if (_this.isAlive()) {\n _this.eValue.appendChild(comp.getGui());\n _this.addDestroyFunc(destroyComp);\n }\n else {\n destroyComp();\n }\n });\n }\n else {\n this.eValue.innerText = valueToDisplay;\n }\n };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to have public here instead of private or protected\n GroupCellRenderer.prototype.destroy = function () {\n this.getContext().destroyBean(this.innerCellRenderer);\n _super.prototype.destroy.call(this);\n };\n GroupCellRenderer.prototype.refresh = function () {\n return false;\n };\n GroupCellRenderer.TEMPLATE = \"\\n \\n \\n \\n \\n \\n \";\n __decorate$27([\n RefSelector('eExpanded')\n ], GroupCellRenderer.prototype, \"eExpanded\", void 0);\n __decorate$27([\n RefSelector('eContracted')\n ], GroupCellRenderer.prototype, \"eContracted\", void 0);\n __decorate$27([\n RefSelector('eCheckbox')\n ], GroupCellRenderer.prototype, \"eCheckbox\", void 0);\n __decorate$27([\n RefSelector('eValue')\n ], GroupCellRenderer.prototype, \"eValue\", void 0);\n __decorate$27([\n RefSelector('eChildCount')\n ], GroupCellRenderer.prototype, \"eChildCount\", void 0);\n return GroupCellRenderer;\n}(Component));\n\nvar __extends$2m = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$26 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar LoadingCellRenderer = /** @class */ (function (_super) {\n __extends$2m(LoadingCellRenderer, _super);\n function LoadingCellRenderer() {\n return _super.call(this, LoadingCellRenderer.TEMPLATE) || this;\n }\n LoadingCellRenderer.prototype.init = function (params) {\n params.node.failedLoad ? this.setupFailed() : this.setupLoading();\n };\n LoadingCellRenderer.prototype.setupFailed = function () {\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n this.eLoadingText.innerText = localeTextFunc('loadingError', 'ERR');\n };\n LoadingCellRenderer.prototype.setupLoading = function () {\n var eLoadingIcon = createIconNoSpan('groupLoading', this.gridOptionsService, null);\n if (eLoadingIcon) {\n this.eLoadingIcon.appendChild(eLoadingIcon);\n }\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n this.eLoadingText.innerText = localeTextFunc('loadingOoo', 'Loading');\n };\n LoadingCellRenderer.prototype.refresh = function (params) {\n return false;\n };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n LoadingCellRenderer.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n LoadingCellRenderer.TEMPLATE = \"
\\n \\n \\n
\";\n __decorate$26([\n RefSelector('eLoadingIcon')\n ], LoadingCellRenderer.prototype, \"eLoadingIcon\", void 0);\n __decorate$26([\n RefSelector('eLoadingText')\n ], LoadingCellRenderer.prototype, \"eLoadingText\", void 0);\n return LoadingCellRenderer;\n}(Component));\n\nvar __extends$2l = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar LoadingOverlayComponent$1 = /** @class */ (function (_super) {\n __extends$2l(LoadingOverlayComponent, _super);\n function LoadingOverlayComponent() {\n return _super.call(this) || this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n LoadingOverlayComponent.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n LoadingOverlayComponent.prototype.init = function (params) {\n var _a;\n var template = (_a = this.gridOptionsService.get('overlayLoadingTemplate')) !== null && _a !== void 0 ? _a : LoadingOverlayComponent.DEFAULT_LOADING_OVERLAY_TEMPLATE;\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n var localisedTemplate = template.replace('[LOADING...]', localeTextFunc('loadingOoo', 'Loading...'));\n this.setTemplate(localisedTemplate);\n };\n LoadingOverlayComponent.DEFAULT_LOADING_OVERLAY_TEMPLATE = '[LOADING...]';\n return LoadingOverlayComponent;\n}(Component));\n\nvar __extends$2k = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar NoRowsOverlayComponent$1 = /** @class */ (function (_super) {\n __extends$2k(NoRowsOverlayComponent, _super);\n function NoRowsOverlayComponent() {\n return _super.call(this) || this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n NoRowsOverlayComponent.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n NoRowsOverlayComponent.prototype.init = function (params) {\n var _a;\n var template = (_a = this.gridOptionsService.get('overlayNoRowsTemplate')) !== null && _a !== void 0 ? _a : NoRowsOverlayComponent.DEFAULT_NO_ROWS_TEMPLATE;\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n var localisedTemplate = template.replace('[NO_ROWS_TO_SHOW]', localeTextFunc('noRowsToShow', 'No Rows To Show'));\n this.setTemplate(localisedTemplate);\n };\n NoRowsOverlayComponent.DEFAULT_NO_ROWS_TEMPLATE = '[NO_ROWS_TO_SHOW]';\n return NoRowsOverlayComponent;\n}(Component));\n\nvar __extends$2j = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar TooltipComponent$1 = /** @class */ (function (_super) {\n __extends$2j(TooltipComponent, _super);\n function TooltipComponent() {\n return _super.call(this, /* html */ \"
\") || this;\n }\n // will need to type params\n TooltipComponent.prototype.init = function (params) {\n var value = params.value;\n this.getGui().innerHTML = escapeString(value);\n };\n return TooltipComponent;\n}(PopupComponent));\n\nvar __extends$2i = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar NumberCellEditorInput = /** @class */ (function () {\n function NumberCellEditorInput() {\n }\n NumberCellEditorInput.prototype.getTemplate = function () {\n return /* html */ \"\";\n };\n NumberCellEditorInput.prototype.init = function (eInput, params) {\n this.eInput = eInput;\n this.params = params;\n if (params.max != null) {\n eInput.setMax(params.max);\n }\n if (params.min != null) {\n eInput.setMin(params.min);\n }\n if (params.precision != null) {\n eInput.setPrecision(params.precision);\n }\n if (params.step != null) {\n eInput.setStep(params.step);\n }\n if (params.showStepperButtons) {\n eInput.getInputElement().classList.add('ag-number-field-input-stepper');\n }\n };\n NumberCellEditorInput.prototype.getValue = function () {\n var value = this.eInput.getValue();\n if (!exists(value) && !exists(this.params.value)) {\n return this.params.value;\n }\n var parsedValue = this.params.parseValue(value);\n if (parsedValue == null) {\n return parsedValue;\n }\n if (typeof parsedValue === 'string') {\n if (parsedValue === '') {\n return null;\n }\n parsedValue = Number(parsedValue);\n }\n return isNaN(parsedValue) ? null : parsedValue;\n };\n NumberCellEditorInput.prototype.getStartValue = function () {\n return this.params.value;\n };\n return NumberCellEditorInput;\n}());\nvar NumberCellEditor = /** @class */ (function (_super) {\n __extends$2i(NumberCellEditor, _super);\n function NumberCellEditor() {\n return _super.call(this, new NumberCellEditorInput()) || this;\n }\n return NumberCellEditor;\n}(SimpleCellEditor));\n\nvar __extends$2h = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar DateCellEditorInput = /** @class */ (function () {\n function DateCellEditorInput() {\n }\n DateCellEditorInput.prototype.getTemplate = function () {\n return /* html */ \"\";\n };\n DateCellEditorInput.prototype.init = function (eInput, params) {\n this.eInput = eInput;\n this.params = params;\n if (params.min != null) {\n eInput.setMin(params.min);\n }\n if (params.max != null) {\n eInput.setMax(params.max);\n }\n if (params.step != null) {\n eInput.setStep(params.step);\n }\n };\n DateCellEditorInput.prototype.getValue = function () {\n var value = this.eInput.getDate();\n if (!exists(value) && !exists(this.params.value)) {\n return this.params.value;\n }\n return value !== null && value !== void 0 ? value : null;\n };\n DateCellEditorInput.prototype.getStartValue = function () {\n var value = this.params.value;\n if (!(value instanceof Date)) {\n return undefined;\n }\n return serialiseDate(value, false);\n };\n return DateCellEditorInput;\n}());\nvar DateCellEditor = /** @class */ (function (_super) {\n __extends$2h(DateCellEditor, _super);\n function DateCellEditor() {\n return _super.call(this, new DateCellEditorInput()) || this;\n }\n return DateCellEditor;\n}(SimpleCellEditor));\n\nvar __extends$2g = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$25 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DateStringCellEditorInput = /** @class */ (function () {\n function DateStringCellEditorInput(getDataTypeService) {\n this.getDataTypeService = getDataTypeService;\n }\n DateStringCellEditorInput.prototype.getTemplate = function () {\n return /* html */ \"\";\n };\n DateStringCellEditorInput.prototype.init = function (eInput, params) {\n this.eInput = eInput;\n this.params = params;\n if (params.min != null) {\n eInput.setMin(params.min);\n }\n if (params.max != null) {\n eInput.setMax(params.max);\n }\n if (params.step != null) {\n eInput.setStep(params.step);\n }\n };\n DateStringCellEditorInput.prototype.getValue = function () {\n var value = this.formatDate(this.eInput.getDate());\n if (!exists(value) && !exists(this.params.value)) {\n return this.params.value;\n }\n return this.params.parseValue(value !== null && value !== void 0 ? value : '');\n };\n DateStringCellEditorInput.prototype.getStartValue = function () {\n var _a, _b;\n return serialiseDate((_b = this.parseDate((_a = this.params.value) !== null && _a !== void 0 ? _a : undefined)) !== null && _b !== void 0 ? _b : null, false);\n };\n DateStringCellEditorInput.prototype.parseDate = function (value) {\n return this.getDataTypeService().getDateParserFunction()(value);\n };\n DateStringCellEditorInput.prototype.formatDate = function (value) {\n return this.getDataTypeService().getDateFormatterFunction()(value);\n };\n return DateStringCellEditorInput;\n}());\nvar DateStringCellEditor = /** @class */ (function (_super) {\n __extends$2g(DateStringCellEditor, _super);\n function DateStringCellEditor() {\n var _this = _super.call(this, new DateStringCellEditorInput(function () { return _this.dataTypeService; })) || this;\n return _this;\n }\n __decorate$25([\n Autowired('dataTypeService')\n ], DateStringCellEditor.prototype, \"dataTypeService\", void 0);\n return DateStringCellEditor;\n}(SimpleCellEditor));\n\nvar __extends$2f = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$24 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CheckboxCellRenderer = /** @class */ (function (_super) {\n __extends$2f(CheckboxCellRenderer, _super);\n function CheckboxCellRenderer() {\n return _super.call(this, CheckboxCellRenderer.TEMPLATE) || this;\n }\n CheckboxCellRenderer.prototype.init = function (params) {\n var _this = this;\n this.params = params;\n this.updateCheckbox(params);\n this.eCheckbox.getInputElement().setAttribute('tabindex', '-1');\n this.addManagedListener(this.eCheckbox.getInputElement(), 'click', function (event) {\n stopPropagationForAgGrid(event);\n if (_this.eCheckbox.isDisabled()) {\n return;\n }\n var isSelected = _this.eCheckbox.getValue();\n _this.onCheckboxChanged(isSelected);\n });\n this.addManagedListener(this.eCheckbox.getInputElement(), 'dblclick', function (event) {\n stopPropagationForAgGrid(event);\n });\n var eDocument = this.gridOptionsService.getDocument();\n this.addManagedListener(this.params.eGridCell, 'keydown', function (event) {\n if (event.key === KeyCode.SPACE && !_this.eCheckbox.isDisabled()) {\n if (_this.params.eGridCell === eDocument.activeElement) {\n _this.eCheckbox.toggle();\n }\n var isSelected = _this.eCheckbox.getValue();\n _this.onCheckboxChanged(isSelected);\n event.preventDefault();\n }\n });\n };\n CheckboxCellRenderer.prototype.refresh = function (params) {\n this.params = params;\n this.updateCheckbox(params);\n return true;\n };\n CheckboxCellRenderer.prototype.updateCheckbox = function (params) {\n var _a, _b, _c;\n var isSelected;\n var displayed = true;\n if (params.node.group && params.column) {\n var colId = params.column.getColId();\n if (colId.startsWith(GROUP_AUTO_COLUMN_ID)) {\n // if we're grouping by this column then the value is a string and we need to parse it\n isSelected = params.value == null || params.value === '' ? undefined : params.value === 'true';\n }\n else if (params.node.aggData && params.node.aggData[colId] !== undefined) {\n isSelected = (_a = params.value) !== null && _a !== void 0 ? _a : undefined;\n }\n else {\n displayed = false;\n }\n }\n else {\n isSelected = (_b = params.value) !== null && _b !== void 0 ? _b : undefined;\n }\n if (!displayed) {\n this.eCheckbox.setDisplayed(false);\n return;\n }\n this.eCheckbox.setValue(isSelected);\n var disabled = params.disabled != null ? params.disabled : !((_c = params.column) === null || _c === void 0 ? void 0 : _c.isCellEditable(params.node));\n this.eCheckbox.setDisabled(disabled);\n var translate = this.localeService.getLocaleTextFunc();\n var stateName = getAriaCheckboxStateName(translate, isSelected);\n var ariaLabel = disabled\n ? stateName\n : translate('ariaToggleCellValue', 'Press SPACE to toggle cell value') + \" (\" + stateName + \")\";\n this.eCheckbox.setInputAriaLabel(ariaLabel);\n };\n CheckboxCellRenderer.prototype.onCheckboxChanged = function (isSelected) {\n var _a = this.params, column = _a.column, node = _a.node, rowIndex = _a.rowIndex, value = _a.value;\n var eventStarted = {\n type: Events.EVENT_CELL_EDITING_STARTED,\n column: column,\n colDef: column === null || column === void 0 ? void 0 : column.getColDef(),\n data: node.data,\n node: node,\n rowIndex: rowIndex,\n rowPinned: node.rowPinned,\n value: value\n };\n this.eventService.dispatchEvent(eventStarted);\n var valueChanged = this.params.node.setDataValue(this.params.column, isSelected, 'edit');\n var eventStopped = {\n type: Events.EVENT_CELL_EDITING_STOPPED,\n column: column,\n colDef: column === null || column === void 0 ? void 0 : column.getColDef(),\n data: node.data,\n node: node,\n rowIndex: rowIndex,\n rowPinned: node.rowPinned,\n value: value,\n oldValue: value,\n newValue: isSelected,\n valueChanged: valueChanged\n };\n this.eventService.dispatchEvent(eventStopped);\n };\n CheckboxCellRenderer.TEMPLATE = \"\\n
\\n \\n
\";\n __decorate$24([\n RefSelector('eCheckbox')\n ], CheckboxCellRenderer.prototype, \"eCheckbox\", void 0);\n return CheckboxCellRenderer;\n}(Component));\n\nvar __extends$2e = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$23 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CheckboxCellEditor = /** @class */ (function (_super) {\n __extends$2e(CheckboxCellEditor, _super);\n function CheckboxCellEditor() {\n return _super.call(this, /* html */ \"\\n
\\n \\n
\") || this;\n }\n CheckboxCellEditor.prototype.init = function (params) {\n var _this = this;\n var _a;\n this.params = params;\n var isSelected = (_a = params.value) !== null && _a !== void 0 ? _a : undefined;\n this.eCheckbox.setValue(isSelected);\n this.eCheckbox.getInputElement().setAttribute('tabindex', '-1');\n this.setAriaLabel(isSelected);\n this.addManagedListener(this.eCheckbox, Events.EVENT_FIELD_VALUE_CHANGED, function (event) { return _this.setAriaLabel(event.selected); });\n };\n CheckboxCellEditor.prototype.getValue = function () {\n return this.eCheckbox.getValue();\n };\n CheckboxCellEditor.prototype.focusIn = function () {\n this.eCheckbox.getFocusableElement().focus();\n };\n CheckboxCellEditor.prototype.afterGuiAttached = function () {\n if (this.params.cellStartedEdit) {\n this.focusIn();\n }\n };\n CheckboxCellEditor.prototype.isPopup = function () {\n return false;\n };\n CheckboxCellEditor.prototype.setAriaLabel = function (isSelected) {\n var translate = this.localeService.getLocaleTextFunc();\n var stateName = getAriaCheckboxStateName(translate, isSelected);\n var ariaLabel = translate('ariaToggleCellValue', 'Press SPACE to toggle cell value');\n this.eCheckbox.setInputAriaLabel(ariaLabel + \" (\" + stateName + \")\");\n };\n __decorate$23([\n RefSelector('eCheckbox')\n ], CheckboxCellEditor.prototype, \"eCheckbox\", void 0);\n return CheckboxCellEditor;\n}(PopupComponent));\n\nvar __extends$2d = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$22 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$n = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$j = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar UserComponentRegistry = /** @class */ (function (_super) {\n __extends$2d(UserComponentRegistry, _super);\n function UserComponentRegistry() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.agGridDefaults = {\n //date\n agDateInput: DefaultDateComponent,\n //header\n agColumnHeader: HeaderComp,\n agColumnGroupHeader: HeaderGroupComp,\n agSortIndicator: SortIndicatorComp,\n //floating filters\n agTextColumnFloatingFilter: TextFloatingFilter,\n agNumberColumnFloatingFilter: NumberFloatingFilter,\n agDateColumnFloatingFilter: DateFloatingFilter,\n agReadOnlyFloatingFilter: ReadOnlyFloatingFilter,\n // renderers\n agAnimateShowChangeCellRenderer: AnimateShowChangeCellRenderer,\n agAnimateSlideCellRenderer: AnimateSlideCellRenderer,\n agGroupCellRenderer: GroupCellRenderer,\n agGroupRowRenderer: GroupCellRenderer,\n agLoadingCellRenderer: LoadingCellRenderer,\n agCheckboxCellRenderer: CheckboxCellRenderer,\n //editors\n agCellEditor: TextCellEditor,\n agTextCellEditor: TextCellEditor,\n agNumberCellEditor: NumberCellEditor,\n agDateCellEditor: DateCellEditor,\n agDateStringCellEditor: DateStringCellEditor,\n agSelectCellEditor: SelectCellEditor,\n agLargeTextCellEditor: LargeTextCellEditor,\n agCheckboxCellEditor: CheckboxCellEditor,\n //filter\n agTextColumnFilter: TextFilter,\n agNumberColumnFilter: NumberFilter,\n agDateColumnFilter: DateFilter,\n //overlays\n agLoadingOverlay: LoadingOverlayComponent$1,\n agNoRowsOverlay: NoRowsOverlayComponent$1,\n // tooltips\n agTooltipComponent: TooltipComponent$1\n };\n /** Used to provide useful error messages if a user is trying to use an enterprise component without loading the module. */\n _this.enterpriseAgDefaultCompsModule = {\n agSetColumnFilter: ModuleNames.SetFilterModule,\n agSetColumnFloatingFilter: ModuleNames.SetFilterModule,\n agMultiColumnFilter: ModuleNames.MultiFilterModule,\n agMultiColumnFloatingFilter: ModuleNames.MultiFilterModule,\n agGroupColumnFilter: ModuleNames.RowGroupingModule,\n agGroupColumnFloatingFilter: ModuleNames.RowGroupingModule,\n agRichSelect: ModuleNames.RichSelectModule,\n agRichSelectCellEditor: ModuleNames.RichSelectModule,\n agDetailCellRenderer: ModuleNames.MasterDetailModule,\n agSparklineCellRenderer: ModuleNames.SparklinesModule\n };\n _this.jsComps = {};\n return _this;\n }\n UserComponentRegistry.prototype.init = function () {\n var _this = this;\n if (this.gridOptions.components != null) {\n iterateObject(this.gridOptions.components, function (key, component) { return _this.registerJsComponent(key, component); });\n }\n };\n UserComponentRegistry.prototype.registerDefaultComponent = function (name, component) {\n if (this.agGridDefaults[name]) {\n console.error(\"Trying to overwrite a default component. You should call registerComponent\");\n return;\n }\n this.agGridDefaults[name] = component;\n };\n UserComponentRegistry.prototype.registerJsComponent = function (name, component) {\n this.jsComps[name] = component;\n };\n UserComponentRegistry.prototype.retrieve = function (propertyName, name) {\n var _this = this;\n var createResult = function (component, componentFromFramework) { return ({ componentFromFramework: componentFromFramework, component: component }); };\n // FrameworkOverrides.frameworkComponent() is used in two locations:\n // 1) for Vue, user provided components get registered via a framework specific way.\n // 2) for React, it's how the React UI provides alternative default components (eg GroupCellRenderer and DetailCellRenderer)\n var registeredViaFrameworkComp = this.getFrameworkOverrides().frameworkComponent(name, this.gridOptions.components);\n if (registeredViaFrameworkComp != null) {\n return createResult(registeredViaFrameworkComp, true);\n }\n var jsComponent = this.jsComps[name];\n if (jsComponent) {\n var isFwkComp = this.getFrameworkOverrides().isFrameworkComponent(jsComponent);\n return createResult(jsComponent, isFwkComp);\n }\n var defaultComponent = this.agGridDefaults[name];\n if (defaultComponent) {\n return createResult(defaultComponent, false);\n }\n var moduleForComponent = this.enterpriseAgDefaultCompsModule[name];\n if (moduleForComponent) {\n ModuleRegistry.__assertRegistered(moduleForComponent, \"AG Grid '\" + propertyName + \"' component: \" + name, this.context.getGridId());\n }\n else {\n doOnce(function () { _this.warnAboutMissingComponent(propertyName, name); }, \"MissingComp\" + name);\n }\n return null;\n };\n UserComponentRegistry.prototype.warnAboutMissingComponent = function (propertyName, componentName) {\n var validComponents = __spreadArray$j(__spreadArray$j([], __read$n(Object.keys(this.agGridDefaults).filter(function (k) { return !['agCellEditor', 'agGroupRowRenderer', 'agSortIndicator'].includes(k); }))), __read$n(Object.keys(this.jsComps)));\n var suggestions = fuzzySuggestions(componentName, validComponents, true, 0.8).values;\n console.warn(\"AG Grid: Could not find '\" + componentName + \"' component. It was configured as \\\"\" + propertyName + \": '\" + componentName + \"'\\\" but it wasn't found in the list of registered components.\");\n if (suggestions.length > 0) {\n console.warn(\" Did you mean: [\" + suggestions.slice(0, 3) + \"]?\");\n }\n console.warn(\"If using a custom component check it has been registered as described in: https://ag-grid.com/javascript-data-grid/components/\");\n };\n __decorate$22([\n Autowired('gridOptions')\n ], UserComponentRegistry.prototype, \"gridOptions\", void 0);\n __decorate$22([\n PostConstruct\n ], UserComponentRegistry.prototype, \"init\", null);\n UserComponentRegistry = __decorate$22([\n Bean('userComponentRegistry')\n ], UserComponentRegistry);\n return UserComponentRegistry;\n}(BeanStub));\n\nvar DateComponent = {\n propertyName: 'dateComponent',\n cellRenderer: false\n};\nvar HeaderComponent = {\n propertyName: 'headerComponent',\n cellRenderer: false\n};\nvar HeaderGroupComponent = {\n propertyName: 'headerGroupComponent',\n cellRenderer: false\n};\nvar CellRendererComponent = {\n propertyName: 'cellRenderer',\n cellRenderer: true\n};\nvar CellEditorComponent = {\n propertyName: 'cellEditor',\n cellRenderer: false\n};\nvar InnerRendererComponent = {\n propertyName: 'innerRenderer',\n cellRenderer: true\n};\nvar LoadingOverlayComponent = {\n propertyName: 'loadingOverlayComponent',\n cellRenderer: false\n};\nvar NoRowsOverlayComponent = {\n propertyName: 'noRowsOverlayComponent',\n cellRenderer: false\n};\nvar TooltipComponent = {\n propertyName: 'tooltipComponent',\n cellRenderer: false\n};\nvar FilterComponent = {\n propertyName: 'filter',\n cellRenderer: false\n};\nvar FloatingFilterComponent = {\n propertyName: 'floatingFilterComponent',\n cellRenderer: false\n};\nvar ToolPanelComponent = {\n propertyName: 'toolPanel',\n cellRenderer: false\n};\nvar StatusPanelComponent = {\n propertyName: 'statusPanel',\n cellRenderer: false\n};\nvar FullWidth = {\n propertyName: 'fullWidthCellRenderer',\n cellRenderer: true\n};\nvar FullWidthLoading = {\n propertyName: 'loadingCellRenderer',\n cellRenderer: true\n};\nvar FullWidthGroup = {\n propertyName: 'groupRowRenderer',\n cellRenderer: true\n};\nvar FullWidthDetail = {\n propertyName: 'detailCellRenderer',\n cellRenderer: true\n};\n\nvar FloatingFilterMapper = /** @class */ (function () {\n function FloatingFilterMapper() {\n }\n FloatingFilterMapper.getFloatingFilterType = function (filterType) {\n return this.filterToFloatingFilterMapping[filterType];\n };\n FloatingFilterMapper.filterToFloatingFilterMapping = {\n set: 'agSetColumnFloatingFilter',\n agSetColumnFilter: 'agSetColumnFloatingFilter',\n multi: 'agMultiColumnFloatingFilter',\n agMultiColumnFilter: 'agMultiColumnFloatingFilter',\n group: 'agGroupColumnFloatingFilter',\n agGroupColumnFilter: 'agGroupColumnFloatingFilter',\n number: 'agNumberColumnFloatingFilter',\n agNumberColumnFilter: 'agNumberColumnFloatingFilter',\n date: 'agDateColumnFloatingFilter',\n agDateColumnFilter: 'agDateColumnFloatingFilter',\n text: 'agTextColumnFloatingFilter',\n agTextColumnFilter: 'agTextColumnFloatingFilter'\n };\n return FloatingFilterMapper;\n}());\n\nvar __extends$2c = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$21 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar UserComponentFactory = /** @class */ (function (_super) {\n __extends$2c(UserComponentFactory, _super);\n function UserComponentFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n UserComponentFactory.prototype.getHeaderCompDetails = function (colDef, params) {\n return this.getCompDetails(colDef, HeaderComponent, 'agColumnHeader', params);\n };\n UserComponentFactory.prototype.getHeaderGroupCompDetails = function (params) {\n var colGroupDef = params.columnGroup.getColGroupDef();\n return this.getCompDetails(colGroupDef, HeaderGroupComponent, 'agColumnGroupHeader', params);\n };\n // this one is unusual, as it can be LoadingCellRenderer, DetailCellRenderer, FullWidthCellRenderer or GroupRowRenderer.\n // so we have to pass the type in.\n UserComponentFactory.prototype.getFullWidthCellRendererDetails = function (params) {\n return this.getCompDetails(this.gridOptions, FullWidth, null, params, true);\n };\n UserComponentFactory.prototype.getFullWidthLoadingCellRendererDetails = function (params) {\n return this.getCompDetails(this.gridOptions, FullWidthLoading, 'agLoadingCellRenderer', params, true);\n };\n UserComponentFactory.prototype.getFullWidthGroupCellRendererDetails = function (params) {\n return this.getCompDetails(this.gridOptions, FullWidthGroup, 'agGroupRowRenderer', params, true);\n };\n UserComponentFactory.prototype.getFullWidthDetailCellRendererDetails = function (params) {\n return this.getCompDetails(this.gridOptions, FullWidthDetail, 'agDetailCellRenderer', params, true);\n };\n // CELL RENDERER\n UserComponentFactory.prototype.getInnerRendererDetails = function (def, params) {\n return this.getCompDetails(def, InnerRendererComponent, null, params);\n };\n UserComponentFactory.prototype.getFullWidthGroupRowInnerCellRenderer = function (def, params) {\n return this.getCompDetails(def, InnerRendererComponent, null, params);\n };\n UserComponentFactory.prototype.getCellRendererDetails = function (def, params) {\n return this.getCompDetails(def, CellRendererComponent, null, params);\n };\n // CELL EDITOR\n UserComponentFactory.prototype.getCellEditorDetails = function (def, params) {\n return this.getCompDetails(def, CellEditorComponent, 'agCellEditor', params, true);\n };\n // FILTER\n UserComponentFactory.prototype.getFilterDetails = function (def, params, defaultFilter) {\n return this.getCompDetails(def, FilterComponent, defaultFilter, params, true);\n };\n UserComponentFactory.prototype.getDateCompDetails = function (params) {\n return this.getCompDetails(this.gridOptions, DateComponent, 'agDateInput', params, true);\n };\n UserComponentFactory.prototype.getLoadingOverlayCompDetails = function (params) {\n return this.getCompDetails(this.gridOptions, LoadingOverlayComponent, 'agLoadingOverlay', params, true);\n };\n UserComponentFactory.prototype.getNoRowsOverlayCompDetails = function (params) {\n return this.getCompDetails(this.gridOptions, NoRowsOverlayComponent, 'agNoRowsOverlay', params, true);\n };\n UserComponentFactory.prototype.getTooltipCompDetails = function (params) {\n return this.getCompDetails(params.colDef, TooltipComponent, 'agTooltipComponent', params, true);\n };\n UserComponentFactory.prototype.getSetFilterCellRendererDetails = function (def, params) {\n return this.getCompDetails(def, CellRendererComponent, null, params);\n };\n UserComponentFactory.prototype.getFloatingFilterCompDetails = function (def, params, defaultFloatingFilter) {\n return this.getCompDetails(def, FloatingFilterComponent, defaultFloatingFilter, params);\n };\n UserComponentFactory.prototype.getToolPanelCompDetails = function (toolPanelDef, params) {\n return this.getCompDetails(toolPanelDef, ToolPanelComponent, null, params, true);\n };\n UserComponentFactory.prototype.getStatusPanelCompDetails = function (def, params) {\n return this.getCompDetails(def, StatusPanelComponent, null, params, true);\n };\n UserComponentFactory.prototype.getCompDetails = function (defObject, type, defaultName, params, mandatory) {\n var _this = this;\n if (mandatory === void 0) { mandatory = false; }\n var propertyName = type.propertyName, cellRenderer = type.cellRenderer;\n var _a = this.getCompKeys(defObject, type, params), compName = _a.compName, jsComp = _a.jsComp, fwComp = _a.fwComp, paramsFromSelector = _a.paramsFromSelector, popupFromSelector = _a.popupFromSelector, popupPositionFromSelector = _a.popupPositionFromSelector;\n var lookupFromRegistry = function (key) {\n var item = _this.userComponentRegistry.retrieve(propertyName, key);\n if (item) {\n jsComp = !item.componentFromFramework ? item.component : undefined;\n fwComp = item.componentFromFramework ? item.component : undefined;\n }\n };\n // if compOption is a string, means we need to look the item up\n if (compName != null) {\n lookupFromRegistry(compName);\n }\n // if lookup brought nothing back, and we have a default, lookup the default\n if (jsComp == null && fwComp == null && defaultName != null) {\n lookupFromRegistry(defaultName);\n }\n // if we have a comp option, and it's a function, replace it with an object equivalent adaptor\n if (jsComp && cellRenderer && !this.agComponentUtils.doesImplementIComponent(jsComp)) {\n jsComp = this.agComponentUtils.adaptFunction(propertyName, jsComp);\n }\n if (!jsComp && !fwComp) {\n if (mandatory) {\n console.error(\"AG Grid: Could not find component \" + compName + \", did you forget to configure this component?\");\n }\n return;\n }\n var paramsMerged = this.mergeParamsWithApplicationProvidedParams(defObject, type, params, paramsFromSelector);\n var componentFromFramework = jsComp == null;\n var componentClass = jsComp ? jsComp : fwComp;\n return {\n componentFromFramework: componentFromFramework,\n componentClass: componentClass,\n params: paramsMerged,\n type: type,\n popupFromSelector: popupFromSelector,\n popupPositionFromSelector: popupPositionFromSelector,\n newAgStackInstance: function () { return _this.newAgStackInstance(componentClass, componentFromFramework, paramsMerged, type); }\n };\n };\n UserComponentFactory.prototype.getCompKeys = function (defObject, type, params) {\n var _this = this;\n var propertyName = type.propertyName;\n var compName;\n var jsComp;\n var fwComp;\n var paramsFromSelector;\n var popupFromSelector;\n var popupPositionFromSelector;\n // there are two types of js comps, class based and func based. we can only check for\n // class based, by checking if getGui() exists. no way to differentiate js func based vs eg react func based\n // const isJsClassComp = (comp: any) => this.agComponentUtils.doesImplementIComponent(comp);\n // const fwActive = this.frameworkComponentWrapper != null;\n // pull from defObject if available\n if (defObject) {\n var defObjectAny = defObject;\n // if selector, use this\n var selectorFunc = defObjectAny[propertyName + 'Selector'];\n var selectorRes = selectorFunc ? selectorFunc(params) : null;\n var assignComp = function (providedJsComp) {\n if (typeof providedJsComp === 'string') {\n compName = providedJsComp;\n }\n else if (providedJsComp != null && providedJsComp !== true) {\n var isFwkComp = _this.getFrameworkOverrides().isFrameworkComponent(providedJsComp);\n if (isFwkComp) {\n fwComp = providedJsComp;\n }\n else {\n jsComp = providedJsComp;\n }\n }\n };\n if (selectorRes) {\n assignComp(selectorRes.component);\n paramsFromSelector = selectorRes.params;\n popupFromSelector = selectorRes.popup;\n popupPositionFromSelector = selectorRes.popupPosition;\n }\n else {\n // if no selector, or result of selector is empty, take from defObject\n assignComp(defObjectAny[propertyName]);\n }\n }\n return { compName: compName, jsComp: jsComp, fwComp: fwComp, paramsFromSelector: paramsFromSelector, popupFromSelector: popupFromSelector, popupPositionFromSelector: popupPositionFromSelector };\n };\n UserComponentFactory.prototype.newAgStackInstance = function (ComponentClass, componentFromFramework, params, type) {\n var propertyName = type.propertyName;\n var jsComponent = !componentFromFramework;\n // using javascript component\n var instance;\n if (jsComponent) {\n instance = new ComponentClass();\n }\n else {\n // Using framework component\n var thisComponentConfig = this.componentMetadataProvider.retrieve(propertyName);\n instance = this.frameworkComponentWrapper.wrap(ComponentClass, thisComponentConfig.mandatoryMethodList, thisComponentConfig.optionalMethodList, type);\n }\n var deferredInit = this.initComponent(instance, params);\n if (deferredInit == null) {\n return AgPromise.resolve(instance);\n }\n return deferredInit.then(function () { return instance; });\n };\n // used by Floating Filter\n UserComponentFactory.prototype.mergeParamsWithApplicationProvidedParams = function (defObject, type, paramsFromGrid, paramsFromSelector) {\n if (paramsFromSelector === void 0) { paramsFromSelector = null; }\n var params = {\n context: this.gridOptionsService.context,\n columnApi: this.gridOptionsService.columnApi,\n api: this.gridOptionsService.api\n };\n mergeDeep(params, paramsFromGrid);\n // pull user params from either the old prop name and new prop name\n // eg either cellRendererParams and cellCompParams\n var defObjectAny = defObject;\n var userParams = defObjectAny && defObjectAny[type.propertyName + 'Params'];\n if (typeof userParams === 'function') {\n var userParamsFromFunc = userParams(paramsFromGrid);\n mergeDeep(params, userParamsFromFunc);\n }\n else if (typeof userParams === 'object') {\n mergeDeep(params, userParams);\n }\n mergeDeep(params, paramsFromSelector);\n return params;\n };\n UserComponentFactory.prototype.initComponent = function (component, params) {\n this.context.createBean(component);\n if (component.init == null) {\n return;\n }\n return component.init(params);\n };\n UserComponentFactory.prototype.getDefaultFloatingFilterType = function (def, getFromDefault) {\n if (def == null) {\n return null;\n }\n var defaultFloatingFilterType = null;\n var _a = this.getCompKeys(def, FilterComponent), compName = _a.compName, jsComp = _a.jsComp, fwComp = _a.fwComp;\n if (compName) {\n // will be undefined if not in the map\n defaultFloatingFilterType = FloatingFilterMapper.getFloatingFilterType(compName);\n }\n else {\n var usingDefaultFilter = (jsComp == null && fwComp == null) && (def.filter === true);\n if (usingDefaultFilter) {\n defaultFloatingFilterType = getFromDefault();\n }\n }\n return defaultFloatingFilterType;\n };\n __decorate$21([\n Autowired('gridOptions')\n ], UserComponentFactory.prototype, \"gridOptions\", void 0);\n __decorate$21([\n Autowired('agComponentUtils')\n ], UserComponentFactory.prototype, \"agComponentUtils\", void 0);\n __decorate$21([\n Autowired('componentMetadataProvider')\n ], UserComponentFactory.prototype, \"componentMetadataProvider\", void 0);\n __decorate$21([\n Autowired('userComponentRegistry')\n ], UserComponentFactory.prototype, \"userComponentRegistry\", void 0);\n __decorate$21([\n Optional('frameworkComponentWrapper')\n ], UserComponentFactory.prototype, \"frameworkComponentWrapper\", void 0);\n UserComponentFactory = __decorate$21([\n Bean('userComponentFactory')\n ], UserComponentFactory);\n return UserComponentFactory;\n}(BeanStub));\n\n// Excel Export\nvar ExcelFactoryMode;\n(function (ExcelFactoryMode) {\n ExcelFactoryMode[ExcelFactoryMode[\"SINGLE_SHEET\"] = 0] = \"SINGLE_SHEET\";\n ExcelFactoryMode[ExcelFactoryMode[\"MULTI_SHEET\"] = 1] = \"MULTI_SHEET\";\n})(ExcelFactoryMode || (ExcelFactoryMode = {}));\n\nvar __extends$2b = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$20 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/** Adds drag listening onto an element. In AG Grid this is used twice, first is resizing columns,\n * second is moving the columns and column groups around (ie the 'drag' part of Drag and Drop. */\nvar DragService = /** @class */ (function (_super) {\n __extends$2b(DragService, _super);\n function DragService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.dragEndFunctions = [];\n _this.dragSources = [];\n return _this;\n }\n DragService.prototype.removeAllListeners = function () {\n this.dragSources.forEach(this.removeListener.bind(this));\n this.dragSources.length = 0;\n };\n DragService.prototype.removeListener = function (dragSourceAndListener) {\n var element = dragSourceAndListener.dragSource.eElement;\n var mouseDownListener = dragSourceAndListener.mouseDownListener;\n element.removeEventListener('mousedown', mouseDownListener);\n // remove touch listener only if it exists\n if (dragSourceAndListener.touchEnabled) {\n var touchStartListener = dragSourceAndListener.touchStartListener;\n element.removeEventListener('touchstart', touchStartListener, { passive: true });\n }\n };\n DragService.prototype.removeDragSource = function (params) {\n var dragSourceAndListener = this.dragSources.find(function (item) { return item.dragSource === params; });\n if (!dragSourceAndListener) {\n return;\n }\n this.removeListener(dragSourceAndListener);\n removeFromArray(this.dragSources, dragSourceAndListener);\n };\n DragService.prototype.isDragging = function () {\n return this.dragging;\n };\n DragService.prototype.addDragSource = function (params) {\n var _this = this;\n var mouseListener = this.onMouseDown.bind(this, params);\n var eElement = params.eElement, includeTouch = params.includeTouch, stopPropagationForTouch = params.stopPropagationForTouch;\n eElement.addEventListener('mousedown', mouseListener);\n var touchListener = null;\n var suppressTouch = this.gridOptionsService.is('suppressTouch');\n if (includeTouch && !suppressTouch) {\n touchListener = function (touchEvent) {\n if (isFocusableFormField(touchEvent.target)) {\n return;\n }\n if (touchEvent.cancelable) {\n touchEvent.preventDefault();\n if (stopPropagationForTouch) {\n touchEvent.stopPropagation();\n }\n }\n _this.onTouchStart(params, touchEvent);\n };\n // we set passive=false, as we want to prevent default on this event\n eElement.addEventListener('touchstart', touchListener, { passive: false });\n }\n this.dragSources.push({\n dragSource: params,\n mouseDownListener: mouseListener,\n touchStartListener: touchListener,\n touchEnabled: !!includeTouch\n });\n };\n DragService.prototype.getStartTarget = function () {\n return this.startTarget;\n };\n // gets called whenever mouse down on any drag source\n DragService.prototype.onTouchStart = function (params, touchEvent) {\n var _this = this;\n this.currentDragParams = params;\n this.dragging = false;\n var touch = touchEvent.touches[0];\n this.touchLastTime = touch;\n this.touchStart = touch;\n var touchMoveEvent = function (e) { return _this.onTouchMove(e, params.eElement); };\n var touchEndEvent = function (e) { return _this.onTouchUp(e, params.eElement); };\n var documentTouchMove = function (e) { if (e.cancelable) {\n e.preventDefault();\n } };\n var target = touchEvent.target;\n var events = [\n // Prevents the page document from moving while we are dragging items around.\n // preventDefault needs to be called in the touchmove listener and never inside the\n // touchstart, because using touchstart causes the click event to be cancelled on touch devices.\n { target: this.gridOptionsService.getRootNode(), type: 'touchmove', listener: documentTouchMove, options: { passive: false } },\n { target: target, type: 'touchmove', listener: touchMoveEvent, options: { passive: true } },\n { target: target, type: 'touchend', listener: touchEndEvent, options: { passive: true } },\n { target: target, type: 'touchcancel', listener: touchEndEvent, options: { passive: true } }\n ];\n // temporally add these listeners, for the duration of the drag\n this.addTemporaryEvents(events);\n // see if we want to start dragging straight away\n if (params.dragStartPixels === 0) {\n this.onCommonMove(touch, this.touchStart, params.eElement);\n }\n };\n // gets called whenever mouse down on any drag source\n DragService.prototype.onMouseDown = function (params, mouseEvent) {\n var _this = this;\n var e = mouseEvent;\n if (params.skipMouseEvent && params.skipMouseEvent(mouseEvent)) {\n return;\n }\n // if there are two elements with parent / child relationship, and both are draggable,\n // when we drag the child, we should NOT drag the parent. an example of this is row moving\n // and range selection - row moving should get preference when use drags the rowDrag component.\n if (e._alreadyProcessedByDragService) {\n return;\n }\n e._alreadyProcessedByDragService = true;\n // only interested in left button clicks\n if (mouseEvent.button !== 0) {\n return;\n }\n if (this.shouldPreventMouseEvent(mouseEvent)) {\n mouseEvent.preventDefault();\n }\n this.currentDragParams = params;\n this.dragging = false;\n this.mouseStartEvent = mouseEvent;\n this.startTarget = mouseEvent.target;\n var mouseMoveEvent = function (event) { return _this.onMouseMove(event, params.eElement); };\n var mouseUpEvent = function (event) { return _this.onMouseUp(event, params.eElement); };\n var contextEvent = function (event) { return event.preventDefault(); };\n var target = this.gridOptionsService.getRootNode();\n var events = [\n { target: target, type: 'mousemove', listener: mouseMoveEvent },\n { target: target, type: 'mouseup', listener: mouseUpEvent },\n { target: target, type: 'contextmenu', listener: contextEvent }\n ];\n // temporally add these listeners, for the duration of the drag\n this.addTemporaryEvents(events);\n //see if we want to start dragging straight away\n if (params.dragStartPixels === 0) {\n this.onMouseMove(mouseEvent, params.eElement);\n }\n };\n DragService.prototype.addTemporaryEvents = function (events) {\n events.forEach(function (currentEvent) {\n var target = currentEvent.target, type = currentEvent.type, listener = currentEvent.listener, options = currentEvent.options;\n target.addEventListener(type, listener, options);\n });\n this.dragEndFunctions.push(function () {\n events.forEach(function (currentEvent) {\n var target = currentEvent.target, type = currentEvent.type, listener = currentEvent.listener, options = currentEvent.options;\n target.removeEventListener(type, listener, options);\n });\n });\n };\n // returns true if the event is close to the original event by X pixels either vertically or horizontally.\n // we only start dragging after X pixels so this allows us to know if we should start dragging yet.\n DragService.prototype.isEventNearStartEvent = function (currentEvent, startEvent) {\n // by default, we wait 4 pixels before starting the drag\n var dragStartPixels = this.currentDragParams.dragStartPixels;\n var requiredPixelDiff = exists(dragStartPixels) ? dragStartPixels : 4;\n return areEventsNear(currentEvent, startEvent, requiredPixelDiff);\n };\n DragService.prototype.getFirstActiveTouch = function (touchList) {\n for (var i = 0; i < touchList.length; i++) {\n if (touchList[i].identifier === this.touchStart.identifier) {\n return touchList[i];\n }\n }\n return null;\n };\n DragService.prototype.onCommonMove = function (currentEvent, startEvent, el) {\n if (!this.dragging) {\n // if mouse hasn't travelled from the start position enough, do nothing\n if (!this.dragging && this.isEventNearStartEvent(currentEvent, startEvent)) {\n return;\n }\n this.dragging = true;\n var event_1 = {\n type: Events.EVENT_DRAG_STARTED,\n target: el\n };\n this.eventService.dispatchEvent(event_1);\n this.currentDragParams.onDragStart(startEvent);\n // we need ONE drag action at the startEvent, so that we are guaranteed the drop target\n // at the start gets notified. this is because the drag can start outside of the element\n // that started it, as the mouse is allowed drag away from the mouse down before it's\n // considered a drag (the isEventNearStartEvent() above). if we didn't do this, then\n // it would be possible to click a column by the edge, then drag outside of the drop zone\n // in less than 4 pixels and the drag officially starts outside of the header but the header\n // wouldn't be notified of the dragging.\n this.currentDragParams.onDragging(startEvent);\n }\n this.currentDragParams.onDragging(currentEvent);\n };\n DragService.prototype.onTouchMove = function (touchEvent, el) {\n var touch = this.getFirstActiveTouch(touchEvent.touches);\n if (!touch) {\n return;\n }\n // this.___statusPanel.setInfoText(Math.random() + ' onTouchMove preventDefault stopPropagation');\n this.onCommonMove(touch, this.touchStart, el);\n };\n // only gets called after a mouse down - as this is only added after mouseDown\n // and is removed when mouseUp happens\n DragService.prototype.onMouseMove = function (mouseEvent, el) {\n if (this.shouldPreventMouseEvent(mouseEvent)) {\n mouseEvent.preventDefault();\n }\n this.onCommonMove(mouseEvent, this.mouseStartEvent, el);\n };\n DragService.prototype.shouldPreventMouseEvent = function (mouseEvent) {\n var isEnableCellTextSelect = this.gridOptionsService.is('enableCellTextSelection');\n var isSafari = isBrowserSafari();\n var isMouseMove = mouseEvent.type === 'mousemove';\n return (\n // when `isEnableCellTextSelect` is `true`, we need to preventDefault on mouseMove\n // to avoid the grid text being selected while dragging components.\n // Note: Safari also has an issue, where `user-select: none` is not being respected, so also\n // prevent it on MouseDown.\n ((isEnableCellTextSelect && isMouseMove) || isSafari) &&\n mouseEvent.cancelable &&\n this.mouseEventService.isEventFromThisGrid(mouseEvent) &&\n !this.isOverFormFieldElement(mouseEvent));\n };\n DragService.prototype.isOverFormFieldElement = function (mouseEvent) {\n var el = mouseEvent.target;\n var tagName = el === null || el === void 0 ? void 0 : el.tagName.toLocaleLowerCase();\n return !!(tagName === null || tagName === void 0 ? void 0 : tagName.match('^a$|textarea|input|select|button'));\n };\n DragService.prototype.onTouchUp = function (touchEvent, el) {\n var touch = this.getFirstActiveTouch(touchEvent.changedTouches);\n // i haven't worked this out yet, but there is no matching touch\n // when we get the touch up event. to get around this, we swap in\n // the last touch. this is a hack to 'get it working' while we\n // figure out what's going on, why we are not getting a touch in\n // current event.\n if (!touch) {\n touch = this.touchLastTime;\n }\n // if mouse was left up before we started to move, then this is a tap.\n // we check this before onUpCommon as onUpCommon resets the dragging\n // let tap = !this.dragging;\n // let tapTarget = this.currentDragParams.eElement;\n this.onUpCommon(touch, el);\n // if tap, tell user\n // console.log(`${Math.random()} tap = ${tap}`);\n // if (tap) {\n // tapTarget.click();\n // }\n };\n DragService.prototype.onMouseUp = function (mouseEvent, el) {\n this.onUpCommon(mouseEvent, el);\n };\n DragService.prototype.onUpCommon = function (eventOrTouch, el) {\n if (this.dragging) {\n this.dragging = false;\n this.currentDragParams.onDragStop(eventOrTouch);\n var event_2 = {\n type: Events.EVENT_DRAG_STOPPED,\n target: el\n };\n this.eventService.dispatchEvent(event_2);\n }\n this.mouseStartEvent = null;\n this.startTarget = null;\n this.touchStart = null;\n this.touchLastTime = null;\n this.currentDragParams = null;\n this.dragEndFunctions.forEach(function (func) { return func(); });\n this.dragEndFunctions.length = 0;\n };\n __decorate$20([\n Autowired('mouseEventService')\n ], DragService.prototype, \"mouseEventService\", void 0);\n __decorate$20([\n PreDestroy\n ], DragService.prototype, \"removeAllListeners\", null);\n DragService = __decorate$20([\n Bean('dragService')\n ], DragService);\n return DragService;\n}(BeanStub));\n\nvar AutoScrollService = /** @class */ (function () {\n function AutoScrollService(params) {\n this.tickingInterval = null;\n this.onScrollCallback = null;\n this.scrollContainer = params.scrollContainer;\n this.scrollHorizontally = params.scrollAxis.indexOf('x') !== -1;\n this.scrollVertically = params.scrollAxis.indexOf('y') !== -1;\n this.scrollByTick = params.scrollByTick != null ? params.scrollByTick : 20;\n if (params.onScrollCallback) {\n this.onScrollCallback = params.onScrollCallback;\n }\n if (this.scrollVertically) {\n this.getVerticalPosition = params.getVerticalPosition;\n this.setVerticalPosition = params.setVerticalPosition;\n }\n if (this.scrollHorizontally) {\n this.getHorizontalPosition = params.getHorizontalPosition;\n this.setHorizontalPosition = params.setHorizontalPosition;\n }\n this.shouldSkipVerticalScroll = params.shouldSkipVerticalScroll || (function () { return false; });\n this.shouldSkipHorizontalScroll = params.shouldSkipHorizontalScroll || (function () { return false; });\n }\n AutoScrollService.prototype.check = function (mouseEvent, forceSkipVerticalScroll) {\n if (forceSkipVerticalScroll === void 0) { forceSkipVerticalScroll = false; }\n var skipVerticalScroll = forceSkipVerticalScroll || this.shouldSkipVerticalScroll();\n if (skipVerticalScroll && this.shouldSkipHorizontalScroll()) {\n return;\n }\n var rect = this.scrollContainer.getBoundingClientRect();\n var scrollTick = this.scrollByTick;\n this.tickLeft = mouseEvent.clientX < (rect.left + scrollTick);\n this.tickRight = mouseEvent.clientX > (rect.right - scrollTick);\n this.tickUp = mouseEvent.clientY < (rect.top + scrollTick) && !skipVerticalScroll;\n this.tickDown = mouseEvent.clientY > (rect.bottom - scrollTick) && !skipVerticalScroll;\n if (this.tickLeft || this.tickRight || this.tickUp || this.tickDown) {\n this.ensureTickingStarted();\n }\n else {\n this.ensureCleared();\n }\n };\n AutoScrollService.prototype.ensureTickingStarted = function () {\n if (this.tickingInterval === null) {\n this.tickingInterval = window.setInterval(this.doTick.bind(this), 100);\n this.tickCount = 0;\n }\n };\n AutoScrollService.prototype.doTick = function () {\n this.tickCount++;\n var tickAmount;\n tickAmount = this.tickCount > 20 ? 200 : (this.tickCount > 10 ? 80 : 40);\n if (this.scrollVertically) {\n var vScrollPosition = this.getVerticalPosition();\n if (this.tickUp) {\n this.setVerticalPosition(vScrollPosition - tickAmount);\n }\n if (this.tickDown) {\n this.setVerticalPosition(vScrollPosition + tickAmount);\n }\n }\n if (this.scrollHorizontally) {\n var hScrollPosition = this.getHorizontalPosition();\n if (this.tickLeft) {\n this.setHorizontalPosition(hScrollPosition - tickAmount);\n }\n if (this.tickRight) {\n this.setHorizontalPosition(hScrollPosition + tickAmount);\n }\n }\n if (this.onScrollCallback) {\n this.onScrollCallback();\n }\n };\n AutoScrollService.prototype.ensureCleared = function () {\n if (this.tickingInterval) {\n window.clearInterval(this.tickingInterval);\n this.tickingInterval = null;\n }\n };\n return AutoScrollService;\n}());\n\nvar __extends$2a = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1$ = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar LIST_ITEM_HOVERED = 'ag-list-item-hovered';\nvar VirtualListDragFeature = /** @class */ (function (_super) {\n __extends$2a(VirtualListDragFeature, _super);\n function VirtualListDragFeature(comp, virtualList, params) {\n var _this = _super.call(this) || this;\n _this.comp = comp;\n _this.virtualList = virtualList;\n _this.params = params;\n _this.currentDragValue = null;\n _this.lastHoveredListItem = null;\n return _this;\n }\n VirtualListDragFeature.prototype.postConstruct = function () {\n this.addManagedListener(this.params.eventSource, this.params.listItemDragStartEvent, this.listItemDragStart.bind(this));\n this.addManagedListener(this.params.eventSource, this.params.listItemDragEndEvent, this.listItemDragEnd.bind(this));\n this.createDropTarget();\n this.createAutoScrollService();\n };\n VirtualListDragFeature.prototype.listItemDragStart = function (event) {\n this.currentDragValue = this.params.getCurrentDragValue(event);\n this.moveBlocked = this.params.isMoveBlocked(this.currentDragValue);\n };\n VirtualListDragFeature.prototype.listItemDragEnd = function () {\n var _this = this;\n window.setTimeout(function () {\n _this.currentDragValue = null;\n _this.moveBlocked = false;\n }, 10);\n };\n VirtualListDragFeature.prototype.createDropTarget = function () {\n var _this = this;\n var dropTarget = {\n isInterestedIn: function (type) { return type === _this.params.dragSourceType; },\n getIconName: function () { return DragAndDropService[_this.moveBlocked ? 'ICON_NOT_ALLOWED' : 'ICON_MOVE']; },\n getContainer: function () { return _this.comp.getGui(); },\n onDragging: function (e) { return _this.onDragging(e); },\n onDragStop: function () { return _this.onDragStop(); },\n onDragLeave: function () { return _this.onDragLeave(); }\n };\n this.dragAndDropService.addDropTarget(dropTarget);\n };\n VirtualListDragFeature.prototype.createAutoScrollService = function () {\n var virtualListGui = this.virtualList.getGui();\n this.autoScrollService = new AutoScrollService({\n scrollContainer: virtualListGui,\n scrollAxis: 'y',\n getVerticalPosition: function () { return virtualListGui.scrollTop; },\n setVerticalPosition: function (position) { return virtualListGui.scrollTop = position; }\n });\n };\n VirtualListDragFeature.prototype.onDragging = function (e) {\n if (!this.currentDragValue || this.moveBlocked) {\n return;\n }\n var hoveredListItem = this.getListDragItem(e);\n var comp = this.virtualList.getComponentAt(hoveredListItem.rowIndex);\n if (!comp) {\n return;\n }\n var el = comp.getGui().parentElement;\n if (this.lastHoveredListItem &&\n this.lastHoveredListItem.rowIndex === hoveredListItem.rowIndex &&\n this.lastHoveredListItem.position === hoveredListItem.position) {\n return;\n }\n this.autoScrollService.check(e.event);\n this.clearHoveredItems();\n this.lastHoveredListItem = hoveredListItem;\n radioCssClass(el, LIST_ITEM_HOVERED);\n radioCssClass(el, \"ag-item-highlight-\" + hoveredListItem.position);\n };\n VirtualListDragFeature.prototype.getListDragItem = function (e) {\n var virtualListGui = this.virtualList.getGui();\n var paddingTop = parseFloat(window.getComputedStyle(virtualListGui).paddingTop);\n var rowHeight = this.virtualList.getRowHeight();\n var scrollTop = this.virtualList.getScrollTop();\n var rowIndex = Math.max(0, (e.y - paddingTop + scrollTop) / rowHeight);\n var maxLen = this.params.getNumRows(this.comp) - 1;\n var normalizedRowIndex = Math.min(maxLen, rowIndex) | 0;\n return {\n rowIndex: normalizedRowIndex,\n position: (Math.round(rowIndex) > rowIndex || rowIndex > maxLen) ? 'bottom' : 'top',\n component: this.virtualList.getComponentAt(normalizedRowIndex)\n };\n };\n VirtualListDragFeature.prototype.onDragStop = function () {\n if (this.moveBlocked) {\n return;\n }\n this.params.moveItem(this.currentDragValue, this.lastHoveredListItem);\n this.clearHoveredItems();\n this.autoScrollService.ensureCleared();\n };\n VirtualListDragFeature.prototype.onDragLeave = function () {\n this.clearHoveredItems();\n this.autoScrollService.ensureCleared();\n };\n VirtualListDragFeature.prototype.clearHoveredItems = function () {\n var virtualListGui = this.virtualList.getGui();\n virtualListGui.querySelectorAll(\".\" + LIST_ITEM_HOVERED).forEach(function (el) {\n [\n LIST_ITEM_HOVERED,\n 'ag-item-highlight-top',\n 'ag-item-highlight-bottom'\n ].forEach(function (cls) {\n el.classList.remove(cls);\n });\n });\n this.lastHoveredListItem = null;\n };\n __decorate$1$([\n Autowired('dragAndDropService')\n ], VirtualListDragFeature.prototype, \"dragAndDropService\", void 0);\n __decorate$1$([\n PostConstruct\n ], VirtualListDragFeature.prototype, \"postConstruct\", null);\n return VirtualListDragFeature;\n}(BeanStub));\n\nvar RowHighlightPosition;\n(function (RowHighlightPosition) {\n RowHighlightPosition[RowHighlightPosition[\"Above\"] = 0] = \"Above\";\n RowHighlightPosition[RowHighlightPosition[\"Below\"] = 1] = \"Below\";\n})(RowHighlightPosition || (RowHighlightPosition = {}));\n\nvar ClientSideRowModelSteps;\n(function (ClientSideRowModelSteps) {\n ClientSideRowModelSteps[\"EVERYTHING\"] = \"group\";\n ClientSideRowModelSteps[\"FILTER\"] = \"filter\";\n ClientSideRowModelSteps[\"SORT\"] = \"sort\";\n ClientSideRowModelSteps[\"MAP\"] = \"map\";\n ClientSideRowModelSteps[\"AGGREGATE\"] = \"aggregate\";\n ClientSideRowModelSteps[\"FILTER_AGGREGATES\"] = \"filter_aggregates\";\n ClientSideRowModelSteps[\"PIVOT\"] = \"pivot\";\n ClientSideRowModelSteps[\"NOTHING\"] = \"nothing\";\n})(ClientSideRowModelSteps || (ClientSideRowModelSteps = {}));\n\nvar __decorate$1_ = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nfunction unwrapUserComp(comp) {\n var compAsAny = comp;\n var isProxy = compAsAny != null && compAsAny.getFrameworkComponentInstance != null;\n return isProxy ? compAsAny.getFrameworkComponentInstance() : comp;\n}\nvar GridApi = /** @class */ (function () {\n function GridApi() {\n this.detailGridInfoMap = {};\n this.destroyCalled = false;\n }\n GridApi.prototype.registerOverlayWrapperComp = function (overlayWrapperComp) {\n this.overlayWrapperComp = overlayWrapperComp;\n };\n GridApi.prototype.registerSideBarComp = function (sideBarComp) {\n this.sideBarComp = sideBarComp;\n };\n GridApi.prototype.init = function () {\n var _this = this;\n switch (this.rowModel.getType()) {\n case 'clientSide':\n this.clientSideRowModel = this.rowModel;\n break;\n case 'infinite':\n this.infiniteRowModel = this.rowModel;\n break;\n case 'serverSide':\n this.serverSideRowModel = this.rowModel;\n break;\n }\n this.ctrlsService.whenReady(function () {\n _this.gridBodyCtrl = _this.ctrlsService.getGridBodyCtrl();\n });\n };\n /** Used internally by grid. Not intended to be used by the client. Interface may change between releases. */\n GridApi.prototype.__getAlignedGridService = function () {\n return this.alignedGridsService;\n };\n /** Used internally by grid. Not intended to be used by the client. Interface may change between releases. */\n GridApi.prototype.__getContext = function () {\n return this.context;\n };\n GridApi.prototype.getSetterMethod = function (key) {\n return \"set\" + key.charAt(0).toUpperCase() + key.substring(1);\n };\n /** Used internally by grid. Not intended to be used by the client. Interface may change between releases. */\n GridApi.prototype.__setPropertyOnly = function (propertyName, value) {\n return this.gos.__setPropertyOnly(propertyName, value);\n };\n /** Used internally by grid. Not intended to be used by the client. Interface may change between releases. */\n GridApi.prototype.__updateProperty = function (propertyName, value, force, changeSet) {\n if (changeSet === void 0) { changeSet = undefined; }\n // Ensure the GridOptions property gets updated and fires the change event as we\n // cannot assume that the dynamic Api call will updated GridOptions.\n this.gos.set(propertyName, value, force, {}, changeSet);\n // If the dynamic api does update GridOptions then change detection in the\n // GridOptionsService will prevent the event being fired twice.\n var setterName = this.getSetterMethod(propertyName);\n var dynamicApi = this;\n if (dynamicApi[setterName]) {\n dynamicApi[setterName](value);\n }\n };\n /** Returns the `gridId` for the current grid as specified via the gridOptions property `gridId` or the auto assigned grid id if none was provided. */\n GridApi.prototype.getGridId = function () {\n return this.context.getGridId();\n };\n /** Register a detail grid with the master grid when it is created. */\n GridApi.prototype.addDetailGridInfo = function (id, gridInfo) {\n this.detailGridInfoMap[id] = gridInfo;\n };\n /** Unregister a detail grid from the master grid when it is destroyed. */\n GridApi.prototype.removeDetailGridInfo = function (id) {\n this.detailGridInfoMap[id] = undefined;\n };\n /** Returns the `DetailGridInfo` corresponding to the supplied `detailGridId`. */\n GridApi.prototype.getDetailGridInfo = function (id) {\n return this.detailGridInfoMap[id];\n };\n /** Iterates through each `DetailGridInfo` in the grid and calls the supplied callback on each. */\n GridApi.prototype.forEachDetailGridInfo = function (callback) {\n var index = 0;\n iterateObject(this.detailGridInfoMap, function (id, gridInfo) {\n // check for undefined, as old references will still be lying around\n if (exists(gridInfo)) {\n callback(gridInfo, index);\n index++;\n }\n });\n };\n /** Similar to `exportDataAsCsv`, except returns the result as a string rather than download it. */\n GridApi.prototype.getDataAsCsv = function (params) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.CsvExportModule, 'api.getDataAsCsv', this.context.getGridId())) {\n return this.csvCreator.getDataAsCsv(params);\n }\n };\n /** Downloads a CSV export of the grid's data. */\n GridApi.prototype.exportDataAsCsv = function (params) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.CsvExportModule, 'api.exportDataAsCSv', this.context.getGridId())) {\n this.csvCreator.exportDataAsCsv(params);\n }\n };\n GridApi.prototype.getExcelExportMode = function (params) {\n var baseParams = this.gos.get('defaultExcelExportParams');\n var mergedParams = Object.assign({ exportMode: 'xlsx' }, baseParams, params);\n return mergedParams.exportMode;\n };\n GridApi.prototype.assertNotExcelMultiSheet = function (method, params) {\n if (!ModuleRegistry.__assertRegistered(ModuleNames.ExcelExportModule, 'api.' + method, this.context.getGridId())) {\n return false;\n }\n var exportMode = this.getExcelExportMode(params);\n if (this.excelCreator.getFactoryMode(exportMode) === ExcelFactoryMode.MULTI_SHEET) {\n console.warn(\"AG Grid: The Excel Exporter is currently on Multi Sheet mode. End that operation by calling 'api.getMultipleSheetAsExcel()' or 'api.exportMultipleSheetsAsExcel()'\");\n return false;\n }\n return true;\n };\n /** Similar to `exportDataAsExcel`, except instead of downloading a file, it will return a [Blob](https://developer.mozilla.org/en-US/docs/Web/API/Blob) to be processed by the user. */\n GridApi.prototype.getDataAsExcel = function (params) {\n if (this.assertNotExcelMultiSheet('getDataAsExcel', params)) {\n return this.excelCreator.getDataAsExcel(params);\n }\n };\n /** Downloads an Excel export of the grid's data. */\n GridApi.prototype.exportDataAsExcel = function (params) {\n if (this.assertNotExcelMultiSheet('exportDataAsExcel', params)) {\n this.excelCreator.exportDataAsExcel(params);\n }\n };\n /** This is method to be used to get the grid's data as a sheet, that will later be exported either by `getMultipleSheetsAsExcel()` or `exportMultipleSheetsAsExcel()`. */\n GridApi.prototype.getSheetDataForExcel = function (params) {\n if (!ModuleRegistry.__assertRegistered(ModuleNames.ExcelExportModule, 'api.getSheetDataForExcel', this.context.getGridId())) {\n return;\n }\n var exportMode = this.getExcelExportMode(params);\n this.excelCreator.setFactoryMode(ExcelFactoryMode.MULTI_SHEET, exportMode);\n return this.excelCreator.getSheetDataForExcel(params);\n };\n /** Similar to `exportMultipleSheetsAsExcel`, except instead of downloading a file, it will return a [Blob](https://developer.mozilla.org/en-US/docs/Web/API/Blob) to be processed by the user. */\n GridApi.prototype.getMultipleSheetsAsExcel = function (params) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.ExcelExportModule, 'api.getMultipleSheetsAsExcel', this.context.getGridId())) {\n return this.excelCreator.getMultipleSheetsAsExcel(params);\n }\n };\n /** Downloads an Excel export of multiple sheets in one file. */\n GridApi.prototype.exportMultipleSheetsAsExcel = function (params) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.ExcelExportModule, 'api.exportMultipleSheetsAsExcel', this.context.getGridId())) {\n return this.excelCreator.exportMultipleSheetsAsExcel(params);\n }\n };\n /** Sets the `treeData` property. */\n GridApi.prototype.setTreeData = function (newTreeData) {\n this.gos.set('treeData', newTreeData);\n };\n /**\n * Sets an ARIA property in the grid panel (element with `role=\\\"grid\\\"`), and removes an ARIA property when the value is null.\n *\n * Example: `api.setGridAriaProperty('label', 'my grid')` will set `aria-label=\\\"my grid\\\"`.\n *\n * `api.setGridAriaProperty('label', null)` will remove the `aria-label` attribute from the grid element.\n */\n GridApi.prototype.setGridAriaProperty = function (property, value) {\n if (!property) {\n return;\n }\n var eGrid = this.ctrlsService.getGridBodyCtrl().getGui();\n var ariaProperty = \"aria-\" + property;\n if (value === null) {\n eGrid.removeAttribute(ariaProperty);\n }\n else {\n eGrid.setAttribute(ariaProperty, value);\n }\n };\n GridApi.prototype.logMissingRowModel = function (apiMethod) {\n var requiredRowModels = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n requiredRowModels[_i - 1] = arguments[_i];\n }\n console.error(\"AG Grid: api.\" + apiMethod + \" can only be called when gridOptions.rowModelType is \" + requiredRowModels.join(' or '));\n };\n /** Set new datasource for Server-Side Row Model. */\n GridApi.prototype.setServerSideDatasource = function (datasource) {\n if (this.serverSideRowModel) {\n this.serverSideRowModel.setDatasource(datasource);\n }\n else {\n this.logMissingRowModel('setServerSideDatasource', 'serverSide');\n }\n };\n /**\n * Updates the `cacheBlockSize` when requesting data from the server if `suppressServerSideInfiniteScroll` is not enabled.\n *\n * Note this purges all the cached data and reloads all the rows of the grid.\n * */\n GridApi.prototype.setCacheBlockSize = function (blockSize) {\n if (this.serverSideRowModel) {\n this.gos.set('cacheBlockSize', blockSize);\n this.serverSideRowModel.resetRootStore();\n }\n else {\n this.logMissingRowModel('setCacheBlockSize', 'serverSide');\n }\n };\n /** Set new datasource for Infinite Row Model. */\n GridApi.prototype.setDatasource = function (datasource) {\n if (this.gos.isRowModelType('infinite')) {\n this.rowModel.setDatasource(datasource);\n }\n else {\n this.logMissingRowModel('setDatasource', 'infinite');\n }\n };\n /** Set new datasource for Viewport Row Model. */\n GridApi.prototype.setViewportDatasource = function (viewportDatasource) {\n if (this.gos.isRowModelType('viewport')) {\n // this is bad coding, because it's using an interface that's exposed in the enterprise.\n // really we should create an interface in the core for viewportDatasource and let\n // the enterprise implement it, rather than casting to 'any' here\n this.rowModel.setViewportDatasource(viewportDatasource);\n }\n else {\n this.logMissingRowModel('setViewportDatasource', 'viewport');\n }\n };\n /** Set the row data. */\n GridApi.prototype.setRowData = function (rowData) {\n // immutable service is part of the CSRM module, if missing, no CSRM\n var missingImmutableService = this.immutableService == null;\n if (missingImmutableService) {\n this.logMissingRowModel('setRowData', 'clientSide');\n return;\n }\n // if no keys provided provided for rows, then we can tread the operation as Immutable\n if (this.immutableService.isActive()) {\n this.immutableService.setRowData(rowData);\n }\n else {\n this.selectionService.reset();\n this.clientSideRowModel.setRowData(rowData);\n }\n };\n /** Set the top pinned rows. Call with no rows / undefined to clear top pinned rows. */\n GridApi.prototype.setPinnedTopRowData = function (rows) {\n this.pinnedRowModel.setPinnedTopRowData(rows);\n };\n /** Set the bottom pinned rows. Call with no rows / undefined to clear bottom pinned rows. */\n GridApi.prototype.setPinnedBottomRowData = function (rows) {\n this.pinnedRowModel.setPinnedBottomRowData(rows);\n };\n /** Gets the number of top pinned rows. */\n GridApi.prototype.getPinnedTopRowCount = function () {\n return this.pinnedRowModel.getPinnedTopRowCount();\n };\n /** Gets the number of bottom pinned rows. */\n GridApi.prototype.getPinnedBottomRowCount = function () {\n return this.pinnedRowModel.getPinnedBottomRowCount();\n };\n /** Gets the top pinned row with the specified index. */\n GridApi.prototype.getPinnedTopRow = function (index) {\n return this.pinnedRowModel.getPinnedTopRow(index);\n };\n /** Gets the bottom pinned row with the specified index. */\n GridApi.prototype.getPinnedBottomRow = function (index) {\n return this.pinnedRowModel.getPinnedBottomRow(index);\n };\n /**\n * Call to set new column definitions. The grid will redraw all the column headers, and then redraw all of the rows.\n */\n GridApi.prototype.setColumnDefs = function (colDefs, source) {\n if (source === void 0) { source = \"api\"; }\n this.columnModel.setColumnDefs(colDefs, source);\n // Keep gridOptions.columnDefs in sync\n this.gos.set('columnDefs', colDefs, true, { source: source });\n };\n /** Call to set new auto group column definition. The grid will recreate any auto-group columns if present. */\n GridApi.prototype.setAutoGroupColumnDef = function (colDef, source) {\n if (source === void 0) { source = \"api\"; }\n this.gos.set('autoGroupColumnDef', colDef, true, { source: source });\n };\n /** Call to set new Default Column Definition. */\n GridApi.prototype.setDefaultColDef = function (colDef, source) {\n if (source === void 0) { source = \"api\"; }\n this.gos.set('defaultColDef', colDef, true, { source: source });\n };\n /** Call to set new Column Types. */\n GridApi.prototype.setColumnTypes = function (columnTypes, source) {\n if (source === void 0) { source = \"api\"; }\n this.gos.set('columnTypes', columnTypes, true, { source: source });\n };\n GridApi.prototype.expireValueCache = function () {\n this.valueCache.expire();\n };\n /**\n * Returns an object with two properties:\n * - `top`: The top pixel position of the current scroll in the grid\n * - `bottom`: The bottom pixel position of the current scroll in the grid\n */\n GridApi.prototype.getVerticalPixelRange = function () {\n return this.gridBodyCtrl.getScrollFeature().getVScrollPosition();\n };\n /**\n * Returns an object with two properties:\n * - `left`: The left pixel position of the current scroll in the grid\n * - `right`: The right pixel position of the current scroll in the grid\n */\n GridApi.prototype.getHorizontalPixelRange = function () {\n return this.gridBodyCtrl.getScrollFeature().getHScrollPosition();\n };\n /** If `true`, the horizontal scrollbar will always be present, even if not required. Otherwise, it will only be displayed when necessary. */\n GridApi.prototype.setAlwaysShowHorizontalScroll = function (show) {\n this.gos.set('alwaysShowHorizontalScroll', show);\n };\n /** If `true`, the vertical scrollbar will always be present, even if not required. Otherwise it will only be displayed when necessary. */\n GridApi.prototype.setAlwaysShowVerticalScroll = function (show) {\n this.gos.set('alwaysShowVerticalScroll', show);\n };\n /** Performs change detection on all cells, refreshing cells where required. */\n GridApi.prototype.refreshCells = function (params) {\n if (params === void 0) { params = {}; }\n this.rowRenderer.refreshCells(params);\n };\n /** Flash rows, columns or individual cells. */\n GridApi.prototype.flashCells = function (params) {\n if (params === void 0) { params = {}; }\n this.rowRenderer.flashCells(params);\n };\n /** Remove row(s) from the DOM and recreate them again from scratch. */\n GridApi.prototype.redrawRows = function (params) {\n if (params === void 0) { params = {}; }\n var rowNodes = params ? params.rowNodes : undefined;\n this.rowRenderer.redrawRows(rowNodes);\n };\n GridApi.prototype.setFunctionsReadOnly = function (readOnly) {\n this.gos.set('functionsReadOnly', readOnly);\n };\n /** Redraws the header. Useful if a column name changes, or something else that changes how the column header is displayed. */\n GridApi.prototype.refreshHeader = function () {\n this.ctrlsService.getHeaderRowContainerCtrls().forEach(function (c) { return c.refresh(); });\n };\n /** Returns `true` if any filter is set. This includes quick filter, column filter, external filter or advanced filter. */\n GridApi.prototype.isAnyFilterPresent = function () {\n return this.filterManager.isAnyFilterPresent();\n };\n /** Returns `true` if any column filter is set, otherwise `false`. */\n GridApi.prototype.isColumnFilterPresent = function () {\n return this.filterManager.isColumnFilterPresent() || this.filterManager.isAggregateFilterPresent();\n };\n /** Returns `true` if the Quick Filter is set, otherwise `false`. */\n GridApi.prototype.isQuickFilterPresent = function () {\n return this.filterManager.isQuickFilterPresent();\n };\n /**\n * Returns the row model inside the table.\n * From here you can see the original rows, rows after filter has been applied,\n * rows after aggregation has been applied, and the final set of 'to be displayed' rows.\n */\n GridApi.prototype.getModel = function () {\n return this.rowModel;\n };\n /** Expand or collapse a specific row node, optionally expanding/collapsing all of its parent nodes. */\n GridApi.prototype.setRowNodeExpanded = function (rowNode, expanded, expandParents) {\n if (rowNode) {\n // expand all parents recursively, except root node.\n if (expandParents && rowNode.parent && rowNode.parent.level !== -1) {\n this.setRowNodeExpanded(rowNode.parent, expanded, expandParents);\n }\n rowNode.setExpanded(expanded);\n }\n };\n /**\n * Informs the grid that row group expanded state has changed and it needs to rerender the group nodes.\n * Typically called after updating the row node expanded state explicitly, i.e `rowNode.expanded = false`,\n * across multiple groups and you want to update the grid view in a single rerender instead of on every group change.\n */\n GridApi.prototype.onGroupExpandedOrCollapsed = function () {\n if (missing(this.clientSideRowModel)) {\n this.logMissingRowModel('onGroupExpandedOrCollapsed', 'clientSide');\n return;\n }\n // we don't really want the user calling this if only one rowNode was expanded, instead they should be\n // calling rowNode.setExpanded(boolean) - this way we do a 'keepRenderedRows=false' so that the whole\n // grid gets refreshed again - otherwise the row with the rowNodes that were changed won't get updated,\n // and thus the expand icon in the group cell won't get 'opened' or 'closed'.\n this.clientSideRowModel.refreshModel({ step: ClientSideRowModelSteps.MAP });\n };\n /**\n * Refresh the Client-Side Row Model, executing the grouping, filtering and sorting again.\n * Optionally provide the step you wish the refresh to apply from. Defaults to `everything`.\n */\n GridApi.prototype.refreshClientSideRowModel = function (step) {\n if (missing(this.clientSideRowModel)) {\n this.logMissingRowModel('refreshClientSideRowModel', 'clientSide');\n return;\n }\n this.clientSideRowModel.refreshModel(step);\n };\n /** Returns `true` when there are no more animation frames left to process. */\n GridApi.prototype.isAnimationFrameQueueEmpty = function () {\n return this.animationFrameService.isQueueEmpty();\n };\n GridApi.prototype.flushAllAnimationFrames = function () {\n this.animationFrameService.flushAllFrames();\n };\n /**\n * Returns the row node with the given ID.\n * The row node ID is the one you provide from the callback `getRowId(params)`,\n * otherwise the ID is a number (cast as string) auto-generated by the grid when\n * the row data is set.\n */\n GridApi.prototype.getRowNode = function (id) {\n return this.rowModel.getRowNode(id);\n };\n /**\n * Gets the sizes that various UI elements will be rendered at with the current theme.\n * If you override the row or header height using `gridOptions`, the override value you provided will be returned.\n */\n GridApi.prototype.getSizesForCurrentTheme = function () {\n return {\n rowHeight: this.gos.getRowHeightAsNumber(),\n headerHeight: this.columnModel.getHeaderHeight()\n };\n };\n /** Expand all groups. */\n GridApi.prototype.expandAll = function () {\n if (this.clientSideRowModel) {\n this.clientSideRowModel.expandOrCollapseAll(true);\n }\n else if (this.serverSideRowModel) {\n this.serverSideRowModel.expandAll(true);\n }\n else {\n this.logMissingRowModel('expandAll', 'clientSide', 'serverSide');\n }\n };\n /** Collapse all groups. */\n GridApi.prototype.collapseAll = function () {\n if (this.clientSideRowModel) {\n this.clientSideRowModel.expandOrCollapseAll(false);\n }\n else if (this.serverSideRowModel) {\n this.serverSideRowModel.expandAll(false);\n }\n else {\n this.logMissingRowModel('expandAll', 'clientSide', 'serverSide');\n }\n };\n /**\n * Registers a callback to a virtual row.\n * A virtual row is a row that is visually rendered on the screen (rows that are not visible because of the scroll position are not rendered).\n * Unlike normal events, you do not need to unregister rendered row listeners.\n * When the rendered row is removed from the grid, all associated rendered row listeners will also be removed.\n * listen for this event if your `cellRenderer` needs to do cleanup when the row no longer exists.\n */\n GridApi.prototype.addRenderedRowListener = function (eventName, rowIndex, callback) {\n this.rowRenderer.addRenderedRowListener(eventName, rowIndex, callback);\n };\n /** Get the current Quick Filter text from the grid, or `undefined` if none is set. */\n GridApi.prototype.getQuickFilter = function () {\n return this.gos.get('quickFilterText');\n };\n /** Pass a Quick Filter text into the grid for filtering. */\n GridApi.prototype.setQuickFilter = function (newFilter) {\n this.gos.set('quickFilterText', newFilter);\n };\n /**\n * @deprecated As of v30, hidden columns are excluded from the Quick Filter by default. To include hidden columns, use `setIncludeHiddenColumnsInQuickFilter` instead.\n */\n GridApi.prototype.setExcludeHiddenColumnsFromQuickFilter = function (value) {\n logDeprecation('30', 'setExcludeHiddenColumnsFromQuickFilter', undefined, 'Hidden columns are now excluded from the Quick Filter by default. This can be toggled using `setIncludeHiddenColumnsInQuickFilter`');\n this.setIncludeHiddenColumnsInQuickFilter(!value);\n };\n /**\n * Updates the `includeHiddenColumnsInQuickFilter` grid option.\n * By default hidden columns are excluded from the Quick Filter.\n * Set to `true` to include them.\n */\n GridApi.prototype.setIncludeHiddenColumnsInQuickFilter = function (value) {\n this.gos.set('includeHiddenColumnsInQuickFilter', value);\n };\n /**\n * Updates the `quickFilterParser` grid option,\n * which changes how the Quick Filter splits the Quick Filter text into search terms.\n */\n GridApi.prototype.setQuickFilterParser = function (quickFilterParser) {\n this.gos.set('quickFilterParser', quickFilterParser);\n };\n /**\n * Updates the `quickFilterMatcher` grid option,\n * which changes the matching logic for whether a row passes the Quick Filter.\n */\n GridApi.prototype.setQuickFilterMatcher = function (quickFilterMatcher) {\n this.gos.set('quickFilterMatcher', quickFilterMatcher);\n };\n /** Get the state of the Advanced Filter. Used for saving Advanced Filter state */\n GridApi.prototype.getAdvancedFilterModel = function () {\n if (ModuleRegistry.__assertRegistered(ModuleNames.AdvancedFilterModule, 'api.getAdvancedFilterModel', this.context.getGridId())) {\n return this.filterManager.getAdvancedFilterModel();\n }\n return null;\n };\n /** Set the state of the Advanced Filter. Used for restoring Advanced Filter state */\n GridApi.prototype.setAdvancedFilterModel = function (advancedFilterModel) {\n this.gos.set('advancedFilterModel', advancedFilterModel);\n };\n /** Enable/disable the Advanced Filter */\n GridApi.prototype.setEnableAdvancedFilter = function (enabled) {\n this.gos.set('enableAdvancedFilter', enabled);\n };\n /**\n * Updates the `includeHiddenColumnsInAdvancedFilter` grid option.\n * By default hidden columns are excluded from the Advanced Filter.\n * Set to `true` to include them.\n */\n GridApi.prototype.setIncludeHiddenColumnsInAdvancedFilter = function (value) {\n this.gos.set('includeHiddenColumnsInAdvancedFilter', value);\n };\n /**\n * DOM element to use as the parent for the Advanced Filter, to allow it to appear outside of the grid.\n * Set to `null` to appear inside the grid.\n */\n GridApi.prototype.setAdvancedFilterParent = function (advancedFilterParent) {\n this.gos.set('advancedFilterParent', advancedFilterParent);\n };\n /** Updates the Advanced Filter Builder parameters. */\n GridApi.prototype.setAdvancedFilterBuilderParams = function (params) {\n this.gos.set('advancedFilterBuilderParams', params);\n };\n /** Open the Advanced Filter Builder dialog (if enabled). */\n GridApi.prototype.showAdvancedFilterBuilder = function () {\n if (ModuleRegistry.__assertRegistered(ModuleNames.AdvancedFilterModule, 'api.setAdvancedFilterModel', this.context.getGridId())) {\n this.filterManager.showAdvancedFilterBuilder('api');\n }\n };\n /**\n * Set all of the provided nodes selection state to the provided value.\n */\n GridApi.prototype.setNodesSelected = function (params) {\n var allNodesValid = params.nodes.every(function (node) {\n if (node.rowPinned) {\n console.warn('AG Grid: cannot select pinned rows');\n return false;\n }\n if (node.id === undefined) {\n console.warn('AG Grid: cannot select node until id for node is known');\n return false;\n }\n return true;\n });\n if (!allNodesValid) {\n return;\n }\n var nodes = params.nodes, source = params.source, newValue = params.newValue;\n var nodesAsRowNode = nodes;\n this.selectionService.setNodesSelected({ nodes: nodesAsRowNode, source: source !== null && source !== void 0 ? source : 'api', newValue: newValue });\n };\n /**\n * Select all rows, regardless of filtering and rows that are not visible due to grouping being enabled and their groups not expanded.\n * @param source Source property that will appear in the `selectionChanged` event, defaults to `'apiSelectAll'`\n */\n GridApi.prototype.selectAll = function (source) {\n if (source === void 0) { source = 'apiSelectAll'; }\n this.selectionService.selectAllRowNodes({ source: source });\n };\n /**\n * Clear all row selections, regardless of filtering.\n * @param source Source property that will appear in the `selectionChanged` event, defaults to `'apiSelectAll'`\n */\n GridApi.prototype.deselectAll = function (source) {\n if (source === void 0) { source = 'apiSelectAll'; }\n this.selectionService.deselectAllRowNodes({ source: source });\n };\n /**\n * Select all filtered rows.\n * @param source Source property that will appear in the `selectionChanged` event, defaults to `'apiSelectAllFiltered'`\n */\n GridApi.prototype.selectAllFiltered = function (source) {\n if (source === void 0) { source = 'apiSelectAllFiltered'; }\n this.selectionService.selectAllRowNodes({ source: source, justFiltered: true });\n };\n /**\n * Clear all filtered selections.\n * @param source Source property that will appear in the `selectionChanged` event, defaults to `'apiSelectAllFiltered'`\n */\n GridApi.prototype.deselectAllFiltered = function (source) {\n if (source === void 0) { source = 'apiSelectAllFiltered'; }\n this.selectionService.deselectAllRowNodes({ source: source, justFiltered: true });\n };\n /**\n * Returns an object containing rules matching the selected rows in the SSRM.\n *\n * If `groupSelectsChildren=false` the returned object will be flat, and will conform to IServerSideSelectionState.\n * If `groupSelectsChildren=true` the returned object will be hierarchical, and will conform to IServerSideGroupSelectionState.\n */\n GridApi.prototype.getServerSideSelectionState = function () {\n if (missing(this.serverSideRowModel)) {\n this.logMissingRowModel('getServerSideSelectionState', 'serverSide');\n return null;\n }\n return this.selectionService.getServerSideSelectionState();\n };\n /**\n * Set the rules matching the selected rows in the SSRM.\n *\n * If `groupSelectsChildren=false` the param will be flat, and should conform to IServerSideSelectionState.\n * If `groupSelectsChildren=true` the param will be hierarchical, and should conform to IServerSideGroupSelectionState.\n */\n GridApi.prototype.setServerSideSelectionState = function (state) {\n if (missing(this.serverSideRowModel)) {\n this.logMissingRowModel('setServerSideSelectionState', 'serverSide');\n return;\n }\n this.selectionService.setServerSideSelectionState(state);\n };\n /**\n * Select all rows on the current page.\n * @param source Source property that will appear in the `selectionChanged` event, defaults to `'apiSelectAllCurrentPage'`\n */\n GridApi.prototype.selectAllOnCurrentPage = function (source) {\n if (source === void 0) { source = 'apiSelectAllCurrentPage'; }\n this.selectionService.selectAllRowNodes({ source: source, justCurrentPage: true });\n };\n /**\n * Clear all filtered on the current page.\n * @param source Source property that will appear in the `selectionChanged` event, defaults to `'apiSelectAllCurrentPage'`\n */\n GridApi.prototype.deselectAllOnCurrentPage = function (source) {\n if (source === void 0) { source = 'apiSelectAllCurrentPage'; }\n this.selectionService.deselectAllRowNodes({ source: source, justCurrentPage: true });\n };\n /**\n * Sets columns to adjust in size to fit the grid horizontally. If inferring cell data types with custom column types\n * and row data is provided asynchronously, the column sizing will happen asynchronously when row data is added.\n * To always perform this synchronously, set `cellDataType = false` on the default column definition.\n **/\n GridApi.prototype.sizeColumnsToFit = function (params) {\n this.gridBodyCtrl.sizeColumnsToFit(params);\n };\n /** Show the 'loading' overlay. */\n GridApi.prototype.showLoadingOverlay = function () {\n this.overlayWrapperComp.showLoadingOverlay();\n };\n /** Show the 'no rows' overlay. */\n GridApi.prototype.showNoRowsOverlay = function () {\n this.overlayWrapperComp.showNoRowsOverlay();\n };\n /** Hides the overlay if showing. */\n GridApi.prototype.hideOverlay = function () {\n this.overlayWrapperComp.hideOverlay();\n };\n /**\n * Returns an unsorted list of selected nodes.\n * Getting the underlying node (rather than the data) is useful when working with tree / aggregated data,\n * as the node can be traversed.\n */\n GridApi.prototype.getSelectedNodes = function () {\n return this.selectionService.getSelectedNodes();\n };\n /** Returns an unsorted list of selected rows (i.e. row data that you provided). */\n GridApi.prototype.getSelectedRows = function () {\n return this.selectionService.getSelectedRows();\n };\n /**\n * Returns a list of all selected nodes at 'best cost', a feature to be used with groups / trees.\n * If a group has all its children selected, then the group appears in the result, but not the children.\n * Designed for use with `'children'` as the group selection type, where groups don't actually appear in the selection normally.\n */\n GridApi.prototype.getBestCostNodeSelection = function () {\n if (missing(this.clientSideRowModel)) {\n this.logMissingRowModel('getBestCostNodeSelection', 'clientSide');\n return;\n }\n return this.selectionService.getBestCostNodeSelection();\n };\n /** Retrieve rendered nodes. Due to virtualisation this will contain only the current visible rows and those in the buffer. */\n GridApi.prototype.getRenderedNodes = function () {\n return this.rowRenderer.getRenderedNodes();\n };\n /**\n * Ensures the column is visible by scrolling the table if needed.\n *\n * This will have no effect before the firstDataRendered event has fired.\n *\n * @param key - The column to ensure visible\n * @param position - Where the column will be positioned.\n * - `auto` - Scrolls the minimum amount to make sure the column is visible.\n * - `start` - Scrolls the column to the start of the viewport.\n * - `middle` - Scrolls the column to the middle of the viewport.\n * - `end` - Scrolls the column to the end of the viewport.\n */\n GridApi.prototype.ensureColumnVisible = function (key, position) {\n if (position === void 0) { position = 'auto'; }\n this.gridBodyCtrl.getScrollFeature().ensureColumnVisible(key, position);\n };\n /**\n * Vertically scrolls the grid until the provided row index is inside the visible viewport.\n * If a position is provided, the grid will attempt to scroll until the row is at the given position within the viewport.\n * This will have no effect before the firstDataRendered event has fired.\n */\n GridApi.prototype.ensureIndexVisible = function (index, position) {\n this.gridBodyCtrl.getScrollFeature().ensureIndexVisible(index, position);\n };\n /**\n * Vertically scrolls the grid until the provided row (or a row matching the provided comparator) is inside the visible viewport.\n * If a position is provided, the grid will attempt to scroll until the row is at the given position within the viewport.\n * This will have no effect before the firstDataRendered event has fired.\n */\n GridApi.prototype.ensureNodeVisible = function (nodeSelector, position) {\n if (position === void 0) { position = null; }\n this.gridBodyCtrl.getScrollFeature().ensureNodeVisible(nodeSelector, position);\n };\n /**\n * Similar to `forEachNode`, except lists all the leaf nodes.\n * This effectively goes through all the data that you provided to the grid before the grid performed any grouping.\n * If using tree data, goes through all the nodes for the data you provided, including nodes that have children,\n * but excluding groups the grid created where gaps were missing in the hierarchy.\n */\n GridApi.prototype.forEachLeafNode = function (callback) {\n if (missing(this.clientSideRowModel)) {\n this.logMissingRowModel('forEachLeafNode', 'clientSide');\n return;\n }\n this.clientSideRowModel.forEachLeafNode(callback);\n };\n /**\n * Iterates through each node (row) in the grid and calls the callback for each node.\n * This works similar to the `forEach` method on a JavaScript array.\n * This is called for every node, ignoring any filtering or sorting applied within the grid.\n * If using the Infinite Row Model, then this gets called for each page loaded in the page cache.\n */\n GridApi.prototype.forEachNode = function (callback, includeFooterNodes) {\n this.rowModel.forEachNode(callback, includeFooterNodes);\n };\n /** Similar to `forEachNode`, except skips any filtered out data. */\n GridApi.prototype.forEachNodeAfterFilter = function (callback) {\n if (missing(this.clientSideRowModel)) {\n this.logMissingRowModel('forEachNodeAfterFilter', 'clientSide');\n return;\n }\n this.clientSideRowModel.forEachNodeAfterFilter(callback);\n };\n /** Similar to `forEachNodeAfterFilter`, except the callbacks are called in the order the rows are displayed in the grid. */\n GridApi.prototype.forEachNodeAfterFilterAndSort = function (callback) {\n if (missing(this.clientSideRowModel)) {\n this.logMissingRowModel('forEachNodeAfterFilterAndSort', 'clientSide');\n return;\n }\n this.clientSideRowModel.forEachNodeAfterFilterAndSort(callback);\n };\n /**\n * Returns the filter component instance for a column.\n * `key` can be a string field name or a ColDef object (matches on object reference, useful if field names are not unique).\n * If your filter is created asynchronously, `getFilterInstance` will return `null` so you will need to use the `callback` to access the filter instance instead.\n */\n GridApi.prototype.getFilterInstance = function (key, callback) {\n return this.filterManager.getFilterInstance(key, callback);\n };\n /** Destroys a filter. Useful to force a particular filter to be created from scratch again. */\n GridApi.prototype.destroyFilter = function (key) {\n var column = this.columnModel.getPrimaryColumn(key);\n if (column) {\n return this.filterManager.destroyFilter(column, 'api');\n }\n };\n /** Gets the status panel instance corresponding to the supplied `id`. */\n GridApi.prototype.getStatusPanel = function (key) {\n if (!ModuleRegistry.__assertRegistered(ModuleNames.StatusBarModule, 'api.getStatusPanel', this.context.getGridId())) {\n return;\n }\n var comp = this.statusBarService.getStatusPanel(key);\n return unwrapUserComp(comp);\n };\n GridApi.prototype.getColumnDef = function (key) {\n var column = this.columnModel.getPrimaryColumn(key);\n if (column) {\n return column.getColDef();\n }\n return null;\n };\n /**\n * Returns the current column definitions.\n */\n GridApi.prototype.getColumnDefs = function () { return this.columnModel.getColumnDefs(); };\n /**\n * Informs the grid that a filter has changed. This is typically called after a filter change through one of the filter APIs.\n * @param source The source of the filter change event. If not specified defaults to `'api'`.\n */\n GridApi.prototype.onFilterChanged = function (source) {\n if (source === void 0) { source = 'api'; }\n this.filterManager.onFilterChanged({ source: source });\n };\n /**\n * Gets the grid to act as if the sort was changed.\n * Useful if you update some values and want to get the grid to reorder them according to the new values.\n */\n GridApi.prototype.onSortChanged = function () {\n this.sortController.onSortChanged('api');\n };\n /**\n * Sets the state of all the column filters. Provide it with what you get from `getFilterModel()` to restore filter state.\n * If inferring cell data types, and row data is provided asynchronously and is yet to be set,\n * the filter model will be applied asynchronously after row data is added.\n * To always perform this synchronously, set `cellDataType = false` on the default column definition,\n * or provide cell data types for every column.\n */\n GridApi.prototype.setFilterModel = function (model) {\n this.filterManager.setFilterModel(model);\n };\n /** Gets the current state of all the column filters. Used for saving filter state. */\n GridApi.prototype.getFilterModel = function () {\n return this.filterManager.getFilterModel();\n };\n /** Returns the focused cell (or the last focused cell if the grid lost focus). */\n GridApi.prototype.getFocusedCell = function () {\n return this.focusService.getFocusedCell();\n };\n /** Clears the focused cell. */\n GridApi.prototype.clearFocusedCell = function () {\n return this.focusService.clearFocusedCell();\n };\n /** Sets the focus to the specified cell. `rowPinned` can be either 'top', 'bottom' or null (for not pinned). */\n GridApi.prototype.setFocusedCell = function (rowIndex, colKey, rowPinned) {\n this.focusService.setFocusedCell({ rowIndex: rowIndex, column: colKey, rowPinned: rowPinned, forceBrowserFocus: true });\n };\n /** Sets the `suppressRowDrag` property. */\n GridApi.prototype.setSuppressRowDrag = function (value) {\n this.gos.set('suppressRowDrag', value);\n };\n /** Sets the `suppressMoveWhenRowDragging` property. */\n GridApi.prototype.setSuppressMoveWhenRowDragging = function (value) {\n this.gos.set('suppressMoveWhenRowDragging', value);\n };\n /** Sets the `suppressRowClickSelection` property. */\n GridApi.prototype.setSuppressRowClickSelection = function (value) {\n this.gos.set('suppressRowClickSelection', value);\n };\n /** Adds a drop zone outside of the grid where rows can be dropped. */\n GridApi.prototype.addRowDropZone = function (params) {\n this.gridBodyCtrl.getRowDragFeature().addRowDropZone(params);\n };\n /** Removes an external drop zone added by `addRowDropZone`. */\n GridApi.prototype.removeRowDropZone = function (params) {\n var activeDropTarget = this.dragAndDropService.findExternalZone(params);\n if (activeDropTarget) {\n this.dragAndDropService.removeDropTarget(activeDropTarget);\n }\n };\n /** Returns the `RowDropZoneParams` to be used by another grid's `addRowDropZone` method. */\n GridApi.prototype.getRowDropZoneParams = function (events) {\n return this.gridBodyCtrl.getRowDragFeature().getRowDropZone(events);\n };\n /** Sets the height in pixels for the row containing the column label header. */\n GridApi.prototype.setHeaderHeight = function (headerHeight) {\n this.gos.set('headerHeight', headerHeight);\n };\n /**\n * Switch between layout options: `normal`, `autoHeight`, `print`.\n * Defaults to `normal` if no domLayout provided.\n */\n GridApi.prototype.setDomLayout = function (domLayout) {\n this.gos.set('domLayout', domLayout);\n };\n /** Sets the `enableCellTextSelection` property. */\n GridApi.prototype.setEnableCellTextSelection = function (selectable) {\n this.gridBodyCtrl.setCellTextSelection(selectable);\n };\n /** Sets the preferred direction for the selection fill handle. */\n GridApi.prototype.setFillHandleDirection = function (direction) {\n this.gos.set('fillHandleDirection', direction);\n };\n /** Sets the height in pixels for the rows containing header column groups. */\n GridApi.prototype.setGroupHeaderHeight = function (headerHeight) {\n this.gos.set('groupHeaderHeight', headerHeight);\n };\n /** Sets the height in pixels for the row containing the floating filters. */\n GridApi.prototype.setFloatingFiltersHeight = function (headerHeight) {\n this.gos.set('floatingFiltersHeight', headerHeight);\n };\n /** Sets the height in pixels for the row containing the columns when in pivot mode. */\n GridApi.prototype.setPivotHeaderHeight = function (headerHeight) {\n this.gos.set('pivotHeaderHeight', headerHeight);\n };\n /** Sets the height in pixels for the row containing header column groups when in pivot mode. */\n GridApi.prototype.setPivotGroupHeaderHeight = function (headerHeight) {\n this.gos.set('pivotGroupHeaderHeight', headerHeight);\n };\n GridApi.prototype.setPivotMode = function (pivotMode) {\n this.columnModel.setPivotMode(pivotMode);\n };\n GridApi.prototype.setAnimateRows = function (animateRows) {\n this.gos.set('animateRows', animateRows);\n };\n GridApi.prototype.setIsExternalFilterPresent = function (isExternalFilterPresentFunc) {\n this.gos.set('isExternalFilterPresent', isExternalFilterPresentFunc);\n };\n GridApi.prototype.setDoesExternalFilterPass = function (doesExternalFilterPassFunc) {\n this.gos.set('doesExternalFilterPass', doesExternalFilterPassFunc);\n };\n GridApi.prototype.setNavigateToNextCell = function (navigateToNextCellFunc) {\n this.gos.set('navigateToNextCell', navigateToNextCellFunc);\n };\n GridApi.prototype.setTabToNextCell = function (tabToNextCellFunc) {\n this.gos.set('tabToNextCell', tabToNextCellFunc);\n };\n GridApi.prototype.setTabToNextHeader = function (tabToNextHeaderFunc) {\n this.gos.set('tabToNextHeader', tabToNextHeaderFunc);\n };\n GridApi.prototype.setNavigateToNextHeader = function (navigateToNextHeaderFunc) {\n this.gos.set('navigateToNextHeader', navigateToNextHeaderFunc);\n };\n GridApi.prototype.setRowGroupPanelShow = function (rowGroupPanelShow) {\n this.gos.set('rowGroupPanelShow', rowGroupPanelShow);\n };\n GridApi.prototype.setGetGroupRowAgg = function (getGroupRowAggFunc) {\n this.gos.set('getGroupRowAgg', getGroupRowAggFunc);\n };\n GridApi.prototype.setGetBusinessKeyForNode = function (getBusinessKeyForNodeFunc) {\n this.gos.set('getBusinessKeyForNode', getBusinessKeyForNodeFunc);\n };\n GridApi.prototype.setGetChildCount = function (getChildCountFunc) {\n this.gos.set('getChildCount', getChildCountFunc);\n };\n GridApi.prototype.setProcessRowPostCreate = function (processRowPostCreateFunc) {\n this.gos.set('processRowPostCreate', processRowPostCreateFunc);\n };\n GridApi.prototype.setGetRowId = function (getRowIdFunc) {\n this.gos.set('getRowId', getRowIdFunc);\n };\n GridApi.prototype.setGetRowClass = function (rowClassFunc) {\n this.gos.set('getRowClass', rowClassFunc);\n };\n GridApi.prototype.setIsFullWidthRow = function (isFullWidthRowFunc) {\n this.gos.set('isFullWidthRow', isFullWidthRowFunc);\n };\n GridApi.prototype.setIsRowSelectable = function (isRowSelectableFunc) {\n this.gos.set('isRowSelectable', isRowSelectableFunc);\n };\n GridApi.prototype.setIsRowMaster = function (isRowMasterFunc) {\n this.gos.set('isRowMaster', isRowMasterFunc);\n };\n GridApi.prototype.setPostSortRows = function (postSortRowsFunc) {\n this.gos.set('postSortRows', postSortRowsFunc);\n };\n GridApi.prototype.setGetDocument = function (getDocumentFunc) {\n this.gos.set('getDocument', getDocumentFunc);\n };\n GridApi.prototype.setGetContextMenuItems = function (getContextMenuItemsFunc) {\n this.gos.set('getContextMenuItems', getContextMenuItemsFunc);\n };\n GridApi.prototype.setGetMainMenuItems = function (getMainMenuItemsFunc) {\n this.gos.set('getMainMenuItems', getMainMenuItemsFunc);\n };\n GridApi.prototype.setProcessCellForClipboard = function (processCellForClipboardFunc) {\n this.gos.set('processCellForClipboard', processCellForClipboardFunc);\n };\n GridApi.prototype.setSendToClipboard = function (sendToClipboardFunc) {\n this.gos.set('sendToClipboard', sendToClipboardFunc);\n };\n GridApi.prototype.setProcessCellFromClipboard = function (processCellFromClipboardFunc) {\n this.gos.set('processCellFromClipboard', processCellFromClipboardFunc);\n };\n /** @deprecated v28 use `setProcessPivotResultColDef` instead */\n GridApi.prototype.setProcessSecondaryColDef = function (processSecondaryColDefFunc) {\n logDeprecation('28.0', 'setProcessSecondaryColDef', 'setProcessPivotResultColDef');\n this.setProcessPivotResultColDef(processSecondaryColDefFunc);\n };\n /** @deprecated v28 use `setProcessPivotResultColGroupDef` instead */\n GridApi.prototype.setProcessSecondaryColGroupDef = function (processSecondaryColGroupDefFunc) {\n logDeprecation('28.0', 'setProcessSecondaryColGroupDef', 'setProcessPivotResultColGroupDef');\n this.setProcessPivotResultColGroupDef(processSecondaryColGroupDefFunc);\n };\n GridApi.prototype.setProcessPivotResultColDef = function (processPivotResultColDefFunc) {\n this.gos.set('processPivotResultColDef', processPivotResultColDefFunc);\n };\n GridApi.prototype.setProcessPivotResultColGroupDef = function (processPivotResultColGroupDefFunc) {\n this.gos.set('processPivotResultColGroupDef', processPivotResultColGroupDefFunc);\n };\n GridApi.prototype.setPostProcessPopup = function (postProcessPopupFunc) {\n this.gos.set('postProcessPopup', postProcessPopupFunc);\n };\n GridApi.prototype.setInitialGroupOrderComparator = function (initialGroupOrderComparatorFunc) {\n this.gos.set('initialGroupOrderComparator', initialGroupOrderComparatorFunc);\n };\n GridApi.prototype.setGetChartToolbarItems = function (getChartToolbarItemsFunc) {\n this.gos.set('getChartToolbarItems', getChartToolbarItemsFunc);\n };\n GridApi.prototype.setPaginationNumberFormatter = function (paginationNumberFormatterFunc) {\n this.gos.set('paginationNumberFormatter', paginationNumberFormatterFunc);\n };\n /** @deprecated v28 use setGetServerSideGroupLevelParams instead */\n GridApi.prototype.setGetServerSideStoreParams = function (getServerSideStoreParamsFunc) {\n logDeprecation('28.0', 'setGetServerSideStoreParams', 'setGetServerSideGroupLevelParams');\n this.setGetServerSideGroupLevelParams(getServerSideStoreParamsFunc);\n };\n GridApi.prototype.setGetServerSideGroupLevelParams = function (getServerSideGroupLevelParamsFunc) {\n this.gos.set('getServerSideGroupLevelParams', getServerSideGroupLevelParamsFunc);\n };\n GridApi.prototype.setIsServerSideGroupOpenByDefault = function (isServerSideGroupOpenByDefaultFunc) {\n this.gos.set('isServerSideGroupOpenByDefault', isServerSideGroupOpenByDefaultFunc);\n };\n GridApi.prototype.setIsApplyServerSideTransaction = function (isApplyServerSideTransactionFunc) {\n this.gos.set('isApplyServerSideTransaction', isApplyServerSideTransactionFunc);\n };\n GridApi.prototype.setIsServerSideGroup = function (isServerSideGroupFunc) {\n this.gos.set('isServerSideGroup', isServerSideGroupFunc);\n };\n GridApi.prototype.setGetServerSideGroupKey = function (getServerSideGroupKeyFunc) {\n this.gos.set('getServerSideGroupKey', getServerSideGroupKeyFunc);\n };\n GridApi.prototype.setGetRowStyle = function (rowStyleFunc) {\n this.gos.set('getRowStyle', rowStyleFunc);\n };\n GridApi.prototype.setGetRowHeight = function (rowHeightFunc) {\n this.gos.set('getRowHeight', rowHeightFunc);\n };\n GridApi.prototype.assertSideBarLoaded = function (apiMethod) {\n return ModuleRegistry.__assertRegistered(ModuleNames.SideBarModule, 'api.' + apiMethod, this.context.getGridId());\n };\n /** Returns `true` if the side bar is visible. */\n GridApi.prototype.isSideBarVisible = function () {\n return this.assertSideBarLoaded('isSideBarVisible') && this.sideBarComp.isDisplayed();\n };\n /** Show/hide the entire side bar, including any visible panel and the tab buttons. */\n GridApi.prototype.setSideBarVisible = function (show) {\n if (this.assertSideBarLoaded('setSideBarVisible')) {\n this.sideBarComp.setDisplayed(show);\n }\n };\n /** Sets the side bar position relative to the grid. Possible values are `'left'` or `'right'`. */\n GridApi.prototype.setSideBarPosition = function (position) {\n if (this.assertSideBarLoaded('setSideBarPosition')) {\n this.sideBarComp.setSideBarPosition(position);\n }\n };\n /** Opens a particular tool panel. Provide the ID of the tool panel to open. */\n GridApi.prototype.openToolPanel = function (key) {\n if (this.assertSideBarLoaded('openToolPanel')) {\n this.sideBarComp.openToolPanel(key, 'api');\n }\n };\n /** Closes the currently open tool panel (if any). */\n GridApi.prototype.closeToolPanel = function () {\n if (this.assertSideBarLoaded('closeToolPanel')) {\n this.sideBarComp.close('api');\n }\n };\n /** Returns the ID of the currently shown tool panel if any, otherwise `null`. */\n GridApi.prototype.getOpenedToolPanel = function () {\n if (this.assertSideBarLoaded('getOpenedToolPanel')) {\n return this.sideBarComp.openedItem();\n }\n return null;\n };\n /** Force refresh all tool panels by calling their `refresh` method. */\n GridApi.prototype.refreshToolPanel = function () {\n if (this.assertSideBarLoaded('refreshToolPanel')) {\n this.sideBarComp.refresh();\n }\n };\n /** Returns `true` if the tool panel is showing, otherwise `false`. */\n GridApi.prototype.isToolPanelShowing = function () {\n return this.assertSideBarLoaded('isToolPanelShowing') && this.sideBarComp.isToolPanelShowing();\n };\n /** Gets the tool panel instance corresponding to the supplied `id`. */\n GridApi.prototype.getToolPanelInstance = function (id) {\n if (this.assertSideBarLoaded('getToolPanelInstance')) {\n var comp = this.sideBarComp.getToolPanelInstance(id);\n return unwrapUserComp(comp);\n }\n };\n /** Returns the current side bar configuration. If a shortcut was used, returns the detailed long form. */\n GridApi.prototype.getSideBar = function () {\n if (this.assertSideBarLoaded('getSideBar')) {\n return this.sideBarComp.getDef();\n }\n return undefined;\n };\n /** Resets the side bar to the provided configuration. The parameter is the same as the sideBar grid property. The side bar is re-created from scratch with the new config. */\n GridApi.prototype.setSideBar = function (def) {\n this.gos.set('sideBar', def);\n };\n GridApi.prototype.setSuppressClipboardPaste = function (value) {\n this.gos.set('suppressClipboardPaste', value);\n };\n /** Tells the grid to recalculate the row heights. */\n GridApi.prototype.resetRowHeights = function () {\n if (exists(this.clientSideRowModel)) {\n if (this.columnModel.isAutoRowHeightActive()) {\n console.warn('AG Grid: calling gridApi.resetRowHeights() makes no sense when using Auto Row Height.');\n return;\n }\n this.clientSideRowModel.resetRowHeights();\n }\n };\n GridApi.prototype.setGroupRemoveSingleChildren = function (value) {\n this.gos.set('groupRemoveSingleChildren', value);\n };\n GridApi.prototype.setGroupRemoveLowestSingleChildren = function (value) {\n this.gos.set('groupRemoveLowestSingleChildren', value);\n };\n GridApi.prototype.setGroupDisplayType = function (value) {\n this.gos.set('groupDisplayType', value);\n };\n /**\n * Sets the `groupIncludeFooter` property\n */\n GridApi.prototype.setGroupIncludeFooter = function (value) {\n this.gos.set('groupIncludeFooter', value);\n };\n /**\n * Sets the `groupIncludeTotalFooter` property\n */\n GridApi.prototype.setGroupIncludeTotalFooter = function (value) {\n this.gos.set('groupIncludeTotalFooter', value);\n };\n GridApi.prototype.setRowClass = function (className) {\n this.gos.set('rowClass', className);\n };\n /** Sets the `deltaSort` property */\n GridApi.prototype.setDeltaSort = function (enable) {\n this.gos.set('deltaSort', enable);\n };\n /**\n * Sets the `rowCount` and `maxRowFound` properties.\n * The second parameter, `maxRowFound`, is optional and if left out, only `rowCount` is set.\n * Set `rowCount` to adjust the height of the vertical scroll.\n * Set `maxRowFound` to enable / disable searching for more rows.\n * Use this method if you add or remove rows into the dataset and need to reset the number of rows or instruct the grid that the entire row count is no longer known.\n */\n GridApi.prototype.setRowCount = function (rowCount, maxRowFound) {\n if (this.serverSideRowModel) {\n if (this.columnModel.isRowGroupEmpty()) {\n this.serverSideRowModel.setRowCount(rowCount, maxRowFound);\n return;\n }\n console.error('AG Grid: setRowCount cannot be used while using row grouping.');\n return;\n }\n if (this.infiniteRowModel) {\n this.infiniteRowModel.setRowCount(rowCount, maxRowFound);\n return;\n }\n this.logMissingRowModel('setRowCount', 'infinite', 'serverSide');\n };\n /** Tells the grid a row height has changed. To be used after calling `rowNode.setRowHeight(newHeight)`. */\n GridApi.prototype.onRowHeightChanged = function () {\n if (this.clientSideRowModel) {\n this.clientSideRowModel.onRowHeightChanged();\n }\n else if (this.serverSideRowModel) {\n this.serverSideRowModel.onRowHeightChanged();\n }\n };\n /**\n * Gets the value for a column for a particular `rowNode` (row).\n * This is useful if you want the raw value of a cell e.g. if implementing your own CSV export.\n */\n GridApi.prototype.getValue = function (colKey, rowNode) {\n var column = this.columnModel.getPrimaryColumn(colKey);\n if (missing(column)) {\n column = this.columnModel.getGridColumn(colKey);\n }\n if (missing(column)) {\n return null;\n }\n return this.valueService.getValue(column, rowNode);\n };\n /** Add an event listener for the specified `eventType`. Works similar to `addEventListener` for a browser DOM element. */\n GridApi.prototype.addEventListener = function (eventType, listener) {\n var async = this.gos.useAsyncEvents();\n this.eventService.addEventListener(eventType, listener, async);\n };\n /** Add an event listener for all event types coming from the grid. */\n GridApi.prototype.addGlobalListener = function (listener) {\n var async = this.gos.useAsyncEvents();\n this.eventService.addGlobalListener(listener, async);\n };\n /** Remove an event listener. */\n GridApi.prototype.removeEventListener = function (eventType, listener) {\n var async = this.gos.useAsyncEvents();\n this.eventService.removeEventListener(eventType, listener, async);\n };\n /** Remove a global event listener. */\n GridApi.prototype.removeGlobalListener = function (listener) {\n var async = this.gos.useAsyncEvents();\n this.eventService.removeGlobalListener(listener, async);\n };\n GridApi.prototype.dispatchEvent = function (event) {\n this.eventService.dispatchEvent(event);\n };\n /** Will destroy the grid and release resources. If you are using a framework you do not need to call this, as the grid links in with the framework lifecycle. However if you are using Web Components or native JavaScript, you do need to call this, to avoid a memory leak in your application. */\n GridApi.prototype.destroy = function () {\n // this is needed as GridAPI is a bean, and GridAPI.destroy() is called as part\n // of context.destroy(). so we need to stop the infinite loop.\n if (this.destroyCalled) {\n return;\n }\n this.destroyCalled = true;\n this.dispatchEvent({ type: Events.EVENT_GRID_PRE_DESTROYED });\n // destroy the UI first (as they use the services)\n var gridCtrl = this.ctrlsService.getGridCtrl();\n if (gridCtrl) {\n gridCtrl.destroyGridUi();\n }\n // destroy the services\n this.context.destroy();\n };\n GridApi.prototype.cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid = function () {\n // some users were raising support issues with regards memory leaks. the problem was the customers applications\n // were keeping references to the API. trying to educate them all would be difficult, easier to just remove\n // all references in the API so at least the core grid can be garbage collected.\n //\n // wait about 100ms before clearing down the references, in case user has some cleanup to do,\n // and needs to deference the API first\n setTimeout(removeAllReferences.bind(window, this, 'Grid API'), 100);\n };\n GridApi.prototype.warnIfDestroyed = function (methodName) {\n if (this.destroyCalled) {\n console.warn(\"AG Grid: Grid API method \" + methodName + \" was called on a grid that was destroyed.\");\n }\n return this.destroyCalled;\n };\n /** Reset the Quick Filter cache text on every rowNode. */\n GridApi.prototype.resetQuickFilter = function () {\n if (this.warnIfDestroyed('resetQuickFilter')) {\n return;\n }\n this.filterManager.resetQuickFilterCache();\n };\n /** Returns the list of selected cell ranges. */\n GridApi.prototype.getCellRanges = function () {\n if (this.rangeService) {\n return this.rangeService.getCellRanges();\n }\n ModuleRegistry.__assertRegistered(ModuleNames.RangeSelectionModule, 'api.getCellRanges', this.context.getGridId());\n return null;\n };\n /** Adds the provided cell range to the selected ranges. */\n GridApi.prototype.addCellRange = function (params) {\n if (this.rangeService) {\n this.rangeService.addCellRange(params);\n return;\n }\n ModuleRegistry.__assertRegistered(ModuleNames.RangeSelectionModule, 'api.addCellRange', this.context.getGridId());\n };\n /** Clears the selected ranges. */\n GridApi.prototype.clearRangeSelection = function () {\n if (this.rangeService) {\n this.rangeService.removeAllCellRanges();\n }\n ModuleRegistry.__assertRegistered(ModuleNames.RangeSelectionModule, 'gridApi.clearRangeSelection', this.context.getGridId());\n };\n /** Reverts the last cell edit. */\n GridApi.prototype.undoCellEditing = function () {\n this.undoRedoService.undo('api');\n };\n /** Re-applies the most recently undone cell edit. */\n GridApi.prototype.redoCellEditing = function () {\n this.undoRedoService.redo('api');\n };\n /** Returns current number of available cell edit undo operations. */\n GridApi.prototype.getCurrentUndoSize = function () {\n return this.undoRedoService.getCurrentUndoStackSize();\n };\n /** Returns current number of available cell edit redo operations. */\n GridApi.prototype.getCurrentRedoSize = function () {\n return this.undoRedoService.getCurrentRedoStackSize();\n };\n /** Returns a list of models with information about the charts that are currently rendered from the grid. */\n GridApi.prototype.getChartModels = function () {\n if (ModuleRegistry.__assertRegistered(ModuleNames.GridChartsModule, 'api.getChartModels', this.context.getGridId())) {\n return this.chartService.getChartModels();\n }\n };\n /** Returns the `ChartRef` using the supplied `chartId`. */\n GridApi.prototype.getChartRef = function (chartId) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.GridChartsModule, 'api.getChartRef', this.context.getGridId())) {\n return this.chartService.getChartRef(chartId);\n }\n };\n /** Returns a base64-encoded image data URL for the referenced chartId. */\n GridApi.prototype.getChartImageDataURL = function (params) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.GridChartsModule, 'api.getChartImageDataURL', this.context.getGridId())) {\n return this.chartService.getChartImageDataURL(params);\n }\n };\n /** Starts a browser-based image download for the referenced chartId. */\n GridApi.prototype.downloadChart = function (params) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.GridChartsModule, 'api.downloadChart', this.context.getGridId())) {\n return this.chartService.downloadChart(params);\n }\n };\n /** Open the Chart Tool Panel. */\n GridApi.prototype.openChartToolPanel = function (params) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.GridChartsModule, 'api.openChartToolPanel', this.context.getGridId())) {\n return this.chartService.openChartToolPanel(params);\n }\n };\n /** Close the Chart Tool Panel. */\n GridApi.prototype.closeChartToolPanel = function (params) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.GridChartsModule, 'api.closeChartToolPanel', this.context.getGridId())) {\n return this.chartService.closeChartToolPanel(params.chartId);\n }\n };\n /** Used to programmatically create charts from a range. */\n GridApi.prototype.createRangeChart = function (params) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.GridChartsModule, 'api.createRangeChart', this.context.getGridId())) {\n return this.chartService.createRangeChart(params);\n }\n };\n /** Used to programmatically create pivot charts from a grid. */\n GridApi.prototype.createPivotChart = function (params) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.GridChartsModule, 'api.createPivotChart', this.context.getGridId())) {\n return this.chartService.createPivotChart(params);\n }\n };\n /** Used to programmatically create cross filter charts from a range. */\n GridApi.prototype.createCrossFilterChart = function (params) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.GridChartsModule, 'api.createCrossFilterChart', this.context.getGridId())) {\n return this.chartService.createCrossFilterChart(params);\n }\n };\n /** Used to programmatically update a chart. */\n GridApi.prototype.updateChart = function (params) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.GridChartsModule, 'api.updateChart', this.context.getGridId())) {\n this.chartService.updateChart(params);\n }\n };\n /** Restores a chart using the `ChartModel` that was previously obtained from `getChartModels()`. */\n GridApi.prototype.restoreChart = function (chartModel, chartContainer) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.GridChartsModule, 'api.restoreChart', this.context.getGridId())) {\n return this.chartService.restoreChart(chartModel, chartContainer);\n }\n };\n /** Copies data to clipboard by following the same rules as pressing Ctrl+C. */\n GridApi.prototype.copyToClipboard = function (params) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.ClipboardModule, 'api.copyToClipboard', this.context.getGridId())) {\n this.clipboardService.copyToClipboard(params);\n }\n };\n /** Cuts data to clipboard by following the same rules as pressing Ctrl+X. */\n GridApi.prototype.cutToClipboard = function (params) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.ClipboardModule, 'api.cutToClipboard', this.context.getGridId())) {\n this.clipboardService.cutToClipboard(params, 'api');\n }\n };\n /** Copies the selected rows to the clipboard. */\n GridApi.prototype.copySelectedRowsToClipboard = function (params) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.ClipboardModule, 'api.copySelectedRowsToClipboard', this.context.getGridId())) {\n this.clipboardService.copySelectedRowsToClipboard(params);\n }\n };\n /** Copies the selected ranges to the clipboard. */\n GridApi.prototype.copySelectedRangeToClipboard = function (params) {\n if (ModuleRegistry.__assertRegistered(ModuleNames.ClipboardModule, 'api.copySelectedRangeToClipboard', this.context.getGridId())) {\n this.clipboardService.copySelectedRangeToClipboard(params);\n }\n };\n /** Copies the selected range down, similar to `Ctrl + D` in Excel. */\n GridApi.prototype.copySelectedRangeDown = function () {\n if (ModuleRegistry.__assertRegistered(ModuleNames.ClipboardModule, 'api.copySelectedRangeDown', this.context.getGridId())) {\n this.clipboardService.copyRangeDown();\n }\n };\n /** Pastes the data from the Clipboard into the focused cell of the grid. If no grid cell is focused, calling this method has no effect. */\n GridApi.prototype.pasteFromClipboard = function () {\n if (ModuleRegistry.__assertRegistered(ModuleNames.ClipboardModule, 'api.pasteFromClipboard', this.context.getGridId())) {\n this.clipboardService.pasteFromClipboard();\n }\n };\n /** Shows the column menu after and positions it relative to the provided button element. Use in conjunction with your own header template. */\n GridApi.prototype.showColumnMenuAfterButtonClick = function (colKey, buttonElement) {\n // use grid column so works with pivot mode\n var column = this.columnModel.getGridColumn(colKey);\n this.menuFactory.showMenuAfterButtonClick(column, buttonElement, 'columnMenu');\n };\n /** Shows the column menu after and positions it relative to the mouse event. Use in conjunction with your own header template. */\n GridApi.prototype.showColumnMenuAfterMouseClick = function (colKey, mouseEvent) {\n // use grid column so works with pivot mode\n var column = this.columnModel.getGridColumn(colKey);\n if (!column) {\n column = this.columnModel.getPrimaryColumn(colKey);\n }\n if (!column) {\n console.error(\"AG Grid: column '\" + colKey + \"' not found\");\n return;\n }\n this.menuFactory.showMenuAfterMouseEvent(column, mouseEvent);\n };\n /** Hides any visible context menu or column menu. */\n GridApi.prototype.hidePopupMenu = function () {\n // hide the context menu if in enterprise\n if (this.contextMenuFactory) {\n this.contextMenuFactory.hideActiveMenu();\n }\n // and hide the column menu always\n this.menuFactory.hideActiveMenu();\n };\n /** DOM element to use as the popup parent for grid popups (context menu, column menu etc). */\n GridApi.prototype.setPopupParent = function (ePopupParent) {\n this.gos.set('popupParent', ePopupParent);\n };\n /** Navigates the grid focus to the next cell, as if tabbing. */\n GridApi.prototype.tabToNextCell = function (event) {\n return this.navigationService.tabToNextCell(false, event);\n };\n /** Navigates the grid focus to the previous cell, as if shift-tabbing. */\n GridApi.prototype.tabToPreviousCell = function (event) {\n return this.navigationService.tabToNextCell(true, event);\n };\n /** Returns the list of active cell renderer instances. */\n GridApi.prototype.getCellRendererInstances = function (params) {\n if (params === void 0) { params = {}; }\n var res = this.rowRenderer.getCellRendererInstances(params);\n var unwrapped = res.map(unwrapUserComp);\n return unwrapped;\n };\n /** Returns the list of active cell editor instances. Optionally provide parameters to restrict to certain columns / row nodes. */\n GridApi.prototype.getCellEditorInstances = function (params) {\n if (params === void 0) { params = {}; }\n var res = this.rowRenderer.getCellEditorInstances(params);\n var unwrapped = res.map(unwrapUserComp);\n return unwrapped;\n };\n /** If the grid is editing, returns back details of the editing cell(s). */\n GridApi.prototype.getEditingCells = function () {\n return this.rowRenderer.getEditingCells();\n };\n /** If a cell is editing, it stops the editing. Pass `true` if you want to cancel the editing (i.e. don't accept changes). */\n GridApi.prototype.stopEditing = function (cancel) {\n if (cancel === void 0) { cancel = false; }\n this.rowRenderer.stopEditing(cancel);\n };\n /** Start editing the provided cell. If another cell is editing, the editing will be stopped in that other cell. */\n GridApi.prototype.startEditingCell = function (params) {\n var column = this.columnModel.getGridColumn(params.colKey);\n if (!column) {\n console.warn(\"AG Grid: no column found for \" + params.colKey);\n return;\n }\n var cellPosition = {\n rowIndex: params.rowIndex,\n rowPinned: params.rowPinned || null,\n column: column\n };\n var notPinned = params.rowPinned == null;\n if (notPinned) {\n this.gridBodyCtrl.getScrollFeature().ensureIndexVisible(params.rowIndex);\n }\n var cell = this.navigationService.getCellByPosition(cellPosition);\n if (!cell) {\n return;\n }\n if (!this.focusService.isCellFocused(cellPosition)) {\n this.focusService.setFocusedCell(cellPosition);\n }\n cell.startRowOrCellEdit(params.key);\n };\n /** Add an aggregation function with the specified key. */\n GridApi.prototype.addAggFunc = function (key, aggFunc) {\n if (this.aggFuncService) {\n this.aggFuncService.addAggFunc(key, aggFunc);\n }\n };\n /** Add aggregations function with the specified keys. */\n GridApi.prototype.addAggFuncs = function (aggFuncs) {\n if (this.aggFuncService) {\n this.aggFuncService.addAggFuncs(aggFuncs);\n }\n };\n /** Clears all aggregation functions (including those provided by the grid). */\n GridApi.prototype.clearAggFuncs = function () {\n if (this.aggFuncService) {\n this.aggFuncService.clear();\n }\n };\n /** Apply transactions to the server side row model. */\n GridApi.prototype.applyServerSideTransaction = function (transaction) {\n if (!this.serverSideTransactionManager) {\n this.logMissingRowModel('applyServerSideTransaction', 'serverSide');\n return;\n }\n return this.serverSideTransactionManager.applyTransaction(transaction);\n };\n /** Batch apply transactions to the server side row model. */\n GridApi.prototype.applyServerSideTransactionAsync = function (transaction, callback) {\n if (!this.serverSideTransactionManager) {\n this.logMissingRowModel('applyServerSideTransactionAsync', 'serverSide');\n return;\n }\n return this.serverSideTransactionManager.applyTransactionAsync(transaction, callback);\n };\n /**\n * Applies row data to a server side store.\n * New rows will overwrite rows at the same index in the same way as if provided by a datasource success callback.\n *\n * startRow is only applicable when `suppressServerSideInfiniteScroll=true`\n */\n GridApi.prototype.applyServerSideRowData = function (params) {\n var _a, _b;\n var startRow = (_a = params.startRow) !== null && _a !== void 0 ? _a : 0;\n var route = (_b = params.route) !== null && _b !== void 0 ? _b : [];\n if (startRow < 0) {\n console.warn(\"AG Grid: invalid value \" + params.startRow + \" for startRow, the value should be >= 0\");\n return;\n }\n if (this.serverSideRowModel) {\n this.serverSideRowModel.applyRowData(params.successParams, startRow, route);\n }\n else {\n this.logMissingRowModel('setServerSideDatasource', 'serverSide');\n }\n };\n /** Gets all failed server side loads to retry. */\n GridApi.prototype.retryServerSideLoads = function () {\n if (!this.serverSideRowModel) {\n this.logMissingRowModel('retryServerSideLoads', 'serverSide');\n return;\n }\n this.serverSideRowModel.retryLoads();\n };\n GridApi.prototype.flushServerSideAsyncTransactions = function () {\n if (!this.serverSideTransactionManager) {\n this.logMissingRowModel('flushServerSideAsyncTransactions', 'serverSide');\n return;\n }\n return this.serverSideTransactionManager.flushAsyncTransactions();\n };\n /** Update row data. Pass a transaction object with lists for `add`, `remove` and `update`. */\n GridApi.prototype.applyTransaction = function (rowDataTransaction) {\n if (!this.clientSideRowModel) {\n this.logMissingRowModel('applyTransaction', 'clientSide');\n return;\n }\n return this.clientSideRowModel.updateRowData(rowDataTransaction);\n };\n /** Same as `applyTransaction` except executes asynchronously for efficiency. */\n GridApi.prototype.applyTransactionAsync = function (rowDataTransaction, callback) {\n if (!this.clientSideRowModel) {\n this.logMissingRowModel('applyTransactionAsync', 'clientSide');\n return;\n }\n this.clientSideRowModel.batchUpdateRowData(rowDataTransaction, callback);\n };\n /** Executes any remaining asynchronous grid transactions, if any are waiting to be executed. */\n GridApi.prototype.flushAsyncTransactions = function () {\n if (!this.clientSideRowModel) {\n this.logMissingRowModel('flushAsyncTransactions', 'clientSide');\n return;\n }\n this.clientSideRowModel.flushAsyncTransactions();\n };\n GridApi.prototype.setSuppressModelUpdateAfterUpdateTransaction = function (value) {\n this.gos.set('suppressModelUpdateAfterUpdateTransaction', value);\n };\n /**\n * Marks all the currently loaded blocks in the cache for reload.\n * If you have 10 blocks in the cache, all 10 will be marked for reload.\n * The old data will continue to be displayed until the new data is loaded.\n */\n GridApi.prototype.refreshInfiniteCache = function () {\n if (this.infiniteRowModel) {\n this.infiniteRowModel.refreshCache();\n }\n else {\n this.logMissingRowModel('refreshInfiniteCache', 'infinite');\n }\n };\n /**\n * Purges the cache.\n * The grid is then told to refresh. Only the blocks required to display the current data on screen are fetched (typically no more than 2).\n * The grid will display nothing while the new blocks are loaded.\n * Use this to immediately remove the old data from the user.\n */\n GridApi.prototype.purgeInfiniteCache = function () {\n if (this.infiniteRowModel) {\n this.infiniteRowModel.purgeCache();\n }\n else {\n this.logMissingRowModel('purgeInfiniteCache', 'infinite');\n }\n };\n /**\n * Refresh a server-side store level.\n * If you pass no parameters, then the top level store is refreshed.\n * To refresh a child level, pass in the string of keys to get to the desired level.\n * Once the store refresh is complete, the storeRefreshed event is fired.\n */\n GridApi.prototype.refreshServerSide = function (params) {\n if (!this.serverSideRowModel) {\n this.logMissingRowModel('refreshServerSide', 'serverSide');\n return;\n }\n this.serverSideRowModel.refreshStore(params);\n };\n /** @deprecated v28 use `refreshServerSide` instead */\n GridApi.prototype.refreshServerSideStore = function (params) {\n logDeprecation('28.0', 'refreshServerSideStore', 'refreshServerSide');\n return this.refreshServerSide(params);\n };\n /** @deprecated v28 use `getServerSideGroupLevelState` instead */\n GridApi.prototype.getServerSideStoreState = function () {\n logDeprecation('28.0', 'getServerSideStoreState', 'getServerSideGroupLevelState');\n return this.getServerSideGroupLevelState();\n };\n /** Returns info on all server side group levels. */\n GridApi.prototype.getServerSideGroupLevelState = function () {\n if (!this.serverSideRowModel) {\n this.logMissingRowModel('getServerSideGroupLevelState', 'serverSide');\n return [];\n }\n return this.serverSideRowModel.getStoreState();\n };\n /** The row count defines how many rows the grid allows scrolling to. */\n GridApi.prototype.getInfiniteRowCount = function () {\n if (this.infiniteRowModel) {\n return this.infiniteRowModel.getRowCount();\n }\n else {\n this.logMissingRowModel('getInfiniteRowCount', 'infinite');\n }\n };\n /** Returns `true` if grid allows for scrolling past the last row to load more rows, thus providing infinite scroll. */\n GridApi.prototype.isLastRowIndexKnown = function () {\n if (this.infiniteRowModel) {\n return this.infiniteRowModel.isLastRowIndexKnown();\n }\n else {\n this.logMissingRowModel('isLastRowIndexKnown', 'infinite');\n }\n };\n /**\n * Returns an object representing the state of the cache. This is useful for debugging and understanding how the cache is working.\n */\n GridApi.prototype.getCacheBlockState = function () {\n return this.rowNodeBlockLoader.getBlockState();\n };\n /** Get the index of the first displayed row due to scrolling (includes invisible rendered rows in the buffer). */\n GridApi.prototype.getFirstDisplayedRow = function () {\n return this.rowRenderer.getFirstVirtualRenderedRow();\n };\n /** Get the index of the last displayed row due to scrolling (includes invisible rendered rows in the buffer). */\n GridApi.prototype.getLastDisplayedRow = function () {\n return this.rowRenderer.getLastVirtualRenderedRow();\n };\n /** Returns the displayed `RowNode` at the given `index`. */\n GridApi.prototype.getDisplayedRowAtIndex = function (index) {\n return this.rowModel.getRow(index);\n };\n /** Returns the total number of displayed rows. */\n GridApi.prototype.getDisplayedRowCount = function () {\n return this.rowModel.getRowCount();\n };\n /** Resets the data type definitions. This will update the columns in the grid. */\n GridApi.prototype.setDataTypeDefinitions = function (dataTypeDefinitions) {\n this.gos.set('dataTypeDefinitions', dataTypeDefinitions);\n };\n /**\n * Set whether the grid paginates the data or not.\n * - `true` to enable pagination\n * - `false` to disable pagination\n */\n GridApi.prototype.setPagination = function (value) {\n this.gos.set('pagination', value);\n };\n /**\n * Returns `true` when the last page is known.\n * This will always be `true` if you are using the Client-Side Row Model for pagination.\n * Returns `false` when the last page is not known; this only happens when using Infinite Row Model.\n */\n GridApi.prototype.paginationIsLastPageFound = function () {\n return this.paginationProxy.isLastPageFound();\n };\n /** Returns how many rows are being shown per page. */\n GridApi.prototype.paginationGetPageSize = function () {\n return this.paginationProxy.getPageSize();\n };\n /** Sets the `paginationPageSize`, then re-paginates the grid so the changes are applied immediately. */\n GridApi.prototype.paginationSetPageSize = function (size) {\n this.gos.set('paginationPageSize', size);\n };\n /** Returns the 0-based index of the page which is showing. */\n GridApi.prototype.paginationGetCurrentPage = function () {\n return this.paginationProxy.getCurrentPage();\n };\n /** Returns the total number of pages. Returns `null` if `paginationIsLastPageFound() === false`. */\n GridApi.prototype.paginationGetTotalPages = function () {\n return this.paginationProxy.getTotalPages();\n };\n /** The total number of rows. Returns `null` if `paginationIsLastPageFound() === false`. */\n GridApi.prototype.paginationGetRowCount = function () {\n return this.paginationProxy.getMasterRowCount();\n };\n /** Navigates to the next page. */\n GridApi.prototype.paginationGoToNextPage = function () {\n this.paginationProxy.goToNextPage();\n };\n /** Navigates to the previous page. */\n GridApi.prototype.paginationGoToPreviousPage = function () {\n this.paginationProxy.goToPreviousPage();\n };\n /** Navigates to the first page. */\n GridApi.prototype.paginationGoToFirstPage = function () {\n this.paginationProxy.goToFirstPage();\n };\n /** Navigates to the last page. */\n GridApi.prototype.paginationGoToLastPage = function () {\n this.paginationProxy.goToLastPage();\n };\n /** Goes to the specified page. If the page requested doesn't exist, it will go to the last page. */\n GridApi.prototype.paginationGoToPage = function (page) {\n this.paginationProxy.goToPage(page);\n };\n __decorate$1_([\n Optional('immutableService')\n ], GridApi.prototype, \"immutableService\", void 0);\n __decorate$1_([\n Optional('csvCreator')\n ], GridApi.prototype, \"csvCreator\", void 0);\n __decorate$1_([\n Optional('excelCreator')\n ], GridApi.prototype, \"excelCreator\", void 0);\n __decorate$1_([\n Autowired('rowRenderer')\n ], GridApi.prototype, \"rowRenderer\", void 0);\n __decorate$1_([\n Autowired('navigationService')\n ], GridApi.prototype, \"navigationService\", void 0);\n __decorate$1_([\n Autowired('filterManager')\n ], GridApi.prototype, \"filterManager\", void 0);\n __decorate$1_([\n Autowired('columnModel')\n ], GridApi.prototype, \"columnModel\", void 0);\n __decorate$1_([\n Autowired('selectionService')\n ], GridApi.prototype, \"selectionService\", void 0);\n __decorate$1_([\n Autowired('gridOptionsService')\n ], GridApi.prototype, \"gos\", void 0);\n __decorate$1_([\n Autowired('valueService')\n ], GridApi.prototype, \"valueService\", void 0);\n __decorate$1_([\n Autowired('alignedGridsService')\n ], GridApi.prototype, \"alignedGridsService\", void 0);\n __decorate$1_([\n Autowired('eventService')\n ], GridApi.prototype, \"eventService\", void 0);\n __decorate$1_([\n Autowired('pinnedRowModel')\n ], GridApi.prototype, \"pinnedRowModel\", void 0);\n __decorate$1_([\n Autowired('context')\n ], GridApi.prototype, \"context\", void 0);\n __decorate$1_([\n Autowired('rowModel')\n ], GridApi.prototype, \"rowModel\", void 0);\n __decorate$1_([\n Autowired('sortController')\n ], GridApi.prototype, \"sortController\", void 0);\n __decorate$1_([\n Autowired('paginationProxy')\n ], GridApi.prototype, \"paginationProxy\", void 0);\n __decorate$1_([\n Autowired('focusService')\n ], GridApi.prototype, \"focusService\", void 0);\n __decorate$1_([\n Autowired('dragAndDropService')\n ], GridApi.prototype, \"dragAndDropService\", void 0);\n __decorate$1_([\n Optional('rangeService')\n ], GridApi.prototype, \"rangeService\", void 0);\n __decorate$1_([\n Optional('clipboardService')\n ], GridApi.prototype, \"clipboardService\", void 0);\n __decorate$1_([\n Optional('aggFuncService')\n ], GridApi.prototype, \"aggFuncService\", void 0);\n __decorate$1_([\n Autowired('menuFactory')\n ], GridApi.prototype, \"menuFactory\", void 0);\n __decorate$1_([\n Optional('contextMenuFactory')\n ], GridApi.prototype, \"contextMenuFactory\", void 0);\n __decorate$1_([\n Autowired('valueCache')\n ], GridApi.prototype, \"valueCache\", void 0);\n __decorate$1_([\n Autowired('animationFrameService')\n ], GridApi.prototype, \"animationFrameService\", void 0);\n __decorate$1_([\n Optional('statusBarService')\n ], GridApi.prototype, \"statusBarService\", void 0);\n __decorate$1_([\n Optional('chartService')\n ], GridApi.prototype, \"chartService\", void 0);\n __decorate$1_([\n Optional('undoRedoService')\n ], GridApi.prototype, \"undoRedoService\", void 0);\n __decorate$1_([\n Optional('rowNodeBlockLoader')\n ], GridApi.prototype, \"rowNodeBlockLoader\", void 0);\n __decorate$1_([\n Optional('ssrmTransactionManager')\n ], GridApi.prototype, \"serverSideTransactionManager\", void 0);\n __decorate$1_([\n Autowired('ctrlsService')\n ], GridApi.prototype, \"ctrlsService\", void 0);\n __decorate$1_([\n PostConstruct\n ], GridApi.prototype, \"init\", null);\n __decorate$1_([\n PreDestroy\n ], GridApi.prototype, \"cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid\", null);\n GridApi = __decorate$1_([\n Bean('gridApi')\n ], GridApi);\n return GridApi;\n}());\n\nvar __extends$29 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1Z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar QuickFilterService = /** @class */ (function (_super) {\n __extends$29(QuickFilterService, _super);\n function QuickFilterService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.quickFilter = null;\n _this.quickFilterParts = null;\n return _this;\n }\n QuickFilterService_1 = QuickFilterService;\n QuickFilterService.prototype.postConstruct = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, function () { return _this.resetQuickFilterCache(); });\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, function () { return _this.resetQuickFilterCache(); });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, function () { return _this.resetQuickFilterCache(); });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VISIBLE, function () {\n if (!_this.gridOptionsService.is('includeHiddenColumnsInQuickFilter')) {\n _this.resetQuickFilterCache();\n }\n });\n this.addManagedPropertyListener('quickFilterText', function (e) { return _this.setQuickFilter(e.currentValue); });\n this.addManagedPropertyListener('includeHiddenColumnsInQuickFilter', function () { return _this.onIncludeHiddenColumnsInQuickFilterChanged(); });\n this.quickFilter = this.parseQuickFilter(this.gridOptionsService.get('quickFilterText'));\n this.parser = this.gridOptionsService.get('quickFilterParser');\n this.matcher = this.gridOptionsService.get('quickFilterMatcher');\n this.setQuickFilterParts();\n this.addManagedPropertyListeners(['quickFilterMatcher', 'quickFilterParser'], function () { return _this.setQuickFilterParserAndMatcher(); });\n };\n QuickFilterService.prototype.isQuickFilterPresent = function () {\n return this.quickFilter !== null;\n };\n QuickFilterService.prototype.doesRowPassQuickFilter = function (node) {\n var _this = this;\n var usingCache = this.gridOptionsService.is('cacheQuickFilter');\n if (this.matcher) {\n return this.doesRowPassQuickFilterMatcher(usingCache, node);\n }\n // each part must pass, if any fails, then the whole filter fails\n return this.quickFilterParts.every(function (part) {\n return usingCache ? _this.doesRowPassQuickFilterCache(node, part) : _this.doesRowPassQuickFilterNoCache(node, part);\n });\n };\n QuickFilterService.prototype.resetQuickFilterCache = function () {\n this.rowModel.forEachNode(function (node) { return node.quickFilterAggregateText = null; });\n };\n QuickFilterService.prototype.setQuickFilterParts = function () {\n var _a = this, quickFilter = _a.quickFilter, parser = _a.parser;\n if (quickFilter) {\n this.quickFilterParts = parser ? parser(quickFilter) : quickFilter.split(' ');\n }\n else {\n this.quickFilterParts = null;\n }\n };\n QuickFilterService.prototype.parseQuickFilter = function (newFilter) {\n if (!exists(newFilter)) {\n return null;\n }\n if (!this.gridOptionsService.isRowModelType('clientSide')) {\n console.warn('AG Grid - Quick filtering only works with the Client-Side Row Model');\n return null;\n }\n return newFilter.toUpperCase();\n };\n QuickFilterService.prototype.setQuickFilter = function (newFilter) {\n if (newFilter != null && typeof newFilter !== 'string') {\n console.warn(\"AG Grid - setQuickFilter() only supports string inputs, received: \" + typeof newFilter);\n return;\n }\n var parsedFilter = this.parseQuickFilter(newFilter);\n if (this.quickFilter !== parsedFilter) {\n this.quickFilter = parsedFilter;\n this.setQuickFilterParts();\n this.dispatchEvent({ type: QuickFilterService_1.EVENT_QUICK_FILTER_CHANGED });\n }\n };\n QuickFilterService.prototype.setQuickFilterParserAndMatcher = function () {\n var parser = this.gridOptionsService.get('quickFilterParser');\n var matcher = this.gridOptionsService.get('quickFilterMatcher');\n var hasChanged = parser !== this.parser || matcher !== this.matcher;\n this.parser = parser;\n this.matcher = matcher;\n if (hasChanged) {\n this.setQuickFilterParts();\n this.dispatchEvent({ type: QuickFilterService_1.EVENT_QUICK_FILTER_CHANGED });\n }\n };\n QuickFilterService.prototype.onIncludeHiddenColumnsInQuickFilterChanged = function () {\n this.columnModel.refreshQuickFilterColumns();\n this.resetQuickFilterCache();\n if (this.isQuickFilterPresent()) {\n this.dispatchEvent({ type: QuickFilterService_1.EVENT_QUICK_FILTER_CHANGED });\n }\n };\n QuickFilterService.prototype.doesRowPassQuickFilterNoCache = function (node, filterPart) {\n var _this = this;\n var columns = this.columnModel.getAllColumnsForQuickFilter();\n return columns.some(function (column) {\n var part = _this.getQuickFilterTextForColumn(column, node);\n return exists(part) && part.indexOf(filterPart) >= 0;\n });\n };\n QuickFilterService.prototype.doesRowPassQuickFilterCache = function (node, filterPart) {\n this.checkGenerateQuickFilterAggregateText(node);\n return node.quickFilterAggregateText.indexOf(filterPart) >= 0;\n };\n QuickFilterService.prototype.doesRowPassQuickFilterMatcher = function (usingCache, node) {\n var quickFilterAggregateText;\n if (usingCache) {\n this.checkGenerateQuickFilterAggregateText(node);\n quickFilterAggregateText = node.quickFilterAggregateText;\n }\n else {\n quickFilterAggregateText = this.getQuickFilterAggregateText(node);\n }\n var _a = this, quickFilterParts = _a.quickFilterParts, matcher = _a.matcher;\n return matcher(quickFilterParts, quickFilterAggregateText);\n };\n QuickFilterService.prototype.checkGenerateQuickFilterAggregateText = function (node) {\n if (!node.quickFilterAggregateText) {\n node.quickFilterAggregateText = this.getQuickFilterAggregateText(node);\n }\n };\n QuickFilterService.prototype.getQuickFilterTextForColumn = function (column, node) {\n var value = this.valueService.getValue(column, node, true);\n var colDef = column.getColDef();\n if (colDef.getQuickFilterText) {\n var params = {\n value: value,\n node: node,\n data: node.data,\n column: column,\n colDef: colDef,\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context\n };\n value = colDef.getQuickFilterText(params);\n }\n return exists(value) ? value.toString().toUpperCase() : null;\n };\n QuickFilterService.prototype.getQuickFilterAggregateText = function (node) {\n var _this = this;\n var stringParts = [];\n var columns = this.columnModel.getAllColumnsForQuickFilter();\n columns.forEach(function (column) {\n var part = _this.getQuickFilterTextForColumn(column, node);\n if (exists(part)) {\n stringParts.push(part);\n }\n });\n return stringParts.join(QuickFilterService_1.QUICK_FILTER_SEPARATOR);\n };\n var QuickFilterService_1;\n QuickFilterService.EVENT_QUICK_FILTER_CHANGED = 'quickFilterChanged';\n QuickFilterService.QUICK_FILTER_SEPARATOR = '\\n';\n __decorate$1Z([\n Autowired('valueService')\n ], QuickFilterService.prototype, \"valueService\", void 0);\n __decorate$1Z([\n Autowired('columnModel')\n ], QuickFilterService.prototype, \"columnModel\", void 0);\n __decorate$1Z([\n Autowired('rowModel')\n ], QuickFilterService.prototype, \"rowModel\", void 0);\n __decorate$1Z([\n PostConstruct\n ], QuickFilterService.prototype, \"postConstruct\", null);\n QuickFilterService = QuickFilterService_1 = __decorate$1Z([\n Bean('quickFilterService')\n ], QuickFilterService);\n return QuickFilterService;\n}(BeanStub));\n\nvar __extends$28 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$d = (undefined && undefined.__assign) || function () {\n __assign$d = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$d.apply(this, arguments);\n};\nvar __decorate$1Y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FilterManager = /** @class */ (function (_super) {\n __extends$28(FilterManager, _super);\n function FilterManager() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.allColumnFilters = new Map();\n _this.allColumnListeners = new Map();\n _this.activeAggregateFilters = [];\n _this.activeColumnFilters = [];\n // this is true when the grid is processing the filter change. this is used by the cell comps, so that they\n // don't flash when data changes due to filter changes. there is no need to flash when filter changes as the\n // user is in control, so doesn't make sense to show flashing changes. for example, go to main demo where\n // this feature is turned off (hack code to always return false for isSuppressFlashingCellsBecauseFiltering(), put in)\n // 100,000 rows and group by country. then do some filtering. all the cells flash, which is silly.\n _this.processingFilterChange = false;\n // when we're waiting for cell data types to be inferred, we need to defer filter model updates\n _this.filterModelUpdateQueue = [];\n return _this;\n }\n FilterManager.prototype.init = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_GRID_COLUMNS_CHANGED, function () { return _this.onColumnsChanged(); });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VALUE_CHANGED, function () { return _this.refreshFiltersForAggregations(); });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_CHANGED, function () { return _this.refreshFiltersForAggregations(); });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, function () { return _this.refreshFiltersForAggregations(); });\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, function () { return _this.updateAdvancedFilterColumns(); });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VISIBLE, function () { return _this.updateAdvancedFilterColumns(); });\n this.allowShowChangeAfterFilter = this.gridOptionsService.is('allowShowChangeAfterFilter');\n this.externalFilterPresent = this.isExternalFilterPresentCallback();\n this.updateAggFiltering();\n this.addManagedPropertyListener('groupAggFiltering', function () { return _this.updateAggFiltering(); });\n this.addManagedPropertyListener('advancedFilterModel', function (event) { return _this.setAdvancedFilterModel(event.currentValue); });\n this.addManagedListener(this.eventService, Events.EVENT_ADVANCED_FILTER_ENABLED_CHANGED, function (_a) {\n var enabled = _a.enabled;\n return _this.onAdvancedFilterEnabledChanged(enabled);\n });\n this.addManagedListener(this.eventService, Events.EVENT_DATA_TYPES_INFERRED, function () { return _this.processFilterModelUpdateQueue(); });\n this.addManagedListener(this.quickFilterService, QuickFilterService.EVENT_QUICK_FILTER_CHANGED, function () { return _this.onFilterChanged({ source: 'quickFilter' }); });\n };\n FilterManager.prototype.isExternalFilterPresentCallback = function () {\n var isFilterPresent = this.gridOptionsService.getCallback('isExternalFilterPresent');\n if (typeof isFilterPresent === 'function') {\n return isFilterPresent({});\n }\n return false;\n };\n FilterManager.prototype.doesExternalFilterPass = function (node) {\n var doesFilterPass = this.gridOptionsService.get('doesExternalFilterPass');\n if (typeof doesFilterPass === 'function') {\n return doesFilterPass(node);\n }\n return false;\n };\n FilterManager.prototype.setFilterModel = function (model) {\n var _this = this;\n if (this.isAdvancedFilterEnabled()) {\n this.warnAdvancedFilters();\n return;\n }\n if (this.dataTypeService.isPendingInference()) {\n this.filterModelUpdateQueue.push(model);\n return;\n }\n var allPromises = [];\n var previousModel = this.getFilterModel();\n if (model) {\n // mark the filters as we set them, so any active filters left over we stop\n var modelKeys_1 = convertToSet(Object.keys(model));\n this.allColumnFilters.forEach(function (filterWrapper, colId) {\n var newModel = model[colId];\n allPromises.push(_this.setModelOnFilterWrapper(filterWrapper.filterPromise, newModel));\n modelKeys_1.delete(colId);\n });\n // at this point, processedFields contains data for which we don't have a filter working yet\n modelKeys_1.forEach(function (colId) {\n var column = _this.columnModel.getPrimaryColumn(colId) || _this.columnModel.getGridColumn(colId);\n if (!column) {\n console.warn('AG Grid: setFilterModel() - no column found for colId: ' + colId);\n return;\n }\n if (!column.isFilterAllowed()) {\n console.warn('AG Grid: setFilterModel() - unable to fully apply model, filtering disabled for colId: ' + colId);\n return;\n }\n var filterWrapper = _this.getOrCreateFilterWrapper(column, 'NO_UI');\n if (!filterWrapper) {\n console.warn('AG-Grid: setFilterModel() - unable to fully apply model, unable to create filter for colId: ' + colId);\n return;\n }\n allPromises.push(_this.setModelOnFilterWrapper(filterWrapper.filterPromise, model[colId]));\n });\n }\n else {\n this.allColumnFilters.forEach(function (filterWrapper) {\n allPromises.push(_this.setModelOnFilterWrapper(filterWrapper.filterPromise, null));\n });\n }\n AgPromise.all(allPromises).then(function () {\n var currentModel = _this.getFilterModel();\n var columns = [];\n _this.allColumnFilters.forEach(function (filterWrapper, colId) {\n var before = previousModel ? previousModel[colId] : null;\n var after = currentModel ? currentModel[colId] : null;\n if (!_.jsonEquals(before, after)) {\n columns.push(filterWrapper.column);\n }\n });\n if (columns.length > 0) {\n _this.onFilterChanged({ columns: columns, source: 'api' });\n }\n });\n };\n FilterManager.prototype.setModelOnFilterWrapper = function (filterPromise, newModel) {\n return new AgPromise(function (resolve) {\n filterPromise.then(function (filter) {\n if (typeof filter.setModel !== 'function') {\n console.warn('AG Grid: filter missing setModel method, which is needed for setFilterModel');\n resolve();\n }\n (filter.setModel(newModel) || AgPromise.resolve()).then(function () { return resolve(); });\n });\n });\n };\n FilterManager.prototype.getFilterModel = function () {\n var result = {};\n this.allColumnFilters.forEach(function (filterWrapper, key) {\n // because user can provide filters, we provide useful error checking and messages\n var filterPromise = filterWrapper.filterPromise;\n var filter = filterPromise.resolveNow(null, function (promiseFilter) { return promiseFilter; });\n if (filter == null) {\n return null;\n }\n if (typeof filter.getModel !== 'function') {\n console.warn('AG Grid: filter API missing getModel method, which is needed for getFilterModel');\n return;\n }\n var model = filter.getModel();\n if (exists(model)) {\n result[key] = model;\n }\n });\n return result;\n };\n FilterManager.prototype.isColumnFilterPresent = function () {\n return this.activeColumnFilters.length > 0;\n };\n FilterManager.prototype.isAggregateFilterPresent = function () {\n return !!this.activeAggregateFilters.length;\n };\n FilterManager.prototype.isExternalFilterPresent = function () {\n return this.externalFilterPresent;\n };\n FilterManager.prototype.isChildFilterPresent = function () {\n return this.isColumnFilterPresent()\n || this.isQuickFilterPresent()\n || this.isExternalFilterPresent()\n || this.isAdvancedFilterPresent();\n };\n FilterManager.prototype.isAdvancedFilterPresent = function () {\n return this.isAdvancedFilterEnabled() && this.advancedFilterService.isFilterPresent();\n };\n FilterManager.prototype.onAdvancedFilterEnabledChanged = function (enabled) {\n var _this = this;\n var _a;\n if (enabled) {\n if (this.allColumnFilters.size) {\n this.allColumnFilters.forEach(function (filterWrapper) { return _this.disposeFilterWrapper(filterWrapper, 'advancedFilterEnabled'); });\n this.onFilterChanged({ source: 'advancedFilter' });\n }\n }\n else {\n if ((_a = this.advancedFilterService) === null || _a === void 0 ? void 0 : _a.isFilterPresent()) {\n this.advancedFilterService.setModel(null);\n this.onFilterChanged({ source: 'advancedFilter' });\n }\n }\n };\n FilterManager.prototype.isAdvancedFilterEnabled = function () {\n var _a;\n return (_a = this.advancedFilterService) === null || _a === void 0 ? void 0 : _a.isEnabled();\n };\n FilterManager.prototype.isAdvancedFilterHeaderActive = function () {\n return this.isAdvancedFilterEnabled() && this.advancedFilterService.isHeaderActive();\n };\n FilterManager.prototype.doAggregateFiltersPass = function (node, filterToSkip) {\n return this.doColumnFiltersPass(node, filterToSkip, true);\n };\n // called by:\n // 1) onFilterChanged()\n // 2) onNewRowsLoaded()\n FilterManager.prototype.updateActiveFilters = function () {\n var _this = this;\n this.activeColumnFilters.length = 0;\n this.activeAggregateFilters.length = 0;\n var isFilterActive = function (filter) {\n if (!filter) {\n return false;\n } // this never happens, including to avoid compile error\n if (!filter.isFilterActive) {\n console.warn('AG Grid: Filter is missing isFilterActive() method');\n return false;\n }\n return filter.isFilterActive();\n };\n var groupFilterEnabled = !!this.gridOptionsService.getGroupAggFiltering();\n var isAggFilter = function (column) {\n var isSecondary = !column.isPrimary();\n // the only filters that can appear on secondary columns are groupAgg filters\n if (isSecondary) {\n return true;\n }\n var isShowingPrimaryColumns = !_this.columnModel.isPivotActive();\n var isValueActive = column.isValueActive();\n // primary columns are only ever groupAgg filters if a) value is active and b) showing primary columns\n if (!isValueActive || !isShowingPrimaryColumns) {\n return false;\n }\n // from here on we know: isPrimary=true, isValueActive=true, isShowingPrimaryColumns=true\n if (_this.columnModel.isPivotMode()) {\n // primary column is pretending to be a pivot column, ie pivotMode=true, but we are\n // still showing primary columns\n return true;\n }\n // we are not pivoting, so we groupFilter when it's an agg column\n return groupFilterEnabled;\n };\n this.allColumnFilters.forEach(function (filterWrapper) {\n if (filterWrapper.filterPromise.resolveNow(false, isFilterActive)) {\n var filterComp = filterWrapper.filterPromise.resolveNow(null, function (filter) { return filter; });\n if (isAggFilter(filterWrapper.column)) {\n _this.activeAggregateFilters.push(filterComp);\n }\n else {\n _this.activeColumnFilters.push(filterComp);\n }\n }\n });\n };\n FilterManager.prototype.updateFilterFlagInColumns = function (source, additionalEventAttributes) {\n this.allColumnFilters.forEach(function (filterWrapper) {\n var isFilterActive = filterWrapper.filterPromise.resolveNow(false, function (filter) { return filter.isFilterActive(); });\n filterWrapper.column.setFilterActive(isFilterActive, source, additionalEventAttributes);\n });\n };\n FilterManager.prototype.isAnyFilterPresent = function () {\n return this.isQuickFilterPresent() || this.isColumnFilterPresent() || this.isAggregateFilterPresent() || this.isExternalFilterPresent();\n };\n FilterManager.prototype.doColumnFiltersPass = function (node, filterToSkip, targetAggregates) {\n var data = node.data, aggData = node.aggData;\n var targetedFilters = targetAggregates ? this.activeAggregateFilters : this.activeColumnFilters;\n var targetedData = targetAggregates ? aggData : data;\n for (var i = 0; i < targetedFilters.length; i++) {\n var filter = targetedFilters[i];\n if (filter == null || filter === filterToSkip) {\n continue;\n }\n if (typeof filter.doesFilterPass !== 'function') {\n // because users can do custom filters, give nice error message\n throw new Error('Filter is missing method doesFilterPass');\n }\n if (!filter.doesFilterPass({ node: node, data: targetedData })) {\n return false;\n }\n }\n return true;\n };\n FilterManager.prototype.resetQuickFilterCache = function () {\n this.quickFilterService.resetQuickFilterCache();\n };\n FilterManager.prototype.refreshFiltersForAggregations = function () {\n var isAggFiltering = this.gridOptionsService.getGroupAggFiltering();\n if (isAggFiltering) {\n this.onFilterChanged();\n }\n };\n // sometimes (especially in React) the filter can call onFilterChanged when we are in the middle\n // of a render cycle. this would be bad, so we wait for render cycle to complete when this happens.\n // this happens in react when we change React State in the grid (eg setting RowCtrl's in RowContainer)\n // which results in React State getting applied in the main application, triggering a useEffect() to\n // be kicked off adn then the application calling the grid's API. in AG-6554, the custom filter was\n // getting it's useEffect() triggered in this way.\n FilterManager.prototype.callOnFilterChangedOutsideRenderCycle = function (params) {\n var _this = this;\n var action = function () { return _this.onFilterChanged(params); };\n if (this.rowRenderer.isRefreshInProgress()) {\n setTimeout(action, 0);\n }\n else {\n action();\n }\n };\n FilterManager.prototype.onFilterChanged = function (params) {\n if (params === void 0) { params = {}; }\n var source = params.source, filterInstance = params.filterInstance, additionalEventAttributes = params.additionalEventAttributes, columns = params.columns;\n this.updateDependantFilters();\n this.updateActiveFilters();\n this.updateFilterFlagInColumns('filterChanged', additionalEventAttributes);\n this.externalFilterPresent = this.isExternalFilterPresentCallback();\n this.allColumnFilters.forEach(function (filterWrapper) {\n if (!filterWrapper.filterPromise) {\n return;\n }\n filterWrapper.filterPromise.then(function (filter) {\n if (filter && filter !== filterInstance && filter.onAnyFilterChanged) {\n filter.onAnyFilterChanged();\n }\n });\n });\n var filterChangedEvent = {\n source: source,\n type: Events.EVENT_FILTER_CHANGED,\n columns: columns || [],\n };\n if (additionalEventAttributes) {\n mergeDeep(filterChangedEvent, additionalEventAttributes);\n }\n // because internal events are not async in ag-grid, when the dispatchEvent\n // method comes back, we know all listeners have finished executing.\n this.processingFilterChange = true;\n this.eventService.dispatchEvent(filterChangedEvent);\n this.processingFilterChange = false;\n };\n FilterManager.prototype.isSuppressFlashingCellsBecauseFiltering = function () {\n // if user has elected to always flash cell changes, then always return false, otherwise we suppress flashing\n // changes when filtering\n return !this.allowShowChangeAfterFilter && this.processingFilterChange;\n };\n FilterManager.prototype.isQuickFilterPresent = function () {\n return this.quickFilterService.isQuickFilterPresent();\n };\n FilterManager.prototype.updateAggFiltering = function () {\n this.aggFiltering = !!this.gridOptionsService.getGroupAggFiltering();\n };\n FilterManager.prototype.isAggregateQuickFilterPresent = function () {\n return this.isQuickFilterPresent() && (this.aggFiltering || this.columnModel.isPivotMode());\n };\n FilterManager.prototype.isNonAggregateQuickFilterPresent = function () {\n return this.isQuickFilterPresent() && !(this.aggFiltering || this.columnModel.isPivotMode());\n };\n FilterManager.prototype.doesRowPassOtherFilters = function (filterToSkip, node) {\n return this.doesRowPassFilter({ rowNode: node, filterInstanceToSkip: filterToSkip });\n };\n FilterManager.prototype.doesRowPassAggregateFilters = function (params) {\n // check quick filter\n if (this.isAggregateQuickFilterPresent() && !this.quickFilterService.doesRowPassQuickFilter(params.rowNode)) {\n return false;\n }\n if (this.isAggregateFilterPresent() && !this.doAggregateFiltersPass(params.rowNode, params.filterInstanceToSkip)) {\n return false;\n }\n // got this far, all filters pass\n return true;\n };\n FilterManager.prototype.doesRowPassFilter = function (params) {\n // the row must pass ALL of the filters, so if any of them fail,\n // we return true. that means if a row passes the quick filter,\n // but fails the column filter, it fails overall\n // first up, check quick filter\n if (this.isNonAggregateQuickFilterPresent() && !this.quickFilterService.doesRowPassQuickFilter(params.rowNode)) {\n return false;\n }\n // secondly, give the client a chance to reject this row\n if (this.isExternalFilterPresent() && !this.doesExternalFilterPass(params.rowNode)) {\n return false;\n }\n // lastly, check column filter\n if (this.isColumnFilterPresent() && !this.doColumnFiltersPass(params.rowNode, params.filterInstanceToSkip)) {\n return false;\n }\n if (this.isAdvancedFilterPresent() && !this.advancedFilterService.doesFilterPass(params.rowNode)) {\n return false;\n }\n // got this far, all filters pass\n return true;\n };\n FilterManager.prototype.onNewRowsLoaded = function (source) {\n this.allColumnFilters.forEach(function (filterWrapper) {\n filterWrapper.filterPromise.then(function (filter) {\n if (filter.onNewRowsLoaded) {\n filter.onNewRowsLoaded();\n }\n });\n });\n this.updateFilterFlagInColumns(source, { afterDataChange: true });\n this.updateActiveFilters();\n };\n FilterManager.prototype.createValueGetter = function (column) {\n var _this = this;\n return function (_a) {\n var node = _a.node;\n return _this.valueService.getValue(column, node, true);\n };\n };\n FilterManager.prototype.getFilterComponent = function (column, source, createIfDoesNotExist) {\n var _a;\n if (createIfDoesNotExist === void 0) { createIfDoesNotExist = true; }\n if (createIfDoesNotExist) {\n return ((_a = this.getOrCreateFilterWrapper(column, source)) === null || _a === void 0 ? void 0 : _a.filterPromise) || null;\n }\n var filterWrapper = this.cachedFilter(column);\n return filterWrapper ? filterWrapper.filterPromise : null;\n };\n FilterManager.prototype.isFilterActive = function (column) {\n var filterWrapper = this.cachedFilter(column);\n return !!filterWrapper && filterWrapper.filterPromise.resolveNow(false, function (filter) { return filter.isFilterActive(); });\n };\n FilterManager.prototype.getOrCreateFilterWrapper = function (column, source) {\n var _this = this;\n if (!column.isFilterAllowed()) {\n return null;\n }\n var filterWrapper = this.cachedFilter(column);\n if (!filterWrapper) {\n filterWrapper = this.createFilterWrapper(column, source);\n var colId_1 = column.getColId();\n this.allColumnFilters.set(colId_1, filterWrapper);\n this.allColumnListeners.set(colId_1, this.addManagedListener(column, Column.EVENT_COL_DEF_CHANGED, function () { return _this.checkDestroyFilter(colId_1); }));\n }\n else if (source !== 'NO_UI') {\n this.putIntoGui(filterWrapper, source);\n }\n return filterWrapper;\n };\n FilterManager.prototype.cachedFilter = function (column) {\n return this.allColumnFilters.get(column.getColId());\n };\n FilterManager.prototype.getDefaultFilter = function (column) {\n var defaultFilter;\n if (ModuleRegistry.__isRegistered(ModuleNames.SetFilterModule, this.context.getGridId())) {\n defaultFilter = 'agSetColumnFilter';\n }\n else {\n var cellDataType = column.getColDef().cellDataType;\n if (cellDataType === 'number') {\n defaultFilter = 'agNumberColumnFilter';\n }\n else if (cellDataType === 'date' || cellDataType === 'dateString') {\n defaultFilter = 'agDateColumnFilter';\n }\n else {\n defaultFilter = 'agTextColumnFilter';\n }\n }\n return defaultFilter;\n };\n FilterManager.prototype.getDefaultFloatingFilter = function (column) {\n var defaultFloatingFilterType;\n if (ModuleRegistry.__isRegistered(ModuleNames.SetFilterModule, this.context.getGridId())) {\n defaultFloatingFilterType = 'agSetColumnFloatingFilter';\n }\n else {\n var cellDataType = column.getColDef().cellDataType;\n if (cellDataType === 'number') {\n defaultFloatingFilterType = 'agNumberColumnFloatingFilter';\n }\n else if (cellDataType === 'date' || cellDataType === 'dateString') {\n defaultFloatingFilterType = 'agDateColumnFloatingFilter';\n }\n else {\n defaultFloatingFilterType = 'agTextColumnFloatingFilter';\n }\n }\n return defaultFloatingFilterType;\n };\n FilterManager.prototype.createFilterInstance = function (column) {\n var _this = this;\n var defaultFilter = this.getDefaultFilter(column);\n var colDef = column.getColDef();\n var filterInstance;\n var params = __assign$d(__assign$d({}, this.createFilterParams(column, colDef)), { filterModifiedCallback: function () {\n var event = {\n type: Events.EVENT_FILTER_MODIFIED,\n column: column,\n filterInstance: filterInstance\n };\n _this.eventService.dispatchEvent(event);\n }, filterChangedCallback: function (additionalEventAttributes) {\n var _a;\n var source = (_a = additionalEventAttributes === null || additionalEventAttributes === void 0 ? void 0 : additionalEventAttributes.source) !== null && _a !== void 0 ? _a : 'api';\n var params = {\n filterInstance: filterInstance,\n additionalEventAttributes: additionalEventAttributes,\n columns: [column],\n source: source,\n };\n _this.callOnFilterChangedOutsideRenderCycle(params);\n }, doesRowPassOtherFilter: function (node) { return _this.doesRowPassOtherFilters(filterInstance, node); } });\n var compDetails = this.userComponentFactory.getFilterDetails(colDef, params, defaultFilter);\n if (!compDetails) {\n return { filterPromise: null, compDetails: null };\n }\n return {\n filterPromise: function () {\n var filterPromise = compDetails.newAgStackInstance();\n if (filterPromise) {\n filterPromise.then(function (r) { return filterInstance = r; });\n }\n return filterPromise;\n },\n compDetails: compDetails\n };\n };\n FilterManager.prototype.createFilterParams = function (column, colDef) {\n var params = {\n column: column,\n colDef: cloneObject(colDef),\n rowModel: this.rowModel,\n filterChangedCallback: function () { },\n filterModifiedCallback: function () { },\n valueGetter: this.createValueGetter(column),\n doesRowPassOtherFilter: function () { return true; },\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context,\n };\n return params;\n };\n FilterManager.prototype.createFilterWrapper = function (column, source) {\n var _a;\n var filterWrapper = {\n column: column,\n filterPromise: null,\n compiledElement: null,\n guiPromise: AgPromise.resolve(null),\n compDetails: null\n };\n var _b = this.createFilterInstance(column), filterPromise = _b.filterPromise, compDetails = _b.compDetails;\n filterWrapper.filterPromise = (_a = filterPromise === null || filterPromise === void 0 ? void 0 : filterPromise()) !== null && _a !== void 0 ? _a : null;\n filterWrapper.compDetails = compDetails;\n if (filterPromise) {\n this.putIntoGui(filterWrapper, source);\n }\n return filterWrapper;\n };\n FilterManager.prototype.putIntoGui = function (filterWrapper, source) {\n var _this = this;\n var eFilterGui = document.createElement('div');\n eFilterGui.className = 'ag-filter';\n filterWrapper.guiPromise = new AgPromise(function (resolve) {\n filterWrapper.filterPromise.then(function (filter) {\n var guiFromFilter = filter.getGui();\n if (!exists(guiFromFilter)) {\n console.warn(\"AG Grid: getGui method from filter returned \" + guiFromFilter + \", it should be a DOM element or an HTML template string.\");\n }\n // for backwards compatibility with Angular 1 - we\n // used to allow providing back HTML from getGui().\n // once we move away from supporting Angular 1\n // directly, we can change this.\n if (typeof guiFromFilter === 'string') {\n guiFromFilter = loadTemplate(guiFromFilter);\n }\n eFilterGui.appendChild(guiFromFilter);\n resolve(eFilterGui);\n var event = {\n type: Events.EVENT_FILTER_OPENED,\n column: filterWrapper.column,\n source: source,\n eGui: eFilterGui\n };\n _this.eventService.dispatchEvent(event);\n });\n });\n };\n FilterManager.prototype.onColumnsChanged = function () {\n var _this = this;\n var columns = [];\n this.allColumnFilters.forEach(function (wrapper, colId) {\n var currentColumn;\n if (wrapper.column.isPrimary()) {\n currentColumn = _this.columnModel.getPrimaryColumn(colId);\n }\n else {\n currentColumn = _this.columnModel.getGridColumn(colId);\n }\n if (currentColumn) {\n return;\n }\n columns.push(wrapper.column);\n _this.disposeFilterWrapper(wrapper, 'columnChanged');\n _this.disposeColumnListener(colId);\n });\n if (columns.length > 0) {\n // When a filter changes as a side effect of a column changes,\n // we report 'api' as the source, so that the client can distinguish\n this.onFilterChanged({ columns: columns, source: 'api' });\n }\n else {\n // onFilterChanged does this already\n this.updateDependantFilters();\n }\n };\n FilterManager.prototype.updateDependantFilters = function () {\n var _this = this;\n // Group column filters can be dependant on underlying column filters, but don't normally get created until they're used for the first time.\n // Instead, create them by default when any filter changes.\n var groupColumns = this.columnModel.getGroupAutoColumns();\n groupColumns === null || groupColumns === void 0 ? void 0 : groupColumns.forEach(function (groupColumn) {\n if (groupColumn.getColDef().filter === 'agGroupColumnFilter') {\n _this.getOrCreateFilterWrapper(groupColumn, 'NO_UI');\n }\n });\n };\n // for group filters, can change dynamically whether they are allowed or not\n FilterManager.prototype.isFilterAllowed = function (column) {\n var _a, _b;\n if (this.isAdvancedFilterEnabled()) {\n return false;\n }\n var isFilterAllowed = column.isFilterAllowed();\n if (!isFilterAllowed) {\n return false;\n }\n var filterWrapper = this.allColumnFilters.get(column.getColId());\n return (_b = (_a = filterWrapper === null || filterWrapper === void 0 ? void 0 : filterWrapper.filterPromise) === null || _a === void 0 ? void 0 : _a.resolveNow(true, \n // defer to filter component isFilterAllowed if it exists\n function (filter) {\n var _a, _b;\n return (typeof ((_a = filter) === null || _a === void 0 ? void 0 : _a.isFilterAllowed) === 'function')\n ? (_b = filter) === null || _b === void 0 ? void 0 : _b.isFilterAllowed()\n : true;\n })) !== null && _b !== void 0 ? _b : true;\n };\n FilterManager.prototype.getFloatingFilterCompDetails = function (column, showParentFilter) {\n var _this = this;\n var colDef = column.getColDef();\n var filterParams = this.createFilterParams(column, colDef);\n var finalFilterParams = this.userComponentFactory.mergeParamsWithApplicationProvidedParams(colDef, FilterComponent, filterParams);\n var defaultFloatingFilterType = this.userComponentFactory.getDefaultFloatingFilterType(colDef, function () { return _this.getDefaultFloatingFilter(column); });\n if (defaultFloatingFilterType == null) {\n defaultFloatingFilterType = 'agReadOnlyFloatingFilter';\n }\n var parentFilterInstance = function (callback) {\n var filterComponent = _this.getFilterComponent(column, 'NO_UI');\n if (filterComponent == null) {\n return;\n }\n filterComponent.then(function (instance) {\n callback(unwrapUserComp(instance));\n });\n };\n var params = {\n column: column,\n filterParams: finalFilterParams,\n currentParentModel: function () { return _this.getCurrentFloatingFilterParentModel(column); },\n parentFilterInstance: parentFilterInstance,\n showParentFilter: showParentFilter,\n suppressFilterButton: false // This one might be overridden from the colDef\n };\n return this.userComponentFactory.getFloatingFilterCompDetails(colDef, params, defaultFloatingFilterType);\n };\n FilterManager.prototype.getCurrentFloatingFilterParentModel = function (column) {\n var filterComponent = this.getFilterComponent(column, 'NO_UI', false);\n return filterComponent ? filterComponent.resolveNow(null, function (filter) { return filter && filter.getModel(); }) : null;\n };\n // destroys the filter, so it no longer takes part\n FilterManager.prototype.destroyFilter = function (column, source) {\n if (source === void 0) { source = 'api'; }\n var colId = column.getColId();\n var filterWrapper = this.allColumnFilters.get(colId);\n this.disposeColumnListener(colId);\n if (filterWrapper) {\n this.disposeFilterWrapper(filterWrapper, source);\n this.onFilterChanged({\n columns: [column],\n source: 'api',\n });\n }\n };\n FilterManager.prototype.disposeColumnListener = function (colId) {\n var columnListener = this.allColumnListeners.get(colId);\n if (columnListener) {\n this.allColumnListeners.delete(colId);\n columnListener();\n }\n };\n FilterManager.prototype.disposeFilterWrapper = function (filterWrapper, source) {\n var _this = this;\n filterWrapper.filterPromise.then(function (filter) {\n (filter.setModel(null) || AgPromise.resolve()).then(function () {\n _this.getContext().destroyBean(filter);\n filterWrapper.column.setFilterActive(false, 'filterDestroyed');\n _this.allColumnFilters.delete(filterWrapper.column.getColId());\n var event = {\n type: Events.EVENT_FILTER_DESTROYED,\n source: source,\n column: filterWrapper.column,\n };\n _this.eventService.dispatchEvent(event);\n });\n });\n };\n FilterManager.prototype.checkDestroyFilter = function (colId) {\n var filterWrapper = this.allColumnFilters.get(colId);\n if (!filterWrapper) {\n return;\n }\n var column = filterWrapper.column;\n var compDetails = (column.isFilterAllowed()\n ? this.createFilterInstance(column)\n : { compDetails: null }).compDetails;\n if (this.areFilterCompsDifferent(filterWrapper.compDetails, compDetails)) {\n this.destroyFilter(column, 'columnChanged');\n }\n };\n FilterManager.prototype.areFilterCompsDifferent = function (oldCompDetails, newCompDetails) {\n if (!newCompDetails || !oldCompDetails) {\n return true;\n }\n var oldComponentClass = oldCompDetails.componentClass;\n var newComponentClass = newCompDetails.componentClass;\n var isSameComponentClass = oldComponentClass === newComponentClass ||\n // react hooks returns new wrappers, so check nested render method\n ((oldComponentClass === null || oldComponentClass === void 0 ? void 0 : oldComponentClass.render) && (newComponentClass === null || newComponentClass === void 0 ? void 0 : newComponentClass.render) &&\n oldComponentClass.render === newComponentClass.render);\n return !isSameComponentClass;\n };\n FilterManager.prototype.getAdvancedFilterModel = function () {\n return this.isAdvancedFilterEnabled() ? this.advancedFilterService.getModel() : null;\n };\n FilterManager.prototype.setAdvancedFilterModel = function (expression) {\n if (!this.isAdvancedFilterEnabled()) {\n return;\n }\n this.advancedFilterService.setModel(expression !== null && expression !== void 0 ? expression : null);\n this.onFilterChanged({ source: 'advancedFilter' });\n };\n FilterManager.prototype.showAdvancedFilterBuilder = function (source) {\n if (!this.isAdvancedFilterEnabled()) {\n return;\n }\n this.advancedFilterService.getCtrl().toggleFilterBuilder(source, true);\n };\n FilterManager.prototype.updateAdvancedFilterColumns = function () {\n if (!this.isAdvancedFilterEnabled()) {\n return;\n }\n if (this.advancedFilterService.updateValidity()) {\n this.onFilterChanged({ source: 'advancedFilter' });\n }\n };\n FilterManager.prototype.hasFloatingFilters = function () {\n if (this.isAdvancedFilterEnabled()) {\n return false;\n }\n var gridColumns = this.columnModel.getAllGridColumns();\n if (!gridColumns) {\n return false;\n }\n return gridColumns.some(function (col) { return col.getColDef().floatingFilter; });\n };\n FilterManager.prototype.getFilterInstance = function (key, callback) {\n if (this.isAdvancedFilterEnabled()) {\n this.warnAdvancedFilters();\n return undefined;\n }\n var res = this.getFilterInstanceImpl(key, function (instance) {\n if (!callback) {\n return;\n }\n var unwrapped = unwrapUserComp(instance);\n callback(unwrapped);\n });\n var unwrapped = unwrapUserComp(res);\n return unwrapped;\n };\n FilterManager.prototype.getFilterInstanceImpl = function (key, callback) {\n var column = this.columnModel.getPrimaryColumn(key);\n if (!column) {\n return undefined;\n }\n var filterPromise = this.getFilterComponent(column, 'NO_UI');\n var currentValue = filterPromise && filterPromise.resolveNow(null, function (filterComp) { return filterComp; });\n if (currentValue) {\n setTimeout(callback, 0, currentValue);\n }\n else if (filterPromise) {\n filterPromise.then(function (comp) {\n callback(comp);\n });\n }\n return currentValue;\n };\n FilterManager.prototype.warnAdvancedFilters = function () {\n doOnce(function () {\n console.warn('AG Grid: Column Filter API methods have been disabled as Advanced Filters are enabled.');\n }, 'advancedFiltersCompatibility');\n };\n FilterManager.prototype.setupAdvancedFilterHeaderComp = function (eCompToInsertBefore) {\n var _a;\n (_a = this.advancedFilterService) === null || _a === void 0 ? void 0 : _a.getCtrl().setupHeaderComp(eCompToInsertBefore);\n };\n FilterManager.prototype.getHeaderRowCount = function () {\n return this.isAdvancedFilterHeaderActive() ? 1 : 0;\n };\n FilterManager.prototype.getHeaderHeight = function () {\n return this.isAdvancedFilterHeaderActive() ? this.advancedFilterService.getCtrl().getHeaderHeight() : 0;\n };\n FilterManager.prototype.processFilterModelUpdateQueue = function () {\n var _this = this;\n this.filterModelUpdateQueue.forEach(function (model) { return _this.setFilterModel(model); });\n this.filterModelUpdateQueue = [];\n };\n FilterManager.prototype.destroy = function () {\n var _this = this;\n _super.prototype.destroy.call(this);\n this.allColumnFilters.forEach(function (filterWrapper) { return _this.disposeFilterWrapper(filterWrapper, 'gridDestroyed'); });\n // don't need to destroy the listeners as they are managed listeners\n this.allColumnListeners.clear();\n };\n __decorate$1Y([\n Autowired('valueService')\n ], FilterManager.prototype, \"valueService\", void 0);\n __decorate$1Y([\n Autowired('columnModel')\n ], FilterManager.prototype, \"columnModel\", void 0);\n __decorate$1Y([\n Autowired('rowModel')\n ], FilterManager.prototype, \"rowModel\", void 0);\n __decorate$1Y([\n Autowired('userComponentFactory')\n ], FilterManager.prototype, \"userComponentFactory\", void 0);\n __decorate$1Y([\n Autowired('rowRenderer')\n ], FilterManager.prototype, \"rowRenderer\", void 0);\n __decorate$1Y([\n Autowired('dataTypeService')\n ], FilterManager.prototype, \"dataTypeService\", void 0);\n __decorate$1Y([\n Autowired('quickFilterService')\n ], FilterManager.prototype, \"quickFilterService\", void 0);\n __decorate$1Y([\n Optional('advancedFilterService')\n ], FilterManager.prototype, \"advancedFilterService\", void 0);\n __decorate$1Y([\n PostConstruct\n ], FilterManager.prototype, \"init\", null);\n FilterManager = __decorate$1Y([\n Bean('filterManager')\n ], FilterManager);\n return FilterManager;\n}(BeanStub));\n\nvar __extends$27 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AbstractHeaderCellComp = /** @class */ (function (_super) {\n __extends$27(AbstractHeaderCellComp, _super);\n function AbstractHeaderCellComp(template, ctrl) {\n var _this = _super.call(this, template) || this;\n _this.ctrl = ctrl;\n return _this;\n }\n AbstractHeaderCellComp.prototype.getCtrl = function () {\n return this.ctrl;\n };\n return AbstractHeaderCellComp;\n}(Component));\n\nvar __extends$26 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1X = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderFilterCellComp = /** @class */ (function (_super) {\n __extends$26(HeaderFilterCellComp, _super);\n function HeaderFilterCellComp(ctrl) {\n return _super.call(this, HeaderFilterCellComp.TEMPLATE, ctrl) || this;\n }\n HeaderFilterCellComp.prototype.postConstruct = function () {\n var _this = this;\n var eGui = this.getGui();\n var compProxy = {\n addOrRemoveCssClass: function (cssClassName, on) { return _this.addOrRemoveCssClass(cssClassName, on); },\n addOrRemoveBodyCssClass: function (cssClassName, on) { return _this.eFloatingFilterBody.classList.toggle(cssClassName, on); },\n setButtonWrapperDisplayed: function (displayed) { return setDisplayed(_this.eButtonWrapper, displayed); },\n setCompDetails: function (compDetails) { return _this.setCompDetails(compDetails); },\n getFloatingFilterComp: function () { return _this.compPromise; },\n setWidth: function (width) { return eGui.style.width = width; },\n setMenuIcon: function (eIcon) { return _this.eButtonShowMainFilter.appendChild(eIcon); }\n };\n this.ctrl.setComp(compProxy, eGui, this.eButtonShowMainFilter, this.eFloatingFilterBody);\n };\n HeaderFilterCellComp.prototype.setCompDetails = function (compDetails) {\n var _this = this;\n if (!compDetails) {\n this.destroyFloatingFilterComp();\n this.compPromise = null;\n return;\n }\n // because we are providing defaultFloatingFilterType, we know it will never be undefined;\n this.compPromise = compDetails.newAgStackInstance();\n this.compPromise.then(function (comp) { return _this.afterCompCreated(comp); });\n };\n HeaderFilterCellComp.prototype.destroyFloatingFilterComp = function () {\n if (this.floatingFilterComp) {\n this.eFloatingFilterBody.removeChild(this.floatingFilterComp.getGui());\n this.floatingFilterComp = this.destroyBean(this.floatingFilterComp);\n }\n };\n HeaderFilterCellComp.prototype.afterCompCreated = function (comp) {\n if (!comp) {\n return;\n }\n if (!this.isAlive()) {\n this.destroyBean(comp);\n return;\n }\n this.destroyFloatingFilterComp();\n this.floatingFilterComp = comp;\n this.eFloatingFilterBody.appendChild(comp.getGui());\n if (comp.afterGuiAttached) {\n comp.afterGuiAttached();\n }\n };\n HeaderFilterCellComp.TEMPLATE = \"
\\n
\\n
\\n \\n
\\n
\";\n __decorate$1X([\n RefSelector('eFloatingFilterBody')\n ], HeaderFilterCellComp.prototype, \"eFloatingFilterBody\", void 0);\n __decorate$1X([\n RefSelector('eButtonWrapper')\n ], HeaderFilterCellComp.prototype, \"eButtonWrapper\", void 0);\n __decorate$1X([\n RefSelector('eButtonShowMainFilter')\n ], HeaderFilterCellComp.prototype, \"eButtonShowMainFilter\", void 0);\n __decorate$1X([\n PostConstruct\n ], HeaderFilterCellComp.prototype, \"postConstruct\", null);\n __decorate$1X([\n PreDestroy\n ], HeaderFilterCellComp.prototype, \"destroyFloatingFilterComp\", null);\n return HeaderFilterCellComp;\n}(AbstractHeaderCellComp));\n\nvar __extends$25 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1W = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar LayoutCssClasses;\n(function (LayoutCssClasses) {\n LayoutCssClasses[\"AUTO_HEIGHT\"] = \"ag-layout-auto-height\";\n LayoutCssClasses[\"NORMAL\"] = \"ag-layout-normal\";\n LayoutCssClasses[\"PRINT\"] = \"ag-layout-print\";\n})(LayoutCssClasses || (LayoutCssClasses = {}));\nvar LayoutFeature = /** @class */ (function (_super) {\n __extends$25(LayoutFeature, _super);\n function LayoutFeature(view) {\n var _this = _super.call(this) || this;\n _this.view = view;\n return _this;\n }\n LayoutFeature.prototype.postConstruct = function () {\n this.addManagedPropertyListener('domLayout', this.updateLayoutClasses.bind(this));\n this.updateLayoutClasses();\n };\n LayoutFeature.prototype.updateLayoutClasses = function () {\n var domLayout = this.getDomLayout();\n var params = {\n autoHeight: domLayout === 'autoHeight',\n normal: domLayout === 'normal',\n print: domLayout === 'print'\n };\n var cssClass = params.autoHeight ? LayoutCssClasses.AUTO_HEIGHT :\n params.print ? LayoutCssClasses.PRINT : LayoutCssClasses.NORMAL;\n this.view.updateLayoutClasses(cssClass, params);\n };\n // returns either 'print', 'autoHeight' or 'normal' (normal is the default)\n LayoutFeature.prototype.getDomLayout = function () {\n var _a;\n var domLayout = (_a = this.gridOptionsService.get('domLayout')) !== null && _a !== void 0 ? _a : 'normal';\n var validLayouts = ['normal', 'print', 'autoHeight'];\n if (validLayouts.indexOf(domLayout) === -1) {\n doOnce(function () {\n return console.warn(\"AG Grid: \" + domLayout + \" is not valid for DOM Layout, valid values are 'normal', 'autoHeight', 'print'.\");\n }, 'warn about dom layout values');\n return 'normal';\n }\n return domLayout;\n };\n __decorate$1W([\n PostConstruct\n ], LayoutFeature.prototype, \"postConstruct\", null);\n return LayoutFeature;\n}(BeanStub));\n\nvar __extends$24 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$c = (undefined && undefined.__assign) || function () {\n __assign$c = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$c.apply(this, arguments);\n};\nvar __decorate$1V = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ScrollDirection;\n(function (ScrollDirection) {\n ScrollDirection[ScrollDirection[\"Vertical\"] = 0] = \"Vertical\";\n ScrollDirection[ScrollDirection[\"Horizontal\"] = 1] = \"Horizontal\";\n})(ScrollDirection || (ScrollDirection = {}));\nvar ScrollSource;\n(function (ScrollSource) {\n ScrollSource[ScrollSource[\"Container\"] = 0] = \"Container\";\n ScrollSource[ScrollSource[\"FakeContainer\"] = 1] = \"FakeContainer\";\n})(ScrollSource || (ScrollSource = {}));\nvar GridBodyScrollFeature = /** @class */ (function (_super) {\n __extends$24(GridBodyScrollFeature, _super);\n function GridBodyScrollFeature(eBodyViewport) {\n var _this = _super.call(this) || this;\n _this.lastScrollSource = [null, null];\n _this.scrollLeft = -1;\n _this.nextScrollTop = -1;\n _this.scrollTop = -1;\n _this.eBodyViewport = eBodyViewport;\n _this.resetLastHScrollDebounced = debounce(function () { return _this.lastScrollSource[ScrollDirection.Horizontal] = null; }, 500);\n _this.resetLastVScrollDebounced = debounce(function () { return _this.lastScrollSource[ScrollDirection.Vertical] = null; }, 500);\n return _this;\n }\n GridBodyScrollFeature.prototype.postConstruct = function () {\n var _this = this;\n this.enableRtl = this.gridOptionsService.is('enableRtl');\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onDisplayedColumnsWidthChanged.bind(this));\n this.ctrlsService.whenReady(function (p) {\n _this.centerRowContainerCtrl = p.centerRowContainerCtrl;\n _this.onDisplayedColumnsWidthChanged();\n _this.addScrollListener();\n });\n };\n GridBodyScrollFeature.prototype.addScrollListener = function () {\n var fakeHScroll = this.ctrlsService.getFakeHScrollComp();\n var fakeVScroll = this.ctrlsService.getFakeVScrollComp();\n this.addManagedListener(this.centerRowContainerCtrl.getViewportElement(), 'scroll', this.onHScroll.bind(this));\n fakeHScroll.onScrollCallback(this.onFakeHScroll.bind(this));\n var isDebounce = this.gridOptionsService.is('debounceVerticalScrollbar');\n var onVScroll = isDebounce ?\n debounce(this.onVScroll.bind(this), 100) : this.onVScroll.bind(this);\n var onFakeVScroll = isDebounce ?\n debounce(this.onFakeVScroll.bind(this), 100) : this.onFakeVScroll.bind(this);\n this.addManagedListener(this.eBodyViewport, 'scroll', onVScroll);\n fakeVScroll.onScrollCallback(onFakeVScroll);\n };\n GridBodyScrollFeature.prototype.onDisplayedColumnsWidthChanged = function () {\n if (this.enableRtl) {\n // because RTL is all backwards, a change in the width of the row\n // can cause a change in the scroll position, without a scroll event,\n // because the scroll position in RTL is a function that depends on\n // the width. to be convinced of this, take out this line, enable RTL,\n // scroll all the way to the left and then resize a column\n this.horizontallyScrollHeaderCenterAndFloatingCenter();\n }\n };\n GridBodyScrollFeature.prototype.horizontallyScrollHeaderCenterAndFloatingCenter = function (scrollLeft) {\n // when doing RTL, this method gets called once prematurely\n var notYetInitialised = this.centerRowContainerCtrl == null;\n if (notYetInitialised) {\n return;\n }\n if (scrollLeft === undefined) {\n scrollLeft = this.centerRowContainerCtrl.getCenterViewportScrollLeft();\n }\n var offset = this.enableRtl ? scrollLeft : -scrollLeft;\n var topCenterContainer = this.ctrlsService.getTopCenterRowContainerCtrl();\n var stickyTopCenterContainer = this.ctrlsService.getStickyTopCenterRowContainerCtrl();\n var bottomCenterContainer = this.ctrlsService.getBottomCenterRowContainerCtrl();\n var fakeHScroll = this.ctrlsService.getFakeHScrollComp();\n var centerHeaderContainer = this.ctrlsService.getHeaderRowContainerCtrl();\n centerHeaderContainer.setHorizontalScroll(-offset);\n bottomCenterContainer.setContainerTranslateX(offset);\n topCenterContainer.setContainerTranslateX(offset);\n stickyTopCenterContainer.setContainerTranslateX(offset);\n var centerViewport = this.centerRowContainerCtrl.getViewportElement();\n var isCenterViewportLastHorizontal = this.lastScrollSource[ScrollDirection.Horizontal] === ScrollSource.Container;\n scrollLeft = Math.abs(scrollLeft);\n if (isCenterViewportLastHorizontal) {\n fakeHScroll.setScrollPosition(scrollLeft);\n }\n else {\n setScrollLeft(centerViewport, scrollLeft, this.enableRtl);\n }\n };\n GridBodyScrollFeature.prototype.isControllingScroll = function (source, direction) {\n if (this.lastScrollSource[direction] == null) {\n this.lastScrollSource[direction] = source;\n return true;\n }\n return this.lastScrollSource[direction] === source;\n };\n GridBodyScrollFeature.prototype.onFakeHScroll = function () {\n if (!this.isControllingScroll(ScrollSource.FakeContainer, ScrollDirection.Horizontal)) {\n return;\n }\n this.onHScrollCommon(ScrollSource.FakeContainer);\n };\n GridBodyScrollFeature.prototype.onHScroll = function () {\n if (!this.isControllingScroll(ScrollSource.Container, ScrollDirection.Horizontal)) {\n return;\n }\n this.onHScrollCommon(ScrollSource.Container);\n };\n GridBodyScrollFeature.prototype.onHScrollCommon = function (source) {\n var centerContainerViewport = this.centerRowContainerCtrl.getViewportElement();\n var scrollLeft = centerContainerViewport.scrollLeft;\n if (this.shouldBlockScrollUpdate(ScrollDirection.Horizontal, scrollLeft, true)) {\n return;\n }\n var newScrollLeft;\n if (source === ScrollSource.Container) {\n newScrollLeft = getScrollLeft(centerContainerViewport, this.enableRtl);\n }\n else {\n newScrollLeft = this.ctrlsService.getFakeHScrollComp().getScrollPosition();\n }\n // we do Math.round() rather than Math.floor(), to mirror how scroll values are applied.\n // eg if a scale is applied (ie user has zoomed the browser), then applying scroll=200\n // could result in 199.88, which then floor(199.88) = 199, however round(199.88) = 200.\n // initially Math.floor() was used, however this caused (almost) infinite loop with aligned grids,\n // as the scroll would move 1px at at time bouncing from one grid to the next (eg one grid would cause\n // scroll to 200px, the next to 199px, then the first back to 198px and so on).\n this.doHorizontalScroll(Math.round(newScrollLeft));\n this.resetLastHScrollDebounced();\n };\n GridBodyScrollFeature.prototype.onFakeVScroll = function () {\n if (!this.isControllingScroll(ScrollSource.FakeContainer, ScrollDirection.Vertical)) {\n return;\n }\n this.onVScrollCommon(ScrollSource.FakeContainer);\n };\n GridBodyScrollFeature.prototype.onVScroll = function () {\n if (!this.isControllingScroll(ScrollSource.Container, ScrollDirection.Vertical)) {\n return;\n }\n this.onVScrollCommon(ScrollSource.Container);\n };\n GridBodyScrollFeature.prototype.onVScrollCommon = function (source) {\n var scrollTop;\n if (source === ScrollSource.Container) {\n scrollTop = this.eBodyViewport.scrollTop;\n }\n else {\n scrollTop = this.ctrlsService.getFakeVScrollComp().getScrollPosition();\n }\n if (this.shouldBlockScrollUpdate(ScrollDirection.Vertical, scrollTop, true)) {\n return;\n }\n this.animationFrameService.setScrollTop(scrollTop);\n this.nextScrollTop = scrollTop;\n if (source === ScrollSource.Container) {\n this.ctrlsService.getFakeVScrollComp().setScrollPosition(scrollTop);\n }\n else {\n this.eBodyViewport.scrollTop = scrollTop;\n }\n // the `scrollGridIfNeeded` will recalculate the rows to be rendered by the grid\n // so it should only be called after `eBodyViewport` has been scrolled to the correct\n // position, otherwise the `first` and `last` row could be miscalculated.\n if (this.gridOptionsService.is('suppressAnimationFrame')) {\n this.scrollGridIfNeeded();\n }\n else {\n this.animationFrameService.schedule();\n }\n this.resetLastVScrollDebounced();\n };\n GridBodyScrollFeature.prototype.doHorizontalScroll = function (scrollLeft) {\n var fakeScrollLeft = this.ctrlsService.getFakeHScrollComp().getScrollPosition();\n if (this.scrollLeft === scrollLeft && scrollLeft === fakeScrollLeft) {\n return;\n }\n this.scrollLeft = scrollLeft;\n this.fireScrollEvent(ScrollDirection.Horizontal);\n this.horizontallyScrollHeaderCenterAndFloatingCenter(scrollLeft);\n this.centerRowContainerCtrl.onHorizontalViewportChanged(true);\n };\n GridBodyScrollFeature.prototype.fireScrollEvent = function (direction) {\n var _this = this;\n var bodyScrollEvent = {\n type: Events.EVENT_BODY_SCROLL,\n direction: direction === ScrollDirection.Horizontal ? 'horizontal' : 'vertical',\n left: this.scrollLeft,\n top: this.scrollTop\n };\n this.eventService.dispatchEvent(bodyScrollEvent);\n window.clearTimeout(this.scrollTimer);\n this.scrollTimer = undefined;\n this.scrollTimer = window.setTimeout(function () {\n var bodyScrollEndEvent = __assign$c(__assign$c({}, bodyScrollEvent), { type: Events.EVENT_BODY_SCROLL_END });\n _this.eventService.dispatchEvent(bodyScrollEndEvent);\n }, 100);\n };\n GridBodyScrollFeature.prototype.shouldBlockScrollUpdate = function (direction, scrollTo, touchOnly) {\n // touch devices allow elastic scroll - which temporally scrolls the panel outside of the viewport\n // (eg user uses touch to go to the left of the grid, but drags past the left, the rows will actually\n // scroll past the left until the user releases the mouse). when this happens, we want ignore the scroll,\n // as otherwise it was causing the rows and header to flicker.\n if (touchOnly === void 0) { touchOnly = false; }\n // sometimes when scrolling, we got values that extended the maximum scroll allowed. we used to\n // ignore these scrolls. problem is the max scroll position could be skipped (eg the previous scroll event\n // could be 10px before the max position, and then current scroll event could be 20px after the max position).\n // if we just ignored the last event, we would be setting the scroll to 10px before the max position, when in\n // actual fact the user has exceeded the max scroll and thus scroll should be set to the max.\n if (touchOnly && !isIOSUserAgent()) {\n return false;\n }\n if (direction === ScrollDirection.Vertical) {\n return this.shouldBlockVerticalScroll(scrollTo);\n }\n return this.shouldBlockHorizontalScroll(scrollTo);\n };\n GridBodyScrollFeature.prototype.shouldBlockVerticalScroll = function (scrollTo) {\n var clientHeight = getInnerHeight(this.eBodyViewport);\n var scrollHeight = this.eBodyViewport.scrollHeight;\n if (scrollTo < 0 || (scrollTo + clientHeight > scrollHeight)) {\n return true;\n }\n return false;\n };\n GridBodyScrollFeature.prototype.shouldBlockHorizontalScroll = function (scrollTo) {\n var clientWidth = this.centerRowContainerCtrl.getCenterWidth();\n var scrollWidth = this.centerRowContainerCtrl.getViewportElement().scrollWidth;\n if (this.enableRtl && isRtlNegativeScroll()) {\n if (scrollTo > 0) {\n return true;\n }\n }\n else if (scrollTo < 0) {\n return true;\n }\n if (Math.abs(scrollTo) + clientWidth > scrollWidth) {\n return true;\n }\n return false;\n };\n GridBodyScrollFeature.prototype.redrawRowsAfterScroll = function () {\n this.fireScrollEvent(ScrollDirection.Vertical);\n };\n // this is to cater for AG-3274, where grid is removed from the dom and then inserted back in again.\n // (which happens with some implementations of tabbing). this can result in horizontal scroll getting\n // reset back to the left, however no scroll event is fired. so we need to get header to also scroll\n // back to the left to be kept in sync.\n // adding and removing the grid from the DOM both resets the scroll position and\n // triggers a resize event, so notify listeners if the scroll position has changed\n GridBodyScrollFeature.prototype.checkScrollLeft = function () {\n if (this.scrollLeft !== this.centerRowContainerCtrl.getCenterViewportScrollLeft()) {\n this.onHScrollCommon(ScrollSource.Container);\n }\n };\n GridBodyScrollFeature.prototype.scrollGridIfNeeded = function () {\n var frameNeeded = this.scrollTop != this.nextScrollTop;\n if (frameNeeded) {\n this.scrollTop = this.nextScrollTop;\n this.redrawRowsAfterScroll();\n }\n return frameNeeded;\n };\n // called by scrollHorizontally method and alignedGridsService\n GridBodyScrollFeature.prototype.setHorizontalScrollPosition = function (hScrollPosition, fromAlignedGridsService) {\n if (fromAlignedGridsService === void 0) { fromAlignedGridsService = false; }\n var minScrollLeft = 0;\n var maxScrollLeft = this.centerRowContainerCtrl.getViewportElement().scrollWidth - this.centerRowContainerCtrl.getCenterWidth();\n // if this is call is coming from the alignedGridsService, we don't need to validate the\n // scroll, because it has already been validated by the grid firing the scroll event.\n if (!fromAlignedGridsService && this.shouldBlockScrollUpdate(ScrollDirection.Horizontal, hScrollPosition)) {\n if (this.enableRtl && isRtlNegativeScroll()) {\n hScrollPosition = hScrollPosition > 0 ? 0 : maxScrollLeft;\n }\n else {\n hScrollPosition = Math.min(Math.max(hScrollPosition, minScrollLeft), maxScrollLeft);\n }\n }\n setScrollLeft(this.centerRowContainerCtrl.getViewportElement(), Math.abs(hScrollPosition), this.enableRtl);\n // we need to manually do the event handling (rather than wait for the event)\n // for the alignedGridsService, as if we don't, the aligned grid service gets\n // notified async, and then it's 'consuming' flag doesn't get used right, and\n // we can end up with an infinite loop\n this.doHorizontalScroll(hScrollPosition);\n };\n GridBodyScrollFeature.prototype.setVerticalScrollPosition = function (vScrollPosition) {\n this.eBodyViewport.scrollTop = vScrollPosition;\n };\n GridBodyScrollFeature.prototype.getVScrollPosition = function () {\n var result = {\n top: this.eBodyViewport.scrollTop,\n bottom: this.eBodyViewport.scrollTop + this.eBodyViewport.offsetHeight\n };\n return result;\n };\n GridBodyScrollFeature.prototype.getHScrollPosition = function () {\n return this.centerRowContainerCtrl.getHScrollPosition();\n };\n GridBodyScrollFeature.prototype.isHorizontalScrollShowing = function () {\n return this.centerRowContainerCtrl.isHorizontalScrollShowing();\n };\n // called by the headerRootComp and moveColumnController\n GridBodyScrollFeature.prototype.scrollHorizontally = function (pixels) {\n var oldScrollPosition = this.centerRowContainerCtrl.getViewportElement().scrollLeft;\n this.setHorizontalScrollPosition(oldScrollPosition + pixels);\n return this.centerRowContainerCtrl.getViewportElement().scrollLeft - oldScrollPosition;\n };\n // gets called by rowRenderer when new data loaded, as it will want to scroll to the top\n GridBodyScrollFeature.prototype.scrollToTop = function () {\n this.eBodyViewport.scrollTop = 0;\n };\n // Valid values for position are bottom, middle and top\n GridBodyScrollFeature.prototype.ensureNodeVisible = function (comparator, position) {\n if (position === void 0) { position = null; }\n // look for the node index we want to display\n var rowCount = this.rowModel.getRowCount();\n var indexToSelect = -1;\n // go through all the nodes, find the one we want to show\n for (var i = 0; i < rowCount; i++) {\n var node = this.rowModel.getRow(i);\n if (typeof comparator === 'function') {\n // Have to assert type here, as type could be TData & Function\n var predicate = comparator;\n if (node && predicate(node)) {\n indexToSelect = i;\n break;\n }\n }\n else {\n // check object equality against node and data\n if (comparator === node || comparator === node.data) {\n indexToSelect = i;\n break;\n }\n }\n }\n if (indexToSelect >= 0) {\n this.ensureIndexVisible(indexToSelect, position);\n }\n };\n // Valid values for position are bottom, middle and top\n // position should be {'top','middle','bottom', or undefined/null}.\n // if undefined/null, then the grid will to the minimal amount of scrolling,\n // eg if grid needs to scroll up, it scrolls until row is on top,\n // if grid needs to scroll down, it scrolls until row is on bottom,\n // if row is already in view, grid does not scroll\n GridBodyScrollFeature.prototype.ensureIndexVisible = function (index, position) {\n // if for print or auto height, everything is always visible\n if (this.gridOptionsService.isDomLayout('print')) {\n return;\n }\n var rowCount = this.paginationProxy.getRowCount();\n if (typeof index !== 'number' || index < 0 || index >= rowCount) {\n console.warn('AG Grid: Invalid row index for ensureIndexVisible: ' + index);\n return;\n }\n var isPaging = this.gridOptionsService.is('pagination');\n var paginationPanelEnabled = isPaging && !this.gridOptionsService.is('suppressPaginationPanel');\n if (!paginationPanelEnabled) {\n this.paginationProxy.goToPageWithIndex(index);\n }\n var gridBodyCtrl = this.ctrlsService.getGridBodyCtrl();\n var stickyTopHeight = gridBodyCtrl.getStickyTopHeight();\n var rowNode = this.paginationProxy.getRow(index);\n var rowGotShiftedDuringOperation;\n do {\n var startingRowTop = rowNode.rowTop;\n var startingRowHeight = rowNode.rowHeight;\n var paginationOffset = this.paginationProxy.getPixelOffset();\n var rowTopPixel = rowNode.rowTop - paginationOffset;\n var rowBottomPixel = rowTopPixel + rowNode.rowHeight;\n var scrollPosition = this.getVScrollPosition();\n var heightOffset = this.heightScaler.getDivStretchOffset();\n var vScrollTop = scrollPosition.top + heightOffset;\n var vScrollBottom = scrollPosition.bottom + heightOffset;\n var viewportHeight = vScrollBottom - vScrollTop;\n // work out the pixels for top, middle and bottom up front,\n // make the if/else below easier to read\n var pxTop = this.heightScaler.getScrollPositionForPixel(rowTopPixel);\n var pxBottom = this.heightScaler.getScrollPositionForPixel(rowBottomPixel - viewportHeight);\n // make sure if middle, the row is not outside the top of the grid\n var pxMiddle = Math.min((pxTop + pxBottom) / 2, rowTopPixel);\n var rowAboveViewport = (vScrollTop + stickyTopHeight) > rowTopPixel;\n var rowBelowViewport = vScrollBottom < rowBottomPixel;\n var newScrollPosition = null;\n if (position === 'top') {\n newScrollPosition = pxTop;\n }\n else if (position === 'bottom') {\n newScrollPosition = pxBottom;\n }\n else if (position === 'middle') {\n newScrollPosition = pxMiddle;\n }\n else if (rowAboveViewport) {\n // if row is before, scroll up with row at top\n newScrollPosition = pxTop - stickyTopHeight;\n }\n else if (rowBelowViewport) {\n // if row is after, scroll down with row at bottom\n newScrollPosition = pxBottom;\n }\n if (newScrollPosition !== null) {\n this.setVerticalScrollPosition(newScrollPosition);\n this.rowRenderer.redraw({ afterScroll: true });\n }\n // the row can get shifted if during the rendering (during rowRenderer.redraw()),\n // the height of a row changes due to lazy calculation of row heights when using\n // colDef.autoHeight or gridOptions.getRowHeight.\n // if row was shifted, then the position we scrolled to is incorrect.\n rowGotShiftedDuringOperation = (startingRowTop !== rowNode.rowTop)\n || (startingRowHeight !== rowNode.rowHeight);\n } while (rowGotShiftedDuringOperation);\n // so when we return back to user, the cells have rendered\n this.animationFrameService.flushAllFrames();\n };\n GridBodyScrollFeature.prototype.ensureColumnVisible = function (key, position) {\n if (position === void 0) { position = 'auto'; }\n var column = this.columnModel.getGridColumn(key);\n if (!column) {\n return;\n }\n // calling ensureColumnVisible on a pinned column doesn't make sense\n if (column.isPinned()) {\n return;\n }\n // defensive\n if (!this.columnModel.isColumnDisplayed(column)) {\n return;\n }\n var newHorizontalScroll = this.getPositionedHorizontalScroll(column, position);\n if (newHorizontalScroll !== null) {\n this.centerRowContainerCtrl.setCenterViewportScrollLeft(newHorizontalScroll);\n }\n // this will happen anyway, as the move will cause a 'scroll' event on the body, however\n // it is possible that the ensureColumnVisible method is called from within AG Grid and\n // the caller will need to have the columns rendered to continue, which will be before\n // the event has been worked on (which is the case for cell navigation).\n this.centerRowContainerCtrl.onHorizontalViewportChanged();\n // so when we return back to user, the cells have rendered\n this.animationFrameService.flushAllFrames();\n };\n GridBodyScrollFeature.prototype.getPositionedHorizontalScroll = function (column, position) {\n var _a = this.isColumnOutsideViewport(column), columnBeforeStart = _a.columnBeforeStart, columnAfterEnd = _a.columnAfterEnd;\n var viewportTooSmallForColumn = this.centerRowContainerCtrl.getCenterWidth() < column.getActualWidth();\n var viewportWidth = this.centerRowContainerCtrl.getCenterWidth();\n var isRtl = this.enableRtl;\n var alignColToStart = (isRtl ? columnBeforeStart : columnAfterEnd) || viewportTooSmallForColumn;\n var alignColToEnd = isRtl ? columnAfterEnd : columnBeforeStart;\n if (position !== 'auto') {\n alignColToStart = position === 'start';\n alignColToEnd = position === 'end';\n }\n var isMiddle = position === 'middle';\n if (alignColToStart || alignColToEnd || isMiddle) {\n var _b = this.getColumnBounds(column), colLeft = _b.colLeft, colMiddle = _b.colMiddle, colRight = _b.colRight;\n if (isMiddle) {\n return colMiddle - viewportWidth / 2;\n }\n if (alignColToStart) {\n return isRtl ? colRight : colLeft;\n }\n return isRtl ? (colLeft - viewportWidth) : (colRight - viewportWidth);\n }\n return null;\n };\n GridBodyScrollFeature.prototype.isColumnOutsideViewport = function (column) {\n var _a = this.getViewportBounds(), viewportStart = _a.start, viewportEnd = _a.end;\n var _b = this.getColumnBounds(column), colLeft = _b.colLeft, colRight = _b.colRight;\n var isRtl = this.enableRtl;\n var columnBeforeStart = isRtl ? (viewportStart > colRight) : (viewportEnd < colRight);\n var columnAfterEnd = isRtl ? (viewportEnd < colLeft) : (viewportStart > colLeft);\n return { columnBeforeStart: columnBeforeStart, columnAfterEnd: columnAfterEnd };\n };\n GridBodyScrollFeature.prototype.getColumnBounds = function (column) {\n var isRtl = this.enableRtl;\n var bodyWidth = this.columnModel.getBodyContainerWidth();\n var colWidth = column.getActualWidth();\n var colLeft = column.getLeft();\n var multiplier = isRtl ? -1 : 1;\n var colLeftPixel = isRtl ? (bodyWidth - colLeft) : colLeft;\n var colRightPixel = colLeftPixel + colWidth * multiplier;\n var colMidPixel = colLeftPixel + colWidth / 2 * multiplier;\n return { colLeft: colLeftPixel, colMiddle: colMidPixel, colRight: colRightPixel };\n };\n GridBodyScrollFeature.prototype.getViewportBounds = function () {\n var viewportWidth = this.centerRowContainerCtrl.getCenterWidth();\n var scrollPosition = this.centerRowContainerCtrl.getCenterViewportScrollLeft();\n var viewportStartPixel = scrollPosition;\n var viewportEndPixel = viewportWidth + scrollPosition;\n return { start: viewportStartPixel, end: viewportEndPixel, width: viewportWidth };\n };\n __decorate$1V([\n Autowired('ctrlsService')\n ], GridBodyScrollFeature.prototype, \"ctrlsService\", void 0);\n __decorate$1V([\n Autowired('animationFrameService')\n ], GridBodyScrollFeature.prototype, \"animationFrameService\", void 0);\n __decorate$1V([\n Autowired('paginationProxy')\n ], GridBodyScrollFeature.prototype, \"paginationProxy\", void 0);\n __decorate$1V([\n Autowired('rowModel')\n ], GridBodyScrollFeature.prototype, \"rowModel\", void 0);\n __decorate$1V([\n Autowired('rowContainerHeightService')\n ], GridBodyScrollFeature.prototype, \"heightScaler\", void 0);\n __decorate$1V([\n Autowired('rowRenderer')\n ], GridBodyScrollFeature.prototype, \"rowRenderer\", void 0);\n __decorate$1V([\n Autowired('columnModel')\n ], GridBodyScrollFeature.prototype, \"columnModel\", void 0);\n __decorate$1V([\n PostConstruct\n ], GridBodyScrollFeature.prototype, \"postConstruct\", null);\n return GridBodyScrollFeature;\n}(BeanStub));\n\nvar __extends$23 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$b = (undefined && undefined.__assign) || function () {\n __assign$b = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$b.apply(this, arguments);\n};\nvar __decorate$1U = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$m = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$i = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar RowDragFeature = /** @class */ (function (_super) {\n __extends$23(RowDragFeature, _super);\n function RowDragFeature(eContainer) {\n var _this = _super.call(this) || this;\n _this.isMultiRowDrag = false;\n _this.isGridSorted = false;\n _this.isGridFiltered = false;\n _this.isRowGroupActive = false;\n _this.eContainer = eContainer;\n return _this;\n }\n RowDragFeature.prototype.postConstruct = function () {\n var _this = this;\n if (this.gridOptionsService.isRowModelType('clientSide')) {\n this.clientSideRowModel = this.rowModel;\n }\n var refreshStatus = function () {\n _this.onSortChanged();\n _this.onFilterChanged();\n _this.onRowGroupChanged();\n };\n this.addManagedListener(this.eventService, Events.EVENT_SORT_CHANGED, this.onSortChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.onRowGroupChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, function () {\n refreshStatus();\n });\n refreshStatus();\n this.ctrlsService.whenReady(function () {\n var gridBodyCon = _this.ctrlsService.getGridBodyCtrl();\n _this.autoScrollService = new AutoScrollService({\n scrollContainer: gridBodyCon.getBodyViewportElement(),\n scrollAxis: 'y',\n getVerticalPosition: function () { return gridBodyCon.getScrollFeature().getVScrollPosition().top; },\n setVerticalPosition: function (position) { return gridBodyCon.getScrollFeature().setVerticalScrollPosition(position); },\n onScrollCallback: function () { _this.onDragging(_this.lastDraggingEvent); }\n });\n });\n };\n RowDragFeature.prototype.onSortChanged = function () {\n this.isGridSorted = this.sortController.isSortActive();\n };\n RowDragFeature.prototype.onFilterChanged = function () {\n this.isGridFiltered = this.filterManager.isAnyFilterPresent();\n };\n RowDragFeature.prototype.onRowGroupChanged = function () {\n var rowGroups = this.columnModel.getRowGroupColumns();\n this.isRowGroupActive = !missingOrEmpty(rowGroups);\n };\n RowDragFeature.prototype.getContainer = function () {\n return this.eContainer;\n };\n RowDragFeature.prototype.isInterestedIn = function (type) {\n return type === DragSourceType.RowDrag;\n };\n RowDragFeature.prototype.getIconName = function () {\n var managedDrag = this.gridOptionsService.is('rowDragManaged');\n if (managedDrag && this.shouldPreventRowMove()) {\n return DragAndDropService.ICON_NOT_ALLOWED;\n }\n return DragAndDropService.ICON_MOVE;\n };\n RowDragFeature.prototype.shouldPreventRowMove = function () {\n return this.isGridSorted || this.isGridFiltered || this.isRowGroupActive;\n };\n RowDragFeature.prototype.getRowNodes = function (draggingEvent) {\n var _this = this;\n if (!this.isFromThisGrid(draggingEvent)) {\n return (draggingEvent.dragItem.rowNodes || []);\n }\n var isRowDragMultiRow = this.gridOptionsService.is('rowDragMultiRow');\n var selectedNodes = __spreadArray$i([], __read$m(this.selectionService.getSelectedNodes())).sort(function (a, b) {\n if (a.rowIndex == null || b.rowIndex == null) {\n return 0;\n }\n return _this.getRowIndexNumber(a) - _this.getRowIndexNumber(b);\n });\n var currentNode = draggingEvent.dragItem.rowNode;\n if (isRowDragMultiRow && selectedNodes.indexOf(currentNode) !== -1) {\n this.isMultiRowDrag = true;\n return selectedNodes;\n }\n this.isMultiRowDrag = false;\n return [currentNode];\n };\n RowDragFeature.prototype.onDragEnter = function (draggingEvent) {\n // builds a lits of all rows being dragged before firing events\n draggingEvent.dragItem.rowNodes = this.getRowNodes(draggingEvent);\n // when entering, we fire the enter event, then in onEnterOrDragging,\n // we also fire the move event. so we get both events when entering.\n this.dispatchGridEvent(Events.EVENT_ROW_DRAG_ENTER, draggingEvent);\n this.getRowNodes(draggingEvent).forEach(function (rowNode) {\n rowNode.setDragging(true);\n });\n this.onEnterOrDragging(draggingEvent);\n };\n RowDragFeature.prototype.onDragging = function (draggingEvent) {\n this.onEnterOrDragging(draggingEvent);\n };\n RowDragFeature.prototype.isFromThisGrid = function (draggingEvent) {\n var dragSourceDomDataKey = draggingEvent.dragSource.dragSourceDomDataKey;\n return dragSourceDomDataKey === this.gridOptionsService.getDomDataKey();\n };\n RowDragFeature.prototype.isDropZoneWithinThisGrid = function (draggingEvent) {\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n var gridGui = gridBodyCon.getGui();\n var dropZoneTarget = draggingEvent.dropZoneTarget;\n return !gridGui.contains(dropZoneTarget);\n };\n RowDragFeature.prototype.onEnterOrDragging = function (draggingEvent) {\n // this event is fired for enter and move\n this.dispatchGridEvent(Events.EVENT_ROW_DRAG_MOVE, draggingEvent);\n this.lastDraggingEvent = draggingEvent;\n var pixel = this.mouseEventService.getNormalisedPosition(draggingEvent).y;\n var managedDrag = this.gridOptionsService.is('rowDragManaged');\n if (managedDrag) {\n this.doManagedDrag(draggingEvent, pixel);\n }\n this.autoScrollService.check(draggingEvent.event);\n };\n RowDragFeature.prototype.doManagedDrag = function (draggingEvent, pixel) {\n var isFromThisGrid = this.isFromThisGrid(draggingEvent);\n var managedDrag = this.gridOptionsService.is('rowDragManaged');\n var rowNodes = draggingEvent.dragItem.rowNodes;\n if (managedDrag && this.shouldPreventRowMove()) {\n return;\n }\n if (this.gridOptionsService.is('suppressMoveWhenRowDragging') || !isFromThisGrid) {\n if (!this.isDropZoneWithinThisGrid(draggingEvent)) {\n this.clientSideRowModel.highlightRowAtPixel(rowNodes[0], pixel);\n }\n }\n else {\n this.moveRows(rowNodes, pixel);\n }\n };\n RowDragFeature.prototype.getRowIndexNumber = function (rowNode) {\n return parseInt(last(rowNode.getRowIndexString().split('-')), 10);\n };\n RowDragFeature.prototype.moveRowAndClearHighlight = function (draggingEvent) {\n var _this = this;\n var lastHighlightedRowNode = this.clientSideRowModel.getLastHighlightedRowNode();\n var isBelow = lastHighlightedRowNode && lastHighlightedRowNode.highlighted === RowHighlightPosition.Below;\n var pixel = this.mouseEventService.getNormalisedPosition(draggingEvent).y;\n var rowNodes = draggingEvent.dragItem.rowNodes;\n var increment = isBelow ? 1 : 0;\n if (this.isFromThisGrid(draggingEvent)) {\n rowNodes.forEach(function (rowNode) {\n if (rowNode.rowTop < pixel) {\n increment -= 1;\n }\n });\n this.moveRows(rowNodes, pixel, increment);\n }\n else {\n var getRowIdFunc_1 = this.gridOptionsService.getCallback('getRowId');\n var addIndex = this.clientSideRowModel.getRowIndexAtPixel(pixel) + 1;\n if (this.clientSideRowModel.getHighlightPosition(pixel) === RowHighlightPosition.Above) {\n addIndex--;\n }\n this.clientSideRowModel.updateRowData({\n add: rowNodes\n .map(function (node) { return node.data; })\n .filter(function (data) { return !_this.clientSideRowModel.getRowNode(getRowIdFunc_1 ? getRowIdFunc_1({ data: data, level: 0 }) : data.id); }),\n addIndex: addIndex\n });\n }\n this.clearRowHighlight();\n };\n RowDragFeature.prototype.clearRowHighlight = function () {\n this.clientSideRowModel.highlightRowAtPixel(null);\n };\n RowDragFeature.prototype.moveRows = function (rowNodes, pixel, increment) {\n if (increment === void 0) { increment = 0; }\n var rowWasMoved = this.clientSideRowModel.ensureRowsAtPixel(rowNodes, pixel, increment);\n if (rowWasMoved) {\n this.focusService.clearFocusedCell();\n if (this.rangeService) {\n this.rangeService.removeAllCellRanges();\n }\n }\n };\n RowDragFeature.prototype.addRowDropZone = function (params) {\n var _this = this;\n if (!params.getContainer()) {\n doOnce(function () { return console.warn('AG Grid: addRowDropZone - A container target needs to be provided'); }, 'add-drop-zone-empty-target');\n return;\n }\n if (this.dragAndDropService.findExternalZone(params)) {\n console.warn('AG Grid: addRowDropZone - target already exists in the list of DropZones. Use `removeRowDropZone` before adding it again.');\n return;\n }\n var processedParams = {\n getContainer: params.getContainer\n };\n if (params.fromGrid) {\n params.fromGrid = undefined;\n processedParams = params;\n }\n else {\n if (params.onDragEnter) {\n processedParams.onDragEnter = function (e) {\n params.onDragEnter(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_ENTER, e));\n };\n }\n if (params.onDragLeave) {\n processedParams.onDragLeave = function (e) {\n params.onDragLeave(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_LEAVE, e));\n };\n }\n if (params.onDragging) {\n processedParams.onDragging = function (e) {\n params.onDragging(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_MOVE, e));\n };\n }\n if (params.onDragStop) {\n processedParams.onDragStop = function (e) {\n params.onDragStop(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_END, e));\n };\n }\n }\n this.dragAndDropService.addDropTarget(__assign$b({ isInterestedIn: function (type) { return type === DragSourceType.RowDrag; }, getIconName: function () { return DragAndDropService.ICON_MOVE; }, external: true }, processedParams));\n };\n RowDragFeature.prototype.getRowDropZone = function (events) {\n var _this = this;\n var getContainer = this.getContainer.bind(this);\n var onDragEnter = this.onDragEnter.bind(this);\n var onDragLeave = this.onDragLeave.bind(this);\n var onDragging = this.onDragging.bind(this);\n var onDragStop = this.onDragStop.bind(this);\n if (!events) {\n return { getContainer: getContainer, onDragEnter: onDragEnter, onDragLeave: onDragLeave, onDragging: onDragging, onDragStop: onDragStop, /* @private */ fromGrid: true };\n }\n return {\n getContainer: getContainer,\n onDragEnter: events.onDragEnter\n ? (function (e) {\n onDragEnter(e);\n events.onDragEnter(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_ENTER, e));\n })\n : onDragEnter,\n onDragLeave: events.onDragLeave\n ? (function (e) {\n onDragLeave(e);\n events.onDragLeave(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_LEAVE, e));\n })\n : onDragLeave,\n onDragging: events.onDragging\n ? (function (e) {\n onDragging(e);\n events.onDragging(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_MOVE, e));\n })\n : onDragging,\n onDragStop: events.onDragStop\n ? (function (e) {\n onDragStop(e);\n events.onDragStop(_this.draggingToRowDragEvent(Events.EVENT_ROW_DRAG_END, e));\n })\n : onDragStop,\n fromGrid: true /* @private */\n };\n };\n RowDragFeature.prototype.draggingToRowDragEvent = function (type, draggingEvent) {\n var yNormalised = this.mouseEventService.getNormalisedPosition(draggingEvent).y;\n var mouseIsPastLastRow = yNormalised > this.paginationProxy.getCurrentPageHeight();\n var overIndex = -1;\n var overNode;\n if (!mouseIsPastLastRow) {\n overIndex = this.rowModel.getRowIndexAtPixel(yNormalised);\n overNode = this.rowModel.getRow(overIndex);\n }\n var vDirectionString;\n switch (draggingEvent.vDirection) {\n case VerticalDirection.Down:\n vDirectionString = 'down';\n break;\n case VerticalDirection.Up:\n vDirectionString = 'up';\n break;\n default:\n vDirectionString = null;\n break;\n }\n var event = {\n type: type,\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context,\n event: draggingEvent.event,\n node: draggingEvent.dragItem.rowNode,\n nodes: draggingEvent.dragItem.rowNodes,\n overIndex: overIndex,\n overNode: overNode,\n y: yNormalised,\n vDirection: vDirectionString\n };\n return event;\n };\n RowDragFeature.prototype.dispatchGridEvent = function (type, draggingEvent) {\n var event = this.draggingToRowDragEvent(type, draggingEvent);\n this.eventService.dispatchEvent(event);\n };\n RowDragFeature.prototype.onDragLeave = function (draggingEvent) {\n this.dispatchGridEvent(Events.EVENT_ROW_DRAG_LEAVE, draggingEvent);\n this.stopDragging(draggingEvent);\n if (this.gridOptionsService.is('rowDragManaged')) {\n this.clearRowHighlight();\n }\n if (this.isFromThisGrid(draggingEvent)) {\n this.isMultiRowDrag = false;\n }\n };\n RowDragFeature.prototype.onDragStop = function (draggingEvent) {\n this.dispatchGridEvent(Events.EVENT_ROW_DRAG_END, draggingEvent);\n this.stopDragging(draggingEvent);\n if (this.gridOptionsService.is('rowDragManaged') &&\n (this.gridOptionsService.is('suppressMoveWhenRowDragging') || !this.isFromThisGrid(draggingEvent)) &&\n !this.isDropZoneWithinThisGrid(draggingEvent)) {\n this.moveRowAndClearHighlight(draggingEvent);\n }\n };\n RowDragFeature.prototype.stopDragging = function (draggingEvent) {\n this.autoScrollService.ensureCleared();\n this.getRowNodes(draggingEvent).forEach(function (rowNode) {\n rowNode.setDragging(false);\n });\n };\n __decorate$1U([\n Autowired('dragAndDropService')\n ], RowDragFeature.prototype, \"dragAndDropService\", void 0);\n __decorate$1U([\n Autowired('rowModel')\n ], RowDragFeature.prototype, \"rowModel\", void 0);\n __decorate$1U([\n Autowired('paginationProxy')\n ], RowDragFeature.prototype, \"paginationProxy\", void 0);\n __decorate$1U([\n Autowired('columnModel')\n ], RowDragFeature.prototype, \"columnModel\", void 0);\n __decorate$1U([\n Autowired('focusService')\n ], RowDragFeature.prototype, \"focusService\", void 0);\n __decorate$1U([\n Autowired('sortController')\n ], RowDragFeature.prototype, \"sortController\", void 0);\n __decorate$1U([\n Autowired('filterManager')\n ], RowDragFeature.prototype, \"filterManager\", void 0);\n __decorate$1U([\n Autowired('selectionService')\n ], RowDragFeature.prototype, \"selectionService\", void 0);\n __decorate$1U([\n Autowired('mouseEventService')\n ], RowDragFeature.prototype, \"mouseEventService\", void 0);\n __decorate$1U([\n Autowired('ctrlsService')\n ], RowDragFeature.prototype, \"ctrlsService\", void 0);\n __decorate$1U([\n Optional('rangeService')\n ], RowDragFeature.prototype, \"rangeService\", void 0);\n __decorate$1U([\n PostConstruct\n ], RowDragFeature.prototype, \"postConstruct\", null);\n return RowDragFeature;\n}(BeanStub));\n\nvar __extends$22 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1T = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RowAnimationCssClasses;\n(function (RowAnimationCssClasses) {\n RowAnimationCssClasses[\"ANIMATION_ON\"] = \"ag-row-animation\";\n RowAnimationCssClasses[\"ANIMATION_OFF\"] = \"ag-row-no-animation\";\n})(RowAnimationCssClasses || (RowAnimationCssClasses = {}));\nvar CSS_CLASS_FORCE_VERTICAL_SCROLL = 'ag-force-vertical-scroll';\nvar CSS_CLASS_CELL_SELECTABLE = 'ag-selectable';\nvar CSS_CLASS_COLUMN_MOVING = 'ag-column-moving';\nvar GridBodyCtrl = /** @class */ (function (_super) {\n __extends$22(GridBodyCtrl, _super);\n function GridBodyCtrl() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.stickyTopHeight = 0;\n return _this;\n }\n GridBodyCtrl.prototype.getScrollFeature = function () {\n return this.bodyScrollFeature;\n };\n GridBodyCtrl.prototype.getBodyViewportElement = function () {\n return this.eBodyViewport;\n };\n GridBodyCtrl.prototype.setComp = function (comp, eGridBody, eBodyViewport, eTop, eBottom, eStickyTop) {\n this.comp = comp;\n this.eGridBody = eGridBody;\n this.eBodyViewport = eBodyViewport;\n this.eTop = eTop;\n this.eBottom = eBottom;\n this.eStickyTop = eStickyTop;\n this.setCellTextSelection(this.gridOptionsService.is('enableCellTextSelection'));\n this.createManagedBean(new LayoutFeature(this.comp));\n this.bodyScrollFeature = this.createManagedBean(new GridBodyScrollFeature(this.eBodyViewport));\n this.addRowDragListener();\n this.setupRowAnimationCssClass();\n this.addEventListeners();\n this.addFocusListeners([eTop, eBodyViewport, eBottom, eStickyTop]);\n this.onGridColumnsChanged();\n this.addBodyViewportListener();\n this.setFloatingHeights();\n this.disableBrowserDragging();\n this.addStopEditingWhenGridLosesFocus();\n this.filterManager.setupAdvancedFilterHeaderComp(eTop);\n this.ctrlsService.registerGridBodyCtrl(this);\n };\n GridBodyCtrl.prototype.getComp = function () {\n return this.comp;\n };\n GridBodyCtrl.prototype.addEventListeners = function () {\n this.addManagedListener(this.eventService, Events.EVENT_GRID_COLUMNS_CHANGED, this.onGridColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_SCROLL_VISIBILITY_CHANGED, this.onScrollVisibilityChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_PINNED_ROW_DATA_CHANGED, this.onPinnedRowDataChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_HEADER_HEIGHT_CHANGED, this.onHeaderHeightChanged.bind(this));\n };\n GridBodyCtrl.prototype.addFocusListeners = function (elements) {\n var _this = this;\n elements.forEach(function (element) {\n _this.addManagedListener(element, 'focusin', function (e) {\n var target = e.target;\n // element being focused is nested?\n var isFocusedElementNested = isElementChildOfClass(target, 'ag-root', element);\n element.classList.toggle('ag-has-focus', !isFocusedElementNested);\n });\n _this.addManagedListener(element, 'focusout', function (e) {\n var target = e.target, relatedTarget = e.relatedTarget;\n var gridContainRelatedTarget = element.contains(relatedTarget);\n var isNestedRelatedTarget = isElementChildOfClass(relatedTarget, 'ag-root', element);\n var isNestedTarget = isElementChildOfClass(target, 'ag-root', element);\n // element losing focus belongs to a nested grid,\n // it should not be handled here.\n if (isNestedTarget) {\n return;\n }\n // the grid does not contain, or the focus element is within\n // a nested grid\n if (!gridContainRelatedTarget || isNestedRelatedTarget) {\n element.classList.remove('ag-has-focus');\n }\n });\n });\n };\n // used by ColumnAnimationService\n GridBodyCtrl.prototype.setColumnMovingCss = function (moving) {\n this.comp.setColumnMovingCss(CSS_CLASS_COLUMN_MOVING, moving);\n };\n GridBodyCtrl.prototype.setCellTextSelection = function (selectable) {\n if (selectable === void 0) { selectable = false; }\n this.comp.setCellSelectableCss(CSS_CLASS_CELL_SELECTABLE, selectable);\n };\n GridBodyCtrl.prototype.onScrollVisibilityChanged = function () {\n var _this = this;\n var visible = this.scrollVisibleService.isVerticalScrollShowing();\n this.setVerticalScrollPaddingVisible(visible);\n this.setStickyTopWidth(visible);\n var scrollbarWidth = visible ? (this.gridOptionsService.getScrollbarWidth() || 0) : 0;\n var pad = isInvisibleScrollbar() ? 16 : 0;\n var width = \"calc(100% + \" + (scrollbarWidth + pad) + \"px)\";\n this.animationFrameService.requestAnimationFrame(function () { return _this.comp.setBodyViewportWidth(width); });\n };\n GridBodyCtrl.prototype.onGridColumnsChanged = function () {\n var columns = this.columnModel.getAllGridColumns();\n this.comp.setColumnCount(columns ? columns.length : 0);\n };\n // if we do not do this, then the user can select a pic in the grid (eg an image in a custom cell renderer)\n // and then that will start the browser native drag n' drop, which messes up with our own drag and drop.\n GridBodyCtrl.prototype.disableBrowserDragging = function () {\n this.addManagedListener(this.eGridBody, 'dragstart', function (event) {\n if (event.target instanceof HTMLImageElement) {\n event.preventDefault();\n return false;\n }\n });\n };\n GridBodyCtrl.prototype.addStopEditingWhenGridLosesFocus = function () {\n var _this = this;\n if (!this.gridOptionsService.is('stopEditingWhenCellsLoseFocus')) {\n return;\n }\n var focusOutListener = function (event) {\n // this is the element the focus is moving to\n var elementWithFocus = event.relatedTarget;\n if (getTabIndex(elementWithFocus) === null) {\n _this.rowRenderer.stopEditing();\n return;\n }\n var clickInsideGrid = \n // see if click came from inside the viewports\n viewports.some(function (viewport) { return viewport.contains(elementWithFocus); })\n // and also that it's not from a detail grid\n && _this.mouseEventService.isElementInThisGrid(elementWithFocus);\n if (!clickInsideGrid) {\n var popupService = _this.popupService;\n clickInsideGrid =\n popupService.getActivePopups().some(function (popup) { return popup.contains(elementWithFocus); }) ||\n popupService.isElementWithinCustomPopup(elementWithFocus);\n }\n if (!clickInsideGrid) {\n _this.rowRenderer.stopEditing();\n }\n };\n var viewports = [this.eBodyViewport, this.eBottom, this.eTop, this.eStickyTop];\n viewports.forEach(function (viewport) { return _this.addManagedListener(viewport, 'focusout', focusOutListener); });\n };\n GridBodyCtrl.prototype.updateRowCount = function () {\n var headerCount = this.headerNavigationService.getHeaderRowCount() + this.filterManager.getHeaderRowCount();\n var rowCount = this.rowModel.isLastRowIndexKnown() ? this.rowModel.getRowCount() : -1;\n var total = rowCount === -1 ? -1 : (headerCount + rowCount);\n this.comp.setRowCount(total);\n };\n GridBodyCtrl.prototype.registerBodyViewportResizeListener = function (listener) {\n this.comp.registerBodyViewportResizeListener(listener);\n };\n GridBodyCtrl.prototype.setVerticalScrollPaddingVisible = function (visible) {\n var overflowY = visible ? 'scroll' : 'hidden';\n this.comp.setPinnedTopBottomOverflowY(overflowY);\n };\n GridBodyCtrl.prototype.isVerticalScrollShowing = function () {\n var show = this.gridOptionsService.is('alwaysShowVerticalScroll');\n var cssClass = show ? CSS_CLASS_FORCE_VERTICAL_SCROLL : null;\n var allowVerticalScroll = this.gridOptionsService.isDomLayout('normal');\n this.comp.setAlwaysVerticalScrollClass(cssClass, show);\n return show || (allowVerticalScroll && isVerticalScrollShowing(this.eBodyViewport));\n };\n GridBodyCtrl.prototype.setupRowAnimationCssClass = function () {\n var _this = this;\n var listener = function () {\n // we don't want to use row animation if scaling, as rows jump strangely as you scroll,\n // when scaling and doing row animation.\n var animateRows = _this.gridOptionsService.isAnimateRows() && !_this.rowContainerHeightService.isStretching();\n var animateRowsCssClass = animateRows ? RowAnimationCssClasses.ANIMATION_ON : RowAnimationCssClasses.ANIMATION_OFF;\n _this.comp.setRowAnimationCssOnBodyViewport(animateRowsCssClass, animateRows);\n };\n listener();\n this.addManagedListener(this.eventService, Events.EVENT_HEIGHT_SCALE_CHANGED, listener);\n this.addManagedPropertyListener('animateRows', listener);\n };\n GridBodyCtrl.prototype.getGridBodyElement = function () {\n return this.eGridBody;\n };\n GridBodyCtrl.prototype.addBodyViewportListener = function () {\n // we want to listen for clicks directly on the eBodyViewport, so the user has a way of showing\n // the context menu if no rows or columns are displayed, or user simply clicks outside of a cell\n var listener = this.onBodyViewportContextMenu.bind(this);\n this.addManagedListener(this.eBodyViewport, 'contextmenu', listener);\n this.mockContextMenuForIPad(listener);\n this.addManagedListener(this.eBodyViewport, 'wheel', this.onBodyViewportWheel.bind(this));\n this.addManagedListener(this.eStickyTop, 'wheel', this.onStickyTopWheel.bind(this));\n // allow mouseWheel on the Full Width Container to Scroll the Viewport\n this.addFullWidthContainerWheelListener();\n };\n GridBodyCtrl.prototype.addFullWidthContainerWheelListener = function () {\n var _this = this;\n var fullWidthContainer = this.eBodyViewport.querySelector('.ag-full-width-container');\n var eCenterColsViewport = this.eBodyViewport.querySelector('.ag-center-cols-viewport');\n if (fullWidthContainer && eCenterColsViewport) {\n this.addManagedListener(fullWidthContainer, 'wheel', function (e) { return _this.onFullWidthContainerWheel(e, eCenterColsViewport); });\n }\n };\n GridBodyCtrl.prototype.onFullWidthContainerWheel = function (e, eCenterColsViewport) {\n if (!e.deltaX ||\n Math.abs(e.deltaY) > Math.abs(e.deltaX) ||\n !this.mouseEventService.isEventFromThisGrid(e)) {\n return;\n }\n e.preventDefault();\n eCenterColsViewport.scrollBy({ left: e.deltaX });\n };\n GridBodyCtrl.prototype.onBodyViewportContextMenu = function (mouseEvent, touch, touchEvent) {\n if (!mouseEvent && !touchEvent) {\n return;\n }\n if (this.gridOptionsService.is('preventDefaultOnContextMenu')) {\n var event_1 = (mouseEvent || touchEvent);\n event_1.preventDefault();\n }\n var target = (mouseEvent || touch).target;\n if (target === this.eBodyViewport || target === this.ctrlsService.getCenterRowContainerCtrl().getViewportElement()) {\n // show it\n if (!this.contextMenuFactory) {\n return;\n }\n if (mouseEvent) {\n this.contextMenuFactory.onContextMenu(mouseEvent, null, null, null, null, this.eGridBody);\n }\n else if (touchEvent) {\n this.contextMenuFactory.onContextMenu(null, touchEvent, null, null, null, this.eGridBody);\n }\n }\n };\n GridBodyCtrl.prototype.mockContextMenuForIPad = function (listener) {\n // we do NOT want this when not in iPad\n if (!isIOSUserAgent()) {\n return;\n }\n var touchListener = new TouchListener(this.eBodyViewport);\n var longTapListener = function (event) {\n listener(undefined, event.touchStart, event.touchEvent);\n };\n this.addManagedListener(touchListener, TouchListener.EVENT_LONG_TAP, longTapListener);\n this.addDestroyFunc(function () { return touchListener.destroy(); });\n };\n GridBodyCtrl.prototype.onBodyViewportWheel = function (e) {\n if (!this.gridOptionsService.is('suppressScrollWhenPopupsAreOpen')) {\n return;\n }\n if (this.popupService.hasAnchoredPopup()) {\n e.preventDefault();\n }\n };\n GridBodyCtrl.prototype.onStickyTopWheel = function (e) {\n e.preventDefault();\n if (e.offsetY) {\n this.scrollVertically(e.deltaY);\n }\n };\n GridBodyCtrl.prototype.getGui = function () {\n return this.eGridBody;\n };\n // called by rowDragFeature\n GridBodyCtrl.prototype.scrollVertically = function (pixels) {\n var oldScrollPosition = this.eBodyViewport.scrollTop;\n this.bodyScrollFeature.setVerticalScrollPosition(oldScrollPosition + pixels);\n return this.eBodyViewport.scrollTop - oldScrollPosition;\n };\n GridBodyCtrl.prototype.addRowDragListener = function () {\n this.rowDragFeature = this.createManagedBean(new RowDragFeature(this.eBodyViewport));\n this.dragAndDropService.addDropTarget(this.rowDragFeature);\n };\n GridBodyCtrl.prototype.getRowDragFeature = function () {\n return this.rowDragFeature;\n };\n GridBodyCtrl.prototype.onPinnedRowDataChanged = function () {\n this.setFloatingHeights();\n };\n GridBodyCtrl.prototype.setFloatingHeights = function () {\n var pinnedRowModel = this.pinnedRowModel;\n var floatingTopHeight = pinnedRowModel.getPinnedTopTotalHeight();\n if (floatingTopHeight) {\n // adding 1px for cell bottom border\n floatingTopHeight += 1;\n }\n var floatingBottomHeight = pinnedRowModel.getPinnedBottomTotalHeight();\n if (floatingBottomHeight) {\n // adding 1px for cell bottom border\n floatingBottomHeight += 1;\n }\n this.comp.setTopHeight(floatingTopHeight);\n this.comp.setBottomHeight(floatingBottomHeight);\n this.comp.setTopDisplay(floatingTopHeight ? 'inherit' : 'none');\n this.comp.setBottomDisplay(floatingBottomHeight ? 'inherit' : 'none');\n this.setStickyTopOffsetTop();\n };\n GridBodyCtrl.prototype.setStickyTopHeight = function (height) {\n if (height === void 0) { height = 0; }\n // console.log('setting sticky top height ' + height);\n this.comp.setStickyTopHeight(height + \"px\");\n this.stickyTopHeight = height;\n };\n GridBodyCtrl.prototype.getStickyTopHeight = function () {\n return this.stickyTopHeight;\n };\n GridBodyCtrl.prototype.setStickyTopWidth = function (vScrollVisible) {\n if (!vScrollVisible) {\n this.comp.setStickyTopWidth('100%');\n }\n else {\n var scrollbarWidth = this.gridOptionsService.getScrollbarWidth();\n this.comp.setStickyTopWidth(\"calc(100% - \" + scrollbarWidth + \"px)\");\n }\n };\n GridBodyCtrl.prototype.onHeaderHeightChanged = function () {\n this.setStickyTopOffsetTop();\n };\n GridBodyCtrl.prototype.setStickyTopOffsetTop = function () {\n var headerCtrl = this.ctrlsService.getGridHeaderCtrl();\n var headerHeight = headerCtrl.getHeaderHeight() + this.filterManager.getHeaderHeight();\n var pinnedTopHeight = this.pinnedRowModel.getPinnedTopTotalHeight();\n var height = 0;\n if (headerHeight > 0) {\n height += headerHeight + 1;\n }\n if (pinnedTopHeight > 0) {\n height += pinnedTopHeight + 1;\n }\n this.comp.setStickyTopTop(height + \"px\");\n };\n // method will call itself if no available width. this covers if the grid\n // isn't visible, but is just about to be visible.\n GridBodyCtrl.prototype.sizeColumnsToFit = function (params, nextTimeout) {\n var _this = this;\n var removeScrollWidth = this.isVerticalScrollShowing();\n var scrollWidthToRemove = removeScrollWidth ? this.gridOptionsService.getScrollbarWidth() : 0;\n // bodyViewportWidth should be calculated from eGridBody, not eBodyViewport\n // because we change the width of the bodyViewport to hide the real browser scrollbar\n var bodyViewportWidth = getInnerWidth(this.eGridBody);\n var availableWidth = bodyViewportWidth - scrollWidthToRemove;\n if (availableWidth > 0) {\n this.columnModel.sizeColumnsToFit(availableWidth, \"sizeColumnsToFit\", false, params);\n return;\n }\n if (nextTimeout === undefined) {\n window.setTimeout(function () {\n _this.sizeColumnsToFit(params, 100);\n }, 0);\n }\n else if (nextTimeout === 100) {\n window.setTimeout(function () {\n _this.sizeColumnsToFit(params, 500);\n }, 100);\n }\n else if (nextTimeout === 500) {\n window.setTimeout(function () {\n _this.sizeColumnsToFit(params, -1);\n }, 500);\n }\n else {\n console.warn('AG Grid: tried to call sizeColumnsToFit() but the grid is coming back with ' +\n 'zero width, maybe the grid is not visible yet on the screen?');\n }\n };\n // + rangeService\n GridBodyCtrl.prototype.addScrollEventListener = function (listener) {\n this.eBodyViewport.addEventListener('scroll', listener, { passive: true });\n };\n // + focusService\n GridBodyCtrl.prototype.removeScrollEventListener = function (listener) {\n this.eBodyViewport.removeEventListener('scroll', listener);\n };\n __decorate$1T([\n Autowired('animationFrameService')\n ], GridBodyCtrl.prototype, \"animationFrameService\", void 0);\n __decorate$1T([\n Autowired('rowContainerHeightService')\n ], GridBodyCtrl.prototype, \"rowContainerHeightService\", void 0);\n __decorate$1T([\n Autowired('ctrlsService')\n ], GridBodyCtrl.prototype, \"ctrlsService\", void 0);\n __decorate$1T([\n Autowired('columnModel')\n ], GridBodyCtrl.prototype, \"columnModel\", void 0);\n __decorate$1T([\n Autowired('scrollVisibleService')\n ], GridBodyCtrl.prototype, \"scrollVisibleService\", void 0);\n __decorate$1T([\n Optional('contextMenuFactory')\n ], GridBodyCtrl.prototype, \"contextMenuFactory\", void 0);\n __decorate$1T([\n Autowired('headerNavigationService')\n ], GridBodyCtrl.prototype, \"headerNavigationService\", void 0);\n __decorate$1T([\n Autowired('dragAndDropService')\n ], GridBodyCtrl.prototype, \"dragAndDropService\", void 0);\n __decorate$1T([\n Autowired('pinnedRowModel')\n ], GridBodyCtrl.prototype, \"pinnedRowModel\", void 0);\n __decorate$1T([\n Autowired('rowRenderer')\n ], GridBodyCtrl.prototype, \"rowRenderer\", void 0);\n __decorate$1T([\n Autowired('popupService')\n ], GridBodyCtrl.prototype, \"popupService\", void 0);\n __decorate$1T([\n Autowired('mouseEventService')\n ], GridBodyCtrl.prototype, \"mouseEventService\", void 0);\n __decorate$1T([\n Autowired('rowModel')\n ], GridBodyCtrl.prototype, \"rowModel\", void 0);\n __decorate$1T([\n Autowired('filterManager')\n ], GridBodyCtrl.prototype, \"filterManager\", void 0);\n return GridBodyCtrl;\n}(BeanStub));\n\nvar SelectionHandleType;\n(function (SelectionHandleType) {\n SelectionHandleType[SelectionHandleType[\"FILL\"] = 0] = \"FILL\";\n SelectionHandleType[SelectionHandleType[\"RANGE\"] = 1] = \"RANGE\";\n})(SelectionHandleType || (SelectionHandleType = {}));\nvar CellRangeType;\n(function (CellRangeType) {\n CellRangeType[CellRangeType[\"VALUE\"] = 0] = \"VALUE\";\n CellRangeType[CellRangeType[\"DIMENSION\"] = 1] = \"DIMENSION\";\n})(CellRangeType || (CellRangeType = {}));\n\nvar CSS_CELL_RANGE_SELECTED = 'ag-cell-range-selected';\nvar CSS_CELL_RANGE_CHART = 'ag-cell-range-chart';\nvar CSS_CELL_RANGE_SINGLE_CELL = 'ag-cell-range-single-cell';\nvar CSS_CELL_RANGE_CHART_CATEGORY = 'ag-cell-range-chart-category';\nvar CSS_CELL_RANGE_HANDLE = 'ag-cell-range-handle';\nvar CSS_CELL_RANGE_TOP = 'ag-cell-range-top';\nvar CSS_CELL_RANGE_RIGHT = 'ag-cell-range-right';\nvar CSS_CELL_RANGE_BOTTOM = 'ag-cell-range-bottom';\nvar CSS_CELL_RANGE_LEFT = 'ag-cell-range-left';\nvar CellRangeFeature = /** @class */ (function () {\n function CellRangeFeature(beans, ctrl) {\n this.beans = beans;\n this.cellCtrl = ctrl;\n }\n CellRangeFeature.prototype.setComp = function (cellComp, eGui) {\n this.cellComp = cellComp;\n this.eGui = eGui;\n this.onRangeSelectionChanged();\n };\n CellRangeFeature.prototype.onRangeSelectionChanged = function () {\n // when using reactUi, given UI is async, it's possible this method is called before the comp is registered\n if (!this.cellComp) {\n return;\n }\n this.rangeCount = this.beans.rangeService.getCellRangeCount(this.cellCtrl.getCellPosition());\n this.hasChartRange = this.getHasChartRange();\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_SELECTED, this.rangeCount !== 0);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_SELECTED + \"-1\", this.rangeCount === 1);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_SELECTED + \"-2\", this.rangeCount === 2);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_SELECTED + \"-3\", this.rangeCount === 3);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_SELECTED + \"-4\", this.rangeCount >= 4);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_CHART, this.hasChartRange);\n setAriaSelected(this.eGui, this.rangeCount > 0 ? true : undefined);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_SINGLE_CELL, this.isSingleCell());\n this.updateRangeBorders();\n this.refreshHandle();\n };\n CellRangeFeature.prototype.updateRangeBorders = function () {\n var rangeBorders = this.getRangeBorders();\n var isSingleCell = this.isSingleCell();\n var isTop = !isSingleCell && rangeBorders.top;\n var isRight = !isSingleCell && rangeBorders.right;\n var isBottom = !isSingleCell && rangeBorders.bottom;\n var isLeft = !isSingleCell && rangeBorders.left;\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_TOP, isTop);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_RIGHT, isRight);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_BOTTOM, isBottom);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_LEFT, isLeft);\n };\n CellRangeFeature.prototype.isSingleCell = function () {\n var rangeService = this.beans.rangeService;\n return this.rangeCount === 1 && rangeService && !rangeService.isMoreThanOneCell();\n };\n CellRangeFeature.prototype.getHasChartRange = function () {\n var rangeService = this.beans.rangeService;\n if (!this.rangeCount || !rangeService) {\n return false;\n }\n var cellRanges = rangeService.getCellRanges();\n return cellRanges.length > 0 && cellRanges.every(function (range) { return includes([CellRangeType.DIMENSION, CellRangeType.VALUE], range.type); });\n };\n CellRangeFeature.prototype.updateRangeBordersIfRangeCount = function () {\n // we only need to update range borders if we are in a range\n if (this.rangeCount > 0) {\n this.updateRangeBorders();\n this.refreshHandle();\n }\n };\n CellRangeFeature.prototype.getRangeBorders = function () {\n var _this = this;\n var isRtl = this.beans.gridOptionsService.is('enableRtl');\n var top = false;\n var right = false;\n var bottom = false;\n var left = false;\n var thisCol = this.cellCtrl.getCellPosition().column;\n var _a = this.beans, rangeService = _a.rangeService, columnModel = _a.columnModel;\n var leftCol;\n var rightCol;\n if (isRtl) {\n leftCol = columnModel.getDisplayedColAfter(thisCol);\n rightCol = columnModel.getDisplayedColBefore(thisCol);\n }\n else {\n leftCol = columnModel.getDisplayedColBefore(thisCol);\n rightCol = columnModel.getDisplayedColAfter(thisCol);\n }\n var ranges = rangeService.getCellRanges().filter(function (range) { return rangeService.isCellInSpecificRange(_this.cellCtrl.getCellPosition(), range); });\n // this means we are the first column in the grid\n if (!leftCol) {\n left = true;\n }\n // this means we are the last column in the grid\n if (!rightCol) {\n right = true;\n }\n for (var i = 0; i < ranges.length; i++) {\n if (top && right && bottom && left) {\n break;\n }\n var range = ranges[i];\n var startRow = rangeService.getRangeStartRow(range);\n var endRow = rangeService.getRangeEndRow(range);\n if (!top && this.beans.rowPositionUtils.sameRow(startRow, this.cellCtrl.getCellPosition())) {\n top = true;\n }\n if (!bottom && this.beans.rowPositionUtils.sameRow(endRow, this.cellCtrl.getCellPosition())) {\n bottom = true;\n }\n if (!left && leftCol && range.columns.indexOf(leftCol) < 0) {\n left = true;\n }\n if (!right && rightCol && range.columns.indexOf(rightCol) < 0) {\n right = true;\n }\n }\n return { top: top, right: right, bottom: bottom, left: left };\n };\n CellRangeFeature.prototype.refreshHandle = function () {\n if (!this.beans.rangeService) {\n return;\n }\n var shouldHaveSelectionHandle = this.shouldHaveSelectionHandle();\n if (this.selectionHandle && !shouldHaveSelectionHandle) {\n this.selectionHandle = this.beans.context.destroyBean(this.selectionHandle);\n }\n if (shouldHaveSelectionHandle) {\n this.addSelectionHandle();\n }\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_HANDLE, !!this.selectionHandle);\n };\n CellRangeFeature.prototype.shouldHaveSelectionHandle = function () {\n var _a = this.beans, gridOptionsService = _a.gridOptionsService, rangeService = _a.rangeService;\n var cellRanges = rangeService.getCellRanges();\n var rangesLen = cellRanges.length;\n if (this.rangeCount < 1 || rangesLen < 1) {\n return false;\n }\n var cellRange = last(cellRanges);\n var cellPosition = this.cellCtrl.getCellPosition();\n var isFillHandleAvailable = gridOptionsService.is('enableFillHandle') && !this.cellCtrl.isSuppressFillHandle();\n var isRangeHandleAvailable = gridOptionsService.is('enableRangeHandle');\n var handleIsAvailable = rangesLen === 1 && !this.cellCtrl.isEditing() && (isFillHandleAvailable || isRangeHandleAvailable);\n if (this.hasChartRange) {\n var hasCategoryRange = cellRanges[0].type === CellRangeType.DIMENSION;\n var isCategoryCell = hasCategoryRange && rangeService.isCellInSpecificRange(cellPosition, cellRanges[0]);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_RANGE_CHART_CATEGORY, isCategoryCell);\n handleIsAvailable = cellRange.type === CellRangeType.VALUE;\n }\n return handleIsAvailable &&\n cellRange.endRow != null &&\n rangeService.isContiguousRange(cellRange) &&\n rangeService.isBottomRightCell(cellRange, cellPosition);\n };\n CellRangeFeature.prototype.addSelectionHandle = function () {\n var _a = this.beans, gridOptionsService = _a.gridOptionsService, rangeService = _a.rangeService;\n var cellRangeType = last(rangeService.getCellRanges()).type;\n var selectionHandleFill = gridOptionsService.is('enableFillHandle') && missing(cellRangeType);\n var type = selectionHandleFill ? SelectionHandleType.FILL : SelectionHandleType.RANGE;\n if (this.selectionHandle && this.selectionHandle.getType() !== type) {\n this.selectionHandle = this.beans.context.destroyBean(this.selectionHandle);\n }\n if (!this.selectionHandle) {\n this.selectionHandle = this.beans.selectionHandleFactory.createSelectionHandle(type);\n }\n this.selectionHandle.refresh(this.cellCtrl);\n };\n CellRangeFeature.prototype.destroy = function () {\n this.beans.context.destroyBean(this.selectionHandle);\n };\n return CellRangeFeature;\n}());\n\nvar __extends$21 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * Takes care of:\n * #) Cell Width (including when doing cell spanning, which makes width cover many columns)\n * #) Cell Height (when doing row span, otherwise we don't touch the height as it's just row height)\n * #) Cell Left (the horizontal positioning of the cell, the vertical positioning is on the row)\n */\nvar CellPositionFeature = /** @class */ (function (_super) {\n __extends$21(CellPositionFeature, _super);\n function CellPositionFeature(ctrl, beans) {\n var _this = _super.call(this) || this;\n _this.cellCtrl = ctrl;\n _this.beans = beans;\n _this.column = ctrl.getColumn();\n _this.rowNode = ctrl.getRowNode();\n _this.setupColSpan();\n _this.setupRowSpan();\n return _this;\n }\n CellPositionFeature.prototype.setupRowSpan = function () {\n this.rowSpan = this.column.getRowSpan(this.rowNode);\n };\n CellPositionFeature.prototype.setComp = function (eGui) {\n this.eGui = eGui;\n this.onLeftChanged();\n this.onWidthChanged();\n this.applyRowSpan();\n };\n CellPositionFeature.prototype.onDisplayColumnsChanged = function () {\n var colsSpanning = this.getColSpanningList();\n if (!areEqual(this.colsSpanning, colsSpanning)) {\n this.colsSpanning = colsSpanning;\n this.onWidthChanged();\n this.onLeftChanged(); // left changes when doing RTL\n }\n };\n CellPositionFeature.prototype.setupColSpan = function () {\n // if no col span is active, then we don't set it up, as it would be wasteful of CPU\n if (this.column.getColDef().colSpan == null) {\n return;\n }\n this.colsSpanning = this.getColSpanningList();\n // because we are col spanning, a reorder of the cols can change what cols we are spanning over\n this.addManagedListener(this.beans.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayColumnsChanged.bind(this));\n // because we are spanning over multiple cols, we check for width any time any cols width changes.\n // this is expensive - really we should be explicitly checking only the cols we are spanning over\n // instead of every col, however it would be tricky code to track the cols we are spanning over, so\n // because hardly anyone will be using colSpan, am favouring this easier way for more maintainable code.\n this.addManagedListener(this.beans.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onWidthChanged.bind(this));\n };\n CellPositionFeature.prototype.onWidthChanged = function () {\n if (!this.eGui) {\n return;\n }\n var width = this.getCellWidth();\n this.eGui.style.width = width + \"px\";\n };\n CellPositionFeature.prototype.getCellWidth = function () {\n if (!this.colsSpanning) {\n return this.column.getActualWidth();\n }\n return this.colsSpanning.reduce(function (width, col) { return width + col.getActualWidth(); }, 0);\n };\n CellPositionFeature.prototype.getColSpanningList = function () {\n var colSpan = this.column.getColSpan(this.rowNode);\n var colsSpanning = [];\n // if just one col, the col span is just the column we are in\n if (colSpan === 1) {\n colsSpanning.push(this.column);\n }\n else {\n var pointer = this.column;\n var pinned = this.column.getPinned();\n for (var i = 0; pointer && i < colSpan; i++) {\n colsSpanning.push(pointer);\n pointer = this.beans.columnModel.getDisplayedColAfter(pointer);\n if (!pointer || missing(pointer)) {\n break;\n }\n // we do not allow col spanning to span outside of pinned areas\n if (pinned !== pointer.getPinned()) {\n break;\n }\n }\n }\n return colsSpanning;\n };\n CellPositionFeature.prototype.onLeftChanged = function () {\n if (!this.eGui) {\n return;\n }\n var left = this.modifyLeftForPrintLayout(this.getCellLeft());\n this.eGui.style.left = left + 'px';\n };\n CellPositionFeature.prototype.getCellLeft = function () {\n var mostLeftCol;\n if (this.beans.gridOptionsService.is('enableRtl') && this.colsSpanning) {\n mostLeftCol = last(this.colsSpanning);\n }\n else {\n mostLeftCol = this.column;\n }\n return mostLeftCol.getLeft();\n };\n CellPositionFeature.prototype.modifyLeftForPrintLayout = function (leftPosition) {\n if (!this.cellCtrl.isPrintLayout() || this.column.getPinned() === 'left') {\n return leftPosition;\n }\n var leftWidth = this.beans.columnModel.getDisplayedColumnsLeftWidth();\n if (this.column.getPinned() === 'right') {\n var bodyWidth = this.beans.columnModel.getBodyContainerWidth();\n return leftWidth + bodyWidth + (leftPosition || 0);\n }\n // is in body\n return leftWidth + (leftPosition || 0);\n };\n CellPositionFeature.prototype.applyRowSpan = function () {\n if (this.rowSpan === 1) {\n return;\n }\n var singleRowHeight = this.beans.gridOptionsService.getRowHeightAsNumber();\n var totalRowHeight = singleRowHeight * this.rowSpan;\n this.eGui.style.height = totalRowHeight + \"px\";\n this.eGui.style.zIndex = '1';\n };\n // overriding to make public, as we don't dispose this bean via context\n CellPositionFeature.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n return CellPositionFeature;\n}(BeanStub));\n\nvar __extends$20 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar CellCustomStyleFeature = /** @class */ (function (_super) {\n __extends$20(CellCustomStyleFeature, _super);\n function CellCustomStyleFeature(ctrl, beans) {\n var _this = _super.call(this) || this;\n _this.staticClasses = [];\n _this.cellCtrl = ctrl;\n _this.beans = beans;\n _this.column = ctrl.getColumn();\n _this.rowNode = ctrl.getRowNode();\n return _this;\n }\n CellCustomStyleFeature.prototype.setComp = function (comp) {\n this.cellComp = comp;\n this.applyUserStyles();\n this.applyCellClassRules();\n this.applyClassesFromColDef();\n };\n CellCustomStyleFeature.prototype.applyCellClassRules = function () {\n var _this = this;\n var colDef = this.column.getColDef();\n var cellClassParams = {\n value: this.cellCtrl.getValue(),\n data: this.rowNode.data,\n node: this.rowNode,\n colDef: colDef,\n column: this.column,\n rowIndex: this.rowNode.rowIndex,\n api: this.beans.gridOptionsService.api,\n columnApi: this.beans.gridOptionsService.columnApi,\n context: this.beans.gridOptionsService.context\n };\n this.beans.stylingService.processClassRules(colDef.cellClassRules, cellClassParams, function (className) { return _this.cellComp.addOrRemoveCssClass(className, true); }, function (className) { return _this.cellComp.addOrRemoveCssClass(className, false); });\n };\n CellCustomStyleFeature.prototype.applyUserStyles = function () {\n var colDef = this.column.getColDef();\n if (!colDef.cellStyle) {\n return;\n }\n var styles;\n if (typeof colDef.cellStyle === 'function') {\n var cellStyleParams = {\n column: this.column,\n value: this.cellCtrl.getValue(),\n colDef: colDef,\n data: this.rowNode.data,\n node: this.rowNode,\n rowIndex: this.rowNode.rowIndex,\n api: this.beans.gridOptionsService.api,\n columnApi: this.beans.gridOptionsService.columnApi,\n context: this.beans.gridOptionsService.context,\n };\n var cellStyleFunc = colDef.cellStyle;\n styles = cellStyleFunc(cellStyleParams);\n }\n else {\n styles = colDef.cellStyle;\n }\n if (styles) {\n this.cellComp.setUserStyles(styles);\n }\n };\n CellCustomStyleFeature.prototype.applyClassesFromColDef = function () {\n var _this = this;\n var colDef = this.column.getColDef();\n var cellClassParams = {\n value: this.cellCtrl.getValue(),\n data: this.rowNode.data,\n node: this.rowNode,\n column: this.column,\n colDef: colDef,\n rowIndex: this.rowNode.rowIndex,\n api: this.beans.gridOptionsService.api,\n columnApi: this.beans.gridOptionsService.columnApi,\n context: this.beans.gridOptionsService.context\n };\n if (this.staticClasses.length) {\n this.staticClasses.forEach(function (className) { return _this.cellComp.addOrRemoveCssClass(className, false); });\n }\n this.staticClasses = this.beans.stylingService.getStaticCellClasses(colDef, cellClassParams);\n if (this.staticClasses.length) {\n this.staticClasses.forEach(function (className) { return _this.cellComp.addOrRemoveCssClass(className, true); });\n }\n };\n // overriding to make public, as we don't dispose this bean via context\n CellCustomStyleFeature.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n return CellCustomStyleFeature;\n}(BeanStub));\n\nvar __extends$1$ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar TooltipFeature = /** @class */ (function (_super) {\n __extends$1$(TooltipFeature, _super);\n function TooltipFeature(ctrl, beans) {\n var _this = _super.call(this) || this;\n _this.ctrl = ctrl;\n _this.beans = beans;\n return _this;\n }\n TooltipFeature.prototype.setComp = function (eGui) {\n this.eGui = eGui;\n this.setupTooltip();\n };\n TooltipFeature.prototype.setBrowserTooltip = function (tooltip) {\n var name = 'title';\n if (tooltip != null && tooltip != '') {\n this.eGui.setAttribute(name, tooltip);\n }\n else {\n this.eGui.removeAttribute(name);\n }\n };\n TooltipFeature.prototype.setupTooltip = function () {\n this.browserTooltips = this.beans.gridOptionsService.is('enableBrowserTooltips');\n this.updateTooltipText();\n if (this.browserTooltips) {\n this.setBrowserTooltip(this.tooltip);\n }\n else {\n this.createTooltipFeatureIfNeeded();\n }\n };\n TooltipFeature.prototype.updateTooltipText = function () {\n this.tooltip = this.ctrl.getTooltipValue();\n };\n TooltipFeature.prototype.createTooltipFeatureIfNeeded = function () {\n var _this = this;\n var _a, _b, _c, _d;\n if (this.genericTooltipFeature != null) {\n return;\n }\n var parent = {\n getTooltipParams: function () { return _this.getTooltipParams(); },\n getGui: function () { return _this.ctrl.getGui(); }\n };\n this.genericTooltipFeature = this.createManagedBean(new CustomTooltipFeature(parent, (_b = (_a = this.ctrl).getTooltipShowDelayOverride) === null || _b === void 0 ? void 0 : _b.call(_a), (_d = (_c = this.ctrl).getTooltipHideDelayOverride) === null || _d === void 0 ? void 0 : _d.call(_c)), this.beans.context);\n };\n TooltipFeature.prototype.refreshToolTip = function () {\n this.updateTooltipText();\n if (this.browserTooltips) {\n this.setBrowserTooltip(this.tooltip);\n }\n };\n TooltipFeature.prototype.getTooltipParams = function () {\n var _this = this;\n var ctrl = this.ctrl;\n var column = ctrl.getColumn ? ctrl.getColumn() : undefined;\n var colDef = ctrl.getColDef ? ctrl.getColDef() : undefined;\n var rowNode = ctrl.getRowNode ? ctrl.getRowNode() : undefined;\n return {\n location: ctrl.getLocation(),\n colDef: colDef,\n column: column,\n rowIndex: ctrl.getRowIndex ? ctrl.getRowIndex() : undefined,\n node: rowNode,\n data: rowNode ? rowNode.data : undefined,\n value: this.getTooltipText(),\n valueFormatted: ctrl.getValueFormatted ? ctrl.getValueFormatted() : undefined,\n hideTooltipCallback: function () { return _this.genericTooltipFeature.hideTooltip(true); }\n };\n };\n TooltipFeature.prototype.getTooltipText = function () {\n return this.tooltip;\n };\n // overriding to make public, as we don't dispose this bean via context\n TooltipFeature.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n return TooltipFeature;\n}(BeanStub));\n\nvar __decorate$1S = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/** Using the IoC has a slight performance consideration, which is no problem most of the\n * time, unless we are trashing objects - which is the case when scrolling and rowComp\n * and cellComp. So for performance reasons, RowComp and CellComp do not get autowired\n * with the IoC. Instead they get passed this object which is all the beans the RowComp\n * and CellComp need. Not autowiring all the cells gives performance improvement. */\nvar Beans = /** @class */ (function () {\n function Beans() {\n }\n Beans.prototype.postConstruct = function () {\n this.doingMasterDetail = this.gridOptionsService.is('masterDetail');\n if (this.gridOptionsService.isRowModelType('clientSide')) {\n this.clientSideRowModel = this.rowModel;\n }\n if (this.gridOptionsService.isRowModelType('serverSide')) {\n this.serverSideRowModel = this.rowModel;\n }\n };\n __decorate$1S([\n Autowired('resizeObserverService')\n ], Beans.prototype, \"resizeObserverService\", void 0);\n __decorate$1S([\n Autowired('paginationProxy')\n ], Beans.prototype, \"paginationProxy\", void 0);\n __decorate$1S([\n Autowired('context')\n ], Beans.prototype, \"context\", void 0);\n __decorate$1S([\n Autowired('columnApi')\n ], Beans.prototype, \"columnApi\", void 0);\n __decorate$1S([\n Autowired('gridApi')\n ], Beans.prototype, \"gridApi\", void 0);\n __decorate$1S([\n Autowired('gridOptionsService')\n ], Beans.prototype, \"gridOptionsService\", void 0);\n __decorate$1S([\n Autowired('expressionService')\n ], Beans.prototype, \"expressionService\", void 0);\n __decorate$1S([\n Autowired('environment')\n ], Beans.prototype, \"environment\", void 0);\n __decorate$1S([\n Autowired('rowRenderer')\n ], Beans.prototype, \"rowRenderer\", void 0);\n __decorate$1S([\n Autowired('templateService')\n ], Beans.prototype, \"templateService\", void 0);\n __decorate$1S([\n Autowired('valueService')\n ], Beans.prototype, \"valueService\", void 0);\n __decorate$1S([\n Autowired('eventService')\n ], Beans.prototype, \"eventService\", void 0);\n __decorate$1S([\n Autowired('columnModel')\n ], Beans.prototype, \"columnModel\", void 0);\n __decorate$1S([\n Autowired('headerNavigationService')\n ], Beans.prototype, \"headerNavigationService\", void 0);\n __decorate$1S([\n Autowired('navigationService')\n ], Beans.prototype, \"navigationService\", void 0);\n __decorate$1S([\n Autowired('columnAnimationService')\n ], Beans.prototype, \"columnAnimationService\", void 0);\n __decorate$1S([\n Optional('rangeService')\n ], Beans.prototype, \"rangeService\", void 0);\n __decorate$1S([\n Autowired('focusService')\n ], Beans.prototype, \"focusService\", void 0);\n __decorate$1S([\n Optional('contextMenuFactory')\n ], Beans.prototype, \"contextMenuFactory\", void 0);\n __decorate$1S([\n Autowired('popupService')\n ], Beans.prototype, \"popupService\", void 0);\n __decorate$1S([\n Autowired('valueFormatterService')\n ], Beans.prototype, \"valueFormatterService\", void 0);\n __decorate$1S([\n Autowired('stylingService')\n ], Beans.prototype, \"stylingService\", void 0);\n __decorate$1S([\n Autowired('columnHoverService')\n ], Beans.prototype, \"columnHoverService\", void 0);\n __decorate$1S([\n Autowired('userComponentFactory')\n ], Beans.prototype, \"userComponentFactory\", void 0);\n __decorate$1S([\n Autowired('userComponentRegistry')\n ], Beans.prototype, \"userComponentRegistry\", void 0);\n __decorate$1S([\n Autowired('animationFrameService')\n ], Beans.prototype, \"animationFrameService\", void 0);\n __decorate$1S([\n Autowired('dragService')\n ], Beans.prototype, \"dragService\", void 0);\n __decorate$1S([\n Autowired('dragAndDropService')\n ], Beans.prototype, \"dragAndDropService\", void 0);\n __decorate$1S([\n Autowired('sortController')\n ], Beans.prototype, \"sortController\", void 0);\n __decorate$1S([\n Autowired('filterManager')\n ], Beans.prototype, \"filterManager\", void 0);\n __decorate$1S([\n Autowired('rowContainerHeightService')\n ], Beans.prototype, \"rowContainerHeightService\", void 0);\n __decorate$1S([\n Autowired('frameworkOverrides')\n ], Beans.prototype, \"frameworkOverrides\", void 0);\n __decorate$1S([\n Autowired('cellPositionUtils')\n ], Beans.prototype, \"cellPositionUtils\", void 0);\n __decorate$1S([\n Autowired('rowPositionUtils')\n ], Beans.prototype, \"rowPositionUtils\", void 0);\n __decorate$1S([\n Autowired('selectionService')\n ], Beans.prototype, \"selectionService\", void 0);\n __decorate$1S([\n Optional('selectionHandleFactory')\n ], Beans.prototype, \"selectionHandleFactory\", void 0);\n __decorate$1S([\n Autowired('rowCssClassCalculator')\n ], Beans.prototype, \"rowCssClassCalculator\", void 0);\n __decorate$1S([\n Autowired('rowModel')\n ], Beans.prototype, \"rowModel\", void 0);\n __decorate$1S([\n Autowired('ctrlsService')\n ], Beans.prototype, \"ctrlsService\", void 0);\n __decorate$1S([\n Autowired('ctrlsFactory')\n ], Beans.prototype, \"ctrlsFactory\", void 0);\n __decorate$1S([\n Autowired('agStackComponentsRegistry')\n ], Beans.prototype, \"agStackComponentsRegistry\", void 0);\n __decorate$1S([\n Autowired('valueCache')\n ], Beans.prototype, \"valueCache\", void 0);\n __decorate$1S([\n Autowired('rowNodeEventThrottle')\n ], Beans.prototype, \"rowNodeEventThrottle\", void 0);\n __decorate$1S([\n Autowired('localeService')\n ], Beans.prototype, \"localeService\", void 0);\n __decorate$1S([\n Autowired('valueParserService')\n ], Beans.prototype, \"valueParserService\", void 0);\n __decorate$1S([\n PostConstruct\n ], Beans.prototype, \"postConstruct\", null);\n Beans = __decorate$1S([\n Bean('beans')\n ], Beans);\n return Beans;\n}());\n\nvar __extends$1_ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar CellMouseListenerFeature = /** @class */ (function (_super) {\n __extends$1_(CellMouseListenerFeature, _super);\n function CellMouseListenerFeature(ctrl, beans, column) {\n var _this = _super.call(this) || this;\n _this.cellCtrl = ctrl;\n _this.beans = beans;\n _this.column = column;\n return _this;\n }\n CellMouseListenerFeature.prototype.onMouseEvent = function (eventName, mouseEvent) {\n if (isStopPropagationForAgGrid(mouseEvent)) {\n return;\n }\n switch (eventName) {\n case 'click':\n this.onCellClicked(mouseEvent);\n break;\n case 'mousedown':\n case 'touchstart':\n this.onMouseDown(mouseEvent);\n break;\n case 'dblclick':\n this.onCellDoubleClicked(mouseEvent);\n break;\n case 'mouseout':\n this.onMouseOut(mouseEvent);\n break;\n case 'mouseover':\n this.onMouseOver(mouseEvent);\n break;\n }\n };\n CellMouseListenerFeature.prototype.onCellClicked = function (mouseEvent) {\n // iPad doesn't have double click - so we need to mimic it to enable editing for iPad.\n if (this.isDoubleClickOnIPad()) {\n this.onCellDoubleClicked(mouseEvent);\n mouseEvent.preventDefault(); // if we don't do this, then iPad zooms in\n return;\n }\n var _a = this.beans, eventService = _a.eventService, rangeService = _a.rangeService, gridOptionsService = _a.gridOptionsService;\n var isMultiKey = mouseEvent.ctrlKey || mouseEvent.metaKey;\n if (rangeService && isMultiKey) {\n // the mousedown event has created the range already, so we only intersect if there is more than one\n // range on this cell\n if (rangeService.getCellRangeCount(this.cellCtrl.getCellPosition()) > 1) {\n rangeService.intersectLastRange(true);\n }\n }\n var cellClickedEvent = this.cellCtrl.createEvent(mouseEvent, Events.EVENT_CELL_CLICKED);\n eventService.dispatchEvent(cellClickedEvent);\n var colDef = this.column.getColDef();\n if (colDef.onCellClicked) {\n // to make callback async, do in a timeout\n window.setTimeout(function () { return colDef.onCellClicked(cellClickedEvent); }, 0);\n }\n var editOnSingleClick = (gridOptionsService.is('singleClickEdit') || colDef.singleClickEdit)\n && !gridOptionsService.is('suppressClickEdit');\n // edit on single click, but not if extending a range\n if (editOnSingleClick && !(mouseEvent.shiftKey && (rangeService === null || rangeService === void 0 ? void 0 : rangeService.getCellRanges().length) != 0)) {\n this.cellCtrl.startRowOrCellEdit();\n }\n };\n // returns true if on iPad and this is second 'click' event in 200ms\n CellMouseListenerFeature.prototype.isDoubleClickOnIPad = function () {\n if (!isIOSUserAgent() || isEventSupported('dblclick')) {\n return false;\n }\n var nowMillis = new Date().getTime();\n var res = nowMillis - this.lastIPadMouseClickEvent < 200;\n this.lastIPadMouseClickEvent = nowMillis;\n return res;\n };\n CellMouseListenerFeature.prototype.onCellDoubleClicked = function (mouseEvent) {\n var colDef = this.column.getColDef();\n // always dispatch event to eventService\n var cellDoubleClickedEvent = this.cellCtrl.createEvent(mouseEvent, Events.EVENT_CELL_DOUBLE_CLICKED);\n this.beans.eventService.dispatchEvent(cellDoubleClickedEvent);\n // check if colDef also wants to handle event\n if (typeof colDef.onCellDoubleClicked === 'function') {\n // to make the callback async, do in a timeout\n window.setTimeout(function () { return colDef.onCellDoubleClicked(cellDoubleClickedEvent); }, 0);\n }\n var editOnDoubleClick = !this.beans.gridOptionsService.is('singleClickEdit')\n && !this.beans.gridOptionsService.is('suppressClickEdit');\n if (editOnDoubleClick) {\n this.cellCtrl.startRowOrCellEdit(null, mouseEvent);\n }\n };\n CellMouseListenerFeature.prototype.onMouseDown = function (mouseEvent) {\n var ctrlKey = mouseEvent.ctrlKey, metaKey = mouseEvent.metaKey, shiftKey = mouseEvent.shiftKey;\n var target = mouseEvent.target;\n var _a = this, cellCtrl = _a.cellCtrl, beans = _a.beans;\n var eventService = beans.eventService, rangeService = beans.rangeService, focusService = beans.focusService;\n // do not change the range for right-clicks inside an existing range\n if (this.isRightClickInExistingRange(mouseEvent)) {\n return;\n }\n var ranges = rangeService && rangeService.getCellRanges().length != 0;\n if (!shiftKey || !ranges) {\n // We only need to pass true to focusCell when the browser is Safari and we are trying\n // to focus the cell itself. This should never be true if the mousedown was triggered\n // due to a click on a cell editor for example.\n var forceBrowserFocus = (isBrowserSafari()) && !cellCtrl.isEditing() && !isFocusableFormField(target);\n cellCtrl.focusCell(forceBrowserFocus);\n }\n // if shift clicking, and a range exists, we keep the focus on the cell that started the\n // range as the user then changes the range selection.\n if (shiftKey && ranges && !focusService.isCellFocused(cellCtrl.getCellPosition())) {\n // this stops the cell from getting focused\n mouseEvent.preventDefault();\n var focusedCellPosition = focusService.getFocusedCell();\n if (focusedCellPosition) {\n var column = focusedCellPosition.column, rowIndex = focusedCellPosition.rowIndex, rowPinned = focusedCellPosition.rowPinned;\n var focusedRowCtrl = beans.rowRenderer.getRowByPosition({ rowIndex: rowIndex, rowPinned: rowPinned });\n var focusedCellCtrl = focusedRowCtrl === null || focusedRowCtrl === void 0 ? void 0 : focusedRowCtrl.getCellCtrl(column);\n // if the focused cell is editing, need to stop editing first\n if (focusedCellCtrl === null || focusedCellCtrl === void 0 ? void 0 : focusedCellCtrl.isEditing()) {\n focusedCellCtrl.stopEditing();\n }\n // focus could have been lost, so restore it to the starting cell in the range if needed\n focusService.setFocusedCell({\n column: column,\n rowIndex: rowIndex,\n rowPinned: rowPinned,\n forceBrowserFocus: true,\n preventScrollOnBrowserFocus: true,\n });\n }\n }\n // if we are clicking on a checkbox, we need to make sure the cell wrapping that checkbox\n // is focused but we don't want to change the range selection, so return here.\n if (this.containsWidget(target)) {\n return;\n }\n if (rangeService) {\n var thisCell = this.cellCtrl.getCellPosition();\n if (shiftKey) {\n rangeService.extendLatestRangeToCell(thisCell);\n }\n else {\n var isMultiKey = ctrlKey || metaKey;\n rangeService.setRangeToCell(thisCell, isMultiKey);\n }\n }\n eventService.dispatchEvent(this.cellCtrl.createEvent(mouseEvent, Events.EVENT_CELL_MOUSE_DOWN));\n };\n CellMouseListenerFeature.prototype.isRightClickInExistingRange = function (mouseEvent) {\n var rangeService = this.beans.rangeService;\n if (rangeService) {\n var cellInRange = rangeService.isCellInAnyRange(this.cellCtrl.getCellPosition());\n var isRightClick = mouseEvent.button === 2 || (mouseEvent.ctrlKey && this.beans.gridOptionsService.is('allowContextMenuWithControlKey'));\n if (cellInRange && isRightClick) {\n return true;\n }\n }\n return false;\n };\n CellMouseListenerFeature.prototype.containsWidget = function (target) {\n return isElementChildOfClass(target, 'ag-selection-checkbox', 3);\n };\n CellMouseListenerFeature.prototype.onMouseOut = function (mouseEvent) {\n if (this.mouseStayingInsideCell(mouseEvent)) {\n return;\n }\n var cellMouseOutEvent = this.cellCtrl.createEvent(mouseEvent, Events.EVENT_CELL_MOUSE_OUT);\n this.beans.eventService.dispatchEvent(cellMouseOutEvent);\n this.beans.columnHoverService.clearMouseOver();\n };\n CellMouseListenerFeature.prototype.onMouseOver = function (mouseEvent) {\n if (this.mouseStayingInsideCell(mouseEvent)) {\n return;\n }\n var cellMouseOverEvent = this.cellCtrl.createEvent(mouseEvent, Events.EVENT_CELL_MOUSE_OVER);\n this.beans.eventService.dispatchEvent(cellMouseOverEvent);\n this.beans.columnHoverService.setMouseOver([this.column]);\n };\n CellMouseListenerFeature.prototype.mouseStayingInsideCell = function (e) {\n if (!e.target || !e.relatedTarget) {\n return false;\n }\n var eGui = this.cellCtrl.getGui();\n var cellContainsTarget = eGui.contains(e.target);\n var cellContainsRelatedTarget = eGui.contains(e.relatedTarget);\n return cellContainsTarget && cellContainsRelatedTarget;\n };\n CellMouseListenerFeature.prototype.destroy = function () {\n };\n return CellMouseListenerFeature;\n}(Beans));\n\nvar __extends$1Z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar CellKeyboardListenerFeature = /** @class */ (function (_super) {\n __extends$1Z(CellKeyboardListenerFeature, _super);\n function CellKeyboardListenerFeature(ctrl, beans, column, rowNode, rowCtrl) {\n var _this = _super.call(this) || this;\n _this.cellCtrl = ctrl;\n _this.beans = beans;\n _this.rowNode = rowNode;\n _this.rowCtrl = rowCtrl;\n return _this;\n }\n CellKeyboardListenerFeature.prototype.setComp = function (eGui) {\n this.eGui = eGui;\n };\n CellKeyboardListenerFeature.prototype.onKeyDown = function (event) {\n var key = event.key;\n switch (key) {\n case KeyCode.ENTER:\n this.onEnterKeyDown(event);\n break;\n case KeyCode.F2:\n this.onF2KeyDown(event);\n break;\n case KeyCode.ESCAPE:\n this.onEscapeKeyDown(event);\n break;\n case KeyCode.TAB:\n this.onTabKeyDown(event);\n break;\n case KeyCode.BACKSPACE:\n case KeyCode.DELETE:\n this.onBackspaceOrDeleteKeyDown(key, event);\n break;\n case KeyCode.DOWN:\n case KeyCode.UP:\n case KeyCode.RIGHT:\n case KeyCode.LEFT:\n this.onNavigationKeyDown(event, key);\n break;\n }\n };\n CellKeyboardListenerFeature.prototype.onNavigationKeyDown = function (event, key) {\n if (this.cellCtrl.isEditing()) {\n return;\n }\n if (event.shiftKey && this.cellCtrl.isRangeSelectionEnabled()) {\n this.onShiftRangeSelect(event);\n }\n else {\n this.beans.navigationService.navigateToNextCell(event, key, this.cellCtrl.getCellPosition(), true);\n }\n // if we don't prevent default, the grid will scroll with the navigation keys\n event.preventDefault();\n };\n CellKeyboardListenerFeature.prototype.onShiftRangeSelect = function (event) {\n if (!this.beans.rangeService) {\n return;\n }\n var endCell = this.beans.rangeService.extendLatestRangeInDirection(event);\n if (endCell) {\n this.beans.navigationService.ensureCellVisible(endCell);\n }\n };\n CellKeyboardListenerFeature.prototype.onTabKeyDown = function (event) {\n this.beans.navigationService.onTabKeyDown(this.cellCtrl, event);\n };\n CellKeyboardListenerFeature.prototype.onBackspaceOrDeleteKeyDown = function (key, event) {\n var _a = this, cellCtrl = _a.cellCtrl, beans = _a.beans, rowNode = _a.rowNode;\n var gridOptionsService = beans.gridOptionsService, rangeService = beans.rangeService, eventService = beans.eventService;\n if (cellCtrl.isEditing()) {\n return;\n }\n eventService.dispatchEvent({ type: Events.EVENT_KEY_SHORTCUT_CHANGED_CELL_START });\n if (isDeleteKey(key, gridOptionsService.is('enableCellEditingOnBackspace'))) {\n if (rangeService && gridOptionsService.is('enableRangeSelection')) {\n rangeService.clearCellRangeCellValues({ dispatchWrapperEvents: true, wrapperEventSource: 'deleteKey' });\n }\n else if (cellCtrl.isCellEditable()) {\n rowNode.setDataValue(cellCtrl.getColumn(), null, 'cellClear');\n }\n }\n else {\n cellCtrl.startRowOrCellEdit(key, event);\n }\n eventService.dispatchEvent({ type: Events.EVENT_KEY_SHORTCUT_CHANGED_CELL_END });\n };\n CellKeyboardListenerFeature.prototype.onEnterKeyDown = function (e) {\n if (this.cellCtrl.isEditing() || this.rowCtrl.isEditing()) {\n this.cellCtrl.stopEditingAndFocus(false, e.shiftKey);\n }\n else {\n if (this.beans.gridOptionsService.is('enterNavigatesVertically')) {\n var key = e.shiftKey ? KeyCode.UP : KeyCode.DOWN;\n this.beans.navigationService.navigateToNextCell(null, key, this.cellCtrl.getCellPosition(), false);\n }\n else {\n this.cellCtrl.startRowOrCellEdit(KeyCode.ENTER, e);\n if (this.cellCtrl.isEditing()) {\n // if we started editing, then we need to prevent default, otherwise the Enter action can get\n // applied to the cell editor. this happened, for example, with largeTextCellEditor where not\n // preventing default results in a 'new line' character getting inserted in the text area\n // when the editing was started\n e.preventDefault();\n }\n }\n }\n };\n CellKeyboardListenerFeature.prototype.onF2KeyDown = function (event) {\n if (!this.cellCtrl.isEditing()) {\n this.cellCtrl.startRowOrCellEdit(KeyCode.F2, event);\n }\n };\n CellKeyboardListenerFeature.prototype.onEscapeKeyDown = function (event) {\n if (this.cellCtrl.isEditing()) {\n this.cellCtrl.stopRowOrCellEdit(true);\n this.cellCtrl.focusCell(true);\n }\n };\n CellKeyboardListenerFeature.prototype.processCharacter = function (event) {\n // check this, in case focus is on a (for example) a text field inside the cell,\n // in which cse we should not be listening for these key pressed\n var eventTarget = event.target;\n var eventOnChildComponent = eventTarget !== this.eGui;\n if (eventOnChildComponent || this.cellCtrl.isEditing()) {\n return;\n }\n var key = event.key;\n if (key === ' ') {\n this.onSpaceKeyDown(event);\n }\n else {\n this.cellCtrl.startRowOrCellEdit(key, event);\n // if we don't prevent default, then the event also gets applied to the text field\n // (at least when doing the default editor), but we need to allow the editor to decide\n // what it wants to do. we only do this IF editing was started - otherwise it messes\n // up when the use is not doing editing, but using rendering with text fields in cellRenderer\n // (as it would block the the user from typing into text fields).\n event.preventDefault();\n }\n };\n CellKeyboardListenerFeature.prototype.onSpaceKeyDown = function (event) {\n var gridOptionsService = this.beans.gridOptionsService;\n if (!this.cellCtrl.isEditing() && gridOptionsService.isRowSelection()) {\n var currentSelection = this.rowNode.isSelected();\n var newSelection = !currentSelection;\n if (newSelection || !gridOptionsService.is('suppressRowDeselection')) {\n var groupSelectsFiltered = this.beans.gridOptionsService.is('groupSelectsFiltered');\n var updatedCount = this.rowNode.setSelectedParams({\n newValue: newSelection,\n rangeSelect: event.shiftKey,\n groupSelectsFiltered: groupSelectsFiltered,\n event: event,\n source: 'spaceKey',\n });\n if (currentSelection === undefined && updatedCount === 0) {\n this.rowNode.setSelectedParams({\n newValue: false,\n rangeSelect: event.shiftKey,\n groupSelectsFiltered: groupSelectsFiltered,\n event: event,\n source: 'spaceKey',\n });\n }\n }\n }\n // prevent default as space key, by default, moves browser scroll down\n event.preventDefault();\n };\n CellKeyboardListenerFeature.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n return CellKeyboardListenerFeature;\n}(BeanStub));\n\nvar __extends$1Y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1R = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DndSourceComp = /** @class */ (function (_super) {\n __extends$1Y(DndSourceComp, _super);\n function DndSourceComp(rowNode, column, eCell) {\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.rowNode = rowNode;\n _this.column = column;\n _this.eCell = eCell;\n return _this;\n }\n DndSourceComp.prototype.postConstruct = function () {\n var eGui = this.getGui();\n eGui.appendChild(createIconNoSpan('rowDrag', this.gridOptionsService, null));\n // we need to stop the event propagation here to avoid starting a range selection while dragging\n this.addGuiEventListener('mousedown', function (e) {\n e.stopPropagation();\n });\n this.addDragSource();\n this.checkVisibility();\n };\n DndSourceComp.prototype.addDragSource = function () {\n this.addGuiEventListener('dragstart', this.onDragStart.bind(this));\n };\n DndSourceComp.prototype.onDragStart = function (dragEvent) {\n var _this = this;\n var providedOnRowDrag = this.column.getColDef().dndSourceOnRowDrag;\n dragEvent.dataTransfer.setDragImage(this.eCell, 0, 0);\n // default behaviour is to convert data to json and set into drag component\n var defaultOnRowDrag = function () {\n try {\n var jsonData = JSON.stringify(_this.rowNode.data);\n dragEvent.dataTransfer.setData('application/json', jsonData);\n dragEvent.dataTransfer.setData('text/plain', jsonData);\n }\n catch (e) {\n // if we cannot convert the data to json, then we do not set the type\n }\n };\n if (providedOnRowDrag) {\n var params = {\n rowNode: this.rowNode, dragEvent: dragEvent,\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context\n };\n providedOnRowDrag(params);\n }\n else {\n defaultOnRowDrag();\n }\n };\n DndSourceComp.prototype.checkVisibility = function () {\n var visible = this.column.isDndSource(this.rowNode);\n this.setDisplayed(visible);\n };\n __decorate$1R([\n PostConstruct\n ], DndSourceComp.prototype, \"postConstruct\", null);\n return DndSourceComp;\n}(Component));\n\nvar __extends$1X = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$a = (undefined && undefined.__assign) || function () {\n __assign$a = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$a.apply(this, arguments);\n};\nvar CSS_CELL = 'ag-cell';\nvar CSS_AUTO_HEIGHT = 'ag-cell-auto-height';\nvar CSS_NORMAL_HEIGHT = 'ag-cell-normal-height';\nvar CSS_CELL_FOCUS = 'ag-cell-focus';\nvar CSS_CELL_FIRST_RIGHT_PINNED = 'ag-cell-first-right-pinned';\nvar CSS_CELL_LAST_LEFT_PINNED = 'ag-cell-last-left-pinned';\nvar CSS_CELL_NOT_INLINE_EDITING = 'ag-cell-not-inline-editing';\nvar CSS_COLUMN_HOVER = 'ag-column-hover';\nvar CSS_CELL_WRAP_TEXT = 'ag-cell-wrap-text';\nvar instanceIdSequence$3 = 0;\nvar CellCtrl = /** @class */ (function (_super) {\n __extends$1X(CellCtrl, _super);\n function CellCtrl(column, rowNode, beans, rowCtrl) {\n var _this = _super.call(this) || this;\n _this.cellRangeFeature = null;\n _this.cellPositionFeature = null;\n _this.cellCustomStyleFeature = null;\n _this.tooltipFeature = null;\n _this.cellMouseListenerFeature = null;\n _this.cellKeyboardListenerFeature = null;\n _this.suppressRefreshCell = false;\n _this.onCellCompAttachedFuncs = [];\n _this.column = column;\n _this.rowNode = rowNode;\n _this.beans = beans;\n _this.rowCtrl = rowCtrl;\n // unique id to this instance, including the column ID to help with debugging in React as it's used in 'key'\n _this.instanceId = column.getId() + '-' + instanceIdSequence$3++;\n var colDef = _this.column.getColDef();\n _this.colIdSanitised = escapeString(_this.column.getId());\n if (!_this.beans.gridOptionsService.is('suppressCellFocus')) {\n _this.tabIndex = -1;\n }\n _this.isCellRenderer = colDef.cellRenderer != null || colDef.cellRendererSelector != null;\n _this.createCellPosition();\n _this.addFeatures();\n _this.updateAndFormatValue(true);\n return _this;\n }\n CellCtrl.prototype.shouldRestoreFocus = function () {\n return this.beans.focusService.shouldRestoreFocus(this.cellPosition);\n };\n CellCtrl.prototype.addFeatures = function () {\n var _this = this;\n this.cellPositionFeature = new CellPositionFeature(this, this.beans);\n this.addDestroyFunc(function () { var _a; (_a = _this.cellPositionFeature) === null || _a === void 0 ? void 0 : _a.destroy(); _this.cellPositionFeature = null; });\n this.cellCustomStyleFeature = new CellCustomStyleFeature(this, this.beans);\n this.addDestroyFunc(function () { var _a; (_a = _this.cellCustomStyleFeature) === null || _a === void 0 ? void 0 : _a.destroy(); _this.cellCustomStyleFeature = null; });\n this.cellMouseListenerFeature = new CellMouseListenerFeature(this, this.beans, this.column);\n this.addDestroyFunc(function () { var _a; (_a = _this.cellMouseListenerFeature) === null || _a === void 0 ? void 0 : _a.destroy(); _this.cellMouseListenerFeature = null; });\n this.cellKeyboardListenerFeature = new CellKeyboardListenerFeature(this, this.beans, this.column, this.rowNode, this.rowCtrl);\n this.addDestroyFunc(function () { var _a; (_a = _this.cellKeyboardListenerFeature) === null || _a === void 0 ? void 0 : _a.destroy(); _this.cellKeyboardListenerFeature = null; });\n var rangeSelectionEnabled = this.beans.rangeService && this.beans.gridOptionsService.is('enableRangeSelection');\n if (rangeSelectionEnabled) {\n this.cellRangeFeature = new CellRangeFeature(this.beans, this);\n this.addDestroyFunc(function () { var _a; (_a = _this.cellRangeFeature) === null || _a === void 0 ? void 0 : _a.destroy(); _this.cellRangeFeature = null; });\n }\n if (this.column.isTooltipEnabled()) {\n this.addTooltipFeature();\n }\n };\n CellCtrl.prototype.addTooltipFeature = function () {\n var _this = this;\n var getTooltipValue = function () {\n var colDef = _this.column.getColDef();\n var data = _this.rowNode.data;\n if (colDef.tooltipField && exists(data)) {\n return getValueUsingField(data, colDef.tooltipField, _this.column.isTooltipFieldContainsDots());\n }\n var valueGetter = colDef.tooltipValueGetter;\n if (valueGetter) {\n return valueGetter({\n location: 'cell',\n api: _this.beans.gridOptionsService.api,\n columnApi: _this.beans.gridOptionsService.columnApi,\n context: _this.beans.gridOptionsService.context,\n colDef: _this.column.getColDef(),\n column: _this.column,\n rowIndex: _this.cellPosition.rowIndex,\n node: _this.rowNode,\n data: _this.rowNode.data,\n value: _this.value,\n valueFormatted: _this.valueFormatted,\n });\n }\n return null;\n };\n var tooltipCtrl = {\n getColumn: function () { return _this.column; },\n getColDef: function () { return _this.column.getColDef(); },\n getRowIndex: function () { return _this.cellPosition.rowIndex; },\n getRowNode: function () { return _this.rowNode; },\n getGui: function () { return _this.getGui(); },\n getLocation: function () { return 'cell'; },\n getTooltipValue: getTooltipValue,\n // this makes no sense, why is the cell formatted value passed to the tooltip???\n getValueFormatted: function () { return _this.valueFormatted; }\n };\n this.tooltipFeature = new TooltipFeature(tooltipCtrl, this.beans);\n this.addDestroyFunc(function () { var _a; (_a = _this.tooltipFeature) === null || _a === void 0 ? void 0 : _a.destroy(); _this.tooltipFeature = null; });\n };\n CellCtrl.prototype.setComp = function (comp, eGui, eCellWrapper, printLayout, startEditing) {\n var _a, _b, _c, _d;\n this.cellComp = comp;\n this.eGui = eGui;\n this.printLayout = printLayout;\n this.addDomData();\n this.onCellFocused(this.focusEventToRestore);\n this.applyStaticCssClasses();\n this.setWrapText();\n this.onFirstRightPinnedChanged();\n this.onLastLeftPinnedChanged();\n this.onColumnHover();\n this.setupControlComps();\n if (eCellWrapper) {\n this.setupAutoHeight(eCellWrapper);\n }\n this.setAriaColIndex();\n (_a = this.cellPositionFeature) === null || _a === void 0 ? void 0 : _a.setComp(eGui);\n (_b = this.cellCustomStyleFeature) === null || _b === void 0 ? void 0 : _b.setComp(comp);\n (_c = this.tooltipFeature) === null || _c === void 0 ? void 0 : _c.setComp(eGui);\n (_d = this.cellKeyboardListenerFeature) === null || _d === void 0 ? void 0 : _d.setComp(this.eGui);\n if (this.cellRangeFeature) {\n this.cellRangeFeature.setComp(comp, eGui);\n }\n if (startEditing && this.isCellEditable()) {\n this.startEditing();\n }\n else {\n this.showValue();\n }\n if (this.onCellCompAttachedFuncs.length) {\n this.onCellCompAttachedFuncs.forEach(function (func) { return func(); });\n this.onCellCompAttachedFuncs = [];\n }\n };\n CellCtrl.prototype.setupAutoHeight = function (eCellWrapper) {\n var _this = this;\n if (!this.column.isAutoHeight()) {\n return;\n }\n var eParentCell = eCellWrapper.parentElement;\n // taking minRowHeight from getRowHeightForNode means the getRowHeight() callback is used,\n // thus allowing different min heights for different rows.\n var minRowHeight = this.beans.gridOptionsService.getRowHeightForNode(this.rowNode).height;\n var measureHeight = function (timesCalled) {\n if (_this.editing) {\n return;\n }\n // because of the retry's below, it's possible the retry's go beyond\n // the rows life.\n if (!_this.isAlive()) {\n return;\n }\n var _a = getElementSize(eParentCell), paddingTop = _a.paddingTop, paddingBottom = _a.paddingBottom, borderBottomWidth = _a.borderBottomWidth, borderTopWidth = _a.borderTopWidth;\n var extraHeight = paddingTop + paddingBottom + borderBottomWidth + borderTopWidth;\n var wrapperHeight = eCellWrapper.offsetHeight;\n var autoHeight = wrapperHeight + extraHeight;\n if (timesCalled < 5) {\n // if not in doc yet, means framework not yet inserted, so wait for next VM turn,\n // maybe it will be ready next VM turn\n var doc = _this.beans.gridOptionsService.getDocument();\n var notYetInDom = !doc || !doc.contains(eCellWrapper);\n // this happens in React, where React hasn't put any content in. we say 'possibly'\n // as a) may not be React and b) the cell could be empty anyway\n var possiblyNoContentYet = autoHeight == 0;\n if (notYetInDom || possiblyNoContentYet) {\n _this.beans.frameworkOverrides.setTimeout(function () { return measureHeight(timesCalled + 1); }, 0);\n return;\n }\n }\n var newHeight = Math.max(autoHeight, minRowHeight);\n _this.rowNode.setRowAutoHeight(newHeight, _this.column);\n };\n var listener = function () { return measureHeight(0); };\n // do once to set size in case size doesn't change, common when cell is blank\n listener();\n var destroyResizeObserver = this.beans.resizeObserverService.observeResize(eCellWrapper, listener);\n this.addDestroyFunc(function () {\n destroyResizeObserver();\n _this.rowNode.setRowAutoHeight(undefined, _this.column);\n });\n };\n CellCtrl.prototype.getInstanceId = function () {\n return this.instanceId;\n };\n CellCtrl.prototype.getIncludeSelection = function () {\n return this.includeSelection;\n };\n CellCtrl.prototype.getIncludeRowDrag = function () {\n return this.includeRowDrag;\n };\n CellCtrl.prototype.getIncludeDndSource = function () {\n return this.includeDndSource;\n };\n CellCtrl.prototype.getColumnIdSanitised = function () {\n return this.colIdSanitised;\n };\n CellCtrl.prototype.getTabIndex = function () {\n return this.tabIndex;\n };\n CellCtrl.prototype.getIsCellRenderer = function () {\n return this.isCellRenderer;\n };\n CellCtrl.prototype.getValueToDisplay = function () {\n return this.valueFormatted != null ? this.valueFormatted : this.value;\n };\n CellCtrl.prototype.showValue = function (forceNewCellRendererInstance) {\n if (forceNewCellRendererInstance === void 0) { forceNewCellRendererInstance = false; }\n var valueToDisplay = this.getValueToDisplay();\n var compDetails;\n if (this.isCellRenderer) {\n var params = this.createCellRendererParams();\n compDetails = this.beans.userComponentFactory.getCellRendererDetails(this.column.getColDef(), params);\n }\n this.cellComp.setRenderDetails(compDetails, valueToDisplay, forceNewCellRendererInstance);\n this.refreshHandle();\n };\n CellCtrl.prototype.setupControlComps = function () {\n var colDef = this.column.getColDef();\n this.includeSelection = this.isIncludeControl(colDef.checkboxSelection);\n this.includeRowDrag = this.isIncludeControl(colDef.rowDrag);\n this.includeDndSource = this.isIncludeControl(colDef.dndSource);\n this.cellComp.setIncludeSelection(this.includeSelection);\n this.cellComp.setIncludeDndSource(this.includeDndSource);\n this.cellComp.setIncludeRowDrag(this.includeRowDrag);\n };\n CellCtrl.prototype.isForceWrapper = function () {\n // text selection requires the value to be wrapped in another element\n var forceWrapper = this.beans.gridOptionsService.is('enableCellTextSelection') || this.column.isAutoHeight();\n return forceWrapper;\n };\n CellCtrl.prototype.isIncludeControl = function (value) {\n var rowNodePinned = this.rowNode.rowPinned != null;\n var isFunc = typeof value === 'function';\n var res = rowNodePinned ? false : isFunc || value === true;\n return res;\n };\n CellCtrl.prototype.refreshShouldDestroy = function () {\n var colDef = this.column.getColDef();\n var selectionChanged = this.includeSelection != this.isIncludeControl(colDef.checkboxSelection);\n var rowDragChanged = this.includeRowDrag != this.isIncludeControl(colDef.rowDrag);\n var dndSourceChanged = this.includeDndSource != this.isIncludeControl(colDef.dndSource);\n return selectionChanged || rowDragChanged || dndSourceChanged;\n };\n // either called internally if single cell editing, or called by rowRenderer if row editing\n CellCtrl.prototype.startEditing = function (key, cellStartedEdit, event) {\n var _this = this;\n if (key === void 0) { key = null; }\n if (cellStartedEdit === void 0) { cellStartedEdit = false; }\n if (event === void 0) { event = null; }\n if (!this.isCellEditable() || this.editing) {\n return;\n }\n // because of async in React, the cellComp may not be set yet, if no cellComp then we are\n // yet to initialise the cell, so we re-schedule this operation for when celLComp is attached\n if (!this.cellComp) {\n this.onCellCompAttachedFuncs.push(function () { _this.startEditing(key, cellStartedEdit, event); });\n return;\n }\n var editorParams = this.createCellEditorParams(key, cellStartedEdit);\n var colDef = this.column.getColDef();\n var compDetails = this.beans.userComponentFactory.getCellEditorDetails(colDef, editorParams);\n // if cellEditorSelector was used, we give preference to popup and popupPosition from the selector\n var popup = (compDetails === null || compDetails === void 0 ? void 0 : compDetails.popupFromSelector) != null ? compDetails.popupFromSelector : !!colDef.cellEditorPopup;\n var position = (compDetails === null || compDetails === void 0 ? void 0 : compDetails.popupPositionFromSelector) != null ? compDetails.popupPositionFromSelector : colDef.cellEditorPopupPosition;\n this.setEditing(true);\n this.cellComp.setEditDetails(compDetails, popup, position);\n var e = this.createEvent(event, Events.EVENT_CELL_EDITING_STARTED);\n this.beans.eventService.dispatchEvent(e);\n };\n CellCtrl.prototype.setEditing = function (editing) {\n if (this.editing === editing) {\n return;\n }\n this.editing = editing;\n this.refreshHandle();\n };\n // pass in 'true' to cancel the editing.\n CellCtrl.prototype.stopRowOrCellEdit = function (cancel) {\n if (cancel === void 0) { cancel = false; }\n if (this.beans.gridOptionsService.get('editType') === 'fullRow') {\n this.rowCtrl.stopRowEditing(cancel);\n }\n else {\n this.stopEditing(cancel);\n }\n };\n CellCtrl.prototype.onPopupEditorClosed = function () {\n if (!this.isEditing()) {\n return;\n }\n // note: this happens because of a click outside of the grid or if the popupEditor\n // is closed with `Escape` key. if another cell was clicked, then the editing will\n // have already stopped and returned on the conditional above.\n this.stopEditingAndFocus();\n };\n CellCtrl.prototype.takeValueFromCellEditor = function (cancel) {\n var noValueResult = { newValueExists: false };\n if (cancel) {\n return noValueResult;\n }\n var cellEditor = this.cellComp.getCellEditor();\n if (!cellEditor) {\n return noValueResult;\n }\n var userWantsToCancel = cellEditor.isCancelAfterEnd && cellEditor.isCancelAfterEnd();\n if (userWantsToCancel) {\n return noValueResult;\n }\n var newValue = cellEditor.getValue();\n return {\n newValue: newValue,\n newValueExists: true\n };\n };\n /**\n * @returns `True` if the value changes, otherwise `False`.\n */\n CellCtrl.prototype.saveNewValue = function (oldValue, newValue) {\n if (newValue === oldValue) {\n return false;\n }\n // we suppressRefreshCell because the call to rowNode.setDataValue() results in change detection\n // getting triggered, which results in all cells getting refreshed. we do not want this refresh\n // to happen on this call as we want to call it explicitly below. otherwise refresh gets called twice.\n // if we only did this refresh (and not the one below) then the cell would flash and not be forced.\n this.suppressRefreshCell = true;\n var valueChanged = this.rowNode.setDataValue(this.column, newValue, 'edit');\n this.suppressRefreshCell = false;\n return valueChanged;\n };\n /**\n * Ends the Cell Editing\n * @param cancel `True` if the edit process is being canceled.\n * @returns `True` if the value of the `GridCell` has been updated, otherwise `False`.\n */\n CellCtrl.prototype.stopEditing = function (cancel) {\n if (cancel === void 0) { cancel = false; }\n if (!this.editing) {\n return false;\n }\n var _a = this.takeValueFromCellEditor(cancel), newValue = _a.newValue, newValueExists = _a.newValueExists;\n var oldValue = this.rowNode.getValueFromValueService(this.column);\n var valueChanged = false;\n if (newValueExists) {\n valueChanged = this.saveNewValue(oldValue, newValue);\n }\n this.setEditing(false);\n this.cellComp.setEditDetails(); // passing nothing stops editing\n this.updateAndFormatValue();\n this.refreshCell({ forceRefresh: true, suppressFlash: true });\n this.dispatchEditingStoppedEvent(oldValue, newValue, !cancel && !!valueChanged);\n return valueChanged;\n };\n CellCtrl.prototype.dispatchEditingStoppedEvent = function (oldValue, newValue, valueChanged) {\n var editingStoppedEvent = __assign$a(__assign$a({}, this.createEvent(null, Events.EVENT_CELL_EDITING_STOPPED)), { oldValue: oldValue, newValue: newValue, valueChanged: valueChanged });\n this.beans.eventService.dispatchEvent(editingStoppedEvent);\n };\n CellCtrl.prototype.createCellEditorParams = function (key, cellStartedEdit) {\n return {\n value: this.rowNode.getValueFromValueService(this.column),\n eventKey: key,\n column: this.column,\n colDef: this.column.getColDef(),\n rowIndex: this.getCellPosition().rowIndex,\n node: this.rowNode,\n data: this.rowNode.data,\n api: this.beans.gridOptionsService.api,\n cellStartedEdit: cellStartedEdit,\n columnApi: this.beans.gridOptionsService.columnApi,\n context: this.beans.gridOptionsService.context,\n onKeyDown: this.onKeyDown.bind(this),\n stopEditing: this.stopEditingAndFocus.bind(this),\n eGridCell: this.getGui(),\n parseValue: this.parseValue.bind(this),\n formatValue: this.formatValue.bind(this)\n };\n };\n CellCtrl.prototype.createCellRendererParams = function () {\n var _this = this;\n var res = {\n value: this.value,\n valueFormatted: this.valueFormatted,\n getValue: function () { return _this.rowNode.getValueFromValueService(_this.column); },\n setValue: function (value) { return _this.beans.valueService.setValue(_this.rowNode, _this.column, value); },\n formatValue: this.formatValue.bind(this),\n data: this.rowNode.data,\n node: this.rowNode,\n pinned: this.column.getPinned(),\n colDef: this.column.getColDef(),\n column: this.column,\n rowIndex: this.getCellPosition().rowIndex,\n api: this.beans.gridOptionsService.api,\n columnApi: this.beans.gridOptionsService.columnApi,\n context: this.beans.gridOptionsService.context,\n refreshCell: this.refreshCell.bind(this),\n eGridCell: this.getGui(),\n eParentOfValue: this.cellComp.getParentOfValue(),\n registerRowDragger: function (rowDraggerElement, dragStartPixels, value, suppressVisibilityChange) { return _this.registerRowDragger(rowDraggerElement, dragStartPixels, suppressVisibilityChange); },\n };\n return res;\n };\n CellCtrl.prototype.parseValue = function (newValue) {\n return this.beans.valueParserService.parseValue(this.column, this.rowNode, newValue, this.getValue());\n };\n CellCtrl.prototype.setFocusOutOnEditor = function () {\n if (!this.editing) {\n return;\n }\n var cellEditor = this.cellComp.getCellEditor();\n if (cellEditor && cellEditor.focusOut) {\n cellEditor.focusOut();\n }\n };\n CellCtrl.prototype.setFocusInOnEditor = function () {\n if (!this.editing) {\n return;\n }\n var cellEditor = this.cellComp.getCellEditor();\n if (cellEditor && cellEditor.focusIn) {\n // if the editor is present, then we just focus it\n cellEditor.focusIn();\n }\n else {\n // if the editor is not present, it means async cell editor (eg React fibre)\n // and we are trying to set focus before the cell editor is present, so we\n // focus the cell instead\n this.focusCell(true);\n }\n };\n CellCtrl.prototype.onCellChanged = function (event) {\n // because of async in React, the cellComp may not be set yet, if no cellComp then we are\n // yet to initialise the cell, so no need to refresh.\n if (!this.cellComp) {\n return;\n }\n var eventImpactsThisCell = event.column === this.column;\n if (eventImpactsThisCell) {\n this.refreshCell({});\n }\n };\n // + stop editing {forceRefresh: true, suppressFlash: true}\n // + event cellChanged {}\n // + cellRenderer.params.refresh() {} -> method passes 'as is' to the cellRenderer, so params could be anything\n // + rowCtrl: event dataChanged {suppressFlash: !update, newData: !update}\n // + rowCtrl: api refreshCells() {animate: true/false}\n // + rowRenderer: api softRefreshView() {}\n CellCtrl.prototype.refreshCell = function (params) {\n var _a, _b, _c;\n // if we are in the middle of 'stopEditing', then we don't refresh here, as refresh gets called explicitly\n if (this.suppressRefreshCell || this.editing) {\n return;\n }\n // In React, due to async, it's possible a refresh was asked for before the CellComp\n // has been set. If this happens, we skip the refresh, as the cell is going to be\n // initialised anyway once the CellComp is set.\n if (!this.cellComp) {\n return;\n }\n var colDef = this.column.getColDef();\n var newData = params != null && !!params.newData;\n var suppressFlash = (params != null && !!params.suppressFlash) || !!colDef.suppressCellFlash;\n // we always refresh if cell has no value - this can happen when user provides Cell Renderer and the\n // cell renderer doesn't rely on a value, instead it could be looking directly at the data, or maybe\n // printing the current time (which would be silly)???. Generally speaking\n // non of {field, valueGetter, showRowGroup} is bad in the users application, however for this edge case, it's\n // best always refresh and take the performance hit rather than never refresh and users complaining in support\n // that cells are not updating.\n var noValueProvided = colDef.field == null && colDef.valueGetter == null && colDef.showRowGroup == null;\n var forceRefresh = (params && params.forceRefresh) || noValueProvided || newData;\n var valuesDifferent = this.updateAndFormatValue();\n var dataNeedsUpdating = forceRefresh || valuesDifferent;\n if (dataNeedsUpdating) {\n // if it's 'new data', then we don't refresh the cellRenderer, even if refresh method is available.\n // this is because if the whole data is new (ie we are showing stock price 'BBA' now and not 'SSD')\n // then we are not showing a movement in the stock price, rather we are showing different stock.\n this.showValue(newData);\n // we don't want to flash the cells when processing a filter change, as otherwise the UI would\n // be to busy. see comment in FilterManager with regards processingFilterChange\n var processingFilterChange = this.beans.filterManager.isSuppressFlashingCellsBecauseFiltering();\n var flashCell = !suppressFlash && !processingFilterChange &&\n (this.beans.gridOptionsService.is('enableCellChangeFlash') || colDef.enableCellChangeFlash);\n if (flashCell) {\n this.flashCell();\n }\n (_a = this.cellCustomStyleFeature) === null || _a === void 0 ? void 0 : _a.applyUserStyles();\n (_b = this.cellCustomStyleFeature) === null || _b === void 0 ? void 0 : _b.applyClassesFromColDef();\n }\n this.refreshToolTip();\n // we do cellClassRules even if the value has not changed, so that users who have rules that\n // look at other parts of the row (where the other part of the row might of changed) will work.\n (_c = this.cellCustomStyleFeature) === null || _c === void 0 ? void 0 : _c.applyCellClassRules();\n };\n // cell editors call this, when they want to stop for reasons other\n // than what we pick up on. eg selecting from a dropdown ends editing.\n CellCtrl.prototype.stopEditingAndFocus = function (suppressNavigateAfterEdit, shiftKey) {\n if (suppressNavigateAfterEdit === void 0) { suppressNavigateAfterEdit = false; }\n if (shiftKey === void 0) { shiftKey = false; }\n this.stopRowOrCellEdit();\n this.focusCell(true);\n if (!suppressNavigateAfterEdit) {\n this.navigateAfterEdit(shiftKey);\n }\n };\n CellCtrl.prototype.navigateAfterEdit = function (shiftKey) {\n var enterNavigatesVerticallyAfterEdit = this.beans.gridOptionsService.is('enterNavigatesVerticallyAfterEdit');\n if (enterNavigatesVerticallyAfterEdit) {\n var key = shiftKey ? KeyCode.UP : KeyCode.DOWN;\n this.beans.navigationService.navigateToNextCell(null, key, this.getCellPosition(), false);\n }\n };\n // user can also call this via API\n CellCtrl.prototype.flashCell = function (delays) {\n var flashDelay = delays && delays.flashDelay;\n var fadeDelay = delays && delays.fadeDelay;\n this.animateCell('data-changed', flashDelay, fadeDelay);\n };\n CellCtrl.prototype.animateCell = function (cssName, flashDelay, fadeDelay) {\n var _this = this;\n var _a, _b;\n if (!this.cellComp) {\n return;\n }\n var fullName = \"ag-cell-\" + cssName;\n var animationFullName = \"ag-cell-\" + cssName + \"-animation\";\n var gridOptionsService = this.beans.gridOptionsService;\n if (!flashDelay) {\n flashDelay = (_a = gridOptionsService.getNum('cellFlashDelay')) !== null && _a !== void 0 ? _a : 500;\n }\n if (!exists(fadeDelay)) {\n fadeDelay = (_b = gridOptionsService.getNum('cellFadeDelay')) !== null && _b !== void 0 ? _b : 1000;\n }\n // we want to highlight the cells, without any animation\n this.cellComp.addOrRemoveCssClass(fullName, true);\n this.cellComp.addOrRemoveCssClass(animationFullName, false);\n // then once that is applied, we remove the highlight with animation\n window.setTimeout(function () {\n if (!_this.isAlive()) {\n return;\n }\n _this.cellComp.addOrRemoveCssClass(fullName, false);\n _this.cellComp.addOrRemoveCssClass(animationFullName, true);\n _this.eGui.style.transition = \"background-color \" + fadeDelay + \"ms\";\n window.setTimeout(function () {\n if (!_this.isAlive()) {\n return;\n }\n // and then to leave things as we got them, we remove the animation\n _this.cellComp.addOrRemoveCssClass(animationFullName, false);\n _this.eGui.style.transition = '';\n }, fadeDelay);\n }, flashDelay);\n };\n CellCtrl.prototype.onFlashCells = function (event) {\n if (!this.cellComp) {\n return;\n }\n var cellId = this.beans.cellPositionUtils.createId(this.getCellPosition());\n var shouldFlash = event.cells[cellId];\n if (shouldFlash) {\n this.animateCell('highlight');\n }\n };\n CellCtrl.prototype.isCellEditable = function () {\n return this.column.isCellEditable(this.rowNode);\n };\n CellCtrl.prototype.isSuppressFillHandle = function () {\n return this.column.isSuppressFillHandle();\n };\n CellCtrl.prototype.formatValue = function (value) {\n var _a;\n return (_a = this.callValueFormatter(value)) !== null && _a !== void 0 ? _a : value;\n };\n CellCtrl.prototype.callValueFormatter = function (value) {\n return this.beans.valueFormatterService.formatValue(this.column, this.rowNode, value);\n };\n CellCtrl.prototype.updateAndFormatValue = function (force) {\n if (force === void 0) { force = false; }\n var oldValue = this.value;\n var oldValueFormatted = this.valueFormatted;\n this.value = this.rowNode.getValueFromValueService(this.column);\n this.valueFormatted = this.callValueFormatter(this.value);\n var valuesDifferent = force ? true :\n !this.valuesAreEqual(oldValue, this.value) || this.valueFormatted != oldValueFormatted;\n return valuesDifferent;\n };\n CellCtrl.prototype.valuesAreEqual = function (val1, val2) {\n // if the user provided an equals method, use that, otherwise do simple comparison\n var colDef = this.column.getColDef();\n return colDef.equals ? colDef.equals(val1, val2) : val1 === val2;\n };\n CellCtrl.prototype.getComp = function () {\n return this.cellComp;\n };\n CellCtrl.prototype.getValue = function () {\n return this.value;\n };\n CellCtrl.prototype.getValueFormatted = function () {\n return this.valueFormatted;\n };\n CellCtrl.prototype.addDomData = function () {\n var _this = this;\n var element = this.getGui();\n this.beans.gridOptionsService.setDomData(element, CellCtrl.DOM_DATA_KEY_CELL_CTRL, this);\n this.addDestroyFunc(function () { return _this.beans.gridOptionsService.setDomData(element, CellCtrl.DOM_DATA_KEY_CELL_CTRL, null); });\n };\n CellCtrl.prototype.createEvent = function (domEvent, eventType) {\n var event = {\n type: eventType,\n node: this.rowNode,\n data: this.rowNode.data,\n value: this.value,\n column: this.column,\n colDef: this.column.getColDef(),\n context: this.beans.gridOptionsService.context,\n api: this.beans.gridApi,\n columnApi: this.beans.columnApi,\n rowPinned: this.rowNode.rowPinned,\n event: domEvent,\n rowIndex: this.rowNode.rowIndex\n };\n return event;\n };\n CellCtrl.prototype.processCharacter = function (event) {\n var _a;\n (_a = this.cellKeyboardListenerFeature) === null || _a === void 0 ? void 0 : _a.processCharacter(event);\n };\n CellCtrl.prototype.onKeyDown = function (event) {\n var _a;\n (_a = this.cellKeyboardListenerFeature) === null || _a === void 0 ? void 0 : _a.onKeyDown(event);\n };\n CellCtrl.prototype.onMouseEvent = function (eventName, mouseEvent) {\n var _a;\n (_a = this.cellMouseListenerFeature) === null || _a === void 0 ? void 0 : _a.onMouseEvent(eventName, mouseEvent);\n };\n CellCtrl.prototype.getGui = function () {\n return this.eGui;\n };\n CellCtrl.prototype.refreshToolTip = function () {\n var _a;\n (_a = this.tooltipFeature) === null || _a === void 0 ? void 0 : _a.refreshToolTip();\n };\n CellCtrl.prototype.getColSpanningList = function () {\n return this.cellPositionFeature.getColSpanningList();\n };\n CellCtrl.prototype.onLeftChanged = function () {\n var _a;\n if (!this.cellComp) {\n return;\n }\n (_a = this.cellPositionFeature) === null || _a === void 0 ? void 0 : _a.onLeftChanged();\n };\n CellCtrl.prototype.onDisplayedColumnsChanged = function () {\n if (!this.eGui) {\n return;\n }\n this.setAriaColIndex();\n };\n CellCtrl.prototype.setAriaColIndex = function () {\n var colIdx = this.beans.columnModel.getAriaColumnIndex(this.column);\n setAriaColIndex(this.getGui(), colIdx); // for react, we don't use JSX, as it slowed down column moving\n };\n CellCtrl.prototype.isSuppressNavigable = function () {\n return this.column.isSuppressNavigable(this.rowNode);\n };\n CellCtrl.prototype.onWidthChanged = function () {\n var _a;\n return (_a = this.cellPositionFeature) === null || _a === void 0 ? void 0 : _a.onWidthChanged();\n };\n CellCtrl.prototype.getColumn = function () {\n return this.column;\n };\n CellCtrl.prototype.getRowNode = function () {\n return this.rowNode;\n };\n CellCtrl.prototype.getBeans = function () {\n return this.beans;\n };\n CellCtrl.prototype.isPrintLayout = function () {\n return this.printLayout;\n };\n CellCtrl.prototype.appendChild = function (htmlElement) {\n this.eGui.appendChild(htmlElement);\n };\n CellCtrl.prototype.refreshHandle = function () {\n if (this.cellRangeFeature) {\n this.cellRangeFeature.refreshHandle();\n }\n };\n CellCtrl.prototype.getCellPosition = function () {\n return this.cellPosition;\n };\n CellCtrl.prototype.isEditing = function () {\n return this.editing;\n };\n // called by rowRenderer when user navigates via tab key\n CellCtrl.prototype.startRowOrCellEdit = function (key, event) {\n if (event === void 0) { event = null; }\n if (!this.cellComp) {\n return;\n }\n if (this.beans.gridOptionsService.get('editType') === 'fullRow') {\n this.rowCtrl.startRowEditing(key, this);\n }\n else {\n this.startEditing(key, true, event);\n }\n };\n CellCtrl.prototype.getRowCtrl = function () {\n return this.rowCtrl;\n };\n CellCtrl.prototype.getRowPosition = function () {\n return {\n rowIndex: this.cellPosition.rowIndex,\n rowPinned: this.cellPosition.rowPinned\n };\n };\n CellCtrl.prototype.updateRangeBordersIfRangeCount = function () {\n if (!this.cellComp) {\n return;\n }\n if (this.cellRangeFeature) {\n this.cellRangeFeature.updateRangeBordersIfRangeCount();\n }\n };\n CellCtrl.prototype.onRangeSelectionChanged = function () {\n if (!this.cellComp) {\n return;\n }\n if (this.cellRangeFeature) {\n this.cellRangeFeature.onRangeSelectionChanged();\n }\n };\n CellCtrl.prototype.isRangeSelectionEnabled = function () {\n return this.cellRangeFeature != null;\n };\n CellCtrl.prototype.focusCell = function (forceBrowserFocus) {\n if (forceBrowserFocus === void 0) { forceBrowserFocus = false; }\n this.beans.focusService.setFocusedCell({\n rowIndex: this.getCellPosition().rowIndex,\n column: this.column,\n rowPinned: this.rowNode.rowPinned,\n forceBrowserFocus: forceBrowserFocus\n });\n };\n CellCtrl.prototype.onRowIndexChanged = function () {\n // when index changes, this influences items that need the index, so we update the\n // grid cell so they are working off the new index.\n this.createCellPosition();\n // when the index of the row changes, ie means the cell may have lost or gained focus\n this.onCellFocused();\n // check range selection\n if (this.cellRangeFeature) {\n this.cellRangeFeature.onRangeSelectionChanged();\n }\n };\n CellCtrl.prototype.onFirstRightPinnedChanged = function () {\n if (!this.cellComp) {\n return;\n }\n var firstRightPinned = this.column.isFirstRightPinned();\n this.cellComp.addOrRemoveCssClass(CSS_CELL_FIRST_RIGHT_PINNED, firstRightPinned);\n };\n CellCtrl.prototype.onLastLeftPinnedChanged = function () {\n if (!this.cellComp) {\n return;\n }\n var lastLeftPinned = this.column.isLastLeftPinned();\n this.cellComp.addOrRemoveCssClass(CSS_CELL_LAST_LEFT_PINNED, lastLeftPinned);\n };\n CellCtrl.prototype.onCellFocused = function (event) {\n if (this.beans.gridOptionsService.is('suppressCellFocus')) {\n return;\n }\n var cellFocused = this.beans.focusService.isCellFocused(this.cellPosition);\n if (!this.cellComp) {\n if (cellFocused && (event === null || event === void 0 ? void 0 : event.forceBrowserFocus)) {\n // The cell comp has not been rendered yet, but the browser focus is being forced for this cell\n // so lets save the event to apply it when setComp is called in the next turn.\n this.focusEventToRestore = event;\n }\n return;\n }\n // Clear the saved focus event\n this.focusEventToRestore = undefined;\n this.cellComp.addOrRemoveCssClass(CSS_CELL_FOCUS, cellFocused);\n // see if we need to force browser focus - this can happen if focus is programmatically set\n if (cellFocused && event && event.forceBrowserFocus) {\n var focusEl = this.cellComp.getFocusableElement();\n focusEl.focus({ preventScroll: !!event.preventScrollOnBrowserFocus });\n }\n // if another cell was focused, and we are editing, then stop editing\n var fullRowEdit = this.beans.gridOptionsService.get('editType') === 'fullRow';\n if (!cellFocused && !fullRowEdit && this.editing) {\n this.stopRowOrCellEdit();\n }\n };\n CellCtrl.prototype.createCellPosition = function () {\n this.cellPosition = {\n rowIndex: this.rowNode.rowIndex,\n rowPinned: makeNull(this.rowNode.rowPinned),\n column: this.column\n };\n };\n // CSS Classes that only get applied once, they never change\n CellCtrl.prototype.applyStaticCssClasses = function () {\n this.cellComp.addOrRemoveCssClass(CSS_CELL, true);\n this.cellComp.addOrRemoveCssClass(CSS_CELL_NOT_INLINE_EDITING, true);\n // normal cells fill the height of the row. autoHeight cells have no height to let them\n // fit the height of content.\n var autoHeight = this.column.isAutoHeight() == true;\n this.cellComp.addOrRemoveCssClass(CSS_AUTO_HEIGHT, autoHeight);\n this.cellComp.addOrRemoveCssClass(CSS_NORMAL_HEIGHT, !autoHeight);\n };\n CellCtrl.prototype.onColumnHover = function () {\n if (!this.cellComp) {\n return;\n }\n if (!this.beans.gridOptionsService.is('columnHoverHighlight')) {\n return;\n }\n var isHovered = this.beans.columnHoverService.isHovered(this.column);\n this.cellComp.addOrRemoveCssClass(CSS_COLUMN_HOVER, isHovered);\n };\n CellCtrl.prototype.onColDefChanged = function () {\n if (!this.cellComp) {\n return;\n }\n this.setWrapText();\n if (!this.editing) {\n this.refreshCell({ forceRefresh: true, suppressFlash: true });\n }\n };\n CellCtrl.prototype.setWrapText = function () {\n var value = this.column.getColDef().wrapText == true;\n this.cellComp.addOrRemoveCssClass(CSS_CELL_WRAP_TEXT, value);\n };\n CellCtrl.prototype.dispatchCellContextMenuEvent = function (event) {\n var colDef = this.column.getColDef();\n var cellContextMenuEvent = this.createEvent(event, Events.EVENT_CELL_CONTEXT_MENU);\n this.beans.eventService.dispatchEvent(cellContextMenuEvent);\n if (colDef.onCellContextMenu) {\n // to make the callback async, do in a timeout\n window.setTimeout(function () { return colDef.onCellContextMenu(cellContextMenuEvent); }, 0);\n }\n };\n CellCtrl.prototype.getCellRenderer = function () {\n return this.cellComp ? this.cellComp.getCellRenderer() : null;\n };\n CellCtrl.prototype.getCellEditor = function () {\n return this.cellComp ? this.cellComp.getCellEditor() : null;\n };\n CellCtrl.prototype.destroy = function () {\n this.onCellCompAttachedFuncs = [];\n _super.prototype.destroy.call(this);\n };\n CellCtrl.prototype.createSelectionCheckbox = function () {\n var cbSelectionComponent = new CheckboxSelectionComponent();\n this.beans.context.createBean(cbSelectionComponent);\n cbSelectionComponent.init({ rowNode: this.rowNode, column: this.column });\n // put the checkbox in before the value\n return cbSelectionComponent;\n };\n CellCtrl.prototype.createDndSource = function () {\n var dndSourceComp = new DndSourceComp(this.rowNode, this.column, this.eGui);\n this.beans.context.createBean(dndSourceComp);\n return dndSourceComp;\n };\n CellCtrl.prototype.registerRowDragger = function (customElement, dragStartPixels, suppressVisibilityChange) {\n var _this = this;\n // if previously existed, then we are only updating\n if (this.customRowDragComp) {\n this.customRowDragComp.setDragElement(customElement, dragStartPixels);\n return;\n }\n var newComp = this.createRowDragComp(customElement, dragStartPixels, suppressVisibilityChange);\n if (newComp) {\n this.customRowDragComp = newComp;\n this.addDestroyFunc(function () { _this.beans.context.destroyBean(newComp); _this.customRowDragComp = null; });\n }\n };\n CellCtrl.prototype.createRowDragComp = function (customElement, dragStartPixels, suppressVisibilityChange) {\n var _this = this;\n var pagination = this.beans.gridOptionsService.is('pagination');\n var rowDragManaged = this.beans.gridOptionsService.is('rowDragManaged');\n var clientSideRowModelActive = this.beans.gridOptionsService.isRowModelType('clientSide');\n if (rowDragManaged) {\n // row dragging only available in default row model\n if (!clientSideRowModelActive) {\n doOnce(function () { return console.warn('AG Grid: managed row dragging is only allowed in the Client Side Row Model'); }, 'CellComp.addRowDragging');\n return;\n }\n if (pagination) {\n doOnce(function () { return console.warn('AG Grid: managed row dragging is not possible when doing pagination'); }, 'CellComp.addRowDragging');\n return;\n }\n }\n // otherwise (normal case) we are creating a RowDraggingComp for the first time\n var rowDragComp = new RowDragComp(function () { return _this.value; }, this.rowNode, this.column, customElement, dragStartPixels, suppressVisibilityChange);\n this.beans.context.createBean(rowDragComp);\n return rowDragComp;\n };\n CellCtrl.DOM_DATA_KEY_CELL_CTRL = 'cellCtrl';\n return CellCtrl;\n}(BeanStub));\n\nvar __extends$1W = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values$3 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$l = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$h = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar RowType$1;\n(function (RowType) {\n RowType[\"Normal\"] = \"Normal\";\n RowType[\"FullWidth\"] = \"FullWidth\";\n RowType[\"FullWidthLoading\"] = \"FullWidthLoading\";\n RowType[\"FullWidthGroup\"] = \"FullWidthGroup\";\n RowType[\"FullWidthDetail\"] = \"FullWidthDetail\";\n})(RowType$1 || (RowType$1 = {}));\nvar instanceIdSequence$2 = 0;\nvar RowCtrl = /** @class */ (function (_super) {\n __extends$1W(RowCtrl, _super);\n function RowCtrl(rowNode, beans, animateIn, useAnimationFrameForCreate, printLayout) {\n var _this = _super.call(this) || this;\n _this.allRowGuis = [];\n _this.active = true;\n _this.centerCellCtrls = { list: [], map: {} };\n _this.leftCellCtrls = { list: [], map: {} };\n _this.rightCellCtrls = { list: [], map: {} };\n _this.slideInAnimation = {\n left: false,\n center: false,\n right: false,\n fullWidth: false\n };\n _this.fadeInAnimation = {\n left: false,\n center: false,\n right: false,\n fullWidth: false\n };\n _this.lastMouseDownOnDragger = false;\n _this.emptyStyle = {};\n _this.updateColumnListsPending = false;\n _this.rowId = null;\n _this.businessKeySanitised = null;\n _this.beans = beans;\n _this.gridOptionsService = beans.gridOptionsService;\n _this.rowNode = rowNode;\n _this.paginationPage = beans.paginationProxy.getCurrentPage();\n _this.useAnimationFrameForCreate = useAnimationFrameForCreate;\n _this.printLayout = printLayout;\n _this.instanceId = rowNode.id + '-' + instanceIdSequence$2++;\n _this.rowId = escapeString(rowNode.id);\n _this.initRowBusinessKey();\n _this.rowFocused = beans.focusService.isRowFocused(_this.rowNode.rowIndex, _this.rowNode.rowPinned);\n _this.rowLevel = beans.rowCssClassCalculator.calculateRowLevel(_this.rowNode);\n _this.setRowType();\n _this.setAnimateFlags(animateIn);\n _this.rowStyles = _this.processStylesFromGridOptions();\n // calls to `isFullWidth()` only work after `setRowType` has been called.\n if (_this.isFullWidth() && !_this.gridOptionsService.is('suppressCellFocus')) {\n _this.tabIndex = -1;\n }\n _this.addListeners();\n return _this;\n }\n RowCtrl.prototype.initRowBusinessKey = function () {\n this.businessKeyForNodeFunc = this.gridOptionsService.get('getBusinessKeyForNode');\n this.updateRowBusinessKey();\n };\n RowCtrl.prototype.updateRowBusinessKey = function () {\n if (typeof this.businessKeyForNodeFunc !== 'function') {\n return;\n }\n var businessKey = this.businessKeyForNodeFunc(this.rowNode);\n this.businessKeySanitised = escapeString(businessKey);\n };\n RowCtrl.prototype.getRowId = function () {\n return this.rowId;\n };\n RowCtrl.prototype.getRowStyles = function () {\n return this.rowStyles;\n };\n RowCtrl.prototype.getTabIndex = function () {\n return this.tabIndex;\n };\n RowCtrl.prototype.isSticky = function () {\n return this.rowNode.sticky;\n };\n RowCtrl.prototype.getBeans = function () {\n return this.beans;\n };\n RowCtrl.prototype.getInstanceId = function () {\n return this.instanceId;\n };\n RowCtrl.prototype.setComp = function (rowComp, element, containerType) {\n var gui = { rowComp: rowComp, element: element, containerType: containerType };\n this.allRowGuis.push(gui);\n if (containerType === RowContainerType.LEFT) {\n this.leftGui = gui;\n }\n else if (containerType === RowContainerType.RIGHT) {\n this.rightGui = gui;\n }\n else if (containerType === RowContainerType.FULL_WIDTH) {\n this.fullWidthGui = gui;\n }\n else {\n this.centerGui = gui;\n }\n this.initialiseRowComp(gui);\n // pinned rows render before the main grid body in the SSRM, only fire the event after the main body has rendered.\n if (this.rowType !== 'FullWidthLoading' && !this.rowNode.rowPinned) {\n // this is fired within setComp as we know that the component renderer is now trying to render.\n // linked with the fact the function implementation queues behind requestAnimationFrame should allow\n // us to be certain that all rendering is done by the time the event fires.\n this.beans.rowRenderer.dispatchFirstDataRenderedEvent();\n }\n };\n RowCtrl.prototype.unsetComp = function (containerType) {\n this.allRowGuis = this.allRowGuis\n .filter(function (rowGui) { return rowGui.containerType !== containerType; });\n switch (containerType) {\n case RowContainerType.LEFT:\n this.leftGui = undefined;\n break;\n case RowContainerType.RIGHT:\n this.rightGui = undefined;\n break;\n case RowContainerType.FULL_WIDTH:\n this.fullWidthGui = undefined;\n break;\n case RowContainerType.CENTER:\n this.centerGui = undefined;\n break;\n }\n };\n RowCtrl.prototype.isCacheable = function () {\n return this.rowType === RowType$1.FullWidthDetail\n && this.gridOptionsService.is('keepDetailRows');\n };\n RowCtrl.prototype.setCached = function (cached) {\n var displayValue = cached ? 'none' : '';\n this.allRowGuis.forEach(function (rg) { return rg.element.style.display = displayValue; });\n };\n RowCtrl.prototype.initialiseRowComp = function (gui) {\n var _this = this;\n var gos = this.gridOptionsService;\n this.listenOnDomOrder(gui);\n this.onRowHeightChanged(gui);\n this.updateRowIndexes(gui);\n this.setFocusedClasses(gui);\n this.setStylesFromGridOptions(false, gui); // no need to calculate styles already set in constructor\n if (gos.isRowSelection() && this.rowNode.selectable) {\n this.onRowSelected(gui);\n }\n this.updateColumnLists(!this.useAnimationFrameForCreate);\n var comp = gui.rowComp;\n var initialRowClasses = this.getInitialRowClasses(gui.containerType);\n initialRowClasses.forEach(function (name) { return comp.addOrRemoveCssClass(name, true); });\n this.executeSlideAndFadeAnimations(gui);\n if (this.rowNode.group) {\n setAriaExpanded(gui.element, this.rowNode.expanded == true);\n }\n this.setRowCompRowId(comp);\n this.setRowCompRowBusinessKey(comp);\n // DOM DATA\n gos.setDomData(gui.element, RowCtrl.DOM_DATA_KEY_ROW_CTRL, this);\n this.addDestroyFunc(function () { return gos.setDomData(gui.element, RowCtrl.DOM_DATA_KEY_ROW_CTRL, null); });\n // adding hover functionality adds listener to this row, so we\n // do it lazily in an animation frame\n if (this.useAnimationFrameForCreate) {\n this.beans.animationFrameService.createTask(this.addHoverFunctionality.bind(this, gui.element), this.rowNode.rowIndex, 'createTasksP2');\n }\n else {\n this.addHoverFunctionality(gui.element);\n }\n if (this.isFullWidth()) {\n this.setupFullWidth(gui);\n }\n if (gos.is('rowDragEntireRow')) {\n this.addRowDraggerToRow(gui);\n }\n if (this.useAnimationFrameForCreate) {\n // the height animation we only want active after the row is alive for 1 second.\n // this stops the row animation working when rows are initially created. otherwise\n // auto-height rows get inserted into the dom and resized immediately, which gives\n // very bad UX (eg 10 rows get inserted, then all 10 expand, look particularly bad\n // when scrolling). so this makes sure when rows are shown for the first time, they\n // are resized immediately without animation.\n this.beans.animationFrameService.addDestroyTask(function () {\n if (!_this.isAlive()) {\n return;\n }\n gui.rowComp.addOrRemoveCssClass('ag-after-created', true);\n });\n }\n this.executeProcessRowPostCreateFunc();\n };\n RowCtrl.prototype.setRowCompRowBusinessKey = function (comp) {\n if (this.businessKeySanitised == null) {\n return;\n }\n comp.setRowBusinessKey(this.businessKeySanitised);\n };\n RowCtrl.prototype.getBusinessKey = function () {\n return this.businessKeySanitised;\n };\n RowCtrl.prototype.setRowCompRowId = function (comp) {\n this.rowId = escapeString(this.rowNode.id);\n if (this.rowId == null) {\n return;\n }\n comp.setRowId(this.rowId);\n };\n RowCtrl.prototype.executeSlideAndFadeAnimations = function (gui) {\n var _this = this;\n var containerType = gui.containerType;\n var shouldSlide = this.slideInAnimation[containerType];\n if (shouldSlide) {\n executeNextVMTurn(function () {\n _this.onTopChanged();\n });\n this.slideInAnimation[containerType] = false;\n }\n var shouldFade = this.fadeInAnimation[containerType];\n if (shouldFade) {\n executeNextVMTurn(function () {\n gui.rowComp.addOrRemoveCssClass('ag-opacity-zero', false);\n });\n this.fadeInAnimation[containerType] = false;\n }\n };\n RowCtrl.prototype.addRowDraggerToRow = function (gui) {\n if (this.gridOptionsService.is('enableRangeSelection')) {\n doOnce(function () {\n console.warn('AG Grid: Setting `rowDragEntireRow: true` in the gridOptions doesn\\'t work with `enableRangeSelection: true`');\n }, 'rowDragAndRangeSelectionEnabled');\n return;\n }\n var translate = this.beans.localeService.getLocaleTextFunc();\n var rowDragComp = new RowDragComp(function () { return \"1 \" + translate('rowDragRow', 'row'); }, this.rowNode, undefined, gui.element, undefined, true);\n this.createManagedBean(rowDragComp, this.beans.context);\n };\n RowCtrl.prototype.setupFullWidth = function (gui) {\n var pinned = this.getPinnedForContainer(gui.containerType);\n var params = this.createFullWidthParams(gui.element, pinned);\n if (this.rowType == RowType$1.FullWidthDetail) {\n if (!ModuleRegistry.__assertRegistered(ModuleNames.MasterDetailModule, \"cell renderer 'agDetailCellRenderer' (for master detail)\", this.beans.context.getGridId())) {\n return;\n }\n }\n var compDetails;\n switch (this.rowType) {\n case RowType$1.FullWidthDetail:\n compDetails = this.beans.userComponentFactory.getFullWidthDetailCellRendererDetails(params);\n break;\n case RowType$1.FullWidthGroup:\n compDetails = this.beans.userComponentFactory.getFullWidthGroupCellRendererDetails(params);\n break;\n case RowType$1.FullWidthLoading:\n compDetails = this.beans.userComponentFactory.getFullWidthLoadingCellRendererDetails(params);\n break;\n default:\n compDetails = this.beans.userComponentFactory.getFullWidthCellRendererDetails(params);\n break;\n }\n gui.rowComp.showFullWidth(compDetails);\n };\n RowCtrl.prototype.isPrintLayout = function () {\n return this.printLayout;\n };\n RowCtrl.prototype.getFullWidthCellRenderer = function () {\n var _a, _b;\n return (_b = (_a = this.fullWidthGui) === null || _a === void 0 ? void 0 : _a.rowComp) === null || _b === void 0 ? void 0 : _b.getFullWidthCellRenderer();\n };\n // use by autoWidthCalculator, as it clones the elements\n RowCtrl.prototype.getCellElement = function (column) {\n var cellCtrl = this.getCellCtrl(column);\n return cellCtrl ? cellCtrl.getGui() : null;\n };\n RowCtrl.prototype.executeProcessRowPostCreateFunc = function () {\n var func = this.gridOptionsService.getCallback('processRowPostCreate');\n if (!func || !this.areAllContainersReady()) {\n return;\n }\n var params = {\n // areAllContainersReady asserts that centerGui is not null\n eRow: this.centerGui.element,\n ePinnedLeftRow: this.leftGui ? this.leftGui.element : undefined,\n ePinnedRightRow: this.rightGui ? this.rightGui.element : undefined,\n node: this.rowNode,\n rowIndex: this.rowNode.rowIndex,\n addRenderedRowListener: this.addEventListener.bind(this),\n };\n func(params);\n };\n RowCtrl.prototype.areAllContainersReady = function () {\n var isLeftReady = !!this.leftGui || !this.beans.columnModel.isPinningLeft();\n var isCenterReady = !!this.centerGui;\n var isRightReady = !!this.rightGui || !this.beans.columnModel.isPinningRight();\n return isLeftReady && isCenterReady && isRightReady;\n };\n RowCtrl.prototype.setRowType = function () {\n var isStub = this.rowNode.stub;\n var isFullWidthCell = this.rowNode.isFullWidthCell();\n var isDetailCell = this.beans.doingMasterDetail && this.rowNode.detail;\n var pivotMode = this.beans.columnModel.isPivotMode();\n // we only use full width for groups, not footers. it wouldn't make sense to include footers if not looking\n // for totals. if users complain about this, then we should introduce a new property 'footerUseEntireRow'\n // so each can be set independently (as a customer complained about footers getting full width, hence\n // introducing this logic)\n var isGroupRow = !!this.rowNode.group && !this.rowNode.footer;\n var isFullWidthGroup = isGroupRow && this.gridOptionsService.isGroupUseEntireRow(pivotMode);\n if (isStub) {\n this.rowType = RowType$1.FullWidthLoading;\n }\n else if (isDetailCell) {\n this.rowType = RowType$1.FullWidthDetail;\n }\n else if (isFullWidthCell) {\n this.rowType = RowType$1.FullWidth;\n }\n else if (isFullWidthGroup) {\n this.rowType = RowType$1.FullWidthGroup;\n }\n else {\n this.rowType = RowType$1.Normal;\n }\n };\n RowCtrl.prototype.updateColumnLists = function (suppressAnimationFrame, useFlushSync) {\n var _this = this;\n if (suppressAnimationFrame === void 0) { suppressAnimationFrame = false; }\n if (useFlushSync === void 0) { useFlushSync = false; }\n if (this.isFullWidth()) {\n return;\n }\n var noAnimation = suppressAnimationFrame\n || this.gridOptionsService.is('suppressAnimationFrame')\n || this.printLayout;\n if (noAnimation) {\n this.updateColumnListsImpl(useFlushSync);\n return;\n }\n if (this.updateColumnListsPending) {\n return;\n }\n this.beans.animationFrameService.createTask(function () {\n if (!_this.active) {\n return;\n }\n _this.updateColumnListsImpl(true);\n }, this.rowNode.rowIndex, 'createTasksP1');\n this.updateColumnListsPending = true;\n };\n RowCtrl.prototype.createCellCtrls = function (prev, cols, pinned) {\n var _this = this;\n if (pinned === void 0) { pinned = null; }\n var res = {\n list: [],\n map: {}\n };\n var addCell = function (colInstanceId, cellCtrl) {\n res.list.push(cellCtrl);\n res.map[colInstanceId] = cellCtrl;\n };\n cols.forEach(function (col) {\n // we use instanceId's rather than colId as it's possible there is a Column with same Id,\n // but it's referring to a different column instance. Happens a lot with pivot, as pivot col id's are\n // reused eg pivot_0, pivot_1 etc\n var colInstanceId = col.getInstanceId();\n var cellCtrl = prev.map[colInstanceId];\n if (!cellCtrl) {\n cellCtrl = new CellCtrl(col, _this.rowNode, _this.beans, _this);\n }\n addCell(colInstanceId, cellCtrl);\n });\n prev.list.forEach(function (prevCellCtrl) {\n var cellInResult = res.map[prevCellCtrl.getColumn().getInstanceId()] != null;\n if (cellInResult) {\n return;\n }\n var keepCell = !_this.isCellEligibleToBeRemoved(prevCellCtrl, pinned);\n if (keepCell) {\n addCell(prevCellCtrl.getColumn().getInstanceId(), prevCellCtrl);\n return;\n }\n prevCellCtrl.destroy();\n });\n return res;\n };\n RowCtrl.prototype.updateColumnListsImpl = function (useFlushSync) {\n this.updateColumnListsPending = false;\n this.createAllCellCtrls();\n this.setCellCtrls(useFlushSync);\n };\n RowCtrl.prototype.setCellCtrls = function (useFlushSync) {\n var _this = this;\n this.allRowGuis.forEach(function (item) {\n var cellControls = _this.getCellCtrlsForContainer(item.containerType);\n item.rowComp.setCellCtrls(cellControls, useFlushSync);\n });\n };\n RowCtrl.prototype.getCellCtrlsForContainer = function (containerType) {\n switch (containerType) {\n case RowContainerType.LEFT:\n return this.leftCellCtrls.list;\n case RowContainerType.RIGHT:\n return this.rightCellCtrls.list;\n case RowContainerType.FULL_WIDTH:\n return [];\n case RowContainerType.CENTER:\n return this.centerCellCtrls.list;\n default:\n var exhaustiveCheck = containerType;\n throw new Error(\"Unhandled case: \" + exhaustiveCheck);\n }\n };\n RowCtrl.prototype.createAllCellCtrls = function () {\n var columnModel = this.beans.columnModel;\n if (this.printLayout) {\n this.centerCellCtrls = this.createCellCtrls(this.centerCellCtrls, columnModel.getAllDisplayedColumns());\n this.leftCellCtrls = { list: [], map: {} };\n this.rightCellCtrls = { list: [], map: {} };\n }\n else {\n var centerCols = columnModel.getViewportCenterColumnsForRow(this.rowNode);\n this.centerCellCtrls = this.createCellCtrls(this.centerCellCtrls, centerCols);\n var leftCols = columnModel.getDisplayedLeftColumnsForRow(this.rowNode);\n this.leftCellCtrls = this.createCellCtrls(this.leftCellCtrls, leftCols, 'left');\n var rightCols = columnModel.getDisplayedRightColumnsForRow(this.rowNode);\n this.rightCellCtrls = this.createCellCtrls(this.rightCellCtrls, rightCols, 'right');\n }\n };\n RowCtrl.prototype.isCellEligibleToBeRemoved = function (cellCtrl, nextContainerPinned) {\n var REMOVE_CELL = true;\n var KEEP_CELL = false;\n // always remove the cell if it's not rendered or if it's in the wrong pinned location\n var column = cellCtrl.getColumn();\n if (column.getPinned() != nextContainerPinned) {\n return REMOVE_CELL;\n }\n // we want to try and keep editing and focused cells\n var editing = cellCtrl.isEditing();\n var focused = this.beans.focusService.isCellFocused(cellCtrl.getCellPosition());\n var mightWantToKeepCell = editing || focused;\n if (mightWantToKeepCell) {\n var column_1 = cellCtrl.getColumn();\n var displayedColumns = this.beans.columnModel.getAllDisplayedColumns();\n var cellStillDisplayed = displayedColumns.indexOf(column_1) >= 0;\n return cellStillDisplayed ? KEEP_CELL : REMOVE_CELL;\n }\n return REMOVE_CELL;\n };\n RowCtrl.prototype.getDomOrder = function () {\n var isEnsureDomOrder = this.gridOptionsService.is('ensureDomOrder');\n return isEnsureDomOrder || this.gridOptionsService.isDomLayout('print');\n };\n RowCtrl.prototype.listenOnDomOrder = function (gui) {\n var _this = this;\n var listener = function () {\n gui.rowComp.setDomOrder(_this.getDomOrder());\n };\n this.addManagedPropertyListener('domLayout', listener);\n this.addManagedPropertyListener('ensureDomOrder', listener);\n };\n RowCtrl.prototype.setAnimateFlags = function (animateIn) {\n if (this.isSticky() || !animateIn) {\n return;\n }\n var oldRowTopExists = exists(this.rowNode.oldRowTop);\n var pinningLeft = this.beans.columnModel.isPinningLeft();\n var pinningRight = this.beans.columnModel.isPinningRight();\n if (oldRowTopExists) {\n if (this.isFullWidth() && !this.gridOptionsService.is('embedFullWidthRows')) {\n this.slideInAnimation.fullWidth = true;\n return;\n }\n // if the row had a previous position, we slide it in\n this.slideInAnimation.center = true;\n this.slideInAnimation.left = pinningLeft;\n this.slideInAnimation.right = pinningRight;\n }\n else {\n if (this.isFullWidth() && !this.gridOptionsService.is('embedFullWidthRows')) {\n this.fadeInAnimation.fullWidth = true;\n return;\n }\n // if the row had no previous position, we fade it in\n this.fadeInAnimation.center = true;\n this.fadeInAnimation.left = pinningLeft;\n this.fadeInAnimation.right = pinningRight;\n }\n };\n RowCtrl.prototype.isEditing = function () {\n return this.editingRow;\n };\n RowCtrl.prototype.stopRowEditing = function (cancel) {\n this.stopEditing(cancel);\n };\n RowCtrl.prototype.isFullWidth = function () {\n return this.rowType !== RowType$1.Normal;\n };\n RowCtrl.prototype.getRowType = function () {\n return this.rowType;\n };\n RowCtrl.prototype.refreshFullWidth = function () {\n var _this = this;\n // returns 'true' if refresh succeeded\n var tryRefresh = function (gui, pinned) {\n if (!gui) {\n return true;\n } // no refresh needed\n var cellRenderer = gui.rowComp.getFullWidthCellRenderer();\n // no cell renderer, either means comp not yet ready, or comp ready but now reference\n // to it (happens in react when comp is stateless). if comp not ready, we don't need to\n // refresh, however we don't know which one, so we refresh to cover the case where it's\n // react comp without reference so need to force a refresh\n if (!cellRenderer) {\n return false;\n }\n // no refresh method present, so can't refresh, hard refresh needed\n if (!cellRenderer.refresh) {\n return false;\n }\n var params = _this.createFullWidthParams(gui.element, pinned);\n var refreshSucceeded = cellRenderer.refresh(params);\n return refreshSucceeded;\n };\n var fullWidthSuccess = tryRefresh(this.fullWidthGui, null);\n var centerSuccess = tryRefresh(this.centerGui, null);\n var leftSuccess = tryRefresh(this.leftGui, 'left');\n var rightSuccess = tryRefresh(this.rightGui, 'right');\n var allFullWidthRowsRefreshed = fullWidthSuccess && centerSuccess && leftSuccess && rightSuccess;\n return allFullWidthRowsRefreshed;\n };\n RowCtrl.prototype.addListeners = function () {\n var _this = this;\n this.addManagedListener(this.rowNode, RowNode.EVENT_HEIGHT_CHANGED, function () { return _this.onRowHeightChanged(); });\n this.addManagedListener(this.rowNode, RowNode.EVENT_ROW_SELECTED, function () { return _this.onRowSelected(); });\n this.addManagedListener(this.rowNode, RowNode.EVENT_ROW_INDEX_CHANGED, this.onRowIndexChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_TOP_CHANGED, this.onTopChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_EXPANDED_CHANGED, this.updateExpandedCss.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_HAS_CHILDREN_CHANGED, this.updateExpandedCss.bind(this));\n if (this.rowNode.detail) {\n // if the master row node has updated data, we also want to try to refresh the detail row\n this.addManagedListener(this.rowNode.parent, RowNode.EVENT_DATA_CHANGED, this.onRowNodeDataChanged.bind(this));\n }\n this.addManagedListener(this.rowNode, RowNode.EVENT_DATA_CHANGED, this.onRowNodeDataChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_CELL_CHANGED, this.onRowNodeCellChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_HIGHLIGHT_CHANGED, this.onRowNodeHighlightChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_DRAGGING_CHANGED, this.onRowNodeDraggingChanged.bind(this));\n this.addManagedListener(this.rowNode, RowNode.EVENT_UI_LEVEL_CHANGED, this.onUiLevelChanged.bind(this));\n var eventService = this.beans.eventService;\n this.addManagedListener(eventService, Events.EVENT_PAGINATION_PIXEL_OFFSET_CHANGED, this.onPaginationPixelOffsetChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_HEIGHT_SCALE_CHANGED, this.onTopChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_VIRTUAL_COLUMNS_CHANGED, this.onVirtualColumnsChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_CELL_FOCUSED, this.onCellFocused.bind(this));\n this.addManagedListener(eventService, Events.EVENT_CELL_FOCUS_CLEARED, this.onCellFocusCleared.bind(this));\n this.addManagedListener(eventService, Events.EVENT_PAGINATION_CHANGED, this.onPaginationChanged.bind(this));\n this.addManagedListener(eventService, Events.EVENT_MODEL_UPDATED, this.onModelUpdated.bind(this));\n this.addManagedListener(eventService, Events.EVENT_COLUMN_MOVED, this.onColumnMoved.bind(this));\n this.addListenersForCellComps();\n };\n RowCtrl.prototype.onColumnMoved = function () {\n this.updateColumnLists();\n };\n RowCtrl.prototype.addListenersForCellComps = function () {\n var _this = this;\n this.addManagedListener(this.rowNode, RowNode.EVENT_ROW_INDEX_CHANGED, function () {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onRowIndexChanged(); });\n });\n this.addManagedListener(this.rowNode, RowNode.EVENT_CELL_CHANGED, function (event) {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onCellChanged(event); });\n });\n };\n RowCtrl.prototype.onRowNodeDataChanged = function (event) {\n var _this = this;\n // if the row is rendered incorrectly, as the requirements for whether this is a FW row have changed, we force re-render this row.\n var fullWidthChanged = this.isFullWidth() !== !!this.rowNode.isFullWidthCell();\n if (fullWidthChanged) {\n this.beans.rowRenderer.redrawRow(this.rowNode);\n return;\n }\n // this bit of logic handles trying to refresh the FW row ctrl, or delegating to removing/recreating it if unsupported.\n if (this.isFullWidth()) {\n var refresh = this.refreshFullWidth();\n if (!refresh) {\n this.beans.rowRenderer.redrawRow(this.rowNode);\n }\n return;\n }\n // if this is an update, we want to refresh, as this will allow the user to put in a transition\n // into the cellRenderer refresh method. otherwise this might be completely new data, in which case\n // we will want to completely replace the cells\n this.getAllCellCtrls().forEach(function (cellCtrl) {\n return cellCtrl.refreshCell({\n suppressFlash: !event.update,\n newData: !event.update\n });\n });\n // as data has changed update the dom row id attributes\n this.allRowGuis.forEach(function (gui) {\n _this.setRowCompRowId(gui.rowComp);\n _this.updateRowBusinessKey();\n _this.setRowCompRowBusinessKey(gui.rowComp);\n });\n // check for selected also, as this could be after lazy loading of the row data, in which case\n // the id might of just gotten set inside the row and the row selected state may of changed\n // as a result. this is what happens when selected rows are loaded in virtual pagination.\n // - niall note - since moving to the stub component, this may no longer be true, as replacing\n // the stub component now replaces the entire row\n this.onRowSelected();\n // as data has changed, then the style and class needs to be recomputed\n this.postProcessCss();\n };\n RowCtrl.prototype.onRowNodeCellChanged = function () {\n // as data has changed, then the style and class needs to be recomputed\n this.postProcessCss();\n };\n RowCtrl.prototype.postProcessCss = function () {\n this.setStylesFromGridOptions(true);\n this.postProcessClassesFromGridOptions();\n this.postProcessRowClassRules();\n this.postProcessRowDragging();\n };\n RowCtrl.prototype.onRowNodeHighlightChanged = function () {\n var highlighted = this.rowNode.highlighted;\n this.allRowGuis.forEach(function (gui) {\n var aboveOn = highlighted === RowHighlightPosition.Above;\n var belowOn = highlighted === RowHighlightPosition.Below;\n gui.rowComp.addOrRemoveCssClass('ag-row-highlight-above', aboveOn);\n gui.rowComp.addOrRemoveCssClass('ag-row-highlight-below', belowOn);\n });\n };\n RowCtrl.prototype.onRowNodeDraggingChanged = function () {\n this.postProcessRowDragging();\n };\n RowCtrl.prototype.postProcessRowDragging = function () {\n var dragging = this.rowNode.dragging;\n this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass('ag-row-dragging', dragging); });\n };\n RowCtrl.prototype.updateExpandedCss = function () {\n var expandable = this.rowNode.isExpandable();\n var expanded = this.rowNode.expanded == true;\n this.allRowGuis.forEach(function (gui) {\n gui.rowComp.addOrRemoveCssClass('ag-row-group', expandable);\n gui.rowComp.addOrRemoveCssClass('ag-row-group-expanded', expandable && expanded);\n gui.rowComp.addOrRemoveCssClass('ag-row-group-contracted', expandable && !expanded);\n setAriaExpanded(gui.element, expandable && expanded);\n });\n };\n RowCtrl.prototype.onDisplayedColumnsChanged = function () {\n // we skip animations for onDisplayedColumnChanged, as otherwise the client could remove columns and\n // then set data, and any old valueGetter's (ie from cols that were removed) would still get called.\n this.updateColumnLists(true);\n if (this.beans.columnModel.wasAutoRowHeightEverActive()) {\n this.rowNode.checkAutoHeights();\n }\n };\n RowCtrl.prototype.onVirtualColumnsChanged = function () {\n this.updateColumnLists(false, true);\n };\n RowCtrl.prototype.getRowPosition = function () {\n return {\n rowPinned: makeNull(this.rowNode.rowPinned),\n rowIndex: this.rowNode.rowIndex\n };\n };\n RowCtrl.prototype.onKeyboardNavigate = function (keyboardEvent) {\n var currentFullWidthComp = this.allRowGuis.find(function (c) { return c.element.contains(keyboardEvent.target); });\n var currentFullWidthContainer = currentFullWidthComp ? currentFullWidthComp.element : null;\n var isFullWidthContainerFocused = currentFullWidthContainer === keyboardEvent.target;\n if (!isFullWidthContainerFocused) {\n return;\n }\n var node = this.rowNode;\n var lastFocusedCell = this.beans.focusService.getFocusedCell();\n var cellPosition = {\n rowIndex: node.rowIndex,\n rowPinned: node.rowPinned,\n column: (lastFocusedCell && lastFocusedCell.column)\n };\n this.beans.navigationService.navigateToNextCell(keyboardEvent, keyboardEvent.key, cellPosition, true);\n keyboardEvent.preventDefault();\n };\n RowCtrl.prototype.onTabKeyDown = function (keyboardEvent) {\n if (keyboardEvent.defaultPrevented || isStopPropagationForAgGrid(keyboardEvent)) {\n return;\n }\n var currentFullWidthComp = this.allRowGuis.find(function (c) { return c.element.contains(keyboardEvent.target); });\n var currentFullWidthContainer = currentFullWidthComp ? currentFullWidthComp.element : null;\n var isFullWidthContainerFocused = currentFullWidthContainer === keyboardEvent.target;\n var nextEl = null;\n if (!isFullWidthContainerFocused) {\n nextEl = this.beans.focusService.findNextFocusableElement(currentFullWidthContainer, false, keyboardEvent.shiftKey);\n }\n if ((this.isFullWidth() && isFullWidthContainerFocused) || !nextEl) {\n this.beans.navigationService.onTabKeyDown(this, keyboardEvent);\n }\n };\n RowCtrl.prototype.onFullWidthRowFocused = function (event) {\n var _a;\n var node = this.rowNode;\n var isFocused = !event ? false : this.isFullWidth() && event.rowIndex === node.rowIndex && event.rowPinned == node.rowPinned;\n var element = this.fullWidthGui ? this.fullWidthGui.element : (_a = this.centerGui) === null || _a === void 0 ? void 0 : _a.element;\n if (!element) {\n return;\n } // can happen with react ui, comp not yet ready\n element.classList.toggle('ag-full-width-focus', isFocused);\n if (isFocused) {\n // we don't scroll normal rows into view when we focus them, so we don't want\n // to scroll Full Width rows either.\n element.focus({ preventScroll: true });\n }\n };\n RowCtrl.prototype.refreshCell = function (cellCtrl) {\n this.centerCellCtrls = this.removeCellCtrl(this.centerCellCtrls, cellCtrl);\n this.leftCellCtrls = this.removeCellCtrl(this.leftCellCtrls, cellCtrl);\n this.rightCellCtrls = this.removeCellCtrl(this.rightCellCtrls, cellCtrl);\n this.updateColumnLists();\n };\n RowCtrl.prototype.removeCellCtrl = function (prev, cellCtrlToRemove) {\n var res = {\n list: [],\n map: {}\n };\n prev.list.forEach(function (cellCtrl) {\n if (cellCtrl === cellCtrlToRemove) {\n return;\n }\n res.list.push(cellCtrl);\n res.map[cellCtrl.getInstanceId()] = cellCtrl;\n });\n return res;\n };\n RowCtrl.prototype.onMouseEvent = function (eventName, mouseEvent) {\n switch (eventName) {\n case 'dblclick':\n this.onRowDblClick(mouseEvent);\n break;\n case 'click':\n this.onRowClick(mouseEvent);\n break;\n case 'touchstart':\n case 'mousedown':\n this.onRowMouseDown(mouseEvent);\n break;\n }\n };\n RowCtrl.prototype.createRowEvent = function (type, domEvent) {\n return {\n type: type,\n node: this.rowNode,\n data: this.rowNode.data,\n rowIndex: this.rowNode.rowIndex,\n rowPinned: this.rowNode.rowPinned,\n context: this.gridOptionsService.context,\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n event: domEvent\n };\n };\n RowCtrl.prototype.createRowEventWithSource = function (type, domEvent) {\n var event = this.createRowEvent(type, domEvent);\n // when first developing this, we included the rowComp in the event.\n // this seems very weird. so when introducing the event types, i left the 'source'\n // out of the type, and just include the source in the two places where this event\n // was fired (rowClicked and rowDoubleClicked). it doesn't make sense for any\n // users to be using this, as the rowComp isn't an object we expose, so would be\n // very surprising if a user was using it.\n event.source = this;\n return event;\n };\n RowCtrl.prototype.onRowDblClick = function (mouseEvent) {\n if (isStopPropagationForAgGrid(mouseEvent)) {\n return;\n }\n var agEvent = this.createRowEventWithSource(Events.EVENT_ROW_DOUBLE_CLICKED, mouseEvent);\n this.beans.eventService.dispatchEvent(agEvent);\n };\n RowCtrl.prototype.onRowMouseDown = function (mouseEvent) {\n this.lastMouseDownOnDragger = isElementChildOfClass(mouseEvent.target, 'ag-row-drag', 3);\n if (!this.isFullWidth()) {\n return;\n }\n var node = this.rowNode;\n var columnModel = this.beans.columnModel;\n if (this.beans.rangeService) {\n this.beans.rangeService.removeAllCellRanges();\n }\n this.beans.focusService.setFocusedCell({\n rowIndex: node.rowIndex,\n column: columnModel.getAllDisplayedColumns()[0],\n rowPinned: node.rowPinned,\n forceBrowserFocus: true\n });\n };\n RowCtrl.prototype.onRowClick = function (mouseEvent) {\n var stop = isStopPropagationForAgGrid(mouseEvent) || this.lastMouseDownOnDragger;\n if (stop) {\n return;\n }\n var agEvent = this.createRowEventWithSource(Events.EVENT_ROW_CLICKED, mouseEvent);\n this.beans.eventService.dispatchEvent(agEvent);\n // ctrlKey for windows, metaKey for Apple\n var isMultiKey = mouseEvent.ctrlKey || mouseEvent.metaKey;\n var isShiftKey = mouseEvent.shiftKey;\n // we do not allow selecting the group by clicking, when groupSelectChildren, as the logic to\n // handle this is broken. to observe, change the logic below and allow groups to be selected.\n // you will see the group gets selected, then all children get selected, then the grid unselects\n // the children (as the default behaviour when clicking is to unselect other rows) which results\n // in the group getting unselected (as all children are unselected). the correct thing would be\n // to change this, so that children of the selected group are not then subsequently un-selected.\n var groupSelectsChildren = this.gridOptionsService.is('groupSelectsChildren');\n if (\n // we do not allow selecting groups by clicking (as the click here expands the group), or if it's a detail row,\n // so return if it's a group row\n (groupSelectsChildren && this.rowNode.group) ||\n // this is needed so we don't unselect other rows when we click this row, eg if this row is not selectable,\n // and we click it, the selection should not change (ie any currently selected row should stay selected)\n !this.rowNode.selectable ||\n // we also don't allow selection of pinned rows\n this.rowNode.rowPinned ||\n // if no selection method enabled, do nothing\n !this.gridOptionsService.isRowSelection() ||\n // if click selection suppressed, do nothing\n this.gridOptionsService.is('suppressRowClickSelection')) {\n return;\n }\n var multiSelectOnClick = this.gridOptionsService.is('rowMultiSelectWithClick');\n var rowDeselectionWithCtrl = !this.gridOptionsService.is('suppressRowDeselection');\n var source = 'rowClicked';\n if (this.rowNode.isSelected()) {\n if (multiSelectOnClick) {\n this.rowNode.setSelectedParams({ newValue: false, event: mouseEvent, source: source });\n }\n else if (isMultiKey) {\n if (rowDeselectionWithCtrl) {\n this.rowNode.setSelectedParams({ newValue: false, event: mouseEvent, source: source });\n }\n }\n else {\n // selected with no multi key, must make sure anything else is unselected\n this.rowNode.setSelectedParams({ newValue: true, clearSelection: !isShiftKey, rangeSelect: isShiftKey, event: mouseEvent, source: source });\n }\n }\n else {\n var clearSelection = multiSelectOnClick ? false : !isMultiKey;\n this.rowNode.setSelectedParams({ newValue: true, clearSelection: clearSelection, rangeSelect: isShiftKey, event: mouseEvent, source: source });\n }\n };\n RowCtrl.prototype.setupDetailRowAutoHeight = function (eDetailGui) {\n var _this = this;\n if (this.rowType !== RowType$1.FullWidthDetail) {\n return;\n }\n if (!this.gridOptionsService.is('detailRowAutoHeight')) {\n return;\n }\n var checkRowSizeFunc = function () {\n var clientHeight = eDetailGui.clientHeight;\n // if the UI is not ready, the height can be 0, which we ignore, as otherwise a flicker will occur\n // as UI goes from the default height, to 0, then to the real height as UI becomes ready. this means\n // it's not possible for have 0 as auto-height, however this is an improbable use case, as even an\n // empty detail grid would still have some styling around it giving at least a few pixels.\n if (clientHeight != null && clientHeight > 0) {\n // we do the update in a timeout, to make sure we are not calling from inside the grid\n // doing another update\n var updateRowHeightFunc = function () {\n _this.rowNode.setRowHeight(clientHeight);\n if (_this.beans.clientSideRowModel) {\n _this.beans.clientSideRowModel.onRowHeightChanged();\n }\n else if (_this.beans.serverSideRowModel) {\n _this.beans.serverSideRowModel.onRowHeightChanged();\n }\n };\n _this.beans.frameworkOverrides.setTimeout(updateRowHeightFunc, 0);\n }\n };\n var resizeObserverDestroyFunc = this.beans.resizeObserverService.observeResize(eDetailGui, checkRowSizeFunc);\n this.addDestroyFunc(resizeObserverDestroyFunc);\n checkRowSizeFunc();\n };\n RowCtrl.prototype.createFullWidthParams = function (eRow, pinned) {\n var _this = this;\n var params = {\n fullWidth: true,\n data: this.rowNode.data,\n node: this.rowNode,\n value: this.rowNode.key,\n valueFormatted: this.rowNode.key,\n rowIndex: this.rowNode.rowIndex,\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context,\n // these need to be taken out, as part of 'afterAttached' now\n eGridCell: eRow,\n eParentOfValue: eRow,\n pinned: pinned,\n addRenderedRowListener: this.addEventListener.bind(this),\n registerRowDragger: function (rowDraggerElement, dragStartPixels, value, suppressVisibilityChange) { return _this.addFullWidthRowDragging(rowDraggerElement, dragStartPixels, value, suppressVisibilityChange); }\n };\n return params;\n };\n RowCtrl.prototype.addFullWidthRowDragging = function (rowDraggerElement, dragStartPixels, value, suppressVisibilityChange) {\n if (value === void 0) { value = ''; }\n if (!this.isFullWidth()) {\n return;\n }\n var rowDragComp = new RowDragComp(function () { return value; }, this.rowNode, undefined, rowDraggerElement, dragStartPixels, suppressVisibilityChange);\n this.createManagedBean(rowDragComp, this.beans.context);\n };\n RowCtrl.prototype.onUiLevelChanged = function () {\n var newLevel = this.beans.rowCssClassCalculator.calculateRowLevel(this.rowNode);\n if (this.rowLevel != newLevel) {\n var classToAdd_1 = 'ag-row-level-' + newLevel;\n var classToRemove_1 = 'ag-row-level-' + this.rowLevel;\n this.allRowGuis.forEach(function (gui) {\n gui.rowComp.addOrRemoveCssClass(classToAdd_1, true);\n gui.rowComp.addOrRemoveCssClass(classToRemove_1, false);\n });\n }\n this.rowLevel = newLevel;\n };\n RowCtrl.prototype.isFirstRowOnPage = function () {\n return this.rowNode.rowIndex === this.beans.paginationProxy.getPageFirstRow();\n };\n RowCtrl.prototype.isLastRowOnPage = function () {\n return this.rowNode.rowIndex === this.beans.paginationProxy.getPageLastRow();\n };\n RowCtrl.prototype.onModelUpdated = function () {\n this.refreshFirstAndLastRowStyles();\n };\n RowCtrl.prototype.refreshFirstAndLastRowStyles = function () {\n var newFirst = this.isFirstRowOnPage();\n var newLast = this.isLastRowOnPage();\n if (this.firstRowOnPage !== newFirst) {\n this.firstRowOnPage = newFirst;\n this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass('ag-row-first', newFirst); });\n }\n if (this.lastRowOnPage !== newLast) {\n this.lastRowOnPage = newLast;\n this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass('ag-row-last', newLast); });\n }\n };\n RowCtrl.prototype.stopEditing = function (cancel) {\n var e_1, _a;\n if (cancel === void 0) { cancel = false; }\n // if we are already stopping row edit, there is\n // no need to start this process again.\n if (this.stoppingRowEdit) {\n return;\n }\n var cellControls = this.getAllCellCtrls();\n var isRowEdit = this.editingRow;\n this.stoppingRowEdit = true;\n var fireRowEditEvent = false;\n try {\n for (var cellControls_1 = __values$3(cellControls), cellControls_1_1 = cellControls_1.next(); !cellControls_1_1.done; cellControls_1_1 = cellControls_1.next()) {\n var ctrl = cellControls_1_1.value;\n var valueChanged = ctrl.stopEditing(cancel);\n if (isRowEdit && !cancel && !fireRowEditEvent && valueChanged) {\n fireRowEditEvent = true;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (cellControls_1_1 && !cellControls_1_1.done && (_a = cellControls_1.return)) _a.call(cellControls_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (fireRowEditEvent) {\n var event_1 = this.createRowEvent(Events.EVENT_ROW_VALUE_CHANGED);\n this.beans.eventService.dispatchEvent(event_1);\n }\n if (isRowEdit) {\n this.setEditingRow(false);\n }\n this.stoppingRowEdit = false;\n };\n RowCtrl.prototype.setInlineEditingCss = function (editing) {\n this.allRowGuis.forEach(function (gui) {\n gui.rowComp.addOrRemoveCssClass(\"ag-row-inline-editing\", editing);\n gui.rowComp.addOrRemoveCssClass(\"ag-row-not-inline-editing\", !editing);\n });\n };\n RowCtrl.prototype.setEditingRow = function (value) {\n this.editingRow = value;\n this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass('ag-row-editing', value); });\n var event = value ?\n this.createRowEvent(Events.EVENT_ROW_EDITING_STARTED)\n : this.createRowEvent(Events.EVENT_ROW_EDITING_STOPPED);\n this.beans.eventService.dispatchEvent(event);\n };\n RowCtrl.prototype.startRowEditing = function (key, sourceRenderedCell, event) {\n if (key === void 0) { key = null; }\n if (sourceRenderedCell === void 0) { sourceRenderedCell = null; }\n if (event === void 0) { event = null; }\n // don't do it if already editing\n if (this.editingRow) {\n return;\n }\n var atLeastOneEditing = this.getAllCellCtrls().reduce(function (prev, cellCtrl) {\n var cellStartedEdit = cellCtrl === sourceRenderedCell;\n if (cellStartedEdit) {\n cellCtrl.startEditing(key, cellStartedEdit, event);\n }\n else {\n cellCtrl.startEditing(null, cellStartedEdit, event);\n }\n if (prev) {\n return true;\n }\n return cellCtrl.isEditing();\n }, false);\n if (atLeastOneEditing) {\n this.setEditingRow(true);\n }\n };\n RowCtrl.prototype.getAllCellCtrls = function () {\n if (this.leftCellCtrls.list.length === 0 && this.rightCellCtrls.list.length === 0) {\n return this.centerCellCtrls.list;\n }\n var res = __spreadArray$h(__spreadArray$h(__spreadArray$h([], __read$l(this.centerCellCtrls.list)), __read$l(this.leftCellCtrls.list)), __read$l(this.rightCellCtrls.list));\n return res;\n };\n RowCtrl.prototype.postProcessClassesFromGridOptions = function () {\n var _this = this;\n var cssClasses = this.beans.rowCssClassCalculator.processClassesFromGridOptions(this.rowNode);\n if (!cssClasses || !cssClasses.length) {\n return;\n }\n cssClasses.forEach(function (classStr) {\n _this.allRowGuis.forEach(function (c) { return c.rowComp.addOrRemoveCssClass(classStr, true); });\n });\n };\n RowCtrl.prototype.postProcessRowClassRules = function () {\n var _this = this;\n this.beans.rowCssClassCalculator.processRowClassRules(this.rowNode, function (className) {\n _this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass(className, true); });\n }, function (className) {\n _this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass(className, false); });\n });\n };\n RowCtrl.prototype.setStylesFromGridOptions = function (updateStyles, gui) {\n var _this = this;\n if (updateStyles) {\n this.rowStyles = this.processStylesFromGridOptions();\n }\n this.forEachGui(gui, function (gui) { return gui.rowComp.setUserStyles(_this.rowStyles); });\n };\n RowCtrl.prototype.getPinnedForContainer = function (rowContainerType) {\n var pinned = rowContainerType === RowContainerType.LEFT\n ? 'left'\n : rowContainerType === RowContainerType.RIGHT\n ? 'right'\n : null;\n return pinned;\n };\n RowCtrl.prototype.getInitialRowClasses = function (rowContainerType) {\n var pinned = this.getPinnedForContainer(rowContainerType);\n var params = {\n rowNode: this.rowNode,\n rowFocused: this.rowFocused,\n fadeRowIn: this.fadeInAnimation[rowContainerType],\n rowIsEven: this.rowNode.rowIndex % 2 === 0,\n rowLevel: this.rowLevel,\n fullWidthRow: this.isFullWidth(),\n firstRowOnPage: this.isFirstRowOnPage(),\n lastRowOnPage: this.isLastRowOnPage(),\n printLayout: this.printLayout,\n expandable: this.rowNode.isExpandable(),\n pinned: pinned\n };\n return this.beans.rowCssClassCalculator.getInitialRowClasses(params);\n };\n RowCtrl.prototype.processStylesFromGridOptions = function () {\n // part 1 - rowStyle\n var rowStyle = this.gridOptionsService.get('rowStyle');\n if (rowStyle && typeof rowStyle === 'function') {\n console.warn('AG Grid: rowStyle should be an object of key/value styles, not be a function, use getRowStyle() instead');\n return;\n }\n // part 1 - rowStyleFunc\n var rowStyleFunc = this.gridOptionsService.getCallback('getRowStyle');\n var rowStyleFuncResult;\n if (rowStyleFunc) {\n var params = {\n data: this.rowNode.data,\n node: this.rowNode,\n rowIndex: this.rowNode.rowIndex\n };\n rowStyleFuncResult = rowStyleFunc(params);\n }\n if (rowStyleFuncResult || rowStyle) {\n return Object.assign({}, rowStyle, rowStyleFuncResult);\n }\n // Return constant reference for React\n return this.emptyStyle;\n };\n RowCtrl.prototype.onRowSelected = function (gui) {\n var _this = this;\n // Treat undefined as false, if we pass undefined down it gets treated as toggle class, rather than explicitly\n // setting the required value\n var selected = !!this.rowNode.isSelected();\n this.forEachGui(gui, function (gui) {\n gui.rowComp.addOrRemoveCssClass('ag-row-selected', selected);\n setAriaSelected(gui.element, selected ? true : undefined);\n var ariaLabel = _this.createAriaLabel();\n setAriaLabel(gui.element, ariaLabel == null ? '' : ariaLabel);\n });\n };\n RowCtrl.prototype.createAriaLabel = function () {\n var selected = this.rowNode.isSelected();\n if (selected && this.gridOptionsService.is('suppressRowDeselection')) {\n return undefined;\n }\n var translate = this.beans.localeService.getLocaleTextFunc();\n var label = translate(selected ? 'ariaRowDeselect' : 'ariaRowSelect', \"Press SPACE to \" + (selected ? 'deselect' : 'select') + \" this row.\");\n return label;\n };\n RowCtrl.prototype.isUseAnimationFrameForCreate = function () {\n return this.useAnimationFrameForCreate;\n };\n RowCtrl.prototype.addHoverFunctionality = function (eRow) {\n var _this = this;\n // because we use animation frames to do this, it's possible the row no longer exists\n // by the time we get to add it\n if (!this.active) {\n return;\n }\n // because mouseenter and mouseleave do not propagate, we cannot listen on the gridPanel\n // like we do for all the other mouse events.\n // because of the pinning, we cannot simply add / remove the class based on the eRow. we\n // have to check all eRow's (body & pinned). so the trick is if any of the rows gets a\n // mouse hover, it sets such in the rowNode, and then all three reflect the change as\n // all are listening for event on the row node.\n // step 1 - add listener, to set flag on row node\n this.addManagedListener(eRow, 'mouseenter', function () { return _this.rowNode.onMouseEnter(); });\n this.addManagedListener(eRow, 'mouseleave', function () { return _this.rowNode.onMouseLeave(); });\n // step 2 - listen for changes on row node (which any eRow can trigger)\n this.addManagedListener(this.rowNode, RowNode.EVENT_MOUSE_ENTER, function () {\n // if hover turned off, we don't add the class. we do this here so that if the application\n // toggles this property mid way, we remove the hover form the last row, but we stop\n // adding hovers from that point onwards. Also, do not highlight while dragging elements around.\n if (!_this.beans.dragService.isDragging() &&\n !_this.gridOptionsService.is('suppressRowHoverHighlight')) {\n eRow.classList.add('ag-row-hover');\n _this.rowNode.setHovered(true);\n }\n });\n this.addManagedListener(this.rowNode, RowNode.EVENT_MOUSE_LEAVE, function () {\n eRow.classList.remove('ag-row-hover');\n _this.rowNode.setHovered(false);\n });\n };\n // for animation, we don't want to animate entry or exit to a very far away pixel,\n // otherwise the row would move so fast, it would appear to disappear. so this method\n // moves the row closer to the viewport if it is far away, so the row slide in / out\n // at a speed the user can see.\n RowCtrl.prototype.roundRowTopToBounds = function (rowTop) {\n var gridBodyCon = this.beans.ctrlsService.getGridBodyCtrl();\n var range = gridBodyCon.getScrollFeature().getVScrollPosition();\n var minPixel = this.applyPaginationOffset(range.top, true) - 100;\n var maxPixel = this.applyPaginationOffset(range.bottom, true) + 100;\n return Math.min(Math.max(minPixel, rowTop), maxPixel);\n };\n RowCtrl.prototype.getFrameworkOverrides = function () {\n return this.beans.frameworkOverrides;\n };\n RowCtrl.prototype.forEachGui = function (gui, callback) {\n if (gui) {\n callback(gui);\n }\n else {\n this.allRowGuis.forEach(callback);\n }\n };\n RowCtrl.prototype.onRowHeightChanged = function (gui) {\n // check for exists first - if the user is resetting the row height, then\n // it will be null (or undefined) momentarily until the next time the flatten\n // stage is called where the row will then update again with a new height\n if (this.rowNode.rowHeight == null) {\n return;\n }\n var rowHeight = this.rowNode.rowHeight;\n var defaultRowHeight = this.beans.environment.getDefaultRowHeight();\n var isHeightFromFunc = this.gridOptionsService.isGetRowHeightFunction();\n var heightFromFunc = isHeightFromFunc ? this.gridOptionsService.getRowHeightForNode(this.rowNode).height : undefined;\n var lineHeight = heightFromFunc ? Math.min(defaultRowHeight, heightFromFunc) - 2 + \"px\" : undefined;\n this.forEachGui(gui, function (gui) {\n gui.element.style.height = rowHeight + \"px\";\n // If the row height is coming from a function, this means some rows can\n // be smaller than the theme had intended. so we set --ag-line-height on\n // the row, which is picked up by the theme CSS and is used in a calc\n // for the CSS line-height property, which makes sure the line-height is\n // not bigger than the row height, otherwise the row text would not fit.\n // We do not use rowNode.rowHeight here, as this could be the result of autoHeight,\n // and we found using the autoHeight result causes a loop, where changing the\n // line-height them impacts the cell height, resulting in a new autoHeight,\n // resulting in a new line-height and so on loop.\n // const heightFromFunc = this.gridOptionsService.getRowHeightForNode(this.rowNode).height;\n if (lineHeight) {\n gui.element.style.setProperty('--ag-line-height', lineHeight);\n }\n });\n };\n RowCtrl.prototype.addEventListener = function (eventType, listener) {\n _super.prototype.addEventListener.call(this, eventType, listener);\n };\n RowCtrl.prototype.removeEventListener = function (eventType, listener) {\n _super.prototype.removeEventListener.call(this, eventType, listener);\n };\n // note - this is NOT called by context, as we don't wire / unwire the CellComp for performance reasons.\n RowCtrl.prototype.destroyFirstPass = function () {\n this.active = false;\n // why do we have this method? shouldn't everything below be added as a destroy func beside\n // the corresponding create logic?\n if (this.gridOptionsService.isAnimateRows()) {\n this.setupRemoveAnimation();\n }\n this.rowNode.setHovered(false);\n var event = this.createRowEvent(Events.EVENT_VIRTUAL_ROW_REMOVED);\n this.dispatchEvent(event);\n this.beans.eventService.dispatchEvent(event);\n _super.prototype.destroy.call(this);\n };\n RowCtrl.prototype.setupRemoveAnimation = function () {\n // we don't animate sticky rows\n if (this.isSticky()) {\n return;\n }\n var rowStillVisibleJustNotInViewport = this.rowNode.rowTop != null;\n if (rowStillVisibleJustNotInViewport) {\n // if the row is not rendered, but in viewport, it means it has moved,\n // so we animate the row out. if the new location is very far away,\n // the animation will be so fast the row will look like it's just disappeared,\n // so instead we animate to a position just outside the viewport.\n var rowTop = this.roundRowTopToBounds(this.rowNode.rowTop);\n this.setRowTop(rowTop);\n }\n else {\n this.allRowGuis.forEach(function (gui) { return gui.rowComp.addOrRemoveCssClass('ag-opacity-zero', true); });\n }\n };\n RowCtrl.prototype.destroySecondPass = function () {\n this.allRowGuis.length = 0;\n var destroyCellCtrls = function (ctrls) {\n ctrls.list.forEach(function (c) { return c.destroy(); });\n return { list: [], map: {} };\n };\n this.centerCellCtrls = destroyCellCtrls(this.centerCellCtrls);\n this.leftCellCtrls = destroyCellCtrls(this.leftCellCtrls);\n this.rightCellCtrls = destroyCellCtrls(this.rightCellCtrls);\n };\n RowCtrl.prototype.setFocusedClasses = function (gui) {\n var _this = this;\n this.forEachGui(gui, function (gui) {\n gui.rowComp.addOrRemoveCssClass('ag-row-focus', _this.rowFocused);\n gui.rowComp.addOrRemoveCssClass('ag-row-no-focus', !_this.rowFocused);\n });\n };\n RowCtrl.prototype.onCellFocused = function () {\n this.onCellFocusChanged();\n };\n RowCtrl.prototype.onCellFocusCleared = function () {\n this.onCellFocusChanged();\n };\n RowCtrl.prototype.onCellFocusChanged = function () {\n var rowFocused = this.beans.focusService.isRowFocused(this.rowNode.rowIndex, this.rowNode.rowPinned);\n if (rowFocused !== this.rowFocused) {\n this.rowFocused = rowFocused;\n this.setFocusedClasses();\n }\n // if we are editing, then moving the focus out of a row will stop editing\n if (!rowFocused && this.editingRow) {\n this.stopEditing(false);\n }\n };\n RowCtrl.prototype.onPaginationChanged = function () {\n var currentPage = this.beans.paginationProxy.getCurrentPage();\n // it is possible this row is in the new page, but the page number has changed, which means\n // it needs to reposition itself relative to the new page\n if (this.paginationPage !== currentPage) {\n this.paginationPage = currentPage;\n this.onTopChanged();\n }\n this.refreshFirstAndLastRowStyles();\n };\n RowCtrl.prototype.onTopChanged = function () {\n this.setRowTop(this.rowNode.rowTop);\n };\n RowCtrl.prototype.onPaginationPixelOffsetChanged = function () {\n // the pixel offset is used when calculating rowTop to set on the row DIV\n this.onTopChanged();\n };\n // applies pagination offset, eg if on second page, and page height is 500px, then removes\n // 500px from the top position, so a row with rowTop 600px is displayed at location 100px.\n // reverse will take the offset away rather than add.\n RowCtrl.prototype.applyPaginationOffset = function (topPx, reverse) {\n if (reverse === void 0) { reverse = false; }\n if (this.rowNode.isRowPinned() || this.rowNode.sticky) {\n return topPx;\n }\n var pixelOffset = this.beans.paginationProxy.getPixelOffset();\n var multiplier = reverse ? 1 : -1;\n return topPx + (pixelOffset * multiplier);\n };\n RowCtrl.prototype.setRowTop = function (pixels) {\n // print layout uses normal flow layout for row positioning\n if (this.printLayout) {\n return;\n }\n // need to make sure rowTop is not null, as this can happen if the node was once\n // visible (ie parent group was expanded) but is now not visible\n if (exists(pixels)) {\n var afterPaginationPixels = this.applyPaginationOffset(pixels);\n var skipScaling = this.rowNode.isRowPinned() || this.rowNode.sticky;\n var afterScalingPixels = skipScaling ? afterPaginationPixels : this.beans.rowContainerHeightService.getRealPixelPosition(afterPaginationPixels);\n var topPx = afterScalingPixels + \"px\";\n this.setRowTopStyle(topPx);\n }\n };\n // the top needs to be set into the DOM element when the element is created, not updated afterwards.\n // otherwise the transition would not work, as it would be transitioning from zero (the unset value).\n // for example, suppose a row that is outside the viewport, then user does a filter to remove other rows\n // and this row now appears in the viewport, and the row moves up (ie it was under the viewport and not rendered,\n // but now is in the viewport) then a new RowComp is created, however it should have it's position initialised\n // to below the viewport, so the row will appear to animate up. if we didn't set the initial position at creation\n // time, the row would animate down (ie from position zero).\n RowCtrl.prototype.getInitialRowTop = function (rowContainerType) {\n var suppressRowTransform = this.gridOptionsService.is('suppressRowTransform');\n return suppressRowTransform ? this.getInitialRowTopShared(rowContainerType) : undefined;\n };\n RowCtrl.prototype.getInitialTransform = function (rowContainerType) {\n var suppressRowTransform = this.gridOptionsService.is('suppressRowTransform');\n return suppressRowTransform ? undefined : \"translateY(\" + this.getInitialRowTopShared(rowContainerType) + \")\";\n };\n RowCtrl.prototype.getInitialRowTopShared = function (rowContainerType) {\n // print layout uses normal flow layout for row positioning\n if (this.printLayout) {\n return '';\n }\n var rowTop;\n if (this.isSticky()) {\n rowTop = this.rowNode.stickyRowTop;\n }\n else {\n // if sliding in, we take the old row top. otherwise we just set the current row top.\n var pixels = this.slideInAnimation[rowContainerType] ? this.roundRowTopToBounds(this.rowNode.oldRowTop) : this.rowNode.rowTop;\n var afterPaginationPixels = this.applyPaginationOffset(pixels);\n // we don't apply scaling if row is pinned\n rowTop = this.rowNode.isRowPinned() ? afterPaginationPixels : this.beans.rowContainerHeightService.getRealPixelPosition(afterPaginationPixels);\n }\n return rowTop + 'px';\n };\n RowCtrl.prototype.setRowTopStyle = function (topPx) {\n var suppressRowTransform = this.gridOptionsService.is('suppressRowTransform');\n this.allRowGuis.forEach(function (gui) { return suppressRowTransform ?\n gui.rowComp.setTop(topPx) :\n gui.rowComp.setTransform(\"translateY(\" + topPx + \")\"); });\n };\n RowCtrl.prototype.getRowNode = function () {\n return this.rowNode;\n };\n RowCtrl.prototype.getCellCtrl = function (column) {\n // first up, check for cell directly linked to this column\n var res = null;\n this.getAllCellCtrls().forEach(function (cellCtrl) {\n if (cellCtrl.getColumn() == column) {\n res = cellCtrl;\n }\n });\n if (res != null) {\n return res;\n }\n // second up, if not found, then check for spanned cols.\n // we do this second (and not at the same time) as this is\n // more expensive, as spanning cols is a\n // infrequently used feature so we don't need to do this most\n // of the time\n this.getAllCellCtrls().forEach(function (cellCtrl) {\n if (cellCtrl.getColSpanningList().indexOf(column) >= 0) {\n res = cellCtrl;\n }\n });\n return res;\n };\n RowCtrl.prototype.onRowIndexChanged = function () {\n // we only bother updating if the rowIndex is present. if it is not present, it means this row\n // is child of a group node, and the group node was closed, it's the only way to have no row index.\n // when this happens, row is about to be de-rendered, so we don't care, rowComp is about to die!\n if (this.rowNode.rowIndex != null) {\n this.onCellFocusChanged();\n this.updateRowIndexes();\n this.postProcessCss();\n }\n };\n RowCtrl.prototype.getRowIndex = function () {\n return this.rowNode.getRowIndexString();\n };\n RowCtrl.prototype.updateRowIndexes = function (gui) {\n var rowIndexStr = this.rowNode.getRowIndexString();\n var headerRowCount = this.beans.headerNavigationService.getHeaderRowCount() + this.beans.filterManager.getHeaderRowCount();\n var rowIsEven = this.rowNode.rowIndex % 2 === 0;\n var ariaRowIndex = headerRowCount + this.rowNode.rowIndex + 1;\n this.forEachGui(gui, function (c) {\n c.rowComp.setRowIndex(rowIndexStr);\n c.rowComp.addOrRemoveCssClass('ag-row-even', rowIsEven);\n c.rowComp.addOrRemoveCssClass('ag-row-odd', !rowIsEven);\n setAriaRowIndex(c.element, ariaRowIndex);\n });\n };\n // returns the pinned left container, either the normal one, or the embedded full with one if exists\n RowCtrl.prototype.getPinnedLeftRowElement = function () {\n return this.leftGui ? this.leftGui.element : undefined;\n };\n // returns the pinned right container, either the normal one, or the embedded full with one if exists\n RowCtrl.prototype.getPinnedRightRowElement = function () {\n return this.rightGui ? this.rightGui.element : undefined;\n };\n // returns the body container, either the normal one, or the embedded full with one if exists\n RowCtrl.prototype.getBodyRowElement = function () {\n return this.centerGui ? this.centerGui.element : undefined;\n };\n // returns the full width container\n RowCtrl.prototype.getFullWidthRowElement = function () {\n return this.fullWidthGui ? this.fullWidthGui.element : undefined;\n };\n RowCtrl.DOM_DATA_KEY_ROW_CTRL = 'renderedRow';\n return RowCtrl;\n}(BeanStub));\n\nvar __extends$1V = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1Q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$k = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar RowContainerEventsFeature = /** @class */ (function (_super) {\n __extends$1V(RowContainerEventsFeature, _super);\n function RowContainerEventsFeature(element) {\n var _this = _super.call(this) || this;\n _this.element = element;\n return _this;\n }\n RowContainerEventsFeature.prototype.postConstruct = function () {\n this.addKeyboardListeners();\n this.addMouseListeners();\n this.mockContextMenuForIPad();\n };\n RowContainerEventsFeature.prototype.addKeyboardListeners = function () {\n var eventName = 'keydown';\n var listener = this.processKeyboardEvent.bind(this, eventName);\n this.addManagedListener(this.element, eventName, listener);\n };\n RowContainerEventsFeature.prototype.addMouseListeners = function () {\n var _this = this;\n var mouseDownEvent = isEventSupported('touchstart') ? 'touchstart' : 'mousedown';\n var eventNames = ['dblclick', 'contextmenu', 'mouseover', 'mouseout', 'click', mouseDownEvent];\n eventNames.forEach(function (eventName) {\n var listener = _this.processMouseEvent.bind(_this, eventName);\n _this.addManagedListener(_this.element, eventName, listener);\n });\n };\n RowContainerEventsFeature.prototype.processMouseEvent = function (eventName, mouseEvent) {\n if (!this.mouseEventService.isEventFromThisGrid(mouseEvent) ||\n isStopPropagationForAgGrid(mouseEvent)) {\n return;\n }\n var rowComp = this.getRowForEvent(mouseEvent);\n var cellCtrl = this.mouseEventService.getRenderedCellForEvent(mouseEvent);\n if (eventName === \"contextmenu\") {\n this.handleContextMenuMouseEvent(mouseEvent, null, rowComp, cellCtrl);\n }\n else {\n if (cellCtrl) {\n cellCtrl.onMouseEvent(eventName, mouseEvent);\n }\n if (rowComp) {\n rowComp.onMouseEvent(eventName, mouseEvent);\n }\n }\n };\n RowContainerEventsFeature.prototype.mockContextMenuForIPad = function () {\n var _this = this;\n // we do NOT want this when not in iPad, otherwise we will be doing\n if (!isIOSUserAgent()) {\n return;\n }\n var touchListener = new TouchListener(this.element);\n var longTapListener = function (event) {\n var rowComp = _this.getRowForEvent(event.touchEvent);\n var cellComp = _this.mouseEventService.getRenderedCellForEvent(event.touchEvent);\n _this.handleContextMenuMouseEvent(null, event.touchEvent, rowComp, cellComp);\n };\n this.addManagedListener(touchListener, TouchListener.EVENT_LONG_TAP, longTapListener);\n this.addDestroyFunc(function () { return touchListener.destroy(); });\n };\n RowContainerEventsFeature.prototype.getRowForEvent = function (event) {\n var sourceElement = event.target;\n while (sourceElement) {\n var rowCon = this.gridOptionsService.getDomData(sourceElement, RowCtrl.DOM_DATA_KEY_ROW_CTRL);\n if (rowCon) {\n return rowCon;\n }\n sourceElement = sourceElement.parentElement;\n }\n return null;\n };\n RowContainerEventsFeature.prototype.handleContextMenuMouseEvent = function (mouseEvent, touchEvent, rowComp, cellCtrl) {\n var rowNode = rowComp ? rowComp.getRowNode() : null;\n var column = cellCtrl ? cellCtrl.getColumn() : null;\n var value = null;\n if (column) {\n var event_1 = mouseEvent ? mouseEvent : touchEvent;\n cellCtrl.dispatchCellContextMenuEvent(event_1);\n value = this.valueService.getValue(column, rowNode);\n }\n // if user clicked on a cell, anchor to that cell, otherwise anchor to the grid panel\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n var anchorToElement = cellCtrl ? cellCtrl.getGui() : gridBodyCon.getGridBodyElement();\n if (this.contextMenuFactory) {\n this.contextMenuFactory.onContextMenu(mouseEvent, touchEvent, rowNode, column, value, anchorToElement);\n }\n };\n RowContainerEventsFeature.prototype.getControlsForEventTarget = function (target) {\n return {\n cellCtrl: getCtrlForEventTarget(this.gridOptionsService, target, CellCtrl.DOM_DATA_KEY_CELL_CTRL),\n rowCtrl: getCtrlForEventTarget(this.gridOptionsService, target, RowCtrl.DOM_DATA_KEY_ROW_CTRL)\n };\n };\n RowContainerEventsFeature.prototype.processKeyboardEvent = function (eventName, keyboardEvent) {\n var _a = this.getControlsForEventTarget(keyboardEvent.target), cellCtrl = _a.cellCtrl, rowCtrl = _a.rowCtrl;\n if (keyboardEvent.defaultPrevented) {\n return;\n }\n if (cellCtrl) {\n this.processCellKeyboardEvent(cellCtrl, eventName, keyboardEvent);\n }\n else if (rowCtrl && rowCtrl.isFullWidth()) {\n this.processFullWidthRowKeyboardEvent(rowCtrl, eventName, keyboardEvent);\n }\n };\n RowContainerEventsFeature.prototype.processCellKeyboardEvent = function (cellCtrl, eventName, keyboardEvent) {\n var rowNode = cellCtrl.getRowNode();\n var column = cellCtrl.getColumn();\n var editing = cellCtrl.isEditing();\n var gridProcessingAllowed = !isUserSuppressingKeyboardEvent(this.gridOptionsService, keyboardEvent, rowNode, column, editing);\n if (gridProcessingAllowed) {\n if (eventName === 'keydown') {\n // first see if it's a scroll key, page up / down, home / end etc\n var wasScrollKey = !editing && this.navigationService.handlePageScrollingKey(keyboardEvent);\n // if not a scroll key, then we pass onto cell\n if (!wasScrollKey) {\n cellCtrl.onKeyDown(keyboardEvent);\n }\n // perform clipboard and undo / redo operations\n this.doGridOperations(keyboardEvent, cellCtrl.isEditing());\n if (isEventFromPrintableCharacter(keyboardEvent)) {\n cellCtrl.processCharacter(keyboardEvent);\n }\n }\n }\n if (eventName === 'keydown') {\n var cellKeyDownEvent = cellCtrl.createEvent(keyboardEvent, Events.EVENT_CELL_KEY_DOWN);\n this.eventService.dispatchEvent(cellKeyDownEvent);\n }\n };\n RowContainerEventsFeature.prototype.processFullWidthRowKeyboardEvent = function (rowComp, eventName, keyboardEvent) {\n var rowNode = rowComp.getRowNode();\n var focusedCell = this.focusService.getFocusedCell();\n var column = (focusedCell && focusedCell.column);\n var gridProcessingAllowed = !isUserSuppressingKeyboardEvent(this.gridOptionsService, keyboardEvent, rowNode, column, false);\n if (gridProcessingAllowed) {\n var key = keyboardEvent.key;\n if (eventName === 'keydown') {\n switch (key) {\n case KeyCode.PAGE_HOME:\n case KeyCode.PAGE_END:\n case KeyCode.PAGE_UP:\n case KeyCode.PAGE_DOWN:\n this.navigationService.handlePageScrollingKey(keyboardEvent, true);\n break;\n case KeyCode.UP:\n case KeyCode.DOWN:\n rowComp.onKeyboardNavigate(keyboardEvent);\n break;\n case KeyCode.TAB:\n rowComp.onTabKeyDown(keyboardEvent);\n break;\n }\n }\n }\n if (eventName === 'keydown') {\n var cellKeyDownEvent = rowComp.createRowEvent(Events.EVENT_CELL_KEY_DOWN, keyboardEvent);\n this.eventService.dispatchEvent(cellKeyDownEvent);\n }\n };\n RowContainerEventsFeature.prototype.doGridOperations = function (keyboardEvent, editing) {\n // check if ctrl or meta key pressed\n if (!keyboardEvent.ctrlKey && !keyboardEvent.metaKey) {\n return;\n }\n // if the cell the event came from is editing, then we do not\n // want to do the default shortcut keys, otherwise the editor\n // (eg a text field) would not be able to do the normal cut/copy/paste\n if (editing) {\n return;\n }\n // for copy / paste, we don't want to execute when the event\n // was from a child grid (happens in master detail)\n if (!this.mouseEventService.isEventFromThisGrid(keyboardEvent)) {\n return;\n }\n var keyCode = normaliseQwertyAzerty(keyboardEvent);\n if (keyCode === KeyCode.A) {\n return this.onCtrlAndA(keyboardEvent);\n }\n if (keyCode === KeyCode.C) {\n return this.onCtrlAndC(keyboardEvent);\n }\n if (keyCode === KeyCode.D) {\n return this.onCtrlAndD(keyboardEvent);\n }\n if (keyCode === KeyCode.V) {\n return this.onCtrlAndV(keyboardEvent);\n }\n if (keyCode === KeyCode.X) {\n return this.onCtrlAndX(keyboardEvent);\n }\n if (keyCode === KeyCode.Y) {\n return this.onCtrlAndY();\n }\n if (keyCode === KeyCode.Z) {\n return this.onCtrlAndZ(keyboardEvent);\n }\n };\n RowContainerEventsFeature.prototype.onCtrlAndA = function (event) {\n var _a = this, pinnedRowModel = _a.pinnedRowModel, paginationProxy = _a.paginationProxy, rangeService = _a.rangeService;\n if (rangeService && paginationProxy.isRowsToRender()) {\n var _b = __read$k([\n pinnedRowModel.isEmpty('top'),\n pinnedRowModel.isEmpty('bottom')\n ], 2), isEmptyPinnedTop = _b[0], isEmptyPinnedBottom = _b[1];\n var floatingStart = isEmptyPinnedTop ? null : 'top';\n var floatingEnd = void 0;\n var rowEnd = void 0;\n if (isEmptyPinnedBottom) {\n floatingEnd = null;\n rowEnd = this.paginationProxy.getRowCount() - 1;\n }\n else {\n floatingEnd = 'bottom';\n rowEnd = pinnedRowModel.getPinnedBottomRowData().length - 1;\n }\n var allDisplayedColumns = this.columnModel.getAllDisplayedColumns();\n if (missingOrEmpty(allDisplayedColumns)) {\n return;\n }\n rangeService.setCellRange({\n rowStartIndex: 0,\n rowStartPinned: floatingStart,\n rowEndIndex: rowEnd,\n rowEndPinned: floatingEnd,\n columnStart: allDisplayedColumns[0],\n columnEnd: last(allDisplayedColumns)\n });\n }\n event.preventDefault();\n };\n RowContainerEventsFeature.prototype.onCtrlAndC = function (event) {\n if (!this.clipboardService || this.gridOptionsService.is('enableCellTextSelection')) {\n return;\n }\n var _a = this.getControlsForEventTarget(event.target), cellCtrl = _a.cellCtrl, rowCtrl = _a.rowCtrl;\n if ((cellCtrl === null || cellCtrl === void 0 ? void 0 : cellCtrl.isEditing()) || (rowCtrl === null || rowCtrl === void 0 ? void 0 : rowCtrl.isEditing())) {\n return;\n }\n event.preventDefault();\n this.clipboardService.copyToClipboard();\n };\n RowContainerEventsFeature.prototype.onCtrlAndX = function (event) {\n if (!this.clipboardService ||\n this.gridOptionsService.is('enableCellTextSelection') ||\n this.gridOptionsService.is('suppressCutToClipboard')) {\n return;\n }\n var _a = this.getControlsForEventTarget(event.target), cellCtrl = _a.cellCtrl, rowCtrl = _a.rowCtrl;\n if ((cellCtrl === null || cellCtrl === void 0 ? void 0 : cellCtrl.isEditing()) || (rowCtrl === null || rowCtrl === void 0 ? void 0 : rowCtrl.isEditing())) {\n return;\n }\n event.preventDefault();\n this.clipboardService.cutToClipboard(undefined, 'ui');\n };\n RowContainerEventsFeature.prototype.onCtrlAndV = function (event) {\n var _a = this.getControlsForEventTarget(event.target), cellCtrl = _a.cellCtrl, rowCtrl = _a.rowCtrl;\n if ((cellCtrl === null || cellCtrl === void 0 ? void 0 : cellCtrl.isEditing()) || (rowCtrl === null || rowCtrl === void 0 ? void 0 : rowCtrl.isEditing())) {\n return;\n }\n if (this.clipboardService && !this.gridOptionsService.is('suppressClipboardPaste')) {\n this.clipboardService.pasteFromClipboard();\n }\n };\n RowContainerEventsFeature.prototype.onCtrlAndD = function (event) {\n if (this.clipboardService && !this.gridOptionsService.is('suppressClipboardPaste')) {\n this.clipboardService.copyRangeDown();\n }\n event.preventDefault();\n };\n RowContainerEventsFeature.prototype.onCtrlAndZ = function (event) {\n if (!this.gridOptionsService.is('undoRedoCellEditing')) {\n return;\n }\n event.preventDefault();\n if (event.shiftKey) {\n this.undoRedoService.redo('ui');\n }\n else {\n this.undoRedoService.undo('ui');\n }\n };\n RowContainerEventsFeature.prototype.onCtrlAndY = function () {\n this.undoRedoService.redo('ui');\n };\n __decorate$1Q([\n Autowired('mouseEventService')\n ], RowContainerEventsFeature.prototype, \"mouseEventService\", void 0);\n __decorate$1Q([\n Autowired('valueService')\n ], RowContainerEventsFeature.prototype, \"valueService\", void 0);\n __decorate$1Q([\n Optional('contextMenuFactory')\n ], RowContainerEventsFeature.prototype, \"contextMenuFactory\", void 0);\n __decorate$1Q([\n Autowired('ctrlsService')\n ], RowContainerEventsFeature.prototype, \"ctrlsService\", void 0);\n __decorate$1Q([\n Autowired('navigationService')\n ], RowContainerEventsFeature.prototype, \"navigationService\", void 0);\n __decorate$1Q([\n Autowired('focusService')\n ], RowContainerEventsFeature.prototype, \"focusService\", void 0);\n __decorate$1Q([\n Autowired('undoRedoService')\n ], RowContainerEventsFeature.prototype, \"undoRedoService\", void 0);\n __decorate$1Q([\n Autowired('columnModel')\n ], RowContainerEventsFeature.prototype, \"columnModel\", void 0);\n __decorate$1Q([\n Autowired('paginationProxy')\n ], RowContainerEventsFeature.prototype, \"paginationProxy\", void 0);\n __decorate$1Q([\n Autowired('pinnedRowModel')\n ], RowContainerEventsFeature.prototype, \"pinnedRowModel\", void 0);\n __decorate$1Q([\n Optional('rangeService')\n ], RowContainerEventsFeature.prototype, \"rangeService\", void 0);\n __decorate$1Q([\n Optional('clipboardService')\n ], RowContainerEventsFeature.prototype, \"clipboardService\", void 0);\n __decorate$1Q([\n PostConstruct\n ], RowContainerEventsFeature.prototype, \"postConstruct\", null);\n return RowContainerEventsFeature;\n}(BeanStub));\n\nvar __extends$1U = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1P = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// listens to changes in the center viewport size, for column and row virtualisation,\n// and adjusts grid as necessary. there are two viewports, one for horizontal and one for\n// vertical scrolling.\nvar ViewportSizeFeature = /** @class */ (function (_super) {\n __extends$1U(ViewportSizeFeature, _super);\n function ViewportSizeFeature(centerContainerCtrl) {\n var _this = _super.call(this) || this;\n _this.centerContainerCtrl = centerContainerCtrl;\n return _this;\n }\n ViewportSizeFeature.prototype.postConstruct = function () {\n var _this = this;\n this.ctrlsService.whenReady(function () {\n _this.gridBodyCtrl = _this.ctrlsService.getGridBodyCtrl();\n _this.listenForResize();\n });\n this.addManagedListener(this.eventService, Events.EVENT_SCROLLBAR_WIDTH_CHANGED, this.onScrollbarWidthChanged.bind(this));\n };\n ViewportSizeFeature.prototype.listenForResize = function () {\n var _this = this;\n var listener = function () { return _this.onCenterViewportResized(); };\n // centerContainer gets horizontal resizes\n this.centerContainerCtrl.registerViewportResizeListener(listener);\n // eBodyViewport gets vertical resizes\n this.gridBodyCtrl.registerBodyViewportResizeListener(listener);\n };\n ViewportSizeFeature.prototype.onScrollbarWidthChanged = function () {\n this.checkViewportAndScrolls();\n };\n ViewportSizeFeature.prototype.onCenterViewportResized = function () {\n if (this.centerContainerCtrl.isViewportVisible()) {\n this.checkViewportAndScrolls();\n var newWidth = this.centerContainerCtrl.getCenterWidth();\n if (newWidth !== this.centerWidth) {\n this.centerWidth = newWidth;\n this.columnModel.refreshFlexedColumns({ viewportWidth: this.centerWidth, updateBodyWidths: true, fireResizedEvent: true });\n }\n }\n else {\n this.bodyHeight = 0;\n }\n };\n // gets called every time the viewport size changes. we use this to check visibility of scrollbars\n // in the grid panel, and also to check size and position of viewport for row and column virtualisation.\n ViewportSizeFeature.prototype.checkViewportAndScrolls = function () {\n // results in updating anything that depends on scroll showing\n this.updateScrollVisibleService();\n // fires event if height changes, used by PaginationService, HeightScalerService, RowRenderer\n this.checkBodyHeight();\n // check for virtual columns for ColumnController\n this.onHorizontalViewportChanged();\n this.gridBodyCtrl.getScrollFeature().checkScrollLeft();\n };\n ViewportSizeFeature.prototype.getBodyHeight = function () {\n return this.bodyHeight;\n };\n ViewportSizeFeature.prototype.checkBodyHeight = function () {\n var eBodyViewport = this.gridBodyCtrl.getBodyViewportElement();\n var bodyHeight = getInnerHeight(eBodyViewport);\n if (this.bodyHeight !== bodyHeight) {\n this.bodyHeight = bodyHeight;\n var event_1 = {\n type: Events.EVENT_BODY_HEIGHT_CHANGED\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n ViewportSizeFeature.prototype.updateScrollVisibleService = function () {\n // because of column animation (which takes 200ms), we have to do this twice.\n // eg if user removes cols anywhere except at the RHS, then the cols on the RHS\n // will animate to the left to fill the gap. this animation means just after\n // the cols are removed, the remaining cols are still in the original location\n // at the start of the animation, so pre animation the H scrollbar is still needed,\n // but post animation it is not.\n this.updateScrollVisibleServiceImpl();\n setTimeout(this.updateScrollVisibleServiceImpl.bind(this), 500);\n };\n ViewportSizeFeature.prototype.updateScrollVisibleServiceImpl = function () {\n var params = {\n horizontalScrollShowing: this.isHorizontalScrollShowing(),\n verticalScrollShowing: this.gridBodyCtrl.isVerticalScrollShowing()\n };\n this.scrollVisibleService.setScrollsVisible(params);\n };\n ViewportSizeFeature.prototype.isHorizontalScrollShowing = function () {\n return this.centerContainerCtrl.isHorizontalScrollShowing();\n };\n // this gets called whenever a change in the viewport, so we can inform column controller it has to work\n // out the virtual columns again. gets called from following locations:\n // + ensureColVisible, scroll, init, layoutChanged, displayedColumnsChanged\n ViewportSizeFeature.prototype.onHorizontalViewportChanged = function () {\n var scrollWidth = this.centerContainerCtrl.getCenterWidth();\n var scrollPosition = this.centerContainerCtrl.getViewportScrollLeft();\n this.columnModel.setViewportPosition(scrollWidth, scrollPosition);\n };\n __decorate$1P([\n Autowired('ctrlsService')\n ], ViewportSizeFeature.prototype, \"ctrlsService\", void 0);\n __decorate$1P([\n Autowired('columnModel')\n ], ViewportSizeFeature.prototype, \"columnModel\", void 0);\n __decorate$1P([\n Autowired('scrollVisibleService')\n ], ViewportSizeFeature.prototype, \"scrollVisibleService\", void 0);\n __decorate$1P([\n PostConstruct\n ], ViewportSizeFeature.prototype, \"postConstruct\", null);\n return ViewportSizeFeature;\n}(BeanStub));\n\nvar __extends$1T = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1O = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SetPinnedLeftWidthFeature = /** @class */ (function (_super) {\n __extends$1T(SetPinnedLeftWidthFeature, _super);\n function SetPinnedLeftWidthFeature(element) {\n var _this = _super.call(this) || this;\n _this.element = element;\n return _this;\n }\n SetPinnedLeftWidthFeature.prototype.postConstruct = function () {\n this.addManagedListener(this.eventService, Events.EVENT_LEFT_PINNED_WIDTH_CHANGED, this.onPinnedLeftWidthChanged.bind(this));\n };\n SetPinnedLeftWidthFeature.prototype.onPinnedLeftWidthChanged = function () {\n var leftWidth = this.pinnedWidthService.getPinnedLeftWidth();\n var displayed = leftWidth > 0;\n setDisplayed(this.element, displayed);\n setFixedWidth(this.element, leftWidth);\n };\n SetPinnedLeftWidthFeature.prototype.getWidth = function () {\n return this.pinnedWidthService.getPinnedLeftWidth();\n };\n __decorate$1O([\n Autowired('pinnedWidthService')\n ], SetPinnedLeftWidthFeature.prototype, \"pinnedWidthService\", void 0);\n __decorate$1O([\n PostConstruct\n ], SetPinnedLeftWidthFeature.prototype, \"postConstruct\", null);\n return SetPinnedLeftWidthFeature;\n}(BeanStub));\n\nvar __extends$1S = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1N = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SetPinnedRightWidthFeature = /** @class */ (function (_super) {\n __extends$1S(SetPinnedRightWidthFeature, _super);\n function SetPinnedRightWidthFeature(element) {\n var _this = _super.call(this) || this;\n _this.element = element;\n return _this;\n }\n SetPinnedRightWidthFeature.prototype.postConstruct = function () {\n this.addManagedListener(this.eventService, Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED, this.onPinnedRightWidthChanged.bind(this));\n };\n SetPinnedRightWidthFeature.prototype.onPinnedRightWidthChanged = function () {\n var rightWidth = this.pinnedWidthService.getPinnedRightWidth();\n var displayed = rightWidth > 0;\n setDisplayed(this.element, displayed);\n setFixedWidth(this.element, rightWidth);\n };\n SetPinnedRightWidthFeature.prototype.getWidth = function () {\n return this.pinnedWidthService.getPinnedRightWidth();\n };\n __decorate$1N([\n Autowired('pinnedWidthService')\n ], SetPinnedRightWidthFeature.prototype, \"pinnedWidthService\", void 0);\n __decorate$1N([\n PostConstruct\n ], SetPinnedRightWidthFeature.prototype, \"postConstruct\", null);\n return SetPinnedRightWidthFeature;\n}(BeanStub));\n\nvar __extends$1R = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1M = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SetHeightFeature = /** @class */ (function (_super) {\n __extends$1R(SetHeightFeature, _super);\n function SetHeightFeature(eContainer, eViewport) {\n var _this = _super.call(this) || this;\n _this.eContainer = eContainer;\n _this.eViewport = eViewport;\n return _this;\n }\n SetHeightFeature.prototype.postConstruct = function () {\n this.addManagedListener(this.eventService, Events.EVENT_ROW_CONTAINER_HEIGHT_CHANGED, this.onHeightChanged.bind(this));\n };\n SetHeightFeature.prototype.onHeightChanged = function () {\n var height = this.maxDivHeightScaler.getUiContainerHeight();\n var heightString = height != null ? height + \"px\" : \"\";\n this.eContainer.style.height = heightString;\n if (this.eViewport) {\n this.eViewport.style.height = heightString;\n }\n };\n __decorate$1M([\n Autowired(\"rowContainerHeightService\")\n ], SetHeightFeature.prototype, \"maxDivHeightScaler\", void 0);\n __decorate$1M([\n PostConstruct\n ], SetHeightFeature.prototype, \"postConstruct\", null);\n return SetHeightFeature;\n}(BeanStub));\n\nvar __extends$1Q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1L = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DragListenerFeature = /** @class */ (function (_super) {\n __extends$1Q(DragListenerFeature, _super);\n function DragListenerFeature(eContainer) {\n var _this = _super.call(this) || this;\n _this.eContainer = eContainer;\n return _this;\n }\n DragListenerFeature.prototype.postConstruct = function () {\n var _this = this;\n if (!this.gridOptionsService.is('enableRangeSelection') || // no range selection if no property\n missing(this.rangeService) // no range selection if not enterprise version\n ) {\n return;\n }\n var params = {\n eElement: this.eContainer,\n onDragStart: this.rangeService.onDragStart.bind(this.rangeService),\n onDragStop: this.rangeService.onDragStop.bind(this.rangeService),\n onDragging: this.rangeService.onDragging.bind(this.rangeService)\n };\n this.dragService.addDragSource(params);\n this.addDestroyFunc(function () { return _this.dragService.removeDragSource(params); });\n };\n __decorate$1L([\n Optional('rangeService')\n ], DragListenerFeature.prototype, \"rangeService\", void 0);\n __decorate$1L([\n Autowired('dragService')\n ], DragListenerFeature.prototype, \"dragService\", void 0);\n __decorate$1L([\n PostConstruct\n ], DragListenerFeature.prototype, \"postConstruct\", null);\n return DragListenerFeature;\n}(BeanStub));\n\nvar __extends$1P = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1K = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CenterWidthFeature = /** @class */ (function (_super) {\n __extends$1P(CenterWidthFeature, _super);\n function CenterWidthFeature(callback, addSpacer) {\n if (addSpacer === void 0) { addSpacer = false; }\n var _this = _super.call(this) || this;\n _this.callback = callback;\n _this.addSpacer = addSpacer;\n return _this;\n }\n CenterWidthFeature.prototype.postConstruct = function () {\n var listener = this.setWidth.bind(this);\n this.addManagedPropertyListener('domLayout', listener);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_LEFT_PINNED_WIDTH_CHANGED, listener);\n if (this.addSpacer) {\n this.addManagedListener(this.eventService, Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_SCROLL_VISIBILITY_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_SCROLLBAR_WIDTH_CHANGED, listener);\n }\n this.setWidth();\n };\n CenterWidthFeature.prototype.setWidth = function () {\n var columnModel = this.columnModel;\n var printLayout = this.gridOptionsService.isDomLayout('print');\n var centerWidth = columnModel.getBodyContainerWidth();\n var leftWidth = columnModel.getDisplayedColumnsLeftWidth();\n var rightWidth = columnModel.getDisplayedColumnsRightWidth();\n var totalWidth;\n if (printLayout) {\n totalWidth = centerWidth + leftWidth + rightWidth;\n }\n else {\n totalWidth = centerWidth;\n if (this.addSpacer) {\n var relevantWidth = this.gridOptionsService.is('enableRtl') ? leftWidth : rightWidth;\n if (relevantWidth === 0 && this.scrollVisibleService.isVerticalScrollShowing()) {\n totalWidth += this.gridOptionsService.getScrollbarWidth();\n }\n }\n }\n this.callback(totalWidth);\n };\n __decorate$1K([\n Autowired('columnModel')\n ], CenterWidthFeature.prototype, \"columnModel\", void 0);\n __decorate$1K([\n Autowired('scrollVisibleService')\n ], CenterWidthFeature.prototype, \"scrollVisibleService\", void 0);\n __decorate$1K([\n PostConstruct\n ], CenterWidthFeature.prototype, \"postConstruct\", null);\n return CenterWidthFeature;\n}(BeanStub));\n\nvar __extends$1O = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1J = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$j = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$g = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar RowContainerName;\n(function (RowContainerName) {\n RowContainerName[\"LEFT\"] = \"left\";\n RowContainerName[\"RIGHT\"] = \"right\";\n RowContainerName[\"CENTER\"] = \"center\";\n RowContainerName[\"FULL_WIDTH\"] = \"fullWidth\";\n RowContainerName[\"TOP_LEFT\"] = \"topLeft\";\n RowContainerName[\"TOP_RIGHT\"] = \"topRight\";\n RowContainerName[\"TOP_CENTER\"] = \"topCenter\";\n RowContainerName[\"TOP_FULL_WIDTH\"] = \"topFullWidth\";\n RowContainerName[\"STICKY_TOP_LEFT\"] = \"stickyTopLeft\";\n RowContainerName[\"STICKY_TOP_RIGHT\"] = \"stickyTopRight\";\n RowContainerName[\"STICKY_TOP_CENTER\"] = \"stickyTopCenter\";\n RowContainerName[\"STICKY_TOP_FULL_WIDTH\"] = \"stickyTopFullWidth\";\n RowContainerName[\"BOTTOM_LEFT\"] = \"bottomLeft\";\n RowContainerName[\"BOTTOM_RIGHT\"] = \"bottomRight\";\n RowContainerName[\"BOTTOM_CENTER\"] = \"bottomCenter\";\n RowContainerName[\"BOTTOM_FULL_WIDTH\"] = \"bottomFullWidth\";\n})(RowContainerName || (RowContainerName = {}));\nvar RowContainerType;\n(function (RowContainerType) {\n RowContainerType[\"LEFT\"] = \"left\";\n RowContainerType[\"RIGHT\"] = \"right\";\n RowContainerType[\"CENTER\"] = \"center\";\n RowContainerType[\"FULL_WIDTH\"] = \"fullWidth\";\n})(RowContainerType || (RowContainerType = {}));\nfunction getRowContainerTypeForName(name) {\n switch (name) {\n case RowContainerName.CENTER:\n case RowContainerName.TOP_CENTER:\n case RowContainerName.STICKY_TOP_CENTER:\n case RowContainerName.BOTTOM_CENTER:\n return RowContainerType.CENTER;\n case RowContainerName.LEFT:\n case RowContainerName.TOP_LEFT:\n case RowContainerName.STICKY_TOP_LEFT:\n case RowContainerName.BOTTOM_LEFT:\n return RowContainerType.LEFT;\n case RowContainerName.RIGHT:\n case RowContainerName.TOP_RIGHT:\n case RowContainerName.STICKY_TOP_RIGHT:\n case RowContainerName.BOTTOM_RIGHT:\n return RowContainerType.RIGHT;\n case RowContainerName.FULL_WIDTH:\n case RowContainerName.TOP_FULL_WIDTH:\n case RowContainerName.STICKY_TOP_FULL_WIDTH:\n case RowContainerName.BOTTOM_FULL_WIDTH:\n return RowContainerType.FULL_WIDTH;\n default:\n throw Error('Invalid Row Container Type');\n }\n}\nvar ContainerCssClasses = convertToMap([\n [RowContainerName.CENTER, 'ag-center-cols-container'],\n [RowContainerName.LEFT, 'ag-pinned-left-cols-container'],\n [RowContainerName.RIGHT, 'ag-pinned-right-cols-container'],\n [RowContainerName.FULL_WIDTH, 'ag-full-width-container'],\n [RowContainerName.TOP_CENTER, 'ag-floating-top-container'],\n [RowContainerName.TOP_LEFT, 'ag-pinned-left-floating-top'],\n [RowContainerName.TOP_RIGHT, 'ag-pinned-right-floating-top'],\n [RowContainerName.TOP_FULL_WIDTH, 'ag-floating-top-full-width-container'],\n [RowContainerName.STICKY_TOP_CENTER, 'ag-sticky-top-container'],\n [RowContainerName.STICKY_TOP_LEFT, 'ag-pinned-left-sticky-top'],\n [RowContainerName.STICKY_TOP_RIGHT, 'ag-pinned-right-sticky-top'],\n [RowContainerName.STICKY_TOP_FULL_WIDTH, 'ag-sticky-top-full-width-container'],\n [RowContainerName.BOTTOM_CENTER, 'ag-floating-bottom-container'],\n [RowContainerName.BOTTOM_LEFT, 'ag-pinned-left-floating-bottom'],\n [RowContainerName.BOTTOM_RIGHT, 'ag-pinned-right-floating-bottom'],\n [RowContainerName.BOTTOM_FULL_WIDTH, 'ag-floating-bottom-full-width-container'],\n]);\nvar ViewportCssClasses = convertToMap([\n [RowContainerName.CENTER, 'ag-center-cols-viewport'],\n [RowContainerName.TOP_CENTER, 'ag-floating-top-viewport'],\n [RowContainerName.STICKY_TOP_CENTER, 'ag-sticky-top-viewport'],\n [RowContainerName.BOTTOM_CENTER, 'ag-floating-bottom-viewport'],\n]);\nvar RowContainerCtrl = /** @class */ (function (_super) {\n __extends$1O(RowContainerCtrl, _super);\n function RowContainerCtrl(name) {\n var _this = _super.call(this) || this;\n _this.visible = true;\n // Maintaining a constant reference enables optimization in React.\n _this.EMPTY_CTRLS = [];\n _this.name = name;\n _this.isFullWithContainer =\n _this.name === RowContainerName.TOP_FULL_WIDTH\n || _this.name === RowContainerName.STICKY_TOP_FULL_WIDTH\n || _this.name === RowContainerName.BOTTOM_FULL_WIDTH\n || _this.name === RowContainerName.FULL_WIDTH;\n return _this;\n }\n RowContainerCtrl.getRowContainerCssClasses = function (name) {\n var containerClass = ContainerCssClasses.get(name);\n var viewportClass = ViewportCssClasses.get(name);\n return { container: containerClass, viewport: viewportClass };\n };\n RowContainerCtrl.getPinned = function (name) {\n switch (name) {\n case RowContainerName.BOTTOM_LEFT:\n case RowContainerName.TOP_LEFT:\n case RowContainerName.STICKY_TOP_LEFT:\n case RowContainerName.LEFT:\n return 'left';\n case RowContainerName.BOTTOM_RIGHT:\n case RowContainerName.TOP_RIGHT:\n case RowContainerName.STICKY_TOP_RIGHT:\n case RowContainerName.RIGHT:\n return 'right';\n default:\n return null;\n }\n };\n RowContainerCtrl.prototype.postConstruct = function () {\n var _this = this;\n this.enableRtl = this.gridOptionsService.is('enableRtl');\n this.embedFullWidthRows = this.gridOptionsService.is('embedFullWidthRows');\n this.forContainers([RowContainerName.CENTER], function () { return _this.viewportSizeFeature = _this.createManagedBean(new ViewportSizeFeature(_this)); });\n };\n RowContainerCtrl.prototype.registerWithCtrlsService = function () {\n switch (this.name) {\n case RowContainerName.CENTER:\n this.ctrlsService.registerCenterRowContainerCtrl(this);\n break;\n case RowContainerName.LEFT:\n this.ctrlsService.registerLeftRowContainerCtrl(this);\n break;\n case RowContainerName.RIGHT:\n this.ctrlsService.registerRightRowContainerCtrl(this);\n break;\n case RowContainerName.TOP_CENTER:\n this.ctrlsService.registerTopCenterRowContainerCtrl(this);\n break;\n case RowContainerName.TOP_LEFT:\n this.ctrlsService.registerTopLeftRowContainerCon(this);\n break;\n case RowContainerName.TOP_RIGHT:\n this.ctrlsService.registerTopRightRowContainerCtrl(this);\n break;\n case RowContainerName.STICKY_TOP_CENTER:\n this.ctrlsService.registerStickyTopCenterRowContainerCtrl(this);\n break;\n case RowContainerName.STICKY_TOP_LEFT:\n this.ctrlsService.registerStickyTopLeftRowContainerCon(this);\n break;\n case RowContainerName.STICKY_TOP_RIGHT:\n this.ctrlsService.registerStickyTopRightRowContainerCtrl(this);\n break;\n case RowContainerName.BOTTOM_CENTER:\n this.ctrlsService.registerBottomCenterRowContainerCtrl(this);\n break;\n case RowContainerName.BOTTOM_LEFT:\n this.ctrlsService.registerBottomLeftRowContainerCtrl(this);\n break;\n case RowContainerName.BOTTOM_RIGHT:\n this.ctrlsService.registerBottomRightRowContainerCtrl(this);\n break;\n }\n };\n RowContainerCtrl.prototype.forContainers = function (names, callback) {\n if (names.indexOf(this.name) >= 0) {\n callback();\n }\n };\n RowContainerCtrl.prototype.getContainerElement = function () {\n return this.eContainer;\n };\n RowContainerCtrl.prototype.getViewportSizeFeature = function () {\n return this.viewportSizeFeature;\n };\n RowContainerCtrl.prototype.setComp = function (view, eContainer, eViewport) {\n var _this = this;\n this.comp = view;\n this.eContainer = eContainer;\n this.eViewport = eViewport;\n this.createManagedBean(new RowContainerEventsFeature(this.eContainer));\n this.addPreventScrollWhileDragging();\n this.listenOnDomOrder();\n this.stopHScrollOnPinnedRows();\n var allTopNoFW = [RowContainerName.TOP_CENTER, RowContainerName.TOP_LEFT, RowContainerName.TOP_RIGHT];\n var allStickyTopNoFW = [RowContainerName.STICKY_TOP_CENTER, RowContainerName.STICKY_TOP_LEFT, RowContainerName.STICKY_TOP_RIGHT];\n var allBottomNoFW = [RowContainerName.BOTTOM_CENTER, RowContainerName.BOTTOM_LEFT, RowContainerName.BOTTOM_RIGHT];\n var allMiddleNoFW = [RowContainerName.CENTER, RowContainerName.LEFT, RowContainerName.RIGHT];\n var allNoFW = __spreadArray$g(__spreadArray$g(__spreadArray$g(__spreadArray$g([], __read$j(allTopNoFW)), __read$j(allBottomNoFW)), __read$j(allMiddleNoFW)), __read$j(allStickyTopNoFW));\n var allMiddle = [RowContainerName.CENTER, RowContainerName.LEFT, RowContainerName.RIGHT, RowContainerName.FULL_WIDTH];\n var allCenter = [RowContainerName.CENTER, RowContainerName.TOP_CENTER, RowContainerName.STICKY_TOP_CENTER, RowContainerName.BOTTOM_CENTER];\n var allLeft = [RowContainerName.LEFT, RowContainerName.BOTTOM_LEFT, RowContainerName.TOP_LEFT, RowContainerName.STICKY_TOP_LEFT];\n var allRight = [RowContainerName.RIGHT, RowContainerName.BOTTOM_RIGHT, RowContainerName.TOP_RIGHT, RowContainerName.STICKY_TOP_RIGHT];\n this.forContainers(allLeft, function () {\n _this.pinnedWidthFeature = _this.createManagedBean(new SetPinnedLeftWidthFeature(_this.eContainer));\n _this.addManagedListener(_this.eventService, Events.EVENT_LEFT_PINNED_WIDTH_CHANGED, function () { return _this.onPinnedWidthChanged(); });\n });\n this.forContainers(allRight, function () {\n _this.pinnedWidthFeature = _this.createManagedBean(new SetPinnedRightWidthFeature(_this.eContainer));\n _this.addManagedListener(_this.eventService, Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED, function () { return _this.onPinnedWidthChanged(); });\n });\n this.forContainers(allMiddle, function () { return _this.createManagedBean(new SetHeightFeature(_this.eContainer, _this.name === RowContainerName.CENTER ? eViewport : undefined)); });\n this.forContainers(allNoFW, function () { return _this.createManagedBean(new DragListenerFeature(_this.eContainer)); });\n this.forContainers(allCenter, function () { return _this.createManagedBean(new CenterWidthFeature(function (width) { return _this.comp.setContainerWidth(width + \"px\"); })); });\n if (isInvisibleScrollbar()) {\n this.forContainers([RowContainerName.CENTER], function () {\n var pinnedWidthChangedEvent = _this.enableRtl ? Events.EVENT_LEFT_PINNED_WIDTH_CHANGED : Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED;\n _this.addManagedListener(_this.eventService, pinnedWidthChangedEvent, function () { return _this.refreshPaddingForFakeScrollbar(); });\n });\n this.refreshPaddingForFakeScrollbar();\n }\n this.addListeners();\n this.registerWithCtrlsService();\n };\n RowContainerCtrl.prototype.refreshPaddingForFakeScrollbar = function () {\n var _a = this, enableRtl = _a.enableRtl, columnModel = _a.columnModel, eContainer = _a.eContainer;\n var sideToCheck = enableRtl ? RowContainerName.LEFT : RowContainerName.RIGHT;\n this.forContainers([RowContainerName.CENTER, sideToCheck], function () {\n var pinnedWidth = columnModel.getContainerWidth(sideToCheck);\n var marginSide = enableRtl ? 'marginLeft' : 'marginRight';\n eContainer.style[marginSide] = pinnedWidth ? '16px' : '0px';\n });\n };\n RowContainerCtrl.prototype.addListeners = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, function () { return _this.onDisplayedColumnsChanged(); });\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, function () { return _this.onDisplayedColumnsWidthChanged(); });\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_ROWS_CHANGED, function (params) { return _this.onDisplayedRowsChanged(params.afterScroll); });\n this.onDisplayedColumnsChanged();\n this.onDisplayedColumnsWidthChanged();\n this.onDisplayedRowsChanged();\n };\n RowContainerCtrl.prototype.listenOnDomOrder = function () {\n var _this = this;\n // sticky section must show rows in set order\n var allStickyContainers = [RowContainerName.STICKY_TOP_CENTER, RowContainerName.STICKY_TOP_LEFT, RowContainerName.STICKY_TOP_RIGHT, RowContainerName.STICKY_TOP_FULL_WIDTH];\n var isStickContainer = allStickyContainers.indexOf(this.name) >= 0;\n if (isStickContainer) {\n this.comp.setDomOrder(true);\n return;\n }\n var listener = function () {\n var isEnsureDomOrder = _this.gridOptionsService.is('ensureDomOrder');\n var isPrintLayout = _this.gridOptionsService.isDomLayout('print');\n _this.comp.setDomOrder(isEnsureDomOrder || isPrintLayout);\n };\n this.addManagedPropertyListener('domLayout', listener);\n listener();\n };\n // when editing a pinned row, if the cell is half outside the scrollable area, the browser can\n // scroll the column into view. we do not want this, the pinned sections should never scroll.\n // so we listen to scrolls on these containers and reset the scroll if we find one.\n RowContainerCtrl.prototype.stopHScrollOnPinnedRows = function () {\n var _this = this;\n this.forContainers([RowContainerName.TOP_CENTER, RowContainerName.STICKY_TOP_CENTER, RowContainerName.BOTTOM_CENTER], function () {\n var resetScrollLeft = function () { return _this.eViewport.scrollLeft = 0; };\n _this.addManagedListener(_this.eViewport, 'scroll', resetScrollLeft);\n });\n };\n RowContainerCtrl.prototype.onDisplayedColumnsChanged = function () {\n var _this = this;\n this.forContainers([RowContainerName.CENTER], function () { return _this.onHorizontalViewportChanged(); });\n };\n RowContainerCtrl.prototype.onDisplayedColumnsWidthChanged = function () {\n var _this = this;\n this.forContainers([RowContainerName.CENTER], function () { return _this.onHorizontalViewportChanged(); });\n };\n // this methods prevents the grid views from being scrolled while the dragService is being used\n // eg. the view should not scroll up and down while dragging rows using the rowDragComp.\n RowContainerCtrl.prototype.addPreventScrollWhileDragging = function () {\n var _this = this;\n var preventScroll = function (e) {\n if (_this.dragService.isDragging()) {\n if (e.cancelable) {\n e.preventDefault();\n }\n }\n };\n this.eContainer.addEventListener('touchmove', preventScroll, { passive: false });\n this.addDestroyFunc(function () { return _this.eContainer.removeEventListener('touchmove', preventScroll); });\n };\n // this gets called whenever a change in the viewport, so we can inform column controller it has to work\n // out the virtual columns again. gets called from following locations:\n // + ensureColVisible, scroll, init, layoutChanged, displayedColumnsChanged\n RowContainerCtrl.prototype.onHorizontalViewportChanged = function (afterScroll) {\n if (afterScroll === void 0) { afterScroll = false; }\n var scrollWidth = this.getCenterWidth();\n var scrollPosition = this.getCenterViewportScrollLeft();\n this.columnModel.setViewportPosition(scrollWidth, scrollPosition, afterScroll);\n };\n RowContainerCtrl.prototype.getCenterWidth = function () {\n return getInnerWidth(this.eViewport);\n };\n RowContainerCtrl.prototype.getCenterViewportScrollLeft = function () {\n // we defer to a util, as how you calculated scrollLeft when doing RTL depends on the browser\n return getScrollLeft(this.eViewport, this.enableRtl);\n };\n RowContainerCtrl.prototype.registerViewportResizeListener = function (listener) {\n var unsubscribeFromResize = this.resizeObserverService.observeResize(this.eViewport, listener);\n this.addDestroyFunc(function () { return unsubscribeFromResize(); });\n };\n RowContainerCtrl.prototype.isViewportVisible = function () {\n return isVisible(this.eViewport);\n };\n RowContainerCtrl.prototype.getViewportScrollLeft = function () {\n return getScrollLeft(this.eViewport, this.enableRtl);\n };\n RowContainerCtrl.prototype.isHorizontalScrollShowing = function () {\n var isAlwaysShowHorizontalScroll = this.gridOptionsService.is('alwaysShowHorizontalScroll');\n return isAlwaysShowHorizontalScroll || isHorizontalScrollShowing(this.eViewport);\n };\n RowContainerCtrl.prototype.getViewportElement = function () {\n return this.eViewport;\n };\n RowContainerCtrl.prototype.setContainerTranslateX = function (amount) {\n this.eContainer.style.transform = \"translateX(\" + amount + \"px)\";\n };\n RowContainerCtrl.prototype.getHScrollPosition = function () {\n var res = {\n left: this.eViewport.scrollLeft,\n right: this.eViewport.scrollLeft + this.eViewport.offsetWidth\n };\n return res;\n };\n RowContainerCtrl.prototype.setCenterViewportScrollLeft = function (value) {\n // we defer to a util, as how you calculated scrollLeft when doing RTL depends on the browser\n setScrollLeft(this.eViewport, value, this.enableRtl);\n };\n RowContainerCtrl.prototype.isContainerVisible = function () {\n var pinned = RowContainerCtrl.getPinned(this.name);\n return !pinned || (!!this.pinnedWidthFeature && this.pinnedWidthFeature.getWidth() > 0);\n };\n RowContainerCtrl.prototype.onPinnedWidthChanged = function () {\n var visible = this.isContainerVisible();\n if (this.visible != visible) {\n this.visible = visible;\n this.onDisplayedRowsChanged();\n }\n if (isInvisibleScrollbar()) {\n this.refreshPaddingForFakeScrollbar();\n }\n };\n RowContainerCtrl.prototype.onDisplayedRowsChanged = function (useFlushSync) {\n var _this = this;\n if (useFlushSync === void 0) { useFlushSync = false; }\n if (this.visible) {\n var printLayout_1 = this.gridOptionsService.isDomLayout('print');\n // this just justifies if the ctrl is in the correct place, this will be fed with zombie rows by the\n // row renderer, so should not block them as they still need to animate - the row renderer\n // will clean these up when they finish animating\n var doesRowMatch = function (rowCtrl) {\n var fullWidthRow = rowCtrl.isFullWidth();\n var embedFW = _this.embedFullWidthRows || printLayout_1;\n var match = _this.isFullWithContainer ?\n !embedFW && fullWidthRow\n : embedFW || !fullWidthRow;\n return match;\n };\n // this list contains either all pinned top, center or pinned bottom rows\n // this filters out rows not for this container, eg if it's a full with row, but we are not full with container\n var rowsThisContainer = this.getRowCtrls().filter(doesRowMatch);\n this.comp.setRowCtrls(rowsThisContainer, useFlushSync);\n }\n else {\n this.comp.setRowCtrls(this.EMPTY_CTRLS, false);\n }\n };\n RowContainerCtrl.prototype.getRowCtrls = function () {\n switch (this.name) {\n case RowContainerName.TOP_CENTER:\n case RowContainerName.TOP_LEFT:\n case RowContainerName.TOP_RIGHT:\n case RowContainerName.TOP_FULL_WIDTH:\n return this.rowRenderer.getTopRowCtrls();\n case RowContainerName.STICKY_TOP_CENTER:\n case RowContainerName.STICKY_TOP_LEFT:\n case RowContainerName.STICKY_TOP_RIGHT:\n case RowContainerName.STICKY_TOP_FULL_WIDTH:\n return this.rowRenderer.getStickyTopRowCtrls();\n case RowContainerName.BOTTOM_CENTER:\n case RowContainerName.BOTTOM_LEFT:\n case RowContainerName.BOTTOM_RIGHT:\n case RowContainerName.BOTTOM_FULL_WIDTH:\n return this.rowRenderer.getBottomRowCtrls();\n default:\n return this.rowRenderer.getCentreRowCtrls();\n }\n };\n __decorate$1J([\n Autowired('scrollVisibleService')\n ], RowContainerCtrl.prototype, \"scrollVisibleService\", void 0);\n __decorate$1J([\n Autowired('dragService')\n ], RowContainerCtrl.prototype, \"dragService\", void 0);\n __decorate$1J([\n Autowired('ctrlsService')\n ], RowContainerCtrl.prototype, \"ctrlsService\", void 0);\n __decorate$1J([\n Autowired('columnModel')\n ], RowContainerCtrl.prototype, \"columnModel\", void 0);\n __decorate$1J([\n Autowired('resizeObserverService')\n ], RowContainerCtrl.prototype, \"resizeObserverService\", void 0);\n __decorate$1J([\n Autowired('animationFrameService')\n ], RowContainerCtrl.prototype, \"animationFrameService\", void 0);\n __decorate$1J([\n Autowired('rowRenderer')\n ], RowContainerCtrl.prototype, \"rowRenderer\", void 0);\n __decorate$1J([\n PostConstruct\n ], RowContainerCtrl.prototype, \"postConstruct\", null);\n return RowContainerCtrl;\n}(BeanStub));\n\nvar __extends$1N = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1I = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GRID_BODY_TEMPLATE = /* html */ \"
\\n \\n
\\n \\n \\n \\n \\n
\\n
\\n
\\n \\n \\n \\n \\n
\\n \\n
\\n
\\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n \\n
\\n \\n \\n
\";\nvar GridBodyComp = /** @class */ (function (_super) {\n __extends$1N(GridBodyComp, _super);\n function GridBodyComp() {\n return _super.call(this, GRID_BODY_TEMPLATE) || this;\n }\n GridBodyComp.prototype.init = function () {\n var _this = this;\n var setHeight = function (height, element) {\n var heightString = height + \"px\";\n element.style.minHeight = heightString;\n element.style.height = heightString;\n };\n var compProxy = {\n setRowAnimationCssOnBodyViewport: function (cssClass, animate) { return _this.setRowAnimationCssOnBodyViewport(cssClass, animate); },\n setColumnCount: function (count) { return setAriaColCount(_this.getGui(), count); },\n setRowCount: function (count) { return setAriaRowCount(_this.getGui(), count); },\n setTopHeight: function (height) { return setHeight(height, _this.eTop); },\n setBottomHeight: function (height) { return setHeight(height, _this.eBottom); },\n setTopDisplay: function (display) { return _this.eTop.style.display = display; },\n setBottomDisplay: function (display) { return _this.eBottom.style.display = display; },\n setStickyTopHeight: function (height) { return _this.eStickyTop.style.height = height; },\n setStickyTopTop: function (top) { return _this.eStickyTop.style.top = top; },\n setStickyTopWidth: function (width) { return _this.eStickyTop.style.width = width; },\n setColumnMovingCss: function (cssClass, flag) { return _this.addOrRemoveCssClass(cssClass, flag); },\n updateLayoutClasses: function (cssClass, params) {\n var classLists = [\n _this.eBodyViewport.classList,\n _this.eBody.classList\n ];\n classLists.forEach(function (classList) {\n classList.toggle(LayoutCssClasses.AUTO_HEIGHT, params.autoHeight);\n classList.toggle(LayoutCssClasses.NORMAL, params.normal);\n classList.toggle(LayoutCssClasses.PRINT, params.print);\n });\n _this.addOrRemoveCssClass(LayoutCssClasses.AUTO_HEIGHT, params.autoHeight);\n _this.addOrRemoveCssClass(LayoutCssClasses.NORMAL, params.normal);\n _this.addOrRemoveCssClass(LayoutCssClasses.PRINT, params.print);\n },\n setAlwaysVerticalScrollClass: function (cssClass, on) {\n return _this.eBodyViewport.classList.toggle(CSS_CLASS_FORCE_VERTICAL_SCROLL, on);\n },\n registerBodyViewportResizeListener: function (listener) {\n var unsubscribeFromResize = _this.resizeObserverService.observeResize(_this.eBodyViewport, listener);\n _this.addDestroyFunc(function () { return unsubscribeFromResize(); });\n },\n setPinnedTopBottomOverflowY: function (overflow) { return _this.eTop.style.overflowY = _this.eBottom.style.overflowY = overflow; },\n setCellSelectableCss: function (cssClass, selectable) {\n [_this.eTop, _this.eBodyViewport, _this.eBottom]\n .forEach(function (ct) { return ct.classList.toggle(cssClass, selectable); });\n },\n setBodyViewportWidth: function (width) { return _this.eBodyViewport.style.width = width; }\n };\n this.ctrl = this.createManagedBean(new GridBodyCtrl());\n this.ctrl.setComp(compProxy, this.getGui(), this.eBodyViewport, this.eTop, this.eBottom, this.eStickyTop);\n if (this.rangeService || this.gridOptionsService.get('rowSelection') === 'multiple') {\n setAriaMultiSelectable(this.getGui(), true);\n }\n };\n GridBodyComp.prototype.setRowAnimationCssOnBodyViewport = function (cssClass, animateRows) {\n var bodyViewportClassList = this.eBodyViewport.classList;\n bodyViewportClassList.toggle(RowAnimationCssClasses.ANIMATION_ON, animateRows);\n bodyViewportClassList.toggle(RowAnimationCssClasses.ANIMATION_OFF, !animateRows);\n };\n GridBodyComp.prototype.getFloatingTopBottom = function () {\n return [this.eTop, this.eBottom];\n };\n __decorate$1I([\n Autowired('resizeObserverService')\n ], GridBodyComp.prototype, \"resizeObserverService\", void 0);\n __decorate$1I([\n Optional('rangeService')\n ], GridBodyComp.prototype, \"rangeService\", void 0);\n __decorate$1I([\n RefSelector('eBodyViewport')\n ], GridBodyComp.prototype, \"eBodyViewport\", void 0);\n __decorate$1I([\n RefSelector('eStickyTop')\n ], GridBodyComp.prototype, \"eStickyTop\", void 0);\n __decorate$1I([\n RefSelector('eTop')\n ], GridBodyComp.prototype, \"eTop\", void 0);\n __decorate$1I([\n RefSelector('eBottom')\n ], GridBodyComp.prototype, \"eBottom\", void 0);\n __decorate$1I([\n RefSelector('gridHeader')\n ], GridBodyComp.prototype, \"headerRootComp\", void 0);\n __decorate$1I([\n RefSelector('eBody')\n ], GridBodyComp.prototype, \"eBody\", void 0);\n __decorate$1I([\n PostConstruct\n ], GridBodyComp.prototype, \"init\", null);\n return GridBodyComp;\n}(Component));\n\nvar __extends$1M = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1H = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ScrollVisibleService = /** @class */ (function (_super) {\n __extends$1M(ScrollVisibleService, _super);\n function ScrollVisibleService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ScrollVisibleService.prototype.postConstruct = function () {\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onDisplayedColumnsWidthChanged.bind(this));\n };\n ScrollVisibleService.prototype.onDisplayedColumnsChanged = function () {\n this.update();\n };\n ScrollVisibleService.prototype.onDisplayedColumnsWidthChanged = function () {\n this.update();\n };\n ScrollVisibleService.prototype.update = function () {\n // because of column animation (which takes 200ms), we have to do this twice.\n // eg if user removes cols anywhere except at the RHS, then the cols on the RHS\n // will animate to the left to fill the gap. this animation means just after\n // the cols are removed, the remaining cols are still in the original location\n // at the start of the animation, so pre animation the H scrollbar is still needed,\n // but post animation it is not.\n this.updateImpl();\n setTimeout(this.updateImpl.bind(this), 500);\n };\n ScrollVisibleService.prototype.updateImpl = function () {\n var centerRowCtrl = this.ctrlsService.getCenterRowContainerCtrl();\n if (!centerRowCtrl) {\n return;\n }\n var params = {\n horizontalScrollShowing: centerRowCtrl.isHorizontalScrollShowing(),\n verticalScrollShowing: this.isVerticalScrollShowing()\n };\n this.setScrollsVisible(params);\n };\n ScrollVisibleService.prototype.setScrollsVisible = function (params) {\n var atLeastOneDifferent = this.horizontalScrollShowing !== params.horizontalScrollShowing ||\n this.verticalScrollShowing !== params.verticalScrollShowing;\n if (atLeastOneDifferent) {\n this.horizontalScrollShowing = params.horizontalScrollShowing;\n this.verticalScrollShowing = params.verticalScrollShowing;\n var event_1 = {\n type: Events.EVENT_SCROLL_VISIBILITY_CHANGED\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n // used by pagination service - to know page height\n ScrollVisibleService.prototype.isHorizontalScrollShowing = function () {\n return this.horizontalScrollShowing;\n };\n // used by header container\n ScrollVisibleService.prototype.isVerticalScrollShowing = function () {\n return this.verticalScrollShowing;\n };\n __decorate$1H([\n Autowired('ctrlsService')\n ], ScrollVisibleService.prototype, \"ctrlsService\", void 0);\n __decorate$1H([\n PostConstruct\n ], ScrollVisibleService.prototype, \"postConstruct\", null);\n ScrollVisibleService = __decorate$1H([\n Bean('scrollVisibleService')\n ], ScrollVisibleService);\n return ScrollVisibleService;\n}(BeanStub));\n\nvar __extends$1L = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1G = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MouseEventService = /** @class */ (function (_super) {\n __extends$1L(MouseEventService, _super);\n function MouseEventService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.gridInstanceId = MouseEventService_1.gridInstanceSequence.next();\n return _this;\n }\n MouseEventService_1 = MouseEventService;\n // we put the instance id onto the main DOM element. this is used for events, when grids are inside grids,\n // so the grid can work out if the even came from this grid or a grid inside this one. see the ctrl+v logic\n // for where this is used.\n MouseEventService.prototype.stampTopLevelGridCompWithGridInstance = function (eGridDiv) {\n eGridDiv[MouseEventService_1.GRID_DOM_KEY] = this.gridInstanceId;\n };\n MouseEventService.prototype.getRenderedCellForEvent = function (event) {\n return getCtrlForEventTarget(this.gridOptionsService, event.target, CellCtrl.DOM_DATA_KEY_CELL_CTRL);\n };\n // walks the path of the event, and returns true if this grid is the first one that it finds. if doing\n // master / detail grids, and a child grid is found, then it returns false. this stops things like copy/paste\n // getting executed on many grids at the same time.\n MouseEventService.prototype.isEventFromThisGrid = function (event) {\n var res = this.isElementInThisGrid(event.target);\n return res;\n };\n MouseEventService.prototype.isElementInThisGrid = function (element) {\n var pointer = element;\n while (pointer) {\n var instanceId = pointer[MouseEventService_1.GRID_DOM_KEY];\n if (exists(instanceId)) {\n var eventFromThisGrid = instanceId === this.gridInstanceId;\n return eventFromThisGrid;\n }\n pointer = pointer.parentElement;\n }\n return false;\n };\n MouseEventService.prototype.getCellPositionForEvent = function (event) {\n var cellComp = this.getRenderedCellForEvent(event);\n return cellComp ? cellComp.getCellPosition() : null;\n };\n MouseEventService.prototype.getNormalisedPosition = function (event) {\n var gridPanelHasScrolls = this.gridOptionsService.isDomLayout('normal');\n var e = event;\n var x;\n var y;\n if (e.clientX != null || e.clientY != null) {\n x = e.clientX;\n y = e.clientY;\n }\n else {\n x = e.x;\n y = e.y;\n }\n if (gridPanelHasScrolls) {\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n var vRange = gridBodyCon.getScrollFeature().getVScrollPosition();\n var hRange = gridBodyCon.getScrollFeature().getHScrollPosition();\n x += hRange.left;\n y += vRange.top;\n }\n return { x: x, y: y };\n };\n var MouseEventService_1;\n MouseEventService.gridInstanceSequence = new NumberSequence();\n MouseEventService.GRID_DOM_KEY = '__ag_grid_instance';\n __decorate$1G([\n Autowired('ctrlsService')\n ], MouseEventService.prototype, \"ctrlsService\", void 0);\n MouseEventService = MouseEventService_1 = __decorate$1G([\n Bean('mouseEventService')\n ], MouseEventService);\n return MouseEventService;\n}(BeanStub));\n\nvar __extends$1K = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$9 = (undefined && undefined.__assign) || function () {\n __assign$9 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$9.apply(this, arguments);\n};\nvar __decorate$1F = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar NavigationService = /** @class */ (function (_super) {\n __extends$1K(NavigationService, _super);\n function NavigationService() {\n var _this = _super.call(this) || this;\n _this.onPageDown = throttle(_this.onPageDown, 100);\n _this.onPageUp = throttle(_this.onPageUp, 100);\n return _this;\n }\n NavigationService.prototype.postConstruct = function () {\n var _this = this;\n this.ctrlsService.whenReady(function (p) {\n _this.gridBodyCon = p.gridBodyCtrl;\n });\n };\n NavigationService.prototype.handlePageScrollingKey = function (event, fromFullWidth) {\n if (fromFullWidth === void 0) { fromFullWidth = false; }\n var key = event.key;\n var alt = event.altKey;\n var ctrl = event.ctrlKey || event.metaKey;\n var rangeServiceShouldHandleShift = !!this.rangeService && event.shiftKey;\n // home and end can be processed without knowing the currently selected cell, this can occur for full width rows.\n var currentCell = this.mouseEventService.getCellPositionForEvent(event);\n var processed = false;\n switch (key) {\n case KeyCode.PAGE_HOME:\n case KeyCode.PAGE_END:\n // handle home and end when ctrl & alt are NOT pressed\n if (!ctrl && !alt) {\n this.onHomeOrEndKey(key);\n processed = true;\n }\n break;\n case KeyCode.LEFT:\n case KeyCode.RIGHT:\n case KeyCode.UP:\n case KeyCode.DOWN:\n if (!currentCell) {\n return false;\n }\n // handle when ctrl is pressed only, if shift is pressed\n // it will be handled by the rangeService\n if (ctrl && !alt && !rangeServiceShouldHandleShift) {\n this.onCtrlUpDownLeftRight(key, currentCell);\n processed = true;\n }\n break;\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n // handle page up and page down when ctrl & alt are NOT pressed\n if (!ctrl && !alt) {\n processed = this.handlePageUpDown(key, currentCell, fromFullWidth);\n }\n break;\n }\n if (processed) {\n event.preventDefault();\n }\n return processed;\n };\n NavigationService.prototype.handlePageUpDown = function (key, currentCell, fromFullWidth) {\n if (fromFullWidth) {\n currentCell = this.focusService.getFocusedCell();\n }\n if (!currentCell) {\n return false;\n }\n if (key === KeyCode.PAGE_UP) {\n this.onPageUp(currentCell);\n }\n else {\n this.onPageDown(currentCell);\n }\n return true;\n };\n NavigationService.prototype.navigateTo = function (navigateParams) {\n var scrollIndex = navigateParams.scrollIndex, scrollType = navigateParams.scrollType, scrollColumn = navigateParams.scrollColumn, focusIndex = navigateParams.focusIndex, focusColumn = navigateParams.focusColumn;\n if (exists(scrollColumn) && !scrollColumn.isPinned()) {\n this.gridBodyCon.getScrollFeature().ensureColumnVisible(scrollColumn);\n }\n if (exists(scrollIndex)) {\n this.gridBodyCon.getScrollFeature().ensureIndexVisible(scrollIndex, scrollType);\n }\n // setFocusedCell relies on the browser default focus behavior to scroll the focused cell into view,\n // however, this behavior will cause the cell border to be cut off, or if we have sticky rows, the\n // cell will be completely hidden, so we call ensureIndexVisible without a position to guarantee\n // minimal scroll to get the row into view.\n if (!navigateParams.isAsync) {\n this.gridBodyCon.getScrollFeature().ensureIndexVisible(focusIndex);\n }\n // if we don't do this, the range will be left on the last cell, which will leave the last focused cell\n // highlighted.\n this.focusService.setFocusedCell({ rowIndex: focusIndex, column: focusColumn, rowPinned: null, forceBrowserFocus: true });\n if (this.rangeService) {\n var cellPosition = { rowIndex: focusIndex, rowPinned: null, column: focusColumn };\n this.rangeService.setRangeToCell(cellPosition);\n }\n };\n // this method is throttled, see the `constructor`\n NavigationService.prototype.onPageDown = function (gridCell) {\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n var scrollPosition = gridBodyCon.getScrollFeature().getVScrollPosition();\n var pixelsInOnePage = this.getViewportHeight();\n var pagingPixelOffset = this.paginationProxy.getPixelOffset();\n var currentPageBottomPixel = scrollPosition.top + pixelsInOnePage;\n var currentPageBottomRow = this.paginationProxy.getRowIndexAtPixel(currentPageBottomPixel + pagingPixelOffset);\n if (this.columnModel.isAutoRowHeightActive()) {\n this.navigateToNextPageWithAutoHeight(gridCell, currentPageBottomRow);\n }\n else {\n this.navigateToNextPage(gridCell, currentPageBottomRow);\n }\n };\n // this method is throttled, see the `constructor`\n NavigationService.prototype.onPageUp = function (gridCell) {\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n var scrollPosition = gridBodyCon.getScrollFeature().getVScrollPosition();\n var pagingPixelOffset = this.paginationProxy.getPixelOffset();\n var currentPageTopPixel = scrollPosition.top;\n var currentPageTopRow = this.paginationProxy.getRowIndexAtPixel(currentPageTopPixel + pagingPixelOffset);\n if (this.columnModel.isAutoRowHeightActive()) {\n this.navigateToNextPageWithAutoHeight(gridCell, currentPageTopRow, true);\n }\n else {\n this.navigateToNextPage(gridCell, currentPageTopRow, true);\n }\n };\n NavigationService.prototype.navigateToNextPage = function (gridCell, scrollIndex, up) {\n if (up === void 0) { up = false; }\n var pixelsInOnePage = this.getViewportHeight();\n var firstRow = this.paginationProxy.getPageFirstRow();\n var lastRow = this.paginationProxy.getPageLastRow();\n var pagingPixelOffset = this.paginationProxy.getPixelOffset();\n var currentRowNode = this.paginationProxy.getRow(gridCell.rowIndex);\n var rowPixelDiff = up\n ? ((currentRowNode === null || currentRowNode === void 0 ? void 0 : currentRowNode.rowHeight) - pixelsInOnePage - pagingPixelOffset)\n : (pixelsInOnePage - pagingPixelOffset);\n var nextCellPixel = (currentRowNode === null || currentRowNode === void 0 ? void 0 : currentRowNode.rowTop) + rowPixelDiff;\n var focusIndex = this.paginationProxy.getRowIndexAtPixel(nextCellPixel + pagingPixelOffset);\n if (focusIndex === gridCell.rowIndex) {\n var diff = up ? -1 : 1;\n scrollIndex = focusIndex = gridCell.rowIndex + diff;\n }\n var scrollType;\n if (up) {\n scrollType = 'bottom';\n if (focusIndex < firstRow) {\n focusIndex = firstRow;\n }\n if (scrollIndex < firstRow) {\n scrollIndex = firstRow;\n }\n }\n else {\n scrollType = 'top';\n if (focusIndex > lastRow) {\n focusIndex = lastRow;\n }\n if (scrollIndex > lastRow) {\n scrollIndex = lastRow;\n }\n }\n if (this.isRowTallerThanView(focusIndex)) {\n scrollIndex = focusIndex;\n scrollType = 'top';\n }\n this.navigateTo({\n scrollIndex: scrollIndex,\n scrollType: scrollType,\n scrollColumn: null,\n focusIndex: focusIndex,\n focusColumn: gridCell.column\n });\n };\n NavigationService.prototype.navigateToNextPageWithAutoHeight = function (gridCell, scrollIndex, up) {\n var _this = this;\n if (up === void 0) { up = false; }\n // because autoHeight will calculate the height of rows after scroll\n // first we scroll towards the required point, then we add a small\n // delay to allow the height to be recalculated, check which index\n // should be focused and then finally navigate to that index.\n // TODO: we should probably have an event fired once to scrollbar has\n // settled and all rowHeights have been calculated instead of relying\n // on a setTimeout of 50ms.\n this.navigateTo({\n scrollIndex: scrollIndex,\n scrollType: up ? 'bottom' : 'top',\n scrollColumn: null,\n focusIndex: scrollIndex,\n focusColumn: gridCell.column\n });\n setTimeout(function () {\n var focusIndex = _this.getNextFocusIndexForAutoHeight(gridCell, up);\n _this.navigateTo({\n scrollIndex: scrollIndex,\n scrollType: up ? 'bottom' : 'top',\n scrollColumn: null,\n focusIndex: focusIndex,\n focusColumn: gridCell.column,\n isAsync: true\n });\n }, 50);\n };\n NavigationService.prototype.getNextFocusIndexForAutoHeight = function (gridCell, up) {\n var _a;\n if (up === void 0) { up = false; }\n var step = up ? -1 : 1;\n var pixelsInOnePage = this.getViewportHeight();\n var lastRowIndex = this.paginationProxy.getPageLastRow();\n var pixelSum = 0;\n var currentIndex = gridCell.rowIndex;\n while (currentIndex >= 0 && currentIndex <= lastRowIndex) {\n var currentCell = this.paginationProxy.getRow(currentIndex);\n if (currentCell) {\n var currentCellHeight = (_a = currentCell.rowHeight) !== null && _a !== void 0 ? _a : 0;\n if (pixelSum + currentCellHeight > pixelsInOnePage) {\n break;\n }\n pixelSum += currentCellHeight;\n }\n currentIndex += step;\n }\n return Math.max(0, Math.min(currentIndex, lastRowIndex));\n };\n NavigationService.prototype.getViewportHeight = function () {\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n var scrollPosition = gridBodyCon.getScrollFeature().getVScrollPosition();\n var scrollbarWidth = this.gridOptionsService.getScrollbarWidth();\n var pixelsInOnePage = scrollPosition.bottom - scrollPosition.top;\n if (this.ctrlsService.getCenterRowContainerCtrl().isHorizontalScrollShowing()) {\n pixelsInOnePage -= scrollbarWidth;\n }\n return pixelsInOnePage;\n };\n NavigationService.prototype.isRowTallerThanView = function (rowIndex) {\n var rowNode = this.paginationProxy.getRow(rowIndex);\n if (!rowNode) {\n return false;\n }\n var rowHeight = rowNode.rowHeight;\n if (typeof rowHeight !== 'number') {\n return false;\n }\n return rowHeight > this.getViewportHeight();\n };\n NavigationService.prototype.onCtrlUpDownLeftRight = function (key, gridCell) {\n var cellToFocus = this.cellNavigationService.getNextCellToFocus(key, gridCell, true);\n var rowIndex = cellToFocus.rowIndex, column = cellToFocus.column;\n this.navigateTo({\n scrollIndex: rowIndex,\n scrollType: null,\n scrollColumn: column,\n focusIndex: rowIndex,\n focusColumn: column\n });\n };\n // home brings focus to top left cell, end brings focus to bottom right, grid scrolled to bring\n // same cell into view (which means either scroll all the way up, or all the way down).\n NavigationService.prototype.onHomeOrEndKey = function (key) {\n var homeKey = key === KeyCode.PAGE_HOME;\n var allColumns = this.columnModel.getAllDisplayedColumns();\n var columnToSelect = homeKey ? allColumns[0] : last(allColumns);\n var scrollIndex = homeKey ? this.paginationProxy.getPageFirstRow() : this.paginationProxy.getPageLastRow();\n this.navigateTo({\n scrollIndex: scrollIndex,\n scrollType: null,\n scrollColumn: columnToSelect,\n focusIndex: scrollIndex,\n focusColumn: columnToSelect\n });\n };\n // result of keyboard event\n NavigationService.prototype.onTabKeyDown = function (previous, keyboardEvent) {\n var backwards = keyboardEvent.shiftKey;\n var movedToNextCell = this.tabToNextCellCommon(previous, backwards, keyboardEvent);\n if (movedToNextCell) {\n // only prevent default if we found a cell. so if user is on last cell and hits tab, then we default\n // to the normal tabbing so user can exit the grid.\n keyboardEvent.preventDefault();\n return;\n }\n // if we didn't move to next cell, then need to tab out of the cells, ie to the header (if going\n // backwards)\n if (backwards) {\n var _a = previous.getRowPosition(), rowIndex = _a.rowIndex, rowPinned = _a.rowPinned;\n var firstRow = rowPinned ? rowIndex === 0 : rowIndex === this.paginationProxy.getPageFirstRow();\n if (firstRow) {\n if (this.gridOptionsService.getNum('headerHeight') === 0) {\n this.focusService.focusNextGridCoreContainer(true, true);\n }\n else {\n keyboardEvent.preventDefault();\n this.focusService.focusPreviousFromFirstCell(keyboardEvent);\n }\n }\n }\n else {\n // if the case it's a popup editor, the focus is on the editor and not the previous cell.\n // in order for the tab navigation to work, we need to focus the browser back onto the\n // previous cell.\n if (previous instanceof CellCtrl) {\n previous.focusCell(true);\n }\n if (this.focusService.focusNextGridCoreContainer(backwards)) {\n keyboardEvent.preventDefault();\n }\n }\n };\n // comes from API\n NavigationService.prototype.tabToNextCell = function (backwards, event) {\n var focusedCell = this.focusService.getFocusedCell();\n // if no focus, then cannot navigate\n if (!focusedCell) {\n return false;\n }\n var cellOrRow = this.getCellByPosition(focusedCell);\n // if cell is not rendered, means user has scrolled away from the cell\n // or that the focusedCell is a Full Width Row\n if (!cellOrRow) {\n cellOrRow = this.rowRenderer.getRowByPosition(focusedCell);\n if (!cellOrRow || !cellOrRow.isFullWidth()) {\n return false;\n }\n }\n return this.tabToNextCellCommon(cellOrRow, backwards, event);\n };\n NavigationService.prototype.tabToNextCellCommon = function (previous, backwards, event) {\n var editing = previous.isEditing();\n // if cell is not editing, there is still chance row is editing if it's Full Row Editing\n if (!editing && previous instanceof CellCtrl) {\n var cell = previous;\n var row = cell.getRowCtrl();\n if (row) {\n editing = row.isEditing();\n }\n }\n var res;\n if (editing) {\n // if we are editing, we know it's not a Full Width Row (RowComp)\n if (this.gridOptionsService.get('editType') === 'fullRow') {\n res = this.moveToNextEditingRow(previous, backwards, event);\n }\n else {\n res = this.moveToNextEditingCell(previous, backwards, event);\n }\n }\n else {\n res = this.moveToNextCellNotEditing(previous, backwards);\n }\n // if a cell wasn't found, it's possible that focus was moved to the header\n return res || !!this.focusService.getFocusedHeader();\n };\n NavigationService.prototype.moveToNextEditingCell = function (previousCell, backwards, event) {\n if (event === void 0) { event = null; }\n var previousPos = previousCell.getCellPosition();\n // before we stop editing, we need to focus the cell element\n // so the grid doesn't detect that focus has left the grid\n previousCell.getGui().focus();\n // need to do this before getting next cell to edit, in case the next cell\n // has editable function (eg colDef.editable=func() ) and it depends on the\n // result of this cell, so need to save updates from the first edit, in case\n // the value is referenced in the function.\n previousCell.stopEditing();\n // find the next cell to start editing\n var nextCell = this.findNextCellToFocusOn(previousPos, backwards, true);\n if (nextCell == null) {\n return false;\n }\n // only prevent default if we found a cell. so if user is on last cell and hits tab, then we default\n // to the normal tabbing so user can exit the grid.\n nextCell.startEditing(null, true, event);\n nextCell.focusCell(false);\n return true;\n };\n NavigationService.prototype.moveToNextEditingRow = function (previousCell, backwards, event) {\n if (event === void 0) { event = null; }\n var previousPos = previousCell.getCellPosition();\n // find the next cell to start editing\n var nextCell = this.findNextCellToFocusOn(previousPos, backwards, true);\n if (nextCell == null) {\n return false;\n }\n var nextPos = nextCell.getCellPosition();\n var previousEditable = this.isCellEditable(previousPos);\n var nextEditable = this.isCellEditable(nextPos);\n var rowsMatch = nextPos && previousPos.rowIndex === nextPos.rowIndex && previousPos.rowPinned === nextPos.rowPinned;\n if (previousEditable) {\n previousCell.setFocusOutOnEditor();\n }\n if (!rowsMatch) {\n var pRow = previousCell.getRowCtrl();\n pRow.stopEditing();\n var nRow = nextCell.getRowCtrl();\n nRow.startRowEditing(undefined, undefined, event);\n }\n if (nextEditable) {\n nextCell.setFocusInOnEditor();\n nextCell.focusCell();\n }\n else {\n nextCell.focusCell(true);\n }\n return true;\n };\n NavigationService.prototype.moveToNextCellNotEditing = function (previousCell, backwards) {\n var displayedColumns = this.columnModel.getAllDisplayedColumns();\n var cellPos;\n if (previousCell instanceof RowCtrl) {\n cellPos = __assign$9(__assign$9({}, previousCell.getRowPosition()), { column: backwards ? displayedColumns[0] : last(displayedColumns) });\n }\n else {\n cellPos = previousCell.getCellPosition();\n }\n // find the next cell to start editing\n var nextCell = this.findNextCellToFocusOn(cellPos, backwards, false);\n // only prevent default if we found a cell. so if user is on last cell and hits tab, then we default\n // to the normal tabbing so user can exit the grid.\n if (nextCell instanceof CellCtrl) {\n nextCell.focusCell(true);\n }\n else if (nextCell) {\n return this.tryToFocusFullWidthRow(nextCell.getRowPosition(), backwards);\n }\n return exists(nextCell);\n };\n // called by the cell, when tab is pressed while editing.\n // @return: RenderedCell when navigation successful, otherwise null\n NavigationService.prototype.findNextCellToFocusOn = function (previousPosition, backwards, startEditing) {\n var nextPosition = previousPosition;\n while (true) {\n if (previousPosition !== nextPosition) {\n previousPosition = nextPosition;\n }\n if (!backwards) {\n nextPosition = this.getLastCellOfColSpan(nextPosition);\n }\n nextPosition = this.cellNavigationService.getNextTabbedCell(nextPosition, backwards);\n // allow user to override what cell to go to next\n var userFunc = this.gridOptionsService.getCallback('tabToNextCell');\n if (exists(userFunc)) {\n var params = {\n backwards: backwards,\n editing: startEditing,\n previousCellPosition: previousPosition,\n nextCellPosition: nextPosition ? nextPosition : null\n };\n var userCell = userFunc(params);\n if (exists(userCell)) {\n if (userCell.floating) {\n doOnce(function () { console.warn(\"AG Grid: tabToNextCellFunc return type should have attributes: rowIndex, rowPinned, column. However you had 'floating', maybe you meant 'rowPinned'?\"); }, 'no floating in userCell');\n userCell.rowPinned = userCell.floating;\n }\n nextPosition = {\n rowIndex: userCell.rowIndex,\n column: userCell.column,\n rowPinned: userCell.rowPinned\n };\n }\n else {\n nextPosition = null;\n }\n }\n // if no 'next cell', means we have got to last cell of grid, so nothing to move to,\n // so bottom right cell going forwards, or top left going backwards\n if (!nextPosition) {\n return null;\n }\n if (nextPosition.rowIndex < 0) {\n var headerLen = this.headerNavigationService.getHeaderRowCount();\n this.focusService.focusHeaderPosition({\n headerPosition: {\n headerRowIndex: headerLen + (nextPosition.rowIndex),\n column: nextPosition.column\n },\n fromCell: true\n });\n return null;\n }\n // if editing, but cell not editable, skip cell. we do this before we do all of\n // the 'ensure index visible' and 'flush all frames', otherwise if we are skipping\n // a bunch of cells (eg 10 rows) then all the work on ensuring cell visible is useless\n // (except for the last one) which causes grid to stall for a while.\n // note - for full row edit, we do focus non-editable cells, as the row stays in edit mode.\n var fullRowEdit = this.gridOptionsService.get('editType') === 'fullRow';\n if (startEditing && !fullRowEdit) {\n var cellIsEditable = this.isCellEditable(nextPosition);\n if (!cellIsEditable) {\n continue;\n }\n }\n this.ensureCellVisible(nextPosition);\n // we have to call this after ensureColumnVisible - otherwise it could be a virtual column\n // or row that is not currently in view, hence the renderedCell would not exist\n var nextCell = this.getCellByPosition(nextPosition);\n // if next cell is fullWidth row, then no rendered cell,\n // as fullWidth rows have no cells, so we skip it\n if (!nextCell) {\n var row = this.rowRenderer.getRowByPosition(nextPosition);\n if (!row || !row.isFullWidth() || startEditing) {\n continue;\n }\n return row;\n }\n if (nextCell.isSuppressNavigable()) {\n continue;\n }\n // by default, when we click a cell, it gets selected into a range, so to keep keyboard navigation\n // consistent, we set into range here also.\n if (this.rangeService) {\n this.rangeService.setRangeToCell(nextPosition);\n }\n // we successfully tabbed onto a grid cell, so return true\n return nextCell;\n }\n };\n NavigationService.prototype.isCellEditable = function (cell) {\n var rowNode = this.lookupRowNodeForCell(cell);\n if (rowNode) {\n return cell.column.isCellEditable(rowNode);\n }\n return false;\n };\n NavigationService.prototype.getCellByPosition = function (cellPosition) {\n var rowCtrl = this.rowRenderer.getRowByPosition(cellPosition);\n if (!rowCtrl) {\n return null;\n }\n return rowCtrl.getCellCtrl(cellPosition.column);\n };\n NavigationService.prototype.lookupRowNodeForCell = function (cell) {\n if (cell.rowPinned === 'top') {\n return this.pinnedRowModel.getPinnedTopRow(cell.rowIndex);\n }\n if (cell.rowPinned === 'bottom') {\n return this.pinnedRowModel.getPinnedBottomRow(cell.rowIndex);\n }\n return this.paginationProxy.getRow(cell.rowIndex);\n };\n // we use index for rows, but column object for columns, as the next column (by index) might not\n // be visible (header grouping) so it's not reliable, so using the column object instead.\n NavigationService.prototype.navigateToNextCell = function (event, key, currentCell, allowUserOverride) {\n // we keep searching for a next cell until we find one. this is how the group rows get skipped\n var nextCell = currentCell;\n var hitEdgeOfGrid = false;\n while (nextCell && (nextCell === currentCell || !this.isValidNavigateCell(nextCell))) {\n // if the current cell is spanning across multiple columns, we need to move\n // our current position to be the last cell on the right before finding the\n // the next target.\n if (this.gridOptionsService.is('enableRtl')) {\n if (key === KeyCode.LEFT) {\n nextCell = this.getLastCellOfColSpan(nextCell);\n }\n }\n else if (key === KeyCode.RIGHT) {\n nextCell = this.getLastCellOfColSpan(nextCell);\n }\n nextCell = this.cellNavigationService.getNextCellToFocus(key, nextCell);\n // eg if going down, and nextCell=undefined, means we are gone past the last row\n hitEdgeOfGrid = missing(nextCell);\n }\n if (hitEdgeOfGrid && event && event.key === KeyCode.UP) {\n nextCell = {\n rowIndex: -1,\n rowPinned: null,\n column: currentCell.column\n };\n }\n // allow user to override what cell to go to next. when doing normal cell navigation (with keys)\n // we allow this, however if processing 'enter after edit' we don't allow override\n if (allowUserOverride) {\n var userFunc = this.gridOptionsService.getCallback('navigateToNextCell');\n if (exists(userFunc)) {\n var params = {\n key: key,\n previousCellPosition: currentCell,\n nextCellPosition: nextCell ? nextCell : null,\n event: event\n };\n var userCell = userFunc(params);\n if (exists(userCell)) {\n if (userCell.floating) {\n doOnce(function () { console.warn(\"AG Grid: tabToNextCellFunc return type should have attributes: rowIndex, rowPinned, column. However you had 'floating', maybe you meant 'rowPinned'?\"); }, 'no floating in userCell');\n userCell.rowPinned = userCell.floating;\n }\n nextCell = {\n rowPinned: userCell.rowPinned,\n rowIndex: userCell.rowIndex,\n column: userCell.column\n };\n }\n else {\n nextCell = null;\n }\n }\n }\n // no next cell means we have reached a grid boundary, eg left, right, top or bottom of grid\n if (!nextCell) {\n return;\n }\n if (nextCell.rowIndex < 0) {\n var headerLen = this.headerNavigationService.getHeaderRowCount();\n this.focusService.focusHeaderPosition({\n headerPosition: { headerRowIndex: headerLen + (nextCell.rowIndex), column: currentCell.column },\n event: event || undefined,\n fromCell: true\n });\n return;\n }\n // in case we have col spanning we get the cellComp and use it to get the\n // position. This was we always focus the first cell inside the spanning.\n var normalisedPosition = this.getNormalisedPosition(nextCell);\n if (normalisedPosition) {\n this.focusPosition(normalisedPosition);\n }\n else {\n this.tryToFocusFullWidthRow(nextCell);\n }\n };\n NavigationService.prototype.getNormalisedPosition = function (cellPosition) {\n // ensureCellVisible first, to make sure cell at position is rendered.\n this.ensureCellVisible(cellPosition);\n var cellCtrl = this.getCellByPosition(cellPosition);\n // not guaranteed to have a cellComp when using the SSRM as blocks are loading.\n if (!cellCtrl) {\n return null;\n }\n cellPosition = cellCtrl.getCellPosition();\n // we call this again, as nextCell can be different to it's previous value due to Column Spanning\n // (ie if cursor moving from right to left, and cell is spanning columns, then nextCell was the\n // last column in the group, however now it's the first column in the group). if we didn't do\n // ensureCellVisible again, then we could only be showing the last portion (last column) of the\n // merged cells.\n this.ensureCellVisible(cellPosition);\n return cellPosition;\n };\n NavigationService.prototype.tryToFocusFullWidthRow = function (position, backwards) {\n if (backwards === void 0) { backwards = false; }\n var displayedColumns = this.columnModel.getAllDisplayedColumns();\n var rowComp = this.rowRenderer.getRowByPosition(position);\n if (!rowComp || !rowComp.isFullWidth()) {\n return false;\n }\n var currentCellFocused = this.focusService.getFocusedCell();\n var cellPosition = {\n rowIndex: position.rowIndex,\n rowPinned: position.rowPinned,\n column: position.column || (backwards ? last(displayedColumns) : displayedColumns[0])\n };\n this.focusPosition(cellPosition);\n var fromBelow = currentCellFocused != null ? this.rowPositionUtils.before(cellPosition, currentCellFocused) : false;\n var focusEvent = {\n type: Events.EVENT_FULL_WIDTH_ROW_FOCUSED,\n rowIndex: cellPosition.rowIndex,\n rowPinned: cellPosition.rowPinned,\n column: cellPosition.column,\n isFullWidthCell: true,\n floating: cellPosition.rowPinned,\n fromBelow: fromBelow\n };\n this.eventService.dispatchEvent(focusEvent);\n return true;\n };\n NavigationService.prototype.focusPosition = function (cellPosition) {\n this.focusService.setFocusedCell({\n rowIndex: cellPosition.rowIndex,\n column: cellPosition.column,\n rowPinned: cellPosition.rowPinned,\n forceBrowserFocus: true\n });\n if (this.rangeService) {\n this.rangeService.setRangeToCell(cellPosition);\n }\n };\n NavigationService.prototype.isValidNavigateCell = function (cell) {\n var rowNode = this.rowPositionUtils.getRowNode(cell);\n // we do not allow focusing on detail rows and full width rows\n return !!rowNode;\n };\n NavigationService.prototype.getLastCellOfColSpan = function (cell) {\n var cellCtrl = this.getCellByPosition(cell);\n if (!cellCtrl) {\n return cell;\n }\n var colSpanningList = cellCtrl.getColSpanningList();\n if (colSpanningList.length === 1) {\n return cell;\n }\n return {\n rowIndex: cell.rowIndex,\n column: last(colSpanningList),\n rowPinned: cell.rowPinned\n };\n };\n NavigationService.prototype.ensureCellVisible = function (gridCell) {\n var isGroupStickyEnabled = this.gridOptionsService.isGroupRowsSticky();\n var rowNode = this.rowModel.getRow(gridCell.rowIndex);\n // sticky rows are always visible, so the grid shouldn't scroll to focus them.\n var skipScrollToRow = isGroupStickyEnabled && (rowNode === null || rowNode === void 0 ? void 0 : rowNode.sticky);\n // this scrolls the row into view\n if (!skipScrollToRow && missing(gridCell.rowPinned)) {\n this.gridBodyCon.getScrollFeature().ensureIndexVisible(gridCell.rowIndex);\n }\n if (!gridCell.column.isPinned()) {\n this.gridBodyCon.getScrollFeature().ensureColumnVisible(gridCell.column);\n }\n };\n __decorate$1F([\n Autowired('mouseEventService')\n ], NavigationService.prototype, \"mouseEventService\", void 0);\n __decorate$1F([\n Autowired('paginationProxy')\n ], NavigationService.prototype, \"paginationProxy\", void 0);\n __decorate$1F([\n Autowired('focusService')\n ], NavigationService.prototype, \"focusService\", void 0);\n __decorate$1F([\n Optional('rangeService')\n ], NavigationService.prototype, \"rangeService\", void 0);\n __decorate$1F([\n Autowired('columnModel')\n ], NavigationService.prototype, \"columnModel\", void 0);\n __decorate$1F([\n Autowired('rowModel')\n ], NavigationService.prototype, \"rowModel\", void 0);\n __decorate$1F([\n Autowired('ctrlsService')\n ], NavigationService.prototype, \"ctrlsService\", void 0);\n __decorate$1F([\n Autowired('rowRenderer')\n ], NavigationService.prototype, \"rowRenderer\", void 0);\n __decorate$1F([\n Autowired('headerNavigationService')\n ], NavigationService.prototype, \"headerNavigationService\", void 0);\n __decorate$1F([\n Autowired(\"rowPositionUtils\")\n ], NavigationService.prototype, \"rowPositionUtils\", void 0);\n __decorate$1F([\n Autowired(\"cellNavigationService\")\n ], NavigationService.prototype, \"cellNavigationService\", void 0);\n __decorate$1F([\n Autowired(\"pinnedRowModel\")\n ], NavigationService.prototype, \"pinnedRowModel\", void 0);\n __decorate$1F([\n PostConstruct\n ], NavigationService.prototype, \"postConstruct\", null);\n NavigationService = __decorate$1F([\n Bean('navigationService')\n ], NavigationService);\n return NavigationService;\n}(BeanStub));\n\nvar __extends$1J = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1E = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PopupEditorWrapper = /** @class */ (function (_super) {\n __extends$1J(PopupEditorWrapper, _super);\n function PopupEditorWrapper(params) {\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.params = params;\n return _this;\n }\n PopupEditorWrapper.prototype.postConstruct = function () {\n this.gridOptionsService.setDomData(this.getGui(), PopupEditorWrapper.DOM_KEY_POPUP_EDITOR_WRAPPER, true);\n this.addKeyDownListener();\n };\n PopupEditorWrapper.prototype.addKeyDownListener = function () {\n var _this = this;\n var eGui = this.getGui();\n var params = this.params;\n var listener = function (event) {\n if (!isUserSuppressingKeyboardEvent(_this.gridOptionsService, event, params.node, params.column, true)) {\n params.onKeyDown(event);\n }\n };\n this.addManagedListener(eGui, 'keydown', listener);\n };\n PopupEditorWrapper.DOM_KEY_POPUP_EDITOR_WRAPPER = 'popupEditorWrapper';\n __decorate$1E([\n PostConstruct\n ], PopupEditorWrapper.prototype, \"postConstruct\", null);\n return PopupEditorWrapper;\n}(PopupComponent));\n\nvar __extends$1I = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar CellComp = /** @class */ (function (_super) {\n __extends$1I(CellComp, _super);\n function CellComp(beans, cellCtrl, printLayout, eRow, editingRow) {\n var _this = _super.call(this) || this;\n // every time we go into edit mode, or back again, this gets incremented.\n // it's the components way of dealing with the async nature of framework components,\n // so if a framework component takes a while to be created, we know if the object\n // is still relevant when creating is finished. eg we could click edit / un-edit 20\n // times before the first React edit component comes back - we should discard\n // the first 19.\n _this.rendererVersion = 0;\n _this.editorVersion = 0;\n _this.beans = beans;\n _this.column = cellCtrl.getColumn();\n _this.rowNode = cellCtrl.getRowNode();\n _this.rowCtrl = cellCtrl.getRowCtrl();\n _this.eRow = eRow;\n _this.cellCtrl = cellCtrl;\n _this.setTemplate(/* html */ \"
\");\n var eGui = _this.getGui();\n _this.forceWrapper = cellCtrl.isForceWrapper();\n _this.refreshWrapper(false);\n var setAttribute = function (name, value) {\n if (value != null && value != '') {\n eGui.setAttribute(name, value);\n }\n else {\n eGui.removeAttribute(name);\n }\n };\n setAriaRole(eGui, 'gridcell');\n setAttribute('col-id', cellCtrl.getColumnIdSanitised());\n var tabIndex = cellCtrl.getTabIndex();\n if (tabIndex !== undefined) {\n setAttribute('tabindex', tabIndex.toString());\n }\n var compProxy = {\n addOrRemoveCssClass: function (cssClassName, on) { return _this.addOrRemoveCssClass(cssClassName, on); },\n setUserStyles: function (styles) { return addStylesToElement(eGui, styles); },\n getFocusableElement: function () { return _this.getFocusableElement(); },\n setIncludeSelection: function (include) { return _this.includeSelection = include; },\n setIncludeRowDrag: function (include) { return _this.includeRowDrag = include; },\n setIncludeDndSource: function (include) { return _this.includeDndSource = include; },\n setRenderDetails: function (compDetails, valueToDisplay, force) {\n return _this.setRenderDetails(compDetails, valueToDisplay, force);\n },\n setEditDetails: function (compDetails, popup, position) {\n return _this.setEditDetails(compDetails, popup, position);\n },\n getCellEditor: function () { return _this.cellEditor || null; },\n getCellRenderer: function () { return _this.cellRenderer || null; },\n getParentOfValue: function () { return _this.getParentOfValue(); }\n };\n cellCtrl.setComp(compProxy, _this.getGui(), _this.eCellWrapper, printLayout, editingRow);\n return _this;\n }\n CellComp.prototype.getParentOfValue = function () {\n if (this.eCellValue) {\n // if not editing, and using wrapper, then value goes in eCellValue\n return this.eCellValue;\n }\n if (this.eCellWrapper) {\n // if editing, and using wrapper, value (cell editor) goes in eCellWrapper\n return this.eCellWrapper;\n }\n // if editing or rendering, and not using wrapper, value (or comp) is directly inside cell\n return this.getGui();\n };\n CellComp.prototype.setRenderDetails = function (compDetails, valueToDisplay, forceNewCellRendererInstance) {\n // this can happen if the users asks for the cell to refresh, but we are not showing the vale as we are editing\n var isInlineEditing = this.cellEditor && !this.cellEditorPopupWrapper;\n if (isInlineEditing) {\n return;\n }\n // this means firstRender will be true for one pass only, as it's initialised to undefined\n this.firstRender = this.firstRender == null;\n // if display template has changed, means any previous Cell Renderer is in the wrong location\n var controlWrapperChanged = this.refreshWrapper(false);\n this.refreshEditStyles(false);\n // all of these have dependencies on the eGui, so only do them after eGui is set\n if (compDetails) {\n var neverRefresh = forceNewCellRendererInstance || controlWrapperChanged;\n var cellRendererRefreshSuccessful = neverRefresh ? false : this.refreshCellRenderer(compDetails);\n if (!cellRendererRefreshSuccessful) {\n this.destroyRenderer();\n this.createCellRendererInstance(compDetails);\n }\n }\n else {\n this.destroyRenderer();\n this.insertValueWithoutCellRenderer(valueToDisplay);\n }\n };\n CellComp.prototype.setEditDetails = function (compDetails, popup, position) {\n if (compDetails) {\n this.createCellEditorInstance(compDetails, popup, position);\n }\n else {\n this.destroyEditor();\n }\n };\n CellComp.prototype.removeControls = function () {\n this.checkboxSelectionComp = this.beans.context.destroyBean(this.checkboxSelectionComp);\n this.dndSourceComp = this.beans.context.destroyBean(this.dndSourceComp);\n this.rowDraggingComp = this.beans.context.destroyBean(this.rowDraggingComp);\n };\n // returns true if wrapper was changed\n CellComp.prototype.refreshWrapper = function (editing) {\n var providingControls = this.includeRowDrag || this.includeDndSource || this.includeSelection;\n var usingWrapper = providingControls || this.forceWrapper;\n var putWrapperIn = usingWrapper && this.eCellWrapper == null;\n if (putWrapperIn) {\n this.eCellWrapper = loadTemplate(/* html */ \"
\");\n this.getGui().appendChild(this.eCellWrapper);\n }\n var takeWrapperOut = !usingWrapper && this.eCellWrapper != null;\n if (takeWrapperOut) {\n removeFromParent(this.eCellWrapper);\n this.eCellWrapper = undefined;\n }\n this.addOrRemoveCssClass('ag-cell-value', !usingWrapper);\n var usingCellValue = !editing && usingWrapper;\n var putCellValueIn = usingCellValue && this.eCellValue == null;\n if (putCellValueIn) {\n this.eCellValue = loadTemplate(/* html */ \"\");\n this.eCellWrapper.appendChild(this.eCellValue);\n }\n var takeCellValueOut = !usingCellValue && this.eCellValue != null;\n if (takeCellValueOut) {\n removeFromParent(this.eCellValue);\n this.eCellValue = undefined;\n }\n var templateChanged = putWrapperIn || takeWrapperOut || putCellValueIn || takeCellValueOut;\n if (templateChanged) {\n this.removeControls();\n }\n if (!editing) {\n if (providingControls) {\n this.addControls();\n }\n }\n return templateChanged;\n };\n CellComp.prototype.addControls = function () {\n if (this.includeRowDrag) {\n if (this.rowDraggingComp == null) {\n this.rowDraggingComp = this.cellCtrl.createRowDragComp();\n if (this.rowDraggingComp) {\n // put the checkbox in before the value\n this.eCellWrapper.insertBefore(this.rowDraggingComp.getGui(), this.eCellValue);\n }\n }\n }\n if (this.includeDndSource) {\n if (this.dndSourceComp == null) {\n this.dndSourceComp = this.cellCtrl.createDndSource();\n // put the checkbox in before the value\n this.eCellWrapper.insertBefore(this.dndSourceComp.getGui(), this.eCellValue);\n }\n }\n if (this.includeSelection) {\n if (this.checkboxSelectionComp == null) {\n this.checkboxSelectionComp = this.cellCtrl.createSelectionCheckbox();\n this.eCellWrapper.insertBefore(this.checkboxSelectionComp.getGui(), this.eCellValue);\n }\n }\n };\n CellComp.prototype.createCellEditorInstance = function (compDetails, popup, position) {\n var _this = this;\n var versionCopy = this.editorVersion;\n var cellEditorPromise = compDetails.newAgStackInstance();\n if (!cellEditorPromise) {\n return;\n } // if empty, userComponentFactory already did a console message\n var params = compDetails.params;\n cellEditorPromise.then(function (c) { return _this.afterCellEditorCreated(versionCopy, c, params, popup, position); });\n // if we don't do this, and editor component is async, then there will be a period\n // when the component isn't present and keyboard navigation won't work - so example\n // of user hitting tab quickly (more quickly than renderers getting created) won't work\n var cellEditorAsync = missing(this.cellEditor);\n if (cellEditorAsync && params.cellStartedEdit) {\n this.cellCtrl.focusCell(true);\n }\n };\n CellComp.prototype.insertValueWithoutCellRenderer = function (valueToDisplay) {\n var eParent = this.getParentOfValue();\n clearElement(eParent);\n var escapedValue = valueToDisplay != null ? escapeString(valueToDisplay) : null;\n if (escapedValue != null) {\n eParent.innerHTML = escapedValue;\n }\n };\n CellComp.prototype.destroyEditorAndRenderer = function () {\n this.destroyRenderer();\n this.destroyEditor();\n };\n CellComp.prototype.destroyRenderer = function () {\n var context = this.beans.context;\n this.cellRenderer = context.destroyBean(this.cellRenderer);\n removeFromParent(this.cellRendererGui);\n this.cellRendererGui = null;\n this.rendererVersion++;\n };\n CellComp.prototype.destroyEditor = function () {\n var context = this.beans.context;\n if (this.hideEditorPopup) {\n this.hideEditorPopup();\n }\n this.hideEditorPopup = undefined;\n this.cellEditor = context.destroyBean(this.cellEditor);\n this.cellEditorPopupWrapper = context.destroyBean(this.cellEditorPopupWrapper);\n removeFromParent(this.cellEditorGui);\n this.cellEditorGui = null;\n this.editorVersion++;\n };\n CellComp.prototype.refreshCellRenderer = function (compClassAndParams) {\n if (this.cellRenderer == null || this.cellRenderer.refresh == null) {\n return false;\n }\n // if different Cell Renderer configured this time (eg user is using selector, and\n // returns different component) then don't refresh, force recreate of Cell Renderer\n if (this.cellRendererClass !== compClassAndParams.componentClass) {\n return false;\n }\n // take any custom params off of the user\n var result = this.cellRenderer.refresh(compClassAndParams.params);\n // NOTE on undefined: previous version of the cellRenderer.refresh() interface\n // returned nothing, if the method existed, we assumed it refreshed. so for\n // backwards compatibility, we assume if method exists and returns nothing,\n // that it was successful.\n return result === true || result === undefined;\n };\n CellComp.prototype.createCellRendererInstance = function (compDetails) {\n var _this = this;\n // never use task service if animation frame service is turned off.\n // and lastly we never use it if doing auto-height, as the auto-height service checks the\n // row height directly after the cell is created, it doesn't wait around for the tasks to complete \n var suppressAnimationFrame = this.beans.gridOptionsService.is('suppressAnimationFrame');\n var useTaskService = !suppressAnimationFrame;\n var displayComponentVersionCopy = this.rendererVersion;\n var componentClass = compDetails.componentClass;\n var createCellRendererFunc = function () {\n var staleTask = _this.rendererVersion !== displayComponentVersionCopy || !_this.isAlive();\n if (staleTask) {\n return;\n }\n // this can return null in the event that the user has switched from a renderer component to nothing, for example\n // when using a cellRendererSelect to return a component or null depending on row data etc\n var componentPromise = compDetails.newAgStackInstance();\n var callback = _this.afterCellRendererCreated.bind(_this, displayComponentVersionCopy, componentClass);\n if (componentPromise) {\n componentPromise.then(callback);\n }\n };\n // we only use task service when rendering for first time, which means it is not used when doing edits.\n // if we changed this (always use task service) would make sense, however it would break tests, possibly\n // test of users.\n if (useTaskService && this.firstRender) {\n this.beans.animationFrameService.createTask(createCellRendererFunc, this.rowNode.rowIndex, 'createTasksP2');\n }\n else {\n createCellRendererFunc();\n }\n };\n CellComp.prototype.getCtrl = function () {\n return this.cellCtrl;\n };\n CellComp.prototype.getRowCtrl = function () {\n return this.rowCtrl;\n };\n CellComp.prototype.getCellRenderer = function () {\n return this.cellRenderer;\n };\n CellComp.prototype.getCellEditor = function () {\n return this.cellEditor;\n };\n CellComp.prototype.afterCellRendererCreated = function (cellRendererVersion, cellRendererClass, cellRenderer) {\n var staleTask = !this.isAlive() || cellRendererVersion !== this.rendererVersion;\n if (staleTask) {\n this.beans.context.destroyBean(cellRenderer);\n return;\n }\n this.cellRenderer = cellRenderer;\n this.cellRendererClass = cellRendererClass;\n this.cellRendererGui = this.cellRenderer.getGui();\n if (this.cellRendererGui != null) {\n var eParent = this.getParentOfValue();\n clearElement(eParent);\n eParent.appendChild(this.cellRendererGui);\n }\n };\n CellComp.prototype.afterCellEditorCreated = function (requestVersion, cellEditor, params, popup, position) {\n // if editingCell=false, means user cancelled the editor before component was ready.\n // if versionMismatch, then user cancelled the edit, then started the edit again, and this\n // is the first editor which is now stale.\n var staleComp = requestVersion !== this.editorVersion;\n if (staleComp) {\n this.beans.context.destroyBean(cellEditor);\n return;\n }\n var editingCancelledByUserComp = cellEditor.isCancelBeforeStart && cellEditor.isCancelBeforeStart();\n if (editingCancelledByUserComp) {\n this.beans.context.destroyBean(cellEditor);\n this.cellCtrl.stopEditing(true);\n return;\n }\n if (!cellEditor.getGui) {\n console.warn(\"AG Grid: cellEditor for column \" + this.column.getId() + \" is missing getGui() method\");\n this.beans.context.destroyBean(cellEditor);\n return;\n }\n this.cellEditor = cellEditor;\n this.cellEditorGui = cellEditor.getGui();\n var cellEditorInPopup = popup || (cellEditor.isPopup !== undefined && cellEditor.isPopup());\n if (cellEditorInPopup) {\n this.addPopupCellEditor(params, position);\n }\n else {\n this.addInCellEditor();\n }\n this.refreshEditStyles(true, cellEditorInPopup);\n if (cellEditor.afterGuiAttached) {\n cellEditor.afterGuiAttached();\n }\n };\n CellComp.prototype.refreshEditStyles = function (editing, isPopup) {\n var _a;\n this.addOrRemoveCssClass('ag-cell-inline-editing', editing && !isPopup);\n this.addOrRemoveCssClass('ag-cell-popup-editing', editing && !!isPopup);\n this.addOrRemoveCssClass('ag-cell-not-inline-editing', !editing || !!isPopup);\n (_a = this.rowCtrl) === null || _a === void 0 ? void 0 : _a.setInlineEditingCss(editing);\n };\n CellComp.prototype.addInCellEditor = function () {\n var eGui = this.getGui();\n // if focus is inside the cell, we move focus to the cell itself\n // before removing it's contents, otherwise errors could be thrown.\n var eDocument = this.beans.gridOptionsService.getDocument();\n if (eGui.contains(eDocument.activeElement)) {\n eGui.focus();\n }\n this.destroyRenderer();\n this.refreshWrapper(true);\n this.clearParentOfValue();\n if (this.cellEditorGui) {\n var eParent = this.getParentOfValue();\n eParent.appendChild(this.cellEditorGui);\n }\n };\n CellComp.prototype.addPopupCellEditor = function (params, position) {\n var _this = this;\n if (this.beans.gridOptionsService.get('editType') === 'fullRow') {\n console.warn('AG Grid: popup cellEditor does not work with fullRowEdit - you cannot use them both ' +\n '- either turn off fullRowEdit, or stop using popup editors.');\n }\n var cellEditor = this.cellEditor;\n // if a popup, then we wrap in a popup editor and return the popup\n this.cellEditorPopupWrapper = this.beans.context.createBean(new PopupEditorWrapper(params));\n var ePopupGui = this.cellEditorPopupWrapper.getGui();\n if (this.cellEditorGui) {\n ePopupGui.appendChild(this.cellEditorGui);\n }\n var popupService = this.beans.popupService;\n var useModelPopup = this.beans.gridOptionsService.is('stopEditingWhenCellsLoseFocus');\n // see if position provided by colDef, if not then check old way of method on cellComp\n var positionToUse = position != null\n ? position\n : cellEditor.getPopupPosition\n ? cellEditor.getPopupPosition()\n : 'over';\n var isRtl = this.beans.gridOptionsService.is('enableRtl');\n var positionParams = {\n ePopup: ePopupGui,\n column: this.column,\n rowNode: this.rowNode,\n type: 'popupCellEditor',\n eventSource: this.getGui(),\n position: positionToUse,\n alignSide: isRtl ? 'right' : 'left',\n keepWithinBounds: true\n };\n var positionCallback = popupService.positionPopupByComponent.bind(popupService, positionParams);\n var translate = this.beans.localeService.getLocaleTextFunc();\n var addPopupRes = popupService.addPopup({\n modal: useModelPopup,\n eChild: ePopupGui,\n closeOnEsc: true,\n closedCallback: function () { _this.cellCtrl.onPopupEditorClosed(); },\n anchorToElement: this.getGui(),\n positionCallback: positionCallback,\n ariaLabel: translate('ariaLabelCellEditor', 'Cell Editor')\n });\n if (addPopupRes) {\n this.hideEditorPopup = addPopupRes.hideFunc;\n }\n };\n CellComp.prototype.detach = function () {\n this.eRow.removeChild(this.getGui());\n };\n // if the row is also getting destroyed, then we don't need to remove from dom,\n // as the row will also get removed, so no need to take out the cells from the row\n // if the row is going (removing is an expensive operation, so only need to remove\n // the top part)\n //\n // note - this is NOT called by context, as we don't wire / unwire the CellComp for performance reasons.\n CellComp.prototype.destroy = function () {\n this.cellCtrl.stopEditing();\n this.destroyEditorAndRenderer();\n this.removeControls();\n _super.prototype.destroy.call(this);\n };\n CellComp.prototype.clearParentOfValue = function () {\n var eGui = this.getGui();\n // if focus is inside the cell, we move focus to the cell itself\n // before removing it's contents, otherwise errors could be thrown.\n var eDocument = this.beans.gridOptionsService.getDocument();\n if (eGui.contains(eDocument.activeElement) && browserSupportsPreventScroll()) {\n eGui.focus({ preventScroll: true });\n }\n clearElement(this.getParentOfValue());\n };\n return CellComp;\n}(Component));\n\nvar __extends$1H = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar RowComp = /** @class */ (function (_super) {\n __extends$1H(RowComp, _super);\n function RowComp(ctrl, beans, containerType) {\n var _this = _super.call(this) || this;\n _this.cellComps = {};\n _this.beans = beans;\n _this.rowCtrl = ctrl;\n _this.setTemplate(/* html */ \"
\");\n var eGui = _this.getGui();\n var style = eGui.style;\n _this.domOrder = _this.rowCtrl.getDomOrder();\n setAriaRole(eGui, 'row');\n var tabIndex = _this.rowCtrl.getTabIndex();\n if (tabIndex != null) {\n eGui.setAttribute('tabindex', tabIndex.toString());\n }\n var compProxy = {\n setDomOrder: function (domOrder) { return _this.domOrder = domOrder; },\n setCellCtrls: function (cellCtrls) { return _this.setCellCtrls(cellCtrls); },\n showFullWidth: function (compDetails) { return _this.showFullWidth(compDetails); },\n getFullWidthCellRenderer: function () { return _this.getFullWidthCellRenderer(); },\n addOrRemoveCssClass: function (name, on) { return _this.addOrRemoveCssClass(name, on); },\n setUserStyles: function (styles) { return addStylesToElement(eGui, styles); },\n setTop: function (top) { return style.top = top; },\n setTransform: function (transform) { return style.transform = transform; },\n setRowIndex: function (rowIndex) { return eGui.setAttribute('row-index', rowIndex); },\n setRowId: function (rowId) { return eGui.setAttribute('row-id', rowId); },\n setRowBusinessKey: function (businessKey) { return eGui.setAttribute('row-business-key', businessKey); },\n };\n ctrl.setComp(compProxy, _this.getGui(), containerType);\n _this.addDestroyFunc(function () {\n ctrl.unsetComp(containerType);\n });\n return _this;\n }\n RowComp.prototype.getInitialStyle = function (containerType) {\n var transform = this.rowCtrl.getInitialTransform(containerType);\n var top = this.rowCtrl.getInitialRowTop(containerType);\n return transform ? \"transform: \" + transform : \"top: \" + top;\n };\n RowComp.prototype.showFullWidth = function (compDetails) {\n var _this = this;\n var callback = function (cellRenderer) {\n if (_this.isAlive()) {\n var eGui = cellRenderer.getGui();\n _this.getGui().appendChild(eGui);\n _this.rowCtrl.setupDetailRowAutoHeight(eGui);\n _this.setFullWidthRowComp(cellRenderer);\n }\n else {\n _this.beans.context.destroyBean(cellRenderer);\n }\n };\n // if not in cache, create new one\n var res = compDetails.newAgStackInstance();\n if (!res) {\n return;\n }\n res.then(callback);\n };\n RowComp.prototype.setCellCtrls = function (cellCtrls) {\n var _this = this;\n var cellsToRemove = Object.assign({}, this.cellComps);\n cellCtrls.forEach(function (cellCtrl) {\n var key = cellCtrl.getInstanceId();\n var existingCellComp = _this.cellComps[key];\n if (existingCellComp == null) {\n _this.newCellComp(cellCtrl);\n }\n else {\n cellsToRemove[key] = null;\n }\n });\n var cellCompsToRemove = getAllValuesInObject(cellsToRemove)\n .filter(function (cellComp) { return cellComp != null; });\n this.destroyCells(cellCompsToRemove);\n this.ensureDomOrder(cellCtrls);\n };\n RowComp.prototype.ensureDomOrder = function (cellCtrls) {\n var _this = this;\n if (!this.domOrder) {\n return;\n }\n var elementsInOrder = [];\n cellCtrls.forEach(function (cellCtrl) {\n var cellComp = _this.cellComps[cellCtrl.getInstanceId()];\n if (cellComp) {\n elementsInOrder.push(cellComp.getGui());\n }\n });\n setDomChildOrder(this.getGui(), elementsInOrder);\n };\n RowComp.prototype.newCellComp = function (cellCtrl) {\n var cellComp = new CellComp(this.beans, cellCtrl, this.rowCtrl.isPrintLayout(), this.getGui(), this.rowCtrl.isEditing());\n this.cellComps[cellCtrl.getInstanceId()] = cellComp;\n this.getGui().appendChild(cellComp.getGui());\n };\n RowComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.destroyAllCells();\n };\n RowComp.prototype.destroyAllCells = function () {\n var cellsToDestroy = getAllValuesInObject(this.cellComps).filter(function (cp) { return cp != null; });\n this.destroyCells(cellsToDestroy);\n };\n RowComp.prototype.setFullWidthRowComp = function (fullWidthRowComponent) {\n var _this = this;\n if (this.fullWidthCellRenderer) {\n console.error('AG Grid - should not be setting fullWidthRowComponent twice');\n }\n this.fullWidthCellRenderer = fullWidthRowComponent;\n this.addDestroyFunc(function () {\n _this.fullWidthCellRenderer = _this.beans.context.destroyBean(_this.fullWidthCellRenderer);\n });\n };\n RowComp.prototype.getFullWidthCellRenderer = function () {\n return this.fullWidthCellRenderer;\n };\n RowComp.prototype.destroyCells = function (cellComps) {\n var _this = this;\n cellComps.forEach(function (cellComp) {\n // could be old reference, ie removed cell\n if (!cellComp) {\n return;\n }\n // check cellComp belongs in this container\n var instanceId = cellComp.getCtrl().getInstanceId();\n if (_this.cellComps[instanceId] !== cellComp) {\n return;\n }\n cellComp.detach();\n cellComp.destroy();\n _this.cellComps[instanceId] = null;\n });\n };\n return RowComp;\n}(Component));\n\nvar __extends$1G = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$8 = (undefined && undefined.__assign) || function () {\n __assign$8 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$8.apply(this, arguments);\n};\nvar __decorate$1D = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nfunction templateFactory() {\n var name = Component.elementGettingCreated.getAttribute('name');\n var cssClasses = RowContainerCtrl.getRowContainerCssClasses(name);\n var res;\n var centerTemplate = name === RowContainerName.CENTER ||\n name === RowContainerName.TOP_CENTER ||\n name === RowContainerName.STICKY_TOP_CENTER ||\n name === RowContainerName.BOTTOM_CENTER;\n if (centerTemplate) {\n res = /* html */\n \"
\\n
\\n
\";\n }\n else {\n res = /* html */\n \"
\";\n }\n return res;\n}\nvar RowContainerComp = /** @class */ (function (_super) {\n __extends$1G(RowContainerComp, _super);\n function RowContainerComp() {\n var _this = _super.call(this, templateFactory()) || this;\n _this.rowComps = {};\n _this.name = Component.elementGettingCreated.getAttribute('name');\n _this.type = getRowContainerTypeForName(_this.name);\n return _this;\n }\n RowContainerComp.prototype.postConstruct = function () {\n var _this = this;\n var compProxy = {\n setViewportHeight: function (height) { return _this.eViewport.style.height = height; },\n setRowCtrls: function (rowCtrls) { return _this.setRowCtrls(rowCtrls); },\n setDomOrder: function (domOrder) {\n _this.domOrder = domOrder;\n },\n setContainerWidth: function (width) { return _this.eContainer.style.width = width; }\n };\n var ctrl = this.createManagedBean(new RowContainerCtrl(this.name));\n ctrl.setComp(compProxy, this.eContainer, this.eViewport);\n };\n RowContainerComp.prototype.preDestroy = function () {\n // destroys all row comps\n this.setRowCtrls([]);\n };\n RowContainerComp.prototype.setRowCtrls = function (rowCtrls) {\n var _this = this;\n var oldRows = __assign$8({}, this.rowComps);\n this.rowComps = {};\n this.lastPlacedElement = null;\n var processRow = function (rowCon) {\n var instanceId = rowCon.getInstanceId();\n var existingRowComp = oldRows[instanceId];\n if (existingRowComp) {\n _this.rowComps[instanceId] = existingRowComp;\n delete oldRows[instanceId];\n _this.ensureDomOrder(existingRowComp.getGui());\n }\n else {\n // don't create new row comps for rows which are not displayed. still want the existing components\n // as they may be animating out.\n if (!rowCon.getRowNode().displayed) {\n return;\n }\n var rowComp = new RowComp(rowCon, _this.beans, _this.type);\n _this.rowComps[instanceId] = rowComp;\n _this.appendRow(rowComp.getGui());\n }\n };\n rowCtrls.forEach(processRow);\n getAllValuesInObject(oldRows).forEach(function (oldRowComp) {\n _this.eContainer.removeChild(oldRowComp.getGui());\n oldRowComp.destroy();\n });\n setAriaRole(this.eContainer, rowCtrls.length ? \"rowgroup\" : \"presentation\");\n };\n RowContainerComp.prototype.appendRow = function (element) {\n if (this.domOrder) {\n insertWithDomOrder(this.eContainer, element, this.lastPlacedElement);\n }\n else {\n this.eContainer.appendChild(element);\n }\n this.lastPlacedElement = element;\n };\n RowContainerComp.prototype.ensureDomOrder = function (eRow) {\n if (this.domOrder) {\n ensureDomOrder(this.eContainer, eRow, this.lastPlacedElement);\n this.lastPlacedElement = eRow;\n }\n };\n __decorate$1D([\n Autowired('beans')\n ], RowContainerComp.prototype, \"beans\", void 0);\n __decorate$1D([\n RefSelector('eViewport')\n ], RowContainerComp.prototype, \"eViewport\", void 0);\n __decorate$1D([\n RefSelector('eContainer')\n ], RowContainerComp.prototype, \"eContainer\", void 0);\n __decorate$1D([\n PostConstruct\n ], RowContainerComp.prototype, \"postConstruct\", null);\n __decorate$1D([\n PreDestroy\n ], RowContainerComp.prototype, \"preDestroy\", null);\n return RowContainerComp;\n}(Component));\n\nvar __decorate$1C = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar BodyDropPivotTarget = /** @class */ (function () {\n function BodyDropPivotTarget(pinned) {\n this.columnsToAggregate = [];\n this.columnsToGroup = [];\n this.columnsToPivot = [];\n this.pinned = pinned;\n }\n /** Callback for when drag enters */\n BodyDropPivotTarget.prototype.onDragEnter = function (draggingEvent) {\n var _this = this;\n this.clearColumnsList();\n // in pivot mode, we don't accept any drops if functions are read only\n if (this.gridOptionsService.is('functionsReadOnly')) {\n return;\n }\n var dragColumns = draggingEvent.dragItem.columns;\n if (!dragColumns) {\n return;\n }\n dragColumns.forEach(function (column) {\n // we don't allow adding secondary columns\n if (!column.isPrimary()) {\n return;\n }\n if (column.isAnyFunctionActive()) {\n return;\n }\n if (column.isAllowValue()) {\n _this.columnsToAggregate.push(column);\n }\n else if (column.isAllowRowGroup()) {\n _this.columnsToGroup.push(column);\n }\n else if (column.isAllowPivot()) {\n _this.columnsToPivot.push(column);\n }\n });\n };\n BodyDropPivotTarget.prototype.getIconName = function () {\n var totalColumns = this.columnsToAggregate.length + this.columnsToGroup.length + this.columnsToPivot.length;\n if (totalColumns > 0) {\n return this.pinned ? DragAndDropService.ICON_PINNED : DragAndDropService.ICON_MOVE;\n }\n return null;\n };\n /** Callback for when drag leaves */\n BodyDropPivotTarget.prototype.onDragLeave = function (draggingEvent) {\n // if we are taking columns out of the center, then we remove them from the report\n this.clearColumnsList();\n };\n BodyDropPivotTarget.prototype.clearColumnsList = function () {\n this.columnsToAggregate.length = 0;\n this.columnsToGroup.length = 0;\n this.columnsToPivot.length = 0;\n };\n /** Callback for when dragging */\n BodyDropPivotTarget.prototype.onDragging = function (draggingEvent) {\n };\n /** Callback for when drag stops */\n BodyDropPivotTarget.prototype.onDragStop = function (draggingEvent) {\n if (this.columnsToAggregate.length > 0) {\n this.columnModel.addValueColumns(this.columnsToAggregate, \"toolPanelDragAndDrop\");\n }\n if (this.columnsToGroup.length > 0) {\n this.columnModel.addRowGroupColumns(this.columnsToGroup, \"toolPanelDragAndDrop\");\n }\n if (this.columnsToPivot.length > 0) {\n this.columnModel.addPivotColumns(this.columnsToPivot, \"toolPanelDragAndDrop\");\n }\n };\n __decorate$1C([\n Autowired('columnModel')\n ], BodyDropPivotTarget.prototype, \"columnModel\", void 0);\n __decorate$1C([\n Autowired('gridOptionsService')\n ], BodyDropPivotTarget.prototype, \"gridOptionsService\", void 0);\n return BodyDropPivotTarget;\n}());\n\nvar __decorate$1B = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$i = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar MoveColumnFeature = /** @class */ (function () {\n function MoveColumnFeature(pinned, eContainer) {\n this.needToMoveLeft = false;\n this.needToMoveRight = false;\n this.lastMovedInfo = null;\n this.pinned = pinned;\n this.eContainer = eContainer;\n this.centerContainer = !exists(pinned);\n }\n MoveColumnFeature.prototype.init = function () {\n var _this = this;\n this.ctrlsService.whenReady(function () {\n _this.gridBodyCon = _this.ctrlsService.getGridBodyCtrl();\n });\n };\n MoveColumnFeature.prototype.getIconName = function () {\n return this.pinned ? DragAndDropService.ICON_PINNED : DragAndDropService.ICON_MOVE;\n };\n MoveColumnFeature.prototype.onDragEnter = function (draggingEvent) {\n // we do dummy drag, so make sure column appears in the right location when first placed\n var columns = draggingEvent.dragItem.columns;\n var dragCameFromToolPanel = draggingEvent.dragSource.type === DragSourceType.ToolPanel;\n if (dragCameFromToolPanel) {\n // the if statement doesn't work if drag leaves grid, then enters again\n this.setColumnsVisible(columns, true, \"uiColumnDragged\");\n }\n else {\n // restore previous state of visible columns upon re-entering. this means if the user drags\n // a group out, and then drags the group back in, only columns that were originally visible\n // will be visible again. otherwise a group with three columns (but only two visible) could\n // be dragged out, then when it's dragged in again, all three are visible. this stops that.\n var visibleState_1 = draggingEvent.dragItem.visibleState;\n var visibleColumns = (columns || []).filter(function (column) { return visibleState_1[column.getId()]; });\n this.setColumnsVisible(visibleColumns, true, \"uiColumnDragged\");\n }\n this.setColumnsPinned(columns, this.pinned, \"uiColumnDragged\");\n this.onDragging(draggingEvent, true, true);\n };\n MoveColumnFeature.prototype.onDragLeave = function () {\n this.ensureIntervalCleared();\n this.lastMovedInfo = null;\n };\n MoveColumnFeature.prototype.setColumnsVisible = function (columns, visible, source) {\n if (source === void 0) { source = \"api\"; }\n if (columns) {\n var allowedCols = columns.filter(function (c) { return !c.getColDef().lockVisible; });\n this.columnModel.setColumnsVisible(allowedCols, visible, source);\n }\n };\n MoveColumnFeature.prototype.setColumnsPinned = function (columns, pinned, source) {\n if (source === void 0) { source = \"api\"; }\n if (columns) {\n var allowedCols = columns.filter(function (c) { return !c.getColDef().lockPinned; });\n this.columnModel.setColumnsPinned(allowedCols, pinned, source);\n }\n };\n MoveColumnFeature.prototype.onDragStop = function () {\n this.onDragging(this.lastDraggingEvent, false, true, true);\n this.ensureIntervalCleared();\n this.lastMovedInfo = null;\n };\n MoveColumnFeature.prototype.normaliseX = function (x) {\n // flip the coordinate if doing RTL\n if (this.gridOptionsService.is('enableRtl')) {\n var clientWidth = this.eContainer.clientWidth;\n x = clientWidth - x;\n }\n // adjust for scroll only if centre container (the pinned containers don't scroll)\n if (this.centerContainer) {\n x += this.ctrlsService.getCenterRowContainerCtrl().getCenterViewportScrollLeft();\n }\n return x;\n };\n MoveColumnFeature.prototype.checkCenterForScrolling = function (xAdjustedForScroll) {\n if (this.centerContainer) {\n // scroll if the mouse has gone outside the grid (or just outside the scrollable part if pinning)\n // putting in 50 buffer, so even if user gets to edge of grid, a scroll will happen\n var firstVisiblePixel = this.ctrlsService.getCenterRowContainerCtrl().getCenterViewportScrollLeft();\n var lastVisiblePixel = firstVisiblePixel + this.ctrlsService.getCenterRowContainerCtrl().getCenterWidth();\n if (this.gridOptionsService.is('enableRtl')) {\n this.needToMoveRight = xAdjustedForScroll < (firstVisiblePixel + 50);\n this.needToMoveLeft = xAdjustedForScroll > (lastVisiblePixel - 50);\n }\n else {\n this.needToMoveLeft = xAdjustedForScroll < (firstVisiblePixel + 50);\n this.needToMoveRight = xAdjustedForScroll > (lastVisiblePixel - 50);\n }\n if (this.needToMoveLeft || this.needToMoveRight) {\n this.ensureIntervalStarted();\n }\n else {\n this.ensureIntervalCleared();\n }\n }\n };\n MoveColumnFeature.prototype.onDragging = function (draggingEvent, fromEnter, fakeEvent, finished) {\n var _this = this;\n var _a;\n if (draggingEvent === void 0) { draggingEvent = this.lastDraggingEvent; }\n if (fromEnter === void 0) { fromEnter = false; }\n if (fakeEvent === void 0) { fakeEvent = false; }\n if (finished === void 0) { finished = false; }\n if (finished) {\n if (this.lastMovedInfo) {\n var _b = this.lastMovedInfo, columns = _b.columns, toIndex = _b.toIndex;\n this.moveColumns(columns, toIndex, 'uiColumnMoved', true);\n }\n return;\n }\n this.lastDraggingEvent = draggingEvent;\n // if moving up or down (ie not left or right) then do nothing\n if (missing(draggingEvent.hDirection)) {\n return;\n }\n var mouseX = this.normaliseX(draggingEvent.x);\n // if the user is dragging into the panel, ie coming from the side panel into the main grid,\n // we don't want to scroll the grid this time, it would appear like the table is jumping\n // each time a column is dragged in.\n if (!fromEnter) {\n this.checkCenterForScrolling(mouseX);\n }\n var hDirection = this.normaliseDirection(draggingEvent.hDirection);\n var dragSourceType = draggingEvent.dragSource.type;\n var allMovingColumns = ((_a = draggingEvent.dragSource.getDragItem().columns) === null || _a === void 0 ? void 0 : _a.filter(function (col) {\n if (col.getColDef().lockPinned) {\n // if locked return true only if both col and container are same pin type.\n // double equals (==) here on purpose so that null==undefined is true (for not pinned options)\n return col.getPinned() == _this.pinned;\n }\n // if not pin locked, then always allowed to be in this container\n return true;\n })) || [];\n this.attemptMoveColumns({ dragSourceType: dragSourceType, allMovingColumns: allMovingColumns, hDirection: hDirection, mouseX: mouseX, fromEnter: fromEnter, fakeEvent: fakeEvent });\n };\n MoveColumnFeature.prototype.normaliseDirection = function (hDirection) {\n if (this.gridOptionsService.is('enableRtl')) {\n switch (hDirection) {\n case HorizontalDirection.Left: return HorizontalDirection.Right;\n case HorizontalDirection.Right: return HorizontalDirection.Left;\n default: console.error(\"AG Grid: Unknown direction \" + hDirection);\n }\n }\n else {\n return hDirection;\n }\n };\n MoveColumnFeature.prototype.attemptMoveColumns = function (params) {\n var dragSourceType = params.dragSourceType, hDirection = params.hDirection, mouseX = params.mouseX, fromEnter = params.fromEnter, fakeEvent = params.fakeEvent;\n var draggingLeft = hDirection === HorizontalDirection.Left;\n var draggingRight = hDirection === HorizontalDirection.Right;\n var allMovingColumns = params.allMovingColumns;\n if (dragSourceType === DragSourceType.HeaderCell) {\n // If the columns we're dragging are the only visible columns of their group, move the hidden ones too\n var newCols_1 = [];\n allMovingColumns.forEach(function (col) {\n var _a;\n var movingGroup = null;\n var parent = col.getParent();\n while (parent != null && parent.getDisplayedLeafColumns().length === 1) {\n movingGroup = parent;\n parent = parent.getParent();\n }\n if (movingGroup != null) {\n var isMarryChildren = !!((_a = movingGroup.getColGroupDef()) === null || _a === void 0 ? void 0 : _a.marryChildren);\n var columnsToMove = isMarryChildren\n // when marry children is true, we also have to move hidden\n // columns within the group, so grab them from the `providedColumnGroup`\n ? movingGroup.getProvidedColumnGroup().getLeafColumns()\n : movingGroup.getLeafColumns();\n columnsToMove.forEach(function (newCol) {\n if (!newCols_1.includes(newCol)) {\n newCols_1.push(newCol);\n }\n });\n }\n else if (!newCols_1.includes(col)) {\n newCols_1.push(col);\n }\n });\n allMovingColumns = newCols_1;\n }\n // it is important to sort the moving columns as they are in grid columns, as the list of moving columns\n // could themselves be part of 'married children' groups, which means we need to maintain the order within\n // the moving list.\n var allMovingColumnsOrdered = allMovingColumns.slice();\n this.columnModel.sortColumnsLikeGridColumns(allMovingColumnsOrdered);\n var validMoves = this.calculateValidMoves(allMovingColumnsOrdered, draggingRight, mouseX);\n // if cols are not adjacent, then this returns null. when moving, we constrain the direction of the move\n // (ie left or right) to the mouse direction. however\n var oldIndex = this.calculateOldIndex(allMovingColumnsOrdered);\n if (validMoves.length === 0) {\n return;\n }\n var firstValidMove = validMoves[0];\n // the two check below stop an error when the user grabs a group my a middle column, then\n // it is possible the mouse pointer is to the right of a column while been dragged left.\n // so we need to make sure that the mouse pointer is actually left of the left most column\n // if moving left, and right of the right most column if moving right\n // we check 'fromEnter' below so we move the column to the new spot if the mouse is coming from\n // outside the grid, eg if the column is moving from side panel, mouse is moving left, then we should\n // place the column to the RHS even if the mouse is moving left and the column is already on\n // the LHS. otherwise we stick to the rule described above.\n var constrainDirection = oldIndex !== null && !fromEnter;\n // don't consider 'fromEnter' when dragging header cells, otherwise group can jump to opposite direction of drag\n if (dragSourceType == DragSourceType.HeaderCell) {\n constrainDirection = oldIndex !== null;\n }\n // if the event was faked by a change in column pin state, then the original location of the column\n // is not reliable for dictating where the column may now be placed.\n if (constrainDirection && !fakeEvent) {\n // only allow left drag if this column is moving left\n if (draggingLeft && firstValidMove >= oldIndex) {\n return;\n }\n // only allow right drag if this column is moving right\n if (draggingRight && firstValidMove <= oldIndex) {\n return;\n }\n }\n // From when we find a move that passes all the rules\n // Remember what that move would look like in terms of displayed cols\n // keep going with further moves until we find a different result in displayed output\n // In this way potentialMoves contains all potential moves over 'hidden' columns\n var displayedCols = this.columnModel.getAllDisplayedColumns();\n var potentialMoves = [];\n var targetOrder = null;\n for (var i = 0; i < validMoves.length; i++) {\n var move = validMoves[i];\n var order = this.columnModel.getProposedColumnOrder(allMovingColumnsOrdered, move);\n if (!this.columnModel.doesOrderPassRules(order)) {\n continue;\n }\n var displayedOrder = order.filter(function (col) { return displayedCols.includes(col); });\n if (targetOrder === null) {\n targetOrder = displayedOrder;\n }\n else if (!_.areEqual(displayedOrder, targetOrder)) {\n break; // Stop looking for potential moves if the displayed result changes from the target\n }\n var fragCount = this.groupFragCount(order);\n potentialMoves.push({ move: move, fragCount: fragCount });\n }\n if (potentialMoves.length === 0) {\n return;\n }\n // The best move is the move with least group fragmentation\n potentialMoves.sort(function (a, b) { return a.fragCount - b.fragCount; });\n this.moveColumns(allMovingColumns, potentialMoves[0].move, 'uiColumnMoved', false);\n };\n // returns the index of the first column in the list ONLY if the cols are all beside\n // each other. if the cols are not beside each other, then returns null\n MoveColumnFeature.prototype.calculateOldIndex = function (movingCols) {\n var gridCols = this.columnModel.getAllGridColumns();\n var indexes = sortNumerically(movingCols.map(function (col) { return gridCols.indexOf(col); }));\n var firstIndex = indexes[0];\n var lastIndex = last(indexes);\n var spread = lastIndex - firstIndex;\n var gapsExist = spread !== indexes.length - 1;\n return gapsExist ? null : firstIndex;\n };\n MoveColumnFeature.prototype.moveColumns = function (columns, toIndex, source, finished) {\n this.columnModel.moveColumns(columns, toIndex, source, finished);\n this.lastMovedInfo = finished ? null : { columns: columns, toIndex: toIndex };\n };\n // A measure of how fragmented in terms of groups an order of columns is\n MoveColumnFeature.prototype.groupFragCount = function (columns) {\n function parents(col) {\n var result = [];\n var parent = col.getOriginalParent();\n while (parent != null) {\n result.push(parent);\n parent = parent.getOriginalParent();\n }\n return result;\n }\n var count = 0;\n var _loop_1 = function (i) {\n var _a;\n var a = parents(columns[i]);\n var b = parents(columns[i + 1]);\n // iterate over the longest one\n _a = __read$i(a.length > b.length ? [a, b] : [b, a], 2), a = _a[0], b = _a[1];\n a.forEach(function (parent) {\n if (b.indexOf(parent) === -1) {\n count++; // More fragmented if other column doesn't share the parent\n }\n });\n };\n for (var i = 0; i < columns.length - 1; i++) {\n _loop_1(i);\n }\n return count;\n };\n MoveColumnFeature.prototype.calculateValidMoves = function (movingCols, draggingRight, mouseX) {\n var isMoveBlocked = this.gridOptionsService.is('suppressMovableColumns') || movingCols.some(function (col) { return col.getColDef().suppressMovable; });\n if (isMoveBlocked) {\n return [];\n }\n // this is the list of cols on the screen, so it's these we use when comparing the x mouse position\n var allDisplayedCols = this.columnModel.getDisplayedColumns(this.pinned);\n // but this list is the list of all cols, when we move a col it's the index within this list that gets used,\n // so the result we return has to be and index location for this list\n var allGridCols = this.columnModel.getAllGridColumns();\n var movingDisplayedCols = allDisplayedCols.filter(function (col) { return includes(movingCols, col); });\n var otherDisplayedCols = allDisplayedCols.filter(function (col) { return !includes(movingCols, col); });\n var otherGridCols = allGridCols.filter(function (col) { return !includes(movingCols, col); });\n // work out how many DISPLAYED columns fit before the 'x' position. this gives us the displayIndex.\n // for example, if cols are a,b,c,d and we find a,b fit before 'x', then we want to place the moving\n // col between b and c (so that it is under the mouse position).\n var displayIndex = 0;\n var availableWidth = mouseX;\n // if we are dragging right, then the columns will be to the left of the mouse, so we also want to\n // include the width of the moving columns\n if (draggingRight) {\n var widthOfMovingDisplayedCols_1 = 0;\n movingDisplayedCols.forEach(function (col) { return widthOfMovingDisplayedCols_1 += col.getActualWidth(); });\n availableWidth -= widthOfMovingDisplayedCols_1;\n }\n if (availableWidth > 0) {\n // now count how many of the displayed columns will fit to the left\n for (var i = 0; i < otherDisplayedCols.length; i++) {\n var col = otherDisplayedCols[i];\n availableWidth -= col.getActualWidth();\n if (availableWidth < 0) {\n break;\n }\n displayIndex++;\n }\n // trial and error, if going right, we adjust by one, i didn't manage to quantify why, but it works\n if (draggingRight) {\n displayIndex++;\n }\n }\n // the display index is with respect to all the showing columns, however when we move, it's with\n // respect to all grid columns, so we need to translate from display index to grid index\n var firstValidMove;\n if (displayIndex > 0) {\n var leftColumn = otherDisplayedCols[displayIndex - 1];\n firstValidMove = otherGridCols.indexOf(leftColumn) + 1;\n }\n else {\n firstValidMove = otherGridCols.indexOf(otherDisplayedCols[0]);\n if (firstValidMove === -1) {\n firstValidMove = 0;\n }\n }\n var validMoves = [firstValidMove];\n var numberComparator = function (a, b) { return a - b; };\n // add in other valid moves due to hidden columns and married children. for example, a particular\n // move might break a group that has married children (so move isn't valid), however there could\n // be hidden columns (not displayed) that we could jump over to make the move valid. because\n // they are hidden, user doesn't see any different, however it allows moves that would otherwise\n // not work. for example imagine a group with 9 columns and all columns are hidden except the\n // middle one (so 4 hidden to left, 4 hidden to right), then when moving 'firstValidMove' will\n // be relative to the not-shown column, however we need to consider the move jumping over all the\n // hidden children. if we didn't do this, then if the group just described was at the end (RHS) of the\n // grid, there would be no way to put a column after it (as the grid would only consider beside the\n // visible column, which would fail valid move rules).\n if (draggingRight) {\n // if dragging right, then we add all the additional moves to the right. so in other words\n // if the next move is not valid, find the next move to the right that is valid.\n var pointer = firstValidMove + 1;\n var lastIndex = allGridCols.length - 1;\n while (pointer <= lastIndex) {\n validMoves.push(pointer);\n pointer++;\n }\n // adding columns here means the order is now messed up\n validMoves.sort(numberComparator);\n }\n else {\n // if dragging left we do the reverse of dragging right, we add in all the valid moves to the\n // left. however we also have to consider moves to the right for all hidden columns first.\n // (this logic is hard to reason with, it was worked out with trial and error,\n // more observation rather than science).\n // add moves to the right\n var pointer = firstValidMove;\n var lastIndex = allGridCols.length - 1;\n var displacedCol = allGridCols[pointer];\n while (pointer <= lastIndex && this.isColumnHidden(allDisplayedCols, displacedCol)) {\n pointer++;\n validMoves.push(pointer);\n displacedCol = allGridCols[pointer];\n }\n // add moves to the left\n pointer = firstValidMove - 1;\n var firstDisplayIndex = 0;\n while (pointer >= firstDisplayIndex) {\n validMoves.push(pointer);\n pointer--;\n }\n // adding columns here means the order is now messed up\n validMoves.sort(numberComparator).reverse();\n }\n return validMoves;\n };\n // isHidden takes into account visible=false and group=closed, ie it is not displayed\n MoveColumnFeature.prototype.isColumnHidden = function (displayedColumns, col) {\n return displayedColumns.indexOf(col) < 0;\n };\n MoveColumnFeature.prototype.ensureIntervalStarted = function () {\n if (!this.movingIntervalId) {\n this.intervalCount = 0;\n this.failedMoveAttempts = 0;\n this.movingIntervalId = window.setInterval(this.moveInterval.bind(this), 100);\n if (this.needToMoveLeft) {\n this.dragAndDropService.setGhostIcon(DragAndDropService.ICON_LEFT, true);\n }\n else {\n this.dragAndDropService.setGhostIcon(DragAndDropService.ICON_RIGHT, true);\n }\n }\n };\n MoveColumnFeature.prototype.ensureIntervalCleared = function () {\n if (this.movingIntervalId) {\n window.clearInterval(this.movingIntervalId);\n this.movingIntervalId = null;\n this.dragAndDropService.setGhostIcon(DragAndDropService.ICON_MOVE);\n }\n };\n MoveColumnFeature.prototype.moveInterval = function () {\n // the amounts we move get bigger at each interval, so the speed accelerates, starting a bit slow\n // and getting faster. this is to give smoother user experience. we max at 100px to limit the speed.\n var pixelsToMove;\n this.intervalCount++;\n pixelsToMove = 10 + (this.intervalCount * 5);\n if (pixelsToMove > 100) {\n pixelsToMove = 100;\n }\n var pixelsMoved = null;\n var scrollFeature = this.gridBodyCon.getScrollFeature();\n if (this.needToMoveLeft) {\n pixelsMoved = scrollFeature.scrollHorizontally(-pixelsToMove);\n }\n else if (this.needToMoveRight) {\n pixelsMoved = scrollFeature.scrollHorizontally(pixelsToMove);\n }\n if (pixelsMoved !== 0) {\n this.onDragging(this.lastDraggingEvent);\n this.failedMoveAttempts = 0;\n }\n else {\n // we count the failed move attempts. if we fail to move 7 times, then we pin the column.\n // this is how we achieve pining by dragging the column to the edge of the grid.\n this.failedMoveAttempts++;\n var columns = this.lastDraggingEvent.dragItem.columns;\n var columnsThatCanPin = columns.filter(function (c) { return !c.getColDef().lockPinned; });\n if (columnsThatCanPin.length > 0) {\n this.dragAndDropService.setGhostIcon(DragAndDropService.ICON_PINNED);\n if (this.failedMoveAttempts > 7) {\n var pinType = this.needToMoveLeft ? 'left' : 'right';\n this.setColumnsPinned(columnsThatCanPin, pinType, \"uiColumnDragged\");\n this.dragAndDropService.nudge();\n }\n }\n }\n };\n __decorate$1B([\n Autowired('columnModel')\n ], MoveColumnFeature.prototype, \"columnModel\", void 0);\n __decorate$1B([\n Autowired('dragAndDropService')\n ], MoveColumnFeature.prototype, \"dragAndDropService\", void 0);\n __decorate$1B([\n Autowired('gridOptionsService')\n ], MoveColumnFeature.prototype, \"gridOptionsService\", void 0);\n __decorate$1B([\n Autowired('ctrlsService')\n ], MoveColumnFeature.prototype, \"ctrlsService\", void 0);\n __decorate$1B([\n PostConstruct\n ], MoveColumnFeature.prototype, \"init\", null);\n return MoveColumnFeature;\n}());\n\nvar __extends$1F = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar BodyDropTarget = /** @class */ (function (_super) {\n __extends$1F(BodyDropTarget, _super);\n function BodyDropTarget(pinned, eContainer) {\n var _this = _super.call(this) || this;\n _this.pinned = pinned;\n _this.eContainer = eContainer;\n return _this;\n }\n BodyDropTarget.prototype.postConstruct = function () {\n var _this = this;\n this.ctrlsService.whenReady(function (p) {\n switch (_this.pinned) {\n case 'left':\n _this.eSecondaryContainers = [\n [p.gridBodyCtrl.getBodyViewportElement(), p.leftRowContainerCtrl.getContainerElement()],\n [p.bottomLeftRowContainerCtrl.getContainerElement()],\n [p.topLeftRowContainerCtrl.getContainerElement()]\n ];\n break;\n case 'right':\n _this.eSecondaryContainers = [\n [p.gridBodyCtrl.getBodyViewportElement(), p.rightRowContainerCtrl.getContainerElement()],\n [p.bottomRightRowContainerCtrl.getContainerElement()],\n [p.topRightRowContainerCtrl.getContainerElement()]\n ];\n break;\n default:\n _this.eSecondaryContainers = [\n [p.gridBodyCtrl.getBodyViewportElement(), p.centerRowContainerCtrl.getViewportElement()],\n [p.bottomCenterRowContainerCtrl.getViewportElement()],\n [p.topCenterRowContainerCtrl.getViewportElement()]\n ];\n break;\n }\n });\n };\n BodyDropTarget.prototype.isInterestedIn = function (type) {\n return type === DragSourceType.HeaderCell ||\n (type === DragSourceType.ToolPanel && this.gridOptionsService.is('allowDragFromColumnsToolPanel'));\n };\n BodyDropTarget.prototype.getSecondaryContainers = function () {\n return this.eSecondaryContainers;\n };\n BodyDropTarget.prototype.getContainer = function () {\n return this.eContainer;\n };\n BodyDropTarget.prototype.init = function () {\n this.moveColumnFeature = this.createManagedBean(new MoveColumnFeature(this.pinned, this.eContainer));\n this.bodyDropPivotTarget = this.createManagedBean(new BodyDropPivotTarget(this.pinned));\n this.dragAndDropService.addDropTarget(this);\n };\n BodyDropTarget.prototype.getIconName = function () {\n return this.currentDropListener.getIconName();\n };\n // we want to use the bodyPivotTarget if the user is dragging columns in from the toolPanel\n // and we are in pivot mode, as it has to logic to set pivot/value/group on the columns when\n // dropped into the grid's body.\n BodyDropTarget.prototype.isDropColumnInPivotMode = function (draggingEvent) {\n // in pivot mode, then if moving a column (ie didn't come from toolpanel) then it's\n // a standard column move, however if it came from the toolpanel, then we are introducing\n // dimensions or values to the grid\n return this.columnModel.isPivotMode() && draggingEvent.dragSource.type === DragSourceType.ToolPanel;\n };\n BodyDropTarget.prototype.onDragEnter = function (draggingEvent) {\n // we pick the drop listener depending on whether we are in pivot mode are not. if we are\n // in pivot mode, then dropping cols changes the row group, pivot, value stats. otherwise\n // we change visibility state and position.\n this.currentDropListener = this.isDropColumnInPivotMode(draggingEvent) ? this.bodyDropPivotTarget : this.moveColumnFeature;\n this.currentDropListener.onDragEnter(draggingEvent);\n };\n BodyDropTarget.prototype.onDragLeave = function (params) {\n this.currentDropListener.onDragLeave(params);\n };\n BodyDropTarget.prototype.onDragging = function (params) {\n this.currentDropListener.onDragging(params);\n };\n BodyDropTarget.prototype.onDragStop = function (params) {\n this.currentDropListener.onDragStop(params);\n };\n __decorate$1A([\n Autowired('dragAndDropService')\n ], BodyDropTarget.prototype, \"dragAndDropService\", void 0);\n __decorate$1A([\n Autowired('columnModel')\n ], BodyDropTarget.prototype, \"columnModel\", void 0);\n __decorate$1A([\n Autowired('ctrlsService')\n ], BodyDropTarget.prototype, \"ctrlsService\", void 0);\n __decorate$1A([\n PostConstruct\n ], BodyDropTarget.prototype, \"postConstruct\", null);\n __decorate$1A([\n PostConstruct\n ], BodyDropTarget.prototype, \"init\", null);\n return BodyDropTarget;\n}(BeanStub));\n\nvar __read$h = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$f = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar CssClassApplier = /** @class */ (function () {\n function CssClassApplier() {\n }\n CssClassApplier.getHeaderClassesFromColDef = function (abstractColDef, gridOptionsService, column, columnGroup) {\n if (missing(abstractColDef)) {\n return [];\n }\n return this.getColumnClassesFromCollDef(abstractColDef.headerClass, abstractColDef, gridOptionsService, column, columnGroup);\n };\n CssClassApplier.getToolPanelClassesFromColDef = function (abstractColDef, gridOptionsService, column, columnGroup) {\n if (missing(abstractColDef)) {\n return [];\n }\n return this.getColumnClassesFromCollDef(abstractColDef.toolPanelClass, abstractColDef, gridOptionsService, column, columnGroup);\n };\n CssClassApplier.getClassParams = function (abstractColDef, gridOptionsService, column, columnGroup) {\n return {\n // bad naming, as colDef here can be a group or a column,\n // however most people won't appreciate the difference,\n // so keeping it as colDef to avoid confusion.\n colDef: abstractColDef,\n column: column,\n columnGroup: columnGroup,\n api: gridOptionsService.api,\n columnApi: gridOptionsService.columnApi,\n context: gridOptionsService.context\n };\n };\n CssClassApplier.getColumnClassesFromCollDef = function (classesOrFunc, abstractColDef, gridOptionsService, column, columnGroup) {\n if (missing(classesOrFunc)) {\n return [];\n }\n var classToUse;\n if (typeof classesOrFunc === 'function') {\n var params = this.getClassParams(abstractColDef, gridOptionsService, column, columnGroup);\n classToUse = classesOrFunc(params);\n }\n else {\n classToUse = classesOrFunc;\n }\n if (typeof classToUse === 'string') {\n return [classToUse];\n }\n if (Array.isArray(classToUse)) {\n return __spreadArray$f([], __read$h(classToUse));\n }\n return [];\n };\n return CssClassApplier;\n}());\n\nvar __extends$1E = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderCellComp = /** @class */ (function (_super) {\n __extends$1E(HeaderCellComp, _super);\n function HeaderCellComp(ctrl) {\n var _this = _super.call(this, HeaderCellComp.TEMPLATE, ctrl) || this;\n _this.headerCompVersion = 0;\n _this.column = ctrl.getColumnGroupChild();\n _this.pinned = ctrl.getPinned();\n return _this;\n }\n HeaderCellComp.prototype.postConstruct = function () {\n var _this = this;\n var eGui = this.getGui();\n var setAttribute = function (name, value) {\n if (value != null && value != '') {\n eGui.setAttribute(name, value);\n }\n else {\n eGui.removeAttribute(name);\n }\n };\n setAttribute('col-id', this.column.getColId());\n var compProxy = {\n setWidth: function (width) { return eGui.style.width = width; },\n addOrRemoveCssClass: function (cssClassName, on) { return _this.addOrRemoveCssClass(cssClassName, on); },\n setAriaDescription: function (label) { return setAriaDescription(eGui, label); },\n setAriaSort: function (sort) { return sort ? setAriaSort(eGui, sort) : removeAriaSort(eGui); },\n setUserCompDetails: function (compDetails) { return _this.setUserCompDetails(compDetails); },\n getUserCompInstance: function () { return _this.headerComp; }\n };\n this.ctrl.setComp(compProxy, this.getGui(), this.eResize, this.eHeaderCompWrapper);\n var selectAllGui = this.ctrl.getSelectAllGui();\n this.eResize.insertAdjacentElement('afterend', selectAllGui);\n };\n HeaderCellComp.prototype.destroyHeaderComp = function () {\n if (this.headerComp) {\n this.eHeaderCompWrapper.removeChild(this.headerCompGui);\n this.headerComp = this.destroyBean(this.headerComp);\n this.headerCompGui = undefined;\n }\n };\n HeaderCellComp.prototype.setUserCompDetails = function (compDetails) {\n var _this = this;\n this.headerCompVersion++;\n var versionCopy = this.headerCompVersion;\n compDetails.newAgStackInstance().then(function (comp) { return _this.afterCompCreated(versionCopy, comp); });\n };\n HeaderCellComp.prototype.afterCompCreated = function (version, headerComp) {\n if (version != this.headerCompVersion || !this.isAlive()) {\n this.destroyBean(headerComp);\n return;\n }\n this.destroyHeaderComp();\n this.headerComp = headerComp;\n this.headerCompGui = headerComp.getGui();\n this.eHeaderCompWrapper.appendChild(this.headerCompGui);\n this.ctrl.setDragSource(this.getGui());\n };\n HeaderCellComp.TEMPLATE = \"
\\n
\\n
\\n
\";\n __decorate$1z([\n RefSelector('eResize')\n ], HeaderCellComp.prototype, \"eResize\", void 0);\n __decorate$1z([\n RefSelector('eHeaderCompWrapper')\n ], HeaderCellComp.prototype, \"eHeaderCompWrapper\", void 0);\n __decorate$1z([\n PostConstruct\n ], HeaderCellComp.prototype, \"postConstruct\", null);\n __decorate$1z([\n PreDestroy\n ], HeaderCellComp.prototype, \"destroyHeaderComp\", null);\n return HeaderCellComp;\n}(AbstractHeaderCellComp));\n\nvar __extends$1D = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderGroupCellComp = /** @class */ (function (_super) {\n __extends$1D(HeaderGroupCellComp, _super);\n function HeaderGroupCellComp(ctrl) {\n return _super.call(this, HeaderGroupCellComp.TEMPLATE, ctrl) || this;\n }\n HeaderGroupCellComp.prototype.postConstruct = function () {\n var _this = this;\n var eGui = this.getGui();\n var setAttribute = function (key, value) {\n return value != undefined ? eGui.setAttribute(key, value) : eGui.removeAttribute(key);\n };\n eGui.setAttribute(\"col-id\", this.ctrl.getColId());\n var compProxy = {\n addOrRemoveCssClass: function (cssClassName, on) { return _this.addOrRemoveCssClass(cssClassName, on); },\n setResizableDisplayed: function (displayed) { return setDisplayed(_this.eResize, displayed); },\n setWidth: function (width) { return eGui.style.width = width; },\n setAriaExpanded: function (expanded) { return setAttribute('aria-expanded', expanded); },\n setUserCompDetails: function (details) { return _this.setUserCompDetails(details); }\n };\n this.ctrl.setComp(compProxy, eGui, this.eResize);\n };\n HeaderGroupCellComp.prototype.setUserCompDetails = function (details) {\n var _this = this;\n details.newAgStackInstance().then(function (comp) { return _this.afterHeaderCompCreated(comp); });\n };\n HeaderGroupCellComp.prototype.afterHeaderCompCreated = function (headerGroupComp) {\n var _this = this;\n var destroyFunc = function () { return _this.destroyBean(headerGroupComp); };\n if (!this.isAlive()) {\n destroyFunc();\n return;\n }\n var eGui = this.getGui();\n var eHeaderGroupGui = headerGroupComp.getGui();\n eGui.appendChild(eHeaderGroupGui);\n this.addDestroyFunc(destroyFunc);\n this.ctrl.setDragSource(eGui);\n };\n HeaderGroupCellComp.TEMPLATE = \"
\\n
\\n
\";\n __decorate$1y([\n Autowired('userComponentFactory')\n ], HeaderGroupCellComp.prototype, \"userComponentFactory\", void 0);\n __decorate$1y([\n RefSelector('eResize')\n ], HeaderGroupCellComp.prototype, \"eResize\", void 0);\n __decorate$1y([\n PostConstruct\n ], HeaderGroupCellComp.prototype, \"postConstruct\", null);\n return HeaderGroupCellComp;\n}(AbstractHeaderCellComp));\n\nvar __extends$1C = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderRowType;\n(function (HeaderRowType) {\n HeaderRowType[\"COLUMN_GROUP\"] = \"group\";\n HeaderRowType[\"COLUMN\"] = \"column\";\n HeaderRowType[\"FLOATING_FILTER\"] = \"filter\";\n})(HeaderRowType || (HeaderRowType = {}));\nvar HeaderRowComp = /** @class */ (function (_super) {\n __extends$1C(HeaderRowComp, _super);\n function HeaderRowComp(ctrl) {\n var _this = _super.call(this) || this;\n _this.headerComps = {};\n _this.ctrl = ctrl;\n _this.setTemplate(/* html */ \"
\");\n return _this;\n }\n //noinspection JSUnusedLocalSymbols\n HeaderRowComp.prototype.init = function () {\n var _this = this;\n this.getGui().style.transform = this.ctrl.getTransform();\n setAriaRowIndex(this.getGui(), this.ctrl.getAriaRowIndex());\n var compProxy = {\n setHeight: function (height) { return _this.getGui().style.height = height; },\n setTop: function (top) { return _this.getGui().style.top = top; },\n setHeaderCtrls: function (ctrls, forceOrder) { return _this.setHeaderCtrls(ctrls, forceOrder); },\n setWidth: function (width) { return _this.getGui().style.width = width; },\n };\n this.ctrl.setComp(compProxy);\n };\n HeaderRowComp.prototype.destroyHeaderCtrls = function () {\n this.setHeaderCtrls([], false);\n };\n HeaderRowComp.prototype.setHeaderCtrls = function (ctrls, forceOrder) {\n var _this = this;\n if (!this.isAlive()) {\n return;\n }\n var oldComps = this.headerComps;\n this.headerComps = {};\n ctrls.forEach(function (ctrl) {\n var id = ctrl.getInstanceId();\n var comp = oldComps[id];\n delete oldComps[id];\n if (comp == null) {\n comp = _this.createHeaderComp(ctrl);\n _this.getGui().appendChild(comp.getGui());\n }\n _this.headerComps[id] = comp;\n });\n iterateObject(oldComps, function (id, comp) {\n _this.getGui().removeChild(comp.getGui());\n _this.destroyBean(comp);\n });\n if (forceOrder) {\n var comps = getAllValuesInObject(this.headerComps);\n // ordering the columns by left position orders them in the order they appear on the screen\n comps.sort(function (a, b) {\n var leftA = a.getCtrl().getColumnGroupChild().getLeft();\n var leftB = b.getCtrl().getColumnGroupChild().getLeft();\n return leftA - leftB;\n });\n var elementsInOrder = comps.map(function (c) { return c.getGui(); });\n setDomChildOrder(this.getGui(), elementsInOrder);\n }\n };\n HeaderRowComp.prototype.createHeaderComp = function (headerCtrl) {\n var result;\n switch (this.ctrl.getType()) {\n case HeaderRowType.COLUMN_GROUP:\n result = new HeaderGroupCellComp(headerCtrl);\n break;\n case HeaderRowType.FLOATING_FILTER:\n result = new HeaderFilterCellComp(headerCtrl);\n break;\n default:\n result = new HeaderCellComp(headerCtrl);\n break;\n }\n this.createBean(result);\n result.setParentComponent(this);\n return result;\n };\n __decorate$1x([\n PostConstruct\n ], HeaderRowComp.prototype, \"init\", null);\n __decorate$1x([\n PreDestroy\n ], HeaderRowComp.prototype, \"destroyHeaderCtrls\", null);\n return HeaderRowComp;\n}(Component));\n\nvar __extends$1B = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar instanceIdSequence$1 = 0;\nvar AbstractHeaderCellCtrl = /** @class */ (function (_super) {\n __extends$1B(AbstractHeaderCellCtrl, _super);\n function AbstractHeaderCellCtrl(columnGroupChild, parentRowCtrl) {\n var _this = _super.call(this) || this;\n _this.lastFocusEvent = null;\n _this.columnGroupChild = columnGroupChild;\n _this.parentRowCtrl = parentRowCtrl;\n // unique id to this instance, including the column ID to help with debugging in React as it's used in 'key'\n _this.instanceId = columnGroupChild.getUniqueId() + '-' + instanceIdSequence$1++;\n return _this;\n }\n AbstractHeaderCellCtrl.prototype.shouldStopEventPropagation = function (e) {\n var _a = this.focusService.getFocusedHeader(), headerRowIndex = _a.headerRowIndex, column = _a.column;\n return isUserSuppressingHeaderKeyboardEvent(this.gridOptionsService, e, headerRowIndex, column);\n };\n AbstractHeaderCellCtrl.prototype.getWrapperHasFocus = function () {\n var eDocument = this.gridOptionsService.getDocument();\n var activeEl = eDocument.activeElement;\n return activeEl === this.eGui;\n };\n AbstractHeaderCellCtrl.prototype.setGui = function (eGui) {\n this.eGui = eGui;\n this.addDomData();\n };\n AbstractHeaderCellCtrl.prototype.handleKeyDown = function (e) {\n var wrapperHasFocus = this.getWrapperHasFocus();\n switch (e.key) {\n case KeyCode.PAGE_DOWN:\n case KeyCode.PAGE_UP:\n case KeyCode.PAGE_HOME:\n case KeyCode.PAGE_END:\n if (wrapperHasFocus) {\n e.preventDefault();\n }\n }\n };\n AbstractHeaderCellCtrl.prototype.addDomData = function () {\n var _this = this;\n var key = AbstractHeaderCellCtrl.DOM_DATA_KEY_HEADER_CTRL;\n this.gridOptionsService.setDomData(this.eGui, key, this);\n this.addDestroyFunc(function () { return _this.gridOptionsService.setDomData(_this.eGui, key, null); });\n };\n AbstractHeaderCellCtrl.prototype.getGui = function () {\n return this.eGui;\n };\n AbstractHeaderCellCtrl.prototype.focus = function (event) {\n if (!this.eGui) {\n return false;\n }\n this.lastFocusEvent = event || null;\n this.eGui.focus();\n return true;\n };\n AbstractHeaderCellCtrl.prototype.getRowIndex = function () {\n return this.parentRowCtrl.getRowIndex();\n };\n AbstractHeaderCellCtrl.prototype.getParentRowCtrl = function () {\n return this.parentRowCtrl;\n };\n AbstractHeaderCellCtrl.prototype.getPinned = function () {\n return this.parentRowCtrl.getPinned();\n };\n AbstractHeaderCellCtrl.prototype.getInstanceId = function () {\n return this.instanceId;\n };\n AbstractHeaderCellCtrl.prototype.getColumnGroupChild = function () {\n return this.columnGroupChild;\n };\n AbstractHeaderCellCtrl.DOM_DATA_KEY_HEADER_CTRL = 'headerCtrl';\n __decorate$1w([\n Autowired('focusService')\n ], AbstractHeaderCellCtrl.prototype, \"focusService\", void 0);\n __decorate$1w([\n Autowired('beans')\n ], AbstractHeaderCellCtrl.prototype, \"beans\", void 0);\n __decorate$1w([\n Autowired('userComponentFactory')\n ], AbstractHeaderCellCtrl.prototype, \"userComponentFactory\", void 0);\n return AbstractHeaderCellCtrl;\n}(BeanStub));\n\nvar __extends$1A = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SetLeftFeature = /** @class */ (function (_super) {\n __extends$1A(SetLeftFeature, _super);\n function SetLeftFeature(columnOrGroup, eCell, beans, colsSpanning) {\n var _this = _super.call(this) || this;\n _this.columnOrGroup = columnOrGroup;\n _this.eCell = eCell;\n _this.ariaEl = _this.eCell.querySelector('[role=columnheader]') || _this.eCell;\n _this.colsSpanning = colsSpanning;\n _this.beans = beans;\n return _this;\n }\n SetLeftFeature.prototype.setColsSpanning = function (colsSpanning) {\n this.colsSpanning = colsSpanning;\n this.onLeftChanged();\n };\n SetLeftFeature.prototype.getColumnOrGroup = function () {\n if (this.beans.gridOptionsService.is('enableRtl') && this.colsSpanning) {\n return last(this.colsSpanning);\n }\n return this.columnOrGroup;\n };\n SetLeftFeature.prototype.postConstruct = function () {\n this.addManagedListener(this.columnOrGroup, Column.EVENT_LEFT_CHANGED, this.onLeftChanged.bind(this));\n this.setLeftFirstTime();\n // when in print layout, the left position is also dependent on the width of the pinned sections.\n // so additionally update left if any column width changes.\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, this.onLeftChanged.bind(this));\n // setting left has a dependency on print layout\n this.addManagedPropertyListener('domLayout', this.onLeftChanged.bind(this));\n };\n SetLeftFeature.prototype.setLeftFirstTime = function () {\n var suppressMoveAnimation = this.beans.gridOptionsService.is('suppressColumnMoveAnimation');\n var oldLeftExists = exists(this.columnOrGroup.getOldLeft());\n var animateColumnMove = this.beans.columnAnimationService.isActive() && oldLeftExists && !suppressMoveAnimation;\n if (animateColumnMove) {\n this.animateInLeft();\n }\n else {\n this.onLeftChanged();\n }\n };\n SetLeftFeature.prototype.animateInLeft = function () {\n var _this = this;\n var colOrGroup = this.getColumnOrGroup();\n var left = colOrGroup.getLeft();\n var oldLeft = colOrGroup.getOldLeft();\n var oldActualLeft = this.modifyLeftForPrintLayout(colOrGroup, oldLeft);\n var actualLeft = this.modifyLeftForPrintLayout(colOrGroup, left);\n this.setLeft(oldActualLeft);\n // we must keep track of the left we want to set to, as this would otherwise lead to a race\n // condition, if the user changed the left value many times in one VM turn, then we want to make\n // make sure the actualLeft we set in the timeout below (in the next VM turn) is the correct left\n // position. eg if user changes column position twice, then setLeft() below executes twice in next\n // VM turn, but only one (the correct one) should get applied.\n this.actualLeft = actualLeft;\n this.beans.columnAnimationService.executeNextVMTurn(function () {\n // test this left value is the latest one to be applied, and if not, do nothing\n if (_this.actualLeft === actualLeft) {\n _this.setLeft(actualLeft);\n }\n });\n };\n SetLeftFeature.prototype.onLeftChanged = function () {\n var colOrGroup = this.getColumnOrGroup();\n var left = colOrGroup.getLeft();\n this.actualLeft = this.modifyLeftForPrintLayout(colOrGroup, left);\n this.setLeft(this.actualLeft);\n };\n SetLeftFeature.prototype.modifyLeftForPrintLayout = function (colOrGroup, leftPosition) {\n var printLayout = this.beans.gridOptionsService.isDomLayout('print');\n if (!printLayout) {\n return leftPosition;\n }\n if (colOrGroup.getPinned() === 'left') {\n return leftPosition;\n }\n var leftWidth = this.beans.columnModel.getDisplayedColumnsLeftWidth();\n if (colOrGroup.getPinned() === 'right') {\n var bodyWidth = this.beans.columnModel.getBodyContainerWidth();\n return leftWidth + bodyWidth + leftPosition;\n }\n // is in body\n return leftWidth + leftPosition;\n };\n SetLeftFeature.prototype.setLeft = function (value) {\n // if the value is null, then that means the column is no longer\n // displayed. there is logic in the rendering to fade these columns\n // out, so we don't try and change their left positions.\n if (exists(value)) {\n this.eCell.style.left = value + \"px\";\n }\n var indexColumn;\n if (this.columnOrGroup instanceof Column) {\n indexColumn = this.columnOrGroup;\n }\n else {\n var columnGroup = this.columnOrGroup;\n var children = columnGroup.getLeafColumns();\n if (!children.length) {\n return;\n }\n if (children.length > 1) {\n setAriaColSpan(this.ariaEl, children.length);\n }\n indexColumn = children[0];\n }\n var index = this.beans.columnModel.getAriaColumnIndex(indexColumn);\n setAriaColIndex(this.ariaEl, index);\n };\n __decorate$1v([\n PostConstruct\n ], SetLeftFeature.prototype, \"postConstruct\", null);\n return SetLeftFeature;\n}(BeanStub));\n\nvar __extends$1z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HoverFeature = /** @class */ (function (_super) {\n __extends$1z(HoverFeature, _super);\n function HoverFeature(columns, element) {\n var _this = _super.call(this) || this;\n _this.columns = columns;\n _this.element = element;\n return _this;\n }\n HoverFeature.prototype.postConstruct = function () {\n if (this.gridOptionsService.is('columnHoverHighlight')) {\n this.addMouseHoverListeners();\n }\n };\n HoverFeature.prototype.addMouseHoverListeners = function () {\n this.addManagedListener(this.element, 'mouseout', this.onMouseOut.bind(this));\n this.addManagedListener(this.element, 'mouseover', this.onMouseOver.bind(this));\n };\n HoverFeature.prototype.onMouseOut = function () {\n this.columnHoverService.clearMouseOver();\n };\n HoverFeature.prototype.onMouseOver = function () {\n this.columnHoverService.setMouseOver(this.columns);\n };\n __decorate$1u([\n Autowired('columnHoverService')\n ], HoverFeature.prototype, \"columnHoverService\", void 0);\n __decorate$1u([\n PostConstruct\n ], HoverFeature.prototype, \"postConstruct\", null);\n return HoverFeature;\n}(BeanStub));\n\nvar __extends$1y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderFilterCellCtrl = /** @class */ (function (_super) {\n __extends$1y(HeaderFilterCellCtrl, _super);\n function HeaderFilterCellCtrl(column, parentRowCtrl) {\n var _this = _super.call(this, column, parentRowCtrl) || this;\n _this.iconCreated = false;\n _this.column = column;\n return _this;\n }\n HeaderFilterCellCtrl.prototype.setComp = function (comp, eGui, eButtonShowMainFilter, eFloatingFilterBody) {\n _super.prototype.setGui.call(this, eGui);\n this.comp = comp;\n this.eButtonShowMainFilter = eButtonShowMainFilter;\n this.eFloatingFilterBody = eFloatingFilterBody;\n this.setupActive();\n this.setupWidth();\n this.setupLeft();\n this.setupHover();\n this.setupFocus();\n this.setupAria();\n this.setupFilterButton();\n this.setupUserComp();\n this.setupSyncWithFilter();\n this.setupUi();\n this.addManagedListener(this.eButtonShowMainFilter, 'click', this.showParentFilter.bind(this));\n this.setupFilterChangedListener();\n this.addManagedListener(this.column, Column.EVENT_COL_DEF_CHANGED, this.onColDefChanged.bind(this));\n };\n HeaderFilterCellCtrl.prototype.setupActive = function () {\n var colDef = this.column.getColDef();\n var filterExists = !!colDef.filter;\n var floatingFilterExists = !!colDef.floatingFilter;\n this.active = filterExists && floatingFilterExists;\n };\n HeaderFilterCellCtrl.prototype.setupUi = function () {\n this.comp.setButtonWrapperDisplayed(!this.suppressFilterButton && this.active);\n this.comp.addOrRemoveBodyCssClass('ag-floating-filter-full-body', this.suppressFilterButton);\n this.comp.addOrRemoveBodyCssClass('ag-floating-filter-body', !this.suppressFilterButton);\n if (!this.active || this.iconCreated) {\n return;\n }\n var eMenuIcon = createIconNoSpan('filter', this.gridOptionsService, this.column);\n if (eMenuIcon) {\n this.iconCreated = true;\n this.eButtonShowMainFilter.appendChild(eMenuIcon);\n }\n };\n HeaderFilterCellCtrl.prototype.setupFocus = function () {\n this.createManagedBean(new ManagedFocusFeature(this.eGui, {\n shouldStopEventPropagation: this.shouldStopEventPropagation.bind(this),\n onTabKeyDown: this.onTabKeyDown.bind(this),\n handleKeyDown: this.handleKeyDown.bind(this),\n onFocusIn: this.onFocusIn.bind(this)\n }));\n };\n HeaderFilterCellCtrl.prototype.setupAria = function () {\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n setAriaLabel(this.eButtonShowMainFilter, localeTextFunc('ariaFilterMenuOpen', 'Open Filter Menu'));\n };\n HeaderFilterCellCtrl.prototype.onTabKeyDown = function (e) {\n var eDocument = this.gridOptionsService.getDocument();\n var activeEl = eDocument.activeElement;\n var wrapperHasFocus = activeEl === this.eGui;\n if (wrapperHasFocus) {\n return;\n }\n var nextFocusableEl = this.focusService.findNextFocusableElement(this.eGui, null, e.shiftKey);\n if (nextFocusableEl) {\n this.beans.headerNavigationService.scrollToColumn(this.column);\n e.preventDefault();\n nextFocusableEl.focus();\n return;\n }\n var nextFocusableColumn = this.findNextColumnWithFloatingFilter(e.shiftKey);\n if (!nextFocusableColumn) {\n return;\n }\n if (this.focusService.focusHeaderPosition({\n headerPosition: {\n headerRowIndex: this.getParentRowCtrl().getRowIndex(),\n column: nextFocusableColumn\n },\n event: e\n })) {\n e.preventDefault();\n }\n };\n HeaderFilterCellCtrl.prototype.findNextColumnWithFloatingFilter = function (backwards) {\n var columModel = this.beans.columnModel;\n var nextCol = this.column;\n do {\n nextCol = backwards\n ? columModel.getDisplayedColBefore(nextCol)\n : columModel.getDisplayedColAfter(nextCol);\n if (!nextCol) {\n break;\n }\n } while (!nextCol.getColDef().filter || !nextCol.getColDef().floatingFilter);\n return nextCol;\n };\n HeaderFilterCellCtrl.prototype.handleKeyDown = function (e) {\n _super.prototype.handleKeyDown.call(this, e);\n var wrapperHasFocus = this.getWrapperHasFocus();\n switch (e.key) {\n case KeyCode.UP:\n case KeyCode.DOWN:\n if (!wrapperHasFocus) {\n e.preventDefault();\n }\n case KeyCode.LEFT:\n case KeyCode.RIGHT:\n if (wrapperHasFocus) {\n return;\n }\n e.stopPropagation();\n case KeyCode.ENTER:\n if (wrapperHasFocus) {\n if (this.focusService.focusInto(this.eGui)) {\n e.preventDefault();\n }\n }\n break;\n case KeyCode.ESCAPE:\n if (!wrapperHasFocus) {\n this.eGui.focus();\n }\n }\n };\n HeaderFilterCellCtrl.prototype.onFocusIn = function (e) {\n var isRelatedWithin = this.eGui.contains(e.relatedTarget);\n // when the focus is already within the component,\n // we default to the browser's behavior\n if (isRelatedWithin) {\n return;\n }\n var notFromHeaderWrapper = !!e.relatedTarget && !e.relatedTarget.classList.contains('ag-floating-filter');\n var fromWithinHeader = !!e.relatedTarget && isElementChildOfClass(e.relatedTarget, 'ag-floating-filter');\n if (notFromHeaderWrapper && fromWithinHeader && e.target === this.eGui) {\n var lastFocusEvent = this.lastFocusEvent;\n var fromTab = !!(lastFocusEvent && lastFocusEvent.key === KeyCode.TAB);\n if (lastFocusEvent && fromTab) {\n var shouldFocusLast = lastFocusEvent.shiftKey;\n this.focusService.focusInto(this.eGui, shouldFocusLast);\n }\n }\n var rowIndex = this.getRowIndex();\n this.beans.focusService.setFocusedHeader(rowIndex, this.column);\n };\n HeaderFilterCellCtrl.prototype.setupHover = function () {\n var _this = this;\n this.createManagedBean(new HoverFeature([this.column], this.eGui));\n var listener = function () {\n if (!_this.gridOptionsService.is('columnHoverHighlight')) {\n return;\n }\n var hovered = _this.columnHoverService.isHovered(_this.column);\n _this.comp.addOrRemoveCssClass('ag-column-hover', hovered);\n };\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_HOVER_CHANGED, listener);\n listener();\n };\n HeaderFilterCellCtrl.prototype.setupLeft = function () {\n var setLeftFeature = new SetLeftFeature(this.column, this.eGui, this.beans);\n this.createManagedBean(setLeftFeature);\n };\n HeaderFilterCellCtrl.prototype.setupFilterButton = function () {\n var colDef = this.column.getColDef();\n // this is unusual - we need a params value OUTSIDE the component the params are for.\n // the params are for the floating filter component, but this property is actually for the wrapper.\n this.suppressFilterButton = colDef.floatingFilterComponentParams ? !!colDef.floatingFilterComponentParams.suppressFilterButton : false;\n };\n HeaderFilterCellCtrl.prototype.setupUserComp = function () {\n var _this = this;\n if (!this.active) {\n return;\n }\n var compDetails = this.filterManager.getFloatingFilterCompDetails(this.column, function () { return _this.showParentFilter(); });\n if (compDetails) {\n this.setCompDetails(compDetails);\n }\n };\n HeaderFilterCellCtrl.prototype.setCompDetails = function (compDetails) {\n this.userCompDetails = compDetails;\n this.comp.setCompDetails(compDetails);\n };\n HeaderFilterCellCtrl.prototype.showParentFilter = function () {\n var eventSource = this.suppressFilterButton ? this.eFloatingFilterBody : this.eButtonShowMainFilter;\n this.menuFactory.showMenuAfterButtonClick(this.column, eventSource, 'floatingFilter', 'filterMenuTab', ['filterMenuTab']);\n };\n HeaderFilterCellCtrl.prototype.setupSyncWithFilter = function () {\n var _this = this;\n if (!this.active) {\n return;\n }\n var syncWithFilter = function (filterChangedEvent) {\n var compPromise = _this.comp.getFloatingFilterComp();\n if (!compPromise) {\n return;\n }\n compPromise.then(function (comp) {\n if (comp) {\n var parentModel = _this.filterManager.getCurrentFloatingFilterParentModel(_this.column);\n comp.onParentModelChanged(parentModel, filterChangedEvent);\n }\n });\n };\n this.destroySyncListener = this.addManagedListener(this.column, Column.EVENT_FILTER_CHANGED, syncWithFilter);\n if (this.filterManager.isFilterActive(this.column)) {\n syncWithFilter(null);\n }\n };\n HeaderFilterCellCtrl.prototype.setupWidth = function () {\n var _this = this;\n var listener = function () {\n var width = _this.column.getActualWidth() + \"px\";\n _this.comp.setWidth(width);\n };\n this.addManagedListener(this.column, Column.EVENT_WIDTH_CHANGED, listener);\n listener();\n };\n HeaderFilterCellCtrl.prototype.setupFilterChangedListener = function () {\n if (this.active) {\n this.destroyFilterChangedListener = this.addManagedListener(this.column, Column.EVENT_FILTER_CHANGED, this.updateFilterButton.bind(this));\n }\n };\n HeaderFilterCellCtrl.prototype.updateFilterButton = function () {\n if (!this.suppressFilterButton && this.comp) {\n this.comp.setButtonWrapperDisplayed(this.filterManager.isFilterAllowed(this.column));\n }\n };\n HeaderFilterCellCtrl.prototype.onColDefChanged = function () {\n var _this = this;\n var _a, _b;\n var wasActive = this.active;\n this.setupActive();\n var becomeActive = !wasActive && this.active;\n if (wasActive && !this.active) {\n (_a = this.destroySyncListener) === null || _a === void 0 ? void 0 : _a.call(this);\n (_b = this.destroyFilterChangedListener) === null || _b === void 0 ? void 0 : _b.call(this);\n }\n var newCompDetails = this.active\n ? this.filterManager.getFloatingFilterCompDetails(this.column, function () { return _this.showParentFilter(); })\n : null;\n var compPromise = this.comp.getFloatingFilterComp();\n if (!compPromise || !newCompDetails) {\n this.updateCompDetails(newCompDetails, becomeActive);\n }\n else {\n compPromise.then(function (compInstance) {\n var _a;\n if (!compInstance || _this.filterManager.areFilterCompsDifferent((_a = _this.userCompDetails) !== null && _a !== void 0 ? _a : null, newCompDetails)) {\n _this.updateCompDetails(newCompDetails, becomeActive);\n }\n else {\n _this.updateFloatingFilterParams(newCompDetails);\n }\n });\n }\n };\n HeaderFilterCellCtrl.prototype.updateCompDetails = function (compDetails, becomeActive) {\n this.setCompDetails(compDetails);\n // filter button and UI can change based on params, so always want to update\n this.setupFilterButton();\n this.setupUi();\n if (becomeActive) {\n this.setupSyncWithFilter();\n this.setupFilterChangedListener();\n }\n };\n HeaderFilterCellCtrl.prototype.updateFloatingFilterParams = function (userCompDetails) {\n var _a;\n if (!userCompDetails) {\n return;\n }\n var params = userCompDetails.params;\n (_a = this.comp.getFloatingFilterComp()) === null || _a === void 0 ? void 0 : _a.then(function (floatingFilter) {\n if ((floatingFilter === null || floatingFilter === void 0 ? void 0 : floatingFilter.onParamsUpdated) && typeof floatingFilter.onParamsUpdated === 'function') {\n floatingFilter.onParamsUpdated(params);\n }\n });\n };\n __decorate$1t([\n Autowired('filterManager')\n ], HeaderFilterCellCtrl.prototype, \"filterManager\", void 0);\n __decorate$1t([\n Autowired('columnHoverService')\n ], HeaderFilterCellCtrl.prototype, \"columnHoverService\", void 0);\n __decorate$1t([\n Autowired('menuFactory')\n ], HeaderFilterCellCtrl.prototype, \"menuFactory\", void 0);\n return HeaderFilterCellCtrl;\n}(AbstractHeaderCellCtrl));\n\nvar __extends$1x = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ResizeFeature = /** @class */ (function (_super) {\n __extends$1x(ResizeFeature, _super);\n function ResizeFeature(pinned, column, eResize, comp, ctrl) {\n var _this = _super.call(this) || this;\n _this.pinned = pinned;\n _this.column = column;\n _this.eResize = eResize;\n _this.comp = comp;\n _this.ctrl = ctrl;\n return _this;\n }\n ResizeFeature.prototype.postConstruct = function () {\n var _this = this;\n var colDef = this.column.getColDef();\n var destroyResizeFuncs = [];\n var canResize;\n var canAutosize;\n var addResize = function () {\n setDisplayed(_this.eResize, canResize);\n if (!canResize) {\n return;\n }\n var finishedWithResizeFunc = _this.horizontalResizeService.addResizeBar({\n eResizeBar: _this.eResize,\n onResizeStart: _this.onResizeStart.bind(_this),\n onResizing: _this.onResizing.bind(_this, false),\n onResizeEnd: _this.onResizing.bind(_this, true)\n });\n destroyResizeFuncs.push(finishedWithResizeFunc);\n if (canAutosize) {\n var skipHeaderOnAutoSize_1 = _this.gridOptionsService.is('skipHeaderOnAutoSize');\n var autoSizeColListener_1 = function () {\n _this.columnModel.autoSizeColumn(_this.column, skipHeaderOnAutoSize_1, \"uiColumnResized\");\n };\n _this.eResize.addEventListener('dblclick', autoSizeColListener_1);\n var touchListener_1 = new TouchListener(_this.eResize);\n touchListener_1.addEventListener(TouchListener.EVENT_DOUBLE_TAP, autoSizeColListener_1);\n _this.addDestroyFunc(function () {\n _this.eResize.removeEventListener('dblclick', autoSizeColListener_1);\n touchListener_1.removeEventListener(TouchListener.EVENT_DOUBLE_TAP, autoSizeColListener_1);\n touchListener_1.destroy();\n });\n }\n };\n var removeResize = function () {\n destroyResizeFuncs.forEach(function (f) { return f(); });\n destroyResizeFuncs.length = 0;\n };\n var refresh = function () {\n var resize = _this.column.isResizable();\n var autoSize = !_this.gridOptionsService.is('suppressAutoSize') && !colDef.suppressAutoSize;\n var propertyChange = resize !== canResize || autoSize !== canAutosize;\n if (propertyChange) {\n canResize = resize;\n canAutosize = autoSize;\n removeResize();\n addResize();\n }\n };\n refresh();\n this.addDestroyFunc(removeResize);\n this.ctrl.addRefreshFunction(refresh);\n };\n ResizeFeature.prototype.onResizing = function (finished, resizeAmount) {\n var resizeAmountNormalised = this.normaliseResizeAmount(resizeAmount);\n var columnWidths = [{ key: this.column, newWidth: this.resizeStartWidth + resizeAmountNormalised }];\n this.columnModel.setColumnWidths(columnWidths, this.resizeWithShiftKey, finished, \"uiColumnResized\");\n if (finished) {\n this.comp.addOrRemoveCssClass('ag-column-resizing', false);\n }\n };\n ResizeFeature.prototype.onResizeStart = function (shiftKey) {\n this.resizeStartWidth = this.column.getActualWidth();\n this.resizeWithShiftKey = shiftKey;\n this.comp.addOrRemoveCssClass('ag-column-resizing', true);\n };\n // optionally inverts the drag, depending on pinned and RTL\n // note - this method is duplicated in RenderedHeaderGroupCell - should refactor out?\n ResizeFeature.prototype.normaliseResizeAmount = function (dragChange) {\n var result = dragChange;\n var notPinningLeft = this.pinned !== 'left';\n var pinningRight = this.pinned === 'right';\n if (this.gridOptionsService.is('enableRtl')) {\n // for RTL, dragging left makes the col bigger, except when pinning left\n if (notPinningLeft) {\n result *= -1;\n }\n }\n else {\n // for LTR (ie normal), dragging left makes the col smaller, except when pinning right\n if (pinningRight) {\n result *= -1;\n }\n }\n return result;\n };\n __decorate$1s([\n Autowired('horizontalResizeService')\n ], ResizeFeature.prototype, \"horizontalResizeService\", void 0);\n __decorate$1s([\n Autowired('columnModel')\n ], ResizeFeature.prototype, \"columnModel\", void 0);\n __decorate$1s([\n PostConstruct\n ], ResizeFeature.prototype, \"postConstruct\", null);\n return ResizeFeature;\n}(BeanStub));\n\nvar __extends$1w = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SelectAllFeature = /** @class */ (function (_super) {\n __extends$1w(SelectAllFeature, _super);\n function SelectAllFeature(column) {\n var _this = _super.call(this) || this;\n _this.cbSelectAllVisible = false;\n _this.processingEventFromCheckbox = false;\n _this.column = column;\n var colDef = column.getColDef();\n _this.filteredOnly = !!(colDef === null || colDef === void 0 ? void 0 : colDef.headerCheckboxSelectionFilteredOnly);\n _this.currentPageOnly = !!(colDef === null || colDef === void 0 ? void 0 : colDef.headerCheckboxSelectionCurrentPageOnly);\n return _this;\n }\n SelectAllFeature.prototype.onSpaceKeyDown = function (e) {\n var checkbox = this.cbSelectAll;\n var eDocument = this.gridOptionsService.getDocument();\n if (checkbox.isDisplayed() && !checkbox.getGui().contains(eDocument.activeElement)) {\n e.preventDefault();\n checkbox.setValue(!checkbox.getValue());\n }\n };\n SelectAllFeature.prototype.getCheckboxGui = function () {\n return this.cbSelectAll.getGui();\n };\n SelectAllFeature.prototype.setComp = function (ctrl) {\n this.headerCellCtrl = ctrl;\n this.cbSelectAll = this.createManagedBean(new AgCheckbox());\n this.cbSelectAll.addCssClass('ag-header-select-all');\n setAriaRole(this.cbSelectAll.getGui(), 'presentation');\n this.showOrHideSelectAll();\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.showOrHideSelectAll.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.showOrHideSelectAll.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_SELECTION_CHANGED, this.onSelectionChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_PAGINATION_CHANGED, this.onSelectionChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, this.onModelChanged.bind(this));\n this.addManagedListener(this.cbSelectAll, Events.EVENT_FIELD_VALUE_CHANGED, this.onCbSelectAll.bind(this));\n setAriaHidden(this.cbSelectAll.getGui(), true);\n this.cbSelectAll.getInputElement().setAttribute('tabindex', '-1');\n this.refreshSelectAllLabel();\n };\n SelectAllFeature.prototype.showOrHideSelectAll = function () {\n this.cbSelectAllVisible = this.isCheckboxSelection();\n this.cbSelectAll.setDisplayed(this.cbSelectAllVisible, { skipAriaHidden: true });\n if (this.cbSelectAllVisible) {\n // in case user is trying this feature with the wrong model type\n this.checkRightRowModelType('selectAllCheckbox');\n // in case user is trying this feature with the wrong model type\n this.checkSelectionType('selectAllCheckbox');\n // make sure checkbox is showing the right state\n this.updateStateOfCheckbox();\n }\n this.refreshSelectAllLabel();\n };\n SelectAllFeature.prototype.onModelChanged = function () {\n if (!this.cbSelectAllVisible) {\n return;\n }\n this.updateStateOfCheckbox();\n };\n SelectAllFeature.prototype.onSelectionChanged = function () {\n if (!this.cbSelectAllVisible) {\n return;\n }\n this.updateStateOfCheckbox();\n };\n SelectAllFeature.prototype.updateStateOfCheckbox = function () {\n if (this.processingEventFromCheckbox) {\n return;\n }\n this.processingEventFromCheckbox = true;\n var allSelected = this.selectionService.getSelectAllState(this.filteredOnly, this.currentPageOnly);\n this.cbSelectAll.setValue(allSelected);\n this.refreshSelectAllLabel();\n this.processingEventFromCheckbox = false;\n };\n SelectAllFeature.prototype.refreshSelectAllLabel = function () {\n var translate = this.localeService.getLocaleTextFunc();\n var checked = this.cbSelectAll.getValue();\n var ariaStatus = checked ? translate('ariaChecked', 'checked') : translate('ariaUnchecked', 'unchecked');\n var ariaLabel = translate('ariaRowSelectAll', 'Press Space to toggle all rows selection');\n if (!this.cbSelectAllVisible) {\n this.headerCellCtrl.setAriaDescriptionProperty('selectAll', null);\n }\n else {\n this.headerCellCtrl.setAriaDescriptionProperty('selectAll', ariaLabel + \" (\" + ariaStatus + \")\");\n }\n this.cbSelectAll.setInputAriaLabel(ariaLabel + \" (\" + ariaStatus + \")\");\n this.headerCellCtrl.refreshAriaDescription();\n };\n SelectAllFeature.prototype.checkSelectionType = function (feature) {\n var isMultiSelect = this.gridOptionsService.get('rowSelection') === 'multiple';\n if (!isMultiSelect) {\n console.warn(\"AG Grid: \" + feature + \" is only available if using 'multiple' rowSelection.\");\n return false;\n }\n return true;\n };\n SelectAllFeature.prototype.checkRightRowModelType = function (feature) {\n var rowModelType = this.rowModel.getType();\n var rowModelMatches = rowModelType === 'clientSide' || rowModelType === 'serverSide';\n if (!rowModelMatches) {\n console.warn(\"AG Grid: \" + feature + \" is only available if using 'clientSide' or 'serverSide' rowModelType, you are using \" + rowModelType + \".\");\n return false;\n }\n return true;\n };\n SelectAllFeature.prototype.onCbSelectAll = function () {\n if (this.processingEventFromCheckbox) {\n return;\n }\n if (!this.cbSelectAllVisible) {\n return;\n }\n var value = this.cbSelectAll.getValue();\n var source = 'uiSelectAll';\n if (this.currentPageOnly)\n source = 'uiSelectAllCurrentPage';\n else if (this.filteredOnly)\n source = 'uiSelectAllFiltered';\n var params = {\n source: source,\n justFiltered: this.filteredOnly,\n justCurrentPage: this.currentPageOnly,\n };\n if (value) {\n this.selectionService.selectAllRowNodes(params);\n }\n else {\n this.selectionService.deselectAllRowNodes(params);\n }\n };\n SelectAllFeature.prototype.isCheckboxSelection = function () {\n var result = this.column.getColDef().headerCheckboxSelection;\n if (typeof result === 'function') {\n var func = result;\n var params = {\n column: this.column,\n colDef: this.column.getColDef(),\n columnApi: this.columnApi,\n api: this.gridApi,\n context: this.gridOptionsService.context\n };\n result = func(params);\n }\n if (result) {\n return this.checkRightRowModelType('headerCheckboxSelection') && this.checkSelectionType('headerCheckboxSelection');\n }\n return false;\n };\n __decorate$1r([\n Autowired('gridApi')\n ], SelectAllFeature.prototype, \"gridApi\", void 0);\n __decorate$1r([\n Autowired('columnApi')\n ], SelectAllFeature.prototype, \"columnApi\", void 0);\n __decorate$1r([\n Autowired('rowModel')\n ], SelectAllFeature.prototype, \"rowModel\", void 0);\n __decorate$1r([\n Autowired('selectionService')\n ], SelectAllFeature.prototype, \"selectionService\", void 0);\n return SelectAllFeature;\n}(BeanStub));\n\nvar __extends$1v = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TabGuardClassNames;\n(function (TabGuardClassNames) {\n TabGuardClassNames[\"TAB_GUARD\"] = \"ag-tab-guard\";\n TabGuardClassNames[\"TAB_GUARD_TOP\"] = \"ag-tab-guard-top\";\n TabGuardClassNames[\"TAB_GUARD_BOTTOM\"] = \"ag-tab-guard-bottom\";\n})(TabGuardClassNames || (TabGuardClassNames = {}));\nvar TabGuardCtrl = /** @class */ (function (_super) {\n __extends$1v(TabGuardCtrl, _super);\n function TabGuardCtrl(params) {\n var _this = _super.call(this) || this;\n _this.skipTabGuardFocus = false;\n var comp = params.comp, eTopGuard = params.eTopGuard, eBottomGuard = params.eBottomGuard, focusInnerElement = params.focusInnerElement, onFocusIn = params.onFocusIn, onFocusOut = params.onFocusOut, shouldStopEventPropagation = params.shouldStopEventPropagation, onTabKeyDown = params.onTabKeyDown, handleKeyDown = params.handleKeyDown, eFocusableElement = params.eFocusableElement;\n _this.comp = comp;\n _this.eTopGuard = eTopGuard;\n _this.eBottomGuard = eBottomGuard;\n _this.providedFocusInnerElement = focusInnerElement;\n _this.eFocusableElement = eFocusableElement;\n _this.providedFocusIn = onFocusIn;\n _this.providedFocusOut = onFocusOut;\n _this.providedShouldStopEventPropagation = shouldStopEventPropagation;\n _this.providedOnTabKeyDown = onTabKeyDown;\n _this.providedHandleKeyDown = handleKeyDown;\n return _this;\n }\n TabGuardCtrl.prototype.postConstruct = function () {\n var _this = this;\n this.createManagedBean(new ManagedFocusFeature(this.eFocusableElement, {\n shouldStopEventPropagation: function () { return _this.shouldStopEventPropagation(); },\n onTabKeyDown: function (e) { return _this.onTabKeyDown(e); },\n handleKeyDown: function (e) { return _this.handleKeyDown(e); },\n onFocusIn: function (e) { return _this.onFocusIn(e); },\n onFocusOut: function (e) { return _this.onFocusOut(e); }\n }));\n this.activateTabGuards();\n [this.eTopGuard, this.eBottomGuard].forEach(function (guard) { return _this.addManagedListener(guard, 'focus', _this.onFocus.bind(_this)); });\n };\n TabGuardCtrl.prototype.handleKeyDown = function (e) {\n if (this.providedHandleKeyDown) {\n this.providedHandleKeyDown(e);\n }\n };\n TabGuardCtrl.prototype.tabGuardsAreActive = function () {\n return !!this.eTopGuard && this.eTopGuard.hasAttribute('tabIndex');\n };\n TabGuardCtrl.prototype.shouldStopEventPropagation = function () {\n if (this.providedShouldStopEventPropagation) {\n return this.providedShouldStopEventPropagation();\n }\n return false;\n };\n TabGuardCtrl.prototype.activateTabGuards = function () {\n var tabIndex = this.gridOptionsService.getNum('tabIndex') || 0;\n this.comp.setTabIndex(tabIndex.toString());\n };\n TabGuardCtrl.prototype.deactivateTabGuards = function () {\n this.comp.setTabIndex();\n };\n TabGuardCtrl.prototype.onFocus = function (e) {\n if (this.skipTabGuardFocus) {\n this.skipTabGuardFocus = false;\n return;\n }\n var fromBottom = e.target === this.eBottomGuard;\n if (this.providedFocusInnerElement) {\n this.providedFocusInnerElement(fromBottom);\n }\n else {\n this.focusInnerElement(fromBottom);\n }\n };\n TabGuardCtrl.prototype.onFocusIn = function (e) {\n if (this.providedFocusIn && this.providedFocusIn(e)) {\n return;\n }\n this.deactivateTabGuards();\n };\n TabGuardCtrl.prototype.onFocusOut = function (e) {\n if (this.providedFocusOut && this.providedFocusOut(e)) {\n return;\n }\n if (!this.eFocusableElement.contains(e.relatedTarget)) {\n this.activateTabGuards();\n }\n };\n TabGuardCtrl.prototype.onTabKeyDown = function (e) {\n var _this = this;\n if (this.providedOnTabKeyDown) {\n this.providedOnTabKeyDown(e);\n return;\n }\n if (e.defaultPrevented) {\n return;\n }\n var tabGuardsAreActive = this.tabGuardsAreActive();\n if (tabGuardsAreActive) {\n this.deactivateTabGuards();\n }\n var nextRoot = this.getNextFocusableElement(e.shiftKey);\n if (tabGuardsAreActive) {\n // ensure the tab guards are only re-instated once the event has finished processing, to avoid the browser\n // tabbing to the tab guard from inside the component\n setTimeout(function () { return _this.activateTabGuards(); }, 0);\n }\n if (!nextRoot) {\n return;\n }\n nextRoot.focus();\n e.preventDefault();\n };\n TabGuardCtrl.prototype.focusInnerElement = function (fromBottom) {\n if (fromBottom === void 0) { fromBottom = false; }\n var focusable = this.focusService.findFocusableElements(this.eFocusableElement);\n if (this.tabGuardsAreActive()) {\n // remove tab guards from this component from list of focusable elements\n focusable.splice(0, 1);\n focusable.splice(focusable.length - 1, 1);\n }\n if (!focusable.length) {\n return;\n }\n focusable[fromBottom ? focusable.length - 1 : 0].focus({ preventScroll: true });\n };\n TabGuardCtrl.prototype.getNextFocusableElement = function (backwards) {\n return this.focusService.findNextFocusableElement(this.eFocusableElement, false, backwards);\n };\n TabGuardCtrl.prototype.forceFocusOutOfContainer = function (up) {\n if (up === void 0) { up = false; }\n var tabGuardToFocus = up ? this.eTopGuard : this.eBottomGuard;\n this.activateTabGuards();\n this.skipTabGuardFocus = true;\n tabGuardToFocus.focus();\n };\n __decorate$1q([\n Autowired('focusService')\n ], TabGuardCtrl.prototype, \"focusService\", void 0);\n __decorate$1q([\n PostConstruct\n ], TabGuardCtrl.prototype, \"postConstruct\", null);\n return TabGuardCtrl;\n}(BeanStub));\n\nvar __extends$1u = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$7 = (undefined && undefined.__assign) || function () {\n __assign$7 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$7.apply(this, arguments);\n};\nvar __decorate$1p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$g = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$e = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar FocusService = /** @class */ (function (_super) {\n __extends$1u(FocusService, _super);\n function FocusService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FocusService_1 = FocusService;\n /**\n * Adds a gridCore to the list of the gridCores monitoring Keyboard Mode\n * in a specific HTMLDocument.\n *\n * @param doc {Document} - The Document containing the gridCore.\n * @param gridCore {GridComp} - The GridCore to be monitored.\n */\n FocusService.addKeyboardModeEvents = function (doc, controller) {\n var docControllers = FocusService_1.instancesMonitored.get(doc);\n if (docControllers && docControllers.length > 0) {\n if (docControllers.indexOf(controller) === -1) {\n docControllers.push(controller);\n }\n }\n else {\n FocusService_1.instancesMonitored.set(doc, [controller]);\n doc.addEventListener('keydown', FocusService_1.toggleKeyboardMode);\n doc.addEventListener('mousedown', FocusService_1.toggleKeyboardMode);\n }\n };\n /**\n * Removes a gridCore from the list of the gridCores monitoring Keyboard Mode\n * in a specific HTMLDocument.\n *\n * @param doc {Document} - The Document containing the gridCore.\n * @param gridCore {GridComp} - The GridCore to be removed.\n */\n FocusService.removeKeyboardModeEvents = function (doc, controller) {\n var docControllers = FocusService_1.instancesMonitored.get(doc);\n var newControllers = [];\n if (docControllers && docControllers.length) {\n newControllers = __spreadArray$e([], __read$g(docControllers)).filter(function (currentGridCore) { return currentGridCore !== controller; });\n FocusService_1.instancesMonitored.set(doc, newControllers);\n }\n if (newControllers.length === 0) {\n doc.removeEventListener('keydown', FocusService_1.toggleKeyboardMode);\n doc.removeEventListener('mousedown', FocusService_1.toggleKeyboardMode);\n }\n };\n /**\n * This method will be called by `keydown` and `mousedown` events on all Documents monitoring\n * KeyboardMode. It will then fire a KEYBOARD_FOCUS, MOUSE_FOCUS on each gridCore present in\n * the Document allowing each gridCore to maintain a state for KeyboardMode.\n *\n * @param event {KeyboardEvent | MouseEvent | TouchEvent} - The event triggered.\n */\n FocusService.toggleKeyboardMode = function (event) {\n var isKeyboardActive = FocusService_1.keyboardModeActive;\n var isKeyboardEvent = event.type === 'keydown';\n if (isKeyboardEvent) {\n // the following keys should not toggle keyboard mode.\n if (event.ctrlKey || event.metaKey || event.altKey) {\n return;\n }\n }\n if (isKeyboardActive && isKeyboardEvent || !isKeyboardActive && !isKeyboardEvent) {\n return;\n }\n FocusService_1.keyboardModeActive = isKeyboardEvent;\n var doc = event.target.ownerDocument;\n if (!doc) {\n return;\n }\n var controllersForDoc = FocusService_1.instancesMonitored.get(doc);\n if (controllersForDoc) {\n controllersForDoc.forEach(function (controller) {\n controller.dispatchEvent({ type: isKeyboardEvent ? Events.EVENT_KEYBOARD_FOCUS : Events.EVENT_MOUSE_FOCUS });\n });\n }\n };\n FocusService.prototype.init = function () {\n var _this = this;\n var clearFocusedCellListener = this.clearFocusedCell.bind(this);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, clearFocusedCellListener);\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.onColumnEverythingChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_GROUP_OPENED, clearFocusedCellListener);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, clearFocusedCellListener);\n this.ctrlsService.whenReady(function (p) {\n _this.gridCtrl = p.gridCtrl;\n var doc = _this.gridOptionsService.getDocument();\n FocusService_1.addKeyboardModeEvents(doc, _this.gridCtrl);\n _this.addDestroyFunc(function () { return _this.unregisterGridCompController(_this.gridCtrl); });\n });\n };\n FocusService.prototype.unregisterGridCompController = function (gridCompController) {\n var doc = this.gridOptionsService.getDocument();\n FocusService_1.removeKeyboardModeEvents(doc, gridCompController);\n };\n FocusService.prototype.onColumnEverythingChanged = function () {\n // if the columns change, check and see if this column still exists. if it does, then\n // we can keep the focused cell. if it doesn't, then we need to drop the focused cell.\n if (!this.focusedCellPosition) {\n return;\n }\n var col = this.focusedCellPosition.column;\n var colFromColumnModel = this.columnModel.getGridColumn(col.getId());\n if (col !== colFromColumnModel) {\n this.clearFocusedCell();\n }\n };\n FocusService.prototype.isKeyboardMode = function () {\n return FocusService_1.keyboardModeActive;\n };\n // we check if the browser is focusing something, and if it is, and\n // it's the cell we think is focused, then return the cell. so this\n // methods returns the cell if a) we think it has focus and b) the\n // browser thinks it has focus. this then returns nothing if we\n // first focus a cell, then second click outside the grid, as then the\n // grid cell will still be focused as far as the grid is concerned,\n // however the browser focus will have moved somewhere else.\n FocusService.prototype.getFocusCellToUseAfterRefresh = function () {\n var eDocument = this.gridOptionsService.getDocument();\n if (this.gridOptionsService.is('suppressFocusAfterRefresh') || !this.focusedCellPosition) {\n return null;\n }\n // we check that the browser is actually focusing on the grid, if it is not, then\n // we have nothing to worry about. we check for ROW data, as this covers both focused Rows (for Full Width Rows)\n // and Cells (covers cells as cells live in rows)\n if (this.isDomDataMissingInHierarchy(eDocument.activeElement, RowCtrl.DOM_DATA_KEY_ROW_CTRL)) {\n return null;\n }\n return this.focusedCellPosition;\n };\n FocusService.prototype.getFocusHeaderToUseAfterRefresh = function () {\n var eDocument = this.gridOptionsService.getDocument();\n if (this.gridOptionsService.is('suppressFocusAfterRefresh') || !this.focusedHeaderPosition) {\n return null;\n }\n // we check that the browser is actually focusing on the grid, if it is not, then\n // we have nothing to worry about\n if (this.isDomDataMissingInHierarchy(eDocument.activeElement, AbstractHeaderCellCtrl.DOM_DATA_KEY_HEADER_CTRL)) {\n return null;\n }\n return this.focusedHeaderPosition;\n };\n FocusService.prototype.isDomDataMissingInHierarchy = function (eBrowserCell, key) {\n var ePointer = eBrowserCell;\n while (ePointer) {\n var data = this.gridOptionsService.getDomData(ePointer, key);\n if (data) {\n return false;\n }\n ePointer = ePointer.parentNode;\n }\n return true;\n };\n FocusService.prototype.getFocusedCell = function () {\n return this.focusedCellPosition;\n };\n FocusService.prototype.shouldRestoreFocus = function (cell) {\n var _this = this;\n if (this.isCellRestoreFocused(cell)) {\n setTimeout(function () {\n // Clear the restore focused cell position after the timeout to avoid\n // the cell being focused again and stealing focus from another part of the app.\n _this.restoredFocusedCellPosition = null;\n }, 0);\n return true;\n }\n return false;\n };\n FocusService.prototype.isCellRestoreFocused = function (cellPosition) {\n if (this.restoredFocusedCellPosition == null) {\n return false;\n }\n return this.cellPositionUtils.equals(cellPosition, this.restoredFocusedCellPosition);\n };\n FocusService.prototype.setRestoreFocusedCell = function (cellPosition) {\n if (this.getFrameworkOverrides().renderingEngine === 'react') {\n // The restoredFocusedCellPosition is used in the React Rendering engine as we have to be able\n // to support restoring focus after an async rendering.\n this.restoredFocusedCellPosition = cellPosition;\n }\n };\n FocusService.prototype.getFocusEventParams = function () {\n var _a = this.focusedCellPosition, rowIndex = _a.rowIndex, rowPinned = _a.rowPinned, column = _a.column;\n var params = {\n rowIndex: rowIndex,\n rowPinned: rowPinned,\n column: column,\n isFullWidthCell: false\n };\n var rowCtrl = this.rowRenderer.getRowByPosition({ rowIndex: rowIndex, rowPinned: rowPinned });\n if (rowCtrl) {\n params.isFullWidthCell = rowCtrl.isFullWidth();\n }\n return params;\n };\n FocusService.prototype.clearFocusedCell = function () {\n this.restoredFocusedCellPosition = null;\n if (this.focusedCellPosition == null) {\n return;\n }\n var event = __assign$7({ type: Events.EVENT_CELL_FOCUS_CLEARED }, this.getFocusEventParams());\n this.focusedCellPosition = null;\n this.eventService.dispatchEvent(event);\n };\n FocusService.prototype.setFocusedCell = function (params) {\n var column = params.column, rowIndex = params.rowIndex, rowPinned = params.rowPinned, _a = params.forceBrowserFocus, forceBrowserFocus = _a === void 0 ? false : _a, _b = params.preventScrollOnBrowserFocus, preventScrollOnBrowserFocus = _b === void 0 ? false : _b;\n var gridColumn = this.columnModel.getGridColumn(column);\n // if column doesn't exist, then blank the focused cell and return. this can happen when user sets new columns,\n // and the focused cell is in a column that no longer exists. after columns change, the grid refreshes and tries\n // to re-focus the focused cell.\n if (!gridColumn) {\n this.focusedCellPosition = null;\n return;\n }\n this.focusedCellPosition = gridColumn ? {\n rowIndex: rowIndex,\n rowPinned: makeNull(rowPinned),\n column: gridColumn\n } : null;\n var event = __assign$7(__assign$7({ type: Events.EVENT_CELL_FOCUSED }, this.getFocusEventParams()), { forceBrowserFocus: forceBrowserFocus, preventScrollOnBrowserFocus: preventScrollOnBrowserFocus, floating: null });\n this.eventService.dispatchEvent(event);\n };\n FocusService.prototype.isCellFocused = function (cellPosition) {\n if (this.focusedCellPosition == null) {\n return false;\n }\n return this.cellPositionUtils.equals(cellPosition, this.focusedCellPosition);\n };\n FocusService.prototype.isRowNodeFocused = function (rowNode) {\n return this.isRowFocused(rowNode.rowIndex, rowNode.rowPinned);\n };\n FocusService.prototype.isHeaderWrapperFocused = function (headerCtrl) {\n if (this.focusedHeaderPosition == null) {\n return false;\n }\n var column = headerCtrl.getColumnGroupChild();\n var headerRowIndex = headerCtrl.getRowIndex();\n var pinned = headerCtrl.getPinned();\n var _a = this.focusedHeaderPosition, focusedColumn = _a.column, focusedHeaderRowIndex = _a.headerRowIndex;\n return column === focusedColumn &&\n headerRowIndex === focusedHeaderRowIndex &&\n pinned == focusedColumn.getPinned();\n };\n FocusService.prototype.clearFocusedHeader = function () {\n this.focusedHeaderPosition = null;\n };\n FocusService.prototype.getFocusedHeader = function () {\n return this.focusedHeaderPosition;\n };\n FocusService.prototype.setFocusedHeader = function (headerRowIndex, column) {\n this.focusedHeaderPosition = { headerRowIndex: headerRowIndex, column: column };\n };\n FocusService.prototype.focusHeaderPosition = function (params) {\n var direction = params.direction, fromTab = params.fromTab, allowUserOverride = params.allowUserOverride, event = params.event, fromCell = params.fromCell;\n var headerPosition = params.headerPosition;\n if (fromCell && this.filterManager.isAdvancedFilterHeaderActive()) {\n return this.focusAdvancedFilter(headerPosition);\n }\n if (allowUserOverride) {\n var currentPosition = this.getFocusedHeader();\n var headerRowCount = this.headerNavigationService.getHeaderRowCount();\n if (fromTab) {\n var userFunc = this.gridOptionsService.getCallback('tabToNextHeader');\n if (userFunc) {\n var params_1 = {\n backwards: direction === 'Before',\n previousHeaderPosition: currentPosition,\n nextHeaderPosition: headerPosition,\n headerRowCount: headerRowCount,\n };\n headerPosition = userFunc(params_1);\n }\n }\n else {\n var userFunc = this.gridOptionsService.getCallback('navigateToNextHeader');\n if (userFunc && event) {\n var params_2 = {\n key: event.key,\n previousHeaderPosition: currentPosition,\n nextHeaderPosition: headerPosition,\n headerRowCount: headerRowCount,\n event: event,\n };\n headerPosition = userFunc(params_2);\n }\n }\n }\n if (!headerPosition) {\n return false;\n }\n if (headerPosition.headerRowIndex === -1) {\n if (this.filterManager.isAdvancedFilterHeaderActive()) {\n return this.focusAdvancedFilter(headerPosition);\n }\n else {\n return this.focusGridView(headerPosition.column);\n }\n }\n this.headerNavigationService.scrollToColumn(headerPosition.column, direction);\n var headerRowContainerCtrl = this.ctrlsService.getHeaderRowContainerCtrl(headerPosition.column.getPinned());\n // this will automatically call the setFocusedHeader method above\n var focusSuccess = headerRowContainerCtrl.focusHeader(headerPosition.headerRowIndex, headerPosition.column, event);\n return focusSuccess;\n };\n FocusService.prototype.focusFirstHeader = function () {\n var firstColumn = this.columnModel.getAllDisplayedColumns()[0];\n if (!firstColumn) {\n return false;\n }\n if (firstColumn.getParent()) {\n firstColumn = this.columnModel.getColumnGroupAtLevel(firstColumn, 0);\n }\n return this.focusHeaderPosition({\n headerPosition: { headerRowIndex: 0, column: firstColumn }\n });\n };\n FocusService.prototype.focusLastHeader = function (event) {\n var headerRowIndex = this.headerNavigationService.getHeaderRowCount() - 1;\n var column = last(this.columnModel.getAllDisplayedColumns());\n return this.focusHeaderPosition({\n headerPosition: { headerRowIndex: headerRowIndex, column: column },\n event: event\n });\n };\n FocusService.prototype.focusPreviousFromFirstCell = function (event) {\n if (this.filterManager.isAdvancedFilterHeaderActive()) {\n return this.focusAdvancedFilter(null);\n }\n else {\n return this.focusLastHeader(event);\n }\n };\n FocusService.prototype.isAnyCellFocused = function () {\n return !!this.focusedCellPosition;\n };\n FocusService.prototype.isRowFocused = function (rowIndex, floating) {\n if (this.focusedCellPosition == null) {\n return false;\n }\n return this.focusedCellPosition.rowIndex === rowIndex && this.focusedCellPosition.rowPinned === makeNull(floating);\n };\n FocusService.prototype.findFocusableElements = function (rootNode, exclude, onlyUnmanaged) {\n if (onlyUnmanaged === void 0) { onlyUnmanaged = false; }\n var focusableString = FOCUSABLE_SELECTOR;\n var excludeString = FOCUSABLE_EXCLUDE;\n if (exclude) {\n excludeString += ', ' + exclude;\n }\n if (onlyUnmanaged) {\n excludeString += ', [tabindex=\"-1\"]';\n }\n var nodes = Array.prototype.slice.apply(rootNode.querySelectorAll(focusableString));\n var excludeNodes = Array.prototype.slice.apply(rootNode.querySelectorAll(excludeString));\n if (!excludeNodes.length) {\n return nodes;\n }\n var diff = function (a, b) { return a.filter(function (element) { return b.indexOf(element) === -1; }); };\n return diff(nodes, excludeNodes);\n };\n FocusService.prototype.focusInto = function (rootNode, up, onlyUnmanaged) {\n if (up === void 0) { up = false; }\n if (onlyUnmanaged === void 0) { onlyUnmanaged = false; }\n var focusableElements = this.findFocusableElements(rootNode, null, onlyUnmanaged);\n var toFocus = up ? last(focusableElements) : focusableElements[0];\n if (toFocus) {\n toFocus.focus({ preventScroll: true });\n return true;\n }\n return false;\n };\n FocusService.prototype.findFocusableElementBeforeTabGuard = function (rootNode, referenceElement) {\n if (!referenceElement) {\n return null;\n }\n var focusableElements = this.findFocusableElements(rootNode);\n var referenceIndex = focusableElements.indexOf(referenceElement);\n if (referenceIndex === -1) {\n return null;\n }\n var lastTabGuardIndex = -1;\n for (var i = referenceIndex - 1; i >= 0; i--) {\n if (focusableElements[i].classList.contains(TabGuardClassNames.TAB_GUARD_TOP)) {\n lastTabGuardIndex = i;\n break;\n }\n }\n if (lastTabGuardIndex <= 0) {\n return null;\n }\n return focusableElements[lastTabGuardIndex - 1];\n };\n FocusService.prototype.findNextFocusableElement = function (rootNode, onlyManaged, backwards) {\n if (rootNode === void 0) { rootNode = this.eGridDiv; }\n var focusable = this.findFocusableElements(rootNode, onlyManaged ? ':not([tabindex=\"-1\"])' : null);\n var eDocument = this.gridOptionsService.getDocument();\n var activeEl = eDocument.activeElement;\n var currentIndex;\n if (onlyManaged) {\n currentIndex = focusable.findIndex(function (el) { return el.contains(activeEl); });\n }\n else {\n currentIndex = focusable.indexOf(activeEl);\n }\n var nextIndex = currentIndex + (backwards ? -1 : 1);\n if (nextIndex < 0 || nextIndex >= focusable.length) {\n return null;\n }\n return focusable[nextIndex];\n };\n FocusService.prototype.isTargetUnderManagedComponent = function (rootNode, target) {\n if (!target) {\n return false;\n }\n var managedContainers = rootNode.querySelectorAll(\".\" + ManagedFocusFeature.FOCUS_MANAGED_CLASS);\n if (!managedContainers.length) {\n return false;\n }\n for (var i = 0; i < managedContainers.length; i++) {\n if (managedContainers[i].contains(target)) {\n return true;\n }\n }\n return false;\n };\n FocusService.prototype.findTabbableParent = function (node, limit) {\n if (limit === void 0) { limit = 5; }\n var counter = 0;\n while (node && getTabIndex(node) === null && ++counter <= limit) {\n node = node.parentElement;\n }\n if (getTabIndex(node) === null) {\n return null;\n }\n return node;\n };\n FocusService.prototype.focusGridView = function (column, backwards) {\n // if suppressCellFocus is `true`, it means the user does not want to\n // navigate between the cells using tab. Instead, we put focus on either\n // the header or after the grid, depending on whether tab or shift-tab was pressed.\n if (this.gridOptionsService.is('suppressCellFocus')) {\n if (backwards) {\n return this.focusLastHeader();\n }\n return this.focusNextGridCoreContainer(false);\n }\n var nextRow = backwards\n ? this.rowPositionUtils.getLastRow()\n : this.rowPositionUtils.getFirstRow();\n if (!nextRow) {\n return false;\n }\n var rowIndex = nextRow.rowIndex, rowPinned = nextRow.rowPinned;\n var focusedHeader = this.getFocusedHeader();\n if (!column && focusedHeader) {\n column = focusedHeader.column;\n }\n if (rowIndex == null || !column) {\n return false;\n }\n this.navigationService.ensureCellVisible({ rowIndex: rowIndex, column: column, rowPinned: rowPinned });\n this.setFocusedCell({\n rowIndex: rowIndex,\n column: column,\n rowPinned: makeNull(rowPinned),\n forceBrowserFocus: true\n });\n if (this.rangeService) {\n var cellPosition = { rowIndex: rowIndex, rowPinned: rowPinned, column: column };\n this.rangeService.setRangeToCell(cellPosition);\n }\n return true;\n };\n FocusService.prototype.focusNextGridCoreContainer = function (backwards, forceOut) {\n if (forceOut === void 0) { forceOut = false; }\n if (!forceOut && this.gridCtrl.focusNextInnerContainer(backwards)) {\n return true;\n }\n if (forceOut || (!backwards && !this.gridCtrl.isDetailGrid())) {\n this.gridCtrl.forceFocusOutOfContainer(backwards);\n }\n return false;\n };\n FocusService.prototype.focusAdvancedFilter = function (position) {\n this.advancedFilterFocusColumn = position === null || position === void 0 ? void 0 : position.column;\n return this.advancedFilterService.getCtrl().focusHeaderComp();\n };\n FocusService.prototype.focusNextFromAdvancedFilter = function (backwards, forceFirstColumn) {\n var _a, _b;\n var column = (_a = (forceFirstColumn ? undefined : this.advancedFilterFocusColumn)) !== null && _a !== void 0 ? _a : (_b = this.columnModel.getAllDisplayedColumns()) === null || _b === void 0 ? void 0 : _b[0];\n if (backwards) {\n return this.focusHeaderPosition({\n headerPosition: {\n column: column,\n headerRowIndex: this.headerNavigationService.getHeaderRowCount() - 1\n }\n });\n }\n else {\n return this.focusGridView(column);\n }\n };\n FocusService.prototype.clearAdvancedFilterColumn = function () {\n this.advancedFilterFocusColumn = undefined;\n };\n var FocusService_1;\n FocusService.AG_KEYBOARD_FOCUS = 'ag-keyboard-focus';\n FocusService.keyboardModeActive = false;\n FocusService.instancesMonitored = new Map();\n __decorate$1p([\n Autowired('eGridDiv')\n ], FocusService.prototype, \"eGridDiv\", void 0);\n __decorate$1p([\n Autowired('columnModel')\n ], FocusService.prototype, \"columnModel\", void 0);\n __decorate$1p([\n Autowired('headerNavigationService')\n ], FocusService.prototype, \"headerNavigationService\", void 0);\n __decorate$1p([\n Autowired('rowRenderer')\n ], FocusService.prototype, \"rowRenderer\", void 0);\n __decorate$1p([\n Autowired('rowPositionUtils')\n ], FocusService.prototype, \"rowPositionUtils\", void 0);\n __decorate$1p([\n Autowired('cellPositionUtils')\n ], FocusService.prototype, \"cellPositionUtils\", void 0);\n __decorate$1p([\n Optional('rangeService')\n ], FocusService.prototype, \"rangeService\", void 0);\n __decorate$1p([\n Autowired('navigationService')\n ], FocusService.prototype, \"navigationService\", void 0);\n __decorate$1p([\n Autowired('ctrlsService')\n ], FocusService.prototype, \"ctrlsService\", void 0);\n __decorate$1p([\n Autowired('filterManager')\n ], FocusService.prototype, \"filterManager\", void 0);\n __decorate$1p([\n Optional('advancedFilterService')\n ], FocusService.prototype, \"advancedFilterService\", void 0);\n __decorate$1p([\n PostConstruct\n ], FocusService.prototype, \"init\", null);\n FocusService = FocusService_1 = __decorate$1p([\n Bean('focusService')\n ], FocusService);\n return FocusService;\n}(BeanStub));\n\nvar __extends$1t = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderCellCtrl = /** @class */ (function (_super) {\n __extends$1t(HeaderCellCtrl, _super);\n function HeaderCellCtrl(column, parentRowCtrl) {\n var _this = _super.call(this, column, parentRowCtrl) || this;\n _this.refreshFunctions = [];\n _this.userHeaderClasses = new Set();\n _this.ariaDescriptionProperties = new Map();\n _this.column = column;\n return _this;\n }\n HeaderCellCtrl.prototype.setComp = function (comp, eGui, eResize, eHeaderCompWrapper) {\n var _this = this;\n _super.prototype.setGui.call(this, eGui);\n this.comp = comp;\n this.updateState();\n this.setupWidth();\n this.setupMovingCss();\n this.setupMenuClass();\n this.setupSortableClass();\n this.setupWrapTextClass();\n this.refreshSpanHeaderHeight();\n this.setupAutoHeight(eHeaderCompWrapper);\n this.addColumnHoverListener();\n this.setupFilterCss();\n this.setupClassesFromColDef();\n this.setupTooltip();\n this.addActiveHeaderMouseListeners();\n this.setupSelectAll();\n this.setupUserComp();\n this.refreshAria();\n this.createManagedBean(new ResizeFeature(this.getPinned(), this.column, eResize, comp, this));\n this.createManagedBean(new HoverFeature([this.column], eGui));\n this.createManagedBean(new SetLeftFeature(this.column, eGui, this.beans));\n this.createManagedBean(new ManagedFocusFeature(eGui, {\n shouldStopEventPropagation: function (e) { return _this.shouldStopEventPropagation(e); },\n onTabKeyDown: function () { return null; },\n handleKeyDown: this.handleKeyDown.bind(this),\n onFocusIn: this.onFocusIn.bind(this),\n onFocusOut: this.onFocusOut.bind(this)\n }));\n this.addMouseDownListenerIfNeeded(eGui);\n this.addManagedListener(this.column, Column.EVENT_COL_DEF_CHANGED, this.onColDefChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VALUE_CHANGED, this.onColumnValueChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.onColumnRowGroupChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_CHANGED, this.onColumnPivotChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_HEADER_HEIGHT_CHANGED, this.onHeaderHeightChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onHeaderHeightChanged.bind(this));\n };\n HeaderCellCtrl.prototype.addMouseDownListenerIfNeeded = function (eGui) {\n var _this = this;\n // we add a preventDefault in the DragService for Safari only\n // so we need to make sure we don't prevent focus on mousedown\n if (!isBrowserSafari()) {\n return;\n }\n var events = ['mousedown', 'touchstart'];\n var eDocument = this.gridOptionsService.getDocument();\n events.forEach(function (eventName) {\n _this.addManagedListener(eGui, eventName, function (e) {\n var activeEl = eDocument.activeElement;\n if (activeEl !== eGui && !eGui.contains(activeEl)) {\n eGui.focus();\n FocusService.toggleKeyboardMode(e);\n }\n });\n });\n };\n HeaderCellCtrl.prototype.setupUserComp = function () {\n var compDetails = this.lookupUserCompDetails();\n this.setCompDetails(compDetails);\n };\n HeaderCellCtrl.prototype.setCompDetails = function (compDetails) {\n this.userCompDetails = compDetails;\n this.comp.setUserCompDetails(compDetails);\n };\n HeaderCellCtrl.prototype.lookupUserCompDetails = function () {\n var params = this.createParams();\n var colDef = this.column.getColDef();\n return this.userComponentFactory.getHeaderCompDetails(colDef, params);\n };\n HeaderCellCtrl.prototype.createParams = function () {\n var _this = this;\n var colDef = this.column.getColDef();\n var params = {\n column: this.column,\n displayName: this.displayName,\n enableSorting: colDef.sortable,\n enableMenu: this.menuEnabled,\n showColumnMenu: function (source) {\n _this.gridApi.showColumnMenuAfterButtonClick(_this.column, source);\n },\n progressSort: function (multiSort) {\n _this.sortController.progressSort(_this.column, !!multiSort, \"uiColumnSorted\");\n },\n setSort: function (sort, multiSort) {\n _this.sortController.setSortForColumn(_this.column, sort, !!multiSort, \"uiColumnSorted\");\n },\n api: this.gridApi,\n columnApi: this.columnApi,\n context: this.gridOptionsService.context,\n eGridHeader: this.getGui()\n };\n return params;\n };\n HeaderCellCtrl.prototype.setupSelectAll = function () {\n this.selectAllFeature = this.createManagedBean(new SelectAllFeature(this.column));\n this.selectAllFeature.setComp(this);\n };\n HeaderCellCtrl.prototype.getSelectAllGui = function () {\n return this.selectAllFeature.getCheckboxGui();\n };\n HeaderCellCtrl.prototype.handleKeyDown = function (e) {\n _super.prototype.handleKeyDown.call(this, e);\n if (e.key === KeyCode.SPACE) {\n this.selectAllFeature.onSpaceKeyDown(e);\n }\n if (e.key === KeyCode.ENTER) {\n this.onEnterKeyDown(e);\n }\n };\n HeaderCellCtrl.prototype.onEnterKeyDown = function (e) {\n /// THIS IS BAD - we are assuming the header is not a user provided comp\n var headerComp = this.comp.getUserCompInstance();\n if (!headerComp) {\n return;\n }\n if (e.ctrlKey || e.metaKey) {\n if (this.menuEnabled && headerComp.showMenu) {\n e.preventDefault();\n headerComp.showMenu();\n }\n }\n else if (this.sortable) {\n var multiSort = e.shiftKey;\n this.sortController.progressSort(this.column, multiSort, \"uiColumnSorted\");\n }\n };\n HeaderCellCtrl.prototype.isMenuEnabled = function () {\n return this.menuEnabled;\n };\n HeaderCellCtrl.prototype.onFocusIn = function (e) {\n if (!this.getGui().contains(e.relatedTarget)) {\n var rowIndex = this.getRowIndex();\n this.focusService.setFocusedHeader(rowIndex, this.column);\n }\n this.setActiveHeader(true);\n };\n HeaderCellCtrl.prototype.onFocusOut = function (e) {\n if (this.getGui().contains(e.relatedTarget)) {\n return;\n }\n this.setActiveHeader(false);\n };\n HeaderCellCtrl.prototype.setupTooltip = function () {\n var _this = this;\n var tooltipCtrl = {\n getColumn: function () { return _this.column; },\n getColDef: function () { return _this.column.getColDef(); },\n getGui: function () { return _this.eGui; },\n getLocation: function () { return 'header'; },\n getTooltipValue: function () {\n var res = _this.column.getColDef().headerTooltip;\n return res;\n },\n };\n var tooltipFeature = this.createManagedBean(new TooltipFeature(tooltipCtrl, this.beans));\n tooltipFeature.setComp(this.eGui);\n this.refreshFunctions.push(function () { return tooltipFeature.refreshToolTip(); });\n };\n HeaderCellCtrl.prototype.setupClassesFromColDef = function () {\n var _this = this;\n var refreshHeaderClasses = function () {\n var colDef = _this.column.getColDef();\n var classes = CssClassApplier.getHeaderClassesFromColDef(colDef, _this.gridOptionsService, _this.column, null);\n var oldClasses = _this.userHeaderClasses;\n _this.userHeaderClasses = new Set(classes);\n classes.forEach(function (c) {\n if (oldClasses.has(c)) {\n // class already added, no need to apply it, but remove from old set\n oldClasses.delete(c);\n }\n else {\n // class new since last time, so apply it\n _this.comp.addOrRemoveCssClass(c, true);\n }\n });\n // now old set only has classes that were applied last time, but not this time, so remove them\n oldClasses.forEach(function (c) { return _this.comp.addOrRemoveCssClass(c, false); });\n };\n this.refreshFunctions.push(refreshHeaderClasses);\n refreshHeaderClasses();\n };\n HeaderCellCtrl.prototype.setDragSource = function (eSource) {\n var _this = this;\n this.dragSourceElement = eSource;\n this.removeDragSource();\n if (!eSource) {\n return;\n }\n if (!this.draggable) {\n return;\n }\n var hideColumnOnExit = !this.gridOptionsService.is('suppressDragLeaveHidesColumns');\n this.moveDragSource = {\n type: DragSourceType.HeaderCell,\n eElement: eSource,\n getDefaultIconName: function () { return hideColumnOnExit ? DragAndDropService.ICON_HIDE : DragAndDropService.ICON_NOT_ALLOWED; },\n getDragItem: function () { return _this.createDragItem(); },\n dragItemName: this.displayName,\n onDragStarted: function () {\n hideColumnOnExit = !_this.gridOptionsService.is('suppressDragLeaveHidesColumns');\n _this.column.setMoving(true, \"uiColumnMoved\");\n },\n onDragStopped: function () { return _this.column.setMoving(false, \"uiColumnMoved\"); },\n onGridEnter: function (dragItem) {\n var _a;\n if (hideColumnOnExit) {\n var unlockedColumns = ((_a = dragItem === null || dragItem === void 0 ? void 0 : dragItem.columns) === null || _a === void 0 ? void 0 : _a.filter(function (col) { return !col.getColDef().lockVisible; })) || [];\n _this.columnModel.setColumnsVisible(unlockedColumns, true, \"uiColumnMoved\");\n }\n },\n onGridExit: function (dragItem) {\n var _a;\n if (hideColumnOnExit) {\n var unlockedColumns = ((_a = dragItem === null || dragItem === void 0 ? void 0 : dragItem.columns) === null || _a === void 0 ? void 0 : _a.filter(function (col) { return !col.getColDef().lockVisible; })) || [];\n _this.columnModel.setColumnsVisible(unlockedColumns, false, \"uiColumnMoved\");\n }\n },\n };\n this.dragAndDropService.addDragSource(this.moveDragSource, true);\n };\n HeaderCellCtrl.prototype.createDragItem = function () {\n var visibleState = {};\n visibleState[this.column.getId()] = this.column.isVisible();\n return {\n columns: [this.column],\n visibleState: visibleState\n };\n };\n HeaderCellCtrl.prototype.removeDragSource = function () {\n if (this.moveDragSource) {\n this.dragAndDropService.removeDragSource(this.moveDragSource);\n this.moveDragSource = undefined;\n }\n };\n HeaderCellCtrl.prototype.onColDefChanged = function () {\n this.refresh();\n };\n HeaderCellCtrl.prototype.updateState = function () {\n var colDef = this.column.getColDef();\n this.menuEnabled = this.menuFactory.isMenuEnabled(this.column) && !colDef.suppressMenu;\n this.sortable = colDef.sortable;\n this.displayName = this.calculateDisplayName();\n this.draggable = this.workOutDraggable();\n };\n HeaderCellCtrl.prototype.addRefreshFunction = function (func) {\n this.refreshFunctions.push(func);\n };\n HeaderCellCtrl.prototype.refresh = function () {\n this.updateState();\n this.refreshHeaderComp();\n this.refreshAria();\n this.refreshFunctions.forEach(function (f) { return f(); });\n };\n HeaderCellCtrl.prototype.refreshHeaderComp = function () {\n var newCompDetails = this.lookupUserCompDetails();\n var compInstance = this.comp.getUserCompInstance();\n // only try refresh if old comp exists adn it is the correct type\n var attemptRefresh = compInstance != null && this.userCompDetails.componentClass == newCompDetails.componentClass;\n var headerCompRefreshed = attemptRefresh ? this.attemptHeaderCompRefresh(newCompDetails.params) : false;\n if (headerCompRefreshed) {\n // we do this as a refresh happens after colDefs change, and it's possible the column has had it's\n // draggable property toggled. no need to call this if not refreshing, as setDragSource is done\n // as part of appendHeaderComp\n this.setDragSource(this.dragSourceElement);\n }\n else {\n this.setCompDetails(newCompDetails);\n }\n };\n HeaderCellCtrl.prototype.attemptHeaderCompRefresh = function (params) {\n var headerComp = this.comp.getUserCompInstance();\n if (!headerComp) {\n return false;\n }\n // if no refresh method, then we want to replace the headerComp\n if (!headerComp.refresh) {\n return false;\n }\n var res = headerComp.refresh(params);\n return res;\n };\n HeaderCellCtrl.prototype.calculateDisplayName = function () {\n return this.columnModel.getDisplayNameForColumn(this.column, 'header', true);\n };\n HeaderCellCtrl.prototype.checkDisplayName = function () {\n // display name can change if aggFunc different, eg sum(Gold) is now max(Gold)\n if (this.displayName !== this.calculateDisplayName()) {\n this.refresh();\n }\n };\n HeaderCellCtrl.prototype.workOutDraggable = function () {\n var colDef = this.column.getColDef();\n var isSuppressMovableColumns = this.gridOptionsService.is('suppressMovableColumns');\n var colCanMove = !isSuppressMovableColumns && !colDef.suppressMovable && !colDef.lockPosition;\n // we should still be allowed drag the column, even if it can't be moved, if the column\n // can be dragged to a rowGroup or pivot drop zone\n return !!colCanMove || !!colDef.enableRowGroup || !!colDef.enablePivot;\n };\n HeaderCellCtrl.prototype.onColumnRowGroupChanged = function () {\n this.checkDisplayName();\n };\n HeaderCellCtrl.prototype.onColumnPivotChanged = function () {\n this.checkDisplayName();\n };\n HeaderCellCtrl.prototype.onColumnValueChanged = function () {\n this.checkDisplayName();\n };\n HeaderCellCtrl.prototype.setupWidth = function () {\n var _this = this;\n var listener = function () {\n var columnWidth = _this.column.getActualWidth();\n _this.comp.setWidth(columnWidth + \"px\");\n };\n this.addManagedListener(this.column, Column.EVENT_WIDTH_CHANGED, listener);\n listener();\n };\n HeaderCellCtrl.prototype.setupMovingCss = function () {\n var _this = this;\n var listener = function () {\n // this is what makes the header go dark when it is been moved (gives impression to\n // user that the column was picked up).\n _this.comp.addOrRemoveCssClass('ag-header-cell-moving', _this.column.isMoving());\n };\n this.addManagedListener(this.column, Column.EVENT_MOVING_CHANGED, listener);\n listener();\n };\n HeaderCellCtrl.prototype.setupMenuClass = function () {\n var _this = this;\n var listener = function () {\n _this.comp.addOrRemoveCssClass('ag-column-menu-visible', _this.column.isMenuVisible());\n };\n this.addManagedListener(this.column, Column.EVENT_MENU_VISIBLE_CHANGED, listener);\n listener();\n };\n HeaderCellCtrl.prototype.setupSortableClass = function () {\n var _this = this;\n var updateSortableCssClass = function () {\n _this.comp.addOrRemoveCssClass('ag-header-cell-sortable', !!_this.sortable);\n };\n updateSortableCssClass();\n this.addRefreshFunction(updateSortableCssClass);\n this.addManagedListener(this.eventService, Column.EVENT_SORT_CHANGED, this.refreshAriaSort.bind(this));\n };\n HeaderCellCtrl.prototype.setupWrapTextClass = function () {\n var _this = this;\n var listener = function () {\n var wrapText = !!_this.column.getColDef().wrapHeaderText;\n _this.comp.addOrRemoveCssClass('ag-header-cell-wrap-text', wrapText);\n };\n listener();\n this.addRefreshFunction(listener);\n };\n HeaderCellCtrl.prototype.onHeaderHeightChanged = function () {\n this.refreshSpanHeaderHeight();\n };\n HeaderCellCtrl.prototype.refreshSpanHeaderHeight = function () {\n var _a = this, eGui = _a.eGui, column = _a.column, comp = _a.comp, columnModel = _a.columnModel, gridOptionsService = _a.gridOptionsService;\n if (!column.isSpanHeaderHeight()) {\n return;\n }\n var _b = this.getColumnGroupPaddingInfo(), numberOfParents = _b.numberOfParents, isSpanningTotal = _b.isSpanningTotal;\n comp.addOrRemoveCssClass('ag-header-span-height', numberOfParents > 0);\n var headerHeight = columnModel.getColumnHeaderRowHeight();\n if (numberOfParents === 0) {\n // if spanning has stopped then need to reset these values.\n comp.addOrRemoveCssClass('ag-header-span-total', false);\n eGui.style.setProperty('top', \"0px\");\n eGui.style.setProperty('height', headerHeight + \"px\");\n return;\n }\n comp.addOrRemoveCssClass('ag-header-span-total', isSpanningTotal);\n var pivotMode = gridOptionsService.is('pivotMode');\n var groupHeaderHeight = pivotMode\n ? columnModel.getPivotGroupHeaderHeight()\n : columnModel.getGroupHeaderHeight();\n var extraHeight = numberOfParents * groupHeaderHeight;\n eGui.style.setProperty('top', -extraHeight + \"px\");\n eGui.style.setProperty('height', headerHeight + extraHeight + \"px\");\n };\n HeaderCellCtrl.prototype.getColumnGroupPaddingInfo = function () {\n var parent = this.column.getParent();\n if (!parent || !parent.isPadding()) {\n return { numberOfParents: 0, isSpanningTotal: false };\n }\n var numberOfParents = parent.getPaddingLevel() + 1;\n var isSpanningTotal = true;\n while (parent) {\n if (!parent.isPadding()) {\n isSpanningTotal = false;\n break;\n }\n parent = parent.getParent();\n }\n return { numberOfParents: numberOfParents, isSpanningTotal: isSpanningTotal };\n };\n HeaderCellCtrl.prototype.setupAutoHeight = function (wrapperElement) {\n var _this = this;\n var measureHeight = function (timesCalled) {\n if (!_this.isAlive()) {\n return;\n }\n var _a = getElementSize(_this.getGui()), paddingTop = _a.paddingTop, paddingBottom = _a.paddingBottom, borderBottomWidth = _a.borderBottomWidth, borderTopWidth = _a.borderTopWidth;\n var extraHeight = paddingTop + paddingBottom + borderBottomWidth + borderTopWidth;\n var wrapperHeight = wrapperElement.offsetHeight;\n var autoHeight = wrapperHeight + extraHeight;\n if (timesCalled < 5) {\n // if not in doc yet, means framework not yet inserted, so wait for next VM turn,\n // maybe it will be ready next VM turn\n var doc = _this.beans.gridOptionsService.getDocument();\n var notYetInDom = !doc || !doc.contains(wrapperElement);\n // this happens in React, where React hasn't put any content in. we say 'possibly'\n // as a) may not be React and b) the cell could be empty anyway\n var possiblyNoContentYet = autoHeight == 0;\n if (notYetInDom || possiblyNoContentYet) {\n _this.beans.frameworkOverrides.setTimeout(function () { return measureHeight(timesCalled + 1); }, 0);\n return;\n }\n }\n _this.columnModel.setColumnHeaderHeight(_this.column, autoHeight);\n };\n var isMeasuring = false;\n var stopResizeObserver;\n var checkMeasuring = function () {\n var newValue = _this.column.isAutoHeaderHeight();\n if (newValue && !isMeasuring) {\n startMeasuring();\n }\n if (!newValue && isMeasuring) {\n stopMeasuring();\n }\n };\n var startMeasuring = function () {\n isMeasuring = true;\n measureHeight(0);\n _this.comp.addOrRemoveCssClass('ag-header-cell-auto-height', true);\n stopResizeObserver = _this.resizeObserverService.observeResize(wrapperElement, function () { return measureHeight(0); });\n };\n var stopMeasuring = function () {\n isMeasuring = false;\n if (stopResizeObserver) {\n stopResizeObserver();\n }\n _this.comp.addOrRemoveCssClass('ag-header-cell-auto-height', false);\n stopResizeObserver = undefined;\n };\n checkMeasuring();\n this.addDestroyFunc(function () { return stopMeasuring(); });\n // In theory we could rely on the resize observer for everything - but since it's debounced\n // it can be a little janky for smooth movement. in this case its better to react to our own events\n // And unfortunately we cant _just_ rely on our own events, since custom components can change whenever\n this.addManagedListener(this.column, Column.EVENT_WIDTH_CHANGED, function () { return isMeasuring && measureHeight(0); });\n // Displaying the sort icon changes the available area for text, so sort changes can affect height\n this.addManagedListener(this.eventService, Column.EVENT_SORT_CHANGED, function () {\n // Rendering changes for sort, happen after the event... not ideal\n if (isMeasuring) {\n _this.beans.frameworkOverrides.setTimeout(function () { return measureHeight(0); });\n }\n });\n this.addRefreshFunction(checkMeasuring);\n };\n HeaderCellCtrl.prototype.refreshAriaSort = function () {\n if (this.sortable) {\n var translate = this.localeService.getLocaleTextFunc();\n var sort = this.sortController.getDisplaySortForColumn(this.column) || null;\n this.comp.setAriaSort(getAriaSortState(sort));\n this.setAriaDescriptionProperty('sort', translate('ariaSortableColumn', 'Press ENTER to sort.'));\n }\n else {\n this.comp.setAriaSort();\n this.setAriaDescriptionProperty('sort', null);\n }\n };\n HeaderCellCtrl.prototype.refreshAriaMenu = function () {\n if (this.menuEnabled) {\n var translate = this.localeService.getLocaleTextFunc();\n this.setAriaDescriptionProperty('menu', translate('ariaMenuColumn', 'Press CTRL ENTER to open column menu.'));\n }\n else {\n this.setAriaDescriptionProperty('menu', null);\n }\n };\n HeaderCellCtrl.prototype.setAriaDescriptionProperty = function (property, value) {\n if (value != null) {\n this.ariaDescriptionProperties.set(property, value);\n }\n else {\n this.ariaDescriptionProperties.delete(property);\n }\n };\n HeaderCellCtrl.prototype.refreshAriaDescription = function () {\n var descriptionArray = Array.from(this.ariaDescriptionProperties.values());\n this.comp.setAriaDescription(descriptionArray.length ? descriptionArray.join(' ') : undefined);\n };\n HeaderCellCtrl.prototype.refreshAria = function () {\n this.refreshAriaSort();\n this.refreshAriaMenu();\n this.refreshAriaDescription();\n };\n HeaderCellCtrl.prototype.addColumnHoverListener = function () {\n var _this = this;\n var listener = function () {\n if (!_this.gridOptionsService.is('columnHoverHighlight')) {\n return;\n }\n var isHovered = _this.columnHoverService.isHovered(_this.column);\n _this.comp.addOrRemoveCssClass('ag-column-hover', isHovered);\n };\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_HOVER_CHANGED, listener);\n listener();\n };\n HeaderCellCtrl.prototype.setupFilterCss = function () {\n var _this = this;\n var listener = function () {\n _this.comp.addOrRemoveCssClass('ag-header-cell-filtered', _this.column.isFilterActive());\n };\n this.addManagedListener(this.column, Column.EVENT_FILTER_ACTIVE_CHANGED, listener);\n listener();\n };\n HeaderCellCtrl.prototype.getColId = function () {\n return this.column.getColId();\n };\n HeaderCellCtrl.prototype.addActiveHeaderMouseListeners = function () {\n var _this = this;\n var listener = function (e) { return _this.setActiveHeader(e.type === 'mouseenter'); };\n this.addManagedListener(this.getGui(), 'mouseenter', listener);\n this.addManagedListener(this.getGui(), 'mouseleave', listener);\n };\n HeaderCellCtrl.prototype.setActiveHeader = function (active) {\n this.comp.addOrRemoveCssClass('ag-header-active', active);\n };\n __decorate$1o([\n Autowired('columnModel')\n ], HeaderCellCtrl.prototype, \"columnModel\", void 0);\n __decorate$1o([\n Autowired('columnHoverService')\n ], HeaderCellCtrl.prototype, \"columnHoverService\", void 0);\n __decorate$1o([\n Autowired('sortController')\n ], HeaderCellCtrl.prototype, \"sortController\", void 0);\n __decorate$1o([\n Autowired('menuFactory')\n ], HeaderCellCtrl.prototype, \"menuFactory\", void 0);\n __decorate$1o([\n Autowired('dragAndDropService')\n ], HeaderCellCtrl.prototype, \"dragAndDropService\", void 0);\n __decorate$1o([\n Autowired('resizeObserverService')\n ], HeaderCellCtrl.prototype, \"resizeObserverService\", void 0);\n __decorate$1o([\n Autowired('gridApi')\n ], HeaderCellCtrl.prototype, \"gridApi\", void 0);\n __decorate$1o([\n Autowired('columnApi')\n ], HeaderCellCtrl.prototype, \"columnApi\", void 0);\n __decorate$1o([\n PreDestroy\n ], HeaderCellCtrl.prototype, \"removeDragSource\", null);\n return HeaderCellCtrl;\n}(AbstractHeaderCellCtrl));\n\nvar __extends$1s = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GroupResizeFeature = /** @class */ (function (_super) {\n __extends$1s(GroupResizeFeature, _super);\n function GroupResizeFeature(comp, eResize, pinned, columnGroup) {\n var _this = _super.call(this) || this;\n _this.eResize = eResize;\n _this.comp = comp;\n _this.pinned = pinned;\n _this.columnGroup = columnGroup;\n return _this;\n }\n GroupResizeFeature.prototype.postConstruct = function () {\n var _this = this;\n if (!this.columnGroup.isResizable()) {\n this.comp.setResizableDisplayed(false);\n return;\n }\n var finishedWithResizeFunc = this.horizontalResizeService.addResizeBar({\n eResizeBar: this.eResize,\n onResizeStart: this.onResizeStart.bind(this),\n onResizing: this.onResizing.bind(this, false),\n onResizeEnd: this.onResizing.bind(this, true)\n });\n this.addDestroyFunc(finishedWithResizeFunc);\n if (!this.gridOptionsService.is('suppressAutoSize')) {\n var skipHeaderOnAutoSize_1 = this.gridOptionsService.is('skipHeaderOnAutoSize');\n this.eResize.addEventListener('dblclick', function () {\n // get list of all the column keys we are responsible for\n var keys = [];\n var leafCols = _this.columnGroup.getDisplayedLeafColumns();\n leafCols.forEach(function (column) {\n // not all cols in the group may be participating with auto-resize\n if (!column.getColDef().suppressAutoSize) {\n keys.push(column.getColId());\n }\n });\n if (keys.length > 0) {\n _this.columnModel.autoSizeColumns({\n columns: keys,\n skipHeader: skipHeaderOnAutoSize_1,\n stopAtGroup: _this.columnGroup,\n source: 'uiColumnResized'\n });\n }\n _this.resizeLeafColumnsToFit('uiColumnResized');\n });\n }\n };\n GroupResizeFeature.prototype.onResizeStart = function (shiftKey) {\n var _this = this;\n this.calculateInitialValues();\n var takeFromGroup = null;\n if (shiftKey) {\n takeFromGroup = this.columnModel.getDisplayedGroupAfter(this.columnGroup);\n }\n if (takeFromGroup) {\n var takeFromLeafCols = takeFromGroup.getDisplayedLeafColumns();\n this.resizeTakeFromCols = takeFromLeafCols.filter(function (col) { return col.isResizable(); });\n this.resizeTakeFromStartWidth = 0;\n this.resizeTakeFromCols.forEach(function (col) { return _this.resizeTakeFromStartWidth += col.getActualWidth(); });\n this.resizeTakeFromRatios = [];\n this.resizeTakeFromCols.forEach(function (col) { return _this.resizeTakeFromRatios.push(col.getActualWidth() / _this.resizeTakeFromStartWidth); });\n }\n else {\n this.resizeTakeFromCols = null;\n this.resizeTakeFromStartWidth = null;\n this.resizeTakeFromRatios = null;\n }\n this.comp.addOrRemoveCssClass('ag-column-resizing', true);\n };\n GroupResizeFeature.prototype.onResizing = function (finished, resizeAmount, source) {\n if (source === void 0) { source = 'uiColumnResized'; }\n var resizeAmountNormalised = this.normaliseDragChange(resizeAmount);\n var width = this.resizeStartWidth + resizeAmountNormalised;\n this.resizeColumns(width, source, finished);\n };\n GroupResizeFeature.prototype.resizeLeafColumnsToFit = function (source) {\n var preferredSize = this.autoWidthCalculator.getPreferredWidthForColumnGroup(this.columnGroup);\n this.calculateInitialValues();\n if (preferredSize > this.resizeStartWidth) {\n this.resizeColumns(preferredSize, source, true);\n }\n };\n GroupResizeFeature.prototype.resizeColumns = function (totalWidth, source, finished) {\n if (finished === void 0) { finished = true; }\n var resizeSets = [];\n resizeSets.push({\n columns: this.resizeCols,\n ratios: this.resizeRatios,\n width: totalWidth\n });\n if (this.resizeTakeFromCols) {\n var diff = totalWidth - this.resizeStartWidth;\n resizeSets.push({\n columns: this.resizeTakeFromCols,\n ratios: this.resizeTakeFromRatios,\n width: this.resizeTakeFromStartWidth - diff\n });\n }\n this.columnModel.resizeColumnSets({\n resizeSets: resizeSets,\n finished: finished,\n source: source\n });\n if (finished) {\n this.comp.addOrRemoveCssClass('ag-column-resizing', false);\n }\n };\n GroupResizeFeature.prototype.calculateInitialValues = function () {\n var _this = this;\n var leafCols = this.columnGroup.getDisplayedLeafColumns();\n this.resizeCols = leafCols.filter(function (col) { return col.isResizable(); });\n this.resizeStartWidth = 0;\n this.resizeCols.forEach(function (col) { return _this.resizeStartWidth += col.getActualWidth(); });\n this.resizeRatios = [];\n this.resizeCols.forEach(function (col) { return _this.resizeRatios.push(col.getActualWidth() / _this.resizeStartWidth); });\n };\n // optionally inverts the drag, depending on pinned and RTL\n // note - this method is duplicated in RenderedHeaderCell - should refactor out?\n GroupResizeFeature.prototype.normaliseDragChange = function (dragChange) {\n var result = dragChange;\n if (this.gridOptionsService.is('enableRtl')) {\n // for RTL, dragging left makes the col bigger, except when pinning left\n if (this.pinned !== 'left') {\n result *= -1;\n }\n }\n else if (this.pinned === 'right') {\n // for LTR (ie normal), dragging left makes the col smaller, except when pinning right\n result *= -1;\n }\n return result;\n };\n __decorate$1n([\n Autowired('horizontalResizeService')\n ], GroupResizeFeature.prototype, \"horizontalResizeService\", void 0);\n __decorate$1n([\n Autowired('autoWidthCalculator')\n ], GroupResizeFeature.prototype, \"autoWidthCalculator\", void 0);\n __decorate$1n([\n Autowired('columnModel')\n ], GroupResizeFeature.prototype, \"columnModel\", void 0);\n __decorate$1n([\n PostConstruct\n ], GroupResizeFeature.prototype, \"postConstruct\", null);\n return GroupResizeFeature;\n}(BeanStub));\n\nvar __extends$1r = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GroupWidthFeature = /** @class */ (function (_super) {\n __extends$1r(GroupWidthFeature, _super);\n function GroupWidthFeature(comp, columnGroup) {\n var _this = _super.call(this) || this;\n // the children can change, we keep destroy functions related to listening to the children here\n _this.removeChildListenersFuncs = [];\n _this.columnGroup = columnGroup;\n _this.comp = comp;\n return _this;\n }\n GroupWidthFeature.prototype.postConstruct = function () {\n // we need to listen to changes in child columns, as they impact our width\n this.addListenersToChildrenColumns();\n // the children belonging to this group can change, so we need to add and remove listeners as they change\n this.addManagedListener(this.columnGroup, ColumnGroup.EVENT_DISPLAYED_CHILDREN_CHANGED, this.onDisplayedChildrenChanged.bind(this));\n this.onWidthChanged();\n // the child listeners are not tied to this components life-cycle, as children can get added and removed\n // to the group - hence they are on a different life-cycle. so we must make sure the existing children\n // listeners are removed when we finally get destroyed\n this.addDestroyFunc(this.removeListenersOnChildrenColumns.bind(this));\n };\n GroupWidthFeature.prototype.addListenersToChildrenColumns = function () {\n var _this = this;\n // first destroy any old listeners\n this.removeListenersOnChildrenColumns();\n // now add new listeners to the new set of children\n var widthChangedListener = this.onWidthChanged.bind(this);\n this.columnGroup.getLeafColumns().forEach(function (column) {\n column.addEventListener('widthChanged', widthChangedListener);\n column.addEventListener('visibleChanged', widthChangedListener);\n _this.removeChildListenersFuncs.push(function () {\n column.removeEventListener('widthChanged', widthChangedListener);\n column.removeEventListener('visibleChanged', widthChangedListener);\n });\n });\n };\n GroupWidthFeature.prototype.removeListenersOnChildrenColumns = function () {\n this.removeChildListenersFuncs.forEach(function (func) { return func(); });\n this.removeChildListenersFuncs = [];\n };\n GroupWidthFeature.prototype.onDisplayedChildrenChanged = function () {\n this.addListenersToChildrenColumns();\n this.onWidthChanged();\n };\n GroupWidthFeature.prototype.onWidthChanged = function () {\n var columnWidth = this.columnGroup.getActualWidth();\n this.comp.setWidth(columnWidth + \"px\");\n this.comp.addOrRemoveCssClass('ag-hidden', columnWidth === 0);\n };\n __decorate$1m([\n PostConstruct\n ], GroupWidthFeature.prototype, \"postConstruct\", null);\n return GroupWidthFeature;\n}(BeanStub));\n\nvar __extends$1q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderGroupCellCtrl = /** @class */ (function (_super) {\n __extends$1q(HeaderGroupCellCtrl, _super);\n function HeaderGroupCellCtrl(columnGroup, parentRowCtrl) {\n var _this = _super.call(this, columnGroup, parentRowCtrl) || this;\n _this.columnGroup = columnGroup;\n return _this;\n }\n HeaderGroupCellCtrl.prototype.setComp = function (comp, eGui, eResize) {\n _super.prototype.setGui.call(this, eGui);\n this.comp = comp;\n this.displayName = this.columnModel.getDisplayNameForColumnGroup(this.columnGroup, 'header');\n this.addClasses();\n this.setupMovingCss();\n this.setupExpandable();\n this.setupTooltip();\n this.setupUserComp();\n var pinned = this.getParentRowCtrl().getPinned();\n var leafCols = this.columnGroup.getProvidedColumnGroup().getLeafColumns();\n this.createManagedBean(new HoverFeature(leafCols, eGui));\n this.createManagedBean(new SetLeftFeature(this.columnGroup, eGui, this.beans));\n this.createManagedBean(new GroupWidthFeature(comp, this.columnGroup));\n this.groupResizeFeature = this.createManagedBean(new GroupResizeFeature(comp, eResize, pinned, this.columnGroup));\n this.createManagedBean(new ManagedFocusFeature(eGui, {\n shouldStopEventPropagation: this.shouldStopEventPropagation.bind(this),\n onTabKeyDown: function () { return undefined; },\n handleKeyDown: this.handleKeyDown.bind(this),\n onFocusIn: this.onFocusIn.bind(this)\n }));\n };\n HeaderGroupCellCtrl.prototype.resizeLeafColumnsToFit = function (source) {\n // check to avoid throwing when a component has not been setup yet (React 18)\n if (!this.groupResizeFeature) {\n return;\n }\n this.groupResizeFeature.resizeLeafColumnsToFit(source);\n };\n HeaderGroupCellCtrl.prototype.setupUserComp = function () {\n var _this = this;\n var displayName = this.displayName;\n var params = {\n displayName: this.displayName,\n columnGroup: this.columnGroup,\n setExpanded: function (expanded) {\n _this.columnModel.setColumnGroupOpened(_this.columnGroup.getProvidedColumnGroup(), expanded, \"gridInitializing\");\n },\n api: this.gridApi,\n columnApi: this.columnApi,\n context: this.gridOptionsService.context\n };\n if (!displayName) {\n var columnGroup = this.columnGroup;\n var leafCols = columnGroup.getLeafColumns();\n // find the top most column group that represents the same columns. so if we are dragging a group, we also\n // want to visually show the parent groups dragging for the same column set. for example imaging 5 levels\n // of grouping, with each group only containing the next group, and the last group containing three columns,\n // then when you move any group (even the lowest level group) you are in-fact moving all the groups, as all\n // the groups represent the same column set.\n while (columnGroup.getParent() && columnGroup.getParent().getLeafColumns().length === leafCols.length) {\n columnGroup = columnGroup.getParent();\n }\n var colGroupDef = columnGroup.getColGroupDef();\n if (colGroupDef) {\n displayName = colGroupDef.headerName;\n }\n if (!displayName) {\n displayName = leafCols ? this.columnModel.getDisplayNameForColumn(leafCols[0], 'header', true) : '';\n }\n }\n var compDetails = this.userComponentFactory.getHeaderGroupCompDetails(params);\n this.comp.setUserCompDetails(compDetails);\n };\n HeaderGroupCellCtrl.prototype.setupTooltip = function () {\n var _this = this;\n var colGroupDef = this.columnGroup.getColGroupDef();\n var tooltipCtrl = {\n getColumn: function () { return _this.columnGroup; },\n getGui: function () { return _this.eGui; },\n getLocation: function () { return 'headerGroup'; },\n getTooltipValue: function () { return colGroupDef && colGroupDef.headerTooltip; }\n };\n if (colGroupDef) {\n tooltipCtrl.getColDef = function () { return colGroupDef; };\n }\n var tooltipFeature = this.createManagedBean(new TooltipFeature(tooltipCtrl, this.beans));\n tooltipFeature.setComp(this.eGui);\n };\n HeaderGroupCellCtrl.prototype.setupExpandable = function () {\n var providedColGroup = this.columnGroup.getProvidedColumnGroup();\n this.refreshExpanded();\n this.addManagedListener(providedColGroup, ProvidedColumnGroup.EVENT_EXPANDABLE_CHANGED, this.refreshExpanded.bind(this));\n this.addManagedListener(providedColGroup, ProvidedColumnGroup.EVENT_EXPANDED_CHANGED, this.refreshExpanded.bind(this));\n };\n HeaderGroupCellCtrl.prototype.refreshExpanded = function () {\n var column = this.columnGroup;\n this.expandable = column.isExpandable();\n var expanded = column.isExpanded();\n if (this.expandable) {\n this.comp.setAriaExpanded(expanded ? 'true' : 'false');\n }\n else {\n this.comp.setAriaExpanded(undefined);\n }\n };\n HeaderGroupCellCtrl.prototype.getColId = function () {\n return this.columnGroup.getUniqueId();\n };\n HeaderGroupCellCtrl.prototype.addClasses = function () {\n var _this = this;\n var colGroupDef = this.columnGroup.getColGroupDef();\n var classes = CssClassApplier.getHeaderClassesFromColDef(colGroupDef, this.gridOptionsService, null, this.columnGroup);\n // having different classes below allows the style to not have a bottom border\n // on the group header, if no group is specified\n if (this.columnGroup.isPadding()) {\n classes.push('ag-header-group-cell-no-group');\n var leafCols = this.columnGroup.getLeafColumns();\n if (leafCols.every(function (col) { return col.isSpanHeaderHeight(); })) {\n classes.push('ag-header-span-height');\n }\n }\n else {\n classes.push('ag-header-group-cell-with-group');\n }\n classes.forEach(function (c) { return _this.comp.addOrRemoveCssClass(c, true); });\n };\n HeaderGroupCellCtrl.prototype.setupMovingCss = function () {\n var _this = this;\n var providedColumnGroup = this.columnGroup.getProvidedColumnGroup();\n var leafColumns = providedColumnGroup.getLeafColumns();\n // this function adds or removes the moving css, based on if the col is moving.\n // this is what makes the header go dark when it is been moved (gives impression to\n // user that the column was picked up).\n var listener = function () { return _this.comp.addOrRemoveCssClass('ag-header-cell-moving', _this.columnGroup.isMoving()); };\n leafColumns.forEach(function (col) {\n _this.addManagedListener(col, Column.EVENT_MOVING_CHANGED, listener);\n });\n listener();\n };\n HeaderGroupCellCtrl.prototype.onFocusIn = function (e) {\n if (!this.eGui.contains(e.relatedTarget)) {\n var rowIndex = this.getRowIndex();\n this.beans.focusService.setFocusedHeader(rowIndex, this.columnGroup);\n }\n };\n HeaderGroupCellCtrl.prototype.handleKeyDown = function (e) {\n _super.prototype.handleKeyDown.call(this, e);\n var wrapperHasFocus = this.getWrapperHasFocus();\n if (!this.expandable || !wrapperHasFocus) {\n return;\n }\n if (e.key === KeyCode.ENTER) {\n var column = this.columnGroup;\n var newExpandedValue = !column.isExpanded();\n this.columnModel.setColumnGroupOpened(column.getProvidedColumnGroup(), newExpandedValue, \"uiColumnExpanded\");\n }\n };\n // unlike columns, this will only get called once, as we don't react on props on column groups\n // (we will always destroy and recreate this comp if something changes)\n HeaderGroupCellCtrl.prototype.setDragSource = function (eHeaderGroup) {\n var _this = this;\n if (this.isSuppressMoving()) {\n return;\n }\n var allLeafColumns = this.columnGroup.getProvidedColumnGroup().getLeafColumns();\n var hideColumnOnExit = !this.gridOptionsService.is('suppressDragLeaveHidesColumns');\n var dragSource = {\n type: DragSourceType.HeaderCell,\n eElement: eHeaderGroup,\n getDefaultIconName: function () { return hideColumnOnExit ? DragAndDropService.ICON_HIDE : DragAndDropService.ICON_NOT_ALLOWED; },\n dragItemName: this.displayName,\n // we add in the original group leaf columns, so we move both visible and non-visible items\n getDragItem: this.getDragItemForGroup.bind(this),\n onDragStarted: function () {\n hideColumnOnExit = !_this.gridOptionsService.is('suppressDragLeaveHidesColumns');\n allLeafColumns.forEach(function (col) { return col.setMoving(true, \"uiColumnDragged\"); });\n },\n onDragStopped: function () { return allLeafColumns.forEach(function (col) { return col.setMoving(false, \"uiColumnDragged\"); }); },\n onGridEnter: function (dragItem) {\n var _a;\n if (hideColumnOnExit) {\n var unlockedColumns = ((_a = dragItem === null || dragItem === void 0 ? void 0 : dragItem.columns) === null || _a === void 0 ? void 0 : _a.filter(function (col) { return !col.getColDef().lockVisible; })) || [];\n _this.columnModel.setColumnsVisible(unlockedColumns, true, \"uiColumnMoved\");\n }\n },\n onGridExit: function (dragItem) {\n var _a;\n if (hideColumnOnExit) {\n var unlockedColumns = ((_a = dragItem === null || dragItem === void 0 ? void 0 : dragItem.columns) === null || _a === void 0 ? void 0 : _a.filter(function (col) { return !col.getColDef().lockVisible; })) || [];\n _this.columnModel.setColumnsVisible(unlockedColumns, false, \"uiColumnMoved\");\n }\n },\n };\n this.dragAndDropService.addDragSource(dragSource, true);\n this.addDestroyFunc(function () { return _this.dragAndDropService.removeDragSource(dragSource); });\n };\n // when moving the columns, we want to move all the columns (contained within the DragItem) in this group in one go,\n // and in the order they are currently in the screen.\n HeaderGroupCellCtrl.prototype.getDragItemForGroup = function () {\n var allColumnsOriginalOrder = this.columnGroup.getProvidedColumnGroup().getLeafColumns();\n // capture visible state, used when re-entering grid to dictate which columns should be visible\n var visibleState = {};\n allColumnsOriginalOrder.forEach(function (column) { return visibleState[column.getId()] = column.isVisible(); });\n var allColumnsCurrentOrder = [];\n this.columnModel.getAllDisplayedColumns().forEach(function (column) {\n if (allColumnsOriginalOrder.indexOf(column) >= 0) {\n allColumnsCurrentOrder.push(column);\n removeFromArray(allColumnsOriginalOrder, column);\n }\n });\n // we are left with non-visible columns, stick these in at the end\n allColumnsOriginalOrder.forEach(function (column) { return allColumnsCurrentOrder.push(column); });\n // create and return dragItem\n return {\n columns: allColumnsCurrentOrder,\n visibleState: visibleState\n };\n };\n HeaderGroupCellCtrl.prototype.isSuppressMoving = function () {\n // if any child is fixed, then don't allow moving\n var childSuppressesMoving = false;\n this.columnGroup.getLeafColumns().forEach(function (column) {\n if (column.getColDef().suppressMovable || column.getColDef().lockPosition) {\n childSuppressesMoving = true;\n }\n });\n var result = childSuppressesMoving || this.gridOptionsService.is('suppressMovableColumns');\n return result;\n };\n __decorate$1l([\n Autowired('columnModel')\n ], HeaderGroupCellCtrl.prototype, \"columnModel\", void 0);\n __decorate$1l([\n Autowired('dragAndDropService')\n ], HeaderGroupCellCtrl.prototype, \"dragAndDropService\", void 0);\n __decorate$1l([\n Autowired('gridApi')\n ], HeaderGroupCellCtrl.prototype, \"gridApi\", void 0);\n __decorate$1l([\n Autowired('columnApi')\n ], HeaderGroupCellCtrl.prototype, \"columnApi\", void 0);\n return HeaderGroupCellCtrl;\n}(AbstractHeaderCellCtrl));\n\nvar __extends$1p = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar instanceIdSequence = 0;\nvar HeaderRowCtrl = /** @class */ (function (_super) {\n __extends$1p(HeaderRowCtrl, _super);\n function HeaderRowCtrl(rowIndex, pinned, type) {\n var _this = _super.call(this) || this;\n _this.instanceId = instanceIdSequence++;\n _this.headerCellCtrls = {};\n _this.rowIndex = rowIndex;\n _this.pinned = pinned;\n _this.type = type;\n var typeClass = type == HeaderRowType.COLUMN_GROUP ? \"ag-header-row-column-group\" :\n type == HeaderRowType.FLOATING_FILTER ? \"ag-header-row-column-filter\" : \"ag-header-row-column\";\n _this.headerRowClass = \"ag-header-row \" + typeClass;\n return _this;\n }\n HeaderRowCtrl.prototype.postConstruct = function () {\n this.isPrintLayout = this.gridOptionsService.isDomLayout('print');\n this.isEnsureDomOrder = this.gridOptionsService.is('ensureDomOrder');\n };\n HeaderRowCtrl.prototype.getInstanceId = function () {\n return this.instanceId;\n };\n /**\n *\n * @param comp Proxy to the actual component\n * @param initCompState Should the component be initialised with the current state of the controller. Default: true\n */\n HeaderRowCtrl.prototype.setComp = function (comp, initCompState) {\n if (initCompState === void 0) { initCompState = true; }\n this.comp = comp;\n if (initCompState) {\n this.onRowHeightChanged();\n this.onVirtualColumnsChanged();\n }\n // width is managed directly regardless of framework and so is not included in initCompState\n this.setWidth();\n this.addEventListeners();\n };\n HeaderRowCtrl.prototype.getHeaderRowClass = function () {\n return this.headerRowClass;\n };\n HeaderRowCtrl.prototype.getAriaRowIndex = function () {\n return this.rowIndex + 1;\n };\n HeaderRowCtrl.prototype.getTransform = function () {\n if (isBrowserSafari()) {\n // fix for a Safari rendering bug that caused the header to flicker above chart panels\n // as you move the mouse over the header\n return 'translateZ(0)';\n }\n };\n HeaderRowCtrl.prototype.addEventListeners = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_RESIZED, this.onColumnResized.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_VIRTUAL_COLUMNS_CHANGED, function (params) { return _this.onVirtualColumnsChanged(params.afterScroll); });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_HEADER_HEIGHT_CHANGED, this.onRowHeightChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_GRID_STYLES_CHANGED, this.onRowHeightChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_ADVANCED_FILTER_ENABLED_CHANGED, this.onRowHeightChanged.bind(this));\n // when print layout changes, it changes what columns are in what section\n this.addManagedPropertyListener('domLayout', this.onDisplayedColumnsChanged.bind(this));\n this.addManagedPropertyListener('ensureDomOrder', function (e) { return _this.isEnsureDomOrder = e.currentValue; });\n this.addManagedPropertyListener('headerHeight', this.onRowHeightChanged.bind(this));\n this.addManagedPropertyListener('pivotHeaderHeight', this.onRowHeightChanged.bind(this));\n this.addManagedPropertyListener('groupHeaderHeight', this.onRowHeightChanged.bind(this));\n this.addManagedPropertyListener('pivotGroupHeaderHeight', this.onRowHeightChanged.bind(this));\n this.addManagedPropertyListener('floatingFiltersHeight', this.onRowHeightChanged.bind(this));\n };\n HeaderRowCtrl.prototype.getHeaderCellCtrl = function (column) {\n return values(this.headerCellCtrls).find(function (cellCtrl) { return cellCtrl.getColumnGroupChild() === column; });\n };\n HeaderRowCtrl.prototype.onDisplayedColumnsChanged = function () {\n this.isPrintLayout = this.gridOptionsService.isDomLayout('print');\n this.onVirtualColumnsChanged();\n this.setWidth();\n this.onRowHeightChanged();\n };\n HeaderRowCtrl.prototype.getType = function () {\n return this.type;\n };\n HeaderRowCtrl.prototype.onColumnResized = function () {\n this.setWidth();\n };\n HeaderRowCtrl.prototype.setWidth = function () {\n var width = this.getWidthForRow();\n this.comp.setWidth(width + \"px\");\n };\n HeaderRowCtrl.prototype.getWidthForRow = function () {\n if (this.isPrintLayout) {\n var pinned = this.pinned != null;\n if (pinned) {\n return 0;\n }\n return this.columnModel.getContainerWidth('right')\n + this.columnModel.getContainerWidth('left')\n + this.columnModel.getContainerWidth(null);\n }\n // if not printing, just return the width as normal\n return this.columnModel.getContainerWidth(this.pinned);\n };\n HeaderRowCtrl.prototype.onRowHeightChanged = function () {\n var _a = this.getTopAndHeight(), topOffset = _a.topOffset, rowHeight = _a.rowHeight;\n this.comp.setTop(topOffset + 'px');\n this.comp.setHeight(rowHeight + 'px');\n };\n HeaderRowCtrl.prototype.getTopAndHeight = function () {\n var headerRowCount = this.columnModel.getHeaderRowCount();\n var sizes = [];\n var numberOfFloating = 0;\n if (this.filterManager.hasFloatingFilters()) {\n headerRowCount++;\n numberOfFloating = 1;\n }\n var groupHeight = this.columnModel.getColumnGroupHeaderRowHeight();\n var headerHeight = this.columnModel.getColumnHeaderRowHeight();\n var numberOfNonGroups = 1 + numberOfFloating;\n var numberOfGroups = headerRowCount - numberOfNonGroups;\n for (var i = 0; i < numberOfGroups; i++) {\n sizes.push(groupHeight);\n }\n sizes.push(headerHeight);\n for (var i = 0; i < numberOfFloating; i++) {\n sizes.push(this.columnModel.getFloatingFiltersHeight());\n }\n var topOffset = 0;\n for (var i = 0; i < this.rowIndex; i++) {\n topOffset += sizes[i];\n }\n var rowHeight = sizes[this.rowIndex];\n return { topOffset: topOffset, rowHeight: rowHeight };\n };\n HeaderRowCtrl.prototype.getPinned = function () {\n return this.pinned;\n };\n HeaderRowCtrl.prototype.getRowIndex = function () {\n return this.rowIndex;\n };\n HeaderRowCtrl.prototype.onVirtualColumnsChanged = function (afterScroll) {\n if (afterScroll === void 0) { afterScroll = false; }\n var ctrlsToDisplay = this.getHeaderCtrls();\n var forceOrder = this.isEnsureDomOrder || this.isPrintLayout;\n this.comp.setHeaderCtrls(ctrlsToDisplay, forceOrder, afterScroll);\n };\n HeaderRowCtrl.prototype.getHeaderCtrls = function () {\n var _this = this;\n var oldCtrls = this.headerCellCtrls;\n this.headerCellCtrls = {};\n var columns = this.getColumnsInViewport();\n columns.forEach(function (child) {\n // skip groups that have no displayed children. this can happen when the group is broken,\n // and this section happens to have nothing to display for the open / closed state.\n // (a broken group is one that is split, ie columns in the group have a non-group column\n // in between them)\n if (child.isEmptyGroup()) {\n return;\n }\n var idOfChild = child.getUniqueId();\n // if we already have this cell rendered, do nothing\n var headerCtrl = oldCtrls[idOfChild];\n delete oldCtrls[idOfChild];\n // it's possible there is a new Column with the same ID, but it's for a different Column.\n // this is common with pivoting, where the pivot cols change, but the id's are still pivot_0,\n // pivot_1 etc. so if new col but same ID, need to remove the old col here first as we are\n // about to replace it in the this.headerComps map.\n var forOldColumn = headerCtrl && headerCtrl.getColumnGroupChild() != child;\n if (forOldColumn) {\n _this.destroyBean(headerCtrl);\n headerCtrl = undefined;\n }\n if (headerCtrl == null) {\n switch (_this.type) {\n case HeaderRowType.FLOATING_FILTER:\n headerCtrl = _this.createBean(new HeaderFilterCellCtrl(child, _this));\n break;\n case HeaderRowType.COLUMN_GROUP:\n headerCtrl = _this.createBean(new HeaderGroupCellCtrl(child, _this));\n break;\n default:\n headerCtrl = _this.createBean(new HeaderCellCtrl(child, _this));\n break;\n }\n }\n _this.headerCellCtrls[idOfChild] = headerCtrl;\n });\n // we want to keep columns that are focused, otherwise keyboard navigation breaks\n var isFocusedAndDisplayed = function (ctrl) {\n var isFocused = _this.focusService.isHeaderWrapperFocused(ctrl);\n if (!isFocused) {\n return false;\n }\n var isDisplayed = _this.columnModel.isDisplayed(ctrl.getColumnGroupChild());\n return isDisplayed;\n };\n iterateObject(oldCtrls, function (id, oldCtrl) {\n var keepCtrl = isFocusedAndDisplayed(oldCtrl);\n if (keepCtrl) {\n _this.headerCellCtrls[id] = oldCtrl;\n }\n else {\n _this.destroyBean(oldCtrl);\n }\n });\n var ctrlsToDisplay = getAllValuesInObject(this.headerCellCtrls);\n return ctrlsToDisplay;\n };\n HeaderRowCtrl.prototype.getColumnsInViewport = function () {\n return this.isPrintLayout ? this.getColumnsInViewportPrintLayout() : this.getColumnsInViewportNormalLayout();\n };\n HeaderRowCtrl.prototype.getColumnsInViewportPrintLayout = function () {\n var _this = this;\n // for print layout, we add all columns into the center\n if (this.pinned != null) {\n return [];\n }\n var viewportColumns = [];\n var actualDepth = this.getActualDepth();\n ['left', null, 'right'].forEach(function (pinned) {\n var items = _this.columnModel.getVirtualHeaderGroupRow(pinned, actualDepth);\n viewportColumns = viewportColumns.concat(items);\n });\n return viewportColumns;\n };\n HeaderRowCtrl.prototype.getActualDepth = function () {\n return this.type == HeaderRowType.FLOATING_FILTER ? this.rowIndex - 1 : this.rowIndex;\n };\n HeaderRowCtrl.prototype.getColumnsInViewportNormalLayout = function () {\n // when in normal layout, we add the columns for that container only\n return this.columnModel.getVirtualHeaderGroupRow(this.pinned, this.getActualDepth());\n };\n HeaderRowCtrl.prototype.focusHeader = function (column, event) {\n var allCtrls = getAllValuesInObject(this.headerCellCtrls);\n var ctrl = allCtrls.find(function (ctrl) { return ctrl.getColumnGroupChild() == column; });\n if (!ctrl) {\n return false;\n }\n ctrl.focus(event);\n return true;\n };\n HeaderRowCtrl.prototype.destroy = function () {\n var _this = this;\n iterateObject(this.headerCellCtrls, function (key, ctrl) {\n _this.destroyBean(ctrl);\n });\n this.headerCellCtrls = {};\n _super.prototype.destroy.call(this);\n };\n __decorate$1k([\n Autowired('columnModel')\n ], HeaderRowCtrl.prototype, \"columnModel\", void 0);\n __decorate$1k([\n Autowired('focusService')\n ], HeaderRowCtrl.prototype, \"focusService\", void 0);\n __decorate$1k([\n Autowired('filterManager')\n ], HeaderRowCtrl.prototype, \"filterManager\", void 0);\n __decorate$1k([\n PostConstruct\n ], HeaderRowCtrl.prototype, \"postConstruct\", null);\n return HeaderRowCtrl;\n}(BeanStub));\n\nvar __extends$1o = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$f = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$d = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar HeaderRowContainerCtrl = /** @class */ (function (_super) {\n __extends$1o(HeaderRowContainerCtrl, _super);\n function HeaderRowContainerCtrl(pinned) {\n var _this = _super.call(this) || this;\n _this.hidden = false;\n _this.includeFloatingFilter = false;\n _this.groupsRowCtrls = [];\n _this.pinned = pinned;\n return _this;\n }\n HeaderRowContainerCtrl.prototype.setComp = function (comp, eGui) {\n this.comp = comp;\n this.eViewport = eGui;\n this.setupCenterWidth();\n this.setupPinnedWidth();\n this.setupDragAndDrop(this.eViewport);\n this.addManagedListener(this.eventService, Events.EVENT_GRID_COLUMNS_CHANGED, this.onGridColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_ADVANCED_FILTER_ENABLED_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.ctrlsService.registerHeaderContainer(this, this.pinned);\n if (this.columnModel.isReady()) {\n this.refresh();\n }\n };\n HeaderRowContainerCtrl.prototype.setupDragAndDrop = function (dropContainer) {\n var bodyDropTarget = new BodyDropTarget(this.pinned, dropContainer);\n this.createManagedBean(bodyDropTarget);\n };\n HeaderRowContainerCtrl.prototype.refresh = function (keepColumns) {\n var _this = this;\n if (keepColumns === void 0) { keepColumns = false; }\n var sequence = new NumberSequence();\n var focusedHeaderPosition = this.focusService.getFocusHeaderToUseAfterRefresh();\n var refreshColumnGroups = function () {\n var groupRowCount = _this.columnModel.getHeaderRowCount() - 1;\n _this.groupsRowCtrls = _this.destroyBeans(_this.groupsRowCtrls);\n for (var i = 0; i < groupRowCount; i++) {\n var ctrl = _this.createBean(new HeaderRowCtrl(sequence.next(), _this.pinned, HeaderRowType.COLUMN_GROUP));\n _this.groupsRowCtrls.push(ctrl);\n }\n };\n var refreshColumns = function () {\n var rowIndex = sequence.next();\n var needNewInstance = !_this.hidden && (_this.columnsRowCtrl == null || !keepColumns || _this.columnsRowCtrl.getRowIndex() !== rowIndex);\n var shouldDestroyInstance = needNewInstance || _this.hidden;\n if (shouldDestroyInstance) {\n _this.columnsRowCtrl = _this.destroyBean(_this.columnsRowCtrl);\n }\n if (needNewInstance) {\n _this.columnsRowCtrl = _this.createBean(new HeaderRowCtrl(rowIndex, _this.pinned, HeaderRowType.COLUMN));\n }\n };\n var refreshFilters = function () {\n _this.includeFloatingFilter = _this.filterManager.hasFloatingFilters() && !_this.hidden;\n var destroyPreviousComp = function () {\n _this.filtersRowCtrl = _this.destroyBean(_this.filtersRowCtrl);\n };\n if (!_this.includeFloatingFilter) {\n destroyPreviousComp();\n return;\n }\n var rowIndex = sequence.next();\n if (_this.filtersRowCtrl) {\n var rowIndexMismatch = _this.filtersRowCtrl.getRowIndex() !== rowIndex;\n if (!keepColumns || rowIndexMismatch) {\n destroyPreviousComp();\n }\n }\n if (!_this.filtersRowCtrl) {\n _this.filtersRowCtrl = _this.createBean(new HeaderRowCtrl(rowIndex, _this.pinned, HeaderRowType.FLOATING_FILTER));\n }\n };\n refreshColumnGroups();\n refreshColumns();\n refreshFilters();\n var allCtrls = this.getAllCtrls();\n this.comp.setCtrls(allCtrls);\n this.restoreFocusOnHeader(focusedHeaderPosition);\n };\n HeaderRowContainerCtrl.prototype.restoreFocusOnHeader = function (position) {\n if (position == null || position.column.getPinned() != this.pinned) {\n return;\n }\n this.focusService.focusHeaderPosition({ headerPosition: position });\n };\n HeaderRowContainerCtrl.prototype.getAllCtrls = function () {\n var res = __spreadArray$d([], __read$f(this.groupsRowCtrls));\n if (this.columnsRowCtrl) {\n res.push(this.columnsRowCtrl);\n }\n if (this.filtersRowCtrl) {\n res.push(this.filtersRowCtrl);\n }\n return res;\n };\n // grid cols have changed - this also means the number of rows in the header can have\n // changed. so we remove all the old rows and insert new ones for a complete refresh\n HeaderRowContainerCtrl.prototype.onGridColumnsChanged = function () {\n this.refresh(true);\n };\n HeaderRowContainerCtrl.prototype.onDisplayedColumnsChanged = function () {\n var includeFloatingFilter = this.filterManager.hasFloatingFilters() && !this.hidden;\n if (this.includeFloatingFilter !== includeFloatingFilter) {\n this.refresh(true);\n }\n };\n HeaderRowContainerCtrl.prototype.setupCenterWidth = function () {\n var _this = this;\n if (this.pinned != null) {\n return;\n }\n this.createManagedBean(new CenterWidthFeature(function (width) { return _this.comp.setCenterWidth(width + \"px\"); }, true));\n };\n HeaderRowContainerCtrl.prototype.setHorizontalScroll = function (offset) {\n this.comp.setViewportScrollLeft(offset);\n };\n HeaderRowContainerCtrl.prototype.setupPinnedWidth = function () {\n var _this = this;\n if (this.pinned == null) {\n return;\n }\n var pinningLeft = this.pinned === 'left';\n var pinningRight = this.pinned === 'right';\n this.hidden = true;\n var listener = function () {\n var width = pinningLeft ? _this.pinnedWidthService.getPinnedLeftWidth() : _this.pinnedWidthService.getPinnedRightWidth();\n if (width == null) {\n return;\n } // can happen at initialisation, width not yet set\n var hidden = (width == 0);\n var hiddenChanged = _this.hidden !== hidden;\n var isRtl = _this.gridOptionsService.is('enableRtl');\n var scrollbarWidth = _this.gridOptionsService.getScrollbarWidth();\n // if there is a scroll showing (and taking up space, so Windows, and not iOS)\n // in the body, then we add extra space to keep header aligned with the body,\n // as body width fits the cols and the scrollbar\n var addPaddingForScrollbar = _this.scrollVisibleService.isVerticalScrollShowing() && ((isRtl && pinningLeft) || (!isRtl && pinningRight));\n var widthWithPadding = addPaddingForScrollbar ? width + scrollbarWidth : width;\n _this.comp.setPinnedContainerWidth(widthWithPadding + \"px\");\n _this.comp.setDisplayed(!hidden);\n if (hiddenChanged) {\n _this.hidden = hidden;\n _this.refresh();\n }\n };\n this.addManagedListener(this.eventService, Events.EVENT_LEFT_PINNED_WIDTH_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_SCROLL_VISIBILITY_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_SCROLLBAR_WIDTH_CHANGED, listener);\n };\n HeaderRowContainerCtrl.prototype.getHeaderCtrlForColumn = function (column) {\n if (column instanceof Column) {\n if (!this.columnsRowCtrl) {\n return;\n }\n return this.columnsRowCtrl.getHeaderCellCtrl(column);\n }\n if (this.groupsRowCtrls.length === 0) {\n return;\n }\n for (var i = 0; i < this.groupsRowCtrls.length; i++) {\n var ctrl = this.groupsRowCtrls[i].getHeaderCellCtrl(column);\n if (ctrl) {\n return ctrl;\n }\n }\n };\n HeaderRowContainerCtrl.prototype.getHtmlElementForColumnHeader = function (column) {\n /* tslint:enable */\n var cellCtrl = this.getHeaderCtrlForColumn(column);\n if (!cellCtrl) {\n return null;\n }\n return cellCtrl.getGui();\n };\n HeaderRowContainerCtrl.prototype.getRowType = function (rowIndex) {\n var allCtrls = this.getAllCtrls();\n var ctrl = allCtrls[rowIndex];\n return ctrl ? ctrl.getType() : undefined;\n };\n HeaderRowContainerCtrl.prototype.focusHeader = function (rowIndex, column, event) {\n var allCtrls = this.getAllCtrls();\n var ctrl = allCtrls[rowIndex];\n if (!ctrl) {\n return false;\n }\n return ctrl.focusHeader(column, event);\n };\n HeaderRowContainerCtrl.prototype.getRowCount = function () {\n return this.groupsRowCtrls.length + (this.columnsRowCtrl ? 1 : 0) + (this.filtersRowCtrl ? 1 : 0);\n };\n HeaderRowContainerCtrl.prototype.destroy = function () {\n if (this.filtersRowCtrl) {\n this.filtersRowCtrl = this.destroyBean(this.filtersRowCtrl);\n }\n if (this.columnsRowCtrl) {\n this.columnsRowCtrl = this.destroyBean(this.columnsRowCtrl);\n }\n if (this.groupsRowCtrls && this.groupsRowCtrls.length) {\n this.groupsRowCtrls = this.destroyBeans(this.groupsRowCtrls);\n }\n _super.prototype.destroy.call(this);\n };\n __decorate$1j([\n Autowired('ctrlsService')\n ], HeaderRowContainerCtrl.prototype, \"ctrlsService\", void 0);\n __decorate$1j([\n Autowired('scrollVisibleService')\n ], HeaderRowContainerCtrl.prototype, \"scrollVisibleService\", void 0);\n __decorate$1j([\n Autowired('pinnedWidthService')\n ], HeaderRowContainerCtrl.prototype, \"pinnedWidthService\", void 0);\n __decorate$1j([\n Autowired('columnModel')\n ], HeaderRowContainerCtrl.prototype, \"columnModel\", void 0);\n __decorate$1j([\n Autowired('focusService')\n ], HeaderRowContainerCtrl.prototype, \"focusService\", void 0);\n __decorate$1j([\n Autowired('filterManager')\n ], HeaderRowContainerCtrl.prototype, \"filterManager\", void 0);\n return HeaderRowContainerCtrl;\n}(BeanStub));\n\nvar __extends$1n = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderRowContainerComp = /** @class */ (function (_super) {\n __extends$1n(HeaderRowContainerComp, _super);\n function HeaderRowContainerComp(pinned) {\n var _this = _super.call(this) || this;\n _this.headerRowComps = {};\n _this.rowCompsList = [];\n _this.pinned = pinned;\n return _this;\n }\n HeaderRowContainerComp.prototype.init = function () {\n var _this = this;\n this.selectAndSetTemplate();\n var compProxy = {\n setDisplayed: function (displayed) { return _this.setDisplayed(displayed); },\n setCtrls: function (ctrls) { return _this.setCtrls(ctrls); },\n // only gets called for center section\n setCenterWidth: function (width) { return _this.eCenterContainer.style.width = width; },\n setViewportScrollLeft: function (left) { return _this.getGui().scrollLeft = left; },\n // only gets called for pinned sections\n setPinnedContainerWidth: function (width) {\n var eGui = _this.getGui();\n eGui.style.width = width;\n eGui.style.maxWidth = width;\n eGui.style.minWidth = width;\n }\n };\n var ctrl = this.createManagedBean(new HeaderRowContainerCtrl(this.pinned));\n ctrl.setComp(compProxy, this.getGui());\n };\n HeaderRowContainerComp.prototype.selectAndSetTemplate = function () {\n var pinnedLeft = this.pinned == 'left';\n var pinnedRight = this.pinned == 'right';\n var template = pinnedLeft ? HeaderRowContainerComp.PINNED_LEFT_TEMPLATE :\n pinnedRight ? HeaderRowContainerComp.PINNED_RIGHT_TEMPLATE : HeaderRowContainerComp.CENTER_TEMPLATE;\n this.setTemplate(template);\n // for left and right, we add rows directly to the root element,\n // but for center container we add elements to the child container.\n this.eRowContainer = this.eCenterContainer ? this.eCenterContainer : this.getGui();\n };\n HeaderRowContainerComp.prototype.destroyRowComps = function () {\n this.setCtrls([]);\n };\n HeaderRowContainerComp.prototype.destroyRowComp = function (rowComp) {\n this.destroyBean(rowComp);\n this.eRowContainer.removeChild(rowComp.getGui());\n };\n HeaderRowContainerComp.prototype.setCtrls = function (ctrls) {\n var _this = this;\n var oldRowComps = this.headerRowComps;\n this.headerRowComps = {};\n this.rowCompsList = [];\n var prevGui;\n var appendEnsuringDomOrder = function (rowComp) {\n var eGui = rowComp.getGui();\n var notAlreadyIn = eGui.parentElement != _this.eRowContainer;\n if (notAlreadyIn) {\n _this.eRowContainer.appendChild(eGui);\n }\n if (prevGui) {\n ensureDomOrder(_this.eRowContainer, eGui, prevGui);\n }\n prevGui = eGui;\n };\n ctrls.forEach(function (ctrl) {\n var ctrlId = ctrl.getInstanceId();\n var existingComp = oldRowComps[ctrlId];\n delete oldRowComps[ctrlId];\n var rowComp = existingComp ? existingComp : _this.createBean(new HeaderRowComp(ctrl));\n _this.headerRowComps[ctrlId] = rowComp;\n _this.rowCompsList.push(rowComp);\n appendEnsuringDomOrder(rowComp);\n });\n getAllValuesInObject(oldRowComps).forEach(function (c) { return _this.destroyRowComp(c); });\n };\n HeaderRowContainerComp.PINNED_LEFT_TEMPLATE = \"
\";\n HeaderRowContainerComp.PINNED_RIGHT_TEMPLATE = \"
\";\n HeaderRowContainerComp.CENTER_TEMPLATE = \"
\\n
\\n
\";\n __decorate$1i([\n RefSelector('eCenterContainer')\n ], HeaderRowContainerComp.prototype, \"eCenterContainer\", void 0);\n __decorate$1i([\n PostConstruct\n ], HeaderRowContainerComp.prototype, \"init\", null);\n __decorate$1i([\n PreDestroy\n ], HeaderRowContainerComp.prototype, \"destroyRowComps\", null);\n return HeaderRowContainerComp;\n}(Component));\n\nvar __extends$1m = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderNavigationDirection;\n(function (HeaderNavigationDirection) {\n HeaderNavigationDirection[HeaderNavigationDirection[\"UP\"] = 0] = \"UP\";\n HeaderNavigationDirection[HeaderNavigationDirection[\"DOWN\"] = 1] = \"DOWN\";\n HeaderNavigationDirection[HeaderNavigationDirection[\"LEFT\"] = 2] = \"LEFT\";\n HeaderNavigationDirection[HeaderNavigationDirection[\"RIGHT\"] = 3] = \"RIGHT\";\n})(HeaderNavigationDirection || (HeaderNavigationDirection = {}));\nvar HeaderNavigationService = /** @class */ (function (_super) {\n __extends$1m(HeaderNavigationService, _super);\n function HeaderNavigationService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n HeaderNavigationService.prototype.postConstruct = function () {\n var _this = this;\n this.ctrlsService.whenReady(function (p) {\n _this.gridBodyCon = p.gridBodyCtrl;\n });\n };\n HeaderNavigationService.prototype.getHeaderRowCount = function () {\n var centerHeaderContainer = this.ctrlsService.getHeaderRowContainerCtrl();\n return centerHeaderContainer ? centerHeaderContainer.getRowCount() : 0;\n };\n /*\n * This method navigates grid header vertically\n * @return {boolean} true to preventDefault on the event that caused this navigation.\n */\n HeaderNavigationService.prototype.navigateVertically = function (direction, fromHeader, event) {\n if (!fromHeader) {\n fromHeader = this.focusService.getFocusedHeader();\n }\n if (!fromHeader) {\n return false;\n }\n var headerRowIndex = fromHeader.headerRowIndex, column = fromHeader.column;\n var rowLen = this.getHeaderRowCount();\n var isUp = direction === HeaderNavigationDirection.UP;\n var _a = isUp\n ? this.headerPositionUtils.getColumnVisibleParent(column, headerRowIndex)\n : this.headerPositionUtils.getColumnVisibleChild(column, headerRowIndex), nextRow = _a.nextRow, nextFocusColumn = _a.nextFocusColumn;\n var skipColumn = false;\n if (nextRow < 0) {\n nextRow = 0;\n nextFocusColumn = column;\n skipColumn = true;\n }\n if (nextRow >= rowLen) {\n nextRow = -1; // -1 indicates the focus should move to grid rows.\n }\n if (!skipColumn && !nextFocusColumn) {\n return false;\n }\n return this.focusService.focusHeaderPosition({\n headerPosition: { headerRowIndex: nextRow, column: nextFocusColumn },\n allowUserOverride: true,\n event: event\n });\n };\n /*\n * This method navigates grid header horizontally\n * @return {boolean} true to preventDefault on the event that caused this navigation.\n */\n HeaderNavigationService.prototype.navigateHorizontally = function (direction, fromTab, event) {\n if (fromTab === void 0) { fromTab = false; }\n var focusedHeader = this.focusService.getFocusedHeader();\n var isLeft = direction === HeaderNavigationDirection.LEFT;\n var isRtl = this.gridOptionsService.is('enableRtl');\n var nextHeader;\n var normalisedDirection;\n // either navigating to the left or isRtl (cannot be both)\n if (isLeft !== isRtl) {\n normalisedDirection = 'Before';\n nextHeader = this.headerPositionUtils.findHeader(focusedHeader, normalisedDirection);\n }\n else {\n normalisedDirection = 'After';\n nextHeader = this.headerPositionUtils.findHeader(focusedHeader, normalisedDirection);\n }\n if (nextHeader || !fromTab) {\n return this.focusService.focusHeaderPosition({\n headerPosition: nextHeader,\n direction: normalisedDirection,\n fromTab: fromTab,\n allowUserOverride: true,\n event: event\n });\n }\n return this.focusNextHeaderRow(focusedHeader, normalisedDirection, event);\n };\n HeaderNavigationService.prototype.focusNextHeaderRow = function (focusedHeader, direction, event) {\n var currentIndex = focusedHeader.headerRowIndex;\n var nextPosition = null;\n var nextRowIndex;\n if (direction === 'Before') {\n if (currentIndex > 0) {\n nextRowIndex = currentIndex - 1;\n nextPosition = this.headerPositionUtils.findColAtEdgeForHeaderRow(nextRowIndex, 'end');\n }\n }\n else {\n nextRowIndex = currentIndex + 1;\n nextPosition = this.headerPositionUtils.findColAtEdgeForHeaderRow(nextRowIndex, 'start');\n }\n return this.focusService.focusHeaderPosition({\n headerPosition: nextPosition,\n direction: direction,\n fromTab: true,\n allowUserOverride: true,\n event: event\n });\n };\n HeaderNavigationService.prototype.scrollToColumn = function (column, direction) {\n if (direction === void 0) { direction = 'After'; }\n if (column.getPinned()) {\n return;\n }\n var columnToScrollTo;\n if (column instanceof ColumnGroup) {\n var columns = column.getDisplayedLeafColumns();\n columnToScrollTo = direction === 'Before' ? last(columns) : columns[0];\n }\n else {\n columnToScrollTo = column;\n }\n this.gridBodyCon.getScrollFeature().ensureColumnVisible(columnToScrollTo);\n };\n __decorate$1h([\n Autowired('focusService')\n ], HeaderNavigationService.prototype, \"focusService\", void 0);\n __decorate$1h([\n Autowired('headerPositionUtils')\n ], HeaderNavigationService.prototype, \"headerPositionUtils\", void 0);\n __decorate$1h([\n Autowired('ctrlsService')\n ], HeaderNavigationService.prototype, \"ctrlsService\", void 0);\n __decorate$1h([\n PostConstruct\n ], HeaderNavigationService.prototype, \"postConstruct\", null);\n HeaderNavigationService = __decorate$1h([\n Bean('headerNavigationService')\n ], HeaderNavigationService);\n return HeaderNavigationService;\n}(BeanStub));\n\nvar __extends$1l = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GridHeaderCtrl = /** @class */ (function (_super) {\n __extends$1l(GridHeaderCtrl, _super);\n function GridHeaderCtrl() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GridHeaderCtrl.prototype.setComp = function (comp, eGui, eFocusableElement) {\n this.comp = comp;\n this.eGui = eGui;\n this.createManagedBean(new ManagedFocusFeature(eFocusableElement, {\n onTabKeyDown: this.onTabKeyDown.bind(this),\n handleKeyDown: this.handleKeyDown.bind(this),\n onFocusOut: this.onFocusOut.bind(this)\n }));\n // for setting ag-pivot-on / ag-pivot-off CSS classes\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, this.onPivotModeChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.onPivotModeChanged();\n this.setupHeaderHeight();\n this.ctrlsService.registerGridHeaderCtrl(this);\n };\n GridHeaderCtrl.prototype.setupHeaderHeight = function () {\n var listener = this.setHeaderHeight.bind(this);\n listener();\n this.addManagedPropertyListener('headerHeight', listener);\n this.addManagedPropertyListener('pivotHeaderHeight', listener);\n this.addManagedPropertyListener('groupHeaderHeight', listener);\n this.addManagedPropertyListener('pivotGroupHeaderHeight', listener);\n this.addManagedPropertyListener('floatingFiltersHeight', listener);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_HEADER_HEIGHT_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_GRID_STYLES_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_ADVANCED_FILTER_ENABLED_CHANGED, listener);\n };\n GridHeaderCtrl.prototype.getHeaderHeight = function () {\n return this.headerHeight;\n };\n GridHeaderCtrl.prototype.setHeaderHeight = function () {\n var columnModel = this.columnModel;\n var numberOfFloating = 0;\n var headerRowCount = columnModel.getHeaderRowCount();\n var totalHeaderHeight;\n var hasFloatingFilters = this.filterManager.hasFloatingFilters();\n if (hasFloatingFilters) {\n headerRowCount++;\n numberOfFloating = 1;\n }\n var groupHeight = this.columnModel.getColumnGroupHeaderRowHeight();\n var headerHeight = this.columnModel.getColumnHeaderRowHeight();\n var numberOfNonGroups = 1 + numberOfFloating;\n var numberOfGroups = headerRowCount - numberOfNonGroups;\n totalHeaderHeight = numberOfFloating * columnModel.getFloatingFiltersHeight();\n totalHeaderHeight += numberOfGroups * groupHeight;\n totalHeaderHeight += headerHeight;\n if (this.headerHeight === totalHeaderHeight) {\n return;\n }\n this.headerHeight = totalHeaderHeight;\n // one extra pixel is needed here to account for the\n // height of the border\n var px = totalHeaderHeight + 1 + \"px\";\n this.comp.setHeightAndMinHeight(px);\n this.eventService.dispatchEvent({\n type: Events.EVENT_HEADER_HEIGHT_CHANGED\n });\n };\n GridHeaderCtrl.prototype.onPivotModeChanged = function () {\n var pivotMode = this.columnModel.isPivotMode();\n this.comp.addOrRemoveCssClass('ag-pivot-on', pivotMode);\n this.comp.addOrRemoveCssClass('ag-pivot-off', !pivotMode);\n };\n GridHeaderCtrl.prototype.onDisplayedColumnsChanged = function () {\n var columns = this.columnModel.getAllDisplayedColumns();\n var shouldAllowOverflow = columns.some(function (col) { return col.isSpanHeaderHeight(); });\n this.comp.addOrRemoveCssClass('ag-header-allow-overflow', shouldAllowOverflow);\n };\n GridHeaderCtrl.prototype.onTabKeyDown = function (e) {\n var isRtl = this.gridOptionsService.is('enableRtl');\n var direction = e.shiftKey !== isRtl\n ? HeaderNavigationDirection.LEFT\n : HeaderNavigationDirection.RIGHT;\n if (this.headerNavigationService.navigateHorizontally(direction, true, e) ||\n this.focusService.focusNextGridCoreContainer(e.shiftKey)) {\n e.preventDefault();\n }\n };\n GridHeaderCtrl.prototype.handleKeyDown = function (e) {\n var direction = null;\n switch (e.key) {\n case KeyCode.LEFT:\n direction = HeaderNavigationDirection.LEFT;\n case KeyCode.RIGHT:\n if (!exists(direction)) {\n direction = HeaderNavigationDirection.RIGHT;\n }\n this.headerNavigationService.navigateHorizontally(direction, false, e);\n break;\n case KeyCode.UP:\n direction = HeaderNavigationDirection.UP;\n case KeyCode.DOWN:\n if (!exists(direction)) {\n direction = HeaderNavigationDirection.DOWN;\n }\n if (this.headerNavigationService.navigateVertically(direction, null, e)) {\n e.preventDefault();\n }\n break;\n default:\n return;\n }\n };\n GridHeaderCtrl.prototype.onFocusOut = function (e) {\n var eDocument = this.gridOptionsService.getDocument();\n var relatedTarget = e.relatedTarget;\n if (!relatedTarget && this.eGui.contains(eDocument.activeElement)) {\n return;\n }\n if (!this.eGui.contains(relatedTarget)) {\n this.focusService.clearFocusedHeader();\n }\n };\n __decorate$1g([\n Autowired('headerNavigationService')\n ], GridHeaderCtrl.prototype, \"headerNavigationService\", void 0);\n __decorate$1g([\n Autowired('focusService')\n ], GridHeaderCtrl.prototype, \"focusService\", void 0);\n __decorate$1g([\n Autowired('columnModel')\n ], GridHeaderCtrl.prototype, \"columnModel\", void 0);\n __decorate$1g([\n Autowired('ctrlsService')\n ], GridHeaderCtrl.prototype, \"ctrlsService\", void 0);\n __decorate$1g([\n Autowired('filterManager')\n ], GridHeaderCtrl.prototype, \"filterManager\", void 0);\n return GridHeaderCtrl;\n}(BeanStub));\n\nvar __extends$1k = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GridHeaderComp = /** @class */ (function (_super) {\n __extends$1k(GridHeaderComp, _super);\n function GridHeaderComp() {\n return _super.call(this, GridHeaderComp.TEMPLATE) || this;\n }\n GridHeaderComp.prototype.postConstruct = function () {\n var _this = this;\n var compProxy = {\n addOrRemoveCssClass: function (cssClassName, on) { return _this.addOrRemoveCssClass(cssClassName, on); },\n setHeightAndMinHeight: function (height) {\n _this.getGui().style.height = height;\n _this.getGui().style.minHeight = height;\n }\n };\n var ctrl = this.createManagedBean(new GridHeaderCtrl());\n ctrl.setComp(compProxy, this.getGui(), this.getFocusableElement());\n var addContainer = function (container) {\n _this.createManagedBean(container);\n _this.appendChild(container);\n };\n addContainer(new HeaderRowContainerComp('left'));\n addContainer(new HeaderRowContainerComp(null));\n addContainer(new HeaderRowContainerComp('right'));\n };\n GridHeaderComp.TEMPLATE = \"
\";\n __decorate$1f([\n PostConstruct\n ], GridHeaderComp.prototype, \"postConstruct\", null);\n return GridHeaderComp;\n}(Component));\n\nvar __extends$1j = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HorizontalResizeService = /** @class */ (function (_super) {\n __extends$1j(HorizontalResizeService, _super);\n function HorizontalResizeService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n HorizontalResizeService.prototype.addResizeBar = function (params) {\n var _this = this;\n var dragSource = {\n dragStartPixels: params.dragStartPixels || 0,\n eElement: params.eResizeBar,\n onDragStart: this.onDragStart.bind(this, params),\n onDragStop: this.onDragStop.bind(this, params),\n onDragging: this.onDragging.bind(this, params),\n includeTouch: true,\n stopPropagationForTouch: true\n };\n this.dragService.addDragSource(dragSource);\n // we pass remove func back to the caller, so call can tell us when they\n // are finished, and then we remove the listener from the drag source\n var finishedWithResizeFunc = function () { return _this.dragService.removeDragSource(dragSource); };\n return finishedWithResizeFunc;\n };\n HorizontalResizeService.prototype.onDragStart = function (params, mouseEvent) {\n this.dragStartX = mouseEvent.clientX;\n this.setResizeIcons();\n var shiftKey = mouseEvent instanceof MouseEvent && mouseEvent.shiftKey === true;\n params.onResizeStart(shiftKey);\n };\n HorizontalResizeService.prototype.setResizeIcons = function () {\n var ctrl = this.ctrlsService.getGridCtrl();\n // change the body cursor, so when drag moves out of the drag bar, the cursor is still 'resize' (or 'move'\n ctrl.setResizeCursor(true);\n // we don't want text selection outside the grid (otherwise it looks weird as text highlights when we move)\n ctrl.disableUserSelect(true);\n };\n HorizontalResizeService.prototype.onDragStop = function (params, mouseEvent) {\n params.onResizeEnd(this.resizeAmount);\n this.resetIcons();\n };\n HorizontalResizeService.prototype.resetIcons = function () {\n var ctrl = this.ctrlsService.getGridCtrl();\n ctrl.setResizeCursor(false);\n ctrl.disableUserSelect(false);\n };\n HorizontalResizeService.prototype.onDragging = function (params, mouseEvent) {\n this.resizeAmount = mouseEvent.clientX - this.dragStartX;\n params.onResizing(this.resizeAmount);\n };\n __decorate$1e([\n Autowired('dragService')\n ], HorizontalResizeService.prototype, \"dragService\", void 0);\n __decorate$1e([\n Autowired('ctrlsService')\n ], HorizontalResizeService.prototype, \"ctrlsService\", void 0);\n HorizontalResizeService = __decorate$1e([\n Bean('horizontalResizeService')\n ], HorizontalResizeService);\n return HorizontalResizeService;\n}(BeanStub));\n\nvar __extends$1i = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar StandardMenuFactory = /** @class */ (function (_super) {\n __extends$1i(StandardMenuFactory, _super);\n function StandardMenuFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StandardMenuFactory.prototype.hideActiveMenu = function () {\n if (this.hidePopup) {\n this.hidePopup();\n }\n };\n StandardMenuFactory.prototype.showMenuAfterMouseEvent = function (column, mouseEvent) {\n var _this = this;\n this.showPopup(column, function (eMenu) {\n _this.popupService.positionPopupUnderMouseEvent({\n column: column,\n type: 'columnMenu',\n mouseEvent: mouseEvent,\n ePopup: eMenu\n });\n }, 'columnMenu', mouseEvent.target);\n };\n StandardMenuFactory.prototype.showMenuAfterButtonClick = function (column, eventSource, containerType) {\n var _this = this;\n this.showPopup(column, function (eMenu) {\n _this.popupService.positionPopupByComponent({\n type: containerType,\n eventSource: eventSource,\n ePopup: eMenu,\n keepWithinBounds: true,\n position: 'under',\n column: column,\n });\n }, containerType, eventSource);\n };\n StandardMenuFactory.prototype.showPopup = function (column, positionCallback, containerType, eventSource) {\n var _this = this;\n var filterWrapper = this.filterManager.getOrCreateFilterWrapper(column, 'COLUMN_MENU');\n if (!filterWrapper) {\n throw new Error('AG Grid - unable to show popup filter, filter instantiation failed');\n }\n var eMenu = document.createElement('div');\n setAriaRole(eMenu, 'presentation');\n eMenu.classList.add('ag-menu');\n this.tabListener = this.addManagedListener(eMenu, 'keydown', function (e) { return _this.trapFocusWithin(e, eMenu); });\n filterWrapper.guiPromise.then(function (gui) { return eMenu.appendChild(gui); });\n var hidePopup;\n var afterGuiDetached = function () { var _a; return (_a = filterWrapper.filterPromise) === null || _a === void 0 ? void 0 : _a.then(function (filter) { var _a; return (_a = filter === null || filter === void 0 ? void 0 : filter.afterGuiDetached) === null || _a === void 0 ? void 0 : _a.call(filter); }); };\n var anchorToElement = eventSource || this.ctrlsService.getGridBodyCtrl().getGui();\n var closedCallback = function (e) {\n column.setMenuVisible(false, 'contextMenu');\n var isKeyboardEvent = e instanceof KeyboardEvent;\n if (_this.tabListener) {\n _this.tabListener = _this.tabListener();\n }\n if (isKeyboardEvent && eventSource && isVisible(eventSource)) {\n var focusableEl = _this.focusService.findTabbableParent(eventSource);\n if (focusableEl) {\n focusableEl.focus();\n }\n }\n afterGuiDetached();\n };\n var translate = this.localeService.getLocaleTextFunc();\n var addPopupRes = this.popupService.addPopup({\n modal: true,\n eChild: eMenu,\n closeOnEsc: true,\n closedCallback: closedCallback,\n positionCallback: function () { return positionCallback(eMenu); },\n anchorToElement: anchorToElement,\n ariaLabel: translate('ariaLabelColumnMenu', 'Column Menu')\n });\n if (addPopupRes) {\n this.hidePopup = hidePopup = addPopupRes.hideFunc;\n }\n filterWrapper.filterPromise.then(function (filter) {\n // need to make sure the filter is present before positioning, as only\n // after filter it is visible can we find out what the width of it is\n positionCallback(eMenu);\n if (filter.afterGuiAttached) {\n filter.afterGuiAttached({ container: containerType, hidePopup: hidePopup });\n }\n });\n column.setMenuVisible(true, 'contextMenu');\n };\n StandardMenuFactory.prototype.trapFocusWithin = function (e, menu) {\n if (e.key !== KeyCode.TAB ||\n e.defaultPrevented ||\n this.focusService.findNextFocusableElement(menu, false, e.shiftKey)) {\n return;\n }\n e.preventDefault();\n this.focusService.focusInto(menu, e.shiftKey);\n };\n StandardMenuFactory.prototype.isMenuEnabled = function (column) {\n // for standard, we show menu if filter is enabled, and the menu is not suppressed by passing an empty array\n return column.isFilterAllowed() && column.getMenuTabs(['filterMenuTab']).includes('filterMenuTab');\n };\n __decorate$1d([\n Autowired('filterManager')\n ], StandardMenuFactory.prototype, \"filterManager\", void 0);\n __decorate$1d([\n Autowired('popupService')\n ], StandardMenuFactory.prototype, \"popupService\", void 0);\n __decorate$1d([\n Autowired('focusService')\n ], StandardMenuFactory.prototype, \"focusService\", void 0);\n __decorate$1d([\n Autowired('ctrlsService')\n ], StandardMenuFactory.prototype, \"ctrlsService\", void 0);\n StandardMenuFactory = __decorate$1d([\n Bean('menuFactory')\n ], StandardMenuFactory);\n return StandardMenuFactory;\n}(BeanStub));\n\nvar __extends$1h = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TabbedLayout = /** @class */ (function (_super) {\n __extends$1h(TabbedLayout, _super);\n function TabbedLayout(params) {\n var _this = _super.call(this, TabbedLayout.getTemplate(params.cssClass)) || this;\n _this.items = [];\n _this.tabbedItemScrollMap = new Map();\n _this.params = params;\n if (params.items) {\n params.items.forEach(function (item) { return _this.addItem(item); });\n }\n return _this;\n }\n TabbedLayout.prototype.postConstruct = function () {\n var _this = this;\n this.createManagedBean(new ManagedFocusFeature(this.getFocusableElement(), {\n onTabKeyDown: this.onTabKeyDown.bind(this),\n handleKeyDown: this.handleKeyDown.bind(this)\n }));\n this.addDestroyFunc(function () { var _a, _b, _c; return (_c = (_b = (_a = _this.activeItem) === null || _a === void 0 ? void 0 : _a.tabbedItem) === null || _b === void 0 ? void 0 : _b.afterDetachedCallback) === null || _c === void 0 ? void 0 : _c.call(_b); });\n };\n TabbedLayout.getTemplate = function (cssClass) {\n return /* html */ \"
\\n
\\n
\\n
\";\n };\n TabbedLayout.prototype.handleKeyDown = function (e) {\n var eDocument = this.gridOptionsService.getDocument();\n switch (e.key) {\n case KeyCode.RIGHT:\n case KeyCode.LEFT:\n if (!this.eHeader.contains(eDocument.activeElement)) {\n return;\n }\n var isRightKey = e.key === KeyCode.RIGHT;\n var isRtl = this.gridOptionsService.is('enableRtl');\n var currentPosition = this.items.indexOf(this.activeItem);\n var nextPosition = isRightKey !== isRtl ? Math.min(currentPosition + 1, this.items.length - 1) : Math.max(currentPosition - 1, 0);\n if (currentPosition === nextPosition) {\n return;\n }\n e.preventDefault();\n var nextItem = this.items[nextPosition];\n this.showItemWrapper(nextItem);\n nextItem.eHeaderButton.focus();\n break;\n case KeyCode.UP:\n case KeyCode.DOWN:\n e.stopPropagation();\n break;\n }\n };\n TabbedLayout.prototype.onTabKeyDown = function (e) {\n if (e.defaultPrevented) {\n return;\n }\n var _a = this, focusService = _a.focusService, eHeader = _a.eHeader, eBody = _a.eBody, activeItem = _a.activeItem;\n var eDocument = this.gridOptionsService.getDocument();\n var activeElement = eDocument.activeElement;\n var target = e.target;\n e.preventDefault();\n if (eHeader.contains(activeElement)) {\n // focus is in header, move into body of popup\n focusService.focusInto(eBody, e.shiftKey);\n return;\n }\n var nextEl = null;\n if (focusService.isTargetUnderManagedComponent(eBody, target)) {\n if (e.shiftKey) {\n nextEl = this.focusService.findFocusableElementBeforeTabGuard(eBody, target);\n }\n if (!nextEl) {\n nextEl = activeItem.eHeaderButton;\n }\n }\n if (!nextEl && eBody.contains(activeElement)) {\n nextEl = focusService.findNextFocusableElement(eBody, false, e.shiftKey);\n if (!nextEl) {\n nextEl = activeItem.eHeaderButton;\n }\n }\n if (nextEl) {\n nextEl.focus();\n }\n };\n TabbedLayout.prototype.setAfterAttachedParams = function (params) {\n this.afterAttachedParams = params;\n };\n TabbedLayout.prototype.showFirstItem = function () {\n if (this.items.length > 0) {\n this.showItemWrapper(this.items[0]);\n }\n };\n TabbedLayout.prototype.addItem = function (item) {\n var eHeaderButton = document.createElement('span');\n setAriaRole(eHeaderButton, 'tab');\n eHeaderButton.setAttribute('tabindex', '-1');\n eHeaderButton.appendChild(item.title);\n eHeaderButton.classList.add('ag-tab');\n this.eHeader.appendChild(eHeaderButton);\n setAriaLabel(eHeaderButton, item.titleLabel);\n var wrapper = {\n tabbedItem: item,\n eHeaderButton: eHeaderButton\n };\n this.items.push(wrapper);\n eHeaderButton.addEventListener('click', this.showItemWrapper.bind(this, wrapper));\n };\n TabbedLayout.prototype.showItem = function (tabbedItem) {\n var itemWrapper = this.items.find(function (wrapper) { return wrapper.tabbedItem === tabbedItem; });\n if (itemWrapper) {\n this.showItemWrapper(itemWrapper);\n }\n };\n TabbedLayout.prototype.showItemWrapper = function (wrapper) {\n var _this = this;\n var _a, _b;\n var tabbedItem = wrapper.tabbedItem, eHeaderButton = wrapper.eHeaderButton;\n if (this.params.onItemClicked) {\n this.params.onItemClicked({ item: tabbedItem });\n }\n if (this.activeItem === wrapper) {\n callIfPresent(this.params.onActiveItemClicked);\n return;\n }\n if (this.lastScrollListener) {\n this.lastScrollListener = this.lastScrollListener();\n }\n clearElement(this.eBody);\n tabbedItem.bodyPromise.then(function (body) {\n _this.eBody.appendChild(body);\n var onlyUnmanaged = !_this.focusService.isKeyboardMode();\n _this.focusService.focusInto(_this.eBody, false, onlyUnmanaged);\n if (tabbedItem.afterAttachedCallback) {\n tabbedItem.afterAttachedCallback(_this.afterAttachedParams);\n }\n if (_this.params.keepScrollPosition) {\n var scrollableContainer_1 = (tabbedItem.getScrollableContainer && tabbedItem.getScrollableContainer()) || body;\n _this.lastScrollListener = _this.addManagedListener(scrollableContainer_1, 'scroll', function () {\n _this.tabbedItemScrollMap.set(tabbedItem.name, scrollableContainer_1.scrollTop);\n });\n var scrollPosition_1 = _this.tabbedItemScrollMap.get(tabbedItem.name);\n if (scrollPosition_1 !== undefined) {\n // Safari needs a small timeout or it will fire a scroll event to position 0\n setTimeout(function () {\n scrollableContainer_1.scrollTop = scrollPosition_1;\n }, 0);\n }\n }\n });\n if (this.activeItem) {\n this.activeItem.eHeaderButton.classList.remove('ag-tab-selected');\n (_b = (_a = this.activeItem.tabbedItem).afterDetachedCallback) === null || _b === void 0 ? void 0 : _b.call(_a);\n }\n eHeaderButton.classList.add('ag-tab-selected');\n this.activeItem = wrapper;\n };\n __decorate$1c([\n Autowired('focusService')\n ], TabbedLayout.prototype, \"focusService\", void 0);\n __decorate$1c([\n RefSelector('eHeader')\n ], TabbedLayout.prototype, \"eHeader\", void 0);\n __decorate$1c([\n RefSelector('eBody')\n ], TabbedLayout.prototype, \"eBody\", void 0);\n __decorate$1c([\n PostConstruct\n ], TabbedLayout.prototype, \"postConstruct\", null);\n return TabbedLayout;\n}(Component));\n\n/**\n * @deprecated Since v29 simpleHttpRequest has been deprecated as it was only meant for use in internal AG Grid documentation examples. Please use the browser fetch api directly.\n */\nfunction simpleHttpRequest(params) {\n doOnce(function () { return console.warn(\"AG Grid: Since v29 simpleHttpRequest has been deprecated as it was only meant for use in internal AG Grid documentation examples. Please use the browser fetch api directly.\"); }, 'simpleHttpRequest');\n return new AgPromise(function (resolve) {\n var httpRequest = new XMLHttpRequest();\n httpRequest.open('GET', params.url);\n httpRequest.send();\n httpRequest.onreadystatechange = function () {\n if (httpRequest.readyState === 4 && httpRequest.status === 200) {\n resolve(JSON.parse(httpRequest.responseText));\n }\n };\n });\n}\n\nvar __extends$1g = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DEBOUNCE_DELAY = 50;\nvar ResizeObserverService = /** @class */ (function (_super) {\n __extends$1g(ResizeObserverService, _super);\n function ResizeObserverService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.polyfillFunctions = [];\n return _this;\n }\n ResizeObserverService.prototype.observeResize = function (element, callback) {\n var _this = this;\n var win = this.gridOptionsService.getWindow();\n var useBrowserResizeObserver = function () {\n var resizeObserver = new win.ResizeObserver(callback);\n resizeObserver.observe(element);\n return function () { return resizeObserver.disconnect(); };\n };\n var usePolyfill = function () {\n // initialise to the current width and height, so first call will have no changes\n var widthLastTime = offsetWidth(element);\n var heightLastTime = offsetHeight(element);\n // when finished, this gets turned to false.\n var running = true;\n var periodicallyCheckWidthAndHeight = function () {\n if (running) {\n var newWidth = offsetWidth(element);\n var newHeight = offsetHeight(element);\n var changed = newWidth !== widthLastTime || newHeight !== heightLastTime;\n if (changed) {\n widthLastTime = newWidth;\n heightLastTime = newHeight;\n callback();\n }\n _this.doNextPolyfillTurn(periodicallyCheckWidthAndHeight);\n }\n };\n periodicallyCheckWidthAndHeight();\n // the callback function we return sets running to false\n return function () { return running = false; };\n };\n var suppressResize = this.gridOptionsService.is('suppressBrowserResizeObserver');\n var resizeObserverExists = !!win.ResizeObserver;\n if (resizeObserverExists && !suppressResize) {\n return useBrowserResizeObserver();\n }\n return usePolyfill();\n };\n ResizeObserverService.prototype.doNextPolyfillTurn = function (func) {\n this.polyfillFunctions.push(func);\n this.schedulePolyfill();\n };\n ResizeObserverService.prototype.schedulePolyfill = function () {\n var _this = this;\n if (this.polyfillScheduled) {\n return;\n }\n var executeAllFuncs = function () {\n var funcs = _this.polyfillFunctions;\n // make sure set scheduled to false and clear clear array\n // before executing the funcs, as the funcs could add more funcs\n _this.polyfillScheduled = false;\n _this.polyfillFunctions = [];\n funcs.forEach(function (f) { return f(); });\n };\n this.polyfillScheduled = true;\n this.getFrameworkOverrides().setTimeout(executeAllFuncs, DEBOUNCE_DELAY);\n };\n ResizeObserverService = __decorate$1b([\n Bean('resizeObserverService')\n ], ResizeObserverService);\n return ResizeObserverService;\n}(BeanStub));\n\nvar __extends$1f = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AnimationFrameService = /** @class */ (function (_super) {\n __extends$1f(AnimationFrameService, _super);\n function AnimationFrameService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // p1 and p2 are create tasks are to do with row and cell creation.\n // for them we want to execute according to row order, so we use\n // TaskItem so we know what index the item is for.\n _this.createTasksP1 = { list: [], sorted: false }; // eg drawing back-ground of rows\n _this.createTasksP2 = { list: [], sorted: false }; // eg cell renderers, adding hover functionality\n // destroy tasks are to do with row removal. they are done after row creation as the user will need to see new\n // rows first (as blank is scrolled into view), when we remove the old rows (no longer in view) is not as\n // important.\n _this.destroyTasks = [];\n _this.ticking = false;\n // we need to know direction of scroll, to build up rows in the direction of\n // the scroll. eg if user scrolls down, we extend the rows by building down.\n _this.scrollGoingDown = true;\n _this.lastPage = 0;\n _this.lastScrollTop = 0;\n _this.taskCount = 0;\n _this.cancelledTasks = new Set();\n return _this;\n }\n AnimationFrameService.prototype.setScrollTop = function (scrollTop) {\n var isPaginationActive = this.gridOptionsService.is('pagination');\n this.scrollGoingDown = scrollTop >= this.lastScrollTop;\n if (isPaginationActive && scrollTop === 0) {\n var currentPage = this.paginationProxy.getCurrentPage();\n if (currentPage !== this.lastPage) {\n this.lastPage = currentPage;\n this.scrollGoingDown = true;\n }\n }\n this.lastScrollTop = scrollTop;\n };\n AnimationFrameService.prototype.init = function () {\n this.useAnimationFrame = !this.gridOptionsService.is('suppressAnimationFrame');\n };\n AnimationFrameService.prototype.isOn = function () {\n return this.useAnimationFrame;\n };\n // this method is for our AG Grid sanity only - if animation frames are turned off,\n // then no place in the code should be looking to add any work to be done in animation\n // frames. this stops bugs - where some code is asking for a frame to be executed\n // when it should not.\n AnimationFrameService.prototype.verifyAnimationFrameOn = function (methodName) {\n if (this.useAnimationFrame === false) {\n console.warn(\"AG Grid: AnimationFrameService.\" + methodName + \" called but animation frames are off\");\n }\n };\n AnimationFrameService.prototype.createTask = function (task, index, list) {\n this.verifyAnimationFrameOn(list);\n var taskItem = { task: task, index: index, createOrder: ++this.taskCount };\n this.addTaskToList(this[list], taskItem);\n this.schedule();\n };\n AnimationFrameService.prototype.cancelTask = function (task) {\n this.cancelledTasks.add(task);\n };\n AnimationFrameService.prototype.addTaskToList = function (taskList, task) {\n taskList.list.push(task);\n taskList.sorted = false;\n };\n AnimationFrameService.prototype.sortTaskList = function (taskList) {\n if (taskList.sorted) {\n return;\n }\n var sortDirection = this.scrollGoingDown ? 1 : -1;\n // sort first by row index (taking into account scroll direction), then by\n // order of task creation (always ascending, so cells will render left-to-right)\n taskList.list.sort(function (a, b) { return a.index !== b.index ? sortDirection * (b.index - a.index) : b.createOrder - a.createOrder; });\n taskList.sorted = true;\n };\n AnimationFrameService.prototype.addDestroyTask = function (task) {\n this.verifyAnimationFrameOn('createTasksP3');\n this.destroyTasks.push(task);\n this.schedule();\n };\n AnimationFrameService.prototype.executeFrame = function (millis) {\n this.verifyAnimationFrameOn('executeFrame');\n var p1TaskList = this.createTasksP1;\n var p1Tasks = p1TaskList.list;\n var p2TaskList = this.createTasksP2;\n var p2Tasks = p2TaskList.list;\n var destroyTasks = this.destroyTasks;\n var frameStart = new Date().getTime();\n var duration = (new Date().getTime()) - frameStart;\n // 16ms is 60 fps\n var noMaxMillis = millis <= 0;\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n while (noMaxMillis || duration < millis) {\n var gridBodyDidSomething = gridBodyCon.getScrollFeature().scrollGridIfNeeded();\n if (!gridBodyDidSomething) {\n var task = void 0;\n if (p1Tasks.length) {\n this.sortTaskList(p1TaskList);\n task = p1Tasks.pop().task;\n }\n else if (p2Tasks.length) {\n this.sortTaskList(p2TaskList);\n task = p2Tasks.pop().task;\n }\n else if (destroyTasks.length) {\n task = destroyTasks.pop();\n }\n else {\n this.cancelledTasks.clear();\n break;\n }\n if (!this.cancelledTasks.has(task)) {\n task();\n }\n }\n duration = (new Date().getTime()) - frameStart;\n }\n if (p1Tasks.length || p2Tasks.length || destroyTasks.length) {\n this.requestFrame();\n }\n else {\n this.stopTicking();\n }\n };\n AnimationFrameService.prototype.stopTicking = function () {\n this.ticking = false;\n };\n AnimationFrameService.prototype.flushAllFrames = function () {\n if (!this.useAnimationFrame) {\n return;\n }\n this.executeFrame(-1);\n };\n AnimationFrameService.prototype.schedule = function () {\n if (!this.useAnimationFrame) {\n return;\n }\n if (!this.ticking) {\n this.ticking = true;\n this.requestFrame();\n }\n };\n AnimationFrameService.prototype.requestFrame = function () {\n // check for the existence of requestAnimationFrame, and if\n // it's missing, then we polyfill it with setTimeout()\n var callback = this.executeFrame.bind(this, 60);\n this.requestAnimationFrame(callback);\n };\n AnimationFrameService.prototype.requestAnimationFrame = function (callback) {\n var win = this.gridOptionsService.getWindow();\n if (win.requestAnimationFrame) {\n win.requestAnimationFrame(callback);\n }\n else if (win.webkitRequestAnimationFrame) {\n win.webkitRequestAnimationFrame(callback);\n }\n else {\n win.setTimeout(callback, 0);\n }\n };\n AnimationFrameService.prototype.isQueueEmpty = function () {\n return !this.ticking;\n };\n // a debounce utility used for parts of the app involved with rendering.\n // the advantage over normal debounce is the client can call flushAllFrames()\n // to make sure all rendering is complete. we don't wait any milliseconds,\n // as this is intended to batch calls in one VM turn.\n AnimationFrameService.prototype.debounce = function (func) {\n var _this = this;\n var pending = false;\n return function () {\n if (!_this.isOn()) {\n _this.getFrameworkOverrides().setTimeout(func, 0);\n return;\n }\n if (pending) {\n return;\n }\n pending = true;\n _this.addDestroyTask(function () {\n pending = false;\n func();\n });\n };\n };\n __decorate$1a([\n Autowired('ctrlsService')\n ], AnimationFrameService.prototype, \"ctrlsService\", void 0);\n __decorate$1a([\n Autowired('paginationProxy')\n ], AnimationFrameService.prototype, \"paginationProxy\", void 0);\n __decorate$1a([\n PostConstruct\n ], AnimationFrameService.prototype, \"init\", null);\n AnimationFrameService = __decorate$1a([\n Bean('animationFrameService')\n ], AnimationFrameService);\n return AnimationFrameService;\n}(BeanStub));\n\nvar __extends$1e = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$19 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AutoWidthCalculator = /** @class */ (function (_super) {\n __extends$1e(AutoWidthCalculator, _super);\n function AutoWidthCalculator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AutoWidthCalculator.prototype.postConstruct = function () {\n var _this = this;\n this.ctrlsService.whenReady(function (p) {\n _this.centerRowContainerCtrl = p.centerRowContainerCtrl;\n });\n };\n // this is the trick: we create a dummy container and clone all the cells\n // into the dummy, then check the dummy's width. then destroy the dummy\n // as we don't need it any more.\n // drawback: only the cells visible on the screen are considered\n AutoWidthCalculator.prototype.getPreferredWidthForColumn = function (column, skipHeader) {\n var eHeaderCell = this.getHeaderCellForColumn(column);\n // cell isn't visible\n if (!eHeaderCell) {\n return -1;\n }\n var elements = this.rowRenderer.getAllCellsForColumn(column);\n if (!skipHeader) {\n // we only consider the lowest level cell, not the group cell. in 99% of the time, this\n // will be enough. if we consider groups, then it gets too complicated for what it's worth,\n // as the groups can span columns and this class only considers one column at a time.\n elements.push(eHeaderCell);\n }\n return this.addElementsToContainerAndGetWidth(elements);\n };\n AutoWidthCalculator.prototype.getPreferredWidthForColumnGroup = function (columnGroup) {\n var eHeaderCell = this.getHeaderCellForColumn(columnGroup);\n if (!eHeaderCell) {\n return -1;\n }\n return this.addElementsToContainerAndGetWidth([eHeaderCell]);\n };\n AutoWidthCalculator.prototype.addElementsToContainerAndGetWidth = function (elements) {\n var _this = this;\n // this element has to be a form, otherwise form elements within a cell\n // will be validated while being cloned. This can cause issues such as \n // radio buttons being reset and losing their values.\n var eDummyContainer = document.createElement('form');\n // position fixed, so it isn't restricted to the boundaries of the parent\n eDummyContainer.style.position = 'fixed';\n // we put the dummy into the body container, so it will inherit all the\n // css styles that the real cells are inheriting\n var eBodyContainer = this.centerRowContainerCtrl.getContainerElement();\n elements.forEach(function (el) { return _this.cloneItemIntoDummy(el, eDummyContainer); });\n // only append the dummyContainer to the DOM after it contains all the necessary items\n eBodyContainer.appendChild(eDummyContainer);\n // at this point, all the clones are lined up vertically with natural widths. the dummy\n // container will have a width wide enough just to fit the largest.\n var dummyContainerWidth = eDummyContainer.offsetWidth;\n // we are finished with the dummy container, so get rid of it\n eBodyContainer.removeChild(eDummyContainer);\n // we add padding as I found sometimes the gui still put '...' after some of the texts. so the\n // user can configure the grid to add a few more pixels after the calculated width\n var autoSizePadding = this.getAutoSizePadding();\n return dummyContainerWidth + autoSizePadding;\n };\n AutoWidthCalculator.prototype.getAutoSizePadding = function () {\n var value = this.gridOptionsService.getNum('autoSizePadding');\n return value != null && value >= 0 ? value : 20;\n };\n AutoWidthCalculator.prototype.getHeaderCellForColumn = function (column) {\n /* tslint:enable */\n var element = null;\n this.ctrlsService.getHeaderRowContainerCtrls().forEach(function (container) {\n var res = container.getHtmlElementForColumnHeader(column);\n if (res != null) {\n element = res;\n }\n });\n return element;\n };\n AutoWidthCalculator.prototype.cloneItemIntoDummy = function (eCell, eDummyContainer) {\n // make a deep clone of the cell\n var eCellClone = eCell.cloneNode(true);\n // the original has a fixed width, we remove this to allow the natural width based on content\n eCellClone.style.width = '';\n // the original has position = absolute, we need to remove this so it's positioned normally\n eCellClone.style.position = 'static';\n eCellClone.style.left = '';\n // we put the cell into a containing div, as otherwise the cells would just line up\n // on the same line, standard flow layout, by putting them into divs, they are laid\n // out one per line\n var eCloneParent = document.createElement('div');\n var eCloneParentClassList = eCloneParent.classList;\n var isHeader = ['ag-header-cell', 'ag-header-group-cell'].some(function (cls) { return eCellClone.classList.contains(cls); });\n if (isHeader) {\n eCloneParentClassList.add('ag-header', 'ag-header-row');\n eCloneParent.style.position = 'static';\n }\n else {\n eCloneParentClassList.add('ag-row');\n }\n // find parent using classes (headers have ag-header-cell, rows have ag-row), and copy classes from it.\n // if we didn't do this, things like ag-row-level-2 would be missing if present, which sets indents\n // onto group items.\n var pointer = eCell.parentElement;\n while (pointer) {\n var isRow = ['ag-header-row', 'ag-row'].some(function (cls) { return pointer.classList.contains(cls); });\n if (isRow) {\n for (var i = 0; i < pointer.classList.length; i++) {\n var item = pointer.classList[i];\n // we skip ag-row-position-absolute, as this has structural CSS applied that stops the\n // element from fitting into it's parent, and we need the element to stretch the parent\n // as we are measuring the parents width\n if (item != 'ag-row-position-absolute') {\n eCloneParentClassList.add(item);\n }\n }\n break;\n }\n pointer = pointer.parentElement;\n }\n // the twig on the branch, the branch on the tree, the tree in the hole,\n // the hole in the bog, the bog in the clone, the clone in the parent,\n // the parent in the dummy, and the dummy down in the vall-e-ooo, OOOOOOOOO! Oh row the rattling bog....\n eCloneParent.appendChild(eCellClone);\n eDummyContainer.appendChild(eCloneParent);\n };\n __decorate$19([\n Autowired('rowRenderer')\n ], AutoWidthCalculator.prototype, \"rowRenderer\", void 0);\n __decorate$19([\n Autowired('ctrlsService')\n ], AutoWidthCalculator.prototype, \"ctrlsService\", void 0);\n __decorate$19([\n Autowired('rowCssClassCalculator')\n ], AutoWidthCalculator.prototype, \"rowCssClassCalculator\", void 0);\n __decorate$19([\n PostConstruct\n ], AutoWidthCalculator.prototype, \"postConstruct\", null);\n AutoWidthCalculator = __decorate$19([\n Bean('autoWidthCalculator')\n ], AutoWidthCalculator);\n return AutoWidthCalculator;\n}(BeanStub));\n\nvar __extends$1d = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$18 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __values$2 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$e = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$c = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar StickyRowFeature = /** @class */ (function (_super) {\n __extends$1d(StickyRowFeature, _super);\n function StickyRowFeature(createRowCon, destroyRowCtrls) {\n var _this = _super.call(this) || this;\n _this.createRowCon = createRowCon;\n _this.destroyRowCtrls = destroyRowCtrls;\n _this.stickyRowCtrls = [];\n _this.containerHeight = 0;\n return _this;\n }\n StickyRowFeature.prototype.postConstruct = function () {\n var _this = this;\n this.isClientSide = this.rowModel.getType() === 'clientSide';\n this.ctrlsService.whenReady(function (params) {\n _this.gridBodyCtrl = params.gridBodyCtrl;\n });\n };\n StickyRowFeature.prototype.getStickyRowCtrls = function () {\n return this.stickyRowCtrls;\n };\n StickyRowFeature.prototype.checkStickyRows = function () {\n var _this = this;\n var height = 0;\n if (!this.gridOptionsService.isGroupRowsSticky()) {\n return this.refreshNodesAndContainerHeight([], height);\n }\n var stickyRows = [];\n var firstPixel = this.rowRenderer.getFirstVisibleVerticalPixel();\n var addStickyRow = function (stickyRow) {\n var _a, _b, _c;\n stickyRows.push(stickyRow);\n var lastChildBottom;\n if (_this.isClientSide) {\n var lastAncestor = stickyRow;\n while (lastAncestor.expanded) {\n if (lastAncestor.master) {\n lastAncestor = lastAncestor.detailNode;\n }\n else if (lastAncestor.childrenAfterSort) {\n // Tree Data will have `childrenAfterSort` without any nodes, but\n // the current node will still be marked as expansible.\n if (lastAncestor.childrenAfterSort.length === 0) {\n break;\n }\n lastAncestor = last(lastAncestor.childrenAfterSort);\n }\n }\n lastChildBottom = lastAncestor.rowTop + lastAncestor.rowHeight;\n }\n // if the rowModel is `serverSide` as only `clientSide` and `serverSide` create this feature.\n else {\n if (stickyRow.master) {\n lastChildBottom = stickyRow.detailNode.rowTop + stickyRow.detailNode.rowHeight;\n }\n else {\n var storeBounds = (_a = stickyRow.childStore) === null || _a === void 0 ? void 0 : _a.getStoreBounds();\n lastChildBottom = ((_b = storeBounds === null || storeBounds === void 0 ? void 0 : storeBounds.heightPx) !== null && _b !== void 0 ? _b : 0) + ((_c = storeBounds === null || storeBounds === void 0 ? void 0 : storeBounds.topPx) !== null && _c !== void 0 ? _c : 0);\n }\n }\n var stickRowBottom = firstPixel + height + stickyRow.rowHeight;\n if (lastChildBottom < stickRowBottom) {\n stickyRow.stickyRowTop = height + (lastChildBottom - stickRowBottom);\n }\n else {\n stickyRow.stickyRowTop = height;\n }\n height = 0;\n stickyRows.forEach(function (rowNode) {\n var thisRowLastPx = rowNode.stickyRowTop + rowNode.rowHeight;\n if (height < thisRowLastPx) {\n height = thisRowLastPx;\n }\n });\n };\n while (true) {\n var firstPixelAfterStickyRows = firstPixel + height;\n var firstIndex = this.rowModel.getRowIndexAtPixel(firstPixelAfterStickyRows);\n var firstRow = this.rowModel.getRow(firstIndex);\n if (firstRow == null) {\n break;\n }\n // only happens when pivoting, and we are showing root node\n if (firstRow.level < 0) {\n break;\n }\n var parents = [];\n var p = firstRow.parent;\n while (p.level >= 0) {\n parents.push(p);\n p = p.parent;\n }\n var firstMissingParent = parents.reverse().find(function (parent) { return stickyRows.indexOf(parent) < 0 && parent.displayed; });\n if (firstMissingParent) {\n addStickyRow(firstMissingParent);\n continue;\n }\n // if first row is an open group, and practically shown, it needs\n // to be stuck\n if (firstRow.isExpandable() && firstRow.expanded && firstRow.rowTop < firstPixelAfterStickyRows) {\n addStickyRow(firstRow);\n continue;\n }\n break;\n }\n return this.refreshNodesAndContainerHeight(stickyRows, height);\n };\n StickyRowFeature.prototype.refreshStickyNode = function (stickRowNode) {\n var allStickyNodes = [];\n for (var i = 0; i < this.stickyRowCtrls.length; i++) {\n var currentNode = this.stickyRowCtrls[i].getRowNode();\n if (currentNode !== stickRowNode) {\n allStickyNodes.push(currentNode);\n }\n }\n if (this.refreshNodesAndContainerHeight(allStickyNodes, this.containerHeight)) {\n this.checkStickyRows();\n }\n };\n StickyRowFeature.prototype.refreshNodesAndContainerHeight = function (allStickyNodes, height) {\n var e_1, _a, _b;\n var _this = this;\n var stickyRowsChanged = false;\n var removedCtrls = this.stickyRowCtrls.filter(function (ctrl) { return allStickyNodes.indexOf(ctrl.getRowNode()) === -1; });\n var addedNodes = allStickyNodes.filter(function (rowNode) { return _this.stickyRowCtrls.findIndex(function (ctrl) { return ctrl.getRowNode() === rowNode; }) === -1; });\n if (removedCtrls.length || addedNodes.length) {\n stickyRowsChanged = true;\n }\n var ctrlsToDestroy = {};\n removedCtrls.forEach(function (removedCtrl) {\n ctrlsToDestroy[removedCtrl.getRowNode().id] = removedCtrl;\n _this.stickyRowCtrls = _this.stickyRowCtrls.filter(function (ctrl) { return ctrl !== removedCtrl; });\n });\n try {\n for (var _c = __values$2(Object.values(ctrlsToDestroy)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var ctrl = _d.value;\n ctrl.getRowNode().sticky = false;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.destroyRowCtrls(ctrlsToDestroy, false);\n var newCtrls = addedNodes.map(function (rowNode) {\n rowNode.sticky = true;\n return _this.createRowCon(rowNode, false, false);\n });\n (_b = this.stickyRowCtrls).push.apply(_b, __spreadArray$c([], __read$e(newCtrls)));\n this.stickyRowCtrls.forEach(function (ctrl) { return ctrl.setRowTop(ctrl.getRowNode().stickyRowTop); });\n this.stickyRowCtrls.sort(function (a, b) { return b.getRowNode().rowIndex - a.getRowNode().rowIndex; });\n if (this.containerHeight !== height) {\n this.containerHeight = height;\n this.gridBodyCtrl.setStickyTopHeight(height);\n stickyRowsChanged = true;\n }\n return stickyRowsChanged;\n };\n __decorate$18([\n Autowired(\"rowModel\")\n ], StickyRowFeature.prototype, \"rowModel\", void 0);\n __decorate$18([\n Autowired(\"rowRenderer\")\n ], StickyRowFeature.prototype, \"rowRenderer\", void 0);\n __decorate$18([\n Autowired(\"ctrlsService\")\n ], StickyRowFeature.prototype, \"ctrlsService\", void 0);\n __decorate$18([\n PostConstruct\n ], StickyRowFeature.prototype, \"postConstruct\", null);\n return StickyRowFeature;\n}(BeanStub));\n\nvar __extends$1c = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$17 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$d = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$b = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar __values$1 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar DEFAULT_KEEP_DETAIL_ROW_COUNT = 10;\nvar RowRenderer = /** @class */ (function (_super) {\n __extends$1c(RowRenderer, _super);\n function RowRenderer() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.destroyFuncsForColumnListeners = [];\n // map of row ids to row objects. keeps track of which elements\n // are rendered for which rows in the dom.\n _this.rowCtrlsByRowIndex = {};\n _this.zombieRowCtrls = {};\n _this.allRowCtrls = [];\n _this.topRowCtrls = [];\n _this.bottomRowCtrls = [];\n // we only allow one refresh at a time, otherwise the internal memory structure here\n // will get messed up. this can happen if the user has a cellRenderer, and inside the\n // renderer they call an API method that results in another pass of the refresh,\n // then it will be trying to draw rows in the middle of a refresh.\n _this.refreshInProgress = false;\n _this.dataFirstRenderedFired = false;\n return _this;\n }\n RowRenderer.prototype.postConstruct = function () {\n var _this = this;\n this.ctrlsService.whenReady(function () {\n _this.gridBodyCtrl = _this.ctrlsService.getGridBodyCtrl();\n _this.initialise();\n });\n };\n RowRenderer.prototype.initialise = function () {\n this.addManagedListener(this.eventService, Events.EVENT_PAGINATION_CHANGED, this.onPageLoaded.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_PINNED_ROW_DATA_CHANGED, this.onPinnedRowDataChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, this.onDisplayedColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_BODY_SCROLL, this.onBodyScroll.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_BODY_HEIGHT_CHANGED, this.redraw.bind(this));\n this.addManagedPropertyListener('domLayout', this.onDomLayoutChanged.bind(this));\n this.addManagedPropertyListener('rowClass', this.redrawRows.bind(this));\n if (this.gridOptionsService.isGroupRowsSticky()) {\n var rowModelType = this.rowModel.getType();\n if (rowModelType === 'clientSide' || rowModelType === 'serverSide') {\n this.stickyRowFeature = this.createManagedBean(new StickyRowFeature(this.createRowCon.bind(this), this.destroyRowCtrls.bind(this)));\n }\n }\n this.registerCellEventListeners();\n this.initialiseCache();\n this.printLayout = this.gridOptionsService.isDomLayout('print');\n this.embedFullWidthRows = this.printLayout || this.gridOptionsService.is('embedFullWidthRows');\n this.redrawAfterModelUpdate();\n };\n RowRenderer.prototype.initialiseCache = function () {\n if (this.gridOptionsService.is('keepDetailRows')) {\n var countProp = this.getKeepDetailRowsCount();\n var count = countProp != null ? countProp : 3;\n this.cachedRowCtrls = new RowCtrlCache(count);\n }\n };\n RowRenderer.prototype.getKeepDetailRowsCount = function () {\n var keepDetailRowsCount = this.gridOptionsService.getNum('keepDetailRowsCount');\n if (exists(keepDetailRowsCount) && keepDetailRowsCount > 0) {\n return keepDetailRowsCount;\n }\n return DEFAULT_KEEP_DETAIL_ROW_COUNT;\n };\n RowRenderer.prototype.getStickyTopRowCtrls = function () {\n if (!this.stickyRowFeature) {\n return [];\n }\n return this.stickyRowFeature.getStickyRowCtrls();\n };\n RowRenderer.prototype.updateAllRowCtrls = function () {\n var liveList = getAllValuesInObject(this.rowCtrlsByRowIndex);\n var isEnsureDomOrder = this.gridOptionsService.is('ensureDomOrder');\n var isPrintLayout = this.gridOptionsService.isDomLayout('print');\n if (isEnsureDomOrder || isPrintLayout) {\n liveList.sort(function (a, b) { return a.getRowNode().rowIndex - b.getRowNode.rowIndex; });\n }\n var zombieList = getAllValuesInObject(this.zombieRowCtrls);\n var cachedList = this.cachedRowCtrls ? this.cachedRowCtrls.getEntries() : [];\n if (zombieList.length > 0 || cachedList.length > 0) {\n // Only spread if we need to.\n this.allRowCtrls = __spreadArray$b(__spreadArray$b(__spreadArray$b([], __read$d(liveList)), __read$d(zombieList)), __read$d(cachedList));\n }\n else {\n this.allRowCtrls = liveList;\n }\n };\n RowRenderer.prototype.onCellFocusChanged = function (event) {\n this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onCellFocused(event); });\n this.getFullWidthRowCtrls().forEach(function (rowCtrl) { return rowCtrl.onFullWidthRowFocused(event); });\n };\n // in a clean design, each cell would register for each of these events. however when scrolling, all the cells\n // registering and de-registering for events is a performance bottleneck. so we register here once and inform\n // all active cells.\n RowRenderer.prototype.registerCellEventListeners = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_CELL_FOCUSED, function (event) {\n _this.onCellFocusChanged(event);\n });\n this.addManagedListener(this.eventService, Events.EVENT_CELL_FOCUS_CLEARED, function () {\n _this.onCellFocusChanged();\n });\n this.addManagedListener(this.eventService, Events.EVENT_FLASH_CELLS, function (event) {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onFlashCells(event); });\n });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_HOVER_CHANGED, function () {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onColumnHover(); });\n });\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, function () {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onDisplayedColumnsChanged(); });\n });\n // only for printLayout - because we are rendering all the cells in the same row, regardless of pinned state,\n // then changing the width of the containers will impact left position. eg the center cols all have their\n // left position adjusted by the width of the left pinned column, so if the pinned left column width changes,\n // all the center cols need to be shifted to accommodate this. when in normal layout, the pinned cols are\n // in different containers so doesn't impact.\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, function () {\n if (_this.printLayout) {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onLeftChanged(); });\n }\n });\n var rangeSelectionEnabled = this.gridOptionsService.is('enableRangeSelection');\n if (rangeSelectionEnabled) {\n this.addManagedListener(this.eventService, Events.EVENT_RANGE_SELECTION_CHANGED, function () {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.onRangeSelectionChanged(); });\n });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_MOVED, function () {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.updateRangeBordersIfRangeCount(); });\n });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PINNED, function () {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.updateRangeBordersIfRangeCount(); });\n });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VISIBLE, function () {\n _this.getAllCellCtrls().forEach(function (cellCtrl) { return cellCtrl.updateRangeBordersIfRangeCount(); });\n });\n }\n // add listeners to the grid columns\n this.refreshListenersToColumnsForCellComps();\n // if the grid columns change, then refresh the listeners again\n this.addManagedListener(this.eventService, Events.EVENT_GRID_COLUMNS_CHANGED, this.refreshListenersToColumnsForCellComps.bind(this));\n this.addDestroyFunc(this.removeGridColumnListeners.bind(this));\n };\n // executes all functions in destroyFuncsForColumnListeners and then clears the list\n RowRenderer.prototype.removeGridColumnListeners = function () {\n this.destroyFuncsForColumnListeners.forEach(function (func) { return func(); });\n this.destroyFuncsForColumnListeners.length = 0;\n };\n // this function adds listeners onto all the grid columns, which are the column that we could have cellComps for.\n // when the grid columns change, we add listeners again. in an ideal design, each CellComp would just register to\n // the column it belongs to on creation, however this was a bottleneck with the number of cells, so do it here\n // once instead.\n RowRenderer.prototype.refreshListenersToColumnsForCellComps = function () {\n var _this = this;\n this.removeGridColumnListeners();\n var cols = this.columnModel.getAllGridColumns();\n if (!cols) {\n return;\n }\n cols.forEach(function (col) {\n var forEachCellWithThisCol = function (callback) {\n _this.getAllCellCtrls().forEach(function (cellCtrl) {\n if (cellCtrl.getColumn() === col) {\n callback(cellCtrl);\n }\n });\n };\n var leftChangedListener = function () {\n forEachCellWithThisCol(function (cellCtrl) { return cellCtrl.onLeftChanged(); });\n };\n var widthChangedListener = function () {\n forEachCellWithThisCol(function (cellCtrl) { return cellCtrl.onWidthChanged(); });\n };\n var firstRightPinnedChangedListener = function () {\n forEachCellWithThisCol(function (cellCtrl) { return cellCtrl.onFirstRightPinnedChanged(); });\n };\n var lastLeftPinnedChangedListener = function () {\n forEachCellWithThisCol(function (cellCtrl) { return cellCtrl.onLastLeftPinnedChanged(); });\n };\n var colDefChangedListener = function () {\n forEachCellWithThisCol(function (cellCtrl) { return cellCtrl.onColDefChanged(); });\n };\n col.addEventListener('leftChanged', leftChangedListener);\n col.addEventListener('widthChanged', widthChangedListener);\n col.addEventListener('firstRightPinnedChanged', firstRightPinnedChangedListener);\n col.addEventListener('lastLeftPinnedChanged', lastLeftPinnedChangedListener);\n col.addEventListener('colDefChanged', colDefChangedListener);\n _this.destroyFuncsForColumnListeners.push(function () {\n col.removeEventListener('leftChanged', leftChangedListener);\n col.removeEventListener('widthChanged', widthChangedListener);\n col.removeEventListener('firstRightPinnedChanged', firstRightPinnedChangedListener);\n col.removeEventListener('lastLeftPinnedChanged', lastLeftPinnedChangedListener);\n col.removeEventListener('colDefChanged', colDefChangedListener);\n });\n });\n };\n RowRenderer.prototype.onDomLayoutChanged = function () {\n var printLayout = this.gridOptionsService.isDomLayout('print');\n var embedFullWidthRows = printLayout || this.gridOptionsService.is('embedFullWidthRows');\n // if moving towards or away from print layout, means we need to destroy all rows, as rows are not laid\n // out using absolute positioning when doing print layout\n var destroyRows = embedFullWidthRows !== this.embedFullWidthRows || this.printLayout !== printLayout;\n this.printLayout = printLayout;\n this.embedFullWidthRows = embedFullWidthRows;\n if (destroyRows) {\n this.redrawAfterModelUpdate({ domLayoutChanged: true });\n }\n };\n // for row models that have datasources, when we update the datasource, we need to force the rowRenderer\n // to redraw all rows. otherwise the old rows from the old datasource will stay displayed.\n RowRenderer.prototype.datasourceChanged = function () {\n this.firstRenderedRow = 0;\n this.lastRenderedRow = -1;\n var rowIndexesToRemove = Object.keys(this.rowCtrlsByRowIndex);\n this.removeRowCtrls(rowIndexesToRemove);\n };\n RowRenderer.prototype.onPageLoaded = function (event) {\n var params = {\n recycleRows: event.keepRenderedRows,\n animate: event.animate,\n newData: event.newData,\n newPage: event.newPage,\n // because this is a model updated event (not pinned rows), we\n // can skip updating the pinned rows. this is needed so that if user\n // is doing transaction updates, the pinned rows are not getting constantly\n // trashed - or editing cells in pinned rows are not refreshed and put into read mode\n onlyBody: true\n };\n this.redrawAfterModelUpdate(params);\n };\n RowRenderer.prototype.getAllCellsForColumn = function (column) {\n var res = [];\n this.getAllRowCtrls().forEach(function (rowCtrl) {\n var eCell = rowCtrl.getCellElement(column);\n if (eCell) {\n res.push(eCell);\n }\n });\n return res;\n };\n RowRenderer.prototype.refreshFloatingRowComps = function () {\n this.refreshFloatingRows(this.topRowCtrls, this.pinnedRowModel.getPinnedTopRowData());\n this.refreshFloatingRows(this.bottomRowCtrls, this.pinnedRowModel.getPinnedBottomRowData());\n };\n RowRenderer.prototype.getTopRowCtrls = function () {\n return this.topRowCtrls;\n };\n RowRenderer.prototype.getCentreRowCtrls = function () {\n return this.allRowCtrls;\n };\n RowRenderer.prototype.getBottomRowCtrls = function () {\n return this.bottomRowCtrls;\n };\n RowRenderer.prototype.refreshFloatingRows = function (rowComps, rowNodes) {\n var _this = this;\n rowComps.forEach(function (row) {\n row.destroyFirstPass();\n row.destroySecondPass();\n });\n rowComps.length = 0;\n if (!rowNodes) {\n return;\n }\n rowNodes.forEach(function (rowNode) {\n var rowCtrl = new RowCtrl(rowNode, _this.beans, false, false, _this.printLayout);\n rowComps.push(rowCtrl);\n });\n };\n RowRenderer.prototype.onPinnedRowDataChanged = function () {\n // recycling rows in order to ensure cell editing is not cancelled\n var params = {\n recycleRows: true\n };\n this.redrawAfterModelUpdate(params);\n };\n RowRenderer.prototype.redrawRow = function (rowNode, suppressEvent) {\n var _this = this;\n if (suppressEvent === void 0) { suppressEvent = false; }\n if (rowNode.sticky) {\n this.stickyRowFeature.refreshStickyNode(rowNode);\n }\n else {\n var destroyAndRecreateCtrl = function (dataStruct) {\n var ctrl = dataStruct[rowNode.rowIndex];\n if (!ctrl) {\n return;\n }\n if (ctrl.getRowNode() !== rowNode) {\n // if the node is in the wrong place, then the row model is responsible for triggering a full refresh.\n return;\n }\n ctrl.destroyFirstPass();\n ctrl.destroySecondPass();\n dataStruct[rowNode.rowIndex] = _this.createRowCon(rowNode, false, false);\n };\n switch (rowNode.rowPinned) {\n case 'top':\n destroyAndRecreateCtrl(this.topRowCtrls);\n case 'bottom':\n destroyAndRecreateCtrl(this.bottomRowCtrls);\n default:\n destroyAndRecreateCtrl(this.rowCtrlsByRowIndex);\n this.updateAllRowCtrls();\n }\n }\n if (!suppressEvent) {\n this.dispatchDisplayedRowsChanged(false);\n }\n };\n RowRenderer.prototype.redrawRows = function (rowNodes) {\n var _this = this;\n // if no row nodes provided, then refresh everything\n var partialRefresh = rowNodes != null;\n if (partialRefresh) {\n rowNodes === null || rowNodes === void 0 ? void 0 : rowNodes.forEach(function (node) { return _this.redrawRow(node, true); });\n this.dispatchDisplayedRowsChanged(false);\n return;\n }\n this.redrawAfterModelUpdate();\n };\n RowRenderer.prototype.getCellToRestoreFocusToAfterRefresh = function (params) {\n var focusedCell = (params === null || params === void 0 ? void 0 : params.suppressKeepFocus) ? null : this.focusService.getFocusCellToUseAfterRefresh();\n if (focusedCell == null) {\n return null;\n }\n // if the dom is not actually focused on a cell, then we don't try to refocus. the problem this\n // solves is with editing - if the user is editing, eg focus is on a text field, and not on the\n // cell itself, then the cell can be registered as having focus, however it's the text field that\n // has the focus and not the cell div. therefore, when the refresh is finished, the grid will focus\n // the cell, and not the textfield. that means if the user is in a text field, and the grid refreshes,\n // the focus is lost from the text field. we do not want this.\n var eDocument = this.gridOptionsService.getDocument();\n var activeElement = eDocument.activeElement;\n var cellDomData = this.gridOptionsService.getDomData(activeElement, CellCtrl.DOM_DATA_KEY_CELL_CTRL);\n var rowDomData = this.gridOptionsService.getDomData(activeElement, RowCtrl.DOM_DATA_KEY_ROW_CTRL);\n var gridElementFocused = cellDomData || rowDomData;\n return gridElementFocused ? focusedCell : null;\n };\n // gets called from:\n // +) initialisation (in registerGridComp) params = null\n // +) onDomLayoutChanged, params = null\n // +) onPageLoaded, recycleRows, animate, newData, newPage from event, onlyBody=true\n // +) onPinnedRowDataChanged, recycleRows = true\n // +) redrawRows (from Grid API), recycleRows = true/false\n RowRenderer.prototype.redrawAfterModelUpdate = function (params) {\n if (params === void 0) { params = {}; }\n this.getLockOnRefresh();\n var focusedCell = this.getCellToRestoreFocusToAfterRefresh(params);\n this.updateContainerHeights();\n this.scrollToTopIfNewData(params);\n // never recycle rows on layout change as rows could change from normal DOM layout\n // back to the grid's row positioning.\n var recycleRows = !params.domLayoutChanged && !!params.recycleRows;\n var animate = params.animate && this.gridOptionsService.isAnimateRows();\n // after modelUpdate, row indexes can change, so we clear out the rowsByIndex map,\n // however we can reuse the rows, so we keep them but index by rowNode.id\n var rowsToRecycle = recycleRows ? this.getRowsToRecycle() : null;\n if (!recycleRows) {\n this.removeAllRowComps();\n }\n this.workOutFirstAndLastRowsToRender();\n if (this.stickyRowFeature) {\n this.stickyRowFeature.checkStickyRows();\n }\n this.recycleRows(rowsToRecycle, animate);\n this.gridBodyCtrl.updateRowCount();\n if (!params.onlyBody) {\n this.refreshFloatingRowComps();\n }\n this.dispatchDisplayedRowsChanged();\n // if a cell was focused before, ensure focus now.\n if (focusedCell != null) {\n this.restoreFocusedCell(focusedCell);\n }\n this.releaseLockOnRefresh();\n };\n RowRenderer.prototype.scrollToTopIfNewData = function (params) {\n var scrollToTop = params.newData || params.newPage;\n var suppressScrollToTop = this.gridOptionsService.is('suppressScrollOnNewData');\n if (scrollToTop && !suppressScrollToTop) {\n this.gridBodyCtrl.getScrollFeature().scrollToTop();\n }\n };\n RowRenderer.prototype.updateContainerHeights = function () {\n // when doing print layout, we don't explicitly set height on the containers\n if (this.printLayout) {\n this.rowContainerHeightService.setModelHeight(null);\n return;\n }\n var containerHeight = this.paginationProxy.getCurrentPageHeight();\n // we need at least 1 pixel for the horizontal scroll to work. so if there are now rows,\n // we still want the scroll to be present, otherwise there would be no way to scroll the header\n // which might be needed us user wants to access columns\n // on the RHS - and if that was where the filter was that cause no rows to be presented, there\n // is no way to remove the filter.\n if (containerHeight === 0) {\n containerHeight = 1;\n }\n this.rowContainerHeightService.setModelHeight(containerHeight);\n };\n RowRenderer.prototype.getLockOnRefresh = function () {\n if (this.refreshInProgress) {\n throw new Error(\"AG Grid: cannot get grid to draw rows when it is in the middle of drawing rows. \" +\n \"Your code probably called a grid API method while the grid was in the render stage. To overcome \" +\n \"this, put the API call into a timeout, e.g. instead of api.redrawRows(), \" +\n \"call setTimeout(function() { api.redrawRows(); }, 0). To see what part of your code \" +\n \"that caused the refresh check this stacktrace.\");\n }\n this.refreshInProgress = true;\n };\n RowRenderer.prototype.releaseLockOnRefresh = function () {\n this.refreshInProgress = false;\n };\n RowRenderer.prototype.isRefreshInProgress = function () {\n return this.refreshInProgress;\n };\n // sets the focus to the provided cell, if the cell is provided. this way, the user can call refresh without\n // worry about the focus been lost. this is important when the user is using keyboard navigation to do edits\n // and the cellEditor is calling 'refresh' to get other cells to update (as other cells might depend on the\n // edited cell).\n RowRenderer.prototype.restoreFocusedCell = function (cellPosition) {\n if (cellPosition) {\n // we don't wish to dispatch an event as the rowRenderer is not capable of changing the selected cell,\n // so we mock a change event for the full width rows and cells to ensure they update to the newly selected\n // state\n this.focusService.setRestoreFocusedCell(cellPosition);\n this.onCellFocusChanged({\n rowIndex: cellPosition.rowIndex,\n column: cellPosition.column,\n rowPinned: cellPosition.rowPinned,\n forceBrowserFocus: true,\n preventScrollOnBrowserFocus: true,\n api: this.beans.gridApi,\n columnApi: this.beans.columnApi,\n context: this.beans.gridOptionsService.context,\n type: 'mock',\n });\n }\n };\n RowRenderer.prototype.stopEditing = function (cancel) {\n if (cancel === void 0) { cancel = false; }\n this.getAllRowCtrls().forEach(function (rowCtrl) {\n rowCtrl.stopEditing(cancel);\n });\n };\n RowRenderer.prototype.getAllCellCtrls = function () {\n var res = [];\n var rowCtrls = this.getAllRowCtrls();\n var rowCtrlsLength = rowCtrls.length;\n for (var i = 0; i < rowCtrlsLength; i++) {\n var cellCtrls = rowCtrls[i].getAllCellCtrls();\n var cellCtrlsLength = cellCtrls.length;\n for (var j = 0; j < cellCtrlsLength; j++) {\n res.push(cellCtrls[j]);\n }\n }\n return res;\n };\n RowRenderer.prototype.getAllRowCtrls = function () {\n var e_1, _a;\n var stickyRowCtrls = (this.stickyRowFeature && this.stickyRowFeature.getStickyRowCtrls()) || [];\n var res = __spreadArray$b(__spreadArray$b(__spreadArray$b([], __read$d(this.topRowCtrls)), __read$d(this.bottomRowCtrls)), __read$d(stickyRowCtrls));\n try {\n for (var _b = __values$1(Object.keys(this.rowCtrlsByRowIndex)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var key = _c.value;\n res.push(this.rowCtrlsByRowIndex[key]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return res;\n };\n RowRenderer.prototype.addRenderedRowListener = function (eventName, rowIndex, callback) {\n var rowComp = this.rowCtrlsByRowIndex[rowIndex];\n if (rowComp) {\n rowComp.addEventListener(eventName, callback);\n }\n };\n RowRenderer.prototype.flashCells = function (params) {\n if (params === void 0) { params = {}; }\n var flashDelay = params.flashDelay, fadeDelay = params.fadeDelay;\n this.getCellCtrls(params.rowNodes, params.columns)\n .forEach(function (cellCtrl) { return cellCtrl.flashCell({ flashDelay: flashDelay, fadeDelay: fadeDelay }); });\n };\n RowRenderer.prototype.refreshCells = function (params) {\n var _this = this;\n if (params === void 0) { params = {}; }\n var refreshCellParams = {\n forceRefresh: params.force,\n newData: false,\n suppressFlash: params.suppressFlash\n };\n this.getCellCtrls(params.rowNodes, params.columns)\n .forEach(function (cellCtrl) {\n if (cellCtrl.refreshShouldDestroy()) {\n var rowCtrl = cellCtrl.getRowCtrl();\n if (rowCtrl) {\n rowCtrl.refreshCell(cellCtrl);\n }\n }\n else {\n cellCtrl.refreshCell(refreshCellParams);\n }\n });\n if (params.rowNodes) {\n // refresh the full width rows too\n this.getRowCtrls(params.rowNodes).forEach(function (rowCtrl) {\n if (!rowCtrl.isFullWidth()) {\n return;\n }\n var refreshed = rowCtrl.refreshFullWidth();\n if (!refreshed) {\n _this.redrawRow(rowCtrl.getRowNode(), true);\n }\n });\n this.dispatchDisplayedRowsChanged(false);\n }\n };\n RowRenderer.prototype.getCellRendererInstances = function (params) {\n var _this = this;\n var _a;\n var cellRenderers = this.getCellCtrls(params.rowNodes, params.columns)\n .map(function (cellCtrl) { return cellCtrl.getCellRenderer(); })\n .filter(function (renderer) { return renderer != null; });\n if ((_a = params.columns) === null || _a === void 0 ? void 0 : _a.length) {\n return cellRenderers;\n }\n var fullWidthRenderers = [];\n var rowIdMap = this.mapRowNodes(params.rowNodes);\n this.getAllRowCtrls().forEach(function (rowCtrl) {\n if (rowIdMap && !_this.isRowInMap(rowCtrl.getRowNode(), rowIdMap)) {\n return;\n }\n if (!rowCtrl.isFullWidth()) {\n return;\n }\n var fullWidthRenderer = rowCtrl.getFullWidthCellRenderer();\n if (fullWidthRenderer) {\n fullWidthRenderers.push(fullWidthRenderer);\n }\n });\n return __spreadArray$b(__spreadArray$b([], __read$d(fullWidthRenderers)), __read$d(cellRenderers));\n };\n RowRenderer.prototype.getCellEditorInstances = function (params) {\n var res = [];\n this.getCellCtrls(params.rowNodes, params.columns).forEach(function (cellCtrl) {\n var cellEditor = cellCtrl.getCellEditor();\n if (cellEditor) {\n res.push(cellEditor);\n }\n });\n return res;\n };\n RowRenderer.prototype.getEditingCells = function () {\n var res = [];\n this.getAllCellCtrls().forEach(function (cellCtrl) {\n if (cellCtrl.isEditing()) {\n var cellPosition = cellCtrl.getCellPosition();\n res.push(cellPosition);\n }\n });\n return res;\n };\n RowRenderer.prototype.mapRowNodes = function (rowNodes) {\n if (!rowNodes) {\n return;\n }\n var res = {\n top: {},\n bottom: {},\n normal: {}\n };\n rowNodes.forEach(function (rowNode) {\n var id = rowNode.id;\n if (rowNode.rowPinned === 'top') {\n res.top[id] = rowNode;\n }\n else if (rowNode.rowPinned === 'bottom') {\n res.bottom[id] = rowNode;\n }\n else {\n res.normal[id] = rowNode;\n }\n });\n return res;\n };\n RowRenderer.prototype.isRowInMap = function (rowNode, rowIdsMap) {\n // skip this row if it is missing from the provided list\n var id = rowNode.id;\n var floating = rowNode.rowPinned;\n if (floating === 'bottom') {\n return rowIdsMap.bottom[id] != null;\n }\n if (floating === 'top') {\n return rowIdsMap.top[id] != null;\n }\n return rowIdsMap.normal[id] != null;\n };\n /**\n * @param rowNodes if provided, returns the RowCtrls for the provided rowNodes. otherwise returns all RowCtrls.\n */\n RowRenderer.prototype.getRowCtrls = function (rowNodes) {\n var _this = this;\n var rowIdsMap = this.mapRowNodes(rowNodes);\n var allRowCtrls = this.getAllRowCtrls();\n if (!rowNodes || !rowIdsMap) {\n return allRowCtrls;\n }\n return allRowCtrls.filter(function (rowCtrl) {\n var rowNode = rowCtrl.getRowNode();\n return _this.isRowInMap(rowNode, rowIdsMap);\n });\n };\n // returns CellCtrl's that match the provided rowNodes and columns. eg if one row node\n // and two columns provided, that identifies 4 cells, so 4 CellCtrl's returned.\n RowRenderer.prototype.getCellCtrls = function (rowNodes, columns) {\n var _this = this;\n var colIdsMap;\n if (exists(columns)) {\n colIdsMap = {};\n columns.forEach(function (colKey) {\n var column = _this.columnModel.getGridColumn(colKey);\n if (exists(column)) {\n colIdsMap[column.getId()] = true;\n }\n });\n }\n var res = [];\n this.getRowCtrls(rowNodes).forEach(function (rowCtrl) {\n rowCtrl.getAllCellCtrls().forEach(function (cellCtrl) {\n var colId = cellCtrl.getColumn().getId();\n var excludeColFromRefresh = colIdsMap && !colIdsMap[colId];\n if (excludeColFromRefresh) {\n return;\n }\n res.push(cellCtrl);\n });\n });\n return res;\n };\n RowRenderer.prototype.destroy = function () {\n this.removeAllRowComps();\n _super.prototype.destroy.call(this);\n };\n RowRenderer.prototype.removeAllRowComps = function () {\n var rowIndexesToRemove = Object.keys(this.rowCtrlsByRowIndex);\n this.removeRowCtrls(rowIndexesToRemove);\n };\n RowRenderer.prototype.getRowsToRecycle = function () {\n // remove all stub nodes, they can't be reused, as no rowNode id\n var stubNodeIndexes = [];\n iterateObject(this.rowCtrlsByRowIndex, function (index, rowComp) {\n var stubNode = rowComp.getRowNode().id == null;\n if (stubNode) {\n stubNodeIndexes.push(index);\n }\n });\n this.removeRowCtrls(stubNodeIndexes);\n // then clear out rowCompsByIndex, but before that take a copy, but index by id, not rowIndex\n var ctrlsByIdMap = {};\n iterateObject(this.rowCtrlsByRowIndex, function (index, rowComp) {\n var rowNode = rowComp.getRowNode();\n ctrlsByIdMap[rowNode.id] = rowComp;\n });\n this.rowCtrlsByRowIndex = {};\n return ctrlsByIdMap;\n };\n // takes array of row indexes\n RowRenderer.prototype.removeRowCtrls = function (rowsToRemove) {\n var _this = this;\n // if no fromIndex then set to -1, which will refresh everything\n // let realFromIndex = -1;\n rowsToRemove.forEach(function (indexToRemove) {\n var rowCtrl = _this.rowCtrlsByRowIndex[indexToRemove];\n if (rowCtrl) {\n rowCtrl.destroyFirstPass();\n rowCtrl.destroySecondPass();\n }\n delete _this.rowCtrlsByRowIndex[indexToRemove];\n });\n };\n RowRenderer.prototype.onBodyScroll = function (e) {\n if (e.direction !== 'vertical') {\n return;\n }\n this.redraw({ afterScroll: true });\n };\n // gets called when rows don't change, but viewport does, so after:\n // 1) height of grid body changes, ie number of displayed rows has changed\n // 2) grid scrolled to new position\n // 3) ensure index visible (which is a scroll)\n RowRenderer.prototype.redraw = function (params) {\n if (params === void 0) { params = {}; }\n var afterScroll = params.afterScroll;\n var cellFocused;\n // only try to refocus cells shifting in and out of sticky container\n // if the browser supports focus ({ preventScroll })\n if (this.stickyRowFeature && browserSupportsPreventScroll()) {\n cellFocused = this.getCellToRestoreFocusToAfterRefresh() || undefined;\n }\n var oldFirstRow = this.firstRenderedRow;\n var oldLastRow = this.lastRenderedRow;\n this.workOutFirstAndLastRowsToRender();\n var hasStickyRowChanges = false;\n if (this.stickyRowFeature) {\n hasStickyRowChanges = this.stickyRowFeature.checkStickyRows();\n }\n var rangeChanged = this.firstRenderedRow !== oldFirstRow || this.lastRenderedRow !== oldLastRow;\n if (afterScroll && !hasStickyRowChanges && !rangeChanged) {\n return;\n }\n this.getLockOnRefresh();\n this.recycleRows(null, false, afterScroll);\n this.releaseLockOnRefresh();\n this.dispatchDisplayedRowsChanged(afterScroll);\n if (cellFocused != null) {\n var newFocusedCell = this.getCellToRestoreFocusToAfterRefresh();\n if (cellFocused != null && newFocusedCell == null) {\n this.animationFrameService.flushAllFrames();\n this.restoreFocusedCell(cellFocused);\n }\n }\n };\n RowRenderer.prototype.removeRowCompsNotToDraw = function (indexesToDraw) {\n // for speedy lookup, dump into map\n var indexesToDrawMap = {};\n indexesToDraw.forEach(function (index) { return (indexesToDrawMap[index] = true); });\n var existingIndexes = Object.keys(this.rowCtrlsByRowIndex);\n var indexesNotToDraw = existingIndexes.filter(function (index) { return !indexesToDrawMap[index]; });\n this.removeRowCtrls(indexesNotToDraw);\n };\n RowRenderer.prototype.calculateIndexesToDraw = function (rowsToRecycle) {\n var _this = this;\n // all in all indexes in the viewport\n var indexesToDraw = createArrayOfNumbers(this.firstRenderedRow, this.lastRenderedRow);\n var checkRowToDraw = function (indexStr, rowComp) {\n var index = rowComp.getRowNode().rowIndex;\n if (index == null) {\n return;\n }\n if (index < _this.firstRenderedRow || index > _this.lastRenderedRow) {\n if (_this.doNotUnVirtualiseRow(rowComp)) {\n indexesToDraw.push(index);\n }\n }\n };\n // if we are redrawing due to scrolling change, then old rows are in this.rowCompsByIndex\n iterateObject(this.rowCtrlsByRowIndex, checkRowToDraw);\n // if we are redrawing due to model update, then old rows are in rowsToRecycle\n iterateObject(rowsToRecycle, checkRowToDraw);\n indexesToDraw.sort(function (a, b) { return a - b; });\n var ret = [];\n for (var i = 0; i < indexesToDraw.length; i++) {\n var currRow = indexesToDraw[i];\n var rowNode = this.paginationProxy.getRow(currRow);\n if (rowNode && !rowNode.sticky) {\n ret.push(currRow);\n }\n }\n return ret;\n };\n RowRenderer.prototype.recycleRows = function (rowsToRecycle, animate, afterScroll) {\n // the row can already exist and be in the following:\n // rowsToRecycle -> if model change, then the index may be different, however row may\n // exist here from previous time (mapped by id).\n // this.rowCompsByIndex -> if just a scroll, then this will contain what is currently in the viewport\n var _this = this;\n if (animate === void 0) { animate = false; }\n if (afterScroll === void 0) { afterScroll = false; }\n // this is all the indexes we want, including those that already exist, so this method\n // will end up going through each index and drawing only if the row doesn't already exist\n var indexesToDraw = this.calculateIndexesToDraw(rowsToRecycle);\n this.removeRowCompsNotToDraw(indexesToDraw);\n // never animate when doing print layout - as we want to get things ready to print as quickly as possible,\n // otherwise we risk the printer printing a row that's half faded (half way through fading in)\n if (this.printLayout) {\n animate = false;\n }\n indexesToDraw.forEach(function (rowIndex) {\n var rowCtrl = _this.createOrUpdateRowCtrl(rowIndex, rowsToRecycle, animate, afterScroll);\n if (exists(rowCtrl)) ;\n });\n if (rowsToRecycle) {\n var useAnimationFrame = afterScroll && !this.gridOptionsService.is('suppressAnimationFrame') && !this.printLayout;\n if (useAnimationFrame) {\n this.beans.animationFrameService.addDestroyTask(function () {\n _this.destroyRowCtrls(rowsToRecycle, animate);\n _this.updateAllRowCtrls();\n _this.dispatchDisplayedRowsChanged();\n });\n }\n else {\n this.destroyRowCtrls(rowsToRecycle, animate);\n }\n }\n this.updateAllRowCtrls();\n };\n RowRenderer.prototype.dispatchDisplayedRowsChanged = function (afterScroll) {\n if (afterScroll === void 0) { afterScroll = false; }\n var event = { type: Events.EVENT_DISPLAYED_ROWS_CHANGED, afterScroll: afterScroll };\n this.eventService.dispatchEvent(event);\n };\n RowRenderer.prototype.onDisplayedColumnsChanged = function () {\n var pinningLeft = this.columnModel.isPinningLeft();\n var pinningRight = this.columnModel.isPinningRight();\n var atLeastOneChanged = this.pinningLeft !== pinningLeft || pinningRight !== this.pinningRight;\n if (atLeastOneChanged) {\n this.pinningLeft = pinningLeft;\n this.pinningRight = pinningRight;\n if (this.embedFullWidthRows) {\n this.redrawFullWidthEmbeddedRows();\n }\n }\n };\n // when embedding, what gets showed in each section depends on what is pinned. eg if embedding group expand / collapse,\n // then it should go into the pinned left area if pinning left, or the center area if not pinning.\n RowRenderer.prototype.redrawFullWidthEmbeddedRows = function () {\n // if either of the pinned panels has shown / hidden, then need to redraw the fullWidth bits when\n // embedded, as what appears in each section depends on whether we are pinned or not\n var rowsToRemove = [];\n this.getFullWidthRowCtrls().forEach(function (fullWidthCtrl) {\n var rowIndex = fullWidthCtrl.getRowNode().rowIndex;\n rowsToRemove.push(rowIndex.toString());\n });\n this.refreshFloatingRowComps();\n this.removeRowCtrls(rowsToRemove);\n this.redraw({ afterScroll: true });\n };\n RowRenderer.prototype.getFullWidthRowCtrls = function (rowNodes) {\n var _this = this;\n var rowNodesMap = this.mapRowNodes(rowNodes);\n return this.getAllRowCtrls().filter(function (rowCtrl) {\n // include just full width\n if (!rowCtrl.isFullWidth()) {\n return false;\n }\n // if Row Nodes provided, we exclude where Row Node is missing\n var rowNode = rowCtrl.getRowNode();\n if (rowNodesMap != null && !_this.isRowInMap(rowNode, rowNodesMap)) {\n return false;\n }\n return true;\n });\n };\n RowRenderer.prototype.createOrUpdateRowCtrl = function (rowIndex, rowsToRecycle, animate, afterScroll) {\n var rowNode;\n var rowCtrl = this.rowCtrlsByRowIndex[rowIndex];\n // if no row comp, see if we can get it from the previous rowComps\n if (!rowCtrl) {\n rowNode = this.paginationProxy.getRow(rowIndex);\n if (exists(rowNode) && exists(rowsToRecycle) && rowsToRecycle[rowNode.id] && rowNode.alreadyRendered) {\n rowCtrl = rowsToRecycle[rowNode.id];\n rowsToRecycle[rowNode.id] = null;\n }\n }\n var creatingNewRowCtrl = !rowCtrl;\n if (creatingNewRowCtrl) {\n // create a new one\n if (!rowNode) {\n rowNode = this.paginationProxy.getRow(rowIndex);\n }\n if (exists(rowNode)) {\n rowCtrl = this.createRowCon(rowNode, animate, afterScroll);\n }\n else {\n // this should never happen - if somehow we are trying to create\n // a row for a rowNode that does not exist.\n return;\n }\n }\n if (rowNode) {\n // set node as 'alreadyRendered' to ensure we only recycle rowComps that have been rendered, this ensures\n // we don't reuse rowComps that have been removed and then re-added in the same batch transaction.\n rowNode.alreadyRendered = true;\n }\n this.rowCtrlsByRowIndex[rowIndex] = rowCtrl;\n return rowCtrl;\n };\n RowRenderer.prototype.destroyRowCtrls = function (rowCtrlsMap, animate) {\n var _this = this;\n var executeInAWhileFuncs = [];\n iterateObject(rowCtrlsMap, function (nodeId, rowCtrl) {\n // if row was used, then it's null\n if (!rowCtrl) {\n return;\n }\n if (_this.cachedRowCtrls && rowCtrl.isCacheable()) {\n _this.cachedRowCtrls.addRow(rowCtrl);\n return;\n }\n rowCtrl.destroyFirstPass();\n if (animate) {\n _this.zombieRowCtrls[rowCtrl.getInstanceId()] = rowCtrl;\n executeInAWhileFuncs.push(function () {\n rowCtrl.destroySecondPass();\n delete _this.zombieRowCtrls[rowCtrl.getInstanceId()];\n });\n }\n else {\n rowCtrl.destroySecondPass();\n }\n });\n if (animate) {\n // this ensures we fire displayedRowsChanged AFTER all the 'executeInAWhileFuncs' get\n // executed, as we added it to the end of the list.\n executeInAWhileFuncs.push(function () {\n _this.updateAllRowCtrls();\n _this.dispatchDisplayedRowsChanged();\n });\n executeInAWhile(executeInAWhileFuncs);\n }\n };\n RowRenderer.prototype.getRowBuffer = function () {\n var rowBuffer = this.gridOptionsService.getNum('rowBuffer');\n if (typeof rowBuffer === 'number') {\n if (rowBuffer < 0) {\n doOnce(function () { return console.warn(\"AG Grid: rowBuffer should not be negative\"); }, 'warn rowBuffer negative');\n rowBuffer = 0;\n this.gridOptionsService.set('rowBuffer', 0);\n }\n }\n else {\n rowBuffer = 10;\n }\n return rowBuffer;\n };\n RowRenderer.prototype.getRowBufferInPixels = function () {\n var rowsToBuffer = this.getRowBuffer();\n var defaultRowHeight = this.gridOptionsService.getRowHeightAsNumber();\n return rowsToBuffer * defaultRowHeight;\n };\n RowRenderer.prototype.workOutFirstAndLastRowsToRender = function () {\n this.rowContainerHeightService.updateOffset();\n var newFirst;\n var newLast;\n if (!this.paginationProxy.isRowsToRender()) {\n newFirst = 0;\n newLast = -1; // setting to -1 means nothing in range\n }\n else if (this.printLayout) {\n this.environment.refreshRowHeightVariable();\n newFirst = this.paginationProxy.getPageFirstRow();\n newLast = this.paginationProxy.getPageLastRow();\n }\n else {\n var bufferPixels = this.getRowBufferInPixels();\n var gridBodyCtrl = this.ctrlsService.getGridBodyCtrl();\n var suppressRowVirtualisation = this.gridOptionsService.is('suppressRowVirtualisation');\n var rowHeightsChanged = false;\n var firstPixel = void 0;\n var lastPixel = void 0;\n do {\n var paginationOffset = this.paginationProxy.getPixelOffset();\n var _a = this.paginationProxy.getCurrentPagePixelRange(), pageFirstPixel = _a.pageFirstPixel, pageLastPixel = _a.pageLastPixel;\n var divStretchOffset = this.rowContainerHeightService.getDivStretchOffset();\n var bodyVRange = gridBodyCtrl.getScrollFeature().getVScrollPosition();\n var bodyTopPixel = bodyVRange.top;\n var bodyBottomPixel = bodyVRange.bottom;\n if (suppressRowVirtualisation) {\n firstPixel = pageFirstPixel + divStretchOffset;\n lastPixel = pageLastPixel + divStretchOffset;\n }\n else {\n firstPixel = Math.max(bodyTopPixel + paginationOffset - bufferPixels, pageFirstPixel) + divStretchOffset;\n lastPixel = Math.min(bodyBottomPixel + paginationOffset + bufferPixels, pageLastPixel) + divStretchOffset;\n }\n this.firstVisibleVPixel = Math.max(bodyTopPixel + paginationOffset, pageFirstPixel) + divStretchOffset;\n // if the rows we are about to display get their heights changed, then that upsets the calcs from above.\n rowHeightsChanged = this.ensureAllRowsInRangeHaveHeightsCalculated(firstPixel, lastPixel);\n } while (rowHeightsChanged);\n var firstRowIndex = this.paginationProxy.getRowIndexAtPixel(firstPixel);\n var lastRowIndex = this.paginationProxy.getRowIndexAtPixel(lastPixel);\n var pageFirstRow = this.paginationProxy.getPageFirstRow();\n var pageLastRow = this.paginationProxy.getPageLastRow();\n // adjust, in case buffer extended actual size\n if (firstRowIndex < pageFirstRow) {\n firstRowIndex = pageFirstRow;\n }\n if (lastRowIndex > pageLastRow) {\n lastRowIndex = pageLastRow;\n }\n newFirst = firstRowIndex;\n newLast = lastRowIndex;\n }\n // sometimes user doesn't set CSS right and ends up with grid with no height and grid ends up\n // trying to render all the rows, eg 10,000+ rows. this will kill the browser. so instead of\n // killing the browser, we limit the number of rows. just in case some use case we didn't think\n // of, we also have a property to not do this operation.\n var rowLayoutNormal = this.gridOptionsService.isDomLayout('normal');\n var suppressRowCountRestriction = this.gridOptionsService.is('suppressMaxRenderedRowRestriction');\n var rowBufferMaxSize = Math.max(this.getRowBuffer(), 500);\n if (rowLayoutNormal && !suppressRowCountRestriction) {\n if (newLast - newFirst > rowBufferMaxSize) {\n newLast = newFirst + rowBufferMaxSize;\n }\n }\n var firstDiffers = newFirst !== this.firstRenderedRow;\n var lastDiffers = newLast !== this.lastRenderedRow;\n if (firstDiffers || lastDiffers) {\n this.firstRenderedRow = newFirst;\n this.lastRenderedRow = newLast;\n var event_1 = {\n type: Events.EVENT_VIEWPORT_CHANGED,\n firstRow: newFirst,\n lastRow: newLast\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n /**\n * This event will only be fired once, and is queued until after the browser next renders.\n * This allows us to fire an event during the start of the render cycle, when we first see data being rendered\n * but not execute the event until all of the data has finished being rendered to the dom.\n */\n RowRenderer.prototype.dispatchFirstDataRenderedEvent = function () {\n var _this = this;\n if (this.dataFirstRenderedFired) {\n return;\n }\n this.dataFirstRenderedFired = true;\n var event = {\n type: Events.EVENT_FIRST_DATA_RENDERED,\n firstRow: this.firstRenderedRow,\n lastRow: this.lastRenderedRow,\n };\n // See AG-7018\n window.requestAnimationFrame(function () {\n _this.beans.eventService.dispatchEvent(event);\n });\n };\n RowRenderer.prototype.ensureAllRowsInRangeHaveHeightsCalculated = function (topPixel, bottomPixel) {\n // ensureRowHeightsVisible only works with CSRM, as it's the only row model that allows lazy row height calcs.\n // all the other row models just hard code so the method just returns back false\n var res = this.paginationProxy.ensureRowHeightsValid(topPixel, bottomPixel, -1, -1);\n if (res) {\n this.updateContainerHeights();\n }\n return res;\n };\n RowRenderer.prototype.getFirstVisibleVerticalPixel = function () {\n return this.firstVisibleVPixel;\n };\n RowRenderer.prototype.getFirstVirtualRenderedRow = function () {\n return this.firstRenderedRow;\n };\n RowRenderer.prototype.getLastVirtualRenderedRow = function () {\n return this.lastRenderedRow;\n };\n // check that none of the rows to remove are editing or focused as:\n // a) if editing, we want to keep them, otherwise the user will loose the context of the edit,\n // eg user starts editing, enters some text, then scrolls down and then up, next time row rendered\n // the edit is reset - so we want to keep it rendered.\n // b) if focused, we want ot keep keyboard focus, so if user ctrl+c, it goes to clipboard,\n // otherwise the user can range select and drag (with focus cell going out of the viewport)\n // and then ctrl+c, nothing will happen if cell is removed from dom.\n // c) if detail record of master detail, as users complained that the context of detail rows\n // was getting lost when detail row out of view. eg user expands to show detail row,\n // then manipulates the detail panel (eg sorts the detail grid), then context is lost\n // after detail panel is scrolled out of / into view.\n RowRenderer.prototype.doNotUnVirtualiseRow = function (rowComp) {\n var REMOVE_ROW = false;\n var KEEP_ROW = true;\n var rowNode = rowComp.getRowNode();\n var rowHasFocus = this.focusService.isRowNodeFocused(rowNode);\n var rowIsEditing = rowComp.isEditing();\n var rowIsDetail = rowNode.detail;\n var mightWantToKeepRow = rowHasFocus || rowIsEditing || rowIsDetail;\n // if we deffo don't want to keep it,\n if (!mightWantToKeepRow) {\n return REMOVE_ROW;\n }\n // editing row, only remove if it is no longer rendered, eg filtered out or new data set.\n // the reason we want to keep is if user is scrolling up and down, we don't want to loose\n // the context of the editing in process.\n var rowNodePresent = this.paginationProxy.isRowPresent(rowNode);\n return rowNodePresent ? KEEP_ROW : REMOVE_ROW;\n };\n RowRenderer.prototype.createRowCon = function (rowNode, animate, afterScroll) {\n var rowCtrlFromCache = this.cachedRowCtrls ? this.cachedRowCtrls.getRow(rowNode) : null;\n if (rowCtrlFromCache) {\n return rowCtrlFromCache;\n }\n // we don't use animations frames for printing, so the user can put the grid into print mode\n // and immediately print - otherwise the user would have to wait for the rows to draw in the background\n // (via the animation frames) which is awkward to do from code.\n // we only do the animation frames after scrolling, as this is where we want the smooth user experience.\n // having animation frames for other times makes the grid look 'jumpy'.\n var suppressAnimationFrame = this.gridOptionsService.is('suppressAnimationFrame');\n var useAnimationFrameForCreate = afterScroll && !suppressAnimationFrame && !this.printLayout;\n var res = new RowCtrl(rowNode, this.beans, animate, useAnimationFrameForCreate, this.printLayout);\n return res;\n };\n RowRenderer.prototype.getRenderedNodes = function () {\n var renderedRows = this.rowCtrlsByRowIndex;\n return Object.keys(renderedRows).map(function (key) { return renderedRows[key].getRowNode(); });\n };\n RowRenderer.prototype.getRowByPosition = function (rowPosition) {\n var rowCtrl;\n var rowIndex = rowPosition.rowIndex;\n switch (rowPosition.rowPinned) {\n case 'top':\n rowCtrl = this.topRowCtrls[rowIndex];\n break;\n case 'bottom':\n rowCtrl = this.bottomRowCtrls[rowIndex];\n break;\n default:\n rowCtrl = this.rowCtrlsByRowIndex[rowIndex];\n if (!rowCtrl) {\n rowCtrl = this.getStickyTopRowCtrls().find(function (ctrl) { return ctrl.getRowNode().rowIndex === rowIndex; }) || null;\n }\n break;\n }\n return rowCtrl;\n };\n RowRenderer.prototype.getRowNode = function (gridRow) {\n switch (gridRow.rowPinned) {\n case 'top':\n return this.pinnedRowModel.getPinnedTopRowData()[gridRow.rowIndex];\n case 'bottom':\n return this.pinnedRowModel.getPinnedBottomRowData()[gridRow.rowIndex];\n default:\n return this.rowModel.getRow(gridRow.rowIndex);\n }\n };\n // returns true if any row between startIndex and endIndex is rendered. used by\n // SSRM or IRM, as they don't want to purge visible blocks from cache.\n RowRenderer.prototype.isRangeInRenderedViewport = function (startIndex, endIndex) {\n // parent closed means the parent node is not expanded, thus these blocks are not visible\n var parentClosed = startIndex == null || endIndex == null;\n if (parentClosed) {\n return false;\n }\n var blockAfterViewport = startIndex > this.lastRenderedRow;\n var blockBeforeViewport = endIndex < this.firstRenderedRow;\n var blockInsideViewport = !blockBeforeViewport && !blockAfterViewport;\n return blockInsideViewport;\n };\n __decorate$17([\n Autowired(\"animationFrameService\")\n ], RowRenderer.prototype, \"animationFrameService\", void 0);\n __decorate$17([\n Autowired(\"paginationProxy\")\n ], RowRenderer.prototype, \"paginationProxy\", void 0);\n __decorate$17([\n Autowired(\"columnModel\")\n ], RowRenderer.prototype, \"columnModel\", void 0);\n __decorate$17([\n Autowired(\"pinnedRowModel\")\n ], RowRenderer.prototype, \"pinnedRowModel\", void 0);\n __decorate$17([\n Autowired(\"rowModel\")\n ], RowRenderer.prototype, \"rowModel\", void 0);\n __decorate$17([\n Autowired(\"focusService\")\n ], RowRenderer.prototype, \"focusService\", void 0);\n __decorate$17([\n Autowired(\"beans\")\n ], RowRenderer.prototype, \"beans\", void 0);\n __decorate$17([\n Autowired(\"rowContainerHeightService\")\n ], RowRenderer.prototype, \"rowContainerHeightService\", void 0);\n __decorate$17([\n Autowired(\"ctrlsService\")\n ], RowRenderer.prototype, \"ctrlsService\", void 0);\n __decorate$17([\n PostConstruct\n ], RowRenderer.prototype, \"postConstruct\", null);\n RowRenderer = __decorate$17([\n Bean(\"rowRenderer\")\n ], RowRenderer);\n return RowRenderer;\n}(BeanStub));\nvar RowCtrlCache = /** @class */ (function () {\n function RowCtrlCache(maxCount) {\n // map for fast access\n this.entriesMap = {};\n // list for keeping order\n this.entriesList = [];\n this.maxCount = maxCount;\n }\n RowCtrlCache.prototype.addRow = function (rowCtrl) {\n this.entriesMap[rowCtrl.getRowNode().id] = rowCtrl;\n this.entriesList.push(rowCtrl);\n rowCtrl.setCached(true);\n if (this.entriesList.length > this.maxCount) {\n var rowCtrlToDestroy = this.entriesList[0];\n rowCtrlToDestroy.destroyFirstPass();\n rowCtrlToDestroy.destroySecondPass();\n this.removeFromCache(rowCtrlToDestroy);\n }\n };\n RowCtrlCache.prototype.getRow = function (rowNode) {\n if (rowNode == null || rowNode.id == null) {\n return null;\n }\n var res = this.entriesMap[rowNode.id];\n if (!res) {\n return null;\n }\n this.removeFromCache(res);\n res.setCached(false);\n // this can happen if user reloads data, and a new RowNode is reusing\n // the same ID as the old one\n var rowNodeMismatch = res.getRowNode() != rowNode;\n return rowNodeMismatch ? null : res;\n };\n RowCtrlCache.prototype.removeFromCache = function (rowCtrl) {\n var rowNodeId = rowCtrl.getRowNode().id;\n delete this.entriesMap[rowNodeId];\n removeFromArray(this.entriesList, rowCtrl);\n };\n RowCtrlCache.prototype.getEntries = function () {\n return this.entriesList;\n };\n return RowCtrlCache;\n}());\n\nvar __extends$1b = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$16 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ValueFormatterService = /** @class */ (function (_super) {\n __extends$1b(ValueFormatterService, _super);\n function ValueFormatterService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ValueFormatterService.prototype.formatValue = function (column, node, value, suppliedFormatter, useFormatterFromColumn) {\n if (useFormatterFromColumn === void 0) { useFormatterFromColumn = true; }\n var result = null;\n var formatter;\n var colDef = column.getColDef();\n if (suppliedFormatter) {\n // use supplied formatter if provided, e.g. set filter items can have their own value formatters\n formatter = suppliedFormatter;\n }\n else if (useFormatterFromColumn) {\n formatter = colDef.valueFormatter;\n }\n if (formatter) {\n var params = {\n value: value,\n node: node,\n data: node ? node.data : null,\n colDef: colDef,\n column: column,\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context\n };\n if (typeof formatter === 'function') {\n result = formatter(params);\n }\n else {\n result = this.expressionService.evaluate(formatter, params);\n }\n }\n else if (colDef.refData) {\n return colDef.refData[value] || '';\n }\n // if we don't do this, then arrays get displayed as 1,2,3, but we want 1, 2, 3 (i.e. with spaces)\n if (result == null && Array.isArray(value)) {\n result = value.join(', ');\n }\n return result;\n };\n __decorate$16([\n Autowired('expressionService')\n ], ValueFormatterService.prototype, \"expressionService\", void 0);\n ValueFormatterService = __decorate$16([\n Bean('valueFormatterService')\n ], ValueFormatterService);\n return ValueFormatterService;\n}(BeanStub));\n\nvar __extends$1a = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$15 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PinnedRowModel = /** @class */ (function (_super) {\n __extends$1a(PinnedRowModel, _super);\n function PinnedRowModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PinnedRowModel.prototype.init = function () {\n this.setPinnedTopRowData(this.gridOptionsService.get('pinnedTopRowData'));\n this.setPinnedBottomRowData(this.gridOptionsService.get('pinnedBottomRowData'));\n };\n PinnedRowModel.prototype.isEmpty = function (floating) {\n var rows = floating === 'top' ? this.pinnedTopRows : this.pinnedBottomRows;\n return missingOrEmpty(rows);\n };\n PinnedRowModel.prototype.isRowsToRender = function (floating) {\n return !this.isEmpty(floating);\n };\n PinnedRowModel.prototype.getRowAtPixel = function (pixel, floating) {\n var rows = floating === 'top' ? this.pinnedTopRows : this.pinnedBottomRows;\n if (missingOrEmpty(rows)) {\n return 0; // this should never happen, just in case, 0 is graceful failure\n }\n for (var i = 0; i < rows.length; i++) {\n var rowNode = rows[i];\n var rowTopPixel = rowNode.rowTop + rowNode.rowHeight - 1;\n // only need to range check against the top pixel, as we are going through the list\n // in order, first row to hit the pixel wins\n if (rowTopPixel >= pixel) {\n return i;\n }\n }\n return rows.length - 1;\n };\n PinnedRowModel.prototype.setPinnedTopRowData = function (rowData) {\n this.pinnedTopRows = this.createNodesFromData(rowData, true);\n var event = {\n type: Events.EVENT_PINNED_ROW_DATA_CHANGED\n };\n this.eventService.dispatchEvent(event);\n };\n PinnedRowModel.prototype.setPinnedBottomRowData = function (rowData) {\n this.pinnedBottomRows = this.createNodesFromData(rowData, false);\n var event = {\n type: Events.EVENT_PINNED_ROW_DATA_CHANGED\n };\n this.eventService.dispatchEvent(event);\n };\n PinnedRowModel.prototype.createNodesFromData = function (allData, isTop) {\n var _this = this;\n var rowNodes = [];\n if (allData) {\n var nextRowTop_1 = 0;\n allData.forEach(function (dataItem, index) {\n var rowNode = new RowNode(_this.beans);\n rowNode.data = dataItem;\n var idPrefix = isTop ? RowNode.ID_PREFIX_TOP_PINNED : RowNode.ID_PREFIX_BOTTOM_PINNED;\n rowNode.id = idPrefix + index;\n rowNode.rowPinned = isTop ? 'top' : 'bottom';\n rowNode.setRowTop(nextRowTop_1);\n rowNode.setRowHeight(_this.gridOptionsService.getRowHeightForNode(rowNode).height);\n rowNode.setRowIndex(index);\n nextRowTop_1 += rowNode.rowHeight;\n rowNodes.push(rowNode);\n });\n }\n return rowNodes;\n };\n PinnedRowModel.prototype.getPinnedTopRowData = function () {\n return this.pinnedTopRows;\n };\n PinnedRowModel.prototype.getPinnedBottomRowData = function () {\n return this.pinnedBottomRows;\n };\n PinnedRowModel.prototype.getPinnedTopTotalHeight = function () {\n return this.getTotalHeight(this.pinnedTopRows);\n };\n PinnedRowModel.prototype.getPinnedTopRowCount = function () {\n return this.pinnedTopRows ? this.pinnedTopRows.length : 0;\n };\n PinnedRowModel.prototype.getPinnedBottomRowCount = function () {\n return this.pinnedBottomRows ? this.pinnedBottomRows.length : 0;\n };\n PinnedRowModel.prototype.getPinnedTopRow = function (index) {\n return this.pinnedTopRows[index];\n };\n PinnedRowModel.prototype.getPinnedBottomRow = function (index) {\n return this.pinnedBottomRows[index];\n };\n PinnedRowModel.prototype.forEachPinnedTopRow = function (callback) {\n if (missingOrEmpty(this.pinnedTopRows)) {\n return;\n }\n this.pinnedTopRows.forEach(callback);\n };\n PinnedRowModel.prototype.forEachPinnedBottomRow = function (callback) {\n if (missingOrEmpty(this.pinnedBottomRows)) {\n return;\n }\n this.pinnedBottomRows.forEach(callback);\n };\n PinnedRowModel.prototype.getPinnedBottomTotalHeight = function () {\n return this.getTotalHeight(this.pinnedBottomRows);\n };\n PinnedRowModel.prototype.getTotalHeight = function (rowNodes) {\n if (!rowNodes || rowNodes.length === 0) {\n return 0;\n }\n var lastNode = last(rowNodes);\n return lastNode.rowTop + lastNode.rowHeight;\n };\n __decorate$15([\n Autowired('beans')\n ], PinnedRowModel.prototype, \"beans\", void 0);\n __decorate$15([\n PostConstruct\n ], PinnedRowModel.prototype, \"init\", null);\n PinnedRowModel = __decorate$15([\n Bean('pinnedRowModel')\n ], PinnedRowModel);\n return PinnedRowModel;\n}(BeanStub));\n\nvar ServerSideTransactionResultStatus;\n(function (ServerSideTransactionResultStatus) {\n /** Transaction was successfully applied */\n ServerSideTransactionResultStatus[\"Applied\"] = \"Applied\";\n /**\n * Store was not found, transaction not applied.\n * Either invalid route, or the parent row has not yet been expanded.\n */\n ServerSideTransactionResultStatus[\"StoreNotFound\"] = \"StoreNotFound\";\n /**\n * Store is loading, transaction not applied.\n */\n ServerSideTransactionResultStatus[\"StoreLoading\"] = \"StoreLoading\";\n /**\n * Store is loading (as max loads exceeded), transaction not applied.\n */\n ServerSideTransactionResultStatus[\"StoreWaitingToLoad\"] = \"StoreWaitingToLoad\";\n /**\n * Store load attempt failed, transaction not applied.\n */\n ServerSideTransactionResultStatus[\"StoreLoadingFailed\"] = \"StoreLoadingFailed\";\n /**\n * Store is type Partial, which doesn't accept transactions\n */\n ServerSideTransactionResultStatus[\"StoreWrongType\"] = \"StoreWrongType\";\n /**\n * Transaction was cancelled, due to grid.\n * Callback isApplyServerSideTransaction() returning false\n */\n ServerSideTransactionResultStatus[\"Cancelled\"] = \"Cancelled\";\n})(ServerSideTransactionResultStatus || (ServerSideTransactionResultStatus = {}));\n\n// when doing transactions, or change detection, and grouping is present\n// in the data, there is no need for the ClientSideRowModel to update each\n// group after an update, ony parts that were impacted by the change.\n// this class keeps track of all groups that were impacted by a transaction.\n// the the different CSRM operations (filter, sort etc) use the forEach method\n// to visit each group that was changed.\nvar ChangedPath = /** @class */ (function () {\n function ChangedPath(keepingColumns, rootNode) {\n // whether changed path is active of not. it is active when a) doing\n // a transaction update or b) doing change detection. if we are doing\n // a CSRM refresh for other reasons (after sort or filter, or user calling\n // setRowData() without delta mode) then we are not active. we are also\n // marked as not active if secondary columns change in pivot (as this impacts\n // aggregations)\n this.active = true;\n // for each node in the change path, we also store which columns need\n // to be re-aggregated.\n this.nodeIdsToColumns = {};\n // for quick lookup, all items in the change path are mapped by nodeId\n this.mapToItems = {};\n this.keepingColumns = keepingColumns;\n this.pathRoot = {\n rowNode: rootNode,\n children: null\n };\n this.mapToItems[rootNode.id] = this.pathRoot;\n }\n // can be set inactive by:\n // a) ClientSideRowModel, if no transactions or\n // b) PivotService, if secondary columns changed\n ChangedPath.prototype.setInactive = function () {\n this.active = false;\n };\n ChangedPath.prototype.isActive = function () {\n return this.active;\n };\n ChangedPath.prototype.depthFirstSearchChangedPath = function (pathItem, callback) {\n if (pathItem.children) {\n for (var i = 0; i < pathItem.children.length; i++) {\n this.depthFirstSearchChangedPath(pathItem.children[i], callback);\n }\n }\n callback(pathItem.rowNode);\n };\n ChangedPath.prototype.depthFirstSearchEverything = function (rowNode, callback, traverseEverything) {\n if (rowNode.childrenAfterGroup) {\n for (var i = 0; i < rowNode.childrenAfterGroup.length; i++) {\n var childNode = rowNode.childrenAfterGroup[i];\n if (childNode.childrenAfterGroup) {\n this.depthFirstSearchEverything(rowNode.childrenAfterGroup[i], callback, traverseEverything);\n }\n else if (traverseEverything) {\n callback(childNode);\n }\n }\n }\n callback(rowNode);\n };\n // traverseLeafNodes -> used when NOT doing changed path, ie traversing everything. the callback\n // will be called for child nodes in addition to parent nodes.\n ChangedPath.prototype.forEachChangedNodeDepthFirst = function (callback, traverseLeafNodes, includeUnchangedNodes) {\n if (traverseLeafNodes === void 0) { traverseLeafNodes = false; }\n if (includeUnchangedNodes === void 0) { includeUnchangedNodes = false; }\n if (this.active && !includeUnchangedNodes) {\n // if we are active, then use the change path to callback\n // only for updated groups\n this.depthFirstSearchChangedPath(this.pathRoot, callback);\n }\n else {\n // we are not active, so callback for everything, walk the entire path\n this.depthFirstSearchEverything(this.pathRoot.rowNode, callback, traverseLeafNodes);\n }\n };\n ChangedPath.prototype.executeFromRootNode = function (callback) {\n callback(this.pathRoot.rowNode);\n };\n ChangedPath.prototype.createPathItems = function (rowNode) {\n var pointer = rowNode;\n var newEntryCount = 0;\n while (!this.mapToItems[pointer.id]) {\n var newEntry = {\n rowNode: pointer,\n children: null\n };\n this.mapToItems[pointer.id] = newEntry;\n newEntryCount++;\n pointer = pointer.parent;\n }\n return newEntryCount;\n };\n ChangedPath.prototype.populateColumnsMap = function (rowNode, columns) {\n var _this = this;\n if (!this.keepingColumns || !columns) {\n return;\n }\n var pointer = rowNode;\n while (pointer) {\n // if columns, add the columns in all the way to parent, merging\n // in any other columns that might be there already\n if (!this.nodeIdsToColumns[pointer.id]) {\n this.nodeIdsToColumns[pointer.id] = {};\n }\n columns.forEach(function (col) { return _this.nodeIdsToColumns[pointer.id][col.getId()] = true; });\n pointer = pointer.parent;\n }\n };\n ChangedPath.prototype.linkPathItems = function (rowNode, newEntryCount) {\n var pointer = rowNode;\n for (var i = 0; i < newEntryCount; i++) {\n var thisItem = this.mapToItems[pointer.id];\n var parentItem = this.mapToItems[pointer.parent.id];\n if (!parentItem.children) {\n parentItem.children = [];\n }\n parentItem.children.push(thisItem);\n pointer = pointer.parent;\n }\n };\n // called by\n // 1) change detection (provides cols) and\n // 2) groupStage if doing transaction update (doesn't provide cols)\n ChangedPath.prototype.addParentNode = function (rowNode, columns) {\n if (!rowNode || rowNode.isRowPinned()) {\n return;\n }\n // we cannot do both steps below in the same loop as\n // the second loop has a dependency on the first loop.\n // ie the hierarchy cannot be stitched up yet because\n // we don't have it built yet\n // create the new PathItem objects.\n var newEntryCount = this.createPathItems(rowNode);\n // link in the node items\n this.linkPathItems(rowNode, newEntryCount);\n // update columns\n this.populateColumnsMap(rowNode, columns);\n };\n ChangedPath.prototype.canSkip = function (rowNode) {\n return this.active && !this.mapToItems[rowNode.id];\n };\n ChangedPath.prototype.getValueColumnsForNode = function (rowNode, valueColumns) {\n if (!this.keepingColumns) {\n return valueColumns;\n }\n var colsForThisNode = this.nodeIdsToColumns[rowNode.id];\n var result = valueColumns.filter(function (col) { return colsForThisNode[col.getId()]; });\n return result;\n };\n ChangedPath.prototype.getNotValueColumnsForNode = function (rowNode, valueColumns) {\n if (!this.keepingColumns) {\n return null;\n }\n var colsForThisNode = this.nodeIdsToColumns[rowNode.id];\n var result = valueColumns.filter(function (col) { return !colsForThisNode[col.getId()]; });\n return result;\n };\n return ChangedPath;\n}());\n\nvar __extends$19 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar RowNodeBlock = /** @class */ (function (_super) {\n __extends$19(RowNodeBlock, _super);\n function RowNodeBlock(id) {\n var _this = _super.call(this) || this;\n _this.state = RowNodeBlock.STATE_WAITING_TO_LOAD;\n _this.version = 0;\n _this.id = id;\n return _this;\n }\n RowNodeBlock.prototype.getId = function () {\n return this.id;\n };\n RowNodeBlock.prototype.load = function () {\n this.state = RowNodeBlock.STATE_LOADING;\n this.loadFromDatasource();\n };\n RowNodeBlock.prototype.getVersion = function () {\n return this.version;\n };\n RowNodeBlock.prototype.setStateWaitingToLoad = function () {\n // in case any current loads in progress, this will have their results ignored\n this.version++;\n this.state = RowNodeBlock.STATE_WAITING_TO_LOAD;\n };\n RowNodeBlock.prototype.getState = function () {\n return this.state;\n };\n RowNodeBlock.prototype.pageLoadFailed = function (version) {\n var requestMostRecentAndLive = this.isRequestMostRecentAndLive(version);\n if (requestMostRecentAndLive) {\n this.state = RowNodeBlock.STATE_FAILED;\n this.processServerFail();\n }\n this.dispatchLoadCompleted(false);\n };\n RowNodeBlock.prototype.success = function (version, params) {\n this.successCommon(version, params);\n };\n RowNodeBlock.prototype.pageLoaded = function (version, rows, lastRow) {\n this.successCommon(version, { rowData: rows, rowCount: lastRow });\n };\n RowNodeBlock.prototype.isRequestMostRecentAndLive = function (version) {\n // thisIsMostRecentRequest - if block was refreshed, then another request\n // could of been sent after this one.\n var thisIsMostRecentRequest = version === this.version;\n // weAreNotDestroyed - if InfiniteStore is purged, then blocks are destroyed\n // and new blocks created. so data loads of old blocks are discarded.\n var weAreNotDestroyed = this.isAlive();\n return thisIsMostRecentRequest && weAreNotDestroyed;\n };\n RowNodeBlock.prototype.successCommon = function (version, params) {\n // need to dispatch load complete before processing the data, as PaginationComp checks\n // RowNodeBlockLoader to see if it is still loading, so the RowNodeBlockLoader needs to\n // be updated first (via LoadComplete event) before PaginationComp updates (via processServerResult method)\n this.dispatchLoadCompleted();\n var requestMostRecentAndLive = this.isRequestMostRecentAndLive(version);\n if (requestMostRecentAndLive) {\n this.state = RowNodeBlock.STATE_LOADED;\n this.processServerResult(params);\n }\n };\n RowNodeBlock.prototype.dispatchLoadCompleted = function (success) {\n if (success === void 0) { success = true; }\n // we fire event regardless of processing data or now, as we want\n // the concurrentLoadRequests count to be reduced in BlockLoader\n var event = {\n type: RowNodeBlock.EVENT_LOAD_COMPLETE,\n success: success,\n block: this\n };\n this.dispatchEvent(event);\n };\n RowNodeBlock.EVENT_LOAD_COMPLETE = 'loadComplete';\n RowNodeBlock.STATE_WAITING_TO_LOAD = 'needsLoading';\n RowNodeBlock.STATE_LOADING = 'loading';\n RowNodeBlock.STATE_LOADED = 'loaded';\n RowNodeBlock.STATE_FAILED = 'failed';\n return RowNodeBlock;\n}(BeanStub));\n\nvar __extends$18 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$14 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$7 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar RowNodeBlockLoader = /** @class */ (function (_super) {\n __extends$18(RowNodeBlockLoader, _super);\n function RowNodeBlockLoader() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.activeBlockLoadsCount = 0;\n _this.blocks = [];\n _this.active = true;\n return _this;\n }\n RowNodeBlockLoader_1 = RowNodeBlockLoader;\n RowNodeBlockLoader.prototype.postConstruct = function () {\n this.maxConcurrentRequests = this.getMaxConcurrentDatasourceRequests();\n var blockLoadDebounceMillis = this.gridOptionsService.getNum('blockLoadDebounceMillis');\n if (blockLoadDebounceMillis && blockLoadDebounceMillis > 0) {\n this.checkBlockToLoadDebounce = _.debounce(this.performCheckBlocksToLoad.bind(this), blockLoadDebounceMillis);\n }\n };\n RowNodeBlockLoader.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('RowNodeBlockLoader');\n };\n RowNodeBlockLoader.prototype.getMaxConcurrentDatasourceRequests = function () {\n var res = this.gridOptionsService.getNum('maxConcurrentDatasourceRequests');\n if (res == null) {\n return 2;\n } // 2 is the default\n if (res <= 0) {\n return;\n } // negative number, eg -1, means no max restriction\n return res;\n };\n RowNodeBlockLoader.prototype.addBlock = function (block) {\n this.blocks.push(block);\n // note that we do not remove this listener when removing the block. this is because the\n // cache can get destroyed (and containing blocks) when a block is loading. however the loading block\n // is still counted as an active loading block and we must decrement activeBlockLoadsCount when it finishes.\n block.addEventListener(RowNodeBlock.EVENT_LOAD_COMPLETE, this.loadComplete.bind(this));\n this.checkBlockToLoad();\n };\n RowNodeBlockLoader.prototype.removeBlock = function (block) {\n _.removeFromArray(this.blocks, block);\n };\n RowNodeBlockLoader.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this.active = false;\n };\n RowNodeBlockLoader.prototype.loadComplete = function () {\n this.activeBlockLoadsCount--;\n this.checkBlockToLoad();\n this.dispatchEvent({ type: RowNodeBlockLoader_1.BLOCK_LOADED_EVENT });\n if (this.activeBlockLoadsCount == 0) {\n this.dispatchEvent({ type: RowNodeBlockLoader_1.BLOCK_LOADER_FINISHED_EVENT });\n }\n };\n RowNodeBlockLoader.prototype.checkBlockToLoad = function () {\n if (this.checkBlockToLoadDebounce) {\n this.checkBlockToLoadDebounce();\n }\n else {\n this.performCheckBlocksToLoad();\n }\n };\n RowNodeBlockLoader.prototype.performCheckBlocksToLoad = function () {\n if (!this.active) {\n return;\n }\n this.printCacheStatus();\n if (this.maxConcurrentRequests != null && this.activeBlockLoadsCount >= this.maxConcurrentRequests) {\n this.logger.log(\"checkBlockToLoad: max loads exceeded\");\n return;\n }\n var loadAvailability = this.getAvailableLoadingCount();\n var blocksToLoad = this.blocks.filter(function (block) { return (block.getState() === RowNodeBlock.STATE_WAITING_TO_LOAD); }).slice(0, loadAvailability);\n this.registerLoads(blocksToLoad.length);\n blocksToLoad.forEach(function (block) { return block.load(); });\n this.printCacheStatus();\n };\n RowNodeBlockLoader.prototype.getBlockState = function () {\n if (this.gridOptionsService.isRowModelType('serverSide')) {\n var ssrm = this.rowModel;\n return ssrm.getBlockStates();\n }\n var result = {};\n this.blocks.forEach(function (block) {\n var _a = block.getBlockStateJson(), id = _a.id, state = _a.state;\n result[id] = state;\n });\n return result;\n };\n RowNodeBlockLoader.prototype.printCacheStatus = function () {\n if (this.logger.isLogging()) {\n this.logger.log(\"printCacheStatus: activePageLoadsCount = \" + this.activeBlockLoadsCount + \",\"\n + (\" blocks = \" + JSON.stringify(this.getBlockState())));\n }\n };\n RowNodeBlockLoader.prototype.isLoading = function () {\n return this.activeBlockLoadsCount > 0;\n };\n RowNodeBlockLoader.prototype.registerLoads = function (count) {\n this.activeBlockLoadsCount += count;\n };\n RowNodeBlockLoader.prototype.getAvailableLoadingCount = function () {\n return this.maxConcurrentRequests !== undefined ? this.maxConcurrentRequests - this.activeBlockLoadsCount : undefined;\n };\n var RowNodeBlockLoader_1;\n RowNodeBlockLoader.BLOCK_LOADED_EVENT = 'blockLoaded';\n RowNodeBlockLoader.BLOCK_LOADER_FINISHED_EVENT = 'blockLoaderFinished';\n __decorate$14([\n Autowired('rowModel')\n ], RowNodeBlockLoader.prototype, \"rowModel\", void 0);\n __decorate$14([\n PostConstruct\n ], RowNodeBlockLoader.prototype, \"postConstruct\", null);\n __decorate$14([\n __param$7(0, Qualifier('loggerFactory'))\n ], RowNodeBlockLoader.prototype, \"setBeans\", null);\n RowNodeBlockLoader = RowNodeBlockLoader_1 = __decorate$14([\n Bean('rowNodeBlockLoader')\n ], RowNodeBlockLoader);\n return RowNodeBlockLoader;\n}(BeanStub));\n\nvar __extends$17 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$13 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PaginationProxy = /** @class */ (function (_super) {\n __extends$17(PaginationProxy, _super);\n function PaginationProxy() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.currentPage = 0;\n _this.topDisplayedRowIndex = 0;\n _this.bottomDisplayedRowIndex = 0;\n _this.pixelOffset = 0;\n _this.masterRowCount = 0;\n return _this;\n }\n PaginationProxy.prototype.postConstruct = function () {\n this.active = this.gridOptionsService.is('pagination');\n this.paginateChildRows = this.isPaginateChildRows();\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, this.onModelUpdated.bind(this));\n this.addManagedPropertyListener('pagination', this.onPaginationPageSizeChanged.bind(this));\n this.addManagedPropertyListener('paginationPageSize', this.onPaginationPageSizeChanged.bind(this));\n this.onModelUpdated();\n };\n PaginationProxy.prototype.ensureRowHeightsValid = function (startPixel, endPixel, startLimitIndex, endLimitIndex) {\n var res = this.rowModel.ensureRowHeightsValid(startPixel, endPixel, this.getPageFirstRow(), this.getPageLastRow());\n if (res) {\n this.calculatePages();\n }\n return res;\n };\n PaginationProxy.prototype.isPaginateChildRows = function () {\n var shouldPaginate = this.gridOptionsService.is('groupRemoveSingleChildren') || this.gridOptionsService.is('groupRemoveLowestSingleChildren');\n if (shouldPaginate) {\n return true;\n }\n return this.gridOptionsService.is('paginateChildRows');\n };\n PaginationProxy.prototype.onModelUpdated = function (modelUpdatedEvent) {\n this.calculatePages();\n var paginationChangedEvent = {\n type: Events.EVENT_PAGINATION_CHANGED,\n animate: modelUpdatedEvent ? modelUpdatedEvent.animate : false,\n newData: modelUpdatedEvent ? modelUpdatedEvent.newData : false,\n newPage: modelUpdatedEvent ? modelUpdatedEvent.newPage : false,\n keepRenderedRows: modelUpdatedEvent ? modelUpdatedEvent.keepRenderedRows : false\n };\n this.eventService.dispatchEvent(paginationChangedEvent);\n };\n PaginationProxy.prototype.onPaginationPageSizeChanged = function () {\n this.active = this.gridOptionsService.is('pagination');\n this.calculatePages();\n var paginationChangedEvent = {\n type: Events.EVENT_PAGINATION_CHANGED,\n animate: false,\n newData: false,\n newPage: false,\n // important to keep rendered rows, otherwise every time grid is resized,\n // we would destroy all the rows.\n keepRenderedRows: true\n };\n this.eventService.dispatchEvent(paginationChangedEvent);\n };\n PaginationProxy.prototype.goToPage = function (page) {\n if (!this.active || this.currentPage === page || typeof this.currentPage !== 'number') {\n return;\n }\n this.currentPage = page;\n var event = {\n type: Events.EVENT_MODEL_UPDATED,\n animate: false,\n keepRenderedRows: false,\n newData: false,\n newPage: true\n };\n this.onModelUpdated(event);\n };\n PaginationProxy.prototype.getPixelOffset = function () {\n return this.pixelOffset;\n };\n PaginationProxy.prototype.getRow = function (index) {\n return this.rowModel.getRow(index);\n };\n PaginationProxy.prototype.getRowNode = function (id) {\n return this.rowModel.getRowNode(id);\n };\n PaginationProxy.prototype.getRowIndexAtPixel = function (pixel) {\n return this.rowModel.getRowIndexAtPixel(pixel);\n };\n PaginationProxy.prototype.getCurrentPageHeight = function () {\n if (missing(this.topRowBounds) || missing(this.bottomRowBounds)) {\n return 0;\n }\n return Math.max(this.bottomRowBounds.rowTop + this.bottomRowBounds.rowHeight - this.topRowBounds.rowTop, 0);\n };\n PaginationProxy.prototype.getCurrentPagePixelRange = function () {\n var pageFirstPixel = this.topRowBounds ? this.topRowBounds.rowTop : 0;\n var pageLastPixel = this.bottomRowBounds ? this.bottomRowBounds.rowTop + this.bottomRowBounds.rowHeight : 0;\n return { pageFirstPixel: pageFirstPixel, pageLastPixel: pageLastPixel };\n };\n PaginationProxy.prototype.isRowPresent = function (rowNode) {\n if (!this.rowModel.isRowPresent(rowNode)) {\n return false;\n }\n var nodeIsInPage = rowNode.rowIndex >= this.topDisplayedRowIndex && rowNode.rowIndex <= this.bottomDisplayedRowIndex;\n return nodeIsInPage;\n };\n PaginationProxy.prototype.isEmpty = function () {\n return this.rowModel.isEmpty();\n };\n PaginationProxy.prototype.isRowsToRender = function () {\n return this.rowModel.isRowsToRender();\n };\n PaginationProxy.prototype.forEachNode = function (callback) {\n return this.rowModel.forEachNode(callback);\n };\n PaginationProxy.prototype.forEachNodeOnPage = function (callback) {\n var firstRow = this.getPageFirstRow();\n var lastRow = this.getPageLastRow();\n for (var i = firstRow; i <= lastRow; i++) {\n var node = this.getRow(i);\n if (node) {\n callback(node);\n }\n }\n };\n PaginationProxy.prototype.getType = function () {\n return this.rowModel.getType();\n };\n PaginationProxy.prototype.getRowBounds = function (index) {\n var res = this.rowModel.getRowBounds(index);\n res.rowIndex = index;\n return res;\n };\n PaginationProxy.prototype.getPageFirstRow = function () {\n return this.topRowBounds ? this.topRowBounds.rowIndex : -1;\n };\n PaginationProxy.prototype.getPageLastRow = function () {\n return this.bottomRowBounds ? this.bottomRowBounds.rowIndex : -1;\n };\n PaginationProxy.prototype.getRowCount = function () {\n return this.rowModel.getRowCount();\n };\n PaginationProxy.prototype.getPageForIndex = function (index) {\n return Math.floor(index / this.pageSize);\n };\n PaginationProxy.prototype.goToPageWithIndex = function (index) {\n if (!this.active) {\n return;\n }\n var pageNumber = this.getPageForIndex(index);\n this.goToPage(pageNumber);\n };\n PaginationProxy.prototype.isRowInPage = function (row) {\n if (!this.active) {\n return true;\n }\n var rowPage = this.getPageForIndex(row.rowIndex);\n return rowPage === this.currentPage;\n };\n PaginationProxy.prototype.isLastPageFound = function () {\n return this.rowModel.isLastRowIndexKnown();\n };\n PaginationProxy.prototype.getCurrentPage = function () {\n return this.currentPage;\n };\n PaginationProxy.prototype.goToNextPage = function () {\n this.goToPage(this.currentPage + 1);\n };\n PaginationProxy.prototype.goToPreviousPage = function () {\n this.goToPage(this.currentPage - 1);\n };\n PaginationProxy.prototype.goToFirstPage = function () {\n this.goToPage(0);\n };\n PaginationProxy.prototype.goToLastPage = function () {\n var rowCount = this.rowModel.getRowCount();\n var lastPage = Math.floor(rowCount / this.pageSize);\n this.goToPage(lastPage);\n };\n PaginationProxy.prototype.getPageSize = function () {\n return this.pageSize;\n };\n PaginationProxy.prototype.getTotalPages = function () {\n return this.totalPages;\n };\n PaginationProxy.prototype.setPageSize = function () {\n // show put this into super class\n this.pageSize = this.gridOptionsService.getNum('paginationPageSize');\n if (this.pageSize == null || this.pageSize < 1) {\n this.pageSize = 100;\n }\n };\n PaginationProxy.prototype.calculatePages = function () {\n if (this.active) {\n this.setPageSize();\n if (this.paginateChildRows) {\n this.calculatePagesAllRows();\n }\n else {\n this.calculatePagesMasterRowsOnly();\n }\n }\n else {\n this.calculatedPagesNotActive();\n }\n this.topRowBounds = this.rowModel.getRowBounds(this.topDisplayedRowIndex);\n if (this.topRowBounds) {\n this.topRowBounds.rowIndex = this.topDisplayedRowIndex;\n }\n this.bottomRowBounds = this.rowModel.getRowBounds(this.bottomDisplayedRowIndex);\n if (this.bottomRowBounds) {\n this.bottomRowBounds.rowIndex = this.bottomDisplayedRowIndex;\n }\n this.setPixelOffset(exists(this.topRowBounds) ? this.topRowBounds.rowTop : 0);\n };\n PaginationProxy.prototype.setPixelOffset = function (value) {\n if (this.pixelOffset === value) {\n return;\n }\n this.pixelOffset = value;\n this.eventService.dispatchEvent({ type: Events.EVENT_PAGINATION_PIXEL_OFFSET_CHANGED });\n };\n PaginationProxy.prototype.setZeroRows = function () {\n this.masterRowCount = 0;\n this.topDisplayedRowIndex = 0;\n this.bottomDisplayedRowIndex = -1;\n this.currentPage = 0;\n this.totalPages = 0;\n };\n PaginationProxy.prototype.adjustCurrentPageIfInvalid = function () {\n if (this.currentPage >= this.totalPages) {\n this.currentPage = this.totalPages - 1;\n }\n if (!isFinite(this.currentPage) || isNaN(this.currentPage) || this.currentPage < 0) {\n this.currentPage = 0;\n }\n };\n PaginationProxy.prototype.calculatePagesMasterRowsOnly = function () {\n // const csrm = this.rowModel;\n // const rootNode = csrm.getRootNode();\n // const masterRows = rootNode.childrenAfterSort;\n this.masterRowCount = this.rowModel.getTopLevelRowCount();\n // we say <=0 (rather than =0) as viewport returns -1 when no rows\n if (this.masterRowCount <= 0) {\n this.setZeroRows();\n return;\n }\n var masterLastRowIndex = this.masterRowCount - 1;\n this.totalPages = Math.floor((masterLastRowIndex) / this.pageSize) + 1;\n this.adjustCurrentPageIfInvalid();\n var masterPageStartIndex = this.pageSize * this.currentPage;\n var masterPageEndIndex = (this.pageSize * (this.currentPage + 1)) - 1;\n if (masterPageEndIndex > masterLastRowIndex) {\n masterPageEndIndex = masterLastRowIndex;\n }\n this.topDisplayedRowIndex = this.rowModel.getTopLevelRowDisplayedIndex(masterPageStartIndex);\n // masterRows[masterPageStartIndex].rowIndex;\n if (masterPageEndIndex === masterLastRowIndex) {\n // if showing the last master row, then we want to show the very last row of the model\n this.bottomDisplayedRowIndex = this.rowModel.getRowCount() - 1;\n }\n else {\n var firstIndexNotToShow = this.rowModel.getTopLevelRowDisplayedIndex(masterPageEndIndex + 1);\n //masterRows[masterPageEndIndex + 1].rowIndex;\n // this gets the index of the last child - eg current row is open, we want to display all children,\n // the index of the last child is one less than the index of the next parent row.\n this.bottomDisplayedRowIndex = firstIndexNotToShow - 1;\n }\n };\n PaginationProxy.prototype.getMasterRowCount = function () {\n return this.masterRowCount;\n };\n PaginationProxy.prototype.calculatePagesAllRows = function () {\n this.masterRowCount = this.rowModel.getRowCount();\n if (this.masterRowCount === 0) {\n this.setZeroRows();\n return;\n }\n var maxRowIndex = this.masterRowCount - 1;\n this.totalPages = Math.floor((maxRowIndex) / this.pageSize) + 1;\n this.adjustCurrentPageIfInvalid();\n this.topDisplayedRowIndex = this.pageSize * this.currentPage;\n this.bottomDisplayedRowIndex = (this.pageSize * (this.currentPage + 1)) - 1;\n if (this.bottomDisplayedRowIndex > maxRowIndex) {\n this.bottomDisplayedRowIndex = maxRowIndex;\n }\n };\n PaginationProxy.prototype.calculatedPagesNotActive = function () {\n this.pageSize = this.rowModel.getRowCount();\n this.totalPages = 1;\n this.currentPage = 0;\n this.topDisplayedRowIndex = 0;\n this.bottomDisplayedRowIndex = this.rowModel.getRowCount() - 1;\n };\n __decorate$13([\n Autowired('rowModel')\n ], PaginationProxy.prototype, \"rowModel\", void 0);\n __decorate$13([\n PostConstruct\n ], PaginationProxy.prototype, \"postConstruct\", null);\n PaginationProxy = __decorate$13([\n Bean('paginationProxy')\n ], PaginationProxy);\n return PaginationProxy;\n}(BeanStub));\n\nvar __extends$16 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$12 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar StylingService = /** @class */ (function (_super) {\n __extends$16(StylingService, _super);\n function StylingService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StylingService.prototype.processAllCellClasses = function (colDef, params, onApplicableClass, onNotApplicableClass) {\n this.processClassRules(colDef.cellClassRules, params, onApplicableClass, onNotApplicableClass);\n this.processStaticCellClasses(colDef, params, onApplicableClass);\n };\n StylingService.prototype.processClassRules = function (classRules, params, onApplicableClass, onNotApplicableClass) {\n if (classRules == null) {\n return;\n }\n var classNames = Object.keys(classRules);\n var classesToApply = {};\n var classesToRemove = {};\n var _loop_1 = function (i) {\n var className = classNames[i];\n var rule = classRules[className];\n var resultOfRule;\n if (typeof rule === 'string') {\n resultOfRule = this_1.expressionService.evaluate(rule, params);\n }\n else if (typeof rule === 'function') {\n resultOfRule = rule(params);\n }\n // in case className = 'my-class1 my-class2', we need to split into individual class names\n className.split(' ').forEach(function (singleClass) {\n if (singleClass == null || singleClass.trim() == '') {\n return;\n }\n resultOfRule ? classesToApply[singleClass] = true : classesToRemove[singleClass] = true;\n });\n };\n var this_1 = this;\n for (var i = 0; i < classNames.length; i++) {\n _loop_1(i);\n }\n // we remove all classes first, then add all classes second,\n // in case a class appears in more than one rule, this means it will be added\n // if appears in at least one truthy rule\n if (onNotApplicableClass) {\n Object.keys(classesToRemove).forEach(onNotApplicableClass);\n }\n Object.keys(classesToApply).forEach(onApplicableClass);\n };\n StylingService.prototype.getStaticCellClasses = function (colDef, params) {\n var cellClass = colDef.cellClass;\n if (!cellClass) {\n return [];\n }\n var classOrClasses;\n if (typeof cellClass === 'function') {\n var cellClassFunc = cellClass;\n classOrClasses = cellClassFunc(params);\n }\n else {\n classOrClasses = cellClass;\n }\n if (typeof classOrClasses === 'string') {\n classOrClasses = [classOrClasses];\n }\n return classOrClasses || [];\n };\n StylingService.prototype.processStaticCellClasses = function (colDef, params, onApplicableClass) {\n var classOrClasses = this.getStaticCellClasses(colDef, params);\n classOrClasses.forEach(function (cssClassItem) {\n onApplicableClass(cssClassItem);\n });\n };\n __decorate$12([\n Autowired('expressionService')\n ], StylingService.prototype, \"expressionService\", void 0);\n StylingService = __decorate$12([\n Bean('stylingService')\n ], StylingService);\n return StylingService;\n}(BeanStub));\n\nvar __extends$15 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgToggleButton = /** @class */ (function (_super) {\n __extends$15(AgToggleButton, _super);\n function AgToggleButton(config) {\n return _super.call(this, config, 'ag-toggle-button') || this;\n }\n AgToggleButton.prototype.setValue = function (value, silent) {\n _super.prototype.setValue.call(this, value, silent);\n this.addOrRemoveCssClass('ag-selected', this.getValue());\n return this;\n };\n return AgToggleButton;\n}(AgCheckbox));\n\nvar __extends$14 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgInputTextArea = /** @class */ (function (_super) {\n __extends$14(AgInputTextArea, _super);\n function AgInputTextArea(config) {\n return _super.call(this, config, 'ag-text-area', null, 'textarea') || this;\n }\n AgInputTextArea.prototype.setValue = function (value, silent) {\n var ret = _super.prototype.setValue.call(this, value, silent);\n this.eInput.value = value;\n return ret;\n };\n AgInputTextArea.prototype.setCols = function (cols) {\n this.eInput.cols = cols;\n return this;\n };\n AgInputTextArea.prototype.setRows = function (rows) {\n this.eInput.rows = rows;\n return this;\n };\n return AgInputTextArea;\n}(AgAbstractInputField));\n\nvar __extends$13 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgInputDateField = /** @class */ (function (_super) {\n __extends$13(AgInputDateField, _super);\n function AgInputDateField(config) {\n return _super.call(this, config, 'ag-date-field', 'date') || this;\n }\n AgInputDateField.prototype.postConstruct = function () {\n var _this = this;\n _super.prototype.postConstruct.call(this);\n this.addManagedListener(this.eInput, 'wheel', this.onWheel.bind(this));\n // ensures that the input element is focussed when a clear button is clicked,\n // unless using safari as there is no clear button and focus does not work properly\n var usingSafari = isBrowserSafari();\n this.addManagedListener(this.eInput, 'mousedown', function () {\n if (_this.isDisabled() || usingSafari) {\n return;\n }\n _this.eInput.focus();\n });\n this.eInput.step = 'any';\n };\n AgInputDateField.prototype.onWheel = function (e) {\n // Prevent default scroll events from incrementing / decrementing the input, since its inconsistent between browsers\n if (document.activeElement === this.eInput) {\n e.preventDefault();\n }\n };\n AgInputDateField.prototype.setMin = function (minDate) {\n var _a;\n var min = minDate instanceof Date ? (_a = serialiseDate(minDate !== null && minDate !== void 0 ? minDate : null, false)) !== null && _a !== void 0 ? _a : undefined : minDate;\n if (this.min === min) {\n return this;\n }\n this.min = min;\n addOrRemoveAttribute(this.eInput, 'min', min);\n return this;\n };\n AgInputDateField.prototype.setMax = function (maxDate) {\n var _a;\n var max = maxDate instanceof Date ? (_a = serialiseDate(maxDate !== null && maxDate !== void 0 ? maxDate : null, false)) !== null && _a !== void 0 ? _a : undefined : maxDate;\n if (this.max === max) {\n return this;\n }\n this.max = max;\n addOrRemoveAttribute(this.eInput, 'max', max);\n return this;\n };\n AgInputDateField.prototype.setStep = function (step) {\n if (this.step === step) {\n return this;\n }\n this.step = step;\n addOrRemoveAttribute(this.eInput, 'step', step);\n return this;\n };\n AgInputDateField.prototype.getDate = function () {\n var _a;\n if (!this.eInput.validity.valid) {\n return undefined;\n }\n return (_a = parseDateTimeFromString(this.getValue())) !== null && _a !== void 0 ? _a : undefined;\n };\n AgInputDateField.prototype.setDate = function (date, silent) {\n this.setValue(serialiseDate(date !== null && date !== void 0 ? date : null, false), silent);\n };\n return AgInputDateField;\n}(AgInputTextField));\n\nvar __extends$12 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgInputRange = /** @class */ (function (_super) {\n __extends$12(AgInputRange, _super);\n function AgInputRange(config) {\n return _super.call(this, config, 'ag-range-field', 'range') || this;\n }\n AgInputRange.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n var _a = this.config, min = _a.min, max = _a.max, step = _a.step;\n if (min != null) {\n this.setMinValue(min);\n }\n if (max != null) {\n this.setMaxValue(max);\n }\n this.setStep(step || 1);\n };\n AgInputRange.prototype.addInputListeners = function () {\n var _this = this;\n this.addManagedListener(this.eInput, 'input', function (e) {\n var value = e.target.value;\n _this.setValue(value);\n });\n };\n AgInputRange.prototype.setMinValue = function (value) {\n this.min = value;\n this.eInput.setAttribute('min', value.toString());\n return this;\n };\n AgInputRange.prototype.setMaxValue = function (value) {\n this.max = value;\n this.eInput.setAttribute('max', value.toString());\n return this;\n };\n AgInputRange.prototype.setStep = function (value) {\n this.eInput.setAttribute('step', value.toString());\n return this;\n };\n AgInputRange.prototype.setValue = function (value, silent) {\n if (this.min != null) {\n value = Math.max(parseFloat(value), this.min).toString();\n }\n if (this.max != null) {\n value = Math.min(parseFloat(value), this.max).toString();\n }\n var ret = _super.prototype.setValue.call(this, value, silent);\n this.eInput.value = value;\n return ret;\n };\n return AgInputRange;\n}(AgAbstractInputField));\n\nvar __extends$11 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$11 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RichSelectRow = /** @class */ (function (_super) {\n __extends$11(RichSelectRow, _super);\n function RichSelectRow(params, wrapperEl) {\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.params = params;\n _this.wrapperEl = wrapperEl;\n return _this;\n }\n RichSelectRow.prototype.postConstruct = function () {\n this.addManagedListener(this.getGui(), 'mouseup', this.onMouseUp.bind(this));\n };\n RichSelectRow.prototype.setState = function (value) {\n var formattedValue = '';\n if (this.params.valueFormatter) {\n formattedValue = this.params.valueFormatter(value);\n }\n var rendererSuccessful = this.populateWithRenderer(value, formattedValue);\n if (!rendererSuccessful) {\n this.populateWithoutRenderer(value, formattedValue);\n }\n this.value = value;\n };\n RichSelectRow.prototype.highlightString = function (matchString) {\n var parsedValue = this.parsedValue;\n if (this.params.cellRenderer || !exists(parsedValue)) {\n return;\n }\n if (exists(matchString)) {\n var index = parsedValue === null || parsedValue === void 0 ? void 0 : parsedValue.toLocaleLowerCase().indexOf(matchString.toLocaleLowerCase());\n if (index >= 0) {\n var highlightEndIndex = index + matchString.length;\n var startPart = escapeString(parsedValue.slice(0, index), true);\n var highlightedPart = escapeString(parsedValue.slice(index, highlightEndIndex), true);\n var endPart = escapeString(parsedValue.slice(highlightEndIndex));\n this.renderValueWithoutRenderer(startPart + \"\" + highlightedPart + \"\" + endPart);\n }\n }\n else {\n this.renderValueWithoutRenderer(parsedValue);\n }\n };\n RichSelectRow.prototype.updateHighlighted = function (highlighted) {\n var _a;\n var eGui = this.getGui();\n var parentId = \"ag-rich-select-row-\" + this.getCompId();\n (_a = eGui.parentElement) === null || _a === void 0 ? void 0 : _a.setAttribute('id', parentId);\n if (highlighted) {\n var parentAriaEl = this.getParentComponent().getAriaElement();\n setAriaActiveDescendant(parentAriaEl, parentId);\n this.wrapperEl.setAttribute('data-active-option', parentId);\n }\n setAriaSelected(eGui.parentElement, highlighted);\n this.addOrRemoveCssClass('ag-rich-select-row-selected', highlighted);\n };\n RichSelectRow.prototype.populateWithoutRenderer = function (value, valueFormatted) {\n var eDocument = this.gridOptionsService.getDocument();\n var eGui = this.getGui();\n var span = eDocument.createElement('span');\n span.style.overflow = 'hidden';\n span.style.textOverflow = 'ellipsis';\n var parsedValue = escapeString(exists(valueFormatted) ? valueFormatted : value, true);\n this.parsedValue = exists(parsedValue) ? parsedValue : null;\n eGui.appendChild(span);\n this.renderValueWithoutRenderer(parsedValue);\n };\n RichSelectRow.prototype.renderValueWithoutRenderer = function (value) {\n var span = this.getGui().querySelector('span');\n if (!span) {\n return;\n }\n span.innerHTML = exists(value) ? value : ' ';\n };\n RichSelectRow.prototype.populateWithRenderer = function (value, valueFormatted) {\n var _this = this;\n // bad coder here - we are not populating all values of the cellRendererParams\n var cellRendererPromise;\n var userCompDetails;\n if (this.params.cellRenderer) {\n userCompDetails = this.userComponentFactory.getCellRendererDetails(this.params, {\n value: value,\n valueFormatted: valueFormatted,\n api: this.gridOptionsService.api\n });\n }\n if (userCompDetails) {\n cellRendererPromise = userCompDetails.newAgStackInstance();\n }\n if (cellRendererPromise) {\n bindCellRendererToHtmlElement(cellRendererPromise, this.getGui());\n }\n if (cellRendererPromise) {\n cellRendererPromise.then(function (childComponent) {\n _this.addDestroyFunc(function () {\n _this.getContext().destroyBean(childComponent);\n });\n });\n return true;\n }\n return false;\n };\n RichSelectRow.prototype.onMouseUp = function () {\n var parent = this.getParentComponent();\n var event = {\n type: Events.EVENT_FIELD_PICKER_VALUE_SELECTED,\n fromEnterKey: false,\n value: this.value\n };\n parent === null || parent === void 0 ? void 0 : parent.dispatchEvent(event);\n };\n __decorate$11([\n Autowired('userComponentFactory')\n ], RichSelectRow.prototype, \"userComponentFactory\", void 0);\n __decorate$11([\n PostConstruct\n ], RichSelectRow.prototype, \"postConstruct\", null);\n return RichSelectRow;\n}(Component));\n\nvar __extends$10 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read$c = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$a = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar TabGuardComp = /** @class */ (function (_super) {\n __extends$10(TabGuardComp, _super);\n function TabGuardComp() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TabGuardComp.prototype.initialiseTabGuard = function (params) {\n this.eTopGuard = this.createTabGuard('top');\n this.eBottomGuard = this.createTabGuard('bottom');\n this.eFocusableElement = this.getFocusableElement();\n var tabGuards = [this.eTopGuard, this.eBottomGuard];\n var compProxy = {\n setTabIndex: function (tabIndex) {\n tabGuards.forEach(function (tabGuard) { return tabIndex != null ? tabGuard.setAttribute('tabindex', tabIndex) : tabGuard.removeAttribute('tabindex'); });\n }\n };\n this.addTabGuards(this.eTopGuard, this.eBottomGuard);\n this.tabGuardCtrl = this.createManagedBean(new TabGuardCtrl({\n comp: compProxy,\n eTopGuard: this.eTopGuard,\n eBottomGuard: this.eBottomGuard,\n eFocusableElement: this.eFocusableElement,\n onFocusIn: params.onFocusIn,\n onFocusOut: params.onFocusOut,\n focusInnerElement: params.focusInnerElement,\n handleKeyDown: params.handleKeyDown,\n onTabKeyDown: params.onTabKeyDown,\n shouldStopEventPropagation: params.shouldStopEventPropagation\n }));\n };\n TabGuardComp.prototype.createTabGuard = function (side) {\n var tabGuard = document.createElement('div');\n var cls = side === 'top' ? TabGuardClassNames.TAB_GUARD_TOP : TabGuardClassNames.TAB_GUARD_BOTTOM;\n tabGuard.classList.add(TabGuardClassNames.TAB_GUARD, cls);\n setAriaRole(tabGuard, 'presentation');\n return tabGuard;\n };\n TabGuardComp.prototype.addTabGuards = function (topTabGuard, bottomTabGuard) {\n this.eFocusableElement.insertAdjacentElement('afterbegin', topTabGuard);\n this.eFocusableElement.insertAdjacentElement('beforeend', bottomTabGuard);\n };\n TabGuardComp.prototype.removeAllChildrenExceptTabGuards = function () {\n var tabGuards = [this.eTopGuard, this.eBottomGuard];\n clearElement(this.getFocusableElement());\n this.addTabGuards.apply(this, __spreadArray$a([], __read$c(tabGuards)));\n };\n TabGuardComp.prototype.forceFocusOutOfContainer = function (up) {\n if (up === void 0) { up = false; }\n this.tabGuardCtrl.forceFocusOutOfContainer(up);\n };\n TabGuardComp.prototype.appendChild = function (newChild, container) {\n if (!isNodeOrElement(newChild)) {\n newChild = newChild.getGui();\n }\n var bottomTabGuard = this.eBottomGuard;\n if (bottomTabGuard) {\n bottomTabGuard.insertAdjacentElement('beforebegin', newChild);\n }\n else {\n _super.prototype.appendChild.call(this, newChild, container);\n }\n };\n return TabGuardComp;\n}(Component));\n\nvar __extends$$ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$10 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar VirtualList = /** @class */ (function (_super) {\n __extends$$(VirtualList, _super);\n function VirtualList(params) {\n var _this = _super.call(this, VirtualList.getTemplate((params === null || params === void 0 ? void 0 : params.cssIdentifier) || 'default')) || this;\n _this.renderedRows = new Map();\n _this.rowHeight = 20;\n var _a = params || {}, _b = _a.cssIdentifier, cssIdentifier = _b === void 0 ? 'default' : _b, _c = _a.ariaRole, ariaRole = _c === void 0 ? 'listbox' : _c, listName = _a.listName;\n _this.cssIdentifier = cssIdentifier;\n _this.ariaRole = ariaRole;\n _this.listName = listName;\n return _this;\n }\n VirtualList.prototype.postConstruct = function () {\n var _this = this;\n this.addScrollListener();\n this.rowHeight = this.getItemHeight();\n this.addResizeObserver();\n this.initialiseTabGuard({\n onFocusIn: function (e) { return _this.onFocusIn(e); },\n onFocusOut: function (e) { return _this.onFocusOut(e); },\n focusInnerElement: function (fromBottom) { return _this.focusInnerElement(fromBottom); },\n onTabKeyDown: function (e) { return _this.onTabKeyDown(e); },\n handleKeyDown: function (e) { return _this.handleKeyDown(e); }\n });\n this.setAriaProperties();\n this.addManagedListener(this.eventService, Events.EVENT_GRID_STYLES_CHANGED, this.onGridStylesChanged.bind(this));\n };\n VirtualList.prototype.onGridStylesChanged = function () {\n this.rowHeight = this.getItemHeight();\n this.refresh();\n };\n VirtualList.prototype.setAriaProperties = function () {\n var translate = this.localeService.getLocaleTextFunc();\n var listName = translate('ariaDefaultListName', this.listName || 'List');\n var ariaEl = this.eContainer;\n setAriaRole(ariaEl, this.ariaRole);\n setAriaLabel(ariaEl, listName);\n };\n VirtualList.prototype.addResizeObserver = function () {\n var _this = this;\n // do this in an animation frame to prevent loops\n var listener = function () { return _this.animationFrameService.requestAnimationFrame(function () { return _this.drawVirtualRows(); }); };\n var destroyObserver = this.resizeObserverService.observeResize(this.getGui(), listener);\n this.addDestroyFunc(destroyObserver);\n };\n VirtualList.prototype.focusInnerElement = function (fromBottom) {\n this.focusRow(fromBottom ? this.model.getRowCount() - 1 : 0);\n };\n VirtualList.prototype.onFocusIn = function (e) {\n var target = e.target;\n if (target.classList.contains('ag-virtual-list-item')) {\n this.lastFocusedRowIndex = getAriaPosInSet(target) - 1;\n }\n return false;\n };\n VirtualList.prototype.onFocusOut = function (e) {\n if (!this.getFocusableElement().contains(e.relatedTarget)) {\n this.lastFocusedRowIndex = null;\n }\n return false;\n };\n VirtualList.prototype.handleKeyDown = function (e) {\n switch (e.key) {\n case KeyCode.UP:\n case KeyCode.DOWN:\n if (this.navigate(e.key === KeyCode.UP)) {\n e.preventDefault();\n }\n break;\n }\n };\n VirtualList.prototype.onTabKeyDown = function (e) {\n if (this.navigate(e.shiftKey)) {\n e.preventDefault();\n }\n else {\n stopPropagationForAgGrid(e);\n this.forceFocusOutOfContainer(e.shiftKey);\n }\n };\n VirtualList.prototype.navigate = function (up) {\n if (this.lastFocusedRowIndex == null) {\n return false;\n }\n var nextRow = this.lastFocusedRowIndex + (up ? -1 : 1);\n if (nextRow < 0 || nextRow >= this.model.getRowCount()) {\n return false;\n }\n this.focusRow(nextRow);\n return true;\n };\n VirtualList.prototype.getLastFocusedRow = function () {\n return this.lastFocusedRowIndex;\n };\n VirtualList.prototype.focusRow = function (rowNumber) {\n var _this = this;\n this.ensureIndexVisible(rowNumber);\n window.setTimeout(function () {\n if (!_this.isAlive()) {\n return;\n }\n var renderedRow = _this.renderedRows.get(rowNumber);\n if (renderedRow) {\n renderedRow.eDiv.focus();\n }\n }, 10);\n };\n VirtualList.prototype.getComponentAt = function (rowIndex) {\n var comp = this.renderedRows.get(rowIndex);\n return comp && comp.rowComponent;\n };\n VirtualList.prototype.forEachRenderedRow = function (func) {\n this.renderedRows.forEach(function (value, key) { return func(value.rowComponent, key); });\n };\n VirtualList.getTemplate = function (cssIdentifier) {\n return ( /* html */\"
\\n
\\n
\");\n };\n VirtualList.prototype.getItemHeight = function () {\n return this.environment.getListItemHeight();\n };\n /**\n * Returns true if the view had to be scrolled, otherwise, false.\n */\n VirtualList.prototype.ensureIndexVisible = function (index, scrollPartialIntoView) {\n if (scrollPartialIntoView === void 0) { scrollPartialIntoView = true; }\n var lastRow = this.model.getRowCount();\n if (typeof index !== 'number' || index < 0 || index >= lastRow) {\n console.warn('AG Grid: invalid row index for ensureIndexVisible: ' + index);\n return false;\n }\n var rowTopPixel = index * this.rowHeight;\n var rowBottomPixel = rowTopPixel + this.rowHeight;\n var eGui = this.getGui();\n var viewportTopPixel = eGui.scrollTop;\n var viewportHeight = eGui.offsetHeight;\n var viewportBottomPixel = viewportTopPixel + viewportHeight;\n var diff = scrollPartialIntoView ? 0 : this.rowHeight;\n var viewportScrolledPastRow = viewportTopPixel > rowTopPixel + diff;\n var viewportScrolledBeforeRow = viewportBottomPixel < rowBottomPixel - diff;\n if (viewportScrolledPastRow) {\n // if row is before, scroll up with row at top\n eGui.scrollTop = rowTopPixel;\n return true;\n }\n if (viewportScrolledBeforeRow) {\n // if row is below, scroll down with row at bottom\n var newScrollPosition = rowBottomPixel - viewportHeight;\n eGui.scrollTop = newScrollPosition;\n return true;\n }\n return false;\n };\n VirtualList.prototype.setComponentCreator = function (componentCreator) {\n this.componentCreator = componentCreator;\n };\n VirtualList.prototype.setComponentUpdater = function (componentUpdater) {\n this.componentUpdater = componentUpdater;\n };\n VirtualList.prototype.getRowHeight = function () {\n return this.rowHeight;\n };\n VirtualList.prototype.getScrollTop = function () {\n return this.getGui().scrollTop;\n };\n VirtualList.prototype.setRowHeight = function (rowHeight) {\n this.rowHeight = rowHeight;\n this.refresh();\n };\n VirtualList.prototype.refresh = function (softRefresh) {\n var _this = this;\n if (this.model == null || !this.isAlive()) {\n return;\n }\n var rowCount = this.model.getRowCount();\n this.eContainer.style.height = rowCount * this.rowHeight + \"px\";\n // ensure height is applied before attempting to redraw rows\n waitUntil(function () { return _this.eContainer.clientHeight >= rowCount * _this.rowHeight; }, function () {\n if (!_this.isAlive()) {\n return;\n }\n if (_this.canSoftRefresh(softRefresh)) {\n _this.drawVirtualRows(true);\n }\n else {\n _this.clearVirtualRows();\n _this.drawVirtualRows();\n }\n });\n };\n VirtualList.prototype.canSoftRefresh = function (softRefresh) {\n return !!(softRefresh && this.renderedRows.size && typeof this.model.areRowsEqual === 'function' && this.componentUpdater);\n };\n VirtualList.prototype.clearVirtualRows = function () {\n var _this = this;\n this.renderedRows.forEach(function (_, rowIndex) { return _this.removeRow(rowIndex); });\n };\n VirtualList.prototype.drawVirtualRows = function (softRefresh) {\n if (!this.isAlive() || !this.model) {\n return;\n }\n var gui = this.getGui();\n var topPixel = gui.scrollTop;\n var bottomPixel = topPixel + gui.offsetHeight;\n var firstRow = Math.floor(topPixel / this.rowHeight);\n var lastRow = Math.floor(bottomPixel / this.rowHeight);\n this.ensureRowsRendered(firstRow, lastRow, softRefresh);\n };\n VirtualList.prototype.ensureRowsRendered = function (start, finish, softRefresh) {\n var _this = this;\n // remove any rows that are no longer required\n this.renderedRows.forEach(function (_, rowIndex) {\n if ((rowIndex < start || rowIndex > finish) && rowIndex !== _this.lastFocusedRowIndex) {\n _this.removeRow(rowIndex);\n }\n });\n if (softRefresh) {\n // refresh any existing rows\n this.refreshRows();\n }\n // insert any required new rows\n for (var rowIndex = start; rowIndex <= finish; rowIndex++) {\n if (this.renderedRows.has(rowIndex)) {\n continue;\n }\n // check this row actually exists (in case overflow buffer window exceeds real data)\n if (rowIndex < this.model.getRowCount()) {\n this.insertRow(rowIndex);\n }\n }\n };\n VirtualList.prototype.insertRow = function (rowIndex) {\n var _this = this;\n var value = this.model.getRow(rowIndex);\n var eDiv = document.createElement('div');\n eDiv.classList.add('ag-virtual-list-item', \"ag-\" + this.cssIdentifier + \"-virtual-list-item\");\n setAriaRole(eDiv, this.ariaRole === 'tree' ? 'treeitem' : 'option');\n setAriaSetSize(eDiv, this.model.getRowCount());\n setAriaPosInSet(eDiv, rowIndex + 1);\n eDiv.setAttribute('tabindex', '-1');\n if (typeof this.model.isRowSelected === 'function') {\n var isSelected = this.model.isRowSelected(rowIndex);\n setAriaSelected(eDiv, !!isSelected);\n setAriaChecked(eDiv, isSelected);\n }\n eDiv.style.height = this.rowHeight + \"px\";\n eDiv.style.top = this.rowHeight * rowIndex + \"px\";\n var rowComponent = this.componentCreator(value, eDiv);\n rowComponent.addGuiEventListener('focusin', function () { return _this.lastFocusedRowIndex = rowIndex; });\n eDiv.appendChild(rowComponent.getGui());\n // keep the DOM order consistent with the order of the rows\n if (this.renderedRows.has(rowIndex - 1)) {\n this.renderedRows.get(rowIndex - 1).eDiv.insertAdjacentElement('afterend', eDiv);\n }\n else if (this.renderedRows.has(rowIndex + 1)) {\n this.renderedRows.get(rowIndex + 1).eDiv.insertAdjacentElement('beforebegin', eDiv);\n }\n else {\n this.eContainer.appendChild(eDiv);\n }\n this.renderedRows.set(rowIndex, { rowComponent: rowComponent, eDiv: eDiv, value: value });\n };\n VirtualList.prototype.removeRow = function (rowIndex) {\n var component = this.renderedRows.get(rowIndex);\n this.eContainer.removeChild(component.eDiv);\n this.destroyBean(component.rowComponent);\n this.renderedRows.delete(rowIndex);\n };\n VirtualList.prototype.refreshRows = function () {\n var _this = this;\n var rowCount = this.model.getRowCount();\n this.renderedRows.forEach(function (row, rowIndex) {\n var _a, _b;\n if (rowIndex >= rowCount) {\n _this.removeRow(rowIndex);\n }\n else {\n var newValue = _this.model.getRow(rowIndex);\n if ((_b = (_a = _this.model).areRowsEqual) === null || _b === void 0 ? void 0 : _b.call(_a, row.value, newValue)) {\n _this.componentUpdater(newValue, row.rowComponent);\n }\n else {\n // to be replaced later\n _this.removeRow(rowIndex);\n }\n }\n });\n };\n VirtualList.prototype.addScrollListener = function () {\n var _this = this;\n this.addGuiEventListener('scroll', function () { return _this.drawVirtualRows(); }, { passive: true });\n };\n VirtualList.prototype.setModel = function (model) {\n this.model = model;\n };\n VirtualList.prototype.getAriaElement = function () {\n return this.eContainer;\n };\n VirtualList.prototype.destroy = function () {\n if (!this.isAlive()) {\n return;\n }\n this.clearVirtualRows();\n _super.prototype.destroy.call(this);\n };\n __decorate$10([\n Autowired('resizeObserverService')\n ], VirtualList.prototype, \"resizeObserverService\", void 0);\n __decorate$10([\n Autowired('animationFrameService')\n ], VirtualList.prototype, \"animationFrameService\", void 0);\n __decorate$10([\n RefSelector('eContainer')\n ], VirtualList.prototype, \"eContainer\", void 0);\n __decorate$10([\n PostConstruct\n ], VirtualList.prototype, \"postConstruct\", null);\n return VirtualList;\n}(TabGuardComp));\n\nvar __extends$_ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$6 = (undefined && undefined.__assign) || function () {\n __assign$6 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$6.apply(this, arguments);\n};\nvar __decorate$$ = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TEMPLATE = /* html */ \"\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\";\nvar AgRichSelect = /** @class */ (function (_super) {\n __extends$_(AgRichSelect, _super);\n function AgRichSelect(config) {\n var _a, _b;\n var _this = _super.call(this, __assign$6(__assign$6({ pickerAriaLabelKey: 'ariaLabelRichSelectField', pickerAriaLabelValue: 'Rich Select Field', pickerType: 'ag-list', className: 'ag-rich-select', pickerIcon: 'smallDown', ariaRole: 'combobox', template: (_a = config === null || config === void 0 ? void 0 : config.template) !== null && _a !== void 0 ? _a : TEMPLATE, modalPicker: false }, config), { \n // maxPickerHeight needs to be set after expanding `config`\n maxPickerHeight: (_b = config === null || config === void 0 ? void 0 : config.maxPickerHeight) !== null && _b !== void 0 ? _b : 'calc(var(--ag-row-height) * 6.5)' })) || this;\n _this.searchString = '';\n _this.highlightedItem = -1;\n _this.lastRowHovered = -1;\n _this.searchStringCreator = null;\n var _c = config || {}, cellRowHeight = _c.cellRowHeight, value = _c.value, valueList = _c.valueList, searchStringCreator = _c.searchStringCreator;\n if (cellRowHeight != null) {\n _this.cellRowHeight = cellRowHeight;\n }\n if (value != null) {\n _this.value = value;\n }\n if (valueList != null) {\n _this.values = valueList;\n }\n if (searchStringCreator) {\n _this.searchStringCreator = searchStringCreator;\n }\n return _this;\n }\n AgRichSelect.prototype.postConstruct = function () {\n var _this = this;\n var _a;\n _super.prototype.postConstruct.call(this);\n this.createLoadingElement();\n this.createListComponent();\n var _b = this.config, allowTyping = _b.allowTyping, placeholder = _b.placeholder;\n if (allowTyping) {\n this.eInput\n .setAutoComplete(false)\n .setInputPlaceholder(placeholder);\n this.eDisplayField.classList.add('ag-hidden');\n }\n else {\n this.eInput.setDisplayed(false);\n }\n this.eWrapper.tabIndex = (_a = this.gridOptionsService.getNum('tabIndex')) !== null && _a !== void 0 ? _a : 0;\n var _c = this.config.searchDebounceDelay, searchDebounceDelay = _c === void 0 ? 300 : _c;\n this.clearSearchString = debounce(this.clearSearchString, searchDebounceDelay);\n this.renderSelectedValue();\n if (allowTyping) {\n this.eInput.onValueChange(function (value) { return _this.searchTextFromString(value); });\n this.addManagedListener(this.eWrapper, 'focus', this.onWrapperFocus.bind(this));\n }\n this.addManagedListener(this.eWrapper, 'focusout', this.onWrapperFocusOut.bind(this));\n };\n AgRichSelect.prototype.createLoadingElement = function () {\n var eDocument = this.gridOptionsService.getDocument();\n var translate = this.localeService.getLocaleTextFunc();\n var el = eDocument.createElement('div');\n el.classList.add('ag-loading-text');\n el.innerText = translate('loadingOoo', 'Loading...');\n this.eLoading = el;\n };\n AgRichSelect.prototype.createListComponent = function () {\n var _this = this;\n this.listComponent = this.createBean(new VirtualList({ cssIdentifier: 'rich-select' }));\n this.listComponent.setComponentCreator(this.createRowComponent.bind(this));\n this.listComponent.setParentComponent(this);\n this.addManagedListener(this.listComponent, Events.EVENT_FIELD_PICKER_VALUE_SELECTED, function (e) {\n _this.onListValueSelected(e.value, e.fromEnterKey);\n });\n var cellRowHeight = this.cellRowHeight;\n if (cellRowHeight) {\n this.listComponent.setRowHeight(cellRowHeight);\n }\n var eListGui = this.listComponent.getGui();\n var eListAriaEl = this.listComponent.getAriaElement();\n this.addManagedListener(eListGui, 'mousemove', this.onPickerMouseMove.bind(this));\n this.addManagedListener(eListGui, 'mousedown', function (e) { return e.preventDefault(); });\n eListGui.classList.add('ag-rich-select-list');\n var listId = \"ag-rich-select-list-\" + this.listComponent.getCompId();\n eListAriaEl.setAttribute('id', listId);\n var translate = this.localeService.getLocaleTextFunc();\n var ariaLabel = translate(this.config.pickerAriaLabelKey, this.config.pickerAriaLabelValue);\n setAriaLabel(eListAriaEl, ariaLabel);\n setAriaControls(this.eWrapper, eListAriaEl);\n };\n AgRichSelect.prototype.renderSelectedValue = function () {\n var _this = this;\n var _a = this, value = _a.value, eDisplayField = _a.eDisplayField, config = _a.config;\n var valueFormatted = this.config.valueFormatter ? this.config.valueFormatter(value) : value;\n if (config.allowTyping) {\n this.eInput.setValue(valueFormatted);\n return;\n }\n var userCompDetails;\n if (config.cellRenderer) {\n userCompDetails = this.userComponentFactory.getCellRendererDetails(this.config, {\n value: value,\n valueFormatted: valueFormatted,\n api: this.gridOptionsService.api\n });\n }\n var userCompDetailsPromise;\n if (userCompDetails) {\n userCompDetailsPromise = userCompDetails.newAgStackInstance();\n }\n if (userCompDetailsPromise) {\n clearElement(eDisplayField);\n bindCellRendererToHtmlElement(userCompDetailsPromise, eDisplayField);\n userCompDetailsPromise.then(function (renderer) {\n _this.addDestroyFunc(function () { return _this.getContext().destroyBean(renderer); });\n });\n }\n else {\n if (exists(this.value)) {\n eDisplayField.innerText = valueFormatted;\n eDisplayField.classList.remove('ag-display-as-placeholder');\n }\n else {\n var placeholder = config.placeholder;\n if (exists(placeholder)) {\n eDisplayField.innerHTML = \"\" + escapeString(placeholder);\n eDisplayField.classList.add('ag-display-as-placeholder');\n }\n else {\n clearElement(eDisplayField);\n }\n }\n }\n };\n AgRichSelect.prototype.getCurrentValueIndex = function () {\n var _a = this, currentList = _a.currentList, value = _a.value;\n if (value == null) {\n return -1;\n }\n for (var i = 0; i < currentList.length; i++) {\n if (currentList[i] === value) {\n return i;\n }\n }\n return -1;\n };\n AgRichSelect.prototype.highlightFilterMatch = function () {\n var _this = this;\n var _a;\n (_a = this.listComponent) === null || _a === void 0 ? void 0 : _a.forEachRenderedRow(function (cmp, idx) {\n cmp.highlightString(_this.searchString);\n });\n };\n AgRichSelect.prototype.highlightSelectedValue = function (index) {\n var _this = this;\n var _a;\n if (index == null) {\n index = this.getCurrentValueIndex();\n }\n this.highlightedItem = index;\n (_a = this.listComponent) === null || _a === void 0 ? void 0 : _a.forEachRenderedRow(function (cmp, idx) {\n var highlighted = index === -1 ? false : _this.highlightedItem === idx;\n cmp.updateHighlighted(highlighted);\n });\n };\n AgRichSelect.prototype.setRowHeight = function (height) {\n if (height !== this.cellRowHeight) {\n this.cellRowHeight = height;\n }\n if (this.listComponent) {\n this.listComponent.setRowHeight(height);\n }\n };\n AgRichSelect.prototype.createPickerComponent = function () {\n var values = this.values;\n if (values) {\n this.setValueList({ valueList: values });\n }\n // do not create the picker every time to save state\n return this.listComponent;\n };\n AgRichSelect.prototype.setSearchStringCreator = function (searchStringFn) {\n this.searchStringCreator = searchStringFn;\n };\n AgRichSelect.prototype.setValueList = function (params) {\n var valueList = params.valueList, refresh = params.refresh;\n if (!this.listComponent) {\n return;\n }\n if (this.currentList === valueList) {\n return;\n }\n this.currentList = valueList;\n this.listComponent.setModel({\n getRowCount: function () { return valueList.length; },\n getRow: function (index) { return valueList[index]; }\n });\n if (refresh) {\n // if `values` is not present, it means the valuesList was set asynchronously\n if (!this.values) {\n this.values = valueList;\n if (this.isPickerDisplayed) {\n this.showCurrentValueInPicker();\n }\n }\n else {\n this.listComponent.refresh();\n }\n }\n };\n AgRichSelect.prototype.showPicker = function () {\n _super.prototype.showPicker.call(this);\n this.showCurrentValueInPicker();\n };\n AgRichSelect.prototype.showCurrentValueInPicker = function () {\n var _a, _b;\n if (!this.listComponent) {\n return;\n }\n if (!this.currentList) {\n if (this.isPickerDisplayed && this.eLoading) {\n this.listComponent.appendChild(this.eLoading);\n }\n return;\n }\n if ((_a = this.eLoading) === null || _a === void 0 ? void 0 : _a.offsetParent) {\n (_b = this.eLoading.parentElement) === null || _b === void 0 ? void 0 : _b.removeChild(this.eLoading);\n }\n var currentValueIndex = this.getCurrentValueIndex();\n if (currentValueIndex !== -1) {\n // make sure the virtual list has been sized correctly\n this.listComponent.refresh();\n this.listComponent.ensureIndexVisible(currentValueIndex);\n // this second call to refresh is necessary to force scrolled elements\n // to be rendered with the correct index info.\n this.listComponent.refresh(true);\n this.highlightSelectedValue(currentValueIndex);\n }\n else {\n this.listComponent.refresh();\n }\n };\n AgRichSelect.prototype.beforeHidePicker = function () {\n this.highlightedItem = -1;\n _super.prototype.beforeHidePicker.call(this);\n };\n AgRichSelect.prototype.onWrapperFocus = function (e) {\n if (this.eInput) {\n this.eInput.getFocusableElement().focus();\n }\n };\n AgRichSelect.prototype.onWrapperFocusOut = function (e) {\n if (!this.eWrapper.contains(e.relatedTarget)) {\n this.hidePicker();\n }\n };\n AgRichSelect.prototype.buildSearchStringFromKeyboardEvent = function (searchKey) {\n var key = searchKey.key;\n if (key === KeyCode.BACKSPACE) {\n this.searchString = this.searchString.slice(0, -1);\n key = '';\n }\n else if (!isEventFromPrintableCharacter(searchKey)) {\n return;\n }\n searchKey.preventDefault();\n this.searchTextFromCharacter(key);\n };\n AgRichSelect.prototype.searchTextFromCharacter = function (char) {\n this.searchString += char;\n this.runSearch();\n this.clearSearchString();\n };\n AgRichSelect.prototype.searchTextFromString = function (str) {\n if (str == null) {\n str = '';\n }\n this.searchString = str;\n this.runSearch();\n };\n AgRichSelect.prototype.buildSearchStrings = function (values) {\n var _a = this.config.valueFormatter, valueFormatter = _a === void 0 ? (function (value) { return value; }) : _a;\n var searchStrings;\n if (typeof values[0] === 'number' || typeof values[0] === 'string') {\n searchStrings = values.map(function (v) { return valueFormatter(v); });\n }\n else if (typeof values[0] === 'object' && this.searchStringCreator) {\n searchStrings = this.searchStringCreator(values);\n }\n return searchStrings;\n };\n AgRichSelect.prototype.getSuggestionsAndFilteredValues = function (searchValue, valueList) {\n var _this = this;\n var suggestions = [];\n var filteredValues = [];\n if (!searchValue.length) {\n return { suggestions: suggestions, filteredValues: filteredValues };\n }\n var _a = this.config, allowTyping = _a.allowTyping, _b = _a.searchType, searchType = _b === void 0 ? 'fuzzy' : _b, filterList = _a.filterList;\n var shouldFilterList = filterList && allowTyping;\n if (searchType === 'fuzzy') {\n var fuzzySearchResult = fuzzySuggestions(this.searchString, valueList, true);\n suggestions = fuzzySearchResult.values;\n var indices = fuzzySearchResult.indices;\n if (shouldFilterList && indices.length) {\n for (var i = 0; i < indices.length; i++) {\n filteredValues.push(this.values[indices[i]]);\n }\n }\n }\n else {\n suggestions = valueList.filter(function (val, idx) {\n var currentValue = val.toLocaleLowerCase();\n var valueToMatch = _this.searchString.toLocaleLowerCase();\n var isMatch = searchType === 'match' ? currentValue.startsWith(valueToMatch) : currentValue.indexOf(valueToMatch) !== -1;\n if (shouldFilterList && isMatch) {\n filteredValues.push(_this.values[idx]);\n }\n return isMatch;\n });\n }\n return { suggestions: suggestions, filteredValues: filteredValues };\n };\n AgRichSelect.prototype.filterListModel = function (filteredValues) {\n var _a = this.config, allowTyping = _a.allowTyping, filterList = _a.filterList;\n if (!allowTyping || !filterList) {\n return;\n }\n this.setValueList({ valueList: filteredValues, refresh: true });\n };\n AgRichSelect.prototype.runSearch = function () {\n var _a, _b, _c;\n var values = this.values;\n var searchStrings = this.buildSearchStrings(values);\n if (!searchStrings) {\n this.highlightSelectedValue(-1);\n return;\n }\n var _d = this.getSuggestionsAndFilteredValues(this.searchString, searchStrings), suggestions = _d.suggestions, filteredValues = _d.filteredValues;\n var _e = this.config, allowTyping = _e.allowTyping, filterList = _e.filterList, highlightMatch = _e.highlightMatch, _f = _e.searchType, searchType = _f === void 0 ? 'fuzzy' : _f;\n var filterValueLen = filteredValues.length;\n var shouldFilter = !!(allowTyping && filterList && this.searchString !== '');\n if (shouldFilter) {\n this.filterListModel(shouldFilter ? filteredValues : values);\n }\n if (suggestions.length) {\n var topSuggestionIndex = shouldFilter ? 0 : searchStrings.indexOf(suggestions[0]);\n this.selectListItem(topSuggestionIndex);\n if (highlightMatch && searchType !== 'fuzzy') {\n this.highlightFilterMatch();\n }\n }\n else {\n this.highlightSelectedValue(-1);\n if (!shouldFilter || filterValueLen) {\n (_a = this.listComponent) === null || _a === void 0 ? void 0 : _a.ensureIndexVisible(0);\n }\n else if (shouldFilter) {\n this.getAriaElement().removeAttribute('data-active-option');\n var eListAriaEl = (_b = this.listComponent) === null || _b === void 0 ? void 0 : _b.getAriaElement();\n if (eListAriaEl) {\n setAriaActiveDescendant(eListAriaEl, null);\n }\n }\n }\n var eListGui = (_c = this.listComponent) === null || _c === void 0 ? void 0 : _c.getGui();\n eListGui === null || eListGui === void 0 ? void 0 : eListGui.classList.toggle('ag-hidden', shouldFilter && !filterValueLen);\n };\n AgRichSelect.prototype.clearSearchString = function () {\n this.searchString = '';\n };\n AgRichSelect.prototype.selectListItem = function (index, preventUnnecessaryScroll, skipRefresh) {\n if (!this.isPickerDisplayed || !this.listComponent || index < 0 || index >= this.currentList.length) {\n return;\n }\n var wasScrolled = this.listComponent.ensureIndexVisible(index, !preventUnnecessaryScroll);\n if (wasScrolled && !skipRefresh) {\n this.listComponent.refresh(true);\n }\n this.highlightSelectedValue(index);\n };\n AgRichSelect.prototype.setValue = function (value, silent, fromPicker) {\n var index = this.currentList.indexOf(value);\n if (index === -1) {\n return this;\n }\n this.value = value;\n if (!fromPicker) {\n this.selectListItem(index);\n }\n this.renderSelectedValue();\n return _super.prototype.setValue.call(this, value, silent);\n };\n AgRichSelect.prototype.createRowComponent = function (value) {\n var row = new RichSelectRow(this.config, this.eWrapper);\n row.setParentComponent(this.listComponent);\n this.getContext().createBean(row);\n row.setState(value);\n var _a = this.config, highlightMatch = _a.highlightMatch, _b = _a.searchType, searchType = _b === void 0 ? 'fuzzy' : _b;\n if (highlightMatch && searchType !== 'fuzzy') {\n row.highlightString(this.searchString);\n }\n return row;\n };\n AgRichSelect.prototype.getRowForMouseEvent = function (e) {\n var listComponent = this.listComponent;\n if (!listComponent) {\n return -1;\n }\n var eGui = listComponent === null || listComponent === void 0 ? void 0 : listComponent.getGui();\n var rect = eGui.getBoundingClientRect();\n var scrollTop = listComponent.getScrollTop();\n var mouseY = e.clientY - rect.top + scrollTop;\n return Math.floor(mouseY / listComponent.getRowHeight());\n };\n AgRichSelect.prototype.onPickerMouseMove = function (e) {\n if (!this.listComponent) {\n return;\n }\n var row = this.getRowForMouseEvent(e);\n if (row !== -1 && row != this.lastRowHovered) {\n this.lastRowHovered = row;\n this.selectListItem(row, true, true);\n }\n };\n AgRichSelect.prototype.onNavigationKeyDown = function (event, key) {\n // if we don't preventDefault the page body and/or grid scroll will move.\n event.preventDefault();\n var isDown = key === KeyCode.DOWN;\n if (!this.isPickerDisplayed && isDown) {\n this.showPicker();\n return;\n }\n var oldIndex = this.highlightedItem;\n var diff = isDown ? 1 : -1;\n var newIndex = oldIndex === -1 ? 0 : oldIndex + diff;\n this.selectListItem(newIndex, false, true);\n };\n AgRichSelect.prototype.onEnterKeyDown = function (e) {\n if (!this.isPickerDisplayed) {\n return;\n }\n e.preventDefault();\n this.onListValueSelected(this.currentList[this.highlightedItem], true);\n };\n AgRichSelect.prototype.onListValueSelected = function (value, fromEnterKey) {\n this.setValue(value, false, true);\n this.dispatchPickerEvent(value, fromEnterKey);\n this.hidePicker();\n };\n AgRichSelect.prototype.dispatchPickerEvent = function (value, fromEnterKey) {\n var event = {\n type: Events.EVENT_FIELD_PICKER_VALUE_SELECTED,\n fromEnterKey: fromEnterKey,\n value: value\n };\n this.dispatchEvent(event);\n };\n AgRichSelect.prototype.getFocusableElement = function () {\n var allowTyping = this.config.allowTyping;\n if (allowTyping) {\n return this.eInput.getFocusableElement();\n }\n return _super.prototype.getFocusableElement.call(this);\n };\n AgRichSelect.prototype.onKeyDown = function (event) {\n var key = event.key;\n var allowTyping = this.config.allowTyping;\n switch (key) {\n case KeyCode.LEFT:\n case KeyCode.RIGHT:\n case KeyCode.PAGE_HOME:\n case KeyCode.PAGE_END:\n if (!allowTyping) {\n event.preventDefault();\n }\n break;\n case KeyCode.PAGE_UP:\n case KeyCode.PAGE_DOWN:\n event.preventDefault();\n break;\n case KeyCode.DOWN:\n case KeyCode.UP:\n this.onNavigationKeyDown(event, key);\n break;\n case KeyCode.ESCAPE:\n if (this.isPickerDisplayed) {\n event.preventDefault();\n stopPropagationForAgGrid(event);\n this.hidePicker();\n }\n break;\n case KeyCode.ENTER:\n this.onEnterKeyDown(event);\n break;\n default:\n if (!allowTyping) {\n this.buildSearchStringFromKeyboardEvent(event);\n }\n }\n };\n AgRichSelect.prototype.destroy = function () {\n if (this.listComponent) {\n this.destroyBean(this.listComponent);\n this.listComponent = undefined;\n }\n this.eLoading = undefined;\n _super.prototype.destroy.call(this);\n };\n __decorate$$([\n Autowired('userComponentFactory')\n ], AgRichSelect.prototype, \"userComponentFactory\", void 0);\n __decorate$$([\n RefSelector('eInput')\n ], AgRichSelect.prototype, \"eInput\", void 0);\n return AgRichSelect;\n}(AgPickerField));\n\nvar __extends$Z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$_ = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgSlider = /** @class */ (function (_super) {\n __extends$Z(AgSlider, _super);\n function AgSlider(config) {\n var _this = _super.call(this, config, AgSlider.TEMPLATE) || this;\n _this.labelAlignment = 'top';\n return _this;\n }\n AgSlider.prototype.init = function () {\n this.eSlider.addCssClass('ag-slider-field');\n };\n AgSlider.prototype.onValueChange = function (callbackFn) {\n var _this = this;\n var eventChanged = Events.EVENT_FIELD_VALUE_CHANGED;\n this.addManagedListener(this.eText, eventChanged, function () {\n var textValue = parseFloat(_this.eText.getValue());\n _this.eSlider.setValue(textValue.toString(), true);\n callbackFn(textValue || 0);\n });\n this.addManagedListener(this.eSlider, eventChanged, function () {\n var sliderValue = _this.eSlider.getValue();\n _this.eText.setValue(sliderValue, true);\n callbackFn(parseFloat(sliderValue));\n });\n return this;\n };\n AgSlider.prototype.setSliderWidth = function (width) {\n this.eSlider.setWidth(width);\n return this;\n };\n AgSlider.prototype.setTextFieldWidth = function (width) {\n this.eText.setWidth(width);\n return this;\n };\n AgSlider.prototype.setMinValue = function (minValue) {\n this.eSlider.setMinValue(minValue);\n this.eText.setMin(minValue);\n return this;\n };\n AgSlider.prototype.setMaxValue = function (maxValue) {\n this.eSlider.setMaxValue(maxValue);\n this.eText.setMax(maxValue);\n return this;\n };\n AgSlider.prototype.getValue = function () {\n return this.eText.getValue();\n };\n AgSlider.prototype.setValue = function (value) {\n if (this.getValue() === value) {\n return this;\n }\n this.eText.setValue(value, true);\n this.eSlider.setValue(value, true);\n this.dispatchEvent({ type: Events.EVENT_FIELD_VALUE_CHANGED });\n return this;\n };\n AgSlider.prototype.setStep = function (step) {\n this.eSlider.setStep(step);\n this.eText.setStep(step);\n return this;\n };\n AgSlider.TEMPLATE = \"
\\n \\n
\\n \\n \\n
\\n
\";\n __decorate$_([\n RefSelector('eLabel')\n ], AgSlider.prototype, \"eLabel\", void 0);\n __decorate$_([\n RefSelector('eSlider')\n ], AgSlider.prototype, \"eSlider\", void 0);\n __decorate$_([\n RefSelector('eText')\n ], AgSlider.prototype, \"eText\", void 0);\n __decorate$_([\n PostConstruct\n ], AgSlider.prototype, \"init\", null);\n return AgSlider;\n}(AgAbstractLabel));\n\nvar __extends$Y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$Z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgGroupComponent = /** @class */ (function (_super) {\n __extends$Y(AgGroupComponent, _super);\n function AgGroupComponent(params) {\n if (params === void 0) { params = {}; }\n var _this = _super.call(this, AgGroupComponent.getTemplate(params)) || this;\n _this.suppressEnabledCheckbox = true;\n _this.suppressOpenCloseIcons = false;\n var title = params.title, enabled = params.enabled, items = params.items, suppressEnabledCheckbox = params.suppressEnabledCheckbox, suppressOpenCloseIcons = params.suppressOpenCloseIcons;\n _this.title = title;\n _this.cssIdentifier = params.cssIdentifier || 'default';\n _this.enabled = enabled != null ? enabled : true;\n _this.items = items || [];\n _this.alignItems = params.alignItems || 'center';\n if (suppressEnabledCheckbox != null) {\n _this.suppressEnabledCheckbox = suppressEnabledCheckbox;\n }\n if (suppressOpenCloseIcons != null) {\n _this.suppressOpenCloseIcons = suppressOpenCloseIcons;\n }\n return _this;\n }\n AgGroupComponent.getTemplate = function (params) {\n var cssIdentifier = params.cssIdentifier || 'default';\n var direction = params.direction || 'vertical';\n return /* html */ \"
\\n
\\n \\n \\n \\n
\\n
\\n \\n
\\n
\\n
\";\n };\n AgGroupComponent.prototype.postConstruct = function () {\n if (this.items.length) {\n var initialItems = this.items;\n this.items = [];\n this.addItems(initialItems);\n }\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n this.cbGroupEnabled.setLabel(localeTextFunc('enabled', 'Enabled'));\n if (this.title) {\n this.setTitle(this.title);\n }\n if (this.enabled) {\n this.setEnabled(this.enabled);\n }\n this.setAlignItems(this.alignItems);\n this.hideEnabledCheckbox(this.suppressEnabledCheckbox);\n this.hideOpenCloseIcons(this.suppressOpenCloseIcons);\n this.setupExpandContract();\n this.refreshAriaStatus();\n this.refreshChildDisplay();\n };\n AgGroupComponent.prototype.setupExpandContract = function () {\n var _this = this;\n this.eGroupClosedIcon.appendChild(createIcon('columnSelectClosed', this.gridOptionsService, null));\n this.eGroupOpenedIcon.appendChild(createIcon('columnSelectOpen', this.gridOptionsService, null));\n this.addManagedListener(this.eTitleBar, 'click', function () { return _this.toggleGroupExpand(); });\n this.addManagedListener(this.eTitleBar, 'keydown', function (e) {\n switch (e.key) {\n case KeyCode.ENTER:\n case KeyCode.SPACE:\n e.preventDefault();\n _this.toggleGroupExpand();\n break;\n case KeyCode.RIGHT:\n case KeyCode.LEFT:\n e.preventDefault();\n _this.toggleGroupExpand(e.key === KeyCode.RIGHT);\n break;\n }\n });\n };\n AgGroupComponent.prototype.refreshAriaStatus = function () {\n if (!this.suppressOpenCloseIcons) {\n setAriaExpanded(this.eTitleBar, this.expanded);\n }\n };\n AgGroupComponent.prototype.refreshChildDisplay = function () {\n var showIcon = !this.suppressOpenCloseIcons;\n setDisplayed(this.eToolbar, this.expanded && !this.suppressEnabledCheckbox);\n setDisplayed(this.eGroupOpenedIcon, showIcon && this.expanded);\n setDisplayed(this.eGroupClosedIcon, showIcon && !this.expanded);\n };\n AgGroupComponent.prototype.isExpanded = function () {\n return this.expanded;\n };\n AgGroupComponent.prototype.setAlignItems = function (alignment) {\n if (this.alignItems !== alignment) {\n this.removeCssClass(\"ag-group-item-alignment-\" + this.alignItems);\n }\n this.alignItems = alignment;\n var newCls = \"ag-group-item-alignment-\" + this.alignItems;\n this.addCssClass(newCls);\n return this;\n };\n AgGroupComponent.prototype.toggleGroupExpand = function (expanded) {\n if (this.suppressOpenCloseIcons) {\n this.expanded = true;\n this.refreshChildDisplay();\n setDisplayed(this.eContainer, true);\n return this;\n }\n expanded = expanded != null ? expanded : !this.expanded;\n if (this.expanded === expanded) {\n return this;\n }\n this.expanded = expanded;\n this.refreshAriaStatus();\n this.refreshChildDisplay();\n setDisplayed(this.eContainer, expanded);\n this.dispatchEvent({ type: this.expanded ? AgGroupComponent.EVENT_EXPANDED : AgGroupComponent.EVENT_COLLAPSED });\n return this;\n };\n AgGroupComponent.prototype.addItems = function (items) {\n var _this = this;\n items.forEach(function (item) { return _this.addItem(item); });\n };\n AgGroupComponent.prototype.addItem = function (item) {\n var container = this.eContainer;\n var el = item instanceof Component ? item.getGui() : item;\n el.classList.add('ag-group-item', \"ag-\" + this.cssIdentifier + \"-group-item\");\n container.appendChild(el);\n this.items.push(el);\n };\n AgGroupComponent.prototype.hideItem = function (hide, index) {\n var itemToHide = this.items[index];\n setDisplayed(itemToHide, !hide);\n };\n AgGroupComponent.prototype.setTitle = function (title) {\n this.eTitle.innerText = title;\n return this;\n };\n AgGroupComponent.prototype.addCssClassToTitleBar = function (cssClass) {\n this.eTitleBar.classList.add(cssClass);\n };\n AgGroupComponent.prototype.setEnabled = function (enabled, skipToggle) {\n this.enabled = enabled;\n this.refreshDisabledStyles();\n this.toggleGroupExpand(enabled);\n if (!skipToggle) {\n this.cbGroupEnabled.setValue(enabled);\n }\n return this;\n };\n AgGroupComponent.prototype.isEnabled = function () {\n return this.enabled;\n };\n AgGroupComponent.prototype.onEnableChange = function (callbackFn) {\n var _this = this;\n this.cbGroupEnabled.onValueChange(function (newSelection) {\n _this.setEnabled(newSelection, true);\n callbackFn(newSelection);\n });\n return this;\n };\n AgGroupComponent.prototype.hideEnabledCheckbox = function (hide) {\n this.suppressEnabledCheckbox = hide;\n this.refreshChildDisplay();\n this.refreshDisabledStyles();\n return this;\n };\n AgGroupComponent.prototype.hideOpenCloseIcons = function (hide) {\n this.suppressOpenCloseIcons = hide;\n if (hide) {\n this.toggleGroupExpand(true);\n }\n return this;\n };\n AgGroupComponent.prototype.refreshDisabledStyles = function () {\n this.addOrRemoveCssClass('ag-disabled', !this.enabled);\n if (this.suppressEnabledCheckbox && !this.enabled) {\n this.eTitleBar.classList.add('ag-disabled-group-title-bar');\n this.eTitleBar.removeAttribute('tabindex');\n }\n else {\n this.eTitleBar.classList.remove('ag-disabled-group-title-bar');\n this.eTitleBar.setAttribute('tabindex', '0');\n }\n this.eContainer.classList.toggle('ag-disabled-group-container', !this.enabled);\n };\n AgGroupComponent.EVENT_EXPANDED = 'expanded';\n AgGroupComponent.EVENT_COLLAPSED = 'collapsed';\n __decorate$Z([\n RefSelector('eTitleBar')\n ], AgGroupComponent.prototype, \"eTitleBar\", void 0);\n __decorate$Z([\n RefSelector('eGroupOpenedIcon')\n ], AgGroupComponent.prototype, \"eGroupOpenedIcon\", void 0);\n __decorate$Z([\n RefSelector('eGroupClosedIcon')\n ], AgGroupComponent.prototype, \"eGroupClosedIcon\", void 0);\n __decorate$Z([\n RefSelector('eToolbar')\n ], AgGroupComponent.prototype, \"eToolbar\", void 0);\n __decorate$Z([\n RefSelector('cbGroupEnabled')\n ], AgGroupComponent.prototype, \"cbGroupEnabled\", void 0);\n __decorate$Z([\n RefSelector('eTitle')\n ], AgGroupComponent.prototype, \"eTitle\", void 0);\n __decorate$Z([\n RefSelector('eContainer')\n ], AgGroupComponent.prototype, \"eContainer\", void 0);\n __decorate$Z([\n PostConstruct\n ], AgGroupComponent.prototype, \"postConstruct\", null);\n return AgGroupComponent;\n}(Component));\n\nvar __extends$X = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$5 = (undefined && undefined.__assign) || function () {\n __assign$5 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$5.apply(this, arguments);\n};\nvar __decorate$Y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgMenuList = /** @class */ (function (_super) {\n __extends$X(AgMenuList, _super);\n function AgMenuList(level) {\n if (level === void 0) { level = 1; }\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.level = level;\n _this.menuItems = [];\n return _this;\n }\n AgMenuList.prototype.postConstruct = function () {\n var _this = this;\n this.initialiseTabGuard({\n onTabKeyDown: function (e) { return _this.onTabKeyDown(e); },\n handleKeyDown: function (e) { return _this.handleKeyDown(e); }\n });\n };\n AgMenuList.prototype.onTabKeyDown = function (e) {\n var parent = this.getParentComponent();\n var parentGui = parent && parent.getGui();\n var isManaged = parentGui && parentGui.classList.contains('ag-focus-managed');\n if (!isManaged) {\n e.preventDefault();\n }\n if (e.shiftKey) {\n this.closeIfIsChild(e);\n }\n };\n AgMenuList.prototype.handleKeyDown = function (e) {\n switch (e.key) {\n case KeyCode.UP:\n case KeyCode.RIGHT:\n case KeyCode.DOWN:\n case KeyCode.LEFT:\n e.preventDefault();\n this.handleNavKey(e.key);\n break;\n case KeyCode.ESCAPE:\n var topMenu = this.findTopMenu();\n if (topMenu) {\n this.focusService.focusInto(topMenu.getGui());\n }\n break;\n }\n };\n AgMenuList.prototype.clearActiveItem = function () {\n if (this.activeMenuItem) {\n this.activeMenuItem.deactivate();\n this.activeMenuItem = null;\n }\n };\n AgMenuList.prototype.addMenuItems = function (menuItems) {\n var _this = this;\n if (menuItems == null) {\n return;\n }\n menuItems.forEach(function (menuItemOrString) {\n if (menuItemOrString === 'separator') {\n _this.addSeparator();\n }\n else if (typeof menuItemOrString === 'string') {\n console.warn(\"AG Grid: unrecognised menu item \" + menuItemOrString);\n }\n else {\n _this.addItem(menuItemOrString);\n }\n });\n };\n AgMenuList.prototype.addItem = function (menuItemDef) {\n var _this = this;\n var menuItem = this.createManagedBean(new AgMenuItemComponent(__assign$5(__assign$5({}, menuItemDef), { isAnotherSubMenuOpen: function () { return _this.menuItems.some(function (m) { return m.isSubMenuOpen(); }); } })));\n menuItem.setParentComponent(this);\n setAriaLevel(menuItem.getGui(), this.level);\n this.menuItems.push(menuItem);\n this.appendChild(menuItem.getGui());\n this.addManagedListener(menuItem, AgMenuItemComponent.EVENT_MENU_ITEM_SELECTED, function (event) {\n _this.dispatchEvent(event);\n });\n this.addManagedListener(menuItem, AgMenuItemComponent.EVENT_MENU_ITEM_ACTIVATED, function (event) {\n if (_this.activeMenuItem && _this.activeMenuItem !== event.menuItem) {\n _this.activeMenuItem.deactivate();\n }\n _this.activeMenuItem = event.menuItem;\n });\n };\n AgMenuList.prototype.activateFirstItem = function () {\n var item = this.menuItems.filter(function (currentItem) { return !currentItem.isDisabled(); })[0];\n if (!item) {\n return;\n }\n item.activate();\n };\n AgMenuList.prototype.addSeparator = function () {\n var separatorHtml = /* html */ \"\\n
\\n
\\n
\\n
\\n
\\n
\";\n this.appendChild(loadTemplate(separatorHtml));\n };\n AgMenuList.prototype.findTopMenu = function () {\n var parent = this.getParentComponent();\n if (!parent && this instanceof AgMenuList) {\n return this;\n }\n while (true) {\n var nextParent = parent && parent.getParentComponent && parent.getParentComponent();\n if (!nextParent || (!(nextParent instanceof AgMenuList || nextParent instanceof AgMenuItemComponent))) {\n break;\n }\n parent = nextParent;\n }\n return parent instanceof AgMenuList ? parent : undefined;\n };\n AgMenuList.prototype.handleNavKey = function (key) {\n switch (key) {\n case KeyCode.UP:\n case KeyCode.DOWN:\n var nextItem = this.findNextItem(key === KeyCode.UP);\n if (nextItem && nextItem !== this.activeMenuItem) {\n nextItem.activate();\n }\n return;\n }\n var left = this.gridOptionsService.is('enableRtl') ? KeyCode.RIGHT : KeyCode.LEFT;\n if (key === left) {\n this.closeIfIsChild();\n }\n else {\n this.openChild();\n }\n };\n AgMenuList.prototype.closeIfIsChild = function (e) {\n var parentItem = this.getParentComponent();\n if (parentItem && parentItem instanceof AgMenuItemComponent) {\n if (e) {\n e.preventDefault();\n }\n parentItem.closeSubMenu();\n parentItem.getGui().focus();\n }\n };\n AgMenuList.prototype.openChild = function () {\n if (this.activeMenuItem) {\n this.activeMenuItem.openSubMenu(true);\n }\n };\n AgMenuList.prototype.findNextItem = function (up) {\n var items = this.menuItems.filter(function (item) { return !item.isDisabled(); });\n if (!items.length) {\n return;\n }\n if (!this.activeMenuItem) {\n return up ? last(items) : items[0];\n }\n if (up) {\n items.reverse();\n }\n var nextItem;\n var foundCurrent = false;\n for (var i = 0; i < items.length; i++) {\n var item = items[i];\n if (!foundCurrent) {\n if (item === this.activeMenuItem) {\n foundCurrent = true;\n }\n continue;\n }\n nextItem = item;\n break;\n }\n return nextItem || this.activeMenuItem;\n };\n AgMenuList.prototype.destroy = function () {\n this.clearActiveItem();\n _super.prototype.destroy.call(this);\n };\n __decorate$Y([\n Autowired('focusService')\n ], AgMenuList.prototype, \"focusService\", void 0);\n __decorate$Y([\n PostConstruct\n ], AgMenuList.prototype, \"postConstruct\", null);\n return AgMenuList;\n}(TabGuardComp));\n\nvar __extends$W = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$X = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgMenuPanel = /** @class */ (function (_super) {\n __extends$W(AgMenuPanel, _super);\n function AgMenuPanel(wrappedComponent) {\n var _this = _super.call(this) || this;\n _this.wrappedComponent = wrappedComponent;\n _this.setTemplateFromElement(wrappedComponent.getGui());\n return _this;\n }\n AgMenuPanel.prototype.postConstruct = function () {\n var _this = this;\n this.initialiseTabGuard({\n onTabKeyDown: function (e) { return _this.onTabKeyDown(e); },\n handleKeyDown: function (e) { return _this.handleKeyDown(e); }\n });\n };\n AgMenuPanel.prototype.handleKeyDown = function (e) {\n if (e.key === KeyCode.ESCAPE) {\n this.closePanel();\n }\n };\n AgMenuPanel.prototype.onTabKeyDown = function (e) {\n if (e.defaultPrevented) {\n return;\n }\n this.closePanel();\n e.preventDefault();\n };\n AgMenuPanel.prototype.closePanel = function () {\n var menuItem = this.parentComponent;\n menuItem.closeSubMenu();\n setTimeout(function () { return menuItem.getGui().focus(); }, 0);\n };\n __decorate$X([\n PostConstruct\n ], AgMenuPanel.prototype, \"postConstruct\", null);\n return AgMenuPanel;\n}(TabGuardComp));\n\nvar __extends$V = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$W = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgMenuItemComponent = /** @class */ (function (_super) {\n __extends$V(AgMenuItemComponent, _super);\n function AgMenuItemComponent(params) {\n var _this = _super.call(this) || this;\n _this.params = params;\n _this.isActive = false;\n _this.subMenuIsOpen = false;\n _this.setTemplate(/* html */ \"
\");\n return _this;\n }\n AgMenuItemComponent.prototype.init = function () {\n var _this = this;\n this.addIcon();\n this.addName();\n this.addShortcut();\n this.addSubMenu();\n this.addTooltip();\n var eGui = this.getGui();\n if (this.params.disabled) {\n this.addCssClass(this.getClassName('disabled'));\n setAriaDisabled(eGui, true);\n }\n else {\n this.addGuiEventListener('click', function (e) { return _this.onItemSelected(e); });\n this.addGuiEventListener('keydown', function (e) {\n if (e.key === KeyCode.ENTER || e.key === KeyCode.SPACE) {\n e.preventDefault();\n _this.onItemSelected(e);\n }\n });\n this.addGuiEventListener('mousedown', function (e) {\n // Prevent event bubbling to other event handlers such as PopupService triggering\n // premature closing of any open sub-menu popup.\n e.stopPropagation();\n e.preventDefault();\n });\n this.addGuiEventListener('mouseenter', function () { return _this.onMouseEnter(); });\n this.addGuiEventListener('mouseleave', function () { return _this.onMouseLeave(); });\n }\n if (this.params.cssClasses) {\n this.params.cssClasses.forEach(function (it) { return _this.addCssClass(it); });\n }\n };\n AgMenuItemComponent.prototype.isDisabled = function () {\n return !!this.params.disabled;\n };\n AgMenuItemComponent.prototype.openSubMenu = function (activateFirstItem) {\n var _this = this;\n if (activateFirstItem === void 0) { activateFirstItem = false; }\n this.closeSubMenu();\n if (!this.params.subMenu) {\n return;\n }\n var ePopup = loadTemplate(/* html */ \"
\");\n var destroySubMenu;\n if (this.params.subMenu instanceof Array) {\n var currentLevel = getAriaLevel(this.getGui());\n var nextLevel = isNaN(currentLevel) ? 1 : (currentLevel + 1);\n var childMenu_1 = this.createBean(new AgMenuList(nextLevel));\n childMenu_1.setParentComponent(this);\n childMenu_1.addMenuItems(this.params.subMenu);\n ePopup.appendChild(childMenu_1.getGui());\n // bubble menu item selected events\n this.addManagedListener(childMenu_1, AgMenuItemComponent.EVENT_MENU_ITEM_SELECTED, function (e) { return _this.dispatchEvent(e); });\n childMenu_1.addGuiEventListener('mouseenter', function () { return _this.cancelDeactivate(); });\n destroySubMenu = function () { return _this.destroyBean(childMenu_1); };\n if (activateFirstItem) {\n setTimeout(function () { return childMenu_1.activateFirstItem(); }, 0);\n }\n }\n else {\n var subMenu_1 = this.params.subMenu;\n var menuPanel = this.createBean(new AgMenuPanel(subMenu_1));\n menuPanel.setParentComponent(this);\n var subMenuGui_1 = menuPanel.getGui();\n var mouseEvent_1 = 'mouseenter';\n var mouseEnterListener_1 = function () { return _this.cancelDeactivate(); };\n subMenuGui_1.addEventListener(mouseEvent_1, mouseEnterListener_1);\n destroySubMenu = function () { return subMenuGui_1.removeEventListener(mouseEvent_1, mouseEnterListener_1); };\n ePopup.appendChild(subMenuGui_1);\n if (subMenu_1.afterGuiAttached) {\n setTimeout(function () { return subMenu_1.afterGuiAttached(); }, 0);\n }\n }\n var eGui = this.getGui();\n var positionCallback = this.popupService.positionPopupForMenu.bind(this.popupService, { eventSource: eGui, ePopup: ePopup });\n var translate = this.localeService.getLocaleTextFunc();\n var addPopupRes = this.popupService.addPopup({\n modal: true,\n eChild: ePopup,\n positionCallback: positionCallback,\n anchorToElement: eGui,\n ariaLabel: translate('ariaLabelSubMenu', 'SubMenu')\n });\n this.subMenuIsOpen = true;\n setAriaExpanded(eGui, true);\n this.hideSubMenu = function () {\n if (addPopupRes) {\n addPopupRes.hideFunc();\n }\n _this.subMenuIsOpen = false;\n setAriaExpanded(eGui, false);\n destroySubMenu();\n };\n };\n AgMenuItemComponent.prototype.closeSubMenu = function () {\n if (!this.hideSubMenu) {\n return;\n }\n this.hideSubMenu();\n this.hideSubMenu = null;\n setAriaExpanded(this.getGui(), false);\n };\n AgMenuItemComponent.prototype.isSubMenuOpen = function () {\n return this.subMenuIsOpen;\n };\n AgMenuItemComponent.prototype.activate = function (openSubMenu) {\n var _this = this;\n this.cancelActivate();\n if (this.params.disabled) {\n return;\n }\n this.isActive = true;\n this.addCssClass(this.getClassName('active'));\n this.getGui().focus();\n if (openSubMenu && this.params.subMenu) {\n window.setTimeout(function () {\n if (_this.isAlive() && _this.isActive) {\n _this.openSubMenu();\n }\n }, 300);\n }\n this.onItemActivated();\n };\n AgMenuItemComponent.prototype.deactivate = function () {\n this.cancelDeactivate();\n this.removeCssClass(this.getClassName('active'));\n this.isActive = false;\n if (this.subMenuIsOpen) {\n this.hideSubMenu();\n }\n };\n AgMenuItemComponent.prototype.addIcon = function () {\n if (!this.params.checked && !this.params.icon && this.params.isCompact) {\n return;\n }\n var icon = loadTemplate(/* html */ \"\");\n if (this.params.checked) {\n icon.appendChild(createIconNoSpan('check', this.gridOptionsService));\n }\n else if (this.params.icon) {\n if (isNodeOrElement(this.params.icon)) {\n icon.appendChild(this.params.icon);\n }\n else if (typeof this.params.icon === 'string') {\n icon.innerHTML = this.params.icon;\n }\n else {\n console.warn('AG Grid: menu item icon must be DOM node or string');\n }\n }\n this.getGui().appendChild(icon);\n };\n AgMenuItemComponent.prototype.addName = function () {\n if (!this.params.name && this.params.isCompact) {\n return;\n }\n var name = loadTemplate(/* html */ \"\" + (this.params.name || '') + \"\");\n this.getGui().appendChild(name);\n };\n AgMenuItemComponent.prototype.addTooltip = function () {\n if (!this.params.tooltip) {\n return;\n }\n this.tooltip = this.params.tooltip;\n if (this.gridOptionsService.is('enableBrowserTooltips')) {\n this.getGui().setAttribute('title', this.tooltip);\n }\n else {\n this.createManagedBean(new CustomTooltipFeature(this));\n }\n };\n AgMenuItemComponent.prototype.getTooltipParams = function () {\n return {\n location: 'menu',\n value: this.tooltip\n };\n };\n AgMenuItemComponent.prototype.addShortcut = function () {\n if (!this.params.shortcut && this.params.isCompact) {\n return;\n }\n var shortcut = loadTemplate(/* html */ \"\" + (this.params.shortcut || '') + \"\");\n this.getGui().appendChild(shortcut);\n };\n AgMenuItemComponent.prototype.addSubMenu = function () {\n if (!this.params.subMenu && this.params.isCompact) {\n return;\n }\n var pointer = loadTemplate(/* html */ \"\");\n var eGui = this.getGui();\n if (this.params.subMenu) {\n var iconName = this.gridOptionsService.is('enableRtl') ? 'smallLeft' : 'smallRight';\n setAriaExpanded(eGui, false);\n pointer.appendChild(createIconNoSpan(iconName, this.gridOptionsService));\n }\n eGui.appendChild(pointer);\n };\n AgMenuItemComponent.prototype.onItemSelected = function (event) {\n if (this.params.action) {\n this.params.action();\n }\n else {\n this.openSubMenu(event && event.type === 'keydown');\n }\n if (this.params.subMenu && !this.params.action) {\n return;\n }\n var e = {\n type: AgMenuItemComponent.EVENT_MENU_ITEM_SELECTED,\n action: this.params.action,\n checked: this.params.checked,\n cssClasses: this.params.cssClasses,\n disabled: this.params.disabled,\n icon: this.params.icon,\n name: this.params.name,\n shortcut: this.params.shortcut,\n subMenu: this.params.subMenu,\n tooltip: this.params.tooltip,\n event: event\n };\n this.dispatchEvent(e);\n };\n AgMenuItemComponent.prototype.onItemActivated = function () {\n var event = {\n type: AgMenuItemComponent.EVENT_MENU_ITEM_ACTIVATED,\n menuItem: this,\n };\n this.dispatchEvent(event);\n };\n AgMenuItemComponent.prototype.cancelActivate = function () {\n if (this.activateTimeoutId) {\n window.clearTimeout(this.activateTimeoutId);\n this.activateTimeoutId = 0;\n }\n };\n AgMenuItemComponent.prototype.cancelDeactivate = function () {\n if (this.deactivateTimeoutId) {\n window.clearTimeout(this.deactivateTimeoutId);\n this.deactivateTimeoutId = 0;\n }\n };\n AgMenuItemComponent.prototype.onMouseEnter = function () {\n var _this = this;\n this.cancelDeactivate();\n if (this.params.isAnotherSubMenuOpen()) {\n // wait to see if the user enters the open sub-menu\n this.activateTimeoutId = window.setTimeout(function () { return _this.activate(true); }, AgMenuItemComponent.ACTIVATION_DELAY);\n }\n else {\n // activate immediately\n this.activate(true);\n }\n };\n AgMenuItemComponent.prototype.onMouseLeave = function () {\n var _this = this;\n this.cancelActivate();\n if (this.isSubMenuOpen()) {\n // wait to see if the user enters the sub-menu\n this.deactivateTimeoutId = window.setTimeout(function () { return _this.deactivate(); }, AgMenuItemComponent.ACTIVATION_DELAY);\n }\n else {\n // de-activate immediately\n this.deactivate();\n }\n };\n AgMenuItemComponent.prototype.getClassName = function (suffix) {\n var prefix = this.params.isCompact ? 'ag-compact-menu-option' : 'ag-menu-option';\n return suffix ? prefix + \"-\" + suffix : prefix;\n };\n AgMenuItemComponent.EVENT_MENU_ITEM_SELECTED = 'menuItemSelected';\n AgMenuItemComponent.EVENT_MENU_ITEM_ACTIVATED = 'menuItemActivated';\n AgMenuItemComponent.ACTIVATION_DELAY = 80;\n __decorate$W([\n Autowired('popupService')\n ], AgMenuItemComponent.prototype, \"popupService\", void 0);\n __decorate$W([\n PostConstruct\n ], AgMenuItemComponent.prototype, \"init\", null);\n return AgMenuItemComponent;\n}(Component));\n\nvar __extends$U = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$V = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgPanel = /** @class */ (function (_super) {\n __extends$U(AgPanel, _super);\n function AgPanel(config) {\n var _this = _super.call(this, AgPanel.getTemplate(config)) || this;\n _this.closable = true;\n _this.config = config;\n return _this;\n }\n AgPanel.getTemplate = function (config) {\n var cssIdentifier = (config && config.cssIdentifier) || 'default';\n return /* html */ \"
\\n
\\n \\n
\\n
\\n
\\n
\";\n };\n AgPanel.prototype.postConstruct = function () {\n var _this = this;\n var _a = this.config, component = _a.component, closable = _a.closable, hideTitleBar = _a.hideTitleBar, title = _a.title, _b = _a.minWidth, minWidth = _b === void 0 ? 250 : _b, width = _a.width, _c = _a.minHeight, minHeight = _c === void 0 ? 250 : _c, height = _a.height, centered = _a.centered, popup = _a.popup, x = _a.x, y = _a.y;\n this.positionableFeature = new PositionableFeature(this.getGui(), {\n minWidth: minWidth,\n width: width,\n minHeight: minHeight,\n height: height,\n centered: centered,\n x: x,\n y: y,\n popup: popup,\n calculateTopBuffer: function () { return _this.positionableFeature.getHeight() - _this.getBodyHeight(); }\n });\n this.createManagedBean(this.positionableFeature);\n var eGui = this.getGui();\n if (component) {\n this.setBodyComponent(component);\n }\n if (!hideTitleBar) {\n if (title) {\n this.setTitle(title);\n }\n this.setClosable(closable != null ? closable : this.closable);\n }\n else {\n setDisplayed(this.eTitleBar, false);\n }\n this.addManagedListener(this.eTitleBar, 'mousedown', function (e) {\n var eDocument = _this.gridOptionsService.getDocument();\n if (eGui.contains(e.relatedTarget) ||\n eGui.contains(eDocument.activeElement) ||\n _this.eTitleBarButtons.contains(e.target)) {\n e.preventDefault();\n return;\n }\n var focusEl = _this.eContentWrapper.querySelector('button, [href], input, select, textarea, [tabindex]');\n if (focusEl) {\n focusEl.focus();\n }\n });\n if (popup && this.positionableFeature.isPositioned()) {\n return;\n }\n if (this.renderComponent) {\n this.renderComponent();\n }\n this.positionableFeature.initialisePosition();\n this.eContentWrapper.style.height = '0';\n };\n AgPanel.prototype.renderComponent = function () {\n var _this = this;\n var eGui = this.getGui();\n eGui.focus();\n this.close = function () {\n eGui.parentElement.removeChild(eGui);\n _this.destroy();\n };\n };\n AgPanel.prototype.getHeight = function () {\n return this.positionableFeature.getHeight();\n };\n AgPanel.prototype.setHeight = function (height) {\n this.positionableFeature.setHeight(height);\n };\n AgPanel.prototype.getWidth = function () {\n return this.positionableFeature.getWidth();\n };\n AgPanel.prototype.setWidth = function (width) {\n this.positionableFeature.setWidth(width);\n };\n AgPanel.prototype.setClosable = function (closable) {\n if (closable !== this.closable) {\n this.closable = closable;\n }\n if (closable) {\n var closeButtonComp = this.closeButtonComp = new Component(AgPanel.CLOSE_BTN_TEMPLATE);\n this.getContext().createBean(closeButtonComp);\n var eGui = closeButtonComp.getGui();\n var child = createIconNoSpan('close', this.gridOptionsService);\n child.classList.add('ag-panel-title-bar-button-icon');\n eGui.appendChild(child);\n this.addTitleBarButton(closeButtonComp);\n closeButtonComp.addManagedListener(eGui, 'click', this.onBtClose.bind(this));\n }\n else if (this.closeButtonComp) {\n var eGui = this.closeButtonComp.getGui();\n eGui.parentElement.removeChild(eGui);\n this.closeButtonComp = this.destroyBean(this.closeButtonComp);\n }\n };\n AgPanel.prototype.setBodyComponent = function (bodyComponent) {\n bodyComponent.setParentComponent(this);\n this.eContentWrapper.appendChild(bodyComponent.getGui());\n };\n AgPanel.prototype.addTitleBarButton = function (button, position) {\n var eTitleBarButtons = this.eTitleBarButtons;\n var buttons = eTitleBarButtons.children;\n var len = buttons.length;\n if (position == null) {\n position = len;\n }\n position = Math.max(0, Math.min(position, len));\n button.addCssClass('ag-panel-title-bar-button');\n var eGui = button.getGui();\n if (position === 0) {\n eTitleBarButtons.insertAdjacentElement('afterbegin', eGui);\n }\n else if (position === len) {\n eTitleBarButtons.insertAdjacentElement('beforeend', eGui);\n }\n else {\n buttons[position - 1].insertAdjacentElement('afterend', eGui);\n }\n button.setParentComponent(this);\n };\n AgPanel.prototype.getBodyHeight = function () {\n return getInnerHeight(this.eContentWrapper);\n };\n AgPanel.prototype.getBodyWidth = function () {\n return getInnerWidth(this.eContentWrapper);\n };\n AgPanel.prototype.setTitle = function (title) {\n this.eTitle.innerText = title;\n };\n // called when user hits the 'x' in the top right\n AgPanel.prototype.onBtClose = function () {\n this.close();\n };\n AgPanel.prototype.destroy = function () {\n if (this.closeButtonComp) {\n this.closeButtonComp = this.destroyBean(this.closeButtonComp);\n }\n var eGui = this.getGui();\n if (eGui && eGui.offsetParent) {\n this.close();\n }\n _super.prototype.destroy.call(this);\n };\n AgPanel.CLOSE_BTN_TEMPLATE = \"
\";\n __decorate$V([\n RefSelector('eContentWrapper')\n ], AgPanel.prototype, \"eContentWrapper\", void 0);\n __decorate$V([\n RefSelector('eTitleBar')\n ], AgPanel.prototype, \"eTitleBar\", void 0);\n __decorate$V([\n RefSelector('eTitleBarButtons')\n ], AgPanel.prototype, \"eTitleBarButtons\", void 0);\n __decorate$V([\n RefSelector('eTitle')\n ], AgPanel.prototype, \"eTitle\", void 0);\n __decorate$V([\n PostConstruct\n ], AgPanel.prototype, \"postConstruct\", null);\n return AgPanel;\n}(Component));\n\nvar __extends$T = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$4 = (undefined && undefined.__assign) || function () {\n __assign$4 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$4.apply(this, arguments);\n};\nvar __decorate$U = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgDialog = /** @class */ (function (_super) {\n __extends$T(AgDialog, _super);\n function AgDialog(config) {\n var _this = _super.call(this, __assign$4(__assign$4({}, config), { popup: true })) || this;\n _this.isMaximizable = false;\n _this.isMaximized = false;\n _this.maximizeListeners = [];\n _this.resizeListenerDestroy = null;\n _this.lastPosition = {\n x: 0,\n y: 0,\n width: 0,\n height: 0\n };\n return _this;\n }\n AgDialog.prototype.postConstruct = function () {\n var _this = this;\n var eGui = this.getGui();\n var _a = this.config, movable = _a.movable, resizable = _a.resizable, maximizable = _a.maximizable;\n this.addCssClass('ag-dialog');\n _super.prototype.postConstruct.call(this);\n this.addManagedListener(eGui, 'focusin', function (e) {\n if (eGui.contains(e.relatedTarget)) {\n return;\n }\n _this.popupService.bringPopupToFront(eGui);\n });\n if (movable) {\n this.setMovable(movable);\n }\n if (maximizable) {\n this.setMaximizable(maximizable);\n }\n if (resizable) {\n this.setResizable(resizable);\n }\n };\n AgDialog.prototype.renderComponent = function () {\n var eGui = this.getGui();\n var _a = this.config, alwaysOnTop = _a.alwaysOnTop, modal = _a.modal, title = _a.title, afterGuiAttached = _a.afterGuiAttached;\n var translate = this.localeService.getLocaleTextFunc();\n var addPopupRes = this.popupService.addPopup({\n modal: modal,\n eChild: eGui,\n closeOnEsc: true,\n closedCallback: this.destroy.bind(this),\n alwaysOnTop: alwaysOnTop,\n ariaLabel: title || translate('ariaLabelDialog', 'Dialog'),\n afterGuiAttached: afterGuiAttached\n });\n if (addPopupRes) {\n this.close = addPopupRes.hideFunc;\n }\n };\n AgDialog.prototype.toggleMaximize = function () {\n var position = this.positionableFeature.getPosition();\n if (this.isMaximized) {\n var _a = this.lastPosition, x = _a.x, y = _a.y, width = _a.width, height = _a.height;\n this.setWidth(width);\n this.setHeight(height);\n this.positionableFeature.offsetElement(x, y);\n }\n else {\n this.lastPosition.width = this.getWidth();\n this.lastPosition.height = this.getHeight();\n this.lastPosition.x = position.x;\n this.lastPosition.y = position.y;\n this.positionableFeature.offsetElement(0, 0);\n this.setHeight('100%');\n this.setWidth('100%');\n }\n this.isMaximized = !this.isMaximized;\n this.refreshMaximizeIcon();\n };\n AgDialog.prototype.refreshMaximizeIcon = function () {\n setDisplayed(this.maximizeIcon, !this.isMaximized);\n setDisplayed(this.minimizeIcon, this.isMaximized);\n };\n AgDialog.prototype.clearMaximizebleListeners = function () {\n if (this.maximizeListeners.length) {\n this.maximizeListeners.forEach(function (destroyListener) { return destroyListener(); });\n this.maximizeListeners.length = 0;\n }\n if (this.resizeListenerDestroy) {\n this.resizeListenerDestroy();\n this.resizeListenerDestroy = null;\n }\n };\n AgDialog.prototype.destroy = function () {\n this.maximizeButtonComp = this.destroyBean(this.maximizeButtonComp);\n this.clearMaximizebleListeners();\n _super.prototype.destroy.call(this);\n };\n AgDialog.prototype.setResizable = function (resizable) {\n this.positionableFeature.setResizable(resizable);\n };\n AgDialog.prototype.setMovable = function (movable) {\n this.positionableFeature.setMovable(movable, this.eTitleBar);\n };\n AgDialog.prototype.setMaximizable = function (maximizable) {\n var _this = this;\n if (!maximizable) {\n this.clearMaximizebleListeners();\n if (this.maximizeButtonComp) {\n this.destroyBean(this.maximizeButtonComp);\n this.maximizeButtonComp = this.maximizeIcon = this.minimizeIcon = undefined;\n }\n return;\n }\n var eTitleBar = this.eTitleBar;\n if (!eTitleBar || maximizable === this.isMaximizable) {\n return;\n }\n var maximizeButtonComp = this.buildMaximizeAndMinimizeElements();\n this.refreshMaximizeIcon();\n maximizeButtonComp.addManagedListener(maximizeButtonComp.getGui(), 'click', this.toggleMaximize.bind(this));\n this.addTitleBarButton(maximizeButtonComp, 0);\n this.maximizeListeners.push(this.addManagedListener(eTitleBar, 'dblclick', this.toggleMaximize.bind(this)));\n this.resizeListenerDestroy = this.addManagedListener(this, 'resize', function () {\n _this.isMaximized = false;\n _this.refreshMaximizeIcon();\n });\n };\n AgDialog.prototype.buildMaximizeAndMinimizeElements = function () {\n var maximizeButtonComp = this.maximizeButtonComp =\n this.createBean(new Component(/* html */ \"
\"));\n var eGui = maximizeButtonComp.getGui();\n this.maximizeIcon = createIconNoSpan('maximize', this.gridOptionsService);\n eGui.appendChild(this.maximizeIcon);\n this.maximizeIcon.classList.add('ag-panel-title-bar-button-icon');\n this.minimizeIcon = createIconNoSpan('minimize', this.gridOptionsService);\n eGui.appendChild(this.minimizeIcon);\n this.minimizeIcon.classList.add('ag-panel-title-bar-button-icon');\n return maximizeButtonComp;\n };\n __decorate$U([\n Autowired('popupService')\n ], AgDialog.prototype, \"popupService\", void 0);\n return AgDialog;\n}(AgPanel));\n\nvar __extends$S = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$3 = (undefined && undefined.__assign) || function () {\n __assign$3 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$3.apply(this, arguments);\n};\nvar __decorate$T = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$b = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$9 = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar DIRECTION;\n(function (DIRECTION) {\n DIRECTION[DIRECTION[\"vertical\"] = 0] = \"vertical\";\n DIRECTION[DIRECTION[\"horizontal\"] = 1] = \"horizontal\";\n})(DIRECTION || (DIRECTION = {}));\nvar instanceIdSeq = 0;\nvar PopupService = /** @class */ (function (_super) {\n __extends$S(PopupService, _super);\n function PopupService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.popupList = [];\n return _this;\n }\n PopupService_1 = PopupService;\n PopupService.prototype.postConstruct = function () {\n var _this = this;\n this.ctrlsService.whenReady(function (p) {\n _this.gridCtrl = p.gridCtrl;\n _this.addManagedListener(_this.gridCtrl, Events.EVENT_KEYBOARD_FOCUS, function () {\n _this.popupList.forEach(function (popup) { return popup.element.classList.add(FocusService.AG_KEYBOARD_FOCUS); });\n });\n _this.addManagedListener(_this.gridCtrl, Events.EVENT_MOUSE_FOCUS, function () {\n _this.popupList.forEach(function (popup) { return popup.element.classList.remove(FocusService.AG_KEYBOARD_FOCUS); });\n });\n });\n };\n PopupService.prototype.getPopupParent = function () {\n var ePopupParent = this.gridOptionsService.get('popupParent');\n if (ePopupParent) {\n return ePopupParent;\n }\n return this.gridCtrl.getGui();\n };\n PopupService.prototype.positionPopupForMenu = function (params) {\n var eventSource = params.eventSource, ePopup = params.ePopup;\n var popupIdx = this.getPopupIndex(ePopup);\n if (popupIdx !== -1) {\n var popup = this.popupList[popupIdx];\n popup.alignedToElement = eventSource;\n }\n var sourceRect = eventSource.getBoundingClientRect();\n var parentRect = this.getParentRect();\n var y = this.keepXYWithinBounds(ePopup, sourceRect.top - parentRect.top, DIRECTION.vertical);\n var minWidth = (ePopup.clientWidth > 0) ? ePopup.clientWidth : 200;\n ePopup.style.minWidth = minWidth + \"px\";\n var widthOfParent = parentRect.right - parentRect.left;\n var maxX = widthOfParent - minWidth;\n // the x position of the popup depends on RTL or LTR. for normal cases, LTR, we put the child popup\n // to the right, unless it doesn't fit and we then put it to the left. for RTL it's the other way around,\n // we try place it first to the left, and then if not to the right.\n var x;\n if (this.gridOptionsService.is('enableRtl')) {\n // for RTL, try left first\n x = xLeftPosition();\n if (x < 0) {\n x = xRightPosition();\n this.setAlignedStyles(ePopup, 'left');\n }\n if (x > maxX) {\n x = 0;\n this.setAlignedStyles(ePopup, 'right');\n }\n }\n else {\n // for LTR, try right first\n x = xRightPosition();\n if (x > maxX) {\n x = xLeftPosition();\n this.setAlignedStyles(ePopup, 'right');\n }\n if (x < 0) {\n x = 0;\n this.setAlignedStyles(ePopup, 'left');\n }\n }\n ePopup.style.left = x + \"px\";\n ePopup.style.top = y + \"px\";\n function xRightPosition() {\n return sourceRect.right - parentRect.left - 2;\n }\n function xLeftPosition() {\n return sourceRect.left - parentRect.left - minWidth;\n }\n };\n PopupService.prototype.positionPopupUnderMouseEvent = function (params) {\n var _this = this;\n var ePopup = params.ePopup, nudgeX = params.nudgeX, nudgeY = params.nudgeY, skipObserver = params.skipObserver;\n this.positionPopup({\n ePopup: ePopup,\n nudgeX: nudgeX,\n nudgeY: nudgeY,\n keepWithinBounds: true,\n skipObserver: skipObserver,\n updatePosition: function () { return _this.calculatePointerAlign(params.mouseEvent); },\n postProcessCallback: function () { return _this.callPostProcessPopup(params.type, params.ePopup, null, params.mouseEvent, params.column, params.rowNode); }\n });\n };\n PopupService.prototype.calculatePointerAlign = function (e) {\n var parentRect = this.getParentRect();\n return {\n x: e.clientX - parentRect.left,\n y: e.clientY - parentRect.top\n };\n };\n PopupService.prototype.positionPopupByComponent = function (params) {\n var _this = this;\n var ePopup = params.ePopup, nudgeX = params.nudgeX, nudgeY = params.nudgeY, keepWithinBounds = params.keepWithinBounds, eventSource = params.eventSource, _a = params.alignSide, alignSide = _a === void 0 ? 'left' : _a, _b = params.position, position = _b === void 0 ? 'over' : _b, column = params.column, rowNode = params.rowNode, type = params.type;\n var sourceRect = eventSource.getBoundingClientRect();\n var parentRect = this.getParentRect();\n var popupIdx = this.getPopupIndex(ePopup);\n if (popupIdx !== -1) {\n var popup = this.popupList[popupIdx];\n popup.alignedToElement = eventSource;\n }\n var updatePosition = function () {\n var x = sourceRect.left - parentRect.left;\n if (alignSide === 'right') {\n x -= (ePopup.offsetWidth - sourceRect.width);\n }\n var y;\n if (position === 'over') {\n y = (sourceRect.top - parentRect.top);\n _this.setAlignedStyles(ePopup, 'over');\n }\n else {\n _this.setAlignedStyles(ePopup, 'under');\n var alignSide_1 = _this.shouldRenderUnderOrAbove(ePopup, sourceRect, parentRect, params.nudgeY || 0);\n if (alignSide_1 === 'under') {\n y = (sourceRect.top - parentRect.top + sourceRect.height);\n }\n else {\n y = (sourceRect.top - ePopup.offsetHeight - (nudgeY || 0) * 2) - parentRect.top;\n }\n }\n return { x: x, y: y };\n };\n this.positionPopup({\n ePopup: ePopup,\n nudgeX: nudgeX,\n nudgeY: nudgeY,\n keepWithinBounds: keepWithinBounds,\n updatePosition: updatePosition,\n postProcessCallback: function () { return _this.callPostProcessPopup(type, ePopup, eventSource, null, column, rowNode); }\n });\n };\n PopupService.prototype.shouldRenderUnderOrAbove = function (ePopup, targetCompRect, parentRect, nudgeY) {\n var spaceAvailableUnder = parentRect.bottom - targetCompRect.bottom;\n var spaceAvailableAbove = targetCompRect.top - parentRect.top;\n var spaceRequired = ePopup.offsetHeight + nudgeY;\n if (spaceAvailableUnder > spaceRequired) {\n return 'under';\n }\n if (spaceAvailableAbove > spaceRequired || spaceAvailableAbove > spaceAvailableUnder) {\n return 'above';\n }\n return 'under';\n };\n PopupService.prototype.setAlignedStyles = function (ePopup, positioned) {\n var popupIdx = this.getPopupIndex(ePopup);\n if (popupIdx === -1) {\n return;\n }\n var popup = this.popupList[popupIdx];\n var alignedToElement = popup.alignedToElement;\n if (!alignedToElement) {\n return;\n }\n var positions = ['right', 'left', 'over', 'above', 'under'];\n positions.forEach(function (position) {\n alignedToElement.classList.remove(\"ag-has-popup-positioned-\" + position);\n ePopup.classList.remove(\"ag-popup-positioned-\" + position);\n });\n if (!positioned) {\n return;\n }\n alignedToElement.classList.add(\"ag-has-popup-positioned-\" + positioned);\n ePopup.classList.add(\"ag-popup-positioned-\" + positioned);\n };\n PopupService.prototype.callPostProcessPopup = function (type, ePopup, eventSource, mouseEvent, column, rowNode) {\n var callback = this.gridOptionsService.getCallback('postProcessPopup');\n if (callback) {\n var params = {\n column: column,\n rowNode: rowNode,\n ePopup: ePopup,\n type: type,\n eventSource: eventSource,\n mouseEvent: mouseEvent\n };\n callback(params);\n }\n };\n PopupService.prototype.positionPopup = function (params) {\n var _this = this;\n var ePopup = params.ePopup, keepWithinBounds = params.keepWithinBounds, nudgeX = params.nudgeX, nudgeY = params.nudgeY, skipObserver = params.skipObserver, updatePosition = params.updatePosition;\n var lastSize = { width: 0, height: 0 };\n var updatePopupPosition = function (fromResizeObserver) {\n if (fromResizeObserver === void 0) { fromResizeObserver = false; }\n var _a = updatePosition(), x = _a.x, y = _a.y;\n if (fromResizeObserver &&\n ePopup.clientWidth === lastSize.width &&\n ePopup.clientHeight === lastSize.height) {\n return;\n }\n lastSize.width = ePopup.clientWidth;\n lastSize.height = ePopup.clientHeight;\n if (nudgeX) {\n x += nudgeX;\n }\n if (nudgeY) {\n y += nudgeY;\n }\n // if popup is overflowing to the bottom, move it up\n if (keepWithinBounds) {\n x = _this.keepXYWithinBounds(ePopup, x, DIRECTION.horizontal);\n y = _this.keepXYWithinBounds(ePopup, y, DIRECTION.vertical);\n }\n ePopup.style.left = x + \"px\";\n ePopup.style.top = y + \"px\";\n if (params.postProcessCallback) {\n params.postProcessCallback();\n }\n };\n updatePopupPosition();\n // Mouse tracking will recalculate positioning when moving, so won't need to recalculate here\n if (!skipObserver) {\n // Since rendering popup contents can be asynchronous, use a resize observer to\n // reposition the popup after initial updates to the size of the contents\n var resizeObserverDestroyFunc_1 = this.resizeObserverService.observeResize(ePopup, function () { return updatePopupPosition(true); });\n // Only need to reposition when first open, so can clean up after a bit of time\n setTimeout(function () { return resizeObserverDestroyFunc_1(); }, PopupService_1.WAIT_FOR_POPUP_CONTENT_RESIZE);\n }\n };\n PopupService.prototype.getActivePopups = function () {\n return this.popupList.map(function (popup) { return popup.element; });\n };\n PopupService.prototype.getPopupList = function () {\n return this.popupList;\n };\n PopupService.prototype.getParentRect = function () {\n // subtract the popup parent borders, because popupParent.getBoundingClientRect\n // returns the rect outside the borders, but the 0,0 coordinate for absolute\n // positioning is inside the border, leading the popup to be off by the width\n // of the border\n var eDocument = this.gridOptionsService.getDocument();\n var popupParent = this.getPopupParent();\n if (popupParent === eDocument.body) {\n popupParent = eDocument.documentElement;\n }\n else if (getComputedStyle(popupParent).position === 'static') {\n popupParent = popupParent.offsetParent;\n }\n return getElementRectWithOffset(popupParent);\n };\n PopupService.prototype.keepXYWithinBounds = function (ePopup, position, direction) {\n var isVertical = direction === DIRECTION.vertical;\n var sizeProperty = isVertical ? 'clientHeight' : 'clientWidth';\n var anchorProperty = isVertical ? 'top' : 'left';\n var offsetProperty = isVertical ? 'offsetHeight' : 'offsetWidth';\n var scrollPositionProperty = isVertical ? 'scrollTop' : 'scrollLeft';\n var eDocument = this.gridOptionsService.getDocument();\n var docElement = eDocument.documentElement;\n var popupParent = this.getPopupParent();\n var parentRect = popupParent.getBoundingClientRect();\n var documentRect = eDocument.documentElement.getBoundingClientRect();\n var isBody = popupParent === eDocument.body;\n var offsetSize = ePopup[offsetProperty];\n var getSize = isVertical ? getAbsoluteHeight : getAbsoluteWidth;\n var sizeOfParent = isBody ? (getSize(docElement) + docElement[scrollPositionProperty]) : popupParent[sizeProperty];\n if (isBody) {\n sizeOfParent -= Math.abs(documentRect[anchorProperty] - parentRect[anchorProperty]);\n }\n var max = sizeOfParent - offsetSize;\n return Math.min(Math.max(position, 0), Math.abs(max));\n };\n PopupService.prototype.addPopup = function (params) {\n var eDocument = this.gridOptionsService.getDocument();\n var eChild = params.eChild, ariaLabel = params.ariaLabel, alwaysOnTop = params.alwaysOnTop, positionCallback = params.positionCallback, anchorToElement = params.anchorToElement;\n if (!eDocument) {\n console.warn('AG Grid: could not find the document, document is empty');\n return { hideFunc: function () { } };\n }\n var pos = this.getPopupIndex(eChild);\n if (pos !== -1) {\n var popup = this.popupList[pos];\n return { hideFunc: popup.hideFunc };\n }\n this.initialisePopupPosition(eChild);\n var wrapperEl = this.createPopupWrapper(eChild, ariaLabel, !!alwaysOnTop);\n var removeListeners = this.addEventListenersToPopup(__assign$3(__assign$3({}, params), { wrapperEl: wrapperEl }));\n if (positionCallback) {\n positionCallback();\n }\n this.addPopupToPopupList(eChild, wrapperEl, removeListeners, anchorToElement);\n return {\n hideFunc: removeListeners\n };\n };\n PopupService.prototype.initialisePopupPosition = function (element) {\n var ePopupParent = this.getPopupParent();\n var ePopupParentRect = ePopupParent.getBoundingClientRect();\n if (!exists(element.style.top)) {\n element.style.top = ePopupParentRect.top * -1 + \"px\";\n }\n if (!exists(element.style.left)) {\n element.style.left = ePopupParentRect.left * -1 + \"px\";\n }\n };\n PopupService.prototype.createPopupWrapper = function (element, ariaLabel, alwaysOnTop) {\n var _a;\n var ePopupParent = this.getPopupParent();\n // add env CSS class to child, in case user provided a popup parent, which means\n // theme class may be missing\n var eWrapper = document.createElement('div');\n var allThemes = this.environment.getTheme().allThemes;\n if (allThemes.length) {\n (_a = eWrapper.classList).add.apply(_a, __spreadArray$9([], __read$b(allThemes)));\n }\n eWrapper.classList.add('ag-popup');\n element.classList.add(this.gridOptionsService.is('enableRtl') ? 'ag-rtl' : 'ag-ltr', 'ag-popup-child');\n if (!element.hasAttribute('role')) {\n setAriaRole(element, 'dialog');\n }\n setAriaLabel(element, ariaLabel);\n if (this.focusService.isKeyboardMode()) {\n element.classList.add(FocusService.AG_KEYBOARD_FOCUS);\n }\n eWrapper.appendChild(element);\n ePopupParent.appendChild(eWrapper);\n if (alwaysOnTop) {\n this.setAlwaysOnTop(element, true);\n }\n else {\n this.bringPopupToFront(element);\n }\n return eWrapper;\n };\n PopupService.prototype.addEventListenersToPopup = function (params) {\n var _this = this;\n var eDocument = this.gridOptionsService.getDocument();\n var ePopupParent = this.getPopupParent();\n var wrapperEl = params.wrapperEl, popupEl = params.eChild; params.click; var closedCallback = params.closedCallback, afterGuiAttached = params.afterGuiAttached, closeOnEsc = params.closeOnEsc, modal = params.modal;\n var popupHidden = false;\n var hidePopupOnKeyboardEvent = function (event) {\n if (!wrapperEl.contains(eDocument.activeElement)) {\n return;\n }\n var key = event.key;\n if (key === KeyCode.ESCAPE && !isStopPropagationForAgGrid(event)) {\n removeListeners({ keyboardEvent: event });\n }\n };\n var hidePopupOnMouseEvent = function (event) { return removeListeners({ mouseEvent: event }); };\n var hidePopupOnTouchEvent = function (event) { return removeListeners({ touchEvent: event }); };\n var removeListeners = function (popupParams) {\n if (popupParams === void 0) { popupParams = {}; }\n var mouseEvent = popupParams.mouseEvent, touchEvent = popupParams.touchEvent, keyboardEvent = popupParams.keyboardEvent;\n if (\n // we don't hide popup if the event was on the child, or any\n // children of this child\n _this.isEventFromCurrentPopup({ mouseEvent: mouseEvent, touchEvent: touchEvent }, popupEl) ||\n // this method should only be called once. the client can have different\n // paths, each one wanting to close, so this method may be called multiple times.\n popupHidden) {\n return;\n }\n popupHidden = true;\n ePopupParent.removeChild(wrapperEl);\n eDocument.removeEventListener('keydown', hidePopupOnKeyboardEvent);\n eDocument.removeEventListener('mousedown', hidePopupOnMouseEvent);\n eDocument.removeEventListener('touchstart', hidePopupOnTouchEvent);\n eDocument.removeEventListener('contextmenu', hidePopupOnMouseEvent);\n _this.eventService.removeEventListener(Events.EVENT_DRAG_STARTED, hidePopupOnMouseEvent);\n if (closedCallback) {\n closedCallback(mouseEvent || touchEvent || keyboardEvent);\n }\n _this.removePopupFromPopupList(popupEl);\n };\n if (afterGuiAttached) {\n afterGuiAttached({ hidePopup: removeListeners });\n }\n // if we add these listeners now, then the current mouse\n // click will be included, which we don't want\n window.setTimeout(function () {\n if (closeOnEsc) {\n eDocument.addEventListener('keydown', hidePopupOnKeyboardEvent);\n }\n if (modal) {\n eDocument.addEventListener('mousedown', hidePopupOnMouseEvent);\n _this.eventService.addEventListener(Events.EVENT_DRAG_STARTED, hidePopupOnMouseEvent);\n eDocument.addEventListener('touchstart', hidePopupOnTouchEvent);\n eDocument.addEventListener('contextmenu', hidePopupOnMouseEvent);\n }\n }, 0);\n return removeListeners;\n };\n PopupService.prototype.addPopupToPopupList = function (element, wrapperEl, removeListeners, anchorToElement) {\n this.popupList.push({\n element: element,\n wrapper: wrapperEl,\n hideFunc: removeListeners,\n instanceId: instanceIdSeq++,\n isAnchored: !!anchorToElement\n });\n if (anchorToElement) {\n this.setPopupPositionRelatedToElement(element, anchorToElement);\n }\n };\n PopupService.prototype.getPopupIndex = function (el) {\n return this.popupList.findIndex(function (p) { return p.element === el; });\n };\n PopupService.prototype.setPopupPositionRelatedToElement = function (popupEl, relativeElement) {\n var popupIndex = this.getPopupIndex(popupEl);\n if (popupIndex === -1) {\n return;\n }\n var popup = this.popupList[popupIndex];\n if (popup.stopAnchoringPromise) {\n popup.stopAnchoringPromise.then(function (destroyFunc) { return destroyFunc && destroyFunc(); });\n }\n popup.stopAnchoringPromise = undefined;\n popup.isAnchored = false;\n if (!relativeElement) {\n return;\n }\n // keeps popup positioned under created, eg if context menu, if user scrolls\n // using touchpad and the cell moves, it moves the popup to keep it with the cell.\n var destroyPositionTracker = this.keepPopupPositionedRelativeTo({\n element: relativeElement,\n ePopup: popupEl,\n hidePopup: popup.hideFunc\n });\n popup.stopAnchoringPromise = destroyPositionTracker;\n popup.isAnchored = true;\n return destroyPositionTracker;\n };\n PopupService.prototype.removePopupFromPopupList = function (element) {\n this.setAlignedStyles(element, null);\n this.setPopupPositionRelatedToElement(element, null);\n this.popupList = this.popupList.filter(function (p) { return p.element !== element; });\n };\n PopupService.prototype.keepPopupPositionedRelativeTo = function (params) {\n var _this = this;\n var eParent = this.getPopupParent();\n var parentRect = eParent.getBoundingClientRect();\n var element = params.element, ePopup = params.ePopup;\n var sourceRect = element.getBoundingClientRect();\n var initialDiffTop = parentRect.top - sourceRect.top;\n var initialDiffLeft = parentRect.left - sourceRect.left;\n var lastDiffTop = initialDiffTop;\n var lastDiffLeft = initialDiffLeft;\n var topPx = ePopup.style.top;\n var top = parseInt(topPx.substring(0, topPx.length - 1), 10);\n var leftPx = ePopup.style.left;\n var left = parseInt(leftPx.substring(0, leftPx.length - 1), 10);\n return new AgPromise(function (resolve) {\n _this.getFrameworkOverrides().setInterval(function () {\n var pRect = eParent.getBoundingClientRect();\n var sRect = element.getBoundingClientRect();\n var elementNotInDom = sRect.top == 0 && sRect.left == 0 && sRect.height == 0 && sRect.width == 0;\n if (elementNotInDom) {\n params.hidePopup();\n return;\n }\n var currentDiffTop = pRect.top - sRect.top;\n if (currentDiffTop != lastDiffTop) {\n var newTop = _this.keepXYWithinBounds(ePopup, top + initialDiffTop - currentDiffTop, DIRECTION.vertical);\n ePopup.style.top = newTop + \"px\";\n }\n lastDiffTop = currentDiffTop;\n var currentDiffLeft = pRect.left - sRect.left;\n if (currentDiffLeft != lastDiffLeft) {\n var newLeft = _this.keepXYWithinBounds(ePopup, left + initialDiffLeft - currentDiffLeft, DIRECTION.horizontal);\n ePopup.style.left = newLeft + \"px\";\n }\n lastDiffLeft = currentDiffLeft;\n }, 200).then(function (intervalId) {\n var result = function () {\n if (intervalId != null) {\n window.clearInterval(intervalId);\n }\n };\n resolve(result);\n });\n });\n };\n PopupService.prototype.hasAnchoredPopup = function () {\n return this.popupList.some(function (popup) { return popup.isAnchored; });\n };\n PopupService.prototype.isEventFromCurrentPopup = function (params, target) {\n var mouseEvent = params.mouseEvent, touchEvent = params.touchEvent;\n var event = mouseEvent ? mouseEvent : touchEvent;\n if (!event) {\n return false;\n }\n var indexOfThisChild = this.getPopupIndex(target);\n if (indexOfThisChild === -1) {\n return false;\n }\n for (var i = indexOfThisChild; i < this.popupList.length; i++) {\n var popup = this.popupList[i];\n if (isElementInEventPath(popup.element, event)) {\n return true;\n }\n }\n // if the user did not write their own Custom Element to be rendered as popup\n // and this component has an additional popup element, they should have the\n // `ag-custom-component-popup` class to be detected as part of the Custom Component\n return this.isElementWithinCustomPopup(event.target);\n };\n PopupService.prototype.isElementWithinCustomPopup = function (el) {\n var eDocument = this.gridOptionsService.getDocument();\n while (el && el !== eDocument.body) {\n if (el.classList.contains('ag-custom-component-popup') || el.parentElement === null) {\n return true;\n }\n el = el.parentElement;\n }\n return false;\n };\n PopupService.prototype.getWrapper = function (ePopup) {\n while (!ePopup.classList.contains('ag-popup') && ePopup.parentElement) {\n ePopup = ePopup.parentElement;\n }\n return ePopup.classList.contains('ag-popup') ? ePopup : null;\n };\n PopupService.prototype.setAlwaysOnTop = function (ePopup, alwaysOnTop) {\n var eWrapper = this.getWrapper(ePopup);\n if (!eWrapper) {\n return;\n }\n eWrapper.classList.toggle('ag-always-on-top', !!alwaysOnTop);\n if (alwaysOnTop) {\n this.bringPopupToFront(eWrapper);\n }\n };\n PopupService.prototype.bringPopupToFront = function (ePopup) {\n var parent = this.getPopupParent();\n var popupList = Array.prototype.slice.call(parent.querySelectorAll('.ag-popup'));\n var popupLen = popupList.length;\n var alwaysOnTopList = Array.prototype.slice.call(parent.querySelectorAll('.ag-popup.ag-always-on-top'));\n var onTopLength = alwaysOnTopList.length;\n var eWrapper = this.getWrapper(ePopup);\n if (!eWrapper || popupLen <= 1 || !parent.contains(ePopup)) {\n return;\n }\n var pos = popupList.indexOf(eWrapper);\n var innerEls = eWrapper.querySelectorAll('div');\n var innerElsScrollMap = [];\n innerEls.forEach(function (el) {\n if (el.scrollTop !== 0) {\n innerElsScrollMap.push([el, el.scrollTop]);\n }\n });\n if (onTopLength) {\n var isPopupAlwaysOnTop = eWrapper.classList.contains('ag-always-on-top');\n if (isPopupAlwaysOnTop) {\n if (pos !== popupLen - 1) {\n last(alwaysOnTopList).insertAdjacentElement('afterend', eWrapper);\n }\n }\n else if (pos !== popupLen - onTopLength - 1) {\n alwaysOnTopList[0].insertAdjacentElement('beforebegin', eWrapper);\n }\n }\n else if (pos !== popupLen - 1) {\n last(popupList).insertAdjacentElement('afterend', eWrapper);\n }\n while (innerElsScrollMap.length) {\n var currentEl = innerElsScrollMap.pop();\n currentEl[0].scrollTop = currentEl[1];\n }\n var params = {\n type: 'popupToFront',\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n eWrapper: eWrapper\n };\n this.eventService.dispatchEvent(params);\n };\n var PopupService_1;\n PopupService.WAIT_FOR_POPUP_CONTENT_RESIZE = 200;\n __decorate$T([\n Autowired('focusService')\n ], PopupService.prototype, \"focusService\", void 0);\n __decorate$T([\n Autowired('ctrlsService')\n ], PopupService.prototype, \"ctrlsService\", void 0);\n __decorate$T([\n Autowired('resizeObserverService')\n ], PopupService.prototype, \"resizeObserverService\", void 0);\n __decorate$T([\n PostConstruct\n ], PopupService.prototype, \"postConstruct\", null);\n PopupService = PopupService_1 = __decorate$T([\n Bean('popupService')\n ], PopupService);\n return PopupService;\n}(BeanStub));\n\nvar __extends$R = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar AgAutocompleteRow = /** @class */ (function (_super) {\n __extends$R(AgAutocompleteRow, _super);\n function AgAutocompleteRow() {\n var _this = _super.call(this, /* html */ \"\\n
\\n
\\n
\") || this;\n _this.hasHighlighting = false;\n return _this;\n }\n AgAutocompleteRow.prototype.setState = function (value, selected) {\n this.value = value;\n this.render();\n this.updateSelected(selected);\n };\n AgAutocompleteRow.prototype.updateSelected = function (selected) {\n this.addOrRemoveCssClass('ag-autocomplete-row-selected', selected);\n };\n AgAutocompleteRow.prototype.setSearchString = function (searchString) {\n var _a;\n var keepHighlighting = false;\n if (exists(searchString)) {\n var index = (_a = this.value) === null || _a === void 0 ? void 0 : _a.toLocaleLowerCase().indexOf(searchString.toLocaleLowerCase());\n if (index >= 0) {\n keepHighlighting = true;\n this.hasHighlighting = true;\n var highlightEndIndex = index + searchString.length;\n var startPart = escapeString(this.value.slice(0, index));\n var highlightedPart = escapeString(this.value.slice(index, highlightEndIndex));\n var endPart = escapeString(this.value.slice(highlightEndIndex));\n this.getGui().lastElementChild.innerHTML = startPart + \"\" + highlightedPart + \"\" + endPart;\n }\n }\n if (!keepHighlighting && this.hasHighlighting) {\n this.hasHighlighting = false;\n this.render();\n }\n };\n AgAutocompleteRow.prototype.render = function () {\n var _a;\n // putting in blank if missing, so at least the user can click on it\n this.getGui().lastElementChild.innerHTML = (_a = escapeString(this.value)) !== null && _a !== void 0 ? _a : ' ';\n };\n return AgAutocompleteRow;\n}(Component));\n\nvar __extends$Q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$S = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgAutocompleteList = /** @class */ (function (_super) {\n __extends$Q(AgAutocompleteList, _super);\n function AgAutocompleteList(params) {\n var _this = _super.call(this, AgAutocompleteList.TEMPLATE) || this;\n _this.params = params;\n _this.searchString = '';\n return _this;\n }\n AgAutocompleteList.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n AgAutocompleteList.prototype.init = function () {\n var _this = this;\n this.autocompleteEntries = this.params.autocompleteEntries;\n this.virtualList = this.createManagedBean(new VirtualList({ cssIdentifier: 'autocomplete' }));\n this.virtualList.setComponentCreator(this.createRowComponent.bind(this));\n this.eList.appendChild(this.virtualList.getGui());\n this.virtualList.setModel({\n getRowCount: function () { return _this.autocompleteEntries.length; },\n getRow: function (index) { return _this.autocompleteEntries[index]; }\n });\n var virtualListGui = this.virtualList.getGui();\n this.addManagedListener(virtualListGui, 'click', function () { return _this.params.onConfirmed(); });\n this.addManagedListener(virtualListGui, 'mousemove', this.onMouseMove.bind(this));\n this.addManagedListener(virtualListGui, 'mousedown', function (e) { return e.preventDefault(); });\n this.setSelectedValue(0);\n };\n AgAutocompleteList.prototype.onNavigationKeyDown = function (event, key) {\n // if we don't preventDefault the page body and/or grid scroll will move.\n event.preventDefault();\n var oldIndex = this.autocompleteEntries.indexOf(this.selectedValue);\n var newIndex = key === KeyCode.UP ? oldIndex - 1 : oldIndex + 1;\n this.checkSetSelectedValue(newIndex);\n };\n AgAutocompleteList.prototype.setSearch = function (searchString) {\n this.searchString = searchString;\n if (exists(searchString)) {\n this.runSearch();\n }\n else {\n // reset\n this.autocompleteEntries = this.params.autocompleteEntries;\n this.virtualList.refresh();\n this.checkSetSelectedValue(0);\n }\n this.updateSearchInList();\n };\n AgAutocompleteList.prototype.runContainsSearch = function (searchString, searchStrings) {\n var topMatch;\n var topMatchStartsWithSearchString = false;\n var lowerCaseSearchString = searchString.toLocaleLowerCase();\n var allMatches = searchStrings.filter(function (string) {\n var lowerCaseString = string.toLocaleLowerCase();\n var index = lowerCaseString.indexOf(lowerCaseSearchString);\n var startsWithSearchString = index === 0;\n var isMatch = index >= 0;\n // top match is shortest value that starts with the search string, otherwise shortest value that includes the search string\n if (isMatch && (!topMatch ||\n (!topMatchStartsWithSearchString && startsWithSearchString) ||\n (topMatchStartsWithSearchString === startsWithSearchString && string.length < topMatch.length))) {\n topMatch = string;\n topMatchStartsWithSearchString = startsWithSearchString;\n }\n return isMatch;\n });\n if (!topMatch && allMatches.length) {\n topMatch = allMatches[0];\n }\n return { topMatch: topMatch, allMatches: allMatches };\n };\n AgAutocompleteList.prototype.runSearch = function () {\n var _a, _b;\n var autocompleteEntries = this.params.autocompleteEntries;\n var searchStrings = autocompleteEntries.map(function (v) { var _a; return (_a = v.displayValue) !== null && _a !== void 0 ? _a : v.key; });\n var matchingStrings;\n var topSuggestion;\n if (this.params.useFuzzySearch) {\n matchingStrings = fuzzySuggestions(this.searchString, searchStrings, true).values;\n topSuggestion = matchingStrings.length ? matchingStrings[0] : undefined;\n }\n else {\n var containsMatches = this.runContainsSearch(this.searchString, searchStrings);\n matchingStrings = containsMatches.allMatches;\n topSuggestion = containsMatches.topMatch;\n }\n var filteredEntries = autocompleteEntries.filter(function (_a) {\n var key = _a.key, displayValue = _a.displayValue;\n return matchingStrings.includes(displayValue !== null && displayValue !== void 0 ? displayValue : key);\n });\n if (!filteredEntries.length && this.selectedValue && ((_b = (_a = this.params) === null || _a === void 0 ? void 0 : _a.forceLastSelection) === null || _b === void 0 ? void 0 : _b.call(_a, this.selectedValue, this.searchString))) {\n filteredEntries = [this.selectedValue];\n }\n this.autocompleteEntries = filteredEntries;\n this.virtualList.refresh();\n if (!topSuggestion) {\n return;\n }\n var topSuggestionIndex = matchingStrings.indexOf(topSuggestion);\n this.checkSetSelectedValue(topSuggestionIndex);\n };\n AgAutocompleteList.prototype.updateSearchInList = function () {\n var _this = this;\n this.virtualList.forEachRenderedRow(function (row) { return row.setSearchString(_this.searchString); });\n };\n AgAutocompleteList.prototype.checkSetSelectedValue = function (index) {\n if (index >= 0 && index < this.autocompleteEntries.length) {\n this.setSelectedValue(index);\n }\n };\n AgAutocompleteList.prototype.setSelectedValue = function (index) {\n var value = this.autocompleteEntries[index];\n if (this.selectedValue === value) {\n return;\n }\n this.selectedValue = value;\n this.virtualList.ensureIndexVisible(index);\n this.virtualList.forEachRenderedRow(function (cmp, idx) {\n cmp.updateSelected(index === idx);\n });\n };\n AgAutocompleteList.prototype.createRowComponent = function (value) {\n var _a;\n var row = new AgAutocompleteRow();\n this.getContext().createBean(row);\n row.setState((_a = value.displayValue) !== null && _a !== void 0 ? _a : value.key, value === this.selectedValue);\n return row;\n };\n AgAutocompleteList.prototype.onMouseMove = function (mouseEvent) {\n var rect = this.virtualList.getGui().getBoundingClientRect();\n var scrollTop = this.virtualList.getScrollTop();\n var mouseY = mouseEvent.clientY - rect.top + scrollTop;\n var row = Math.floor(mouseY / this.virtualList.getRowHeight());\n this.checkSetSelectedValue(row);\n };\n AgAutocompleteList.prototype.afterGuiAttached = function () {\n this.virtualList.refresh();\n };\n AgAutocompleteList.prototype.getSelectedValue = function () {\n var _a;\n if (!this.autocompleteEntries.length) {\n return null;\n }\n return (_a = this.selectedValue) !== null && _a !== void 0 ? _a : null;\n };\n AgAutocompleteList.TEMPLATE = \"
\\n
\\n
\";\n __decorate$S([\n RefSelector('eList')\n ], AgAutocompleteList.prototype, \"eList\", void 0);\n __decorate$S([\n PostConstruct\n ], AgAutocompleteList.prototype, \"init\", null);\n return AgAutocompleteList;\n}(PopupComponent));\n\nvar __extends$P = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$R = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgAutocomplete = /** @class */ (function (_super) {\n __extends$P(AgAutocomplete, _super);\n function AgAutocomplete() {\n var _this = _super.call(this, /* html */ \"\\n
\\n \\n
\") || this;\n _this.isListOpen = false;\n _this.lastPosition = 0;\n _this.valid = true;\n return _this;\n }\n AgAutocomplete.prototype.postConstruct = function () {\n var _this = this;\n this.eAutocompleteInput.onValueChange(function (value) { return _this.onValueChanged(value); });\n this.eAutocompleteInput.getInputElement().setAttribute('autocomplete', 'off');\n this.addGuiEventListener('keydown', this.onKeyDown.bind(this));\n this.addGuiEventListener('click', this.updatePositionAndList.bind(this));\n this.addDestroyFunc(function () {\n _this.destroyBean(_this.autocompleteList);\n });\n this.addGuiEventListener('focusout', function () { return _this.onFocusOut(); });\n };\n AgAutocomplete.prototype.onValueChanged = function (value) {\n var parsedValue = makeNull(value);\n this.updateValue(parsedValue);\n this.updateAutocompleteList(parsedValue);\n };\n AgAutocomplete.prototype.updateValue = function (value) {\n this.updateLastPosition();\n this.dispatchEvent({\n type: AgAutocomplete.EVENT_VALUE_CHANGED,\n value: value\n });\n this.validate(value);\n };\n AgAutocomplete.prototype.updateAutocompleteList = function (value) {\n var _a, _b, _c, _d;\n var autocompleteListParams = (_b = (_a = this.listGenerator) === null || _a === void 0 ? void 0 : _a.call(this, value, this.lastPosition)) !== null && _b !== void 0 ? _b : { enabled: false };\n if (!autocompleteListParams.type || autocompleteListParams.type !== ((_c = this.autocompleteListParams) === null || _c === void 0 ? void 0 : _c.type)) {\n if (this.isListOpen) {\n this.closeList();\n }\n }\n this.autocompleteListParams = autocompleteListParams;\n if ((_d = this.autocompleteListParams) === null || _d === void 0 ? void 0 : _d.enabled) {\n if (!this.isListOpen) {\n this.openList();\n }\n var searchString = this.autocompleteListParams.searchString;\n this.autocompleteList.setSearch(searchString !== null && searchString !== void 0 ? searchString : '');\n }\n else {\n if (this.isListOpen) {\n this.closeList();\n }\n }\n };\n AgAutocomplete.prototype.onKeyDown = function (event) {\n var _this = this;\n var key = event.key;\n this.updateLastPosition();\n switch (key) {\n case KeyCode.ENTER:\n this.onEnterKeyDown(event);\n break;\n case KeyCode.TAB:\n this.onTabKeyDown(event);\n break;\n case KeyCode.DOWN:\n case KeyCode.UP:\n this.onUpDownKeyDown(event, key);\n break;\n case KeyCode.LEFT:\n case KeyCode.RIGHT:\n case KeyCode.PAGE_HOME:\n case KeyCode.PAGE_END:\n // input position is updated after this is called, so do async\n setTimeout(function () {\n _this.updatePositionAndList();\n });\n break;\n case KeyCode.ESCAPE:\n this.onEscapeKeyDown(event);\n break;\n case KeyCode.SPACE:\n if (event.ctrlKey && !this.isListOpen) {\n event.preventDefault();\n this.forceOpenList();\n }\n break;\n }\n };\n AgAutocomplete.prototype.confirmSelection = function () {\n var _a;\n var selectedValue = (_a = this.autocompleteList) === null || _a === void 0 ? void 0 : _a.getSelectedValue();\n if (selectedValue) {\n this.closeList();\n this.dispatchEvent({\n type: AgAutocomplete.EVENT_OPTION_SELECTED,\n value: this.getValue(),\n position: this.lastPosition,\n updateEntry: selectedValue,\n autocompleteType: this.autocompleteListParams.type\n });\n }\n };\n AgAutocomplete.prototype.onTabKeyDown = function (event) {\n if (this.isListOpen) {\n event.preventDefault();\n event.stopPropagation();\n this.confirmSelection();\n }\n };\n AgAutocomplete.prototype.onEnterKeyDown = function (event) {\n event.preventDefault();\n if (this.isListOpen) {\n this.confirmSelection();\n }\n else {\n this.onCompleted();\n }\n };\n AgAutocomplete.prototype.onUpDownKeyDown = function (event, key) {\n var _a;\n event.preventDefault();\n if (!this.isListOpen) {\n this.forceOpenList();\n }\n else {\n (_a = this.autocompleteList) === null || _a === void 0 ? void 0 : _a.onNavigationKeyDown(event, key);\n }\n };\n AgAutocomplete.prototype.onEscapeKeyDown = function (event) {\n if (this.isListOpen) {\n event.preventDefault();\n event.stopPropagation();\n this.closeList();\n this.setCaret(this.lastPosition, true);\n }\n };\n AgAutocomplete.prototype.onFocusOut = function () {\n if (this.isListOpen) {\n this.closeList();\n }\n };\n AgAutocomplete.prototype.updatePositionAndList = function () {\n var _a;\n this.updateLastPosition();\n this.updateAutocompleteList((_a = this.eAutocompleteInput.getValue()) !== null && _a !== void 0 ? _a : null);\n };\n AgAutocomplete.prototype.setCaret = function (position, setFocus) {\n var eDocument = this.gridOptionsService.getDocument();\n if (setFocus && eDocument.activeElement === eDocument.body) {\n // clicking on the list loses focus, so restore\n this.eAutocompleteInput.getFocusableElement().focus();\n }\n this.eAutocompleteInput.getInputElement().setSelectionRange(position, position);\n };\n AgAutocomplete.prototype.forceOpenList = function () {\n this.onValueChanged(this.eAutocompleteInput.getValue());\n };\n AgAutocomplete.prototype.updateLastPosition = function () {\n var _a;\n this.lastPosition = (_a = this.eAutocompleteInput.getInputElement().selectionStart) !== null && _a !== void 0 ? _a : 0;\n };\n AgAutocomplete.prototype.validate = function (value) {\n var _a;\n if (!this.validator) {\n return;\n }\n this.validationMessage = this.validator(value);\n this.eAutocompleteInput.getInputElement().setCustomValidity((_a = this.validationMessage) !== null && _a !== void 0 ? _a : '');\n this.valid = !this.validationMessage;\n this.dispatchEvent({\n type: AgAutocomplete.EVENT_VALID_CHANGED,\n isValid: this.valid,\n validationMessage: this.validationMessage\n });\n };\n AgAutocomplete.prototype.openList = function () {\n var _this = this;\n this.isListOpen = true;\n // this is unmanaged as it gets destroyed/created each time it is opened\n this.autocompleteList = this.createBean(new AgAutocompleteList({\n autocompleteEntries: this.autocompleteListParams.entries,\n onConfirmed: function () { return _this.confirmSelection(); },\n forceLastSelection: this.forceLastSelection\n }));\n var ePopupGui = this.autocompleteList.getGui();\n var positionParams = {\n ePopup: ePopupGui,\n type: 'autocomplete',\n eventSource: this.getGui(),\n position: 'under',\n alignSide: this.gridOptionsService.is('enableRtl') ? 'right' : 'left',\n keepWithinBounds: true\n };\n var addPopupRes = this.popupService.addPopup({\n eChild: ePopupGui,\n anchorToElement: this.getGui(),\n positionCallback: function () { return _this.popupService.positionPopupByComponent(positionParams); },\n ariaLabel: this.listAriaLabel\n });\n this.hidePopup = addPopupRes.hideFunc;\n this.autocompleteList.afterGuiAttached();\n };\n AgAutocomplete.prototype.closeList = function () {\n this.isListOpen = false;\n this.hidePopup();\n this.destroyBean(this.autocompleteList);\n this.autocompleteList = null;\n };\n AgAutocomplete.prototype.onCompleted = function () {\n if (this.isListOpen) {\n this.closeList();\n }\n this.dispatchEvent({\n type: AgAutocomplete.EVENT_VALUE_CONFIRMED,\n value: this.getValue(),\n isValid: this.isValid()\n });\n };\n AgAutocomplete.prototype.getValue = function () {\n return makeNull(this.eAutocompleteInput.getValue());\n };\n AgAutocomplete.prototype.setInputPlaceholder = function (placeholder) {\n this.eAutocompleteInput.setInputPlaceholder(placeholder);\n return this;\n };\n AgAutocomplete.prototype.setInputAriaLabel = function (label) {\n this.eAutocompleteInput.setInputAriaLabel(label);\n return this;\n };\n AgAutocomplete.prototype.setListAriaLabel = function (label) {\n this.listAriaLabel = label;\n return this;\n };\n AgAutocomplete.prototype.setListGenerator = function (listGenerator) {\n this.listGenerator = listGenerator;\n return this;\n };\n AgAutocomplete.prototype.setValidator = function (validator) {\n this.validator = validator;\n return this;\n };\n AgAutocomplete.prototype.isValid = function () {\n return this.valid;\n };\n AgAutocomplete.prototype.setValue = function (params) {\n var value = params.value, position = params.position, silent = params.silent, updateListOnlyIfOpen = params.updateListOnlyIfOpen, restoreFocus = params.restoreFocus;\n this.eAutocompleteInput.setValue(value, true);\n this.setCaret(position !== null && position !== void 0 ? position : this.lastPosition, restoreFocus);\n if (!silent) {\n this.updateValue(value);\n }\n if (!updateListOnlyIfOpen || this.isListOpen) {\n this.updateAutocompleteList(value);\n }\n };\n AgAutocomplete.prototype.setForceLastSelection = function (forceLastSelection) {\n this.forceLastSelection = forceLastSelection;\n return this;\n };\n AgAutocomplete.prototype.setInputDisabled = function (disabled) {\n this.eAutocompleteInput.setDisabled(disabled);\n return this;\n };\n AgAutocomplete.EVENT_VALUE_CHANGED = 'eventValueChanged';\n AgAutocomplete.EVENT_VALUE_CONFIRMED = 'eventValueConfirmed';\n AgAutocomplete.EVENT_OPTION_SELECTED = 'eventOptionSelected';\n AgAutocomplete.EVENT_VALID_CHANGED = 'eventValidChanged';\n __decorate$R([\n Autowired('popupService')\n ], AgAutocomplete.prototype, \"popupService\", void 0);\n __decorate$R([\n RefSelector('eAutocompleteInput')\n ], AgAutocomplete.prototype, \"eAutocompleteInput\", void 0);\n __decorate$R([\n PostConstruct\n ], AgAutocomplete.prototype, \"postConstruct\", null);\n return AgAutocomplete;\n}(Component));\n\nvar OUTSIDE_ANGULAR_EVENTS = ['mouseover', 'mouseout', 'mouseenter', 'mouseleave', 'mousemove'];\nvar PASSIVE_EVENTS = ['touchstart', 'touchend', 'touchmove', 'touchcancel'];\n/** The base frameworks, eg React & Angular, override this bean with implementations specific to their requirement. */\nvar VanillaFrameworkOverrides = /** @class */ (function () {\n function VanillaFrameworkOverrides() {\n this.renderingEngine = \"vanilla\";\n this.isOutsideAngular = function (eventType) { return includes(OUTSIDE_ANGULAR_EVENTS, eventType); };\n }\n // for Vanilla JS, we use simple timeout\n VanillaFrameworkOverrides.prototype.setTimeout = function (action, timeout) {\n window.setTimeout(action, timeout);\n };\n VanillaFrameworkOverrides.prototype.setInterval = function (action, timeout) {\n return new AgPromise(function (resolve) {\n resolve(window.setInterval(action, timeout));\n });\n };\n // for Vanilla JS, we just add the event to the element\n VanillaFrameworkOverrides.prototype.addEventListener = function (element, type, listener, useCapture) {\n var isPassive = includes(PASSIVE_EVENTS, type);\n element.addEventListener(type, listener, { capture: !!useCapture, passive: isPassive });\n };\n // for Vanilla JS, we just execute the listener\n VanillaFrameworkOverrides.prototype.dispatchEvent = function (eventType, listener, global) {\n listener();\n };\n VanillaFrameworkOverrides.prototype.frameworkComponent = function (name) {\n return null;\n };\n VanillaFrameworkOverrides.prototype.isFrameworkComponent = function (comp) {\n return false;\n };\n return VanillaFrameworkOverrides;\n}());\n\nvar __extends$O = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$Q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$a = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$8 = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar CellNavigationService = /** @class */ (function (_super) {\n __extends$O(CellNavigationService, _super);\n function CellNavigationService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // returns null if no cell to focus on, ie at the end of the grid\n CellNavigationService.prototype.getNextCellToFocus = function (key, focusedCell, ctrlPressed) {\n if (ctrlPressed === void 0) { ctrlPressed = false; }\n if (ctrlPressed) {\n return this.getNextCellToFocusWithCtrlPressed(key, focusedCell);\n }\n return this.getNextCellToFocusWithoutCtrlPressed(key, focusedCell);\n };\n CellNavigationService.prototype.getNextCellToFocusWithCtrlPressed = function (key, focusedCell) {\n var upKey = key === KeyCode.UP;\n var downKey = key === KeyCode.DOWN;\n var leftKey = key === KeyCode.LEFT;\n var column;\n var rowIndex;\n if (upKey || downKey) {\n rowIndex = upKey ? this.paginationProxy.getPageFirstRow() : this.paginationProxy.getPageLastRow();\n column = focusedCell.column;\n }\n else {\n var allColumns = this.columnModel.getAllDisplayedColumns();\n var isRtl = this.gridOptionsService.is('enableRtl');\n rowIndex = focusedCell.rowIndex;\n column = leftKey !== isRtl ? allColumns[0] : last(allColumns);\n }\n return {\n rowIndex: rowIndex,\n rowPinned: null,\n column: column\n };\n };\n CellNavigationService.prototype.getNextCellToFocusWithoutCtrlPressed = function (key, focusedCell) {\n // starting with the provided cell, we keep moving until we find a cell we can\n // focus on.\n var pointer = focusedCell;\n var finished = false;\n // finished will be true when either:\n // a) cell found that we can focus on\n // b) run out of cells (ie the method returns null)\n while (!finished) {\n switch (key) {\n case KeyCode.UP:\n pointer = this.getCellAbove(pointer);\n break;\n case KeyCode.DOWN:\n pointer = this.getCellBelow(pointer);\n break;\n case KeyCode.RIGHT:\n if (this.gridOptionsService.is('enableRtl')) {\n pointer = this.getCellToLeft(pointer);\n }\n else {\n pointer = this.getCellToRight(pointer);\n }\n break;\n case KeyCode.LEFT:\n if (this.gridOptionsService.is('enableRtl')) {\n pointer = this.getCellToRight(pointer);\n }\n else {\n pointer = this.getCellToLeft(pointer);\n }\n break;\n default:\n pointer = null;\n console.warn('AG Grid: unknown key for navigation ' + key);\n break;\n }\n if (pointer) {\n finished = this.isCellGoodToFocusOn(pointer);\n }\n else {\n finished = true;\n }\n }\n return pointer;\n };\n CellNavigationService.prototype.isCellGoodToFocusOn = function (gridCell) {\n var column = gridCell.column;\n var rowNode;\n switch (gridCell.rowPinned) {\n case 'top':\n rowNode = this.pinnedRowModel.getPinnedTopRow(gridCell.rowIndex);\n break;\n case 'bottom':\n rowNode = this.pinnedRowModel.getPinnedBottomRow(gridCell.rowIndex);\n break;\n default:\n rowNode = this.rowModel.getRow(gridCell.rowIndex);\n break;\n }\n if (!rowNode) {\n return false;\n }\n var suppressNavigable = column.isSuppressNavigable(rowNode);\n return !suppressNavigable;\n };\n CellNavigationService.prototype.getCellToLeft = function (lastCell) {\n if (!lastCell) {\n return null;\n }\n var colToLeft = this.columnModel.getDisplayedColBefore(lastCell.column);\n if (!colToLeft) {\n return null;\n }\n return {\n rowIndex: lastCell.rowIndex,\n column: colToLeft,\n rowPinned: lastCell.rowPinned\n };\n };\n CellNavigationService.prototype.getCellToRight = function (lastCell) {\n if (!lastCell) {\n return null;\n }\n var colToRight = this.columnModel.getDisplayedColAfter(lastCell.column);\n // if already on right, do nothing\n if (!colToRight) {\n return null;\n }\n return {\n rowIndex: lastCell.rowIndex,\n column: colToRight,\n rowPinned: lastCell.rowPinned\n };\n };\n CellNavigationService.prototype.getRowBelow = function (rowPosition) {\n // if already on top row, do nothing\n var index = rowPosition.rowIndex;\n var pinned = rowPosition.rowPinned;\n if (this.isLastRowInContainer(rowPosition)) {\n switch (pinned) {\n case 'bottom':\n // never any rows after pinned bottom\n return null;\n case 'top':\n // if on last row of pinned top, then next row is main body (if rows exist),\n // otherwise it's the pinned bottom\n if (this.rowModel.isRowsToRender()) {\n return { rowIndex: this.paginationProxy.getPageFirstRow(), rowPinned: null };\n }\n if (this.pinnedRowModel.isRowsToRender('bottom')) {\n return { rowIndex: 0, rowPinned: 'bottom' };\n }\n return null;\n default:\n // if in the main body, then try pinned bottom, otherwise return nothing\n if (this.pinnedRowModel.isRowsToRender('bottom')) {\n return { rowIndex: 0, rowPinned: 'bottom' };\n }\n return null;\n }\n }\n var rowNode = this.rowModel.getRow(rowPosition.rowIndex);\n var nextStickyPosition = this.getNextStickyPosition(rowNode);\n if (nextStickyPosition) {\n return nextStickyPosition;\n }\n return { rowIndex: index + 1, rowPinned: pinned };\n };\n CellNavigationService.prototype.getNextStickyPosition = function (rowNode, up) {\n if (!this.gridOptionsService.isGroupRowsSticky() || !rowNode || !rowNode.sticky) {\n return;\n }\n var stickyRowCtrls = __spreadArray$8([], __read$a(this.rowRenderer.getStickyTopRowCtrls())).sort(function (a, b) { return a.getRowNode().rowIndex - b.getRowNode().rowIndex; });\n var diff = up ? -1 : 1;\n var idx = stickyRowCtrls.findIndex(function (ctrl) { return ctrl.getRowNode().rowIndex === rowNode.rowIndex; });\n var nextCtrl = stickyRowCtrls[idx + diff];\n if (nextCtrl) {\n return { rowIndex: nextCtrl.getRowNode().rowIndex, rowPinned: null };\n }\n };\n CellNavigationService.prototype.getCellBelow = function (lastCell) {\n if (!lastCell) {\n return null;\n }\n var rowBelow = this.getRowBelow(lastCell);\n if (rowBelow) {\n return {\n rowIndex: rowBelow.rowIndex,\n column: lastCell.column,\n rowPinned: rowBelow.rowPinned\n };\n }\n return null;\n };\n CellNavigationService.prototype.isLastRowInContainer = function (rowPosition) {\n var pinned = rowPosition.rowPinned;\n var index = rowPosition.rowIndex;\n if (pinned === 'top') {\n var lastTopIndex = this.pinnedRowModel.getPinnedTopRowData().length - 1;\n return lastTopIndex <= index;\n }\n if (pinned === 'bottom') {\n var lastBottomIndex = this.pinnedRowModel.getPinnedBottomRowData().length - 1;\n return lastBottomIndex <= index;\n }\n var lastBodyIndex = this.paginationProxy.getPageLastRow();\n return lastBodyIndex <= index;\n };\n CellNavigationService.prototype.getRowAbove = function (rowPosition) {\n // if already on top row, do nothing\n var index = rowPosition.rowIndex;\n var pinned = rowPosition.rowPinned;\n var isFirstRow = pinned ? index === 0 : index === this.paginationProxy.getPageFirstRow();\n // if already on top row, do nothing\n if (isFirstRow) {\n if (pinned === 'top') {\n return null;\n }\n if (!pinned) {\n if (this.pinnedRowModel.isRowsToRender('top')) {\n return this.getLastFloatingTopRow();\n }\n return null;\n }\n // last floating bottom\n if (this.rowModel.isRowsToRender()) {\n return this.getLastBodyCell();\n }\n if (this.pinnedRowModel.isRowsToRender('top')) {\n return this.getLastFloatingTopRow();\n }\n return null;\n }\n var rowNode = this.rowModel.getRow(rowPosition.rowIndex);\n var nextStickyPosition = this.getNextStickyPosition(rowNode, true);\n if (nextStickyPosition) {\n return nextStickyPosition;\n }\n return { rowIndex: index - 1, rowPinned: pinned };\n };\n CellNavigationService.prototype.getCellAbove = function (lastCell) {\n if (!lastCell) {\n return null;\n }\n var rowAbove = this.getRowAbove({ rowIndex: lastCell.rowIndex, rowPinned: lastCell.rowPinned });\n if (rowAbove) {\n return {\n rowIndex: rowAbove.rowIndex,\n column: lastCell.column,\n rowPinned: rowAbove.rowPinned\n };\n }\n return null;\n };\n CellNavigationService.prototype.getLastBodyCell = function () {\n var lastBodyRow = this.paginationProxy.getPageLastRow();\n return { rowIndex: lastBodyRow, rowPinned: null };\n };\n CellNavigationService.prototype.getLastFloatingTopRow = function () {\n var lastFloatingRow = this.pinnedRowModel.getPinnedTopRowData().length - 1;\n return { rowIndex: lastFloatingRow, rowPinned: 'top' };\n };\n CellNavigationService.prototype.getNextTabbedCell = function (gridCell, backwards) {\n if (backwards) {\n return this.getNextTabbedCellBackwards(gridCell);\n }\n return this.getNextTabbedCellForwards(gridCell);\n };\n CellNavigationService.prototype.getNextTabbedCellForwards = function (gridCell) {\n var displayedColumns = this.columnModel.getAllDisplayedColumns();\n var newRowIndex = gridCell.rowIndex;\n var newFloating = gridCell.rowPinned;\n // move along to the next cell\n var newColumn = this.columnModel.getDisplayedColAfter(gridCell.column);\n // check if end of the row, and if so, go forward a row\n if (!newColumn) {\n newColumn = displayedColumns[0];\n var rowBelow = this.getRowBelow(gridCell);\n if (missing(rowBelow)) {\n return null;\n }\n // If we are tabbing and there is a paging panel present, tabbing should go\n // to the paging panel instead of loading the next page.\n if (!rowBelow.rowPinned && !this.paginationProxy.isRowInPage(rowBelow)) {\n return null;\n }\n newRowIndex = rowBelow ? rowBelow.rowIndex : null;\n newFloating = rowBelow ? rowBelow.rowPinned : null;\n }\n return { rowIndex: newRowIndex, column: newColumn, rowPinned: newFloating };\n };\n CellNavigationService.prototype.getNextTabbedCellBackwards = function (gridCell) {\n var displayedColumns = this.columnModel.getAllDisplayedColumns();\n var newRowIndex = gridCell.rowIndex;\n var newFloating = gridCell.rowPinned;\n // move along to the next cell\n var newColumn = this.columnModel.getDisplayedColBefore(gridCell.column);\n // check if end of the row, and if so, go forward a row\n if (!newColumn) {\n newColumn = last(displayedColumns);\n var rowAbove = this.getRowAbove({ rowIndex: gridCell.rowIndex, rowPinned: gridCell.rowPinned });\n if (missing(rowAbove)) {\n return null;\n }\n // If we are tabbing and there is a paging panel present, tabbing should go\n // to the paging panel instead of loading the next page.\n if (!rowAbove.rowPinned && !this.paginationProxy.isRowInPage(rowAbove)) {\n return null;\n }\n newRowIndex = rowAbove ? rowAbove.rowIndex : null;\n newFloating = rowAbove ? rowAbove.rowPinned : null;\n }\n return { rowIndex: newRowIndex, column: newColumn, rowPinned: newFloating };\n };\n __decorate$Q([\n Autowired('columnModel')\n ], CellNavigationService.prototype, \"columnModel\", void 0);\n __decorate$Q([\n Autowired('rowModel')\n ], CellNavigationService.prototype, \"rowModel\", void 0);\n __decorate$Q([\n Autowired('rowRenderer')\n ], CellNavigationService.prototype, \"rowRenderer\", void 0);\n __decorate$Q([\n Autowired('pinnedRowModel')\n ], CellNavigationService.prototype, \"pinnedRowModel\", void 0);\n __decorate$Q([\n Autowired('paginationProxy')\n ], CellNavigationService.prototype, \"paginationProxy\", void 0);\n CellNavigationService = __decorate$Q([\n Bean('cellNavigationService')\n ], CellNavigationService);\n return CellNavigationService;\n}(BeanStub));\n\nvar __extends$N = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$P = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$6 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar AlignedGridsService = /** @class */ (function (_super) {\n __extends$N(AlignedGridsService, _super);\n function AlignedGridsService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // flag to mark if we are consuming. to avoid cyclic events (ie other grid firing back to master\n // while processing a master event) we mark this if consuming an event, and if we are, then\n // we don't fire back any events.\n _this.consuming = false;\n return _this;\n }\n AlignedGridsService.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('AlignedGridsService');\n };\n AlignedGridsService.prototype.init = function () {\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_MOVED, this.fireColumnEvent.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VISIBLE, this.fireColumnEvent.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PINNED, this.fireColumnEvent.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_GROUP_OPENED, this.fireColumnEvent.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_RESIZED, this.fireColumnEvent.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_BODY_SCROLL, this.fireScrollEvent.bind(this));\n };\n // common logic across all the fire methods\n AlignedGridsService.prototype.fireEvent = function (callback) {\n // if we are already consuming, then we are acting on an event from a master,\n // so we don't cause a cyclic firing of events\n if (this.consuming) {\n return;\n }\n // iterate through the aligned grids, and pass each aligned grid service to the callback\n var otherGrids = this.gridOptionsService.get('alignedGrids');\n if (otherGrids) {\n otherGrids.forEach(function (otherGridOptions) {\n if (otherGridOptions.api) {\n var alignedGridService = otherGridOptions.api.__getAlignedGridService();\n callback(alignedGridService);\n }\n });\n }\n };\n // common logic across all consume methods. very little common logic, however extracting\n // guarantees consistency across the methods.\n AlignedGridsService.prototype.onEvent = function (callback) {\n this.consuming = true;\n callback();\n this.consuming = false;\n };\n AlignedGridsService.prototype.fireColumnEvent = function (event) {\n this.fireEvent(function (alignedGridsService) {\n alignedGridsService.onColumnEvent(event);\n });\n };\n AlignedGridsService.prototype.fireScrollEvent = function (event) {\n if (event.direction !== 'horizontal') {\n return;\n }\n this.fireEvent(function (alignedGridsService) {\n alignedGridsService.onScrollEvent(event);\n });\n };\n AlignedGridsService.prototype.onScrollEvent = function (event) {\n var _this = this;\n this.onEvent(function () {\n var gridBodyCon = _this.ctrlsService.getGridBodyCtrl();\n gridBodyCon.getScrollFeature().setHorizontalScrollPosition(event.left, true);\n });\n };\n AlignedGridsService.prototype.getMasterColumns = function (event) {\n var result = [];\n if (event.columns) {\n event.columns.forEach(function (column) {\n result.push(column);\n });\n }\n else if (event.column) {\n result.push(event.column);\n }\n return result;\n };\n AlignedGridsService.prototype.getColumnIds = function (event) {\n var result = [];\n if (event.columns) {\n event.columns.forEach(function (column) {\n result.push(column.getColId());\n });\n }\n else if (event.column) {\n result.push(event.column.getColId());\n }\n return result;\n };\n AlignedGridsService.prototype.onColumnEvent = function (event) {\n var _this = this;\n this.onEvent(function () {\n switch (event.type) {\n case Events.EVENT_COLUMN_MOVED:\n case Events.EVENT_COLUMN_VISIBLE:\n case Events.EVENT_COLUMN_PINNED:\n case Events.EVENT_COLUMN_RESIZED:\n var colEvent = event;\n _this.processColumnEvent(colEvent);\n break;\n case Events.EVENT_COLUMN_GROUP_OPENED:\n var groupOpenedEvent = event;\n _this.processGroupOpenedEvent(groupOpenedEvent);\n break;\n case Events.EVENT_COLUMN_PIVOT_CHANGED:\n // we cannot support pivoting with aligned grids as the columns will be out of sync as the\n // grids will have columns created based on the row data of the grid.\n console.warn('AG Grid: pivoting is not supported with aligned grids. ' +\n 'You can only use one of these features at a time in a grid.');\n break;\n }\n });\n };\n AlignedGridsService.prototype.processGroupOpenedEvent = function (groupOpenedEvent) {\n // likewise for column group\n var masterColumnGroup = groupOpenedEvent.columnGroup;\n var otherColumnGroup = null;\n if (masterColumnGroup) {\n var groupId = masterColumnGroup.getGroupId();\n otherColumnGroup = this.columnModel.getProvidedColumnGroup(groupId);\n }\n if (masterColumnGroup && !otherColumnGroup) {\n return;\n }\n this.logger.log('onColumnEvent-> processing ' + groupOpenedEvent + ' expanded = ' + masterColumnGroup.isExpanded());\n this.columnModel.setColumnGroupOpened(otherColumnGroup, masterColumnGroup.isExpanded(), \"alignedGridChanged\");\n };\n AlignedGridsService.prototype.processColumnEvent = function (colEvent) {\n var _this = this;\n var _a;\n // the column in the event is from the master grid. need to\n // look up the equivalent from this (other) grid\n var masterColumn = colEvent.column;\n var otherColumn = null;\n if (masterColumn) {\n otherColumn = this.columnModel.getPrimaryColumn(masterColumn.getColId());\n }\n // if event was with respect to a master column, that is not present in this\n // grid, then we ignore the event\n if (masterColumn && !otherColumn) {\n return;\n }\n // in time, all the methods below should use the column ids, it's a more generic way\n // of handling columns, and also allows for single or multi column events\n var masterColumns = this.getMasterColumns(colEvent);\n switch (colEvent.type) {\n case Events.EVENT_COLUMN_MOVED:\n // when the user moves columns via applyColumnState, we can't depend on moving specific columns\n // to an index, as there maybe be many indexes columns moved to (as wasn't result of a mouse drag).\n // so only way to be sure is match the order of all columns using Column State.\n {\n var movedEvent = colEvent;\n var srcColState = colEvent.columnApi.getColumnState();\n var destColState = srcColState.map(function (s) { return ({ colId: s.colId }); });\n this.columnModel.applyColumnState({ state: destColState, applyOrder: true }, \"alignedGridChanged\");\n this.logger.log(\"onColumnEvent-> processing \" + colEvent.type + \" toIndex = \" + movedEvent.toIndex);\n }\n break;\n case Events.EVENT_COLUMN_VISIBLE:\n // when the user changes visibility via applyColumnState, we can't depend on visibility flag in event\n // as there maybe be mix of true/false (as wasn't result of a mouse click to set visiblity).\n // so only way to be sure is match the visibility of all columns using Column State.\n {\n var visibleEvent = colEvent;\n var srcColState = colEvent.columnApi.getColumnState();\n var destColState = srcColState.map(function (s) { return ({ colId: s.colId, hide: s.hide }); });\n this.columnModel.applyColumnState({ state: destColState }, \"alignedGridChanged\");\n this.logger.log(\"onColumnEvent-> processing \" + colEvent.type + \" visible = \" + visibleEvent.visible);\n }\n break;\n case Events.EVENT_COLUMN_PINNED:\n {\n var pinnedEvent = colEvent;\n var srcColState = colEvent.columnApi.getColumnState();\n var destColState = srcColState.map(function (s) { return ({ colId: s.colId, pinned: s.pinned }); });\n this.columnModel.applyColumnState({ state: destColState }, \"alignedGridChanged\");\n this.logger.log(\"onColumnEvent-> processing \" + colEvent.type + \" pinned = \" + pinnedEvent.pinned);\n }\n break;\n case Events.EVENT_COLUMN_RESIZED:\n var resizedEvent = colEvent;\n var columnWidths_1 = {};\n masterColumns.forEach(function (column) {\n _this.logger.log(\"onColumnEvent-> processing \" + colEvent.type + \" actualWidth = \" + column.getActualWidth());\n columnWidths_1[column.getId()] = { key: column.getColId(), newWidth: column.getActualWidth() };\n });\n // don't set flex columns width\n (_a = resizedEvent.flexColumns) === null || _a === void 0 ? void 0 : _a.forEach(function (col) {\n if (columnWidths_1[col.getId()]) {\n delete columnWidths_1[col.getId()];\n }\n });\n this.columnModel.setColumnWidths(Object.values(columnWidths_1), false, resizedEvent.finished, \"alignedGridChanged\");\n break;\n }\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n var isVerticalScrollShowing = gridBodyCon.isVerticalScrollShowing();\n var alignedGrids = this.gridOptionsService.get('alignedGrids');\n if (alignedGrids) {\n alignedGrids.forEach(function (grid) {\n if (grid.api) {\n grid.api.setAlwaysShowVerticalScroll(isVerticalScrollShowing);\n }\n });\n }\n };\n __decorate$P([\n Autowired('columnModel')\n ], AlignedGridsService.prototype, \"columnModel\", void 0);\n __decorate$P([\n Autowired('ctrlsService')\n ], AlignedGridsService.prototype, \"ctrlsService\", void 0);\n __decorate$P([\n __param$6(0, Qualifier('loggerFactory'))\n ], AlignedGridsService.prototype, \"setBeans\", null);\n __decorate$P([\n PostConstruct\n ], AlignedGridsService.prototype, \"init\", null);\n AlignedGridsService = __decorate$P([\n Bean('alignedGridsService')\n ], AlignedGridsService);\n return AlignedGridsService;\n}(BeanStub));\n\nvar __extends$M = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$O = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$5 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __read$9 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar SelectionService = /** @class */ (function (_super) {\n __extends$M(SelectionService, _super);\n function SelectionService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SelectionService.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('selectionService');\n this.reset();\n };\n SelectionService.prototype.init = function () {\n var _this = this;\n this.groupSelectsChildren = this.gridOptionsService.is('groupSelectsChildren');\n this.addManagedPropertyListener('groupSelectsChildren', function (propChange) { return _this.groupSelectsChildren = propChange.currentValue; });\n this.rowSelection = this.gridOptionsService.get('rowSelection');\n this.addManagedPropertyListener('rowSelection', function (propChange) { return _this.rowSelection = propChange.currentValue; });\n this.addManagedListener(this.eventService, Events.EVENT_ROW_SELECTED, this.onRowSelected.bind(this));\n };\n SelectionService.prototype.isMultiselect = function () {\n return this.rowSelection === 'multiple';\n };\n SelectionService.prototype.setNodesSelected = function (params) {\n var _a;\n if (params.nodes.length === 0)\n return 0;\n var newValue = params.newValue, clearSelection = params.clearSelection, suppressFinishActions = params.suppressFinishActions, rangeSelect = params.rangeSelect; params.event; var _b = params.source, source = _b === void 0 ? 'api' : _b;\n if (params.nodes.length > 1 && !this.isMultiselect()) {\n console.warn(\"AG Grid: cannot multi select while rowSelection='single'\");\n return 0;\n }\n // groupSelectsFiltered only makes sense when group selects children\n var groupSelectsFiltered = this.groupSelectsChildren && (params.groupSelectsFiltered === true);\n // if node is a footer, we don't do selection, just pass the info\n // to the sibling (the parent of the group)\n var nodes = params.nodes.map(function (node) { return node.footer ? node.sibling : node; });\n if (rangeSelect) {\n if (params.nodes.length > 1) {\n console.warn('AG Grid: cannot range select while selecting multiple rows');\n return 0;\n }\n var lastSelectedNode = this.getLastSelectedNode();\n if (lastSelectedNode) {\n // if node is a footer, we don't do selection, just pass the info\n // to the sibling (the parent of the group)\n var node = nodes[0];\n var newRowClicked = lastSelectedNode !== node;\n if (newRowClicked && this.isMultiselect()) {\n var nodesChanged = this.selectRange(node, lastSelectedNode, params.newValue, source);\n this.setLastSelectedNode(node);\n return nodesChanged;\n }\n }\n }\n var updatedCount = 0;\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n // when groupSelectsFiltered, then this node may end up intermediate despite\n // trying to set it to true / false. this group will be calculated further on\n // down when we call calculatedSelectedForAllGroupNodes(). we need to skip it\n // here, otherwise the updatedCount would include it.\n var skipThisNode = groupSelectsFiltered && node.group;\n if (!skipThisNode) {\n var thisNodeWasSelected = node.selectThisNode(newValue, params.event, source);\n if (thisNodeWasSelected) {\n updatedCount++;\n }\n }\n if (this.groupSelectsChildren && ((_a = node.childrenAfterGroup) === null || _a === void 0 ? void 0 : _a.length)) {\n updatedCount += this.selectChildren(node, newValue, groupSelectsFiltered, source);\n }\n }\n // clear other nodes if not doing multi select\n if (!suppressFinishActions) {\n var clearOtherNodes = newValue && (clearSelection || !this.isMultiselect());\n if (clearOtherNodes) {\n updatedCount += this.clearOtherNodes(nodes[0], source);\n }\n // only if we selected something, then update groups and fire events\n if (updatedCount > 0) {\n this.updateGroupsFromChildrenSelections(source);\n // this is the very end of the 'action node', so we are finished all the updates,\n // include any parent / child changes that this method caused\n var event_1 = {\n type: Events.EVENT_SELECTION_CHANGED,\n source: source\n };\n this.eventService.dispatchEvent(event_1);\n }\n // so if user next does shift-select, we know where to start the selection from\n if (newValue) {\n this.setLastSelectedNode(nodes[nodes.length - 1]);\n }\n }\n return updatedCount;\n };\n // selects all rows between this node and the last selected node (or the top if this is the first selection).\n // not to be mixed up with 'cell range selection' where you drag the mouse, this is row range selection, by\n // holding down 'shift'.\n SelectionService.prototype.selectRange = function (fromNode, toNode, value, source) {\n var _this = this;\n if (value === void 0) { value = true; }\n var nodesToSelect = this.rowModel.getNodesInRangeForSelection(fromNode, toNode);\n var updatedCount = 0;\n nodesToSelect.forEach(function (rowNode) {\n if (rowNode.group && _this.groupSelectsChildren || (value === false && fromNode === rowNode)) {\n return;\n }\n var nodeWasSelected = rowNode.selectThisNode(value, undefined, source);\n if (nodeWasSelected) {\n updatedCount++;\n }\n });\n this.updateGroupsFromChildrenSelections(source);\n var event = {\n type: Events.EVENT_SELECTION_CHANGED,\n source: source\n };\n this.eventService.dispatchEvent(event);\n return updatedCount;\n };\n SelectionService.prototype.selectChildren = function (node, newValue, groupSelectsFiltered, source) {\n var children = groupSelectsFiltered ? node.childrenAfterAggFilter : node.childrenAfterGroup;\n if (_.missing(children)) {\n return 0;\n }\n return this.setNodesSelected({\n newValue: newValue,\n clearSelection: false,\n suppressFinishActions: true,\n groupSelectsFiltered: groupSelectsFiltered,\n source: source,\n nodes: children,\n });\n };\n SelectionService.prototype.setLastSelectedNode = function (rowNode) {\n this.lastSelectedNode = rowNode;\n };\n SelectionService.prototype.getLastSelectedNode = function () {\n return this.lastSelectedNode;\n };\n SelectionService.prototype.getSelectedNodes = function () {\n var selectedNodes = [];\n iterateObject(this.selectedNodes, function (key, rowNode) {\n if (rowNode) {\n selectedNodes.push(rowNode);\n }\n });\n return selectedNodes;\n };\n SelectionService.prototype.getSelectedRows = function () {\n var selectedRows = [];\n iterateObject(this.selectedNodes, function (key, rowNode) {\n if (rowNode && rowNode.data) {\n selectedRows.push(rowNode.data);\n }\n });\n return selectedRows;\n };\n SelectionService.prototype.getSelectionCount = function () {\n return Object.values(this.selectedNodes).length;\n };\n /**\n * This method is used by the CSRM to remove groups which are being disposed of,\n * events do not need fired in this case\n */\n SelectionService.prototype.filterFromSelection = function (predicate) {\n var newSelectedNodes = {};\n Object.entries(this.selectedNodes).forEach(function (_a) {\n var _b = __read$9(_a, 2), key = _b[0], node = _b[1];\n var passesPredicate = node && predicate(node);\n if (passesPredicate) {\n newSelectedNodes[key] = node;\n }\n });\n this.selectedNodes = newSelectedNodes;\n };\n // should only be called if groupSelectsChildren=true\n SelectionService.prototype.updateGroupsFromChildrenSelections = function (source, changedPath) {\n // we only do this when group selection state depends on selected children\n if (!this.groupSelectsChildren) {\n return false;\n }\n // also only do it if CSRM (code should never allow this anyway)\n if (this.rowModel.getType() !== 'clientSide') {\n return false;\n }\n var clientSideRowModel = this.rowModel;\n var rootNode = clientSideRowModel.getRootNode();\n if (!changedPath) {\n changedPath = new ChangedPath(true, rootNode);\n changedPath.setInactive();\n }\n var selectionChanged = false;\n changedPath.forEachChangedNodeDepthFirst(function (rowNode) {\n if (rowNode !== rootNode) {\n var selected = rowNode.calculateSelectedFromChildren();\n selectionChanged = rowNode.selectThisNode(selected === null ? false : selected, undefined, source) || selectionChanged;\n }\n });\n return selectionChanged;\n };\n SelectionService.prototype.clearOtherNodes = function (rowNodeToKeepSelected, source) {\n var _this = this;\n var groupsToRefresh = {};\n var updatedCount = 0;\n iterateObject(this.selectedNodes, function (key, otherRowNode) {\n if (otherRowNode && otherRowNode.id !== rowNodeToKeepSelected.id) {\n var rowNode = _this.selectedNodes[otherRowNode.id];\n updatedCount += rowNode.setSelectedParams({\n newValue: false,\n clearSelection: false,\n suppressFinishActions: true,\n source: source,\n });\n if (_this.groupSelectsChildren && otherRowNode.parent) {\n groupsToRefresh[otherRowNode.parent.id] = otherRowNode.parent;\n }\n }\n });\n iterateObject(groupsToRefresh, function (key, group) {\n var selected = group.calculateSelectedFromChildren();\n group.selectThisNode(selected === null ? false : selected, undefined, source);\n });\n return updatedCount;\n };\n SelectionService.prototype.onRowSelected = function (event) {\n var rowNode = event.node;\n // we do not store the group rows when the groups select children\n if (this.groupSelectsChildren && rowNode.group) {\n return;\n }\n if (rowNode.isSelected()) {\n this.selectedNodes[rowNode.id] = rowNode;\n }\n else {\n delete this.selectedNodes[rowNode.id];\n }\n };\n SelectionService.prototype.syncInRowNode = function (rowNode, oldNode) {\n this.syncInOldRowNode(rowNode, oldNode);\n this.syncInNewRowNode(rowNode);\n };\n // if the id has changed for the node, then this means the rowNode\n // is getting used for a different data item, which breaks\n // our selectedNodes, as the node now is mapped by the old id\n // which is inconsistent. so to keep the old node as selected,\n // we swap in the clone (with the old id and old data). this means\n // the oldNode is effectively a daemon we keep a reference to,\n // so if client calls api.getSelectedNodes(), it gets the daemon\n // in the result. when the client un-selects, the reference to the\n // daemon is removed. the daemon, because it's an oldNode, is not\n // used by the grid for rendering, it's a copy of what the node used\n // to be like before the id was changed.\n SelectionService.prototype.syncInOldRowNode = function (rowNode, oldNode) {\n var oldNodeHasDifferentId = exists(oldNode) && (rowNode.id !== oldNode.id);\n if (oldNodeHasDifferentId && oldNode) {\n var id = oldNode.id;\n var oldNodeSelected = this.selectedNodes[id] == rowNode;\n if (oldNodeSelected) {\n this.selectedNodes[oldNode.id] = oldNode;\n }\n }\n };\n SelectionService.prototype.syncInNewRowNode = function (rowNode) {\n if (exists(this.selectedNodes[rowNode.id])) {\n rowNode.setSelectedInitialValue(true);\n this.selectedNodes[rowNode.id] = rowNode;\n }\n else {\n rowNode.setSelectedInitialValue(false);\n }\n };\n SelectionService.prototype.reset = function () {\n this.logger.log('reset');\n this.selectedNodes = {};\n this.lastSelectedNode = null;\n };\n // returns a list of all nodes at 'best cost' - a feature to be used\n // with groups / trees. if a group has all it's children selected,\n // then the group appears in the result, but not the children.\n // Designed for use with 'children' as the group selection type,\n // where groups don't actually appear in the selection normally.\n SelectionService.prototype.getBestCostNodeSelection = function () {\n if (this.rowModel.getType() !== 'clientSide') {\n // Error logged as part of gridApi as that is only call point for this method.\n return;\n }\n var clientSideRowModel = this.rowModel;\n var topLevelNodes = clientSideRowModel.getTopLevelNodes();\n if (topLevelNodes === null) {\n return;\n }\n var result = [];\n // recursive function, to find the selected nodes\n function traverse(nodes) {\n for (var i = 0, l = nodes.length; i < l; i++) {\n var node = nodes[i];\n if (node.isSelected()) {\n result.push(node);\n }\n else {\n // if not selected, then if it's a group, and the group\n // has children, continue to search for selections\n var maybeGroup = node;\n if (maybeGroup.group && maybeGroup.children) {\n traverse(maybeGroup.children);\n }\n }\n }\n }\n traverse(topLevelNodes);\n return result;\n };\n SelectionService.prototype.isEmpty = function () {\n var count = 0;\n iterateObject(this.selectedNodes, function (nodeId, rowNode) {\n if (rowNode) {\n count++;\n }\n });\n return count === 0;\n };\n SelectionService.prototype.deselectAllRowNodes = function (params) {\n var callback = function (rowNode) { return rowNode.selectThisNode(false, undefined, source); };\n var rowModelClientSide = this.rowModel.getType() === 'clientSide';\n var source = params.source, justFiltered = params.justFiltered, justCurrentPage = params.justCurrentPage;\n if (justCurrentPage || justFiltered) {\n if (!rowModelClientSide) {\n console.error(\"AG Grid: selecting just filtered only works when gridOptions.rowModelType='clientSide'\");\n return;\n }\n this.getNodesToSelect(justFiltered, justCurrentPage).forEach(callback);\n }\n else {\n iterateObject(this.selectedNodes, function (id, rowNode) {\n // remember the reference can be to null, as we never 'delete' from the map\n if (rowNode) {\n callback(rowNode);\n }\n });\n // this clears down the map (whereas above only sets the items in map to 'undefined')\n this.reset();\n }\n // the above does not clean up the parent rows if they are selected\n if (rowModelClientSide && this.groupSelectsChildren) {\n this.updateGroupsFromChildrenSelections(source);\n }\n var event = {\n type: Events.EVENT_SELECTION_CHANGED,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n SelectionService.prototype.getSelectAllState = function (justFiltered, justCurrentPage) {\n var _this = this;\n var selectedCount = 0;\n var notSelectedCount = 0;\n var callback = function (node) {\n if (_this.groupSelectsChildren && node.group) {\n return;\n }\n if (node.isSelected()) {\n selectedCount++;\n }\n else if (!node.selectable) ;\n else {\n notSelectedCount++;\n }\n };\n this.getNodesToSelect(justFiltered, justCurrentPage).forEach(callback);\n // if no rows, always have it unselected\n if (selectedCount === 0 && notSelectedCount === 0) {\n return false;\n }\n // if mix of selected and unselected, this is indeterminate\n if (selectedCount > 0 && notSelectedCount > 0) {\n return null;\n }\n // only selected\n return selectedCount > 0;\n };\n /**\n * @param justFiltered whether to just include nodes which have passed the filter\n * @param justCurrentPage whether to just include nodes on the current page\n * @returns all nodes including unselectable nodes which are the target of this selection attempt\n */\n SelectionService.prototype.getNodesToSelect = function (justFiltered, justCurrentPage) {\n var _this = this;\n if (justFiltered === void 0) { justFiltered = false; }\n if (justCurrentPage === void 0) { justCurrentPage = false; }\n if (this.rowModel.getType() !== 'clientSide') {\n throw new Error(\"selectAll only available when rowModelType='clientSide', ie not \" + this.rowModel.getType());\n }\n var nodes = [];\n if (justCurrentPage) {\n this.paginationProxy.forEachNodeOnPage(function (node) {\n if (!node.group) {\n nodes.push(node);\n return;\n }\n if (!node.expanded) {\n // even with groupSelectsChildren, do this recursively as only the filtered children\n // are considered as the current page\n var recursivelyAddChildren_1 = function (child) {\n var _a;\n nodes.push(child);\n if ((_a = child.childrenAfterFilter) === null || _a === void 0 ? void 0 : _a.length) {\n child.childrenAfterFilter.forEach(recursivelyAddChildren_1);\n }\n };\n recursivelyAddChildren_1(node);\n return;\n }\n // if the group node is expanded, the pagination proxy will include the visible nodes to select\n if (!_this.groupSelectsChildren) {\n nodes.push(node);\n }\n });\n return nodes;\n }\n var clientSideRowModel = this.rowModel;\n if (justFiltered) {\n clientSideRowModel.forEachNodeAfterFilter(function (node) {\n nodes.push(node);\n });\n return nodes;\n }\n clientSideRowModel.forEachNode(function (node) {\n nodes.push(node);\n });\n return nodes;\n };\n SelectionService.prototype.selectAllRowNodes = function (params) {\n if (this.rowModel.getType() !== 'clientSide') {\n throw new Error(\"selectAll only available when rowModelType='clientSide', ie not \" + this.rowModel.getType());\n }\n var source = params.source, justFiltered = params.justFiltered, justCurrentPage = params.justCurrentPage;\n var callback = function (rowNode) { return rowNode.selectThisNode(true, undefined, source); };\n this.getNodesToSelect(justFiltered, justCurrentPage).forEach(callback);\n // the above does not clean up the parent rows if they are selected\n if (this.rowModel.getType() === 'clientSide' && this.groupSelectsChildren) {\n this.updateGroupsFromChildrenSelections(source);\n }\n var event = {\n type: Events.EVENT_SELECTION_CHANGED,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n // Used by SSRM\n SelectionService.prototype.getServerSideSelectionState = function () {\n return null;\n };\n SelectionService.prototype.setServerSideSelectionState = function (state) { };\n __decorate$O([\n Autowired('rowModel')\n ], SelectionService.prototype, \"rowModel\", void 0);\n __decorate$O([\n Autowired('paginationProxy')\n ], SelectionService.prototype, \"paginationProxy\", void 0);\n __decorate$O([\n __param$5(0, Qualifier('loggerFactory'))\n ], SelectionService.prototype, \"setBeans\", null);\n __decorate$O([\n PostConstruct\n ], SelectionService.prototype, \"init\", null);\n SelectionService = __decorate$O([\n Bean('selectionService')\n ], SelectionService);\n return SelectionService;\n}(BeanStub));\n\nvar __decorate$N = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ColumnApi = /** @class */ (function () {\n function ColumnApi() {\n }\n /**\n * Gets the grid to size the columns to the specified width in pixels, e.g. `sizeColumnsToFit(900)`.\n * To have the grid fit the columns to the grid's width, use the Grid API `gridApi.sizeColumnsToFit()` instead.\n * If inferring cell data types with custom column types and row data is provided asynchronously,\n * the column sizing will happen asynchronously when row data is added.\n * To always perform this synchronously, set `cellDataType = false` on the default column definition.\n */\n ColumnApi.prototype.sizeColumnsToFit = function (gridWidth) {\n // AG-3403 validate that gridWidth is provided because this method has the same name as\n // a method on the grid API that takes no arguments, and it's easy to confuse the two\n if (typeof gridWidth === \"undefined\") {\n console.error('AG Grid: missing parameter to columnApi.sizeColumnsToFit(gridWidth)');\n }\n this.columnModel.sizeColumnsToFit(gridWidth, 'api');\n };\n /** Call this if you want to open or close a column group. */\n ColumnApi.prototype.setColumnGroupOpened = function (group, newValue) { this.columnModel.setColumnGroupOpened(group, newValue, 'api'); };\n /** Returns the column group with the given name. */\n ColumnApi.prototype.getColumnGroup = function (name, instanceId) { return this.columnModel.getColumnGroup(name, instanceId); };\n /** Returns the provided column group with the given name. */\n ColumnApi.prototype.getProvidedColumnGroup = function (name) { return this.columnModel.getProvidedColumnGroup(name); };\n /** Returns the display name for a column. Useful if you are doing your own header rendering and want the grid to work out if `headerValueGetter` is used, or if you are doing your own column management GUI, to know what to show as the column name. */\n ColumnApi.prototype.getDisplayNameForColumn = function (column, location) { return this.columnModel.getDisplayNameForColumn(column, location) || ''; };\n /** Returns the display name for a column group (when grouping columns). */\n ColumnApi.prototype.getDisplayNameForColumnGroup = function (columnGroup, location) { return this.columnModel.getDisplayNameForColumnGroup(columnGroup, location) || ''; };\n /** Returns the column with the given `colKey`, which can either be the `colId` (a string) or the `colDef` (an object). */\n ColumnApi.prototype.getColumn = function (key) { return this.columnModel.getPrimaryColumn(key); };\n /** Returns all the columns, regardless of visible or not. */\n ColumnApi.prototype.getColumns = function () { return this.columnModel.getAllPrimaryColumns(); };\n /** Applies the state of the columns from a previous state. Returns `false` if one or more columns could not be found. */\n ColumnApi.prototype.applyColumnState = function (params) { return this.columnModel.applyColumnState(params, 'api'); };\n /** Gets the state of the columns. Typically used when saving column state. */\n ColumnApi.prototype.getColumnState = function () { return this.columnModel.getColumnState(); };\n /** Sets the state back to match the originally provided column definitions. */\n ColumnApi.prototype.resetColumnState = function () { this.columnModel.resetColumnState('api'); };\n /** Gets the state of the column groups. Typically used when saving column group state. */\n ColumnApi.prototype.getColumnGroupState = function () { return this.columnModel.getColumnGroupState(); };\n /** Sets the state of the column group state from a previous state. */\n ColumnApi.prototype.setColumnGroupState = function (stateItems) { this.columnModel.setColumnGroupState(stateItems, 'api'); };\n /** Sets the state back to match the originally provided column definitions. */\n ColumnApi.prototype.resetColumnGroupState = function () { this.columnModel.resetColumnGroupState('api'); };\n /** Returns `true` if pinning left or right, otherwise `false`. */\n ColumnApi.prototype.isPinning = function () { return this.columnModel.isPinningLeft() || this.columnModel.isPinningRight(); };\n /** Returns `true` if pinning left, otherwise `false`. */\n ColumnApi.prototype.isPinningLeft = function () { return this.columnModel.isPinningLeft(); };\n /** Returns `true` if pinning right, otherwise `false`. */\n ColumnApi.prototype.isPinningRight = function () { return this.columnModel.isPinningRight(); };\n /** Returns the column to the right of the provided column, taking into consideration open / closed column groups and visible columns. This is useful if you need to know what column is beside yours e.g. if implementing your own cell navigation. */\n ColumnApi.prototype.getDisplayedColAfter = function (col) { return this.columnModel.getDisplayedColAfter(col); };\n /** Same as `getVisibleColAfter` except gives column to the left. */\n ColumnApi.prototype.getDisplayedColBefore = function (col) { return this.columnModel.getDisplayedColBefore(col); };\n /** Sets the visibility of a column. Key can be the column ID or `Column` object. */\n ColumnApi.prototype.setColumnVisible = function (key, visible) { this.columnModel.setColumnVisible(key, visible, 'api'); };\n /** Same as `setColumnVisible`, but provide a list of column keys. */\n ColumnApi.prototype.setColumnsVisible = function (keys, visible) { this.columnModel.setColumnsVisible(keys, visible, 'api'); };\n /** Sets the column pinned / unpinned. Key can be the column ID, field, `ColDef` object or `Column` object. */\n ColumnApi.prototype.setColumnPinned = function (key, pinned) { this.columnModel.setColumnPinned(key, pinned, 'api'); };\n /** Same as `setColumnPinned`, but provide a list of column keys. */\n ColumnApi.prototype.setColumnsPinned = function (keys, pinned) { this.columnModel.setColumnsPinned(keys, pinned, 'api'); };\n /**\n * Returns all the grid columns, same as `getColumns()`, except\n *\n * a) it has the order of the columns that are presented in the grid\n *\n * b) it's after the 'pivot' step, so if pivoting, has the value columns for the pivot.\n */\n ColumnApi.prototype.getAllGridColumns = function () { return this.columnModel.getAllGridColumns(); };\n /** Same as `getAllDisplayedColumns` but just for the pinned left portion of the grid. */\n ColumnApi.prototype.getDisplayedLeftColumns = function () { return this.columnModel.getDisplayedLeftColumns(); };\n /** Same as `getAllDisplayedColumns` but just for the center portion of the grid. */\n ColumnApi.prototype.getDisplayedCenterColumns = function () { return this.columnModel.getDisplayedCenterColumns(); };\n /** Same as `getAllDisplayedColumns` but just for the pinned right portion of the grid. */\n ColumnApi.prototype.getDisplayedRightColumns = function () { return this.columnModel.getDisplayedRightColumns(); };\n /** Returns all columns currently displayed (e.g. are visible and if in a group, the group is showing the columns) for the pinned left, centre and pinned right portions of the grid. */\n ColumnApi.prototype.getAllDisplayedColumns = function () { return this.columnModel.getAllDisplayedColumns(); };\n /** Same as `getAllGridColumns()`, except only returns rendered columns, i.e. columns that are not within the viewport and therefore not rendered, due to column virtualisation, are not displayed. */\n ColumnApi.prototype.getAllDisplayedVirtualColumns = function () { return this.columnModel.getViewportColumns(); };\n /** Moves a column to `toIndex`. The column is first removed, then added at the `toIndex` location, thus index locations will change to the right of the column after the removal. */\n ColumnApi.prototype.moveColumn = function (key, toIndex) {\n this.columnModel.moveColumn(key, toIndex, 'api');\n };\n /** Same as `moveColumn` but works on index locations. */\n ColumnApi.prototype.moveColumnByIndex = function (fromIndex, toIndex) { this.columnModel.moveColumnByIndex(fromIndex, toIndex, 'api'); };\n /** Same as `moveColumn` but works on list. */\n ColumnApi.prototype.moveColumns = function (columnsToMoveKeys, toIndex) { this.columnModel.moveColumns(columnsToMoveKeys, toIndex, 'api'); };\n /** Move the column to a new position in the row grouping order. */\n ColumnApi.prototype.moveRowGroupColumn = function (fromIndex, toIndex) { this.columnModel.moveRowGroupColumn(fromIndex, toIndex); };\n /** Sets the agg function for a column. `aggFunc` can be one of the built-in aggregations or a custom aggregation by name or direct function. */\n ColumnApi.prototype.setColumnAggFunc = function (key, aggFunc) { this.columnModel.setColumnAggFunc(key, aggFunc); };\n /** Sets the column width on a single column. The finished flag gets included in the resulting event and not used internally by the grid. The finished flag is intended for dragging, where a dragging action will produce many `columnWidth` events, so the consumer of events knows when it receives the last event in a stream. The finished parameter is optional, and defaults to `true`. */\n ColumnApi.prototype.setColumnWidth = function (key, newWidth, finished, source) {\n if (finished === void 0) { finished = true; }\n this.columnModel.setColumnWidths([{ key: key, newWidth: newWidth }], false, finished, source);\n };\n /** Sets the column widths on multiple columns. This method offers better performance than calling `setColumnWidth` multiple times. The finished flag gets included in the resulting event and not used internally by the grid. The finished flag is intended for dragging, where a dragging action will produce many `columnWidth` events, so the consumer of events knows when it receives the last event in a stream. The finished parameter is optional, and defaults to `true`. */\n ColumnApi.prototype.setColumnWidths = function (columnWidths, finished, source) {\n if (finished === void 0) { finished = true; }\n this.columnModel.setColumnWidths(columnWidths, false, finished, source);\n };\n /** Set the pivot mode. */\n ColumnApi.prototype.setPivotMode = function (pivotMode) { this.columnModel.setPivotMode(pivotMode); };\n /** Get the pivot mode. */\n ColumnApi.prototype.isPivotMode = function () { return this.columnModel.isPivotMode(); };\n /** Returns the pivot result column for the given `pivotKeys` and `valueColId`. Useful to then call operations on the pivot column. */\n ColumnApi.prototype.getPivotResultColumn = function (pivotKeys, valueColKey) { return this.columnModel.getSecondaryPivotColumn(pivotKeys, valueColKey); };\n /** Set the value columns to the provided list of columns. */\n ColumnApi.prototype.setValueColumns = function (colKeys) { this.columnModel.setValueColumns(colKeys, 'api'); };\n /** Get a list of the existing value columns. */\n ColumnApi.prototype.getValueColumns = function () { return this.columnModel.getValueColumns(); };\n /** Remove the given column from the existing set of value columns. */\n ColumnApi.prototype.removeValueColumn = function (colKey) { this.columnModel.removeValueColumn(colKey, 'api'); };\n /** Like `removeValueColumn` but remove the given list of columns from the existing set of value columns. */\n ColumnApi.prototype.removeValueColumns = function (colKeys) { this.columnModel.removeValueColumns(colKeys, 'api'); };\n /** Add the given column to the set of existing value columns. */\n ColumnApi.prototype.addValueColumn = function (colKey) { this.columnModel.addValueColumn(colKey, 'api'); };\n /** Like `addValueColumn` but add the given list of columns to the existing set of value columns. */\n ColumnApi.prototype.addValueColumns = function (colKeys) { this.columnModel.addValueColumns(colKeys, 'api'); };\n /** Set the row group columns. */\n ColumnApi.prototype.setRowGroupColumns = function (colKeys) { this.columnModel.setRowGroupColumns(colKeys, 'api'); };\n /** Remove a column from the row groups. */\n ColumnApi.prototype.removeRowGroupColumn = function (colKey) { this.columnModel.removeRowGroupColumn(colKey, 'api'); };\n /** Same as `removeRowGroupColumn` but provide a list of columns. */\n ColumnApi.prototype.removeRowGroupColumns = function (colKeys) { this.columnModel.removeRowGroupColumns(colKeys, 'api'); };\n /** Add a column to the row groups. */\n ColumnApi.prototype.addRowGroupColumn = function (colKey) { this.columnModel.addRowGroupColumn(colKey, 'api'); };\n /** Same as `addRowGroupColumn` but provide a list of columns. */\n ColumnApi.prototype.addRowGroupColumns = function (colKeys) { this.columnModel.addRowGroupColumns(colKeys, 'api'); };\n /** Get row group columns. */\n ColumnApi.prototype.getRowGroupColumns = function () { return this.columnModel.getRowGroupColumns(); };\n /** Set the pivot columns. */\n ColumnApi.prototype.setPivotColumns = function (colKeys) { this.columnModel.setPivotColumns(colKeys, 'api'); };\n /** Remove a pivot column. */\n ColumnApi.prototype.removePivotColumn = function (colKey) { this.columnModel.removePivotColumn(colKey, 'api'); };\n /** Same as `removePivotColumn` but provide a list of columns. */\n ColumnApi.prototype.removePivotColumns = function (colKeys) { this.columnModel.removePivotColumns(colKeys, 'api'); };\n /** Add a pivot column. */\n ColumnApi.prototype.addPivotColumn = function (colKey) { this.columnModel.addPivotColumn(colKey, 'api'); };\n /** Same as `addPivotColumn` but provide a list of columns. */\n ColumnApi.prototype.addPivotColumns = function (colKeys) { this.columnModel.addPivotColumns(colKeys, 'api'); };\n /** Get the pivot columns. */\n ColumnApi.prototype.getPivotColumns = function () { return this.columnModel.getPivotColumns(); };\n /** Same as `getAllDisplayedColumnGroups` but just for the pinned left portion of the grid. */\n ColumnApi.prototype.getLeftDisplayedColumnGroups = function () { return this.columnModel.getDisplayedTreeLeft(); };\n /** Same as `getAllDisplayedColumnGroups` but just for the center portion of the grid. */\n ColumnApi.prototype.getCenterDisplayedColumnGroups = function () { return this.columnModel.getDisplayedTreeCentre(); };\n /** Same as `getAllDisplayedColumnGroups` but just for the pinned right portion of the grid. */\n ColumnApi.prototype.getRightDisplayedColumnGroups = function () { return this.columnModel.getDisplayedTreeRight(); };\n /** Returns all 'root' column headers. If you are not grouping columns, these return the columns. If you are grouping, these return the top level groups - you can navigate down through each one to get the other lower level headers and finally the columns at the bottom. */\n ColumnApi.prototype.getAllDisplayedColumnGroups = function () { return this.columnModel.getAllDisplayedTrees(); };\n /**\n * Auto-sizes a column based on its contents. If inferring cell data types with custom column types and row data is provided asynchronously,\n * the column sizing will happen asynchronously when row data is added. To always perform this synchronously,\n * set `cellDataType = false` on the default column definition.\n */\n ColumnApi.prototype.autoSizeColumn = function (key, skipHeader) { return this.columnModel.autoSizeColumn(key, skipHeader, 'api'); };\n /**\n * Same as `autoSizeColumn`, but provide a list of column keys. If inferring cell data types with custom column types\n * and row data is provided asynchronously, the column sizing will happen asynchronously when row data is added.\n * To always perform this synchronously, set `cellDataType = false` on the default column definition.\n */\n ColumnApi.prototype.autoSizeColumns = function (keys, skipHeader) {\n this.columnModel.autoSizeColumns({ columns: keys, skipHeader: skipHeader });\n };\n /**\n * Calls `autoSizeColumns` on all displayed columns. If inferring cell data types with custom column types\n * and row data is provided asynchronously, the column sizing will happen asynchronously when row data is added.\n * To always perform this synchronously, set `cellDataType = false` on the default column definition.\n */\n ColumnApi.prototype.autoSizeAllColumns = function (skipHeader) { this.columnModel.autoSizeAllColumns(skipHeader, 'api'); };\n /** Set the pivot result columns. */\n ColumnApi.prototype.setPivotResultColumns = function (colDefs) { this.columnModel.setSecondaryColumns(colDefs, 'api'); };\n /** Returns the grid's pivot result columns. */\n ColumnApi.prototype.getPivotResultColumns = function () { return this.columnModel.getSecondaryColumns(); };\n ColumnApi.prototype.cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid = function () {\n // some users were raising support issues with regards memory leaks. the problem was the customers applications\n // were keeping references to the API. trying to educate them all would be difficult, easier to just remove\n // all references in the API so at least the core grid can be garbage collected.\n //\n // wait about 100ms before clearing down the references, in case user has some cleanup to do,\n // and needs to deference the API first\n setTimeout(_.removeAllReferences.bind(window, this, 'Column API'), 100);\n };\n /** @deprecated v28 Use `getColumns` instead */\n ColumnApi.prototype.getAllColumns = function () {\n logDeprecation('28.0', 'getAllColumns', 'getColumns');\n return this.getColumns();\n };\n /** @deprecated v28 Use `getColumns` instead. */\n ColumnApi.prototype.getPrimaryColumns = function () {\n logDeprecation('28.0', 'getPrimaryColumns', 'getColumns');\n return this.getColumns();\n };\n /** @deprecated v28 Use `getPivotResultColumns` instead. */\n ColumnApi.prototype.getSecondaryColumns = function () {\n logDeprecation('28.0', 'getSecondaryColumns', 'getPivotResultColumns');\n return this.getPivotResultColumns();\n };\n /** @deprecated v28 Use `setPivotResultColumns` instead. */\n ColumnApi.prototype.setSecondaryColumns = function (colDefs) {\n logDeprecation('28.0', 'setSecondaryColumns', 'setPivotResultColumns');\n this.setPivotResultColumns(colDefs);\n };\n /** @deprecated v28 Use `getPivotResultColumn` instead */\n ColumnApi.prototype.getSecondaryPivotColumn = function (pivotKeys, valueColKey) {\n logDeprecation('28.0', 'getSecondaryPivotColumn', 'getPivotResultColumn');\n return this.getPivotResultColumn(pivotKeys, valueColKey);\n };\n __decorate$N([\n Autowired('columnModel')\n ], ColumnApi.prototype, \"columnModel\", void 0);\n __decorate$N([\n PreDestroy\n ], ColumnApi.prototype, \"cleanDownReferencesToAvoidMemoryLeakInCaseApplicationIsKeepingReferenceToDestroyedGrid\", null);\n ColumnApi = __decorate$N([\n Bean('columnApi')\n ], ColumnApi);\n return ColumnApi;\n}());\n\nvar __extends$L = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$M = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ValueService = /** @class */ (function (_super) {\n __extends$L(ValueService, _super);\n function ValueService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.initialised = false;\n _this.isSsrm = false;\n return _this;\n }\n ValueService.prototype.init = function () {\n var _this = this;\n this.isSsrm = this.gridOptionsService.isRowModelType('serverSide');\n this.cellExpressions = this.gridOptionsService.is('enableCellExpressions');\n this.isTreeData = this.gridOptionsService.is('treeData');\n this.initialised = true;\n // We listen to our own event and use it to call the columnSpecific callback,\n // this way the handler calls are correctly interleaved with other global events\n this.eventService.addEventListener(Events.EVENT_CELL_VALUE_CHANGED, function (event) { return _this.callColumnCellValueChangedHandler(event); }, this.gridOptionsService.useAsyncEvents());\n this.addManagedPropertyListener('treeData', function (propChange) { return _this.isTreeData = propChange.currentValue; });\n };\n ValueService.prototype.getValue = function (column, rowNode, forFilter, ignoreAggData) {\n if (forFilter === void 0) { forFilter = false; }\n if (ignoreAggData === void 0) { ignoreAggData = false; }\n // hack - the grid is getting refreshed before this bean gets initialised, race condition.\n // really should have a way so they get initialised in the right order???\n if (!this.initialised) {\n this.init();\n }\n if (!rowNode) {\n return;\n }\n // pull these out to make code below easier to read\n var colDef = column.getColDef();\n var field = colDef.field;\n var colId = column.getColId();\n var data = rowNode.data;\n var result;\n // if there is a value getter, this gets precedence over a field\n var groupDataExists = rowNode.groupData && rowNode.groupData[colId] !== undefined;\n var aggDataExists = !ignoreAggData && rowNode.aggData && rowNode.aggData[colId] !== undefined;\n // SSRM agg data comes from the data attribute, so ignore that instead\n var ignoreSsrmAggData = this.isSsrm && ignoreAggData && !!column.getColDef().aggFunc;\n var ssrmFooterGroupCol = this.isSsrm && rowNode.footer && rowNode.field && (column.getColDef().showRowGroup === true || column.getColDef().showRowGroup === rowNode.field);\n if (forFilter && colDef.filterValueGetter) {\n result = this.executeFilterValueGetter(colDef.filterValueGetter, data, column, rowNode);\n }\n else if (this.isTreeData && aggDataExists) {\n result = rowNode.aggData[colId];\n }\n else if (this.isTreeData && colDef.valueGetter) {\n result = this.executeValueGetter(colDef.valueGetter, data, column, rowNode);\n }\n else if (this.isTreeData && (field && data)) {\n result = getValueUsingField(data, field, column.isFieldContainsDots());\n }\n else if (groupDataExists) {\n result = rowNode.groupData[colId];\n }\n else if (aggDataExists) {\n result = rowNode.aggData[colId];\n }\n else if (colDef.valueGetter) {\n result = this.executeValueGetter(colDef.valueGetter, data, column, rowNode);\n }\n else if (ssrmFooterGroupCol) {\n // this is for group footers in SSRM, as the SSRM row won't have groupData, need to extract\n // the group value from the data using the row field\n result = getValueUsingField(data, rowNode.field, column.isFieldContainsDots());\n }\n else if (field && data && !ignoreSsrmAggData) {\n result = getValueUsingField(data, field, column.isFieldContainsDots());\n }\n // the result could be an expression itself, if we are allowing cell values to be expressions\n if (this.cellExpressions && (typeof result === 'string') && result.indexOf('=') === 0) {\n var cellValueGetter = result.substring(1);\n result = this.executeValueGetter(cellValueGetter, data, column, rowNode);\n }\n if (result == null) {\n var openedGroup = this.getOpenedGroup(rowNode, column);\n if (openedGroup != null) {\n return openedGroup;\n }\n }\n return result;\n };\n ValueService.prototype.getOpenedGroup = function (rowNode, column) {\n if (!this.gridOptionsService.is('showOpenedGroup')) {\n return;\n }\n var colDef = column.getColDef();\n if (!colDef.showRowGroup) {\n return;\n }\n var showRowGroup = column.getColDef().showRowGroup;\n var pointer = rowNode.parent;\n while (pointer != null) {\n if (pointer.rowGroupColumn && (showRowGroup === true || showRowGroup === pointer.rowGroupColumn.getColId())) {\n return pointer.key;\n }\n pointer = pointer.parent;\n }\n return undefined;\n };\n /**\n * Sets the value of a GridCell\n * @param rowNode The `RowNode` to be updated\n * @param colKey The `Column` to be updated\n * @param newValue The new value to be set\n * @param eventSource The event source\n * @returns `True` if the value has been updated, otherwise`False`.\n */\n ValueService.prototype.setValue = function (rowNode, colKey, newValue, eventSource) {\n var column = this.columnModel.getPrimaryColumn(colKey);\n if (!rowNode || !column) {\n return false;\n }\n // this will only happen if user is trying to paste into a group row, which doesn't make sense\n // the user should not be trying to paste into group rows\n if (missing(rowNode.data)) {\n rowNode.data = {};\n }\n var _a = column.getColDef(), field = _a.field, valueSetter = _a.valueSetter;\n if (missing(field) && missing(valueSetter)) {\n console.warn(\"AG Grid: you need either field or valueSetter set on colDef for editing to work\");\n return false;\n }\n if (!this.dataTypeService.checkType(column, newValue)) {\n console.warn(\"AG Grid: Data type of the new value does not match the cell data type of the column\");\n return false;\n }\n var params = {\n node: rowNode,\n data: rowNode.data,\n oldValue: this.getValue(column, rowNode),\n newValue: newValue,\n colDef: column.getColDef(),\n column: column,\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context\n };\n params.newValue = newValue;\n var valueWasDifferent;\n if (exists(valueSetter)) {\n if (typeof valueSetter === 'function') {\n valueWasDifferent = valueSetter(params);\n }\n else {\n valueWasDifferent = this.expressionService.evaluate(valueSetter, params);\n }\n }\n else {\n valueWasDifferent = this.setValueUsingField(rowNode.data, field, newValue, column.isFieldContainsDots());\n }\n // in case user forgot to return something (possible if they are not using TypeScript\n // and just forgot we default the return value to true, so we always refresh.\n if (valueWasDifferent === undefined) {\n valueWasDifferent = true;\n }\n // if no change to the value, then no need to do the updating, or notifying via events.\n // otherwise the user could be tabbing around the grid, and cellValueChange would get called\n // all the time.\n if (!valueWasDifferent) {\n return false;\n }\n // reset quick filter on this row\n rowNode.resetQuickFilterAggregateText();\n this.valueCache.onDataChanged();\n params.newValue = this.getValue(column, rowNode);\n var event = {\n type: Events.EVENT_CELL_VALUE_CHANGED,\n event: null,\n rowIndex: rowNode.rowIndex,\n rowPinned: rowNode.rowPinned,\n column: params.column,\n api: params.api,\n columnApi: params.columnApi,\n colDef: params.colDef,\n context: params.context,\n data: rowNode.data,\n node: rowNode,\n oldValue: params.oldValue,\n newValue: params.newValue,\n value: params.newValue,\n source: eventSource\n };\n this.eventService.dispatchEvent(event);\n return true;\n };\n ValueService.prototype.callColumnCellValueChangedHandler = function (event) {\n var onCellValueChanged = event.colDef.onCellValueChanged;\n if (typeof onCellValueChanged === 'function') {\n onCellValueChanged({\n node: event.node,\n data: event.data,\n oldValue: event.oldValue,\n newValue: event.newValue,\n colDef: event.colDef,\n column: event.column,\n api: event.api,\n columnApi: event.columnApi,\n context: event.context\n });\n }\n };\n ValueService.prototype.setValueUsingField = function (data, field, newValue, isFieldContainsDots) {\n if (!field) {\n return false;\n }\n // if no '.', then it's not a deep value\n var valuesAreSame = false;\n if (!isFieldContainsDots) {\n valuesAreSame = data[field] === newValue;\n if (!valuesAreSame) {\n data[field] = newValue;\n }\n }\n else {\n // otherwise it is a deep value, so need to dig for it\n var fieldPieces = field.split('.');\n var currentObject = data;\n while (fieldPieces.length > 0 && currentObject) {\n var fieldPiece = fieldPieces.shift();\n if (fieldPieces.length === 0) {\n valuesAreSame = currentObject[fieldPiece] === newValue;\n if (!valuesAreSame) {\n currentObject[fieldPiece] = newValue;\n }\n }\n else {\n currentObject = currentObject[fieldPiece];\n }\n }\n }\n return !valuesAreSame;\n };\n ValueService.prototype.executeFilterValueGetter = function (valueGetter, data, column, rowNode) {\n var params = {\n data: data,\n node: rowNode,\n column: column,\n colDef: column.getColDef(),\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context,\n getValue: this.getValueCallback.bind(this, rowNode)\n };\n if (typeof valueGetter === 'function') {\n return valueGetter(params);\n }\n return this.expressionService.evaluate(valueGetter, params);\n };\n ValueService.prototype.executeValueGetter = function (valueGetter, data, column, rowNode) {\n var colId = column.getColId();\n // if inside the same turn, just return back the value we got last time\n var valueFromCache = this.valueCache.getValue(rowNode, colId);\n if (valueFromCache !== undefined) {\n return valueFromCache;\n }\n var params = {\n data: data,\n node: rowNode,\n column: column,\n colDef: column.getColDef(),\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context,\n getValue: this.getValueCallback.bind(this, rowNode)\n };\n var result;\n if (typeof valueGetter === 'function') {\n result = valueGetter(params);\n }\n else {\n result = this.expressionService.evaluate(valueGetter, params);\n }\n // if a turn is active, store the value in case the grid asks for it again\n this.valueCache.setValue(rowNode, colId, result);\n return result;\n };\n ValueService.prototype.getValueCallback = function (node, field) {\n var otherColumn = this.columnModel.getPrimaryColumn(field);\n if (otherColumn) {\n return this.getValue(otherColumn, node);\n }\n return null;\n };\n // used by row grouping and pivot, to get key for a row. col can be a pivot col or a row grouping col\n ValueService.prototype.getKeyForNode = function (col, rowNode) {\n var value = this.getValue(col, rowNode);\n var keyCreator = col.getColDef().keyCreator;\n var result = value;\n if (keyCreator) {\n var keyParams = {\n value: value,\n colDef: col.getColDef(),\n column: col,\n node: rowNode,\n data: rowNode.data,\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context\n };\n result = keyCreator(keyParams);\n }\n // if already a string, or missing, just return it\n if (typeof result === 'string' || result == null) {\n return result;\n }\n result = String(result);\n if (result === '[object Object]') {\n doOnce(function () {\n console.warn('AG Grid: a column you are grouping or pivoting by has objects as values. If you want to group by complex objects then either a) use a colDef.keyCreator (se AG Grid docs) or b) to toString() on the object to return a key');\n }, 'getKeyForNode - warn about [object,object]');\n }\n return result;\n };\n __decorate$M([\n Autowired('expressionService')\n ], ValueService.prototype, \"expressionService\", void 0);\n __decorate$M([\n Autowired('columnModel')\n ], ValueService.prototype, \"columnModel\", void 0);\n __decorate$M([\n Autowired('valueCache')\n ], ValueService.prototype, \"valueCache\", void 0);\n __decorate$M([\n Autowired('dataTypeService')\n ], ValueService.prototype, \"dataTypeService\", void 0);\n __decorate$M([\n PostConstruct\n ], ValueService.prototype, \"init\", null);\n ValueService = __decorate$M([\n Bean('valueService')\n ], ValueService);\n return ValueService;\n}(BeanStub));\n\nvar __extends$K = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$L = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$4 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar ExpressionService = /** @class */ (function (_super) {\n __extends$K(ExpressionService, _super);\n function ExpressionService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.expressionToFunctionCache = {};\n return _this;\n }\n ExpressionService.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('ExpressionService');\n };\n ExpressionService.prototype.evaluate = function (expression, params) {\n if (typeof expression === 'string') {\n // valueGetter is an expression, so execute the expression\n return this.evaluateExpression(expression, params);\n }\n else {\n console.error('AG Grid: value should be either a string or a function', expression);\n }\n };\n ExpressionService.prototype.evaluateExpression = function (expression, params) {\n try {\n var javaScriptFunction = this.createExpressionFunction(expression);\n // the params don't have all these values, rather we add every possible\n // value a params can have, which makes whatever is in the params available.\n var result = javaScriptFunction(params.value, params.context, params.oldValue, params.newValue, params.value, params.node, params.data, params.colDef, params.rowIndex, params.api, params.columnApi, params.getValue, params.column, params.columnGroup);\n return result;\n }\n catch (e) {\n // the expression failed, which can happen, as it's the client that\n // provides the expression. so print a nice message\n // tslint:disable-next-line\n console.log('Processing of the expression failed');\n // tslint:disable-next-line\n console.log('Expression = ' + expression);\n // tslint:disable-next-line\n console.log('Params =', params);\n // tslint:disable-next-line\n console.log('Exception = ' + e);\n return null;\n }\n };\n ExpressionService.prototype.createExpressionFunction = function (expression) {\n // check cache first\n if (this.expressionToFunctionCache[expression]) {\n return this.expressionToFunctionCache[expression];\n }\n // if not found in cache, return the function\n var functionBody = this.createFunctionBody(expression);\n var theFunction = new Function('x, ctx, oldValue, newValue, value, node, data, colDef, rowIndex, api, columnApi, getValue, column, columnGroup', functionBody);\n // store in cache\n this.expressionToFunctionCache[expression] = theFunction;\n return theFunction;\n };\n ExpressionService.prototype.createFunctionBody = function (expression) {\n // if the expression has the 'return' word in it, then use as is,\n // if not, then wrap it with return and ';' to make a function\n if (expression.indexOf('return') >= 0) {\n return expression;\n }\n else {\n return 'return ' + expression + ';';\n }\n };\n __decorate$L([\n __param$4(0, Qualifier('loggerFactory'))\n ], ExpressionService.prototype, \"setBeans\", null);\n ExpressionService = __decorate$L([\n Bean('expressionService')\n ], ExpressionService);\n return ExpressionService;\n}(BeanStub));\n\nvar __extends$J = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$K = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TemplateService = /** @class */ (function (_super) {\n __extends$J(TemplateService, _super);\n function TemplateService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.templateCache = {};\n _this.waitingCallbacks = {};\n return _this;\n }\n // returns the template if it is loaded, or null if it is not loaded\n // but will call the callback when it is loaded\n TemplateService.prototype.getTemplate = function (url, callback) {\n var templateFromCache = this.templateCache[url];\n if (templateFromCache) {\n return templateFromCache;\n }\n var callbackList = this.waitingCallbacks[url];\n var that = this;\n if (!callbackList) {\n // first time this was called, so need a new list for callbacks\n callbackList = [];\n this.waitingCallbacks[url] = callbackList;\n // and also need to do the http request\n var client = new XMLHttpRequest();\n client.onload = function () {\n that.handleHttpResult(this, url);\n };\n client.open(\"GET\", url);\n client.send();\n }\n // add this callback\n if (callback) {\n callbackList.push(callback);\n }\n // caller needs to wait for template to load, so return null\n return null;\n };\n TemplateService.prototype.handleHttpResult = function (httpResult, url) {\n if (httpResult.status !== 200 || httpResult.response === null) {\n console.warn(\"AG Grid: Unable to get template error \" + httpResult.status + \" - \" + url);\n return;\n }\n // response success, so process it\n // in IE9 the response is in - responseText\n this.templateCache[url] = httpResult.response || httpResult.responseText;\n // inform all listeners that this is now in the cache\n var callbacks = this.waitingCallbacks[url];\n for (var i = 0; i < callbacks.length; i++) {\n var callback = callbacks[i];\n // we could pass the callback the response, however we know the client of this code\n // is the cell renderer, and it passes the 'cellRefresh' method in as the callback\n // which doesn't take any parameters.\n callback();\n }\n };\n TemplateService = __decorate$K([\n Bean('templateService')\n ], TemplateService);\n return TemplateService;\n}(BeanStub));\n\nvar __extends$I = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$J = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$3 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar LoggerFactory = /** @class */ (function (_super) {\n __extends$I(LoggerFactory, _super);\n function LoggerFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LoggerFactory.prototype.setBeans = function (gridOptionsService) {\n this.logging = gridOptionsService.is('debug');\n };\n LoggerFactory.prototype.create = function (name) {\n return new Logger(name, this.isLogging.bind(this));\n };\n LoggerFactory.prototype.isLogging = function () {\n return this.logging;\n };\n __decorate$J([\n __param$3(0, Qualifier('gridOptionsService'))\n ], LoggerFactory.prototype, \"setBeans\", null);\n LoggerFactory = __decorate$J([\n Bean('loggerFactory')\n ], LoggerFactory);\n return LoggerFactory;\n}(BeanStub));\nvar Logger = /** @class */ (function () {\n function Logger(name, isLoggingFunc) {\n this.name = name;\n this.isLoggingFunc = isLoggingFunc;\n }\n Logger.prototype.isLogging = function () {\n return this.isLoggingFunc();\n };\n Logger.prototype.log = function (message) {\n if (this.isLoggingFunc()) {\n // tslint:disable-next-line\n console.log('AG Grid.' + this.name + ': ' + message);\n }\n };\n return Logger;\n}());\n\nvar __extends$H = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$I = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GridCtrl = /** @class */ (function (_super) {\n __extends$H(GridCtrl, _super);\n function GridCtrl() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GridCtrl.prototype.setComp = function (view, eGridDiv, eGui) {\n var _this = this;\n this.view = view;\n this.eGridHostDiv = eGridDiv;\n this.eGui = eGui;\n this.eGui.setAttribute('grid-id', this.context.getGridId());\n // this drop target is just used to see if the drop event is inside the grid\n this.dragAndDropService.addDropTarget({\n getContainer: function () { return _this.eGui; },\n isInterestedIn: function (type) { return type === DragSourceType.HeaderCell || type === DragSourceType.ToolPanel; },\n getIconName: function () { return DragAndDropService.ICON_NOT_ALLOWED; },\n });\n this.mouseEventService.stampTopLevelGridCompWithGridInstance(eGridDiv);\n this.createManagedBean(new LayoutFeature(this.view));\n this.addRtlSupport();\n this.addManagedListener(this, Events.EVENT_KEYBOARD_FOCUS, function () {\n _this.view.addOrRemoveKeyboardFocusClass(true);\n });\n this.addManagedListener(this, Events.EVENT_MOUSE_FOCUS, function () {\n _this.view.addOrRemoveKeyboardFocusClass(false);\n });\n var unsubscribeFromResize = this.resizeObserverService.observeResize(this.eGridHostDiv, this.onGridSizeChanged.bind(this));\n this.addDestroyFunc(function () { return unsubscribeFromResize(); });\n this.ctrlsService.registerGridCtrl(this);\n };\n GridCtrl.prototype.isDetailGrid = function () {\n var _a;\n var el = this.focusService.findTabbableParent(this.getGui());\n return ((_a = el === null || el === void 0 ? void 0 : el.getAttribute('row-id')) === null || _a === void 0 ? void 0 : _a.startsWith('detail')) || false;\n };\n GridCtrl.prototype.showDropZones = function () {\n return ModuleRegistry.__isRegistered(ModuleNames.RowGroupingModule, this.context.getGridId());\n };\n GridCtrl.prototype.showSideBar = function () {\n return ModuleRegistry.__isRegistered(ModuleNames.SideBarModule, this.context.getGridId());\n };\n GridCtrl.prototype.showStatusBar = function () {\n return ModuleRegistry.__isRegistered(ModuleNames.StatusBarModule, this.context.getGridId());\n };\n GridCtrl.prototype.showWatermark = function () {\n return ModuleRegistry.__isRegistered(ModuleNames.EnterpriseCoreModule, this.context.getGridId());\n };\n GridCtrl.prototype.onGridSizeChanged = function () {\n var event = {\n type: Events.EVENT_GRID_SIZE_CHANGED,\n clientWidth: this.eGridHostDiv.clientWidth,\n clientHeight: this.eGridHostDiv.clientHeight\n };\n this.eventService.dispatchEvent(event);\n };\n GridCtrl.prototype.addRtlSupport = function () {\n var cssClass = this.gridOptionsService.is('enableRtl') ? 'ag-rtl' : 'ag-ltr';\n this.view.setRtlClass(cssClass);\n };\n GridCtrl.prototype.destroyGridUi = function () {\n this.view.destroyGridUi();\n };\n GridCtrl.prototype.getGui = function () {\n return this.eGui;\n };\n GridCtrl.prototype.setResizeCursor = function (on) {\n this.view.setCursor(on ? 'ew-resize' : null);\n };\n GridCtrl.prototype.disableUserSelect = function (on) {\n this.view.setUserSelect(on ? 'none' : null);\n };\n GridCtrl.prototype.focusNextInnerContainer = function (backwards) {\n var eDocument = this.gridOptionsService.getDocument();\n var focusableContainers = this.view.getFocusableContainers();\n var idxWithFocus = focusableContainers.findIndex(function (container) { return container.contains(eDocument.activeElement); });\n var nextIdx = idxWithFocus + (backwards ? -1 : 1);\n if (nextIdx <= 0 || nextIdx >= focusableContainers.length) {\n return false;\n }\n return this.focusService.focusInto(focusableContainers[nextIdx]);\n };\n GridCtrl.prototype.focusInnerElement = function (fromBottom) {\n var focusableContainers = this.view.getFocusableContainers();\n var allColumns = this.columnModel.getAllDisplayedColumns();\n if (fromBottom) {\n if (focusableContainers.length > 1) {\n return this.focusService.focusInto(last(focusableContainers), true);\n }\n var lastColumn = last(allColumns);\n if (this.focusService.focusGridView(lastColumn, true)) {\n return true;\n }\n }\n if (this.gridOptionsService.getNum('headerHeight') === 0) {\n return this.focusService.focusGridView(allColumns[0]);\n }\n return this.focusService.focusFirstHeader();\n };\n GridCtrl.prototype.forceFocusOutOfContainer = function (up) {\n if (up === void 0) { up = false; }\n this.view.forceFocusOutOfContainer(up);\n };\n __decorate$I([\n Autowired('focusService')\n ], GridCtrl.prototype, \"focusService\", void 0);\n __decorate$I([\n Autowired('resizeObserverService')\n ], GridCtrl.prototype, \"resizeObserverService\", void 0);\n __decorate$I([\n Autowired('columnModel')\n ], GridCtrl.prototype, \"columnModel\", void 0);\n __decorate$I([\n Autowired('ctrlsService')\n ], GridCtrl.prototype, \"ctrlsService\", void 0);\n __decorate$I([\n Autowired('mouseEventService')\n ], GridCtrl.prototype, \"mouseEventService\", void 0);\n __decorate$I([\n Autowired('dragAndDropService')\n ], GridCtrl.prototype, \"dragAndDropService\", void 0);\n return GridCtrl;\n}(BeanStub));\n\nvar __extends$G = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$H = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GridComp = /** @class */ (function (_super) {\n __extends$G(GridComp, _super);\n function GridComp(eGridDiv) {\n var _this = _super.call(this) || this;\n _this.eGridDiv = eGridDiv;\n return _this;\n }\n GridComp.prototype.postConstruct = function () {\n var _this = this;\n this.logger = this.loggerFactory.create('GridComp');\n var compProxy = {\n destroyGridUi: function () { return _this.destroyBean(_this); },\n setRtlClass: function (cssClass) { return _this.addCssClass(cssClass); },\n addOrRemoveKeyboardFocusClass: function (addOrRemove) { return _this.addOrRemoveCssClass(FocusService.AG_KEYBOARD_FOCUS, addOrRemove); },\n forceFocusOutOfContainer: this.forceFocusOutOfContainer.bind(this),\n updateLayoutClasses: this.updateLayoutClasses.bind(this),\n getFocusableContainers: this.getFocusableContainers.bind(this),\n setUserSelect: function (value) {\n _this.getGui().style.userSelect = value != null ? value : '';\n _this.getGui().style.webkitUserSelect = value != null ? value : '';\n },\n setCursor: function (value) {\n _this.getGui().style.cursor = value != null ? value : '';\n }\n };\n this.ctrl = this.createManagedBean(new GridCtrl());\n var template = this.createTemplate();\n this.setTemplate(template);\n this.ctrl.setComp(compProxy, this.eGridDiv, this.getGui());\n this.insertGridIntoDom();\n this.initialiseTabGuard({\n // we want to override the default behaviour to do nothing for onTabKeyDown\n onTabKeyDown: function () { return undefined; },\n focusInnerElement: function (fromBottom) { return _this.ctrl.focusInnerElement(fromBottom); }\n });\n };\n GridComp.prototype.insertGridIntoDom = function () {\n var _this = this;\n var eGui = this.getGui();\n this.eGridDiv.appendChild(eGui);\n this.addDestroyFunc(function () {\n _this.eGridDiv.removeChild(eGui);\n _this.logger.log('Grid removed from DOM');\n });\n };\n GridComp.prototype.updateLayoutClasses = function (cssClass, params) {\n var eRootWrapperBodyClassList = this.eRootWrapperBody.classList;\n eRootWrapperBodyClassList.toggle(LayoutCssClasses.AUTO_HEIGHT, params.autoHeight);\n eRootWrapperBodyClassList.toggle(LayoutCssClasses.NORMAL, params.normal);\n eRootWrapperBodyClassList.toggle(LayoutCssClasses.PRINT, params.print);\n this.addOrRemoveCssClass(LayoutCssClasses.AUTO_HEIGHT, params.autoHeight);\n this.addOrRemoveCssClass(LayoutCssClasses.NORMAL, params.normal);\n this.addOrRemoveCssClass(LayoutCssClasses.PRINT, params.print);\n };\n GridComp.prototype.createTemplate = function () {\n var dropZones = this.ctrl.showDropZones() ? '' : '';\n var sideBar = this.ctrl.showSideBar() ? '' : '';\n var statusBar = this.ctrl.showStatusBar() ? '' : '';\n var watermark = this.ctrl.showWatermark() ? '' : '';\n var template = /* html */ \"
\\n \" + dropZones + \"\\n
\\n \\n \" + sideBar + \"\\n
\\n \" + statusBar + \"\\n \\n \" + watermark + \"\\n
\";\n return template;\n };\n GridComp.prototype.getFocusableElement = function () {\n return this.eRootWrapperBody;\n };\n GridComp.prototype.getFocusableContainers = function () {\n var focusableContainers = [\n this.gridBodyComp.getGui()\n ];\n if (this.sideBarComp) {\n focusableContainers.push(this.sideBarComp.getGui());\n }\n return focusableContainers.filter(function (el) { return isVisible(el); });\n };\n __decorate$H([\n Autowired('loggerFactory')\n ], GridComp.prototype, \"loggerFactory\", void 0);\n __decorate$H([\n RefSelector('gridBody')\n ], GridComp.prototype, \"gridBodyComp\", void 0);\n __decorate$H([\n RefSelector('sideBar')\n ], GridComp.prototype, \"sideBarComp\", void 0);\n __decorate$H([\n RefSelector('rootWrapperBody')\n ], GridComp.prototype, \"eRootWrapperBody\", void 0);\n __decorate$H([\n PostConstruct\n ], GridComp.prototype, \"postConstruct\", null);\n return GridComp;\n}(TabGuardComp));\n\nvar __extends$F = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$G = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$8 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$7 = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar SortController = /** @class */ (function (_super) {\n __extends$F(SortController, _super);\n function SortController() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SortController_1 = SortController;\n SortController.prototype.progressSort = function (column, multiSort, source) {\n var nextDirection = this.getNextSortDirection(column);\n this.setSortForColumn(column, nextDirection, multiSort, source);\n };\n SortController.prototype.setSortForColumn = function (column, sort, multiSort, source) {\n // auto correct - if sort not legal value, then set it to 'no sort' (which is null)\n if (sort !== 'asc' && sort !== 'desc') {\n sort = null;\n }\n var isColumnsSortingCoupledToGroup = this.gridOptionsService.isColumnsSortingCoupledToGroup();\n var columnsToUpdate = [column];\n if (isColumnsSortingCoupledToGroup) {\n if (column.getColDef().showRowGroup) {\n var rowGroupColumns = this.columnModel.getSourceColumnsForGroupColumn(column);\n var sortableRowGroupColumns = rowGroupColumns === null || rowGroupColumns === void 0 ? void 0 : rowGroupColumns.filter(function (col) { return col.getColDef().sortable; });\n if (sortableRowGroupColumns) {\n columnsToUpdate = __spreadArray$7([column], __read$8(sortableRowGroupColumns));\n }\n }\n }\n columnsToUpdate.forEach(function (col) { return col.setSort(sort, source); });\n var doingMultiSort = (multiSort || this.gridOptionsService.is('alwaysMultiSort')) && !this.gridOptionsService.is('suppressMultiSort');\n // clear sort on all columns except those changed, and update the icons\n if (!doingMultiSort) {\n this.clearSortBarTheseColumns(columnsToUpdate, source);\n }\n // sortIndex used for knowing order of cols when multi-col sort\n this.updateSortIndex(column);\n this.dispatchSortChangedEvents(source);\n };\n SortController.prototype.updateSortIndex = function (lastColToChange) {\n var isCoupled = this.gridOptionsService.isColumnsSortingCoupledToGroup();\n var groupParent = this.columnModel.getGroupDisplayColumnForGroup(lastColToChange.getId());\n var lastSortIndexCol = isCoupled ? groupParent || lastColToChange : lastColToChange;\n var allSortedCols = this.getColumnsWithSortingOrdered();\n // reset sort index on everything\n this.columnModel.getPrimaryAndSecondaryAndAutoColumns().forEach(function (col) { return col.setSortIndex(null); });\n var allSortedColsWithoutChanges = allSortedCols.filter(function (col) { return col !== lastSortIndexCol; });\n var sortedColsWithIndices = !!lastSortIndexCol.getSort() ? __spreadArray$7(__spreadArray$7([], __read$8(allSortedColsWithoutChanges)), [lastSortIndexCol]) : allSortedColsWithoutChanges;\n sortedColsWithIndices.forEach(function (col, idx) { return (col.setSortIndex(idx)); });\n };\n // gets called by API, so if data changes, use can call this, which will end up\n // working out the sort order again of the rows.\n SortController.prototype.onSortChanged = function (source) {\n this.dispatchSortChangedEvents(source);\n };\n SortController.prototype.isSortActive = function () {\n // pull out all the columns that have sorting set\n var allCols = this.columnModel.getPrimaryAndSecondaryAndAutoColumns();\n var sortedCols = allCols.filter(function (column) { return !!column.getSort(); });\n return sortedCols && sortedCols.length > 0;\n };\n SortController.prototype.dispatchSortChangedEvents = function (source) {\n var event = {\n type: Events.EVENT_SORT_CHANGED,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n SortController.prototype.clearSortBarTheseColumns = function (columnsToSkip, source) {\n this.columnModel.getPrimaryAndSecondaryAndAutoColumns().forEach(function (columnToClear) {\n // Do not clear if either holding shift, or if column in question was clicked\n if (!columnsToSkip.includes(columnToClear)) {\n // setting to 'undefined' as null means 'none' rather than cleared, otherwise issue will arise\n // if sort order is: ['desc', null , 'asc'], as it will start at null rather than 'desc'.\n columnToClear.setSort(undefined, source);\n }\n });\n };\n SortController.prototype.getNextSortDirection = function (column) {\n var sortingOrder;\n if (column.getColDef().sortingOrder) {\n sortingOrder = column.getColDef().sortingOrder;\n }\n else if (this.gridOptionsService.get('sortingOrder')) {\n sortingOrder = this.gridOptionsService.get('sortingOrder');\n }\n else {\n sortingOrder = SortController_1.DEFAULT_SORTING_ORDER;\n }\n if (!Array.isArray(sortingOrder) || sortingOrder.length <= 0) {\n console.warn(\"AG Grid: sortingOrder must be an array with at least one element, currently it's \" + sortingOrder);\n return null;\n }\n var currentIndex = sortingOrder.indexOf(column.getSort());\n var notInArray = currentIndex < 0;\n var lastItemInArray = currentIndex == sortingOrder.length - 1;\n var result;\n if (notInArray || lastItemInArray) {\n result = sortingOrder[0];\n }\n else {\n result = sortingOrder[currentIndex + 1];\n }\n // verify the sort type exists, as the user could provide the sortingOrder, need to make sure it's valid\n if (SortController_1.DEFAULT_SORTING_ORDER.indexOf(result) < 0) {\n console.warn('AG Grid: invalid sort type ' + result);\n return null;\n }\n return result;\n };\n /**\n * @returns a map of sort indexes for every sorted column, if groups sort primaries then they will have equivalent indices\n */\n SortController.prototype.getIndexedSortMap = function () {\n var _this = this;\n // pull out all the columns that have sorting set\n var allSortedCols = this.columnModel.getPrimaryAndSecondaryAndAutoColumns()\n .filter(function (col) { return !!col.getSort(); });\n if (this.columnModel.isPivotMode()) {\n var isSortingLinked_1 = this.gridOptionsService.isColumnsSortingCoupledToGroup();\n allSortedCols = allSortedCols.filter(function (col) {\n var isAggregated = !!col.getAggFunc();\n var isSecondary = !col.isPrimary();\n var isGroup = isSortingLinked_1 ? _this.columnModel.getGroupDisplayColumnForGroup(col.getId()) : col.getColDef().showRowGroup;\n return isAggregated || isSecondary || isGroup;\n });\n }\n var sortedRowGroupCols = this.columnModel.getRowGroupColumns()\n .filter(function (col) { return !!col.getSort(); });\n var isSortLinked = this.gridOptionsService.isColumnsSortingCoupledToGroup() && !!sortedRowGroupCols.length;\n if (isSortLinked) {\n allSortedCols = __spreadArray$7([], __read$8(new Set(\n // if linked sorting, replace all columns with the display group column for index purposes, and ensure uniqueness\n allSortedCols.map(function (col) { var _a; return (_a = _this.columnModel.getGroupDisplayColumnForGroup(col.getId())) !== null && _a !== void 0 ? _a : col; }))));\n }\n // when both cols are missing sortIndex, we use the position of the col in all cols list.\n // this means if colDefs only have sort, but no sortIndex, we deterministically pick which\n // cols is sorted by first.\n var allColsIndexes = {};\n allSortedCols.forEach(function (col, index) { return allColsIndexes[col.getId()] = index; });\n // put the columns in order of which one got sorted first\n allSortedCols.sort(function (a, b) {\n var iA = a.getSortIndex();\n var iB = b.getSortIndex();\n if (iA != null && iB != null) {\n return iA - iB; // both present, normal comparison\n }\n else if (iA == null && iB == null) {\n // both missing, compare using column positions\n var posA = allColsIndexes[a.getId()];\n var posB = allColsIndexes[b.getId()];\n return posA > posB ? 1 : -1;\n }\n else if (iB == null) {\n return -1; // iB missing\n }\n else {\n return 1; // iA missing\n }\n });\n var indexMap = new Map();\n allSortedCols.forEach(function (col, idx) { return indexMap.set(col, idx); });\n // add the row group cols back\n if (isSortLinked) {\n sortedRowGroupCols.forEach(function (col) {\n var groupDisplayCol = _this.columnModel.getGroupDisplayColumnForGroup(col.getId());\n indexMap.set(col, indexMap.get(groupDisplayCol));\n });\n }\n return indexMap;\n };\n SortController.prototype.getColumnsWithSortingOrdered = function () {\n // pull out all the columns that have sorting set\n return __spreadArray$7([], __read$8(this.getIndexedSortMap().entries())).sort(function (_a, _b) {\n var _c = __read$8(_a, 2); _c[0]; var idx1 = _c[1];\n var _d = __read$8(_b, 2); _d[0]; var idx2 = _d[1];\n return idx1 - idx2;\n })\n .map(function (_a) {\n var _b = __read$8(_a, 1), col = _b[0];\n return col;\n });\n };\n // used by server side row models, to sent sort to server\n SortController.prototype.getSortModel = function () {\n return this.getColumnsWithSortingOrdered()\n .filter(function (column) { return column.getSort(); })\n .map(function (column) { return ({\n sort: column.getSort(),\n colId: column.getId()\n }); });\n };\n SortController.prototype.getSortOptions = function () {\n return this.getColumnsWithSortingOrdered()\n .filter(function (column) { return column.getSort(); })\n .map(function (column) { return ({\n sort: column.getSort(),\n column: column\n }); });\n };\n SortController.prototype.canColumnDisplayMixedSort = function (column) {\n var isColumnSortCouplingActive = this.gridOptionsService.isColumnsSortingCoupledToGroup();\n var isGroupDisplayColumn = !!column.getColDef().showRowGroup;\n return isColumnSortCouplingActive && isGroupDisplayColumn;\n };\n SortController.prototype.getDisplaySortForColumn = function (column) {\n var linkedColumns = this.columnModel.getSourceColumnsForGroupColumn(column);\n if (!this.canColumnDisplayMixedSort(column) || !(linkedColumns === null || linkedColumns === void 0 ? void 0 : linkedColumns.length)) {\n return column.getSort();\n }\n // if column has unique data, its sorting is independent - but can still be mixed\n var columnHasUniqueData = column.getColDef().field != null || !!column.getColDef().valueGetter;\n var sortableColumns = columnHasUniqueData ? __spreadArray$7([column], __read$8(linkedColumns)) : linkedColumns;\n var firstSort = sortableColumns[0].getSort();\n // the == is intentional, as null and undefined both represent no sort, which means they are equivalent\n var allMatch = sortableColumns.every(function (col) { return col.getSort() == firstSort; });\n if (!allMatch) {\n return 'mixed';\n }\n return firstSort;\n };\n SortController.prototype.getDisplaySortIndexForColumn = function (column) {\n return this.getIndexedSortMap().get(column);\n };\n var SortController_1;\n SortController.DEFAULT_SORTING_ORDER = ['asc', 'desc', null];\n __decorate$G([\n Autowired('columnModel')\n ], SortController.prototype, \"columnModel\", void 0);\n SortController = SortController_1 = __decorate$G([\n Bean('sortController')\n ], SortController);\n return SortController;\n}(BeanStub));\n\nvar __extends$E = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$F = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ColumnHoverService = /** @class */ (function (_super) {\n __extends$E(ColumnHoverService, _super);\n function ColumnHoverService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ColumnHoverService.prototype.setMouseOver = function (columns) {\n this.selectedColumns = columns;\n var event = {\n type: Events.EVENT_COLUMN_HOVER_CHANGED\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnHoverService.prototype.clearMouseOver = function () {\n this.selectedColumns = null;\n var event = {\n type: Events.EVENT_COLUMN_HOVER_CHANGED\n };\n this.eventService.dispatchEvent(event);\n };\n ColumnHoverService.prototype.isHovered = function (column) {\n return !!this.selectedColumns && this.selectedColumns.indexOf(column) >= 0;\n };\n ColumnHoverService = __decorate$F([\n Bean('columnHoverService')\n ], ColumnHoverService);\n return ColumnHoverService;\n}(BeanStub));\n\nvar __extends$D = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$E = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ColumnAnimationService = /** @class */ (function (_super) {\n __extends$D(ColumnAnimationService, _super);\n function ColumnAnimationService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.executeNextFuncs = [];\n _this.executeLaterFuncs = [];\n _this.active = false;\n _this.animationThreadCount = 0;\n return _this;\n }\n ColumnAnimationService.prototype.postConstruct = function () {\n var _this = this;\n this.ctrlsService.whenReady(function (p) { return _this.gridBodyCtrl = p.gridBodyCtrl; });\n };\n ColumnAnimationService.prototype.isActive = function () {\n return this.active;\n };\n ColumnAnimationService.prototype.start = function () {\n if (this.active) {\n return;\n }\n if (this.gridOptionsService.is('suppressColumnMoveAnimation')) {\n return;\n }\n // if doing RTL, we don't animate open / close as due to how the pixels are inverted,\n // the animation moves all the row the the right rather than to the left (ie it's the static\n // columns that actually get their coordinates updated)\n if (this.gridOptionsService.is('enableRtl')) {\n return;\n }\n this.ensureAnimationCssClassPresent();\n this.active = true;\n };\n ColumnAnimationService.prototype.finish = function () {\n if (!this.active) {\n return;\n }\n this.flush();\n this.active = false;\n };\n ColumnAnimationService.prototype.executeNextVMTurn = function (func) {\n if (this.active) {\n this.executeNextFuncs.push(func);\n }\n else {\n func();\n }\n };\n ColumnAnimationService.prototype.executeLaterVMTurn = function (func) {\n if (this.active) {\n this.executeLaterFuncs.push(func);\n }\n else {\n func();\n }\n };\n ColumnAnimationService.prototype.ensureAnimationCssClassPresent = function () {\n var _this = this;\n // up the count, so we can tell if someone else has updated the count\n // by the time the 'wait' func executes\n this.animationThreadCount++;\n var animationThreadCountCopy = this.animationThreadCount;\n this.gridBodyCtrl.setColumnMovingCss(true);\n this.executeLaterFuncs.push(function () {\n // only remove the class if this thread was the last one to update it\n if (_this.animationThreadCount === animationThreadCountCopy) {\n _this.gridBodyCtrl.setColumnMovingCss(false);\n }\n });\n };\n ColumnAnimationService.prototype.flush = function () {\n var nowFuncs = this.executeNextFuncs;\n this.executeNextFuncs = [];\n var waitFuncs = this.executeLaterFuncs;\n this.executeLaterFuncs = [];\n if (nowFuncs.length === 0 && waitFuncs.length === 0) {\n return;\n }\n window.setTimeout(function () { return nowFuncs.forEach(function (func) { return func(); }); }, 0);\n window.setTimeout(function () { return waitFuncs.forEach(function (func) { return func(); }); }, 300);\n };\n __decorate$E([\n Autowired('ctrlsService')\n ], ColumnAnimationService.prototype, \"ctrlsService\", void 0);\n __decorate$E([\n PostConstruct\n ], ColumnAnimationService.prototype, \"postConstruct\", null);\n ColumnAnimationService = __decorate$E([\n Bean('columnAnimationService')\n ], ColumnAnimationService);\n return ColumnAnimationService;\n}(BeanStub));\n\nvar __extends$C = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$D = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PaginationAutoPageSizeService = /** @class */ (function (_super) {\n __extends$C(PaginationAutoPageSizeService, _super);\n function PaginationAutoPageSizeService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PaginationAutoPageSizeService.prototype.postConstruct = function () {\n var _this = this;\n this.ctrlsService.whenReady(function (p) {\n _this.centerRowContainerCon = p.centerRowContainerCtrl;\n _this.addManagedListener(_this.eventService, Events.EVENT_BODY_HEIGHT_CHANGED, _this.checkPageSize.bind(_this));\n _this.addManagedListener(_this.eventService, Events.EVENT_SCROLL_VISIBILITY_CHANGED, _this.checkPageSize.bind(_this));\n _this.checkPageSize();\n });\n };\n PaginationAutoPageSizeService.prototype.notActive = function () {\n return !this.gridOptionsService.is('paginationAutoPageSize') || this.centerRowContainerCon == null;\n };\n PaginationAutoPageSizeService.prototype.checkPageSize = function () {\n var _this = this;\n if (this.notActive()) {\n return;\n }\n var bodyHeight = this.centerRowContainerCon.getViewportSizeFeature().getBodyHeight();\n if (bodyHeight > 0) {\n var update_1 = function () {\n var rowHeight = _this.gridOptionsService.getRowHeightAsNumber();\n var newPageSize = Math.floor(bodyHeight / rowHeight);\n _this.gridOptionsService.set('paginationPageSize', newPageSize);\n };\n if (!this.isBodyRendered) {\n update_1();\n this.isBodyRendered = true;\n }\n else {\n debounce(function () { return update_1(); }, 50)();\n }\n }\n else {\n this.isBodyRendered = false;\n }\n };\n __decorate$D([\n Autowired('ctrlsService')\n ], PaginationAutoPageSizeService.prototype, \"ctrlsService\", void 0);\n __decorate$D([\n PostConstruct\n ], PaginationAutoPageSizeService.prototype, \"postConstruct\", null);\n PaginationAutoPageSizeService = __decorate$D([\n Bean('paginationAutoPageSizeService')\n ], PaginationAutoPageSizeService);\n return PaginationAutoPageSizeService;\n}(BeanStub));\n\nvar __extends$B = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$C = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ValueCache = /** @class */ (function (_super) {\n __extends$B(ValueCache, _super);\n function ValueCache() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.cacheVersion = 0;\n return _this;\n }\n ValueCache.prototype.init = function () {\n this.active = this.gridOptionsService.is('valueCache');\n this.neverExpires = this.gridOptionsService.is('valueCacheNeverExpires');\n };\n ValueCache.prototype.onDataChanged = function () {\n if (this.neverExpires) {\n return;\n }\n this.expire();\n };\n ValueCache.prototype.expire = function () {\n this.cacheVersion++;\n };\n ValueCache.prototype.setValue = function (rowNode, colId, value) {\n if (this.active) {\n if (rowNode.__cacheVersion !== this.cacheVersion) {\n rowNode.__cacheVersion = this.cacheVersion;\n rowNode.__cacheData = {};\n }\n rowNode.__cacheData[colId] = value;\n }\n };\n ValueCache.prototype.getValue = function (rowNode, colId) {\n if (!this.active || rowNode.__cacheVersion !== this.cacheVersion) {\n return undefined;\n }\n return rowNode.__cacheData[colId];\n };\n __decorate$C([\n PostConstruct\n ], ValueCache.prototype, \"init\", null);\n ValueCache = __decorate$C([\n Bean('valueCache')\n ], ValueCache);\n return ValueCache;\n}(BeanStub));\n\nvar __extends$A = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$B = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// Matches value in clipboard module\nvar SOURCE_PASTE = 'paste';\nvar ChangeDetectionService = /** @class */ (function (_super) {\n __extends$A(ChangeDetectionService, _super);\n function ChangeDetectionService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ChangeDetectionService.prototype.init = function () {\n if (this.rowModel.getType() === 'clientSide') {\n this.clientSideRowModel = this.rowModel;\n }\n this.addManagedListener(this.eventService, Events.EVENT_CELL_VALUE_CHANGED, this.onCellValueChanged.bind(this));\n };\n ChangeDetectionService.prototype.onCellValueChanged = function (event) {\n // Clipboard service manages its own change detection, so no need to do it here.\n // The clipboard manages its own as otherwise this would happen once for every cell\n // that got updated as part of a paste operation, so e.g. if 100 cells in a paste operation,\n // this doChangeDetection would get called 100 times (once for each cell), instead clipboard\n // service executes the logic we have here once (in essence batching up all cell changes\n // into one change detection).\n if (event.source === SOURCE_PASTE) {\n return;\n }\n this.doChangeDetection(event.node, event.column);\n };\n ChangeDetectionService.prototype.doChangeDetection = function (rowNode, column) {\n if (this.gridOptionsService.is('suppressChangeDetection')) {\n return;\n }\n var nodesToRefresh = [rowNode];\n // step 1 of change detection is to update the aggregated values\n if (this.clientSideRowModel && !rowNode.isRowPinned()) {\n var onlyChangedColumns = this.gridOptionsService.is('aggregateOnlyChangedColumns');\n var changedPath = new ChangedPath(onlyChangedColumns, this.clientSideRowModel.getRootNode());\n changedPath.addParentNode(rowNode.parent, [column]);\n this.clientSideRowModel.doAggregate(changedPath);\n // add all nodes impacted by aggregation, as they need refreshed also.\n changedPath.forEachChangedNodeDepthFirst(function (rowNode) {\n nodesToRefresh.push(rowNode);\n });\n }\n // step 2 of change detection is to refresh the cells\n this.rowRenderer.refreshCells({ rowNodes: nodesToRefresh });\n };\n __decorate$B([\n Autowired('rowModel')\n ], ChangeDetectionService.prototype, \"rowModel\", void 0);\n __decorate$B([\n Autowired('rowRenderer')\n ], ChangeDetectionService.prototype, \"rowRenderer\", void 0);\n __decorate$B([\n PostConstruct\n ], ChangeDetectionService.prototype, \"init\", null);\n ChangeDetectionService = __decorate$B([\n Bean('changeDetectionService')\n ], ChangeDetectionService);\n return ChangeDetectionService;\n}(BeanStub));\n\nvar __extends$z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgComponentUtils = /** @class */ (function (_super) {\n __extends$z(AgComponentUtils, _super);\n function AgComponentUtils() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n AgComponentUtils.prototype.adaptFunction = function (propertyName, jsCompFunc) {\n var metadata = this.componentMetadataProvider.retrieve(propertyName);\n if (metadata && metadata.functionAdapter) {\n return metadata.functionAdapter(jsCompFunc);\n }\n return null;\n };\n AgComponentUtils.prototype.adaptCellRendererFunction = function (callback) {\n var Adapter = /** @class */ (function () {\n function Adapter() {\n }\n Adapter.prototype.refresh = function (params) {\n return false;\n };\n Adapter.prototype.getGui = function () {\n return this.eGui;\n };\n Adapter.prototype.init = function (params) {\n var callbackResult = callback(params);\n var type = typeof callbackResult;\n if (type === 'string' || type === 'number' || type === 'boolean') {\n this.eGui = loadTemplate('' + callbackResult + '');\n return;\n }\n if (callbackResult == null) {\n this.eGui = loadTemplate('');\n return;\n }\n this.eGui = callbackResult;\n };\n return Adapter;\n }());\n return Adapter;\n };\n AgComponentUtils.prototype.doesImplementIComponent = function (candidate) {\n if (!candidate) {\n return false;\n }\n return candidate.prototype && 'getGui' in candidate.prototype;\n };\n __decorate$A([\n Autowired(\"componentMetadataProvider\")\n ], AgComponentUtils.prototype, \"componentMetadataProvider\", void 0);\n AgComponentUtils = __decorate$A([\n Bean(\"agComponentUtils\")\n ], AgComponentUtils);\n return AgComponentUtils;\n}(BeanStub));\n\nvar __extends$y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ComponentMetadataProvider = /** @class */ (function (_super) {\n __extends$y(ComponentMetadataProvider, _super);\n function ComponentMetadataProvider() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ComponentMetadataProvider.prototype.postConstruct = function () {\n this.componentMetaData = {\n dateComponent: {\n mandatoryMethodList: ['getDate', 'setDate'],\n optionalMethodList: ['afterGuiAttached', 'setInputPlaceholder', 'setInputAriaLabel']\n },\n detailCellRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh'],\n functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)\n },\n headerComponent: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh']\n },\n headerGroupComponent: {\n mandatoryMethodList: [],\n optionalMethodList: []\n },\n loadingCellRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: []\n },\n loadingOverlayComponent: {\n mandatoryMethodList: [],\n optionalMethodList: []\n },\n noRowsOverlayComponent: {\n mandatoryMethodList: [],\n optionalMethodList: []\n },\n floatingFilterComponent: {\n mandatoryMethodList: ['onParentModelChanged'],\n optionalMethodList: ['afterGuiAttached']\n },\n floatingFilterWrapperComponent: {\n mandatoryMethodList: [],\n optionalMethodList: []\n },\n cellRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh', 'afterGuiAttached'],\n functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)\n },\n cellEditor: {\n mandatoryMethodList: ['getValue'],\n optionalMethodList: ['isPopup', 'isCancelBeforeStart', 'isCancelAfterEnd', 'getPopupPosition', 'focusIn', 'focusOut', 'afterGuiAttached']\n },\n innerRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: ['afterGuiAttached'],\n functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)\n },\n fullWidthCellRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh', 'afterGuiAttached'],\n functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)\n },\n groupRowRenderer: {\n mandatoryMethodList: [],\n optionalMethodList: ['afterGuiAttached'],\n functionAdapter: this.agComponentUtils.adaptCellRendererFunction.bind(this.agComponentUtils)\n },\n filter: {\n mandatoryMethodList: ['isFilterActive', 'doesFilterPass', 'getModel', 'setModel'],\n optionalMethodList: ['afterGuiAttached', 'afterGuiDetached', 'onNewRowsLoaded', 'getModelAsString', 'onFloatingFilterChanged', 'onAnyFilterChanged']\n },\n filterComponent: {\n mandatoryMethodList: ['isFilterActive', 'doesFilterPass', 'getModel', 'setModel'],\n optionalMethodList: ['afterGuiAttached', 'afterGuiDetached', 'onNewRowsLoaded', 'getModelAsString', 'onFloatingFilterChanged', 'onAnyFilterChanged']\n },\n statusPanel: {\n mandatoryMethodList: [],\n optionalMethodList: ['afterGuiAttached'],\n },\n toolPanel: {\n mandatoryMethodList: [],\n optionalMethodList: ['refresh', 'afterGuiAttached']\n },\n tooltipComponent: {\n mandatoryMethodList: [],\n optionalMethodList: []\n }\n };\n };\n ComponentMetadataProvider.prototype.retrieve = function (name) {\n return this.componentMetaData[name];\n };\n __decorate$z([\n Autowired(\"agComponentUtils\")\n ], ComponentMetadataProvider.prototype, \"agComponentUtils\", void 0);\n __decorate$z([\n PostConstruct\n ], ComponentMetadataProvider.prototype, \"postConstruct\", null);\n ComponentMetadataProvider = __decorate$z([\n Bean(\"componentMetadataProvider\")\n ], ComponentMetadataProvider);\n return ComponentMetadataProvider;\n}(BeanStub));\n\nvar __extends$x = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$7 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$6 = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar DEFAULT_ROW_HEIGHT = 25;\nvar MIN_COL_WIDTH = 10;\nvar MAT_GRID_SIZE = 8;\nvar BASE_GRID_SIZE = 4;\nvar BALHAM_GRID_SIZE = 4;\nvar ALPINE_GRID_SIZE = 6;\nvar HARD_CODED_SIZES = {\n // this item is required for custom themes\n 'ag-theme-custom': {\n headerHeight: 25,\n headerCellMinWidth: 24,\n listItemHeight: BASE_GRID_SIZE * 5,\n rowHeight: 25,\n chartMenuPanelWidth: 220\n },\n 'ag-theme-material': {\n headerHeight: MAT_GRID_SIZE * 7,\n headerCellMinWidth: 48,\n listItemHeight: MAT_GRID_SIZE * 4,\n rowHeight: MAT_GRID_SIZE * 6,\n chartMenuPanelWidth: 240\n },\n 'ag-theme-balham': {\n headerHeight: BALHAM_GRID_SIZE * 8,\n headerCellMinWidth: 24,\n listItemHeight: BALHAM_GRID_SIZE * 6,\n rowHeight: BALHAM_GRID_SIZE * 7,\n chartMenuPanelWidth: 220\n },\n 'ag-theme-alpine': {\n headerHeight: ALPINE_GRID_SIZE * 8,\n headerCellMinWidth: 36,\n listItemHeight: ALPINE_GRID_SIZE * 4,\n rowHeight: ALPINE_GRID_SIZE * 7,\n chartMenuPanelWidth: 240\n }\n};\n/**\n * this object contains a list of Sass variables and an array\n * of CSS styles required to get the correct value.\n * eg. $virtual-item-height requires a structure, so we can get its height.\n *
\n *
\n *
\n *
\n *
\n */\nvar SASS_PROPERTY_BUILDER = {\n headerHeight: ['ag-header-row'],\n headerCellMinWidth: ['ag-header-cell'],\n listItemHeight: ['ag-virtual-list-item'],\n rowHeight: ['ag-row'],\n chartMenuPanelWidth: ['ag-chart-docked-container']\n};\nvar Environment = /** @class */ (function (_super) {\n __extends$x(Environment, _super);\n function Environment() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.calculatedSizes = {};\n return _this;\n }\n Environment.prototype.postConstruct = function () {\n var _this = this;\n var _a;\n var el = (_a = this.getTheme().el) !== null && _a !== void 0 ? _a : this.eGridDiv;\n this.mutationObserver = new MutationObserver(function () {\n _this.calculatedSizes = {};\n _this.fireGridStylesChangedEvent();\n });\n this.mutationObserver.observe(el || this.eGridDiv, {\n attributes: true,\n attributeFilter: ['class']\n });\n };\n Environment.prototype.fireGridStylesChangedEvent = function () {\n var event = {\n type: Events.EVENT_GRID_STYLES_CHANGED\n };\n this.eventService.dispatchEvent(event);\n };\n Environment.prototype.getSassVariable = function (key) {\n var _a = this.getTheme(), themeFamily = _a.themeFamily, el = _a.el;\n if (!themeFamily || themeFamily.indexOf('ag-theme') !== 0) {\n return;\n }\n if (!this.calculatedSizes) {\n this.calculatedSizes = {};\n }\n if (!this.calculatedSizes[themeFamily]) {\n this.calculatedSizes[themeFamily] = {};\n }\n var size = this.calculatedSizes[themeFamily][key];\n if (size != null) {\n return size;\n }\n this.calculatedSizes[themeFamily][key] = this.calculateValueForSassProperty(key, themeFamily, el);\n return this.calculatedSizes[themeFamily][key];\n };\n Environment.prototype.calculateValueForSassProperty = function (property, theme, themeElement) {\n var _a;\n var useTheme = 'ag-theme-' + (theme.match('material') ? 'material' : theme.match('balham') ? 'balham' : theme.match('alpine') ? 'alpine' : 'custom');\n var defaultValue = HARD_CODED_SIZES[useTheme][property];\n var eDocument = this.gridOptionsService.getDocument();\n if (!themeElement) {\n themeElement = this.eGridDiv;\n }\n if (!SASS_PROPERTY_BUILDER[property]) {\n return defaultValue;\n }\n var classList = SASS_PROPERTY_BUILDER[property];\n var div = eDocument.createElement('div');\n // this will apply SASS variables that were manually added to the current theme\n var classesFromThemeElement = Array.from(themeElement.classList);\n (_a = div.classList).add.apply(_a, __spreadArray$6([theme], __read$7(classesFromThemeElement)));\n div.style.position = 'absolute';\n var el = classList.reduce(function (prevEl, currentClass) {\n var currentDiv = eDocument.createElement('div');\n currentDiv.style.position = 'static';\n currentDiv.classList.add(currentClass);\n prevEl.appendChild(currentDiv);\n return currentDiv;\n }, div);\n var calculatedValue = 0;\n if (eDocument.body) {\n eDocument.body.appendChild(div);\n var sizeName = property.toLowerCase().indexOf('height') !== -1 ? 'height' : 'width';\n calculatedValue = parseInt(window.getComputedStyle(el)[sizeName], 10);\n eDocument.body.removeChild(div);\n }\n return calculatedValue || defaultValue;\n };\n Environment.prototype.isThemeDark = function () {\n var theme = this.getTheme().theme;\n return !!theme && theme.indexOf('dark') >= 0;\n };\n Environment.prototype.chartMenuPanelWidth = function () {\n return this.getSassVariable('chartMenuPanelWidth');\n };\n Environment.prototype.getTheme = function () {\n var reg = /\\bag-(material|(?:theme-([\\w\\-]*)))\\b/g;\n var el = this.eGridDiv;\n var themeMatch = null;\n var allThemes = [];\n while (el) {\n themeMatch = reg.exec(el.className);\n if (!themeMatch) {\n el = el.parentElement || undefined;\n }\n else {\n var matched = el.className.match(reg);\n if (matched) {\n allThemes = matched;\n }\n break;\n }\n }\n if (!themeMatch) {\n return { allThemes: allThemes };\n }\n var theme = themeMatch[0];\n return { theme: theme, el: el, themeFamily: theme.replace(/-dark$/, ''), allThemes: allThemes };\n };\n Environment.prototype.getFromTheme = function (defaultValue, sassVariableName) {\n var _a;\n return (_a = this.getSassVariable(sassVariableName)) !== null && _a !== void 0 ? _a : defaultValue;\n };\n Environment.prototype.getDefaultRowHeight = function () {\n return this.getFromTheme(DEFAULT_ROW_HEIGHT, 'rowHeight');\n };\n Environment.prototype.getListItemHeight = function () {\n return this.getFromTheme(20, 'listItemHeight');\n };\n Environment.prototype.refreshRowHeightVariable = function () {\n var oldRowHeight = this.eGridDiv.style.getPropertyValue('--ag-line-height').trim();\n var height = this.gridOptionsService.getNum('rowHeight');\n if (height == null || isNaN(height) || !isFinite(height)) {\n return -1;\n }\n var newRowHeight = height + \"px\";\n if (oldRowHeight != newRowHeight) {\n this.eGridDiv.style.setProperty('--ag-line-height', newRowHeight);\n return height;\n }\n return oldRowHeight != '' ? parseFloat(oldRowHeight) : -1;\n };\n Environment.prototype.getMinColWidth = function () {\n var measuredMin = this.getFromTheme(null, 'headerCellMinWidth');\n return exists(measuredMin) ? Math.max(measuredMin, MIN_COL_WIDTH) : MIN_COL_WIDTH;\n };\n Environment.prototype.destroy = function () {\n this.calculatedSizes = null;\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n }\n _super.prototype.destroy.call(this);\n };\n __decorate$y([\n Autowired('eGridDiv')\n ], Environment.prototype, \"eGridDiv\", void 0);\n __decorate$y([\n PostConstruct\n ], Environment.prototype, \"postConstruct\", null);\n Environment = __decorate$y([\n Bean('environment')\n ], Environment);\n return Environment;\n}(BeanStub));\n\nvar __extends$w = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$2 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\n/**\n * This class solves the 'max height' problem, where the user might want to show more data than\n * the max div height actually allows.\n */\nvar RowContainerHeightService = /** @class */ (function (_super) {\n __extends$w(RowContainerHeightService, _super);\n function RowContainerHeightService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // the scrollY position\n _this.scrollY = 0;\n // how tall the body is\n _this.uiBodyHeight = 0;\n return _this;\n }\n RowContainerHeightService.prototype.agWire = function (loggerFactory) {\n this.logger = loggerFactory.create(\"RowContainerHeightService\");\n };\n RowContainerHeightService.prototype.postConstruct = function () {\n this.addManagedListener(this.eventService, Events.EVENT_BODY_HEIGHT_CHANGED, this.updateOffset.bind(this));\n this.maxDivHeight = getMaxDivHeight();\n this.logger.log('maxDivHeight = ' + this.maxDivHeight);\n };\n RowContainerHeightService.prototype.isStretching = function () {\n return this.stretching;\n };\n RowContainerHeightService.prototype.getDivStretchOffset = function () {\n return this.divStretchOffset;\n };\n RowContainerHeightService.prototype.updateOffset = function () {\n if (!this.stretching) {\n return;\n }\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n var newScrollY = gridBodyCon.getScrollFeature().getVScrollPosition().top;\n var newBodyHeight = this.getUiBodyHeight();\n var atLeastOneChanged = newScrollY !== this.scrollY || newBodyHeight !== this.uiBodyHeight;\n if (atLeastOneChanged) {\n this.scrollY = newScrollY;\n this.uiBodyHeight = newBodyHeight;\n this.calculateOffset();\n }\n };\n RowContainerHeightService.prototype.calculateOffset = function () {\n this.setUiContainerHeight(this.maxDivHeight);\n this.pixelsToShave = this.modelHeight - this.uiContainerHeight;\n this.maxScrollY = this.uiContainerHeight - this.uiBodyHeight;\n var scrollPercent = this.scrollY / this.maxScrollY;\n var divStretchOffset = scrollPercent * this.pixelsToShave;\n this.logger.log(\"Div Stretch Offset = \" + divStretchOffset + \" (\" + this.pixelsToShave + \" * \" + scrollPercent + \")\");\n this.setDivStretchOffset(divStretchOffset);\n };\n RowContainerHeightService.prototype.setUiContainerHeight = function (height) {\n if (height !== this.uiContainerHeight) {\n this.uiContainerHeight = height;\n this.eventService.dispatchEvent({ type: Events.EVENT_ROW_CONTAINER_HEIGHT_CHANGED });\n }\n };\n RowContainerHeightService.prototype.clearOffset = function () {\n this.setUiContainerHeight(this.modelHeight);\n this.pixelsToShave = 0;\n this.setDivStretchOffset(0);\n };\n RowContainerHeightService.prototype.setDivStretchOffset = function (newOffset) {\n // because we are talking pixels, no point in confusing things with half numbers\n var newOffsetFloor = typeof newOffset === 'number' ? Math.floor(newOffset) : null;\n if (this.divStretchOffset === newOffsetFloor) {\n return;\n }\n this.divStretchOffset = newOffsetFloor;\n this.eventService.dispatchEvent({ type: Events.EVENT_HEIGHT_SCALE_CHANGED });\n };\n RowContainerHeightService.prototype.setModelHeight = function (modelHeight) {\n this.modelHeight = modelHeight;\n this.stretching = modelHeight != null // null happens when in print layout\n && this.maxDivHeight > 0\n && modelHeight > this.maxDivHeight;\n if (this.stretching) {\n this.calculateOffset();\n }\n else {\n this.clearOffset();\n }\n };\n RowContainerHeightService.prototype.getUiContainerHeight = function () {\n return this.uiContainerHeight;\n };\n RowContainerHeightService.prototype.getRealPixelPosition = function (modelPixel) {\n return modelPixel - this.divStretchOffset;\n };\n RowContainerHeightService.prototype.getUiBodyHeight = function () {\n var gridBodyCon = this.ctrlsService.getGridBodyCtrl();\n var pos = gridBodyCon.getScrollFeature().getVScrollPosition();\n return pos.bottom - pos.top;\n };\n RowContainerHeightService.prototype.getScrollPositionForPixel = function (rowTop) {\n if (this.pixelsToShave <= 0) {\n return rowTop;\n }\n var modelMaxScroll = this.modelHeight - this.getUiBodyHeight();\n var scrollPercent = rowTop / modelMaxScroll;\n var scrollPixel = this.maxScrollY * scrollPercent;\n return scrollPixel;\n };\n __decorate$x([\n Autowired('ctrlsService')\n ], RowContainerHeightService.prototype, \"ctrlsService\", void 0);\n __decorate$x([\n __param$2(0, Qualifier(\"loggerFactory\"))\n ], RowContainerHeightService.prototype, \"agWire\", null);\n __decorate$x([\n PostConstruct\n ], RowContainerHeightService.prototype, \"postConstruct\", null);\n RowContainerHeightService = __decorate$x([\n Bean('rowContainerHeightService')\n ], RowContainerHeightService);\n return RowContainerHeightService;\n}(BeanStub));\n\nvar __extends$v = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SelectableService = /** @class */ (function (_super) {\n __extends$v(SelectableService, _super);\n function SelectableService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SelectableService.prototype.init = function () {\n this.groupSelectsChildren = this.gridOptionsService.is('groupSelectsChildren');\n this.isRowSelectableFunc = this.gridOptionsService.get('isRowSelectable');\n };\n SelectableService.prototype.updateSelectableAfterGrouping = function (rowNode) {\n if (this.isRowSelectableFunc) {\n var nextChildrenFunc = function (node) { return node.childrenAfterGroup; };\n this.recurseDown(rowNode.childrenAfterGroup, nextChildrenFunc);\n }\n };\n SelectableService.prototype.recurseDown = function (children, nextChildrenFunc) {\n var _this = this;\n if (!children) {\n return;\n }\n children.forEach(function (child) {\n if (!child.group) {\n return;\n } // only interested in groups\n if (child.hasChildren()) {\n _this.recurseDown(nextChildrenFunc(child), nextChildrenFunc);\n }\n var rowSelectable;\n if (_this.groupSelectsChildren) {\n // have this group selectable if at least one direct child is selectable\n var firstSelectable = (nextChildrenFunc(child) || []).find(function (rowNode) { return rowNode.selectable === true; });\n rowSelectable = exists(firstSelectable);\n }\n else {\n // directly retrieve selectable value from user callback\n rowSelectable = _this.isRowSelectableFunc ? _this.isRowSelectableFunc(child) : false;\n }\n child.setRowSelectable(rowSelectable);\n });\n };\n __decorate$w([\n PostConstruct\n ], SelectableService.prototype, \"init\", null);\n SelectableService = __decorate$w([\n Bean('selectableService')\n ], SelectableService);\n return SelectableService;\n}(BeanStub));\n\nvar __extends$u = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PaginationComp = /** @class */ (function (_super) {\n __extends$u(PaginationComp, _super);\n function PaginationComp() {\n var _this = _super.call(this) || this;\n _this.previousAndFirstButtonsDisabled = false;\n _this.nextButtonDisabled = false;\n _this.lastButtonDisabled = false;\n _this.areListenersSetup = false;\n return _this;\n }\n PaginationComp.prototype.postConstruct = function () {\n var isRtl = this.gridOptionsService.is('enableRtl');\n this.setTemplate(this.getTemplate());\n var _a = this, btFirst = _a.btFirst, btPrevious = _a.btPrevious, btNext = _a.btNext, btLast = _a.btLast;\n this.activateTabIndex([btFirst, btPrevious, btNext, btLast]);\n btFirst.insertAdjacentElement('afterbegin', createIconNoSpan(isRtl ? 'last' : 'first', this.gridOptionsService));\n btPrevious.insertAdjacentElement('afterbegin', createIconNoSpan(isRtl ? 'next' : 'previous', this.gridOptionsService));\n btNext.insertAdjacentElement('afterbegin', createIconNoSpan(isRtl ? 'previous' : 'next', this.gridOptionsService));\n btLast.insertAdjacentElement('afterbegin', createIconNoSpan(isRtl ? 'first' : 'last', this.gridOptionsService));\n this.addManagedPropertyListener('pagination', this.onPaginationChanged.bind(this));\n this.addManagedPropertyListener('suppressPaginationPanel', this.onPaginationChanged.bind(this));\n this.onPaginationChanged();\n };\n PaginationComp.prototype.onPaginationChanged = function () {\n var isPaging = this.gridOptionsService.is('pagination');\n var paginationPanelEnabled = isPaging && !this.gridOptionsService.is('suppressPaginationPanel');\n this.setDisplayed(paginationPanelEnabled);\n if (!paginationPanelEnabled) {\n return;\n }\n this.setupListeners();\n this.enableOrDisableButtons();\n this.updateRowLabels();\n this.setCurrentPageLabel();\n this.setTotalLabels();\n };\n PaginationComp.prototype.setupListeners = function () {\n var _this = this;\n if (!this.areListenersSetup) {\n this.addManagedListener(this.eventService, Events.EVENT_PAGINATION_CHANGED, this.onPaginationChanged.bind(this));\n [\n { el: this.btFirst, fn: this.onBtFirst.bind(this) },\n { el: this.btPrevious, fn: this.onBtPrevious.bind(this) },\n { el: this.btNext, fn: this.onBtNext.bind(this) },\n { el: this.btLast, fn: this.onBtLast.bind(this) }\n ].forEach(function (item) {\n var el = item.el, fn = item.fn;\n _this.addManagedListener(el, 'click', fn);\n _this.addManagedListener(el, 'keydown', function (e) {\n if (e.key === KeyCode.ENTER || e.key === KeyCode.SPACE) {\n e.preventDefault();\n fn();\n }\n });\n });\n this.areListenersSetup = true;\n }\n };\n PaginationComp.prototype.onBtFirst = function () {\n if (!this.previousAndFirstButtonsDisabled) {\n this.paginationProxy.goToFirstPage();\n }\n };\n PaginationComp.prototype.setCurrentPageLabel = function () {\n var pagesExist = this.paginationProxy.getTotalPages() > 0;\n var currentPage = this.paginationProxy.getCurrentPage();\n var toDisplay = pagesExist ? currentPage + 1 : 0;\n this.lbCurrent.innerHTML = this.formatNumber(toDisplay);\n };\n PaginationComp.prototype.formatNumber = function (value) {\n var userFunc = this.gridOptionsService.getCallback('paginationNumberFormatter');\n if (userFunc) {\n var params = { value: value };\n return userFunc(params);\n }\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n var thousandSeparator = localeTextFunc('thousandSeparator', ',');\n var decimalSeparator = localeTextFunc('decimalSeparator', '.');\n return formatNumberCommas(value, thousandSeparator, decimalSeparator);\n };\n PaginationComp.prototype.getTemplate = function () {\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n var strPage = localeTextFunc('page', 'Page');\n var strTo = localeTextFunc('to', 'to');\n var strOf = localeTextFunc('of', 'of');\n var strFirst = localeTextFunc('firstPage', 'First Page');\n var strPrevious = localeTextFunc('previousPage', 'Previous Page');\n var strNext = localeTextFunc('nextPage', 'Next Page');\n var strLast = localeTextFunc('lastPage', 'Last Page');\n var compId = this.getCompId();\n return /* html */ \"
\\n \\n \\n \" + strTo + \"\\n \\n \" + strOf + \"\\n \\n \\n \\n
\\n
\\n \\n \" + strPage + \"\\n \\n \" + strOf + \"\\n \\n \\n
\\n
\\n
\\n
\";\n };\n PaginationComp.prototype.onBtNext = function () {\n if (!this.nextButtonDisabled) {\n this.paginationProxy.goToNextPage();\n }\n };\n PaginationComp.prototype.onBtPrevious = function () {\n if (!this.previousAndFirstButtonsDisabled) {\n this.paginationProxy.goToPreviousPage();\n }\n };\n PaginationComp.prototype.onBtLast = function () {\n if (!this.lastButtonDisabled) {\n this.paginationProxy.goToLastPage();\n }\n };\n PaginationComp.prototype.enableOrDisableButtons = function () {\n var currentPage = this.paginationProxy.getCurrentPage();\n var maxRowFound = this.paginationProxy.isLastPageFound();\n var totalPages = this.paginationProxy.getTotalPages();\n this.previousAndFirstButtonsDisabled = currentPage === 0;\n this.toggleButtonDisabled(this.btFirst, this.previousAndFirstButtonsDisabled);\n this.toggleButtonDisabled(this.btPrevious, this.previousAndFirstButtonsDisabled);\n var zeroPagesToDisplay = this.isZeroPagesToDisplay();\n var onLastPage = maxRowFound && currentPage === (totalPages - 1);\n this.nextButtonDisabled = onLastPage || zeroPagesToDisplay;\n this.lastButtonDisabled = !maxRowFound || zeroPagesToDisplay || currentPage === (totalPages - 1);\n this.toggleButtonDisabled(this.btNext, this.nextButtonDisabled);\n this.toggleButtonDisabled(this.btLast, this.lastButtonDisabled);\n };\n PaginationComp.prototype.toggleButtonDisabled = function (button, disabled) {\n setAriaDisabled(button, disabled);\n button.classList.toggle('ag-disabled', disabled);\n };\n PaginationComp.prototype.updateRowLabels = function () {\n var currentPage = this.paginationProxy.getCurrentPage();\n var pageSize = this.paginationProxy.getPageSize();\n var maxRowFound = this.paginationProxy.isLastPageFound();\n var rowCount = this.paginationProxy.isLastPageFound() ?\n this.paginationProxy.getMasterRowCount() : null;\n var startRow;\n var endRow;\n if (this.isZeroPagesToDisplay()) {\n startRow = endRow = 0;\n }\n else {\n startRow = (pageSize * currentPage) + 1;\n endRow = startRow + pageSize - 1;\n if (maxRowFound && endRow > rowCount) {\n endRow = rowCount;\n }\n }\n this.lbFirstRowOnPage.innerHTML = this.formatNumber(startRow);\n if (this.rowNodeBlockLoader.isLoading()) {\n var translate = this.localeService.getLocaleTextFunc();\n this.lbLastRowOnPage.innerHTML = translate('pageLastRowUnknown', '?');\n }\n else {\n this.lbLastRowOnPage.innerHTML = this.formatNumber(endRow);\n }\n };\n PaginationComp.prototype.isZeroPagesToDisplay = function () {\n var maxRowFound = this.paginationProxy.isLastPageFound();\n var totalPages = this.paginationProxy.getTotalPages();\n return maxRowFound && totalPages === 0;\n };\n PaginationComp.prototype.setTotalLabels = function () {\n var lastPageFound = this.paginationProxy.isLastPageFound();\n var totalPages = this.paginationProxy.getTotalPages();\n var rowCount = lastPageFound ? this.paginationProxy.getMasterRowCount() : null;\n // When `pivotMode=true` and no grouping or value columns exist, a single 'hidden' group row (root node) is in\n // the grid and the pagination totals will correctly display total = 1. However this is confusing to users as\n // they can't see it. To address this UX issue we simply set the totals to zero in the pagination panel.\n if (rowCount === 1) {\n var firstRow = this.paginationProxy.getRow(0);\n // a group node with no group or agg data will not be visible to users\n var hiddenGroupRow = firstRow && firstRow.group && !(firstRow.groupData || firstRow.aggData);\n if (hiddenGroupRow) {\n this.setTotalLabelsToZero();\n return;\n }\n }\n if (lastPageFound) {\n this.lbTotal.innerHTML = this.formatNumber(totalPages);\n this.lbRecordCount.innerHTML = this.formatNumber(rowCount);\n }\n else {\n var moreText = this.localeService.getLocaleTextFunc()('more', 'more');\n this.lbTotal.innerHTML = moreText;\n this.lbRecordCount.innerHTML = moreText;\n }\n };\n PaginationComp.prototype.setTotalLabelsToZero = function () {\n this.lbFirstRowOnPage.innerHTML = this.formatNumber(0);\n this.lbCurrent.innerHTML = this.formatNumber(0);\n this.lbLastRowOnPage.innerHTML = this.formatNumber(0);\n this.lbTotal.innerHTML = this.formatNumber(0);\n this.lbRecordCount.innerHTML = this.formatNumber(0);\n };\n __decorate$v([\n Autowired('paginationProxy')\n ], PaginationComp.prototype, \"paginationProxy\", void 0);\n __decorate$v([\n Autowired('rowNodeBlockLoader')\n ], PaginationComp.prototype, \"rowNodeBlockLoader\", void 0);\n __decorate$v([\n RefSelector('btFirst')\n ], PaginationComp.prototype, \"btFirst\", void 0);\n __decorate$v([\n RefSelector('btPrevious')\n ], PaginationComp.prototype, \"btPrevious\", void 0);\n __decorate$v([\n RefSelector('btNext')\n ], PaginationComp.prototype, \"btNext\", void 0);\n __decorate$v([\n RefSelector('btLast')\n ], PaginationComp.prototype, \"btLast\", void 0);\n __decorate$v([\n RefSelector('lbRecordCount')\n ], PaginationComp.prototype, \"lbRecordCount\", void 0);\n __decorate$v([\n RefSelector('lbFirstRowOnPage')\n ], PaginationComp.prototype, \"lbFirstRowOnPage\", void 0);\n __decorate$v([\n RefSelector('lbLastRowOnPage')\n ], PaginationComp.prototype, \"lbLastRowOnPage\", void 0);\n __decorate$v([\n RefSelector('lbCurrent')\n ], PaginationComp.prototype, \"lbCurrent\", void 0);\n __decorate$v([\n RefSelector('lbTotal')\n ], PaginationComp.prototype, \"lbTotal\", void 0);\n __decorate$v([\n PostConstruct\n ], PaginationComp.prototype, \"postConstruct\", null);\n return PaginationComp;\n}(Component));\n\nvar __extends$t = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar LoadingType;\n(function (LoadingType) {\n LoadingType[LoadingType[\"Loading\"] = 0] = \"Loading\";\n LoadingType[LoadingType[\"NoRows\"] = 1] = \"NoRows\";\n})(LoadingType || (LoadingType = {}));\nvar OverlayWrapperComponent = /** @class */ (function (_super) {\n __extends$t(OverlayWrapperComponent, _super);\n function OverlayWrapperComponent() {\n var _this = _super.call(this, OverlayWrapperComponent.TEMPLATE) || this;\n _this.inProgress = false;\n _this.destroyRequested = false;\n _this.manuallyDisplayed = false;\n return _this;\n }\n OverlayWrapperComponent.prototype.updateLayoutClasses = function (cssClass, params) {\n var overlayWrapperClassList = this.eOverlayWrapper.classList;\n overlayWrapperClassList.toggle(LayoutCssClasses.AUTO_HEIGHT, params.autoHeight);\n overlayWrapperClassList.toggle(LayoutCssClasses.NORMAL, params.normal);\n overlayWrapperClassList.toggle(LayoutCssClasses.PRINT, params.print);\n };\n OverlayWrapperComponent.prototype.postConstruct = function () {\n this.createManagedBean(new LayoutFeature(this));\n this.setDisplayed(false, { skipAriaHidden: true });\n this.addManagedListener(this.eventService, Events.EVENT_ROW_DATA_UPDATED, this.onRowDataUpdated.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.onNewColumnsLoaded.bind(this));\n if (this.gridOptionsService.isRowModelType('clientSide') && !this.gridOptionsService.get('rowData')) {\n this.showLoadingOverlay();\n }\n this.gridApi.registerOverlayWrapperComp(this);\n };\n OverlayWrapperComponent.prototype.setWrapperTypeClass = function (loadingType) {\n var overlayWrapperClassList = this.eOverlayWrapper.classList;\n overlayWrapperClassList.toggle('ag-overlay-loading-wrapper', loadingType === LoadingType.Loading);\n overlayWrapperClassList.toggle('ag-overlay-no-rows-wrapper', loadingType === LoadingType.NoRows);\n };\n OverlayWrapperComponent.prototype.showLoadingOverlay = function () {\n if (this.gridOptionsService.is('suppressLoadingOverlay')) {\n return;\n }\n var params = {};\n var compDetails = this.userComponentFactory.getLoadingOverlayCompDetails(params);\n var promise = compDetails.newAgStackInstance();\n this.showOverlay(promise, LoadingType.Loading);\n };\n OverlayWrapperComponent.prototype.showNoRowsOverlay = function () {\n if (this.gridOptionsService.is('suppressNoRowsOverlay')) {\n return;\n }\n var params = {};\n var compDetails = this.userComponentFactory.getNoRowsOverlayCompDetails(params);\n var promise = compDetails.newAgStackInstance();\n this.showOverlay(promise, LoadingType.NoRows);\n };\n OverlayWrapperComponent.prototype.showOverlay = function (workItem, type) {\n var _this = this;\n if (this.inProgress) {\n return;\n }\n this.setWrapperTypeClass(type);\n this.destroyActiveOverlay();\n this.inProgress = true;\n if (workItem) {\n workItem.then(function (comp) {\n _this.inProgress = false;\n _this.eOverlayWrapper.appendChild(comp.getGui());\n _this.activeOverlay = comp;\n if (_this.destroyRequested) {\n _this.destroyRequested = false;\n _this.destroyActiveOverlay();\n }\n });\n }\n this.manuallyDisplayed = this.columnModel.isReady() && !this.paginationProxy.isEmpty();\n this.setDisplayed(true, { skipAriaHidden: true });\n };\n OverlayWrapperComponent.prototype.destroyActiveOverlay = function () {\n if (this.inProgress) {\n this.destroyRequested = true;\n return;\n }\n if (!this.activeOverlay) {\n return;\n }\n this.activeOverlay = this.getContext().destroyBean(this.activeOverlay);\n clearElement(this.eOverlayWrapper);\n };\n OverlayWrapperComponent.prototype.hideOverlay = function () {\n this.manuallyDisplayed = false;\n this.destroyActiveOverlay();\n this.setDisplayed(false, { skipAriaHidden: true });\n };\n OverlayWrapperComponent.prototype.destroy = function () {\n this.destroyActiveOverlay();\n _super.prototype.destroy.call(this);\n };\n OverlayWrapperComponent.prototype.showOrHideOverlay = function () {\n var isEmpty = this.paginationProxy.isEmpty();\n var isSuppressNoRowsOverlay = this.gridOptionsService.is('suppressNoRowsOverlay');\n if (isEmpty && !isSuppressNoRowsOverlay) {\n this.showNoRowsOverlay();\n }\n else {\n this.hideOverlay();\n }\n };\n OverlayWrapperComponent.prototype.onRowDataUpdated = function () {\n this.showOrHideOverlay();\n };\n OverlayWrapperComponent.prototype.onNewColumnsLoaded = function () {\n // hide overlay if columns and rows exist, this can happen if columns are loaded after data.\n // this problem exists before of the race condition between the services (column controller in this case)\n // and the view (grid panel). if the model beans were all initialised first, and then the view beans second,\n // this race condition would not happen.\n if (this.columnModel.isReady() && !this.paginationProxy.isEmpty() && !this.manuallyDisplayed) {\n this.hideOverlay();\n }\n };\n // wrapping in outer div, and wrapper, is needed to center the loading icon\n OverlayWrapperComponent.TEMPLATE = \"\\n
\\n
\\n
\\n
\\n
\";\n __decorate$u([\n Autowired('userComponentFactory')\n ], OverlayWrapperComponent.prototype, \"userComponentFactory\", void 0);\n __decorate$u([\n Autowired('paginationProxy')\n ], OverlayWrapperComponent.prototype, \"paginationProxy\", void 0);\n __decorate$u([\n Autowired('gridApi')\n ], OverlayWrapperComponent.prototype, \"gridApi\", void 0);\n __decorate$u([\n Autowired('columnModel')\n ], OverlayWrapperComponent.prototype, \"columnModel\", void 0);\n __decorate$u([\n RefSelector('eOverlayWrapper')\n ], OverlayWrapperComponent.prototype, \"eOverlayWrapper\", void 0);\n __decorate$u([\n PostConstruct\n ], OverlayWrapperComponent.prototype, \"postConstruct\", null);\n return OverlayWrapperComponent;\n}(Component));\n\nvar __extends$s = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RowPositionUtils = /** @class */ (function (_super) {\n __extends$s(RowPositionUtils, _super);\n function RowPositionUtils() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n RowPositionUtils.prototype.getFirstRow = function () {\n var rowIndex = 0;\n var rowPinned;\n if (this.pinnedRowModel.getPinnedTopRowCount()) {\n rowPinned = 'top';\n }\n else if (this.rowModel.getRowCount()) {\n rowPinned = null;\n rowIndex = this.paginationProxy.getPageFirstRow();\n }\n else if (this.pinnedRowModel.getPinnedBottomRowCount()) {\n rowPinned = 'bottom';\n }\n return rowPinned === undefined ? null : { rowIndex: rowIndex, rowPinned: rowPinned };\n };\n RowPositionUtils.prototype.getLastRow = function () {\n var rowIndex;\n var rowPinned = null;\n var pinnedBottomCount = this.pinnedRowModel.getPinnedBottomRowCount();\n var pinnedTopCount = this.pinnedRowModel.getPinnedTopRowCount();\n if (pinnedBottomCount) {\n rowPinned = 'bottom';\n rowIndex = pinnedBottomCount - 1;\n }\n else if (this.rowModel.getRowCount()) {\n rowPinned = null;\n rowIndex = this.paginationProxy.getPageLastRow();\n }\n else if (pinnedTopCount) {\n rowPinned = 'top';\n rowIndex = pinnedTopCount - 1;\n }\n return rowIndex === undefined ? null : { rowIndex: rowIndex, rowPinned: rowPinned };\n };\n RowPositionUtils.prototype.getRowNode = function (gridRow) {\n switch (gridRow.rowPinned) {\n case 'top':\n return this.pinnedRowModel.getPinnedTopRowData()[gridRow.rowIndex];\n case 'bottom':\n return this.pinnedRowModel.getPinnedBottomRowData()[gridRow.rowIndex];\n default:\n return this.rowModel.getRow(gridRow.rowIndex);\n }\n };\n RowPositionUtils.prototype.sameRow = function (rowA, rowB) {\n // if both missing\n if (!rowA && !rowB) {\n return true;\n }\n // if only one missing\n if ((rowA && !rowB) || (!rowA && rowB)) {\n return false;\n }\n // otherwise compare (use == to compare rowPinned because it can be null or undefined)\n return rowA.rowIndex === rowB.rowIndex && rowA.rowPinned == rowB.rowPinned;\n };\n // tests if this row selection is before the other row selection\n RowPositionUtils.prototype.before = function (rowA, rowB) {\n switch (rowA.rowPinned) {\n case 'top':\n // we we are floating top, and other isn't, then we are always before\n if (rowB.rowPinned !== 'top') {\n return true;\n }\n break;\n case 'bottom':\n // if we are floating bottom, and the other isn't, then we are never before\n if (rowB.rowPinned !== 'bottom') {\n return false;\n }\n break;\n default:\n // if we are not floating, but the other one is floating...\n if (exists(rowB.rowPinned)) {\n return rowB.rowPinned !== 'top';\n }\n break;\n }\n return rowA.rowIndex < rowB.rowIndex;\n };\n RowPositionUtils.prototype.rowMax = function (rows) {\n var _this = this;\n var max;\n rows.forEach(function (row) {\n if (max === undefined || _this.before(max, row)) {\n max = row;\n }\n });\n return max;\n };\n RowPositionUtils.prototype.rowMin = function (rows) {\n var _this = this;\n var min;\n rows.forEach(function (row) {\n if (min === undefined || _this.before(row, min)) {\n min = row;\n }\n });\n return min;\n };\n __decorate$t([\n Autowired('rowModel')\n ], RowPositionUtils.prototype, \"rowModel\", void 0);\n __decorate$t([\n Autowired('pinnedRowModel')\n ], RowPositionUtils.prototype, \"pinnedRowModel\", void 0);\n __decorate$t([\n Autowired('paginationProxy')\n ], RowPositionUtils.prototype, \"paginationProxy\", void 0);\n RowPositionUtils = __decorate$t([\n Bean('rowPositionUtils')\n ], RowPositionUtils);\n return RowPositionUtils;\n}(BeanStub));\n\nvar __extends$r = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CellPositionUtils = /** @class */ (function (_super) {\n __extends$r(CellPositionUtils, _super);\n function CellPositionUtils() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CellPositionUtils.prototype.createId = function (cellPosition) {\n var rowIndex = cellPosition.rowIndex, rowPinned = cellPosition.rowPinned, column = cellPosition.column;\n return this.createIdFromValues({ rowIndex: rowIndex, column: column, rowPinned: rowPinned });\n };\n CellPositionUtils.prototype.createIdFromValues = function (cellPosition) {\n var rowIndex = cellPosition.rowIndex, rowPinned = cellPosition.rowPinned, column = cellPosition.column;\n return rowIndex + \".\" + (rowPinned == null ? 'null' : rowPinned) + \".\" + column.getId();\n };\n CellPositionUtils.prototype.equals = function (cellA, cellB) {\n var colsMatch = cellA.column === cellB.column;\n var floatingMatch = cellA.rowPinned === cellB.rowPinned;\n var indexMatch = cellA.rowIndex === cellB.rowIndex;\n return colsMatch && floatingMatch && indexMatch;\n };\n CellPositionUtils = __decorate$s([\n Bean('cellPositionUtils')\n ], CellPositionUtils);\n return CellPositionUtils;\n}(BeanStub));\n\nvar __extends$q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar UndoRedoAction = /** @class */ (function () {\n function UndoRedoAction(cellValueChanges) {\n this.cellValueChanges = cellValueChanges;\n }\n return UndoRedoAction;\n}());\nvar RangeUndoRedoAction = /** @class */ (function (_super) {\n __extends$q(RangeUndoRedoAction, _super);\n function RangeUndoRedoAction(cellValueChanges, initialRange, finalRange, ranges) {\n var _this = _super.call(this, cellValueChanges) || this;\n _this.initialRange = initialRange;\n _this.finalRange = finalRange;\n _this.ranges = ranges;\n return _this;\n }\n return RangeUndoRedoAction;\n}(UndoRedoAction));\nvar UndoRedoStack = /** @class */ (function () {\n function UndoRedoStack(maxStackSize) {\n this.actionStack = [];\n this.maxStackSize = maxStackSize ? maxStackSize : UndoRedoStack.DEFAULT_STACK_SIZE;\n this.actionStack = new Array(this.maxStackSize);\n }\n UndoRedoStack.prototype.pop = function () {\n return this.actionStack.pop();\n };\n UndoRedoStack.prototype.push = function (item) {\n var shouldAddActions = item.cellValueChanges && item.cellValueChanges.length > 0;\n if (!shouldAddActions) {\n return;\n }\n if (this.actionStack.length === this.maxStackSize) {\n this.actionStack.shift();\n }\n this.actionStack.push(item);\n };\n UndoRedoStack.prototype.clear = function () {\n this.actionStack = [];\n };\n UndoRedoStack.prototype.getCurrentStackSize = function () {\n return this.actionStack.length;\n };\n UndoRedoStack.DEFAULT_STACK_SIZE = 10;\n return UndoRedoStack;\n}());\n\nvar __extends$p = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$2 = (undefined && undefined.__assign) || function () {\n __assign$2 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$2.apply(this, arguments);\n};\nvar __decorate$r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$6 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$5 = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar UndoRedoService = /** @class */ (function (_super) {\n __extends$p(UndoRedoService, _super);\n function UndoRedoService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.cellValueChanges = [];\n _this.activeCellEdit = null;\n _this.activeRowEdit = null;\n _this.isPasting = false;\n _this.isRangeInAction = false;\n _this.onCellValueChanged = function (event) {\n var eventCell = { column: event.column, rowIndex: event.rowIndex, rowPinned: event.rowPinned };\n var isCellEditing = _this.activeCellEdit !== null && _this.cellPositionUtils.equals(_this.activeCellEdit, eventCell);\n var isRowEditing = _this.activeRowEdit !== null && _this.rowPositionUtils.sameRow(_this.activeRowEdit, eventCell);\n var shouldCaptureAction = isCellEditing || isRowEditing || _this.isPasting || _this.isRangeInAction;\n if (!shouldCaptureAction) {\n return;\n }\n var rowPinned = event.rowPinned, rowIndex = event.rowIndex, column = event.column, oldValue = event.oldValue, value = event.value;\n var cellValueChange = {\n rowPinned: rowPinned,\n rowIndex: rowIndex,\n columnId: column.getColId(),\n newValue: value,\n oldValue: oldValue\n };\n _this.cellValueChanges.push(cellValueChange);\n };\n _this.clearStacks = function () {\n _this.undoStack.clear();\n _this.redoStack.clear();\n };\n return _this;\n }\n UndoRedoService.prototype.init = function () {\n var _this = this;\n if (!this.gridOptionsService.is('undoRedoCellEditing')) {\n return;\n }\n var undoRedoLimit = this.gridOptionsService.getNum('undoRedoCellEditingLimit');\n if (undoRedoLimit <= 0) {\n return;\n }\n this.undoStack = new UndoRedoStack(undoRedoLimit);\n this.redoStack = new UndoRedoStack(undoRedoLimit);\n this.addRowEditingListeners();\n this.addCellEditingListeners();\n this.addPasteListeners();\n this.addFillListeners();\n this.addCellKeyListeners();\n this.addManagedListener(this.eventService, Events.EVENT_CELL_VALUE_CHANGED, this.onCellValueChanged);\n // undo / redo is restricted to actual editing so we clear the stacks when other operations are\n // performed that change the order of the row / cols.\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, function (e) {\n if (!e.keepUndoRedoStack) {\n _this.clearStacks();\n }\n });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_GROUP_OPENED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_MOVED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PINNED, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VISIBLE, this.clearStacks);\n this.addManagedListener(this.eventService, Events.EVENT_ROW_DRAG_END, this.clearStacks);\n this.ctrlsService.whenReady(function () {\n _this.gridBodyCtrl = _this.ctrlsService.getGridBodyCtrl();\n });\n };\n UndoRedoService.prototype.getCurrentUndoStackSize = function () {\n return this.undoStack ? this.undoStack.getCurrentStackSize() : 0;\n };\n UndoRedoService.prototype.getCurrentRedoStackSize = function () {\n return this.redoStack ? this.redoStack.getCurrentStackSize() : 0;\n };\n UndoRedoService.prototype.undo = function (source) {\n var startEvent = {\n type: Events.EVENT_UNDO_STARTED,\n source: source\n };\n this.eventService.dispatchEvent(startEvent);\n var operationPerformed = this.undoRedo(this.undoStack, this.redoStack, 'initialRange', 'oldValue', 'undo');\n var endEvent = {\n type: Events.EVENT_UNDO_ENDED,\n source: source,\n operationPerformed: operationPerformed\n };\n this.eventService.dispatchEvent(endEvent);\n };\n UndoRedoService.prototype.redo = function (source) {\n var startEvent = {\n type: Events.EVENT_REDO_STARTED,\n source: source\n };\n this.eventService.dispatchEvent(startEvent);\n var operationPerformed = this.undoRedo(this.redoStack, this.undoStack, 'finalRange', 'newValue', 'redo');\n var endEvent = {\n type: Events.EVENT_REDO_ENDED,\n source: source,\n operationPerformed: operationPerformed\n };\n this.eventService.dispatchEvent(endEvent);\n };\n UndoRedoService.prototype.undoRedo = function (undoRedoStack, opposingUndoRedoStack, rangeProperty, cellValueChangeProperty, source) {\n if (!undoRedoStack) {\n return false;\n }\n var undoRedoAction = undoRedoStack.pop();\n if (!undoRedoAction || !undoRedoAction.cellValueChanges) {\n return false;\n }\n this.processAction(undoRedoAction, function (cellValueChange) { return cellValueChange[cellValueChangeProperty]; }, source);\n if (undoRedoAction instanceof RangeUndoRedoAction) {\n this.processRange(undoRedoAction.ranges || [undoRedoAction[rangeProperty]]);\n }\n else {\n this.processCell(undoRedoAction.cellValueChanges);\n }\n opposingUndoRedoStack.push(undoRedoAction);\n return true;\n };\n UndoRedoService.prototype.processAction = function (action, valueExtractor, source) {\n var _this = this;\n action.cellValueChanges.forEach(function (cellValueChange) {\n var rowIndex = cellValueChange.rowIndex, rowPinned = cellValueChange.rowPinned, columnId = cellValueChange.columnId;\n var rowPosition = { rowIndex: rowIndex, rowPinned: rowPinned };\n var currentRow = _this.getRowNode(rowPosition);\n // checks if the row has been filtered out\n if (!currentRow.displayed) {\n return;\n }\n currentRow.setDataValue(columnId, valueExtractor(cellValueChange), source);\n });\n };\n UndoRedoService.prototype.processRange = function (ranges) {\n var _this = this;\n var lastFocusedCell;\n this.rangeService.removeAllCellRanges(true);\n ranges.forEach(function (range, idx) {\n if (!range) {\n return;\n }\n var startRow = range.startRow;\n var endRow = range.endRow;\n if (idx === ranges.length - 1) {\n lastFocusedCell = {\n rowPinned: startRow.rowPinned,\n rowIndex: startRow.rowIndex,\n columnId: range.startColumn.getColId()\n };\n _this.setLastFocusedCell(lastFocusedCell);\n }\n var cellRangeParams = {\n rowStartIndex: startRow.rowIndex,\n rowStartPinned: startRow.rowPinned,\n rowEndIndex: endRow.rowIndex,\n rowEndPinned: endRow.rowPinned,\n columnStart: range.startColumn,\n columns: range.columns\n };\n _this.rangeService.addCellRange(cellRangeParams);\n });\n };\n UndoRedoService.prototype.processCell = function (cellValueChanges) {\n var cellValueChange = cellValueChanges[0];\n var rowIndex = cellValueChange.rowIndex, rowPinned = cellValueChange.rowPinned;\n var rowPosition = { rowIndex: rowIndex, rowPinned: rowPinned };\n var row = this.getRowNode(rowPosition);\n var lastFocusedCell = {\n rowPinned: cellValueChange.rowPinned,\n rowIndex: row.rowIndex,\n columnId: cellValueChange.columnId\n };\n // when single cells are being processed, they should be considered\n // as ranges when the rangeService is present (singleCellRanges).\n // otherwise focus will be restore but the range will not.\n this.setLastFocusedCell(lastFocusedCell, !!this.rangeService);\n };\n UndoRedoService.prototype.setLastFocusedCell = function (lastFocusedCell, setRangeToCell) {\n var rowIndex = lastFocusedCell.rowIndex, columnId = lastFocusedCell.columnId, rowPinned = lastFocusedCell.rowPinned;\n var scrollFeature = this.gridBodyCtrl.getScrollFeature();\n var column = this.columnModel.getGridColumn(columnId);\n if (!column) {\n return;\n }\n scrollFeature.ensureIndexVisible(rowIndex);\n scrollFeature.ensureColumnVisible(column);\n var cellPosition = { rowIndex: rowIndex, column: column, rowPinned: rowPinned };\n this.focusService.setFocusedCell(__assign$2(__assign$2({}, cellPosition), { forceBrowserFocus: true }));\n if (setRangeToCell) {\n this.rangeService.setRangeToCell(cellPosition);\n }\n };\n UndoRedoService.prototype.addRowEditingListeners = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_ROW_EDITING_STARTED, function (e) {\n _this.activeRowEdit = { rowIndex: e.rowIndex, rowPinned: e.rowPinned };\n });\n this.addManagedListener(this.eventService, Events.EVENT_ROW_EDITING_STOPPED, function () {\n var action = new UndoRedoAction(_this.cellValueChanges);\n _this.pushActionsToUndoStack(action);\n _this.activeRowEdit = null;\n });\n };\n UndoRedoService.prototype.addCellEditingListeners = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_CELL_EDITING_STARTED, function (e) {\n _this.activeCellEdit = { column: e.column, rowIndex: e.rowIndex, rowPinned: e.rowPinned };\n });\n this.addManagedListener(this.eventService, Events.EVENT_CELL_EDITING_STOPPED, function (e) {\n _this.activeCellEdit = null;\n var shouldPushAction = e.valueChanged && !_this.activeRowEdit && !_this.isPasting && !_this.isRangeInAction;\n if (shouldPushAction) {\n var action = new UndoRedoAction(_this.cellValueChanges);\n _this.pushActionsToUndoStack(action);\n }\n });\n };\n UndoRedoService.prototype.addPasteListeners = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_PASTE_START, function () {\n _this.isPasting = true;\n });\n this.addManagedListener(this.eventService, Events.EVENT_PASTE_END, function () {\n var action = new UndoRedoAction(_this.cellValueChanges);\n _this.pushActionsToUndoStack(action);\n _this.isPasting = false;\n });\n };\n UndoRedoService.prototype.addFillListeners = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_FILL_START, function () {\n _this.isRangeInAction = true;\n });\n this.addManagedListener(this.eventService, Events.EVENT_FILL_END, function (event) {\n var action = new RangeUndoRedoAction(_this.cellValueChanges, event.initialRange, event.finalRange);\n _this.pushActionsToUndoStack(action);\n _this.isRangeInAction = false;\n });\n };\n UndoRedoService.prototype.addCellKeyListeners = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_KEY_SHORTCUT_CHANGED_CELL_START, function () {\n _this.isRangeInAction = true;\n });\n this.addManagedListener(this.eventService, Events.EVENT_KEY_SHORTCUT_CHANGED_CELL_END, function () {\n var action;\n if (_this.rangeService && _this.gridOptionsService.is('enableRangeSelection')) {\n action = new RangeUndoRedoAction(_this.cellValueChanges, undefined, undefined, __spreadArray$5([], __read$6(_this.rangeService.getCellRanges())));\n }\n else {\n action = new UndoRedoAction(_this.cellValueChanges);\n }\n _this.pushActionsToUndoStack(action);\n _this.isRangeInAction = false;\n });\n };\n UndoRedoService.prototype.pushActionsToUndoStack = function (action) {\n this.undoStack.push(action);\n this.cellValueChanges = [];\n this.redoStack.clear();\n };\n UndoRedoService.prototype.getRowNode = function (gridRow) {\n switch (gridRow.rowPinned) {\n case 'top':\n return this.pinnedRowModel.getPinnedTopRowData()[gridRow.rowIndex];\n case 'bottom':\n return this.pinnedRowModel.getPinnedBottomRowData()[gridRow.rowIndex];\n default:\n return this.rowModel.getRow(gridRow.rowIndex);\n }\n };\n __decorate$r([\n Autowired('focusService')\n ], UndoRedoService.prototype, \"focusService\", void 0);\n __decorate$r([\n Autowired('ctrlsService')\n ], UndoRedoService.prototype, \"ctrlsService\", void 0);\n __decorate$r([\n Autowired('rowModel')\n ], UndoRedoService.prototype, \"rowModel\", void 0);\n __decorate$r([\n Autowired('pinnedRowModel')\n ], UndoRedoService.prototype, \"pinnedRowModel\", void 0);\n __decorate$r([\n Autowired('cellPositionUtils')\n ], UndoRedoService.prototype, \"cellPositionUtils\", void 0);\n __decorate$r([\n Autowired('rowPositionUtils')\n ], UndoRedoService.prototype, \"rowPositionUtils\", void 0);\n __decorate$r([\n Autowired('columnModel')\n ], UndoRedoService.prototype, \"columnModel\", void 0);\n __decorate$r([\n Optional('rangeService')\n ], UndoRedoService.prototype, \"rangeService\", void 0);\n __decorate$r([\n PostConstruct\n ], UndoRedoService.prototype, \"init\", null);\n UndoRedoService = __decorate$r([\n Bean('undoRedoService')\n ], UndoRedoService);\n return UndoRedoService;\n}(BeanStub));\n\nvar __extends$o = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HeaderPositionUtils = /** @class */ (function (_super) {\n __extends$o(HeaderPositionUtils, _super);\n function HeaderPositionUtils() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n HeaderPositionUtils.prototype.findHeader = function (focusedHeader, direction) {\n var nextColumn;\n var getGroupMethod;\n var getColMethod;\n if (focusedHeader.column instanceof ColumnGroup) {\n getGroupMethod = \"getDisplayedGroup\" + direction;\n nextColumn = this.columnModel[getGroupMethod](focusedHeader.column);\n }\n else {\n getColMethod = \"getDisplayedCol\" + direction;\n nextColumn = this.columnModel[getColMethod](focusedHeader.column);\n }\n if (!nextColumn) {\n return;\n }\n var headerRowIndex = focusedHeader.headerRowIndex;\n var currentRowType = this.getHeaderRowType(headerRowIndex);\n if (currentRowType === HeaderRowType.COLUMN_GROUP) {\n var columnGroup = nextColumn;\n if (columnGroup.isPadding() && this.isAnyChildSpanningHeaderHeight(columnGroup)) {\n var _a = this.getColumnVisibleChild(columnGroup, headerRowIndex, direction), nextFocusColumn = _a.nextFocusColumn, nextRow = _a.nextRow;\n if (nextFocusColumn) {\n nextColumn = nextFocusColumn;\n headerRowIndex = nextRow;\n }\n }\n }\n return {\n column: nextColumn,\n headerRowIndex: headerRowIndex\n };\n };\n HeaderPositionUtils.prototype.isAnyChildSpanningHeaderHeight = function (columnGroup) {\n if (!columnGroup) {\n return false;\n }\n return columnGroup.getLeafColumns().some(function (col) { return col.isSpanHeaderHeight(); });\n };\n HeaderPositionUtils.prototype.getColumnVisibleParent = function (currentColumn, currentIndex) {\n var currentRowType = this.getHeaderRowType(currentIndex);\n var isFloatingFilter = currentRowType === HeaderRowType.FLOATING_FILTER;\n var isColumn = currentRowType === HeaderRowType.COLUMN;\n var nextFocusColumn = isFloatingFilter ? currentColumn : currentColumn.getParent();\n var nextRow = currentIndex - 1;\n if (isColumn && this.isAnyChildSpanningHeaderHeight(currentColumn.getParent())) {\n while (nextFocusColumn && nextFocusColumn.isPadding()) {\n nextFocusColumn = nextFocusColumn.getParent();\n nextRow--;\n }\n if (nextRow < 0) {\n nextFocusColumn = currentColumn;\n nextRow = currentIndex;\n }\n }\n return { nextFocusColumn: nextFocusColumn, nextRow: nextRow };\n };\n HeaderPositionUtils.prototype.getColumnVisibleChild = function (column, currentIndex, direction) {\n if (direction === void 0) { direction = 'After'; }\n var currentRowType = this.getHeaderRowType(currentIndex);\n var nextFocusColumn = column;\n var nextRow = currentIndex + 1;\n if (currentRowType === HeaderRowType.COLUMN_GROUP) {\n var leafColumns = column.getLeafColumns();\n var leafChild = direction === 'After' ? leafColumns[0] : last(leafColumns);\n if (this.isAnyChildSpanningHeaderHeight(leafChild.getParent())) {\n nextFocusColumn = leafChild;\n var currentColumn = leafChild.getParent();\n while (currentColumn && currentColumn !== column) {\n currentColumn = currentColumn.getParent();\n nextRow++;\n }\n }\n else {\n nextFocusColumn = column.getDisplayedChildren()[0];\n }\n }\n return { nextFocusColumn: nextFocusColumn, nextRow: nextRow };\n };\n HeaderPositionUtils.prototype.getHeaderRowType = function (rowIndex) {\n var centerHeaderContainer = this.ctrlsService.getHeaderRowContainerCtrl();\n if (centerHeaderContainer) {\n return centerHeaderContainer.getRowType(rowIndex);\n }\n };\n HeaderPositionUtils.prototype.findColAtEdgeForHeaderRow = function (level, position) {\n var displayedColumns = this.columnModel.getAllDisplayedColumns();\n var column = displayedColumns[position === 'start' ? 0 : displayedColumns.length - 1];\n if (!column) {\n return;\n }\n var childContainer = this.ctrlsService.getHeaderRowContainerCtrl(column.getPinned());\n var type = childContainer.getRowType(level);\n if (type == HeaderRowType.COLUMN_GROUP) {\n var columnGroup = this.columnModel.getColumnGroupAtLevel(column, level);\n return {\n headerRowIndex: level,\n column: columnGroup\n };\n }\n return {\n // if type==null, means the header level didn't exist\n headerRowIndex: type == null ? -1 : level,\n column: column\n };\n };\n __decorate$q([\n Autowired('columnModel')\n ], HeaderPositionUtils.prototype, \"columnModel\", void 0);\n __decorate$q([\n Autowired('ctrlsService')\n ], HeaderPositionUtils.prototype, \"ctrlsService\", void 0);\n HeaderPositionUtils = __decorate$q([\n Bean('headerPositionUtils')\n ], HeaderPositionUtils);\n return HeaderPositionUtils;\n}(BeanStub));\n\nvar __decorate$p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ColumnDefFactory = /** @class */ (function () {\n function ColumnDefFactory() {\n }\n ColumnDefFactory.prototype.buildColumnDefs = function (cols, rowGroupColumns, pivotColumns) {\n var _this = this;\n var res = [];\n var colGroupDefs = {};\n cols.forEach(function (col) {\n var colDef = _this.createDefFromColumn(col, rowGroupColumns, pivotColumns);\n var addToResult = true;\n var childDef = colDef;\n var pointer = col.getOriginalParent();\n var lastPointer = null;\n while (pointer) {\n var parentDef = null;\n // we don't include padding groups, as the column groups provided\n // by application didn't have these. the whole point of padding groups\n // is to balance the column tree that the user provided.\n if (pointer.isPadding()) {\n pointer = pointer.getOriginalParent();\n continue;\n }\n // if colDef for this group already exists, use it\n var existingParentDef = colGroupDefs[pointer.getGroupId()];\n if (existingParentDef) {\n existingParentDef.children.push(childDef);\n // if we added to result, it would be the second time we did it\n addToResult = false;\n // we don't want to continue up the tree, as it has already been\n // done for this group\n break;\n }\n parentDef = _this.createDefFromGroup(pointer);\n if (parentDef) {\n parentDef.children = [childDef];\n colGroupDefs[parentDef.groupId] = parentDef;\n childDef = parentDef;\n pointer = pointer.getOriginalParent();\n }\n if (pointer != null && lastPointer === pointer) {\n addToResult = false;\n break;\n }\n // Ensure we don't get stuck in an infinite loop\n lastPointer = pointer;\n }\n if (addToResult) {\n res.push(childDef);\n }\n });\n return res;\n };\n ColumnDefFactory.prototype.createDefFromGroup = function (group) {\n var defCloned = deepCloneDefinition(group.getColGroupDef(), ['children']);\n if (defCloned) {\n defCloned.groupId = group.getGroupId();\n }\n return defCloned;\n };\n ColumnDefFactory.prototype.createDefFromColumn = function (col, rowGroupColumns, pivotColumns) {\n var colDefCloned = deepCloneDefinition(col.getColDef());\n colDefCloned.colId = col.getColId();\n colDefCloned.width = col.getActualWidth();\n colDefCloned.rowGroup = col.isRowGroupActive();\n colDefCloned.rowGroupIndex = col.isRowGroupActive() ? rowGroupColumns.indexOf(col) : null;\n colDefCloned.pivot = col.isPivotActive();\n colDefCloned.pivotIndex = col.isPivotActive() ? pivotColumns.indexOf(col) : null;\n colDefCloned.aggFunc = col.isValueActive() ? col.getAggFunc() : null;\n colDefCloned.hide = col.isVisible() ? undefined : true;\n colDefCloned.pinned = col.isPinned() ? col.getPinned() : null;\n colDefCloned.sort = col.getSort() ? col.getSort() : null;\n colDefCloned.sortIndex = col.getSortIndex() != null ? col.getSortIndex() : null;\n return colDefCloned;\n };\n ColumnDefFactory = __decorate$p([\n Bean('columnDefFactory')\n ], ColumnDefFactory);\n return ColumnDefFactory;\n}());\n\nvar __decorate$o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RowCssClassCalculator = /** @class */ (function () {\n function RowCssClassCalculator() {\n }\n RowCssClassCalculator.prototype.getInitialRowClasses = function (params) {\n var classes = [];\n if (exists(params.extraCssClass)) {\n classes.push(params.extraCssClass);\n }\n classes.push('ag-row');\n classes.push(params.rowFocused ? 'ag-row-focus' : 'ag-row-no-focus');\n if (params.fadeRowIn) {\n classes.push('ag-opacity-zero');\n }\n classes.push(params.rowIsEven ? 'ag-row-even' : 'ag-row-odd');\n if (params.rowNode.isRowPinned()) {\n classes.push('ag-row-pinned');\n }\n if (params.rowNode.isSelected()) {\n classes.push('ag-row-selected');\n }\n if (params.rowNode.footer) {\n classes.push('ag-row-footer');\n }\n classes.push('ag-row-level-' + params.rowLevel);\n if (params.rowNode.stub) {\n classes.push('ag-row-loading');\n }\n if (params.fullWidthRow) {\n classes.push('ag-full-width-row');\n }\n if (params.expandable) {\n classes.push('ag-row-group');\n classes.push(params.rowNode.expanded ? 'ag-row-group-expanded' : 'ag-row-group-contracted');\n }\n if (params.rowNode.dragging) {\n classes.push('ag-row-dragging');\n }\n pushAll(classes, this.processClassesFromGridOptions(params.rowNode));\n pushAll(classes, this.preProcessRowClassRules(params.rowNode));\n // we use absolute position unless we are doing print layout\n classes.push(params.printLayout ? 'ag-row-position-relative' : 'ag-row-position-absolute');\n if (params.firstRowOnPage) {\n classes.push('ag-row-first');\n }\n if (params.lastRowOnPage) {\n classes.push('ag-row-last');\n }\n if (params.fullWidthRow) {\n if (params.pinned === 'left') {\n classes.push('ag-cell-last-left-pinned');\n }\n if (params.pinned === 'right') {\n classes.push('ag-cell-first-right-pinned');\n }\n }\n return classes;\n };\n RowCssClassCalculator.prototype.processClassesFromGridOptions = function (rowNode) {\n var res = [];\n var process = function (rowCls) {\n if (typeof rowCls === 'string') {\n res.push(rowCls);\n }\n else if (Array.isArray(rowCls)) {\n rowCls.forEach(function (e) { return res.push(e); });\n }\n };\n // part 1 - rowClass\n var rowClass = this.gridOptionsService.get('rowClass');\n if (rowClass) {\n if (typeof rowClass === 'function') {\n console.warn('AG Grid: rowClass should not be a function, please use getRowClass instead');\n return [];\n }\n process(rowClass);\n }\n // part 2 - rowClassFunc\n var rowClassFunc = this.gridOptionsService.getCallback('getRowClass');\n if (rowClassFunc) {\n var params = {\n data: rowNode.data,\n node: rowNode,\n rowIndex: rowNode.rowIndex\n };\n var rowClassFuncResult = rowClassFunc(params);\n process(rowClassFuncResult);\n }\n return res;\n };\n RowCssClassCalculator.prototype.preProcessRowClassRules = function (rowNode) {\n var res = [];\n this.processRowClassRules(rowNode, function (className) {\n res.push(className);\n }, function (className) {\n // not catered for, if creating, no need\n // to remove class as it was never there\n });\n return res;\n };\n RowCssClassCalculator.prototype.processRowClassRules = function (rowNode, onApplicableClass, onNotApplicableClass) {\n var rowClassParams = {\n data: rowNode.data,\n node: rowNode,\n rowIndex: rowNode.rowIndex,\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context\n };\n this.stylingService.processClassRules(this.gridOptionsService.get('rowClassRules'), rowClassParams, onApplicableClass, onNotApplicableClass);\n };\n RowCssClassCalculator.prototype.calculateRowLevel = function (rowNode) {\n if (rowNode.group) {\n return rowNode.level;\n }\n // if a leaf, and a parent exists, put a level of the parent, else put level of 0 for top level item\n return rowNode.parent ? (rowNode.parent.level + 1) : 0;\n };\n __decorate$o([\n Autowired('stylingService')\n ], RowCssClassCalculator.prototype, \"stylingService\", void 0);\n __decorate$o([\n Autowired('gridOptionsService')\n ], RowCssClassCalculator.prototype, \"gridOptionsService\", void 0);\n RowCssClassCalculator = __decorate$o([\n Bean('rowCssClassCalculator')\n ], RowCssClassCalculator);\n return RowCssClassCalculator;\n}());\n\nvar __extends$n = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// this logic is used by both SSRM and CSRM\nvar RowNodeSorter = /** @class */ (function (_super) {\n __extends$n(RowNodeSorter, _super);\n function RowNodeSorter() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n RowNodeSorter.prototype.init = function () {\n var _this = this;\n this.isAccentedSort = this.gridOptionsService.is('accentedSort');\n this.primaryColumnsSortGroups = this.gridOptionsService.isColumnsSortingCoupledToGroup();\n this.addManagedPropertyListener('accentedSort', function (propChange) { return _this.isAccentedSort = propChange.currentValue; });\n this.addManagedPropertyListener('autoGroupColumnDef', function () { return _this.primaryColumnsSortGroups = _this.gridOptionsService.isColumnsSortingCoupledToGroup(); });\n };\n RowNodeSorter.prototype.doFullSort = function (rowNodes, sortOptions) {\n var mapper = function (rowNode, pos) { return ({ currentPos: pos, rowNode: rowNode }); };\n var sortedRowNodes = rowNodes.map(mapper);\n sortedRowNodes.sort(this.compareRowNodes.bind(this, sortOptions));\n return sortedRowNodes.map(function (item) { return item.rowNode; });\n };\n RowNodeSorter.prototype.compareRowNodes = function (sortOptions, sortedNodeA, sortedNodeB) {\n var nodeA = sortedNodeA.rowNode;\n var nodeB = sortedNodeB.rowNode;\n // Iterate columns, return the first that doesn't match\n for (var i = 0, len = sortOptions.length; i < len; i++) {\n var sortOption = sortOptions[i];\n var isDescending = sortOption.sort === 'desc';\n var valueA = this.getValue(nodeA, sortOption.column);\n var valueB = this.getValue(nodeB, sortOption.column);\n var comparatorResult = void 0;\n var providedComparator = this.getComparator(sortOption, nodeA);\n if (providedComparator) {\n //if comparator provided, use it\n comparatorResult = providedComparator(valueA, valueB, nodeA, nodeB, isDescending);\n }\n else {\n //otherwise do our own comparison\n comparatorResult = _.defaultComparator(valueA, valueB, this.isAccentedSort);\n }\n // user provided comparators can return 'NaN' if they don't correctly handle 'undefined' values, this\n // typically occurs when the comparator is used on a group row\n var validResult = !isNaN(comparatorResult);\n if (validResult && comparatorResult !== 0) {\n return sortOption.sort === 'asc' ? comparatorResult : comparatorResult * -1;\n }\n }\n // All matched, we make is so that the original sort order is kept:\n return sortedNodeA.currentPos - sortedNodeB.currentPos;\n };\n RowNodeSorter.prototype.getComparator = function (sortOption, rowNode) {\n var column = sortOption.column;\n // comparator on col get preference over everything else\n var comparatorOnCol = column.getColDef().comparator;\n if (comparatorOnCol != null) {\n return comparatorOnCol;\n }\n if (!column.getColDef().showRowGroup) {\n return;\n }\n // if a 'field' is supplied on the autoGroupColumnDef we need to use the associated column comparator\n var groupLeafField = !rowNode.group && column.getColDef().field;\n if (!groupLeafField) {\n return;\n }\n var primaryColumn = this.columnModel.getPrimaryColumn(groupLeafField);\n if (!primaryColumn) {\n return;\n }\n return primaryColumn.getColDef().comparator;\n };\n RowNodeSorter.prototype.getValue = function (node, column) {\n var _a, _b;\n if (!this.primaryColumnsSortGroups) {\n return this.valueService.getValue(column, node, false, false);\n }\n var isNodeGroupedAtLevel = node.rowGroupColumn === column;\n if (isNodeGroupedAtLevel) {\n var isGroupRows = this.gridOptionsService.isGroupUseEntireRow(this.columnModel.isPivotActive());\n if (isGroupRows) {\n // if the column has a provided a keyCreator, we have to use the key, as the group could be\n // irrelevant to the column value\n var keyCreator = column.getColDef().keyCreator;\n if (keyCreator) {\n return node.key;\n }\n // if the group was generated from the column data, all the leaf children should return the same\n // value\n var leafChild = (_a = node.allLeafChildren) === null || _a === void 0 ? void 0 : _a[0];\n if (leafChild) {\n return this.valueService.getValue(column, leafChild, false, false);\n }\n return undefined;\n }\n var displayCol = this.columnModel.getGroupDisplayColumnForGroup(column.getId());\n if (!displayCol) {\n return undefined;\n }\n return (_b = node.groupData) === null || _b === void 0 ? void 0 : _b[displayCol.getId()];\n }\n if (node.group && column.getColDef().showRowGroup) {\n return undefined;\n }\n return this.valueService.getValue(column, node, false, false);\n };\n __decorate$n([\n Autowired('valueService')\n ], RowNodeSorter.prototype, \"valueService\", void 0);\n __decorate$n([\n Autowired('columnModel')\n ], RowNodeSorter.prototype, \"columnModel\", void 0);\n __decorate$n([\n PostConstruct\n ], RowNodeSorter.prototype, \"init\", null);\n RowNodeSorter = __decorate$n([\n Bean('rowNodeSorter')\n ], RowNodeSorter);\n return RowNodeSorter;\n}(BeanStub));\n\nvar __extends$m = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CtrlsService = /** @class */ (function (_super) {\n __extends$m(CtrlsService, _super);\n function CtrlsService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.ready = false;\n _this.readyCallbacks = [];\n return _this;\n }\n CtrlsService_1 = CtrlsService;\n CtrlsService.prototype.checkReady = function () {\n this.ready =\n this.gridCtrl != null\n && this.gridBodyCtrl != null\n && this.centerRowContainerCtrl != null\n && this.leftRowContainerCtrl != null\n && this.rightRowContainerCtrl != null\n && this.bottomCenterRowContainerCtrl != null\n && this.bottomLeftRowContainerCtrl != null\n && this.bottomRightRowContainerCtrl != null\n && this.topCenterRowContainerCtrl != null\n && this.topLeftRowContainerCtrl != null\n && this.topRightRowContainerCtrl != null\n && this.stickyTopCenterRowContainerCtrl != null\n && this.stickyTopLeftRowContainerCtrl != null\n && this.stickyTopRightRowContainerCtrl != null\n && this.centerHeaderRowContainerCtrl != null\n && this.leftHeaderRowContainerCtrl != null\n && this.rightHeaderRowContainerCtrl != null\n && this.fakeHScrollComp != null\n && this.fakeVScrollComp != null\n && this.gridHeaderCtrl != null;\n if (this.ready) {\n var p_1 = this.createReadyParams();\n this.readyCallbacks.forEach(function (c) { return c(p_1); });\n this.readyCallbacks.length = 0;\n }\n };\n CtrlsService.prototype.whenReady = function (callback) {\n if (this.ready) {\n callback(this.createReadyParams());\n }\n else {\n this.readyCallbacks.push(callback);\n }\n };\n CtrlsService.prototype.createReadyParams = function () {\n return {\n centerRowContainerCtrl: this.centerRowContainerCtrl,\n leftRowContainerCtrl: this.leftRowContainerCtrl,\n rightRowContainerCtrl: this.rightRowContainerCtrl,\n bottomCenterRowContainerCtrl: this.bottomCenterRowContainerCtrl,\n bottomLeftRowContainerCtrl: this.bottomLeftRowContainerCtrl,\n bottomRightRowContainerCtrl: this.bottomRightRowContainerCtrl,\n topCenterRowContainerCtrl: this.topCenterRowContainerCtrl,\n topLeftRowContainerCtrl: this.topLeftRowContainerCtrl,\n topRightRowContainerCtrl: this.topRightRowContainerCtrl,\n stickyTopCenterRowContainerCtrl: this.stickyTopCenterRowContainerCtrl,\n stickyTopLeftRowContainerCtrl: this.stickyTopLeftRowContainerCtrl,\n stickyTopRightRowContainerCtrl: this.stickyTopRightRowContainerCtrl,\n centerHeaderRowContainerCtrl: this.centerHeaderRowContainerCtrl,\n leftHeaderRowContainerCtrl: this.leftHeaderRowContainerCtrl,\n rightHeaderRowContainerCtrl: this.rightHeaderRowContainerCtrl,\n fakeHScrollComp: this.fakeHScrollComp,\n fakeVScrollComp: this.fakeVScrollComp,\n gridBodyCtrl: this.gridBodyCtrl,\n gridCtrl: this.gridCtrl,\n gridHeaderCtrl: this.gridHeaderCtrl,\n };\n };\n CtrlsService.prototype.registerFakeHScrollComp = function (comp) {\n this.fakeHScrollComp = comp;\n this.checkReady();\n };\n CtrlsService.prototype.registerFakeVScrollComp = function (comp) {\n this.fakeVScrollComp = comp;\n this.checkReady();\n };\n CtrlsService.prototype.registerGridHeaderCtrl = function (gridHeaderCtrl) {\n this.gridHeaderCtrl = gridHeaderCtrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerCenterRowContainerCtrl = function (ctrl) {\n this.centerRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerLeftRowContainerCtrl = function (ctrl) {\n this.leftRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerRightRowContainerCtrl = function (ctrl) {\n this.rightRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerTopCenterRowContainerCtrl = function (ctrl) {\n this.topCenterRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerTopLeftRowContainerCon = function (ctrl) {\n this.topLeftRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerTopRightRowContainerCtrl = function (ctrl) {\n this.topRightRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerStickyTopCenterRowContainerCtrl = function (ctrl) {\n this.stickyTopCenterRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerStickyTopLeftRowContainerCon = function (ctrl) {\n this.stickyTopLeftRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerStickyTopRightRowContainerCtrl = function (ctrl) {\n this.stickyTopRightRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerBottomCenterRowContainerCtrl = function (ctrl) {\n this.bottomCenterRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerBottomLeftRowContainerCtrl = function (ctrl) {\n this.bottomLeftRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerBottomRightRowContainerCtrl = function (ctrl) {\n this.bottomRightRowContainerCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerHeaderContainer = function (ctrl, pinned) {\n switch (pinned) {\n case 'left':\n this.leftHeaderRowContainerCtrl = ctrl;\n break;\n case 'right':\n this.rightHeaderRowContainerCtrl = ctrl;\n break;\n default:\n this.centerHeaderRowContainerCtrl = ctrl;\n break;\n }\n this.checkReady();\n };\n CtrlsService.prototype.registerGridBodyCtrl = function (ctrl) {\n this.gridBodyCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.registerGridCtrl = function (ctrl) {\n this.gridCtrl = ctrl;\n this.checkReady();\n };\n CtrlsService.prototype.getFakeHScrollComp = function () {\n return this.fakeHScrollComp;\n };\n CtrlsService.prototype.getFakeVScrollComp = function () {\n return this.fakeVScrollComp;\n };\n CtrlsService.prototype.getGridHeaderCtrl = function () {\n return this.gridHeaderCtrl;\n };\n CtrlsService.prototype.getGridCtrl = function () {\n return this.gridCtrl;\n };\n CtrlsService.prototype.getCenterRowContainerCtrl = function () {\n return this.centerRowContainerCtrl;\n };\n CtrlsService.prototype.getTopCenterRowContainerCtrl = function () {\n return this.topCenterRowContainerCtrl;\n };\n CtrlsService.prototype.getBottomCenterRowContainerCtrl = function () {\n return this.bottomCenterRowContainerCtrl;\n };\n CtrlsService.prototype.getStickyTopCenterRowContainerCtrl = function () {\n return this.stickyTopCenterRowContainerCtrl;\n };\n CtrlsService.prototype.getGridBodyCtrl = function () {\n return this.gridBodyCtrl;\n };\n CtrlsService.prototype.getHeaderRowContainerCtrls = function () {\n return [this.leftHeaderRowContainerCtrl, this.rightHeaderRowContainerCtrl, this.centerHeaderRowContainerCtrl];\n };\n CtrlsService.prototype.getHeaderRowContainerCtrl = function (pinned) {\n switch (pinned) {\n case 'left': return this.leftHeaderRowContainerCtrl;\n case 'right': return this.rightHeaderRowContainerCtrl;\n default: return this.centerHeaderRowContainerCtrl;\n }\n };\n var CtrlsService_1;\n CtrlsService.NAME = 'ctrlsService';\n CtrlsService = CtrlsService_1 = __decorate$m([\n Bean(CtrlsService_1.NAME)\n ], CtrlsService);\n return CtrlsService;\n}(BeanStub));\n\nvar __extends$l = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CtrlsFactory = /** @class */ (function (_super) {\n __extends$l(CtrlsFactory, _super);\n function CtrlsFactory() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.registry = {};\n return _this;\n }\n CtrlsFactory.prototype.register = function (meta) {\n this.registry[meta.controllerName] = meta.controllerClass;\n };\n CtrlsFactory.prototype.getInstance = function (name) {\n var ControllerClass = this.registry[name];\n if (ControllerClass == null) {\n return undefined;\n }\n return new ControllerClass();\n };\n CtrlsFactory = __decorate$l([\n Bean('ctrlsFactory')\n ], CtrlsFactory);\n return CtrlsFactory;\n}(BeanStub));\n\nvar __extends$k = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AbstractFakeScrollComp = /** @class */ (function (_super) {\n __extends$k(AbstractFakeScrollComp, _super);\n function AbstractFakeScrollComp(template, direction) {\n var _this = _super.call(this, template) || this;\n _this.direction = direction;\n _this.hideTimeout = null;\n return _this;\n }\n AbstractFakeScrollComp.prototype.postConstruct = function () {\n this.addManagedListener(this.eventService, Events.EVENT_SCROLL_VISIBILITY_CHANGED, this.onScrollVisibilityChanged.bind(this));\n this.onScrollVisibilityChanged();\n this.addOrRemoveCssClass('ag-apple-scrollbar', isMacOsUserAgent() || isIOSUserAgent());\n };\n AbstractFakeScrollComp.prototype.initialiseInvisibleScrollbar = function () {\n if (this.invisibleScrollbar !== undefined) {\n return;\n }\n this.invisibleScrollbar = isInvisibleScrollbar();\n if (this.invisibleScrollbar) {\n this.hideAndShowInvisibleScrollAsNeeded();\n this.addActiveListenerToggles();\n }\n };\n AbstractFakeScrollComp.prototype.addActiveListenerToggles = function () {\n var _this = this;\n var activateEvents = ['mouseenter', 'mousedown', 'touchstart'];\n var deactivateEvents = ['mouseleave', 'touchend'];\n var eGui = this.getGui();\n activateEvents.forEach(function (eventName) { return _this.addManagedListener(eGui, eventName, function () { return _this.addOrRemoveCssClass('ag-scrollbar-active', true); }); });\n deactivateEvents.forEach(function (eventName) { return _this.addManagedListener(eGui, eventName, function () { return _this.addOrRemoveCssClass('ag-scrollbar-active', false); }); });\n };\n AbstractFakeScrollComp.prototype.onScrollVisibilityChanged = function () {\n var _this = this;\n // initialiseInvisibleScrollbar should only be called once, but the reason\n // this can't be inside `setComp` or `PostConstruct` is the DOM might not\n // be ready, so we call it until eventually, it gets calculated.\n if (this.invisibleScrollbar === undefined) {\n this.initialiseInvisibleScrollbar();\n }\n this.animationFrameService.requestAnimationFrame(function () { return _this.setScrollVisible(); });\n };\n AbstractFakeScrollComp.prototype.hideAndShowInvisibleScrollAsNeeded = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_BODY_SCROLL, function (params) {\n if (params.direction === _this.direction) {\n if (_this.hideTimeout !== null) {\n window.clearTimeout(_this.hideTimeout);\n _this.hideTimeout = null;\n }\n _this.addOrRemoveCssClass('ag-scrollbar-scrolling', true);\n }\n });\n this.addManagedListener(this.eventService, Events.EVENT_BODY_SCROLL_END, function () {\n _this.hideTimeout = window.setTimeout(function () {\n _this.addOrRemoveCssClass('ag-scrollbar-scrolling', false);\n _this.hideTimeout = null;\n }, 400);\n });\n };\n AbstractFakeScrollComp.prototype.attemptSettingScrollPosition = function (value) {\n var _this = this;\n var viewport = this.getViewport();\n waitUntil(function () { return isVisible(viewport); }, function () { return _this.setScrollPosition(value); }, 100);\n };\n AbstractFakeScrollComp.prototype.getViewport = function () {\n return this.eViewport;\n };\n AbstractFakeScrollComp.prototype.getContainer = function () {\n return this.eContainer;\n };\n AbstractFakeScrollComp.prototype.onScrollCallback = function (fn) {\n this.addManagedListener(this.getViewport(), 'scroll', fn);\n };\n __decorate$k([\n RefSelector('eViewport')\n ], AbstractFakeScrollComp.prototype, \"eViewport\", void 0);\n __decorate$k([\n RefSelector('eContainer')\n ], AbstractFakeScrollComp.prototype, \"eContainer\", void 0);\n __decorate$k([\n Autowired('scrollVisibleService')\n ], AbstractFakeScrollComp.prototype, \"scrollVisibleService\", void 0);\n __decorate$k([\n Autowired('ctrlsService')\n ], AbstractFakeScrollComp.prototype, \"ctrlsService\", void 0);\n __decorate$k([\n Autowired('animationFrameService')\n ], AbstractFakeScrollComp.prototype, \"animationFrameService\", void 0);\n return AbstractFakeScrollComp;\n}(Component));\n\nvar __extends$j = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FakeHScrollComp = /** @class */ (function (_super) {\n __extends$j(FakeHScrollComp, _super);\n function FakeHScrollComp() {\n return _super.call(this, FakeHScrollComp.TEMPLATE, 'horizontal') || this;\n }\n FakeHScrollComp.prototype.postConstruct = function () {\n var _this = this;\n _super.prototype.postConstruct.call(this);\n // When doing printing, this changes whether cols are pinned or not\n var spacerWidthsListener = this.setFakeHScrollSpacerWidths.bind(this);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, spacerWidthsListener);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, spacerWidthsListener);\n this.addManagedListener(this.eventService, Events.EVENT_PINNED_ROW_DATA_CHANGED, this.onPinnedRowDataChanged.bind(this));\n this.addManagedPropertyListener('domLayout', spacerWidthsListener);\n this.ctrlsService.registerFakeHScrollComp(this);\n this.createManagedBean(new CenterWidthFeature(function (width) { return _this.eContainer.style.width = width + \"px\"; }));\n };\n FakeHScrollComp.prototype.initialiseInvisibleScrollbar = function () {\n if (this.invisibleScrollbar !== undefined) {\n return;\n }\n this.enableRtl = this.gridOptionsService.is('enableRtl');\n _super.prototype.initialiseInvisibleScrollbar.call(this);\n if (this.invisibleScrollbar) {\n this.refreshCompBottom();\n }\n };\n FakeHScrollComp.prototype.onPinnedRowDataChanged = function () {\n this.refreshCompBottom();\n };\n FakeHScrollComp.prototype.refreshCompBottom = function () {\n if (!this.invisibleScrollbar) {\n return;\n }\n var bottomPinnedHeight = this.pinnedRowModel.getPinnedBottomTotalHeight();\n this.getGui().style.bottom = bottomPinnedHeight + \"px\";\n };\n FakeHScrollComp.prototype.onScrollVisibilityChanged = function () {\n _super.prototype.onScrollVisibilityChanged.call(this);\n this.setFakeHScrollSpacerWidths();\n };\n FakeHScrollComp.prototype.setFakeHScrollSpacerWidths = function () {\n var vScrollShowing = this.scrollVisibleService.isVerticalScrollShowing();\n // we pad the right based on a) if cols are pinned to the right and\n // b) if v scroll is showing on the right (normal position of scroll)\n var rightSpacing = this.columnModel.getDisplayedColumnsRightWidth();\n var scrollOnRight = !this.enableRtl && vScrollShowing;\n var scrollbarWidth = this.gridOptionsService.getScrollbarWidth();\n if (scrollOnRight) {\n rightSpacing += scrollbarWidth;\n }\n setFixedWidth(this.eRightSpacer, rightSpacing);\n this.eRightSpacer.classList.toggle('ag-scroller-corner', rightSpacing <= scrollbarWidth);\n // we pad the left based on a) if cols are pinned to the left and\n // b) if v scroll is showing on the left (happens in LTR layout only)\n var leftSpacing = this.columnModel.getDisplayedColumnsLeftWidth();\n var scrollOnLeft = this.enableRtl && vScrollShowing;\n if (scrollOnLeft) {\n leftSpacing += scrollbarWidth;\n }\n setFixedWidth(this.eLeftSpacer, leftSpacing);\n this.eLeftSpacer.classList.toggle('ag-scroller-corner', leftSpacing <= scrollbarWidth);\n };\n FakeHScrollComp.prototype.setScrollVisible = function () {\n var hScrollShowing = this.scrollVisibleService.isHorizontalScrollShowing();\n var invisibleScrollbar = this.invisibleScrollbar;\n var isSuppressHorizontalScroll = this.gridOptionsService.is('suppressHorizontalScroll');\n var scrollbarWidth = hScrollShowing ? (this.gridOptionsService.getScrollbarWidth() || 0) : 0;\n var adjustedScrollbarWidth = (scrollbarWidth === 0 && invisibleScrollbar) ? 16 : scrollbarWidth;\n var scrollContainerSize = !isSuppressHorizontalScroll ? adjustedScrollbarWidth : 0;\n this.addOrRemoveCssClass('ag-scrollbar-invisible', invisibleScrollbar);\n setFixedHeight(this.getGui(), scrollContainerSize);\n setFixedHeight(this.eViewport, scrollContainerSize);\n setFixedHeight(this.eContainer, scrollContainerSize);\n this.setDisplayed(hScrollShowing, { skipAriaHidden: true });\n };\n FakeHScrollComp.prototype.getScrollPosition = function () {\n return getScrollLeft(this.getViewport(), this.enableRtl);\n };\n FakeHScrollComp.prototype.setScrollPosition = function (value) {\n if (!isVisible(this.getViewport())) {\n this.attemptSettingScrollPosition(value);\n }\n setScrollLeft(this.getViewport(), value, this.enableRtl);\n };\n FakeHScrollComp.TEMPLATE = \"
\\n
\\n
\\n
\\n
\\n
\\n
\";\n __decorate$j([\n RefSelector('eLeftSpacer')\n ], FakeHScrollComp.prototype, \"eLeftSpacer\", void 0);\n __decorate$j([\n RefSelector('eRightSpacer')\n ], FakeHScrollComp.prototype, \"eRightSpacer\", void 0);\n __decorate$j([\n Autowired('columnModel')\n ], FakeHScrollComp.prototype, \"columnModel\", void 0);\n __decorate$j([\n Autowired('pinnedRowModel')\n ], FakeHScrollComp.prototype, \"pinnedRowModel\", void 0);\n __decorate$j([\n PostConstruct\n ], FakeHScrollComp.prototype, \"postConstruct\", null);\n return FakeHScrollComp;\n}(AbstractFakeScrollComp));\n\nvar __extends$i = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PinnedWidthService = /** @class */ (function (_super) {\n __extends$i(PinnedWidthService, _super);\n function PinnedWidthService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PinnedWidthService.prototype.postConstruct = function () {\n var listener = this.checkContainerWidths.bind(this);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_CHANGED, listener);\n this.addManagedListener(this.eventService, Events.EVENT_DISPLAYED_COLUMNS_WIDTH_CHANGED, listener);\n this.addManagedPropertyListener('domLayout', listener);\n };\n PinnedWidthService.prototype.checkContainerWidths = function () {\n var printLayout = this.gridOptionsService.isDomLayout('print');\n var newLeftWidth = printLayout ? 0 : this.columnModel.getDisplayedColumnsLeftWidth();\n var newRightWidth = printLayout ? 0 : this.columnModel.getDisplayedColumnsRightWidth();\n if (newLeftWidth != this.leftWidth) {\n this.leftWidth = newLeftWidth;\n this.eventService.dispatchEvent({ type: Events.EVENT_LEFT_PINNED_WIDTH_CHANGED });\n }\n if (newRightWidth != this.rightWidth) {\n this.rightWidth = newRightWidth;\n this.eventService.dispatchEvent({ type: Events.EVENT_RIGHT_PINNED_WIDTH_CHANGED });\n }\n };\n PinnedWidthService.prototype.getPinnedRightWidth = function () {\n return this.rightWidth;\n };\n PinnedWidthService.prototype.getPinnedLeftWidth = function () {\n return this.leftWidth;\n };\n __decorate$i([\n Autowired('columnModel')\n ], PinnedWidthService.prototype, \"columnModel\", void 0);\n __decorate$i([\n PostConstruct\n ], PinnedWidthService.prototype, \"postConstruct\", null);\n PinnedWidthService = __decorate$i([\n Bean('pinnedWidthService')\n ], PinnedWidthService);\n return PinnedWidthService;\n}(BeanStub));\n\nvar __extends$h = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RowNodeEventThrottle = /** @class */ (function (_super) {\n __extends$h(RowNodeEventThrottle, _super);\n function RowNodeEventThrottle() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.events = [];\n return _this;\n }\n RowNodeEventThrottle.prototype.postConstruct = function () {\n if (this.rowModel.getType() == 'clientSide') {\n this.clientSideRowModel = this.rowModel;\n }\n };\n // because the user can call rowNode.setExpanded() many times in one VM turn,\n // we throttle the calls to ClientSideRowModel using animationFrameService. this means for 100\n // row nodes getting expanded, we only update the CSRM once, and then we fire all events after\n // CSRM has updated.\n //\n // if we did not do this, then the user could call setExpanded on 100+ rows, causing the grid\n // to re-render 100+ times, which would be a performance lag.\n //\n // we use animationFrameService\n // rather than _.debounce() so this will get done if anyone flushes the animationFrameService\n // (eg user calls api.ensureRowVisible(), which in turn flushes ).\n RowNodeEventThrottle.prototype.dispatchExpanded = function (event) {\n var _this = this;\n // if not using CSRM, we don't debounce. otherwise this breaks the SSRM.\n if (this.clientSideRowModel == null) {\n this.eventService.dispatchEvent(event);\n return;\n }\n this.events.push(event);\n var func = function () {\n if (_this.clientSideRowModel) {\n _this.clientSideRowModel.onRowGroupOpened();\n }\n _this.events.forEach(function (e) { return _this.eventService.dispatchEvent(e); });\n _this.events = [];\n };\n if (this.dispatchExpandedDebounced == null) {\n this.dispatchExpandedDebounced = this.animationFrameService.debounce(func);\n }\n this.dispatchExpandedDebounced();\n };\n __decorate$h([\n Autowired('animationFrameService')\n ], RowNodeEventThrottle.prototype, \"animationFrameService\", void 0);\n __decorate$h([\n Autowired('rowModel')\n ], RowNodeEventThrottle.prototype, \"rowModel\", void 0);\n __decorate$h([\n PostConstruct\n ], RowNodeEventThrottle.prototype, \"postConstruct\", null);\n RowNodeEventThrottle = __decorate$h([\n Bean('rowNodeEventThrottle')\n ], RowNodeEventThrottle);\n return RowNodeEventThrottle;\n}(BeanStub));\n\nvar __assign$1 = (undefined && undefined.__assign) || function () {\n __assign$1 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$1.apply(this, arguments);\n};\nvar __decorate$g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param$1 = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar __read$5 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$4 = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (typeof value == 'string') {\n return parseInt(value, 10);\n }\n}\nfunction isTrue(value) {\n return value === true || value === 'true';\n}\nvar GridOptionsService = /** @class */ (function () {\n function GridOptionsService() {\n var _this = this;\n this.destroyed = false;\n this.domDataKey = '__AG_' + Math.random().toString();\n this.propertyEventService = new EventService();\n // responsible for calling the onXXX functions on gridOptions\n // It forces events defined in GridOptionsService.alwaysSyncGlobalEvents to be fired synchronously.\n // This is required for events such as GridPreDestroyed.\n // Other events can be fired asynchronously or synchronously depending on config.\n this.globalEventHandlerFactory = function (restrictToSyncOnly) {\n return function (eventName, event) {\n // prevent events from being fired _after_ the grid has been destroyed\n if (_this.destroyed) {\n return;\n }\n var alwaysSync = GridOptionsService_1.alwaysSyncGlobalEvents.has(eventName);\n if ((alwaysSync && !restrictToSyncOnly) || (!alwaysSync && restrictToSyncOnly)) {\n return;\n }\n var callbackMethodName = ComponentUtil.getCallbackForEvent(eventName);\n if (typeof _this.gridOptions[callbackMethodName] === 'function') {\n _this.gridOptions[callbackMethodName](event);\n }\n };\n };\n }\n GridOptionsService_1 = GridOptionsService;\n Object.defineProperty(GridOptionsService.prototype, \"context\", {\n // This is quicker then having code call gridOptionsService.get('context')\n get: function () {\n return this.gridOptions['context'];\n },\n enumerable: false,\n configurable: true\n });\n GridOptionsService.prototype.agWire = function (gridApi, columnApi) {\n this.gridOptions.api = gridApi;\n this.gridOptions.columnApi = columnApi;\n this.api = gridApi;\n this.columnApi = columnApi;\n };\n GridOptionsService.prototype.init = function () {\n this.gridOptionLookup = new Set(__spreadArray$4(__spreadArray$4([], __read$5(ComponentUtil.ALL_PROPERTIES)), __read$5(ComponentUtil.EVENT_CALLBACKS)));\n var async = !this.is('suppressAsyncEvents');\n this.eventService.addGlobalListener(this.globalEventHandlerFactory().bind(this), async);\n this.eventService.addGlobalListener(this.globalEventHandlerFactory(true).bind(this), false);\n // sets an initial calculation for the scrollbar width\n this.getScrollbarWidth();\n };\n GridOptionsService.prototype.destroy = function () {\n // need to remove these, as we don't own the lifecycle of the gridOptions, we need to\n // remove the references in case the user keeps the grid options, we want the rest\n // of the grid to be picked up by the garbage collector\n this.gridOptions.api = null;\n this.gridOptions.columnApi = null;\n this.destroyed = true;\n };\n /**\n * Is the given GridOption property set to true.\n * @param property GridOption property that has the type `boolean | undefined`\n */\n GridOptionsService.prototype.is = function (property) {\n return isTrue(this.gridOptions[property]);\n };\n /**\n * Get the raw value of the GridOptions property provided.\n * @param property\n */\n GridOptionsService.prototype.get = function (property) {\n return this.gridOptions[property];\n };\n /**\n * Get the GridOption property as a number, raw value is returned via a toNumber coercion function.\n * @param property GridOption property that has the type `number | undefined`\n */\n GridOptionsService.prototype.getNum = function (property) {\n return toNumber(this.gridOptions[property]);\n };\n /**\n * Get the GridOption callback but wrapped so that the common params of api,columnApi and context are automatically applied to the params.\n * @param property GridOption callback properties based on the fact that this property has a callback with params extending AgGridCommon\n */\n GridOptionsService.prototype.getCallback = function (property) {\n return this.mergeGridCommonParams(this.gridOptions[property]);\n };\n /**\n * Returns `true` if a value has been specified for this GridOption.\n * @param property GridOption property\n */\n GridOptionsService.prototype.exists = function (property) {\n return exists(this.gridOptions[property]);\n };\n /**\n * Wrap the user callback and attach the api, columnApi and context to the params object on the way through.\n * @param callback User provided callback\n * @returns Wrapped callback where the params object not require api, columnApi and context\n */\n GridOptionsService.prototype.mergeGridCommonParams = function (callback) {\n var _this = this;\n if (callback) {\n var wrapped = function (callbackParams) {\n var mergedParams = callbackParams;\n mergedParams.api = _this.api;\n mergedParams.columnApi = _this.columnApi;\n mergedParams.context = _this.context;\n return callback(mergedParams);\n };\n return wrapped;\n }\n return callback;\n };\n /**\n * DO NOT USE - only for use for ComponentUtil applyChanges via GridApi.\n * Use `set` method instead.\n * Only update the property value, don't fire any events. This enables all properties\n * that have been updated together to be updated before any events get triggered to avoid\n * out of sync issues.\n * @param key - key of the GridOption property to update\n * @param newValue - new value for this property\n * @returns The `true` if the previous value is not equal to the new value.\n */\n GridOptionsService.prototype.__setPropertyOnly = function (key, newValue) {\n var previousValue = this.gridOptions[key];\n if (this.gridOptionLookup.has(key)) {\n this.gridOptions[key] = newValue;\n }\n return previousValue !== newValue;\n };\n /**\n *\n * @param key - key of the GridOption property to update\n * @param newValue - new value for this property\n * @param force - force the property change Event to be fired even if the value has not changed\n * @param eventParams - additional params to merge into the property changed event\n * @param changeSetId - Change set id used to identify keys that have been updated in the same framework lifecycle update.\n */\n GridOptionsService.prototype.set = function (key, newValue, force, eventParams, changeSet) {\n if (force === void 0) { force = false; }\n if (eventParams === void 0) { eventParams = {}; }\n if (changeSet === void 0) { changeSet = undefined; }\n if (this.gridOptionLookup.has(key)) {\n var previousValue = this.gridOptions[key];\n if (force || previousValue !== newValue) {\n this.gridOptions[key] = newValue;\n var event_1 = __assign$1({ type: key, currentValue: newValue, previousValue: previousValue, changeSet: changeSet }, eventParams);\n this.propertyEventService.dispatchEvent(event_1);\n }\n }\n };\n GridOptionsService.prototype.addEventListener = function (key, listener) {\n this.propertyEventService.addEventListener(key, listener);\n };\n GridOptionsService.prototype.removeEventListener = function (key, listener) {\n this.propertyEventService.removeEventListener(key, listener);\n };\n // *************** Helper methods ************************** //\n // Methods to share common GridOptions related logic that goes above accessing a single property\n GridOptionsService.prototype.getGridId = function () {\n return this.api.getGridId();\n };\n // the user might be using some non-standard scrollbar, eg a scrollbar that has zero\n // width and overlays (like the Safari scrollbar, but presented in Chrome). so we\n // allow the user to provide the scroll width before we work it out.\n GridOptionsService.prototype.getScrollbarWidth = function () {\n if (this.scrollbarWidth == null) {\n var useGridOptions = typeof this.gridOptions.scrollbarWidth === 'number' && this.gridOptions.scrollbarWidth >= 0;\n var scrollbarWidth = useGridOptions ? this.gridOptions.scrollbarWidth : getScrollbarWidth();\n if (scrollbarWidth != null) {\n this.scrollbarWidth = scrollbarWidth;\n this.eventService.dispatchEvent({\n type: Events.EVENT_SCROLLBAR_WIDTH_CHANGED\n });\n }\n }\n return this.scrollbarWidth;\n };\n GridOptionsService.prototype.isRowModelType = function (rowModelType) {\n return this.gridOptions.rowModelType === rowModelType ||\n (rowModelType === 'clientSide' && missing(this.gridOptions.rowModelType));\n };\n GridOptionsService.prototype.isDomLayout = function (domLayout) {\n var _a;\n var gridLayout = (_a = this.gridOptions.domLayout) !== null && _a !== void 0 ? _a : 'normal';\n return gridLayout === domLayout;\n };\n GridOptionsService.prototype.isRowSelection = function () {\n return this.gridOptions.rowSelection === 'single' || this.gridOptions.rowSelection === 'multiple';\n };\n GridOptionsService.prototype.useAsyncEvents = function () {\n return !this.is('suppressAsyncEvents');\n };\n GridOptionsService.prototype.isGetRowHeightFunction = function () {\n return typeof this.gridOptions.getRowHeight === 'function';\n };\n GridOptionsService.prototype.getRowHeightForNode = function (rowNode, allowEstimate, defaultRowHeight) {\n if (allowEstimate === void 0) { allowEstimate = false; }\n if (defaultRowHeight == null) {\n defaultRowHeight = this.environment.getDefaultRowHeight();\n }\n // check the function first, in case use set both function and\n // number, when using virtual pagination then function can be\n // used for pinned rows and the number for the body rows.\n if (this.isGetRowHeightFunction()) {\n if (allowEstimate) {\n return { height: defaultRowHeight, estimated: true };\n }\n var params = {\n node: rowNode,\n data: rowNode.data\n };\n var height = this.getCallback('getRowHeight')(params);\n if (this.isNumeric(height)) {\n if (height === 0) {\n doOnce(function () { return console.warn('AG Grid: The return of `getRowHeight` cannot be zero. If the intention is to hide rows, use a filter instead.'); }, 'invalidRowHeight');\n }\n return { height: Math.max(1, height), estimated: false };\n }\n }\n if (rowNode.detail && this.is('masterDetail')) {\n return this.getMasterDetailRowHeight();\n }\n var rowHeight = this.gridOptions.rowHeight && this.isNumeric(this.gridOptions.rowHeight) ? this.gridOptions.rowHeight : defaultRowHeight;\n return { height: rowHeight, estimated: false };\n };\n GridOptionsService.prototype.getMasterDetailRowHeight = function () {\n // if autoHeight, we want the height to grow to the new height starting at 1, as otherwise a flicker would happen,\n // as the detail goes to the default (eg 200px) and then immediately shrink up/down to the new measured height\n // (due to auto height) which looks bad, especially if doing row animation.\n if (this.is('detailRowAutoHeight')) {\n return { height: 1, estimated: false };\n }\n if (this.isNumeric(this.gridOptions.detailRowHeight)) {\n return { height: this.gridOptions.detailRowHeight, estimated: false };\n }\n return { height: 300, estimated: false };\n };\n // we don't allow dynamic row height for virtual paging\n GridOptionsService.prototype.getRowHeightAsNumber = function () {\n if (!this.gridOptions.rowHeight || missing(this.gridOptions.rowHeight)) {\n return this.environment.getDefaultRowHeight();\n }\n var rowHeight = this.environment.refreshRowHeightVariable();\n if (rowHeight !== -1) {\n return rowHeight;\n }\n console.warn('AG Grid row height must be a number if not using standard row model');\n return this.environment.getDefaultRowHeight();\n };\n GridOptionsService.prototype.isNumeric = function (value) {\n return !isNaN(value) && typeof value === 'number' && isFinite(value);\n };\n GridOptionsService.prototype.getDomDataKey = function () {\n return this.domDataKey;\n };\n // returns the dom data, or undefined if not found\n GridOptionsService.prototype.getDomData = function (element, key) {\n var domData = element[this.getDomDataKey()];\n return domData ? domData[key] : undefined;\n };\n GridOptionsService.prototype.setDomData = function (element, key, value) {\n var domDataKey = this.getDomDataKey();\n var domData = element[domDataKey];\n if (missing(domData)) {\n domData = {};\n element[domDataKey] = domData;\n }\n domData[key] = value;\n };\n GridOptionsService.prototype.getDocument = function () {\n // if user is providing document, we use the users one,\n // otherwise we use the document on the global namespace.\n var result = null;\n if (this.gridOptions.getDocument && exists(this.gridOptions.getDocument)) {\n result = this.gridOptions.getDocument();\n }\n else if (this.eGridDiv) {\n result = this.eGridDiv.ownerDocument;\n }\n if (result && exists(result)) {\n return result;\n }\n return document;\n };\n GridOptionsService.prototype.getWindow = function () {\n var eDocument = this.getDocument();\n return eDocument.defaultView || window;\n };\n GridOptionsService.prototype.getRootNode = function () {\n return this.eGridDiv.getRootNode();\n };\n GridOptionsService.prototype.getAsyncTransactionWaitMillis = function () {\n return exists(this.gridOptions.asyncTransactionWaitMillis) ? this.gridOptions.asyncTransactionWaitMillis : 50;\n };\n GridOptionsService.prototype.isAnimateRows = function () {\n // never allow animating if enforcing the row order\n if (this.is('ensureDomOrder')) {\n return false;\n }\n return this.is('animateRows');\n };\n GridOptionsService.prototype.isGroupRowsSticky = function () {\n if (this.is('suppressGroupRowsSticky') ||\n this.is('paginateChildRows') ||\n this.is('groupHideOpenParents')) {\n return false;\n }\n return true;\n };\n GridOptionsService.prototype.isColumnsSortingCoupledToGroup = function () {\n var autoGroupColumnDef = this.gridOptions.autoGroupColumnDef;\n var isClientSideRowModel = this.isRowModelType('clientSide');\n return isClientSideRowModel && !(autoGroupColumnDef === null || autoGroupColumnDef === void 0 ? void 0 : autoGroupColumnDef.comparator) && !this.is('treeData');\n };\n GridOptionsService.prototype.getGroupAggFiltering = function () {\n var userValue = this.gridOptions.groupAggFiltering;\n if (typeof userValue === 'function') {\n return this.getCallback('groupAggFiltering');\n }\n if (isTrue(userValue)) {\n return function () { return true; };\n }\n return undefined;\n };\n GridOptionsService.prototype.isGroupIncludeFooterTrueOrCallback = function () {\n var userValue = this.gridOptions.groupIncludeFooter;\n return isTrue(userValue) || typeof userValue === 'function';\n };\n GridOptionsService.prototype.getGroupIncludeFooter = function () {\n var userValue = this.gridOptions.groupIncludeFooter;\n if (typeof userValue === 'function') {\n return this.getCallback('groupIncludeFooter');\n }\n if (isTrue(userValue)) {\n return function () { return true; };\n }\n return function () { return false; };\n };\n GridOptionsService.prototype.isGroupMultiAutoColumn = function () {\n if (this.gridOptions.groupDisplayType) {\n return matchesGroupDisplayType('multipleColumns', this.gridOptions.groupDisplayType);\n }\n // if we are doing hideOpenParents we also show multiple columns, otherwise hideOpenParents would not work\n return this.is('groupHideOpenParents');\n };\n GridOptionsService.prototype.isGroupUseEntireRow = function (pivotMode) {\n // we never allow groupDisplayType = 'groupRows' if in pivot mode, otherwise we won't see the pivot values.\n if (pivotMode) {\n return false;\n }\n return this.gridOptions.groupDisplayType ? matchesGroupDisplayType('groupRows', this.gridOptions.groupDisplayType) : false;\n };\n var GridOptionsService_1;\n GridOptionsService.alwaysSyncGlobalEvents = new Set([Events.EVENT_GRID_PRE_DESTROYED]);\n __decorate$g([\n Autowired('gridOptions')\n ], GridOptionsService.prototype, \"gridOptions\", void 0);\n __decorate$g([\n Autowired('eventService')\n ], GridOptionsService.prototype, \"eventService\", void 0);\n __decorate$g([\n Autowired('environment')\n ], GridOptionsService.prototype, \"environment\", void 0);\n __decorate$g([\n Autowired('eGridDiv')\n ], GridOptionsService.prototype, \"eGridDiv\", void 0);\n __decorate$g([\n __param$1(0, Qualifier('gridApi')),\n __param$1(1, Qualifier('columnApi'))\n ], GridOptionsService.prototype, \"agWire\", null);\n __decorate$g([\n PostConstruct\n ], GridOptionsService.prototype, \"init\", null);\n __decorate$g([\n PreDestroy\n ], GridOptionsService.prototype, \"destroy\", null);\n GridOptionsService = GridOptionsService_1 = __decorate$g([\n Bean('gridOptionsService')\n ], GridOptionsService);\n return GridOptionsService;\n}());\n\nvar __extends$g = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar LocaleService = /** @class */ (function (_super) {\n __extends$g(LocaleService, _super);\n function LocaleService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n LocaleService.prototype.getLocaleTextFunc = function () {\n var getLocaleText = this.gridOptionsService.getCallback('getLocaleText');\n if (getLocaleText) {\n //key: string, defaultValue: string, variableValues?: string[]\n return function (key, defaultValue, variableValues) {\n var params = {\n key: key,\n defaultValue: defaultValue,\n variableValues: variableValues\n };\n return getLocaleText(params);\n };\n }\n var localeText = this.gridOptionsService.get('localeText');\n return function (key, defaultValue, variableValues) {\n var localisedText = localeText && localeText[key];\n if (localisedText && variableValues && variableValues.length) {\n var found = 0;\n while (true) {\n if (found >= variableValues.length) {\n break;\n }\n var idx = localisedText.indexOf('${variable}');\n if (idx === -1) {\n break;\n }\n localisedText = localisedText.replace('${variable}', variableValues[found++]);\n }\n }\n return localisedText !== null && localisedText !== void 0 ? localisedText : defaultValue;\n };\n };\n LocaleService = __decorate$f([\n Bean('localeService')\n ], LocaleService);\n return LocaleService;\n}(BeanStub));\n\nvar __extends$f = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FakeVScrollComp = /** @class */ (function (_super) {\n __extends$f(FakeVScrollComp, _super);\n function FakeVScrollComp() {\n return _super.call(this, FakeVScrollComp.TEMPLATE, 'vertical') || this;\n }\n FakeVScrollComp.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n this.createManagedBean(new SetHeightFeature(this.eContainer));\n this.ctrlsService.registerFakeVScrollComp(this);\n this.addManagedListener(this.eventService, Events.EVENT_ROW_CONTAINER_HEIGHT_CHANGED, this.onRowContainerHeightChanged.bind(this));\n };\n FakeVScrollComp.prototype.setScrollVisible = function () {\n var vScrollShowing = this.scrollVisibleService.isVerticalScrollShowing();\n var invisibleScrollbar = this.invisibleScrollbar;\n var scrollbarWidth = vScrollShowing ? (this.gridOptionsService.getScrollbarWidth() || 0) : 0;\n var adjustedScrollbarWidth = (scrollbarWidth === 0 && invisibleScrollbar) ? 16 : scrollbarWidth;\n this.addOrRemoveCssClass('ag-scrollbar-invisible', invisibleScrollbar);\n setFixedWidth(this.getGui(), adjustedScrollbarWidth);\n setFixedWidth(this.eViewport, adjustedScrollbarWidth);\n setFixedWidth(this.eContainer, adjustedScrollbarWidth);\n this.setDisplayed(vScrollShowing, { skipAriaHidden: true });\n };\n FakeVScrollComp.prototype.onRowContainerHeightChanged = function () {\n var gridBodyCtrl = this.ctrlsService.getGridBodyCtrl();\n var gridBodyViewportEl = gridBodyCtrl.getBodyViewportElement();\n if (this.eViewport.scrollTop != gridBodyViewportEl.scrollTop) {\n this.eViewport.scrollTop = gridBodyViewportEl.scrollTop;\n }\n };\n FakeVScrollComp.prototype.getScrollPosition = function () {\n return this.getViewport().scrollTop;\n };\n FakeVScrollComp.prototype.setScrollPosition = function (value) {\n if (!isVisible(this.getViewport())) {\n this.attemptSettingScrollPosition(value);\n }\n this.getViewport().scrollTop = value;\n };\n FakeVScrollComp.TEMPLATE = \"
\\n
\\n
\\n
\\n
\";\n __decorate$e([\n PostConstruct\n ], FakeVScrollComp.prototype, \"postConstruct\", null);\n return FakeVScrollComp;\n}(AbstractFakeScrollComp));\n\nvar __extends$e = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __decorate$d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$4 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$3 = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar MONTH_LOCALE_TEXT = {\n january: 'January',\n february: 'February',\n march: 'March',\n april: 'April',\n may: 'May',\n june: 'June',\n july: 'July',\n august: 'August',\n september: 'September',\n october: 'October',\n november: 'November',\n december: 'December'\n};\nvar MONTH_KEYS = ['january', 'february', 'march', 'april', 'may', 'june', 'july', 'august', 'september', 'october', 'november', 'december'];\nvar DataTypeService = /** @class */ (function (_super) {\n __extends$e(DataTypeService, _super);\n function DataTypeService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.dataTypeDefinitions = {};\n _this.isWaitingForRowData = false;\n _this.isColumnTypeOverrideInDataTypeDefinitions = false;\n // keep track of any column state updates whilst waiting for data types to be inferred\n _this.columnStateUpdatesPendingInference = {};\n _this.columnStateUpdateListenerDestroyFuncs = [];\n return _this;\n }\n DataTypeService.prototype.init = function () {\n var _this = this;\n this.groupHideOpenParents = this.gridOptionsService.is('groupHideOpenParents');\n this.addManagedPropertyListener('groupHideOpenParents', function () {\n _this.groupHideOpenParents = _this.gridOptionsService.is('groupHideOpenParents');\n });\n this.processDataTypeDefinitions();\n this.addManagedPropertyListener('dataTypeDefinitions', function () {\n _this.processDataTypeDefinitions();\n _this.columnModel.recreateColumnDefs('gridOptionsChanged');\n });\n };\n DataTypeService.prototype.processDataTypeDefinitions = function () {\n var _this = this;\n var _a;\n var defaultDataTypes = this.getDefaultDataTypes();\n this.dataTypeDefinitions = {};\n Object.entries(defaultDataTypes).forEach(function (_a) {\n var _b = __read$4(_a, 2), cellDataType = _b[0], dataTypeDefinition = _b[1];\n _this.dataTypeDefinitions[cellDataType] = __assign(__assign({}, dataTypeDefinition), { groupSafeValueFormatter: _this.createGroupSafeValueFormatter(dataTypeDefinition) });\n });\n var dataTypeDefinitions = (_a = this.gridOptionsService.get('dataTypeDefinitions')) !== null && _a !== void 0 ? _a : {};\n this.dataTypeMatchers = {};\n Object.entries(dataTypeDefinitions).forEach(function (_a) {\n var _b = __read$4(_a, 2), cellDataType = _b[0], dataTypeDefinition = _b[1];\n var mergedDataTypeDefinition = _this.processDataTypeDefinition(dataTypeDefinition, dataTypeDefinitions, [cellDataType], defaultDataTypes);\n if (mergedDataTypeDefinition) {\n _this.dataTypeDefinitions[cellDataType] = mergedDataTypeDefinition;\n if (dataTypeDefinition.dataTypeMatcher) {\n _this.dataTypeMatchers[cellDataType] = dataTypeDefinition.dataTypeMatcher;\n }\n }\n });\n this.checkObjectValueHandlers(defaultDataTypes);\n ['dateString', 'text', 'number', 'boolean', 'date'].forEach(function (cellDataType) {\n var overriddenDataTypeMatcher = _this.dataTypeMatchers[cellDataType];\n if (overriddenDataTypeMatcher) {\n // remove to maintain correct ordering\n delete _this.dataTypeMatchers[cellDataType];\n }\n _this.dataTypeMatchers[cellDataType] = overriddenDataTypeMatcher !== null && overriddenDataTypeMatcher !== void 0 ? overriddenDataTypeMatcher : defaultDataTypes[cellDataType].dataTypeMatcher;\n });\n };\n DataTypeService.prototype.mergeDataTypeDefinitions = function (parentDataTypeDefinition, childDataTypeDefinition) {\n var mergedDataTypeDefinition = __assign(__assign({}, parentDataTypeDefinition), childDataTypeDefinition);\n if (parentDataTypeDefinition.columnTypes &&\n childDataTypeDefinition.columnTypes &&\n childDataTypeDefinition.appendColumnTypes) {\n mergedDataTypeDefinition.columnTypes = __spreadArray$3(__spreadArray$3([], __read$4(this.convertColumnTypes(parentDataTypeDefinition.columnTypes))), __read$4(this.convertColumnTypes(childDataTypeDefinition.columnTypes)));\n }\n return mergedDataTypeDefinition;\n };\n DataTypeService.prototype.processDataTypeDefinition = function (dataTypeDefinition, dataTypeDefinitions, alreadyProcessedDataTypes, defaultDataTypes) {\n var mergedDataTypeDefinition;\n var extendsCellDataType = dataTypeDefinition.extendsDataType;\n if (dataTypeDefinition.columnTypes) {\n this.isColumnTypeOverrideInDataTypeDefinitions = true;\n }\n if (dataTypeDefinition.extendsDataType === dataTypeDefinition.baseDataType) {\n var baseDataTypeDefinition = defaultDataTypes[extendsCellDataType];\n if (!this.validateDataTypeDefinition(dataTypeDefinition, baseDataTypeDefinition, extendsCellDataType)) {\n return undefined;\n }\n mergedDataTypeDefinition = this.mergeDataTypeDefinitions(baseDataTypeDefinition, dataTypeDefinition);\n }\n else {\n if (alreadyProcessedDataTypes.includes(extendsCellDataType)) {\n doOnce(function () { return console.warn('AG Grid: Data type definition hierarchies (via the \"extendsDataType\" property) cannot contain circular references.'); }, 'dataTypeExtendsCircularRef');\n return undefined;\n }\n var extendedDataTypeDefinition = dataTypeDefinitions[extendsCellDataType];\n if (!this.validateDataTypeDefinition(dataTypeDefinition, extendedDataTypeDefinition, extendsCellDataType)) {\n return undefined;\n }\n var mergedExtendedDataTypeDefinition = this.processDataTypeDefinition(extendedDataTypeDefinition, dataTypeDefinitions, __spreadArray$3(__spreadArray$3([], __read$4(alreadyProcessedDataTypes)), [extendsCellDataType]), defaultDataTypes);\n if (!mergedExtendedDataTypeDefinition) {\n return undefined;\n }\n mergedDataTypeDefinition = this.mergeDataTypeDefinitions(mergedExtendedDataTypeDefinition, dataTypeDefinition);\n }\n return __assign(__assign({}, mergedDataTypeDefinition), { groupSafeValueFormatter: this.createGroupSafeValueFormatter(mergedDataTypeDefinition) });\n };\n DataTypeService.prototype.validateDataTypeDefinition = function (dataTypeDefinition, parentDataTypeDefinition, parentCellDataType) {\n if (!parentDataTypeDefinition) {\n doOnce(function () { return console.warn(\"AG Grid: The data type definition \" + parentCellDataType + \" does not exist.\"); }, 'dataTypeDefMissing' + parentCellDataType);\n return false;\n }\n if (parentDataTypeDefinition.baseDataType !== dataTypeDefinition.baseDataType) {\n doOnce(function () { return console.warn('AG Grid: The \"baseDataType\" property of a data type definition must match that of its parent.'); }, 'dataTypeBaseTypesMatch');\n return false;\n }\n return true;\n };\n DataTypeService.prototype.createGroupSafeValueFormatter = function (dataTypeDefinition) {\n var _this = this;\n if (!dataTypeDefinition.valueFormatter) {\n return undefined;\n }\n return function (params) {\n var _a, _b;\n if ((_a = params.node) === null || _a === void 0 ? void 0 : _a.group) {\n var aggFunc = params.column.getAggFunc();\n if (aggFunc) {\n // the resulting type of these will be the same, so we call valueFormatter anyway\n if (aggFunc === 'first' || aggFunc === 'last') {\n return dataTypeDefinition.valueFormatter(params);\n }\n if (dataTypeDefinition.baseDataType === 'number' && aggFunc !== 'count') {\n if (typeof params.value === 'number') {\n return dataTypeDefinition.valueFormatter(params);\n }\n if (typeof params.value === 'object') {\n if (!params.value) {\n return undefined;\n }\n if ('toNumber' in params.value) {\n return dataTypeDefinition.valueFormatter(__assign(__assign({}, params), { value: params.value.toNumber() }));\n }\n if ('value' in params.value) {\n return dataTypeDefinition.valueFormatter(__assign(__assign({}, params), { value: params.value.value }));\n }\n }\n }\n }\n return undefined;\n }\n else if (_this.groupHideOpenParents && params.column.isRowGroupActive()) {\n // `groupHideOpenParents` passes leaf values in the group column, so need to format still.\n // If it's not a string, we know it hasn't been formatted. Otherwise check the data type matcher.\n if (typeof params.value !== 'string' || ((_b = dataTypeDefinition.dataTypeMatcher) === null || _b === void 0 ? void 0 : _b.call(dataTypeDefinition, params.value))) {\n return dataTypeDefinition.valueFormatter(params);\n }\n return undefined;\n }\n return dataTypeDefinition.valueFormatter(params);\n };\n };\n DataTypeService.prototype.updateColDefAndGetDataTypeDefinitionColumnType = function (colDef, userColDef, colId) {\n var cellDataType = userColDef.cellDataType;\n var field = userColDef.field;\n if (cellDataType === undefined) {\n cellDataType = colDef.cellDataType;\n }\n if ((cellDataType == null || cellDataType === true)) {\n cellDataType = this.canInferCellDataType(colDef, userColDef) ? this.inferCellDataType(field, colId) : false;\n }\n if (!cellDataType) {\n colDef.cellDataType = false;\n return undefined;\n }\n var dataTypeDefinition = this.dataTypeDefinitions[cellDataType];\n if (!dataTypeDefinition) {\n doOnce(function () { return console.warn(\"AG Grid: Missing data type definition - \\\"\" + cellDataType + \"\\\"\"); }, 'dataTypeMissing' + cellDataType);\n return undefined;\n }\n colDef.cellDataType = cellDataType;\n if (dataTypeDefinition.groupSafeValueFormatter) {\n colDef.valueFormatter = dataTypeDefinition.groupSafeValueFormatter;\n }\n if (dataTypeDefinition.valueParser) {\n colDef.valueParser = dataTypeDefinition.valueParser;\n }\n if (!dataTypeDefinition.suppressDefaultProperties) {\n this.setColDefPropertiesForBaseDataType(colDef, dataTypeDefinition, colId);\n }\n return dataTypeDefinition.columnTypes;\n };\n DataTypeService.prototype.updateColDefAndGetColumnType = function (colDef, userColDef, colId) {\n var _a, _b;\n var dataTypeDefinitionColumnType = this.updateColDefAndGetDataTypeDefinitionColumnType(colDef, userColDef, colId);\n var columnTypes = (_b = (_a = userColDef.type) !== null && _a !== void 0 ? _a : dataTypeDefinitionColumnType) !== null && _b !== void 0 ? _b : colDef.type;\n colDef.type = columnTypes;\n return columnTypes ? this.convertColumnTypes(columnTypes) : undefined;\n };\n DataTypeService.prototype.addColumnListeners = function (column) {\n if (!this.isWaitingForRowData) {\n return;\n }\n var columnStateUpdates = this.columnStateUpdatesPendingInference[column.getColId()];\n if (!columnStateUpdates) {\n return;\n }\n var columnListener = function (event) {\n columnStateUpdates.add(event.key);\n };\n column.addEventListener(Column.EVENT_STATE_UPDATED, columnListener);\n this.columnStateUpdateListenerDestroyFuncs.push(function () { return column.removeEventListener(Column.EVENT_STATE_UPDATED, columnListener); });\n };\n DataTypeService.prototype.canInferCellDataType = function (colDef, userColDef) {\n var _this = this;\n var _a;\n if (this.rowModel.getType() !== 'clientSide') {\n return false;\n }\n var propsToCheckForInference = { cellRenderer: true, valueGetter: true, valueParser: true, refData: true };\n if (this.doColDefPropsPreventInference(userColDef, propsToCheckForInference)) {\n return false;\n }\n var columnTypes = userColDef.type === null ? colDef.type : userColDef.type;\n if (columnTypes) {\n var columnTypeDefs_1 = (_a = this.gridOptionsService.get('columnTypes')) !== null && _a !== void 0 ? _a : {};\n var hasPropsPreventingInference = this.convertColumnTypes(columnTypes).some(function (columnType) {\n var columnTypeDef = columnTypeDefs_1[columnType.trim()];\n return columnTypeDef && _this.doColDefPropsPreventInference(columnTypeDef, propsToCheckForInference);\n });\n if (hasPropsPreventingInference) {\n return false;\n }\n }\n return !this.doColDefPropsPreventInference(colDef, propsToCheckForInference);\n };\n DataTypeService.prototype.doColDefPropsPreventInference = function (colDef, propsToCheckForInference) {\n var _this = this;\n return [\n ['cellRenderer', 'agSparklineCellRenderer'], ['valueGetter', undefined], ['valueParser', undefined], ['refData', undefined]\n ].some(function (_a) {\n var _b = __read$4(_a, 2), prop = _b[0], comparisonValue = _b[1];\n return _this.doesColDefPropPreventInference(colDef, propsToCheckForInference, prop, comparisonValue);\n });\n };\n DataTypeService.prototype.doesColDefPropPreventInference = function (colDef, checkProps, prop, comparisonValue) {\n if (!checkProps[prop]) {\n return false;\n }\n var value = colDef[prop];\n if (value === null) {\n checkProps[prop] = false;\n return false;\n }\n else {\n return comparisonValue === undefined ? !!value : value === comparisonValue;\n }\n };\n DataTypeService.prototype.inferCellDataType = function (field, colId) {\n var _a;\n if (!field) {\n return undefined;\n }\n var value;\n var initialData = this.getInitialData();\n if (initialData) {\n var fieldContainsDots = field.indexOf('.') >= 0 && !this.gridOptionsService.is('suppressFieldDotNotation');\n value = getValueUsingField(initialData, field, fieldContainsDots);\n }\n else {\n this.initWaitForRowData(colId);\n }\n if (value == null) {\n return undefined;\n }\n var _b = __read$4((_a = Object.entries(this.dataTypeMatchers).find(function (_a) {\n var _b = __read$4(_a, 2); _b[0]; var dataTypeMatcher = _b[1];\n return dataTypeMatcher(value);\n })) !== null && _a !== void 0 ? _a : ['object'], 1), cellDataType = _b[0];\n return cellDataType;\n };\n DataTypeService.prototype.getInitialData = function () {\n var rowData = this.gridOptionsService.get('rowData');\n if (rowData === null || rowData === void 0 ? void 0 : rowData.length) {\n return rowData[0];\n }\n else if (this.initialData) {\n return this.initialData;\n }\n else {\n var rowNodes = this.rowModel\n .getRootNode()\n .allLeafChildren;\n if (rowNodes === null || rowNodes === void 0 ? void 0 : rowNodes.length) {\n return rowNodes[0].data;\n }\n }\n return null;\n };\n DataTypeService.prototype.initWaitForRowData = function (colId) {\n var _this = this;\n this.columnStateUpdatesPendingInference[colId] = new Set();\n if (this.isWaitingForRowData) {\n return;\n }\n this.isWaitingForRowData = true;\n var columnTypeOverridesExist = this.isColumnTypeOverrideInDataTypeDefinitions;\n if (columnTypeOverridesExist) {\n this.columnModel.queueResizeOperations();\n }\n var destroyFunc = this.addManagedListener(this.eventService, Events.EVENT_ROW_DATA_UPDATE_STARTED, function (event) {\n var firstRowData = event.firstRowData;\n if (!firstRowData) {\n return;\n }\n destroyFunc === null || destroyFunc === void 0 ? void 0 : destroyFunc();\n _this.isWaitingForRowData = false;\n _this.processColumnsPendingInference(firstRowData, columnTypeOverridesExist);\n _this.columnStateUpdatesPendingInference = {};\n if (columnTypeOverridesExist) {\n _this.columnModel.processResizeOperations();\n }\n var dataTypesInferredEvent = {\n type: Events.EVENT_DATA_TYPES_INFERRED\n };\n _this.eventService.dispatchEvent(dataTypesInferredEvent);\n });\n };\n DataTypeService.prototype.isPendingInference = function () {\n return this.isWaitingForRowData;\n };\n DataTypeService.prototype.processColumnsPendingInference = function (firstRowData, columnTypeOverridesExist) {\n var _this = this;\n this.initialData = firstRowData;\n var state = [];\n this.columnStateUpdateListenerDestroyFuncs.forEach(function (destroyFunc) { return destroyFunc(); });\n this.columnStateUpdateListenerDestroyFuncs = [];\n var newRowGroupColumnStateWithoutIndex = {};\n var newPivotColumnStateWithoutIndex = {};\n Object.entries(this.columnStateUpdatesPendingInference).forEach(function (_a) {\n var _b = __read$4(_a, 2), colId = _b[0], columnStateUpdates = _b[1];\n var column = _this.columnModel.getGridColumn(colId);\n if (!column) {\n return;\n }\n var oldColDef = column.getColDef();\n if (!_this.columnModel.resetColumnDefIntoColumn(column)) {\n return;\n }\n var newColDef = column.getColDef();\n if (columnTypeOverridesExist && newColDef.type && newColDef.type !== oldColDef.type) {\n var updatedColumnState = _this.getUpdatedColumnState(column, columnStateUpdates);\n if (updatedColumnState.rowGroup && updatedColumnState.rowGroupIndex == null) {\n newRowGroupColumnStateWithoutIndex[colId] = updatedColumnState;\n }\n if (updatedColumnState.pivot && updatedColumnState.pivotIndex == null) {\n newPivotColumnStateWithoutIndex[colId] = updatedColumnState;\n }\n state.push(updatedColumnState);\n }\n });\n if (columnTypeOverridesExist) {\n state.push.apply(state, __spreadArray$3([], __read$4(this.columnModel.generateColumnStateForRowGroupAndPivotIndexes(newRowGroupColumnStateWithoutIndex, newPivotColumnStateWithoutIndex))));\n }\n if (state.length) {\n this.columnModel.applyColumnState({ state: state }, 'cellDataTypeInferred');\n }\n this.initialData = null;\n };\n DataTypeService.prototype.getUpdatedColumnState = function (column, columnStateUpdates) {\n var columnState = this.columnModel.getColumnStateFromColDef(column);\n columnStateUpdates.forEach(function (key) {\n // if the column state has been updated, don't update again\n delete columnState[key];\n if (key === 'rowGroup') {\n delete columnState.rowGroupIndex;\n }\n else if (key === 'pivot') {\n delete columnState.pivotIndex;\n }\n });\n return columnState;\n };\n DataTypeService.prototype.checkObjectValueHandlers = function (defaultDataTypes) {\n var resolvedObjectDataTypeDefinition = this.dataTypeDefinitions.object;\n var defaultObjectDataTypeDefinition = defaultDataTypes.object;\n this.hasObjectValueParser = resolvedObjectDataTypeDefinition.valueParser !== defaultObjectDataTypeDefinition.valueParser;\n this.hasObjectValueFormatter = resolvedObjectDataTypeDefinition.valueFormatter !== defaultObjectDataTypeDefinition.valueFormatter;\n };\n DataTypeService.prototype.convertColumnTypes = function (type) {\n var typeKeys = [];\n if (type instanceof Array) {\n var invalidArray = type.some(function (a) { return typeof a !== 'string'; });\n if (invalidArray) {\n console.warn(\"AG Grid: if colDef.type is supplied an array it should be of type 'string[]'\");\n }\n else {\n typeKeys = type;\n }\n }\n else if (typeof type === 'string') {\n typeKeys = type.split(',');\n }\n else {\n console.warn(\"AG Grid: colDef.type should be of type 'string' | 'string[]'\");\n }\n return typeKeys;\n };\n DataTypeService.prototype.getDateStringTypeDefinition = function () {\n return this.dataTypeDefinitions.dateString;\n };\n DataTypeService.prototype.getDateParserFunction = function () {\n return this.getDateStringTypeDefinition().dateParser;\n };\n DataTypeService.prototype.getDateFormatterFunction = function () {\n return this.getDateStringTypeDefinition().dateFormatter;\n };\n DataTypeService.prototype.getDataTypeDefinition = function (column) {\n var colDef = column.getColDef();\n if (!colDef.cellDataType) {\n return undefined;\n }\n return this.dataTypeDefinitions[colDef.cellDataType];\n };\n DataTypeService.prototype.getBaseDataType = function (column) {\n var _a;\n return (_a = this.getDataTypeDefinition(column)) === null || _a === void 0 ? void 0 : _a.baseDataType;\n };\n DataTypeService.prototype.checkType = function (column, value) {\n var _a;\n if (value == null) {\n return true;\n }\n var dataTypeMatcher = (_a = this.getDataTypeDefinition(column)) === null || _a === void 0 ? void 0 : _a.dataTypeMatcher;\n if (!dataTypeMatcher) {\n return true;\n }\n return dataTypeMatcher(value);\n };\n DataTypeService.prototype.validateColDef = function (colDef) {\n if (colDef.cellDataType === 'object') {\n if (colDef.valueFormatter === this.dataTypeDefinitions.object.groupSafeValueFormatter && !this.hasObjectValueFormatter) {\n doOnce(function () { return console.warn('AG Grid: Cell data type is \"object\" but no value formatter has been provided. Please either provide an object data type definition with a value formatter, or set \"colDef.valueFormatter\"'); }, 'dataTypeObjectValueFormatter');\n }\n if (colDef.editable && colDef.valueParser === this.dataTypeDefinitions.object.valueParser && !this.hasObjectValueParser) {\n doOnce(function () { return console.warn('AG Grid: Cell data type is \"object\" but no value parser has been provided. Please either provide an object data type definition with a value parser, or set \"colDef.valueParser\"'); }, 'dataTypeObjectValueParser');\n }\n }\n };\n DataTypeService.prototype.setColDefPropertiesForBaseDataType = function (colDef, dataTypeDefinition, colId) {\n var _this = this;\n var formatValue = function (column, node, value) {\n var valueFormatter = column.getColDef().valueFormatter;\n if (valueFormatter === dataTypeDefinition.groupSafeValueFormatter) {\n valueFormatter = dataTypeDefinition.valueFormatter;\n }\n return _this.valueFormatterService.formatValue(column, node, value, valueFormatter);\n };\n var usingSetFilter = ModuleRegistry.__isRegistered(ModuleNames.SetFilterModule, this.context.getGridId());\n var translate = this.localeService.getLocaleTextFunc();\n var mergeFilterParams = function (params) {\n var filterParams = colDef.filterParams;\n colDef.filterParams = typeof filterParams === 'object' ? __assign(__assign({}, filterParams), params) : params;\n };\n colDef.useValueFormatterForExport = true;\n colDef.useValueParserForImport = true;\n switch (dataTypeDefinition.baseDataType) {\n case 'number': {\n colDef.cellEditor = 'agNumberCellEditor';\n if (usingSetFilter) {\n mergeFilterParams({\n comparator: function (a, b) {\n var valA = a == null ? 0 : parseInt(a);\n var valB = b == null ? 0 : parseInt(b);\n if (valA === valB)\n return 0;\n return valA > valB ? 1 : -1;\n },\n });\n }\n break;\n }\n case 'boolean': {\n colDef.cellEditor = 'agCheckboxCellEditor';\n colDef.cellRenderer = 'agCheckboxCellRenderer';\n colDef.suppressKeyboardEvent = function (params) { return !!params.colDef.editable && params.event.key === KeyCode.SPACE; };\n if (usingSetFilter) {\n mergeFilterParams({\n valueFormatter: function (params) {\n if (!exists(params.value)) {\n return translate('blanks', '(Blanks)');\n }\n return translate(String(params.value), params.value ? 'True' : 'False');\n }\n });\n }\n else {\n mergeFilterParams({\n maxNumConditions: 1,\n filterOptions: [\n 'empty',\n {\n displayKey: 'true',\n displayName: 'True',\n predicate: function (_filterValues, cellValue) { return cellValue; },\n numberOfInputs: 0,\n },\n {\n displayKey: 'false',\n displayName: 'False',\n predicate: function (_filterValues, cellValue) { return cellValue === false; },\n numberOfInputs: 0,\n },\n ]\n });\n }\n break;\n }\n case 'date': {\n colDef.cellEditor = 'agDateCellEditor';\n colDef.keyCreator = function (params) { return formatValue(params.column, params.node, params.value); };\n if (usingSetFilter) {\n mergeFilterParams({\n valueFormatter: function (params) {\n var valueFormatted = formatValue(params.column, params.node, params.value);\n return exists(valueFormatted) ? valueFormatted : translate('blanks', '(Blanks)');\n },\n treeList: true,\n treeListFormatter: function (pathKey, level) {\n if (level === 1 && pathKey != null) {\n var monthKey = MONTH_KEYS[Number(pathKey) - 1];\n return translate(monthKey, MONTH_LOCALE_TEXT[monthKey]);\n }\n return pathKey !== null && pathKey !== void 0 ? pathKey : translate('blanks', '(Blanks)');\n }\n });\n }\n break;\n }\n case 'dateString': {\n colDef.cellEditor = 'agDateStringCellEditor';\n colDef.keyCreator = function (params) { return formatValue(params.column, params.node, params.value); };\n var convertToDate_1 = this.getDateParserFunction();\n if (usingSetFilter) {\n mergeFilterParams({\n valueFormatter: function (params) {\n var valueFormatted = formatValue(params.column, params.node, params.value);\n return exists(valueFormatted) ? valueFormatted : translate('blanks', '(Blanks)');\n },\n treeList: true,\n treeListPathGetter: function (value) {\n var date = convertToDate_1(value !== null && value !== void 0 ? value : undefined);\n return date ? [String(date.getFullYear()), String(date.getMonth() + 1), String(date.getDate())] : null;\n },\n treeListFormatter: function (pathKey, level) {\n if (level === 1 && pathKey != null) {\n var monthKey = MONTH_KEYS[Number(pathKey) - 1];\n return translate(monthKey, MONTH_LOCALE_TEXT[monthKey]);\n }\n return pathKey !== null && pathKey !== void 0 ? pathKey : translate('blanks', '(Blanks)');\n }\n });\n }\n else {\n mergeFilterParams({\n comparator: function (filterDate, cellValue) {\n var cellAsDate = convertToDate_1(cellValue);\n if (cellValue == null || cellAsDate < filterDate) {\n return -1;\n }\n if (cellAsDate > filterDate) {\n return 1;\n }\n return 0;\n }\n });\n }\n break;\n }\n case 'object': {\n colDef.cellEditorParams = {\n useFormatter: true,\n };\n colDef.comparator = function (a, b) {\n var column = _this.columnModel.getPrimaryColumn(colId);\n var colDef = column === null || column === void 0 ? void 0 : column.getColDef();\n if (!column || !colDef) {\n return 0;\n }\n var valA = a == null ? '' : formatValue(column, null, a);\n var valB = b == null ? '' : formatValue(column, null, b);\n if (valA === valB)\n return 0;\n return valA > valB ? 1 : -1;\n };\n colDef.keyCreator = function (params) { return formatValue(params.column, params.node, params.value); };\n if (usingSetFilter) {\n mergeFilterParams({\n valueFormatter: function (params) {\n var valueFormatted = formatValue(params.column, params.node, params.value);\n return exists(valueFormatted) ? valueFormatted : translate('blanks', '(Blanks)');\n }\n });\n }\n else {\n colDef.filterValueGetter = function (params) { return formatValue(params.column, params.node, _this.valueService.getValue(params.column, params.node)); };\n }\n break;\n }\n }\n };\n DataTypeService.prototype.getDefaultDataTypes = function () {\n var defaultDateFormatMatcher = function (value) { return !!value.match('^\\\\d{4}-\\\\d{2}-\\\\d{2}$'); };\n var translate = this.localeService.getLocaleTextFunc();\n return {\n number: {\n baseDataType: 'number',\n valueParser: function (params) { return params.newValue === '' ? null : Number(params.newValue); },\n valueFormatter: function (params) {\n if (params.value == null) {\n return '';\n }\n if (typeof params.value !== 'number' || isNaN(params.value)) {\n return translate('invalidNumber', 'Invalid Number');\n }\n return String(params.value);\n },\n dataTypeMatcher: function (value) { return typeof value === 'number'; },\n },\n text: {\n baseDataType: 'text',\n valueParser: function (params) { return params.newValue === '' ? null : toStringOrNull(params.newValue); },\n dataTypeMatcher: function (value) { return typeof value === 'string'; },\n },\n boolean: {\n baseDataType: 'boolean',\n valueParser: function (params) { return params.newValue === '' ? null : String(params.newValue).toLowerCase() === 'true'; },\n valueFormatter: function (params) { return params.value == null ? '' : String(params.value); },\n dataTypeMatcher: function (value) { return typeof value === 'boolean'; },\n },\n date: {\n baseDataType: 'date',\n valueParser: function (params) { return parseDateTimeFromString(params.newValue == null ? null : String(params.newValue)); },\n valueFormatter: function (params) {\n var _a;\n if (params.value == null) {\n return '';\n }\n if (!(params.value instanceof Date) || isNaN(params.value.getTime())) {\n return translate('invalidDate', 'Invalid Date');\n }\n return (_a = serialiseDate(params.value, false)) !== null && _a !== void 0 ? _a : '';\n },\n dataTypeMatcher: function (value) { return value instanceof Date; },\n },\n dateString: {\n baseDataType: 'dateString',\n dateParser: function (value) { var _a; return (_a = parseDateTimeFromString(value)) !== null && _a !== void 0 ? _a : undefined; },\n dateFormatter: function (value) { var _a; return (_a = serialiseDate(value !== null && value !== void 0 ? value : null, false)) !== null && _a !== void 0 ? _a : undefined; },\n valueParser: function (params) { return defaultDateFormatMatcher(String(params.newValue)) ? params.newValue : null; },\n valueFormatter: function (params) { return defaultDateFormatMatcher(String(params.value)) ? params.value : ''; },\n dataTypeMatcher: function (value) { return typeof value === 'string' && defaultDateFormatMatcher(value); },\n },\n object: {\n baseDataType: 'object',\n valueParser: function () { return null; },\n valueFormatter: function (params) { var _a; return (_a = toStringOrNull(params.value)) !== null && _a !== void 0 ? _a : ''; },\n }\n };\n };\n __decorate$d([\n Autowired('rowModel')\n ], DataTypeService.prototype, \"rowModel\", void 0);\n __decorate$d([\n Autowired('columnModel')\n ], DataTypeService.prototype, \"columnModel\", void 0);\n __decorate$d([\n Autowired('columnUtils')\n ], DataTypeService.prototype, \"columnUtils\", void 0);\n __decorate$d([\n Autowired('valueService')\n ], DataTypeService.prototype, \"valueService\", void 0);\n __decorate$d([\n Autowired('valueFormatterService')\n ], DataTypeService.prototype, \"valueFormatterService\", void 0);\n __decorate$d([\n PostConstruct\n ], DataTypeService.prototype, \"init\", null);\n DataTypeService = __decorate$d([\n Bean('dataTypeService')\n ], DataTypeService);\n return DataTypeService;\n}(BeanStub));\n\nvar __extends$d = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ValueParserService = /** @class */ (function (_super) {\n __extends$d(ValueParserService, _super);\n function ValueParserService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ValueParserService.prototype.parseValue = function (column, rowNode, newValue, oldValue) {\n var colDef = column.getColDef();\n var params = {\n node: rowNode,\n data: rowNode === null || rowNode === void 0 ? void 0 : rowNode.data,\n oldValue: oldValue,\n newValue: newValue,\n colDef: colDef,\n column: column,\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context\n };\n var valueParser = colDef.valueParser;\n if (exists(valueParser)) {\n if (typeof valueParser === 'function') {\n return valueParser(params);\n }\n return this.expressionService.evaluate(valueParser, params);\n }\n return newValue;\n };\n __decorate$c([\n Autowired('expressionService')\n ], ValueParserService.prototype, \"expressionService\", void 0);\n ValueParserService = __decorate$c([\n Bean('valueParserService')\n ], ValueParserService);\n return ValueParserService;\n}(BeanStub));\n\nvar __read$3 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$2 = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\n// creates JavaScript vanilla Grid, including JavaScript (ag-stack) components, which can\n// be wrapped by the framework wrappers\nvar Grid = /** @class */ (function () {\n function Grid(eGridDiv, gridOptions, params) {\n if (!gridOptions) {\n console.error('AG Grid: no gridOptions provided to the grid');\n return;\n }\n this.gridOptions = gridOptions;\n new GridCoreCreator().create(eGridDiv, gridOptions, function (context) {\n var gridComp = new GridComp(eGridDiv);\n context.createBean(gridComp);\n }, undefined, params);\n }\n Grid.prototype.destroy = function () {\n if (this.gridOptions && this.gridOptions.api) {\n this.gridOptions.api.destroy();\n }\n };\n return Grid;\n}());\nvar nextGridId = 1;\n// creates services of grid only, no UI, so frameworks can use this if providing\n// their own UI\nvar GridCoreCreator = /** @class */ (function () {\n function GridCoreCreator() {\n }\n GridCoreCreator.prototype.create = function (eGridDiv, gridOptions, createUi, acceptChanges, params) {\n var _this = this;\n var _a;\n var debug = !!gridOptions.debug;\n var gridId = (_a = gridOptions.gridId) !== null && _a !== void 0 ? _a : String(nextGridId++);\n var registeredModules = this.getRegisteredModules(params, gridId);\n var beanClasses = this.createBeansList(gridOptions.rowModelType, registeredModules, gridId);\n var providedBeanInstances = this.createProvidedBeans(eGridDiv, gridOptions, params);\n if (!beanClasses) {\n return;\n } // happens when no row model found\n var contextParams = {\n providedBeanInstances: providedBeanInstances,\n beanClasses: beanClasses,\n debug: debug,\n gridId: gridId,\n };\n var logger = new Logger('AG Grid', function () { return gridOptions.debug; });\n var contextLogger = new Logger('Context', function () { return contextParams.debug; });\n var context = new Context(contextParams, contextLogger);\n var beans = context.getBean('beans');\n this.registerModuleUserComponents(beans, registeredModules);\n this.registerStackComponents(beans, registeredModules);\n this.registerControllers(beans, registeredModules);\n createUi(context);\n // we wait until the UI has finished initialising before setting in columns and rows\n beans.ctrlsService.whenReady(function () {\n _this.setColumnsAndData(beans);\n _this.dispatchGridReadyEvent(beans);\n var isEnterprise = ModuleRegistry.__isRegistered(ModuleNames.EnterpriseCoreModule, gridId);\n logger.log(\"initialised successfully, enterprise = \" + isEnterprise);\n });\n if (acceptChanges) {\n acceptChanges(context);\n }\n };\n GridCoreCreator.prototype.registerControllers = function (beans, registeredModules) {\n registeredModules.forEach(function (module) {\n if (module.controllers) {\n module.controllers.forEach(function (meta) { return beans.ctrlsFactory.register(meta); });\n }\n });\n };\n GridCoreCreator.prototype.registerStackComponents = function (beans, registeredModules) {\n var agStackComponents = this.createAgStackComponentsList(registeredModules);\n beans.agStackComponentsRegistry.setupComponents(agStackComponents);\n };\n GridCoreCreator.prototype.getRegisteredModules = function (params, gridId) {\n var passedViaConstructor = params ? params.modules : null;\n var registered = ModuleRegistry.__getRegisteredModules(gridId);\n var allModules = [];\n var mapNames = {};\n // adds to list and removes duplicates\n var addModule = function (moduleBased, mod, gridId) {\n var addIndividualModule = function (currentModule) {\n if (!mapNames[currentModule.moduleName]) {\n mapNames[currentModule.moduleName] = true;\n allModules.push(currentModule);\n ModuleRegistry.__register(currentModule, moduleBased, gridId);\n }\n };\n addIndividualModule(mod);\n if (mod.dependantModules) {\n mod.dependantModules.forEach(function (m) { return addModule(moduleBased, m, gridId); });\n }\n };\n if (passedViaConstructor) {\n passedViaConstructor.forEach(function (m) { return addModule(true, m, gridId); });\n }\n if (registered) {\n registered.forEach(function (m) { return addModule(!ModuleRegistry.__isPackageBased(), m, undefined); });\n }\n return allModules;\n };\n GridCoreCreator.prototype.registerModuleUserComponents = function (beans, registeredModules) {\n var moduleUserComps = this.extractModuleEntity(registeredModules, function (module) { return module.userComponents ? module.userComponents : []; });\n moduleUserComps.forEach(function (compMeta) {\n beans.userComponentRegistry.registerDefaultComponent(compMeta.componentName, compMeta.componentClass);\n });\n };\n GridCoreCreator.prototype.createProvidedBeans = function (eGridDiv, gridOptions, params) {\n var frameworkOverrides = params ? params.frameworkOverrides : null;\n if (missing(frameworkOverrides)) {\n frameworkOverrides = new VanillaFrameworkOverrides();\n }\n var seed = {\n gridOptions: gridOptions,\n eGridDiv: eGridDiv,\n globalEventListener: params ? params.globalEventListener : null,\n globalSyncEventListener: params ? params.globalSyncEventListener : null,\n frameworkOverrides: frameworkOverrides\n };\n if (params && params.providedBeanInstances) {\n Object.assign(seed, params.providedBeanInstances);\n }\n return seed;\n };\n GridCoreCreator.prototype.createAgStackComponentsList = function (registeredModules) {\n var components = [\n { componentName: 'AgCheckbox', componentClass: AgCheckbox },\n { componentName: 'AgRadioButton', componentClass: AgRadioButton },\n { componentName: 'AgToggleButton', componentClass: AgToggleButton },\n { componentName: 'AgInputTextField', componentClass: AgInputTextField },\n { componentName: 'AgInputTextArea', componentClass: AgInputTextArea },\n { componentName: 'AgInputNumberField', componentClass: AgInputNumberField },\n { componentName: 'AgInputDateField', componentClass: AgInputDateField },\n { componentName: 'AgInputRange', componentClass: AgInputRange },\n { componentName: 'AgRichSelect', componentClass: AgRichSelect },\n { componentName: 'AgSelect', componentClass: AgSelect },\n { componentName: 'AgSlider', componentClass: AgSlider },\n { componentName: 'AgGridBody', componentClass: GridBodyComp },\n { componentName: 'AgHeaderRoot', componentClass: GridHeaderComp },\n { componentName: 'AgSortIndicator', componentClass: SortIndicatorComp },\n { componentName: 'AgPagination', componentClass: PaginationComp },\n { componentName: 'AgOverlayWrapper', componentClass: OverlayWrapperComponent },\n { componentName: 'AgGroupComponent', componentClass: AgGroupComponent },\n { componentName: 'AgPanel', componentClass: AgPanel },\n { componentName: 'AgDialog', componentClass: AgDialog },\n { componentName: 'AgRowContainer', componentClass: RowContainerComp },\n { componentName: 'AgFakeHorizontalScroll', componentClass: FakeHScrollComp },\n { componentName: 'AgFakeVerticalScroll', componentClass: FakeVScrollComp },\n { componentName: 'AgAutocomplete', componentClass: AgAutocomplete },\n ];\n var moduleAgStackComps = this.extractModuleEntity(registeredModules, function (module) { return module.agStackComponents ? module.agStackComponents : []; });\n components = components.concat(moduleAgStackComps);\n return components;\n };\n GridCoreCreator.prototype.createBeansList = function (rowModelType, registeredModules, gridId) {\n if (rowModelType === void 0) { rowModelType = 'clientSide'; }\n // only load beans matching the required row model\n var rowModelModules = registeredModules.filter(function (module) { return !module.rowModel || module.rowModel === rowModelType; });\n // assert that the relevant module has been loaded\n var rowModelModuleNames = {\n clientSide: ModuleNames.ClientSideRowModelModule,\n infinite: ModuleNames.InfiniteRowModelModule,\n serverSide: ModuleNames.ServerSideRowModelModule,\n viewport: ModuleNames.ViewportRowModelModule\n };\n if (!rowModelModuleNames[rowModelType]) {\n console.error('AG Grid: could not find row model for rowModelType = ' + rowModelType);\n return;\n }\n if (!ModuleRegistry.__assertRegistered(rowModelModuleNames[rowModelType], \"rowModelType = '\" + rowModelType + \"'\", gridId)) {\n return;\n }\n // beans should only contain SERVICES, it should NEVER contain COMPONENTS\n var beans = [\n Beans, RowPositionUtils, CellPositionUtils, HeaderPositionUtils,\n PaginationAutoPageSizeService, GridApi, UserComponentRegistry, AgComponentUtils,\n ComponentMetadataProvider, ResizeObserverService, UserComponentFactory,\n RowContainerHeightService, HorizontalResizeService, LocaleService, GridOptionsValidator,\n PinnedRowModel, DragService, DisplayedGroupCreator, EventService, GridOptionsService,\n PopupService, SelectionService, FilterManager, ColumnModel, HeaderNavigationService,\n PaginationProxy, RowRenderer, ExpressionService, ColumnFactory, TemplateService,\n AlignedGridsService, NavigationService, ValueCache, ValueService, LoggerFactory,\n ColumnUtils, AutoWidthCalculator, StandardMenuFactory, DragAndDropService, ColumnApi,\n FocusService, MouseEventService, Environment, CellNavigationService, ValueFormatterService,\n StylingService, ScrollVisibleService, SortController, ColumnHoverService, ColumnAnimationService,\n SelectableService, AutoGroupColService, ChangeDetectionService, AnimationFrameService,\n UndoRedoService, AgStackComponentsRegistry, ColumnDefFactory,\n RowCssClassCalculator, RowNodeBlockLoader, RowNodeSorter, CtrlsService,\n PinnedWidthService, RowNodeEventThrottle, CtrlsFactory, DataTypeService, ValueParserService,\n QuickFilterService\n ];\n var moduleBeans = this.extractModuleEntity(rowModelModules, function (module) { return module.beans ? module.beans : []; });\n beans.push.apply(beans, __spreadArray$2([], __read$3(moduleBeans)));\n // check for duplicates, as different modules could include the same beans that\n // they depend on, eg ClientSideRowModel in enterprise, and ClientSideRowModel in community\n var beansNoDuplicates = [];\n beans.forEach(function (bean) {\n if (beansNoDuplicates.indexOf(bean) < 0) {\n beansNoDuplicates.push(bean);\n }\n });\n return beansNoDuplicates;\n };\n GridCoreCreator.prototype.extractModuleEntity = function (moduleEntities, extractor) {\n return [].concat.apply([], __spreadArray$2([], __read$3(moduleEntities.map(extractor))));\n };\n GridCoreCreator.prototype.setColumnsAndData = function (beans) {\n var columnDefs = beans.gridOptionsService.get('columnDefs');\n beans.columnModel.setColumnDefs(columnDefs || [], \"gridInitializing\");\n beans.rowModel.start();\n };\n GridCoreCreator.prototype.dispatchGridReadyEvent = function (beans) {\n var readyEvent = {\n type: Events.EVENT_GRID_READY,\n };\n beans.eventService.dispatchEvent(readyEvent);\n };\n return GridCoreCreator;\n}());\n\nvar BaseComponentWrapper = /** @class */ (function () {\n function BaseComponentWrapper() {\n }\n BaseComponentWrapper.prototype.wrap = function (OriginalConstructor, mandatoryMethodList, optionalMethodList, componentType) {\n var _this = this;\n if (optionalMethodList === void 0) { optionalMethodList = []; }\n var wrapper = this.createWrapper(OriginalConstructor, componentType);\n mandatoryMethodList.forEach((function (methodName) {\n _this.createMethod(wrapper, methodName, true);\n }));\n optionalMethodList.forEach((function (methodName) {\n _this.createMethod(wrapper, methodName, false);\n }));\n return wrapper;\n };\n BaseComponentWrapper.prototype.unwrap = function (comp) {\n return comp;\n };\n BaseComponentWrapper.prototype.createMethod = function (wrapper, methodName, mandatory) {\n wrapper.addMethod(methodName, this.createMethodProxy(wrapper, methodName, mandatory));\n };\n BaseComponentWrapper.prototype.createMethodProxy = function (wrapper, methodName, mandatory) {\n return function () {\n if (wrapper.hasMethod(methodName)) {\n return wrapper.callMethod(methodName, arguments);\n }\n if (mandatory) {\n console.warn('AG Grid: Framework component is missing the method ' + methodName + '()');\n }\n return null;\n };\n };\n return BaseComponentWrapper;\n}());\n\nvar DEFAULT_CHART_GROUPS = {\n columnGroup: [\n 'column',\n 'stackedColumn',\n 'normalizedColumn'\n ],\n barGroup: [\n 'bar',\n 'stackedBar',\n 'normalizedBar'\n ],\n pieGroup: [\n 'pie',\n 'doughnut'\n ],\n lineGroup: [\n 'line'\n ],\n scatterGroup: [\n 'scatter',\n 'bubble'\n ],\n areaGroup: [\n 'area',\n 'stackedArea',\n 'normalizedArea'\n ],\n histogramGroup: [\n 'histogram'\n ],\n combinationGroup: [\n 'columnLineCombo',\n 'areaColumnCombo',\n 'customCombo'\n ]\n};\nvar CHART_TOOL_PANEL_ALLOW_LIST = [\n 'chartSettings',\n 'chartData',\n 'chartFormat'\n];\nvar CHART_TOOLBAR_ALLOW_LIST = [\n 'chartUnlink',\n 'chartLink',\n 'chartDownload'\n];\nvar CHART_TOOL_PANEL_MENU_OPTIONS = {\n settings: \"chartSettings\",\n data: \"chartData\",\n format: \"chartFormat\"\n};\n\n/**\n * Internal Use Only: Used to ensure this file is treated as a module until we can use moduleDetection flag in Ts v4.7\n */\nvar __FORCE_MODULE_DETECTION = 0;\n\nvar BarColumnLabelPlacement;\n(function (BarColumnLabelPlacement) {\n BarColumnLabelPlacement[\"InsideBase\"] = \"insideBase\";\n BarColumnLabelPlacement[\"InsideEnd\"] = \"insideEnd\";\n BarColumnLabelPlacement[\"Center\"] = \"center\";\n BarColumnLabelPlacement[\"OutsideEnd\"] = \"outsideEnd\";\n})(BarColumnLabelPlacement || (BarColumnLabelPlacement = {}));\n\n/**\n * @ag-grid-community/core - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue\n * @version v30.2.0\n * @link https://www.ag-grid.com/\n * @license MIT\n */\nvar globalObj = typeof global === 'undefined' ? {} : global;\nglobalObj.HTMLElement = typeof HTMLElement === 'undefined' ? {} : HTMLElement;\nglobalObj.HTMLButtonElement = typeof HTMLButtonElement === 'undefined' ? {} : HTMLButtonElement;\nglobalObj.HTMLSelectElement = typeof HTMLSelectElement === 'undefined' ? {} : HTMLSelectElement;\nglobalObj.HTMLInputElement = typeof HTMLInputElement === 'undefined' ? {} : HTMLInputElement;\nglobalObj.Node = typeof Node === 'undefined' ? {} : Node;\nglobalObj.MouseEvent = typeof MouseEvent === 'undefined' ? {} : MouseEvent;\n\nvar __read$2 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$1 = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar ClientSideNodeManager = /** @class */ (function () {\n function ClientSideNodeManager(rootNode, gridOptionsService, eventService, columnModel, selectionService, beans) {\n this.nextId = 0;\n // when user is provide the id's, we also keep a map of ids to row nodes for convenience\n this.allNodesMap = {};\n this.rootNode = rootNode;\n this.gridOptionsService = gridOptionsService;\n this.eventService = eventService;\n this.columnModel = columnModel;\n this.beans = beans;\n this.selectionService = selectionService;\n this.rootNode.group = true;\n this.rootNode.level = -1;\n this.rootNode.id = ClientSideNodeManager.ROOT_NODE_ID;\n this.rootNode.allLeafChildren = [];\n this.rootNode.childrenAfterGroup = [];\n this.rootNode.childrenAfterSort = [];\n this.rootNode.childrenAfterAggFilter = [];\n this.rootNode.childrenAfterFilter = [];\n // if we make this class a bean, then can annotate postConstruct\n this.postConstruct();\n }\n // @PostConstruct - this is not a bean, so postConstruct called by constructor\n ClientSideNodeManager.prototype.postConstruct = function () {\n // func below doesn't have 'this' pointer, so need to pull out these bits\n this.suppressParentsInRowNodes = this.gridOptionsService.is('suppressParentsInRowNodes');\n this.isRowMasterFunc = this.gridOptionsService.get('isRowMaster');\n this.doingMasterDetail = this.gridOptionsService.is('masterDetail');\n };\n ClientSideNodeManager.prototype.getCopyOfNodesMap = function () {\n return _.cloneObject(this.allNodesMap);\n };\n ClientSideNodeManager.prototype.getRowNode = function (id) {\n return this.allNodesMap[id];\n };\n ClientSideNodeManager.prototype.setRowData = function (rowData) {\n var _this = this;\n if (typeof rowData === 'string') {\n console.warn('AG Grid: rowData must be an array, however you passed in a string. If you are loading JSON, make sure you convert the JSON string to JavaScript objects first');\n return;\n }\n this.dispatchRowDataUpdateStartedEvent(rowData);\n var rootNode = this.rootNode;\n var sibling = this.rootNode.sibling;\n rootNode.childrenAfterFilter = null;\n rootNode.childrenAfterGroup = null;\n rootNode.childrenAfterAggFilter = null;\n rootNode.childrenAfterSort = null;\n rootNode.childrenMapped = null;\n rootNode.updateHasChildren();\n this.nextId = 0;\n this.allNodesMap = {};\n if (rowData) {\n // we use rootNode as the parent, however if using ag-grid-enterprise, the grouping stage\n // sets the parent node on each row (even if we are not grouping). so setting parent node\n // here is for benefit of ag-grid-community users\n rootNode.allLeafChildren = rowData.map(function (dataItem) { return _this.createNode(dataItem, _this.rootNode, ClientSideNodeManager.TOP_LEVEL); });\n }\n else {\n rootNode.allLeafChildren = [];\n rootNode.childrenAfterGroup = [];\n }\n if (sibling) {\n sibling.childrenAfterFilter = rootNode.childrenAfterFilter;\n sibling.childrenAfterGroup = rootNode.childrenAfterGroup;\n sibling.childrenAfterAggFilter = rootNode.childrenAfterAggFilter;\n sibling.childrenAfterSort = rootNode.childrenAfterSort;\n sibling.childrenMapped = rootNode.childrenMapped;\n sibling.allLeafChildren = rootNode.allLeafChildren;\n }\n };\n ClientSideNodeManager.prototype.updateRowData = function (rowDataTran, rowNodeOrder) {\n this.dispatchRowDataUpdateStartedEvent(rowDataTran.add);\n var rowNodeTransaction = {\n remove: [],\n update: [],\n add: []\n };\n var nodesToUnselect = [];\n this.executeRemove(rowDataTran, rowNodeTransaction, nodesToUnselect);\n this.executeUpdate(rowDataTran, rowNodeTransaction, nodesToUnselect);\n this.executeAdd(rowDataTran, rowNodeTransaction);\n this.updateSelection(nodesToUnselect, 'rowDataChanged');\n if (rowNodeOrder) {\n _.sortRowNodesByOrder(this.rootNode.allLeafChildren, rowNodeOrder);\n }\n return rowNodeTransaction;\n };\n ClientSideNodeManager.prototype.dispatchRowDataUpdateStartedEvent = function (rowData) {\n var event = {\n type: Events.EVENT_ROW_DATA_UPDATE_STARTED,\n firstRowData: (rowData === null || rowData === void 0 ? void 0 : rowData.length) ? rowData[0] : null\n };\n this.eventService.dispatchEvent(event);\n };\n ClientSideNodeManager.prototype.updateSelection = function (nodesToUnselect, source) {\n var selectionChanged = nodesToUnselect.length > 0;\n if (selectionChanged) {\n this.selectionService.setNodesSelected({\n newValue: false,\n nodes: nodesToUnselect,\n suppressFinishActions: true,\n source: source,\n });\n }\n // we do this regardless of nodes to unselect or not, as it's possible\n // a new node was inserted, so a parent that was previously selected (as all\n // children were selected) should not be tri-state (as new one unselected against\n // all other selected children).\n this.selectionService.updateGroupsFromChildrenSelections(source);\n if (selectionChanged) {\n var event_1 = {\n type: Events.EVENT_SELECTION_CHANGED,\n source: source\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n ClientSideNodeManager.prototype.executeAdd = function (rowDataTran, rowNodeTransaction) {\n var _this = this;\n var _a;\n var add = rowDataTran.add, addIndex = rowDataTran.addIndex;\n if (_.missingOrEmpty(add)) {\n return;\n }\n // create new row nodes for each data item\n var newNodes = add.map(function (item) { return _this.createNode(item, _this.rootNode, ClientSideNodeManager.TOP_LEVEL); });\n if (typeof addIndex === 'number' && addIndex >= 0) {\n // new rows are inserted in one go by concatenating them in between the existing rows at the desired index.\n // this is much faster than splicing them individually into 'allLeafChildren' when there are large inserts.\n var allLeafChildren = this.rootNode.allLeafChildren;\n var len = allLeafChildren.length;\n var normalisedAddIndex = addIndex;\n var isTreeData = this.gridOptionsService.is('treeData');\n if (isTreeData && addIndex > 0 && len > 0) {\n for (var i = 0; i < len; i++) {\n if (((_a = allLeafChildren[i]) === null || _a === void 0 ? void 0 : _a.rowIndex) == addIndex - 1) {\n normalisedAddIndex = i + 1;\n break;\n }\n }\n }\n var nodesBeforeIndex = allLeafChildren.slice(0, normalisedAddIndex);\n var nodesAfterIndex = allLeafChildren.slice(normalisedAddIndex, allLeafChildren.length);\n this.rootNode.allLeafChildren = __spreadArray$1(__spreadArray$1(__spreadArray$1([], __read$2(nodesBeforeIndex)), __read$2(newNodes)), __read$2(nodesAfterIndex));\n }\n else {\n this.rootNode.allLeafChildren = __spreadArray$1(__spreadArray$1([], __read$2(this.rootNode.allLeafChildren)), __read$2(newNodes));\n }\n if (this.rootNode.sibling) {\n this.rootNode.sibling.allLeafChildren = this.rootNode.allLeafChildren;\n }\n // add new row nodes to the transaction add items\n rowNodeTransaction.add = newNodes;\n };\n ClientSideNodeManager.prototype.executeRemove = function (rowDataTran, rowNodeTransaction, nodesToUnselect) {\n var _this = this;\n var remove = rowDataTran.remove;\n if (_.missingOrEmpty(remove)) {\n return;\n }\n var rowIdsRemoved = {};\n remove.forEach(function (item) {\n var rowNode = _this.lookupRowNode(item);\n if (!rowNode) {\n return;\n }\n // do delete - setting 'suppressFinishActions = true' to ensure EVENT_SELECTION_CHANGED is not raised for\n // each row node updated, instead it is raised once by the calling code if any selected nodes exist.\n if (rowNode.isSelected()) {\n nodesToUnselect.push(rowNode);\n }\n // so row renderer knows to fade row out (and not reposition it)\n rowNode.clearRowTopAndRowIndex();\n // NOTE: were we could remove from allLeaveChildren, however _.removeFromArray() is expensive, especially\n // if called multiple times (eg deleting lots of rows) and if allLeafChildren is a large list\n rowIdsRemoved[rowNode.id] = true;\n // _.removeFromArray(this.rootNode.allLeafChildren, rowNode);\n delete _this.allNodesMap[rowNode.id];\n rowNodeTransaction.remove.push(rowNode);\n });\n this.rootNode.allLeafChildren = this.rootNode.allLeafChildren.filter(function (rowNode) { return !rowIdsRemoved[rowNode.id]; });\n if (this.rootNode.sibling) {\n this.rootNode.sibling.allLeafChildren = this.rootNode.allLeafChildren;\n }\n };\n ClientSideNodeManager.prototype.executeUpdate = function (rowDataTran, rowNodeTransaction, nodesToUnselect) {\n var _this = this;\n var update = rowDataTran.update;\n if (_.missingOrEmpty(update)) {\n return;\n }\n update.forEach(function (item) {\n var rowNode = _this.lookupRowNode(item);\n if (!rowNode) {\n return;\n }\n rowNode.updateData(item);\n if (!rowNode.selectable && rowNode.isSelected()) {\n nodesToUnselect.push(rowNode);\n }\n _this.setMasterForRow(rowNode, item, ClientSideNodeManager.TOP_LEVEL, false);\n rowNodeTransaction.update.push(rowNode);\n });\n };\n ClientSideNodeManager.prototype.lookupRowNode = function (data) {\n var getRowIdFunc = this.gridOptionsService.getCallback('getRowId');\n var rowNode;\n if (getRowIdFunc) {\n // find rowNode using id\n var id = getRowIdFunc({ data: data, level: 0 });\n rowNode = this.allNodesMap[id];\n if (!rowNode) {\n console.error(\"AG Grid: could not find row id=\" + id + \", data item was not found for this id\");\n return null;\n }\n }\n else {\n // find rowNode using object references\n rowNode = this.rootNode.allLeafChildren.find(function (node) { return node.data === data; });\n if (!rowNode) {\n console.error(\"AG Grid: could not find data item as object was not found\", data);\n console.error(\"Consider using getRowId to help the Grid find matching row data\");\n return null;\n }\n }\n return rowNode || null;\n };\n ClientSideNodeManager.prototype.createNode = function (dataItem, parent, level) {\n var node = new RowNode(this.beans);\n node.group = false;\n this.setMasterForRow(node, dataItem, level, true);\n if (parent && !this.suppressParentsInRowNodes) {\n node.parent = parent;\n }\n node.level = level;\n node.setDataAndId(dataItem, this.nextId.toString());\n if (this.allNodesMap[node.id]) {\n console.warn(\"AG Grid: duplicate node id '\" + node.id + \"' detected from getRowId callback, this could cause issues in your grid.\");\n }\n this.allNodesMap[node.id] = node;\n this.nextId++;\n return node;\n };\n ClientSideNodeManager.prototype.setMasterForRow = function (rowNode, data, level, setExpanded) {\n var isTreeData = this.gridOptionsService.is('treeData');\n if (isTreeData) {\n rowNode.setMaster(false);\n if (setExpanded) {\n rowNode.expanded = false;\n }\n }\n else {\n // this is the default, for when doing grid data\n if (this.doingMasterDetail) {\n // if we are doing master detail, then the\n // default is that everything can be a Master Row.\n if (this.isRowMasterFunc) {\n rowNode.setMaster(this.isRowMasterFunc(data));\n }\n else {\n rowNode.setMaster(true);\n }\n }\n else {\n rowNode.setMaster(false);\n }\n if (setExpanded) {\n var rowGroupColumns = this.columnModel.getRowGroupColumns();\n var numRowGroupColumns = rowGroupColumns ? rowGroupColumns.length : 0;\n // need to take row group into account when determining level\n var masterRowLevel = level + numRowGroupColumns;\n rowNode.expanded = rowNode.master ? this.isExpanded(masterRowLevel) : false;\n }\n }\n };\n ClientSideNodeManager.prototype.isExpanded = function (level) {\n var expandByDefault = this.gridOptionsService.getNum('groupDefaultExpanded');\n if (expandByDefault === -1) {\n return true;\n }\n return level < expandByDefault;\n };\n ClientSideNodeManager.TOP_LEVEL = 0;\n ClientSideNodeManager.ROOT_NODE_ID = 'ROOT_NODE_ID';\n return ClientSideNodeManager;\n}());\n\nvar __extends$c = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$1 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar RecursionType;\n(function (RecursionType) {\n RecursionType[RecursionType[\"Normal\"] = 0] = \"Normal\";\n RecursionType[RecursionType[\"AfterFilter\"] = 1] = \"AfterFilter\";\n RecursionType[RecursionType[\"AfterFilterAndSort\"] = 2] = \"AfterFilterAndSort\";\n RecursionType[RecursionType[\"PivotNodes\"] = 3] = \"PivotNodes\";\n})(RecursionType || (RecursionType = {}));\nvar ClientSideRowModel = /** @class */ (function (_super) {\n __extends$c(ClientSideRowModel, _super);\n function ClientSideRowModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onRowHeightChanged_debounced = _.debounce(_this.onRowHeightChanged.bind(_this), 100);\n _this.rowsToDisplay = []; // the rows mapped to rows to display\n return _this;\n }\n ClientSideRowModel.prototype.init = function () {\n var _this = this;\n var refreshEverythingFunc = this.refreshModel.bind(this, { step: ClientSideRowModelSteps.EVERYTHING });\n var animate = !this.gridOptionsService.is('suppressAnimationFrame');\n var refreshEverythingAfterColsChangedFunc = this.refreshModel.bind(this, {\n step: ClientSideRowModelSteps.EVERYTHING,\n afterColumnsChanged: true,\n keepRenderedRows: true,\n animate: animate\n });\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, refreshEverythingAfterColsChangedFunc);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, refreshEverythingFunc);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VALUE_CHANGED, this.onValueChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_CHANGED, this.refreshModel.bind(this, { step: ClientSideRowModelSteps.PIVOT }));\n this.addManagedListener(this.eventService, Events.EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_SORT_CHANGED, this.onSortChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, refreshEverythingFunc);\n this.addManagedListener(this.eventService, Events.EVENT_GRID_STYLES_CHANGED, this.onGridStylesChanges.bind(this));\n var refreshMapListener = this.refreshModel.bind(this, {\n step: ClientSideRowModelSteps.MAP,\n keepRenderedRows: true,\n animate: animate\n });\n this.addManagedPropertyListeners([\n 'groupRemoveSingleChildren', 'groupRemoveLowestSingleChildren',\n 'groupIncludeFooter',\n ], refreshMapListener);\n var refreshAggListener = this.refreshModel.bind(this, {\n step: ClientSideRowModelSteps.AGGREGATE,\n keepRenderedRows: true,\n animate: animate\n });\n this.addManagedPropertyListeners([\n 'groupIncludeTotalFooter',\n ], refreshAggListener);\n this.rootNode = new RowNode(this.beans);\n this.nodeManager = new ClientSideNodeManager(this.rootNode, this.gridOptionsService, this.eventService, this.columnModel, this.selectionService, this.beans);\n this.addManagedPropertyListener('treeData', function () {\n // Shotgun reset all node state. This is used by treeData reactivity to ensure nodes don't include any group state\n _this.setRowData(_this.rootNode.allLeafChildren.map(function (child) { return child.data; }));\n });\n };\n ClientSideRowModel.prototype.start = function () {\n var rowData = this.gridOptionsService.get('rowData');\n if (rowData) {\n this.setRowData(rowData);\n }\n };\n ClientSideRowModel.prototype.ensureRowHeightsValid = function (startPixel, endPixel, startLimitIndex, endLimitIndex) {\n var atLeastOneChange;\n var res = false;\n // we do this multiple times as changing the row heights can also change the first and last rows,\n // so the first pass can make lots of rows smaller, which means the second pass we end up changing\n // more rows.\n do {\n atLeastOneChange = false;\n var rowAtStartPixel = this.getRowIndexAtPixel(startPixel);\n var rowAtEndPixel = this.getRowIndexAtPixel(endPixel);\n // keep check to current page if doing pagination\n var firstRow = Math.max(rowAtStartPixel, startLimitIndex);\n var lastRow = Math.min(rowAtEndPixel, endLimitIndex);\n for (var rowIndex = firstRow; rowIndex <= lastRow; rowIndex++) {\n var rowNode = this.getRow(rowIndex);\n if (rowNode.rowHeightEstimated) {\n var rowHeight = this.gridOptionsService.getRowHeightForNode(rowNode);\n rowNode.setRowHeight(rowHeight.height);\n atLeastOneChange = true;\n res = true;\n }\n }\n if (atLeastOneChange) {\n this.setRowTopAndRowIndex();\n }\n } while (atLeastOneChange);\n return res;\n };\n ClientSideRowModel.prototype.setRowTopAndRowIndex = function () {\n var defaultRowHeight = this.environment.getDefaultRowHeight();\n var nextRowTop = 0;\n // mapping displayed rows is not needed for this method, however it's used in\n // clearRowTopAndRowIndex(), and given we are looping through this.rowsToDisplay here,\n // we create the map here for performance reasons, so we don't loop a second time\n // in clearRowTopAndRowIndex()\n var displayedRowsMapped = new Set();\n // we don't estimate if doing fullHeight or autoHeight, as all rows get rendered all the time\n // with these two layouts.\n var allowEstimate = this.gridOptionsService.isDomLayout('normal');\n for (var i = 0; i < this.rowsToDisplay.length; i++) {\n var rowNode = this.rowsToDisplay[i];\n if (rowNode.id != null) {\n displayedRowsMapped.add(rowNode.id);\n }\n if (rowNode.rowHeight == null) {\n var rowHeight = this.gridOptionsService.getRowHeightForNode(rowNode, allowEstimate, defaultRowHeight);\n rowNode.setRowHeight(rowHeight.height, rowHeight.estimated);\n }\n rowNode.setRowTop(nextRowTop);\n rowNode.setRowIndex(i);\n nextRowTop += rowNode.rowHeight;\n }\n return displayedRowsMapped;\n };\n ClientSideRowModel.prototype.clearRowTopAndRowIndex = function (changedPath, displayedRowsMapped) {\n var changedPathActive = changedPath.isActive();\n var clearIfNotDisplayed = function (rowNode) {\n if (rowNode && rowNode.id != null && !displayedRowsMapped.has(rowNode.id)) {\n rowNode.clearRowTopAndRowIndex();\n }\n };\n var recurse = function (rowNode) {\n clearIfNotDisplayed(rowNode);\n clearIfNotDisplayed(rowNode.detailNode);\n clearIfNotDisplayed(rowNode.sibling);\n if (rowNode.hasChildren()) {\n if (rowNode.childrenAfterGroup) {\n // if a changedPath is active, it means we are here because of a transaction update or\n // a change detection. neither of these impacts the open/closed state of groups. so if\n // a group is not open this time, it was not open last time. so we know all closed groups\n // already have their top positions cleared. so there is no need to traverse all the way\n // when changedPath is active and the rowNode is not expanded.\n var isRootNode = rowNode.level == -1; // we need to give special consideration for root node,\n // as expanded=undefined for root node\n var skipChildren = changedPathActive && !isRootNode && !rowNode.expanded;\n if (!skipChildren) {\n rowNode.childrenAfterGroup.forEach(recurse);\n }\n }\n }\n };\n recurse(this.rootNode);\n };\n // returns false if row was moved, otherwise true\n ClientSideRowModel.prototype.ensureRowsAtPixel = function (rowNodes, pixel, increment) {\n var _this = this;\n if (increment === void 0) { increment = 0; }\n var indexAtPixelNow = this.getRowIndexAtPixel(pixel);\n var rowNodeAtPixelNow = this.getRow(indexAtPixelNow);\n var animate = !this.gridOptionsService.is('suppressAnimationFrame');\n if (rowNodeAtPixelNow === rowNodes[0]) {\n return false;\n }\n rowNodes.forEach(function (rowNode) {\n _.removeFromArray(_this.rootNode.allLeafChildren, rowNode);\n });\n rowNodes.forEach(function (rowNode, idx) {\n _.insertIntoArray(_this.rootNode.allLeafChildren, rowNode, Math.max(indexAtPixelNow + increment, 0) + idx);\n });\n this.refreshModel({\n step: ClientSideRowModelSteps.EVERYTHING,\n keepRenderedRows: true,\n keepEditingRows: true,\n animate: animate\n });\n return true;\n };\n ClientSideRowModel.prototype.highlightRowAtPixel = function (rowNode, pixel) {\n var indexAtPixelNow = pixel != null ? this.getRowIndexAtPixel(pixel) : null;\n var rowNodeAtPixelNow = indexAtPixelNow != null ? this.getRow(indexAtPixelNow) : null;\n if (!rowNodeAtPixelNow || !rowNode || rowNodeAtPixelNow === rowNode || pixel == null) {\n if (this.lastHighlightedRow) {\n this.lastHighlightedRow.setHighlighted(null);\n this.lastHighlightedRow = null;\n }\n return;\n }\n var highlight = this.getHighlightPosition(pixel, rowNodeAtPixelNow);\n if (this.lastHighlightedRow && this.lastHighlightedRow !== rowNodeAtPixelNow) {\n this.lastHighlightedRow.setHighlighted(null);\n this.lastHighlightedRow = null;\n }\n rowNodeAtPixelNow.setHighlighted(highlight);\n this.lastHighlightedRow = rowNodeAtPixelNow;\n };\n ClientSideRowModel.prototype.getHighlightPosition = function (pixel, rowNode) {\n if (!rowNode) {\n var index = this.getRowIndexAtPixel(pixel);\n rowNode = this.getRow(index || 0);\n if (!rowNode) {\n return RowHighlightPosition.Below;\n }\n }\n var rowTop = rowNode.rowTop, rowHeight = rowNode.rowHeight;\n return pixel - rowTop < rowHeight / 2 ? RowHighlightPosition.Above : RowHighlightPosition.Below;\n };\n ClientSideRowModel.prototype.getLastHighlightedRowNode = function () {\n return this.lastHighlightedRow;\n };\n ClientSideRowModel.prototype.isLastRowIndexKnown = function () {\n return true;\n };\n ClientSideRowModel.prototype.getRowCount = function () {\n if (this.rowsToDisplay) {\n return this.rowsToDisplay.length;\n }\n return 0;\n };\n ClientSideRowModel.prototype.getTopLevelRowCount = function () {\n var showingRootNode = this.rowsToDisplay && this.rowsToDisplay[0] === this.rootNode;\n if (showingRootNode) {\n return 1;\n }\n var filteredChildren = this.rootNode.childrenAfterAggFilter;\n return filteredChildren ? filteredChildren.length : 0;\n };\n ClientSideRowModel.prototype.getTopLevelRowDisplayedIndex = function (topLevelIndex) {\n var showingRootNode = this.rowsToDisplay && this.rowsToDisplay[0] === this.rootNode;\n if (showingRootNode) {\n return topLevelIndex;\n }\n var rowNode = this.rootNode.childrenAfterSort[topLevelIndex];\n if (this.gridOptionsService.is('groupHideOpenParents')) {\n // if hideOpenParents, and this row open, then this row is now displayed at this index, first child is\n while (rowNode.expanded && rowNode.childrenAfterSort && rowNode.childrenAfterSort.length > 0) {\n rowNode = rowNode.childrenAfterSort[0];\n }\n }\n return rowNode.rowIndex;\n };\n ClientSideRowModel.prototype.getRowBounds = function (index) {\n if (_.missing(this.rowsToDisplay)) {\n return null;\n }\n var rowNode = this.rowsToDisplay[index];\n if (rowNode) {\n return {\n rowTop: rowNode.rowTop,\n rowHeight: rowNode.rowHeight\n };\n }\n return null;\n };\n ClientSideRowModel.prototype.onRowGroupOpened = function () {\n var animate = this.gridOptionsService.isAnimateRows();\n this.refreshModel({ step: ClientSideRowModelSteps.MAP, keepRenderedRows: true, animate: animate });\n };\n ClientSideRowModel.prototype.onFilterChanged = function (event) {\n if (event.afterDataChange) {\n return;\n }\n var animate = this.gridOptionsService.isAnimateRows();\n var primaryOrQuickFilterChanged = event.columns.length === 0 || event.columns.some(function (col) { return col.isPrimary(); });\n var step = primaryOrQuickFilterChanged ? ClientSideRowModelSteps.FILTER : ClientSideRowModelSteps.FILTER_AGGREGATES;\n this.refreshModel({ step: step, keepRenderedRows: true, animate: animate });\n };\n ClientSideRowModel.prototype.onSortChanged = function () {\n var animate = this.gridOptionsService.isAnimateRows();\n this.refreshModel({ step: ClientSideRowModelSteps.SORT, keepRenderedRows: true, animate: animate, keepEditingRows: true });\n };\n ClientSideRowModel.prototype.getType = function () {\n return 'clientSide';\n };\n ClientSideRowModel.prototype.onValueChanged = function () {\n if (this.columnModel.isPivotActive()) {\n this.refreshModel({ step: ClientSideRowModelSteps.PIVOT });\n }\n else {\n this.refreshModel({ step: ClientSideRowModelSteps.AGGREGATE });\n }\n };\n ClientSideRowModel.prototype.createChangePath = function (rowNodeTransactions) {\n // for updates, if the row is updated at all, then we re-calc all the values\n // in that row. we could compare each value to each old value, however if we\n // did this, we would be calling the valueService twice, once on the old value\n // and once on the new value. so it's less valueGetter calls if we just assume\n // each column is different. that way the changedPath is used so that only\n // the impacted parent rows are recalculated, parents who's children have\n // not changed are not impacted.\n var noTransactions = _.missingOrEmpty(rowNodeTransactions);\n var changedPath = new ChangedPath(false, this.rootNode);\n if (noTransactions || this.gridOptionsService.is('treeData')) {\n changedPath.setInactive();\n }\n return changedPath;\n };\n ClientSideRowModel.prototype.isSuppressModelUpdateAfterUpdateTransaction = function (params) {\n if (!this.gridOptionsService.is('suppressModelUpdateAfterUpdateTransaction')) {\n return false;\n }\n // return true if we are only doing update transactions\n if (params.rowNodeTransactions == null) {\n return false;\n }\n var transWithAddsOrDeletes = params.rowNodeTransactions.filter(function (tx) {\n return (tx.add != null && tx.add.length > 0) || (tx.remove != null && tx.remove.length > 0);\n });\n var transactionsContainUpdatesOnly = transWithAddsOrDeletes == null || transWithAddsOrDeletes.length == 0;\n return transactionsContainUpdatesOnly;\n };\n ClientSideRowModel.prototype.buildRefreshModelParams = function (step) {\n var paramsStep = ClientSideRowModelSteps.EVERYTHING;\n var stepsMapped = {\n everything: ClientSideRowModelSteps.EVERYTHING,\n group: ClientSideRowModelSteps.EVERYTHING,\n filter: ClientSideRowModelSteps.FILTER,\n map: ClientSideRowModelSteps.MAP,\n aggregate: ClientSideRowModelSteps.AGGREGATE,\n sort: ClientSideRowModelSteps.SORT,\n pivot: ClientSideRowModelSteps.PIVOT\n };\n if (_.exists(step)) {\n paramsStep = stepsMapped[step];\n }\n if (_.missing(paramsStep)) {\n console.error(\"AG Grid: invalid step \" + step + \", available steps are \" + Object.keys(stepsMapped).join(', '));\n return undefined;\n }\n var animate = !this.gridOptionsService.is('suppressAnimationFrame');\n var modelParams = {\n step: paramsStep,\n keepRenderedRows: true,\n keepEditingRows: true,\n animate: animate\n };\n return modelParams;\n };\n ClientSideRowModel.prototype.refreshModel = function (paramsOrStep) {\n var params = typeof paramsOrStep === 'object' && \"step\" in paramsOrStep ? paramsOrStep : this.buildRefreshModelParams(paramsOrStep);\n if (!params) {\n return;\n }\n if (this.isSuppressModelUpdateAfterUpdateTransaction(params)) {\n return;\n }\n // this goes through the pipeline of stages. what's in my head is similar\n // to the diagram on this page:\n // http://commons.apache.org/sandbox/commons-pipeline/pipeline_basics.html\n // however we want to keep the results of each stage, hence we manually call\n // each step rather than have them chain each other.\n // fallthrough in below switch is on purpose,\n // eg if STEP_FILTER, then all steps below this\n // step get done\n // let start: number;\n // console.log('======= start =======');\n var changedPath = this.createChangePath(params.rowNodeTransactions);\n switch (params.step) {\n case ClientSideRowModelSteps.EVERYTHING:\n this.doRowGrouping(params.groupState, params.rowNodeTransactions, params.rowNodeOrder, changedPath, !!params.afterColumnsChanged);\n case ClientSideRowModelSteps.FILTER:\n this.doFilter(changedPath);\n case ClientSideRowModelSteps.PIVOT:\n this.doPivot(changedPath);\n case ClientSideRowModelSteps.AGGREGATE: // depends on agg fields\n this.doAggregate(changedPath);\n case ClientSideRowModelSteps.FILTER_AGGREGATES:\n this.doFilterAggregates(changedPath);\n case ClientSideRowModelSteps.SORT:\n this.doSort(params.rowNodeTransactions, changedPath);\n case ClientSideRowModelSteps.MAP:\n this.doRowsToDisplay();\n }\n // set all row tops to null, then set row tops on all visible rows. if we don't\n // do this, then the algorithm below only sets row tops, old row tops from old rows\n // will still lie around\n var displayedNodesMapped = this.setRowTopAndRowIndex();\n this.clearRowTopAndRowIndex(changedPath, displayedNodesMapped);\n var event = {\n type: Events.EVENT_MODEL_UPDATED,\n animate: params.animate,\n keepRenderedRows: params.keepRenderedRows,\n newData: params.newData,\n newPage: false,\n keepUndoRedoStack: params.keepUndoRedoStack\n };\n this.eventService.dispatchEvent(event);\n };\n ClientSideRowModel.prototype.isEmpty = function () {\n var rowsMissing = _.missing(this.rootNode.allLeafChildren) || this.rootNode.allLeafChildren.length === 0;\n return _.missing(this.rootNode) || rowsMissing || !this.columnModel.isReady();\n };\n ClientSideRowModel.prototype.isRowsToRender = function () {\n return _.exists(this.rowsToDisplay) && this.rowsToDisplay.length > 0;\n };\n ClientSideRowModel.prototype.getNodesInRangeForSelection = function (firstInRange, lastInRange) {\n // if lastSelectedNode is missing, we start at the first row\n var started = !lastInRange;\n var finished = false;\n var result = [];\n var groupsSelectChildren = this.gridOptionsService.is('groupSelectsChildren');\n this.forEachNodeAfterFilterAndSort(function (rowNode) {\n // range has been closed, skip till end\n if (finished) {\n return;\n }\n if (started) {\n if (rowNode === lastInRange || rowNode === firstInRange) {\n // check if this is the last node we're going to be adding\n finished = true;\n // if the final node was a group node, and we're doing groupSelectsChildren\n // make the exception to select all of it's descendants too\n if (rowNode.group && groupsSelectChildren) {\n result.push.apply(result, __spreadArray([], __read$1(rowNode.allLeafChildren)));\n return;\n }\n }\n }\n if (!started) {\n if (rowNode !== lastInRange && rowNode !== firstInRange) {\n // still haven't hit a boundary node, keep searching\n return;\n }\n started = true;\n }\n // only select leaf nodes if groupsSelectChildren\n var includeThisNode = !rowNode.group || !groupsSelectChildren;\n if (includeThisNode) {\n result.push(rowNode);\n return;\n }\n });\n return result;\n };\n ClientSideRowModel.prototype.setDatasource = function (datasource) {\n console.error('AG Grid: should never call setDatasource on clientSideRowController');\n };\n ClientSideRowModel.prototype.getTopLevelNodes = function () {\n return this.rootNode ? this.rootNode.childrenAfterGroup : null;\n };\n ClientSideRowModel.prototype.getRootNode = function () {\n return this.rootNode;\n };\n ClientSideRowModel.prototype.getRow = function (index) {\n return this.rowsToDisplay[index];\n };\n ClientSideRowModel.prototype.isRowPresent = function (rowNode) {\n return this.rowsToDisplay.indexOf(rowNode) >= 0;\n };\n ClientSideRowModel.prototype.getRowIndexAtPixel = function (pixelToMatch) {\n if (this.isEmpty() || this.rowsToDisplay.length === 0) {\n return -1;\n }\n // do binary search of tree\n // http://oli.me.uk/2013/06/08/searching-javascript-arrays-with-a-binary-search/\n var bottomPointer = 0;\n var topPointer = this.rowsToDisplay.length - 1;\n // quick check, if the pixel is out of bounds, then return last row\n if (pixelToMatch <= 0) {\n // if pixel is less than or equal zero, it's always the first row\n return 0;\n }\n var lastNode = _.last(this.rowsToDisplay);\n if (lastNode.rowTop <= pixelToMatch) {\n return this.rowsToDisplay.length - 1;\n }\n var oldBottomPointer = -1;\n var oldTopPointer = -1;\n while (true) {\n var midPointer = Math.floor((bottomPointer + topPointer) / 2);\n var currentRowNode = this.rowsToDisplay[midPointer];\n if (this.isRowInPixel(currentRowNode, pixelToMatch)) {\n return midPointer;\n }\n if (currentRowNode.rowTop < pixelToMatch) {\n bottomPointer = midPointer + 1;\n }\n else if (currentRowNode.rowTop > pixelToMatch) {\n topPointer = midPointer - 1;\n }\n // infinite loops happen when there is space between rows. this can happen\n // when Auto Height is active, cos we re-calculate row tops asyncronously\n // when row heights change, which can temporarly result in gaps between rows.\n var caughtInInfiniteLoop = oldBottomPointer === bottomPointer\n && oldTopPointer === topPointer;\n if (caughtInInfiniteLoop) {\n return midPointer;\n }\n oldBottomPointer = bottomPointer;\n oldTopPointer = topPointer;\n }\n };\n ClientSideRowModel.prototype.isRowInPixel = function (rowNode, pixelToMatch) {\n var topPixel = rowNode.rowTop;\n var bottomPixel = rowNode.rowTop + rowNode.rowHeight;\n var pixelInRow = topPixel <= pixelToMatch && bottomPixel > pixelToMatch;\n return pixelInRow;\n };\n ClientSideRowModel.prototype.forEachLeafNode = function (callback) {\n if (this.rootNode.allLeafChildren) {\n this.rootNode.allLeafChildren.forEach(function (rowNode, index) { return callback(rowNode, index); });\n }\n };\n ClientSideRowModel.prototype.forEachNode = function (callback, includeFooterNodes) {\n if (includeFooterNodes === void 0) { includeFooterNodes = false; }\n this.recursivelyWalkNodesAndCallback({\n nodes: __spreadArray([], __read$1((this.rootNode.childrenAfterGroup || []))),\n callback: callback,\n recursionType: RecursionType.Normal,\n index: 0,\n includeFooterNodes: includeFooterNodes\n });\n };\n ClientSideRowModel.prototype.forEachNodeAfterFilter = function (callback, includeFooterNodes) {\n if (includeFooterNodes === void 0) { includeFooterNodes = false; }\n this.recursivelyWalkNodesAndCallback({\n nodes: __spreadArray([], __read$1((this.rootNode.childrenAfterAggFilter || []))),\n callback: callback,\n recursionType: RecursionType.AfterFilter,\n index: 0,\n includeFooterNodes: includeFooterNodes\n });\n };\n ClientSideRowModel.prototype.forEachNodeAfterFilterAndSort = function (callback, includeFooterNodes) {\n if (includeFooterNodes === void 0) { includeFooterNodes = false; }\n this.recursivelyWalkNodesAndCallback({\n nodes: __spreadArray([], __read$1((this.rootNode.childrenAfterSort || []))),\n callback: callback,\n recursionType: RecursionType.AfterFilterAndSort,\n index: 0,\n includeFooterNodes: includeFooterNodes\n });\n };\n ClientSideRowModel.prototype.forEachPivotNode = function (callback, includeFooterNodes) {\n if (includeFooterNodes === void 0) { includeFooterNodes = false; }\n this.recursivelyWalkNodesAndCallback({\n nodes: [this.rootNode],\n callback: callback,\n recursionType: RecursionType.PivotNodes,\n index: 0,\n includeFooterNodes: includeFooterNodes\n });\n };\n // iterates through each item in memory, and calls the callback function\n // nodes - the rowNodes to traverse\n // callback - the user provided callback\n // recursion type - need this to know what child nodes to recurse, eg if looking at all nodes, or filtered notes etc\n // index - works similar to the index in forEach in javascript's array function\n ClientSideRowModel.prototype.recursivelyWalkNodesAndCallback = function (params) {\n var _a;\n var nodes = params.nodes, callback = params.callback, recursionType = params.recursionType, includeFooterNodes = params.includeFooterNodes;\n var index = params.index;\n for (var i = 0; i < nodes.length; i++) {\n var node = nodes[i];\n callback(node, index++);\n // go to the next level if it is a group\n if (node.hasChildren() && !node.footer) {\n // depending on the recursion type, we pick a difference set of children\n var nodeChildren = null;\n switch (recursionType) {\n case RecursionType.Normal:\n nodeChildren = node.childrenAfterGroup;\n break;\n case RecursionType.AfterFilter:\n nodeChildren = node.childrenAfterAggFilter;\n break;\n case RecursionType.AfterFilterAndSort:\n nodeChildren = node.childrenAfterSort;\n break;\n case RecursionType.PivotNodes:\n // for pivot, we don't go below leafGroup levels\n nodeChildren = !node.leafGroup ? node.childrenAfterSort : null;\n break;\n }\n if (nodeChildren) {\n index = this.recursivelyWalkNodesAndCallback({\n nodes: __spreadArray([], __read$1(nodeChildren)),\n callback: callback,\n recursionType: recursionType,\n index: index,\n includeFooterNodes: includeFooterNodes\n });\n }\n }\n }\n var parentNode = (_a = nodes[0]) === null || _a === void 0 ? void 0 : _a.parent;\n if (!includeFooterNodes || !parentNode)\n return index;\n var isRootNode = parentNode === this.rootNode;\n if (isRootNode) {\n var totalFooters = this.gridOptionsService.is('groupIncludeTotalFooter');\n if (!totalFooters)\n return index;\n }\n else {\n var isGroupIncludeFooter = this.gridOptionsService.getGroupIncludeFooter();\n if (!isGroupIncludeFooter({ node: parentNode }))\n return index;\n }\n parentNode.createFooter();\n callback(parentNode.sibling, index++);\n return index;\n };\n // it's possible to recompute the aggregate without doing the other parts\n // + api.refreshClientSideRowModel('aggregate')\n ClientSideRowModel.prototype.doAggregate = function (changedPath) {\n if (this.aggregationStage) {\n this.aggregationStage.execute({ rowNode: this.rootNode, changedPath: changedPath });\n }\n };\n ClientSideRowModel.prototype.doFilterAggregates = function (changedPath) {\n if (this.filterAggregatesStage) {\n this.filterAggregatesStage.execute({ rowNode: this.rootNode, changedPath: changedPath });\n }\n else {\n // If filterAggregatesStage is undefined, then so is the grouping stage, so all children should be on the rootNode.\n this.rootNode.childrenAfterAggFilter = this.rootNode.childrenAfterFilter;\n }\n };\n // + gridApi.expandAll()\n // + gridApi.collapseAll()\n ClientSideRowModel.prototype.expandOrCollapseAll = function (expand) {\n var usingTreeData = this.gridOptionsService.is('treeData');\n var usingPivotMode = this.columnModel.isPivotActive();\n var recursiveExpandOrCollapse = function (rowNodes) {\n if (!rowNodes) {\n return;\n }\n rowNodes.forEach(function (rowNode) {\n var actionRow = function () {\n rowNode.expanded = expand;\n recursiveExpandOrCollapse(rowNode.childrenAfterGroup);\n };\n if (usingTreeData) {\n var hasChildren = _.exists(rowNode.childrenAfterGroup);\n if (hasChildren) {\n actionRow();\n }\n return;\n }\n if (usingPivotMode) {\n var notLeafGroup = !rowNode.leafGroup;\n if (notLeafGroup) {\n actionRow();\n }\n return;\n }\n var isRowGroup = rowNode.group;\n if (isRowGroup) {\n actionRow();\n }\n });\n };\n if (this.rootNode) {\n recursiveExpandOrCollapse(this.rootNode.childrenAfterGroup);\n }\n this.refreshModel({ step: ClientSideRowModelSteps.MAP });\n var eventSource = expand ? 'expandAll' : 'collapseAll';\n var event = {\n type: Events.EVENT_EXPAND_COLLAPSE_ALL,\n source: eventSource\n };\n this.eventService.dispatchEvent(event);\n };\n ClientSideRowModel.prototype.doSort = function (rowNodeTransactions, changedPath) {\n this.sortStage.execute({\n rowNode: this.rootNode,\n rowNodeTransactions: rowNodeTransactions,\n changedPath: changedPath\n });\n };\n ClientSideRowModel.prototype.doRowGrouping = function (groupState, rowNodeTransactions, rowNodeOrder, changedPath, afterColumnsChanged) {\n if (this.groupStage) {\n if (rowNodeTransactions) {\n this.groupStage.execute({\n rowNode: this.rootNode,\n rowNodeTransactions: rowNodeTransactions,\n rowNodeOrder: rowNodeOrder,\n changedPath: changedPath\n });\n }\n else {\n this.groupStage.execute({\n rowNode: this.rootNode,\n changedPath: changedPath,\n afterColumnsChanged: afterColumnsChanged\n });\n // set open/closed state on groups\n this.restoreGroupState(groupState);\n }\n if (this.gridOptionsService.is('groupSelectsChildren')) {\n var selectionChanged = this.selectionService.updateGroupsFromChildrenSelections('rowGroupChanged', changedPath);\n if (selectionChanged) {\n var event_1 = {\n type: Events.EVENT_SELECTION_CHANGED,\n source: 'rowGroupChanged'\n };\n this.eventService.dispatchEvent(event_1);\n }\n }\n }\n else {\n this.rootNode.childrenAfterGroup = this.rootNode.allLeafChildren;\n if (this.rootNode.sibling) {\n this.rootNode.sibling.childrenAfterGroup = this.rootNode.childrenAfterGroup;\n }\n this.rootNode.updateHasChildren();\n }\n };\n ClientSideRowModel.prototype.restoreGroupState = function (groupState) {\n if (!groupState) {\n return;\n }\n _.traverseNodesWithKey(this.rootNode.childrenAfterGroup, function (node, key) {\n // if the group was open last time, then open it this time. however\n // if was not open last time, then don't touch the group, so the 'groupDefaultExpanded'\n // setting will take effect.\n if (typeof groupState[key] === 'boolean') {\n node.expanded = groupState[key];\n }\n });\n };\n ClientSideRowModel.prototype.doFilter = function (changedPath) {\n this.filterStage.execute({ rowNode: this.rootNode, changedPath: changedPath });\n };\n ClientSideRowModel.prototype.doPivot = function (changedPath) {\n if (this.pivotStage) {\n this.pivotStage.execute({ rowNode: this.rootNode, changedPath: changedPath });\n }\n };\n ClientSideRowModel.prototype.getGroupState = function () {\n if (!this.rootNode.childrenAfterGroup || !this.gridOptionsService.is('rememberGroupStateWhenNewData')) {\n return null;\n }\n var result = {};\n _.traverseNodesWithKey(this.rootNode.childrenAfterGroup, function (node, key) { return result[key] = node.expanded; });\n return result;\n };\n ClientSideRowModel.prototype.getCopyOfNodesMap = function () {\n return this.nodeManager.getCopyOfNodesMap();\n };\n ClientSideRowModel.prototype.getRowNode = function (id) {\n // although id is typed a string, this could be called by the user, and they could have passed a number\n var idIsGroup = typeof id == 'string' && id.indexOf(RowNode.ID_PREFIX_ROW_GROUP) == 0;\n if (idIsGroup) {\n // only one users complained about getRowNode not working for groups, after years of\n // this working for normal rows. so have done quick implementation. if users complain\n // about performance, then GroupStage should store / manage created groups in a map,\n // which is a chunk of work.\n var res_1 = undefined;\n this.forEachNode(function (node) {\n if (node.id === id) {\n res_1 = node;\n }\n });\n return res_1;\n }\n return this.nodeManager.getRowNode(id);\n };\n // rows: the rows to put into the model\n ClientSideRowModel.prototype.setRowData = function (rowData) {\n // no need to invalidate cache, as the cache is stored on the rowNode,\n // so new rowNodes means the cache is wiped anyway.\n // remember group state, so we can expand groups that should be expanded\n var groupState = this.getGroupState();\n this.nodeManager.setRowData(rowData);\n // - clears selection\n this.selectionService.reset();\n // - updates filters\n this.filterManager.onNewRowsLoaded('rowDataUpdated');\n // this event kicks off:\n // - shows 'no rows' overlay if needed\n var rowDataUpdatedEvent = {\n type: Events.EVENT_ROW_DATA_UPDATED\n };\n this.eventService.dispatchEvent(rowDataUpdatedEvent);\n this.refreshModel({\n step: ClientSideRowModelSteps.EVERYTHING,\n groupState: groupState,\n newData: true\n });\n };\n ClientSideRowModel.prototype.batchUpdateRowData = function (rowDataTransaction, callback) {\n var _this = this;\n if (this.applyAsyncTransactionsTimeout == null) {\n this.rowDataTransactionBatch = [];\n var waitMillis = this.gridOptionsService.getAsyncTransactionWaitMillis();\n this.applyAsyncTransactionsTimeout = window.setTimeout(function () {\n _this.executeBatchUpdateRowData();\n }, waitMillis);\n }\n this.rowDataTransactionBatch.push({ rowDataTransaction: rowDataTransaction, callback: callback });\n };\n ClientSideRowModel.prototype.flushAsyncTransactions = function () {\n if (this.applyAsyncTransactionsTimeout != null) {\n clearTimeout(this.applyAsyncTransactionsTimeout);\n this.executeBatchUpdateRowData();\n }\n };\n ClientSideRowModel.prototype.executeBatchUpdateRowData = function () {\n var _this = this;\n this.valueCache.onDataChanged();\n var callbackFuncsBound = [];\n var rowNodeTrans = [];\n // The rowGroup stage uses rowNodeOrder if order was provided. if we didn't pass 'true' to\n // commonUpdateRowData, using addIndex would have no effect when grouping.\n var forceRowNodeOrder = false;\n if (this.rowDataTransactionBatch) {\n this.rowDataTransactionBatch.forEach(function (tranItem) {\n var rowNodeTran = _this.nodeManager.updateRowData(tranItem.rowDataTransaction, undefined);\n rowNodeTrans.push(rowNodeTran);\n if (tranItem.callback) {\n callbackFuncsBound.push(tranItem.callback.bind(null, rowNodeTran));\n }\n if (typeof tranItem.rowDataTransaction.addIndex === 'number') {\n forceRowNodeOrder = true;\n }\n });\n }\n this.commonUpdateRowData(rowNodeTrans, undefined, forceRowNodeOrder);\n // do callbacks in next VM turn so it's async\n if (callbackFuncsBound.length > 0) {\n window.setTimeout(function () {\n callbackFuncsBound.forEach(function (func) { return func(); });\n }, 0);\n }\n if (rowNodeTrans.length > 0) {\n var event_2 = {\n type: Events.EVENT_ASYNC_TRANSACTIONS_FLUSHED,\n results: rowNodeTrans\n };\n this.eventService.dispatchEvent(event_2);\n }\n this.rowDataTransactionBatch = null;\n this.applyAsyncTransactionsTimeout = undefined;\n };\n ClientSideRowModel.prototype.updateRowData = function (rowDataTran, rowNodeOrder) {\n this.valueCache.onDataChanged();\n var rowNodeTran = this.nodeManager.updateRowData(rowDataTran, rowNodeOrder);\n // if doing immutableData, addIndex is never present. however if doing standard transaction, and user\n // provided addIndex, then this is used in updateRowData. However if doing Enterprise, then the rowGroup\n // stage also uses the\n var forceRowNodeOrder = typeof rowDataTran.addIndex === 'number';\n this.commonUpdateRowData([rowNodeTran], rowNodeOrder, forceRowNodeOrder);\n return rowNodeTran;\n };\n ClientSideRowModel.prototype.createRowNodeOrder = function () {\n var suppressSortOrder = this.gridOptionsService.is('suppressMaintainUnsortedOrder');\n if (suppressSortOrder) {\n return;\n }\n var orderMap = {};\n if (this.rootNode && this.rootNode.allLeafChildren) {\n for (var index = 0; index < this.rootNode.allLeafChildren.length; index++) {\n var node = this.rootNode.allLeafChildren[index];\n orderMap[node.id] = index;\n }\n }\n return orderMap;\n };\n // common to updateRowData and batchUpdateRowData\n ClientSideRowModel.prototype.commonUpdateRowData = function (rowNodeTrans, rowNodeOrder, forceRowNodeOrder) {\n var animate = !this.gridOptionsService.is('suppressAnimationFrame');\n if (forceRowNodeOrder) {\n rowNodeOrder = this.createRowNodeOrder();\n }\n this.refreshModel({\n step: ClientSideRowModelSteps.EVERYTHING,\n rowNodeTransactions: rowNodeTrans,\n rowNodeOrder: rowNodeOrder,\n keepRenderedRows: true,\n keepEditingRows: true,\n animate: animate\n });\n // - updates filters\n this.filterManager.onNewRowsLoaded('rowDataUpdated');\n var event = {\n type: Events.EVENT_ROW_DATA_UPDATED\n };\n this.eventService.dispatchEvent(event);\n };\n ClientSideRowModel.prototype.doRowsToDisplay = function () {\n this.rowsToDisplay = this.flattenStage.execute({ rowNode: this.rootNode });\n };\n ClientSideRowModel.prototype.onRowHeightChanged = function () {\n this.refreshModel({ step: ClientSideRowModelSteps.MAP, keepRenderedRows: true, keepEditingRows: true, keepUndoRedoStack: true });\n };\n /** This method is debounced. It is used for row auto-height. If we don't debounce,\n * then the Row Models will end up recalculating each row position\n * for each row height change and result in the Row Renderer laying out rows.\n * This is particularly bad if using print layout, and showing eg 1,000 rows,\n * each row will change it's height, causing Row Model to update 1,000 times.\n */\n ClientSideRowModel.prototype.onRowHeightChangedDebounced = function () {\n this.onRowHeightChanged_debounced();\n };\n ClientSideRowModel.prototype.resetRowHeights = function () {\n var atLeastOne = this.resetRowHeightsForAllRowNodes();\n this.rootNode.setRowHeight(this.rootNode.rowHeight, true);\n if (this.rootNode.sibling) {\n this.rootNode.sibling.setRowHeight(this.rootNode.sibling.rowHeight, true);\n }\n // when pivotMode but pivot not active, root node is displayed on its own\n // because it's only ever displayed alone, refreshing the model (onRowHeightChanged) is not required\n if (atLeastOne) {\n this.onRowHeightChanged();\n }\n };\n ClientSideRowModel.prototype.resetRowHeightsForAllRowNodes = function () {\n var atLeastOne = false;\n this.forEachNode(function (rowNode) {\n rowNode.setRowHeight(rowNode.rowHeight, true);\n // we keep the height each row is at, however we set estimated=true rather than clear the height.\n // this means the grid will not reset the row heights back to defaults, rather it will re-calc\n // the height for each row as the row is displayed. otherwise the scroll will jump when heights are reset.\n var detailNode = rowNode.detailNode;\n if (detailNode) {\n detailNode.setRowHeight(detailNode.rowHeight, true);\n }\n if (rowNode.sibling) {\n rowNode.sibling.setRowHeight(rowNode.sibling.rowHeight, true);\n }\n atLeastOne = true;\n });\n return atLeastOne;\n };\n ClientSideRowModel.prototype.onGridStylesChanges = function () {\n if (this.columnModel.isAutoRowHeightActive()) {\n return;\n }\n this.resetRowHeights();\n };\n __decorate$b([\n Autowired('columnModel')\n ], ClientSideRowModel.prototype, \"columnModel\", void 0);\n __decorate$b([\n Autowired('selectionService')\n ], ClientSideRowModel.prototype, \"selectionService\", void 0);\n __decorate$b([\n Autowired('filterManager')\n ], ClientSideRowModel.prototype, \"filterManager\", void 0);\n __decorate$b([\n Autowired('valueCache')\n ], ClientSideRowModel.prototype, \"valueCache\", void 0);\n __decorate$b([\n Autowired('beans')\n ], ClientSideRowModel.prototype, \"beans\", void 0);\n __decorate$b([\n Autowired('filterStage')\n ], ClientSideRowModel.prototype, \"filterStage\", void 0);\n __decorate$b([\n Autowired('sortStage')\n ], ClientSideRowModel.prototype, \"sortStage\", void 0);\n __decorate$b([\n Autowired('flattenStage')\n ], ClientSideRowModel.prototype, \"flattenStage\", void 0);\n __decorate$b([\n Optional('groupStage')\n ], ClientSideRowModel.prototype, \"groupStage\", void 0);\n __decorate$b([\n Optional('aggregationStage')\n ], ClientSideRowModel.prototype, \"aggregationStage\", void 0);\n __decorate$b([\n Optional('pivotStage')\n ], ClientSideRowModel.prototype, \"pivotStage\", void 0);\n __decorate$b([\n Optional('filterAggregatesStage')\n ], ClientSideRowModel.prototype, \"filterAggregatesStage\", void 0);\n __decorate$b([\n PostConstruct\n ], ClientSideRowModel.prototype, \"init\", null);\n ClientSideRowModel = __decorate$b([\n Bean('rowModel')\n ], ClientSideRowModel);\n return ClientSideRowModel;\n}(BeanStub));\n\nvar __extends$b = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FilterStage = /** @class */ (function (_super) {\n __extends$b(FilterStage, _super);\n function FilterStage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FilterStage.prototype.execute = function (params) {\n var changedPath = params.changedPath;\n this.filterService.filter(changedPath);\n };\n __decorate$a([\n Autowired('filterService')\n ], FilterStage.prototype, \"filterService\", void 0);\n FilterStage = __decorate$a([\n Bean('filterStage')\n ], FilterStage);\n return FilterStage;\n}(BeanStub));\n\nvar __extends$a = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$9 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SortStage = /** @class */ (function (_super) {\n __extends$a(SortStage, _super);\n function SortStage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SortStage.prototype.execute = function (params) {\n var _this = this;\n var sortOptions = this.sortController.getSortOptions();\n var sortActive = _.exists(sortOptions) && sortOptions.length > 0;\n var deltaSort = sortActive\n && _.exists(params.rowNodeTransactions)\n // in time we can remove this check, so that delta sort is always\n // on if transactions are present. it's off for now so that we can\n // selectively turn it on and test it with some select users before\n // rolling out to everyone.\n && this.gridOptionsService.is('deltaSort');\n var sortContainsGroupColumns = sortOptions.some(function (opt) {\n var isSortingCoupled = _this.gridOptionsService.isColumnsSortingCoupledToGroup();\n if (isSortingCoupled) {\n return opt.column.isPrimary() && opt.column.isRowGroupActive();\n }\n return !!opt.column.getColDef().showRowGroup;\n });\n this.sortService.sort(sortOptions, sortActive, deltaSort, params.rowNodeTransactions, params.changedPath, sortContainsGroupColumns);\n };\n __decorate$9([\n Autowired('sortService')\n ], SortStage.prototype, \"sortService\", void 0);\n __decorate$9([\n Autowired('sortController')\n ], SortStage.prototype, \"sortController\", void 0);\n __decorate$9([\n Autowired('columnModel')\n ], SortStage.prototype, \"columnModel\", void 0);\n SortStage = __decorate$9([\n Bean('sortStage')\n ], SortStage);\n return SortStage;\n}(BeanStub));\n\nvar __extends$9 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$8 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FlattenStage = /** @class */ (function (_super) {\n __extends$9(FlattenStage, _super);\n function FlattenStage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FlattenStage.prototype.execute = function (params) {\n var rootNode = params.rowNode;\n // even if not doing grouping, we do the mapping, as the client might\n // of passed in data that already has a grouping in it somewhere\n var result = [];\n var skipLeafNodes = this.columnModel.isPivotMode();\n // if we are reducing, and not grouping, then we want to show the root node, as that\n // is where the pivot values are\n var showRootNode = skipLeafNodes && rootNode.leafGroup;\n var topList = showRootNode ? [rootNode] : rootNode.childrenAfterSort;\n var details = this.getFlattenDetails();\n this.recursivelyAddToRowsToDisplay(details, topList, result, skipLeafNodes, 0);\n // we do not want the footer total if the gris is empty\n var atLeastOneRowPresent = result.length > 0;\n var includeGroupTotalFooter = !showRootNode\n // don't show total footer when showRootNode is true (i.e. in pivot mode and no groups)\n && atLeastOneRowPresent\n && details.groupIncludeTotalFooter;\n if (includeGroupTotalFooter) {\n rootNode.createFooter();\n this.addRowNodeToRowsToDisplay(details, rootNode.sibling, result, 0);\n }\n return result;\n };\n FlattenStage.prototype.getFlattenDetails = function () {\n // these two are mutually exclusive, so if first set, we don't set the second\n var groupRemoveSingleChildren = this.gridOptionsService.is('groupRemoveSingleChildren');\n var groupRemoveLowestSingleChildren = !groupRemoveSingleChildren && this.gridOptionsService.is('groupRemoveLowestSingleChildren');\n return {\n groupRemoveLowestSingleChildren: groupRemoveLowestSingleChildren,\n groupRemoveSingleChildren: groupRemoveSingleChildren,\n isGroupMultiAutoColumn: this.gridOptionsService.isGroupMultiAutoColumn(),\n hideOpenParents: this.gridOptionsService.is('groupHideOpenParents'),\n groupIncludeTotalFooter: this.gridOptionsService.is('groupIncludeTotalFooter'),\n getGroupIncludeFooter: this.gridOptionsService.getGroupIncludeFooter(),\n };\n };\n FlattenStage.prototype.recursivelyAddToRowsToDisplay = function (details, rowsToFlatten, result, skipLeafNodes, uiLevel) {\n if (_.missingOrEmpty(rowsToFlatten)) {\n return;\n }\n for (var i = 0; i < rowsToFlatten.length; i++) {\n var rowNode = rowsToFlatten[i];\n // check all these cases, for working out if this row should be included in the final mapped list\n var isParent = rowNode.hasChildren();\n var isSkippedLeafNode = skipLeafNodes && !isParent;\n var isRemovedSingleChildrenGroup = details.groupRemoveSingleChildren && isParent && rowNode.childrenAfterGroup.length === 1;\n var isRemovedLowestSingleChildrenGroup = details.groupRemoveLowestSingleChildren &&\n isParent &&\n rowNode.leafGroup &&\n rowNode.childrenAfterGroup.length === 1;\n // hide open parents means when group is open, we don't show it. we also need to make sure the\n // group is expandable in the first place (as leaf groups are not expandable if pivot mode is on).\n // the UI will never allow expanding leaf groups, however the user might via the API (or menu option 'expand all row groups')\n var neverAllowToExpand = skipLeafNodes && rowNode.leafGroup;\n var isHiddenOpenParent = details.hideOpenParents && rowNode.expanded && !rowNode.master && !neverAllowToExpand;\n var thisRowShouldBeRendered = !isSkippedLeafNode && !isHiddenOpenParent &&\n !isRemovedSingleChildrenGroup && !isRemovedLowestSingleChildrenGroup;\n if (thisRowShouldBeRendered) {\n this.addRowNodeToRowsToDisplay(details, rowNode, result, uiLevel);\n }\n // if we are pivoting, we never map below the leaf group\n if (skipLeafNodes && rowNode.leafGroup) {\n continue;\n }\n if (isParent) {\n var excludedParent = isRemovedSingleChildrenGroup || isRemovedLowestSingleChildrenGroup;\n // we traverse the group if it is expended, however we always traverse if the parent node\n // was removed (as the group will never be opened if it is not displayed, we show the children instead)\n if (rowNode.expanded || excludedParent) {\n // if the parent was excluded, then ui level is that of the parent\n var uiLevelForChildren = excludedParent ? uiLevel : uiLevel + 1;\n this.recursivelyAddToRowsToDisplay(details, rowNode.childrenAfterSort, result, skipLeafNodes, uiLevelForChildren);\n // put a footer in if user is looking for it\n var doesRowShowFooter = details.getGroupIncludeFooter({ node: rowNode });\n if (doesRowShowFooter) {\n // ensure node is available.\n rowNode.createFooter();\n this.addRowNodeToRowsToDisplay(details, rowNode.sibling, result, uiLevelForChildren);\n }\n else {\n // remove node if it's unnecessary.\n rowNode.destroyFooter();\n }\n }\n }\n else if (rowNode.master && rowNode.expanded) {\n var detailNode = this.createDetailNode(rowNode);\n this.addRowNodeToRowsToDisplay(details, detailNode, result, uiLevel);\n }\n }\n };\n // duplicated method, it's also in floatingRowModel\n FlattenStage.prototype.addRowNodeToRowsToDisplay = function (details, rowNode, result, uiLevel) {\n result.push(rowNode);\n rowNode.setUiLevel(details.isGroupMultiAutoColumn ? 0 : uiLevel);\n };\n FlattenStage.prototype.createDetailNode = function (masterNode) {\n if (_.exists(masterNode.detailNode)) {\n return masterNode.detailNode;\n }\n var detailNode = new RowNode(this.beans);\n detailNode.detail = true;\n detailNode.selectable = false;\n detailNode.parent = masterNode;\n if (_.exists(masterNode.id)) {\n detailNode.id = 'detail_' + masterNode.id;\n }\n detailNode.data = masterNode.data;\n detailNode.level = masterNode.level + 1;\n masterNode.detailNode = detailNode;\n return detailNode;\n };\n __decorate$8([\n Autowired('columnModel')\n ], FlattenStage.prototype, \"columnModel\", void 0);\n __decorate$8([\n Autowired('beans')\n ], FlattenStage.prototype, \"beans\", void 0);\n FlattenStage = __decorate$8([\n Bean('flattenStage')\n ], FlattenStage);\n return FlattenStage;\n}(BeanStub));\n\nvar __extends$8 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$7 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SortService = /** @class */ (function (_super) {\n __extends$8(SortService, _super);\n function SortService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SortService.prototype.init = function () {\n this.postSortFunc = this.gridOptionsService.getCallback('postSortRows');\n };\n SortService.prototype.sort = function (sortOptions, sortActive, useDeltaSort, rowNodeTransactions, changedPath, sortContainsGroupColumns) {\n var _this = this;\n var groupMaintainOrder = this.gridOptionsService.is('groupMaintainOrder');\n var groupColumnsPresent = this.columnModel.getAllGridColumns().some(function (c) { return c.isRowGroupActive(); });\n var allDirtyNodes = {};\n if (useDeltaSort && rowNodeTransactions) {\n allDirtyNodes = this.calculateDirtyNodes(rowNodeTransactions);\n }\n var isPivotMode = this.columnModel.isPivotMode();\n var callback = function (rowNode) {\n // we clear out the 'pull down open parents' first, as the values mix up the sorting\n _this.pullDownGroupDataForHideOpenParents(rowNode.childrenAfterAggFilter, true);\n // It's pointless to sort rows which aren't being displayed. in pivot mode we don't need to sort the leaf group children.\n var skipSortingPivotLeafs = isPivotMode && rowNode.leafGroup;\n // Javascript sort is non deterministic when all the array items are equals, ie Comparator always returns 0,\n // so to ensure the array keeps its order, add an additional sorting condition manually, in this case we\n // are going to inspect the original array position. This is what sortedRowNodes is for.\n var skipSortingGroups = groupMaintainOrder && groupColumnsPresent && !rowNode.leafGroup && !sortContainsGroupColumns;\n if (skipSortingGroups) {\n var childrenToBeSorted = rowNode.childrenAfterAggFilter.slice(0);\n if (rowNode.childrenAfterSort) {\n var indexedOrders_1 = {};\n rowNode.childrenAfterSort.forEach(function (node, idx) {\n indexedOrders_1[node.id] = idx;\n });\n childrenToBeSorted.sort(function (row1, row2) { var _a, _b; return ((_a = indexedOrders_1[row1.id]) !== null && _a !== void 0 ? _a : 0) - ((_b = indexedOrders_1[row2.id]) !== null && _b !== void 0 ? _b : 0); });\n }\n rowNode.childrenAfterSort = childrenToBeSorted;\n }\n else if (!sortActive || skipSortingPivotLeafs) {\n // if there's no sort to make, skip this step\n rowNode.childrenAfterSort = rowNode.childrenAfterAggFilter.slice(0);\n }\n else if (useDeltaSort) {\n rowNode.childrenAfterSort = _this.doDeltaSort(rowNode, allDirtyNodes, changedPath, sortOptions);\n }\n else {\n rowNode.childrenAfterSort = _this.rowNodeSorter.doFullSort(rowNode.childrenAfterAggFilter, sortOptions);\n }\n if (rowNode.sibling) {\n rowNode.sibling.childrenAfterSort = rowNode.childrenAfterSort;\n }\n _this.updateChildIndexes(rowNode);\n if (_this.postSortFunc) {\n var params = { nodes: rowNode.childrenAfterSort };\n _this.postSortFunc(params);\n }\n };\n if (changedPath) {\n changedPath.forEachChangedNodeDepthFirst(callback);\n }\n this.updateGroupDataForHideOpenParents(changedPath);\n };\n SortService.prototype.calculateDirtyNodes = function (rowNodeTransactions) {\n var dirtyNodes = {};\n var addNodesFunc = function (rowNodes) {\n if (rowNodes) {\n rowNodes.forEach(function (rowNode) { return dirtyNodes[rowNode.id] = true; });\n }\n };\n // all leaf level nodes in the transaction were impacted\n if (rowNodeTransactions) {\n rowNodeTransactions.forEach(function (tran) {\n addNodesFunc(tran.add);\n addNodesFunc(tran.update);\n addNodesFunc(tran.remove);\n });\n }\n return dirtyNodes;\n };\n SortService.prototype.doDeltaSort = function (rowNode, allTouchedNodes, changedPath, sortOptions) {\n var _this = this;\n var unsortedRows = rowNode.childrenAfterAggFilter;\n var oldSortedRows = rowNode.childrenAfterSort;\n if (!oldSortedRows) {\n return this.rowNodeSorter.doFullSort(unsortedRows, sortOptions);\n }\n var untouchedRowsMap = {};\n var touchedRows = [];\n unsortedRows.forEach(function (row) {\n if (allTouchedNodes[row.id] || !changedPath.canSkip(row)) {\n touchedRows.push(row);\n }\n else {\n untouchedRowsMap[row.id] = true;\n }\n });\n var sortedUntouchedRows = oldSortedRows.filter(function (child) { return untouchedRowsMap[child.id]; });\n var mapNodeToSortedNode = function (rowNode, pos) { return ({ currentPos: pos, rowNode: rowNode }); };\n var sortedChangedRows = touchedRows\n .map(mapNodeToSortedNode)\n .sort(function (a, b) { return _this.rowNodeSorter.compareRowNodes(sortOptions, a, b); });\n return this.mergeSortedArrays(sortOptions, sortedChangedRows, sortedUntouchedRows.map(mapNodeToSortedNode)).map(function (_a) {\n var rowNode = _a.rowNode;\n return rowNode;\n });\n };\n // Merge two sorted arrays into each other\n SortService.prototype.mergeSortedArrays = function (sortOptions, arr1, arr2) {\n var res = [];\n var i = 0;\n var j = 0;\n // Traverse both array, adding them in order\n while (i < arr1.length && j < arr2.length) {\n // Check if current element of first\n // array is smaller than current element\n // of second array. If yes, store first\n // array element and increment first array\n // index. Otherwise do same with second array\n var compareResult = this.rowNodeSorter.compareRowNodes(sortOptions, arr1[i], arr2[j]);\n if (compareResult < 0) {\n res.push(arr1[i++]);\n }\n else {\n res.push(arr2[j++]);\n }\n }\n // add remaining from arr1\n while (i < arr1.length) {\n res.push(arr1[i++]);\n }\n // add remaining from arr2\n while (j < arr2.length) {\n res.push(arr2[j++]);\n }\n return res;\n };\n SortService.prototype.updateChildIndexes = function (rowNode) {\n if (_.missing(rowNode.childrenAfterSort)) {\n return;\n }\n var listToSort = rowNode.childrenAfterSort;\n for (var i = 0; i < listToSort.length; i++) {\n var child = listToSort[i];\n var firstChild = i === 0;\n var lastChild = i === rowNode.childrenAfterSort.length - 1;\n child.setFirstChild(firstChild);\n child.setLastChild(lastChild);\n child.setChildIndex(i);\n }\n };\n SortService.prototype.updateGroupDataForHideOpenParents = function (changedPath) {\n var _this = this;\n if (!this.gridOptionsService.is('groupHideOpenParents')) {\n return;\n }\n if (this.gridOptionsService.is('treeData')) {\n var msg_1 = \"AG Grid: The property hideOpenParents dose not work with Tree Data. This is because Tree Data has values at the group level, it doesn't make sense to hide them (as opposed to Row Grouping, which only has Aggregated Values at the group level).\";\n _.doOnce(function () { return console.warn(msg_1); }, 'sortService.hideOpenParentsWithTreeData');\n return false;\n }\n // recurse breadth first over group nodes after sort to 'pull down' group data to child groups\n var callback = function (rowNode) {\n _this.pullDownGroupDataForHideOpenParents(rowNode.childrenAfterSort, false);\n rowNode.childrenAfterSort.forEach(function (child) {\n if (child.hasChildren()) {\n callback(child);\n }\n });\n };\n if (changedPath) {\n changedPath.executeFromRootNode(function (rowNode) { return callback(rowNode); });\n }\n };\n SortService.prototype.pullDownGroupDataForHideOpenParents = function (rowNodes, clearOperation) {\n var _this = this;\n if (!this.gridOptionsService.is('groupHideOpenParents') || _.missing(rowNodes)) {\n return;\n }\n rowNodes.forEach(function (childRowNode) {\n var groupDisplayCols = _this.columnModel.getGroupDisplayColumns();\n groupDisplayCols.forEach(function (groupDisplayCol) {\n var showRowGroup = groupDisplayCol.getColDef().showRowGroup;\n if (typeof showRowGroup !== 'string') {\n console.error('AG Grid: groupHideOpenParents only works when specifying specific columns for colDef.showRowGroup');\n return;\n }\n var displayingGroupKey = showRowGroup;\n var rowGroupColumn = _this.columnModel.getPrimaryColumn(displayingGroupKey);\n var thisRowNodeMatches = rowGroupColumn === childRowNode.rowGroupColumn;\n if (thisRowNodeMatches) {\n return;\n }\n if (clearOperation) {\n // if doing a clear operation, we clear down the value for every possible group column\n childRowNode.setGroupValue(groupDisplayCol.getId(), undefined);\n }\n else {\n // if doing a set operation, we set only where the pull down is to occur\n var parentToStealFrom = childRowNode.getFirstChildOfFirstChild(rowGroupColumn);\n if (parentToStealFrom) {\n childRowNode.setGroupValue(groupDisplayCol.getId(), parentToStealFrom.key);\n }\n }\n });\n });\n };\n __decorate$7([\n Autowired('columnModel')\n ], SortService.prototype, \"columnModel\", void 0);\n __decorate$7([\n Autowired('rowNodeSorter')\n ], SortService.prototype, \"rowNodeSorter\", void 0);\n __decorate$7([\n PostConstruct\n ], SortService.prototype, \"init\", null);\n SortService = __decorate$7([\n Bean('sortService')\n ], SortService);\n return SortService;\n}(BeanStub));\n\nvar __extends$7 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$6 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FilterService = /** @class */ (function (_super) {\n __extends$7(FilterService, _super);\n function FilterService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FilterService.prototype.filter = function (changedPath) {\n var filterActive = this.filterManager.isChildFilterPresent();\n this.filterNodes(filterActive, changedPath);\n };\n FilterService.prototype.filterNodes = function (filterActive, changedPath) {\n var _this = this;\n var filterCallback = function (rowNode, includeChildNodes) {\n // recursively get all children that are groups to also filter\n if (rowNode.hasChildren()) {\n // result of filter for this node. when filtering tree data, includeChildNodes = true when parent passes\n if (filterActive && !includeChildNodes) {\n rowNode.childrenAfterFilter = rowNode.childrenAfterGroup.filter(function (childNode) {\n // a group is included in the result if it has any children of it's own.\n // by this stage, the child groups are already filtered\n var passBecauseChildren = childNode.childrenAfterFilter && childNode.childrenAfterFilter.length > 0;\n // both leaf level nodes and tree data nodes have data. these get added if\n // the data passes the filter\n var passBecauseDataPasses = childNode.data\n && _this.filterManager.doesRowPassFilter({ rowNode: childNode });\n // note - tree data nodes pass either if a) they pass themselves or b) any children of that node pass\n return passBecauseChildren || passBecauseDataPasses;\n });\n }\n else {\n // if not filtering, the result is the original list\n rowNode.childrenAfterFilter = rowNode.childrenAfterGroup;\n }\n }\n else {\n rowNode.childrenAfterFilter = rowNode.childrenAfterGroup;\n }\n if (rowNode.sibling) {\n rowNode.sibling.childrenAfterFilter = rowNode.childrenAfterFilter;\n }\n };\n if (this.doingTreeDataFiltering()) {\n var treeDataDepthFirstFilter_1 = function (rowNode, alreadyFoundInParent) {\n // tree data filter traverses the hierarchy depth first and includes child nodes if parent passes\n // filter, and parent nodes will be include if any children exist.\n if (rowNode.childrenAfterGroup) {\n for (var i = 0; i < rowNode.childrenAfterGroup.length; i++) {\n var childNode = rowNode.childrenAfterGroup[i];\n // first check if current node passes filter before invoking child nodes\n var foundInParent = alreadyFoundInParent\n || _this.filterManager.doesRowPassFilter({ rowNode: childNode });\n if (childNode.childrenAfterGroup) {\n treeDataDepthFirstFilter_1(rowNode.childrenAfterGroup[i], foundInParent);\n }\n else {\n filterCallback(childNode, foundInParent);\n }\n }\n }\n filterCallback(rowNode, alreadyFoundInParent);\n };\n var treeDataFilterCallback = function (rowNode) { return treeDataDepthFirstFilter_1(rowNode, false); };\n changedPath.executeFromRootNode(treeDataFilterCallback);\n }\n else {\n var defaultFilterCallback = function (rowNode) { return filterCallback(rowNode, false); };\n changedPath.forEachChangedNodeDepthFirst(defaultFilterCallback, true);\n }\n };\n FilterService.prototype.doingTreeDataFiltering = function () {\n return this.gridOptionsService.is('treeData') && !this.gridOptionsService.is('excludeChildrenWhenTreeDataFiltering');\n };\n __decorate$6([\n Autowired('filterManager')\n ], FilterService.prototype, \"filterManager\", void 0);\n FilterService = __decorate$6([\n Bean(\"filterService\")\n ], FilterService);\n return FilterService;\n}(BeanStub));\n\nvar __extends$6 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar ImmutableService = /** @class */ (function (_super) {\n __extends$6(ImmutableService, _super);\n function ImmutableService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ImmutableService.prototype.postConstruct = function () {\n if (this.rowModel.getType() === 'clientSide') {\n this.clientSideRowModel = this.rowModel;\n }\n };\n ImmutableService.prototype.isActive = function () {\n var getRowIdProvided = this.gridOptionsService.exists('getRowId');\n // this property is a backwards compatibility property, for those who want\n // the old behaviour of Row ID's but NOT Immutable Data.\n var resetRowDataOnUpdate = this.gridOptionsService.is('resetRowDataOnUpdate');\n if (resetRowDataOnUpdate) {\n return false;\n }\n return getRowIdProvided;\n };\n ImmutableService.prototype.setRowData = function (rowData) {\n var transactionAndMap = this.createTransactionForRowData(rowData);\n if (!transactionAndMap) {\n return;\n }\n var _a = __read(transactionAndMap, 2), transaction = _a[0], orderIdMap = _a[1];\n this.clientSideRowModel.updateRowData(transaction, orderIdMap);\n };\n // converts the setRowData() command to a transaction\n ImmutableService.prototype.createTransactionForRowData = function (rowData) {\n if (_.missing(this.clientSideRowModel)) {\n console.error('AG Grid: ImmutableService only works with ClientSideRowModel');\n return;\n }\n var getRowIdFunc = this.gridOptionsService.getCallback('getRowId');\n if (getRowIdFunc == null) {\n console.error('AG Grid: ImmutableService requires getRowId() callback to be implemented, your row data needs IDs!');\n return;\n }\n // convert the data into a transaction object by working out adds, removes and updates\n var transaction = {\n remove: [],\n update: [],\n add: []\n };\n var existingNodesMap = this.clientSideRowModel.getCopyOfNodesMap();\n var suppressSortOrder = this.gridOptionsService.is('suppressMaintainUnsortedOrder');\n var orderMap = suppressSortOrder ? undefined : {};\n if (_.exists(rowData)) {\n // split all the new data in the following:\n // if new, push to 'add'\n // if update, push to 'update'\n // if not changed, do not include in the transaction\n rowData.forEach(function (data, index) {\n var id = getRowIdFunc({ data: data, level: 0 });\n var existingNode = existingNodesMap[id];\n if (orderMap) {\n orderMap[id] = index;\n }\n if (existingNode) {\n var dataHasChanged = existingNode.data !== data;\n if (dataHasChanged) {\n transaction.update.push(data);\n }\n // otherwise, if data not changed, we just don't include it anywhere, as it's not a delta\n // remove from list, so we know the item is not to be removed\n existingNodesMap[id] = undefined;\n }\n else {\n transaction.add.push(data);\n }\n });\n }\n // at this point, all rows that are left, should be removed\n _.iterateObject(existingNodesMap, function (id, rowNode) {\n if (rowNode) {\n transaction.remove.push(rowNode.data);\n }\n });\n return [transaction, orderMap];\n };\n __decorate$5([\n Autowired('rowModel')\n ], ImmutableService.prototype, \"rowModel\", void 0);\n __decorate$5([\n Autowired('rowRenderer')\n ], ImmutableService.prototype, \"rowRenderer\", void 0);\n __decorate$5([\n PostConstruct\n ], ImmutableService.prototype, \"postConstruct\", null);\n ImmutableService = __decorate$5([\n Bean('immutableService')\n ], ImmutableService);\n return ImmutableService;\n}(BeanStub));\n\n// DO NOT UPDATE MANUALLY: Generated from script during build time\nvar VERSION$2 = '30.2.0';\n\nvar ClientSideRowModelModule = {\n version: VERSION$2,\n moduleName: ModuleNames.ClientSideRowModelModule,\n rowModel: 'clientSide',\n beans: [ClientSideRowModel, FilterStage, SortStage, FlattenStage, SortService, FilterService, ImmutableService],\n};\n\nvar __extends$5 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar InfiniteBlock = /** @class */ (function (_super) {\n __extends$5(InfiniteBlock, _super);\n function InfiniteBlock(id, parentCache, params) {\n var _this = _super.call(this, id) || this;\n _this.parentCache = parentCache;\n _this.params = params;\n // we don't need to calculate these now, as the inputs don't change,\n // however it makes the code easier to read if we work them out up front\n _this.startRow = id * params.blockSize;\n _this.endRow = _this.startRow + params.blockSize;\n return _this;\n }\n InfiniteBlock.prototype.postConstruct = function () {\n this.createRowNodes();\n };\n InfiniteBlock.prototype.getBlockStateJson = function () {\n return {\n id: '' + this.getId(),\n state: {\n blockNumber: this.getId(),\n startRow: this.getStartRow(),\n endRow: this.getEndRow(),\n pageStatus: this.getState()\n }\n };\n };\n InfiniteBlock.prototype.setDataAndId = function (rowNode, data, index) {\n if (_.exists(data)) {\n // this means if the user is not providing id's we just use the\n // index for the row. this will allow selection to work (that is based\n // on index) as long user is not inserting or deleting rows,\n // or wanting to keep selection between server side sorting or filtering\n rowNode.setDataAndId(data, index.toString());\n }\n else {\n rowNode.setDataAndId(undefined, undefined);\n }\n };\n InfiniteBlock.prototype.loadFromDatasource = function () {\n var _this = this;\n var params = this.createLoadParams();\n if (_.missing(this.params.datasource.getRows)) {\n console.warn(\"AG Grid: datasource is missing getRows method\");\n return;\n }\n // put in timeout, to force result to be async\n window.setTimeout(function () {\n _this.params.datasource.getRows(params);\n }, 0);\n };\n InfiniteBlock.prototype.processServerFail = function () {\n // todo - this method has better handling in SSRM\n };\n InfiniteBlock.prototype.createLoadParams = function () {\n // PROBLEM . . . . when the user sets sort via colDef.sort, then this code\n // is executing before the sort is set up, so server is not getting the sort\n // model. need to change with regards order - so the server side request is\n // AFTER thus it gets the right sort model.\n var params = {\n startRow: this.getStartRow(),\n endRow: this.getEndRow(),\n successCallback: this.pageLoaded.bind(this, this.getVersion()),\n failCallback: this.pageLoadFailed.bind(this, this.getVersion()),\n sortModel: this.params.sortModel,\n filterModel: this.params.filterModel,\n context: this.gridOptionsService.context\n };\n return params;\n };\n InfiniteBlock.prototype.forEachNode = function (callback, sequence, rowCount) {\n var _this = this;\n this.rowNodes.forEach(function (rowNode, index) {\n var rowIndex = _this.startRow + index;\n if (rowIndex < rowCount) {\n callback(rowNode, sequence.next());\n }\n });\n };\n InfiniteBlock.prototype.getLastAccessed = function () {\n return this.lastAccessed;\n };\n InfiniteBlock.prototype.getRow = function (rowIndex, dontTouchLastAccessed) {\n if (dontTouchLastAccessed === void 0) { dontTouchLastAccessed = false; }\n if (!dontTouchLastAccessed) {\n this.lastAccessed = this.params.lastAccessedSequence.next();\n }\n var localIndex = rowIndex - this.startRow;\n return this.rowNodes[localIndex];\n };\n InfiniteBlock.prototype.getStartRow = function () {\n return this.startRow;\n };\n InfiniteBlock.prototype.getEndRow = function () {\n return this.endRow;\n };\n // creates empty row nodes, data is missing as not loaded yet\n InfiniteBlock.prototype.createRowNodes = function () {\n this.rowNodes = [];\n for (var i = 0; i < this.params.blockSize; i++) {\n var rowIndex = this.startRow + i;\n var rowNode = new RowNode(this.beans);\n rowNode.setRowHeight(this.params.rowHeight);\n rowNode.uiLevel = 0;\n rowNode.setRowIndex(rowIndex);\n rowNode.setRowTop(this.params.rowHeight * rowIndex);\n this.rowNodes.push(rowNode);\n }\n };\n InfiniteBlock.prototype.processServerResult = function (params) {\n var _this = this;\n this.rowNodes.forEach(function (rowNode, index) {\n var data = params.rowData ? params.rowData[index] : undefined;\n if (!rowNode.id && rowNode.alreadyRendered && data) {\n // if the node had no id and was rendered, but we have data for it now, then\n // destroy the old row and copy its position into new row. This prevents an additional\n // set of events being fired as the row renderer tries to understand the changing id\n _this.rowNodes[index] = new RowNode(_this.beans);\n _this.rowNodes[index].setRowIndex(rowNode.rowIndex);\n _this.rowNodes[index].setRowTop(rowNode.rowTop);\n _this.rowNodes[index].setRowHeight(rowNode.rowHeight);\n // clean up the old row\n rowNode.clearRowTopAndRowIndex();\n }\n _this.setDataAndId(_this.rowNodes[index], data, _this.startRow + index);\n });\n var finalRowCount = params.rowCount != null && params.rowCount >= 0 ? params.rowCount : undefined;\n this.parentCache.pageLoaded(this, finalRowCount);\n };\n InfiniteBlock.prototype.destroyRowNodes = function () {\n this.rowNodes.forEach(function (rowNode) {\n // this is needed, so row render knows to fade out the row, otherwise it\n // sees row top is present, and thinks the row should be shown.\n rowNode.clearRowTopAndRowIndex();\n });\n };\n __decorate$4([\n Autowired('beans')\n ], InfiniteBlock.prototype, \"beans\", void 0);\n __decorate$4([\n PostConstruct\n ], InfiniteBlock.prototype, \"postConstruct\", null);\n __decorate$4([\n PreDestroy\n ], InfiniteBlock.prototype, \"destroyRowNodes\", null);\n return InfiniteBlock;\n}(RowNodeBlock));\n\nvar __extends$4 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __param = (undefined && undefined.__param) || function (paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n};\nvar InfiniteCache = /** @class */ (function (_super) {\n __extends$4(InfiniteCache, _super);\n function InfiniteCache(params) {\n var _this = _super.call(this) || this;\n _this.lastRowIndexKnown = false;\n _this.blocks = {};\n _this.blockCount = 0;\n _this.rowCount = params.initialRowCount;\n _this.params = params;\n return _this;\n }\n InfiniteCache.prototype.setBeans = function (loggerFactory) {\n this.logger = loggerFactory.create('InfiniteCache');\n };\n // the rowRenderer will not pass dontCreatePage, meaning when rendering the grid,\n // it will want new pages in the cache as it asks for rows. only when we are inserting /\n // removing rows via the api is dontCreatePage set, where we move rows between the pages.\n InfiniteCache.prototype.getRow = function (rowIndex, dontCreatePage) {\n if (dontCreatePage === void 0) { dontCreatePage = false; }\n var blockId = Math.floor(rowIndex / this.params.blockSize);\n var block = this.blocks[blockId];\n if (!block) {\n if (dontCreatePage) {\n return undefined;\n }\n block = this.createBlock(blockId);\n }\n return block.getRow(rowIndex);\n };\n InfiniteCache.prototype.createBlock = function (blockNumber) {\n var newBlock = this.createBean(new InfiniteBlock(blockNumber, this, this.params));\n this.blocks[newBlock.getId()] = newBlock;\n this.blockCount++;\n this.purgeBlocksIfNeeded(newBlock);\n this.params.rowNodeBlockLoader.addBlock(newBlock);\n return newBlock;\n };\n // we have this on infinite row model only, not server side row model,\n // because for server side, it would leave the children in inconsistent\n // state - eg if a node had children, but after the refresh it had data\n // for a different row, then the children would be with the wrong row node.\n InfiniteCache.prototype.refreshCache = function () {\n var nothingToRefresh = this.blockCount == 0;\n if (nothingToRefresh) {\n this.purgeCache();\n return;\n }\n this.getBlocksInOrder().forEach(function (block) { return block.setStateWaitingToLoad(); });\n this.params.rowNodeBlockLoader.checkBlockToLoad();\n };\n InfiniteCache.prototype.destroyAllBlocks = function () {\n var _this = this;\n this.getBlocksInOrder().forEach(function (block) { return _this.destroyBlock(block); });\n };\n InfiniteCache.prototype.getRowCount = function () {\n return this.rowCount;\n };\n InfiniteCache.prototype.isLastRowIndexKnown = function () {\n return this.lastRowIndexKnown;\n };\n // block calls this, when page loaded\n InfiniteCache.prototype.pageLoaded = function (block, lastRow) {\n // if we are not active, then we ignore all events, otherwise we could end up getting the\n // grid to refresh even though we are no longer the active cache\n if (!this.isAlive()) {\n return;\n }\n this.logger.log(\"onPageLoaded: page = \" + block.getId() + \", lastRow = \" + lastRow);\n this.checkRowCount(block, lastRow);\n // we fire cacheUpdated even if the row count has not changed, as some items need updating even\n // if no new rows to render. for example the pagination panel has '?' as the total rows when loading\n // is underway, which would need to get updated when loading finishes.\n this.onCacheUpdated();\n };\n InfiniteCache.prototype.purgeBlocksIfNeeded = function (blockToExclude) {\n var _this = this;\n // we exclude checking for the page just created, as this has yet to be accessed and hence\n // the lastAccessed stamp will not be updated for the first time yet\n var blocksForPurging = this.getBlocksInOrder().filter(function (b) { return b != blockToExclude; });\n var lastAccessedComparator = function (a, b) { return b.getLastAccessed() - a.getLastAccessed(); };\n blocksForPurging.sort(lastAccessedComparator);\n // we remove (maxBlocksInCache - 1) as we already excluded the 'just created' page.\n // in other words, after the splice operation below, we have taken out the blocks\n // we want to keep, which means we are left with blocks that we can potentially purge\n var maxBlocksProvided = this.params.maxBlocksInCache > 0;\n var blocksToKeep = maxBlocksProvided ? this.params.maxBlocksInCache - 1 : null;\n var emptyBlocksToKeep = InfiniteCache.MAX_EMPTY_BLOCKS_TO_KEEP - 1;\n blocksForPurging.forEach(function (block, index) {\n var purgeBecauseBlockEmpty = block.getState() === InfiniteBlock.STATE_WAITING_TO_LOAD && index >= emptyBlocksToKeep;\n var purgeBecauseCacheFull = maxBlocksProvided ? index >= blocksToKeep : false;\n if (purgeBecauseBlockEmpty || purgeBecauseCacheFull) {\n // if the block currently has rows been displayed, then don't remove it either.\n // this can happen if user has maxBlocks=2, and blockSize=5 (thus 10 max rows in cache)\n // but the screen is showing 20 rows, so at least 4 blocks are needed.\n if (_this.isBlockCurrentlyDisplayed(block)) {\n return;\n }\n // don't want to loose keyboard focus, so keyboard navigation can continue. so keep focused blocks.\n if (_this.isBlockFocused(block)) {\n return;\n }\n // at this point, block is not needed, so burn baby burn\n _this.removeBlockFromCache(block);\n }\n });\n };\n InfiniteCache.prototype.isBlockFocused = function (block) {\n var focusedCell = this.focusService.getFocusCellToUseAfterRefresh();\n if (!focusedCell) {\n return false;\n }\n if (focusedCell.rowPinned != null) {\n return false;\n }\n var blockIndexStart = block.getStartRow();\n var blockIndexEnd = block.getEndRow();\n var hasFocus = focusedCell.rowIndex >= blockIndexStart && focusedCell.rowIndex < blockIndexEnd;\n return hasFocus;\n };\n InfiniteCache.prototype.isBlockCurrentlyDisplayed = function (block) {\n var startIndex = block.getStartRow();\n var endIndex = block.getEndRow() - 1;\n return this.rowRenderer.isRangeInRenderedViewport(startIndex, endIndex);\n };\n InfiniteCache.prototype.removeBlockFromCache = function (blockToRemove) {\n if (!blockToRemove) {\n return;\n }\n this.destroyBlock(blockToRemove);\n // we do not want to remove the 'loaded' event listener, as the\n // concurrent loads count needs to be updated when the load is complete\n // if the purged page is in loading state\n };\n InfiniteCache.prototype.checkRowCount = function (block, lastRow) {\n // if client provided a last row, we always use it, as it could change between server calls\n // if user deleted data and then called refresh on the grid.\n if (typeof lastRow === 'number' && lastRow >= 0) {\n this.rowCount = lastRow;\n this.lastRowIndexKnown = true;\n }\n else if (!this.lastRowIndexKnown) {\n // otherwise, see if we need to add some virtual rows\n var lastRowIndex = (block.getId() + 1) * this.params.blockSize;\n var lastRowIndexPlusOverflow = lastRowIndex + this.params.overflowSize;\n if (this.rowCount < lastRowIndexPlusOverflow) {\n this.rowCount = lastRowIndexPlusOverflow;\n }\n }\n };\n InfiniteCache.prototype.setRowCount = function (rowCount, lastRowIndexKnown) {\n this.rowCount = rowCount;\n // if undefined is passed, we do not set this value, if one of {true,false}\n // is passed, we do set the value.\n if (_.exists(lastRowIndexKnown)) {\n this.lastRowIndexKnown = lastRowIndexKnown;\n }\n // if we are still searching, then the row count must not end at the end\n // of a particular page, otherwise the searching will not pop into the\n // next page\n if (!this.lastRowIndexKnown) {\n if (this.rowCount % this.params.blockSize === 0) {\n this.rowCount++;\n }\n }\n this.onCacheUpdated();\n };\n InfiniteCache.prototype.forEachNodeDeep = function (callback) {\n var _this = this;\n var sequence = new NumberSequence();\n this.getBlocksInOrder().forEach(function (block) { return block.forEachNode(callback, sequence, _this.rowCount); });\n };\n InfiniteCache.prototype.getBlocksInOrder = function () {\n // get all page id's as NUMBERS (not strings, as we need to sort as numbers) and in descending order\n var blockComparator = function (a, b) { return a.getId() - b.getId(); };\n var blocks = _.getAllValuesInObject(this.blocks).sort(blockComparator);\n return blocks;\n };\n InfiniteCache.prototype.destroyBlock = function (block) {\n delete this.blocks[block.getId()];\n this.destroyBean(block);\n this.blockCount--;\n this.params.rowNodeBlockLoader.removeBlock(block);\n };\n // gets called 1) row count changed 2) cache purged 3) items inserted\n InfiniteCache.prototype.onCacheUpdated = function () {\n if (this.isAlive()) {\n // if the virtualRowCount is shortened, then it's possible blocks exist that are no longer\n // in the valid range. so we must remove these. this can happen if user explicitly sets\n // the virtual row count, or the datasource returns a result and sets lastRow to something\n // less than virtualRowCount (can happen if user scrolls down, server reduces dataset size).\n this.destroyAllBlocksPastVirtualRowCount();\n // this results in both row models (infinite and server side) firing ModelUpdated,\n // however server side row model also updates the row indexes first\n var event_1 = {\n type: Events.EVENT_STORE_UPDATED\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n InfiniteCache.prototype.destroyAllBlocksPastVirtualRowCount = function () {\n var _this = this;\n var blocksToDestroy = [];\n this.getBlocksInOrder().forEach(function (block) {\n var startRow = block.getId() * _this.params.blockSize;\n if (startRow >= _this.rowCount) {\n blocksToDestroy.push(block);\n }\n });\n if (blocksToDestroy.length > 0) {\n blocksToDestroy.forEach(function (block) { return _this.destroyBlock(block); });\n }\n };\n InfiniteCache.prototype.purgeCache = function () {\n var _this = this;\n this.getBlocksInOrder().forEach(function (block) { return _this.removeBlockFromCache(block); });\n this.lastRowIndexKnown = false;\n // if zero rows in the cache, we need to get the SSRM to start asking for rows again.\n // otherwise if set to zero rows last time, and we don't update the row count, then after\n // the purge there will still be zero rows, meaning the SSRM won't request any rows.\n // to kick things off, at least one row needs to be asked for.\n if (this.rowCount === 0) {\n this.rowCount = this.params.initialRowCount;\n }\n this.onCacheUpdated();\n };\n InfiniteCache.prototype.getRowNodesInRange = function (firstInRange, lastInRange) {\n var _this = this;\n var result = [];\n var lastBlockId = -1;\n var inActiveRange = false;\n var numberSequence = new NumberSequence();\n // if only one node passed, we start the selection at the top\n if (_.missing(firstInRange)) {\n inActiveRange = true;\n }\n var foundGapInSelection = false;\n this.getBlocksInOrder().forEach(function (block) {\n if (foundGapInSelection) {\n return;\n }\n if (inActiveRange && (lastBlockId + 1 !== block.getId())) {\n foundGapInSelection = true;\n return;\n }\n lastBlockId = block.getId();\n block.forEachNode(function (rowNode) {\n var hitFirstOrLast = rowNode === firstInRange || rowNode === lastInRange;\n if (inActiveRange || hitFirstOrLast) {\n result.push(rowNode);\n }\n if (hitFirstOrLast) {\n inActiveRange = !inActiveRange;\n }\n }, numberSequence, _this.rowCount);\n });\n // inActiveRange will be still true if we never hit the second rowNode\n var invalidRange = foundGapInSelection || inActiveRange;\n return invalidRange ? [] : result;\n };\n // this property says how many empty blocks should be in a cache, eg if scrolls down fast and creates 10\n // blocks all for loading, the grid will only load the last 2 - it will assume the blocks the user quickly\n // scrolled over are not needed to be loaded.\n InfiniteCache.MAX_EMPTY_BLOCKS_TO_KEEP = 2;\n __decorate$3([\n Autowired('rowRenderer')\n ], InfiniteCache.prototype, \"rowRenderer\", void 0);\n __decorate$3([\n Autowired(\"focusService\")\n ], InfiniteCache.prototype, \"focusService\", void 0);\n __decorate$3([\n __param(0, Qualifier('loggerFactory'))\n ], InfiniteCache.prototype, \"setBeans\", null);\n __decorate$3([\n PreDestroy\n ], InfiniteCache.prototype, \"destroyAllBlocks\", null);\n return InfiniteCache;\n}(BeanStub));\n\nvar __extends$3 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar InfiniteRowModel = /** @class */ (function (_super) {\n __extends$3(InfiniteRowModel, _super);\n function InfiniteRowModel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n InfiniteRowModel.prototype.getRowBounds = function (index) {\n return {\n rowHeight: this.rowHeight,\n rowTop: this.rowHeight * index\n };\n };\n // we don't implement as lazy row heights is not supported in this row model\n InfiniteRowModel.prototype.ensureRowHeightsValid = function (startPixel, endPixel, startLimitIndex, endLimitIndex) {\n return false;\n };\n InfiniteRowModel.prototype.init = function () {\n var _this = this;\n if (!this.gridOptionsService.isRowModelType('infinite')) {\n return;\n }\n this.rowHeight = this.gridOptionsService.getRowHeightAsNumber();\n this.addEventListeners();\n this.addDestroyFunc(function () { return _this.destroyCache(); });\n this.verifyProps();\n };\n InfiniteRowModel.prototype.verifyProps = function () {\n if (this.gridOptionsService.exists('initialGroupOrderComparator')) {\n var message_1 = \"AG Grid: initialGroupOrderComparator cannot be used with Infinite Row Model. If using Infinite Row Model, then sorting is done on the server side, nothing to do with the client.\";\n _.doOnce(function () { return console.warn(message_1); }, 'IRM.InitialGroupOrderComparator');\n }\n };\n InfiniteRowModel.prototype.start = function () {\n this.setDatasource(this.gridOptionsService.get('datasource'));\n };\n InfiniteRowModel.prototype.destroyDatasource = function () {\n if (this.datasource) {\n this.getContext().destroyBean(this.datasource);\n this.rowRenderer.datasourceChanged();\n this.datasource = null;\n }\n };\n InfiniteRowModel.prototype.addEventListeners = function () {\n this.addManagedListener(this.eventService, Events.EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_SORT_CHANGED, this.onSortChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.onColumnEverything.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_STORE_UPDATED, this.onCacheUpdated.bind(this));\n };\n InfiniteRowModel.prototype.onFilterChanged = function () {\n this.reset();\n };\n InfiniteRowModel.prototype.onSortChanged = function () {\n this.reset();\n };\n InfiniteRowModel.prototype.onColumnEverything = function () {\n var resetRequired;\n // if cache params, we require reset only if sort model has changed. we don't need to check\n // for filter model, as the filter manager will fire an event when columns change that result\n // in the filter changing.\n if (this.cacheParams) {\n resetRequired = this.isSortModelDifferent();\n }\n else {\n // if no cacheParams, means first time creating the cache, so always create one\n resetRequired = true;\n }\n if (resetRequired) {\n this.reset();\n }\n };\n InfiniteRowModel.prototype.isSortModelDifferent = function () {\n return !_.jsonEquals(this.cacheParams.sortModel, this.sortController.getSortModel());\n };\n InfiniteRowModel.prototype.getType = function () {\n return 'infinite';\n };\n InfiniteRowModel.prototype.setDatasource = function (datasource) {\n this.destroyDatasource();\n this.datasource = datasource;\n // only reset if we have a valid datasource to working with\n if (datasource) {\n this.reset();\n }\n };\n InfiniteRowModel.prototype.isEmpty = function () {\n return !this.infiniteCache;\n };\n InfiniteRowModel.prototype.isRowsToRender = function () {\n return !!this.infiniteCache;\n };\n InfiniteRowModel.prototype.getNodesInRangeForSelection = function (firstInRange, lastInRange) {\n return this.infiniteCache ? this.infiniteCache.getRowNodesInRange(firstInRange, lastInRange) : [];\n };\n InfiniteRowModel.prototype.reset = function () {\n // important to return here, as the user could be setting filter or sort before\n // data-source is set\n if (!this.datasource) {\n return;\n }\n // if user is providing id's, then this means we can keep the selection between datasource hits,\n // as the rows will keep their unique id's even if, for example, server side sorting or filtering\n // is done.\n var getRowIdFunc = this.gridOptionsService.getCallback('getRowId');\n var userGeneratingIds = getRowIdFunc != null;\n if (!userGeneratingIds) {\n this.selectionService.reset();\n }\n this.resetCache();\n var event = this.createModelUpdatedEvent();\n this.eventService.dispatchEvent(event);\n };\n InfiniteRowModel.prototype.createModelUpdatedEvent = function () {\n return {\n type: Events.EVENT_MODEL_UPDATED,\n // not sure if these should all be false - noticed if after implementing,\n // maybe they should be true?\n newPage: false,\n newData: false,\n keepRenderedRows: true,\n animate: false\n };\n };\n InfiniteRowModel.prototype.resetCache = function () {\n // if not first time creating a cache, need to destroy the old one\n this.destroyCache();\n this.cacheParams = {\n // the user provided datasource\n datasource: this.datasource,\n // sort and filter model\n filterModel: this.filterManager.getFilterModel(),\n sortModel: this.sortController.getSortModel(),\n rowNodeBlockLoader: this.rowNodeBlockLoader,\n // properties - this way we take a snapshot of them, so if user changes any, they will be\n // used next time we create a new cache, which is generally after a filter or sort change,\n // or a new datasource is set\n initialRowCount: this.defaultIfInvalid(this.gridOptionsService.getNum('infiniteInitialRowCount'), 1),\n maxBlocksInCache: this.gridOptionsService.getNum('maxBlocksInCache'),\n rowHeight: this.gridOptionsService.getRowHeightAsNumber(),\n // if user doesn't provide overflow, we use default overflow of 1, so user can scroll past\n // the current page and request first row of next page\n overflowSize: this.defaultIfInvalid(this.gridOptionsService.getNum('cacheOverflowSize'), 1),\n // page size needs to be 1 or greater. having it at 1 would be silly, as you would be hitting the\n // server for one page at a time. so the default if not specified is 100.\n blockSize: this.defaultIfInvalid(this.gridOptionsService.getNum('cacheBlockSize'), 100),\n // the cache could create this, however it is also used by the pages, so handy to create it\n // here as the settings are also passed to the pages\n lastAccessedSequence: new NumberSequence()\n };\n this.infiniteCache = this.createBean(new InfiniteCache(this.cacheParams));\n };\n InfiniteRowModel.prototype.defaultIfInvalid = function (value, defaultValue) {\n return value > 0 ? value : defaultValue;\n };\n InfiniteRowModel.prototype.destroyCache = function () {\n if (this.infiniteCache) {\n this.infiniteCache = this.destroyBean(this.infiniteCache);\n }\n };\n InfiniteRowModel.prototype.onCacheUpdated = function () {\n var event = this.createModelUpdatedEvent();\n this.eventService.dispatchEvent(event);\n };\n InfiniteRowModel.prototype.getRow = function (rowIndex) {\n if (!this.infiniteCache) {\n return undefined;\n }\n if (rowIndex >= this.infiniteCache.getRowCount()) {\n return undefined;\n }\n return this.infiniteCache.getRow(rowIndex);\n };\n InfiniteRowModel.prototype.getRowNode = function (id) {\n var result;\n this.forEachNode(function (rowNode) {\n if (rowNode.id === id) {\n result = rowNode;\n }\n });\n return result;\n };\n InfiniteRowModel.prototype.forEachNode = function (callback) {\n if (this.infiniteCache) {\n this.infiniteCache.forEachNodeDeep(callback);\n }\n };\n InfiniteRowModel.prototype.getTopLevelRowCount = function () {\n return this.getRowCount();\n };\n InfiniteRowModel.prototype.getTopLevelRowDisplayedIndex = function (topLevelIndex) {\n return topLevelIndex;\n };\n InfiniteRowModel.prototype.getRowIndexAtPixel = function (pixel) {\n if (this.rowHeight !== 0) { // avoid divide by zero error\n var rowIndexForPixel = Math.floor(pixel / this.rowHeight);\n var lastRowIndex = this.getRowCount() - 1;\n if (rowIndexForPixel > lastRowIndex) {\n return lastRowIndex;\n }\n return rowIndexForPixel;\n }\n return 0;\n };\n InfiniteRowModel.prototype.getRowCount = function () {\n return this.infiniteCache ? this.infiniteCache.getRowCount() : 0;\n };\n InfiniteRowModel.prototype.isRowPresent = function (rowNode) {\n var foundRowNode = this.getRowNode(rowNode.id);\n return !!foundRowNode;\n };\n InfiniteRowModel.prototype.refreshCache = function () {\n if (this.infiniteCache) {\n this.infiniteCache.refreshCache();\n }\n };\n InfiniteRowModel.prototype.purgeCache = function () {\n if (this.infiniteCache) {\n this.infiniteCache.purgeCache();\n }\n };\n // for iRowModel\n InfiniteRowModel.prototype.isLastRowIndexKnown = function () {\n if (this.infiniteCache) {\n return this.infiniteCache.isLastRowIndexKnown();\n }\n return false;\n };\n InfiniteRowModel.prototype.setRowCount = function (rowCount, lastRowIndexKnown) {\n if (this.infiniteCache) {\n this.infiniteCache.setRowCount(rowCount, lastRowIndexKnown);\n }\n };\n __decorate$2([\n Autowired('filterManager')\n ], InfiniteRowModel.prototype, \"filterManager\", void 0);\n __decorate$2([\n Autowired('sortController')\n ], InfiniteRowModel.prototype, \"sortController\", void 0);\n __decorate$2([\n Autowired('selectionService')\n ], InfiniteRowModel.prototype, \"selectionService\", void 0);\n __decorate$2([\n Autowired('rowRenderer')\n ], InfiniteRowModel.prototype, \"rowRenderer\", void 0);\n __decorate$2([\n Autowired('rowNodeBlockLoader')\n ], InfiniteRowModel.prototype, \"rowNodeBlockLoader\", void 0);\n __decorate$2([\n PostConstruct\n ], InfiniteRowModel.prototype, \"init\", null);\n __decorate$2([\n PreDestroy\n ], InfiniteRowModel.prototype, \"destroyDatasource\", null);\n InfiniteRowModel = __decorate$2([\n Bean('rowModel')\n ], InfiniteRowModel);\n return InfiniteRowModel;\n}(BeanStub));\n\n// DO NOT UPDATE MANUALLY: Generated from script during build time\nvar VERSION$1 = '30.2.0';\n\nvar InfiniteRowModelModule = {\n version: VERSION$1,\n moduleName: ModuleNames.InfiniteRowModelModule,\n rowModel: 'infinite',\n beans: [InfiniteRowModel],\n};\n\nvar BaseCreator = /** @class */ (function () {\n function BaseCreator() {\n }\n BaseCreator.prototype.setBeans = function (beans) {\n this.beans = beans;\n };\n BaseCreator.prototype.getFileName = function (fileName) {\n var extension = this.getDefaultFileExtension();\n if (fileName == null || !fileName.length) {\n fileName = this.getDefaultFileName();\n }\n return fileName.indexOf('.') === -1 ? fileName + \".\" + extension : fileName;\n };\n BaseCreator.prototype.getData = function (params) {\n var serializingSession = this.createSerializingSession(params);\n var data = this.beans.gridSerializer.serialize(serializingSession, params);\n return data;\n };\n return BaseCreator;\n}());\n\nvar BaseGridSerializingSession = /** @class */ (function () {\n function BaseGridSerializingSession(config) {\n this.groupColumns = [];\n var columnModel = config.columnModel, valueService = config.valueService, gridOptionsService = config.gridOptionsService, valueFormatterService = config.valueFormatterService, valueParserService = config.valueParserService, processCellCallback = config.processCellCallback, processHeaderCallback = config.processHeaderCallback, processGroupHeaderCallback = config.processGroupHeaderCallback, processRowGroupCallback = config.processRowGroupCallback;\n this.columnModel = columnModel;\n this.valueService = valueService;\n this.gridOptionsService = gridOptionsService;\n this.valueFormatterService = valueFormatterService;\n this.valueParserService = valueParserService;\n this.processCellCallback = processCellCallback;\n this.processHeaderCallback = processHeaderCallback;\n this.processGroupHeaderCallback = processGroupHeaderCallback;\n this.processRowGroupCallback = processRowGroupCallback;\n }\n BaseGridSerializingSession.prototype.prepare = function (columnsToExport) {\n this.groupColumns = columnsToExport.filter(function (col) { return !!col.getColDef().showRowGroup; });\n };\n BaseGridSerializingSession.prototype.extractHeaderValue = function (column) {\n var value = this.getHeaderName(this.processHeaderCallback, column);\n return value != null ? value : '';\n };\n BaseGridSerializingSession.prototype.extractRowCellValue = function (column, index, accumulatedRowIndex, type, node) {\n // we render the group summary text e.g. \"-> Parent -> Child\"...\n var hideOpenParents = this.gridOptionsService.is('groupHideOpenParents');\n var value = ((!hideOpenParents || node.footer) && this.shouldRenderGroupSummaryCell(node, column, index))\n ? this.createValueForGroupNode(node)\n : this.valueService.getValue(column, node);\n var processedValue = this.processCell({\n accumulatedRowIndex: accumulatedRowIndex,\n rowNode: node,\n column: column,\n value: value,\n processCellCallback: this.processCellCallback,\n type: type\n });\n return processedValue;\n };\n BaseGridSerializingSession.prototype.shouldRenderGroupSummaryCell = function (node, column, currentColumnIndex) {\n var _a;\n var isGroupNode = node && node.group;\n // only on group rows\n if (!isGroupNode) {\n return false;\n }\n var currentColumnGroupIndex = this.groupColumns.indexOf(column);\n if (currentColumnGroupIndex !== -1) {\n if (((_a = node.groupData) === null || _a === void 0 ? void 0 : _a[column.getId()]) != null) {\n return true;\n }\n if (this.gridOptionsService.isRowModelType('serverSide') && node.group) {\n return true;\n }\n // if this is a top level footer, always render`Total` in the left-most cell\n if (node.footer && node.level === -1) {\n var colDef = column.getColDef();\n var isFullWidth = colDef == null || colDef.showRowGroup === true;\n return isFullWidth || colDef.showRowGroup === this.columnModel.getRowGroupColumns()[0].getId();\n }\n }\n var isGroupUseEntireRow = this.gridOptionsService.isGroupUseEntireRow(this.columnModel.isPivotMode());\n return currentColumnIndex === 0 && isGroupUseEntireRow;\n };\n BaseGridSerializingSession.prototype.getHeaderName = function (callback, column) {\n if (callback) {\n return callback({\n column: column,\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context\n });\n }\n return this.columnModel.getDisplayNameForColumn(column, 'csv', true);\n };\n BaseGridSerializingSession.prototype.createValueForGroupNode = function (node) {\n if (this.processRowGroupCallback) {\n return this.processRowGroupCallback({\n node: node,\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context,\n });\n }\n var isFooter = node.footer;\n var keys = [node.key];\n if (!this.gridOptionsService.isGroupMultiAutoColumn()) {\n while (node.parent) {\n node = node.parent;\n keys.push(node.key);\n }\n }\n var groupValue = keys.reverse().join(' -> ');\n return isFooter ? \"Total \" + groupValue : groupValue;\n };\n BaseGridSerializingSession.prototype.processCell = function (params) {\n var _this = this;\n var _a;\n var accumulatedRowIndex = params.accumulatedRowIndex, rowNode = params.rowNode, column = params.column, value = params.value, processCellCallback = params.processCellCallback, type = params.type;\n if (processCellCallback) {\n return {\n value: (_a = processCellCallback({\n accumulatedRowIndex: accumulatedRowIndex,\n column: column,\n node: rowNode,\n value: value,\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context,\n type: type,\n parseValue: function (valueToParse) { return _this.valueParserService.parseValue(column, rowNode, valueToParse, _this.valueService.getValue(column, rowNode)); },\n formatValue: function (valueToFormat) { var _a; return (_a = _this.valueFormatterService.formatValue(column, rowNode, valueToFormat)) !== null && _a !== void 0 ? _a : valueToFormat; }\n })) !== null && _a !== void 0 ? _a : ''\n };\n }\n if (column.getColDef().useValueFormatterForExport) {\n return {\n value: value !== null && value !== void 0 ? value : '',\n valueFormatted: this.valueFormatterService.formatValue(column, rowNode, value),\n };\n }\n return { value: value !== null && value !== void 0 ? value : '' };\n };\n return BaseGridSerializingSession;\n}());\n\nvar Downloader = /** @class */ (function () {\n function Downloader() {\n }\n Downloader.download = function (fileName, content) {\n var win = document.defaultView || window;\n if (!win) {\n console.warn('AG Grid: There is no `window` associated with the current `document`');\n return;\n }\n var element = document.createElement('a');\n // @ts-ignore\n var url = win.URL.createObjectURL(content);\n element.setAttribute('href', url);\n element.setAttribute('download', fileName);\n element.style.display = 'none';\n document.body.appendChild(element);\n element.dispatchEvent(new MouseEvent('click', {\n bubbles: false,\n cancelable: true,\n view: win\n }));\n document.body.removeChild(element);\n win.setTimeout(function () {\n // @ts-ignore\n win.URL.revokeObjectURL(url);\n }, 0);\n };\n return Downloader;\n}());\n\nvar __extends$2 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar LINE_SEPARATOR$1 = '\\r\\n';\nvar CsvSerializingSession = /** @class */ (function (_super) {\n __extends$2(CsvSerializingSession, _super);\n function CsvSerializingSession(config) {\n var _this = _super.call(this, config) || this;\n _this.isFirstLine = true;\n _this.result = '';\n var suppressQuotes = config.suppressQuotes, columnSeparator = config.columnSeparator;\n _this.suppressQuotes = suppressQuotes;\n _this.columnSeparator = columnSeparator;\n return _this;\n }\n CsvSerializingSession.prototype.addCustomContent = function (content) {\n var _this = this;\n if (!content) {\n return;\n }\n if (typeof content === 'string') {\n if (!/^\\s*\\n/.test(content)) {\n this.beginNewLine();\n }\n // replace whatever newlines are supplied with the style we're using\n content = content.replace(/\\r?\\n/g, LINE_SEPARATOR$1);\n this.result += content;\n }\n else {\n content.forEach(function (row) {\n _this.beginNewLine();\n row.forEach(function (cell, index) {\n if (index !== 0) {\n _this.result += _this.columnSeparator;\n }\n _this.result += _this.putInQuotes(cell.data.value || '');\n if (cell.mergeAcross) {\n _this.appendEmptyCells(cell.mergeAcross);\n }\n });\n });\n }\n };\n CsvSerializingSession.prototype.onNewHeaderGroupingRow = function () {\n this.beginNewLine();\n return {\n onColumn: this.onNewHeaderGroupingRowColumn.bind(this)\n };\n };\n CsvSerializingSession.prototype.onNewHeaderGroupingRowColumn = function (columnGroup, header, index, span) {\n if (index != 0) {\n this.result += this.columnSeparator;\n }\n this.result += this.putInQuotes(header);\n this.appendEmptyCells(span);\n };\n CsvSerializingSession.prototype.appendEmptyCells = function (count) {\n for (var i = 1; i <= count; i++) {\n this.result += this.columnSeparator + this.putInQuotes(\"\");\n }\n };\n CsvSerializingSession.prototype.onNewHeaderRow = function () {\n this.beginNewLine();\n return {\n onColumn: this.onNewHeaderRowColumn.bind(this)\n };\n };\n CsvSerializingSession.prototype.onNewHeaderRowColumn = function (column, index) {\n if (index != 0) {\n this.result += this.columnSeparator;\n }\n this.result += this.putInQuotes(this.extractHeaderValue(column));\n };\n CsvSerializingSession.prototype.onNewBodyRow = function () {\n this.beginNewLine();\n return {\n onColumn: this.onNewBodyRowColumn.bind(this)\n };\n };\n CsvSerializingSession.prototype.onNewBodyRowColumn = function (column, index, node) {\n var _a;\n if (index != 0) {\n this.result += this.columnSeparator;\n }\n var rowCellValue = this.extractRowCellValue(column, index, index, 'csv', node);\n this.result += this.putInQuotes((_a = rowCellValue.valueFormatted) !== null && _a !== void 0 ? _a : rowCellValue.value);\n };\n CsvSerializingSession.prototype.putInQuotes = function (value) {\n if (this.suppressQuotes) {\n return value;\n }\n if (value === null || value === undefined) {\n return '\"\"';\n }\n var stringValue;\n if (typeof value === 'string') {\n stringValue = value;\n }\n else if (typeof value.toString === 'function') {\n stringValue = value.toString();\n }\n else {\n console.warn('AG Grid: unknown value type during csv conversion');\n stringValue = '';\n }\n // replace each \" with \"\" (ie two sets of double quotes is how to do double quotes in csv)\n var valueEscaped = stringValue.replace(/\"/g, \"\\\"\\\"\");\n return '\"' + valueEscaped + '\"';\n };\n CsvSerializingSession.prototype.parse = function () {\n return this.result;\n };\n CsvSerializingSession.prototype.beginNewLine = function () {\n if (!this.isFirstLine) {\n this.result += LINE_SEPARATOR$1;\n }\n this.isFirstLine = false;\n };\n return CsvSerializingSession;\n}(BaseGridSerializingSession));\n\nvar __extends$1 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CsvCreator = /** @class */ (function (_super) {\n __extends$1(CsvCreator, _super);\n function CsvCreator() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CsvCreator.prototype.postConstruct = function () {\n this.setBeans({\n gridSerializer: this.gridSerializer,\n gridOptionsService: this.gridOptionsService\n });\n };\n CsvCreator.prototype.getMergedParams = function (params) {\n var baseParams = this.gridOptionsService.get('defaultCsvExportParams');\n return Object.assign({}, baseParams, params);\n };\n CsvCreator.prototype.export = function (userParams) {\n if (this.isExportSuppressed()) {\n console.warn(\"AG Grid: Export cancelled. Export is not allowed as per your configuration.\");\n return '';\n }\n var mergedParams = this.getMergedParams(userParams);\n var data = this.getData(mergedParams);\n var packagedFile = new Blob([\"\\ufeff\", data], { type: 'text/plain' });\n Downloader.download(this.getFileName(mergedParams.fileName), packagedFile);\n return data;\n };\n CsvCreator.prototype.exportDataAsCsv = function (params) {\n return this.export(params);\n };\n CsvCreator.prototype.getDataAsCsv = function (params, skipDefaultParams) {\n if (skipDefaultParams === void 0) { skipDefaultParams = false; }\n var mergedParams = skipDefaultParams\n ? Object.assign({}, params)\n : this.getMergedParams(params);\n return this.getData(mergedParams);\n };\n CsvCreator.prototype.getDefaultFileName = function () {\n return 'export.csv';\n };\n CsvCreator.prototype.getDefaultFileExtension = function () {\n return 'csv';\n };\n CsvCreator.prototype.createSerializingSession = function (params) {\n var _a = this, columnModel = _a.columnModel, valueService = _a.valueService, gridOptionsService = _a.gridOptionsService, valueFormatterService = _a.valueFormatterService, valueParserService = _a.valueParserService;\n var _b = params, processCellCallback = _b.processCellCallback, processHeaderCallback = _b.processHeaderCallback, processGroupHeaderCallback = _b.processGroupHeaderCallback, processRowGroupCallback = _b.processRowGroupCallback, suppressQuotes = _b.suppressQuotes, columnSeparator = _b.columnSeparator;\n return new CsvSerializingSession({\n columnModel: columnModel,\n valueService: valueService,\n gridOptionsService: gridOptionsService,\n valueFormatterService: valueFormatterService,\n valueParserService: valueParserService,\n processCellCallback: processCellCallback || undefined,\n processHeaderCallback: processHeaderCallback || undefined,\n processGroupHeaderCallback: processGroupHeaderCallback || undefined,\n processRowGroupCallback: processRowGroupCallback || undefined,\n suppressQuotes: suppressQuotes || false,\n columnSeparator: columnSeparator || ','\n });\n };\n CsvCreator.prototype.isExportSuppressed = function () {\n return this.gridOptionsService.is('suppressCsvExport');\n };\n __decorate$1([\n Autowired('columnModel')\n ], CsvCreator.prototype, \"columnModel\", void 0);\n __decorate$1([\n Autowired('valueService')\n ], CsvCreator.prototype, \"valueService\", void 0);\n __decorate$1([\n Autowired('gridSerializer')\n ], CsvCreator.prototype, \"gridSerializer\", void 0);\n __decorate$1([\n Autowired('gridOptionsService')\n ], CsvCreator.prototype, \"gridOptionsService\", void 0);\n __decorate$1([\n Autowired('valueFormatterService')\n ], CsvCreator.prototype, \"valueFormatterService\", void 0);\n __decorate$1([\n Autowired('valueParserService')\n ], CsvCreator.prototype, \"valueParserService\", void 0);\n __decorate$1([\n PostConstruct\n ], CsvCreator.prototype, \"postConstruct\", null);\n CsvCreator = __decorate$1([\n Bean('csvCreator')\n ], CsvCreator);\n return CsvCreator;\n}(BaseCreator));\n\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RowType;\n(function (RowType) {\n RowType[RowType[\"HEADER_GROUPING\"] = 0] = \"HEADER_GROUPING\";\n RowType[RowType[\"HEADER\"] = 1] = \"HEADER\";\n RowType[RowType[\"BODY\"] = 2] = \"BODY\";\n})(RowType || (RowType = {}));\nvar GridSerializer = /** @class */ (function (_super) {\n __extends(GridSerializer, _super);\n function GridSerializer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GridSerializer.prototype.serialize = function (gridSerializingSession, params) {\n if (params === void 0) { params = {}; }\n var columnsToExport = this.getColumnsToExport(params.allColumns, params.columnKeys);\n var serializeChain = _.compose(\n // first pass, put in the header names of the cols\n this.prepareSession(columnsToExport), this.prependContent(params), this.exportColumnGroups(params, columnsToExport), this.exportHeaders(params, columnsToExport), this.processPinnedTopRows(params, columnsToExport), this.processRows(params, columnsToExport), this.processPinnedBottomRows(params, columnsToExport), this.appendContent(params));\n return serializeChain(gridSerializingSession).parse();\n };\n GridSerializer.prototype.processRow = function (gridSerializingSession, params, columnsToExport, node) {\n var rowSkipper = params.shouldRowBeSkipped || (function () { return false; });\n var context = this.gridOptionsService.context;\n var api = this.gridOptionsService.api;\n var columnApi = this.gridOptionsService.columnApi;\n var skipSingleChildrenGroup = this.gridOptionsService.is('groupRemoveSingleChildren');\n var skipLowestSingleChildrenGroup = this.gridOptionsService.is('groupRemoveLowestSingleChildren');\n // if onlySelected, we ignore groupHideOpenParents as the user has explicitly selected the rows they wish to export.\n // similarly, if specific rowNodes are provided we do the same. (the clipboard service uses rowNodes to define which rows to export)\n var isClipboardExport = params.rowPositions != null;\n var isExplicitExportSelection = isClipboardExport || !!params.onlySelected;\n var hideOpenParents = this.gridOptionsService.is('groupHideOpenParents') && !isExplicitExportSelection;\n var isLeafNode = this.columnModel.isPivotMode() ? node.leafGroup : !node.group;\n var isFooter = !!node.footer;\n var skipRowGroups = params.skipGroups || params.skipRowGroups;\n var shouldSkipLowestGroup = skipLowestSingleChildrenGroup && node.leafGroup;\n var shouldSkipCurrentGroup = node.allChildrenCount === 1 && (skipSingleChildrenGroup || shouldSkipLowestGroup);\n if (skipRowGroups && params.skipGroups) {\n _.doOnce(function () { return console.warn('AG Grid: Since v25.2 `skipGroups` has been renamed to `skipRowGroups`.'); }, 'gridSerializer-skipGroups');\n }\n if ((!isLeafNode && !isFooter && (params.skipRowGroups || shouldSkipCurrentGroup || hideOpenParents)) ||\n (params.onlySelected && !node.isSelected()) ||\n (params.skipPinnedTop && node.rowPinned === 'top') ||\n (params.skipPinnedBottom && node.rowPinned === 'bottom')) {\n return;\n }\n // if we are in pivotMode, then the grid will show the root node only\n // if it's not a leaf group\n var nodeIsRootNode = node.level === -1;\n if (nodeIsRootNode && !isLeafNode && !isFooter) {\n return;\n }\n var shouldRowBeSkipped = rowSkipper({ node: node, api: api, columnApi: columnApi, context: context });\n if (shouldRowBeSkipped) {\n return;\n }\n var rowAccumulator = gridSerializingSession.onNewBodyRow(node);\n columnsToExport.forEach(function (column, index) {\n rowAccumulator.onColumn(column, index, node);\n });\n if (params.getCustomContentBelowRow) {\n var content = params.getCustomContentBelowRow({ node: node, api: api, columnApi: columnApi, context: context });\n if (content) {\n gridSerializingSession.addCustomContent(content);\n }\n }\n };\n GridSerializer.prototype.appendContent = function (params) {\n return function (gridSerializingSession) {\n var appendContent = params.customFooter || params.appendContent;\n if (appendContent) {\n if (params.customFooter) {\n _.doOnce(function () { return console.warn('AG Grid: Since version 25.2.0 the `customFooter` param has been deprecated. Use `appendContent` instead.'); }, 'gridSerializer-customFooter');\n }\n gridSerializingSession.addCustomContent(appendContent);\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.prependContent = function (params) {\n return function (gridSerializingSession) {\n var prependContent = params.customHeader || params.prependContent;\n if (prependContent) {\n if (params.customHeader) {\n _.doOnce(function () { return console.warn('AG Grid: Since version 25.2.0 the `customHeader` param has been deprecated. Use `prependContent` instead.'); }, 'gridSerializer-customHeader');\n }\n gridSerializingSession.addCustomContent(prependContent);\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.prepareSession = function (columnsToExport) {\n return function (gridSerializingSession) {\n gridSerializingSession.prepare(columnsToExport);\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.exportColumnGroups = function (params, columnsToExport) {\n var _this = this;\n return function (gridSerializingSession) {\n if (!params.skipColumnGroupHeaders) {\n var groupInstanceIdCreator = new GroupInstanceIdCreator();\n var displayedGroups = _this.displayedGroupCreator.createDisplayedGroups(columnsToExport, groupInstanceIdCreator, null);\n _this.recursivelyAddHeaderGroups(displayedGroups, gridSerializingSession, params.processGroupHeaderCallback);\n }\n else if (params.columnGroups) {\n _.doOnce(function () { return console.warn('AG Grid: Since v25.2 the `columnGroups` param has deprecated, and groups are exported by default.'); }, 'gridSerializer-columnGroups');\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.exportHeaders = function (params, columnsToExport) {\n return function (gridSerializingSession) {\n if (!params.skipHeader && !params.skipColumnHeaders) {\n var gridRowIterator_1 = gridSerializingSession.onNewHeaderRow();\n columnsToExport.forEach(function (column, index) {\n gridRowIterator_1.onColumn(column, index, undefined);\n });\n }\n else if (params.skipHeader) {\n _.doOnce(function () { return console.warn('AG Grid: Since v25.2 the `skipHeader` param has been renamed to `skipColumnHeaders`.'); }, 'gridSerializer-skipHeader');\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.processPinnedTopRows = function (params, columnsToExport) {\n var _this = this;\n return function (gridSerializingSession) {\n var processRow = _this.processRow.bind(_this, gridSerializingSession, params, columnsToExport);\n if (params.rowPositions) {\n params.rowPositions\n // only pinnedTop rows, other models are processed by `processRows` and `processPinnedBottomsRows`\n .filter(function (position) { return position.rowPinned === 'top'; })\n .sort(function (a, b) { return a.rowIndex - b.rowIndex; })\n .map(function (position) { return _this.pinnedRowModel.getPinnedTopRow(position.rowIndex); })\n .forEach(processRow);\n }\n else {\n _this.pinnedRowModel.forEachPinnedTopRow(processRow);\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.processRows = function (params, columnsToExport) {\n var _this = this;\n return function (gridSerializingSession) {\n // when in pivot mode, we always render cols on screen, never 'all columns'\n var rowModel = _this.rowModel;\n var rowModelType = rowModel.getType();\n var usingCsrm = rowModelType === 'clientSide';\n var usingSsrm = rowModelType === 'serverSide';\n var onlySelectedNonStandardModel = !usingCsrm && params.onlySelected;\n var processRow = _this.processRow.bind(_this, gridSerializingSession, params, columnsToExport);\n var _a = params.exportedRows, exportedRows = _a === void 0 ? 'filteredAndSorted' : _a;\n if (params.rowPositions) {\n params.rowPositions\n // pinnedRows are processed by `processPinnedTopRows` and `processPinnedBottomsRows`\n .filter(function (position) { return position.rowPinned == null; })\n .sort(function (a, b) { return a.rowIndex - b.rowIndex; })\n .map(function (position) { return rowModel.getRow(position.rowIndex); })\n .forEach(processRow);\n }\n else if (_this.columnModel.isPivotMode()) {\n if (usingCsrm) {\n rowModel.forEachPivotNode(processRow, true);\n }\n else if (usingSsrm) {\n rowModel.forEachNodeAfterFilterAndSort(processRow, true);\n }\n else {\n // must be enterprise, so we can just loop through all the nodes\n rowModel.forEachNode(processRow);\n }\n }\n else {\n // onlySelectedAllPages: user doing pagination and wants selected items from\n // other pages, so cannot use the standard row model as it won't have rows from\n // other pages.\n // onlySelectedNonStandardModel: if user wants selected in non standard row model\n // (eg viewport) then again RowModel cannot be used, so need to use selected instead.\n if (params.onlySelectedAllPages || onlySelectedNonStandardModel) {\n var selectedNodes = _this.selectionService.getSelectedNodes();\n _this.replicateSortedOrder(selectedNodes);\n // serialize each node\n selectedNodes.forEach(processRow);\n }\n else {\n // here is everything else - including standard row model and selected. we don't use\n // the selection model even when just using selected, so that the result is the order\n // of the rows appearing on the screen.\n if (exportedRows === 'all') {\n rowModel.forEachNode(processRow);\n }\n else if (usingCsrm) {\n rowModel.forEachNodeAfterFilterAndSort(processRow, true);\n }\n else if (usingSsrm) {\n rowModel.forEachNodeAfterFilterAndSort(processRow, true);\n }\n else {\n rowModel.forEachNode(processRow);\n }\n }\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.replicateSortedOrder = function (rows) {\n var _this = this;\n var sortOptions = this.sortController.getSortOptions();\n var compareNodes = function (rowA, rowB) {\n var _a, _b, _c, _d;\n if (rowA.rowIndex != null && rowB.rowIndex != null) {\n // if the rows have rowIndexes, this is the easiest way to compare,\n // as they're already ordered\n return rowA.rowIndex - rowB.rowIndex;\n }\n // if the level is the same, compare these nodes, or their parents\n if (rowA.level === rowB.level) {\n if (((_a = rowA.parent) === null || _a === void 0 ? void 0 : _a.id) === ((_b = rowB.parent) === null || _b === void 0 ? void 0 : _b.id)) {\n return _this.rowNodeSorter.compareRowNodes(sortOptions, {\n rowNode: rowA,\n currentPos: (_c = rowA.rowIndex) !== null && _c !== void 0 ? _c : -1,\n }, {\n rowNode: rowB,\n currentPos: (_d = rowB.rowIndex) !== null && _d !== void 0 ? _d : -1,\n });\n }\n // level is same, but parent isn't, compare parents\n return compareNodes(rowA.parent, rowB.parent);\n }\n // if level is different, match levels\n if (rowA.level > rowB.level) {\n return compareNodes(rowA.parent, rowB);\n }\n return compareNodes(rowA, rowB.parent);\n };\n // sort the nodes either by existing row index or compare them\n rows.sort(compareNodes);\n };\n GridSerializer.prototype.processPinnedBottomRows = function (params, columnsToExport) {\n var _this = this;\n return function (gridSerializingSession) {\n var processRow = _this.processRow.bind(_this, gridSerializingSession, params, columnsToExport);\n if (params.rowPositions) {\n params.rowPositions\n // only pinnedBottom rows, other models are processed by `processRows` and `processPinnedTopRows`\n .filter(function (position) { return position.rowPinned === 'bottom'; })\n .sort(function (a, b) { return a.rowIndex - b.rowIndex; })\n .map(function (position) { return _this.pinnedRowModel.getPinnedBottomRow(position.rowIndex); })\n .forEach(processRow);\n }\n else {\n _this.pinnedRowModel.forEachPinnedBottomRow(processRow);\n }\n return gridSerializingSession;\n };\n };\n GridSerializer.prototype.getColumnsToExport = function (allColumns, columnKeys) {\n if (allColumns === void 0) { allColumns = false; }\n var isPivotMode = this.columnModel.isPivotMode();\n if (columnKeys && columnKeys.length) {\n return this.columnModel.getGridColumns(columnKeys);\n }\n if (allColumns && !isPivotMode) {\n // add auto group column for tree data\n var columns = this.gridOptionsService.is('treeData')\n ? this.columnModel.getGridColumns([GROUP_AUTO_COLUMN_ID])\n : [];\n return columns.concat(this.columnModel.getAllGridColumns() || []);\n }\n return this.columnModel.getAllDisplayedColumns();\n };\n GridSerializer.prototype.recursivelyAddHeaderGroups = function (displayedGroups, gridSerializingSession, processGroupHeaderCallback) {\n var directChildrenHeaderGroups = [];\n displayedGroups.forEach(function (columnGroupChild) {\n var columnGroup = columnGroupChild;\n if (!columnGroup.getChildren) {\n return;\n }\n columnGroup.getChildren().forEach(function (it) { return directChildrenHeaderGroups.push(it); });\n });\n if (displayedGroups.length > 0 && displayedGroups[0] instanceof ColumnGroup) {\n this.doAddHeaderHeader(gridSerializingSession, displayedGroups, processGroupHeaderCallback);\n }\n if (directChildrenHeaderGroups && directChildrenHeaderGroups.length > 0) {\n this.recursivelyAddHeaderGroups(directChildrenHeaderGroups, gridSerializingSession, processGroupHeaderCallback);\n }\n };\n GridSerializer.prototype.doAddHeaderHeader = function (gridSerializingSession, displayedGroups, processGroupHeaderCallback) {\n var _this = this;\n var gridRowIterator = gridSerializingSession.onNewHeaderGroupingRow();\n var columnIndex = 0;\n displayedGroups.forEach(function (columnGroupChild) {\n var columnGroup = columnGroupChild;\n var name;\n if (processGroupHeaderCallback) {\n name = processGroupHeaderCallback({\n columnGroup: columnGroup,\n api: _this.gridOptionsService.api,\n columnApi: _this.gridOptionsService.columnApi,\n context: _this.gridOptionsService.context\n });\n }\n else {\n name = _this.columnModel.getDisplayNameForColumnGroup(columnGroup, 'header');\n }\n var collapsibleGroupRanges = columnGroup.getLeafColumns().reduce(function (collapsibleGroups, currentColumn, currentIdx, arr) {\n var lastGroup = _.last(collapsibleGroups);\n var groupShow = currentColumn.getColumnGroupShow() === 'open';\n if (!groupShow) {\n if (lastGroup && lastGroup[1] == null) {\n lastGroup[1] = currentIdx - 1;\n }\n }\n else if (!lastGroup || lastGroup[1] != null) {\n lastGroup = [currentIdx];\n collapsibleGroups.push(lastGroup);\n }\n if (currentIdx === arr.length - 1 && lastGroup && lastGroup[1] == null) {\n lastGroup[1] = currentIdx;\n }\n return collapsibleGroups;\n }, []);\n gridRowIterator.onColumn(columnGroup, name || '', columnIndex++, columnGroup.getLeafColumns().length - 1, collapsibleGroupRanges);\n });\n };\n __decorate([\n Autowired('displayedGroupCreator')\n ], GridSerializer.prototype, \"displayedGroupCreator\", void 0);\n __decorate([\n Autowired('columnModel')\n ], GridSerializer.prototype, \"columnModel\", void 0);\n __decorate([\n Autowired('rowModel')\n ], GridSerializer.prototype, \"rowModel\", void 0);\n __decorate([\n Autowired('pinnedRowModel')\n ], GridSerializer.prototype, \"pinnedRowModel\", void 0);\n __decorate([\n Autowired('selectionService')\n ], GridSerializer.prototype, \"selectionService\", void 0);\n __decorate([\n Autowired('rowNodeSorter')\n ], GridSerializer.prototype, \"rowNodeSorter\", void 0);\n __decorate([\n Autowired('sortController')\n ], GridSerializer.prototype, \"sortController\", void 0);\n GridSerializer = __decorate([\n Bean(\"gridSerializer\")\n ], GridSerializer);\n return GridSerializer;\n}(BeanStub));\n\n// DO NOT UPDATE MANUALLY: Generated from script during build time\nvar VERSION = '30.2.0';\n\nvar CsvExportModule = {\n version: VERSION,\n moduleName: ModuleNames.CsvExportModule,\n beans: [CsvCreator, GridSerializer]\n};\n\nvar LINE_SEPARATOR = '\\r\\n';\nvar XmlFactory = /** @class */ (function () {\n function XmlFactory() {\n }\n XmlFactory.createHeader = function (headerElement) {\n if (headerElement === void 0) { headerElement = {}; }\n var headerStart = '';\n var keys = ['version'];\n if (!headerElement.version) {\n headerElement.version = \"1.0\";\n }\n if (headerElement.encoding) {\n keys.push('encoding');\n }\n if (headerElement.standalone) {\n keys.push('standalone');\n }\n var att = keys.map(function (key) { return key + \"=\\\"\" + headerElement[key] + \"\\\"\"; }).join(' ');\n return headerStart + \"xml \" + att + \" \" + headerEnd;\n };\n XmlFactory.createXml = function (xmlElement, booleanTransformer) {\n var _this = this;\n var props = '';\n if (xmlElement.properties) {\n if (xmlElement.properties.prefixedAttributes) {\n xmlElement.properties.prefixedAttributes.forEach(function (prefixedSet) {\n Object.keys(prefixedSet.map).forEach(function (key) {\n props += _this.returnAttributeIfPopulated(prefixedSet.prefix + key, prefixedSet.map[key], booleanTransformer);\n });\n });\n }\n if (xmlElement.properties.rawMap) {\n Object.keys(xmlElement.properties.rawMap).forEach(function (key) {\n props += _this.returnAttributeIfPopulated(key, xmlElement.properties.rawMap[key], booleanTransformer);\n });\n }\n }\n var result = '<' + xmlElement.name + props;\n if (!xmlElement.children && xmlElement.textNode == null) {\n return result + '/>' + LINE_SEPARATOR;\n }\n if (xmlElement.textNode != null) {\n return result + '>' + xmlElement.textNode + '' + LINE_SEPARATOR;\n }\n result += '>' + LINE_SEPARATOR;\n if (xmlElement.children) {\n xmlElement.children.forEach(function (it) {\n result += _this.createXml(it, booleanTransformer);\n });\n }\n return result + '' + LINE_SEPARATOR;\n };\n XmlFactory.returnAttributeIfPopulated = function (key, value, booleanTransformer) {\n if (!value && value !== '' && value !== 0) {\n return '';\n }\n var xmlValue = value;\n if ((typeof (value) === 'boolean')) {\n if (booleanTransformer) {\n xmlValue = booleanTransformer(value);\n }\n }\n return \" \" + key + \"=\\\"\" + xmlValue + \"\\\"\";\n };\n return XmlFactory;\n}());\n\nvar __values = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// table for crc calculation\n// from: https://referencesource.microsoft.com/#System/sys/System/IO/compression/Crc32Helper.cs,3b31978c7d7f7246,references\nvar crcTable = new Uint32Array([\n 0x00000000, 0x77073096, 0xee0e612c, 0x990951ba, 0x076dc419, 0x706af48f,\n 0xe963a535, 0x9e6495a3, 0x0edb8832, 0x79dcb8a4, 0xe0d5e91e, 0x97d2d988,\n 0x09b64c2b, 0x7eb17cbd, 0xe7b82d07, 0x90bf1d91, 0x1db71064, 0x6ab020f2,\n 0xf3b97148, 0x84be41de, 0x1adad47d, 0x6ddde4eb, 0xf4d4b551, 0x83d385c7,\n 0x136c9856, 0x646ba8c0, 0xfd62f97a, 0x8a65c9ec, 0x14015c4f, 0x63066cd9,\n 0xfa0f3d63, 0x8d080df5, 0x3b6e20c8, 0x4c69105e, 0xd56041e4, 0xa2677172,\n 0x3c03e4d1, 0x4b04d447, 0xd20d85fd, 0xa50ab56b, 0x35b5a8fa, 0x42b2986c,\n 0xdbbbc9d6, 0xacbcf940, 0x32d86ce3, 0x45df5c75, 0xdcd60dcf, 0xabd13d59,\n 0x26d930ac, 0x51de003a, 0xc8d75180, 0xbfd06116, 0x21b4f4b5, 0x56b3c423,\n 0xcfba9599, 0xb8bda50f, 0x2802b89e, 0x5f058808, 0xc60cd9b2, 0xb10be924,\n 0x2f6f7c87, 0x58684c11, 0xc1611dab, 0xb6662d3d, 0x76dc4190, 0x01db7106,\n 0x98d220bc, 0xefd5102a, 0x71b18589, 0x06b6b51f, 0x9fbfe4a5, 0xe8b8d433,\n 0x7807c9a2, 0x0f00f934, 0x9609a88e, 0xe10e9818, 0x7f6a0dbb, 0x086d3d2d,\n 0x91646c97, 0xe6635c01, 0x6b6b51f4, 0x1c6c6162, 0x856530d8, 0xf262004e,\n 0x6c0695ed, 0x1b01a57b, 0x8208f4c1, 0xf50fc457, 0x65b0d9c6, 0x12b7e950,\n 0x8bbeb8ea, 0xfcb9887c, 0x62dd1ddf, 0x15da2d49, 0x8cd37cf3, 0xfbd44c65,\n 0x4db26158, 0x3ab551ce, 0xa3bc0074, 0xd4bb30e2, 0x4adfa541, 0x3dd895d7,\n 0xa4d1c46d, 0xd3d6f4fb, 0x4369e96a, 0x346ed9fc, 0xad678846, 0xda60b8d0,\n 0x44042d73, 0x33031de5, 0xaa0a4c5f, 0xdd0d7cc9, 0x5005713c, 0x270241aa,\n 0xbe0b1010, 0xc90c2086, 0x5768b525, 0x206f85b3, 0xb966d409, 0xce61e49f,\n 0x5edef90e, 0x29d9c998, 0xb0d09822, 0xc7d7a8b4, 0x59b33d17, 0x2eb40d81,\n 0xb7bd5c3b, 0xc0ba6cad, 0xedb88320, 0x9abfb3b6, 0x03b6e20c, 0x74b1d29a,\n 0xead54739, 0x9dd277af, 0x04db2615, 0x73dc1683, 0xe3630b12, 0x94643b84,\n 0x0d6d6a3e, 0x7a6a5aa8, 0xe40ecf0b, 0x9309ff9d, 0x0a00ae27, 0x7d079eb1,\n 0xf00f9344, 0x8708a3d2, 0x1e01f268, 0x6906c2fe, 0xf762575d, 0x806567cb,\n 0x196c3671, 0x6e6b06e7, 0xfed41b76, 0x89d32be0, 0x10da7a5a, 0x67dd4acc,\n 0xf9b9df6f, 0x8ebeeff9, 0x17b7be43, 0x60b08ed5, 0xd6d6a3e8, 0xa1d1937e,\n 0x38d8c2c4, 0x4fdff252, 0xd1bb67f1, 0xa6bc5767, 0x3fb506dd, 0x48b2364b,\n 0xd80d2bda, 0xaf0a1b4c, 0x36034af6, 0x41047a60, 0xdf60efc3, 0xa867df55,\n 0x316e8eef, 0x4669be79, 0xcb61b38c, 0xbc66831a, 0x256fd2a0, 0x5268e236,\n 0xcc0c7795, 0xbb0b4703, 0x220216b9, 0x5505262f, 0xc5ba3bbe, 0xb2bd0b28,\n 0x2bb45a92, 0x5cb36a04, 0xc2d7ffa7, 0xb5d0cf31, 0x2cd99e8b, 0x5bdeae1d,\n 0x9b64c2b0, 0xec63f226, 0x756aa39c, 0x026d930a, 0x9c0906a9, 0xeb0e363f,\n 0x72076785, 0x05005713, 0x95bf4a82, 0xe2b87a14, 0x7bb12bae, 0x0cb61b38,\n 0x92d28e9b, 0xe5d5be0d, 0x7cdcefb7, 0x0bdbdf21, 0x86d3d2d4, 0xf1d4e242,\n 0x68ddb3f8, 0x1fda836e, 0x81be16cd, 0xf6b9265b, 0x6fb077e1, 0x18b74777,\n 0x88085ae6, 0xff0f6a70, 0x66063bca, 0x11010b5c, 0x8f659eff, 0xf862ae69,\n 0x616bffd3, 0x166ccf45, 0xa00ae278, 0xd70dd2ee, 0x4e048354, 0x3903b3c2,\n 0xa7672661, 0xd06016f7, 0x4969474d, 0x3e6e77db, 0xaed16a4a, 0xd9d65adc,\n 0x40df0b66, 0x37d83bf0, 0xa9bcae53, 0xdebb9ec5, 0x47b2cf7f, 0x30b5ffe9,\n 0xbdbdf21c, 0xcabac28a, 0x53b39330, 0x24b4a3a6, 0xbad03605, 0xcdd70693,\n 0x54de5729, 0x23d967bf, 0xb3667a2e, 0xc4614ab8, 0x5d681b02, 0x2a6f2b94,\n 0xb40bbe37, 0xc30c8ea1, 0x5a05df1b, 0x2d02ef8d\n]);\nvar ZipContainer = /** @class */ (function () {\n function ZipContainer() {\n }\n ZipContainer.addFolders = function (paths) {\n paths.forEach(this.addFolder.bind(this));\n };\n ZipContainer.addFolder = function (path) {\n this.folders.push({\n path: path,\n created: new Date(),\n isBase64: false\n });\n };\n ZipContainer.addFile = function (path, content, isBase64) {\n if (isBase64 === void 0) { isBase64 = false; }\n this.files.push({\n path: path,\n created: new Date(),\n content: content,\n isBase64: isBase64\n });\n };\n ZipContainer.getContent = function (mimeType) {\n if (mimeType === void 0) { mimeType = 'application/zip'; }\n var textOutput = this.buildFileStream();\n var uInt8Output = this.buildUint8Array(textOutput);\n this.clearStream();\n return new Blob([uInt8Output], { type: mimeType });\n };\n ZipContainer.clearStream = function () {\n this.folders = [];\n this.files = [];\n };\n ZipContainer.buildFileStream = function (fData) {\n var e_1, _a;\n if (fData === void 0) { fData = ''; }\n var totalFiles = this.folders.concat(this.files);\n var len = totalFiles.length;\n var foData = '';\n var lL = 0;\n var cL = 0;\n try {\n for (var totalFiles_1 = __values(totalFiles), totalFiles_1_1 = totalFiles_1.next(); !totalFiles_1_1.done; totalFiles_1_1 = totalFiles_1.next()) {\n var currentFile = totalFiles_1_1.value;\n var _b = this.getHeader(currentFile, lL), fileHeader = _b.fileHeader, folderHeader = _b.folderHeader, content = _b.content;\n lL += fileHeader.length + content.length;\n cL += folderHeader.length;\n fData += fileHeader + content;\n foData += folderHeader;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (totalFiles_1_1 && !totalFiles_1_1.done && (_a = totalFiles_1.return)) _a.call(totalFiles_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var foEnd = this.buildFolderEnd(len, cL, lL);\n return fData + foData + foEnd;\n };\n ZipContainer.getHeader = function (currentFile, offset) {\n var content = currentFile.content, path = currentFile.path, created = currentFile.created, isBase64 = currentFile.isBase64;\n var utf8_encode = _.utf8_encode, decToHex = _.decToHex;\n var utfPath = utf8_encode(path);\n var isUTF8 = utfPath !== path;\n var time = this.convertTime(created);\n var dt = this.convertDate(created);\n var extraFields = '';\n if (isUTF8) {\n var uExtraFieldPath = decToHex(1, 1) + decToHex(this.getFromCrc32Table(utfPath), 4) + utfPath;\n extraFields = \"\\x75\\x70\" + decToHex(uExtraFieldPath.length, 2) + uExtraFieldPath;\n }\n var _a = !content ? { size: 0, content: '' } : this.getConvertedContent(content, isBase64), size = _a.size, convertedContent = _a.content;\n var header = '\\x0A\\x00' +\n (isUTF8 ? '\\x00\\x08' : '\\x00\\x00') +\n '\\x00\\x00' +\n decToHex(time, 2) + // last modified time\n decToHex(dt, 2) + // last modified date\n decToHex(size ? this.getFromCrc32Table(convertedContent) : 0, 4) +\n decToHex(size, 4) + // compressed size\n decToHex(size, 4) + // uncompressed size\n decToHex(utfPath.length, 2) + // file name length\n decToHex(extraFields.length, 2); // extra field length\n var fileHeader = 'PK\\x03\\x04' + header + utfPath + extraFields;\n var folderHeader = 'PK\\x01\\x02' + // central header\n '\\x14\\x00' +\n header + // file header\n '\\x00\\x00' +\n '\\x00\\x00' +\n '\\x00\\x00' +\n (content ? '\\x00\\x00\\x00\\x00' : '\\x10\\x00\\x00\\x00') + // external file attributes\n decToHex(offset, 4) + // relative offset of local header\n utfPath + // file name\n extraFields; // extra field\n return { fileHeader: fileHeader, folderHeader: folderHeader, content: convertedContent || '' };\n };\n ZipContainer.getConvertedContent = function (content, isBase64) {\n if (isBase64 === void 0) { isBase64 = false; }\n if (isBase64) {\n content = content.split(';base64,')[1];\n }\n content = isBase64 ? atob(content) : content;\n return {\n size: content.length,\n content: content\n };\n };\n ZipContainer.buildFolderEnd = function (tLen, cLen, lLen) {\n var decToHex = _.decToHex;\n return 'PK\\x05\\x06' + // central folder end\n '\\x00\\x00' +\n '\\x00\\x00' +\n decToHex(tLen, 2) + // total number of entries in the central folder\n decToHex(tLen, 2) + // total number of entries in the central folder\n decToHex(cLen, 4) + // size of the central folder\n decToHex(lLen, 4) + // central folder start offset\n '\\x00\\x00';\n };\n ZipContainer.buildUint8Array = function (content) {\n var uint8 = new Uint8Array(content.length);\n for (var i = 0; i < uint8.length; i++) {\n uint8[i] = content.charCodeAt(i);\n }\n return uint8;\n };\n ZipContainer.getFromCrc32Table = function (content) {\n if (!content.length) {\n return 0;\n }\n var size = content.length;\n var iterable = new Uint8Array(size);\n for (var i = 0; i < size; i++) {\n iterable[i] = content.charCodeAt(i);\n }\n var crc = 0 ^ (-1);\n var j = 0;\n var k = 0;\n var l = 0;\n for (var i = 0; i < size; i++) {\n j = iterable[i];\n k = (crc ^ j) & 0xFF;\n l = crcTable[k];\n crc = (crc >>> 8) ^ l;\n }\n return crc ^ (-1);\n };\n ZipContainer.convertTime = function (date) {\n var time = date.getHours();\n time <<= 6;\n time = time | date.getMinutes();\n time <<= 5;\n time = time | date.getSeconds() / 2;\n return time;\n };\n ZipContainer.convertDate = function (date) {\n var dt = date.getFullYear() - 1980;\n dt <<= 4;\n dt = dt | (date.getMonth() + 1);\n dt <<= 5;\n dt = dt | date.getDate();\n return dt;\n };\n ZipContainer.folders = [];\n ZipContainer.files = [];\n return ZipContainer;\n}());\n\nvar AllCommunityModules = [ClientSideRowModelModule, InfiniteRowModelModule, CsvExportModule];\n\nModuleRegistry.registerModules(AllCommunityModules);\n\nexport { AbstractHeaderCellCtrl, AgAbstractField, AgAbstractLabel, AgAutocomplete, AgCheckbox, AgDialog, AgGroupComponent, AgInputDateField, AgInputNumberField, AgInputRange, AgInputTextArea, AgInputTextField, AgMenuItemComponent, AgMenuList, AgMenuPanel, AgPanel, AgPickerField, AgPromise, AgPromiseStatus, AgRadioButton, AgRichSelect, AgSelect, AgSlider, AgStackComponentsRegistry, AgToggleButton, AlignedGridsService, AllCommunityModules, AnimateShowChangeCellRenderer, AnimateSlideCellRenderer, AnimationFrameService, AutoScrollService, AutoWidthCalculator, Autowired, BarColumnLabelPlacement, BaseComponentWrapper, BaseCreator, BaseGridSerializingSession, Bean, BeanStub, Beans, BodyDropPivotTarget, BodyDropTarget, CHART_TOOLBAR_ALLOW_LIST, CHART_TOOL_PANEL_ALLOW_LIST, CHART_TOOL_PANEL_MENU_OPTIONS, CellComp, CellCtrl, CellNavigationService, CellPositionUtils, CellRangeType, ChangedPath, CheckboxCellEditor, CheckboxCellRenderer, CheckboxSelectionComponent, ClientSideRowModelModule, ClientSideRowModelSteps, ColDefUtil, Column, ColumnApi, ColumnFactory, ColumnGroup, ColumnKeyCreator, ColumnModel, ColumnUtils, Component, ComponentUtil, Context, CssClassApplier, CssClassManager, CsvCreator, CsvExportModule, CtrlsService, CustomTooltipFeature, DEFAULT_CHART_GROUPS, DataTypeService, DateCellEditor, DateFilter, DateStringCellEditor, DisplayedGroupCreator, Downloader, DragAndDropService, DragService, DragSourceType, Environment, EventService, Events, ExcelFactoryMode, ExpressionService, FilterManager, FloatingFilterMapper, FocusService, GROUP_AUTO_COLUMN_ID, Grid, GridApi, GridBodyComp, GridBodyCtrl, GridComp, GridCoreCreator, GridCtrl, GridHeaderComp, GridHeaderCtrl, GridOptionsService, GridSerializer, GroupCellRenderer, GroupCellRendererCtrl, GroupInstanceIdCreator, HeaderCellCtrl, HeaderFilterCellComp, HeaderFilterCellCtrl, HeaderGroupCellCtrl, HeaderNavigationDirection, HeaderNavigationService, HeaderPositionUtils, HeaderRowComp, HeaderRowContainerComp, HeaderRowContainerCtrl, HeaderRowCtrl, HeaderRowType, HorizontalDirection, HorizontalResizeService, InfiniteRowModelModule, KeyCode, LargeTextCellEditor, LayoutCssClasses, LocaleService, Logger, LoggerFactory, ManagedFocusFeature, ModuleNames, ModuleRegistry, MouseEventService, MoveColumnFeature, NavigationService, NumberCellEditor, NumberFilter, NumberSequence, Optional, PaginationProxy, PinnedRowModel, PopupComponent, PopupEditorWrapper, PopupService, PositionableFeature, PostConstruct, PreConstruct, PreDestroy, PropertyKeys, ProvidedColumnGroup, ProvidedFilter, Qualifier, QuerySelector, RefSelector, ResizeObserverService, RowAnimationCssClasses, RowContainerComp, RowContainerCtrl, RowContainerName, RowContainerType, RowCtrl, RowHighlightPosition, RowNode, RowNodeBlock, RowNodeBlockLoader, RowNodeSorter, RowPositionUtils, RowRenderer, RowType, ScalarFilter, ScrollVisibleService, SelectCellEditor, SelectableService, SelectionHandleType, ServerSideTransactionResultStatus, SetLeftFeature, SimpleFilter, SortController, SortIndicatorComp, StandardMenuFactory, StylingService, TabGuardClassNames, TabGuardComp, TabGuardCtrl, TabbedLayout, TemplateService, TextCellEditor, TextFilter, TextFloatingFilter, Timer, TooltipFeature, TouchListener, UserComponentFactory, UserComponentRegistry, ValueCache, ValueFormatterService, ValueParserService, ValueService, VanillaFrameworkOverrides, VerticalDirection, VirtualList, VirtualListDragFeature, XmlFactory, ZipContainer, _, __FORCE_MODULE_DETECTION, getRowContainerTypeForName, simpleHttpRequest };\n","/**\n * @ag-grid-enterprise/all-modules - Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue * @version v30.2.0\n * @link https://www.ag-grid.com/\n * @license Commercial\n */\nimport { PreConstruct, Bean, BeanStub, Autowired, RefSelector, PostConstruct, Component, ModuleNames, Events, _, KeyCode, AgRichSelect, VirtualListDragFeature, DragSourceType, AgInputDateField, AgInputNumberField, AgInputTextField, TooltipFeature, DragAndDropService, TabGuardComp, VirtualList, AgDialog, FocusService, AgAutocomplete, ChangedPath, Optional, CsvExportModule, EventService, Column, ProvidedColumnGroup, AgMenuList, AgMenuItemComponent, CssClassApplier, TouchListener, PreDestroy, NumberSequence, RowNode, ManagedFocusFeature, PositionableFeature, AgSelect, AgPromise, ModuleRegistry, ExcelFactoryMode, XmlFactory, RowType, BaseGridSerializingSession, Downloader, BaseCreator, ZipContainer, GridSerializer, CsvCreator, AgGroupComponent, AutoScrollService, AgRadioButton, AgToggleButton, AgCheckbox, AgAbstractLabel, AgSlider, DEFAULT_CHART_GROUPS, TabbedLayout, CHART_TOOLBAR_ALLOW_LIST, CHART_TOOL_PANEL_ALLOW_LIST, CHART_TOOL_PANEL_MENU_OPTIONS, AgPanel, CellRangeType, CellCtrl, SelectionHandleType, AgPickerField, Grid, ProvidedFilter, PopupComponent, RowNodeBlock, ServerSideTransactionResultStatus, RowNodeBlockLoader, GROUP_AUTO_COLUMN_ID, TextFilter, AllCommunityModules } from 'ag-grid-community';\nexport * from 'ag-grid-community';\n\nvar MD5 = /** @class */ (function () {\n function MD5() {\n this.ieCompatibility = false;\n }\n MD5.prototype.init = function () {\n this.ieCompatibility = (this.md5('hello') != '5d41402abc4b2a76b9719d911017c592');\n };\n MD5.prototype.md5cycle = function (x, k) {\n var a = x[0], b = x[1], c = x[2], d = x[3];\n a = this.ff(a, b, c, d, k[0], 7, -680876936);\n d = this.ff(d, a, b, c, k[1], 12, -389564586);\n c = this.ff(c, d, a, b, k[2], 17, 606105819);\n b = this.ff(b, c, d, a, k[3], 22, -1044525330);\n a = this.ff(a, b, c, d, k[4], 7, -176418897);\n d = this.ff(d, a, b, c, k[5], 12, 1200080426);\n c = this.ff(c, d, a, b, k[6], 17, -1473231341);\n b = this.ff(b, c, d, a, k[7], 22, -45705983);\n a = this.ff(a, b, c, d, k[8], 7, 1770035416);\n d = this.ff(d, a, b, c, k[9], 12, -1958414417);\n c = this.ff(c, d, a, b, k[10], 17, -42063);\n b = this.ff(b, c, d, a, k[11], 22, -1990404162);\n a = this.ff(a, b, c, d, k[12], 7, 1804603682);\n d = this.ff(d, a, b, c, k[13], 12, -40341101);\n c = this.ff(c, d, a, b, k[14], 17, -1502002290);\n b = this.ff(b, c, d, a, k[15], 22, 1236535329);\n a = this.gg(a, b, c, d, k[1], 5, -165796510);\n d = this.gg(d, a, b, c, k[6], 9, -1069501632);\n c = this.gg(c, d, a, b, k[11], 14, 643717713);\n b = this.gg(b, c, d, a, k[0], 20, -373897302);\n a = this.gg(a, b, c, d, k[5], 5, -701558691);\n d = this.gg(d, a, b, c, k[10], 9, 38016083);\n c = this.gg(c, d, a, b, k[15], 14, -660478335);\n b = this.gg(b, c, d, a, k[4], 20, -405537848);\n a = this.gg(a, b, c, d, k[9], 5, 568446438);\n d = this.gg(d, a, b, c, k[14], 9, -1019803690);\n c = this.gg(c, d, a, b, k[3], 14, -187363961);\n b = this.gg(b, c, d, a, k[8], 20, 1163531501);\n a = this.gg(a, b, c, d, k[13], 5, -1444681467);\n d = this.gg(d, a, b, c, k[2], 9, -51403784);\n c = this.gg(c, d, a, b, k[7], 14, 1735328473);\n b = this.gg(b, c, d, a, k[12], 20, -1926607734);\n a = this.hh(a, b, c, d, k[5], 4, -378558);\n d = this.hh(d, a, b, c, k[8], 11, -2022574463);\n c = this.hh(c, d, a, b, k[11], 16, 1839030562);\n b = this.hh(b, c, d, a, k[14], 23, -35309556);\n a = this.hh(a, b, c, d, k[1], 4, -1530992060);\n d = this.hh(d, a, b, c, k[4], 11, 1272893353);\n c = this.hh(c, d, a, b, k[7], 16, -155497632);\n b = this.hh(b, c, d, a, k[10], 23, -1094730640);\n a = this.hh(a, b, c, d, k[13], 4, 681279174);\n d = this.hh(d, a, b, c, k[0], 11, -358537222);\n c = this.hh(c, d, a, b, k[3], 16, -722521979);\n b = this.hh(b, c, d, a, k[6], 23, 76029189);\n a = this.hh(a, b, c, d, k[9], 4, -640364487);\n d = this.hh(d, a, b, c, k[12], 11, -421815835);\n c = this.hh(c, d, a, b, k[15], 16, 530742520);\n b = this.hh(b, c, d, a, k[2], 23, -995338651);\n a = this.ii(a, b, c, d, k[0], 6, -198630844);\n d = this.ii(d, a, b, c, k[7], 10, 1126891415);\n c = this.ii(c, d, a, b, k[14], 15, -1416354905);\n b = this.ii(b, c, d, a, k[5], 21, -57434055);\n a = this.ii(a, b, c, d, k[12], 6, 1700485571);\n d = this.ii(d, a, b, c, k[3], 10, -1894986606);\n c = this.ii(c, d, a, b, k[10], 15, -1051523);\n b = this.ii(b, c, d, a, k[1], 21, -2054922799);\n a = this.ii(a, b, c, d, k[8], 6, 1873313359);\n d = this.ii(d, a, b, c, k[15], 10, -30611744);\n c = this.ii(c, d, a, b, k[6], 15, -1560198380);\n b = this.ii(b, c, d, a, k[13], 21, 1309151649);\n a = this.ii(a, b, c, d, k[4], 6, -145523070);\n d = this.ii(d, a, b, c, k[11], 10, -1120210379);\n c = this.ii(c, d, a, b, k[2], 15, 718787259);\n b = this.ii(b, c, d, a, k[9], 21, -343485551);\n x[0] = this.add32(a, x[0]);\n x[1] = this.add32(b, x[1]);\n x[2] = this.add32(c, x[2]);\n x[3] = this.add32(d, x[3]);\n };\n MD5.prototype.cmn = function (q, a, b, x, s, t) {\n a = this.add32(this.add32(a, q), this.add32(x, t));\n return this.add32((a << s) | (a >>> (32 - s)), b);\n };\n MD5.prototype.ff = function (a, b, c, d, x, s, t) {\n return this.cmn((b & c) | ((~b) & d), a, b, x, s, t);\n };\n MD5.prototype.gg = function (a, b, c, d, x, s, t) {\n return this.cmn((b & d) | (c & (~d)), a, b, x, s, t);\n };\n MD5.prototype.hh = function (a, b, c, d, x, s, t) {\n return this.cmn(b ^ c ^ d, a, b, x, s, t);\n };\n MD5.prototype.ii = function (a, b, c, d, x, s, t) {\n return this.cmn(c ^ (b | (~d)), a, b, x, s, t);\n };\n MD5.prototype.md51 = function (s) {\n var n = s.length;\n var state = [1732584193, -271733879, -1732584194, 271733878];\n var i;\n for (i = 64; i <= s.length; i += 64) {\n this.md5cycle(state, this.md5blk(s.substring(i - 64, i)));\n }\n s = s.substring(i - 64);\n var tail = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0];\n for (i = 0; i < s.length; i++) {\n tail[i >> 2] |= s.charCodeAt(i) << ((i % 4) << 3);\n }\n tail[i >> 2] |= 0x80 << ((i % 4) << 3);\n if (i > 55) {\n this.md5cycle(state, tail);\n for (i = 0; i < 16; i++) {\n tail[i] = 0;\n }\n }\n tail[14] = n * 8;\n this.md5cycle(state, tail);\n return state;\n };\n /* there needs to be support for Unicode here, * unless we pretend that we can redefine the MD-5\n * algorithm for multi-byte characters (perhaps by adding every four 16-bit characters and\n * shortening the sum to 32 bits). Otherwise I suthis.ggest performing MD-5 as if every character\n * was two bytes--e.g., 0040 0025 = @%--but then how will an ordinary MD-5 sum be matched?\n * There is no way to standardize text to something like UTF-8 before transformation; speed cost is\n * utterly prohibitive. The JavaScript standard itself needs to look at this: it should start\n * providing access to strings as preformed UTF-8 8-bit unsigned value arrays.\n */\n MD5.prototype.md5blk = function (s) {\n var md5blks = [];\n /* Andy King said do it this way. */\n for (var i = 0; i < 64; i += 4) {\n md5blks[i >> 2] = s.charCodeAt(i)\n + (s.charCodeAt(i + 1) << 8)\n + (s.charCodeAt(i + 2) << 16)\n + (s.charCodeAt(i + 3) << 24);\n }\n return md5blks;\n };\n MD5.prototype.rhex = function (n) {\n var hex_chr = '0123456789abcdef'.split('');\n var s = '', j = 0;\n for (; j < 4; j++) {\n s += hex_chr[(n >> (j * 8 + 4)) & 0x0F]\n + hex_chr[(n >> (j * 8)) & 0x0F];\n }\n return s;\n };\n MD5.prototype.hex = function (x) {\n for (var i = 0; i < x.length; i++) {\n x[i] = this.rhex(x[i]);\n }\n return x.join('');\n };\n MD5.prototype.md5 = function (s) {\n return this.hex(this.md51(s));\n };\n MD5.prototype.add32 = function (a, b) {\n return this.ieCompatibility ? this.add32Compat(a, b) : this.add32Std(a, b);\n };\n /* this function is much faster, so if possible we use it. Some IEs are the only ones I know of that\n need the idiotic second function, generated by an if clause. */\n MD5.prototype.add32Std = function (a, b) {\n return (a + b) & 0xFFFFFFFF;\n };\n MD5.prototype.add32Compat = function (x, y) {\n var lsw = (x & 0xFFFF) + (y & 0xFFFF), msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return (msw << 16) | (lsw & 0xFFFF);\n };\n return MD5;\n}());\n\nvar __read$1r = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n// move to general utils\nfunction missingOrEmpty(value) {\n return value == null || value.length === 0;\n}\nfunction exists(value, allowEmptyString) {\n if (allowEmptyString === void 0) { allowEmptyString = false; }\n return value != null && (value !== '' || allowEmptyString);\n}\nvar LicenseManager = /** @class */ (function () {\n function LicenseManager(document) {\n this.watermarkMessage = undefined;\n this.document = document;\n this.md5 = new MD5();\n this.md5.init();\n }\n LicenseManager.prototype.validateLicense = function () {\n if (missingOrEmpty(LicenseManager.licenseKey)) {\n if (!this.isWebsiteUrl() || this.isForceWatermark()) {\n this.outputMissingLicenseKey();\n }\n }\n else if (LicenseManager.licenseKey.length > 32) {\n if (LicenseManager.licenseKey.indexOf(\"For_Trialing_ag-Grid_Only\") !== -1) {\n this.outputInvalidLicenseKey();\n }\n else {\n var _a = LicenseManager.extractLicenseComponents(LicenseManager.licenseKey), md5 = _a.md5, license = _a.license, version = _a.version, isTrial = _a.isTrial;\n if (md5 === this.md5.md5(license)) {\n if (exists(version) && version) {\n this.validateLicenseKeyForVersion(version, !!isTrial, license);\n }\n else {\n this.validateLegacyKey(license);\n }\n }\n else {\n this.outputInvalidLicenseKey();\n }\n }\n }\n else {\n this.outputInvalidLicenseKey();\n }\n };\n LicenseManager.extractExpiry = function (license) {\n var restrictionHashed = license.substring(license.lastIndexOf('_') + 1, license.length);\n return new Date(parseInt(LicenseManager.decode(restrictionHashed), 10));\n };\n LicenseManager.extractLicenseComponents = function (licenseKey) {\n // when users copy the license key from a PDF extra zero width characters are sometimes copied too\n // carriage returns and line feeds are problematic too\n // all of which causes license key validation to fail - strip these out\n var cleanedLicenseKey = licenseKey.replace(/[\\u200B-\\u200D\\uFEFF]/g, '');\n cleanedLicenseKey = cleanedLicenseKey.replace(/\\r?\\n|\\r/g, '');\n var hashStart = cleanedLicenseKey.length - 32;\n var md5 = cleanedLicenseKey.substring(hashStart);\n var license = cleanedLicenseKey.substring(0, hashStart);\n var _a = __read$1r(LicenseManager.extractBracketedInformation(cleanedLicenseKey), 2), version = _a[0], isTrial = _a[1];\n return { md5: md5, license: license, version: version, isTrial: isTrial };\n };\n LicenseManager.prototype.getLicenseDetails = function (licenseKey) {\n var _a = LicenseManager.extractLicenseComponents(licenseKey), md5 = _a.md5, license = _a.license, version = _a.version, isTrial = _a.isTrial;\n var valid = (md5 === this.md5.md5(license)) && licenseKey.indexOf(\"For_Trialing_ag-Grid_Only\") === -1;\n var trialExpired = null;\n var expiry = null;\n if (valid) {\n expiry = LicenseManager.extractExpiry(license);\n valid = !isNaN(expiry.getTime());\n if (isTrial) {\n var now = new Date();\n trialExpired = (expiry < now);\n }\n }\n return {\n licenseKey: licenseKey,\n valid: valid,\n expiry: valid ? LicenseManager.formatDate(expiry) : null,\n version: version ? version : 'legacy',\n isTrial: isTrial,\n trialExpired: trialExpired\n };\n };\n LicenseManager.prototype.isDisplayWatermark = function () {\n return this.isForceWatermark() || (!this.isLocalhost() && !this.isWebsiteUrl() && !missingOrEmpty(this.watermarkMessage));\n };\n LicenseManager.prototype.getWatermarkMessage = function () {\n return this.watermarkMessage || '';\n };\n LicenseManager.prototype.getHostname = function () {\n var win = (this.document.defaultView || window);\n var loc = win.location;\n var _a = loc.hostname, hostname = _a === void 0 ? '' : _a;\n return hostname;\n };\n LicenseManager.prototype.isForceWatermark = function () {\n var win = (this.document.defaultView || window);\n var loc = win.location;\n var pathname = loc.pathname;\n return pathname ? pathname.indexOf('forceWatermark') !== -1 : false;\n };\n LicenseManager.prototype.isWebsiteUrl = function () {\n var hostname = this.getHostname();\n return hostname.match(/^((?:\\w+\\.)?ag-grid\\.com)$/) !== null;\n };\n LicenseManager.prototype.isLocalhost = function () {\n var hostname = this.getHostname();\n return hostname.match(/^(?:127\\.0\\.0\\.1|localhost)$/) !== null;\n };\n LicenseManager.formatDate = function (date) {\n var monthNames = [\n 'January', 'February', 'March',\n 'April', 'May', 'June', 'July',\n 'August', 'September', 'October',\n 'November', 'December'\n ];\n var day = date.getDate();\n var monthIndex = date.getMonth();\n var year = date.getFullYear();\n return day + ' ' + monthNames[monthIndex] + ' ' + year;\n };\n LicenseManager.getGridReleaseDate = function () {\n return new Date(parseInt(LicenseManager.decode(LicenseManager.RELEASE_INFORMATION), 10));\n };\n LicenseManager.decode = function (input) {\n var keystr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';\n var t = '';\n var n, r, i;\n var s, o, u, a;\n var f = 0;\n var e = input.replace(/[^A-Za-z0-9+/=]/g, '');\n while (f < e.length) {\n s = keystr.indexOf(e.charAt(f++));\n o = keystr.indexOf(e.charAt(f++));\n u = keystr.indexOf(e.charAt(f++));\n a = keystr.indexOf(e.charAt(f++));\n n = s << 2 | o >> 4;\n r = (o & 15) << 4 | u >> 2;\n i = (u & 3) << 6 | a;\n t = t + String.fromCharCode(n);\n if (u != 64) {\n t = t + String.fromCharCode(r);\n }\n if (a != 64) {\n t = t + String.fromCharCode(i);\n }\n }\n t = LicenseManager.utf8_decode(t);\n return t;\n };\n LicenseManager.utf8_decode = function (input) {\n input = input.replace(/rn/g, 'n');\n var t = '';\n for (var n = 0; n < input.length; n++) {\n var r = input.charCodeAt(n);\n if (r < 128) {\n t += String.fromCharCode(r);\n }\n else if (r > 127 && r < 2048) {\n t += String.fromCharCode(r >> 6 | 192);\n t += String.fromCharCode(r & 63 | 128);\n }\n else {\n t += String.fromCharCode(r >> 12 | 224);\n t += String.fromCharCode(r >> 6 & 63 | 128);\n t += String.fromCharCode(r & 63 | 128);\n }\n }\n return t;\n };\n LicenseManager.setLicenseKey = function (licenseKey) {\n this.licenseKey = licenseKey;\n };\n LicenseManager.extractBracketedInformation = function (licenseKey) {\n var matches = licenseKey.split('[')\n .filter(function (v) {\n return v.indexOf(']') > -1;\n })\n .map(function (value) {\n return value.split(']')[0];\n });\n if (!matches || matches.length === 0) {\n return [null, null];\n }\n var isTrial = matches.filter(function (match) { return match === 'TRIAL'; }).length === 1;\n var version = matches.filter(function (match) { return match.indexOf(\"v\") === 0; }).map(function (match) { return match.replace(/^v/, \"\"); })[0];\n return [version, isTrial];\n };\n LicenseManager.prototype.validateLicenseKeyForVersion = function (version, isTrial, license) {\n if (version !== '2') {\n return;\n }\n if (isTrial) {\n this.validateForTrial(license);\n }\n else {\n this.validateLegacyKey(license);\n }\n };\n LicenseManager.prototype.validateLegacyKey = function (license) {\n var gridReleaseDate = LicenseManager.getGridReleaseDate();\n var expiry = LicenseManager.extractExpiry(license);\n var valid = false;\n var current = false;\n if (!isNaN(expiry.getTime())) {\n valid = true;\n current = (gridReleaseDate < expiry);\n }\n if (!valid) {\n this.outputInvalidLicenseKey();\n }\n else if (!current) {\n var formattedExpiryDate = LicenseManager.formatDate(expiry);\n var formattedReleaseDate = LicenseManager.formatDate(gridReleaseDate);\n this.outputIncompatibleVersion(formattedExpiryDate, formattedReleaseDate);\n }\n };\n LicenseManager.prototype.validateForTrial = function (license) {\n var expiry = LicenseManager.extractExpiry(license);\n var now = new Date();\n var valid = false;\n var current = false;\n if (!isNaN(expiry.getTime())) {\n valid = true;\n current = (expiry > now);\n }\n if (!valid) {\n this.outputInvalidLicenseKey();\n }\n else if (!current) {\n var formattedExpiryDate = LicenseManager.formatDate(expiry);\n this.outputExpiredTrialKey(formattedExpiryDate);\n }\n };\n LicenseManager.prototype.outputInvalidLicenseKey = function () {\n console.error('*****************************************************************************************************************');\n console.error('***************************************** AG Grid Enterprise License ********************************************');\n console.error('********************************************* Invalid License ***************************************************');\n console.error('* Your license for AG Grid Enterprise is not valid - please contact info@ag-grid.com to obtain a valid license. *');\n console.error('*****************************************************************************************************************');\n console.error('*****************************************************************************************************************');\n this.watermarkMessage = \"Invalid License\";\n };\n LicenseManager.prototype.outputExpiredTrialKey = function (formattedExpiryDate) {\n console.error('****************************************************************************************************************');\n console.error('***************************************** AG Grid Enterprise License *******************************************');\n console.error('***************************************** Trial Period Expired. *******************************************');\n console.error(\"* Your license for AG Grid Enterprise expired on \" + formattedExpiryDate + \". *\");\n console.error('* Please email info@ag-grid.com to purchase a license. *');\n console.error('****************************************************************************************************************');\n console.error('****************************************************************************************************************');\n this.watermarkMessage = \"Trial Period Expired\";\n };\n LicenseManager.prototype.outputMissingLicenseKey = function () {\n console.error('****************************************************************************************************************');\n console.error('***************************************** AG Grid Enterprise License *******************************************');\n console.error('****************************************** License Key Not Found ***********************************************');\n console.error('* All AG Grid Enterprise features are unlocked. *');\n console.error('* This is an evaluation only version, it is not licensed for development projects intended for production. *');\n console.error('* If you want to hide the watermark, please email info@ag-grid.com for a trial license. *');\n console.error('****************************************************************************************************************');\n console.error('****************************************************************************************************************');\n this.watermarkMessage = \"For Trial Use Only\";\n };\n LicenseManager.prototype.outputIncompatibleVersion = function (formattedExpiryDate, formattedReleaseDate) {\n console.error('****************************************************************************************************************************');\n console.error('****************************************************************************************************************************');\n console.error('* AG Grid Enterprise License *');\n console.error('* License not compatible with installed version of AG Grid Enterprise. *');\n console.error('* *');\n console.error(\"* Your AG Grid License entitles you to all versions of AG Grid that we release within the time covered by your license *\");\n console.error(\"* - typically we provide one year licenses which entitles you to all releases / updates of AG Grid within that year. *\");\n console.error(\"* Your license has an end (expiry) date which stops the license key working with versions of AG Grid released after the *\");\n console.error(\"* license end date. The license key that you have expires on \" + formattedExpiryDate + \", however the version of AG Grid you *\");\n console.error(\"* are trying to use was released on \" + formattedReleaseDate + \". *\");\n console.error('* *');\n console.error('* Please contact info@ag-grid.com to renew your subscription to new versions and get a new license key to work with this *');\n console.error('* version of AG Grid. *');\n console.error('****************************************************************************************************************************');\n console.error('****************************************************************************************************************************');\n this.watermarkMessage = \"License Expired\";\n };\n LicenseManager.RELEASE_INFORMATION = 'MTY5NTU0ODUwMjk2NQ==';\n return LicenseManager;\n}());\n\nvar __extends$3F = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2N = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GridLicenseManager = /** @class */ (function (_super) {\n __extends$3F(GridLicenseManager, _super);\n function GridLicenseManager() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n GridLicenseManager.prototype.validateLicense = function () {\n this.licenseManager = new LicenseManager(this.gridOptionsService.getDocument());\n this.licenseManager.validateLicense();\n };\n GridLicenseManager.getLicenseDetails = function (licenseKey) {\n return new LicenseManager(null).getLicenseDetails(licenseKey);\n };\n GridLicenseManager.prototype.isDisplayWatermark = function () {\n return this.licenseManager.isDisplayWatermark();\n };\n GridLicenseManager.prototype.getWatermarkMessage = function () {\n return this.licenseManager.getWatermarkMessage();\n };\n GridLicenseManager.setLicenseKey = function (licenseKey) {\n LicenseManager.setLicenseKey(licenseKey);\n };\n __decorate$2N([\n PreConstruct\n ], GridLicenseManager.prototype, \"validateLicense\", null);\n GridLicenseManager = __decorate$2N([\n Bean('licenseManager')\n ], GridLicenseManager);\n return GridLicenseManager;\n}(BeanStub));\n\nvar __extends$3E = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2M = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar WatermarkComp = /** @class */ (function (_super) {\n __extends$3E(WatermarkComp, _super);\n function WatermarkComp() {\n return _super.call(this, /* html*/ \"
\\n
\\n
\") || this;\n }\n WatermarkComp.prototype.postConstruct = function () {\n var _this = this;\n var show = this.shouldDisplayWatermark();\n this.setDisplayed(show);\n if (show) {\n this.eLicenseTextRef.innerText = this.licenseManager.getWatermarkMessage();\n window.setTimeout(function () { return _this.addCssClass('ag-opacity-zero'); }, 0);\n window.setTimeout(function () { return _this.setDisplayed(false); }, 5000);\n }\n };\n WatermarkComp.prototype.shouldDisplayWatermark = function () {\n return this.licenseManager.isDisplayWatermark();\n };\n __decorate$2M([\n Autowired('licenseManager')\n ], WatermarkComp.prototype, \"licenseManager\", void 0);\n __decorate$2M([\n RefSelector('eLicenseTextRef')\n ], WatermarkComp.prototype, \"eLicenseTextRef\", void 0);\n __decorate$2M([\n PostConstruct\n ], WatermarkComp.prototype, \"postConstruct\", null);\n return WatermarkComp;\n}(Component));\n\n// DO NOT UPDATE MANUALLY: Generated from script during build time\nvar VERSION$j = '30.2.0';\n\nvar EnterpriseCoreModule = {\n version: VERSION$j,\n moduleName: ModuleNames.EnterpriseCoreModule,\n beans: [GridLicenseManager],\n agStackComponents: [\n { componentName: 'AgWatermark', componentClass: WatermarkComp }\n ]\n};\n\nvar __extends$3D = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2L = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AdvancedFilterHeaderComp = /** @class */ (function (_super) {\n __extends$3D(AdvancedFilterHeaderComp, _super);\n function AdvancedFilterHeaderComp(enabled) {\n var _this = _super.call(this, /* html */ \"\\n
\\n
\") || this;\n _this.enabled = enabled;\n return _this;\n }\n AdvancedFilterHeaderComp.prototype.postConstruct = function () {\n var _this = this;\n this.setupAdvancedFilter(this.enabled);\n this.addDestroyFunc(function () { return _this.destroyBean(_this.eAdvancedFilter); });\n this.addManagedListener(this.eventService, Events.EVENT_GRID_COLUMNS_CHANGED, function () { return _this.onGridColumnsChanged(); });\n this.addGuiEventListener('keydown', function (event) { return _this.onKeyDown(event); });\n this.addGuiEventListener('focusout', function (event) {\n if (!_this.getFocusableElement().contains(event.relatedTarget)) {\n _this.focusService.clearAdvancedFilterColumn();\n }\n });\n };\n AdvancedFilterHeaderComp.prototype.getFocusableElement = function () {\n var _a, _b;\n return (_b = (_a = this.eAdvancedFilter) === null || _a === void 0 ? void 0 : _a.getGui()) !== null && _b !== void 0 ? _b : this.getGui();\n };\n AdvancedFilterHeaderComp.prototype.setEnabled = function (enabled) {\n if (enabled === this.enabled) {\n return;\n }\n this.setupAdvancedFilter(enabled);\n };\n AdvancedFilterHeaderComp.prototype.refresh = function () {\n var _a;\n (_a = this.eAdvancedFilter) === null || _a === void 0 ? void 0 : _a.refresh();\n };\n AdvancedFilterHeaderComp.prototype.getHeight = function () {\n return this.height;\n };\n AdvancedFilterHeaderComp.prototype.setInputDisabled = function (disabled) {\n var _a;\n (_a = this.eAdvancedFilter) === null || _a === void 0 ? void 0 : _a.setInputDisabled(disabled);\n };\n AdvancedFilterHeaderComp.prototype.setupAdvancedFilter = function (enabled) {\n var eGui = this.getGui();\n if (enabled) {\n // unmanaged as can be recreated\n this.eAdvancedFilter = this.createBean(new AdvancedFilterComp());\n var eAdvancedFilterGui = this.eAdvancedFilter.getGui();\n this.eAdvancedFilter.addCssClass('ag-advanced-filter-header-cell');\n this.height = this.columnModel.getFloatingFiltersHeight();\n var height = this.height + \"px\";\n eGui.style.height = height;\n eGui.style.minHeight = height;\n this.setAriaRowIndex();\n _.setAriaRole(eAdvancedFilterGui, 'gridcell');\n _.setAriaColIndex(eAdvancedFilterGui, 1);\n this.setAriaColumnCount(eAdvancedFilterGui);\n eGui.appendChild(eAdvancedFilterGui);\n }\n else {\n _.clearElement(eGui);\n this.destroyBean(this.eAdvancedFilter);\n this.height = 0;\n }\n _.setDisplayed(eGui, enabled);\n this.enabled = enabled;\n };\n AdvancedFilterHeaderComp.prototype.setAriaColumnCount = function (eAdvancedFilterGui) {\n var _a, _b;\n _.setAriaColSpan(eAdvancedFilterGui, (_b = (_a = this.columnModel.getAllGridColumns()) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0);\n };\n AdvancedFilterHeaderComp.prototype.setAriaRowIndex = function () {\n _.setAriaRowIndex(this.getGui(), this.headerNavigationService.getHeaderRowCount());\n };\n AdvancedFilterHeaderComp.prototype.onGridColumnsChanged = function () {\n if (!this.eAdvancedFilter) {\n return;\n }\n this.setAriaColumnCount(this.eAdvancedFilter.getGui());\n this.setAriaRowIndex();\n };\n AdvancedFilterHeaderComp.prototype.onKeyDown = function (event) {\n switch (event.key) {\n case KeyCode.ENTER: {\n if (this.hasFocus()) {\n if (this.focusService.focusInto(this.getFocusableElement())) {\n event.preventDefault();\n }\n }\n break;\n }\n case KeyCode.ESCAPE:\n if (!this.hasFocus()) {\n this.getFocusableElement().focus();\n }\n break;\n case KeyCode.UP:\n this.navigateUpDown(true, event);\n break;\n case KeyCode.DOWN:\n this.navigateUpDown(false, event);\n break;\n case KeyCode.TAB:\n if (this.hasFocus()) {\n this.navigateLeftRight(event);\n }\n else {\n var nextFocusableEl = this.focusService.findNextFocusableElement(this.getFocusableElement(), null, event.shiftKey);\n if (nextFocusableEl) {\n event.preventDefault();\n nextFocusableEl.focus();\n }\n else {\n this.navigateLeftRight(event);\n }\n }\n break;\n }\n };\n AdvancedFilterHeaderComp.prototype.navigateUpDown = function (backwards, event) {\n if (this.hasFocus()) {\n if (this.focusService.focusNextFromAdvancedFilter(backwards)) {\n event.preventDefault();\n }\n }\n };\n AdvancedFilterHeaderComp.prototype.navigateLeftRight = function (event) {\n if (event.shiftKey\n ? this.focusService.focusLastHeader()\n : this.focusService.focusNextFromAdvancedFilter(false, true)) {\n event.preventDefault();\n }\n };\n AdvancedFilterHeaderComp.prototype.hasFocus = function () {\n var eDocument = this.gridOptionsService.getDocument();\n return eDocument.activeElement === this.getFocusableElement();\n };\n __decorate$2L([\n Autowired('columnModel')\n ], AdvancedFilterHeaderComp.prototype, \"columnModel\", void 0);\n __decorate$2L([\n Autowired('focusService')\n ], AdvancedFilterHeaderComp.prototype, \"focusService\", void 0);\n __decorate$2L([\n Autowired('headerNavigationService')\n ], AdvancedFilterHeaderComp.prototype, \"headerNavigationService\", void 0);\n __decorate$2L([\n PostConstruct\n ], AdvancedFilterHeaderComp.prototype, \"postConstruct\", null);\n return AdvancedFilterHeaderComp;\n}(Component));\n\nvar __extends$3C = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$13 = (undefined && undefined.__assign) || function () {\n __assign$13 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$13.apply(this, arguments);\n};\nvar AddDropdownComp = /** @class */ (function (_super) {\n __extends$3C(AddDropdownComp, _super);\n function AddDropdownComp(params) {\n var _this = _super.call(this, __assign$13(__assign$13({}, params), { template: /* html */ \"\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\" })) || this;\n _this.params = params;\n return _this;\n }\n AddDropdownComp.prototype.showPicker = function () {\n var _this = this;\n // avoid focus handling issues with multiple rich selects\n setTimeout(function () { return _super.prototype.showPicker.call(_this); });\n };\n AddDropdownComp.prototype.hidePicker = function () {\n var _this = this;\n // avoid focus handling issues with multiple rich selects\n setTimeout(function () { return _super.prototype.hidePicker.call(_this); });\n };\n AddDropdownComp.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n var _a = this.params, wrapperClassName = _a.wrapperClassName, ariaLabel = _a.ariaLabel;\n _.setDisplayed(this.eDisplayField, false);\n if (wrapperClassName) {\n this.eWrapper.classList.add(wrapperClassName);\n }\n _.setAriaLabelledBy(this.eWrapper, '');\n _.setAriaLabel(this.eWrapper, ariaLabel);\n };\n AddDropdownComp.prototype.onEnterKeyDown = function (event) {\n _.stopPropagationForAgGrid(event);\n if (this.isPickerDisplayed) {\n _super.prototype.onEnterKeyDown.call(this, event);\n }\n else {\n event.preventDefault();\n this.showPicker();\n }\n };\n return AddDropdownComp;\n}(AgRichSelect));\n\nvar __extends$3B = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2K = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AdvancedFilterBuilderDragFeature = /** @class */ (function (_super) {\n __extends$3B(AdvancedFilterBuilderDragFeature, _super);\n function AdvancedFilterBuilderDragFeature(comp, virtualList) {\n var _this = _super.call(this) || this;\n _this.comp = comp;\n _this.virtualList = virtualList;\n return _this;\n }\n AdvancedFilterBuilderDragFeature.prototype.postConstruct = function () {\n var _this = this;\n this.createManagedBean(new VirtualListDragFeature(this.comp, this.virtualList, {\n dragSourceType: DragSourceType.AdvancedFilterBuilder,\n listItemDragStartEvent: AdvancedFilterBuilderDragFeature.EVENT_DRAG_STARTED,\n listItemDragEndEvent: AdvancedFilterBuilderDragFeature.EVENT_DRAG_ENDED,\n eventSource: this,\n getCurrentDragValue: function (listItemDragStartEvent) { return _this.getCurrentDragValue(listItemDragStartEvent); },\n isMoveBlocked: function () { return false; },\n getNumRows: function (comp) { return comp.getNumItems(); },\n moveItem: function (currentDragValue, lastHoveredListItem) { return _this.moveItem(currentDragValue, lastHoveredListItem); }\n }));\n };\n AdvancedFilterBuilderDragFeature.prototype.getCurrentDragValue = function (listItemDragStartEvent) {\n return listItemDragStartEvent.item;\n };\n AdvancedFilterBuilderDragFeature.prototype.moveItem = function (currentDragValue, lastHoveredListItem) {\n this.comp.moveItem(currentDragValue, lastHoveredListItem);\n };\n AdvancedFilterBuilderDragFeature.EVENT_DRAG_STARTED = 'advancedFilterBuilderDragStarted';\n AdvancedFilterBuilderDragFeature.EVENT_DRAG_ENDED = 'advancedFilterBuilderDragEnded';\n __decorate$2K([\n PostConstruct\n ], AdvancedFilterBuilderDragFeature.prototype, \"postConstruct\", null);\n return AdvancedFilterBuilderDragFeature;\n}(BeanStub));\n\nvar __extends$3A = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2J = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AdvancedFilterBuilderItemNavigationFeature = /** @class */ (function (_super) {\n __extends$3A(AdvancedFilterBuilderItemNavigationFeature, _super);\n function AdvancedFilterBuilderItemNavigationFeature(eGui, focusWrapper, eFocusableComp) {\n var _this = _super.call(this) || this;\n _this.eGui = eGui;\n _this.focusWrapper = focusWrapper;\n _this.eFocusableComp = eFocusableComp;\n return _this;\n }\n AdvancedFilterBuilderItemNavigationFeature.prototype.postConstruct = function () {\n var _this = this;\n this.addManagedListener(this.eGui, 'keydown', function (event) {\n switch (event.key) {\n case KeyCode.TAB:\n if (!event.defaultPrevented) {\n // tab guard handled the navigation. stop from reaching virtual list\n _.stopPropagationForAgGrid(event);\n }\n break;\n case KeyCode.UP:\n case KeyCode.DOWN:\n // if this hasn't been handled by an editor, prevent virtual list navigation\n _.stopPropagationForAgGrid(event);\n break;\n case KeyCode.ESCAPE:\n if (_.isStopPropagationForAgGrid(event)) {\n return;\n }\n var eDocument = _this.gridOptionsService.getDocument();\n if (_this.eGui.contains(eDocument.activeElement)) {\n event.preventDefault();\n _.stopPropagationForAgGrid(event);\n _this.focusWrapper.focus();\n }\n break;\n }\n });\n this.addManagedListener(this.focusWrapper, 'keydown', function (event) {\n switch (event.key) {\n case KeyCode.ENTER:\n if (_.isStopPropagationForAgGrid(event)) {\n return;\n }\n var eDocument = _this.gridOptionsService.getDocument();\n if (eDocument.activeElement === _this.focusWrapper) {\n event.preventDefault();\n _.stopPropagationForAgGrid(event);\n _this.eFocusableComp.getFocusableElement().focus();\n }\n break;\n }\n });\n this.addManagedListener(this.focusWrapper, 'focusin', function () {\n _this.focusWrapper.classList.add('ag-advanced-filter-builder-virtual-list-item-highlight');\n });\n this.addManagedListener(this.focusWrapper, 'focusout', function (event) {\n if (!_this.focusWrapper.contains(event.relatedTarget)) {\n _this.focusWrapper.classList.remove('ag-advanced-filter-builder-virtual-list-item-highlight');\n }\n });\n };\n __decorate$2J([\n PostConstruct\n ], AdvancedFilterBuilderItemNavigationFeature.prototype, \"postConstruct\", null);\n return AdvancedFilterBuilderItemNavigationFeature;\n}(BeanStub));\n\nfunction getAdvancedFilterBuilderAddButtonParams(translate, maxPickerWidth) {\n return {\n pickerAriaLabelKey: 'ariaLabelAdvancedFilterBuilderAddField',\n pickerAriaLabelValue: 'Advanced Filter Builder Add Field',\n pickerType: 'ag-list',\n valueList: [{\n key: 'condition',\n displayValue: translate('advancedFilterBuilderAddCondition')\n }, {\n key: 'join',\n displayValue: translate('advancedFilterBuilderAddJoin')\n }],\n valueFormatter: function (value) { var _a; return value == null ? null : (_a = value.displayValue) !== null && _a !== void 0 ? _a : value.key; },\n pickerIcon: 'advancedFilterBuilderAdd',\n maxPickerWidth: (maxPickerWidth !== null && maxPickerWidth !== void 0 ? maxPickerWidth : 120) + \"px\",\n wrapperClassName: 'ag-advanced-filter-builder-item-button',\n ariaLabel: translate('advancedFilterBuilderAddButtonTooltip')\n };\n}\n\nvar AdvancedFilterBuilderEvents = /** @class */ (function () {\n function AdvancedFilterBuilderEvents() {\n }\n AdvancedFilterBuilderEvents.EVENT_ADDED = 'advancedFilterBuilderAdded';\n AdvancedFilterBuilderEvents.EVENT_MOVED = 'advancedFilterBuilderMoved';\n AdvancedFilterBuilderEvents.EVENT_REMOVED = 'advancedFilterBuilderRemoved';\n AdvancedFilterBuilderEvents.EVENT_VALUE_CHANGED = 'advancedFilterBuilderValueChanged';\n AdvancedFilterBuilderEvents.EVENT_VALID_CHANGED = 'advancedFilterBuilderValidChanged';\n return AdvancedFilterBuilderEvents;\n}());\n\nvar __extends$3z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2I = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ConditionPillWrapperComp = /** @class */ (function (_super) {\n __extends$3z(ConditionPillWrapperComp, _super);\n function ConditionPillWrapperComp() {\n var _this = _super.call(this, /* html */ \"\\n
\\n \") || this;\n _this.validationMessage = null;\n return _this;\n }\n ConditionPillWrapperComp.prototype.init = function (params) {\n var _this = this;\n var item = params.item, createPill = params.createPill;\n this.item = item;\n this.createPill = createPill;\n this.filterModel = item.filterModel;\n this.setupColumnCondition(this.filterModel);\n this.validate();\n this.addDestroyFunc(function () { return _this.destroyBeans([_this.eColumnPill, _this.eOperatorPill, _this.eOperandPill]); });\n };\n ConditionPillWrapperComp.prototype.getDragName = function () {\n return this.filterModel.colId\n ? this.advancedFilterExpressionService.parseColumnFilterModel(this.filterModel)\n : this.getDefaultColumnDisplayValue();\n };\n ConditionPillWrapperComp.prototype.getAriaLabel = function () {\n return this.advancedFilterExpressionService.translate('ariaAdvancedFilterBuilderFilterItem') + \" \" + this.getDragName();\n };\n ConditionPillWrapperComp.prototype.getValidationMessage = function () {\n return this.validationMessage;\n };\n ConditionPillWrapperComp.prototype.getFocusableElement = function () {\n return this.eColumnPill.getFocusableElement();\n };\n ConditionPillWrapperComp.prototype.setupColumnCondition = function (filterModel) {\n var _this = this;\n var _a, _b;\n var columnDetails = this.advancedFilterExpressionService.getColumnDetails(filterModel.colId);\n this.baseCellDataType = (_a = columnDetails === null || columnDetails === void 0 ? void 0 : columnDetails.baseCellDataType) !== null && _a !== void 0 ? _a : 'text';\n this.column = columnDetails === null || columnDetails === void 0 ? void 0 : columnDetails.column;\n this.numOperands = this.getNumOperands(this.getOperatorKey());\n this.eColumnPill = this.createPill({\n key: this.getColumnKey(),\n displayValue: (_b = this.getColumnDisplayValue()) !== null && _b !== void 0 ? _b : this.getDefaultColumnDisplayValue(),\n cssClass: 'ag-advanced-filter-builder-column-pill',\n isSelect: true,\n getEditorParams: function () { return ({ values: _this.advancedFilterExpressionService.getColumnAutocompleteEntries() }); },\n update: function (key) { return _this.setColumnKey(key); },\n pickerAriaLabelKey: 'ariaLabelAdvancedFilterBuilderColumnSelectField',\n pickerAriaLabelValue: 'Advanced Filter Builder Column Select Field',\n ariaLabel: this.advancedFilterExpressionService.translate('ariaAdvancedFilterBuilderColumn')\n });\n this.getGui().appendChild(this.eColumnPill.getGui());\n if (_.exists(this.getColumnKey())) {\n this.createOperatorPill();\n if (this.hasOperand()) {\n this.createOperandPill();\n }\n }\n };\n ConditionPillWrapperComp.prototype.createOperatorPill = function () {\n var _this = this;\n var _a;\n this.eOperatorPill = this.createPill({\n key: this.getOperatorKey(),\n displayValue: (_a = this.getOperatorDisplayValue()) !== null && _a !== void 0 ? _a : this.getDefaultOptionSelectValue(),\n cssClass: 'ag-advanced-filter-builder-option-pill',\n isSelect: true,\n getEditorParams: function () { return ({ values: _this.getOperatorAutocompleteEntries() }); },\n update: function (key) { return _this.setOperatorKey(key); },\n pickerAriaLabelKey: 'ariaLabelAdvancedFilterBuilderOptionSelectField',\n pickerAriaLabelValue: 'Advanced Filter Builder Option Select Field',\n ariaLabel: this.advancedFilterExpressionService.translate('ariaAdvancedFilterBuilderOption')\n });\n this.eColumnPill.getGui().insertAdjacentElement('afterend', this.eOperatorPill.getGui());\n };\n ConditionPillWrapperComp.prototype.createOperandPill = function () {\n var _this = this;\n var _a;\n var key = (_a = this.getOperandDisplayValue()) !== null && _a !== void 0 ? _a : '';\n this.eOperandPill = this.createPill({\n key: key,\n displayValue: key,\n baseCellDataType: this.baseCellDataType,\n cssClass: 'ag-advanced-filter-builder-value-pill',\n isSelect: false,\n update: function (key) { return _this.setOperand(key); },\n ariaLabel: this.advancedFilterExpressionService.translate('ariaAdvancedFilterBuilderValue')\n });\n this.getGui().appendChild(this.eOperandPill.getGui());\n };\n ConditionPillWrapperComp.prototype.getColumnKey = function () {\n return this.filterModel.colId;\n };\n ConditionPillWrapperComp.prototype.getColumnDisplayValue = function () {\n return this.advancedFilterExpressionService.getColumnDisplayValue(this.filterModel);\n };\n ConditionPillWrapperComp.prototype.getOperatorKey = function () {\n return this.filterModel.type;\n };\n ConditionPillWrapperComp.prototype.getOperatorDisplayValue = function () {\n return this.advancedFilterExpressionService.getOperatorDisplayValue(this.filterModel);\n };\n ConditionPillWrapperComp.prototype.getOperandDisplayValue = function () {\n return this.advancedFilterExpressionService.getOperandDisplayValue(this.filterModel, true);\n };\n ConditionPillWrapperComp.prototype.hasOperand = function () {\n return this.numOperands > 0;\n };\n ConditionPillWrapperComp.prototype.getOperatorAutocompleteEntries = function () {\n return this.column\n ? this.advancedFilterExpressionService.getOperatorAutocompleteEntries(this.column, this.baseCellDataType)\n : [];\n };\n ConditionPillWrapperComp.prototype.setColumnKey = function (colId) {\n var _a;\n if (!this.eOperatorPill) {\n this.createOperatorPill();\n }\n var newColumnDetails = this.advancedFilterExpressionService.getColumnDetails(colId);\n this.column = newColumnDetails === null || newColumnDetails === void 0 ? void 0 : newColumnDetails.column;\n var newBaseCellDataType = (_a = newColumnDetails === null || newColumnDetails === void 0 ? void 0 : newColumnDetails.baseCellDataType) !== null && _a !== void 0 ? _a : 'text';\n if (this.baseCellDataType !== newBaseCellDataType) {\n this.baseCellDataType = newBaseCellDataType;\n this.setOperatorKey(undefined);\n if (this.eOperatorPill) {\n _.removeFromParent(this.eOperatorPill.getGui());\n this.destroyBean(this.eOperatorPill);\n this.createOperatorPill();\n }\n this.validate();\n }\n this.filterModel.colId = colId;\n this.filterModel.filterType = this.baseCellDataType;\n };\n ConditionPillWrapperComp.prototype.setOperatorKey = function (operator) {\n var newNumOperands = this.getNumOperands(operator);\n if (newNumOperands !== this.numOperands) {\n this.numOperands = newNumOperands;\n if (newNumOperands === 0) {\n this.destroyOperandPill();\n }\n else {\n this.createOperandPill();\n if (this.baseCellDataType !== 'number') {\n this.setOperand('');\n }\n }\n }\n this.filterModel.type = operator;\n this.validate();\n };\n ConditionPillWrapperComp.prototype.setOperand = function (operand) {\n var _a;\n var parsedOperand = operand;\n if (this.column) {\n parsedOperand = (_a = this.advancedFilterExpressionService.getOperandModelValue(operand, this.baseCellDataType, this.column)) !== null && _a !== void 0 ? _a : '';\n }\n this.filterModel.filter = parsedOperand;\n this.validate();\n };\n ConditionPillWrapperComp.prototype.getNumOperands = function (operator) {\n var _a, _b;\n return (_b = (_a = this.advancedFilterExpressionService.getExpressionOperator(this.baseCellDataType, operator)) === null || _a === void 0 ? void 0 : _a.numOperands) !== null && _b !== void 0 ? _b : 0;\n };\n ConditionPillWrapperComp.prototype.destroyOperandPill = function () {\n delete this.filterModel.filter;\n this.getGui().removeChild(this.eOperandPill.getGui());\n this.destroyBean(this.eOperandPill);\n this.eOperandPill = undefined;\n };\n ConditionPillWrapperComp.prototype.validate = function () {\n var validationMessage = null;\n if (!_.exists(this.getColumnKey())) {\n validationMessage = this.advancedFilterExpressionService.translate('advancedFilterBuilderValidationSelectColumn');\n }\n else if (!_.exists(this.getOperatorKey())) {\n validationMessage = this.advancedFilterExpressionService.translate('advancedFilterBuilderValidationSelectOption');\n }\n else if (this.numOperands > 0 && !_.exists(this.getOperandDisplayValue())) {\n validationMessage = this.advancedFilterExpressionService.translate('advancedFilterBuilderValidationEnterValue');\n }\n this.item.valid = !validationMessage;\n if (validationMessage !== this.validationMessage) {\n this.validationMessage = validationMessage;\n this.dispatchEvent({\n type: AdvancedFilterBuilderEvents.EVENT_VALID_CHANGED\n });\n }\n };\n ConditionPillWrapperComp.prototype.getDefaultColumnDisplayValue = function () {\n return this.advancedFilterExpressionService.translate('advancedFilterBuilderSelectColumn');\n };\n ConditionPillWrapperComp.prototype.getDefaultOptionSelectValue = function () {\n return this.advancedFilterExpressionService.translate('advancedFilterBuilderSelectOption');\n };\n __decorate$2I([\n Autowired('advancedFilterExpressionService')\n ], ConditionPillWrapperComp.prototype, \"advancedFilterExpressionService\", void 0);\n __decorate$2I([\n Autowired('valueParserService')\n ], ConditionPillWrapperComp.prototype, \"valueParserService\", void 0);\n return ConditionPillWrapperComp;\n}(Component));\n\nvar __extends$3y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2H = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar InputPillComp = /** @class */ (function (_super) {\n __extends$3y(InputPillComp, _super);\n function InputPillComp(params) {\n var _this = _super.call(this, /* html */ \"\\n
\\n
\\n \\n
\\n
\\n \") || this;\n _this.params = params;\n _this.value = params.value;\n return _this;\n }\n InputPillComp.prototype.postConstruct = function () {\n var _this = this;\n var _a = this.params, cssClass = _a.cssClass, ariaLabel = _a.ariaLabel;\n this.ePill.classList.add(cssClass);\n this.activateTabIndex([this.ePill]);\n this.eLabel.id = \"\" + this.getCompId();\n _.setAriaDescribedBy(this.ePill, this.eLabel.id);\n _.setAriaLabel(this.ePill, ariaLabel);\n this.renderValue();\n this.addManagedListener(this.ePill, 'click', function (event) {\n event.preventDefault();\n _this.showEditor();\n });\n this.addManagedListener(this.ePill, 'keydown', function (event) {\n switch (event.key) {\n case KeyCode.ENTER:\n event.preventDefault();\n _.stopPropagationForAgGrid(event);\n _this.showEditor();\n break;\n }\n });\n this.addDestroyFunc(function () { return _this.destroyBean(_this.eEditor); });\n };\n InputPillComp.prototype.getFocusableElement = function () {\n return this.ePill;\n };\n InputPillComp.prototype.showEditor = function () {\n var _this = this;\n if (this.eEditor) {\n return;\n }\n _.setDisplayed(this.ePill, false);\n this.eEditor = this.createEditorComp(this.params.type);\n this.eEditor.setValue(this.value);\n var eEditorGui = this.eEditor.getGui();\n this.eEditor.addManagedListener(eEditorGui, 'keydown', function (event) {\n switch (event.key) {\n case KeyCode.ENTER:\n event.preventDefault();\n _.stopPropagationForAgGrid(event);\n _this.updateValue(true);\n break;\n case KeyCode.ESCAPE:\n event.preventDefault();\n _.stopPropagationForAgGrid(event);\n _this.hideEditor(true);\n break;\n }\n });\n this.eEditor.addManagedListener(eEditorGui, 'focusout', function () {\n _this.updateValue(false);\n });\n this.getGui().appendChild(eEditorGui);\n this.eEditor.getFocusableElement().focus();\n };\n InputPillComp.prototype.createEditorComp = function (type) {\n var comp;\n switch (type) {\n case 'text':\n comp = new AgInputTextField();\n break;\n case 'number':\n comp = new AgInputNumberField();\n break;\n case 'date':\n comp = new AgInputDateField();\n break;\n }\n return this.createBean(comp);\n };\n InputPillComp.prototype.hideEditor = function (keepFocus) {\n var eEditor = this.eEditor;\n if (!eEditor) {\n return;\n }\n this.eEditor = undefined;\n this.getGui().removeChild(eEditor.getGui());\n this.destroyBean(eEditor);\n _.setDisplayed(this.ePill, true);\n if (keepFocus) {\n this.ePill.focus();\n }\n };\n InputPillComp.prototype.renderValue = function () {\n var value;\n this.eLabel.classList.remove('ag-advanced-filter-builder-value-empty', 'ag-advanced-filter-builder-value-number', 'ag-advanced-filter-builder-value-text');\n if (!_.exists(this.value)) {\n value = this.advancedFilterExpressionService.translate('advancedFilterBuilderEnterValue');\n this.eLabel.classList.add('ag-advanced-filter-builder-value-empty');\n }\n else if (this.params.type === 'number') {\n value = this.value;\n this.eLabel.classList.add('ag-advanced-filter-builder-value-number');\n }\n else {\n value = \"\\\"\" + this.value + \"\\\"\";\n this.eLabel.classList.add('ag-advanced-filter-builder-value-text');\n }\n this.eLabel.innerText = value;\n };\n InputPillComp.prototype.updateValue = function (keepFocus) {\n var _a;\n if (!this.eEditor) {\n return;\n }\n var value = (_a = this.eEditor.getValue()) !== null && _a !== void 0 ? _a : '';\n this.dispatchEvent({\n type: Events.EVENT_FIELD_VALUE_CHANGED,\n value: value\n });\n this.value = value;\n this.renderValue();\n this.hideEditor(keepFocus);\n };\n __decorate$2H([\n RefSelector('ePill')\n ], InputPillComp.prototype, \"ePill\", void 0);\n __decorate$2H([\n RefSelector('eLabel')\n ], InputPillComp.prototype, \"eLabel\", void 0);\n __decorate$2H([\n Autowired('advancedFilterExpressionService')\n ], InputPillComp.prototype, \"advancedFilterExpressionService\", void 0);\n __decorate$2H([\n PostConstruct\n ], InputPillComp.prototype, \"postConstruct\", null);\n return InputPillComp;\n}(Component));\n\nvar __extends$3x = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2G = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar JoinPillWrapperComp = /** @class */ (function (_super) {\n __extends$3x(JoinPillWrapperComp, _super);\n function JoinPillWrapperComp() {\n return _super.call(this, /* html */ \"\\n
\\n \") || this;\n }\n JoinPillWrapperComp.prototype.init = function (params) {\n var _this = this;\n var item = params.item, createPill = params.createPill;\n var filterModel = item.filterModel;\n this.filterModel = filterModel;\n this.ePill = createPill({\n key: filterModel.type,\n displayValue: this.advancedFilterExpressionService.parseJoinOperator(filterModel),\n cssClass: 'ag-advanced-filter-builder-join-pill',\n isSelect: true,\n getEditorParams: function () { return ({ values: _this.advancedFilterExpressionService.getJoinOperatorAutocompleteEntries() }); },\n update: function (key) { return filterModel.type = key; },\n pickerAriaLabelKey: 'ariaLabelAdvancedFilterBuilderJoinSelectField',\n pickerAriaLabelValue: 'Advanced Filter Builder Join Operator Select Field',\n ariaLabel: this.advancedFilterExpressionService.translate('ariaAdvancedFilterBuilderJoinOperator')\n });\n this.getGui().appendChild(this.ePill.getGui());\n this.addDestroyFunc(function () { return _this.destroyBean(_this.ePill); });\n };\n JoinPillWrapperComp.prototype.getDragName = function () {\n return this.advancedFilterExpressionService.parseJoinOperator(this.filterModel);\n };\n JoinPillWrapperComp.prototype.getAriaLabel = function () {\n return this.advancedFilterExpressionService.translate('ariaAdvancedFilterBuilderGroupItem') + \" \" + this.getDragName();\n };\n JoinPillWrapperComp.prototype.getValidationMessage = function () {\n return null;\n };\n JoinPillWrapperComp.prototype.getFocusableElement = function () {\n return this.ePill.getFocusableElement();\n };\n __decorate$2G([\n Autowired('advancedFilterExpressionService')\n ], JoinPillWrapperComp.prototype, \"advancedFilterExpressionService\", void 0);\n return JoinPillWrapperComp;\n}(Component));\n\nvar __extends$3w = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$12 = (undefined && undefined.__assign) || function () {\n __assign$12 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$12.apply(this, arguments);\n};\nvar SelectPillComp = /** @class */ (function (_super) {\n __extends$3w(SelectPillComp, _super);\n function SelectPillComp(params) {\n var _this = _super.call(this, __assign$12(__assign$12({}, params), { template: /* html */ \"\\n
\\n
\\n
\\n
\\n \\n
\\n
\\n
\" })) || this;\n _this.params = params;\n return _this;\n }\n SelectPillComp.prototype.getFocusableElement = function () {\n return this.eWrapper;\n };\n SelectPillComp.prototype.showPicker = function () {\n var _this = this;\n // avoid focus handling issues with multiple rich selects\n setTimeout(function () { return _super.prototype.showPicker.call(_this); });\n };\n SelectPillComp.prototype.hidePicker = function () {\n var _this = this;\n // avoid focus handling issues with multiple rich selects\n setTimeout(function () { return _super.prototype.hidePicker.call(_this); });\n };\n SelectPillComp.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n var _a = this.params, wrapperClassName = _a.wrapperClassName, ariaLabel = _a.ariaLabel;\n this.eWrapper.classList.add(wrapperClassName);\n _.setAriaLabelledBy(this.eWrapper, '');\n _.setAriaLabel(this.eWrapper, ariaLabel);\n };\n SelectPillComp.prototype.createPickerComponent = function () {\n var _a;\n if (!this.values) {\n var values = this.params.getEditorParams().values;\n this.values = values;\n var key_1 = this.value.key;\n var value = (_a = values.find(function (value) { return value.key === key_1; })) !== null && _a !== void 0 ? _a : {\n key: key_1,\n displayValue: this.value.displayValue\n };\n this.value = value;\n }\n return _super.prototype.createPickerComponent.call(this);\n };\n SelectPillComp.prototype.onEnterKeyDown = function (event) {\n _.stopPropagationForAgGrid(event);\n if (this.isPickerDisplayed) {\n _super.prototype.onEnterKeyDown.call(this, event);\n }\n else {\n event.preventDefault();\n this.showPicker();\n }\n };\n return SelectPillComp;\n}(AgRichSelect));\n\nvar __extends$3v = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2F = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AdvancedFilterBuilderItemComp = /** @class */ (function (_super) {\n __extends$3v(AdvancedFilterBuilderItemComp, _super);\n function AdvancedFilterBuilderItemComp(item, dragFeature, focusWrapper) {\n var _this = _super.call(this, /* html */ \"\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n \\n
\\n
\\n \") || this;\n _this.item = item;\n _this.dragFeature = dragFeature;\n _this.focusWrapper = focusWrapper;\n _this.moveUpDisabled = false;\n _this.moveDownDisabled = false;\n return _this;\n }\n AdvancedFilterBuilderItemComp.prototype.postConstruct = function () {\n var _this = this;\n var _a = this.item, filterModel = _a.filterModel, level = _a.level, showMove = _a.showMove;\n var isJoin = filterModel.filterType === 'join';\n this.ePillWrapper = this.createManagedBean(isJoin ? new JoinPillWrapperComp() : new ConditionPillWrapperComp());\n this.ePillWrapper.init({ item: this.item, createPill: function (params) { return _this.createPill(params); } });\n this.eDragHandle.insertAdjacentElement('afterend', this.ePillWrapper.getGui());\n if (level === 0) {\n var eTreeLine = document.createElement('div');\n eTreeLine.classList.add('ag-advanced-filter-builder-item-tree-line-vertical-bottom');\n eTreeLine.classList.add('ag-advanced-filter-builder-item-tree-line-root');\n this.eTreeLines.appendChild(eTreeLine);\n _.setDisplayed(this.eDragHandle, false);\n _.setDisplayed(this.eButtons, false);\n _.setAriaExpanded(this.focusWrapper, true);\n }\n else {\n this.setupTreeLines(level);\n this.eDragHandle.appendChild(_.createIconNoSpan('advancedFilterBuilderDrag', this.gridOptionsService));\n this.setupValidation();\n this.setupMoveButtons(showMove);\n this.setupAddButton();\n this.setupRemoveButton();\n this.setupDragging();\n this.updateAriaExpanded();\n }\n _.setAriaLevel(this.focusWrapper, level + 1);\n this.initialiseTabGuard({});\n this.createManagedBean(new AdvancedFilterBuilderItemNavigationFeature(this.getGui(), this.focusWrapper, this.ePillWrapper));\n this.updateAriaLabel();\n this.addManagedListener(this.ePillWrapper, AdvancedFilterBuilderEvents.EVENT_VALUE_CHANGED, function () { return _this.dispatchEvent({\n type: AdvancedFilterBuilderEvents.EVENT_VALUE_CHANGED\n }); });\n this.addManagedListener(this.ePillWrapper, AdvancedFilterBuilderEvents.EVENT_VALID_CHANGED, function () { return _this.updateValidity(); });\n };\n AdvancedFilterBuilderItemComp.prototype.setState = function (params) {\n var level = this.item.level;\n if (level === 0) {\n return;\n }\n var showMove = this.item.showMove;\n var disableMoveUp = params.disableMoveUp, disableMoveDown = params.disableMoveDown, treeLines = params.treeLines, showStartTreeLine = params.showStartTreeLine;\n this.updateTreeLines(treeLines, showStartTreeLine);\n this.updateAriaExpanded();\n if (showMove) {\n this.moveUpDisabled = !!disableMoveUp;\n this.moveDownDisabled = !!disableMoveDown;\n this.eMoveUpButton.classList.toggle('ag-advanced-filter-builder-item-button-disabled', disableMoveUp);\n this.eMoveDownButton.classList.toggle('ag-advanced-filter-builder-item-button-disabled', disableMoveDown);\n _.setAriaDisabled(this.eMoveUpButton, !!disableMoveUp);\n _.setAriaDisabled(this.eMoveDownButton, !!disableMoveDown);\n this.moveUpTooltipFeature.refreshToolTip();\n this.moveDownTooltipFeature.refreshToolTip();\n }\n };\n AdvancedFilterBuilderItemComp.prototype.focusMoveButton = function (backwards) {\n (backwards ? this.eMoveUpButton : this.eMoveDownButton).focus();\n };\n AdvancedFilterBuilderItemComp.prototype.afterAdd = function () {\n this.ePillWrapper.getFocusableElement().focus();\n };\n AdvancedFilterBuilderItemComp.prototype.setupTreeLines = function (level) {\n for (var i = 0; i < level; i++) {\n var eTreeLine = document.createElement('div');\n this.eTreeLines.appendChild(eTreeLine);\n }\n };\n AdvancedFilterBuilderItemComp.prototype.updateTreeLines = function (treeLines, showStartTreeLine) {\n var lastTreeLineIndex = treeLines.length - 1;\n var children = this.eTreeLines.children;\n for (var i = 0; i < lastTreeLineIndex; i++) {\n var eTreeLine_1 = children.item(i);\n if (eTreeLine_1) {\n eTreeLine_1.classList.toggle('ag-advanced-filter-builder-item-tree-line-vertical', !treeLines[i]);\n }\n }\n var eTreeLine = children.item(lastTreeLineIndex);\n if (eTreeLine) {\n eTreeLine.classList.add('ag-advanced-filter-builder-item-tree-line-horizontal');\n var isLastChild = treeLines[lastTreeLineIndex];\n eTreeLine.classList.toggle('ag-advanced-filter-builder-item-tree-line-vertical-top', isLastChild);\n eTreeLine.classList.toggle('ag-advanced-filter-builder-item-tree-line-vertical', !isLastChild);\n }\n this.eDragHandle.classList.toggle('ag-advanced-filter-builder-item-tree-line-vertical-bottom', showStartTreeLine);\n };\n AdvancedFilterBuilderItemComp.prototype.setupValidation = function () {\n var _this = this;\n this.eValidation.appendChild(_.createIconNoSpan('advancedFilterBuilderInvalid', this.gridOptionsService));\n this.validationTooltipFeature = this.createManagedBean(new TooltipFeature({\n getGui: function () { return _this.eValidation; },\n getLocation: function () { return 'advancedFilter'; },\n getTooltipValue: function () { return _this.ePillWrapper.getValidationMessage(); },\n getTooltipShowDelayOverride: function () { return 1000; }\n }, this.beans));\n this.validationTooltipFeature.setComp(this.eValidation);\n this.updateValidity();\n };\n AdvancedFilterBuilderItemComp.prototype.setupAddButton = function () {\n var _this = this;\n var _a;\n var addButtonParams = getAdvancedFilterBuilderAddButtonParams(function (key) { return _this.advancedFilterExpressionService.translate(key); }, (_a = this.gridOptionsService.get('advancedFilterBuilderParams')) === null || _a === void 0 ? void 0 : _a.addSelectWidth);\n var eAddButton = this.createManagedBean(new AddDropdownComp(addButtonParams));\n this.addManagedListener(eAddButton, Events.EVENT_FIELD_PICKER_VALUE_SELECTED, function (_a) {\n var value = _a.value;\n return _this.dispatchEvent({\n type: AdvancedFilterBuilderEvents.EVENT_ADDED,\n item: _this.item,\n isJoin: value.key === 'join'\n });\n });\n this.eAddButton.appendChild(eAddButton.getGui());\n var tooltipFeature = this.createManagedBean(new TooltipFeature({\n getGui: function () { return _this.eAddButton; },\n getLocation: function () { return 'advancedFilter'; },\n getTooltipValue: function () { return _this.advancedFilterExpressionService.translate('advancedFilterBuilderAddButtonTooltip'); }\n }, this.beans));\n tooltipFeature.setComp(this.eAddButton);\n };\n AdvancedFilterBuilderItemComp.prototype.setupRemoveButton = function () {\n var _this = this;\n this.eRemoveButton.appendChild(_.createIconNoSpan('advancedFilterBuilderRemove', this.gridOptionsService));\n this.addManagedListener(this.eRemoveButton, 'click', function () { return _this.removeItem(); });\n this.addManagedListener(this.eRemoveButton, 'keydown', function (event) {\n switch (event.key) {\n case KeyCode.ENTER:\n event.preventDefault();\n _.stopPropagationForAgGrid(event);\n _this.removeItem();\n break;\n }\n });\n var tooltipFeature = this.createManagedBean(new TooltipFeature({\n getGui: function () { return _this.eRemoveButton; },\n getLocation: function () { return 'advancedFilter'; },\n getTooltipValue: function () { return _this.advancedFilterExpressionService.translate('advancedFilterBuilderRemoveButtonTooltip'); }\n }, this.beans));\n tooltipFeature.setComp(this.eRemoveButton);\n _.setAriaLabel(this.eRemoveButton, this.advancedFilterExpressionService.translate('advancedFilterBuilderRemoveButtonTooltip'));\n this.activateTabIndex([this.eRemoveButton]);\n };\n AdvancedFilterBuilderItemComp.prototype.setupMoveButtons = function (showMove) {\n var _this = this;\n if (showMove) {\n this.eMoveUpButton.appendChild(_.createIconNoSpan('advancedFilterBuilderMoveUp', this.gridOptionsService));\n this.addManagedListener(this.eMoveUpButton, 'click', function () { return _this.moveItem(true); });\n this.addManagedListener(this.eMoveUpButton, 'keydown', function (event) {\n switch (event.key) {\n case KeyCode.ENTER:\n event.preventDefault();\n _.stopPropagationForAgGrid(event);\n _this.moveItem(true);\n break;\n }\n });\n this.moveUpTooltipFeature = this.createManagedBean(new TooltipFeature({\n getGui: function () { return _this.eMoveUpButton; },\n getLocation: function () { return 'advancedFilter'; },\n getTooltipValue: function () { return _this.moveUpDisabled\n ? null\n : _this.advancedFilterExpressionService.translate('advancedFilterBuilderMoveUpButtonTooltip'); }\n }, this.beans));\n this.moveUpTooltipFeature.setComp(this.eMoveUpButton);\n _.setAriaLabel(this.eMoveUpButton, this.advancedFilterExpressionService.translate('advancedFilterBuilderMoveUpButtonTooltip'));\n this.eMoveDownButton.appendChild(_.createIconNoSpan('advancedFilterBuilderMoveDown', this.gridOptionsService));\n this.addManagedListener(this.eMoveDownButton, 'click', function () { return _this.moveItem(false); });\n this.addManagedListener(this.eMoveDownButton, 'keydown', function (event) {\n switch (event.key) {\n case KeyCode.ENTER:\n event.preventDefault();\n _.stopPropagationForAgGrid(event);\n _this.moveItem(false);\n break;\n }\n });\n this.moveDownTooltipFeature = this.createManagedBean(new TooltipFeature({\n getGui: function () { return _this.eMoveDownButton; },\n getLocation: function () { return 'advancedFilter'; },\n getTooltipValue: function () { return _this.moveDownDisabled\n ? null\n : _this.advancedFilterExpressionService.translate('advancedFilterBuilderMoveDownButtonTooltip'); }\n }, this.beans));\n this.moveDownTooltipFeature.setComp(this.eMoveDownButton);\n _.setAriaLabel(this.eMoveDownButton, this.advancedFilterExpressionService.translate('advancedFilterBuilderMoveDownButtonTooltip'));\n this.activateTabIndex([this.eMoveUpButton, this.eMoveDownButton]);\n }\n else {\n _.setDisplayed(this.eMoveUpButton, false);\n _.setDisplayed(this.eMoveDownButton, false);\n }\n };\n AdvancedFilterBuilderItemComp.prototype.updateValidity = function () {\n _.setVisible(this.eValidation, !this.item.valid);\n this.validationTooltipFeature.refreshToolTip();\n this.updateAriaLabel();\n };\n AdvancedFilterBuilderItemComp.prototype.createPill = function (params) {\n var _this = this;\n var _a, _b;\n var key = params.key, displayValue = params.displayValue, cssClass = params.cssClass, update = params.update, ariaLabel = params.ariaLabel;\n var onUpdated = function (key) {\n if (key == null) {\n return;\n }\n update(key);\n _this.dispatchEvent({\n type: AdvancedFilterBuilderEvents.EVENT_VALUE_CHANGED\n });\n };\n if (params.isSelect) {\n var getEditorParams = params.getEditorParams, pickerAriaLabelKey = params.pickerAriaLabelKey, pickerAriaLabelValue = params.pickerAriaLabelValue;\n var advancedFilterBuilderParams = this.gridOptionsService.get('advancedFilterBuilderParams');\n var minPickerWidth = ((_a = advancedFilterBuilderParams === null || advancedFilterBuilderParams === void 0 ? void 0 : advancedFilterBuilderParams.pillSelectMinWidth) !== null && _a !== void 0 ? _a : 140) + \"px\";\n var maxPickerWidth = ((_b = advancedFilterBuilderParams === null || advancedFilterBuilderParams === void 0 ? void 0 : advancedFilterBuilderParams.pillSelectMaxWidth) !== null && _b !== void 0 ? _b : 200) + \"px\";\n var comp = this.createBean(new SelectPillComp({\n pickerAriaLabelKey: pickerAriaLabelKey,\n pickerAriaLabelValue: pickerAriaLabelValue,\n pickerType: 'ag-list',\n value: {\n key: key,\n displayValue: displayValue\n },\n valueFormatter: function (value) { var _a; return value == null ? null : (_a = value.displayValue) !== null && _a !== void 0 ? _a : value.key; },\n variableWidth: true,\n minPickerWidth: minPickerWidth,\n maxPickerWidth: maxPickerWidth,\n getEditorParams: getEditorParams,\n wrapperClassName: cssClass,\n ariaLabel: ariaLabel\n }));\n this.addManagedListener(comp, Events.EVENT_FIELD_PICKER_VALUE_SELECTED, function (_a) {\n var value = _a.value;\n return onUpdated(value === null || value === void 0 ? void 0 : value.key);\n });\n return comp;\n }\n else {\n var comp = this.createBean(new InputPillComp({\n value: displayValue,\n cssClass: cssClass,\n type: this.getInputType(params.baseCellDataType),\n ariaLabel: ariaLabel\n }));\n this.addManagedListener(comp, Events.EVENT_FIELD_VALUE_CHANGED, function (_a) {\n var value = _a.value;\n return onUpdated(value);\n });\n return comp;\n }\n };\n AdvancedFilterBuilderItemComp.prototype.getInputType = function (baseCellDataType) {\n switch (baseCellDataType) {\n case 'text':\n case 'object':\n case 'boolean':\n return 'text';\n case 'number':\n return 'number';\n case 'date':\n case 'dateString':\n return 'date';\n }\n };\n AdvancedFilterBuilderItemComp.prototype.setupDragging = function () {\n var _this = this;\n var dragSource = {\n type: DragSourceType.AdvancedFilterBuilder,\n eElement: this.eDragHandle,\n dragItemName: function () { return _this.ePillWrapper.getDragName(); },\n getDefaultIconName: function () { return DragAndDropService.ICON_NOT_ALLOWED; },\n getDragItem: function () { return ({}); },\n onDragStarted: function () { return _this.dragFeature.dispatchEvent({\n type: AdvancedFilterBuilderDragFeature.EVENT_DRAG_STARTED,\n item: _this.item\n }); },\n onDragStopped: function () { return _this.dragFeature.dispatchEvent({\n type: AdvancedFilterBuilderDragFeature.EVENT_DRAG_ENDED\n }); }\n };\n this.dragAndDropService.addDragSource(dragSource, true);\n this.addDestroyFunc(function () { return _this.dragAndDropService.removeDragSource(dragSource); });\n };\n AdvancedFilterBuilderItemComp.prototype.updateAriaLabel = function () {\n var wrapperLabel = this.ePillWrapper.getAriaLabel();\n var level = \"\" + (this.item.level + 1);\n var validationMessage = this.ePillWrapper.getValidationMessage();\n var ariaLabel;\n if (validationMessage) {\n ariaLabel = this.advancedFilterExpressionService.translate('ariaAdvancedFilterBuilderItemValidation', [wrapperLabel, level, validationMessage]);\n }\n else {\n ariaLabel = this.advancedFilterExpressionService.translate('ariaAdvancedFilterBuilderItem', [wrapperLabel, level]);\n }\n _.setAriaLabel(this.focusWrapper, ariaLabel);\n };\n AdvancedFilterBuilderItemComp.prototype.updateAriaExpanded = function () {\n _.removeAriaExpanded(this.focusWrapper);\n var filterModel = this.item.filterModel;\n if ((filterModel === null || filterModel === void 0 ? void 0 : filterModel.filterType) === 'join' && filterModel.conditions.length) {\n _.setAriaExpanded(this.focusWrapper, true);\n }\n };\n AdvancedFilterBuilderItemComp.prototype.removeItem = function () {\n this.dispatchEvent({\n type: AdvancedFilterBuilderEvents.EVENT_REMOVED,\n item: this.item\n });\n };\n AdvancedFilterBuilderItemComp.prototype.moveItem = function (backwards) {\n this.dispatchEvent({\n type: AdvancedFilterBuilderEvents.EVENT_MOVED,\n item: this.item,\n backwards: backwards\n });\n };\n __decorate$2F([\n RefSelector('eTreeLines')\n ], AdvancedFilterBuilderItemComp.prototype, \"eTreeLines\", void 0);\n __decorate$2F([\n RefSelector('eDragHandle')\n ], AdvancedFilterBuilderItemComp.prototype, \"eDragHandle\", void 0);\n __decorate$2F([\n RefSelector('eItem')\n ], AdvancedFilterBuilderItemComp.prototype, \"eItem\", void 0);\n __decorate$2F([\n RefSelector('eButtons')\n ], AdvancedFilterBuilderItemComp.prototype, \"eButtons\", void 0);\n __decorate$2F([\n RefSelector('eValidation')\n ], AdvancedFilterBuilderItemComp.prototype, \"eValidation\", void 0);\n __decorate$2F([\n RefSelector('eMoveUpButton')\n ], AdvancedFilterBuilderItemComp.prototype, \"eMoveUpButton\", void 0);\n __decorate$2F([\n RefSelector('eMoveDownButton')\n ], AdvancedFilterBuilderItemComp.prototype, \"eMoveDownButton\", void 0);\n __decorate$2F([\n RefSelector('eAddButton')\n ], AdvancedFilterBuilderItemComp.prototype, \"eAddButton\", void 0);\n __decorate$2F([\n RefSelector('eRemoveButton')\n ], AdvancedFilterBuilderItemComp.prototype, \"eRemoveButton\", void 0);\n __decorate$2F([\n Autowired('beans')\n ], AdvancedFilterBuilderItemComp.prototype, \"beans\", void 0);\n __decorate$2F([\n Autowired('dragAndDropService')\n ], AdvancedFilterBuilderItemComp.prototype, \"dragAndDropService\", void 0);\n __decorate$2F([\n Autowired('advancedFilterExpressionService')\n ], AdvancedFilterBuilderItemComp.prototype, \"advancedFilterExpressionService\", void 0);\n __decorate$2F([\n PostConstruct\n ], AdvancedFilterBuilderItemComp.prototype, \"postConstruct\", null);\n return AdvancedFilterBuilderItemComp;\n}(TabGuardComp));\n\nvar __extends$3u = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2E = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AdvancedFilterBuilderItemAddComp = /** @class */ (function (_super) {\n __extends$3u(AdvancedFilterBuilderItemAddComp, _super);\n function AdvancedFilterBuilderItemAddComp(item, focusWrapper) {\n var _this = _super.call(this, /* html */ \"\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \") || this;\n _this.item = item;\n _this.focusWrapper = focusWrapper;\n return _this;\n }\n AdvancedFilterBuilderItemAddComp.prototype.postConstruct = function () {\n var _this = this;\n var _a;\n _.setAriaLevel(this.focusWrapper, 2);\n var addButtonParams = getAdvancedFilterBuilderAddButtonParams(function (key) { return _this.advancedFilterExpressionService.translate(key); }, (_a = this.gridOptionsService.get('advancedFilterBuilderParams')) === null || _a === void 0 ? void 0 : _a.addSelectWidth);\n var eAddButton = this.createManagedBean(new AddDropdownComp(addButtonParams));\n this.addManagedListener(eAddButton, Events.EVENT_FIELD_PICKER_VALUE_SELECTED, function (_a) {\n var value = _a.value;\n _this.dispatchEvent({\n type: AdvancedFilterBuilderEvents.EVENT_ADDED,\n item: _this.item,\n isJoin: value.key === 'join'\n });\n });\n this.eItem.appendChild(eAddButton.getGui());\n var tooltipFeature = this.createManagedBean(new TooltipFeature({\n getGui: function () { return eAddButton.getGui(); },\n getLocation: function () { return 'advancedFilter'; },\n getTooltipValue: function () { return _this.advancedFilterExpressionService.translate('advancedFilterBuilderAddButtonTooltip'); }\n }, this.beans));\n tooltipFeature.setComp(eAddButton.getGui());\n this.createManagedBean(new AdvancedFilterBuilderItemNavigationFeature(this.getGui(), this.focusWrapper, eAddButton));\n _.setAriaLabel(this.focusWrapper, this.advancedFilterExpressionService.translate('ariaAdvancedFilterBuilderItem', [\n this.advancedFilterExpressionService.translate('advancedFilterBuilderAddButtonTooltip'),\n \"\" + (this.item.level + 1)\n ]));\n };\n AdvancedFilterBuilderItemAddComp.prototype.afterAdd = function () {\n // do nothing\n };\n __decorate$2E([\n Autowired('beans')\n ], AdvancedFilterBuilderItemAddComp.prototype, \"beans\", void 0);\n __decorate$2E([\n Autowired('advancedFilterExpressionService')\n ], AdvancedFilterBuilderItemAddComp.prototype, \"advancedFilterExpressionService\", void 0);\n __decorate$2E([\n RefSelector('eItem')\n ], AdvancedFilterBuilderItemAddComp.prototype, \"eItem\", void 0);\n __decorate$2E([\n PostConstruct\n ], AdvancedFilterBuilderItemAddComp.prototype, \"postConstruct\", null);\n return AdvancedFilterBuilderItemAddComp;\n}(Component));\n\nvar __extends$3t = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2D = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$1q = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$T = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar AdvancedFilterBuilderComp = /** @class */ (function (_super) {\n __extends$3t(AdvancedFilterBuilderComp, _super);\n function AdvancedFilterBuilderComp() {\n var _this = _super.call(this, /* html */ \"\\n
\\n
\\n
\\n \\n \\n
\\n
\") || this;\n _this.validationMessage = null;\n return _this;\n }\n AdvancedFilterBuilderComp.prototype.postConstruct = function () {\n var _this = this;\n var _a;\n var showMoveButtons = ((_a = this.gridOptionsService.get('advancedFilterBuilderParams')) !== null && _a !== void 0 ? _a : {}).showMoveButtons;\n this.showMove = !!showMoveButtons;\n this.addManagedPropertyListener('advancedFilterBuilderParams', function (_a) {\n var currentValue = _a.currentValue;\n _this.showMove = !!(currentValue === null || currentValue === void 0 ? void 0 : currentValue.showMoveButtons);\n _this.refreshList(false);\n });\n this.filterModel = this.setupFilterModel();\n this.setupVirtualList();\n this.dragFeature = this.createManagedBean(new AdvancedFilterBuilderDragFeature(this, this.virtualList));\n this.setupButtons();\n };\n AdvancedFilterBuilderComp.prototype.refresh = function () {\n var indexToFocus = this.virtualList.getLastFocusedRow();\n this.setupFilterModel();\n this.validateItems();\n this.refreshList(false);\n if (indexToFocus != null) {\n // last focused row is cleared on focus out, so if defined, we need to put the focus back\n if (!this.virtualList.getComponentAt(indexToFocus)) {\n indexToFocus = 0;\n }\n this.virtualList.focusRow(indexToFocus);\n }\n };\n AdvancedFilterBuilderComp.prototype.getNumItems = function () {\n return this.items.length;\n };\n AdvancedFilterBuilderComp.prototype.moveItem = function (item, destination) {\n if (!destination || !item) {\n return;\n }\n this.moveItemToIndex(item, destination.rowIndex, destination.position);\n };\n AdvancedFilterBuilderComp.prototype.afterGuiAttached = function () {\n this.virtualList.focusRow(0);\n };\n AdvancedFilterBuilderComp.prototype.setupVirtualList = function () {\n var _this = this;\n this.virtualList = this.createManagedBean(new VirtualList({\n cssIdentifier: 'advanced-filter-builder',\n ariaRole: 'tree',\n listName: this.advancedFilterExpressionService.translate('ariaAdvancedFilterBuilderList')\n }));\n this.virtualList.setComponentCreator(this.createItemComponent.bind(this));\n this.virtualList.setComponentUpdater(this.updateItemComponent.bind(this));\n this.virtualList.setRowHeight(40);\n this.eList.appendChild(this.virtualList.getGui());\n this.virtualList.setModel({\n getRowCount: function () { return _this.items.length; },\n getRow: function (index) { return _this.items[index]; },\n areRowsEqual: function (oldRow, newRow) { return oldRow === newRow; }\n });\n this.buildList();\n this.virtualList.refresh();\n };\n AdvancedFilterBuilderComp.prototype.setupButtons = function () {\n var _this = this;\n this.eApplyFilterButton.innerText = this.advancedFilterExpressionService.translate('advancedFilterBuilderApply');\n this.activateTabIndex([this.eApplyFilterButton]);\n this.addManagedListener(this.eApplyFilterButton, 'click', function () {\n _this.advancedFilterService.setModel(_this.filterModel);\n _this.filterManager.onFilterChanged({ source: 'advancedFilter' });\n _this.close();\n });\n this.validationTooltipFeature = this.createManagedBean(new TooltipFeature({\n getGui: function () { return _this.eApplyFilterButton; },\n getLocation: function () { return 'advancedFilter'; },\n getTooltipValue: function () { return _this.validationMessage; },\n getTooltipShowDelayOverride: function () { return 1000; }\n }, this.beans));\n this.validationTooltipFeature.setComp(this.eApplyFilterButton);\n this.validate();\n this.addManagedListener(this.eApplyFilterButton, 'mouseenter', function () { return _this.addOrRemoveCssClass('ag-advanced-filter-builder-validation', true); });\n this.addManagedListener(this.eApplyFilterButton, 'mouseleave', function () { return _this.addOrRemoveCssClass('ag-advanced-filter-builder-validation', false); });\n this.eCancelFilterButton.innerText = this.advancedFilterExpressionService.translate('advancedFilterBuilderCancel');\n this.activateTabIndex([this.eCancelFilterButton]);\n this.addManagedListener(this.eCancelFilterButton, 'click', function () { return _this.close(); });\n };\n AdvancedFilterBuilderComp.prototype.removeItemFromParent = function (item) {\n var sourceParentIndex = item.parent.conditions.indexOf(item.filterModel);\n item.parent.conditions.splice(sourceParentIndex, 1);\n return sourceParentIndex;\n };\n AdvancedFilterBuilderComp.prototype.moveItemToIndex = function (item, destinationRowIndex, destinationPosition) {\n var _a;\n var destinationItem = this.items[destinationRowIndex];\n var destinationIsParent = ((_a = destinationItem.filterModel) === null || _a === void 0 ? void 0 : _a.filterType) === 'join' && destinationPosition === 'bottom';\n var destinationParent = destinationIsParent ? destinationItem.filterModel : destinationItem.parent;\n // trying to move before the root\n if (!destinationParent) {\n return;\n }\n // can't move into itself\n if (this.isChildOrSelf(destinationParent, item.filterModel) || destinationItem === item) {\n return;\n }\n this.removeItemFromParent(item);\n var destinationParentIndex;\n if (destinationIsParent) {\n destinationParentIndex = 0;\n }\n else {\n destinationParentIndex = destinationParent.conditions.indexOf(destinationItem.filterModel);\n if (destinationParentIndex === -1) {\n destinationParentIndex = destinationParent.conditions.length;\n }\n else if (destinationPosition === 'bottom') {\n destinationParentIndex += 1;\n }\n }\n destinationParent.conditions.splice(destinationParentIndex, 0, item.filterModel);\n this.refreshList(false);\n };\n AdvancedFilterBuilderComp.prototype.isChildOrSelf = function (modelToCheck, potentialParentModel) {\n var _this = this;\n return modelToCheck === potentialParentModel || (potentialParentModel.filterType === 'join' &&\n potentialParentModel.conditions.some(function (condition) { return _this.isChildOrSelf(modelToCheck, condition); }));\n };\n AdvancedFilterBuilderComp.prototype.setupFilterModel = function () {\n var filterModel = this.formatFilterModel(this.advancedFilterService.getModel());\n this.stringifiedModel = JSON.stringify(filterModel);\n return filterModel;\n };\n AdvancedFilterBuilderComp.prototype.formatFilterModel = function (filterModel) {\n filterModel = filterModel !== null && filterModel !== void 0 ? filterModel : {\n filterType: 'join',\n type: 'AND',\n conditions: []\n };\n if (filterModel.filterType !== 'join') {\n filterModel = {\n filterType: 'join',\n type: 'AND',\n conditions: [filterModel]\n };\n }\n return filterModel;\n };\n AdvancedFilterBuilderComp.prototype.buildList = function () {\n var _this = this;\n var parseFilterModel = function (filterModel, items, level, parent) {\n items.push({ filterModel: filterModel, level: level, parent: parent, valid: true, showMove: _this.showMove });\n if (filterModel.filterType === 'join') {\n filterModel.conditions.forEach(function (childFilterModel) { return parseFilterModel(childFilterModel, items, level + 1, filterModel); });\n if (level === 0) {\n items.push({ filterModel: null, level: level + 1, parent: filterModel, valid: true });\n }\n }\n };\n this.items = [];\n parseFilterModel(this.filterModel, this.items, 0);\n };\n AdvancedFilterBuilderComp.prototype.refreshList = function (softRefresh) {\n if (!softRefresh) {\n var invalidModels_1 = [];\n this.items.forEach(function (item) {\n if (!item.valid) {\n invalidModels_1.push(item.filterModel);\n }\n });\n this.buildList();\n if (invalidModels_1.length) {\n this.items.forEach(function (item) {\n if (item.filterModel && invalidModels_1.includes(item.filterModel)) {\n item.valid = false;\n }\n });\n }\n }\n this.virtualList.refresh(softRefresh);\n this.validate();\n };\n AdvancedFilterBuilderComp.prototype.updateItemComponent = function (item, comp) {\n var _this = this;\n var index = this.items.indexOf(item);\n var populateTreeLines = function (filterModel, treeLines) {\n var parentItem = _this.items.find(function (itemToCheck) { return itemToCheck.filterModel === filterModel; });\n var parentFilterModel = parentItem === null || parentItem === void 0 ? void 0 : parentItem.parent;\n if (parentFilterModel) {\n var conditions = parentFilterModel.conditions;\n // check parent\n populateTreeLines(parentFilterModel, treeLines);\n treeLines.push(conditions[conditions.length - 1] === filterModel);\n }\n };\n var treeLines = [];\n var filterModel = item.filterModel;\n if (filterModel) {\n populateTreeLines(filterModel, treeLines);\n // the add item button is always last child\n treeLines[0] = false;\n }\n var showStartTreeLine = (filterModel === null || filterModel === void 0 ? void 0 : filterModel.filterType) === 'join' && !!filterModel.conditions.length;\n comp.setState({\n disableMoveUp: index === 1,\n disableMoveDown: !this.canMoveDown(item, index),\n treeLines: treeLines,\n showStartTreeLine: showStartTreeLine\n });\n };\n AdvancedFilterBuilderComp.prototype.createItemComponent = function (item, focusWrapper) {\n var _this = this;\n var itemComp = this.createBean(item.filterModel\n ? new AdvancedFilterBuilderItemComp(item, this.dragFeature, focusWrapper)\n : new AdvancedFilterBuilderItemAddComp(item, focusWrapper));\n itemComp.addManagedListener(itemComp, AdvancedFilterBuilderEvents.EVENT_REMOVED, function (_a) {\n var item = _a.item;\n return _this.removeItem(item);\n });\n itemComp.addManagedListener(itemComp, AdvancedFilterBuilderEvents.EVENT_VALUE_CHANGED, function () { return _this.validate(); });\n itemComp.addManagedListener(itemComp, AdvancedFilterBuilderEvents.EVENT_ADDED, function (_a) {\n var item = _a.item, isJoin = _a.isJoin;\n return _this.addItem(item, isJoin);\n });\n itemComp.addManagedListener(itemComp, AdvancedFilterBuilderEvents.EVENT_MOVED, function (_a) {\n var item = _a.item, backwards = _a.backwards;\n return _this.moveItemUpDown(item, backwards);\n });\n if (itemComp instanceof AdvancedFilterBuilderItemComp) {\n this.updateItemComponent(item, itemComp);\n }\n return itemComp;\n };\n AdvancedFilterBuilderComp.prototype.addItem = function (item, isJoin) {\n var _a;\n var _b;\n var itemParent = item.parent, level = item.level, itemFilterModel = item.filterModel;\n var itemIsJoin = (itemFilterModel === null || itemFilterModel === void 0 ? void 0 : itemFilterModel.filterType) === 'join';\n var filterModel = isJoin ? {\n filterType: 'join',\n type: 'AND',\n conditions: []\n } : {};\n var parent = (itemIsJoin ? itemFilterModel : itemParent);\n var insertIndex = itemIsJoin ? 0 : parent.conditions.indexOf(itemFilterModel);\n if (insertIndex >= 0) {\n if (!itemIsJoin) {\n insertIndex += 1;\n }\n parent.conditions.splice(insertIndex, 0, filterModel);\n }\n else {\n parent.conditions.push(filterModel);\n }\n var index = this.items.indexOf(item);\n var softRefresh = index >= 0;\n if (softRefresh) {\n if (item.filterModel) {\n index++;\n }\n var newItems = [{\n filterModel: filterModel,\n level: itemIsJoin ? level + 1 : level,\n parent: parent,\n valid: isJoin,\n showMove: this.showMove\n }];\n (_a = this.items).splice.apply(_a, __spreadArray$T([index, 0], __read$1q(newItems)));\n }\n this.refreshList(softRefresh);\n if (softRefresh) {\n (_b = this.virtualList.getComponentAt(index)) === null || _b === void 0 ? void 0 : _b.afterAdd();\n }\n };\n AdvancedFilterBuilderComp.prototype.removeItem = function (item) {\n var _a;\n var parent = item.parent;\n var filterModel = item.filterModel;\n var parentIndex = parent.conditions.indexOf(filterModel);\n parent.conditions.splice(parentIndex, 1);\n var isJoin = ((_a = item.filterModel) === null || _a === void 0 ? void 0 : _a.filterType) === 'join';\n var index = this.items.indexOf(item);\n // if it's a join, we don't know how many children there are, so always rebuild\n var softRefresh = !isJoin && index >= 0;\n if (softRefresh) {\n this.items.splice(index, 1);\n }\n this.refreshList(softRefresh);\n if (index >= 0) {\n this.virtualList.focusRow(index);\n }\n };\n AdvancedFilterBuilderComp.prototype.moveItemUpDown = function (item, backwards) {\n var itemIndex = this.items.indexOf(item);\n var destinationIndex = backwards ? itemIndex - 1 : itemIndex + 1;\n if (destinationIndex === 0 || (!backwards && !this.canMoveDown(item, itemIndex))) {\n return;\n }\n var destinationItem = this.items[destinationIndex];\n var indexInParent = this.removeItemFromParent(item);\n var level = item.level, filterModel = item.filterModel, parent = item.parent;\n var destinationLevel = destinationItem.level, destinationFilterModel = destinationItem.filterModel, destinationParent = destinationItem.parent;\n if (backwards) {\n if (destinationLevel === level && destinationFilterModel.filterType === 'join') {\n // destination is empty join. move to last child\n destinationFilterModel.conditions.push(filterModel);\n }\n else if (destinationLevel <= level) {\n // same parent or first child. move above destination in destination parent\n var destinationIndex_1 = destinationParent.conditions.indexOf(destinationFilterModel);\n destinationParent.conditions.splice(destinationIndex_1, 0, filterModel);\n }\n else {\n // need to move up a level. move to end of previous item's children\n var newParentItem = parent.conditions[indexInParent - 1];\n newParentItem.conditions.push(filterModel);\n }\n }\n else {\n if (destinationLevel === level) {\n if (destinationFilterModel.filterType === 'join') {\n // destination is join. move to first child\n destinationFilterModel.conditions.splice(0, 0, filterModel);\n }\n else {\n // switch positions\n var destinationIndex_2 = destinationParent.conditions.indexOf(destinationFilterModel);\n destinationParent.conditions.splice(destinationIndex_2 + 1, 0, filterModel);\n }\n }\n else {\n if (indexInParent < parent.conditions.length) {\n // keep in parent, but swap with next child\n parent.conditions.splice(indexInParent + 1, 0, filterModel);\n }\n else {\n // need to move down a level. move after parent in its parent\n var parentItem = this.items.find(function (itemToCheck) { return itemToCheck.filterModel === parent; });\n var destinationIndex_3 = parentItem.parent.conditions.indexOf(parentItem.filterModel) + 1;\n parentItem.parent.conditions.splice(destinationIndex_3, 0, filterModel);\n }\n }\n }\n this.refreshList(false);\n var newIndex = this.items.findIndex(function (_a) {\n var filterModelToCheck = _a.filterModel;\n return filterModelToCheck === filterModel;\n });\n if (newIndex >= 0) {\n var comp = this.virtualList.getComponentAt(newIndex);\n if (comp instanceof AdvancedFilterBuilderItemComp) {\n comp.focusMoveButton(backwards);\n }\n }\n };\n AdvancedFilterBuilderComp.prototype.canMoveDown = function (item, index) {\n return !((item.level === 1 && index === this.items.length - 2) ||\n (item.level === 1 && item.parent.conditions[item.parent.conditions.length - 1] === item.filterModel));\n };\n AdvancedFilterBuilderComp.prototype.close = function () {\n this.advancedFilterService.getCtrl().toggleFilterBuilder('ui');\n };\n AdvancedFilterBuilderComp.prototype.validate = function () {\n var disableApply = !this.items.every(function (_a) {\n var valid = _a.valid;\n return valid;\n });\n if (!disableApply) {\n disableApply = JSON.stringify(this.filterModel) === this.stringifiedModel;\n if (disableApply) {\n this.validationMessage = this.advancedFilterExpressionService.translate('advancedFilterBuilderValidationAlreadyApplied');\n }\n else {\n this.validationMessage = null;\n }\n }\n else {\n this.validationMessage = this.advancedFilterExpressionService.translate('advancedFilterBuilderValidationIncomplete');\n }\n _.setDisabled(this.eApplyFilterButton, disableApply);\n this.validationTooltipFeature.refreshToolTip();\n };\n AdvancedFilterBuilderComp.prototype.validateItems = function () {\n var _this = this;\n var clearOperator = function (filterModel) {\n filterModel.type = undefined;\n };\n var clearOperand = function (filterModel) {\n delete filterModel.filter;\n };\n this.items.forEach(function (item) {\n if (!item.valid || !item.filterModel || item.filterModel.filterType === 'join') {\n return;\n }\n var filterModel = item.filterModel;\n var colId = filterModel.colId;\n var hasColumn = _this.advancedFilterExpressionService.getColumnAutocompleteEntries().find(function (_a) {\n var key = _a.key;\n return key === colId;\n });\n var columnDetails = _this.advancedFilterExpressionService.getColumnDetails(filterModel.colId);\n if (!hasColumn || !columnDetails) {\n item.valid = false;\n filterModel.colId = undefined;\n clearOperator(filterModel);\n clearOperand(filterModel);\n return;\n }\n var operatorForType = _this.advancedFilterExpressionService.getDataTypeExpressionOperator(columnDetails.baseCellDataType);\n var operator = operatorForType.operators[filterModel.type];\n if (!operator) {\n item.valid = false;\n clearOperator(filterModel);\n clearOperand(filterModel);\n return;\n }\n if (operator.numOperands > 0 && !_.exists(filterModel.filter)) {\n item.valid = false;\n return;\n }\n });\n };\n __decorate$2D([\n RefSelector('eList')\n ], AdvancedFilterBuilderComp.prototype, \"eList\", void 0);\n __decorate$2D([\n RefSelector('eApplyFilterButton')\n ], AdvancedFilterBuilderComp.prototype, \"eApplyFilterButton\", void 0);\n __decorate$2D([\n RefSelector('eCancelFilterButton')\n ], AdvancedFilterBuilderComp.prototype, \"eCancelFilterButton\", void 0);\n __decorate$2D([\n Autowired('filterManager')\n ], AdvancedFilterBuilderComp.prototype, \"filterManager\", void 0);\n __decorate$2D([\n Autowired('advancedFilterService')\n ], AdvancedFilterBuilderComp.prototype, \"advancedFilterService\", void 0);\n __decorate$2D([\n Autowired('advancedFilterExpressionService')\n ], AdvancedFilterBuilderComp.prototype, \"advancedFilterExpressionService\", void 0);\n __decorate$2D([\n Autowired('beans')\n ], AdvancedFilterBuilderComp.prototype, \"beans\", void 0);\n __decorate$2D([\n PostConstruct\n ], AdvancedFilterBuilderComp.prototype, \"postConstruct\", null);\n return AdvancedFilterBuilderComp;\n}(Component));\n\nvar __extends$3s = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2C = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$1p = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$S = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar AdvancedFilterCtrl = /** @class */ (function (_super) {\n __extends$3s(AdvancedFilterCtrl, _super);\n function AdvancedFilterCtrl(enabled) {\n var _this = _super.call(this) || this;\n _this.enabled = enabled;\n return _this;\n }\n AdvancedFilterCtrl.prototype.postConstruct = function () {\n var _this = this;\n this.hasAdvancedFilterParent = !!this.gridOptionsService.get('advancedFilterParent');\n this.ctrlsService.whenReady(function () { return _this.setAdvancedFilterComp(); });\n this.addManagedListener(this.eventService, Events.EVENT_ADVANCED_FILTER_ENABLED_CHANGED, function (_a) {\n var enabled = _a.enabled;\n return _this.onEnabledChanged(enabled);\n });\n this.addManagedPropertyListener('advancedFilterParent', function () { return _this.updateComps(); });\n this.addDestroyFunc(function () {\n _this.destroyAdvancedFilterComp();\n _this.destroyBean(_this.eBuilderComp);\n if (_this.eBuilderDialog && _this.eBuilderDialog.isAlive()) {\n _this.destroyBean(_this.eBuilderDialog);\n }\n });\n };\n AdvancedFilterCtrl.prototype.setupHeaderComp = function (eCompToInsertBefore) {\n this.eHeaderComp = this.createManagedBean(new AdvancedFilterHeaderComp(this.enabled && !this.hasAdvancedFilterParent));\n eCompToInsertBefore.insertAdjacentElement('beforebegin', this.eHeaderComp.getGui());\n };\n AdvancedFilterCtrl.prototype.focusHeaderComp = function () {\n if (this.eHeaderComp) {\n this.eHeaderComp.getFocusableElement().focus();\n return true;\n }\n return false;\n };\n AdvancedFilterCtrl.prototype.refreshComp = function () {\n var _a, _b;\n (_a = this.eFilterComp) === null || _a === void 0 ? void 0 : _a.refresh();\n (_b = this.eHeaderComp) === null || _b === void 0 ? void 0 : _b.refresh();\n };\n AdvancedFilterCtrl.prototype.refreshBuilderComp = function () {\n var _a;\n (_a = this.eBuilderComp) === null || _a === void 0 ? void 0 : _a.refresh();\n };\n AdvancedFilterCtrl.prototype.getHeaderHeight = function () {\n var _a, _b;\n return (_b = (_a = this.eHeaderComp) === null || _a === void 0 ? void 0 : _a.getHeight()) !== null && _b !== void 0 ? _b : 0;\n };\n AdvancedFilterCtrl.prototype.setInputDisabled = function (disabled) {\n var _a, _b;\n (_a = this.eFilterComp) === null || _a === void 0 ? void 0 : _a.setInputDisabled(disabled);\n (_b = this.eHeaderComp) === null || _b === void 0 ? void 0 : _b.setInputDisabled(disabled);\n };\n AdvancedFilterCtrl.prototype.toggleFilterBuilder = function (source, force) {\n var _this = this;\n if ((force && this.eBuilderDialog) || (force === false && !this.eBuilderDialog)) {\n // state requested is already active\n return;\n }\n if (this.eBuilderDialog) {\n this.builderDestroySource = source;\n this.destroyBean(this.eBuilderDialog);\n return;\n }\n this.setInputDisabled(true);\n var _a = this.getBuilderDialogSize(), width = _a.width, height = _a.height, minWidth = _a.minWidth;\n this.eBuilderComp = this.createBean(new AdvancedFilterBuilderComp());\n this.eBuilderDialog = this.createBean(new AgDialog({\n title: this.advancedFilterExpressionService.translate('advancedFilterBuilderTitle'),\n component: this.eBuilderComp,\n width: width,\n height: height,\n resizable: true,\n movable: true,\n maximizable: true,\n centered: true,\n closable: true,\n minWidth: minWidth,\n afterGuiAttached: function () { var _a; return (_a = _this.eBuilderComp) === null || _a === void 0 ? void 0 : _a.afterGuiAttached(); }\n }));\n this.dispatchFilterBuilderVisibleChangedEvent(source, true);\n this.eBuilderDialog.addEventListener(AgDialog.EVENT_DESTROYED, function () {\n var _a;\n _this.destroyBean(_this.eBuilderComp);\n _this.eBuilderComp = undefined;\n _this.eBuilderDialog = undefined;\n _this.setInputDisabled(false);\n _this.dispatchEvent({\n type: AdvancedFilterCtrl.EVENT_BUILDER_CLOSED\n });\n _this.dispatchFilterBuilderVisibleChangedEvent((_a = _this.builderDestroySource) !== null && _a !== void 0 ? _a : 'ui', false);\n _this.builderDestroySource = undefined;\n });\n };\n AdvancedFilterCtrl.prototype.dispatchFilterBuilderVisibleChangedEvent = function (source, visible) {\n var event = {\n type: Events.EVENT_ADVANCED_FILTER_BUILDER_VISIBLE_CHANGED,\n source: source,\n visible: visible\n };\n this.eventService.dispatchEvent(event);\n };\n AdvancedFilterCtrl.prototype.getBuilderDialogSize = function () {\n var _a, _b;\n var minWidth = (_b = (_a = this.gridOptionsService.get('advancedFilterBuilderParams')) === null || _a === void 0 ? void 0 : _a.minWidth) !== null && _b !== void 0 ? _b : 500;\n var popupParent = this.popupService.getPopupParent();\n var maxWidth = Math.round(_.getAbsoluteWidth(popupParent)) - 2; // assume 1 pixel border\n var maxHeight = Math.round(_.getAbsoluteHeight(popupParent) * 0.75) - 2;\n var width = Math.min(Math.max(600, minWidth), maxWidth);\n var height = Math.min(600, maxHeight);\n return { width: width, height: height, minWidth: minWidth };\n };\n AdvancedFilterCtrl.prototype.onEnabledChanged = function (enabled) {\n this.enabled = enabled;\n this.updateComps();\n };\n AdvancedFilterCtrl.prototype.updateComps = function () {\n this.setAdvancedFilterComp();\n this.setHeaderCompEnabled();\n this.eventService.dispatchEvent({\n type: Events.EVENT_HEADER_HEIGHT_CHANGED\n });\n };\n AdvancedFilterCtrl.prototype.setAdvancedFilterComp = function () {\n var _a;\n this.destroyAdvancedFilterComp();\n if (!this.enabled) {\n return;\n }\n var advancedFilterParent = this.gridOptionsService.get('advancedFilterParent');\n this.hasAdvancedFilterParent = !!advancedFilterParent;\n if (advancedFilterParent) {\n // unmanaged as can be recreated\n var eAdvancedFilterComp = this.createBean(new AdvancedFilterComp());\n var eAdvancedFilterCompGui_1 = eAdvancedFilterComp.getGui();\n var allThemes = this.environment.getTheme().allThemes;\n if (allThemes.length) {\n (_a = eAdvancedFilterCompGui_1.classList).add.apply(_a, __spreadArray$S([], __read$1p(allThemes)));\n }\n eAdvancedFilterCompGui_1.classList.add(this.gridOptionsService.is('enableRtl') ? 'ag-rtl' : 'ag-ltr');\n if (this.focusService.isKeyboardMode()) {\n eAdvancedFilterCompGui_1.classList.add(FocusService.AG_KEYBOARD_FOCUS);\n }\n var gridCtrl = this.ctrlsService.getGridCtrl();\n eAdvancedFilterComp.addManagedListener(gridCtrl, Events.EVENT_KEYBOARD_FOCUS, function () { return eAdvancedFilterCompGui_1.classList.add(FocusService.AG_KEYBOARD_FOCUS); });\n eAdvancedFilterComp.addManagedListener(gridCtrl, Events.EVENT_MOUSE_FOCUS, function () { return eAdvancedFilterCompGui_1.classList.remove(FocusService.AG_KEYBOARD_FOCUS); });\n advancedFilterParent.appendChild(eAdvancedFilterCompGui_1);\n this.eFilterComp = eAdvancedFilterComp;\n }\n };\n AdvancedFilterCtrl.prototype.setHeaderCompEnabled = function () {\n var _a;\n (_a = this.eHeaderComp) === null || _a === void 0 ? void 0 : _a.setEnabled(this.enabled && !this.hasAdvancedFilterParent);\n };\n AdvancedFilterCtrl.prototype.destroyAdvancedFilterComp = function () {\n if (this.eFilterComp) {\n _.removeFromParent(this.eFilterComp.getGui());\n this.destroyBean(this.eFilterComp);\n }\n };\n AdvancedFilterCtrl.EVENT_BUILDER_CLOSED = 'advancedFilterBuilderClosed';\n __decorate$2C([\n Autowired('focusService')\n ], AdvancedFilterCtrl.prototype, \"focusService\", void 0);\n __decorate$2C([\n Autowired('ctrlsService')\n ], AdvancedFilterCtrl.prototype, \"ctrlsService\", void 0);\n __decorate$2C([\n Autowired('popupService')\n ], AdvancedFilterCtrl.prototype, \"popupService\", void 0);\n __decorate$2C([\n Autowired('advancedFilterExpressionService')\n ], AdvancedFilterCtrl.prototype, \"advancedFilterExpressionService\", void 0);\n __decorate$2C([\n PostConstruct\n ], AdvancedFilterCtrl.prototype, \"postConstruct\", null);\n return AdvancedFilterCtrl;\n}(BeanStub));\n\nvar __extends$3r = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2B = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AdvancedFilterComp = /** @class */ (function (_super) {\n __extends$3r(AdvancedFilterComp, _super);\n function AdvancedFilterComp() {\n var _this = _super.call(this, /* html */ \"\\n
\\n \\n \\n \\n
\") || this;\n _this.expressionParser = null;\n _this.isApplyDisabled = true;\n _this.builderOpen = false;\n return _this;\n }\n AdvancedFilterComp.prototype.postConstruct = function () {\n var _this = this;\n this.eAutocomplete\n .setListGenerator(function (_value, position) { return _this.generateAutocompleteListParams(position); })\n .setValidator(function () { return _this.validateValue(); })\n .setForceLastSelection(function (lastSelection, searchString) { return _this.forceLastSelection(lastSelection, searchString); })\n .setInputAriaLabel(this.advancedFilterExpressionService.translate('ariaAdvancedFilterInput'))\n .setListAriaLabel(this.advancedFilterExpressionService.translate('ariaLabelAdvancedFilterAutocomplete'));\n this.refresh();\n this.addManagedListener(this.eAutocomplete, AgAutocomplete.EVENT_VALUE_CHANGED, function (_a) {\n var value = _a.value;\n return _this.onValueChanged(value);\n });\n this.addManagedListener(this.eAutocomplete, AgAutocomplete.EVENT_VALUE_CONFIRMED, function (_a) {\n var isValid = _a.isValid;\n return _this.onValueConfirmed(isValid);\n });\n this.addManagedListener(this.eAutocomplete, AgAutocomplete.EVENT_OPTION_SELECTED, function (_a) {\n var position = _a.position, updateEntry = _a.updateEntry, autocompleteType = _a.autocompleteType;\n return _this.onOptionSelected(position, updateEntry, autocompleteType);\n });\n this.addManagedListener(this.eAutocomplete, AgAutocomplete.EVENT_VALID_CHANGED, function (_a) {\n var isValid = _a.isValid, validationMessage = _a.validationMessage;\n return _this.onValidChanged(isValid, validationMessage);\n });\n this.setupApplyButton();\n this.setupBuilderButton();\n };\n AdvancedFilterComp.prototype.refresh = function () {\n var expression = this.advancedFilterService.getExpressionDisplayValue();\n this.eAutocomplete.setValue({ value: expression !== null && expression !== void 0 ? expression : '', position: expression === null || expression === void 0 ? void 0 : expression.length, updateListOnlyIfOpen: true });\n };\n AdvancedFilterComp.prototype.setInputDisabled = function (disabled) {\n this.eAutocomplete.setInputDisabled(disabled);\n _.setDisabled(this.eApplyFilterButton, disabled || this.isApplyDisabled);\n };\n AdvancedFilterComp.prototype.getTooltipParams = function () {\n var res = _super.prototype.getTooltipParams.call(this);\n res.location = 'advancedFilter';\n return res;\n };\n AdvancedFilterComp.prototype.setupApplyButton = function () {\n var _this = this;\n this.eApplyFilterButton.innerText = this.advancedFilterExpressionService.translate('advancedFilterApply');\n this.activateTabIndex([this.eApplyFilterButton]);\n this.addManagedListener(this.eApplyFilterButton, 'click', function () { return _this.onValueConfirmed(_this.eAutocomplete.isValid()); });\n _.setDisabled(this.eApplyFilterButton, this.isApplyDisabled);\n };\n AdvancedFilterComp.prototype.setupBuilderButton = function () {\n var _this = this;\n this.eBuilderFilterButtonIcon.appendChild(_.createIconNoSpan('advancedFilterBuilder', this.gridOptionsService));\n this.eBuilderFilterButtonLabel.innerText = this.advancedFilterExpressionService.translate('advancedFilterBuilder');\n this.activateTabIndex([this.eBuilderFilterButton]);\n this.addManagedListener(this.eBuilderFilterButton, 'click', function () { return _this.openBuilder(); });\n this.addManagedListener(this.advancedFilterService.getCtrl(), AdvancedFilterCtrl.EVENT_BUILDER_CLOSED, function () { return _this.closeBuilder(); });\n };\n AdvancedFilterComp.prototype.onValueChanged = function (value) {\n var _a;\n value = _.makeNull(value);\n this.advancedFilterService.setExpressionDisplayValue(value);\n this.expressionParser = this.advancedFilterService.createExpressionParser(value);\n var updatedExpression = (_a = this.expressionParser) === null || _a === void 0 ? void 0 : _a.parseExpression();\n if (updatedExpression && updatedExpression !== value) {\n this.eAutocomplete.setValue({ value: updatedExpression, silent: true, restoreFocus: true });\n }\n };\n AdvancedFilterComp.prototype.onValueConfirmed = function (isValid) {\n if (!isValid || this.isApplyDisabled) {\n return;\n }\n _.setDisabled(this.eApplyFilterButton, true);\n this.advancedFilterService.applyExpression();\n this.filterManager.onFilterChanged({ source: 'advancedFilter' });\n };\n AdvancedFilterComp.prototype.onOptionSelected = function (position, updateEntry, type) {\n var _a = this.updateExpression(position, updateEntry, type), updatedValue = _a.updatedValue, updatedPosition = _a.updatedPosition, hideAutocomplete = _a.hideAutocomplete;\n this.eAutocomplete.setValue({\n value: updatedValue,\n position: updatedPosition,\n updateListOnlyIfOpen: hideAutocomplete,\n restoreFocus: true\n });\n };\n AdvancedFilterComp.prototype.validateValue = function () {\n var _a, _b, _c;\n return ((_a = this.expressionParser) === null || _a === void 0 ? void 0 : _a.isValid()) ? null : ((_c = (_b = this.expressionParser) === null || _b === void 0 ? void 0 : _b.getValidationMessage()) !== null && _c !== void 0 ? _c : null);\n };\n AdvancedFilterComp.prototype.onValidChanged = function (isValid, validationMessage) {\n this.isApplyDisabled = !isValid || this.advancedFilterService.isCurrentExpressionApplied();\n _.setDisabled(this.eApplyFilterButton, this.isApplyDisabled);\n this.setTooltip(validationMessage, 1000);\n };\n AdvancedFilterComp.prototype.generateAutocompleteListParams = function (position) {\n return this.expressionParser\n ? this.expressionParser.getAutocompleteListParams(position)\n : this.advancedFilterExpressionService.getDefaultAutocompleteListParams('');\n };\n AdvancedFilterComp.prototype.updateExpression = function (position, updateEntry, type) {\n var _a, _b;\n this.advancedFilterExpressionService.updateAutocompleteCache(updateEntry, type);\n return (_b = (_a = this.expressionParser) === null || _a === void 0 ? void 0 : _a.updateExpression(position, updateEntry, type)) !== null && _b !== void 0 ? _b : this.advancedFilterService.getDefaultExpression(updateEntry);\n };\n AdvancedFilterComp.prototype.forceLastSelection = function (_a, searchString) {\n var key = _a.key, displayValue = _a.displayValue;\n return !!searchString.toLocaleLowerCase().match(\"^\" + (displayValue !== null && displayValue !== void 0 ? displayValue : key).toLocaleLowerCase() + \"\\\\s*$\");\n };\n AdvancedFilterComp.prototype.openBuilder = function () {\n if (this.builderOpen) {\n return;\n }\n this.builderOpen = true;\n _.setDisabled(this.eBuilderFilterButton, true);\n this.advancedFilterService.getCtrl().toggleFilterBuilder('ui');\n };\n AdvancedFilterComp.prototype.closeBuilder = function () {\n if (!this.builderOpen) {\n return;\n }\n this.builderOpen = false;\n _.setDisabled(this.eBuilderFilterButton, false);\n this.eBuilderFilterButton.focus();\n };\n __decorate$2B([\n RefSelector('eAutocomplete')\n ], AdvancedFilterComp.prototype, \"eAutocomplete\", void 0);\n __decorate$2B([\n RefSelector('eApplyFilterButton')\n ], AdvancedFilterComp.prototype, \"eApplyFilterButton\", void 0);\n __decorate$2B([\n RefSelector('eBuilderFilterButton')\n ], AdvancedFilterComp.prototype, \"eBuilderFilterButton\", void 0);\n __decorate$2B([\n RefSelector('eBuilderFilterButtonIcon')\n ], AdvancedFilterComp.prototype, \"eBuilderFilterButtonIcon\", void 0);\n __decorate$2B([\n RefSelector('eBuilderFilterButtonLabel')\n ], AdvancedFilterComp.prototype, \"eBuilderFilterButtonLabel\", void 0);\n __decorate$2B([\n Autowired('advancedFilterService')\n ], AdvancedFilterComp.prototype, \"advancedFilterService\", void 0);\n __decorate$2B([\n Autowired('advancedFilterExpressionService')\n ], AdvancedFilterComp.prototype, \"advancedFilterExpressionService\", void 0);\n __decorate$2B([\n Autowired('filterManager')\n ], AdvancedFilterComp.prototype, \"filterManager\", void 0);\n __decorate$2B([\n PostConstruct\n ], AdvancedFilterComp.prototype, \"postConstruct\", null);\n return AdvancedFilterComp;\n}(Component));\n\nvar ADVANCED_FILTER_LOCALE_TEXT = {\n ariaAdvancedFilterBuilderItem: function (variableValues) { return variableValues[0] + \". Level \" + variableValues[1] + \". Press ENTER to edit.\"; },\n ariaAdvancedFilterBuilderItemValidation: function (variableValues) { return variableValues[0] + \". Level \" + variableValues[1] + \". \" + variableValues[2] + \" Press ENTER to edit.\"; },\n ariaAdvancedFilterBuilderList: 'Advanced Filter Builder List',\n ariaAdvancedFilterBuilderFilterItem: 'Filter Condition',\n ariaAdvancedFilterBuilderGroupItem: 'Filter Group',\n ariaAdvancedFilterBuilderColumn: 'Column',\n ariaAdvancedFilterBuilderOption: 'Option',\n ariaAdvancedFilterBuilderValue: 'Value',\n ariaAdvancedFilterBuilderJoinOperator: 'Join Operator',\n ariaAdvancedFilterInput: 'Advanced Filter Input',\n ariaLabelAdvancedFilterAutocomplete: 'Advanced Filter Autocomplete',\n advancedFilterContains: 'contains',\n advancedFilterNotContains: 'does not contain',\n advancedFilterTextEquals: 'equals',\n advancedFilterTextNotEqual: 'does not equal',\n advancedFilterStartsWith: 'starts with',\n advancedFilterEndsWith: 'ends with',\n advancedFilterBlank: 'is blank',\n advancedFilterNotBlank: 'is not blank',\n advancedFilterEquals: '=',\n advancedFilterNotEqual: '!=',\n advancedFilterGreaterThan: '>',\n advancedFilterGreaterThanOrEqual: '>=',\n advancedFilterLessThan: '<',\n advancedFilterLessThanOrEqual: '<=',\n advancedFilterTrue: 'is true',\n advancedFilterFalse: 'is false',\n advancedFilterAnd: 'AND',\n advancedFilterOr: 'OR',\n advancedFilterApply: 'Apply',\n advancedFilterBuilder: 'Builder',\n advancedFilterValidationMissingColumn: 'Column is missing',\n advancedFilterValidationMissingOption: 'Option is missing',\n advancedFilterValidationMissingValue: 'Value is missing',\n advancedFilterValidationInvalidColumn: 'Column not found',\n advancedFilterValidationInvalidOption: 'Option not found',\n advancedFilterValidationMissingQuote: 'Value is missing an end quote',\n advancedFilterValidationNotANumber: 'Value is not a number',\n advancedFilterValidationInvalidDate: 'Value is not a valid date',\n advancedFilterValidationMissingCondition: 'Condition is missing',\n advancedFilterValidationJoinOperatorMismatch: 'Join operators within a condition must be the same',\n advancedFilterValidationInvalidJoinOperator: 'Join operator not found',\n advancedFilterValidationMissingEndBracket: 'Missing end bracket',\n advancedFilterValidationExtraEndBracket: 'Too many end brackets',\n advancedFilterValidationMessage: function (variableValues) { return \"Expression has an error. \" + variableValues[0] + \" - \" + variableValues[1] + \".\"; },\n advancedFilterValidationMessageAtEnd: function (variableValues) { return \"Expression has an error. \" + variableValues[0] + \" at end of expression.\"; },\n advancedFilterBuilderTitle: 'Advanced Filter',\n advancedFilterBuilderApply: 'Apply',\n advancedFilterBuilderCancel: 'Cancel',\n advancedFilterBuilderAddButtonTooltip: 'Add Filter or Group',\n advancedFilterBuilderRemoveButtonTooltip: 'Remove',\n advancedFilterBuilderMoveUpButtonTooltip: 'Move Up',\n advancedFilterBuilderMoveDownButtonTooltip: 'Move Down',\n advancedFilterBuilderAddJoin: 'Add Group',\n advancedFilterBuilderAddCondition: 'Add Filter',\n advancedFilterBuilderSelectColumn: 'Select a column',\n advancedFilterBuilderSelectOption: 'Select an option',\n advancedFilterBuilderEnterValue: 'Enter a value...',\n advancedFilterBuilderValidationAlreadyApplied: 'Current filter already applied.',\n advancedFilterBuilderValidationIncomplete: 'Not all conditions are complete.',\n advancedFilterBuilderValidationSelectColumn: 'Must select a column.',\n advancedFilterBuilderValidationSelectOption: 'Must select an option.',\n advancedFilterBuilderValidationEnterValue: 'Must enter a value.',\n};\n\nfunction getSearchString(value, position, endPosition) {\n if (!value) {\n return '';\n }\n var numChars = endPosition - position;\n return numChars ? value.slice(0, value.length - numChars) : value;\n}\nfunction updateExpression(expression, startPosition, endPosition, updatedValuePart, appendSpace, appendQuote) {\n var secondPartStartPosition = endPosition + (!expression.length ? 0 : 1);\n var positionOffset = 0;\n if (appendSpace) {\n if (expression[secondPartStartPosition] === ' ') {\n // already a space, just move the position\n positionOffset = 1;\n }\n else {\n updatedValuePart += ' ';\n if (appendQuote) {\n updatedValuePart += \"\\\"\";\n }\n }\n }\n var updatedValue = expression.slice(0, startPosition) + updatedValuePart + expression.slice(secondPartStartPosition);\n return { updatedValue: updatedValue, updatedPosition: startPosition + updatedValuePart.length + positionOffset };\n}\nfunction findStartPosition(expression, position, endPosition) {\n var startPosition = position;\n while (startPosition < endPosition) {\n var char = expression[startPosition];\n if (char !== ' ') {\n break;\n }\n startPosition++;\n }\n return startPosition;\n}\nfunction findEndPosition(expression, position) {\n var endPosition = position;\n while (endPosition < expression.length) {\n var char = expression[endPosition];\n if (char === ' ') {\n endPosition = endPosition - 1;\n break;\n }\n endPosition++;\n }\n return endPosition;\n}\nfunction checkAndUpdateExpression(params, userValue, displayValue, endPosition) {\n if (displayValue !== userValue) {\n params.expression = updateExpression(params.expression, endPosition - userValue.length + 1, endPosition, displayValue).updatedValue;\n }\n}\nfunction escapeQuotes(value) {\n return value.replace(/(['\"])/, '\\\\$1');\n}\n\nvar __assign$11 = (undefined && undefined.__assign) || function () {\n __assign$11 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$11.apply(this, arguments);\n};\nvar ColumnParser = /** @class */ (function () {\n function ColumnParser(params, startPosition) {\n this.params = params;\n this.startPosition = startPosition;\n this.type = 'column';\n this.valid = true;\n this.hasStartChar = false;\n this.hasEndChar = false;\n this.colName = '';\n }\n ColumnParser.prototype.parse = function (char, position) {\n if (char === ColFilterExpressionParser.COL_START_CHAR && !this.colName) {\n this.hasStartChar = true;\n }\n else if (char === ColFilterExpressionParser.COL_END_CHAR && this.hasStartChar) {\n var isMatch = this.parseColumn(false, position);\n if (isMatch) {\n this.hasEndChar = true;\n return false;\n }\n else {\n this.colName += char;\n }\n }\n else {\n this.colName += char;\n }\n return undefined;\n };\n ColumnParser.prototype.getDisplayValue = function () {\n return (this.hasStartChar ? ColFilterExpressionParser.COL_START_CHAR : '') +\n this.colName +\n (this.hasEndChar ? ColFilterExpressionParser.COL_END_CHAR : '');\n };\n ColumnParser.prototype.getColId = function () {\n return this.colId;\n };\n ColumnParser.prototype.complete = function (position) {\n this.parseColumn(true, position);\n };\n ColumnParser.prototype.getValidationError = function () {\n var _a;\n return this.valid ? null : {\n message: this.params.advancedFilterExpressionService.translate('advancedFilterValidationInvalidColumn'),\n startPosition: this.startPosition,\n endPosition: (_a = this.endPosition) !== null && _a !== void 0 ? _a : this.params.expression.length - 1\n };\n };\n ColumnParser.prototype.parseColumn = function (fromComplete, endPosition) {\n var _a;\n this.endPosition = endPosition;\n var colValue = this.params.advancedFilterExpressionService.getColId(this.colName);\n if (colValue && this.hasStartChar) {\n this.colId = colValue.colId;\n checkAndUpdateExpression(this.params, this.colName, colValue.columnName, endPosition - 1);\n this.colName = colValue.columnName;\n this.column = this.params.columnModel.getPrimaryColumn(this.colId);\n if (this.column) {\n this.baseCellDataType = (_a = this.params.dataTypeService.getBaseDataType(this.column)) !== null && _a !== void 0 ? _a : 'text';\n return true;\n }\n }\n if (fromComplete) {\n this.valid = false;\n }\n this.baseCellDataType = 'text';\n return false;\n };\n return ColumnParser;\n}());\nvar OperatorParser$1 = /** @class */ (function () {\n function OperatorParser(params, startPosition, baseCellDataType) {\n this.params = params;\n this.startPosition = startPosition;\n this.baseCellDataType = baseCellDataType;\n this.type = 'operator';\n this.valid = true;\n this.expectedNumOperands = 0;\n this.operator = '';\n }\n OperatorParser.prototype.parse = function (char, position) {\n if (char === ' ' || char === ')') {\n var isMatch = this.parseOperator(false, position - 1);\n if (isMatch) {\n return true;\n }\n else {\n this.operator += char;\n }\n }\n else {\n this.operator += char;\n }\n return undefined;\n };\n OperatorParser.prototype.complete = function (position) {\n this.parseOperator(true, position);\n };\n OperatorParser.prototype.getValidationError = function () {\n var _a;\n return this.valid ? null : {\n message: this.params.advancedFilterExpressionService.translate('advancedFilterValidationInvalidOption'),\n startPosition: this.startPosition,\n endPosition: (_a = this.endPosition) !== null && _a !== void 0 ? _a : this.params.expression.length - 1\n };\n };\n OperatorParser.prototype.getDisplayValue = function () {\n return this.operator;\n };\n OperatorParser.prototype.getOperatorKey = function () {\n return this.parsedOperator;\n };\n OperatorParser.prototype.parseOperator = function (fromComplete, endPosition) {\n var operatorForType = this.params.advancedFilterExpressionService.getDataTypeExpressionOperator(this.baseCellDataType);\n var parsedOperator = operatorForType.findOperator(this.operator);\n this.endPosition = endPosition;\n if (parsedOperator) {\n this.parsedOperator = parsedOperator;\n var operator = operatorForType.operators[parsedOperator];\n this.expectedNumOperands = operator.numOperands;\n var operatorDisplayValue = operator.displayValue;\n checkAndUpdateExpression(this.params, this.operator, operatorDisplayValue, endPosition);\n this.operator = operatorDisplayValue;\n return true;\n }\n var isPartialMatch = parsedOperator === null;\n if (fromComplete || !isPartialMatch) {\n this.valid = false;\n }\n return false;\n };\n return OperatorParser;\n}());\nvar OperandParser = /** @class */ (function () {\n function OperandParser(params, startPosition, baseCellDataType, column) {\n this.params = params;\n this.startPosition = startPosition;\n this.baseCellDataType = baseCellDataType;\n this.column = column;\n this.type = 'operand';\n this.valid = true;\n this.operand = '';\n this.validationMessage = null;\n }\n OperandParser.prototype.parse = function (char, position) {\n if (char === ' ') {\n if (this.quotes) {\n this.operand += char;\n }\n else {\n this.parseOperand(false, position);\n return true;\n }\n }\n else if (char === ')') {\n if (this.baseCellDataType === 'number' || !this.quotes) {\n this.parseOperand(false, position - 1);\n return true;\n }\n else {\n this.operand += char;\n }\n }\n else if (!this.operand && !this.quotes && (char === \"'\" || char === \"\\\"\")) {\n this.quotes = char;\n }\n else if (this.quotes && char === this.quotes) {\n this.parseOperand(false, position);\n return false;\n }\n else {\n this.operand += char;\n }\n return undefined;\n };\n OperandParser.prototype.complete = function (position) {\n this.parseOperand(true, position);\n };\n OperandParser.prototype.getValidationError = function () {\n var _a;\n return this.validationMessage ? {\n message: this.validationMessage,\n startPosition: this.startPosition,\n endPosition: (_a = this.endPosition) !== null && _a !== void 0 ? _a : this.params.expression.length - 1\n } : null;\n };\n OperandParser.prototype.getRawValue = function () {\n return this.operand;\n };\n OperandParser.prototype.getModelValue = function () {\n return this.modelValue;\n };\n OperandParser.prototype.parseOperand = function (fromComplete, position) {\n var advancedFilterExpressionService = this.params.advancedFilterExpressionService;\n this.endPosition = position;\n this.modelValue = this.operand;\n if (fromComplete && this.quotes) {\n // missing end quote\n this.valid = false;\n this.validationMessage = advancedFilterExpressionService.translate('advancedFilterValidationMissingQuote');\n }\n else if (this.modelValue === '') {\n this.valid = false;\n this.validationMessage = advancedFilterExpressionService.translate('advancedFilterValidationMissingValue');\n }\n else {\n var modelValue = advancedFilterExpressionService.getOperandModelValue(this.operand, this.baseCellDataType, this.column);\n if (modelValue != null) {\n this.modelValue = modelValue;\n }\n switch (this.baseCellDataType) {\n case 'number':\n if (this.quotes || isNaN(this.modelValue)) {\n this.valid = false;\n this.validationMessage = advancedFilterExpressionService.translate('advancedFilterValidationNotANumber');\n }\n break;\n case 'date':\n case 'dateString':\n if (modelValue == null) {\n this.valid = false;\n this.validationMessage = advancedFilterExpressionService.translate('advancedFilterValidationInvalidDate');\n }\n break;\n }\n }\n };\n return OperandParser;\n}());\nvar ColFilterExpressionParser = /** @class */ (function () {\n function ColFilterExpressionParser(params, startPosition) {\n this.params = params;\n this.startPosition = startPosition;\n this.isAwaiting = true;\n }\n ColFilterExpressionParser.prototype.parseExpression = function () {\n var _a, _b;\n var i = this.startPosition;\n var expression = this.params.expression;\n while (i < expression.length) {\n var char = expression[i];\n if (char === ' ' && this.isAwaiting) ;\n else {\n this.isAwaiting = false;\n if (!this.parser) {\n var parser = void 0;\n if (!this.columnParser) {\n this.columnParser = new ColumnParser(this.params, i);\n parser = this.columnParser;\n }\n else if (!this.operatorParser) {\n this.operatorParser = new OperatorParser$1(this.params, i, this.columnParser.baseCellDataType);\n parser = this.operatorParser;\n }\n else {\n this.operandParser = new OperandParser(this.params, i, this.columnParser.baseCellDataType, this.columnParser.column);\n parser = this.operandParser;\n }\n this.parser = parser;\n }\n var hasCompletedOnPrevChar = this.parser.parse(char, i);\n if (hasCompletedOnPrevChar != null) {\n if (this.isComplete()) {\n return this.returnEndPosition(hasCompletedOnPrevChar ? i - 1 : i, true);\n }\n this.parser = undefined;\n this.isAwaiting = true;\n }\n }\n i++;\n }\n (_b = (_a = this.parser) === null || _a === void 0 ? void 0 : _a.complete) === null || _b === void 0 ? void 0 : _b.call(_a, i - 1);\n return this.returnEndPosition(i);\n };\n ColFilterExpressionParser.prototype.isValid = function () {\n return this.isComplete() && this.columnParser.valid && this.operatorParser.valid && (!this.operandParser || this.operandParser.valid);\n };\n ColFilterExpressionParser.prototype.getValidationError = function () {\n var _a, _b, _c, _d, _e;\n var validationError = (_d = (_b = (_a = this.columnParser) === null || _a === void 0 ? void 0 : _a.getValidationError()) !== null && _b !== void 0 ? _b : (_c = this.operatorParser) === null || _c === void 0 ? void 0 : _c.getValidationError()) !== null && _d !== void 0 ? _d : (_e = this.operandParser) === null || _e === void 0 ? void 0 : _e.getValidationError();\n if (validationError) {\n return validationError;\n }\n var endPosition = this.params.expression.length;\n var translateKey;\n if (!this.columnParser) {\n translateKey = 'advancedFilterValidationMissingColumn';\n }\n else if (!this.operatorParser) {\n translateKey = 'advancedFilterValidationMissingOption';\n }\n else if (this.operatorParser.expectedNumOperands && !this.operandParser) {\n translateKey = 'advancedFilterValidationMissingValue';\n }\n if (translateKey) {\n return {\n message: this.params.advancedFilterExpressionService.translate(translateKey),\n startPosition: endPosition,\n endPosition: endPosition\n };\n }\n return null;\n };\n ColFilterExpressionParser.prototype.getFunction = function (params) {\n var _a, _b;\n var colId = this.columnParser.getColId();\n var escapedColId = escapeQuotes(colId);\n var operator = (_a = this.operatorParser) === null || _a === void 0 ? void 0 : _a.getOperatorKey();\n var operators = params.operators, evaluatorParams = params.evaluatorParams, operands = params.operands;\n var operatorForColumn = this.params.advancedFilterExpressionService.getExpressionOperator(this.columnParser.baseCellDataType, operator);\n var operatorIndex = this.addToListAndGetIndex(operators, operatorForColumn);\n var evaluatorParamsForColumn = this.params.advancedFilterExpressionService.getExpressionEvaluatorParams(colId);\n var evaluatorParamsIndex = this.addToListAndGetIndex(evaluatorParams, evaluatorParamsForColumn);\n var operand;\n if (((_b = this.operatorParser) === null || _b === void 0 ? void 0 : _b.expectedNumOperands) === 0) {\n operand = '';\n }\n else {\n var operandIndex = this.addToListAndGetIndex(operands, this.getOperandValue());\n operand = \", params.operands[\" + operandIndex + \"]\";\n }\n return \"params.operators[\" + operatorIndex + \"].evaluator(expressionProxy.getValue('\" + escapedColId + \"', node), node, params.evaluatorParams[\" + evaluatorParamsIndex + \"]\" + operand + \")\";\n };\n ColFilterExpressionParser.prototype.getAutocompleteListParams = function (position) {\n if (this.isColumnPosition(position)) {\n return this.getColumnAutocompleteListParams(position);\n }\n if (this.isOperatorPosition(position)) {\n return this.getOperatorAutocompleteListParams(position);\n }\n if (this.isBeyondEndPosition(position)) {\n return undefined;\n }\n return { enabled: false };\n };\n ColFilterExpressionParser.prototype.updateExpression = function (position, updateEntry, type) {\n var _a, _b, _c, _d, _e;\n var expression = this.params.expression;\n if (this.isColumnPosition(position)) {\n return updateExpression(this.params.expression, this.startPosition, ((_a = this.columnParser) === null || _a === void 0 ? void 0 : _a.getColId()) ? this.columnParser.endPosition : findEndPosition(expression, position), this.params.advancedFilterExpressionService.getColumnValue(updateEntry), true);\n }\n else if (this.isOperatorPosition(position)) {\n var baseCellDataType = this.getBaseCellDataTypeFromOperatorAutocompleteType(type);\n var hasOperand = this.hasOperand(baseCellDataType, updateEntry.key);\n var doesOperandNeedQuotes = hasOperand && this.doesOperandNeedQuotes(baseCellDataType);\n var update = void 0;\n if (((_b = this.operatorParser) === null || _b === void 0 ? void 0 : _b.startPosition) != null && position < this.operatorParser.startPosition) {\n // in between multiple spaces, just insert direct\n update = updateExpression(expression, position, position, (_c = updateEntry.displayValue) !== null && _c !== void 0 ? _c : updateEntry.key, hasOperand, doesOperandNeedQuotes);\n }\n else {\n var endPosition = ((_d = this.operatorParser) === null || _d === void 0 ? void 0 : _d.getOperatorKey()) ? this.operatorParser.endPosition : findEndPosition(expression, position);\n update = updateExpression(expression, findStartPosition(expression, this.columnParser.endPosition + 1, endPosition), endPosition, (_e = updateEntry.displayValue) !== null && _e !== void 0 ? _e : updateEntry.key, hasOperand, doesOperandNeedQuotes);\n }\n return __assign$11(__assign$11({}, update), { hideAutocomplete: !hasOperand });\n }\n return null;\n };\n ColFilterExpressionParser.prototype.getModel = function () {\n var colId = this.columnParser.getColId();\n var model = {\n filterType: this.columnParser.baseCellDataType,\n colId: colId,\n type: this.operatorParser.getOperatorKey(),\n };\n if (this.operatorParser.expectedNumOperands) {\n model.filter = this.operandParser.getModelValue();\n }\n return model;\n };\n ColFilterExpressionParser.prototype.getOperandValue = function () {\n var operand = this.operandParser.getRawValue();\n var _a = this.columnParser, baseCellDataType = _a.baseCellDataType, column = _a.column;\n switch (baseCellDataType) {\n case 'number':\n operand = Number(operand);\n break;\n case 'date':\n case 'dateString':\n operand = this.params.valueParserService.parseValue(column, null, operand, undefined);\n break;\n }\n if (baseCellDataType === 'dateString') {\n return this.params.dataTypeService.getDateParserFunction()(operand);\n }\n return operand;\n };\n ColFilterExpressionParser.prototype.isComplete = function () {\n return !!(this.operatorParser && (!this.operatorParser.expectedNumOperands || (this.operatorParser.expectedNumOperands && this.operandParser)));\n };\n ColFilterExpressionParser.prototype.isColumnPosition = function (position) {\n return !this.columnParser || this.columnParser.endPosition == null || position <= this.columnParser.endPosition + 1;\n };\n ColFilterExpressionParser.prototype.isOperatorPosition = function (position) {\n return !this.operatorParser || this.operatorParser.endPosition == null || position <= this.operatorParser.endPosition + 1;\n };\n ColFilterExpressionParser.prototype.isBeyondEndPosition = function (position) {\n return this.isComplete() && this.endPosition != null && position > this.endPosition + 1 && this.endPosition + 1 < this.params.expression.length;\n };\n ColFilterExpressionParser.prototype.returnEndPosition = function (returnPosition, treatAsEnd) {\n this.endPosition = treatAsEnd ? returnPosition : returnPosition - 1;\n return returnPosition;\n };\n ColFilterExpressionParser.prototype.getColumnAutocompleteListParams = function (position) {\n return this.params.advancedFilterExpressionService.generateAutocompleteListParams(this.params.advancedFilterExpressionService.getColumnAutocompleteEntries(), 'column', this.getColumnSearchString(position));\n };\n ColFilterExpressionParser.prototype.getColumnSearchString = function (position) {\n var _a, _b, _c, _d, _e;\n var columnName = (_b = (_a = this.columnParser) === null || _a === void 0 ? void 0 : _a.getDisplayValue()) !== null && _b !== void 0 ? _b : '';\n var searchString = getSearchString(columnName, position, ((_c = this.columnParser) === null || _c === void 0 ? void 0 : _c.endPosition) == null\n ? this.params.expression.length\n : (this.columnParser.endPosition + 1));\n var containsStartChar = ((_d = this.columnParser) === null || _d === void 0 ? void 0 : _d.hasStartChar) && searchString.length > 0;\n var containsEndChar = ((_e = this.columnParser) === null || _e === void 0 ? void 0 : _e.hasEndChar) && searchString.length === columnName.length + 2;\n if (containsStartChar) {\n return searchString.slice(1, containsEndChar ? -1 : undefined);\n }\n return searchString;\n };\n ColFilterExpressionParser.prototype.getOperatorAutocompleteListParams = function (position) {\n var _a, _b, _c, _d, _e;\n var column = (_a = this.columnParser) === null || _a === void 0 ? void 0 : _a.column;\n if (!column) {\n return { enabled: false };\n }\n var baseCellDataType = this.columnParser.baseCellDataType;\n var searchString = ((_b = this.operatorParser) === null || _b === void 0 ? void 0 : _b.startPosition) != null && position < this.operatorParser.startPosition ? '' : getSearchString((_d = (_c = this.operatorParser) === null || _c === void 0 ? void 0 : _c.getDisplayValue()) !== null && _d !== void 0 ? _d : '', position, ((_e = this.operatorParser) === null || _e === void 0 ? void 0 : _e.endPosition) == null ? this.params.expression.length : (this.operatorParser.endPosition + 1));\n return this.params.advancedFilterExpressionService.generateAutocompleteListParams(this.params.advancedFilterExpressionService.getOperatorAutocompleteEntries(column, baseCellDataType), \"operator-\" + baseCellDataType, searchString);\n };\n ColFilterExpressionParser.prototype.getBaseCellDataTypeFromOperatorAutocompleteType = function (type) {\n return type === null || type === void 0 ? void 0 : type.replace('operator-', '');\n };\n ColFilterExpressionParser.prototype.hasOperand = function (baseCellDataType, operator) {\n var _a, _b;\n return !baseCellDataType ||\n !operator ||\n ((_b = (_a = this.params.advancedFilterExpressionService.getExpressionOperator(baseCellDataType, operator)) === null || _a === void 0 ? void 0 : _a.numOperands) !== null && _b !== void 0 ? _b : 0) > 0;\n };\n ColFilterExpressionParser.prototype.doesOperandNeedQuotes = function (baseCellDataType) {\n return baseCellDataType !== 'number';\n };\n ColFilterExpressionParser.prototype.addToListAndGetIndex = function (list, value) {\n var index = list.length;\n list.push(value);\n return index;\n };\n ColFilterExpressionParser.COL_START_CHAR = '[';\n ColFilterExpressionParser.COL_END_CHAR = ']';\n return ColFilterExpressionParser;\n}());\n\nvar __read$1o = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n// null = partial match, undefined = no match\nfunction findMatch(searchValue, values, getDisplayValue) {\n var partialMatch = false;\n var searchValueLowerCase = searchValue.toLocaleLowerCase();\n var partialSearchValue = searchValueLowerCase + ' ';\n var parsedValue = Object.entries(values).find(function (_a) {\n var _b = __read$1o(_a, 2); _b[0]; var value = _b[1];\n var displayValueLowerCase = getDisplayValue(value).toLocaleLowerCase();\n if (displayValueLowerCase.startsWith(partialSearchValue)) {\n partialMatch = true;\n }\n return displayValueLowerCase === searchValueLowerCase;\n });\n if (parsedValue) {\n return parsedValue[0];\n }\n else if (partialMatch) {\n return null;\n }\n else {\n return undefined;\n }\n}\nfunction getEntries(operators, activeOperatorKeys) {\n var keys = activeOperatorKeys !== null && activeOperatorKeys !== void 0 ? activeOperatorKeys : Object.keys(operators);\n return keys.map(function (key) { return ({\n key: key,\n displayValue: operators[key].displayValue\n }); });\n}\nvar TextFilterExpressionOperators = /** @class */ (function () {\n function TextFilterExpressionOperators(params) {\n this.params = params;\n this.initOperators();\n }\n TextFilterExpressionOperators.prototype.getEntries = function (activeOperators) {\n return getEntries(this.operators, activeOperators);\n };\n TextFilterExpressionOperators.prototype.findOperator = function (displayValue) {\n return findMatch(displayValue, this.operators, function (_a) {\n var displayValue = _a.displayValue;\n return displayValue;\n });\n };\n TextFilterExpressionOperators.prototype.initOperators = function () {\n var _this = this;\n var translate = this.params.translate;\n this.operators = {\n contains: {\n displayValue: translate('advancedFilterContains'),\n evaluator: function (value, node, params, operand1) { return _this.evaluateExpression(value, node, params, operand1, false, function (v, o) { return v.includes(o); }); },\n numOperands: 1\n },\n notContains: {\n displayValue: translate('advancedFilterNotContains'),\n evaluator: function (value, node, params, operand1) { return _this.evaluateExpression(value, node, params, operand1, true, function (v, o) { return !v.includes(o); }); },\n numOperands: 1\n },\n equals: {\n displayValue: translate('advancedFilterTextEquals'),\n evaluator: function (value, node, params, operand1) { return _this.evaluateExpression(value, node, params, operand1, false, function (v, o) { return v === o; }); },\n numOperands: 1\n },\n notEqual: {\n displayValue: translate('advancedFilterTextNotEqual'),\n evaluator: function (value, node, params, operand1) { return _this.evaluateExpression(value, node, params, operand1, true, function (v, o) { return v != o; }); },\n numOperands: 1\n },\n startsWith: {\n displayValue: translate('advancedFilterStartsWith'),\n evaluator: function (value, node, params, operand1) { return _this.evaluateExpression(value, node, params, operand1, false, function (v, o) { return v.startsWith(o); }); },\n numOperands: 1\n },\n endsWith: {\n displayValue: translate('advancedFilterEndsWith'),\n evaluator: function (value, node, params, operand1) { return _this.evaluateExpression(value, node, params, operand1, false, function (v, o) { return v.endsWith(o); }); },\n numOperands: 1\n },\n blank: {\n displayValue: translate('advancedFilterBlank'),\n evaluator: function (value) { return value == null || (typeof value === 'string' && value.trim().length === 0); },\n numOperands: 0\n },\n notBlank: {\n displayValue: translate('advancedFilterNotBlank'),\n evaluator: function (value) { return value != null && (typeof value !== 'string' || value.trim().length > 0); },\n numOperands: 0\n },\n };\n };\n TextFilterExpressionOperators.prototype.evaluateExpression = function (value, node, params, operand, nullsMatch, expression) {\n if (value == null) {\n return nullsMatch;\n }\n return params.caseSensitive\n ? expression(params.valueConverter(value, node), operand)\n : expression(params.valueConverter(value, node).toLocaleLowerCase(), operand.toLocaleLowerCase());\n };\n return TextFilterExpressionOperators;\n}());\nvar ScalarFilterExpressionOperators = /** @class */ (function () {\n function ScalarFilterExpressionOperators(params) {\n this.params = params;\n this.initOperators();\n }\n ScalarFilterExpressionOperators.prototype.getEntries = function (activeOperators) {\n return getEntries(this.operators, activeOperators);\n };\n ScalarFilterExpressionOperators.prototype.findOperator = function (displayValue) {\n return findMatch(displayValue, this.operators, function (_a) {\n var displayValue = _a.displayValue;\n return displayValue;\n });\n };\n ScalarFilterExpressionOperators.prototype.initOperators = function () {\n var _this = this;\n var _a = this.params, translate = _a.translate, equals = _a.equals;\n this.operators = {\n equals: {\n displayValue: translate('advancedFilterEquals'),\n evaluator: function (value, node, params, operand1) { return _this.evaluateSingleOperandExpression(value, node, params, operand1, !!params.includeBlanksInEquals, equals); },\n numOperands: 1\n },\n notEqual: {\n displayValue: translate('advancedFilterNotEqual'),\n evaluator: function (value, node, params, operand1) { return _this.evaluateSingleOperandExpression(value, node, params, operand1, !!params.includeBlanksInEquals, function (v, o) { return !equals(v, o); }); },\n numOperands: 1\n },\n greaterThan: {\n displayValue: translate('advancedFilterGreaterThan'),\n evaluator: function (value, node, params, operand1) { return _this.evaluateSingleOperandExpression(value, node, params, operand1, !!params.includeBlanksInGreaterThan, function (v, o) { return v > o; }); },\n numOperands: 1\n },\n greaterThanOrEqual: {\n displayValue: translate('advancedFilterGreaterThanOrEqual'),\n evaluator: function (value, node, params, operand1) { return _this.evaluateSingleOperandExpression(value, node, params, operand1, !!params.includeBlanksInGreaterThan, function (v, o) { return v >= o; }); },\n numOperands: 1\n },\n lessThan: {\n displayValue: translate('advancedFilterLessThan'),\n evaluator: function (value, node, params, operand1) { return _this.evaluateSingleOperandExpression(value, node, params, operand1, !!params.includeBlanksInLessThan, function (v, o) { return v < o; }); },\n numOperands: 1\n },\n lessThanOrEqual: {\n displayValue: translate('advancedFilterLessThanOrEqual'),\n evaluator: function (value, node, params, operand1) { return _this.evaluateSingleOperandExpression(value, node, params, operand1, !!params.includeBlanksInLessThan, function (v, o) { return v <= o; }); },\n numOperands: 1\n },\n blank: {\n displayValue: translate('advancedFilterBlank'),\n evaluator: function (value) { return value == null; },\n numOperands: 0\n },\n notBlank: {\n displayValue: translate('advancedFilterNotBlank'),\n evaluator: function (value) { return value != null; },\n numOperands: 0\n }\n };\n };\n ScalarFilterExpressionOperators.prototype.evaluateSingleOperandExpression = function (value, node, params, operand, nullsMatch, expression) {\n if (value == null) {\n return nullsMatch;\n }\n return expression(params.valueConverter(value, node), operand);\n };\n return ScalarFilterExpressionOperators;\n}());\nvar BooleanFilterExpressionOperators = /** @class */ (function () {\n function BooleanFilterExpressionOperators(params) {\n this.params = params;\n this.initOperators();\n }\n BooleanFilterExpressionOperators.prototype.getEntries = function (activeOperators) {\n return getEntries(this.operators, activeOperators);\n };\n BooleanFilterExpressionOperators.prototype.findOperator = function (displayValue) {\n return findMatch(displayValue, this.operators, function (_a) {\n var displayValue = _a.displayValue;\n return displayValue;\n });\n };\n BooleanFilterExpressionOperators.prototype.initOperators = function () {\n var translate = this.params.translate;\n this.operators = {\n true: {\n displayValue: translate('advancedFilterTrue'),\n evaluator: function (value) { return !!value; },\n numOperands: 0\n },\n false: {\n displayValue: translate('advancedFilterFalse'),\n evaluator: function (value) { return value === false; },\n numOperands: 0\n },\n blank: {\n displayValue: translate('advancedFilterBlank'),\n evaluator: function (value) { return value == null; },\n numOperands: 0\n },\n notBlank: {\n displayValue: translate('advancedFilterNotBlank'),\n evaluator: function (value) { return value != null; },\n numOperands: 0\n }\n };\n };\n return BooleanFilterExpressionOperators;\n}());\n\nvar __extends$3q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$1n = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar AdvancedFilterExpressionService = /** @class */ (function (_super) {\n __extends$3q(AdvancedFilterExpressionService, _super);\n function AdvancedFilterExpressionService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.columnNameToIdMap = {};\n _this.columnAutocompleteEntries = null;\n _this.expressionEvaluatorParams = {};\n return _this;\n }\n AdvancedFilterExpressionService.prototype.postConstruct = function () {\n this.expressionJoinOperators = this.generateExpressionJoinOperators();\n this.expressionOperators = this.generateExpressionOperators();\n };\n AdvancedFilterExpressionService.prototype.parseJoinOperator = function (model) {\n var _a;\n var type = model.type;\n return (_a = this.expressionJoinOperators[type]) !== null && _a !== void 0 ? _a : type;\n };\n AdvancedFilterExpressionService.prototype.getColumnDisplayValue = function (model) {\n var colId = model.colId;\n var columnEntries = this.getColumnAutocompleteEntries();\n var columnEntry = columnEntries.find(function (_a) {\n var key = _a.key;\n return key === colId;\n });\n var columnName;\n if (columnEntry) {\n columnName = columnEntry.displayValue;\n this.columnNameToIdMap[columnName.toLocaleUpperCase()] = { colId: colId, columnName: columnName };\n }\n else {\n columnName = colId;\n }\n return columnName;\n };\n AdvancedFilterExpressionService.prototype.getOperatorDisplayValue = function (model) {\n var _a, _b;\n return (_b = (_a = this.getExpressionOperator(model.filterType, model.type)) === null || _a === void 0 ? void 0 : _a.displayValue) !== null && _b !== void 0 ? _b : model.type;\n };\n AdvancedFilterExpressionService.prototype.getOperandModelValue = function (operand, baseCellDataType, column) {\n var _a;\n switch (baseCellDataType) {\n case 'number':\n return _.exists(operand) ? Number(operand) : null;\n case 'date':\n return _.serialiseDate(this.valueParserService.parseValue(column, null, operand, undefined), false);\n case 'dateString':\n // displayed string format may be different from data string format, so parse before converting to date\n var parsedDateString = this.valueParserService.parseValue(column, null, operand, undefined);\n return _.serialiseDate((_a = this.dataTypeService.getDateParserFunction()(parsedDateString)) !== null && _a !== void 0 ? _a : null, false);\n }\n return operand;\n };\n AdvancedFilterExpressionService.prototype.getOperandDisplayValue = function (model, skipFormatting) {\n var _a, _b;\n var _c = model, colId = _c.colId, filter = _c.filter;\n var column = this.columnModel.getPrimaryColumn(colId);\n var operand = '';\n if (filter != null) {\n var operand1 = void 0;\n switch (model.filterType) {\n case 'number':\n operand1 = (_a = _.toStringOrNull(filter)) !== null && _a !== void 0 ? _a : '';\n break;\n case 'date':\n var dateValue = _.parseDateTimeFromString(filter);\n operand1 = column ? this.valueFormatterService.formatValue(column, null, dateValue) : null;\n break;\n case 'dateString':\n // need to convert from ISO date string to Date to data string format to formatted string format\n var dateStringDateValue = _.parseDateTimeFromString(filter);\n var dateStringStringValue = column\n ? this.dataTypeService.getDateFormatterFunction()(dateStringDateValue !== null && dateStringDateValue !== void 0 ? dateStringDateValue : undefined)\n : null;\n operand1 = column ? this.valueFormatterService.formatValue(column, null, dateStringStringValue) : null;\n break;\n }\n if (model.filterType !== 'number') {\n operand1 = (_b = operand1 !== null && operand1 !== void 0 ? operand1 : _.toStringOrNull(filter)) !== null && _b !== void 0 ? _b : '';\n if (!skipFormatting) {\n operand1 = \"\\\"\" + operand1 + \"\\\"\";\n }\n }\n operand = skipFormatting ? operand1 : \" \" + operand1;\n }\n return operand;\n };\n AdvancedFilterExpressionService.prototype.parseColumnFilterModel = function (model) {\n var _a, _b;\n var columnName = (_a = this.getColumnDisplayValue(model)) !== null && _a !== void 0 ? _a : '';\n var operator = (_b = this.getOperatorDisplayValue(model)) !== null && _b !== void 0 ? _b : '';\n var operands = this.getOperandDisplayValue(model);\n return \"[\" + columnName + \"] \" + operator + operands;\n };\n AdvancedFilterExpressionService.prototype.updateAutocompleteCache = function (updateEntry, type) {\n if (type === 'column') {\n var colId = updateEntry.key, displayValue = updateEntry.displayValue;\n this.columnNameToIdMap[updateEntry.displayValue.toLocaleUpperCase()] = { colId: colId, columnName: displayValue };\n }\n };\n AdvancedFilterExpressionService.prototype.translate = function (key, variableValues) {\n var defaultValue = ADVANCED_FILTER_LOCALE_TEXT[key];\n if (typeof defaultValue === 'function') {\n defaultValue = defaultValue(variableValues);\n }\n return this.localeService.getLocaleTextFunc()(key, defaultValue, variableValues);\n };\n AdvancedFilterExpressionService.prototype.generateAutocompleteListParams = function (entries, type, searchString) {\n return {\n enabled: true,\n type: type,\n searchString: searchString,\n entries: entries\n };\n };\n AdvancedFilterExpressionService.prototype.getColumnAutocompleteEntries = function () {\n var _this = this;\n var _a;\n if (this.columnAutocompleteEntries) {\n return this.columnAutocompleteEntries;\n }\n var columns = (_a = this.columnModel.getAllPrimaryColumns()) !== null && _a !== void 0 ? _a : [];\n var entries = [];\n var includeHiddenColumns = this.gridOptionsService.is('includeHiddenColumnsInAdvancedFilter');\n columns.forEach(function (column) {\n if (column.getColDef().filter && (includeHiddenColumns || column.isVisible() || column.isRowGroupActive())) {\n entries.push({\n key: column.getColId(),\n displayValue: _this.columnModel.getDisplayNameForColumn(column, 'advancedFilter')\n });\n }\n });\n entries.sort(function (a, b) {\n var _a, _b;\n var aValue = (_a = a.displayValue) !== null && _a !== void 0 ? _a : '';\n var bValue = (_b = b.displayValue) !== null && _b !== void 0 ? _b : '';\n if (aValue < bValue) {\n return -1;\n }\n else if (bValue > aValue) {\n return 1;\n }\n return 0;\n });\n return entries;\n };\n AdvancedFilterExpressionService.prototype.getOperatorAutocompleteEntries = function (column, baseCellDataType) {\n var activeOperators = this.getActiveOperators(column);\n return this.getDataTypeExpressionOperator(baseCellDataType).getEntries(activeOperators);\n };\n AdvancedFilterExpressionService.prototype.getJoinOperatorAutocompleteEntries = function () {\n return Object.entries(this.expressionJoinOperators).map(function (_a) {\n var _b = __read$1n(_a, 2), key = _b[0], displayValue = _b[1];\n return ({ key: key, displayValue: displayValue });\n });\n };\n AdvancedFilterExpressionService.prototype.getDefaultAutocompleteListParams = function (searchString) {\n return this.generateAutocompleteListParams(this.getColumnAutocompleteEntries(), 'column', searchString);\n };\n AdvancedFilterExpressionService.prototype.getDataTypeExpressionOperator = function (baseCellDataType) {\n return this.expressionOperators[baseCellDataType];\n };\n AdvancedFilterExpressionService.prototype.getExpressionOperator = function (baseCellDataType, operator) {\n var _a, _b;\n return (_b = (_a = this.getDataTypeExpressionOperator(baseCellDataType)) === null || _a === void 0 ? void 0 : _a.operators) === null || _b === void 0 ? void 0 : _b[operator];\n };\n AdvancedFilterExpressionService.prototype.getExpressionJoinOperators = function () {\n return this.expressionJoinOperators;\n };\n AdvancedFilterExpressionService.prototype.getColId = function (columnName) {\n var upperCaseColumnName = columnName.toLocaleUpperCase();\n var cachedColId = this.columnNameToIdMap[upperCaseColumnName];\n if (cachedColId) {\n return cachedColId;\n }\n var columnAutocompleteEntries = this.getColumnAutocompleteEntries();\n var colEntry = columnAutocompleteEntries.find(function (_a) {\n var displayValue = _a.displayValue;\n return displayValue.toLocaleUpperCase() === upperCaseColumnName;\n });\n if (colEntry) {\n var colId = colEntry.key, displayValue = colEntry.displayValue;\n var colValue = { colId: colId, columnName: displayValue };\n // cache for faster lookup\n this.columnNameToIdMap[upperCaseColumnName] = colValue;\n return colValue;\n }\n return null;\n };\n AdvancedFilterExpressionService.prototype.getExpressionEvaluatorParams = function (colId) {\n var _this = this;\n var params = this.expressionEvaluatorParams[colId];\n if (params) {\n return params;\n }\n var column = this.columnModel.getPrimaryColumn(colId);\n if (!column) {\n return { valueConverter: function (v) { return v; } };\n }\n var baseCellDataType = this.dataTypeService.getBaseDataType(column);\n switch (baseCellDataType) {\n case 'dateString':\n params = {\n valueConverter: this.dataTypeService.getDateParserFunction()\n };\n break;\n case 'object':\n // If there's a filter value getter, assume the value is already a string. Otherwise we need to format it.\n if (column.getColDef().filterValueGetter) {\n params = { valueConverter: function (v) { return v; } };\n }\n else {\n params = {\n valueConverter: function (value, node) {\n var _a;\n return (_a = _this.valueFormatterService.formatValue(column, node, value)) !== null && _a !== void 0 ? _a : (typeof value.toString === 'function' ? value.toString() : '');\n }\n };\n }\n break;\n case 'text':\n case undefined:\n params = { valueConverter: function (v) { return _.toStringOrNull(v); } };\n break;\n default:\n params = { valueConverter: function (v) { return v; } };\n break;\n }\n var filterParams = column.getColDef().filterParams;\n if (filterParams) {\n [\n 'caseSensitive', 'includeBlanksInEquals', 'includeBlanksInLessThan', 'includeBlanksInGreaterThan'\n ].forEach(function (param) {\n var paramValue = filterParams[param];\n if (paramValue) {\n params[param] = paramValue;\n }\n });\n }\n this.expressionEvaluatorParams[colId] = params;\n return params;\n };\n AdvancedFilterExpressionService.prototype.getColumnDetails = function (colId) {\n var column = this.columnModel.getPrimaryColumn(colId);\n if (!column) {\n return null;\n }\n var baseCellDataType = this.dataTypeService.getBaseDataType(column);\n if (!baseCellDataType) {\n return null;\n }\n return { column: column, baseCellDataType: baseCellDataType };\n };\n AdvancedFilterExpressionService.prototype.generateExpressionOperators = function () {\n var _this = this;\n var translate = function (key, variableValues) { return _this.translate(key, variableValues); };\n return {\n text: new TextFilterExpressionOperators({ translate: translate }),\n boolean: new BooleanFilterExpressionOperators({ translate: translate }),\n object: new TextFilterExpressionOperators({ translate: translate }),\n number: new ScalarFilterExpressionOperators({ translate: translate, equals: function (v, o) { return v === o; } }),\n date: new ScalarFilterExpressionOperators({ translate: translate, equals: function (v, o) { return v.getTime() === o.getTime(); } }),\n dateString: new ScalarFilterExpressionOperators({ translate: translate, equals: function (v, o) { return v.getTime() === o.getTime(); } })\n };\n };\n AdvancedFilterExpressionService.prototype.getColumnValue = function (_a) {\n var displayValue = _a.displayValue;\n return \"\" + ColFilterExpressionParser.COL_START_CHAR + displayValue + ColFilterExpressionParser.COL_END_CHAR;\n };\n AdvancedFilterExpressionService.prototype.generateExpressionJoinOperators = function () {\n return {\n AND: this.translate('advancedFilterAnd'),\n OR: this.translate('advancedFilterOr')\n };\n };\n AdvancedFilterExpressionService.prototype.getActiveOperators = function (column) {\n var _a;\n var filterOptions = (_a = column.getColDef().filterParams) === null || _a === void 0 ? void 0 : _a.filterOptions;\n if (!filterOptions) {\n return undefined;\n }\n var isValid = filterOptions.every(function (filterOption) { return typeof filterOption === 'string'; });\n return isValid ? filterOptions : undefined;\n };\n AdvancedFilterExpressionService.prototype.resetColumnCaches = function () {\n this.columnAutocompleteEntries = null;\n this.columnNameToIdMap = {};\n };\n __decorate$2A([\n Autowired('valueFormatterService')\n ], AdvancedFilterExpressionService.prototype, \"valueFormatterService\", void 0);\n __decorate$2A([\n Autowired('valueParserService')\n ], AdvancedFilterExpressionService.prototype, \"valueParserService\", void 0);\n __decorate$2A([\n Autowired('columnModel')\n ], AdvancedFilterExpressionService.prototype, \"columnModel\", void 0);\n __decorate$2A([\n Autowired('dataTypeService')\n ], AdvancedFilterExpressionService.prototype, \"dataTypeService\", void 0);\n __decorate$2A([\n PostConstruct\n ], AdvancedFilterExpressionService.prototype, \"postConstruct\", null);\n AdvancedFilterExpressionService = __decorate$2A([\n Bean('advancedFilterExpressionService')\n ], AdvancedFilterExpressionService);\n return AdvancedFilterExpressionService;\n}(BeanStub));\n\nvar OperatorParser = /** @class */ (function () {\n function OperatorParser(params) {\n this.params = params;\n this.operators = [];\n this.operatorStartPositions = [];\n this.operatorEndPositions = [];\n this.activeOperator = 0;\n this.validationError = null;\n }\n OperatorParser.prototype.parseExpression = function (i) {\n this.operators.push('');\n this.operatorStartPositions.push(i);\n this.operatorEndPositions.push(undefined);\n var expression = this.params.expression;\n while (i < expression.length) {\n var char = expression[i];\n if (char === ' ') {\n var isComplete = this.parseOperator(i - 1);\n if (isComplete) {\n this.activeOperator++;\n return i - 1;\n }\n else {\n this.operators[this.activeOperator] += char;\n }\n }\n else {\n this.operators[this.activeOperator] += char;\n }\n i++;\n }\n this.parseOperator(i - 1);\n return i;\n };\n OperatorParser.prototype.isValid = function () {\n return !this.validationError && (!this.operators.length || !!this.parsedOperator);\n };\n OperatorParser.prototype.getValidationError = function () {\n return this.validationError;\n };\n OperatorParser.prototype.getFunction = function () {\n return this.parsedOperator === 'OR' ? '||' : '&&';\n };\n OperatorParser.prototype.getModel = function () {\n return this.parsedOperator === 'OR' ? 'OR' : 'AND';\n };\n OperatorParser.prototype.getAutocompleteListParams = function (position, operatorIndex) {\n var _this = this;\n var searchString;\n if (operatorIndex == null) {\n searchString = '';\n }\n else {\n var operator = this.operators[operatorIndex];\n var operatorEndPosition = this.operatorEndPositions[operatorIndex];\n searchString = getSearchString(operator, position, operatorEndPosition == null ? this.params.expression.length : (operatorEndPosition + 1));\n }\n var entries = this.params.advancedFilterExpressionService.getJoinOperatorAutocompleteEntries();\n if (operatorIndex || (operatorIndex == null && this.activeOperator)) {\n // if operator already chosen, don't allow other operators\n entries = entries.filter(function (_a) {\n var key = _a.key;\n return key === _this.parsedOperator;\n });\n }\n return this.params.advancedFilterExpressionService.generateAutocompleteListParams(entries, 'join', searchString);\n };\n OperatorParser.prototype.updateExpression = function (position, updateEntry, operatorIndex) {\n var _a, _b;\n var expression = this.params.expression;\n var updatedValuePart = (_a = updateEntry.displayValue) !== null && _a !== void 0 ? _a : updateEntry.key;\n if (operatorIndex === 0) {\n // need to update all others\n for (var i = this.operatorEndPositions.length - 1; i > 0; i--) {\n var operatorEndPosition = this.operatorEndPositions[i];\n if (operatorEndPosition == null) {\n continue;\n }\n expression = updateExpression(expression, this.operatorStartPositions[i], operatorEndPosition, updatedValuePart).updatedValue;\n }\n }\n var startPosition = this.operatorStartPositions.length > operatorIndex ? this.operatorStartPositions[operatorIndex] : expression.length;\n var endPosition = (_b = (this.operatorEndPositions.length > operatorIndex ? this.operatorEndPositions[operatorIndex] : undefined)) !== null && _b !== void 0 ? _b : findEndPosition(expression, position);\n return updateExpression(expression, startPosition, endPosition, updatedValuePart, true);\n };\n OperatorParser.prototype.getNumOperators = function () {\n return this.operators.length;\n };\n OperatorParser.prototype.getLastOperatorEndPosition = function () {\n return this.operatorEndPositions[this.operatorEndPositions.length - 1];\n };\n OperatorParser.prototype.parseOperator = function (endPosition) {\n var operator = this.operators.length > this.activeOperator ? this.operators[this.activeOperator] : '';\n var joinOperators = this.params.advancedFilterExpressionService.getExpressionJoinOperators();\n var parsedValue = findMatch(operator, joinOperators, function (v) { return v; });\n if (parsedValue) {\n // exact match\n this.operatorEndPositions[this.activeOperator] = endPosition;\n var displayValue = joinOperators[parsedValue];\n if (this.activeOperator) {\n if (parsedValue !== this.parsedOperator) {\n if (!this.validationError) {\n this.validationError = {\n message: this.params.advancedFilterExpressionService.translate('advancedFilterValidationJoinOperatorMismatch'),\n startPosition: endPosition - operator.length + 1,\n endPosition: endPosition\n };\n }\n return false;\n }\n }\n else {\n this.parsedOperator = parsedValue;\n }\n if (operator !== displayValue) {\n checkAndUpdateExpression(this.params, operator, displayValue, endPosition);\n this.operators[this.activeOperator] = displayValue;\n }\n return true;\n }\n else if (parsedValue === null) {\n // partial match\n return false;\n }\n else {\n // no match\n if (!this.validationError) {\n this.validationError = {\n message: this.params.advancedFilterExpressionService.translate('advancedFilterValidationInvalidJoinOperator'),\n startPosition: endPosition - operator.length + 1,\n endPosition: endPosition\n };\n }\n return true;\n }\n };\n return OperatorParser;\n}());\nvar JoinFilterExpressionParser = /** @class */ (function () {\n function JoinFilterExpressionParser(params, startPosition) {\n this.params = params;\n this.startPosition = startPosition;\n this.expectingExpression = true;\n this.expectingOperator = false;\n this.expressionParsers = [];\n this.operatorParser = new OperatorParser(this.params);\n this.missingEndBracket = false;\n this.extraEndBracket = false;\n }\n JoinFilterExpressionParser.prototype.parseExpression = function () {\n var i = this.startPosition;\n var expression = this.params.expression;\n while (i < expression.length) {\n var char = expression[i];\n if (char === '(' && !this.expectingOperator) {\n var nestedParser = new JoinFilterExpressionParser(this.params, i + 1);\n i = nestedParser.parseExpression();\n this.expressionParsers.push(nestedParser);\n this.expectingExpression = false;\n this.expectingOperator = true;\n }\n else if (char === ')') {\n this.endPosition = i - 1;\n if (this.startPosition === 0) {\n this.extraEndBracket = true;\n }\n return i;\n }\n else if (char === ' ') ;\n else if (this.expectingExpression) {\n var nestedParser = new ColFilterExpressionParser(this.params, i);\n i = nestedParser.parseExpression();\n this.expressionParsers.push(nestedParser);\n this.expectingExpression = false;\n this.expectingOperator = true;\n }\n else if (this.expectingOperator) {\n i = this.operatorParser.parseExpression(i);\n this.expectingOperator = false;\n this.expectingExpression = true;\n }\n i++;\n }\n if (this.startPosition > 0) {\n this.missingEndBracket = true;\n }\n return i;\n };\n JoinFilterExpressionParser.prototype.isValid = function () {\n return !this.missingEndBracket &&\n !this.extraEndBracket &&\n this.expressionParsers.length === this.operatorParser.getNumOperators() + 1 &&\n this.operatorParser.isValid() &&\n this.expressionParsers.every(function (expressionParser) { return expressionParser.isValid(); });\n };\n JoinFilterExpressionParser.prototype.getValidationError = function () {\n var operatorError = this.operatorParser.getValidationError();\n for (var i = 0; i < this.expressionParsers.length; i++) {\n var expressionError = this.expressionParsers[i].getValidationError();\n if (expressionError) {\n return operatorError && operatorError.startPosition < expressionError.startPosition\n ? operatorError\n : expressionError;\n }\n }\n if (operatorError) {\n return operatorError;\n }\n if (this.extraEndBracket) {\n return {\n message: this.params.advancedFilterExpressionService.translate('advancedFilterValidationExtraEndBracket'),\n startPosition: this.endPosition + 1,\n endPosition: this.endPosition + 1\n };\n }\n var translateKey;\n if (this.expressionParsers.length === this.operatorParser.getNumOperators()) {\n translateKey = 'advancedFilterValidationMissingCondition';\n }\n else if (this.missingEndBracket) {\n translateKey = 'advancedFilterValidationMissingEndBracket';\n }\n if (translateKey) {\n return {\n message: this.params.advancedFilterExpressionService.translate(translateKey),\n startPosition: this.params.expression.length,\n endPosition: this.params.expression.length\n };\n }\n return null;\n };\n JoinFilterExpressionParser.prototype.getFunction = function (params) {\n var hasMultipleExpressions = this.expressionParsers.length > 1;\n var expression = this.expressionParsers.map(function (expressionParser) { return expressionParser.getFunction(params); }).join(\" \" + this.operatorParser.getFunction() + \" \");\n return hasMultipleExpressions ? \"(\" + expression + \")\" : expression;\n };\n JoinFilterExpressionParser.prototype.getAutocompleteListParams = function (position) {\n if (this.endPosition != null && position > this.endPosition + 1) {\n return undefined;\n }\n if (!this.expressionParsers.length) {\n return this.getColumnAutocompleteListParams();\n }\n var expressionParserIndex = this.getExpressionParserIndex(position);\n if (expressionParserIndex == null) {\n if (this.params.expression[position] === '(') {\n return { enabled: false };\n }\n // positioned before the expression, so new expression\n return this.getColumnAutocompleteListParams();\n }\n var expressionParser = this.expressionParsers[expressionParserIndex];\n var autocompleteType = expressionParser.getAutocompleteListParams(position);\n if (!autocompleteType) {\n // beyond the end of the expression\n if (expressionParserIndex < this.expressionParsers.length - 1) {\n // in the middle of two expressions\n return this.operatorParser.getAutocompleteListParams(position, expressionParserIndex);\n }\n if (this.expressionParsers.length === this.operatorParser.getNumOperators()) {\n var operatorEndPosition = this.operatorParser.getLastOperatorEndPosition();\n return operatorEndPosition == null || position <= operatorEndPosition + 1\n ? this.operatorParser.getAutocompleteListParams(position, this.operatorParser.getNumOperators() - 1)\n : this.getColumnAutocompleteListParams();\n }\n if (this.params.expression[position - 1] === ')') {\n return { enabled: false };\n }\n return this.operatorParser.getAutocompleteListParams(position);\n }\n return autocompleteType;\n };\n JoinFilterExpressionParser.prototype.updateExpression = function (position, updateEntry, type) {\n var _a;\n var expression = this.params.expression;\n var expressionParserIndex = this.getExpressionParserIndex(position);\n if (expressionParserIndex == null) {\n // positioned before the expression\n var updatedValuePart = type === 'column'\n ? this.params.advancedFilterExpressionService.getColumnValue(updateEntry)\n : (_a = updateEntry.displayValue) !== null && _a !== void 0 ? _a : updateEntry.key;\n return updateExpression(expression, this.startPosition, this.startPosition, updatedValuePart, true);\n }\n var expressionParser = this.expressionParsers[expressionParserIndex];\n var updatedExpression = expressionParser.updateExpression(position, updateEntry, type);\n if (updatedExpression == null) {\n if (type === 'column') {\n // beyond the end of the expression, just do simple update\n return updateExpression(expression, position, expression.length - 1, this.params.advancedFilterExpressionService.getColumnValue(updateEntry), true);\n }\n else {\n return this.operatorParser.updateExpression(position, updateEntry, expressionParserIndex);\n }\n }\n return updatedExpression;\n };\n JoinFilterExpressionParser.prototype.getModel = function () {\n if (this.expressionParsers.length > 1) {\n return {\n filterType: 'join',\n type: this.operatorParser.getModel(),\n conditions: this.expressionParsers.map(function (parser) { return parser.getModel(); })\n };\n }\n else {\n return this.expressionParsers[0].getModel();\n }\n };\n JoinFilterExpressionParser.prototype.getColumnAutocompleteListParams = function () {\n return this.params.advancedFilterExpressionService.generateAutocompleteListParams(this.params.advancedFilterExpressionService.getColumnAutocompleteEntries(), 'column', '');\n };\n JoinFilterExpressionParser.prototype.getExpressionParserIndex = function (position) {\n var expressionParserIndex;\n for (var i = 0; i < this.expressionParsers.length; i++) {\n var expressionParserToCheck = this.expressionParsers[i];\n if (expressionParserToCheck.startPosition > position) {\n break;\n }\n expressionParserIndex = i;\n }\n return expressionParserIndex;\n };\n return JoinFilterExpressionParser;\n}());\n\nvar FilterExpressionParser = /** @class */ (function () {\n function FilterExpressionParser(params) {\n this.params = params;\n this.valid = false;\n }\n FilterExpressionParser.prototype.parseExpression = function () {\n this.joinExpressionParser = new JoinFilterExpressionParser(this.params, 0);\n var i = this.joinExpressionParser.parseExpression();\n this.valid = i >= this.params.expression.length - 1 && this.joinExpressionParser.isValid();\n return this.params.expression;\n };\n FilterExpressionParser.prototype.isValid = function () {\n return this.valid;\n };\n FilterExpressionParser.prototype.getValidationMessage = function () {\n var error = this.joinExpressionParser.getValidationError();\n if (!error) {\n return null;\n }\n var message = error.message, startPosition = error.startPosition, endPosition = error.endPosition;\n return startPosition < this.params.expression.length\n ? this.params.advancedFilterExpressionService.translate('advancedFilterValidationMessage', [\n message, this.params.expression.slice(startPosition, endPosition + 1).trim()\n ])\n : this.params.advancedFilterExpressionService.translate('advancedFilterValidationMessageAtEnd', [message]);\n };\n FilterExpressionParser.prototype.getFunction = function () {\n var params = {\n operands: [],\n operators: [],\n evaluatorParams: []\n };\n var functionBody = \"return \" + this.joinExpressionParser.getFunction(params) + \";\";\n return {\n functionBody: functionBody,\n params: params\n };\n };\n FilterExpressionParser.prototype.getAutocompleteListParams = function (position) {\n var _a;\n return (_a = this.joinExpressionParser.getAutocompleteListParams(position)) !== null && _a !== void 0 ? _a : { enabled: false };\n };\n FilterExpressionParser.prototype.updateExpression = function (position, updateEntry, type) {\n return this.joinExpressionParser.updateExpression(position, updateEntry, type);\n };\n FilterExpressionParser.prototype.getModel = function () {\n return this.isValid() ? this.joinExpressionParser.getModel() : null;\n };\n return FilterExpressionParser;\n}());\n\nvar __extends$3p = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AdvancedFilterService = /** @class */ (function (_super) {\n __extends$3p(AdvancedFilterService, _super);\n function AdvancedFilterService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.appliedExpression = null;\n /** The value displayed in the input, which may be invalid */\n _this.expression = null;\n _this.isValid = true;\n return _this;\n }\n AdvancedFilterService.prototype.postConstruct = function () {\n var _this = this;\n this.setEnabled(this.gridOptionsService.is('enableAdvancedFilter'), true);\n this.ctrl = this.createManagedBean(new AdvancedFilterCtrl(this.enabled));\n this.expressionProxy = {\n getValue: function (colId, node) {\n var column = _this.columnModel.getPrimaryColumn(colId);\n return column ? _this.valueService.getValue(column, node, true) : undefined;\n },\n };\n this.addManagedPropertyListener('enableAdvancedFilter', function (event) { return _this.setEnabled(!!event.currentValue); });\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, function (event) { return _this.onNewColumnsLoaded(event); });\n this.addManagedPropertyListener('includeHiddenColumnsInAdvancedFilter', function () { return _this.updateValidity(); });\n };\n AdvancedFilterService.prototype.isEnabled = function () {\n return this.enabled;\n };\n AdvancedFilterService.prototype.isFilterPresent = function () {\n return !!this.expressionFunction;\n };\n AdvancedFilterService.prototype.doesFilterPass = function (node) {\n return this.expressionFunction(this.expressionProxy, node, this.expressionParams);\n };\n AdvancedFilterService.prototype.getModel = function () {\n var _a;\n var expressionParser = this.createExpressionParser(this.appliedExpression);\n expressionParser === null || expressionParser === void 0 ? void 0 : expressionParser.parseExpression();\n return (_a = expressionParser === null || expressionParser === void 0 ? void 0 : expressionParser.getModel()) !== null && _a !== void 0 ? _a : null;\n };\n AdvancedFilterService.prototype.setModel = function (model) {\n var _this = this;\n var parseModel = function (model, isFirstParent) {\n if (model.filterType === 'join') {\n var operator = _this.advancedFilterExpressionService.parseJoinOperator(model);\n var expression_1 = model.conditions.map(function (condition) { return parseModel(condition); })\n .filter(function (condition) { return _.exists(condition); })\n .join(\" \" + operator + \" \");\n return isFirstParent || model.conditions.length <= 1 ? expression_1 : \"(\" + expression_1 + \")\";\n }\n else {\n return _this.advancedFilterExpressionService.parseColumnFilterModel(model);\n }\n };\n var expression = model ? parseModel(model, true) : null;\n this.setExpressionDisplayValue(expression);\n this.applyExpression();\n this.ctrl.refreshComp();\n this.ctrl.refreshBuilderComp();\n };\n AdvancedFilterService.prototype.getExpressionDisplayValue = function () {\n return this.expression;\n };\n AdvancedFilterService.prototype.setExpressionDisplayValue = function (expression) {\n this.expression = expression;\n };\n AdvancedFilterService.prototype.isCurrentExpressionApplied = function () {\n return this.appliedExpression === this.expression;\n };\n AdvancedFilterService.prototype.createExpressionParser = function (expression) {\n if (!expression) {\n return null;\n }\n return new FilterExpressionParser({\n expression: expression,\n columnModel: this.columnModel,\n dataTypeService: this.dataTypeService,\n valueParserService: this.valueParserService,\n advancedFilterExpressionService: this.advancedFilterExpressionService,\n });\n };\n AdvancedFilterService.prototype.getDefaultExpression = function (updateEntry) {\n var updatedValue = this.advancedFilterExpressionService.getColumnValue(updateEntry) + ' ';\n return {\n updatedValue: updatedValue,\n updatedPosition: updatedValue.length\n };\n };\n AdvancedFilterService.prototype.isHeaderActive = function () {\n return !this.gridOptionsService.get('advancedFilterParent');\n };\n AdvancedFilterService.prototype.getCtrl = function () {\n return this.ctrl;\n };\n AdvancedFilterService.prototype.setEnabled = function (enabled, silent) {\n var previousValue = this.enabled;\n var isClientSideRowModel = this.rowModel.getType() === 'clientSide';\n if (enabled && !isClientSideRowModel) {\n _.doOnce(function () {\n console.warn('AG Grid: Advanced Filter is only supported with the Client-Side Row Model.');\n }, 'advancedFilterCSRM');\n }\n this.enabled = enabled && isClientSideRowModel;\n if (!silent && this.enabled !== previousValue) {\n var event_1 = {\n type: Events.EVENT_ADVANCED_FILTER_ENABLED_CHANGED,\n enabled: this.enabled\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n AdvancedFilterService.prototype.applyExpression = function () {\n var expressionParser = this.createExpressionParser(this.expression);\n expressionParser === null || expressionParser === void 0 ? void 0 : expressionParser.parseExpression();\n this.applyExpressionFromParser(expressionParser);\n };\n AdvancedFilterService.prototype.applyExpressionFromParser = function (expressionParser) {\n this.isValid = !expressionParser || expressionParser.isValid();\n if (!expressionParser || !this.isValid) {\n this.expressionFunction = null;\n this.expressionParams = null;\n this.appliedExpression = null;\n return;\n }\n var _a = expressionParser.getFunction(), functionBody = _a.functionBody, params = _a.params;\n this.expressionFunction = new Function('expressionProxy', 'node', 'params', functionBody);\n this.expressionParams = params;\n this.appliedExpression = this.expression;\n };\n AdvancedFilterService.prototype.updateValidity = function () {\n this.advancedFilterExpressionService.resetColumnCaches();\n var expressionParser = this.createExpressionParser(this.expression);\n expressionParser === null || expressionParser === void 0 ? void 0 : expressionParser.parseExpression();\n var isValid = !expressionParser || expressionParser.isValid();\n var updatedValidity = isValid !== this.isValid;\n if (updatedValidity) {\n this.applyExpressionFromParser(expressionParser);\n this.ctrl.refreshComp();\n }\n this.ctrl.refreshBuilderComp();\n return updatedValidity;\n };\n AdvancedFilterService.prototype.onNewColumnsLoaded = function (event) {\n var _this = this;\n if (event.source !== 'gridInitializing') {\n return;\n }\n var setModel = function () { var _a; return _this.setModel((_a = _this.gridOptionsService.get('advancedFilterModel')) !== null && _a !== void 0 ? _a : null); };\n if (this.dataTypeService.isPendingInference()) {\n this.ctrl.setInputDisabled(true);\n var destroyFunc_1 = this.addManagedListener(this.eventService, Events.EVENT_DATA_TYPES_INFERRED, function () {\n destroyFunc_1 === null || destroyFunc_1 === void 0 ? void 0 : destroyFunc_1();\n setModel();\n _this.ctrl.setInputDisabled(false);\n });\n }\n else {\n setModel();\n }\n };\n __decorate$2z([\n Autowired('valueService')\n ], AdvancedFilterService.prototype, \"valueService\", void 0);\n __decorate$2z([\n Autowired('columnModel')\n ], AdvancedFilterService.prototype, \"columnModel\", void 0);\n __decorate$2z([\n Autowired('dataTypeService')\n ], AdvancedFilterService.prototype, \"dataTypeService\", void 0);\n __decorate$2z([\n Autowired('valueParserService')\n ], AdvancedFilterService.prototype, \"valueParserService\", void 0);\n __decorate$2z([\n Autowired('rowModel')\n ], AdvancedFilterService.prototype, \"rowModel\", void 0);\n __decorate$2z([\n Autowired('advancedFilterExpressionService')\n ], AdvancedFilterService.prototype, \"advancedFilterExpressionService\", void 0);\n __decorate$2z([\n PostConstruct\n ], AdvancedFilterService.prototype, \"postConstruct\", null);\n AdvancedFilterService = __decorate$2z([\n Bean('advancedFilterService')\n ], AdvancedFilterService);\n return AdvancedFilterService;\n}(BeanStub));\n\n// DO NOT UPDATE MANUALLY: Generated from script during build time\nvar VERSION$i = '30.2.0';\n\nvar AdvancedFilterModule = {\n version: VERSION$i,\n moduleName: ModuleNames.AdvancedFilterModule,\n beans: [AdvancedFilterService, AdvancedFilterExpressionService],\n agStackComponents: [\n { componentName: 'agAdvancedFilter', componentClass: AdvancedFilterComp }\n ],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar __extends$3o = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$1m = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$R = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar __values$Q = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n// Matches value in changeDetectionService\nvar SOURCE_PASTE = 'paste';\nvar EXPORT_TYPE_DRAG_COPY = 'dragCopy';\nvar EXPORT_TYPE_CLIPBOARD = 'clipboard';\nvar CellClearType;\n(function (CellClearType) {\n CellClearType[CellClearType[\"CellRange\"] = 0] = \"CellRange\";\n CellClearType[CellClearType[\"SelectedRows\"] = 1] = \"SelectedRows\";\n CellClearType[CellClearType[\"FocusedCell\"] = 2] = \"FocusedCell\";\n})(CellClearType || (CellClearType = {}));\nvar ClipboardService = /** @class */ (function (_super) {\n __extends$3o(ClipboardService, _super);\n function ClipboardService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.lastPasteOperationTime = 0;\n _this.navigatorApiFailed = false;\n return _this;\n }\n ClipboardService_1 = ClipboardService;\n ClipboardService.prototype.init = function () {\n var _this = this;\n this.logger = this.loggerFactory.create('ClipboardService');\n if (this.rowModel.getType() === 'clientSide') {\n this.clientSideRowModel = this.rowModel;\n }\n this.ctrlsService.whenReady(function (p) {\n _this.gridCtrl = p.gridCtrl;\n });\n };\n ClipboardService.prototype.pasteFromClipboard = function () {\n var _this = this;\n this.logger.log('pasteFromClipboard');\n // Method 1 - native clipboard API, available in modern chrome browsers\n var allowNavigator = !this.gridOptionsService.is('suppressClipboardApi');\n // Some browsers (Firefox) do not allow Web Applications to read from\n // the clipboard so verify if not only the ClipboardAPI is available,\n // but also if the `readText` method is public.\n if (allowNavigator && !this.navigatorApiFailed && navigator.clipboard && navigator.clipboard.readText) {\n navigator.clipboard.readText()\n .then(this.processClipboardData.bind(this))\n .catch(function (e) {\n _.doOnce(function () {\n console.warn(e);\n console.warn('AG Grid: Unable to use the Clipboard API (navigator.clipboard.readText()). ' +\n 'The reason why it could not be used has been logged in the previous line. ' +\n 'For this reason the grid has defaulted to using a workaround which doesn\\'t perform as well. ' +\n 'Either fix why Clipboard API is blocked, OR stop this message from appearing by setting grid ' +\n 'property suppressClipboardApi=true (which will default the grid to using the workaround rather than the API');\n }, 'clipboardApiError');\n _this.navigatorApiFailed = true;\n _this.pasteFromClipboardLegacy();\n });\n }\n else {\n this.pasteFromClipboardLegacy();\n }\n };\n ClipboardService.prototype.pasteFromClipboardLegacy = function () {\n var _this = this;\n // Method 2 - if modern API fails, the old school hack\n var defaultPrevented = false;\n var handlePasteEvent = function (e) {\n var currentPastOperationTime = (new Date()).getTime();\n if (currentPastOperationTime - _this.lastPasteOperationTime < 50) {\n defaultPrevented = true;\n e.preventDefault();\n }\n _this.lastPasteOperationTime = currentPastOperationTime;\n };\n this.executeOnTempElement(function (textArea) {\n textArea.addEventListener('paste', handlePasteEvent);\n textArea.focus({ preventScroll: true });\n }, function (element) {\n var data = element.value;\n if (!defaultPrevented) {\n _this.processClipboardData(data);\n }\n else {\n _this.refocusLastFocusedCell();\n }\n element.removeEventListener('paste', handlePasteEvent);\n });\n };\n ClipboardService.prototype.refocusLastFocusedCell = function () {\n var focusedCell = this.focusService.getFocusedCell();\n if (focusedCell) {\n this.focusService.setFocusedCell({\n rowIndex: focusedCell.rowIndex,\n column: focusedCell.column,\n rowPinned: focusedCell.rowPinned,\n forceBrowserFocus: true\n });\n }\n };\n ClipboardService.prototype.getClipboardDelimiter = function () {\n var delimiter = this.gridOptionsService.get('clipboardDelimiter');\n return _.exists(delimiter) ? delimiter : '\\t';\n };\n ClipboardService.prototype.processClipboardData = function (data) {\n var _this = this;\n if (data == null) {\n return;\n }\n var parsedData = ClipboardService_1.stringToArray(data, this.getClipboardDelimiter());\n var userFunc = this.gridOptionsService.getCallback('processDataFromClipboard');\n if (userFunc) {\n parsedData = userFunc({ data: parsedData });\n }\n if (parsedData == null) {\n return;\n }\n if (this.gridOptionsService.is('suppressLastEmptyLineOnPaste')) {\n this.removeLastLineIfBlank(parsedData);\n }\n var pasteOperation = function (cellsToFlash, updatedRowNodes, focusedCell, changedPath) {\n var rangeActive = _this.rangeService && _this.rangeService.isMoreThanOneCell();\n var pasteIntoRange = rangeActive && !_this.hasOnlyOneValueToPaste(parsedData);\n if (pasteIntoRange) {\n _this.pasteIntoActiveRange(parsedData, cellsToFlash, updatedRowNodes, changedPath);\n }\n else {\n _this.pasteStartingFromFocusedCell(parsedData, cellsToFlash, updatedRowNodes, focusedCell, changedPath);\n }\n };\n this.doPasteOperation(pasteOperation);\n };\n // This will parse a delimited string into an array of arrays.\n ClipboardService.stringToArray = function (strData, delimiter) {\n if (delimiter === void 0) { delimiter = ','; }\n var data = [];\n var isNewline = function (char) { return char === '\\r' || char === '\\n'; };\n var insideQuotedField = false;\n if (strData === '') {\n return [['']];\n }\n var _loop_1 = function (row, column, position) {\n var previousChar = strData[position - 1];\n var currentChar = strData[position];\n var nextChar = strData[position + 1];\n var ensureDataExists = function () {\n if (!data[row]) {\n // create row if it doesn't exist\n data[row] = [];\n }\n if (!data[row][column]) {\n // create column if it doesn't exist\n data[row][column] = '';\n }\n };\n ensureDataExists();\n if (currentChar === '\"') {\n if (insideQuotedField) {\n if (nextChar === '\"') {\n // unescape double quote\n data[row][column] += '\"';\n position++;\n }\n else {\n // exit quoted field\n insideQuotedField = false;\n }\n // continue;\n }\n else if (previousChar === undefined || previousChar === delimiter || isNewline(previousChar)) {\n // enter quoted field\n insideQuotedField = true;\n // continue;\n }\n }\n if (!insideQuotedField && currentChar !== '\"') {\n if (currentChar === delimiter) {\n // move to next column\n column++;\n ensureDataExists();\n return out_row_1 = row, out_column_1 = column, out_position_1 = position, \"continue\";\n }\n else if (isNewline(currentChar)) {\n // move to next row\n column = 0;\n row++;\n ensureDataExists();\n if (currentChar === '\\r' && nextChar === '\\n') {\n // skip over second newline character if it exists\n position++;\n }\n return out_row_1 = row, out_column_1 = column, out_position_1 = position, \"continue\";\n }\n }\n // add current character to current column\n data[row][column] += currentChar;\n out_row_1 = row;\n out_column_1 = column;\n out_position_1 = position;\n };\n var out_row_1, out_column_1, out_position_1;\n // iterate over each character, keep track of current row and column (of the returned array)\n for (var row = 0, column = 0, position = 0; position < strData.length; position++) {\n _loop_1(row, column, position);\n row = out_row_1;\n column = out_column_1;\n position = out_position_1;\n }\n return data;\n };\n // common code to paste operations, e.g. paste to cell, paste to range, and copy range down\n ClipboardService.prototype.doPasteOperation = function (pasteOperationFunc) {\n var api = this.gridOptionsService.api;\n var columnApi = this.gridOptionsService.columnApi;\n var source = 'clipboard';\n this.eventService.dispatchEvent({\n type: Events.EVENT_PASTE_START,\n api: api,\n columnApi: columnApi,\n source: source\n });\n var changedPath;\n if (this.clientSideRowModel) {\n var onlyChangedColumns = this.gridOptionsService.is('aggregateOnlyChangedColumns');\n changedPath = new ChangedPath(onlyChangedColumns, this.clientSideRowModel.getRootNode());\n }\n var cellsToFlash = {};\n var updatedRowNodes = [];\n var focusedCell = this.focusService.getFocusedCell();\n pasteOperationFunc(cellsToFlash, updatedRowNodes, focusedCell, changedPath);\n var nodesToRefresh = __spreadArray$R([], __read$1m(updatedRowNodes));\n if (changedPath) {\n this.clientSideRowModel.doAggregate(changedPath);\n // add all nodes impacted by aggregation, as they need refreshed also.\n changedPath.forEachChangedNodeDepthFirst(function (rowNode) {\n nodesToRefresh.push(rowNode);\n });\n }\n // clipboardService has to do changeDetection itself, to prevent repeat logic in favour of batching.\n // changeDetectionService is disabled for this action.\n this.rowRenderer.refreshCells({ rowNodes: nodesToRefresh });\n this.dispatchFlashCells(cellsToFlash);\n this.fireRowChanged(updatedRowNodes);\n // if using the clipboard hack with a temp element, then the focus has been lost,\n // so need to put it back. otherwise paste operation loosed focus on cell and keyboard\n // navigation stops.\n this.refocusLastFocusedCell();\n var event = {\n type: Events.EVENT_PASTE_END,\n source: source\n };\n this.eventService.dispatchEvent(event);\n };\n ClipboardService.prototype.pasteIntoActiveRange = function (clipboardData, cellsToFlash, updatedRowNodes, changedPath) {\n var _this = this;\n // true if clipboard data can be evenly pasted into range, otherwise false\n var abortRepeatingPasteIntoRows = this.getRangeSize() % clipboardData.length != 0;\n var indexOffset = 0;\n var dataRowIndex = 0;\n var rowCallback = function (currentRow, rowNode, columns, index) {\n var atEndOfClipboardData = index - indexOffset >= clipboardData.length;\n if (atEndOfClipboardData) {\n if (abortRepeatingPasteIntoRows) {\n return;\n }\n // increment offset and reset data index to repeat paste of data\n indexOffset += dataRowIndex;\n dataRowIndex = 0;\n }\n var currentRowData = clipboardData[index - indexOffset];\n // otherwise we are not the first row, so copy\n updatedRowNodes.push(rowNode);\n var processCellFromClipboardFunc = _this.gridOptionsService.getCallback('processCellFromClipboard');\n columns.forEach(function (column, idx) {\n if (!column.isCellEditable(rowNode) || column.isSuppressPaste(rowNode)) {\n return;\n }\n // repeat data for columns we don't have data for - happens when to range is bigger than copied data range\n if (idx >= currentRowData.length) {\n idx = idx % currentRowData.length;\n }\n var newValue = _this.processCell(rowNode, column, currentRowData[idx], EXPORT_TYPE_DRAG_COPY, processCellFromClipboardFunc, true);\n rowNode.setDataValue(column, newValue, SOURCE_PASTE);\n if (changedPath) {\n changedPath.addParentNode(rowNode.parent, [column]);\n }\n var rowIndex = currentRow.rowIndex, rowPinned = currentRow.rowPinned;\n var cellId = _this.cellPositionUtils.createIdFromValues({ rowIndex: rowIndex, column: column, rowPinned: rowPinned });\n cellsToFlash[cellId] = true;\n });\n dataRowIndex++;\n };\n this.iterateActiveRanges(false, rowCallback);\n };\n ClipboardService.prototype.pasteStartingFromFocusedCell = function (parsedData, cellsToFlash, updatedRowNodes, focusedCell, changedPath) {\n if (!focusedCell) {\n return;\n }\n var currentRow = { rowIndex: focusedCell.rowIndex, rowPinned: focusedCell.rowPinned };\n var columnsToPasteInto = this.columnModel.getDisplayedColumnsStartingAt(focusedCell.column);\n if (this.isPasteSingleValueIntoRange(parsedData)) {\n this.pasteSingleValueIntoRange(parsedData, updatedRowNodes, cellsToFlash, changedPath);\n }\n else {\n this.pasteMultipleValues(parsedData, currentRow, updatedRowNodes, columnsToPasteInto, cellsToFlash, EXPORT_TYPE_CLIPBOARD, changedPath);\n }\n };\n // if range is active, and only one cell, then we paste this cell into all cells in the active range.\n ClipboardService.prototype.isPasteSingleValueIntoRange = function (parsedData) {\n return this.hasOnlyOneValueToPaste(parsedData)\n && this.rangeService != null\n && !this.rangeService.isEmpty();\n };\n ClipboardService.prototype.pasteSingleValueIntoRange = function (parsedData, updatedRowNodes, cellsToFlash, changedPath) {\n var _this = this;\n var value = parsedData[0][0];\n var rowCallback = function (currentRow, rowNode, columns) {\n updatedRowNodes.push(rowNode);\n columns.forEach(function (column) {\n return _this.updateCellValue(rowNode, column, value, cellsToFlash, EXPORT_TYPE_CLIPBOARD, changedPath);\n });\n };\n this.iterateActiveRanges(false, rowCallback);\n };\n ClipboardService.prototype.hasOnlyOneValueToPaste = function (parsedData) {\n return parsedData.length === 1 && parsedData[0].length === 1;\n };\n ClipboardService.prototype.copyRangeDown = function () {\n var _this = this;\n if (!this.rangeService || this.rangeService.isEmpty()) {\n return;\n }\n var firstRowValues = [];\n var pasteOperation = function (cellsToFlash, updatedRowNodes, focusedCell, changedPath) {\n var processCellForClipboardFunc = _this.gridOptionsService.getCallback('processCellForClipboard');\n var processCellFromClipboardFunc = _this.gridOptionsService.getCallback('processCellFromClipboard');\n var rowCallback = function (currentRow, rowNode, columns) {\n // take reference of first row, this is the one we will be using to copy from\n if (!firstRowValues.length) {\n // two reasons for looping through columns\n columns.forEach(function (column) {\n // get the initial values to copy down\n var value = _this.processCell(rowNode, column, _this.valueService.getValue(column, rowNode), EXPORT_TYPE_DRAG_COPY, processCellForClipboardFunc, false, true);\n firstRowValues.push(value);\n });\n }\n else {\n // otherwise we are not the first row, so copy\n updatedRowNodes.push(rowNode);\n columns.forEach(function (column, index) {\n if (!column.isCellEditable(rowNode) || column.isSuppressPaste(rowNode)) {\n return;\n }\n var firstRowValue = _this.processCell(rowNode, column, firstRowValues[index], EXPORT_TYPE_DRAG_COPY, processCellFromClipboardFunc, true);\n rowNode.setDataValue(column, firstRowValue, SOURCE_PASTE);\n if (changedPath) {\n changedPath.addParentNode(rowNode.parent, [column]);\n }\n var rowIndex = currentRow.rowIndex, rowPinned = currentRow.rowPinned;\n var cellId = _this.cellPositionUtils.createIdFromValues({ rowIndex: rowIndex, column: column, rowPinned: rowPinned });\n cellsToFlash[cellId] = true;\n });\n }\n };\n _this.iterateActiveRanges(true, rowCallback);\n };\n this.doPasteOperation(pasteOperation);\n };\n ClipboardService.prototype.removeLastLineIfBlank = function (parsedData) {\n // remove last row if empty, excel puts empty last row in\n var lastLine = _.last(parsedData);\n var lastLineIsBlank = lastLine && lastLine.length === 1 && lastLine[0] === '';\n if (lastLineIsBlank) {\n // do not remove the last empty line when that is the only line pasted\n if (parsedData.length === 1) {\n return;\n }\n _.removeFromArray(parsedData, lastLine);\n }\n };\n ClipboardService.prototype.fireRowChanged = function (rowNodes) {\n var _this = this;\n if (this.gridOptionsService.get('editType') !== 'fullRow') {\n return;\n }\n rowNodes.forEach(function (rowNode) {\n var event = {\n type: Events.EVENT_ROW_VALUE_CHANGED,\n node: rowNode,\n data: rowNode.data,\n rowIndex: rowNode.rowIndex,\n rowPinned: rowNode.rowPinned\n };\n _this.eventService.dispatchEvent(event);\n });\n };\n ClipboardService.prototype.pasteMultipleValues = function (clipboardGridData, currentRow, updatedRowNodes, columnsToPasteInto, cellsToFlash, type, changedPath) {\n var _this = this;\n var rowPointer = currentRow;\n // if doing CSRM and NOT tree data, then it means groups are aggregates, which are read only,\n // so we should skip them when doing paste operations.\n var skipGroupRows = this.clientSideRowModel != null && !this.gridOptionsService.is('enableGroupEdit') && !this.gridOptionsService.is('treeData');\n var getNextGoodRowNode = function () {\n while (true) {\n if (!rowPointer) {\n return null;\n }\n var res = _this.rowPositionUtils.getRowNode(rowPointer);\n // move to next row down for next set of values\n rowPointer = _this.cellNavigationService.getRowBelow({ rowPinned: rowPointer.rowPinned, rowIndex: rowPointer.rowIndex });\n // if no more rows, return null\n if (res == null) {\n return null;\n }\n // skip details rows and footer rows, never paste into them as they don't hold data\n var skipRow = res.detail || res.footer || (skipGroupRows && res.group);\n // skipping row means we go into the next iteration of the while loop\n if (!skipRow) {\n return res;\n }\n }\n };\n clipboardGridData.forEach(function (clipboardRowData) {\n var rowNode = getNextGoodRowNode();\n // if we have come to end of rows in grid, then skip\n if (!rowNode) {\n return;\n }\n clipboardRowData.forEach(function (value, index) {\n return _this.updateCellValue(rowNode, columnsToPasteInto[index], value, cellsToFlash, type, changedPath);\n });\n updatedRowNodes.push(rowNode);\n });\n };\n ClipboardService.prototype.updateCellValue = function (rowNode, column, value, cellsToFlash, type, changedPath) {\n if (!rowNode ||\n !column ||\n !column.isCellEditable(rowNode) ||\n column.isSuppressPaste(rowNode)) {\n return;\n }\n // if the cell is a group and the col is an aggregation, skip the cell.\n if (rowNode.group && column.isValueActive()) {\n return;\n }\n var processedValue = this.processCell(rowNode, column, value, type, this.gridOptionsService.getCallback('processCellFromClipboard'), true);\n rowNode.setDataValue(column, processedValue, SOURCE_PASTE);\n var rowIndex = rowNode.rowIndex, rowPinned = rowNode.rowPinned;\n var cellId = this.cellPositionUtils.createIdFromValues({ rowIndex: rowIndex, column: column, rowPinned: rowPinned });\n cellsToFlash[cellId] = true;\n if (changedPath) {\n changedPath.addParentNode(rowNode.parent, [column]);\n }\n };\n ClipboardService.prototype.copyToClipboard = function (params) {\n if (params === void 0) { params = {}; }\n this.copyOrCutToClipboard(params);\n };\n ClipboardService.prototype.cutToClipboard = function (params, source) {\n if (params === void 0) { params = {}; }\n if (source === void 0) { source = 'api'; }\n if (this.gridOptionsService.is('suppressCutToClipboard')) {\n return;\n }\n var startEvent = {\n type: Events.EVENT_CUT_START,\n source: source\n };\n this.eventService.dispatchEvent(startEvent);\n this.copyOrCutToClipboard(params, true);\n var endEvent = {\n type: Events.EVENT_CUT_END,\n source: source\n };\n this.eventService.dispatchEvent(endEvent);\n };\n ClipboardService.prototype.copyOrCutToClipboard = function (params, cut) {\n var includeHeaders = params.includeHeaders, includeGroupHeaders = params.includeGroupHeaders;\n this.logger.log(\"copyToClipboard: includeHeaders = \" + includeHeaders);\n // don't override 'includeHeaders' if it has been explicitly set to 'false'\n if (includeHeaders == null) {\n includeHeaders = this.gridOptionsService.is('copyHeadersToClipboard');\n }\n if (includeGroupHeaders == null) {\n includeGroupHeaders = this.gridOptionsService.is('copyGroupHeadersToClipboard');\n }\n var copyParams = { includeHeaders: includeHeaders, includeGroupHeaders: includeGroupHeaders };\n var shouldCopyRows = !this.gridOptionsService.is('suppressCopyRowsToClipboard');\n var cellClearType = null;\n // Copy priority is Range > Row > Focus\n if (this.rangeService && !this.rangeService.isEmpty() && !this.shouldSkipSingleCellRange()) {\n this.copySelectedRangeToClipboard(copyParams);\n cellClearType = CellClearType.CellRange;\n }\n else if (shouldCopyRows && !this.selectionService.isEmpty()) {\n this.copySelectedRowsToClipboard(copyParams);\n cellClearType = CellClearType.SelectedRows;\n }\n else if (this.focusService.isAnyCellFocused()) {\n this.copyFocusedCellToClipboard(copyParams);\n cellClearType = CellClearType.FocusedCell;\n }\n if (cut && cellClearType !== null) {\n this.clearCellsAfterCopy(cellClearType);\n }\n };\n ClipboardService.prototype.clearCellsAfterCopy = function (type) {\n this.eventService.dispatchEvent({ type: Events.EVENT_KEY_SHORTCUT_CHANGED_CELL_START });\n if (type === CellClearType.CellRange) {\n this.rangeService.clearCellRangeCellValues({ cellEventSource: 'clipboardService' });\n }\n else if (type === CellClearType.SelectedRows) {\n this.clearSelectedRows();\n }\n else {\n var focusedCell = this.focusService.getFocusedCell();\n if (focusedCell == null) {\n return;\n }\n var rowNode = this.rowPositionUtils.getRowNode(focusedCell);\n if (rowNode) {\n this.clearCellValue(rowNode, focusedCell.column);\n }\n }\n this.eventService.dispatchEvent({ type: Events.EVENT_KEY_SHORTCUT_CHANGED_CELL_END });\n };\n ClipboardService.prototype.clearSelectedRows = function () {\n var e_1, _a, e_2, _b;\n var selected = this.selectionService.getSelectedNodes();\n var columns = this.columnModel.getAllDisplayedColumns();\n try {\n for (var selected_1 = __values$Q(selected), selected_1_1 = selected_1.next(); !selected_1_1.done; selected_1_1 = selected_1.next()) {\n var row = selected_1_1.value;\n try {\n for (var columns_1 = (e_2 = void 0, __values$Q(columns)), columns_1_1 = columns_1.next(); !columns_1_1.done; columns_1_1 = columns_1.next()) {\n var col = columns_1_1.value;\n this.clearCellValue(row, col);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (columns_1_1 && !columns_1_1.done && (_b = columns_1.return)) _b.call(columns_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (selected_1_1 && !selected_1_1.done && (_a = selected_1.return)) _a.call(selected_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n ClipboardService.prototype.clearCellValue = function (rowNode, column) {\n if (!column.isCellEditable(rowNode)) {\n return;\n }\n rowNode.setDataValue(column, null, 'clipboardService');\n };\n ClipboardService.prototype.shouldSkipSingleCellRange = function () {\n return this.gridOptionsService.is('suppressCopySingleCellRanges') && !this.rangeService.isMoreThanOneCell();\n };\n ClipboardService.prototype.iterateActiveRanges = function (onlyFirst, rowCallback, columnCallback) {\n var _this = this;\n if (!this.rangeService || this.rangeService.isEmpty()) {\n return;\n }\n var cellRanges = this.rangeService.getCellRanges();\n if (onlyFirst) {\n this.iterateActiveRange(cellRanges[0], rowCallback, columnCallback, true);\n }\n else {\n cellRanges.forEach(function (range, idx) { return _this.iterateActiveRange(range, rowCallback, columnCallback, idx === cellRanges.length - 1); });\n }\n };\n ClipboardService.prototype.iterateActiveRange = function (range, rowCallback, columnCallback, isLastRange) {\n if (!this.rangeService) {\n return;\n }\n var currentRow = this.rangeService.getRangeStartRow(range);\n var lastRow = this.rangeService.getRangeEndRow(range);\n if (columnCallback && range.columns) {\n columnCallback(range.columns);\n }\n var rangeIndex = 0;\n var isLastRow = false;\n // the currentRow could be missing if the user sets the active range manually, and sets a range\n // that is outside of the grid (eg. sets range rows 0 to 100, but grid has only 20 rows).\n while (!isLastRow && currentRow != null) {\n var rowNode = this.rowPositionUtils.getRowNode(currentRow);\n isLastRow = this.rowPositionUtils.sameRow(currentRow, lastRow);\n rowCallback(currentRow, rowNode, range.columns, rangeIndex++, isLastRow && isLastRange);\n currentRow = this.cellNavigationService.getRowBelow(currentRow);\n }\n };\n ClipboardService.prototype.copySelectedRangeToClipboard = function (params) {\n if (params === void 0) { params = {}; }\n if (!this.rangeService || this.rangeService.isEmpty()) {\n return;\n }\n var allRangesMerge = this.rangeService.areAllRangesAbleToMerge();\n var _a = allRangesMerge ? this.buildDataFromMergedRanges(params) : this.buildDataFromRanges(params), data = _a.data, cellsToFlash = _a.cellsToFlash;\n this.copyDataToClipboard(data);\n this.dispatchFlashCells(cellsToFlash);\n };\n ClipboardService.prototype.buildDataFromMergedRanges = function (params) {\n var _this = this;\n var columnsSet = new Set();\n var ranges = this.rangeService.getCellRanges();\n var rowPositionsMap = new Map();\n var allRowPositions = [];\n var allCellsToFlash = {};\n ranges.forEach(function (range) {\n range.columns.forEach(function (col) { return columnsSet.add(col); });\n var _a = _this.getRangeRowPositionsAndCellsToFlash(range), rowPositions = _a.rowPositions, cellsToFlash = _a.cellsToFlash;\n rowPositions.forEach(function (rowPosition) {\n var rowPositionAsString = rowPosition.rowIndex + \"-\" + (rowPosition.rowPinned || 'null');\n if (!rowPositionsMap.get(rowPositionAsString)) {\n rowPositionsMap.set(rowPositionAsString, true);\n allRowPositions.push(rowPosition);\n }\n });\n Object.assign(allCellsToFlash, cellsToFlash);\n });\n var allColumns = this.columnModel.getAllDisplayedColumns();\n var exportedColumns = Array.from(columnsSet);\n exportedColumns.sort(function (a, b) {\n var posA = allColumns.indexOf(a);\n var posB = allColumns.indexOf(b);\n return posA - posB;\n });\n var data = this.buildExportParams({\n columns: exportedColumns,\n rowPositions: allRowPositions,\n includeHeaders: params.includeHeaders,\n includeGroupHeaders: params.includeGroupHeaders,\n });\n return { data: data, cellsToFlash: allCellsToFlash };\n };\n ClipboardService.prototype.buildDataFromRanges = function (params) {\n var _this = this;\n var ranges = this.rangeService.getCellRanges();\n var data = [];\n var allCellsToFlash = {};\n ranges.forEach(function (range) {\n var _a = _this.getRangeRowPositionsAndCellsToFlash(range), rowPositions = _a.rowPositions, cellsToFlash = _a.cellsToFlash;\n Object.assign(allCellsToFlash, cellsToFlash);\n data.push(_this.buildExportParams({\n columns: range.columns,\n rowPositions: rowPositions,\n includeHeaders: params.includeHeaders,\n includeGroupHeaders: params.includeGroupHeaders,\n }));\n });\n return { data: data.join('\\n'), cellsToFlash: allCellsToFlash };\n };\n ClipboardService.prototype.getRangeRowPositionsAndCellsToFlash = function (range) {\n var _this = this;\n var rowPositions = [];\n var cellsToFlash = {};\n var startRow = this.rangeService.getRangeStartRow(range);\n var lastRow = this.rangeService.getRangeEndRow(range);\n var node = startRow;\n while (node) {\n rowPositions.push(node);\n range.columns.forEach(function (column) {\n var _a = node, rowIndex = _a.rowIndex, rowPinned = _a.rowPinned;\n var cellId = _this.cellPositionUtils.createIdFromValues({ rowIndex: rowIndex, column: column, rowPinned: rowPinned });\n cellsToFlash[cellId] = true;\n });\n if (this.rowPositionUtils.sameRow(node, lastRow)) {\n break;\n }\n node = this.cellNavigationService.getRowBelow(node);\n }\n return { rowPositions: rowPositions, cellsToFlash: cellsToFlash };\n };\n ClipboardService.prototype.copyFocusedCellToClipboard = function (params) {\n var _a;\n if (params === void 0) { params = {}; }\n var focusedCell = this.focusService.getFocusedCell();\n if (focusedCell == null) {\n return;\n }\n var cellId = this.cellPositionUtils.createId(focusedCell);\n var currentRow = { rowPinned: focusedCell.rowPinned, rowIndex: focusedCell.rowIndex };\n var column = focusedCell.column;\n var data = this.buildExportParams({\n columns: [column],\n rowPositions: [currentRow],\n includeHeaders: params.includeHeaders,\n includeGroupHeaders: params.includeGroupHeaders\n });\n this.copyDataToClipboard(data);\n this.dispatchFlashCells((_a = {}, _a[cellId] = true, _a));\n };\n ClipboardService.prototype.copySelectedRowsToClipboard = function (params) {\n if (params === void 0) { params = {}; }\n var columnKeys = params.columnKeys, includeHeaders = params.includeHeaders, includeGroupHeaders = params.includeGroupHeaders;\n var data = this.buildExportParams({\n columns: columnKeys,\n includeHeaders: includeHeaders,\n includeGroupHeaders: includeGroupHeaders\n });\n this.copyDataToClipboard(data);\n };\n ClipboardService.prototype.buildExportParams = function (params) {\n var _this = this;\n var columns = params.columns, rowPositions = params.rowPositions, _a = params.includeHeaders, includeHeaders = _a === void 0 ? false : _a, _b = params.includeGroupHeaders, includeGroupHeaders = _b === void 0 ? false : _b;\n var exportParams = {\n columnKeys: columns,\n rowPositions: rowPositions,\n skipColumnHeaders: !includeHeaders,\n skipColumnGroupHeaders: !includeGroupHeaders,\n suppressQuotes: true,\n columnSeparator: this.getClipboardDelimiter(),\n onlySelected: !rowPositions,\n processCellCallback: this.gridOptionsService.getCallback('processCellForClipboard'),\n processRowGroupCallback: function (params) { return _this.processRowGroupCallback(params); },\n processHeaderCallback: this.gridOptionsService.getCallback('processHeaderForClipboard'),\n processGroupHeaderCallback: this.gridOptionsService.getCallback('processGroupHeaderForClipboard')\n };\n return this.csvCreator.getDataAsCsv(exportParams, true);\n };\n ClipboardService.prototype.processRowGroupCallback = function (params) {\n var _this = this;\n var node = params.node;\n var key = node.key;\n var value = key != null ? key : '';\n if (params.node.footer) {\n var suffix = '';\n if (key && key.length) {\n suffix = \" \" + key;\n }\n value = \"Total\" + suffix;\n }\n var processCellForClipboard = this.gridOptionsService.getCallback('processCellForClipboard');\n if (processCellForClipboard) {\n var column_1 = node.rowGroupColumn;\n if (!column_1 && node.footer && node.level === -1) {\n column_1 = this.columnModel.getRowGroupColumns()[0];\n }\n return processCellForClipboard({\n value: value,\n node: node,\n column: column_1,\n type: 'clipboard',\n formatValue: function (valueToFormat) { var _a; return (_a = _this.valueFormatterService.formatValue(column_1, node, valueToFormat)) !== null && _a !== void 0 ? _a : valueToFormat; },\n parseValue: function (valueToParse) { return _this.valueParserService.parseValue(column_1, node, valueToParse, _this.valueService.getValue(column_1, node)); }\n });\n }\n return value;\n };\n ClipboardService.prototype.dispatchFlashCells = function (cellsToFlash) {\n var _this = this;\n window.setTimeout(function () {\n var event = {\n type: Events.EVENT_FLASH_CELLS,\n cells: cellsToFlash\n };\n _this.eventService.dispatchEvent(event);\n }, 0);\n };\n ClipboardService.prototype.processCell = function (rowNode, column, value, type, func, canParse, canFormat) {\n var _this = this;\n var _a;\n if (func) {\n var params = {\n column: column,\n node: rowNode,\n value: value,\n type: type,\n formatValue: function (valueToFormat) { var _a; return (_a = _this.valueFormatterService.formatValue(column, rowNode !== null && rowNode !== void 0 ? rowNode : null, valueToFormat)) !== null && _a !== void 0 ? _a : valueToFormat; },\n parseValue: function (valueToParse) { return _this.valueParserService.parseValue(column, rowNode !== null && rowNode !== void 0 ? rowNode : null, valueToParse, _this.valueService.getValue(column, rowNode)); }\n };\n return func(params);\n }\n if (canParse && column.getColDef().useValueParserForImport) {\n return this.valueParserService.parseValue(column, rowNode !== null && rowNode !== void 0 ? rowNode : null, value, this.valueService.getValue(column, rowNode));\n }\n else if (canFormat && column.getColDef().useValueFormatterForExport) {\n return (_a = this.valueFormatterService.formatValue(column, rowNode !== null && rowNode !== void 0 ? rowNode : null, value)) !== null && _a !== void 0 ? _a : value;\n }\n return value;\n };\n ClipboardService.prototype.copyDataToClipboard = function (data) {\n var _this = this;\n var userProvidedFunc = this.gridOptionsService.getCallback('sendToClipboard');\n // method 1 - user provided func\n if (userProvidedFunc) {\n userProvidedFunc({ data: data });\n return;\n }\n // method 2 - native clipboard API, available in modern chrome browsers\n var allowNavigator = !this.gridOptionsService.is('suppressClipboardApi');\n if (allowNavigator && navigator.clipboard) {\n navigator.clipboard.writeText(data).catch(function (e) {\n _.doOnce(function () {\n console.warn(e);\n console.warn('AG Grid: Unable to use the Clipboard API (navigator.clipboard.writeText()). ' +\n 'The reason why it could not be used has been logged in the previous line. ' +\n 'For this reason the grid has defaulted to using a workaround which doesn\\'t perform as well. ' +\n 'Either fix why Clipboard API is blocked, OR stop this message from appearing by setting grid ' +\n 'property suppressClipboardApi=true (which will default the grid to using the workaround rather than the API.');\n }, 'clipboardApiError');\n _this.copyDataToClipboardLegacy(data);\n });\n return;\n }\n this.copyDataToClipboardLegacy(data);\n };\n ClipboardService.prototype.copyDataToClipboardLegacy = function (data) {\n var _this = this;\n // method 3 - if all else fails, the old school hack\n this.executeOnTempElement(function (element) {\n var eDocument = _this.gridOptionsService.getDocument();\n var focusedElementBefore = eDocument.activeElement;\n element.value = data || ' '; // has to be non-empty value or execCommand will not do anything\n element.select();\n element.focus({ preventScroll: true });\n var result = eDocument.execCommand('copy');\n if (!result) {\n console.warn('AG Grid: Browser did not allow document.execCommand(\\'copy\\'). Ensure ' +\n 'api.copySelectedRowsToClipboard() is invoked via a user event, i.e. button click, otherwise ' +\n 'the browser will prevent it for security reasons.');\n }\n if (focusedElementBefore != null && focusedElementBefore.focus != null) {\n focusedElementBefore.focus({ preventScroll: true });\n }\n });\n };\n ClipboardService.prototype.executeOnTempElement = function (callbackNow, callbackAfter) {\n var eDoc = this.gridOptionsService.getDocument();\n var eTempInput = eDoc.createElement('textarea');\n eTempInput.style.width = '1px';\n eTempInput.style.height = '1px';\n // removing items from the DOM causes the document element to scroll to the\n // position where the element was positioned. Here we set scrollTop / scrollLeft\n // to prevent the document element from scrolling when we remove it from the DOM.\n eTempInput.style.top = eDoc.documentElement.scrollTop + 'px';\n eTempInput.style.left = eDoc.documentElement.scrollLeft + 'px';\n eTempInput.style.position = 'absolute';\n eTempInput.style.opacity = '0';\n var guiRoot = this.gridCtrl.getGui();\n guiRoot.appendChild(eTempInput);\n try {\n callbackNow(eTempInput);\n }\n catch (err) {\n console.warn('AG Grid: Browser does not support document.execCommand(\\'copy\\') for clipboard operations');\n }\n //It needs 100 otherwise OS X seemed to not always be able to paste... Go figure...\n if (callbackAfter) {\n window.setTimeout(function () {\n callbackAfter(eTempInput);\n guiRoot.removeChild(eTempInput);\n }, 100);\n }\n else {\n guiRoot.removeChild(eTempInput);\n }\n };\n ClipboardService.prototype.getRangeSize = function () {\n var ranges = this.rangeService.getCellRanges();\n var startRangeIndex = 0;\n var endRangeIndex = 0;\n if (ranges.length > 0) {\n startRangeIndex = this.rangeService.getRangeStartRow(ranges[0]).rowIndex;\n endRangeIndex = this.rangeService.getRangeEndRow(ranges[0]).rowIndex;\n }\n return startRangeIndex - endRangeIndex + 1;\n };\n var ClipboardService_1;\n __decorate$2y([\n Autowired('csvCreator')\n ], ClipboardService.prototype, \"csvCreator\", void 0);\n __decorate$2y([\n Autowired('loggerFactory')\n ], ClipboardService.prototype, \"loggerFactory\", void 0);\n __decorate$2y([\n Autowired('selectionService')\n ], ClipboardService.prototype, \"selectionService\", void 0);\n __decorate$2y([\n Optional('rangeService')\n ], ClipboardService.prototype, \"rangeService\", void 0);\n __decorate$2y([\n Autowired('rowModel')\n ], ClipboardService.prototype, \"rowModel\", void 0);\n __decorate$2y([\n Autowired('ctrlsService')\n ], ClipboardService.prototype, \"ctrlsService\", void 0);\n __decorate$2y([\n Autowired('valueService')\n ], ClipboardService.prototype, \"valueService\", void 0);\n __decorate$2y([\n Autowired('focusService')\n ], ClipboardService.prototype, \"focusService\", void 0);\n __decorate$2y([\n Autowired('rowRenderer')\n ], ClipboardService.prototype, \"rowRenderer\", void 0);\n __decorate$2y([\n Autowired('columnModel')\n ], ClipboardService.prototype, \"columnModel\", void 0);\n __decorate$2y([\n Autowired('cellNavigationService')\n ], ClipboardService.prototype, \"cellNavigationService\", void 0);\n __decorate$2y([\n Autowired('cellPositionUtils')\n ], ClipboardService.prototype, \"cellPositionUtils\", void 0);\n __decorate$2y([\n Autowired('rowPositionUtils')\n ], ClipboardService.prototype, \"rowPositionUtils\", void 0);\n __decorate$2y([\n Autowired('valueFormatterService')\n ], ClipboardService.prototype, \"valueFormatterService\", void 0);\n __decorate$2y([\n Autowired('valueParserService')\n ], ClipboardService.prototype, \"valueParserService\", void 0);\n __decorate$2y([\n PostConstruct\n ], ClipboardService.prototype, \"init\", null);\n ClipboardService = ClipboardService_1 = __decorate$2y([\n Bean('clipboardService')\n ], ClipboardService);\n return ClipboardService;\n}(BeanStub));\n\n// DO NOT UPDATE MANUALLY: Generated from script during build time\nvar VERSION$h = '30.2.0';\n\nvar ClipboardModule = {\n version: VERSION$h,\n moduleName: ModuleNames.ClipboardModule,\n beans: [ClipboardService],\n dependantModules: [\n EnterpriseCoreModule,\n CsvExportModule\n ]\n};\n\nvar __extends$3n = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ExpandState;\n(function (ExpandState) {\n ExpandState[ExpandState[\"EXPANDED\"] = 0] = \"EXPANDED\";\n ExpandState[ExpandState[\"COLLAPSED\"] = 1] = \"COLLAPSED\";\n ExpandState[ExpandState[\"INDETERMINATE\"] = 2] = \"INDETERMINATE\";\n})(ExpandState || (ExpandState = {}));\nvar PrimaryColsHeaderPanel = /** @class */ (function (_super) {\n __extends$3n(PrimaryColsHeaderPanel, _super);\n function PrimaryColsHeaderPanel() {\n return _super.call(this, PrimaryColsHeaderPanel.TEMPLATE) || this;\n }\n PrimaryColsHeaderPanel.prototype.postConstruct = function () {\n var _this = this;\n this.createExpandIcons();\n this.addManagedListener(this.eExpand, 'click', this.onExpandClicked.bind(this));\n this.addManagedListener(this.eExpand, 'keydown', function (e) {\n if (e.key === KeyCode.SPACE) {\n e.preventDefault();\n _this.onExpandClicked();\n }\n });\n this.addManagedListener(this.eSelect.getInputElement(), 'click', this.onSelectClicked.bind(this));\n this.eFilterTextField.onValueChange(function () { return _this.onFilterTextChanged(); });\n this.addManagedListener(this.eFilterTextField.getInputElement(), 'keydown', this.onMiniFilterKeyDown.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.showOrHideOptions.bind(this));\n var translate = this.localeService.getLocaleTextFunc();\n this.eSelect.setInputAriaLabel(translate('ariaColumnSelectAll', 'Toggle Select All Columns'));\n this.eFilterTextField.setInputAriaLabel(translate('ariaFilterColumnsInput', 'Filter Columns Input'));\n this.activateTabIndex([this.eExpand]);\n };\n PrimaryColsHeaderPanel.prototype.init = function (params) {\n this.params = params;\n if (this.columnModel.isReady()) {\n this.showOrHideOptions();\n }\n };\n PrimaryColsHeaderPanel.prototype.createExpandIcons = function () {\n this.eExpand.appendChild((this.eExpandChecked = _.createIconNoSpan('columnSelectOpen', this.gridOptionsService)));\n this.eExpand.appendChild((this.eExpandUnchecked = _.createIconNoSpan('columnSelectClosed', this.gridOptionsService)));\n this.eExpand.appendChild((this.eExpandIndeterminate = _.createIconNoSpan('columnSelectIndeterminate', this.gridOptionsService)));\n this.setExpandState(ExpandState.EXPANDED);\n };\n // we only show expand / collapse if we are showing columns\n PrimaryColsHeaderPanel.prototype.showOrHideOptions = function () {\n var showFilter = !this.params.suppressColumnFilter;\n var showSelect = !this.params.suppressColumnSelectAll;\n var showExpand = !this.params.suppressColumnExpandAll;\n var groupsPresent = this.columnModel.isPrimaryColumnGroupsPresent();\n var translate = this.localeService.getLocaleTextFunc();\n this.eFilterTextField.setInputPlaceholder(translate('searchOoo', 'Search...'));\n _.setDisplayed(this.eFilterTextField.getGui(), showFilter);\n _.setDisplayed(this.eSelect.getGui(), showSelect);\n _.setDisplayed(this.eExpand, showExpand && groupsPresent);\n };\n PrimaryColsHeaderPanel.prototype.onFilterTextChanged = function () {\n var _this = this;\n if (!this.onFilterTextChangedDebounced) {\n this.onFilterTextChangedDebounced = _.debounce(function () {\n var filterText = _this.eFilterTextField.getValue();\n _this.dispatchEvent({ type: \"filterChanged\", filterText: filterText });\n }, PrimaryColsHeaderPanel.DEBOUNCE_DELAY);\n }\n this.onFilterTextChangedDebounced();\n };\n PrimaryColsHeaderPanel.prototype.onMiniFilterKeyDown = function (e) {\n var _this = this;\n if (e.key === KeyCode.ENTER) {\n // we need to add a delay that corresponds to the filter text debounce delay to ensure\n // the text filtering has happened, otherwise all columns will be deselected\n setTimeout(function () { return _this.onSelectClicked(); }, PrimaryColsHeaderPanel.DEBOUNCE_DELAY);\n }\n };\n PrimaryColsHeaderPanel.prototype.onSelectClicked = function () {\n this.dispatchEvent({ type: this.selectState ? 'unselectAll' : 'selectAll' });\n };\n PrimaryColsHeaderPanel.prototype.onExpandClicked = function () {\n this.dispatchEvent({ type: this.expandState === ExpandState.EXPANDED ? 'collapseAll' : 'expandAll' });\n };\n PrimaryColsHeaderPanel.prototype.setExpandState = function (state) {\n this.expandState = state;\n _.setDisplayed(this.eExpandChecked, this.expandState === ExpandState.EXPANDED);\n _.setDisplayed(this.eExpandUnchecked, this.expandState === ExpandState.COLLAPSED);\n _.setDisplayed(this.eExpandIndeterminate, this.expandState === ExpandState.INDETERMINATE);\n };\n PrimaryColsHeaderPanel.prototype.setSelectionState = function (state) {\n this.selectState = state;\n this.eSelect.setValue(this.selectState);\n };\n PrimaryColsHeaderPanel.DEBOUNCE_DELAY = 300;\n PrimaryColsHeaderPanel.TEMPLATE = \"
\\n
\\n \\n \\n
\";\n __decorate$2x([\n Autowired('columnModel')\n ], PrimaryColsHeaderPanel.prototype, \"columnModel\", void 0);\n __decorate$2x([\n RefSelector('eExpand')\n ], PrimaryColsHeaderPanel.prototype, \"eExpand\", void 0);\n __decorate$2x([\n RefSelector('eSelect')\n ], PrimaryColsHeaderPanel.prototype, \"eSelect\", void 0);\n __decorate$2x([\n RefSelector('eFilterTextField')\n ], PrimaryColsHeaderPanel.prototype, \"eFilterTextField\", void 0);\n __decorate$2x([\n PostConstruct\n ], PrimaryColsHeaderPanel.prototype, \"postConstruct\", null);\n return PrimaryColsHeaderPanel;\n}(Component));\n\nvar ColumnModelItem = /** @class */ (function () {\n function ColumnModelItem(displayName, columnOrGroup, dept, group, expanded) {\n if (group === void 0) { group = false; }\n this.eventService = new EventService();\n this.displayName = displayName;\n this.dept = dept;\n this.group = group;\n if (group) {\n this.columnGroup = columnOrGroup;\n this.expanded = expanded;\n this.children = [];\n }\n else {\n this.column = columnOrGroup;\n }\n }\n ColumnModelItem.prototype.isGroup = function () { return this.group; };\n ColumnModelItem.prototype.getDisplayName = function () { return this.displayName; };\n ColumnModelItem.prototype.getColumnGroup = function () { return this.columnGroup; };\n ColumnModelItem.prototype.getColumn = function () { return this.column; };\n ColumnModelItem.prototype.getDept = function () { return this.dept; };\n ColumnModelItem.prototype.isExpanded = function () { return !!this.expanded; };\n ColumnModelItem.prototype.getChildren = function () { return this.children; };\n ColumnModelItem.prototype.isPassesFilter = function () { return this.passesFilter; };\n ColumnModelItem.prototype.setExpanded = function (expanded) {\n if (expanded === this.expanded) {\n return;\n }\n this.expanded = expanded;\n this.eventService.dispatchEvent({ type: ColumnModelItem.EVENT_EXPANDED_CHANGED });\n };\n ColumnModelItem.prototype.setPassesFilter = function (passesFilter) {\n this.passesFilter = passesFilter;\n };\n ColumnModelItem.prototype.addEventListener = function (eventType, listener) {\n this.eventService.addEventListener(eventType, listener);\n };\n ColumnModelItem.prototype.removeEventListener = function (eventType, listener) {\n this.eventService.removeEventListener(eventType, listener);\n };\n ColumnModelItem.EVENT_EXPANDED_CHANGED = 'expandedChanged';\n return ColumnModelItem;\n}());\n\nvar __extends$3m = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$1l = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$Q = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar __values$P = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar ToolPanelContextMenu = /** @class */ (function (_super) {\n __extends$3m(ToolPanelContextMenu, _super);\n function ToolPanelContextMenu(column, mouseEvent, parentEl) {\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.column = column;\n _this.mouseEvent = mouseEvent;\n _this.parentEl = parentEl;\n _this.displayName = null;\n return _this;\n }\n ToolPanelContextMenu.prototype.postConstruct = function () {\n this.initializeProperties(this.column);\n this.buildMenuItemMap();\n if (this.column instanceof Column) {\n this.displayName = this.columnModel.getDisplayNameForColumn(this.column, 'columnToolPanel');\n }\n else {\n this.displayName = this.columnModel.getDisplayNameForProvidedColumnGroup(null, this.column, 'columnToolPanel');\n }\n if (this.isActive()) {\n this.mouseEvent.preventDefault();\n this.displayContextMenu();\n }\n };\n ToolPanelContextMenu.prototype.initializeProperties = function (column) {\n if (column instanceof ProvidedColumnGroup) {\n this.columns = column.getLeafColumns();\n }\n else {\n this.columns = [column];\n }\n this.allowGrouping = this.columns.some(function (col) { return col.isPrimary() && col.isAllowRowGroup(); });\n this.allowValues = this.columns.some(function (col) { return col.isPrimary() && col.isAllowValue(); });\n this.allowPivoting = this.columnModel.isPivotMode() && this.columns.some(function (col) { return col.isPrimary() && col.isAllowPivot(); });\n };\n ToolPanelContextMenu.prototype.buildMenuItemMap = function () {\n var _this = this;\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n this.menuItemMap = new Map();\n this.menuItemMap.set('rowGroup', {\n allowedFunction: function (col) { return col.isPrimary() && col.isAllowRowGroup(); },\n activeFunction: function (col) { return col.isRowGroupActive(); },\n activateLabel: function () { return localeTextFunc('groupBy', 'Group by') + \" \" + _this.displayName; },\n deactivateLabel: function () { return localeTextFunc('ungroupBy', 'Un-Group by') + \" \" + _this.displayName; },\n activateFunction: function () {\n var groupedColumns = _this.columnModel.getRowGroupColumns();\n _this.columnModel.setRowGroupColumns(_this.addColumnsToList(groupedColumns), \"toolPanelUi\");\n },\n deActivateFunction: function () {\n var groupedColumns = _this.columnModel.getRowGroupColumns();\n _this.columnModel.setRowGroupColumns(_this.removeColumnsFromList(groupedColumns), \"toolPanelUi\");\n },\n addIcon: 'menuAddRowGroup',\n removeIcon: 'menuRemoveRowGroup'\n });\n this.menuItemMap.set('value', {\n allowedFunction: function (col) { return col.isPrimary() && col.isAllowValue(); },\n activeFunction: function (col) { return col.isValueActive(); },\n activateLabel: function () { return localeTextFunc('addToValues', \"Add \" + _this.displayName + \" to values\", [_this.displayName]); },\n deactivateLabel: function () { return localeTextFunc('removeFromValues', \"Remove \" + _this.displayName + \" from values\", [_this.displayName]); },\n activateFunction: function () {\n var valueColumns = _this.columnModel.getValueColumns();\n _this.columnModel.setValueColumns(_this.addColumnsToList(valueColumns), \"toolPanelUi\");\n },\n deActivateFunction: function () {\n var valueColumns = _this.columnModel.getValueColumns();\n _this.columnModel.setValueColumns(_this.removeColumnsFromList(valueColumns), \"toolPanelUi\");\n },\n addIcon: 'valuePanel',\n removeIcon: 'valuePanel'\n });\n this.menuItemMap.set('pivot', {\n allowedFunction: function (col) { return _this.columnModel.isPivotMode() && col.isPrimary() && col.isAllowPivot(); },\n activeFunction: function (col) { return col.isPivotActive(); },\n activateLabel: function () { return localeTextFunc('addToLabels', \"Add \" + _this.displayName + \" to labels\", [_this.displayName]); },\n deactivateLabel: function () { return localeTextFunc('removeFromLabels', \"Remove \" + _this.displayName + \" from labels\", [_this.displayName]); },\n activateFunction: function () {\n var pivotColumns = _this.columnModel.getPivotColumns();\n _this.columnModel.setPivotColumns(_this.addColumnsToList(pivotColumns), \"toolPanelUi\");\n },\n deActivateFunction: function () {\n var pivotColumns = _this.columnModel.getPivotColumns();\n _this.columnModel.setPivotColumns(_this.removeColumnsFromList(pivotColumns), \"toolPanelUi\");\n },\n addIcon: 'pivotPanel',\n removeIcon: 'pivotPanel'\n });\n };\n ToolPanelContextMenu.prototype.addColumnsToList = function (columnList) {\n return __spreadArray$Q([], __read$1l(columnList)).concat(this.columns.filter(function (col) { return columnList.indexOf(col) === -1; }));\n };\n ToolPanelContextMenu.prototype.removeColumnsFromList = function (columnList) {\n var _this = this;\n return columnList.filter(function (col) { return _this.columns.indexOf(col) === -1; });\n };\n ToolPanelContextMenu.prototype.displayContextMenu = function () {\n var _this = this;\n var eGui = this.getGui();\n var menuList = this.createBean(new AgMenuList());\n var menuItemsMapped = this.getMappedMenuItems();\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n var hideFunc = function () { };\n eGui.appendChild(menuList.getGui());\n menuList.addMenuItems(menuItemsMapped);\n menuList.addManagedListener(menuList, AgMenuItemComponent.EVENT_MENU_ITEM_SELECTED, function () {\n _this.parentEl.focus();\n hideFunc();\n });\n var addPopupRes = this.popupService.addPopup({\n modal: true,\n eChild: eGui,\n closeOnEsc: true,\n afterGuiAttached: function () { return _this.focusService.focusInto(menuList.getGui()); },\n ariaLabel: localeTextFunc('ariaLabelContextMenu', 'Context Menu'),\n closedCallback: function (e) {\n if (e instanceof KeyboardEvent) {\n _this.parentEl.focus();\n }\n _this.destroyBean(menuList);\n }\n });\n if (addPopupRes) {\n hideFunc = addPopupRes.hideFunc;\n }\n this.popupService.positionPopupUnderMouseEvent({\n type: 'columnContextMenu',\n mouseEvent: this.mouseEvent,\n ePopup: eGui\n });\n };\n ToolPanelContextMenu.prototype.isActive = function () {\n return this.allowGrouping || this.allowValues || this.allowPivoting;\n };\n ToolPanelContextMenu.prototype.getMappedMenuItems = function () {\n var e_1, _a;\n var ret = [];\n var _loop_1 = function (val) {\n var isInactive = this_1.columns.some(function (col) { return val.allowedFunction(col) && !val.activeFunction(col); });\n var isActive = this_1.columns.some(function (col) { return val.allowedFunction(col) && val.activeFunction(col); });\n if (isInactive) {\n ret.push({\n name: val.activateLabel(this_1.displayName),\n icon: _.createIconNoSpan(val.addIcon, this_1.gridOptionsService, null),\n action: function () { return val.activateFunction(); }\n });\n }\n if (isActive) {\n ret.push({\n name: val.deactivateLabel(this_1.displayName),\n icon: _.createIconNoSpan(val.removeIcon, this_1.gridOptionsService, null),\n action: function () { return val.deActivateFunction(); }\n });\n }\n };\n var this_1 = this;\n try {\n for (var _b = __values$P(this.menuItemMap.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var val = _c.value;\n _loop_1(val);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return ret;\n };\n __decorate$2w([\n Autowired('columnModel')\n ], ToolPanelContextMenu.prototype, \"columnModel\", void 0);\n __decorate$2w([\n Autowired('popupService')\n ], ToolPanelContextMenu.prototype, \"popupService\", void 0);\n __decorate$2w([\n Autowired('focusService')\n ], ToolPanelContextMenu.prototype, \"focusService\", void 0);\n __decorate$2w([\n PostConstruct\n ], ToolPanelContextMenu.prototype, \"postConstruct\", null);\n return ToolPanelContextMenu;\n}(Component));\n\nvar __extends$3l = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ToolPanelColumnGroupComp = /** @class */ (function (_super) {\n __extends$3l(ToolPanelColumnGroupComp, _super);\n function ToolPanelColumnGroupComp(modelItem, allowDragging, eventType, focusWrapper) {\n var _this = _super.call(this) || this;\n _this.modelItem = modelItem;\n _this.allowDragging = allowDragging;\n _this.eventType = eventType;\n _this.focusWrapper = focusWrapper;\n _this.processingColumnStateChange = false;\n _this.modelItem = modelItem;\n _this.columnGroup = modelItem.getColumnGroup();\n _this.columnDept = modelItem.getDept();\n _this.displayName = modelItem.getDisplayName();\n _this.allowDragging = allowDragging;\n return _this;\n }\n ToolPanelColumnGroupComp.prototype.init = function () {\n var _this = this;\n this.setTemplate(ToolPanelColumnGroupComp.TEMPLATE);\n this.eDragHandle = _.createIconNoSpan('columnDrag', this.gridOptionsService);\n this.eDragHandle.classList.add('ag-drag-handle', 'ag-column-select-column-group-drag-handle');\n var checkboxGui = this.cbSelect.getGui();\n var checkboxInput = this.cbSelect.getInputElement();\n checkboxGui.insertAdjacentElement('afterend', this.eDragHandle);\n checkboxInput.setAttribute('tabindex', '-1');\n this.eLabel.innerHTML = this.displayName ? this.displayName : '';\n this.setupExpandContract();\n this.addCssClass('ag-column-select-indent-' + this.columnDept);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, this.onColumnStateChanged.bind(this));\n this.addManagedListener(this.eLabel, 'click', this.onLabelClicked.bind(this));\n this.addManagedListener(this.cbSelect, Events.EVENT_FIELD_VALUE_CHANGED, this.onCheckboxChanged.bind(this));\n this.addManagedListener(this.modelItem, ColumnModelItem.EVENT_EXPANDED_CHANGED, this.onExpandChanged.bind(this));\n this.addManagedListener(this.focusWrapper, 'keydown', this.handleKeyDown.bind(this));\n this.addManagedListener(this.focusWrapper, 'contextmenu', this.onContextMenu.bind(this));\n this.setOpenClosedIcons();\n this.setupDragging();\n this.onColumnStateChanged();\n this.addVisibilityListenersToAllChildren();\n this.refreshAriaExpanded();\n this.refreshAriaLabel();\n this.setupTooltip();\n var classes = CssClassApplier.getToolPanelClassesFromColDef(this.columnGroup.getColGroupDef(), this.gridOptionsService, null, this.columnGroup);\n classes.forEach(function (c) { return _this.addOrRemoveCssClass(c, true); });\n };\n ToolPanelColumnGroupComp.prototype.getColumns = function () {\n return this.columnGroup.getLeafColumns();\n };\n ToolPanelColumnGroupComp.prototype.setupTooltip = function () {\n var _this = this;\n var colGroupDef = this.columnGroup.getColGroupDef();\n if (!colGroupDef) {\n return;\n }\n var refresh = function () {\n var newTooltipText = colGroupDef.headerTooltip;\n _this.setTooltip(newTooltipText);\n };\n refresh();\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, refresh);\n };\n ToolPanelColumnGroupComp.prototype.getTooltipParams = function () {\n var res = _super.prototype.getTooltipParams.call(this);\n res.location = 'columnToolPanelColumnGroup';\n return res;\n };\n ToolPanelColumnGroupComp.prototype.handleKeyDown = function (e) {\n switch (e.key) {\n case KeyCode.LEFT:\n e.preventDefault();\n this.modelItem.setExpanded(false);\n break;\n case KeyCode.RIGHT:\n e.preventDefault();\n this.modelItem.setExpanded(true);\n break;\n case KeyCode.SPACE:\n e.preventDefault();\n if (this.isSelectable()) {\n this.onSelectAllChanged(!this.isSelected());\n }\n break;\n }\n };\n ToolPanelColumnGroupComp.prototype.onContextMenu = function (e) {\n var _this = this;\n var _a = this, columnGroup = _a.columnGroup, gridOptionsService = _a.gridOptionsService;\n if (gridOptionsService.is('functionsReadOnly')) {\n return;\n }\n var contextMenu = this.createBean(new ToolPanelContextMenu(columnGroup, e, this.focusWrapper));\n this.addDestroyFunc(function () {\n if (contextMenu.isAlive()) {\n _this.destroyBean(contextMenu);\n }\n });\n };\n ToolPanelColumnGroupComp.prototype.addVisibilityListenersToAllChildren = function () {\n var _this = this;\n this.columnGroup.getLeafColumns().forEach(function (column) {\n _this.addManagedListener(column, Column.EVENT_VISIBLE_CHANGED, _this.onColumnStateChanged.bind(_this));\n _this.addManagedListener(column, Column.EVENT_VALUE_CHANGED, _this.onColumnStateChanged.bind(_this));\n _this.addManagedListener(column, Column.EVENT_PIVOT_CHANGED, _this.onColumnStateChanged.bind(_this));\n _this.addManagedListener(column, Column.EVENT_ROW_GROUP_CHANGED, _this.onColumnStateChanged.bind(_this));\n });\n };\n ToolPanelColumnGroupComp.prototype.setupDragging = function () {\n var _this = this;\n if (!this.allowDragging) {\n _.setDisplayed(this.eDragHandle, false);\n return;\n }\n var hideColumnOnExit = !this.gridOptionsService.is('suppressDragLeaveHidesColumns');\n var dragSource = {\n type: DragSourceType.ToolPanel,\n eElement: this.eDragHandle,\n dragItemName: this.displayName,\n getDefaultIconName: function () { return hideColumnOnExit ? DragAndDropService.ICON_HIDE : DragAndDropService.ICON_NOT_ALLOWED; },\n getDragItem: function () { return _this.createDragItem(); },\n onDragStarted: function () {\n hideColumnOnExit = !_this.gridOptionsService.is('suppressDragLeaveHidesColumns');\n var event = {\n type: Events.EVENT_COLUMN_PANEL_ITEM_DRAG_START,\n column: _this.columnGroup\n };\n _this.eventService.dispatchEvent(event);\n },\n onDragStopped: function () {\n var event = {\n type: Events.EVENT_COLUMN_PANEL_ITEM_DRAG_END\n };\n _this.eventService.dispatchEvent(event);\n },\n onGridEnter: function (dragItem) {\n if (hideColumnOnExit) {\n // when dragged into the grid, restore the state that was active pre-drag\n _this.modelItemUtils.updateColumns({\n columns: _this.columnGroup.getLeafColumns(),\n visibleState: dragItem === null || dragItem === void 0 ? void 0 : dragItem.visibleState,\n pivotState: dragItem === null || dragItem === void 0 ? void 0 : dragItem.pivotState,\n eventType: _this.eventType\n });\n }\n },\n onGridExit: function () {\n if (hideColumnOnExit) {\n // when dragged outside of the grid, mimic what happens when checkbox is disabled\n // this handles the behaviour for pivot which is different to just hiding a column.\n _this.onChangeCommon(false);\n }\n }\n };\n this.dragAndDropService.addDragSource(dragSource, true);\n this.addDestroyFunc(function () { return _this.dragAndDropService.removeDragSource(dragSource); });\n };\n ToolPanelColumnGroupComp.prototype.createDragItem = function () {\n var _this = this;\n var columns = this.columnGroup.getLeafColumns();\n var visibleState = {};\n var pivotState = {};\n columns.forEach(function (col) {\n var colId = col.getId();\n visibleState[colId] = col.isVisible();\n pivotState[colId] = _this.modelItemUtils.createPivotState(col);\n });\n return {\n columns: columns,\n visibleState: visibleState,\n pivotState: pivotState\n };\n };\n ToolPanelColumnGroupComp.prototype.setupExpandContract = function () {\n this.eGroupClosedIcon.appendChild(_.createIcon('columnSelectClosed', this.gridOptionsService, null));\n this.eGroupOpenedIcon.appendChild(_.createIcon('columnSelectOpen', this.gridOptionsService, null));\n this.addManagedListener(this.eGroupClosedIcon, 'click', this.onExpandOrContractClicked.bind(this));\n this.addManagedListener(this.eGroupOpenedIcon, 'click', this.onExpandOrContractClicked.bind(this));\n var touchListener = new TouchListener(this.eColumnGroupIcons, true);\n this.addManagedListener(touchListener, TouchListener.EVENT_TAP, this.onExpandOrContractClicked.bind(this));\n this.addDestroyFunc(touchListener.destroy.bind(touchListener));\n };\n ToolPanelColumnGroupComp.prototype.onLabelClicked = function () {\n var nextState = !this.cbSelect.getValue();\n this.onChangeCommon(nextState);\n };\n ToolPanelColumnGroupComp.prototype.onCheckboxChanged = function (event) {\n this.onChangeCommon(event.selected);\n };\n ToolPanelColumnGroupComp.prototype.getVisibleLeafColumns = function () {\n var childColumns = [];\n var extractCols = function (children) {\n children.forEach(function (child) {\n if (!child.isPassesFilter()) {\n return;\n }\n if (child.isGroup()) {\n extractCols(child.getChildren());\n }\n else {\n childColumns.push(child.getColumn());\n }\n });\n };\n extractCols(this.modelItem.getChildren());\n return childColumns;\n };\n ToolPanelColumnGroupComp.prototype.onChangeCommon = function (nextState) {\n this.refreshAriaLabel();\n if (this.processingColumnStateChange) {\n return;\n }\n this.modelItemUtils.selectAllChildren(this.modelItem.getChildren(), nextState, this.eventType);\n };\n ToolPanelColumnGroupComp.prototype.refreshAriaLabel = function () {\n var translate = this.localeService.getLocaleTextFunc();\n var columnLabel = translate('ariaColumnGroup', 'Column Group');\n var checkboxValue = this.cbSelect.getValue();\n var state = checkboxValue === undefined ?\n translate('ariaIndeterminate', 'indeterminate') :\n (checkboxValue ? translate('ariaVisible', 'visible') : translate('ariaHidden', 'hidden'));\n var visibilityLabel = translate('ariaToggleVisibility', 'Press SPACE to toggle visibility');\n _.setAriaLabel(this.focusWrapper, this.displayName + \" \" + columnLabel);\n this.cbSelect.setInputAriaLabel(visibilityLabel + \" (\" + state + \")\");\n _.setAriaDescribedBy(this.focusWrapper, this.cbSelect.getInputElement().id);\n };\n ToolPanelColumnGroupComp.prototype.onColumnStateChanged = function () {\n var selectedValue = this.workOutSelectedValue();\n var readOnlyValue = this.workOutReadOnlyValue();\n this.processingColumnStateChange = true;\n this.cbSelect.setValue(selectedValue);\n this.cbSelect.setReadOnly(readOnlyValue);\n this.addOrRemoveCssClass('ag-column-select-column-group-readonly', readOnlyValue);\n this.processingColumnStateChange = false;\n };\n ToolPanelColumnGroupComp.prototype.workOutSelectedValue = function () {\n var _this = this;\n var pivotMode = this.columnModel.isPivotMode();\n var visibleLeafColumns = this.getVisibleLeafColumns();\n var checkedCount = 0;\n var uncheckedCount = 0;\n visibleLeafColumns.forEach(function (column) {\n if (!pivotMode && column.getColDef().lockVisible) {\n return;\n }\n if (_this.isColumnChecked(column, pivotMode)) {\n checkedCount++;\n }\n else {\n uncheckedCount++;\n }\n });\n if (checkedCount > 0 && uncheckedCount > 0) {\n return undefined;\n }\n return checkedCount > 0;\n };\n ToolPanelColumnGroupComp.prototype.workOutReadOnlyValue = function () {\n var pivotMode = this.columnModel.isPivotMode();\n var colsThatCanAction = 0;\n this.columnGroup.getLeafColumns().forEach(function (col) {\n if (pivotMode) {\n if (col.isAnyFunctionAllowed()) {\n colsThatCanAction++;\n }\n }\n else {\n if (!col.getColDef().lockVisible) {\n colsThatCanAction++;\n }\n }\n });\n return colsThatCanAction === 0;\n };\n ToolPanelColumnGroupComp.prototype.isColumnChecked = function (column, pivotMode) {\n if (pivotMode) {\n var pivoted = column.isPivotActive();\n var grouped = column.isRowGroupActive();\n var aggregated = column.isValueActive();\n return pivoted || grouped || aggregated;\n }\n return column.isVisible();\n };\n ToolPanelColumnGroupComp.prototype.onExpandOrContractClicked = function () {\n var oldState = this.modelItem.isExpanded();\n this.modelItem.setExpanded(!oldState);\n };\n ToolPanelColumnGroupComp.prototype.onExpandChanged = function () {\n this.setOpenClosedIcons();\n this.refreshAriaExpanded();\n };\n ToolPanelColumnGroupComp.prototype.setOpenClosedIcons = function () {\n var folderOpen = this.modelItem.isExpanded();\n _.setDisplayed(this.eGroupClosedIcon, !folderOpen);\n _.setDisplayed(this.eGroupOpenedIcon, folderOpen);\n };\n ToolPanelColumnGroupComp.prototype.refreshAriaExpanded = function () {\n _.setAriaExpanded(this.focusWrapper, this.modelItem.isExpanded());\n };\n ToolPanelColumnGroupComp.prototype.getDisplayName = function () {\n return this.displayName;\n };\n ToolPanelColumnGroupComp.prototype.onSelectAllChanged = function (value) {\n var cbValue = this.cbSelect.getValue();\n var readOnly = this.cbSelect.isReadOnly();\n if (!readOnly && ((value && !cbValue) || (!value && cbValue))) {\n this.cbSelect.toggle();\n }\n };\n ToolPanelColumnGroupComp.prototype.isSelected = function () {\n return this.cbSelect.getValue();\n };\n ToolPanelColumnGroupComp.prototype.isSelectable = function () {\n return !this.cbSelect.isReadOnly();\n };\n ToolPanelColumnGroupComp.prototype.setSelected = function (selected) {\n this.cbSelect.setValue(selected, true);\n };\n ToolPanelColumnGroupComp.TEMPLATE = \"
\\n \\n \\n \\n \\n \\n \\n
\";\n __decorate$2v([\n Autowired('columnModel')\n ], ToolPanelColumnGroupComp.prototype, \"columnModel\", void 0);\n __decorate$2v([\n Autowired('dragAndDropService')\n ], ToolPanelColumnGroupComp.prototype, \"dragAndDropService\", void 0);\n __decorate$2v([\n Autowired('modelItemUtils')\n ], ToolPanelColumnGroupComp.prototype, \"modelItemUtils\", void 0);\n __decorate$2v([\n RefSelector('cbSelect')\n ], ToolPanelColumnGroupComp.prototype, \"cbSelect\", void 0);\n __decorate$2v([\n RefSelector('eLabel')\n ], ToolPanelColumnGroupComp.prototype, \"eLabel\", void 0);\n __decorate$2v([\n RefSelector('eGroupOpenedIcon')\n ], ToolPanelColumnGroupComp.prototype, \"eGroupOpenedIcon\", void 0);\n __decorate$2v([\n RefSelector('eGroupClosedIcon')\n ], ToolPanelColumnGroupComp.prototype, \"eGroupClosedIcon\", void 0);\n __decorate$2v([\n RefSelector('eColumnGroupIcons')\n ], ToolPanelColumnGroupComp.prototype, \"eColumnGroupIcons\", void 0);\n __decorate$2v([\n PostConstruct\n ], ToolPanelColumnGroupComp.prototype, \"init\", null);\n return ToolPanelColumnGroupComp;\n}(Component));\n\nvar __extends$3k = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PrimaryColsListPanelItemDragFeature = /** @class */ (function (_super) {\n __extends$3k(PrimaryColsListPanelItemDragFeature, _super);\n function PrimaryColsListPanelItemDragFeature(comp, virtualList) {\n var _this = _super.call(this) || this;\n _this.comp = comp;\n _this.virtualList = virtualList;\n return _this;\n }\n PrimaryColsListPanelItemDragFeature.prototype.postConstruct = function () {\n var _this = this;\n this.createManagedBean(new VirtualListDragFeature(this.comp, this.virtualList, {\n dragSourceType: DragSourceType.ToolPanel,\n listItemDragStartEvent: Events.EVENT_COLUMN_PANEL_ITEM_DRAG_START,\n listItemDragEndEvent: Events.EVENT_COLUMN_PANEL_ITEM_DRAG_END,\n eventSource: this.eventService,\n getCurrentDragValue: function (listItemDragStartEvent) { return _this.getCurrentDragValue(listItemDragStartEvent); },\n isMoveBlocked: function (currentDragValue) { return _this.isMoveBlocked(currentDragValue); },\n getNumRows: function (comp) { return comp.getDisplayedColsList().length; },\n moveItem: function (currentDragValue, lastHoveredListItem) { return _this.moveItem(currentDragValue, lastHoveredListItem); }\n }));\n };\n PrimaryColsListPanelItemDragFeature.prototype.getCurrentDragValue = function (listItemDragStartEvent) {\n return listItemDragStartEvent.column;\n };\n PrimaryColsListPanelItemDragFeature.prototype.isMoveBlocked = function (currentDragValue) {\n var currentColumns = this.getCurrentColumns(currentDragValue);\n var hasNotMovable = currentColumns.find(function (col) {\n var colDef = col.getColDef();\n return !!colDef.suppressMovable || !!colDef.lockPosition;\n });\n return !!hasNotMovable;\n };\n PrimaryColsListPanelItemDragFeature.prototype.moveItem = function (currentDragValue, lastHoveredListItem) {\n var targetIndex = this.getTargetIndex(currentDragValue, lastHoveredListItem);\n var columnsToMove = this.getCurrentColumns(currentDragValue);\n if (targetIndex != null) {\n this.columnModel.moveColumns(columnsToMove, targetIndex, 'toolPanelUi');\n }\n };\n PrimaryColsListPanelItemDragFeature.prototype.getMoveDiff = function (currentDragValue, end) {\n var allColumns = this.columnModel.getAllGridColumns();\n var currentColumns = this.getCurrentColumns(currentDragValue);\n var currentColumn = currentColumns[0];\n var span = currentColumns.length;\n var currentIndex = allColumns.indexOf(currentColumn);\n if (currentIndex < end) {\n return span;\n }\n return 0;\n };\n PrimaryColsListPanelItemDragFeature.prototype.getCurrentColumns = function (currentDragValue) {\n if (currentDragValue instanceof ProvidedColumnGroup) {\n return currentDragValue.getLeafColumns();\n }\n return [currentDragValue];\n };\n PrimaryColsListPanelItemDragFeature.prototype.getTargetIndex = function (currentDragValue, lastHoveredListItem) {\n if (!lastHoveredListItem) {\n return null;\n }\n var columnItemComponent = lastHoveredListItem.component;\n var isBefore = lastHoveredListItem.position === 'top';\n var targetColumn;\n if (columnItemComponent instanceof ToolPanelColumnGroupComp) {\n var columns = columnItemComponent.getColumns();\n targetColumn = columns[0];\n isBefore = true;\n }\n else {\n targetColumn = columnItemComponent.getColumn();\n }\n // if the target col is in the cols to be moved, no index to move.\n var movingCols = this.getCurrentColumns(currentDragValue);\n if (movingCols.indexOf(targetColumn) !== -1) {\n return null;\n }\n var targetColumnIndex = this.columnModel.getAllGridColumns().indexOf(targetColumn);\n var adjustedTarget = isBefore ? targetColumnIndex : targetColumnIndex + 1;\n var diff = this.getMoveDiff(currentDragValue, adjustedTarget);\n return adjustedTarget - diff;\n };\n __decorate$2u([\n Autowired('columnModel')\n ], PrimaryColsListPanelItemDragFeature.prototype, \"columnModel\", void 0);\n __decorate$2u([\n PostConstruct\n ], PrimaryColsListPanelItemDragFeature.prototype, \"postConstruct\", null);\n return PrimaryColsListPanelItemDragFeature;\n}(BeanStub));\n\nvar __extends$3j = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ToolPanelColumnComp = /** @class */ (function (_super) {\n __extends$3j(ToolPanelColumnComp, _super);\n function ToolPanelColumnComp(modelItem, allowDragging, groupsExist, focusWrapper) {\n var _this = _super.call(this) || this;\n _this.allowDragging = allowDragging;\n _this.groupsExist = groupsExist;\n _this.focusWrapper = focusWrapper;\n _this.processingColumnStateChange = false;\n _this.column = modelItem.getColumn();\n _this.columnDept = modelItem.getDept();\n _this.displayName = modelItem.getDisplayName();\n return _this;\n }\n ToolPanelColumnComp.prototype.init = function () {\n var _this = this;\n this.setTemplate(ToolPanelColumnComp.TEMPLATE);\n this.eDragHandle = _.createIconNoSpan('columnDrag', this.gridOptionsService);\n this.eDragHandle.classList.add('ag-drag-handle', 'ag-column-select-column-drag-handle');\n var checkboxGui = this.cbSelect.getGui();\n var checkboxInput = this.cbSelect.getInputElement();\n checkboxGui.insertAdjacentElement('afterend', this.eDragHandle);\n checkboxInput.setAttribute('tabindex', '-1');\n var displayNameSanitised = _.escapeString(this.displayName);\n this.eLabel.innerHTML = displayNameSanitised;\n // if grouping, we add an extra level of indent, to cater for expand/contract icons we need to indent for\n var indent = this.columnDept;\n if (this.groupsExist) {\n this.addCssClass('ag-column-select-add-group-indent');\n }\n this.addCssClass(\"ag-column-select-indent-\" + indent);\n this.setupDragging();\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, this.onColumnStateChanged.bind(this));\n this.addManagedListener(this.column, Column.EVENT_VALUE_CHANGED, this.onColumnStateChanged.bind(this));\n this.addManagedListener(this.column, Column.EVENT_PIVOT_CHANGED, this.onColumnStateChanged.bind(this));\n this.addManagedListener(this.column, Column.EVENT_ROW_GROUP_CHANGED, this.onColumnStateChanged.bind(this));\n this.addManagedListener(this.column, Column.EVENT_VISIBLE_CHANGED, this.onColumnStateChanged.bind(this));\n this.addManagedListener(this.focusWrapper, 'keydown', this.handleKeyDown.bind(this));\n this.addManagedListener(this.focusWrapper, 'contextmenu', this.onContextMenu.bind(this));\n this.addManagedPropertyListener('functionsReadOnly', this.onColumnStateChanged.bind(this));\n this.addManagedListener(this.cbSelect, Events.EVENT_FIELD_VALUE_CHANGED, this.onCheckboxChanged.bind(this));\n this.addManagedListener(this.eLabel, 'click', this.onLabelClicked.bind(this));\n this.onColumnStateChanged();\n this.refreshAriaLabel();\n this.setupTooltip();\n var classes = CssClassApplier.getToolPanelClassesFromColDef(this.column.getColDef(), this.gridOptionsService, this.column, null);\n classes.forEach(function (c) { return _this.addOrRemoveCssClass(c, true); });\n };\n ToolPanelColumnComp.prototype.getColumn = function () {\n return this.column;\n };\n ToolPanelColumnComp.prototype.setupTooltip = function () {\n var _this = this;\n var refresh = function () {\n var newTooltipText = _this.column.getColDef().headerTooltip;\n _this.setTooltip(newTooltipText);\n };\n refresh();\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, refresh);\n };\n ToolPanelColumnComp.prototype.getTooltipParams = function () {\n var res = _super.prototype.getTooltipParams.call(this);\n res.location = 'columnToolPanelColumn';\n res.colDef = this.column.getColDef();\n return res;\n };\n ToolPanelColumnComp.prototype.onContextMenu = function (e) {\n var _this = this;\n var _a = this, column = _a.column, gridOptionsService = _a.gridOptionsService;\n if (gridOptionsService.is('functionsReadOnly')) {\n return;\n }\n var contextMenu = this.createBean(new ToolPanelContextMenu(column, e, this.focusWrapper));\n this.addDestroyFunc(function () {\n if (contextMenu.isAlive()) {\n _this.destroyBean(contextMenu);\n }\n });\n };\n ToolPanelColumnComp.prototype.handleKeyDown = function (e) {\n if (e.key === KeyCode.SPACE) {\n e.preventDefault();\n if (this.isSelectable()) {\n this.onSelectAllChanged(!this.isSelected());\n }\n }\n };\n ToolPanelColumnComp.prototype.onLabelClicked = function () {\n if (this.gridOptionsService.is('functionsReadOnly')) {\n return;\n }\n var nextState = !this.cbSelect.getValue();\n this.onChangeCommon(nextState);\n };\n ToolPanelColumnComp.prototype.onCheckboxChanged = function (event) {\n this.onChangeCommon(event.selected);\n };\n ToolPanelColumnComp.prototype.onChangeCommon = function (nextState) {\n // ignore lock visible columns\n if (this.cbSelect.isReadOnly()) {\n return;\n }\n this.refreshAriaLabel();\n // only want to action if the user clicked the checkbox, not if we are setting the checkbox because\n // of a change in the model\n if (this.processingColumnStateChange) {\n return;\n }\n this.modelItemUtils.setColumn(this.column, nextState, 'toolPanelUi');\n };\n ToolPanelColumnComp.prototype.refreshAriaLabel = function () {\n var translate = this.localeService.getLocaleTextFunc();\n var columnLabel = translate('ariaColumn', 'Column');\n var state = this.cbSelect.getValue() ? translate('ariaVisible', 'visible') : translate('ariaHidden', 'hidden');\n var visibilityLabel = translate('ariaToggleVisibility', 'Press SPACE to toggle visibility');\n _.setAriaLabel(this.focusWrapper, this.displayName + \" \" + columnLabel);\n this.cbSelect.setInputAriaLabel(visibilityLabel + \" (\" + state + \")\");\n _.setAriaDescribedBy(this.focusWrapper, this.cbSelect.getInputElement().id);\n };\n ToolPanelColumnComp.prototype.setupDragging = function () {\n var _this = this;\n if (!this.allowDragging) {\n _.setDisplayed(this.eDragHandle, false);\n return;\n }\n var hideColumnOnExit = !this.gridOptionsService.is('suppressDragLeaveHidesColumns');\n var dragSource = {\n type: DragSourceType.ToolPanel,\n eElement: this.eDragHandle,\n dragItemName: this.displayName,\n getDefaultIconName: function () { return hideColumnOnExit ? DragAndDropService.ICON_HIDE : DragAndDropService.ICON_NOT_ALLOWED; },\n getDragItem: function () { return _this.createDragItem(); },\n onDragStarted: function () {\n hideColumnOnExit = !_this.gridOptionsService.is('suppressDragLeaveHidesColumns');\n var event = {\n type: Events.EVENT_COLUMN_PANEL_ITEM_DRAG_START,\n column: _this.column\n };\n _this.eventService.dispatchEvent(event);\n },\n onDragStopped: function () {\n var event = {\n type: Events.EVENT_COLUMN_PANEL_ITEM_DRAG_END\n };\n _this.eventService.dispatchEvent(event);\n },\n onGridEnter: function (dragItem) {\n if (hideColumnOnExit) {\n // when dragged into the grid, restore the state that was active pre-drag\n _this.modelItemUtils.updateColumns({\n columns: [_this.column],\n visibleState: dragItem === null || dragItem === void 0 ? void 0 : dragItem.visibleState,\n pivotState: dragItem === null || dragItem === void 0 ? void 0 : dragItem.pivotState,\n eventType: 'toolPanelUi'\n });\n }\n },\n onGridExit: function () {\n if (hideColumnOnExit) {\n // when dragged outside of the grid, mimic what happens when checkbox is disabled\n // this handles the behaviour for pivot which is different to just hiding a column.\n _this.onChangeCommon(false);\n }\n }\n };\n this.dragAndDropService.addDragSource(dragSource, true);\n this.addDestroyFunc(function () { return _this.dragAndDropService.removeDragSource(dragSource); });\n };\n ToolPanelColumnComp.prototype.createDragItem = function () {\n var _a, _b;\n var colId = this.column.getColId();\n var visibleState = (_a = {}, _a[colId] = this.column.isVisible(), _a);\n var pivotState = (_b = {}, _b[colId] = this.modelItemUtils.createPivotState(this.column), _b);\n return {\n columns: [this.column],\n visibleState: visibleState,\n pivotState: pivotState\n };\n };\n ToolPanelColumnComp.prototype.onColumnStateChanged = function () {\n this.processingColumnStateChange = true;\n var isPivotMode = this.columnModel.isPivotMode();\n if (isPivotMode) {\n // if reducing, checkbox means column is one of pivot, value or group\n var anyFunctionActive = this.column.isAnyFunctionActive();\n this.cbSelect.setValue(anyFunctionActive);\n }\n else {\n // if not reducing, the checkbox tells us if column is visible or not\n this.cbSelect.setValue(this.column.isVisible());\n }\n var canBeToggled = true;\n var canBeDragged = true;\n if (isPivotMode) {\n // when in pivot mode, the item should be read only if:\n // a) gui is not allowed make any changes\n var functionsReadOnly = this.gridOptionsService.is('functionsReadOnly');\n // b) column is not allow any functions on it\n var noFunctionsAllowed = !this.column.isAnyFunctionAllowed();\n canBeToggled = !functionsReadOnly && !noFunctionsAllowed;\n canBeDragged = canBeToggled;\n }\n else {\n var _a = this.column.getColDef(), enableRowGroup = _a.enableRowGroup, enableValue = _a.enableValue, lockPosition = _a.lockPosition, suppressMovable = _a.suppressMovable, lockVisible = _a.lockVisible;\n var forceDraggable = !!enableRowGroup || !!enableValue;\n var disableDraggable = !!lockPosition || !!suppressMovable;\n canBeToggled = !lockVisible;\n canBeDragged = forceDraggable || !disableDraggable;\n }\n this.cbSelect.setReadOnly(!canBeToggled);\n this.eDragHandle.classList.toggle('ag-column-select-column-readonly', !canBeDragged);\n this.addOrRemoveCssClass('ag-column-select-column-readonly', !canBeDragged && !canBeToggled);\n var checkboxPassive = isPivotMode && this.gridOptionsService.is('functionsPassive');\n this.cbSelect.setPassive(checkboxPassive);\n this.processingColumnStateChange = false;\n };\n ToolPanelColumnComp.prototype.getDisplayName = function () {\n return this.displayName;\n };\n ToolPanelColumnComp.prototype.onSelectAllChanged = function (value) {\n if (value !== this.cbSelect.getValue()) {\n if (!this.cbSelect.isReadOnly()) {\n this.cbSelect.toggle();\n }\n }\n };\n ToolPanelColumnComp.prototype.isSelected = function () {\n return this.cbSelect.getValue();\n };\n ToolPanelColumnComp.prototype.isSelectable = function () {\n return !this.cbSelect.isReadOnly();\n };\n ToolPanelColumnComp.prototype.isExpandable = function () {\n return false;\n };\n ToolPanelColumnComp.prototype.setExpanded = function (value) {\n console.warn('AG Grid: can not expand a column item that does not represent a column group header');\n };\n ToolPanelColumnComp.TEMPLATE = \"
\\n \\n \\n
\";\n __decorate$2t([\n Autowired('columnModel')\n ], ToolPanelColumnComp.prototype, \"columnModel\", void 0);\n __decorate$2t([\n Autowired('dragAndDropService')\n ], ToolPanelColumnComp.prototype, \"dragAndDropService\", void 0);\n __decorate$2t([\n Autowired('modelItemUtils')\n ], ToolPanelColumnComp.prototype, \"modelItemUtils\", void 0);\n __decorate$2t([\n RefSelector('eLabel')\n ], ToolPanelColumnComp.prototype, \"eLabel\", void 0);\n __decorate$2t([\n RefSelector('cbSelect')\n ], ToolPanelColumnComp.prototype, \"cbSelect\", void 0);\n __decorate$2t([\n PostConstruct\n ], ToolPanelColumnComp.prototype, \"init\", null);\n return ToolPanelColumnComp;\n}(Component));\n\nvar __extends$3i = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar UIColumnModel = /** @class */ (function () {\n function UIColumnModel(items) {\n this.items = items;\n }\n UIColumnModel.prototype.getRowCount = function () {\n return this.items.length;\n };\n UIColumnModel.prototype.getRow = function (index) {\n return this.items[index];\n };\n return UIColumnModel;\n}());\nvar PRIMARY_COLS_LIST_PANEL_CLASS = 'ag-column-select-list';\nvar PrimaryColsListPanel = /** @class */ (function (_super) {\n __extends$3i(PrimaryColsListPanel, _super);\n function PrimaryColsListPanel() {\n var _this = _super.call(this, PrimaryColsListPanel.TEMPLATE) || this;\n _this.destroyColumnItemFuncs = [];\n return _this;\n }\n PrimaryColsListPanel.prototype.destroyColumnTree = function () {\n this.allColsTree = [];\n this.destroyColumnItemFuncs.forEach(function (f) { return f(); });\n this.destroyColumnItemFuncs = [];\n };\n PrimaryColsListPanel.prototype.init = function (params, allowDragging, eventType) {\n var _this = this;\n this.params = params;\n this.allowDragging = allowDragging;\n this.eventType = eventType;\n if (!this.params.suppressSyncLayoutWithGrid) {\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_MOVED, this.onColumnsChanged.bind(this));\n }\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.onColumnsChanged.bind(this));\n var eventsImpactingCheckedState = [\n Events.EVENT_COLUMN_PIVOT_CHANGED,\n Events.EVENT_COLUMN_PIVOT_MODE_CHANGED,\n Events.EVENT_COLUMN_ROW_GROUP_CHANGED,\n Events.EVENT_COLUMN_VALUE_CHANGED,\n Events.EVENT_COLUMN_VISIBLE,\n Events.EVENT_NEW_COLUMNS_LOADED\n ];\n eventsImpactingCheckedState.forEach(function (event) {\n // update header select all checkbox with current selection state\n _this.addManagedListener(_this.eventService, event, _this.fireSelectionChangedEvent.bind(_this));\n });\n this.expandGroupsByDefault = !this.params.contractColumnSelection;\n var translate = this.localeService.getLocaleTextFunc();\n var columnListName = translate('ariaColumnList', 'Column List');\n this.virtualList = this.createManagedBean(new VirtualList({\n cssIdentifier: 'column-select',\n ariaRole: 'tree',\n listName: columnListName\n }));\n this.appendChild(this.virtualList.getGui());\n this.virtualList.setComponentCreator(function (item, listItemElement) {\n _.setAriaLevel(listItemElement, (item.getDept() + 1));\n return _this.createComponentFromItem(item, listItemElement);\n });\n if (this.columnModel.isReady()) {\n this.onColumnsChanged();\n }\n if (!params.suppressColumnMove && !this.gridOptionsService.is('suppressMovableColumns')) {\n this.createManagedBean(new PrimaryColsListPanelItemDragFeature(this, this.virtualList));\n }\n };\n PrimaryColsListPanel.prototype.createComponentFromItem = function (item, listItemElement) {\n if (item.isGroup()) {\n var renderedGroup = new ToolPanelColumnGroupComp(item, this.allowDragging, this.eventType, listItemElement);\n this.getContext().createBean(renderedGroup);\n return renderedGroup;\n }\n var columnComp = new ToolPanelColumnComp(item, this.allowDragging, this.groupsExist, listItemElement);\n this.getContext().createBean(columnComp);\n return columnComp;\n };\n PrimaryColsListPanel.prototype.onColumnsChanged = function () {\n var expandedStates = this.getExpandedStates();\n var pivotModeActive = this.columnModel.isPivotMode();\n var shouldSyncColumnLayoutWithGrid = !this.params.suppressSyncLayoutWithGrid && !pivotModeActive;\n if (shouldSyncColumnLayoutWithGrid) {\n this.buildTreeFromWhatGridIsDisplaying();\n }\n else {\n this.buildTreeFromProvidedColumnDefs();\n }\n this.setExpandedStates(expandedStates);\n this.markFilteredColumns();\n this.flattenAndFilterModel();\n };\n PrimaryColsListPanel.prototype.getDisplayedColsList = function () {\n return this.displayedColsList;\n };\n PrimaryColsListPanel.prototype.getExpandedStates = function () {\n if (!this.allColsTree) {\n return {};\n }\n var res = {};\n this.forEachItem(function (item) {\n if (!item.isGroup()) {\n return;\n }\n var colGroup = item.getColumnGroup();\n if (colGroup) { // group should always exist, this is defensive\n res[colGroup.getId()] = item.isExpanded();\n }\n });\n return res;\n };\n PrimaryColsListPanel.prototype.setExpandedStates = function (states) {\n if (!this.allColsTree) {\n return;\n }\n this.forEachItem(function (item) {\n if (!item.isGroup()) {\n return;\n }\n var colGroup = item.getColumnGroup();\n if (colGroup) { // group should always exist, this is defensive\n var expanded = states[colGroup.getId()];\n var groupExistedLastTime = expanded != null;\n if (groupExistedLastTime) {\n item.setExpanded(expanded);\n }\n }\n });\n };\n PrimaryColsListPanel.prototype.buildTreeFromWhatGridIsDisplaying = function () {\n this.colDefService.syncLayoutWithGrid(this.setColumnLayout.bind(this));\n };\n PrimaryColsListPanel.prototype.setColumnLayout = function (colDefs) {\n var columnTree = this.colDefService.createColumnTree(colDefs);\n this.buildListModel(columnTree);\n // using col defs to check if groups exist as it could be a custom layout\n this.groupsExist = colDefs.some(function (colDef) {\n return colDef && typeof colDef.children !== 'undefined';\n });\n this.markFilteredColumns();\n this.flattenAndFilterModel();\n };\n PrimaryColsListPanel.prototype.buildTreeFromProvidedColumnDefs = function () {\n // add column / group comps to tool panel\n this.buildListModel(this.columnModel.getPrimaryColumnTree());\n this.groupsExist = this.columnModel.isPrimaryColumnGroupsPresent();\n };\n PrimaryColsListPanel.prototype.buildListModel = function (columnTree) {\n var _this = this;\n var columnExpandedListener = this.onColumnExpanded.bind(this);\n var addListeners = function (item) {\n item.addEventListener(ColumnModelItem.EVENT_EXPANDED_CHANGED, columnExpandedListener);\n var removeFunc = item.removeEventListener.bind(item, ColumnModelItem.EVENT_EXPANDED_CHANGED, columnExpandedListener);\n _this.destroyColumnItemFuncs.push(removeFunc);\n };\n var recursivelyBuild = function (tree, dept, parentList) {\n tree.forEach(function (child) {\n if (child instanceof ProvidedColumnGroup) {\n createGroupItem(child, dept, parentList);\n }\n else {\n createColumnItem(child, dept, parentList);\n }\n });\n };\n var createGroupItem = function (columnGroup, dept, parentList) {\n var columnGroupDef = columnGroup.getColGroupDef();\n var skipThisGroup = columnGroupDef && columnGroupDef.suppressColumnsToolPanel;\n if (skipThisGroup) {\n return;\n }\n if (columnGroup.isPadding()) {\n recursivelyBuild(columnGroup.getChildren(), dept, parentList);\n return;\n }\n var displayName = _this.columnModel.getDisplayNameForProvidedColumnGroup(null, columnGroup, 'columnToolPanel');\n var item = new ColumnModelItem(displayName, columnGroup, dept, true, _this.expandGroupsByDefault);\n parentList.push(item);\n addListeners(item);\n recursivelyBuild(columnGroup.getChildren(), dept + 1, item.getChildren());\n };\n var createColumnItem = function (column, dept, parentList) {\n var skipThisColumn = column.getColDef() && column.getColDef().suppressColumnsToolPanel;\n if (skipThisColumn) {\n return;\n }\n var displayName = _this.columnModel.getDisplayNameForColumn(column, 'columnToolPanel');\n parentList.push(new ColumnModelItem(displayName, column, dept));\n };\n this.destroyColumnTree();\n recursivelyBuild(columnTree, 0, this.allColsTree);\n };\n PrimaryColsListPanel.prototype.onColumnExpanded = function () {\n this.flattenAndFilterModel();\n };\n PrimaryColsListPanel.prototype.flattenAndFilterModel = function () {\n var _this = this;\n this.displayedColsList = [];\n var recursiveFunc = function (item) {\n if (!item.isPassesFilter()) {\n return;\n }\n _this.displayedColsList.push(item);\n if (item.isGroup() && item.isExpanded()) {\n item.getChildren().forEach(recursiveFunc);\n }\n };\n this.allColsTree.forEach(recursiveFunc);\n this.virtualList.setModel(new UIColumnModel(this.displayedColsList));\n var focusedRow = this.virtualList.getLastFocusedRow();\n this.virtualList.refresh();\n if (focusedRow != null) {\n this.focusRowIfAlive(focusedRow);\n }\n this.notifyListeners();\n };\n PrimaryColsListPanel.prototype.focusRowIfAlive = function (rowIndex) {\n var _this = this;\n window.setTimeout(function () {\n if (_this.isAlive()) {\n _this.virtualList.focusRow(rowIndex);\n }\n }, 0);\n };\n PrimaryColsListPanel.prototype.forEachItem = function (callback) {\n var recursiveFunc = function (items) {\n items.forEach(function (item) {\n callback(item);\n if (item.isGroup()) {\n recursiveFunc(item.getChildren());\n }\n });\n };\n recursiveFunc(this.allColsTree);\n };\n PrimaryColsListPanel.prototype.doSetExpandedAll = function (value) {\n this.forEachItem(function (item) {\n if (item.isGroup()) {\n item.setExpanded(value);\n }\n });\n };\n PrimaryColsListPanel.prototype.setGroupsExpanded = function (expand, groupIds) {\n if (!groupIds) {\n this.doSetExpandedAll(expand);\n return;\n }\n var expandedGroupIds = [];\n this.forEachItem(function (item) {\n if (!item.isGroup()) {\n return;\n }\n var groupId = item.getColumnGroup().getId();\n if (groupIds.indexOf(groupId) >= 0) {\n item.setExpanded(expand);\n expandedGroupIds.push(groupId);\n }\n });\n var unrecognisedGroupIds = groupIds.filter(function (groupId) { return !_.includes(expandedGroupIds, groupId); });\n if (unrecognisedGroupIds.length > 0) {\n console.warn('AG Grid: unable to find group(s) for supplied groupIds:', unrecognisedGroupIds);\n }\n };\n PrimaryColsListPanel.prototype.getExpandState = function () {\n var expandedCount = 0;\n var notExpandedCount = 0;\n this.forEachItem(function (item) {\n if (!item.isGroup()) {\n return;\n }\n if (item.isExpanded()) {\n expandedCount++;\n }\n else {\n notExpandedCount++;\n }\n });\n if (expandedCount > 0 && notExpandedCount > 0) {\n return ExpandState.INDETERMINATE;\n }\n if (notExpandedCount > 0) {\n return ExpandState.COLLAPSED;\n }\n return ExpandState.EXPANDED;\n };\n PrimaryColsListPanel.prototype.doSetSelectedAll = function (selectAllChecked) {\n this.modelItemUtils.selectAllChildren(this.allColsTree, selectAllChecked, this.eventType);\n };\n PrimaryColsListPanel.prototype.getSelectionState = function () {\n var checkedCount = 0;\n var uncheckedCount = 0;\n var pivotMode = this.columnModel.isPivotMode();\n this.forEachItem(function (item) {\n if (item.isGroup()) {\n return;\n }\n if (!item.isPassesFilter()) {\n return;\n }\n var column = item.getColumn();\n var colDef = column.getColDef();\n var checked;\n if (pivotMode) {\n var noPivotModeOptionsAllowed = !column.isAllowPivot() && !column.isAllowRowGroup() && !column.isAllowValue();\n if (noPivotModeOptionsAllowed) {\n return;\n }\n checked = column.isValueActive() || column.isPivotActive() || column.isRowGroupActive();\n }\n else {\n if (colDef.lockVisible) {\n return;\n }\n checked = column.isVisible();\n }\n checked ? checkedCount++ : uncheckedCount++;\n });\n if (checkedCount > 0 && uncheckedCount > 0) {\n return undefined;\n }\n return !(checkedCount === 0 || uncheckedCount > 0);\n };\n PrimaryColsListPanel.prototype.setFilterText = function (filterText) {\n this.filterText = _.exists(filterText) ? filterText.toLowerCase() : null;\n this.markFilteredColumns();\n this.flattenAndFilterModel();\n };\n PrimaryColsListPanel.prototype.markFilteredColumns = function () {\n var _this = this;\n var passesFilter = function (item) {\n if (!_.exists(_this.filterText)) {\n return true;\n }\n var displayName = item.getDisplayName();\n return displayName == null || displayName.toLowerCase().indexOf(_this.filterText) !== -1;\n };\n var recursivelyCheckFilter = function (item, parentPasses) {\n var atLeastOneChildPassed = false;\n if (item.isGroup()) {\n var groupPasses_1 = passesFilter(item);\n item.getChildren().forEach(function (child) {\n var childPasses = recursivelyCheckFilter(child, groupPasses_1 || parentPasses);\n if (childPasses) {\n atLeastOneChildPassed = childPasses;\n }\n });\n }\n var filterPasses = (parentPasses || atLeastOneChildPassed) ? true : passesFilter(item);\n item.setPassesFilter(filterPasses);\n return filterPasses;\n };\n this.allColsTree.forEach(function (item) { return recursivelyCheckFilter(item, false); });\n };\n PrimaryColsListPanel.prototype.notifyListeners = function () {\n this.fireGroupExpandedEvent();\n this.fireSelectionChangedEvent();\n };\n PrimaryColsListPanel.prototype.fireGroupExpandedEvent = function () {\n var expandState = this.getExpandState();\n this.dispatchEvent({ type: 'groupExpanded', state: expandState });\n };\n PrimaryColsListPanel.prototype.fireSelectionChangedEvent = function () {\n var selectionState = this.getSelectionState();\n this.dispatchEvent({ type: 'selectionChanged', state: selectionState });\n };\n PrimaryColsListPanel.TEMPLATE = \"
\";\n __decorate$2s([\n Autowired('columnModel')\n ], PrimaryColsListPanel.prototype, \"columnModel\", void 0);\n __decorate$2s([\n Autowired('toolPanelColDefService')\n ], PrimaryColsListPanel.prototype, \"colDefService\", void 0);\n __decorate$2s([\n Autowired('modelItemUtils')\n ], PrimaryColsListPanel.prototype, \"modelItemUtils\", void 0);\n __decorate$2s([\n PreDestroy\n ], PrimaryColsListPanel.prototype, \"destroyColumnTree\", null);\n return PrimaryColsListPanel;\n}(Component));\n\nvar __extends$3h = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PivotModePanel = /** @class */ (function (_super) {\n __extends$3h(PivotModePanel, _super);\n function PivotModePanel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PivotModePanel.prototype.createTemplate = function () {\n return /* html */ \"
\\n \\n
\";\n };\n PivotModePanel.prototype.init = function () {\n this.setTemplate(this.createTemplate());\n this.cbPivotMode.setValue(this.columnModel.isPivotMode());\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n this.cbPivotMode.setLabel(localeTextFunc('pivotMode', 'Pivot Mode'));\n this.addManagedListener(this.cbPivotMode, Events.EVENT_FIELD_VALUE_CHANGED, this.onBtPivotMode.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.onPivotModeChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, this.onPivotModeChanged.bind(this));\n };\n PivotModePanel.prototype.onBtPivotMode = function () {\n var newValue = !!this.cbPivotMode.getValue();\n if (newValue !== this.columnModel.isPivotMode()) {\n this.columnModel.setPivotMode(newValue, \"toolPanelUi\");\n var api = this.gridOptionsService.api;\n if (api) {\n api.refreshHeader();\n }\n }\n };\n PivotModePanel.prototype.onPivotModeChanged = function () {\n var pivotModeActive = this.columnModel.isPivotMode();\n this.cbPivotMode.setValue(pivotModeActive);\n };\n __decorate$2r([\n Autowired('columnModel')\n ], PivotModePanel.prototype, \"columnModel\", void 0);\n __decorate$2r([\n RefSelector('cbPivotMode')\n ], PivotModePanel.prototype, \"cbPivotMode\", void 0);\n __decorate$2r([\n PreConstruct\n ], PivotModePanel.prototype, \"init\", null);\n return PivotModePanel;\n}(Component));\n\nvar __extends$3g = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AggregationStage = /** @class */ (function (_super) {\n __extends$3g(AggregationStage, _super);\n function AggregationStage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n // it's possible to recompute the aggregate without doing the other parts\n // + api.refreshClientSideRowModel('aggregate')\n AggregationStage.prototype.execute = function (params) {\n // if changed path is active, it means we came from a) change detection or b) transaction update.\n // for both of these, if no value columns are present, it means there is nothing to aggregate now\n // and there is no cleanup to be done (as value columns don't change between transactions or change\n // detections). if no value columns and no changed path, means we have to go through all nodes in\n // case we need to clean up agg data from before.\n var noValueColumns = _.missingOrEmpty(this.columnModel.getValueColumns());\n var noUserAgg = !this.gridOptionsService.getCallback('getGroupRowAgg');\n var changedPathActive = params.changedPath && params.changedPath.isActive();\n if (noValueColumns && noUserAgg && changedPathActive) {\n return;\n }\n var aggDetails = this.createAggDetails(params);\n this.recursivelyCreateAggData(aggDetails);\n };\n AggregationStage.prototype.createAggDetails = function (params) {\n var pivotActive = this.columnModel.isPivotActive();\n var measureColumns = this.columnModel.getValueColumns();\n var pivotColumns = pivotActive ? this.columnModel.getPivotColumns() : [];\n var aggDetails = {\n alwaysAggregateAtRootLevel: this.gridOptionsService.is('alwaysAggregateAtRootLevel'),\n groupIncludeTotalFooter: this.gridOptionsService.is('groupIncludeTotalFooter'),\n changedPath: params.changedPath,\n valueColumns: measureColumns,\n pivotColumns: pivotColumns,\n filteredOnly: !this.isSuppressAggFilteredOnly(),\n userAggFunc: this.gridOptionsService.getCallback('getGroupRowAgg'),\n };\n return aggDetails;\n };\n AggregationStage.prototype.isSuppressAggFilteredOnly = function () {\n var isGroupAggFiltering = this.gridOptionsService.getGroupAggFiltering() !== undefined;\n return isGroupAggFiltering || this.gridOptionsService.is('suppressAggFilteredOnly');\n };\n AggregationStage.prototype.recursivelyCreateAggData = function (aggDetails) {\n var _this = this;\n var callback = function (rowNode) {\n var hasNoChildren = !rowNode.hasChildren();\n if (hasNoChildren) {\n // this check is needed for TreeData, in case the node is no longer a child,\n // but it was a child previously.\n if (rowNode.aggData) {\n rowNode.setAggData(null);\n }\n // never agg data for leaf nodes\n return;\n }\n //Optionally enable the aggregation at the root Node\n var isRootNode = rowNode.level === -1;\n // if total footer is displayed, the value is in use\n if (isRootNode && !aggDetails.groupIncludeTotalFooter) {\n var notPivoting = !_this.columnModel.isPivotMode();\n if (!aggDetails.alwaysAggregateAtRootLevel && notPivoting) {\n return;\n }\n }\n _this.aggregateRowNode(rowNode, aggDetails);\n };\n aggDetails.changedPath.forEachChangedNodeDepthFirst(callback, true);\n };\n AggregationStage.prototype.aggregateRowNode = function (rowNode, aggDetails) {\n var measureColumnsMissing = aggDetails.valueColumns.length === 0;\n var pivotColumnsMissing = aggDetails.pivotColumns.length === 0;\n var aggResult;\n if (aggDetails.userAggFunc) {\n aggResult = aggDetails.userAggFunc({ nodes: rowNode.childrenAfterFilter });\n }\n else if (measureColumnsMissing) {\n aggResult = null;\n }\n else if (pivotColumnsMissing) {\n aggResult = this.aggregateRowNodeUsingValuesOnly(rowNode, aggDetails);\n }\n else {\n aggResult = this.aggregateRowNodeUsingValuesAndPivot(rowNode);\n }\n rowNode.setAggData(aggResult);\n // if we are grouping, then it's possible there is a sibling footer\n // to the group, so update the data here also if there is one\n if (rowNode.sibling) {\n rowNode.sibling.setAggData(aggResult);\n }\n };\n AggregationStage.prototype.aggregateRowNodeUsingValuesAndPivot = function (rowNode) {\n var _this = this;\n var _a;\n var result = {};\n var secondaryColumns = (_a = this.columnModel.getSecondaryColumns()) !== null && _a !== void 0 ? _a : [];\n secondaryColumns.forEach(function (secondaryCol) {\n var _a = secondaryCol.getColDef(), pivotValueColumn = _a.pivotValueColumn, pivotTotalColumnIds = _a.pivotTotalColumnIds, colId = _a.colId, pivotKeys = _a.pivotKeys;\n if (_.exists(pivotTotalColumnIds)) {\n return;\n }\n var keys = pivotKeys !== null && pivotKeys !== void 0 ? pivotKeys : [];\n var values;\n if (rowNode.leafGroup) {\n // lowest level group, get the values from the mapped set\n values = _this.getValuesFromMappedSet(rowNode.childrenMapped, keys, pivotValueColumn);\n }\n else {\n // value columns and pivot columns, non-leaf group\n values = _this.getValuesPivotNonLeaf(rowNode, colId);\n }\n result[colId] = _this.aggregateValues(values, pivotValueColumn.getAggFunc(), pivotValueColumn, rowNode, secondaryCol);\n });\n secondaryColumns.forEach(function (secondaryCol) {\n var _a = secondaryCol.getColDef(), pivotValueColumn = _a.pivotValueColumn, pivotTotalColumnIds = _a.pivotTotalColumnIds, colId = _a.colId;\n if (!_.exists(pivotTotalColumnIds)) {\n return;\n }\n var aggResults = [];\n //retrieve results for colIds associated with this pivot total column\n if (!pivotTotalColumnIds || !pivotTotalColumnIds.length) {\n return;\n }\n pivotTotalColumnIds.forEach(function (currentColId) {\n aggResults.push(result[currentColId]);\n });\n result[colId] = _this.aggregateValues(aggResults, pivotValueColumn.getAggFunc(), pivotValueColumn, rowNode, secondaryCol);\n });\n return result;\n };\n AggregationStage.prototype.aggregateRowNodeUsingValuesOnly = function (rowNode, aggDetails) {\n var _this = this;\n var result = {};\n var changedValueColumns = aggDetails.changedPath.isActive() ?\n aggDetails.changedPath.getValueColumnsForNode(rowNode, aggDetails.valueColumns)\n : aggDetails.valueColumns;\n var notChangedValueColumns = aggDetails.changedPath.isActive() ?\n aggDetails.changedPath.getNotValueColumnsForNode(rowNode, aggDetails.valueColumns)\n : null;\n var values2d = this.getValuesNormal(rowNode, changedValueColumns, aggDetails.filteredOnly);\n var oldValues = rowNode.aggData;\n changedValueColumns.forEach(function (valueColumn, index) {\n result[valueColumn.getId()] = _this.aggregateValues(values2d[index], valueColumn.getAggFunc(), valueColumn, rowNode);\n });\n if (notChangedValueColumns && oldValues) {\n notChangedValueColumns.forEach(function (valueColumn) {\n result[valueColumn.getId()] = oldValues[valueColumn.getId()];\n });\n }\n return result;\n };\n AggregationStage.prototype.getValuesPivotNonLeaf = function (rowNode, colId) {\n var values = [];\n rowNode.childrenAfterFilter.forEach(function (node) {\n var value = node.aggData[colId];\n values.push(value);\n });\n return values;\n };\n AggregationStage.prototype.getValuesFromMappedSet = function (mappedSet, keys, valueColumn) {\n var _this = this;\n var mapPointer = mappedSet;\n keys.forEach(function (key) { return (mapPointer = mapPointer ? mapPointer[key] : null); });\n if (!mapPointer) {\n return [];\n }\n var values = [];\n mapPointer.forEach(function (rowNode) {\n var value = _this.valueService.getValue(valueColumn, rowNode);\n values.push(value);\n });\n return values;\n };\n AggregationStage.prototype.getValuesNormal = function (rowNode, valueColumns, filteredOnly) {\n // create 2d array, of all values for all valueColumns\n var values = [];\n valueColumns.forEach(function () { return values.push([]); });\n var valueColumnCount = valueColumns.length;\n var nodeList = filteredOnly ? rowNode.childrenAfterFilter : rowNode.childrenAfterGroup;\n var rowCount = nodeList.length;\n for (var i = 0; i < rowCount; i++) {\n var childNode = nodeList[i];\n for (var j = 0; j < valueColumnCount; j++) {\n var valueColumn = valueColumns[j];\n // if the row is a group, then it will only have an agg result value,\n // which means valueGetter is never used.\n var value = this.valueService.getValue(valueColumn, childNode);\n values[j].push(value);\n }\n }\n return values;\n };\n AggregationStage.prototype.aggregateValues = function (values, aggFuncOrString, column, rowNode, pivotResultColumn) {\n var aggFunc = typeof aggFuncOrString === 'string' ?\n this.aggFuncService.getAggFunc(aggFuncOrString) :\n aggFuncOrString;\n if (typeof aggFunc !== 'function') {\n console.error(\"AG Grid: unrecognised aggregation function \" + aggFuncOrString);\n return null;\n }\n var aggFuncAny = aggFunc;\n var params = {\n values: values,\n column: column,\n colDef: column ? column.getColDef() : undefined,\n pivotResultColumn: pivotResultColumn,\n rowNode: rowNode,\n data: rowNode ? rowNode.data : undefined,\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context,\n }; // the \"as any\" is needed to allow the deprecation warning messages\n return aggFuncAny(params);\n };\n __decorate$2q([\n Autowired('columnModel')\n ], AggregationStage.prototype, \"columnModel\", void 0);\n __decorate$2q([\n Autowired('valueService')\n ], AggregationStage.prototype, \"valueService\", void 0);\n __decorate$2q([\n Autowired('aggFuncService')\n ], AggregationStage.prototype, \"aggFuncService\", void 0);\n AggregationStage = __decorate$2q([\n Bean('aggregationStage')\n ], AggregationStage);\n return AggregationStage;\n}(BeanStub));\n\nvar BatchRemover = /** @class */ (function () {\n function BatchRemover() {\n this.allSets = {};\n this.allParents = [];\n }\n BatchRemover.prototype.removeFromChildrenAfterGroup = function (parent, child) {\n var set = this.getSet(parent);\n set.removeFromChildrenAfterGroup[child.id] = true;\n };\n BatchRemover.prototype.isRemoveFromAllLeafChildren = function (parent, child) {\n var set = this.getSet(parent);\n return !!set.removeFromAllLeafChildren[child.id];\n };\n BatchRemover.prototype.preventRemoveFromAllLeafChildren = function (parent, child) {\n var set = this.getSet(parent);\n delete set.removeFromAllLeafChildren[child.id];\n };\n BatchRemover.prototype.removeFromAllLeafChildren = function (parent, child) {\n var set = this.getSet(parent);\n set.removeFromAllLeafChildren[child.id] = true;\n };\n BatchRemover.prototype.getSet = function (parent) {\n if (!this.allSets[parent.id]) {\n this.allSets[parent.id] = {\n removeFromAllLeafChildren: {},\n removeFromChildrenAfterGroup: {}\n };\n this.allParents.push(parent);\n }\n return this.allSets[parent.id];\n };\n BatchRemover.prototype.getAllParents = function () {\n return this.allParents;\n };\n BatchRemover.prototype.flush = function () {\n var _this = this;\n this.allParents.forEach(function (parent) {\n var nodeDetails = _this.allSets[parent.id];\n parent.childrenAfterGroup = parent.childrenAfterGroup.filter(function (child) { return !nodeDetails.removeFromChildrenAfterGroup[child.id]; });\n parent.allLeafChildren = parent.allLeafChildren.filter(function (child) { return !nodeDetails.removeFromAllLeafChildren[child.id]; });\n parent.updateHasChildren();\n if (parent.sibling) {\n parent.sibling.childrenAfterGroup = parent.childrenAfterGroup;\n parent.sibling.allLeafChildren = parent.allLeafChildren;\n }\n });\n this.allSets = {};\n this.allParents.length = 0;\n };\n return BatchRemover;\n}());\n\nvar __extends$3f = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$1k = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$P = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar GroupStage = /** @class */ (function (_super) {\n __extends$3f(GroupStage, _super);\n function GroupStage() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // we use a sequence variable so that each time we do a grouping, we don't\n // reuse the ids - otherwise the rowRenderer will confuse rowNodes between redraws\n // when it tries to animate between rows.\n _this.groupIdSequence = new NumberSequence();\n return _this;\n }\n GroupStage.prototype.execute = function (params) {\n var details = this.createGroupingDetails(params);\n if (details.transactions) {\n this.handleTransaction(details);\n }\n else {\n var afterColsChanged = params.afterColumnsChanged === true;\n this.shotgunResetEverything(details, afterColsChanged);\n }\n if (!details.usingTreeData) {\n // we don't do group sorting for tree data\n this.positionLeafsAndGroups(params.changedPath);\n this.orderGroups(details);\n }\n this.selectableService.updateSelectableAfterGrouping(details.rootNode);\n };\n GroupStage.prototype.positionLeafsAndGroups = function (changedPath) {\n changedPath.forEachChangedNodeDepthFirst(function (group) {\n if (group.childrenAfterGroup) {\n var leafNodes_1 = [];\n var groupNodes_1 = [];\n var unbalancedNode_1;\n group.childrenAfterGroup.forEach(function (row) {\n var _a;\n if (!((_a = row.childrenAfterGroup) === null || _a === void 0 ? void 0 : _a.length)) {\n leafNodes_1.push(row);\n }\n else {\n if (row.key === '' && !unbalancedNode_1) {\n unbalancedNode_1 = row;\n }\n else {\n groupNodes_1.push(row);\n }\n }\n });\n if (unbalancedNode_1) {\n groupNodes_1.push(unbalancedNode_1);\n }\n group.childrenAfterGroup = __spreadArray$P(__spreadArray$P([], __read$1k(leafNodes_1)), __read$1k(groupNodes_1));\n }\n }, false);\n };\n GroupStage.prototype.createGroupingDetails = function (params) {\n var rowNode = params.rowNode, changedPath = params.changedPath, rowNodeTransactions = params.rowNodeTransactions, rowNodeOrder = params.rowNodeOrder;\n var usingTreeData = this.gridOptionsService.is('treeData');\n var groupedCols = usingTreeData ? null : this.columnModel.getRowGroupColumns();\n var details = {\n // someone complained that the parent attribute was causing some change detection\n // to break in an angular add-on. Taking the parent out breaks a cyclic dependency, hence this flag got introduced.\n includeParents: !this.gridOptionsService.is('suppressParentsInRowNodes'),\n expandByDefault: this.gridOptionsService.getNum('groupDefaultExpanded'),\n groupedCols: groupedCols,\n rootNode: rowNode,\n pivotMode: this.columnModel.isPivotMode(),\n groupedColCount: usingTreeData || !groupedCols ? 0 : groupedCols.length,\n rowNodeOrder: rowNodeOrder,\n transactions: rowNodeTransactions,\n // if no transaction, then it's shotgun, changed path would be 'not active' at this point anyway\n changedPath: changedPath,\n groupAllowUnbalanced: this.gridOptionsService.is('groupAllowUnbalanced'),\n isGroupOpenByDefault: this.gridOptionsService.getCallback('isGroupOpenByDefault'),\n initialGroupOrderComparator: this.gridOptionsService.getCallback('initialGroupOrderComparator'),\n createGroupFooter: this.gridOptionsService.isGroupIncludeFooterTrueOrCallback(),\n usingTreeData: usingTreeData,\n getDataPath: usingTreeData ? this.gridOptionsService.get('getDataPath') : undefined\n };\n return details;\n };\n GroupStage.prototype.handleTransaction = function (details) {\n var _this = this;\n details.transactions.forEach(function (tran) {\n // we don't allow batch remover for tree data as tree data uses Filler Nodes,\n // and creating/deleting filler nodes needs to be done alongside the node deleting\n // and moving. if we want to Batch Remover working with tree data then would need\n // to consider how Filler Nodes would be impacted (it's possible that it can be easily\n // modified to work, however for now I don't have the brain energy to work it all out).\n var batchRemover = !details.usingTreeData ? new BatchRemover() : undefined;\n // the order here of [add, remove, update] needs to be the same as in ClientSideNodeManager,\n // as the order is important when a record with the same id is added and removed in the same\n // transaction.\n if (_.existsAndNotEmpty(tran.remove)) {\n _this.removeNodes(tran.remove, details, batchRemover);\n }\n if (_.existsAndNotEmpty(tran.update)) {\n _this.moveNodesInWrongPath(tran.update, details, batchRemover);\n }\n if (_.existsAndNotEmpty(tran.add)) {\n _this.insertNodes(tran.add, details, false);\n }\n // must flush here, and not allow another transaction to be applied,\n // as each transaction must finish leaving the data in a consistent state.\n if (batchRemover) {\n var parentsWithChildrenRemoved = batchRemover.getAllParents().slice();\n batchRemover.flush();\n _this.removeEmptyGroups(parentsWithChildrenRemoved, details);\n }\n });\n if (details.rowNodeOrder) {\n this.sortChildren(details);\n }\n };\n // this is used when doing delta updates, eg Redux, keeps nodes in right order\n GroupStage.prototype.sortChildren = function (details) {\n details.changedPath.forEachChangedNodeDepthFirst(function (node) {\n if (!node.childrenAfterGroup) {\n return;\n }\n var didSort = _.sortRowNodesByOrder(node.childrenAfterGroup, details.rowNodeOrder);\n if (didSort) {\n details.changedPath.addParentNode(node);\n }\n }, false, true);\n };\n GroupStage.prototype.orderGroups = function (details) {\n var comparator = details.initialGroupOrderComparator;\n if (_.exists(comparator)) {\n recursiveSort(details.rootNode);\n }\n function recursiveSort(rowNode) {\n var doSort = _.exists(rowNode.childrenAfterGroup) &&\n // we only want to sort groups, so we do not sort leafs (a leaf group has leafs as children)\n !rowNode.leafGroup;\n if (doSort) {\n rowNode.childrenAfterGroup.sort(function (nodeA, nodeB) { return comparator({ nodeA: nodeA, nodeB: nodeB }); });\n rowNode.childrenAfterGroup.forEach(function (childNode) { return recursiveSort(childNode); });\n }\n }\n };\n GroupStage.prototype.getExistingPathForNode = function (node, details) {\n var res = [];\n // when doing tree data, the node is part of the path,\n // but when doing grid grouping, the node is not part of the path so we start with the parent.\n var pointer = details.usingTreeData ? node : node.parent;\n while (pointer && pointer !== details.rootNode) {\n res.push({\n key: pointer.key,\n rowGroupColumn: pointer.rowGroupColumn,\n field: pointer.field\n });\n pointer = pointer.parent;\n }\n res.reverse();\n return res;\n };\n GroupStage.prototype.moveNodesInWrongPath = function (childNodes, details, batchRemover) {\n var _this = this;\n childNodes.forEach(function (childNode) {\n // we add node, even if parent has not changed, as the data could have\n // changed, hence aggregations will be wrong\n if (details.changedPath.isActive()) {\n details.changedPath.addParentNode(childNode.parent);\n }\n var infoToKeyMapper = function (item) { return item.key; };\n var oldPath = _this.getExistingPathForNode(childNode, details).map(infoToKeyMapper);\n var newPath = _this.getGroupInfo(childNode, details).map(infoToKeyMapper);\n var nodeInCorrectPath = _.areEqual(oldPath, newPath);\n if (!nodeInCorrectPath) {\n _this.moveNode(childNode, details, batchRemover);\n }\n });\n };\n GroupStage.prototype.moveNode = function (childNode, details, batchRemover) {\n this.removeNodesInStages([childNode], details, batchRemover);\n this.insertOneNode(childNode, details, true, batchRemover);\n // hack - if we didn't do this, then renaming a tree item (ie changing rowNode.key) wouldn't get\n // refreshed into the gui.\n // this is needed to kick off the event that rowComp listens to for refresh. this in turn\n // then will get each cell in the row to refresh - which is what we need as we don't know which\n // columns will be displaying the rowNode.key info.\n childNode.setData(childNode.data);\n // we add both old and new parents to changed path, as both will need to be refreshed.\n // we already added the old parent (in calling method), so just add the new parent here\n if (details.changedPath.isActive()) {\n var newParent = childNode.parent;\n details.changedPath.addParentNode(newParent);\n }\n };\n GroupStage.prototype.removeNodes = function (leafRowNodes, details, batchRemover) {\n this.removeNodesInStages(leafRowNodes, details, batchRemover);\n if (details.changedPath.isActive()) {\n leafRowNodes.forEach(function (rowNode) { return details.changedPath.addParentNode(rowNode.parent); });\n }\n };\n GroupStage.prototype.removeNodesInStages = function (leafRowNodes, details, batchRemover) {\n this.removeNodesFromParents(leafRowNodes, details, batchRemover);\n if (details.usingTreeData) {\n this.postRemoveCreateFillerNodes(leafRowNodes, details);\n // When not TreeData, then removeEmptyGroups is called just before the BatchRemover is flushed.\n // However for TreeData, there is no BatchRemover, so we have to call removeEmptyGroups here.\n var nodeParents = leafRowNodes.map(function (n) { return n.parent; });\n this.removeEmptyGroups(nodeParents, details);\n }\n };\n GroupStage.prototype.forEachParentGroup = function (details, group, callback) {\n var pointer = group;\n while (pointer && pointer !== details.rootNode) {\n callback(pointer);\n pointer = pointer.parent;\n }\n };\n GroupStage.prototype.removeNodesFromParents = function (nodesToRemove, details, provided) {\n var _this = this;\n // this method can be called with BatchRemover as optional. if it is missed, we created a local version\n // and flush it at the end. if one is provided, we add to the provided one and it gets flushed elsewhere.\n var batchRemoverIsLocal = provided == null;\n var batchRemoverToUse = provided ? provided : new BatchRemover();\n nodesToRemove.forEach(function (nodeToRemove) {\n _this.removeFromParent(nodeToRemove, batchRemoverToUse);\n // remove from allLeafChildren. we clear down all parents EXCEPT the Root Node, as\n // the ClientSideNodeManager is responsible for the Root Node.\n _this.forEachParentGroup(details, nodeToRemove.parent, function (parentNode) {\n batchRemoverToUse.removeFromAllLeafChildren(parentNode, nodeToRemove);\n });\n });\n if (batchRemoverIsLocal) {\n batchRemoverToUse.flush();\n }\n };\n GroupStage.prototype.postRemoveCreateFillerNodes = function (nodesToRemove, details) {\n var _this = this;\n nodesToRemove.forEach(function (nodeToRemove) {\n // if not group, and children are present, need to move children to a group.\n // otherwise if no children, we can just remove without replacing.\n var replaceWithGroup = nodeToRemove.hasChildren();\n if (replaceWithGroup) {\n var oldPath = _this.getExistingPathForNode(nodeToRemove, details);\n // because we just removed the userGroup, this will always return new support group\n var newGroupNode_1 = _this.findParentForNode(nodeToRemove, oldPath, details);\n // these properties are the ones that will be incorrect in the newly created group,\n // so copy them from the old childNode\n newGroupNode_1.expanded = nodeToRemove.expanded;\n newGroupNode_1.allLeafChildren = nodeToRemove.allLeafChildren;\n newGroupNode_1.childrenAfterGroup = nodeToRemove.childrenAfterGroup;\n newGroupNode_1.childrenMapped = nodeToRemove.childrenMapped;\n newGroupNode_1.updateHasChildren();\n newGroupNode_1.childrenAfterGroup.forEach(function (rowNode) { return rowNode.parent = newGroupNode_1; });\n }\n });\n };\n GroupStage.prototype.removeEmptyGroups = function (possibleEmptyGroups, details) {\n var _this = this;\n // we do this multiple times, as when we remove groups, that means the parent of just removed\n // group can then be empty. to get around this, if we remove, then we check everything again for\n // newly emptied groups. the max number of times this will execute is the depth of the group tree.\n var checkAgain = true;\n var groupShouldBeRemoved = function (rowNode) {\n // because of the while loop below, it's possible we already moved the node,\n // so double check before trying to remove again.\n var mapKey = _this.getChildrenMappedKey(rowNode.key, rowNode.rowGroupColumn);\n var parentRowNode = rowNode.parent;\n var groupAlreadyRemoved = (parentRowNode && parentRowNode.childrenMapped) ?\n !parentRowNode.childrenMapped[mapKey] : true;\n if (groupAlreadyRemoved) {\n // if not linked, then group was already removed\n return false;\n }\n // if still not removed, then we remove if this group is empty\n return !!rowNode.isEmptyRowGroupNode();\n };\n var _loop_1 = function () {\n checkAgain = false;\n var batchRemover = new BatchRemover();\n possibleEmptyGroups.forEach(function (possibleEmptyGroup) {\n // remove empty groups\n _this.forEachParentGroup(details, possibleEmptyGroup, function (rowNode) {\n if (groupShouldBeRemoved(rowNode)) {\n checkAgain = true;\n _this.removeFromParent(rowNode, batchRemover);\n // we remove selection on filler nodes here, as the selection would not be removed\n // from the RowNodeManager, as filler nodes don't exist on the RowNodeManager\n rowNode.setSelectedParams({ newValue: false, source: 'rowGroupChanged' });\n }\n });\n });\n batchRemover.flush();\n };\n while (checkAgain) {\n _loop_1();\n }\n };\n // removes the node from the parent by:\n // a) removing from childrenAfterGroup (using batchRemover if present, otherwise immediately)\n // b) removing from childrenMapped (immediately)\n // c) setRowTop(null) - as the rowRenderer uses this to know the RowNode is no longer needed\n // d) setRowIndex(null) - as the rowNode will no longer be displayed.\n GroupStage.prototype.removeFromParent = function (child, batchRemover) {\n if (child.parent) {\n if (batchRemover) {\n batchRemover.removeFromChildrenAfterGroup(child.parent, child);\n }\n else {\n _.removeFromArray(child.parent.childrenAfterGroup, child);\n child.parent.updateHasChildren();\n }\n }\n var mapKey = this.getChildrenMappedKey(child.key, child.rowGroupColumn);\n if (child.parent && child.parent.childrenMapped) {\n child.parent.childrenMapped[mapKey] = undefined;\n }\n // this is important for transition, see rowComp removeFirstPassFuncs. when doing animation and\n // remove, if rowTop is still present, the rowComp thinks it's just moved position.\n child.setRowTop(null);\n child.setRowIndex(null);\n };\n GroupStage.prototype.addToParent = function (child, parent) {\n var mapKey = this.getChildrenMappedKey(child.key, child.rowGroupColumn);\n if (parent) {\n var children = parent.childrenMapped != null;\n if (children) {\n parent.childrenMapped[mapKey] = child;\n }\n parent.childrenAfterGroup.push(child);\n parent.updateHasChildren();\n }\n };\n GroupStage.prototype.areGroupColsEqual = function (d1, d2) {\n if (d1 == null || d2 == null || d1.pivotMode !== d2.pivotMode) {\n return false;\n }\n return _.areEqual(d1.groupedCols, d2.groupedCols);\n };\n GroupStage.prototype.checkAllGroupDataAfterColsChanged = function (details) {\n var _this = this;\n var recurse = function (rowNodes) {\n if (!rowNodes) {\n return;\n }\n rowNodes.forEach(function (rowNode) {\n var isLeafNode = !details.usingTreeData && !rowNode.group;\n if (isLeafNode) {\n return;\n }\n var groupInfo = {\n field: rowNode.field,\n key: rowNode.key,\n rowGroupColumn: rowNode.rowGroupColumn\n };\n _this.setGroupData(rowNode, groupInfo, details);\n recurse(rowNode.childrenAfterGroup);\n });\n };\n recurse(details.rootNode.childrenAfterGroup);\n };\n GroupStage.prototype.shotgunResetEverything = function (details, afterColumnsChanged) {\n if (this.noChangeInGroupingColumns(details, afterColumnsChanged)) {\n return;\n }\n // groups are about to get disposed, so need to deselect any that are selected\n this.selectionService.filterFromSelection(function (node) { return node && !node.group; });\n var rootNode = details.rootNode, groupedCols = details.groupedCols;\n // because we are not creating the root node each time, we have the logic\n // here to change leafGroup once.\n // we set .leafGroup to false for tree data, as .leafGroup is only used when pivoting, and pivoting\n // isn't allowed with treeData, so the grid never actually use .leafGroup when doing treeData.\n rootNode.leafGroup = details.usingTreeData ? false : groupedCols.length === 0;\n // we are doing everything from scratch, so reset childrenAfterGroup and childrenMapped from the rootNode\n rootNode.childrenAfterGroup = [];\n rootNode.childrenMapped = {};\n rootNode.updateHasChildren();\n var sibling = rootNode.sibling;\n if (sibling) {\n sibling.childrenAfterGroup = rootNode.childrenAfterGroup;\n sibling.childrenMapped = rootNode.childrenMapped;\n }\n this.insertNodes(rootNode.allLeafChildren, details, false);\n };\n GroupStage.prototype.noChangeInGroupingColumns = function (details, afterColumnsChanged) {\n var noFurtherProcessingNeeded = false;\n var groupDisplayColumns = this.columnModel.getGroupDisplayColumns();\n var newGroupDisplayColIds = groupDisplayColumns ?\n groupDisplayColumns.map(function (c) { return c.getId(); }).join('-') : '';\n if (afterColumnsChanged) {\n // we only need to redo grouping if doing normal grouping (ie not tree data)\n // and the group cols have changed.\n noFurtherProcessingNeeded = details.usingTreeData || this.areGroupColsEqual(details, this.oldGroupingDetails);\n // if the group display cols have changed, then we need to update rowNode.groupData\n // (regardless of tree data or row grouping)\n if (this.oldGroupDisplayColIds !== newGroupDisplayColIds) {\n this.checkAllGroupDataAfterColsChanged(details);\n }\n }\n this.oldGroupingDetails = details;\n this.oldGroupDisplayColIds = newGroupDisplayColIds;\n return noFurtherProcessingNeeded;\n };\n GroupStage.prototype.insertNodes = function (newRowNodes, details, isMove) {\n var _this = this;\n newRowNodes.forEach(function (rowNode) {\n _this.insertOneNode(rowNode, details, isMove);\n if (details.changedPath.isActive()) {\n details.changedPath.addParentNode(rowNode.parent);\n }\n });\n };\n GroupStage.prototype.insertOneNode = function (childNode, details, isMove, batchRemover) {\n var path = this.getGroupInfo(childNode, details);\n var parentGroup = this.findParentForNode(childNode, path, details, batchRemover);\n if (!parentGroup.group) {\n console.warn(\"AG Grid: duplicate group keys for row data, keys should be unique\", [parentGroup.data, childNode.data]);\n }\n if (details.usingTreeData) {\n this.swapGroupWithUserNode(parentGroup, childNode, isMove);\n }\n else {\n childNode.parent = parentGroup;\n childNode.level = path.length;\n parentGroup.childrenAfterGroup.push(childNode);\n parentGroup.updateHasChildren();\n }\n };\n GroupStage.prototype.findParentForNode = function (childNode, path, details, batchRemover) {\n var _this = this;\n var nextNode = details.rootNode;\n path.forEach(function (groupInfo, level) {\n nextNode = _this.getOrCreateNextNode(nextNode, groupInfo, level, details);\n // node gets added to all group nodes.\n // note: we do not add to rootNode here, as the rootNode is the master list of rowNodes\n if (!(batchRemover === null || batchRemover === void 0 ? void 0 : batchRemover.isRemoveFromAllLeafChildren(nextNode, childNode))) {\n nextNode.allLeafChildren.push(childNode);\n }\n else {\n // if this node is about to be removed, prevent that\n batchRemover === null || batchRemover === void 0 ? void 0 : batchRemover.preventRemoveFromAllLeafChildren(nextNode, childNode);\n }\n });\n return nextNode;\n };\n GroupStage.prototype.swapGroupWithUserNode = function (fillerGroup, userGroup, isMove) {\n userGroup.parent = fillerGroup.parent;\n userGroup.key = fillerGroup.key;\n userGroup.field = fillerGroup.field;\n userGroup.groupData = fillerGroup.groupData;\n userGroup.level = fillerGroup.level;\n // AG-3441 - preserve the existing expanded status of the node if we're moving it, so that\n // you can drag a sub tree from one parent to another without changing its expansion\n if (!isMove) {\n userGroup.expanded = fillerGroup.expanded;\n }\n // we set .leafGroup to false for tree data, as .leafGroup is only used when pivoting, and pivoting\n // isn't allowed with treeData, so the grid never actually use .leafGroup when doing treeData.\n userGroup.leafGroup = fillerGroup.leafGroup;\n // always null for userGroups, as row grouping is not allowed when doing tree data\n userGroup.rowGroupIndex = fillerGroup.rowGroupIndex;\n userGroup.allLeafChildren = fillerGroup.allLeafChildren;\n userGroup.childrenAfterGroup = fillerGroup.childrenAfterGroup;\n userGroup.childrenMapped = fillerGroup.childrenMapped;\n userGroup.sibling = fillerGroup.sibling;\n userGroup.updateHasChildren();\n this.removeFromParent(fillerGroup);\n userGroup.childrenAfterGroup.forEach(function (rowNode) { return rowNode.parent = userGroup; });\n this.addToParent(userGroup, fillerGroup.parent);\n };\n GroupStage.prototype.getOrCreateNextNode = function (parentGroup, groupInfo, level, details) {\n var key = this.getChildrenMappedKey(groupInfo.key, groupInfo.rowGroupColumn);\n var nextNode = parentGroup.childrenMapped ? parentGroup.childrenMapped[key] : undefined;\n if (!nextNode) {\n nextNode = this.createGroup(groupInfo, parentGroup, level, details);\n // attach the new group to the parent\n this.addToParent(nextNode, parentGroup);\n }\n return nextNode;\n };\n GroupStage.prototype.createGroup = function (groupInfo, parent, level, details) {\n var groupNode = new RowNode(this.beans);\n groupNode.group = true;\n groupNode.field = groupInfo.field;\n groupNode.rowGroupColumn = groupInfo.rowGroupColumn;\n this.setGroupData(groupNode, groupInfo, details);\n // we put 'row-group-' before the group id, so it doesn't clash with standard row id's. we also use 't-' and 'b-'\n // for top pinned and bottom pinned rows.\n groupNode.id = RowNode.ID_PREFIX_ROW_GROUP + this.groupIdSequence.next();\n groupNode.key = groupInfo.key;\n groupNode.level = level;\n groupNode.leafGroup = details.usingTreeData ? false : level === (details.groupedColCount - 1);\n groupNode.allLeafChildren = [];\n // why is this done here? we are not updating the children count as we go,\n // i suspect this is updated in the filter stage\n groupNode.setAllChildrenCount(0);\n groupNode.rowGroupIndex = details.usingTreeData ? null : level;\n groupNode.childrenAfterGroup = [];\n groupNode.childrenMapped = {};\n groupNode.updateHasChildren();\n groupNode.parent = details.includeParents ? parent : null;\n this.setExpandedInitialValue(details, groupNode);\n return groupNode;\n };\n GroupStage.prototype.setGroupData = function (groupNode, groupInfo, details) {\n groupNode.groupData = {};\n var groupDisplayCols = this.columnModel.getGroupDisplayColumns();\n groupDisplayCols.forEach(function (col) {\n // newGroup.rowGroupColumn=null when working off GroupInfo, and we always display the group in the group column\n // if rowGroupColumn is present, then it's grid row grouping and we only include if configuration says so\n var displayGroupForCol = details.usingTreeData || (groupNode.rowGroupColumn ? col.isRowGroupDisplayed(groupNode.rowGroupColumn.getId()) : false);\n if (displayGroupForCol) {\n groupNode.groupData[col.getColId()] = groupInfo.key;\n }\n });\n };\n GroupStage.prototype.getChildrenMappedKey = function (key, rowGroupColumn) {\n if (rowGroupColumn) {\n // grouping by columns\n return rowGroupColumn.getId() + '-' + key;\n }\n // tree data - we don't have rowGroupColumns\n return key;\n };\n GroupStage.prototype.setExpandedInitialValue = function (details, groupNode) {\n // if pivoting the leaf group is never expanded as we do not show leaf rows\n if (details.pivotMode && groupNode.leafGroup) {\n groupNode.expanded = false;\n return;\n }\n // use callback if exists\n var userCallback = details.isGroupOpenByDefault;\n if (userCallback) {\n var params = {\n rowNode: groupNode,\n field: groupNode.field,\n key: groupNode.key,\n level: groupNode.level,\n rowGroupColumn: groupNode.rowGroupColumn\n };\n groupNode.expanded = userCallback(params) == true;\n return;\n }\n // use expandByDefault if exists\n var expandByDefault = details.expandByDefault;\n if (details.expandByDefault === -1) {\n groupNode.expanded = true;\n return;\n }\n // otherwise\n groupNode.expanded = groupNode.level < expandByDefault;\n };\n GroupStage.prototype.getGroupInfo = function (rowNode, details) {\n if (details.usingTreeData) {\n return this.getGroupInfoFromCallback(rowNode, details);\n }\n return this.getGroupInfoFromGroupColumns(rowNode, details);\n };\n GroupStage.prototype.getGroupInfoFromCallback = function (rowNode, details) {\n var keys = details.getDataPath ? details.getDataPath(rowNode.data) : null;\n if (keys === null || keys === undefined || keys.length === 0) {\n _.doOnce(function () { return console.warn(\"AG Grid: getDataPath() should not return an empty path for data\", rowNode.data); }, 'groupStage.getGroupInfoFromCallback');\n }\n var groupInfoMapper = function (key) { return ({ key: key, field: null, rowGroupColumn: null }); };\n return keys ? keys.map(groupInfoMapper) : [];\n };\n GroupStage.prototype.getGroupInfoFromGroupColumns = function (rowNode, details) {\n var _this = this;\n var res = [];\n details.groupedCols.forEach(function (groupCol) {\n var key = _this.valueService.getKeyForNode(groupCol, rowNode);\n var keyExists = key !== null && key !== undefined && key !== '';\n // unbalanced tree and pivot mode don't work together - not because of the grid, it doesn't make\n // mathematical sense as you are building up a cube. so if pivot mode, we put in a blank key where missing.\n // this keeps the tree balanced and hence can be represented as a group.\n var createGroupForEmpty = details.pivotMode || !details.groupAllowUnbalanced;\n if (createGroupForEmpty && !keyExists) {\n key = '';\n keyExists = true;\n }\n if (keyExists) {\n var item = {\n key: key,\n field: groupCol.getColDef().field,\n rowGroupColumn: groupCol\n };\n res.push(item);\n }\n });\n return res;\n };\n __decorate$2p([\n Autowired('columnModel')\n ], GroupStage.prototype, \"columnModel\", void 0);\n __decorate$2p([\n Autowired('selectableService')\n ], GroupStage.prototype, \"selectableService\", void 0);\n __decorate$2p([\n Autowired('valueService')\n ], GroupStage.prototype, \"valueService\", void 0);\n __decorate$2p([\n Autowired('beans')\n ], GroupStage.prototype, \"beans\", void 0);\n __decorate$2p([\n Autowired('selectionService')\n ], GroupStage.prototype, \"selectionService\", void 0);\n GroupStage = __decorate$2p([\n Bean('groupStage')\n ], GroupStage);\n return GroupStage;\n}(BeanStub));\n\nvar __extends$3e = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$10 = (undefined && undefined.__assign) || function () {\n __assign$10 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$10.apply(this, arguments);\n};\nvar __decorate$2o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$1j = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$O = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar PivotColDefService = /** @class */ (function (_super) {\n __extends$3e(PivotColDefService, _super);\n function PivotColDefService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PivotColDefService_1 = PivotColDefService;\n PivotColDefService.prototype.init = function () {\n var _this = this;\n var getFieldSeparator = function () { var _a; return (_a = _this.gos.get('serverSidePivotResultFieldSeparator')) !== null && _a !== void 0 ? _a : '_'; };\n this.fieldSeparator = getFieldSeparator();\n this.addManagedPropertyListener('serverSidePivotResultFieldSeparator', function () { _this.fieldSeparator = getFieldSeparator(); });\n var getPivotDefaultExpanded = function () { var _a; return (_a = _this.gos.getNum('pivotDefaultExpanded')) !== null && _a !== void 0 ? _a : 0; };\n this.pivotDefaultExpanded = getPivotDefaultExpanded();\n this.addManagedPropertyListener('pivotDefaultExpanded', function () { _this.pivotDefaultExpanded = getPivotDefaultExpanded(); });\n };\n PivotColDefService.prototype.createPivotColumnDefs = function (uniqueValues) {\n // this is passed to the columnModel, to configure the columns and groups we show\n var pivotColumnGroupDefs = this.createPivotColumnsFromUniqueValues(uniqueValues);\n function extractColDefs(input, arr) {\n if (arr === void 0) { arr = []; }\n input.forEach(function (def) {\n if (def.children !== undefined) {\n extractColDefs(def.children, arr);\n }\n else {\n arr.push(def);\n }\n });\n return arr;\n }\n var pivotColumnDefs = extractColDefs(pivotColumnGroupDefs);\n // additional columns that contain the aggregated total for each value column per row\n this.addRowGroupTotals(pivotColumnGroupDefs, pivotColumnDefs);\n // additional group columns that contain child totals for each collapsed child column / group\n this.addExpandablePivotGroups(pivotColumnGroupDefs, pivotColumnDefs);\n // additional group columns that contain an aggregated total across all child columns\n this.addPivotTotalsToGroups(pivotColumnGroupDefs, pivotColumnDefs);\n // we clone, so the colDefs in pivotColumnsGroupDefs and pivotColumnDefs are not shared. this is so that\n // any changes the user makes (via processSecondaryColumnDefinitions) don't impact the internal aggregations,\n // as these use the col defs also\n var pivotColumnDefsClone = pivotColumnDefs.map(function (colDef) { return _.cloneObject(colDef); });\n return {\n pivotColumnGroupDefs: pivotColumnGroupDefs,\n pivotColumnDefs: pivotColumnDefsClone\n };\n };\n PivotColDefService.prototype.createPivotColumnsFromUniqueValues = function (uniqueValues) {\n var pivotColumns = this.columnModel.getPivotColumns();\n var maxDepth = pivotColumns.length;\n var pivotColumnGroupDefs = this.recursivelyBuildGroup(0, uniqueValues, [], maxDepth, pivotColumns);\n return pivotColumnGroupDefs;\n };\n PivotColDefService.prototype.recursivelyBuildGroup = function (index, uniqueValue, pivotKeys, maxDepth, primaryPivotColumns) {\n var _this = this;\n var measureColumns = this.columnModel.getValueColumns();\n if (index >= maxDepth) { // Base case - build the measure columns\n return this.buildMeasureCols(pivotKeys);\n }\n // sort by either user provided comparator, or our own one\n var primaryPivotColumnDefs = primaryPivotColumns[index].getColDef();\n var comparator = this.headerNameComparator.bind(this, primaryPivotColumnDefs.pivotComparator);\n // Base case for the compact layout, instead of recursing build the last layer of groups as measure columns instead\n if (measureColumns.length === 1 && this.gridOptionsService.is('removePivotHeaderRowWhenSingleValueColumn') && index === maxDepth - 1) {\n var leafCols_1 = [];\n _.iterateObject(uniqueValue, function (key) {\n var newPivotKeys = __spreadArray$O(__spreadArray$O([], __read$1j(pivotKeys)), [key]);\n var colDef = _this.createColDef(measureColumns[0], key, newPivotKeys);\n colDef.columnGroupShow = 'open';\n leafCols_1.push(colDef);\n });\n leafCols_1.sort(comparator);\n return leafCols_1;\n }\n // Recursive case\n var groups = [];\n _.iterateObject(uniqueValue, function (key, value) {\n // expand group by default based on depth of group. (pivotDefaultExpanded provides desired level of depth for expanding group by default)\n var openByDefault = _this.pivotDefaultExpanded === -1 || (index < _this.pivotDefaultExpanded);\n var newPivotKeys = __spreadArray$O(__spreadArray$O([], __read$1j(pivotKeys)), [key]);\n groups.push({\n children: _this.recursivelyBuildGroup(index + 1, value, newPivotKeys, maxDepth, primaryPivotColumns),\n headerName: key,\n pivotKeys: newPivotKeys,\n columnGroupShow: 'open',\n openByDefault: openByDefault,\n groupId: _this.generateColumnGroupId(newPivotKeys),\n });\n });\n groups.sort(comparator);\n return groups;\n };\n PivotColDefService.prototype.buildMeasureCols = function (pivotKeys) {\n var _this = this;\n var measureColumns = this.columnModel.getValueColumns();\n if (measureColumns.length === 0) {\n // if no value columns selected, then we insert one blank column, so the user at least sees columns\n // rendered. otherwise the grid would render with no columns (just empty groups) which would give the\n // impression that the grid is broken\n return [this.createColDef(null, '-', pivotKeys)];\n }\n return measureColumns.map(function (measureCol) {\n var columnName = _this.columnModel.getDisplayNameForColumn(measureCol, 'header');\n return __assign$10(__assign$10({}, _this.createColDef(measureCol, columnName, pivotKeys)), { columnGroupShow: 'open' });\n });\n };\n PivotColDefService.prototype.addExpandablePivotGroups = function (pivotColumnGroupDefs, pivotColumnDefs) {\n var _this = this;\n if (this.gridOptionsService.is('suppressExpandablePivotGroups') ||\n this.gridOptionsService.get('pivotColumnGroupTotals')) {\n return;\n }\n var recursivelyAddSubTotals = function (groupDef, currentPivotColumnDefs, acc) {\n var group = groupDef;\n if (group.children) {\n var childAcc_1 = new Map();\n group.children.forEach(function (grp) {\n recursivelyAddSubTotals(grp, currentPivotColumnDefs, childAcc_1);\n });\n var firstGroup_1 = !group.children.some(function (child) { return child.children; });\n _this.columnModel.getValueColumns().forEach(function (valueColumn) {\n var columnName = _this.columnModel.getDisplayNameForColumn(valueColumn, 'header');\n var totalColDef = _this.createColDef(valueColumn, columnName, groupDef.pivotKeys);\n totalColDef.pivotTotalColumnIds = childAcc_1.get(valueColumn.getColId());\n totalColDef.columnGroupShow = 'closed';\n totalColDef.aggFunc = valueColumn.getAggFunc();\n if (!firstGroup_1) {\n // add total colDef to group and pivot colDefs array\n var children = groupDef.children;\n children.push(totalColDef);\n currentPivotColumnDefs.push(totalColDef);\n }\n });\n _this.merge(acc, childAcc_1);\n }\n else {\n var def = groupDef;\n // check that value column exists, i.e. aggFunc is supplied\n if (!def.pivotValueColumn) {\n return;\n }\n var pivotValueColId = def.pivotValueColumn.getColId();\n var arr = acc.has(pivotValueColId) ? acc.get(pivotValueColId) : [];\n arr.push(def.colId);\n acc.set(pivotValueColId, arr);\n }\n };\n pivotColumnGroupDefs.forEach(function (groupDef) {\n recursivelyAddSubTotals(groupDef, pivotColumnDefs, new Map());\n });\n };\n PivotColDefService.prototype.addPivotTotalsToGroups = function (pivotColumnGroupDefs, pivotColumnDefs) {\n var _this = this;\n if (!this.gridOptionsService.get('pivotColumnGroupTotals')) {\n return;\n }\n var insertAfter = this.gridOptionsService.get('pivotColumnGroupTotals') === 'after';\n var valueCols = this.columnModel.getValueColumns();\n var aggFuncs = valueCols.map(function (valueCol) { return valueCol.getAggFunc(); });\n // don't add pivot totals if there is less than 1 aggFunc or they are not all the same\n if (!aggFuncs || aggFuncs.length < 1 || !this.sameAggFuncs(aggFuncs)) {\n // console.warn('AG Grid: aborting adding pivot total columns - value columns require same aggFunc');\n return;\n }\n // arbitrarily select a value column to use as a template for pivot columns\n var valueColumn = valueCols[0];\n pivotColumnGroupDefs.forEach(function (groupDef) {\n _this.recursivelyAddPivotTotal(groupDef, pivotColumnDefs, valueColumn, insertAfter);\n });\n };\n PivotColDefService.prototype.recursivelyAddPivotTotal = function (groupDef, pivotColumnDefs, valueColumn, insertAfter) {\n var _this = this;\n var group = groupDef;\n if (!group.children) {\n var def = groupDef;\n return def.colId ? [def.colId] : null;\n }\n var colIds = [];\n // need to recurse children first to obtain colIds used in the aggregation stage\n group.children\n .forEach(function (grp) {\n var childColIds = _this.recursivelyAddPivotTotal(grp, pivotColumnDefs, valueColumn, insertAfter);\n if (childColIds) {\n colIds = colIds.concat(childColIds);\n }\n });\n // only add total colDef if there is more than 1 child node\n if (group.children.length > 1) {\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n var headerName = localeTextFunc('pivotColumnGroupTotals', 'Total');\n //create total colDef using an arbitrary value column as a template\n var totalColDef = this.createColDef(valueColumn, headerName, groupDef.pivotKeys, true);\n totalColDef.pivotTotalColumnIds = colIds;\n totalColDef.aggFunc = valueColumn.getAggFunc();\n // add total colDef to group and pivot colDefs array\n var children = groupDef.children;\n insertAfter ? children.push(totalColDef) : children.unshift(totalColDef);\n pivotColumnDefs.push(totalColDef);\n }\n return colIds;\n };\n PivotColDefService.prototype.addRowGroupTotals = function (pivotColumnGroupDefs, pivotColumnDefs) {\n var _this = this;\n if (!this.gridOptionsService.get('pivotRowTotals')) {\n return;\n }\n var insertAfter = this.gridOptionsService.get('pivotRowTotals') === 'after';\n var valueColumns = this.columnModel.getValueColumns();\n // order of row group totals depends on position\n var valueCols = insertAfter ? valueColumns.slice() : valueColumns.slice().reverse();\n var _loop_1 = function (i) {\n var valueCol = valueCols[i];\n var colIds = [];\n pivotColumnGroupDefs.forEach(function (groupDef) {\n colIds = colIds.concat(_this.extractColIdsForValueColumn(groupDef, valueCol));\n });\n var withGroup = valueCols.length > 1 || !this_1.gridOptionsService.is('removePivotHeaderRowWhenSingleValueColumn');\n this_1.createRowGroupTotal(pivotColumnGroupDefs, pivotColumnDefs, valueCol, colIds, insertAfter, withGroup);\n };\n var this_1 = this;\n for (var i = 0; i < valueCols.length; i++) {\n _loop_1(i);\n }\n };\n PivotColDefService.prototype.extractColIdsForValueColumn = function (groupDef, valueColumn) {\n var _this = this;\n var group = groupDef;\n if (!group.children) {\n var colDef = group;\n return colDef.pivotValueColumn === valueColumn && colDef.colId ? [colDef.colId] : [];\n }\n var colIds = [];\n group.children\n .forEach(function (grp) {\n _this.extractColIdsForValueColumn(grp, valueColumn);\n var childColIds = _this.extractColIdsForValueColumn(grp, valueColumn);\n colIds = colIds.concat(childColIds);\n });\n return colIds;\n };\n PivotColDefService.prototype.createRowGroupTotal = function (parentChildren, pivotColumnDefs, valueColumn, colIds, insertAfter, addGroup) {\n var measureColumns = this.columnModel.getValueColumns();\n var colDef;\n if (measureColumns.length === 0) {\n colDef = this.createColDef(null, '-', []);\n }\n else {\n var columnName = this.columnModel.getDisplayNameForColumn(valueColumn, 'header');\n colDef = this.createColDef(valueColumn, columnName, []);\n colDef.pivotTotalColumnIds = colIds;\n }\n colDef.colId = PivotColDefService_1.PIVOT_ROW_TOTAL_PREFIX + colDef.colId;\n pivotColumnDefs.push(colDef);\n var valueGroup = addGroup ? {\n children: [colDef],\n pivotKeys: [],\n groupId: PivotColDefService_1.PIVOT_ROW_TOTAL_PREFIX + \"_pivotGroup_\" + valueColumn.getColId(),\n } : colDef;\n insertAfter ? parentChildren.push(valueGroup) : parentChildren.unshift(valueGroup);\n };\n PivotColDefService.prototype.createColDef = function (valueColumn, headerName, pivotKeys, totalColumn) {\n if (totalColumn === void 0) { totalColumn = false; }\n var colDef = {};\n // This is null when there are no measure columns and we're creating placeholder columns\n if (valueColumn) {\n var colDefToCopy = valueColumn.getColDef();\n Object.assign(colDef, colDefToCopy);\n // even if original column was hidden, we always show the pivot value column, otherwise it would be\n // very confusing for people thinking the pivot is broken\n colDef.hide = false;\n }\n colDef.headerName = headerName;\n colDef.colId = this.generateColumnId(pivotKeys || [], valueColumn && !totalColumn ? valueColumn.getColId() : '');\n // pivot columns repeat over field, so it makes sense to use the unique id instead. For example if you want to\n // assign values to pinned bottom rows using setPinnedBottomRowData the value service will use this colId.\n colDef.field = colDef.colId;\n // this is to support using pinned rows, normally the data will be extracted from the aggData object using the colId\n // however pinned rows still access the data object by field, this prevents values with dots from being treated as complex objects\n colDef.valueGetter = function (params) { var _a; return (_a = params.data) === null || _a === void 0 ? void 0 : _a[params.colDef.field]; };\n colDef.pivotKeys = pivotKeys;\n colDef.pivotValueColumn = valueColumn;\n if (colDef.filter === true) {\n colDef.filter = 'agNumberColumnFilter';\n }\n return colDef;\n };\n PivotColDefService.prototype.sameAggFuncs = function (aggFuncs) {\n if (aggFuncs.length == 1) {\n return true;\n }\n //check if all aggFunc's match\n for (var i = 1; i < aggFuncs.length; i++) {\n if (aggFuncs[i] !== aggFuncs[0]) {\n return false;\n }\n }\n return true;\n };\n PivotColDefService.prototype.headerNameComparator = function (userComparator, a, b) {\n if (userComparator) {\n return userComparator(a.headerName, b.headerName);\n }\n else {\n if (a.headerName && !b.headerName) {\n return 1;\n }\n else if (!a.headerName && b.headerName) {\n return -1;\n }\n // slightly naff here - just to satify typescript\n // really should be &&, but if so ts complains\n // the above if/else checks would deal with either being falsy, so at this stage if either are falsy, both are\n // ..still naff though\n if (!a.headerName || !b.headerName) {\n return 0;\n }\n if (a.headerName < b.headerName) {\n return -1;\n }\n if (a.headerName > b.headerName) {\n return 1;\n }\n return 0;\n }\n };\n PivotColDefService.prototype.merge = function (m1, m2) {\n m2.forEach(function (value, key, map) {\n var existingList = m1.has(key) ? m1.get(key) : [];\n var updatedList = __spreadArray$O(__spreadArray$O([], __read$1j(existingList)), __read$1j(value));\n m1.set(key, updatedList);\n });\n };\n PivotColDefService.prototype.generateColumnGroupId = function (pivotKeys) {\n var pivotCols = this.columnModel.getPivotColumns().map(function (col) { return col.getColId(); });\n return \"pivotGroup_\" + pivotCols.join('-') + \"_\" + pivotKeys.join('-');\n };\n PivotColDefService.prototype.generateColumnId = function (pivotKeys, measureColumnId) {\n var pivotCols = this.columnModel.getPivotColumns().map(function (col) { return col.getColId(); });\n return \"pivot_\" + pivotCols.join('-') + \"_\" + pivotKeys.join('-') + \"_\" + measureColumnId;\n };\n /**\n * Used by the SSRM to create secondary columns from provided fields\n * @param fields\n */\n PivotColDefService.prototype.createColDefsFromFields = function (fields) {\n var _this = this;\n // tear the ids down into groups, while this could be done in-step with the next stage, the lookup is faster \n // than searching col group children array for the right group\n var uniqueValues = {};\n for (var i = 0; i < fields.length; i++) {\n var field = fields[i];\n var parts = field.split(this.fieldSeparator);\n var level = uniqueValues;\n for (var p = 0; p < parts.length; p++) {\n var part = parts[p];\n if (level[part] == null) {\n level[part] = {};\n }\n level = level[part];\n }\n }\n var uniqueValuesToGroups = function (id, key, uniqueValues, depth) {\n var _a;\n var children = [];\n for (var key_1 in uniqueValues) {\n var item = uniqueValues[key_1];\n var child = uniqueValuesToGroups(\"\" + id + _this.fieldSeparator + key_1, key_1, item, depth + 1);\n children.push(child);\n }\n if (children.length === 0) {\n var col = {\n colId: id,\n headerName: key,\n // this is to support using pinned rows, normally the data will be extracted from the aggData object using the colId\n // however pinned rows still access the data object by field, this prevents values with dots from being treated as complex objects\n valueGetter: function (params) { var _a; return (_a = params.data) === null || _a === void 0 ? void 0 : _a[id]; },\n };\n var potentialAggCol = _this.columnModel.getPrimaryColumn(key);\n if (potentialAggCol) {\n col.headerName = (_a = _this.columnModel.getDisplayNameForColumn(potentialAggCol, 'header')) !== null && _a !== void 0 ? _a : key;\n col.aggFunc = potentialAggCol.getAggFunc();\n col.pivotValueColumn = potentialAggCol;\n }\n return col;\n }\n // this is a bit sketchy. As the fields can be anything we just build groups as deep as the fields go.\n // nothing says user has to give us groups the same depth.\n var collapseSingleChildren = _this.gridOptionsService.is('removePivotHeaderRowWhenSingleValueColumn');\n if (collapseSingleChildren && children.length === 1 && 'colId' in children[0]) {\n children[0].headerName = key;\n return children[0];\n }\n var group = {\n openByDefault: _this.pivotDefaultExpanded === -1 || depth < _this.pivotDefaultExpanded,\n groupId: id,\n headerName: key,\n children: children,\n };\n return group;\n };\n var res = [];\n for (var key in uniqueValues) {\n var item = uniqueValues[key];\n var col = uniqueValuesToGroups(key, key, item, 0);\n res.push(col);\n }\n return res;\n };\n var PivotColDefService_1;\n PivotColDefService.PIVOT_ROW_TOTAL_PREFIX = 'PivotRowTotal_';\n __decorate$2o([\n Autowired('columnModel')\n ], PivotColDefService.prototype, \"columnModel\", void 0);\n __decorate$2o([\n Autowired('gridOptionsService')\n ], PivotColDefService.prototype, \"gos\", void 0);\n __decorate$2o([\n PostConstruct\n ], PivotColDefService.prototype, \"init\", null);\n PivotColDefService = PivotColDefService_1 = __decorate$2o([\n Bean('pivotColDefService')\n ], PivotColDefService);\n return PivotColDefService;\n}(BeanStub));\n\nvar __extends$3d = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PivotStage = /** @class */ (function (_super) {\n __extends$3d(PivotStage, _super);\n function PivotStage() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.uniqueValues = {};\n return _this;\n }\n PivotStage.prototype.execute = function (params) {\n var changedPath = params.changedPath;\n if (this.columnModel.isPivotActive()) {\n this.executePivotOn(changedPath);\n }\n else {\n this.executePivotOff(changedPath);\n }\n };\n PivotStage.prototype.executePivotOff = function (changedPath) {\n this.aggregationColumnsHashLastTime = null;\n this.uniqueValues = {};\n if (this.columnModel.isSecondaryColumnsPresent()) {\n this.columnModel.setSecondaryColumns(null, \"rowModelUpdated\");\n if (changedPath) {\n changedPath.setInactive();\n }\n }\n };\n PivotStage.prototype.executePivotOn = function (changedPath) {\n var uniqueValues = this.bucketUpRowNodes(changedPath);\n var uniqueValuesChanged = this.setUniqueValues(uniqueValues);\n var aggregationColumns = this.columnModel.getValueColumns();\n var aggregationColumnsHash = aggregationColumns.map(function (column) { return column.getId() + \"-\" + column.getColDef().headerName; }).join('#');\n var aggregationFuncsHash = aggregationColumns.map(function (column) { return column.getAggFunc().toString(); }).join('#');\n var aggregationColumnsChanged = this.aggregationColumnsHashLastTime !== aggregationColumnsHash;\n var aggregationFuncsChanged = this.aggregationFuncsHashLastTime !== aggregationFuncsHash;\n this.aggregationColumnsHashLastTime = aggregationColumnsHash;\n this.aggregationFuncsHashLastTime = aggregationFuncsHash;\n var groupColumnsHash = this.columnModel.getRowGroupColumns().map(function (column) { return column.getId(); }).join('#');\n var groupColumnsChanged = groupColumnsHash !== this.groupColumnsHashLastTime;\n this.groupColumnsHashLastTime = groupColumnsHash;\n if (uniqueValuesChanged || aggregationColumnsChanged || groupColumnsChanged || aggregationFuncsChanged) {\n var _a = this.pivotColDefService.createPivotColumnDefs(this.uniqueValues), pivotColumnGroupDefs = _a.pivotColumnGroupDefs, pivotColumnDefs = _a.pivotColumnDefs;\n this.pivotColumnDefs = pivotColumnDefs;\n this.columnModel.setSecondaryColumns(pivotColumnGroupDefs, \"rowModelUpdated\");\n // because the secondary columns have changed, then the aggregation needs to visit the whole\n // tree again, so we make the changedPath not active, to force aggregation to visit all paths.\n if (changedPath) {\n changedPath.setInactive();\n }\n }\n };\n PivotStage.prototype.setUniqueValues = function (newValues) {\n var json1 = JSON.stringify(newValues);\n var json2 = JSON.stringify(this.uniqueValues);\n var uniqueValuesChanged = json1 !== json2;\n // we only continue the below if the unique values are different, as otherwise\n // the result will be the same as the last time we did it\n if (uniqueValuesChanged) {\n this.uniqueValues = newValues;\n return true;\n }\n else {\n return false;\n }\n };\n PivotStage.prototype.bucketUpRowNodes = function (changedPath) {\n var _this = this;\n // accessed from inside inner function\n var uniqueValues = {};\n // ensure childrenMapped is cleared, as if a node has been filtered out it should not have mapped children.\n changedPath.forEachChangedNodeDepthFirst(function (node) {\n if (node.leafGroup) {\n node.childrenMapped = null;\n }\n });\n var recursivelyBucketFilteredChildren = function (node) {\n var _a;\n if (node.leafGroup) {\n _this.bucketRowNode(node, uniqueValues);\n }\n else {\n (_a = node.childrenAfterFilter) === null || _a === void 0 ? void 0 : _a.forEach(recursivelyBucketFilteredChildren);\n }\n };\n changedPath.executeFromRootNode(recursivelyBucketFilteredChildren);\n return uniqueValues;\n };\n PivotStage.prototype.bucketRowNode = function (rowNode, uniqueValues) {\n var pivotColumns = this.columnModel.getPivotColumns();\n if (pivotColumns.length === 0) {\n rowNode.childrenMapped = null;\n }\n else {\n rowNode.childrenMapped = this.bucketChildren(rowNode.childrenAfterFilter, pivotColumns, 0, uniqueValues);\n }\n if (rowNode.sibling) {\n rowNode.sibling.childrenMapped = rowNode.childrenMapped;\n }\n };\n PivotStage.prototype.bucketChildren = function (children, pivotColumns, pivotIndex, uniqueValues) {\n var _this = this;\n var mappedChildren = {};\n var pivotColumn = pivotColumns[pivotIndex];\n // map the children out based on the pivot column\n children.forEach(function (child) {\n var key = _this.valueService.getKeyForNode(pivotColumn, child);\n if (_.missing(key)) {\n key = '';\n }\n if (!uniqueValues[key]) {\n uniqueValues[key] = {};\n }\n if (!mappedChildren[key]) {\n mappedChildren[key] = [];\n }\n mappedChildren[key].push(child);\n });\n // if it's the last pivot column, return as is, otherwise go one level further in the map\n if (pivotIndex === pivotColumns.length - 1) {\n return mappedChildren;\n }\n else {\n var result_1 = {};\n _.iterateObject(mappedChildren, function (key, value) {\n result_1[key] = _this.bucketChildren(value, pivotColumns, pivotIndex + 1, uniqueValues[key]);\n });\n return result_1;\n }\n };\n PivotStage.prototype.getPivotColumnDefs = function () {\n return this.pivotColumnDefs;\n };\n __decorate$2n([\n Autowired('valueService')\n ], PivotStage.prototype, \"valueService\", void 0);\n __decorate$2n([\n Autowired('columnModel')\n ], PivotStage.prototype, \"columnModel\", void 0);\n __decorate$2n([\n Autowired('pivotColDefService')\n ], PivotStage.prototype, \"pivotColDefService\", void 0);\n PivotStage = __decorate$2n([\n Bean('pivotStage')\n ], PivotStage);\n return PivotStage;\n}(BeanStub));\n\nvar __extends$3c = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n// @ts-ignore\nvar AGBigInt = typeof BigInt === 'undefined' ? null : BigInt;\nvar AggFuncService = /** @class */ (function (_super) {\n __extends$3c(AggFuncService, _super);\n function AggFuncService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.aggFuncsMap = {};\n _this.initialised = false;\n return _this;\n }\n AggFuncService_1 = AggFuncService;\n AggFuncService.prototype.init = function () {\n if (this.initialised) {\n return;\n }\n this.initialiseWithDefaultAggregations();\n this.addAggFuncs(this.gridOptionsService.get('aggFuncs'));\n };\n AggFuncService.prototype.initialiseWithDefaultAggregations = function () {\n this.aggFuncsMap[AggFuncService_1.AGG_SUM] = aggSum;\n this.aggFuncsMap[AggFuncService_1.AGG_FIRST] = aggFirst;\n this.aggFuncsMap[AggFuncService_1.AGG_LAST] = aggLast;\n this.aggFuncsMap[AggFuncService_1.AGG_MIN] = aggMin;\n this.aggFuncsMap[AggFuncService_1.AGG_MAX] = aggMax;\n this.aggFuncsMap[AggFuncService_1.AGG_COUNT] = aggCount;\n this.aggFuncsMap[AggFuncService_1.AGG_AVG] = aggAvg;\n this.initialised = true;\n };\n AggFuncService.prototype.isAggFuncPossible = function (column, func) {\n var allKeys = this.getFuncNames(column);\n var allowed = _.includes(allKeys, func);\n var funcExists = _.exists(this.aggFuncsMap[func]);\n return allowed && funcExists;\n };\n AggFuncService.prototype.getDefaultAggFunc = function (column) {\n var defaultAgg = column.getColDef().defaultAggFunc;\n if (_.exists(defaultAgg) && this.isAggFuncPossible(column, defaultAgg)) {\n return defaultAgg;\n }\n if (this.isAggFuncPossible(column, AggFuncService_1.AGG_SUM)) {\n return AggFuncService_1.AGG_SUM;\n }\n var allKeys = this.getFuncNames(column);\n return _.existsAndNotEmpty(allKeys) ? allKeys[0] : null;\n };\n AggFuncService.prototype.addAggFuncs = function (aggFuncs) {\n _.iterateObject(aggFuncs, this.addAggFunc.bind(this));\n };\n AggFuncService.prototype.addAggFunc = function (key, aggFunc) {\n this.init();\n this.aggFuncsMap[key] = aggFunc;\n };\n AggFuncService.prototype.getAggFunc = function (name) {\n this.init();\n return this.aggFuncsMap[name];\n };\n AggFuncService.prototype.getFuncNames = function (column) {\n var userAllowedFuncs = column.getColDef().allowedAggFuncs;\n return userAllowedFuncs == null ? Object.keys(this.aggFuncsMap).sort() : userAllowedFuncs;\n };\n AggFuncService.prototype.clear = function () {\n this.aggFuncsMap = {};\n };\n var AggFuncService_1;\n AggFuncService.AGG_SUM = 'sum';\n AggFuncService.AGG_FIRST = 'first';\n AggFuncService.AGG_LAST = 'last';\n AggFuncService.AGG_MIN = 'min';\n AggFuncService.AGG_MAX = 'max';\n AggFuncService.AGG_COUNT = 'count';\n AggFuncService.AGG_AVG = 'avg';\n __decorate$2m([\n PostConstruct\n ], AggFuncService.prototype, \"init\", null);\n AggFuncService = AggFuncService_1 = __decorate$2m([\n Bean('aggFuncService')\n ], AggFuncService);\n return AggFuncService;\n}(BeanStub));\nfunction aggSum(params) {\n var values = params.values;\n var result = null; // the logic ensures that we never combine bigint arithmetic with numbers, but TS is hard to please\n // for optimum performance, we use a for loop here rather than calling any helper methods or using functional code\n for (var i = 0; i < values.length; i++) {\n var value = values[i];\n if (typeof value === 'number') {\n if (result === null) {\n result = value;\n }\n else {\n if (AGBigInt) {\n result += typeof result === 'number' ? value : AGBigInt(value);\n }\n else {\n result += value;\n }\n }\n }\n else if (typeof value === 'bigint') {\n if (result === null) {\n result = value;\n }\n else {\n result = (typeof result === 'bigint' ? result : AGBigInt(result)) + value;\n }\n }\n }\n return result;\n}\nfunction aggFirst(params) {\n return params.values.length > 0 ? params.values[0] : null;\n}\nfunction aggLast(params) {\n return params.values.length > 0 ? _.last(params.values) : null;\n}\nfunction aggMin(params) {\n var values = params.values;\n var result = null;\n // for optimum performance, we use a for loop here rather than calling any helper methods or using functional code\n for (var i = 0; i < values.length; i++) {\n var value = values[i];\n if ((typeof value === 'number' || typeof value === 'bigint') && (result === null || result > value)) {\n result = value;\n }\n }\n return result;\n}\nfunction aggMax(params) {\n var values = params.values;\n var result = null;\n // for optimum performance, we use a for loop here rather than calling any helper methods or using functional code\n for (var i = 0; i < values.length; i++) {\n var value = values[i];\n if ((typeof value === 'number' || typeof value === 'bigint') && (result === null || result < value)) {\n result = value;\n }\n }\n return result;\n}\nfunction aggCount(params) {\n var _a, _b;\n var values = params.values;\n var result = 0;\n // for optimum performance, we use a for loop here rather than calling any helper methods or using functional code\n for (var i = 0; i < values.length; i++) {\n var value = values[i];\n // check if the value is from a group, in which case use the group's count\n result += value != null && typeof value.value === 'number' ? value.value : 1;\n }\n // the previous aggregation data\n var existingAggData = (_b = (_a = params.rowNode) === null || _a === void 0 ? void 0 : _a.aggData) === null || _b === void 0 ? void 0 : _b[params.column.getColId()];\n if (existingAggData && existingAggData.value === result) {\n // the underlying values haven't changed, return the old object to avoid triggering change detection\n return existingAggData;\n }\n // it's important to wrap it in the object so we can determine if this is a group level\n return {\n value: result,\n toString: function () {\n return this.value.toString();\n },\n // used for sorting\n toNumber: function () {\n return this.value;\n }\n };\n}\n// the average function is tricky as the multiple levels require weighted averages\n// for the non-leaf node aggregations.\nfunction aggAvg(params) {\n var _a, _b, _c;\n var values = params.values;\n var sum = 0; // the logic ensures that we never combine bigint arithmetic with numbers, but TS is hard to please\n var count = 0;\n // for optimum performance, we use a for loop here rather than calling any helper methods or using functional code\n for (var i = 0; i < values.length; i++) {\n var currentValue = values[i];\n var valueToAdd = null;\n if (typeof currentValue === 'number' || typeof currentValue === 'bigint') {\n valueToAdd = currentValue;\n count++;\n }\n else if (currentValue != null && (typeof currentValue.value === 'number' || typeof currentValue.value === 'bigint') && typeof currentValue.count === 'number') {\n // we are aggregating groups, so we take the aggregated values to calculated a weighted average\n if (AGBigInt) {\n valueToAdd = currentValue.value * (typeof currentValue.value === 'number' ? currentValue.count : AGBigInt(currentValue.count));\n }\n else {\n valueToAdd = currentValue.value * currentValue.count;\n }\n count += currentValue.count;\n }\n if (typeof valueToAdd === 'number') {\n if (AGBigInt) {\n sum += typeof sum === 'number' ? valueToAdd : AGBigInt(valueToAdd);\n }\n else {\n sum += valueToAdd;\n }\n }\n else if (typeof valueToAdd === 'bigint') {\n sum = (typeof sum === 'bigint' ? sum : AGBigInt(sum)) + valueToAdd;\n }\n }\n var value = null;\n // avoid divide by zero error\n if (count > 0) {\n if (AGBigInt) {\n value = sum / (typeof sum === 'number' ? count : AGBigInt(count));\n }\n else {\n value = sum / count;\n }\n }\n // the previous aggregation data\n var existingAggData = (_b = (_a = params.rowNode) === null || _a === void 0 ? void 0 : _a.aggData) === null || _b === void 0 ? void 0 : _b[(_c = params.column) === null || _c === void 0 ? void 0 : _c.getColId()];\n if (existingAggData && existingAggData.count === count && existingAggData.value === value) {\n // the underlying values haven't changed, return the old object to avoid triggering change detection\n return existingAggData;\n }\n // the result will be an object. when this cell is rendered, only the avg is shown.\n // however when this cell is part of another aggregation, the count is also needed\n // to create a weighted average for the next level.\n return {\n count: count,\n value: value,\n // the grid by default uses toString to render values for an object, so this\n // is a trick to get the default cellRenderer to display the avg value\n toString: function () {\n return typeof this.value === 'number' || typeof this.value === 'bigint' ? this.value.toString() : '';\n },\n // used for sorting\n toNumber: function () {\n return this.value;\n }\n };\n}\n\nvar __extends$3b = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DropZoneColumnComp = /** @class */ (function (_super) {\n __extends$3b(DropZoneColumnComp, _super);\n function DropZoneColumnComp(column, dragSourceDropTarget, ghost, dropZonePurpose, horizontal) {\n var _this = _super.call(this) || this;\n _this.column = column;\n _this.dragSourceDropTarget = dragSourceDropTarget;\n _this.ghost = ghost;\n _this.dropZonePurpose = dropZonePurpose;\n _this.horizontal = horizontal;\n _this.popupShowing = false;\n return _this;\n }\n DropZoneColumnComp.prototype.init = function () {\n var _this = this;\n this.setTemplate(DropZoneColumnComp.TEMPLATE);\n var eGui = this.getGui();\n var isFunctionsReadOnly = this.gridOptionsService.is('functionsReadOnly');\n this.addElementClasses(eGui);\n this.addElementClasses(this.eDragHandle, 'drag-handle');\n this.addElementClasses(this.eText, 'text');\n this.addElementClasses(this.eButton, 'button');\n this.eDragHandle.appendChild(_.createIconNoSpan('columnDrag', this.gridOptionsService));\n this.eButton.appendChild(_.createIconNoSpan('cancel', this.gridOptionsService));\n this.setupSort();\n this.displayName = this.columnModel.getDisplayNameForColumn(this.column, 'columnDrop');\n this.setupComponents();\n if (!this.ghost && !isFunctionsReadOnly) {\n this.addDragSource();\n }\n this.setupAria();\n this.addManagedListener(this.eventService, Column.EVENT_SORT_CHANGED, function () {\n _this.setupAria();\n });\n this.setupTooltip();\n this.activateTabIndex();\n };\n DropZoneColumnComp.prototype.setupAria = function () {\n var translate = this.localeService.getLocaleTextFunc();\n var _a = this.getColumnAndAggFuncName(), name = _a.name, aggFuncName = _a.aggFuncName;\n var aggSeparator = translate('ariaDropZoneColumnComponentAggFuncSeparator', ' of ');\n var sortDirection = {\n asc: translate('ariaDropZoneColumnComponentSortAscending', 'ascending'),\n desc: translate('ariaDropZoneColumnComponentSortDescending', 'descending'),\n };\n var columnSort = this.column.getSort();\n var isSortSuppressed = this.gridOptionsService.is('rowGroupPanelSuppressSort');\n var ariaInstructions = [\n [\n aggFuncName && \"\" + aggFuncName + aggSeparator,\n name,\n this.isGroupingZone() && !isSortSuppressed && columnSort && \", \" + sortDirection[columnSort]\n ].filter(function (part) { return !!part; }).join(''),\n ];\n var isFunctionsReadOnly = this.gridOptionsService.is('functionsReadOnly');\n if (this.isAggregationZone() && !isFunctionsReadOnly) {\n var aggregationMenuAria = translate('ariaDropZoneColumnValueItemDescription', 'Press ENTER to change the aggregation type');\n ariaInstructions.push(aggregationMenuAria);\n }\n if (this.isGroupingZone() && this.column.getColDef().sortable && !isSortSuppressed) {\n var sortProgressAria = translate('ariaDropZoneColumnGroupItemDescription', 'Press ENTER to sort');\n ariaInstructions.push(sortProgressAria);\n }\n var deleteAria = translate('ariaDropZoneColumnComponentDescription', 'Press DELETE to remove');\n ariaInstructions.push(deleteAria);\n _.setAriaLabel(this.getGui(), ariaInstructions.join('. '));\n };\n DropZoneColumnComp.prototype.setupTooltip = function () {\n var _this = this;\n var refresh = function () {\n var newTooltipText = _this.column.getColDef().headerTooltip;\n _this.setTooltip(newTooltipText);\n };\n refresh();\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, refresh);\n };\n DropZoneColumnComp.prototype.setupSort = function () {\n var _this = this;\n var canSort = this.column.getColDef().sortable;\n var isGroupingZone = this.isGroupingZone();\n if (!canSort || !isGroupingZone) {\n return;\n }\n if (!this.gridOptionsService.is('rowGroupPanelSuppressSort')) {\n this.eSortIndicator.setupSort(this.column, true);\n var performSort_1 = function (event) {\n event.preventDefault();\n var sortUsingCtrl = _this.gridOptionsService.get('multiSortKey') === 'ctrl';\n var multiSort = sortUsingCtrl ? (event.ctrlKey || event.metaKey) : event.shiftKey;\n _this.sortController.progressSort(_this.column, multiSort, 'uiColumnSorted');\n };\n this.addGuiEventListener('click', performSort_1);\n this.addGuiEventListener('keydown', function (e) {\n var isEnter = e.key === KeyCode.ENTER;\n if (isEnter && _this.isGroupingZone()) {\n performSort_1(e);\n }\n });\n }\n };\n DropZoneColumnComp.prototype.addDragSource = function () {\n var _this = this;\n var dragSource = {\n type: DragSourceType.ToolPanel,\n eElement: this.eDragHandle,\n getDefaultIconName: function () { return DragAndDropService.ICON_HIDE; },\n getDragItem: function () { return _this.createDragItem(); },\n dragItemName: this.displayName,\n dragSourceDropTarget: this.dragSourceDropTarget\n };\n this.dragAndDropService.addDragSource(dragSource, true);\n this.addDestroyFunc(function () { return _this.dragAndDropService.removeDragSource(dragSource); });\n };\n DropZoneColumnComp.prototype.createDragItem = function () {\n var visibleState = {};\n visibleState[this.column.getId()] = this.column.isVisible();\n return {\n columns: [this.column],\n visibleState: visibleState\n };\n };\n DropZoneColumnComp.prototype.setupComponents = function () {\n this.setTextValue();\n this.setupRemove();\n if (this.ghost) {\n this.addCssClass('ag-column-drop-cell-ghost');\n }\n if (this.isAggregationZone() && !this.gridOptionsService.is('functionsReadOnly')) {\n this.addGuiEventListener('click', this.onShowAggFuncSelection.bind(this));\n }\n };\n DropZoneColumnComp.prototype.setupRemove = function () {\n var _this = this;\n _.setDisplayed(this.eButton, !this.gridOptionsService.is('functionsReadOnly'));\n var agEvent = { type: DropZoneColumnComp.EVENT_COLUMN_REMOVE };\n this.addGuiEventListener('keydown', function (e) {\n var isEnter = e.key === KeyCode.ENTER;\n var isDelete = e.key === KeyCode.DELETE;\n if (isDelete) {\n e.preventDefault();\n _this.dispatchEvent(agEvent);\n }\n if (isEnter && _this.isAggregationZone() && !_this.gridOptionsService.is('functionsReadOnly')) {\n e.preventDefault();\n _this.onShowAggFuncSelection();\n }\n });\n this.addManagedListener(this.eButton, 'click', function (mouseEvent) {\n _this.dispatchEvent(agEvent);\n mouseEvent.stopPropagation();\n });\n var touchListener = new TouchListener(this.eButton);\n this.addManagedListener(touchListener, TouchListener.EVENT_TAP, function () {\n _this.dispatchEvent(agEvent);\n });\n this.addDestroyFunc(touchListener.destroy.bind(touchListener));\n };\n DropZoneColumnComp.prototype.getColumnAndAggFuncName = function () {\n var name = this.displayName;\n var aggFuncName = '';\n if (this.isAggregationZone()) {\n var aggFunc = this.column.getAggFunc();\n // if aggFunc is a string, we can use it, but if it's a function, then we swap with 'func'\n var aggFuncString = typeof aggFunc === 'string' ? aggFunc : 'agg';\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n aggFuncName = localeTextFunc(aggFuncString, aggFuncString);\n }\n return { name: name, aggFuncName: aggFuncName };\n };\n DropZoneColumnComp.prototype.setTextValue = function () {\n var _a = this.getColumnAndAggFuncName(), name = _a.name, aggFuncName = _a.aggFuncName;\n var displayValue = this.isAggregationZone() ? aggFuncName + \"(\" + name + \")\" : name;\n var displayValueSanitised = _.escapeString(displayValue);\n this.eText.innerHTML = displayValueSanitised;\n };\n DropZoneColumnComp.prototype.onShowAggFuncSelection = function () {\n var _this = this;\n if (this.popupShowing) {\n return;\n }\n this.popupShowing = true;\n var virtualList = new VirtualList({ cssIdentifier: 'select-agg-func' });\n var rows = this.aggFuncService.getFuncNames(this.column);\n var eGui = this.getGui();\n var virtualListGui = virtualList.getGui();\n virtualList.setModel({\n getRow: function (index) { return rows[index]; },\n getRowCount: function () { return rows.length; }\n });\n this.getContext().createBean(virtualList);\n var ePopup = _.loadTemplate(/* html*/ \"
\");\n ePopup.style.top = '0px';\n ePopup.style.left = '0px';\n ePopup.appendChild(virtualListGui);\n ePopup.style.width = eGui.clientWidth + \"px\";\n var focusoutListener = this.addManagedListener(ePopup, 'focusout', function (e) {\n if (!ePopup.contains(e.relatedTarget) && addPopupRes) {\n addPopupRes.hideFunc();\n }\n });\n var popupHiddenFunc = function (callbackEvent) {\n _this.destroyBean(virtualList);\n _this.popupShowing = false;\n if ((callbackEvent === null || callbackEvent === void 0 ? void 0 : callbackEvent.key) === 'Escape') {\n eGui.focus();\n }\n if (focusoutListener) {\n focusoutListener();\n }\n };\n var translate = this.localeService.getLocaleTextFunc();\n var addPopupRes = this.popupService.addPopup({\n modal: true,\n eChild: ePopup,\n closeOnEsc: true,\n closedCallback: popupHiddenFunc,\n ariaLabel: translate('ariaLabelAggregationFunction', 'Aggregation Function')\n });\n if (addPopupRes) {\n virtualList.setComponentCreator(this.createAggSelect.bind(this, addPopupRes.hideFunc));\n }\n virtualList.addGuiEventListener('keydown', function (e) {\n if (e.key === KeyCode.ENTER || e.key === KeyCode.SPACE) {\n var row = virtualList.getLastFocusedRow();\n if (row == null) {\n return;\n }\n var comp = virtualList.getComponentAt(row);\n if (comp) {\n comp.selectItem();\n }\n }\n });\n this.popupService.positionPopupByComponent({\n type: 'aggFuncSelect',\n eventSource: eGui,\n ePopup: ePopup,\n keepWithinBounds: true,\n column: this.column,\n position: 'under'\n });\n virtualList.refresh();\n var rowToFocus = rows.findIndex(function (r) { return r === _this.column.getAggFunc(); });\n if (rowToFocus === -1) {\n rowToFocus = 0;\n }\n virtualList.focusRow(rowToFocus);\n };\n DropZoneColumnComp.prototype.createAggSelect = function (hidePopup, value) {\n var _this = this;\n var itemSelected = function () {\n hidePopup();\n if (_this.gridOptionsService.is('functionsPassive')) {\n var event_1 = {\n type: Events.EVENT_COLUMN_AGG_FUNC_CHANGE_REQUEST,\n columns: [_this.column],\n aggFunc: value\n };\n _this.eventService.dispatchEvent(event_1);\n }\n else {\n _this.columnModel.setColumnAggFunc(_this.column, value, \"toolPanelDragAndDrop\");\n }\n };\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n var aggFuncString = value.toString();\n var aggFuncStringTranslated = localeTextFunc(aggFuncString, aggFuncString);\n var comp = new AggItemComp(itemSelected, aggFuncStringTranslated);\n return comp;\n };\n DropZoneColumnComp.prototype.addElementClasses = function (el, suffix) {\n suffix = suffix ? \"-\" + suffix : '';\n var direction = this.horizontal ? 'horizontal' : 'vertical';\n el.classList.add(\"ag-column-drop-cell\" + suffix, \"ag-column-drop-\" + direction + \"-cell\" + suffix);\n };\n DropZoneColumnComp.prototype.isAggregationZone = function () {\n return this.dropZonePurpose === 'aggregation';\n };\n DropZoneColumnComp.prototype.isGroupingZone = function () {\n return this.dropZonePurpose === 'rowGroup';\n };\n DropZoneColumnComp.EVENT_COLUMN_REMOVE = 'columnRemove';\n DropZoneColumnComp.TEMPLATE = \"\\n \\n \\n \\n \\n \";\n __decorate$2l([\n Autowired('dragAndDropService')\n ], DropZoneColumnComp.prototype, \"dragAndDropService\", void 0);\n __decorate$2l([\n Autowired('columnModel')\n ], DropZoneColumnComp.prototype, \"columnModel\", void 0);\n __decorate$2l([\n Autowired('popupService')\n ], DropZoneColumnComp.prototype, \"popupService\", void 0);\n __decorate$2l([\n Optional('aggFuncService')\n ], DropZoneColumnComp.prototype, \"aggFuncService\", void 0);\n __decorate$2l([\n Autowired('sortController')\n ], DropZoneColumnComp.prototype, \"sortController\", void 0);\n __decorate$2l([\n RefSelector('eText')\n ], DropZoneColumnComp.prototype, \"eText\", void 0);\n __decorate$2l([\n RefSelector('eDragHandle')\n ], DropZoneColumnComp.prototype, \"eDragHandle\", void 0);\n __decorate$2l([\n RefSelector('eButton')\n ], DropZoneColumnComp.prototype, \"eButton\", void 0);\n __decorate$2l([\n RefSelector('eSortIndicator')\n ], DropZoneColumnComp.prototype, \"eSortIndicator\", void 0);\n __decorate$2l([\n PostConstruct\n ], DropZoneColumnComp.prototype, \"init\", null);\n return DropZoneColumnComp;\n}(Component));\nvar AggItemComp = /** @class */ (function (_super) {\n __extends$3b(AggItemComp, _super);\n function AggItemComp(itemSelected, value) {\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.selectItem = itemSelected;\n _this.getGui().innerText = value;\n _this.addGuiEventListener('click', _this.selectItem);\n return _this;\n }\n return AggItemComp;\n}(Component));\n\nvar __extends$3a = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$1i = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$N = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar BaseDropZonePanel = /** @class */ (function (_super) {\n __extends$3a(BaseDropZonePanel, _super);\n function BaseDropZonePanel(horizontal, dropZonePurpose) {\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.horizontal = horizontal;\n _this.dropZonePurpose = dropZonePurpose;\n _this.state = BaseDropZonePanel.STATE_NOT_DRAGGING;\n _this.guiDestroyFunctions = [];\n _this.childColumnComponents = [];\n _this.resizeEnabled = false;\n _this.addElementClasses(_this.getGui());\n _this.eColumnDropList = document.createElement('div');\n _this.addElementClasses(_this.eColumnDropList, 'list');\n _.setAriaRole(_this.eColumnDropList, 'listbox');\n return _this;\n }\n BaseDropZonePanel.prototype.isHorizontal = function () {\n return this.horizontal;\n };\n BaseDropZonePanel.prototype.toggleResizable = function (resizable) {\n this.positionableFeature.setResizable(resizable ? { bottom: true } : false);\n this.resizeEnabled = resizable;\n };\n BaseDropZonePanel.prototype.setBeans = function (beans) {\n this.beans = beans;\n };\n BaseDropZonePanel.prototype.destroy = function () {\n this.destroyGui();\n _super.prototype.destroy.call(this);\n };\n BaseDropZonePanel.prototype.destroyGui = function () {\n this.guiDestroyFunctions.forEach(function (func) { return func(); });\n this.guiDestroyFunctions.length = 0;\n this.childColumnComponents.length = 0;\n _.clearElement(this.getGui());\n _.clearElement(this.eColumnDropList);\n };\n BaseDropZonePanel.prototype.init = function (params) {\n this.params = params;\n this.createManagedBean(new ManagedFocusFeature(this.getFocusableElement(), {\n handleKeyDown: this.handleKeyDown.bind(this)\n }));\n this.addManagedListener(this.beans.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.refreshGui.bind(this));\n this.addManagedPropertyListener('functionsReadOnly', this.refreshGui.bind(this));\n this.setupDropTarget();\n this.positionableFeature = new PositionableFeature(this.getGui(), { minHeight: 100 });\n this.createManagedBean(this.positionableFeature);\n // we don't know if this bean will be initialised before columnModel.\n // if columnModel first, then below will work\n // if columnModel second, then below will put blank in, and then above event gets first when columnModel is set up\n this.refreshGui();\n _.setAriaLabel(this.eColumnDropList, this.getAriaLabel());\n };\n BaseDropZonePanel.prototype.handleKeyDown = function (e) {\n var isVertical = !this.horizontal;\n var isNext = e.key === KeyCode.DOWN;\n var isPrevious = e.key === KeyCode.UP;\n if (!isVertical) {\n var isRtl = this.gridOptionsService.is('enableRtl');\n isNext = (!isRtl && e.key === KeyCode.RIGHT) || (isRtl && e.key === KeyCode.LEFT);\n isPrevious = (!isRtl && e.key === KeyCode.LEFT) || (isRtl && e.key === KeyCode.RIGHT);\n }\n if (!isNext && !isPrevious) {\n return;\n }\n var el = this.focusService.findNextFocusableElement(this.getFocusableElement(), false, isPrevious);\n if (el) {\n e.preventDefault();\n el.focus();\n }\n };\n BaseDropZonePanel.prototype.addElementClasses = function (el, suffix) {\n suffix = suffix ? \"-\" + suffix : '';\n var direction = this.horizontal ? 'horizontal' : 'vertical';\n el.classList.add(\"ag-column-drop\" + suffix, \"ag-column-drop-\" + direction + suffix);\n };\n BaseDropZonePanel.prototype.setupDropTarget = function () {\n this.dropTarget = {\n getContainer: this.getGui.bind(this),\n getIconName: this.getIconName.bind(this),\n onDragging: this.onDragging.bind(this),\n onDragEnter: this.onDragEnter.bind(this),\n onDragLeave: this.onDragLeave.bind(this),\n onDragStop: this.onDragStop.bind(this),\n isInterestedIn: this.isInterestedIn.bind(this)\n };\n this.beans.dragAndDropService.addDropTarget(this.dropTarget);\n };\n BaseDropZonePanel.prototype.isInterestedIn = function (type) {\n // not interested in row drags\n return type === DragSourceType.HeaderCell || type === DragSourceType.ToolPanel;\n };\n BaseDropZonePanel.prototype.checkInsertIndex = function (draggingEvent) {\n var newIndex = this.getNewInsertIndex(draggingEvent);\n // <0 happens when drag is no a direction we are interested in, eg drag is up/down but in horizontal panel\n if (newIndex < 0) {\n return false;\n }\n var changed = newIndex !== this.insertIndex;\n if (changed) {\n this.insertIndex = newIndex;\n }\n return changed;\n };\n BaseDropZonePanel.prototype.getNewInsertIndex = function (draggingEvent) {\n var _this = this;\n var mouseEvent = draggingEvent.event;\n var mouseLocation = this.horizontal ? mouseEvent.clientX : mouseEvent.clientY;\n var boundsList = this.childColumnComponents.map(function (col) { return (col.getGui().getBoundingClientRect()); });\n // find the non-ghost component we're hovering\n var hoveredIndex = boundsList.findIndex(function (rect) { return (_this.horizontal ? (rect.right > mouseLocation && rect.left < mouseLocation) : (rect.top < mouseLocation && rect.bottom > mouseLocation)); });\n // not hovering a non-ghost component\n if (hoveredIndex === -1) {\n var enableRtl = this.beans.gridOptionsService.is('enableRtl');\n // if mouse is below or right of all components then new index should be placed last\n var isLast = boundsList.every(function (rect) { return (mouseLocation > (_this.horizontal ? rect.right : rect.bottom)); });\n if (isLast) {\n return enableRtl && this.horizontal ? 0 : this.childColumnComponents.length;\n }\n // if mouse is above or left of all components, new index is first\n var isFirst = boundsList.every(function (rect) { return (mouseLocation < (_this.horizontal ? rect.left : rect.top)); });\n if (isFirst) {\n return enableRtl && this.horizontal ? this.childColumnComponents.length : 0;\n }\n // must be hovering a ghost, don't change the index\n return this.insertIndex;\n }\n // if the old index is equal to or less than the index of our new target\n // we need to shift right, to insert after rather than before\n if (this.insertIndex <= hoveredIndex) {\n return hoveredIndex + 1;\n }\n return hoveredIndex;\n };\n BaseDropZonePanel.prototype.checkDragStartedBySelf = function (draggingEvent) {\n if (this.state !== BaseDropZonePanel.STATE_NOT_DRAGGING) {\n return;\n }\n this.state = BaseDropZonePanel.STATE_REARRANGE_COLUMNS;\n this.potentialDndColumns = draggingEvent.dragSource.getDragItem().columns || [];\n this.refreshGui();\n this.checkInsertIndex(draggingEvent);\n this.refreshGui();\n };\n BaseDropZonePanel.prototype.onDragging = function (draggingEvent) {\n this.checkDragStartedBySelf(draggingEvent);\n if (this.checkInsertIndex(draggingEvent)) {\n this.refreshGui();\n }\n };\n BaseDropZonePanel.prototype.onDragEnter = function (draggingEvent) {\n // this will contain all columns that are potential drops\n var dragColumns = draggingEvent.dragSource.getDragItem().columns || [];\n this.state = BaseDropZonePanel.STATE_NEW_COLUMNS_IN;\n // take out columns that are not droppable\n var goodDragColumns = dragColumns.filter(this.isColumnDroppable.bind(this));\n if (goodDragColumns.length > 0) {\n var hideColumnOnExit = this.isRowGroupPanel() && !this.gridOptionsService.is('suppressRowGroupHidesColumns') && !draggingEvent.fromNudge;\n if (hideColumnOnExit) {\n var dragItem = draggingEvent.dragSource.getDragItem();\n var columns = dragItem.columns;\n this.setColumnsVisible(columns, false, \"uiColumnDragged\");\n }\n this.potentialDndColumns = goodDragColumns;\n this.checkInsertIndex(draggingEvent);\n this.refreshGui();\n }\n };\n BaseDropZonePanel.prototype.setColumnsVisible = function (columns, visible, source) {\n if (source === void 0) { source = \"api\"; }\n if (columns) {\n var allowedCols = columns.filter(function (c) { return !c.getColDef().lockVisible; });\n this.colModel.setColumnsVisible(allowedCols, visible, source);\n }\n };\n BaseDropZonePanel.prototype.isPotentialDndColumns = function () {\n return _.existsAndNotEmpty(this.potentialDndColumns);\n };\n BaseDropZonePanel.prototype.isRowGroupPanel = function () {\n return this.dropZonePurpose === 'rowGroup';\n };\n BaseDropZonePanel.prototype.onDragLeave = function (draggingEvent) {\n // if the dragging started from us, we remove the group, however if it started\n // some place else, then we don't, as it was only 'asking'\n if (this.state === BaseDropZonePanel.STATE_REARRANGE_COLUMNS) {\n var columns = draggingEvent.dragSource.getDragItem().columns || [];\n this.removeColumns(columns);\n }\n if (this.isPotentialDndColumns()) {\n var showColumnOnExit = this.isRowGroupPanel() && !this.gridOptionsService.is('suppressMakeColumnVisibleAfterUnGroup') && !draggingEvent.fromNudge;\n if (showColumnOnExit) {\n var dragItem = draggingEvent.dragSource.getDragItem();\n this.setColumnsVisible(dragItem.columns, true, \"uiColumnDragged\");\n }\n this.potentialDndColumns = [];\n this.refreshGui();\n }\n this.state = BaseDropZonePanel.STATE_NOT_DRAGGING;\n };\n BaseDropZonePanel.prototype.onDragStop = function () {\n if (this.isPotentialDndColumns()) {\n var success = false;\n if (this.state === BaseDropZonePanel.STATE_NEW_COLUMNS_IN) {\n this.addColumns(this.potentialDndColumns);\n success = true;\n }\n else {\n success = this.rearrangeColumns(this.potentialDndColumns);\n }\n this.potentialDndColumns = [];\n // If the function is passive, then we don't refresh, as we assume the client application\n // is going to call setRowGroups / setPivots / setValues at a later point which will then\n // cause a refresh. This gives a nice GUI where the ghost stays until the app has caught\n // up with the changes. However, if there was no change in the order, then we do need to\n // refresh to reset the columns\n if (!this.beans.gridOptionsService.is('functionsPassive') || !success) {\n this.refreshGui();\n }\n }\n this.state = BaseDropZonePanel.STATE_NOT_DRAGGING;\n };\n BaseDropZonePanel.prototype.removeColumns = function (columnsToRemove) {\n var newColumnList = this.getExistingColumns().filter(function (col) { return !_.includes(columnsToRemove, col); });\n this.updateColumns(newColumnList);\n };\n BaseDropZonePanel.prototype.addColumns = function (columnsToAdd) {\n if (!columnsToAdd) {\n return;\n }\n var newColumnList = this.getExistingColumns().slice();\n var colsToAddNoDuplicates = columnsToAdd.filter(function (col) { return newColumnList.indexOf(col) < 0; });\n _.insertArrayIntoArray(newColumnList, colsToAddNoDuplicates, this.insertIndex);\n this.updateColumns(newColumnList);\n };\n BaseDropZonePanel.prototype.rearrangeColumns = function (columnsToAdd) {\n var newColumnList = this.getNonGhostColumns().slice();\n _.insertArrayIntoArray(newColumnList, columnsToAdd, this.insertIndex);\n if (_.areEqual(newColumnList, this.getExistingColumns())) {\n return false;\n }\n this.updateColumns(newColumnList);\n return true;\n };\n BaseDropZonePanel.prototype.refreshGui = function () {\n // we reset the scroll position after the refresh.\n // if we don't do this, then the list will always scroll to the top\n // each time we refresh it. this is because part of the refresh empties\n // out the list which sets scroll to zero. so the user could be just\n // reordering the list - we want to prevent the resetting of the scroll.\n // this is relevant for vertical display only (as horizontal has no scroll)\n var scrollTop = this.eColumnDropList.scrollTop;\n var resizeEnabled = this.resizeEnabled;\n var focusedIndex = this.getFocusedItem();\n var alternateElement = this.focusService.findNextFocusableElement();\n if (!alternateElement) {\n alternateElement = this.focusService.findNextFocusableElement(undefined, false, true);\n }\n this.toggleResizable(false);\n this.destroyGui();\n this.addIconAndTitleToGui();\n this.addEmptyMessageToGui();\n this.addColumnsToGui();\n if (!this.isHorizontal()) {\n this.eColumnDropList.scrollTop = scrollTop;\n }\n if (resizeEnabled) {\n this.toggleResizable(resizeEnabled);\n }\n // focus should only be restored when keyboard mode\n // otherwise mouse clicks will cause containers to scroll\n // without no apparent reason.\n if (this.focusService.isKeyboardMode()) {\n this.restoreFocus(focusedIndex, alternateElement);\n }\n };\n BaseDropZonePanel.prototype.getFocusedItem = function () {\n var eGui = this.getGui();\n var activeElement = this.gridOptionsService.getDocument().activeElement;\n if (!eGui.contains(activeElement)) {\n return -1;\n }\n var items = Array.from(eGui.querySelectorAll('.ag-column-drop-cell'));\n return items.indexOf(activeElement);\n };\n BaseDropZonePanel.prototype.restoreFocus = function (index, alternateElement) {\n var eGui = this.getGui();\n var items = Array.from(eGui.querySelectorAll('.ag-column-drop-cell'));\n if (index === -1) {\n return;\n }\n if (items.length === 0) {\n alternateElement.focus();\n }\n var indexToFocus = Math.min(items.length - 1, index);\n var el = items[indexToFocus];\n if (el) {\n el.focus();\n }\n };\n BaseDropZonePanel.prototype.getNonGhostColumns = function () {\n var _this = this;\n var existingColumns = this.getExistingColumns();\n if (this.isPotentialDndColumns()) {\n return existingColumns.filter(function (column) { return !_.includes(_this.potentialDndColumns, column); });\n }\n return existingColumns;\n };\n BaseDropZonePanel.prototype.addColumnsToGui = function () {\n var _this = this;\n var nonGhostColumns = this.getNonGhostColumns();\n var itemsToAddToGui = nonGhostColumns.map(function (column) { return (_this.createColumnComponent(column, false)); });\n if (this.isPotentialDndColumns()) {\n var dndColumns = this.potentialDndColumns.map(function (column) { return (_this.createColumnComponent(column, true)); });\n if (this.insertIndex >= itemsToAddToGui.length) {\n itemsToAddToGui.push.apply(itemsToAddToGui, __spreadArray$N([], __read$1i(dndColumns)));\n }\n else {\n itemsToAddToGui.splice.apply(itemsToAddToGui, __spreadArray$N([this.insertIndex, 0], __read$1i(dndColumns)));\n }\n }\n this.appendChild(this.eColumnDropList);\n itemsToAddToGui.forEach(function (columnComponent, index) {\n if (index > 0) {\n _this.addArrow(_this.eColumnDropList);\n }\n _this.eColumnDropList.appendChild(columnComponent.getGui());\n });\n this.addAriaLabelsToComponents();\n };\n BaseDropZonePanel.prototype.addAriaLabelsToComponents = function () {\n var _this = this;\n this.childColumnComponents.forEach(function (comp, idx) {\n var eGui = comp.getGui();\n _.setAriaPosInSet(eGui, idx + 1);\n _.setAriaSetSize(eGui, _this.childColumnComponents.length);\n });\n };\n BaseDropZonePanel.prototype.createColumnComponent = function (column, ghost) {\n var _this = this;\n var columnComponent = new DropZoneColumnComp(column, this.dropTarget, ghost, this.dropZonePurpose, this.horizontal);\n columnComponent.addEventListener(DropZoneColumnComp.EVENT_COLUMN_REMOVE, this.removeColumns.bind(this, [column]));\n this.beans.context.createBean(columnComponent);\n this.guiDestroyFunctions.push(function () { return _this.destroyBean(columnComponent); });\n if (!ghost) {\n this.childColumnComponents.push(columnComponent);\n }\n return columnComponent;\n };\n BaseDropZonePanel.prototype.addIconAndTitleToGui = function () {\n var eGroupIcon = this.params.icon;\n var eTitleBar = document.createElement('div');\n _.setAriaHidden(eTitleBar, true);\n this.addElementClasses(eTitleBar, 'title-bar');\n this.addElementClasses(eGroupIcon, 'icon');\n this.addOrRemoveCssClass('ag-column-drop-empty', this.isExistingColumnsEmpty());\n eTitleBar.appendChild(eGroupIcon);\n if (!this.horizontal) {\n var eTitle = document.createElement('span');\n this.addElementClasses(eTitle, 'title');\n eTitle.innerHTML = this.params.title;\n eTitleBar.appendChild(eTitle);\n }\n this.appendChild(eTitleBar);\n };\n BaseDropZonePanel.prototype.isExistingColumnsEmpty = function () {\n return this.getExistingColumns().length === 0;\n };\n BaseDropZonePanel.prototype.addEmptyMessageToGui = function () {\n if (!this.isExistingColumnsEmpty() || this.isPotentialDndColumns()) {\n return;\n }\n var eMessage = document.createElement('span');\n eMessage.innerHTML = this.params.emptyMessage;\n this.addElementClasses(eMessage, 'empty-message');\n this.eColumnDropList.appendChild(eMessage);\n };\n BaseDropZonePanel.prototype.addArrow = function (eParent) {\n // only add the arrows if the layout is horizontal\n if (this.horizontal) {\n // for RTL it's a left arrow, otherwise it's a right arrow\n var enableRtl = this.beans.gridOptionsService.is('enableRtl');\n var icon = _.createIconNoSpan(enableRtl ? 'smallLeft' : 'smallRight', this.beans.gridOptionsService);\n this.addElementClasses(icon, 'cell-separator');\n eParent.appendChild(icon);\n }\n };\n BaseDropZonePanel.STATE_NOT_DRAGGING = 'notDragging';\n BaseDropZonePanel.STATE_NEW_COLUMNS_IN = 'newColumnsIn';\n BaseDropZonePanel.STATE_REARRANGE_COLUMNS = 'rearrangeColumns';\n __decorate$2k([\n Autowired('columnModel')\n ], BaseDropZonePanel.prototype, \"colModel\", void 0);\n __decorate$2k([\n Autowired('focusService')\n ], BaseDropZonePanel.prototype, \"focusService\", void 0);\n return BaseDropZonePanel;\n}(Component));\n\nvar __extends$39 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RowGroupDropZonePanel = /** @class */ (function (_super) {\n __extends$39(RowGroupDropZonePanel, _super);\n function RowGroupDropZonePanel(horizontal) {\n return _super.call(this, horizontal, 'rowGroup') || this;\n }\n RowGroupDropZonePanel.prototype.passBeansUp = function () {\n _super.prototype.setBeans.call(this, {\n gridOptionsService: this.gridOptionsService,\n eventService: this.eventService,\n context: this.getContext(),\n loggerFactory: this.loggerFactory,\n dragAndDropService: this.dragAndDropService\n });\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n var emptyMessage = localeTextFunc('rowGroupColumnsEmptyMessage', 'Drag here to set row groups');\n var title = localeTextFunc('groups', 'Row Groups');\n _super.prototype.init.call(this, {\n dragAndDropIcon: DragAndDropService.ICON_GROUP,\n icon: _.createIconNoSpan('rowGroupPanel', this.gridOptionsService, null),\n emptyMessage: emptyMessage,\n title: title\n });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.refreshGui.bind(this));\n };\n RowGroupDropZonePanel.prototype.getAriaLabel = function () {\n var translate = this.localeService.getLocaleTextFunc();\n var label = translate('ariaRowGroupDropZonePanelLabel', 'Row Groups');\n return label;\n };\n RowGroupDropZonePanel.prototype.getTooltipParams = function () {\n var res = _super.prototype.getTooltipParams.call(this);\n res.location = 'rowGroupColumnsList';\n return res;\n };\n RowGroupDropZonePanel.prototype.isColumnDroppable = function (column) {\n // we never allow grouping of secondary columns\n if (this.gridOptionsService.is('functionsReadOnly') || !column.isPrimary()) {\n return false;\n }\n return column.isAllowRowGroup() && !column.isRowGroupActive();\n };\n RowGroupDropZonePanel.prototype.updateColumns = function (columns) {\n if (this.gridOptionsService.is('functionsPassive')) {\n var event_1 = {\n type: Events.EVENT_COLUMN_ROW_GROUP_CHANGE_REQUEST,\n columns: columns\n };\n this.eventService.dispatchEvent(event_1);\n }\n else {\n this.columnModel.setRowGroupColumns(columns, \"toolPanelUi\");\n }\n };\n RowGroupDropZonePanel.prototype.getIconName = function () {\n return this.isPotentialDndColumns() ? DragAndDropService.ICON_GROUP : DragAndDropService.ICON_NOT_ALLOWED;\n };\n RowGroupDropZonePanel.prototype.getExistingColumns = function () {\n return this.columnModel.getRowGroupColumns();\n };\n __decorate$2j([\n Autowired('columnModel')\n ], RowGroupDropZonePanel.prototype, \"columnModel\", void 0);\n __decorate$2j([\n Autowired('loggerFactory')\n ], RowGroupDropZonePanel.prototype, \"loggerFactory\", void 0);\n __decorate$2j([\n Autowired('dragAndDropService')\n ], RowGroupDropZonePanel.prototype, \"dragAndDropService\", void 0);\n __decorate$2j([\n PostConstruct\n ], RowGroupDropZonePanel.prototype, \"passBeansUp\", null);\n return RowGroupDropZonePanel;\n}(BaseDropZonePanel));\n\nvar __extends$38 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PivotDropZonePanel = /** @class */ (function (_super) {\n __extends$38(PivotDropZonePanel, _super);\n function PivotDropZonePanel(horizontal) {\n return _super.call(this, horizontal, 'pivot') || this;\n }\n PivotDropZonePanel.prototype.passBeansUp = function () {\n _super.prototype.setBeans.call(this, {\n gridOptionsService: this.gridOptionsService,\n eventService: this.eventService,\n context: this.getContext(),\n loggerFactory: this.loggerFactory,\n dragAndDropService: this.dragAndDropService\n });\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n var emptyMessage = localeTextFunc('pivotColumnsEmptyMessage', 'Drag here to set column labels');\n var title = localeTextFunc('pivots', 'Column Labels');\n _super.prototype.init.call(this, {\n dragAndDropIcon: DragAndDropService.ICON_GROUP,\n icon: _.createIconNoSpan('pivotPanel', this.gridOptionsService, null),\n emptyMessage: emptyMessage,\n title: title\n });\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.refresh.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_CHANGED, this.refresh.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, this.checkVisibility.bind(this));\n this.refresh();\n };\n PivotDropZonePanel.prototype.getAriaLabel = function () {\n var translate = this.localeService.getLocaleTextFunc();\n var label = translate('ariaPivotDropZonePanelLabel', 'Column Labels');\n return label;\n };\n PivotDropZonePanel.prototype.getTooltipParams = function () {\n var res = _super.prototype.getTooltipParams.call(this);\n res.location = 'pivotColumnsList';\n return res;\n };\n PivotDropZonePanel.prototype.refresh = function () {\n this.checkVisibility();\n this.refreshGui();\n };\n PivotDropZonePanel.prototype.checkVisibility = function () {\n var pivotMode = this.columnModel.isPivotMode();\n if (this.isHorizontal()) {\n // what we do for horizontal (ie the pivot panel at the top) depends\n // on the user property as well as pivotMode.\n switch (this.gridOptionsService.get('pivotPanelShow')) {\n case 'always':\n this.setDisplayed(pivotMode);\n break;\n case 'onlyWhenPivoting':\n var pivotActive = this.columnModel.isPivotActive();\n this.setDisplayed(pivotMode && pivotActive);\n break;\n default:\n // never show it\n this.setDisplayed(false);\n break;\n }\n }\n else {\n // in toolPanel, the pivot panel is always shown when pivot mode is on\n this.setDisplayed(pivotMode);\n }\n };\n PivotDropZonePanel.prototype.isColumnDroppable = function (column) {\n // we never allow grouping of secondary columns\n if (this.gridOptionsService.is('functionsReadOnly') || !column.isPrimary()) {\n return false;\n }\n return column.isAllowPivot() && !column.isPivotActive();\n };\n PivotDropZonePanel.prototype.updateColumns = function (columns) {\n if (this.gridOptionsService.is('functionsPassive')) {\n var event_1 = {\n type: Events.EVENT_COLUMN_PIVOT_CHANGE_REQUEST,\n columns: columns\n };\n this.eventService.dispatchEvent(event_1);\n }\n else {\n this.columnModel.setPivotColumns(columns, \"toolPanelUi\");\n }\n };\n PivotDropZonePanel.prototype.getIconName = function () {\n return this.isPotentialDndColumns() ? DragAndDropService.ICON_PIVOT : DragAndDropService.ICON_NOT_ALLOWED;\n };\n PivotDropZonePanel.prototype.getExistingColumns = function () {\n return this.columnModel.getPivotColumns();\n };\n __decorate$2i([\n Autowired('columnModel')\n ], PivotDropZonePanel.prototype, \"columnModel\", void 0);\n __decorate$2i([\n Autowired('loggerFactory')\n ], PivotDropZonePanel.prototype, \"loggerFactory\", void 0);\n __decorate$2i([\n Autowired('dragAndDropService')\n ], PivotDropZonePanel.prototype, \"dragAndDropService\", void 0);\n __decorate$2i([\n PostConstruct\n ], PivotDropZonePanel.prototype, \"passBeansUp\", null);\n return PivotDropZonePanel;\n}(BaseDropZonePanel));\n\nvar __extends$37 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GridHeaderDropZones = /** @class */ (function (_super) {\n __extends$37(GridHeaderDropZones, _super);\n function GridHeaderDropZones() {\n return _super.call(this) || this;\n }\n GridHeaderDropZones.prototype.postConstruct = function () {\n this.setGui(this.createNorthPanel());\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.onRowGroupChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.onRowGroupChanged.bind(this));\n this.addManagedPropertyListener('rowGroupPanelShow', this.onRowGroupChanged.bind(this));\n this.onRowGroupChanged();\n };\n GridHeaderDropZones.prototype.createNorthPanel = function () {\n var topPanelGui = document.createElement('div');\n var dropPanelVisibleListener = this.onDropPanelVisible.bind(this);\n topPanelGui.classList.add('ag-column-drop-wrapper');\n _.setAriaRole(topPanelGui, 'presentation');\n this.rowGroupComp = new RowGroupDropZonePanel(true);\n this.createManagedBean(this.rowGroupComp);\n this.pivotComp = new PivotDropZonePanel(true);\n this.createManagedBean(this.pivotComp);\n topPanelGui.appendChild(this.rowGroupComp.getGui());\n topPanelGui.appendChild(this.pivotComp.getGui());\n this.addManagedListener(this.rowGroupComp, Component.EVENT_DISPLAYED_CHANGED, dropPanelVisibleListener);\n this.addManagedListener(this.pivotComp, Component.EVENT_DISPLAYED_CHANGED, dropPanelVisibleListener);\n this.onDropPanelVisible();\n return topPanelGui;\n };\n GridHeaderDropZones.prototype.onDropPanelVisible = function () {\n var bothDisplayed = this.rowGroupComp.isDisplayed() && this.pivotComp.isDisplayed();\n this.rowGroupComp.addOrRemoveCssClass('ag-column-drop-horizontal-half-width', bothDisplayed);\n this.pivotComp.addOrRemoveCssClass('ag-column-drop-horizontal-half-width', bothDisplayed);\n };\n GridHeaderDropZones.prototype.onRowGroupChanged = function () {\n if (!this.rowGroupComp) {\n return;\n }\n var rowGroupPanelShow = this.gridOptionsService.get('rowGroupPanelShow');\n if (rowGroupPanelShow === 'always') {\n this.rowGroupComp.setDisplayed(true);\n }\n else if (rowGroupPanelShow === 'onlyWhenGrouping') {\n var grouping = !this.columnModel.isRowGroupEmpty();\n this.rowGroupComp.setDisplayed(grouping);\n }\n else {\n this.rowGroupComp.setDisplayed(false);\n }\n };\n __decorate$2h([\n Autowired('columnModel')\n ], GridHeaderDropZones.prototype, \"columnModel\", void 0);\n __decorate$2h([\n PostConstruct\n ], GridHeaderDropZones.prototype, \"postConstruct\", null);\n return GridHeaderDropZones;\n}(Component));\n\nvar __extends$36 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FilterAggregatesStage = /** @class */ (function (_super) {\n __extends$36(FilterAggregatesStage, _super);\n function FilterAggregatesStage() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FilterAggregatesStage.prototype.execute = function (params) {\n var _this = this;\n var isPivotMode = this.columnModel.isPivotMode();\n var isAggFilterActive = this.filterManager.isAggregateFilterPresent()\n || this.filterManager.isAggregateQuickFilterPresent();\n // This is the default filter for applying only to leaf nodes, realistically this should not apply as primary agg columns,\n // should not be applied by the filterManager if getGroupAggFiltering is missing. Predicate will apply filters to leaf level.\n var defaultPrimaryColumnPredicate = function (params) { return !params.node.group; };\n // Default secondary column predicate, selecting only leaf level groups.\n var defaultSecondaryColumnPredicate = (function (params) { return params.node.leafGroup; });\n // The predicate to determine whether filters should apply to this row. Either defined by the user in groupAggFiltering or a default depending\n // on current pivot mode status.\n var applyFilterToNode = this.gridOptionsService.getGroupAggFiltering()\n || (isPivotMode ? defaultSecondaryColumnPredicate : defaultPrimaryColumnPredicate);\n var changedPath = params.changedPath;\n var preserveChildren = function (node, recursive) {\n if (recursive === void 0) { recursive = false; }\n if (node.childrenAfterFilter) {\n node.childrenAfterAggFilter = node.childrenAfterFilter;\n if (recursive) {\n node.childrenAfterAggFilter.forEach(function (child) { return preserveChildren(child, recursive); });\n }\n _this.setAllChildrenCount(node);\n }\n if (node.sibling) {\n node.sibling.childrenAfterAggFilter = node.childrenAfterAggFilter;\n }\n };\n var filterChildren = function (node) {\n var _a;\n node.childrenAfterAggFilter = ((_a = node.childrenAfterFilter) === null || _a === void 0 ? void 0 : _a.filter(function (child) {\n var _a;\n var shouldFilterRow = applyFilterToNode({ node: child });\n if (shouldFilterRow) {\n var doesNodePassFilter = _this.filterManager.doesRowPassAggregateFilters({ rowNode: child });\n if (doesNodePassFilter) {\n // Node has passed, so preserve children\n preserveChildren(child, true);\n return true;\n }\n }\n var hasChildPassed = (_a = child.childrenAfterAggFilter) === null || _a === void 0 ? void 0 : _a.length;\n return hasChildPassed;\n })) || null;\n _this.setAllChildrenCount(node);\n if (node.sibling) {\n node.sibling.childrenAfterAggFilter = node.childrenAfterAggFilter;\n }\n };\n changedPath.forEachChangedNodeDepthFirst(isAggFilterActive ? filterChildren : preserveChildren, true);\n };\n FilterAggregatesStage.prototype.setAllChildrenCountTreeData = function (rowNode) {\n // for tree data, we include all children, groups and leafs\n var allChildrenCount = 0;\n rowNode.childrenAfterAggFilter.forEach(function (child) {\n // include child itself\n allChildrenCount++;\n // include children of children\n allChildrenCount += child.allChildrenCount;\n });\n rowNode.setAllChildrenCount(allChildrenCount);\n };\n FilterAggregatesStage.prototype.setAllChildrenCountGridGrouping = function (rowNode) {\n // for grid data, we only count the leafs\n var allChildrenCount = 0;\n rowNode.childrenAfterAggFilter.forEach(function (child) {\n if (child.group) {\n allChildrenCount += child.allChildrenCount;\n }\n else {\n allChildrenCount++;\n }\n });\n rowNode.setAllChildrenCount(allChildrenCount);\n };\n FilterAggregatesStage.prototype.setAllChildrenCount = function (rowNode) {\n if (!rowNode.hasChildren()) {\n rowNode.setAllChildrenCount(null);\n return;\n }\n if (this.gridOptionsService.is('treeData')) {\n this.setAllChildrenCountTreeData(rowNode);\n }\n else {\n this.setAllChildrenCountGridGrouping(rowNode);\n }\n };\n __decorate$2g([\n Autowired('filterManager')\n ], FilterAggregatesStage.prototype, \"filterManager\", void 0);\n __decorate$2g([\n Autowired('columnModel')\n ], FilterAggregatesStage.prototype, \"columnModel\", void 0);\n FilterAggregatesStage = __decorate$2g([\n Bean('filterAggregatesStage')\n ], FilterAggregatesStage);\n return FilterAggregatesStage;\n}(BeanStub));\n\n// DO NOT UPDATE MANUALLY: Generated from script during build time\nvar VERSION$g = '30.2.0';\n\nvar __extends$35 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GroupFilter = /** @class */ (function (_super) {\n __extends$35(GroupFilter, _super);\n function GroupFilter() {\n return _super.call(this, /* html */ \"\\n
\\n
\\n
\\n
\\n \") || this;\n }\n GroupFilter.prototype.postConstruct = function () {\n this.initialiseTabGuard({});\n };\n GroupFilter.prototype.init = function (params) {\n var _this = this;\n this.params = params;\n this.validateParams();\n return this.updateGroups().then(function () {\n _this.addManagedListener(_this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, function () { return _this.onColumnRowGroupChanged(); });\n });\n };\n GroupFilter.prototype.validateParams = function () {\n var colDef = this.params.colDef;\n if (colDef.field) {\n _.doOnce(function () { return console.warn('AG Grid: Group Column Filter does not work with the colDef property \"field\". This property will be ignored.'); }, 'groupFilterFieldParam');\n }\n if (colDef.filterValueGetter) {\n _.doOnce(function () { return console.warn('AG Grid: Group Column Filter does not work with the colDef property \"filterValueGetter\". This property will be ignored.'); }, 'groupFilterFilterValueGetterParam');\n }\n if (colDef.filterParams) {\n _.doOnce(function () { return console.warn('AG Grid: Group Column Filter does not work with the colDef property \"filterParams\". This property will be ignored.'); }, 'groupFilterFilterParams');\n }\n };\n GroupFilter.prototype.updateGroups = function () {\n var sourceColumns = this.updateGroupField();\n return this.getUnderlyingFilters(sourceColumns);\n };\n GroupFilter.prototype.getSourceColumns = function () {\n this.groupColumn = this.params.column;\n if (this.gridOptionsService.is('treeData')) {\n _.doOnce(function () { return console.warn('AG Grid: Group Column Filter does not work with Tree Data enabled. Please disable Tree Data, or use a different filter.'); }, 'groupFilterTreeData');\n return [];\n }\n var sourceColumns = this.columnModel.getSourceColumnsForGroupColumn(this.groupColumn);\n if (!sourceColumns) {\n _.doOnce(function () { return console.warn('AG Grid: Group Column Filter only works on group columns. Please use a different filter.'); }, 'groupFilterNotGroupColumn');\n return [];\n }\n return sourceColumns;\n };\n GroupFilter.prototype.updateGroupField = function () {\n var _this = this;\n _.clearElement(this.eGroupField);\n if (this.eGroupFieldSelect) {\n this.destroyBean(this.eGroupFieldSelect);\n }\n var allSourceColumns = this.getSourceColumns();\n var sourceColumns = allSourceColumns.filter(function (sourceColumn) { return sourceColumn.isFilterAllowed(); });\n if (!sourceColumns.length) {\n this.selectedColumn = undefined;\n _.setDisplayed(this.eGroupField, false);\n return null;\n }\n if (allSourceColumns.length === 1) {\n // we only want to hide the group field element if there's only one group column.\n // If there's one group column that has a filter, but multiple columns in total,\n // we should still show the select so the user knows which column it's for.\n this.selectedColumn = sourceColumns[0];\n _.setDisplayed(this.eGroupField, false);\n }\n else {\n // keep the old selected column if it's still valid\n if (!this.selectedColumn || !sourceColumns.some(function (column) { return column.getId() === _this.selectedColumn.getId(); })) {\n this.selectedColumn = sourceColumns[0];\n }\n this.createGroupFieldSelectElement(sourceColumns);\n this.eGroupField.appendChild(this.eGroupFieldSelect.getGui());\n this.eGroupField.appendChild(_.loadTemplate(/* html */ \"
\"));\n _.setDisplayed(this.eGroupField, true);\n }\n return sourceColumns;\n };\n GroupFilter.prototype.createGroupFieldSelectElement = function (sourceColumns) {\n var _this = this;\n this.eGroupFieldSelect = this.createManagedBean(new AgSelect());\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n this.eGroupFieldSelect.setLabel(localeTextFunc('groupFilterSelect', 'Select field:'));\n this.eGroupFieldSelect.setLabelAlignment('top');\n this.eGroupFieldSelect.addOptions(sourceColumns.map(function (sourceColumn) {\n var _a;\n return ({\n value: sourceColumn.getId(),\n text: (_a = _this.columnModel.getDisplayNameForColumn(sourceColumn, 'groupFilter', false)) !== null && _a !== void 0 ? _a : undefined\n });\n }));\n this.eGroupFieldSelect.setValue(this.selectedColumn.getId());\n this.eGroupFieldSelect.onValueChange(function (newValue) { return _this.updateSelectedColumn(newValue); });\n this.eGroupFieldSelect.addCssClass('ag-group-filter-field-select-wrapper');\n if (sourceColumns.length === 1) {\n this.eGroupFieldSelect.setDisabled(true);\n }\n };\n GroupFilter.prototype.getUnderlyingFilters = function (sourceColumns) {\n var _this = this;\n if (!sourceColumns) {\n this.filterColumnPairs = undefined;\n this.selectedFilter = undefined;\n this.groupColumn.setFilterActive(false, 'columnRowGroupChanged');\n return AgPromise.resolve();\n }\n var filterPromises = [];\n var filterColumnPairs = [];\n sourceColumns.forEach(function (column) {\n var filterWrapper = _this.filterManager.getOrCreateFilterWrapper(column, 'COLUMN_MENU');\n if (filterWrapper === null || filterWrapper === void 0 ? void 0 : filterWrapper.filterPromise) {\n filterPromises.push(filterWrapper.filterPromise.then(function (filter) {\n if (filter) {\n filterColumnPairs.push({\n filter: filter,\n column: column\n });\n }\n if (column.getId() === _this.selectedColumn.getId()) {\n _this.selectedFilter = filter !== null && filter !== void 0 ? filter : undefined;\n }\n return filter;\n }));\n }\n });\n return AgPromise.all(filterPromises).then(function () {\n _this.filterColumnPairs = filterColumnPairs;\n _this.groupColumn.setFilterActive(_this.isFilterActive(), 'columnRowGroupChanged');\n });\n };\n GroupFilter.prototype.addUnderlyingFilterElement = function () {\n var _this = this;\n _.clearElement(this.eUnderlyingFilter);\n if (!this.selectedColumn) {\n return AgPromise.resolve();\n }\n var filterWrapper = this.filterManager.getOrCreateFilterWrapper(this.selectedColumn, 'COLUMN_MENU');\n if (!filterWrapper) {\n return AgPromise.resolve();\n }\n return filterWrapper.guiPromise.then(function (gui) {\n var _a;\n _this.eUnderlyingFilter.appendChild(gui);\n (_a = filterWrapper.filterPromise) === null || _a === void 0 ? void 0 : _a.then(function (filter) {\n var _a, _b;\n (_a = filter === null || filter === void 0 ? void 0 : filter.afterGuiAttached) === null || _a === void 0 ? void 0 : _a.call(filter, _this.afterGuiAttachedParams);\n if (!((_b = _this.afterGuiAttachedParams) === null || _b === void 0 ? void 0 : _b.suppressFocus) && _this.eGroupFieldSelect && !_this.eGroupFieldSelect.isDisabled()) {\n _this.eGroupFieldSelect.getFocusableElement().focus();\n }\n });\n });\n };\n GroupFilter.prototype.updateSelectedColumn = function (columnId) {\n var _a, _b;\n if (!columnId) {\n return;\n }\n (_b = (_a = this.selectedFilter) === null || _a === void 0 ? void 0 : _a.afterGuiDetached) === null || _b === void 0 ? void 0 : _b.call(_a);\n var selectedFilterColumnPair = this.getFilterColumnPair(columnId);\n this.selectedColumn = selectedFilterColumnPair === null || selectedFilterColumnPair === void 0 ? void 0 : selectedFilterColumnPair.column;\n this.selectedFilter = selectedFilterColumnPair === null || selectedFilterColumnPair === void 0 ? void 0 : selectedFilterColumnPair.filter;\n this.dispatchEvent({\n type: GroupFilter.EVENT_SELECTED_COLUMN_CHANGED\n });\n this.addUnderlyingFilterElement();\n };\n GroupFilter.prototype.isFilterActive = function () {\n var _a;\n return !!((_a = this.filterColumnPairs) === null || _a === void 0 ? void 0 : _a.some(function (_a) {\n var filter = _a.filter;\n return filter.isFilterActive();\n }));\n };\n GroupFilter.prototype.doesFilterPass = function () {\n return true;\n };\n GroupFilter.prototype.getModel = function () {\n return null;\n };\n GroupFilter.prototype.setModel = function () {\n return AgPromise.resolve();\n };\n GroupFilter.prototype.afterGuiAttached = function (params) {\n this.afterGuiAttachedParams = params;\n this.addUnderlyingFilterElement();\n };\n GroupFilter.prototype.afterGuiDetached = function () {\n var _a, _b;\n _.clearElement(this.eUnderlyingFilter);\n (_b = (_a = this.selectedFilter) === null || _a === void 0 ? void 0 : _a.afterGuiDetached) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n GroupFilter.prototype.onColumnRowGroupChanged = function () {\n var _this = this;\n this.updateGroups().then(function () {\n _this.dispatchEvent({\n type: GroupFilter.EVENT_COLUMN_ROW_GROUP_CHANGED\n });\n _this.eventService.dispatchEvent({\n type: 'filterAllowedUpdated'\n });\n });\n };\n GroupFilter.prototype.getFilterColumnPair = function (columnId) {\n var _a;\n if (!columnId) {\n return undefined;\n }\n return (_a = this.filterColumnPairs) === null || _a === void 0 ? void 0 : _a.find(function (_a) {\n var column = _a.column;\n return column.getId() === columnId;\n });\n };\n GroupFilter.prototype.getSelectedFilter = function () {\n return this.selectedFilter;\n };\n GroupFilter.prototype.getSelectedColumn = function () {\n return this.selectedColumn;\n };\n GroupFilter.prototype.isFilterAllowed = function () {\n return !!this.selectedColumn;\n };\n GroupFilter.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n GroupFilter.EVENT_COLUMN_ROW_GROUP_CHANGED = 'columnRowGroupChanged';\n GroupFilter.EVENT_SELECTED_COLUMN_CHANGED = 'selectedColumnChanged';\n __decorate$2f([\n Autowired('filterManager')\n ], GroupFilter.prototype, \"filterManager\", void 0);\n __decorate$2f([\n Autowired('columnModel')\n ], GroupFilter.prototype, \"columnModel\", void 0);\n __decorate$2f([\n RefSelector('eGroupField')\n ], GroupFilter.prototype, \"eGroupField\", void 0);\n __decorate$2f([\n RefSelector('eUnderlyingFilter')\n ], GroupFilter.prototype, \"eUnderlyingFilter\", void 0);\n __decorate$2f([\n PostConstruct\n ], GroupFilter.prototype, \"postConstruct\", null);\n return GroupFilter;\n}(TabGuardComp));\n\nvar __extends$34 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GroupFloatingFilterComp = /** @class */ (function (_super) {\n __extends$34(GroupFloatingFilterComp, _super);\n function GroupFloatingFilterComp() {\n var _this = _super.call(this, /* html */ \"\\n
\\n \") || this;\n _this.haveAddedColumnListeners = false;\n return _this;\n }\n GroupFloatingFilterComp.prototype.init = function (params) {\n var _this = this;\n this.params = params;\n // we only support showing the underlying floating filter for multiple group columns\n var canShowUnderlyingFloatingFilter = this.gridOptionsService.get('groupDisplayType') === 'multipleColumns';\n return new AgPromise(function (resolve) {\n _this.params.parentFilterInstance(function (parentFilterInstance) {\n _this.parentFilterInstance = parentFilterInstance;\n if (canShowUnderlyingFloatingFilter) {\n _this.setupUnderlyingFloatingFilterElement().then(function () { return resolve(); });\n }\n else {\n _this.setupReadOnlyFloatingFilterElement();\n resolve();\n }\n });\n }).then(function () {\n _this.addManagedListener(_this.parentFilterInstance, GroupFilter.EVENT_SELECTED_COLUMN_CHANGED, function () { return _this.onSelectedColumnChanged(); });\n _this.addManagedListener(_this.parentFilterInstance, GroupFilter.EVENT_COLUMN_ROW_GROUP_CHANGED, function () { return _this.onColumnRowGroupChanged(); });\n });\n };\n GroupFloatingFilterComp.prototype.onParamsUpdated = function (params) {\n this.params = params;\n this.setParams();\n };\n GroupFloatingFilterComp.prototype.setParams = function () {\n var _a;\n var displayName = this.columnModel.getDisplayNameForColumn(this.params.column, 'header', true);\n var translate = this.localeService.getLocaleTextFunc();\n (_a = this.eFloatingFilterText) === null || _a === void 0 ? void 0 : _a.setInputAriaLabel(displayName + \" \" + translate('ariaFilterInput', 'Filter Input'));\n };\n GroupFloatingFilterComp.prototype.setupReadOnlyFloatingFilterElement = function () {\n var _this = this;\n if (!this.eFloatingFilterText) {\n this.eFloatingFilterText = this.createManagedBean(new AgInputTextField());\n this.eFloatingFilterText\n .setDisabled(true)\n .addGuiEventListener('click', function () { return _this.params.showParentFilter(); });\n this.setParams();\n }\n this.updateDisplayedValue();\n this.eFloatingFilter.appendChild(this.eFloatingFilterText.getGui());\n };\n GroupFloatingFilterComp.prototype.setupUnderlyingFloatingFilterElement = function () {\n var _this = this;\n this.showingUnderlyingFloatingFilter = false;\n this.underlyingFloatingFilter = undefined;\n _.clearElement(this.eFloatingFilter);\n var column = this.parentFilterInstance.getSelectedColumn();\n // we can only show the underlying filter if there is one instance (e.g. the underlying column is not visible)\n if (column && !column.isVisible()) {\n var compDetails = this.filterManager.getFloatingFilterCompDetails(column, this.params.showParentFilter);\n if (compDetails) {\n this.compDetails = compDetails;\n if (!this.haveAddedColumnListeners) {\n this.haveAddedColumnListeners = true;\n this.addManagedListener(column, Column.EVENT_VISIBLE_CHANGED, this.onColumnVisibleChanged.bind(this));\n this.addManagedListener(column, Column.EVENT_COL_DEF_CHANGED, this.onColDefChanged.bind(this));\n }\n return compDetails.newAgStackInstance().then(function (floatingFilter) {\n var _a, _b;\n _this.underlyingFloatingFilter = floatingFilter;\n (_a = _this.underlyingFloatingFilter) === null || _a === void 0 ? void 0 : _a.onParentModelChanged((_b = _this.parentFilterInstance.getSelectedFilter()) === null || _b === void 0 ? void 0 : _b.getModel());\n _this.appendChild(floatingFilter.getGui());\n _this.showingUnderlyingFloatingFilter = true;\n });\n }\n }\n // fallback to the read-only version\n this.setupReadOnlyFloatingFilterElement();\n return AgPromise.resolve();\n };\n GroupFloatingFilterComp.prototype.onColumnVisibleChanged = function () {\n this.setupUnderlyingFloatingFilterElement();\n };\n GroupFloatingFilterComp.prototype.onColDefChanged = function (event) {\n var _a, _b;\n if (!event.column) {\n return;\n }\n var compDetails = this.filterManager.getFloatingFilterCompDetails(event.column, this.params.showParentFilter);\n if (compDetails) {\n (_b = (_a = this.underlyingFloatingFilter) === null || _a === void 0 ? void 0 : _a.onParamsUpdated) === null || _b === void 0 ? void 0 : _b.call(_a, compDetails.params);\n }\n };\n GroupFloatingFilterComp.prototype.onParentModelChanged = function (_model, event) {\n var _a, _b;\n if (this.showingUnderlyingFloatingFilter) {\n (_a = this.underlyingFloatingFilter) === null || _a === void 0 ? void 0 : _a.onParentModelChanged((_b = this.parentFilterInstance.getSelectedFilter()) === null || _b === void 0 ? void 0 : _b.getModel(), event);\n }\n else {\n this.updateDisplayedValue();\n }\n };\n GroupFloatingFilterComp.prototype.updateDisplayedValue = function () {\n if (!this.parentFilterInstance || !this.eFloatingFilterText) {\n return;\n }\n var selectedFilter = this.parentFilterInstance.getSelectedFilter();\n if (!selectedFilter) {\n this.eFloatingFilterText.setValue('');\n this.eFloatingFilterText.setDisplayed(false);\n return;\n }\n this.eFloatingFilterText.setDisplayed(true);\n if (selectedFilter.getModelAsString) {\n var filterModel = selectedFilter.getModel();\n this.eFloatingFilterText.setValue(filterModel == null ? '' : selectedFilter.getModelAsString(filterModel));\n }\n else {\n this.eFloatingFilterText.setValue('');\n }\n };\n GroupFloatingFilterComp.prototype.onSelectedColumnChanged = function () {\n if (!this.showingUnderlyingFloatingFilter) {\n this.updateDisplayedValue();\n }\n };\n GroupFloatingFilterComp.prototype.onColumnRowGroupChanged = function () {\n if (!this.showingUnderlyingFloatingFilter) {\n this.updateDisplayedValue();\n }\n };\n GroupFloatingFilterComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n __decorate$2e([\n Autowired('columnModel')\n ], GroupFloatingFilterComp.prototype, \"columnModel\", void 0);\n __decorate$2e([\n Autowired('filterManager')\n ], GroupFloatingFilterComp.prototype, \"filterManager\", void 0);\n __decorate$2e([\n RefSelector('eFloatingFilter')\n ], GroupFloatingFilterComp.prototype, \"eFloatingFilter\", void 0);\n return GroupFloatingFilterComp;\n}(Component));\n\nvar RowGroupingModule = {\n version: VERSION$g,\n moduleName: ModuleNames.RowGroupingModule,\n beans: [AggregationStage, FilterAggregatesStage, GroupStage, PivotColDefService, PivotStage, AggFuncService],\n agStackComponents: [\n { componentName: 'AgGridHeaderDropZones', componentClass: GridHeaderDropZones }\n ],\n userComponents: [\n { componentName: 'agGroupColumnFilter', componentClass: GroupFilter },\n { componentName: 'agGroupColumnFloatingFilter', componentClass: GroupFloatingFilterComp },\n ],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar __extends$33 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ValuesDropZonePanel = /** @class */ (function (_super) {\n __extends$33(ValuesDropZonePanel, _super);\n function ValuesDropZonePanel(horizontal) {\n return _super.call(this, horizontal, 'aggregation') || this;\n }\n ValuesDropZonePanel.prototype.passBeansUp = function () {\n _super.prototype.setBeans.call(this, {\n gridOptionsService: this.gridOptionsService,\n eventService: this.eventService,\n context: this.getContext(),\n loggerFactory: this.loggerFactory,\n dragAndDropService: this.dragAndDropService\n });\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n var emptyMessage = localeTextFunc('valueColumnsEmptyMessage', 'Drag here to aggregate');\n var title = localeTextFunc('values', 'Values');\n _super.prototype.init.call(this, {\n dragAndDropIcon: DragAndDropService.ICON_AGGREGATE,\n icon: _.createIconNoSpan('valuePanel', this.gridOptionsService, null),\n emptyMessage: emptyMessage,\n title: title\n });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VALUE_CHANGED, this.refreshGui.bind(this));\n };\n ValuesDropZonePanel.prototype.getAriaLabel = function () {\n var translate = this.localeService.getLocaleTextFunc();\n var label = translate('ariaValuesDropZonePanelLabel', 'Values');\n return label;\n };\n ValuesDropZonePanel.prototype.getTooltipParams = function () {\n var res = _super.prototype.getTooltipParams.call(this);\n res.location = 'valueColumnsList';\n return res;\n };\n ValuesDropZonePanel.prototype.getIconName = function () {\n return this.isPotentialDndColumns() ? DragAndDropService.ICON_AGGREGATE : DragAndDropService.ICON_NOT_ALLOWED;\n };\n ValuesDropZonePanel.prototype.isColumnDroppable = function (column) {\n // we never allow grouping of secondary columns\n if (this.gridOptionsService.is('functionsReadOnly') || !column.isPrimary()) {\n return false;\n }\n return column.isAllowValue() && !column.isValueActive();\n };\n ValuesDropZonePanel.prototype.updateColumns = function (columns) {\n if (this.gridOptionsService.is('functionsPassive')) {\n var event_1 = {\n type: Events.EVENT_COLUMN_VALUE_CHANGE_REQUEST,\n columns: columns\n };\n this.eventService.dispatchEvent(event_1);\n }\n else {\n this.columnModel.setValueColumns(columns, \"toolPanelUi\");\n }\n };\n ValuesDropZonePanel.prototype.getExistingColumns = function () {\n return this.columnModel.getValueColumns();\n };\n __decorate$2d([\n Autowired('columnModel')\n ], ValuesDropZonePanel.prototype, \"columnModel\", void 0);\n __decorate$2d([\n Autowired('loggerFactory')\n ], ValuesDropZonePanel.prototype, \"loggerFactory\", void 0);\n __decorate$2d([\n Autowired('dragAndDropService')\n ], ValuesDropZonePanel.prototype, \"dragAndDropService\", void 0);\n __decorate$2d([\n PostConstruct\n ], ValuesDropZonePanel.prototype, \"passBeansUp\", null);\n return ValuesDropZonePanel;\n}(BaseDropZonePanel));\n\nvar __extends$32 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PrimaryColsPanel = /** @class */ (function (_super) {\n __extends$32(PrimaryColsPanel, _super);\n function PrimaryColsPanel() {\n return _super.call(this, PrimaryColsPanel.TEMPLATE) || this;\n }\n // we allow dragging in the toolPanel, but not when this component appears in the column menu\n PrimaryColsPanel.prototype.init = function (allowDragging, params, eventType) {\n this.allowDragging = allowDragging;\n this.params = params;\n this.eventType = eventType;\n this.primaryColsHeaderPanel.init(this.params);\n var hideFilter = this.params.suppressColumnFilter;\n var hideSelect = this.params.suppressColumnSelectAll;\n var hideExpand = this.params.suppressColumnExpandAll;\n if (hideExpand && hideFilter && hideSelect) {\n this.primaryColsHeaderPanel.setDisplayed(false);\n }\n this.addManagedListener(this.primaryColsListPanel, 'groupExpanded', this.onGroupExpanded.bind(this));\n this.addManagedListener(this.primaryColsListPanel, 'selectionChanged', this.onSelectionChange.bind(this));\n this.primaryColsListPanel.init(this.params, this.allowDragging, this.eventType);\n this.addManagedListener(this.primaryColsHeaderPanel, 'expandAll', this.onExpandAll.bind(this));\n this.addManagedListener(this.primaryColsHeaderPanel, 'collapseAll', this.onCollapseAll.bind(this));\n this.addManagedListener(this.primaryColsHeaderPanel, 'selectAll', this.onSelectAll.bind(this));\n this.addManagedListener(this.primaryColsHeaderPanel, 'unselectAll', this.onUnselectAll.bind(this));\n this.addManagedListener(this.primaryColsHeaderPanel, 'filterChanged', this.onFilterChanged.bind(this));\n this.positionableFeature = new PositionableFeature(this.getGui(), { minHeight: 100 });\n this.createManagedBean(this.positionableFeature);\n };\n PrimaryColsPanel.prototype.toggleResizable = function (resizable) {\n this.positionableFeature.setResizable(resizable ? { bottom: true } : false);\n };\n PrimaryColsPanel.prototype.onExpandAll = function () {\n this.primaryColsListPanel.doSetExpandedAll(true);\n };\n PrimaryColsPanel.prototype.onCollapseAll = function () {\n this.primaryColsListPanel.doSetExpandedAll(false);\n };\n PrimaryColsPanel.prototype.expandGroups = function (groupIds) {\n this.primaryColsListPanel.setGroupsExpanded(true, groupIds);\n };\n PrimaryColsPanel.prototype.collapseGroups = function (groupIds) {\n this.primaryColsListPanel.setGroupsExpanded(false, groupIds);\n };\n PrimaryColsPanel.prototype.setColumnLayout = function (colDefs) {\n this.primaryColsListPanel.setColumnLayout(colDefs);\n };\n PrimaryColsPanel.prototype.onFilterChanged = function (event) {\n this.primaryColsListPanel.setFilterText(event.filterText);\n };\n PrimaryColsPanel.prototype.syncLayoutWithGrid = function () {\n this.primaryColsListPanel.onColumnsChanged();\n };\n PrimaryColsPanel.prototype.onSelectAll = function () {\n this.primaryColsListPanel.doSetSelectedAll(true);\n };\n PrimaryColsPanel.prototype.onUnselectAll = function () {\n this.primaryColsListPanel.doSetSelectedAll(false);\n };\n PrimaryColsPanel.prototype.onGroupExpanded = function (event) {\n this.primaryColsHeaderPanel.setExpandState(event.state);\n };\n PrimaryColsPanel.prototype.onSelectionChange = function (event) {\n this.primaryColsHeaderPanel.setSelectionState(event.state);\n };\n PrimaryColsPanel.TEMPLATE = \"
\\n \\n \\n
\";\n __decorate$2c([\n RefSelector('primaryColsHeaderPanel')\n ], PrimaryColsPanel.prototype, \"primaryColsHeaderPanel\", void 0);\n __decorate$2c([\n RefSelector('primaryColsListPanel')\n ], PrimaryColsPanel.prototype, \"primaryColsListPanel\", void 0);\n return PrimaryColsPanel;\n}(Component));\n\nvar __extends$31 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$$ = (undefined && undefined.__assign) || function () {\n __assign$$ = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$$.apply(this, arguments);\n};\nvar __decorate$2b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ColumnToolPanel = /** @class */ (function (_super) {\n __extends$31(ColumnToolPanel, _super);\n function ColumnToolPanel() {\n var _this = _super.call(this, ColumnToolPanel.TEMPLATE) || this;\n _this.initialised = false;\n _this.childDestroyFuncs = [];\n return _this;\n }\n // lazy initialise the panel\n ColumnToolPanel.prototype.setVisible = function (visible) {\n _super.prototype.setDisplayed.call(this, visible);\n if (visible && !this.initialised) {\n this.init(this.params);\n }\n };\n ColumnToolPanel.prototype.init = function (params) {\n var _this = this;\n var defaultParams = {\n suppressColumnMove: false,\n suppressColumnSelectAll: false,\n suppressColumnFilter: false,\n suppressColumnExpandAll: false,\n contractColumnSelection: false,\n suppressPivotMode: false,\n suppressRowGroups: false,\n suppressValues: false,\n suppressPivots: false,\n suppressSyncLayoutWithGrid: false,\n api: this.gridApi,\n columnApi: this.columnApi,\n };\n this.params = __assign$$(__assign$$(__assign$$({}, defaultParams), params), { context: this.gridOptionsService.context });\n if (this.isRowGroupingModuleLoaded() && !this.params.suppressPivotMode) {\n // DO NOT CHANGE TO createManagedBean\n this.pivotModePanel = this.createBean(new PivotModePanel());\n this.childDestroyFuncs.push(function () { return _this.destroyBean(_this.pivotModePanel); });\n this.appendChild(this.pivotModePanel);\n }\n // DO NOT CHANGE TO createManagedBean\n this.primaryColsPanel = this.createBean(new PrimaryColsPanel());\n this.childDestroyFuncs.push(function () { return _this.destroyBean(_this.primaryColsPanel); });\n this.primaryColsPanel.init(true, this.params, \"toolPanelUi\");\n this.primaryColsPanel.addCssClass('ag-column-panel-column-select');\n this.appendChild(this.primaryColsPanel);\n if (this.isRowGroupingModuleLoaded()) {\n if (!this.params.suppressRowGroups) {\n // DO NOT CHANGE TO createManagedBean\n this.rowGroupDropZonePanel = this.createBean(new RowGroupDropZonePanel(false));\n this.childDestroyFuncs.push(function () { return _this.destroyBean(_this.rowGroupDropZonePanel); });\n this.appendChild(this.rowGroupDropZonePanel);\n }\n if (!this.params.suppressValues) {\n // DO NOT CHANGE TO createManagedBean\n this.valuesDropZonePanel = this.createBean(new ValuesDropZonePanel(false));\n this.childDestroyFuncs.push(function () { return _this.destroyBean(_this.valuesDropZonePanel); });\n this.appendChild(this.valuesDropZonePanel);\n }\n if (!this.params.suppressPivots) {\n // DO NOT CHANGE TO createManagedBean\n this.pivotDropZonePanel = this.createBean(new PivotDropZonePanel(false));\n this.childDestroyFuncs.push(function () { return _this.destroyBean(_this.pivotDropZonePanel); });\n this.appendChild(this.pivotDropZonePanel);\n }\n this.setLastVisible();\n var pivotModeListener_1 = this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, function () {\n _this.resetChildrenHeight();\n _this.setLastVisible();\n });\n this.childDestroyFuncs.push(function () { return pivotModeListener_1(); });\n }\n this.initialised = true;\n };\n ColumnToolPanel.prototype.setPivotModeSectionVisible = function (visible) {\n var _this = this;\n if (!this.isRowGroupingModuleLoaded()) {\n return;\n }\n if (this.pivotModePanel) {\n this.pivotModePanel.setDisplayed(visible);\n }\n else if (visible) {\n this.pivotModePanel = this.createBean(new PivotModePanel());\n // ensure pivot mode panel is positioned at the top of the columns tool panel\n this.getGui().insertBefore(this.pivotModePanel.getGui(), this.getGui().firstChild);\n this.childDestroyFuncs.push(function () { return _this.destroyBean(_this.pivotModePanel); });\n }\n this.setLastVisible();\n };\n ColumnToolPanel.prototype.setRowGroupsSectionVisible = function (visible) {\n if (!this.isRowGroupingModuleLoaded()) {\n return;\n }\n if (this.rowGroupDropZonePanel) {\n this.rowGroupDropZonePanel.setDisplayed(visible);\n }\n else if (visible) {\n this.rowGroupDropZonePanel = this.createManagedBean(new RowGroupDropZonePanel(false));\n this.appendChild(this.rowGroupDropZonePanel);\n }\n this.setLastVisible();\n };\n ColumnToolPanel.prototype.setValuesSectionVisible = function (visible) {\n if (!this.isRowGroupingModuleLoaded()) {\n return;\n }\n if (this.valuesDropZonePanel) {\n this.valuesDropZonePanel.setDisplayed(visible);\n }\n else if (visible) {\n this.valuesDropZonePanel = this.createManagedBean(new ValuesDropZonePanel(false));\n this.appendChild(this.valuesDropZonePanel);\n }\n this.setLastVisible();\n };\n ColumnToolPanel.prototype.setPivotSectionVisible = function (visible) {\n if (!this.isRowGroupingModuleLoaded()) {\n return;\n }\n if (this.pivotDropZonePanel) {\n this.pivotDropZonePanel.setDisplayed(visible);\n }\n else if (visible) {\n this.pivotDropZonePanel = this.createManagedBean(new PivotDropZonePanel(false));\n this.appendChild(this.pivotDropZonePanel);\n this.pivotDropZonePanel.setDisplayed(visible);\n }\n this.setLastVisible();\n };\n ColumnToolPanel.prototype.setResizers = function () {\n [\n this.primaryColsPanel,\n this.rowGroupDropZonePanel,\n this.valuesDropZonePanel,\n this.pivotDropZonePanel\n ].forEach(function (panel) {\n if (!panel) {\n return;\n }\n var eGui = panel.getGui();\n panel.toggleResizable(!eGui.classList.contains('ag-last-column-drop') && !eGui.classList.contains('ag-hidden'));\n });\n };\n ColumnToolPanel.prototype.setLastVisible = function () {\n var eGui = this.getGui();\n var columnDrops = Array.prototype.slice.call(eGui.querySelectorAll('.ag-column-drop'));\n columnDrops.forEach(function (columnDrop) { return columnDrop.classList.remove('ag-last-column-drop'); });\n var columnDropEls = eGui.querySelectorAll('.ag-column-drop:not(.ag-hidden)');\n var lastVisible = _.last(columnDropEls);\n if (lastVisible) {\n lastVisible.classList.add('ag-last-column-drop');\n }\n this.setResizers();\n };\n ColumnToolPanel.prototype.resetChildrenHeight = function () {\n var eGui = this.getGui();\n var children = eGui.children;\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n child.style.removeProperty('height');\n child.style.removeProperty('flex');\n }\n };\n ColumnToolPanel.prototype.isRowGroupingModuleLoaded = function () {\n return ModuleRegistry.__assertRegistered(ModuleNames.RowGroupingModule, 'Row Grouping', this.context.getGridId());\n };\n ColumnToolPanel.prototype.expandColumnGroups = function (groupIds) {\n this.primaryColsPanel.expandGroups(groupIds);\n };\n ColumnToolPanel.prototype.collapseColumnGroups = function (groupIds) {\n this.primaryColsPanel.collapseGroups(groupIds);\n };\n ColumnToolPanel.prototype.setColumnLayout = function (colDefs) {\n this.primaryColsPanel.setColumnLayout(colDefs);\n };\n ColumnToolPanel.prototype.syncLayoutWithGrid = function () {\n this.primaryColsPanel.syncLayoutWithGrid();\n };\n ColumnToolPanel.prototype.destroyChildren = function () {\n this.childDestroyFuncs.forEach(function (func) { return func(); });\n this.childDestroyFuncs.length = 0;\n _.clearElement(this.getGui());\n };\n ColumnToolPanel.prototype.refresh = function () {\n this.destroyChildren();\n this.init(this.params);\n };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so this must be public.\n ColumnToolPanel.prototype.destroy = function () {\n this.destroyChildren();\n _super.prototype.destroy.call(this);\n };\n ColumnToolPanel.TEMPLATE = \"
\";\n __decorate$2b([\n Autowired(\"gridApi\")\n ], ColumnToolPanel.prototype, \"gridApi\", void 0);\n __decorate$2b([\n Autowired(\"columnApi\")\n ], ColumnToolPanel.prototype, \"columnApi\", void 0);\n return ColumnToolPanel;\n}(Component));\n\nvar __extends$30 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar HorizontalResizeComp = /** @class */ (function (_super) {\n __extends$30(HorizontalResizeComp, _super);\n function HorizontalResizeComp() {\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.minWidth = 100;\n _this.maxWidth = null;\n return _this;\n }\n HorizontalResizeComp.prototype.setElementToResize = function (elementToResize) {\n this.elementToResize = elementToResize;\n };\n HorizontalResizeComp.prototype.postConstruct = function () {\n var finishedWithResizeFunc = this.horizontalResizeService.addResizeBar({\n eResizeBar: this.getGui(),\n dragStartPixels: 1,\n onResizeStart: this.onResizeStart.bind(this),\n onResizing: this.onResizing.bind(this),\n onResizeEnd: this.onResizeEnd.bind(this)\n });\n this.addDestroyFunc(finishedWithResizeFunc);\n this.setInverted(this.gridOptionsService.is('enableRtl'));\n };\n HorizontalResizeComp.prototype.dispatchResizeEvent = function (start, end, width) {\n var event = {\n type: Events.EVENT_TOOL_PANEL_SIZE_CHANGED,\n width: width,\n started: start,\n ended: end,\n };\n this.eventService.dispatchEvent(event);\n };\n HorizontalResizeComp.prototype.onResizeStart = function () {\n this.startingWidth = this.elementToResize.offsetWidth;\n this.dispatchResizeEvent(true, false, this.startingWidth);\n };\n HorizontalResizeComp.prototype.onResizeEnd = function (delta) {\n return this.onResizing(delta, true);\n };\n HorizontalResizeComp.prototype.onResizing = function (delta, isEnd) {\n if (isEnd === void 0) { isEnd = false; }\n var direction = this.inverted ? -1 : 1;\n var newWidth = Math.max(this.minWidth, Math.floor(this.startingWidth - (delta * direction)));\n if (this.maxWidth != null) {\n newWidth = Math.min(this.maxWidth, newWidth);\n }\n this.elementToResize.style.width = newWidth + \"px\";\n this.dispatchResizeEvent(false, isEnd, newWidth);\n };\n HorizontalResizeComp.prototype.setInverted = function (inverted) {\n this.inverted = inverted;\n };\n HorizontalResizeComp.prototype.setMaxWidth = function (value) {\n this.maxWidth = value;\n };\n HorizontalResizeComp.prototype.setMinWidth = function (value) {\n if (value != null) {\n this.minWidth = value;\n }\n else {\n this.minWidth = 100;\n }\n };\n __decorate$2a([\n Autowired('horizontalResizeService')\n ], HorizontalResizeComp.prototype, \"horizontalResizeService\", void 0);\n __decorate$2a([\n PostConstruct\n ], HorizontalResizeComp.prototype, \"postConstruct\", null);\n return HorizontalResizeComp;\n}(Component));\n\nvar __extends$2$ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$29 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SideBarButtonComp = /** @class */ (function (_super) {\n __extends$2$(SideBarButtonComp, _super);\n function SideBarButtonComp(toolPanelDef) {\n var _this = _super.call(this) || this;\n _this.toolPanelDef = toolPanelDef;\n return _this;\n }\n SideBarButtonComp.prototype.getToolPanelId = function () {\n return this.toolPanelDef.id;\n };\n SideBarButtonComp.prototype.postConstruct = function () {\n var template = this.createTemplate();\n this.setTemplate(template);\n this.setLabel();\n this.setIcon();\n this.addManagedListener(this.eToggleButton, 'click', this.onButtonPressed.bind(this));\n this.eToggleButton.setAttribute('id', \"ag-\" + this.getCompId() + \"-button\");\n };\n SideBarButtonComp.prototype.createTemplate = function () {\n var res = /* html */ \"
\\n \\n
\";\n return res;\n };\n SideBarButtonComp.prototype.setLabel = function () {\n var translate = this.localeService.getLocaleTextFunc();\n var def = this.toolPanelDef;\n var label = translate(def.labelKey, def.labelDefault);\n this.eLabel.innerText = label;\n };\n SideBarButtonComp.prototype.setIcon = function () {\n this.eIconWrapper.insertAdjacentElement('afterbegin', _.createIconNoSpan(this.toolPanelDef.iconKey, this.gridOptionsService));\n };\n SideBarButtonComp.prototype.onButtonPressed = function () {\n this.dispatchEvent({ type: SideBarButtonComp.EVENT_TOGGLE_BUTTON_CLICKED });\n };\n SideBarButtonComp.prototype.setSelected = function (selected) {\n this.addOrRemoveCssClass('ag-selected', selected);\n _.setAriaExpanded(this.eToggleButton, selected);\n };\n SideBarButtonComp.prototype.getButtonElement = function () {\n return this.eToggleButton;\n };\n SideBarButtonComp.EVENT_TOGGLE_BUTTON_CLICKED = 'toggleButtonClicked';\n __decorate$29([\n RefSelector('eToggleButton')\n ], SideBarButtonComp.prototype, \"eToggleButton\", void 0);\n __decorate$29([\n RefSelector('eIconWrapper')\n ], SideBarButtonComp.prototype, \"eIconWrapper\", void 0);\n __decorate$29([\n RefSelector('eLabel')\n ], SideBarButtonComp.prototype, \"eLabel\", void 0);\n __decorate$29([\n PostConstruct\n ], SideBarButtonComp.prototype, \"postConstruct\", null);\n return SideBarButtonComp;\n}(Component));\n\nvar __extends$2_ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$28 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SideBarButtonsComp = /** @class */ (function (_super) {\n __extends$2_(SideBarButtonsComp, _super);\n function SideBarButtonsComp() {\n var _this = _super.call(this, SideBarButtonsComp.TEMPLATE) || this;\n _this.buttonComps = [];\n return _this;\n }\n SideBarButtonsComp.prototype.postConstruct = function () {\n this.addManagedListener(this.getFocusableElement(), 'keydown', this.handleKeyDown.bind(this));\n };\n SideBarButtonsComp.prototype.handleKeyDown = function (e) {\n if (e.key !== KeyCode.TAB || !e.shiftKey) {\n return;\n }\n var lastColumn = _.last(this.columnModel.getAllDisplayedColumns());\n if (this.focusService.focusGridView(lastColumn, true)) {\n e.preventDefault();\n }\n };\n SideBarButtonsComp.prototype.setActiveButton = function (id) {\n this.buttonComps.forEach(function (comp) {\n comp.setSelected(id === comp.getToolPanelId());\n });\n };\n SideBarButtonsComp.prototype.addButtonComp = function (def) {\n var _this = this;\n var buttonComp = this.createBean(new SideBarButtonComp(def));\n this.buttonComps.push(buttonComp);\n this.appendChild(buttonComp);\n buttonComp.addEventListener(SideBarButtonComp.EVENT_TOGGLE_BUTTON_CLICKED, function () {\n _this.dispatchEvent({\n type: SideBarButtonsComp.EVENT_SIDE_BAR_BUTTON_CLICKED,\n toolPanelId: def.id\n });\n });\n return buttonComp;\n };\n SideBarButtonsComp.prototype.clearButtons = function () {\n this.buttonComps = this.destroyBeans(this.buttonComps);\n _.clearElement(this.getGui());\n };\n SideBarButtonsComp.EVENT_SIDE_BAR_BUTTON_CLICKED = 'sideBarButtonClicked';\n SideBarButtonsComp.TEMPLATE = \"
\";\n __decorate$28([\n Autowired('focusService')\n ], SideBarButtonsComp.prototype, \"focusService\", void 0);\n __decorate$28([\n Autowired('columnModel')\n ], SideBarButtonsComp.prototype, \"columnModel\", void 0);\n __decorate$28([\n PostConstruct\n ], SideBarButtonsComp.prototype, \"postConstruct\", null);\n __decorate$28([\n PreDestroy\n ], SideBarButtonsComp.prototype, \"clearButtons\", null);\n return SideBarButtonsComp;\n}(Component));\n\nvar SideBarDefParser = /** @class */ (function () {\n function SideBarDefParser() {\n }\n SideBarDefParser.parse = function (toParse) {\n if (!toParse) {\n return undefined;\n }\n if (toParse === true) {\n return {\n toolPanels: [\n SideBarDefParser.DEFAULT_COLUMN_COMP,\n SideBarDefParser.DEFAULT_FILTER_COMP,\n ],\n defaultToolPanel: 'columns'\n };\n }\n if (typeof toParse === 'string') {\n return SideBarDefParser.parse([toParse]);\n }\n if (Array.isArray(toParse)) {\n var comps_1 = [];\n toParse.forEach(function (key) {\n var lookupResult = SideBarDefParser.DEFAULT_BY_KEY[key];\n if (!lookupResult) {\n console.warn(\"AG Grid: the key \" + key + \" is not a valid key for specifying a tool panel, valid keys are: \" + Object.keys(SideBarDefParser.DEFAULT_BY_KEY).join(','));\n return;\n }\n comps_1.push(lookupResult);\n });\n if (comps_1.length === 0) {\n return undefined;\n }\n return {\n toolPanels: comps_1,\n defaultToolPanel: comps_1[0].id\n };\n }\n var result = {\n toolPanels: SideBarDefParser.parseComponents(toParse.toolPanels),\n defaultToolPanel: toParse.defaultToolPanel,\n hiddenByDefault: toParse.hiddenByDefault,\n position: toParse.position\n };\n return result;\n };\n SideBarDefParser.parseComponents = function (from) {\n var result = [];\n if (!from) {\n return result;\n }\n from.forEach(function (it) {\n var toAdd = null;\n if (typeof it === 'string') {\n var lookupResult = SideBarDefParser.DEFAULT_BY_KEY[it];\n if (!lookupResult) {\n console.warn(\"AG Grid: the key \" + it + \" is not a valid key for specifying a tool panel, valid keys are: \" + Object.keys(SideBarDefParser.DEFAULT_BY_KEY).join(','));\n return;\n }\n toAdd = lookupResult;\n }\n else {\n toAdd = it;\n }\n result.push(toAdd);\n });\n return result;\n };\n SideBarDefParser.DEFAULT_COLUMN_COMP = {\n id: 'columns',\n labelDefault: 'Columns',\n labelKey: 'columns',\n iconKey: 'columns',\n toolPanel: 'agColumnsToolPanel',\n };\n SideBarDefParser.DEFAULT_FILTER_COMP = {\n id: 'filters',\n labelDefault: 'Filters',\n labelKey: 'filters',\n iconKey: 'filter',\n toolPanel: 'agFiltersToolPanel',\n };\n SideBarDefParser.DEFAULT_BY_KEY = {\n columns: SideBarDefParser.DEFAULT_COLUMN_COMP,\n filters: SideBarDefParser.DEFAULT_FILTER_COMP\n };\n return SideBarDefParser;\n}());\n\nvar __extends$2Z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$27 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ToolPanelWrapper = /** @class */ (function (_super) {\n __extends$2Z(ToolPanelWrapper, _super);\n function ToolPanelWrapper() {\n return _super.call(this, ToolPanelWrapper.TEMPLATE) || this;\n }\n ToolPanelWrapper.prototype.setupResize = function () {\n var eGui = this.getGui();\n var resizeBar = this.resizeBar = this.createManagedBean(new HorizontalResizeComp());\n eGui.setAttribute('id', \"ag-\" + this.getCompId());\n resizeBar.setElementToResize(eGui);\n this.appendChild(resizeBar);\n };\n ToolPanelWrapper.prototype.getToolPanelId = function () {\n return this.toolPanelId;\n };\n ToolPanelWrapper.prototype.setToolPanelDef = function (toolPanelDef) {\n var id = toolPanelDef.id, minWidth = toolPanelDef.minWidth, maxWidth = toolPanelDef.maxWidth, width = toolPanelDef.width;\n this.toolPanelId = id;\n this.width = width;\n var params = {};\n var compDetails = this.userComponentFactory.getToolPanelCompDetails(toolPanelDef, params);\n var componentPromise = compDetails.newAgStackInstance();\n if (componentPromise == null) {\n console.warn(\"AG Grid: error processing tool panel component \" + id + \". You need to specify 'toolPanel'\");\n return;\n }\n componentPromise.then(this.setToolPanelComponent.bind(this));\n if (minWidth != null) {\n this.resizeBar.setMinWidth(minWidth);\n }\n if (maxWidth != null) {\n this.resizeBar.setMaxWidth(maxWidth);\n }\n };\n ToolPanelWrapper.prototype.setToolPanelComponent = function (compInstance) {\n var _this = this;\n this.toolPanelCompInstance = compInstance;\n this.appendChild(compInstance.getGui());\n this.addDestroyFunc(function () {\n _this.destroyBean(compInstance);\n });\n if (this.width) {\n this.getGui().style.width = this.width + \"px\";\n }\n };\n ToolPanelWrapper.prototype.getToolPanelInstance = function () {\n return this.toolPanelCompInstance;\n };\n ToolPanelWrapper.prototype.setResizerSizerSide = function (side) {\n var isRtl = this.gridOptionsService.is('enableRtl');\n var isLeft = side === 'left';\n var inverted = isRtl ? isLeft : !isLeft;\n this.resizeBar.setInverted(inverted);\n };\n ToolPanelWrapper.prototype.refresh = function () {\n this.toolPanelCompInstance.refresh();\n };\n ToolPanelWrapper.TEMPLATE = \"
\";\n __decorate$27([\n Autowired(\"userComponentFactory\")\n ], ToolPanelWrapper.prototype, \"userComponentFactory\", void 0);\n __decorate$27([\n PostConstruct\n ], ToolPanelWrapper.prototype, \"setupResize\", null);\n return ToolPanelWrapper;\n}(Component));\n\nvar __extends$2Y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$26 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __values$O = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar SideBarComp = /** @class */ (function (_super) {\n __extends$2Y(SideBarComp, _super);\n function SideBarComp() {\n var _this = _super.call(this, SideBarComp.TEMPLATE) || this;\n _this.toolPanelWrappers = [];\n return _this;\n }\n SideBarComp.prototype.postConstruct = function () {\n var _this = this;\n this.sideBarButtonsComp.addEventListener(SideBarButtonsComp.EVENT_SIDE_BAR_BUTTON_CLICKED, this.onToolPanelButtonClicked.bind(this));\n this.setSideBarDef();\n this.addManagedPropertyListener('sideBar', function () {\n _this.clearDownUi();\n _this.setSideBarDef();\n });\n this.gridApi.registerSideBarComp(this);\n this.createManagedBean(new ManagedFocusFeature(this.getFocusableElement(), {\n onTabKeyDown: this.onTabKeyDown.bind(this),\n handleKeyDown: this.handleKeyDown.bind(this)\n }));\n };\n SideBarComp.prototype.onTabKeyDown = function (e) {\n if (e.defaultPrevented) {\n return;\n }\n var _a = this, focusService = _a.focusService, sideBarButtonsComp = _a.sideBarButtonsComp;\n var eGui = this.getGui();\n var sideBarGui = sideBarButtonsComp.getGui();\n var eDocument = this.gridOptionsService.getDocument();\n var activeElement = eDocument.activeElement;\n var openPanel = eGui.querySelector('.ag-tool-panel-wrapper:not(.ag-hidden)');\n var target = e.target;\n if (!openPanel) {\n return;\n }\n if (sideBarGui.contains(activeElement)) {\n if (focusService.focusInto(openPanel, e.shiftKey)) {\n e.preventDefault();\n }\n return;\n }\n // only handle backwards focus to target the sideBar buttons\n if (!e.shiftKey) {\n return;\n }\n var nextEl = null;\n if (openPanel.contains(activeElement)) {\n nextEl = this.focusService.findNextFocusableElement(openPanel, undefined, true);\n }\n else if (focusService.isTargetUnderManagedComponent(openPanel, target) && e.shiftKey) {\n nextEl = this.focusService.findFocusableElementBeforeTabGuard(openPanel, target);\n }\n if (!nextEl) {\n nextEl = sideBarGui.querySelector('.ag-selected button');\n }\n if (nextEl) {\n e.preventDefault();\n nextEl.focus();\n }\n };\n SideBarComp.prototype.handleKeyDown = function (e) {\n var eDocument = this.gridOptionsService.getDocument();\n if (!this.sideBarButtonsComp.getGui().contains(eDocument.activeElement)) {\n return;\n }\n var sideBarGui = this.sideBarButtonsComp.getGui();\n var buttons = Array.prototype.slice.call(sideBarGui.querySelectorAll('.ag-side-button'));\n var currentButton = eDocument.activeElement;\n var currentPos = buttons.findIndex(function (button) { return button.contains(currentButton); });\n var nextPos = null;\n switch (e.key) {\n case KeyCode.LEFT:\n case KeyCode.UP:\n nextPos = Math.max(0, currentPos - 1);\n break;\n case KeyCode.RIGHT:\n case KeyCode.DOWN:\n nextPos = Math.min(currentPos + 1, buttons.length - 1);\n break;\n }\n if (nextPos === null) {\n return;\n }\n var innerButton = buttons[nextPos].querySelector('button');\n if (innerButton) {\n innerButton.focus();\n e.preventDefault();\n }\n };\n SideBarComp.prototype.onToolPanelButtonClicked = function (event) {\n var id = event.toolPanelId;\n var openedItem = this.openedItem();\n // if item was already open, we close it\n if (openedItem === id) {\n this.openToolPanel(undefined, 'sideBarButtonClicked'); // passing undefined closes\n }\n else {\n this.openToolPanel(id, 'sideBarButtonClicked');\n }\n };\n SideBarComp.prototype.clearDownUi = function () {\n this.sideBarButtonsComp.clearButtons();\n this.destroyToolPanelWrappers();\n };\n SideBarComp.prototype.setSideBarDef = function () {\n // initially hide side bar\n this.setDisplayed(false);\n var sideBarRaw = this.gridOptionsService.get('sideBar');\n this.sideBar = SideBarDefParser.parse(sideBarRaw);\n if (!!this.sideBar && !!this.sideBar.toolPanels) {\n var toolPanelDefs = this.sideBar.toolPanels;\n this.createToolPanelsAndSideButtons(toolPanelDefs);\n if (!this.toolPanelWrappers.length) {\n return;\n }\n var shouldDisplaySideBar = !this.sideBar.hiddenByDefault;\n this.setDisplayed(shouldDisplaySideBar);\n this.setSideBarPosition(this.sideBar.position);\n if (!this.sideBar.hiddenByDefault) {\n this.openToolPanel(this.sideBar.defaultToolPanel, 'sideBarInitializing');\n }\n }\n };\n SideBarComp.prototype.getDef = function () {\n return this.sideBar;\n };\n SideBarComp.prototype.setSideBarPosition = function (position) {\n if (!position) {\n position = 'right';\n }\n var isLeft = position === 'left';\n var resizerSide = isLeft ? 'right' : 'left';\n this.addOrRemoveCssClass('ag-side-bar-left', isLeft);\n this.addOrRemoveCssClass('ag-side-bar-right', !isLeft);\n this.toolPanelWrappers.forEach(function (wrapper) {\n wrapper.setResizerSizerSide(resizerSide);\n });\n return this;\n };\n SideBarComp.prototype.createToolPanelsAndSideButtons = function (defs) {\n var e_1, _a;\n try {\n for (var defs_1 = __values$O(defs), defs_1_1 = defs_1.next(); !defs_1_1.done; defs_1_1 = defs_1.next()) {\n var def = defs_1_1.value;\n this.createToolPanelAndSideButton(def);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (defs_1_1 && !defs_1_1.done && (_a = defs_1.return)) _a.call(defs_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n SideBarComp.prototype.validateDef = function (def) {\n if (def.id == null) {\n console.warn(\"AG Grid: please review all your toolPanel components, it seems like at least one of them doesn't have an id\");\n return false;\n }\n // helpers, in case user doesn't have the right module loaded\n if (def.toolPanel === 'agColumnsToolPanel') {\n var moduleMissing = !ModuleRegistry.__assertRegistered(ModuleNames.ColumnsToolPanelModule, 'Column Tool Panel', this.context.getGridId());\n if (moduleMissing) {\n return false;\n }\n }\n if (def.toolPanel === 'agFiltersToolPanel') {\n var moduleMissing = !ModuleRegistry.__assertRegistered(ModuleNames.FiltersToolPanelModule, 'Filters Tool Panel', this.context.getGridId());\n if (moduleMissing) {\n return false;\n }\n if (this.filterManager.isAdvancedFilterEnabled()) {\n _.doOnce(function () {\n console.warn('AG Grid: Advanced Filter does not work with Filters Tool Panel. Filters Tool Panel has been disabled.');\n }, 'advancedFilterToolPanel');\n return false;\n }\n }\n return true;\n };\n SideBarComp.prototype.createToolPanelAndSideButton = function (def) {\n if (!this.validateDef(def)) {\n return;\n }\n var button = this.sideBarButtonsComp.addButtonComp(def);\n var wrapper = this.getContext().createBean(new ToolPanelWrapper());\n wrapper.setToolPanelDef(def);\n wrapper.setDisplayed(false);\n var wrapperGui = wrapper.getGui();\n this.appendChild(wrapperGui);\n this.toolPanelWrappers.push(wrapper);\n _.setAriaControls(button.getButtonElement(), wrapperGui);\n };\n SideBarComp.prototype.refresh = function () {\n this.toolPanelWrappers.forEach(function (wrapper) { return wrapper.refresh(); });\n };\n SideBarComp.prototype.openToolPanel = function (key, source) {\n if (source === void 0) { source = 'api'; }\n var currentlyOpenedKey = this.openedItem();\n if (currentlyOpenedKey === key) {\n return;\n }\n this.toolPanelWrappers.forEach(function (wrapper) {\n var show = key === wrapper.getToolPanelId();\n wrapper.setDisplayed(show);\n });\n var newlyOpenedKey = this.openedItem();\n var openToolPanelChanged = currentlyOpenedKey !== newlyOpenedKey;\n if (openToolPanelChanged) {\n this.sideBarButtonsComp.setActiveButton(key);\n this.raiseToolPanelVisibleEvent(key, currentlyOpenedKey !== null && currentlyOpenedKey !== void 0 ? currentlyOpenedKey : undefined, source);\n }\n };\n SideBarComp.prototype.getToolPanelInstance = function (key) {\n var toolPanelWrapper = this.toolPanelWrappers.filter(function (toolPanel) { return toolPanel.getToolPanelId() === key; })[0];\n if (!toolPanelWrapper) {\n console.warn(\"AG Grid: unable to lookup Tool Panel as invalid key supplied: \" + key);\n return;\n }\n return toolPanelWrapper.getToolPanelInstance();\n };\n SideBarComp.prototype.raiseToolPanelVisibleEvent = function (key, previousKey, source) {\n var switchingToolPanel = !!key && !!previousKey;\n if (previousKey) {\n var event_1 = {\n type: Events.EVENT_TOOL_PANEL_VISIBLE_CHANGED,\n source: source,\n key: previousKey,\n visible: false,\n switchingToolPanel: switchingToolPanel,\n };\n this.eventService.dispatchEvent(event_1);\n }\n if (key) {\n var event_2 = {\n type: Events.EVENT_TOOL_PANEL_VISIBLE_CHANGED,\n source: source,\n key: key,\n visible: true,\n switchingToolPanel: switchingToolPanel,\n };\n this.eventService.dispatchEvent(event_2);\n }\n };\n SideBarComp.prototype.close = function (source) {\n if (source === void 0) { source = 'api'; }\n this.openToolPanel(undefined, source);\n };\n SideBarComp.prototype.isToolPanelShowing = function () {\n return !!this.openedItem();\n };\n SideBarComp.prototype.openedItem = function () {\n var activeToolPanel = null;\n this.toolPanelWrappers.forEach(function (wrapper) {\n if (wrapper.isDisplayed()) {\n activeToolPanel = wrapper.getToolPanelId();\n }\n });\n return activeToolPanel;\n };\n SideBarComp.prototype.destroyToolPanelWrappers = function () {\n var _this = this;\n this.toolPanelWrappers.forEach(function (wrapper) {\n _.removeFromParent(wrapper.getGui());\n _this.destroyBean(wrapper);\n });\n this.toolPanelWrappers.length = 0;\n };\n SideBarComp.prototype.destroy = function () {\n this.destroyToolPanelWrappers();\n _super.prototype.destroy.call(this);\n };\n SideBarComp.TEMPLATE = \"
\\n \\n
\";\n __decorate$26([\n Autowired('gridApi')\n ], SideBarComp.prototype, \"gridApi\", void 0);\n __decorate$26([\n Autowired('focusService')\n ], SideBarComp.prototype, \"focusService\", void 0);\n __decorate$26([\n Autowired('filterManager')\n ], SideBarComp.prototype, \"filterManager\", void 0);\n __decorate$26([\n RefSelector('sideBarButtons')\n ], SideBarComp.prototype, \"sideBarButtonsComp\", void 0);\n __decorate$26([\n PostConstruct\n ], SideBarComp.prototype, \"postConstruct\", null);\n return SideBarComp;\n}(Component));\n\nvar __extends$2X = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$25 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ToolPanelColDefService = /** @class */ (function (_super) {\n __extends$2X(ToolPanelColDefService, _super);\n function ToolPanelColDefService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.isColGroupDef = function (colDef) { return colDef && typeof colDef.children !== 'undefined'; };\n _this.getId = function (colDef) {\n return _this.isColGroupDef(colDef) ? colDef.groupId : colDef.colId;\n };\n return _this;\n }\n ToolPanelColDefService.prototype.createColumnTree = function (colDefs) {\n var _this = this;\n var invalidColIds = [];\n var createDummyColGroup = function (abstractColDef, depth) {\n if (_this.isColGroupDef(abstractColDef)) {\n // creating 'dummy' group which is not associated with grid column group\n var groupDef = abstractColDef;\n var groupId = (typeof groupDef.groupId !== 'undefined') ? groupDef.groupId : groupDef.headerName;\n var group = new ProvidedColumnGroup(groupDef, groupId, false, depth);\n var children_1 = [];\n groupDef.children.forEach(function (def) {\n var child = createDummyColGroup(def, depth + 1);\n // check column exists in case invalid colDef is supplied for primary column\n if (child) {\n children_1.push(child);\n }\n });\n group.setChildren(children_1);\n return group;\n }\n else {\n var colDef = abstractColDef;\n var key = colDef.colId ? colDef.colId : colDef.field;\n var column = _this.columnModel.getPrimaryColumn(key);\n if (!column) {\n invalidColIds.push(colDef);\n }\n return column;\n }\n };\n var mappedResults = [];\n colDefs.forEach(function (colDef) {\n var result = createDummyColGroup(colDef, 0);\n if (result) {\n // only return correctly mapped colDef results\n mappedResults.push(result);\n }\n });\n if (invalidColIds.length > 0) {\n console.warn('AG Grid: unable to find grid columns for the supplied colDef(s):', invalidColIds);\n }\n return mappedResults;\n };\n ToolPanelColDefService.prototype.syncLayoutWithGrid = function (syncLayoutCallback) {\n // extract ordered list of leaf path trees (column group hierarchy for each individual leaf column)\n var leafPathTrees = this.getLeafPathTrees();\n // merge leaf path tree taking split column groups into account\n var mergedColumnTrees = this.mergeLeafPathTrees(leafPathTrees);\n // sync layout with merged column trees\n syncLayoutCallback(mergedColumnTrees);\n };\n ToolPanelColDefService.prototype.getLeafPathTrees = function () {\n // leaf tree paths are obtained by walking up the tree starting at a column until we reach the top level group.\n var getLeafPathTree = function (node, childDef) {\n var leafPathTree;\n // build up tree in reverse order\n if (node instanceof ProvidedColumnGroup) {\n if (node.isPadding()) {\n // skip over padding groups\n leafPathTree = childDef;\n }\n else {\n var groupDef = Object.assign({}, node.getColGroupDef());\n // ensure group contains groupId\n groupDef.groupId = node.getGroupId();\n groupDef.children = [childDef];\n leafPathTree = groupDef;\n }\n }\n else {\n var colDef = Object.assign({}, node.getColDef());\n // ensure col contains colId\n colDef.colId = node.getColId();\n leafPathTree = colDef;\n }\n // walk tree\n var parent = node.getOriginalParent();\n if (parent) {\n // keep walking up the tree until we reach the root\n return getLeafPathTree(parent, leafPathTree);\n }\n else {\n // we have reached the root - exit with resulting leaf path tree\n return leafPathTree;\n }\n };\n // obtain a sorted list of all grid columns\n var allGridColumns = this.columnModel.getAllGridColumns();\n // only primary columns and non row group columns should appear in the tool panel\n var allPrimaryGridColumns = allGridColumns.filter(function (column) {\n var colDef = column.getColDef();\n return column.isPrimary() && !colDef.showRowGroup;\n });\n // construct a leaf path tree for each column\n return allPrimaryGridColumns.map(function (col) { return getLeafPathTree(col, col.getColDef()); });\n };\n ToolPanelColDefService.prototype.mergeLeafPathTrees = function (leafPathTrees) {\n var _this = this;\n var matchingRootGroupIds = function (pathA, pathB) {\n var bothPathsAreGroups = _this.isColGroupDef(pathA) && _this.isColGroupDef(pathB);\n return bothPathsAreGroups && _this.getId(pathA) === _this.getId(pathB);\n };\n var mergeTrees = function (treeA, treeB) {\n if (!_this.isColGroupDef(treeB)) {\n return treeA;\n }\n var mergeResult = treeA;\n var groupToMerge = treeB;\n if (groupToMerge.children && groupToMerge.groupId) {\n var added = _this.addChildrenToGroup(mergeResult, groupToMerge.groupId, groupToMerge.children[0]);\n if (added) {\n return mergeResult;\n }\n }\n groupToMerge.children.forEach(function (child) { return mergeTrees(mergeResult, child); });\n return mergeResult;\n };\n // we can't just merge the leaf path trees as groups can be split apart - instead only merge if leaf\n // path groups with the same root group id are contiguous.\n var mergeColDefs = [];\n for (var i = 1; i <= leafPathTrees.length; i++) {\n var first = leafPathTrees[i - 1];\n var second = leafPathTrees[i];\n if (matchingRootGroupIds(first, second)) {\n leafPathTrees[i] = mergeTrees(first, second);\n }\n else {\n mergeColDefs.push(first);\n }\n }\n return mergeColDefs;\n };\n ToolPanelColDefService.prototype.addChildrenToGroup = function (tree, groupId, colDef) {\n var _this = this;\n var subGroupIsSplit = function (currentSubGroup, currentSubGroupToAdd) {\n var existingChildIds = currentSubGroup.children.map(_this.getId);\n var childGroupAlreadyExists = _.includes(existingChildIds, _this.getId(currentSubGroupToAdd));\n var lastChild = _.last(currentSubGroup.children);\n var lastChildIsDifferent = lastChild && _this.getId(lastChild) !== _this.getId(currentSubGroupToAdd);\n return childGroupAlreadyExists && lastChildIsDifferent;\n };\n if (!this.isColGroupDef(tree)) {\n return true;\n }\n var currentGroup = tree;\n var groupToAdd = colDef;\n if (subGroupIsSplit(currentGroup, groupToAdd)) {\n currentGroup.children.push(groupToAdd);\n return true;\n }\n if (currentGroup.groupId === groupId) {\n // add children that don't already exist to group\n var existingChildIds = currentGroup.children.map(this.getId);\n var colDefAlreadyPresent = _.includes(existingChildIds, this.getId(groupToAdd));\n if (!colDefAlreadyPresent) {\n currentGroup.children.push(groupToAdd);\n return true;\n }\n }\n // recurse until correct group is found to add children\n currentGroup.children.forEach(function (subGroup) { return _this.addChildrenToGroup(subGroup, groupId, colDef); });\n return false;\n };\n __decorate$25([\n Autowired('columnModel')\n ], ToolPanelColDefService.prototype, \"columnModel\", void 0);\n ToolPanelColDefService = __decorate$25([\n Bean('toolPanelColDefService')\n ], ToolPanelColDefService);\n return ToolPanelColDefService;\n}(BeanStub));\n\n// DO NOT UPDATE MANUALLY: Generated from script during build time\nvar VERSION$f = '30.2.0';\n\nvar SideBarModule = {\n version: VERSION$f,\n moduleName: ModuleNames.SideBarModule,\n beans: [ToolPanelColDefService],\n agStackComponents: [\n { componentName: 'AgHorizontalResize', componentClass: HorizontalResizeComp },\n { componentName: 'AgSideBar', componentClass: SideBarComp },\n { componentName: 'AgSideBarButtons', componentClass: SideBarButtonsComp },\n ],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar __decorate$24 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ModelItemUtils = /** @class */ (function () {\n function ModelItemUtils() {\n }\n ModelItemUtils.prototype.selectAllChildren = function (colTree, selectAllChecked, eventType) {\n var cols = this.extractAllLeafColumns(colTree);\n this.setAllColumns(cols, selectAllChecked, eventType);\n };\n ModelItemUtils.prototype.setColumn = function (col, selectAllChecked, eventType) {\n this.setAllColumns([col], selectAllChecked, eventType);\n };\n ModelItemUtils.prototype.setAllColumns = function (cols, selectAllChecked, eventType) {\n if (this.columnModel.isPivotMode()) {\n this.setAllPivot(cols, selectAllChecked, eventType);\n }\n else {\n this.setAllVisible(cols, selectAllChecked, eventType);\n }\n };\n ModelItemUtils.prototype.extractAllLeafColumns = function (allItems) {\n var res = [];\n var recursiveFunc = function (items) {\n items.forEach(function (item) {\n if (!item.isPassesFilter()) {\n return;\n }\n if (item.isGroup()) {\n recursiveFunc(item.getChildren());\n }\n else {\n res.push(item.getColumn());\n }\n });\n };\n recursiveFunc(allItems);\n return res;\n };\n ModelItemUtils.prototype.setAllVisible = function (columns, visible, eventType) {\n var colStateItems = [];\n columns.forEach(function (col) {\n if (col.getColDef().lockVisible) {\n return;\n }\n if (col.isVisible() != visible) {\n colStateItems.push({\n colId: col.getId(),\n hide: !visible\n });\n }\n });\n if (colStateItems.length > 0) {\n this.columnModel.applyColumnState({ state: colStateItems }, eventType);\n }\n };\n ModelItemUtils.prototype.setAllPivot = function (columns, value, eventType) {\n if (this.gridOptionsService.is('functionsPassive')) {\n this.setAllPivotPassive(columns, value);\n }\n else {\n this.setAllPivotActive(columns, value, eventType);\n }\n };\n ModelItemUtils.prototype.setAllPivotPassive = function (columns, value) {\n var copyOfPivotColumns = this.columnModel.getPivotColumns().slice();\n var copyOfValueColumns = this.columnModel.getValueColumns().slice();\n var copyOfRowGroupColumns = this.columnModel.getRowGroupColumns().slice();\n var pivotChanged = false;\n var valueChanged = false;\n var rowGroupChanged = false;\n var turnOnAction = function (col) {\n // don't change any column that's already got a function active\n if (col.isAnyFunctionActive()) {\n return;\n }\n if (col.isAllowValue()) {\n copyOfValueColumns.push(col);\n valueChanged = true;\n }\n else if (col.isAllowRowGroup()) {\n copyOfRowGroupColumns.push(col);\n pivotChanged = true;\n }\n else if (col.isAllowPivot()) {\n copyOfPivotColumns.push(col);\n rowGroupChanged = true;\n }\n };\n var turnOffAction = function (col) {\n if (!col.isAnyFunctionActive()) {\n return;\n }\n if (copyOfPivotColumns.indexOf(col) >= 0) {\n _.removeFromArray(copyOfPivotColumns, col);\n pivotChanged = true;\n }\n if (copyOfValueColumns.indexOf(col) >= 0) {\n _.removeFromArray(copyOfValueColumns, col);\n valueChanged = true;\n }\n if (copyOfRowGroupColumns.indexOf(col) >= 0) {\n _.removeFromArray(copyOfRowGroupColumns, col);\n rowGroupChanged = true;\n }\n };\n var action = value ? turnOnAction : turnOffAction;\n columns.forEach(action);\n if (pivotChanged) {\n var event_1 = {\n type: Events.EVENT_COLUMN_PIVOT_CHANGE_REQUEST,\n columns: copyOfPivotColumns\n };\n this.eventService.dispatchEvent(event_1);\n }\n if (rowGroupChanged) {\n var event_2 = {\n type: Events.EVENT_COLUMN_ROW_GROUP_CHANGE_REQUEST,\n columns: copyOfRowGroupColumns\n };\n this.eventService.dispatchEvent(event_2);\n }\n if (valueChanged) {\n var event_3 = {\n type: Events.EVENT_COLUMN_VALUE_CHANGE_REQUEST,\n columns: copyOfRowGroupColumns\n };\n this.eventService.dispatchEvent(event_3);\n }\n };\n ModelItemUtils.prototype.setAllPivotActive = function (columns, value, eventType) {\n var _this = this;\n var colStateItems = [];\n var turnOnAction = function (col) {\n // don't change any column that's already got a function active\n if (col.isAnyFunctionActive()) {\n return;\n }\n if (col.isAllowValue()) {\n var aggFunc = typeof col.getAggFunc() === 'string'\n ? col.getAggFunc()\n : _this.aggFuncService.getDefaultAggFunc(col);\n colStateItems.push({\n colId: col.getId(),\n aggFunc: aggFunc\n });\n }\n else if (col.isAllowRowGroup()) {\n colStateItems.push({\n colId: col.getId(),\n rowGroup: true\n });\n }\n else if (col.isAllowPivot()) {\n colStateItems.push({\n colId: col.getId(),\n pivot: true\n });\n }\n };\n var turnOffAction = function (col) {\n var isActive = col.isPivotActive() || col.isRowGroupActive() || col.isValueActive();\n if (isActive) {\n colStateItems.push({\n colId: col.getId(),\n pivot: false,\n rowGroup: false,\n aggFunc: null\n });\n }\n };\n var action = value ? turnOnAction : turnOffAction;\n columns.forEach(action);\n if (colStateItems.length > 0) {\n this.columnModel.applyColumnState({ state: colStateItems }, eventType);\n }\n };\n ModelItemUtils.prototype.updateColumns = function (params) {\n var _this = this;\n var columns = params.columns, visibleState = params.visibleState, pivotState = params.pivotState, eventType = params.eventType;\n var state = columns.map(function (column) {\n var colId = column.getColId();\n if (_this.columnModel.isPivotMode()) {\n var pivotStateForColumn = pivotState === null || pivotState === void 0 ? void 0 : pivotState[colId];\n return {\n colId: colId,\n pivot: pivotStateForColumn === null || pivotStateForColumn === void 0 ? void 0 : pivotStateForColumn.pivot,\n rowGroup: pivotStateForColumn === null || pivotStateForColumn === void 0 ? void 0 : pivotStateForColumn.rowGroup,\n aggFunc: pivotStateForColumn === null || pivotStateForColumn === void 0 ? void 0 : pivotStateForColumn.aggFunc,\n };\n }\n else {\n return {\n colId: colId,\n hide: !(visibleState === null || visibleState === void 0 ? void 0 : visibleState[colId])\n };\n }\n });\n this.columnModel.applyColumnState({ state: state }, eventType);\n };\n ModelItemUtils.prototype.createPivotState = function (column) {\n return {\n pivot: column.isPivotActive(),\n rowGroup: column.isRowGroupActive(),\n aggFunc: column.isValueActive() ? column.getAggFunc() : undefined\n };\n };\n __decorate$24([\n Autowired('aggFuncService')\n ], ModelItemUtils.prototype, \"aggFuncService\", void 0);\n __decorate$24([\n Autowired('columnModel')\n ], ModelItemUtils.prototype, \"columnModel\", void 0);\n __decorate$24([\n Autowired('gridOptionsService')\n ], ModelItemUtils.prototype, \"gridOptionsService\", void 0);\n __decorate$24([\n Autowired('eventService')\n ], ModelItemUtils.prototype, \"eventService\", void 0);\n ModelItemUtils = __decorate$24([\n Bean('modelItemUtils')\n ], ModelItemUtils);\n return ModelItemUtils;\n}());\n\n// DO NOT UPDATE MANUALLY: Generated from script during build time\nvar VERSION$e = '30.2.0';\n\nvar ColumnsToolPanelModule = {\n version: VERSION$e,\n moduleName: ModuleNames.ColumnsToolPanelModule,\n beans: [ModelItemUtils],\n agStackComponents: [\n { componentName: 'AgPrimaryColsHeader', componentClass: PrimaryColsHeaderPanel },\n { componentName: 'AgPrimaryColsList', componentClass: PrimaryColsListPanel },\n { componentName: 'AgPrimaryCols', componentClass: PrimaryColsPanel }\n ],\n userComponents: [\n { componentName: 'agColumnsToolPanel', componentClass: ColumnToolPanel },\n ],\n dependantModules: [\n EnterpriseCoreModule,\n RowGroupingModule,\n SideBarModule\n ]\n};\n\nvar workbook = {\n getTemplate: function () {\n return {\n name: \"Workbook\",\n properties: {\n prefixedAttributes: [{\n prefix: \"xmlns:\",\n map: {\n o: \"urn:schemas-microsoft-com:office:office\",\n x: \"urn:schemas-microsoft-com:office:excel\",\n ss: \"urn:schemas-microsoft-com:office:spreadsheet\",\n html: \"http://www.w3.org/TR/REC-html40\"\n },\n }],\n rawMap: {\n xmlns: \"urn:schemas-microsoft-com:office:spreadsheet\"\n }\n }\n };\n }\n};\n\nvar excelWorkbook = {\n getTemplate: function () {\n return {\n name: \"ExcelWorkbook\",\n properties: {\n rawMap: {\n xmlns: \"urn:schemas-microsoft-com:office:excel\"\n }\n },\n children: [{\n name: \"WindowHeight\",\n textNode: \"8130\"\n }, {\n name: \"WindowWidth\",\n textNode: \"15135\"\n }, {\n name: \"WindowHeight\",\n textNode: \"8130\"\n }, {\n name: \"WindowTopX\",\n textNode: \"120\"\n }, {\n name: \"WindowTopY\",\n textNode: \"45\"\n }, {\n name: \"ProtectStructure\",\n textNode: \"False\"\n }, {\n name: \"ProtectWindow\",\n textNode: \"False\"\n }]\n };\n }\n};\n\nvar column = {\n getTemplate: function (c) {\n var width = c.width;\n return {\n name: \"Column\",\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: {\n Width: width\n }\n }]\n }\n };\n }\n};\n\nvar cell = {\n getTemplate: function (c) {\n var mergeAcross = c.mergeAcross, styleId = c.styleId, data = c.data;\n var properties = {};\n if (mergeAcross) {\n properties.MergeAcross = mergeAcross;\n }\n if (styleId) {\n properties.StyleID = styleId;\n }\n return {\n name: \"Cell\",\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: properties\n }]\n },\n children: [{\n name: \"Data\",\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: {\n Type: data === null || data === void 0 ? void 0 : data.type\n }\n }]\n },\n textNode: data === null || data === void 0 ? void 0 : data.value\n }]\n };\n }\n};\n\nvar row = {\n getTemplate: function (r) {\n var cells = r.cells;\n return {\n name: \"Row\",\n children: cells.map(function (it) { return cell.getTemplate(it); })\n };\n }\n};\n\nvar worksheet = {\n getTemplate: function (ws) {\n var table = ws.table, name = ws.name;\n var columns = table.columns, rows = table.rows;\n var c = columns.map(function (it) { return column.getTemplate(it); });\n var r = rows.map(function (it) { return row.getTemplate(it); });\n return {\n name: \"Worksheet\",\n children: [{\n name: \"Table\",\n children: c.concat(r)\n }],\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: {\n Name: name\n }\n }]\n }\n };\n }\n};\n\nvar documentProperties = {\n getTemplate: function () {\n return {\n name: \"DocumentProperties\",\n properties: {\n rawMap: {\n xmlns: \"urn:schemas-microsoft-com:office:office\"\n }\n },\n children: [{\n name: \"Version\",\n textNode: \"12.00\"\n }]\n };\n }\n};\n\nvar alignment = {\n getTemplate: function (styleProperties) {\n var _a = styleProperties.alignment, vertical = _a.vertical, horizontal = _a.horizontal, indent = _a.indent, readingOrder = _a.readingOrder, rotate = _a.rotate, shrinkToFit = _a.shrinkToFit, verticalText = _a.verticalText, wrapText = _a.wrapText;\n return {\n name: 'Alignment',\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: {\n Vertical: vertical,\n Horizontal: horizontal,\n Indent: indent,\n ReadingOrder: readingOrder,\n Rotate: rotate,\n ShrinkToFit: shrinkToFit,\n VerticalText: verticalText,\n WrapText: wrapText\n }\n }]\n }\n };\n }\n};\n\nvar borders = {\n getTemplate: function (styleProperties) {\n var _a = styleProperties.borders, borderBottom = _a.borderBottom, borderLeft = _a.borderLeft, borderRight = _a.borderRight, borderTop = _a.borderTop;\n return {\n name: 'Borders',\n children: [borderBottom, borderLeft, borderRight, borderTop].map(function (it, index) {\n var current = index == 0 ? \"Bottom\" : index == 1 ? \"Left\" : index == 2 ? \"Right\" : \"Top\";\n return {\n name: 'Border',\n properties: {\n prefixedAttributes: [{\n prefix: 'ss:',\n map: {\n Position: current,\n LineStyle: it.lineStyle,\n Weight: it.weight,\n Color: it.color\n }\n }]\n }\n };\n })\n };\n }\n};\n\nvar font = {\n getTemplate: function (styleProperties) {\n var _a = styleProperties.font, bold = _a.bold, fontName = _a.fontName, italic = _a.italic, color = _a.color, outline = _a.outline, shadow = _a.shadow, size = _a.size, strikeThrough = _a.strikeThrough, underline = _a.underline, verticalAlign = _a.verticalAlign, charSet = _a.charSet, family = _a.family;\n return {\n name: \"Font\",\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: {\n Bold: bold,\n FontName: fontName,\n Italic: italic,\n Color: color,\n Outline: outline,\n Shadow: shadow,\n Size: size,\n StrikeThrough: strikeThrough,\n Underline: underline,\n VerticalAlign: verticalAlign\n }\n }, {\n prefix: \"x:\",\n map: {\n CharSet: charSet,\n Family: family\n }\n }]\n }\n };\n }\n};\n\nvar interior = {\n getTemplate: function (styleProperties) {\n var _a = styleProperties.interior, color = _a.color, pattern = _a.pattern, patternColor = _a.patternColor;\n return {\n name: \"Interior\",\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: {\n Color: color,\n Pattern: pattern,\n PatternColor: patternColor\n }\n }]\n }\n };\n }\n};\n\nvar protection = {\n getTemplate: function (styleProperties) {\n return {\n name: \"Protection\",\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: {\n Protected: styleProperties.protection.protected,\n HideFormula: styleProperties.protection.hideFormula\n }\n }]\n }\n };\n }\n};\n\nvar numberFormat = {\n getTemplate: function (styleProperties) {\n var format = styleProperties.numberFormat.format;\n return {\n name: \"NumberFormat\",\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: {\n Format: format\n }\n }]\n }\n };\n }\n};\n\nvar style = {\n getTemplate: function (styleProperties) {\n var id = styleProperties.id, name = styleProperties.name;\n return {\n name: 'Style',\n properties: {\n prefixedAttributes: [{\n prefix: \"ss:\",\n map: {\n ID: id,\n Name: name ? name : id\n }\n }]\n }\n };\n }\n};\n\n/**\n * See https://msdn.microsoft.com/en-us/library/aa140066(v=office.10).aspx\n */\nvar ExcelXmlFactory = /** @class */ (function () {\n function ExcelXmlFactory() {\n }\n ExcelXmlFactory.createExcel = function (styles, currentWorksheet) {\n var header = this.excelXmlHeader();\n var docProps = documentProperties.getTemplate();\n var eWorkbook = excelWorkbook.getTemplate();\n var wb = this.workbook(docProps, eWorkbook, styles, currentWorksheet);\n return \"\" + header + XmlFactory.createXml(wb, function (boolean) { return boolean ? '1' : '0'; });\n };\n ExcelXmlFactory.workbook = function (docProperties, eWorkbook, styles, currentWorksheet) {\n var children = [\n docProperties,\n eWorkbook,\n this.stylesXmlElement(styles)\n ].concat(worksheet.getTemplate(currentWorksheet));\n return Object.assign({}, workbook.getTemplate(), { children: children });\n };\n ExcelXmlFactory.excelXmlHeader = function () {\n return \"\\n \\n \";\n };\n ExcelXmlFactory.stylesXmlElement = function (styles) {\n var _this = this;\n return {\n name: 'Styles',\n children: styles ? styles.map(function (it) { return _this.styleXmlElement(it); }) : []\n };\n };\n ExcelXmlFactory.styleXmlElement = function (styleProperties) {\n var children = _.compose(this.addProperty('alignment', styleProperties), this.addProperty('borders', styleProperties), this.addProperty('font', styleProperties), this.addProperty('interior', styleProperties), this.addProperty('protection', styleProperties), this.addProperty('numberFormat', styleProperties))([]);\n return Object.assign({}, style.getTemplate(styleProperties), { children: children });\n };\n ExcelXmlFactory.addProperty = function (property, styleProperties) {\n return function (children) {\n if (!styleProperties[property]) {\n return children;\n }\n var options = {\n alignment: alignment,\n borders: borders,\n font: font,\n interior: interior,\n numberFormat: numberFormat,\n protection: protection\n };\n return children.concat(options[property].getTemplate(styleProperties));\n };\n };\n ExcelXmlFactory.factoryMode = ExcelFactoryMode.SINGLE_SHEET;\n return ExcelXmlFactory;\n}());\n\nvar INCH_TO_EMU = 9525;\nvar numberFormatMap = {\n '0': 1,\n '0.00': 2,\n '#,##0': 3,\n '#,##0.00': 4,\n '0%': 9,\n '0.00%': 10,\n '0.00E+00': 11,\n '# ?/?': 12,\n '# ??/??': 13,\n 'mm-dd-yy': 14,\n 'd-mmm-yy': 15,\n 'd-mmm': 16,\n 'mmm-yy': 17,\n 'h:mm AM/PM': 18,\n 'h:mm:ss AM/PM': 19,\n 'h:mm': 20,\n 'h:mm:ss': 21,\n 'm/d/yy h:mm': 22,\n '#,##0 ;(#,##0)': 37,\n '#,##0 ;[Red](#,##0)': 38,\n '#,##0.00;(#,##0.00)': 39,\n '#,##0.00;[Red](#,##0.00)': 40,\n 'mm:ss': 45,\n '[h]:mm:ss': 46,\n 'mmss.0': 47,\n '##0.0E+0': 48,\n '@': 49\n};\n\nvar pixelsToPoint = function (pixels) {\n return Math.round(pixels * 72 / 96);\n};\nvar pointsToPixel = function (points) {\n return Math.round(points * 96 / 72);\n};\nvar pixelsToEMU = function (value) {\n return Math.ceil(value * INCH_TO_EMU);\n};\nvar getFontFamilyId = function (name) {\n if (name === undefined) {\n return;\n }\n var families = ['Automatic', 'Roman', 'Swiss', 'Modern', 'Script', 'Decorative'];\n var pos = families.indexOf(name || 'Automatic');\n return Math.max(pos, 0);\n};\nvar getHeightFromProperty = function (rowIndex, height) {\n if (!height) {\n return;\n }\n var finalHeight;\n if (typeof height === 'number') {\n finalHeight = height;\n }\n else {\n var heightFunc = height;\n finalHeight = heightFunc({ rowIndex: rowIndex });\n }\n return pixelsToPoint(finalHeight);\n};\nvar setExcelImageTotalWidth = function (image, columnsToExport) {\n var _a = image.position, colSpan = _a.colSpan, column = _a.column;\n if (image.width) {\n if (colSpan) {\n var columnsInSpan = columnsToExport.slice(column - 1, column + colSpan - 1);\n var totalWidth = 0;\n for (var i = 0; i < columnsInSpan.length; i++) {\n var colWidth = columnsInSpan[i].getActualWidth();\n if (image.width < totalWidth + colWidth) {\n image.position.colSpan = i + 1;\n image.totalWidth = image.width;\n image.width = image.totalWidth - totalWidth;\n break;\n }\n totalWidth += colWidth;\n }\n }\n else {\n image.totalWidth = image.width;\n }\n }\n};\nvar setExcelImageTotalHeight = function (image, rowHeight) {\n var _a = image.position, rowSpan = _a.rowSpan, row = _a.row;\n if (image.height) {\n if (rowSpan) {\n var totalHeight = 0;\n var counter = 0;\n for (var i = row; i < row + rowSpan; i++) {\n var nextRowHeight = pointsToPixel(getHeightFromProperty(i, rowHeight) || 20);\n if (image.height < totalHeight + nextRowHeight) {\n image.position.rowSpan = counter + 1;\n image.totalHeight = image.height;\n image.height = image.totalHeight - totalHeight;\n break;\n }\n totalHeight += nextRowHeight;\n counter++;\n }\n }\n else {\n image.totalHeight = image.height;\n }\n }\n};\nvar createXmlPart = function (body) {\n var header = XmlFactory.createHeader({\n encoding: 'UTF-8',\n standalone: 'yes'\n });\n var xmlBody = XmlFactory.createXml(body);\n return \"\" + header + xmlBody;\n};\nvar getExcelColumnName = function (colIdx) {\n var startCode = 65;\n var tableWidth = 26;\n var fromCharCode = String.fromCharCode;\n var pos = Math.floor(colIdx / tableWidth);\n var tableIdx = colIdx % tableWidth;\n if (!pos || colIdx === tableWidth) {\n return fromCharCode(startCode + colIdx - 1);\n }\n if (!tableIdx) {\n return getExcelColumnName(pos - 1) + 'Z';\n }\n if (pos < tableWidth) {\n return fromCharCode(startCode + pos - 1) + fromCharCode(startCode + tableIdx - 1);\n }\n return getExcelColumnName(pos) + fromCharCode(startCode + tableIdx - 1);\n};\n\nvar __extends$2W = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$_ = (undefined && undefined.__assign) || function () {\n __assign$_ = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$_.apply(this, arguments);\n};\nvar __read$1h = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$M = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar BaseExcelSerializingSession = /** @class */ (function (_super) {\n __extends$2W(BaseExcelSerializingSession, _super);\n function BaseExcelSerializingSession(config) {\n var _this = _super.call(this, config) || this;\n _this.mixedStyles = {};\n _this.mixedStyleCounter = 0;\n _this.rows = [];\n _this.config = Object.assign({}, config);\n _this.stylesByIds = {};\n _this.config.baseExcelStyles.forEach(function (style) {\n _this.stylesByIds[style.id] = style;\n });\n _this.excelStyles = __spreadArray$M([], __read$1h(_this.config.baseExcelStyles));\n return _this;\n }\n BaseExcelSerializingSession.prototype.addCustomContent = function (customContent) {\n var _this = this;\n customContent.forEach(function (row) {\n var rowLen = _this.rows.length + 1;\n var outlineLevel;\n if (!_this.config.suppressRowOutline && row.outlineLevel != null) {\n outlineLevel = row.outlineLevel;\n }\n var rowObj = {\n height: getHeightFromProperty(rowLen, row.height || _this.config.rowHeight),\n cells: (row.cells || []).map(function (cell, idx) {\n var _a, _b, _c;\n var image = _this.addImage(rowLen, _this.columnsToExport[idx], (_a = cell.data) === null || _a === void 0 ? void 0 : _a.value);\n var excelStyles = null;\n if (cell.styleId) {\n excelStyles = typeof cell.styleId === 'string' ? [cell.styleId] : cell.styleId;\n }\n var excelStyleId = _this.getStyleId(excelStyles);\n if (image) {\n return _this.createCell(excelStyleId, _this.getDataTypeForValue(image.value), image.value == null ? '' : image.value);\n }\n var value = (_c = (_b = cell.data) === null || _b === void 0 ? void 0 : _b.value) !== null && _c !== void 0 ? _c : '';\n var type = _this.getDataTypeForValue(value);\n if (cell.mergeAcross) {\n return _this.createMergedCell(excelStyleId, type, value, cell.mergeAcross);\n }\n return _this.createCell(excelStyleId, type, value);\n }),\n outlineLevel: outlineLevel\n };\n if (row.collapsed != null) {\n rowObj.collapsed = row.collapsed;\n }\n if (row.hidden != null) {\n rowObj.hidden = row.hidden;\n }\n _this.rows.push(rowObj);\n });\n };\n BaseExcelSerializingSession.prototype.onNewHeaderGroupingRow = function () {\n var _this = this;\n var currentCells = [];\n this.rows.push({\n cells: currentCells,\n height: getHeightFromProperty(this.rows.length + 1, this.config.headerRowHeight)\n });\n return {\n onColumn: function (columnGroup, header, index, span, collapsibleRanges) {\n var styleIds = _this.config.styleLinker({ rowType: RowType.HEADER_GROUPING, rowIndex: 1, value: \"grouping-\" + header, columnGroup: columnGroup });\n currentCells.push(__assign$_(__assign$_({}, _this.createMergedCell(_this.getStyleId(styleIds), _this.getDataTypeForValue('string'), header, span)), { collapsibleRanges: collapsibleRanges }));\n }\n };\n };\n BaseExcelSerializingSession.prototype.onNewHeaderRow = function () {\n return this.onNewRow(this.onNewHeaderColumn, this.config.headerRowHeight);\n };\n BaseExcelSerializingSession.prototype.onNewBodyRow = function (node) {\n var rowAccumulator = this.onNewRow(this.onNewBodyColumn, this.config.rowHeight);\n if (node) {\n this.addRowOutlineIfNecessary(node);\n }\n return rowAccumulator;\n };\n BaseExcelSerializingSession.prototype.addRowOutlineIfNecessary = function (node) {\n var _a = this.config, gridOptionsService = _a.gridOptionsService, suppressRowOutline = _a.suppressRowOutline, _b = _a.rowGroupExpandState, rowGroupExpandState = _b === void 0 ? 'expanded' : _b;\n var isGroupHideOpenParents = gridOptionsService.is('groupHideOpenParents');\n if (isGroupHideOpenParents || suppressRowOutline || node.level == null) {\n return;\n }\n var padding = node.footer ? 1 : 0;\n var currentRow = _.last(this.rows);\n currentRow.outlineLevel = node.level + padding;\n if (rowGroupExpandState === 'expanded') {\n return;\n }\n var collapseAll = rowGroupExpandState === 'collapsed';\n if (node.isExpandable()) {\n var isExpanded = !collapseAll && node.expanded;\n currentRow.collapsed = !isExpanded;\n }\n currentRow.hidden =\n // always show the node if there is no parent to be expanded\n !!node.parent &&\n // or if it is a child of the root node\n node.parent.level !== -1 &&\n (collapseAll || this.isAnyParentCollapsed(node.parent));\n };\n BaseExcelSerializingSession.prototype.isAnyParentCollapsed = function (node) {\n while (node && node.level !== -1) {\n if (!node.expanded) {\n return true;\n }\n node = node.parent;\n }\n return false;\n };\n BaseExcelSerializingSession.prototype.prepare = function (columnsToExport) {\n var _this = this;\n _super.prototype.prepare.call(this, columnsToExport);\n this.columnsToExport = __spreadArray$M([], __read$1h(columnsToExport));\n this.cols = columnsToExport.map(function (col, i) { return _this.convertColumnToExcel(col, i); });\n };\n BaseExcelSerializingSession.prototype.parse = function () {\n // adding custom content might have made some rows wider than the grid, so add new columns\n var longestRow = this.rows.reduce(function (a, b) { return Math.max(a, b.cells.length); }, 0);\n while (this.cols.length < longestRow) {\n this.cols.push(this.convertColumnToExcel(null, this.cols.length + 1));\n }\n var data = {\n name: this.config.sheetName,\n table: {\n columns: this.cols,\n rows: this.rows\n }\n };\n return this.createExcel(data);\n };\n BaseExcelSerializingSession.prototype.isFormula = function (value) {\n if (value == null) {\n return false;\n }\n return this.config.autoConvertFormulas && value.toString().startsWith('=');\n };\n BaseExcelSerializingSession.prototype.isNumerical = function (value) {\n if (typeof value === 'bigint') {\n return true;\n }\n return isFinite(value) && value !== '' && !isNaN(parseFloat(value));\n };\n BaseExcelSerializingSession.prototype.getStyleById = function (styleId) {\n if (styleId == null) {\n return null;\n }\n return this.stylesByIds[styleId] || null;\n };\n BaseExcelSerializingSession.prototype.convertColumnToExcel = function (column, index) {\n var columnWidth = this.config.columnWidth;\n if (columnWidth) {\n if (typeof columnWidth === 'number') {\n return { width: columnWidth };\n }\n return { width: columnWidth({ column: column, index: index }) };\n }\n if (column) {\n var smallestUsefulWidth = 75;\n return { width: Math.max(column.getActualWidth(), smallestUsefulWidth) };\n }\n return {};\n };\n BaseExcelSerializingSession.prototype.onNewHeaderColumn = function (rowIndex, currentCells) {\n var _this = this;\n return function (column, index) {\n var nameForCol = _this.extractHeaderValue(column);\n var styleIds = _this.config.styleLinker({ rowType: RowType.HEADER, rowIndex: rowIndex, value: nameForCol, column: column });\n currentCells.push(_this.createCell(_this.getStyleId(styleIds), _this.getDataTypeForValue('string'), nameForCol));\n };\n };\n BaseExcelSerializingSession.prototype.onNewRow = function (onNewColumnAccumulator, height) {\n var currentCells = [];\n this.rows.push({\n cells: currentCells,\n height: getHeightFromProperty(this.rows.length + 1, height)\n });\n return {\n onColumn: onNewColumnAccumulator.bind(this, this.rows.length, currentCells)()\n };\n };\n BaseExcelSerializingSession.prototype.onNewBodyColumn = function (rowIndex, currentCells) {\n var _this = this;\n var skipCols = 0;\n return function (column, index, node) {\n if (skipCols > 0) {\n skipCols -= 1;\n return;\n }\n var _a = _this.extractRowCellValue(column, index, rowIndex, 'excel', node), valueForCell = _a.value, valueFormatted = _a.valueFormatted;\n var styleIds = _this.config.styleLinker({ rowType: RowType.BODY, rowIndex: rowIndex, value: valueForCell, column: column, node: node });\n var excelStyleId = _this.getStyleId(styleIds);\n var colSpan = column.getColSpan(node);\n var addedImage = _this.addImage(rowIndex, column, valueForCell);\n if (addedImage) {\n currentCells.push(_this.createCell(excelStyleId, _this.getDataTypeForValue(addedImage.value), addedImage.value == null ? '' : addedImage.value));\n }\n else if (colSpan > 1) {\n skipCols = colSpan - 1;\n currentCells.push(_this.createMergedCell(excelStyleId, _this.getDataTypeForValue(valueForCell), valueForCell, colSpan - 1));\n }\n else {\n currentCells.push(_this.createCell(excelStyleId, _this.getDataTypeForValue(valueForCell), valueForCell, valueFormatted));\n }\n };\n };\n BaseExcelSerializingSession.prototype.getStyleId = function (styleIds) {\n if (!styleIds || !styleIds.length) {\n return null;\n }\n if (styleIds.length === 1) {\n return styleIds[0];\n }\n var key = styleIds.join(\"-\");\n if (!this.mixedStyles[key]) {\n this.addNewMixedStyle(styleIds);\n }\n return this.mixedStyles[key].excelID;\n };\n BaseExcelSerializingSession.prototype.addNewMixedStyle = function (styleIds) {\n var _this = this;\n this.mixedStyleCounter += 1;\n var excelId = \"mixedStyle\" + this.mixedStyleCounter;\n var resultantStyle = {};\n styleIds.forEach(function (styleId) {\n _this.excelStyles.forEach(function (excelStyle) {\n if (excelStyle.id === styleId) {\n _.mergeDeep(resultantStyle, _.deepCloneObject(excelStyle));\n }\n });\n });\n resultantStyle.id = excelId;\n resultantStyle.name = excelId;\n var key = styleIds.join(\"-\");\n this.mixedStyles[key] = {\n excelID: excelId,\n key: key,\n result: resultantStyle\n };\n this.excelStyles.push(resultantStyle);\n this.stylesByIds[excelId] = resultantStyle;\n };\n return BaseExcelSerializingSession;\n}(BaseGridSerializingSession));\n\nvar __extends$2V = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar ExcelXmlSerializingSession = /** @class */ (function (_super) {\n __extends$2V(ExcelXmlSerializingSession, _super);\n function ExcelXmlSerializingSession() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ExcelXmlSerializingSession.prototype.createExcel = function (data) {\n return ExcelXmlFactory.createExcel(this.excelStyles, data);\n };\n ExcelXmlSerializingSession.prototype.getDataTypeForValue = function (valueForCell) {\n return this.isNumerical(valueForCell) ? 'Number' : 'String';\n };\n ExcelXmlSerializingSession.prototype.getType = function (type, style, value) {\n if (this.isFormula(value)) {\n return 'Formula';\n }\n if (style && style.dataType) {\n switch (style.dataType.toLocaleLowerCase()) {\n case 'string':\n return 'Formula';\n case 'number':\n return 'Number';\n case 'datetime':\n return 'DateTime';\n case 'error':\n return 'Error';\n case 'boolean':\n return 'Boolean';\n default:\n console.warn(\"AG Grid: Unrecognized data type for excel export [\" + style.id + \".dataType=\" + style.dataType + \"]\");\n }\n }\n return type;\n };\n ExcelXmlSerializingSession.prototype.addImage = function () {\n return;\n };\n ExcelXmlSerializingSession.prototype.createCell = function (styleId, type, value, valueFormatted) {\n var actualStyle = this.getStyleById(styleId);\n if (!(actualStyle === null || actualStyle === void 0 ? void 0 : actualStyle.dataType) && type === 'String' && valueFormatted) {\n value = valueFormatted;\n }\n var typeTransformed = (this.getType(type, actualStyle, value) || type);\n return {\n styleId: !!actualStyle ? styleId : undefined,\n data: {\n type: typeTransformed,\n value: this.getValueTransformed(typeTransformed, value)\n }\n };\n };\n ExcelXmlSerializingSession.prototype.getValueTransformed = function (typeTransformed, value) {\n var _this = this;\n var wrapText = function (val) {\n if (_this.config.suppressTextAsCDATA) {\n return _.escapeString(val);\n }\n var cdataStart = '';\n var cdataEndRegex = new RegExp(cdataEnd, \"g\");\n return cdataStart\n // CDATA sections are closed by the character sequence ']]>' and there is no\n // way of escaping this, so if the text contains the offending sequence, emit\n // multiple CDATA sections and split the characters between them.\n + String(val).replace(cdataEndRegex, ']]' + cdataEnd + cdataStart + '>')\n + cdataEnd;\n };\n var convertBoolean = function (val) {\n if (!val || val === '0' || val === 'false') {\n return '0';\n }\n return '1';\n };\n switch (typeTransformed) {\n case 'String':\n return wrapText(value);\n case 'Number':\n return Number(value).valueOf() + '';\n case 'Boolean':\n return convertBoolean(value);\n default:\n return value;\n }\n };\n ExcelXmlSerializingSession.prototype.createMergedCell = function (styleId, type, value, numOfCells) {\n return {\n styleId: !!this.getStyleById(styleId) ? styleId : undefined,\n data: {\n type: type,\n value: value\n },\n mergeAcross: numOfCells\n };\n };\n return ExcelXmlSerializingSession;\n}(BaseExcelSerializingSession));\n\nvar coreFactory = {\n getTemplate: function (author) {\n var dt = new Date();\n var jsonDate = dt.toJSON();\n return {\n name: 'cp:coreProperties',\n properties: {\n prefixedAttributes: [{\n prefix: \"xmlns:\",\n map: {\n cp: \"http://schemas.openxmlformats.org/package/2006/metadata/core-properties\",\n dc: 'http://purl.org/dc/elements/1.1/',\n dcterms: 'http://purl.org/dc/terms/',\n dcmitype: 'http://purl.org/dc/dcmitype/',\n xsi: 'http://www.w3.org/2001/XMLSchema-instance'\n }\n }]\n },\n children: [{\n name: 'dc:creator',\n textNode: author\n }, {\n name: 'dc:title',\n textNode: 'Workbook'\n }, {\n name: 'dcterms:created',\n properties: {\n rawMap: {\n 'xsi:type': 'dcterms:W3CDTF'\n }\n },\n textNode: jsonDate\n }, {\n name: 'dcterms:modified',\n properties: {\n rawMap: {\n 'xsi:type': 'dcterms:W3CDTF'\n }\n },\n textNode: jsonDate\n }]\n };\n }\n};\n\nvar contentTypeFactory = {\n getTemplate: function (config) {\n var name = config.name, ContentType = config.ContentType, Extension = config.Extension, PartName = config.PartName;\n return {\n name: name,\n properties: {\n rawMap: {\n Extension: Extension,\n PartName: PartName,\n ContentType: ContentType\n }\n }\n };\n }\n};\n\nvar __read$1g = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$L = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar contentTypesFactory = {\n getTemplate: function (sheetLen) {\n var worksheets = new Array(sheetLen).fill(undefined).map(function (v, i) { return ({\n name: 'Override',\n ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml',\n PartName: \"/xl/worksheets/sheet\" + (i + 1) + \".xml\"\n }); });\n var sheetsWithImages = ExcelXlsxFactory.worksheetImages.size;\n var imageTypesObject = {};\n ExcelXlsxFactory.workbookImageIds.forEach(function (v) {\n imageTypesObject[v.type] = true;\n });\n var imageDocs = new Array(sheetsWithImages).fill(undefined).map(function (v, i) { return ({\n name: 'Override',\n ContentType: 'application/vnd.openxmlformats-officedocument.drawing+xml',\n PartName: \"/xl/drawings/drawing\" + (i + 1) + \".xml\"\n }); });\n var imageTypes = Object.keys(imageTypesObject).map(function (ext) { return ({\n name: 'Default',\n ContentType: \"image/\" + ext,\n Extension: ext\n }); });\n var children = __spreadArray$L(__spreadArray$L(__spreadArray$L(__spreadArray$L(__spreadArray$L(__spreadArray$L([], __read$1g(imageTypes)), [\n {\n name: 'Default',\n Extension: 'rels',\n ContentType: 'application/vnd.openxmlformats-package.relationships+xml'\n }, {\n name: 'Default',\n ContentType: 'application/xml',\n Extension: 'xml'\n }, {\n name: 'Override',\n ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml',\n PartName: \"/xl/workbook.xml\"\n }\n ]), __read$1g(worksheets)), [\n {\n name: 'Override',\n ContentType: 'application/vnd.openxmlformats-officedocument.theme+xml',\n PartName: '/xl/theme/theme1.xml'\n }, {\n name: 'Override',\n ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml',\n PartName: '/xl/styles.xml'\n }, {\n name: 'Override',\n ContentType: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml',\n PartName: '/xl/sharedStrings.xml'\n }\n ]), __read$1g(imageDocs)), [\n {\n name: 'Override',\n ContentType: 'application/vnd.openxmlformats-package.core-properties+xml',\n PartName: '/docProps/core.xml'\n }\n ]).map(function (contentType) { return contentTypeFactory.getTemplate(contentType); });\n return {\n name: \"Types\",\n properties: {\n rawMap: {\n xmlns: \"http://schemas.openxmlformats.org/package/2006/content-types\"\n }\n },\n children: children\n };\n }\n};\n\nvar getAnchor = function (name, imageAnchor) { return ({\n name: \"xdr:\" + name,\n children: [{\n name: 'xdr:col',\n textNode: (imageAnchor.col).toString()\n }, {\n name: 'xdr:colOff',\n textNode: imageAnchor.offsetX.toString()\n }, {\n name: 'xdr:row',\n textNode: imageAnchor.row.toString()\n }, {\n name: 'xdr:rowOff',\n textNode: imageAnchor.offsetY.toString()\n }]\n}); };\nvar getExt = function (image) {\n var children = [{\n name: 'a:ext',\n properties: {\n rawMap: {\n uri: '{FF2B5EF4-FFF2-40B4-BE49-F238E27FC236}'\n }\n },\n children: [{\n name: 'a16:creationId',\n properties: {\n rawMap: {\n 'id': '{822E6D20-D7BC-2841-A643-D49A6EF008A2}',\n 'xmlns:a16': 'http://schemas.microsoft.com/office/drawing/2014/main'\n }\n }\n }]\n }];\n var recolor = image.recolor && image.recolor.toLowerCase();\n switch (recolor) {\n case 'grayscale':\n case 'sepia':\n case 'washout':\n children.push({\n name: 'a:ext',\n properties: {\n rawMap: {\n uri: '{C183D7F6-B498-43B3-948B-1728B52AA6E4}'\n }\n },\n children: [{\n name: 'adec:decorative',\n properties: {\n rawMap: {\n 'val': '0',\n 'xmlns:adec': 'http://schemas.microsoft.com/office/drawing/2017/decorative'\n }\n }\n }]\n });\n }\n return {\n name: 'a:extLst',\n children: children\n };\n};\nvar getNvPicPr = function (image, index) { return ({\n name: 'xdr:nvPicPr',\n children: [{\n name: 'xdr:cNvPr',\n properties: {\n rawMap: {\n id: index,\n name: image.id,\n descr: image.altText != null ? image.altText : undefined\n }\n },\n children: [getExt(image)]\n }, {\n name: 'xdr:cNvPicPr',\n properties: {\n rawMap: {\n preferRelativeResize: '0'\n }\n },\n children: [{\n name: 'a:picLocks'\n }]\n }]\n}); };\nvar getColorDetails = function (color) {\n if (!color.saturation && !color.tint) {\n return;\n }\n var ret = [];\n if (color.saturation) {\n ret.push({\n name: 'a:satMod',\n properties: {\n rawMap: {\n val: color.saturation * 1000\n }\n }\n });\n }\n if (color.tint) {\n ret.push({\n name: 'a:tint',\n properties: {\n rawMap: {\n val: color.tint * 1000\n }\n }\n });\n }\n return ret;\n};\nvar getDuoTone = function (primaryColor, secondaryColor) {\n return ({\n name: 'a:duotone',\n children: [{\n name: 'a:prstClr',\n properties: {\n rawMap: {\n val: primaryColor.color\n }\n },\n children: getColorDetails(primaryColor)\n }, {\n name: 'a:srgbClr',\n properties: {\n rawMap: {\n val: secondaryColor.color\n }\n },\n children: getColorDetails(secondaryColor)\n }]\n });\n};\nvar getBlipFill = function (image, index) {\n var blipChildren;\n if (image.transparency) {\n var transparency = Math.min(Math.max(image.transparency, 0), 100);\n blipChildren = [{\n name: 'a:alphaModFix',\n properties: {\n rawMap: {\n amt: 100000 - Math.round(transparency * 1000),\n }\n }\n }];\n }\n if (image.recolor) {\n if (!blipChildren) {\n blipChildren = [];\n }\n switch (image.recolor.toLocaleLowerCase()) {\n case 'grayscale':\n blipChildren.push({ name: 'a:grayscl' });\n break;\n case 'sepia':\n blipChildren.push(getDuoTone({ color: 'black' }, { color: 'D9C3A5', tint: 50, saturation: 180 }));\n break;\n case 'washout':\n blipChildren.push({\n name: 'a:lum',\n properties: {\n rawMap: {\n bright: '70000',\n contrast: '-70000'\n }\n }\n });\n break;\n }\n }\n return ({\n name: 'xdr:blipFill',\n children: [{\n name: 'a:blip',\n properties: {\n rawMap: {\n 'cstate': 'print',\n 'r:embed': \"rId\" + index,\n 'xmlns:r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'\n }\n },\n children: blipChildren\n }, {\n name: 'a:stretch',\n children: [{\n name: 'a:fillRect'\n }]\n }]\n });\n};\nvar getSpPr = function (image, imageBoxSize) {\n var xfrm = {\n name: 'a:xfrm',\n children: [{\n name: 'a:off',\n properties: {\n rawMap: {\n x: 0,\n y: 0\n }\n }\n }, {\n name: 'a:ext',\n properties: {\n rawMap: {\n cx: imageBoxSize.width,\n cy: imageBoxSize.height\n }\n }\n }]\n };\n if (image.rotation) {\n var rotation = image.rotation;\n xfrm.properties = {\n rawMap: {\n rot: Math.min(Math.max(rotation, 0), 360) * 60000\n }\n };\n }\n var prstGeom = {\n name: 'a:prstGeom',\n properties: {\n rawMap: {\n prst: 'rect'\n }\n },\n children: [{ name: 'a:avLst' }]\n };\n var ret = {\n name: 'xdr:spPr',\n children: [xfrm, prstGeom]\n };\n return ret;\n};\nvar getImageBoxSize = function (image) {\n image.fitCell = !!image.fitCell || (!image.width || !image.height);\n var _a = image.position, position = _a === void 0 ? {} : _a, fitCell = image.fitCell, _b = image.width, width = _b === void 0 ? 0 : _b, _c = image.height, height = _c === void 0 ? 0 : _c, totalHeight = image.totalHeight, totalWidth = image.totalWidth;\n var _d = position.offsetX, offsetX = _d === void 0 ? 0 : _d, _e = position.offsetY, offsetY = _e === void 0 ? 0 : _e, _f = position.row, row = _f === void 0 ? 1 : _f, _g = position.rowSpan, rowSpan = _g === void 0 ? 1 : _g, _h = position.column, column = _h === void 0 ? 1 : _h, _j = position.colSpan, colSpan = _j === void 0 ? 1 : _j;\n return {\n from: {\n row: row - 1,\n col: column - 1,\n offsetX: pixelsToEMU(offsetX),\n offsetY: pixelsToEMU(offsetY)\n },\n to: {\n row: (row - 1) + (fitCell ? 1 : rowSpan - 1),\n col: (column - 1) + (fitCell ? 1 : colSpan - 1),\n offsetX: pixelsToEMU(width + offsetX),\n offsetY: pixelsToEMU(height + offsetY)\n },\n height: pixelsToEMU(totalHeight || height),\n width: pixelsToEMU(totalWidth || width)\n };\n};\nvar getPicture = function (image, currentIndex, worksheetImageIndex, imageBoxSize) {\n return {\n name: 'xdr:pic',\n children: [\n getNvPicPr(image, currentIndex + 1),\n getBlipFill(image, worksheetImageIndex + 1),\n getSpPr(image, imageBoxSize)\n ]\n };\n};\nvar drawingFactory = {\n getTemplate: function (config) {\n var sheetIndex = config.sheetIndex;\n var sheetImages = ExcelXlsxFactory.worksheetImages.get(sheetIndex);\n var sheetImageIds = ExcelXlsxFactory.worksheetImageIds.get(sheetIndex);\n var children = sheetImages.map(function (image, idx) {\n var boxSize = getImageBoxSize(image);\n return ({\n name: 'xdr:twoCellAnchor',\n properties: {\n rawMap: {\n editAs: 'absolute'\n }\n },\n children: [\n getAnchor('from', boxSize.from),\n getAnchor('to', boxSize.to),\n getPicture(image, idx, sheetImageIds.get(image.id).index, boxSize),\n { name: 'xdr:clientData' }\n ]\n });\n });\n return {\n name: 'xdr:wsDr',\n properties: {\n rawMap: {\n 'xmlns:a': 'http://schemas.openxmlformats.org/drawingml/2006/main',\n 'xmlns:xdr': 'http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing'\n }\n },\n children: children\n };\n }\n};\n\nvar __read$1f = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar getColorChildren = function (props) {\n var _a = __read$1f(props, 4), type = _a[0], innerType = _a[1], val = _a[2], lastClr = _a[3];\n return {\n name: \"a:\" + type,\n children: [{\n name: \"a:\" + innerType,\n properties: {\n rawMap: {\n val: val,\n lastClr: lastClr\n }\n }\n }]\n };\n};\nvar colorScheme = {\n getTemplate: function () {\n return {\n name: \"a:clrScheme\",\n properties: {\n rawMap: {\n name: \"Office\"\n }\n },\n children: [\n getColorChildren(['dk1', 'sysClr', 'windowText', '000000']),\n getColorChildren(['lt1', 'sysClr', 'window', 'FFFFFF']),\n getColorChildren(['dk2', 'srgbClr', '44546A']),\n getColorChildren(['lt2', 'srgbClr', 'E7E6E6']),\n getColorChildren(['accent1', 'srgbClr', '4472C4']),\n getColorChildren(['accent2', 'srgbClr', 'ED7D31']),\n getColorChildren(['accent3', 'srgbClr', 'A5A5A5']),\n getColorChildren(['accent4', 'srgbClr', 'FFC000']),\n getColorChildren(['accent5', 'srgbClr', '5B9BD5']),\n getColorChildren(['accent6', 'srgbClr', '70AD47']),\n getColorChildren(['hlink', 'srgbClr', '0563C1']),\n getColorChildren(['folHlink', 'srgbClr', '954F72'])\n ]\n };\n }\n};\n\nvar __read$1e = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar getFont$1 = function (props) {\n var _a = __read$1e(props, 4), type = _a[0], typeface = _a[1], script = _a[2], panose = _a[3];\n return {\n name: \"a:\" + type,\n properties: {\n rawMap: {\n script: script,\n typeface: typeface,\n panose: panose\n }\n }\n };\n};\nvar fontScheme = {\n getTemplate: function () {\n var utf8_encode = _.utf8_encode;\n return {\n name: \"a:fontScheme\",\n properties: {\n rawMap: {\n name: \"Office\"\n }\n },\n children: [{\n name: 'a:majorFont',\n children: [\n getFont$1(['latin', 'Calibri Light', undefined, '020F0302020204030204']),\n getFont$1(['ea', '']),\n getFont$1(['cs', '']),\n getFont$1(['font', utf8_encode('游ゴシック Light'), 'Jpan']),\n getFont$1(['font', utf8_encode('맑은 고딕'), 'Hang']),\n getFont$1(['font', utf8_encode('等线 Light'), 'Hans']),\n getFont$1(['font', utf8_encode('新細明體'), 'Hant']),\n getFont$1(['font', 'Times New Roman', 'Arab']),\n getFont$1(['font', 'Times New Roman', 'Hebr']),\n getFont$1(['font', 'Tahoma', 'Thai']),\n getFont$1(['font', 'Nyala', 'Ethi']),\n getFont$1(['font', 'Vrinda', 'Beng']),\n getFont$1(['font', 'Shruti', 'Gujr']),\n getFont$1(['font', 'MoolBoran', 'Khmr']),\n getFont$1(['font', 'Tunga', 'Knda']),\n getFont$1(['font', 'Raavi', 'Guru']),\n getFont$1(['font', 'Euphemia', 'Cans']),\n getFont$1(['font', 'Plantagenet Cherokee', 'Cher']),\n getFont$1(['font', 'Microsoft Yi Baiti', 'Yiii']),\n getFont$1(['font', 'Microsoft Himalaya', 'Tibt']),\n getFont$1(['font', 'MV Boli', 'Thaa']),\n getFont$1(['font', 'Mangal', 'Deva']),\n getFont$1(['font', 'Gautami', 'Telu']),\n getFont$1(['font', 'Latha', 'Taml']),\n getFont$1(['font', 'Estrangelo Edessa', 'Syrc']),\n getFont$1(['font', 'Kalinga', 'Orya']),\n getFont$1(['font', 'Kartika', 'Mlym']),\n getFont$1(['font', 'DokChampa', 'Laoo']),\n getFont$1(['font', 'Iskoola Pota', 'Sinh']),\n getFont$1(['font', 'Mongolian Baiti', 'Mong']),\n getFont$1(['font', 'Times New Roman', 'Viet']),\n getFont$1(['font', 'Microsoft Uighur', 'Uigh']),\n getFont$1(['font', 'Sylfaen', 'Geor']),\n getFont$1(['font', 'Arial', 'Armn']),\n getFont$1(['font', 'Leelawadee UI', 'Bugi']),\n getFont$1(['font', 'Microsoft JhengHei', 'Bopo']),\n getFont$1(['font', 'Javanese Text', 'Java']),\n getFont$1(['font', 'Segoe UI', 'Lisu']),\n getFont$1(['font', 'Myanmar Text', 'Mymr']),\n getFont$1(['font', 'Ebrima', 'Nkoo']),\n getFont$1(['font', 'Nirmala UI', 'Olck']),\n getFont$1(['font', 'Ebrima', 'Osma']),\n getFont$1(['font', 'Phagspa', 'Phag']),\n getFont$1(['font', 'Estrangelo Edessa', 'Syrn']),\n getFont$1(['font', 'Estrangelo Edessa', 'Syrj']),\n getFont$1(['font', 'Estrangelo Edessa', 'Syre']),\n getFont$1(['font', 'Nirmala UI', 'Sora']),\n getFont$1(['font', 'Microsoft Tai Le', 'Tale']),\n getFont$1(['font', 'Microsoft New Tai Lue', 'Talu']),\n getFont$1(['font', 'Ebrima', 'Tfng'])\n ]\n }, {\n name: 'a:minorFont',\n children: [\n getFont$1(['latin', 'Calibri', undefined, '020F0502020204030204']),\n getFont$1(['ea', '']),\n getFont$1(['cs', '']),\n getFont$1(['font', utf8_encode('游ゴシック'), 'Jpan']),\n getFont$1(['font', utf8_encode('맑은 고딕'), 'Hang']),\n getFont$1(['font', utf8_encode('等线'), 'Hans']),\n getFont$1(['font', utf8_encode('新細明體'), 'Hant']),\n getFont$1(['font', 'Arial', 'Arab']),\n getFont$1(['font', 'Arial', 'Hebr']),\n getFont$1(['font', 'Tahoma', 'Thai']),\n getFont$1(['font', 'Nyala', 'Ethi']),\n getFont$1(['font', 'Vrinda', 'Beng']),\n getFont$1(['font', 'Shruti', 'Gujr']),\n getFont$1(['font', 'DaunPenh', 'Khmr']),\n getFont$1(['font', 'Tunga', 'Knda']),\n getFont$1(['font', 'Raavi', 'Guru']),\n getFont$1(['font', 'Euphemia', 'Cans']),\n getFont$1(['font', 'Plantagenet Cherokee', 'Cher']),\n getFont$1(['font', 'Microsoft Yi Baiti', 'Yiii']),\n getFont$1(['font', 'Microsoft Himalaya', 'Tibt']),\n getFont$1(['font', 'MV Boli', 'Thaa']),\n getFont$1(['font', 'Mangal', 'Deva']),\n getFont$1(['font', 'Gautami', 'Telu']),\n getFont$1(['font', 'Latha', 'Taml']),\n getFont$1(['font', 'Estrangelo Edessa', 'Syrc']),\n getFont$1(['font', 'Kalinga', 'Orya']),\n getFont$1(['font', 'Kartika', 'Mlym']),\n getFont$1(['font', 'DokChampa', 'Laoo']),\n getFont$1(['font', 'Iskoola Pota', 'Sinh']),\n getFont$1(['font', 'Mongolian Baiti', 'Mong']),\n getFont$1(['font', 'Arial', 'Viet']),\n getFont$1(['font', 'Microsoft Uighur', 'Uigh']),\n getFont$1(['font', 'Sylfaen', 'Geor']),\n getFont$1(['font', 'Arial', 'Armn']),\n getFont$1(['font', 'Leelawadee UI', 'Bugi']),\n getFont$1(['font', 'Microsoft JhengHei', 'Bopo']),\n getFont$1(['font', 'Javanese Text', 'Java']),\n getFont$1(['font', 'Segoe UI', 'Lisu']),\n getFont$1(['font', 'Myanmar Text', 'Mymr']),\n getFont$1(['font', 'Ebrima', 'Nkoo']),\n getFont$1(['font', 'Nirmala UI', 'Olck']),\n getFont$1(['font', 'Ebrima', 'Osma']),\n getFont$1(['font', 'Phagspa', 'Phag']),\n getFont$1(['font', 'Estrangelo Edessa', 'Syrn']),\n getFont$1(['font', 'Estrangelo Edessa', 'Syrj']),\n getFont$1(['font', 'Estrangelo Edessa', 'Syre']),\n getFont$1(['font', 'Nirmala UI', 'Sora']),\n getFont$1(['font', 'Microsoft Tai Le', 'Tale']),\n getFont$1(['font', 'Microsoft New Tai Lue', 'Talu']),\n getFont$1(['font', 'Ebrima', 'Tfng'])\n ]\n }]\n };\n }\n};\n\nvar __read$1d = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar getPropertyVal = function (name, val, children) { return ({\n name: \"a:\" + name,\n properties: {\n rawMap: {\n val: val\n }\n },\n children: children\n}); };\nvar getGs = function (props) {\n var _a = __read$1d(props, 6), pos = _a[0], schemeColor = _a[1], satMod = _a[2], lumMod = _a[3], tint = _a[4], shade = _a[5];\n var children = [];\n children.push(getPropertyVal('satMod', satMod));\n if (lumMod) {\n children.push(getPropertyVal('lumMod', lumMod));\n }\n if (tint) {\n children.push(getPropertyVal('tint', tint));\n }\n if (shade) {\n children.push(getPropertyVal('shade', shade));\n }\n return {\n name: 'a:gs',\n properties: {\n rawMap: {\n pos: pos\n }\n },\n children: [{\n name: 'a:schemeClr',\n properties: {\n rawMap: {\n val: schemeColor\n }\n },\n children: children\n }]\n };\n};\nvar getSolidFill = function (val, children) { return ({\n name: 'a:solidFill',\n children: [getPropertyVal('schemeClr', val, children)]\n}); };\nvar getGradFill = function (props) {\n var _a = __read$1d(props, 5), rotWithShape = _a[0], gs1 = _a[1], gs2 = _a[2], gs3 = _a[3], lin = _a[4];\n var _b = __read$1d(lin, 2), ang = _b[0], scaled = _b[1];\n return {\n name: 'a:gradFill',\n properties: {\n rawMap: {\n rotWithShape: rotWithShape\n }\n },\n children: [{\n name: 'a:gsLst',\n children: [\n getGs(gs1),\n getGs(gs2),\n getGs(gs3)\n ]\n }, {\n name: 'a:lin',\n properties: {\n rawMap: {\n ang: ang,\n scaled: scaled\n }\n }\n }]\n };\n};\nvar getLine = function (props) {\n var _a = __read$1d(props, 4), w = _a[0], cap = _a[1], cmpd = _a[2], algn = _a[3];\n return {\n name: 'a:ln',\n properties: {\n rawMap: { w: w, cap: cap, cmpd: cmpd, algn: algn }\n },\n children: [\n getSolidFill('phClr'),\n getPropertyVal('prstDash', 'solid'),\n {\n name: 'a:miter',\n properties: {\n rawMap: {\n lim: '800000'\n }\n }\n }\n ]\n };\n};\nvar getEffectStyle = function (shadow) {\n var children = [];\n if (shadow) {\n var _a = __read$1d(shadow, 5), blurRad = _a[0], dist = _a[1], dir = _a[2], algn = _a[3], rotWithShape = _a[4];\n children.push({\n name: 'a:outerShdw',\n properties: {\n rawMap: { blurRad: blurRad, dist: dist, dir: dir, algn: algn, rotWithShape: rotWithShape }\n },\n children: [\n getPropertyVal('srgbClr', '000000', [getPropertyVal('alpha', '63000')])\n ]\n });\n }\n return {\n name: 'a:effectStyle',\n children: [Object.assign({}, {\n name: 'a:effectLst'\n }, children.length ? { children: children } : {})]\n };\n};\nvar getFillStyleList = function () { return ({\n name: 'a:fillStyleLst',\n children: [\n getSolidFill('phClr'),\n getGradFill([\n '1',\n ['0', 'phClr', '105000', '110000', '67000'],\n ['50000', 'phClr', '103000', '105000', '73000'],\n ['100000', 'phClr', '109000', '105000', '81000'],\n ['5400000', '0']\n ]),\n getGradFill([\n '1',\n ['0', 'phClr', '103000', '102000', '94000'],\n ['50000', 'phClr', '110000', '100000', undefined, '100000'],\n ['100000', 'phClr', '120000', '99000', undefined, '78000'],\n ['5400000', '0']\n ])\n ]\n}); };\nvar getLineStyleList = function () { return ({\n name: 'a:lnStyleLst',\n children: [\n getLine(['6350', 'flat', 'sng', 'ctr']),\n getLine(['12700', 'flat', 'sng', 'ctr']),\n getLine(['19050', 'flat', 'sng', 'ctr'])\n ]\n}); };\nvar getEffectStyleList = function () { return ({\n name: 'a:effectStyleLst',\n children: [\n getEffectStyle(),\n getEffectStyle(),\n getEffectStyle(['57150', '19050', '5400000', 'ctr', '0'])\n ]\n}); };\nvar getBgFillStyleList = function () { return ({\n name: 'a:bgFillStyleLst',\n children: [\n getSolidFill('phClr'),\n getSolidFill('phClr', [\n getPropertyVal('tint', '95000'),\n getPropertyVal('satMod', '170000'),\n ]),\n getGradFill([\n '1',\n ['0', 'phClr', '150000', '102000', '93000', '98000'],\n ['50000', 'phClr', '130000', '103000', '98000', '90000'],\n ['100000', 'phClr', '120000', undefined, undefined, '63000'],\n ['5400000', '0']\n ])\n ]\n}); };\nvar formatScheme = {\n getTemplate: function () {\n return {\n name: \"a:fmtScheme\",\n properties: {\n rawMap: {\n name: \"Office\"\n }\n },\n children: [\n getFillStyleList(),\n getLineStyleList(),\n getEffectStyleList(),\n getBgFillStyleList()\n ]\n };\n }\n};\n\nvar themeElements = {\n getTemplate: function () {\n return {\n name: \"a:themeElements\",\n children: [\n colorScheme.getTemplate(),\n fontScheme.getTemplate(),\n formatScheme.getTemplate()\n ]\n };\n }\n};\n\nvar officeTheme = {\n getTemplate: function () {\n return {\n name: \"a:theme\",\n properties: {\n prefixedAttributes: [{\n prefix: \"xmlns:\",\n map: {\n a: \"http://schemas.openxmlformats.org/drawingml/2006/main\"\n },\n }],\n rawMap: {\n name: \"Office Theme\"\n }\n },\n children: [\n themeElements.getTemplate(),\n {\n name: 'a:objectDefaults'\n },\n {\n name: 'a:extraClrSchemeLst'\n }\n ]\n };\n }\n};\n\nvar buildSharedString = function (strMap) {\n var ret = [];\n strMap.forEach(function (val, key) {\n var textNode = key.toString();\n var child = {\n name: 't',\n textNode: _.utf8_encode(_.escapeString(textNode))\n };\n // if we have leading or trailing spaces, instruct Excel not to trim them\n var preserveSpaces = textNode.trim().length !== textNode.length;\n if (preserveSpaces) {\n child.properties = {\n rawMap: {\n \"xml:space\": \"preserve\"\n }\n };\n }\n ret.push({\n name: 'si',\n children: [child]\n });\n });\n return ret;\n};\nvar sharedStrings = {\n getTemplate: function (strings) {\n return {\n name: \"sst\",\n properties: {\n rawMap: {\n xmlns: 'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n count: strings.size,\n uniqueCount: strings.size\n }\n },\n children: buildSharedString(strings)\n };\n }\n};\n\nfunction prepareString(str) {\n var split = str.split(/(\\[[^\\]]*\\])/);\n for (var i = 0; i < split.length; i++) {\n // excel formulas require symbols to be escaped. Excel also requires $ to be \n // placed in quotes but only when the $ is not wrapped inside of square brackets.\n var currentString = split[i];\n if (!currentString.length) {\n continue;\n }\n if (!currentString.startsWith('[')) {\n currentString = currentString.replace(/\\$/g, '\"$\"');\n }\n split[i] = _.escapeString(currentString);\n }\n return split.join('');\n}\nvar numberFormatFactory = {\n getTemplate: function (numberFormat) {\n var formatCode = numberFormat.formatCode, numFmtId = numberFormat.numFmtId;\n if (formatCode.length) {\n formatCode = prepareString(formatCode);\n }\n return {\n name: \"numFmt\",\n properties: {\n rawMap: {\n formatCode: formatCode,\n numFmtId: numFmtId\n }\n }\n };\n }\n};\n\nvar numberFormatsFactory = {\n getTemplate: function (numberFormats) {\n return {\n name: \"numFmts\",\n properties: {\n rawMap: {\n count: numberFormats.length\n }\n },\n children: numberFormats.map(function (numberFormat) { return numberFormatFactory.getTemplate(numberFormat); })\n };\n }\n};\n\nvar fontFactory = {\n getTemplate: function (font) {\n var size = font.size, colorTheme = font.colorTheme, _a = font.color, color = _a === void 0 ? 'FF000000' : _a, _b = font.fontName, fontName = _b === void 0 ? 'Calibri' : _b, family = font.family, scheme = font.scheme, italic = font.italic, bold = font.bold, strikeThrough = font.strikeThrough, outline = font.outline, shadow = font.shadow, underline = font.underline, verticalAlign = font.verticalAlign;\n var children = [\n { name: 'sz', properties: { rawMap: { val: size } } },\n { name: 'color', properties: { rawMap: { theme: colorTheme, rgb: color } } },\n { name: 'name', properties: { rawMap: { val: fontName } } }\n ];\n if (family) {\n children.push({ name: 'family', properties: { rawMap: { val: family } } });\n }\n if (scheme) {\n children.push({ name: 'scheme', properties: { rawMap: { val: scheme } } });\n }\n if (italic) {\n children.push({ name: 'i' });\n }\n if (bold) {\n children.push({ name: 'b' });\n }\n if (strikeThrough) {\n children.push({ name: 'strike' });\n }\n if (outline) {\n children.push({ name: 'outline' });\n }\n if (shadow) {\n children.push({ name: 'shadow' });\n }\n if (underline) {\n children.push({ name: 'u', properties: { rawMap: { val: underline } } });\n }\n if (verticalAlign) {\n children.push({ name: 'vertAlign', properties: { rawMap: { val: verticalAlign } } });\n }\n return { name: \"font\", children: children };\n }\n};\n\nvar fontsFactory = {\n getTemplate: function (fonts) {\n return {\n name: \"fonts\",\n properties: {\n rawMap: {\n count: fonts.length\n }\n },\n children: fonts.map(function (font) { return fontFactory.getTemplate(font); })\n };\n }\n};\n\nvar fillFactory = {\n getTemplate: function (fill) {\n var patternType = fill.patternType, fgTheme = fill.fgTheme, fgTint = fill.fgTint, fgRgb = fill.fgRgb, bgRgb = fill.bgRgb, bgIndexed = fill.bgIndexed;\n var pf = {\n name: 'patternFill',\n properties: {\n rawMap: {\n patternType: patternType\n }\n }\n };\n if (fgTheme || fgTint || fgRgb) {\n pf.children = [{\n name: 'fgColor',\n properties: {\n rawMap: {\n theme: fgTheme,\n tint: fgTint,\n rgb: fgRgb\n }\n }\n }];\n }\n if (bgIndexed || bgRgb) {\n if (!pf.children) {\n pf.children = [];\n }\n pf.children.push({\n name: 'bgColor',\n properties: {\n rawMap: {\n indexed: bgIndexed,\n rgb: bgRgb\n }\n }\n });\n }\n return {\n name: \"fill\",\n children: [pf]\n };\n }\n};\n\nvar fillsFactory = {\n getTemplate: function (fills) {\n return {\n name: \"fills\",\n properties: {\n rawMap: {\n count: fills.length\n }\n },\n children: fills.map(function (fill) { return fillFactory.getTemplate(fill); })\n };\n }\n};\n\nvar getWeightName = function (value) {\n switch (value) {\n case 1: return 'thin';\n case 2: return 'medium';\n case 3: return 'thick';\n default: return 'hair';\n }\n};\nvar mappedBorderNames = {\n None: 'None',\n Dot: 'Dotted',\n Dash: 'Dashed',\n Double: 'Double',\n DashDot: 'DashDot',\n DashDotDot: 'DashDotDot',\n SlantDashDot: 'SlantDashDot'\n};\nvar mediumBorders = ['Dashed', 'DashDot', 'DashDotDot'];\nvar colorMap = {\n None: 'none',\n Solid: 'solid',\n Gray50: 'mediumGray',\n Gray75: 'darkGray',\n Gray25: 'lightGray',\n HorzStripe: 'darkHorizontal',\n VertStripe: 'darkVertical',\n ReverseDiagStripe: 'darkDown',\n DiagStripe: 'darkUp',\n DiagCross: 'darkGrid',\n ThickDiagCross: 'darkTrellis',\n ThinHorzStripe: 'lightHorizontal',\n ThinVertStripe: 'lightVertical',\n ThinReverseDiagStripe: 'lightDown',\n ThinDiagStripe: 'lightUp',\n ThinHorzCross: 'lightGrid',\n ThinDiagCross: 'lightTrellis',\n Gray125: 'gray125',\n Gray0625: 'gray0625'\n};\nvar horizontalAlignmentMap = {\n Automatic: 'general',\n Left: 'left',\n Center: 'center',\n Right: 'right',\n Fill: 'fill',\n Justify: 'justify',\n CenterAcrossSelection: 'centerContinuous',\n Distributed: 'distributed',\n JustifyDistributed: 'justify'\n};\nvar verticalAlignmentMap = {\n Automatic: undefined,\n Top: 'top',\n Bottom: 'bottom',\n Center: 'center',\n Justify: 'justify',\n Distributed: 'distributed',\n JustifyDistributed: 'justify'\n};\nvar convertLegacyPattern = function (name) {\n if (!name) {\n return 'none';\n }\n return colorMap[name] || name;\n};\nvar convertLegacyColor = function (color) {\n if (color == undefined) {\n return color;\n }\n if (color.charAt(0) === '#') {\n color = color.substr(1);\n }\n return color.length === 6 ? 'FF' + color : color;\n};\nvar convertLegacyBorder = function (type, weight) {\n if (!type) {\n return 'thin';\n }\n // Legacy Types are: None, Continuous, Dash, Dot, DashDot, DashDotDot, SlantDashDot, and Double\n // Weight represents: 0—Hairline, 1—Thin , 2—Medium, 3—Thick\n // New types: none, thin, medium, dashed, dotted, thick, double, hair, mediumDashed, dashDot, mediumDashDot,\n // dashDotDot, mediumDashDotDot, slantDashDot\n var namedWeight = getWeightName(weight);\n var mappedName = mappedBorderNames[type];\n if (type === 'Continuous') {\n return namedWeight;\n }\n if (namedWeight === 'medium' && mediumBorders.indexOf(mappedName) !== -1) {\n return \"medium\" + mappedName;\n }\n return mappedName.charAt(0).toLowerCase() + mappedName.substr(1);\n};\nvar convertLegacyHorizontalAlignment = function (alignment) {\n return horizontalAlignmentMap[alignment] || 'general';\n};\nvar convertLegacyVerticalAlignment = function (alignment) {\n return verticalAlignmentMap[alignment] || undefined;\n};\n\nvar getBorderColor = function (color) {\n return {\n name: 'color',\n properties: {\n rawMap: {\n rgb: convertLegacyColor(color || '#000000')\n }\n }\n };\n};\nvar borderFactory$1 = {\n getTemplate: function (border) {\n var left = border.left, right = border.right, top = border.top, bottom = border.bottom, diagonal = border.diagonal;\n var leftChildren = left ? [getBorderColor(left.color)] : undefined;\n var rightChildren = right ? [getBorderColor(right.color)] : undefined;\n var topChildren = top ? [getBorderColor(top.color)] : undefined;\n var bottomChildren = bottom ? [getBorderColor(bottom.color)] : undefined;\n var diagonalChildren = diagonal ? [getBorderColor(diagonal.color)] : undefined;\n return {\n name: 'border',\n children: [{\n name: 'left',\n properties: { rawMap: { style: left && left.style } },\n children: leftChildren\n }, {\n name: 'right',\n properties: { rawMap: { style: right && right.style } },\n children: rightChildren\n }, {\n name: 'top',\n properties: { rawMap: { style: top && top.style } },\n children: topChildren\n }, {\n name: 'bottom',\n properties: { rawMap: { style: bottom && bottom.style } },\n children: bottomChildren\n }, {\n name: 'diagonal',\n properties: { rawMap: { style: diagonal && diagonal.style } },\n children: diagonalChildren\n }]\n };\n }\n};\n\nvar bordersFactory = {\n getTemplate: function (borders) {\n return {\n name: \"borders\",\n properties: {\n rawMap: {\n count: borders.length\n }\n },\n children: borders.map(function (border) { return borderFactory$1.getTemplate(border); })\n };\n }\n};\n\nvar getReadingOrderId = function (readingOrder) {\n var order = ['Context', 'LeftToRight', 'RightToLeft'];\n var pos = order.indexOf(readingOrder);\n return Math.max(pos, 0);\n};\nvar alignmentFactory = {\n getTemplate: function (alignment) {\n var horizontal = alignment.horizontal, indent = alignment.indent, readingOrder = alignment.readingOrder, rotate = alignment.rotate, shrinkToFit = alignment.shrinkToFit, vertical = alignment.vertical, wrapText = alignment.wrapText;\n return {\n name: 'alignment',\n properties: {\n rawMap: {\n horizontal: horizontal && convertLegacyHorizontalAlignment(horizontal),\n indent: indent,\n readingOrder: readingOrder && getReadingOrderId(readingOrder),\n textRotation: rotate,\n shrinkToFit: shrinkToFit,\n vertical: vertical && convertLegacyVerticalAlignment(vertical),\n wrapText: wrapText\n }\n }\n };\n }\n};\n\nvar protectionFactory = {\n getTemplate: function (protection) {\n var locked = protection.protected === false ? 0 : 1;\n var hidden = protection.hideFormula === true ? 1 : 0;\n return {\n name: 'protection',\n properties: {\n rawMap: {\n hidden: hidden,\n locked: locked\n }\n }\n };\n }\n};\n\nvar xfFactory = {\n getTemplate: function (xf) {\n var alignment = xf.alignment, borderId = xf.borderId, fillId = xf.fillId, fontId = xf.fontId, numFmtId = xf.numFmtId, protection = xf.protection, xfId = xf.xfId;\n var children = [];\n if (alignment) {\n children.push(alignmentFactory.getTemplate(alignment));\n }\n if (protection) {\n children.push(protectionFactory.getTemplate(protection));\n }\n return {\n name: \"xf\",\n properties: {\n rawMap: {\n applyAlignment: alignment ? 1 : undefined,\n applyProtection: protection ? 1 : undefined,\n applyBorder: borderId ? 1 : undefined,\n applyFill: fillId ? 1 : undefined,\n borderId: borderId,\n fillId: fillId,\n applyFont: fontId ? 1 : undefined,\n fontId: fontId,\n applyNumberFormat: numFmtId ? 1 : undefined,\n numFmtId: numFmtId,\n xfId: xfId\n }\n },\n children: children.length ? children : undefined\n };\n }\n};\n\nvar cellStylesXfsFactory = {\n getTemplate: function (xfs) {\n return {\n name: \"cellStyleXfs\",\n properties: {\n rawMap: {\n count: xfs.length\n }\n },\n children: xfs.map(function (xf) { return xfFactory.getTemplate(xf); })\n };\n }\n};\n\nvar cellXfsFactory = {\n getTemplate: function (xfs) {\n return {\n name: \"cellXfs\",\n properties: {\n rawMap: {\n count: xfs.length\n }\n },\n children: xfs.map(function (xf) { return xfFactory.getTemplate(xf); })\n };\n }\n};\n\nvar borderFactory = {\n getTemplate: function (cellStyle) {\n var builtinId = cellStyle.builtinId, name = cellStyle.name, xfId = cellStyle.xfId;\n return {\n name: \"cellStyle\",\n properties: {\n rawMap: {\n builtinId: builtinId,\n name: name,\n xfId: xfId\n }\n }\n };\n }\n};\n\nvar cellStylesFactory = {\n getTemplate: function (cellStyles) {\n return {\n name: \"cellStyles\",\n properties: {\n rawMap: {\n count: cellStyles.length\n }\n },\n children: cellStyles.map(function (cellStyle) { return borderFactory.getTemplate(cellStyle); })\n };\n }\n};\n\nvar __assign$Z = (undefined && undefined.__assign) || function () {\n __assign$Z = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$Z.apply(this, arguments);\n};\nvar stylesMap;\nvar registeredNumberFmts;\nvar registeredFonts;\nvar registeredFills;\nvar registeredBorders;\nvar registeredCellStyleXfs;\nvar registeredCellXfs;\nvar registeredCellStyles;\nvar currentSheet;\nvar getStyleName = function (name, currentSheet) {\n if (name.indexOf('mixedStyle') !== -1 && currentSheet > 1) {\n name += \"_\" + currentSheet;\n }\n return name;\n};\nvar resetStylesheetValues = function () {\n stylesMap = { base: 0 };\n registeredNumberFmts = [];\n registeredFonts = [{ fontName: 'Calibri', colorTheme: '1', family: '2', scheme: 'minor' }];\n registeredFills = [{ patternType: 'none', }, { patternType: 'gray125' }];\n registeredBorders = [{ left: undefined, right: undefined, top: undefined, bottom: undefined, diagonal: undefined }];\n registeredCellStyleXfs = [{ borderId: 0, fillId: 0, fontId: 0, numFmtId: 0 }];\n registeredCellXfs = [{ borderId: 0, fillId: 0, fontId: 0, numFmtId: 0, xfId: 0 }];\n registeredCellStyles = [{ builtinId: 0, name: 'Normal', xfId: 0 }];\n};\nvar registerFill = function (fill) {\n var convertedPattern = convertLegacyPattern(fill.pattern);\n var convertedFillColor = convertLegacyColor(fill.color);\n var convertedPatternColor = convertLegacyColor(fill.patternColor);\n var pos = registeredFills.findIndex(function (currentFill) {\n var patternType = currentFill.patternType, fgRgb = currentFill.fgRgb, bgRgb = currentFill.bgRgb;\n if (patternType != convertedPattern ||\n fgRgb != convertedFillColor ||\n bgRgb != convertedPatternColor) {\n return false;\n }\n return true;\n });\n if (pos === -1) {\n pos = registeredFills.length;\n registeredFills.push({ patternType: convertedPattern, fgRgb: convertedFillColor, bgRgb: convertedPatternColor });\n }\n return pos;\n};\nvar registerNumberFmt = function (format) {\n format = _.utf8_encode(format);\n if (numberFormatMap[format]) {\n return numberFormatMap[format];\n }\n var pos = registeredNumberFmts.findIndex(function (currentFormat) { return currentFormat.formatCode === format; });\n if (pos === -1) {\n pos = registeredNumberFmts.length + 164;\n registeredNumberFmts.push({ formatCode: format, numFmtId: pos });\n }\n else {\n pos = registeredNumberFmts[pos].numFmtId;\n }\n return pos;\n};\nvar registerBorders = function (borders) {\n var borderBottom = borders.borderBottom, borderTop = borders.borderTop, borderLeft = borders.borderLeft, borderRight = borders.borderRight;\n var bottomStyle;\n var topStyle;\n var leftStyle;\n var rightStyle;\n var bottomColor;\n var topColor;\n var leftColor;\n var rightColor;\n if (borderLeft) {\n leftStyle = convertLegacyBorder(borderLeft.lineStyle, borderLeft.weight);\n leftColor = convertLegacyColor(borderLeft.color);\n }\n if (borderRight) {\n rightStyle = convertLegacyBorder(borderRight.lineStyle, borderRight.weight);\n rightColor = convertLegacyColor(borderRight.color);\n }\n if (borderBottom) {\n bottomStyle = convertLegacyBorder(borderBottom.lineStyle, borderBottom.weight);\n bottomColor = convertLegacyColor(borderBottom.color);\n }\n if (borderTop) {\n topStyle = convertLegacyBorder(borderTop.lineStyle, borderTop.weight);\n topColor = convertLegacyColor(borderTop.color);\n }\n var pos = registeredBorders.findIndex(function (currentBorder) {\n var left = currentBorder.left, right = currentBorder.right, top = currentBorder.top, bottom = currentBorder.bottom;\n if (!left && (leftStyle || leftColor)) {\n return false;\n }\n if (!right && (rightStyle || rightColor)) {\n return false;\n }\n if (!top && (topStyle || topColor)) {\n return false;\n }\n if (!bottom && (bottomStyle || bottomColor)) {\n return false;\n }\n var _a = left || {}, clS = _a.style, clC = _a.color;\n var _b = right || {}, crS = _b.style, crC = _b.color;\n var _c = top || {}, ctS = _c.style, ctC = _c.color;\n var _d = bottom || {}, cbS = _d.style, cbC = _d.color;\n if (clS != leftStyle || clC != leftColor) {\n return false;\n }\n if (crS != rightStyle || crC != rightColor) {\n return false;\n }\n if (ctS != topStyle || ctC != topColor) {\n return false;\n }\n if (cbS != bottomStyle || cbC != bottomColor) {\n return false;\n }\n return true;\n });\n if (pos === -1) {\n pos = registeredBorders.length;\n registeredBorders.push({\n left: {\n style: leftStyle, color: leftColor\n },\n right: {\n style: rightStyle, color: rightColor\n },\n top: {\n style: topStyle, color: topColor\n },\n bottom: {\n style: bottomStyle, color: bottomColor\n },\n diagonal: {\n style: undefined,\n color: undefined\n }\n });\n }\n return pos;\n};\nvar registerFont = function (font) {\n var _a = font.fontName, name = _a === void 0 ? 'Calibri' : _a, color = font.color, size = font.size, bold = font.bold, italic = font.italic, outline = font.outline, shadow = font.shadow, strikeThrough = font.strikeThrough, underline = font.underline, family = font.family, verticalAlign = font.verticalAlign;\n var utf8Name = name ? _.utf8_encode(name) : name;\n var convertedColor = convertLegacyColor(color);\n var familyId = getFontFamilyId(family);\n var convertedUnderline = underline ? underline.toLocaleLowerCase() : undefined;\n var convertedVerticalAlign = verticalAlign ? verticalAlign.toLocaleLowerCase() : undefined;\n var pos = registeredFonts.findIndex(function (currentFont) {\n if (currentFont.fontName != utf8Name ||\n currentFont.color != convertedColor ||\n currentFont.size != size ||\n currentFont.bold != bold ||\n currentFont.italic != italic ||\n currentFont.outline != outline ||\n currentFont.shadow != shadow ||\n currentFont.strikeThrough != strikeThrough ||\n currentFont.underline != convertedUnderline ||\n currentFont.verticalAlign != convertedVerticalAlign ||\n // @ts-ignore\n currentFont.family != familyId) {\n return false;\n }\n return true;\n });\n if (pos === -1) {\n pos = registeredFonts.length;\n registeredFonts.push({\n fontName: utf8Name,\n color: convertedColor,\n size: size,\n bold: bold,\n italic: italic,\n outline: outline,\n shadow: shadow,\n strikeThrough: strikeThrough,\n underline: convertedUnderline,\n verticalAlign: convertedVerticalAlign,\n family: familyId != null ? familyId.toString() : undefined\n });\n }\n return pos;\n};\nvar registerStyle = function (config) {\n var alignment = config.alignment, borders = config.borders, font = config.font, interior = config.interior, numberFormat = config.numberFormat, protection = config.protection;\n var id = config.id;\n var currentFill = 0;\n var currentBorder = 0;\n var currentFont = 0;\n var currentNumberFmt = 0;\n if (!id) {\n return;\n }\n id = getStyleName(id, currentSheet);\n if (stylesMap[id] != undefined) {\n return;\n }\n if (interior) {\n currentFill = registerFill(interior);\n }\n if (borders) {\n currentBorder = registerBorders(borders);\n }\n if (font) {\n currentFont = registerFont(font);\n }\n if (numberFormat) {\n currentNumberFmt = registerNumberFmt(numberFormat.format);\n }\n stylesMap[id] = registeredCellXfs.length;\n registeredCellXfs.push({\n alignment: alignment,\n borderId: currentBorder || 0,\n fillId: currentFill || 0,\n fontId: currentFont || 0,\n numFmtId: currentNumberFmt || 0,\n protection: protection,\n xfId: 0\n });\n};\nvar stylesheetFactory = {\n getTemplate: function (defaultFontSize) {\n var numberFormats = numberFormatsFactory.getTemplate(registeredNumberFmts);\n var fonts = fontsFactory.getTemplate(registeredFonts.map(function (font) { return (__assign$Z(__assign$Z({}, font), { size: font.size != null ? font.size : defaultFontSize })); }));\n var fills = fillsFactory.getTemplate(registeredFills);\n var borders = bordersFactory.getTemplate(registeredBorders);\n var cellStylesXfs = cellStylesXfsFactory.getTemplate(registeredCellStyleXfs);\n var cellXfs = cellXfsFactory.getTemplate(registeredCellXfs);\n var cellStyles = cellStylesFactory.getTemplate(registeredCellStyles);\n resetStylesheetValues();\n return {\n name: 'styleSheet',\n properties: {\n rawMap: {\n 'mc:Ignorable': 'x14ac x16r2 xr',\n 'xmlns': 'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n 'xmlns:mc': 'http://schemas.openxmlformats.org/markup-compatibility/2006',\n 'xmlns:x14ac': 'http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac',\n 'xmlns:x16r2': 'http://schemas.microsoft.com/office/spreadsheetml/2015/02/main',\n 'xmlns:xr': 'http://schemas.microsoft.com/office/spreadsheetml/2014/revision'\n }\n },\n children: [\n numberFormats,\n fonts,\n fills,\n borders,\n cellStylesXfs,\n cellXfs,\n cellStyles,\n {\n name: 'tableStyles',\n properties: {\n rawMap: {\n count: 0,\n defaultPivotStyle: 'PivotStyleLight16',\n defaultTableStyle: 'TableStyleMedium2'\n }\n }\n }\n ]\n };\n }\n};\nvar getStyleId = function (name, currentSheet) {\n return stylesMap[getStyleName(name, currentSheet)] || 0;\n};\nvar registerStyles = function (styles, _currentSheet) {\n currentSheet = _currentSheet;\n if (currentSheet === 1) {\n resetStylesheetValues();\n }\n styles.forEach(registerStyle);\n};\n\nvar sheetFactory = {\n getTemplate: function (name, idx) {\n var sheetId = (idx + 1).toString();\n return {\n name: \"sheet\",\n properties: {\n rawMap: {\n \"name\": name,\n \"sheetId\": sheetId,\n \"r:id\": \"rId\" + sheetId\n }\n }\n };\n }\n};\n\nvar sheetsFactory = {\n getTemplate: function (names) {\n return {\n name: \"sheets\",\n children: names.map(function (sheet, idx) { return sheetFactory.getTemplate(sheet, idx); })\n };\n }\n};\n\nvar workbookFactory = {\n getTemplate: function (names) {\n return {\n name: \"workbook\",\n properties: {\n prefixedAttributes: [{\n prefix: \"xmlns:\",\n map: {\n r: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships\"\n },\n }],\n rawMap: {\n xmlns: \"http://schemas.openxmlformats.org/spreadsheetml/2006/main\"\n }\n },\n children: [sheetsFactory.getTemplate(names)]\n };\n }\n};\n\n// https://docs.microsoft.com/en-us/office/troubleshoot/excel/determine-column-widths\nvar getExcelCellWidth = function (width) { return Math.ceil((width - 12) / 7 + 1); };\nvar columnFactory = {\n getTemplate: function (config) {\n var min = config.min, max = config.max, outlineLevel = config.outlineLevel, s = config.s, width = config.width, hidden = config.hidden, bestFit = config.bestFit;\n var excelWidth = 1;\n var customWidth = '0';\n if (width > 1) {\n excelWidth = getExcelCellWidth(width);\n customWidth = '1';\n }\n return {\n name: 'col',\n properties: {\n rawMap: {\n min: min,\n max: max,\n outlineLevel: outlineLevel != null ? outlineLevel : undefined,\n width: excelWidth,\n style: s,\n hidden: hidden ? '1' : '0',\n bestFit: bestFit ? '1' : '0',\n customWidth: customWidth\n }\n }\n };\n }\n};\n\nvar convertLegacyType = function (type) {\n var t = type.charAt(0).toLowerCase();\n return t === 's' ? 'inlineStr' : t;\n};\nvar cellFactory = {\n getTemplate: function (config, idx, currentSheet) {\n var ref = config.ref, data = config.data, styleId = config.styleId;\n var _a = data || { type: 'empty', value: null }, type = _a.type, value = _a.value;\n var convertedType = type;\n if (type === 'f') {\n convertedType = 'str';\n }\n else if (type.charAt(0) === type.charAt(0).toUpperCase()) {\n convertedType = convertLegacyType(type);\n }\n var obj = {\n name: 'c',\n properties: {\n rawMap: {\n r: ref,\n t: convertedType === 'empty' ? undefined : convertedType,\n s: styleId ? getStyleId(styleId, currentSheet) : undefined\n }\n }\n };\n if (convertedType === 'empty') {\n return obj;\n }\n var children;\n if (convertedType === 'str' && type === 'f') {\n children = [{\n name: 'f',\n textNode: _.escapeString(_.utf8_encode(value))\n }];\n }\n else if (convertedType === 'inlineStr') {\n children = [{\n name: 'is',\n children: [{\n name: 't',\n textNode: _.escapeString(_.utf8_encode(value))\n }]\n }];\n }\n else {\n children = [{\n name: 'v',\n textNode: value\n }];\n }\n return Object.assign({}, obj, { children: children });\n }\n};\n\nvar __read$1c = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$K = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar addEmptyCells = function (cells, rowIdx) {\n var mergeMap = [];\n var posCounter = 0;\n for (var i = 0; i < cells.length; i++) {\n var cell = cells[i];\n if (cell.mergeAcross) {\n mergeMap.push({\n pos: i,\n excelPos: posCounter\n });\n posCounter += cell.mergeAcross;\n }\n posCounter++;\n }\n if (mergeMap.length) {\n for (var i = mergeMap.length - 1; i >= 0; i--) {\n var mergedCells = [];\n var cell = cells[mergeMap[i].pos];\n for (var j = 1; j <= cell.mergeAcross; j++) {\n mergedCells.push({\n ref: \"\" + getExcelColumnName(mergeMap[i].excelPos + 1 + j) + (rowIdx + 1),\n styleId: cell.styleId,\n data: { type: 'empty', value: null }\n });\n }\n if (mergedCells.length) {\n cells.splice.apply(cells, __spreadArray$K([mergeMap[i].pos + 1, 0], __read$1c(mergedCells)));\n }\n }\n }\n};\nvar shouldDisplayCell = function (cell) { var _a; return ((_a = cell.data) === null || _a === void 0 ? void 0 : _a.value) !== '' || cell.styleId !== undefined; };\nvar rowFactory = {\n getTemplate: function (config, idx, currentSheet) {\n var collapsed = config.collapsed, hidden = config.hidden, height = config.height, outlineLevel = config.outlineLevel, _a = config.cells, cells = _a === void 0 ? [] : _a;\n addEmptyCells(cells, idx);\n var children = cells.filter(shouldDisplayCell).map(function (cell, idx) { return cellFactory.getTemplate(cell, idx, currentSheet); });\n return {\n name: \"row\",\n properties: {\n rawMap: {\n r: idx + 1,\n collapsed: collapsed ? '1' : '0',\n hidden: hidden ? '1' : '0',\n ht: height,\n customHeight: height != null ? '1' : '0',\n spans: '1:1',\n outlineLevel: outlineLevel || undefined\n }\n },\n children: children\n };\n }\n};\n\nvar mergeCellFactory = {\n getTemplate: function (ref) {\n return {\n name: 'mergeCell',\n properties: {\n rawMap: {\n ref: ref\n }\n }\n };\n }\n};\n\nvar getMergedCellsAndAddColumnGroups = function (rows, cols, suppressColumnOutline) {\n var mergedCells = [];\n var cellsWithCollapsibleGroups = [];\n rows.forEach(function (currentRow, rowIdx) {\n var cells = currentRow.cells;\n var merges = 0;\n var lastCol;\n cells.forEach(function (currentCell, cellIdx) {\n var min = cellIdx + merges + 1;\n var start = getExcelColumnName(min);\n var outputRow = rowIdx + 1;\n if (currentCell.mergeAcross) {\n merges += currentCell.mergeAcross;\n var end = getExcelColumnName(cellIdx + merges + 1);\n mergedCells.push(\"\" + start + outputRow + \":\" + end + outputRow);\n }\n if (!cols[min - 1]) {\n cols[min - 1] = {};\n }\n var collapsibleRanges = currentCell.collapsibleRanges;\n if (collapsibleRanges) {\n collapsibleRanges.forEach(function (range) {\n cellsWithCollapsibleGroups.push([min + range[0], min + range[1]]);\n });\n }\n lastCol = cols[min - 1];\n lastCol.min = min;\n lastCol.max = min;\n currentCell.ref = \"\" + start + outputRow;\n });\n });\n cellsWithCollapsibleGroups.sort(function (a, b) {\n if (a[0] !== b[0]) {\n return a[0] - b[0];\n }\n return b[1] - a[1];\n });\n var rangeMap = new Map();\n var outlineLevel = new Map();\n cellsWithCollapsibleGroups.filter(function (currentRange) {\n var rangeString = currentRange.toString();\n var inMap = rangeMap.get(rangeString);\n if (inMap) {\n return false;\n }\n rangeMap.set(rangeString, true);\n return true;\n }).forEach(function (range) {\n var refCol = cols.find(function (col) { return col.min == range[0] && col.max == range[1]; });\n var currentOutlineLevel = outlineLevel.get(range[0]);\n cols.push({\n min: range[0],\n max: range[1],\n outlineLevel: suppressColumnOutline ? undefined : (currentOutlineLevel || 1),\n width: (refCol || { width: 100 }).width\n });\n outlineLevel.set(range[0], (currentOutlineLevel || 0) + 1);\n });\n return mergedCells;\n};\nvar getPageOrientation = function (orientation) {\n if (!orientation || (orientation !== 'Portrait' && orientation !== 'Landscape')) {\n return 'portrait';\n }\n return orientation.toLocaleLowerCase();\n};\nvar getPageSize = function (pageSize) {\n if (pageSize == null) {\n return 1;\n }\n var positions = ['Letter', 'Letter Small', 'Tabloid', 'Ledger', 'Legal', 'Statement', 'Executive', 'A3', 'A4', 'A4 Small', 'A5', 'A6', 'B4', 'B5', 'Folio', 'Envelope', 'Envelope DL', 'Envelope C5', 'Envelope B5', 'Envelope C3', 'Envelope C4', 'Envelope C6', 'Envelope Monarch', 'Japanese Postcard', 'Japanese Double Postcard'];\n var pos = positions.indexOf(pageSize);\n return pos === -1 ? 1 : (pos + 1);\n};\nvar addColumns = function (columns) {\n return function (children) {\n if (columns.length) {\n children.push({\n name: 'cols',\n children: columns.map(function (column) { return columnFactory.getTemplate(column); })\n });\n }\n return children;\n };\n};\nvar addSheetData = function (rows, sheetNumber) {\n return function (children) {\n if (rows.length) {\n children.push({\n name: 'sheetData',\n children: rows.map(function (row, idx) { return rowFactory.getTemplate(row, idx, sheetNumber); })\n });\n }\n return children;\n };\n};\nvar addMergeCells = function (mergeCells) {\n return function (children) {\n if (mergeCells.length) {\n children.push({\n name: 'mergeCells',\n properties: {\n rawMap: {\n count: mergeCells.length\n }\n },\n children: mergeCells.map(function (mergedCell) { return mergeCellFactory.getTemplate(mergedCell); })\n });\n }\n return children;\n };\n};\nvar addPageMargins = function (margins) {\n return function (children) {\n var _a = margins.top, top = _a === void 0 ? 0.75 : _a, _b = margins.right, right = _b === void 0 ? 0.7 : _b, _c = margins.bottom, bottom = _c === void 0 ? 0.75 : _c, _d = margins.left, left = _d === void 0 ? 0.7 : _d, _e = margins.header, header = _e === void 0 ? 0.3 : _e, _f = margins.footer, footer = _f === void 0 ? 0.3 : _f;\n children.push({\n name: 'pageMargins',\n properties: {\n rawMap: { bottom: bottom, footer: footer, header: header, left: left, right: right, top: top }\n }\n });\n return children;\n };\n};\nvar addPageSetup = function (pageSetup) {\n return function (children) {\n if (pageSetup) {\n children.push({\n name: 'pageSetup',\n properties: {\n rawMap: {\n horizontalDpi: 0,\n verticalDpi: 0,\n orientation: getPageOrientation(pageSetup.orientation),\n paperSize: getPageSize(pageSetup.pageSize)\n }\n }\n });\n }\n return children;\n };\n};\nvar replaceHeaderFooterTokens = function (value) {\n var map = {\n '&[Page]': '&P',\n '&[Pages]': '&N',\n '&[Date]': '&D',\n '&[Time]': '&T',\n '&[Tab]': '&A',\n '&[Path]': '&Z',\n '&[File]': '&F'\n };\n _.iterateObject(map, function (key, val) {\n value = value.replace(key, val);\n });\n return value;\n};\nvar getHeaderPosition = function (position) {\n if (position === 'Center') {\n return 'C';\n }\n if (position === 'Right') {\n return 'R';\n }\n return 'L';\n};\nvar applyHeaderFontStyle = function (headerString, font) {\n if (!font) {\n return headerString;\n }\n headerString += '&"';\n headerString += font.fontName || 'Calibri';\n if (font.bold !== font.italic) {\n headerString += font.bold ? ',Bold' : ',Italic';\n }\n else if (font.bold) {\n headerString += ',Bold Italic';\n }\n else {\n headerString += ',Regular';\n }\n headerString += '"';\n if (font.size) {\n headerString += \"&\" + font.size;\n }\n if (font.strikeThrough) {\n headerString += '&S';\n }\n if (font.underline) {\n headerString += \"&\" + (font.underline === 'Double' ? 'E' : 'U');\n }\n if (font.color) {\n headerString += \"&K\" + font.color.replace('#', '').toUpperCase();\n }\n return headerString;\n};\nvar processHeaderFooterContent = function (content) {\n return content.reduce(function (prev, curr) {\n var pos = getHeaderPosition(curr.position);\n var output = applyHeaderFontStyle(prev + \"&\" + pos, curr.font);\n return \"\" + output + _.escapeString(_.utf8_encode(replaceHeaderFooterTokens(curr.value)));\n }, '');\n};\nvar buildHeaderFooter = function (headerFooterConfig) {\n var rules = ['all', 'first', 'even'];\n var headersAndFooters = [];\n rules.forEach(function (rule) {\n var headerFooter = headerFooterConfig[rule];\n var namePrefix = rule === 'all' ? 'odd' : rule;\n if (!headerFooter || (!headerFooter.header && !headerFooter.footer)) {\n return;\n }\n _.iterateObject(headerFooter, function (key, value) {\n var nameSuffix = \"\" + key.charAt(0).toUpperCase() + key.slice(1);\n if (value) {\n headersAndFooters.push({\n name: \"\" + namePrefix + nameSuffix,\n properties: {\n rawMap: {\n 'xml:space': 'preserve'\n }\n },\n textNode: processHeaderFooterContent(value)\n });\n }\n });\n });\n return headersAndFooters;\n};\nvar addHeaderFooter = function (headerFooterConfig) {\n return function (children) {\n if (!headerFooterConfig) {\n return children;\n }\n var differentFirst = headerFooterConfig.first != null ? 1 : 0;\n var differentOddEven = headerFooterConfig.even != null ? 1 : 0;\n children.push({\n name: 'headerFooter',\n properties: {\n rawMap: {\n differentFirst: differentFirst,\n differentOddEven: differentOddEven\n }\n },\n children: buildHeaderFooter(headerFooterConfig)\n });\n return children;\n };\n};\nvar addDrawingRel = function (currentSheet) {\n return function (children) {\n if (ExcelXlsxFactory.worksheetImages.get(currentSheet)) {\n children.push({\n name: 'drawing',\n properties: {\n rawMap: {\n 'r:id': 'rId1'\n }\n }\n });\n }\n return children;\n };\n};\nvar addSheetPr = function () {\n return function (children) {\n children.push({\n name: 'sheetPr',\n children: [{\n name: 'outlinePr',\n properties: {\n rawMap: {\n summaryBelow: 0\n }\n }\n }]\n });\n return children;\n };\n};\nvar addSheetFormatPr = function (rows) {\n return function (children) {\n var maxOutline = rows.reduce(function (prev, row) {\n if (row.outlineLevel && row.outlineLevel > prev) {\n return row.outlineLevel;\n }\n return prev;\n }, 0);\n children.push({\n name: 'sheetFormatPr',\n properties: {\n rawMap: {\n baseColWidth: 10,\n defaultRowHeight: 16,\n outlineLevelRow: maxOutline ? maxOutline : undefined\n }\n }\n });\n return children;\n };\n};\nvar worksheetFactory = {\n getTemplate: function (params) {\n var worksheet = params.worksheet, currentSheet = params.currentSheet, config = params.config;\n var _a = config.margins, margins = _a === void 0 ? {} : _a, pageSetup = config.pageSetup, headerFooterConfig = config.headerFooterConfig, suppressColumnOutline = config.suppressColumnOutline;\n var table = worksheet.table;\n var rows = table.rows, columns = table.columns;\n var mergedCells = (columns && columns.length) ? getMergedCellsAndAddColumnGroups(rows, columns, !!suppressColumnOutline) : [];\n var createWorksheetChildren = _.compose(addSheetPr(), addSheetFormatPr(rows), addColumns(columns), addSheetData(rows, currentSheet + 1), addMergeCells(mergedCells), addPageMargins(margins), addPageSetup(pageSetup), addHeaderFooter(headerFooterConfig), addDrawingRel(currentSheet));\n var children = createWorksheetChildren([]);\n return {\n name: \"worksheet\",\n properties: {\n prefixedAttributes: [{\n prefix: \"xmlns:\",\n map: {\n r: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships\"\n }\n }],\n rawMap: {\n xmlns: \"http://schemas.openxmlformats.org/spreadsheetml/2006/main\"\n }\n },\n children: children\n };\n }\n};\n\nvar relationshipFactory = {\n getTemplate: function (config) {\n var Id = config.Id, Type = config.Type, Target = config.Target;\n return {\n name: \"Relationship\",\n properties: {\n rawMap: {\n Id: Id,\n Type: Type,\n Target: Target\n }\n }\n };\n }\n};\n\nvar relationshipsFactory = {\n getTemplate: function (c) {\n var children = c.map(function (relationship) { return relationshipFactory.getTemplate(relationship); });\n return {\n name: \"Relationships\",\n properties: {\n rawMap: {\n xmlns: \"http://schemas.openxmlformats.org/package/2006/relationships\"\n }\n },\n children: children\n };\n }\n};\n\nvar __read$1b = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$J = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\n/**\n * See https://www.ecma-international.org/news/TC45_current_work/OpenXML%20White%20Paper.pdf\n */\nvar ExcelXlsxFactory = /** @class */ (function () {\n function ExcelXlsxFactory() {\n }\n ExcelXlsxFactory.createExcel = function (styles, worksheet, config) {\n this.addSheetName(worksheet);\n registerStyles(styles, this.sheetNames.length);\n return this.createWorksheet(worksheet, config);\n };\n ExcelXlsxFactory.buildImageMap = function (image, rowIndex, col, columnsToExport, rowHeight) {\n var currentSheetIndex = this.sheetNames.length;\n var registeredImage = this.images.get(image.id);\n if (!image.position || !image.position.row || !image.position.column) {\n if (!image.position) {\n image.position = {};\n }\n image.position = Object.assign({}, image.position, {\n row: rowIndex,\n column: columnsToExport.indexOf(col) + 1\n });\n }\n var calculatedImage = image;\n setExcelImageTotalWidth(calculatedImage, columnsToExport);\n setExcelImageTotalHeight(calculatedImage, rowHeight);\n if (registeredImage) {\n var currentSheetImages = registeredImage.find(function (currentImage) { return currentImage.sheetId === currentSheetIndex; });\n if (currentSheetImages) {\n currentSheetImages.image.push(calculatedImage);\n }\n else {\n registeredImage.push({\n sheetId: currentSheetIndex,\n image: [calculatedImage]\n });\n }\n }\n else {\n this.images.set(calculatedImage.id, [{ sheetId: currentSheetIndex, image: [calculatedImage] }]);\n this.workbookImageIds.set(calculatedImage.id, { type: calculatedImage.imageType, index: this.workbookImageIds.size });\n }\n this.buildSheetImageMap(currentSheetIndex, calculatedImage);\n };\n ExcelXlsxFactory.buildSheetImageMap = function (sheetIndex, image) {\n var worksheetImageIdMap = this.worksheetImageIds.get(sheetIndex);\n if (!worksheetImageIdMap) {\n worksheetImageIdMap = new Map();\n this.worksheetImageIds.set(sheetIndex, worksheetImageIdMap);\n }\n var sheetImages = this.worksheetImages.get(sheetIndex);\n if (!sheetImages) {\n this.worksheetImages.set(sheetIndex, [image]);\n worksheetImageIdMap.set(image.id, { index: 0, type: image.imageType });\n }\n else {\n sheetImages.push(image);\n if (!worksheetImageIdMap.get(image.id)) {\n worksheetImageIdMap.set(image.id, { index: worksheetImageIdMap.size, type: image.imageType });\n }\n }\n };\n ExcelXlsxFactory.addSheetName = function (worksheet) {\n var name = _.escapeString(worksheet.name) || '';\n var append = '';\n while (this.sheetNames.indexOf(\"\" + name + append) !== -1) {\n if (append === '') {\n append = '_1';\n }\n else {\n var curr = parseInt(append.slice(1), 10);\n append = \"_\" + (curr + 1);\n }\n }\n worksheet.name = \"\" + name + append;\n this.sheetNames.push(worksheet.name);\n };\n ExcelXlsxFactory.getStringPosition = function (str) {\n if (this.sharedStrings.has(str)) {\n return this.sharedStrings.get(str);\n }\n this.sharedStrings.set(str, this.sharedStrings.size);\n return this.sharedStrings.size - 1;\n };\n ExcelXlsxFactory.resetFactory = function () {\n this.sharedStrings = new Map();\n this.images = new Map();\n this.worksheetImages = new Map();\n this.workbookImageIds = new Map();\n this.worksheetImageIds = new Map();\n this.sheetNames = [];\n this.factoryMode = ExcelFactoryMode.SINGLE_SHEET;\n };\n ExcelXlsxFactory.createWorkbook = function () {\n return createXmlPart(workbookFactory.getTemplate(this.sheetNames));\n };\n ExcelXlsxFactory.createStylesheet = function (defaultFontSize) {\n return createXmlPart(stylesheetFactory.getTemplate(defaultFontSize));\n };\n ExcelXlsxFactory.createSharedStrings = function () {\n return createXmlPart(sharedStrings.getTemplate(this.sharedStrings));\n };\n ExcelXlsxFactory.createCore = function (author) {\n return createXmlPart(coreFactory.getTemplate(author));\n };\n ExcelXlsxFactory.createContentTypes = function (sheetLen) {\n return createXmlPart(contentTypesFactory.getTemplate(sheetLen));\n };\n ExcelXlsxFactory.createRels = function () {\n var rs = relationshipsFactory.getTemplate([{\n Id: 'rId1',\n Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument',\n Target: 'xl/workbook.xml'\n }, {\n Id: 'rId2',\n Type: 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties',\n Target: 'docProps/core.xml'\n }]);\n return createXmlPart(rs);\n };\n ExcelXlsxFactory.createTheme = function () {\n return createXmlPart(officeTheme.getTemplate());\n };\n ExcelXlsxFactory.createWorkbookRels = function (sheetLen) {\n var worksheets = new Array(sheetLen).fill(undefined).map(function (v, i) { return ({\n Id: \"rId\" + (i + 1),\n Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet',\n Target: \"worksheets/sheet\" + (i + 1) + \".xml\"\n }); });\n var rs = relationshipsFactory.getTemplate(__spreadArray$J(__spreadArray$J([], __read$1b(worksheets)), [\n {\n Id: \"rId\" + (sheetLen + 1),\n Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme',\n Target: 'theme/theme1.xml'\n }, {\n Id: \"rId\" + (sheetLen + 2),\n Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles',\n Target: 'styles.xml'\n }, {\n Id: \"rId\" + (sheetLen + 3),\n Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings',\n Target: 'sharedStrings.xml'\n }\n ]));\n return createXmlPart(rs);\n };\n ExcelXlsxFactory.createDrawing = function (sheetIndex) {\n return createXmlPart(drawingFactory.getTemplate({ sheetIndex: sheetIndex }));\n };\n ExcelXlsxFactory.createDrawingRel = function (sheetIndex) {\n var _this = this;\n var worksheetImageIds = this.worksheetImageIds.get(sheetIndex);\n var XMLArr = [];\n worksheetImageIds.forEach(function (value, key) {\n XMLArr.push({\n Id: \"rId\" + (value.index + 1),\n Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image',\n Target: \"../media/image\" + (_this.workbookImageIds.get(key).index + 1) + \".\" + value.type\n });\n });\n return createXmlPart(relationshipsFactory.getTemplate(XMLArr));\n };\n ExcelXlsxFactory.createWorksheetDrawingRel = function (currentRelationIndex) {\n var rs = relationshipsFactory.getTemplate([{\n Id: 'rId1',\n Type: 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing',\n Target: \"../drawings/drawing\" + (currentRelationIndex + 1) + \".xml\"\n }]);\n return createXmlPart(rs);\n };\n ExcelXlsxFactory.createWorksheet = function (worksheet, config) {\n return createXmlPart(worksheetFactory.getTemplate({\n worksheet: worksheet,\n currentSheet: this.sheetNames.length - 1,\n config: config\n }));\n };\n ExcelXlsxFactory.sharedStrings = new Map();\n ExcelXlsxFactory.sheetNames = [];\n /** Maps images to sheet */\n ExcelXlsxFactory.images = new Map();\n /** Maps sheets to images */\n ExcelXlsxFactory.worksheetImages = new Map();\n /** Maps all workbook images to a global Id */\n ExcelXlsxFactory.workbookImageIds = new Map();\n /** Maps all sheet images to unique Ids */\n ExcelXlsxFactory.worksheetImageIds = new Map();\n ExcelXlsxFactory.factoryMode = ExcelFactoryMode.SINGLE_SHEET;\n return ExcelXlsxFactory;\n}());\n\nvar __extends$2U = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar ExcelXlsxSerializingSession = /** @class */ (function (_super) {\n __extends$2U(ExcelXlsxSerializingSession, _super);\n function ExcelXlsxSerializingSession() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ExcelXlsxSerializingSession.prototype.createExcel = function (data) {\n var _a = this, excelStyles = _a.excelStyles, config = _a.config;\n return ExcelXlsxFactory.createExcel(excelStyles, data, config);\n };\n ExcelXlsxSerializingSession.prototype.getDataTypeForValue = function (valueForCell) {\n if (valueForCell === undefined) {\n return 'empty';\n }\n return this.isNumerical(valueForCell) ? 'n' : 's';\n };\n ExcelXlsxSerializingSession.prototype.getType = function (type, style, value) {\n if (this.isFormula(value)) {\n return 'f';\n }\n if (style && style.dataType) {\n switch (style.dataType.toLocaleLowerCase()) {\n case 'formula':\n return 'f';\n case 'string':\n return 's';\n case 'number':\n return 'n';\n case 'datetime':\n return 'd';\n case 'error':\n return 'e';\n case 'boolean':\n return 'b';\n default:\n console.warn(\"AG Grid: Unrecognized data type for excel export [\" + style.id + \".dataType=\" + style.dataType + \"]\");\n }\n }\n return type;\n };\n ExcelXlsxSerializingSession.prototype.addImage = function (rowIndex, column, value) {\n if (!this.config.addImageToCell) {\n return;\n }\n var addedImage = this.config.addImageToCell(rowIndex, column, value);\n if (!addedImage) {\n return;\n }\n ExcelXlsxFactory.buildImageMap(addedImage.image, rowIndex, column, this.columnsToExport, this.config.rowHeight);\n return addedImage;\n };\n ExcelXlsxSerializingSession.prototype.createCell = function (styleId, type, value, valueFormatted) {\n var actualStyle = this.getStyleById(styleId);\n if (!(actualStyle === null || actualStyle === void 0 ? void 0 : actualStyle.dataType) && type === 's' && valueFormatted) {\n value = valueFormatted;\n }\n var typeTransformed = this.getType(type, actualStyle, value) || type;\n return {\n styleId: actualStyle ? styleId : undefined,\n data: {\n type: typeTransformed,\n value: this.getCellValue(typeTransformed, value)\n }\n };\n };\n ExcelXlsxSerializingSession.prototype.createMergedCell = function (styleId, type, value, numOfCells) {\n var valueToUse = value == null ? '' : value;\n return {\n styleId: !!this.getStyleById(styleId) ? styleId : undefined,\n data: {\n type: type,\n value: type === 's' ? ExcelXlsxFactory.getStringPosition(valueToUse).toString() : value\n },\n mergeAcross: numOfCells\n };\n };\n ExcelXlsxSerializingSession.prototype.getCellValue = function (type, value) {\n if (value == null) {\n return ExcelXlsxFactory.getStringPosition('').toString();\n }\n switch (type) {\n case 's':\n return value === '' ? '' : ExcelXlsxFactory.getStringPosition(value).toString();\n case 'f':\n return value.slice(1);\n case 'n':\n return Number(value).toString();\n default:\n return value;\n }\n };\n return ExcelXlsxSerializingSession;\n}(BaseExcelSerializingSession));\n\nvar __extends$2T = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$Y = (undefined && undefined.__assign) || function () {\n __assign$Y = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$Y.apply(this, arguments);\n};\nvar __decorate$23 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar getMultipleSheetsAsExcel = function (params) {\n var data = params.data, _a = params.fontSize, fontSize = _a === void 0 ? 11 : _a, _b = params.author, author = _b === void 0 ? 'AG Grid' : _b;\n var hasImages = ExcelXlsxFactory.images.size > 0;\n ZipContainer.addFolders([\n '_rels/',\n 'docProps/',\n 'xl/',\n 'xl/theme/',\n 'xl/_rels/',\n 'xl/worksheets/'\n ]);\n if (hasImages) {\n ZipContainer.addFolders([\n 'xl/worksheets/_rels',\n 'xl/drawings/',\n 'xl/drawings/_rels',\n 'xl/media/',\n ]);\n var imgCounter_1 = 0;\n ExcelXlsxFactory.images.forEach(function (value) {\n var firstImage = value[0].image[0];\n var ext = firstImage.imageType;\n ZipContainer.addFile(\"xl/media/image\" + ++imgCounter_1 + \".\" + ext, firstImage.base64, true);\n });\n }\n if (!data || data.length === 0) {\n console.warn(\"AG Grid: Invalid params supplied to getMultipleSheetsAsExcel() - `ExcelExportParams.data` is empty.\");\n ExcelXlsxFactory.resetFactory();\n return;\n }\n var sheetLen = data.length;\n var imageRelationCounter = 0;\n data.forEach(function (value, idx) {\n ZipContainer.addFile(\"xl/worksheets/sheet\" + (idx + 1) + \".xml\", value);\n if (hasImages && ExcelXlsxFactory.worksheetImages.get(idx)) {\n createImageRelationsForSheet(idx, imageRelationCounter++);\n }\n });\n ZipContainer.addFile('xl/workbook.xml', ExcelXlsxFactory.createWorkbook());\n ZipContainer.addFile('xl/styles.xml', ExcelXlsxFactory.createStylesheet(fontSize));\n ZipContainer.addFile('xl/sharedStrings.xml', ExcelXlsxFactory.createSharedStrings());\n ZipContainer.addFile('xl/theme/theme1.xml', ExcelXlsxFactory.createTheme());\n ZipContainer.addFile('xl/_rels/workbook.xml.rels', ExcelXlsxFactory.createWorkbookRels(sheetLen));\n ZipContainer.addFile('docProps/core.xml', ExcelXlsxFactory.createCore(author));\n ZipContainer.addFile('[Content_Types].xml', ExcelXlsxFactory.createContentTypes(sheetLen));\n ZipContainer.addFile('_rels/.rels', ExcelXlsxFactory.createRels());\n ExcelXlsxFactory.resetFactory();\n var mimeType = params.mimeType || 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet';\n return ZipContainer.getContent(mimeType);\n};\nvar exportMultipleSheetsAsExcel = function (params) {\n var _a = params.fileName, fileName = _a === void 0 ? 'export.xlsx' : _a;\n var contents = getMultipleSheetsAsExcel(params);\n if (contents) {\n Downloader.download(fileName, contents);\n }\n};\nvar createImageRelationsForSheet = function (sheetIndex, currentRelationIndex) {\n var drawingFolder = 'xl/drawings';\n var drawingFileName = drawingFolder + \"/drawing\" + (currentRelationIndex + 1) + \".xml\";\n var relFileName = drawingFolder + \"/_rels/drawing\" + (currentRelationIndex + 1) + \".xml.rels\";\n var worksheetRelFile = \"xl/worksheets/_rels/sheet\" + (sheetIndex + 1) + \".xml.rels\";\n ZipContainer.addFile(relFileName, ExcelXlsxFactory.createDrawingRel(sheetIndex));\n ZipContainer.addFile(drawingFileName, ExcelXlsxFactory.createDrawing(sheetIndex));\n ZipContainer.addFile(worksheetRelFile, ExcelXlsxFactory.createWorksheetDrawingRel(currentRelationIndex));\n};\nvar ExcelCreator = /** @class */ (function (_super) {\n __extends$2T(ExcelCreator, _super);\n function ExcelCreator() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.exportMode = 'xlsx';\n return _this;\n }\n ExcelCreator.prototype.postConstruct = function () {\n this.setBeans({\n gridSerializer: this.gridSerializer,\n gridOptionsService: this.gridOptionsService\n });\n };\n ExcelCreator.prototype.getMergedParams = function (params) {\n var baseParams = this.gridOptionsService.get('defaultExcelExportParams');\n return Object.assign({}, baseParams, params);\n };\n ExcelCreator.prototype.getData = function (params) {\n this.setExportMode(params.exportMode || 'xlsx');\n return _super.prototype.getData.call(this, params);\n };\n ExcelCreator.prototype.export = function (userParams) {\n if (this.isExportSuppressed()) {\n console.warn(\"AG Grid: Export cancelled. Export is not allowed as per your configuration.\");\n return '';\n }\n var mergedParams = this.getMergedParams(userParams);\n var data = this.getData(mergedParams);\n var exportParams = {\n data: [data],\n fontSize: mergedParams.fontSize,\n author: mergedParams.author,\n mimeType: mergedParams.mimeType\n };\n var packageFile = this.packageFile(exportParams);\n if (packageFile) {\n Downloader.download(this.getFileName(mergedParams.fileName), packageFile);\n }\n return data;\n };\n ExcelCreator.prototype.exportDataAsExcel = function (params) {\n return this.export(params);\n };\n ExcelCreator.prototype.getDataAsExcel = function (params) {\n var mergedParams = this.getMergedParams(params);\n var data = this.getData(mergedParams);\n if (params && params.exportMode === 'xml') {\n return data;\n }\n var exportParams = {\n data: [data],\n fontSize: mergedParams.fontSize,\n author: mergedParams.author,\n mimeType: mergedParams.mimeType\n };\n return this.packageFile(exportParams);\n };\n ExcelCreator.prototype.setFactoryMode = function (factoryMode, exportMode) {\n if (exportMode === void 0) { exportMode = 'xlsx'; }\n var factory = exportMode === 'xlsx' ? ExcelXlsxFactory : ExcelXmlFactory;\n factory.factoryMode = factoryMode;\n };\n ExcelCreator.prototype.getFactoryMode = function (exportMode) {\n var factory = exportMode === 'xlsx' ? ExcelXlsxFactory : ExcelXmlFactory;\n return factory.factoryMode;\n };\n ExcelCreator.prototype.getSheetDataForExcel = function (params) {\n var mergedParams = this.getMergedParams(params);\n var data = this.getData(mergedParams);\n return data;\n };\n ExcelCreator.prototype.getMultipleSheetsAsExcel = function (params) {\n return getMultipleSheetsAsExcel(params);\n };\n ExcelCreator.prototype.exportMultipleSheetsAsExcel = function (params) {\n return exportMultipleSheetsAsExcel(params);\n };\n ExcelCreator.prototype.getDefaultFileName = function () {\n return \"export.\" + this.getExportMode();\n };\n ExcelCreator.prototype.getDefaultFileExtension = function () {\n return this.getExportMode();\n };\n ExcelCreator.prototype.createSerializingSession = function (params) {\n var _a = this, columnModel = _a.columnModel, valueService = _a.valueService, gridOptionsService = _a.gridOptionsService, valueFormatterService = _a.valueFormatterService, valueParserService = _a.valueParserService;\n var isXlsx = this.getExportMode() === 'xlsx';\n var sheetName = 'ag-grid';\n if (params.sheetName != null) {\n sheetName = _.utf8_encode(params.sheetName.toString().substr(0, 31));\n }\n var config = __assign$Y(__assign$Y({}, params), { sheetName: sheetName, columnModel: columnModel, valueService: valueService, gridOptionsService: gridOptionsService, valueFormatterService: valueFormatterService, valueParserService: valueParserService, headerRowHeight: params.headerRowHeight || params.rowHeight, baseExcelStyles: this.gridOptionsService.get('excelStyles') || [], styleLinker: this.styleLinker.bind(this) });\n return new (isXlsx ? ExcelXlsxSerializingSession : ExcelXmlSerializingSession)(config);\n };\n ExcelCreator.prototype.styleLinker = function (params) {\n var rowType = params.rowType, rowIndex = params.rowIndex, value = params.value, column = params.column, columnGroup = params.columnGroup, node = params.node;\n var isHeader = rowType === RowType.HEADER;\n var isGroupHeader = rowType === RowType.HEADER_GROUPING;\n var col = (isHeader ? column : columnGroup);\n var headerClasses = [];\n if (isHeader || isGroupHeader) {\n headerClasses.push('header');\n if (isGroupHeader) {\n headerClasses.push('headerGroup');\n }\n if (col) {\n headerClasses = headerClasses.concat(CssClassApplier.getHeaderClassesFromColDef(col.getDefinition(), this.gridOptionsService, column || null, columnGroup || null));\n }\n return headerClasses;\n }\n var styles = this.gridOptionsService.get('excelStyles');\n var applicableStyles = [\"cell\"];\n if (!styles || !styles.length) {\n return applicableStyles;\n }\n var styleIds = styles.map(function (it) {\n return it.id;\n });\n this.stylingService.processAllCellClasses(column.getDefinition(), {\n value: value,\n data: node.data,\n node: node,\n colDef: column.getDefinition(),\n column: column,\n rowIndex: rowIndex,\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context\n }, function (className) {\n if (styleIds.indexOf(className) > -1) {\n applicableStyles.push(className);\n }\n });\n return applicableStyles.sort(function (left, right) {\n return (styleIds.indexOf(left) < styleIds.indexOf(right)) ? -1 : 1;\n });\n };\n ExcelCreator.prototype.isExportSuppressed = function () {\n return this.gridOptionsService.is('suppressExcelExport');\n };\n ExcelCreator.prototype.setExportMode = function (exportMode) {\n this.exportMode = exportMode;\n };\n ExcelCreator.prototype.getExportMode = function () {\n return this.exportMode;\n };\n ExcelCreator.prototype.packageFile = function (params) {\n if (this.getExportMode() === 'xml') {\n var mimeType = params.mimeType || 'application/vnd.ms-excel';\n return new Blob([\"\\ufeff\", params.data[0]], { type: mimeType });\n }\n return getMultipleSheetsAsExcel(params);\n };\n __decorate$23([\n Autowired('columnModel')\n ], ExcelCreator.prototype, \"columnModel\", void 0);\n __decorate$23([\n Autowired('valueService')\n ], ExcelCreator.prototype, \"valueService\", void 0);\n __decorate$23([\n Autowired('stylingService')\n ], ExcelCreator.prototype, \"stylingService\", void 0);\n __decorate$23([\n Autowired('gridSerializer')\n ], ExcelCreator.prototype, \"gridSerializer\", void 0);\n __decorate$23([\n Autowired('gridOptionsService')\n ], ExcelCreator.prototype, \"gridOptionsService\", void 0);\n __decorate$23([\n Autowired('valueFormatterService')\n ], ExcelCreator.prototype, \"valueFormatterService\", void 0);\n __decorate$23([\n Autowired('valueParserService')\n ], ExcelCreator.prototype, \"valueParserService\", void 0);\n __decorate$23([\n PostConstruct\n ], ExcelCreator.prototype, \"postConstruct\", null);\n ExcelCreator = __decorate$23([\n Bean('excelCreator')\n ], ExcelCreator);\n return ExcelCreator;\n}(BaseCreator));\n\n// DO NOT UPDATE MANUALLY: Generated from script during build time\nvar VERSION$d = '30.2.0';\n\nvar ExcelExportModule = {\n version: VERSION$d,\n moduleName: ModuleNames.ExcelExportModule,\n beans: [\n // beans in this module\n ExcelCreator,\n // these beans are part of CSV Export module\n GridSerializer, CsvCreator\n ],\n dependantModules: [\n CsvExportModule,\n EnterpriseCoreModule\n ]\n};\n\nvar __extends$2S = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$22 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar EXPAND_STATE;\n(function (EXPAND_STATE) {\n EXPAND_STATE[EXPAND_STATE[\"EXPANDED\"] = 0] = \"EXPANDED\";\n EXPAND_STATE[EXPAND_STATE[\"COLLAPSED\"] = 1] = \"COLLAPSED\";\n EXPAND_STATE[EXPAND_STATE[\"INDETERMINATE\"] = 2] = \"INDETERMINATE\";\n})(EXPAND_STATE || (EXPAND_STATE = {}));\nvar FiltersToolPanelHeaderPanel = /** @class */ (function (_super) {\n __extends$2S(FiltersToolPanelHeaderPanel, _super);\n function FiltersToolPanelHeaderPanel() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FiltersToolPanelHeaderPanel.prototype.preConstruct = function () {\n this.setTemplate(/* html */ \"
\\n
\\n \\n
\");\n };\n FiltersToolPanelHeaderPanel.prototype.postConstruct = function () {\n var translate = this.localeService.getLocaleTextFunc();\n this.eFilterTextField.onValueChange(this.onSearchTextChanged.bind(this));\n this.eFilterTextField.setInputAriaLabel(translate('ariaFilterColumnsInput', 'Filter Columns Input'));\n this.createExpandIcons();\n this.setExpandState(EXPAND_STATE.EXPANDED);\n this.addManagedListener(this.eExpand, 'click', this.onExpandClicked.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.showOrHideOptions.bind(this));\n };\n FiltersToolPanelHeaderPanel.prototype.init = function (params) {\n this.params = params;\n if (this.columnModel.isReady()) {\n this.showOrHideOptions();\n }\n };\n FiltersToolPanelHeaderPanel.prototype.createExpandIcons = function () {\n this.eExpand.appendChild(this.eExpandChecked = _.createIconNoSpan('columnSelectOpen', this.gridOptionsService));\n this.eExpand.appendChild(this.eExpandUnchecked = _.createIconNoSpan('columnSelectClosed', this.gridOptionsService));\n this.eExpand.appendChild(this.eExpandIndeterminate = _.createIconNoSpan('columnSelectIndeterminate', this.gridOptionsService));\n };\n // we only show expand / collapse if we are showing filters\n FiltersToolPanelHeaderPanel.prototype.showOrHideOptions = function () {\n var showFilterSearch = !this.params.suppressFilterSearch;\n var showExpand = !this.params.suppressExpandAll;\n var translate = this.localeService.getLocaleTextFunc();\n this.eFilterTextField.setInputPlaceholder(translate('searchOoo', 'Search...'));\n var isFilterGroupPresent = function (col) { return col.getOriginalParent() && col.isFilterAllowed(); };\n var filterGroupsPresent = this.columnModel.getAllGridColumns().some(isFilterGroupPresent);\n _.setDisplayed(this.eFilterTextField.getGui(), showFilterSearch);\n _.setDisplayed(this.eExpand, showExpand && filterGroupsPresent);\n };\n FiltersToolPanelHeaderPanel.prototype.onSearchTextChanged = function () {\n var _this = this;\n if (!this.onSearchTextChangedDebounced) {\n this.onSearchTextChangedDebounced = _.debounce(function () {\n _this.dispatchEvent({ type: 'searchChanged', searchText: _this.eFilterTextField.getValue() });\n }, 300);\n }\n this.onSearchTextChangedDebounced();\n };\n FiltersToolPanelHeaderPanel.prototype.onExpandClicked = function () {\n var event = this.currentExpandState === EXPAND_STATE.EXPANDED ? { type: 'collapseAll' } : { type: 'expandAll' };\n this.dispatchEvent(event);\n };\n FiltersToolPanelHeaderPanel.prototype.setExpandState = function (state) {\n this.currentExpandState = state;\n _.setDisplayed(this.eExpandChecked, this.currentExpandState === EXPAND_STATE.EXPANDED);\n _.setDisplayed(this.eExpandUnchecked, this.currentExpandState === EXPAND_STATE.COLLAPSED);\n _.setDisplayed(this.eExpandIndeterminate, this.currentExpandState === EXPAND_STATE.INDETERMINATE);\n };\n __decorate$22([\n Autowired('columnModel')\n ], FiltersToolPanelHeaderPanel.prototype, \"columnModel\", void 0);\n __decorate$22([\n RefSelector('eExpand')\n ], FiltersToolPanelHeaderPanel.prototype, \"eExpand\", void 0);\n __decorate$22([\n RefSelector('eFilterTextField')\n ], FiltersToolPanelHeaderPanel.prototype, \"eFilterTextField\", void 0);\n __decorate$22([\n PreConstruct\n ], FiltersToolPanelHeaderPanel.prototype, \"preConstruct\", null);\n __decorate$22([\n PostConstruct\n ], FiltersToolPanelHeaderPanel.prototype, \"postConstruct\", null);\n return FiltersToolPanelHeaderPanel;\n}(Component));\n\nvar __extends$2R = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$21 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ToolPanelFilterComp = /** @class */ (function (_super) {\n __extends$2R(ToolPanelFilterComp, _super);\n function ToolPanelFilterComp(hideHeader) {\n if (hideHeader === void 0) { hideHeader = false; }\n var _this = _super.call(this, ToolPanelFilterComp.TEMPLATE) || this;\n _this.expanded = false;\n _this.hideHeader = hideHeader;\n return _this;\n }\n ToolPanelFilterComp.prototype.postConstruct = function () {\n this.eExpandChecked = _.createIconNoSpan('columnSelectOpen', this.gridOptionsService);\n this.eExpandUnchecked = _.createIconNoSpan('columnSelectClosed', this.gridOptionsService);\n this.eExpand.appendChild(this.eExpandChecked);\n this.eExpand.appendChild(this.eExpandUnchecked);\n };\n ToolPanelFilterComp.prototype.setColumn = function (column) {\n var _this = this;\n this.column = column;\n this.eFilterName.innerText = this.columnModel.getDisplayNameForColumn(this.column, 'filterToolPanel', false) || '';\n this.addManagedListener(this.eFilterToolPanelHeader, 'click', this.toggleExpanded.bind(this));\n this.addManagedListener(this.eFilterToolPanelHeader, 'keydown', function (e) {\n if (e.key === KeyCode.ENTER || e.key === KeyCode.SPACE) {\n e.preventDefault();\n _this.toggleExpanded();\n }\n });\n this.addManagedListener(this.eventService, Events.EVENT_FILTER_OPENED, this.onFilterOpened.bind(this));\n this.addInIcon('filter', this.eFilterIcon, this.column);\n _.setDisplayed(this.eFilterIcon, this.isFilterActive(), { skipAriaHidden: true });\n _.setDisplayed(this.eExpandChecked, false);\n if (this.hideHeader) {\n _.setDisplayed(this.eFilterToolPanelHeader, false);\n this.eFilterToolPanelHeader.removeAttribute('tabindex');\n }\n else {\n this.eFilterToolPanelHeader.setAttribute('tabindex', '0');\n }\n this.addManagedListener(this.column, Column.EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_FILTER_DESTROYED, this.onFilterDestroyed.bind(this));\n };\n ToolPanelFilterComp.prototype.getColumn = function () {\n return this.column;\n };\n ToolPanelFilterComp.prototype.getColumnFilterName = function () {\n return this.columnModel.getDisplayNameForColumn(this.column, 'filterToolPanel', false);\n };\n ToolPanelFilterComp.prototype.addCssClassToTitleBar = function (cssClass) {\n this.eFilterToolPanelHeader.classList.add(cssClass);\n };\n ToolPanelFilterComp.prototype.addInIcon = function (iconName, eParent, column) {\n if (eParent == null) {\n return;\n }\n var eIcon = _.createIconNoSpan(iconName, this.gridOptionsService, column);\n eParent.appendChild(eIcon);\n };\n ToolPanelFilterComp.prototype.isFilterActive = function () {\n return this.filterManager.isFilterActive(this.column);\n };\n ToolPanelFilterComp.prototype.onFilterChanged = function () {\n _.setDisplayed(this.eFilterIcon, this.isFilterActive(), { skipAriaHidden: true });\n this.dispatchEvent({ type: Column.EVENT_FILTER_CHANGED });\n };\n ToolPanelFilterComp.prototype.onFilterDestroyed = function (event) {\n if (this.expanded &&\n event.source === 'api' &&\n event.column.getId() === this.column.getId() &&\n this.columnModel.getPrimaryColumn(this.column)) {\n // filter was visible and has been destroyed by the API. If the column still exists, need to recreate UI component\n this.removeFilterElement();\n this.addFilterElement();\n }\n };\n ToolPanelFilterComp.prototype.toggleExpanded = function () {\n this.expanded ? this.collapse() : this.expand();\n };\n ToolPanelFilterComp.prototype.expand = function () {\n if (this.expanded) {\n return;\n }\n this.expanded = true;\n _.setAriaExpanded(this.eFilterToolPanelHeader, true);\n _.setDisplayed(this.eExpandChecked, true);\n _.setDisplayed(this.eExpandUnchecked, false);\n this.addFilterElement();\n };\n ToolPanelFilterComp.prototype.addFilterElement = function () {\n var _this = this;\n var filterPanelWrapper = _.loadTemplate(/* html */ \"
\");\n var filterWrapper = this.filterManager.getOrCreateFilterWrapper(this.column, 'TOOLBAR');\n if (!filterWrapper) {\n return;\n }\n var filterPromise = filterWrapper.filterPromise, guiPromise = filterWrapper.guiPromise;\n filterPromise === null || filterPromise === void 0 ? void 0 : filterPromise.then(function (filter) {\n _this.underlyingFilter = filter;\n if (!filter) {\n return;\n }\n guiPromise.then(function (filterContainerEl) {\n if (filterContainerEl) {\n filterPanelWrapper.appendChild(filterContainerEl);\n }\n _this.agFilterToolPanelBody.appendChild(filterPanelWrapper);\n if (filter.afterGuiAttached) {\n filter.afterGuiAttached({ container: 'toolPanel' });\n }\n });\n });\n };\n ToolPanelFilterComp.prototype.collapse = function () {\n var _a, _b;\n if (!this.expanded) {\n return;\n }\n this.expanded = false;\n _.setAriaExpanded(this.eFilterToolPanelHeader, false);\n this.removeFilterElement();\n _.setDisplayed(this.eExpandChecked, false);\n _.setDisplayed(this.eExpandUnchecked, true);\n (_b = (_a = this.underlyingFilter) === null || _a === void 0 ? void 0 : _a.afterGuiDetached) === null || _b === void 0 ? void 0 : _b.call(_a);\n };\n ToolPanelFilterComp.prototype.removeFilterElement = function () {\n _.clearElement(this.agFilterToolPanelBody);\n };\n ToolPanelFilterComp.prototype.isExpanded = function () {\n return this.expanded;\n };\n ToolPanelFilterComp.prototype.refreshFilter = function (isDisplayed) {\n var _a;\n if (!this.expanded) {\n return;\n }\n var filter = this.underlyingFilter;\n if (!filter) {\n return;\n }\n if (isDisplayed) {\n // set filters should be updated when the filter has been changed elsewhere, i.e. via api. Note that we can't\n // use 'afterGuiAttached' to refresh the virtual list as it also focuses on the mini filter which changes the\n // scroll position in the filter list panel\n if (typeof filter.refreshVirtualList === 'function') {\n filter.refreshVirtualList();\n }\n }\n else {\n (_a = filter.afterGuiDetached) === null || _a === void 0 ? void 0 : _a.call(filter);\n }\n };\n ToolPanelFilterComp.prototype.onFilterOpened = function (event) {\n if (event.source !== 'COLUMN_MENU') {\n return;\n }\n if (event.column !== this.column) {\n return;\n }\n if (!this.expanded) {\n return;\n }\n this.collapse();\n };\n ToolPanelFilterComp.TEMPLATE = \"\\n
\\n
\\n
\\n \\n \\n
\\n
\\n
\";\n __decorate$21([\n RefSelector('eFilterToolPanelHeader')\n ], ToolPanelFilterComp.prototype, \"eFilterToolPanelHeader\", void 0);\n __decorate$21([\n RefSelector('eFilterName')\n ], ToolPanelFilterComp.prototype, \"eFilterName\", void 0);\n __decorate$21([\n RefSelector('agFilterToolPanelBody')\n ], ToolPanelFilterComp.prototype, \"agFilterToolPanelBody\", void 0);\n __decorate$21([\n RefSelector('eFilterIcon')\n ], ToolPanelFilterComp.prototype, \"eFilterIcon\", void 0);\n __decorate$21([\n RefSelector('eExpand')\n ], ToolPanelFilterComp.prototype, \"eExpand\", void 0);\n __decorate$21([\n Autowired('filterManager')\n ], ToolPanelFilterComp.prototype, \"filterManager\", void 0);\n __decorate$21([\n Autowired('columnModel')\n ], ToolPanelFilterComp.prototype, \"columnModel\", void 0);\n __decorate$21([\n PostConstruct\n ], ToolPanelFilterComp.prototype, \"postConstruct\", null);\n return ToolPanelFilterComp;\n}(Component));\n\nvar __extends$2Q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$20 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ToolPanelFilterGroupComp = /** @class */ (function (_super) {\n __extends$2Q(ToolPanelFilterGroupComp, _super);\n function ToolPanelFilterGroupComp(columnGroup, childFilterComps, expandedCallback, depth, showingColumn) {\n var _this = _super.call(this) || this;\n _this.columnGroup = columnGroup;\n _this.childFilterComps = childFilterComps;\n _this.depth = depth;\n _this.expandedCallback = expandedCallback;\n _this.showingColumn = showingColumn;\n return _this;\n }\n ToolPanelFilterGroupComp.prototype.preConstruct = function () {\n var groupParams = {\n cssIdentifier: 'filter-toolpanel',\n direction: 'vertical'\n };\n this.setTemplate(ToolPanelFilterGroupComp.TEMPLATE, { filterGroupComp: groupParams });\n };\n ToolPanelFilterGroupComp.prototype.init = function () {\n var _this = this;\n this.setGroupTitle();\n this.filterGroupComp.setAlignItems('stretch');\n this.filterGroupComp.addCssClass(\"ag-filter-toolpanel-group-level-\" + this.depth);\n this.filterGroupComp.addCssClassToTitleBar(\"ag-filter-toolpanel-group-level-\" + this.depth + \"-header\");\n this.childFilterComps.forEach(function (filterComp) {\n _this.filterGroupComp.addItem(filterComp);\n filterComp.addCssClassToTitleBar(\"ag-filter-toolpanel-group-level-\" + (_this.depth + 1) + \"-header\");\n });\n this.refreshFilterClass();\n this.addExpandCollapseListeners();\n this.addFilterChangedListeners();\n this.setupTooltip();\n };\n ToolPanelFilterGroupComp.prototype.setupTooltip = function () {\n var _this = this;\n // we don't show tooltips for groups, as when the group expands, it's div contains the columns which also\n // have tooltips, so the tooltips would clash. Eg mouse over group, tooltip shows, mouse over column, another\n // tooltip shows but cos we didn't leave the group the group tooltip remains. this should be fixed in the future,\n // maybe the group shouldn't contain the children form a DOM perspective.\n if (!this.showingColumn) {\n return;\n }\n var refresh = function () {\n var newTooltipText = _this.columnGroup.getColDef().headerTooltip;\n _this.setTooltip(newTooltipText);\n };\n refresh();\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, refresh);\n };\n ToolPanelFilterGroupComp.prototype.getTooltipParams = function () {\n var res = _super.prototype.getTooltipParams.call(this);\n res.location = 'filterToolPanelColumnGroup';\n return res;\n };\n ToolPanelFilterGroupComp.prototype.addCssClassToTitleBar = function (cssClass) {\n this.filterGroupComp.addCssClassToTitleBar(cssClass);\n };\n ToolPanelFilterGroupComp.prototype.refreshFilters = function (isDisplayed) {\n this.childFilterComps.forEach(function (filterComp) {\n if (filterComp instanceof ToolPanelFilterGroupComp) {\n filterComp.refreshFilters(isDisplayed);\n }\n else {\n filterComp.refreshFilter(isDisplayed);\n }\n });\n };\n ToolPanelFilterGroupComp.prototype.isColumnGroup = function () {\n return this.columnGroup instanceof ProvidedColumnGroup;\n };\n ToolPanelFilterGroupComp.prototype.isExpanded = function () {\n return this.filterGroupComp.isExpanded();\n };\n ToolPanelFilterGroupComp.prototype.getChildren = function () {\n return this.childFilterComps;\n };\n ToolPanelFilterGroupComp.prototype.getFilterGroupName = function () {\n return this.filterGroupName ? this.filterGroupName : '';\n };\n ToolPanelFilterGroupComp.prototype.getFilterGroupId = function () {\n return this.columnGroup.getId();\n };\n ToolPanelFilterGroupComp.prototype.hideGroupItem = function (hide, index) {\n this.filterGroupComp.hideItem(hide, index);\n };\n ToolPanelFilterGroupComp.prototype.hideGroup = function (hide) {\n this.setDisplayed(!hide);\n };\n ToolPanelFilterGroupComp.prototype.forEachToolPanelFilterChild = function (action) {\n this.childFilterComps.forEach(function (filterComp) {\n if (filterComp instanceof ToolPanelFilterComp) {\n action(filterComp);\n }\n });\n };\n ToolPanelFilterGroupComp.prototype.addExpandCollapseListeners = function () {\n var _this = this;\n var expandListener = this.isColumnGroup() ?\n function () { return _this.expandedCallback(); } :\n function () { return _this.forEachToolPanelFilterChild(function (filterComp) { return filterComp.expand(); }); };\n var collapseListener = this.isColumnGroup() ?\n function () { return _this.expandedCallback(); } :\n function () { return _this.forEachToolPanelFilterChild(function (filterComp) { return filterComp.collapse(); }); };\n this.addManagedListener(this.filterGroupComp, AgGroupComponent.EVENT_EXPANDED, expandListener);\n this.addManagedListener(this.filterGroupComp, AgGroupComponent.EVENT_COLLAPSED, collapseListener);\n };\n ToolPanelFilterGroupComp.prototype.getColumns = function () {\n if (this.columnGroup instanceof ProvidedColumnGroup) {\n return this.columnGroup.getLeafColumns();\n }\n return [this.columnGroup];\n };\n ToolPanelFilterGroupComp.prototype.addFilterChangedListeners = function () {\n var _this = this;\n this.getColumns().forEach(function (column) {\n _this.addManagedListener(column, Column.EVENT_FILTER_CHANGED, function () { return _this.refreshFilterClass(); });\n });\n if (!(this.columnGroup instanceof ProvidedColumnGroup)) {\n this.addManagedListener(this.eventService, Events.EVENT_FILTER_OPENED, this.onFilterOpened.bind(this));\n }\n };\n ToolPanelFilterGroupComp.prototype.refreshFilterClass = function () {\n var columns = this.getColumns();\n var anyChildFiltersActive = function () { return columns.some(function (col) { return col.isFilterActive(); }); };\n this.filterGroupComp.addOrRemoveCssClass('ag-has-filter', anyChildFiltersActive());\n };\n ToolPanelFilterGroupComp.prototype.onFilterOpened = function (event) {\n // when a filter is opened elsewhere, i.e. column menu we close the filter comp so we also need to collapse\n // the column group. This approach means we don't need to try and sync filter models on the same column.\n if (event.source !== 'COLUMN_MENU') {\n return;\n }\n if (event.column !== this.columnGroup) {\n return;\n }\n if (!this.isExpanded()) {\n return;\n }\n this.collapse();\n };\n ToolPanelFilterGroupComp.prototype.expand = function () {\n this.filterGroupComp.toggleGroupExpand(true);\n };\n ToolPanelFilterGroupComp.prototype.collapse = function () {\n this.filterGroupComp.toggleGroupExpand(false);\n };\n ToolPanelFilterGroupComp.prototype.setGroupTitle = function () {\n this.filterGroupName = (this.columnGroup instanceof ProvidedColumnGroup) ?\n this.getColumnGroupName(this.columnGroup) : this.getColumnName(this.columnGroup);\n this.filterGroupComp.setTitle(this.filterGroupName || '');\n };\n ToolPanelFilterGroupComp.prototype.getColumnGroupName = function (columnGroup) {\n return this.columnModel.getDisplayNameForProvidedColumnGroup(null, columnGroup, 'filterToolPanel');\n };\n ToolPanelFilterGroupComp.prototype.getColumnName = function (column) {\n return this.columnModel.getDisplayNameForColumn(column, 'filterToolPanel', false);\n };\n ToolPanelFilterGroupComp.prototype.destroyFilters = function () {\n this.childFilterComps = this.destroyBeans(this.childFilterComps);\n _.clearElement(this.getGui());\n };\n ToolPanelFilterGroupComp.prototype.destroy = function () {\n this.destroyFilters();\n _super.prototype.destroy.call(this);\n };\n ToolPanelFilterGroupComp.TEMPLATE = \"
\\n \\n
\";\n __decorate$20([\n RefSelector('filterGroupComp')\n ], ToolPanelFilterGroupComp.prototype, \"filterGroupComp\", void 0);\n __decorate$20([\n Autowired('columnModel')\n ], ToolPanelFilterGroupComp.prototype, \"columnModel\", void 0);\n __decorate$20([\n PreConstruct\n ], ToolPanelFilterGroupComp.prototype, \"preConstruct\", null);\n __decorate$20([\n PostConstruct\n ], ToolPanelFilterGroupComp.prototype, \"init\", null);\n return ToolPanelFilterGroupComp;\n}(Component));\n\nvar __extends$2P = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1$ = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FiltersToolPanelListPanel = /** @class */ (function (_super) {\n __extends$2P(FiltersToolPanelListPanel, _super);\n function FiltersToolPanelListPanel() {\n var _this = _super.call(this, FiltersToolPanelListPanel.TEMPLATE) || this;\n _this.initialised = false;\n _this.filterGroupComps = [];\n return _this;\n }\n FiltersToolPanelListPanel.prototype.init = function (params) {\n var _this = this;\n this.initialised = true;\n var defaultParams = {\n suppressExpandAll: false,\n suppressFilterSearch: false,\n suppressSyncLayoutWithGrid: false,\n api: this.gridApi,\n columnApi: this.columnApi,\n context: this.gridOptionsService.context\n };\n _.mergeDeep(defaultParams, params);\n this.params = defaultParams;\n if (!this.params.suppressSyncLayoutWithGrid) {\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_MOVED, function () { return _this.onColumnsChanged(); });\n }\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, function () { return _this.onColumnsChanged(); });\n this.addManagedListener(this.eventService, Events.EVENT_TOOL_PANEL_VISIBLE_CHANGED, function (event) {\n // when re-entering the filters tool panel we need to refresh the virtual lists in the set filters in case\n // filters have been changed elsewhere, i.e. via an api call.\n if (event.key === 'filters') {\n _this.refreshFilters(event.visible);\n }\n });\n if (this.columnModel.isReady()) {\n this.onColumnsChanged();\n }\n };\n FiltersToolPanelListPanel.prototype.onColumnsChanged = function () {\n var pivotModeActive = this.columnModel.isPivotMode();\n var shouldSyncColumnLayoutWithGrid = !this.params.suppressSyncLayoutWithGrid && !pivotModeActive;\n shouldSyncColumnLayoutWithGrid ? this.syncFilterLayout() : this.buildTreeFromProvidedColumnDefs();\n };\n FiltersToolPanelListPanel.prototype.syncFilterLayout = function () {\n this.toolPanelColDefService.syncLayoutWithGrid(this.setFiltersLayout.bind(this));\n };\n FiltersToolPanelListPanel.prototype.buildTreeFromProvidedColumnDefs = function () {\n var columnTree = this.columnModel.getPrimaryColumnTree();\n this.recreateFilters(columnTree);\n };\n FiltersToolPanelListPanel.prototype.setFiltersLayout = function (colDefs) {\n var columnTree = this.toolPanelColDefService.createColumnTree(colDefs);\n this.recreateFilters(columnTree);\n };\n FiltersToolPanelListPanel.prototype.recreateFilters = function (columnTree) {\n var _this = this;\n // Underlying filter comp/element won't get recreated if the column still exists (the element just gets detached/re-attached).\n // We can therefore restore focus if an element in the filter tool panel was focused.\n var activeElement = this.gridOptionsService.getDocument().activeElement;\n // Want to restore the expansion state where possible.\n var expansionState = this.getExpansionState();\n this.destroyFilters();\n this.filterGroupComps = this.recursivelyAddComps(columnTree, 0, expansionState);\n var len = this.filterGroupComps.length;\n if (len) {\n // skip the destroy function because this will be managed\n // by the `destroyFilters` function\n this.filterGroupComps.forEach(function (comp) { return _this.appendChild(comp); });\n this.setFirstAndLastVisible(0, len - 1);\n }\n // perform search if searchFilterText exists\n if (_.exists(this.searchFilterText)) {\n this.searchFilters(this.searchFilterText);\n }\n // notify header of expand\n this.fireExpandedEvent();\n // We only care about restoring focus if the originally focused element was in the filter tool panel.\n if (this.getGui().contains(activeElement)) {\n activeElement.focus();\n }\n };\n FiltersToolPanelListPanel.prototype.recursivelyAddComps = function (tree, depth, expansionState) {\n var _this = this;\n return _.flatten(tree.map(function (child) {\n if (child instanceof ProvidedColumnGroup) {\n return _.flatten(_this.recursivelyAddFilterGroupComps(child, depth, expansionState));\n }\n var column = child;\n if (!_this.shouldDisplayFilter(column)) {\n return [];\n }\n var hideFilterCompHeader = depth === 0;\n var filterComp = new ToolPanelFilterComp(hideFilterCompHeader);\n _this.createBean(filterComp);\n filterComp.setColumn(column);\n if (expansionState.get(column.getId())) {\n // Default state on creation and desired state are both collapsed. Expand if expanded before.\n filterComp.expand();\n }\n if (depth > 0) {\n return filterComp;\n }\n var filterGroupComp = _this.createBean(new ToolPanelFilterGroupComp(column, [filterComp], _this.onGroupExpanded.bind(_this), depth, true));\n filterGroupComp.addCssClassToTitleBar('ag-filter-toolpanel-header');\n if (!expansionState.get(filterGroupComp.getFilterGroupId())) {\n // Default state on creation is expanded. Desired initial state is collapsed. Always collapse unless expanded before.\n filterGroupComp.collapse();\n }\n return filterGroupComp;\n }));\n };\n FiltersToolPanelListPanel.prototype.recursivelyAddFilterGroupComps = function (columnGroup, depth, expansionState) {\n if (!this.filtersExistInChildren(columnGroup.getChildren())) {\n return;\n }\n var colGroupDef = columnGroup.getColGroupDef();\n if (colGroupDef && colGroupDef.suppressFiltersToolPanel) {\n return [];\n }\n var newDepth = columnGroup.isPadding() ? depth : depth + 1;\n var childFilterComps = _.flatten(this.recursivelyAddComps(columnGroup.getChildren(), newDepth, expansionState));\n if (columnGroup.isPadding()) {\n return childFilterComps;\n }\n var filterGroupComp = new ToolPanelFilterGroupComp(columnGroup, childFilterComps, this.onGroupExpanded.bind(this), depth, false);\n this.createBean(filterGroupComp);\n filterGroupComp.addCssClassToTitleBar('ag-filter-toolpanel-header');\n if (expansionState.get(filterGroupComp.getFilterGroupId()) === false) {\n // Default state on creation is expanded. Desired initial state is expanded. Only collapse if collapsed before.\n filterGroupComp.collapse();\n }\n return [filterGroupComp];\n };\n FiltersToolPanelListPanel.prototype.filtersExistInChildren = function (tree) {\n var _this = this;\n return tree.some(function (child) {\n if (child instanceof ProvidedColumnGroup) {\n return _this.filtersExistInChildren(child.getChildren());\n }\n return _this.shouldDisplayFilter(child);\n });\n };\n FiltersToolPanelListPanel.prototype.shouldDisplayFilter = function (column) {\n var suppressFiltersToolPanel = column.getColDef() && column.getColDef().suppressFiltersToolPanel;\n return column.isFilterAllowed() && !suppressFiltersToolPanel;\n };\n FiltersToolPanelListPanel.prototype.getExpansionState = function () {\n var expansionState = new Map();\n var recursiveGetExpansionState = function (filterGroupComp) {\n expansionState.set(filterGroupComp.getFilterGroupId(), filterGroupComp.isExpanded());\n filterGroupComp.getChildren().forEach(function (child) {\n if (child instanceof ToolPanelFilterGroupComp) {\n recursiveGetExpansionState(child);\n }\n else {\n expansionState.set(child.getColumn().getId(), child.isExpanded());\n }\n });\n };\n this.filterGroupComps.forEach(recursiveGetExpansionState);\n return expansionState;\n };\n // we don't support refreshing, but must implement because it's on the tool panel interface\n FiltersToolPanelListPanel.prototype.refresh = function () { };\n // lazy initialise the panel\n FiltersToolPanelListPanel.prototype.setVisible = function (visible) {\n _super.prototype.setDisplayed.call(this, visible);\n if (visible && !this.initialised) {\n this.init(this.params);\n }\n };\n FiltersToolPanelListPanel.prototype.expandFilterGroups = function (expand, groupIds) {\n var updatedGroupIds = [];\n var updateGroupExpandState = function (filterGroup) {\n var groupId = filterGroup.getFilterGroupId();\n var shouldExpandOrCollapse = !groupIds || _.includes(groupIds, groupId);\n if (shouldExpandOrCollapse) {\n // don't expand 'column groups', i.e. top level columns wrapped in a group\n if (expand && filterGroup.isColumnGroup()) {\n filterGroup.expand();\n }\n else {\n filterGroup.collapse();\n }\n updatedGroupIds.push(groupId);\n }\n // recursively look for more groups to expand / collapse\n filterGroup.getChildren().forEach(function (child) {\n if (child instanceof ToolPanelFilterGroupComp) {\n updateGroupExpandState(child);\n }\n });\n };\n this.filterGroupComps.forEach(updateGroupExpandState);\n // update header expand / collapse icon\n this.onGroupExpanded();\n if (groupIds) {\n var unrecognisedGroupIds = groupIds.filter(function (groupId) { return updatedGroupIds.indexOf(groupId) < 0; });\n if (unrecognisedGroupIds.length > 0) {\n console.warn('AG Grid: unable to find groups for these supplied groupIds:', unrecognisedGroupIds);\n }\n }\n };\n FiltersToolPanelListPanel.prototype.expandFilters = function (expand, colIds) {\n var updatedColIds = [];\n var updateGroupExpandState = function (filterComp) {\n if (filterComp instanceof ToolPanelFilterGroupComp) {\n var anyChildrenChanged_1 = false;\n filterComp.getChildren().forEach(function (child) {\n var childUpdated = updateGroupExpandState(child);\n if (childUpdated) {\n if (expand) {\n filterComp.expand();\n anyChildrenChanged_1 = true;\n }\n else if (!filterComp.isColumnGroup()) {\n // we only collapse columns wrapped in groups\n filterComp.collapse();\n }\n }\n });\n return anyChildrenChanged_1;\n }\n var colId = filterComp.getColumn().getColId();\n var updateFilterExpandState = !colIds || _.includes(colIds, colId);\n if (updateFilterExpandState) {\n expand ? filterComp.expand() : filterComp.collapse();\n updatedColIds.push(colId);\n }\n return updateFilterExpandState;\n };\n this.filterGroupComps.forEach(updateGroupExpandState);\n // update header expand / collapse icon\n this.onGroupExpanded();\n if (colIds) {\n var unrecognisedColIds = colIds.filter(function (colId) { return updatedColIds.indexOf(colId) < 0; });\n if (unrecognisedColIds.length > 0) {\n console.warn('AG Grid: unable to find columns for these supplied colIds:', unrecognisedColIds);\n }\n }\n };\n FiltersToolPanelListPanel.prototype.onGroupExpanded = function () {\n this.fireExpandedEvent();\n };\n FiltersToolPanelListPanel.prototype.fireExpandedEvent = function () {\n var expandedCount = 0;\n var notExpandedCount = 0;\n var updateExpandCounts = function (filterGroup) {\n if (!filterGroup.isColumnGroup()) {\n return;\n }\n filterGroup.isExpanded() ? expandedCount++ : notExpandedCount++;\n filterGroup.getChildren().forEach(function (child) {\n if (child instanceof ToolPanelFilterGroupComp) {\n updateExpandCounts(child);\n }\n });\n };\n this.filterGroupComps.forEach(updateExpandCounts);\n var state;\n if (expandedCount > 0 && notExpandedCount > 0) {\n state = EXPAND_STATE.INDETERMINATE;\n }\n else if (notExpandedCount > 0) {\n state = EXPAND_STATE.COLLAPSED;\n }\n else {\n state = EXPAND_STATE.EXPANDED;\n }\n this.dispatchEvent({ type: 'groupExpanded', state: state });\n };\n FiltersToolPanelListPanel.prototype.performFilterSearch = function (searchText) {\n this.searchFilterText = _.exists(searchText) ? searchText.toLowerCase() : null;\n this.searchFilters(this.searchFilterText);\n };\n FiltersToolPanelListPanel.prototype.searchFilters = function (searchFilter) {\n var passesFilter = function (groupName) {\n return !_.exists(searchFilter) || groupName.toLowerCase().indexOf(searchFilter) !== -1;\n };\n var recursivelySearch = function (filterItem, parentPasses) {\n if (!(filterItem instanceof ToolPanelFilterGroupComp)) {\n return passesFilter(filterItem.getColumnFilterName() || '');\n }\n var children = filterItem.getChildren();\n var groupNamePasses = passesFilter(filterItem.getFilterGroupName());\n // if group or parent already passed - ensure this group and all children are visible\n var alreadyPassed = parentPasses || groupNamePasses;\n if (alreadyPassed) {\n // ensure group visible\n filterItem.hideGroup(false);\n // ensure all children are visible\n for (var i = 0; i < children.length; i++) {\n recursivelySearch(children[i], alreadyPassed);\n filterItem.hideGroupItem(false, i);\n }\n return true;\n }\n // hide group item filters\n var anyChildPasses = false;\n children.forEach(function (child, index) {\n var childPasses = recursivelySearch(child, parentPasses);\n filterItem.hideGroupItem(!childPasses, index);\n if (childPasses) {\n anyChildPasses = true;\n }\n });\n // hide group if no children pass\n filterItem.hideGroup(!anyChildPasses);\n return anyChildPasses;\n };\n var firstVisible;\n var lastVisible;\n this.filterGroupComps.forEach(function (filterGroup, idx) {\n recursivelySearch(filterGroup, false);\n if (firstVisible === undefined) {\n if (!filterGroup.containsCssClass('ag-hidden')) {\n firstVisible = idx;\n lastVisible = idx;\n }\n }\n else if (!filterGroup.containsCssClass('ag-hidden') && lastVisible !== idx) {\n lastVisible = idx;\n }\n });\n this.setFirstAndLastVisible(firstVisible, lastVisible);\n };\n FiltersToolPanelListPanel.prototype.setFirstAndLastVisible = function (firstIdx, lastIdx) {\n this.filterGroupComps.forEach(function (filterGroup, idx) {\n filterGroup.removeCssClass('ag-first-group-visible');\n filterGroup.removeCssClass('ag-last-group-visible');\n if (idx === firstIdx) {\n filterGroup.addCssClass('ag-first-group-visible');\n }\n if (idx === lastIdx) {\n filterGroup.addCssClass('ag-last-group-visible');\n }\n });\n };\n FiltersToolPanelListPanel.prototype.refreshFilters = function (isDisplayed) {\n this.filterGroupComps.forEach(function (filterGroupComp) { return filterGroupComp.refreshFilters(isDisplayed); });\n };\n FiltersToolPanelListPanel.prototype.destroyFilters = function () {\n this.filterGroupComps = this.destroyBeans(this.filterGroupComps);\n _.clearElement(this.getGui());\n };\n FiltersToolPanelListPanel.prototype.destroy = function () {\n this.destroyFilters();\n _super.prototype.destroy.call(this);\n };\n FiltersToolPanelListPanel.TEMPLATE = \"
\";\n __decorate$1$([\n Autowired(\"gridApi\")\n ], FiltersToolPanelListPanel.prototype, \"gridApi\", void 0);\n __decorate$1$([\n Autowired(\"columnApi\")\n ], FiltersToolPanelListPanel.prototype, \"columnApi\", void 0);\n __decorate$1$([\n Autowired('toolPanelColDefService')\n ], FiltersToolPanelListPanel.prototype, \"toolPanelColDefService\", void 0);\n __decorate$1$([\n Autowired('columnModel')\n ], FiltersToolPanelListPanel.prototype, \"columnModel\", void 0);\n return FiltersToolPanelListPanel;\n}(Component));\n\nvar __extends$2O = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$X = (undefined && undefined.__assign) || function () {\n __assign$X = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$X.apply(this, arguments);\n};\nvar __decorate$1_ = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FiltersToolPanel = /** @class */ (function (_super) {\n __extends$2O(FiltersToolPanel, _super);\n function FiltersToolPanel() {\n var _this = _super.call(this, FiltersToolPanel.TEMPLATE) || this;\n _this.initialised = false;\n _this.listenerDestroyFuncs = [];\n return _this;\n }\n FiltersToolPanel.prototype.init = function (params) {\n // if initialised is true, means this is a refresh\n if (this.initialised) {\n this.listenerDestroyFuncs.forEach(function (func) { return func(); });\n this.listenerDestroyFuncs = [];\n }\n this.initialised = true;\n var defaultParams = {\n suppressExpandAll: false,\n suppressFilterSearch: false,\n suppressSyncLayoutWithGrid: false,\n api: this.gridApi,\n columnApi: this.columnApi,\n };\n this.params = __assign$X(__assign$X(__assign$X({}, defaultParams), params), { context: this.gridOptionsService.context });\n this.filtersToolPanelHeaderPanel.init(this.params);\n this.filtersToolPanelListPanel.init(this.params);\n var hideExpand = this.params.suppressExpandAll;\n var hideSearch = this.params.suppressFilterSearch;\n if (hideExpand && hideSearch) {\n this.filtersToolPanelHeaderPanel.setDisplayed(false);\n }\n // this is necessary to prevent a memory leak while refreshing the tool panel\n this.listenerDestroyFuncs.push(this.addManagedListener(this.filtersToolPanelHeaderPanel, 'expandAll', this.onExpandAll.bind(this)), this.addManagedListener(this.filtersToolPanelHeaderPanel, 'collapseAll', this.onCollapseAll.bind(this)), this.addManagedListener(this.filtersToolPanelHeaderPanel, 'searchChanged', this.onSearchChanged.bind(this)), this.addManagedListener(this.filtersToolPanelListPanel, 'groupExpanded', this.onGroupExpanded.bind(this)));\n };\n // lazy initialise the panel\n FiltersToolPanel.prototype.setVisible = function (visible) {\n _super.prototype.setDisplayed.call(this, visible);\n if (visible && !this.initialised) {\n this.init(this.params);\n }\n };\n FiltersToolPanel.prototype.onExpandAll = function () {\n this.filtersToolPanelListPanel.expandFilterGroups(true);\n };\n FiltersToolPanel.prototype.onCollapseAll = function () {\n this.filtersToolPanelListPanel.expandFilterGroups(false);\n };\n FiltersToolPanel.prototype.onSearchChanged = function (event) {\n this.filtersToolPanelListPanel.performFilterSearch(event.searchText);\n };\n FiltersToolPanel.prototype.setFilterLayout = function (colDefs) {\n this.filtersToolPanelListPanel.setFiltersLayout(colDefs);\n };\n FiltersToolPanel.prototype.onGroupExpanded = function (event) {\n this.filtersToolPanelHeaderPanel.setExpandState(event.state);\n };\n FiltersToolPanel.prototype.expandFilterGroups = function (groupIds) {\n this.filtersToolPanelListPanel.expandFilterGroups(true, groupIds);\n };\n FiltersToolPanel.prototype.collapseFilterGroups = function (groupIds) {\n this.filtersToolPanelListPanel.expandFilterGroups(false, groupIds);\n };\n FiltersToolPanel.prototype.expandFilters = function (colIds) {\n this.filtersToolPanelListPanel.expandFilters(true, colIds);\n };\n FiltersToolPanel.prototype.collapseFilters = function (colIds) {\n this.filtersToolPanelListPanel.expandFilters(false, colIds);\n };\n FiltersToolPanel.prototype.syncLayoutWithGrid = function () {\n this.filtersToolPanelListPanel.syncFilterLayout();\n };\n FiltersToolPanel.prototype.refresh = function () {\n this.init(this.params);\n };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n FiltersToolPanel.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n FiltersToolPanel.TEMPLATE = \"
\\n \\n \\n
\";\n __decorate$1_([\n RefSelector('filtersToolPanelHeaderPanel')\n ], FiltersToolPanel.prototype, \"filtersToolPanelHeaderPanel\", void 0);\n __decorate$1_([\n RefSelector('filtersToolPanelListPanel')\n ], FiltersToolPanel.prototype, \"filtersToolPanelListPanel\", void 0);\n __decorate$1_([\n Autowired('gridApi')\n ], FiltersToolPanel.prototype, \"gridApi\", void 0);\n __decorate$1_([\n Autowired('columnApi')\n ], FiltersToolPanel.prototype, \"columnApi\", void 0);\n return FiltersToolPanel;\n}(Component));\n\n// DO NOT UPDATE MANUALLY: Generated from script during build time\nvar VERSION$c = '30.2.0';\n\nvar FiltersToolPanelModule = {\n version: VERSION$c,\n moduleName: ModuleNames.FiltersToolPanelModule,\n beans: [],\n agStackComponents: [\n { componentName: 'AgFiltersToolPanelHeader', componentClass: FiltersToolPanelHeaderPanel },\n { componentName: 'AgFiltersToolPanelList', componentClass: FiltersToolPanelListPanel }\n ],\n userComponents: [\n { componentName: 'agFiltersToolPanel', componentClass: FiltersToolPanel },\n ],\n dependantModules: [\n SideBarModule,\n EnterpriseCoreModule\n ]\n};\n\nvar __extends$2N = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\n/**\n * The interval methods don't mutate Date parameters.\n */\nvar TimeInterval = /** @class */ (function () {\n function TimeInterval(encode, decode, rangeCallback) {\n this._encode = encode;\n this._decode = decode;\n this._rangeCallback = rangeCallback;\n }\n /**\n * Returns a new date representing the latest interval boundary date before or equal to date.\n * For example, `day.floor(date)` typically returns 12:00 AM local time on the given date.\n * @param date\n */\n TimeInterval.prototype.floor = function (date) {\n var d = new Date(date);\n var e = this._encode(d);\n return this._decode(e);\n };\n /**\n * Returns a new date representing the earliest interval boundary date after or equal to date.\n * @param date\n */\n TimeInterval.prototype.ceil = function (date) {\n var d = new Date(Number(date) - 1);\n var e = this._encode(d);\n return this._decode(e + 1);\n };\n /**\n * Returns an array of dates representing every interval boundary after or equal to start (inclusive) and before stop (exclusive).\n * @param start Range start.\n * @param stop Range end.\n * @param extend If specified, the requested range will be extended to the closest \"nice\" values.\n */\n TimeInterval.prototype.range = function (start, stop, extend) {\n var _a;\n var rangeCallback = (_a = this._rangeCallback) === null || _a === void 0 ? void 0 : _a.call(this, start, stop);\n var e0 = this._encode(extend ? this.floor(start) : this.ceil(start));\n var e1 = this._encode(extend ? this.ceil(stop) : this.floor(stop));\n if (e1 < e0) {\n return [];\n }\n var range = [];\n for (var e = e0; e <= e1; e++) {\n var d = this._decode(e);\n range.push(d);\n }\n rangeCallback === null || rangeCallback === void 0 ? void 0 : rangeCallback();\n return range;\n };\n return TimeInterval;\n}());\nvar CountableTimeInterval = /** @class */ (function (_super) {\n __extends$2N(CountableTimeInterval, _super);\n function CountableTimeInterval() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n CountableTimeInterval.prototype.getOffset = function (snapTo, step) {\n var s = typeof snapTo === 'number' || snapTo instanceof Date ? this._encode(new Date(snapTo)) : 0;\n return Math.floor(s) % step;\n };\n /**\n * Returns a filtered view of this interval representing every step'th date.\n * It can be a number of minutes, hours, days etc.\n * Must be a positive integer.\n * @param step\n */\n CountableTimeInterval.prototype.every = function (step, options) {\n var _this = this;\n var offset = 0;\n var rangeCallback;\n var _a = (options !== null && options !== void 0 ? options : {}).snapTo, snapTo = _a === void 0 ? 'start' : _a;\n if (typeof snapTo === 'string') {\n var initialOffset_1 = offset;\n rangeCallback = function (start, stop) {\n var s = snapTo === 'start' ? start : stop;\n offset = _this.getOffset(s, step);\n return function () { return (offset = initialOffset_1); };\n };\n }\n else if (typeof snapTo === 'number') {\n offset = this.getOffset(new Date(snapTo), step);\n }\n else if (snapTo instanceof Date) {\n offset = this.getOffset(snapTo, step);\n }\n var encode = function (date) {\n var e = _this._encode(date);\n return Math.floor((e - offset) / step);\n };\n var decode = function (encoded) {\n return _this._decode(encoded * step + offset);\n };\n var interval = new TimeInterval(encode, decode, rangeCallback);\n return interval;\n };\n return CountableTimeInterval;\n}(TimeInterval));\n\nfunction encode$b(date) {\n return date.getTime();\n}\nfunction decode$b(encoded) {\n return new Date(encoded);\n}\nvar millisecond = new CountableTimeInterval(encode$b, decode$b);\n\n// Common time unit sizes in milliseconds.\nnew Date(0).getFullYear();\nvar durationSecond = 1000;\nvar durationMinute = durationSecond * 60;\nvar durationHour = durationMinute * 60;\nvar durationDay = durationHour * 24;\nvar durationWeek = durationDay * 7;\nvar durationMonth = durationDay * 30;\nvar durationYear = durationDay * 365;\n\nvar offset$2 = new Date().getTimezoneOffset() * durationMinute;\nfunction encode$a(date) {\n return Math.floor((date.getTime() - offset$2) / durationSecond);\n}\nfunction decode$a(encoded) {\n return new Date(offset$2 + encoded * durationSecond);\n}\nvar second = new CountableTimeInterval(encode$a, decode$a);\n\nvar offset$1 = new Date().getTimezoneOffset() * durationMinute;\nfunction encode$9(date) {\n return Math.floor((date.getTime() - offset$1) / durationMinute);\n}\nfunction decode$9(encoded) {\n return new Date(offset$1 + encoded * durationMinute);\n}\nvar minute = new CountableTimeInterval(encode$9, decode$9);\n\nvar offset = new Date().getTimezoneOffset() * durationMinute;\nfunction encode$8(date) {\n return Math.floor((date.getTime() - offset) / durationHour);\n}\nfunction decode$8(encoded) {\n return new Date(offset + encoded * durationHour);\n}\nvar hour = new CountableTimeInterval(encode$8, decode$8);\n\nfunction encode$7(date) {\n var tzOffsetMs = date.getTimezoneOffset() * 60000;\n return Math.floor((date.getTime() - tzOffsetMs) / durationDay);\n}\nfunction decode$7(encoded) {\n var d = new Date(1970, 0, 1);\n d.setDate(d.getDate() + encoded);\n return d;\n}\nvar day = new CountableTimeInterval(encode$7, decode$7);\n\n// Set date to n-th day of the week.\nfunction weekday(n) {\n var base = new Date(2023, 0, 1 + n).getTime();\n function encode(date) {\n var dateMs = date.getTime();\n return Math.floor((dateMs - base) / durationWeek);\n }\n function decode(encoded) {\n var d = new Date(base);\n d.setDate(d.getDate() + encoded * 7);\n return d;\n }\n return new CountableTimeInterval(encode, decode);\n}\nvar sunday = weekday(0);\nvar monday = weekday(1);\nvar tuesday = weekday(2);\nvar wednesday = weekday(3);\nvar thursday = weekday(4);\nvar friday = weekday(5);\nvar saturday = weekday(6);\n\nfunction encode$6(date) {\n return date.getFullYear() * 12 + date.getMonth();\n}\nfunction decode$6(encoded) {\n var year = Math.floor(encoded / 12);\n var month = encoded - year * 12;\n return new Date(year, month, 1);\n}\nvar month = new CountableTimeInterval(encode$6, decode$6);\n\nfunction encode$5(date) {\n return date.getFullYear();\n}\nfunction decode$5(encoded) {\n // Note: assigning years through the constructor\n // will break for years 0 - 99 AD (will turn 1900's).\n var d = new Date();\n d.setFullYear(encoded);\n d.setMonth(0, 1);\n d.setHours(0, 0, 0, 0);\n return d;\n}\nvar year = new CountableTimeInterval(encode$5, decode$5);\n\nfunction encode$4(date) {\n return Math.floor(date.getTime() / durationMinute);\n}\nfunction decode$4(encoded) {\n return new Date(encoded * durationMinute);\n}\nvar utcMinute = new CountableTimeInterval(encode$4, decode$4);\n\nfunction encode$3(date) {\n return Math.floor(date.getTime() / durationHour);\n}\nfunction decode$3(encoded) {\n return new Date(encoded * durationHour);\n}\nvar utcHour = new CountableTimeInterval(encode$3, decode$3);\n\nfunction encode$2(date) {\n return Math.floor(date.getTime() / durationDay);\n}\nfunction decode$2(encoded) {\n var d = new Date(0);\n d.setUTCDate(d.getUTCDate() + encoded);\n d.setUTCHours(0, 0, 0, 0);\n return d;\n}\nvar utcDay = new CountableTimeInterval(encode$2, decode$2);\n\nfunction encode$1(date) {\n return date.getUTCFullYear() * 12 + date.getUTCMonth();\n}\nfunction decode$1(encoded) {\n var year = Math.floor(encoded / 12);\n var month = encoded - year * 12;\n return new Date(Date.UTC(year, month, 1));\n}\nvar utcMonth = new CountableTimeInterval(encode$1, decode$1);\n\nfunction encode(date) {\n return date.getUTCFullYear();\n}\nfunction decode(encoded) {\n // Note: assigning years through the constructor\n // will break for years 0 - 99 AD (will turn 1900's).\n var d = new Date();\n d.setUTCFullYear(encoded);\n d.setUTCMonth(0, 1);\n d.setUTCHours(0, 0, 0, 0);\n return d;\n}\nvar utcYear = new CountableTimeInterval(encode, decode);\n\nvar time = /*#__PURE__*/Object.freeze({\n __proto__: null,\n millisecond: millisecond,\n second: second,\n minute: minute,\n hour: hour,\n day: day,\n sunday: sunday,\n monday: monday,\n tuesday: tuesday,\n wednesday: wednesday,\n thursday: thursday,\n friday: friday,\n saturday: saturday,\n month: month,\n year: year,\n utcMinute: utcMinute,\n utcHour: utcHour,\n utcDay: utcDay,\n utcMonth: utcMonth,\n utcYear: utcYear\n});\n\nvar MOBILE = [/Android/i, /webOS/i, /iPhone/i, /iPad/i, /iPod/i, /BlackBerry/i, /Windows Phone/i];\nfunction isDesktop() {\n var userAgent = navigator.userAgent;\n if (MOBILE.some(function (r) { return r.test(userAgent); })) {\n return false;\n }\n return true;\n}\n\n/**\n * Wraps the native Canvas element and overrides its CanvasRenderingContext2D to\n * provide resolution independent rendering based on `window.devicePixelRatio`.\n */\nvar HdpiCanvas = /** @class */ (function () {\n // The width/height attributes of the Canvas element default to\n // 300/150 according to w3.org.\n function HdpiCanvas(_a) {\n var _b = _a.document, document = _b === void 0 ? window.document : _b, _c = _a.width, width = _c === void 0 ? 600 : _c, _d = _a.height, height = _d === void 0 ? 300 : _d, _e = _a.domLayer, domLayer = _e === void 0 ? false : _e, _f = _a.zIndex, zIndex = _f === void 0 ? 0 : _f, _g = _a.name, name = _g === void 0 ? undefined : _g, _h = _a.overrideDevicePixelRatio, overrideDevicePixelRatio = _h === void 0 ? undefined : _h;\n this._container = undefined;\n this._enabled = true;\n // `NaN` is deliberate here, so that overrides are always applied\n // and the `resetTransform` inside the `resize` method works in IE11.\n this._pixelRatio = NaN;\n this._width = 0;\n this._height = 0;\n this.document = document;\n // Create canvas and immediately apply width + height to avoid out-of-memory\n // errors on iOS/iPadOS Safari.\n this.element = document.createElement('canvas');\n this.element.width = width;\n this.element.height = height;\n this.context = this.element.getContext('2d');\n this.imageSource = this.context.canvas;\n var style = this.element.style;\n style.userSelect = 'none';\n style.display = 'block';\n if (domLayer) {\n style.position = 'absolute';\n style.zIndex = String(zIndex);\n style.top = '0';\n style.left = '0';\n style.pointerEvents = 'none';\n style.opacity = \"1\";\n if (name) {\n this.element.id = name;\n }\n }\n this.setPixelRatio(overrideDevicePixelRatio);\n this.resize(width, height);\n }\n Object.defineProperty(HdpiCanvas.prototype, \"container\", {\n get: function () {\n return this._container;\n },\n set: function (value) {\n if (this._container !== value) {\n this.remove();\n if (value) {\n value.appendChild(this.element);\n }\n this._container = value;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HdpiCanvas.prototype, \"enabled\", {\n get: function () {\n return this._enabled;\n },\n set: function (value) {\n this.element.style.display = value ? 'block' : 'none';\n this._enabled = !!value;\n },\n enumerable: false,\n configurable: true\n });\n HdpiCanvas.prototype.remove = function () {\n var parentNode = this.element.parentNode;\n if (parentNode != null) {\n parentNode.removeChild(this.element);\n }\n };\n HdpiCanvas.prototype.destroy = function () {\n this.element.remove();\n // Workaround memory allocation quirks in iOS Safari by resizing to 0x0 and clearing.\n // See https://bugs.webkit.org/show_bug.cgi?id=195325.\n this.element.width = 0;\n this.element.height = 0;\n this.context.clearRect(0, 0, 0, 0);\n Object.freeze(this);\n };\n HdpiCanvas.prototype.snapshot = function () {\n // No-op for compatibility with HdpiOffscreenCanvas.\n };\n HdpiCanvas.prototype.clear = function () {\n this.context.save();\n this.context.resetTransform();\n this.context.clearRect(0, 0, this.width, this.height);\n this.context.restore();\n };\n HdpiCanvas.prototype.toImage = function () {\n var img = this.document.createElement('img');\n img.src = this.getDataURL();\n return img;\n };\n HdpiCanvas.prototype.getDataURL = function (type) {\n return this.element.toDataURL(type);\n };\n /**\n * @param fileName The name of the downloaded file.\n * @param fileFormat The file format, the default is `image/png`\n */\n HdpiCanvas.prototype.download = function (fileName, fileFormat) {\n if (fileFormat === void 0) { fileFormat = 'image/png'; }\n fileName = (fileName !== null && fileName !== void 0 ? fileName : '').trim() || 'image';\n var dataUrl = this.getDataURL(fileFormat);\n var document = this.document;\n var a = document.createElement('a');\n a.href = dataUrl;\n a.download = fileName;\n a.style.display = 'none';\n document.body.appendChild(a); // required for the `click` to work in Firefox\n a.click();\n document.body.removeChild(a);\n };\n Object.defineProperty(HdpiCanvas.prototype, \"pixelRatio\", {\n get: function () {\n return this._pixelRatio;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Changes the pixel ratio of the Canvas element to the given value,\n * or uses the window.devicePixelRatio (default), then resizes the Canvas\n * element accordingly (default).\n */\n HdpiCanvas.prototype.setPixelRatio = function (ratio) {\n var pixelRatio = ratio !== null && ratio !== void 0 ? ratio : window.devicePixelRatio;\n if (!isDesktop()) {\n // Mobile browsers have stricter memory limits, we reduce rendering resolution to\n // improve stability on mobile browsers. iOS Safari 12->16 are pain-points since they\n // have memory allocation quirks - see https://bugs.webkit.org/show_bug.cgi?id=195325.\n pixelRatio = 1;\n }\n HdpiCanvas.overrideScale(this.context, pixelRatio);\n this._pixelRatio = pixelRatio;\n };\n Object.defineProperty(HdpiCanvas.prototype, \"pixelated\", {\n get: function () {\n return this.element.style.imageRendering === 'pixelated';\n },\n set: function (value) {\n this.element.style.imageRendering = value ? 'pixelated' : 'auto';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HdpiCanvas.prototype, \"width\", {\n get: function () {\n return this._width;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HdpiCanvas.prototype, \"height\", {\n get: function () {\n return this._height;\n },\n enumerable: false,\n configurable: true\n });\n HdpiCanvas.prototype.resize = function (width, height) {\n if (!(width > 0 && height > 0)) {\n return;\n }\n var _a = this, element = _a.element, context = _a.context, pixelRatio = _a.pixelRatio;\n element.width = Math.round(width * pixelRatio);\n element.height = Math.round(height * pixelRatio);\n element.style.width = width + 'px';\n element.style.height = height + 'px';\n context.resetTransform();\n this._width = width;\n this._height = height;\n };\n Object.defineProperty(HdpiCanvas, \"textMeasuringContext\", {\n get: function () {\n if (this._textMeasuringContext) {\n return this._textMeasuringContext;\n }\n var canvas = document.createElement('canvas');\n this._textMeasuringContext = canvas.getContext('2d');\n return this._textMeasuringContext;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HdpiCanvas, \"svgText\", {\n get: function () {\n if (this._svgText) {\n return this._svgText;\n }\n var xmlns = 'http://www.w3.org/2000/svg';\n var svg = document.createElementNS(xmlns, 'svg');\n svg.setAttribute('width', '100');\n svg.setAttribute('height', '100');\n // Add a descriptive class name in case someone sees this SVG element\n // in devtools and wonders about its purpose:\n if (svg.classList) {\n svg.classList.add('text-measuring-svg');\n }\n else {\n svg.setAttribute('class', 'text-measuring-svg');\n }\n svg.style.position = 'absolute';\n svg.style.top = '-1000px';\n svg.style.visibility = 'hidden';\n var svgText = document.createElementNS(xmlns, 'text');\n svgText.setAttribute('x', '0');\n svgText.setAttribute('y', '30');\n svgText.setAttribute('text', 'black');\n svg.appendChild(svgText);\n document.body.appendChild(svg);\n this._svgText = svgText;\n return svgText;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HdpiCanvas, \"has\", {\n get: function () {\n if (this._has) {\n return this._has;\n }\n var isChrome = navigator.userAgent.indexOf('Chrome') > -1;\n var isFirefox = navigator.userAgent.indexOf('Firefox') > -1;\n var isSafari = !isChrome && navigator.userAgent.indexOf('Safari') > -1;\n this._has = Object.freeze({\n textMetrics: this.textMeasuringContext.measureText('test').actualBoundingBoxDescent !== undefined &&\n // Firefox implemented advanced TextMetrics object in v74:\n // https://bugzilla.mozilla.org/show_bug.cgi?id=1102584\n // but it's buggy, so we'll keep using the SVG for text measurement in Firefox for now.\n !isFirefox &&\n !isSafari,\n getTransform: this.textMeasuringContext.getTransform !== undefined,\n });\n return this._has;\n },\n enumerable: false,\n configurable: true\n });\n HdpiCanvas.measureText = function (text, font, textBaseline, textAlign) {\n var ctx = this.textMeasuringContext;\n ctx.font = font;\n ctx.textBaseline = textBaseline;\n ctx.textAlign = textAlign;\n return ctx.measureText(text);\n };\n /**\n * Returns the width and height of the measured text.\n * @param text The single-line text to measure.\n * @param font The font shorthand string.\n */\n HdpiCanvas.getTextSize = function (text, font) {\n if (this.has.textMetrics) {\n var ctx = this.textMeasuringContext;\n ctx.font = font;\n var metrics = ctx.measureText(text);\n return {\n width: metrics.width,\n height: metrics.actualBoundingBoxAscent + metrics.actualBoundingBoxDescent,\n };\n }\n else {\n return this.measureSvgText(text, font);\n }\n };\n HdpiCanvas.measureSvgText = function (text, font) {\n var cache = this.textSizeCache;\n var fontCache = cache[font];\n // Note: consider not caching the size of numeric strings.\n // For example: if (isNaN(+text)) { // skip\n if (fontCache) {\n var size_1 = fontCache[text];\n if (size_1) {\n return size_1;\n }\n }\n else {\n cache[font] = {};\n }\n var svgText = this.svgText;\n svgText.style.font = font;\n svgText.textContent = text;\n // `getBBox` returns an instance of `SVGRect` with the same `width` and `height`\n // measurements as `DOMRect` instance returned by the `getBoundingClientRect`.\n // But the `SVGRect` instance has half the properties of the `DOMRect`,\n // so we use the `getBBox` method.\n var bbox = svgText.getBBox();\n var size = {\n width: bbox.width,\n height: bbox.height,\n };\n cache[font][text] = size;\n return size;\n };\n HdpiCanvas.overrideScale = function (ctx, scale) {\n var depth = 0;\n var overrides = {\n save: function () {\n this.$save();\n depth++;\n },\n restore: function () {\n if (depth > 0) {\n this.$restore();\n depth--;\n }\n else {\n throw new Error('AG Charts - Unable to restore() past depth 0');\n }\n },\n setTransform: function (a, b, c, d, e, f) {\n if (typeof a === 'object') {\n this.$setTransform(a);\n }\n else {\n this.$setTransform(a * scale, b * scale, c * scale, d * scale, e * scale, f * scale);\n }\n },\n resetTransform: function () {\n // As of Jan 8, 2019, `resetTransform` is still an \"experimental technology\",\n // and doesn't work in IE11 and Edge 44.\n this.$setTransform(scale, 0, 0, scale, 0, 0);\n },\n verifyDepthZero: function () {\n if (depth !== 0) {\n throw new Error('AG Charts - Save/restore depth is non-zero: ' + depth);\n }\n },\n };\n for (var name_1 in overrides) {\n if (Object.prototype.hasOwnProperty.call(overrides, name_1)) {\n // Save native methods under prefixed names,\n // if this hasn't been done by the previous overrides already.\n if (!ctx['$' + name_1]) {\n ctx['$' + name_1] = ctx[name_1];\n }\n // Replace native methods with overrides,\n // or previous overrides with the new ones.\n ctx[name_1] = overrides[name_1];\n }\n }\n };\n HdpiCanvas.textSizeCache = {};\n return HdpiCanvas;\n}());\n\n// For small data structs like a bounding box, objects are superior to arrays\n// in terms of performance (by 3-4% in Chrome 71, Safari 12 and by 20% in Firefox 64).\n// They are also self descriptive and harder to abuse.\n// For example, one has to do:\n// `ctx.strokeRect(bbox.x, bbox.y, bbox.width, bbox.height);`\n// rather than become enticed by the much slower:\n// `ctx.strokeRect(...bbox);`\n// https://jsperf.com/array-vs-object-create-access\nvar __assign$W = (undefined && undefined.__assign) || function () {\n __assign$W = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$W.apply(this, arguments);\n};\nvar __read$1a = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar BBox = /** @class */ (function () {\n function BBox(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n }\n BBox.prototype.clone = function () {\n var _a = this, x = _a.x, y = _a.y, width = _a.width, height = _a.height;\n return new BBox(x, y, width, height);\n };\n BBox.prototype.equals = function (other) {\n return this.x === other.x && this.y === other.y && this.width === other.width && this.height === other.height;\n };\n BBox.prototype.containsPoint = function (x, y) {\n return x >= this.x && x <= this.x + this.width && y >= this.y && y <= this.y + this.height;\n };\n BBox.prototype.collidesBBox = function (other) {\n return (this.x < other.x + other.width &&\n this.x + this.width > other.x &&\n this.y < other.y + other.height &&\n this.y + this.height > other.y);\n };\n BBox.prototype.isInfinite = function () {\n return (Math.abs(this.x) === Infinity ||\n Math.abs(this.y) === Infinity ||\n Math.abs(this.width) === Infinity ||\n Math.abs(this.height) === Infinity);\n };\n BBox.prototype.shrink = function (amount, position) {\n var _this = this;\n var apply = function (pos, amt) {\n switch (pos) {\n case 'top':\n _this.y += amt;\n // eslint-disable-next-line no-fallthrough\n case 'bottom':\n _this.height -= amt;\n break;\n case 'left':\n _this.x += amt;\n // eslint-disable-next-line no-fallthrough\n case 'right':\n _this.width -= amt;\n break;\n case 'vertical':\n _this.y += amt;\n _this.height -= amt * 2;\n break;\n case 'horizontal':\n _this.x += amt;\n _this.width -= amt * 2;\n break;\n default:\n _this.x += amt;\n _this.width -= amt * 2;\n _this.y += amt;\n _this.height -= amt * 2;\n }\n };\n if (typeof amount === 'number') {\n apply(position, amount);\n }\n else {\n Object.entries(amount).forEach(function (_a) {\n var _b = __read$1a(_a, 2), pos = _b[0], amt = _b[1];\n return apply(pos, amt);\n });\n }\n return this;\n };\n BBox.prototype.grow = function (amount, position) {\n if (typeof amount === 'number') {\n this.shrink(-amount, position);\n }\n else {\n var paddingCopy = __assign$W({}, amount);\n for (var key in paddingCopy) {\n paddingCopy[key] *= -1;\n }\n this.shrink(paddingCopy);\n }\n return this;\n };\n BBox.merge = function (boxes) {\n var left = Infinity;\n var top = Infinity;\n var right = -Infinity;\n var bottom = -Infinity;\n boxes.forEach(function (box) {\n if (box.x < left) {\n left = box.x;\n }\n if (box.y < top) {\n top = box.y;\n }\n if (box.x + box.width > right) {\n right = box.x + box.width;\n }\n if (box.y + box.height > bottom) {\n bottom = box.y + box.height;\n }\n });\n return new BBox(left, top, right - left, bottom - top);\n };\n return BBox;\n}());\n\nvar __read$19 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$I = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\n/**\n * As of Jan 8, 2019, Firefox still doesn't implement\n * `getTransform(): DOMMatrix;`\n * `setTransform(transform?: DOMMatrix2DInit)`\n * in the `CanvasRenderingContext2D`.\n * Bug: https://bugzilla.mozilla.org/show_bug.cgi?id=928150\n * IE11 and Edge 44 also don't have the support.\n * Thus this class, to keep track of the current transform and\n * combine transformations.\n * Standards:\n * https://html.spec.whatwg.org/dev/canvas.html\n * https://www.w3.org/TR/geometry-1/\n */\nvar Matrix = /** @class */ (function () {\n function Matrix(elements) {\n if (elements === void 0) { elements = [1, 0, 0, 1, 0, 0]; }\n this.elements = elements;\n }\n Object.defineProperty(Matrix.prototype, \"e\", {\n get: function () {\n return __spreadArray$I([], __read$19(this.elements));\n },\n enumerable: false,\n configurable: true\n });\n Matrix.prototype.setElements = function (elements) {\n var e = this.elements;\n // `this.elements = elements.slice()` is 4-5 times slower\n // (in Chrome 71 and FF 64) than manually copying elements,\n // since slicing allocates new memory.\n // The performance of passing parameters individually\n // vs as an array is about the same in both browsers, so we\n // go with a single (array of elements) parameter, because\n // `setElements(elements)` and `setElements([a, b, c, d, e, f])`\n // calls give us roughly the same performance, versus\n // `setElements(...elements)` and `setElements(a, b, c, d, e, f)`,\n // where the spread operator causes a 20-30x performance drop\n // (30x when compiled to ES5's `.apply(this, elements)`\n // 20x when used natively).\n e[0] = elements[0];\n e[1] = elements[1];\n e[2] = elements[2];\n e[3] = elements[3];\n e[4] = elements[4];\n e[5] = elements[5];\n return this;\n };\n Object.defineProperty(Matrix.prototype, \"identity\", {\n get: function () {\n var e = this.elements;\n return e[0] === 1 && e[1] === 0 && e[2] === 0 && e[3] === 1 && e[4] === 0 && e[5] === 0;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Performs the AxB matrix multiplication and saves the result\n * to `C`, if given, or to `A` otherwise.\n */\n Matrix.prototype.AxB = function (A, B, C) {\n var a = A[0] * B[0] + A[2] * B[1], b = A[1] * B[0] + A[3] * B[1], c = A[0] * B[2] + A[2] * B[3], d = A[1] * B[2] + A[3] * B[3], e = A[0] * B[4] + A[2] * B[5] + A[4], f = A[1] * B[4] + A[3] * B[5] + A[5];\n C = C !== null && C !== void 0 ? C : A;\n C[0] = a;\n C[1] = b;\n C[2] = c;\n C[3] = d;\n C[4] = e;\n C[5] = f;\n };\n /**\n * The `other` matrix gets post-multiplied to the current matrix.\n * Returns the current matrix.\n * @param other\n */\n Matrix.prototype.multiplySelf = function (other) {\n this.AxB(this.elements, other.elements);\n return this;\n };\n /**\n * The `other` matrix gets post-multiplied to the current matrix.\n * Returns a new matrix.\n * @param other\n */\n Matrix.prototype.multiply = function (other) {\n var elements = new Array(6);\n this.AxB(this.elements, other.elements, elements);\n return new Matrix(elements);\n };\n Matrix.prototype.preMultiplySelf = function (other) {\n this.AxB(other.elements, this.elements, this.elements);\n return this;\n };\n /**\n * Returns the inverse of this matrix as a new matrix.\n */\n Matrix.prototype.inverse = function () {\n var el = this.elements;\n var a = el[0], b = el[1], c = el[2], d = el[3];\n var e = el[4], f = el[5];\n var rD = 1 / (a * d - b * c); // reciprocal of determinant\n a *= rD;\n b *= rD;\n c *= rD;\n d *= rD;\n return new Matrix([d, -b, -c, a, c * f - d * e, b * e - a * f]);\n };\n /**\n * Save the inverse of this matrix to the given matrix.\n */\n Matrix.prototype.inverseTo = function (other) {\n var el = this.elements;\n var a = el[0], b = el[1], c = el[2], d = el[3];\n var e = el[4], f = el[5];\n var rD = 1 / (a * d - b * c); // reciprocal of determinant\n a *= rD;\n b *= rD;\n c *= rD;\n d *= rD;\n other.setElements([d, -b, -c, a, c * f - d * e, b * e - a * f]);\n return this;\n };\n Matrix.prototype.invertSelf = function () {\n var el = this.elements;\n var a = el[0], b = el[1], c = el[2], d = el[3];\n var e = el[4], f = el[5];\n var rD = 1 / (a * d - b * c); // reciprocal of determinant\n a *= rD;\n b *= rD;\n c *= rD;\n d *= rD;\n el[0] = d;\n el[1] = -b;\n el[2] = -c;\n el[3] = a;\n el[4] = c * f - d * e;\n el[5] = b * e - a * f;\n return this;\n };\n Matrix.prototype.transformPoint = function (x, y) {\n var e = this.elements;\n return {\n x: x * e[0] + y * e[2] + e[4],\n y: x * e[1] + y * e[3] + e[5],\n };\n };\n Matrix.prototype.transformBBox = function (bbox, target) {\n var elements = this.elements;\n var xx = elements[0];\n var xy = elements[1];\n var yx = elements[2];\n var yy = elements[3];\n var h_w = bbox.width * 0.5;\n var h_h = bbox.height * 0.5;\n var cx = bbox.x + h_w;\n var cy = bbox.y + h_h;\n var w = Math.abs(h_w * xx) + Math.abs(h_h * yx);\n var h = Math.abs(h_w * xy) + Math.abs(h_h * yy);\n if (!target) {\n target = new BBox(0, 0, 0, 0);\n }\n target.x = cx * xx + cy * yx + elements[4] - w;\n target.y = cx * xy + cy * yy + elements[5] - h;\n target.width = w + w;\n target.height = h + h;\n return target;\n };\n Matrix.prototype.toContext = function (ctx) {\n // It's fair to say that matrix multiplications are not cheap.\n // However, updating path definitions on every frame isn't either, so\n // it may be cheaper to just translate paths. It's also fair to\n // say, that most paths will have to be re-rendered anyway, say\n // rectangle paths in a bar chart, where an animation would happen when\n // the data set changes and existing bars are morphed into new ones.\n // Or a pie chart, where old sectors are also morphed into new ones.\n // Same for the line chart. The only plausible case where translating\n // existing paths would be enough, is the scatter chart, where marker\n // icons, typically circles, stay the same size. But if circle radii\n // are bound to some data points, even circle paths would have to be\n // updated. And thus it makes sense to optimize for fewer matrix\n // transforms, where transform matrices of paths are mostly identity\n // matrices and `x`/`y`, `centerX`/`centerY` and similar properties\n // are used to define a path at specific coordinates. And only groups\n // are used to collectively apply a transform to a set of nodes.\n // If the matrix is mostly identity (95% of the time),\n // the `if (this.isIdentity)` check can make this call 3-4 times\n // faster on average: https://jsperf.com/matrix-check-first-vs-always-set\n if (this.identity) {\n return;\n }\n var e = this.elements;\n ctx.transform(e[0], e[1], e[2], e[3], e[4], e[5]);\n };\n Matrix.flyweight = function (sourceMatrix) {\n return Matrix.instance.setElements(sourceMatrix.elements);\n };\n Matrix.updateTransformMatrix = function (matrix, scalingX, scalingY, rotation, translationX, translationY, opts) {\n // Assume that centers of scaling and rotation are at the origin.\n var _a = __read$19([0, 0], 2), bbcx = _a[0], bbcy = _a[1];\n var sx = scalingX;\n var sy = scalingY;\n var scx;\n var scy;\n if (sx === 1 && sy === 1) {\n scx = 0;\n scy = 0;\n }\n else {\n scx = (opts === null || opts === void 0 ? void 0 : opts.scalingCenterX) == null ? bbcx : opts === null || opts === void 0 ? void 0 : opts.scalingCenterX;\n scy = (opts === null || opts === void 0 ? void 0 : opts.scalingCenterY) == null ? bbcy : opts === null || opts === void 0 ? void 0 : opts.scalingCenterY;\n }\n var r = rotation;\n var cos = Math.cos(r);\n var sin = Math.sin(r);\n var rcx;\n var rcy;\n if (r === 0) {\n rcx = 0;\n rcy = 0;\n }\n else {\n rcx = (opts === null || opts === void 0 ? void 0 : opts.rotationCenterX) == null ? bbcx : opts === null || opts === void 0 ? void 0 : opts.rotationCenterX;\n rcy = (opts === null || opts === void 0 ? void 0 : opts.rotationCenterY) == null ? bbcy : opts === null || opts === void 0 ? void 0 : opts.rotationCenterY;\n }\n var tx = translationX;\n var ty = translationY;\n // The transform matrix `M` is a result of the following transformations:\n // 1) translate the center of scaling to the origin\n // 2) scale\n // 3) translate back\n // 4) translate the center of rotation to the origin\n // 5) rotate\n // 6) translate back\n // 7) translate\n // (7) (6) (5) (4) (3) (2) (1)\n // | 1 0 tx | | 1 0 rcx | | cos -sin 0 | | 1 0 -rcx | | 1 0 scx | | sx 0 0 | | 1 0 -scx |\n // M = | 0 1 ty | * | 0 1 rcy | * | sin cos 0 | * | 0 1 -rcy | * | 0 1 scy | * | 0 sy 0 | * | 0 1 -scy |\n // | 0 0 1 | | 0 0 1 | | 0 0 1 | | 0 0 1 | | 0 0 1 | | 0 0 0 | | 0 0 1 |\n // Translation after steps 1-4 above:\n var tx4 = scx * (1 - sx) - rcx;\n var ty4 = scy * (1 - sy) - rcy;\n matrix.setElements([\n cos * sx,\n sin * sx,\n -sin * sy,\n cos * sy,\n cos * tx4 - sin * ty4 + rcx + tx,\n sin * tx4 + cos * ty4 + rcy + ty,\n ]);\n return matrix;\n };\n Matrix.fromContext = function (ctx) {\n var domMatrix = ctx.getTransform();\n return new Matrix([domMatrix.a, domMatrix.b, domMatrix.c, domMatrix.d, domMatrix.e, domMatrix.f]);\n };\n Matrix.instance = new Matrix();\n return Matrix;\n}());\n\nvar ID_MAP = {};\nfunction createId$1(instance) {\n var _a;\n var constructor = instance.constructor;\n var className = Object.prototype.hasOwnProperty.call(constructor, 'className')\n ? constructor.className\n : constructor.name;\n if (!className) {\n throw new Error(\"The \" + constructor + \" is missing the 'className' property.\");\n }\n var nextId = ((_a = ID_MAP[className]) !== null && _a !== void 0 ? _a : 0) + 1;\n ID_MAP[className] = nextId;\n return className + '-' + nextId;\n}\n\nvar RedrawType;\n(function (RedrawType) {\n RedrawType[RedrawType[\"NONE\"] = 0] = \"NONE\";\n // Canvas doesn't need clearing, an incremental re-rerender is sufficient.\n RedrawType[RedrawType[\"TRIVIAL\"] = 1] = \"TRIVIAL\";\n // Group needs clearing, a semi-incremental re-render is sufficient.\n RedrawType[RedrawType[\"MINOR\"] = 2] = \"MINOR\";\n // Canvas needs to be cleared for these redraw types.\n RedrawType[RedrawType[\"MAJOR\"] = 3] = \"MAJOR\";\n})(RedrawType || (RedrawType = {}));\n/** @returns true if new Function() is disabled in the current execution context. */\nfunction functionConstructorAvailable() {\n try {\n new Function('return true');\n return true;\n }\n catch (e) {\n return false;\n }\n}\nvar STRING_FUNCTION_USEABLE = functionConstructorAvailable();\nfunction SceneChangeDetection(opts) {\n var _a = opts !== null && opts !== void 0 ? opts : {}, changeCb = _a.changeCb, convertor = _a.convertor;\n return function (target, key) {\n // `target` is either a constructor (static member) or prototype (instance member)\n var privateKey = \"__\" + key;\n if (target[key]) {\n return;\n }\n if (STRING_FUNCTION_USEABLE && changeCb == null && convertor == null) {\n prepareFastGetSet(target, key, privateKey, opts);\n }\n else {\n prepareSlowGetSet(target, key, privateKey, opts);\n }\n };\n}\nfunction prepareFastGetSet(target, key, privateKey, opts) {\n var _a = opts !== null && opts !== void 0 ? opts : {}, _b = _a.redraw, redraw = _b === void 0 ? RedrawType.TRIVIAL : _b, _c = _a.type, type = _c === void 0 ? 'normal' : _c, _d = _a.checkDirtyOnAssignment, checkDirtyOnAssignment = _d === void 0 ? false : _d;\n // Optimised code-path.\n // Remove all conditional logic from runtime - generate a setter with the exact necessary\n // steps, as these setters are called a LOT during update cycles.\n var setterJs = new Function('value', \"\\n const oldValue = this.\" + privateKey + \";\\n if (value !== oldValue) {\\n this.\" + privateKey + \" = value;\\n \" + (type === 'normal' ? \"this.markDirty(this, \" + redraw + \");\" : '') + \"\\n \" + (type === 'transform' ? \"this.markDirtyTransform(\" + redraw + \");\" : '') + \"\\n \" + (type === 'path'\n ? \"if (!this._dirtyPath) { this._dirtyPath = true; this.markDirty(this, \" + redraw + \"); }\"\n : '') + \"\\n \" + (type === 'font'\n ? \"if (!this._dirtyFont) { this._dirtyFont = true; this.markDirty(this, \" + redraw + \"); }\"\n : '') + \"\\n }\\n \" + (checkDirtyOnAssignment\n ? \"if (value != null && value._dirty > \" + RedrawType.NONE + \") { this.markDirty(value, value._dirty); }\"\n : '') + \"\\n\");\n var getterJs = new Function(\"return this.\" + privateKey + \";\");\n Object.defineProperty(target, key, {\n set: setterJs,\n get: getterJs,\n enumerable: true,\n configurable: true,\n });\n}\nfunction prepareSlowGetSet(target, key, privateKey, opts) {\n var _a = opts !== null && opts !== void 0 ? opts : {}, _b = _a.redraw, redraw = _b === void 0 ? RedrawType.TRIVIAL : _b, _c = _a.type, type = _c === void 0 ? 'normal' : _c, changeCb = _a.changeCb, convertor = _a.convertor, _d = _a.checkDirtyOnAssignment, checkDirtyOnAssignment = _d === void 0 ? false : _d;\n // Unoptimised but 'safe' code-path, for environments with CSP headers and no 'unsafe-eval'.\n // We deliberately do not support debug branches found in the optimised path above, since\n // for large data-set series performance deteriorates with every extra branch here.\n var setter = function (value) {\n var oldValue = this[privateKey];\n value = convertor ? convertor(value) : value;\n if (value !== oldValue) {\n this[privateKey] = value;\n if (type === 'normal')\n this.markDirty(this, redraw);\n if (type === 'transform')\n this.markDirtyTransform(redraw);\n if (type === 'path' && !this._dirtyPath) {\n this._dirtyPath = true;\n this.markDirty(this, redraw);\n }\n if (type === 'font' && !this._dirtyFont) {\n this._dirtyFont = true;\n this.markDirty(this, redraw);\n }\n if (changeCb)\n changeCb(this);\n }\n if (checkDirtyOnAssignment && value != null && value._dirty > RedrawType.NONE)\n this.markDirty(value, value._dirty);\n };\n var getter = function () {\n return this[privateKey];\n };\n Object.defineProperty(target, key, {\n set: setter,\n get: getter,\n enumerable: true,\n configurable: true,\n });\n}\nvar ChangeDetectable = /** @class */ (function () {\n function ChangeDetectable() {\n this._dirty = RedrawType.MAJOR;\n }\n ChangeDetectable.prototype.markDirty = function (_source, type) {\n if (type === void 0) { type = RedrawType.TRIVIAL; }\n if (this._dirty > type) {\n return;\n }\n this._dirty = type;\n };\n ChangeDetectable.prototype.markClean = function (_opts) {\n this._dirty = RedrawType.NONE;\n };\n ChangeDetectable.prototype.isDirty = function () {\n return this._dirty > RedrawType.NONE;\n };\n return ChangeDetectable;\n}());\n\nvar __extends$2M = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1Z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __values$N = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$18 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$H = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar PointerEvents;\n(function (PointerEvents) {\n PointerEvents[PointerEvents[\"All\"] = 0] = \"All\";\n PointerEvents[PointerEvents[\"None\"] = 1] = \"None\";\n})(PointerEvents || (PointerEvents = {}));\nvar zIndexChangedCallback = function (o) {\n if (o.parent) {\n o.parent.dirtyZIndex = true;\n }\n o.zIndexChanged();\n};\n/**\n * Abstract scene graph node.\n * Each node can have zero or one parent and belong to zero or one scene.\n */\nvar Node = /** @class */ (function (_super) {\n __extends$2M(Node, _super);\n function Node(_a) {\n var _b = _a === void 0 ? {} : _a, isVirtual = _b.isVirtual;\n var _this = _super.call(this) || this;\n /** Unique number to allow creation order to be easily determined. */\n _this.serialNumber = Node._nextSerialNumber++;\n /**\n * Unique node ID in the form `ClassName-NaturalNumber`.\n */\n _this.id = createId$1(_this);\n /**\n * Some number to identify this node, typically within a `Group` node.\n * Usually this will be some enum value used as a selector.\n */\n _this.tag = NaN;\n /**\n * To simplify the type system (especially in Selections) we don't have the `Parent` node\n * (one that has children). Instead, we mimic HTML DOM, where any node can have children.\n * But we still need to distinguish regular leaf nodes from container leafs somehow.\n */\n _this.isContainerNode = false;\n _this._virtualChildren = [];\n _this._children = [];\n // Used to check for duplicate nodes.\n _this.childSet = {}; // new Set()\n // These matrices may need to have package level visibility\n // for performance optimization purposes.\n _this.matrix = new Matrix();\n _this.inverseMatrix = new Matrix();\n _this.dirtyTransform = false;\n _this.scalingX = 1;\n _this.scalingY = 1;\n /**\n * The center of scaling.\n * The default value of `null` means the scaling center will be\n * determined automatically, as the center of the bounding box\n * of a node.\n */\n _this.scalingCenterX = null;\n _this.scalingCenterY = null;\n _this.rotationCenterX = null;\n _this.rotationCenterY = null;\n /**\n * Rotation angle in radians.\n * The value is set as is. No normalization to the [-180, 180) or [0, 360)\n * interval is performed.\n */\n _this.rotation = 0;\n _this.translationX = 0;\n _this.translationY = 0;\n _this.visible = true;\n _this.dirtyZIndex = false;\n _this.zIndex = 0;\n /** Discriminators for render order within a zIndex. */\n _this.zIndexSubOrder = undefined;\n _this.pointerEvents = PointerEvents.All;\n _this.isVirtual = isVirtual !== null && isVirtual !== void 0 ? isVirtual : false;\n return _this;\n }\n Object.defineProperty(Node.prototype, \"datum\", {\n /**\n * Some arbitrary data bound to the node.\n */\n get: function () {\n var _a;\n if (this._datum !== undefined) {\n return this._datum;\n }\n return (_a = this._parent) === null || _a === void 0 ? void 0 : _a.datum;\n },\n set: function (datum) {\n this._datum = datum;\n },\n enumerable: false,\n configurable: true\n });\n Node.prototype._setLayerManager = function (value) {\n var e_1, _a, e_2, _b;\n this._layerManager = value;\n this._debug = value === null || value === void 0 ? void 0 : value.debug;\n try {\n for (var _c = __values$N(this._children), _d = _c.next(); !_d.done; _d = _c.next()) {\n var child = _d.value;\n child._setLayerManager(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n try {\n for (var _e = __values$N(this._virtualChildren), _f = _e.next(); !_f.done; _f = _e.next()) {\n var child = _f.value;\n child._setLayerManager(value);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_2) throw e_2.error; }\n }\n };\n Object.defineProperty(Node.prototype, \"layerManager\", {\n get: function () {\n return this._layerManager;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"parent\", {\n get: function () {\n return this._parent;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"children\", {\n get: function () {\n var e_3, _a;\n if (this._virtualChildren.length === 0)\n return this._children;\n var result = __spreadArray$H([], __read$18(this._children));\n try {\n for (var _b = __values$N(this._virtualChildren), _c = _b.next(); !_c.done; _c = _b.next()) {\n var next = _c.value;\n result.push.apply(result, __spreadArray$H([], __read$18(next.children)));\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return result;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Node.prototype, \"virtualChildren\", {\n get: function () {\n return this._virtualChildren;\n },\n enumerable: false,\n configurable: true\n });\n Node.prototype.hasVirtualChildren = function () {\n return this._virtualChildren.length > 0;\n };\n /**\n * Appends one or more new node instances to this parent.\n * If one needs to:\n * - move a child to the end of the list of children\n * - move a child from one parent to another (including parents in other scenes)\n * one should use the {@link insertBefore} method instead.\n * @param nodes A node or nodes to append.\n */\n Node.prototype.append = function (nodes) {\n var e_4, _a;\n // Passing a single parameter to an open-ended version of `append`\n // would be 30-35% slower than this.\n if (!Array.isArray(nodes)) {\n nodes = [nodes];\n }\n try {\n for (var nodes_1 = __values$N(nodes), nodes_1_1 = nodes_1.next(); !nodes_1_1.done; nodes_1_1 = nodes_1.next()) {\n var node = nodes_1_1.value;\n if (node.parent) {\n throw new Error(node + \" already belongs to another parent: \" + node.parent + \".\");\n }\n if (node.layerManager) {\n throw new Error(node + \" already belongs to a scene: \" + node.layerManager + \".\");\n }\n if (this.childSet[node.id]) {\n // Cast to `any` to avoid `Property 'name' does not exist on type 'Function'`.\n throw new Error(\"Duplicate \" + node.constructor.name + \" node: \" + node);\n }\n if (node.isVirtual) {\n this._virtualChildren.push(node);\n }\n else {\n this._children.push(node);\n }\n this.childSet[node.id] = true;\n node._parent = this;\n node._setLayerManager(this.layerManager);\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (nodes_1_1 && !nodes_1_1.done && (_a = nodes_1.return)) _a.call(nodes_1);\n }\n finally { if (e_4) throw e_4.error; }\n }\n this.dirtyZIndex = true;\n this.markDirty(this, RedrawType.MAJOR);\n };\n Node.prototype.appendChild = function (node) {\n this.append(node);\n return node;\n };\n Node.prototype.removeChild = function (node) {\n var error = function () {\n throw new Error(\"The node to be removed is not a child of this node.\");\n };\n if (node.parent !== this) {\n error();\n }\n if (node.isVirtual) {\n var i = this._virtualChildren.indexOf(node);\n if (i < 0)\n error();\n this._virtualChildren.splice(i, 1);\n }\n else {\n var i = this._children.indexOf(node);\n if (i < 0)\n error();\n this._children.splice(i, 1);\n }\n delete this.childSet[node.id];\n node._parent = undefined;\n node._setLayerManager();\n this.dirtyZIndex = true;\n this.markDirty(node, RedrawType.MAJOR);\n return node;\n };\n Node.prototype.calculateCumulativeMatrix = function () {\n this.computeTransformMatrix();\n var matrix = Matrix.flyweight(this.matrix);\n var parent = this.parent;\n while (parent) {\n parent.computeTransformMatrix();\n matrix.preMultiplySelf(parent.matrix);\n parent = parent.parent;\n }\n return matrix;\n };\n Node.prototype.transformPoint = function (x, y) {\n var matrix = this.calculateCumulativeMatrix();\n return matrix.invertSelf().transformPoint(x, y);\n };\n Node.prototype.inverseTransformPoint = function (x, y) {\n var matrix = this.calculateCumulativeMatrix();\n return matrix.transformPoint(x, y);\n };\n Node.prototype.transformBBox = function (bbox) {\n var matrix = this.calculateCumulativeMatrix();\n return matrix.invertSelf().transformBBox(bbox);\n };\n Node.prototype.inverseTransformBBox = function (bbox) {\n var matrix = this.calculateCumulativeMatrix();\n return matrix.transformBBox(bbox);\n };\n Node.prototype.markDirtyTransform = function () {\n this.dirtyTransform = true;\n this.markDirty(this, RedrawType.MAJOR);\n };\n Node.prototype.containsPoint = function (_x, _y) {\n return false;\n };\n /**\n * Hit testing method.\n * Recursively checks if the given point is inside this node or any of its children.\n * Returns the first matching node or `undefined`.\n * Nodes that render later (show on top) are hit tested first.\n */\n Node.prototype.pickNode = function (x, y) {\n var _a;\n if (!this.visible || this.pointerEvents === PointerEvents.None || !this.containsPoint(x, y)) {\n return;\n }\n var children = this.children;\n if (children.length > 1000) {\n // Try to optimise which children to interrogate; BBox calculation is an approximation\n // for more complex shapes, so discarding items based on this will save a lot of\n // processing when the point is nowhere near the child.\n for (var i = children.length - 1; i >= 0; i--) {\n var child = children[i];\n var containsPoint = (_a = child.computeTransformedBBox()) === null || _a === void 0 ? void 0 : _a.containsPoint(x, y);\n var hit = containsPoint ? child.pickNode(x, y) : undefined;\n if (hit) {\n return hit;\n }\n }\n }\n else if (children.length) {\n // Nodes added later should be hit-tested first,\n // as they are rendered on top of the previously added nodes.\n for (var i = children.length - 1; i >= 0; i--) {\n var hit = children[i].pickNode(x, y);\n if (hit) {\n return hit;\n }\n }\n }\n else if (!this.isContainerNode) {\n // a leaf node, but not a container leaf\n return this;\n }\n };\n Node.prototype.findNodes = function (predicate) {\n var e_5, _a;\n var result = predicate(this) ? [this] : [];\n try {\n for (var _b = __values$N(this.children), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n var childResult = child.findNodes(predicate);\n if (childResult) {\n result.push.apply(result, __spreadArray$H([], __read$18(childResult)));\n }\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_5) throw e_5.error; }\n }\n return result;\n };\n Node.prototype.computeBBox = function () {\n return;\n };\n Node.prototype.computeTransformedBBox = function () {\n var bbox = this.computeBBox();\n if (!bbox) {\n return undefined;\n }\n this.computeTransformMatrix();\n var matrix = Matrix.flyweight(this.matrix);\n var parent = this.parent;\n while (parent) {\n parent.computeTransformMatrix();\n matrix.preMultiplySelf(parent.matrix);\n parent = parent.parent;\n }\n matrix.transformBBox(bbox, bbox);\n return bbox;\n };\n Node.prototype.computeTransformMatrix = function () {\n if (!this.dirtyTransform) {\n return;\n }\n var _a = this, matrix = _a.matrix, scalingX = _a.scalingX, scalingY = _a.scalingY, rotation = _a.rotation, translationX = _a.translationX, translationY = _a.translationY, scalingCenterX = _a.scalingCenterX, scalingCenterY = _a.scalingCenterY, rotationCenterX = _a.rotationCenterX, rotationCenterY = _a.rotationCenterY;\n Matrix.updateTransformMatrix(matrix, scalingX, scalingY, rotation, translationX, translationY, {\n scalingCenterX: scalingCenterX,\n scalingCenterY: scalingCenterY,\n rotationCenterX: rotationCenterX,\n rotationCenterY: rotationCenterY,\n });\n matrix.inverseTo(this.inverseMatrix);\n this.dirtyTransform = false;\n };\n Node.prototype.render = function (renderCtx) {\n var stats = renderCtx.stats;\n this._dirty = RedrawType.NONE;\n if (stats)\n stats.nodesRendered++;\n };\n Node.prototype.clearBBox = function (ctx) {\n var bbox = this.computeBBox();\n if (bbox == null) {\n return;\n }\n var x = bbox.x, y = bbox.y, width = bbox.width, height = bbox.height;\n var topLeft = this.transformPoint(x, y);\n var bottomRight = this.transformPoint(x + width, y + height);\n ctx.clearRect(topLeft.x, topLeft.y, bottomRight.x - topLeft.x, bottomRight.y - topLeft.y);\n };\n Node.prototype.markDirty = function (_source, type, parentType) {\n if (type === void 0) { type = RedrawType.TRIVIAL; }\n if (parentType === void 0) { parentType = type; }\n if (this._dirty > type) {\n return;\n }\n if (this._dirty === type && type === parentType) {\n return;\n }\n this._dirty = type;\n if (this.parent) {\n this.parent.markDirty(this, parentType);\n }\n else if (this.layerManager) {\n this.layerManager.markDirty();\n }\n };\n Object.defineProperty(Node.prototype, \"dirty\", {\n get: function () {\n return this._dirty;\n },\n enumerable: false,\n configurable: true\n });\n Node.prototype.markClean = function (opts) {\n var e_6, _a, e_7, _b;\n var _c = opts !== null && opts !== void 0 ? opts : {}, _d = _c.force, force = _d === void 0 ? false : _d, _e = _c.recursive, recursive = _e === void 0 ? true : _e;\n if (this._dirty === RedrawType.NONE && !force) {\n return;\n }\n this._dirty = RedrawType.NONE;\n if (recursive !== false) {\n try {\n for (var _f = __values$N(this._virtualChildren), _g = _f.next(); !_g.done; _g = _f.next()) {\n var child = _g.value;\n child.markClean({ force: force });\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_g && !_g.done && (_a = _f.return)) _a.call(_f);\n }\n finally { if (e_6) throw e_6.error; }\n }\n }\n if (recursive === true) {\n try {\n for (var _h = __values$N(this._children), _j = _h.next(); !_j.done; _j = _h.next()) {\n var child = _j.value;\n child.markClean({ force: force });\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (_j && !_j.done && (_b = _h.return)) _b.call(_h);\n }\n finally { if (e_7) throw e_7.error; }\n }\n }\n };\n Node.prototype.visibilityChanged = function () {\n // Override point for sub-classes to react to visibility changes.\n };\n Object.defineProperty(Node.prototype, \"nodeCount\", {\n get: function () {\n var e_8, _a, e_9, _b;\n var count = 1;\n var dirtyCount = this._dirty >= RedrawType.NONE || this.dirtyTransform ? 1 : 0;\n var visibleCount = this.visible ? 1 : 0;\n var countChild = function (child) {\n var _a = child.nodeCount, childCount = _a.count, childVisibleCount = _a.visibleCount, childDirtyCount = _a.dirtyCount;\n count += childCount;\n visibleCount += childVisibleCount;\n dirtyCount += childDirtyCount;\n };\n try {\n for (var _c = __values$N(this._children), _d = _c.next(); !_d.done; _d = _c.next()) {\n var child = _d.value;\n countChild(child);\n }\n }\n catch (e_8_1) { e_8 = { error: e_8_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_8) throw e_8.error; }\n }\n try {\n for (var _e = __values$N(this._virtualChildren), _f = _e.next(); !_f.done; _f = _e.next()) {\n var child = _f.value;\n countChild(child);\n }\n }\n catch (e_9_1) { e_9 = { error: e_9_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_9) throw e_9.error; }\n }\n return { count: count, visibleCount: visibleCount, dirtyCount: dirtyCount };\n },\n enumerable: false,\n configurable: true\n });\n Node.prototype.zIndexChanged = function () {\n // Override point for sub-classes.\n };\n Node._nextSerialNumber = 0;\n __decorate$1Z([\n SceneChangeDetection({ type: 'transform' })\n ], Node.prototype, \"scalingX\", void 0);\n __decorate$1Z([\n SceneChangeDetection({ type: 'transform' })\n ], Node.prototype, \"scalingY\", void 0);\n __decorate$1Z([\n SceneChangeDetection({ type: 'transform' })\n ], Node.prototype, \"scalingCenterX\", void 0);\n __decorate$1Z([\n SceneChangeDetection({ type: 'transform' })\n ], Node.prototype, \"scalingCenterY\", void 0);\n __decorate$1Z([\n SceneChangeDetection({ type: 'transform' })\n ], Node.prototype, \"rotationCenterX\", void 0);\n __decorate$1Z([\n SceneChangeDetection({ type: 'transform' })\n ], Node.prototype, \"rotationCenterY\", void 0);\n __decorate$1Z([\n SceneChangeDetection({ type: 'transform' })\n ], Node.prototype, \"rotation\", void 0);\n __decorate$1Z([\n SceneChangeDetection({ type: 'transform' })\n ], Node.prototype, \"translationX\", void 0);\n __decorate$1Z([\n SceneChangeDetection({ type: 'transform' })\n ], Node.prototype, \"translationY\", void 0);\n __decorate$1Z([\n SceneChangeDetection({ redraw: RedrawType.MAJOR, changeCb: function (o) { return o.visibilityChanged(); } })\n ], Node.prototype, \"visible\", void 0);\n __decorate$1Z([\n SceneChangeDetection({\n redraw: RedrawType.TRIVIAL,\n changeCb: zIndexChangedCallback,\n })\n ], Node.prototype, \"zIndex\", void 0);\n __decorate$1Z([\n SceneChangeDetection({\n redraw: RedrawType.TRIVIAL,\n changeCb: zIndexChangedCallback,\n })\n ], Node.prototype, \"zIndexSubOrder\", void 0);\n return Node;\n}(ChangeDetectable));\n\nfunction ascendingStringNumberUndefined(a, b) {\n var diff = 0;\n if (typeof a === 'number' && typeof b === 'number') {\n diff = a - b;\n }\n else if (typeof a === 'string' && typeof b === 'string') {\n diff = a.localeCompare(b);\n }\n else if (a == null && b == null) ;\n else if (a == null) {\n diff = -1;\n }\n else if (b == null) {\n diff = 1;\n }\n else {\n diff = String(a).localeCompare(String(b));\n }\n return diff;\n}\nfunction compoundAscending(a, b, comparator) {\n var toLiteral = function (v) {\n if (typeof v === 'function') {\n return v();\n }\n return v;\n };\n for (var idx in a) {\n var diff = comparator(toLiteral(a[idx]), toLiteral(b[idx]));\n if (diff !== 0) {\n return diff;\n }\n }\n return 0;\n}\n\nvar doOnceFlags$1 = {};\n/**\n * If the key was passed before, then doesn't execute the func\n */\nfunction doOnce$1(func, key) {\n if (doOnceFlags$1[key]) {\n return;\n }\n func();\n doOnceFlags$1[key] = true;\n}\n\nvar __read$17 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$G = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar Logger = {\n debug: function () {\n var logContent = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n logContent[_i] = arguments[_i];\n }\n console.log.apply(console, __spreadArray$G([], __read$17(logContent)));\n },\n warn: function (message) {\n var logContent = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n logContent[_i - 1] = arguments[_i];\n }\n console.warn.apply(console, __spreadArray$G([\"AG Charts - \" + message], __read$17(logContent)));\n },\n error: function (message) {\n var logContent = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n logContent[_i - 1] = arguments[_i];\n }\n if (typeof message === 'object') {\n console.error.apply(console, __spreadArray$G([\"AG Charts error\", message], __read$17(logContent)));\n }\n else {\n console.error.apply(console, __spreadArray$G([\"AG Charts - \" + message], __read$17(logContent)));\n }\n },\n warnOnce: function (message) {\n var logContent = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n logContent[_i - 1] = arguments[_i];\n }\n doOnce$1(function () { return Logger.warn.apply(Logger, __spreadArray$G([message], __read$17(logContent))); }, \"Logger.warn: \" + message);\n },\n errorOnce: function (message) {\n var logContent = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n logContent[_i - 1] = arguments[_i];\n }\n doOnce$1(function () { return Logger.error.apply(Logger, __spreadArray$G([message], __read$17(logContent))); }, \"Logger.warn: \" + message);\n },\n};\n\nvar __extends$2L = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$V = (undefined && undefined.__assign) || function () {\n __assign$V = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$V.apply(this, arguments);\n};\nvar __decorate$1Y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __values$M = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$16 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$F = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar Group = /** @class */ (function (_super) {\n __extends$2L(Group, _super);\n function Group(opts) {\n var _a;\n var _this = _super.call(this, { isVirtual: opts === null || opts === void 0 ? void 0 : opts.isVirtual }) || this;\n _this.opts = opts;\n _this.opacity = 1;\n _this.lastBBox = undefined;\n var _b = opts !== null && opts !== void 0 ? opts : {}, zIndex = _b.zIndex, zIndexSubOrder = _b.zIndexSubOrder;\n _this.isContainerNode = true;\n if (zIndex !== undefined) {\n _this.zIndex = zIndex;\n }\n if (zIndexSubOrder !== undefined) {\n _this.zIndexSubOrder = zIndexSubOrder;\n }\n _this.name = (_a = _this.opts) === null || _a === void 0 ? void 0 : _a.name;\n return _this;\n }\n Group.prototype.zIndexChanged = function () {\n var _a;\n if (this.layer) {\n (_a = this._layerManager) === null || _a === void 0 ? void 0 : _a.moveLayer(this.layer, this.zIndex, this.zIndexSubOrder);\n }\n };\n Group.prototype.isLayer = function () {\n return this.layer != null;\n };\n Group.prototype._setLayerManager = function (scene) {\n var _this = this;\n var _a, _b;\n if (this._layerManager && this.layer) {\n this._layerManager.removeLayer(this.layer);\n this.layer = undefined;\n }\n if (this.layer) {\n throw new Error('AG Charts - unable to deregister scene rendering layer!');\n }\n _super.prototype._setLayerManager.call(this, scene);\n if (scene && ((_a = this.opts) === null || _a === void 0 ? void 0 : _a.layer)) {\n var _c = (_b = this.opts) !== null && _b !== void 0 ? _b : {}, zIndex = _c.zIndex, zIndexSubOrder = _c.zIndexSubOrder, name_1 = _c.name;\n var getComputedOpacity = function () { return _this.getComputedOpacity(); };\n var getVisibility = function () { return _this.getVisibility(); };\n this.layer = scene.addLayer({ zIndex: zIndex, zIndexSubOrder: zIndexSubOrder, name: name_1, getComputedOpacity: getComputedOpacity, getVisibility: getVisibility });\n }\n };\n Group.prototype.getComputedOpacity = function () {\n var opacity = 1;\n var node = this;\n do {\n if (node instanceof Group) {\n opacity *= node.opacity;\n }\n } while ((node = node.parent));\n return opacity;\n };\n Group.prototype.getVisibility = function () {\n var node = this;\n var visible = this.visible;\n while ((node = node.parent)) {\n if (node.visible) {\n continue;\n }\n visible = node.visible;\n }\n return visible;\n };\n Group.prototype.visibilityChanged = function () {\n if (this.layer) {\n this.layer.enabled = this.visible;\n }\n };\n Group.prototype.markDirty = function (source, type) {\n if (type === void 0) { type = RedrawType.TRIVIAL; }\n if (this.isVirtual) {\n // Always percolate directly for virtual nodes - they don't exist for rendering purposes.\n _super.prototype.markDirty.call(this, source, type);\n return;\n }\n // Downgrade dirty-ness percolated to parent in special cases.\n var parentType = type;\n if (type < RedrawType.MINOR) {\n parentType = RedrawType.TRIVIAL;\n }\n else if (this.layer != null) {\n parentType = RedrawType.TRIVIAL;\n }\n _super.prototype.markDirty.call(this, source, type, parentType);\n };\n // We consider a group to be boundless, thus any point belongs to it.\n Group.prototype.containsPoint = function (_x, _y) {\n return true;\n };\n Group.prototype.computeBBox = function () {\n this.computeTransformMatrix();\n return Group.computeBBox(this.children);\n };\n Group.prototype.computeTransformedBBox = function () {\n return this.computeBBox();\n };\n Group.prototype.render = function (renderCtx) {\n var e_1, _a, e_2, _b, e_3, _c;\n var _d, _e;\n var _f = this.opts, _g = _f === void 0 ? {} : _f, _h = _g.name, name = _h === void 0 ? undefined : _h;\n var _j = this._debug, _k = _j === void 0 ? {} : _j, _l = _k.consoleLog, consoleLog = _l === void 0 ? false : _l;\n var _m = this, dirty = _m.dirty, dirtyZIndex = _m.dirtyZIndex, layer = _m.layer, children = _m.children, clipRect = _m.clipRect, dirtyTransform = _m.dirtyTransform;\n var ctx = renderCtx.ctx, forceRender = renderCtx.forceRender, clipBBox = renderCtx.clipBBox;\n var resized = renderCtx.resized, stats = renderCtx.stats;\n var canvasCtxTransform = ctx.getTransform();\n var isDirty = dirty >= RedrawType.MINOR || dirtyZIndex || resized;\n var isChildDirty = isDirty;\n var isChildLayerDirty = false;\n try {\n for (var children_1 = __values$M(children), children_1_1 = children_1.next(); !children_1_1.done; children_1_1 = children_1.next()) {\n var child = children_1_1.value;\n isChildDirty || (isChildDirty = child.layerManager == null && child.dirty >= RedrawType.TRIVIAL);\n isChildLayerDirty || (isChildLayerDirty = child.layerManager != null && child.dirty >= RedrawType.TRIVIAL);\n if (isChildDirty) {\n break;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (children_1_1 && !children_1_1.done && (_a = children_1.return)) _a.call(children_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (name && consoleLog) {\n Logger.debug({ name: name, group: this, isDirty: isDirty, isChildDirty: isChildDirty, dirtyTransform: dirtyTransform, renderCtx: renderCtx, forceRender: forceRender });\n }\n if (dirtyTransform) {\n forceRender = 'dirtyTransform';\n }\n else if (layer) {\n // If bounding-box of a layer changes, force re-render.\n var currentBBox = this.computeBBox();\n if (this.lastBBox === undefined || !this.lastBBox.equals(currentBBox)) {\n forceRender = 'dirtyTransform';\n this.lastBBox = currentBBox;\n }\n }\n if (!isDirty && !isChildDirty && !isChildLayerDirty && !forceRender) {\n if (name && consoleLog && stats) {\n var counts = this.nodeCount;\n Logger.debug({ name: name, result: 'skipping', renderCtx: renderCtx, counts: counts, group: this });\n }\n if (layer && stats) {\n stats.layersSkipped++;\n stats.nodesSkipped += this.nodeCount.count;\n }\n this.markClean({ recursive: false });\n // Nothing to do.\n return;\n }\n var groupVisible = this.visible;\n if (layer) {\n // Switch context to the canvas layer we use for this group.\n ctx = layer.context;\n ctx.save();\n ctx.resetTransform();\n if (forceRender !== 'dirtyTransform') {\n forceRender = isChildDirty || dirtyZIndex;\n }\n if (forceRender)\n layer.clear();\n if (clipBBox) {\n // clipBBox is in the canvas coordinate space, when we hit a layer we apply the new clipping at which point there are no transforms in play\n var width = clipBBox.width, height = clipBBox.height, x = clipBBox.x, y = clipBBox.y;\n if (consoleLog) {\n Logger.debug({ name: name, clipBBox: clipBBox, ctxTransform: ctx.getTransform(), renderCtx: renderCtx, group: this });\n }\n this.clipCtx(ctx, x, y, width, height);\n }\n ctx.setTransform(canvasCtxTransform);\n }\n else {\n // Only apply opacity if this isn't a distinct layer - opacity will be applied\n // at composition time.\n ctx.globalAlpha *= this.opacity;\n }\n // A group can have `scaling`, `rotation`, `translation` properties\n // that are applied to the canvas context before children are rendered,\n // so all children can be transformed at once.\n this.computeTransformMatrix();\n this.matrix.toContext(ctx);\n if (clipRect) {\n // clipRect is in the group's coordinate space\n var x = clipRect.x, y = clipRect.y, width = clipRect.width, height = clipRect.height;\n ctx.save();\n if (consoleLog) {\n Logger.debug({ name: name, clipRect: clipRect, ctxTransform: ctx.getTransform(), renderCtx: renderCtx, group: this });\n }\n this.clipCtx(ctx, x, y, width, height);\n // clipBBox is in the canvas coordinate space, when we hit a layer we apply the new clipping at which point there are no transforms in play\n clipBBox = this.matrix.transformBBox(clipRect);\n }\n var hasVirtualChildren = this.hasVirtualChildren();\n if (dirtyZIndex) {\n this.sortChildren(children);\n if (forceRender !== 'dirtyTransform')\n forceRender = true;\n }\n else if (hasVirtualChildren) {\n this.sortChildren(children);\n }\n // Reduce churn if renderCtx is identical.\n var renderContextChanged = forceRender !== renderCtx.forceRender || clipBBox !== renderCtx.clipBBox || ctx !== renderCtx.ctx;\n var childRenderContext = renderContextChanged ? __assign$V(__assign$V({}, renderCtx), { ctx: ctx, forceRender: forceRender, clipBBox: clipBBox }) : renderCtx;\n // Render visible children.\n var skipped = 0;\n try {\n for (var children_2 = __values$M(children), children_2_1 = children_2.next(); !children_2_1.done; children_2_1 = children_2.next()) {\n var child = children_2_1.value;\n if (!child.visible || !groupVisible) {\n // Skip invisible children, but make sure their dirty flag is reset.\n child.markClean();\n if (stats)\n skipped += child.nodeCount.count;\n continue;\n }\n if (!forceRender && child.dirty === RedrawType.NONE) {\n // Skip children that don't need to be redrawn.\n if (stats)\n skipped += child.nodeCount.count;\n continue;\n }\n // Render marks this node (and children) as clean - no need to explicitly markClean().\n ctx.save();\n child.render(childRenderContext);\n ctx.restore();\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (children_2_1 && !children_2_1.done && (_b = children_2.return)) _b.call(children_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (stats)\n stats.nodesSkipped += skipped;\n // Render marks this node as clean - no need to explicitly markClean().\n _super.prototype.render.call(this, renderCtx);\n if (clipRect) {\n ctx.restore();\n }\n if (hasVirtualChildren) {\n try {\n // Mark virtual nodes as clean and their virtual children - all other nodes have already\n // been visited and marked clean.\n for (var _o = __values$M(this.virtualChildren), _p = _o.next(); !_p.done; _p = _o.next()) {\n var child = _p.value;\n child.markClean({ recursive: 'virtual' });\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_p && !_p.done && (_c = _o.return)) _c.call(_o);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }\n if (layer) {\n if (stats)\n stats.layersRendered++;\n ctx.restore();\n if (forceRender)\n layer.snapshot();\n // Check for save/restore depth of zero!\n (_e = (_d = layer.context).verifyDepthZero) === null || _e === void 0 ? void 0 : _e.call(_d);\n }\n if (name && consoleLog && stats) {\n var counts = this.nodeCount;\n Logger.debug({ name: name, result: 'rendered', skipped: skipped, renderCtx: renderCtx, counts: counts, group: this });\n }\n };\n Group.prototype.sortChildren = function (children) {\n this.dirtyZIndex = false;\n children.sort(function (a, b) {\n var _a, _b;\n return compoundAscending(__spreadArray$F(__spreadArray$F([a.zIndex], __read$16(((_a = a.zIndexSubOrder) !== null && _a !== void 0 ? _a : [undefined, undefined]))), [a.serialNumber]), __spreadArray$F(__spreadArray$F([b.zIndex], __read$16(((_b = b.zIndexSubOrder) !== null && _b !== void 0 ? _b : [undefined, undefined]))), [b.serialNumber]), ascendingStringNumberUndefined);\n });\n };\n Group.prototype.clipCtx = function (ctx, x, y, width, height) {\n ctx.beginPath();\n ctx.moveTo(x, y);\n ctx.lineTo(x + width, y);\n ctx.lineTo(x + width, y + height);\n ctx.lineTo(x, y + height);\n ctx.closePath();\n ctx.clip();\n };\n Group.computeBBox = function (nodes) {\n var left = Infinity;\n var right = -Infinity;\n var top = Infinity;\n var bottom = -Infinity;\n nodes.forEach(function (n) {\n if (!n.visible) {\n return;\n }\n var bbox = n.computeTransformedBBox();\n if (!bbox) {\n return;\n }\n var x = bbox.x;\n var y = bbox.y;\n if (x < left) {\n left = x;\n }\n if (y < top) {\n top = y;\n }\n if (x + bbox.width > right) {\n right = x + bbox.width;\n }\n if (y + bbox.height > bottom) {\n bottom = y + bbox.height;\n }\n });\n return new BBox(left, top, right - left, bottom - top);\n };\n /**\n * Transforms bbox given in the canvas coordinate space to bbox in this group's coordinate space and\n * sets this group's clipRect to the transformed bbox.\n * @param bbox clipRect bbox in the canvas coordinate space.\n */\n Group.prototype.setClipRectInGroupCoordinateSpace = function (bbox) {\n this.clipRect = bbox ? this.transformBBox(bbox) : undefined;\n };\n Group.className = 'Group';\n __decorate$1Y([\n SceneChangeDetection({\n redraw: RedrawType.MAJOR,\n convertor: function (v) { return Math.min(1, Math.max(0, v)); },\n })\n ], Group.prototype, \"opacity\", void 0);\n return Group;\n}(Node));\n\n/**\n * Wraps a native OffscreenCanvas and overrides its OffscreenCanvasRenderingContext2D to\n * provide resolution independent rendering based on `window.devicePixelRatio`.\n */\nvar HdpiOffscreenCanvas = /** @class */ (function () {\n // The width/height attributes of the Canvas element default to\n // 300/150 according to w3.org.\n function HdpiOffscreenCanvas(_a) {\n var _b = _a.width, width = _b === void 0 ? 600 : _b, _c = _a.height, height = _c === void 0 ? 300 : _c, _d = _a.overrideDevicePixelRatio, overrideDevicePixelRatio = _d === void 0 ? undefined : _d;\n this.enabled = true;\n // `NaN` is deliberate here, so that overrides are always applied\n // and the `resetTransform` inside the `resize` method works in IE11.\n this._pixelRatio = NaN;\n this._width = 0;\n this._height = 0;\n this.canvas = new OffscreenCanvas(width, height);\n this.context = this.canvas.getContext('2d');\n this.imageSource = this.canvas.transferToImageBitmap();\n this.setPixelRatio(overrideDevicePixelRatio);\n this.resize(width, height);\n }\n HdpiOffscreenCanvas.isSupported = function () {\n return window['OffscreenCanvas'] != null;\n };\n HdpiOffscreenCanvas.prototype.snapshot = function () {\n this.imageSource.close();\n this.imageSource = this.canvas.transferToImageBitmap();\n };\n HdpiOffscreenCanvas.prototype.destroy = function () {\n this.imageSource.close();\n // Workaround memory allocation quirks in iOS Safari by resizing to 0x0 and clearing.\n // See https://bugs.webkit.org/show_bug.cgi?id=195325.\n this.canvas.width = 0;\n this.canvas.height = 0;\n this.context.clearRect(0, 0, 0, 0);\n };\n HdpiOffscreenCanvas.prototype.clear = function () {\n this.context.save();\n this.context.resetTransform();\n this.context.clearRect(0, 0, this.width, this.height);\n this.context.restore();\n };\n Object.defineProperty(HdpiOffscreenCanvas.prototype, \"pixelRatio\", {\n get: function () {\n return this._pixelRatio;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Changes the pixel ratio of the Canvas element to the given value,\n * or uses the window.devicePixelRatio (default), then resizes the Canvas\n * element accordingly (default).\n */\n HdpiOffscreenCanvas.prototype.setPixelRatio = function (ratio) {\n var pixelRatio = ratio !== null && ratio !== void 0 ? ratio : window.devicePixelRatio;\n if (!isDesktop()) {\n // Mobile browsers have stricter memory limits, we reduce rendering resolution to\n // improve stability on mobile browsers. iOS Safari 12->16 are pain-points since they\n // have memory allocation quirks - see https://bugs.webkit.org/show_bug.cgi?id=195325.\n pixelRatio = 1;\n }\n HdpiCanvas.overrideScale(this.context, pixelRatio);\n this._pixelRatio = pixelRatio;\n };\n Object.defineProperty(HdpiOffscreenCanvas.prototype, \"width\", {\n get: function () {\n return this._width;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(HdpiOffscreenCanvas.prototype, \"height\", {\n get: function () {\n return this._height;\n },\n enumerable: false,\n configurable: true\n });\n HdpiOffscreenCanvas.prototype.resize = function (width, height) {\n if (!(width > 0 && height > 0)) {\n return;\n }\n var _a = this, canvas = _a.canvas, context = _a.context, pixelRatio = _a.pixelRatio;\n canvas.width = Math.round(width * pixelRatio);\n canvas.height = Math.round(height * pixelRatio);\n context.resetTransform();\n this._width = width;\n this._height = height;\n };\n return HdpiOffscreenCanvas;\n}());\n\nfunction windowValue(name) {\n /**\n * Redeclaration of window that is safe for use with Gatsby server-side (webpack) compilation.\n */\n var WINDOW = typeof window !== 'undefined'\n ? window\n : // typeof global !== 'undefined' ? (global as any) :\n undefined;\n return WINDOW === null || WINDOW === void 0 ? void 0 : WINDOW[name];\n}\n\nvar SceneDebugLevel;\n(function (SceneDebugLevel) {\n SceneDebugLevel[SceneDebugLevel[\"SUMMARY\"] = 0] = \"SUMMARY\";\n SceneDebugLevel[SceneDebugLevel[\"DETAILED\"] = 1] = \"DETAILED\";\n})(SceneDebugLevel || (SceneDebugLevel = {}));\n\nvar __assign$U = (undefined && undefined.__assign) || function () {\n __assign$U = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$U.apply(this, arguments);\n};\nvar __awaiter$g = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$g = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read$15 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$E = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar __values$L = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nfunction buildSceneNodeHighlight() {\n var _a;\n var config = (_a = windowValue('agChartsSceneDebug')) !== null && _a !== void 0 ? _a : [];\n if (typeof config === 'string') {\n config = [config];\n }\n var result = [];\n config.forEach(function (name) {\n if (name === 'layout') {\n result.push('seriesRoot', 'legend', 'root', /.*Axis-\\d+-axis.*/);\n }\n else {\n result.push(name);\n }\n });\n return result;\n}\nvar Scene = /** @class */ (function () {\n function Scene(opts) {\n var _a, _b, _c;\n this.id = createId$1(this);\n this.layers = [];\n this._nextZIndex = 0;\n this._nextLayerId = 0;\n this._dirty = false;\n this._root = null;\n this.debug = {\n dirtyTree: false,\n stats: false,\n renderBoundingBoxes: false,\n consoleLog: false,\n level: SceneDebugLevel.SUMMARY,\n sceneNodeHighlight: [],\n };\n var _d = opts.document, document = _d === void 0 ? window.document : _d, _e = opts.mode, mode = _e === void 0 ? (_a = windowValue('agChartsSceneRenderModel')) !== null && _a !== void 0 ? _a : 'adv-composite' : _e, width = opts.width, height = opts.height, _f = opts.overrideDevicePixelRatio, overrideDevicePixelRatio = _f === void 0 ? undefined : _f;\n this.overrideDevicePixelRatio = overrideDevicePixelRatio;\n this.opts = { document: document, mode: mode };\n this.debug.consoleLog = [true, 'scene'].includes(windowValue('agChartsDebug'));\n this.debug.level = ['scene'].includes(windowValue('agChartsDebug'))\n ? SceneDebugLevel.DETAILED\n : SceneDebugLevel.SUMMARY;\n this.debug.stats = (_b = windowValue('agChartsSceneStats')) !== null && _b !== void 0 ? _b : false;\n this.debug.dirtyTree = (_c = windowValue('agChartsSceneDirtyTree')) !== null && _c !== void 0 ? _c : false;\n this.debug.sceneNodeHighlight = buildSceneNodeHighlight();\n this.canvas = new HdpiCanvas({ document: document, width: width, height: height, overrideDevicePixelRatio: overrideDevicePixelRatio });\n }\n Object.defineProperty(Scene.prototype, \"container\", {\n get: function () {\n return this.canvas.container;\n },\n set: function (value) {\n this.canvas.container = value;\n },\n enumerable: false,\n configurable: true\n });\n Scene.prototype.download = function (fileName, fileFormat) {\n this.canvas.download(fileName, fileFormat);\n };\n Scene.prototype.getDataURL = function (type) {\n return this.canvas.getDataURL(type);\n };\n Object.defineProperty(Scene.prototype, \"width\", {\n get: function () {\n return this.pendingSize ? this.pendingSize[0] : this.canvas.width;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Scene.prototype, \"height\", {\n get: function () {\n return this.pendingSize ? this.pendingSize[1] : this.canvas.height;\n },\n enumerable: false,\n configurable: true\n });\n Scene.prototype.resize = function (width, height) {\n width = Math.round(width);\n height = Math.round(height);\n // HdpiCanvas doesn't allow width/height <= 0.\n var lessThanZero = width <= 0 || height <= 0;\n var nan = isNaN(width) || isNaN(height);\n var unchanged = width === this.width && height === this.height;\n if (unchanged || nan || lessThanZero) {\n return false;\n }\n this.pendingSize = [width, height];\n this.markDirty();\n return true;\n };\n Scene.prototype.addLayer = function (opts) {\n var _a;\n var mode = this.opts.mode;\n var layeredModes = ['composite', 'dom-composite', 'adv-composite'];\n if (!layeredModes.includes(mode)) {\n return undefined;\n }\n var _b = opts.zIndex, zIndex = _b === void 0 ? this._nextZIndex++ : _b, name = opts.name, zIndexSubOrder = opts.zIndexSubOrder, getComputedOpacity = opts.getComputedOpacity, getVisibility = opts.getVisibility;\n var _c = this, width = _c.width, height = _c.height, overrideDevicePixelRatio = _c.overrideDevicePixelRatio;\n var domLayer = mode === 'dom-composite';\n var advLayer = mode === 'adv-composite';\n var canvas = !advLayer || !HdpiOffscreenCanvas.isSupported()\n ? new HdpiCanvas({\n document: this.opts.document,\n width: width,\n height: height,\n domLayer: domLayer,\n zIndex: zIndex,\n name: name,\n overrideDevicePixelRatio: overrideDevicePixelRatio,\n })\n : new HdpiOffscreenCanvas({\n width: width,\n height: height,\n overrideDevicePixelRatio: overrideDevicePixelRatio,\n });\n var newLayer = {\n id: this._nextLayerId++,\n name: name,\n zIndex: zIndex,\n zIndexSubOrder: zIndexSubOrder,\n canvas: canvas,\n getComputedOpacity: getComputedOpacity,\n getVisibility: getVisibility,\n };\n if (zIndex >= this._nextZIndex) {\n this._nextZIndex = zIndex + 1;\n }\n this.layers.push(newLayer);\n this.sortLayers();\n if (domLayer) {\n var domCanvases = this.layers\n .map(function (v) { return v.canvas; })\n .filter(function (v) { return v instanceof HdpiCanvas; });\n var newLayerIndex = domCanvases.findIndex(function (v) { return v === canvas; });\n var lastLayer = (_a = domCanvases[newLayerIndex - 1]) !== null && _a !== void 0 ? _a : this.canvas;\n lastLayer.element.insertAdjacentElement('afterend', canvas.element);\n }\n if (this.debug.consoleLog) {\n Logger.debug('Scene.addLayer() - layers', this.layers);\n }\n return newLayer.canvas;\n };\n Scene.prototype.removeLayer = function (canvas) {\n var index = this.layers.findIndex(function (l) { return l.canvas === canvas; });\n if (index >= 0) {\n this.layers.splice(index, 1);\n canvas.destroy();\n this.markDirty();\n if (this.debug.consoleLog) {\n Logger.debug('Scene.removeLayer() - layers', this.layers);\n }\n }\n };\n Scene.prototype.moveLayer = function (canvas, newZIndex, newZIndexSubOrder) {\n var layer = this.layers.find(function (l) { return l.canvas === canvas; });\n if (layer) {\n layer.zIndex = newZIndex;\n layer.zIndexSubOrder = newZIndexSubOrder;\n this.sortLayers();\n this.markDirty();\n if (this.debug.consoleLog) {\n Logger.debug('Scene.moveLayer() - layers', this.layers);\n }\n }\n };\n Scene.prototype.sortLayers = function () {\n this.layers.sort(function (a, b) {\n var _a, _b;\n return compoundAscending(__spreadArray$E(__spreadArray$E([a.zIndex], __read$15(((_a = a.zIndexSubOrder) !== null && _a !== void 0 ? _a : [undefined, undefined]))), [a.id]), __spreadArray$E(__spreadArray$E([b.zIndex], __read$15(((_b = b.zIndexSubOrder) !== null && _b !== void 0 ? _b : [undefined, undefined]))), [b.id]), ascendingStringNumberUndefined);\n });\n };\n Scene.prototype.markDirty = function () {\n this._dirty = true;\n };\n Object.defineProperty(Scene.prototype, \"dirty\", {\n get: function () {\n return this._dirty;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Scene.prototype, \"root\", {\n get: function () {\n return this._root;\n },\n set: function (node) {\n var _this = this;\n if (node === this._root) {\n return;\n }\n if (this._root) {\n this._root._setLayerManager();\n }\n this._root = node;\n if (node) {\n // If `node` is the root node of another scene ...\n if (node.parent === null && node.layerManager && node.layerManager !== this) {\n node.layerManager.root = null;\n }\n node._setLayerManager({\n addLayer: function (opts) { return _this.addLayer(opts); },\n moveLayer: function () {\n var opts = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n opts[_i] = arguments[_i];\n }\n return _this.moveLayer.apply(_this, __spreadArray$E([], __read$15(opts)));\n },\n removeLayer: function () {\n var opts = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n opts[_i] = arguments[_i];\n }\n return _this.removeLayer.apply(_this, __spreadArray$E([], __read$15(opts)));\n },\n markDirty: function () { return _this.markDirty(); },\n canvas: this.canvas,\n debug: __assign$U(__assign$U({}, this.debug), { consoleLog: this.debug.level >= SceneDebugLevel.DETAILED }),\n });\n }\n this.markDirty();\n },\n enumerable: false,\n configurable: true\n });\n /** Alternative to destroy() that preserves re-usable resources. */\n Scene.prototype.strip = function () {\n var e_1, _a;\n var layers = this.layers;\n try {\n for (var layers_1 = __values$L(layers), layers_1_1 = layers_1.next(); !layers_1_1.done; layers_1_1 = layers_1.next()) {\n var layer = layers_1_1.value;\n layer.canvas.destroy();\n delete layer['canvas'];\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (layers_1_1 && !layers_1_1.done && (_a = layers_1.return)) _a.call(layers_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n layers.splice(0, layers.length);\n this.root = null;\n this._dirty = false;\n this.canvas.context.resetTransform();\n };\n Scene.prototype.destroy = function () {\n this.container = undefined;\n this.strip();\n this.canvas.destroy();\n Object.assign(this, { canvas: undefined, ctx: undefined });\n };\n Scene.prototype.render = function (opts) {\n var _a;\n return __awaiter$g(this, void 0, void 0, function () {\n var _b, _c, debugSplitTimes, _d, extraDebugStats, _e, canvas, ctx, root, layers, pendingSize, mode, renderCtx, canvasCleared, _f, dirtyTree, paths;\n var _g;\n return __generator$g(this, function (_h) {\n _b = opts !== null && opts !== void 0 ? opts : {}, _c = _b.debugSplitTimes, debugSplitTimes = _c === void 0 ? [performance.now()] : _c, _d = _b.extraDebugStats, extraDebugStats = _d === void 0 ? {} : _d;\n _e = this, canvas = _e.canvas, ctx = _e.canvas.context, root = _e.root, layers = _e.layers, pendingSize = _e.pendingSize, mode = _e.opts.mode;\n if (pendingSize) {\n (_g = this.canvas).resize.apply(_g, __spreadArray$E([], __read$15(pendingSize)));\n this.layers.forEach(function (layer) {\n var _a;\n return (_a = layer.canvas).resize.apply(_a, __spreadArray$E([], __read$15(pendingSize)));\n });\n this.pendingSize = undefined;\n }\n if (root && !root.visible) {\n this._dirty = false;\n return [2 /*return*/];\n }\n if (root && !this.dirty) {\n if (this.debug.consoleLog) {\n Logger.debug('Scene.render() - no-op', {\n redrawType: RedrawType[root.dirty],\n tree: this.buildTree(root),\n });\n }\n this.debugStats(debugSplitTimes, ctx, undefined, extraDebugStats);\n return [2 /*return*/];\n }\n renderCtx = {\n ctx: ctx,\n forceRender: true,\n resized: !!pendingSize,\n debugNodes: {},\n };\n if (this.debug.stats === 'detailed') {\n renderCtx.stats = { layersRendered: 0, layersSkipped: 0, nodesRendered: 0, nodesSkipped: 0 };\n }\n canvasCleared = false;\n if (!root || root.dirty >= RedrawType.TRIVIAL) {\n // start with a blank canvas, clear previous drawing\n canvasCleared = true;\n canvas.clear();\n }\n if (root && this.debug.dirtyTree) {\n _f = this.buildDirtyTree(root), dirtyTree = _f.dirtyTree, paths = _f.paths;\n Logger.debug('Scene.render() - dirtyTree', { dirtyTree: dirtyTree, paths: paths });\n }\n if (root && canvasCleared) {\n if (this.debug.consoleLog) {\n Logger.debug('Scene.render() - before', {\n redrawType: RedrawType[root.dirty],\n canvasCleared: canvasCleared,\n tree: this.buildTree(root),\n });\n }\n if (root.visible) {\n ctx.save();\n root.render(renderCtx);\n ctx.restore();\n }\n }\n if (mode !== 'dom-composite' && layers.length > 0 && canvasCleared) {\n this.sortLayers();\n ctx.save();\n ctx.setTransform(1 / canvas.pixelRatio, 0, 0, 1 / canvas.pixelRatio, 0, 0);\n layers.forEach(function (_a) {\n var _b = _a.canvas, imageSource = _b.imageSource, enabled = _b.enabled, getComputedOpacity = _a.getComputedOpacity, getVisibility = _a.getVisibility;\n if (!enabled || !getVisibility()) {\n return;\n }\n ctx.globalAlpha = getComputedOpacity();\n ctx.drawImage(imageSource, 0, 0);\n });\n ctx.restore();\n }\n // Check for save/restore depth of zero!\n (_a = ctx.verifyDepthZero) === null || _a === void 0 ? void 0 : _a.call(ctx);\n this._dirty = false;\n this.debugStats(debugSplitTimes, ctx, renderCtx.stats, extraDebugStats);\n this.debugSceneNodeHighlight(ctx, this.debug.sceneNodeHighlight, renderCtx.debugNodes);\n if (root && this.debug.consoleLog) {\n Logger.debug('Scene.render() - after', {\n redrawType: RedrawType[root.dirty],\n canvasCleared: canvasCleared,\n tree: this.buildTree(root),\n });\n }\n return [2 /*return*/];\n });\n });\n };\n Scene.prototype.debugStats = function (debugSplitTimes, ctx, renderCtxStats, extraDebugStats) {\n var e_2, _a;\n if (extraDebugStats === void 0) { extraDebugStats = {}; }\n var end = performance.now();\n if (this.debug.stats) {\n var start = debugSplitTimes[0];\n debugSplitTimes.push(end);\n var pct = function (rendered, skipped) {\n var total = rendered + skipped;\n return rendered + \" / \" + total + \" (\" + Math.round((100 * rendered) / total) + \"%)\";\n };\n var time_1 = function (start, end) {\n return Math.round((end - start) * 100) / 100 + \"ms\";\n };\n var _b = renderCtxStats !== null && renderCtxStats !== void 0 ? renderCtxStats : {}, _c = _b.layersRendered, layersRendered = _c === void 0 ? 0 : _c, _d = _b.layersSkipped, layersSkipped = _d === void 0 ? 0 : _d, _e = _b.nodesRendered, nodesRendered = _e === void 0 ? 0 : _e, _f = _b.nodesSkipped, nodesSkipped = _f === void 0 ? 0 : _f;\n var splits = debugSplitTimes\n .map(function (t, i) { return (i > 0 ? time_1(debugSplitTimes[i - 1], t) : null); })\n .filter(function (v) { return v != null; })\n .join(' + ');\n var extras = Object.entries(extraDebugStats)\n .map(function (_a) {\n var _b = __read$15(_a, 2), k = _b[0], v = _b[1];\n return k + \": \" + v;\n })\n .join(' ; ');\n var stats = [\n time_1(start, end) + \" (\" + splits + \")\",\n \"\" + extras,\n this.debug.stats === 'detailed' ? \"Layers: \" + pct(layersRendered, layersSkipped) : null,\n this.debug.stats === 'detailed' ? \"Nodes: \" + pct(nodesRendered, nodesSkipped) : null,\n ].filter(function (v) { return v != null; });\n var statsSize = stats.map(function (t) { return [t, HdpiCanvas.getTextSize(t, ctx.font)]; });\n var width = Math.max.apply(Math, __spreadArray$E([], __read$15(statsSize.map(function (_a) {\n var _b = __read$15(_a, 2), width = _b[1].width;\n return width;\n }))));\n var height = statsSize.reduce(function (total, _a) {\n var _b = __read$15(_a, 2), height = _b[1].height;\n return total + height;\n }, 0);\n ctx.save();\n ctx.fillStyle = 'white';\n ctx.fillRect(0, 0, width, height);\n ctx.fillStyle = 'black';\n var y = 0;\n try {\n for (var statsSize_1 = __values$L(statsSize), statsSize_1_1 = statsSize_1.next(); !statsSize_1_1.done; statsSize_1_1 = statsSize_1.next()) {\n var _g = __read$15(statsSize_1_1.value, 2), stat = _g[0], size = _g[1];\n y += size.height;\n ctx.fillText(stat, 2, y);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (statsSize_1_1 && !statsSize_1_1.done && (_a = statsSize_1.return)) _a.call(statsSize_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n ctx.restore();\n }\n };\n Scene.prototype.debugSceneNodeHighlight = function (ctx, sceneNodeHighlight, debugNodes) {\n var e_3, _a, e_4, _b, e_5, _c;\n var _d;\n var regexpPredicate = function (matcher) { return function (n) {\n if (matcher.test(n.id)) {\n return true;\n }\n return n instanceof Group && n.name != null && matcher.test(n.name);\n }; };\n var stringPredicate = function (match) { return function (n) {\n if (match === n.id) {\n return true;\n }\n return n instanceof Group && n.name != null && match === n.name;\n }; };\n try {\n for (var sceneNodeHighlight_1 = __values$L(sceneNodeHighlight), sceneNodeHighlight_1_1 = sceneNodeHighlight_1.next(); !sceneNodeHighlight_1_1.done; sceneNodeHighlight_1_1 = sceneNodeHighlight_1.next()) {\n var next = sceneNodeHighlight_1_1.value;\n if (typeof next === 'string' && debugNodes[next] != null)\n continue;\n var predicate = typeof next === 'string' ? stringPredicate(next) : regexpPredicate(next);\n var nodes = (_d = this.root) === null || _d === void 0 ? void 0 : _d.findNodes(predicate);\n if (!nodes || nodes.length === 0) {\n Logger.debug(\"Scene.render() - no debugging node with id [\" + next + \"] in scene graph.\");\n continue;\n }\n try {\n for (var nodes_1 = (e_4 = void 0, __values$L(nodes)), nodes_1_1 = nodes_1.next(); !nodes_1_1.done; nodes_1_1 = nodes_1.next()) {\n var node = nodes_1_1.value;\n if (node instanceof Group && node.name) {\n debugNodes[node.name] = node;\n }\n else {\n debugNodes[node.id] = node;\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (nodes_1_1 && !nodes_1_1.done && (_b = nodes_1.return)) _b.call(nodes_1);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (sceneNodeHighlight_1_1 && !sceneNodeHighlight_1_1.done && (_a = sceneNodeHighlight_1.return)) _a.call(sceneNodeHighlight_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n ctx.save();\n try {\n for (var _e = __values$L(Object.entries(debugNodes)), _f = _e.next(); !_f.done; _f = _e.next()) {\n var _g = __read$15(_f.value, 2), name_1 = _g[0], node = _g[1];\n var bbox = node.computeTransformedBBox();\n if (!bbox) {\n Logger.debug(\"Scene.render() - no bbox for debugged node [\" + name_1 + \"].\");\n continue;\n }\n ctx.globalAlpha = 0.8;\n ctx.strokeStyle = 'red';\n ctx.lineWidth = 1;\n ctx.strokeRect(bbox.x, bbox.y, bbox.width, bbox.height);\n ctx.fillStyle = 'red';\n ctx.strokeStyle = 'white';\n ctx.font = '16px sans-serif';\n ctx.textBaseline = 'top';\n ctx.textAlign = 'left';\n ctx.lineWidth = 2;\n ctx.strokeText(name_1, bbox.x, bbox.y, bbox.width);\n ctx.fillText(name_1, bbox.x, bbox.y, bbox.width);\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_c = _e.return)) _c.call(_e);\n }\n finally { if (e_5) throw e_5.error; }\n }\n ctx.restore();\n };\n Scene.prototype.buildTree = function (node) {\n var _this = this;\n var _a, _b;\n var name = (_a = (node instanceof Group ? node.name : null)) !== null && _a !== void 0 ? _a : node.id;\n return __assign$U(__assign$U({ name: name, node: node, dirty: RedrawType[node.dirty] }, (((_b = node.parent) === null || _b === void 0 ? void 0 : _b.isVirtual)\n ? {\n virtualParentDirty: RedrawType[node.parent.dirty],\n virtualParent: node.parent,\n }\n : {})), node.children\n .map(function (c) { return _this.buildTree(c); })\n .reduce(function (result, childTree) {\n var treeNodeName = childTree.name;\n var _a = childTree.node, visible = _a.visible, opacity = _a.opacity, zIndex = _a.zIndex, zIndexSubOrder = _a.zIndexSubOrder, childNode = childTree.node, virtualParent = childTree.virtualParent;\n if (!visible || opacity <= 0) {\n treeNodeName = \"(\" + treeNodeName + \")\";\n }\n if (childNode instanceof Group && childNode.isLayer()) {\n treeNodeName = \"*\" + treeNodeName + \"*\";\n }\n var key = [\n \"\" + (treeNodeName !== null && treeNodeName !== void 0 ? treeNodeName : ''),\n \"z: \" + zIndex,\n zIndexSubOrder &&\n \"zo: \" + zIndexSubOrder\n .map(function (v) { return (typeof v === 'function' ? v() + \" (fn)\" : v); })\n .join(' / '),\n virtualParent && \"(virtual parent)\",\n ]\n .filter(function (v) { return !!v; })\n .join(' ');\n var selectedKey = key;\n var index = 1;\n while (result[selectedKey] != null && index < 100) {\n selectedKey = key + \" (\" + index++ + \")\";\n }\n result[selectedKey] = childTree;\n return result;\n }, {}));\n };\n Scene.prototype.buildDirtyTree = function (node) {\n var _this = this;\n var _a;\n if (node.dirty === RedrawType.NONE) {\n return { dirtyTree: {}, paths: [] };\n }\n var childrenDirtyTree = node.children.map(function (c) { return _this.buildDirtyTree(c); }).filter(function (c) { return c.paths.length > 0; });\n var name = (_a = (node instanceof Group ? node.name : null)) !== null && _a !== void 0 ? _a : node.id;\n var paths = childrenDirtyTree.length === 0\n ? [name]\n : childrenDirtyTree\n .map(function (c) { return c.paths; })\n .reduce(function (r, p) { return r.concat(p); }, [])\n .map(function (p) { return name + \".\" + p; });\n return {\n dirtyTree: __assign$U({ name: name, node: node, dirty: RedrawType[node.dirty] }, childrenDirtyTree\n .map(function (c) { return c.dirtyTree; })\n .filter(function (t) { return t.dirty !== undefined; })\n .reduce(function (result, childTree) {\n var _a;\n result[(_a = childTree.name) !== null && _a !== void 0 ? _a : ''] = childTree;\n return result;\n }, {})),\n paths: paths,\n };\n };\n Scene.className = 'Scene';\n return Scene;\n}());\n\nvar Gradient = /** @class */ (function () {\n function Gradient() {\n this.stops = [];\n }\n return Gradient;\n}());\n\nvar twoPi = Math.PI * 2;\n/**\n * Normalize the given angle to be in the [0, 2π) interval.\n * @param radians Angle in radians.\n */\nfunction normalizeAngle360(radians) {\n radians %= twoPi;\n radians += twoPi;\n radians %= twoPi;\n return radians;\n}\n/**\n * Normalize the given angle to be in the [-π, π) interval.\n * @param radians Angle in radians.\n */\nfunction normalizeAngle180(radians) {\n radians %= twoPi;\n if (radians < -Math.PI) {\n radians += twoPi;\n }\n else if (radians >= Math.PI) {\n radians -= twoPi;\n }\n return radians;\n}\nfunction toRadians$1(degrees) {\n return (degrees / 180) * Math.PI;\n}\n\nvar __extends$2K = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar LinearGradient = /** @class */ (function (_super) {\n __extends$2K(LinearGradient, _super);\n function LinearGradient() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.angle = 0;\n return _this;\n }\n LinearGradient.prototype.createGradient = function (ctx, bbox) {\n // Gradient 0° angle starts at top according to CSS spec\n var angleOffset = 90;\n var _a = this, stops = _a.stops, angle = _a.angle;\n var radians = normalizeAngle360(toRadians$1(angle + angleOffset));\n var cos = Math.cos(radians);\n var sin = Math.sin(radians);\n var w = bbox.width;\n var h = bbox.height;\n var cx = bbox.x + w * 0.5;\n var cy = bbox.y + h * 0.5;\n if (w > 0 && h > 0) {\n var diagonal = Math.sqrt(h * h + w * w) / 2;\n var diagonalAngle = Math.atan2(h, w);\n var quarteredAngle = void 0;\n if (radians < Math.PI / 2) {\n quarteredAngle = radians;\n }\n else if (radians < Math.PI) {\n quarteredAngle = Math.PI - radians;\n }\n else if (radians < (3 * Math.PI) / 2) {\n quarteredAngle = radians - Math.PI;\n }\n else {\n quarteredAngle = 2 * Math.PI - radians;\n }\n var l = diagonal * Math.abs(Math.cos(quarteredAngle - diagonalAngle));\n var gradient_1 = ctx.createLinearGradient(cx + cos * l, cy + sin * l, cx - cos * l, cy - sin * l);\n stops.forEach(function (stop) {\n gradient_1.addColorStop(stop.offset, stop.color);\n });\n return gradient_1;\n }\n return 'black';\n };\n return LinearGradient;\n}(Gradient));\n\nvar __extends$2J = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1X = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar LINEAR_GRADIENT_REGEXP = /^linear-gradient\\((.*?)deg,\\s*(.*?)\\s*\\)$/i;\nvar Shape = /** @class */ (function (_super) {\n __extends$2J(Shape, _super);\n function Shape() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.lastInstanceId = 0;\n _this.fillOpacity = 1;\n _this.strokeOpacity = 1;\n _this.fill = Shape.defaultStyles.fill;\n /**\n * Note that `strokeStyle = null` means invisible stroke,\n * while `lineWidth = 0` means no stroke, and sometimes this can mean different things.\n * For example, a rect shape with an invisible stroke may not align to the pixel grid\n * properly because the stroke affects the rules of alignment, and arc shapes forming\n * a pie chart will have a gap between them if they have an invisible stroke, whereas\n * there would be not gap if there was no stroke at all.\n * The preferred way of making the stroke invisible is setting the `lineWidth` to zero,\n * unless specific looks that is achieved by having an invisible stroke is desired.\n */\n _this.stroke = Shape.defaultStyles.stroke;\n _this.strokeWidth = Shape.defaultStyles.strokeWidth;\n _this.lineDash = Shape.defaultStyles.lineDash;\n _this.lineDashOffset = Shape.defaultStyles.lineDashOffset;\n _this.lineCap = Shape.defaultStyles.lineCap;\n _this.lineJoin = Shape.defaultStyles.lineJoin;\n _this.opacity = Shape.defaultStyles.opacity;\n _this.fillShadow = Shape.defaultStyles.fillShadow;\n return _this;\n }\n /**\n * Creates a light-weight instance of the given shape (that serves as a template).\n * The created instance only stores the properites set on the instance itself\n * and the rest of the properties come via the prototype chain from the template.\n * This can greatly reduce memory usage in cases where one has many similar shapes,\n * for example, circles of different size, position and color. The exact memory usage\n * reduction will depend on the size of the template and the number of own properties\n * set on its lightweight instances, but will typically be around an order of magnitude\n * or more.\n *\n * Note: template shapes are not supposed to be part of the scene graph (they should not\n * have a parent).\n *\n * @param template\n */\n Shape.createInstance = function (template) {\n var shape = Object.create(template);\n shape._setParent(undefined);\n shape.id = template.id + '-Instance-' + String(++template.lastInstanceId);\n return shape;\n };\n /**\n * Restores the default styles introduced by this subclass.\n */\n Shape.prototype.restoreOwnStyles = function () {\n var styles = this.constructor.defaultStyles;\n var keys = Object.getOwnPropertyNames(styles);\n // getOwnPropertyNames is about 2.5 times faster than\n // for..in with the hasOwnProperty check and in this\n // case, where most properties are inherited, can be\n // more then an order of magnitude faster.\n for (var i = 0, n = keys.length; i < n; i++) {\n var key = keys[i];\n this[key] = styles[key];\n }\n };\n Shape.prototype.restoreAllStyles = function () {\n var styles = this.constructor.defaultStyles;\n for (var property in styles) {\n this[property] = styles[property];\n }\n };\n /**\n * Restores the base class default styles that have been overridden by this subclass.\n */\n Shape.prototype.restoreOverriddenStyles = function () {\n var styles = this.constructor.defaultStyles;\n var protoStyles = Object.getPrototypeOf(styles);\n for (var property in styles) {\n if (Object.prototype.hasOwnProperty.call(styles, property) &&\n Object.prototype.hasOwnProperty.call(protoStyles, property)) {\n this[property] = styles[property];\n }\n }\n };\n Shape.prototype.updateGradient = function () {\n var fill = this.fill;\n var linearGradientMatch;\n if ((fill === null || fill === void 0 ? void 0 : fill.startsWith('linear-gradient')) && (linearGradientMatch = LINEAR_GRADIENT_REGEXP.exec(fill))) {\n var angle = parseFloat(linearGradientMatch[1]);\n var colors_1 = [];\n var colorsPart = linearGradientMatch[2];\n var colorRegex = /(#[0-9a-f]+)|(rgba?\\(.+?\\))|([a-z]+)/gi;\n var c = void 0;\n while ((c = colorRegex.exec(colorsPart))) {\n colors_1.push(c[0]);\n }\n this.gradient = new LinearGradient();\n this.gradient.angle = angle;\n this.gradient.stops = colors_1.map(function (color, index) {\n var offset = index / (colors_1.length - 1);\n return { offset: offset, color: color };\n });\n }\n else {\n this.gradient = undefined;\n }\n };\n /**\n * Returns a device-pixel aligned coordinate (or length if length is supplied).\n *\n * NOTE: Not suitable for strokes, since the stroke needs to be offset to the middle\n * of a device pixel.\n */\n Shape.prototype.align = function (start, length) {\n var _a, _b, _c;\n var pixelRatio = (_c = (_b = (_a = this.layerManager) === null || _a === void 0 ? void 0 : _a.canvas) === null || _b === void 0 ? void 0 : _b.pixelRatio) !== null && _c !== void 0 ? _c : 1;\n var alignedStart = Math.round(start * pixelRatio) / pixelRatio;\n if (length == undefined) {\n return alignedStart;\n }\n if (length === 0) {\n return 0;\n }\n if (length < 1) {\n // Avoid hiding crisp shapes\n return Math.ceil(length * pixelRatio) / pixelRatio;\n }\n // Account for the rounding of alignedStart by increasing length to compensate before\n // alignment.\n return Math.round((length + start) * pixelRatio) / pixelRatio - alignedStart;\n };\n Shape.prototype.fillStroke = function (ctx) {\n this.renderFill(ctx);\n this.renderStroke(ctx);\n };\n Shape.prototype.renderFill = function (ctx) {\n if (this.fill) {\n var globalAlpha = ctx.globalAlpha;\n this.applyFill(ctx);\n this.applyFillAlpha(ctx);\n this.applyShadow(ctx);\n ctx.fill();\n ctx.globalAlpha = globalAlpha;\n }\n ctx.shadowColor = 'rgba(0, 0, 0, 0)';\n };\n Shape.prototype.applyFill = function (ctx) {\n if (this.gradient) {\n ctx.fillStyle = this.gradient.createGradient(ctx, this.computeBBox());\n }\n else {\n ctx.fillStyle = this.fill;\n }\n };\n Shape.prototype.applyFillAlpha = function (ctx) {\n var globalAlpha = ctx.globalAlpha;\n ctx.globalAlpha = globalAlpha * this.opacity * this.fillOpacity;\n };\n Shape.prototype.applyShadow = function (ctx) {\n var _a, _b;\n // The canvas context scaling (depends on the device's pixel ratio)\n // has no effect on shadows, so we have to account for the pixel ratio\n // manually here.\n var pixelRatio = (_b = (_a = this.layerManager) === null || _a === void 0 ? void 0 : _a.canvas.pixelRatio) !== null && _b !== void 0 ? _b : 1;\n var fillShadow = this.fillShadow;\n if (fillShadow === null || fillShadow === void 0 ? void 0 : fillShadow.enabled) {\n ctx.shadowColor = fillShadow.color;\n ctx.shadowOffsetX = fillShadow.xOffset * pixelRatio;\n ctx.shadowOffsetY = fillShadow.yOffset * pixelRatio;\n ctx.shadowBlur = fillShadow.blur * pixelRatio;\n }\n };\n Shape.prototype.renderStroke = function (ctx) {\n if (this.stroke && this.strokeWidth) {\n var globalAlpha = ctx.globalAlpha;\n ctx.strokeStyle = this.stroke;\n ctx.globalAlpha = globalAlpha * this.opacity * this.strokeOpacity;\n ctx.lineWidth = this.strokeWidth;\n if (this.lineDash) {\n ctx.setLineDash(this.lineDash);\n }\n if (this.lineDashOffset) {\n ctx.lineDashOffset = this.lineDashOffset;\n }\n if (this.lineCap) {\n ctx.lineCap = this.lineCap;\n }\n if (this.lineJoin) {\n ctx.lineJoin = this.lineJoin;\n }\n ctx.stroke();\n ctx.globalAlpha = globalAlpha;\n }\n };\n Shape.prototype.containsPoint = function (x, y) {\n return this.isPointInPath(x, y);\n };\n /**\n * Defaults for style properties. Note that properties that affect the position\n * and shape of the node are not considered style properties, for example:\n * `x`, `y`, `width`, `height`, `radius`, `rotation`, etc.\n * Can be used to reset to the original styling after some custom styling\n * has been applied (using the `restoreOwnStyles` and `restoreAllStyles` methods).\n * These static defaults are meant to be inherited by subclasses.\n */\n Shape.defaultStyles = Object.assign({}, {\n fill: 'black',\n stroke: undefined,\n strokeWidth: 0,\n lineDash: undefined,\n lineDashOffset: 0,\n lineCap: undefined,\n lineJoin: undefined,\n opacity: 1,\n fillShadow: undefined,\n });\n __decorate$1X([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Shape.prototype, \"fillOpacity\", void 0);\n __decorate$1X([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Shape.prototype, \"strokeOpacity\", void 0);\n __decorate$1X([\n SceneChangeDetection({ redraw: RedrawType.MINOR, changeCb: function (s) { return s.updateGradient(); } })\n ], Shape.prototype, \"fill\", void 0);\n __decorate$1X([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Shape.prototype, \"stroke\", void 0);\n __decorate$1X([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Shape.prototype, \"strokeWidth\", void 0);\n __decorate$1X([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Shape.prototype, \"lineDash\", void 0);\n __decorate$1X([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Shape.prototype, \"lineDashOffset\", void 0);\n __decorate$1X([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Shape.prototype, \"lineCap\", void 0);\n __decorate$1X([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Shape.prototype, \"lineJoin\", void 0);\n __decorate$1X([\n SceneChangeDetection({\n redraw: RedrawType.MINOR,\n convertor: function (v) { return Math.min(1, Math.max(0, v)); },\n })\n ], Shape.prototype, \"opacity\", void 0);\n __decorate$1X([\n SceneChangeDetection({ redraw: RedrawType.MINOR, checkDirtyOnAssignment: true })\n ], Shape.prototype, \"fillShadow\", void 0);\n return Shape;\n}(Node));\n\nvar __extends$2I = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1W = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __values$K = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar ellipsis = '\\u2026';\nfunction SceneFontChangeDetection(opts) {\n var _a = opts !== null && opts !== void 0 ? opts : {}, _b = _a.redraw, redraw = _b === void 0 ? RedrawType.MAJOR : _b, changeCb = _a.changeCb;\n return SceneChangeDetection({ redraw: redraw, type: 'font', changeCb: changeCb });\n}\nvar Text = /** @class */ (function (_super) {\n __extends$2I(Text, _super);\n function Text() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.x = 0;\n _this.y = 0;\n _this.lines = [];\n _this.text = undefined;\n _this._dirtyFont = true;\n _this.fontSize = 10;\n _this.fontFamily = 'sans-serif';\n _this.textAlign = Text.defaultStyles.textAlign;\n _this.textBaseline = Text.defaultStyles.textBaseline;\n // TextMetrics are used if lineHeight is not defined.\n _this.lineHeight = undefined;\n return _this;\n }\n Text.prototype._setLines = function () {\n this.lines = splitText(this.text);\n };\n Object.defineProperty(Text.prototype, \"font\", {\n get: function () {\n if (this._font == null || this._dirtyFont) {\n this._dirtyFont = false;\n this._font = getFont(this);\n }\n return this._font;\n },\n enumerable: false,\n configurable: true\n });\n Text.prototype.computeBBox = function () {\n return HdpiCanvas.has.textMetrics\n ? getPreciseBBox(this.lines, this.x, this.y, this)\n : getApproximateBBox(this.lines, this.x, this.y, this);\n };\n Text.prototype.getLineHeight = function (line) {\n var _a, _b;\n if (this.lineHeight)\n return this.lineHeight;\n if (HdpiCanvas.has.textMetrics) {\n var metrics = HdpiCanvas.measureText(line, this.font, this.textBaseline, this.textAlign);\n return (((_a = metrics.fontBoundingBoxAscent) !== null && _a !== void 0 ? _a : metrics.emHeightAscent) +\n ((_b = metrics.fontBoundingBoxDescent) !== null && _b !== void 0 ? _b : metrics.emHeightDescent));\n }\n return HdpiCanvas.getTextSize(line, this.font).height;\n };\n Text.prototype.isPointInPath = function (x, y) {\n var point = this.transformPoint(x, y);\n var bbox = this.computeBBox();\n return bbox ? bbox.containsPoint(point.x, point.y) : false;\n };\n Text.prototype.render = function (renderCtx) {\n var ctx = renderCtx.ctx, forceRender = renderCtx.forceRender, stats = renderCtx.stats;\n if (this.dirty === RedrawType.NONE && !forceRender) {\n if (stats)\n stats.nodesSkipped += this.nodeCount.count;\n return;\n }\n if (!this.lines.length || !this.layerManager) {\n if (stats)\n stats.nodesSkipped += this.nodeCount.count;\n return;\n }\n this.computeTransformMatrix();\n this.matrix.toContext(ctx);\n var _a = this, fill = _a.fill, stroke = _a.stroke, strokeWidth = _a.strokeWidth;\n ctx.font = this.font;\n ctx.textAlign = this.textAlign;\n ctx.textBaseline = this.textBaseline;\n var pixelRatio = this.layerManager.canvas.pixelRatio || 1;\n var globalAlpha = ctx.globalAlpha;\n if (fill) {\n ctx.fillStyle = fill;\n ctx.globalAlpha = globalAlpha * this.opacity * this.fillOpacity;\n var fillShadow = this.fillShadow;\n if (fillShadow === null || fillShadow === void 0 ? void 0 : fillShadow.enabled) {\n ctx.shadowColor = fillShadow.color;\n ctx.shadowOffsetX = fillShadow.xOffset * pixelRatio;\n ctx.shadowOffsetY = fillShadow.yOffset * pixelRatio;\n ctx.shadowBlur = fillShadow.blur * pixelRatio;\n }\n this.renderLines(function (line, x, y) { return ctx.fillText(line, x, y); });\n }\n if (stroke && strokeWidth) {\n ctx.strokeStyle = stroke;\n ctx.lineWidth = strokeWidth;\n ctx.globalAlpha = globalAlpha * this.opacity * this.strokeOpacity;\n var _b = this, lineDash = _b.lineDash, lineDashOffset = _b.lineDashOffset, lineCap = _b.lineCap, lineJoin = _b.lineJoin;\n if (lineDash) {\n ctx.setLineDash(lineDash);\n }\n if (lineDashOffset) {\n ctx.lineDashOffset = lineDashOffset;\n }\n if (lineCap) {\n ctx.lineCap = lineCap;\n }\n if (lineJoin) {\n ctx.lineJoin = lineJoin;\n }\n this.renderLines(function (line, x, y) { return ctx.strokeText(line, x, y); });\n }\n _super.prototype.render.call(this, renderCtx);\n };\n Text.prototype.renderLines = function (renderCallback) {\n var _this = this;\n var _a = this, lines = _a.lines, x = _a.x, y = _a.y;\n var lineHeights = this.lines.map(function (line) { return _this.getLineHeight(line); });\n var totalHeight = lineHeights.reduce(function (a, b) { return a + b; }, 0);\n var offsetY = -(totalHeight - lineHeights[0]) * getVerticalOffset(this.textBaseline);\n for (var i = 0; i < lines.length; i++) {\n renderCallback(lines[i], x, y + offsetY);\n offsetY += lineHeights[i];\n }\n };\n Text.wrap = function (text, maxWidth, maxHeight, textProps, wrapping) {\n var e_1, _a;\n var font = getFont(textProps);\n var measurer = createTextMeasurer(font);\n var lines = text.split(/\\r?\\n/g);\n if (lines.length === 0) {\n return '';\n }\n if (wrapping === 'never') {\n return Text.truncateLine(lines[0], maxWidth, measurer, false);\n }\n var result = [];\n var cumulativeHeight = 0;\n try {\n for (var lines_1 = __values$K(lines), lines_1_1 = lines_1.next(); !lines_1_1.done; lines_1_1 = lines_1.next()) {\n var line = lines_1_1.value;\n var wrappedLine = Text.wrapLine(line, maxWidth, maxHeight, measurer, textProps, wrapping, cumulativeHeight);\n result.push(wrappedLine.result);\n cumulativeHeight = wrappedLine.cumulativeHeight;\n if (wrappedLine.truncated) {\n break;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (lines_1_1 && !lines_1_1.done && (_a = lines_1.return)) _a.call(lines_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return result.join('\\n').trim();\n };\n Text.wrapLine = function (text, maxWidth, maxHeight, measurer, textProps, wrapping, cumulativeHeight) {\n text = text.trim();\n if (!text) {\n return { result: '', truncated: false, cumulativeHeight: cumulativeHeight };\n }\n var initialSize = measurer.size(text);\n if (initialSize.width <= maxWidth) {\n // Text fits into a single line\n return { result: text, truncated: false, cumulativeHeight: cumulativeHeight + initialSize.height };\n }\n if (initialSize.height > maxHeight || measurer.width('W') > maxWidth) {\n // Not enough space for a single line or character\n return { result: '', truncated: true, cumulativeHeight: cumulativeHeight };\n }\n var words = text.split(/\\s+/g);\n var wrapResult = Text.wrapLineSequentially(words, maxWidth, maxHeight, measurer, textProps, wrapping, cumulativeHeight);\n cumulativeHeight = wrapResult.cumulativeHeight;\n var lines = wrapResult.lines;\n if (!(wrapResult.wordsBrokenOrTruncated || wrapResult.linesTruncated)) {\n // If no word breaks or truncations, try the balanced wrapping\n var linesCount = wrapResult.lines.length;\n var balanced = Text.wrapLineBalanced(words, maxWidth, measurer, linesCount);\n if (balanced.length === lines.length) {\n // Some lines can't be balanced properly because of unusually long words\n lines = balanced;\n }\n }\n var wrappedText = lines.map(function (ln) { return ln.join(' '); }).join('\\n');\n return { result: wrappedText, truncated: wrapResult.linesTruncated, cumulativeHeight: cumulativeHeight };\n };\n Text.breakWord = function (word, firstLineWidth, maxWidth, hyphens, measurer) {\n var e_2, _a;\n var isPunctuationAt = function (index) { return Text.punctuationMarks.includes(word[index]); };\n var h = hyphens ? measurer.width('-') : 0;\n var breaks = [];\n var partWidth = 0;\n var p = 0;\n for (var i = 0; i < word.length; i++) {\n var c = word[i];\n var w = measurer.width(c);\n var limit = p === 0 ? firstLineWidth : maxWidth;\n if (partWidth + w + h > limit) {\n breaks.push(i);\n partWidth = 0;\n p++;\n }\n partWidth += w;\n }\n var parts = [];\n var start = 0;\n try {\n for (var breaks_1 = __values$K(breaks), breaks_1_1 = breaks_1.next(); !breaks_1_1.done; breaks_1_1 = breaks_1.next()) {\n var index = breaks_1_1.value;\n var part = word.substring(start, index);\n if (hyphens && part.length > 0 && !isPunctuationAt(index - 1) && !isPunctuationAt(index)) {\n part += '-';\n }\n parts.push(part);\n start = index;\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (breaks_1_1 && !breaks_1_1.done && (_a = breaks_1.return)) _a.call(breaks_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n parts.push(word.substring(start));\n return parts;\n };\n Text.truncateLine = function (text, maxWidth, measurer, forceEllipsis) {\n var lineWidth = measurer.width(text);\n if (lineWidth < maxWidth && !forceEllipsis) {\n return text;\n }\n var ellipsisWidth = measurer.width(ellipsis);\n if (lineWidth + ellipsisWidth <= maxWidth) {\n return \"\" + text + ellipsis;\n }\n var index = Math.floor((text.length * maxWidth) / lineWidth) + 1;\n var trunc;\n var truncWidth;\n do {\n trunc = text.substring(0, index);\n truncWidth = measurer.width(trunc);\n } while (--index >= 0 && truncWidth + ellipsisWidth > maxWidth);\n return \"\" + trunc + ellipsis;\n };\n Text.wrapLineSequentially = function (words, maxWidth, maxHeight, measurer, textProps, wrapping, cumulativeHeight) {\n var fontSize = textProps.fontSize, _a = textProps.lineHeight, lineHeight = _a === void 0 ? fontSize * Text.defaultLineHeightRatio : _a;\n var breakWord = wrapping === 'always' || wrapping === 'hyphenate';\n var hyphenate = wrapping === 'hyphenate';\n var spaceWidth = measurer.width(' ');\n var wordsBrokenOrTruncated = false;\n var linesTruncated = false;\n var lines = [];\n var currentLine = [];\n var lineWidth = 0;\n var addNewLine = function () {\n var expectedHeight = cumulativeHeight + lineHeight;\n if (expectedHeight >= maxHeight) {\n // Truncate the last line\n var lastLine = currentLine.join(' ');\n var trunc = Text.truncateLine(lastLine, maxWidth, measurer, true);\n currentLine.splice(0, currentLine.length, trunc);\n linesTruncated = true;\n return false;\n }\n // Add new line\n currentLine = [];\n lineWidth = 0;\n cumulativeHeight = expectedHeight;\n lines.push(currentLine);\n return true;\n };\n if (!addNewLine()) {\n return { lines: lines, linesTruncated: true, wordsBrokenOrTruncated: wordsBrokenOrTruncated, cumulativeHeight: cumulativeHeight };\n }\n for (var i = 0; i < words.length; i++) {\n var word = words[i];\n var wordWidth = measurer.width(word);\n var expectedSpaceWidth = currentLine.length === 0 ? 0 : spaceWidth;\n var expectedLineWidth = lineWidth + expectedSpaceWidth + wordWidth;\n if (expectedLineWidth <= maxWidth) {\n // If the word fits, add it to the current line\n currentLine.push(word);\n lineWidth = expectedLineWidth;\n continue;\n }\n if (wordWidth <= maxWidth) {\n // If the word is not too long, put it onto new line\n if (!addNewLine()) {\n break;\n }\n currentLine.push(word);\n lineWidth = wordWidth;\n continue;\n }\n // Handle a long word\n wordsBrokenOrTruncated = true;\n if (breakWord) {\n // Break the word into parts\n var availWidth = maxWidth - lineWidth - expectedSpaceWidth;\n var parts = Text.breakWord(word, availWidth, maxWidth, hyphenate, measurer);\n var breakLoop = false;\n for (var p = 0; p < parts.length; p++) {\n var part = parts[p];\n part && currentLine.push(part);\n if (p === parts.length - 1) {\n lineWidth = measurer.width(part);\n }\n else if (!addNewLine()) {\n breakLoop = true;\n break;\n }\n }\n if (breakLoop)\n break;\n }\n else {\n // Truncate the word\n if (!addNewLine()) {\n break;\n }\n var trunc = Text.truncateLine(word, maxWidth, measurer, true);\n currentLine.push(trunc);\n if (i < words.length - 1) {\n linesTruncated = true;\n }\n break;\n }\n }\n return { lines: lines, linesTruncated: linesTruncated, wordsBrokenOrTruncated: wordsBrokenOrTruncated, cumulativeHeight: cumulativeHeight };\n };\n Text.wrapLineBalanced = function (words, maxWidth, measurer, linesCount) {\n var e_3, _a;\n var totalWordsWidth = words.reduce(function (sum, w) { return sum + measurer.width(w); }, 0);\n var spaceWidth = measurer.width(' ');\n var totalSpaceWidth = spaceWidth * (words.length - linesCount - 2);\n var averageLineWidth = (totalWordsWidth + totalSpaceWidth) / linesCount;\n var lines = [];\n var currentLine = [];\n var lineWidth = measurer.width(words[0]);\n var newLine = true;\n try {\n for (var words_1 = __values$K(words), words_1_1 = words_1.next(); !words_1_1.done; words_1_1 = words_1.next()) {\n var word = words_1_1.value;\n var width = measurer.width(word);\n if (newLine) {\n // New line\n currentLine = [];\n currentLine.push(word);\n lineWidth = width;\n newLine = false;\n lines.push(currentLine);\n continue;\n }\n var expectedLineWidth = lineWidth + spaceWidth + width;\n if (expectedLineWidth <= averageLineWidth) {\n // Keep adding words to the line\n currentLine.push(word);\n lineWidth = expectedLineWidth;\n }\n else if (expectedLineWidth <= maxWidth) {\n // Add the last word to the line\n currentLine.push(word);\n newLine = true;\n }\n else {\n // Put the word onto the next line\n currentLine = [word];\n lineWidth = width;\n lines.push(currentLine);\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (words_1_1 && !words_1_1.done && (_a = words_1.return)) _a.call(words_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return lines;\n };\n Text.prototype.setFont = function (props) {\n this.fontFamily = props.fontFamily;\n this.fontSize = props.fontSize;\n this.fontStyle = props.fontStyle;\n this.fontWeight = props.fontWeight;\n };\n Text.prototype.setAlign = function (props) {\n this.textAlign = props.textAlign;\n this.textBaseline = props.textBaseline;\n };\n Text.className = 'Text';\n // The default line spacing for document editors is usually 1.15\n Text.defaultLineHeightRatio = 1.15;\n Text.defaultStyles = Object.assign({}, Shape.defaultStyles, {\n textAlign: 'start',\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 10,\n fontFamily: 'sans-serif',\n textBaseline: 'alphabetic',\n });\n Text.punctuationMarks = ['.', ',', '-', ':', ';', '!', '?', \"'\", '\"', '(', ')'];\n __decorate$1W([\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], Text.prototype, \"x\", void 0);\n __decorate$1W([\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], Text.prototype, \"y\", void 0);\n __decorate$1W([\n SceneChangeDetection({ redraw: RedrawType.MAJOR, changeCb: function (o) { return o._setLines(); } })\n ], Text.prototype, \"text\", void 0);\n __decorate$1W([\n SceneFontChangeDetection()\n ], Text.prototype, \"fontStyle\", void 0);\n __decorate$1W([\n SceneFontChangeDetection()\n ], Text.prototype, \"fontWeight\", void 0);\n __decorate$1W([\n SceneFontChangeDetection()\n ], Text.prototype, \"fontSize\", void 0);\n __decorate$1W([\n SceneFontChangeDetection()\n ], Text.prototype, \"fontFamily\", void 0);\n __decorate$1W([\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], Text.prototype, \"textAlign\", void 0);\n __decorate$1W([\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], Text.prototype, \"textBaseline\", void 0);\n __decorate$1W([\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], Text.prototype, \"lineHeight\", void 0);\n return Text;\n}(Shape));\nfunction createTextMeasurer(font) {\n var cache = new Map();\n var getTextSize = function (text) { return HdpiCanvas.getTextSize(text, font); };\n var getLineWidth = function (text) {\n if (cache.has(text)) {\n return cache.get(text);\n }\n var width = getTextSize(text).width;\n cache.set(text, width);\n return width;\n };\n return { size: getTextSize, width: getLineWidth };\n}\nfunction getFont(fontProps) {\n var fontFamily = fontProps.fontFamily, fontSize = fontProps.fontSize, fontStyle = fontProps.fontStyle, fontWeight = fontProps.fontWeight;\n return [fontStyle !== null && fontStyle !== void 0 ? fontStyle : '', fontWeight !== null && fontWeight !== void 0 ? fontWeight : '', fontSize + 'px', fontFamily].join(' ').trim();\n}\nfunction measureText(lines, x, y, textProps) {\n return HdpiCanvas.has.textMetrics\n ? getPreciseBBox(lines, x, y, textProps)\n : getApproximateBBox(lines, x, y, textProps);\n}\nfunction getPreciseBBox(lines, x, y, textProps) {\n var _a, _b;\n var left = 0;\n var top = 0;\n var width = 0;\n var height = 0;\n // Distance between first and last base lines.\n var baselineDistance = 0;\n var font = getFont(textProps);\n var lineHeight = textProps.lineHeight, _c = textProps.textBaseline, textBaseline = _c === void 0 ? Text.defaultStyles.textBaseline : _c, _d = textProps.textAlign, textAlign = _d === void 0 ? Text.defaultStyles.textAlign : _d;\n for (var i = 0; i < lines.length; i++) {\n var metrics = HdpiCanvas.measureText(lines[i], font, textBaseline, textAlign);\n left = Math.max(left, metrics.actualBoundingBoxLeft);\n width = Math.max(width, metrics.width);\n if (i == 0) {\n top += metrics.actualBoundingBoxAscent;\n height += metrics.actualBoundingBoxAscent;\n }\n else {\n baselineDistance += (_a = metrics.fontBoundingBoxAscent) !== null && _a !== void 0 ? _a : metrics.emHeightAscent;\n }\n if (i == lines.length - 1) {\n height += metrics.actualBoundingBoxDescent;\n }\n else {\n baselineDistance += (_b = metrics.fontBoundingBoxDescent) !== null && _b !== void 0 ? _b : metrics.emHeightDescent;\n }\n }\n if (lineHeight !== undefined) {\n baselineDistance = (lines.length - 1) * lineHeight;\n }\n height += baselineDistance;\n top += baselineDistance * getVerticalOffset(textBaseline);\n return new BBox(x - left, y - top, width, height);\n}\nfunction getApproximateBBox(lines, x, y, textProps) {\n var width = 0;\n var firstLineHeight = 0;\n // Distance between first and last base lines.\n var baselineDistance = 0;\n var font = getFont(textProps);\n var lineHeight = textProps.lineHeight, _a = textProps.textBaseline, textBaseline = _a === void 0 ? Text.defaultStyles.textBaseline : _a, _b = textProps.textAlign, textAlign = _b === void 0 ? Text.defaultStyles.textAlign : _b;\n if (lines.length > 0) {\n var lineSize = HdpiCanvas.getTextSize(lines[0], font);\n width = lineSize.width;\n firstLineHeight = lineSize.height;\n }\n for (var i = 1; i < lines.length; i++) {\n var lineSize = HdpiCanvas.getTextSize(lines[i], font);\n width = Math.max(width, lineSize.width);\n baselineDistance += lineHeight !== null && lineHeight !== void 0 ? lineHeight : lineSize.height;\n }\n switch (textAlign) {\n case 'end':\n case 'right':\n x -= width;\n break;\n case 'center':\n x -= width / 2;\n }\n switch (textBaseline) {\n case 'alphabetic':\n y -= firstLineHeight * 0.7 + baselineDistance * 0.5;\n break;\n case 'middle':\n y -= firstLineHeight * 0.45 + baselineDistance * 0.5;\n break;\n case 'ideographic':\n y -= firstLineHeight + baselineDistance;\n break;\n case 'hanging':\n y -= firstLineHeight * 0.2 + baselineDistance * 0.5;\n break;\n case 'bottom':\n y -= firstLineHeight + baselineDistance;\n break;\n }\n return new BBox(x, y, width, firstLineHeight + baselineDistance);\n}\nfunction getVerticalOffset(textBaseline) {\n switch (textBaseline) {\n case 'top':\n case 'hanging':\n return 0;\n case 'bottom':\n case 'alphabetic':\n case 'ideographic':\n return 1;\n case 'middle':\n return 0.5;\n }\n}\nfunction splitText(text) {\n return typeof text === 'string' ? text.split(/\\r?\\n/g) : [];\n}\n\nvar Observable = /** @class */ (function () {\n function Observable() {\n this.allEventListeners = new Map();\n }\n Observable.prototype.addEventListener = function (type, listener) {\n if (typeof listener !== 'function') {\n throw new Error('AG Charts - listener must be a Function');\n }\n var allEventListeners = this.allEventListeners;\n var eventListeners = allEventListeners.get(type);\n if (!eventListeners) {\n eventListeners = new Set();\n allEventListeners.set(type, eventListeners);\n }\n if (!eventListeners.has(listener)) {\n eventListeners.add(listener);\n }\n };\n Observable.prototype.removeEventListener = function (type, listener) {\n var allEventListeners = this.allEventListeners;\n var eventListeners = allEventListeners.get(type);\n if (!eventListeners) {\n return;\n }\n eventListeners.delete(listener);\n if (eventListeners.size === 0) {\n allEventListeners.delete(type);\n }\n };\n Observable.prototype.hasEventListener = function (type) {\n return this.allEventListeners.has(type);\n };\n Observable.prototype.clearEventListeners = function () {\n this.allEventListeners.clear();\n };\n Observable.prototype.fireEvent = function (event) {\n var listeners = this.allEventListeners.get(event.type);\n listeners === null || listeners === void 0 ? void 0 : listeners.forEach(function (listener) { return listener(event); });\n };\n return Observable;\n}());\n\nvar isString$2 = function (v) { return typeof v === 'string'; };\nvar isStringObject$1 = function (v) {\n return !!v && Object.prototype.hasOwnProperty.call(v, 'toString') && isString$2(v.toString());\n};\nvar isDate$1 = function (v) { return v instanceof Date && !isNaN(+v); };\nfunction isDiscrete(value) {\n return isString$2(value) || isStringObject$1(value);\n}\nfunction isContinuous(value) {\n var isNumberObject = function (v) {\n return !!v && Object.prototype.hasOwnProperty.call(v, 'valueOf') && isNumber$4(v.valueOf());\n };\n var isDate = function (v) { return v instanceof Date && !isNaN(+v); };\n return isNumber$4(value) || isNumberObject(value) || isDate(value);\n}\nfunction checkDatum(value, isContinuousScale) {\n if (isContinuousScale && isContinuous(value)) {\n return value;\n }\n else if (!isContinuousScale) {\n if (!isDiscrete(value)) {\n return String(value);\n }\n return value;\n }\n return undefined;\n}\nvar isNumber$4 = function (v) { return typeof v === 'number' && Number.isFinite(v); };\n\nvar __read$14 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar Color = /** @class */ (function () {\n /**\n * Every color component should be in the [0, 1] range.\n * Some easing functions (such as elastic easing) can overshoot the target value by some amount.\n * So, when animating colors, if the source or target color components are already near\n * or at the edge of the allowed [0, 1] range, it is possible for the intermediate color\n * component value to end up outside of that range mid-animation. For this reason the constructor\n * performs range checking/constraining.\n * @param r Red component.\n * @param g Green component.\n * @param b Blue component.\n * @param a Alpha (opacity) component.\n */\n function Color(r, g, b, a) {\n if (a === void 0) { a = 1; }\n // NaN is treated as 0.\n this.r = Math.min(1, Math.max(0, r || 0));\n this.g = Math.min(1, Math.max(0, g || 0));\n this.b = Math.min(1, Math.max(0, b || 0));\n this.a = Math.min(1, Math.max(0, a || 0));\n }\n /**\n * A color string can be in one of the following formats to be valid:\n * - #rgb\n * - #rrggbb\n * - rgb(r, g, b)\n * - rgba(r, g, b, a)\n * - CSS color name such as 'white', 'orange', 'cyan', etc.\n */\n Color.validColorString = function (str) {\n if (str.indexOf('#') >= 0) {\n return !!Color.parseHex(str);\n }\n if (str.indexOf('rgb') >= 0) {\n return !!Color.stringToRgba(str);\n }\n return !!Color.nameToHex[str.toLowerCase()];\n };\n /**\n * The given string can be in one of the following formats:\n * - #rgb\n * - #rrggbb\n * - rgb(r, g, b)\n * - rgba(r, g, b, a)\n * - CSS color name such as 'white', 'orange', 'cyan', etc.\n * @param str\n */\n Color.fromString = function (str) {\n // hexadecimal notation\n if (str.indexOf('#') >= 0) {\n // there can be some leading whitespace\n return Color.fromHexString(str);\n }\n // color name\n var hex = Color.nameToHex[str.toLowerCase()];\n if (hex) {\n return Color.fromHexString(hex);\n }\n // rgb(a) notation\n if (str.indexOf('rgb') >= 0) {\n return Color.fromRgbaString(str);\n }\n throw new Error(\"Invalid color string: '\" + str + \"'\");\n };\n Color.tryParseFromString = function (str) {\n try {\n return Color.fromString(str);\n }\n catch (e) {\n Logger.warnOnce(\"invalid color string: '\" + str + \"'.\");\n return Color.fromArray([0, 0, 0]);\n }\n };\n // See https://drafts.csswg.org/css-color/#hex-notation\n Color.parseHex = function (input) {\n input = input.replace(/ /g, '').slice(1);\n var parts;\n switch (input.length) {\n case 6:\n case 8:\n parts = [];\n for (var i = 0; i < input.length; i += 2) {\n parts.push(parseInt(\"\" + input[i] + input[i + 1], 16));\n }\n break;\n case 3:\n case 4:\n parts = input\n .split('')\n .map(function (p) { return parseInt(p, 16); })\n .map(function (p) { return p + p * 16; });\n break;\n }\n if ((parts === null || parts === void 0 ? void 0 : parts.length) >= 3) {\n if (parts.every(function (p) { return p >= 0; })) {\n if (parts.length === 3) {\n parts.push(255);\n }\n return parts;\n }\n }\n };\n Color.fromHexString = function (str) {\n var values = Color.parseHex(str);\n if (values) {\n var _a = __read$14(values, 4), r = _a[0], g = _a[1], b = _a[2], a = _a[3];\n return new Color(r / 255, g / 255, b / 255, a / 255);\n }\n throw new Error(\"Malformed hexadecimal color string: '\" + str + \"'\");\n };\n Color.stringToRgba = function (str) {\n // Find positions of opening and closing parentheses.\n var _a = __read$14([NaN, NaN], 2), po = _a[0], pc = _a[1];\n for (var i = 0; i < str.length; i++) {\n var c = str[i];\n if (!po && c === '(') {\n po = i;\n }\n else if (c === ')') {\n pc = i;\n break;\n }\n }\n var contents = po && pc && str.substring(po + 1, pc);\n if (!contents) {\n return;\n }\n var parts = contents.split(',');\n var rgba = [];\n for (var i = 0; i < parts.length; i++) {\n var part = parts[i];\n var value = parseFloat(part);\n if (isNaN(value)) {\n return;\n }\n if (part.indexOf('%') >= 0) {\n // percentage r, g, or b value\n value = Math.max(0, Math.min(100, value));\n value /= 100;\n }\n else {\n if (i === 3) {\n // alpha component\n value = Math.max(0, Math.min(1, value));\n }\n else {\n // absolute r, g, or b value\n value = Math.max(0, Math.min(255, value));\n value /= 255;\n }\n }\n rgba.push(value);\n }\n return rgba;\n };\n Color.fromRgbaString = function (str) {\n var rgba = Color.stringToRgba(str);\n if (rgba) {\n if (rgba.length === 3) {\n return new Color(rgba[0], rgba[1], rgba[2]);\n }\n else if (rgba.length === 4) {\n return new Color(rgba[0], rgba[1], rgba[2], rgba[3]);\n }\n }\n throw new Error(\"Malformed rgb/rgba color string: '\" + str + \"'\");\n };\n Color.fromArray = function (arr) {\n if (arr.length === 4) {\n return new Color(arr[0], arr[1], arr[2], arr[3]);\n }\n if (arr.length === 3) {\n return new Color(arr[0], arr[1], arr[2]);\n }\n throw new Error('The given array should contain 3 or 4 color components (numbers).');\n };\n Color.fromHSB = function (h, s, b, alpha) {\n if (alpha === void 0) { alpha = 1; }\n var rgb = Color.HSBtoRGB(h, s, b);\n return new Color(rgb[0], rgb[1], rgb[2], alpha);\n };\n Color.padHex = function (str) {\n // Can't use `padStart(2, '0')` here because of IE.\n return str.length === 1 ? '0' + str : str;\n };\n Color.prototype.toHexString = function () {\n var hex = '#' +\n Color.padHex(Math.round(this.r * 255).toString(16)) +\n Color.padHex(Math.round(this.g * 255).toString(16)) +\n Color.padHex(Math.round(this.b * 255).toString(16));\n if (this.a < 1) {\n hex += Color.padHex(Math.round(this.a * 255).toString(16));\n }\n return hex;\n };\n Color.prototype.toRgbaString = function (fractionDigits) {\n if (fractionDigits === void 0) { fractionDigits = 3; }\n var components = [Math.round(this.r * 255), Math.round(this.g * 255), Math.round(this.b * 255)];\n var k = Math.pow(10, fractionDigits);\n if (this.a !== 1) {\n components.push(Math.round(this.a * k) / k);\n return \"rgba(\" + components.join(', ') + \")\";\n }\n return \"rgb(\" + components.join(', ') + \")\";\n };\n Color.prototype.toString = function () {\n if (this.a === 1) {\n return this.toHexString();\n }\n return this.toRgbaString();\n };\n Color.prototype.toHSB = function () {\n return Color.RGBtoHSB(this.r, this.g, this.b);\n };\n /**\n * Converts the given RGB triple to an array of HSB (HSV) components.\n * The hue component will be `NaN` for achromatic colors.\n */\n Color.RGBtoHSB = function (r, g, b) {\n var min = Math.min(r, g, b);\n var max = Math.max(r, g, b);\n var S = max !== 0 ? (max - min) / max : 0;\n var H = NaN;\n // min == max, means all components are the same\n // and the color is a shade of gray with no hue (H is NaN)\n if (min !== max) {\n var delta = max - min;\n var rc = (max - r) / delta;\n var gc = (max - g) / delta;\n var bc = (max - b) / delta;\n if (r === max) {\n H = bc - gc;\n }\n else if (g === max) {\n H = 2.0 + rc - bc;\n }\n else {\n H = 4.0 + gc - rc;\n }\n H /= 6.0;\n if (H < 0) {\n H = H + 1.0;\n }\n }\n return [H * 360, S, max];\n };\n /**\n * Converts the given HSB (HSV) triple to an array of RGB components.\n */\n Color.HSBtoRGB = function (H, S, B) {\n if (isNaN(H)) {\n H = 0;\n }\n H = (((H % 360) + 360) % 360) / 360; // normalize hue to [0, 360] interval, then scale to [0, 1]\n var r = 0;\n var g = 0;\n var b = 0;\n if (S === 0) {\n r = g = b = B;\n }\n else {\n var h = (H - Math.floor(H)) * 6;\n var f = h - Math.floor(h);\n var p = B * (1 - S);\n var q = B * (1 - S * f);\n var t = B * (1 - S * (1 - f));\n switch (h >> 0 // discard the floating point part of the number\n ) {\n case 0:\n r = B;\n g = t;\n b = p;\n break;\n case 1:\n r = q;\n g = B;\n b = p;\n break;\n case 2:\n r = p;\n g = B;\n b = t;\n break;\n case 3:\n r = p;\n g = q;\n b = B;\n break;\n case 4:\n r = t;\n g = p;\n b = B;\n break;\n case 5:\n r = B;\n g = p;\n b = q;\n break;\n }\n }\n return [r, g, b];\n };\n Color.prototype.derive = function (hueShift, saturationFactor, brightnessFactor, opacityFactor) {\n var hsb = Color.RGBtoHSB(this.r, this.g, this.b);\n var b = hsb[2];\n if (b == 0 && brightnessFactor > 1.0) {\n b = 0.05;\n }\n var h = (((hsb[0] + hueShift) % 360) + 360) % 360;\n var s = Math.max(Math.min(hsb[1] * saturationFactor, 1.0), 0.0);\n b = Math.max(Math.min(b * brightnessFactor, 1.0), 0.0);\n var a = Math.max(Math.min(this.a * opacityFactor, 1.0), 0.0);\n var rgba = Color.HSBtoRGB(h, s, b);\n rgba.push(a);\n return Color.fromArray(rgba);\n };\n Color.prototype.brighter = function () {\n return this.derive(0, 1.0, 1.0 / 0.7, 1.0);\n };\n Color.prototype.darker = function () {\n return this.derive(0, 1.0, 0.7, 1.0);\n };\n Color.interpolate = function (color, other) {\n var c0 = Color.tryParseFromString(color);\n var c1 = Color.tryParseFromString(other);\n return function (t) {\n var i = function (x, y) { return x * (1 - t) + y * t; };\n var c = new Color(i(c0.r, c1.r), i(c0.g, c1.g), i(c0.b, c1.b), i(c0.a, c1.a));\n return c.toString();\n };\n };\n /**\n * CSS Color Module Level 4:\n * https://drafts.csswg.org/css-color/#named-colors\n */\n Color.nameToHex = Object.freeze({\n aliceblue: '#F0F8FF',\n antiquewhite: '#FAEBD7',\n aqua: '#00FFFF',\n aquamarine: '#7FFFD4',\n azure: '#F0FFFF',\n beige: '#F5F5DC',\n bisque: '#FFE4C4',\n black: '#000000',\n blanchedalmond: '#FFEBCD',\n blue: '#0000FF',\n blueviolet: '#8A2BE2',\n brown: '#A52A2A',\n burlywood: '#DEB887',\n cadetblue: '#5F9EA0',\n chartreuse: '#7FFF00',\n chocolate: '#D2691E',\n coral: '#FF7F50',\n cornflowerblue: '#6495ED',\n cornsilk: '#FFF8DC',\n crimson: '#DC143C',\n cyan: '#00FFFF',\n darkblue: '#00008B',\n darkcyan: '#008B8B',\n darkgoldenrod: '#B8860B',\n darkgray: '#A9A9A9',\n darkgreen: '#006400',\n darkgrey: '#A9A9A9',\n darkkhaki: '#BDB76B',\n darkmagenta: '#8B008B',\n darkolivegreen: '#556B2F',\n darkorange: '#FF8C00',\n darkorchid: '#9932CC',\n darkred: '#8B0000',\n darksalmon: '#E9967A',\n darkseagreen: '#8FBC8F',\n darkslateblue: '#483D8B',\n darkslategray: '#2F4F4F',\n darkslategrey: '#2F4F4F',\n darkturquoise: '#00CED1',\n darkviolet: '#9400D3',\n deeppink: '#FF1493',\n deepskyblue: '#00BFFF',\n dimgray: '#696969',\n dimgrey: '#696969',\n dodgerblue: '#1E90FF',\n firebrick: '#B22222',\n floralwhite: '#FFFAF0',\n forestgreen: '#228B22',\n fuchsia: '#FF00FF',\n gainsboro: '#DCDCDC',\n ghostwhite: '#F8F8FF',\n gold: '#FFD700',\n goldenrod: '#DAA520',\n gray: '#808080',\n green: '#008000',\n greenyellow: '#ADFF2F',\n grey: '#808080',\n honeydew: '#F0FFF0',\n hotpink: '#FF69B4',\n indianred: '#CD5C5C',\n indigo: '#4B0082',\n ivory: '#FFFFF0',\n khaki: '#F0E68C',\n lavender: '#E6E6FA',\n lavenderblush: '#FFF0F5',\n lawngreen: '#7CFC00',\n lemonchiffon: '#FFFACD',\n lightblue: '#ADD8E6',\n lightcoral: '#F08080',\n lightcyan: '#E0FFFF',\n lightgoldenrodyellow: '#FAFAD2',\n lightgray: '#D3D3D3',\n lightgreen: '#90EE90',\n lightgrey: '#D3D3D3',\n lightpink: '#FFB6C1',\n lightsalmon: '#FFA07A',\n lightseagreen: '#20B2AA',\n lightskyblue: '#87CEFA',\n lightslategray: '#778899',\n lightslategrey: '#778899',\n lightsteelblue: '#B0C4DE',\n lightyellow: '#FFFFE0',\n lime: '#00FF00',\n limegreen: '#32CD32',\n linen: '#FAF0E6',\n magenta: '#FF00FF',\n maroon: '#800000',\n mediumaquamarine: '#66CDAA',\n mediumblue: '#0000CD',\n mediumorchid: '#BA55D3',\n mediumpurple: '#9370DB',\n mediumseagreen: '#3CB371',\n mediumslateblue: '#7B68EE',\n mediumspringgreen: '#00FA9A',\n mediumturquoise: '#48D1CC',\n mediumvioletred: '#C71585',\n midnightblue: '#191970',\n mintcream: '#F5FFFA',\n mistyrose: '#FFE4E1',\n moccasin: '#FFE4B5',\n navajowhite: '#FFDEAD',\n navy: '#000080',\n oldlace: '#FDF5E6',\n olive: '#808000',\n olivedrab: '#6B8E23',\n orange: '#FFA500',\n orangered: '#FF4500',\n orchid: '#DA70D6',\n palegoldenrod: '#EEE8AA',\n palegreen: '#98FB98',\n paleturquoise: '#AFEEEE',\n palevioletred: '#DB7093',\n papayawhip: '#FFEFD5',\n peachpuff: '#FFDAB9',\n peru: '#CD853F',\n pink: '#FFC0CB',\n plum: '#DDA0DD',\n powderblue: '#B0E0E6',\n purple: '#800080',\n rebeccapurple: '#663399',\n red: '#FF0000',\n rosybrown: '#BC8F8F',\n royalblue: '#4169E1',\n saddlebrown: '#8B4513',\n salmon: '#FA8072',\n sandybrown: '#F4A460',\n seagreen: '#2E8B57',\n seashell: '#FFF5EE',\n sienna: '#A0522D',\n silver: '#C0C0C0',\n skyblue: '#87CEEB',\n slateblue: '#6A5ACD',\n slategray: '#708090',\n slategrey: '#708090',\n snow: '#FFFAFA',\n springgreen: '#00FF7F',\n steelblue: '#4682B4',\n tan: '#D2B48C',\n teal: '#008080',\n thistle: '#D8BFD8',\n tomato: '#FF6347',\n transparent: '#00000000',\n turquoise: '#40E0D0',\n violet: '#EE82EE',\n wheat: '#F5DEB3',\n white: '#FFFFFF',\n whitesmoke: '#F5F5F5',\n yellow: '#FFFF00',\n yellowgreen: '#9ACD32',\n });\n return Color;\n}());\n\nvar __values$J = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar BREAK_TRANSFORM_CHAIN = Symbol('BREAK');\nvar CONFIG_KEY = '__decorator_config';\nfunction initialiseConfig(target, propertyKeyOrSymbol, propertyKey, valueStoreKey) {\n if (Object.getOwnPropertyDescriptor(target, CONFIG_KEY) == null) {\n Object.defineProperty(target, CONFIG_KEY, { value: {} });\n }\n var config = target[CONFIG_KEY];\n if (config[propertyKey] != null) {\n return config[propertyKey];\n }\n config[propertyKey] = { setters: [], getters: [] };\n var descriptor = Object.getOwnPropertyDescriptor(target, propertyKeyOrSymbol);\n var prevSet = descriptor === null || descriptor === void 0 ? void 0 : descriptor.set;\n var prevGet = descriptor === null || descriptor === void 0 ? void 0 : descriptor.get;\n var getter = function () {\n var e_1, _a;\n var _b, _c;\n var value = prevGet ? prevGet.call(this) : this[valueStoreKey];\n try {\n for (var _d = __values$J((_c = (_b = config[propertyKey]) === null || _b === void 0 ? void 0 : _b.getters) !== null && _c !== void 0 ? _c : []), _e = _d.next(); !_e.done; _e = _d.next()) {\n var transformFn = _e.value;\n value = transformFn(this, propertyKeyOrSymbol, value);\n if (value === BREAK_TRANSFORM_CHAIN) {\n return undefined;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_e && !_e.done && (_a = _d.return)) _a.call(_d);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return value;\n };\n var setter = function (value) {\n var e_2, _a;\n var _b, _c;\n var setters = (_c = (_b = config[propertyKey]) === null || _b === void 0 ? void 0 : _b.setters) !== null && _c !== void 0 ? _c : [];\n var oldValue;\n if (setters.some(function (f) { return f.length > 2; })) {\n // Lazily retrieve old value.\n oldValue = prevGet ? prevGet.call(this) : this[valueStoreKey];\n }\n try {\n for (var setters_1 = __values$J(setters), setters_1_1 = setters_1.next(); !setters_1_1.done; setters_1_1 = setters_1.next()) {\n var transformFn = setters_1_1.value;\n value = transformFn(this, propertyKeyOrSymbol, value, oldValue);\n if (value === BREAK_TRANSFORM_CHAIN) {\n return;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (setters_1_1 && !setters_1_1.done && (_a = setters_1.return)) _a.call(setters_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (prevSet) {\n prevSet.call(this, value);\n }\n else {\n this[valueStoreKey] = value;\n }\n };\n Object.defineProperty(target, propertyKeyOrSymbol, {\n set: setter,\n get: getter,\n enumerable: true,\n configurable: false,\n });\n return config[propertyKey];\n}\nfunction addTransformToInstanceProperty(setTransform, getTransform) {\n return function (target, propertyKeyOrSymbol) {\n var propertyKey = propertyKeyOrSymbol.toString();\n var valueStoreKey = \"__\" + propertyKey;\n var _a = initialiseConfig(target, propertyKeyOrSymbol, propertyKey, valueStoreKey), getters = _a.getters, setters = _a.setters;\n setters.push(setTransform);\n if (getTransform) {\n getters.splice(0, 0, getTransform);\n }\n };\n}\n\nfunction Validate(predicate) {\n return addTransformToInstanceProperty(function (target, prop, v) {\n var _a, _b, _c;\n if (predicate(v, { target: target })) {\n return v;\n }\n var cleanKey = prop.toString().replace(/^_*/, '');\n var targetClass = (_b = (_a = target.constructor) === null || _a === void 0 ? void 0 : _a.className) !== null && _b !== void 0 ? _b : (_c = target.constructor) === null || _c === void 0 ? void 0 : _c.name;\n if ((targetClass === null || targetClass === void 0 ? void 0 : targetClass.length) < 3) {\n targetClass = null;\n }\n var targetClassName = targetClass ? \"of [\" + targetClass + \"] \" : '';\n if (predicate.message) {\n Logger.warn(\"Property [\" + cleanKey + \"] \" + targetClassName + \"cannot be set to [\" + JSON.stringify(v) + \"]; \" + predicate.message + \", ignoring.\");\n }\n else {\n Logger.warn(\"Property [\" + cleanKey + \"] \" + targetClassName + \"cannot be set to [\" + JSON.stringify(v) + \"], ignoring.\");\n }\n return BREAK_TRANSFORM_CHAIN;\n });\n}\nfunction predicateWithMessage(predicate, message) {\n predicate.message = message;\n return predicate;\n}\nvar OPTIONAL = function (v, ctx, predicate) {\n return v === undefined || predicate(v, ctx);\n};\nvar ARRAY = function (length, predicate) {\n return predicateWithMessage(function (v, ctx) {\n return Array.isArray(v) &&\n (length ? v.length === length : true) &&\n (predicate ? v.every(function (e) { return predicate(e, ctx); }) : true);\n }, \"expecting an Array\");\n};\nvar OPT_ARRAY = function (length) {\n return predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, ARRAY(length)); }, 'expecting an optional Array');\n};\nvar AND = function () {\n var predicates = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n predicates[_i] = arguments[_i];\n }\n return predicateWithMessage(function (v, ctx) { return predicates.every(function (p) { return p(v, ctx); }); }, predicates\n .map(function (p) { return p.message; })\n .filter(function (m) { return m != null; })\n .join(' AND '));\n};\nvar OR = function () {\n var predicates = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n predicates[_i] = arguments[_i];\n }\n return predicateWithMessage(function (v, ctx) { return predicates.some(function (p) { return p(v, ctx); }); }, predicates\n .map(function (p) { return p.message; })\n .filter(function (m) { return m != null; })\n .join(' OR '));\n};\nvar isComparable = function (v) {\n return v != null && !isNaN(v);\n};\nvar LESS_THAN = function (otherField) {\n return predicateWithMessage(function (v, ctx) {\n return !isComparable(v) || !isComparable(ctx.target[otherField]) || v < ctx.target[otherField];\n }, \"expected to be less than \" + otherField);\n};\nvar GREATER_THAN = function (otherField) {\n return predicateWithMessage(function (v, ctx) {\n return !isComparable(v) || !isComparable(ctx.target[otherField]) || v > ctx.target[otherField];\n }, \"expected to be greater than \" + otherField);\n};\nvar FUNCTION = predicateWithMessage(function (v) { return typeof v === 'function'; }, 'expecting a Function');\nvar OPT_FUNCTION = predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, FUNCTION); }, \"expecting an optional Function\");\nvar BOOLEAN = predicateWithMessage(function (v) { return v === true || v === false; }, 'expecting a Boolean');\nvar OPT_BOOLEAN = predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, BOOLEAN); }, 'expecting an optional Boolean');\nvar STRING = predicateWithMessage(function (v) { return typeof v === 'string'; }, 'expecting a String');\nvar OPT_STRING = predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, STRING); }, 'expecting an optional String');\nvar DATE = predicateWithMessage(function (v) { return v instanceof Date && !isNaN(+v); }, 'expecting a Date object');\nvar OPT_DATE = predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, DATE); }, 'expecting an optional Date');\npredicateWithMessage(ARRAY(undefined, DATE), 'expecting an Array of Date objects');\nvar DATETIME_MS = NUMBER(0);\nvar OPT_DATETIME_MS = predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, DATETIME_MS); }, 'expecting an optional number');\nvar OPT_DATE_OR_DATETIME_MS = OR(OPT_DATE, OPT_DATETIME_MS);\nvar colorMessage = \"A color string can be in one of the following formats to be valid: #rgb, #rrggbb, rgb(r, g, b), rgba(r, g, b, a) or a CSS color name such as 'white', 'orange', 'cyan', etc\";\nvar COLOR_STRING = predicateWithMessage(function (v) {\n if (typeof v !== 'string') {\n return false;\n }\n return Color.validColorString(v);\n}, \"expecting a color String. \" + colorMessage);\nvar OPT_COLOR_STRING = predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, COLOR_STRING); }, \"expecting an optional color String. \" + colorMessage);\nvar COLOR_STRING_ARRAY = predicateWithMessage(ARRAY(undefined, COLOR_STRING), \"expecting an Array of color strings. \" + colorMessage);\nvar OPT_COLOR_STRING_ARRAY = predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, COLOR_STRING_ARRAY); }, \"expecting an optional Array of color strings. \" + colorMessage);\nfunction NUMBER(min, max) {\n var message = \"expecting a finite Number\" + ((min !== undefined ? ', more than or equal to ' + min : '') +\n (max !== undefined ? ', less than or equal to ' + max : ''));\n return predicateWithMessage(function (v) {\n return typeof v === 'number' &&\n Number.isFinite(v) &&\n (min !== undefined ? v >= min : true) &&\n (max !== undefined ? v <= max : true);\n }, message);\n}\nfunction OPT_NUMBER(min, max) {\n var message = \"expecting an optional finite Number\" + ((min !== undefined ? ', more than or equal to ' + min : '') +\n (max !== undefined ? ', less than or equal to ' + max : ''));\n return predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, NUMBER(min, max)); }, message);\n}\nfunction NUMBER_OR_NAN(min, max) {\n // Can be NaN or finite number\n var message = \"expecting a finite Number\" + ((min !== undefined ? ', more than or equal to ' + min : '') +\n (max !== undefined ? ', less than or equal to ' + max : ''));\n return predicateWithMessage(function (v) {\n return typeof v === 'number' &&\n (isNaN(v) ||\n (Number.isFinite(v) && (min !== undefined ? v >= min : true) && (max !== undefined ? v <= max : true)));\n }, message);\n}\nvar NUMBER_ARRAY = predicateWithMessage(ARRAY(undefined, NUMBER()), 'expecting an Array of numbers');\nvar OPT_NUMBER_ARRAY = predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, NUMBER_ARRAY); }, 'expecting an optional Array of numbers');\nvar STRING_ARRAY = predicateWithMessage(ARRAY(undefined, STRING), 'expecting an Array of strings');\npredicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, STRING_ARRAY); }, 'expecting an optional Array of strings');\nfunction STRING_UNION() {\n var values = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n values[_i] = arguments[_i];\n }\n var message = \"expecting one of: \" + values.join(', ');\n return predicateWithMessage(function (v) { return typeof v === 'string' && values.indexOf(v) >= 0; }, message);\n}\nvar BOOLEAN_ARRAY = predicateWithMessage(ARRAY(undefined, BOOLEAN), 'expecting an Array of boolean values');\npredicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, BOOLEAN_ARRAY); }, 'expecting an optional Array of boolean values');\nvar FONT_WEIGHTS = [\n 'normal',\n 'bold',\n 'bolder',\n 'lighter',\n '100',\n '200',\n '300',\n '400',\n '500',\n '600',\n '700',\n '800',\n '900',\n];\nvar FONT_STYLE = predicateWithMessage(function (v) { return v === 'normal' || v === 'italic' || v === 'oblique'; }, \"expecting a font style keyword such as 'normal', 'italic' or 'oblique'\");\nvar OPT_FONT_STYLE = predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, FONT_STYLE); }, \"expecting an optional font style keyword such as 'normal', 'italic' or 'oblique'\");\nvar FONT_WEIGHT = predicateWithMessage(function (v) { return FONT_WEIGHTS.includes(v); }, \"expecting a font weight keyword such as 'normal', 'bold' or 'bolder' or a numeric value such as 100, 300 or 600\");\nvar OPT_FONT_WEIGHT = predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, FONT_WEIGHT); }, \"expecting an optional font weight keyword such as 'normal', 'bold' or 'bolder' or a numeric value such as 100, 300 or 600\");\nvar LINE_DASH = predicateWithMessage(ARRAY(undefined, NUMBER(0)), 'expecting an Array of numbers specifying the length in pixels of alternating dashes and gaps, for example, [6, 3] means dashes with a length of 6 pixels with gaps between of 3 pixels.');\nvar OPT_LINE_DASH = predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, LINE_DASH); }, 'expecting an optional Array of numbers specifying the length in pixels of alternating dashes and gaps, for example, [6, 3] means dashes with a length of 6 pixels with gaps between of 3 pixels.');\nvar LINE_CAPS = ['butt', 'round', 'square'];\nvar LINE_CAP = predicateWithMessage(function (v) { return LINE_CAPS.includes(v); }, \"expecting a line cap keyword such as 'butt', 'round' or 'square'\");\npredicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, LINE_CAP); }, \"expecting an optional line cap keyword such as 'butt', 'round' or 'square'\");\nvar LINE_JOINS = ['round', 'bevel', 'miter'];\nvar LINE_JOIN = predicateWithMessage(function (v) { return LINE_JOINS.includes(v); }, \"expecting a line join keyword such as 'round', 'bevel' or 'miter'\");\npredicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, LINE_JOIN); }, \"expecting an optional line join keyword such as 'round', 'bevel' or 'miter'\");\nvar POSITIONS = ['top', 'right', 'bottom', 'left'];\nvar POSITION = predicateWithMessage(function (v) { return POSITIONS.includes(v); }, \"expecting a position keyword such as 'top', 'right', 'bottom' or 'left\");\nvar INTERACTION_RANGES = ['exact', 'nearest'];\nvar INTERACTION_RANGE = predicateWithMessage(function (v) { return (typeof v === 'number' && Number.isFinite(v)) || INTERACTION_RANGES.includes(v); }, \"expecting an interaction range of 'exact', 'nearest' or a number\");\nvar TEXT_WRAPS = ['never', 'always', 'hyphenate', 'on-space'];\nvar TEXT_WRAP = predicateWithMessage(function (v) { return TEXT_WRAPS.includes(v); }, \"expecting a text wrap strategy keyword such as 'never', 'always', 'hyphenate', 'on-space'\");\n\n/**\n * Constants to declare the expected nominal zIndex for all types of layer in chart rendering.\n */\nvar Layers;\n(function (Layers) {\n Layers[Layers[\"SERIES_BACKGROUND_ZINDEX\"] = -10] = \"SERIES_BACKGROUND_ZINDEX\";\n Layers[Layers[\"AXIS_GRID_ZINDEX\"] = 0] = \"AXIS_GRID_ZINDEX\";\n Layers[Layers[\"AXIS_ZINDEX\"] = 20] = \"AXIS_ZINDEX\";\n Layers[Layers[\"SERIES_CROSSLINE_RANGE_ZINDEX\"] = 30] = \"SERIES_CROSSLINE_RANGE_ZINDEX\";\n Layers[Layers[\"SERIES_LAYER_ZINDEX\"] = 500] = \"SERIES_LAYER_ZINDEX\";\n Layers[Layers[\"SERIES_CROSSHAIR_ZINDEX\"] = 1000] = \"SERIES_CROSSHAIR_ZINDEX\";\n Layers[Layers[\"SERIES_LABEL_ZINDEX\"] = 1500] = \"SERIES_LABEL_ZINDEX\";\n Layers[Layers[\"SERIES_CROSSLINE_LINE_ZINDEX\"] = 2500] = \"SERIES_CROSSLINE_LINE_ZINDEX\";\n Layers[Layers[\"LEGEND_ZINDEX\"] = 3000] = \"LEGEND_ZINDEX\";\n})(Layers || (Layers = {}));\n\nvar ChartAxisDirection;\n(function (ChartAxisDirection) {\n ChartAxisDirection[\"X\"] = \"x\";\n ChartAxisDirection[\"Y\"] = \"y\";\n})(ChartAxisDirection || (ChartAxisDirection = {}));\n\nvar DataDomain = /** @class */ (function () {\n function DataDomain(type) {\n this.type = type;\n this.continuousDomain = [Infinity, -Infinity];\n this.discreteDomain = new Set();\n }\n DataDomain.prototype.extend = function (val) {\n if (this.type === 'discrete') {\n this.discreteDomain.add(val);\n }\n else if (this.type === 'continuous') {\n if (this.continuousDomain[0] > val) {\n this.continuousDomain[0] = val;\n }\n if (this.continuousDomain[1] < val) {\n this.continuousDomain[1] = val;\n }\n }\n };\n DataDomain.prototype.getDomain = function () {\n if (this.type === 'discrete') {\n return this.discreteDomain;\n }\n else if (this.type === 'continuous') {\n return this.continuousDomain;\n }\n throw new Error('AG Charts - Unsupported data domain type: ' + this.type);\n };\n return DataDomain;\n}());\n\nvar __values$I = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nfunction extendDomain(values, domain) {\n var e_1, _a;\n if (domain === void 0) { domain = [Infinity, -Infinity]; }\n try {\n for (var values_1 = __values$I(values), values_1_1 = values_1.next(); !values_1_1.done; values_1_1 = values_1.next()) {\n var value = values_1_1.value;\n if (typeof value !== 'number') {\n continue;\n }\n if (value < domain[0]) {\n domain[0] = value;\n }\n if (value > domain[1]) {\n domain[1] = value;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (values_1_1 && !values_1_1.done && (_a = values_1.return)) _a.call(values_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return domain;\n}\n\nvar __assign$T = (undefined && undefined.__assign) || function () {\n __assign$T = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$T.apply(this, arguments);\n};\nvar __read$13 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __values$H = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __spreadArray$D = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nfunction toKeyString(keys) {\n return keys\n .map(function (v) {\n if (v == null) {\n return v;\n }\n else if (typeof v === 'number' || typeof v === 'string' || typeof v === 'boolean') {\n return v;\n }\n else if (typeof v === 'object') {\n return JSON.stringify(v);\n }\n return v;\n })\n .join('-');\n}\nfunction round(val) {\n var accuracy = 10000;\n if (Number.isInteger(val)) {\n return val;\n }\n else if (Math.abs(val) > accuracy) {\n return Math.trunc(val);\n }\n return Math.round(val * accuracy) / accuracy;\n}\nfunction fixNumericExtent(extent) {\n if (extent === undefined) {\n // Don't return a range, there is no range.\n return [];\n }\n var _a = __read$13(extent, 2), min = _a[0], max = _a[1];\n min = +min;\n max = +max;\n if (min === 0 && max === 0) {\n // domain has zero length and the single valid value is 0. Use the default of [0, 1].\n return [0, 1];\n }\n if (min === Infinity && max === -Infinity) {\n // There's no data in the domain.\n return [];\n }\n if (min === Infinity) {\n min = 0;\n }\n if (max === -Infinity) {\n max = 0;\n }\n if (!(isNumber$4(min) && isNumber$4(max))) {\n return [];\n }\n return [min, max];\n}\nvar INVALID_VALUE = Symbol('invalid');\nvar DataModel = /** @class */ (function () {\n function DataModel(opts) {\n var e_1, _a, e_2, _b, e_3, _c;\n var _this = this;\n var props = opts.props;\n // Validate that keys appear before values in the definitions, as output ordering depends\n // on configuration ordering, but we process keys before values.\n var keys = true;\n try {\n for (var props_1 = __values$H(props), props_1_1 = props_1.next(); !props_1_1.done; props_1_1 = props_1.next()) {\n var next = props_1_1.value;\n if (next.type === 'key' && !keys) {\n throw new Error('AG Charts - internal config error: keys must come before values.');\n }\n if (next.type === 'value' && keys) {\n keys = false;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (props_1_1 && !props_1_1.done && (_a = props_1.return)) _a.call(props_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.opts = __assign$T({ dataVisible: true }, opts);\n this.keys = props\n .filter(function (def) { return def.type === 'key'; })\n .map(function (def, index) { return (__assign$T(__assign$T({}, def), { index: index, missing: 0 })); });\n this.values = props\n .filter(function (def) { return def.type === 'value'; })\n .map(function (def, index) { return (__assign$T(__assign$T({}, def), { index: index, missing: 0 })); });\n this.aggregates = props\n .filter(function (def) { return def.type === 'aggregate'; })\n .map(function (def, index) { return (__assign$T(__assign$T({}, def), { index: index })); });\n this.groupProcessors = props\n .filter(function (def) { return def.type === 'group-value-processor'; })\n .map(function (def, index) { return (__assign$T(__assign$T({}, def), { index: index })); });\n this.propertyProcessors = props\n .filter(function (def) { return def.type === 'property-value-processor'; })\n .map(function (def, index) { return (__assign$T(__assign$T({}, def), { index: index })); });\n this.reducers = props\n .filter(function (def) { return def.type === 'reducer'; })\n .map(function (def, index) { return (__assign$T(__assign$T({}, def), { index: index })); });\n this.processors = props\n .filter(function (def) { return def.type === 'processor'; })\n .map(function (def, index) { return (__assign$T(__assign$T({}, def), { index: index })); });\n try {\n for (var _d = __values$H(this.values), _e = _d.next(); !_e.done; _e = _d.next()) {\n var def = _e.value;\n if (def.property == null) {\n throw new Error(\"AG Charts - internal config error: no properties specified for value definitions: \" + JSON.stringify(def));\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_e && !_e.done && (_b = _d.return)) _b.call(_d);\n }\n finally { if (e_2) throw e_2.error; }\n }\n var verifyMatchGroupId = function (_a) {\n var e_4, _b;\n var matchGroupIds = _a.matchGroupIds;\n var _loop_1 = function (matchGroupId) {\n if (!_this.values.some(function (def) { return def.groupId === matchGroupId; })) {\n throw new Error(\"AG Charts - internal config error: matchGroupIds properties must match defined groups (\" + matchGroupId + \").\");\n }\n };\n try {\n for (var _c = __values$H(matchGroupIds !== null && matchGroupIds !== void 0 ? matchGroupIds : []), _d = _c.next(); !_d.done; _d = _c.next()) {\n var matchGroupId = _d.value;\n _loop_1(matchGroupId);\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n }\n finally { if (e_4) throw e_4.error; }\n }\n };\n var verifyMatchScopes = function (_a) {\n var e_5, _b;\n var matchScopes = _a.matchScopes;\n var _loop_2 = function (matchScope) {\n if (!_this.values.some(function (def) { var _a; return (_a = def.scopes) === null || _a === void 0 ? void 0 : _a.includes(matchScope); })) {\n throw new Error(\"AG Charts - internal config error: matchGroupIds properties must match defined groups (\" + matchScope + \").\");\n }\n };\n try {\n for (var _c = __values$H(matchScopes !== null && matchScopes !== void 0 ? matchScopes : []), _d = _c.next(); !_d.done; _d = _c.next()) {\n var matchScope = _d.value;\n _loop_2(matchScope);\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n }\n finally { if (e_5) throw e_5.error; }\n }\n };\n var verifyMatchIds = function (_a) {\n var e_6, _b;\n var matchIds = _a.matchIds;\n var _loop_3 = function (matchId) {\n if (!_this.values.some(function (def) { return def.id === matchId; })) {\n throw new Error(\"AG Charts - internal config error: matchGroupIds properties must match defined groups (\" + matchId + \").\");\n }\n };\n try {\n for (var _c = __values$H(matchIds !== null && matchIds !== void 0 ? matchIds : []), _d = _c.next(); !_d.done; _d = _c.next()) {\n var matchId = _d.value;\n _loop_3(matchId);\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_b = _c.return)) _b.call(_c);\n }\n finally { if (e_6) throw e_6.error; }\n }\n };\n try {\n for (var _f = __values$H(__spreadArray$D(__spreadArray$D([], __read$13(this.groupProcessors)), __read$13(this.aggregates))), _g = _f.next(); !_g.done; _g = _f.next()) {\n var def = _g.value;\n verifyMatchIds(def);\n verifyMatchGroupId(def);\n verifyMatchScopes(def);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_g && !_g.done && (_c = _f.return)) _c.call(_f);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }\n DataModel.prototype.resolveProcessedDataIndexById = function (scope, searchId, type) {\n var _a;\n if (type === void 0) { type = 'value'; }\n var _b = (_a = this.resolveProcessedDataDefById(scope, searchId, type)) !== null && _a !== void 0 ? _a : {}, index = _b.index, def = _b.def;\n return { type: type, index: index, def: def };\n };\n DataModel.prototype.resolveProcessedDataIndicesById = function (scope, searchId, type) {\n if (type === void 0) { type = 'value'; }\n return this.resolveProcessedDataDefsById(scope, searchId, type).map(function (_a) {\n var index = _a.index, def = _a.def;\n return ({ type: type, index: index, def: def });\n });\n };\n DataModel.prototype.resolveProcessedDataDefById = function (scope, searchId, type) {\n if (type === void 0) { type = 'value'; }\n return this.resolveProcessedDataDefsById(scope, searchId, type)[0];\n };\n DataModel.prototype.resolveProcessedDataDefsById = function (scope, searchId, type) {\n var e_7, _a;\n if (type === void 0) { type = 'value'; }\n var _b = this, keys = _b.keys, values = _b.values, aggregates = _b.aggregates, groupProcessors = _b.groupProcessors, reducers = _b.reducers;\n var match = function (_a) {\n var id = _a.id, scopes = _a.scopes;\n if (id == null)\n return false;\n if (scope != null && !(scopes === null || scopes === void 0 ? void 0 : scopes.includes(scope.id)))\n return false;\n if (typeof searchId === 'string') {\n return id === searchId;\n }\n return searchId.test(id);\n };\n var allDefs = [\n keys,\n values,\n aggregates,\n groupProcessors,\n reducers,\n ];\n var result = [];\n try {\n for (var allDefs_1 = __values$H(allDefs), allDefs_1_1 = allDefs_1.next(); !allDefs_1_1.done; allDefs_1_1 = allDefs_1.next()) {\n var defs = allDefs_1_1.value;\n result.push.apply(result, __spreadArray$D([], __read$13(defs.filter(match).map(function (def) { return ({ index: def.index, def: def }); }))));\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (allDefs_1_1 && !allDefs_1_1.done && (_a = allDefs_1.return)) _a.call(allDefs_1);\n }\n finally { if (e_7) throw e_7.error; }\n }\n if (result.length > 0) {\n return result;\n }\n throw new Error(\"AG Charts - didn't find property definition for [\" + searchId + \", \" + scope.id + \", \" + type + \"]\");\n };\n DataModel.prototype.getDomain = function (scope, searchId, type, processedData) {\n var e_8, _a;\n var _b, _c, _d, _e;\n if (type === void 0) { type = 'value'; }\n var matches;\n try {\n matches = this.resolveProcessedDataIndicesById(scope, searchId, type);\n }\n catch (e) {\n if (typeof searchId !== 'string' && /didn't find property definition/.test(e.message))\n return [];\n throw e;\n }\n var domainProp;\n switch (type) {\n case 'key':\n domainProp = 'keys';\n break;\n case 'value':\n domainProp = 'values';\n break;\n case 'aggregate':\n domainProp = 'aggValues';\n break;\n case 'group-value-processor':\n domainProp = 'groups';\n break;\n default:\n return [];\n }\n var firstMatch = (_c = (_b = processedData.domain[domainProp]) === null || _b === void 0 ? void 0 : _b[matches[0].index]) !== null && _c !== void 0 ? _c : [];\n if (matches.length === 1) {\n return firstMatch;\n }\n var result = __spreadArray$D([], __read$13(firstMatch));\n try {\n for (var _f = __values$H(matches.slice(1)), _g = _f.next(); !_g.done; _g = _f.next()) {\n var idx = _g.value;\n extendDomain((_e = (_d = processedData.domain[domainProp]) === null || _d === void 0 ? void 0 : _d[idx.index]) !== null && _e !== void 0 ? _e : [], result);\n }\n }\n catch (e_8_1) { e_8 = { error: e_8_1 }; }\n finally {\n try {\n if (_g && !_g.done && (_a = _f.return)) _a.call(_f);\n }\n finally { if (e_8) throw e_8.error; }\n }\n return result;\n };\n DataModel.prototype.processData = function (data) {\n var e_9, _a, e_10, _b;\n var _c = this, _d = _c.opts, groupByKeys = _d.groupByKeys, groupByFn = _d.groupByFn, aggregates = _c.aggregates, groupProcessors = _c.groupProcessors, reducers = _c.reducers, processors = _c.processors, propertyProcessors = _c.propertyProcessors;\n var start = performance.now();\n try {\n for (var _e = __values$H(__spreadArray$D(__spreadArray$D([], __read$13(this.keys)), __read$13(this.values))), _f = _e.next(); !_f.done; _f = _e.next()) {\n var def = _f.value;\n def.missing = 0;\n }\n }\n catch (e_9_1) { e_9 = { error: e_9_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_a = _e.return)) _a.call(_e);\n }\n finally { if (e_9) throw e_9.error; }\n }\n if (groupByKeys && this.keys.length === 0) {\n return undefined;\n }\n var processedData = this.extractData(data);\n if (groupByKeys) {\n processedData = this.groupData(processedData);\n }\n else if (groupByFn) {\n processedData = this.groupData(processedData, groupByFn(processedData));\n }\n if (groupProcessors.length > 0) {\n this.postProcessGroups(processedData);\n }\n if (aggregates.length > 0) {\n this.aggregateData(processedData);\n }\n if (propertyProcessors.length > 0) {\n this.postProcessProperties(processedData);\n }\n if (reducers.length > 0) {\n this.reduceData(processedData);\n }\n if (processors.length > 0) {\n this.postProcessData(processedData);\n }\n try {\n for (var _g = __values$H(__spreadArray$D(__spreadArray$D([], __read$13(this.keys)), __read$13(this.values))), _h = _g.next(); !_h.done; _h = _g.next()) {\n var def = _h.value;\n if (data.length > 0 && def.missing >= data.length) {\n Logger.warnOnce(\"the key '\" + def.property + \"' was not found in any data element.\");\n }\n }\n }\n catch (e_10_1) { e_10 = { error: e_10_1 }; }\n finally {\n try {\n if (_h && !_h.done && (_b = _g.return)) _b.call(_g);\n }\n finally { if (e_10) throw e_10.error; }\n }\n var end = performance.now();\n processedData.time = end - start;\n if (DataModel.DEBUG()) {\n logProcessedData(processedData);\n }\n return processedData;\n };\n DataModel.prototype.valueGroupIdxLookup = function (_a) {\n var matchGroupIds = _a.matchGroupIds, matchIds = _a.matchIds, matchScopes = _a.matchScopes;\n return this.values\n .map(function (def, index) { return ({ def: def, index: index }); })\n .filter(function (_a) {\n var def = _a.def;\n if (matchGroupIds && (def.groupId == null || !matchGroupIds.includes(def.groupId))) {\n return false;\n }\n if (matchIds && (def.id == null || !matchIds.includes(def.id))) {\n return false;\n }\n if (matchScopes && (def.scopes == null || !matchScopes.some(function (s) { var _a; return (_a = def.scopes) === null || _a === void 0 ? void 0 : _a.includes(s); }))) {\n return false;\n }\n return true;\n })\n .map(function (_a) {\n var index = _a.index;\n return index;\n });\n };\n DataModel.prototype.valueIdxLookup = function (scopes, prop) {\n var result;\n var noScopesToMatch = scopes == null || scopes.length === 0;\n var scopeMatch = function (compareTo) {\n var anyScope = compareTo == null;\n if (anyScope)\n return true;\n var noScopes = compareTo == null || compareTo.length === 0;\n if (noScopesToMatch === noScopes)\n return true;\n return compareTo === null || compareTo === void 0 ? void 0 : compareTo.some(function (s) { return scopes.includes(s); });\n };\n if (typeof prop === 'string') {\n result = this.values.findIndex(function (def) { return scopeMatch(def.scopes) && def.property === prop; });\n }\n else {\n result = this.values.findIndex(function (def) { return scopeMatch(def.scopes) && def.id === prop.id; });\n }\n if (result >= 0) {\n return result;\n }\n throw new Error(\"AG Charts - configuration error, unknown property \" + JSON.stringify(prop) + \" in scope(s) \" + JSON.stringify(scopes));\n };\n DataModel.prototype.extractData = function (data) {\n var e_11, _a, e_12, _b, e_13, _c, e_14, _d;\n var _e;\n var _f = this, keyDefs = _f.keys, valueDefs = _f.values, dataVisible = _f.opts.dataVisible;\n var _g = this.initDataDomainProcessor(), dataDomain = _g.dataDomain, processValue = _g.processValue, scopes = _g.scopes, allScopesHaveSameDefs = _g.allScopesHaveSameDefs;\n var resultData = new Array(dataVisible ? data.length : 0);\n var resultDataIdx = 0;\n var partialValidDataCount = 0;\n try {\n for (var data_1 = __values$H(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n var datum = data_1_1.value;\n var validScopes = scopes.size > 0 ? new Set(scopes) : undefined;\n var keys = dataVisible ? new Array(keyDefs.length) : undefined;\n var keyIdx = 0;\n var key = void 0;\n try {\n for (var keyDefs_1 = (e_12 = void 0, __values$H(keyDefs)), keyDefs_1_1 = keyDefs_1.next(); !keyDefs_1_1.done; keyDefs_1_1 = keyDefs_1.next()) {\n var def = keyDefs_1_1.value;\n key = processValue(def, datum, key);\n if (key === INVALID_VALUE)\n break;\n if (keys) {\n keys[keyIdx++] = key;\n }\n }\n }\n catch (e_12_1) { e_12 = { error: e_12_1 }; }\n finally {\n try {\n if (keyDefs_1_1 && !keyDefs_1_1.done && (_b = keyDefs_1.return)) _b.call(keyDefs_1);\n }\n finally { if (e_12) throw e_12.error; }\n }\n if (key === INVALID_VALUE)\n continue;\n var values = dataVisible && valueDefs.length > 0 ? new Array(valueDefs.length) : undefined;\n var valueIdx = 0;\n var value = void 0;\n try {\n for (var valueDefs_1 = (e_13 = void 0, __values$H(valueDefs)), valueDefs_1_1 = valueDefs_1.next(); !valueDefs_1_1.done; valueDefs_1_1 = valueDefs_1.next()) {\n var def = valueDefs_1_1.value;\n value = processValue(def, datum, value);\n if (value === INVALID_VALUE) {\n if (allScopesHaveSameDefs)\n break;\n try {\n for (var _h = (e_14 = void 0, __values$H((_e = def.scopes) !== null && _e !== void 0 ? _e : scopes)), _j = _h.next(); !_j.done; _j = _h.next()) {\n var scope = _j.value;\n validScopes === null || validScopes === void 0 ? void 0 : validScopes.delete(scope);\n }\n }\n catch (e_14_1) { e_14 = { error: e_14_1 }; }\n finally {\n try {\n if (_j && !_j.done && (_d = _h.return)) _d.call(_h);\n }\n finally { if (e_14) throw e_14.error; }\n }\n valueIdx++;\n if ((validScopes === null || validScopes === void 0 ? void 0 : validScopes.size) === 0)\n break;\n }\n else if (values) {\n values[valueIdx++] = value;\n }\n }\n }\n catch (e_13_1) { e_13 = { error: e_13_1 }; }\n finally {\n try {\n if (valueDefs_1_1 && !valueDefs_1_1.done && (_c = valueDefs_1.return)) _c.call(valueDefs_1);\n }\n finally { if (e_13) throw e_13.error; }\n }\n if (value === INVALID_VALUE && allScopesHaveSameDefs)\n continue;\n if ((validScopes === null || validScopes === void 0 ? void 0 : validScopes.size) === 0)\n continue;\n if (dataVisible) {\n var result = {\n datum: datum,\n keys: keys,\n values: values,\n };\n if (!allScopesHaveSameDefs && validScopes && validScopes.size < scopes.size) {\n partialValidDataCount++;\n result.validScopes = __spreadArray$D([], __read$13(validScopes));\n }\n resultData[resultDataIdx++] = result;\n }\n }\n }\n catch (e_11_1) { e_11 = { error: e_11_1 }; }\n finally {\n try {\n if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);\n }\n finally { if (e_11) throw e_11.error; }\n }\n resultData.length = resultDataIdx;\n var propertyDomain = function (def) {\n var result = dataDomain.get(def).getDomain();\n if (Array.isArray(result) && result[0] > result[1]) {\n // Ignore starting values.\n return [];\n }\n return __spreadArray$D([], __read$13(result));\n };\n return {\n type: 'ungrouped',\n data: resultData,\n domain: {\n keys: keyDefs.map(function (def) { return propertyDomain(def); }),\n values: valueDefs.map(function (def) { return propertyDomain(def); }),\n },\n defs: {\n allScopesHaveSameDefs: allScopesHaveSameDefs,\n keys: keyDefs,\n values: valueDefs,\n },\n partialValidDataCount: partialValidDataCount,\n time: 0,\n };\n };\n DataModel.prototype.groupData = function (data, groupingFn) {\n var e_15, _a, e_16, _b;\n var _c, _d, _e, _f;\n var processedData = new Map();\n try {\n for (var _g = __values$H(data.data), _h = _g.next(); !_h.done; _h = _g.next()) {\n var dataEntry = _h.value;\n var keys = dataEntry.keys, values = dataEntry.values, datum = dataEntry.datum, validScopes = dataEntry.validScopes;\n var group = groupingFn ? groupingFn(dataEntry) : keys;\n var groupStr = toKeyString(group);\n if (processedData.has(groupStr)) {\n var existingData = processedData.get(groupStr);\n existingData.values.push(values);\n existingData.datum.push(datum);\n if (validScopes != null) {\n var _loop_4 = function (index) {\n var scope = (_e = existingData.validScopes) === null || _e === void 0 ? void 0 : _e[index];\n if (validScopes.some(function (s) { return s === scope; }))\n return \"continue\";\n (_f = existingData.validScopes) === null || _f === void 0 ? void 0 : _f.splice(index, 1);\n };\n // Intersection of existing validScopes with new validScopes.\n for (var index = 0; index < ((_d = (_c = existingData.validScopes) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0); index++) {\n _loop_4(index);\n }\n }\n }\n else {\n processedData.set(groupStr, { keys: group, values: [values], datum: [datum], validScopes: validScopes });\n }\n }\n }\n catch (e_15_1) { e_15 = { error: e_15_1 }; }\n finally {\n try {\n if (_h && !_h.done && (_a = _g.return)) _a.call(_g);\n }\n finally { if (e_15) throw e_15.error; }\n }\n var resultData = new Array(processedData.size);\n var resultGroups = new Array(processedData.size);\n var dataIndex = 0;\n try {\n for (var _j = __values$H(processedData.entries()), _k = _j.next(); !_k.done; _k = _j.next()) {\n var _l = __read$13(_k.value, 2), _m = _l[1], keys = _m.keys, values = _m.values, datum = _m.datum, validScopes = _m.validScopes;\n if ((validScopes === null || validScopes === void 0 ? void 0 : validScopes.length) === 0)\n continue;\n resultGroups[dataIndex] = keys;\n resultData[dataIndex++] = {\n keys: keys,\n values: values,\n datum: datum,\n validScopes: validScopes,\n };\n }\n }\n catch (e_16_1) { e_16 = { error: e_16_1 }; }\n finally {\n try {\n if (_k && !_k.done && (_b = _j.return)) _b.call(_j);\n }\n finally { if (e_16) throw e_16.error; }\n }\n return __assign$T(__assign$T({}, data), { type: 'grouped', data: resultData, domain: __assign$T(__assign$T({}, data.domain), { groups: resultGroups }) });\n };\n DataModel.prototype.aggregateData = function (processedData) {\n var e_17, _a;\n var _this = this;\n var _b, _c, _d, _e, _f, _g, _h, _j;\n var aggDefs = this.aggregates;\n if (!aggDefs)\n return;\n var resultAggValues = aggDefs.map(function () { return [Infinity, -Infinity]; });\n var resultAggValueIndices = aggDefs.map(function (def) { return _this.valueGroupIdxLookup(def); });\n var resultAggFns = aggDefs.map(function (def) { return def.aggregateFunction; });\n var resultGroupAggFns = aggDefs.map(function (def) { return def.groupAggregateFunction; });\n var resultFinalFns = aggDefs.map(function (def) { return def.finalFunction; });\n var _loop_5 = function (group) {\n var e_18, _m, e_19, _o;\n var values = group.values;\n var validScopes = group.validScopes;\n (_b = group.aggValues) !== null && _b !== void 0 ? _b : (group.aggValues = new Array(resultAggValueIndices.length));\n if (processedData.type === 'ungrouped') {\n values = [values];\n }\n var resultIdx = 0;\n try {\n for (var resultAggValueIndices_1 = (e_18 = void 0, __values$H(resultAggValueIndices)), resultAggValueIndices_1_1 = resultAggValueIndices_1.next(); !resultAggValueIndices_1_1.done; resultAggValueIndices_1_1 = resultAggValueIndices_1.next()) {\n var indices = resultAggValueIndices_1_1.value;\n var scopeValid = (_c = validScopes === null || validScopes === void 0 ? void 0 : validScopes.some(function (s) { var _a; return (_a = aggDefs[resultIdx].matchScopes) === null || _a === void 0 ? void 0 : _a.some(function (as) { return s === as; }); })) !== null && _c !== void 0 ? _c : true;\n if (!scopeValid) {\n resultIdx++;\n continue;\n }\n var groupAggValues = (_e = (_d = resultGroupAggFns[resultIdx]) === null || _d === void 0 ? void 0 : _d.call(resultGroupAggFns)) !== null && _e !== void 0 ? _e : extendDomain([]);\n var _loop_6 = function (distinctValues) {\n var valuesToAgg = indices.map(function (valueIdx) { return distinctValues[valueIdx]; });\n var valuesAgg = resultAggFns[resultIdx](valuesToAgg, group.keys);\n if (valuesAgg) {\n groupAggValues =\n (_g = (_f = resultGroupAggFns[resultIdx]) === null || _f === void 0 ? void 0 : _f.call(resultGroupAggFns, valuesAgg, groupAggValues)) !== null && _g !== void 0 ? _g : extendDomain(valuesAgg, groupAggValues);\n }\n };\n try {\n for (var values_1 = (e_19 = void 0, __values$H(values)), values_1_1 = values_1.next(); !values_1_1.done; values_1_1 = values_1.next()) {\n var distinctValues = values_1_1.value;\n _loop_6(distinctValues);\n }\n }\n catch (e_19_1) { e_19 = { error: e_19_1 }; }\n finally {\n try {\n if (values_1_1 && !values_1_1.done && (_o = values_1.return)) _o.call(values_1);\n }\n finally { if (e_19) throw e_19.error; }\n }\n var finalValues = ((_j = (_h = resultFinalFns[resultIdx]) === null || _h === void 0 ? void 0 : _h.call(resultFinalFns, groupAggValues)) !== null && _j !== void 0 ? _j : groupAggValues).map(function (v) {\n return round(v);\n });\n extendDomain(finalValues, resultAggValues[resultIdx]);\n group.aggValues[resultIdx++] = finalValues;\n }\n }\n catch (e_18_1) { e_18 = { error: e_18_1 }; }\n finally {\n try {\n if (resultAggValueIndices_1_1 && !resultAggValueIndices_1_1.done && (_m = resultAggValueIndices_1.return)) _m.call(resultAggValueIndices_1);\n }\n finally { if (e_18) throw e_18.error; }\n }\n };\n try {\n for (var _k = __values$H(processedData.data), _l = _k.next(); !_l.done; _l = _k.next()) {\n var group = _l.value;\n _loop_5(group);\n }\n }\n catch (e_17_1) { e_17 = { error: e_17_1 }; }\n finally {\n try {\n if (_l && !_l.done && (_a = _k.return)) _a.call(_k);\n }\n finally { if (e_17) throw e_17.error; }\n }\n processedData.domain.aggValues = resultAggValues;\n };\n DataModel.prototype.postProcessGroups = function (processedData) {\n var e_20, _a, e_21, _b, e_22, _c, e_23, _d, e_24, _e, e_25, _f;\n var _g, _h, _j, _k, _l;\n var groupProcessors = this.groupProcessors;\n if (!groupProcessors)\n return;\n var affectedIndices = new Set();\n var updatedDomains = new Map();\n var groupProcessorIndices = new Map();\n var groupProcessorInitFns = new Map();\n try {\n for (var groupProcessors_1 = __values$H(groupProcessors), groupProcessors_1_1 = groupProcessors_1.next(); !groupProcessors_1_1.done; groupProcessors_1_1 = groupProcessors_1.next()) {\n var processor = groupProcessors_1_1.value;\n var indices = this.valueGroupIdxLookup(processor);\n groupProcessorIndices.set(processor, indices);\n groupProcessorInitFns.set(processor, processor.adjust());\n try {\n for (var indices_1 = (e_21 = void 0, __values$H(indices)), indices_1_1 = indices_1.next(); !indices_1_1.done; indices_1_1 = indices_1.next()) {\n var idx = indices_1_1.value;\n var valueDef = this.values[idx];\n affectedIndices.add(idx);\n updatedDomains.set(idx, new DataDomain(valueDef.valueType === 'category' ? 'discrete' : 'continuous'));\n }\n }\n catch (e_21_1) { e_21 = { error: e_21_1 }; }\n finally {\n try {\n if (indices_1_1 && !indices_1_1.done && (_b = indices_1.return)) _b.call(indices_1);\n }\n finally { if (e_21) throw e_21.error; }\n }\n }\n }\n catch (e_20_1) { e_20 = { error: e_20_1 }; }\n finally {\n try {\n if (groupProcessors_1_1 && !groupProcessors_1_1.done && (_a = groupProcessors_1.return)) _a.call(groupProcessors_1);\n }\n finally { if (e_20) throw e_20.error; }\n }\n var updateDomains = function (values) {\n var e_26, _a;\n var _b;\n try {\n for (var affectedIndices_1 = __values$H(affectedIndices), affectedIndices_1_1 = affectedIndices_1.next(); !affectedIndices_1_1.done; affectedIndices_1_1 = affectedIndices_1.next()) {\n var valueIndex = affectedIndices_1_1.value;\n (_b = updatedDomains.get(valueIndex)) === null || _b === void 0 ? void 0 : _b.extend(values[valueIndex]);\n }\n }\n catch (e_26_1) { e_26 = { error: e_26_1 }; }\n finally {\n try {\n if (affectedIndices_1_1 && !affectedIndices_1_1.done && (_a = affectedIndices_1.return)) _a.call(affectedIndices_1);\n }\n finally { if (e_26) throw e_26.error; }\n }\n };\n try {\n for (var _m = __values$H(processedData.data), _o = _m.next(); !_o.done; _o = _m.next()) {\n var group = _o.value;\n var _loop_7 = function (processor) {\n var e_27, _s;\n var scopeValid = (_h = (_g = group.validScopes) === null || _g === void 0 ? void 0 : _g.some(function (s) { var _a; return (_a = processor.matchScopes) === null || _a === void 0 ? void 0 : _a.some(function (as) { return s === as; }); })) !== null && _h !== void 0 ? _h : true;\n if (!scopeValid) {\n return \"continue\";\n }\n var valueIndexes = (_j = groupProcessorIndices.get(processor)) !== null && _j !== void 0 ? _j : [];\n var adjustFn = (_l = (_k = groupProcessorInitFns.get(processor)) === null || _k === void 0 ? void 0 : _k()) !== null && _l !== void 0 ? _l : (function () { return undefined; });\n if (processedData.type === 'grouped') {\n try {\n for (var _t = (e_27 = void 0, __values$H(group.values)), _u = _t.next(); !_u.done; _u = _t.next()) {\n var values = _u.value;\n if (values) {\n adjustFn(values, valueIndexes);\n }\n }\n }\n catch (e_27_1) { e_27 = { error: e_27_1 }; }\n finally {\n try {\n if (_u && !_u.done && (_s = _t.return)) _s.call(_t);\n }\n finally { if (e_27) throw e_27.error; }\n }\n return \"continue\";\n }\n if (group.values) {\n adjustFn(group.values, valueIndexes);\n }\n };\n try {\n for (var groupProcessors_2 = (e_23 = void 0, __values$H(groupProcessors)), groupProcessors_2_1 = groupProcessors_2.next(); !groupProcessors_2_1.done; groupProcessors_2_1 = groupProcessors_2.next()) {\n var processor = groupProcessors_2_1.value;\n _loop_7(processor);\n }\n }\n catch (e_23_1) { e_23 = { error: e_23_1 }; }\n finally {\n try {\n if (groupProcessors_2_1 && !groupProcessors_2_1.done && (_d = groupProcessors_2.return)) _d.call(groupProcessors_2);\n }\n finally { if (e_23) throw e_23.error; }\n }\n if (processedData.type === 'grouped') {\n try {\n for (var _p = (e_24 = void 0, __values$H(group.values)), _q = _p.next(); !_q.done; _q = _p.next()) {\n var values = _q.value;\n updateDomains(values);\n }\n }\n catch (e_24_1) { e_24 = { error: e_24_1 }; }\n finally {\n try {\n if (_q && !_q.done && (_e = _p.return)) _e.call(_p);\n }\n finally { if (e_24) throw e_24.error; }\n }\n }\n else {\n updateDomains(group.values);\n }\n }\n }\n catch (e_22_1) { e_22 = { error: e_22_1 }; }\n finally {\n try {\n if (_o && !_o.done && (_c = _m.return)) _c.call(_m);\n }\n finally { if (e_22) throw e_22.error; }\n }\n try {\n for (var updatedDomains_1 = __values$H(updatedDomains), updatedDomains_1_1 = updatedDomains_1.next(); !updatedDomains_1_1.done; updatedDomains_1_1 = updatedDomains_1.next()) {\n var _r = __read$13(updatedDomains_1_1.value, 2), idx = _r[0], dataDomain = _r[1];\n processedData.domain.values[idx] = __spreadArray$D([], __read$13(dataDomain.getDomain()));\n }\n }\n catch (e_25_1) { e_25 = { error: e_25_1 }; }\n finally {\n try {\n if (updatedDomains_1_1 && !updatedDomains_1_1.done && (_f = updatedDomains_1.return)) _f.call(updatedDomains_1);\n }\n finally { if (e_25) throw e_25.error; }\n }\n };\n DataModel.prototype.postProcessProperties = function (processedData) {\n var e_28, _a;\n var propertyProcessors = this.propertyProcessors;\n if (!propertyProcessors)\n return;\n try {\n for (var propertyProcessors_1 = __values$H(propertyProcessors), propertyProcessors_1_1 = propertyProcessors_1.next(); !propertyProcessors_1_1.done; propertyProcessors_1_1 = propertyProcessors_1.next()) {\n var _b = propertyProcessors_1_1.value, adjust = _b.adjust, property = _b.property, scopes = _b.scopes;\n adjust()(processedData, this.valueIdxLookup(scopes !== null && scopes !== void 0 ? scopes : [], property));\n }\n }\n catch (e_28_1) { e_28 = { error: e_28_1 }; }\n finally {\n try {\n if (propertyProcessors_1_1 && !propertyProcessors_1_1.done && (_a = propertyProcessors_1.return)) _a.call(propertyProcessors_1);\n }\n finally { if (e_28) throw e_28.error; }\n }\n };\n DataModel.prototype.reduceData = function (processedData) {\n var e_29, _a;\n var _b, _c, _d;\n var reducerDefs = this.reducers;\n var scopes = reducerDefs.map(function (def) { return def.scopes; });\n var reducers = reducerDefs.map(function (def) { return def.reducer(); });\n var accValues = reducerDefs.map(function (def) { return def.initialValue; });\n var _loop_8 = function (group) {\n var e_30, _g;\n var reducerIndex = 0;\n try {\n for (var reducers_1 = (e_30 = void 0, __values$H(reducers)), reducers_1_1 = reducers_1.next(); !reducers_1_1.done; reducers_1_1 = reducers_1.next()) {\n var reducer = reducers_1_1.value;\n var scopeValid = (_c = (_b = group.validScopes) === null || _b === void 0 ? void 0 : _b.some(function (s) { var _a; return (_a = scopes[reducerIndex]) === null || _a === void 0 ? void 0 : _a.some(function (as) { return s === as; }); })) !== null && _c !== void 0 ? _c : true;\n if (!scopeValid) {\n reducerIndex++;\n continue;\n }\n accValues[reducerIndex] = reducer(accValues[reducerIndex], group);\n reducerIndex++;\n }\n }\n catch (e_30_1) { e_30 = { error: e_30_1 }; }\n finally {\n try {\n if (reducers_1_1 && !reducers_1_1.done && (_g = reducers_1.return)) _g.call(reducers_1);\n }\n finally { if (e_30) throw e_30.error; }\n }\n };\n try {\n for (var _e = __values$H(processedData.data), _f = _e.next(); !_f.done; _f = _e.next()) {\n var group = _f.value;\n _loop_8(group);\n }\n }\n catch (e_29_1) { e_29 = { error: e_29_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_a = _e.return)) _a.call(_e);\n }\n finally { if (e_29) throw e_29.error; }\n }\n for (var accIdx = 0; accIdx < accValues.length; accIdx++) {\n (_d = processedData.reduced) !== null && _d !== void 0 ? _d : (processedData.reduced = {});\n processedData.reduced[reducerDefs[accIdx].property] = accValues[accIdx];\n }\n };\n DataModel.prototype.postProcessData = function (processedData) {\n var e_31, _a;\n var _b;\n var processorDefs = this.processors;\n try {\n for (var processorDefs_1 = __values$H(processorDefs), processorDefs_1_1 = processorDefs_1.next(); !processorDefs_1_1.done; processorDefs_1_1 = processorDefs_1.next()) {\n var def = processorDefs_1_1.value;\n (_b = processedData.reduced) !== null && _b !== void 0 ? _b : (processedData.reduced = {});\n processedData.reduced[def.property] = def.calculate(processedData);\n }\n }\n catch (e_31_1) { e_31 = { error: e_31_1 }; }\n finally {\n try {\n if (processorDefs_1_1 && !processorDefs_1_1.done && (_a = processorDefs_1.return)) _a.call(processorDefs_1);\n }\n finally { if (e_31) throw e_31.error; }\n }\n };\n DataModel.prototype.initDataDomainProcessor = function () {\n var e_32, _a, e_33, _b;\n var _c;\n var _d = this, keyDefs = _d.keys, valueDefs = _d.values;\n var scopes = new Set();\n try {\n for (var valueDefs_2 = __values$H(valueDefs), valueDefs_2_1 = valueDefs_2.next(); !valueDefs_2_1.done; valueDefs_2_1 = valueDefs_2.next()) {\n var valueDef = valueDefs_2_1.value;\n try {\n for (var _e = (e_33 = void 0, __values$H((_c = valueDef.scopes) !== null && _c !== void 0 ? _c : [])), _f = _e.next(); !_f.done; _f = _e.next()) {\n var scope = _f.value;\n scopes.add(scope);\n }\n }\n catch (e_33_1) { e_33 = { error: e_33_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_33) throw e_33.error; }\n }\n }\n }\n catch (e_32_1) { e_32 = { error: e_32_1 }; }\n finally {\n try {\n if (valueDefs_2_1 && !valueDefs_2_1.done && (_a = valueDefs_2.return)) _a.call(valueDefs_2);\n }\n finally { if (e_32) throw e_32.error; }\n }\n var scopesCount = scopes.size;\n var dataDomain = new Map();\n var processorFns = new Map();\n var allScopesHaveSameDefs = true;\n var initDataDomainKey = function (key, type, updateDataDomain) {\n var _a;\n if (updateDataDomain === void 0) { updateDataDomain = dataDomain; }\n if (type === 'category') {\n updateDataDomain.set(key, new DataDomain('discrete'));\n }\n else {\n updateDataDomain.set(key, new DataDomain('continuous'));\n allScopesHaveSameDefs && (allScopesHaveSameDefs = ((_a = key.scopes) !== null && _a !== void 0 ? _a : []).length === scopesCount);\n }\n };\n var initDataDomain = function () {\n keyDefs.forEach(function (def) { return initDataDomainKey(def, def.valueType); });\n valueDefs.forEach(function (def) { return initDataDomainKey(def, def.valueType); });\n };\n initDataDomain();\n var accessors = this.buildAccessors.apply(this, __spreadArray$D(__spreadArray$D([], __read$13(keyDefs)), __read$13(valueDefs)));\n var processValue = function (def, datum, previousDatum) {\n var _a, _b, _c, _d;\n var hasAccessor = def.property in accessors;\n var valueInDatum = false;\n var value;\n if (hasAccessor) {\n try {\n value = accessors[def.property](datum);\n }\n catch (error) {\n // Swallow errors - these get reported as missing values to the user later.\n }\n valueInDatum = value !== undefined;\n }\n else {\n valueInDatum = def.property in datum;\n value = valueInDatum ? datum[def.property] : def.missingValue;\n }\n var missingValueDef = 'missingValue' in def;\n if (!valueInDatum && !missingValueDef) {\n def.missing++;\n }\n if (!dataDomain.has(def)) {\n initDataDomain();\n }\n if (valueInDatum) {\n var valid = (_b = (_a = def.validation) === null || _a === void 0 ? void 0 : _a.call(def, value, datum)) !== null && _b !== void 0 ? _b : true;\n if (!valid) {\n if ('invalidValue' in def) {\n value = def.invalidValue;\n }\n else {\n return INVALID_VALUE;\n }\n }\n }\n if (def.processor) {\n if (!processorFns.has(def)) {\n processorFns.set(def, def.processor());\n }\n value = (_c = processorFns.get(def)) === null || _c === void 0 ? void 0 : _c(value, previousDatum !== INVALID_VALUE ? previousDatum : undefined);\n }\n (_d = dataDomain.get(def)) === null || _d === void 0 ? void 0 : _d.extend(value);\n return value;\n };\n return { dataDomain: dataDomain, processValue: processValue, initDataDomain: initDataDomain, scopes: scopes, allScopesHaveSameDefs: allScopesHaveSameDefs };\n };\n DataModel.prototype.buildAccessors = function () {\n var e_34, _a;\n var defs = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n defs[_i] = arguments[_i];\n }\n var result = {};\n try {\n for (var defs_1 = __values$H(defs), defs_1_1 = defs_1.next(); !defs_1_1.done; defs_1_1 = defs_1.next()) {\n var def = defs_1_1.value;\n var isPath = def.property.indexOf('.') >= 0 || def.property.indexOf('[') >= 0;\n if (!isPath)\n continue;\n var fnBody = void 0;\n if (def.property.startsWith('[')) {\n fnBody = \"return datum\" + def.property + \";\";\n }\n else {\n fnBody = \"return datum.\" + def.property + \";\";\n }\n result[def.property] = new Function('datum', fnBody);\n }\n }\n catch (e_34_1) { e_34 = { error: e_34_1 }; }\n finally {\n try {\n if (defs_1_1 && !defs_1_1.done && (_a = defs_1.return)) _a.call(defs_1);\n }\n finally { if (e_34) throw e_34.error; }\n }\n return result;\n };\n DataModel.DEBUG = function () { var _a; return (_a = [true, 'data-model'].includes(windowValue('agChartsDebug'))) !== null && _a !== void 0 ? _a : false; };\n return DataModel;\n}());\nfunction logProcessedData(processedData) {\n var _a, _b;\n var log = function (name, data) {\n if (data.length > 0) {\n // eslint-disable-next-line no-console\n console.log(\"DataModel.processData() - \" + name);\n // eslint-disable-next-line no-console\n console.table(data);\n }\n };\n // eslint-disable-next-line no-console\n console.log('DataModel.processData() - processedData', processedData);\n log('Key Domains', processedData.domain.keys);\n log('Group Domains', (_a = processedData.domain.groups) !== null && _a !== void 0 ? _a : []);\n log('Value Domains', processedData.domain.values);\n log('Aggregate Domains', (_b = processedData.domain.aggValues) !== null && _b !== void 0 ? _b : []);\n if (processedData.type === 'grouped') {\n var flattenedValues = processedData.data.reduce(function (acc, next) {\n var _a, _b;\n var keys = (_a = next.keys) !== null && _a !== void 0 ? _a : [];\n var aggValues = (_b = next.aggValues) !== null && _b !== void 0 ? _b : [];\n var skipKeys = next.keys.map(function () { return undefined; });\n var skipAggValues = aggValues === null || aggValues === void 0 ? void 0 : aggValues.map(function () { return undefined; });\n acc.push.apply(acc, __spreadArray$D([], __read$13(next.values.map(function (v, i) { return __spreadArray$D(__spreadArray$D(__spreadArray$D([], __read$13((i === 0 ? keys : skipKeys))), __read$13((v !== null && v !== void 0 ? v : []))), __read$13((i == 0 ? aggValues : skipAggValues))); }))));\n return acc;\n }, []);\n log('Values', flattenedValues);\n }\n else {\n var flattenedValues = processedData.data.reduce(function (acc, next) {\n var _a;\n var aggValues = (_a = next.aggValues) !== null && _a !== void 0 ? _a : [];\n acc.push(__spreadArray$D(__spreadArray$D(__spreadArray$D([], __read$13(next.keys)), __read$13(next.values)), __read$13(aggValues)));\n return acc;\n }, []);\n log('Values', flattenedValues);\n }\n}\n\nfunction createDeprecationWarning() {\n return function (key, message) {\n var msg = [\"Property [\" + key + \"] is deprecated.\", message].filter(function (v) { return v != null; }).join(' ');\n Logger.warnOnce(msg);\n };\n}\nfunction Deprecated(message, opts) {\n var def = opts === null || opts === void 0 ? void 0 : opts.default;\n var warn = createDeprecationWarning();\n return addTransformToInstanceProperty(function (_, key, value) {\n if (value !== def) {\n warn(key.toString(), message);\n }\n return value;\n });\n}\nfunction DeprecatedAndRenamedTo(newPropName, mapValue) {\n var warnDeprecated = createDeprecationWarning();\n return addTransformToInstanceProperty(function (target, key, value) {\n if (value !== target[newPropName]) {\n warnDeprecated(key.toString(), \"Use [\" + newPropName + \"] instead.\");\n target[newPropName] = mapValue ? mapValue(value) : value;\n }\n return BREAK_TRANSFORM_CHAIN;\n }, function (target, key) {\n warnDeprecated(key.toString(), \"Use [\" + newPropName + \"] instead.\");\n return target[newPropName];\n });\n}\n\nvar __decorate$1V = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __values$G = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar DEFAULT_TOOLTIP_CLASS = 'ag-chart-tooltip';\nvar defaultTooltipCss$1 = \"\\n.\" + DEFAULT_TOOLTIP_CLASS + \" {\\n transition: transform 0.1s ease;\\n display: table;\\n position: fixed;\\n left: 0px;\\n top: 0px;\\n white-space: nowrap;\\n z-index: 99999;\\n font: 12px Verdana, sans-serif;\\n color: black;\\n background: rgb(244, 244, 244);\\n border-radius: 5px;\\n box-shadow: 0 0 1px rgba(3, 3, 3, 0.7), 0.5vh 0.5vh 1vh rgba(3, 3, 3, 0.25);\\n}\\n\\n.\" + DEFAULT_TOOLTIP_CLASS + \"-no-interaction {\\n pointer-events: none;\\n user-select: none;\\n}\\n\\n.\" + DEFAULT_TOOLTIP_CLASS + \"-no-animation {\\n transition: none !important;\\n}\\n\\n.\" + DEFAULT_TOOLTIP_CLASS + \"-hidden {\\n visibility: hidden;\\n}\\n\\n.\" + DEFAULT_TOOLTIP_CLASS + \"-title {\\n font-weight: bold;\\n padding: 7px;\\n border-top-left-radius: 5px;\\n border-top-right-radius: 5px;\\n color: white;\\n background-color: #888888;\\n border-top-left-radius: 5px;\\n border-top-right-radius: 5px;\\n}\\n\\n.\" + DEFAULT_TOOLTIP_CLASS + \"-content {\\n padding: 7px;\\n line-height: 1.7em;\\n border-bottom-left-radius: 5px;\\n border-bottom-right-radius: 5px;\\n overflow: hidden;\\n}\\n\\n.\" + DEFAULT_TOOLTIP_CLASS + \"-content:empty {\\n padding: 0;\\n height: 7px;\\n}\\n\\n.\" + DEFAULT_TOOLTIP_CLASS + \"-arrow::before {\\n content: \\\"\\\";\\n\\n position: absolute;\\n top: 100%;\\n left: 50%;\\n transform: translateX(-50%);\\n\\n border: 6px solid #989898;\\n\\n border-left-color: transparent;\\n border-right-color: transparent;\\n border-top-color: #989898;\\n border-bottom-color: transparent;\\n\\n width: 0;\\n height: 0;\\n\\n margin: 0 auto;\\n}\\n\\n.\" + DEFAULT_TOOLTIP_CLASS + \"-arrow::after {\\n content: \\\"\\\";\\n\\n position: absolute;\\n top: 100%;\\n left: 50%;\\n transform: translateX(-50%);\\n\\n border: 5px solid black;\\n\\n border-left-color: transparent;\\n border-right-color: transparent;\\n border-top-color: rgb(244, 244, 244);\\n border-bottom-color: transparent;\\n\\n width: 0;\\n height: 0;\\n\\n margin: 0 auto;\\n}\\n\\n.ag-chart-wrapper {\\n box-sizing: border-box;\\n overflow: hidden;\\n}\\n\";\nfunction toTooltipHtml$1(input, defaults) {\n var _a, _b, _c, _d;\n if (typeof input === 'string') {\n return input;\n }\n defaults = defaults !== null && defaults !== void 0 ? defaults : {};\n var _e = input.content, content = _e === void 0 ? (_a = defaults.content) !== null && _a !== void 0 ? _a : '' : _e, _f = input.title, title = _f === void 0 ? (_b = defaults.title) !== null && _b !== void 0 ? _b : undefined : _f, _g = input.color, color = _g === void 0 ? (_c = defaults.color) !== null && _c !== void 0 ? _c : 'white' : _g, _h = input.backgroundColor, backgroundColor = _h === void 0 ? (_d = defaults.backgroundColor) !== null && _d !== void 0 ? _d : '#888' : _h;\n var titleHtml = title\n ? \"
\" + title + \"
\"\n : '';\n return titleHtml + \"
\" + content + \"
\";\n}\nvar POSITION_TYPES = ['pointer', 'node'];\nvar POSITION_TYPE = predicateWithMessage(function (v) { return POSITION_TYPES.includes(v); }, \"expecting a position type keyword such as 'pointer' or 'node'\");\nvar TooltipPosition = /** @class */ (function () {\n function TooltipPosition() {\n /** The type of positioning for the tooltip. By default, the tooltip follows the pointer. */\n this.type = 'pointer';\n /** The horizontal offset in pixels for the position of the tooltip. */\n this.xOffset = 0;\n /** The vertical offset in pixels for the position of the tooltip. */\n this.yOffset = 0;\n }\n __decorate$1V([\n Validate(POSITION_TYPE)\n ], TooltipPosition.prototype, \"type\", void 0);\n __decorate$1V([\n Validate(NUMBER())\n ], TooltipPosition.prototype, \"xOffset\", void 0);\n __decorate$1V([\n Validate(NUMBER())\n ], TooltipPosition.prototype, \"yOffset\", void 0);\n return TooltipPosition;\n}());\nvar Tooltip = /** @class */ (function () {\n function Tooltip(canvasElement, document, container) {\n var _this = this;\n this.enableInteraction = false;\n this.enabled = true;\n this.showArrow = undefined;\n this.class = undefined;\n this.lastClass = undefined;\n this.delay = 0;\n this.range = 'nearest';\n this.position = new TooltipPosition();\n this.showTimeout = 0;\n this._showArrow = true;\n this.tooltipRoot = container;\n var element = document.createElement('div');\n this.element = this.tooltipRoot.appendChild(element);\n this.element.classList.add(DEFAULT_TOOLTIP_CLASS);\n this.canvasElement = canvasElement;\n // Detect when the chart becomes invisible and hide the tooltip as well.\n if (window.IntersectionObserver) {\n var observer = new IntersectionObserver(function (entries) {\n var e_1, _a;\n try {\n for (var entries_1 = __values$G(entries), entries_1_1 = entries_1.next(); !entries_1_1.done; entries_1_1 = entries_1.next()) {\n var entry = entries_1_1.value;\n if (entry.target === _this.canvasElement && entry.intersectionRatio === 0) {\n _this.toggle(false);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (entries_1_1 && !entries_1_1.done && (_a = entries_1.return)) _a.call(entries_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }, { root: this.tooltipRoot });\n observer.observe(this.canvasElement);\n this.observer = observer;\n }\n if (Tooltip.tooltipDocuments.indexOf(document) < 0) {\n var styleElement = document.createElement('style');\n styleElement.innerHTML = defaultTooltipCss$1;\n // Make sure the default tooltip style goes before other styles so it can be overridden.\n document.head.insertBefore(styleElement, document.head.querySelector('style'));\n Tooltip.tooltipDocuments.push(document);\n }\n }\n Tooltip.prototype.destroy = function () {\n var parentNode = this.element.parentNode;\n if (parentNode) {\n parentNode.removeChild(this.element);\n }\n if (this.observer) {\n this.observer.unobserve(this.canvasElement);\n }\n };\n Tooltip.prototype.isVisible = function () {\n var element = this.element;\n return !element.classList.contains(DEFAULT_TOOLTIP_CLASS + '-hidden');\n };\n Tooltip.prototype.updateClass = function (visible, showArrow) {\n var _a = this, element = _a.element, newClass = _a.class, lastClass = _a.lastClass, enableInteraction = _a.enableInteraction;\n var wasVisible = this.isVisible();\n var toggleClass = function (name, include) {\n var className = DEFAULT_TOOLTIP_CLASS + \"-\" + name;\n if (include) {\n element.classList.add(className);\n }\n else {\n element.classList.remove(className);\n }\n };\n toggleClass('no-animation', !wasVisible && !!visible); // No animation on first show.\n toggleClass('no-interaction', !enableInteraction); // Prevent interaction.\n toggleClass('hidden', !visible); // Hide if not visible.\n toggleClass('arrow', !!showArrow); // Add arrow if tooltip is constrained.\n if (newClass !== lastClass) {\n if (lastClass) {\n element.classList.remove(lastClass);\n }\n if (newClass) {\n element.classList.add(newClass);\n }\n this.lastClass = newClass;\n }\n };\n /**\n * Shows tooltip at the given event's coordinates.\n * If the `html` parameter is missing, moves the existing tooltip to the new position.\n */\n Tooltip.prototype.show = function (meta, html, instantly) {\n var _this = this;\n var _a, _b, _c, _d, _e, _f, _g;\n if (instantly === void 0) { instantly = false; }\n var _h = this, element = _h.element, canvasElement = _h.canvasElement;\n if (html !== undefined) {\n element.innerHTML = html;\n }\n else if (!element.innerHTML) {\n this.toggle(false);\n return;\n }\n var limit = function (low, actual, high) {\n return Math.max(Math.min(actual, high), low);\n };\n var xOffset = (_b = (_a = meta.position) === null || _a === void 0 ? void 0 : _a.xOffset) !== null && _b !== void 0 ? _b : 0;\n var yOffset = (_d = (_c = meta.position) === null || _c === void 0 ? void 0 : _c.yOffset) !== null && _d !== void 0 ? _d : 0;\n var canvasRect = canvasElement.getBoundingClientRect();\n var naiveLeft = canvasRect.left + meta.offsetX - element.clientWidth / 2 + xOffset;\n var naiveTop = canvasRect.top + meta.offsetY - element.clientHeight - 8 + yOffset;\n var windowBounds = this.getWindowBoundingBox();\n var maxLeft = windowBounds.x + windowBounds.width - element.clientWidth - 1;\n var maxTop = windowBounds.y + windowBounds.height - element.clientHeight;\n var left = limit(windowBounds.x, naiveLeft, maxLeft);\n var top = limit(windowBounds.y, naiveTop, maxTop);\n var constrained = left !== naiveLeft || top !== naiveTop;\n var defaultShowArrow = !constrained && !xOffset && !yOffset;\n var showArrow = (_f = (_e = meta.showArrow) !== null && _e !== void 0 ? _e : this.showArrow) !== null && _f !== void 0 ? _f : defaultShowArrow;\n this.updateShowArrow(showArrow);\n element.style.transform = \"translate(\" + Math.round(left) + \"px, \" + Math.round(top) + \"px)\";\n this.enableInteraction = (_g = meta.enableInteraction) !== null && _g !== void 0 ? _g : false;\n if (this.delay > 0 && !instantly) {\n this.toggle(false);\n this.showTimeout = window.setTimeout(function () {\n _this.toggle(true);\n }, this.delay);\n return;\n }\n this.toggle(true);\n };\n Tooltip.prototype.getWindowBoundingBox = function () {\n return new BBox(0, 0, window.innerWidth, window.innerHeight);\n };\n Tooltip.prototype.toggle = function (visible) {\n if (!visible) {\n window.clearTimeout(this.showTimeout);\n }\n this.updateClass(visible, this._showArrow);\n };\n Tooltip.prototype.pointerLeftOntoTooltip = function (event) {\n var _a;\n if (!this.enableInteraction)\n return false;\n var classList = (_a = event.sourceEvent.relatedTarget) === null || _a === void 0 ? void 0 : _a.classList;\n var classes = ['', '-title', '-content'];\n var classListContains = Boolean(classes.filter(function (c) { return classList === null || classList === void 0 ? void 0 : classList.contains(\"\" + DEFAULT_TOOLTIP_CLASS + c); }));\n return classList !== undefined && classListContains;\n };\n Tooltip.prototype.updateShowArrow = function (show) {\n this._showArrow = show;\n };\n Tooltip.tooltipDocuments = [];\n __decorate$1V([\n Validate(BOOLEAN)\n ], Tooltip.prototype, \"enabled\", void 0);\n __decorate$1V([\n Validate(OPT_BOOLEAN)\n ], Tooltip.prototype, \"showArrow\", void 0);\n __decorate$1V([\n Validate(OPT_STRING)\n ], Tooltip.prototype, \"class\", void 0);\n __decorate$1V([\n Validate(NUMBER(0))\n ], Tooltip.prototype, \"delay\", void 0);\n __decorate$1V([\n DeprecatedAndRenamedTo('range', function (value) { return (value ? 'nearest' : 'exact'); })\n ], Tooltip.prototype, \"tracking\", void 0);\n __decorate$1V([\n Validate(INTERACTION_RANGE)\n ], Tooltip.prototype, \"range\", void 0);\n return Tooltip;\n}());\n\nvar __values$F = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nfunction sumValues(values, accumulator) {\n var e_1, _a;\n if (accumulator === void 0) { accumulator = [0, 0]; }\n try {\n for (var values_1 = __values$F(values), values_1_1 = values_1.next(); !values_1_1.done; values_1_1 = values_1.next()) {\n var value = values_1_1.value;\n if (typeof value !== 'number') {\n continue;\n }\n if (value < 0) {\n accumulator[0] += value;\n }\n if (value > 0) {\n accumulator[1] += value;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (values_1_1 && !values_1_1.done && (_a = values_1.return)) _a.call(values_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return accumulator;\n}\nfunction groupSum(scope, id, matchGroupId) {\n return {\n id: id,\n scopes: [scope.id],\n type: 'aggregate',\n matchGroupIds: matchGroupId ? [matchGroupId] : undefined,\n aggregateFunction: function (values) { return sumValues(values); },\n groupAggregateFunction: function (next, acc) {\n var _a, _b;\n if (acc === void 0) { acc = [0, 0]; }\n acc[0] += (_a = next === null || next === void 0 ? void 0 : next[0]) !== null && _a !== void 0 ? _a : 0;\n acc[1] += (_b = next === null || next === void 0 ? void 0 : next[1]) !== null && _b !== void 0 ? _b : 0;\n return acc;\n },\n };\n}\nfunction groupCount(scope, id) {\n return {\n id: id,\n scopes: [scope.id],\n type: 'aggregate',\n aggregateFunction: function () { return [0, 1]; },\n groupAggregateFunction: function (next, acc) {\n var _a, _b;\n if (acc === void 0) { acc = [0, 0]; }\n acc[0] += (_a = next === null || next === void 0 ? void 0 : next[0]) !== null && _a !== void 0 ? _a : 0;\n acc[1] += (_b = next === null || next === void 0 ? void 0 : next[1]) !== null && _b !== void 0 ? _b : 0;\n return acc;\n },\n };\n}\nfunction groupAverage(scope, id, matchGroupId) {\n var result = {\n id: id,\n scopes: [scope.id],\n matchGroupIds: matchGroupId ? [matchGroupId] : undefined,\n type: 'aggregate',\n aggregateFunction: function (values) { return sumValues(values); },\n groupAggregateFunction: function (next, acc) {\n var _a, _b;\n if (acc === void 0) { acc = [0, 0, -1]; }\n acc[0] += (_a = next === null || next === void 0 ? void 0 : next[0]) !== null && _a !== void 0 ? _a : 0;\n acc[1] += (_b = next === null || next === void 0 ? void 0 : next[1]) !== null && _b !== void 0 ? _b : 0;\n acc[2]++;\n return acc;\n },\n finalFunction: function (acc) {\n if (acc === void 0) { acc = [0, 0, 0]; }\n var result = acc[0] + acc[1];\n if (result >= 0) {\n return [0, result / acc[2]];\n }\n return [result / acc[2], 0];\n },\n };\n return result;\n}\nfunction area(scope, id, aggFn, matchGroupId) {\n var result = {\n id: id,\n scopes: [scope.id],\n matchGroupIds: matchGroupId ? [matchGroupId] : undefined,\n type: 'aggregate',\n aggregateFunction: function (values, keyRange) {\n if (keyRange === void 0) { keyRange = []; }\n var keyWidth = keyRange[1] - keyRange[0];\n return aggFn.aggregateFunction(values).map(function (v) { return v / keyWidth; });\n },\n };\n if (aggFn.groupAggregateFunction) {\n result.groupAggregateFunction = aggFn.groupAggregateFunction;\n }\n return result;\n}\nfunction accumulatedValue() {\n return function () {\n var value = 0;\n return function (datum) {\n if (typeof datum !== 'number')\n return datum;\n if (isNaN(datum))\n return datum;\n value += datum;\n return value;\n };\n };\n}\n\nvar memorizedFns = new Map();\nfunction memo(params, fnGenerator) {\n var _a, _b, _c;\n var serialisedParams = JSON.stringify(params, null, 0);\n if (!memorizedFns.has(fnGenerator)) {\n memorizedFns.set(fnGenerator, new Map());\n }\n if (!((_a = memorizedFns.get(fnGenerator)) === null || _a === void 0 ? void 0 : _a.has(serialisedParams))) {\n (_b = memorizedFns.get(fnGenerator)) === null || _b === void 0 ? void 0 : _b.set(serialisedParams, fnGenerator(params));\n }\n return (_c = memorizedFns.get(fnGenerator)) === null || _c === void 0 ? void 0 : _c.get(serialisedParams);\n}\n\nvar __read$12 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$C = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar __values$E = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar SMALLEST_KEY_INTERVAL = {\n type: 'reducer',\n property: 'smallestKeyInterval',\n initialValue: Infinity,\n reducer: function () {\n var prevX = NaN;\n return function (smallestSoFar, next) {\n var nextX = next.keys[0];\n var interval = Math.abs(nextX - prevX);\n prevX = nextX;\n if (!isNaN(interval) && interval > 0 && interval < smallestSoFar) {\n return interval;\n }\n return smallestSoFar;\n };\n },\n};\nvar SORT_DOMAIN_GROUPS = {\n type: 'processor',\n property: 'sortedGroupDomain',\n calculate: function (_a) {\n var groups = _a.domain.groups;\n if (groups == null)\n return undefined;\n return __spreadArray$C([], __read$12(groups)).sort(function (a, b) {\n for (var i = 0; i < a.length; i++) {\n var result = a[i] - b[i];\n if (result !== 0) {\n return result;\n }\n }\n return 0;\n });\n },\n};\nfunction normaliseFnBuilder(_a) {\n var normaliseTo = _a.normaliseTo, mode = _a.mode;\n var normalise = function (val, extent) {\n var result = (val * normaliseTo) / extent;\n if (result >= 0) {\n return Math.min(normaliseTo, result);\n }\n return Math.max(-normaliseTo, result);\n };\n return function () { return function () { return function (values, valueIndexes) {\n var e_2, _a, e_3, _b;\n var valuesExtent = [0, 0];\n try {\n for (var valueIndexes_1 = __values$E(valueIndexes), valueIndexes_1_1 = valueIndexes_1.next(); !valueIndexes_1_1.done; valueIndexes_1_1 = valueIndexes_1.next()) {\n var valueIdx = valueIndexes_1_1.value;\n var value = values[valueIdx];\n var valIdx = value < 0 ? 0 : 1;\n if (mode === 'sum') {\n valuesExtent[valIdx] += value;\n }\n else if (valIdx === 0) {\n valuesExtent[valIdx] = Math.min(valuesExtent[valIdx], value);\n }\n else {\n valuesExtent[valIdx] = Math.max(valuesExtent[valIdx], value);\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (valueIndexes_1_1 && !valueIndexes_1_1.done && (_a = valueIndexes_1.return)) _a.call(valueIndexes_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n var extent = Math.max(Math.abs(valuesExtent[0]), valuesExtent[1]);\n try {\n for (var valueIndexes_2 = __values$E(valueIndexes), valueIndexes_2_1 = valueIndexes_2.next(); !valueIndexes_2_1.done; valueIndexes_2_1 = valueIndexes_2.next()) {\n var valueIdx = valueIndexes_2_1.value;\n values[valueIdx] = normalise(values[valueIdx], extent);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (valueIndexes_2_1 && !valueIndexes_2_1.done && (_b = valueIndexes_2.return)) _b.call(valueIndexes_2);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }; }; };\n}\nfunction normaliseGroupTo(scope, matchGroupIds, normaliseTo, mode) {\n if (mode === void 0) { mode = 'sum'; }\n return {\n scopes: [scope.id],\n type: 'group-value-processor',\n matchGroupIds: matchGroupIds,\n adjust: memo({ normaliseTo: normaliseTo, mode: mode }, normaliseFnBuilder),\n };\n}\nfunction normalisePropertyFnBuilder(_a) {\n var normaliseTo = _a.normaliseTo, rangeMin = _a.rangeMin, rangeMax = _a.rangeMax;\n var normaliseSpan = normaliseTo[1] - normaliseTo[0];\n var normalise = function (val, start, span) {\n var result = normaliseTo[0] + ((val - start) / span) * normaliseSpan;\n if (span === 0)\n return normaliseTo[1];\n if (result >= normaliseTo[1])\n return normaliseTo[1];\n if (result < normaliseTo[0])\n return normaliseTo[0];\n return result;\n };\n return function () { return function (pData, pIdx) {\n var e_4, _a, e_5, _b;\n var _c = __read$12(pData.domain.values[pIdx], 2), start = _c[0], end = _c[1];\n if (rangeMin != null)\n start = rangeMin;\n if (rangeMax != null)\n end = rangeMax;\n var span = end - start;\n pData.domain.values[pIdx] = [normaliseTo[0], normaliseTo[1]];\n try {\n for (var _d = __values$E(pData.data), _e = _d.next(); !_e.done; _e = _d.next()) {\n var group = _e.value;\n var groupValues = group.values;\n if (pData.type === 'ungrouped') {\n groupValues = [groupValues];\n }\n try {\n for (var groupValues_1 = (e_5 = void 0, __values$E(groupValues)), groupValues_1_1 = groupValues_1.next(); !groupValues_1_1.done; groupValues_1_1 = groupValues_1.next()) {\n var values = groupValues_1_1.value;\n values[pIdx] = normalise(values[pIdx], start, span);\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (groupValues_1_1 && !groupValues_1_1.done && (_b = groupValues_1.return)) _b.call(groupValues_1);\n }\n finally { if (e_5) throw e_5.error; }\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_e && !_e.done && (_a = _d.return)) _a.call(_d);\n }\n finally { if (e_4) throw e_4.error; }\n }\n }; };\n}\nfunction normalisePropertyTo(scope, property, normaliseTo, rangeMin, rangeMax) {\n return {\n scopes: [scope.id],\n type: 'property-value-processor',\n property: property,\n adjust: memo({ normaliseTo: normaliseTo, rangeMin: rangeMin, rangeMax: rangeMax }, normalisePropertyFnBuilder),\n };\n}\nfunction buildGroupAccFn(mode) {\n return function () { return function () { return function (values, valueIndexes) {\n var e_6, _a;\n // Datum scope.\n var acc = 0;\n try {\n for (var valueIndexes_3 = __values$E(valueIndexes), valueIndexes_3_1 = valueIndexes_3.next(); !valueIndexes_3_1.done; valueIndexes_3_1 = valueIndexes_3.next()) {\n var valueIdx = valueIndexes_3_1.value;\n var currentVal = values[valueIdx];\n if (typeof currentVal !== 'number' || isNaN(currentVal))\n continue;\n if (mode === 'normal')\n acc += currentVal;\n values[valueIdx] = acc;\n if (mode === 'trailing')\n acc += currentVal;\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (valueIndexes_3_1 && !valueIndexes_3_1.done && (_a = valueIndexes_3.return)) _a.call(valueIndexes_3);\n }\n finally { if (e_6) throw e_6.error; }\n }\n }; }; };\n}\nfunction buildGroupWindowAccFn(_a) {\n var mode = _a.mode, sum = _a.sum;\n return function () {\n // Entire data-set scope.\n var lastValues = [];\n var firstRow = true;\n return function () {\n // Group scope.\n return function (values, valueIndexes) {\n var e_7, _a;\n // Datum scope.\n var acc = 0;\n try {\n for (var valueIndexes_4 = __values$E(valueIndexes), valueIndexes_4_1 = valueIndexes_4.next(); !valueIndexes_4_1.done; valueIndexes_4_1 = valueIndexes_4.next()) {\n var valueIdx = valueIndexes_4_1.value;\n var currentVal = values[valueIdx];\n var lastValue = firstRow && sum === 'current' ? 0 : lastValues[valueIdx];\n lastValues[valueIdx] = currentVal;\n var sumValue = sum === 'current' ? currentVal : lastValue;\n if (typeof currentVal !== 'number' || isNaN(currentVal)) {\n values[valueIdx] = sumValue;\n continue;\n }\n if (typeof lastValue !== 'number' || isNaN(lastValue)) {\n values[valueIdx] = sumValue;\n continue;\n }\n if (mode === 'normal')\n acc += sumValue;\n values[valueIdx] = acc;\n if (mode === 'trailing')\n acc += sumValue;\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (valueIndexes_4_1 && !valueIndexes_4_1.done && (_a = valueIndexes_4.return)) _a.call(valueIndexes_4);\n }\n finally { if (e_7) throw e_7.error; }\n }\n firstRow = false;\n };\n };\n };\n}\nfunction accumulateGroup(scope, matchGroupId, mode, sum) {\n var adjust;\n if (mode.startsWith('window')) {\n var modeParam = mode.endsWith('-trailing') ? 'trailing' : 'normal';\n adjust = memo({ mode: modeParam, sum: sum }, buildGroupWindowAccFn);\n }\n else {\n adjust = memo(mode, buildGroupAccFn);\n }\n return {\n scopes: [scope.id],\n type: 'group-value-processor',\n matchGroupIds: [matchGroupId],\n adjust: adjust,\n };\n}\nfunction diff(previousData, updateMovedDatums) {\n if (updateMovedDatums === void 0) { updateMovedDatums = true; }\n return {\n type: 'processor',\n property: 'diff',\n calculate: function (processedData) {\n var diff = {\n changed: false,\n added: [],\n updated: [],\n removed: [],\n };\n var added = new Map();\n var updated = new Map();\n var removed = new Map();\n var sep = '___';\n for (var i = 0; i < Math.max(previousData.data.length, processedData.data.length); i++) {\n var prev = previousData.data[i];\n var datum = processedData.data[i];\n var prevId = prev === null || prev === void 0 ? void 0 : prev.keys.join(sep);\n var datumId = datum === null || datum === void 0 ? void 0 : datum.keys.join(sep);\n if (prevId === datumId) {\n if (!arraysEqual(prev.values, datum.values)) {\n updated.set(datumId, datum);\n }\n continue;\n }\n if (removed.has(datumId)) {\n if (updateMovedDatums || !arraysEqual(removed.get(datumId).values, datum.values)) {\n updated.set(datumId, datum);\n }\n removed.delete(datumId);\n }\n else if (datum) {\n added.set(datumId, datum);\n }\n if (added.has(prevId)) {\n if (updateMovedDatums || !arraysEqual(added.get(prevId).values, prev.values)) {\n updated.set(prevId, prev);\n }\n added.delete(prevId);\n }\n else if (prev) {\n removed.set(prevId, prev);\n }\n }\n diff.added = Array.from(added.values()).map(function (datum) { return datum.keys; });\n diff.updated = Array.from(updated.values()).map(function (datum) { return datum.keys; });\n diff.removed = Array.from(removed.values()).map(function (datum) { return datum.keys; });\n diff.changed = diff.added.length > 0 || diff.updated.length > 0 || diff.removed.length > 0;\n return diff;\n },\n };\n}\nfunction arraysEqual(a, b) {\n if (a == null || b == null)\n return false;\n if (a.length !== b.length)\n return false;\n for (var i = 0; i < a.length; i++) {\n if (Array.isArray(a[i]) && Array.isArray(b[i]))\n return arraysEqual(a[i], b[i]);\n if (a[i] !== b[i])\n return false;\n }\n return true;\n}\n\nfunction ProxyPropertyOnWrite(childName, childProperty) {\n return addTransformToInstanceProperty(function (target, key, value) {\n target[childName][childProperty !== null && childProperty !== void 0 ? childProperty : key] = value;\n return value;\n });\n}\n/**\n * Allows side-effects to be triggered on property write.\n *\n * @param opts.newValue called when a new value is set - never called for undefined values.\n * @param opts.oldValue called with the old value before a new value is set - never called for\n * undefined values.\n * @param opts.changeValue called on any change to the value - always called.\n */\nfunction ActionOnSet(opts) {\n var newValueFn = opts.newValue, oldValueFn = opts.oldValue, changeValueFn = opts.changeValue;\n return addTransformToInstanceProperty(function (target, _, newValue, oldValue) {\n if (newValue !== oldValue) {\n if (oldValue !== undefined) {\n oldValueFn === null || oldValueFn === void 0 ? void 0 : oldValueFn.call(target, oldValue);\n }\n if (newValue !== undefined) {\n newValueFn === null || newValueFn === void 0 ? void 0 : newValueFn.call(target, newValue);\n }\n changeValueFn === null || changeValueFn === void 0 ? void 0 : changeValueFn.call(target, newValue, oldValue);\n }\n return newValue;\n });\n}\n\nvar __extends$2H = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$S = (undefined && undefined.__assign) || function () {\n __assign$S = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$S.apply(this, arguments);\n};\nvar __decorate$1U = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __rest$6 = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __values$D = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$11 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$B = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\n/** Modes of matching user interactions to rendered nodes (e.g. hover or click) */\nvar SeriesNodePickMode;\n(function (SeriesNodePickMode) {\n /** Pick matches based upon pick coordinates being inside a matching shape/marker. */\n SeriesNodePickMode[SeriesNodePickMode[\"EXACT_SHAPE_MATCH\"] = 0] = \"EXACT_SHAPE_MATCH\";\n /** Pick matches by nearest category/X-axis value, then distance within that category/X-value. */\n SeriesNodePickMode[SeriesNodePickMode[\"NEAREST_BY_MAIN_AXIS_FIRST\"] = 1] = \"NEAREST_BY_MAIN_AXIS_FIRST\";\n /** Pick matches by nearest category value, then distance within that category. */\n SeriesNodePickMode[SeriesNodePickMode[\"NEAREST_BY_MAIN_CATEGORY_AXIS_FIRST\"] = 2] = \"NEAREST_BY_MAIN_CATEGORY_AXIS_FIRST\";\n /** Pick matches based upon distance to ideal position */\n SeriesNodePickMode[SeriesNodePickMode[\"NEAREST_NODE\"] = 3] = \"NEAREST_NODE\";\n})(SeriesNodePickMode || (SeriesNodePickMode = {}));\nfunction basicContinuousCheckDatumValidation(v) {\n return checkDatum(v, true) != null;\n}\nfunction basicDiscreteCheckDatumValidation(v) {\n return checkDatum(v, false) != null;\n}\nfunction keyProperty(scope, propName, continuous, opts) {\n if (opts === void 0) { opts = {}; }\n var result = __assign$S({ scopes: [scope.id], property: propName, type: 'key', valueType: continuous ? 'range' : 'category', validation: continuous ? basicContinuousCheckDatumValidation : basicDiscreteCheckDatumValidation }, opts);\n return result;\n}\nfunction valueProperty(scope, propName, continuous, opts) {\n if (opts === void 0) { opts = {}; }\n var result = __assign$S({ scopes: [scope.id], property: propName, type: 'value', valueType: continuous ? 'range' : 'category', validation: continuous ? basicContinuousCheckDatumValidation : basicDiscreteCheckDatumValidation }, opts);\n return result;\n}\nfunction rangedValueProperty(scope, propName, opts) {\n if (opts === void 0) { opts = {}; }\n var _a = opts.min, min = _a === void 0 ? -Infinity : _a, _b = opts.max, max = _b === void 0 ? Infinity : _b, defOpts = __rest$6(opts, [\"min\", \"max\"]);\n return __assign$S({ scopes: [scope.id], type: 'value', property: propName, valueType: 'range', validation: basicContinuousCheckDatumValidation, processor: function () { return function (datum) {\n if (typeof datum !== 'number')\n return datum;\n if (isNaN(datum))\n return datum;\n return Math.min(Math.max(datum, min), max);\n }; } }, defOpts);\n}\nfunction accumulativeValueProperty(scope, propName, continuous, opts) {\n if (opts === void 0) { opts = {}; }\n var result = __assign$S(__assign$S({}, valueProperty(scope, propName, continuous, opts)), { processor: accumulatedValue() });\n return result;\n}\nfunction groupAccumulativeValueProperty(scope, propName, continuous, mode, sum, opts) {\n if (sum === void 0) { sum = 'current'; }\n return [valueProperty(scope, propName, continuous, opts), accumulateGroup(scope, opts.groupId, mode, sum)];\n}\nvar SeriesNodeBaseClickEvent = /** @class */ (function () {\n function SeriesNodeBaseClickEvent(nativeEvent, datum, series) {\n this.type = 'nodeClick';\n this.event = nativeEvent;\n this.datum = datum.datum;\n this.seriesId = series.id;\n }\n return SeriesNodeBaseClickEvent;\n}());\nvar SeriesNodeClickEvent = /** @class */ (function (_super) {\n __extends$2H(SeriesNodeClickEvent, _super);\n function SeriesNodeClickEvent() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return SeriesNodeClickEvent;\n}(SeriesNodeBaseClickEvent));\nvar SeriesNodeDoubleClickEvent = /** @class */ (function (_super) {\n __extends$2H(SeriesNodeDoubleClickEvent, _super);\n function SeriesNodeDoubleClickEvent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'nodeDoubleClick';\n return _this;\n }\n return SeriesNodeDoubleClickEvent;\n}(SeriesNodeBaseClickEvent));\nvar SeriesItemHighlightStyle = /** @class */ (function () {\n function SeriesItemHighlightStyle() {\n this.fill = 'yellow';\n this.fillOpacity = undefined;\n this.stroke = undefined;\n this.strokeWidth = undefined;\n }\n __decorate$1U([\n Validate(OPT_COLOR_STRING)\n ], SeriesItemHighlightStyle.prototype, \"fill\", void 0);\n __decorate$1U([\n Validate(OPT_NUMBER(0, 1))\n ], SeriesItemHighlightStyle.prototype, \"fillOpacity\", void 0);\n __decorate$1U([\n Validate(OPT_COLOR_STRING)\n ], SeriesItemHighlightStyle.prototype, \"stroke\", void 0);\n __decorate$1U([\n Validate(OPT_NUMBER(0))\n ], SeriesItemHighlightStyle.prototype, \"strokeWidth\", void 0);\n return SeriesItemHighlightStyle;\n}());\nvar SeriesHighlightStyle = /** @class */ (function () {\n function SeriesHighlightStyle() {\n this.strokeWidth = undefined;\n this.dimOpacity = undefined;\n this.enabled = undefined;\n }\n __decorate$1U([\n Validate(OPT_NUMBER(0))\n ], SeriesHighlightStyle.prototype, \"strokeWidth\", void 0);\n __decorate$1U([\n Validate(OPT_NUMBER(0, 1))\n ], SeriesHighlightStyle.prototype, \"dimOpacity\", void 0);\n __decorate$1U([\n Validate(OPT_BOOLEAN)\n ], SeriesHighlightStyle.prototype, \"enabled\", void 0);\n return SeriesHighlightStyle;\n}());\nvar TextHighlightStyle = /** @class */ (function () {\n function TextHighlightStyle() {\n this.color = 'black';\n }\n __decorate$1U([\n Validate(OPT_COLOR_STRING)\n ], TextHighlightStyle.prototype, \"color\", void 0);\n return TextHighlightStyle;\n}());\nvar HighlightStyle = /** @class */ (function () {\n function HighlightStyle() {\n this.item = new SeriesItemHighlightStyle();\n this.series = new SeriesHighlightStyle();\n this.text = new TextHighlightStyle();\n }\n return HighlightStyle;\n}());\nvar SeriesTooltip = /** @class */ (function () {\n function SeriesTooltip() {\n this.enabled = true;\n this.showArrow = undefined;\n this.interaction = new SeriesTooltipInteraction();\n this.position = new TooltipPosition();\n }\n __decorate$1U([\n Validate(BOOLEAN)\n ], SeriesTooltip.prototype, \"enabled\", void 0);\n __decorate$1U([\n Validate(OPT_BOOLEAN)\n ], SeriesTooltip.prototype, \"showArrow\", void 0);\n return SeriesTooltip;\n}());\nvar SeriesTooltipInteraction = /** @class */ (function () {\n function SeriesTooltipInteraction() {\n this.enabled = false;\n }\n __decorate$1U([\n Validate(BOOLEAN)\n ], SeriesTooltipInteraction.prototype, \"enabled\", void 0);\n return SeriesTooltipInteraction;\n}());\nvar Series = /** @class */ (function (_super) {\n __extends$2H(Series, _super);\n function Series(seriesOpts) {\n var _a;\n var _this = _super.call(this) || this;\n _this.id = createId$1(_this);\n // The group node that contains all the nodes used to render this series.\n _this.rootGroup = new Group({ name: 'seriesRoot', isVirtual: true });\n _this.axes = (_a = {},\n _a[ChartAxisDirection.X] = undefined,\n _a[ChartAxisDirection.Y] = undefined,\n _a);\n _this.directions = [ChartAxisDirection.X, ChartAxisDirection.Y];\n // Flag to determine if we should recalculate node data.\n _this.nodeDataRefresh = true;\n _this._data = undefined;\n _this._visible = true;\n _this.showInLegend = true;\n _this.cursor = 'default';\n _this.nodeClickRange = 'exact';\n _this.seriesGrouping = undefined;\n _this._declarationOrder = -1;\n _this.highlightStyle = new HighlightStyle();\n _this.ctx = seriesOpts.moduleCtx;\n var _b = seriesOpts.useLabelLayer, useLabelLayer = _b === void 0 ? false : _b, _c = seriesOpts.pickModes, pickModes = _c === void 0 ? [SeriesNodePickMode.NEAREST_BY_MAIN_AXIS_FIRST] : _c, _d = seriesOpts.directionKeys, directionKeys = _d === void 0 ? {} : _d, _e = seriesOpts.directionNames, directionNames = _e === void 0 ? {} : _e, _f = seriesOpts.contentGroupVirtual, contentGroupVirtual = _f === void 0 ? true : _f;\n var rootGroup = _this.rootGroup;\n _this.directionKeys = directionKeys;\n _this.directionNames = directionNames;\n _this.contentGroup = rootGroup.appendChild(new Group({\n name: _this.id + \"-content\",\n layer: !contentGroupVirtual,\n isVirtual: contentGroupVirtual,\n zIndex: Layers.SERIES_LAYER_ZINDEX,\n zIndexSubOrder: _this.getGroupZIndexSubOrder('data'),\n }));\n _this.highlightGroup = rootGroup.appendChild(new Group({\n name: _this.id + \"-highlight\",\n layer: true,\n zIndex: Layers.SERIES_LAYER_ZINDEX,\n zIndexSubOrder: _this.getGroupZIndexSubOrder('highlight'),\n }));\n _this.highlightNode = _this.highlightGroup.appendChild(new Group({ name: 'highlightNode' }));\n _this.highlightLabel = _this.highlightGroup.appendChild(new Group({ name: 'highlightLabel' }));\n _this.highlightNode.zIndex = 0;\n _this.highlightLabel.zIndex = 10;\n _this.pickModes = pickModes;\n if (useLabelLayer) {\n _this.labelGroup = rootGroup.appendChild(new Group({\n name: _this.id + \"-series-labels\",\n layer: true,\n zIndex: Layers.SERIES_LABEL_ZINDEX,\n }));\n }\n return _this;\n }\n Object.defineProperty(Series.prototype, \"type\", {\n get: function () {\n var _a;\n return (_a = this.constructor.type) !== null && _a !== void 0 ? _a : '';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Series.prototype, \"data\", {\n get: function () {\n return this._data;\n },\n set: function (input) {\n this._data = input;\n this.nodeDataRefresh = true;\n },\n enumerable: false,\n configurable: true\n });\n Series.prototype.hasData = function () {\n var data = this.data;\n return data && (!Array.isArray(data) || data.length > 0);\n };\n Object.defineProperty(Series.prototype, \"visible\", {\n get: function () {\n return this._visible;\n },\n set: function (value) {\n this._visible = value;\n this.visibleChanged();\n },\n enumerable: false,\n configurable: true\n });\n Series.prototype.onSeriesGroupingChange = function (prev, next) {\n var _this = this;\n var _a = this, id = _a.id, type = _a.type, visible = _a.visible, rootGroup = _a.rootGroup;\n if (prev) {\n this.ctx.seriesStateManager.deregisterSeries({ id: id, type: type });\n }\n if (next) {\n this.ctx.seriesStateManager.registerSeries({ id: id, type: type, visible: visible, seriesGrouping: next });\n }\n this.ctx.seriesLayerManager.changeGroup({\n id: id,\n type: type,\n rootGroup: rootGroup,\n getGroupZIndexSubOrder: function (type) { return _this.getGroupZIndexSubOrder(type); },\n seriesGrouping: next,\n oldGrouping: prev,\n });\n };\n Series.prototype.getBandScalePadding = function () {\n return { inner: 1, outer: 0 };\n };\n Series.prototype.getGroupZIndexSubOrder = function (type, subIndex) {\n var _this = this;\n if (subIndex === void 0) { subIndex = 0; }\n var mainAdjust = 0;\n switch (type) {\n case 'data':\n case 'paths':\n break;\n case 'labels':\n mainAdjust += 20000;\n break;\n case 'marker':\n mainAdjust += 10000;\n break;\n // Following cases are in their own layer, so need to be careful to respect declarationOrder.\n case 'highlight':\n subIndex += 15000;\n break;\n }\n var main = function () { return _this._declarationOrder + mainAdjust; };\n return [main, subIndex];\n };\n Series.prototype.addChartEventListeners = function () {\n return;\n };\n Series.prototype.destroy = function () {\n this.ctx.seriesStateManager.deregisterSeries(this);\n this.ctx.seriesLayerManager.releaseGroup(this);\n };\n Series.prototype.getDirectionValues = function (direction, properties) {\n var _this = this;\n var resolvedDirection = this.resolveKeyDirection(direction);\n var keys = properties === null || properties === void 0 ? void 0 : properties[resolvedDirection];\n var values = [];\n var flatten = function () {\n var e_1, _a;\n var array = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n array[_i] = arguments[_i];\n }\n try {\n for (var array_1 = __values$D(array), array_1_1 = array_1.next(); !array_1_1.done; array_1_1 = array_1.next()) {\n var value = array_1_1.value;\n addValue(value);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (array_1_1 && !array_1_1.done && (_a = array_1.return)) _a.call(array_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n var addValue = function (value) {\n if (Array.isArray(value)) {\n flatten.apply(void 0, __spreadArray$B([], __read$11(value)));\n }\n else if (typeof value === 'object') {\n flatten(Object.values(value));\n }\n else {\n values.push(value);\n }\n };\n if (!keys)\n return values;\n keys.forEach(function (key) {\n var value = _this[key];\n addValue(value);\n });\n return values;\n };\n Series.prototype.getKeys = function (direction) {\n return this.getDirectionValues(direction, this.directionKeys);\n };\n Series.prototype.getNames = function (direction) {\n return this.getDirectionValues(direction, this.directionNames);\n };\n Series.prototype.resolveKeyDirection = function (direction) {\n return direction;\n };\n // Indicate that something external changed and we should recalculate nodeData.\n Series.prototype.markNodeDataDirty = function () {\n this.nodeDataRefresh = true;\n };\n Series.prototype.visibleChanged = function () {\n this.ctx.seriesStateManager.registerSeries(this);\n };\n Series.prototype.getOpacity = function (datum) {\n var _a = this.highlightStyle.series, _b = _a.dimOpacity, dimOpacity = _b === void 0 ? 1 : _b, _c = _a.enabled, enabled = _c === void 0 ? true : _c;\n var defaultOpacity = 1;\n if (enabled === false || dimOpacity === defaultOpacity) {\n return defaultOpacity;\n }\n switch (this.isItemIdHighlighted(datum)) {\n case 'no-highlight':\n case 'highlighted':\n return defaultOpacity;\n case 'peer-highlighted':\n case 'other-highlighted':\n return dimOpacity;\n }\n };\n Series.prototype.getStrokeWidth = function (defaultStrokeWidth, datum) {\n var _a = this.highlightStyle.series, strokeWidth = _a.strokeWidth, _b = _a.enabled, enabled = _b === void 0 ? true : _b;\n if (enabled === false || strokeWidth === undefined) {\n // No change in styling for highlight cases.\n return defaultStrokeWidth;\n }\n switch (this.isItemIdHighlighted(datum)) {\n case 'highlighted':\n return strokeWidth;\n case 'no-highlight':\n case 'other-highlighted':\n case 'peer-highlighted':\n return defaultStrokeWidth;\n }\n };\n Series.prototype.isItemIdHighlighted = function (datum) {\n var _a;\n var highlightedDatum = (_a = this.ctx.highlightManager) === null || _a === void 0 ? void 0 : _a.getActiveHighlight();\n var _b = highlightedDatum !== null && highlightedDatum !== void 0 ? highlightedDatum : {}, series = _b.series, itemId = _b.itemId;\n var highlighting = series != null;\n if (!highlighting) {\n // Highlighting not active.\n return 'no-highlight';\n }\n if (series !== this) {\n // Highlighting active, this series not highlighted.\n return 'other-highlighted';\n }\n if (itemId === undefined) {\n // Series doesn't use itemIds - so no further refinement needed, series is highlighted.\n return 'highlighted';\n }\n if (datum && highlightedDatum !== datum && itemId !== datum.itemId) {\n // A peer (in same Series instance) sub-series has highlight active, but this sub-series\n // does not.\n return 'peer-highlighted';\n }\n return 'highlighted';\n };\n Series.prototype.pickNode = function (point, limitPickModes) {\n var e_2, _a;\n var _b = this, pickModes = _b.pickModes, visible = _b.visible, rootGroup = _b.rootGroup;\n if (!visible || !rootGroup.visible) {\n return;\n }\n try {\n for (var pickModes_1 = __values$D(pickModes), pickModes_1_1 = pickModes_1.next(); !pickModes_1_1.done; pickModes_1_1 = pickModes_1.next()) {\n var pickMode = pickModes_1_1.value;\n if (limitPickModes && !limitPickModes.includes(pickMode)) {\n continue;\n }\n var match = undefined;\n switch (pickMode) {\n case SeriesNodePickMode.EXACT_SHAPE_MATCH:\n match = this.pickNodeExactShape(point);\n break;\n case SeriesNodePickMode.NEAREST_BY_MAIN_AXIS_FIRST:\n case SeriesNodePickMode.NEAREST_BY_MAIN_CATEGORY_AXIS_FIRST:\n match = this.pickNodeMainAxisFirst(point, pickMode === SeriesNodePickMode.NEAREST_BY_MAIN_CATEGORY_AXIS_FIRST);\n break;\n case SeriesNodePickMode.NEAREST_NODE:\n match = this.pickNodeClosestDatum(point);\n break;\n }\n if (match) {\n return { pickMode: pickMode, match: match.datum, distance: match.distance };\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (pickModes_1_1 && !pickModes_1_1.done && (_a = pickModes_1.return)) _a.call(pickModes_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n };\n Series.prototype.pickNodeExactShape = function (point) {\n var match = this.contentGroup.pickNode(point.x, point.y);\n if (match) {\n return {\n datum: match.datum,\n distance: 0,\n };\n }\n };\n Series.prototype.pickNodeClosestDatum = function (_point) {\n // Override point for sub-classes - but if this is invoked, the sub-class specified it wants\n // to use this feature.\n throw new Error('AG Charts - Series.pickNodeClosestDatum() not implemented');\n };\n Series.prototype.pickNodeMainAxisFirst = function (_point, _requireCategoryAxis) {\n // Override point for sub-classes - but if this is invoked, the sub-class specified it wants\n // to use this feature.\n throw new Error('AG Charts - Series.pickNodeMainAxisFirst() not implemented');\n };\n Series.prototype.fireNodeClickEvent = function (event, _datum) {\n var eventObject = this.getNodeClickEvent(event, _datum);\n this.fireEvent(eventObject);\n };\n Series.prototype.fireNodeDoubleClickEvent = function (event, _datum) {\n var eventObject = this.getNodeDoubleClickEvent(event, _datum);\n this.fireEvent(eventObject);\n };\n Series.prototype.getNodeClickEvent = function (event, datum) {\n return new SeriesNodeClickEvent(event, datum, this);\n };\n Series.prototype.getNodeDoubleClickEvent = function (event, datum) {\n return new SeriesNodeDoubleClickEvent(event, datum, this);\n };\n Series.prototype.toggleSeriesItem = function (_itemId, enabled) {\n this.visible = enabled;\n this.nodeDataRefresh = true;\n };\n Series.prototype.isEnabled = function () {\n return this.visible;\n };\n Series.prototype.fixNumericExtent = function (extent, axis) {\n var _a;\n var fixedExtent = fixNumericExtent(extent);\n if (fixedExtent.length === 0) {\n return fixedExtent;\n }\n var _b = __read$11(fixedExtent, 2), min = _b[0], max = _b[1];\n if (min === max) {\n // domain has zero length, there is only a single valid value in data\n var _c = __read$11((_a = axis === null || axis === void 0 ? void 0 : axis.calculatePadding(min, max)) !== null && _a !== void 0 ? _a : [1, 1], 2), paddingMin = _c[0], paddingMax = _c[1];\n min -= paddingMin;\n max += paddingMax;\n }\n return [min, max];\n };\n Series.highlightedZIndex = 1000000000000;\n __decorate$1U([\n Validate(STRING)\n ], Series.prototype, \"id\", void 0);\n __decorate$1U([\n Validate(BOOLEAN)\n ], Series.prototype, \"_visible\", void 0);\n __decorate$1U([\n Validate(BOOLEAN)\n ], Series.prototype, \"showInLegend\", void 0);\n __decorate$1U([\n Validate(STRING)\n ], Series.prototype, \"cursor\", void 0);\n __decorate$1U([\n Validate(INTERACTION_RANGE)\n ], Series.prototype, \"nodeClickRange\", void 0);\n __decorate$1U([\n ActionOnSet({\n changeValue: function (newVal, oldVal) {\n this.onSeriesGroupingChange(oldVal, newVal);\n },\n })\n ], Series.prototype, \"seriesGrouping\", void 0);\n return Series;\n}(Observable));\n\nvar __decorate$1T = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar Padding$1 = /** @class */ (function () {\n function Padding(top, right, bottom, left) {\n if (top === void 0) { top = 0; }\n if (right === void 0) { right = top; }\n if (bottom === void 0) { bottom = top; }\n if (left === void 0) { left = right; }\n this.top = top;\n this.right = right;\n this.bottom = bottom;\n this.left = left;\n }\n Padding.prototype.clear = function () {\n this.top = this.right = this.bottom = this.left = 0;\n };\n __decorate$1T([\n Validate(NUMBER(0))\n ], Padding.prototype, \"top\", void 0);\n __decorate$1T([\n Validate(NUMBER(0))\n ], Padding.prototype, \"right\", void 0);\n __decorate$1T([\n Validate(NUMBER(0))\n ], Padding.prototype, \"bottom\", void 0);\n __decorate$1T([\n Validate(NUMBER(0))\n ], Padding.prototype, \"left\", void 0);\n return Padding;\n}());\n\nvar __values$C = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar SizeMonitor = /** @class */ (function () {\n function SizeMonitor() {\n }\n SizeMonitor.init = function () {\n var _this = this;\n var NativeResizeObserver = window.ResizeObserver;\n if (NativeResizeObserver) {\n this.resizeObserver = new NativeResizeObserver(function (entries) {\n var e_1, _a;\n try {\n for (var entries_1 = __values$C(entries), entries_1_1 = entries_1.next(); !entries_1_1.done; entries_1_1 = entries_1.next()) {\n var entry = entries_1_1.value;\n var _b = entry.contentRect, width = _b.width, height = _b.height;\n _this.checkSize(_this.elements.get(entry.target), entry.target, width, height);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (entries_1_1 && !entries_1_1.done && (_a = entries_1.return)) _a.call(entries_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n });\n }\n else {\n // polyfill (more reliable even in browsers that support ResizeObserver)\n var step = function () {\n _this.elements.forEach(function (entry, element) {\n _this.checkClientSize(element, entry);\n });\n };\n this.pollerHandler = window.setInterval(step, 100);\n }\n this.ready = true;\n };\n SizeMonitor.destroy = function () {\n var _a;\n if (this.pollerHandler != null) {\n clearInterval(this.pollerHandler);\n this.pollerHandler = undefined;\n }\n (_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();\n this.resizeObserver = undefined;\n this.ready = false;\n };\n SizeMonitor.checkSize = function (entry, element, width, height) {\n if (entry) {\n if (!entry.size || width !== entry.size.width || height !== entry.size.height) {\n entry.size = { width: width, height: height };\n entry.cb(entry.size, element);\n }\n }\n };\n // Only a single callback is supported.\n SizeMonitor.observe = function (element, cb) {\n if (!this.ready) {\n this.init();\n }\n this.unobserve(element, false);\n if (this.resizeObserver) {\n this.resizeObserver.observe(element);\n }\n this.elements.set(element, { cb: cb });\n // Ensure first size callback happens synchronously.\n this.checkClientSize(element, { cb: cb });\n };\n SizeMonitor.unobserve = function (element, cleanup) {\n if (cleanup === void 0) { cleanup = true; }\n if (this.resizeObserver) {\n this.resizeObserver.unobserve(element);\n }\n this.elements.delete(element);\n if (cleanup && this.elements.size === 0) {\n this.destroy();\n }\n };\n SizeMonitor.checkClientSize = function (element, entry) {\n var width = element.clientWidth ? element.clientWidth : 0;\n var height = element.clientHeight ? element.clientHeight : 0;\n this.checkSize(entry, element, width, height);\n };\n SizeMonitor.elements = new Map();\n SizeMonitor.ready = false;\n return SizeMonitor;\n}());\n\nfunction circleRectOverlap(c, x, y, w, h) {\n // Find closest horizontal and vertical edges.\n var edgeX = c.x;\n if (c.x < x) {\n edgeX = x;\n }\n else if (c.x > x + w) {\n edgeX = x + w;\n }\n var edgeY = c.y;\n if (c.y < y) {\n edgeY = y;\n }\n else if (c.y > y + h) {\n edgeY = y + h;\n }\n // Find distance to closest edges.\n var dx = c.x - edgeX;\n var dy = c.y - edgeY;\n var d = Math.sqrt(dx * dx + dy * dy);\n return d <= c.size * 0.5;\n}\nfunction rectRectOverlap(r1, x2, y2, w2, h2) {\n var xOverlap = r1.x + r1.width > x2 && r1.x < x2 + w2;\n var yOverlap = r1.y + r1.height > y2 && r1.y < y2 + h2;\n return xOverlap && yOverlap;\n}\nfunction rectContainsRect(r1, r2x, r2y, r2w, r2h) {\n return r2x + r2w < r1.x + r1.width && r2x > r1.x && r2y > r1.y && r2y + r2h < r1.y + r1.height;\n}\nfunction isPointLabelDatum(x) {\n return x != null && typeof x.point === 'object' && typeof x.label === 'object';\n}\n/**\n * @param data Points and labels for one or more series. The order of series determines label placement precedence.\n * @param bounds Bounds to fit the labels into. If a label can't be fully contained, it doesn't fit.\n * @returns Placed labels for the given series (in the given order).\n */\nfunction placeLabels(data, bounds, padding) {\n if (padding === void 0) { padding = 5; }\n var result = [];\n data = data.map(function (d) { return d.slice().sort(function (a, b) { return b.point.size - a.point.size; }); });\n for (var j = 0; j < data.length; j++) {\n var labels = (result[j] = []);\n var datum = data[j];\n if (!((datum === null || datum === void 0 ? void 0 : datum.length) && datum[0].label)) {\n continue;\n }\n var _loop_1 = function (i, ln) {\n var d = datum[i];\n var l = d.label;\n var r = d.point.size * 0.5;\n var x = d.point.x - l.width * 0.5;\n var y = d.point.y - r - l.height - padding;\n var width = l.width, height = l.height;\n var withinBounds = !bounds || rectContainsRect(bounds, x, y, width, height);\n if (!withinBounds) {\n return \"continue\";\n }\n var overlapPoints = data.some(function (datum) {\n return datum.some(function (d) { return circleRectOverlap(d.point, x, y, width, height); });\n });\n if (overlapPoints) {\n return \"continue\";\n }\n var overlapLabels = result.some(function (labels) { return labels.some(function (l) { return rectRectOverlap(l, x, y, width, height); }); });\n if (overlapLabels) {\n return \"continue\";\n }\n labels.push({\n index: i,\n text: l.text,\n x: x,\n y: y,\n width: width,\n height: height,\n datum: d,\n });\n };\n for (var i = 0, ln = datum.length; i < ln; i++) {\n _loop_1(i, ln);\n }\n }\n return result;\n}\nfunction axisLabelsOverlap(data, padding) {\n var result = [];\n var _loop_2 = function (i) {\n var datum = data[i];\n var _a = datum.point, x = _a.x, y = _a.y, text = datum.label.text;\n var _b = datum.label, width = _b.width, height = _b.height;\n width += padding !== null && padding !== void 0 ? padding : 0;\n height += padding !== null && padding !== void 0 ? padding : 0;\n var overlapLabels = result.some(function (l) {\n var overlap = rectRectOverlap(l, x, y, width, height);\n return overlap;\n });\n if (overlapLabels) {\n return { value: true };\n }\n result.push({\n index: i,\n text: text,\n x: x,\n y: y,\n width: width,\n height: height,\n datum: datum,\n });\n };\n for (var i = 0; i < data.length; i++) {\n var state_1 = _loop_2(i);\n if (typeof state_1 === \"object\")\n return state_1.value;\n }\n return false;\n}\n\nvar __awaiter$f = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$f = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\n/**\n * Wrap a function in debouncing trigger function. A requestAnimationFrame() is scheduled\n * after the first schedule() call, and subsequent schedule() calls will be ignored until the\n * animation callback executes.\n */\nfunction debouncedAnimationFrame(cb) {\n return buildScheduler(function (cb, _delayMs) { return requestAnimationFrame(cb); }, cb);\n}\nfunction debouncedCallback(cb) {\n return buildScheduler(function (cb, delayMs) {\n if (delayMs === void 0) { delayMs = 0; }\n return setTimeout(cb, delayMs);\n }, cb);\n}\nfunction buildScheduler(scheduleFn, cb) {\n var scheduleCount = 0;\n var promiseRunning = false;\n var awaitingPromise;\n var awaitingDone;\n var busy = function () {\n return promiseRunning;\n };\n var done = function () {\n promiseRunning = false;\n awaitingDone === null || awaitingDone === void 0 ? void 0 : awaitingDone();\n awaitingDone = undefined;\n awaitingPromise = undefined;\n if (scheduleCount > 0) {\n scheduleFn(scheduleCb);\n }\n };\n var scheduleCb = function () {\n var count = scheduleCount;\n scheduleCount = 0;\n promiseRunning = true;\n var maybePromise = cb({ count: count });\n if (!maybePromise) {\n done();\n return;\n }\n maybePromise.then(done).catch(done);\n };\n return {\n schedule: function (delayMs) {\n if (scheduleCount === 0 && !busy()) {\n scheduleFn(scheduleCb, delayMs);\n }\n scheduleCount++;\n },\n await: function () {\n return __awaiter$f(this, void 0, void 0, function () {\n return __generator$f(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (!busy()) {\n return [2 /*return*/];\n }\n if (awaitingPromise == null) {\n awaitingPromise = new Promise(function (resolve) {\n awaitingDone = resolve;\n });\n }\n _a.label = 1;\n case 1:\n if (!busy()) return [3 /*break*/, 3];\n return [4 /*yield*/, awaitingPromise];\n case 2:\n _a.sent();\n return [3 /*break*/, 1];\n case 3: return [2 /*return*/];\n }\n });\n });\n },\n };\n}\n\nfunction sleep(sleepTimeoutMs) {\n return new Promise(function (resolve) {\n setTimeout(function () { return resolve(undefined); }, sleepTimeoutMs);\n });\n}\n\nvar __decorate$1S = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar Overlay = /** @class */ (function () {\n function Overlay(className, parent) {\n this.renderer = undefined;\n this.text = undefined;\n this.className = className;\n this.parentElement = parent;\n }\n Overlay.prototype.show = function (rect) {\n var _a, _b;\n var element = this.element;\n if (!element) {\n element = document.createElement('div');\n element.className = this.className;\n this.element = element;\n }\n element.style.position = 'absolute';\n element.style.left = rect.x + \"px\";\n element.style.top = rect.y + \"px\";\n element.style.width = rect.width + \"px\";\n element.style.height = rect.height + \"px\";\n if (this.renderer) {\n element.innerHTML = this.renderer();\n }\n else {\n var content = document.createElement('div');\n content.style.alignItems = 'center';\n content.style.boxSizing = 'border-box';\n content.style.display = 'flex';\n content.style.justifyContent = 'center';\n content.style.margin = '8px';\n content.style.height = '100%';\n content.style.font = '12px Verdana, sans-serif';\n content.innerText = (_a = this.text) !== null && _a !== void 0 ? _a : 'No data to display';\n element.append(content);\n }\n (_b = this.parentElement) === null || _b === void 0 ? void 0 : _b.append(element);\n };\n Overlay.prototype.hide = function () {\n var _a;\n (_a = this.element) === null || _a === void 0 ? void 0 : _a.remove();\n this.element = undefined;\n };\n __decorate$1S([\n Validate(OPT_FUNCTION)\n ], Overlay.prototype, \"renderer\", void 0);\n __decorate$1S([\n Validate(OPT_STRING)\n ], Overlay.prototype, \"text\", void 0);\n return Overlay;\n}());\n\nvar ChartOverlays = /** @class */ (function () {\n function ChartOverlays(parent) {\n this.noData = new Overlay('ag-chart-no-data-overlay', parent);\n }\n return ChartOverlays;\n}());\n\nvar __assign$R = (undefined && undefined.__assign) || function () {\n __assign$R = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$R.apply(this, arguments);\n};\nvar __read$10 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$A = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar __values$B = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/**\n * Performs a JSON-diff between a source and target JSON structure.\n *\n * On a per property basis, takes the target property value where:\n * - types are different.\n * - type is primitive.\n * - type is array and length or content have changed.\n *\n * Recurses for object types.\n *\n * @param source starting point for diff\n * @param target target for diff vs. source\n *\n * @returns `null` if no differences, or an object with the subset of properties that have changed.\n */\nfunction jsonDiff(source, target) {\n var e_1, _a;\n var sourceType = classify(source);\n var targetType = classify(target);\n if (targetType === 'array') {\n var targetArray = target;\n if (sourceType !== 'array' || source.length !== targetArray.length) {\n return __spreadArray$A([], __read$10(targetArray));\n }\n if (targetArray.some(function (targetElement, i) { var _a; return jsonDiff((_a = source) === null || _a === void 0 ? void 0 : _a[i], targetElement) != null; })) {\n return __spreadArray$A([], __read$10(targetArray));\n }\n return null;\n }\n if (targetType === 'primitive') {\n if (sourceType !== 'primitive') {\n return __assign$R({}, target);\n }\n if (source !== target) {\n return target;\n }\n return null;\n }\n var lhs = source || {};\n var rhs = target || {};\n var allProps = new Set(__spreadArray$A(__spreadArray$A([], __read$10(Object.keys(lhs))), __read$10(Object.keys(rhs))));\n var propsChangedCount = 0;\n var result = {};\n var _loop_1 = function (prop) {\n // Cheap-and-easy equality check.\n if (lhs[prop] === rhs[prop]) {\n return \"continue\";\n }\n var take = function (v) {\n result[prop] = v;\n propsChangedCount++;\n };\n var lhsType = classify(lhs[prop]);\n var rhsType = classify(rhs[prop]);\n if (lhsType !== rhsType) {\n // Types changed, just take RHS.\n take(rhs[prop]);\n return \"continue\";\n }\n if (rhsType === 'primitive' || rhsType === null) {\n take(rhs[prop]);\n return \"continue\";\n }\n if (rhsType === 'array' && lhs[prop].length !== rhs[prop].length) {\n // Arrays are different sizes, so just take target array.\n take(rhs[prop]);\n return \"continue\";\n }\n if (rhsType === 'class-instance') {\n // Don't try to do anything tricky with array diffs!\n take(rhs[prop]);\n return \"continue\";\n }\n if (rhsType === 'function' && lhs[prop] !== rhs[prop]) {\n take(rhs[prop]);\n return \"continue\";\n }\n var diff = jsonDiff(lhs[prop], rhs[prop]);\n if (diff !== null) {\n take(diff);\n }\n };\n try {\n for (var allProps_1 = __values$B(allProps), allProps_1_1 = allProps_1.next(); !allProps_1_1.done; allProps_1_1 = allProps_1.next()) {\n var prop = allProps_1_1.value;\n _loop_1(prop);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (allProps_1_1 && !allProps_1_1.done && (_a = allProps_1.return)) _a.call(allProps_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return propsChangedCount === 0 ? null : result;\n}\n/**\n * Special value used by `jsonMerge` to signal that a property should be removed from the merged\n * output.\n */\nvar DELETE = Symbol('');\nvar NOT_SPECIFIED = Symbol('');\n/**\n * Merge together the provide JSON object structures, with the precedence of application running\n * from higher indexes to lower indexes.\n *\n * Deep-clones all objects to avoid mutation of the inputs changing the output object. For arrays,\n * just performs a deep-clone of the entire array, no merging of elements attempted.\n *\n * @param json all json objects to merge\n * @param opts merge options\n * @param opts.avoidDeepClone contains a list of properties where deep clones should be avoided\n *\n * @returns the combination of all of the json inputs\n */\nfunction jsonMerge(json, opts) {\n var e_2, _a;\n var _b;\n var avoidDeepClone = (_b = opts === null || opts === void 0 ? void 0 : opts.avoidDeepClone) !== null && _b !== void 0 ? _b : [];\n var jsonTypes = json.map(function (v) { return classify(v); });\n if (jsonTypes.some(function (v) { return v === 'array'; })) {\n // Clone final array.\n var finalValue = json[json.length - 1];\n if (finalValue instanceof Array) {\n return finalValue.map(function (v) {\n var type = classify(v);\n if (type === 'array')\n return jsonMerge([[], v], opts);\n if (type === 'object')\n return jsonMerge([{}, v], opts);\n return v;\n });\n }\n return finalValue;\n }\n var result = {};\n var props = new Set(json.map(function (v) { return (v != null ? Object.keys(v) : []); }).reduce(function (r, n) { return r.concat(n); }, []));\n var _loop_2 = function (nextProp) {\n var values = json\n .map(function (j) {\n if (j != null && typeof j === 'object' && nextProp in j) {\n return j[nextProp];\n }\n return NOT_SPECIFIED;\n })\n .filter(function (v) { return v !== NOT_SPECIFIED; });\n if (values.length === 0) {\n return \"continue\";\n }\n var lastValue = values[values.length - 1];\n if (lastValue === DELETE) {\n return \"continue\";\n }\n var types = values.map(function (v) { return classify(v); });\n var type = types[0];\n if (types.some(function (t) { return t !== type; })) {\n // Short-circuit if mismatching types.\n result[nextProp] = lastValue;\n return \"continue\";\n }\n if ((type === 'array' || type === 'object') && !avoidDeepClone.includes(nextProp)) {\n result[nextProp] = jsonMerge(values, opts);\n }\n else if (type === 'array') {\n // Arrays need to be shallow copied to avoid external mutation and allow jsonDiff to\n // detect changes.\n result[nextProp] = __spreadArray$A([], __read$10(lastValue));\n }\n else {\n // Just directly assign/overwrite.\n result[nextProp] = lastValue;\n }\n };\n try {\n for (var props_1 = __values$B(props), props_1_1 = props_1.next(); !props_1_1.done; props_1_1 = props_1.next()) {\n var nextProp = props_1_1.value;\n _loop_2(nextProp);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (props_1_1 && !props_1_1.done && (_a = props_1.return)) _a.call(props_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return result;\n}\n/**\n * Recursively apply a JSON object into a class-hierarchy, optionally instantiating certain classes\n * by property name.\n *\n * @param target to apply source JSON properties into\n * @param source to be applied\n * @param params.path path for logging/error purposes, to aid with pinpointing problems\n * @param params.matcherPath path for pattern matching, to lookup allowedTypes override.\n * @param params.skip property names to skip from the source\n * @param params.constructors dictionary of property name to class constructors for properties that\n * require object construction\n * @param params.constructedArrays map stores arrays which items should be initialised\n * using a class constructor\n * @param params.allowedTypes overrides by path for allowed property types\n */\nfunction jsonApply(target, source, params) {\n var _a, _b, _c;\n if (params === void 0) { params = {}; }\n var _d = params.path, path = _d === void 0 ? undefined : _d, _e = params.matcherPath, matcherPath = _e === void 0 ? path ? path.replace(/(\\[[0-9+]+\\])/i, '[]') : undefined : _e, _f = params.skip, skip = _f === void 0 ? [] : _f, _g = params.constructors, constructors = _g === void 0 ? {} : _g, _h = params.constructedArrays, constructedArrays = _h === void 0 ? new WeakMap() : _h, _j = params.allowedTypes, allowedTypes = _j === void 0 ? {} : _j, idx = params.idx;\n if (target == null) {\n throw new Error(\"AG Charts - target is uninitialised: \" + (path !== null && path !== void 0 ? path : ''));\n }\n if (source == null) {\n return target;\n }\n var targetAny = target;\n if (idx != null && '_declarationOrder' in targetAny) {\n targetAny['_declarationOrder'] = idx;\n }\n var targetType = classify(target);\n var _loop_3 = function (property) {\n var propertyMatcherPath = \"\" + (matcherPath ? matcherPath + '.' : '') + property;\n if (skip.indexOf(propertyMatcherPath) >= 0) {\n return \"continue\";\n }\n var newValue = source[property];\n var propertyPath = \"\" + (path ? path + '.' : '') + property;\n var targetClass = targetAny.constructor;\n var currentValue = targetAny[property];\n var ctr = (_a = constructors[propertyMatcherPath]) !== null && _a !== void 0 ? _a : constructors[property];\n try {\n var currentValueType = classify(currentValue);\n var newValueType = classify(newValue);\n if (targetType === 'class-instance' &&\n !(property in target || Object.prototype.hasOwnProperty.call(targetAny, property))) {\n Logger.warn(\"unable to set [\" + propertyPath + \"] in \" + (targetClass === null || targetClass === void 0 ? void 0 : targetClass.name) + \" - property is unknown\");\n return \"continue\";\n }\n var allowableTypes = (_b = allowedTypes[propertyMatcherPath]) !== null && _b !== void 0 ? _b : [currentValueType];\n if (currentValueType === 'class-instance' && newValueType === 'object') {\n // Allowed, this is the common case! - do not error.\n }\n else if (currentValueType != null && newValueType != null && !allowableTypes.includes(newValueType)) {\n Logger.warn(\"unable to set [\" + propertyPath + \"] in \" + (targetClass === null || targetClass === void 0 ? void 0 : targetClass.name) + \" - can't apply type of [\" + newValueType + \"], allowed types are: [\" + allowableTypes + \"]\");\n return \"continue\";\n }\n if (newValueType === 'array') {\n ctr = (_c = ctr !== null && ctr !== void 0 ? ctr : constructedArrays.get(currentValue)) !== null && _c !== void 0 ? _c : constructors[propertyMatcherPath + \"[]\"];\n if (ctr != null) {\n var newValueArray = newValue;\n targetAny[property] = newValueArray.map(function (v, idx) {\n return jsonApply(new ctr(), v, __assign$R(__assign$R({}, params), { path: propertyPath, matcherPath: propertyMatcherPath + '[]', idx: idx }));\n });\n }\n else {\n targetAny[property] = newValue;\n }\n }\n else if (newValueType === 'class-instance') {\n targetAny[property] = newValue;\n }\n else if (newValueType === 'object') {\n if (currentValue != null) {\n jsonApply(currentValue, newValue, __assign$R(__assign$R({}, params), { path: propertyPath, matcherPath: propertyMatcherPath, idx: undefined }));\n }\n else if (ctr != null) {\n targetAny[property] = jsonApply(new ctr(), newValue, __assign$R(__assign$R({}, params), { path: propertyPath, matcherPath: propertyMatcherPath, idx: undefined }));\n }\n else {\n targetAny[property] = newValue;\n }\n }\n else {\n targetAny[property] = newValue;\n }\n }\n catch (error) {\n Logger.warn(\"unable to set [\" + propertyPath + \"] in [\" + (targetClass === null || targetClass === void 0 ? void 0 : targetClass.name) + \"]; nested error is: \" + error.message);\n return \"continue\";\n }\n };\n for (var property in source) {\n _loop_3(property);\n }\n return target;\n}\n/**\n * Walk the given JSON object graphs, invoking the visit() callback for every object encountered.\n * Arrays are descended into without a callback, however their elements will have the visit()\n * callback invoked if they are objects.\n *\n * @param json to traverse\n * @param visit callback for each non-primitive and non-array object found\n * @param opts.skip property names to skip when walking\n * @param jsons to traverse in parallel\n */\nfunction jsonWalk(json, visit, opts) {\n var _a;\n var jsons = [];\n for (var _i = 3; _i < arguments.length; _i++) {\n jsons[_i - 3] = arguments[_i];\n }\n var jsonType = classify(json);\n var skip = (_a = opts.skip) !== null && _a !== void 0 ? _a : [];\n if (jsonType === 'array') {\n json.forEach(function (element, index) {\n jsonWalk.apply(void 0, __spreadArray$A([element, visit, opts], __read$10((jsons !== null && jsons !== void 0 ? jsons : []).map(function (o) { return o === null || o === void 0 ? void 0 : o[index]; }))));\n });\n return;\n }\n else if (jsonType !== 'object') {\n return;\n }\n visit.apply(void 0, __spreadArray$A([jsonType, json], __read$10(jsons)));\n var _loop_4 = function (property) {\n if (skip.indexOf(property) >= 0) {\n return \"continue\";\n }\n var value = json[property];\n var otherValues = jsons === null || jsons === void 0 ? void 0 : jsons.map(function (o) { return o === null || o === void 0 ? void 0 : o[property]; });\n var valueType = classify(value);\n if (valueType === 'object' || valueType === 'array') {\n jsonWalk.apply(void 0, __spreadArray$A([value, visit, opts], __read$10(otherValues)));\n }\n };\n for (var property in json) {\n _loop_4(property);\n }\n}\nvar isBrowser = typeof window !== 'undefined';\n/**\n * Classify the type of a value to assist with handling for merge purposes.\n */\nfunction classify(value) {\n if (value == null) {\n return null;\n }\n else if (isBrowser && value instanceof HTMLElement) {\n return 'primitive';\n }\n else if (value instanceof Array) {\n return 'array';\n }\n else if (value instanceof Date) {\n return 'primitive';\n }\n else if (typeof value === 'object' && value.constructor === Object) {\n return 'object';\n }\n else if (typeof value === 'function') {\n return 'function';\n }\n else if (typeof value === 'object' && value.constructor != null) {\n return 'class-instance';\n }\n return 'primitive';\n}\n\nvar __values$A = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$$ = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$z = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar Listeners = /** @class */ (function () {\n function Listeners() {\n this.registeredListeners = {};\n }\n Listeners.prototype.addListener = function (type, cb) {\n var _a;\n var symbol = Symbol(type);\n if (!this.registeredListeners[type]) {\n this.registeredListeners[type] = [];\n }\n (_a = this.registeredListeners[type]) === null || _a === void 0 ? void 0 : _a.push({ symbol: symbol, handler: cb });\n return symbol;\n };\n Listeners.prototype.dispatch = function (type) {\n var e_1, _a;\n var _b;\n var params = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n params[_i - 1] = arguments[_i];\n }\n var listeners = (_b = this.registeredListeners[type]) !== null && _b !== void 0 ? _b : [];\n var results = [];\n try {\n for (var listeners_1 = __values$A(listeners), listeners_1_1 = listeners_1.next(); !listeners_1_1.done; listeners_1_1 = listeners_1.next()) {\n var listener = listeners_1_1.value;\n try {\n results.push(listener.handler.apply(listener, __spreadArray$z([], __read$$(params))));\n }\n catch (e) {\n Logger.errorOnce(e);\n results.push(undefined);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (listeners_1_1 && !listeners_1_1.done && (_a = listeners_1.return)) _a.call(listeners_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return results;\n };\n Listeners.prototype.cancellableDispatch = function (type, cancelled) {\n var e_2, _a;\n var _b;\n var params = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n params[_i - 2] = arguments[_i];\n }\n var listeners = (_b = this.registeredListeners[type]) !== null && _b !== void 0 ? _b : [];\n var results = [];\n try {\n for (var listeners_2 = __values$A(listeners), listeners_2_1 = listeners_2.next(); !listeners_2_1.done; listeners_2_1 = listeners_2.next()) {\n var listener = listeners_2_1.value;\n if (cancelled())\n break;\n results.push(listener.handler.apply(listener, __spreadArray$z([], __read$$(params))));\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (listeners_2_1 && !listeners_2_1.done && (_a = listeners_2.return)) _a.call(listeners_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return results;\n };\n Listeners.prototype.reduceDispatch = function (type, reduceFn) {\n var e_3, _a;\n var _b;\n var params = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n params[_i - 2] = arguments[_i];\n }\n var listeners = (_b = this.registeredListeners[type]) !== null && _b !== void 0 ? _b : [];\n var listenerResult = undefined;\n try {\n for (var listeners_3 = __values$A(listeners), listeners_3_1 = listeners_3.next(); !listeners_3_1.done; listeners_3_1 = listeners_3.next()) {\n var listener = listeners_3_1.value;\n listenerResult = listener.handler.apply(listener, __spreadArray$z([], __read$$(params)));\n params = reduceFn.apply(void 0, __spreadArray$z([listenerResult], __read$$(params)));\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (listeners_3_1 && !listeners_3_1.done && (_a = listeners_3.return)) _a.call(listeners_3);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return listenerResult;\n };\n Listeners.prototype.removeListener = function (listenerSymbol) {\n for (var type in this.registeredListeners) {\n var listeners = this.registeredListeners[type];\n var match = listeners === null || listeners === void 0 ? void 0 : listeners.findIndex(function (entry) { return entry.symbol === listenerSymbol; });\n if (match != null && match >= 0) {\n listeners === null || listeners === void 0 ? void 0 : listeners.splice(match, 1);\n }\n if (match != null && (listeners === null || listeners === void 0 ? void 0 : listeners.length) === 0) {\n delete this.registeredListeners[type];\n }\n }\n };\n return Listeners;\n}());\n\nvar BaseManager = /** @class */ (function () {\n function BaseManager() {\n this.listeners = new Listeners();\n }\n BaseManager.prototype.addListener = function (type, cb) {\n return this.listeners.addListener(type, cb);\n };\n BaseManager.prototype.removeListener = function (listenerSymbol) {\n this.listeners.removeListener(listenerSymbol);\n };\n return BaseManager;\n}());\n\nfunction number (a, b) {\n a = +a;\n b = +b;\n return function (t) { return a * (1 - t) + b * t; };\n}\n\nfunction interpolateColor (a, b) {\n if (typeof a === 'string') {\n try {\n a = Color.fromString(a);\n }\n catch (e) {\n a = Color.fromArray([0, 0, 0]);\n }\n }\n if (typeof b === 'string') {\n try {\n b = Color.fromString(b);\n }\n catch (e) {\n b = Color.fromArray([0, 0, 0]);\n }\n }\n var red = number(a.r, b.r);\n var green = number(a.g, b.g);\n var blue = number(a.b, b.b);\n var alpha = number(a.a, b.a);\n return function (t) {\n return Color.fromArray([red(t), green(t), blue(t), alpha(t)]).toRgbaString();\n };\n}\n\nfunction interpolate$1 (a, b) {\n var t = typeof b;\n var c;\n if (t === 'number') {\n return number(a, b);\n }\n if (t === 'string') {\n try {\n c = Color.fromString(b);\n b = c;\n return interpolateColor(a, b);\n }\n catch (e) {\n // Error-case handled below.\n }\n }\n throw new Error('Unable to interpolate values');\n}\n\nfunction createEase(fn) {\n return function (_a) {\n var from = _a.from, to = _a.to;\n var interp = interpolate$1(from, to);\n return function (time) { return interp(fn(time)); };\n };\n}\nfunction linear(_a) {\n var from = _a.from, to = _a.to;\n return interpolate$1(from, to);\n}\nvar easeOut = createEase(function (x) { return Math.sin((x * Math.PI) / 2); });\n\nvar __assign$Q = (undefined && undefined.__assign) || function () {\n __assign$Q = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$Q.apply(this, arguments);\n};\nvar RepeatType;\n(function (RepeatType) {\n RepeatType[\"Loop\"] = \"loop\";\n RepeatType[\"Reverse\"] = \"reverse\";\n})(RepeatType || (RepeatType = {}));\nfunction animate(_a) {\n var driver = _a.driver, duration = _a.duration, from = _a.from, to = _a.to, _b = _a.autoplay, autoplay = _b === void 0 ? true : _b, _c = _a.delay, delay = _c === void 0 ? 0 : _c, _d = _a.ease, ease = _d === void 0 ? linear : _d, _e = _a.repeat, repeatMax = _e === void 0 ? 0 : _e, _f = _a.repeatType, repeatType = _f === void 0 ? RepeatType.Loop : _f, onComplete = _a.onComplete, onPlay = _a.onPlay, onRepeat = _a.onRepeat, onStop = _a.onStop, onUpdate = _a.onUpdate;\n var state;\n var delayElapsed = 0;\n var elapsed = 0;\n var iteration = 0;\n var isForward = true;\n var isComplete = false;\n var easing = ease({ from: from, to: to });\n var controls = { isPlaying: false, play: play, pause: pause, stop: stop, reset: reset };\n var driverControls = driver(update);\n function play() {\n controls.isPlaying = true;\n driverControls.start();\n onPlay === null || onPlay === void 0 ? void 0 : onPlay();\n return controls;\n }\n function pause() {\n controls.isPlaying = false;\n return controls;\n }\n function stop() {\n controls.isPlaying = false;\n driverControls.stop();\n onStop === null || onStop === void 0 ? void 0 : onStop();\n return controls;\n }\n function reset() {\n isComplete = false;\n elapsed = 0;\n iteration = 0;\n driverControls.reset();\n return controls;\n }\n function repeat() {\n iteration++;\n if (repeatType === RepeatType.Reverse) {\n isForward = iteration % 2 === 0;\n elapsed = isForward ? elapsed % duration : duration - (elapsed % duration);\n }\n else {\n elapsed = elapsed % duration;\n }\n isComplete = false;\n onRepeat === null || onRepeat === void 0 ? void 0 : onRepeat();\n }\n function complete() {\n stop();\n onComplete === null || onComplete === void 0 ? void 0 : onComplete();\n }\n function update(delta) {\n if (!isForward)\n delta = -delta;\n if (delayElapsed >= delay) {\n elapsed += delta;\n }\n else {\n delayElapsed += delta;\n return;\n }\n if (!isComplete) {\n state = easing(Math.min(1, Math.max(0, elapsed / duration)));\n isComplete = isForward ? elapsed >= duration : elapsed <= 0;\n }\n onUpdate === null || onUpdate === void 0 ? void 0 : onUpdate(state);\n if (isComplete) {\n if (iteration < repeatMax) {\n repeat();\n }\n else {\n complete();\n }\n }\n }\n if (autoplay)\n play();\n return controls;\n}\nfunction tween(opts) {\n var handleUpdate;\n var animateOpts = __assign$Q(__assign$Q({}, opts), { autoplay: false, onUpdate: function (value) {\n handleUpdate === null || handleUpdate === void 0 ? void 0 : handleUpdate(value);\n } });\n var animationControls = animate(animateOpts);\n var controls = {\n start: function (onUpdate) {\n animationControls.stop();\n animationControls.reset();\n animationControls.play();\n handleUpdate = onUpdate;\n return controls;\n },\n stop: function () {\n animationControls.stop();\n return controls;\n },\n };\n return controls;\n}\n\nvar __extends$2G = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$P = (undefined && undefined.__assign) || function () {\n __assign$P = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$P.apply(this, arguments);\n};\nvar __rest$5 = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __values$z = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$_ = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar AnimationManager = /** @class */ (function (_super) {\n __extends$2G(AnimationManager, _super);\n function AnimationManager(interactionManager) {\n var _this = _super.call(this) || this;\n _this.controllers = {};\n _this.throttles = {};\n _this.throttleGroups = new Set();\n _this.updaters = [];\n _this.isPlaying = false;\n _this.readyToPlay = false;\n _this.defaultOptions = {};\n _this.skipAnimations = false;\n _this.debug = false;\n _this.interactionManager = interactionManager;\n window.addEventListener('DOMContentLoaded', function () {\n _this.readyToPlay = true;\n });\n // Fallback if `DOMContentLoaded` event is not fired, e.g. in an iframe\n setTimeout(function () {\n _this.readyToPlay = true;\n }, 10);\n return _this;\n }\n AnimationManager.prototype.play = function () {\n if (this.isPlaying)\n return;\n this.isPlaying = true;\n if (this.debug) {\n Logger.debug('AnimationManager.play()');\n }\n for (var id in this.controllers) {\n this.controllers[id].play();\n }\n this.startAnimationCycle();\n };\n AnimationManager.prototype.pause = function () {\n if (!this.isPlaying)\n return;\n this.isPlaying = false;\n this.cancelAnimationFrame();\n if (this.debug) {\n Logger.debug('AnimationManager.pause()');\n }\n for (var id in this.controllers) {\n this.controllers[id].pause();\n }\n };\n AnimationManager.prototype.stop = function () {\n this.isPlaying = false;\n this.cancelAnimationFrame();\n if (this.debug) {\n Logger.debug('AnimationManager.stop()');\n }\n for (var id in this.controllers) {\n this.controllers[id].stop();\n }\n };\n AnimationManager.prototype.reset = function () {\n if (this.isPlaying) {\n this.stop();\n this.play();\n }\n else {\n this.stop();\n }\n };\n AnimationManager.prototype.animate = function (id, _a) {\n var _b, _c;\n var _d = _a.disableInteractions, disableInteractions = _d === void 0 ? true : _d, opts = __rest$5(_a, [\"disableInteractions\"]);\n if (this.skipAnimations) {\n // Initialise the animation with the final values immediately and then stop the animation\n (_b = opts.onUpdate) === null || _b === void 0 ? void 0 : _b.call(opts, opts.to);\n return;\n }\n var optsExtra = __assign$P(__assign$P({}, opts), { autoplay: this.isPlaying ? opts.autoplay : false, driver: this.createDriver(id, disableInteractions) });\n if (this.controllers[id]) {\n this.controllers[id].stop();\n }\n var controller = animate(optsExtra);\n this.controllers[id] = controller;\n // Initialise the animation immediately without requesting a frame to prevent flashes\n (_c = opts.onUpdate) === null || _c === void 0 ? void 0 : _c.call(opts, opts.from);\n return controller;\n };\n AnimationManager.prototype.animateMany = function (id, props, opts) {\n var e_1, _a;\n var _b;\n if (this.skipAnimations) {\n var state_1 = props.map(function (prop) { return prop.to; });\n opts.onUpdate(state_1);\n (_b = opts.onComplete) === null || _b === void 0 ? void 0 : _b.call(opts);\n return;\n }\n var state = props.map(function (prop) { return prop.from; });\n var playBatch = 0;\n var stopBatch = 0;\n var updateBatch = 0;\n var completeBatch = 0;\n var onUpdate = function (index) { return function (v) {\n var _a;\n state[index] = v;\n if (++updateBatch >= props.length) {\n (_a = opts.onUpdate) === null || _a === void 0 ? void 0 : _a.call(opts, state);\n updateBatch = 0;\n }\n }; };\n var onPlay = function () {\n var _a;\n if (++playBatch >= props.length) {\n (_a = opts.onPlay) === null || _a === void 0 ? void 0 : _a.call(opts);\n }\n };\n var onStop = function () {\n var _a;\n if (++stopBatch >= props.length) {\n (_a = opts.onStop) === null || _a === void 0 ? void 0 : _a.call(opts);\n }\n };\n var onComplete = function () {\n var _a;\n if (++completeBatch >= props.length) {\n (_a = opts.onComplete) === null || _a === void 0 ? void 0 : _a.call(opts);\n }\n };\n var index = 0;\n try {\n for (var props_1 = __values$z(props), props_1_1 = props_1.next(); !props_1_1.done; props_1_1 = props_1.next()) {\n var prop = props_1_1.value;\n var inner_id = id + \"-\" + index;\n this.animate(inner_id, __assign$P(__assign$P(__assign$P({}, opts), prop), { onUpdate: onUpdate(index), onPlay: onPlay, onStop: onStop, onComplete: onComplete }));\n index++;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (props_1_1 && !props_1_1.done && (_a = props_1.return)) _a.call(props_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n AnimationManager.prototype.animateWithThrottle = function (id, opts) {\n var _a;\n var throttleId = (_a = opts.throttleId) !== null && _a !== void 0 ? _a : id;\n if (this.throttles[throttleId] && opts.duration && Date.now() - this.throttles[throttleId] < opts.duration) {\n opts.delay = 0;\n opts.duration = 1;\n }\n this.throttles[id] = Date.now();\n this.animate(id, __assign$P({}, opts));\n };\n AnimationManager.prototype.animateManyWithThrottle = function (id, props, opts) {\n var _this = this;\n var _a;\n var throttleGroup = opts.throttleGroup;\n var throttleId = (_a = opts.throttleId) !== null && _a !== void 0 ? _a : id;\n var now = Date.now();\n var isThrottled = this.throttles[throttleId] && opts.duration && now - this.throttles[throttleId] < opts.duration;\n var inGroup = throttleGroup && this.throttleGroups.has(throttleGroup);\n if (isThrottled && !inGroup) {\n opts.delay = 0;\n opts.duration = 1;\n }\n if (!isThrottled && throttleGroup) {\n this.throttleGroups.add(throttleGroup);\n }\n var onStop = function () {\n var _a;\n if (throttleGroup) {\n _this.throttleGroups.delete(throttleGroup);\n }\n (_a = opts.onStop) === null || _a === void 0 ? void 0 : _a.call(opts);\n };\n this.throttles[throttleId] = now;\n return this.animateMany(id, props, __assign$P(__assign$P({}, opts), { onStop: onStop }));\n };\n AnimationManager.prototype.tween = function (opts) {\n var id = \"tween-\" + btoa(JSON.stringify(opts));\n var optsExtra = __assign$P(__assign$P({}, opts), { driver: this.createDriver(id) });\n return tween(optsExtra);\n };\n AnimationManager.prototype.createDriver = function (id, disableInteractions) {\n var _this = this;\n return function (update) {\n return {\n start: function () {\n _this.updaters.push([id, update]);\n if (_this.requestId == null) {\n _this.startAnimationCycle();\n }\n if (disableInteractions) {\n _this.interactionManager.pause(\"animation_\" + id);\n }\n },\n stop: function () {\n delete _this.controllers[id];\n _this.updaters = _this.updaters.filter(function (_a) {\n var _b = __read$_(_a, 1), uid = _b[0];\n return uid !== id;\n });\n if (_this.updaters.length <= 0) {\n _this.cancelAnimationFrame();\n }\n if (disableInteractions) {\n _this.interactionManager.resume(\"animation_\" + id);\n }\n },\n reset: function () { },\n };\n };\n };\n AnimationManager.prototype.startAnimationCycle = function () {\n var _this = this;\n if (this.updaters.length === 0)\n return;\n var frame = function (time) {\n _this.requestId = requestAnimationFrame(frame);\n if (!_this.readyToPlay)\n return;\n if (_this.lastTime === undefined)\n _this.lastTime = time;\n var deltaMs = time - _this.lastTime;\n _this.lastTime = time;\n if (_this.debug) {\n Logger.debug('AnimationManager - frame()', { updaterCount: _this.updaters.length });\n }\n _this.updaters.forEach(function (_a) {\n var _b = __read$_(_a, 2); _b[0]; var update = _b[1];\n return update(deltaMs);\n });\n _this.listeners.dispatch('animation-frame', { type: 'animation-frame', deltaMs: deltaMs });\n };\n this.requestId = requestAnimationFrame(frame);\n };\n AnimationManager.prototype.cancelAnimationFrame = function () {\n if (!this.requestId)\n return;\n cancelAnimationFrame(this.requestId);\n this.requestId = undefined;\n this.lastTime = undefined;\n };\n return AnimationManager;\n}(BaseManager));\n\nvar __read$Z = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n/**\n * Manages the cursor styling for an element. Tracks the requested styling from distinct\n * dependents and handles conflicting styling requests.\n */\nvar CursorManager = /** @class */ (function () {\n function CursorManager(element) {\n this.states = {};\n this.element = element;\n }\n CursorManager.prototype.updateCursor = function (callerId, style) {\n delete this.states[callerId];\n if (style != null) {\n this.states[callerId] = { style: style };\n }\n this.applyStates();\n };\n CursorManager.prototype.applyStates = function () {\n var styleToApply = 'default';\n // Last added entry wins.\n Object.entries(this.states)\n .reverse()\n .slice(0, 1)\n .forEach(function (_a) {\n var _b = __read$Z(_a, 2); _b[0]; var style = _b[1].style;\n return (styleToApply = style);\n });\n this.element.style.cursor = styleToApply;\n };\n return CursorManager;\n}());\n\nvar __extends$2F = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar ChartEventManager = /** @class */ (function (_super) {\n __extends$2F(ChartEventManager, _super);\n function ChartEventManager() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ChartEventManager.prototype.legendItemClick = function (series, itemId, enabled, legendItemName) {\n var event = {\n type: 'legend-item-click',\n series: series,\n itemId: itemId,\n enabled: enabled,\n legendItemName: legendItemName,\n };\n this.listeners.dispatch('legend-item-click', event);\n };\n ChartEventManager.prototype.legendItemDoubleClick = function (series, itemId, enabled, numVisibleItems, legendItemName) {\n var event = {\n type: 'legend-item-double-click',\n series: series,\n itemId: itemId,\n enabled: enabled,\n legendItemName: legendItemName,\n numVisibleItems: numVisibleItems,\n };\n this.listeners.dispatch('legend-item-double-click', event);\n };\n ChartEventManager.prototype.axisHover = function (axisId, direction) {\n var event = {\n type: 'axis-hover',\n axisId: axisId,\n direction: direction,\n };\n this.listeners.dispatch('axis-hover', event);\n };\n return ChartEventManager;\n}(BaseManager));\n\nvar __extends$2E = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read$Y = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nfunction isEqual$1(a, b) {\n if (a === b)\n return true;\n if ((a === null || a === void 0 ? void 0 : a.series) !== (b === null || b === void 0 ? void 0 : b.series))\n return false;\n if ((a === null || a === void 0 ? void 0 : a.itemId) !== (b === null || b === void 0 ? void 0 : b.itemId))\n return false;\n if ((a === null || a === void 0 ? void 0 : a.datum) !== (b === null || b === void 0 ? void 0 : b.datum))\n return false;\n return true;\n}\n/**\n * Manages the actively highlighted series/datum for a chart. Tracks the requested highlights from\n * distinct dependents and handles conflicting highlight requests.\n */\nvar HighlightManager = /** @class */ (function (_super) {\n __extends$2E(HighlightManager, _super);\n function HighlightManager() {\n var _this = _super.call(this) || this;\n _this.states = {};\n _this.activeHighlight = undefined;\n return _this;\n }\n HighlightManager.prototype.updateHighlight = function (callerId, highlightedDatum) {\n delete this.states[callerId];\n if (highlightedDatum != null) {\n this.states[callerId] = { highlightedDatum: highlightedDatum };\n }\n this.applyStates();\n };\n HighlightManager.prototype.getActiveHighlight = function () {\n return this.activeHighlight;\n };\n HighlightManager.prototype.applyStates = function () {\n var previousHighlight = this.activeHighlight;\n var highlightToApply = undefined;\n // Last added entry wins.\n Object.entries(this.states)\n .reverse()\n .slice(0, 1)\n .forEach(function (_a) {\n var _b = __read$Y(_a, 2); _b[0]; var highlightedDatum = _b[1].highlightedDatum;\n return (highlightToApply = highlightedDatum);\n });\n this.activeHighlight = highlightToApply;\n var changed = !isEqual$1(previousHighlight, this.activeHighlight);\n if (changed) {\n var event_1 = {\n type: 'highlight-change',\n previousHighlight: previousHighlight,\n currentHighlight: this.activeHighlight,\n };\n this.listeners.dispatch('highlight-change', event_1);\n }\n };\n return HighlightManager;\n}(BaseManager));\n\nvar __extends$2D = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$O = (undefined && undefined.__assign) || function () {\n __assign$O = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$O.apply(this, arguments);\n};\nvar __awaiter$e = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$e = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __values$y = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar WINDOW_EVENT_HANDLERS = ['pagehide', 'mousemove', 'mouseup', 'wheel'];\nvar EVENT_HANDLERS = [\n 'click',\n 'dblclick',\n 'contextmenu',\n 'mousedown',\n 'mouseout',\n 'mouseenter',\n 'touchstart',\n 'touchmove',\n 'touchend',\n 'touchcancel',\n];\nvar CSS = \"\\n.ag-chart-wrapper {\\n touch-action: none;\\n}\\n\";\n/**\n * Manages user interactions with a specific HTMLElement (or interactions that bubble from it's\n * children)\n */\nvar InteractionManager = /** @class */ (function (_super) {\n __extends$2D(InteractionManager, _super);\n function InteractionManager(element, doc) {\n var e_1, _a, e_2, _b;\n if (doc === void 0) { doc = document; }\n var _this = _super.call(this) || this;\n _this.eventHandler = function (event) { return _this.processEvent(event); };\n _this.mouseDown = false;\n _this.touchDown = false;\n _this.enabled = true;\n _this.pausers = [];\n _this.rootElement = doc.body;\n _this.element = element;\n try {\n for (var EVENT_HANDLERS_1 = __values$y(EVENT_HANDLERS), EVENT_HANDLERS_1_1 = EVENT_HANDLERS_1.next(); !EVENT_HANDLERS_1_1.done; EVENT_HANDLERS_1_1 = EVENT_HANDLERS_1.next()) {\n var type = EVENT_HANDLERS_1_1.value;\n if (type.startsWith('touch')) {\n element.addEventListener(type, _this.eventHandler, { passive: true });\n }\n else {\n element.addEventListener(type, _this.eventHandler);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (EVENT_HANDLERS_1_1 && !EVENT_HANDLERS_1_1.done && (_a = EVENT_HANDLERS_1.return)) _a.call(EVENT_HANDLERS_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n try {\n for (var WINDOW_EVENT_HANDLERS_1 = __values$y(WINDOW_EVENT_HANDLERS), WINDOW_EVENT_HANDLERS_1_1 = WINDOW_EVENT_HANDLERS_1.next(); !WINDOW_EVENT_HANDLERS_1_1.done; WINDOW_EVENT_HANDLERS_1_1 = WINDOW_EVENT_HANDLERS_1.next()) {\n var type = WINDOW_EVENT_HANDLERS_1_1.value;\n if (type === 'wheel') {\n window.addEventListener(type, _this.eventHandler, { passive: false });\n }\n else {\n window.addEventListener(type, _this.eventHandler);\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (WINDOW_EVENT_HANDLERS_1_1 && !WINDOW_EVENT_HANDLERS_1_1.done && (_b = WINDOW_EVENT_HANDLERS_1.return)) _b.call(WINDOW_EVENT_HANDLERS_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (InteractionManager.interactionDocuments.indexOf(doc) < 0) {\n var styleElement = document.createElement('style');\n styleElement.innerHTML = CSS;\n document.head.insertBefore(styleElement, document.head.querySelector('style'));\n InteractionManager.interactionDocuments.push(doc);\n }\n return _this;\n }\n InteractionManager.prototype.destroy = function () {\n var e_3, _a, e_4, _b;\n try {\n for (var WINDOW_EVENT_HANDLERS_2 = __values$y(WINDOW_EVENT_HANDLERS), WINDOW_EVENT_HANDLERS_2_1 = WINDOW_EVENT_HANDLERS_2.next(); !WINDOW_EVENT_HANDLERS_2_1.done; WINDOW_EVENT_HANDLERS_2_1 = WINDOW_EVENT_HANDLERS_2.next()) {\n var type = WINDOW_EVENT_HANDLERS_2_1.value;\n window.removeEventListener(type, this.eventHandler);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (WINDOW_EVENT_HANDLERS_2_1 && !WINDOW_EVENT_HANDLERS_2_1.done && (_a = WINDOW_EVENT_HANDLERS_2.return)) _a.call(WINDOW_EVENT_HANDLERS_2);\n }\n finally { if (e_3) throw e_3.error; }\n }\n try {\n for (var EVENT_HANDLERS_2 = __values$y(EVENT_HANDLERS), EVENT_HANDLERS_2_1 = EVENT_HANDLERS_2.next(); !EVENT_HANDLERS_2_1.done; EVENT_HANDLERS_2_1 = EVENT_HANDLERS_2.next()) {\n var type = EVENT_HANDLERS_2_1.value;\n this.element.removeEventListener(type, this.eventHandler);\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (EVENT_HANDLERS_2_1 && !EVENT_HANDLERS_2_1.done && (_b = EVENT_HANDLERS_2.return)) _b.call(EVENT_HANDLERS_2);\n }\n finally { if (e_4) throw e_4.error; }\n }\n };\n InteractionManager.prototype.resume = function (callerId) {\n this.pausers = this.pausers.filter(function (id) { return id !== callerId; });\n this.enabled = this.pausers.length <= 0;\n return this.enabled;\n };\n InteractionManager.prototype.pause = function (callerId) {\n this.enabled = false;\n this.pausers.push(callerId);\n };\n InteractionManager.prototype.processEvent = function (event) {\n var types = this.decideInteractionEventTypes(event);\n if (types.length > 0 && this.enabled) {\n // Async dispatch to avoid blocking the event-processing thread.\n this.dispatchEvent(event, types).catch(function (e) { return Logger.errorOnce(e); });\n }\n };\n InteractionManager.prototype.dispatchEvent = function (event, types) {\n return __awaiter$e(this, void 0, void 0, function () {\n var coords, _loop_1, this_1, types_1, types_1_1, type;\n var e_5, _a;\n return __generator$e(this, function (_b) {\n coords = this.calculateCoordinates(event);\n if (coords == null) {\n return [2 /*return*/];\n }\n _loop_1 = function (type) {\n var interactionEvent = this_1.buildEvent(__assign$O(__assign$O({ event: event }, coords), { type: type }));\n this_1.listeners.cancellableDispatch(type, function () { return interactionEvent.consumed; }, interactionEvent);\n };\n this_1 = this;\n try {\n for (types_1 = __values$y(types), types_1_1 = types_1.next(); !types_1_1.done; types_1_1 = types_1.next()) {\n type = types_1_1.value;\n _loop_1(type);\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (types_1_1 && !types_1_1.done && (_a = types_1.return)) _a.call(types_1);\n }\n finally { if (e_5) throw e_5.error; }\n }\n return [2 /*return*/];\n });\n });\n };\n InteractionManager.prototype.decideInteractionEventTypes = function (event) {\n switch (event.type) {\n case 'click':\n return ['click'];\n case 'dblclick':\n return ['dblclick'];\n case 'contextmenu':\n return ['contextmenu'];\n case 'mousedown':\n this.mouseDown = true;\n this.dragStartElement = event.target;\n return ['drag-start'];\n case 'touchstart':\n this.touchDown = true;\n this.dragStartElement = event.target;\n return ['drag-start'];\n case 'touchmove':\n case 'mousemove':\n if (!this.mouseDown && !this.touchDown && !this.isEventOverElement(event)) {\n // We only care about these events if the target is the canvas, unless\n // we're in the middle of a drag/slide.\n return [];\n }\n return this.mouseDown || this.touchDown ? ['drag'] : ['hover'];\n case 'mouseup':\n if (!this.mouseDown && !this.isEventOverElement(event)) {\n // We only care about these events if the target is the canvas, unless\n // we're in the middle of a drag.\n return [];\n }\n this.mouseDown = false;\n this.dragStartElement = undefined;\n return ['drag-end'];\n case 'touchend':\n if (!this.touchDown && !this.isEventOverElement(event)) {\n // We only care about these events if the target is the canvas, unless\n // we're in the middle of a slide.\n return [];\n }\n this.touchDown = false;\n this.dragStartElement = undefined;\n return ['drag-end'];\n case 'mouseout':\n case 'touchcancel':\n return ['leave'];\n case 'mouseenter':\n var mouseButtonDown = event instanceof MouseEvent && (event.buttons & 1) === 1;\n if (this.mouseDown !== mouseButtonDown) {\n this.mouseDown = mouseButtonDown;\n return [mouseButtonDown ? 'drag-start' : 'drag-end'];\n }\n return [];\n case 'pagehide':\n return ['page-left'];\n case 'wheel':\n return ['wheel'];\n }\n return [];\n };\n InteractionManager.prototype.isEventOverElement = function (event) {\n var _a;\n return event.target === this.element || ((_a = event.target) === null || _a === void 0 ? void 0 : _a.parentElement) === this.element;\n };\n InteractionManager.prototype.calculateCoordinates = function (event) {\n var _a;\n if (event instanceof MouseEvent) {\n var clientX = event.clientX, clientY = event.clientY, pageX = event.pageX, pageY = event.pageY, offsetX = event.offsetX, offsetY = event.offsetY;\n return this.fixOffsets(event, { clientX: clientX, clientY: clientY, pageX: pageX, pageY: pageY, offsetX: offsetX, offsetY: offsetY });\n }\n else if (typeof TouchEvent !== 'undefined' && event instanceof TouchEvent) {\n var lastTouch = (_a = event.touches[0]) !== null && _a !== void 0 ? _a : event.changedTouches[0];\n var clientX = lastTouch.clientX, clientY = lastTouch.clientY, pageX = lastTouch.pageX, pageY = lastTouch.pageY;\n return __assign$O(__assign$O({}, InteractionManager.NULL_COORDS), { clientX: clientX, clientY: clientY, pageX: pageX, pageY: pageY });\n }\n else if (event instanceof PageTransitionEvent) {\n if (event.persisted) {\n // Don't fire the page-left event since the page maybe revisited.\n return;\n }\n return InteractionManager.NULL_COORDS;\n }\n // Unsupported event - abort.\n };\n InteractionManager.prototype.fixOffsets = function (event, coords) {\n var offsets = function (el) {\n var x = 0;\n var y = 0;\n while (el) {\n x += el.offsetLeft;\n y += el.offsetTop;\n el = el.offsetParent;\n }\n return { x: x, y: y };\n };\n if (this.dragStartElement != null && event.target !== this.dragStartElement) {\n // Offsets need to be relative to the drag-start element to avoid jumps when\n // the pointer moves between element boundaries.\n var offsetDragStart = offsets(this.dragStartElement);\n var offsetEvent = offsets(event.target);\n coords.offsetX -= offsetDragStart.x - offsetEvent.x;\n coords.offsetY -= offsetDragStart.y - offsetEvent.y;\n }\n return coords;\n };\n InteractionManager.prototype.buildEvent = function (opts) {\n var type = opts.type, event = opts.event, clientX = opts.clientX, clientY = opts.clientY;\n var offsetX = opts.offsetX, offsetY = opts.offsetY, pageX = opts.pageX, pageY = opts.pageY;\n if (!isNumber$4(offsetX) || !isNumber$4(offsetY)) {\n var rect = this.element.getBoundingClientRect();\n offsetX = clientX - rect.left;\n offsetY = clientY - rect.top;\n }\n if (!isNumber$4(pageX) || !isNumber$4(pageY)) {\n var pageRect = this.rootElement.getBoundingClientRect();\n pageX = clientX - pageRect.left;\n pageY = clientY - pageRect.top;\n }\n var builtEvent = {\n type: type,\n offsetX: offsetX,\n offsetY: offsetY,\n pageX: pageX,\n pageY: pageY,\n sourceEvent: event,\n consumed: false,\n consume: function () { return (builtEvent.consumed = true); },\n };\n return builtEvent;\n };\n InteractionManager.interactionDocuments = [];\n InteractionManager.NULL_COORDS = {\n clientX: -Infinity,\n clientY: -Infinity,\n pageX: -Infinity,\n pageY: -Infinity,\n offsetX: -Infinity,\n offsetY: -Infinity,\n };\n return InteractionManager;\n}(BaseManager));\n\nvar __values$x = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$X = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n/**\n * Manages the tooltip HTML an element. Tracks the requested HTML from distinct dependents and\n * handles conflicting tooltip requests.\n */\nvar TooltipManager = /** @class */ (function () {\n function TooltipManager(tooltip, interactionManager) {\n var _this = this;\n this.states = {};\n this.exclusiveAreas = {};\n this.destroyFns = [];\n this.tooltip = tooltip;\n var hoverRef = interactionManager.addListener('hover', function (e) { return _this.checkExclusiveRects(e); });\n this.destroyFns.push(function () { return interactionManager.removeListener(hoverRef); });\n }\n TooltipManager.prototype.updateTooltip = function (callerId, meta, content) {\n var _a;\n if (content == null) {\n content = (_a = this.states[callerId]) === null || _a === void 0 ? void 0 : _a.content;\n }\n this.states[callerId] = { content: content, meta: meta };\n this.applyStates();\n };\n TooltipManager.prototype.updateExclusiveRect = function (callerId, area) {\n if (area) {\n this.exclusiveAreas[callerId] = area;\n }\n else {\n delete this.exclusiveAreas[callerId];\n }\n };\n TooltipManager.prototype.removeTooltip = function (callerId) {\n delete this.states[callerId];\n this.applyStates();\n };\n TooltipManager.prototype.getTooltipMeta = function (callerId) {\n var _a;\n return (_a = this.states[callerId]) === null || _a === void 0 ? void 0 : _a.meta;\n };\n TooltipManager.prototype.destroy = function () {\n var e_1, _a;\n try {\n for (var _b = __values$x(this.destroyFns), _c = _b.next(); !_c.done; _c = _b.next()) {\n var destroyFn = _c.value;\n destroyFn();\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n TooltipManager.prototype.checkExclusiveRects = function (e) {\n var e_2, _a;\n var newAppliedExclusiveArea;\n try {\n for (var _b = __values$x(Object.entries(this.exclusiveAreas)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read$X(_c.value, 2), entryId = _d[0], area = _d[1];\n if (!area.containsPoint(e.offsetX, e.offsetY)) {\n continue;\n }\n newAppliedExclusiveArea = entryId;\n break;\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (newAppliedExclusiveArea === this.appliedExclusiveArea) {\n return;\n }\n this.appliedExclusiveArea = newAppliedExclusiveArea;\n this.applyStates();\n };\n TooltipManager.prototype.applyStates = function () {\n var _this = this;\n var _a;\n var ids = this.appliedExclusiveArea ? [this.appliedExclusiveArea] : Object.keys(this.states);\n var contentToApply = undefined;\n var metaToApply = undefined;\n // Last added entry wins.\n ids.reverse();\n ids.slice(0, 1).forEach(function (id) {\n var _a;\n var _b = (_a = _this.states[id]) !== null && _a !== void 0 ? _a : {}, content = _b.content, meta = _b.meta;\n contentToApply = content;\n metaToApply = meta;\n });\n if (metaToApply === undefined || contentToApply === undefined) {\n this.appliedState = undefined;\n this.tooltip.toggle(false);\n return;\n }\n if (((_a = this.appliedState) === null || _a === void 0 ? void 0 : _a.content) === contentToApply) {\n var renderInstantly = this.tooltip.isVisible();\n this.tooltip.show(metaToApply, undefined, renderInstantly);\n }\n else {\n this.tooltip.show(metaToApply, contentToApply);\n }\n this.appliedState = { content: contentToApply, meta: metaToApply };\n };\n return TooltipManager;\n}());\n\nvar __extends$2C = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$N = (undefined && undefined.__assign) || function () {\n __assign$N = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$N.apply(this, arguments);\n};\nvar __values$w = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$W = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n/**\n * Manages the current zoom state for a chart. Tracks the requested zoom from distinct dependents\n * and handles conflicting zoom requests.\n */\nvar ZoomManager = /** @class */ (function (_super) {\n __extends$2C(ZoomManager, _super);\n function ZoomManager() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.axes = {};\n return _this;\n }\n ZoomManager.prototype.updateAxes = function (axes) {\n var _this = this;\n var removedAxes = new Set(Object.keys(this.axes));\n axes.forEach(function (axis) {\n var _a;\n var _b, _c;\n removedAxes.delete(axis.id);\n (_a = (_b = _this.axes)[_c = axis.id]) !== null && _a !== void 0 ? _a : (_b[_c] = new AxisZoomManager(axis));\n });\n removedAxes.forEach(function (axisId) {\n delete _this.axes[axisId];\n });\n if (this.initialZoom) {\n this.updateZoom(this.initialZoom.callerId, this.initialZoom.newZoom);\n this.initialZoom = undefined;\n }\n };\n ZoomManager.prototype.updateZoom = function (callerId, newZoom) {\n if (Object.keys(this.axes).length === 0) {\n this.initialZoom = { callerId: callerId, newZoom: newZoom };\n return;\n }\n Object.values(this.axes).forEach(function (axis) {\n axis.updateZoom(callerId, newZoom === null || newZoom === void 0 ? void 0 : newZoom[axis.getDirection()]);\n });\n this.applyStates();\n };\n ZoomManager.prototype.updateAxisZoom = function (callerId, axisId, newZoom) {\n var _a;\n (_a = this.axes[axisId]) === null || _a === void 0 ? void 0 : _a.updateZoom(callerId, newZoom);\n this.applyStates();\n };\n ZoomManager.prototype.getZoom = function () {\n var x;\n var y;\n // TODO: this only works when there is a single axis on each direction as it gets the last of each\n Object.values(this.axes).forEach(function (axis) {\n if (axis.getDirection() === ChartAxisDirection.X) {\n x = axis.getZoom();\n }\n else if (axis.getDirection() === ChartAxisDirection.Y) {\n y = axis.getZoom();\n }\n });\n if (x || y) {\n return { x: x, y: y };\n }\n };\n ZoomManager.prototype.getAxisZoom = function (axisId) {\n var _a;\n return (_a = this.axes[axisId]) === null || _a === void 0 ? void 0 : _a.getZoom();\n };\n ZoomManager.prototype.getAxisZooms = function () {\n var e_1, _a;\n var axes = {};\n try {\n for (var _b = __values$w(Object.entries(this.axes)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read$W(_c.value, 2), axisId = _d[0], axis = _d[1];\n axes[axisId] = {\n direction: axis.getDirection(),\n zoom: axis.getZoom(),\n };\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return axes;\n };\n ZoomManager.prototype.applyStates = function () {\n var e_2, _a;\n var changed = Object.values(this.axes)\n .map(function (axis) { return axis.applyStates(); })\n .some(Boolean);\n if (!changed) {\n return;\n }\n var currentZoom = this.getZoom();\n var axes = {};\n try {\n for (var _b = __values$w(Object.entries(this.axes)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read$W(_c.value, 2), axisId = _d[0], axis = _d[1];\n axes[axisId] = axis.getZoom();\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n var event = __assign$N(__assign$N({ type: 'zoom-change' }, (currentZoom !== null && currentZoom !== void 0 ? currentZoom : {})), { axes: axes });\n this.listeners.dispatch('zoom-change', event);\n };\n return ZoomManager;\n}(BaseManager));\nvar AxisZoomManager = /** @class */ (function () {\n function AxisZoomManager(axis) {\n this.states = {};\n this.currentZoom = undefined;\n this.axis = axis;\n }\n AxisZoomManager.prototype.getDirection = function () {\n return this.axis.direction;\n };\n AxisZoomManager.prototype.updateZoom = function (callerId, newZoom) {\n delete this.states[callerId];\n if (newZoom != null) {\n this.states[callerId] = __assign$N({}, newZoom);\n }\n };\n AxisZoomManager.prototype.getZoom = function () {\n return this.currentZoom;\n };\n AxisZoomManager.prototype.applyStates = function () {\n var _a, _b;\n var prevZoom = this.currentZoom;\n var last = Object.keys(this.states)[Object.keys(this.states).length - 1];\n this.currentZoom = __assign$N({}, this.states[last]);\n var changed = (prevZoom === null || prevZoom === void 0 ? void 0 : prevZoom.min) !== ((_a = this.currentZoom) === null || _a === void 0 ? void 0 : _a.min) || (prevZoom === null || prevZoom === void 0 ? void 0 : prevZoom.max) !== ((_b = this.currentZoom) === null || _b === void 0 ? void 0 : _b.max);\n return changed;\n };\n return AxisZoomManager;\n}());\n\nvar __assign$M = (undefined && undefined.__assign) || function () {\n __assign$M = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$M.apply(this, arguments);\n};\nfunction isLayoutStage(t) {\n return t !== 'layout-complete';\n}\nfunction isLayoutComplete(t) {\n return t === 'layout-complete';\n}\nvar LayoutService = /** @class */ (function () {\n function LayoutService() {\n this.layoutProcessors = new Listeners();\n this.listeners = new Listeners();\n }\n LayoutService.prototype.addListener = function (type, cb) {\n if (isLayoutStage(type)) {\n return this.layoutProcessors.addListener(type, cb);\n }\n else if (isLayoutComplete(type)) {\n return this.listeners.addListener(type, cb);\n }\n throw new Error('AG Charts - unsupported listener type: ' + type);\n };\n LayoutService.prototype.removeListener = function (listenerSymbol) {\n this.listeners.removeListener(listenerSymbol);\n this.layoutProcessors.removeListener(listenerSymbol);\n };\n LayoutService.prototype.dispatchPerformLayout = function (stage, ctx) {\n var result = this.layoutProcessors.reduceDispatch(stage, function (_a, ctx) {\n var shrinkRect = _a.shrinkRect;\n return [__assign$M(__assign$M({}, ctx), { shrinkRect: shrinkRect })];\n }, ctx);\n return result !== null && result !== void 0 ? result : ctx;\n };\n LayoutService.prototype.dispatchLayoutComplete = function (event) {\n this.listeners.dispatch('layout-complete', event);\n };\n return LayoutService;\n}());\n\nvar DataService = /** @class */ (function () {\n function DataService(getSeries) {\n this.getSeries = getSeries;\n }\n return DataService;\n}());\n\n/** Types of chart-update, in pipeline execution order. */\nvar ChartUpdateType;\n(function (ChartUpdateType) {\n ChartUpdateType[ChartUpdateType[\"FULL\"] = 0] = \"FULL\";\n ChartUpdateType[ChartUpdateType[\"PROCESS_DATA\"] = 1] = \"PROCESS_DATA\";\n ChartUpdateType[ChartUpdateType[\"PERFORM_LAYOUT\"] = 2] = \"PERFORM_LAYOUT\";\n ChartUpdateType[ChartUpdateType[\"SERIES_UPDATE\"] = 3] = \"SERIES_UPDATE\";\n ChartUpdateType[ChartUpdateType[\"TOOLTIP_RECALCULATION\"] = 4] = \"TOOLTIP_RECALCULATION\";\n ChartUpdateType[ChartUpdateType[\"SCENE_RENDER\"] = 5] = \"SCENE_RENDER\";\n ChartUpdateType[ChartUpdateType[\"NONE\"] = 6] = \"NONE\";\n})(ChartUpdateType || (ChartUpdateType = {}));\n\nvar UpdateService = /** @class */ (function () {\n function UpdateService(updateCallback) {\n this.updateCallback = updateCallback;\n }\n UpdateService.prototype.update = function (type, _a) {\n if (type === void 0) { type = ChartUpdateType.FULL; }\n var _b = _a === void 0 ? {} : _a, _c = _b.forceNodeDataRefresh, forceNodeDataRefresh = _c === void 0 ? false : _c;\n this.updateCallback(type, { forceNodeDataRefresh: forceNodeDataRefresh });\n };\n return UpdateService;\n}());\n\nvar __decorate$1R = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ChartHighlight = /** @class */ (function () {\n function ChartHighlight() {\n this.range = 'tooltip';\n }\n __decorate$1R([\n Validate(STRING_UNION('tooltip', 'node'))\n ], ChartHighlight.prototype, \"range\", void 0);\n return ChartHighlight;\n}());\n\nvar __values$v = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$V = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar Selection = /** @class */ (function () {\n function Selection(parent, classOrFactory, garbageCollection) {\n if (garbageCollection === void 0) { garbageCollection = true; }\n this._nodes = [];\n this._data = [];\n this._datumNodeIndices = new Map();\n // If garbage collection is set to false, you must call `selection.cleanup()` to remove deleted nodes\n this._garbage = [];\n this._garbageCollection = true;\n this._parent = parent;\n this._factory = Object.prototype.isPrototypeOf.call(Node, classOrFactory)\n ? function () { return new classOrFactory(); }\n : classOrFactory;\n this._garbageCollection = garbageCollection;\n }\n Selection.select = function (parent, classOrFactory, garbageCollection) {\n if (garbageCollection === void 0) { garbageCollection = true; }\n return new Selection(parent, classOrFactory, garbageCollection);\n };\n Selection.prototype.each = function (iterate) {\n this._nodes.forEach(function (node, i) { return iterate(node, node.datum, i); });\n return this;\n };\n /**\n * Update the data in a selection. If an `getDatumId()` function is provided, maintain a list of ids related to\n * the nodes. Otherwise, take the more efficient route of simply creating and destroying nodes at the end\n * of the array.\n */\n Selection.prototype.update = function (data, init, getDatumId) {\n var e_1, _a;\n var _this = this;\n var old = this._data;\n var parent = this._parent;\n var factory = this._factory;\n var datumIds = new Map();\n if (getDatumId) {\n // Check if new datum and append node and save map of datum id to node index\n data.forEach(function (datum, index) {\n var datumId = getDatumId(datum);\n datumIds.set(datumId, index);\n if (!_this._datumNodeIndices.has(datumId)) {\n var node = factory(datum);\n node.datum = datum;\n init === null || init === void 0 ? void 0 : init(node);\n parent.appendChild(node);\n _this._nodes.push(node);\n _this._datumNodeIndices.set(datumId, _this._nodes.length - 1);\n }\n });\n }\n else if (data.length > old.length) {\n // Create and append nodes for new data\n data.slice(old.length).forEach(function (datum) {\n var node = factory(datum);\n node.datum = datum;\n init === null || init === void 0 ? void 0 : init(node);\n parent.appendChild(node);\n _this._nodes.push(node);\n });\n }\n else if (data.length < old.length) {\n // Destroy any nodes that are in excess of the new data\n this._nodes.splice(data.length).forEach(function (node) {\n parent.removeChild(node);\n });\n }\n // Copy the data into a new array to prevent mutation and duplicates\n this._data = data.slice(0);\n if (getDatumId) {\n try {\n // Find and update the datum for each node or throw into garbage if datum no longer exists\n for (var _b = __values$v(this._datumNodeIndices), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read$V(_c.value, 2), datumId = _d[0], nodeIndex = _d[1];\n var datumIndex = datumIds.get(datumId);\n if (datumIndex !== undefined) {\n this._nodes[nodeIndex].datum = data[datumIndex];\n }\n else {\n this._garbage.push(datumId);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (this._garbageCollection) {\n this.cleanup();\n }\n }\n else {\n // Reset the node data by index\n for (var i = 0; i < data.length; i++) {\n this._nodes[i].datum = this._data[i];\n }\n }\n return this;\n };\n Selection.prototype.clear = function () {\n this.update([]);\n return this;\n };\n Selection.prototype.cleanup = function () {\n var e_2, _a;\n var _this = this;\n if (this._garbage.length === 0)\n return;\n this._garbage.forEach(function (datumId) {\n var nodeIndex = _this._datumNodeIndices.get(datumId);\n if (nodeIndex === undefined)\n return;\n var node = _this._nodes[nodeIndex];\n delete _this._nodes[nodeIndex];\n _this._datumNodeIndices.delete(datumId);\n if (node) {\n _this._parent.removeChild(node);\n }\n });\n // Reset map of datum ids to node indices while filtering out any removed, undefined, nodes\n var newIndex = 0;\n var datumNodeIndices = this._datumNodeIndices.entries();\n var nodeIndexDatums = new Map();\n try {\n for (var datumNodeIndices_1 = __values$v(datumNodeIndices), datumNodeIndices_1_1 = datumNodeIndices_1.next(); !datumNodeIndices_1_1.done; datumNodeIndices_1_1 = datumNodeIndices_1.next()) {\n var _b = __read$V(datumNodeIndices_1_1.value, 2), datumId = _b[0], nodeIndex = _b[1];\n nodeIndexDatums.set(nodeIndex, datumId);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (datumNodeIndices_1_1 && !datumNodeIndices_1_1.done && (_a = datumNodeIndices_1.return)) _a.call(datumNodeIndices_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n this._nodes = this._nodes.filter(function (node, index) {\n if (node === undefined)\n return false;\n var datumId = nodeIndexDatums.get(index);\n _this._datumNodeIndices.set(datumId, newIndex);\n newIndex++;\n return true;\n });\n this._garbage = [];\n };\n Selection.selectAll = function (parent, predicate) {\n var results = [];\n var traverse = function (node) {\n if (predicate(node)) {\n results.push(node);\n }\n node.children.forEach(traverse);\n };\n traverse(parent);\n return results;\n };\n Selection.selectByClass = function (node, Class) {\n return Selection.selectAll(node, function (node) { return node instanceof Class; });\n };\n Selection.selectByTag = function (node, tag) {\n return Selection.selectAll(node, function (node) { return node.tag === tag; });\n };\n Selection.prototype.select = function (predicate) {\n return Selection.selectAll(this._parent, predicate);\n };\n Selection.prototype.selectByClass = function (Class) {\n return this.select(function (node) { return node instanceof Class; });\n };\n Selection.prototype.selectByTag = function (tag) {\n return this.select(function (node) { return node.tag === tag; });\n };\n Selection.prototype.nodes = function () {\n return this._nodes;\n };\n return Selection;\n}());\n\n/**\n * Finds the roots of a parametric linear equation in `t`,\n * where `t` lies in the interval of `[0,1]`.\n */\nfunction linearRoot(a, b) {\n var t = -b / a;\n return a !== 0 && t >= 0 && t <= 1 ? [t] : [];\n}\n/**\n * Finds the roots of a parametric quadratic equation in `t`,\n * where `t` lies in the interval of `[0,1]`.\n */\nfunction quadraticRoots(a, b, c) {\n if (a === 0) {\n return linearRoot(b, c);\n }\n var D = b * b - 4 * a * c; // The polynomial's discriminant.\n var roots = [];\n if (D === 0) {\n // A single real root.\n var t = -b / (2 * a);\n if (t >= 0 && t <= 1) {\n roots.push(t);\n }\n }\n else if (D > 0) {\n // A pair of distinct real roots.\n var rD = Math.sqrt(D);\n var t1 = (-b - rD) / (2 * a);\n var t2 = (-b + rD) / (2 * a);\n if (t1 >= 0 && t1 <= 1) {\n roots.push(t1);\n }\n if (t2 >= 0 && t2 <= 1) {\n roots.push(t2);\n }\n }\n // else -> Complex roots.\n return roots;\n}\n/**\n * Finds the roots of a parametric cubic equation in `t`,\n * where `t` lies in the interval of `[0,1]`.\n * Returns an array of parametric intersection locations along the cubic,\n * excluding out-of-bounds intersections (before or after the end point\n * or in the imaginary plane).\n * An adaptation of http://www.particleincell.com/blog/2013/cubic-line-intersection/\n */\nfunction cubicRoots(a, b, c, d) {\n if (a === 0) {\n return quadraticRoots(b, c, d);\n }\n var A = b / a;\n var B = c / a;\n var C = d / a;\n var Q = (3 * B - A * A) / 9;\n var R = (9 * A * B - 27 * C - 2 * A * A * A) / 54;\n var D = Q * Q * Q + R * R; // The polynomial's discriminant.\n var third = 1 / 3;\n var roots = [];\n if (D >= 0) {\n // Complex or duplicate roots.\n var rD = Math.sqrt(D);\n var S = Math.sign(R + rD) * Math.pow(Math.abs(R + rD), third);\n var T = Math.sign(R - rD) * Math.pow(Math.abs(R - rD), third);\n var Im = Math.abs((Math.sqrt(3) * (S - T)) / 2); // Complex part of the root pair.\n var t = -third * A + (S + T); // A real root.\n if (t >= 0 && t <= 1) {\n roots.push(t);\n }\n if (Im === 0) {\n var t_1 = -third * A - (S + T) / 2; // The real part of a complex root.\n if (t_1 >= 0 && t_1 <= 1) {\n roots.push(t_1);\n }\n }\n }\n else {\n // Distinct real roots.\n var theta = Math.acos(R / Math.sqrt(-Q * Q * Q));\n var thirdA = third * A;\n var twoSqrtQ = 2 * Math.sqrt(-Q);\n var t1 = twoSqrtQ * Math.cos(third * theta) - thirdA;\n var t2 = twoSqrtQ * Math.cos(third * (theta + 2 * Math.PI)) - thirdA;\n var t3 = twoSqrtQ * Math.cos(third * (theta + 4 * Math.PI)) - thirdA;\n if (t1 >= 0 && t1 <= 1) {\n roots.push(t1);\n }\n if (t2 >= 0 && t2 <= 1) {\n roots.push(t2);\n }\n if (t3 >= 0 && t3 <= 1) {\n roots.push(t3);\n }\n }\n return roots;\n}\n\nvar __values$u = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\n/**\n * Returns the intersection point for the given pair of line segments, or null,\n * if the segments are parallel or don't intersect.\n * Based on http://paulbourke.net/geometry/pointlineplane/\n */\nfunction segmentIntersection(ax1, ay1, ax2, ay2, bx1, by1, bx2, by2) {\n var d = (ax2 - ax1) * (by2 - by1) - (ay2 - ay1) * (bx2 - bx1);\n if (d === 0) {\n // The lines are parallel.\n return null;\n }\n var ua = ((bx2 - bx1) * (ay1 - by1) - (ax1 - bx1) * (by2 - by1)) / d;\n var ub = ((ax2 - ax1) * (ay1 - by1) - (ay2 - ay1) * (ax1 - bx1)) / d;\n if (ua >= 0 && ua <= 1 && ub >= 0 && ub <= 1) {\n return {\n x: ax1 + ua * (ax2 - ax1),\n y: ay1 + ua * (ay2 - ay1),\n };\n }\n return null; // The intersection point is outside either or both segments.\n}\n/**\n * Returns intersection points of the given cubic curve and the line segment.\n * Takes in x/y components of cubic control points and line segment start/end points\n * as parameters.\n */\nfunction cubicSegmentIntersections(px1, py1, px2, py2, px3, py3, px4, py4, x1, y1, x2, y2) {\n var e_1, _a;\n var intersections = [];\n // Find line equation coefficients.\n var A = y1 - y2;\n var B = x2 - x1;\n var C = x1 * (y2 - y1) - y1 * (x2 - x1);\n // Find cubic Bezier curve equation coefficients from control points.\n var bx = bezierCoefficients(px1, px2, px3, px4);\n var by = bezierCoefficients(py1, py2, py3, py4);\n var a = A * bx[0] + B * by[0]; // t^3\n var b = A * bx[1] + B * by[1]; // t^2\n var c = A * bx[2] + B * by[2]; // t\n var d = A * bx[3] + B * by[3] + C; // 1\n var roots = cubicRoots(a, b, c, d);\n try {\n // Verify that the roots are within bounds of the linear segment.\n for (var roots_1 = __values$u(roots), roots_1_1 = roots_1.next(); !roots_1_1.done; roots_1_1 = roots_1.next()) {\n var t = roots_1_1.value;\n var tt = t * t;\n var ttt = t * tt;\n // Find the cartesian plane coordinates for the parametric root `t`.\n var x = bx[0] * ttt + bx[1] * tt + bx[2] * t + bx[3];\n var y = by[0] * ttt + by[1] * tt + by[2] * t + by[3];\n // The parametric cubic roots we found are intersection points\n // with an infinite line, and so the x/y coordinates above are as well.\n // Make sure the x/y is also within the bounds of the given segment.\n var s = void 0;\n if (x1 !== x2) {\n s = (x - x1) / (x2 - x1);\n }\n else {\n // the line is vertical\n s = (y - y1) / (y2 - y1);\n }\n if (s >= 0 && s <= 1) {\n intersections.push({ x: x, y: y });\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (roots_1_1 && !roots_1_1.done && (_a = roots_1.return)) _a.call(roots_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return intersections;\n}\n/**\n * Returns the given coordinates vector multiplied by the coefficient matrix\n * of the parametric cubic Bézier equation.\n */\nfunction bezierCoefficients(P1, P2, P3, P4) {\n return [\n // Bézier expressed as matrix operations:\n -P1 + 3 * P2 - 3 * P3 + P4,\n 3 * P1 - 6 * P2 + 3 * P3,\n -3 * P1 + 3 * P2,\n P1, // | 1 0 0 0| |P4|\n ];\n}\n/**\n * Returns intersection points of the arc and the line segment.\n * Takes in arc parameters and line segment start/end points.\n */\nfunction arcIntersections(cx, cy, r, startAngle, endAngle, counterClockwise, x1, y1, x2, y2) {\n // Solving the quadratic equation:\n // 1. y = k * x + y0\n // 2. (x - cx)^2 + (y - cy)^2 = r^2\n var k = (y2 - y1) / (x2 - x1);\n var y0 = y1 - k * x1;\n var a = Math.pow(k, 2) + 1;\n var b = 2 * (k * (y0 - cy) - cx);\n var c = Math.pow(cx, 2) + Math.pow(y0 - cy, 2) - Math.pow(r, 2);\n var d = Math.pow(b, 2) - 4 * a * c;\n if (d < 0) {\n return [];\n }\n var i1x = (-b + Math.sqrt(d)) / 2 / a;\n var i2x = (-b - Math.sqrt(d)) / 2 / a;\n var intersections = [];\n [i1x, i2x].forEach(function (x) {\n var isXInsideLine = x >= Math.min(x1, x2) && x <= Math.max(x1, x2);\n if (!isXInsideLine) {\n return;\n }\n var y = k * x;\n var a1 = normalizeAngle360(counterClockwise ? endAngle : startAngle);\n var a2 = normalizeAngle360(counterClockwise ? startAngle : endAngle);\n var intersectionAngle = normalizeAngle360(Math.atan2(y, x));\n // Order angles clockwise after the start angle\n // (end angle if counter-clockwise)\n if (a2 <= a1) {\n a2 += 2 * Math.PI;\n }\n if (intersectionAngle < a1) {\n intersectionAngle += 2 * Math.PI;\n }\n if (intersectionAngle >= a1 && intersectionAngle <= a2) {\n intersections.push({ x: x, y: y });\n }\n });\n return intersections;\n}\n\nvar __values$t = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar Command;\n(function (Command) {\n Command[Command[\"Move\"] = 0] = \"Move\";\n Command[Command[\"Line\"] = 1] = \"Line\";\n Command[Command[\"Arc\"] = 2] = \"Arc\";\n Command[Command[\"Curve\"] = 3] = \"Curve\";\n Command[Command[\"ClosePath\"] = 4] = \"ClosePath\";\n})(Command || (Command = {}));\nvar Path2D = /** @class */ (function () {\n function Path2D() {\n // The methods of this class will likely be called many times per animation frame,\n // and any allocation can trigger a GC cycle during animation, so we attempt\n // to minimize the number of allocations.\n this.previousCommands = [];\n this.previousParams = [];\n this.previousClosedPath = false;\n this.commands = [];\n this.params = [];\n this._closedPath = false;\n }\n Path2D.prototype.isDirty = function () {\n if (this._closedPath !== this.previousClosedPath) {\n return true;\n }\n if (this.previousCommands.length !== this.commands.length) {\n return true;\n }\n if (this.previousParams.length !== this.params.length) {\n return true;\n }\n for (var i = 0; i < this.commands.length; i++) {\n if (this.commands[i] !== this.previousCommands[i]) {\n return true;\n }\n }\n for (var i = 0; i < this.params.length; i++) {\n if (this.params[i] !== this.previousParams[i]) {\n return true;\n }\n }\n return false;\n };\n Path2D.prototype.draw = function (ctx) {\n var e_1, _a;\n var commands = this.commands;\n var params = this.params;\n var j = 0;\n ctx.beginPath();\n try {\n for (var commands_1 = __values$t(commands), commands_1_1 = commands_1.next(); !commands_1_1.done; commands_1_1 = commands_1.next()) {\n var command = commands_1_1.value;\n switch (command) {\n case Command.Move:\n ctx.moveTo(params[j++], params[j++]);\n break;\n case Command.Line:\n ctx.lineTo(params[j++], params[j++]);\n break;\n case Command.Curve:\n ctx.bezierCurveTo(params[j++], params[j++], params[j++], params[j++], params[j++], params[j++]);\n break;\n case Command.Arc:\n ctx.arc(params[j++], params[j++], params[j++], params[j++], params[j++], params[j++] === 1);\n break;\n case Command.ClosePath:\n ctx.closePath();\n break;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (commands_1_1 && !commands_1_1.done && (_a = commands_1.return)) _a.call(commands_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (commands.length === 0) {\n ctx.closePath();\n }\n };\n Path2D.prototype.moveTo = function (x, y) {\n if (this.xy) {\n this.xy[0] = x;\n this.xy[1] = y;\n }\n else {\n this.xy = [x, y];\n }\n this.commands.push(Command.Move);\n this.params.push(x, y);\n };\n Path2D.prototype.lineTo = function (x, y) {\n if (this.xy) {\n this.commands.push(Command.Line);\n this.params.push(x, y);\n this.xy[0] = x;\n this.xy[1] = y;\n }\n else {\n this.moveTo(x, y);\n }\n };\n Path2D.prototype.rect = function (x, y, width, height) {\n this.moveTo(x, y);\n this.lineTo(x + width, y);\n this.lineTo(x + width, y + height);\n this.lineTo(x, y + height);\n this.closePath();\n };\n Path2D.prototype.arc = function (x, y, r, sAngle, eAngle, antiClockwise) {\n if (antiClockwise === void 0) { antiClockwise = false; }\n var endX = x + r * Math.cos(eAngle);\n var endY = y + r * Math.sin(eAngle);\n if (this.xy) {\n this.xy[0] = endX;\n this.xy[1] = endY;\n }\n else {\n this.xy = [endX, endY];\n }\n this.commands.push(Command.Arc);\n this.params.push(x, y, r, sAngle, eAngle, antiClockwise ? 1 : 0);\n };\n Path2D.prototype.cubicCurveTo = function (cx1, cy1, cx2, cy2, x, y) {\n if (!this.xy) {\n this.moveTo(cx1, cy1);\n }\n this.commands.push(Command.Curve);\n this.params.push(cx1, cy1, cx2, cy2, x, y);\n if (this.xy) {\n this.xy[0] = x;\n this.xy[1] = y;\n }\n };\n Object.defineProperty(Path2D.prototype, \"closedPath\", {\n get: function () {\n return this._closedPath;\n },\n enumerable: false,\n configurable: true\n });\n Path2D.prototype.closePath = function () {\n if (this.xy) {\n this.xy = undefined;\n this.commands.push(Command.ClosePath);\n this._closedPath = true;\n }\n };\n Path2D.prototype.clear = function (_a) {\n var _b = _a === void 0 ? { trackChanges: false } : _a, trackChanges = _b.trackChanges;\n if (trackChanges) {\n this.previousCommands = this.commands;\n this.previousParams = this.params;\n this.previousClosedPath = this._closedPath;\n this.commands = [];\n this.params = [];\n }\n else {\n this.commands.length = 0;\n this.params.length = 0;\n }\n this.xy = undefined;\n this._closedPath = false;\n };\n Path2D.prototype.isPointInPath = function (x, y) {\n var commands = this.commands;\n var params = this.params;\n var cn = commands.length;\n // Hit testing using ray casting method, where the ray's origin is some point\n // outside the path. In this case, an offscreen point that is remote enough, so that\n // even if the path itself is large and is partially offscreen, the ray's origin\n // will likely be outside the path anyway. To test if the given point is inside the\n // path or not, we cast a ray from the origin to the given point and check the number\n // of intersections of this segment with the path. If the number of intersections is\n // even, then the ray both entered and exited the path an equal number of times,\n // therefore the point is outside the path, and inside the path, if the number of\n // intersections is odd. Since the path is compound, we check if the ray segment\n // intersects with each of the path's segments, which can be either a line segment\n // (one or no intersection points) or a Bézier curve segment (up to 3 intersection\n // points).\n var ox = -10000;\n var oy = -10000;\n // the starting point of the current path\n var sx = NaN;\n var sy = NaN;\n // the previous point of the current path\n var px = 0;\n var py = 0;\n var intersectionCount = 0;\n for (var ci = 0, pi = 0; ci < cn; ci++) {\n switch (commands[ci]) {\n case Command.Move:\n if (!isNaN(sx)) {\n if (segmentIntersection(sx, sy, px, py, ox, oy, x, y)) {\n intersectionCount++;\n }\n }\n px = params[pi++];\n sx = px;\n py = params[pi++];\n sy = py;\n break;\n case Command.Line:\n if (segmentIntersection(px, py, params[pi++], params[pi++], ox, oy, x, y)) {\n intersectionCount++;\n }\n px = params[pi - 2];\n py = params[pi - 1];\n break;\n case Command.Curve:\n intersectionCount += cubicSegmentIntersections(px, py, params[pi++], params[pi++], params[pi++], params[pi++], params[pi++], params[pi++], ox, oy, x, y).length;\n px = params[pi - 2];\n py = params[pi - 1];\n break;\n case Command.Arc:\n intersectionCount += arcIntersections(params[pi++], params[pi++], params[pi++], params[pi++], params[pi++], Boolean(params[pi++]), ox, oy, x, y).length;\n px = params[pi - 2];\n py = params[pi - 1];\n break;\n case Command.ClosePath:\n if (!isNaN(sx)) {\n if (segmentIntersection(sx, sy, px, py, ox, oy, x, y)) {\n intersectionCount++;\n }\n }\n break;\n }\n }\n return intersectionCount % 2 === 1;\n };\n return Path2D;\n}());\n\nvar __extends$2B = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1Q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nfunction ScenePathChangeDetection(opts) {\n var _a = opts !== null && opts !== void 0 ? opts : {}, _b = _a.redraw, redraw = _b === void 0 ? RedrawType.MAJOR : _b, changeCb = _a.changeCb, convertor = _a.convertor;\n return SceneChangeDetection({ redraw: redraw, type: 'path', convertor: convertor, changeCb: changeCb });\n}\nvar Path = /** @class */ (function (_super) {\n __extends$2B(Path, _super);\n function Path() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n /**\n * Declare a path to retain for later rendering and hit testing\n * using custom Path2D class. Think of it as a TypeScript version\n * of the native Path2D (with some differences) that works in all browsers.\n */\n _this.path = new Path2D();\n /**\n * The path only has to be updated when certain attributes change.\n * For example, if transform attributes (such as `translationX`)\n * are changed, we don't have to update the path. The `dirtyPath` flag\n * is how we keep track if the path has to be updated or not.\n */\n _this._dirtyPath = true;\n return _this;\n }\n Object.defineProperty(Path.prototype, \"dirtyPath\", {\n get: function () {\n return this._dirtyPath;\n },\n set: function (value) {\n if (this._dirtyPath !== value) {\n this._dirtyPath = value;\n if (value) {\n this.markDirty(this, RedrawType.MAJOR);\n }\n }\n },\n enumerable: false,\n configurable: true\n });\n Path.prototype.checkPathDirty = function () {\n var _a, _b;\n if (this._dirtyPath) {\n return;\n }\n this.dirtyPath = this.path.isDirty() || ((_b = (_a = this.fillShadow) === null || _a === void 0 ? void 0 : _a.isDirty()) !== null && _b !== void 0 ? _b : false);\n };\n Path.prototype.isPointInPath = function (x, y) {\n var point = this.transformPoint(x, y);\n return this.path.closedPath && this.path.isPointInPath(point.x, point.y);\n };\n Path.prototype.isDirtyPath = function () {\n // Override point for more expensive dirty checks.\n return false;\n };\n Path.prototype.updatePath = function () {\n // Override point for subclasses.\n };\n Path.prototype.render = function (renderCtx) {\n var _a, _b;\n var ctx = renderCtx.ctx, forceRender = renderCtx.forceRender, stats = renderCtx.stats;\n if (this.dirty === RedrawType.NONE && !forceRender) {\n if (stats)\n stats.nodesSkipped += this.nodeCount.count;\n return;\n }\n this.computeTransformMatrix();\n this.matrix.toContext(ctx);\n if (this.dirtyPath || this.isDirtyPath()) {\n this.updatePath();\n this.dirtyPath = false;\n }\n if (this.clipPath) {\n ctx.save();\n if (this.clipMode === 'normal') {\n // Bound the shape rendered to the clipping path.\n this.clipPath.draw(ctx);\n ctx.clip();\n }\n this.path.draw(ctx);\n this.fillStroke(ctx);\n if (this.clipMode === 'punch-out') {\n // Bound the shape rendered to outside the clipping path.\n this.clipPath.draw(ctx);\n ctx.clip();\n // Fallback values, but practically these should never be used.\n var _c = (_a = this.computeBBox()) !== null && _a !== void 0 ? _a : {}, _d = _c.x, x = _d === void 0 ? -10000 : _d, _e = _c.y, y = _e === void 0 ? -10000 : _e, _f = _c.width, width = _f === void 0 ? 20000 : _f, _g = _c.height, height = _g === void 0 ? 20000 : _g;\n ctx.clearRect(x, y, width, height);\n }\n ctx.restore();\n }\n else {\n this.path.draw(ctx);\n this.fillStroke(ctx);\n }\n (_b = this.fillShadow) === null || _b === void 0 ? void 0 : _b.markClean();\n _super.prototype.render.call(this, renderCtx);\n };\n Path.className = 'Path';\n __decorate$1Q([\n ScenePathChangeDetection()\n ], Path.prototype, \"clipPath\", void 0);\n __decorate$1Q([\n ScenePathChangeDetection()\n ], Path.prototype, \"clipMode\", void 0);\n return Path;\n}(Shape));\n\nvar __extends$2A = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1P = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __values$s = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar Marker = /** @class */ (function (_super) {\n __extends$2A(Marker, _super);\n function Marker() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.x = 0;\n _this.y = 0;\n _this.size = 12;\n return _this;\n }\n Marker.prototype.computeBBox = function () {\n var _a = this, x = _a.x, y = _a.y, size = _a.size;\n var half = size / 2;\n return new BBox(x - half, y - half, size, size);\n };\n Marker.prototype.applyPath = function (s, moves) {\n var e_1, _a;\n var path = this.path;\n var _b = this, x = _b.x, y = _b.y;\n path.clear();\n try {\n for (var moves_1 = __values$s(moves), moves_1_1 = moves_1.next(); !moves_1_1.done; moves_1_1 = moves_1.next()) {\n var _c = moves_1_1.value, mx = _c.x, my = _c.y, t = _c.t;\n x += mx * s;\n y += my * s;\n if (t === 'move') {\n path.moveTo(x, y);\n }\n else {\n path.lineTo(x, y);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (moves_1_1 && !moves_1_1.done && (_a = moves_1.return)) _a.call(moves_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n path.closePath();\n };\n __decorate$1P([\n ScenePathChangeDetection()\n ], Marker.prototype, \"x\", void 0);\n __decorate$1P([\n ScenePathChangeDetection()\n ], Marker.prototype, \"y\", void 0);\n __decorate$1P([\n ScenePathChangeDetection({ convertor: Math.abs })\n ], Marker.prototype, \"size\", void 0);\n return Marker;\n}(Path));\n\nvar __extends$2z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Square = /** @class */ (function (_super) {\n __extends$2z(Square, _super);\n function Square() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Square.prototype.updatePath = function () {\n var _a = this, path = _a.path, x = _a.x, y = _a.y;\n var hs = this.size / 2;\n path.clear();\n path.moveTo(this.align(x - hs), this.align(y - hs));\n path.lineTo(this.align(x + hs), this.align(y - hs));\n path.lineTo(this.align(x + hs), this.align(y + hs));\n path.lineTo(this.align(x - hs), this.align(y + hs));\n path.closePath();\n };\n Square.className = 'Square';\n return Square;\n}(Marker));\n\nvar __extends$2y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1O = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MarkerLabel = /** @class */ (function (_super) {\n __extends$2y(MarkerLabel, _super);\n function MarkerLabel() {\n var _this = _super.call(this, { name: 'markerLabelGroup' }) || this;\n _this.label = new Text();\n _this._marker = new Square();\n _this._markerSize = 15;\n _this._spacing = 8;\n var label = _this.label;\n label.textBaseline = 'middle';\n label.fontSize = 12;\n label.fontFamily = 'Verdana, sans-serif';\n label.fill = 'black';\n // For better looking vertical alignment of labels to markers.\n label.y = HdpiCanvas.has.textMetrics ? 1 : 0;\n _this.append([_this.marker, label]);\n _this.update();\n return _this;\n }\n Object.defineProperty(MarkerLabel.prototype, \"marker\", {\n get: function () {\n return this._marker;\n },\n set: function (value) {\n if (this._marker !== value) {\n this.removeChild(this._marker);\n this._marker = value;\n this.appendChild(value);\n this.update();\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MarkerLabel.prototype, \"markerSize\", {\n get: function () {\n return this._markerSize;\n },\n set: function (value) {\n if (this._markerSize !== value) {\n this._markerSize = value;\n this.update();\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(MarkerLabel.prototype, \"spacing\", {\n get: function () {\n return this._spacing;\n },\n set: function (value) {\n if (this._spacing !== value) {\n this._spacing = value;\n this.update();\n }\n },\n enumerable: false,\n configurable: true\n });\n MarkerLabel.prototype.update = function () {\n var marker = this.marker;\n var markerSize = this.markerSize;\n marker.size = markerSize;\n this.label.x = markerSize / 2 + this.spacing;\n };\n MarkerLabel.prototype.render = function (renderCtx) {\n // Cannot override field Group.opacity with get/set pair, so\n // propagate opacity changes here.\n this.marker.opacity = this.opacity;\n this.label.opacity = this.opacity;\n _super.prototype.render.call(this, renderCtx);\n };\n MarkerLabel.className = 'MarkerLabel';\n __decorate$1O([\n ProxyPropertyOnWrite('label')\n ], MarkerLabel.prototype, \"text\", void 0);\n __decorate$1O([\n ProxyPropertyOnWrite('label')\n ], MarkerLabel.prototype, \"fontStyle\", void 0);\n __decorate$1O([\n ProxyPropertyOnWrite('label')\n ], MarkerLabel.prototype, \"fontWeight\", void 0);\n __decorate$1O([\n ProxyPropertyOnWrite('label')\n ], MarkerLabel.prototype, \"fontSize\", void 0);\n __decorate$1O([\n ProxyPropertyOnWrite('label')\n ], MarkerLabel.prototype, \"fontFamily\", void 0);\n __decorate$1O([\n ProxyPropertyOnWrite('label', 'fill')\n ], MarkerLabel.prototype, \"color\", void 0);\n __decorate$1O([\n ProxyPropertyOnWrite('marker', 'fill')\n ], MarkerLabel.prototype, \"markerFill\", void 0);\n __decorate$1O([\n ProxyPropertyOnWrite('marker', 'stroke')\n ], MarkerLabel.prototype, \"markerStroke\", void 0);\n __decorate$1O([\n ProxyPropertyOnWrite('marker', 'strokeWidth')\n ], MarkerLabel.prototype, \"markerStrokeWidth\", void 0);\n __decorate$1O([\n ProxyPropertyOnWrite('marker', 'fillOpacity')\n ], MarkerLabel.prototype, \"markerFillOpacity\", void 0);\n __decorate$1O([\n ProxyPropertyOnWrite('marker', 'strokeOpacity')\n ], MarkerLabel.prototype, \"markerStrokeOpacity\", void 0);\n return MarkerLabel;\n}(Group));\n\nvar __extends$2x = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Circle = /** @class */ (function (_super) {\n __extends$2x(Circle, _super);\n function Circle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Circle.prototype.updatePath = function () {\n var _a = this, x = _a.x, y = _a.y, path = _a.path, size = _a.size;\n var r = size / 2;\n path.clear();\n path.arc(x, y, r, 0, Math.PI * 2);\n path.closePath();\n };\n Circle.className = 'Circle';\n return Circle;\n}(Marker));\n\nvar __extends$2w = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Cross = /** @class */ (function (_super) {\n __extends$2w(Cross, _super);\n function Cross() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Cross.prototype.updatePath = function () {\n var s = this.size / 4.2;\n _super.prototype.applyPath.call(this, s, Cross.moves);\n };\n Cross.className = 'Cross';\n Cross.moves = [\n { x: -1, y: 0, t: 'move' },\n { x: -1, y: -1 },\n { x: +1, y: -1 },\n { x: +1, y: +1 },\n { x: +1, y: -1 },\n { x: +1, y: +1 },\n { x: -1, y: +1 },\n { x: +1, y: +1 },\n { x: -1, y: +1 },\n { x: -1, y: -1 },\n { x: -1, y: +1 },\n { x: -1, y: -1 },\n ];\n return Cross;\n}(Marker));\n\nvar __extends$2v = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Diamond = /** @class */ (function (_super) {\n __extends$2v(Diamond, _super);\n function Diamond() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Diamond.prototype.updatePath = function () {\n var s = this.size / 2;\n _super.prototype.applyPath.call(this, s, Diamond.moves);\n };\n Diamond.className = 'Diamond';\n Diamond.moves = [\n { x: 0, y: -1, t: 'move' },\n { x: +1, y: +1 },\n { x: -1, y: +1 },\n { x: -1, y: -1 },\n { x: +1, y: -1 },\n ];\n return Diamond;\n}(Marker));\n\nvar __extends$2u = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Heart = /** @class */ (function (_super) {\n __extends$2u(Heart, _super);\n function Heart() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Heart.prototype.rad = function (degree) {\n return (degree / 180) * Math.PI;\n };\n Heart.prototype.updatePath = function () {\n var _a = this, x = _a.x, path = _a.path, size = _a.size, rad = _a.rad;\n var r = size / 4;\n var y = this.y + r / 2;\n path.clear();\n path.arc(x - r, y - r, r, rad(130), rad(330));\n path.arc(x + r, y - r, r, rad(220), rad(50));\n path.lineTo(x, y + r);\n path.closePath();\n };\n Heart.className = 'Heart';\n return Heart;\n}(Marker));\n\nvar __extends$2t = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Plus = /** @class */ (function (_super) {\n __extends$2t(Plus, _super);\n function Plus() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Plus.prototype.updatePath = function () {\n var s = this.size / 3;\n _super.prototype.applyPath.call(this, s, Plus.moves);\n };\n Plus.className = 'Plus';\n Plus.moves = [\n { x: -0.5, y: -0.5, t: 'move' },\n { x: 0, y: -1 },\n { x: +1, y: 0 },\n { x: 0, y: +1 },\n { x: +1, y: 0 },\n { x: 0, y: +1 },\n { x: -1, y: 0 },\n { x: 0, y: +1 },\n { x: -1, y: 0 },\n { x: 0, y: -1 },\n { x: -1, y: 0 },\n { x: 0, y: -1 },\n ];\n return Plus;\n}(Marker));\n\nvar __extends$2s = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar Triangle = /** @class */ (function (_super) {\n __extends$2s(Triangle, _super);\n function Triangle() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n Triangle.prototype.updatePath = function () {\n var s = this.size * 1.1;\n _super.prototype.applyPath.call(this, s, Triangle.moves);\n };\n Triangle.className = 'Triangle';\n Triangle.moves = [\n { x: 0, y: -0.48, t: 'move' },\n { x: 0.5, y: 0.87 },\n { x: -1, y: 0 },\n ];\n return Triangle;\n}(Marker));\n\n// This function is in its own file because putting it into SeriesMarker makes the Legend\n// suddenly aware of the series (it's an agnostic component), and putting it into Marker\n// introduces circular dependencies.\nfunction getMarker$1(shape) {\n if (shape === void 0) { shape = Square; }\n if (typeof shape === 'string') {\n switch (shape) {\n case 'circle':\n return Circle;\n case 'cross':\n return Cross;\n case 'diamond':\n return Diamond;\n case 'heart':\n return Heart;\n case 'plus':\n return Plus;\n case 'triangle':\n return Triangle;\n default:\n return Square;\n }\n }\n if (typeof shape === 'function') {\n return shape;\n }\n return Square;\n}\n\nvar __values$r = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nfunction gridLayout(_a) {\n var orientation = _a.orientation, bboxes = _a.bboxes, maxHeight = _a.maxHeight, maxWidth = _a.maxWidth, _b = _a.itemPaddingY, itemPaddingY = _b === void 0 ? 0 : _b, _c = _a.itemPaddingX, itemPaddingX = _c === void 0 ? 0 : _c, _d = _a.forceResult, forceResult = _d === void 0 ? false : _d;\n var horizontal = orientation === 'horizontal';\n var primary = {\n max: horizontal ? maxWidth : maxHeight,\n fn: horizontal ? function (b) { return b.width; } : function (b) { return b.height; },\n padding: horizontal ? itemPaddingX : itemPaddingY,\n };\n var secondary = {\n max: !horizontal ? maxWidth : maxHeight,\n fn: !horizontal ? function (b) { return b.width; } : function (b) { return b.height; },\n padding: !horizontal ? itemPaddingX : itemPaddingY,\n };\n var processedBBoxCount = 0;\n var rawPages = [];\n while (processedBBoxCount < bboxes.length) {\n var unprocessedBBoxes = bboxes.slice(processedBBoxCount);\n var result = processBBoxes(unprocessedBBoxes, processedBBoxCount, primary, secondary, forceResult);\n if (!result) {\n return;\n }\n processedBBoxCount += result.processedBBoxCount;\n rawPages.push(result.pageIndices);\n }\n return buildPages(rawPages, orientation, bboxes, itemPaddingY, itemPaddingX);\n}\nfunction processBBoxes(bboxes, indexOffset, primary, secondary, forceResult) {\n // If calculatePage() fails on the first guess, we could use the number of items that fit\n // as a good guess for the next iteration.\n var minGuess = 1;\n var startingGuess = estimateStartingGuess(bboxes, primary);\n if (startingGuess < minGuess) {\n if (!forceResult) {\n return undefined;\n }\n // Legend constraints too small! Display at least one row/column if forceResult is true\n startingGuess = minGuess;\n }\n for (var guess = startingGuess; guess >= minGuess; guess--) {\n var pageIndices = calculatePage(bboxes, indexOffset, guess, primary, secondary, forceResult);\n if (pageIndices == null && guess <= minGuess) {\n // Can't layout!\n return undefined;\n }\n if (pageIndices == null) {\n // Guess again!\n continue;\n }\n if (typeof pageIndices === 'number') {\n // calculatePage() suggested a better guess, use that if it's more than minGuess.\n if (pageIndices <= minGuess) {\n // Can't layout!\n return undefined;\n }\n guess = pageIndices < guess && pageIndices > minGuess ? pageIndices : guess;\n continue;\n }\n var processedBBoxCount = pageIndices.length * pageIndices[0].length; // this is an estimate, not all rows/columns will have the same length\n return { processedBBoxCount: processedBBoxCount, pageIndices: pageIndices };\n }\n}\nfunction calculatePage(bboxes, indexOffset, primaryCount, primary, secondary, forceResult) {\n var _a;\n var result = [];\n var sumSecondary = 0;\n var currentMaxSecondary = 0;\n var currentPrimaryIndices = [];\n var maxPrimaryValues = [];\n for (var bboxIndex = 0; bboxIndex < bboxes.length; bboxIndex++) {\n var primaryValueIdx = (bboxIndex + primaryCount) % primaryCount;\n if (primaryValueIdx === 0) {\n sumSecondary += currentMaxSecondary;\n currentMaxSecondary = 0;\n if (currentPrimaryIndices.length > 0) {\n result.push(currentPrimaryIndices);\n }\n currentPrimaryIndices = [];\n }\n var primaryValue = primary.fn(bboxes[bboxIndex]) + primary.padding;\n maxPrimaryValues[primaryValueIdx] = Math.max((_a = maxPrimaryValues[primaryValueIdx]) !== null && _a !== void 0 ? _a : 0, primaryValue);\n currentMaxSecondary = Math.max(currentMaxSecondary, secondary.fn(bboxes[bboxIndex]) + secondary.padding);\n var currentSecondaryDimension = sumSecondary + currentMaxSecondary;\n var returnResult = !forceResult || result.length > 0;\n if (currentSecondaryDimension > secondary.max && returnResult) {\n // Breached max secondary dimension size, return indices accumlated so far (but not in-progress row/column).\n currentPrimaryIndices = [];\n break;\n }\n var sumPrimary = maxPrimaryValues.reduce(function (sum, next) { return sum + next; }, 0);\n if (sumPrimary > primary.max && !forceResult) {\n // Breached max main dimension size.\n if (maxPrimaryValues.length < primaryCount) {\n // Feedback as guess for next iteration if we're on the first round still.\n return maxPrimaryValues.length;\n }\n return undefined;\n }\n currentPrimaryIndices.push(bboxIndex + indexOffset);\n }\n if (currentPrimaryIndices.length > 0) {\n result.push(currentPrimaryIndices);\n }\n return result.length > 0 ? result : undefined;\n}\nfunction buildPages(rawPages, orientation, bboxes, itemPaddingY, itemPaddingX) {\n var maxPageWidth = 0;\n var maxPageHeight = 0;\n var pages = rawPages.map(function (indices) {\n if (orientation === 'horizontal') {\n indices = transpose(indices);\n }\n var endIndex = 0;\n var columns = indices.map(function (colIndices) {\n var colBBoxes = colIndices.map(function (bboxIndex) {\n endIndex = Math.max(bboxIndex, endIndex);\n return bboxes[bboxIndex];\n });\n var columnHeight = 0;\n var columnWidth = 0;\n colBBoxes.forEach(function (bbox) {\n columnHeight += bbox.height + itemPaddingY;\n columnWidth = Math.max(columnWidth, bbox.width + itemPaddingX);\n });\n return {\n indices: colIndices,\n bboxes: colBBoxes,\n columnHeight: columnHeight,\n columnWidth: columnWidth,\n };\n });\n var pageWidth = 0;\n var pageHeight = 0;\n columns.forEach(function (column) {\n pageWidth += column.columnWidth;\n pageHeight = Math.max(pageHeight, column.columnHeight);\n });\n maxPageWidth = Math.max(pageWidth, maxPageWidth);\n maxPageHeight = Math.max(pageHeight, maxPageHeight);\n return {\n columns: columns,\n startIndex: indices[0][0],\n endIndex: endIndex,\n pageWidth: pageWidth,\n pageHeight: pageHeight,\n };\n });\n return { pages: pages, maxPageWidth: maxPageWidth, maxPageHeight: maxPageHeight };\n}\nfunction transpose(data) {\n var e_1, _a;\n var result = [];\n try {\n for (var _b = __values$r(data[0]), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _ = _c.value;\n result.push([]);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n data.forEach(function (innerData, dataIdx) {\n innerData.forEach(function (item, itemIdx) {\n result[itemIdx][dataIdx] = item;\n });\n });\n return result;\n}\nfunction estimateStartingGuess(bboxes, primary) {\n var n = bboxes.length;\n var primarySum = 0;\n for (var bboxIndex = 0; bboxIndex < n; bboxIndex++) {\n primarySum += primary.fn(bboxes[bboxIndex]) + primary.padding;\n if (primarySum > primary.max) {\n var ratio = n / bboxIndex;\n if (ratio < 2) {\n return Math.ceil(n / 2);\n }\n return bboxIndex;\n }\n }\n return n;\n}\n\nvar __decorate$1N = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PaginationLabel = /** @class */ (function () {\n function PaginationLabel() {\n this.color = 'black';\n this.fontStyle = undefined;\n this.fontWeight = undefined;\n this.fontSize = 12;\n this.fontFamily = 'Verdana, sans-serif';\n }\n __decorate$1N([\n Validate(COLOR_STRING)\n ], PaginationLabel.prototype, \"color\", void 0);\n __decorate$1N([\n Validate(OPT_FONT_STYLE)\n ], PaginationLabel.prototype, \"fontStyle\", void 0);\n __decorate$1N([\n Validate(OPT_FONT_WEIGHT)\n ], PaginationLabel.prototype, \"fontWeight\", void 0);\n __decorate$1N([\n Validate(NUMBER(0))\n ], PaginationLabel.prototype, \"fontSize\", void 0);\n __decorate$1N([\n Validate(STRING)\n ], PaginationLabel.prototype, \"fontFamily\", void 0);\n return PaginationLabel;\n}());\nvar PaginationMarkerStyle = /** @class */ (function () {\n function PaginationMarkerStyle() {\n this.size = 15;\n this.fill = undefined;\n this.fillOpacity = undefined;\n this.stroke = undefined;\n this.strokeWidth = 1;\n this.strokeOpacity = 1;\n }\n __decorate$1N([\n Validate(NUMBER(0))\n ], PaginationMarkerStyle.prototype, \"size\", void 0);\n __decorate$1N([\n Validate(OPT_COLOR_STRING)\n ], PaginationMarkerStyle.prototype, \"fill\", void 0);\n __decorate$1N([\n Validate(OPT_NUMBER(0, 1))\n ], PaginationMarkerStyle.prototype, \"fillOpacity\", void 0);\n __decorate$1N([\n Validate(OPT_COLOR_STRING)\n ], PaginationMarkerStyle.prototype, \"stroke\", void 0);\n __decorate$1N([\n Validate(NUMBER(0))\n ], PaginationMarkerStyle.prototype, \"strokeWidth\", void 0);\n __decorate$1N([\n Validate(NUMBER(0, 1))\n ], PaginationMarkerStyle.prototype, \"strokeOpacity\", void 0);\n return PaginationMarkerStyle;\n}());\nvar PaginationMarker = /** @class */ (function () {\n function PaginationMarker() {\n this.size = 15;\n this._shape = Triangle;\n /**\n * Inner padding between a pagination button and the label.\n */\n this.padding = 8;\n }\n Object.defineProperty(PaginationMarker.prototype, \"shape\", {\n get: function () {\n return this._shape;\n },\n set: function (value) {\n var _a;\n this._shape = value;\n (_a = this.parent) === null || _a === void 0 ? void 0 : _a.onMarkerShapeChange();\n },\n enumerable: false,\n configurable: true\n });\n __decorate$1N([\n Validate(NUMBER(0))\n ], PaginationMarker.prototype, \"size\", void 0);\n __decorate$1N([\n Validate(NUMBER(0))\n ], PaginationMarker.prototype, \"padding\", void 0);\n return PaginationMarker;\n}());\nvar Pagination = /** @class */ (function () {\n function Pagination(chartUpdateCallback, pageUpdateCallback, interactionManager, cursorManager) {\n var _this = this;\n this.chartUpdateCallback = chartUpdateCallback;\n this.pageUpdateCallback = pageUpdateCallback;\n this.interactionManager = interactionManager;\n this.cursorManager = cursorManager;\n this.id = createId$1(this);\n this.group = new Group({ name: 'pagination' });\n this.labelNode = new Text();\n this.marker = new PaginationMarker();\n this.activeStyle = new PaginationMarkerStyle();\n this.inactiveStyle = new PaginationMarkerStyle();\n this.highlightStyle = new PaginationMarkerStyle();\n this.label = new PaginationLabel();\n this.totalPages = 0;\n this.currentPage = 0;\n this.translationX = 0;\n this.translationY = 0;\n this.nextButtonDisabled = false;\n this.previousButtonDisabled = false;\n this._visible = true;\n this._enabled = true;\n this._orientation = 'vertical';\n this._nextButton = new Triangle();\n this._previousButton = new Triangle();\n var labelNode = this.labelNode;\n labelNode.textBaseline = 'middle';\n labelNode.fontSize = 12;\n labelNode.fontFamily = 'Verdana, sans-serif';\n labelNode.fill = 'black';\n labelNode.y = HdpiCanvas.has.textMetrics ? 1 : 0;\n this.group.append([this.nextButton, this.previousButton, labelNode]);\n this.interactionManager.addListener('click', function (event) { return _this.onPaginationClick(event); });\n this.interactionManager.addListener('hover', function (event) { return _this.onPaginationMouseMove(event); });\n this.marker.parent = this;\n this.update();\n this.updateMarkers();\n }\n Object.defineProperty(Pagination.prototype, \"visible\", {\n get: function () {\n return this._visible;\n },\n set: function (value) {\n this._visible = value;\n this.updateGroupVisibility();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Pagination.prototype, \"enabled\", {\n get: function () {\n return this._enabled;\n },\n set: function (value) {\n this._enabled = value;\n this.updateGroupVisibility();\n },\n enumerable: false,\n configurable: true\n });\n Pagination.prototype.updateGroupVisibility = function () {\n this.group.visible = this.enabled && this.visible;\n };\n Object.defineProperty(Pagination.prototype, \"orientation\", {\n get: function () {\n return this._orientation;\n },\n set: function (value) {\n this._orientation = value;\n switch (value) {\n case 'horizontal': {\n this.previousButton.rotation = -Math.PI / 2;\n this.nextButton.rotation = Math.PI / 2;\n break;\n }\n case 'vertical':\n default: {\n this.previousButton.rotation = 0;\n this.nextButton.rotation = Math.PI;\n }\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Pagination.prototype, \"nextButton\", {\n get: function () {\n return this._nextButton;\n },\n set: function (value) {\n if (this._nextButton !== value) {\n this.group.removeChild(this._nextButton);\n this._nextButton = value;\n this.group.appendChild(value);\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Pagination.prototype, \"previousButton\", {\n get: function () {\n return this._previousButton;\n },\n set: function (value) {\n if (this._previousButton !== value) {\n this.group.removeChild(this._previousButton);\n this._previousButton = value;\n this.group.appendChild(value);\n }\n },\n enumerable: false,\n configurable: true\n });\n Pagination.prototype.update = function () {\n this.updateLabel();\n this.updatePositions();\n this.enableOrDisableButtons();\n };\n Pagination.prototype.updatePositions = function () {\n this.group.translationX = this.translationX;\n this.group.translationY = this.translationY;\n this.updateLabelPosition();\n this.updateNextButtonPosition();\n };\n Pagination.prototype.updateLabelPosition = function () {\n var _a = this.marker, markerSize = _a.size, markerPadding = _a.padding;\n this.nextButton.size = markerSize;\n this.previousButton.size = markerSize;\n this.labelNode.x = markerSize / 2 + markerPadding;\n };\n Pagination.prototype.updateNextButtonPosition = function () {\n var labelBBox = this.labelNode.computeBBox();\n this.nextButton.translationX = labelBBox.x + labelBBox.width + this.marker.size / 2 + this.marker.padding;\n };\n Pagination.prototype.updateLabel = function () {\n var _a = this, currentPage = _a.currentPage, pages = _a.totalPages, labelNode = _a.labelNode, _b = _a.label, color = _b.color, fontStyle = _b.fontStyle, fontWeight = _b.fontWeight, fontSize = _b.fontSize, fontFamily = _b.fontFamily;\n labelNode.text = currentPage + 1 + \" / \" + pages;\n labelNode.fill = color;\n labelNode.fontStyle = fontStyle;\n labelNode.fontWeight = fontWeight;\n labelNode.fontSize = fontSize;\n labelNode.fontFamily = fontFamily;\n };\n Pagination.prototype.updateMarkers = function () {\n var _a = this, nextButton = _a.nextButton, previousButton = _a.previousButton, nextButtonDisabled = _a.nextButtonDisabled, previousButtonDisabled = _a.previousButtonDisabled, activeStyle = _a.activeStyle, inactiveStyle = _a.inactiveStyle, highlightStyle = _a.highlightStyle, highlightActive = _a.highlightActive;\n var buttonStyle = function (button, disabled) {\n if (disabled) {\n return inactiveStyle;\n }\n else if (button === highlightActive) {\n return highlightStyle;\n }\n return activeStyle;\n };\n this.updateMarker(nextButton, buttonStyle('next', nextButtonDisabled));\n this.updateMarker(previousButton, buttonStyle('previous', previousButtonDisabled));\n };\n Pagination.prototype.updateMarker = function (marker, style) {\n var _a;\n var size = this.marker.size;\n marker.size = size;\n marker.fill = style.fill;\n marker.fillOpacity = (_a = style.fillOpacity) !== null && _a !== void 0 ? _a : 1;\n marker.stroke = style.stroke;\n marker.strokeWidth = style.strokeWidth;\n marker.strokeOpacity = style.strokeOpacity;\n };\n Pagination.prototype.enableOrDisableButtons = function () {\n var _a = this, currentPage = _a.currentPage, totalPages = _a.totalPages;\n var zeroPagesToDisplay = totalPages === 0;\n var onLastPage = currentPage === totalPages - 1;\n var onFirstPage = currentPage === 0;\n this.nextButtonDisabled = onLastPage || zeroPagesToDisplay;\n this.previousButtonDisabled = onFirstPage || zeroPagesToDisplay;\n };\n Pagination.prototype.nextButtonContainsPoint = function (offsetX, offsetY) {\n return !this.nextButtonDisabled && this.nextButton.containsPoint(offsetX, offsetY);\n };\n Pagination.prototype.previousButtonContainsPoint = function (offsetX, offsetY) {\n return !this.previousButtonDisabled && this.previousButton.containsPoint(offsetX, offsetY);\n };\n Pagination.prototype.onPaginationClick = function (event) {\n var offsetX = event.offsetX, offsetY = event.offsetY;\n if (this.nextButtonContainsPoint(offsetX, offsetY)) {\n this.incrementPage();\n this.onPaginationChanged();\n event.consume();\n }\n else if (this.previousButtonContainsPoint(offsetX, offsetY)) {\n this.decrementPage();\n this.onPaginationChanged();\n event.consume();\n }\n };\n Pagination.prototype.onPaginationMouseMove = function (event) {\n var offsetX = event.offsetX, offsetY = event.offsetY;\n if (this.nextButtonContainsPoint(offsetX, offsetY)) {\n this.cursorManager.updateCursor(this.id, 'pointer');\n this.highlightActive = 'next';\n }\n else if (this.previousButtonContainsPoint(offsetX, offsetY)) {\n this.cursorManager.updateCursor(this.id, 'pointer');\n this.highlightActive = 'previous';\n }\n else {\n this.cursorManager.updateCursor(this.id);\n this.highlightActive = undefined;\n }\n this.updateMarkers();\n this.chartUpdateCallback(ChartUpdateType.SCENE_RENDER);\n };\n Pagination.prototype.onPaginationChanged = function () {\n this.pageUpdateCallback(this.currentPage);\n };\n Pagination.prototype.incrementPage = function () {\n this.currentPage = Math.min(this.currentPage + 1, this.totalPages - 1);\n };\n Pagination.prototype.decrementPage = function () {\n this.currentPage = Math.max(this.currentPage - 1, 0);\n };\n Pagination.prototype.onMarkerShapeChange = function () {\n var Marker = getMarker$1(this.marker.shape || Triangle);\n this.previousButton = new Marker();\n this.nextButton = new Marker();\n this.updatePositions();\n this.updateMarkers();\n this.chartUpdateCallback(ChartUpdateType.SCENE_RENDER);\n };\n Pagination.prototype.attachPagination = function (node) {\n node.append(this.group);\n };\n Pagination.prototype.computeBBox = function () {\n return this.group.computeBBox();\n };\n Pagination.className = 'Pagination';\n return Pagination;\n}());\n\nvar __decorate$1M = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$U = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$y = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar __values$q = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar ORIENTATIONS = ['horizontal', 'vertical'];\nvar OPT_ORIENTATION = predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, function (v) { return ORIENTATIONS.includes(v); }); }, \"expecting an orientation keyword such as 'horizontal' or 'vertical'\");\nvar LegendLabel = /** @class */ (function () {\n function LegendLabel() {\n this.maxLength = undefined;\n this.color = 'black';\n this.fontStyle = undefined;\n this.fontWeight = undefined;\n this.fontSize = 12;\n this.fontFamily = 'Verdana, sans-serif';\n this.formatter = undefined;\n }\n __decorate$1M([\n Validate(OPT_NUMBER(0))\n ], LegendLabel.prototype, \"maxLength\", void 0);\n __decorate$1M([\n Validate(COLOR_STRING)\n ], LegendLabel.prototype, \"color\", void 0);\n __decorate$1M([\n Validate(OPT_FONT_STYLE)\n ], LegendLabel.prototype, \"fontStyle\", void 0);\n __decorate$1M([\n Validate(OPT_FONT_WEIGHT)\n ], LegendLabel.prototype, \"fontWeight\", void 0);\n __decorate$1M([\n Validate(NUMBER(0))\n ], LegendLabel.prototype, \"fontSize\", void 0);\n __decorate$1M([\n Validate(STRING)\n ], LegendLabel.prototype, \"fontFamily\", void 0);\n __decorate$1M([\n Validate(OPT_FUNCTION)\n ], LegendLabel.prototype, \"formatter\", void 0);\n return LegendLabel;\n}());\nvar LegendMarker = /** @class */ (function () {\n function LegendMarker() {\n this.size = 15;\n /**\n * If the marker type is set, the legend will always use that marker type for all its items,\n * regardless of the type that comes from the `data`.\n */\n this._shape = undefined;\n /**\n * Padding between the marker and the label within each legend item.\n */\n this.padding = 8;\n this.strokeWidth = 1;\n }\n Object.defineProperty(LegendMarker.prototype, \"shape\", {\n get: function () {\n return this._shape;\n },\n set: function (value) {\n var _a;\n this._shape = value;\n (_a = this.parent) === null || _a === void 0 ? void 0 : _a.onMarkerShapeChange();\n },\n enumerable: false,\n configurable: true\n });\n __decorate$1M([\n Validate(NUMBER(0))\n ], LegendMarker.prototype, \"size\", void 0);\n __decorate$1M([\n Validate(NUMBER(0))\n ], LegendMarker.prototype, \"padding\", void 0);\n __decorate$1M([\n Validate(NUMBER(0))\n ], LegendMarker.prototype, \"strokeWidth\", void 0);\n return LegendMarker;\n}());\nvar LegendItem = /** @class */ (function () {\n function LegendItem() {\n this.marker = new LegendMarker();\n this.label = new LegendLabel();\n /** Used to constrain the width of legend items. */\n this.maxWidth = undefined;\n /**\n * The legend uses grid layout for its items, occupying as few columns as possible when positioned to left or right,\n * and as few rows as possible when positioned to top or bottom. This config specifies the amount of horizontal\n * padding between legend items.\n */\n this.paddingX = 16;\n /**\n * The legend uses grid layout for its items, occupying as few columns as possible when positioned to left or right,\n * and as few rows as possible when positioned to top or bottom. This config specifies the amount of vertical\n * padding between legend items.\n */\n this.paddingY = 8;\n this.toggleSeriesVisible = true;\n }\n __decorate$1M([\n Validate(OPT_NUMBER(0))\n ], LegendItem.prototype, \"maxWidth\", void 0);\n __decorate$1M([\n Validate(NUMBER(0))\n ], LegendItem.prototype, \"paddingX\", void 0);\n __decorate$1M([\n Validate(NUMBER(0))\n ], LegendItem.prototype, \"paddingY\", void 0);\n __decorate$1M([\n Validate(BOOLEAN)\n ], LegendItem.prototype, \"toggleSeriesVisible\", void 0);\n return LegendItem;\n}());\nvar LegendListeners = /** @class */ (function () {\n function LegendListeners() {\n this.legendItemClick = undefined;\n this.legendItemDoubleClick = undefined;\n }\n __decorate$1M([\n Validate(OPT_FUNCTION)\n ], LegendListeners.prototype, \"legendItemClick\", void 0);\n return LegendListeners;\n}());\nvar Legend = /** @class */ (function () {\n function Legend(ctx) {\n var _a;\n var _this = this;\n this.ctx = ctx;\n this.id = createId$1(this);\n this.group = new Group({ name: 'legend', layer: true, zIndex: Layers.LEGEND_ZINDEX });\n this.itemSelection = Selection.select(this.group, MarkerLabel);\n this.oldSize = [0, 0];\n this.pages = [];\n this.maxPageSize = [0, 0];\n /** Item index to track on re-pagination, so current page updates appropriately. */\n this.paginationTrackingIndex = 0;\n this.item = new LegendItem();\n this.listeners = new LegendListeners();\n this.truncatedItems = new Set();\n this._data = [];\n this._enabled = true;\n this.position = 'bottom';\n /** Used to constrain the width of the legend. */\n this.maxWidth = undefined;\n /** Used to constrain the height of the legend. */\n this.maxHeight = undefined;\n /** Reverse the display order of legend items if `true`. */\n this.reverseOrder = undefined;\n this.destroyFns = [];\n /**\n * Spacing between the legend and the edge of the chart's element.\n */\n this.spacing = 20;\n this.characterWidths = new Map();\n this.size = [0, 0];\n this._visible = true;\n this.item.marker.parent = this;\n this.pagination = new Pagination(function (type) { return ctx.updateService.update(type); }, function (page) { return _this.updatePageNumber(page); }, ctx.interactionManager, ctx.cursorManager);\n this.pagination.attachPagination(this.group);\n this.item.marker.parent = this;\n var interactionListeners = [\n ctx.interactionManager.addListener('click', function (e) { return _this.checkLegendClick(e); }),\n ctx.interactionManager.addListener('dblclick', function (e) { return _this.checkLegendDoubleClick(e); }),\n ctx.interactionManager.addListener('hover', function (e) { return _this.handleLegendMouseMove(e); }),\n ];\n var layoutListeners = [\n ctx.layoutService.addListener('start-layout', function (e) { return _this.positionLegend(e.shrinkRect); }),\n ];\n (_a = this.destroyFns).push.apply(_a, __spreadArray$y(__spreadArray$y(__spreadArray$y([], __read$U(interactionListeners.map(function (s) { return function () { return ctx.interactionManager.removeListener(s); }; }))), __read$U(layoutListeners.map(function (s) { return function () { return ctx.layoutService.removeListener(s); }; }))), [function () { return _this.detachLegend(); }]));\n }\n Object.defineProperty(Legend.prototype, \"data\", {\n get: function () {\n return this._data;\n },\n set: function (value) {\n this._data = value;\n this.updateGroupVisibility();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Legend.prototype, \"enabled\", {\n get: function () {\n return this._enabled;\n },\n set: function (value) {\n this._enabled = value;\n this.updateGroupVisibility();\n },\n enumerable: false,\n configurable: true\n });\n Legend.prototype.getOrientation = function () {\n if (this.orientation !== undefined) {\n return this.orientation;\n }\n switch (this.position) {\n case 'right':\n case 'left':\n return 'vertical';\n case 'bottom':\n case 'top':\n return 'horizontal';\n }\n };\n Legend.prototype.destroy = function () {\n this.destroyFns.forEach(function (f) { return f(); });\n };\n Legend.prototype.onMarkerShapeChange = function () {\n this.itemSelection.clear();\n this.group.markDirty(this.group, RedrawType.MINOR);\n };\n Legend.prototype.getCharacterWidths = function (font) {\n var characterWidths = this.characterWidths;\n if (characterWidths.has(font)) {\n return characterWidths.get(font);\n }\n var cw = {\n '...': HdpiCanvas.getTextSize('...', font).width,\n };\n characterWidths.set(font, cw);\n return cw;\n };\n Object.defineProperty(Legend.prototype, \"visible\", {\n get: function () {\n return this._visible;\n },\n set: function (value) {\n this._visible = value;\n this.updateGroupVisibility();\n },\n enumerable: false,\n configurable: true\n });\n Legend.prototype.updateGroupVisibility = function () {\n this.group.visible = this.enabled && this.visible && this.data.length > 0;\n };\n Legend.prototype.attachLegend = function (node) {\n node.append(this.group);\n };\n Legend.prototype.detachLegend = function () {\n var _a;\n (_a = this.group.parent) === null || _a === void 0 ? void 0 : _a.removeChild(this.group);\n };\n Legend.prototype.getItemLabel = function (datum) {\n var callbackCache = this.ctx.callbackCache;\n var formatter = this.item.label.formatter;\n if (formatter) {\n return callbackCache.call(formatter, {\n itemId: datum.itemId,\n value: datum.label.text,\n seriesId: datum.seriesId,\n });\n }\n return datum.label.text;\n };\n /**\n * The method is given the desired size of the legend, which only serves as a hint.\n * The vertically oriented legend will take as much horizontal space as needed, but will\n * respect the height constraints, and the horizontal legend will take as much vertical\n * space as needed in an attempt not to exceed the given width.\n * After the layout is done, the {@link size} will contain the actual size of the legend.\n * If the actual size is not the same as the previous actual size, the legend will fire\n * the 'layoutChange' event to communicate that another layout is needed, and the above\n * process should be repeated.\n * @param width\n * @param height\n */\n Legend.prototype.performLayout = function (width, height) {\n var _this = this;\n var _a = this.item, paddingX = _a.paddingX, paddingY = _a.paddingY, label = _a.label, maxWidth = _a.maxWidth, _b = _a.marker, markerSize = _b.size, markerPadding = _b.padding, markerShape = _b.shape, _c = _a.label, _d = _c.maxLength, maxLength = _d === void 0 ? Infinity : _d, fontStyle = _c.fontStyle, fontWeight = _c.fontWeight, fontSize = _c.fontSize, fontFamily = _c.fontFamily;\n var data = __spreadArray$y([], __read$U(this.data));\n if (this.reverseOrder) {\n data.reverse();\n }\n this.itemSelection.update(data);\n // Update properties that affect the size of the legend items and measure them.\n var bboxes = [];\n var font = getFont(label);\n var itemMaxWidthPercentage = 0.8;\n var maxItemWidth = maxWidth !== null && maxWidth !== void 0 ? maxWidth : width * itemMaxWidthPercentage;\n var paddedMarkerWidth = markerSize + markerPadding + paddingX;\n this.itemSelection.each(function (markerLabel, datum) {\n var _a;\n var Marker = getMarker$1(markerShape !== null && markerShape !== void 0 ? markerShape : datum.marker.shape);\n if (!(markerLabel.marker && markerLabel.marker instanceof Marker)) {\n markerLabel.marker = new Marker();\n }\n markerLabel.markerSize = markerSize;\n markerLabel.spacing = markerPadding;\n markerLabel.fontStyle = fontStyle;\n markerLabel.fontWeight = fontWeight;\n markerLabel.fontSize = fontSize;\n markerLabel.fontFamily = fontFamily;\n var id = (_a = datum.itemId) !== null && _a !== void 0 ? _a : datum.id;\n var labelText = _this.getItemLabel(datum);\n var text = (labelText !== null && labelText !== void 0 ? labelText : '').replace(/\\r?\\n/g, ' ');\n markerLabel.text = _this.truncate(text, maxLength, maxItemWidth, paddedMarkerWidth, font, id);\n bboxes.push(markerLabel.computeBBox());\n });\n width = Math.max(1, width);\n height = Math.max(1, height);\n if (!isFinite(width)) {\n return false;\n }\n var size = this.size;\n var oldSize = this.oldSize;\n size[0] = width;\n size[1] = height;\n if (size[0] !== oldSize[0] || size[1] !== oldSize[1]) {\n oldSize[0] = size[0];\n oldSize[1] = size[1];\n }\n var _e = this.updatePagination(bboxes, width, height), pages = _e.pages, maxPageHeight = _e.maxPageHeight, maxPageWidth = _e.maxPageWidth;\n this.pages = pages;\n this.maxPageSize = [maxPageWidth - paddingX, maxPageHeight - paddingY];\n var pageNumber = this.pagination.currentPage;\n var page = this.pages[pageNumber];\n if (this.pages.length < 1 || !page) {\n this.visible = false;\n return;\n }\n this.visible = true;\n // Position legend items\n this.updatePositions(pageNumber);\n // Update legend item properties that don't affect the layout.\n this.update();\n };\n Legend.prototype.truncate = function (text, maxCharLength, maxItemWidth, paddedMarkerWidth, font, id) {\n var e_1, _a;\n var ellipsis = \"...\";\n var textChars = text.split('');\n var addEllipsis = false;\n if (text.length > maxCharLength) {\n text = \"\" + text.substring(0, maxCharLength);\n addEllipsis = true;\n }\n var labelWidth = Math.floor(paddedMarkerWidth + HdpiCanvas.getTextSize(text, font).width);\n if (labelWidth > maxItemWidth) {\n var truncatedText = '';\n var characterWidths = this.getCharacterWidths(font);\n var cumulativeWidth = paddedMarkerWidth + characterWidths[ellipsis];\n try {\n for (var textChars_1 = __values$q(textChars), textChars_1_1 = textChars_1.next(); !textChars_1_1.done; textChars_1_1 = textChars_1.next()) {\n var char = textChars_1_1.value;\n if (!characterWidths[char]) {\n characterWidths[char] = HdpiCanvas.getTextSize(char, font).width;\n }\n cumulativeWidth += characterWidths[char];\n if (cumulativeWidth > maxItemWidth) {\n break;\n }\n truncatedText += char;\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (textChars_1_1 && !textChars_1_1.done && (_a = textChars_1.return)) _a.call(textChars_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n text = truncatedText;\n addEllipsis = true;\n }\n if (addEllipsis) {\n text += ellipsis;\n this.truncatedItems.add(id);\n }\n else {\n this.truncatedItems.delete(id);\n }\n return text;\n };\n Legend.prototype.updatePagination = function (bboxes, width, height) {\n var orientation = this.getOrientation();\n var trackingIndex = Math.min(this.paginationTrackingIndex, bboxes.length);\n this.pagination.orientation = orientation;\n this.pagination.translationX = 0;\n this.pagination.translationY = 0;\n var _a = this.calculatePagination(bboxes, width, height), pages = _a.pages, maxPageHeight = _a.maxPageHeight, maxPageWidth = _a.maxPageWidth, paginationBBox = _a.paginationBBox, paginationVertical = _a.paginationVertical;\n var newCurrentPage = pages.findIndex(function (p) { return p.endIndex >= trackingIndex; });\n this.pagination.currentPage = Math.min(Math.max(newCurrentPage, 0), pages.length - 1);\n var _b = this.item, itemPaddingX = _b.paddingX, itemPaddingY = _b.paddingY;\n var paginationComponentPadding = 8;\n var legendItemsWidth = maxPageWidth - itemPaddingX;\n var legendItemsHeight = maxPageHeight - itemPaddingY;\n var paginationX = 0;\n var paginationY = -paginationBBox.y - this.item.marker.size / 2;\n if (paginationVertical) {\n paginationY += legendItemsHeight + paginationComponentPadding;\n }\n else {\n paginationX += -paginationBBox.x + legendItemsWidth + paginationComponentPadding;\n paginationY += (legendItemsHeight - paginationBBox.height) / 2;\n }\n this.pagination.translationX = paginationX;\n this.pagination.translationY = paginationY;\n this.pagination.update();\n this.pagination.updateMarkers();\n return {\n maxPageHeight: maxPageHeight,\n maxPageWidth: maxPageWidth,\n pages: pages,\n };\n };\n Legend.prototype.calculatePagination = function (bboxes, width, height) {\n var _a, _b, _c;\n var _d = this.item, itemPaddingX = _d.paddingX, itemPaddingY = _d.paddingY;\n var orientation = this.getOrientation();\n var paginationVertical = ['left', 'right'].includes(this.position);\n var paginationBBox = this.pagination.computeBBox();\n var lastPassPaginationBBox = new BBox(0, 0, 0, 0);\n var pages = [];\n var maxPageWidth = 0;\n var maxPageHeight = 0;\n var count = 0;\n var stableOutput = function (lastPassPaginationBBox) {\n var width = lastPassPaginationBBox.width, height = lastPassPaginationBBox.height;\n return width === paginationBBox.width && height === paginationBBox.height;\n };\n var forceResult = this.maxWidth !== undefined || this.maxHeight !== undefined;\n do {\n if (count++ > 10) {\n Logger.warn('unable to find stable legend layout.');\n break;\n }\n paginationBBox = lastPassPaginationBBox;\n var maxWidth = width - (paginationVertical ? 0 : paginationBBox.width);\n var maxHeight = height - (paginationVertical ? paginationBBox.height : 0);\n var layout = gridLayout({\n orientation: orientation,\n bboxes: bboxes,\n maxHeight: maxHeight,\n maxWidth: maxWidth,\n itemPaddingY: itemPaddingY,\n itemPaddingX: itemPaddingX,\n forceResult: forceResult,\n });\n pages = (_a = layout === null || layout === void 0 ? void 0 : layout.pages) !== null && _a !== void 0 ? _a : [];\n maxPageWidth = (_b = layout === null || layout === void 0 ? void 0 : layout.maxPageWidth) !== null && _b !== void 0 ? _b : 0;\n maxPageHeight = (_c = layout === null || layout === void 0 ? void 0 : layout.maxPageHeight) !== null && _c !== void 0 ? _c : 0;\n var totalPages = pages.length;\n this.pagination.visible = totalPages > 1;\n this.pagination.totalPages = totalPages;\n this.pagination.update();\n lastPassPaginationBBox = this.pagination.computeBBox();\n if (!this.pagination.visible) {\n break;\n }\n } while (!stableOutput(lastPassPaginationBBox));\n return { maxPageWidth: maxPageWidth, maxPageHeight: maxPageHeight, pages: pages, paginationBBox: paginationBBox, paginationVertical: paginationVertical };\n };\n Legend.prototype.updatePositions = function (pageNumber) {\n if (pageNumber === void 0) { pageNumber = 0; }\n var _a = this, paddingY = _a.item.paddingY, itemSelection = _a.itemSelection, pages = _a.pages;\n if (pages.length < 1 || !pages[pageNumber]) {\n return;\n }\n var _b = pages[pageNumber], columns = _b.columns, visibleStart = _b.startIndex, visibleEnd = _b.endIndex;\n // Position legend items using the layout computed above.\n var x = 0;\n var y = 0;\n var columnCount = columns.length;\n var rowCount = columns[0].indices.length;\n var horizontal = this.getOrientation() === 'horizontal';\n var itemHeight = columns[0].bboxes[0].height + paddingY;\n var rowSumColumnWidths = [];\n itemSelection.each(function (markerLabel, _, i) {\n var _a, _b;\n if (i < visibleStart || i > visibleEnd) {\n markerLabel.visible = false;\n return;\n }\n var pageIndex = i - visibleStart;\n var columnIndex = 0;\n var rowIndex = 0;\n if (horizontal) {\n columnIndex = pageIndex % columnCount;\n rowIndex = Math.floor(pageIndex / columnCount);\n }\n else {\n columnIndex = Math.floor(pageIndex / rowCount);\n rowIndex = pageIndex % rowCount;\n }\n markerLabel.visible = true;\n var column = columns[columnIndex];\n if (!column) {\n return;\n }\n y = itemHeight * rowIndex;\n x = (_a = rowSumColumnWidths[rowIndex]) !== null && _a !== void 0 ? _a : 0;\n rowSumColumnWidths[rowIndex] = ((_b = rowSumColumnWidths[rowIndex]) !== null && _b !== void 0 ? _b : 0) + column.columnWidth;\n // Round off for pixel grid alignment to work properly.\n markerLabel.translationX = Math.floor(x);\n markerLabel.translationY = Math.floor(y);\n });\n };\n Legend.prototype.updatePageNumber = function (pageNumber) {\n var pages = this.pages;\n // Track an item on the page in re-pagination cases (e.g. resize).\n var _a = pages[pageNumber], startIndex = _a.startIndex, endIndex = _a.endIndex;\n if (startIndex === 0) {\n // Stay on first page on pagination update.\n this.paginationTrackingIndex = 0;\n }\n else if (pageNumber === pages.length - 1) {\n // Stay on last page on pagination update.\n this.paginationTrackingIndex = endIndex;\n }\n else {\n // Track the middle item on the page).\n this.paginationTrackingIndex = Math.floor((startIndex + endIndex) / 2);\n }\n this.pagination.update();\n this.pagination.updateMarkers();\n this.updatePositions(pageNumber);\n this.ctx.updateService.update(ChartUpdateType.SCENE_RENDER);\n };\n Legend.prototype.update = function () {\n var _a = this.item, strokeWidth = _a.marker.strokeWidth, color = _a.label.color;\n this.itemSelection.each(function (markerLabel, datum) {\n var marker = datum.marker;\n markerLabel.markerFill = marker.fill;\n markerLabel.markerStroke = marker.stroke;\n markerLabel.markerStrokeWidth = strokeWidth;\n markerLabel.markerFillOpacity = marker.fillOpacity;\n markerLabel.markerStrokeOpacity = marker.strokeOpacity;\n markerLabel.opacity = datum.enabled ? 1 : 0.5;\n markerLabel.color = color;\n });\n };\n Legend.prototype.getDatumForPoint = function (x, y) {\n var e_2, _a;\n var visibleChildBBoxes = [];\n var closestLeftTop = { dist: Infinity, datum: undefined };\n try {\n for (var _b = __values$q(this.group.children), _c = _b.next(); !_c.done; _c = _b.next()) {\n var child = _c.value;\n if (!child.visible)\n continue;\n if (!(child instanceof MarkerLabel))\n continue;\n var childBBox = child.computeBBox();\n childBBox.grow(this.item.paddingX / 2, 'horizontal');\n childBBox.grow(this.item.paddingY / 2, 'vertical');\n if (childBBox.containsPoint(x, y)) {\n return child.datum;\n }\n var distX = x - childBBox.x - this.item.paddingX / 2;\n var distY = y - childBBox.y - this.item.paddingY / 2;\n var dist = Math.pow(distX, 2) + Math.pow(distY, 2);\n var toTheLeftTop = distX >= 0 && distY >= 0;\n if (toTheLeftTop && dist < closestLeftTop.dist) {\n closestLeftTop.dist = dist;\n closestLeftTop.datum = child.datum;\n }\n visibleChildBBoxes.push(childBBox);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n var pageBBox = BBox.merge(visibleChildBBoxes);\n if (!pageBBox.containsPoint(x, y)) {\n // We're not in-between legend items.\n return undefined;\n }\n // Fallback to returning closest match to the left/up.\n return closestLeftTop.datum;\n };\n Legend.prototype.computeBBox = function () {\n return this.group.computeBBox();\n };\n Legend.prototype.computePagedBBox = function () {\n var actualBBox = this.group.computeBBox();\n if (this.pages.length <= 1) {\n return actualBBox;\n }\n var _a = __read$U(this.maxPageSize, 2), maxPageWidth = _a[0], maxPageHeight = _a[1];\n actualBBox.height = Math.max(maxPageHeight, actualBBox.height);\n actualBBox.width = Math.max(maxPageWidth, actualBBox.width);\n return actualBBox;\n };\n Legend.prototype.checkLegendClick = function (event) {\n var _a = this, legendItemClick = _a.listeners.legendItemClick, _b = _a.ctx, dataService = _b.dataService, highlightManager = _b.highlightManager, toggleSeriesVisible = _a.item.toggleSeriesVisible;\n var offsetX = event.offsetX, offsetY = event.offsetY;\n var legendBBox = this.computeBBox();\n var pointerInsideLegend = this.group.visible && legendBBox.containsPoint(offsetX, offsetY);\n var datum = this.getDatumForPoint(offsetX, offsetY);\n if (!pointerInsideLegend || !datum) {\n return;\n }\n var id = datum.id, itemId = datum.itemId, enabled = datum.enabled;\n var chartSeries = dataService.getSeries();\n var series = chartSeries.find(function (s) { return s.id === id; });\n if (!series) {\n return;\n }\n event.consume();\n var newEnabled = enabled;\n if (toggleSeriesVisible) {\n newEnabled = !enabled;\n this.ctx.chartEventManager.legendItemClick(series, itemId, newEnabled, datum.legendItemName);\n }\n if (!newEnabled) {\n highlightManager.updateHighlight(this.id);\n }\n else {\n highlightManager.updateHighlight(this.id, {\n series: series,\n itemId: itemId,\n datum: undefined,\n });\n }\n this.ctx.updateService.update(ChartUpdateType.PROCESS_DATA, { forceNodeDataRefresh: true });\n legendItemClick === null || legendItemClick === void 0 ? void 0 : legendItemClick({ type: 'click', enabled: newEnabled, itemId: itemId, seriesId: series.id });\n };\n Legend.prototype.checkLegendDoubleClick = function (event) {\n var _a;\n var _b = this, legendItemDoubleClick = _b.listeners.legendItemDoubleClick, dataService = _b.ctx.dataService, toggleSeriesVisible = _b.item.toggleSeriesVisible;\n var offsetX = event.offsetX, offsetY = event.offsetY;\n // Integrated charts do not handle double click behaviour correctly due to multiple instances of the\n // chart being created. See https://ag-grid.atlassian.net/browse/RTI-1381\n if (this.ctx.mode === 'integrated') {\n return;\n }\n var legendBBox = this.computeBBox();\n var pointerInsideLegend = this.group.visible && legendBBox.containsPoint(offsetX, offsetY);\n var datum = this.getDatumForPoint(offsetX, offsetY);\n if (!pointerInsideLegend || !datum) {\n return;\n }\n var id = datum.id, itemId = datum.itemId, seriesId = datum.seriesId;\n var chartSeries = dataService.getSeries();\n var series = chartSeries.find(function (s) { return s.id === id; });\n if (!series) {\n return;\n }\n event.consume();\n if (toggleSeriesVisible) {\n var legendData = chartSeries.reduce(function (ls, s) { return __spreadArray$y(__spreadArray$y([], __read$U(ls)), __read$U(s.getLegendData().filter(function (d) { return d.legendType === 'category'; }))); }, []);\n var numVisibleItems_1 = {};\n legendData.forEach(function (d) {\n var _a;\n var _b;\n (_a = numVisibleItems_1[_b = d.seriesId]) !== null && _a !== void 0 ? _a : (numVisibleItems_1[_b] = 0);\n if (d.enabled)\n numVisibleItems_1[d.seriesId]++;\n });\n var clickedItem = legendData.find(function (d) { return d.itemId === itemId && d.seriesId === seriesId; });\n this.ctx.chartEventManager.legendItemDoubleClick(series, itemId, (_a = clickedItem === null || clickedItem === void 0 ? void 0 : clickedItem.enabled) !== null && _a !== void 0 ? _a : false, numVisibleItems_1, clickedItem === null || clickedItem === void 0 ? void 0 : clickedItem.legendItemName);\n }\n this.ctx.updateService.update(ChartUpdateType.PROCESS_DATA, { forceNodeDataRefresh: true });\n legendItemDoubleClick === null || legendItemDoubleClick === void 0 ? void 0 : legendItemDoubleClick({ type: 'dblclick', enabled: true, itemId: itemId, seriesId: series.id });\n };\n Legend.prototype.handleLegendMouseMove = function (event) {\n var _a;\n var _b = this, enabled = _b.enabled, toggleSeriesVisible = _b.item.toggleSeriesVisible, listeners = _b.listeners;\n if (!enabled) {\n return;\n }\n var legendBBox = this.computeBBox();\n var pageX = event.pageX, pageY = event.pageY, offsetX = event.offsetX, offsetY = event.offsetY;\n var pointerInsideLegend = this.group.visible && legendBBox.containsPoint(offsetX, offsetY);\n if (!pointerInsideLegend) {\n this.ctx.cursorManager.updateCursor(this.id);\n this.ctx.highlightManager.updateHighlight(this.id);\n this.ctx.tooltipManager.removeTooltip(this.id);\n return;\n }\n // Prevent other handlers from consuming this event if it's generated inside the legend\n // boundaries.\n event.consume();\n var datum = this.getDatumForPoint(offsetX, offsetY);\n var pointerOverLegendDatum = pointerInsideLegend && datum !== undefined;\n if (!pointerOverLegendDatum) {\n this.ctx.cursorManager.updateCursor(this.id);\n this.ctx.highlightManager.updateHighlight(this.id);\n return;\n }\n var series = datum ? this.ctx.dataService.getSeries().find(function (series) { return series.id === (datum === null || datum === void 0 ? void 0 : datum.id); }) : undefined;\n if (datum && this.truncatedItems.has((_a = datum.itemId) !== null && _a !== void 0 ? _a : datum.id)) {\n var labelText = this.getItemLabel(datum);\n this.ctx.tooltipManager.updateTooltip(this.id, { pageX: pageX, pageY: pageY, offsetX: offsetX, offsetY: offsetY, event: event, showArrow: false }, toTooltipHtml$1({ content: labelText }));\n }\n else {\n this.ctx.tooltipManager.removeTooltip(this.id);\n }\n if (toggleSeriesVisible || listeners.legendItemClick != null || listeners.legendItemDoubleClick != null) {\n this.ctx.cursorManager.updateCursor(this.id, 'pointer');\n }\n if ((datum === null || datum === void 0 ? void 0 : datum.enabled) && series) {\n this.ctx.highlightManager.updateHighlight(this.id, {\n series: series,\n itemId: datum === null || datum === void 0 ? void 0 : datum.itemId,\n datum: undefined,\n });\n }\n else {\n this.ctx.highlightManager.updateHighlight(this.id);\n }\n };\n Legend.prototype.positionLegend = function (shrinkRect) {\n var _this = this;\n var newShrinkRect = shrinkRect.clone();\n if (!this.enabled || !this.data.length) {\n return { shrinkRect: newShrinkRect };\n }\n var _a = __read$U(this.calculateLegendDimensions(shrinkRect), 2), legendWidth = _a[0], legendHeight = _a[1];\n this.group.translationX = 0;\n this.group.translationY = 0;\n this.performLayout(legendWidth, legendHeight);\n var legendBBox = this.computePagedBBox();\n var calculateTranslationPerpendicularDimension = function () {\n switch (_this.position) {\n case 'top':\n return 0;\n case 'bottom':\n return shrinkRect.height - legendBBox.height;\n case 'left':\n return 0;\n case 'right':\n default:\n return shrinkRect.width - legendBBox.width;\n }\n };\n if (this.visible) {\n var translationX = void 0;\n var translationY = void 0;\n switch (this.position) {\n case 'top':\n case 'bottom':\n translationX = (shrinkRect.width - legendBBox.width) / 2;\n translationY = calculateTranslationPerpendicularDimension();\n newShrinkRect.shrink(legendBBox.height, this.position);\n break;\n case 'left':\n case 'right':\n default:\n translationX = calculateTranslationPerpendicularDimension();\n translationY = (shrinkRect.height - legendBBox.height) / 2;\n newShrinkRect.shrink(legendBBox.width, this.position);\n }\n // Round off for pixel grid alignment to work properly.\n this.group.translationX = Math.floor(-legendBBox.x + shrinkRect.x + translationX);\n this.group.translationY = Math.floor(-legendBBox.y + shrinkRect.y + translationY);\n }\n if (this.visible && this.enabled && this.data.length) {\n var legendPadding = this.spacing;\n newShrinkRect.shrink(legendPadding, this.position);\n var legendPositionedBBox = legendBBox.clone();\n legendPositionedBBox.x += this.group.translationX;\n legendPositionedBBox.y += this.group.translationY;\n this.ctx.tooltipManager.updateExclusiveRect(this.id, legendPositionedBBox);\n }\n else {\n this.ctx.tooltipManager.updateExclusiveRect(this.id);\n }\n return { shrinkRect: newShrinkRect };\n };\n Legend.prototype.calculateLegendDimensions = function (shrinkRect) {\n var width = shrinkRect.width, height = shrinkRect.height;\n var aspectRatio = width / height;\n var maxCoefficient = 0.5;\n var minHeightCoefficient = 0.2;\n var minWidthCoefficient = 0.25;\n var legendWidth = 0;\n var legendHeight = 0;\n switch (this.position) {\n case 'top':\n case 'bottom':\n // A horizontal legend should take maximum between 20 to 50 percent of the chart height if height is larger than width\n // and maximum 20 percent of the chart height if height is smaller than width.\n var heightCoefficient = aspectRatio < 1\n ? Math.min(maxCoefficient, minHeightCoefficient * (1 / aspectRatio))\n : minHeightCoefficient;\n legendWidth = this.maxWidth ? Math.min(this.maxWidth, width) : width;\n legendHeight = this.maxHeight\n ? Math.min(this.maxHeight, height)\n : Math.round(height * heightCoefficient);\n break;\n case 'left':\n case 'right':\n default:\n // A vertical legend should take maximum between 25 to 50 percent of the chart width if width is larger than height\n // and maximum 25 percent of the chart width if width is smaller than height.\n var widthCoefficient = aspectRatio > 1 ? Math.min(maxCoefficient, minWidthCoefficient * aspectRatio) : minWidthCoefficient;\n legendWidth = this.maxWidth ? Math.min(this.maxWidth, width) : Math.round(width * widthCoefficient);\n legendHeight = this.maxHeight ? Math.min(this.maxHeight, height) : height;\n }\n return [legendWidth, legendHeight];\n };\n Legend.className = 'Legend';\n __decorate$1M([\n Validate(BOOLEAN)\n ], Legend.prototype, \"_enabled\", void 0);\n __decorate$1M([\n Validate(POSITION)\n ], Legend.prototype, \"position\", void 0);\n __decorate$1M([\n Validate(OPT_NUMBER(0))\n ], Legend.prototype, \"maxWidth\", void 0);\n __decorate$1M([\n Validate(OPT_NUMBER(0))\n ], Legend.prototype, \"maxHeight\", void 0);\n __decorate$1M([\n Validate(OPT_BOOLEAN)\n ], Legend.prototype, \"reverseOrder\", void 0);\n __decorate$1M([\n Validate(OPT_ORIENTATION)\n ], Legend.prototype, \"orientation\", void 0);\n __decorate$1M([\n Validate(NUMBER(0))\n ], Legend.prototype, \"spacing\", void 0);\n return Legend;\n}());\n\nvar LEGEND_FACTORIES = {\n category: Legend,\n};\nfunction registerLegend(type, ctr) {\n if (LEGEND_FACTORIES[type]) {\n throw new Error(\"AG Charts - already registered legend type: \" + type);\n }\n LEGEND_FACTORIES[type] = ctr;\n}\nfunction getLegend(type, ctx) {\n if (LEGEND_FACTORIES[type]) {\n return new LEGEND_FACTORIES[type](ctx);\n }\n throw new Error(\"AG Charts - unknown legend type: \" + type);\n}\n\nvar __read$T = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$x = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar CallbackCache = /** @class */ (function () {\n function CallbackCache() {\n this.cache = new Map();\n }\n CallbackCache.prototype.call = function (f) {\n var params = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n params[_i - 1] = arguments[_i];\n }\n var serialisedParams;\n var paramCache = this.cache.get(f);\n var invoke = function () {\n try {\n var result = f.apply(void 0, __spreadArray$x([], __read$T(params)));\n if (paramCache && serialisedParams != null) {\n paramCache.set(serialisedParams, result);\n }\n return result;\n }\n catch (e) {\n Logger.warnOnce(\"User callback errored, ignoring\", e);\n return undefined;\n }\n };\n try {\n serialisedParams = JSON.stringify(params);\n }\n catch (e) {\n // Unable to serialise params!\n // No caching possible.\n return invoke();\n }\n if (paramCache == null) {\n paramCache = new Map();\n this.cache.set(f, paramCache);\n }\n if (!paramCache.has(serialisedParams)) {\n return invoke();\n }\n return paramCache.get(serialisedParams);\n };\n CallbackCache.prototype.invalidateCache = function () {\n this.cache = new Map();\n };\n return CallbackCache;\n}());\n\nvar __assign$L = (undefined && undefined.__assign) || function () {\n __assign$L = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$L.apply(this, arguments);\n};\nvar __awaiter$d = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$d = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __values$p = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$S = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$w = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\n/** Implements cross-series data model coordination. */\nvar DataController = /** @class */ (function () {\n function DataController() {\n this.requested = [];\n this.status = 'setup';\n }\n DataController.prototype.request = function (id, data, opts) {\n return __awaiter$d(this, void 0, void 0, function () {\n var _this = this;\n return __generator$d(this, function (_a) {\n if (this.status !== 'setup')\n throw new Error(\"AG Charts - data request after data setup phase.\");\n return [2 /*return*/, new Promise(function (resolve, reject) {\n _this.requested.push({\n id: id,\n opts: opts,\n data: data,\n resultCb: resolve,\n reject: reject,\n });\n })];\n });\n });\n };\n DataController.prototype.execute = function () {\n return __awaiter$d(this, void 0, void 0, function () {\n var merged, _loop_1, this_1, merged_1, merged_1_1, _a, opts, data, resultCbs, rejects, ids;\n var e_1, _b;\n return __generator$d(this, function (_c) {\n if (this.status !== 'setup')\n throw new Error(\"AG Charts - data request after data setup phase.\");\n this.status = 'executed';\n if (DataController.DEBUG())\n Logger.debug('DataController.execute() - requested', this.requested);\n merged = this.mergeRequested();\n if (DataController.DEBUG())\n Logger.debug('DataController.execute() - merged', merged);\n _loop_1 = function (opts, data, resultCbs, rejects, ids) {\n try {\n var dataModel_1 = new DataModel(opts);\n var processedData_1 = dataModel_1.processData(data);\n if (processedData_1 && processedData_1.partialValidDataCount === 0) {\n resultCbs.forEach(function (cb) { return cb({ dataModel: dataModel_1, processedData: processedData_1 }); });\n }\n else if (processedData_1) {\n this_1.splitResult(dataModel_1, processedData_1, ids, resultCbs);\n }\n else {\n rejects.forEach(function (cb) { return cb(new Error(\"AG Charts - no processed data generated\")); });\n }\n }\n catch (error) {\n rejects.forEach(function (cb) { return cb(error); });\n }\n };\n this_1 = this;\n try {\n for (merged_1 = __values$p(merged), merged_1_1 = merged_1.next(); !merged_1_1.done; merged_1_1 = merged_1.next()) {\n _a = merged_1_1.value, opts = _a.opts, data = _a.data, resultCbs = _a.resultCbs, rejects = _a.rejects, ids = _a.ids;\n _loop_1(opts, data, resultCbs, rejects, ids);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (merged_1_1 && !merged_1_1.done && (_b = merged_1.return)) _b.call(merged_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return [2 /*return*/];\n });\n });\n };\n DataController.prototype.mergeRequested = function () {\n var e_2, _a;\n var grouped = [];\n var keys = function (props) {\n return props\n .filter(function (p) { return p.type === 'key'; })\n .map(function (p) { return p.property; })\n .join(';');\n };\n var groupMatch = function (_a) {\n var opts = _a.opts, data = _a.data;\n return function (gr) {\n return (gr[0].data === data &&\n gr[0].opts.groupByKeys === opts.groupByKeys &&\n gr[0].opts.dataVisible === opts.dataVisible &&\n gr[0].opts.groupByFn === opts.groupByFn &&\n keys(gr[0].opts.props) === keys(opts.props));\n };\n };\n var propMatch = function (prop) { return function (existing) {\n var _a;\n if (existing.type !== prop.type)\n return false;\n if (existing.id !== prop.id)\n return false;\n var diff = (_a = jsonDiff(existing, prop)) !== null && _a !== void 0 ? _a : {};\n delete diff['scopes'];\n return Object.keys(diff).length === 0;\n }; };\n var mergeOpts = function (opts) {\n return __assign$L(__assign$L({}, opts[0]), { props: opts.reduce(function (result, next) {\n var e_3, _a, _b;\n var _c, _d, _e;\n try {\n for (var _f = __values$p(next.props), _g = _f.next(); !_g.done; _g = _f.next()) {\n var prop = _g.value;\n var match = result.find(propMatch(prop));\n if (match) {\n (_c = match.scopes) !== null && _c !== void 0 ? _c : (match.scopes = []);\n (_b = match.scopes).push.apply(_b, __spreadArray$w(__spreadArray$w([], __read$S(((_d = prop.scopes) !== null && _d !== void 0 ? _d : []))), __read$S(((_e = next.scopes) !== null && _e !== void 0 ? _e : []))));\n continue;\n }\n result.push(prop);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_g && !_g.done && (_a = _f.return)) _a.call(_f);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return result;\n }, []) });\n };\n var merge = function (props) {\n return {\n ids: props.map(function (_a) {\n var id = _a.id;\n return id;\n }),\n resultCbs: props.map(function (_a) {\n var resultCb = _a.resultCb;\n return resultCb;\n }),\n rejects: props.map(function (_a) {\n var reject = _a.reject;\n return reject;\n }),\n data: props[0].data,\n opts: mergeOpts(props.map(function (_a) {\n var opts = _a.opts;\n return opts;\n })),\n };\n };\n try {\n for (var _b = __values$p(this.requested), _c = _b.next(); !_c.done; _c = _b.next()) {\n var request = _c.value;\n var match = grouped.find(groupMatch(request));\n if (match) {\n match.push(request);\n }\n else {\n grouped.push([request]);\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return grouped.map(merge);\n };\n DataController.prototype.splitResult = function (dataModel, processedData, scopes, resultCbs) {\n var _loop_2 = function (index) {\n var scope = scopes[index];\n var resultCb = resultCbs[index];\n resultCb({\n dataModel: dataModel,\n processedData: __assign$L(__assign$L({}, processedData), { data: processedData.data.filter(function (_a) {\n var validScopes = _a.validScopes;\n return validScopes == null || validScopes.some(function (s) { return s === scope; });\n }) }),\n });\n };\n for (var index = 0; index < scopes.length; index++) {\n _loop_2(index);\n }\n };\n DataController.DEBUG = function () { var _a; return (_a = [true, 'data-model'].includes(windowValue('agChartsDebug'))) !== null && _a !== void 0 ? _a : false; };\n return DataController;\n}());\n\nvar __read$R = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$v = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar SeriesStateManager = /** @class */ (function () {\n function SeriesStateManager() {\n this.groups = {};\n }\n SeriesStateManager.prototype.registerSeries = function (_a) {\n var _b;\n var _c;\n var id = _a.id, seriesGrouping = _a.seriesGrouping, visible = _a.visible, type = _a.type;\n if (!seriesGrouping)\n return;\n (_b = (_c = this.groups)[type]) !== null && _b !== void 0 ? _b : (_c[type] = {});\n this.groups[type][id] = { grouping: seriesGrouping, visible: visible };\n };\n SeriesStateManager.prototype.deregisterSeries = function (_a) {\n var id = _a.id, type = _a.type;\n if (this.groups[type]) {\n delete this.groups[type][id];\n }\n if (this.groups[type] && Object.keys(this.groups[type]).length === 0) {\n delete this.groups[type];\n }\n };\n SeriesStateManager.prototype.getVisiblePeerGroupIndex = function (_a) {\n var _b;\n var type = _a.type, seriesGrouping = _a.seriesGrouping;\n if (!seriesGrouping)\n return { visibleGroupCount: 1, index: 0 };\n var visibleGroups = __spreadArray$v([], __read$R(Object.entries((_b = this.groups[type]) !== null && _b !== void 0 ? _b : {})\n .filter(function (_a) {\n var _b = __read$R(_a, 2); _b[0]; var entry = _b[1];\n return entry.visible;\n })\n .reduce(function (result, _a) {\n var _b = __read$R(_a, 2); _b[0]; var next = _b[1];\n if (next.visible) {\n result.add(next.grouping.groupIndex);\n }\n return result;\n }, new Set())\n .values()));\n visibleGroups.sort(function (a, b) { return a - b; });\n return { visibleGroupCount: visibleGroups.length, index: visibleGroups.indexOf(seriesGrouping.groupIndex) };\n };\n return SeriesStateManager;\n}());\n\nvar __values$o = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar SeriesLayerManager = /** @class */ (function () {\n function SeriesLayerManager(rootGroup) {\n this.groups = {};\n this.series = {};\n this.rootGroup = rootGroup;\n }\n SeriesLayerManager.prototype.requestGroup = function (seriesConfig) {\n var _a, _b;\n var _c, _d;\n var id = seriesConfig.id, type = seriesConfig.type, seriesRootGroup = seriesConfig.rootGroup, seriesGrouping = seriesConfig.seriesGrouping;\n var _e = (seriesGrouping !== null && seriesGrouping !== void 0 ? seriesGrouping : {}).groupIndex, groupIndex = _e === void 0 ? id : _e;\n if (this.series[id] != null) {\n throw new Error(\"AG Charts - series already has an allocated layer: \" + this.series[id]);\n }\n (_a = (_c = this.groups)[type]) !== null && _a !== void 0 ? _a : (_c[type] = {});\n var groupInfo = this.groups[type][groupIndex];\n if (!groupInfo) {\n groupInfo = (_b = (_d = this.groups[type])[groupIndex]) !== null && _b !== void 0 ? _b : (_d[groupIndex] = {\n seriesIds: [],\n group: this.rootGroup.appendChild(new Group({\n name: type + \"-content\",\n layer: true,\n zIndex: Layers.SERIES_LAYER_ZINDEX,\n zIndexSubOrder: seriesConfig.getGroupZIndexSubOrder('data'),\n })),\n });\n }\n this.series[id] = { layerState: groupInfo, seriesConfig: seriesConfig };\n groupInfo.seriesIds.push(id);\n groupInfo.group.appendChild(seriesRootGroup);\n return groupInfo.group;\n };\n SeriesLayerManager.prototype.changeGroup = function (seriesConfig) {\n var _a, _b;\n var id = seriesConfig.id, seriesGrouping = seriesConfig.seriesGrouping, type = seriesConfig.type, rootGroup = seriesConfig.rootGroup, oldGrouping = seriesConfig.oldGrouping;\n var _c = (seriesGrouping !== null && seriesGrouping !== void 0 ? seriesGrouping : {}).groupIndex, groupIndex = _c === void 0 ? id : _c;\n if ((_b = (_a = this.groups[type]) === null || _a === void 0 ? void 0 : _a[groupIndex]) === null || _b === void 0 ? void 0 : _b.seriesIds.includes(id)) {\n // Already in the right group, nothing to do.\n return;\n }\n if (this.series[id] != null) {\n this.releaseGroup({ id: id, seriesGrouping: oldGrouping, type: type, rootGroup: rootGroup });\n }\n this.requestGroup(seriesConfig);\n };\n SeriesLayerManager.prototype.releaseGroup = function (seriesConfig) {\n var _a, _b, _c, _d, _e;\n var id = seriesConfig.id, seriesGrouping = seriesConfig.seriesGrouping, rootGroup = seriesConfig.rootGroup, type = seriesConfig.type;\n var _f = (seriesGrouping !== null && seriesGrouping !== void 0 ? seriesGrouping : {}).groupIndex, groupIndex = _f === void 0 ? id : _f;\n if (this.series[id] == null) {\n throw new Error(\"AG Charts - series doesn't have an allocated layer: \" + id);\n }\n var groupInfo = (_b = (_a = this.groups[type]) === null || _a === void 0 ? void 0 : _a[groupIndex]) !== null && _b !== void 0 ? _b : (_c = this.series[id]) === null || _c === void 0 ? void 0 : _c.layerState;\n if (groupInfo) {\n groupInfo.seriesIds = groupInfo.seriesIds.filter(function (v) { return v !== id; });\n groupInfo.group.removeChild(rootGroup);\n }\n if ((groupInfo === null || groupInfo === void 0 ? void 0 : groupInfo.seriesIds.length) === 0) {\n // Last member of the layer, cleanup.\n this.rootGroup.removeChild(groupInfo.group);\n delete this.groups[type][groupIndex];\n delete this.groups[type][id];\n }\n else if ((groupInfo === null || groupInfo === void 0 ? void 0 : groupInfo.seriesIds.length) > 0) {\n // Update zIndexSubOrder to avoid it becoming stale as series are removed and re-added\n // with the same groupIndex, but are otherwise unrelated.\n var leadSeriesConfig = (_e = this.series[(_d = groupInfo === null || groupInfo === void 0 ? void 0 : groupInfo.seriesIds) === null || _d === void 0 ? void 0 : _d[0]]) === null || _e === void 0 ? void 0 : _e.seriesConfig;\n groupInfo.group.zIndexSubOrder = leadSeriesConfig === null || leadSeriesConfig === void 0 ? void 0 : leadSeriesConfig.getGroupZIndexSubOrder('data');\n }\n delete this.series[id];\n };\n SeriesLayerManager.prototype.destroy = function () {\n var e_1, _a, e_2, _b;\n try {\n for (var _c = __values$o(Object.values(this.groups)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var groups = _d.value;\n try {\n for (var _e = (e_2 = void 0, __values$o(Object.values(groups))), _f = _e.next(); !_f.done; _f = _e.next()) {\n var groupInfo = _f.value;\n this.rootGroup.removeChild(groupInfo.group);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.groups = {};\n this.series = {};\n };\n return SeriesLayerManager;\n}());\n\nvar __extends$2r = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$K = (undefined && undefined.__assign) || function () {\n __assign$K = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$K.apply(this, arguments);\n};\nvar __decorate$1L = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter$c = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$c = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read$Q = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __values$n = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __spreadArray$u = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar Chart = /** @class */ (function (_super) {\n __extends$2r(Chart, _super);\n function Chart(document, overrideDevicePixelRatio, resources) {\n if (document === void 0) { document = window.document; }\n var _a;\n var _this = _super.call(this) || this;\n _this.id = createId$1(_this);\n _this.processedOptions = {};\n _this.userOptions = {};\n _this.queuedUserOptions = [];\n _this.seriesRoot = new Group({ name: _this.id + \"-Series-root\" });\n _this.extraDebugStats = {};\n _this.container = undefined;\n _this.data = [];\n _this.padding = new Padding$1(20);\n _this.seriesAreaPadding = new Padding$1(0);\n _this.title = undefined;\n _this.subtitle = undefined;\n _this.footnote = undefined;\n _this.mode = 'standalone';\n _this._destroyed = false;\n _this.modules = {};\n _this.legendModules = {};\n _this._pendingFactoryUpdates = [];\n _this._performUpdateNoRenderCount = 0;\n _this._performUpdateType = ChartUpdateType.NONE;\n _this.seriesToUpdate = new Set();\n _this.performUpdateTrigger = debouncedCallback(function (_a) {\n var count = _a.count;\n return __awaiter$c(_this, void 0, void 0, function () {\n var error_1;\n return __generator$c(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (this._destroyed)\n return [2 /*return*/];\n _b.label = 1;\n case 1:\n _b.trys.push([1, 3, , 4]);\n return [4 /*yield*/, this.performUpdate(count)];\n case 2:\n _b.sent();\n return [3 /*break*/, 4];\n case 3:\n error_1 = _b.sent();\n this._lastPerformUpdateError = error_1;\n Logger.error('update error', error_1);\n return [3 /*break*/, 4];\n case 4: return [2 /*return*/];\n }\n });\n });\n });\n _this._axes = [];\n _this._series = [];\n _this.applyLegendOptions = undefined;\n _this.lastInteractionEvent = undefined;\n _this.pointerScheduler = debouncedAnimationFrame(function () {\n if (_this.lastInteractionEvent) {\n _this.handlePointer(_this.lastInteractionEvent);\n }\n _this.lastInteractionEvent = undefined;\n });\n _this.onSeriesNodeClick = function (event) {\n var seriesNodeClickEvent = __assign$K(__assign$K({}, event), { type: 'seriesNodeClick' });\n Object.defineProperty(seriesNodeClickEvent, 'series', {\n enumerable: false,\n // Should display the deprecation warning\n get: function () { return event.series; },\n });\n _this.fireEvent(seriesNodeClickEvent);\n };\n _this.onSeriesNodeDoubleClick = function (event) {\n var seriesNodeDoubleClick = __assign$K(__assign$K({}, event), { type: 'seriesNodeDoubleClick' });\n _this.fireEvent(seriesNodeDoubleClick);\n };\n var scene = resources === null || resources === void 0 ? void 0 : resources.scene;\n var element = (_a = resources === null || resources === void 0 ? void 0 : resources.element) !== null && _a !== void 0 ? _a : document.createElement('div');\n var container = resources === null || resources === void 0 ? void 0 : resources.container;\n var root = new Group({ name: 'root' });\n // Prevent the scene from rendering chart components in an invalid state\n // (before first layout is performed).\n root.visible = false;\n root.append(_this.seriesRoot);\n _this.axisGroup = new Group({ name: 'Axes', layer: true, zIndex: Layers.AXIS_ZINDEX });\n root.appendChild(_this.axisGroup);\n _this.element = element;\n element.classList.add('ag-chart-wrapper');\n element.style.position = 'relative';\n _this.scene = scene !== null && scene !== void 0 ? scene : new Scene({ document: document, overrideDevicePixelRatio: overrideDevicePixelRatio });\n _this.scene.debug.consoleLog = false;\n _this.scene.root = root;\n _this.scene.container = element;\n _this.autoSize = true;\n _this.chartEventManager = new ChartEventManager();\n _this.cursorManager = new CursorManager(element);\n _this.highlightManager = new HighlightManager();\n _this.interactionManager = new InteractionManager(element);\n _this.zoomManager = new ZoomManager();\n _this.dataService = new DataService(function () { return _this.series; });\n _this.layoutService = new LayoutService();\n _this.updateService = new UpdateService(function (type, _a) {\n if (type === void 0) { type = ChartUpdateType.FULL; }\n var forceNodeDataRefresh = _a.forceNodeDataRefresh;\n return _this.update(type, { forceNodeDataRefresh: forceNodeDataRefresh });\n });\n _this.seriesStateManager = new SeriesStateManager();\n _this.seriesLayerManager = new SeriesLayerManager(_this.seriesRoot);\n _this.callbackCache = new CallbackCache();\n _this.animationManager = new AnimationManager(_this.interactionManager);\n _this.animationManager.skipAnimations = true;\n _this.animationManager.play();\n _this.tooltip = new Tooltip(_this.scene.canvas.element, document, document.body);\n _this.tooltipManager = new TooltipManager(_this.tooltip, _this.interactionManager);\n _this.overlays = new ChartOverlays(_this.element);\n _this.highlight = new ChartHighlight();\n _this.container = container;\n _this.debug = false;\n SizeMonitor.observe(_this.element, function (size) {\n var _a;\n var width = size.width, height = size.height;\n if (!_this.autoSize) {\n return;\n }\n if (width === 0 && height === 0) {\n return;\n }\n var _b = __read$Q((_a = _this._lastAutoSize) !== null && _a !== void 0 ? _a : [], 2), _c = _b[0], autoWidth = _c === void 0 ? 0 : _c, _d = _b[1], authHeight = _d === void 0 ? 0 : _d;\n if (autoWidth === width && authHeight === height) {\n return;\n }\n _this._lastAutoSize = [width, height];\n _this.resize();\n });\n _this.layoutService.addListener('start-layout', function (e) { return _this.positionPadding(e.shrinkRect); });\n _this.layoutService.addListener('start-layout', function (e) { return _this.positionCaptions(e.shrinkRect); });\n // Add interaction listeners last so child components are registered first.\n _this.interactionManager.addListener('click', function (event) { return _this.onClick(event); });\n _this.interactionManager.addListener('dblclick', function (event) { return _this.onDoubleClick(event); });\n _this.interactionManager.addListener('hover', function (event) { return _this.onMouseMove(event); });\n _this.interactionManager.addListener('leave', function (event) { return _this.onLeave(event); });\n _this.interactionManager.addListener('page-left', function () { return _this.destroy(); });\n _this.interactionManager.addListener('wheel', function () { return _this.disablePointer(); });\n _this.animationManager.addListener('animation-frame', function (_) {\n _this.update(ChartUpdateType.SCENE_RENDER);\n });\n _this.highlightManager.addListener('highlight-change', function (event) { return _this.changeHighlightDatum(event); });\n _this.zoomManager.addListener('zoom-change', function (_) {\n return _this.update(ChartUpdateType.PROCESS_DATA, { forceNodeDataRefresh: true });\n });\n _this.attachLegend('category');\n return _this;\n }\n Chart.prototype.getOptions = function () {\n var _a;\n var queuedUserOptions = this.queuedUserOptions;\n var lastUpdateOptions = (_a = queuedUserOptions[queuedUserOptions.length - 1]) !== null && _a !== void 0 ? _a : this.userOptions;\n return jsonMerge([lastUpdateOptions]);\n };\n Chart.prototype.autoSizeChanged = function (value) {\n var style = this.element.style;\n if (value) {\n style.display = 'block';\n style.width = '100%';\n style.height = '100%';\n if (!this._lastAutoSize) {\n return;\n }\n this.resize();\n }\n else {\n style.display = 'inline-block';\n style.width = 'auto';\n style.height = 'auto';\n }\n };\n Chart.prototype.download = function (fileName, fileFormat) {\n this.scene.download(fileName, fileFormat);\n };\n Object.defineProperty(Chart.prototype, \"destroyed\", {\n get: function () {\n return this._destroyed;\n },\n enumerable: false,\n configurable: true\n });\n Chart.prototype.addModule = function (module) {\n if (this.modules[module.optionsKey] != null) {\n throw new Error('AG Charts - module already initialised: ' + module.optionsKey);\n }\n var moduleInstance = new module.instanceConstructor(this.getModuleContext());\n this.modules[module.optionsKey] = { instance: moduleInstance };\n this[module.optionsKey] = moduleInstance;\n };\n Chart.prototype.removeModule = function (module) {\n var _a, _b;\n (_b = (_a = this.modules[module.optionsKey]) === null || _a === void 0 ? void 0 : _a.instance) === null || _b === void 0 ? void 0 : _b.destroy();\n delete this.modules[module.optionsKey];\n delete this[module.optionsKey];\n };\n Chart.prototype.isModuleEnabled = function (module) {\n return this.modules[module.optionsKey] != null;\n };\n Chart.prototype.getModuleContext = function () {\n var _a = this, scene = _a.scene, animationManager = _a.animationManager, chartEventManager = _a.chartEventManager, cursorManager = _a.cursorManager, highlightManager = _a.highlightManager, interactionManager = _a.interactionManager, tooltipManager = _a.tooltipManager, zoomManager = _a.zoomManager, dataService = _a.dataService, layoutService = _a.layoutService, updateService = _a.updateService, seriesStateManager = _a.seriesStateManager, seriesLayerManager = _a.seriesLayerManager, mode = _a.mode, callbackCache = _a.callbackCache;\n return {\n scene: scene,\n animationManager: animationManager,\n chartEventManager: chartEventManager,\n cursorManager: cursorManager,\n highlightManager: highlightManager,\n interactionManager: interactionManager,\n tooltipManager: tooltipManager,\n zoomManager: zoomManager,\n dataService: dataService,\n layoutService: layoutService,\n updateService: updateService,\n mode: mode,\n seriesStateManager: seriesStateManager,\n seriesLayerManager: seriesLayerManager,\n callbackCache: callbackCache,\n };\n };\n Chart.prototype.destroy = function (opts) {\n var e_1, _a;\n var _b;\n if (this._destroyed) {\n return;\n }\n var keepTransferableResources = opts === null || opts === void 0 ? void 0 : opts.keepTransferableResources;\n var result = undefined;\n this._performUpdateType = ChartUpdateType.NONE;\n this._pendingFactoryUpdates.splice(0);\n this.tooltipManager.destroy();\n this.tooltip.destroy();\n (_b = this.legend) === null || _b === void 0 ? void 0 : _b.destroy();\n this.overlays.noData.hide();\n SizeMonitor.unobserve(this.element);\n try {\n for (var _c = __values$n(Object.entries(this.modules)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var _e = __read$Q(_d.value, 2), key = _e[0], module = _e[1];\n module.instance.destroy();\n delete this.modules[key];\n delete this[key];\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.interactionManager.destroy();\n this.animationManager.stop();\n if (keepTransferableResources) {\n this.scene.strip();\n result = { container: this.container, scene: this.scene, element: this.element };\n }\n else {\n this.scene.destroy();\n this.container = undefined;\n }\n this.removeAllSeries();\n this.seriesLayerManager.destroy();\n this.axes.forEach(function (a) { return a.destroy(); });\n this.axes = [];\n this.callbackCache.invalidateCache();\n this._destroyed = true;\n return result;\n };\n Chart.prototype.log = function () {\n var opts = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n opts[_i] = arguments[_i];\n }\n if (this.debug) {\n Logger.debug.apply(Logger, __spreadArray$u([], __read$Q(opts)));\n }\n };\n Chart.prototype.disablePointer = function (highlightOnly) {\n if (highlightOnly === void 0) { highlightOnly = false; }\n if (!highlightOnly) {\n this.tooltipManager.removeTooltip(this.id);\n }\n this.highlightManager.updateHighlight(this.id);\n if (this.lastInteractionEvent) {\n this.lastInteractionEvent = undefined;\n }\n };\n Chart.prototype.requestFactoryUpdate = function (cb) {\n var callbacks = this._pendingFactoryUpdates;\n var count = callbacks.length;\n if (count === 0) {\n callbacks.push(cb);\n this._processCallbacks().catch(function (e) { return Logger.errorOnce(e); });\n }\n else {\n // Factory callback process already running, the callback will be invoked asynchronously.\n // Clear the queue after the first callback to prevent unnecessary re-renderings.\n callbacks.splice(1, count - 1, cb);\n }\n };\n Chart.prototype._processCallbacks = function () {\n return __awaiter$c(this, void 0, void 0, function () {\n var callbacks, e_2;\n return __generator$c(this, function (_a) {\n switch (_a.label) {\n case 0:\n callbacks = this._pendingFactoryUpdates;\n _a.label = 1;\n case 1:\n if (!(callbacks.length > 0)) return [3 /*break*/, 7];\n if (!this.updatePending) return [3 /*break*/, 3];\n return [4 /*yield*/, sleep(1)];\n case 2:\n _a.sent();\n return [3 /*break*/, 1]; // Make sure to check queue has an item before continuing.\n case 3:\n _a.trys.push([3, 5, , 6]);\n return [4 /*yield*/, callbacks[0]()];\n case 4:\n _a.sent();\n this.callbackCache.invalidateCache();\n return [3 /*break*/, 6];\n case 5:\n e_2 = _a.sent();\n Logger.error('update error', e_2);\n return [3 /*break*/, 6];\n case 6:\n callbacks.shift();\n return [3 /*break*/, 1];\n case 7: return [2 /*return*/];\n }\n });\n });\n };\n Object.defineProperty(Chart.prototype, \"performUpdateType\", {\n get: function () {\n return this._performUpdateType;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Chart.prototype, \"updatePending\", {\n get: function () {\n return this._performUpdateType !== ChartUpdateType.NONE || this.lastInteractionEvent != null;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Chart.prototype, \"lastPerformUpdateError\", {\n get: function () {\n return this._lastPerformUpdateError;\n },\n enumerable: false,\n configurable: true\n });\n Chart.prototype.awaitUpdateCompletion = function () {\n return __awaiter$c(this, void 0, void 0, function () {\n return __generator$c(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.performUpdateTrigger.await()];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n Chart.prototype.update = function (type, opts) {\n var e_3, _a;\n if (type === void 0) { type = ChartUpdateType.FULL; }\n var _b = opts !== null && opts !== void 0 ? opts : {}, _c = _b.forceNodeDataRefresh, forceNodeDataRefresh = _c === void 0 ? false : _c, _d = _b.seriesToUpdate, seriesToUpdate = _d === void 0 ? this.series : _d;\n if (forceNodeDataRefresh) {\n this.series.forEach(function (series) { return series.markNodeDataDirty(); });\n }\n try {\n for (var seriesToUpdate_1 = __values$n(seriesToUpdate), seriesToUpdate_1_1 = seriesToUpdate_1.next(); !seriesToUpdate_1_1.done; seriesToUpdate_1_1 = seriesToUpdate_1.next()) {\n var series = seriesToUpdate_1_1.value;\n this.seriesToUpdate.add(series);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (seriesToUpdate_1_1 && !seriesToUpdate_1_1.done && (_a = seriesToUpdate_1.return)) _a.call(seriesToUpdate_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n if (type < this._performUpdateType) {\n this._performUpdateType = type;\n this.performUpdateTrigger.schedule();\n }\n };\n Chart.prototype.performUpdate = function (count) {\n var _a;\n return __awaiter$c(this, void 0, void 0, function () {\n var _b, performUpdateType, extraDebugStats, splits, _c, seriesRect_1, seriesUpdates, tooltipMeta, end;\n return __generator$c(this, function (_d) {\n switch (_d.label) {\n case 0:\n _b = this, performUpdateType = _b._performUpdateType, extraDebugStats = _b.extraDebugStats;\n this.log('Chart.performUpdate() - start', ChartUpdateType[performUpdateType]);\n splits = [performance.now()];\n _c = performUpdateType;\n switch (_c) {\n case ChartUpdateType.FULL: return [3 /*break*/, 1];\n case ChartUpdateType.PROCESS_DATA: return [3 /*break*/, 1];\n case ChartUpdateType.PERFORM_LAYOUT: return [3 /*break*/, 3];\n case ChartUpdateType.SERIES_UPDATE: return [3 /*break*/, 5];\n case ChartUpdateType.TOOLTIP_RECALCULATION: return [3 /*break*/, 7];\n case ChartUpdateType.SCENE_RENDER: return [3 /*break*/, 8];\n case ChartUpdateType.NONE: return [3 /*break*/, 10];\n }\n return [3 /*break*/, 11];\n case 1: return [4 /*yield*/, this.processData()];\n case 2:\n _d.sent();\n this.disablePointer(true);\n splits.push(performance.now());\n _d.label = 3;\n case 3:\n if (!this.checkFirstAutoSize())\n return [3 /*break*/, 11];\n return [4 /*yield*/, this.performLayout()];\n case 4:\n _d.sent();\n this.handleOverlays();\n this.log('Chart.performUpdate() - seriesRect', this.seriesRect);\n splits.push(performance.now());\n _d.label = 5;\n case 5:\n seriesRect_1 = this.seriesRect;\n seriesUpdates = __spreadArray$u([], __read$Q(this.seriesToUpdate)).map(function (series) { return series.update({ seriesRect: seriesRect_1 }); });\n this.seriesToUpdate.clear();\n return [4 /*yield*/, Promise.all(seriesUpdates)];\n case 6:\n _d.sent();\n splits.push(performance.now());\n _d.label = 7;\n case 7:\n tooltipMeta = this.tooltipManager.getTooltipMeta(this.id);\n if (performUpdateType < ChartUpdateType.SERIES_UPDATE && ((_a = tooltipMeta === null || tooltipMeta === void 0 ? void 0 : tooltipMeta.event) === null || _a === void 0 ? void 0 : _a.type) === 'hover') {\n this.handlePointer(tooltipMeta.event);\n }\n _d.label = 8;\n case 8: return [4 /*yield*/, this.scene.render({ debugSplitTimes: splits, extraDebugStats: extraDebugStats })];\n case 9:\n _d.sent();\n this.extraDebugStats = {};\n _d.label = 10;\n case 10:\n // Do nothing.\n this._performUpdateType = ChartUpdateType.NONE;\n _d.label = 11;\n case 11:\n end = performance.now();\n this.log('Chart.performUpdate() - end', {\n chart: this,\n durationMs: Math.round((end - splits[0]) * 100) / 100,\n count: count,\n performUpdateType: ChartUpdateType[performUpdateType],\n });\n return [2 /*return*/];\n }\n });\n });\n };\n Chart.prototype.checkFirstAutoSize = function () {\n if (this.autoSize && !this._lastAutoSize) {\n var count = this._performUpdateNoRenderCount++;\n var backOffMs = (count ^ 2) * 10;\n if (count < 5) {\n // Reschedule if canvas size hasn't been set yet to avoid a race.\n this._performUpdateType = ChartUpdateType.PERFORM_LAYOUT;\n this.performUpdateTrigger.schedule(backOffMs);\n this.log('Chart.checkFirstAutoSize() - backing off until first size update', backOffMs);\n return false;\n }\n // After several failed passes, continue and accept there maybe a redundant\n // render. Sometimes this case happens when we already have the correct\n // width/height, and we end up never rendering the chart in that scenario.\n this.log('Chart.checkFirstAutoSize() - timeout for first size update.');\n }\n this._performUpdateNoRenderCount = 0;\n return true;\n };\n Object.defineProperty(Chart.prototype, \"axes\", {\n get: function () {\n return this._axes;\n },\n set: function (values) {\n var _this = this;\n var removedAxes = new Set();\n this._axes.forEach(function (axis) {\n axis.detachAxis(_this.axisGroup);\n removedAxes.add(axis);\n });\n // make linked axes go after the regular ones (simulates stable sort by `linkedTo` property)\n this._axes = values.filter(function (a) { return !a.linkedTo; }).concat(values.filter(function (a) { return a.linkedTo; }));\n this._axes.forEach(function (axis) {\n axis.attachAxis(_this.axisGroup);\n removedAxes.delete(axis);\n });\n this.zoomManager.updateAxes(this._axes);\n removedAxes.forEach(function (axis) { return axis.destroy(); });\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Chart.prototype, \"series\", {\n get: function () {\n return this._series;\n },\n set: function (values) {\n var _this = this;\n this.removeAllSeries();\n values.forEach(function (series) { return _this.addSeries(series); });\n },\n enumerable: false,\n configurable: true\n });\n Chart.prototype.addSeries = function (series) {\n var allSeries = this.series;\n var canAdd = allSeries.indexOf(series) < 0;\n if (canAdd) {\n allSeries.push(series);\n if (series.rootGroup.parent == null) {\n this.seriesLayerManager.requestGroup(series);\n }\n this.initSeries(series);\n return true;\n }\n return false;\n };\n Chart.prototype.initSeries = function (series) {\n series.chart = this;\n if (!series.data) {\n series.data = this.data;\n }\n this.addSeriesListeners(series);\n series.addChartEventListeners();\n };\n Chart.prototype.removeAllSeries = function () {\n var _this = this;\n this.series.forEach(function (series) {\n series.removeEventListener('nodeClick', _this.onSeriesNodeClick);\n series.removeEventListener('nodeDoubleClick', _this.onSeriesNodeDoubleClick);\n series.destroy();\n series.chart = undefined;\n });\n this._series = []; // using `_series` instead of `series` to prevent infinite recursion\n };\n Chart.prototype.addSeriesListeners = function (series) {\n if (this.hasEventListener('seriesNodeClick')) {\n series.addEventListener('nodeClick', this.onSeriesNodeClick);\n }\n if (this.hasEventListener('seriesNodeDoubleClick')) {\n series.addEventListener('nodeDoubleClick', this.onSeriesNodeDoubleClick);\n }\n };\n Chart.prototype.updateAllSeriesListeners = function () {\n var _this = this;\n this.series.forEach(function (series) {\n series.removeEventListener('nodeClick', _this.onSeriesNodeClick);\n series.removeEventListener('nodeDoubleClick', _this.onSeriesNodeDoubleClick);\n _this.addSeriesListeners(series);\n });\n };\n Chart.prototype.assignSeriesToAxes = function () {\n var _this = this;\n this.axes.forEach(function (axis) {\n axis.boundSeries = _this.series.filter(function (s) {\n var seriesAxis = s.axes[axis.direction];\n return seriesAxis === axis;\n });\n });\n };\n Chart.prototype.assignAxesToSeries = function () {\n var _this = this;\n // This method has to run before `assignSeriesToAxes`.\n var directionToAxesMap = {};\n this.axes.forEach(function (axis) {\n var _a;\n var direction = axis.direction;\n var directionAxes = ((_a = directionToAxesMap[direction]) !== null && _a !== void 0 ? _a : (directionToAxesMap[direction] = []));\n directionAxes.push(axis);\n });\n this.series.forEach(function (series) {\n series.directions.forEach(function (direction) {\n var directionAxes = directionToAxesMap[direction];\n if (!directionAxes) {\n Logger.warn(\"no available axis for direction [\" + direction + \"]; check series and axes configuration.\");\n return;\n }\n var seriesKeys = series.getKeys(direction);\n var newAxis = _this.findMatchingAxis(directionAxes, series.getKeys(direction));\n if (!newAxis) {\n Logger.warn(\"no matching axis for direction [\" + direction + \"] and keys [\" + seriesKeys + \"]; check series and axes configuration.\");\n return;\n }\n series.axes[direction] = newAxis;\n });\n });\n };\n Chart.prototype.findMatchingAxis = function (directionAxes, directionKeys) {\n var e_4, _a, e_5, _b;\n try {\n for (var directionAxes_1 = __values$n(directionAxes), directionAxes_1_1 = directionAxes_1.next(); !directionAxes_1_1.done; directionAxes_1_1 = directionAxes_1.next()) {\n var axis = directionAxes_1_1.value;\n var axisKeys = axis.keys;\n if (!axisKeys.length) {\n return axis;\n }\n if (!directionKeys) {\n continue;\n }\n try {\n for (var directionKeys_1 = (e_5 = void 0, __values$n(directionKeys)), directionKeys_1_1 = directionKeys_1.next(); !directionKeys_1_1.done; directionKeys_1_1 = directionKeys_1.next()) {\n var directionKey = directionKeys_1_1.value;\n if (axisKeys.indexOf(directionKey) >= 0) {\n return axis;\n }\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (directionKeys_1_1 && !directionKeys_1_1.done && (_b = directionKeys_1.return)) _b.call(directionKeys_1);\n }\n finally { if (e_5) throw e_5.error; }\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (directionAxes_1_1 && !directionAxes_1_1.done && (_a = directionAxes_1.return)) _a.call(directionAxes_1);\n }\n finally { if (e_4) throw e_4.error; }\n }\n };\n Chart.prototype.resize = function (width, height) {\n var _a, _b, _c, _d;\n width !== null && width !== void 0 ? width : (width = (_a = this.width) !== null && _a !== void 0 ? _a : (this.autoSize ? (_b = this._lastAutoSize) === null || _b === void 0 ? void 0 : _b[0] : this.scene.canvas.width));\n height !== null && height !== void 0 ? height : (height = (_c = this.height) !== null && _c !== void 0 ? _c : (this.autoSize ? (_d = this._lastAutoSize) === null || _d === void 0 ? void 0 : _d[1] : this.scene.canvas.height));\n this.log('Chart.resize()', { width: width, height: height });\n if (!width || !height || !Number.isFinite(width) || !Number.isFinite(height))\n return;\n if (this.scene.resize(width, height)) {\n this.disablePointer();\n this.update(ChartUpdateType.PERFORM_LAYOUT, { forceNodeDataRefresh: true });\n }\n };\n Chart.prototype.processData = function () {\n return __awaiter$c(this, void 0, void 0, function () {\n var dataController, seriesPromises;\n return __generator$c(this, function (_a) {\n switch (_a.label) {\n case 0:\n if (this.axes.length > 0) {\n this.assignAxesToSeries();\n this.assignSeriesToAxes();\n }\n dataController = new DataController();\n seriesPromises = this.series.map(function (s) { return s.processData(dataController); });\n return [4 /*yield*/, dataController.execute()];\n case 1:\n _a.sent();\n return [4 /*yield*/, Promise.all(seriesPromises)];\n case 2:\n _a.sent();\n return [4 /*yield*/, this.updateLegend()];\n case 3:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n Chart.prototype.placeLabels = function () {\n var e_6, _a;\n var visibleSeries = [];\n var data = [];\n try {\n for (var _b = __values$n(this.series), _c = _b.next(); !_c.done; _c = _b.next()) {\n var series = _c.value;\n if (!series.visible) {\n continue;\n }\n var labelData = series.getLabelData();\n if (!(labelData && isPointLabelDatum(labelData[0]))) {\n continue;\n }\n data.push(labelData);\n visibleSeries.push(series);\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_6) throw e_6.error; }\n }\n var seriesRect = this.seriesRect;\n var labels = seriesRect && data.length > 0\n ? placeLabels(data, { x: 0, y: 0, width: seriesRect.width, height: seriesRect.height })\n : [];\n return new Map(labels.map(function (l, i) { return [visibleSeries[i], l]; }));\n };\n Chart.prototype.attachLegend = function (legendType) {\n var _a;\n if (this.legendType === legendType && this.legend) {\n return this.legend;\n }\n (_a = this.legend) === null || _a === void 0 ? void 0 : _a.destroy();\n this.legend = undefined;\n var ctx = this.getModuleContext();\n var legend = getLegend(legendType, ctx);\n legend.attachLegend(this.scene.root);\n this.legend = legend;\n this.legendType = legendType;\n return legend;\n };\n Chart.prototype.setLegendInit = function (initLegend) {\n this.applyLegendOptions = initLegend;\n };\n Chart.prototype.updateLegend = function () {\n var _a;\n return __awaiter$c(this, void 0, void 0, function () {\n var legendData, legendType, legend;\n return __generator$c(this, function (_b) {\n legendData = [];\n this.series\n .filter(function (s) { return s.showInLegend; })\n .forEach(function (series) {\n var data = series.getLegendData();\n legendData.push.apply(legendData, __spreadArray$u([], __read$Q(data)));\n });\n legendType = legendData.length > 0 ? legendData[0].legendType : 'category';\n legend = this.attachLegend(legendType);\n (_a = this.applyLegendOptions) === null || _a === void 0 ? void 0 : _a.call(this, legend);\n if (legendType === 'category') {\n this.validateLegendData(legendData);\n }\n legend.data = legendData;\n return [2 /*return*/];\n });\n });\n };\n Chart.prototype.validateLegendData = function (legendData) {\n var _this = this;\n // Validate each series that shares a legend item label uses the same fill colour\n var labelMarkerFills = {};\n legendData.forEach(function (d) {\n var _a;\n var _b, _c, _d;\n var _e, _f;\n var seriesType = (_b = _this.series.find(function (s) { return s.id === d.seriesId; })) === null || _b === void 0 ? void 0 : _b.type;\n if (!seriesType)\n return;\n var dc = d;\n (_c = labelMarkerFills[seriesType]) !== null && _c !== void 0 ? _c : (labelMarkerFills[seriesType] = (_a = {}, _a[dc.label.text] = new Set(), _a));\n (_d = (_e = labelMarkerFills[seriesType])[_f = dc.label.text]) !== null && _d !== void 0 ? _d : (_e[_f] = new Set());\n if (dc.marker.fill != null) {\n labelMarkerFills[seriesType][dc.label.text].add(dc.marker.fill);\n }\n });\n Object.keys(labelMarkerFills).forEach(function (seriesType) {\n Object.keys(labelMarkerFills[seriesType]).forEach(function (name) {\n var fills = labelMarkerFills[seriesType][name];\n if (fills.size > 1) {\n Logger.warnOnce(\"legend item '\" + name + \"' has multiple fill colors, this may cause unexpected behaviour.\");\n }\n });\n });\n };\n Chart.prototype.performLayout = function () {\n return __awaiter$c(this, void 0, void 0, function () {\n var _a, width, height, shrinkRect;\n return __generator$c(this, function (_b) {\n if (this.scene.root != null) {\n this.scene.root.visible = true;\n }\n _a = this.scene, width = _a.width, height = _a.height;\n shrinkRect = new BBox(0, 0, width, height);\n (shrinkRect = this.layoutService.dispatchPerformLayout('start-layout', { shrinkRect: shrinkRect }).shrinkRect);\n (shrinkRect = this.layoutService.dispatchPerformLayout('before-series', { shrinkRect: shrinkRect }).shrinkRect);\n return [2 /*return*/, shrinkRect];\n });\n });\n };\n Chart.prototype.positionPadding = function (shrinkRect) {\n var padding = this.padding;\n shrinkRect.shrink(padding.left, 'left');\n shrinkRect.shrink(padding.top, 'top');\n shrinkRect.shrink(padding.right, 'right');\n shrinkRect.shrink(padding.bottom, 'bottom');\n return { shrinkRect: shrinkRect };\n };\n Chart.prototype.positionCaptions = function (shrinkRect) {\n var _a;\n var _b = this, title = _b.title, subtitle = _b.subtitle, footnote = _b.footnote;\n var newShrinkRect = shrinkRect.clone();\n var updateCaption = function (caption) {\n var _a;\n var defaultCaptionHeight = shrinkRect.height / 10;\n var captionLineHeight = (_a = caption.lineHeight) !== null && _a !== void 0 ? _a : caption.fontSize * Text.defaultLineHeightRatio;\n var maxWidth = shrinkRect.width;\n var maxHeight = Math.max(captionLineHeight, defaultCaptionHeight);\n caption.computeTextWrap(maxWidth, maxHeight);\n };\n var positionTopAndShrinkBBox = function (caption) {\n var _a;\n var baseY = newShrinkRect.y;\n caption.node.x = newShrinkRect.x + newShrinkRect.width / 2;\n caption.node.y = baseY;\n caption.node.textBaseline = 'top';\n updateCaption(caption);\n var bbox = caption.node.computeBBox();\n // As the bbox (x,y) ends up at a different location than specified above, we need to\n // take it into consideration when calculating how much space needs to be reserved to\n // accommodate the caption.\n var bboxHeight = Math.ceil(bbox.y - baseY + bbox.height + ((_a = caption.spacing) !== null && _a !== void 0 ? _a : 0));\n newShrinkRect.shrink(bboxHeight, 'top');\n };\n var positionBottomAndShrinkBBox = function (caption) {\n var _a;\n var baseY = newShrinkRect.y + newShrinkRect.height;\n caption.node.x = newShrinkRect.x + newShrinkRect.width / 2;\n caption.node.y = baseY;\n caption.node.textBaseline = 'bottom';\n updateCaption(caption);\n var bbox = caption.node.computeBBox();\n var bboxHeight = Math.ceil(baseY - bbox.y + ((_a = caption.spacing) !== null && _a !== void 0 ? _a : 0));\n newShrinkRect.shrink(bboxHeight, 'bottom');\n };\n if (title) {\n title.node.visible = title.enabled;\n if (title.node.visible) {\n positionTopAndShrinkBBox(title);\n }\n }\n if (subtitle) {\n subtitle.node.visible = (_a = ((title === null || title === void 0 ? void 0 : title.enabled) && subtitle.enabled)) !== null && _a !== void 0 ? _a : false;\n if (subtitle.node.visible) {\n positionTopAndShrinkBBox(subtitle);\n }\n }\n if (footnote) {\n footnote.node.visible = footnote.enabled;\n if (footnote.node.visible) {\n positionBottomAndShrinkBBox(footnote);\n }\n }\n return { shrinkRect: newShrinkRect };\n };\n Chart.prototype.getSeriesRect = function () {\n return this.seriesRect;\n };\n // x/y are local canvas coordinates in CSS pixels, not actual pixels\n Chart.prototype.pickSeriesNode = function (point, exactMatchOnly, maxDistance) {\n var e_7, _a;\n var _b, _c;\n var start = performance.now();\n // Disable 'nearest match' options if looking for exact matches only\n var pickModes = exactMatchOnly ? [SeriesNodePickMode.EXACT_SHAPE_MATCH] : undefined;\n // Iterate through series in reverse, as later declared series appears on top of earlier\n // declared series.\n var reverseSeries = __spreadArray$u([], __read$Q(this.series)).reverse();\n var result = undefined;\n try {\n for (var reverseSeries_1 = __values$n(reverseSeries), reverseSeries_1_1 = reverseSeries_1.next(); !reverseSeries_1_1.done; reverseSeries_1_1 = reverseSeries_1.next()) {\n var series = reverseSeries_1_1.value;\n if (!series.visible || !series.rootGroup.visible) {\n continue;\n }\n var _d = (_b = series.pickNode(point, pickModes)) !== null && _b !== void 0 ? _b : {}, match = _d.match, distance = _d.distance;\n if (!match || distance == null) {\n continue;\n }\n if ((!result || result.distance > distance) && distance <= (maxDistance !== null && maxDistance !== void 0 ? maxDistance : Infinity)) {\n result = { series: series, distance: distance, datum: match };\n }\n if (distance === 0) {\n break;\n }\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (reverseSeries_1_1 && !reverseSeries_1_1.done && (_a = reverseSeries_1.return)) _a.call(reverseSeries_1);\n }\n finally { if (e_7) throw e_7.error; }\n }\n this.extraDebugStats['pickSeriesNode'] = Math.round(((_c = this.extraDebugStats['pickSeriesNode']) !== null && _c !== void 0 ? _c : 0) + (performance.now() - start));\n return result;\n };\n Chart.prototype.onMouseMove = function (event) {\n this.lastInteractionEvent = event;\n this.pointerScheduler.schedule();\n this.extraDebugStats['mouseX'] = event.offsetX;\n this.extraDebugStats['mouseY'] = event.offsetY;\n this.update(ChartUpdateType.SCENE_RENDER);\n };\n Chart.prototype.onLeave = function (event) {\n if (this.tooltip.pointerLeftOntoTooltip(event)) {\n return;\n }\n this.disablePointer();\n };\n Chart.prototype.handlePointer = function (event) {\n var _this = this;\n var _a = this, lastPick = _a.lastPick, hoverRect = _a.hoverRect;\n var offsetX = event.offsetX, offsetY = event.offsetY;\n var disablePointer = function (highlightOnly) {\n if (highlightOnly === void 0) { highlightOnly = false; }\n if (lastPick) {\n // Cursor moved from a non-marker node to empty space.\n _this.disablePointer(highlightOnly);\n }\n };\n if (!(hoverRect === null || hoverRect === void 0 ? void 0 : hoverRect.containsPoint(offsetX, offsetY))) {\n disablePointer();\n return;\n }\n // Handle node highlighting and tooltip toggling when pointer within `tooltip.range`\n this.handlePointerTooltip(event, disablePointer);\n // Handle node highlighting and mouse cursor when pointer withing `series[].nodeClickRange`\n this.handlePointerNode(event);\n };\n Chart.prototype.handlePointerTooltip = function (event, disablePointer) {\n var _a, _b;\n var _c = this, lastPick = _c.lastPick, tooltip = _c.tooltip;\n var range = tooltip.range;\n var pageX = event.pageX, pageY = event.pageY, offsetX = event.offsetX, offsetY = event.offsetY;\n var pixelRange;\n if (typeof range === 'number' && Number.isFinite(range)) {\n pixelRange = range;\n }\n var pick = this.pickSeriesNode({ x: offsetX, y: offsetY }, range === 'exact', pixelRange);\n if (!pick) {\n this.tooltipManager.updateTooltip(this.id);\n if (this.highlight.range === 'tooltip')\n disablePointer(true);\n return;\n }\n var isNewDatum = this.highlight.range === 'node' || !lastPick || lastPick.datum !== pick.datum;\n var html;\n if (isNewDatum) {\n html = pick.series.getTooltipHtml(pick.datum);\n if (this.highlight.range === 'tooltip') {\n this.highlightManager.updateHighlight(this.id, pick.datum);\n }\n }\n else if (lastPick) {\n lastPick.event = event.sourceEvent;\n }\n var isPixelRange = pixelRange != null;\n var tooltipEnabled = this.tooltip.enabled && pick.series.tooltip.enabled;\n var exactlyMatched = range === 'exact' && pick.distance === 0;\n var rangeMatched = range === 'nearest' || isPixelRange || exactlyMatched;\n var shouldUpdateTooltip = tooltipEnabled && rangeMatched && (!isNewDatum || html !== undefined);\n var position = {\n xOffset: pick.datum.series.tooltip.position.xOffset,\n yOffset: pick.datum.series.tooltip.position.yOffset,\n };\n var meta = this.mergePointerDatum({ pageX: pageX, pageY: pageY, offsetX: offsetX, offsetY: offsetY, event: event, showArrow: pick.series.tooltip.showArrow, position: position }, pick.datum);\n meta.enableInteraction = (_b = (_a = pick.series.tooltip.interaction) === null || _a === void 0 ? void 0 : _a.enabled) !== null && _b !== void 0 ? _b : false;\n if (shouldUpdateTooltip) {\n this.tooltipManager.updateTooltip(this.id, meta, html);\n }\n };\n Chart.prototype.handlePointerNode = function (event) {\n var _this = this;\n var found = this.checkSeriesNodeRange(event, function (series, datum) {\n if (series.hasEventListener('nodeClick') || series.hasEventListener('nodeDoubleClick')) {\n _this.cursorManager.updateCursor('chart', 'pointer');\n }\n if (_this.highlight.range === 'node') {\n _this.highlightManager.updateHighlight(_this.id, datum);\n }\n });\n if (!found) {\n this.cursorManager.updateCursor('chart');\n if (this.highlight.range === 'node') {\n this.highlightManager.updateHighlight(this.id);\n }\n }\n };\n Chart.prototype.onClick = function (event) {\n if (this.checkSeriesNodeClick(event)) {\n this.update(ChartUpdateType.SERIES_UPDATE);\n return;\n }\n this.fireEvent({\n type: 'click',\n event: event.sourceEvent,\n });\n };\n Chart.prototype.onDoubleClick = function (event) {\n if (this.checkSeriesNodeDoubleClick(event)) {\n this.update(ChartUpdateType.SERIES_UPDATE);\n return;\n }\n this.fireEvent({\n type: 'doubleClick',\n event: event.sourceEvent,\n });\n };\n Chart.prototype.checkSeriesNodeClick = function (event) {\n return this.checkSeriesNodeRange(event, function (series, datum) {\n return series.fireNodeClickEvent(event.sourceEvent, datum);\n });\n };\n Chart.prototype.checkSeriesNodeDoubleClick = function (event) {\n return this.checkSeriesNodeRange(event, function (series, datum) {\n return series.fireNodeDoubleClickEvent(event.sourceEvent, datum);\n });\n };\n Chart.prototype.checkSeriesNodeRange = function (event, callback) {\n var nearestNode = this.pickSeriesNode({ x: event.offsetX, y: event.offsetY }, false);\n var datum = nearestNode === null || nearestNode === void 0 ? void 0 : nearestNode.datum;\n var nodeClickRange = datum === null || datum === void 0 ? void 0 : datum.series.nodeClickRange;\n // First check if we should trigger the callback based on nearest node\n if (datum && nodeClickRange === 'nearest') {\n callback(datum.series, datum);\n return true;\n }\n // Then check for an exact match or within the given range\n var pixelRange;\n if (typeof nodeClickRange === 'number' && Number.isFinite(nodeClickRange)) {\n pixelRange = nodeClickRange;\n }\n var pick = this.pickSeriesNode({ x: event.offsetX, y: event.offsetY }, nodeClickRange === 'exact', pixelRange);\n if (!pick)\n return false;\n // Then if we've picked a node within the pixel range, or exactly, trigger the callback\n var isPixelRange = pixelRange != null;\n var exactlyMatched = nodeClickRange === 'exact' && pick.distance === 0;\n if (isPixelRange || exactlyMatched) {\n callback(pick.series, pick.datum);\n return true;\n }\n return false;\n };\n Chart.prototype.mergePointerDatum = function (meta, datum) {\n var type = datum.series.tooltip.position.type;\n if (type === 'node' && datum.nodeMidPoint) {\n var _a = datum.nodeMidPoint, x = _a.x, y = _a.y;\n var canvas = this.scene.canvas;\n var point = datum.series.contentGroup.inverseTransformPoint(x, y);\n var canvasRect = canvas.element.getBoundingClientRect();\n return __assign$K(__assign$K({}, meta), { pageX: Math.round(canvasRect.left + window.scrollX + point.x), pageY: Math.round(canvasRect.top + window.scrollY + point.y), offsetX: Math.round(point.x), offsetY: Math.round(point.y) });\n }\n return meta;\n };\n Chart.prototype.changeHighlightDatum = function (event) {\n var _a, _b;\n var seriesToUpdate = new Set();\n var _c = (_a = event.currentHighlight) !== null && _a !== void 0 ? _a : {}, _d = _c.series, newSeries = _d === void 0 ? undefined : _d, newDatum = _c.datum;\n var _e = (_b = event.previousHighlight) !== null && _b !== void 0 ? _b : {}, _f = _e.series, lastSeries = _f === void 0 ? undefined : _f, lastDatum = _e.datum;\n if (lastSeries) {\n seriesToUpdate.add(lastSeries);\n }\n if (newSeries) {\n seriesToUpdate.add(newSeries);\n }\n // Adjust cursor if a specific datum is highlighted, rather than just a series.\n if ((lastSeries === null || lastSeries === void 0 ? void 0 : lastSeries.cursor) && lastDatum) {\n this.cursorManager.updateCursor(lastSeries.id);\n }\n if ((newSeries === null || newSeries === void 0 ? void 0 : newSeries.cursor) && newDatum) {\n this.cursorManager.updateCursor(newSeries.id, newSeries.cursor);\n }\n this.lastPick = event.currentHighlight ? { datum: event.currentHighlight } : undefined;\n var updateAll = newSeries == null || lastSeries == null;\n if (updateAll) {\n this.update(ChartUpdateType.SERIES_UPDATE);\n }\n else {\n this.update(ChartUpdateType.SERIES_UPDATE, { seriesToUpdate: seriesToUpdate });\n }\n };\n Chart.prototype.waitForUpdate = function (timeoutMs) {\n if (timeoutMs === void 0) { timeoutMs = 5000; }\n return __awaiter$c(this, void 0, void 0, function () {\n var start;\n return __generator$c(this, function (_a) {\n switch (_a.label) {\n case 0:\n start = performance.now();\n _a.label = 1;\n case 1:\n if (!(this._pendingFactoryUpdates.length > 0 || this.updatePending)) return [3 /*break*/, 3];\n if (performance.now() - start > timeoutMs) {\n throw new Error('waitForUpdate() timeout reached.');\n }\n return [4 /*yield*/, sleep(5)];\n case 2:\n _a.sent();\n return [3 /*break*/, 1];\n case 3: return [4 /*yield*/, this.awaitUpdateCompletion()];\n case 4:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n Chart.prototype.handleOverlays = function () {\n this.handleNoDataOverlay();\n };\n Chart.prototype.handleNoDataOverlay = function () {\n var shouldDisplayNoDataOverlay = !this.series.some(function (s) { return s.hasData(); });\n var rect = this.getSeriesRect();\n if (shouldDisplayNoDataOverlay && rect) {\n this.overlays.noData.show(rect);\n }\n else {\n this.overlays.noData.hide();\n }\n };\n __decorate$1L([\n ActionOnSet({\n newValue: function (value) {\n this.scene.debug.consoleLog = value;\n if (this.animationManager) {\n this.animationManager.debug = value;\n }\n },\n })\n ], Chart.prototype, \"debug\", void 0);\n __decorate$1L([\n ActionOnSet({\n newValue: function (value) {\n if (this.destroyed)\n return;\n value.appendChild(this.element);\n },\n oldValue: function (value) {\n value.removeChild(this.element);\n },\n })\n ], Chart.prototype, \"container\", void 0);\n __decorate$1L([\n ActionOnSet({\n newValue: function (value) {\n var _a;\n (_a = this.series) === null || _a === void 0 ? void 0 : _a.forEach(function (series) { return (series.data = value); });\n },\n })\n ], Chart.prototype, \"data\", void 0);\n __decorate$1L([\n ActionOnSet({\n newValue: function (value) {\n this.resize(value);\n },\n })\n ], Chart.prototype, \"width\", void 0);\n __decorate$1L([\n ActionOnSet({\n newValue: function (value) {\n this.resize(undefined, value);\n },\n })\n ], Chart.prototype, \"height\", void 0);\n __decorate$1L([\n ActionOnSet({\n changeValue: function (value) {\n this.autoSizeChanged(value);\n },\n }),\n Validate(BOOLEAN)\n ], Chart.prototype, \"autoSize\", void 0);\n __decorate$1L([\n ActionOnSet({\n newValue: function (value) {\n var _a;\n (_a = this.scene.root) === null || _a === void 0 ? void 0 : _a.appendChild(value.node);\n },\n oldValue: function (oldValue) {\n var _a;\n (_a = this.scene.root) === null || _a === void 0 ? void 0 : _a.removeChild(oldValue.node);\n },\n })\n ], Chart.prototype, \"title\", void 0);\n __decorate$1L([\n ActionOnSet({\n newValue: function (value) {\n var _a;\n (_a = this.scene.root) === null || _a === void 0 ? void 0 : _a.appendChild(value.node);\n },\n oldValue: function (oldValue) {\n var _a;\n (_a = this.scene.root) === null || _a === void 0 ? void 0 : _a.removeChild(oldValue.node);\n },\n })\n ], Chart.prototype, \"subtitle\", void 0);\n __decorate$1L([\n ActionOnSet({\n newValue: function (value) {\n var _a;\n (_a = this.scene.root) === null || _a === void 0 ? void 0 : _a.appendChild(value.node);\n },\n oldValue: function (oldValue) {\n var _a;\n (_a = this.scene.root) === null || _a === void 0 ? void 0 : _a.removeChild(oldValue.node);\n },\n })\n ], Chart.prototype, \"footnote\", void 0);\n __decorate$1L([\n Validate(STRING_UNION('standalone', 'integrated'))\n ], Chart.prototype, \"mode\", void 0);\n return Chart;\n}(Observable));\n\nvar __read$P = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nfunction clamp(x, min, max) {\n return Math.max(min, Math.min(max, x));\n}\n/**\n * Maps a discrete domain to a continuous numeric range.\n */\nvar BandScale$5 = /** @class */ (function () {\n function BandScale() {\n this.type = 'band';\n this.cache = null;\n this.cacheProps = ['_domain', 'range', '_paddingInner', '_paddingOuter', 'round', 'interval'];\n /**\n * Maps datum to its index in the {@link domain} array.\n * Used to check for duplicate datums (not allowed).\n */\n this.index = new Map();\n /**\n * The output range values for datum at each index.\n */\n this.ordinalRange = [];\n /**\n * Contains unique datums only. Since `{}` is used in place of `Map`\n * for IE11 compatibility, the datums are converted `toString` before\n * the uniqueness check.\n */\n this._domain = [];\n this.range = [0, 1];\n this._bandwidth = 1;\n this._rawBandwidth = 1;\n /**\n * The ratio of the range that is reserved for space between bands.\n */\n this._paddingInner = 0;\n /**\n * The ratio of the range that is reserved for space before the first\n * and after the last band.\n */\n this._paddingOuter = 0;\n this.round = false;\n }\n BandScale.prototype.didChange = function () {\n var _this = this;\n var cache = this.cache;\n var didChange = !cache || this.cacheProps.some(function (p) { return _this[p] !== cache[p]; });\n if (didChange) {\n this.cache = {};\n this.cacheProps.forEach(function (p) { return (_this.cache[p] = _this[p]); });\n return true;\n }\n return false;\n };\n BandScale.prototype.refresh = function () {\n if (this.didChange()) {\n this.update();\n }\n };\n Object.defineProperty(BandScale.prototype, \"domain\", {\n get: function () {\n return this._domain;\n },\n set: function (values) {\n var domain = [];\n this.index = new Map();\n var index = this.index;\n // In case one wants to have duplicate domain values, for example, two 'Italy' categories,\n // one should use objects rather than strings for domain values like so:\n // { toString: () => 'Italy' }\n // { toString: () => 'Italy' }\n values.forEach(function (value) {\n if (index.get(value) === undefined) {\n index.set(value, domain.push(value) - 1);\n }\n });\n this._domain = domain;\n },\n enumerable: false,\n configurable: true\n });\n BandScale.prototype.ticks = function () {\n this.refresh();\n var _a = this.interval, interval = _a === void 0 ? 1 : _a;\n var step = Math.abs(Math.round(interval));\n return this._domain.filter(function (_, i) { return i % step === 0; });\n };\n BandScale.prototype.convert = function (d) {\n this.refresh();\n var i = this.index.get(d);\n if (i === undefined) {\n return NaN;\n }\n var r = this.ordinalRange[i];\n if (r === undefined) {\n return NaN;\n }\n return r;\n };\n BandScale.prototype.invert = function (position) {\n this.refresh();\n var index = this.ordinalRange.findIndex(function (p) { return p === position; });\n return this.domain[index];\n };\n Object.defineProperty(BandScale.prototype, \"bandwidth\", {\n get: function () {\n this.refresh();\n return this._bandwidth;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BandScale.prototype, \"rawBandwidth\", {\n get: function () {\n this.refresh();\n return this._rawBandwidth;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BandScale.prototype, \"padding\", {\n get: function () {\n return this._paddingInner;\n },\n set: function (value) {\n value = clamp(value, 0, 1);\n this._paddingInner = value;\n this._paddingOuter = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BandScale.prototype, \"paddingInner\", {\n get: function () {\n return this._paddingInner;\n },\n set: function (value) {\n this._paddingInner = clamp(value, 0, 1);\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(BandScale.prototype, \"paddingOuter\", {\n get: function () {\n return this._paddingOuter;\n },\n set: function (value) {\n this._paddingOuter = clamp(value, 0, 1);\n },\n enumerable: false,\n configurable: true\n });\n BandScale.prototype.update = function () {\n var count = this._domain.length;\n if (count === 0) {\n return;\n }\n var round = this.round;\n var paddingInner = this._paddingInner;\n var paddingOuter = this._paddingOuter;\n var _a = __read$P(this.range, 2), r0 = _a[0], r1 = _a[1];\n var width = r1 - r0;\n var rawStep = width / Math.max(1, count + 2 * paddingOuter - paddingInner);\n var step = round ? Math.floor(rawStep) : rawStep;\n var fullBandWidth = step * (count - paddingInner);\n var x0 = r0 + (width - fullBandWidth) / 2;\n var start = round ? Math.round(x0) : x0;\n var bw = step * (1 - paddingInner);\n var bandwidth = round ? Math.round(bw) : bw;\n var rawBandwidth = rawStep * (1 - paddingInner);\n var values = [];\n for (var i = 0; i < count; i++) {\n values.push(start + step * i);\n }\n this._bandwidth = bandwidth;\n this._rawBandwidth = rawBandwidth;\n this.ordinalRange = values;\n };\n return BandScale;\n}());\n\nvar __extends$2q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1K = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar Line = /** @class */ (function (_super) {\n __extends$2q(Line, _super);\n function Line() {\n var _this = _super.call(this) || this;\n _this.x1 = 0;\n _this.y1 = 0;\n _this.x2 = 0;\n _this.y2 = 0;\n _this.restoreOwnStyles();\n return _this;\n }\n Line.prototype.computeBBox = function () {\n return new BBox(this.x1, this.y1, this.x2 - this.x1, this.y2 - this.y1);\n };\n Line.prototype.isPointInPath = function (_x, _y) {\n return false;\n };\n Line.prototype.render = function (renderCtx) {\n var _a;\n var ctx = renderCtx.ctx, forceRender = renderCtx.forceRender, stats = renderCtx.stats;\n if (this.dirty === RedrawType.NONE && !forceRender) {\n if (stats)\n stats.nodesSkipped += this.nodeCount.count;\n return;\n }\n this.computeTransformMatrix();\n this.matrix.toContext(ctx);\n var x1 = this.x1;\n var y1 = this.y1;\n var x2 = this.x2;\n var y2 = this.y2;\n // Align to the pixel grid if the line is strictly vertical\n // or horizontal (but not both, i.e. a dot).\n if (x1 === x2) {\n var x = Math.round(x1) + (Math.floor(this.strokeWidth) % 2) / 2;\n x1 = x;\n x2 = x;\n }\n else if (y1 === y2) {\n var y = Math.round(y1) + (Math.floor(this.strokeWidth) % 2) / 2;\n y1 = y;\n y2 = y;\n }\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y2);\n this.fillStroke(ctx);\n (_a = this.fillShadow) === null || _a === void 0 ? void 0 : _a.markClean();\n _super.prototype.render.call(this, renderCtx);\n };\n Line.className = 'Line';\n Line.defaultStyles = Object.assign({}, Shape.defaultStyles, {\n fill: undefined,\n strokeWidth: 1,\n });\n __decorate$1K([\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], Line.prototype, \"x1\", void 0);\n __decorate$1K([\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], Line.prototype, \"y1\", void 0);\n __decorate$1K([\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], Line.prototype, \"x2\", void 0);\n __decorate$1K([\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], Line.prototype, \"y2\", void 0);\n return Line;\n}(Shape));\n\nvar __decorate$1J = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar Caption = /** @class */ (function () {\n function Caption() {\n this.node = new Text();\n this.enabled = false;\n this.text = undefined;\n this.fontSize = 10;\n this.fontFamily = 'sans-serif';\n this.spacing = Caption.PADDING;\n this.lineHeight = undefined;\n this.maxWidth = undefined;\n this.maxHeight = undefined;\n this.wrapping = 'always';\n var node = this.node;\n node.textAlign = 'center';\n node.pointerEvents = PointerEvents.None;\n }\n Caption.prototype.computeTextWrap = function (containerWidth, containerHeight) {\n var _a, _b;\n var _c = this, text = _c.text, wrapping = _c.wrapping;\n var maxWidth = Math.min((_a = this.maxWidth) !== null && _a !== void 0 ? _a : Infinity, containerWidth);\n var maxHeight = (_b = this.maxHeight) !== null && _b !== void 0 ? _b : containerHeight;\n if (!isFinite(maxWidth) && !isFinite(maxHeight)) {\n this.node.text = text;\n return;\n }\n var wrapped = Text.wrap(text !== null && text !== void 0 ? text : '', maxWidth, maxHeight, this, wrapping);\n this.node.text = wrapped;\n };\n Caption.PADDING = 10;\n __decorate$1J([\n Validate(BOOLEAN)\n ], Caption.prototype, \"enabled\", void 0);\n __decorate$1J([\n Validate(OPT_STRING),\n ProxyPropertyOnWrite('node')\n ], Caption.prototype, \"text\", void 0);\n __decorate$1J([\n Validate(OPT_FONT_STYLE),\n ProxyPropertyOnWrite('node')\n ], Caption.prototype, \"fontStyle\", void 0);\n __decorate$1J([\n Validate(OPT_FONT_WEIGHT),\n ProxyPropertyOnWrite('node')\n ], Caption.prototype, \"fontWeight\", void 0);\n __decorate$1J([\n Validate(NUMBER(0)),\n ProxyPropertyOnWrite('node')\n ], Caption.prototype, \"fontSize\", void 0);\n __decorate$1J([\n Validate(STRING),\n ProxyPropertyOnWrite('node')\n ], Caption.prototype, \"fontFamily\", void 0);\n __decorate$1J([\n Validate(OPT_COLOR_STRING),\n ProxyPropertyOnWrite('node', 'fill')\n ], Caption.prototype, \"color\", void 0);\n __decorate$1J([\n Validate(OPT_NUMBER(0))\n ], Caption.prototype, \"spacing\", void 0);\n __decorate$1J([\n Validate(OPT_NUMBER(0))\n ], Caption.prototype, \"lineHeight\", void 0);\n __decorate$1J([\n Validate(OPT_NUMBER(0))\n ], Caption.prototype, \"maxWidth\", void 0);\n __decorate$1J([\n Validate(OPT_NUMBER(0))\n ], Caption.prototype, \"maxHeight\", void 0);\n __decorate$1J([\n Validate(TEXT_WRAP)\n ], Caption.prototype, \"wrapping\", void 0);\n return Caption;\n}());\n\nfunction areArrayNumbersEqual(arrA, arrB) {\n return arrA.length === arrB.length && arrA.every(function (item, i) { return Number(item) === Number(arrB[i]); });\n}\n\nvar __read$O = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar ContinuousScale = /** @class */ (function () {\n function ContinuousScale(domain, range) {\n this.domain = domain;\n this.range = range;\n this.nice = false;\n this.tickCount = ContinuousScale.defaultTickCount;\n this.minTickCount = 0;\n this.maxTickCount = Infinity;\n this.niceDomain = null;\n this.strictClampByDefault = false;\n this.cache = null;\n this.cacheProps = ['domain', 'range', 'nice', 'tickCount', 'minTickCount', 'maxTickCount'];\n }\n ContinuousScale.prototype.transform = function (x) {\n return x;\n };\n ContinuousScale.prototype.transformInvert = function (x) {\n return x;\n };\n ContinuousScale.prototype.fromDomain = function (d) {\n if (typeof d === 'number') {\n return d;\n }\n else if (d instanceof Date) {\n return d.getTime();\n }\n return NaN;\n };\n ContinuousScale.prototype.getDomain = function () {\n if (this.nice) {\n this.refresh();\n if (this.niceDomain) {\n return this.niceDomain;\n }\n }\n return this.domain;\n };\n ContinuousScale.prototype.convert = function (x, params) {\n var _this = this;\n var _a;\n if (!this.domain || this.domain.length < 2) {\n return NaN;\n }\n this.refresh();\n var strict = (_a = params === null || params === void 0 ? void 0 : params.strict) !== null && _a !== void 0 ? _a : this.strictClampByDefault;\n var domain = this.getDomain().map(function (d) { return _this.transform(d); });\n var _b = __read$O(domain, 2), d0 = _b[0], d1 = _b[1];\n var range = this.range;\n var _c = __read$O(range, 2), r0 = _c[0], r1 = _c[1];\n x = this.transform(x);\n if (x < d0) {\n return strict ? NaN : r0;\n }\n else if (x > d1) {\n return strict ? NaN : r1;\n }\n if (d0 === d1) {\n return (r0 + r1) / 2;\n }\n else if (x === d0) {\n return r0;\n }\n else if (x === d1) {\n return r1;\n }\n return (r0 + ((this.fromDomain(x) - this.fromDomain(d0)) / (this.fromDomain(d1) - this.fromDomain(d0))) * (r1 - r0));\n };\n ContinuousScale.prototype.invert = function (x) {\n var _this = this;\n this.refresh();\n var domain = this.getDomain().map(function (d) { return _this.transform(d); });\n var _a = __read$O(domain, 2), d0 = _a[0], d1 = _a[1];\n var range = this.range;\n var _b = __read$O(range, 2), r0 = _b[0], r1 = _b[1];\n var isReversed = r0 > r1;\n var rMin = isReversed ? r1 : r0;\n var rMax = isReversed ? r0 : r1;\n var d;\n if (x < rMin) {\n return isReversed ? d1 : d0;\n }\n else if (x > rMax) {\n return isReversed ? d0 : d1;\n }\n else if (r0 === r1) {\n d = this.toDomain((this.fromDomain(d0) + this.fromDomain(d1)) / 2);\n }\n else {\n d = this.toDomain(this.fromDomain(d0) + ((x - r0) / (r1 - r0)) * (this.fromDomain(d1) - this.fromDomain(d0)));\n }\n return this.transformInvert(d);\n };\n ContinuousScale.prototype.didChange = function () {\n var _this = this;\n var cache = this.cache;\n var didChange = !cache || this.cacheProps.some(function (p) { return _this[p] !== cache[p]; });\n if (didChange) {\n this.cache = {};\n this.cacheProps.forEach(function (p) { return (_this.cache[p] = _this[p]); });\n return true;\n }\n return false;\n };\n ContinuousScale.prototype.refresh = function () {\n if (this.didChange()) {\n this.update();\n }\n };\n ContinuousScale.prototype.isDenseInterval = function (_a) {\n var start = _a.start, stop = _a.stop, interval = _a.interval, count = _a.count;\n var range = this.range;\n var domain = stop - start;\n var min = Math.min(range[0], range[1]);\n var max = Math.max(range[0], range[1]);\n var availableRange = max - min;\n var step = typeof interval === 'number' ? interval : 1;\n count !== null && count !== void 0 ? count : (count = domain / step);\n if (count >= availableRange) {\n Logger.warn(\"the configured tick interval results in more than 1 tick per pixel, ignoring. Supply a larger tick interval or omit this configuration.\");\n return true;\n }\n return false;\n };\n ContinuousScale.defaultTickCount = 5;\n ContinuousScale.defaultMaxTickCount = 6;\n return ContinuousScale;\n}());\n\nvar __extends$2p = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nfunction ticks (start, stop, count, minCount, maxCount) {\n if (count < 2) {\n return range(start, stop, stop - start);\n }\n var step = tickStep(start, stop, count, minCount, maxCount);\n if (isNaN(step)) {\n return new NumericTicks(0);\n }\n start = Math.ceil(start / step) * step;\n stop = Math.floor(stop / step) * step;\n return range(start, stop, step);\n}\nvar tickMultipliers = [1, 2, 5, 10];\nfunction tickStep(a, b, count, minCount, maxCount) {\n if (minCount === void 0) { minCount = 0; }\n if (maxCount === void 0) { maxCount = Infinity; }\n var rawStep = (b - a) / count;\n var power = Math.floor(Math.log10(rawStep));\n var step = Math.pow(10, power);\n var m = tickMultipliers\n .map(function (multiplier) {\n var s = multiplier * step;\n var c = Math.ceil((b - a) / s);\n var isWithinBounds = c >= minCount && c <= maxCount;\n var diffCount = Math.abs(c - count);\n return { multiplier: multiplier, isWithinBounds: isWithinBounds, diffCount: diffCount };\n })\n .sort(function (a, b) {\n if (a.isWithinBounds !== b.isWithinBounds) {\n return a.isWithinBounds ? -1 : 1;\n }\n return a.diffCount - b.diffCount;\n })[0].multiplier;\n if (!m || isNaN(m)) {\n return NaN;\n }\n return m * step;\n}\nfunction singleTickDomain(a, b) {\n var power = Math.floor(Math.log10(b - a));\n var step = Math.pow(10, power);\n return tickMultipliers\n .map(function (multiplier) {\n var s = multiplier * step;\n var start = Math.floor(a / s) * s;\n var end = Math.ceil(b / s) * s;\n var error = 1 - (b - a) / (end - start);\n var domain = [start, end];\n return { error: error, domain: domain };\n })\n .sort(function (a, b) { return a.error - b.error; })[0].domain;\n}\nvar NumericTicks = /** @class */ (function (_super) {\n __extends$2p(NumericTicks, _super);\n function NumericTicks(fractionDigits, elements) {\n var _this = _super.call(this) || this;\n if (elements) {\n for (var i = 0, n = elements.length; i < n; i++) {\n _this[i] = elements[i];\n }\n }\n _this.fractionDigits = fractionDigits;\n return _this;\n }\n return NumericTicks;\n}(Array));\nfunction range(start, stop, step) {\n var countDigits = function (expNo) {\n var _a, _b;\n var parts = expNo.split('e');\n return Math.max(((_b = (_a = parts[0].split('.')[1]) === null || _a === void 0 ? void 0 : _a.length) !== null && _b !== void 0 ? _b : 0) - Number(parts[1]), 0);\n };\n var fractionalDigits = countDigits((step % 1).toExponential());\n var f = Math.pow(10, fractionalDigits);\n var n = Math.ceil((stop - start) / step);\n var values = new NumericTicks(fractionalDigits);\n for (var i = 0; i <= n; i++) {\n var value = start + step * i;\n values.push(Math.round(value * f) / f);\n }\n return values;\n}\n\nvar CONSTANTS = {\n periods: ['AM', 'PM'],\n days: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],\n shortDays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],\n months: [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ],\n shortMonths: ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],\n};\nfunction dayOfYear(date, startOfYear) {\n if (startOfYear === void 0) { startOfYear = new Date(date.getFullYear(), 0, 1); }\n var startOffset = date.getTimezoneOffset() - startOfYear.getTimezoneOffset();\n var timeDiff = date.getTime() - startOfYear.getTime() + startOffset * 60000;\n var timeOneDay = 3600000 * 24;\n return Math.floor(timeDiff / timeOneDay);\n}\nfunction weekOfYear(date, startDay) {\n var startOfYear = new Date(date.getFullYear(), 0, 1);\n var startOfYearDay = startOfYear.getDay();\n var firstWeekStartOffset = (startDay - startOfYearDay + 7) % 7;\n var startOffset = new Date(date.getFullYear(), 0, firstWeekStartOffset + 1);\n if (startOffset <= date) {\n return Math.floor(dayOfYear(date, startOffset) / 7) + 1;\n }\n // Days before week 1 are in week 0.\n return 0;\n}\nvar SUNDAY = 0;\nvar MONDAY = 1;\nvar THURSDAY = 4;\nfunction isoWeekOfYear(date, year) {\n if (year === void 0) { year = date.getFullYear(); }\n var firstOfYear = new Date(year, 0, 1);\n var firstOfYearDay = firstOfYear.getDay();\n var firstThursdayOffset = (THURSDAY - firstOfYearDay + 7) % 7;\n var startOffset = new Date(year, 0, firstThursdayOffset - (THURSDAY - MONDAY) + 1);\n if (startOffset <= date) {\n return Math.floor(dayOfYear(date, startOffset) / 7) + 1;\n }\n // Days before week 1 are in week 52/53 of previous year.\n return isoWeekOfYear(date, year - 1);\n}\nfunction timezone(date) {\n var offset = date.getTimezoneOffset();\n var unsignedOffset = Math.abs(offset);\n var sign = offset > 0 ? '-' : '+';\n return \"\" + sign + pad(Math.floor(unsignedOffset / 60), 2, '0') + pad(Math.floor(unsignedOffset % 60), 2, '0');\n}\nvar FORMATTERS = {\n a: function (d) { return CONSTANTS.shortDays[d.getDay()]; },\n A: function (d) { return CONSTANTS.days[d.getDay()]; },\n b: function (d) { return CONSTANTS.shortMonths[d.getMonth()]; },\n B: function (d) { return CONSTANTS.months[d.getMonth()]; },\n c: '%x, %X',\n d: function (d, p) { return pad(d.getDate(), 2, p !== null && p !== void 0 ? p : '0'); },\n e: '%_d',\n f: function (d, p) { return pad(d.getMilliseconds() * 1000, 6, p !== null && p !== void 0 ? p : '0'); },\n H: function (d, p) { return pad(d.getHours(), 2, p !== null && p !== void 0 ? p : '0'); },\n I: function (d, p) {\n var hours = d.getHours() % 12;\n return hours === 0 ? '12' : pad(hours, 2, p !== null && p !== void 0 ? p : '0');\n },\n j: function (d, p) { return pad(dayOfYear(d) + 1, 3, p !== null && p !== void 0 ? p : '0'); },\n m: function (d, p) { return pad(d.getMonth() + 1, 2, p !== null && p !== void 0 ? p : '0'); },\n M: function (d, p) { return pad(d.getMinutes(), 2, p !== null && p !== void 0 ? p : '0'); },\n L: function (d, p) { return pad(d.getMilliseconds(), 3, p !== null && p !== void 0 ? p : '0'); },\n p: function (d) { return (d.getHours() < 12 ? 'AM' : 'PM'); },\n Q: function (d) { return String(d.getTime()); },\n s: function (d) { return String(Math.floor(d.getTime() / 1000)); },\n S: function (d, p) { return pad(d.getSeconds(), 2, p !== null && p !== void 0 ? p : '0'); },\n u: function (d) {\n var day = d.getDay();\n if (day < 1)\n day += 7;\n return String(day % 7);\n },\n U: function (d, p) { return pad(weekOfYear(d, SUNDAY), 2, p !== null && p !== void 0 ? p : '0'); },\n V: function (d, p) { return pad(isoWeekOfYear(d), 2, p !== null && p !== void 0 ? p : '0'); },\n w: function (d, p) { return pad(d.getDay(), 2, p !== null && p !== void 0 ? p : '0'); },\n W: function (d, p) { return pad(weekOfYear(d, MONDAY), 2, p !== null && p !== void 0 ? p : '0'); },\n x: '%-m/%-d/%Y',\n X: '%-I:%M:%S %p',\n y: function (d, p) { return pad(d.getFullYear() % 100, 2, p !== null && p !== void 0 ? p : '0'); },\n Y: function (d, p) { return pad(d.getFullYear(), 4, p !== null && p !== void 0 ? p : '0'); },\n Z: function (d) { return timezone(d); },\n '%': function () { return '%'; },\n};\nvar PADS = {\n _: ' ',\n '0': '0',\n '-': '',\n};\nfunction pad(value, size, padChar) {\n var output = String(Math.floor(value));\n if (output.length >= size) {\n return output;\n }\n return \"\" + padChar.repeat(size - output.length) + output;\n}\nfunction buildFormatter(formatString) {\n var formatParts = [];\n while (formatString.length > 0) {\n var nextEscapeIdx = formatString.indexOf('%');\n if (nextEscapeIdx !== 0) {\n var literalPart = nextEscapeIdx > 0 ? formatString.substring(0, nextEscapeIdx) : formatString;\n formatParts.push(literalPart);\n }\n if (nextEscapeIdx < 0)\n break;\n var maybePadSpecifier = formatString[nextEscapeIdx + 1];\n var maybePad = PADS[maybePadSpecifier];\n if (maybePad != null) {\n nextEscapeIdx++;\n }\n var maybeFormatterSpecifier = formatString[nextEscapeIdx + 1];\n var maybeFormatter = FORMATTERS[maybeFormatterSpecifier];\n if (typeof maybeFormatter === 'function') {\n formatParts.push([maybeFormatter, maybePad]);\n }\n else if (typeof maybeFormatter === 'string') {\n var formatter = buildFormatter(maybeFormatter);\n formatParts.push([formatter, maybePad]);\n }\n else {\n formatParts.push(\"\" + (maybePad !== null && maybePad !== void 0 ? maybePad : '') + maybeFormatterSpecifier);\n }\n formatString = formatString.substring(nextEscapeIdx + 2);\n }\n return function (dateTime) {\n var dateTimeAsDate = typeof dateTime === 'number' ? new Date(dateTime) : dateTime;\n return formatParts.map(function (c) { return (typeof c === 'string' ? c : c[0](dateTimeAsDate, c[1])); }).join('');\n };\n}\n\nvar __extends$2o = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __values$m = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$N = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$t = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar _a$3;\nvar DefaultTimeFormats;\n(function (DefaultTimeFormats) {\n DefaultTimeFormats[DefaultTimeFormats[\"MILLISECOND\"] = 0] = \"MILLISECOND\";\n DefaultTimeFormats[DefaultTimeFormats[\"SECOND\"] = 1] = \"SECOND\";\n DefaultTimeFormats[DefaultTimeFormats[\"MINUTE\"] = 2] = \"MINUTE\";\n DefaultTimeFormats[DefaultTimeFormats[\"HOUR\"] = 3] = \"HOUR\";\n DefaultTimeFormats[DefaultTimeFormats[\"WEEK_DAY\"] = 4] = \"WEEK_DAY\";\n DefaultTimeFormats[DefaultTimeFormats[\"SHORT_MONTH\"] = 5] = \"SHORT_MONTH\";\n DefaultTimeFormats[DefaultTimeFormats[\"MONTH\"] = 6] = \"MONTH\";\n DefaultTimeFormats[DefaultTimeFormats[\"SHORT_YEAR\"] = 7] = \"SHORT_YEAR\";\n DefaultTimeFormats[DefaultTimeFormats[\"YEAR\"] = 8] = \"YEAR\";\n})(DefaultTimeFormats || (DefaultTimeFormats = {}));\nvar formatStrings = (_a$3 = {},\n _a$3[DefaultTimeFormats.MILLISECOND] = '.%L',\n _a$3[DefaultTimeFormats.SECOND] = ':%S',\n _a$3[DefaultTimeFormats.MINUTE] = '%I:%M',\n _a$3[DefaultTimeFormats.HOUR] = '%I %p',\n _a$3[DefaultTimeFormats.WEEK_DAY] = '%a',\n _a$3[DefaultTimeFormats.SHORT_MONTH] = '%b %d',\n _a$3[DefaultTimeFormats.MONTH] = '%B',\n _a$3[DefaultTimeFormats.SHORT_YEAR] = '%y',\n _a$3[DefaultTimeFormats.YEAR] = '%Y',\n _a$3);\nfunction toNumber(x) {\n return x instanceof Date ? x.getTime() : x;\n}\nvar TimeScale$1 = /** @class */ (function (_super) {\n __extends$2o(TimeScale, _super);\n function TimeScale() {\n var _this = _super.call(this, [new Date(2022, 11, 7), new Date(2022, 11, 8)], [0, 1]) || this;\n _this.type = 'time';\n _this.cacheProps = [\n 'domain',\n 'range',\n 'nice',\n 'tickCount',\n 'interval',\n 'minTickCount',\n 'maxTickCount',\n ];\n _this.year = year;\n _this.month = month;\n _this.week = sunday;\n _this.day = day;\n _this.hour = hour;\n _this.minute = minute;\n _this.second = second;\n _this.millisecond = millisecond;\n /**\n * Array of default tick intervals in the following format:\n *\n * [\n * interval (unit of time),\n * number of units (step),\n * the length of that number of units in milliseconds\n * ]\n */\n _this.tickIntervals = [\n [_this.second, 1, durationSecond],\n [_this.second, 5, 5 * durationSecond],\n [_this.second, 15, 15 * durationSecond],\n [_this.second, 30, 30 * durationSecond],\n [_this.minute, 1, durationMinute],\n [_this.minute, 5, 5 * durationMinute],\n [_this.minute, 15, 15 * durationMinute],\n [_this.minute, 30, 30 * durationMinute],\n [_this.hour, 1, durationHour],\n [_this.hour, 3, 3 * durationHour],\n [_this.hour, 6, 6 * durationHour],\n [_this.hour, 12, 12 * durationHour],\n [_this.day, 1, durationDay],\n [_this.day, 2, 2 * durationDay],\n [_this.week, 1, durationWeek],\n [_this.week, 2, 2 * durationWeek],\n [_this.week, 3, 3 * durationWeek],\n [_this.month, 1, durationMonth],\n [_this.month, 2, 2 * durationMonth],\n [_this.month, 3, 3 * durationMonth],\n [_this.month, 4, 4 * durationMonth],\n [_this.month, 6, 6 * durationMonth],\n [_this.year, 1, durationYear],\n ];\n return _this;\n }\n TimeScale.prototype.toDomain = function (d) {\n return new Date(d);\n };\n TimeScale.prototype.calculateDefaultTickFormat = function (ticks) {\n var e_1, _a;\n if (ticks === void 0) { ticks = []; }\n var defaultTimeFormat = DefaultTimeFormats.YEAR;\n var updateFormat = function (format) {\n if (format < defaultTimeFormat) {\n defaultTimeFormat = format;\n }\n };\n try {\n for (var ticks_1 = __values$m(ticks), ticks_1_1 = ticks_1.next(); !ticks_1_1.done; ticks_1_1 = ticks_1.next()) {\n var value = ticks_1_1.value;\n var format = this.getLowestGranularityFormat(value);\n updateFormat(format);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (ticks_1_1 && !ticks_1_1.done && (_a = ticks_1.return)) _a.call(ticks_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var firstTick = toNumber(ticks[0]);\n var lastTick = toNumber(ticks[ticks.length - 1]);\n var startYear = new Date(firstTick).getFullYear();\n var stopYear = new Date(lastTick).getFullYear();\n var yearChange = stopYear - startYear > 0;\n return this.buildFormatString(defaultTimeFormat, yearChange);\n };\n TimeScale.prototype.buildFormatString = function (defaultTimeFormat, yearChange) {\n var formatStringArray = [formatStrings[defaultTimeFormat]];\n var timeEndIndex = 0;\n var domain = this.getDomain();\n var start = Math.min.apply(Math, __spreadArray$t([], __read$N(domain.map(toNumber))));\n var stop = Math.max.apply(Math, __spreadArray$t([], __read$N(domain.map(toNumber))));\n var extent = stop - start;\n switch (defaultTimeFormat) {\n case DefaultTimeFormats.SECOND:\n if (extent / durationMinute > 1) {\n formatStringArray.push(formatStrings[DefaultTimeFormats.MINUTE]);\n }\n // fall through deliberately\n case DefaultTimeFormats.MINUTE:\n if (extent / durationHour > 1) {\n formatStringArray.push(formatStrings[DefaultTimeFormats.HOUR]);\n }\n // fall through deliberately\n case DefaultTimeFormats.HOUR:\n timeEndIndex = formatStringArray.length;\n if (extent / durationDay > 1) {\n formatStringArray.push(formatStrings[DefaultTimeFormats.WEEK_DAY]);\n }\n // fall through deliberately\n case DefaultTimeFormats.WEEK_DAY:\n if (extent / durationWeek > 1 || yearChange) {\n // if it's more than a week or there is a year change, don't show week day\n var weekDayIndex = formatStringArray.indexOf(formatStrings[DefaultTimeFormats.WEEK_DAY]);\n if (weekDayIndex > -1) {\n formatStringArray.splice(weekDayIndex, 1, formatStrings[DefaultTimeFormats.SHORT_MONTH]);\n }\n }\n // fall through deliberately\n case DefaultTimeFormats.SHORT_MONTH:\n case DefaultTimeFormats.MONTH:\n if (extent / durationYear > 1 || yearChange) {\n formatStringArray.push(formatStrings[DefaultTimeFormats.YEAR]);\n }\n }\n if (timeEndIndex < formatStringArray.length) {\n // Insert a gap between all date components.\n formatStringArray = __spreadArray$t(__spreadArray$t([], __read$N(formatStringArray.slice(0, timeEndIndex))), [\n formatStringArray.slice(timeEndIndex).join(' '),\n ]);\n }\n if (timeEndIndex > 0) {\n // Reverse order of time components, since they should be displayed in descending\n // granularity.\n formatStringArray = __spreadArray$t(__spreadArray$t([], __read$N(formatStringArray.slice(0, timeEndIndex).reverse())), __read$N(formatStringArray.slice(timeEndIndex)));\n if (timeEndIndex < formatStringArray.length) {\n // Insert a gap between time and date components.\n formatStringArray.splice(timeEndIndex, 0, ' ');\n }\n }\n return formatStringArray.join('');\n };\n TimeScale.prototype.getLowestGranularityFormat = function (value) {\n if (this.second.floor(value) < value) {\n return DefaultTimeFormats.MILLISECOND;\n }\n else if (this.minute.floor(value) < value) {\n return DefaultTimeFormats.SECOND;\n }\n else if (this.hour.floor(value) < value) {\n return DefaultTimeFormats.MINUTE;\n }\n else if (this.day.floor(value) < value) {\n return DefaultTimeFormats.HOUR;\n }\n else if (this.month.floor(value) < value) {\n if (this.week.floor(value) < value) {\n return DefaultTimeFormats.WEEK_DAY;\n }\n return DefaultTimeFormats.SHORT_MONTH;\n }\n else if (this.year.floor(value) < value) {\n return DefaultTimeFormats.MONTH;\n }\n return DefaultTimeFormats.YEAR;\n };\n TimeScale.prototype.defaultTickFormat = function (ticks) {\n var formatString = this.calculateDefaultTickFormat(ticks);\n return function (date) { return buildFormatter(formatString)(date); };\n };\n /**\n * @param options Tick interval options.\n * @param options.start The start time (timestamp).\n * @param options.stop The end time (timestamp).\n * @param options.count Number of intervals between ticks.\n */\n TimeScale.prototype.getTickInterval = function (_a) {\n var _b;\n var start = _a.start, stop = _a.stop, count = _a.count, minCount = _a.minCount, maxCount = _a.maxCount;\n var tickIntervals = this.tickIntervals;\n var countableTimeInterval;\n var step;\n var tickCount = count !== null && count !== void 0 ? count : ContinuousScale.defaultTickCount;\n var target = Math.abs(stop - start) / Math.max(tickCount, 1);\n var i = 0;\n while (i < tickIntervals.length && target > tickIntervals[i][2]) {\n i++;\n }\n if (i === 0) {\n step = Math.max(tickStep(start, stop, tickCount, minCount, maxCount), 1);\n countableTimeInterval = this.millisecond;\n }\n else if (i === tickIntervals.length) {\n var y0 = start / durationYear;\n var y1 = stop / durationYear;\n step = tickStep(y0, y1, tickCount, minCount, maxCount);\n countableTimeInterval = this.year;\n }\n else {\n var diff0 = target - tickIntervals[i - 1][2];\n var diff1 = tickIntervals[i][2] - target;\n var index = diff0 < diff1 ? i - 1 : i;\n _b = __read$N(tickIntervals[index], 2), countableTimeInterval = _b[0], step = _b[1];\n }\n return countableTimeInterval.every(step);\n };\n TimeScale.prototype.invert = function (y) {\n return new Date(_super.prototype.invert.call(this, y));\n };\n /**\n * Returns uniformly-spaced dates that represent the scale's domain.\n */\n TimeScale.prototype.ticks = function () {\n if (!this.domain || this.domain.length < 2) {\n return [];\n }\n this.refresh();\n var _a = __read$N(this.getDomain().map(toNumber), 2), t0 = _a[0], t1 = _a[1];\n if (this.interval !== undefined) {\n return this.getTicksForInterval({ start: t0, stop: t1 });\n }\n if (this.nice) {\n var tickCount = this.tickCount;\n if (tickCount === 2) {\n return this.niceDomain;\n }\n if (tickCount === 1) {\n return this.niceDomain.slice(0, 1);\n }\n }\n return this.getDefaultTicks({ start: t0, stop: t1 });\n };\n TimeScale.prototype.getDefaultTicks = function (_a) {\n var start = _a.start, stop = _a.stop;\n var t = this.getTickInterval({\n start: start,\n stop: stop,\n count: this.tickCount,\n minCount: this.minTickCount,\n maxCount: this.maxTickCount,\n });\n return t ? t.range(new Date(start), new Date(stop)) : []; // inclusive stop\n };\n TimeScale.prototype.getTicksForInterval = function (_a) {\n var start = _a.start, stop = _a.stop;\n var _b = this, interval = _b.interval, tickIntervals = _b.tickIntervals;\n if (!interval) {\n return [];\n }\n if (interval instanceof TimeInterval) {\n var ticks_2 = interval.range(new Date(start), new Date(stop));\n if (this.isDenseInterval({ start: start, stop: stop, interval: interval, count: ticks_2.length })) {\n return this.getDefaultTicks({ start: start, stop: stop });\n }\n return ticks_2;\n }\n var absInterval = Math.abs(interval);\n if (this.isDenseInterval({ start: start, stop: stop, interval: absInterval })) {\n return this.getDefaultTicks({ start: start, stop: stop });\n }\n var reversedInterval = __spreadArray$t([], __read$N(tickIntervals));\n reversedInterval.reverse();\n var timeInterval = reversedInterval.find(function (tickInterval) { return absInterval % tickInterval[2] === 0; });\n if (timeInterval) {\n var i = timeInterval[0].every(absInterval / (timeInterval[2] / timeInterval[1]));\n return i.range(new Date(start), new Date(stop));\n }\n var date = new Date(start);\n var stopDate = new Date(stop);\n var ticks = [];\n while (date <= stopDate) {\n ticks.push(date);\n date = new Date(date);\n date.setMilliseconds(date.getMilliseconds() + absInterval);\n }\n return ticks;\n };\n /**\n * Returns a time format function suitable for displaying tick values.\n * @param specifier If the specifier string is provided, this method is equivalent to\n * the {@link TimeLocaleObject.format} method.\n * If no specifier is provided, this method returns the default time format function.\n */\n TimeScale.prototype.tickFormat = function (_a) {\n var ticks = _a.ticks, specifier = _a.specifier;\n return specifier == undefined ? this.defaultTickFormat(ticks) : buildFormatter(specifier);\n };\n TimeScale.prototype.update = function () {\n if (!this.domain || this.domain.length < 2) {\n return;\n }\n if (this.nice) {\n this.updateNiceDomain();\n }\n };\n /**\n * Extends the domain so that it starts and ends on nice round values.\n * This method typically modifies the scale’s domain, and may only extend the bounds to the nearest round value.\n */\n TimeScale.prototype.updateNiceDomain = function () {\n var maxAttempts = 4;\n var _a = __read$N(this.domain, 2), d0 = _a[0], d1 = _a[1];\n for (var i = 0; i < maxAttempts; i++) {\n this.updateNiceDomainIteration(d0, d1);\n var _b = __read$N(this.niceDomain, 2), n0 = _b[0], n1 = _b[1];\n if (toNumber(d0) === toNumber(n0) && toNumber(d1) === toNumber(n1)) {\n break;\n }\n d0 = n0;\n d1 = n1;\n }\n };\n TimeScale.prototype.updateNiceDomainIteration = function (d0, d1) {\n var start = toNumber(d0);\n var stop = toNumber(d1);\n var interval = this.interval;\n var i;\n if (interval instanceof TimeInterval) {\n i = interval;\n }\n else {\n var tickCount = typeof interval === 'number' ? (stop - start) / Math.max(interval, 1) : this.tickCount;\n i = this.getTickInterval({\n start: start,\n stop: stop,\n count: tickCount,\n minCount: this.minTickCount,\n maxCount: this.maxTickCount,\n });\n }\n if (i) {\n var intervalRange = i.range(d0, d1, true);\n var n0 = intervalRange[0];\n var n1 = intervalRange[intervalRange.length - 1];\n this.niceDomain = [n0, n1];\n }\n };\n return TimeScale;\n}(ContinuousScale));\n\nvar __read$M = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$s = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar _a$2;\nvar group = function (content) { return \"(\" + content + \")\"; };\nvar optionalGroup = function (content) { return group(content) + \"?\"; };\nvar nonCapturingGroup = function (content) { return optionalGroup(\"?:\" + content); };\nvar formatRegEx = (function () {\n var fill = '.';\n var align = '[<>=^]';\n var sign = '[+\\\\-( ]';\n var symbol = '[$€£¥₣₹#]';\n var zero = '0';\n var width = '\\\\d+';\n var comma = ',';\n var precision = '\\\\d+';\n var tilde = '~';\n var type = '[%a-z]';\n return new RegExp([\n '^',\n nonCapturingGroup(\"\" + optionalGroup(fill) + group(align)),\n optionalGroup(sign),\n optionalGroup(symbol),\n optionalGroup(zero),\n optionalGroup(width),\n optionalGroup(comma),\n nonCapturingGroup(\"\\\\.\" + group(precision)),\n optionalGroup(tilde),\n optionalGroup(type),\n '$',\n ].join(''), 'i');\n})();\nvar surroundedRegEx = (function () {\n var prefix = '.*?';\n var content = '.+?';\n var suffix = '.*?';\n return new RegExp(['^', group(prefix), \"#\\\\{\" + group(content) + \"\\\\}\", group(suffix), '$'].join(''));\n})();\nfunction parseFormatter(formatter) {\n var _a;\n var prefix;\n var suffix;\n var surrounded = surroundedRegEx.exec(formatter);\n if (surrounded) {\n _a = __read$M(surrounded, 4), prefix = _a[1], formatter = _a[2], suffix = _a[3];\n }\n var match = formatRegEx.exec(formatter);\n if (!match) {\n throw new Error(\"The number formatter is invalid: \" + formatter);\n }\n var _b = __read$M(match, 11), fill = _b[1], align = _b[2], sign = _b[3], symbol = _b[4], zero = _b[5], width = _b[6], comma = _b[7], precision = _b[8], trim = _b[9], type = _b[10];\n return {\n fill: fill,\n align: align,\n sign: sign,\n symbol: symbol,\n zero: zero,\n width: parseInt(width),\n comma: comma,\n precision: parseInt(precision),\n trim: Boolean(trim),\n type: type,\n prefix: prefix,\n suffix: suffix,\n };\n}\nfunction format(formatter) {\n var options = typeof formatter === 'string' ? parseFormatter(formatter) : formatter;\n var fill = options.fill, align = options.align, _a = options.sign, sign = _a === void 0 ? '-' : _a, symbol = options.symbol, zero = options.zero, width = options.width, comma = options.comma, type = options.type, _b = options.prefix, prefix = _b === void 0 ? '' : _b, _c = options.suffix, suffix = _c === void 0 ? '' : _c, precision = options.precision;\n var trim = options.trim;\n var precisionIsNaN = precision === undefined || isNaN(precision);\n var formatBody;\n if (!type) {\n formatBody = decimalTypes['g'];\n trim = true;\n }\n else if (type in decimalTypes && type in integerTypes) {\n formatBody = precisionIsNaN ? integerTypes[type] : decimalTypes[type];\n }\n else if (type in decimalTypes) {\n formatBody = decimalTypes[type];\n }\n else if (type in integerTypes) {\n formatBody = integerTypes[type];\n }\n else {\n throw new Error(\"The number formatter type is invalid: \" + type);\n }\n var formatterPrecision;\n if (precision == null || precisionIsNaN) {\n formatterPrecision = type ? 6 : 12;\n }\n else {\n formatterPrecision = precision;\n }\n return function (n) {\n var result = formatBody(n, formatterPrecision);\n if (trim) {\n result = removeTrailingZeros(result);\n }\n if (comma) {\n result = insertSeparator(result, comma);\n }\n result = addSign(n, result, sign);\n if (symbol && symbol !== '#') {\n result = \"\" + symbol + result;\n }\n if (symbol === '#' && type === 'x') {\n result = \"0x\" + result;\n }\n if (type === 's') {\n result = \"\" + result + getSIPrefix(n);\n }\n if (type === '%' || type === 'p') {\n result = result + \"%\";\n }\n if (width != null && !isNaN(width)) {\n result = addPadding(result, width, fill !== null && fill !== void 0 ? fill : zero, align);\n }\n result = \"\" + prefix + result + suffix;\n return result;\n };\n}\nvar absFloor = function (n) { return Math.floor(Math.abs(n)); };\nvar integerTypes = {\n b: function (n) { return absFloor(n).toString(2); },\n c: function (n) { return String.fromCharCode(n); },\n d: function (n) { return Math.round(Math.abs(n)).toFixed(0); },\n o: function (n) { return absFloor(n).toString(8); },\n x: function (n) { return absFloor(n).toString(16); },\n X: function (n) { return integerTypes.x(n).toUpperCase(); },\n n: function (n) { return integerTypes.d(n); },\n '%': function (n) { return \"\" + absFloor(n * 100).toFixed(0); },\n};\nvar decimalTypes = {\n e: function (n, f) { return Math.abs(n).toExponential(f); },\n E: function (n, f) { return decimalTypes.e(n, f).toUpperCase(); },\n f: function (n, f) { return Math.abs(n).toFixed(f); },\n F: function (n, f) { return decimalTypes.f(n, f).toUpperCase(); },\n g: function (n, f) {\n if (n === 0) {\n return '0';\n }\n var a = Math.abs(n);\n var p = Math.floor(Math.log10(a));\n if (p >= -4 && p < f) {\n return a.toFixed(f - 1 - p);\n }\n return a.toExponential(f - 1);\n },\n G: function (n, f) { return decimalTypes.g(n, f).toUpperCase(); },\n n: function (n, f) { return decimalTypes.g(n, f); },\n p: function (n, f) { return decimalTypes.r(n * 100, f); },\n r: function (n, f) {\n if (n === 0) {\n return '0';\n }\n var a = Math.abs(n);\n var p = Math.floor(Math.log10(a));\n var q = p - (f - 1);\n if (q <= 0) {\n return a.toFixed(-q);\n }\n var x = Math.pow(10, q);\n return (Math.round(a / x) * x).toFixed();\n },\n s: function (n, f) {\n var p = getSIPrefixPower(n);\n return decimalTypes.r(n / Math.pow(10, p), f);\n },\n '%': function (n, f) { return decimalTypes.f(n * 100, f); },\n};\nfunction removeTrailingZeros(numString) {\n return numString.replace(/\\.0+$/, '').replace(/(\\.[1-9])0+$/, '$1');\n}\nfunction insertSeparator(numString, separator) {\n var dotIndex = numString.indexOf('.');\n if (dotIndex < 0) {\n dotIndex = numString.length;\n }\n var integerChars = numString.substring(0, dotIndex).split('');\n var fractionalPart = numString.substring(dotIndex);\n for (var i = integerChars.length - 3; i > 0; i -= 3) {\n integerChars.splice(i, 0, separator);\n }\n return \"\" + integerChars.join('') + fractionalPart;\n}\nfunction getSIPrefix(n) {\n return siPrefixes[getSIPrefixPower(n)];\n}\nfunction getSIPrefixPower(n) {\n var power = Math.log10(Math.abs(n));\n var p = Math.floor(power / 3) * 3;\n return Math.max(minSIPrefix, Math.min(maxSIPrefix, p));\n}\nvar minSIPrefix = -24;\nvar maxSIPrefix = 24;\nvar siPrefixes = (_a$2 = {},\n _a$2[minSIPrefix] = 'y',\n _a$2[-21] = 'z',\n _a$2[-18] = 'a',\n _a$2[-15] = 'f',\n _a$2[-12] = 'p',\n _a$2[-9] = 'n',\n _a$2[-6] = 'µ',\n _a$2[-3] = 'm',\n _a$2[0] = '',\n _a$2[3] = 'k',\n _a$2[6] = 'M',\n _a$2[9] = 'G',\n _a$2[12] = 'T',\n _a$2[15] = 'P',\n _a$2[18] = 'E',\n _a$2[21] = 'Z',\n _a$2[maxSIPrefix] = 'Y',\n _a$2);\nvar minusSign = '\\u2212';\nfunction addSign(num, numString, signType) {\n if (signType === void 0) { signType = ''; }\n if (signType === '(') {\n return num >= 0 ? numString : \"(\" + numString + \")\";\n }\n var plusSign = signType === '+' ? '+' : '';\n return \"\" + (num >= 0 ? plusSign : minusSign) + numString;\n}\nfunction addPadding(numString, width, fill, align) {\n if (fill === void 0) { fill = ' '; }\n if (align === void 0) { align = '>'; }\n var result = numString;\n if (align === '>' || !align) {\n result = result.padStart(width, fill);\n }\n else if (align === '<') {\n result = result.padEnd(width, fill);\n }\n else if (align === '^') {\n var padWidth = Math.max(0, width - result.length);\n var padLeft = Math.ceil(padWidth / 2);\n var padRight = Math.floor(padWidth / 2);\n result = result.padStart(padLeft + result.length, fill);\n result = result.padEnd(padRight + result.length, fill);\n }\n return result;\n}\nfunction tickFormat(ticks, formatter) {\n var options = parseFormatter(formatter !== null && formatter !== void 0 ? formatter : ',f');\n var precision = options.precision;\n if (precision == null || isNaN(precision)) {\n if (options.type === 'f' || options.type === '%') {\n options.precision = Math.max.apply(Math, __spreadArray$s([], __read$M(ticks.map(function (x) {\n if (typeof x !== 'number' || x === 0) {\n return 0;\n }\n var l = Math.floor(Math.log10(Math.abs(x)));\n var digits = options.type ? 6 : 12;\n var exp = x.toExponential(digits - 1).replace(/\\.?0+e/, 'e');\n var dotIndex = exp.indexOf('.');\n if (dotIndex < 0) {\n return l >= 0 ? 0 : -l;\n }\n var s = exp.indexOf('e') - dotIndex;\n return Math.max(0, s - l - 1);\n }))));\n }\n else if (!options.type || options.type in decimalTypes) {\n options.precision = Math.max.apply(Math, __spreadArray$s([], __read$M(ticks.map(function (x) {\n if (typeof x !== 'number') {\n return 0;\n }\n var exp = x.toExponential((options.type ? 6 : 12) - 1).replace(/\\.?0+e/, 'e');\n return exp.substring(0, exp.indexOf('e')).replace('.', '').length;\n }))));\n }\n }\n var f = format(options);\n return function (n) { return f(Number(n)); };\n}\n\nvar __extends$2n = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1I = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$L = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$r = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar identity = function (x) { return x; };\nvar LogScale = /** @class */ (function (_super) {\n __extends$2n(LogScale, _super);\n function LogScale() {\n var _this = _super.call(this, [1, 10], [0, 1]) || this;\n _this.type = 'log';\n _this.base = 10;\n _this.cacheProps = ['domain', 'range', 'nice', 'tickCount', 'base'];\n _this.baseLog = identity;\n _this.basePow = identity;\n _this.log = function (x) {\n return _this.domain[0] >= 0 ? _this.baseLog(x) : -_this.baseLog(-x);\n };\n _this.pow = function (x) {\n return _this.domain[0] >= 0 ? _this.basePow(x) : -_this.basePow(-x);\n };\n return _this;\n }\n LogScale.prototype.toDomain = function (d) {\n return d;\n };\n LogScale.prototype.transform = function (x) {\n return this.domain[0] >= 0 ? Math.log(x) : -Math.log(-x);\n };\n LogScale.prototype.transformInvert = function (x) {\n return this.domain[0] >= 0 ? Math.exp(x) : -Math.exp(-x);\n };\n LogScale.prototype.update = function () {\n if (!this.domain || this.domain.length < 2) {\n return;\n }\n this.updateLogFn();\n this.updatePowFn();\n if (this.nice) {\n this.updateNiceDomain();\n }\n };\n LogScale.prototype.updateLogFn = function () {\n var base = this.base;\n var log;\n if (base === 10) {\n log = Math.log10;\n }\n else if (base === Math.E) {\n log = Math.log;\n }\n else if (base === 2) {\n log = Math.log2;\n }\n else {\n var logBase_1 = Math.log(base);\n log = function (x) { return Math.log(x) / logBase_1; };\n }\n this.baseLog = log;\n };\n LogScale.prototype.updatePowFn = function () {\n var base = this.base;\n var pow;\n if (base === 10) {\n pow = LogScale.pow10;\n }\n else if (base === Math.E) {\n pow = Math.exp;\n }\n else {\n pow = function (x) { return Math.pow(base, x); };\n }\n this.basePow = pow;\n };\n LogScale.prototype.updateNiceDomain = function () {\n var _a = __read$L(this.domain, 2), d0 = _a[0], d1 = _a[1];\n var n0 = this.pow(Math.floor(this.log(d0)));\n var n1 = this.pow(Math.ceil(this.log(d1)));\n this.niceDomain = [n0, n1];\n };\n LogScale.pow10 = function (x) {\n return x >= 0 ? Math.pow(10, x) : 1 / Math.pow(10, -x);\n };\n LogScale.prototype.ticks = function () {\n var _this = this;\n var _a;\n var count = (_a = this.tickCount) !== null && _a !== void 0 ? _a : 10;\n if (!this.domain || this.domain.length < 2 || count < 1) {\n return [];\n }\n this.refresh();\n var base = this.base;\n var _b = __read$L(this.getDomain(), 2), d0 = _b[0], d1 = _b[1];\n var p0 = this.log(d0);\n var p1 = this.log(d1);\n if (this.interval) {\n var step = Math.abs(this.interval);\n var absDiff = Math.abs(p1 - p0);\n var ticks_1 = range(p0, p1, Math.min(absDiff, step))\n .map(function (x) { return _this.pow(x); })\n .filter(function (t) { return t >= d0 && t <= d1; });\n if (!this.isDenseInterval({ start: d0, stop: d1, interval: step, count: ticks_1.length })) {\n return ticks_1;\n }\n }\n var isBaseInteger = base % 1 === 0;\n var isDiffLarge = p1 - p0 >= count;\n if (!isBaseInteger || isDiffLarge) {\n // Returns [10^1, 10^2, 10^3, 10^4, ...]\n return ticks(p0, p1, Math.min(p1 - p0, count)).map(function (x) { return _this.pow(x); });\n }\n var ticks$1 = [];\n var isPositive = d0 > 0;\n p0 = Math.floor(p0) - 1;\n p1 = Math.round(p1) + 1;\n var min = Math.min.apply(Math, __spreadArray$r([], __read$L(this.range)));\n var max = Math.max.apply(Math, __spreadArray$r([], __read$L(this.range)));\n var availableSpacing = (max - min) / count;\n var lastTickPosition = Infinity;\n for (var p = p0; p <= p1; p++) {\n var nextMagnitudeTickPosition = this.convert(this.pow(p + 1));\n for (var k = 1; k < base; k++) {\n var q = isPositive ? k : base - k + 1;\n var t = this.pow(p) * q;\n var tickPosition = this.convert(t);\n var prevSpacing = Math.abs(lastTickPosition - tickPosition);\n var nextSpacing = Math.abs(tickPosition - nextMagnitudeTickPosition);\n var fits = prevSpacing >= availableSpacing && nextSpacing >= availableSpacing;\n if (t >= d0 && t <= d1 && (k === 1 || fits)) {\n ticks$1.push(t);\n lastTickPosition = tickPosition;\n }\n }\n }\n return ticks$1;\n };\n LogScale.prototype.tickFormat = function (_a) {\n var count = _a.count, ticks = _a.ticks, specifier = _a.specifier;\n var base = this.base;\n if (specifier == null) {\n specifier = base === 10 ? '.0e' : ',';\n }\n if (typeof specifier === 'string') {\n specifier = format(specifier);\n }\n if (count === Infinity) {\n return specifier;\n }\n if (ticks == null) {\n this.ticks();\n }\n return function (d) {\n return specifier(d);\n };\n };\n __decorate$1I([\n Validate(NUMBER(0))\n ], LogScale.prototype, \"base\", void 0);\n return LogScale;\n}(ContinuousScale));\n\nfunction extent$4(values) {\n var length = values.length;\n if (length === 0) {\n return undefined;\n }\n var min = Infinity;\n var max = -Infinity;\n for (var i = 0; i < length; i++) {\n var v = values[i];\n if (v instanceof Date) {\n v = v.getTime();\n }\n if (typeof v !== 'number') {\n continue;\n }\n if (v < min) {\n min = v;\n }\n if (v > max) {\n max = v;\n }\n }\n var extent = [min, max];\n if (extent.some(function (v) { return !isFinite(v); })) {\n return undefined;\n }\n return extent;\n}\nfunction normalisedExtent(d, min, max) {\n var _a;\n if (d.length > 2) {\n d = (_a = extent$4(d)) !== null && _a !== void 0 ? _a : [NaN, NaN];\n }\n if (!isNaN(min)) {\n d = [min, d[1]];\n }\n if (!isNaN(max)) {\n d = [d[0], max];\n }\n if (d[0] > d[1]) {\n d = [];\n }\n return d;\n}\n\nvar __decorate$1H = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar Label$1 = /** @class */ (function () {\n function Label() {\n this.enabled = true;\n this.fontSize = 12;\n this.fontFamily = 'Verdana, sans-serif';\n this.fontStyle = undefined;\n this.fontWeight = undefined;\n this.color = 'rgba(70, 70, 70, 1)';\n }\n Label.prototype.getFont = function () {\n return getFont(this);\n };\n __decorate$1H([\n Validate(BOOLEAN)\n ], Label.prototype, \"enabled\", void 0);\n __decorate$1H([\n Validate(NUMBER(0))\n ], Label.prototype, \"fontSize\", void 0);\n __decorate$1H([\n Validate(STRING)\n ], Label.prototype, \"fontFamily\", void 0);\n __decorate$1H([\n Validate(OPT_FONT_STYLE)\n ], Label.prototype, \"fontStyle\", void 0);\n __decorate$1H([\n Validate(OPT_FONT_WEIGHT)\n ], Label.prototype, \"fontWeight\", void 0);\n __decorate$1H([\n Validate(COLOR_STRING)\n ], Label.prototype, \"color\", void 0);\n return Label;\n}());\nfunction calculateLabelRotation(opts) {\n var _a = opts.parallelFlipRotation, parallelFlipRotation = _a === void 0 ? 0 : _a, _b = opts.regularFlipRotation, regularFlipRotation = _b === void 0 ? 0 : _b;\n var configuredRotation = opts.rotation ? normalizeAngle360(toRadians$1(opts.rotation)) : 0;\n var parallelFlipFlag = !configuredRotation && parallelFlipRotation >= 0 && parallelFlipRotation <= Math.PI ? -1 : 1;\n // Flip if the axis rotation angle is in the top hemisphere.\n var regularFlipFlag = !configuredRotation && regularFlipRotation >= 0 && regularFlipRotation <= Math.PI ? -1 : 1;\n var defaultRotation = 0;\n if (opts.parallel) {\n defaultRotation = (parallelFlipFlag * Math.PI) / 2;\n }\n else if (regularFlipFlag === -1) {\n defaultRotation = Math.PI;\n }\n return { configuredRotation: configuredRotation, defaultRotation: defaultRotation, parallelFlipFlag: parallelFlipFlag, regularFlipFlag: regularFlipFlag };\n}\nfunction getLabelSpacing(minSpacing, rotated) {\n if (!isNaN(minSpacing)) {\n return minSpacing;\n }\n return rotated ? 0 : 10;\n}\nfunction getTextBaseline(parallel, labelRotation, sideFlag, parallelFlipFlag) {\n if (parallel && !labelRotation) {\n if (sideFlag * parallelFlipFlag === -1) {\n return 'hanging';\n }\n else {\n return 'bottom';\n }\n }\n return 'middle';\n}\nfunction getTextAlign(parallel, labelRotation, labelAutoRotation, sideFlag, regularFlipFlag) {\n var labelRotated = labelRotation > 0 && labelRotation <= Math.PI;\n var labelAutoRotated = labelAutoRotation > 0 && labelAutoRotation <= Math.PI;\n var alignFlag = labelRotated || labelAutoRotated ? -1 : 1;\n if (parallel) {\n if (labelRotation || labelAutoRotation) {\n if (sideFlag * alignFlag === -1) {\n return 'end';\n }\n }\n else {\n return 'center';\n }\n }\n else if (sideFlag * regularFlipFlag === -1) {\n return 'end';\n }\n return 'start';\n}\nfunction calculateLabelBBox(text, bbox, labelX, labelY, labelMatrix) {\n // Text.computeBBox() does not take into account any of the transformations that have been applied to the label nodes, only the width and height are useful.\n // Rather than taking into account all transformations including those of parent nodes which would be the result of `computeTransformedBBox()`, giving the x and y in the entire axis coordinate space,\n // take into account only the rotation and translation applied to individual label nodes to get the x y coordinates of the labels relative to each other\n // this makes label collision detection a lot simpler\n var width = bbox.width, height = bbox.height;\n var translatedBBox = new BBox(labelX, labelY, 0, 0);\n labelMatrix.transformBBox(translatedBBox, bbox);\n var _a = bbox.x, x = _a === void 0 ? 0 : _a, _b = bbox.y, y = _b === void 0 ? 0 : _b;\n bbox.width = width;\n bbox.height = height;\n return {\n point: {\n x: x,\n y: y,\n size: 0,\n },\n label: {\n width: width,\n height: height,\n text: text,\n },\n };\n}\n\nfunction Default(defaultValue, replaces) {\n if (replaces === void 0) { replaces = [undefined]; }\n return addTransformToInstanceProperty(function (_, __, v) {\n if (replaces.includes(v)) {\n return defaultValue;\n }\n return v;\n });\n}\n\nvar __decorate$1G = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AxisLabel = /** @class */ (function () {\n function AxisLabel() {\n this.enabled = true;\n /** If set to `false`, axis labels will not be wrapped on multiple lines. */\n this.autoWrap = false;\n /** Used to constrain the width of the label when `autoWrap` is `true`, if the label text width exceeds the `maxWidth`, it will be wrapped on multiple lines automatically. If `maxWidth` is omitted, a default width constraint will be applied. */\n this.maxWidth = undefined;\n /** Used to constrain the height of the multiline label, if the label text height exceeds the `maxHeight`, it will be truncated automatically. If `maxHeight` is omitted, a default height constraint will be applied. */\n this.maxHeight = undefined;\n this.fontStyle = undefined;\n this.fontWeight = undefined;\n this.fontSize = 12;\n this.fontFamily = 'Verdana, sans-serif';\n /**\n * The padding between the labels and the ticks.\n */\n this.padding = 5;\n /**\n * Minimum gap in pixels between the axis labels before being removed to avoid collisions.\n */\n this.minSpacing = NaN;\n /**\n * The color of the labels.\n * Use `undefined` rather than `rgba(0, 0, 0, 0)` to make labels invisible.\n */\n this.color = 'rgba(87, 87, 87, 1)';\n /**\n * Custom label rotation in degrees.\n * Labels are rendered perpendicular to the axis line by default.\n * Or parallel to the axis line, if the {@link parallel} is set to `true`.\n * The value of this config is used as the angular offset/deflection\n * from the default rotation.\n */\n this.rotation = undefined;\n /**\n * If specified and axis labels may collide, they are rotated to reduce collisions. If the\n * `rotation` property is specified, it takes precedence.\n */\n this.autoRotate = undefined;\n /**\n * Rotation angle to use when autoRotate is applied.\n */\n this.autoRotateAngle = 335;\n /**\n * Avoid axis label collision by automatically reducing the number of ticks displayed. If set to `false`, axis labels may collide.\n */\n this.avoidCollisions = true;\n /**\n * By default labels and ticks are positioned to the left of the axis line.\n * `true` positions the labels to the right of the axis line.\n * However, if the axis is rotated, it's easier to think in terms\n * of this side or the opposite side, rather than left and right.\n * We use the term `mirror` for conciseness, although it's not\n * true mirroring - for example, when a label is rotated, so that\n * it is inclined at the 45 degree angle, text flowing from north-west\n * to south-east, ending at the tick to the left of the axis line,\n * and then we set this config to `true`, the text will still be flowing\n * from north-west to south-east, _starting_ at the tick to the right\n * of the axis line.\n */\n this.mirrored = false;\n /**\n * Labels are rendered perpendicular to the axis line by default.\n * Setting this config to `true` makes labels render parallel to the axis line\n * and center aligns labels' text at the ticks.\n */\n this.parallel = false;\n /**\n * In case {@param value} is a number, the {@param fractionDigits} parameter will\n * be provided as well. The `fractionDigits` corresponds to the number of fraction\n * digits used by the tick step. For example, if the tick step is `0.0005`,\n * the `fractionDigits` is 4.\n */\n this.formatter = undefined;\n this.format = undefined;\n }\n /**\n * The side of the axis line to position the labels on.\n * -1 = left (default)\n * 1 = right\n */\n AxisLabel.prototype.getSideFlag = function () {\n return this.mirrored ? 1 : -1;\n };\n AxisLabel.prototype.getFont = function () {\n return getFont(this);\n };\n __decorate$1G([\n Validate(BOOLEAN)\n ], AxisLabel.prototype, \"enabled\", void 0);\n __decorate$1G([\n Validate(OPT_BOOLEAN)\n ], AxisLabel.prototype, \"autoWrap\", void 0);\n __decorate$1G([\n Validate(OPT_NUMBER(0))\n ], AxisLabel.prototype, \"maxWidth\", void 0);\n __decorate$1G([\n Validate(OPT_NUMBER(0))\n ], AxisLabel.prototype, \"maxHeight\", void 0);\n __decorate$1G([\n Validate(OPT_FONT_STYLE)\n ], AxisLabel.prototype, \"fontStyle\", void 0);\n __decorate$1G([\n Validate(OPT_FONT_WEIGHT)\n ], AxisLabel.prototype, \"fontWeight\", void 0);\n __decorate$1G([\n Validate(NUMBER(1))\n ], AxisLabel.prototype, \"fontSize\", void 0);\n __decorate$1G([\n Validate(STRING)\n ], AxisLabel.prototype, \"fontFamily\", void 0);\n __decorate$1G([\n Validate(NUMBER(0))\n ], AxisLabel.prototype, \"padding\", void 0);\n __decorate$1G([\n Validate(NUMBER_OR_NAN()),\n Default(NaN)\n ], AxisLabel.prototype, \"minSpacing\", void 0);\n __decorate$1G([\n Validate(OPT_COLOR_STRING)\n ], AxisLabel.prototype, \"color\", void 0);\n __decorate$1G([\n Validate(OPT_NUMBER(-360, 360))\n ], AxisLabel.prototype, \"rotation\", void 0);\n __decorate$1G([\n Validate(OPT_BOOLEAN)\n ], AxisLabel.prototype, \"autoRotate\", void 0);\n __decorate$1G([\n Validate(NUMBER(-360, 360))\n ], AxisLabel.prototype, \"autoRotateAngle\", void 0);\n __decorate$1G([\n Validate(BOOLEAN)\n ], AxisLabel.prototype, \"avoidCollisions\", void 0);\n __decorate$1G([\n Validate(BOOLEAN)\n ], AxisLabel.prototype, \"mirrored\", void 0);\n __decorate$1G([\n Validate(BOOLEAN)\n ], AxisLabel.prototype, \"parallel\", void 0);\n __decorate$1G([\n Validate(OPT_STRING)\n ], AxisLabel.prototype, \"format\", void 0);\n return AxisLabel;\n}());\n\nvar __decorate$1F = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AxisLine = /** @class */ (function () {\n function AxisLine() {\n this.width = 1;\n this.color = 'rgba(195, 195, 195, 1)';\n }\n __decorate$1F([\n Validate(NUMBER(0))\n ], AxisLine.prototype, \"width\", void 0);\n __decorate$1F([\n Validate(OPT_COLOR_STRING)\n ], AxisLine.prototype, \"color\", void 0);\n return AxisLine;\n}());\n\nvar __decorate$1E = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TICK_COUNT = predicateWithMessage(function (v, ctx) { return NUMBER(0)(v, ctx) || v instanceof TimeInterval; }, \"expecting a tick count Number value or, for a time axis, a Time Interval such as 'agCharts.time.month'\");\nvar OPT_TICK_COUNT = predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, TICK_COUNT); }, \"expecting an optional tick count Number value or, for a time axis, a Time Interval such as 'agCharts.time.month'\");\nvar OPT_TICK_INTERVAL = predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, function (v, ctx) { return (v !== 0 && NUMBER(0)(v, ctx)) || v instanceof TimeInterval; }); }, \"expecting an optional non-zero positive Number value or, for a time axis, a Time Interval such as 'agCharts.time.month'\");\nvar AxisTick = /** @class */ (function () {\n function AxisTick() {\n this.enabled = true;\n /**\n * The line width to be used by axis ticks.\n */\n this.width = 1;\n /**\n * The line length to be used by axis ticks.\n */\n this.size = 6;\n /**\n * The color of the axis ticks.\n * Use `undefined` rather than `rgba(0, 0, 0, 0)` to make the ticks invisible.\n */\n this.color = 'rgba(195, 195, 195, 1)';\n /**\n * A hint of how many ticks to use (the exact number of ticks might differ),\n * a `TimeInterval` or a `CountableTimeInterval`.\n * For example:\n *\n * axis.tick.count = 5;\n * axis.tick.count = year;\n * axis.tick.count = month.every(6);\n */\n this.count = undefined;\n this.interval = undefined;\n this.values = undefined;\n this.minSpacing = NaN;\n }\n __decorate$1E([\n Validate(BOOLEAN)\n ], AxisTick.prototype, \"enabled\", void 0);\n __decorate$1E([\n Validate(NUMBER(0))\n ], AxisTick.prototype, \"width\", void 0);\n __decorate$1E([\n Validate(NUMBER(0))\n ], AxisTick.prototype, \"size\", void 0);\n __decorate$1E([\n Validate(OPT_COLOR_STRING)\n ], AxisTick.prototype, \"color\", void 0);\n __decorate$1E([\n Validate(OPT_TICK_COUNT),\n Deprecated('Use tick.interval or tick.minSpacing and tick.maxSpacing instead')\n ], AxisTick.prototype, \"count\", void 0);\n __decorate$1E([\n Validate(OPT_TICK_INTERVAL)\n ], AxisTick.prototype, \"interval\", void 0);\n __decorate$1E([\n Validate(OPT_ARRAY())\n ], AxisTick.prototype, \"values\", void 0);\n __decorate$1E([\n Validate(AND(NUMBER_OR_NAN(1), LESS_THAN('maxSpacing'))),\n Default(NaN)\n ], AxisTick.prototype, \"minSpacing\", void 0);\n return AxisTick;\n}());\n\nvar StateMachine = /** @class */ (function () {\n function StateMachine(initialState, states) {\n this.state = initialState;\n this.states = states;\n if (StateMachine.DEBUG())\n Logger.debug(\"%c\" + this.constructor.name + \" | init -> \" + initialState, 'color: green');\n }\n StateMachine.prototype.transition = function (event, data) {\n var _a, _b, _c, _d, _e;\n var currentStateConfig = this.states[this.state];\n var destinationTransition = (_a = currentStateConfig === null || currentStateConfig === void 0 ? void 0 : currentStateConfig.on) === null || _a === void 0 ? void 0 : _a[event];\n if (!destinationTransition) {\n if (StateMachine.DEBUG()) {\n Logger.debug(\"%c\" + this.constructor.name + \" | \" + this.state + \" -> \" + event + \" -> \" + this.state, 'color: grey');\n }\n return;\n }\n var destinationState = destinationTransition.target;\n var destinationStateConfig = this.states[destinationState];\n if (StateMachine.DEBUG()) {\n Logger.debug(\"%c\" + this.constructor.name + \" | \" + this.state + \" -> \" + event + \" -> \" + destinationState, 'color: green');\n }\n destinationTransition.action(data);\n (_c = (_b = currentStateConfig === null || currentStateConfig === void 0 ? void 0 : currentStateConfig.actions) === null || _b === void 0 ? void 0 : _b.onExit) === null || _c === void 0 ? void 0 : _c.call(_b);\n (_e = (_d = destinationStateConfig === null || destinationStateConfig === void 0 ? void 0 : destinationStateConfig.actions) === null || _d === void 0 ? void 0 : _d.onEnter) === null || _e === void 0 ? void 0 : _e.call(_d);\n this.state = destinationState;\n return this.state;\n };\n StateMachine.DEBUG = function () { var _a; return (_a = [true, 'animation'].includes(windowValue('agChartsDebug'))) !== null && _a !== void 0 ? _a : false; };\n return StateMachine;\n}());\n\nvar __extends$2m = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$J = (undefined && undefined.__assign) || function () {\n __assign$J = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$J.apply(this, arguments);\n};\nvar __decorate$1D = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __rest$4 = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __values$l = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$K = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$q = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar GRID_STYLE_KEYS = ['stroke', 'lineDash'];\nvar GRID_STYLE = predicateWithMessage(ARRAY(undefined, function (o) {\n for (var key in o) {\n if (!GRID_STYLE_KEYS.includes(key)) {\n return false;\n }\n }\n return true;\n}), \"expecting an Array of objects with gridline style properties such as 'stroke' and 'lineDash'\");\nvar Tags;\n(function (Tags) {\n Tags[Tags[\"TickLine\"] = 0] = \"TickLine\";\n Tags[Tags[\"TickLabel\"] = 1] = \"TickLabel\";\n Tags[Tags[\"GridLine\"] = 2] = \"GridLine\";\n Tags[Tags[\"GridArc\"] = 3] = \"GridArc\";\n Tags[Tags[\"AxisLine\"] = 4] = \"AxisLine\";\n})(Tags || (Tags = {}));\nvar TickGenerationType;\n(function (TickGenerationType) {\n TickGenerationType[TickGenerationType[\"CREATE\"] = 0] = \"CREATE\";\n TickGenerationType[TickGenerationType[\"CREATE_SECONDARY\"] = 1] = \"CREATE_SECONDARY\";\n TickGenerationType[TickGenerationType[\"FILTER\"] = 2] = \"FILTER\";\n TickGenerationType[TickGenerationType[\"VALUES\"] = 3] = \"VALUES\";\n})(TickGenerationType || (TickGenerationType = {}));\nvar AxisStateMachine = /** @class */ (function (_super) {\n __extends$2m(AxisStateMachine, _super);\n function AxisStateMachine() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return AxisStateMachine;\n}(StateMachine));\n/**\n * A general purpose linear axis with no notion of orientation.\n * The axis is always rendered vertically, with horizontal labels positioned to the left\n * of the axis line by default. The axis can be {@link rotation | rotated} by an arbitrary angle,\n * so that it can be used as a top, right, bottom, left, radial or any other kind\n * of linear axis.\n * The generic `D` parameter is the type of the domain of the axis' scale.\n * The output range of the axis' scale is always numeric (screen coordinates).\n */\nvar Axis = /** @class */ (function () {\n function Axis(moduleCtx, scale) {\n var _this = this;\n this.moduleCtx = moduleCtx;\n this.id = createId$1(this);\n this.nice = true;\n this.dataDomain = [];\n this.keys = [];\n this.boundSeries = [];\n this.includeInvisibleDomains = false;\n this.axisGroup = new Group({ name: this.id + \"-axis\", zIndex: Layers.AXIS_ZINDEX });\n this.lineNode = this.axisGroup.appendChild(new Line());\n this.tickLineGroup = this.axisGroup.appendChild(new Group({ name: this.id + \"-Axis-tick-lines\", zIndex: Layers.AXIS_ZINDEX }));\n this.tickLabelGroup = this.axisGroup.appendChild(new Group({ name: this.id + \"-Axis-tick-labels\", zIndex: Layers.AXIS_ZINDEX }));\n this.crossLineGroup = new Group({ name: this.id + \"-CrossLines\" });\n this.gridGroup = new Group({ name: this.id + \"-Axis-grid\" });\n this.gridLineGroup = this.gridGroup.appendChild(new Group({\n name: this.id + \"-gridLines\",\n zIndex: Layers.AXIS_GRID_ZINDEX,\n }));\n this.tickLineGroupSelection = Selection.select(this.tickLineGroup, Line, false);\n this.tickLabelGroupSelection = Selection.select(this.tickLabelGroup, Text, false);\n this.gridLineGroupSelection = Selection.select(this.gridLineGroup, Line, false);\n this.line = new AxisLine();\n this.tick = this.createTick();\n this.label = new AxisLabel();\n this.translation = { x: 0, y: 0 };\n this.rotation = 0; // axis rotation angle in degrees\n this.layout = {\n label: {\n fractionDigits: 0,\n padding: this.label.padding,\n format: this.label.format,\n },\n };\n this.modules = {};\n this.destroyFns = [];\n this.range = [0, 1];\n this.visibleRange = [0, 1];\n this.title = undefined;\n this._titleCaption = new Caption();\n /**\n * The length of the grid. The grid is only visible in case of a non-zero value.\n * In case {@link radialGrid} is `true`, the value is interpreted as an angle\n * (in degrees).\n */\n this._gridLength = 0;\n /**\n * The array of styles to cycle through when rendering grid lines.\n * For example, use two {@link GridStyle} objects for alternating styles.\n * Contains only one {@link GridStyle} object by default, meaning all grid lines\n * have the same style.\n */\n this.gridStyle = [\n {\n stroke: 'rgba(219, 219, 219, 1)',\n lineDash: [4, 2],\n },\n ];\n this.fractionDigits = 0;\n /**\n * The distance between the grid ticks and the axis ticks.\n */\n this.gridPadding = 0;\n /**\n * Is used to avoid collisions between axis labels and series.\n */\n this.seriesAreaPadding = 0;\n this.maxThickness = Infinity;\n this._scale = scale;\n this.refreshScale();\n this._titleCaption.node.rotation = -Math.PI / 2;\n this.axisGroup.appendChild(this._titleCaption.node);\n var axisHoverHandle = moduleCtx.interactionManager.addListener('hover', function (e) { return _this.checkAxisHover(e); });\n this.destroyFns.push(function () { return moduleCtx.interactionManager.removeListener(axisHoverHandle); });\n this.animationManager = moduleCtx.animationManager;\n this.animationState = new AxisStateMachine('empty', {\n empty: {\n on: {\n update: {\n target: 'align',\n action: function () { return _this.resetSelectionNodes(); },\n },\n },\n },\n align: {\n on: {\n update: {\n target: 'ready',\n action: function () { return _this.resetSelectionNodes(); },\n },\n },\n },\n ready: {\n on: {\n update: {\n target: 'ready',\n action: function (data) { return _this.animateReadyUpdate(data); },\n },\n },\n },\n });\n this._crossLines = [];\n this.assignCrossLineArrayConstructor(this._crossLines);\n }\n Object.defineProperty(Axis.prototype, \"scale\", {\n get: function () {\n return this._scale;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Axis.prototype, \"type\", {\n get: function () {\n var _a;\n return (_a = this.constructor.type) !== null && _a !== void 0 ? _a : '';\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Axis.prototype, \"crossLines\", {\n get: function () {\n return this._crossLines;\n },\n set: function (value) {\n var _this = this;\n var _a, _b;\n (_a = this._crossLines) === null || _a === void 0 ? void 0 : _a.forEach(function (crossLine) { return _this.detachCrossLine(crossLine); });\n if (value) {\n this.assignCrossLineArrayConstructor(value);\n }\n this._crossLines = value;\n (_b = this._crossLines) === null || _b === void 0 ? void 0 : _b.forEach(function (crossLine) {\n _this.attachCrossLine(crossLine);\n _this.initCrossLine(crossLine);\n });\n },\n enumerable: false,\n configurable: true\n });\n Axis.prototype.attachCrossLine = function (crossLine) {\n this.crossLineGroup.appendChild(crossLine.group);\n };\n Axis.prototype.detachCrossLine = function (crossLine) {\n this.crossLineGroup.removeChild(crossLine.group);\n };\n Axis.prototype.destroy = function () {\n var e_1, _a;\n try {\n for (var _b = __values$l(Object.entries(this.modules)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read$K(_c.value, 2), key = _d[0], module = _d[1];\n module.instance.destroy();\n delete this.modules[key];\n delete this[key];\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.destroyFns.forEach(function (f) { return f(); });\n };\n Axis.prototype.refreshScale = function () {\n var _this = this;\n var _a;\n this.range = this.scale.range.slice();\n (_a = this.crossLines) === null || _a === void 0 ? void 0 : _a.forEach(function (crossLine) {\n _this.initCrossLine(crossLine);\n });\n };\n Axis.prototype.updateRange = function () {\n var _a;\n var _b = this, rr = _b.range, vr = _b.visibleRange, scale = _b.scale;\n var span = (rr[1] - rr[0]) / (vr[1] - vr[0]);\n var shift = span * vr[0];\n var start = rr[0] - shift;\n scale.range = [start, start + span];\n (_a = this.crossLines) === null || _a === void 0 ? void 0 : _a.forEach(function (crossLine) {\n crossLine.clippedRange = [rr[0], rr[1]];\n });\n };\n Axis.prototype.setCrossLinesVisible = function (visible) {\n this.crossLineGroup.visible = visible;\n };\n Axis.prototype.attachAxis = function (node) {\n node.appendChild(this.gridGroup);\n node.appendChild(this.axisGroup);\n node.appendChild(this.crossLineGroup);\n };\n Axis.prototype.detachAxis = function (node) {\n node.removeChild(this.gridGroup);\n node.removeChild(this.axisGroup);\n node.removeChild(this.crossLineGroup);\n };\n /**\n * Checks if a point or an object is in range.\n * @param x A point (or object's starting point).\n * @param width Object's width.\n * @param tolerance Expands the range on both ends by this amount.\n */\n Axis.prototype.inRange = function (x, width, tolerance) {\n if (width === void 0) { width = 0; }\n if (tolerance === void 0) { tolerance = 0; }\n return this.inRangeEx(x, width, tolerance) === 0;\n };\n Axis.prototype.inRangeEx = function (x, width, tolerance) {\n if (width === void 0) { width = 0; }\n if (tolerance === void 0) { tolerance = 0; }\n var range = this.range;\n // Account for inverted ranges, for example [500, 100] as well as [100, 500]\n var min = Math.min(range[0], range[1]);\n var max = Math.max(range[0], range[1]);\n if (x + width < min - tolerance) {\n return -1; // left of range\n }\n if (x > max + tolerance) {\n return 1; // right of range\n }\n return 0; // in range\n };\n Axis.prototype.onLabelFormatChange = function (ticks, format) {\n var _a = this, scale = _a.scale, fractionDigits = _a.fractionDigits;\n var logScale = scale instanceof LogScale;\n var defaultLabelFormatter = !logScale && fractionDigits > 0\n ? function (x) { return (typeof x === 'number' ? x.toFixed(fractionDigits) : String(x)); }\n : function (x) { return String(x); };\n if (format && scale && scale.tickFormat) {\n try {\n this.labelFormatter = scale.tickFormat({\n ticks: ticks,\n specifier: format,\n });\n }\n catch (e) {\n this.labelFormatter = defaultLabelFormatter;\n Logger.warnOnce(\"the axis label format string \" + format + \" is invalid. No formatting will be applied\");\n }\n }\n else {\n this.labelFormatter = defaultLabelFormatter;\n }\n };\n Axis.prototype.setDomain = function () {\n var _a;\n var _b = this, scale = _b.scale, dataDomain = _b.dataDomain, tickValues = _b.tick.values;\n if (tickValues && scale instanceof ContinuousScale) {\n var _c = __read$K((_a = extent$4(tickValues)) !== null && _a !== void 0 ? _a : [Infinity, -Infinity], 2), tickMin = _c[0], tickMax = _c[1];\n var min = Math.min(scale.fromDomain(dataDomain[0]), tickMin);\n var max = Math.max(scale.fromDomain(dataDomain[1]), tickMax);\n scale.domain = [scale.toDomain(min), scale.toDomain(max)];\n }\n else {\n scale.domain = dataDomain;\n }\n };\n Axis.prototype.setTickInterval = function (interval) {\n var _a;\n this.scale.interval = (_a = this.tick.interval) !== null && _a !== void 0 ? _a : interval;\n };\n Axis.prototype.setTickCount = function (count, minTickCount, maxTickCount) {\n var scale = this.scale;\n if (!(count && scale instanceof ContinuousScale)) {\n return;\n }\n if (typeof count === 'number') {\n scale.tickCount = count;\n scale.minTickCount = minTickCount !== null && minTickCount !== void 0 ? minTickCount : 0;\n scale.maxTickCount = maxTickCount !== null && maxTickCount !== void 0 ? maxTickCount : Infinity;\n return;\n }\n if (scale instanceof TimeScale$1) {\n this.setTickInterval(count);\n }\n };\n Object.defineProperty(Axis.prototype, \"gridLength\", {\n get: function () {\n return this._gridLength;\n },\n set: function (value) {\n var _this = this;\n var _a;\n // Was visible and now invisible, or was invisible and now visible.\n if ((this._gridLength && !value) || (!this._gridLength && value)) {\n this.gridLineGroupSelection = this.gridLineGroupSelection.clear();\n }\n this._gridLength = value;\n (_a = this.crossLines) === null || _a === void 0 ? void 0 : _a.forEach(function (crossLine) {\n _this.initCrossLine(crossLine);\n });\n },\n enumerable: false,\n configurable: true\n });\n Axis.prototype.createTick = function () {\n return new AxisTick();\n };\n Axis.prototype.checkAxisHover = function (event) {\n var bbox = this.computeBBox();\n var isInAxis = bbox.containsPoint(event.offsetX, event.offsetY);\n if (!isInAxis)\n return;\n this.moduleCtx.chartEventManager.axisHover(this.id, this.direction);\n };\n /**\n * Creates/removes/updates the scene graph nodes that constitute the axis.\n */\n Axis.prototype.update = function (primaryTickCount) {\n var previous = this.tickLabelGroupSelection.nodes().map(function (node) { return node.datum.tickId; });\n var _a = this.calculateRotations(), rotation = _a.rotation, parallelFlipRotation = _a.parallelFlipRotation, regularFlipRotation = _a.regularFlipRotation;\n var sideFlag = this.label.getSideFlag();\n var labelX = sideFlag * (this.tick.size + this.label.padding + this.seriesAreaPadding);\n this.updateScale();\n this.updatePosition({ rotation: rotation, sideFlag: sideFlag });\n this.updateLine();\n var _b = this.generateTicks({\n primaryTickCount: primaryTickCount,\n parallelFlipRotation: parallelFlipRotation,\n regularFlipRotation: regularFlipRotation,\n labelX: labelX,\n sideFlag: sideFlag,\n }), tickData = _b.tickData, combinedRotation = _b.combinedRotation, textBaseline = _b.textBaseline, textAlign = _b.textAlign, ticksResult = __rest$4(_b, [\"tickData\", \"combinedRotation\", \"textBaseline\", \"textAlign\"]);\n this.updateSelections(tickData.ticks);\n if (this.animationManager.skipAnimations) {\n this.resetSelectionNodes();\n }\n else {\n var diff = this.calculateUpdateDiff(previous, tickData);\n this.animationState.transition('update', diff);\n }\n this.updateLabels({\n tickLabelGroupSelection: this.tickLabelGroupSelection,\n combinedRotation: combinedRotation,\n textBaseline: textBaseline,\n textAlign: textAlign,\n labelX: labelX,\n });\n this.updateVisibility();\n this.updateGridLines(sideFlag);\n this.updateTickLines(sideFlag);\n this.updateTitle({ anyTickVisible: tickData.ticks.length > 0, sideFlag: sideFlag });\n this.updateCrossLines({ rotation: rotation, parallelFlipRotation: parallelFlipRotation, regularFlipRotation: regularFlipRotation, sideFlag: sideFlag });\n this.updateLayoutState();\n primaryTickCount = ticksResult.primaryTickCount;\n return primaryTickCount;\n };\n Axis.prototype.updateLayoutState = function () {\n this.layout.label = {\n fractionDigits: this.fractionDigits,\n padding: this.label.padding,\n format: this.label.format,\n };\n };\n Axis.prototype.updateScale = function () {\n this.updateRange();\n this.calculateDomain();\n this.setDomain();\n this.setTickInterval(this.tick.interval);\n var _a = this, scale = _a.scale, nice = _a.nice;\n if (!(scale instanceof ContinuousScale)) {\n return;\n }\n this.setTickCount(this.tick.count);\n scale.nice = nice;\n scale.update();\n };\n Axis.prototype.calculateRotations = function () {\n var rotation = toRadians$1(this.rotation);\n // When labels are parallel to the axis line, the `parallelFlipFlag` is used to\n // flip the labels to avoid upside-down text, when the axis is rotated\n // such that it is in the right hemisphere, i.e. the angle of rotation\n // is in the [0, π] interval.\n // The rotation angle is normalized, so that we have an easier time checking\n // if it's in the said interval. Since the axis is always rendered vertically\n // and then rotated, zero rotation means 12 (not 3) o-clock.\n // -1 = flip\n // 1 = don't flip (default)\n var parallelFlipRotation = normalizeAngle360(rotation);\n var regularFlipRotation = normalizeAngle360(rotation - Math.PI / 2);\n return { rotation: rotation, parallelFlipRotation: parallelFlipRotation, regularFlipRotation: regularFlipRotation };\n };\n Axis.prototype.generateTicks = function (_a) {\n var e_2, _b, _c;\n var _d;\n var primaryTickCount = _a.primaryTickCount, parallelFlipRotation = _a.parallelFlipRotation, regularFlipRotation = _a.regularFlipRotation, labelX = _a.labelX, sideFlag = _a.sideFlag;\n var _e = this, scale = _e.scale, tick = _e.tick, _f = _e.label, parallel = _f.parallel, rotation = _f.rotation, fontFamily = _f.fontFamily, fontSize = _f.fontSize, fontStyle = _f.fontStyle, fontWeight = _f.fontWeight;\n var secondaryAxis = primaryTickCount !== undefined;\n var _g = calculateLabelRotation({\n rotation: rotation,\n parallel: parallel,\n regularFlipRotation: regularFlipRotation,\n parallelFlipRotation: parallelFlipRotation,\n }), defaultRotation = _g.defaultRotation, configuredRotation = _g.configuredRotation, parallelFlipFlag = _g.parallelFlipFlag, regularFlipFlag = _g.regularFlipFlag;\n var initialRotation = configuredRotation + defaultRotation;\n var labelMatrix = new Matrix();\n var maxTickCount = this.estimateTickCount({\n minSpacing: tick.minSpacing,\n maxSpacing: (_d = tick.maxSpacing) !== null && _d !== void 0 ? _d : NaN,\n }).maxTickCount;\n var continuous = scale instanceof ContinuousScale;\n var maxIterations = tick.count || !continuous || isNaN(maxTickCount) ? 10 : maxTickCount;\n var textAlign = getTextAlign(parallel, configuredRotation, 0, sideFlag, regularFlipFlag);\n var textBaseline = getTextBaseline(parallel, configuredRotation, sideFlag, parallelFlipFlag);\n var textProps = {\n fontFamily: fontFamily,\n fontSize: fontSize,\n fontStyle: fontStyle,\n fontWeight: fontWeight,\n textBaseline: textBaseline,\n textAlign: textAlign,\n };\n var tickData = {\n rawTicks: [],\n ticks: [],\n labelCount: 0,\n };\n var index = 0;\n var autoRotation = 0;\n var labelOverlap = true;\n var terminate = false;\n while (labelOverlap && index <= maxIterations) {\n if (terminate) {\n break;\n }\n autoRotation = 0;\n textAlign = getTextAlign(parallel, configuredRotation, 0, sideFlag, regularFlipFlag);\n var tickStrategies = this.getTickStrategies({ secondaryAxis: secondaryAxis, index: index });\n try {\n for (var tickStrategies_1 = (e_2 = void 0, __values$l(tickStrategies)), tickStrategies_1_1 = tickStrategies_1.next(); !tickStrategies_1_1.done; tickStrategies_1_1 = tickStrategies_1.next()) {\n var strategy = tickStrategies_1_1.value;\n (_c = strategy({\n index: index,\n tickData: tickData,\n textProps: textProps,\n labelOverlap: labelOverlap,\n terminate: terminate,\n primaryTickCount: primaryTickCount,\n }), tickData = _c.tickData, index = _c.index, autoRotation = _c.autoRotation, terminate = _c.terminate);\n var ticksResult = tickData.ticks;\n textAlign = getTextAlign(parallel, configuredRotation, autoRotation, sideFlag, regularFlipFlag);\n var rotated = configuredRotation !== 0 || autoRotation !== 0;\n var rotation_1 = initialRotation + autoRotation;\n labelOverlap = this.checkLabelOverlap(rotation_1, rotated, labelMatrix, ticksResult, labelX, __assign$J(__assign$J({}, textProps), { textAlign: textAlign }));\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (tickStrategies_1_1 && !tickStrategies_1_1.done && (_b = tickStrategies_1.return)) _b.call(tickStrategies_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n var combinedRotation = defaultRotation + configuredRotation + autoRotation;\n if (!secondaryAxis && tickData.rawTicks.length > 0) {\n primaryTickCount = tickData.rawTicks.length;\n }\n return { tickData: tickData, primaryTickCount: primaryTickCount, combinedRotation: combinedRotation, textBaseline: textBaseline, textAlign: textAlign };\n };\n Axis.prototype.getTickStrategies = function (_a) {\n var _this = this;\n var index = _a.index, secondaryAxis = _a.secondaryAxis;\n var _b = this, scale = _b.scale, label = _b.label, tick = _b.tick;\n var continuous = scale instanceof ContinuousScale;\n var avoidLabelCollisions = label.enabled && label.avoidCollisions;\n var filterTicks = !(continuous && this.tick.count === undefined) && index !== 0 && avoidLabelCollisions;\n var autoRotate = label.autoRotate === true && label.rotation === undefined;\n var strategies = [];\n var tickGenerationType;\n if (this.tick.values) {\n tickGenerationType = TickGenerationType.VALUES;\n }\n else if (secondaryAxis) {\n tickGenerationType = TickGenerationType.CREATE_SECONDARY;\n }\n else if (filterTicks) {\n tickGenerationType = TickGenerationType.FILTER;\n }\n else {\n tickGenerationType = TickGenerationType.CREATE;\n }\n var tickGenerationStrategy = function (_a) {\n var index = _a.index, tickData = _a.tickData, primaryTickCount = _a.primaryTickCount, terminate = _a.terminate;\n return _this.createTickData(tickGenerationType, index, tickData, terminate, primaryTickCount);\n };\n strategies.push(tickGenerationStrategy);\n if (!continuous && !isNaN(tick.minSpacing)) {\n var tickFilterStrategy = function (_a) {\n var index = _a.index, tickData = _a.tickData, primaryTickCount = _a.primaryTickCount, terminate = _a.terminate;\n return _this.createTickData(TickGenerationType.FILTER, index, tickData, terminate, primaryTickCount);\n };\n strategies.push(tickFilterStrategy);\n }\n if (!avoidLabelCollisions) {\n return strategies;\n }\n if (label.autoWrap) {\n var autoWrapStrategy = function (_a) {\n var index = _a.index, tickData = _a.tickData, textProps = _a.textProps;\n return _this.wrapLabels(tickData, index, textProps);\n };\n strategies.push(autoWrapStrategy);\n }\n else if (autoRotate) {\n var autoRotateStrategy = function (_a) {\n var index = _a.index, tickData = _a.tickData, labelOverlap = _a.labelOverlap, terminate = _a.terminate;\n return ({\n index: index,\n tickData: tickData,\n autoRotation: _this.getAutoRotation(labelOverlap),\n terminate: terminate,\n });\n };\n strategies.push(autoRotateStrategy);\n }\n return strategies;\n };\n Axis.prototype.createTickData = function (tickGenerationType, index, tickData, terminate, primaryTickCount) {\n var _a, _b, _c;\n var _d = this, scale = _d.scale, tick = _d.tick;\n var _e = this.estimateTickCount({\n minSpacing: tick.minSpacing,\n maxSpacing: (_a = tick.maxSpacing) !== null && _a !== void 0 ? _a : NaN,\n }), maxTickCount = _e.maxTickCount, minTickCount = _e.minTickCount, defaultTickCount = _e.defaultTickCount;\n var continuous = scale instanceof ContinuousScale;\n var maxIterations = tick.count || !continuous || isNaN(maxTickCount) ? 10 : maxTickCount;\n var tickCount = (_b = tick.count) !== null && _b !== void 0 ? _b : (continuous ? Math.max(defaultTickCount - index, minTickCount) : maxTickCount);\n var regenerateTicks = tick.interval === undefined &&\n tick.values === undefined &&\n tick.count === undefined &&\n tickCount > minTickCount &&\n (continuous || tickGenerationType === TickGenerationType.FILTER);\n var unchanged = true;\n while (unchanged && index <= maxIterations) {\n var prevTicks = tickData.rawTicks;\n tickCount = (_c = tick.count) !== null && _c !== void 0 ? _c : (continuous ? Math.max(defaultTickCount - index, minTickCount) : maxTickCount);\n var _f = this.getTicks({\n tickGenerationType: tickGenerationType,\n previousTicks: prevTicks,\n tickCount: tickCount,\n minTickCount: minTickCount,\n maxTickCount: maxTickCount,\n primaryTickCount: primaryTickCount,\n }), rawTicks = _f.rawTicks, ticks = _f.ticks, labelCount = _f.labelCount;\n tickData.rawTicks = rawTicks;\n tickData.ticks = ticks;\n tickData.labelCount = labelCount;\n unchanged = regenerateTicks ? areArrayNumbersEqual(rawTicks, prevTicks) : false;\n index++;\n }\n var shouldTerminate = tick.interval !== undefined || tick.values !== undefined;\n terminate || (terminate = shouldTerminate);\n return { tickData: tickData, index: index, autoRotation: 0, terminate: terminate };\n };\n Axis.prototype.checkLabelOverlap = function (rotation, rotated, labelMatrix, tickData, labelX, textProps) {\n Matrix.updateTransformMatrix(labelMatrix, 1, 1, rotation, 0, 0);\n var labelData = this.createLabelData(tickData, labelX, textProps, labelMatrix);\n var labelSpacing = getLabelSpacing(this.label.minSpacing, rotated);\n return axisLabelsOverlap(labelData, labelSpacing);\n };\n Axis.prototype.createLabelData = function (tickData, labelX, textProps, labelMatrix) {\n var e_3, _a;\n var labelData = [];\n try {\n for (var tickData_1 = __values$l(tickData), tickData_1_1 = tickData_1.next(); !tickData_1_1.done; tickData_1_1 = tickData_1.next()) {\n var tickDatum = tickData_1_1.value;\n var tickLabel = tickDatum.tickLabel, translationY = tickDatum.translationY;\n if (tickLabel === '' || tickLabel == undefined) {\n // skip user hidden ticks\n continue;\n }\n var lines = splitText(tickLabel);\n var _b = measureText(lines, labelX, translationY, textProps), width = _b.width, height = _b.height;\n var bbox = new BBox(labelX, translationY, width, height);\n var labelDatum = calculateLabelBBox(tickLabel, bbox, labelX, translationY, labelMatrix);\n labelData.push(labelDatum);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (tickData_1_1 && !tickData_1_1.done && (_a = tickData_1.return)) _a.call(tickData_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return labelData;\n };\n Axis.prototype.getAutoRotation = function (labelOveralap) {\n return labelOveralap ? normalizeAngle360(toRadians$1(this.label.autoRotateAngle)) : 0;\n };\n Axis.prototype.getTicks = function (_a) {\n var _b;\n var tickGenerationType = _a.tickGenerationType, previousTicks = _a.previousTicks, tickCount = _a.tickCount, minTickCount = _a.minTickCount, maxTickCount = _a.maxTickCount, primaryTickCount = _a.primaryTickCount;\n var scale = this.scale;\n var rawTicks = [];\n switch (tickGenerationType) {\n case TickGenerationType.VALUES:\n rawTicks = this.tick.values;\n break;\n case TickGenerationType.CREATE_SECONDARY:\n // `updateSecondaryAxisTicks` mutates `scale.domain` based on `primaryTickCount`\n rawTicks = this.updateSecondaryAxisTicks(primaryTickCount);\n break;\n case TickGenerationType.FILTER:\n rawTicks = this.filterTicks(previousTicks, tickCount);\n break;\n default:\n rawTicks = this.createTicks(tickCount, minTickCount, maxTickCount);\n break;\n }\n // When the scale domain or the ticks change, the label format may change\n this.onLabelFormatChange(rawTicks, this.label.format);\n // `ticks instanceof NumericTicks` doesn't work here, so we feature detect.\n this.fractionDigits = rawTicks.fractionDigits >= 0 ? rawTicks.fractionDigits : 0;\n var halfBandwidth = ((_b = this.scale.bandwidth) !== null && _b !== void 0 ? _b : 0) / 2;\n var ticks = [];\n var labelCount = 0;\n var tickIdCounts = new Map();\n for (var i = 0; i < rawTicks.length; i++) {\n var rawTick = rawTicks[i];\n var translationY = scale.convert(rawTick) + halfBandwidth;\n var tickLabel = this.formatTick(rawTick, i);\n // Create a tick id from the label, or as an increment of the last label if this tick label is blank\n var tickId = tickLabel;\n if (tickIdCounts.has(tickId)) {\n var count = tickIdCounts.get(tickId);\n tickIdCounts.set(tickId, count + 1);\n tickId = tickId + \"_\" + count;\n }\n else {\n tickIdCounts.set(tickId, 1);\n }\n ticks.push({ tick: rawTick, tickId: tickId, tickLabel: tickLabel, translationY: translationY });\n if (tickLabel === '' || tickLabel == undefined) {\n continue;\n }\n labelCount++;\n }\n return { rawTicks: rawTicks, ticks: ticks, labelCount: labelCount };\n };\n Axis.prototype.filterTicks = function (ticks, tickCount) {\n var _a;\n var tickSpacing = !isNaN(this.tick.minSpacing) || !isNaN((_a = this.tick.maxSpacing) !== null && _a !== void 0 ? _a : NaN);\n var keepEvery = tickSpacing ? Math.ceil(ticks.length / tickCount) : 2;\n return ticks.filter(function (_, i) { return i % keepEvery === 0; });\n };\n Axis.prototype.createTicks = function (tickCount, minTickCount, maxTickCount) {\n var _a, _b, _c;\n this.setTickCount(tickCount, minTickCount, maxTickCount);\n return (_c = (_b = (_a = this.scale).ticks) === null || _b === void 0 ? void 0 : _b.call(_a)) !== null && _c !== void 0 ? _c : [];\n };\n Axis.prototype.estimateTickCount = function (_a) {\n var minSpacing = _a.minSpacing, maxSpacing = _a.maxSpacing;\n var availableRange = this.calculateAvailableRange();\n var defaultMinSpacing = Math.max(Axis.defaultTickMinSpacing, availableRange / ContinuousScale.defaultMaxTickCount);\n if (isNaN(minSpacing) && isNaN(maxSpacing)) {\n minSpacing = defaultMinSpacing;\n maxSpacing = availableRange;\n if (minSpacing > maxSpacing) {\n // Take automatic minSpacing if there is a conflict.\n maxSpacing = minSpacing;\n }\n }\n else if (isNaN(minSpacing)) {\n minSpacing = defaultMinSpacing;\n if (minSpacing > maxSpacing) {\n // Take user-suplied maxSpacing if there is a conflict.\n minSpacing = maxSpacing;\n }\n }\n else if (isNaN(maxSpacing)) {\n maxSpacing = availableRange;\n if (minSpacing > maxSpacing) {\n // Take user-suplied minSpacing if there is a conflict.\n maxSpacing = minSpacing;\n }\n }\n var maxTickCount = Math.max(1, Math.floor(availableRange / minSpacing));\n var minTickCount = Math.min(maxTickCount, Math.ceil(availableRange / maxSpacing));\n var defaultTickCount = ContinuousScale.defaultTickCount;\n if (defaultTickCount > maxTickCount) {\n defaultTickCount = maxTickCount;\n }\n else if (defaultTickCount < minTickCount) {\n defaultTickCount = minTickCount;\n }\n return { minTickCount: minTickCount, maxTickCount: maxTickCount, defaultTickCount: defaultTickCount };\n };\n Axis.prototype.updateVisibility = function () {\n var requestedRange = this.range;\n var requestedRangeMin = Math.min.apply(Math, __spreadArray$q([], __read$K(requestedRange)));\n var requestedRangeMax = Math.max.apply(Math, __spreadArray$q([], __read$K(requestedRange)));\n var visibleFn = function (node) {\n var min = Math.floor(requestedRangeMin);\n var max = Math.ceil(requestedRangeMax);\n if (min === max) {\n node.visible = false;\n return;\n }\n // Fix an effect of rounding error\n if (node.translationY >= min - 1 && node.translationY < min) {\n node.translationY = min;\n }\n if (node.translationY > max && node.translationY <= max + 1) {\n node.translationY = max;\n }\n var visible = node.translationY >= min && node.translationY <= max;\n node.visible = visible;\n };\n var _a = this, gridLineGroupSelection = _a.gridLineGroupSelection, tickLineGroupSelection = _a.tickLineGroupSelection, tickLabelGroupSelection = _a.tickLabelGroupSelection;\n gridLineGroupSelection.each(visibleFn);\n tickLineGroupSelection.each(visibleFn);\n tickLabelGroupSelection.each(visibleFn);\n this.tickLineGroup.visible = this.tick.enabled;\n this.tickLabelGroup.visible = this.label.enabled;\n };\n Axis.prototype.updateCrossLines = function (_a) {\n var _this = this;\n var _b;\n var rotation = _a.rotation, parallelFlipRotation = _a.parallelFlipRotation, regularFlipRotation = _a.regularFlipRotation, sideFlag = _a.sideFlag;\n var anySeriesActive = this.isAnySeriesActive();\n (_b = this.crossLines) === null || _b === void 0 ? void 0 : _b.forEach(function (crossLine) {\n var _a;\n crossLine.sideFlag = -sideFlag;\n crossLine.direction = rotation === -Math.PI / 2 ? ChartAxisDirection.X : ChartAxisDirection.Y;\n crossLine.label.parallel = (_a = crossLine.label.parallel) !== null && _a !== void 0 ? _a : _this.label.parallel;\n crossLine.parallelFlipRotation = parallelFlipRotation;\n crossLine.regularFlipRotation = regularFlipRotation;\n crossLine.update(anySeriesActive);\n });\n };\n Axis.prototype.updateTickLines = function (sideFlag) {\n var tick = this.tick;\n this.tickLineGroupSelection.each(function (line) {\n line.strokeWidth = tick.width;\n line.stroke = tick.color;\n line.x1 = sideFlag * tick.size;\n line.x2 = 0;\n line.y1 = 0;\n line.y2 = 0;\n });\n };\n Axis.prototype.calculateAvailableRange = function () {\n var requestedRange = this.range;\n var min = Math.min.apply(Math, __spreadArray$q([], __read$K(requestedRange)));\n var max = Math.max.apply(Math, __spreadArray$q([], __read$K(requestedRange)));\n return max - min;\n };\n Axis.prototype.calculateDomain = function () {\n var e_4, _a, _b;\n var _c = this, direction = _c.direction, boundSeries = _c.boundSeries, includeInvisibleDomains = _c.includeInvisibleDomains;\n if (this.linkedTo) {\n this.dataDomain = this.linkedTo.dataDomain;\n }\n else {\n var domains = [];\n var visibleSeries = boundSeries.filter(function (s) { return includeInvisibleDomains || s.isEnabled(); });\n try {\n for (var visibleSeries_1 = __values$l(visibleSeries), visibleSeries_1_1 = visibleSeries_1.next(); !visibleSeries_1_1.done; visibleSeries_1_1 = visibleSeries_1.next()) {\n var series = visibleSeries_1_1.value;\n domains.push(series.getDomain(direction));\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (visibleSeries_1_1 && !visibleSeries_1_1.done && (_a = visibleSeries_1.return)) _a.call(visibleSeries_1);\n }\n finally { if (e_4) throw e_4.error; }\n }\n var domain = (_b = new Array()).concat.apply(_b, __spreadArray$q([], __read$K(domains)));\n this.dataDomain = this.normaliseDataDomain(domain);\n }\n };\n Axis.prototype.updatePosition = function (_a) {\n var rotation = _a.rotation, sideFlag = _a.sideFlag;\n var _b = this, crossLineGroup = _b.crossLineGroup, axisGroup = _b.axisGroup, gridGroup = _b.gridGroup, translation = _b.translation, gridLineGroupSelection = _b.gridLineGroupSelection, gridPadding = _b.gridPadding, gridLength = _b.gridLength;\n var translationX = Math.floor(translation.x);\n var translationY = Math.floor(translation.y);\n crossLineGroup.translationX = translationX;\n crossLineGroup.translationY = translationY;\n crossLineGroup.rotation = rotation;\n axisGroup.translationX = translationX;\n axisGroup.translationY = translationY;\n axisGroup.rotation = rotation;\n gridGroup.translationX = translationX;\n gridGroup.translationY = translationY;\n gridGroup.rotation = rotation;\n gridLineGroupSelection.each(function (line) {\n line.x1 = gridPadding;\n line.x2 = -sideFlag * gridLength + gridPadding;\n line.y1 = 0;\n line.y2 = 0;\n });\n };\n Axis.prototype.updateSecondaryAxisTicks = function (_primaryTickCount) {\n throw new Error('AG Charts - unexpected call to updateSecondaryAxisTicks() - check axes configuration.');\n };\n Axis.prototype.updateSelections = function (data) {\n var gridData = this.gridLength ? data : [];\n var gridLineGroupSelection = this.gridLineGroupSelection.update(gridData, function (group) {\n var node = new Line();\n node.tag = Tags.GridLine;\n group.append(node);\n }, function (datum) { return datum.tickId; });\n var tickLineGroupSelection = this.tickLineGroupSelection.update(data, function (group) {\n var line = new Line();\n line.tag = Tags.TickLine;\n group.appendChild(line);\n }, function (datum) { return datum.tickId; });\n var tickLabelGroupSelection = this.tickLabelGroupSelection.update(data, function (group) {\n var text = new Text();\n text.tag = Tags.TickLabel;\n group.appendChild(text);\n }, function (datum) { return datum.tickId; });\n this.tickLineGroupSelection = tickLineGroupSelection;\n this.tickLabelGroupSelection = tickLabelGroupSelection;\n this.gridLineGroupSelection = gridLineGroupSelection;\n };\n Axis.prototype.updateGridLines = function (sideFlag) {\n var _a = this, gridStyle = _a.gridStyle, tick = _a.tick, gridPadding = _a.gridPadding, gridLength = _a.gridLength;\n if (gridLength === 0 || gridStyle.length === 0) {\n return;\n }\n var styleCount = gridStyle.length;\n this.gridLineGroupSelection.each(function (line, _, index) {\n var style = gridStyle[index % styleCount];\n line.x1 = gridPadding;\n line.x2 = -sideFlag * gridLength + gridPadding;\n line.y1 = 0;\n line.y2 = 0;\n line.stroke = style.stroke;\n line.strokeWidth = tick.width;\n line.lineDash = style.lineDash;\n line.fill = undefined;\n });\n };\n Axis.prototype.updateLabels = function (_a) {\n var tickLabelGroupSelection = _a.tickLabelGroupSelection, combinedRotation = _a.combinedRotation, textBaseline = _a.textBaseline, textAlign = _a.textAlign, labelX = _a.labelX;\n var _b = this, label = _b.label, labelsEnabled = _b.label.enabled;\n if (!labelsEnabled) {\n return;\n }\n // Apply label option values\n tickLabelGroupSelection.each(function (node, datum) {\n var tickLabel = datum.tickLabel;\n node.fontStyle = label.fontStyle;\n node.fontWeight = label.fontWeight;\n node.fontSize = label.fontSize;\n node.fontFamily = label.fontFamily;\n node.fill = label.color;\n node.text = tickLabel;\n var userHidden = node.text === '' || node.text == undefined;\n if (userHidden) {\n node.visible = false; // hide empty labels\n return;\n }\n // Position labels\n node.textBaseline = textBaseline;\n node.textAlign = textAlign;\n node.x = labelX;\n node.rotationCenterX = labelX;\n node.rotation = combinedRotation;\n node.visible = true;\n });\n };\n Axis.prototype.wrapLabels = function (tickData, index, labelProps) {\n var _a = this.label, parallel = _a.parallel, maxWidth = _a.maxWidth, maxHeight = _a.maxHeight;\n var defaultMaxLabelWidth = parallel\n ? Math.round(this.calculateAvailableRange() / tickData.labelCount)\n : this.maxThickness;\n var maxLabelWidth = maxWidth !== null && maxWidth !== void 0 ? maxWidth : defaultMaxLabelWidth;\n var defaultMaxLabelHeight = parallel\n ? this.maxThickness\n : Math.round(this.calculateAvailableRange() / tickData.labelCount);\n var maxLabelHeight = maxHeight !== null && maxHeight !== void 0 ? maxHeight : defaultMaxLabelHeight;\n tickData.ticks.forEach(function (tickDatum) {\n var tickLabel = tickDatum.tickLabel;\n var wrapping = 'hyphenate';\n var wrappedTickLabel = Text.wrap(tickLabel, maxLabelWidth, maxLabelHeight, labelProps, wrapping);\n tickDatum.tickLabel = wrappedTickLabel;\n });\n return { tickData: tickData, index: index, autoRotation: 0, terminate: true };\n };\n Axis.prototype.updateLine = function () {\n // Render axis line.\n var _a = this, lineNode = _a.lineNode, requestedRange = _a.range;\n lineNode.x1 = 0;\n lineNode.x2 = 0;\n lineNode.y1 = requestedRange[0];\n lineNode.y2 = requestedRange[1];\n lineNode.strokeWidth = this.line.width;\n lineNode.stroke = this.line.color;\n lineNode.visible = true;\n };\n Axis.prototype.updateTitle = function (_a) {\n var _b;\n var anyTickVisible = _a.anyTickVisible, sideFlag = _a.sideFlag;\n var identityFormatter = function (params) { return params.defaultValue; };\n var _c = this, rotation = _c.rotation, title = _c.title, _titleCaption = _c._titleCaption, lineNode = _c.lineNode, requestedRange = _c.range, tickLineGroup = _c.tickLineGroup, tickLabelGroup = _c.tickLabelGroup, callbackCache = _c.moduleCtx.callbackCache;\n var _d = ((_b = this.title) !== null && _b !== void 0 ? _b : {}).formatter, formatter = _d === void 0 ? identityFormatter : _d;\n if (!title) {\n _titleCaption.enabled = false;\n return;\n }\n _titleCaption.enabled = title.enabled;\n _titleCaption.fontFamily = title.fontFamily;\n _titleCaption.fontSize = title.fontSize;\n _titleCaption.fontStyle = title.fontStyle;\n _titleCaption.fontWeight = title.fontWeight;\n _titleCaption.color = title.color;\n _titleCaption.wrapping = title.wrapping;\n var titleVisible = false;\n var titleNode = _titleCaption.node;\n if (title.enabled && lineNode.visible) {\n titleVisible = true;\n var parallelFlipRotation = normalizeAngle360(rotation);\n var padding = Caption.PADDING;\n var titleRotationFlag = sideFlag === -1 && parallelFlipRotation > Math.PI && parallelFlipRotation < Math.PI * 2 ? -1 : 1;\n titleNode.rotation = (titleRotationFlag * sideFlag * Math.PI) / 2;\n titleNode.x = Math.floor((titleRotationFlag * sideFlag * (requestedRange[0] + requestedRange[1])) / 2);\n var bboxYDimension = 0;\n if (anyTickVisible) {\n var tickBBox = Group.computeBBox([tickLineGroup, tickLabelGroup]);\n var tickWidth = rotation === 0 ? tickBBox.width : tickBBox.height;\n if (Math.abs(tickWidth) < Infinity) {\n bboxYDimension += tickWidth;\n }\n }\n if (sideFlag === -1) {\n titleNode.y = Math.floor(titleRotationFlag * (-padding - bboxYDimension));\n }\n else {\n titleNode.y = Math.floor(-padding - bboxYDimension);\n }\n titleNode.textBaseline = titleRotationFlag === 1 ? 'bottom' : 'top';\n titleNode.text = callbackCache.call(formatter, this.getTitleFormatterParams());\n }\n titleNode.visible = titleVisible;\n };\n // For formatting (nice rounded) tick values.\n Axis.prototype.formatTick = function (datum, index) {\n var _a, _b;\n var _c = this, label = _c.label, labelFormatter = _c.labelFormatter, fractionDigits = _c.fractionDigits, callbackCache = _c.moduleCtx.callbackCache;\n if (label.formatter) {\n var defaultValue = fractionDigits > 0 ? datum : String(datum);\n return ((_a = callbackCache.call(label.formatter, {\n value: defaultValue,\n index: index,\n fractionDigits: fractionDigits,\n formatter: labelFormatter,\n })) !== null && _a !== void 0 ? _a : defaultValue);\n }\n else if (labelFormatter) {\n return (_b = callbackCache.call(labelFormatter, datum)) !== null && _b !== void 0 ? _b : String(datum);\n }\n // The axis is using a logScale or the`datum` is an integer, a string or an object\n return String(datum);\n };\n // For formatting arbitrary values between the ticks.\n Axis.prototype.formatDatum = function (datum) {\n return String(datum);\n };\n Axis.prototype.computeBBox = function () {\n return this.axisGroup.computeBBox();\n };\n Axis.prototype.initCrossLine = function (crossLine) {\n crossLine.scale = this.scale;\n crossLine.gridLength = this.gridLength;\n };\n Axis.prototype.isAnySeriesActive = function () {\n var _this = this;\n return this.boundSeries.some(function (s) { return _this.includeInvisibleDomains || s.isEnabled(); });\n };\n Axis.prototype.clipTickLines = function (x, y, width, height) {\n this.tickLineGroup.setClipRectInGroupCoordinateSpace(new BBox(x, y, width, height));\n };\n Axis.prototype.clipGrid = function (x, y, width, height) {\n this.gridGroup.setClipRectInGroupCoordinateSpace(new BBox(x, y, width, height));\n };\n Axis.prototype.calculatePadding = function (min, _max) {\n return [Math.abs(min * 0.01), Math.abs(min * 0.01)];\n };\n Axis.prototype.getTitleFormatterParams = function () {\n var _this = this;\n var _a;\n var boundSeries = this.boundSeries.reduce(function (acc, next) {\n var keys = next.getKeys(_this.direction);\n var names = next.getNames(_this.direction);\n for (var idx = 0; idx < keys.length; idx++) {\n acc.push({\n key: keys[idx],\n name: names[idx],\n });\n }\n return acc;\n }, []);\n return {\n direction: this.direction,\n boundSeries: boundSeries,\n defaultValue: (_a = this.title) === null || _a === void 0 ? void 0 : _a.text,\n };\n };\n Axis.prototype.normaliseDataDomain = function (d) {\n return d;\n };\n Axis.prototype.getLayoutState = function () {\n return __assign$J({ rect: this.computeBBox(), gridPadding: this.gridPadding, seriesAreaPadding: this.seriesAreaPadding, tickSize: this.tick.size }, this.layout);\n };\n Axis.prototype.createAxisContext = function () {\n var _this = this;\n var keys = function () {\n return _this.boundSeries\n .map(function (s) { return s.getKeys(_this.direction); })\n .reduce(function (keys, seriesKeys) {\n keys.push.apply(keys, __spreadArray$q([], __read$K(seriesKeys)));\n return keys;\n }, []);\n };\n return {\n axisId: this.id,\n direction: this.direction,\n continuous: this.scale instanceof ContinuousScale,\n keys: keys,\n scaleValueFormatter: function (specifier) { var _a, _b, _c; return (_c = (_b = (_a = _this.scale).tickFormat) === null || _b === void 0 ? void 0 : _b.call(_a, { specifier: specifier })) !== null && _c !== void 0 ? _c : undefined; },\n scaleBandwidth: function () { var _a; return (_a = _this.scale.bandwidth) !== null && _a !== void 0 ? _a : 0; },\n scaleConvert: function (val) { return _this.scale.convert(val); },\n scaleInvert: function (val) { var _a, _b, _c; return (_c = (_b = (_a = _this.scale).invert) === null || _b === void 0 ? void 0 : _b.call(_a, val)) !== null && _c !== void 0 ? _c : undefined; },\n };\n };\n Axis.prototype.addModule = function (module) {\n if (this.modules[module.optionsKey] != null) {\n throw new Error('AG Charts - module already initialised: ' + module.optionsKey);\n }\n if (this.axisContext == null) {\n this.axisContext = this.createAxisContext();\n }\n var moduleInstance = new module.instanceConstructor(__assign$J(__assign$J({}, this.moduleCtx), { parent: this.axisContext }));\n this.modules[module.optionsKey] = { instance: moduleInstance };\n this[module.optionsKey] = moduleInstance;\n };\n Axis.prototype.removeModule = function (module) {\n var _a, _b;\n (_b = (_a = this.modules[module.optionsKey]) === null || _a === void 0 ? void 0 : _a.instance) === null || _b === void 0 ? void 0 : _b.destroy();\n delete this.modules[module.optionsKey];\n delete this[module.optionsKey];\n };\n Axis.prototype.isModuleEnabled = function (module) {\n return this.modules[module.optionsKey] != null;\n };\n Axis.prototype.animateReadyUpdate = function (diff) {\n var _this = this;\n var _a, _b;\n if (!diff.changed) {\n this.resetSelectionNodes();\n return;\n }\n var _c = this, gridLineGroupSelection = _c.gridLineGroupSelection, tickLineGroupSelection = _c.tickLineGroupSelection, tickLabelGroupSelection = _c.tickLabelGroupSelection;\n var addedCount = Object.keys(diff.added).length;\n var removedCount = Object.keys(diff.removed).length;\n if (removedCount === diff.tickCount) {\n this.resetSelectionNodes();\n return;\n }\n var totalDuration = (_b = (_a = this.animationManager) === null || _a === void 0 ? void 0 : _a.defaultOptions.duration) !== null && _b !== void 0 ? _b : 1000;\n var sectionDuration = Math.floor(totalDuration / 2);\n if (addedCount > 0 && removedCount > 0) {\n sectionDuration = Math.floor(totalDuration / 3);\n }\n var options = {\n delay: removedCount > 0 ? sectionDuration : 0,\n duration: sectionDuration,\n };\n var animationGroup = this.id + \"_\" + Math.random();\n tickLabelGroupSelection.each(function (node, datum) {\n _this.animateSelectionNode(tickLabelGroupSelection, diff, options, node, datum, animationGroup);\n });\n gridLineGroupSelection.each(function (node, datum) {\n _this.animateSelectionNode(gridLineGroupSelection, diff, options, node, datum, animationGroup);\n });\n tickLineGroupSelection.each(function (node, datum) {\n _this.animateSelectionNode(tickLineGroupSelection, diff, options, node, datum, animationGroup);\n });\n };\n Axis.prototype.animateSelectionNode = function (selection, diff, options, node, datum, animationGroup) {\n var roundedTranslationY = Math.round(datum.translationY);\n var translate = { from: node.translationY, to: roundedTranslationY };\n var opacity = { from: 1, to: 1 };\n var duration = options.duration;\n var delay = options.delay;\n var datumId = datum.tickLabel;\n if (diff.added[datumId]) {\n translate = { from: roundedTranslationY, to: roundedTranslationY };\n opacity = { from: 0, to: 1 };\n delay += duration;\n }\n else if (diff.removed[datumId]) {\n opacity = { from: 1, to: 0 };\n delay = 0;\n }\n var props = [translate, opacity];\n this.animationManager.animateManyWithThrottle(this.id + \"_ready-update_\" + node.id, props, {\n disableInteractions: false,\n delay: delay,\n duration: duration,\n ease: easeOut,\n throttleId: this.id,\n throttleGroup: animationGroup,\n onUpdate: function (_a) {\n var _b = __read$K(_a, 2), translationY = _b[0], opacity = _b[1];\n node.translationY = translationY;\n node.opacity = opacity;\n },\n onComplete: function () {\n selection.cleanup();\n },\n });\n };\n Axis.prototype.resetSelectionNodes = function () {\n var _a = this, gridLineGroupSelection = _a.gridLineGroupSelection, tickLineGroupSelection = _a.tickLineGroupSelection, tickLabelGroupSelection = _a.tickLabelGroupSelection;\n gridLineGroupSelection.cleanup();\n tickLineGroupSelection.cleanup();\n tickLabelGroupSelection.cleanup();\n // We need raw `translationY` values on `datum` for accurate label collision detection in axes.update()\n // But node `translationY` values must be rounded to get pixel grid alignment\n var resetFn = function (node) {\n node.translationY = Math.round(node.datum.translationY);\n node.opacity = 1;\n };\n gridLineGroupSelection.each(resetFn);\n tickLineGroupSelection.each(resetFn);\n tickLabelGroupSelection.each(resetFn);\n };\n Axis.prototype.calculateUpdateDiff = function (previous, tickData) {\n var _a;\n var added = new Set();\n var removed = new Set();\n var tickCount = Math.max(previous.length, tickData.ticks.length);\n for (var i = 0; i < tickCount; i++) {\n var prev = previous[i];\n var tick = (_a = tickData.ticks[i]) === null || _a === void 0 ? void 0 : _a.tickId;\n if (prev === tick) {\n continue;\n }\n if (removed.has(tick)) {\n removed.delete(tick);\n }\n else if (tick) {\n added.add(tick);\n }\n if (added.has(prev)) {\n added.delete(prev);\n }\n else if (prev) {\n removed.add(prev);\n }\n }\n var addedKeys = {};\n var removedKeys = {};\n added.forEach(function (a) {\n addedKeys[a] = true;\n });\n removed.forEach(function (r) {\n removedKeys[r] = true;\n });\n return {\n changed: added.size > 0 || removed.size > 0,\n tickCount: tickCount,\n added: addedKeys,\n removed: removedKeys,\n };\n };\n Axis.defaultTickMinSpacing = 50;\n __decorate$1D([\n Validate(BOOLEAN)\n ], Axis.prototype, \"nice\", void 0);\n __decorate$1D([\n Validate(STRING_ARRAY)\n ], Axis.prototype, \"keys\", void 0);\n __decorate$1D([\n Validate(GRID_STYLE)\n ], Axis.prototype, \"gridStyle\", void 0);\n return Axis;\n}());\n\nvar __decorate$1C = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AxisTitle = /** @class */ (function () {\n function AxisTitle() {\n this.enabled = false;\n this.text = undefined;\n this.fontStyle = undefined;\n this.fontWeight = undefined;\n this.fontSize = 10;\n this.fontFamily = 'sans-serif';\n this.color = undefined;\n this.wrapping = 'always';\n this.formatter = undefined;\n }\n __decorate$1C([\n Validate(BOOLEAN)\n ], AxisTitle.prototype, \"enabled\", void 0);\n __decorate$1C([\n Validate(OPT_STRING)\n ], AxisTitle.prototype, \"text\", void 0);\n __decorate$1C([\n Validate(OPT_FONT_STYLE)\n ], AxisTitle.prototype, \"fontStyle\", void 0);\n __decorate$1C([\n Validate(OPT_FONT_WEIGHT)\n ], AxisTitle.prototype, \"fontWeight\", void 0);\n __decorate$1C([\n Validate(NUMBER(0))\n ], AxisTitle.prototype, \"fontSize\", void 0);\n __decorate$1C([\n Validate(STRING)\n ], AxisTitle.prototype, \"fontFamily\", void 0);\n __decorate$1C([\n Validate(OPT_COLOR_STRING)\n ], AxisTitle.prototype, \"color\", void 0);\n __decorate$1C([\n Validate(TEXT_WRAP)\n ], AxisTitle.prototype, \"wrapping\", void 0);\n __decorate$1C([\n Validate(OPT_FUNCTION)\n ], AxisTitle.prototype, \"formatter\", void 0);\n return AxisTitle;\n}());\n\nvar __extends$2l = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1B = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DropShadow = /** @class */ (function (_super) {\n __extends$2l(DropShadow, _super);\n function DropShadow() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.enabled = true;\n _this.color = 'rgba(0, 0, 0, 0.5)';\n _this.xOffset = 0;\n _this.yOffset = 0;\n _this.blur = 5;\n return _this;\n }\n __decorate$1B([\n Validate(BOOLEAN),\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], DropShadow.prototype, \"enabled\", void 0);\n __decorate$1B([\n Validate(COLOR_STRING),\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], DropShadow.prototype, \"color\", void 0);\n __decorate$1B([\n Validate(NUMBER()),\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], DropShadow.prototype, \"xOffset\", void 0);\n __decorate$1B([\n Validate(NUMBER()),\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], DropShadow.prototype, \"yOffset\", void 0);\n __decorate$1B([\n Validate(NUMBER(0)),\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], DropShadow.prototype, \"blur\", void 0);\n return DropShadow;\n}(ChangeDetectable));\n\nvar __extends$2k = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read$J = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\n/**\n * Maps continuous domain to a continuous range.\n */\nvar LinearScale$1 = /** @class */ (function (_super) {\n __extends$2k(LinearScale, _super);\n function LinearScale() {\n var _this = _super.call(this, [0, 1], [0, 1]) || this;\n _this.type = 'linear';\n return _this;\n }\n LinearScale.prototype.toDomain = function (d) {\n return d;\n };\n LinearScale.prototype.ticks = function () {\n var _a;\n var count = (_a = this.tickCount) !== null && _a !== void 0 ? _a : ContinuousScale.defaultTickCount;\n if (!this.domain || this.domain.length < 2 || count < 1 || this.domain.some(function (d) { return !isFinite(d); })) {\n return [];\n }\n this.refresh();\n var _b = __read$J(this.getDomain(), 2), d0 = _b[0], d1 = _b[1];\n var interval = this.interval;\n if (interval) {\n var step = Math.abs(interval);\n if (!this.isDenseInterval({ start: d0, stop: d1, interval: step })) {\n return range(d0, d1, step);\n }\n }\n return ticks(d0, d1, count, this.minTickCount, this.maxTickCount);\n };\n LinearScale.prototype.update = function () {\n if (!this.domain || this.domain.length < 2) {\n return;\n }\n if (this.nice) {\n this.updateNiceDomain();\n }\n };\n /**\n * Extends the domain so that it starts and ends on nice round values.\n * @param count Tick count.\n */\n LinearScale.prototype.updateNiceDomain = function () {\n var _a, _b;\n var count = (_a = this.tickCount) !== null && _a !== void 0 ? _a : ContinuousScale.defaultTickCount;\n var _c = __read$J(this.domain, 2), start = _c[0], stop = _c[1];\n if (count < 1) {\n this.niceDomain = [start, stop];\n return;\n }\n if (count === 1) {\n this.niceDomain = singleTickDomain(start, stop);\n return;\n }\n var maxAttempts = 4;\n var prev0 = start;\n var prev1 = stop;\n for (var i = 0; i < maxAttempts; i++) {\n var step = (_b = this.interval) !== null && _b !== void 0 ? _b : tickStep(start, stop, count, this.minTickCount, this.maxTickCount);\n var _d = __read$J(this.domain, 2), d0 = _d[0], d1 = _d[1];\n if (step >= 1) {\n start = Math.floor(d0 / step) * step;\n stop = Math.ceil(d1 / step) * step;\n }\n else {\n // Prevent floating point error\n var s = 1 / step;\n start = Math.floor(d0 * s) / s;\n stop = Math.ceil(d1 * s) / s;\n }\n if (start === prev0 && stop === prev1) {\n break;\n }\n prev0 = start;\n prev1 = stop;\n }\n this.niceDomain = [start, stop];\n };\n LinearScale.prototype.tickFormat = function (_a) {\n var ticks = _a.ticks, specifier = _a.specifier;\n return tickFormat(ticks !== null && ticks !== void 0 ? ticks : this.ticks(), specifier);\n };\n return LinearScale;\n}(ContinuousScale));\n\nfunction isEqual(a, b, epsilon) {\n if (epsilon === void 0) { epsilon = 1e-10; }\n return Math.abs(a - b) < epsilon;\n}\n/**\n * `Number.toFixed(n)` always formats a number so that it has `n` digits after the decimal point.\n * For example, `Number(0.00003427).toFixed(2)` returns `0.00`.\n * That's not very helpful, because all the meaningful information is lost.\n * In this case we would want the formatted value to have at least two significant digits: `0.000034`,\n * not two fraction digits.\n * @param value\n * @param fractionOrSignificantDigits\n */\nfunction toFixed(value, fractionOrSignificantDigits) {\n if (fractionOrSignificantDigits === void 0) { fractionOrSignificantDigits = 2; }\n var power = Math.floor(Math.log(Math.abs(value)) / Math.LN10);\n if (power >= 0 || !isFinite(power)) {\n return value.toFixed(fractionOrSignificantDigits); // fraction digits\n }\n return value.toFixed(Math.abs(power) - 1 + fractionOrSignificantDigits); // significant digits\n}\n/**\n * Returns the mathematically correct n modulus of m. For context, the JS % operator is remainder\n * NOT modulus, which is why this is needed.\n */\nfunction mod(n, m) {\n if (n >= 0) {\n return Math.floor(n % m);\n }\n return Math.floor((n % m) + m);\n}\n\nfunction isPointInSector(x, y, sector) {\n var radius = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));\n var innerRadius = sector.innerRadius, outerRadius = sector.outerRadius;\n if (radius < Math.min(innerRadius, outerRadius) || radius > Math.max(innerRadius, outerRadius)) {\n return false;\n }\n // Start and End angles are expected to be [-90, 270]\n // while Math.atan2 returns [-180, 180]\n var angle = Math.atan2(y, x);\n if (angle < -Math.PI / 2) {\n angle += 2 * Math.PI;\n }\n // Start is actually bigger than End clock-wise\n var startAngle = sector.startAngle, endAngle = sector.endAngle;\n if (endAngle === -Math.PI / 2) {\n return angle < startAngle;\n }\n if (startAngle === (3 * Math.PI) / 2) {\n return angle > endAngle;\n }\n return angle <= endAngle && angle >= startAngle;\n}\nfunction lineCollidesSector(line, sector) {\n var startAngle = sector.startAngle, endAngle = sector.endAngle, innerRadius = sector.innerRadius, outerRadius = sector.outerRadius;\n var outerStart = { x: outerRadius * Math.cos(startAngle), y: outerRadius * Math.sin(startAngle) };\n var outerEnd = { x: outerRadius * Math.cos(endAngle), y: outerRadius * Math.sin(endAngle) };\n var innerStart = innerRadius === 0\n ? { x: 0, y: 0 }\n : { x: innerRadius * Math.cos(startAngle), y: innerRadius * Math.sin(startAngle) };\n var innerEnd = innerRadius === 0\n ? { x: 0, y: 0 }\n : { x: innerRadius * Math.cos(endAngle), y: innerRadius * Math.sin(endAngle) };\n return (segmentIntersection(line.start.x, line.start.y, line.end.x, line.end.y, outerStart.x, outerStart.y, innerStart.x, innerStart.y) != null ||\n segmentIntersection(line.start.x, line.start.y, line.end.x, line.end.y, outerEnd.x, outerEnd.y, innerEnd.x, innerEnd.y) != null ||\n arcIntersections(0, 0, outerRadius, startAngle, endAngle, true, line.start.x, line.start.y, line.end.x, line.end.y).length > 0);\n}\nfunction boxCollidesSector(box, sector) {\n var topLeft = { x: box.x, y: box.y };\n var topRight = { x: box.x + box.width, y: box.y };\n var bottomLeft = { x: box.x, y: box.y + box.height };\n var bottomRight = { x: box.x + box.width, y: box.y + box.height };\n return (lineCollidesSector({ start: topLeft, end: topRight }, sector) ||\n lineCollidesSector({ start: bottomLeft, end: bottomRight }, sector));\n}\n\nvar __extends$2j = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar Sector = /** @class */ (function (_super) {\n __extends$2j(Sector, _super);\n function Sector() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.centerX = 0;\n _this.centerY = 0;\n _this.innerRadius = 10;\n _this.outerRadius = 20;\n _this.startAngle = 0;\n _this.endAngle = Math.PI * 2;\n _this.angleOffset = 0;\n return _this;\n }\n Sector.prototype.computeBBox = function () {\n var radius = this.outerRadius;\n return new BBox(this.centerX - radius, this.centerY - radius, radius * 2, radius * 2);\n };\n Sector.prototype.updatePath = function () {\n var path = this.path;\n var angleOffset = this.angleOffset;\n var startAngle = this.startAngle + angleOffset;\n var endAngle = this.endAngle + angleOffset;\n var innerRadius = Math.min(this.innerRadius, this.outerRadius);\n var outerRadius = Math.max(this.innerRadius, this.outerRadius);\n var fullPie = isEqual(normalizeAngle360(this.startAngle), normalizeAngle360(this.endAngle));\n var centerX = this.centerX;\n var centerY = this.centerY;\n path.clear();\n if (fullPie) {\n path.arc(centerX, centerY, outerRadius, startAngle, endAngle);\n if (innerRadius > 0) {\n path.moveTo(centerX + innerRadius * Math.cos(endAngle), centerY + innerRadius * Math.sin(endAngle));\n path.arc(centerX, centerY, innerRadius, endAngle, startAngle, true);\n }\n }\n else {\n path.moveTo(centerX + innerRadius * Math.cos(startAngle), centerY + innerRadius * Math.sin(startAngle));\n path.arc(centerX, centerY, outerRadius, startAngle, endAngle);\n if (innerRadius > 0) {\n path.arc(centerX, centerY, innerRadius, endAngle, startAngle, true);\n }\n else {\n path.lineTo(centerX, centerY);\n }\n }\n path.closePath();\n this.dirtyPath = false;\n };\n Sector.prototype.isPointInPath = function (x, y) {\n var angleOffset = this.angleOffset;\n var startAngle = this.startAngle + angleOffset;\n var endAngle = this.endAngle + angleOffset;\n var innerRadius = Math.min(this.innerRadius, this.outerRadius);\n var outerRadius = Math.max(this.innerRadius, this.outerRadius);\n var point = this.transformPoint(x, y);\n return isPointInSector(point.x, point.y, { startAngle: startAngle, endAngle: endAngle, innerRadius: innerRadius, outerRadius: outerRadius });\n };\n Sector.className = 'Sector';\n __decorate$1A([\n ScenePathChangeDetection()\n ], Sector.prototype, \"centerX\", void 0);\n __decorate$1A([\n ScenePathChangeDetection()\n ], Sector.prototype, \"centerY\", void 0);\n __decorate$1A([\n ScenePathChangeDetection()\n ], Sector.prototype, \"innerRadius\", void 0);\n __decorate$1A([\n ScenePathChangeDetection()\n ], Sector.prototype, \"outerRadius\", void 0);\n __decorate$1A([\n ScenePathChangeDetection()\n ], Sector.prototype, \"startAngle\", void 0);\n __decorate$1A([\n ScenePathChangeDetection()\n ], Sector.prototype, \"endAngle\", void 0);\n __decorate$1A([\n ScenePathChangeDetection()\n ], Sector.prototype, \"angleOffset\", void 0);\n return Sector;\n}(Path));\n\nvar __extends$2i = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar PolarSeries = /** @class */ (function (_super) {\n __extends$2i(PolarSeries, _super);\n function PolarSeries(_a) {\n var _b, _c;\n var moduleCtx = _a.moduleCtx, _d = _a.useLabelLayer, useLabelLayer = _d === void 0 ? false : _d, _e = _a.pickModes, pickModes = _e === void 0 ? [SeriesNodePickMode.EXACT_SHAPE_MATCH] : _e;\n var _this = _super.call(this, {\n moduleCtx: moduleCtx,\n useLabelLayer: useLabelLayer,\n pickModes: pickModes,\n contentGroupVirtual: false,\n directionKeys: (_b = {},\n _b[ChartAxisDirection.X] = ['angleKey'],\n _b[ChartAxisDirection.Y] = ['radiusKey'],\n _b),\n directionNames: (_c = {},\n _c[ChartAxisDirection.X] = ['angleName'],\n _c[ChartAxisDirection.Y] = ['radiusName'],\n _c),\n }) || this;\n /**\n * The center of the polar series (for example, the center of a pie).\n * If the polar chart has multiple series, all of them will have their\n * center set to the same value as a result of the polar chart layout.\n * The center coordinates are not supposed to be set by the user.\n */\n _this.centerX = 0;\n _this.centerY = 0;\n /**\n * The maximum radius the series can use.\n * This value is set automatically as a result of the polar chart layout\n * and is not supposed to be set by the user.\n */\n _this.radius = 0;\n return _this;\n }\n PolarSeries.prototype.getLabelData = function () {\n return [];\n };\n PolarSeries.prototype.computeLabelsBBox = function (_options, _seriesRect) {\n return null;\n };\n return PolarSeries;\n}(Series));\n\nvar __extends$2h = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$I = (undefined && undefined.__assign) || function () {\n __assign$I = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$I.apply(this, arguments);\n};\nvar __decorate$1z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter$b = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$b = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read$I = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$p = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar PieSeriesNodeBaseClickEvent = /** @class */ (function (_super) {\n __extends$2h(PieSeriesNodeBaseClickEvent, _super);\n function PieSeriesNodeBaseClickEvent(angleKey, calloutLabelKey, sectorLabelKey, radiusKey, nativeEvent, datum, series) {\n var _this = _super.call(this, nativeEvent, datum, series) || this;\n _this.angleKey = angleKey;\n _this.calloutLabelKey = calloutLabelKey;\n _this.sectorLabelKey = sectorLabelKey;\n _this.radiusKey = radiusKey;\n return _this;\n }\n return PieSeriesNodeBaseClickEvent;\n}(SeriesNodeBaseClickEvent));\nvar PieSeriesNodeClickEvent = /** @class */ (function (_super) {\n __extends$2h(PieSeriesNodeClickEvent, _super);\n function PieSeriesNodeClickEvent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'nodeClick';\n return _this;\n }\n return PieSeriesNodeClickEvent;\n}(PieSeriesNodeBaseClickEvent));\nvar PieSeriesNodeDoubleClickEvent = /** @class */ (function (_super) {\n __extends$2h(PieSeriesNodeDoubleClickEvent, _super);\n function PieSeriesNodeDoubleClickEvent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'nodeDoubleClick';\n return _this;\n }\n return PieSeriesNodeDoubleClickEvent;\n}(PieSeriesNodeBaseClickEvent));\nvar PieNodeTag;\n(function (PieNodeTag) {\n PieNodeTag[PieNodeTag[\"Sector\"] = 0] = \"Sector\";\n PieNodeTag[PieNodeTag[\"Callout\"] = 1] = \"Callout\";\n PieNodeTag[PieNodeTag[\"Label\"] = 2] = \"Label\";\n})(PieNodeTag || (PieNodeTag = {}));\nvar PieSeriesCalloutLabel = /** @class */ (function (_super) {\n __extends$2h(PieSeriesCalloutLabel, _super);\n function PieSeriesCalloutLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.offset = 3; // from the callout line\n _this.minAngle = 0; // in degrees\n _this.formatter = undefined;\n _this.minSpacing = 4;\n _this.maxCollisionOffset = 50;\n _this.avoidCollisions = true;\n return _this;\n }\n __decorate$1z([\n Validate(NUMBER(0))\n ], PieSeriesCalloutLabel.prototype, \"offset\", void 0);\n __decorate$1z([\n Validate(NUMBER(0))\n ], PieSeriesCalloutLabel.prototype, \"minAngle\", void 0);\n __decorate$1z([\n Validate(OPT_FUNCTION)\n ], PieSeriesCalloutLabel.prototype, \"formatter\", void 0);\n __decorate$1z([\n Validate(NUMBER(0))\n ], PieSeriesCalloutLabel.prototype, \"minSpacing\", void 0);\n __decorate$1z([\n Validate(NUMBER(0))\n ], PieSeriesCalloutLabel.prototype, \"maxCollisionOffset\", void 0);\n __decorate$1z([\n Validate(BOOLEAN)\n ], PieSeriesCalloutLabel.prototype, \"avoidCollisions\", void 0);\n return PieSeriesCalloutLabel;\n}(Label$1));\nvar PieSeriesSectorLabel = /** @class */ (function (_super) {\n __extends$2h(PieSeriesSectorLabel, _super);\n function PieSeriesSectorLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.positionOffset = 0;\n _this.positionRatio = 0.5;\n _this.formatter = undefined;\n return _this;\n }\n __decorate$1z([\n Validate(NUMBER())\n ], PieSeriesSectorLabel.prototype, \"positionOffset\", void 0);\n __decorate$1z([\n Validate(NUMBER(0, 1))\n ], PieSeriesSectorLabel.prototype, \"positionRatio\", void 0);\n __decorate$1z([\n Validate(OPT_FUNCTION)\n ], PieSeriesSectorLabel.prototype, \"formatter\", void 0);\n return PieSeriesSectorLabel;\n}(Label$1));\nvar PieSeriesCalloutLine = /** @class */ (function () {\n function PieSeriesCalloutLine() {\n this.colors = undefined;\n this.length = 10;\n this.strokeWidth = 1;\n }\n __decorate$1z([\n Validate(OPT_COLOR_STRING_ARRAY)\n ], PieSeriesCalloutLine.prototype, \"colors\", void 0);\n __decorate$1z([\n Validate(NUMBER(0))\n ], PieSeriesCalloutLine.prototype, \"length\", void 0);\n __decorate$1z([\n Validate(NUMBER(0))\n ], PieSeriesCalloutLine.prototype, \"strokeWidth\", void 0);\n return PieSeriesCalloutLine;\n}());\nvar PieSeriesTooltip = /** @class */ (function (_super) {\n __extends$2h(PieSeriesTooltip, _super);\n function PieSeriesTooltip() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.renderer = undefined;\n return _this;\n }\n __decorate$1z([\n Validate(OPT_FUNCTION)\n ], PieSeriesTooltip.prototype, \"renderer\", void 0);\n return PieSeriesTooltip;\n}(SeriesTooltip));\nvar PieTitle = /** @class */ (function (_super) {\n __extends$2h(PieTitle, _super);\n function PieTitle() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.showInLegend = false;\n return _this;\n }\n __decorate$1z([\n Validate(BOOLEAN)\n ], PieTitle.prototype, \"showInLegend\", void 0);\n return PieTitle;\n}(Caption));\nvar DoughnutInnerLabel = /** @class */ (function (_super) {\n __extends$2h(DoughnutInnerLabel, _super);\n function DoughnutInnerLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.text = '';\n _this.margin = 2;\n return _this;\n }\n __decorate$1z([\n Validate(STRING)\n ], DoughnutInnerLabel.prototype, \"text\", void 0);\n __decorate$1z([\n Validate(NUMBER())\n ], DoughnutInnerLabel.prototype, \"margin\", void 0);\n return DoughnutInnerLabel;\n}(Label$1));\nvar DoughnutInnerCircle = /** @class */ (function () {\n function DoughnutInnerCircle() {\n this.fill = 'transparent';\n this.fillOpacity = 1;\n }\n __decorate$1z([\n Validate(COLOR_STRING)\n ], DoughnutInnerCircle.prototype, \"fill\", void 0);\n __decorate$1z([\n Validate(OPT_NUMBER(0, 1))\n ], DoughnutInnerCircle.prototype, \"fillOpacity\", void 0);\n return DoughnutInnerCircle;\n}());\nvar PieStateMachine = /** @class */ (function (_super) {\n __extends$2h(PieStateMachine, _super);\n function PieStateMachine() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return PieStateMachine;\n}(StateMachine));\nvar PieSeries = /** @class */ (function (_super) {\n __extends$2h(PieSeries, _super);\n function PieSeries(moduleCtx) {\n var _a, _b, _c;\n var _this = _super.call(this, { moduleCtx: moduleCtx, useLabelLayer: true }) || this;\n _this.radiusScale = new LinearScale$1();\n _this.groupSelection = Selection.select(_this.contentGroup, Group);\n _this.highlightSelection = Selection.select(_this.highlightGroup, Group);\n _this.nodeData = [];\n // When a user toggles a series item (e.g. from the legend), its boolean state is recorded here.\n _this.seriesItemEnabled = [];\n _this.title = undefined;\n _this.calloutLabel = new PieSeriesCalloutLabel();\n _this.sectorLabel = new PieSeriesSectorLabel();\n _this.calloutLine = new PieSeriesCalloutLine();\n _this.tooltip = new PieSeriesTooltip();\n /**\n * The key of the numeric field to use to determine the angle (for example,\n * a pie sector angle).\n */\n _this.angleKey = '';\n _this.angleName = '';\n _this.innerLabels = [];\n _this.innerCircle = undefined;\n /**\n * The key of the numeric field to use to determine the radii of pie sectors.\n * The largest value will correspond to the full radius and smaller values to\n * proportionally smaller radii.\n */\n _this.radiusKey = undefined;\n _this.radiusName = undefined;\n _this.radiusMin = undefined;\n _this.radiusMax = undefined;\n _this.calloutLabelKey = undefined;\n _this.calloutLabelName = undefined;\n _this.sectorLabelKey = undefined;\n _this.sectorLabelName = undefined;\n _this.legendItemKey = undefined;\n _this.fills = ['#c16068', '#a2bf8a', '#ebcc87', '#80a0c3', '#b58dae', '#85c0d1'];\n _this.strokes = ['#874349', '#718661', '#a48f5f', '#5a7088', '#7f637a', '#5d8692'];\n _this.fillOpacity = 1;\n _this.strokeOpacity = 1;\n _this.lineDash = [0];\n _this.lineDashOffset = 0;\n _this.formatter = undefined;\n /**\n * The series rotation in degrees.\n */\n _this.rotation = 0;\n _this.outerRadiusOffset = 0;\n _this.outerRadiusRatio = 1;\n _this.innerRadiusOffset = 0;\n _this.innerRadiusRatio = 1;\n _this.strokeWidth = 1;\n _this.shadow = undefined;\n _this.highlightStyle = new HighlightStyle();\n _this.surroundingRadius = undefined;\n _this.angleScale = new LinearScale$1();\n // Each sector is a ratio of the whole, where all ratios add up to 1.\n _this.angleScale.domain = [0, 1];\n // Add 90 deg to start the first pie at 12 o'clock.\n _this.angleScale.range = [-Math.PI, Math.PI].map(function (angle) { return angle + Math.PI / 2; });\n _this.backgroundGroup = _this.rootGroup.appendChild(new Group({\n name: _this.id + \"-background\",\n layer: true,\n zIndex: Layers.SERIES_BACKGROUND_ZINDEX,\n }));\n var pieCalloutLabels = new Group({ name: 'pieCalloutLabels' });\n var pieSectorLabels = new Group({ name: 'pieSectorLabels' });\n var innerLabels = new Group({ name: 'innerLabels' });\n (_a = _this.labelGroup) === null || _a === void 0 ? void 0 : _a.append(pieCalloutLabels);\n (_b = _this.labelGroup) === null || _b === void 0 ? void 0 : _b.append(pieSectorLabels);\n (_c = _this.labelGroup) === null || _c === void 0 ? void 0 : _c.append(innerLabels);\n _this.calloutLabelSelection = Selection.select(pieCalloutLabels, Group);\n _this.sectorLabelSelection = Selection.select(pieSectorLabels, Text);\n _this.innerLabelsSelection = Selection.select(innerLabels, Text);\n _this.animationState = new PieStateMachine('empty', {\n empty: {\n on: {\n update: {\n target: 'ready',\n action: function () { return _this.animateEmptyUpdateReady(); },\n },\n },\n },\n ready: {\n on: {\n update: {\n target: 'ready',\n action: function () { return _this.animateReadyUpdateReady(); },\n },\n },\n },\n });\n return _this;\n }\n Object.defineProperty(PieSeries.prototype, \"data\", {\n get: function () {\n return this._data;\n },\n set: function (input) {\n this._data = input;\n this.processSeriesItemEnabled();\n },\n enumerable: false,\n configurable: true\n });\n PieSeries.prototype.addChartEventListeners = function () {\n var _this = this;\n var _a;\n (_a = this.ctx.chartEventManager) === null || _a === void 0 ? void 0 : _a.addListener('legend-item-click', function (event) { return _this.onLegendItemClick(event); });\n };\n PieSeries.prototype.visibleChanged = function () {\n this.processSeriesItemEnabled();\n };\n PieSeries.prototype.processSeriesItemEnabled = function () {\n var _a;\n var _b = this, data = _b.data, visible = _b.visible;\n this.seriesItemEnabled = (_a = data === null || data === void 0 ? void 0 : data.map(function () { return visible; })) !== null && _a !== void 0 ? _a : [];\n };\n PieSeries.prototype.getDomain = function (direction) {\n if (direction === ChartAxisDirection.X) {\n return this.angleScale.domain;\n }\n else {\n return this.radiusScale.domain;\n }\n };\n PieSeries.prototype.processData = function (dataController) {\n var _a, _b;\n return __awaiter$b(this, void 0, void 0, function () {\n var _c, data, _d, angleKey, radiusKey, calloutLabelKey, sectorLabelKey, legendItemKey, seriesItemEnabled, extraProps, _e, dataModel, processedData;\n return __generator$b(this, function (_f) {\n switch (_f.label) {\n case 0:\n _c = this.data, data = _c === void 0 ? [] : _c;\n _d = this, angleKey = _d.angleKey, radiusKey = _d.radiusKey, calloutLabelKey = _d.calloutLabelKey, sectorLabelKey = _d.sectorLabelKey, legendItemKey = _d.legendItemKey, seriesItemEnabled = _d.seriesItemEnabled;\n if (!angleKey)\n return [2 /*return*/];\n extraProps = [];\n if (radiusKey) {\n extraProps.push(rangedValueProperty(this, radiusKey, {\n id: 'radiusValue',\n min: (_a = this.radiusMin) !== null && _a !== void 0 ? _a : 0,\n max: this.radiusMax,\n }), valueProperty(this, radiusKey, true, { id: \"radiusRaw\" }), // Raw value pass-through.\n normalisePropertyTo(this, { id: 'radiusValue' }, [0, 1], (_b = this.radiusMin) !== null && _b !== void 0 ? _b : 0, this.radiusMax));\n extraProps.push();\n }\n if (calloutLabelKey) {\n extraProps.push(valueProperty(this, calloutLabelKey, false, { id: \"calloutLabelValue\" }));\n }\n if (sectorLabelKey) {\n extraProps.push(valueProperty(this, sectorLabelKey, false, { id: \"sectorLabelValue\" }));\n }\n if (legendItemKey) {\n extraProps.push(valueProperty(this, legendItemKey, false, { id: \"legendItemValue\" }));\n }\n data = data.map(function (d, idx) {\n var _a;\n return (seriesItemEnabled[idx] ? d : __assign$I(__assign$I({}, d), (_a = {}, _a[angleKey] = 0, _a)));\n });\n return [4 /*yield*/, dataController.request(this.id, data, {\n props: __spreadArray$p([\n accumulativeValueProperty(this, angleKey, true, { id: \"angleValue\" }),\n valueProperty(this, angleKey, true, { id: \"angleRaw\" }),\n normalisePropertyTo(this, { id: 'angleValue' }, [0, 1], 0)\n ], __read$I(extraProps)),\n })];\n case 1:\n _e = _f.sent(), dataModel = _e.dataModel, processedData = _e.processedData;\n this.dataModel = dataModel;\n this.processedData = processedData;\n return [2 /*return*/];\n }\n });\n });\n };\n PieSeries.prototype.maybeRefreshNodeData = function () {\n if (!this.nodeDataRefresh)\n return;\n var _a = __read$I(this._createNodeData(), 1), _b = _a[0], _c = _b === void 0 ? {} : _b, _d = _c.nodeData, nodeData = _d === void 0 ? [] : _d;\n this.nodeData = nodeData;\n this.nodeDataRefresh = false;\n };\n PieSeries.prototype.createNodeData = function () {\n return __awaiter$b(this, void 0, void 0, function () {\n return __generator$b(this, function (_a) {\n return [2 /*return*/, this._createNodeData()];\n });\n });\n };\n PieSeries.prototype.getProcessedDataIndexes = function (dataModel) {\n var angleIdx = dataModel.resolveProcessedDataIndexById(this, \"angleValue\").index;\n var radiusIdx = this.radiusKey ? dataModel.resolveProcessedDataIndexById(this, \"radiusValue\").index : -1;\n var calloutLabelIdx = this.calloutLabelKey\n ? dataModel.resolveProcessedDataIndexById(this, \"calloutLabelValue\").index\n : -1;\n var sectorLabelIdx = this.sectorLabelKey\n ? dataModel.resolveProcessedDataIndexById(this, \"sectorLabelValue\").index\n : -1;\n var legendItemIdx = this.legendItemKey\n ? dataModel.resolveProcessedDataIndexById(this, \"legendItemValue\").index\n : -1;\n return { angleIdx: angleIdx, radiusIdx: radiusIdx, calloutLabelIdx: calloutLabelIdx, sectorLabelIdx: sectorLabelIdx, legendItemIdx: legendItemIdx };\n };\n PieSeries.prototype._createNodeData = function () {\n var _this = this;\n var _a = this, seriesId = _a.id, processedData = _a.processedData, dataModel = _a.dataModel, rotation = _a.rotation, angleScale = _a.angleScale;\n if (!processedData || !dataModel || processedData.type !== 'ungrouped')\n return [];\n var _b = this.getProcessedDataIndexes(dataModel), angleIdx = _b.angleIdx, radiusIdx = _b.radiusIdx, calloutLabelIdx = _b.calloutLabelIdx, sectorLabelIdx = _b.sectorLabelIdx, legendItemIdx = _b.legendItemIdx;\n var currentStart = 0;\n var nodeData = processedData.data.map(function (group, index) {\n var _a;\n var datum = group.datum, values = group.values;\n var currentValue = values[angleIdx];\n var startAngle = angleScale.convert(currentStart) + toRadians$1(rotation);\n currentStart = currentValue;\n var endAngle = angleScale.convert(currentStart) + toRadians$1(rotation);\n var span = Math.abs(endAngle - startAngle);\n var midAngle = startAngle + span / 2;\n var angleValue = values[angleIdx + 1];\n var radius = radiusIdx >= 0 ? (_a = values[radiusIdx]) !== null && _a !== void 0 ? _a : 1 : 1;\n var radiusValue = radiusIdx >= 0 ? values[radiusIdx + 1] : undefined;\n var legendItemValue = legendItemIdx >= 0 ? values[legendItemIdx] : undefined;\n var labels = _this.getLabels(datum, midAngle, span, true, currentValue, radiusValue, values[calloutLabelIdx], values[sectorLabelIdx], legendItemValue);\n var sectorFormat = _this.getSectorFormat(datum, index, index, false);\n return __assign$I({ itemId: index, series: _this, datum: datum, index: index, angleValue: angleValue, midAngle: midAngle, midCos: Math.cos(midAngle), midSin: Math.sin(midAngle), startAngle: startAngle, endAngle: endAngle, sectorFormat: sectorFormat, radius: radius, radiusValue: radiusValue, legendItemValue: legendItemValue }, labels);\n });\n return [\n {\n itemId: seriesId,\n nodeData: nodeData,\n labelData: nodeData,\n },\n ];\n };\n PieSeries.prototype.getLabels = function (datum, midAngle, span, skipDisabled, angleValue, radiusValue, calloutLabelValue, sectorLabelValue, legendItemValue) {\n var _a = this, calloutLabel = _a.calloutLabel, sectorLabel = _a.sectorLabel, legendItemKey = _a.legendItemKey, callbackCache = _a.ctx.callbackCache;\n var calloutLabelKey = !skipDisabled || calloutLabel.enabled ? this.calloutLabelKey : undefined;\n var sectorLabelKey = !skipDisabled || sectorLabel.enabled ? this.sectorLabelKey : undefined;\n if (!calloutLabelKey && !sectorLabelKey && !legendItemKey)\n return {};\n var labelFormatterParams = this.getLabelFormatterParams(datum, angleValue, radiusValue, calloutLabelValue, sectorLabelValue);\n var calloutLabelText;\n if (calloutLabelKey) {\n var calloutLabelMinAngle = toRadians$1(calloutLabel.minAngle);\n var calloutLabelVisible = span > calloutLabelMinAngle;\n if (!calloutLabelVisible) {\n calloutLabelText = undefined;\n }\n else if (calloutLabel.formatter) {\n calloutLabelText = callbackCache.call(calloutLabel.formatter, labelFormatterParams);\n }\n else {\n calloutLabelText = String(calloutLabelValue);\n }\n }\n var sectorLabelText;\n if (sectorLabelKey) {\n if (sectorLabel.formatter) {\n sectorLabelText = callbackCache.call(sectorLabel.formatter, labelFormatterParams);\n }\n else {\n sectorLabelText = String(sectorLabelValue);\n }\n }\n return __assign$I(__assign$I(__assign$I({}, (calloutLabelText != null\n ? {\n calloutLabel: __assign$I(__assign$I({}, this.getTextAlignment(midAngle)), { text: calloutLabelText, hidden: false, collisionTextAlign: undefined, collisionOffsetY: 0, box: undefined }),\n }\n : {})), (sectorLabelText != null ? { sectorLabel: { text: sectorLabelText } } : {})), (legendItemKey != null && legendItemValue != null\n ? { legendItem: { key: legendItemKey, text: legendItemValue } }\n : {}));\n };\n PieSeries.prototype.getLabelFormatterParams = function (datum, angleValue, radiusValue, calloutLabelValue, sectorLabelValue) {\n var _a = this, seriesId = _a.id, radiusKey = _a.radiusKey, radiusName = _a.radiusName, angleKey = _a.angleKey, angleName = _a.angleName, calloutLabelKey = _a.calloutLabelKey, calloutLabelName = _a.calloutLabelName, sectorLabelKey = _a.sectorLabelKey, sectorLabelName = _a.sectorLabelName;\n return {\n datum: datum,\n angleKey: angleKey,\n angleValue: angleValue,\n angleName: angleName,\n radiusKey: radiusKey,\n radiusValue: radiusValue,\n radiusName: radiusName,\n calloutLabelKey: calloutLabelKey,\n calloutLabelValue: calloutLabelValue,\n calloutLabelName: calloutLabelName,\n sectorLabelKey: sectorLabelKey,\n sectorLabelValue: sectorLabelValue,\n sectorLabelName: sectorLabelName,\n seriesId: seriesId,\n };\n };\n PieSeries.prototype.getTextAlignment = function (midAngle) {\n var quadrantTextOpts = [\n { textAlign: 'center', textBaseline: 'bottom' },\n { textAlign: 'left', textBaseline: 'middle' },\n { textAlign: 'center', textBaseline: 'hanging' },\n { textAlign: 'right', textBaseline: 'middle' },\n ];\n var midAngle180 = normalizeAngle180(midAngle);\n // Split the circle into quadrants like so: ⊗\n var quadrantStart = (-3 * Math.PI) / 4; // same as `normalizeAngle180(toRadians(-135))`\n var quadrantOffset = midAngle180 - quadrantStart;\n var quadrant = Math.floor(quadrantOffset / (Math.PI / 2));\n var quadrantIndex = mod(quadrant, quadrantTextOpts.length);\n return quadrantTextOpts[quadrantIndex];\n };\n PieSeries.prototype.getSectorFormat = function (datum, itemId, index, highlight) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n var _j = this, angleKey = _j.angleKey, radiusKey = _j.radiusKey, fills = _j.fills, strokes = _j.strokes, seriesFillOpacity = _j.fillOpacity, formatter = _j.formatter, seriesId = _j.id, _k = _j.ctx, callbackCache = _k.callbackCache, highlightManager = _k.highlightManager;\n var highlightedDatum = highlightManager === null || highlightManager === void 0 ? void 0 : highlightManager.getActiveHighlight();\n var isDatumHighlighted = highlight && (highlightedDatum === null || highlightedDatum === void 0 ? void 0 : highlightedDatum.series) === this && itemId === highlightedDatum.itemId;\n var highlightedStyle = isDatumHighlighted ? this.highlightStyle.item : null;\n var fill = (_a = highlightedStyle === null || highlightedStyle === void 0 ? void 0 : highlightedStyle.fill) !== null && _a !== void 0 ? _a : fills[index % fills.length];\n var fillOpacity = (_b = highlightedStyle === null || highlightedStyle === void 0 ? void 0 : highlightedStyle.fillOpacity) !== null && _b !== void 0 ? _b : seriesFillOpacity;\n var stroke = (_c = highlightedStyle === null || highlightedStyle === void 0 ? void 0 : highlightedStyle.stroke) !== null && _c !== void 0 ? _c : strokes[index % strokes.length];\n var strokeWidth = (_d = highlightedStyle === null || highlightedStyle === void 0 ? void 0 : highlightedStyle.strokeWidth) !== null && _d !== void 0 ? _d : this.getStrokeWidth(this.strokeWidth);\n var format;\n if (formatter) {\n format = callbackCache.call(formatter, {\n datum: datum,\n angleKey: angleKey,\n radiusKey: radiusKey,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n highlighted: isDatumHighlighted,\n seriesId: seriesId,\n });\n }\n return {\n fill: (_e = format === null || format === void 0 ? void 0 : format.fill) !== null && _e !== void 0 ? _e : fill,\n fillOpacity: (_f = format === null || format === void 0 ? void 0 : format.fillOpacity) !== null && _f !== void 0 ? _f : fillOpacity,\n stroke: (_g = format === null || format === void 0 ? void 0 : format.stroke) !== null && _g !== void 0 ? _g : stroke,\n strokeWidth: (_h = format === null || format === void 0 ? void 0 : format.strokeWidth) !== null && _h !== void 0 ? _h : strokeWidth,\n };\n };\n PieSeries.prototype.getInnerRadius = function () {\n var _a = this, radius = _a.radius, innerRadiusRatio = _a.innerRadiusRatio, innerRadiusOffset = _a.innerRadiusOffset;\n var innerRadius = radius * (innerRadiusRatio !== null && innerRadiusRatio !== void 0 ? innerRadiusRatio : 1) + (innerRadiusOffset ? innerRadiusOffset : 0);\n if (innerRadius === radius || innerRadius < 0) {\n return 0;\n }\n return innerRadius;\n };\n PieSeries.prototype.getOuterRadius = function () {\n var _a = this, radius = _a.radius, outerRadiusRatio = _a.outerRadiusRatio, outerRadiusOffset = _a.outerRadiusOffset;\n var outerRadius = radius * (outerRadiusRatio !== null && outerRadiusRatio !== void 0 ? outerRadiusRatio : 1) + (outerRadiusOffset ? outerRadiusOffset : 0);\n if (outerRadius < 0) {\n return 0;\n }\n return outerRadius;\n };\n PieSeries.prototype.updateRadiusScale = function () {\n var innerRadius = this.getInnerRadius();\n var outerRadius = this.getOuterRadius();\n this.radiusScale.range = [innerRadius, outerRadius];\n };\n PieSeries.prototype.getTitleTranslationY = function () {\n var _a, _b;\n var outerRadius = Math.max(0, this.radiusScale.range[1]);\n if (outerRadius === 0) {\n return NaN;\n }\n var spacing = (_b = (_a = this.title) === null || _a === void 0 ? void 0 : _a.spacing) !== null && _b !== void 0 ? _b : 0;\n var titleOffset = 2 + spacing;\n var dy = Math.max(0, -outerRadius);\n return -outerRadius - titleOffset - dy;\n };\n PieSeries.prototype.update = function (_a) {\n var seriesRect = _a.seriesRect;\n return __awaiter$b(this, void 0, void 0, function () {\n var title, dy, titleBox;\n return __generator$b(this, function (_b) {\n switch (_b.label) {\n case 0:\n title = this.title;\n this.maybeRefreshNodeData();\n this.updateTitleNodes();\n this.updateRadiusScale();\n this.updateInnerCircleNodes();\n this.contentGroup.translationX = this.centerX;\n this.contentGroup.translationY = this.centerY;\n this.highlightGroup.translationX = this.centerX;\n this.highlightGroup.translationY = this.centerY;\n this.backgroundGroup.translationX = this.centerX;\n this.backgroundGroup.translationY = this.centerY;\n if (this.labelGroup) {\n this.labelGroup.translationX = this.centerX;\n this.labelGroup.translationY = this.centerY;\n }\n if (title) {\n dy = this.getTitleTranslationY();\n titleBox = title.node.computeBBox();\n title.node.visible =\n title.enabled && isFinite(dy) && !this.bboxIntersectsSurroundingSeries(titleBox, 0, dy);\n title.node.translationY = isFinite(dy) ? dy : 0;\n }\n this.updateNodeMidPoint();\n return [4 /*yield*/, this.updateSelections()];\n case 1:\n _b.sent();\n return [4 /*yield*/, this.updateNodes(seriesRect)];\n case 2:\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n PieSeries.prototype.updateTitleNodes = function () {\n var _a, _b;\n var _c = this, title = _c.title, oldTitle = _c.oldTitle;\n if (oldTitle !== title) {\n if (oldTitle) {\n (_a = this.labelGroup) === null || _a === void 0 ? void 0 : _a.removeChild(oldTitle.node);\n }\n if (title) {\n title.node.textBaseline = 'bottom';\n (_b = this.labelGroup) === null || _b === void 0 ? void 0 : _b.appendChild(title.node);\n }\n this.oldTitle = title;\n }\n };\n PieSeries.prototype.updateInnerCircleNodes = function () {\n var _a;\n var _b = this, innerCircle = _b.innerCircle, oldInnerCircle = _b.oldInnerCircle, oldNode = _b.innerCircleNode;\n if (oldInnerCircle !== innerCircle) {\n var circle = void 0;\n if (oldNode) {\n this.backgroundGroup.removeChild(oldNode);\n }\n if (innerCircle) {\n circle = new Circle();\n circle.fill = innerCircle.fill;\n circle.fillOpacity = (_a = innerCircle.fillOpacity) !== null && _a !== void 0 ? _a : 1;\n this.backgroundGroup.appendChild(circle);\n }\n this.oldInnerCircle = innerCircle;\n this.innerCircleNode = circle;\n }\n };\n PieSeries.prototype.updateNodeMidPoint = function () {\n var _this = this;\n this.nodeData.forEach(function (d) {\n var radius = _this.radiusScale.convert(d.radius);\n d.nodeMidPoint = {\n x: d.midCos * Math.max(0, radius / 2),\n y: d.midSin * Math.max(0, radius / 2),\n };\n });\n };\n PieSeries.prototype.updateSelections = function () {\n return __awaiter$b(this, void 0, void 0, function () {\n return __generator$b(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.updateGroupSelection()];\n case 1:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n PieSeries.prototype.updateGroupSelection = function () {\n return __awaiter$b(this, void 0, void 0, function () {\n var _a, groupSelection, highlightSelection, calloutLabelSelection, sectorLabelSelection, innerLabelsSelection, update;\n var _this = this;\n return __generator$b(this, function (_b) {\n _a = this, groupSelection = _a.groupSelection, highlightSelection = _a.highlightSelection, calloutLabelSelection = _a.calloutLabelSelection, sectorLabelSelection = _a.sectorLabelSelection, innerLabelsSelection = _a.innerLabelsSelection;\n update = function (selection) {\n return selection.update(_this.nodeData, function (group) {\n var sector = new Sector();\n sector.tag = PieNodeTag.Sector;\n group.appendChild(sector);\n });\n };\n this.groupSelection = update(groupSelection);\n this.highlightSelection = update(highlightSelection);\n calloutLabelSelection.update(this.nodeData, function (group) {\n var line = new Line();\n line.tag = PieNodeTag.Callout;\n line.pointerEvents = PointerEvents.None;\n group.appendChild(line);\n var text = new Text();\n text.tag = PieNodeTag.Label;\n text.pointerEvents = PointerEvents.None;\n group.appendChild(text);\n });\n sectorLabelSelection.update(this.nodeData, function (node) {\n node.pointerEvents = PointerEvents.None;\n });\n innerLabelsSelection.update(this.innerLabels, function (node) {\n node.pointerEvents = PointerEvents.None;\n });\n return [2 /*return*/];\n });\n });\n };\n PieSeries.prototype.updateNodes = function (seriesRect) {\n var _a;\n return __awaiter$b(this, void 0, void 0, function () {\n var highlightedDatum, isVisible, radiusScale, innerRadius, updateSectorFn;\n var _this = this;\n return __generator$b(this, function (_b) {\n highlightedDatum = (_a = this.ctx.highlightManager) === null || _a === void 0 ? void 0 : _a.getActiveHighlight();\n isVisible = this.seriesItemEnabled.indexOf(true) >= 0;\n this.rootGroup.visible = isVisible;\n this.backgroundGroup.visible = isVisible;\n this.contentGroup.visible = isVisible;\n this.highlightGroup.visible = isVisible && (highlightedDatum === null || highlightedDatum === void 0 ? void 0 : highlightedDatum.series) === this;\n if (this.labelGroup) {\n this.labelGroup.visible = isVisible;\n }\n this.contentGroup.opacity = this.getOpacity();\n this.updateInnerCircle();\n radiusScale = this.radiusScale;\n innerRadius = radiusScale.convert(0);\n updateSectorFn = function (sector, datum, index, isDatumHighlighted) {\n var radius = radiusScale.convert(datum.radius);\n // Bring highlighted sector's parent group to front.\n var sectorParent = sector.parent;\n var sectorGrandParent = sectorParent === null || sectorParent === void 0 ? void 0 : sectorParent.parent;\n if (isDatumHighlighted && sectorParent && sectorGrandParent) {\n sectorGrandParent.removeChild(sectorParent);\n sectorGrandParent.appendChild(sectorParent);\n }\n sector.innerRadius = Math.max(0, innerRadius);\n sector.outerRadius = Math.max(0, radius);\n if (isDatumHighlighted) {\n sector.startAngle = datum.startAngle;\n sector.endAngle = datum.endAngle;\n }\n var format = _this.getSectorFormat(datum.datum, datum.itemId, index, isDatumHighlighted);\n sector.fill = format.fill;\n sector.stroke = format.stroke;\n sector.strokeWidth = format.strokeWidth;\n sector.fillOpacity = format.fillOpacity;\n sector.strokeOpacity = _this.strokeOpacity;\n sector.lineDash = _this.lineDash;\n sector.lineDashOffset = _this.lineDashOffset;\n sector.fillShadow = _this.shadow;\n sector.lineJoin = 'round';\n sector.visible = _this.seriesItemEnabled[index];\n };\n this.groupSelection\n .selectByTag(PieNodeTag.Sector)\n .forEach(function (node, index) { return updateSectorFn(node, node.datum, index, false); });\n this.highlightSelection.selectByTag(PieNodeTag.Sector).forEach(function (node, index) {\n var isDatumHighlighted = (highlightedDatum === null || highlightedDatum === void 0 ? void 0 : highlightedDatum.series) === _this && node.datum.itemId === highlightedDatum.itemId;\n if (isDatumHighlighted) {\n updateSectorFn(node, node.datum, index, isDatumHighlighted);\n }\n else {\n node.visible = false;\n }\n });\n this.animationState.transition('update');\n this.updateCalloutLineNodes();\n this.updateCalloutLabelNodes(seriesRect);\n this.updateSectorLabelNodes();\n this.updateInnerLabelNodes();\n return [2 /*return*/];\n });\n });\n };\n PieSeries.prototype.updateCalloutLineNodes = function () {\n var _a;\n var _b = this, radiusScale = _b.radiusScale, calloutLine = _b.calloutLine;\n var calloutLength = calloutLine.length;\n var calloutStrokeWidth = calloutLine.strokeWidth;\n var calloutColors = (_a = calloutLine.colors) !== null && _a !== void 0 ? _a : this.strokes;\n var offset = this.calloutLabel.offset;\n this.calloutLabelSelection.selectByTag(PieNodeTag.Callout).forEach(function (line, index) {\n var datum = line.datum;\n var radius = radiusScale.convert(datum.radius);\n var outerRadius = Math.max(0, radius);\n var label = datum.calloutLabel;\n if ((label === null || label === void 0 ? void 0 : label.text) && !label.hidden && outerRadius !== 0) {\n line.visible = true;\n line.strokeWidth = calloutStrokeWidth;\n line.stroke = calloutColors[index % calloutColors.length];\n line.fill = undefined;\n var x1 = datum.midCos * outerRadius;\n var y1 = datum.midSin * outerRadius;\n var x2 = datum.midCos * (outerRadius + calloutLength);\n var y2 = datum.midSin * (outerRadius + calloutLength);\n var isMoved = label.collisionTextAlign || label.collisionOffsetY !== 0;\n if (isMoved && label.box != null) {\n // Get the closest point to the text bounding box\n var box = label.box;\n var cx = x2;\n var cy = y2;\n if (x2 < box.x) {\n cx = box.x;\n }\n else if (x2 > box.x + box.width) {\n cx = box.x + box.width;\n }\n if (y2 < box.y) {\n cy = box.y;\n }\n else if (y2 > box.y + box.height) {\n cy = box.y + box.height;\n }\n // Apply label offset\n var dx = cx - x2;\n var dy = cy - y2;\n var length_1 = Math.sqrt(Math.pow(dx, 2) + Math.pow(dy, 2));\n var paddedLength = length_1 - offset;\n if (paddedLength > 0) {\n x2 = x2 + (dx * paddedLength) / length_1;\n y2 = y2 + (dy * paddedLength) / length_1;\n }\n }\n line.x1 = x1;\n line.y1 = y1;\n line.x2 = x2;\n line.y2 = y2;\n }\n else {\n line.visible = false;\n }\n });\n };\n PieSeries.prototype.getLabelOverflow = function (text, box, seriesRect) {\n var seriesLeft = seriesRect.x - this.centerX;\n var seriesRight = seriesRect.x + seriesRect.width - this.centerX;\n var seriesTop = seriesRect.y - this.centerY;\n var seriesBottom = seriesRect.y + seriesRect.height - this.centerY;\n var errPx = 1; // Prevents errors related to floating point calculations\n var visibleTextPart = 1;\n if (box.x + errPx < seriesLeft) {\n visibleTextPart = (box.x + box.width - seriesLeft) / box.width;\n }\n else if (box.x + box.width - errPx > seriesRight) {\n visibleTextPart = (seriesRight - box.x) / box.width;\n }\n var hasVerticalOverflow = box.y + errPx < seriesTop || box.y + box.height - errPx > seriesBottom;\n var textLength = visibleTextPart === 1 ? text.length : Math.floor(text.length * visibleTextPart) - 1;\n var hasSurroundingSeriesOverflow = this.bboxIntersectsSurroundingSeries(box);\n return { textLength: textLength, hasVerticalOverflow: hasVerticalOverflow, hasSurroundingSeriesOverflow: hasSurroundingSeriesOverflow };\n };\n PieSeries.prototype.bboxIntersectsSurroundingSeries = function (box, dx, dy) {\n if (dx === void 0) { dx = 0; }\n if (dy === void 0) { dy = 0; }\n var surroundingRadius = this.surroundingRadius;\n if (surroundingRadius == null) {\n return false;\n }\n var corners = [\n { x: box.x + dx, y: box.y + dy },\n { x: box.x + box.width + dx, y: box.y + dy },\n { x: box.x + box.width + dx, y: box.y + box.height + dy },\n { x: box.x + dx, y: box.y + box.height + dy },\n ];\n var sur2 = Math.pow(surroundingRadius, 2);\n return corners.some(function (corner) { return Math.pow(corner.x, 2) + Math.pow(corner.y, 2) > sur2; });\n };\n PieSeries.prototype.computeCalloutLabelCollisionOffsets = function () {\n var _this = this;\n var _a = this, radiusScale = _a.radiusScale, calloutLabel = _a.calloutLabel, calloutLine = _a.calloutLine;\n var offset = calloutLabel.offset, minSpacing = calloutLabel.minSpacing;\n var innerRadius = radiusScale.convert(0);\n var shouldSkip = function (datum) {\n var label = datum.calloutLabel;\n var radius = radiusScale.convert(datum.radius);\n var outerRadius = Math.max(0, radius);\n return !label || outerRadius === 0;\n };\n var fullData = this.nodeData;\n var data = this.nodeData.filter(function (t) { return !shouldSkip(t); });\n data.forEach(function (datum) {\n var label = datum.calloutLabel;\n if (label == null)\n return;\n label.hidden = false;\n label.collisionTextAlign = undefined;\n label.collisionOffsetY = 0;\n });\n if (data.length <= 1) {\n return;\n }\n var leftLabels = data.filter(function (d) { return d.midCos < 0; }).sort(function (a, b) { return a.midSin - b.midSin; });\n var rightLabels = data.filter(function (d) { return d.midCos >= 0; }).sort(function (a, b) { return a.midSin - b.midSin; });\n var topLabels = data\n .filter(function (d) { var _a; return d.midSin < 0 && ((_a = d.calloutLabel) === null || _a === void 0 ? void 0 : _a.textAlign) === 'center'; })\n .sort(function (a, b) { return a.midCos - b.midCos; });\n var bottomLabels = data\n .filter(function (d) { var _a; return d.midSin >= 0 && ((_a = d.calloutLabel) === null || _a === void 0 ? void 0 : _a.textAlign) === 'center'; })\n .sort(function (a, b) { return a.midCos - b.midCos; });\n var tempTextNode = new Text();\n var getTextBBox = function (datum) {\n var _a;\n var label = datum.calloutLabel;\n if (label == null)\n return new BBox(0, 0, 0, 0);\n var radius = radiusScale.convert(datum.radius);\n var outerRadius = Math.max(0, radius);\n var labelRadius = outerRadius + calloutLine.length + offset;\n var x = datum.midCos * labelRadius;\n var y = datum.midSin * labelRadius + label.collisionOffsetY;\n tempTextNode.text = label.text;\n tempTextNode.x = x;\n tempTextNode.y = y;\n tempTextNode.setFont(_this.calloutLabel);\n tempTextNode.setAlign({\n textAlign: (_a = label.collisionTextAlign) !== null && _a !== void 0 ? _a : label.textAlign,\n textBaseline: label.textBaseline,\n });\n return tempTextNode.computeBBox();\n };\n var avoidNeighbourYCollision = function (label, next, direction) {\n var box = getTextBBox(label).grow(minSpacing / 2);\n var other = getTextBBox(next).grow(minSpacing / 2);\n // The full collision is not detected, because sometimes\n // the next label can appear behind the label with offset\n var collidesOrBehind = box.x < other.x + other.width &&\n box.x + box.width > other.x &&\n (direction === 'to-top' ? box.y < other.y + other.height : box.y + box.height > other.y);\n if (collidesOrBehind) {\n var dy = direction === 'to-top' ? box.y - other.y - other.height : box.y + box.height - other.y;\n next.calloutLabel.collisionOffsetY = dy;\n }\n };\n var avoidYCollisions = function (labels) {\n var midLabel = labels.slice().sort(function (a, b) { return Math.abs(a.midSin) - Math.abs(b.midSin); })[0];\n var midIndex = labels.indexOf(midLabel);\n for (var i = midIndex - 1; i >= 0; i--) {\n var prev = labels[i + 1];\n var next = labels[i];\n avoidNeighbourYCollision(prev, next, 'to-top');\n }\n for (var i = midIndex + 1; i < labels.length; i++) {\n var prev = labels[i - 1];\n var next = labels[i];\n avoidNeighbourYCollision(prev, next, 'to-bottom');\n }\n };\n var avoidXCollisions = function (labels) {\n var labelsCollideLabelsByY = data.some(function (datum) { return datum.calloutLabel.collisionOffsetY !== 0; });\n var boxes = labels.map(function (label) { return getTextBBox(label); });\n var paddedBoxes = boxes.map(function (box) { return box.clone().grow(minSpacing / 2); });\n var labelsCollideLabelsByX = false;\n for (var i = 0; i < paddedBoxes.length && !labelsCollideLabelsByX; i++) {\n var box = paddedBoxes[i];\n for (var j = i + 1; j < labels.length; j++) {\n var other = paddedBoxes[j];\n if (box.collidesBBox(other)) {\n labelsCollideLabelsByX = true;\n break;\n }\n }\n }\n var sectors = fullData.map(function (datum) {\n var startAngle = datum.startAngle, endAngle = datum.endAngle;\n var radius = radiusScale.convert(datum.radius);\n var outerRadius = Math.max(0, radius);\n return { startAngle: startAngle, endAngle: endAngle, innerRadius: innerRadius, outerRadius: outerRadius };\n });\n var labelsCollideSectors = boxes.some(function (box) {\n return sectors.some(function (sector) { return boxCollidesSector(box, sector); });\n });\n if (!labelsCollideLabelsByX && !labelsCollideLabelsByY && !labelsCollideSectors) {\n return;\n }\n labels\n .filter(function (d) { return d.calloutLabel.textAlign === 'center'; })\n .forEach(function (d) {\n var label = d.calloutLabel;\n if (d.midCos < 0) {\n label.collisionTextAlign = 'right';\n }\n else if (d.midCos > 0) {\n label.collisionTextAlign = 'left';\n }\n else {\n label.collisionTextAlign = 'center';\n }\n });\n };\n avoidYCollisions(leftLabels);\n avoidYCollisions(rightLabels);\n avoidXCollisions(topLabels);\n avoidXCollisions(bottomLabels);\n };\n PieSeries.prototype.updateCalloutLabelNodes = function (seriesRect) {\n var _this = this;\n var _a = this, radiusScale = _a.radiusScale, calloutLabel = _a.calloutLabel, calloutLine = _a.calloutLine;\n var calloutLength = calloutLine.length;\n var offset = calloutLabel.offset, color = calloutLabel.color;\n var tempTextNode = new Text();\n this.calloutLabelSelection.selectByTag(PieNodeTag.Label).forEach(function (text) {\n var _a;\n var datum = text.datum;\n var label = datum.calloutLabel;\n var radius = radiusScale.convert(datum.radius);\n var outerRadius = Math.max(0, radius);\n if (!(label === null || label === void 0 ? void 0 : label.text) || outerRadius === 0 || label.hidden) {\n text.visible = false;\n return;\n }\n var labelRadius = outerRadius + calloutLength + offset;\n var x = datum.midCos * labelRadius;\n var y = datum.midSin * labelRadius + label.collisionOffsetY;\n // Detect text overflow\n var align = { textAlign: (_a = label.collisionTextAlign) !== null && _a !== void 0 ? _a : label.textAlign, textBaseline: label.textBaseline };\n tempTextNode.text = label.text;\n tempTextNode.x = x;\n tempTextNode.y = y;\n tempTextNode.setFont(_this.calloutLabel);\n tempTextNode.setAlign(align);\n var box = tempTextNode.computeBBox();\n var displayText = label.text;\n var visible = true;\n if (calloutLabel.avoidCollisions) {\n var _b = _this.getLabelOverflow(label.text, box, seriesRect), textLength = _b.textLength, hasVerticalOverflow = _b.hasVerticalOverflow;\n displayText = label.text.length === textLength ? label.text : label.text.substring(0, textLength) + \"\\u2026\";\n visible = !hasVerticalOverflow;\n }\n text.text = displayText;\n text.x = x;\n text.y = y;\n text.setFont(_this.calloutLabel);\n text.setAlign(align);\n text.fill = color;\n text.visible = visible;\n });\n };\n PieSeries.prototype.computeLabelsBBox = function (options, seriesRect) {\n var _this = this;\n var _a;\n var _b = this, radiusScale = _b.radiusScale, calloutLabel = _b.calloutLabel, calloutLine = _b.calloutLine;\n var calloutLength = calloutLine.length;\n var offset = calloutLabel.offset, maxCollisionOffset = calloutLabel.maxCollisionOffset, minSpacing = calloutLabel.minSpacing;\n if (!calloutLabel.avoidCollisions) {\n return null;\n }\n this.maybeRefreshNodeData();\n this.updateRadiusScale();\n this.computeCalloutLabelCollisionOffsets();\n var textBoxes = [];\n var text = new Text();\n var titleBox;\n if (((_a = this.title) === null || _a === void 0 ? void 0 : _a.text) && this.title.enabled) {\n var dy = this.getTitleTranslationY();\n if (isFinite(dy)) {\n text.text = this.title.text;\n text.x = 0;\n text.y = dy;\n text.setFont(this.title);\n text.setAlign({\n textBaseline: 'bottom',\n textAlign: 'center',\n });\n titleBox = text.computeBBox();\n textBoxes.push(titleBox);\n }\n }\n this.nodeData.forEach(function (datum) {\n var _a;\n var label = datum.calloutLabel;\n var radius = radiusScale.convert(datum.radius);\n var outerRadius = Math.max(0, radius);\n if (!label || outerRadius === 0) {\n return null;\n }\n var labelRadius = outerRadius + calloutLength + offset;\n var x = datum.midCos * labelRadius;\n var y = datum.midSin * labelRadius + label.collisionOffsetY;\n text.text = label.text;\n text.x = x;\n text.y = y;\n text.setFont(_this.calloutLabel);\n text.setAlign({ textAlign: (_a = label.collisionTextAlign) !== null && _a !== void 0 ? _a : label.textAlign, textBaseline: label.textBaseline });\n var box = text.computeBBox();\n label.box = box;\n // Hide labels that where pushed too far by the collision avoidance algorithm\n if (Math.abs(label.collisionOffsetY) > maxCollisionOffset) {\n label.hidden = true;\n return;\n }\n // Hide labels intersecting or above the title\n if (titleBox) {\n var seriesTop = seriesRect.y - _this.centerY;\n var titleCleanArea = new BBox(titleBox.x - minSpacing, seriesTop, titleBox.width + 2 * minSpacing, titleBox.y + titleBox.height + minSpacing - seriesTop);\n if (box.collidesBBox(titleCleanArea)) {\n label.hidden = true;\n return;\n }\n }\n if (options.hideWhenNecessary) {\n var _b = _this.getLabelOverflow(label.text, box, seriesRect), textLength = _b.textLength, hasVerticalOverflow = _b.hasVerticalOverflow, hasSurroundingSeriesOverflow = _b.hasSurroundingSeriesOverflow;\n var isTooShort = label.text.length > 2 && textLength < 2;\n if (hasVerticalOverflow || isTooShort || hasSurroundingSeriesOverflow) {\n label.hidden = true;\n return;\n }\n }\n label.hidden = false;\n textBoxes.push(box);\n });\n if (textBoxes.length === 0) {\n return null;\n }\n return BBox.merge(textBoxes);\n };\n PieSeries.prototype.updateSectorLabelNodes = function () {\n var radiusScale = this.radiusScale;\n var innerRadius = radiusScale.convert(0);\n var _a = this.sectorLabel, fontSize = _a.fontSize, fontStyle = _a.fontStyle, fontWeight = _a.fontWeight, fontFamily = _a.fontFamily, positionOffset = _a.positionOffset, positionRatio = _a.positionRatio, color = _a.color;\n var isDoughnut = innerRadius > 0;\n var singleVisibleSector = this.seriesItemEnabled.filter(Boolean).length === 1;\n this.sectorLabelSelection.each(function (text, datum) {\n var sectorLabel = datum.sectorLabel;\n var radius = radiusScale.convert(datum.radius);\n var outerRadius = Math.max(0, radius);\n var isTextVisible = false;\n if (sectorLabel && outerRadius !== 0) {\n var labelRadius = innerRadius * (1 - positionRatio) + radius * positionRatio + positionOffset;\n text.fill = color;\n text.fontStyle = fontStyle;\n text.fontWeight = fontWeight;\n text.fontSize = fontSize;\n text.fontFamily = fontFamily;\n text.text = sectorLabel.text;\n var shouldPutTextInCenter = !isDoughnut && singleVisibleSector;\n if (shouldPutTextInCenter) {\n text.x = 0;\n text.y = 0;\n }\n else {\n text.x = datum.midCos * labelRadius;\n text.y = datum.midSin * labelRadius;\n }\n text.textAlign = 'center';\n text.textBaseline = 'middle';\n var bbox = text.computeBBox();\n var corners = [\n [bbox.x, bbox.y],\n [bbox.x + bbox.width, bbox.y],\n [bbox.x + bbox.width, bbox.y + bbox.height],\n [bbox.x, bbox.y + bbox.height],\n ];\n var startAngle = datum.startAngle, endAngle = datum.endAngle;\n var sectorBounds_1 = { startAngle: startAngle, endAngle: endAngle, innerRadius: innerRadius, outerRadius: outerRadius };\n if (corners.every(function (_a) {\n var _b = __read$I(_a, 2), x = _b[0], y = _b[1];\n return isPointInSector(x, y, sectorBounds_1);\n })) {\n isTextVisible = true;\n }\n }\n text.visible = isTextVisible;\n });\n };\n PieSeries.prototype.updateInnerCircle = function () {\n var circle = this.innerCircleNode;\n if (!circle) {\n return;\n }\n var innerRadius = this.getInnerRadius();\n if (innerRadius === 0) {\n circle.size = 0;\n }\n else {\n var circleRadius = Math.min(innerRadius, this.getOuterRadius());\n var antiAliasingPadding = 1;\n circle.size = Math.ceil(circleRadius * 2 + antiAliasingPadding);\n }\n };\n PieSeries.prototype.updateInnerLabelNodes = function () {\n var textBBoxes = [];\n var margins = [];\n this.innerLabelsSelection.each(function (text, datum) {\n var fontStyle = datum.fontStyle, fontWeight = datum.fontWeight, fontSize = datum.fontSize, fontFamily = datum.fontFamily, color = datum.color;\n text.fontStyle = fontStyle;\n text.fontWeight = fontWeight;\n text.fontSize = fontSize;\n text.fontFamily = fontFamily;\n text.text = datum.text;\n text.x = 0;\n text.y = 0;\n text.fill = color;\n text.textAlign = 'center';\n text.textBaseline = 'alphabetic';\n textBBoxes.push(text.computeBBox());\n margins.push(datum.margin);\n });\n var getMarginTop = function (index) { return (index === 0 ? 0 : margins[index]); };\n var getMarginBottom = function (index) { return (index === margins.length - 1 ? 0 : margins[index]); };\n var totalHeight = textBBoxes.reduce(function (sum, bbox, i) {\n return sum + bbox.height + getMarginTop(i) + getMarginBottom(i);\n }, 0);\n var totalWidth = Math.max.apply(Math, __spreadArray$p([], __read$I(textBBoxes.map(function (bbox) { return bbox.width; }))));\n var innerRadius = this.getInnerRadius();\n var labelRadius = Math.sqrt(Math.pow(totalWidth / 2, 2) + Math.pow(totalHeight / 2, 2));\n var labelsVisible = labelRadius <= (innerRadius > 0 ? innerRadius : this.getOuterRadius());\n var textBottoms = [];\n for (var i = 0, prev = -totalHeight / 2; i < textBBoxes.length; i++) {\n var bbox = textBBoxes[i];\n var bottom = bbox.height + prev + getMarginTop(i);\n textBottoms.push(bottom);\n prev = bottom + getMarginBottom(i);\n }\n this.innerLabelsSelection.each(function (text, _datum, index) {\n text.y = textBottoms[index];\n text.visible = labelsVisible;\n });\n };\n PieSeries.prototype.getNodeClickEvent = function (event, datum) {\n return new PieSeriesNodeClickEvent(this.angleKey, this.calloutLabelKey, this.sectorLabelKey, this.radiusKey, event, datum, this);\n };\n PieSeries.prototype.getNodeDoubleClickEvent = function (event, datum) {\n return new PieSeriesNodeDoubleClickEvent(this.angleKey, this.calloutLabelKey, this.sectorLabelKey, this.radiusKey, event, datum, this);\n };\n PieSeries.prototype.getTooltipHtml = function (nodeDatum) {\n var _a;\n var angleKey = this.angleKey;\n if (!angleKey) {\n return '';\n }\n var _b = this, tooltip = _b.tooltip, angleName = _b.angleName, radiusKey = _b.radiusKey, radiusName = _b.radiusName, calloutLabelKey = _b.calloutLabelKey, sectorLabelKey = _b.sectorLabelKey, calloutLabelName = _b.calloutLabelName, sectorLabelName = _b.sectorLabelName, seriesId = _b.id;\n var tooltipRenderer = tooltip.renderer;\n var datum = nodeDatum.datum, angleValue = nodeDatum.angleValue, radiusValue = nodeDatum.radiusValue, color = nodeDatum.sectorFormat.fill, _c = nodeDatum.calloutLabel, _d = _c === void 0 ? {} : _c, _e = _d.text, label = _e === void 0 ? '' : _e;\n var formattedAngleValue = typeof angleValue === 'number' ? toFixed(angleValue) : String(angleValue);\n var title = (_a = this.title) === null || _a === void 0 ? void 0 : _a.text;\n var content = \"\" + (label ? label + \": \" : '') + formattedAngleValue;\n var defaults = {\n title: title,\n backgroundColor: color,\n content: content,\n };\n if (tooltipRenderer) {\n return toTooltipHtml$1(tooltipRenderer({\n datum: datum,\n angleKey: angleKey,\n angleValue: angleValue,\n angleName: angleName,\n radiusKey: radiusKey,\n radiusValue: radiusValue,\n radiusName: radiusName,\n calloutLabelKey: calloutLabelKey,\n calloutLabelName: calloutLabelName,\n sectorLabelKey: sectorLabelKey,\n sectorLabelName: sectorLabelName,\n title: title,\n color: color,\n seriesId: seriesId,\n }), defaults);\n }\n return toTooltipHtml$1(defaults);\n };\n PieSeries.prototype.getLegendData = function () {\n var _a, _b, _c;\n var _d = this, processedData = _d.processedData, calloutLabelKey = _d.calloutLabelKey, legendItemKey = _d.legendItemKey, id = _d.id, dataModel = _d.dataModel;\n if (!dataModel || !processedData || processedData.data.length === 0)\n return [];\n if (!legendItemKey && !calloutLabelKey)\n return [];\n var _e = this.getProcessedDataIndexes(dataModel), angleIdx = _e.angleIdx, radiusIdx = _e.radiusIdx, calloutLabelIdx = _e.calloutLabelIdx, sectorLabelIdx = _e.sectorLabelIdx, legendItemIdx = _e.legendItemIdx;\n var titleText = ((_a = this.title) === null || _a === void 0 ? void 0 : _a.showInLegend) && this.title.text;\n var legendData = [];\n for (var index = 0; index < processedData.data.length; index++) {\n var _f = processedData.data[index], datum = _f.datum, values = _f.values;\n var labelParts = [];\n if (titleText) {\n labelParts.push(titleText);\n }\n var labels = this.getLabels(datum, 2 * Math.PI, 2 * Math.PI, false, values[angleIdx], values[radiusIdx], values[calloutLabelIdx], values[sectorLabelIdx], values[legendItemIdx]);\n if (legendItemKey && labels.legendItem !== undefined) {\n labelParts.push(labels.legendItem.text);\n }\n else if (calloutLabelKey && ((_b = labels.calloutLabel) === null || _b === void 0 ? void 0 : _b.text) !== undefined) {\n labelParts.push((_c = labels.calloutLabel) === null || _c === void 0 ? void 0 : _c.text);\n }\n if (labelParts.length === 0)\n continue;\n var sectorFormat = this.getSectorFormat(datum, index, index, false);\n legendData.push({\n legendType: 'category',\n id: id,\n itemId: index,\n seriesId: id,\n enabled: this.seriesItemEnabled[index],\n label: {\n text: labelParts.join(' - '),\n },\n marker: {\n fill: sectorFormat.fill,\n stroke: sectorFormat.stroke,\n fillOpacity: this.fillOpacity,\n strokeOpacity: this.strokeOpacity,\n },\n });\n }\n return legendData;\n };\n PieSeries.prototype.onLegendItemClick = function (event) {\n var enabled = event.enabled, itemId = event.itemId, series = event.series;\n if (series.id === this.id) {\n this.toggleSeriesItem(itemId, enabled);\n }\n else if (series.type === 'pie') {\n this.toggleOtherSeriesItems(series, itemId, enabled);\n }\n };\n PieSeries.prototype.toggleSeriesItem = function (itemId, enabled) {\n this.seriesItemEnabled[itemId] = enabled;\n this.nodeDataRefresh = true;\n };\n PieSeries.prototype.toggleOtherSeriesItems = function (series, itemId, enabled) {\n var _this = this;\n var _a, _b;\n var _c = this, legendItemKey = _c.legendItemKey, dataModel = _c.dataModel;\n if (!legendItemKey || !dataModel)\n return;\n var datumToggledLegendItemValue = series.legendItemKey && ((_a = series.data) === null || _a === void 0 ? void 0 : _a.find(function (_, index) { return index === itemId; })[series.legendItemKey]);\n if (!datumToggledLegendItemValue)\n return;\n var legendItemIdx = dataModel.resolveProcessedDataIndexById(this, \"legendItemValue\").index;\n (_b = this.processedData) === null || _b === void 0 ? void 0 : _b.data.forEach(function (_a, datumItemId) {\n var values = _a.values;\n if (values[legendItemIdx] === datumToggledLegendItemValue) {\n _this.toggleSeriesItem(datumItemId, enabled);\n }\n });\n };\n PieSeries.prototype.animateEmptyUpdateReady = function () {\n var _this = this;\n var _a, _b;\n var duration = (_b = (_a = this.ctx.animationManager) === null || _a === void 0 ? void 0 : _a.defaultOptions.duration) !== null && _b !== void 0 ? _b : 1000;\n var labelDuration = 200;\n var rotation = Math.PI / -2 + toRadians$1(this.rotation);\n this.groupSelection.selectByTag(PieNodeTag.Sector).forEach(function (node) {\n var _a;\n var datum = node.datum;\n (_a = _this.ctx.animationManager) === null || _a === void 0 ? void 0 : _a.animateMany(_this.id + \"_empty-update-ready_\" + node.id, [\n { from: rotation, to: datum.startAngle },\n { from: rotation, to: datum.endAngle },\n ], {\n duration: duration,\n ease: easeOut,\n onUpdate: function (_a) {\n var _b = __read$I(_a, 2), startAngle = _b[0], endAngle = _b[1];\n node.startAngle = startAngle;\n node.endAngle = endAngle;\n },\n });\n });\n var labelAnimationOptions = {\n from: 0,\n to: 1,\n delay: duration,\n duration: labelDuration,\n };\n this.calloutLabelSelection.each(function (label) {\n var _a;\n (_a = _this.ctx.animationManager) === null || _a === void 0 ? void 0 : _a.animate(_this.id + \"_empty-update-ready_\" + label.id, __assign$I(__assign$I({}, labelAnimationOptions), { onUpdate: function (opacity) {\n label.opacity = opacity;\n } }));\n });\n this.sectorLabelSelection.each(function (label) {\n var _a;\n (_a = _this.ctx.animationManager) === null || _a === void 0 ? void 0 : _a.animate(_this.id + \"_empty-update-ready_\" + label.id, __assign$I(__assign$I({}, labelAnimationOptions), { onUpdate: function (opacity) {\n label.opacity = opacity;\n } }));\n });\n this.innerLabelsSelection.each(function (label) {\n var _a;\n (_a = _this.ctx.animationManager) === null || _a === void 0 ? void 0 : _a.animate(_this.id + \"_empty-update-ready_\" + label.id, __assign$I(__assign$I({}, labelAnimationOptions), { onUpdate: function (opacity) {\n label.opacity = opacity;\n } }));\n });\n };\n PieSeries.prototype.animateReadyUpdateReady = function () {\n this.groupSelection.selectByTag(PieNodeTag.Sector).forEach(function (node) {\n var datum = node.datum;\n node.startAngle = datum.startAngle;\n node.endAngle = datum.endAngle;\n });\n };\n PieSeries.className = 'PieSeries';\n PieSeries.type = 'pie';\n __decorate$1z([\n Validate(STRING)\n ], PieSeries.prototype, \"angleKey\", void 0);\n __decorate$1z([\n Validate(STRING)\n ], PieSeries.prototype, \"angleName\", void 0);\n __decorate$1z([\n Validate(OPT_STRING)\n ], PieSeries.prototype, \"radiusKey\", void 0);\n __decorate$1z([\n Validate(OPT_STRING)\n ], PieSeries.prototype, \"radiusName\", void 0);\n __decorate$1z([\n Validate(OPT_NUMBER(0))\n ], PieSeries.prototype, \"radiusMin\", void 0);\n __decorate$1z([\n Validate(OPT_NUMBER(0))\n ], PieSeries.prototype, \"radiusMax\", void 0);\n __decorate$1z([\n Validate(OPT_STRING)\n ], PieSeries.prototype, \"calloutLabelKey\", void 0);\n __decorate$1z([\n Validate(OPT_STRING)\n ], PieSeries.prototype, \"calloutLabelName\", void 0);\n __decorate$1z([\n Validate(OPT_STRING)\n ], PieSeries.prototype, \"sectorLabelKey\", void 0);\n __decorate$1z([\n Validate(OPT_STRING)\n ], PieSeries.prototype, \"sectorLabelName\", void 0);\n __decorate$1z([\n Validate(OPT_STRING)\n ], PieSeries.prototype, \"legendItemKey\", void 0);\n __decorate$1z([\n Validate(COLOR_STRING_ARRAY)\n ], PieSeries.prototype, \"fills\", void 0);\n __decorate$1z([\n Validate(COLOR_STRING_ARRAY)\n ], PieSeries.prototype, \"strokes\", void 0);\n __decorate$1z([\n Validate(NUMBER(0, 1))\n ], PieSeries.prototype, \"fillOpacity\", void 0);\n __decorate$1z([\n Validate(NUMBER(0, 1))\n ], PieSeries.prototype, \"strokeOpacity\", void 0);\n __decorate$1z([\n Validate(OPT_LINE_DASH)\n ], PieSeries.prototype, \"lineDash\", void 0);\n __decorate$1z([\n Validate(NUMBER(0))\n ], PieSeries.prototype, \"lineDashOffset\", void 0);\n __decorate$1z([\n Validate(OPT_FUNCTION)\n ], PieSeries.prototype, \"formatter\", void 0);\n __decorate$1z([\n Validate(NUMBER(-360, 360))\n ], PieSeries.prototype, \"rotation\", void 0);\n __decorate$1z([\n Validate(NUMBER())\n ], PieSeries.prototype, \"outerRadiusOffset\", void 0);\n __decorate$1z([\n Validate(NUMBER(0))\n ], PieSeries.prototype, \"outerRadiusRatio\", void 0);\n __decorate$1z([\n Validate(NUMBER())\n ], PieSeries.prototype, \"innerRadiusOffset\", void 0);\n __decorate$1z([\n Validate(NUMBER(0))\n ], PieSeries.prototype, \"innerRadiusRatio\", void 0);\n __decorate$1z([\n Validate(NUMBER(0))\n ], PieSeries.prototype, \"strokeWidth\", void 0);\n return PieSeries;\n}(PolarSeries));\n\nvar __assign$H = (undefined && undefined.__assign) || function () {\n __assign$H = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$H.apply(this, arguments);\n};\nvar JSON_APPLY_PLUGINS = {\n constructors: {},\n constructedArrays: new WeakMap(),\n};\nfunction assignJsonApplyConstructedArray(array, ctor) {\n var _a;\n (_a = JSON_APPLY_PLUGINS.constructedArrays) === null || _a === void 0 ? void 0 : _a.set(array, ctor);\n}\nvar JSON_APPLY_OPTIONS = {\n constructors: {\n title: Caption,\n subtitle: Caption,\n footnote: Caption,\n shadow: DropShadow,\n innerCircle: DoughnutInnerCircle,\n 'axes[].title': AxisTitle,\n 'series[].innerLabels[]': DoughnutInnerLabel,\n },\n allowedTypes: {\n 'legend.pagination.marker.shape': ['primitive', 'function'],\n 'series[].marker.shape': ['primitive', 'function'],\n 'axis[].tick.count': ['primitive', 'class-instance'],\n },\n};\nfunction getJsonApplyOptions() {\n return {\n constructors: __assign$H(__assign$H({}, JSON_APPLY_OPTIONS.constructors), JSON_APPLY_PLUGINS.constructors),\n constructedArrays: JSON_APPLY_PLUGINS.constructedArrays,\n allowedTypes: __assign$H({}, JSON_APPLY_OPTIONS.allowedTypes),\n };\n}\n\nvar horizontalCrosslineTranslationDirections = {\n top: { xTranslationDirection: 0, yTranslationDirection: -1 },\n bottom: { xTranslationDirection: 0, yTranslationDirection: 1 },\n left: { xTranslationDirection: -1, yTranslationDirection: 0 },\n right: { xTranslationDirection: 1, yTranslationDirection: 0 },\n topLeft: { xTranslationDirection: 1, yTranslationDirection: -1 },\n topRight: { xTranslationDirection: -1, yTranslationDirection: -1 },\n bottomLeft: { xTranslationDirection: 1, yTranslationDirection: 1 },\n bottomRight: { xTranslationDirection: -1, yTranslationDirection: 1 },\n inside: { xTranslationDirection: 0, yTranslationDirection: 0 },\n insideLeft: { xTranslationDirection: 1, yTranslationDirection: 0 },\n insideRight: { xTranslationDirection: -1, yTranslationDirection: 0 },\n insideTop: { xTranslationDirection: 0, yTranslationDirection: 1 },\n insideBottom: { xTranslationDirection: 0, yTranslationDirection: -1 },\n insideTopLeft: { xTranslationDirection: 1, yTranslationDirection: 1 },\n insideBottomLeft: { xTranslationDirection: 1, yTranslationDirection: -1 },\n insideTopRight: { xTranslationDirection: -1, yTranslationDirection: 1 },\n insideBottomRight: { xTranslationDirection: -1, yTranslationDirection: -1 },\n};\nvar verticalCrossLineTranslationDirections = {\n top: { xTranslationDirection: 1, yTranslationDirection: 0 },\n bottom: { xTranslationDirection: -1, yTranslationDirection: 0 },\n left: { xTranslationDirection: 0, yTranslationDirection: -1 },\n right: { xTranslationDirection: 0, yTranslationDirection: 1 },\n topLeft: { xTranslationDirection: -1, yTranslationDirection: -1 },\n topRight: { xTranslationDirection: -1, yTranslationDirection: 1 },\n bottomLeft: { xTranslationDirection: 1, yTranslationDirection: -1 },\n bottomRight: { xTranslationDirection: 1, yTranslationDirection: 1 },\n inside: { xTranslationDirection: 0, yTranslationDirection: 0 },\n insideLeft: { xTranslationDirection: 0, yTranslationDirection: 1 },\n insideRight: { xTranslationDirection: 0, yTranslationDirection: -1 },\n insideTop: { xTranslationDirection: -1, yTranslationDirection: 0 },\n insideBottom: { xTranslationDirection: 1, yTranslationDirection: 0 },\n insideTopLeft: { xTranslationDirection: -1, yTranslationDirection: 1 },\n insideBottomLeft: { xTranslationDirection: 1, yTranslationDirection: 1 },\n insideTopRight: { xTranslationDirection: -1, yTranslationDirection: -1 },\n insideBottomRight: { xTranslationDirection: 1, yTranslationDirection: -1 },\n};\nfunction calculateLabelTranslation(_a) {\n var yDirection = _a.yDirection, _b = _a.padding, padding = _b === void 0 ? 0 : _b, _c = _a.position, position = _c === void 0 ? 'top' : _c, bbox = _a.bbox;\n var crossLineTranslationDirections = yDirection\n ? horizontalCrosslineTranslationDirections\n : verticalCrossLineTranslationDirections;\n var _d = crossLineTranslationDirections[position], xTranslationDirection = _d.xTranslationDirection, yTranslationDirection = _d.yTranslationDirection;\n var w = yDirection ? bbox.width : bbox.height;\n var h = yDirection ? bbox.height : bbox.width;\n var xTranslation = xTranslationDirection * (padding + w / 2);\n var yTranslation = yTranslationDirection * (padding + h / 2);\n var result = {\n xTranslation: xTranslation,\n yTranslation: yTranslation,\n };\n return result;\n}\nfunction calculateLabelChartPadding(_a) {\n var yDirection = _a.yDirection, bbox = _a.bbox, _b = _a.padding, padding = _b === void 0 ? 0 : _b, _c = _a.position, position = _c === void 0 ? 'top' : _c;\n var chartPadding = {};\n if (position.startsWith('inside'))\n return chartPadding;\n if (position === 'top' && !yDirection) {\n chartPadding.top = padding + bbox.height;\n }\n else if (position === 'bottom' && !yDirection) {\n chartPadding.bottom = padding + bbox.height;\n }\n else if (position === 'left' && yDirection) {\n chartPadding.left = padding + bbox.width;\n }\n else if (position === 'right' && yDirection) {\n chartPadding.right = padding + bbox.width;\n }\n return chartPadding;\n}\nvar POSITION_TOP_COORDINATES = function (_a) {\n var yDirection = _a.yDirection, xEnd = _a.xEnd, yStart = _a.yStart, yEnd = _a.yEnd;\n if (yDirection) {\n return { x: xEnd / 2, y: yStart };\n }\n else {\n return { x: xEnd, y: !isNaN(yEnd) ? (yStart + yEnd) / 2 : yStart };\n }\n};\nvar POSITION_LEFT_COORDINATES = function (_a) {\n var yDirection = _a.yDirection, xStart = _a.xStart, xEnd = _a.xEnd, yStart = _a.yStart, yEnd = _a.yEnd;\n if (yDirection) {\n return { x: xStart, y: !isNaN(yEnd) ? (yStart + yEnd) / 2 : yStart };\n }\n else {\n return { x: xEnd / 2, y: yStart };\n }\n};\nvar POSITION_RIGHT_COORDINATES = function (_a) {\n var yDirection = _a.yDirection, xEnd = _a.xEnd, yStart = _a.yStart, yEnd = _a.yEnd;\n if (yDirection) {\n return { x: xEnd, y: !isNaN(yEnd) ? (yStart + yEnd) / 2 : yStart };\n }\n else {\n return { x: xEnd / 2, y: !isNaN(yEnd) ? yEnd : yStart };\n }\n};\nvar POSITION_BOTTOM_COORDINATES = function (_a) {\n var yDirection = _a.yDirection, xStart = _a.xStart, xEnd = _a.xEnd, yStart = _a.yStart, yEnd = _a.yEnd;\n if (yDirection) {\n return { x: xEnd / 2, y: !isNaN(yEnd) ? yEnd : yStart };\n }\n else {\n return { x: xStart, y: !isNaN(yEnd) ? (yStart + yEnd) / 2 : yStart };\n }\n};\nvar POSITION_INSIDE_COORDINATES = function (_a) {\n var xEnd = _a.xEnd, yStart = _a.yStart, yEnd = _a.yEnd;\n return { x: xEnd / 2, y: !isNaN(yEnd) ? (yStart + yEnd) / 2 : yStart };\n};\nvar POSITION_TOP_LEFT_COORDINATES = function (_a) {\n var yDirection = _a.yDirection, xStart = _a.xStart, xEnd = _a.xEnd, yStart = _a.yStart;\n if (yDirection) {\n return { x: xStart / 2, y: yStart };\n }\n else {\n return { x: xEnd, y: yStart };\n }\n};\nvar POSITION_BOTTOM_LEFT_COORDINATES = function (_a) {\n var yDirection = _a.yDirection, xStart = _a.xStart, yStart = _a.yStart, yEnd = _a.yEnd;\n if (yDirection) {\n return { x: xStart, y: !isNaN(yEnd) ? yEnd : yStart };\n }\n else {\n return { x: xStart, y: yStart };\n }\n};\nvar POSITION_TOP_RIGHT_COORDINATES = function (_a) {\n var yDirection = _a.yDirection, xEnd = _a.xEnd, yStart = _a.yStart, yEnd = _a.yEnd;\n if (yDirection) {\n return { x: xEnd, y: yStart };\n }\n else {\n return { x: xEnd, y: !isNaN(yEnd) ? yEnd : yStart };\n }\n};\nvar POSITION_BOTTOM_RIGHT_COORDINATES = function (_a) {\n var yDirection = _a.yDirection, xStart = _a.xStart, xEnd = _a.xEnd, yStart = _a.yStart, yEnd = _a.yEnd;\n if (yDirection) {\n return { x: xEnd, y: !isNaN(yEnd) ? yEnd : yStart };\n }\n else {\n return { x: xStart, y: !isNaN(yEnd) ? yEnd : yStart };\n }\n};\nvar labeldDirectionHandling = {\n top: { c: POSITION_TOP_COORDINATES },\n bottom: { c: POSITION_BOTTOM_COORDINATES },\n left: { c: POSITION_LEFT_COORDINATES },\n right: { c: POSITION_RIGHT_COORDINATES },\n topLeft: { c: POSITION_TOP_LEFT_COORDINATES },\n topRight: { c: POSITION_TOP_RIGHT_COORDINATES },\n bottomLeft: { c: POSITION_BOTTOM_LEFT_COORDINATES },\n bottomRight: { c: POSITION_BOTTOM_RIGHT_COORDINATES },\n inside: { c: POSITION_INSIDE_COORDINATES },\n insideLeft: { c: POSITION_LEFT_COORDINATES },\n insideRight: { c: POSITION_RIGHT_COORDINATES },\n insideTop: { c: POSITION_TOP_COORDINATES },\n insideBottom: { c: POSITION_BOTTOM_COORDINATES },\n insideTopLeft: { c: POSITION_TOP_LEFT_COORDINATES },\n insideBottomLeft: { c: POSITION_BOTTOM_LEFT_COORDINATES },\n insideTopRight: { c: POSITION_TOP_RIGHT_COORDINATES },\n insideBottomRight: { c: POSITION_BOTTOM_RIGHT_COORDINATES },\n};\n\nvar __extends$2g = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$G = (undefined && undefined.__assign) || function () {\n __assign$G = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$G.apply(this, arguments);\n};\nvar __decorate$1y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar Range = /** @class */ (function (_super) {\n __extends$2g(Range, _super);\n function Range() {\n var _this = _super.call(this) || this;\n _this.x1 = 0;\n _this.y1 = 0;\n _this.x2 = 0;\n _this.y2 = 0;\n _this.startLine = false;\n _this.endLine = false;\n _this.isRange = false;\n _this.restoreOwnStyles();\n return _this;\n }\n Range.prototype.computeBBox = function () {\n return new BBox(this.x1, this.y1, this.x2 - this.x1, this.y2 - this.y1);\n };\n Range.prototype.isPointInPath = function (_x, _y) {\n return false;\n };\n Range.prototype.render = function (renderCtx) {\n var _a;\n var ctx = renderCtx.ctx, forceRender = renderCtx.forceRender, stats = renderCtx.stats;\n if (this.dirty === RedrawType.NONE && !forceRender) {\n if (stats)\n stats.nodesSkipped += this.nodeCount.count;\n return;\n }\n this.computeTransformMatrix();\n this.matrix.toContext(ctx);\n var _b = this, x1 = _b.x1, y1 = _b.y1, x2 = _b.x2, y2 = _b.y2;\n x1 = this.align(x1);\n y1 = this.align(y1);\n x2 = this.align(x2);\n y2 = this.align(y2);\n var _c = this, fill = _c.fill, opacity = _c.opacity, isRange = _c.isRange;\n var fillActive = !!(isRange && fill);\n if (fillActive) {\n var fillOpacity = this.fillOpacity;\n ctx.fillStyle = fill;\n ctx.globalAlpha = opacity * fillOpacity;\n ctx.beginPath();\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y1);\n ctx.lineTo(x2, y2);\n ctx.lineTo(x1, y2);\n ctx.closePath();\n ctx.fill();\n }\n var _d = this, stroke = _d.stroke, strokeWidth = _d.strokeWidth, startLine = _d.startLine, endLine = _d.endLine;\n var strokeActive = !!((startLine || endLine) && stroke && strokeWidth);\n if (strokeActive) {\n var _e = this, strokeOpacity = _e.strokeOpacity, lineDash = _e.lineDash, lineDashOffset = _e.lineDashOffset, lineCap = _e.lineCap, lineJoin = _e.lineJoin;\n ctx.strokeStyle = stroke;\n ctx.globalAlpha = opacity * strokeOpacity;\n ctx.lineWidth = strokeWidth;\n if (lineDash) {\n ctx.setLineDash(lineDash);\n }\n if (lineDashOffset) {\n ctx.lineDashOffset = lineDashOffset;\n }\n if (lineCap) {\n ctx.lineCap = lineCap;\n }\n if (lineJoin) {\n ctx.lineJoin = lineJoin;\n }\n ctx.beginPath();\n if (startLine) {\n ctx.moveTo(x1, y1);\n ctx.lineTo(x2, y1);\n }\n if (endLine) {\n ctx.moveTo(x2, y2);\n ctx.lineTo(x1, y2);\n }\n ctx.stroke();\n }\n (_a = this.fillShadow) === null || _a === void 0 ? void 0 : _a.markClean();\n _super.prototype.render.call(this, renderCtx);\n };\n Range.className = 'Range';\n Range.defaultStyles = __assign$G(__assign$G({}, Shape.defaultStyles), { strokeWidth: 1 });\n __decorate$1y([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Range.prototype, \"x1\", void 0);\n __decorate$1y([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Range.prototype, \"y1\", void 0);\n __decorate$1y([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Range.prototype, \"x2\", void 0);\n __decorate$1y([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Range.prototype, \"y2\", void 0);\n __decorate$1y([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Range.prototype, \"startLine\", void 0);\n __decorate$1y([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Range.prototype, \"endLine\", void 0);\n __decorate$1y([\n SceneChangeDetection({ redraw: RedrawType.MINOR })\n ], Range.prototype, \"isRange\", void 0);\n return Range;\n}(Shape));\n\nvar __decorate$1x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$H = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$o = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar CROSSLINE_LABEL_POSITIONS = [\n 'top',\n 'left',\n 'right',\n 'bottom',\n 'topLeft',\n 'topRight',\n 'bottomLeft',\n 'bottomRight',\n 'inside',\n 'insideLeft',\n 'insideRight',\n 'insideTop',\n 'insideBottom',\n 'insideTopLeft',\n 'insideBottomLeft',\n 'insideTopRight',\n 'insideBottomRight',\n];\nvar OPT_CROSSLINE_LABEL_POSITION = predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, function (v) { return CROSSLINE_LABEL_POSITIONS.includes(v); }); }, \"expecting an optional crossLine label position keyword such as 'topLeft', 'topRight' or 'inside'\");\nvar OPT_CROSSLINE_TYPE = predicateWithMessage(function (v, ctx) { return OPTIONAL(v, ctx, function (v) { return v === 'range' || v === 'line'; }); }, \"expecting a crossLine type keyword such as 'range' or 'line'\");\nvar CartesianCrossLineLabel = /** @class */ (function () {\n function CartesianCrossLineLabel() {\n this.enabled = undefined;\n this.text = undefined;\n this.fontStyle = undefined;\n this.fontWeight = undefined;\n this.fontSize = 14;\n this.fontFamily = 'Verdana, sans-serif';\n /**\n * The padding between the label and the line.\n */\n this.padding = 5;\n /**\n * The color of the labels.\n */\n this.color = 'rgba(87, 87, 87, 1)';\n this.position = undefined;\n this.rotation = undefined;\n this.parallel = undefined;\n }\n __decorate$1x([\n Validate(OPT_BOOLEAN)\n ], CartesianCrossLineLabel.prototype, \"enabled\", void 0);\n __decorate$1x([\n Validate(OPT_STRING)\n ], CartesianCrossLineLabel.prototype, \"text\", void 0);\n __decorate$1x([\n Validate(OPT_FONT_STYLE)\n ], CartesianCrossLineLabel.prototype, \"fontStyle\", void 0);\n __decorate$1x([\n Validate(OPT_FONT_WEIGHT)\n ], CartesianCrossLineLabel.prototype, \"fontWeight\", void 0);\n __decorate$1x([\n Validate(NUMBER(0))\n ], CartesianCrossLineLabel.prototype, \"fontSize\", void 0);\n __decorate$1x([\n Validate(STRING)\n ], CartesianCrossLineLabel.prototype, \"fontFamily\", void 0);\n __decorate$1x([\n Validate(NUMBER(0))\n ], CartesianCrossLineLabel.prototype, \"padding\", void 0);\n __decorate$1x([\n Validate(OPT_COLOR_STRING)\n ], CartesianCrossLineLabel.prototype, \"color\", void 0);\n __decorate$1x([\n Validate(OPT_CROSSLINE_LABEL_POSITION)\n ], CartesianCrossLineLabel.prototype, \"position\", void 0);\n __decorate$1x([\n Validate(OPT_NUMBER(-360, 360))\n ], CartesianCrossLineLabel.prototype, \"rotation\", void 0);\n __decorate$1x([\n Validate(OPT_BOOLEAN)\n ], CartesianCrossLineLabel.prototype, \"parallel\", void 0);\n return CartesianCrossLineLabel;\n}());\nvar CartesianCrossLine = /** @class */ (function () {\n function CartesianCrossLine() {\n this.id = createId$1(this);\n this.enabled = undefined;\n this.type = undefined;\n this.range = undefined;\n this.value = undefined;\n this.fill = undefined;\n this.fillOpacity = undefined;\n this.stroke = undefined;\n this.strokeWidth = undefined;\n this.strokeOpacity = undefined;\n this.lineDash = undefined;\n this.label = new CartesianCrossLineLabel();\n this.scale = undefined;\n this.clippedRange = [-Infinity, Infinity];\n this.gridLength = 0;\n this.sideFlag = -1;\n this.parallelFlipRotation = 0;\n this.regularFlipRotation = 0;\n this.direction = ChartAxisDirection.X;\n this.group = new Group({ name: \"\" + this.id, layer: true, zIndex: CartesianCrossLine.LINE_LAYER_ZINDEX });\n this.crossLineRange = new Range();\n this.crossLineLabel = new Text();\n this.labelPoint = undefined;\n this.data = [];\n this.startLine = false;\n this.endLine = false;\n this.isRange = false;\n var _a = this, group = _a.group, crossLineRange = _a.crossLineRange, crossLineLabel = _a.crossLineLabel;\n group.append([crossLineRange, crossLineLabel]);\n crossLineRange.pointerEvents = PointerEvents.None;\n }\n CartesianCrossLine.prototype.update = function (visible) {\n if (!this.enabled) {\n return;\n }\n this.group.visible = visible;\n if (!visible) {\n return;\n }\n var dataCreated = this.createNodeData();\n if (!dataCreated) {\n this.group.visible = false;\n return;\n }\n this.updateNodes();\n this.group.zIndex = this.getZIndex(this.isRange);\n };\n CartesianCrossLine.prototype.updateNodes = function () {\n this.updateRangeNode();\n if (this.label.enabled) {\n this.updateLabel();\n this.positionLabel();\n }\n };\n CartesianCrossLine.prototype.createNodeData = function () {\n var _a, _b, _c;\n var _d, _e;\n var _f = this, scale = _f.scale, gridLength = _f.gridLength, sideFlag = _f.sideFlag, direction = _f.direction, _g = _f.label.position, position = _g === void 0 ? 'top' : _g, clippedRange = _f.clippedRange, _h = _f.strokeWidth, strokeWidth = _h === void 0 ? 0 : _h;\n if (!scale) {\n return false;\n }\n var bandwidth = (_d = scale.bandwidth) !== null && _d !== void 0 ? _d : 0;\n var clippedRangeClamper = function (x) {\n return Math.max(Math.min.apply(Math, __spreadArray$o([], __read$H(clippedRange))), Math.min(Math.max.apply(Math, __spreadArray$o([], __read$H(clippedRange))), x));\n };\n var _j = __read$H([0, sideFlag * gridLength], 2), xStart = _j[0], xEnd = _j[1];\n var _k = __read$H(this.getRange(), 2), yStart = _k[0], yEnd = _k[1];\n var _l = __read$H([\n Number(scale.convert(yStart, { strict: false })),\n scale.convert(yEnd, { strict: false }) + bandwidth,\n ], 2), clampedYStart = _l[0], clampedYEnd = _l[1];\n clampedYStart = clippedRangeClamper(clampedYStart);\n clampedYEnd = clippedRangeClamper(clampedYEnd);\n _a = __read$H([Number(scale.convert(yStart)), scale.convert(yEnd) + bandwidth], 2), yStart = _a[0], yEnd = _a[1];\n var validRange = !isNaN(clampedYStart) &&\n !isNaN(clampedYEnd) &&\n (yStart === clampedYStart || yEnd === clampedYEnd || clampedYStart !== clampedYEnd) &&\n Math.abs(clampedYEnd - clampedYStart) > 0;\n if (validRange) {\n var reverse = clampedYStart !== Math.min(clampedYStart, clampedYEnd);\n if (reverse) {\n _b = __read$H([\n Math.min(clampedYStart, clampedYEnd),\n Math.max(clampedYStart, clampedYEnd),\n ], 2), clampedYStart = _b[0], clampedYEnd = _b[1];\n _c = __read$H([yEnd, yStart], 2), yStart = _c[0], yEnd = _c[1];\n }\n }\n this.isRange = validRange;\n this.startLine = !isNaN(yStart) && strokeWidth > 0 && yStart === clampedYStart;\n this.endLine = !isNaN(yEnd) && strokeWidth > 0 && yEnd === clampedYEnd;\n if (!validRange && !this.startLine && !this.endLine) {\n return false;\n }\n this.data = [clampedYStart, clampedYEnd];\n if (this.label.enabled) {\n var yDirection = direction === ChartAxisDirection.Y;\n var _m = ((_e = labeldDirectionHandling[position]) !== null && _e !== void 0 ? _e : {}).c, c = _m === void 0 ? POSITION_TOP_COORDINATES : _m;\n var _o = c({ yDirection: yDirection, xStart: xStart, xEnd: xEnd, yStart: clampedYStart, yEnd: clampedYEnd }), labelX = _o.x, labelY = _o.y;\n this.labelPoint = {\n x: labelX,\n y: labelY,\n };\n }\n return true;\n };\n CartesianCrossLine.prototype.updateRangeNode = function () {\n var _a;\n var _b = this, crossLineRange = _b.crossLineRange, sideFlag = _b.sideFlag, gridLength = _b.gridLength, data = _b.data, startLine = _b.startLine, endLine = _b.endLine, isRange = _b.isRange, fill = _b.fill, fillOpacity = _b.fillOpacity, stroke = _b.stroke, strokeWidth = _b.strokeWidth, lineDash = _b.lineDash;\n crossLineRange.x1 = 0;\n crossLineRange.x2 = sideFlag * gridLength;\n crossLineRange.y1 = data[0];\n crossLineRange.y2 = data[1];\n crossLineRange.startLine = startLine;\n crossLineRange.endLine = endLine;\n crossLineRange.isRange = isRange;\n crossLineRange.fill = fill;\n crossLineRange.fillOpacity = fillOpacity !== null && fillOpacity !== void 0 ? fillOpacity : 1;\n crossLineRange.stroke = stroke;\n crossLineRange.strokeWidth = strokeWidth !== null && strokeWidth !== void 0 ? strokeWidth : 1;\n crossLineRange.strokeOpacity = (_a = this.strokeOpacity) !== null && _a !== void 0 ? _a : 1;\n crossLineRange.lineDash = lineDash;\n };\n CartesianCrossLine.prototype.updateLabel = function () {\n var _a = this, crossLineLabel = _a.crossLineLabel, label = _a.label;\n if (!label.text) {\n return;\n }\n crossLineLabel.fontStyle = label.fontStyle;\n crossLineLabel.fontWeight = label.fontWeight;\n crossLineLabel.fontSize = label.fontSize;\n crossLineLabel.fontFamily = label.fontFamily;\n crossLineLabel.fill = label.color;\n crossLineLabel.text = label.text;\n };\n CartesianCrossLine.prototype.positionLabel = function () {\n var _a = this, crossLineLabel = _a.crossLineLabel, _b = _a.labelPoint, _c = _b === void 0 ? {} : _b, _d = _c.x, x = _d === void 0 ? undefined : _d, _e = _c.y, y = _e === void 0 ? undefined : _e, _f = _a.label, parallel = _f.parallel, rotation = _f.rotation, _g = _f.position, position = _g === void 0 ? 'top' : _g, _h = _f.padding, padding = _h === void 0 ? 0 : _h, direction = _a.direction, parallelFlipRotation = _a.parallelFlipRotation, regularFlipRotation = _a.regularFlipRotation;\n if (x === undefined || y === undefined) {\n return;\n }\n var _j = calculateLabelRotation({\n rotation: rotation,\n parallel: parallel,\n regularFlipRotation: regularFlipRotation,\n parallelFlipRotation: parallelFlipRotation,\n }), defaultRotation = _j.defaultRotation, configuredRotation = _j.configuredRotation;\n crossLineLabel.rotation = defaultRotation + configuredRotation;\n crossLineLabel.textBaseline = 'middle';\n crossLineLabel.textAlign = 'center';\n var bbox = this.computeLabelBBox();\n if (!bbox) {\n return;\n }\n var yDirection = direction === ChartAxisDirection.Y;\n var _k = calculateLabelTranslation({ yDirection: yDirection, padding: padding, position: position, bbox: bbox }), xTranslation = _k.xTranslation, yTranslation = _k.yTranslation;\n crossLineLabel.translationX = x + xTranslation;\n crossLineLabel.translationY = y + yTranslation;\n };\n CartesianCrossLine.prototype.getZIndex = function (isRange) {\n if (isRange === void 0) { isRange = false; }\n if (isRange) {\n return CartesianCrossLine.RANGE_LAYER_ZINDEX;\n }\n return CartesianCrossLine.LINE_LAYER_ZINDEX;\n };\n CartesianCrossLine.prototype.getRange = function () {\n var _a = this, value = _a.value, range = _a.range, scale = _a.scale;\n var isContinuous = scale instanceof ContinuousScale;\n var _b = __read$H(range !== null && range !== void 0 ? range : [value, undefined], 2), start = _b[0], end = _b[1];\n if (!isContinuous && end === undefined) {\n end = start;\n }\n start = checkDatum(start, isContinuous) != null ? start : undefined;\n end = checkDatum(end, isContinuous) != null ? end : undefined;\n if (isContinuous && start === end) {\n end = undefined;\n }\n if (start === undefined && end !== undefined) {\n start = end;\n end = undefined;\n }\n return [start, end];\n };\n CartesianCrossLine.prototype.computeLabelBBox = function () {\n return this.crossLineLabel.computeTransformedBBox();\n };\n CartesianCrossLine.prototype.calculatePadding = function (padding) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n var _j = this, isRange = _j.isRange, startLine = _j.startLine, endLine = _j.endLine, direction = _j.direction, _k = _j.label, _l = _k.padding, labelPadding = _l === void 0 ? 0 : _l, _m = _k.position, position = _m === void 0 ? 'top' : _m;\n if (!isRange && !startLine && !endLine) {\n return;\n }\n var crossLineLabelBBox = this.computeLabelBBox();\n var labelX = crossLineLabelBBox === null || crossLineLabelBBox === void 0 ? void 0 : crossLineLabelBBox.x;\n var labelY = crossLineLabelBBox === null || crossLineLabelBBox === void 0 ? void 0 : crossLineLabelBBox.y;\n if (!crossLineLabelBBox || labelX == undefined || labelY == undefined) {\n return;\n }\n var chartPadding = calculateLabelChartPadding({\n yDirection: direction === ChartAxisDirection.Y,\n padding: labelPadding,\n position: position,\n bbox: crossLineLabelBBox,\n });\n padding.left = Math.max((_a = padding.left) !== null && _a !== void 0 ? _a : 0, (_b = chartPadding.left) !== null && _b !== void 0 ? _b : 0);\n padding.right = Math.max((_c = padding.right) !== null && _c !== void 0 ? _c : 0, (_d = chartPadding.right) !== null && _d !== void 0 ? _d : 0);\n padding.top = Math.max((_e = padding.top) !== null && _e !== void 0 ? _e : 0, (_f = chartPadding.top) !== null && _f !== void 0 ? _f : 0);\n padding.bottom = Math.max((_g = padding.bottom) !== null && _g !== void 0 ? _g : 0, (_h = chartPadding.bottom) !== null && _h !== void 0 ? _h : 0);\n };\n CartesianCrossLine.LINE_LAYER_ZINDEX = Layers.SERIES_CROSSLINE_LINE_ZINDEX;\n CartesianCrossLine.RANGE_LAYER_ZINDEX = Layers.SERIES_CROSSLINE_RANGE_ZINDEX;\n CartesianCrossLine.className = 'CrossLine';\n __decorate$1x([\n Validate(OPT_BOOLEAN)\n ], CartesianCrossLine.prototype, \"enabled\", void 0);\n __decorate$1x([\n Validate(OPT_CROSSLINE_TYPE)\n ], CartesianCrossLine.prototype, \"type\", void 0);\n __decorate$1x([\n Validate(OPT_ARRAY(2))\n ], CartesianCrossLine.prototype, \"range\", void 0);\n __decorate$1x([\n Validate(OPT_COLOR_STRING)\n ], CartesianCrossLine.prototype, \"fill\", void 0);\n __decorate$1x([\n Validate(OPT_NUMBER(0, 1))\n ], CartesianCrossLine.prototype, \"fillOpacity\", void 0);\n __decorate$1x([\n Validate(OPT_COLOR_STRING)\n ], CartesianCrossLine.prototype, \"stroke\", void 0);\n __decorate$1x([\n Validate(OPT_NUMBER())\n ], CartesianCrossLine.prototype, \"strokeWidth\", void 0);\n __decorate$1x([\n Validate(OPT_NUMBER(0, 1))\n ], CartesianCrossLine.prototype, \"strokeOpacity\", void 0);\n __decorate$1x([\n Validate(OPT_LINE_DASH)\n ], CartesianCrossLine.prototype, \"lineDash\", void 0);\n return CartesianCrossLine;\n}());\n\nvar __extends$2f = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$F = (undefined && undefined.__assign) || function () {\n __assign$F = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$F.apply(this, arguments);\n};\nvar __decorate$1w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CartesianAxis = /** @class */ (function (_super) {\n __extends$2f(CartesianAxis, _super);\n function CartesianAxis() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.thickness = 0;\n _this.position = 'left';\n return _this;\n }\n Object.defineProperty(CartesianAxis.prototype, \"direction\", {\n get: function () {\n return ['top', 'bottom'].includes(this.position) ? ChartAxisDirection.X : ChartAxisDirection.Y;\n },\n enumerable: false,\n configurable: true\n });\n CartesianAxis.prototype.updateDirection = function () {\n switch (this.position) {\n case 'top':\n this.rotation = -90;\n this.label.mirrored = true;\n this.label.parallel = true;\n break;\n case 'right':\n this.rotation = 0;\n this.label.mirrored = true;\n this.label.parallel = false;\n break;\n case 'bottom':\n this.rotation = -90;\n this.label.mirrored = false;\n this.label.parallel = true;\n break;\n case 'left':\n this.rotation = 0;\n this.label.mirrored = false;\n this.label.parallel = false;\n break;\n }\n if (this.axisContext) {\n this.axisContext.position = this.position;\n this.axisContext.direction = this.direction;\n }\n };\n CartesianAxis.prototype.update = function (primaryTickCount) {\n this.updateDirection();\n return _super.prototype.update.call(this, primaryTickCount);\n };\n CartesianAxis.prototype.createAxisContext = function () {\n return __assign$F(__assign$F({}, _super.prototype.createAxisContext.call(this)), { position: this.position });\n };\n CartesianAxis.prototype.assignCrossLineArrayConstructor = function (crossLines) {\n assignJsonApplyConstructedArray(crossLines, CartesianCrossLine);\n };\n __decorate$1w([\n Validate(NUMBER(0))\n ], CartesianAxis.prototype, \"thickness\", void 0);\n __decorate$1w([\n Validate(POSITION)\n ], CartesianAxis.prototype, \"position\", void 0);\n return CartesianAxis;\n}(Axis));\n\nvar __extends$2e = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __values$k = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$G = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$n = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar CategoryAxis = /** @class */ (function (_super) {\n __extends$2e(CategoryAxis, _super);\n function CategoryAxis(moduleCtx) {\n var _this = _super.call(this, moduleCtx, new BandScale$5()) || this;\n _this._paddingOverrideEnabled = false;\n _this.groupPaddingInner = 0.1;\n _this.includeInvisibleDomains = true;\n return _this;\n }\n Object.defineProperty(CategoryAxis.prototype, \"paddingInner\", {\n get: function () {\n this._paddingOverrideEnabled = true;\n return this.scale.paddingInner;\n },\n set: function (value) {\n this._paddingOverrideEnabled = true;\n this.scale.paddingInner = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(CategoryAxis.prototype, \"paddingOuter\", {\n get: function () {\n return this.scale.paddingOuter;\n },\n set: function (value) {\n this.scale.paddingOuter = value;\n },\n enumerable: false,\n configurable: true\n });\n CategoryAxis.prototype.normaliseDataDomain = function (d) {\n var e_1, _a;\n var _b;\n var _c;\n // Prevent duplicate categories.\n var valuesSet = {};\n try {\n for (var d_1 = __values$k(d), d_1_1 = d_1.next(); !d_1_1.done; d_1_1 = d_1.next()) {\n var next = d_1_1.value;\n (_b = valuesSet[_c = String(next)]) !== null && _b !== void 0 ? _b : (valuesSet[_c] = next);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (d_1_1 && !d_1_1.done && (_a = d_1.return)) _a.call(d_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return Object.values(valuesSet);\n };\n CategoryAxis.prototype.calculateDomain = function () {\n if (!this._paddingOverrideEnabled) {\n var boundSeries = this.boundSeries;\n var paddings = boundSeries.map(function (s) { var _a; return (_a = s.getBandScalePadding) === null || _a === void 0 ? void 0 : _a.call(s); }).filter(function (p) { return p != null; });\n if (paddings.length > 0) {\n this.scale.paddingInner = Math.min.apply(Math, __spreadArray$n([], __read$G(paddings.map(function (p) { return p.inner; }))));\n this.scale.paddingOuter = Math.max.apply(Math, __spreadArray$n([], __read$G(paddings.map(function (p) { return p.outer; }))));\n }\n }\n return _super.prototype.calculateDomain.call(this);\n };\n CategoryAxis.className = 'CategoryAxis';\n CategoryAxis.type = 'category';\n __decorate$1v([\n Validate(NUMBER(0, 1))\n ], CategoryAxis.prototype, \"groupPaddingInner\", void 0);\n return CategoryAxis;\n}(CartesianAxis));\n\n/**\n * The tree layout is calculated in abstract x/y coordinates, where the root is at (0, 0)\n * and the tree grows downward from the root.\n */\nvar TreeNode = /** @class */ (function () {\n function TreeNode(label, parent, number) {\n if (label === void 0) { label = ''; }\n if (number === void 0) { number = 0; }\n this.x = 0;\n this.y = 0;\n this.subtreeLeft = NaN;\n this.subtreeRight = NaN;\n this.screenX = 0;\n this.screenY = 0;\n this.children = [];\n this.leafCount = 0;\n this.prelim = 0;\n this.mod = 0;\n this.ancestor = this;\n this.change = 0;\n this.shift = 0;\n this.label = label;\n // screenX and screenY are meant to be recomputed from (layout) x and y\n // when the tree is resized (without performing another layout)\n this.parent = parent;\n this.depth = parent ? parent.depth + 1 : 0;\n this.number = number;\n }\n TreeNode.prototype.getLeftSibling = function () {\n return this.number > 0 && this.parent ? this.parent.children[this.number - 1] : undefined;\n };\n TreeNode.prototype.getLeftmostSibling = function () {\n return this.number > 0 && this.parent ? this.parent.children[0] : undefined;\n };\n // traverse the left contour of a subtree, return the successor of v on this contour\n TreeNode.prototype.nextLeft = function () {\n return this.children ? this.children[0] : this.thread;\n };\n // traverse the right contour of a subtree, return the successor of v on this contour\n TreeNode.prototype.nextRight = function () {\n return this.children ? this.children[this.children.length - 1] : this.thread;\n };\n TreeNode.prototype.getSiblings = function () {\n var _this = this;\n return this.parent ? this.parent.children.filter(function (_, i) { return i !== _this.number; }) : [];\n };\n return TreeNode;\n}());\n/**\n * Converts an array of ticks, where each tick has an array of labels, to a label tree.\n * If `pad` is `true`, will ensure that every branch matches the depth of the tree by\n * creating empty labels.\n */\nfunction ticksToTree(ticks, pad) {\n if (pad === void 0) { pad = true; }\n var root = new TreeNode();\n var depth = 0;\n if (pad) {\n ticks.forEach(function (tick) { return (depth = Math.max(depth, tick.labels.length)); });\n }\n ticks.forEach(function (tick) {\n if (pad) {\n while (tick.labels.length < depth) {\n tick.labels.unshift('');\n }\n }\n insertTick(root, tick);\n });\n return root;\n}\nfunction insertTick(root, tick) {\n var pathParts = tick.labels.slice().reverse(); // path elements from root to leaf label\n var lastPartIndex = pathParts.length - 1;\n pathParts.forEach(function (pathPart, partIndex) {\n var children = root.children;\n var existingNode = children.find(function (child) { return child.label === pathPart; });\n var isNotLeaf = partIndex !== lastPartIndex;\n if (existingNode && isNotLeaf) {\n // the isNotLeaf check is to allow duplicate leafs\n root = existingNode;\n }\n else {\n var node = new TreeNode(pathPart, root);\n node.number = children.length;\n children.push(node);\n if (isNotLeaf) {\n root = node;\n }\n }\n });\n}\n// Shift the subtree.\nfunction moveSubtree(wm, wp, shift) {\n var subtrees = wp.number - wm.number;\n var ratio = shift / subtrees;\n wp.change -= ratio;\n wp.shift += shift;\n wm.change += ratio;\n wp.prelim += shift;\n wp.mod += shift;\n}\nfunction ancestor(vim, v, defaultAncestor) {\n return v.getSiblings().indexOf(vim.ancestor) >= 0 ? vim.ancestor : defaultAncestor;\n}\n// Spaces out the children.\nfunction executeShifts(v) {\n var children = v.children;\n if (children) {\n var shift = 0;\n var change = 0;\n for (var i = children.length - 1; i >= 0; i--) {\n var w = children[i];\n w.prelim += shift;\n w.mod += shift;\n change += w.change;\n shift += w.shift + change;\n }\n }\n}\n// Moves current subtree with v as the root if some nodes are conflicting in space.\nfunction apportion(v, defaultAncestor, distance) {\n var w = v.getLeftSibling();\n if (w) {\n var vop = v;\n var vip = v;\n var vim = w;\n var vom = vip.getLeftmostSibling();\n var sip = vip.mod;\n var sop = vop.mod;\n var sim = vim.mod;\n var som = vom.mod;\n while (vim.nextRight() && vip.nextLeft()) {\n vim = vim.nextRight();\n vip = vip.nextLeft();\n vom = vom.nextLeft();\n vop = vop.nextRight();\n vop.ancestor = v;\n var shift = vim.prelim + sim - (vip.prelim + sip) + distance;\n if (shift > 0) {\n moveSubtree(ancestor(vim, v, defaultAncestor), v, shift);\n sip += shift;\n sop += shift;\n }\n sim += vim.mod;\n sip += vip.mod;\n som += vom.mod;\n sop += vop.mod;\n }\n if (vim.nextRight() && !vop.nextRight()) {\n vop.thread = vim.nextRight();\n vop.mod += sim - sop;\n }\n else {\n if (vip.nextLeft() && !vom.nextLeft()) {\n vom.thread = vip.nextLeft();\n vom.mod += sip - som;\n }\n defaultAncestor = v;\n }\n }\n return defaultAncestor;\n}\n// Compute the preliminary x-coordinate of node and its children (recursively).\nfunction firstWalk(node, distance) {\n var children = node.children;\n if (children.length) {\n var defaultAncestor_1 = children[0];\n children.forEach(function (child) {\n firstWalk(child, distance);\n defaultAncestor_1 = apportion(child, defaultAncestor_1, distance);\n });\n executeShifts(node);\n var midpoint = (children[0].prelim + children[children.length - 1].prelim) / 2;\n var leftSibling = node.getLeftSibling();\n if (leftSibling) {\n node.prelim = leftSibling.prelim + distance;\n node.mod = node.prelim - midpoint;\n }\n else {\n node.prelim = midpoint;\n }\n }\n else {\n var leftSibling = node.getLeftSibling();\n node.prelim = leftSibling ? leftSibling.prelim + distance : 0;\n }\n}\nvar Dimensions = /** @class */ (function () {\n function Dimensions() {\n this.top = Infinity;\n this.right = -Infinity;\n this.bottom = -Infinity;\n this.left = Infinity;\n }\n Dimensions.prototype.update = function (node, xy) {\n var _a = xy(node), x = _a.x, y = _a.y;\n if (x > this.right) {\n this.right = x;\n }\n if (x < this.left) {\n this.left = x;\n }\n if (y > this.bottom) {\n this.bottom = y;\n }\n if (y < this.top) {\n this.top = y;\n }\n };\n return Dimensions;\n}());\nfunction secondWalk(v, m, layout) {\n v.x = v.prelim + m;\n v.y = v.depth;\n layout.update(v);\n v.children.forEach(function (w) { return secondWalk(w, m + v.mod, layout); });\n}\n// After the second walk the parent nodes are positioned at the center of their immediate children.\n// If we want the parent nodes to be positioned at the center of the subtree for which they are roots,\n// we need a third walk to adjust the positions.\nfunction thirdWalk(v) {\n var children = v.children;\n var leafCount = 0;\n children.forEach(function (w) {\n thirdWalk(w);\n if (w.children.length) {\n leafCount += w.leafCount;\n }\n else {\n leafCount++;\n }\n });\n v.leafCount = leafCount;\n if (children.length) {\n v.subtreeLeft = children[0].subtreeLeft;\n v.subtreeRight = children[v.children.length - 1].subtreeRight;\n v.x = (v.subtreeLeft + v.subtreeRight) / 2;\n }\n else {\n v.subtreeLeft = v.x;\n v.subtreeRight = v.x;\n }\n}\nfunction treeLayout(root) {\n var layout = new TreeLayout();\n firstWalk(root, 1);\n secondWalk(root, -root.prelim, layout);\n thirdWalk(root);\n return layout;\n}\nvar TreeLayout = /** @class */ (function () {\n function TreeLayout() {\n this.dimensions = new Dimensions();\n this.leafCount = 0;\n this.nodes = [];\n // One might want to process leaf nodes separately from the rest of the tree.\n // For example, position labels corresponding to leafs vertically, rather than horizontally.\n this.leafNodes = [];\n this.nonLeafNodes = [];\n this.depth = 0;\n }\n TreeLayout.prototype.update = function (node) {\n this.dimensions.update(node, function (node) { return ({ x: node.x, y: node.y }); });\n if (!node.children.length) {\n this.leafCount++;\n this.leafNodes.push(node);\n }\n else {\n this.nonLeafNodes.push(node);\n }\n if (node.depth > this.depth) {\n this.depth = node.depth;\n }\n this.nodes.push(node);\n };\n TreeLayout.prototype.resize = function (width, height, shiftX, shiftY, flipX) {\n if (shiftX === void 0) { shiftX = 0; }\n if (shiftY === void 0) { shiftY = 0; }\n if (flipX === void 0) { flipX = false; }\n var xSteps = this.leafCount - 1;\n var ySteps = this.depth;\n var dimensions = this.dimensions;\n var scalingX = 1;\n var scalingY = 1;\n if (width > 0 && xSteps) {\n var existingSpacingX = (dimensions.right - dimensions.left) / xSteps;\n var desiredSpacingX = width / xSteps;\n scalingX = desiredSpacingX / existingSpacingX;\n if (flipX) {\n scalingX = -scalingX;\n }\n }\n if (height > 0 && ySteps) {\n var existingSpacingY = (dimensions.bottom - dimensions.top) / ySteps;\n var desiredSpacingY = height / ySteps;\n scalingY = desiredSpacingY / existingSpacingY;\n }\n var screenDimensions = new Dimensions();\n this.nodes.forEach(function (node) {\n node.screenX = node.x * scalingX;\n node.screenY = node.y * scalingY;\n screenDimensions.update(node, function (node) { return ({ x: node.screenX, y: node.screenY }); });\n });\n // Normalize so that root top and leftmost leaf left start at zero.\n var offsetX = -screenDimensions.left;\n var offsetY = -screenDimensions.top;\n this.nodes.forEach(function (node) {\n node.screenX += offsetX + shiftX;\n node.screenY += offsetY + shiftY;\n });\n };\n return TreeLayout;\n}());\n\nvar __extends$2d = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$F = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$m = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar GroupedCategoryAxisLabel = /** @class */ (function (_super) {\n __extends$2d(GroupedCategoryAxisLabel, _super);\n function GroupedCategoryAxisLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.grid = false;\n return _this;\n }\n __decorate$1u([\n Validate(BOOLEAN)\n ], GroupedCategoryAxisLabel.prototype, \"grid\", void 0);\n return GroupedCategoryAxisLabel;\n}(AxisLabel));\nvar GroupedCategoryAxis = /** @class */ (function (_super) {\n __extends$2d(GroupedCategoryAxis, _super);\n function GroupedCategoryAxis(moduleCtx) {\n var _this = _super.call(this, moduleCtx, new BandScale$5()) || this;\n // Label scale (labels are positioned between ticks, tick count = label count + 1).\n // We don't call is `labelScale` for consistency with other axes.\n _this.tickScale = new BandScale$5();\n _this.translation = {\n x: 0,\n y: 0,\n };\n _this.line = new AxisLine();\n _this.label = new GroupedCategoryAxisLabel();\n /**\n * The color of the labels.\n * Use `undefined` rather than `rgba(0, 0, 0, 0)` to make labels invisible.\n */\n _this.labelColor = 'rgba(87, 87, 87, 1)';\n _this.includeInvisibleDomains = true;\n var _a = _this, tickLineGroup = _a.tickLineGroup, tickLabelGroup = _a.tickLabelGroup, gridLineGroup = _a.gridLineGroup, tickScale = _a.tickScale, scale = _a.scale;\n scale.paddingOuter = 0.1;\n scale.paddingInner = scale.paddingOuter * 2;\n _this.range = scale.range.slice();\n _this.refreshScale();\n tickScale.paddingInner = 1;\n tickScale.paddingOuter = 0;\n _this.gridLineSelection = Selection.select(gridLineGroup, Line);\n _this.axisLineSelection = Selection.select(tickLineGroup, Line);\n _this.separatorSelection = Selection.select(tickLineGroup, Line);\n _this.labelSelection = Selection.select(tickLabelGroup, Text);\n return _this;\n }\n GroupedCategoryAxis.prototype.updateRange = function () {\n var _a = this, rr = _a.range, vr = _a.visibleRange, scale = _a.scale;\n var span = (rr[1] - rr[0]) / (vr[1] - vr[0]);\n var shift = span * vr[0];\n var start = rr[0] - shift;\n this.tickScale.range = scale.range = [start, start + span];\n this.resizeTickTree();\n };\n GroupedCategoryAxis.prototype.resizeTickTree = function () {\n var _a;\n var s = this.scale;\n var range = s.domain.length ? [s.convert(s.domain[0]), s.convert(s.domain[s.domain.length - 1])] : s.range;\n var layout = this.tickTreeLayout;\n var lineHeight = this.lineHeight;\n if (layout) {\n layout.resize(Math.abs(range[1] - range[0]), layout.depth * lineHeight, (Math.min(range[0], range[1]) || 0) + ((_a = s.bandwidth) !== null && _a !== void 0 ? _a : 0) / 2, -layout.depth * lineHeight, range[1] - range[0] < 0);\n }\n };\n Object.defineProperty(GroupedCategoryAxis.prototype, \"lineHeight\", {\n get: function () {\n return this.label.fontSize * 1.5;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(GroupedCategoryAxis.prototype, \"gridLength\", {\n get: function () {\n return this._gridLength;\n },\n /**\n * The length of the grid. The grid is only visible in case of a non-zero value.\n */\n set: function (value) {\n // Was visible and now invisible, or was invisible and now visible.\n if ((this._gridLength && !value) || (!this._gridLength && value)) {\n this.gridLineSelection.clear();\n this.labelSelection.clear();\n }\n this._gridLength = value;\n },\n enumerable: false,\n configurable: true\n });\n GroupedCategoryAxis.prototype.calculateDomain = function () {\n var _a;\n var _b;\n var _c = this, direction = _c.direction, boundSeries = _c.boundSeries;\n var domains = [];\n var isNumericX = undefined;\n boundSeries\n .filter(function (s) { return s.visible; })\n .forEach(function (series) {\n if (direction === ChartAxisDirection.X) {\n if (isNumericX === undefined) {\n // always add first X domain\n var domain_1 = series.getDomain(direction);\n domains.push(domain_1);\n isNumericX = typeof domain_1[0] === 'number';\n }\n else if (isNumericX) {\n // only add further X domains if the axis is numeric\n domains.push(series.getDomain(direction));\n }\n }\n else {\n domains.push(series.getDomain(direction));\n }\n });\n var domain = (_a = new Array()).concat.apply(_a, __spreadArray$m([], __read$F(domains)));\n var values = (_b = extent$4(domain)) !== null && _b !== void 0 ? _b : domain;\n this.dataDomain = this.normaliseDataDomain(values);\n this.scale.domain = this.dataDomain;\n };\n GroupedCategoryAxis.prototype.normaliseDataDomain = function (d) {\n // Prevent duplicate categories.\n var values = d.filter(function (s, i, arr) { return arr.indexOf(s) === i; });\n var tickTree = ticksToTree(values);\n this.tickTreeLayout = treeLayout(tickTree);\n var tickScaleDomain = values.slice();\n tickScaleDomain.push('');\n this.tickScale.domain = tickScaleDomain;\n this.resizeTickTree();\n return values;\n };\n /**\n * Creates/removes/updates the scene graph nodes that constitute the axis.\n * Supposed to be called _manually_ after changing _any_ of the axis properties.\n * This allows to bulk set axis properties before updating the nodes.\n * The node changes made by this method are rendered on the next animation frame.\n * We could schedule this method call automatically on the next animation frame\n * when any of the axis properties change (the way we do when properties of scene graph's\n * nodes change), but this will mean that we first wait for the next animation\n * frame to make changes to the nodes of the axis, then wait for another animation\n * frame to render those changes. It's nice to have everything update automatically,\n * but this extra level of async indirection will not just introduce an unwanted delay,\n * it will also make it harder to reason about the program.\n */\n GroupedCategoryAxis.prototype.update = function (primaryTickCount) {\n var _this = this;\n this.updateDirection();\n this.calculateDomain();\n this.updateRange();\n var _a = this, scale = _a.scale, label = _a.label, parallel = _a.label.parallel, callbackCache = _a.moduleCtx.callbackCache, tickScale = _a.tickScale, requestedRange = _a.range, title = _a.title, _b = _a.title, _c = _b === void 0 ? {} : _b, _d = _c.formatter, formatter = _d === void 0 ? function (p) { return p.defaultValue; } : _d, _titleCaption = _a._titleCaption;\n var rangeStart = scale.range[0];\n var rangeEnd = scale.range[1];\n var rangeLength = Math.abs(rangeEnd - rangeStart);\n var bandwidth = rangeLength / scale.domain.length || 0;\n var rotation = toRadians$1(this.rotation);\n var isHorizontal = Math.abs(Math.cos(rotation)) < 1e-8;\n var sideFlag = label.getSideFlag();\n this.updatePosition({ rotation: rotation, sideFlag: sideFlag });\n // The Text `node` of the Caption is not used to render the title of the grouped category axis.\n // The phantom root of the tree layout is used instead.\n _titleCaption.node.visible = false;\n var lineHeight = this.lineHeight;\n // Render ticks and labels.\n var tickTreeLayout = this.tickTreeLayout;\n var labels = scale.ticks();\n var treeLabels = tickTreeLayout ? tickTreeLayout.nodes : [];\n var isLabelTree = tickTreeLayout ? tickTreeLayout.depth > 1 : false;\n var ticks = tickScale.ticks();\n // When labels are parallel to the axis line, the `parallelFlipFlag` is used to\n // flip the labels to avoid upside-down text, when the axis is rotated\n // such that it is in the right hemisphere, i.e. the angle of rotation\n // is in the [0, π] interval.\n // The rotation angle is normalized, so that we have an easier time checking\n // if it's in the said interval. Since the axis is always rendered vertically\n // and then rotated, zero rotation means 12 (not 3) o-clock.\n // -1 = flip\n // 1 = don't flip (default)\n var _e = calculateLabelRotation({\n rotation: label.rotation,\n parallel: parallel,\n regularFlipRotation: normalizeAngle360(rotation - Math.PI / 2),\n parallelFlipRotation: normalizeAngle360(rotation),\n }), defaultRotation = _e.defaultRotation, configuredRotation = _e.configuredRotation, parallelFlipFlag = _e.parallelFlipFlag;\n var gridLineSelection = this.gridLineSelection.update(this.gridLength ? ticks : []);\n var labelSelection = this.labelSelection.update(treeLabels);\n var labelFormatter = label.formatter;\n var labelBBoxes = new Map();\n var maxLeafLabelWidth = 0;\n labelSelection.each(function (node, datum, index) {\n var _a;\n node.fontStyle = label.fontStyle;\n node.fontWeight = label.fontWeight;\n node.fontSize = label.fontSize;\n node.fontFamily = label.fontFamily;\n node.fill = label.color;\n node.textBaseline = parallelFlipFlag === -1 ? 'bottom' : 'hanging';\n node.textAlign = 'center';\n node.translationX = datum.screenY - label.fontSize * 0.25;\n node.translationY = datum.screenX;\n if (index === 0) {\n // use the phantom root as the axis title\n if ((title === null || title === void 0 ? void 0 : title.enabled) && labels.length > 0) {\n node.visible = true;\n node.text = callbackCache.call(formatter, _this.getTitleFormatterParams());\n node.fontSize = title.fontSize;\n node.fontStyle = title.fontStyle;\n node.fontWeight = title.fontWeight;\n node.fontFamily = title.fontFamily;\n node.textBaseline = 'hanging';\n }\n else {\n node.visible = false;\n }\n }\n else if (labelFormatter) {\n node.text =\n (_a = callbackCache.call(labelFormatter, {\n value: String(datum.label),\n index: index,\n })) !== null && _a !== void 0 ? _a : String(datum.label);\n node.visible = datum.screenX >= requestedRange[0] && datum.screenX <= requestedRange[1];\n }\n else {\n node.text = String(datum.label);\n node.visible = datum.screenX >= requestedRange[0] && datum.screenX <= requestedRange[1];\n }\n var bbox = node.computeBBox();\n labelBBoxes.set(node.id, bbox);\n if (bbox.width > maxLeafLabelWidth) {\n maxLeafLabelWidth = bbox.width;\n }\n });\n var labelX = sideFlag * label.padding;\n var labelGrid = this.label.grid;\n var separatorData = [];\n labelSelection.each(function (label, datum, index) {\n label.x = labelX;\n label.rotationCenterX = labelX;\n if (!datum.children.length) {\n label.rotation = configuredRotation;\n label.textAlign = 'end';\n label.textBaseline = 'middle';\n var bbox = labelBBoxes.get(label.id);\n if (bbox && bbox.height > bandwidth) {\n label.visible = false;\n }\n }\n else {\n label.translationX -= maxLeafLabelWidth - lineHeight + _this.label.padding;\n var availableRange = datum.leafCount * bandwidth;\n var bbox = labelBBoxes.get(label.id);\n if (bbox && bbox.width > availableRange) {\n label.visible = false;\n }\n else if (isHorizontal) {\n label.rotation = defaultRotation;\n }\n else {\n label.rotation = -Math.PI / 2;\n }\n }\n // Calculate positions of label separators for all nodes except the root.\n // Each separator is placed to the top of the current label.\n if (datum.parent && isLabelTree) {\n var y = !datum.children.length\n ? datum.screenX - bandwidth / 2\n : datum.screenX - (datum.leafCount * bandwidth) / 2;\n if (!datum.children.length) {\n if (datum.number !== datum.children.length - 1 || labelGrid) {\n separatorData.push({\n y: y,\n x1: 0,\n x2: -maxLeafLabelWidth - _this.label.padding * 2,\n toString: function () { return String(index); },\n });\n }\n }\n else {\n var x = -maxLeafLabelWidth - _this.label.padding * 2 + datum.screenY;\n separatorData.push({\n y: y,\n x1: x + lineHeight,\n x2: x,\n toString: function () { return String(index); },\n });\n }\n }\n });\n // Calculate the position of the long separator on the far bottom of the axis.\n var minX = 0;\n separatorData.forEach(function (d) { return (minX = Math.min(minX, d.x2)); });\n separatorData.push({\n y: Math.max(rangeStart, rangeEnd),\n x1: 0,\n x2: minX,\n toString: function () { return String(separatorData.length); },\n });\n var separatorSelection = this.separatorSelection.update(separatorData);\n var epsilon = 0.0000001;\n separatorSelection.each(function (line, datum) {\n line.x1 = datum.x1;\n line.x2 = datum.x2;\n line.y1 = datum.y;\n line.y2 = datum.y;\n line.visible = datum.y >= requestedRange[0] - epsilon && datum.y <= requestedRange[1] + epsilon;\n line.stroke = _this.tick.color;\n line.fill = undefined;\n line.strokeWidth = 1;\n });\n this.gridLineSelection = gridLineSelection;\n this.labelSelection = labelSelection;\n // Render axis lines.\n var lineCount = tickTreeLayout ? tickTreeLayout.depth + 1 : 1;\n var lines = [];\n for (var i = 0; i < lineCount; i++) {\n lines.push(i);\n }\n var axisLineSelection = this.axisLineSelection.update(lines);\n axisLineSelection.each(function (line, _, index) {\n var x = index > 0 ? -maxLeafLabelWidth - _this.label.padding * 2 - (index - 1) * lineHeight : 0;\n line.x1 = x;\n line.x2 = x;\n line.y1 = requestedRange[0];\n line.y2 = requestedRange[1];\n line.strokeWidth = _this.line.width;\n line.stroke = _this.line.color;\n line.visible = labels.length > 0 && (index === 0 || (labelGrid && isLabelTree));\n });\n if (this.gridLength) {\n var styles_1 = this.gridStyle;\n var styleCount_1 = styles_1.length;\n gridLineSelection.each(function (line, datum, index) {\n var y = Math.round(tickScale.convert(datum));\n line.x1 = 0;\n line.x2 = -sideFlag * _this.gridLength;\n line.y1 = y;\n line.y2 = y;\n line.visible = y >= requestedRange[0] && y <= requestedRange[1];\n var style = styles_1[index % styleCount_1];\n line.stroke = style.stroke;\n line.strokeWidth = _this.tick.width;\n line.lineDash = style.lineDash;\n line.fill = undefined;\n });\n }\n return primaryTickCount;\n };\n GroupedCategoryAxis.className = 'GroupedCategoryAxis';\n GroupedCategoryAxis.type = 'groupedCategory';\n __decorate$1u([\n Validate(OPT_COLOR_STRING)\n ], GroupedCategoryAxis.prototype, \"labelColor\", void 0);\n return GroupedCategoryAxis;\n}(CartesianAxis));\n\nvar __extends$2c = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$E = (undefined && undefined.__assign) || function () {\n __assign$E = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$E.apply(this, arguments);\n};\nvar __awaiter$a = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$a = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __values$j = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$E = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar directions = ['top', 'right', 'bottom', 'left'];\nvar CartesianChart = /** @class */ (function (_super) {\n __extends$2c(CartesianChart, _super);\n function CartesianChart(document, overrideDevicePixelRatio, resources) {\n if (document === void 0) { document = window.document; }\n var _this = _super.call(this, document, overrideDevicePixelRatio, resources) || this;\n /** Integrated Charts feature state - not used in Standalone Charts. */\n _this.paired = true;\n _this._lastAxisWidths = {\n top: 0,\n bottom: 0,\n left: 0,\n right: 0,\n };\n _this._lastVisibility = {\n crossLines: true,\n series: true,\n };\n return _this;\n }\n CartesianChart.prototype.performLayout = function () {\n return __awaiter$a(this, void 0, void 0, function () {\n var shrinkRect, _a, seriesRect, visibility, clipSeries, _b, seriesRoot, seriesAreaPadding, seriesPaddedRect, hoverRectPadding, hoverRect;\n return __generator$a(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, _super.prototype.performLayout.call(this)];\n case 1:\n shrinkRect = _c.sent();\n _a = this.updateAxes(shrinkRect), seriesRect = _a.seriesRect, visibility = _a.visibility, clipSeries = _a.clipSeries;\n this.seriesRoot.visible = visibility.series;\n this.seriesRect = seriesRect;\n this.seriesRoot.translationX = Math.floor(seriesRect.x);\n this.seriesRoot.translationY = Math.floor(seriesRect.y);\n _b = this, seriesRoot = _b.seriesRoot, seriesAreaPadding = _b.seriesAreaPadding;\n seriesPaddedRect = seriesRect.clone().grow({\n top: seriesAreaPadding.top,\n right: seriesAreaPadding.right,\n bottom: seriesAreaPadding.bottom,\n left: seriesAreaPadding.left,\n });\n hoverRectPadding = 20;\n hoverRect = seriesPaddedRect.clone().grow(hoverRectPadding);\n this.hoverRect = hoverRect;\n this.layoutService.dispatchLayoutComplete({\n type: 'layout-complete',\n chart: { width: this.scene.width, height: this.scene.height },\n series: { rect: seriesRect, paddedRect: seriesPaddedRect, hoverRect: hoverRect, visible: visibility.series },\n axes: this.axes.map(function (axis) { return (__assign$E({ id: axis.id }, axis.getLayoutState())); }),\n });\n if (clipSeries) {\n seriesRoot.setClipRectInGroupCoordinateSpace(seriesRect);\n }\n else {\n seriesRoot.setClipRectInGroupCoordinateSpace();\n }\n return [2 /*return*/, shrinkRect];\n }\n });\n });\n };\n CartesianChart.prototype.updateAxes = function (inputShrinkRect) {\n var e_1, _a;\n var _b;\n // Start with a good approximation from the last update - this should mean that in many resize\n // cases that only a single pass is needed \\o/.\n var axisWidths = __assign$E({}, this._lastAxisWidths);\n var visibility = __assign$E({}, this._lastVisibility);\n // Clean any positions which aren't valid with the current axis status (otherwise we end up\n // never being able to find a stable result).\n var liveAxisWidths = new Set(this._axes.map(function (a) { return a.position; }));\n try {\n for (var _c = __values$j(Object.keys(axisWidths)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var position = _d.value;\n if (!liveAxisWidths.has(position)) {\n delete axisWidths[position];\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_1) throw e_1.error; }\n }\n var stableOutputs = function (otherAxisWidths, otherVisibility) {\n // Check for new axis positions.\n if (Object.keys(otherAxisWidths).some(function (k) { return axisWidths[k] == null; })) {\n return false;\n }\n return (visibility.crossLines === otherVisibility.crossLines &&\n visibility.series === otherVisibility.series &&\n // Check for existing axis positions and equality.\n Object.entries(axisWidths).every(function (_a) {\n var _b = __read$E(_a, 2), p = _b[0], w = _b[1];\n var otherW = otherAxisWidths[p];\n if (w != null || otherW != null) {\n return w === otherW;\n }\n return true;\n }));\n };\n var ceilValues = function (records) {\n return Object.entries(records).reduce(function (out, _a) {\n var _b = __read$E(_a, 2), key = _b[0], value = _b[1];\n if (value && Math.abs(value) === Infinity) {\n value = 0;\n }\n out[key] = value != null ? Math.ceil(value) : value;\n return out;\n }, {});\n };\n // Iteratively try to resolve axis widths - since X axis width affects Y axis range,\n // and vice-versa, we need to iteratively try and find a fit for the axes and their\n // ticks/labels.\n var lastPassAxisWidths = {};\n var lastPassVisibility = {};\n var clipSeries = false;\n var seriesRect = (_b = this.seriesRect) === null || _b === void 0 ? void 0 : _b.clone();\n var count = 0;\n do {\n Object.assign(axisWidths, lastPassAxisWidths);\n Object.assign(visibility, lastPassVisibility);\n var result = this.updateAxesPass(axisWidths, inputShrinkRect.clone(), seriesRect);\n lastPassAxisWidths = ceilValues(result.axisWidths);\n lastPassVisibility = result.visibility;\n clipSeries = result.clipSeries;\n seriesRect = result.seriesRect;\n if (count++ > 10) {\n Logger.warn('unable to find stable axis layout.');\n break;\n }\n } while (!stableOutputs(lastPassAxisWidths, lastPassVisibility));\n var clipRectPadding = 5;\n this.axes.forEach(function (axis) {\n // update visibility of crosslines\n axis.setCrossLinesVisible(visibility.crossLines);\n if (!seriesRect) {\n return;\n }\n axis.clipGrid(seriesRect.x, seriesRect.y, seriesRect.width + clipRectPadding, seriesRect.height + clipRectPadding);\n switch (axis.position) {\n case 'left':\n case 'right':\n axis.clipTickLines(inputShrinkRect.x, seriesRect.y, inputShrinkRect.width + clipRectPadding, seriesRect.height + clipRectPadding);\n break;\n case 'top':\n case 'bottom':\n axis.clipTickLines(seriesRect.x, inputShrinkRect.y, seriesRect.width + clipRectPadding, inputShrinkRect.height + clipRectPadding);\n break;\n }\n });\n this._lastAxisWidths = axisWidths;\n this._lastVisibility = visibility;\n return { seriesRect: seriesRect, visibility: visibility, clipSeries: clipSeries };\n };\n CartesianChart.prototype.updateAxesPass = function (axisWidths, bounds, lastPassSeriesRect) {\n var _this = this;\n var axes = this.axes;\n var visited = {};\n var newAxisWidths = {};\n var visibility = {\n series: true,\n crossLines: true,\n };\n var clipSeries = false;\n var primaryTickCounts = {};\n var paddedBounds = this.applySeriesPadding(bounds);\n var crossLinePadding = lastPassSeriesRect ? this.buildCrossLinePadding(axisWidths) : {};\n var axisBound = this.buildAxisBound(paddedBounds, axisWidths, crossLinePadding, visibility);\n var seriesRect = this.buildSeriesRect(axisBound, axisWidths);\n // Set the number of ticks for continuous axes based on the available range\n // before updating the axis domain via `this.updateAxes()` as the tick count has an effect on the calculated `nice` domain extent\n axes.forEach(function (axis) {\n var _a, _b;\n var _c = axis.position, position = _c === void 0 ? 'left' : _c;\n var _d = _this.calculateAxisDimensions({\n axis: axis,\n seriesRect: seriesRect,\n paddedBounds: paddedBounds,\n axisWidths: axisWidths,\n newAxisWidths: newAxisWidths,\n primaryTickCounts: primaryTickCounts,\n clipSeries: clipSeries,\n addInterAxisPadding: ((_a = visited[position]) !== null && _a !== void 0 ? _a : 0) > 0,\n }), newClipSeries = _d.clipSeries, axisThickness = _d.axisThickness, axisOffset = _d.axisOffset;\n visited[position] = ((_b = visited[position]) !== null && _b !== void 0 ? _b : 0) + 1;\n clipSeries = clipSeries || newClipSeries;\n _this.positionAxis({\n axis: axis,\n axisBound: axisBound,\n axisOffset: axisOffset,\n axisThickness: axisThickness,\n axisWidths: axisWidths,\n primaryTickCounts: primaryTickCounts,\n seriesRect: seriesRect,\n });\n });\n return { clipSeries: clipSeries, seriesRect: seriesRect, axisWidths: newAxisWidths, visibility: visibility };\n };\n CartesianChart.prototype.buildCrossLinePadding = function (axisWidths) {\n var e_2, _a;\n var _b;\n var crossLinePadding = {};\n this.axes.forEach(function (axis) {\n if (axis.crossLines) {\n axis.crossLines.forEach(function (crossLine) {\n crossLine.calculatePadding(crossLinePadding);\n });\n }\n });\n try {\n // Reduce cross-line padding to account for overlap with axes.\n for (var _c = __values$j(Object.entries(crossLinePadding)), _d = _c.next(); !_d.done; _d = _c.next()) {\n var _e = __read$E(_d.value, 2), side = _e[0], _f = _e[1], padding = _f === void 0 ? 0 : _f;\n crossLinePadding[side] = Math.max(padding - ((_b = axisWidths[side]) !== null && _b !== void 0 ? _b : 0), 0);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return crossLinePadding;\n };\n CartesianChart.prototype.applySeriesPadding = function (bounds) {\n var _this = this;\n var paddedRect = bounds.clone();\n var reversedAxes = this.axes.slice().reverse();\n directions.forEach(function (dir) {\n var padding = _this.seriesAreaPadding[dir];\n var axis = reversedAxes.find(function (axis) { return axis.position === dir; });\n if (axis) {\n axis.seriesAreaPadding = padding;\n }\n else {\n paddedRect.shrink(padding, dir);\n }\n });\n return paddedRect;\n };\n CartesianChart.prototype.buildAxisBound = function (bounds, axisWidths, crossLinePadding, visibility) {\n var _a, _b, _c, _d;\n var result = bounds.clone();\n var _e = crossLinePadding.top, top = _e === void 0 ? 0 : _e, _f = crossLinePadding.right, right = _f === void 0 ? 0 : _f, _g = crossLinePadding.bottom, bottom = _g === void 0 ? 0 : _g, _h = crossLinePadding.left, left = _h === void 0 ? 0 : _h;\n var horizontalPadding = left + right;\n var verticalPadding = top + bottom;\n var totalWidth = ((_a = axisWidths.left) !== null && _a !== void 0 ? _a : 0) + ((_b = axisWidths.right) !== null && _b !== void 0 ? _b : 0) + horizontalPadding;\n var totalHeight = ((_c = axisWidths.top) !== null && _c !== void 0 ? _c : 0) + ((_d = axisWidths.bottom) !== null && _d !== void 0 ? _d : 0) + verticalPadding;\n if (result.width <= totalWidth || result.height <= totalHeight) {\n // Not enough space for crossLines and series\n visibility.crossLines = false;\n visibility.series = false;\n return result;\n }\n result.x += left;\n result.y += top;\n result.width -= horizontalPadding;\n result.height -= verticalPadding;\n return result;\n };\n CartesianChart.prototype.buildSeriesRect = function (axisBound, axisWidths) {\n var result = axisBound.clone();\n var top = axisWidths.top, bottom = axisWidths.bottom, left = axisWidths.left, right = axisWidths.right;\n result.x += left !== null && left !== void 0 ? left : 0;\n result.y += top !== null && top !== void 0 ? top : 0;\n result.width -= (left !== null && left !== void 0 ? left : 0) + (right !== null && right !== void 0 ? right : 0);\n result.height -= (top !== null && top !== void 0 ? top : 0) + (bottom !== null && bottom !== void 0 ? bottom : 0);\n // Width and height should not be negative.\n result.width = Math.max(0, result.width);\n result.height = Math.max(0, result.height);\n return result;\n };\n CartesianChart.prototype.clampToOutsideSeriesRect = function (seriesRect, value, dimension, direction) {\n var x = seriesRect.x, y = seriesRect.y, width = seriesRect.width, height = seriesRect.height;\n var clampBounds = [x, y, x + width, y + height];\n var fn = direction === 1 ? Math.min : Math.max;\n var compareTo = clampBounds[(dimension === 'x' ? 0 : 1) + (direction === 1 ? 0 : 2)];\n return fn(value, compareTo);\n };\n CartesianChart.prototype.calculateAxisDimensions = function (opts) {\n var _a, _b, _c, _d, _e;\n var axis = opts.axis, seriesRect = opts.seriesRect, paddedBounds = opts.paddedBounds, axisWidths = opts.axisWidths, newAxisWidths = opts.newAxisWidths, primaryTickCounts = opts.primaryTickCounts, addInterAxisPadding = opts.addInterAxisPadding;\n var clipSeries = opts.clipSeries;\n var _f = axis.position, position = _f === void 0 ? 'left' : _f, direction = axis.direction;\n var axisLeftRightRange = function (axis) {\n if (axis instanceof CategoryAxis || axis instanceof GroupedCategoryAxis) {\n return [0, seriesRect.height];\n }\n return [seriesRect.height, 0];\n };\n var axisOffset = (_a = newAxisWidths[position]) !== null && _a !== void 0 ? _a : 0;\n switch (position) {\n case 'top':\n case 'bottom':\n axis.range = [0, seriesRect.width];\n axis.gridLength = seriesRect.height;\n break;\n case 'right':\n case 'left':\n axis.range = axisLeftRightRange(axis);\n axis.gridLength = seriesRect.width;\n break;\n }\n var zoom = this.zoomManager.getAxisZoom(axis.id);\n var _g = zoom !== null && zoom !== void 0 ? zoom : {}, _h = _g.min, min = _h === void 0 ? 0 : _h, _j = _g.max, max = _j === void 0 ? 1 : _j;\n axis.visibleRange = [min, max];\n if (!clipSeries && (axis.visibleRange[0] > 0 || axis.visibleRange[1] < 1)) {\n clipSeries = true;\n }\n var primaryTickCount = axis.nice ? primaryTickCounts[direction] : undefined;\n var paddedBoundsCoefficient = 0.3;\n if (axis.thickness != null && axis.thickness > 0) {\n axis.maxThickness = axis.thickness;\n }\n else if (direction === ChartAxisDirection.Y) {\n axis.maxThickness = paddedBounds.width * paddedBoundsCoefficient;\n }\n else {\n axis.maxThickness = paddedBounds.height * paddedBoundsCoefficient;\n }\n primaryTickCount = axis.update(primaryTickCount);\n primaryTickCounts[direction] = (_b = primaryTickCounts[direction]) !== null && _b !== void 0 ? _b : primaryTickCount;\n var axisThickness = 0;\n if (axis.thickness != null && axis.thickness > 0) {\n axisThickness = axis.thickness;\n }\n else {\n var bbox = axis.computeBBox();\n axisThickness = direction === ChartAxisDirection.X ? bbox.height : bbox.width;\n }\n // for multiple axes in the same direction and position, apply padding at the top of each inner axis (i.e. between axes).\n var axisPadding = 15;\n if (addInterAxisPadding) {\n axisThickness += axisPadding;\n }\n axisThickness = Math.ceil(axisThickness);\n newAxisWidths[position] = ((_c = newAxisWidths[position]) !== null && _c !== void 0 ? _c : 0) + axisThickness;\n axis.gridPadding = ((_d = axisWidths[position]) !== null && _d !== void 0 ? _d : 0) - ((_e = newAxisWidths[position]) !== null && _e !== void 0 ? _e : 0);\n return { clipSeries: clipSeries, axisThickness: axisThickness, axisOffset: axisOffset };\n };\n CartesianChart.prototype.positionAxis = function (opts) {\n var _a, _b, _c, _d;\n var axis = opts.axis, axisBound = opts.axisBound, axisWidths = opts.axisWidths, seriesRect = opts.seriesRect, axisOffset = opts.axisOffset, axisThickness = opts.axisThickness;\n var position = axis.position;\n switch (position) {\n case 'top':\n axis.translation.x = axisBound.x + ((_a = axisWidths.left) !== null && _a !== void 0 ? _a : 0);\n axis.translation.y = this.clampToOutsideSeriesRect(seriesRect, axisBound.y + 1 + axisOffset + axisThickness, 'y', 1);\n break;\n case 'bottom':\n axis.translation.x = axisBound.x + ((_b = axisWidths.left) !== null && _b !== void 0 ? _b : 0);\n axis.translation.y = this.clampToOutsideSeriesRect(seriesRect, axisBound.y + axisBound.height + 1 - axisThickness - axisOffset, 'y', -1);\n break;\n case 'left':\n axis.translation.y = axisBound.y + ((_c = axisWidths.top) !== null && _c !== void 0 ? _c : 0);\n axis.translation.x = this.clampToOutsideSeriesRect(seriesRect, axisBound.x + axisOffset + axisThickness, 'x', 1);\n break;\n case 'right':\n axis.translation.y = axisBound.y + ((_d = axisWidths.top) !== null && _d !== void 0 ? _d : 0);\n axis.translation.x = this.clampToOutsideSeriesRect(seriesRect, axisBound.x + axisBound.width - axisThickness - axisOffset, 'x', -1);\n break;\n }\n axis.updatePosition({ rotation: toRadians$1(axis.rotation), sideFlag: axis.label.getSideFlag() });\n };\n CartesianChart.className = 'CartesianChart';\n CartesianChart.type = 'cartesian';\n return CartesianChart;\n}(Chart));\n\nvar __extends$2b = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar PolarAxis = /** @class */ (function (_super) {\n __extends$2b(PolarAxis, _super);\n function PolarAxis() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.shape = 'polygon';\n return _this;\n }\n PolarAxis.prototype.computeLabelsBBox = function (_options, _seriesRect) {\n return null;\n };\n return PolarAxis;\n}(Axis));\n\nvar __extends$2a = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter$9 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$9 = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read$D = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$l = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar __values$i = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar PolarChart = /** @class */ (function (_super) {\n __extends$2a(PolarChart, _super);\n function PolarChart(document, overrideDevicePixelRatio, resources) {\n if (document === void 0) { document = window.document; }\n var _this = _super.call(this, document, overrideDevicePixelRatio, resources) || this;\n _this.padding = new Padding$1(40);\n return _this;\n }\n PolarChart.prototype.performLayout = function () {\n return __awaiter$9(this, void 0, void 0, function () {\n var shrinkRect, fullSeriesRect, hoverRectPadding, hoverRect;\n return __generator$9(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, _super.prototype.performLayout.call(this)];\n case 1:\n shrinkRect = _a.sent();\n fullSeriesRect = shrinkRect.clone();\n this.computeSeriesRect(shrinkRect);\n this.computeCircle(shrinkRect);\n this.axes.forEach(function (axis) { return axis.update(); });\n hoverRectPadding = 20;\n hoverRect = shrinkRect.clone().grow(hoverRectPadding);\n this.hoverRect = hoverRect;\n this.layoutService.dispatchLayoutComplete({\n type: 'layout-complete',\n chart: { width: this.scene.width, height: this.scene.height },\n series: { rect: fullSeriesRect, paddedRect: shrinkRect, hoverRect: hoverRect, visible: true },\n axes: [],\n });\n return [2 /*return*/, shrinkRect];\n }\n });\n });\n };\n PolarChart.prototype.updateAxes = function (cx, cy, radius) {\n var _a;\n this.axes.forEach(function (axis) {\n var _a;\n if (axis.direction === ChartAxisDirection.X) {\n var rotation = toRadians$1((_a = axis.rotation) !== null && _a !== void 0 ? _a : 0);\n axis.range = [-Math.PI / 2 + rotation, (3 * Math.PI) / 2 + rotation];\n axis.gridLength = radius;\n axis.translation.x = cx;\n axis.translation.y = cy;\n }\n else if (axis.direction === ChartAxisDirection.Y) {\n axis.range = [radius, 0];\n axis.translation.x = cx;\n axis.translation.y = cy - radius;\n }\n axis.updateScale();\n });\n var angleAxis = this.axes.find(function (axis) { return axis.direction === ChartAxisDirection.X; });\n var scale = angleAxis === null || angleAxis === void 0 ? void 0 : angleAxis.scale;\n var angles = (_a = scale === null || scale === void 0 ? void 0 : scale.ticks) === null || _a === void 0 ? void 0 : _a.call(scale).map(function (value) { return scale.convert(value); });\n this.axes\n .filter(function (axis) { return axis instanceof PolarAxis; })\n .forEach(function (axis) { return (axis.gridAngles = angles); });\n };\n PolarChart.prototype.computeSeriesRect = function (shrinkRect) {\n var seriesAreaPadding = this.seriesAreaPadding;\n shrinkRect.shrink(seriesAreaPadding.left, 'left');\n shrinkRect.shrink(seriesAreaPadding.top, 'top');\n shrinkRect.shrink(seriesAreaPadding.right, 'right');\n shrinkRect.shrink(seriesAreaPadding.bottom, 'bottom');\n this.seriesRect = shrinkRect;\n };\n PolarChart.prototype.computeCircle = function (seriesBox) {\n var _this = this;\n var polarSeries = this.series.filter(function (series) {\n return series instanceof PolarSeries;\n });\n var polarAxes = this.axes.filter(function (axis) {\n return axis instanceof PolarAxis;\n });\n var setSeriesCircle = function (cx, cy, r) {\n _this.updateAxes(cx, cy, r);\n polarSeries.forEach(function (series) {\n series.centerX = cx;\n series.centerY = cy;\n series.radius = r;\n });\n var pieSeries = polarSeries.filter(function (series) { return series instanceof PieSeries; });\n if (pieSeries.length > 1) {\n var innerRadii = pieSeries\n .map(function (series) {\n var innerRadius = series.getInnerRadius();\n return { series: series, innerRadius: innerRadius };\n })\n .sort(function (a, b) { return a.innerRadius - b.innerRadius; });\n innerRadii[innerRadii.length - 1].series.surroundingRadius = undefined;\n for (var i = 0; i < innerRadii.length - 1; i++) {\n innerRadii[i].series.surroundingRadius = innerRadii[i + 1].innerRadius;\n }\n }\n };\n var centerX = seriesBox.x + seriesBox.width / 2;\n var centerY = seriesBox.y + seriesBox.height / 2;\n var initialRadius = Math.max(0, Math.min(seriesBox.width, seriesBox.height) / 2);\n var radius = initialRadius;\n setSeriesCircle(centerX, centerY, radius);\n var shake = function (_a) {\n var e_1, _b;\n var _c = _a === void 0 ? {} : _a, _d = _c.hideWhenNecessary, hideWhenNecessary = _d === void 0 ? false : _d;\n var labelBoxes = [];\n try {\n for (var _e = __values$i(__spreadArray$l(__spreadArray$l([], __read$D(polarAxes)), __read$D(polarSeries))), _f = _e.next(); !_f.done; _f = _e.next()) {\n var series = _f.value;\n var box = series.computeLabelsBBox({ hideWhenNecessary: hideWhenNecessary }, seriesBox);\n if (box) {\n labelBoxes.push(box);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_f && !_f.done && (_b = _e.return)) _b.call(_e);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (labelBoxes.length === 0) {\n setSeriesCircle(centerX, centerY, initialRadius);\n return;\n }\n var labelBox = BBox.merge(labelBoxes);\n var refined = _this.refineCircle(labelBox, radius, seriesBox);\n setSeriesCircle(refined.centerX, refined.centerY, refined.radius);\n if (refined.radius === radius) {\n return;\n }\n radius = refined.radius;\n };\n shake(); // Initial attempt\n shake(); // Precise attempt\n shake(); // Just in case\n shake({ hideWhenNecessary: true }); // Hide unnecessary labels\n shake({ hideWhenNecessary: true }); // Final result\n return { radius: radius, centerX: centerX, centerY: centerY };\n };\n PolarChart.prototype.refineCircle = function (labelsBox, radius, seriesBox) {\n var minCircleRatio = 0.5; // Prevents reduced circle to be too small\n var circleLeft = -radius;\n var circleTop = -radius;\n var circleRight = radius;\n var circleBottom = radius;\n // Label padding around the circle\n var padLeft = Math.max(0, circleLeft - labelsBox.x);\n var padTop = Math.max(0, circleTop - labelsBox.y);\n var padRight = Math.max(0, labelsBox.x + labelsBox.width - circleRight);\n var padBottom = Math.max(0, labelsBox.y + labelsBox.height - circleBottom);\n // Available area for the circle (after the padding will be applied)\n var availCircleWidth = seriesBox.width - padLeft - padRight;\n var availCircleHeight = seriesBox.height - padTop - padBottom;\n var newRadius = Math.min(availCircleWidth, availCircleHeight) / 2;\n var minHorizontalRadius = (minCircleRatio * seriesBox.width) / 2;\n var minVerticalRadius = (minCircleRatio * seriesBox.height) / 2;\n var minRadius = Math.min(minHorizontalRadius, minVerticalRadius);\n if (newRadius < minRadius) {\n // If the radius is too small, reduce the label padding\n newRadius = minRadius;\n var horizontalPadding = padLeft + padRight;\n var verticalPadding = padTop + padBottom;\n if (2 * newRadius + verticalPadding > seriesBox.height) {\n var padHeight = seriesBox.height - 2 * newRadius;\n if (Math.min(padTop, padBottom) * 2 > padHeight) {\n padTop = padHeight / 2;\n padBottom = padHeight / 2;\n }\n else if (padTop > padBottom) {\n padTop = padHeight - padBottom;\n }\n else {\n padBottom = padHeight - padTop;\n }\n }\n if (2 * newRadius + horizontalPadding > seriesBox.width) {\n var padWidth = seriesBox.width - 2 * newRadius;\n if (Math.min(padLeft, padRight) * 2 > padWidth) {\n padLeft = padWidth / 2;\n padRight = padWidth / 2;\n }\n else if (padLeft > padRight) {\n padLeft = padWidth - padRight;\n }\n else {\n padRight = padWidth - padLeft;\n }\n }\n }\n var newWidth = padLeft + 2 * newRadius + padRight;\n var newHeight = padTop + 2 * newRadius + padBottom;\n return {\n centerX: seriesBox.x + (seriesBox.width - newWidth) / 2 + padLeft + newRadius,\n centerY: seriesBox.y + (seriesBox.height - newHeight) / 2 + padTop + newRadius,\n radius: newRadius,\n };\n };\n PolarChart.className = 'PolarChart';\n PolarChart.type = 'polar';\n return PolarChart;\n}(Chart));\n\nvar __extends$29 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter$8 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$8 = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar HierarchyChart = /** @class */ (function (_super) {\n __extends$29(HierarchyChart, _super);\n function HierarchyChart(document, overrideDevicePixelRatio, resources) {\n if (document === void 0) { document = window.document; }\n var _this = _super.call(this, document, overrideDevicePixelRatio, resources) || this;\n _this._data = {};\n return _this;\n }\n HierarchyChart.prototype.performLayout = function () {\n return __awaiter$8(this, void 0, void 0, function () {\n var shrinkRect, seriesAreaPadding, fullSeriesRect, hoverRectPadding, hoverRect, seriesRoot;\n var _this = this;\n return __generator$8(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, _super.prototype.performLayout.call(this)];\n case 1:\n shrinkRect = _a.sent();\n seriesAreaPadding = this.seriesAreaPadding;\n fullSeriesRect = shrinkRect.clone();\n shrinkRect.shrink(seriesAreaPadding.left, 'left');\n shrinkRect.shrink(seriesAreaPadding.top, 'top');\n shrinkRect.shrink(seriesAreaPadding.right, 'right');\n shrinkRect.shrink(seriesAreaPadding.bottom, 'bottom');\n this.seriesRect = shrinkRect;\n hoverRectPadding = 20;\n hoverRect = shrinkRect.clone().grow(hoverRectPadding);\n this.hoverRect = hoverRect;\n this.seriesRoot.translationX = Math.floor(shrinkRect.x);\n this.seriesRoot.translationY = Math.floor(shrinkRect.y);\n return [4 /*yield*/, Promise.all(this.series.map(function (series) { return __awaiter$8(_this, void 0, void 0, function () {\n return __generator$8(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, series.update({ seriesRect: shrinkRect })];\n case 1:\n _a.sent(); // this has to happen after the `updateAxes` call\n return [2 /*return*/];\n }\n });\n }); }))];\n case 2:\n _a.sent();\n seriesRoot = this.seriesRoot;\n seriesRoot.setClipRectInGroupCoordinateSpace(new BBox(shrinkRect.x, shrinkRect.y, shrinkRect.width, shrinkRect.height));\n this.layoutService.dispatchLayoutComplete({\n type: 'layout-complete',\n chart: { width: this.scene.width, height: this.scene.height },\n series: { rect: fullSeriesRect, paddedRect: shrinkRect, hoverRect: hoverRect, visible: true },\n axes: [],\n });\n return [2 /*return*/, shrinkRect];\n }\n });\n });\n };\n HierarchyChart.className = 'HierarchyChart';\n HierarchyChart.type = 'hierarchy';\n return HierarchyChart;\n}(Chart));\n\nfunction calculateNiceSecondaryAxis(domain, primaryTickCount) {\n // Make secondary axis domain nice using strict tick count, matching the tick count from the primary axis.\n // This is to make the secondary axis grid lines/ tick positions align with the ones from the primary axis.\n var start = Math.floor(domain[0]);\n var stop = domain[1];\n start = calculateNiceStart(start, stop, primaryTickCount);\n var step = getTickStep(start, stop, primaryTickCount);\n var segments = primaryTickCount - 1;\n stop = start + segments * step;\n var d = [start, stop];\n var ticks = getTicks(start, step, primaryTickCount);\n return [d, ticks];\n}\nfunction calculateNiceStart(a, b, count) {\n var rawStep = Math.abs(b - a) / (count - 1);\n var order = Math.floor(Math.log10(rawStep));\n var magnitude = Math.pow(10, order);\n return Math.floor(a / magnitude) * magnitude;\n}\nfunction getTicks(start, step, count) {\n // power of the step will be negative if the step is a fraction (between 0 and 1)\n var stepPower = Math.floor(Math.log10(step));\n var fractionDigits = step > 0 && step < 1 ? Math.abs(stepPower) : 0;\n var f = Math.pow(10, fractionDigits);\n var ticks = new NumericTicks(fractionDigits);\n for (var i = 0; i < count; i++) {\n var tick = start + step * i;\n ticks[i] = Math.round(tick * f) / f;\n }\n return ticks;\n}\nfunction getTickStep(start, stop, count) {\n var segments = count - 1;\n var rawStep = (stop - start) / segments;\n return calculateNextNiceStep(rawStep);\n}\nfunction calculateNextNiceStep(rawStep) {\n var order = Math.floor(Math.log10(rawStep));\n var magnitude = Math.pow(10, order);\n // Make order 1\n var step = (rawStep / magnitude) * 10;\n if (step > 0 && step <= 1) {\n return magnitude / 10;\n }\n if (step > 1 && step <= 2) {\n return (2 * magnitude) / 10;\n }\n if (step > 1 && step <= 5) {\n return (5 * magnitude) / 10;\n }\n if (step > 5 && step <= 10) {\n return (10 * magnitude) / 10;\n }\n if (step > 10 && step <= 20) {\n return (20 * magnitude) / 10;\n }\n if (step > 20 && step <= 40) {\n return (40 * magnitude) / 10;\n }\n if (step > 40 && step <= 50) {\n return (50 * magnitude) / 10;\n }\n if (step > 50 && step <= 100) {\n return (100 * magnitude) / 10;\n }\n return step;\n}\n\nvar __extends$28 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$C = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar NumberAxisTick = /** @class */ (function (_super) {\n __extends$28(NumberAxisTick, _super);\n function NumberAxisTick() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.maxSpacing = NaN;\n return _this;\n }\n __decorate$1t([\n Validate(AND(NUMBER_OR_NAN(1), GREATER_THAN('minSpacing'))),\n Default(NaN)\n ], NumberAxisTick.prototype, \"maxSpacing\", void 0);\n return NumberAxisTick;\n}(AxisTick));\nvar NumberAxis = /** @class */ (function (_super) {\n __extends$28(NumberAxis, _super);\n function NumberAxis(moduleCtx, scale) {\n if (scale === void 0) { scale = new LinearScale$1(); }\n var _this = _super.call(this, moduleCtx, scale) || this;\n _this.min = NaN;\n _this.max = NaN;\n scale.strictClampByDefault = true;\n return _this;\n }\n NumberAxis.prototype.normaliseDataDomain = function (d) {\n var _a = this, min = _a.min, max = _a.max;\n return normalisedExtent(d, min, max);\n };\n NumberAxis.prototype.formatDatum = function (datum) {\n if (typeof datum === 'number') {\n return datum.toFixed(2);\n }\n else {\n Logger.warnOnce('data contains Date objects which are being plotted against a number axis, please only use a number axis for numbers.');\n return String(datum);\n }\n };\n NumberAxis.prototype.createTick = function () {\n return new NumberAxisTick();\n };\n NumberAxis.prototype.updateSecondaryAxisTicks = function (primaryTickCount) {\n if (this.dataDomain == null) {\n throw new Error('AG Charts - dataDomain not calculated, cannot perform tick calculation.');\n }\n var _a = __read$C(calculateNiceSecondaryAxis(this.dataDomain, primaryTickCount !== null && primaryTickCount !== void 0 ? primaryTickCount : 0), 2), d = _a[0], ticks = _a[1];\n this.scale.nice = false;\n this.scale.domain = d;\n this.scale.update();\n return ticks;\n };\n NumberAxis.className = 'NumberAxis';\n NumberAxis.type = 'number';\n __decorate$1t([\n Validate(AND(NUMBER_OR_NAN(), LESS_THAN('max'))),\n Default(NaN)\n ], NumberAxis.prototype, \"min\", void 0);\n __decorate$1t([\n Validate(AND(NUMBER_OR_NAN(), GREATER_THAN('min'))),\n Default(NaN)\n ], NumberAxis.prototype, \"max\", void 0);\n return NumberAxis;\n}(CartesianAxis));\n\nvar __extends$27 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nfunction NON_ZERO_NUMBER() {\n // Cannot be 0\n var message = \"expecting a non-zero Number\";\n return predicateWithMessage(function (v) { return typeof v === 'number' && v !== 0; }, message);\n}\nvar LogAxis = /** @class */ (function (_super) {\n __extends$27(LogAxis, _super);\n function LogAxis(moduleCtx) {\n var _this = _super.call(this, moduleCtx, new LogScale()) || this;\n _this.min = NaN;\n _this.max = NaN;\n _this.scale.strictClampByDefault = true;\n return _this;\n }\n LogAxis.prototype.normaliseDataDomain = function (d) {\n var _a;\n var _b = this, min = _b.min, max = _b.max;\n if (d.length > 2) {\n d = (_a = extent$4(d)) !== null && _a !== void 0 ? _a : [NaN, NaN];\n }\n if (!isNaN(min)) {\n d = [min, d[1]];\n }\n if (!isNaN(max)) {\n d = [d[0], max];\n }\n var isInverted = d[0] > d[1];\n var crossesZero = d[0] < 0 && d[1] > 0;\n var hasZeroExtent = d[0] === 0 && d[1] === 0;\n var invalidDomain = isInverted || crossesZero || hasZeroExtent;\n if (invalidDomain) {\n d = [];\n if (crossesZero) {\n Logger.warn(\"the data domain crosses zero, the chart data cannot be rendered. See log axis documentation for more information.\");\n }\n else if (hasZeroExtent) {\n Logger.warn(\"the data domain has 0 extent, no data is rendered.\");\n }\n }\n if (d[0] === 0) {\n d[0] = 1;\n }\n if (d[1] === 0) {\n d[1] = -1;\n }\n return d;\n };\n Object.defineProperty(LogAxis.prototype, \"base\", {\n get: function () {\n return this.scale.base;\n },\n set: function (value) {\n this.scale.base = value;\n },\n enumerable: false,\n configurable: true\n });\n LogAxis.className = 'LogAxis';\n LogAxis.type = 'log';\n __decorate$1s([\n Validate(AND(NUMBER_OR_NAN(), LESS_THAN('max'), NON_ZERO_NUMBER())),\n Default(NaN)\n ], LogAxis.prototype, \"min\", void 0);\n __decorate$1s([\n Validate(AND(NUMBER_OR_NAN(), GREATER_THAN('min'), NON_ZERO_NUMBER())),\n Default(NaN)\n ], LogAxis.prototype, \"max\", void 0);\n return LogAxis;\n}(NumberAxis));\n\nvar __extends$26 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TimeAxisTick = /** @class */ (function (_super) {\n __extends$26(TimeAxisTick, _super);\n function TimeAxisTick() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.maxSpacing = NaN;\n return _this;\n }\n __decorate$1r([\n Validate(AND(NUMBER_OR_NAN(1), GREATER_THAN('minSpacing'))),\n Default(NaN)\n ], TimeAxisTick.prototype, \"maxSpacing\", void 0);\n return TimeAxisTick;\n}(AxisTick));\nvar TimeAxis = /** @class */ (function (_super) {\n __extends$26(TimeAxis, _super);\n function TimeAxis(moduleCtx) {\n var _this = _super.call(this, moduleCtx, new TimeScale$1()) || this;\n _this.datumFormat = '%m/%d/%y, %H:%M:%S';\n _this.min = undefined;\n _this.max = undefined;\n var scale = _this.scale;\n scale.strictClampByDefault = true;\n _this.refreshScale();\n _this.datumFormatter = scale.tickFormat({\n specifier: _this.datumFormat,\n });\n return _this;\n }\n TimeAxis.prototype.normaliseDataDomain = function (d) {\n var _a;\n var _b = this, min = _b.min, max = _b.max;\n if (typeof min === 'number') {\n min = new Date(min);\n }\n if (typeof max === 'number') {\n max = new Date(max);\n }\n if (d.length > 2) {\n d = ((_a = extent$4(d)) !== null && _a !== void 0 ? _a : [0, 1000]).map(function (x) { return new Date(x); });\n }\n if (min instanceof Date) {\n d = [min, d[1]];\n }\n if (max instanceof Date) {\n d = [d[0], max];\n }\n if (d[0] > d[1]) {\n d = [];\n }\n return d;\n };\n TimeAxis.prototype.createTick = function () {\n return new TimeAxisTick();\n };\n TimeAxis.prototype.onLabelFormatChange = function (ticks, format) {\n if (format) {\n _super.prototype.onLabelFormatChange.call(this, ticks, format);\n }\n else {\n // For time axis labels to look nice, even if date format wasn't set.\n this.labelFormatter = this.scale.tickFormat({ ticks: ticks });\n }\n };\n TimeAxis.prototype.formatDatum = function (datum) {\n var _a;\n return (_a = this.moduleCtx.callbackCache.call(this.datumFormatter, datum)) !== null && _a !== void 0 ? _a : String(datum);\n };\n TimeAxis.prototype.calculatePadding = function (_min, _max) {\n // numbers in domain correspond to Unix timestamps\n // automatically expand domain by 1 in forward direction\n return [0, 1];\n };\n TimeAxis.className = 'TimeAxis';\n TimeAxis.type = 'time';\n __decorate$1r([\n Validate(AND(OPT_DATE_OR_DATETIME_MS, LESS_THAN('max')))\n ], TimeAxis.prototype, \"min\", void 0);\n __decorate$1r([\n Validate(AND(OPT_DATE_OR_DATETIME_MS, GREATER_THAN('min')))\n ], TimeAxis.prototype, \"max\", void 0);\n return TimeAxis;\n}(CartesianAxis));\n\nvar _a$1;\nvar AXIS_CONSTRUCTORS = (_a$1 = {},\n _a$1[NumberAxis.type] = NumberAxis,\n _a$1[CategoryAxis.type] = CategoryAxis,\n _a$1[TimeAxis.type] = TimeAxis,\n _a$1[GroupedCategoryAxis.type] = GroupedCategoryAxis,\n _a$1[LogAxis.type] = LogAxis,\n _a$1);\nfunction registerAxis(axisType, ctor) {\n AXIS_CONSTRUCTORS[axisType] = ctor;\n}\nfunction getAxis(axisType, moduleCtx) {\n var axisConstructor = AXIS_CONSTRUCTORS[axisType];\n if (axisConstructor) {\n return new axisConstructor(moduleCtx);\n }\n throw new Error(\"AG Charts - unknown axis type: \" + axisType);\n}\nvar AXIS_TYPES = {\n has: function (axisType) {\n return Object.prototype.hasOwnProperty.call(AXIS_CONSTRUCTORS, axisType);\n },\n get axesTypes() {\n return Object.keys(AXIS_CONSTRUCTORS);\n },\n};\nvar AXIS_THEME_TEMPLATES = {};\nfunction registerAxisThemeTemplate(axisType, theme) {\n AXIS_THEME_TEMPLATES[axisType] = theme;\n}\nfunction getAxisThemeTemplate(axisType) {\n var _a;\n return (_a = AXIS_THEME_TEMPLATES[axisType]) !== null && _a !== void 0 ? _a : {};\n}\n\nvar __extends$25 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MARKER_SHAPES = ['circle', 'cross', 'diamond', 'heart', 'plus', 'square', 'triangle'];\nvar MARKER_SHAPE = predicateWithMessage(function (v) { return MARKER_SHAPES.includes(v) || Object.getPrototypeOf(v) === Marker; }, \"expecting a marker shape keyword such as 'circle', 'diamond' or 'square' or an object extending the Marker class\");\nvar SeriesMarker = /** @class */ (function (_super) {\n __extends$25(SeriesMarker, _super);\n function SeriesMarker() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.enabled = true;\n /**\n * One of the predefined marker names, or a marker constructor function (for user-defined markers).\n * A series will create one marker instance per data point.\n */\n _this.shape = Circle;\n _this.size = 6;\n /**\n * In case a series has the `sizeKey` set, the `sizeKey` values along with the `size` and `maxSize` configs\n * will be used to determine the size of the marker. All values will be mapped to a marker size\n * within the `[size, maxSize]` range, where the largest values will correspond to the `maxSize`\n * and the lowest to the `size`.\n */\n _this.maxSize = 30;\n _this.domain = undefined;\n _this.fill = undefined;\n _this.stroke = undefined;\n _this.strokeWidth = 1;\n _this.fillOpacity = undefined;\n _this.strokeOpacity = undefined;\n return _this;\n }\n __decorate$1q([\n Validate(BOOLEAN),\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], SeriesMarker.prototype, \"enabled\", void 0);\n __decorate$1q([\n Validate(MARKER_SHAPE),\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], SeriesMarker.prototype, \"shape\", void 0);\n __decorate$1q([\n Validate(NUMBER(0)),\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], SeriesMarker.prototype, \"size\", void 0);\n __decorate$1q([\n Validate(NUMBER(0)),\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], SeriesMarker.prototype, \"maxSize\", void 0);\n __decorate$1q([\n Validate(OPT_NUMBER_ARRAY),\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], SeriesMarker.prototype, \"domain\", void 0);\n __decorate$1q([\n Validate(OPT_COLOR_STRING),\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], SeriesMarker.prototype, \"fill\", void 0);\n __decorate$1q([\n Validate(OPT_COLOR_STRING),\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], SeriesMarker.prototype, \"stroke\", void 0);\n __decorate$1q([\n Validate(OPT_NUMBER(0)),\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], SeriesMarker.prototype, \"strokeWidth\", void 0);\n __decorate$1q([\n Validate(OPT_NUMBER(0, 1)),\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], SeriesMarker.prototype, \"fillOpacity\", void 0);\n __decorate$1q([\n Validate(OPT_NUMBER(0, 1)),\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], SeriesMarker.prototype, \"strokeOpacity\", void 0);\n return SeriesMarker;\n}(ChangeDetectable));\n\nvar __extends$24 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$D = (undefined && undefined.__assign) || function () {\n __assign$D = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$D.apply(this, arguments);\n};\nvar __decorate$1p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter$7 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$7 = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __values$h = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$B = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar _a, _b;\nvar DEFAULT_DIRECTION_KEYS = (_a = {},\n _a[ChartAxisDirection.X] = ['xKey'],\n _a[ChartAxisDirection.Y] = ['yKey'],\n _a);\nvar DEFAULT_DIRECTION_NAMES = (_b = {},\n _b[ChartAxisDirection.X] = ['xName'],\n _b[ChartAxisDirection.Y] = ['yName'],\n _b);\nvar CartesianSeriesNodeBaseClickEvent = /** @class */ (function (_super) {\n __extends$24(CartesianSeriesNodeBaseClickEvent, _super);\n function CartesianSeriesNodeBaseClickEvent(xKey, yKey, nativeEvent, datum, series) {\n var _this = _super.call(this, nativeEvent, datum, series) || this;\n _this.xKey = xKey;\n _this.yKey = yKey;\n return _this;\n }\n return CartesianSeriesNodeBaseClickEvent;\n}(SeriesNodeBaseClickEvent));\nvar CartesianSeriesNodeClickEvent = /** @class */ (function (_super) {\n __extends$24(CartesianSeriesNodeClickEvent, _super);\n function CartesianSeriesNodeClickEvent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'nodeClick';\n return _this;\n }\n return CartesianSeriesNodeClickEvent;\n}(CartesianSeriesNodeBaseClickEvent));\nvar CartesianSeriesNodeDoubleClickEvent = /** @class */ (function (_super) {\n __extends$24(CartesianSeriesNodeDoubleClickEvent, _super);\n function CartesianSeriesNodeDoubleClickEvent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'nodeDoubleClick';\n return _this;\n }\n return CartesianSeriesNodeDoubleClickEvent;\n}(CartesianSeriesNodeBaseClickEvent));\nvar CartesianStateMachine = /** @class */ (function (_super) {\n __extends$24(CartesianStateMachine, _super);\n function CartesianStateMachine() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n return CartesianStateMachine;\n}(StateMachine));\nvar CartesianSeries = /** @class */ (function (_super) {\n __extends$24(CartesianSeries, _super);\n function CartesianSeries(opts) {\n var _this = _super.call(this, __assign$D(__assign$D({}, opts), { useSeriesGroupLayer: true, directionKeys: DEFAULT_DIRECTION_KEYS, directionNames: DEFAULT_DIRECTION_NAMES })) || this;\n _this.legendItemName = undefined;\n _this._contextNodeData = [];\n _this.nodeDataDependencies = {};\n _this.highlightSelection = Selection.select(_this.highlightNode, function () {\n return _this.opts.hasMarkers ? _this.markerFactory() : _this.nodeFactory();\n });\n _this.highlightLabelSelection = Selection.select(_this.highlightLabel, Text);\n _this.subGroups = [];\n _this.subGroupId = 0;\n _this.datumSelectionGarbageCollection = true;\n var _a = opts.pathsPerSeries, pathsPerSeries = _a === void 0 ? 1 : _a, _b = opts.hasMarkers, hasMarkers = _b === void 0 ? false : _b, _c = opts.hasHighlightedLabels, hasHighlightedLabels = _c === void 0 ? false : _c, _d = opts.pathsZIndexSubOrderOffset, pathsZIndexSubOrderOffset = _d === void 0 ? [] : _d;\n _this.opts = { pathsPerSeries: pathsPerSeries, hasMarkers: hasMarkers, hasHighlightedLabels: hasHighlightedLabels, pathsZIndexSubOrderOffset: pathsZIndexSubOrderOffset };\n _this.animationState = new CartesianStateMachine('empty', {\n empty: {\n on: {\n update: {\n target: 'ready',\n action: function (data) { return _this.animateEmptyUpdateReady(data); },\n },\n },\n },\n ready: {\n on: {\n updateData: {\n target: 'waiting',\n action: function () { },\n },\n update: {\n target: 'ready',\n action: function (data) { return _this.animateReadyUpdate(data); },\n },\n highlight: {\n target: 'ready',\n action: function (data) { return _this.animateReadyHighlight(data); },\n },\n highlightMarkers: {\n target: 'ready',\n action: function (data) { return _this.animateReadyHighlightMarkers(data); },\n },\n resize: {\n target: 'ready',\n action: function (data) { return _this.animateReadyResize(data); },\n },\n },\n },\n waiting: {\n on: {\n update: {\n target: 'ready',\n action: function (data) { return _this.animateWaitingUpdateReady(data); },\n },\n },\n },\n });\n return _this;\n }\n Object.defineProperty(CartesianSeries.prototype, \"contextNodeData\", {\n get: function () {\n var _a;\n return (_a = this._contextNodeData) === null || _a === void 0 ? void 0 : _a.slice();\n },\n enumerable: false,\n configurable: true\n });\n CartesianSeries.prototype.addChartEventListeners = function () {\n var _this = this;\n var _a, _b;\n (_a = this.ctx.chartEventManager) === null || _a === void 0 ? void 0 : _a.addListener('legend-item-click', function (event) { return _this.onLegendItemClick(event); });\n (_b = this.ctx.chartEventManager) === null || _b === void 0 ? void 0 : _b.addListener('legend-item-double-click', function (event) {\n return _this.onLegendItemDoubleClick(event);\n });\n };\n CartesianSeries.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n this._contextNodeData.splice(0, this._contextNodeData.length);\n this.subGroups.splice(0, this.subGroups.length);\n };\n /**\n * Note: we are passing `isContinuousX` and `isContinuousY` into this method because it will\n * typically be called inside a loop and this check only needs to happen once.\n * @param x A domain value to be plotted along the x-axis.\n * @param y A domain value to be plotted along the y-axis.\n * @param isContinuousX Typically this will be the value of `xAxis.scale instanceof ContinuousScale`.\n * @param isContinuousY Typically this will be the value of `yAxis.scale instanceof ContinuousScale`.\n * @returns `[x, y]`, if both x and y are valid domain values for their respective axes/scales, or `undefined`.\n */\n CartesianSeries.prototype.checkDomainXY = function (x, y, isContinuousX, isContinuousY) {\n var isValidDatum = ((isContinuousX && isContinuous(x)) || (!isContinuousX && isDiscrete(x))) &&\n ((isContinuousY && isContinuous(y)) || (!isContinuousY && isDiscrete(y)));\n return isValidDatum ? [x, y] : undefined;\n };\n /**\n * Note: we are passing the xAxis and yAxis because the calling code is supposed to make sure\n * that series has both of them defined, and also to avoid one level of indirection,\n * e.g. `this.xAxis!.inRange(x)`, both of which are suboptimal in tight loops where this method is used.\n * @param x A range value to be plotted along the x-axis.\n * @param y A range value to be plotted along the y-axis.\n * @param xAxis The series' x-axis.\n * @param yAxis The series' y-axis.\n * @returns\n */\n CartesianSeries.prototype.checkRangeXY = function (x, y, xAxis, yAxis) {\n return !isNaN(x) && !isNaN(y) && xAxis.inRange(x) && yAxis.inRange(y);\n };\n CartesianSeries.prototype.update = function (_a) {\n var _b, _c;\n var seriesRect = _a.seriesRect;\n return __awaiter$7(this, void 0, void 0, function () {\n var visible, series, seriesHighlighted, newNodeDataDependencies, resize;\n return __generator$7(this, function (_d) {\n switch (_d.label) {\n case 0:\n visible = this.visible;\n series = ((_c = (_b = this.ctx.highlightManager) === null || _b === void 0 ? void 0 : _b.getActiveHighlight()) !== null && _c !== void 0 ? _c : {}).series;\n seriesHighlighted = series ? series === this : undefined;\n newNodeDataDependencies = {\n seriesRectWidth: seriesRect === null || seriesRect === void 0 ? void 0 : seriesRect.width,\n seriesRectHeight: seriesRect === null || seriesRect === void 0 ? void 0 : seriesRect.height,\n };\n resize = jsonDiff(this.nodeDataDependencies, newNodeDataDependencies) != null;\n if (resize) {\n this.nodeDataDependencies = newNodeDataDependencies;\n this.markNodeDataDirty();\n }\n return [4 /*yield*/, this.updateSelections(seriesHighlighted, visible)];\n case 1:\n _d.sent();\n return [4 /*yield*/, this.updateNodes(seriesHighlighted, visible)];\n case 2:\n _d.sent();\n if (resize) {\n this.animationState.transition('resize', {\n datumSelections: this.subGroups.map(function (_a) {\n var datumSelection = _a.datumSelection;\n return datumSelection;\n }),\n markerSelections: this.subGroups.map(function (_a) {\n var markerSelection = _a.markerSelection;\n return markerSelection;\n }),\n contextData: this._contextNodeData,\n paths: this.subGroups.map(function (_a) {\n var paths = _a.paths;\n return paths;\n }),\n });\n }\n this.animationState.transition('update', {\n datumSelections: this.subGroups.map(function (_a) {\n var datumSelection = _a.datumSelection;\n return datumSelection;\n }),\n markerSelections: this.subGroups.map(function (_a) {\n var markerSelection = _a.markerSelection;\n return markerSelection;\n }),\n labelSelections: this.subGroups.map(function (_a) {\n var labelSelection = _a.labelSelection;\n return labelSelection;\n }),\n contextData: this._contextNodeData,\n paths: this.subGroups.map(function (_a) {\n var paths = _a.paths;\n return paths;\n }),\n seriesRect: seriesRect,\n });\n return [2 /*return*/];\n }\n });\n });\n };\n CartesianSeries.prototype.updateSelections = function (seriesHighlighted, anySeriesItemEnabled) {\n var _a;\n return __awaiter$7(this, void 0, void 0, function () {\n var _b;\n var _this = this;\n return __generator$7(this, function (_c) {\n switch (_c.label) {\n case 0: return [4 /*yield*/, this.updateHighlightSelection(seriesHighlighted)];\n case 1:\n _c.sent();\n if (!anySeriesItemEnabled) {\n return [2 /*return*/];\n }\n if (!this.nodeDataRefresh && !this.isPathOrSelectionDirty()) {\n return [2 /*return*/];\n }\n if (!this.nodeDataRefresh) return [3 /*break*/, 4];\n this.nodeDataRefresh = false;\n if ((_a = this.chart) === null || _a === void 0 ? void 0 : _a.debug) {\n Logger.debug(\"CartesianSeries.updateSelections() - calling createNodeData() for\", this.id);\n }\n _b = this;\n return [4 /*yield*/, this.createNodeData()];\n case 2:\n _b._contextNodeData = _c.sent();\n return [4 /*yield*/, this.updateSeriesGroups()];\n case 3:\n _c.sent();\n _c.label = 4;\n case 4: return [4 /*yield*/, Promise.all(this.subGroups.map(function (g, i) { return _this.updateSeriesGroupSelections(g, i); }))];\n case 5:\n _c.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n CartesianSeries.prototype.updateSeriesGroupSelections = function (subGroup, seriesIdx) {\n return __awaiter$7(this, void 0, void 0, function () {\n var datumSelection, labelSelection, markerSelection, contextData, nodeData, labelData, _a, _b, _c;\n return __generator$7(this, function (_d) {\n switch (_d.label) {\n case 0:\n datumSelection = subGroup.datumSelection, labelSelection = subGroup.labelSelection, markerSelection = subGroup.markerSelection;\n contextData = this._contextNodeData[seriesIdx];\n nodeData = contextData.nodeData, labelData = contextData.labelData;\n _a = subGroup;\n return [4 /*yield*/, this.updateDatumSelection({ nodeData: nodeData, datumSelection: datumSelection, seriesIdx: seriesIdx })];\n case 1:\n _a.datumSelection = _d.sent();\n _b = subGroup;\n return [4 /*yield*/, this.updateLabelSelection({ labelData: labelData, labelSelection: labelSelection, seriesIdx: seriesIdx })];\n case 2:\n _b.labelSelection = _d.sent();\n if (!markerSelection) return [3 /*break*/, 4];\n _c = subGroup;\n return [4 /*yield*/, this.updateMarkerSelection({\n nodeData: nodeData,\n markerSelection: markerSelection,\n seriesIdx: seriesIdx,\n })];\n case 3:\n _c.markerSelection = _d.sent();\n _d.label = 4;\n case 4: return [2 /*return*/];\n }\n });\n });\n };\n CartesianSeries.prototype.nodeFactory = function () {\n return new Group();\n };\n CartesianSeries.prototype.markerFactory = function () {\n var MarkerShape = getMarker$1();\n return new MarkerShape();\n };\n CartesianSeries.prototype.updateSeriesGroups = function () {\n return __awaiter$7(this, void 0, void 0, function () {\n var _a, contextNodeData, contentGroup, subGroups, _b, pathsPerSeries, hasMarkers, totalGroups, layer, subGroupId, dataNodeGroup, markerGroup, labelGroup, paths, index;\n var _this = this;\n return __generator$7(this, function (_c) {\n _a = this, contextNodeData = _a._contextNodeData, contentGroup = _a.contentGroup, subGroups = _a.subGroups, _b = _a.opts, pathsPerSeries = _b.pathsPerSeries, hasMarkers = _b.hasMarkers;\n if (contextNodeData.length === subGroups.length) {\n return [2 /*return*/];\n }\n if (contextNodeData.length < subGroups.length) {\n subGroups.splice(contextNodeData.length).forEach(function (_a) {\n var e_1, _b;\n var dataNodeGroup = _a.dataNodeGroup, markerGroup = _a.markerGroup, labelGroup = _a.labelGroup, paths = _a.paths;\n contentGroup.removeChild(dataNodeGroup);\n if (markerGroup) {\n contentGroup.removeChild(markerGroup);\n }\n if (labelGroup) {\n contentGroup.removeChild(labelGroup);\n }\n try {\n for (var paths_1 = __values$h(paths), paths_1_1 = paths_1.next(); !paths_1_1.done; paths_1_1 = paths_1.next()) {\n var path = paths_1_1.value;\n contentGroup.removeChild(path);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (paths_1_1 && !paths_1_1.done && (_b = paths_1.return)) _b.call(paths_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n });\n }\n totalGroups = contextNodeData.length;\n while (totalGroups > subGroups.length) {\n layer = false;\n subGroupId = this.subGroupId++;\n dataNodeGroup = new Group({\n name: this.id + \"-series-sub\" + subGroupId + \"-dataNodes\",\n layer: layer,\n zIndex: Layers.SERIES_LAYER_ZINDEX,\n zIndexSubOrder: this.getGroupZIndexSubOrder('data', subGroupId),\n });\n markerGroup = hasMarkers\n ? new Group({\n name: this.id + \"-series-sub\" + this.subGroupId++ + \"-markers\",\n layer: layer,\n zIndex: Layers.SERIES_LAYER_ZINDEX,\n zIndexSubOrder: this.getGroupZIndexSubOrder('marker', subGroupId),\n })\n : undefined;\n labelGroup = new Group({\n name: this.id + \"-series-sub\" + this.subGroupId++ + \"-labels\",\n layer: layer,\n zIndex: Layers.SERIES_LABEL_ZINDEX,\n zIndexSubOrder: this.getGroupZIndexSubOrder('labels', subGroupId),\n });\n contentGroup.appendChild(dataNodeGroup);\n contentGroup.appendChild(labelGroup);\n if (markerGroup) {\n contentGroup.appendChild(markerGroup);\n }\n paths = [];\n for (index = 0; index < pathsPerSeries; index++) {\n paths[index] = new Path();\n paths[index].zIndex = Layers.SERIES_LAYER_ZINDEX;\n paths[index].zIndexSubOrder = this.getGroupZIndexSubOrder('paths', index);\n contentGroup.appendChild(paths[index]);\n }\n subGroups.push({\n paths: paths,\n dataNodeGroup: dataNodeGroup,\n markerGroup: markerGroup,\n labelGroup: labelGroup,\n labelSelection: Selection.select(labelGroup, Text),\n datumSelection: Selection.select(dataNodeGroup, function () { return _this.nodeFactory(); }, this.datumSelectionGarbageCollection),\n markerSelection: markerGroup ? Selection.select(markerGroup, function () { return _this.markerFactory(); }) : undefined,\n });\n }\n return [2 /*return*/];\n });\n });\n };\n CartesianSeries.prototype.getGroupZIndexSubOrder = function (type, subIndex) {\n var _a;\n if (subIndex === void 0) { subIndex = 0; }\n var result = _super.prototype.getGroupZIndexSubOrder.call(this, type, subIndex);\n if (type === 'paths') {\n var pathOffset_1 = (_a = this.opts.pathsZIndexSubOrderOffset[subIndex]) !== null && _a !== void 0 ? _a : 0;\n var superFn_1 = result[0];\n if (typeof superFn_1 === 'function') {\n result[0] = function () { return +superFn_1() + pathOffset_1; };\n }\n else {\n result[0] = +superFn_1 + pathOffset_1;\n }\n }\n return result;\n };\n CartesianSeries.prototype.updateNodes = function (seriesHighlighted, anySeriesItemEnabled) {\n var _a;\n return __awaiter$7(this, void 0, void 0, function () {\n var _b, highlightSelection, highlightLabelSelection, contextNodeData, _c, hasMarkers, hasHighlightedLabels, visible, subGroupOpacities;\n var _this = this;\n return __generator$7(this, function (_d) {\n switch (_d.label) {\n case 0:\n _b = this, highlightSelection = _b.highlightSelection, highlightLabelSelection = _b.highlightLabelSelection, contextNodeData = _b._contextNodeData, _c = _b.opts, hasMarkers = _c.hasMarkers, hasHighlightedLabels = _c.hasHighlightedLabels;\n visible = this.visible && ((_a = this._contextNodeData) === null || _a === void 0 ? void 0 : _a.length) > 0 && anySeriesItemEnabled;\n this.rootGroup.visible = visible;\n this.contentGroup.visible = visible;\n this.highlightGroup.visible = visible && !!seriesHighlighted;\n subGroupOpacities = this.subGroups.map(function (_, index) {\n var itemId = contextNodeData[index].itemId;\n return _this.getOpacity({ itemId: itemId });\n });\n if (!hasMarkers) return [3 /*break*/, 2];\n return [4 /*yield*/, this.updateMarkerNodes({\n markerSelection: highlightSelection,\n isHighlight: true,\n seriesIdx: -1,\n })];\n case 1:\n _d.sent();\n this.animationState.transition('highlightMarkers', highlightSelection);\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, this.updateDatumNodes({ datumSelection: highlightSelection, isHighlight: true, seriesIdx: -1 })];\n case 3:\n _d.sent();\n this.animationState.transition('highlight', highlightSelection);\n _d.label = 4;\n case 4:\n if (!hasHighlightedLabels) return [3 /*break*/, 6];\n return [4 /*yield*/, this.updateLabelNodes({ labelSelection: highlightLabelSelection, seriesIdx: -1 })];\n case 5:\n _d.sent();\n _d.label = 6;\n case 6: return [4 /*yield*/, Promise.all(this.subGroups.map(function (subGroup, seriesIdx) { return __awaiter$7(_this, void 0, void 0, function () {\n var dataNodeGroup, markerGroup, datumSelection, labelSelection, markerSelection, paths, labelGroup, subGroupVisible, subGroupOpacity, paths_2, paths_2_1, path;\n var e_2, _a;\n return __generator$7(this, function (_b) {\n switch (_b.label) {\n case 0:\n dataNodeGroup = subGroup.dataNodeGroup, markerGroup = subGroup.markerGroup, datumSelection = subGroup.datumSelection, labelSelection = subGroup.labelSelection, markerSelection = subGroup.markerSelection, paths = subGroup.paths, labelGroup = subGroup.labelGroup;\n subGroupVisible = visible;\n subGroupOpacity = subGroupOpacities[seriesIdx];\n dataNodeGroup.opacity = subGroupOpacity;\n dataNodeGroup.visible = subGroupVisible;\n labelGroup.visible = subGroupVisible;\n if (markerGroup) {\n markerGroup.opacity = subGroupOpacity;\n markerGroup.zIndex =\n dataNodeGroup.zIndex >= Layers.SERIES_LAYER_ZINDEX\n ? dataNodeGroup.zIndex\n : dataNodeGroup.zIndex + 1;\n markerGroup.visible = subGroupVisible;\n }\n if (labelGroup) {\n labelGroup.opacity = subGroupOpacity;\n }\n try {\n for (paths_2 = __values$h(paths), paths_2_1 = paths_2.next(); !paths_2_1.done; paths_2_1 = paths_2.next()) {\n path = paths_2_1.value;\n path.opacity = subGroupOpacity;\n path.visible = subGroupVisible;\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (paths_2_1 && !paths_2_1.done && (_a = paths_2.return)) _a.call(paths_2);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (!dataNodeGroup.visible) {\n return [2 /*return*/];\n }\n return [4 /*yield*/, this.updateDatumNodes({ datumSelection: datumSelection, isHighlight: false, seriesIdx: seriesIdx })];\n case 1:\n _b.sent();\n return [4 /*yield*/, this.updateLabelNodes({ labelSelection: labelSelection, seriesIdx: seriesIdx })];\n case 2:\n _b.sent();\n if (!(hasMarkers && markerSelection)) return [3 /*break*/, 4];\n return [4 /*yield*/, this.updateMarkerNodes({ markerSelection: markerSelection, isHighlight: false, seriesIdx: seriesIdx })];\n case 3:\n _b.sent();\n _b.label = 4;\n case 4: return [2 /*return*/];\n }\n });\n }); }))];\n case 7:\n _d.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n CartesianSeries.prototype.updateHighlightSelection = function (seriesHighlighted) {\n var _a;\n return __awaiter$7(this, void 0, void 0, function () {\n var _b, highlightSelection, highlightLabelSelection, contextNodeData, highlightedDatum, item, _c, labelItem, _d, itemId_1, contextNodeData_1, contextNodeData_1_1, labelData, _e;\n var e_3, _f;\n return __generator$7(this, function (_g) {\n switch (_g.label) {\n case 0:\n _b = this, highlightSelection = _b.highlightSelection, highlightLabelSelection = _b.highlightLabelSelection, contextNodeData = _b._contextNodeData;\n highlightedDatum = (_a = this.ctx.highlightManager) === null || _a === void 0 ? void 0 : _a.getActiveHighlight();\n item = seriesHighlighted && (highlightedDatum === null || highlightedDatum === void 0 ? void 0 : highlightedDatum.datum) ? highlightedDatum : undefined;\n _c = this;\n return [4 /*yield*/, this.updateHighlightSelectionItem({ item: item, highlightSelection: highlightSelection })];\n case 1:\n _c.highlightSelection = _g.sent();\n if (this.isLabelEnabled() && item != null) {\n _d = item.itemId, itemId_1 = _d === void 0 ? undefined : _d;\n try {\n for (contextNodeData_1 = __values$h(contextNodeData), contextNodeData_1_1 = contextNodeData_1.next(); !contextNodeData_1_1.done; contextNodeData_1_1 = contextNodeData_1.next()) {\n labelData = contextNodeData_1_1.value.labelData;\n labelItem = labelData.find(function (ld) { return ld.datum === item.datum && ld.itemId === itemId_1; });\n if (labelItem != null) {\n break;\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (contextNodeData_1_1 && !contextNodeData_1_1.done && (_f = contextNodeData_1.return)) _f.call(contextNodeData_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }\n _e = this;\n return [4 /*yield*/, this.updateHighlightSelectionLabel({\n item: labelItem,\n highlightLabelSelection: highlightLabelSelection,\n })];\n case 2:\n _e.highlightLabelSelection = _g.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n CartesianSeries.prototype.pickNodeExactShape = function (point) {\n var e_4, _a;\n var result = _super.prototype.pickNodeExactShape.call(this, point);\n if (result) {\n return result;\n }\n var x = point.x, y = point.y;\n var hasMarkers = this.opts.hasMarkers;\n try {\n for (var _b = __values$h(this.subGroups), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = _c.value, dataNodeGroup = _d.dataNodeGroup, markerGroup = _d.markerGroup;\n var match = dataNodeGroup.pickNode(x, y);\n if (!match && hasMarkers) {\n match = markerGroup === null || markerGroup === void 0 ? void 0 : markerGroup.pickNode(x, y);\n }\n if (match) {\n return { datum: match.datum, distance: 0 };\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_4) throw e_4.error; }\n }\n };\n CartesianSeries.prototype.pickNodeClosestDatum = function (point) {\n var e_5, _a, e_6, _b;\n var _c, _d;\n var x = point.x, y = point.y;\n var _e = this, axes = _e.axes, rootGroup = _e.rootGroup, contextNodeData = _e._contextNodeData;\n var xAxis = axes[ChartAxisDirection.X];\n var yAxis = axes[ChartAxisDirection.Y];\n var hitPoint = rootGroup.transformPoint(x, y);\n var minDistance = Infinity;\n var closestDatum;\n try {\n for (var contextNodeData_2 = __values$h(contextNodeData), contextNodeData_2_1 = contextNodeData_2.next(); !contextNodeData_2_1.done; contextNodeData_2_1 = contextNodeData_2.next()) {\n var context = contextNodeData_2_1.value;\n try {\n for (var _f = (e_6 = void 0, __values$h(context.nodeData)), _g = _f.next(); !_g.done; _g = _f.next()) {\n var datum = _g.value;\n var _h = datum.point, _j = _h === void 0 ? {} : _h, _k = _j.x, datumX = _k === void 0 ? NaN : _k, _l = _j.y, datumY = _l === void 0 ? NaN : _l;\n if (isNaN(datumX) || isNaN(datumY)) {\n continue;\n }\n var isInRange = (xAxis === null || xAxis === void 0 ? void 0 : xAxis.inRange(datumX)) && (yAxis === null || yAxis === void 0 ? void 0 : yAxis.inRange(datumY));\n if (!isInRange) {\n continue;\n }\n // No need to use Math.sqrt() since x < y implies Math.sqrt(x) < Math.sqrt(y) for\n // values > 1\n var distance = Math.max(Math.pow((hitPoint.x - datumX), 2) + Math.pow((hitPoint.y - datumY), 2), 0);\n if (distance < minDistance) {\n minDistance = distance;\n closestDatum = datum;\n }\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_g && !_g.done && (_b = _f.return)) _b.call(_f);\n }\n finally { if (e_6) throw e_6.error; }\n }\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (contextNodeData_2_1 && !contextNodeData_2_1.done && (_a = contextNodeData_2.return)) _a.call(contextNodeData_2);\n }\n finally { if (e_5) throw e_5.error; }\n }\n if (closestDatum) {\n var distance = Math.max(Math.sqrt(minDistance) - ((_d = (_c = closestDatum.point) === null || _c === void 0 ? void 0 : _c.size) !== null && _d !== void 0 ? _d : 0), 0);\n return { datum: closestDatum, distance: distance };\n }\n };\n CartesianSeries.prototype.pickNodeMainAxisFirst = function (point, requireCategoryAxis) {\n var e_7, _a, e_8, _b;\n var _c, _d;\n var x = point.x, y = point.y;\n var _e = this, axes = _e.axes, rootGroup = _e.rootGroup, contextNodeData = _e._contextNodeData;\n var xAxis = axes[ChartAxisDirection.X];\n var yAxis = axes[ChartAxisDirection.Y];\n // Prefer to start search with any available category axis.\n var directions = [xAxis, yAxis]\n .filter(function (a) { return a instanceof CategoryAxis; })\n .map(function (a) { return a.direction; });\n if (requireCategoryAxis && directions.length === 0) {\n return;\n }\n // Default to X-axis unless we found a suitable category axis.\n var _f = __read$B(directions, 1), _g = _f[0], primaryDirection = _g === void 0 ? ChartAxisDirection.X : _g;\n var hitPoint = rootGroup.transformPoint(x, y);\n var hitPointCoords = primaryDirection === ChartAxisDirection.X ? [hitPoint.x, hitPoint.y] : [hitPoint.y, hitPoint.x];\n var minDistance = [Infinity, Infinity];\n var closestDatum = undefined;\n try {\n for (var contextNodeData_3 = __values$h(contextNodeData), contextNodeData_3_1 = contextNodeData_3.next(); !contextNodeData_3_1.done; contextNodeData_3_1 = contextNodeData_3.next()) {\n var context = contextNodeData_3_1.value;\n try {\n for (var _h = (e_8 = void 0, __values$h(context.nodeData)), _j = _h.next(); !_j.done; _j = _h.next()) {\n var datum = _j.value;\n var _k = datum.point, _l = _k === void 0 ? {} : _k, _m = _l.x, datumX = _m === void 0 ? NaN : _m, _o = _l.y, datumY = _o === void 0 ? NaN : _o;\n if (isNaN(datumX) || isNaN(datumY)) {\n continue;\n }\n var isInRange = (xAxis === null || xAxis === void 0 ? void 0 : xAxis.inRange(datumX)) && (yAxis === null || yAxis === void 0 ? void 0 : yAxis.inRange(datumY));\n if (!isInRange) {\n continue;\n }\n var point_1 = primaryDirection === ChartAxisDirection.X ? [datumX, datumY] : [datumY, datumX];\n // Compare distances from most significant dimension to least.\n var newMinDistance = true;\n for (var i = 0; i < point_1.length; i++) {\n var dist = Math.abs(point_1[i] - hitPointCoords[i]);\n if (dist > minDistance[i]) {\n newMinDistance = false;\n break;\n }\n if (dist < minDistance[i]) {\n minDistance[i] = dist;\n minDistance.fill(Infinity, i + 1, minDistance.length);\n }\n }\n if (newMinDistance) {\n closestDatum = datum;\n }\n }\n }\n catch (e_8_1) { e_8 = { error: e_8_1 }; }\n finally {\n try {\n if (_j && !_j.done && (_b = _h.return)) _b.call(_h);\n }\n finally { if (e_8) throw e_8.error; }\n }\n }\n }\n catch (e_7_1) { e_7 = { error: e_7_1 }; }\n finally {\n try {\n if (contextNodeData_3_1 && !contextNodeData_3_1.done && (_a = contextNodeData_3.return)) _a.call(contextNodeData_3);\n }\n finally { if (e_7) throw e_7.error; }\n }\n if (closestDatum) {\n var distance = Math.max(Math.sqrt(Math.pow(minDistance[0], 2) + Math.pow(minDistance[1], 2)) - ((_d = (_c = closestDatum.point) === null || _c === void 0 ? void 0 : _c.size) !== null && _d !== void 0 ? _d : 0), 0);\n return { datum: closestDatum, distance: distance };\n }\n };\n CartesianSeries.prototype.onLegendItemClick = function (event) {\n var enabled = event.enabled, itemId = event.itemId, series = event.series, legendItemName = event.legendItemName;\n var matchedLegendItemName = this.legendItemName != null && this.legendItemName === legendItemName;\n if (series.id === this.id) {\n this.toggleSeriesItem(itemId, enabled);\n }\n else if (matchedLegendItemName) {\n this.toggleSeriesItem(itemId, enabled);\n }\n };\n CartesianSeries.prototype.onLegendItemDoubleClick = function (event) {\n var enabled = event.enabled, itemId = event.itemId, series = event.series, numVisibleItems = event.numVisibleItems, legendItemName = event.legendItemName;\n var totalVisibleItems = Object.values(numVisibleItems).reduce(function (p, v) { return p + v; }, 0);\n var matchedLegendItemName = this.legendItemName != null && this.legendItemName === legendItemName;\n if (series.id === this.id || matchedLegendItemName) {\n // Double-clicked item should always become visible.\n this.toggleSeriesItem(itemId, true);\n }\n else if (enabled && totalVisibleItems === 1) {\n // Other items should become visible if there is only one existing visible item.\n this.toggleSeriesItem(itemId, true);\n }\n else {\n // Disable other items if not exactly one enabled.\n this.toggleSeriesItem(itemId, false);\n }\n };\n CartesianSeries.prototype.isPathOrSelectionDirty = function () {\n // Override point to allow more sophisticated dirty selection detection.\n return false;\n };\n CartesianSeries.prototype.getLabelData = function () {\n return [];\n };\n CartesianSeries.prototype.updateHighlightSelectionItem = function (opts) {\n return __awaiter$7(this, void 0, void 0, function () {\n var hasMarkers, item, highlightSelection, nodeData, markerSelection;\n return __generator$7(this, function (_a) {\n hasMarkers = this.opts.hasMarkers;\n item = opts.item, highlightSelection = opts.highlightSelection;\n nodeData = item ? [item] : [];\n if (hasMarkers) {\n markerSelection = highlightSelection;\n return [2 /*return*/, this.updateMarkerSelection({ nodeData: nodeData, markerSelection: markerSelection, seriesIdx: -1 })];\n }\n else {\n return [2 /*return*/, this.updateDatumSelection({ nodeData: nodeData, datumSelection: highlightSelection, seriesIdx: -1 })];\n }\n });\n });\n };\n CartesianSeries.prototype.updateHighlightSelectionLabel = function (opts) {\n return __awaiter$7(this, void 0, void 0, function () {\n var item, highlightLabelSelection, labelData;\n return __generator$7(this, function (_a) {\n item = opts.item, highlightLabelSelection = opts.highlightLabelSelection;\n labelData = item ? [item] : [];\n return [2 /*return*/, this.updateLabelSelection({ labelData: labelData, labelSelection: highlightLabelSelection, seriesIdx: -1 })];\n });\n });\n };\n CartesianSeries.prototype.updateDatumSelection = function (opts) {\n return __awaiter$7(this, void 0, void 0, function () {\n return __generator$7(this, function (_a) {\n // Override point for sub-classes.\n return [2 /*return*/, opts.datumSelection];\n });\n });\n };\n CartesianSeries.prototype.updateDatumNodes = function (_opts) {\n return __awaiter$7(this, void 0, void 0, function () {\n return __generator$7(this, function (_a) {\n return [2 /*return*/];\n });\n });\n };\n CartesianSeries.prototype.updateMarkerSelection = function (opts) {\n return __awaiter$7(this, void 0, void 0, function () {\n return __generator$7(this, function (_a) {\n // Override point for sub-classes.\n return [2 /*return*/, opts.markerSelection];\n });\n });\n };\n CartesianSeries.prototype.updateMarkerNodes = function (_opts) {\n return __awaiter$7(this, void 0, void 0, function () {\n return __generator$7(this, function (_a) {\n return [2 /*return*/];\n });\n });\n };\n CartesianSeries.prototype.animateEmptyUpdateReady = function (_data) {\n // Override point for sub-classes.\n };\n CartesianSeries.prototype.animateReadyUpdate = function (_data) {\n // Override point for sub-classes.\n };\n CartesianSeries.prototype.animateWaitingUpdateReady = function (_data) {\n // Override point for sub-classes.\n };\n CartesianSeries.prototype.animateReadyHighlight = function (_data) {\n // Override point for sub-classes.\n };\n CartesianSeries.prototype.animateReadyHighlightMarkers = function (_data) {\n // Override point for sub-classes.\n };\n CartesianSeries.prototype.animateReadyResize = function (_data) {\n // Override point for sub-classes.\n };\n __decorate$1p([\n Validate(OPT_STRING)\n ], CartesianSeries.prototype, \"legendItemName\", void 0);\n return CartesianSeries;\n}(Series));\nvar CartesianSeriesMarker = /** @class */ (function (_super) {\n __extends$24(CartesianSeriesMarker, _super);\n function CartesianSeriesMarker() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.formatter = undefined;\n return _this;\n }\n __decorate$1p([\n Validate(OPT_FUNCTION),\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], CartesianSeriesMarker.prototype, \"formatter\", void 0);\n return CartesianSeriesMarker;\n}(SeriesMarker));\n\nvar __read$A = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar interpolatePattern = /(#\\{(.*?)\\})/g;\nfunction interpolate(input, values, formats) {\n return input.replace(interpolatePattern, function () {\n var args = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n args[_i] = arguments[_i];\n }\n var name = args[2];\n var _a = __read$A(name.split(':'), 2), valueName = _a[0], formatName = _a[1];\n var value = values[valueName];\n if (typeof value === 'number') {\n var format = formatName && formats && formats[formatName];\n if (format) {\n var _b = format, locales = _b.locales, options = _b.options;\n return value.toLocaleString(locales, options);\n }\n return String(value);\n }\n if (value instanceof Date) {\n var format = formatName && formats && formats[formatName];\n if (typeof format === 'string') {\n var formatter = buildFormatter(format);\n return formatter(value);\n }\n return value.toDateString();\n }\n if (typeof value === 'string' || (value === null || value === void 0 ? void 0 : value.toString)) {\n return String(value);\n }\n return '';\n });\n}\n\nvar element = null;\nfunction sanitizeHtml(text) {\n element = element !== null && element !== void 0 ? element : document.createElement('div');\n if (!text) {\n return '';\n }\n element.textContent = text;\n return element.innerHTML;\n}\n\nvar __extends$23 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$C = (undefined && undefined.__assign) || function () {\n __assign$C = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$C.apply(this, arguments);\n};\nvar __decorate$1o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter$6 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$6 = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read$z = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$k = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar AreaSeriesLabel = /** @class */ (function (_super) {\n __extends$23(AreaSeriesLabel, _super);\n function AreaSeriesLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.formatter = undefined;\n return _this;\n }\n __decorate$1o([\n Validate(OPT_FUNCTION)\n ], AreaSeriesLabel.prototype, \"formatter\", void 0);\n return AreaSeriesLabel;\n}(Label$1));\nvar AreaSeriesTooltip = /** @class */ (function (_super) {\n __extends$23(AreaSeriesTooltip, _super);\n function AreaSeriesTooltip() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.renderer = undefined;\n _this.format = undefined;\n return _this;\n }\n __decorate$1o([\n Validate(OPT_FUNCTION)\n ], AreaSeriesTooltip.prototype, \"renderer\", void 0);\n __decorate$1o([\n Validate(OPT_STRING)\n ], AreaSeriesTooltip.prototype, \"format\", void 0);\n return AreaSeriesTooltip;\n}(SeriesTooltip));\nvar AreaSeriesTag;\n(function (AreaSeriesTag) {\n AreaSeriesTag[AreaSeriesTag[\"Fill\"] = 0] = \"Fill\";\n AreaSeriesTag[AreaSeriesTag[\"Stroke\"] = 1] = \"Stroke\";\n AreaSeriesTag[AreaSeriesTag[\"Marker\"] = 2] = \"Marker\";\n AreaSeriesTag[AreaSeriesTag[\"Label\"] = 3] = \"Label\";\n})(AreaSeriesTag || (AreaSeriesTag = {}));\nvar AreaSeries = /** @class */ (function (_super) {\n __extends$23(AreaSeries, _super);\n function AreaSeries(moduleCtx) {\n var _this = _super.call(this, {\n moduleCtx: moduleCtx,\n pathsPerSeries: 2,\n pathsZIndexSubOrderOffset: [0, 1000],\n hasMarkers: true,\n }) || this;\n _this.tooltip = new AreaSeriesTooltip();\n _this.marker = new CartesianSeriesMarker();\n _this.label = new AreaSeriesLabel();\n _this.fill = '#c16068';\n _this.stroke = '#874349';\n _this.fillOpacity = 1;\n _this.strokeOpacity = 1;\n _this.lineDash = [0];\n _this.lineDashOffset = 0;\n _this.xKey = undefined;\n _this.xName = undefined;\n _this.strokeWidth = 2;\n _this.shadow = undefined;\n var _a = _this, marker = _a.marker, label = _a.label;\n marker.enabled = false;\n label.enabled = false;\n return _this;\n }\n AreaSeries.prototype.processData = function (dataController) {\n return __awaiter$6(this, void 0, void 0, function () {\n var _a, xKey, yKey, axes, normalizedTo, data, visible, _b, _c, _d, groupIndex, xAxis, yAxis, isContinuousX, isContinuousY, ids, extraProps, normaliseTo, _e, dataModel, processedData;\n return __generator$6(this, function (_f) {\n switch (_f.label) {\n case 0:\n _a = this, xKey = _a.xKey, yKey = _a.yKey, axes = _a.axes, normalizedTo = _a.normalizedTo, data = _a.data, visible = _a.visible, _b = _a.seriesGrouping, _c = _b === void 0 ? {} : _b, _d = _c.groupIndex, groupIndex = _d === void 0 ? this.id : _d;\n if (!xKey || !yKey || !data)\n return [2 /*return*/];\n xAxis = axes[ChartAxisDirection.X];\n yAxis = axes[ChartAxisDirection.Y];\n isContinuousX = (xAxis === null || xAxis === void 0 ? void 0 : xAxis.scale) instanceof ContinuousScale;\n isContinuousY = (yAxis === null || yAxis === void 0 ? void 0 : yAxis.scale) instanceof ContinuousScale;\n ids = [\n \"area-stack-\" + groupIndex + \"-yValues\",\n \"area-stack-\" + groupIndex + \"-yValues-trailing\",\n \"area-stack-\" + groupIndex + \"-yValues-prev\",\n \"area-stack-\" + groupIndex + \"-yValues-trailing-prev\",\n \"area-stack-\" + groupIndex + \"-yValues-marker\",\n ];\n extraProps = [];\n normaliseTo = normalizedTo && isFinite(normalizedTo) ? normalizedTo : undefined;\n if (normaliseTo) {\n extraProps.push(normaliseGroupTo(this, [ids[0], ids[1], ids[4]], normaliseTo, 'range'));\n extraProps.push(normaliseGroupTo(this, [ids[2], ids[3]], normaliseTo, 'range'));\n }\n return [4 /*yield*/, dataController.request(this.id, data, {\n props: __spreadArray$k(__spreadArray$k(__spreadArray$k(__spreadArray$k(__spreadArray$k(__spreadArray$k([\n keyProperty(this, xKey, isContinuousX, { id: 'xValue' }),\n valueProperty(this, yKey, isContinuousY, { id: \"yValue-raw\", invalidValue: null })\n ], __read$z(groupAccumulativeValueProperty(this, yKey, isContinuousY, 'window', 'current', {\n id: \"yValue-end\",\n invalidValue: null,\n groupId: ids[0],\n }))), __read$z(groupAccumulativeValueProperty(this, yKey, isContinuousY, 'window-trailing', 'current', {\n id: \"yValue-start\",\n invalidValue: null,\n groupId: ids[1],\n }))), __read$z(groupAccumulativeValueProperty(this, yKey, isContinuousY, 'window', 'last', {\n id: \"yValue-previous-end\",\n invalidValue: null,\n groupId: ids[2],\n }))), __read$z(groupAccumulativeValueProperty(this, yKey, isContinuousY, 'window-trailing', 'last', {\n id: \"yValue-previous-start\",\n invalidValue: null,\n groupId: ids[3],\n }))), __read$z(groupAccumulativeValueProperty(this, yKey, isContinuousY, 'normal', 'current', {\n id: \"yValue-cumulative\",\n invalidValue: null,\n groupId: ids[4],\n }))), __read$z(extraProps)),\n groupByKeys: true,\n dataVisible: visible,\n })];\n case 1:\n _e = _f.sent(), dataModel = _e.dataModel, processedData = _e.processedData;\n this.dataModel = dataModel;\n this.processedData = processedData;\n return [2 /*return*/];\n }\n });\n });\n };\n AreaSeries.prototype.getDomain = function (direction) {\n var _a = this, processedData = _a.processedData, dataModel = _a.dataModel, axes = _a.axes;\n if (!processedData || !dataModel)\n return [];\n var xAxis = axes[ChartAxisDirection.X];\n var yAxis = axes[ChartAxisDirection.Y];\n var keyDef = dataModel.resolveProcessedDataDefById(this, \"xValue\");\n var keys = dataModel.getDomain(this, \"xValue\", 'key', processedData);\n var yExtent = dataModel.getDomain(this, /yValue-(previous-)?end/, 'value', processedData);\n if (direction === ChartAxisDirection.X) {\n if ((keyDef === null || keyDef === void 0 ? void 0 : keyDef.def.type) === 'key' && keyDef.def.valueType === 'category') {\n return keys;\n }\n return this.fixNumericExtent(extent$4(keys), xAxis);\n }\n else if (yAxis instanceof LogAxis || yAxis instanceof TimeAxis) {\n return this.fixNumericExtent(yExtent, yAxis);\n }\n else {\n var fixedYExtent = [yExtent[0] > 0 ? 0 : yExtent[0], yExtent[1] < 0 ? 0 : yExtent[1]];\n return this.fixNumericExtent(fixedYExtent, yAxis);\n }\n };\n AreaSeries.prototype.createNodeData = function () {\n var _a;\n return __awaiter$6(this, void 0, void 0, function () {\n var _b, axes, data, _c, _d, groupedData, dataModel, callbackCache, xAxis, yAxis, _e, _f, yKey, _g, xKey, marker, label, fill, stroke, seriesId, xScale, yScale, continuousY, xOffset, yStartIndex, yEndIndex, yRawIndex, yPreviousStartIndex, yPreviousEndIndex, yCumulativeIndex, createPathCoordinates, createMarkerCoordinate, labelSelectionData, markerSelectionData, strokeSelectionData, fillSelectionData, context, fillPoints, fillPhantomPoints, strokePoints, yValues, datumIdx, lastXDatum, i;\n var _this = this;\n return __generator$6(this, function (_h) {\n _b = this, axes = _b.axes, data = _b.data, _c = _b.processedData, _d = _c === void 0 ? {} : _c, groupedData = _d.data, dataModel = _b.dataModel, callbackCache = _b.ctx.callbackCache;\n xAxis = axes[ChartAxisDirection.X];\n yAxis = axes[ChartAxisDirection.Y];\n if (!xAxis || !yAxis || !data || !dataModel) {\n return [2 /*return*/, []];\n }\n _e = this, _f = _e.yKey, yKey = _f === void 0 ? '' : _f, _g = _e.xKey, xKey = _g === void 0 ? '' : _g, marker = _e.marker, label = _e.label, fill = _e.fill, stroke = _e.stroke, seriesId = _e.id;\n xScale = xAxis.scale;\n yScale = yAxis.scale;\n continuousY = yScale instanceof ContinuousScale;\n xOffset = ((_a = xScale.bandwidth) !== null && _a !== void 0 ? _a : 0) / 2;\n yStartIndex = dataModel.resolveProcessedDataIndexById(this, \"yValue-start\").index;\n yEndIndex = dataModel.resolveProcessedDataIndexById(this, \"yValue-end\").index;\n yRawIndex = dataModel.resolveProcessedDataIndexById(this, \"yValue-raw\").index;\n yPreviousStartIndex = dataModel.resolveProcessedDataIndexById(this, \"yValue-previous-start\").index;\n yPreviousEndIndex = dataModel.resolveProcessedDataIndexById(this, \"yValue-previous-end\").index;\n yCumulativeIndex = dataModel.resolveProcessedDataIndexById(this, \"yValue-cumulative\").index;\n createPathCoordinates = function (xDatum, lastYEnd, yEnd) {\n var x = xScale.convert(xDatum) + xOffset;\n var prevYCoordinate = yScale.convert(lastYEnd, { strict: false });\n var currYCoordinate = yScale.convert(yEnd, { strict: false });\n return [\n { x: x, y: currYCoordinate, size: marker.size },\n { x: x, y: prevYCoordinate, size: marker.size },\n ];\n };\n createMarkerCoordinate = function (xDatum, yEnd, rawYDatum) {\n var currY;\n // if not normalized, the invalid data points will be processed as `undefined` in processData()\n // if normalized, the invalid data points will be processed as 0 rather than `undefined`\n // check if unprocessed datum is valid as we only want to show markers for valid points\n var normalized = _this.normalizedTo && isFinite(_this.normalizedTo);\n var normalizedAndValid = normalized && continuousY && isContinuous(rawYDatum);\n var valid = (!normalized && !isNaN(rawYDatum)) || normalizedAndValid;\n if (valid) {\n currY = yEnd;\n }\n var x = xScale.convert(xDatum) + xOffset;\n var y = yScale.convert(currY, { strict: false });\n return { x: x, y: y, size: marker.size };\n };\n labelSelectionData = [];\n markerSelectionData = [];\n strokeSelectionData = { itemId: yKey, points: [], yValues: [] };\n fillSelectionData = { itemId: yKey, points: [] };\n context = {\n itemId: yKey,\n fillSelectionData: fillSelectionData,\n labelData: labelSelectionData,\n nodeData: markerSelectionData,\n strokeSelectionData: strokeSelectionData,\n };\n fillPoints = fillSelectionData.points;\n fillPhantomPoints = [];\n strokePoints = strokeSelectionData.points;\n yValues = strokeSelectionData.yValues;\n datumIdx = -1;\n groupedData === null || groupedData === void 0 ? void 0 : groupedData.forEach(function (datumGroup) {\n var _a = __read$z(datumGroup.keys, 1), xDatum = _a[0], datumArray = datumGroup.datum, valuesArray = datumGroup.values;\n valuesArray.forEach(function (values, valueIdx) {\n var _a;\n datumIdx++;\n var seriesDatum = datumArray[valueIdx];\n var yRawDatum = values[yRawIndex];\n var yStart = values[yStartIndex];\n var yEnd = values[yEndIndex];\n var yPreviousStart = values[yPreviousStartIndex];\n var yPreviousEnd = values[yPreviousEndIndex];\n var yCumulative = values[yCumulativeIndex];\n var validPoint = yRawDatum != null;\n // marker data\n var point = createMarkerCoordinate(xDatum, +yCumulative, yRawDatum);\n if (validPoint && marker) {\n markerSelectionData.push({\n index: datumIdx,\n series: _this,\n itemId: yKey,\n datum: seriesDatum,\n nodeMidPoint: { x: point.x, y: point.y },\n cumulativeValue: yEnd,\n yValue: yRawDatum,\n xValue: xDatum,\n yKey: yKey,\n xKey: xKey,\n point: point,\n fill: fill,\n stroke: stroke,\n });\n }\n // label data\n if (validPoint && label) {\n var labelText = void 0;\n if (label.formatter) {\n labelText = (_a = callbackCache.call(label.formatter, { value: yRawDatum, seriesId: seriesId })) !== null && _a !== void 0 ? _a : '';\n }\n else {\n labelText = isNumber$4(yRawDatum) ? Number(yRawDatum).toFixed(2) : String(yRawDatum);\n }\n labelSelectionData.push({\n index: datumIdx,\n itemId: yKey,\n point: point,\n label: labelText\n ? {\n text: labelText,\n fontStyle: label.fontStyle,\n fontWeight: label.fontWeight,\n fontSize: label.fontSize,\n fontFamily: label.fontFamily,\n textAlign: 'center',\n textBaseline: 'bottom',\n fill: label.color,\n }\n : undefined,\n });\n }\n // fill data\n // Handle data in pairs of current and next x and y values\n var windowX = [lastXDatum, xDatum];\n var windowYStart = [yPreviousStart, yStart];\n var windowYEnd = [yPreviousEnd, yEnd];\n if (windowX.some(function (v) { return v == undefined; })) {\n lastXDatum = xDatum;\n return;\n }\n if (windowYStart.some(function (v) { return v == undefined; })) {\n windowYStart[0] = 0;\n windowYStart[1] = 0;\n }\n if (windowYEnd.some(function (v) { return v == undefined; })) {\n windowYEnd[0] = 0;\n windowYEnd[1] = 0;\n }\n var prevCoordinates = createPathCoordinates(lastXDatum, +windowYStart[0], +windowYEnd[0]);\n fillPoints.push(prevCoordinates[0]);\n fillPhantomPoints.push(prevCoordinates[1]);\n var nextCoordinates = createPathCoordinates(xDatum, +windowYStart[1], +windowYEnd[1]);\n fillPoints.push(nextCoordinates[0]);\n fillPhantomPoints.push(nextCoordinates[1]);\n // stroke data\n strokePoints.push({ x: NaN, y: NaN }); // moveTo\n yValues.push(undefined);\n if (yPreviousEnd != null) {\n strokePoints.push(prevCoordinates[0]);\n yValues.push(yPreviousEnd);\n }\n if (yEnd != undefined) {\n strokePoints.push(nextCoordinates[0]);\n yValues.push(yEnd);\n }\n lastXDatum = xDatum;\n });\n });\n for (i = fillPhantomPoints.length - 1; i >= 0; i--) {\n fillPoints.push(fillPhantomPoints[i]);\n }\n return [2 /*return*/, [context]];\n });\n });\n };\n AreaSeries.prototype.isPathOrSelectionDirty = function () {\n return this.marker.isDirty();\n };\n AreaSeries.prototype.markerFactory = function () {\n var shape = this.marker.shape;\n var MarkerShape = getMarker$1(shape);\n return new MarkerShape();\n };\n AreaSeries.prototype.updateMarkerSelection = function (opts) {\n return __awaiter$6(this, void 0, void 0, function () {\n var nodeData, markerSelection, enabled, data;\n return __generator$6(this, function (_a) {\n nodeData = opts.nodeData, markerSelection = opts.markerSelection;\n enabled = this.marker.enabled;\n data = enabled && nodeData ? nodeData : [];\n if (this.marker.isDirty()) {\n markerSelection.clear();\n }\n return [2 /*return*/, markerSelection.update(data, function (marker) {\n marker.tag = AreaSeriesTag.Marker;\n })];\n });\n });\n };\n AreaSeries.prototype.updateMarkerNodes = function (opts) {\n var _a;\n return __awaiter$6(this, void 0, void 0, function () {\n var markerSelection, isDatumHighlighted, _b, seriesId, _c, xKey, marker, seriesFill, seriesStroke, seriesFillOpacity, _d, markerFillOpacity, strokeOpacity, _e, highlightedFill, _f, highlightFillOpacity, highlightedStroke, highlightedDatumStrokeWidth, visible, callbackCache, size, formatter, markerStrokeWidth, customMarker;\n return __generator$6(this, function (_g) {\n markerSelection = opts.markerSelection, isDatumHighlighted = opts.isHighlight;\n _b = this, seriesId = _b.id, _c = _b.xKey, xKey = _c === void 0 ? '' : _c, marker = _b.marker, seriesFill = _b.fill, seriesStroke = _b.stroke, seriesFillOpacity = _b.fillOpacity, _d = _b.marker.fillOpacity, markerFillOpacity = _d === void 0 ? seriesFillOpacity : _d, strokeOpacity = _b.strokeOpacity, _e = _b.highlightStyle.item, highlightedFill = _e.fill, _f = _e.fillOpacity, highlightFillOpacity = _f === void 0 ? markerFillOpacity : _f, highlightedStroke = _e.stroke, highlightedDatumStrokeWidth = _e.strokeWidth, visible = _b.visible, callbackCache = _b.ctx.callbackCache;\n size = marker.size, formatter = marker.formatter;\n markerStrokeWidth = (_a = marker.strokeWidth) !== null && _a !== void 0 ? _a : this.strokeWidth;\n customMarker = typeof marker.shape === 'function';\n markerSelection.each(function (node, datum) {\n var _a, _b, _c, _d, _e, _f, _g, _h;\n var fill = isDatumHighlighted && highlightedFill !== undefined ? highlightedFill : (_a = marker.fill) !== null && _a !== void 0 ? _a : seriesFill;\n var fillOpacity = isDatumHighlighted ? highlightFillOpacity : markerFillOpacity;\n var stroke = isDatumHighlighted && highlightedStroke !== undefined\n ? highlightedStroke\n : (_b = marker.stroke) !== null && _b !== void 0 ? _b : seriesStroke;\n var strokeWidth = isDatumHighlighted && highlightedDatumStrokeWidth !== undefined\n ? highlightedDatumStrokeWidth\n : markerStrokeWidth;\n var format = undefined;\n if (formatter) {\n format = callbackCache.call(formatter, {\n datum: datum.datum,\n xKey: xKey,\n yKey: datum.yKey,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n size: size,\n highlighted: isDatumHighlighted,\n seriesId: seriesId,\n });\n }\n node.fill = (_c = format === null || format === void 0 ? void 0 : format.fill) !== null && _c !== void 0 ? _c : fill;\n node.stroke = (_d = format === null || format === void 0 ? void 0 : format.stroke) !== null && _d !== void 0 ? _d : stroke;\n node.strokeWidth = (_e = format === null || format === void 0 ? void 0 : format.strokeWidth) !== null && _e !== void 0 ? _e : strokeWidth;\n node.fillOpacity = fillOpacity !== null && fillOpacity !== void 0 ? fillOpacity : 1;\n node.strokeOpacity = (_g = (_f = marker.strokeOpacity) !== null && _f !== void 0 ? _f : strokeOpacity) !== null && _g !== void 0 ? _g : 1;\n node.size = (_h = format === null || format === void 0 ? void 0 : format.size) !== null && _h !== void 0 ? _h : size;\n node.translationX = datum.point.x;\n node.translationY = datum.point.y;\n node.visible = node.size > 0 && visible && !isNaN(datum.point.x) && !isNaN(datum.point.y);\n if (!customMarker || node.dirtyPath) {\n return;\n }\n // Only for custom marker shapes\n node.path.clear({ trackChanges: true });\n node.updatePath();\n node.checkPathDirty();\n });\n if (!isDatumHighlighted) {\n this.marker.markClean();\n }\n return [2 /*return*/];\n });\n });\n };\n AreaSeries.prototype.updateLabelSelection = function (opts) {\n return __awaiter$6(this, void 0, void 0, function () {\n var labelData, labelSelection;\n return __generator$6(this, function (_a) {\n labelData = opts.labelData, labelSelection = opts.labelSelection;\n return [2 /*return*/, labelSelection.update(labelData, function (text) {\n text.tag = AreaSeriesTag.Label;\n })];\n });\n });\n };\n AreaSeries.prototype.updateLabelNodes = function (opts) {\n return __awaiter$6(this, void 0, void 0, function () {\n var labelSelection, _a, labelEnabled, fontStyle, fontWeight, fontSize, fontFamily, color;\n return __generator$6(this, function (_b) {\n labelSelection = opts.labelSelection;\n _a = this.label, labelEnabled = _a.enabled, fontStyle = _a.fontStyle, fontWeight = _a.fontWeight, fontSize = _a.fontSize, fontFamily = _a.fontFamily, color = _a.color;\n labelSelection.each(function (text, datum) {\n var point = datum.point, label = datum.label;\n if (label && labelEnabled) {\n text.fontStyle = fontStyle;\n text.fontWeight = fontWeight;\n text.fontSize = fontSize;\n text.fontFamily = fontFamily;\n text.textAlign = label.textAlign;\n text.textBaseline = label.textBaseline;\n text.text = label.text;\n text.x = point.x;\n text.y = point.y - 10;\n text.fill = color;\n text.visible = true;\n }\n else {\n text.visible = false;\n }\n });\n return [2 /*return*/];\n });\n });\n };\n AreaSeries.prototype.getNodeClickEvent = function (event, datum) {\n var _a;\n return new CartesianSeriesNodeClickEvent((_a = this.xKey) !== null && _a !== void 0 ? _a : '', datum.yKey, event, datum, this);\n };\n AreaSeries.prototype.getNodeDoubleClickEvent = function (event, datum) {\n var _a;\n return new CartesianSeriesNodeDoubleClickEvent((_a = this.xKey) !== null && _a !== void 0 ? _a : '', datum.yKey, event, datum, this);\n };\n AreaSeries.prototype.getTooltipHtml = function (nodeDatum) {\n var _a, _b, _c;\n var _d = this, xKey = _d.xKey, seriesId = _d.id, axes = _d.axes, xName = _d.xName, yName = _d.yName, seriesFill = _d.fill, seriesStroke = _d.stroke, tooltip = _d.tooltip, marker = _d.marker, dataModel = _d.dataModel;\n var yKey = nodeDatum.yKey, xValue = nodeDatum.xValue, yValue = nodeDatum.yValue, datum = nodeDatum.datum;\n var xAxis = axes[ChartAxisDirection.X];\n var yAxis = axes[ChartAxisDirection.Y];\n if (!(xKey && yKey) || !(xAxis && yAxis && isNumber$4(yValue)) || !dataModel) {\n return '';\n }\n var yRawIndex = dataModel.resolveProcessedDataIndexById(this, \"yValue-raw\").index;\n var size = marker.size, markerFormatter = marker.formatter, markerStrokeWidth = marker.strokeWidth, markerFill = marker.fill, markerStroke = marker.stroke;\n var xString = xAxis.formatDatum(xValue);\n var yString = yAxis.formatDatum(yValue);\n var processedYValue = (_b = (_a = this.processedData) === null || _a === void 0 ? void 0 : _a.data[nodeDatum.index]) === null || _b === void 0 ? void 0 : _b.values[0][yRawIndex];\n var title = sanitizeHtml(yName);\n var content = sanitizeHtml(xString + ': ' + yString);\n var strokeWidth = markerStrokeWidth !== null && markerStrokeWidth !== void 0 ? markerStrokeWidth : this.strokeWidth;\n var fill = markerFill !== null && markerFill !== void 0 ? markerFill : seriesFill;\n var stroke = markerStroke !== null && markerStroke !== void 0 ? markerStroke : seriesStroke;\n var format = undefined;\n if (markerFormatter) {\n format = markerFormatter({\n datum: datum,\n xKey: xKey,\n yKey: yKey,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n size: size,\n highlighted: false,\n seriesId: seriesId,\n });\n }\n var color = (_c = format === null || format === void 0 ? void 0 : format.fill) !== null && _c !== void 0 ? _c : fill;\n var defaults = {\n title: title,\n backgroundColor: color,\n content: content,\n };\n var tooltipRenderer = tooltip.renderer, tooltipFormat = tooltip.format;\n if (tooltipFormat || tooltipRenderer) {\n var params = {\n datum: datum,\n xKey: xKey,\n xName: xName,\n xValue: xValue,\n yKey: yKey,\n yValue: yValue,\n processedYValue: processedYValue,\n yName: yName,\n color: color,\n title: title,\n seriesId: seriesId,\n };\n if (tooltipFormat) {\n return toTooltipHtml$1({\n content: interpolate(tooltipFormat, params),\n }, defaults);\n }\n if (tooltipRenderer) {\n return toTooltipHtml$1(tooltipRenderer(params), defaults);\n }\n }\n return toTooltipHtml$1(defaults);\n };\n AreaSeries.prototype.getLegendData = function () {\n var _a, _b, _c, _d;\n var _e = this, data = _e.data, id = _e.id, xKey = _e.xKey, yKey = _e.yKey, yName = _e.yName, marker = _e.marker, fill = _e.fill, stroke = _e.stroke, fillOpacity = _e.fillOpacity, strokeOpacity = _e.strokeOpacity, visible = _e.visible;\n if (!(data === null || data === void 0 ? void 0 : data.length) || !xKey || !yKey) {\n return [];\n }\n // Area stacks should be listed in the legend in reverse order, for symmetry with the\n // vertical stack display order.\n return [\n {\n legendType: 'category',\n id: id,\n itemId: yKey,\n seriesId: id,\n enabled: visible,\n label: {\n text: yName !== null && yName !== void 0 ? yName : yKey,\n },\n marker: {\n shape: marker.shape,\n fill: (_a = marker.fill) !== null && _a !== void 0 ? _a : fill,\n stroke: (_b = marker.stroke) !== null && _b !== void 0 ? _b : stroke,\n fillOpacity: (_c = marker.fillOpacity) !== null && _c !== void 0 ? _c : fillOpacity,\n strokeOpacity: (_d = marker.strokeOpacity) !== null && _d !== void 0 ? _d : strokeOpacity,\n },\n },\n ];\n };\n AreaSeries.prototype.animateEmptyUpdateReady = function (_a) {\n var _this = this;\n var markerSelections = _a.markerSelections, labelSelections = _a.labelSelections, contextData = _a.contextData, paths = _a.paths, seriesRect = _a.seriesRect;\n var _b = this, seriesStroke = _b.stroke, seriesFill = _b.fill, fillOpacity = _b.fillOpacity, lineDash = _b.lineDash, lineDashOffset = _b.lineDashOffset, strokeOpacity = _b.strokeOpacity, strokeWidth = _b.strokeWidth, shadow = _b.shadow;\n contextData.forEach(function (_a, seriesIdx) {\n var _b, _c, _d, _e, _f;\n var fillSelectionData = _a.fillSelectionData, strokeSelectionData = _a.strokeSelectionData, itemId = _a.itemId;\n var _g = __read$z(paths[seriesIdx], 2), fill = _g[0], stroke = _g[1];\n var duration = (_c = (_b = _this.ctx.animationManager) === null || _b === void 0 ? void 0 : _b.defaultOptions.duration) !== null && _c !== void 0 ? _c : 1000;\n var markerDuration = 200;\n var animationOptions = {\n from: 0,\n to: (_d = seriesRect === null || seriesRect === void 0 ? void 0 : seriesRect.width) !== null && _d !== void 0 ? _d : 0,\n duration: duration,\n };\n // Stroke\n {\n var points_1 = strokeSelectionData.points, yValues_1 = strokeSelectionData.yValues;\n stroke.tag = AreaSeriesTag.Stroke;\n stroke.fill = undefined;\n stroke.lineJoin = stroke.lineCap = 'round';\n stroke.pointerEvents = PointerEvents.None;\n stroke.stroke = seriesStroke;\n stroke.strokeWidth = _this.getStrokeWidth(_this.strokeWidth, { itemId: itemId });\n stroke.strokeOpacity = strokeOpacity;\n stroke.lineDash = lineDash;\n stroke.lineDashOffset = lineDashOffset;\n (_e = _this.ctx.animationManager) === null || _e === void 0 ? void 0 : _e.animate(_this.id + \"_empty-update-ready_stroke_\" + seriesIdx, __assign$C(__assign$C({}, animationOptions), { onUpdate: function (xValue) {\n stroke.path.clear({ trackChanges: true });\n var moveTo = true;\n points_1.forEach(function (point, index) {\n // Draw/move the full segment if past the end of this segment\n if (yValues_1[index] === undefined || isNaN(point.x) || isNaN(point.y)) {\n moveTo = true;\n }\n else if (point.x <= xValue) {\n if (moveTo) {\n stroke.path.moveTo(point.x, point.y);\n moveTo = false;\n }\n else {\n stroke.path.lineTo(point.x, point.y);\n }\n }\n else if (index > 0 &&\n yValues_1[index] !== undefined &&\n yValues_1[index - 1] !== undefined &&\n points_1[index - 1].x <= xValue) {\n // Draw/move partial line if in between the start and end of this segment\n var start = points_1[index - 1];\n var end = point;\n var x = xValue;\n var y = start.y + ((x - start.x) * (end.y - start.y)) / (end.x - start.x);\n stroke.path.lineTo(x, y);\n }\n });\n stroke.checkPathDirty();\n } }));\n }\n // Fill\n {\n var allPoints = fillSelectionData.points;\n var points_2 = allPoints.slice(0, allPoints.length / 2);\n var bottomPoints_1 = allPoints.slice(allPoints.length / 2);\n fill.tag = AreaSeriesTag.Fill;\n fill.stroke = undefined;\n fill.lineJoin = 'round';\n fill.pointerEvents = PointerEvents.None;\n fill.fill = seriesFill;\n fill.fillOpacity = fillOpacity;\n fill.strokeOpacity = strokeOpacity;\n fill.strokeWidth = strokeWidth;\n fill.lineDash = lineDash;\n fill.lineDashOffset = lineDashOffset;\n fill.fillShadow = shadow;\n (_f = _this.ctx.animationManager) === null || _f === void 0 ? void 0 : _f.animate(_this.id + \"_empty-update-ready_fill_\" + seriesIdx, __assign$C(__assign$C({}, animationOptions), { onUpdate: function (xValue) {\n fill.path.clear({ trackChanges: true });\n var x = 0;\n var y = 0;\n points_2.forEach(function (point, index) {\n if (point.x <= xValue) {\n // Draw/move the full segment if past the end of this segment\n x = point.x;\n y = point.y;\n fill.path.lineTo(point.x, point.y);\n }\n else if (index > 0 && points_2[index - 1].x < xValue) {\n // Draw/move partial line if in between the start and end of this segment\n var start = points_2[index - 1];\n var end = point;\n x = xValue;\n y = start.y + ((x - start.x) * (end.y - start.y)) / (end.x - start.x);\n fill.path.lineTo(x, y);\n }\n });\n bottomPoints_1.forEach(function (point, index) {\n var reverseIndex = bottomPoints_1.length - index - 1;\n if (point.x <= xValue) {\n fill.path.lineTo(point.x, point.y);\n }\n else if (reverseIndex > 0 && points_2[reverseIndex - 1].x < xValue) {\n var start = point;\n var end = bottomPoints_1[index + 1];\n var bottomY = start.y + ((x - start.x) * (end.y - start.y)) / (end.x - start.x);\n fill.path.lineTo(x, bottomY);\n }\n });\n if (bottomPoints_1.length > 0) {\n fill.path.lineTo(bottomPoints_1[bottomPoints_1.length - 1].x, bottomPoints_1[bottomPoints_1.length - 1].y);\n }\n fill.path.closePath();\n fill.checkPathDirty();\n } }));\n }\n markerSelections[seriesIdx].each(function (marker, datum) {\n var _a, _b, _c, _d;\n var delay = (seriesRect === null || seriesRect === void 0 ? void 0 : seriesRect.width) ? (datum.point.x / seriesRect.width) * duration : 0;\n var format = _this.animateFormatter(datum);\n var size = (_b = (_a = datum.point) === null || _a === void 0 ? void 0 : _a.size) !== null && _b !== void 0 ? _b : 0;\n (_c = _this.ctx.animationManager) === null || _c === void 0 ? void 0 : _c.animate(_this.id + \"_empty-update-ready_\" + marker.id, __assign$C(__assign$C({}, animationOptions), { to: (_d = format === null || format === void 0 ? void 0 : format.size) !== null && _d !== void 0 ? _d : size, delay: delay, duration: markerDuration, onUpdate: function (size) {\n marker.size = size;\n } }));\n });\n labelSelections[seriesIdx].each(function (label, datum) {\n var _a;\n var delay = (seriesRect === null || seriesRect === void 0 ? void 0 : seriesRect.width) ? (datum.point.x / seriesRect.width) * duration : 0;\n (_a = _this.ctx.animationManager) === null || _a === void 0 ? void 0 : _a.animate(_this.id + \"_empty-update-ready_\" + label.id, {\n from: 0,\n to: 1,\n delay: delay,\n duration: markerDuration,\n onUpdate: function (opacity) {\n label.opacity = opacity;\n },\n });\n });\n });\n };\n AreaSeries.prototype.animateReadyUpdate = function (_a) {\n var _this = this;\n var contextData = _a.contextData, paths = _a.paths;\n var _b = this, seriesStroke = _b.stroke, seriesFill = _b.fill, fillOpacity = _b.fillOpacity, lineDash = _b.lineDash, lineDashOffset = _b.lineDashOffset, strokeOpacity = _b.strokeOpacity, strokeWidth = _b.strokeWidth, shadow = _b.shadow;\n contextData.forEach(function (_a, seriesIdx) {\n var strokeSelectionData = _a.strokeSelectionData, fillSelectionData = _a.fillSelectionData, itemId = _a.itemId;\n var _b = __read$z(paths[seriesIdx], 2), fill = _b[0], stroke = _b[1];\n // Stroke\n stroke.stroke = seriesStroke;\n stroke.strokeWidth = _this.getStrokeWidth(_this.strokeWidth, { itemId: itemId });\n stroke.strokeOpacity = strokeOpacity;\n stroke.lineDash = lineDash;\n stroke.lineDashOffset = lineDashOffset;\n stroke.path.clear({ trackChanges: true });\n var moveTo = true;\n strokeSelectionData.points.forEach(function (point, index) {\n if (strokeSelectionData.yValues[index] === undefined || isNaN(point.x) || isNaN(point.y)) {\n moveTo = true;\n }\n else if (moveTo) {\n stroke.path.moveTo(point.x, point.y);\n moveTo = false;\n }\n else {\n stroke.path.lineTo(point.x, point.y);\n }\n });\n stroke.checkPathDirty();\n // Fill\n fill.fill = seriesFill;\n fill.fillOpacity = fillOpacity;\n fill.strokeOpacity = strokeOpacity;\n fill.strokeWidth = strokeWidth;\n fill.lineDash = lineDash;\n fill.lineDashOffset = lineDashOffset;\n fill.fillShadow = shadow;\n fill.path.clear({ trackChanges: true });\n fillSelectionData.points.forEach(function (point) {\n fill.path.lineTo(point.x, point.y);\n });\n fill.path.closePath();\n fill.checkPathDirty();\n });\n };\n AreaSeries.prototype.animateFormatter = function (datum) {\n var _a, _b, _c;\n var _d = this, marker = _d.marker, seriesFill = _d.fill, seriesStroke = _d.stroke, _e = _d.xKey, xKey = _e === void 0 ? '' : _e, seriesId = _d.id, callbackCache = _d.ctx.callbackCache;\n var size = marker.size, formatter = marker.formatter;\n var fill = (_a = marker.fill) !== null && _a !== void 0 ? _a : seriesFill;\n var stroke = (_b = marker.stroke) !== null && _b !== void 0 ? _b : seriesStroke;\n var strokeWidth = (_c = marker.strokeWidth) !== null && _c !== void 0 ? _c : this.strokeWidth;\n var format = undefined;\n if (formatter) {\n format = callbackCache.call(formatter, {\n datum: datum.datum,\n xKey: xKey,\n yKey: datum.yKey,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n size: size,\n highlighted: false,\n seriesId: seriesId,\n });\n }\n return format;\n };\n AreaSeries.prototype.isLabelEnabled = function () {\n return this.label.enabled;\n };\n AreaSeries.className = 'AreaSeries';\n AreaSeries.type = 'area';\n __decorate$1o([\n Validate(COLOR_STRING)\n ], AreaSeries.prototype, \"fill\", void 0);\n __decorate$1o([\n Validate(COLOR_STRING)\n ], AreaSeries.prototype, \"stroke\", void 0);\n __decorate$1o([\n Validate(NUMBER(0, 1))\n ], AreaSeries.prototype, \"fillOpacity\", void 0);\n __decorate$1o([\n Validate(NUMBER(0, 1))\n ], AreaSeries.prototype, \"strokeOpacity\", void 0);\n __decorate$1o([\n Validate(OPT_LINE_DASH)\n ], AreaSeries.prototype, \"lineDash\", void 0);\n __decorate$1o([\n Validate(NUMBER(0))\n ], AreaSeries.prototype, \"lineDashOffset\", void 0);\n __decorate$1o([\n Validate(OPT_STRING)\n ], AreaSeries.prototype, \"xKey\", void 0);\n __decorate$1o([\n Validate(OPT_STRING)\n ], AreaSeries.prototype, \"xName\", void 0);\n __decorate$1o([\n Validate(OPT_STRING)\n ], AreaSeries.prototype, \"yKey\", void 0);\n __decorate$1o([\n Validate(OPT_STRING)\n ], AreaSeries.prototype, \"yName\", void 0);\n __decorate$1o([\n Validate(OPT_NUMBER(0))\n ], AreaSeries.prototype, \"normalizedTo\", void 0);\n __decorate$1o([\n Validate(NUMBER(0))\n ], AreaSeries.prototype, \"strokeWidth\", void 0);\n return AreaSeries;\n}(CartesianSeries));\n\nvar __extends$22 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar Rect = /** @class */ (function (_super) {\n __extends$22(Rect, _super);\n function Rect() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.borderPath = new Path2D();\n _this.x = 0;\n _this.y = 0;\n _this.width = 10;\n _this.height = 10;\n _this.radius = 0;\n /**\n * If `true`, the rect is aligned to the pixel grid for crisp looking lines.\n * Animated rects may not look nice with this option enabled, for example\n * when a rect is translated by a sub-pixel value on each frame.\n */\n _this.crisp = false;\n _this.lastUpdatePathStrokeWidth = Shape.defaultStyles.strokeWidth;\n _this.effectiveStrokeWidth = Shape.defaultStyles.strokeWidth;\n /**\n * When the rectangle's width or height is less than a pixel\n * and crisp mode is on, the rectangle will still fit into the pixel,\n * but will be less opaque to make an effect of holding less space.\n */\n _this.microPixelEffectOpacity = 1;\n return _this;\n }\n Rect.prototype.isDirtyPath = function () {\n var _a;\n if (this.lastUpdatePathStrokeWidth !== this.strokeWidth) {\n return true;\n }\n if (this.path.isDirty() || this.borderPath.isDirty() || ((_a = this.clipPath) === null || _a === void 0 ? void 0 : _a.isDirty())) {\n return true;\n }\n return false;\n };\n Rect.prototype.updatePath = function () {\n var _a, _b, _c;\n var _d = this, path = _d.path, borderPath = _d.borderPath, crisp = _d.crisp;\n var _e = this, x = _e.x, y = _e.y, w = _e.width, h = _e.height, strokeWidth = _e.strokeWidth;\n var pixelRatio = (_b = (_a = this.layerManager) === null || _a === void 0 ? void 0 : _a.canvas.pixelRatio) !== null && _b !== void 0 ? _b : 1;\n var pixelSize = 1 / pixelRatio;\n var microPixelEffectOpacity = 1;\n path.clear({ trackChanges: true });\n borderPath.clear({ trackChanges: true });\n if (crisp) {\n if (w <= pixelSize) {\n microPixelEffectOpacity *= w / pixelSize;\n }\n if (h <= pixelSize) {\n microPixelEffectOpacity *= h / pixelSize;\n }\n w = this.align(x, w);\n h = this.align(y, h);\n x = this.align(x);\n y = this.align(y);\n }\n if (strokeWidth) {\n if (w < pixelSize) {\n // Too narrow, draw a vertical stroke\n var lx = x + pixelSize / 2;\n borderPath.moveTo(lx, y);\n borderPath.lineTo(lx, y + h);\n strokeWidth = pixelSize;\n this.borderClipPath = undefined;\n }\n else if (h < pixelSize) {\n // Too narrow, draw a horizontal stroke\n var ly = y + pixelSize / 2;\n borderPath.moveTo(x, ly);\n borderPath.lineTo(x + w, ly);\n strokeWidth = pixelSize;\n this.borderClipPath = undefined;\n }\n else if (strokeWidth < w && strokeWidth < h) {\n var halfStrokeWidth = strokeWidth / 2;\n x += halfStrokeWidth;\n y += halfStrokeWidth;\n w -= strokeWidth;\n h -= strokeWidth;\n // Clipping not needed in this case; fill to center of stroke.\n this.borderClipPath = undefined;\n path.rect(x, y, w, h);\n borderPath.rect(x, y, w, h);\n }\n else {\n // Skip the fill and just render the stroke.\n this.borderClipPath = (_c = this.borderClipPath) !== null && _c !== void 0 ? _c : new Path2D();\n this.borderClipPath.clear({ trackChanges: true });\n this.borderClipPath.rect(x, y, w, h);\n borderPath.rect(x, y, w, h);\n }\n }\n else {\n // No borderPath needed, and thus no clipPath needed either. Fill to full extent of\n // Rect.\n this.borderClipPath = undefined;\n path.rect(x, y, w, h);\n }\n this.effectiveStrokeWidth = strokeWidth;\n this.lastUpdatePathStrokeWidth = strokeWidth;\n this.microPixelEffectOpacity = microPixelEffectOpacity;\n };\n Rect.prototype.computeBBox = function () {\n var _a = this, x = _a.x, y = _a.y, width = _a.width, height = _a.height;\n return new BBox(x, y, width, height);\n };\n Rect.prototype.isPointInPath = function (x, y) {\n var point = this.transformPoint(x, y);\n var bbox = this.computeBBox();\n return bbox.containsPoint(point.x, point.y);\n };\n Rect.prototype.applyFillAlpha = function (ctx) {\n var _a = this, fillOpacity = _a.fillOpacity, microPixelEffectOpacity = _a.microPixelEffectOpacity, opacity = _a.opacity;\n var globalAlpha = ctx.globalAlpha;\n ctx.globalAlpha = globalAlpha * opacity * fillOpacity * microPixelEffectOpacity;\n };\n Rect.prototype.renderStroke = function (ctx) {\n var _a = this, stroke = _a.stroke, effectiveStrokeWidth = _a.effectiveStrokeWidth, borderPath = _a.borderPath, borderClipPath = _a.borderClipPath, opacity = _a.opacity, microPixelEffectOpacity = _a.microPixelEffectOpacity;\n var borderActive = !!stroke && !!effectiveStrokeWidth;\n if (borderActive) {\n var _b = this, strokeOpacity = _b.strokeOpacity, lineDash = _b.lineDash, lineDashOffset = _b.lineDashOffset, lineCap = _b.lineCap, lineJoin = _b.lineJoin;\n if (borderClipPath) {\n // strokeWidth is larger than width or height, so use clipping to render correctly.\n // This is the simplest way to achieve the correct rendering due to nuances with ~0\n // width/height lines in Canvas operations.\n borderClipPath.draw(ctx);\n ctx.clip();\n }\n borderPath.draw(ctx);\n var globalAlpha = ctx.globalAlpha;\n ctx.strokeStyle = stroke;\n ctx.globalAlpha = globalAlpha * opacity * strokeOpacity * microPixelEffectOpacity;\n ctx.lineWidth = effectiveStrokeWidth;\n if (lineDash) {\n ctx.setLineDash(lineDash);\n }\n if (lineDashOffset) {\n ctx.lineDashOffset = lineDashOffset;\n }\n if (lineCap) {\n ctx.lineCap = lineCap;\n }\n if (lineJoin) {\n ctx.lineJoin = lineJoin;\n }\n ctx.stroke();\n ctx.globalAlpha = globalAlpha;\n }\n };\n Rect.className = 'Rect';\n __decorate$1n([\n ScenePathChangeDetection()\n ], Rect.prototype, \"x\", void 0);\n __decorate$1n([\n ScenePathChangeDetection()\n ], Rect.prototype, \"y\", void 0);\n __decorate$1n([\n ScenePathChangeDetection()\n ], Rect.prototype, \"width\", void 0);\n __decorate$1n([\n ScenePathChangeDetection()\n ], Rect.prototype, \"height\", void 0);\n __decorate$1n([\n ScenePathChangeDetection()\n ], Rect.prototype, \"radius\", void 0);\n __decorate$1n([\n ScenePathChangeDetection()\n ], Rect.prototype, \"crisp\", void 0);\n return Rect;\n}(Path));\n\nvar __assign$B = (undefined && undefined.__assign) || function () {\n __assign$B = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$B.apply(this, arguments);\n};\nvar __rest$3 = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __read$y = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nfunction createLabelData(_a) {\n var value = _a.value, rect = _a.rect, placement = _a.placement, seriesId = _a.seriesId, _b = _a.padding, padding = _b === void 0 ? 0 : _b, formatter = _a.formatter, barAlongX = _a.barAlongX, callbackCache = _a.ctx.callbackCache;\n var labelText;\n if (formatter) {\n labelText = callbackCache.call(formatter, {\n value: isNumber$4(value) ? value : undefined,\n seriesId: seriesId,\n });\n }\n if (labelText === undefined) {\n labelText = isNumber$4(value) ? value.toFixed(2) : '';\n }\n var labelX = rect.x + rect.width / 2;\n var labelY = rect.y + rect.height / 2;\n var labelTextAlign = 'center';\n var labelTextBaseline = 'middle';\n var isPositive = value >= 0;\n switch (placement) {\n case 'start': {\n if (barAlongX) {\n labelX = isPositive ? rect.x - padding : rect.x + rect.width + padding;\n labelTextAlign = isPositive ? 'start' : 'end';\n }\n else {\n labelY = isPositive ? rect.y + rect.height + padding : rect.y - padding;\n labelTextBaseline = isPositive ? 'top' : 'bottom';\n }\n break;\n }\n case 'outside':\n case 'end': {\n if (barAlongX) {\n labelX = isPositive ? rect.x + rect.width + padding : rect.x - padding;\n labelTextAlign = isPositive ? 'start' : 'end';\n }\n else {\n labelY = isPositive ? rect.y - padding : rect.y + rect.height + padding;\n labelTextBaseline = isPositive ? 'bottom' : 'top';\n }\n break;\n }\n case 'inside':\n default: {\n labelTextBaseline = 'middle';\n break;\n }\n }\n return {\n text: labelText,\n textAlign: labelTextAlign,\n textBaseline: labelTextBaseline,\n x: labelX,\n y: labelY,\n };\n}\nfunction updateRect(_a) {\n var rect = _a.rect, config = _a.config;\n var _b = config.crisp, crisp = _b === void 0 ? true : _b, fill = config.fill, stroke = config.stroke, strokeWidth = config.strokeWidth, fillOpacity = config.fillOpacity, strokeOpacity = config.strokeOpacity, lineDash = config.lineDash, lineDashOffset = config.lineDashOffset, fillShadow = config.fillShadow, _c = config.visible, visible = _c === void 0 ? true : _c;\n rect.crisp = crisp;\n rect.fill = fill;\n rect.stroke = stroke;\n rect.strokeWidth = strokeWidth;\n rect.fillOpacity = fillOpacity;\n rect.strokeOpacity = strokeOpacity;\n rect.lineDash = lineDash;\n rect.lineDashOffset = lineDashOffset;\n rect.fillShadow = fillShadow;\n rect.visible = visible;\n}\nfunction getRectConfig(_a) {\n var _b, _c, _d, _e, _f, _g, _h;\n var datum = _a.datum, isHighlighted = _a.isHighlighted, style = _a.style, highlightStyle = _a.highlightStyle, formatter = _a.formatter, seriesId = _a.seriesId, stackGroup = _a.stackGroup, callbackCache = _a.ctx.callbackCache, opts = __rest$3(_a, [\"datum\", \"isHighlighted\", \"style\", \"highlightStyle\", \"formatter\", \"seriesId\", \"stackGroup\", \"ctx\"]);\n var itemFill = isHighlighted ? (_b = highlightStyle.fill) !== null && _b !== void 0 ? _b : style.fill : style.fill;\n var itemStroke = isHighlighted ? (_c = highlightStyle.stroke) !== null && _c !== void 0 ? _c : style.stroke : style.stroke;\n var itemStrokeWidth = isHighlighted ? (_d = highlightStyle.strokeWidth) !== null && _d !== void 0 ? _d : style.strokeWidth : style.strokeWidth;\n var fillOpacity = isHighlighted ? (_e = highlightStyle.fillOpacity) !== null && _e !== void 0 ? _e : style.fillOpacity : style.fillOpacity;\n var strokeOpacity = style.strokeOpacity, fillShadow = style.fillShadow, lineDash = style.lineDash, lineDashOffset = style.lineDashOffset;\n var format = undefined;\n if (formatter) {\n format = callbackCache.call(formatter, __assign$B({ datum: datum.datum, xKey: datum.xKey, yKey: datum.yKey, fill: itemFill, stroke: itemStroke, strokeWidth: itemStrokeWidth, highlighted: isHighlighted, seriesId: seriesId, stackGroup: stackGroup }, opts));\n }\n return {\n fill: (_f = format === null || format === void 0 ? void 0 : format.fill) !== null && _f !== void 0 ? _f : itemFill,\n stroke: (_g = format === null || format === void 0 ? void 0 : format.stroke) !== null && _g !== void 0 ? _g : itemStroke,\n strokeWidth: (_h = format === null || format === void 0 ? void 0 : format.strokeWidth) !== null && _h !== void 0 ? _h : itemStrokeWidth,\n fillOpacity: fillOpacity,\n strokeOpacity: strokeOpacity,\n lineDash: lineDash,\n lineDashOffset: lineDashOffset,\n fillShadow: fillShadow,\n };\n}\nfunction checkCrisp(visibleRange) {\n if (visibleRange === void 0) { visibleRange = []; }\n var _a = __read$y(visibleRange, 2), visibleMin = _a[0], visibleMax = _a[1];\n var isZoomed = visibleMin !== 0 || visibleMax !== 1;\n var crisp = !isZoomed;\n return crisp;\n}\nfunction updateLabel(_a) {\n var labelNode = _a.labelNode, labelDatum = _a.labelDatum, config = _a.config, visible = _a.visible;\n if (labelDatum && config && config.enabled) {\n var x = labelDatum.x, y = labelDatum.y, text = labelDatum.text, textAlign = labelDatum.textAlign, textBaseline = labelDatum.textBaseline;\n var fontStyle = config.fontStyle, fontWeight = config.fontWeight, fontSize = config.fontSize, fontFamily = config.fontFamily, color = config.color;\n labelNode.fontStyle = fontStyle;\n labelNode.fontWeight = fontWeight;\n labelNode.fontSize = fontSize;\n labelNode.fontFamily = fontFamily;\n labelNode.textAlign = textAlign;\n labelNode.textBaseline = textBaseline;\n labelNode.text = text;\n labelNode.x = x;\n labelNode.y = y;\n labelNode.fill = color;\n labelNode.visible = visible;\n }\n else {\n labelNode.visible = false;\n }\n}\n\nvar __extends$21 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter$5 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$5 = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read$x = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$j = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar BAR_LABEL_PLACEMENTS = ['inside', 'outside'];\nvar OPT_BAR_LABEL_PLACEMENT = function (v, ctx) {\n return OPTIONAL(v, ctx, function (v) { return BAR_LABEL_PLACEMENTS.includes(v); });\n};\nvar BarSeriesNodeTag;\n(function (BarSeriesNodeTag) {\n BarSeriesNodeTag[BarSeriesNodeTag[\"Bar\"] = 0] = \"Bar\";\n BarSeriesNodeTag[BarSeriesNodeTag[\"Label\"] = 1] = \"Label\";\n})(BarSeriesNodeTag || (BarSeriesNodeTag = {}));\nvar BarSeriesLabel = /** @class */ (function (_super) {\n __extends$21(BarSeriesLabel, _super);\n function BarSeriesLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.formatter = undefined;\n _this.placement = 'inside';\n return _this;\n }\n __decorate$1m([\n Validate(OPT_FUNCTION)\n ], BarSeriesLabel.prototype, \"formatter\", void 0);\n __decorate$1m([\n Validate(OPT_BAR_LABEL_PLACEMENT)\n ], BarSeriesLabel.prototype, \"placement\", void 0);\n return BarSeriesLabel;\n}(Label$1));\nvar BarSeriesTooltip = /** @class */ (function (_super) {\n __extends$21(BarSeriesTooltip, _super);\n function BarSeriesTooltip() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.renderer = undefined;\n return _this;\n }\n __decorate$1m([\n Validate(OPT_FUNCTION)\n ], BarSeriesTooltip.prototype, \"renderer\", void 0);\n return BarSeriesTooltip;\n}(SeriesTooltip));\nvar BarSeries = /** @class */ (function (_super) {\n __extends$21(BarSeries, _super);\n function BarSeries(moduleCtx) {\n var _this = _super.call(this, {\n moduleCtx: moduleCtx,\n pickModes: [SeriesNodePickMode.EXACT_SHAPE_MATCH],\n pathsPerSeries: 0,\n hasHighlightedLabels: true,\n }) || this;\n _this.label = new BarSeriesLabel();\n _this.tooltip = new BarSeriesTooltip();\n _this.fill = '#c16068';\n _this.stroke = '#874349';\n _this.fillOpacity = 1;\n _this.strokeOpacity = 1;\n _this.lineDash = [0];\n _this.lineDashOffset = 0;\n _this.formatter = undefined;\n _this.xKey = undefined;\n _this.xName = undefined;\n _this.yKey = undefined;\n _this.yName = undefined;\n /**\n * Used to get the position of bars within each group.\n */\n _this.groupScale = new BandScale$5();\n _this.stackGroup = undefined;\n _this.strokeWidth = 1;\n _this.shadow = undefined;\n _this.smallestDataInterval = undefined;\n _this.datumSelectionGarbageCollection = false;\n _this.label.enabled = false;\n return _this;\n }\n BarSeries.prototype.resolveKeyDirection = function (direction) {\n if (this.getBarDirection() === ChartAxisDirection.X) {\n if (direction === ChartAxisDirection.X) {\n return ChartAxisDirection.Y;\n }\n return ChartAxisDirection.X;\n }\n return direction;\n };\n BarSeries.prototype.processData = function (dataController) {\n var _a, _b, _c, _d, _e;\n return __awaiter$5(this, void 0, void 0, function () {\n var _f, xKey, yKey, normalizedTo, _g, _h, _j, groupIndex, _k, data, normalizedToAbs, isContinuousX, isContinuousY, stackGroupName, stackGroupTrailingName, normaliseTo, extraProps, _l, dataModel, processedData;\n return __generator$5(this, function (_m) {\n switch (_m.label) {\n case 0:\n _f = this, xKey = _f.xKey, yKey = _f.yKey, normalizedTo = _f.normalizedTo, _g = _f.seriesGrouping, _h = _g === void 0 ? {} : _g, _j = _h.groupIndex, groupIndex = _j === void 0 ? this.id : _j, _k = _f.data, data = _k === void 0 ? [] : _k;\n normalizedToAbs = Math.abs(normalizedTo !== null && normalizedTo !== void 0 ? normalizedTo : NaN);\n isContinuousX = ((_a = this.getCategoryAxis()) === null || _a === void 0 ? void 0 : _a.scale) instanceof ContinuousScale;\n isContinuousY = ((_b = this.getValueAxis()) === null || _b === void 0 ? void 0 : _b.scale) instanceof ContinuousScale;\n stackGroupName = \"bar-stack-\" + groupIndex + \"-yValues\";\n stackGroupTrailingName = stackGroupName + \"-trailing\";\n normaliseTo = normalizedToAbs && isFinite(normalizedToAbs) ? normalizedToAbs : undefined;\n extraProps = [];\n if (normaliseTo) {\n extraProps.push(normaliseGroupTo(this, [stackGroupName, stackGroupTrailingName], normaliseTo, 'range'));\n }\n if (!((_c = this.ctx.animationManager) === null || _c === void 0 ? void 0 : _c.skipAnimations) && this.processedData) {\n extraProps.push(diff(this.processedData));\n }\n return [4 /*yield*/, dataController.request(this.id, data, {\n props: __spreadArray$j(__spreadArray$j(__spreadArray$j(__spreadArray$j([\n keyProperty(this, xKey, isContinuousX, { id: 'xValue' }),\n valueProperty(this, yKey, isContinuousY, { id: \"yValue-raw\", invalidValue: null })\n ], __read$x(groupAccumulativeValueProperty(this, yKey, isContinuousY, 'normal', 'current', {\n id: \"yValue-end\",\n invalidValue: null,\n groupId: stackGroupName,\n }))), __read$x(groupAccumulativeValueProperty(this, yKey, isContinuousY, 'trailing', 'current', {\n id: \"yValue-start\",\n invalidValue: null,\n groupId: stackGroupTrailingName,\n }))), __read$x((isContinuousX ? [SMALLEST_KEY_INTERVAL] : []))), __read$x(extraProps)),\n groupByKeys: true,\n dataVisible: this.visible,\n })];\n case 1:\n _l = _m.sent(), dataModel = _l.dataModel, processedData = _l.processedData;\n this.dataModel = dataModel;\n this.processedData = processedData;\n this.smallestDataInterval = {\n x: (_e = (_d = processedData.reduced) === null || _d === void 0 ? void 0 : _d[SMALLEST_KEY_INTERVAL.property]) !== null && _e !== void 0 ? _e : Infinity,\n y: Infinity,\n };\n this.animationState.transition('updateData');\n return [2 /*return*/];\n }\n });\n });\n };\n BarSeries.prototype.getDomain = function (direction) {\n var _a;\n var _b = this, processedData = _b.processedData, dataModel = _b.dataModel;\n if (!processedData || !dataModel)\n return [];\n var _c = processedData, _d = _c.reduced, _e = _d === void 0 ? {} : _d, _f = SMALLEST_KEY_INTERVAL.property, smallestX = _e[_f];\n var categoryAxis = this.getCategoryAxis();\n var valueAxis = this.getValueAxis();\n var keyDef = dataModel.resolveProcessedDataDefById(this, \"xValue\");\n var keys = dataModel.getDomain(this, \"xValue\", 'key', processedData);\n var yExtent = dataModel.getDomain(this, \"yValue-end\", 'value', processedData);\n if (direction === this.getCategoryDirection()) {\n if ((keyDef === null || keyDef === void 0 ? void 0 : keyDef.def.type) === 'key' && (keyDef === null || keyDef === void 0 ? void 0 : keyDef.def.valueType) === 'category') {\n return keys;\n }\n var scalePadding = isFinite(smallestX) ? smallestX : 0;\n var keysExtent = (_a = extent$4(keys)) !== null && _a !== void 0 ? _a : [NaN, NaN];\n if (direction === ChartAxisDirection.Y) {\n return this.fixNumericExtent([keysExtent[0] + -scalePadding, keysExtent[1]], categoryAxis);\n }\n return this.fixNumericExtent([keysExtent[0], keysExtent[1] + scalePadding], categoryAxis);\n }\n else if (this.getValueAxis() instanceof LogAxis) {\n return this.fixNumericExtent(yExtent, valueAxis);\n }\n else {\n var fixedYExtent = [yExtent[0] > 0 ? 0 : yExtent[0], yExtent[1] < 0 ? 0 : yExtent[1]];\n return this.fixNumericExtent(fixedYExtent, valueAxis);\n }\n };\n BarSeries.prototype.getNodeClickEvent = function (event, datum) {\n var _a;\n return new CartesianSeriesNodeClickEvent((_a = this.xKey) !== null && _a !== void 0 ? _a : '', datum.yKey, event, datum, this);\n };\n BarSeries.prototype.getNodeDoubleClickEvent = function (event, datum) {\n var _a;\n return new CartesianSeriesNodeDoubleClickEvent((_a = this.xKey) !== null && _a !== void 0 ? _a : '', datum.yKey, event, datum, this);\n };\n BarSeries.prototype.getCategoryAxis = function () {\n var direction = this.getCategoryDirection();\n return this.axes[direction];\n };\n BarSeries.prototype.getValueAxis = function () {\n var direction = this.getBarDirection();\n return this.axes[direction];\n };\n BarSeries.prototype.calculateStep = function (range) {\n var _a;\n var smallestInterval = this.smallestDataInterval;\n var xAxis = this.getCategoryAxis();\n if (!xAxis) {\n return;\n }\n // calculate step\n var domainLength = xAxis.dataDomain[1] - xAxis.dataDomain[0];\n var intervals = domainLength / ((_a = smallestInterval === null || smallestInterval === void 0 ? void 0 : smallestInterval.x) !== null && _a !== void 0 ? _a : 1) + 1;\n // The number of intervals/bands is used to determine the width of individual bands by dividing the available range.\n // Allow a maximum number of bands to ensure the step does not fall below 1 pixel.\n // This means there could be some overlap of the bands in the chart.\n var maxBands = Math.floor(range); // A minimum of 1px per bar/column means the maximum number of bands will equal the available range\n var bands = Math.min(intervals, maxBands);\n var step = range / Math.max(1, bands);\n return step;\n };\n BarSeries.prototype.createNodeData = function () {\n return __awaiter$5(this, void 0, void 0, function () {\n var _a, visible, dataModel, xAxis, yAxis, xScale, yScale, _b, groupScale, _c, yKey, _d, xKey, fill, stroke, strokeWidth, label, seriesId, processedData, ctx, seriesStateManager, xBandWidth, availableRange, step, domain, _e, groupIndex, visibleGroupCount, groupIdx, barWidth, xIndex, yRawIndex, yStartIndex, yEndIndex, context;\n var _this = this;\n return __generator$5(this, function (_f) {\n _a = this, visible = _a.visible, dataModel = _a.dataModel;\n xAxis = this.getCategoryAxis();\n yAxis = this.getValueAxis();\n if (!(dataModel && visible && xAxis && yAxis)) {\n return [2 /*return*/, []];\n }\n xScale = xAxis.scale;\n yScale = yAxis.scale;\n _b = this, groupScale = _b.groupScale, _c = _b.yKey, yKey = _c === void 0 ? '' : _c, _d = _b.xKey, xKey = _d === void 0 ? '' : _d, fill = _b.fill, stroke = _b.stroke, strokeWidth = _b.strokeWidth, label = _b.label, seriesId = _b.id, processedData = _b.processedData, ctx = _b.ctx, seriesStateManager = _b.ctx.seriesStateManager;\n xBandWidth = xScale.bandwidth;\n if (xScale instanceof ContinuousScale) {\n availableRange = Math.max(xAxis.range[0], xAxis.range[1]);\n step = this.calculateStep(availableRange);\n xBandWidth = step;\n }\n domain = [];\n _e = seriesStateManager.getVisiblePeerGroupIndex(this), groupIndex = _e.index, visibleGroupCount = _e.visibleGroupCount;\n for (groupIdx = 0; groupIdx < visibleGroupCount; groupIdx++) {\n domain.push(String(groupIdx));\n }\n groupScale.domain = domain;\n groupScale.range = [0, xBandWidth !== null && xBandWidth !== void 0 ? xBandWidth : 0];\n if (xAxis instanceof CategoryAxis) {\n groupScale.padding = xAxis.groupPaddingInner;\n }\n else if (xAxis instanceof GroupedCategoryAxis) {\n groupScale.padding = 0.1;\n }\n else {\n // Number or Time axis\n groupScale.padding = 0;\n }\n // To get exactly `0` padding we need to turn off rounding\n if (groupScale.padding === 0) {\n groupScale.round = false;\n }\n else {\n groupScale.round = true;\n }\n barWidth = groupScale.bandwidth >= 1\n ? // Pixel-rounded value for low-volume bar charts.\n groupScale.bandwidth\n : // Handle high-volume bar charts gracefully.\n groupScale.rawBandwidth;\n xIndex = dataModel.resolveProcessedDataIndexById(this, \"xValue\", 'key').index;\n yRawIndex = dataModel.resolveProcessedDataIndexById(this, \"yValue-raw\").index;\n yStartIndex = dataModel.resolveProcessedDataIndexById(this, \"yValue-start\").index;\n yEndIndex = dataModel.resolveProcessedDataIndexById(this, \"yValue-end\").index;\n context = {\n itemId: yKey,\n nodeData: [],\n labelData: [],\n };\n processedData === null || processedData === void 0 ? void 0 : processedData.data.forEach(function (_a, dataIndex) {\n var keys = _a.keys, seriesDatum = _a.datum, values = _a.values;\n var xValue = keys[xIndex];\n var x = xScale.convert(xValue);\n var currY = +values[0][yEndIndex];\n var prevY = +values[0][yStartIndex];\n var yRawValue = values[0][yRawIndex];\n var barX = x + groupScale.convert(String(groupIndex));\n // Bars outside of visible range are not rendered, so we create node data\n // only for the visible subset of user data.\n if (!xAxis.inRange(barX, barWidth)) {\n return;\n }\n if (isNaN(currY)) {\n return;\n }\n var y = yScale.convert(currY, { strict: false });\n var bottomY = yScale.convert(prevY, { strict: false });\n var barAlongX = _this.getBarDirection() === ChartAxisDirection.X;\n var rect = {\n x: barAlongX ? Math.min(y, bottomY) : barX,\n y: barAlongX ? barX : Math.min(y, bottomY),\n width: barAlongX ? Math.abs(bottomY - y) : barWidth,\n height: barAlongX ? barWidth : Math.abs(bottomY - y),\n };\n var nodeMidPoint = {\n x: rect.x + rect.width / 2,\n y: rect.y + rect.height / 2,\n };\n var labelFontStyle = label.fontStyle, labelFontWeight = label.fontWeight, labelFontSize = label.fontSize, labelFontFamily = label.fontFamily, labelColor = label.color, formatter = label.formatter, placement = label.placement;\n var _b = createLabelData({ value: yRawValue, rect: rect, formatter: formatter, placement: placement, seriesId: seriesId, barAlongX: barAlongX, ctx: ctx }), labelText = _b.text, labelTextAlign = _b.textAlign, labelTextBaseline = _b.textBaseline, labelX = _b.x, labelY = _b.y;\n var nodeData = {\n index: dataIndex,\n series: _this,\n itemId: yKey,\n datum: seriesDatum[0],\n cumulativeValue: prevY + currY,\n xValue: xValue,\n yValue: yRawValue,\n yKey: yKey,\n xKey: xKey,\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height,\n nodeMidPoint: nodeMidPoint,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n label: labelText\n ? {\n text: labelText,\n fontStyle: labelFontStyle,\n fontWeight: labelFontWeight,\n fontSize: labelFontSize,\n fontFamily: labelFontFamily,\n textAlign: labelTextAlign,\n textBaseline: labelTextBaseline,\n fill: labelColor,\n x: labelX,\n y: labelY,\n }\n : undefined,\n };\n context.nodeData.push(nodeData);\n context.labelData.push(nodeData);\n });\n return [2 /*return*/, [context]];\n });\n });\n };\n BarSeries.prototype.nodeFactory = function () {\n return new Rect();\n };\n BarSeries.prototype.updateDatumSelection = function (opts) {\n return __awaiter$5(this, void 0, void 0, function () {\n var nodeData, datumSelection, getDatumId;\n return __generator$5(this, function (_a) {\n nodeData = opts.nodeData, datumSelection = opts.datumSelection;\n getDatumId = function (datum) { return datum.xValue; };\n return [2 /*return*/, datumSelection.update(nodeData, function (rect) { return (rect.tag = BarSeriesNodeTag.Bar); }, getDatumId)];\n });\n });\n };\n BarSeries.prototype.updateDatumNodes = function (opts) {\n return __awaiter$5(this, void 0, void 0, function () {\n var datumSelection, isHighlight, _a, fill, stroke, fillOpacity, strokeOpacity, lineDash, lineDashOffset, shadow, formatter, seriesId, itemHighlightStyle, ctx, stackGroup, xAxis, crisp, categoryAlongX;\n var _this = this;\n return __generator$5(this, function (_b) {\n datumSelection = opts.datumSelection, isHighlight = opts.isHighlight;\n _a = this, fill = _a.fill, stroke = _a.stroke, fillOpacity = _a.fillOpacity, strokeOpacity = _a.strokeOpacity, lineDash = _a.lineDash, lineDashOffset = _a.lineDashOffset, shadow = _a.shadow, formatter = _a.formatter, seriesId = _a.id, itemHighlightStyle = _a.highlightStyle.item, ctx = _a.ctx, stackGroup = _a.stackGroup;\n xAxis = this.axes[ChartAxisDirection.X];\n crisp = checkCrisp(xAxis === null || xAxis === void 0 ? void 0 : xAxis.visibleRange);\n categoryAlongX = this.getCategoryDirection() === ChartAxisDirection.X;\n datumSelection.each(function (rect, datum) {\n var style = {\n fill: fill,\n stroke: stroke,\n fillOpacity: fillOpacity,\n strokeOpacity: strokeOpacity,\n lineDash: lineDash,\n lineDashOffset: lineDashOffset,\n fillShadow: shadow,\n strokeWidth: _this.getStrokeWidth(_this.strokeWidth, datum),\n };\n var visible = categoryAlongX ? datum.width > 0 : datum.height > 0;\n var config = getRectConfig({\n datum: datum,\n isHighlighted: isHighlight,\n style: style,\n highlightStyle: itemHighlightStyle,\n formatter: formatter,\n seriesId: seriesId,\n stackGroup: stackGroup,\n ctx: ctx,\n });\n config.crisp = crisp;\n config.visible = visible;\n updateRect({ rect: rect, config: config });\n });\n return [2 /*return*/];\n });\n });\n };\n BarSeries.prototype.updateLabelSelection = function (opts) {\n return __awaiter$5(this, void 0, void 0, function () {\n var labelData, labelSelection, enabled, data;\n return __generator$5(this, function (_a) {\n labelData = opts.labelData, labelSelection = opts.labelSelection;\n enabled = this.label.enabled;\n data = enabled ? labelData : [];\n return [2 /*return*/, labelSelection.update(data, function (text) {\n text.tag = BarSeriesNodeTag.Label;\n text.pointerEvents = PointerEvents.None;\n })];\n });\n });\n };\n BarSeries.prototype.updateLabelNodes = function (opts) {\n return __awaiter$5(this, void 0, void 0, function () {\n var labelSelection;\n var _this = this;\n return __generator$5(this, function (_a) {\n labelSelection = opts.labelSelection;\n labelSelection.each(function (text, datum) {\n var labelDatum = datum.label;\n updateLabel({ labelNode: text, labelDatum: labelDatum, config: _this.label, visible: true });\n });\n return [2 /*return*/];\n });\n });\n };\n BarSeries.prototype.getTooltipHtml = function (nodeDatum) {\n var _a;\n var _b = this, xKey = _b.xKey, yKey = _b.yKey, processedData = _b.processedData, callbackCache = _b.ctx.callbackCache;\n var xAxis = this.getCategoryAxis();\n var yAxis = this.getValueAxis();\n var xValue = nodeDatum.xValue, yValue = nodeDatum.yValue, datum = nodeDatum.datum;\n if (!processedData || !xKey || !yKey || !xAxis || !yAxis) {\n return '';\n }\n var _c = this, xName = _c.xName, yName = _c.yName, fill = _c.fill, stroke = _c.stroke, tooltip = _c.tooltip, formatter = _c.formatter, seriesId = _c.id, stackGroup = _c.stackGroup;\n var tooltipRenderer = tooltip.renderer;\n var strokeWidth = this.getStrokeWidth(this.strokeWidth);\n var xString = sanitizeHtml(xAxis.formatDatum(xValue));\n var yString = sanitizeHtml(yAxis.formatDatum(yValue));\n var title = sanitizeHtml(yName);\n var content = xString + ': ' + yString;\n var format = undefined;\n if (formatter) {\n format = callbackCache.call(formatter, {\n datum: datum,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n highlighted: false,\n xKey: xKey,\n yKey: yKey,\n seriesId: seriesId,\n stackGroup: stackGroup,\n });\n }\n var color = (_a = format === null || format === void 0 ? void 0 : format.fill) !== null && _a !== void 0 ? _a : fill;\n var defaults = {\n title: title,\n backgroundColor: color,\n content: content,\n };\n if (tooltipRenderer) {\n return toTooltipHtml$1(tooltipRenderer({\n datum: datum,\n xKey: xKey,\n xValue: xValue,\n xName: xName,\n yKey: yKey,\n yValue: yValue,\n yName: yName,\n color: color,\n title: title,\n seriesId: seriesId,\n stackGroup: stackGroup,\n }), defaults);\n }\n return toTooltipHtml$1(defaults);\n };\n BarSeries.prototype.getLegendData = function () {\n var _a;\n var _b = this, id = _b.id, data = _b.data, xKey = _b.xKey, yKey = _b.yKey, yName = _b.yName, legendItemName = _b.legendItemName, fill = _b.fill, stroke = _b.stroke, fillOpacity = _b.fillOpacity, strokeOpacity = _b.strokeOpacity, visible = _b.visible, showInLegend = _b.showInLegend;\n if (!showInLegend || !(data === null || data === void 0 ? void 0 : data.length) || !xKey || !yKey) {\n return [];\n }\n var legendData = [];\n legendData.push({\n legendType: 'category',\n id: id,\n itemId: yKey,\n seriesId: id,\n enabled: visible,\n label: {\n text: (_a = legendItemName !== null && legendItemName !== void 0 ? legendItemName : yName) !== null && _a !== void 0 ? _a : yKey,\n },\n legendItemName: legendItemName,\n marker: {\n fill: fill,\n stroke: stroke,\n fillOpacity: fillOpacity,\n strokeOpacity: strokeOpacity,\n },\n });\n return legendData;\n };\n BarSeries.prototype.animateEmptyUpdateReady = function (_a) {\n var _this = this;\n var _b, _c;\n var datumSelections = _a.datumSelections, labelSelections = _a.labelSelections;\n var duration = (_c = (_b = this.ctx.animationManager) === null || _b === void 0 ? void 0 : _b.defaultOptions.duration) !== null && _c !== void 0 ? _c : 1000;\n var labelDuration = 200;\n var _d = this.getDirectionStartingValues(datumSelections), startingX = _d.startingX, startingY = _d.startingY;\n datumSelections.forEach(function (datumSelection) {\n datumSelection.each(function (rect, datum) {\n var _a;\n var contextX = startingX;\n var contextWidth = 0;\n var contextY = datum.y;\n var contextHeight = datum.height;\n if (_this.getBarDirection() === ChartAxisDirection.Y) {\n contextX = datum.x;\n contextWidth = datum.width;\n contextY = startingY;\n contextHeight = 0;\n }\n var props = [\n { from: contextX, to: datum.x },\n { from: contextWidth, to: datum.width },\n { from: contextY, to: datum.y },\n { from: contextHeight, to: datum.height },\n ];\n (_a = _this.ctx.animationManager) === null || _a === void 0 ? void 0 : _a.animateMany(_this.id + \"_empty-update-ready_\" + rect.id, props, {\n duration: duration,\n ease: easeOut,\n onUpdate: function (_a) {\n var _b = __read$x(_a, 4), x = _b[0], width = _b[1], y = _b[2], height = _b[3];\n rect.x = x;\n rect.width = width;\n rect.y = y;\n rect.height = height;\n },\n });\n });\n });\n labelSelections.forEach(function (labelSelection) {\n labelSelection.each(function (label) {\n var _a;\n (_a = _this.ctx.animationManager) === null || _a === void 0 ? void 0 : _a.animate(_this.id + \"_empty-update-ready_\" + label.id, {\n from: 0,\n to: 1,\n delay: duration,\n duration: labelDuration,\n onUpdate: function (opacity) {\n label.opacity = opacity;\n },\n });\n });\n });\n };\n BarSeries.prototype.animateReadyHighlight = function (highlightSelection) {\n this.resetSelectionRects(highlightSelection);\n };\n BarSeries.prototype.animateReadyResize = function (_a) {\n var _this = this;\n var _b;\n var datumSelections = _a.datumSelections;\n (_b = this.ctx.animationManager) === null || _b === void 0 ? void 0 : _b.reset();\n datumSelections.forEach(function (datumSelection) {\n _this.resetSelectionRects(datumSelection);\n });\n };\n BarSeries.prototype.animateWaitingUpdateReady = function (_a) {\n var _this = this;\n var _b, _c, _d, _e, _f;\n var datumSelections = _a.datumSelections, labelSelections = _a.labelSelections;\n var processedData = this.processedData;\n var diff = (_b = processedData === null || processedData === void 0 ? void 0 : processedData.reduced) === null || _b === void 0 ? void 0 : _b.diff;\n if (!(diff === null || diff === void 0 ? void 0 : diff.changed)) {\n datumSelections.forEach(function (datumSelection) {\n _this.resetSelectionRects(datumSelection);\n });\n return;\n }\n var totalDuration = (_d = (_c = this.ctx.animationManager) === null || _c === void 0 ? void 0 : _c.defaultOptions.duration) !== null && _d !== void 0 ? _d : 1000;\n var labelDuration = 200;\n var sectionDuration = totalDuration;\n if (diff.added.length > 0 || diff.removed.length > 0) {\n sectionDuration = Math.floor(totalDuration / 2);\n }\n var _g = this.getDirectionStartingValues(datumSelections), startingX = _g.startingX, startingY = _g.startingY;\n var datumIdKey = (_f = (_e = this.processedData) === null || _e === void 0 ? void 0 : _e.defs.keys) === null || _f === void 0 ? void 0 : _f[0];\n var addedIds = {};\n diff.added.forEach(function (d) {\n addedIds[d[0]] = true;\n });\n var removedIds = {};\n diff.removed.forEach(function (d) {\n removedIds[d[0]] = true;\n });\n var rectThrottleGroup = this.id + \"_\" + Math.random();\n var labelThrottleGroup = this.id + \"_\" + Math.random();\n datumSelections.forEach(function (datumSelection) {\n datumSelection.each(function (rect, datum) {\n var _a;\n var props = [\n { from: rect.x, to: datum.x },\n { from: rect.width, to: datum.width },\n { from: rect.y, to: datum.y },\n { from: rect.height, to: datum.height },\n ];\n var delay = diff.removed.length > 0 ? sectionDuration : 0;\n var duration = sectionDuration;\n var cleanup = false;\n var datumId = datumIdKey ? datum.xValue : '';\n var contextX = startingX;\n var contextWidth = 0;\n var contextY = datum.y;\n var contextHeight = datum.height;\n if (_this.getBarDirection() === ChartAxisDirection.Y) {\n contextX = datum.x;\n contextWidth = datum.width;\n contextY = startingY;\n contextHeight = 0;\n }\n var isAdded = datumId !== undefined && addedIds[datumId] !== undefined;\n var isRemoved = datumId !== undefined && removedIds[datumId] !== undefined;\n if (isAdded) {\n props = [\n { from: contextX, to: datum.x },\n { from: contextWidth, to: datum.width },\n { from: contextY, to: datum.y },\n { from: contextHeight, to: datum.height },\n ];\n duration = sectionDuration;\n }\n else if (isRemoved) {\n props = [\n { from: datum.x, to: contextX },\n { from: datum.width, to: contextWidth },\n { from: datum.y, to: contextY },\n { from: datum.height, to: contextHeight },\n ];\n delay = 0;\n duration = sectionDuration;\n cleanup = true;\n }\n (_a = _this.ctx.animationManager) === null || _a === void 0 ? void 0 : _a.animateManyWithThrottle(_this.id + \"_waiting-update-ready_\" + rect.id, props, {\n delay: delay,\n duration: duration,\n ease: easeOut,\n throttleId: _this.id + \"_rects\",\n throttleGroup: rectThrottleGroup,\n onUpdate: function (_a) {\n var _b = __read$x(_a, 4), x = _b[0], width = _b[1], y = _b[2], height = _b[3];\n rect.x = x;\n rect.width = width;\n rect.y = y;\n rect.height = height;\n },\n onComplete: function () {\n if (cleanup)\n datumSelection.cleanup();\n },\n });\n });\n });\n labelSelections.forEach(function (labelSelection) {\n labelSelection.each(function (label) {\n var _a;\n label.opacity = 0;\n (_a = _this.ctx.animationManager) === null || _a === void 0 ? void 0 : _a.animateWithThrottle(_this.id + \"_waiting-update-ready_\" + label.id, {\n from: 0,\n to: 1,\n delay: totalDuration,\n duration: labelDuration,\n throttleId: _this.id + \"_labels\",\n throttleGroup: labelThrottleGroup,\n onUpdate: function (opacity) {\n label.opacity = opacity;\n },\n });\n });\n });\n };\n BarSeries.prototype.resetSelectionRects = function (selection) {\n selection.each(function (rect, datum) {\n rect.x = datum.x;\n rect.y = datum.y;\n rect.width = datum.width;\n rect.height = datum.height;\n });\n selection.cleanup();\n };\n BarSeries.prototype.getDirectionStartingValues = function (datumSelections) {\n var isColumnSeries = this.getBarDirection() === ChartAxisDirection.Y;\n var xAxis = this.axes[ChartAxisDirection.X];\n var yAxis = this.axes[ChartAxisDirection.Y];\n var isContinuousX = (xAxis === null || xAxis === void 0 ? void 0 : xAxis.scale) instanceof ContinuousScale;\n var isContinuousY = (yAxis === null || yAxis === void 0 ? void 0 : yAxis.scale) instanceof ContinuousScale;\n var startingX = Infinity;\n var startingY = 0;\n if (yAxis && isColumnSeries) {\n if (isContinuousY) {\n startingY = yAxis.scale.convert(0);\n }\n else {\n datumSelections.forEach(function (datumSelection) {\n return datumSelection.each(function (_, datum) {\n if (datum.yValue >= 0) {\n startingY = Math.max(startingY, datum.height + datum.y);\n }\n });\n });\n }\n }\n if (xAxis && !isColumnSeries) {\n if (isContinuousX) {\n startingX = xAxis.scale.convert(0);\n }\n else {\n datumSelections.forEach(function (datumSelection) {\n return datumSelection.each(function (_, datum) {\n if (datum.yValue >= 0) {\n startingX = Math.min(startingX, datum.x);\n }\n });\n });\n }\n }\n return { startingX: startingX, startingY: startingY };\n };\n BarSeries.prototype.isLabelEnabled = function () {\n return this.label.enabled;\n };\n BarSeries.prototype.getBandScalePadding = function () {\n return { inner: 0.2, outer: 0.3 };\n };\n BarSeries.prototype.getBarDirection = function () {\n return ChartAxisDirection.X;\n };\n BarSeries.prototype.getCategoryDirection = function () {\n return ChartAxisDirection.Y;\n };\n BarSeries.className = 'BarSeries';\n BarSeries.type = 'bar';\n __decorate$1m([\n Validate(OPT_COLOR_STRING)\n ], BarSeries.prototype, \"fill\", void 0);\n __decorate$1m([\n Validate(OPT_COLOR_STRING)\n ], BarSeries.prototype, \"stroke\", void 0);\n __decorate$1m([\n Validate(NUMBER(0, 1))\n ], BarSeries.prototype, \"fillOpacity\", void 0);\n __decorate$1m([\n Validate(NUMBER(0, 1))\n ], BarSeries.prototype, \"strokeOpacity\", void 0);\n __decorate$1m([\n Validate(OPT_LINE_DASH)\n ], BarSeries.prototype, \"lineDash\", void 0);\n __decorate$1m([\n Validate(NUMBER(0))\n ], BarSeries.prototype, \"lineDashOffset\", void 0);\n __decorate$1m([\n Validate(OPT_FUNCTION)\n ], BarSeries.prototype, \"formatter\", void 0);\n __decorate$1m([\n Validate(OPT_STRING)\n ], BarSeries.prototype, \"xKey\", void 0);\n __decorate$1m([\n Validate(OPT_STRING)\n ], BarSeries.prototype, \"xName\", void 0);\n __decorate$1m([\n Validate(OPT_STRING)\n ], BarSeries.prototype, \"yKey\", void 0);\n __decorate$1m([\n Validate(OPT_STRING)\n ], BarSeries.prototype, \"yName\", void 0);\n __decorate$1m([\n Validate(OPT_STRING)\n ], BarSeries.prototype, \"stackGroup\", void 0);\n __decorate$1m([\n Validate(OPT_NUMBER())\n ], BarSeries.prototype, \"normalizedTo\", void 0);\n __decorate$1m([\n Validate(NUMBER(0))\n ], BarSeries.prototype, \"strokeWidth\", void 0);\n return BarSeries;\n}(CartesianSeries));\nvar ColumnSeries = /** @class */ (function (_super) {\n __extends$21(ColumnSeries, _super);\n function ColumnSeries() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ColumnSeries.prototype.getBarDirection = function () {\n return ChartAxisDirection.Y;\n };\n ColumnSeries.prototype.getCategoryDirection = function () {\n return ChartAxisDirection.X;\n };\n ColumnSeries.type = 'column';\n ColumnSeries.className = 'ColumnSeries';\n return ColumnSeries;\n}(BarSeries));\n\nvar __extends$20 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter$4 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$4 = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read$w = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$i = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar HISTOGRAM_AGGREGATIONS = ['count', 'sum', 'mean'];\nvar HISTOGRAM_AGGREGATION = predicateWithMessage(function (v) { return HISTOGRAM_AGGREGATIONS.includes(v); }, \"expecting a histogram aggregation keyword such as 'count', 'sum' or 'mean\");\nvar HistogramSeriesNodeTag;\n(function (HistogramSeriesNodeTag) {\n HistogramSeriesNodeTag[HistogramSeriesNodeTag[\"Bin\"] = 0] = \"Bin\";\n HistogramSeriesNodeTag[HistogramSeriesNodeTag[\"Label\"] = 1] = \"Label\";\n})(HistogramSeriesNodeTag || (HistogramSeriesNodeTag = {}));\nvar HistogramSeriesLabel = /** @class */ (function (_super) {\n __extends$20(HistogramSeriesLabel, _super);\n function HistogramSeriesLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.formatter = undefined;\n return _this;\n }\n __decorate$1l([\n Validate(OPT_FUNCTION)\n ], HistogramSeriesLabel.prototype, \"formatter\", void 0);\n return HistogramSeriesLabel;\n}(Label$1));\nvar defaultBinCount = 10;\nvar HistogramSeriesTooltip = /** @class */ (function (_super) {\n __extends$20(HistogramSeriesTooltip, _super);\n function HistogramSeriesTooltip() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.renderer = undefined;\n return _this;\n }\n __decorate$1l([\n Validate(OPT_FUNCTION)\n ], HistogramSeriesTooltip.prototype, \"renderer\", void 0);\n return HistogramSeriesTooltip;\n}(SeriesTooltip));\nvar HistogramSeries = /** @class */ (function (_super) {\n __extends$20(HistogramSeries, _super);\n function HistogramSeries(moduleCtx) {\n var _this = _super.call(this, { moduleCtx: moduleCtx, pickModes: [SeriesNodePickMode.EXACT_SHAPE_MATCH] }) || this;\n _this.label = new HistogramSeriesLabel();\n _this.tooltip = new HistogramSeriesTooltip();\n _this.fill = undefined;\n _this.stroke = undefined;\n _this.fillOpacity = 1;\n _this.strokeOpacity = 1;\n _this.lineDash = [0];\n _this.lineDashOffset = 0;\n _this.xKey = undefined;\n _this.areaPlot = false;\n _this.bins = undefined;\n _this.aggregation = 'count';\n _this.binCount = undefined;\n _this.xName = undefined;\n _this.yKey = undefined;\n _this.yName = undefined;\n _this.strokeWidth = 1;\n _this.shadow = undefined;\n _this.calculatedBins = [];\n _this.datumSelectionGarbageCollection = false;\n _this.label.enabled = false;\n return _this;\n }\n // During processData phase, used to unify different ways of the user specifying\n // the bins. Returns bins in format[[min1, max1], [min2, max2], ... ].\n HistogramSeries.prototype.deriveBins = function (xDomain) {\n if (this.binCount === undefined) {\n var binStarts = ticks(xDomain[0], xDomain[1], defaultBinCount);\n var binSize_1 = tickStep(xDomain[0], xDomain[1], defaultBinCount);\n var firstBinEnd = binStarts[0];\n var expandStartToBin = function (n) { return [n, n + binSize_1]; };\n return __spreadArray$i([[firstBinEnd - binSize_1, firstBinEnd]], __read$w(binStarts.map(expandStartToBin)));\n }\n else {\n return this.calculateNiceBins(xDomain, this.binCount);\n }\n };\n HistogramSeries.prototype.calculateNiceBins = function (domain, binCount) {\n var startGuess = Math.floor(domain[0]);\n var stop = domain[1];\n var segments = binCount || 1;\n var _a = this.calculateNiceStart(startGuess, stop, segments), start = _a.start, binSize = _a.binSize;\n return this.getBins(start, stop, binSize, segments);\n };\n HistogramSeries.prototype.getBins = function (start, stop, step, count) {\n var bins = [];\n for (var i = 0; i < count; i++) {\n var a = Math.round((start + i * step) * 10) / 10;\n var b = Math.round((start + (i + 1) * step) * 10) / 10;\n if (i === count - 1) {\n b = Math.max(b, stop);\n }\n bins[i] = [a, b];\n }\n return bins;\n };\n HistogramSeries.prototype.calculateNiceStart = function (a, b, segments) {\n var binSize = Math.abs(b - a) / segments;\n var order = Math.floor(Math.log10(binSize));\n var magnitude = Math.pow(10, order);\n var start = Math.floor(a / magnitude) * magnitude;\n return {\n start: start,\n binSize: binSize,\n };\n };\n HistogramSeries.prototype.processData = function (dataController) {\n var _a;\n return __awaiter$4(this, void 0, void 0, function () {\n var _b, xKey, yKey, data, areaPlot, aggregation, props, aggProp, aggProp, groupByFn, _c, dataModel, processedData;\n var _this = this;\n return __generator$4(this, function (_d) {\n switch (_d.label) {\n case 0:\n _b = this, xKey = _b.xKey, yKey = _b.yKey, data = _b.data, areaPlot = _b.areaPlot, aggregation = _b.aggregation;\n props = [keyProperty(this, xKey, true), SORT_DOMAIN_GROUPS];\n if (yKey) {\n aggProp = groupCount(this, 'groupCount');\n if (aggregation === 'count') ;\n else if (aggregation === 'sum') {\n aggProp = groupSum(this, 'groupAgg');\n }\n else if (aggregation === 'mean') {\n aggProp = groupAverage(this, 'groupAgg');\n }\n if (areaPlot) {\n aggProp = area(this, 'groupAgg', aggProp);\n }\n props.push(valueProperty(this, yKey, true, { invalidValue: undefined }), aggProp);\n }\n else {\n aggProp = groupCount(this, 'groupAgg');\n if (areaPlot) {\n aggProp = area(this, 'groupAgg', aggProp);\n }\n props.push(aggProp);\n }\n groupByFn = function (dataSet) {\n var _a;\n var xExtent = fixNumericExtent(dataSet.domain.keys[0]);\n if (xExtent.length === 0) {\n // No buckets can be calculated.\n dataSet.domain.groups = [];\n return function () { return []; };\n }\n var bins = (_a = _this.bins) !== null && _a !== void 0 ? _a : _this.deriveBins(xExtent);\n var binCount = bins.length;\n _this.calculatedBins = __spreadArray$i([], __read$w(bins));\n return function (item) {\n var xValue = item.keys[0];\n for (var i = 0; i < binCount; i++) {\n var nextBin = bins[i];\n if (xValue >= nextBin[0] && xValue < nextBin[1]) {\n return nextBin;\n }\n if (i === binCount - 1 && xValue <= nextBin[1]) {\n // Handle edge case of a value being at the maximum extent, and the\n // final bin aligning with it.\n return nextBin;\n }\n }\n return [];\n };\n };\n if (!((_a = this.ctx.animationManager) === null || _a === void 0 ? void 0 : _a.skipAnimations) && this.processedData) {\n props.push(diff(this.processedData, false));\n }\n return [4 /*yield*/, dataController.request(this.id, data !== null && data !== void 0 ? data : [], {\n props: props,\n dataVisible: this.visible,\n groupByFn: groupByFn,\n })];\n case 1:\n _c = _d.sent(), dataModel = _c.dataModel, processedData = _c.processedData;\n this.dataModel = dataModel;\n this.processedData = processedData;\n this.animationState.transition('updateData');\n return [2 /*return*/];\n }\n });\n });\n };\n HistogramSeries.prototype.getDomain = function (direction) {\n var _a, _b, _c, _d;\n var _e = this, processedData = _e.processedData, dataModel = _e.dataModel;\n if (!processedData || !dataModel)\n return [];\n var yDomain = dataModel.getDomain(this, \"groupAgg\", 'aggregate', processedData);\n var xDomainMin = (_a = this.calculatedBins) === null || _a === void 0 ? void 0 : _a[0][0];\n var xDomainMax = (_b = this.calculatedBins) === null || _b === void 0 ? void 0 : _b[((_d = (_c = this.calculatedBins) === null || _c === void 0 ? void 0 : _c.length) !== null && _d !== void 0 ? _d : 0) - 1][1];\n if (direction === ChartAxisDirection.X) {\n return fixNumericExtent([xDomainMin, xDomainMax]);\n }\n return fixNumericExtent(yDomain);\n };\n HistogramSeries.prototype.getNodeClickEvent = function (event, datum) {\n var _a, _b;\n return new CartesianSeriesNodeClickEvent((_a = this.xKey) !== null && _a !== void 0 ? _a : '', (_b = this.yKey) !== null && _b !== void 0 ? _b : '', event, datum, this);\n };\n HistogramSeries.prototype.getNodeDoubleClickEvent = function (event, datum) {\n var _a, _b;\n return new CartesianSeriesNodeDoubleClickEvent((_a = this.xKey) !== null && _a !== void 0 ? _a : '', (_b = this.yKey) !== null && _b !== void 0 ? _b : '', event, datum, this);\n };\n HistogramSeries.prototype.createNodeData = function () {\n var _a;\n return __awaiter$4(this, void 0, void 0, function () {\n var _b, axes, processedData, callbackCache, xAxis, yAxis, xScale, yScale, _c, fill, stroke, strokeWidth, seriesId, _d, yKey, _e, xKey, nodeData, defaultLabelFormatter, _f, _g, labelFormatter, labelFontStyle, labelFontWeight, labelFontSize, labelFontFamily, labelColor;\n var _this = this;\n return __generator$4(this, function (_h) {\n _b = this, axes = _b.axes, processedData = _b.processedData, callbackCache = _b.ctx.callbackCache;\n xAxis = axes[ChartAxisDirection.X];\n yAxis = axes[ChartAxisDirection.Y];\n if (!this.visible || !xAxis || !yAxis || !processedData || processedData.type !== 'grouped') {\n return [2 /*return*/, []];\n }\n xScale = xAxis.scale;\n yScale = yAxis.scale;\n _c = this, fill = _c.fill, stroke = _c.stroke, strokeWidth = _c.strokeWidth, seriesId = _c.id, _d = _c.yKey, yKey = _d === void 0 ? '' : _d, _e = _c.xKey, xKey = _e === void 0 ? '' : _e;\n nodeData = [];\n defaultLabelFormatter = function (params) { return String(params.value); };\n _f = this.label, _g = _f.formatter, labelFormatter = _g === void 0 ? defaultLabelFormatter : _g, labelFontStyle = _f.fontStyle, labelFontWeight = _f.fontWeight, labelFontSize = _f.fontSize, labelFontFamily = _f.fontFamily, labelColor = _f.color;\n processedData.data.forEach(function (group) {\n var _a;\n var _b = group.aggValues, _c = _b === void 0 ? [[0, 0]] : _b, _d = __read$w(_c, 1), _e = __read$w(_d[0], 2), negativeAgg = _e[0], positiveAgg = _e[1], datum = group.datum, frequency = group.datum.length, domain = group.keys, _f = __read$w(group.keys, 2), xDomainMin = _f[0], xDomainMax = _f[1];\n var xMinPx = xScale.convert(xDomainMin);\n var xMaxPx = xScale.convert(xDomainMax);\n var total = negativeAgg + positiveAgg;\n var yZeroPx = yScale.convert(0);\n var yMaxPx = yScale.convert(total);\n var w = xMaxPx - xMinPx;\n var h = Math.abs(yMaxPx - yZeroPx);\n var selectionDatumLabel = total !== 0\n ? {\n text: (_a = callbackCache.call(labelFormatter, { value: total, seriesId: seriesId })) !== null && _a !== void 0 ? _a : String(total),\n fontStyle: labelFontStyle,\n fontWeight: labelFontWeight,\n fontSize: labelFontSize,\n fontFamily: labelFontFamily,\n fill: labelColor,\n x: xMinPx + w / 2,\n y: yMaxPx + h / 2,\n }\n : undefined;\n var nodeMidPoint = {\n x: xMinPx + w / 2,\n y: yMaxPx + h / 2,\n };\n nodeData.push({\n series: _this,\n datum: datum,\n // since each selection is an aggregation of multiple data.\n aggregatedValue: total,\n frequency: frequency,\n domain: domain,\n yKey: yKey,\n xKey: xKey,\n x: xMinPx,\n y: yMaxPx,\n xValue: xMinPx,\n yValue: yMaxPx,\n width: w,\n height: h,\n nodeMidPoint: nodeMidPoint,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n label: selectionDatumLabel,\n });\n });\n return [2 /*return*/, [{ itemId: (_a = this.yKey) !== null && _a !== void 0 ? _a : this.id, nodeData: nodeData, labelData: nodeData }]];\n });\n });\n };\n HistogramSeries.prototype.nodeFactory = function () {\n return new Rect();\n };\n HistogramSeries.prototype.updateDatumSelection = function (opts) {\n return __awaiter$4(this, void 0, void 0, function () {\n var nodeData, datumSelection;\n return __generator$4(this, function (_a) {\n nodeData = opts.nodeData, datumSelection = opts.datumSelection;\n return [2 /*return*/, datumSelection.update(nodeData, function (rect) {\n rect.tag = HistogramSeriesNodeTag.Bin;\n rect.crisp = true;\n }, function (datum) { return datum.domain.join('_'); })];\n });\n });\n };\n HistogramSeries.prototype.updateDatumNodes = function (opts) {\n return __awaiter$4(this, void 0, void 0, function () {\n var datumSelection, isDatumHighlighted, _a, seriesFillOpacity, strokeOpacity, shadow, _b, highlightedFill, _c, highlightFillOpacity, highlightedStroke, highlightedDatumStrokeWidth;\n var _this = this;\n return __generator$4(this, function (_d) {\n datumSelection = opts.datumSelection, isDatumHighlighted = opts.isHighlight;\n _a = this, seriesFillOpacity = _a.fillOpacity, strokeOpacity = _a.strokeOpacity, shadow = _a.shadow, _b = _a.highlightStyle.item, highlightedFill = _b.fill, _c = _b.fillOpacity, highlightFillOpacity = _c === void 0 ? seriesFillOpacity : _c, highlightedStroke = _b.stroke, highlightedDatumStrokeWidth = _b.strokeWidth;\n datumSelection.each(function (rect, datum, index) {\n var _a, _b;\n var strokeWidth = isDatumHighlighted && highlightedDatumStrokeWidth !== undefined\n ? highlightedDatumStrokeWidth\n : datum.strokeWidth;\n var fillOpacity = isDatumHighlighted ? highlightFillOpacity : seriesFillOpacity;\n rect.fill = (_a = (isDatumHighlighted ? highlightedFill : undefined)) !== null && _a !== void 0 ? _a : datum.fill;\n rect.stroke = (_b = (isDatumHighlighted ? highlightedStroke : undefined)) !== null && _b !== void 0 ? _b : datum.stroke;\n rect.fillOpacity = fillOpacity;\n rect.strokeOpacity = strokeOpacity;\n rect.strokeWidth = strokeWidth;\n rect.lineDash = _this.lineDash;\n rect.lineDashOffset = _this.lineDashOffset;\n rect.fillShadow = shadow;\n rect.zIndex = isDatumHighlighted ? Series.highlightedZIndex : index;\n rect.visible = datum.height > 0; // prevent stroke from rendering for zero height columns\n });\n return [2 /*return*/];\n });\n });\n };\n HistogramSeries.prototype.updateLabelSelection = function (opts) {\n return __awaiter$4(this, void 0, void 0, function () {\n var labelData, labelSelection;\n return __generator$4(this, function (_a) {\n labelData = opts.labelData, labelSelection = opts.labelSelection;\n return [2 /*return*/, labelSelection.update(labelData, function (text) {\n text.tag = HistogramSeriesNodeTag.Label;\n text.pointerEvents = PointerEvents.None;\n text.textAlign = 'center';\n text.textBaseline = 'middle';\n })];\n });\n });\n };\n HistogramSeries.prototype.updateLabelNodes = function (opts) {\n return __awaiter$4(this, void 0, void 0, function () {\n var labelSelection, labelEnabled;\n return __generator$4(this, function (_a) {\n labelSelection = opts.labelSelection;\n labelEnabled = this.label.enabled;\n labelSelection.each(function (text, datum) {\n var label = datum.label;\n if (label && labelEnabled) {\n text.text = label.text;\n text.x = label.x;\n text.y = label.y;\n text.fontStyle = label.fontStyle;\n text.fontWeight = label.fontWeight;\n text.fontSize = label.fontSize;\n text.fontFamily = label.fontFamily;\n text.fill = label.fill;\n text.visible = true;\n }\n else {\n text.visible = false;\n }\n });\n return [2 /*return*/];\n });\n });\n };\n HistogramSeries.prototype.getTooltipHtml = function (nodeDatum) {\n var _a = this, xKey = _a.xKey, _b = _a.yKey, yKey = _b === void 0 ? '' : _b, axes = _a.axes;\n var xAxis = axes[ChartAxisDirection.X];\n var yAxis = axes[ChartAxisDirection.Y];\n if (!xKey || !xAxis || !yAxis) {\n return '';\n }\n var _c = this, xName = _c.xName, yName = _c.yName, color = _c.fill, tooltip = _c.tooltip, aggregation = _c.aggregation, seriesId = _c.id;\n var tooltipRenderer = tooltip.renderer;\n var aggregatedValue = nodeDatum.aggregatedValue, frequency = nodeDatum.frequency, domain = nodeDatum.domain, _d = __read$w(nodeDatum.domain, 2), rangeMin = _d[0], rangeMax = _d[1];\n var title = sanitizeHtml(xName !== null && xName !== void 0 ? xName : xKey) + \": \" + xAxis.formatDatum(rangeMin) + \" - \" + xAxis.formatDatum(rangeMax);\n var content = yKey\n ? \"\" + sanitizeHtml(yName !== null && yName !== void 0 ? yName : yKey) + \" (\" + aggregation + \"): \" + yAxis.formatDatum(aggregatedValue) + \"
\"\n : '';\n content += \"Frequency: \" + frequency;\n var defaults = {\n title: title,\n backgroundColor: color,\n content: content,\n };\n if (tooltipRenderer) {\n return toTooltipHtml$1(tooltipRenderer({\n datum: {\n data: nodeDatum.datum,\n aggregatedValue: nodeDatum.aggregatedValue,\n domain: nodeDatum.domain,\n frequency: nodeDatum.frequency,\n },\n xKey: xKey,\n xValue: domain,\n xName: xName,\n yKey: yKey,\n yValue: aggregatedValue,\n yName: yName,\n color: color,\n title: title,\n seriesId: seriesId,\n }), defaults);\n }\n return toTooltipHtml$1(defaults);\n };\n HistogramSeries.prototype.getLegendData = function () {\n var _a;\n var _b = this, id = _b.id, data = _b.data, xKey = _b.xKey, yName = _b.yName, visible = _b.visible, fill = _b.fill, stroke = _b.stroke, fillOpacity = _b.fillOpacity, strokeOpacity = _b.strokeOpacity;\n if (!data || data.length === 0) {\n return [];\n }\n var legendData = [\n {\n legendType: 'category',\n id: id,\n itemId: xKey,\n seriesId: id,\n enabled: visible,\n label: {\n text: (_a = yName !== null && yName !== void 0 ? yName : xKey) !== null && _a !== void 0 ? _a : 'Frequency',\n },\n marker: {\n fill: fill !== null && fill !== void 0 ? fill : 'rgba(0, 0, 0, 0)',\n stroke: stroke !== null && stroke !== void 0 ? stroke : 'rgba(0, 0, 0, 0)',\n fillOpacity: fillOpacity,\n strokeOpacity: strokeOpacity,\n },\n },\n ];\n return legendData;\n };\n HistogramSeries.prototype.animateEmptyUpdateReady = function (_a) {\n var _this = this;\n var _b, _c;\n var datumSelections = _a.datumSelections, labelSelections = _a.labelSelections;\n var duration = (_c = (_b = this.ctx.animationManager) === null || _b === void 0 ? void 0 : _b.defaultOptions.duration) !== null && _c !== void 0 ? _c : 1000;\n var labelDuration = 200;\n var startingY = 0;\n datumSelections.forEach(function (datumSelection) {\n return datumSelection.each(function (_, datum) {\n startingY = Math.max(startingY, datum.height + datum.y);\n });\n });\n datumSelections.forEach(function (datumSelection) {\n datumSelection.each(function (rect, datum) {\n var _a;\n (_a = _this.ctx.animationManager) === null || _a === void 0 ? void 0 : _a.animateMany(_this.id + \"_empty-update-ready_\" + rect.id, [\n { from: startingY, to: datum.y },\n { from: 0, to: datum.height },\n ], {\n duration: duration,\n ease: easeOut,\n onUpdate: function (_a) {\n var _b = __read$w(_a, 2), y = _b[0], height = _b[1];\n rect.y = y;\n rect.height = height;\n rect.x = datum.x;\n rect.width = datum.width;\n },\n });\n });\n });\n labelSelections.forEach(function (labelSelection) {\n labelSelection.each(function (label) {\n var _a;\n (_a = _this.ctx.animationManager) === null || _a === void 0 ? void 0 : _a.animate(_this.id + \"_empty-update-ready_\" + label.id, {\n from: 0,\n to: 1,\n delay: duration,\n duration: labelDuration,\n onUpdate: function (opacity) {\n label.opacity = opacity;\n },\n });\n });\n });\n };\n HistogramSeries.prototype.animateReadyUpdate = function (_a) {\n var _this = this;\n var datumSelections = _a.datumSelections;\n datumSelections.forEach(function (datumSelection) {\n _this.resetSelectionRects(datumSelection);\n });\n };\n HistogramSeries.prototype.animateReadyHighlight = function (highlightSelection) {\n this.resetSelectionRects(highlightSelection);\n };\n HistogramSeries.prototype.animateReadyResize = function (_a) {\n var _this = this;\n var _b;\n var datumSelections = _a.datumSelections;\n (_b = this.ctx.animationManager) === null || _b === void 0 ? void 0 : _b.reset();\n datumSelections.forEach(function (datumSelection) {\n _this.resetSelectionRects(datumSelection);\n });\n };\n HistogramSeries.prototype.animateWaitingUpdateReady = function (_a) {\n var _this = this;\n var _b, _c, _d;\n var datumSelections = _a.datumSelections, labelSelections = _a.labelSelections;\n var processedData = this.processedData;\n var diff = (_b = processedData === null || processedData === void 0 ? void 0 : processedData.reduced) === null || _b === void 0 ? void 0 : _b.diff;\n if (!(diff === null || diff === void 0 ? void 0 : diff.changed)) {\n datumSelections.forEach(function (datumSelection) {\n _this.resetSelectionRects(datumSelection);\n });\n return;\n }\n var totalDuration = (_d = (_c = this.ctx.animationManager) === null || _c === void 0 ? void 0 : _c.defaultOptions.duration) !== null && _d !== void 0 ? _d : 1000;\n var labelDuration = 200;\n var sectionDuration = totalDuration;\n if (diff.added.length > 0 && diff.removed.length > 0) {\n sectionDuration = Math.floor(totalDuration / 3);\n }\n else if (diff.added.length > 0 || diff.removed.length > 0) {\n sectionDuration = Math.floor(totalDuration / 2);\n }\n var startingY = 0;\n datumSelections.forEach(function (datumSelection) {\n return datumSelection.each(function (_, datum) {\n startingY = Math.max(startingY, datum.height + datum.y);\n });\n });\n var addedIds = {};\n diff.added.forEach(function (d) {\n addedIds[d.join('_')] = true;\n });\n var removedIds = {};\n diff.removed.forEach(function (d) {\n removedIds[d.join('_')] = true;\n });\n datumSelections.forEach(function (datumSelection) {\n datumSelection.each(function (rect, datum) {\n var _a;\n var props = [\n { from: rect.x, to: datum.x },\n { from: rect.width, to: datum.width },\n { from: rect.y, to: datum.y },\n { from: rect.height, to: datum.height },\n ];\n var delay = diff.removed.length > 0 ? sectionDuration : 0;\n var cleanup = false;\n var datumId = datum.domain.join('_');\n var contextY = startingY;\n var contextHeight = 0;\n if (datumId !== undefined && addedIds[datumId] !== undefined) {\n props = [\n { from: datum.x, to: datum.x },\n { from: datum.width, to: datum.width },\n { from: contextY, to: datum.y },\n { from: contextHeight, to: datum.height },\n ];\n delay += sectionDuration;\n }\n else if (datumId !== undefined && removedIds[datumId] !== undefined) {\n props = [\n { from: rect.x, to: datum.x },\n { from: rect.width, to: datum.width },\n { from: datum.y, to: contextY },\n { from: datum.height, to: contextHeight },\n ];\n delay = 0;\n cleanup = true;\n }\n (_a = _this.ctx.animationManager) === null || _a === void 0 ? void 0 : _a.animateMany(_this.id + \"_waiting-update-ready_\" + rect.id, props, {\n disableInteractions: true,\n delay: delay,\n duration: sectionDuration,\n ease: easeOut,\n repeat: 0,\n onUpdate: function (_a) {\n var _b = __read$w(_a, 4), x = _b[0], width = _b[1], y = _b[2], height = _b[3];\n rect.x = x;\n rect.width = width;\n rect.y = y;\n rect.height = height;\n },\n onComplete: function () {\n if (cleanup)\n datumSelection.cleanup();\n },\n });\n });\n });\n labelSelections.forEach(function (labelSelection) {\n labelSelection.each(function (label) {\n var _a;\n label.opacity = 0;\n (_a = _this.ctx.animationManager) === null || _a === void 0 ? void 0 : _a.animate(_this.id + \"_waiting-update-ready_\" + label.id, {\n from: 0,\n to: 1,\n delay: totalDuration,\n duration: labelDuration,\n ease: linear,\n repeat: 0,\n onUpdate: function (opacity) {\n label.opacity = opacity;\n },\n });\n });\n });\n };\n HistogramSeries.prototype.resetSelectionRects = function (selection) {\n selection.each(function (rect, datum) {\n rect.x = datum.x;\n rect.y = datum.y;\n rect.width = datum.width;\n rect.height = datum.height;\n });\n };\n HistogramSeries.prototype.isLabelEnabled = function () {\n return this.label.enabled;\n };\n HistogramSeries.className = 'HistogramSeries';\n HistogramSeries.type = 'histogram';\n __decorate$1l([\n Validate(OPT_COLOR_STRING)\n ], HistogramSeries.prototype, \"fill\", void 0);\n __decorate$1l([\n Validate(OPT_COLOR_STRING)\n ], HistogramSeries.prototype, \"stroke\", void 0);\n __decorate$1l([\n Validate(NUMBER(0, 1))\n ], HistogramSeries.prototype, \"fillOpacity\", void 0);\n __decorate$1l([\n Validate(NUMBER(0, 1))\n ], HistogramSeries.prototype, \"strokeOpacity\", void 0);\n __decorate$1l([\n Validate(OPT_LINE_DASH)\n ], HistogramSeries.prototype, \"lineDash\", void 0);\n __decorate$1l([\n Validate(NUMBER(0))\n ], HistogramSeries.prototype, \"lineDashOffset\", void 0);\n __decorate$1l([\n Validate(OPT_STRING)\n ], HistogramSeries.prototype, \"xKey\", void 0);\n __decorate$1l([\n Validate(BOOLEAN)\n ], HistogramSeries.prototype, \"areaPlot\", void 0);\n __decorate$1l([\n Validate(OPT_ARRAY())\n ], HistogramSeries.prototype, \"bins\", void 0);\n __decorate$1l([\n Validate(HISTOGRAM_AGGREGATION)\n ], HistogramSeries.prototype, \"aggregation\", void 0);\n __decorate$1l([\n Validate(OPT_NUMBER(0))\n ], HistogramSeries.prototype, \"binCount\", void 0);\n __decorate$1l([\n Validate(OPT_STRING)\n ], HistogramSeries.prototype, \"xName\", void 0);\n __decorate$1l([\n Validate(OPT_STRING)\n ], HistogramSeries.prototype, \"yKey\", void 0);\n __decorate$1l([\n Validate(OPT_STRING)\n ], HistogramSeries.prototype, \"yName\", void 0);\n __decorate$1l([\n Validate(NUMBER(0))\n ], HistogramSeries.prototype, \"strokeWidth\", void 0);\n return HistogramSeries;\n}(CartesianSeries));\n\nvar __extends$1$ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$A = (undefined && undefined.__assign) || function () {\n __assign$A = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$A.apply(this, arguments);\n};\nvar __decorate$1k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter$3 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$3 = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read$v = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar LineSeriesLabel = /** @class */ (function (_super) {\n __extends$1$(LineSeriesLabel, _super);\n function LineSeriesLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.formatter = undefined;\n return _this;\n }\n __decorate$1k([\n Validate(OPT_FUNCTION)\n ], LineSeriesLabel.prototype, \"formatter\", void 0);\n return LineSeriesLabel;\n}(Label$1));\nvar LineSeriesTooltip = /** @class */ (function (_super) {\n __extends$1$(LineSeriesTooltip, _super);\n function LineSeriesTooltip() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.renderer = undefined;\n _this.format = undefined;\n return _this;\n }\n __decorate$1k([\n Validate(OPT_FUNCTION)\n ], LineSeriesTooltip.prototype, \"renderer\", void 0);\n __decorate$1k([\n Validate(OPT_STRING)\n ], LineSeriesTooltip.prototype, \"format\", void 0);\n return LineSeriesTooltip;\n}(SeriesTooltip));\nvar LineSeries = /** @class */ (function (_super) {\n __extends$1$(LineSeries, _super);\n function LineSeries(moduleCtx) {\n var _this = _super.call(this, {\n moduleCtx: moduleCtx,\n hasMarkers: true,\n pickModes: [\n SeriesNodePickMode.NEAREST_BY_MAIN_CATEGORY_AXIS_FIRST,\n SeriesNodePickMode.NEAREST_NODE,\n SeriesNodePickMode.EXACT_SHAPE_MATCH,\n ],\n }) || this;\n _this.marker = new CartesianSeriesMarker();\n _this.label = new LineSeriesLabel();\n _this.title = undefined;\n _this.stroke = '#874349';\n _this.lineDash = [0];\n _this.lineDashOffset = 0;\n _this.strokeWidth = 2;\n _this.strokeOpacity = 1;\n _this.tooltip = new LineSeriesTooltip();\n _this.xKey = undefined;\n _this.xName = undefined;\n _this.yKey = undefined;\n _this.yName = undefined;\n var _a = _this, marker = _a.marker, label = _a.label;\n marker.fill = '#c16068';\n marker.stroke = '#874349';\n label.enabled = false;\n return _this;\n }\n LineSeries.prototype.processData = function (dataController) {\n return __awaiter$3(this, void 0, void 0, function () {\n var _a, axes, _b, xKey, _c, yKey, data, xAxis, yAxis, isContinuousX, isContinuousY, _d, dataModel, processedData;\n return __generator$3(this, function (_e) {\n switch (_e.label) {\n case 0:\n _a = this, axes = _a.axes, _b = _a.xKey, xKey = _b === void 0 ? '' : _b, _c = _a.yKey, yKey = _c === void 0 ? '' : _c;\n data = xKey && yKey && this.data ? this.data : [];\n xAxis = axes[ChartAxisDirection.X];\n yAxis = axes[ChartAxisDirection.Y];\n isContinuousX = (xAxis === null || xAxis === void 0 ? void 0 : xAxis.scale) instanceof ContinuousScale;\n isContinuousY = (yAxis === null || yAxis === void 0 ? void 0 : yAxis.scale) instanceof ContinuousScale;\n return [4 /*yield*/, dataController.request(this.id, data !== null && data !== void 0 ? data : [], {\n props: [\n valueProperty(this, xKey, isContinuousX, { id: 'xValue' }),\n valueProperty(this, yKey, isContinuousY, { id: 'yValue', invalidValue: undefined }),\n ],\n dataVisible: this.visible,\n })];\n case 1:\n _d = _e.sent(), dataModel = _d.dataModel, processedData = _d.processedData;\n this.dataModel = dataModel;\n this.processedData = processedData;\n return [2 /*return*/];\n }\n });\n });\n };\n LineSeries.prototype.getDomain = function (direction) {\n var _a = this, axes = _a.axes, dataModel = _a.dataModel, processedData = _a.processedData;\n if (!processedData || !dataModel)\n return [];\n var xAxis = axes[ChartAxisDirection.X];\n var yAxis = axes[ChartAxisDirection.Y];\n var xDef = dataModel.resolveProcessedDataDefById(this, \"xValue\");\n if (direction === ChartAxisDirection.X) {\n var domain = dataModel.getDomain(this, \"xValue\", 'value', processedData);\n if ((xDef === null || xDef === void 0 ? void 0 : xDef.def.type) === 'value' && xDef.def.valueType === 'category') {\n return domain;\n }\n return this.fixNumericExtent(extent$4(domain), xAxis);\n }\n else {\n var domain = dataModel.getDomain(this, \"yValue\", 'value', processedData);\n return this.fixNumericExtent(domain, yAxis);\n }\n };\n LineSeries.prototype.createNodeData = function () {\n var _a, _b, _c, _d, _e;\n return __awaiter$3(this, void 0, void 0, function () {\n var _f, processedData, dataModel, axes, _g, markerEnabled, markerSize, strokeWidth, callbackCache, xAxis, yAxis, _h, label, _j, yKey, _k, xKey, seriesId, xScale, yScale, xOffset, yOffset, nodeData, size, xIdx, yIdx, moveTo, prevXInRange, nextPoint, actualLength, i, _l, datum, values, xDatum, yDatum, x, tolerance, nextXDatum, xInRange, nextXInRange, y, labelText;\n return __generator$3(this, function (_m) {\n _f = this, processedData = _f.processedData, dataModel = _f.dataModel, axes = _f.axes, _g = _f.marker, markerEnabled = _g.enabled, markerSize = _g.size, strokeWidth = _g.strokeWidth, callbackCache = _f.ctx.callbackCache;\n xAxis = axes[ChartAxisDirection.X];\n yAxis = axes[ChartAxisDirection.Y];\n if (!processedData || !dataModel || !xAxis || !yAxis) {\n return [2 /*return*/, []];\n }\n _h = this, label = _h.label, _j = _h.yKey, yKey = _j === void 0 ? '' : _j, _k = _h.xKey, xKey = _k === void 0 ? '' : _k, seriesId = _h.id;\n xScale = xAxis.scale;\n yScale = yAxis.scale;\n xOffset = ((_a = xScale.bandwidth) !== null && _a !== void 0 ? _a : 0) / 2;\n yOffset = ((_b = yScale.bandwidth) !== null && _b !== void 0 ? _b : 0) / 2;\n nodeData = new Array(processedData.data.length);\n size = markerEnabled ? markerSize : 0;\n xIdx = dataModel.resolveProcessedDataIndexById(this, \"xValue\").index;\n yIdx = dataModel.resolveProcessedDataIndexById(this, \"yValue\").index;\n moveTo = true;\n prevXInRange = undefined;\n nextPoint = undefined;\n actualLength = 0;\n for (i = 0; i < processedData.data.length; i++) {\n _l = nextPoint !== null && nextPoint !== void 0 ? nextPoint : processedData.data[i], datum = _l.datum, values = _l.values;\n xDatum = values[xIdx];\n yDatum = values[yIdx];\n if (yDatum === undefined) {\n prevXInRange = undefined;\n moveTo = true;\n }\n else {\n x = xScale.convert(xDatum) + xOffset;\n if (isNaN(x)) {\n prevXInRange = undefined;\n moveTo = true;\n nextPoint = undefined;\n continue;\n }\n tolerance = ((_c = xScale.bandwidth) !== null && _c !== void 0 ? _c : markerSize * 0.5 + (strokeWidth !== null && strokeWidth !== void 0 ? strokeWidth : 0)) + 1;\n nextPoint =\n ((_d = processedData.data[i + 1]) === null || _d === void 0 ? void 0 : _d.values[yIdx]) === undefined ? undefined : processedData.data[i + 1];\n nextXDatum = (_e = processedData.data[i + 1]) === null || _e === void 0 ? void 0 : _e.values[xIdx];\n xInRange = xAxis.inRangeEx(x, 0, tolerance);\n nextXInRange = nextPoint && xAxis.inRangeEx(xScale.convert(nextXDatum) + xOffset, 0, tolerance);\n if (xInRange === -1 && nextXInRange === -1) {\n moveTo = true;\n continue;\n }\n if (xInRange === 1 && prevXInRange === 1) {\n moveTo = true;\n continue;\n }\n prevXInRange = xInRange;\n y = yScale.convert(yDatum) + yOffset;\n labelText = void 0;\n if (label.formatter) {\n labelText = callbackCache.call(label.formatter, { value: yDatum, seriesId: seriesId });\n }\n if (labelText !== undefined) ;\n else if (typeof yDatum === 'number' && isFinite(yDatum)) {\n labelText = yDatum.toFixed(2);\n }\n else if (yDatum) {\n labelText = String(yDatum);\n }\n nodeData[actualLength++] = {\n series: this,\n datum: datum,\n yKey: yKey,\n xKey: xKey,\n point: { x: x, y: y, moveTo: moveTo, size: size },\n nodeMidPoint: { x: x, y: y },\n yValue: yDatum,\n xValue: xDatum,\n label: labelText\n ? {\n text: labelText,\n fontStyle: label.fontStyle,\n fontWeight: label.fontWeight,\n fontSize: label.fontSize,\n fontFamily: label.fontFamily,\n textAlign: 'center',\n textBaseline: 'bottom',\n fill: label.color,\n }\n : undefined,\n };\n moveTo = false;\n }\n }\n nodeData.length = actualLength;\n return [2 /*return*/, [{ itemId: yKey, nodeData: nodeData, labelData: nodeData }]];\n });\n });\n };\n LineSeries.prototype.isPathOrSelectionDirty = function () {\n return this.marker.isDirty();\n };\n LineSeries.prototype.markerFactory = function () {\n var shape = this.marker.shape;\n var MarkerShape = getMarker$1(shape);\n return new MarkerShape();\n };\n LineSeries.prototype.updateMarkerSelection = function (opts) {\n return __awaiter$3(this, void 0, void 0, function () {\n var nodeData, markerSelection, _a, shape, enabled;\n return __generator$3(this, function (_b) {\n nodeData = opts.nodeData;\n markerSelection = opts.markerSelection;\n _a = this.marker, shape = _a.shape, enabled = _a.enabled;\n nodeData = shape && enabled ? nodeData : [];\n if (this.marker.isDirty()) {\n markerSelection.clear();\n }\n return [2 /*return*/, markerSelection.update(nodeData)];\n });\n });\n };\n LineSeries.prototype.updateMarkerNodes = function (opts) {\n var _a;\n return __awaiter$3(this, void 0, void 0, function () {\n var markerSelection, isDatumHighlighted, _b, marker, markerFillOpacity, _c, xKey, _d, yKey, lineStroke, strokeOpacity, _e, highlightedFill, _f, highlightFillOpacity, highlightedStroke, highlightedDatumStrokeWidth, seriesId, callbackCache, size, formatter, markerStrokeWidth, customMarker;\n return __generator$3(this, function (_g) {\n markerSelection = opts.markerSelection, isDatumHighlighted = opts.isHighlight;\n _b = this, marker = _b.marker, markerFillOpacity = _b.marker.fillOpacity, _c = _b.xKey, xKey = _c === void 0 ? '' : _c, _d = _b.yKey, yKey = _d === void 0 ? '' : _d, lineStroke = _b.stroke, strokeOpacity = _b.strokeOpacity, _e = _b.highlightStyle.item, highlightedFill = _e.fill, _f = _e.fillOpacity, highlightFillOpacity = _f === void 0 ? markerFillOpacity : _f, highlightedStroke = _e.stroke, highlightedDatumStrokeWidth = _e.strokeWidth, seriesId = _b.id, callbackCache = _b.ctx.callbackCache;\n size = marker.size, formatter = marker.formatter;\n markerStrokeWidth = (_a = marker.strokeWidth) !== null && _a !== void 0 ? _a : this.strokeWidth;\n customMarker = typeof marker.shape === 'function';\n markerSelection.each(function (node, datum) {\n var _a, _b, _c, _d, _e, _f, _g;\n var fill = isDatumHighlighted && highlightedFill !== undefined ? highlightedFill : marker.fill;\n var fillOpacity = isDatumHighlighted ? highlightFillOpacity : markerFillOpacity;\n var stroke = isDatumHighlighted && highlightedStroke !== undefined ? highlightedStroke : (_a = marker.stroke) !== null && _a !== void 0 ? _a : lineStroke;\n var strokeWidth = isDatumHighlighted && highlightedDatumStrokeWidth !== undefined\n ? highlightedDatumStrokeWidth\n : markerStrokeWidth;\n var format = undefined;\n if (formatter) {\n format = callbackCache.call(formatter, {\n datum: datum.datum,\n xKey: xKey,\n yKey: yKey,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n size: size,\n highlighted: isDatumHighlighted,\n seriesId: seriesId,\n });\n }\n node.fill = (_b = format === null || format === void 0 ? void 0 : format.fill) !== null && _b !== void 0 ? _b : fill;\n node.stroke = (_c = format === null || format === void 0 ? void 0 : format.stroke) !== null && _c !== void 0 ? _c : stroke;\n node.strokeWidth = (_d = format === null || format === void 0 ? void 0 : format.strokeWidth) !== null && _d !== void 0 ? _d : strokeWidth;\n node.fillOpacity = fillOpacity !== null && fillOpacity !== void 0 ? fillOpacity : 1;\n node.strokeOpacity = (_f = (_e = marker.strokeOpacity) !== null && _e !== void 0 ? _e : strokeOpacity) !== null && _f !== void 0 ? _f : 1;\n node.size = (_g = format === null || format === void 0 ? void 0 : format.size) !== null && _g !== void 0 ? _g : size;\n node.translationX = datum.point.x;\n node.translationY = datum.point.y;\n node.visible = node.size > 0 && !isNaN(datum.point.x) && !isNaN(datum.point.y);\n if (!customMarker || node.dirtyPath) {\n return;\n }\n // Only for cutom marker shapes\n node.path.clear({ trackChanges: true });\n node.updatePath();\n node.checkPathDirty();\n });\n if (!isDatumHighlighted) {\n this.marker.markClean();\n }\n return [2 /*return*/];\n });\n });\n };\n LineSeries.prototype.updateLabelSelection = function (opts) {\n return __awaiter$3(this, void 0, void 0, function () {\n var labelData, labelSelection, _a, shape, enabled;\n return __generator$3(this, function (_b) {\n labelData = opts.labelData;\n labelSelection = opts.labelSelection;\n _a = this.marker, shape = _a.shape, enabled = _a.enabled;\n labelData = shape && enabled ? labelData : [];\n return [2 /*return*/, labelSelection.update(labelData)];\n });\n });\n };\n LineSeries.prototype.updateLabelNodes = function (opts) {\n return __awaiter$3(this, void 0, void 0, function () {\n var labelSelection, _a, labelEnabled, fontStyle, fontWeight, fontSize, fontFamily, color;\n return __generator$3(this, function (_b) {\n labelSelection = opts.labelSelection;\n _a = this.label, labelEnabled = _a.enabled, fontStyle = _a.fontStyle, fontWeight = _a.fontWeight, fontSize = _a.fontSize, fontFamily = _a.fontFamily, color = _a.color;\n labelSelection.each(function (text, datum) {\n var point = datum.point, label = datum.label;\n if (datum && label && labelEnabled) {\n text.fontStyle = fontStyle;\n text.fontWeight = fontWeight;\n text.fontSize = fontSize;\n text.fontFamily = fontFamily;\n text.textAlign = label.textAlign;\n text.textBaseline = label.textBaseline;\n text.text = label.text;\n text.x = point.x;\n text.y = point.y - 10;\n text.fill = color;\n text.visible = true;\n }\n else {\n text.visible = false;\n }\n });\n return [2 /*return*/];\n });\n });\n };\n LineSeries.prototype.getNodeClickEvent = function (event, datum) {\n var _a, _b;\n return new CartesianSeriesNodeClickEvent((_a = this.xKey) !== null && _a !== void 0 ? _a : '', (_b = this.yKey) !== null && _b !== void 0 ? _b : '', event, datum, this);\n };\n LineSeries.prototype.getNodeDoubleClickEvent = function (event, datum) {\n var _a, _b;\n return new CartesianSeriesNodeDoubleClickEvent((_a = this.xKey) !== null && _a !== void 0 ? _a : '', (_b = this.yKey) !== null && _b !== void 0 ? _b : '', event, datum, this);\n };\n LineSeries.prototype.getTooltipHtml = function (nodeDatum) {\n var _a, _b;\n var _c = this, xKey = _c.xKey, yKey = _c.yKey, axes = _c.axes;\n var xAxis = axes[ChartAxisDirection.X];\n var yAxis = axes[ChartAxisDirection.Y];\n if (!xKey || !yKey || !xAxis || !yAxis) {\n return '';\n }\n var _d = this, xName = _d.xName, yName = _d.yName, tooltip = _d.tooltip, marker = _d.marker, seriesId = _d.id;\n var tooltipRenderer = tooltip.renderer, tooltipFormat = tooltip.format;\n var datum = nodeDatum.datum, xValue = nodeDatum.xValue, yValue = nodeDatum.yValue;\n var xString = xAxis.formatDatum(xValue);\n var yString = yAxis.formatDatum(yValue);\n var title = sanitizeHtml((_a = this.title) !== null && _a !== void 0 ? _a : yName);\n var content = sanitizeHtml(xString + ': ' + yString);\n var markerFormatter = marker.formatter, fill = marker.fill, stroke = marker.stroke, markerStrokeWidth = marker.strokeWidth, size = marker.size;\n var strokeWidth = markerStrokeWidth !== null && markerStrokeWidth !== void 0 ? markerStrokeWidth : this.strokeWidth;\n var format = undefined;\n if (markerFormatter) {\n format = markerFormatter({\n datum: datum,\n xKey: xKey,\n yKey: yKey,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n size: size,\n highlighted: false,\n seriesId: seriesId,\n });\n }\n var color = (_b = format === null || format === void 0 ? void 0 : format.fill) !== null && _b !== void 0 ? _b : fill;\n var defaults = {\n title: title,\n backgroundColor: color,\n content: content,\n };\n if (tooltipFormat || tooltipRenderer) {\n var params = {\n datum: datum,\n xKey: xKey,\n xValue: xValue,\n xName: xName,\n yKey: yKey,\n yValue: yValue,\n yName: yName,\n title: title,\n color: color,\n seriesId: seriesId,\n };\n if (tooltipFormat) {\n return toTooltipHtml$1({\n content: interpolate(tooltipFormat, params),\n }, defaults);\n }\n if (tooltipRenderer) {\n return toTooltipHtml$1(tooltipRenderer(params), defaults);\n }\n }\n return toTooltipHtml$1(defaults);\n };\n LineSeries.prototype.getLegendData = function () {\n var _a, _b, _c, _d, _e, _f, _g;\n var _h = this, id = _h.id, data = _h.data, xKey = _h.xKey, yKey = _h.yKey, yName = _h.yName, visible = _h.visible, title = _h.title, marker = _h.marker, stroke = _h.stroke, strokeOpacity = _h.strokeOpacity;\n if (!((data === null || data === void 0 ? void 0 : data.length) && xKey && yKey)) {\n return [];\n }\n var legendData = [\n {\n legendType: 'category',\n id: id,\n itemId: yKey,\n seriesId: id,\n enabled: visible,\n label: {\n text: (_a = title !== null && title !== void 0 ? title : yName) !== null && _a !== void 0 ? _a : yKey,\n },\n marker: {\n shape: marker.shape,\n fill: (_b = marker.fill) !== null && _b !== void 0 ? _b : 'rgba(0, 0, 0, 0)',\n stroke: (_d = (_c = marker.stroke) !== null && _c !== void 0 ? _c : stroke) !== null && _d !== void 0 ? _d : 'rgba(0, 0, 0, 0)',\n fillOpacity: (_e = marker.fillOpacity) !== null && _e !== void 0 ? _e : 1,\n strokeOpacity: (_g = (_f = marker.strokeOpacity) !== null && _f !== void 0 ? _f : strokeOpacity) !== null && _g !== void 0 ? _g : 1,\n },\n },\n ];\n return legendData;\n };\n LineSeries.prototype.animateEmptyUpdateReady = function (_a) {\n var _this = this;\n var markerSelections = _a.markerSelections, labelSelections = _a.labelSelections, contextData = _a.contextData, paths = _a.paths;\n contextData.forEach(function (_a, contextDataIndex) {\n var _b, _c, _d;\n var nodeData = _a.nodeData;\n var _e = __read$v(paths[contextDataIndex], 1), lineNode = _e[0];\n var linePath = lineNode.path;\n var nodeLengths = [0];\n var lineLength = nodeData.reduce(function (sum, datum, index) {\n if (index === 0)\n return sum;\n var prev = nodeData[index - 1];\n if (isNaN(datum.point.x) || isNaN(datum.point.y) || isNaN(prev.point.x) || isNaN(prev.point.y)) {\n nodeLengths.push(sum);\n return sum;\n }\n var length = Math.sqrt(Math.pow(datum.point.x - prev.point.x, 2) + Math.pow(datum.point.y - prev.point.y, 2));\n nodeLengths.push(sum + length);\n return sum + length;\n }, 0);\n lineNode.fill = undefined;\n lineNode.lineJoin = 'round';\n lineNode.pointerEvents = PointerEvents.None;\n lineNode.stroke = _this.stroke;\n lineNode.strokeWidth = _this.getStrokeWidth(_this.strokeWidth);\n lineNode.strokeOpacity = _this.strokeOpacity;\n lineNode.lineDash = _this.lineDash;\n lineNode.lineDashOffset = _this.lineDashOffset;\n var duration = (_c = (_b = _this.ctx.animationManager) === null || _b === void 0 ? void 0 : _b.defaultOptions.duration) !== null && _c !== void 0 ? _c : 1000;\n var markerDuration = 200;\n var animationOptions = {\n from: 0,\n to: lineLength,\n };\n (_d = _this.ctx.animationManager) === null || _d === void 0 ? void 0 : _d.animate(_this.id + \"_empty-update-ready\", __assign$A(__assign$A({}, animationOptions), { duration: duration, onUpdate: function (length) {\n linePath.clear({ trackChanges: true });\n nodeData.forEach(function (datum, index) {\n if (nodeLengths[index] <= length) {\n // Draw/move the full segment if past the end of this segment\n if (datum.point.moveTo) {\n linePath.moveTo(datum.point.x, datum.point.y);\n }\n else {\n linePath.lineTo(datum.point.x, datum.point.y);\n }\n }\n else if (index > 0 && nodeLengths[index - 1] < length) {\n // Draw/move partial line if in between the start and end of this segment\n var start = nodeData[index - 1].point;\n var end = datum.point;\n var segmentLength = nodeLengths[index] - nodeLengths[index - 1];\n var remainingLength = nodeLengths[index] - length;\n var ratio = (segmentLength - remainingLength) / segmentLength;\n var x = (1 - ratio) * start.x + ratio * end.x;\n var y = (1 - ratio) * start.y + ratio * end.y;\n if (datum.point.moveTo) {\n linePath.moveTo(x, y);\n }\n else {\n linePath.lineTo(x, y);\n }\n }\n });\n lineNode.checkPathDirty();\n } }));\n markerSelections[contextDataIndex].each(function (marker, datum, index) {\n var _a, _b, _c, _d;\n var delay = lineLength > 0 ? (nodeLengths[index] / lineLength) * duration : 0;\n var format = _this.animateFormatter(datum);\n var size = (_b = (_a = datum.point) === null || _a === void 0 ? void 0 : _a.size) !== null && _b !== void 0 ? _b : 0;\n (_c = _this.ctx.animationManager) === null || _c === void 0 ? void 0 : _c.animate(_this.id + \"_empty-update-ready_\" + marker.id, __assign$A(__assign$A({}, animationOptions), { to: (_d = format === null || format === void 0 ? void 0 : format.size) !== null && _d !== void 0 ? _d : size, delay: delay, duration: markerDuration, onUpdate: function (size) {\n marker.size = size;\n } }));\n });\n labelSelections[contextDataIndex].each(function (label, _, index) {\n var _a;\n var delay = (nodeLengths[index] / lineLength) * duration;\n (_a = _this.ctx.animationManager) === null || _a === void 0 ? void 0 : _a.animate(_this.id + \"_empty-update-ready_\" + label.id, {\n from: 0,\n to: 1,\n delay: delay,\n duration: markerDuration,\n onUpdate: function (opacity) {\n label.opacity = opacity;\n },\n });\n });\n });\n };\n LineSeries.prototype.animateReadyUpdate = function (data) {\n this.resetMarkersAndPaths(data);\n };\n LineSeries.prototype.animateReadyResize = function (data) {\n var _a;\n (_a = this.ctx.animationManager) === null || _a === void 0 ? void 0 : _a.reset();\n this.resetMarkersAndPaths(data);\n };\n LineSeries.prototype.resetMarkersAndPaths = function (_a) {\n var _this = this;\n var markerSelections = _a.markerSelections, contextData = _a.contextData, paths = _a.paths;\n contextData.forEach(function (_a, contextDataIndex) {\n var nodeData = _a.nodeData;\n var _b = __read$v(paths[contextDataIndex], 1), lineNode = _b[0];\n var linePath = lineNode.path;\n lineNode.stroke = _this.stroke;\n lineNode.strokeWidth = _this.getStrokeWidth(_this.strokeWidth);\n lineNode.strokeOpacity = _this.strokeOpacity;\n lineNode.lineDash = _this.lineDash;\n lineNode.lineDashOffset = _this.lineDashOffset;\n linePath.clear({ trackChanges: true });\n nodeData.forEach(function (datum) {\n if (datum.point.moveTo) {\n linePath.moveTo(datum.point.x, datum.point.y);\n }\n else {\n linePath.lineTo(datum.point.x, datum.point.y);\n }\n });\n lineNode.checkPathDirty();\n markerSelections[contextDataIndex].each(function (marker, datum) {\n var _a, _b, _c;\n var format = _this.animateFormatter(datum);\n var size = (_b = (_a = datum.point) === null || _a === void 0 ? void 0 : _a.size) !== null && _b !== void 0 ? _b : 0;\n marker.size = (_c = format === null || format === void 0 ? void 0 : format.size) !== null && _c !== void 0 ? _c : size;\n });\n });\n };\n LineSeries.prototype.animateFormatter = function (datum) {\n var _a, _b;\n var _c = this, marker = _c.marker, _d = _c.xKey, xKey = _d === void 0 ? '' : _d, _e = _c.yKey, yKey = _e === void 0 ? '' : _e, lineStroke = _c.stroke, seriesId = _c.id, callbackCache = _c.ctx.callbackCache;\n var size = marker.size, formatter = marker.formatter;\n var fill = marker.fill;\n var stroke = (_a = marker.stroke) !== null && _a !== void 0 ? _a : lineStroke;\n var strokeWidth = (_b = marker.strokeWidth) !== null && _b !== void 0 ? _b : this.strokeWidth;\n var format = undefined;\n if (formatter) {\n format = callbackCache.call(formatter, {\n datum: datum.datum,\n xKey: xKey,\n yKey: yKey,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n size: size,\n highlighted: false,\n seriesId: seriesId,\n });\n }\n return format;\n };\n LineSeries.prototype.isLabelEnabled = function () {\n return this.label.enabled;\n };\n LineSeries.className = 'LineSeries';\n LineSeries.type = 'line';\n __decorate$1k([\n Validate(OPT_STRING)\n ], LineSeries.prototype, \"title\", void 0);\n __decorate$1k([\n Validate(OPT_COLOR_STRING)\n ], LineSeries.prototype, \"stroke\", void 0);\n __decorate$1k([\n Validate(OPT_LINE_DASH)\n ], LineSeries.prototype, \"lineDash\", void 0);\n __decorate$1k([\n Validate(NUMBER(0))\n ], LineSeries.prototype, \"lineDashOffset\", void 0);\n __decorate$1k([\n Validate(NUMBER(0))\n ], LineSeries.prototype, \"strokeWidth\", void 0);\n __decorate$1k([\n Validate(NUMBER(0, 1))\n ], LineSeries.prototype, \"strokeOpacity\", void 0);\n __decorate$1k([\n Validate(OPT_STRING)\n ], LineSeries.prototype, \"xKey\", void 0);\n __decorate$1k([\n Validate(OPT_STRING)\n ], LineSeries.prototype, \"xName\", void 0);\n __decorate$1k([\n Validate(OPT_STRING)\n ], LineSeries.prototype, \"yKey\", void 0);\n __decorate$1k([\n Validate(OPT_STRING)\n ], LineSeries.prototype, \"yName\", void 0);\n return LineSeries;\n}(CartesianSeries));\n\nvar ColorScale = /** @class */ (function () {\n function ColorScale() {\n this.domain = [0, 1];\n this.range = ['red', 'blue'];\n this.parsedRange = this.range.map(function (v) { return Color.fromString(v); });\n }\n ColorScale.prototype.update = function () {\n var _a = this, domain = _a.domain, range = _a.range;\n if (domain.length < 2) {\n Logger.warnOnce('`colorDomain` should have at least 2 values.');\n if (domain.length === 0) {\n domain.push(0, 1);\n }\n else if (domain.length === 1) {\n domain.push(domain[0] + 1);\n }\n }\n for (var i = 1; i < domain.length; i++) {\n var a = domain[i - 1];\n var b = domain[i];\n if (a >= b) {\n Logger.warnOnce('`colorDomain` values should be supplied in ascending order.');\n domain.sort(function (a, b) { return a - b; });\n break;\n }\n }\n var isSmallRange = range.length < domain.length;\n if (isSmallRange || (domain.length > 2 && range.length > domain.length)) {\n Logger.warnOnce('Number of elements in `colorRange` needs to match the number of elements in `colorDomain`.');\n if (isSmallRange) {\n for (var i = range.length; i < domain.length; i++) {\n range.push('black');\n }\n }\n else {\n range.splice(domain.length);\n }\n }\n this.parsedRange = this.range.map(function (v) { return Color.fromString(v); });\n };\n ColorScale.prototype.convert = function (x) {\n var _a = this, domain = _a.domain, range = _a.range, parsedRange = _a.parsedRange;\n var d0 = domain[0];\n var d1 = domain[domain.length - 1];\n var r0 = range[0];\n var r1 = range[range.length - 1];\n if (x <= d0) {\n return r0;\n }\n if (x >= d1) {\n return r1;\n }\n var index;\n var q;\n if (domain.length === 2) {\n var t = (x - d0) / (d1 - d0);\n var step = 1 / (range.length - 1);\n index = range.length <= 2 ? 0 : Math.min(Math.floor(t * (range.length - 1)), range.length - 2);\n q = (t - index * step) / step;\n }\n else {\n for (index = 0; index < domain.length - 2; index++) {\n if (x < domain[index + 1]) {\n break;\n }\n }\n var a = domain[index];\n var b = domain[index + 1];\n q = (x - a) / (b - a);\n }\n var c0 = parsedRange[index];\n var c1 = parsedRange[index + 1];\n return interpolateColor(c0, c1)(q);\n };\n return ColorScale;\n}());\n\nvar __extends$1_ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$z = (undefined && undefined.__assign) || function () {\n __assign$z = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$z.apply(this, arguments);\n};\nvar __decorate$1j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter$2 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$2 = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read$u = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$h = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar __values$g = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar ScatterSeriesLabel = /** @class */ (function (_super) {\n __extends$1_(ScatterSeriesLabel, _super);\n function ScatterSeriesLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.formatter = undefined;\n return _this;\n }\n __decorate$1j([\n Validate(OPT_FUNCTION)\n ], ScatterSeriesLabel.prototype, \"formatter\", void 0);\n return ScatterSeriesLabel;\n}(Label$1));\nvar ScatterSeriesNodeBaseClickEvent = /** @class */ (function (_super) {\n __extends$1_(ScatterSeriesNodeBaseClickEvent, _super);\n function ScatterSeriesNodeBaseClickEvent(sizeKey, xKey, yKey, nativeEvent, datum, series) {\n var _this = _super.call(this, xKey, yKey, nativeEvent, datum, series) || this;\n _this.sizeKey = sizeKey;\n return _this;\n }\n return ScatterSeriesNodeBaseClickEvent;\n}(CartesianSeriesNodeBaseClickEvent));\nvar ScatterSeriesNodeClickEvent = /** @class */ (function (_super) {\n __extends$1_(ScatterSeriesNodeClickEvent, _super);\n function ScatterSeriesNodeClickEvent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'nodeClick';\n return _this;\n }\n return ScatterSeriesNodeClickEvent;\n}(ScatterSeriesNodeBaseClickEvent));\nvar ScatterSeriesNodeDoubleClickEvent = /** @class */ (function (_super) {\n __extends$1_(ScatterSeriesNodeDoubleClickEvent, _super);\n function ScatterSeriesNodeDoubleClickEvent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'nodeDoubleClick';\n return _this;\n }\n return ScatterSeriesNodeDoubleClickEvent;\n}(ScatterSeriesNodeBaseClickEvent));\nvar ScatterSeriesTooltip = /** @class */ (function (_super) {\n __extends$1_(ScatterSeriesTooltip, _super);\n function ScatterSeriesTooltip() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.renderer = undefined;\n return _this;\n }\n __decorate$1j([\n Validate(OPT_FUNCTION)\n ], ScatterSeriesTooltip.prototype, \"renderer\", void 0);\n return ScatterSeriesTooltip;\n}(SeriesTooltip));\nvar ScatterSeries = /** @class */ (function (_super) {\n __extends$1_(ScatterSeries, _super);\n function ScatterSeries(moduleCtx) {\n var _this = _super.call(this, {\n moduleCtx: moduleCtx,\n pickModes: [\n SeriesNodePickMode.NEAREST_BY_MAIN_CATEGORY_AXIS_FIRST,\n SeriesNodePickMode.NEAREST_NODE,\n SeriesNodePickMode.EXACT_SHAPE_MATCH,\n ],\n pathsPerSeries: 0,\n hasMarkers: true,\n }) || this;\n _this.sizeScale = new LinearScale$1();\n _this.marker = new CartesianSeriesMarker();\n _this.label = new ScatterSeriesLabel();\n _this.title = undefined;\n _this.labelKey = undefined;\n _this.xName = undefined;\n _this.yName = undefined;\n _this.sizeName = 'Size';\n _this.labelName = 'Label';\n _this.xKey = undefined;\n _this.yKey = undefined;\n _this.sizeKey = undefined;\n _this.colorKey = undefined;\n _this.colorName = 'Color';\n _this.colorDomain = undefined;\n _this.colorRange = ['#ffff00', '#00ff00', '#0000ff'];\n _this.colorScale = new ColorScale();\n _this.tooltip = new ScatterSeriesTooltip();\n var label = _this.label;\n label.enabled = false;\n return _this;\n }\n ScatterSeries.prototype.processData = function (dataController) {\n var _a, _b;\n return __awaiter$2(this, void 0, void 0, function () {\n var _c, _d, xKey, _e, yKey, sizeKey, labelKey, axes, marker, data, xAxis, yAxis, isContinuousX, isContinuousY, _f, colorScale, colorDomain, colorRange, colorKey, _g, dataModel, processedData, sizeKeyIdx, processedSize, colorKeyIdx;\n return __generator$2(this, function (_h) {\n switch (_h.label) {\n case 0:\n _c = this, _d = _c.xKey, xKey = _d === void 0 ? '' : _d, _e = _c.yKey, yKey = _e === void 0 ? '' : _e, sizeKey = _c.sizeKey, labelKey = _c.labelKey, axes = _c.axes, marker = _c.marker, data = _c.data;\n xAxis = axes[ChartAxisDirection.X];\n yAxis = axes[ChartAxisDirection.Y];\n isContinuousX = (xAxis === null || xAxis === void 0 ? void 0 : xAxis.scale) instanceof ContinuousScale;\n isContinuousY = (yAxis === null || yAxis === void 0 ? void 0 : yAxis.scale) instanceof ContinuousScale;\n _f = this, colorScale = _f.colorScale, colorDomain = _f.colorDomain, colorRange = _f.colorRange, colorKey = _f.colorKey;\n return [4 /*yield*/, dataController.request(this.id, data !== null && data !== void 0 ? data : [], {\n props: __spreadArray$h(__spreadArray$h(__spreadArray$h([\n valueProperty(this, xKey, isContinuousX, { id: \"xValue\" }),\n valueProperty(this, yKey, isContinuousY, { id: \"yValue\" })\n ], __read$u((sizeKey ? [valueProperty(this, sizeKey, true, { id: \"sizeValue\" })] : []))), __read$u((colorKey ? [valueProperty(this, colorKey, true, { id: \"colorValue\" })] : []))), __read$u((labelKey ? [valueProperty(this, labelKey, false, { id: \"labelValue\" })] : []))),\n dataVisible: this.visible,\n })];\n case 1:\n _g = _h.sent(), dataModel = _g.dataModel, processedData = _g.processedData;\n this.dataModel = dataModel;\n this.processedData = processedData;\n if (sizeKey) {\n sizeKeyIdx = dataModel.resolveProcessedDataIndexById(this, \"sizeValue\").index;\n processedSize = (_a = processedData.domain.values[sizeKeyIdx]) !== null && _a !== void 0 ? _a : [];\n this.sizeScale.domain = marker.domain ? marker.domain : processedSize;\n }\n if (colorKey) {\n colorKeyIdx = dataModel.resolveProcessedDataIndexById(this, \"colorValue\").index;\n colorScale.domain = (_b = colorDomain !== null && colorDomain !== void 0 ? colorDomain : processedData.domain.values[colorKeyIdx]) !== null && _b !== void 0 ? _b : [];\n colorScale.range = colorRange;\n colorScale.update();\n }\n return [2 /*return*/];\n }\n });\n });\n };\n ScatterSeries.prototype.getDomain = function (direction) {\n var _a = this, dataModel = _a.dataModel, processedData = _a.processedData;\n if (!processedData || !dataModel)\n return [];\n var id = direction === ChartAxisDirection.X ? \"xValue\" : \"yValue\";\n var dataDef = dataModel.resolveProcessedDataDefById(this, id, 'value');\n var domain = dataModel.getDomain(this, id, 'value', processedData);\n if ((dataDef === null || dataDef === void 0 ? void 0 : dataDef.def.type) === 'value' && (dataDef === null || dataDef === void 0 ? void 0 : dataDef.def.valueType) === 'category') {\n return domain;\n }\n var axis = this.axes[direction];\n return this.fixNumericExtent(extent$4(domain), axis);\n };\n ScatterSeries.prototype.getNodeClickEvent = function (event, datum) {\n var _a, _b;\n return new ScatterSeriesNodeClickEvent(this.sizeKey, (_a = this.xKey) !== null && _a !== void 0 ? _a : '', (_b = this.yKey) !== null && _b !== void 0 ? _b : '', event, datum, this);\n };\n ScatterSeries.prototype.getNodeDoubleClickEvent = function (event, datum) {\n var _a, _b;\n return new ScatterSeriesNodeDoubleClickEvent(this.sizeKey, (_a = this.xKey) !== null && _a !== void 0 ? _a : '', (_b = this.yKey) !== null && _b !== void 0 ? _b : '', event, datum, this);\n };\n ScatterSeries.prototype.createNodeData = function () {\n var _a, _b, _c, _d, _e, _f;\n return __awaiter$2(this, void 0, void 0, function () {\n var _g, visible, axes, _h, yKey, _j, xKey, label, labelKey, callbackCache, dataModel, processedData, xAxis, yAxis, xDataIdx, yDataIdx, sizeDataIdx, colorDataIdx, labelDataIdx, _k, colorScale, sizeKey, colorKey, seriesId, xScale, yScale, xOffset, yOffset, _l, sizeScale, marker, nodeData, font, actualLength, _m, _o, _p, values, datum, xDatum, yDatum, x, y, text, size, markerSize, fill;\n var e_1, _q;\n return __generator$2(this, function (_r) {\n _g = this, visible = _g.visible, axes = _g.axes, _h = _g.yKey, yKey = _h === void 0 ? '' : _h, _j = _g.xKey, xKey = _j === void 0 ? '' : _j, label = _g.label, labelKey = _g.labelKey, callbackCache = _g.ctx.callbackCache, dataModel = _g.dataModel, processedData = _g.processedData;\n xAxis = axes[ChartAxisDirection.X];\n yAxis = axes[ChartAxisDirection.Y];\n if (!(dataModel && processedData && visible && xAxis && yAxis))\n return [2 /*return*/, []];\n xDataIdx = dataModel.resolveProcessedDataIndexById(this, \"xValue\").index;\n yDataIdx = dataModel.resolveProcessedDataIndexById(this, \"yValue\").index;\n sizeDataIdx = this.sizeKey ? dataModel.resolveProcessedDataIndexById(this, \"sizeValue\").index : -1;\n colorDataIdx = this.colorKey ? dataModel.resolveProcessedDataIndexById(this, \"colorValue\").index : -1;\n labelDataIdx = this.labelKey ? dataModel.resolveProcessedDataIndexById(this, \"labelValue\").index : -1;\n _k = this, colorScale = _k.colorScale, sizeKey = _k.sizeKey, colorKey = _k.colorKey, seriesId = _k.id;\n xScale = xAxis.scale;\n yScale = yAxis.scale;\n xOffset = ((_a = xScale.bandwidth) !== null && _a !== void 0 ? _a : 0) / 2;\n yOffset = ((_b = yScale.bandwidth) !== null && _b !== void 0 ? _b : 0) / 2;\n _l = this, sizeScale = _l.sizeScale, marker = _l.marker;\n nodeData = new Array((_d = (_c = this.processedData) === null || _c === void 0 ? void 0 : _c.data.length) !== null && _d !== void 0 ? _d : 0);\n sizeScale.range = [marker.size, marker.maxSize];\n font = label.getFont();\n actualLength = 0;\n try {\n for (_m = __values$g((_e = processedData.data) !== null && _e !== void 0 ? _e : []), _o = _m.next(); !_o.done; _o = _m.next()) {\n _p = _o.value, values = _p.values, datum = _p.datum;\n xDatum = values[xDataIdx];\n yDatum = values[yDataIdx];\n x = xScale.convert(xDatum) + xOffset;\n y = yScale.convert(yDatum) + yOffset;\n if (!this.checkRangeXY(x, y, xAxis, yAxis)) {\n continue;\n }\n text = void 0;\n if (label.formatter) {\n text = callbackCache.call(label.formatter, { value: yDatum, seriesId: seriesId, datum: datum });\n }\n if (text === undefined) {\n text = labelKey ? String(values[labelDataIdx]) : '';\n }\n size = HdpiCanvas.getTextSize(text, font);\n markerSize = sizeKey ? sizeScale.convert(values[sizeDataIdx]) : marker.size;\n fill = colorKey ? colorScale.convert(values[colorDataIdx]) : undefined;\n nodeData[actualLength++] = {\n series: this,\n itemId: yKey,\n yKey: yKey,\n xKey: xKey,\n datum: datum,\n xValue: xDatum,\n yValue: yDatum,\n sizeValue: values[sizeDataIdx],\n point: { x: x, y: y, size: markerSize },\n nodeMidPoint: { x: x, y: y },\n fill: fill,\n label: __assign$z({ text: text }, size),\n };\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_o && !_o.done && (_q = _m.return)) _q.call(_m);\n }\n finally { if (e_1) throw e_1.error; }\n }\n nodeData.length = actualLength;\n return [2 /*return*/, [{ itemId: (_f = this.yKey) !== null && _f !== void 0 ? _f : this.id, nodeData: nodeData, labelData: nodeData }]];\n });\n });\n };\n ScatterSeries.prototype.isPathOrSelectionDirty = function () {\n return this.marker.isDirty();\n };\n ScatterSeries.prototype.getLabelData = function () {\n var _a;\n return (_a = this.contextNodeData) === null || _a === void 0 ? void 0 : _a.reduce(function (r, n) { return r.concat(n.labelData); }, []);\n };\n ScatterSeries.prototype.markerFactory = function () {\n var shape = this.marker.shape;\n var MarkerShape = getMarker$1(shape);\n return new MarkerShape();\n };\n ScatterSeries.prototype.updateMarkerSelection = function (opts) {\n return __awaiter$2(this, void 0, void 0, function () {\n var nodeData, markerSelection, enabled, data;\n return __generator$2(this, function (_a) {\n nodeData = opts.nodeData, markerSelection = opts.markerSelection;\n enabled = this.marker.enabled;\n if (this.marker.isDirty()) {\n markerSelection.clear();\n }\n data = enabled ? nodeData : [];\n return [2 /*return*/, markerSelection.update(data)];\n });\n });\n };\n ScatterSeries.prototype.updateMarkerNodes = function (opts) {\n return __awaiter$2(this, void 0, void 0, function () {\n var markerSelection, isDatumHighlighted, _a, marker, _b, xKey, _c, yKey, sizeScale, _d, markerFillOpacity, markerStrokeOpacity, markerStrokeWidth, _e, highlightedFill, _f, highlightFillOpacity, highlightedStroke, highlightedDatumStrokeWidth, seriesId, callbackCache, formatter, customMarker;\n return __generator$2(this, function (_g) {\n markerSelection = opts.markerSelection, isDatumHighlighted = opts.isHighlight;\n _a = this, marker = _a.marker, _b = _a.xKey, xKey = _b === void 0 ? '' : _b, _c = _a.yKey, yKey = _c === void 0 ? '' : _c, sizeScale = _a.sizeScale, _d = _a.marker, markerFillOpacity = _d.fillOpacity, markerStrokeOpacity = _d.strokeOpacity, markerStrokeWidth = _d.strokeWidth, _e = _a.highlightStyle.item, highlightedFill = _e.fill, _f = _e.fillOpacity, highlightFillOpacity = _f === void 0 ? markerFillOpacity : _f, highlightedStroke = _e.stroke, highlightedDatumStrokeWidth = _e.strokeWidth, seriesId = _a.id, callbackCache = _a.ctx.callbackCache;\n formatter = marker.formatter;\n sizeScale.range = [marker.size, marker.maxSize];\n customMarker = typeof marker.shape === 'function';\n markerSelection.each(function (node, datum) {\n var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;\n var fill = isDatumHighlighted && highlightedFill !== undefined ? highlightedFill : (_a = datum.fill) !== null && _a !== void 0 ? _a : marker.fill;\n var fillOpacity = isDatumHighlighted ? highlightFillOpacity : markerFillOpacity;\n var stroke = isDatumHighlighted && highlightedStroke !== undefined ? highlightedStroke : marker.stroke;\n var strokeOpacity = markerStrokeOpacity;\n var strokeWidth = isDatumHighlighted && highlightedDatumStrokeWidth !== undefined\n ? highlightedDatumStrokeWidth\n : markerStrokeWidth !== null && markerStrokeWidth !== void 0 ? markerStrokeWidth : 1;\n var size = (_c = (_b = datum.point) === null || _b === void 0 ? void 0 : _b.size) !== null && _c !== void 0 ? _c : 0;\n var format = undefined;\n if (formatter) {\n format = callbackCache.call(formatter, {\n datum: datum.datum,\n xKey: xKey,\n yKey: yKey,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n size: size,\n highlighted: isDatumHighlighted,\n seriesId: seriesId,\n });\n }\n node.fill = (_d = format === null || format === void 0 ? void 0 : format.fill) !== null && _d !== void 0 ? _d : fill;\n node.stroke = (_e = format === null || format === void 0 ? void 0 : format.stroke) !== null && _e !== void 0 ? _e : stroke;\n node.strokeWidth = (_f = format === null || format === void 0 ? void 0 : format.strokeWidth) !== null && _f !== void 0 ? _f : strokeWidth;\n node.fillOpacity = fillOpacity !== null && fillOpacity !== void 0 ? fillOpacity : 1;\n node.strokeOpacity = strokeOpacity !== null && strokeOpacity !== void 0 ? strokeOpacity : 1;\n node.translationX = (_h = (_g = datum.point) === null || _g === void 0 ? void 0 : _g.x) !== null && _h !== void 0 ? _h : 0;\n node.translationY = (_k = (_j = datum.point) === null || _j === void 0 ? void 0 : _j.y) !== null && _k !== void 0 ? _k : 0;\n node.visible = node.size > 0;\n if (!customMarker || node.dirtyPath) {\n return;\n }\n // Only for custom marker shapes.\n node.path.clear({ trackChanges: true });\n node.updatePath();\n node.checkPathDirty();\n });\n if (!isDatumHighlighted) {\n this.marker.markClean();\n }\n return [2 /*return*/];\n });\n });\n };\n ScatterSeries.prototype.updateLabelSelection = function (opts) {\n var _a, _b;\n return __awaiter$2(this, void 0, void 0, function () {\n var labelSelection, enabled, placedLabels, placedNodeDatum;\n return __generator$2(this, function (_c) {\n labelSelection = opts.labelSelection;\n enabled = this.label.enabled;\n placedLabels = enabled ? (_b = (_a = this.chart) === null || _a === void 0 ? void 0 : _a.placeLabels().get(this)) !== null && _b !== void 0 ? _b : [] : [];\n placedNodeDatum = placedLabels.map(function (v) { return (__assign$z(__assign$z({}, v.datum), { point: {\n x: v.x,\n y: v.y,\n size: v.datum.point.size,\n } })); });\n return [2 /*return*/, labelSelection.update(placedNodeDatum)];\n });\n });\n };\n ScatterSeries.prototype.updateLabelNodes = function (opts) {\n return __awaiter$2(this, void 0, void 0, function () {\n var labelSelection, label;\n return __generator$2(this, function (_a) {\n labelSelection = opts.labelSelection;\n label = this.label;\n labelSelection.each(function (text, datum) {\n var _a, _b, _c, _d;\n text.text = datum.label.text;\n text.fill = label.color;\n text.x = (_b = (_a = datum.point) === null || _a === void 0 ? void 0 : _a.x) !== null && _b !== void 0 ? _b : 0;\n text.y = (_d = (_c = datum.point) === null || _c === void 0 ? void 0 : _c.y) !== null && _d !== void 0 ? _d : 0;\n text.fontStyle = label.fontStyle;\n text.fontWeight = label.fontWeight;\n text.fontSize = label.fontSize;\n text.fontFamily = label.fontFamily;\n text.textAlign = 'left';\n text.textBaseline = 'top';\n });\n return [2 /*return*/];\n });\n });\n };\n ScatterSeries.prototype.getTooltipHtml = function (nodeDatum) {\n var _a, _b, _c, _d, _e, _f, _g;\n var _h = this, xKey = _h.xKey, yKey = _h.yKey, axes = _h.axes;\n var xAxis = axes[ChartAxisDirection.X];\n var yAxis = axes[ChartAxisDirection.Y];\n if (!xKey || !yKey || !xAxis || !yAxis) {\n return '';\n }\n var _j = this, marker = _j.marker, tooltip = _j.tooltip, xName = _j.xName, yName = _j.yName, sizeKey = _j.sizeKey, sizeName = _j.sizeName, labelKey = _j.labelKey, labelName = _j.labelName, seriesId = _j.id, callbackCache = _j.ctx.callbackCache;\n var stroke = marker.stroke;\n var fill = (_a = nodeDatum.fill) !== null && _a !== void 0 ? _a : marker.fill;\n var strokeWidth = this.getStrokeWidth((_b = marker.strokeWidth) !== null && _b !== void 0 ? _b : 1);\n var formatter = this.marker.formatter;\n var format = undefined;\n if (formatter) {\n format = callbackCache.call(formatter, {\n datum: nodeDatum,\n xKey: xKey,\n yKey: yKey,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n size: (_d = (_c = nodeDatum.point) === null || _c === void 0 ? void 0 : _c.size) !== null && _d !== void 0 ? _d : 0,\n highlighted: false,\n seriesId: seriesId,\n });\n }\n var color = (_f = (_e = format === null || format === void 0 ? void 0 : format.fill) !== null && _e !== void 0 ? _e : fill) !== null && _f !== void 0 ? _f : 'gray';\n var title = (_g = this.title) !== null && _g !== void 0 ? _g : yName;\n var datum = nodeDatum.datum, xValue = nodeDatum.xValue, yValue = nodeDatum.yValue, sizeValue = nodeDatum.sizeValue, labelText = nodeDatum.label.text;\n var xString = sanitizeHtml(xAxis.formatDatum(xValue));\n var yString = sanitizeHtml(yAxis.formatDatum(yValue));\n var content = \"\" + sanitizeHtml(xName !== null && xName !== void 0 ? xName : xKey) + \": \" + xString + \"
\" +\n (\"\" + sanitizeHtml(yName !== null && yName !== void 0 ? yName : yKey) + \": \" + yString);\n if (sizeKey) {\n content += \"
\" + sanitizeHtml(sizeName !== null && sizeName !== void 0 ? sizeName : sizeKey) + \": \" + sanitizeHtml(sizeValue);\n }\n if (labelKey) {\n content = \"\" + sanitizeHtml(labelName !== null && labelName !== void 0 ? labelName : labelKey) + \": \" + sanitizeHtml(labelText) + \"
\" + content;\n }\n var defaults = {\n title: title,\n backgroundColor: color,\n content: content,\n };\n var tooltipRenderer = tooltip.renderer;\n if (tooltipRenderer) {\n return toTooltipHtml$1(tooltipRenderer({\n datum: datum,\n xKey: xKey,\n xValue: xValue,\n xName: xName,\n yKey: yKey,\n yValue: yValue,\n yName: yName,\n sizeKey: sizeKey,\n sizeName: sizeName,\n labelKey: labelKey,\n labelName: labelName,\n title: title,\n color: color,\n seriesId: seriesId,\n }), defaults);\n }\n return toTooltipHtml$1(defaults);\n };\n ScatterSeries.prototype.getLegendData = function () {\n var _a, _b, _c, _d, _e;\n var _f = this, id = _f.id, data = _f.data, xKey = _f.xKey, yKey = _f.yKey, yName = _f.yName, title = _f.title, visible = _f.visible, marker = _f.marker;\n var fill = marker.fill, stroke = marker.stroke, fillOpacity = marker.fillOpacity, strokeOpacity = marker.strokeOpacity;\n if (!((data === null || data === void 0 ? void 0 : data.length) && xKey && yKey)) {\n return [];\n }\n var legendData = [\n {\n legendType: 'category',\n id: id,\n itemId: yKey,\n seriesId: id,\n enabled: visible,\n label: {\n text: (_a = title !== null && title !== void 0 ? title : yName) !== null && _a !== void 0 ? _a : yKey,\n },\n marker: {\n shape: marker.shape,\n fill: (_c = (_b = marker.fill) !== null && _b !== void 0 ? _b : fill) !== null && _c !== void 0 ? _c : 'rgba(0, 0, 0, 0)',\n stroke: (_e = (_d = marker.stroke) !== null && _d !== void 0 ? _d : stroke) !== null && _e !== void 0 ? _e : 'rgba(0, 0, 0, 0)',\n fillOpacity: fillOpacity !== null && fillOpacity !== void 0 ? fillOpacity : 1,\n strokeOpacity: strokeOpacity !== null && strokeOpacity !== void 0 ? strokeOpacity : 1,\n },\n },\n ];\n return legendData;\n };\n ScatterSeries.prototype.animateEmptyUpdateReady = function (_a) {\n var _this = this;\n var _b, _c;\n var markerSelections = _a.markerSelections, labelSelections = _a.labelSelections;\n var duration = (_c = (_b = this.ctx.animationManager) === null || _b === void 0 ? void 0 : _b.defaultOptions.duration) !== null && _c !== void 0 ? _c : 1000;\n var labelDuration = 200;\n markerSelections.forEach(function (markerSelection) {\n markerSelection.each(function (marker, datum) {\n var _a, _b, _c, _d;\n var format = _this.animateFormatter(marker, datum);\n var size = (_b = (_a = datum.point) === null || _a === void 0 ? void 0 : _a.size) !== null && _b !== void 0 ? _b : 0;\n var to = (_c = format === null || format === void 0 ? void 0 : format.size) !== null && _c !== void 0 ? _c : size;\n (_d = _this.ctx.animationManager) === null || _d === void 0 ? void 0 : _d.animate(_this.id + \"_empty-update-ready_\" + marker.id, {\n from: 0,\n to: to,\n duration: duration,\n onUpdate: function (size) {\n marker.size = size;\n },\n });\n });\n });\n labelSelections.forEach(function (labelSelection) {\n labelSelection.each(function (label) {\n var _a;\n (_a = _this.ctx.animationManager) === null || _a === void 0 ? void 0 : _a.animate(_this.id + \"_empty-update-ready_\" + label.id, {\n from: 0,\n to: 1,\n delay: duration,\n duration: labelDuration,\n onUpdate: function (opacity) {\n label.opacity = opacity;\n },\n });\n });\n });\n };\n ScatterSeries.prototype.animateReadyUpdate = function (_a) {\n var _this = this;\n var markerSelections = _a.markerSelections;\n markerSelections.forEach(function (markerSelection) {\n _this.resetMarkers(markerSelection);\n });\n };\n ScatterSeries.prototype.animateReadyHighlightMarkers = function (markerSelection) {\n this.resetMarkers(markerSelection);\n };\n ScatterSeries.prototype.resetMarkers = function (markerSelection) {\n var _this = this;\n markerSelection.each(function (marker, datum) {\n var _a, _b, _c;\n var format = _this.animateFormatter(marker, datum);\n var size = (_b = (_a = datum.point) === null || _a === void 0 ? void 0 : _a.size) !== null && _b !== void 0 ? _b : 0;\n marker.size = (_c = format === null || format === void 0 ? void 0 : format.size) !== null && _c !== void 0 ? _c : size;\n });\n };\n ScatterSeries.prototype.animateFormatter = function (marker, datum) {\n var _a, _b, _c;\n var _d = this, _e = _d.xKey, xKey = _e === void 0 ? '' : _e, _f = _d.yKey, yKey = _f === void 0 ? '' : _f, markerStrokeWidth = _d.marker.strokeWidth, seriesId = _d.id, callbackCache = _d.ctx.callbackCache;\n var formatter = this.marker.formatter;\n var fill = (_a = datum.fill) !== null && _a !== void 0 ? _a : marker.fill;\n var stroke = marker.stroke;\n var strokeWidth = markerStrokeWidth !== null && markerStrokeWidth !== void 0 ? markerStrokeWidth : 1;\n var size = (_c = (_b = datum.point) === null || _b === void 0 ? void 0 : _b.size) !== null && _c !== void 0 ? _c : 0;\n var format = undefined;\n if (formatter) {\n format = callbackCache.call(formatter, {\n datum: datum.datum,\n xKey: xKey,\n yKey: yKey,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n size: size,\n highlighted: false,\n seriesId: seriesId,\n });\n }\n return format;\n };\n ScatterSeries.prototype.isLabelEnabled = function () {\n return this.label.enabled;\n };\n ScatterSeries.className = 'ScatterSeries';\n ScatterSeries.type = 'scatter';\n __decorate$1j([\n Validate(OPT_STRING)\n ], ScatterSeries.prototype, \"title\", void 0);\n __decorate$1j([\n Validate(OPT_STRING)\n ], ScatterSeries.prototype, \"labelKey\", void 0);\n __decorate$1j([\n Validate(OPT_STRING)\n ], ScatterSeries.prototype, \"xName\", void 0);\n __decorate$1j([\n Validate(OPT_STRING)\n ], ScatterSeries.prototype, \"yName\", void 0);\n __decorate$1j([\n Validate(OPT_STRING)\n ], ScatterSeries.prototype, \"sizeName\", void 0);\n __decorate$1j([\n Validate(OPT_STRING)\n ], ScatterSeries.prototype, \"labelName\", void 0);\n __decorate$1j([\n Validate(OPT_STRING)\n ], ScatterSeries.prototype, \"xKey\", void 0);\n __decorate$1j([\n Validate(OPT_STRING)\n ], ScatterSeries.prototype, \"yKey\", void 0);\n __decorate$1j([\n Validate(OPT_STRING)\n ], ScatterSeries.prototype, \"sizeKey\", void 0);\n __decorate$1j([\n Validate(OPT_STRING)\n ], ScatterSeries.prototype, \"colorKey\", void 0);\n __decorate$1j([\n Validate(OPT_STRING)\n ], ScatterSeries.prototype, \"colorName\", void 0);\n __decorate$1j([\n Validate(OPT_NUMBER_ARRAY)\n ], ScatterSeries.prototype, \"colorDomain\", void 0);\n __decorate$1j([\n Validate(COLOR_STRING_ARRAY)\n ], ScatterSeries.prototype, \"colorRange\", void 0);\n return ScatterSeries;\n}(CartesianSeries));\n\nvar __extends$1Z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar HierarchySeries = /** @class */ (function (_super) {\n __extends$1Z(HierarchySeries, _super);\n function HierarchySeries(moduleCtx) {\n return _super.call(this, { moduleCtx: moduleCtx, pickModes: [SeriesNodePickMode.EXACT_SHAPE_MATCH] }) || this;\n }\n HierarchySeries.prototype.getLabelData = function () {\n return [];\n };\n return HierarchySeries;\n}(Series));\n\nvar __extends$1Y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$y = (undefined && undefined.__assign) || function () {\n __assign$y = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$y.apply(this, arguments);\n};\nvar __decorate$1i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __awaiter$1 = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator$1 = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __values$f = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar TreemapSeriesTooltip = /** @class */ (function (_super) {\n __extends$1Y(TreemapSeriesTooltip, _super);\n function TreemapSeriesTooltip() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.renderer = undefined;\n return _this;\n }\n __decorate$1i([\n Validate(OPT_FUNCTION)\n ], TreemapSeriesTooltip.prototype, \"renderer\", void 0);\n return TreemapSeriesTooltip;\n}(SeriesTooltip));\nvar TreemapSeriesNodeBaseClickEvent = /** @class */ (function (_super) {\n __extends$1Y(TreemapSeriesNodeBaseClickEvent, _super);\n function TreemapSeriesNodeBaseClickEvent(labelKey, sizeKey, colorKey, nativeEvent, datum, series) {\n var _this = _super.call(this, nativeEvent, datum, series) || this;\n _this.labelKey = labelKey;\n _this.sizeKey = sizeKey;\n _this.colorKey = colorKey;\n return _this;\n }\n return TreemapSeriesNodeBaseClickEvent;\n}(SeriesNodeBaseClickEvent));\nvar TreemapSeriesNodeClickEvent = /** @class */ (function (_super) {\n __extends$1Y(TreemapSeriesNodeClickEvent, _super);\n function TreemapSeriesNodeClickEvent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'nodeClick';\n return _this;\n }\n return TreemapSeriesNodeClickEvent;\n}(TreemapSeriesNodeBaseClickEvent));\nvar TreemapSeriesNodeDoubleClickEvent = /** @class */ (function (_super) {\n __extends$1Y(TreemapSeriesNodeDoubleClickEvent, _super);\n function TreemapSeriesNodeDoubleClickEvent() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.type = 'nodeDoubleClick';\n return _this;\n }\n return TreemapSeriesNodeDoubleClickEvent;\n}(TreemapSeriesNodeBaseClickEvent));\nvar TreemapSeriesLabel = /** @class */ (function (_super) {\n __extends$1Y(TreemapSeriesLabel, _super);\n function TreemapSeriesLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.padding = 10;\n return _this;\n }\n __decorate$1i([\n Validate(NUMBER(0))\n ], TreemapSeriesLabel.prototype, \"padding\", void 0);\n return TreemapSeriesLabel;\n}(Label$1));\nvar TreemapSeriesTileLabel = /** @class */ (function (_super) {\n __extends$1Y(TreemapSeriesTileLabel, _super);\n function TreemapSeriesTileLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.wrapping = 'on-space';\n return _this;\n }\n __decorate$1i([\n Validate(TEXT_WRAP)\n ], TreemapSeriesTileLabel.prototype, \"wrapping\", void 0);\n return TreemapSeriesTileLabel;\n}(Label$1));\nvar TreemapValueLabel = /** @class */ (function () {\n function TreemapValueLabel() {\n this.style = (function () {\n var label = new Label$1();\n label.color = 'white';\n return label;\n })();\n }\n __decorate$1i([\n Validate(OPT_STRING)\n ], TreemapValueLabel.prototype, \"key\", void 0);\n __decorate$1i([\n Validate(OPT_STRING)\n ], TreemapValueLabel.prototype, \"name\", void 0);\n __decorate$1i([\n Validate(OPT_FUNCTION)\n ], TreemapValueLabel.prototype, \"formatter\", void 0);\n return TreemapValueLabel;\n}());\nvar TextNodeTag;\n(function (TextNodeTag) {\n TextNodeTag[TextNodeTag[\"Name\"] = 0] = \"Name\";\n TextNodeTag[TextNodeTag[\"Value\"] = 1] = \"Value\";\n})(TextNodeTag || (TextNodeTag = {}));\nvar tempText = new Text();\nfunction getTextSize(text, style) {\n var fontStyle = style.fontStyle, fontWeight = style.fontWeight, fontSize = style.fontSize, fontFamily = style.fontFamily;\n tempText.fontStyle = fontStyle;\n tempText.fontWeight = fontWeight;\n tempText.fontSize = fontSize;\n tempText.fontFamily = fontFamily;\n tempText.text = text;\n tempText.x = 0;\n tempText.y = 0;\n tempText.textAlign = 'left';\n tempText.textBaseline = 'top';\n var _a = tempText.computeBBox(), width = _a.width, height = _a.height;\n return { width: width, height: height };\n}\nfunction validateColor(color) {\n if (typeof color === 'string' && !Color.validColorString(color)) {\n var fallbackColor = 'black';\n Logger.warnOnce(\"invalid Treemap tile colour string \\\"\" + color + \"\\\". Affected treemap tiles will be coloured \" + fallbackColor + \".\");\n return 'black';\n }\n return color;\n}\nvar TreemapTextHighlightStyle = /** @class */ (function () {\n function TreemapTextHighlightStyle() {\n this.color = 'black';\n }\n __decorate$1i([\n Validate(OPT_COLOR_STRING)\n ], TreemapTextHighlightStyle.prototype, \"color\", void 0);\n return TreemapTextHighlightStyle;\n}());\nvar TreemapHighlightStyle = /** @class */ (function (_super) {\n __extends$1Y(TreemapHighlightStyle, _super);\n function TreemapHighlightStyle() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.text = new TreemapTextHighlightStyle();\n return _this;\n }\n return TreemapHighlightStyle;\n}(HighlightStyle));\nvar TreemapSeries = /** @class */ (function (_super) {\n __extends$1Y(TreemapSeries, _super);\n function TreemapSeries() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.groupSelection = Selection.select(_this.contentGroup, Group);\n _this.highlightSelection = Selection.select(_this.highlightGroup, Group);\n _this.title = (function () {\n var label = new TreemapSeriesLabel();\n label.color = 'white';\n label.fontWeight = 'bold';\n label.fontSize = 12;\n label.fontFamily = 'Verdana, sans-serif';\n label.padding = 15;\n return label;\n })();\n _this.subtitle = (function () {\n var label = new TreemapSeriesLabel();\n label.color = 'white';\n label.fontSize = 9;\n label.fontFamily = 'Verdana, sans-serif';\n label.padding = 13;\n return label;\n })();\n _this.labels = {\n large: (function () {\n var label = new TreemapSeriesTileLabel();\n label.color = 'white';\n label.fontWeight = 'bold';\n label.fontSize = 18;\n return label;\n })(),\n medium: (function () {\n var label = new TreemapSeriesTileLabel();\n label.color = 'white';\n label.fontWeight = 'bold';\n label.fontSize = 14;\n return label;\n })(),\n small: (function () {\n var label = new TreemapSeriesTileLabel();\n label.color = 'white';\n label.fontWeight = 'bold';\n label.fontSize = 10;\n return label;\n })(),\n formatter: undefined,\n value: new TreemapValueLabel(),\n };\n _this.nodePadding = 2;\n _this.nodeGap = 0;\n _this.labelKey = 'label';\n _this.sizeKey = 'size';\n _this.colorKey = 'color';\n _this.colorDomain = [-5, 5];\n _this.colorRange = ['#cb4b3f', '#6acb64'];\n _this.groupFill = '#272931';\n _this.groupStroke = 'black';\n _this.groupStrokeWidth = 1;\n _this.tileStroke = 'black';\n _this.tileStrokeWidth = 1;\n _this.gradient = true;\n _this.formatter = undefined;\n _this.colorName = 'Change';\n _this.rootName = 'Root';\n _this.highlightGroups = true;\n _this.tileShadow = new DropShadow();\n _this.labelShadow = new DropShadow();\n _this.tooltip = new TreemapSeriesTooltip();\n _this.highlightStyle = new TreemapHighlightStyle();\n return _this;\n }\n TreemapSeries.prototype.getNodePaddingTop = function (nodeDatum, bbox) {\n var _a;\n var _b = this, title = _b.title, subtitle = _b.subtitle, nodePadding = _b.nodePadding;\n var label = nodeDatum.label;\n if (nodeDatum.isLeaf || !label || nodeDatum.depth === 0) {\n return nodePadding;\n }\n var font = nodeDatum.depth > 1 ? subtitle : title;\n var textSize = getTextSize(label, font);\n var heightRatioThreshold = 3;\n if (font.fontSize > bbox.width / heightRatioThreshold || font.fontSize > bbox.height / heightRatioThreshold) {\n return nodePadding;\n }\n if (textSize.height >= bbox.height) {\n return nodePadding;\n }\n return textSize.height + nodePadding + ((_a = font.padding) !== null && _a !== void 0 ? _a : 0);\n };\n TreemapSeries.prototype.getNodePadding = function (nodeDatum, bbox) {\n var nodePadding = this.nodePadding;\n var top = this.getNodePaddingTop(nodeDatum, bbox);\n return {\n top: top,\n right: nodePadding,\n bottom: nodePadding,\n left: nodePadding,\n };\n };\n /**\n * Squarified Treemap algorithm\n * https://www.win.tue.nl/~vanwijk/stm.pdf\n */\n TreemapSeries.prototype.squarify = function (nodeDatum, bbox, outputNodesBoxes) {\n if (outputNodesBoxes === void 0) { outputNodesBoxes = new Map(); }\n if (bbox.width <= 0 || bbox.height <= 0) {\n return outputNodesBoxes;\n }\n outputNodesBoxes.set(nodeDatum, bbox);\n var targetTileAspectRatio = 1; // The width and height will tend to this ratio\n var padding = this.getNodePadding(nodeDatum, bbox);\n var width = bbox.width - padding.left - padding.right;\n var height = bbox.height - padding.top - padding.bottom;\n if (width <= 0 || height <= 0 || nodeDatum.value <= 0) {\n return outputNodesBoxes;\n }\n var stackSum = 0;\n var startIndex = 0;\n var minRatioDiff = Infinity;\n var partitionSum = nodeDatum.value;\n var children = nodeDatum.children;\n var innerBox = new BBox(bbox.x + padding.left, bbox.y + padding.top, width, height);\n var partition = innerBox.clone();\n for (var i = 0; i < children.length; i++) {\n var value = children[i].value;\n var firstValue = children[startIndex].value;\n var isVertical_1 = partition.width < partition.height;\n stackSum += value;\n var partThickness = isVertical_1 ? partition.height : partition.width;\n var partLength = isVertical_1 ? partition.width : partition.height;\n var firstTileLength = (partLength * firstValue) / stackSum;\n var stackThickness = (partThickness * stackSum) / partitionSum;\n var ratio = Math.max(firstTileLength, stackThickness) / Math.min(firstTileLength, stackThickness);\n var diff = Math.abs(targetTileAspectRatio - ratio);\n if (diff < minRatioDiff) {\n minRatioDiff = diff;\n continue;\n }\n // Go one step back and process the best match\n stackSum -= value;\n stackThickness = (partThickness * stackSum) / partitionSum;\n var start_1 = isVertical_1 ? partition.x : partition.y;\n for (var j = startIndex; j < i; j++) {\n var child = children[j];\n var x = isVertical_1 ? start_1 : partition.x;\n var y = isVertical_1 ? partition.y : start_1;\n var length_1 = (partLength * child.value) / stackSum;\n var width_1 = isVertical_1 ? length_1 : stackThickness;\n var height_1 = isVertical_1 ? stackThickness : length_1;\n var childBox = new BBox(x, y, width_1, height_1);\n this.applyGap(innerBox, childBox);\n this.squarify(child, childBox, outputNodesBoxes);\n partitionSum -= child.value;\n start_1 += length_1;\n }\n if (isVertical_1) {\n partition.y += stackThickness;\n partition.height -= stackThickness;\n }\n else {\n partition.x += stackThickness;\n partition.width -= stackThickness;\n }\n startIndex = i;\n stackSum = 0;\n minRatioDiff = Infinity;\n i--;\n }\n // Process remaining space\n var isVertical = partition.width < partition.height;\n var start = isVertical ? partition.x : partition.y;\n for (var i = startIndex; i < children.length; i++) {\n var x = isVertical ? start : partition.x;\n var y = isVertical ? partition.y : start;\n var part = children[i].value / partitionSum;\n var width_2 = partition.width * (isVertical ? part : 1);\n var height_2 = partition.height * (isVertical ? 1 : part);\n var childBox = new BBox(x, y, width_2, height_2);\n this.applyGap(innerBox, childBox);\n this.squarify(children[i], childBox, outputNodesBoxes);\n start += isVertical ? width_2 : height_2;\n }\n return outputNodesBoxes;\n };\n TreemapSeries.prototype.applyGap = function (innerBox, childBox) {\n var gap = this.nodeGap / 2;\n var getBounds = function (box) {\n return {\n left: box.x,\n top: box.y,\n right: box.x + box.width,\n bottom: box.y + box.height,\n };\n };\n var innerBounds = getBounds(innerBox);\n var childBounds = getBounds(childBox);\n var sides = Object.keys(innerBounds);\n sides.forEach(function (side) {\n if (!isEqual(innerBounds[side], childBounds[side])) {\n childBox.shrink(gap, side);\n }\n });\n };\n TreemapSeries.prototype.processData = function () {\n return __awaiter$1(this, void 0, void 0, function () {\n var _a, data, sizeKey, labelKey, colorKey, colorDomain, colorRange, groupFill, labelFormatter, colorScale, createTreeNodeDatum;\n var _this = this;\n return __generator$1(this, function (_b) {\n if (!this.data) {\n return [2 /*return*/];\n }\n _a = this, data = _a.data, sizeKey = _a.sizeKey, labelKey = _a.labelKey, colorKey = _a.colorKey, colorDomain = _a.colorDomain, colorRange = _a.colorRange, groupFill = _a.groupFill;\n labelFormatter = this.labels.formatter;\n colorScale = new ColorScale();\n colorScale.domain = colorDomain;\n colorScale.range = colorRange;\n colorScale.update();\n createTreeNodeDatum = function (datum, depth, parent) {\n var _a, _b, _c, _d;\n if (depth === void 0) { depth = 0; }\n var label;\n if (labelFormatter) {\n label = _this.ctx.callbackCache.call(labelFormatter, { datum: datum });\n }\n if (label !== undefined) ;\n else if (labelKey) {\n label = (_a = datum[labelKey]) !== null && _a !== void 0 ? _a : '';\n }\n else {\n label = '';\n }\n var colorScaleValue = colorKey ? (_b = datum[colorKey]) !== null && _b !== void 0 ? _b : depth : depth;\n colorScaleValue = validateColor(colorScaleValue);\n var isLeaf = !datum.children;\n var fill = groupFill;\n if (typeof colorScaleValue === 'string') {\n fill = colorScaleValue;\n }\n else if (isLeaf || !groupFill) {\n fill = colorScale.convert(colorScaleValue);\n }\n var nodeDatum = {\n datum: datum,\n depth: depth,\n parent: parent,\n value: 0,\n label: label,\n fill: fill,\n series: _this,\n isLeaf: isLeaf,\n children: [],\n };\n if (isLeaf) {\n nodeDatum.value = sizeKey ? (_c = datum[sizeKey]) !== null && _c !== void 0 ? _c : 1 : 1;\n }\n else {\n (_d = datum.children) === null || _d === void 0 ? void 0 : _d.forEach(function (child) {\n var childNodeDatum = createTreeNodeDatum(child, depth + 1, nodeDatum);\n var value = childNodeDatum.value;\n if (isNaN(value) || !isFinite(value) || value === 0) {\n return;\n }\n nodeDatum.value += value;\n nodeDatum.children.push(childNodeDatum);\n });\n nodeDatum.children.sort(function (a, b) {\n return b.value - a.value;\n });\n }\n return nodeDatum;\n };\n this.dataRoot = createTreeNodeDatum(data);\n return [2 /*return*/];\n });\n });\n };\n TreemapSeries.prototype.createNodeData = function () {\n return __awaiter$1(this, void 0, void 0, function () {\n return __generator$1(this, function (_a) {\n return [2 /*return*/, []];\n });\n });\n };\n TreemapSeries.prototype.update = function () {\n return __awaiter$1(this, void 0, void 0, function () {\n return __generator$1(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.updateSelections()];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.updateNodes()];\n case 2:\n _a.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n TreemapSeries.prototype.updateSelections = function () {\n return __awaiter$1(this, void 0, void 0, function () {\n var _a, chart, dataRoot, seriesRect, descendants, traverse, _b, groupSelection, highlightSelection, update;\n return __generator$1(this, function (_c) {\n if (!this.nodeDataRefresh) {\n return [2 /*return*/];\n }\n this.nodeDataRefresh = false;\n _a = this, chart = _a.chart, dataRoot = _a.dataRoot;\n if (!chart || !dataRoot) {\n return [2 /*return*/];\n }\n seriesRect = chart.getSeriesRect();\n if (!seriesRect) {\n return [2 /*return*/];\n }\n descendants = [];\n traverse = function (datum) {\n var _a;\n descendants.push(datum);\n (_a = datum.children) === null || _a === void 0 ? void 0 : _a.forEach(traverse);\n };\n traverse(dataRoot);\n _b = this, groupSelection = _b.groupSelection, highlightSelection = _b.highlightSelection;\n update = function (selection) {\n return selection.update(descendants, function (group) {\n var rect = new Rect();\n var nameLabel = new Text();\n nameLabel.tag = TextNodeTag.Name;\n var valueLabel = new Text();\n valueLabel.tag = TextNodeTag.Value;\n group.append([rect, nameLabel, valueLabel]);\n });\n };\n this.groupSelection = update(groupSelection);\n this.highlightSelection = update(highlightSelection);\n return [2 /*return*/];\n });\n });\n };\n TreemapSeries.prototype.isDatumHighlighted = function (datum) {\n var _a;\n var highlightedDatum = (_a = this.ctx.highlightManager) === null || _a === void 0 ? void 0 : _a.getActiveHighlight();\n return datum === highlightedDatum && (datum.isLeaf || this.highlightGroups);\n };\n TreemapSeries.prototype.getTileFormat = function (datum, isHighlighted) {\n var _a;\n var _b = this, formatter = _b.formatter, callbackCache = _b.ctx.callbackCache;\n if (!formatter) {\n return {};\n }\n var _c = this, gradient = _c.gradient, colorKey = _c.colorKey, labelKey = _c.labelKey, sizeKey = _c.sizeKey, tileStroke = _c.tileStroke, tileStrokeWidth = _c.tileStrokeWidth, groupStroke = _c.groupStroke, groupStrokeWidth = _c.groupStrokeWidth;\n var stroke = datum.isLeaf ? tileStroke : groupStroke;\n var strokeWidth = datum.isLeaf ? tileStrokeWidth : groupStrokeWidth;\n var result = callbackCache.call(formatter, {\n seriesId: this.id,\n datum: datum.datum,\n depth: datum.depth,\n parent: (_a = datum.parent) === null || _a === void 0 ? void 0 : _a.datum,\n colorKey: colorKey,\n sizeKey: sizeKey,\n labelKey: labelKey,\n fill: datum.fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n gradient: gradient,\n highlighted: isHighlighted,\n });\n return result !== null && result !== void 0 ? result : {};\n };\n TreemapSeries.prototype.updateNodes = function () {\n return __awaiter$1(this, void 0, void 0, function () {\n var _a, gradient, _b, _c, highlightedFill, highlightedFillOpacity, highlightedStroke, highlightedDatumStrokeWidth, highlightedTextColor, tileStroke, tileStrokeWidth, groupStroke, groupStrokeWidth, tileShadow, labelShadow, dataRoot, seriesRect, boxes, labelMeta, highlightedSubtree, updateRectFn, updateLabelFn;\n var _this = this;\n return __generator$1(this, function (_d) {\n if (!this.chart)\n return [2 /*return*/];\n _a = this, gradient = _a.gradient, _b = _a.highlightStyle, _c = _b.item, highlightedFill = _c.fill, highlightedFillOpacity = _c.fillOpacity, highlightedStroke = _c.stroke, highlightedDatumStrokeWidth = _c.strokeWidth, highlightedTextColor = _b.text.color, tileStroke = _a.tileStroke, tileStrokeWidth = _a.tileStrokeWidth, groupStroke = _a.groupStroke, groupStrokeWidth = _a.groupStrokeWidth, tileShadow = _a.tileShadow, labelShadow = _a.labelShadow, dataRoot = _a.dataRoot;\n if (!dataRoot)\n return [2 /*return*/];\n seriesRect = this.chart.getSeriesRect();\n boxes = this.squarify(dataRoot, new BBox(0, 0, seriesRect.width, seriesRect.height));\n labelMeta = this.buildLabelMeta(boxes);\n highlightedSubtree = this.getHighlightedSubtree(dataRoot);\n this.updateNodeMidPoint(boxes);\n updateRectFn = function (rect, datum, isDatumHighlighted) {\n var _a, _b, _c, _d, _e, _f;\n var box = boxes.get(datum);\n if (!box) {\n rect.visible = false;\n return;\n }\n var fill = isDatumHighlighted && highlightedFill !== undefined ? highlightedFill : datum.fill;\n var fillOpacity = (_a = (isDatumHighlighted ? highlightedFillOpacity : 1)) !== null && _a !== void 0 ? _a : 1;\n var stroke = groupStroke;\n if (isDatumHighlighted && highlightedStroke !== undefined) {\n stroke = highlightedStroke;\n }\n else if (datum.isLeaf) {\n stroke = tileStroke;\n }\n var strokeWidth = groupStrokeWidth;\n if (isDatumHighlighted && highlightedDatumStrokeWidth !== undefined) {\n strokeWidth = highlightedDatumStrokeWidth;\n }\n else if (datum.isLeaf) {\n strokeWidth = tileStrokeWidth;\n }\n var format = _this.getTileFormat(datum, isDatumHighlighted);\n var fillColor = validateColor((_b = format === null || format === void 0 ? void 0 : format.fill) !== null && _b !== void 0 ? _b : fill);\n if ((_c = format === null || format === void 0 ? void 0 : format.gradient) !== null && _c !== void 0 ? _c : gradient) {\n var start = Color.tryParseFromString(fill).brighter().toString();\n var end = Color.tryParseFromString(fill).darker().toString();\n rect.fill = \"linear-gradient(180deg, \" + start + \", \" + end + \")\";\n }\n else {\n rect.fill = fillColor;\n }\n rect.fillOpacity = (_d = format === null || format === void 0 ? void 0 : format.fillOpacity) !== null && _d !== void 0 ? _d : fillOpacity;\n rect.stroke = validateColor((_e = format === null || format === void 0 ? void 0 : format.stroke) !== null && _e !== void 0 ? _e : stroke);\n rect.strokeWidth = (_f = format === null || format === void 0 ? void 0 : format.strokeWidth) !== null && _f !== void 0 ? _f : strokeWidth;\n rect.fillShadow = tileShadow;\n rect.crisp = true;\n rect.x = box.x;\n rect.y = box.y;\n rect.width = box.width;\n rect.height = box.height;\n rect.visible = true;\n };\n this.groupSelection.selectByClass(Rect).forEach(function (rect) { return updateRectFn(rect, rect.datum, false); });\n this.highlightSelection.selectByClass(Rect).forEach(function (rect) {\n var isDatumHighlighted = _this.isDatumHighlighted(rect.datum);\n rect.visible = isDatumHighlighted || highlightedSubtree.has(rect.datum);\n if (rect.visible) {\n updateRectFn(rect, rect.datum, isDatumHighlighted);\n }\n });\n updateLabelFn = function (text, datum, highlighted, key) {\n var meta = labelMeta.get(datum);\n var label = meta === null || meta === void 0 ? void 0 : meta[key];\n if (!label) {\n text.visible = false;\n return;\n }\n text.text = label.text;\n text.fontFamily = label.style.fontFamily;\n text.fontSize = label.style.fontSize;\n text.fontWeight = label.style.fontWeight;\n text.fill = highlighted ? highlightedTextColor !== null && highlightedTextColor !== void 0 ? highlightedTextColor : label.style.color : label.style.color;\n text.fillShadow = highlighted ? undefined : labelShadow;\n text.textAlign = label.hAlign;\n text.textBaseline = label.vAlign;\n text.x = label.x;\n text.y = label.y;\n text.visible = true;\n };\n this.groupSelection\n .selectByTag(TextNodeTag.Name)\n .forEach(function (text) { return updateLabelFn(text, text.datum, false, 'label'); });\n this.highlightSelection.selectByTag(TextNodeTag.Name).forEach(function (text) {\n var isDatumHighlighted = _this.isDatumHighlighted(text.datum);\n text.visible = isDatumHighlighted || highlightedSubtree.has(text.datum);\n if (text.visible) {\n updateLabelFn(text, text.datum, isDatumHighlighted, 'label');\n }\n });\n this.groupSelection\n .selectByTag(TextNodeTag.Value)\n .forEach(function (text) { return updateLabelFn(text, text.datum, false, 'value'); });\n this.highlightSelection.selectByTag(TextNodeTag.Value).forEach(function (text) {\n var isDatumHighlighted = _this.isDatumHighlighted(text.datum);\n text.visible = isDatumHighlighted || highlightedSubtree.has(text.datum);\n if (text.visible) {\n updateLabelFn(text, text.datum, isDatumHighlighted, 'value');\n }\n });\n return [2 /*return*/];\n });\n });\n };\n TreemapSeries.prototype.updateNodeMidPoint = function (boxes) {\n boxes.forEach(function (box, treeNodeDatum) {\n treeNodeDatum.nodeMidPoint = {\n x: box.x + box.width / 2,\n y: box.y,\n };\n });\n };\n TreemapSeries.prototype.getHighlightedSubtree = function (dataRoot) {\n var _this = this;\n var items = new Set();\n var traverse = function (datum) {\n var _a;\n if (_this.isDatumHighlighted(datum) || (datum.parent && items.has(datum.parent))) {\n items.add(datum);\n }\n (_a = datum.children) === null || _a === void 0 ? void 0 : _a.forEach(traverse);\n };\n traverse(dataRoot);\n return items;\n };\n TreemapSeries.prototype.buildLabelMeta = function (boxes) {\n var _a = this, labels = _a.labels, title = _a.title, subtitle = _a.subtitle, nodePadding = _a.nodePadding, labelKey = _a.labelKey, callbackCache = _a.ctx.callbackCache;\n var wrappedRegExp = /-$/m;\n var labelMeta = new Map();\n boxes.forEach(function (box, datum) {\n var _a, _b, _c;\n if (!labelKey || datum.depth === 0) {\n return;\n }\n var availTextWidth = box.width - 2 * nodePadding;\n var availTextHeight = box.height - 2 * nodePadding;\n var isBoxTooSmall = function (labelStyle) {\n var minSizeRatio = 3;\n return (labelStyle.fontSize > box.width / minSizeRatio || labelStyle.fontSize > box.height / minSizeRatio);\n };\n var labelText = datum.isLeaf ? datum.label : datum.label.toUpperCase();\n var valueText = '';\n var valueConfig = labels.value;\n var valueStyle = valueConfig.style;\n var valueMargin = Math.ceil(valueStyle.fontSize * 2 * (Text.defaultLineHeightRatio - 1));\n if (datum.isLeaf) {\n if (valueConfig.formatter) {\n valueText = (_a = callbackCache.call(valueConfig.formatter, { datum: datum.datum })) !== null && _a !== void 0 ? _a : '';\n }\n else if (valueConfig.key) {\n valueText = datum.datum[valueConfig.key];\n }\n }\n var valueSize = getTextSize(valueText, valueStyle);\n if (valueText && valueSize.width > availTextWidth) {\n valueText = '';\n }\n var labelStyle;\n var wrappedText = '';\n if (datum.isLeaf) {\n var pickStyle = function () {\n var e_1, _a;\n var availHeight = availTextHeight - (valueText ? valueStyle.fontSize + valueMargin : 0);\n var labelStyles = [labels.large, labels.medium, labels.small];\n try {\n for (var labelStyles_1 = __values$f(labelStyles), labelStyles_1_1 = labelStyles_1.next(); !labelStyles_1_1.done; labelStyles_1_1 = labelStyles_1.next()) {\n var style = labelStyles_1_1.value;\n var _b = getTextSize(labelText, style), width = _b.width, height = _b.height;\n if (height > availHeight || isBoxTooSmall(style)) {\n continue;\n }\n if (width <= availTextWidth) {\n return { style: style, wrappedText: undefined };\n }\n // Avoid hyphens and ellipsis for large and medium label styles\n var wrapped = Text.wrap(labelText, availTextWidth, availHeight, style, style.wrapping);\n if (wrapped &&\n wrapped !== '\\u2026' &&\n (style === labels.small || !(wrappedRegExp.exec(wrapped) || wrapped.endsWith('\\u2026')))) {\n return { style: style, wrappedText: wrapped };\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (labelStyles_1_1 && !labelStyles_1_1.done && (_a = labelStyles_1.return)) _a.call(labelStyles_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n // Check if small font fits by height\n var smallSize = getTextSize(labelText, labels.small);\n if (smallSize.height <= availHeight && !isBoxTooSmall(labels.small)) {\n return { style: labels.small, wrappedText: undefined };\n }\n return { style: undefined, wrappedText: undefined };\n };\n var result = pickStyle();\n if (!result.style && valueText) {\n valueText = '';\n result = pickStyle();\n }\n labelStyle = (_b = result.style) !== null && _b !== void 0 ? _b : labels.small;\n wrappedText = (_c = result.wrappedText) !== null && _c !== void 0 ? _c : '';\n }\n else if (datum.depth === 1) {\n labelStyle = title;\n }\n else {\n labelStyle = subtitle;\n }\n var labelSize = getTextSize(wrappedText || labelText, labelStyle);\n if (isBoxTooSmall(labelStyle)) {\n // Avoid labels on too small tiles\n return;\n }\n // Crop text if not enough space\n if (labelSize.width > availTextWidth) {\n var textLength = Math.floor((labelText.length * availTextWidth) / labelSize.width) - 1;\n labelText = labelText.substring(0, textLength).trim() + \"\\u2026\";\n }\n valueSize = getTextSize(valueText, valueStyle);\n var hasValueText = valueText &&\n valueSize.width < availTextWidth &&\n valueSize.height + labelSize.height + valueMargin < availTextHeight;\n labelMeta.set(datum, {\n label: __assign$y({ text: wrappedText || labelText, style: labelStyle }, (datum.isLeaf\n ? {\n hAlign: 'center',\n vAlign: 'middle',\n x: box.x + box.width / 2,\n y: box.y + box.height / 2 - (hasValueText ? valueSize.height / 2 + valueMargin / 2 : 0),\n }\n : {\n hAlign: 'left',\n vAlign: 'top',\n x: box.x + nodePadding,\n y: box.y + nodePadding,\n })),\n value: hasValueText\n ? {\n text: valueText,\n style: valueStyle,\n hAlign: 'center',\n vAlign: 'middle',\n x: box.x + box.width / 2,\n y: box.y + box.height / 2 + labelSize.height / 2 + valueMargin / 2,\n }\n : undefined,\n });\n });\n return labelMeta;\n };\n TreemapSeries.prototype.getDomain = function (_direction) {\n return [0, 1];\n };\n TreemapSeries.prototype.getNodeClickEvent = function (event, datum) {\n return new TreemapSeriesNodeClickEvent(this.labelKey, this.sizeKey, this.colorKey, event, datum, this);\n };\n TreemapSeries.prototype.getNodeDoubleClickEvent = function (event, datum) {\n return new TreemapSeriesNodeDoubleClickEvent(this.labelKey, this.sizeKey, this.colorKey, event, datum, this);\n };\n TreemapSeries.prototype.getTooltipHtml = function (nodeDatum) {\n var _a, _b, _c, _d;\n if (!this.highlightGroups && !nodeDatum.isLeaf) {\n return '';\n }\n var _e = this, tooltip = _e.tooltip, sizeKey = _e.sizeKey, labelKey = _e.labelKey, colorKey = _e.colorKey, rootName = _e.rootName, seriesId = _e.id, labels = _e.labels, callbackCache = _e.ctx.callbackCache;\n var datum = nodeDatum.datum;\n var tooltipRenderer = tooltip.renderer;\n var title = nodeDatum.depth ? datum[labelKey] : (_a = datum[labelKey]) !== null && _a !== void 0 ? _a : rootName;\n var content = '';\n var format = this.getTileFormat(nodeDatum, false);\n var color = (_c = (_b = format === null || format === void 0 ? void 0 : format.fill) !== null && _b !== void 0 ? _b : nodeDatum.fill) !== null && _c !== void 0 ? _c : 'gray';\n var valueKey = labels.value.key;\n var valueFormatter = labels.value.formatter;\n if (valueKey || valueFormatter) {\n var valueText = '';\n if (valueFormatter) {\n valueText = callbackCache.call(valueFormatter, { datum: datum });\n }\n else if (valueKey != null) {\n var value = datum[valueKey];\n if (typeof value === 'number' && isFinite(value)) {\n valueText = toFixed(value);\n }\n }\n if (valueText) {\n if (labels.value.name) {\n content += \"\" + labels.value.name + \": \";\n }\n content += valueText;\n }\n }\n var defaults = {\n title: title,\n backgroundColor: color,\n content: content,\n };\n if (tooltipRenderer) {\n return toTooltipHtml$1(tooltipRenderer({\n datum: nodeDatum.datum,\n parent: (_d = nodeDatum.parent) === null || _d === void 0 ? void 0 : _d.datum,\n depth: nodeDatum.depth,\n sizeKey: sizeKey,\n labelKey: labelKey,\n colorKey: colorKey,\n title: title,\n color: color,\n seriesId: seriesId,\n }), defaults);\n }\n if (!title && !content) {\n return '';\n }\n return toTooltipHtml$1(defaults);\n };\n TreemapSeries.prototype.getLegendData = function () {\n // Override point for subclasses.\n return [];\n };\n TreemapSeries.className = 'TreemapSeries';\n TreemapSeries.type = 'treemap';\n __decorate$1i([\n Validate(NUMBER(0))\n ], TreemapSeries.prototype, \"nodePadding\", void 0);\n __decorate$1i([\n Validate(NUMBER(0))\n ], TreemapSeries.prototype, \"nodeGap\", void 0);\n __decorate$1i([\n Validate(STRING)\n ], TreemapSeries.prototype, \"labelKey\", void 0);\n __decorate$1i([\n Validate(OPT_STRING)\n ], TreemapSeries.prototype, \"sizeKey\", void 0);\n __decorate$1i([\n Validate(OPT_STRING)\n ], TreemapSeries.prototype, \"colorKey\", void 0);\n __decorate$1i([\n Validate(NUMBER_ARRAY)\n ], TreemapSeries.prototype, \"colorDomain\", void 0);\n __decorate$1i([\n Validate(COLOR_STRING_ARRAY)\n ], TreemapSeries.prototype, \"colorRange\", void 0);\n __decorate$1i([\n Validate(OPT_STRING)\n ], TreemapSeries.prototype, \"groupFill\", void 0);\n __decorate$1i([\n Validate(OPT_COLOR_STRING)\n ], TreemapSeries.prototype, \"groupStroke\", void 0);\n __decorate$1i([\n Validate(OPT_NUMBER(0))\n ], TreemapSeries.prototype, \"groupStrokeWidth\", void 0);\n __decorate$1i([\n Validate(OPT_COLOR_STRING)\n ], TreemapSeries.prototype, \"tileStroke\", void 0);\n __decorate$1i([\n Validate(OPT_NUMBER(0))\n ], TreemapSeries.prototype, \"tileStrokeWidth\", void 0);\n __decorate$1i([\n Validate(BOOLEAN)\n ], TreemapSeries.prototype, \"gradient\", void 0);\n __decorate$1i([\n Validate(OPT_FUNCTION)\n ], TreemapSeries.prototype, \"formatter\", void 0);\n __decorate$1i([\n Validate(STRING)\n ], TreemapSeries.prototype, \"colorName\", void 0);\n __decorate$1i([\n Validate(STRING)\n ], TreemapSeries.prototype, \"rootName\", void 0);\n __decorate$1i([\n Validate(OPT_BOOLEAN)\n ], TreemapSeries.prototype, \"highlightGroups\", void 0);\n return TreemapSeries;\n}(HierarchySeries));\n\nvar TYPES = {\n area: 'cartesian',\n bar: 'cartesian',\n column: 'cartesian',\n histogram: 'cartesian',\n line: 'cartesian',\n scatter: 'cartesian',\n treemap: 'hierarchy',\n pie: 'polar',\n};\nvar DEFAULTS = {};\nvar CHART_TYPES = {\n has: function (seriesType) {\n return Object.prototype.hasOwnProperty.call(TYPES, seriesType);\n },\n isCartesian: function (seriesType) {\n return TYPES[seriesType] === 'cartesian';\n },\n isPolar: function (seriesType) {\n return TYPES[seriesType] === 'polar';\n },\n isHierarchy: function (seriesType) {\n return TYPES[seriesType] === 'hierarchy';\n },\n get seriesTypes() {\n return Object.keys(TYPES);\n },\n get cartesianTypes() {\n var _this = this;\n return this.seriesTypes.filter(function (t) { return _this.isCartesian(t); });\n },\n get polarTypes() {\n var _this = this;\n return this.seriesTypes.filter(function (t) { return _this.isPolar(t); });\n },\n get hierarchyTypes() {\n var _this = this;\n return this.seriesTypes.filter(function (t) { return _this.isHierarchy(t); });\n },\n};\nfunction registerChartSeriesType(seriesType, chartType) {\n TYPES[seriesType] = chartType;\n}\nfunction registerChartDefaults(chartType, defaults) {\n var _a;\n DEFAULTS[chartType] = jsonMerge([(_a = DEFAULTS[chartType]) !== null && _a !== void 0 ? _a : {}, defaults]);\n}\nfunction getChartDefaults(chartType) {\n var _a;\n return (_a = DEFAULTS[chartType]) !== null && _a !== void 0 ? _a : {};\n}\n\nvar BUILT_IN_SERIES_FACTORIES = {\n area: AreaSeries,\n bar: BarSeries,\n column: ColumnSeries,\n histogram: HistogramSeries,\n line: LineSeries,\n pie: PieSeries,\n scatter: ScatterSeries,\n treemap: TreemapSeries,\n};\nvar SERIES_FACTORIES = {};\nvar SERIES_DEFAULTS = {};\nvar SERIES_THEME_TEMPLATES = {};\nvar SERIES_PALETTE_FACTORIES = {};\nfunction registerSeries(seriesType, chartType, cstr, defaults, theme, paletteFactory) {\n SERIES_FACTORIES[seriesType] = cstr;\n SERIES_DEFAULTS[seriesType] = defaults;\n SERIES_THEME_TEMPLATES[seriesType] = theme;\n if (paletteFactory) {\n addSeriesPaletteFactory(seriesType, paletteFactory);\n }\n registerChartSeriesType(seriesType, chartType);\n}\nfunction getSeries(chartType, moduleCtx) {\n var _a;\n var seriesConstructor = (_a = SERIES_FACTORIES[chartType]) !== null && _a !== void 0 ? _a : BUILT_IN_SERIES_FACTORIES[chartType];\n if (seriesConstructor) {\n return new seriesConstructor(moduleCtx);\n }\n throw new Error(\"AG Charts - unknown series type: \" + chartType);\n}\nfunction getSeriesDefaults(chartType) {\n return SERIES_DEFAULTS[chartType];\n}\nfunction getSeriesThemeTemplate(chartType) {\n return SERIES_THEME_TEMPLATES[chartType];\n}\nfunction addSeriesPaletteFactory(seriesType, factory) {\n SERIES_PALETTE_FACTORIES[seriesType] = factory;\n}\nfunction getSeriesPaletteFactory(seriesType) {\n return SERIES_PALETTE_FACTORIES[seriesType];\n}\n\nvar DEFAULT_CARTESIAN_CHART_OVERRIDES = {\n axes: [\n {\n type: NumberAxis.type,\n position: 'left',\n },\n {\n type: CategoryAxis.type,\n position: 'bottom',\n },\n ],\n};\nvar DEFAULT_BAR_CHART_OVERRIDES = {\n axes: [\n {\n type: 'number',\n position: 'bottom',\n },\n {\n type: 'category',\n position: 'left',\n },\n ],\n};\nvar DEFAULT_SCATTER_HISTOGRAM_CHART_OVERRIDES = {\n axes: [\n {\n type: 'number',\n position: 'bottom',\n },\n {\n type: 'number',\n position: 'left',\n },\n ],\n};\n\nfunction deepMerge$1(target, source) {\n if (isPlainObject(target) && isPlainObject(source)) {\n var result_1 = {};\n Object.keys(target).forEach(function (key) {\n if (key in source) {\n result_1[key] = deepMerge$1(target[key], source[key]);\n }\n else {\n result_1[key] = target[key];\n }\n });\n Object.keys(source).forEach(function (key) {\n if (!(key in target)) {\n result_1[key] = source[key];\n }\n });\n return result_1;\n }\n if ((Array.isArray(target) && !Array.isArray(source)) || (isObject(target) && !isObject(source))) {\n return target;\n }\n return source;\n}\nfunction isObject(value) {\n return value && typeof value === 'object';\n}\nfunction isPlainObject(x) {\n return isObject(x) && x.constructor === Object;\n}\n\nvar __assign$x = (undefined && undefined.__assign) || function () {\n __assign$x = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$x.apply(this, arguments);\n};\nvar __read$t = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __values$e = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar palette$8 = {\n fills: ['#f3622d', '#fba71b', '#57b757', '#41a9c9', '#4258c9', '#9a42c8', '#c84164', '#888888'],\n strokes: ['#aa4520', '#b07513', '#3d803d', '#2d768d', '#2e3e8d', '#6c2e8c', '#8c2d46', '#5f5f5f'],\n};\nvar EXTENDS_AXES_DEFAULTS = Symbol('extends-axes-defaults');\nvar EXTENDS_AXES_LABEL_DEFAULTS = Symbol('extends-axes-label-defaults');\nvar EXTENDS_AXES_LINE_DEFAULTS = Symbol('extends-axes-line-defaults');\nvar EXTENDS_SERIES_DEFAULTS = Symbol('extends-series-defaults');\nvar OVERRIDE_SERIES_LABEL_DEFAULTS = Symbol('override-series-label-defaults');\nvar DEFAULT_FONT_FAMILY = Symbol('default-font');\nvar BOLD = 'bold';\nvar INSIDE = 'inside';\nvar BOTTOM = 'bottom';\nvar ChartTheme = /** @class */ (function () {\n function ChartTheme(options) {\n options = deepMerge$1({}, options !== null && options !== void 0 ? options : {});\n var _a = options.overrides, overrides = _a === void 0 ? null : _a, _b = options.palette, palette = _b === void 0 ? null : _b;\n var defaults = this.createChartConfigPerChartType(this.getDefaults());\n if (overrides) {\n var common = overrides.common, cartesian = overrides.cartesian, polar = overrides.polar, hierarchy = overrides.hierarchy;\n var applyOverrides = function (type, seriesTypes, overrideOpts) {\n if (overrideOpts) {\n defaults[type] = deepMerge$1(defaults[type], overrideOpts);\n seriesTypes.forEach(function (s) {\n var seriesType = s;\n defaults[seriesType] = deepMerge$1(defaults[seriesType], overrideOpts);\n });\n }\n };\n applyOverrides('common', Object.keys(defaults), common);\n applyOverrides('cartesian', CHART_TYPES.cartesianTypes, cartesian);\n applyOverrides('polar', CHART_TYPES.polarTypes, polar);\n applyOverrides('hierarchy', CHART_TYPES.hierarchyTypes, hierarchy);\n CHART_TYPES.seriesTypes.forEach(function (s) {\n var _a;\n var seriesType = s;\n var chartConfig = overrides[seriesType];\n if (chartConfig) {\n if (chartConfig.series) {\n chartConfig.series = (_a = {}, _a[seriesType] = chartConfig.series, _a);\n }\n defaults[seriesType] = deepMerge$1(defaults[seriesType], chartConfig);\n }\n });\n }\n this.palette = palette !== null && palette !== void 0 ? palette : this.getPalette();\n this.config = Object.freeze(defaults);\n }\n ChartTheme.prototype.getPalette = function () {\n return palette$8;\n };\n ChartTheme.getAxisDefaults = function () {\n return {\n top: {},\n right: {},\n bottom: {},\n left: {},\n title: {\n enabled: false,\n text: 'Axis Title',\n fontStyle: undefined,\n fontWeight: BOLD,\n fontSize: 12,\n fontFamily: this.fontFamily,\n color: 'rgb(70, 70, 70)',\n },\n label: {\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: this.fontFamily,\n padding: 5,\n rotation: undefined,\n color: 'rgb(87, 87, 87)',\n formatter: undefined,\n autoRotate: false,\n avoidCollisions: true,\n },\n line: {\n width: 1,\n color: 'rgb(195, 195, 195)',\n },\n tick: {\n width: 1,\n size: 6,\n color: 'rgb(195, 195, 195)',\n },\n gridStyle: [\n {\n stroke: 'rgb(219, 219, 219)',\n lineDash: [4, 2],\n },\n ],\n crossLines: {\n enabled: false,\n fill: 'rgb(187,221,232)',\n stroke: 'rgb(70,162,192)',\n strokeWidth: 1,\n label: {\n enabled: false,\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: this.fontFamily,\n padding: 5,\n color: 'rgb(87, 87, 87)',\n rotation: undefined,\n },\n },\n };\n };\n ChartTheme.getSeriesDefaults = function () {\n return {\n tooltip: {\n enabled: true,\n renderer: undefined,\n },\n visible: true,\n showInLegend: true,\n highlightStyle: {\n item: {\n fill: 'yellow',\n fillOpacity: 1,\n },\n series: {\n dimOpacity: 1,\n },\n text: {\n color: 'black',\n },\n },\n nodeClickRange: 'exact',\n };\n };\n ChartTheme.getBarSeriesDefaults = function () {\n return __assign$x(__assign$x({}, this.getSeriesDefaults()), { fillOpacity: 1, strokeOpacity: 1, normalizedTo: undefined, strokeWidth: 1, lineDash: [0], lineDashOffset: 0, label: {\n enabled: false,\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: this.fontFamily,\n color: 'rgb(70, 70, 70)',\n formatter: undefined,\n placement: INSIDE,\n }, shadow: {\n enabled: false,\n color: 'rgba(0, 0, 0, 0.5)',\n xOffset: 3,\n yOffset: 3,\n blur: 5,\n } });\n };\n ChartTheme.getLineSeriesDefaults = function () {\n var seriesDefaults = this.getSeriesDefaults();\n return __assign$x(__assign$x({}, seriesDefaults), { tooltip: __assign$x(__assign$x({}, seriesDefaults.tooltip), { format: undefined, position: {\n type: 'node',\n } }) });\n };\n ChartTheme.getAreaSeriesDefaults = function () {\n var seriesDefaults = this.getSeriesDefaults();\n return __assign$x(__assign$x({}, seriesDefaults), { nodeClickRange: 'nearest', tooltip: __assign$x(__assign$x({}, seriesDefaults.tooltip), { position: {\n type: 'node',\n } }) });\n };\n ChartTheme.getScatterSeriesDefaults = function () {\n var seriesDefaults = this.getSeriesDefaults();\n return __assign$x(__assign$x({}, seriesDefaults), { tooltip: __assign$x(__assign$x({}, seriesDefaults.tooltip), { position: {\n type: 'node',\n } }) });\n };\n ChartTheme.getCartesianSeriesMarkerDefaults = function () {\n return {\n enabled: true,\n shape: 'circle',\n size: 6,\n maxSize: 30,\n strokeWidth: 1,\n formatter: undefined,\n };\n };\n ChartTheme.getCaptionWrappingDefaults = function () {\n return 'hyphenate';\n };\n ChartTheme.getChartDefaults = function () {\n return {\n background: {\n visible: true,\n fill: 'white',\n },\n padding: {\n top: 20,\n right: 20,\n bottom: 20,\n left: 20,\n },\n title: {\n enabled: false,\n text: 'Title',\n fontStyle: undefined,\n fontWeight: BOLD,\n fontSize: 16,\n fontFamily: this.fontFamily,\n color: 'rgb(70, 70, 70)',\n wrapping: ChartTheme.getCaptionWrappingDefaults(),\n },\n subtitle: {\n enabled: false,\n text: 'Subtitle',\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: this.fontFamily,\n color: 'rgb(140, 140, 140)',\n wrapping: ChartTheme.getCaptionWrappingDefaults(),\n },\n footnote: {\n enabled: false,\n text: 'Footnote',\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: this.fontFamily,\n color: 'rgb(140, 140, 140)',\n spacing: 30,\n wrapping: ChartTheme.getCaptionWrappingDefaults(),\n },\n legend: {\n position: BOTTOM,\n spacing: 20,\n listeners: {},\n item: {\n paddingX: 16,\n paddingY: 8,\n marker: {\n shape: undefined,\n size: 15,\n strokeWidth: 1,\n padding: 8,\n },\n label: {\n color: 'black',\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: this.fontFamily,\n formatter: undefined,\n },\n },\n reverseOrder: false,\n pagination: {\n marker: {\n size: 12,\n },\n activeStyle: {\n fill: 'rgb(70, 70, 70)',\n },\n inactiveStyle: {\n fill: 'rgb(219, 219, 219)',\n },\n highlightStyle: {\n fill: 'rgb(70, 70, 70)',\n },\n label: {\n color: 'rgb(70, 70, 70)',\n },\n },\n },\n tooltip: {\n enabled: true,\n range: 'nearest',\n delay: 0,\n },\n listeners: {},\n };\n };\n ChartTheme.prototype.createChartConfigPerChartType = function (config) {\n var _this = this;\n var typeToAliases = {\n cartesian: CHART_TYPES.cartesianTypes,\n polar: CHART_TYPES.polarTypes,\n hierarchy: CHART_TYPES.hierarchyTypes,\n groupedCategory: [],\n };\n Object.entries(typeToAliases).forEach(function (_a) {\n var _b = __read$t(_a, 2), nextType = _b[0], aliases = _b[1];\n var type = nextType;\n var typeDefaults = _this.templateTheme(getChartDefaults(type));\n aliases.forEach(function (next) {\n var alias = next;\n if (!config[alias]) {\n config[alias] = deepMerge$1({}, config[type]);\n deepMerge$1(config[alias], typeDefaults);\n }\n });\n });\n return config;\n };\n ChartTheme.prototype.getDefaults = function () {\n var _this = this;\n var defaults = deepMerge$1({}, ChartTheme.defaults);\n var getOverridesByType = function (chartType, seriesTypes) {\n var result = _this.templateTheme(getChartDefaults(chartType));\n result.series = seriesTypes.reduce(function (obj, seriesType) {\n var template = getSeriesThemeTemplate(seriesType);\n if (template) {\n obj[seriesType] = _this.templateTheme(template);\n }\n return obj;\n }, {});\n if (chartType === 'cartesian' || chartType === 'polar') {\n result.axes = AXIS_TYPES.axesTypes.reduce(function (obj, axisType) {\n var template = getAxisThemeTemplate(axisType);\n if (template) {\n obj[axisType] = _this.templateTheme(template);\n }\n return obj;\n }, {});\n }\n return result;\n };\n var extension = {\n cartesian: getOverridesByType('cartesian', CHART_TYPES.cartesianTypes),\n groupedCategory: getOverridesByType('cartesian', CHART_TYPES.cartesianTypes),\n polar: getOverridesByType('polar', CHART_TYPES.polarTypes),\n hierarchy: getOverridesByType('hierarchy', CHART_TYPES.hierarchyTypes),\n };\n return deepMerge$1(defaults, extension);\n };\n ChartTheme.prototype.templateTheme = function (themeTemplate) {\n var themeInstance = jsonMerge([themeTemplate]);\n var _a = this.getTemplateParameters(), extensions = _a.extensions, properties = _a.properties;\n jsonWalk(themeInstance, function (_, node) {\n var e_1, _a;\n if (node['__extends__']) {\n var key = node['__extends__'];\n var source_1 = extensions.get(key);\n if (source_1 == null) {\n throw new Error('AG Charts - no template variable provided for: ' + key);\n }\n Object.keys(source_1).forEach(function (key) {\n if (!(key in node)) {\n node[key] = source_1[key];\n }\n });\n delete node['__extends__'];\n }\n if (node['__overrides__']) {\n var key = node['__overrides__'];\n var source = extensions.get(key);\n if (source == null) {\n throw new Error('AG Charts - no template variable provided for: ' + key);\n }\n Object.assign(node, source);\n delete node['__overrides__'];\n }\n try {\n for (var _b = __values$e(Object.entries(node)), _c = _b.next(); !_c.done; _c = _b.next()) {\n var _d = __read$t(_c.value, 2), name_1 = _d[0], value = _d[1];\n if (properties.has(value)) {\n node[name_1] = properties.get(value);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }, {});\n return themeInstance;\n };\n ChartTheme.prototype.getTemplateParameters = function () {\n var extensions = new Map();\n extensions.set(EXTENDS_AXES_DEFAULTS, ChartTheme.getAxisDefaults());\n extensions.set(EXTENDS_AXES_LABEL_DEFAULTS, ChartTheme.getAxisDefaults().label);\n extensions.set(EXTENDS_AXES_LINE_DEFAULTS, ChartTheme.getAxisDefaults().line);\n extensions.set(EXTENDS_SERIES_DEFAULTS, ChartTheme.getSeriesDefaults());\n extensions.set(OVERRIDE_SERIES_LABEL_DEFAULTS, {});\n var properties = new Map();\n properties.set(DEFAULT_FONT_FAMILY, ChartTheme.fontFamily);\n return {\n extensions: extensions,\n properties: properties,\n };\n };\n ChartTheme.prototype.mergeWithParentDefaults = function (parentDefaults, defaults) {\n return deepMerge$1(parentDefaults, defaults);\n };\n ChartTheme.fontFamily = 'Verdana, sans-serif';\n ChartTheme.cartesianDefaults = __assign$x(__assign$x({}, ChartTheme.getChartDefaults()), { axes: {\n number: __assign$x({}, ChartTheme.getAxisDefaults()),\n log: __assign$x(__assign$x({}, ChartTheme.getAxisDefaults()), { base: 10 }),\n category: __assign$x(__assign$x({}, ChartTheme.getAxisDefaults()), { groupPaddingInner: 0.1, label: __assign$x(__assign$x({}, ChartTheme.getAxisDefaults().label), { autoRotate: true }) }),\n groupedCategory: __assign$x({}, ChartTheme.getAxisDefaults()),\n time: __assign$x({}, ChartTheme.getAxisDefaults()),\n }, series: {\n column: __assign$x({}, ChartTheme.getBarSeriesDefaults()),\n bar: __assign$x({}, ChartTheme.getBarSeriesDefaults()),\n line: __assign$x(__assign$x({}, ChartTheme.getLineSeriesDefaults()), { title: undefined, strokeWidth: 2, strokeOpacity: 1, lineDash: [0], lineDashOffset: 0, marker: __assign$x(__assign$x({}, ChartTheme.getCartesianSeriesMarkerDefaults()), { fillOpacity: 1, strokeOpacity: 1 }), label: {\n enabled: false,\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: ChartTheme.fontFamily,\n color: 'rgb(70, 70, 70)',\n formatter: undefined,\n } }),\n scatter: __assign$x(__assign$x({}, ChartTheme.getScatterSeriesDefaults()), { sizeName: 'Size', labelName: 'Label', marker: __assign$x({}, ChartTheme.getCartesianSeriesMarkerDefaults()), label: {\n enabled: false,\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: ChartTheme.fontFamily,\n color: 'rgb(70, 70, 70)',\n } }),\n area: __assign$x(__assign$x({}, ChartTheme.getAreaSeriesDefaults()), { normalizedTo: undefined, fillOpacity: 0.8, strokeOpacity: 1, strokeWidth: 2, lineDash: [0], lineDashOffset: 0, shadow: {\n enabled: false,\n color: 'rgba(0, 0, 0, 0.5)',\n xOffset: 3,\n yOffset: 3,\n blur: 5,\n }, marker: __assign$x(__assign$x({}, ChartTheme.getCartesianSeriesMarkerDefaults()), { fillOpacity: 1, strokeOpacity: 1, enabled: false }), label: {\n enabled: false,\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: ChartTheme.fontFamily,\n color: 'rgb(70, 70, 70)',\n formatter: undefined,\n } }),\n histogram: __assign$x(__assign$x({}, ChartTheme.getSeriesDefaults()), { strokeWidth: 1, fillOpacity: 1, strokeOpacity: 1, lineDash: [0], lineDashOffset: 0, areaPlot: false, bins: undefined, aggregation: 'sum', label: {\n enabled: false,\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: ChartTheme.fontFamily,\n color: 'rgb(70, 70, 70)',\n formatter: undefined,\n }, shadow: {\n enabled: true,\n color: 'rgba(0, 0, 0, 0.5)',\n xOffset: 0,\n yOffset: 0,\n blur: 5,\n } }),\n } });\n ChartTheme.polarDefaults = __assign$x(__assign$x({}, ChartTheme.getChartDefaults()), { series: {\n pie: __assign$x(__assign$x({}, ChartTheme.getSeriesDefaults()), { title: {\n enabled: true,\n fontStyle: undefined,\n fontWeight: 'bold',\n fontSize: 14,\n fontFamily: ChartTheme.fontFamily,\n color: 'rgb(70, 70, 70)',\n spacing: 0,\n }, radiusKey: undefined, radiusName: undefined, calloutLabelKey: undefined, calloutLabelName: undefined, sectorLabelKey: undefined, sectorLabelName: undefined, calloutLabel: {\n enabled: true,\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: ChartTheme.fontFamily,\n color: 'rgb(70, 70, 70)',\n offset: 3,\n minAngle: 0,\n }, sectorLabel: {\n enabled: true,\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: ChartTheme.fontFamily,\n color: 'rgb(70, 70, 70)',\n positionOffset: 0,\n positionRatio: 0.5,\n }, calloutLine: {\n length: 10,\n strokeWidth: 2,\n }, fillOpacity: 1, strokeOpacity: 1, strokeWidth: 1, lineDash: [0], lineDashOffset: 0, rotation: 0, outerRadiusOffset: 0, innerRadiusOffset: 0, shadow: {\n enabled: false,\n color: 'rgba(0, 0, 0, 0.5)',\n xOffset: 3,\n yOffset: 3,\n blur: 5,\n }, innerLabels: {\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: ChartTheme.fontFamily,\n color: 'rgb(70, 70, 70)',\n margin: 2,\n } }),\n } });\n ChartTheme.hierarchyDefaults = __assign$x(__assign$x({}, ChartTheme.getChartDefaults()), { series: {\n treemap: __assign$x(__assign$x({}, ChartTheme.getSeriesDefaults()), { showInLegend: false, labelKey: 'label', sizeKey: 'size', colorKey: 'color', colorDomain: [-5, 5], colorRange: ['#cb4b3f', '#6acb64'], groupFill: '#272931', groupStroke: 'black', groupStrokeWidth: 1, tileStroke: 'black', tileStrokeWidth: 1, gradient: true, tileShadow: {\n enabled: false,\n color: 'rgba(0, 0, 0, 0.5)',\n xOffset: 3,\n yOffset: 3,\n blur: 5,\n }, labelShadow: {\n enabled: true,\n color: 'rgba(0, 0, 0, 0.4)',\n xOffset: 1.5,\n yOffset: 1.5,\n blur: 5,\n }, highlightGroups: true, nodePadding: 2, nodeGap: 0, title: {\n enabled: true,\n color: 'white',\n fontStyle: undefined,\n fontWeight: 'bold',\n fontSize: 12,\n fontFamily: 'Verdana, sans-serif',\n padding: 2,\n }, subtitle: {\n enabled: true,\n color: 'white',\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 9,\n fontFamily: 'Verdana, sans-serif',\n padding: 2,\n }, labels: {\n large: {\n enabled: true,\n fontStyle: undefined,\n fontWeight: 'bold',\n fontSize: 18,\n fontFamily: 'Verdana, sans-serif',\n color: 'white',\n wrapping: 'on-space',\n },\n medium: {\n enabled: true,\n fontStyle: undefined,\n fontWeight: 'bold',\n fontSize: 14,\n fontFamily: 'Verdana, sans-serif',\n color: 'white',\n wrapping: 'on-space',\n },\n small: {\n enabled: true,\n fontStyle: undefined,\n fontWeight: 'bold',\n fontSize: 10,\n fontFamily: 'Verdana, sans-serif',\n color: 'white',\n wrapping: 'on-space',\n },\n value: {\n style: {\n enabled: true,\n fontStyle: undefined,\n fontWeight: undefined,\n fontSize: 12,\n fontFamily: 'Verdana, sans-serif',\n color: 'white',\n },\n },\n } }),\n } });\n ChartTheme.defaults = {\n cartesian: ChartTheme.cartesianDefaults,\n groupedCategory: ChartTheme.cartesianDefaults,\n polar: ChartTheme.polarDefaults,\n hierarchy: ChartTheme.hierarchyDefaults,\n };\n return ChartTheme;\n}());\n\nvar __extends$1X = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$w = (undefined && undefined.__assign) || function () {\n __assign$w = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$w.apply(this, arguments);\n};\nvar DarkTheme = /** @class */ (function (_super) {\n __extends$1X(DarkTheme, _super);\n function DarkTheme(options) {\n return _super.call(this, options) || this;\n }\n DarkTheme.prototype.getDefaults = function () {\n var _this = this;\n var fontColor = DarkTheme.fontColor;\n var mutedFontColor = DarkTheme.mutedFontColor;\n var axisDefaults = {\n title: {\n color: fontColor,\n },\n label: {\n color: fontColor,\n },\n gridStyle: [\n {\n stroke: 'rgb(88, 88, 88)',\n lineDash: [4, 2],\n },\n ],\n };\n var seriesLabelDefaults = {\n label: {\n color: fontColor,\n },\n };\n var chartAxesDefaults = {\n axes: {\n number: __assign$w({}, axisDefaults),\n category: __assign$w({}, axisDefaults),\n time: __assign$w({}, axisDefaults),\n },\n };\n var chartDefaults = {\n background: {\n fill: 'rgb(34, 38, 41)',\n },\n title: {\n color: fontColor,\n },\n subtitle: {\n color: mutedFontColor,\n },\n legend: {\n item: {\n label: {\n color: fontColor,\n },\n },\n pagination: {\n activeStyle: {\n fill: fontColor,\n },\n inactiveStyle: {\n fill: mutedFontColor,\n },\n highlightStyle: {\n fill: fontColor,\n },\n label: {\n color: fontColor,\n },\n },\n },\n };\n var getOverridesByType = function (seriesTypes) {\n return seriesTypes.reduce(function (obj, seriesType) {\n var template = getSeriesThemeTemplate(seriesType);\n if (template) {\n obj[seriesType] = _this.templateTheme(template);\n }\n return obj;\n }, {});\n };\n return this.mergeWithParentDefaults(_super.prototype.getDefaults.call(this), {\n cartesian: __assign$w(__assign$w(__assign$w({}, chartDefaults), chartAxesDefaults), { series: __assign$w({ line: __assign$w({}, seriesLabelDefaults), bar: __assign$w({}, seriesLabelDefaults), column: __assign$w({}, seriesLabelDefaults), histogram: __assign$w({}, seriesLabelDefaults) }, getOverridesByType(CHART_TYPES.cartesianTypes)) }),\n groupedCategory: __assign$w(__assign$w(__assign$w({}, chartDefaults), chartAxesDefaults), { series: __assign$w({ bar: __assign$w({}, seriesLabelDefaults), column: __assign$w({}, seriesLabelDefaults), histogram: __assign$w({}, seriesLabelDefaults) }, getOverridesByType(CHART_TYPES.cartesianTypes)) }),\n polar: __assign$w(__assign$w({}, chartDefaults), { series: __assign$w({ pie: {\n calloutLabel: {\n color: fontColor,\n },\n sectorLabel: {\n color: fontColor,\n },\n title: {\n color: fontColor,\n },\n innerLabels: {\n color: fontColor,\n },\n } }, getOverridesByType(CHART_TYPES.polarTypes)) }),\n hierarchy: __assign$w(__assign$w({}, chartDefaults), { series: __assign$w({ treemap: {\n tileStroke: 'white',\n groupStroke: 'white',\n title: {\n color: fontColor,\n },\n subtitle: {\n color: mutedFontColor,\n },\n labels: {\n large: {\n color: fontColor,\n },\n medium: {\n color: fontColor,\n },\n small: {\n color: fontColor,\n },\n value: {\n style: {\n color: fontColor,\n },\n },\n },\n } }, getOverridesByType(CHART_TYPES.hierarchyTypes)) }),\n });\n };\n DarkTheme.prototype.getTemplateParameters = function () {\n var result = _super.prototype.getTemplateParameters.call(this);\n result.extensions.set(OVERRIDE_SERIES_LABEL_DEFAULTS, DarkTheme.seriesLabelDefaults.label);\n return result;\n };\n DarkTheme.fontColor = 'rgb(200, 200, 200)';\n DarkTheme.mutedFontColor = 'rgb(150, 150, 150)';\n DarkTheme.seriesLabelDefaults = {\n label: {\n color: DarkTheme.fontColor,\n },\n };\n return DarkTheme;\n}(ChartTheme));\n\nvar __extends$1W = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar palette$7 = {\n fills: [\n '#f44336',\n '#e91e63',\n '#9c27b0',\n '#673ab7',\n '#3f51b5',\n '#2196f3',\n '#03a9f4',\n '#00bcd4',\n '#009688',\n '#4caf50',\n '#8bc34a',\n '#cddc39',\n '#ffeb3b',\n '#ffc107',\n '#ff9800',\n '#ff5722',\n ],\n strokes: [\n '#ab2f26',\n '#a31545',\n '#6d1b7b',\n '#482980',\n '#2c397f',\n '#1769aa',\n '#0276ab',\n '#008494',\n '#00695f',\n '#357a38',\n '#618834',\n '#909a28',\n '#b3a429',\n '#b38705',\n '#b36a00',\n '#b33d18',\n ],\n};\nvar MaterialLight = /** @class */ (function (_super) {\n __extends$1W(MaterialLight, _super);\n function MaterialLight() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MaterialLight.prototype.getPalette = function () {\n return palette$7;\n };\n return MaterialLight;\n}(ChartTheme));\n\nvar __extends$1V = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar palette$6 = {\n fills: [\n '#f44336',\n '#e91e63',\n '#9c27b0',\n '#673ab7',\n '#3f51b5',\n '#2196f3',\n '#03a9f4',\n '#00bcd4',\n '#009688',\n '#4caf50',\n '#8bc34a',\n '#cddc39',\n '#ffeb3b',\n '#ffc107',\n '#ff9800',\n '#ff5722',\n ],\n strokes: [\n '#ab2f26',\n '#a31545',\n '#6d1b7b',\n '#482980',\n '#2c397f',\n '#1769aa',\n '#0276ab',\n '#008494',\n '#00695f',\n '#357a38',\n '#618834',\n '#909a28',\n '#b3a429',\n '#b38705',\n '#b36a00',\n '#b33d18',\n ],\n};\nvar MaterialDark = /** @class */ (function (_super) {\n __extends$1V(MaterialDark, _super);\n function MaterialDark() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MaterialDark.prototype.getPalette = function () {\n return palette$6;\n };\n return MaterialDark;\n}(DarkTheme));\n\nvar __extends$1U = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar palette$5 = {\n fills: ['#c16068', '#a2bf8a', '#ebcc87', '#80a0c3', '#b58dae', '#85c0d1'],\n strokes: ['#874349', '#718661', '#a48f5f', '#5a7088', '#7f637a', '#5d8692'],\n};\nvar PastelLight = /** @class */ (function (_super) {\n __extends$1U(PastelLight, _super);\n function PastelLight() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PastelLight.prototype.getPalette = function () {\n return palette$5;\n };\n return PastelLight;\n}(ChartTheme));\n\nvar __extends$1T = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar palette$4 = {\n fills: ['#c16068', '#a2bf8a', '#ebcc87', '#80a0c3', '#b58dae', '#85c0d1'],\n strokes: ['#874349', '#718661', '#a48f5f', '#5a7088', '#7f637a', '#5d8692'],\n};\nvar PastelDark = /** @class */ (function (_super) {\n __extends$1T(PastelDark, _super);\n function PastelDark() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n PastelDark.prototype.getPalette = function () {\n return palette$4;\n };\n return PastelDark;\n}(DarkTheme));\n\nvar __extends$1S = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar palette$3 = {\n fills: [\n '#febe76',\n '#ff7979',\n '#badc58',\n '#f9ca23',\n '#f0932b',\n '#eb4c4b',\n '#6ab04c',\n '#7ed6df',\n '#e056fd',\n '#686de0',\n ],\n strokes: [\n '#b28553',\n '#b35555',\n '#829a3e',\n '#ae8d19',\n '#a8671e',\n '#a43535',\n '#4a7b35',\n '#58969c',\n '#9d3cb1',\n '#494c9d',\n ],\n};\nvar SolarLight = /** @class */ (function (_super) {\n __extends$1S(SolarLight, _super);\n function SolarLight() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SolarLight.prototype.getPalette = function () {\n return palette$3;\n };\n return SolarLight;\n}(ChartTheme));\n\nvar __extends$1R = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar palette$2 = {\n fills: [\n '#febe76',\n '#ff7979',\n '#badc58',\n '#f9ca23',\n '#f0932b',\n '#eb4c4b',\n '#6ab04c',\n '#7ed6df',\n '#e056fd',\n '#686de0',\n ],\n strokes: [\n '#b28553',\n '#b35555',\n '#829a3e',\n '#ae8d19',\n '#a8671e',\n '#a43535',\n '#4a7b35',\n '#58969c',\n '#9d3cb1',\n '#494c9d',\n ],\n};\nvar SolarDark = /** @class */ (function (_super) {\n __extends$1R(SolarDark, _super);\n function SolarDark() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SolarDark.prototype.getPalette = function () {\n return palette$2;\n };\n return SolarDark;\n}(DarkTheme));\n\nvar __extends$1Q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar palette$1 = {\n fills: ['#5BC0EB', '#FDE74C', '#9BC53D', '#E55934', '#FA7921', '#fa3081'],\n strokes: ['#4086a4', '#b1a235', '#6c8a2b', '#a03e24', '#af5517', '#af225a'],\n};\nvar VividLight = /** @class */ (function (_super) {\n __extends$1Q(VividLight, _super);\n function VividLight() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n VividLight.prototype.getPalette = function () {\n return palette$1;\n };\n return VividLight;\n}(ChartTheme));\n\nvar __extends$1P = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar palette = {\n fills: ['#5BC0EB', '#FDE74C', '#9BC53D', '#E55934', '#FA7921', '#fa3081'],\n strokes: ['#4086a4', '#b1a235', '#6c8a2b', '#a03e24', '#af5517', '#af225a'],\n};\nvar VividDark = /** @class */ (function (_super) {\n __extends$1P(VividDark, _super);\n function VividDark() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n VividDark.prototype.getPalette = function () {\n return palette;\n };\n return VividDark;\n}(DarkTheme));\n\nvar __assign$v = (undefined && undefined.__assign) || function () {\n __assign$v = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$v.apply(this, arguments);\n};\nvar lightTheme = function () { return new ChartTheme(); };\nvar darkTheme = function () { return new DarkTheme(); };\nvar lightThemes = {\n undefined: lightTheme,\n null: lightTheme,\n 'ag-default': lightTheme,\n 'ag-material': function () { return new MaterialLight(); },\n 'ag-pastel': function () { return new PastelLight(); },\n 'ag-solar': function () { return new SolarLight(); },\n 'ag-vivid': function () { return new VividLight(); },\n};\nvar darkThemes = {\n undefined: darkTheme,\n null: darkTheme,\n 'ag-default-dark': darkTheme,\n 'ag-material-dark': function () { return new MaterialDark(); },\n 'ag-pastel-dark': function () { return new PastelDark(); },\n 'ag-solar-dark': function () { return new SolarDark(); },\n 'ag-vivid-dark': function () { return new VividDark(); },\n};\nvar themes$1 = __assign$v(__assign$v({}, darkThemes), lightThemes);\nfunction getChartTheme(value) {\n var _a;\n if (value instanceof ChartTheme) {\n return value;\n }\n var stockTheme = themes$1[value];\n if (stockTheme) {\n return stockTheme();\n }\n value = value;\n // Flatten recursive themes.\n var overrides = [];\n var palette;\n while (typeof value === 'object') {\n overrides.push((_a = value.overrides) !== null && _a !== void 0 ? _a : {});\n // Use first palette found, they can't be merged.\n if (value.palette && palette == null) {\n palette = value.palette;\n }\n value = value.baseTheme;\n }\n overrides.reverse();\n var flattenedTheme = __assign$v({ baseTheme: value, overrides: jsonMerge(overrides) }, (palette ? { palette: palette } : {}));\n if (flattenedTheme.baseTheme || flattenedTheme.overrides) {\n var baseTheme = getChartTheme(flattenedTheme.baseTheme);\n return new baseTheme.constructor(flattenedTheme);\n }\n return lightTheme();\n}\n\nvar __assign$u = (undefined && undefined.__assign) || function () {\n __assign$u = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$u.apply(this, arguments);\n};\nvar __values$d = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$s = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$g = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar STACKABLE_SERIES_TYPES = ['bar', 'column', 'area'];\nvar GROUPABLE_SERIES_TYPES = ['bar', 'column'];\n/**\n * Groups the series options objects if they are of type `column` or `bar` and places them in an array at the index where the first instance of this series type was found.\n * Returns an array of arrays containing the ordered and grouped series options objects.\n */\nfunction groupSeriesByType(seriesOptions) {\n var e_1, _a, e_2, _b;\n var _c, _d, _e, _f, _g, _h;\n var groupMap = {};\n var stackMap = {};\n var anyStacked = {};\n var defaultUnstackedGroup = 'default-ag-charts-group';\n var result = [];\n try {\n for (var seriesOptions_1 = __values$d(seriesOptions), seriesOptions_1_1 = seriesOptions_1.next(); !seriesOptions_1_1.done; seriesOptions_1_1 = seriesOptions_1.next()) {\n var s = seriesOptions_1_1.value;\n var type = (_c = s.type) !== null && _c !== void 0 ? _c : 'line';\n var stackable = STACKABLE_SERIES_TYPES.includes(type);\n var groupable = GROUPABLE_SERIES_TYPES.includes(type);\n if (!stackable && !groupable) {\n // No need to use index for these cases.\n result.push({ type: 'ungrouped', opts: [s] });\n continue;\n }\n var _j = s, sStacked = _j.stacked, sStackGroup = _j.stackGroup, _k = _j.grouped, sGrouped = _k === void 0 ? undefined : _k, xKey = _j.xKey;\n var stacked = sStackGroup != null || sStacked === true;\n (_d = anyStacked[type]) !== null && _d !== void 0 ? _d : (anyStacked[type] = false);\n anyStacked[type] || (anyStacked[type] = stacked);\n var grouped = sGrouped === true;\n var groupingKey = [sStackGroup !== null && sStackGroup !== void 0 ? sStackGroup : (sStacked === true ? 'stacked' : undefined), grouped ? 'grouped' : undefined]\n .filter(function (v) { return v != null; })\n .join('-');\n if (!groupingKey) {\n groupingKey = defaultUnstackedGroup;\n }\n var indexKey = type + \"-\" + xKey + \"-\" + groupingKey;\n if (stacked && stackable) {\n var updated = ((_e = stackMap[indexKey]) !== null && _e !== void 0 ? _e : (stackMap[indexKey] = { type: 'stack', opts: [] }));\n if (updated.opts.length === 0)\n result.push(updated);\n updated.opts.push(s);\n }\n else if (grouped && groupable) {\n var updated = ((_f = groupMap[indexKey]) !== null && _f !== void 0 ? _f : (groupMap[indexKey] = { type: 'group', opts: [] }));\n if (updated.opts.length === 0)\n result.push(updated);\n updated.opts.push(s);\n }\n else {\n result.push({ type: 'ungrouped', opts: [s] });\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (seriesOptions_1_1 && !seriesOptions_1_1.done && (_a = seriesOptions_1.return)) _a.call(seriesOptions_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n if (!Object.values(anyStacked).some(function (v) { return v; })) {\n return result;\n }\n try {\n for (var _l = __values$d(Object.entries(groupMap)), _m = _l.next(); !_m.done; _m = _l.next()) {\n var _o = __read$s(_m.value, 2), group = _o[1];\n var type = (_h = (_g = group.opts[0]) === null || _g === void 0 ? void 0 : _g.type) !== null && _h !== void 0 ? _h : 'line';\n if (anyStacked[type] !== true)\n continue;\n group.type = 'stack';\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_m && !_m.done && (_b = _l.return)) _b.call(_l);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return result;\n}\nvar DEBUG = function () { return [true, 'opts'].includes(windowValue('agChartsDebug')); };\n/**\n * Transforms provided series options array into an array containing series options which are compatible with standalone charts series options.\n */\nfunction processSeriesOptions(_opts, seriesOptions) {\n var e_3, _a;\n var result = [];\n var preprocessed = seriesOptions.map(function (series) {\n var _a;\n // Change the default for bar/columns when yKey is used to be grouped rather than stacked.\n if ((series.type === 'bar' || series.type === 'column') && series.yKey != null && !series.stacked) {\n return __assign$u(__assign$u({}, series), { grouped: (_a = series.grouped) !== null && _a !== void 0 ? _a : true });\n }\n return series;\n });\n var grouped = groupSeriesByType(preprocessed);\n var groupCount = grouped.reduce(function (result, next) {\n var _a, _b;\n if (next.type === 'ungrouped')\n return result;\n var seriesType = (_a = next.opts[0].type) !== null && _a !== void 0 ? _a : 'line';\n (_b = result[seriesType]) !== null && _b !== void 0 ? _b : (result[seriesType] = 0);\n result[seriesType] += next.type === 'stack' ? 1 : next.opts.length;\n return result;\n }, {});\n var groupIdx = {};\n var addSeriesGroupingMeta = function (group) {\n var e_4, _a, e_5, _b, e_6, _c;\n var _d, _e;\n var stackIdx = 0;\n var seriesType = (_d = group.opts[0].type) !== null && _d !== void 0 ? _d : 'line';\n (_e = groupIdx[seriesType]) !== null && _e !== void 0 ? _e : (groupIdx[seriesType] = 0);\n if (group.type === 'stack') {\n try {\n for (var _f = __values$d(group.opts), _g = _f.next(); !_g.done; _g = _f.next()) {\n var opts = _g.value;\n opts.seriesGrouping = {\n groupIndex: groupIdx[seriesType],\n groupCount: groupCount[seriesType],\n stackIndex: stackIdx++,\n stackCount: group.opts.length,\n };\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (_g && !_g.done && (_a = _f.return)) _a.call(_f);\n }\n finally { if (e_4) throw e_4.error; }\n }\n groupIdx[seriesType]++;\n }\n else if (group.type === 'group') {\n try {\n for (var _h = __values$d(group.opts), _j = _h.next(); !_j.done; _j = _h.next()) {\n var opts = _j.value;\n opts.seriesGrouping = {\n groupIndex: groupIdx[seriesType],\n groupCount: groupCount[seriesType],\n stackIndex: 0,\n stackCount: 0,\n };\n groupIdx[seriesType]++;\n }\n }\n catch (e_5_1) { e_5 = { error: e_5_1 }; }\n finally {\n try {\n if (_j && !_j.done && (_b = _h.return)) _b.call(_h);\n }\n finally { if (e_5) throw e_5.error; }\n }\n }\n else {\n try {\n for (var _k = __values$d(group.opts), _l = _k.next(); !_l.done; _l = _k.next()) {\n var opts = _l.value;\n opts.seriesGrouping = undefined;\n }\n }\n catch (e_6_1) { e_6 = { error: e_6_1 }; }\n finally {\n try {\n if (_l && !_l.done && (_c = _k.return)) _c.call(_k);\n }\n finally { if (e_6) throw e_6.error; }\n }\n }\n return group.opts;\n };\n if (DEBUG()) {\n Logger.debug('processSeriesOptions() - series grouping: ', grouped);\n }\n try {\n for (var grouped_1 = __values$d(grouped), grouped_1_1 = grouped_1.next(); !grouped_1_1.done; grouped_1_1 = grouped_1.next()) {\n var group = grouped_1_1.value;\n switch (group.opts[0].type) {\n case 'column':\n case 'bar':\n case 'area':\n result.push.apply(result, __spreadArray$g([], __read$s(addSeriesGroupingMeta(group))));\n break;\n case 'line':\n default:\n if (group.opts.length > 1) {\n Logger.warn('unexpected grouping of series type: ' + group.opts[0].type);\n }\n result.push.apply(result, __spreadArray$g([], __read$s(group.opts)));\n break;\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (grouped_1_1 && !grouped_1_1.done && (_a = grouped_1.return)) _a.call(grouped_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return result;\n}\n\nvar __assign$t = (undefined && undefined.__assign) || function () {\n __assign$t = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$t.apply(this, arguments);\n};\nvar __values$c = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$r = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$f = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nfunction optionsType(input) {\n var _a, _b, _c, _d;\n return (_d = (_a = input.type) !== null && _a !== void 0 ? _a : (_c = (_b = input.series) === null || _b === void 0 ? void 0 : _b[0]) === null || _c === void 0 ? void 0 : _c.type) !== null && _d !== void 0 ? _d : 'line';\n}\nfunction isAgCartesianChartOptions(input) {\n var specifiedType = optionsType(input);\n if (specifiedType == null) {\n return true;\n }\n if (specifiedType === 'cartesian') {\n Logger.warnOnce(\"type '\" + specifiedType + \"' is deprecated, use a series type instead\");\n return true;\n }\n return CHART_TYPES.isCartesian(specifiedType);\n}\nfunction isAgHierarchyChartOptions(input) {\n var specifiedType = optionsType(input);\n if (specifiedType == null) {\n return false;\n }\n if (specifiedType === 'hierarchy') {\n Logger.warnOnce(\"type '\" + specifiedType + \"' is deprecated, use a series type instead\");\n return true;\n }\n return CHART_TYPES.isHierarchy(specifiedType);\n}\nfunction isAgPolarChartOptions(input) {\n var specifiedType = optionsType(input);\n if (specifiedType == null) {\n return false;\n }\n if (specifiedType === 'polar') {\n Logger.warnOnce(\"type '\" + specifiedType + \"' is deprecated, use a series type instead\");\n return true;\n }\n return CHART_TYPES.isPolar(specifiedType);\n}\nfunction isSeriesOptionType(input) {\n if (input == null) {\n return false;\n }\n return CHART_TYPES.has(input);\n}\nfunction isAxisOptionType(input) {\n if (input == null) {\n return false;\n }\n return AXIS_TYPES.has(input);\n}\nfunction countArrayElements(input) {\n var e_1, _a;\n var count = 0;\n try {\n for (var input_1 = __values$c(input), input_1_1 = input_1.next(); !input_1_1.done; input_1_1 = input_1.next()) {\n var next = input_1_1.value;\n if (next instanceof Array) {\n count += countArrayElements(next);\n }\n if (next != null) {\n count++;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (input_1_1 && !input_1_1.done && (_a = input_1.return)) _a.call(input_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return count;\n}\nfunction takeColours(context, colours, maxCount) {\n var result = [];\n for (var count = 0; count < maxCount; count++) {\n result.push(colours[(count + context.colourIndex) % colours.length]);\n }\n return result;\n}\nvar noDataCloneMergeOptions = {\n avoidDeepClone: ['data'],\n};\nfunction prepareOptions(newOptions, fallbackOptions) {\n var e_2, _a, e_3, _b;\n var _c, _d, _e, _f, _g, _h;\n var options = jsonMerge([fallbackOptions, newOptions], noDataCloneMergeOptions);\n sanityCheckOptions(options);\n // Determine type and ensure it's explicit in the options config.\n var userSuppliedOptionsType = options.type;\n var type = optionsType(options);\n var globalTooltipPositionOptions = (_d = (_c = options.tooltip) === null || _c === void 0 ? void 0 : _c.position) !== null && _d !== void 0 ? _d : {};\n var checkSeriesType = function (type) {\n if (type != null && !(isSeriesOptionType(type) || getSeriesDefaults(type))) {\n throw new Error(\"AG Charts - unknown series type: \" + type + \"; expected one of: \" + CHART_TYPES.seriesTypes);\n }\n };\n checkSeriesType(type);\n try {\n for (var _j = __values$c((_e = options.series) !== null && _e !== void 0 ? _e : []), _k = _j.next(); !_k.done; _k = _j.next()) {\n var seriesType = _k.value.type;\n if (seriesType == null)\n continue;\n checkSeriesType(seriesType);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_k && !_k.done && (_a = _j.return)) _a.call(_j);\n }\n finally { if (e_2) throw e_2.error; }\n }\n options = __assign$t(__assign$t({}, options), { type: type });\n var defaultSeriesType = 'line';\n if (isAgCartesianChartOptions(options)) {\n defaultSeriesType = 'line';\n }\n else if (isAgHierarchyChartOptions(options)) {\n defaultSeriesType = 'treemap';\n }\n else if (isAgPolarChartOptions(options)) {\n defaultSeriesType = 'pie';\n }\n var defaultOverrides = {};\n var seriesDefaults = getSeriesDefaults(type);\n if (seriesDefaults) {\n defaultOverrides = seriesDefaults;\n }\n else if (type === 'bar') {\n defaultOverrides = DEFAULT_BAR_CHART_OVERRIDES;\n }\n else if (type === 'scatter' || type === 'histogram') {\n defaultOverrides = DEFAULT_SCATTER_HISTOGRAM_CHART_OVERRIDES;\n }\n else if (isAgCartesianChartOptions(options)) {\n defaultOverrides = DEFAULT_CARTESIAN_CHART_OVERRIDES;\n }\n removeDisabledOptions(options);\n var _l = prepareMainOptions(defaultOverrides, options), context = _l.context, mergedOptions = _l.mergedOptions, axesThemes = _l.axesThemes, seriesThemes = _l.seriesThemes;\n // Special cases where we have arrays of elements which need their own defaults.\n // Apply series themes before calling processSeriesOptions() as it reduces and renames some\n // properties, and in that case then cannot correctly have themes applied.\n mergedOptions.series = processSeriesOptions(mergedOptions, ((_f = mergedOptions.series) !== null && _f !== void 0 ? _f : []).map(function (s) {\n var type = defaultSeriesType;\n if (s.type) {\n type = s.type;\n }\n else if (isSeriesOptionType(userSuppliedOptionsType)) {\n type = userSuppliedOptionsType;\n }\n var mergedSeries = mergeSeriesOptions(s, type, seriesThemes, globalTooltipPositionOptions);\n if (type === 'pie') {\n preparePieOptions(seriesThemes.pie, s, mergedSeries);\n }\n return mergedSeries;\n })).map(function (s) { return prepareSeries(context, s); });\n var checkAxisType = function (type) {\n var isAxisType = isAxisOptionType(type);\n if (!isAxisType) {\n Logger.warnOnce(\"AG Charts - unknown axis type: \" + type + \"; expected one of: \" + AXIS_TYPES.axesTypes + \", ignoring.\");\n }\n return isAxisType;\n };\n if ('axes' in mergedOptions) {\n var validAxesTypes = true;\n try {\n for (var _m = __values$c((_g = mergedOptions.axes) !== null && _g !== void 0 ? _g : []), _o = _m.next(); !_o.done; _o = _m.next()) {\n var axisType = _o.value.type;\n if (!checkAxisType(axisType)) {\n validAxesTypes = false;\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_o && !_o.done && (_b = _m.return)) _b.call(_m);\n }\n finally { if (e_3) throw e_3.error; }\n }\n if (!validAxesTypes) {\n mergedOptions.axes = defaultOverrides.axes;\n }\n else {\n mergedOptions.axes = (_h = mergedOptions.axes) === null || _h === void 0 ? void 0 : _h.map(function (axis) {\n var _a, _b;\n var axisType = axis.type;\n var axesTheme = jsonMerge([\n axesThemes[axisType],\n (_b = axesThemes[axisType][(_a = axis.position) !== null && _a !== void 0 ? _a : 'unknown']) !== null && _b !== void 0 ? _b : {},\n ]);\n return prepareAxis(axis, axesTheme);\n });\n }\n prepareLegendEnabledOption(options, mergedOptions);\n }\n prepareEnabledOptions(options, mergedOptions);\n return mergedOptions;\n}\nfunction sanityCheckOptions(options) {\n var deprecatedArrayProps = {\n yKeys: 'yKey',\n yNames: 'yName',\n };\n Object.entries(deprecatedArrayProps).forEach(function (_a) {\n var _b;\n var _c = __read$r(_a, 2), oldProp = _c[0], newProp = _c[1];\n if ((_b = options.series) === null || _b === void 0 ? void 0 : _b.some(function (s) { return s[oldProp] != null; })) {\n Logger.warnOnce(\"property [series.\" + oldProp + \"] is deprecated, please use [series.\" + newProp + \"] and multiple series instead.\");\n }\n });\n}\nfunction mergeSeriesOptions(series, type, seriesThemes, globalTooltipPositionOptions) {\n var _a, _b;\n var mergedTooltipPosition = jsonMerge([__assign$t({}, globalTooltipPositionOptions), (_a = series.tooltip) === null || _a === void 0 ? void 0 : _a.position], noDataCloneMergeOptions);\n var mergedSeries = jsonMerge([\n (_b = seriesThemes[type]) !== null && _b !== void 0 ? _b : {},\n __assign$t(__assign$t({}, series), { type: type, tooltip: __assign$t(__assign$t({}, series.tooltip), { position: mergedTooltipPosition }) }),\n ], noDataCloneMergeOptions);\n return mergedSeries;\n}\nfunction prepareMainOptions(defaultOverrides, options) {\n var _a = prepareTheme(options), theme = _a.theme, cleanedTheme = _a.cleanedTheme, axesThemes = _a.axesThemes, seriesThemes = _a.seriesThemes;\n var context = { colourIndex: 0, palette: theme.palette };\n var mergedOptions = jsonMerge([defaultOverrides, cleanedTheme, options], noDataCloneMergeOptions);\n return { context: context, mergedOptions: mergedOptions, axesThemes: axesThemes, seriesThemes: seriesThemes };\n}\nfunction prepareTheme(options) {\n var _a, _b;\n var theme = getChartTheme(options.theme);\n var themeConfig = theme.config[(_a = optionsType(options)) !== null && _a !== void 0 ? _a : 'cartesian'];\n var seriesThemes = Object.entries(theme.config).reduce(function (result, _a) {\n var _b = __read$r(_a, 2), seriesType = _b[0], series = _b[1].series;\n result[seriesType] = series === null || series === void 0 ? void 0 : series[seriesType];\n return result;\n }, {});\n return {\n theme: theme,\n axesThemes: (_b = themeConfig['axes']) !== null && _b !== void 0 ? _b : {},\n seriesThemes: seriesThemes,\n cleanedTheme: jsonMerge([themeConfig, { axes: DELETE, series: DELETE }]),\n };\n}\nfunction prepareSeries(context, input) {\n var defaults = [];\n for (var _i = 2; _i < arguments.length; _i++) {\n defaults[_i - 2] = arguments[_i];\n }\n var paletteOptions = calculateSeriesPalette(context, input);\n // Part of the options interface, but not directly consumed by the series implementations.\n var removeOptions = { stacked: DELETE, grouped: DELETE };\n return jsonMerge(__spreadArray$f(__spreadArray$f([], __read$r(defaults)), [paletteOptions, input, removeOptions]), noDataCloneMergeOptions);\n}\naddSeriesPaletteFactory('pie', function (_a) {\n var takeColors = _a.takeColors, colorsCount = _a.colorsCount;\n return takeColors(colorsCount);\n});\nvar singleSeriesPaletteFactory = function (_a) {\n var takeColors = _a.takeColors;\n var _b = takeColors(1), _c = __read$r(_b.fills, 1), fill = _c[0], _d = __read$r(_b.strokes, 1), stroke = _d[0];\n return { fill: fill, stroke: stroke };\n};\naddSeriesPaletteFactory('area', singleSeriesPaletteFactory);\naddSeriesPaletteFactory('bar', singleSeriesPaletteFactory);\naddSeriesPaletteFactory('column', singleSeriesPaletteFactory);\naddSeriesPaletteFactory('histogram', singleSeriesPaletteFactory);\naddSeriesPaletteFactory('scatter', function (params) {\n var _a = singleSeriesPaletteFactory(params), fill = _a.fill, stroke = _a.stroke;\n return { marker: { fill: fill, stroke: stroke } };\n});\naddSeriesPaletteFactory('line', function (params) {\n var _a = singleSeriesPaletteFactory(params), fill = _a.fill, stroke = _a.stroke;\n return {\n stroke: fill,\n marker: { fill: fill, stroke: stroke },\n };\n});\nfunction calculateSeriesPalette(context, input) {\n var _a;\n var paletteFactory = getSeriesPaletteFactory(input.type);\n if (!paletteFactory) {\n return {};\n }\n var _b = context.palette, fills = _b.fills, strokes = _b.strokes;\n var inputAny = input;\n var seriesCount = countArrayElements((_a = inputAny['yKeys']) !== null && _a !== void 0 ? _a : []) || 1; // Defaults to 1 if no yKeys.\n var colorsCount = Math.max(fills.length, strokes.length);\n return paletteFactory({\n seriesCount: seriesCount,\n colorsCount: colorsCount,\n takeColors: function (count) {\n var colors = {\n fills: takeColours(context, fills, count),\n strokes: takeColours(context, strokes, count),\n };\n context.colourIndex += count;\n return colors;\n },\n });\n}\nfunction prepareAxis(axis, axisTheme) {\n // Remove redundant theme overload keys.\n var removeOptions = { top: DELETE, bottom: DELETE, left: DELETE, right: DELETE };\n // Special cross lines case where we have an array of cross line elements which need their own defaults.\n if (axis.crossLines) {\n if (!Array.isArray(axis.crossLines)) {\n Logger.warn('axis[].crossLines should be an array.');\n axis.crossLines = [];\n }\n var crossLinesTheme_1 = axisTheme.crossLines;\n axis.crossLines = axis.crossLines.map(function (crossLine) { return jsonMerge([crossLinesTheme_1, crossLine]); });\n }\n var cleanTheme = { crossLines: DELETE };\n return jsonMerge([axisTheme, cleanTheme, axis, removeOptions], noDataCloneMergeOptions);\n}\nfunction removeDisabledOptions(options) {\n // Remove configurations from all option objects with a `false` value for the `enabled` property.\n jsonWalk(options, function (_, visitingUserOpts) {\n if (!('enabled' in visitingUserOpts))\n return;\n if (visitingUserOpts.enabled === false) {\n Object.entries(visitingUserOpts).forEach(function (_a) {\n var _b = __read$r(_a, 1), key = _b[0];\n if (key === 'enabled')\n return;\n delete visitingUserOpts[key];\n });\n }\n }, { skip: ['data', 'theme'] });\n}\nfunction prepareLegendEnabledOption(options, mergedOptions) {\n var _a, _b, _c, _d;\n // Disable legend by default for single series cartesian charts\n if (((_a = options.legend) === null || _a === void 0 ? void 0 : _a.enabled) !== undefined || ((_b = mergedOptions.legend) === null || _b === void 0 ? void 0 : _b.enabled) !== undefined) {\n return;\n }\n (_c = mergedOptions.legend) !== null && _c !== void 0 ? _c : (mergedOptions.legend = {});\n if (((_d = options.series) !== null && _d !== void 0 ? _d : []).length > 1) {\n mergedOptions.legend.enabled = true;\n return;\n }\n mergedOptions.legend.enabled = false;\n}\nfunction prepareEnabledOptions(options, mergedOptions) {\n // Set `enabled: true` for all option objects where the user has provided values.\n jsonWalk(options, function (_, visitingUserOpts, visitingMergedOpts) {\n if (!visitingMergedOpts)\n return;\n var _enabledFromTheme = visitingMergedOpts._enabledFromTheme;\n if (_enabledFromTheme != null) {\n // Do not apply special handling, base enablement on theme.\n delete visitingMergedOpts._enabledFromTheme;\n }\n if (!('enabled' in visitingMergedOpts))\n return;\n if (_enabledFromTheme)\n return;\n if (visitingUserOpts.enabled == null) {\n visitingMergedOpts.enabled = true;\n }\n }, { skip: ['data', 'theme'] }, mergedOptions);\n // Cleanup any special properties.\n jsonWalk(mergedOptions, function (_, visitingMergedOpts) {\n if (visitingMergedOpts._enabledFromTheme != null) {\n // Do not apply special handling, base enablement on theme.\n delete visitingMergedOpts._enabledFromTheme;\n }\n }, { skip: ['data', 'theme'] });\n}\nfunction preparePieOptions(pieSeriesTheme, seriesOptions, mergedSeries) {\n if (Array.isArray(seriesOptions.innerLabels)) {\n mergedSeries.innerLabels = seriesOptions.innerLabels.map(function (ln) {\n return jsonMerge([pieSeriesTheme.innerLabels, ln]);\n });\n }\n else {\n mergedSeries.innerLabels = DELETE;\n }\n}\n\nvar __values$b = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar BaseModuleInstance = /** @class */ (function () {\n function BaseModuleInstance() {\n this.destroyFns = [];\n }\n BaseModuleInstance.prototype.destroy = function () {\n var e_1, _a;\n try {\n for (var _b = __values$b(this.destroyFns), _c = _b.next(); !_c.done; _c = _b.next()) {\n var destroyFn = _c.value;\n destroyFn();\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n return BaseModuleInstance;\n}());\nvar REGISTERED_MODULES = [];\nfunction registerModule(module) {\n var otherModule = REGISTERED_MODULES.find(function (other) {\n return (module.type === other.type &&\n module.optionsKey === other.optionsKey &&\n module.identifier === other.identifier);\n });\n if (otherModule) {\n if (module.packageType === 'enterprise' && otherModule.packageType === 'community') {\n // Replace the community module with an enterprise version\n var index = REGISTERED_MODULES.indexOf(otherModule);\n REGISTERED_MODULES.splice(index, 1, module);\n }\n }\n else {\n // Simply register the module\n REGISTERED_MODULES.push(module);\n }\n}\n\nvar __extends$1O = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RangeHandle$1 = /** @class */ (function (_super) {\n __extends$1O(RangeHandle, _super);\n function RangeHandle() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._fill = '#f2f2f2';\n _this._stroke = '#999999';\n _this._strokeWidth = 1;\n _this._lineCap = 'square';\n _this._centerX = 0;\n _this._centerY = 0;\n // Use an even number for better looking results.\n _this._width = 8;\n // Use an even number for better looking results.\n _this._gripLineGap = 2;\n // Use an even number for better looking results.\n _this._gripLineLength = 8;\n _this._height = 16;\n return _this;\n }\n Object.defineProperty(RangeHandle.prototype, \"centerX\", {\n get: function () {\n return this._centerX;\n },\n set: function (value) {\n if (this._centerX !== value) {\n this._centerX = value;\n this.dirtyPath = true;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RangeHandle.prototype, \"centerY\", {\n get: function () {\n return this._centerY;\n },\n set: function (value) {\n if (this._centerY !== value) {\n this._centerY = value;\n this.dirtyPath = true;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RangeHandle.prototype, \"width\", {\n get: function () {\n return this._width;\n },\n set: function (value) {\n if (this._width !== value) {\n this._width = value;\n this.dirtyPath = true;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RangeHandle.prototype, \"gripLineGap\", {\n get: function () {\n return this._gripLineGap;\n },\n set: function (value) {\n if (this._gripLineGap !== value) {\n this._gripLineGap = value;\n this.dirtyPath = true;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RangeHandle.prototype, \"gripLineLength\", {\n get: function () {\n return this._gripLineLength;\n },\n set: function (value) {\n if (this._gripLineLength !== value) {\n this._gripLineLength = value;\n this.dirtyPath = true;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RangeHandle.prototype, \"height\", {\n get: function () {\n return this._height;\n },\n set: function (value) {\n if (this._height !== value) {\n this._height = value;\n this.dirtyPath = true;\n }\n },\n enumerable: false,\n configurable: true\n });\n RangeHandle.prototype.computeBBox = function () {\n var _a = this, centerX = _a.centerX, centerY = _a.centerY, width = _a.width, height = _a.height;\n var x = centerX - width / 2;\n var y = centerY - height / 2;\n return new BBox(x, y, width, height);\n };\n RangeHandle.prototype.isPointInPath = function (x, y) {\n var point = this.transformPoint(x, y);\n var bbox = this.computeBBox();\n return bbox.containsPoint(point.x, point.y);\n };\n RangeHandle.prototype.updatePath = function () {\n var _a = this, path = _a.path, centerX = _a.centerX, centerY = _a.centerY, width = _a.width, height = _a.height;\n path.clear();\n var x = centerX - width / 2;\n var y = centerY - height / 2;\n var ax = this.align(x);\n var ay = this.align(y);\n var axw = ax + this.align(x, width);\n var ayh = ay + this.align(y, height);\n // Handle.\n path.moveTo(ax, ay);\n path.lineTo(axw, ay);\n path.lineTo(axw, ayh);\n path.lineTo(ax, ayh);\n path.lineTo(ax, ay);\n // Grip lines.\n var dx = this.gripLineGap / 2;\n var dy = this.gripLineLength / 2;\n path.moveTo(this.align(centerX - dx), this.align(centerY - dy));\n path.lineTo(this.align(centerX - dx), this.align(centerY + dy));\n path.moveTo(this.align(centerX + dx), this.align(centerY - dy));\n path.lineTo(this.align(centerX + dx), this.align(centerY + dy));\n };\n RangeHandle.className = 'RangeHandle';\n __decorate$1h([\n Validate(COLOR_STRING)\n ], RangeHandle.prototype, \"_fill\", void 0);\n __decorate$1h([\n Validate(COLOR_STRING)\n ], RangeHandle.prototype, \"_stroke\", void 0);\n __decorate$1h([\n Validate(NUMBER(0))\n ], RangeHandle.prototype, \"_strokeWidth\", void 0);\n __decorate$1h([\n Validate(LINE_CAP)\n ], RangeHandle.prototype, \"_lineCap\", void 0);\n __decorate$1h([\n Validate(NUMBER(0))\n ], RangeHandle.prototype, \"_width\", void 0);\n __decorate$1h([\n Validate(NUMBER(0))\n ], RangeHandle.prototype, \"_gripLineGap\", void 0);\n __decorate$1h([\n Validate(NUMBER(0))\n ], RangeHandle.prototype, \"_gripLineLength\", void 0);\n __decorate$1h([\n Validate(NUMBER(0))\n ], RangeHandle.prototype, \"_height\", void 0);\n return RangeHandle;\n}(Path));\n\nvar __extends$1N = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar RangeMask = /** @class */ (function (_super) {\n __extends$1N(RangeMask, _super);\n function RangeMask() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this._stroke = '#999999';\n _this._strokeWidth = 1;\n _this._fill = '#999999';\n _this._fillOpacity = 0.2;\n _this._lineCap = 'square';\n _this._x = 0;\n _this._y = 0;\n _this._width = 200;\n _this._height = 30;\n _this.minRange = 0.05;\n _this._min = 0;\n _this._max = 1;\n return _this;\n }\n Object.defineProperty(RangeMask.prototype, \"x\", {\n get: function () {\n return this._x;\n },\n set: function (value) {\n if (this._x !== value) {\n this._x = value;\n this.dirtyPath = true;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RangeMask.prototype, \"y\", {\n get: function () {\n return this._y;\n },\n set: function (value) {\n if (this._y !== value) {\n this._y = value;\n this.dirtyPath = true;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RangeMask.prototype, \"width\", {\n get: function () {\n return this._width;\n },\n set: function (value) {\n if (this._width !== value) {\n this._width = value;\n this.dirtyPath = true;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RangeMask.prototype, \"height\", {\n get: function () {\n return this._height;\n },\n set: function (value) {\n if (this._height !== value) {\n this._height = value;\n this.dirtyPath = true;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RangeMask.prototype, \"min\", {\n get: function () {\n return this._min;\n },\n set: function (value) {\n var _a;\n value = Math.min(Math.max(value, 0), this.max - this.minRange);\n if (isNaN(value)) {\n return;\n }\n if (this._min !== value) {\n this._min = value;\n this.dirtyPath = true;\n (_a = this.onRangeChange) === null || _a === void 0 ? void 0 : _a.call(this);\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RangeMask.prototype, \"max\", {\n get: function () {\n return this._max;\n },\n set: function (value) {\n var _a;\n value = Math.max(Math.min(value, 1), this.min + this.minRange);\n if (isNaN(value)) {\n return;\n }\n if (this._max !== value) {\n this._max = value;\n this.dirtyPath = true;\n (_a = this.onRangeChange) === null || _a === void 0 ? void 0 : _a.call(this);\n }\n },\n enumerable: false,\n configurable: true\n });\n RangeMask.prototype.computeBBox = function () {\n var _a = this, x = _a.x, y = _a.y, width = _a.width, height = _a.height;\n return new BBox(x, y, width, height);\n };\n RangeMask.prototype.computeVisibleRangeBBox = function () {\n var _a = this, x = _a.x, y = _a.y, width = _a.width, height = _a.height, min = _a.min, max = _a.max;\n var minX = x + width * min;\n var maxX = x + width * max;\n return new BBox(minX, y, maxX - minX, height);\n };\n RangeMask.prototype.updatePath = function () {\n var _a = this, path = _a.path, x = _a.x, y = _a.y, width = _a.width, height = _a.height, min = _a.min, max = _a.max;\n path.clear();\n var ax = this.align(x);\n var ay = this.align(y);\n var axw = ax + this.align(x, width);\n var ayh = ay + this.align(y, height);\n // Whole range.\n path.moveTo(ax, ay);\n path.lineTo(axw, ay);\n path.lineTo(axw, ayh);\n path.lineTo(ax, ayh);\n path.lineTo(ax, ay);\n var minX = this.align(x + width * min);\n var maxX = this.align(x + width * max);\n // Visible range.\n path.moveTo(minX, ay);\n path.lineTo(minX, ayh);\n path.lineTo(maxX, ayh);\n path.lineTo(maxX, ay);\n path.lineTo(minX, ay);\n };\n RangeMask.className = 'RangeMask';\n __decorate$1g([\n Validate(COLOR_STRING)\n ], RangeMask.prototype, \"_stroke\", void 0);\n __decorate$1g([\n Validate(NUMBER(0))\n ], RangeMask.prototype, \"_strokeWidth\", void 0);\n __decorate$1g([\n Validate(COLOR_STRING)\n ], RangeMask.prototype, \"_fill\", void 0);\n __decorate$1g([\n Validate(NUMBER(0, 1))\n ], RangeMask.prototype, \"_fillOpacity\", void 0);\n __decorate$1g([\n Validate(LINE_CAP)\n ], RangeMask.prototype, \"_lineCap\", void 0);\n __decorate$1g([\n Validate(NUMBER(0))\n ], RangeMask.prototype, \"_width\", void 0);\n __decorate$1g([\n Validate(NUMBER(0))\n ], RangeMask.prototype, \"_height\", void 0);\n __decorate$1g([\n Validate(NUMBER())\n ], RangeMask.prototype, \"_min\", void 0);\n __decorate$1g([\n Validate(NUMBER())\n ], RangeMask.prototype, \"_max\", void 0);\n return RangeMask;\n}(Path));\n\nvar __extends$1M = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$s = (undefined && undefined.__assign) || function () {\n __assign$s = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$s.apply(this, arguments);\n};\nvar RangeSelector = /** @class */ (function (_super) {\n __extends$1M(RangeSelector, _super);\n function RangeSelector() {\n var _this = _super.call(this, { name: 'rangeSelectorGroup' }) || this;\n _this.minHandle = new RangeHandle$1();\n _this.maxHandle = new RangeHandle$1();\n _this.mask = (function () {\n var _a = RangeSelector.defaults, x = _a.x, y = _a.y, width = _a.width, height = _a.height, min = _a.min, max = _a.max;\n var mask = new RangeMask();\n mask.x = x;\n mask.y = y;\n mask.width = width;\n mask.height = height;\n mask.min = min;\n mask.max = max;\n var _b = _this, minHandle = _b.minHandle, maxHandle = _b.maxHandle;\n minHandle.centerX = x;\n maxHandle.centerX = x + width;\n minHandle.centerY = maxHandle.centerY = y + height / 2;\n _this.append([mask, minHandle, maxHandle]);\n mask.onRangeChange = function () {\n var _a;\n _this.updateHandles();\n (_a = _this.onRangeChange) === null || _a === void 0 ? void 0 : _a.call(_this);\n };\n return mask;\n })();\n _this._x = RangeSelector.defaults.x;\n _this._y = RangeSelector.defaults.y;\n _this._width = RangeSelector.defaults.width;\n _this._height = RangeSelector.defaults.height;\n _this._min = RangeSelector.defaults.min;\n _this._max = RangeSelector.defaults.max;\n _this.isContainerNode = true;\n return _this;\n }\n Object.defineProperty(RangeSelector.prototype, \"x\", {\n get: function () {\n return this.mask.x;\n },\n set: function (value) {\n this.mask.x = value;\n this.updateHandles();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RangeSelector.prototype, \"y\", {\n get: function () {\n return this.mask.y;\n },\n set: function (value) {\n this.mask.y = value;\n this.updateHandles();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RangeSelector.prototype, \"width\", {\n get: function () {\n return this.mask.width;\n },\n set: function (value) {\n this.mask.width = value;\n this.updateHandles();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RangeSelector.prototype, \"height\", {\n get: function () {\n return this.mask.height;\n },\n set: function (value) {\n this.mask.height = value;\n this.updateHandles();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RangeSelector.prototype, \"min\", {\n get: function () {\n return this.mask.min;\n },\n set: function (value) {\n this.mask.min = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(RangeSelector.prototype, \"max\", {\n get: function () {\n return this.mask.max;\n },\n set: function (value) {\n this.mask.max = value;\n },\n enumerable: false,\n configurable: true\n });\n RangeSelector.prototype.updateHandles = function () {\n var _a = this, minHandle = _a.minHandle, maxHandle = _a.maxHandle, x = _a.x, y = _a.y, width = _a.width, height = _a.height, mask = _a.mask;\n minHandle.centerX = x + width * mask.min;\n maxHandle.centerX = x + width * mask.max;\n minHandle.centerY = maxHandle.centerY = y + height / 2;\n };\n RangeSelector.prototype.computeBBox = function () {\n return this.mask.computeBBox();\n };\n RangeSelector.prototype.computeVisibleRangeBBox = function () {\n return this.mask.computeVisibleRangeBBox();\n };\n RangeSelector.prototype.render = function (renderCtx) {\n var ctx = renderCtx.ctx, forceRender = renderCtx.forceRender, stats = renderCtx.stats;\n if (this.dirty === RedrawType.NONE && !forceRender) {\n if (stats)\n stats.nodesSkipped++;\n return;\n }\n this.computeTransformMatrix();\n this.matrix.toContext(ctx);\n var _a = this, mask = _a.mask, minHandle = _a.minHandle, maxHandle = _a.maxHandle;\n [mask, minHandle, maxHandle].forEach(function (child) {\n if (child.visible && (forceRender || child.dirty > RedrawType.NONE)) {\n ctx.save();\n child.render(__assign$s(__assign$s({}, renderCtx), { ctx: ctx, forceRender: forceRender }));\n ctx.restore();\n }\n });\n this.markClean({ force: true });\n if (stats)\n stats.nodesRendered++;\n };\n RangeSelector.className = 'Range';\n RangeSelector.defaults = {\n x: 0,\n y: 0,\n width: 200,\n height: 30,\n min: 0,\n max: 1,\n };\n return RangeSelector;\n}(Group));\n\nvar NavigatorMask = /** @class */ (function () {\n function NavigatorMask(rangeMask) {\n this.rm = rangeMask;\n }\n Object.defineProperty(NavigatorMask.prototype, \"fill\", {\n get: function () {\n return this.rm.fill;\n },\n set: function (value) {\n this.rm.fill = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NavigatorMask.prototype, \"stroke\", {\n get: function () {\n return this.rm.stroke;\n },\n set: function (value) {\n this.rm.stroke = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NavigatorMask.prototype, \"strokeWidth\", {\n get: function () {\n return this.rm.strokeWidth;\n },\n set: function (value) {\n this.rm.strokeWidth = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NavigatorMask.prototype, \"fillOpacity\", {\n get: function () {\n return this.rm.fillOpacity;\n },\n set: function (value) {\n this.rm.fillOpacity = value;\n },\n enumerable: false,\n configurable: true\n });\n return NavigatorMask;\n}());\n\nvar NavigatorHandle = /** @class */ (function () {\n function NavigatorHandle(rangeHandle) {\n this.rh = rangeHandle;\n }\n Object.defineProperty(NavigatorHandle.prototype, \"fill\", {\n get: function () {\n return this.rh.fill;\n },\n set: function (value) {\n this.rh.fill = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NavigatorHandle.prototype, \"stroke\", {\n get: function () {\n return this.rh.stroke;\n },\n set: function (value) {\n this.rh.stroke = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NavigatorHandle.prototype, \"strokeWidth\", {\n get: function () {\n return this.rh.strokeWidth;\n },\n set: function (value) {\n this.rh.strokeWidth = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NavigatorHandle.prototype, \"width\", {\n get: function () {\n return this.rh.width;\n },\n set: function (value) {\n this.rh.width = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NavigatorHandle.prototype, \"height\", {\n get: function () {\n return this.rh.height;\n },\n set: function (value) {\n this.rh.height = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NavigatorHandle.prototype, \"gripLineGap\", {\n get: function () {\n return this.rh.gripLineGap;\n },\n set: function (value) {\n this.rh.gripLineGap = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(NavigatorHandle.prototype, \"gripLineLength\", {\n get: function () {\n return this.rh.gripLineLength;\n },\n set: function (value) {\n this.rh.gripLineLength = value;\n },\n enumerable: false,\n configurable: true\n });\n return NavigatorHandle;\n}());\n\nvar __extends$1L = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar Navigator = /** @class */ (function (_super) {\n __extends$1L(Navigator, _super);\n function Navigator(ctx) {\n var _a;\n var _this = _super.call(this) || this;\n _this.ctx = ctx;\n _this.rs = new RangeSelector();\n // Wrappers to allow option application to the scene graph nodes.\n _this.mask = new NavigatorMask(_this.rs.mask);\n _this.minHandle = new NavigatorHandle(_this.rs.minHandle);\n _this.maxHandle = new NavigatorHandle(_this.rs.maxHandle);\n _this.minHandleDragging = false;\n _this.maxHandleDragging = false;\n _this.panHandleOffset = NaN;\n _this._enabled = false;\n _this.margin = 10;\n _this._visible = true;\n _this.rs.onRangeChange = function () {\n return _this.ctx.zoomManager.updateZoom('navigator', { x: { min: _this.rs.min, max: _this.rs.max } });\n };\n [\n ctx.interactionManager.addListener('drag-start', function (event) { return _this.onDragStart(event); }),\n ctx.interactionManager.addListener('drag', function (event) { return _this.onDrag(event); }),\n ctx.interactionManager.addListener('hover', function (event) { return _this.onDrag(event); }),\n ctx.interactionManager.addListener('drag-end', function () { return _this.onDragStop(); }),\n ].forEach(function (s) { return _this.destroyFns.push(function () { return ctx.interactionManager.removeListener(s); }); });\n [\n ctx.layoutService.addListener('before-series', function (event) { return _this.layout(event); }),\n ctx.layoutService.addListener('layout-complete', function (event) { return _this.layoutComplete(event); }),\n ].forEach(function (s) { return _this.destroyFns.push(function () { return ctx.layoutService.removeListener(s); }); });\n (_a = ctx.scene.root) === null || _a === void 0 ? void 0 : _a.appendChild(_this.rs);\n _this.destroyFns.push(function () { var _a; return (_a = ctx.scene.root) === null || _a === void 0 ? void 0 : _a.removeChild(_this.rs); });\n _this.destroyFns.push(function () { return _this.ctx.zoomManager.updateZoom('navigator'); });\n _this.updateGroupVisibility();\n return _this;\n }\n Object.defineProperty(Navigator.prototype, \"enabled\", {\n get: function () {\n return this._enabled;\n },\n set: function (value) {\n this._enabled = value;\n this.updateGroupVisibility();\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Navigator.prototype, \"width\", {\n get: function () {\n return this.rs.width;\n },\n set: function (value) {\n this.rs.width = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Navigator.prototype, \"height\", {\n get: function () {\n return this.rs.height;\n },\n set: function (value) {\n this.rs.height = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Navigator.prototype, \"min\", {\n get: function () {\n return this.rs.min;\n },\n set: function (value) {\n this.rs.min = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Navigator.prototype, \"max\", {\n get: function () {\n return this.rs.max;\n },\n set: function (value) {\n this.rs.max = value;\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Navigator.prototype, \"visible\", {\n get: function () {\n return this._visible;\n },\n set: function (value) {\n this._visible = value;\n this.updateGroupVisibility();\n },\n enumerable: false,\n configurable: true\n });\n Navigator.prototype.updateGroupVisibility = function () {\n var visible = this.enabled && this.visible;\n this.rs.visible = visible;\n if (visible) {\n this.ctx.zoomManager.updateZoom('navigator', { x: { min: this.rs.min, max: this.rs.max } });\n }\n else {\n this.ctx.zoomManager.updateZoom('navigator');\n }\n };\n Navigator.prototype.layout = function (_a) {\n var shrinkRect = _a.shrinkRect;\n if (this.enabled) {\n var navigatorTotalHeight = this.rs.height + this.margin;\n shrinkRect.shrink(navigatorTotalHeight, 'bottom');\n this.rs.y = shrinkRect.y + shrinkRect.height + this.margin;\n }\n return { shrinkRect: shrinkRect };\n };\n Navigator.prototype.layoutComplete = function (_a) {\n var _b = _a.series, rect = _b.rect, visible = _b.visible;\n if (this.enabled && visible) {\n this.rs.x = rect.x;\n this.rs.width = rect.width;\n }\n this.visible = visible;\n };\n Navigator.prototype.onDragStart = function (offset) {\n if (!this.enabled) {\n return;\n }\n var offsetX = offset.offsetX, offsetY = offset.offsetY;\n var rs = this.rs;\n var minHandle = rs.minHandle, maxHandle = rs.maxHandle, x = rs.x, width = rs.width, min = rs.min;\n var visibleRange = rs.computeVisibleRangeBBox();\n if (!(this.minHandleDragging || this.maxHandleDragging)) {\n if (minHandle.containsPoint(offsetX, offsetY)) {\n this.minHandleDragging = true;\n }\n else if (maxHandle.containsPoint(offsetX, offsetY)) {\n this.maxHandleDragging = true;\n }\n else if (visibleRange.containsPoint(offsetX, offsetY)) {\n this.panHandleOffset = (offsetX - x) / width - min;\n }\n }\n };\n Navigator.prototype.onDrag = function (offset) {\n if (!this.enabled) {\n return;\n }\n var _a = this, rs = _a.rs, panHandleOffset = _a.panHandleOffset;\n var x = rs.x, y = rs.y, width = rs.width, height = rs.height, minHandle = rs.minHandle, maxHandle = rs.maxHandle;\n var offsetX = offset.offsetX, offsetY = offset.offsetY;\n var minX = x + width * rs.min;\n var maxX = x + width * rs.max;\n var visibleRange = new BBox(minX, y, maxX - minX, height);\n var getRatio = function () { return Math.min(Math.max((offsetX - x) / width, 0), 1); };\n if (minHandle.containsPoint(offsetX, offsetY) || maxHandle.containsPoint(offsetX, offsetY)) {\n this.ctx.cursorManager.updateCursor('navigator', 'ew-resize');\n }\n else if (visibleRange.containsPoint(offsetX, offsetY)) {\n this.ctx.cursorManager.updateCursor('navigator', 'grab');\n }\n else {\n this.ctx.cursorManager.updateCursor('navigator');\n }\n if (this.minHandleDragging) {\n rs.min = getRatio();\n }\n else if (this.maxHandleDragging) {\n rs.max = getRatio();\n }\n else if (!isNaN(panHandleOffset)) {\n var span = rs.max - rs.min;\n var min = Math.min(getRatio() - panHandleOffset, 1 - span);\n if (min <= rs.min) {\n // pan left\n rs.min = min;\n rs.max = rs.min + span;\n }\n else {\n // pan right\n rs.max = min + span;\n rs.min = rs.max - span;\n }\n }\n };\n Navigator.prototype.onDragStop = function () {\n this.stopHandleDragging();\n };\n Navigator.prototype.stopHandleDragging = function () {\n this.minHandleDragging = this.maxHandleDragging = false;\n this.panHandleOffset = NaN;\n };\n __decorate$1f([\n Validate(BOOLEAN)\n ], Navigator.prototype, \"_enabled\", void 0);\n __decorate$1f([\n Validate(NUMBER(0))\n ], Navigator.prototype, \"margin\", void 0);\n return Navigator;\n}(BaseModuleInstance));\n\nvar CHART_NAVIGATOR_MODULE = {\n type: 'root',\n optionsKey: 'navigator',\n packageType: 'community',\n chartTypes: ['cartesian'],\n instanceConstructor: Navigator,\n themeTemplate: {\n navigator: {\n enabled: false,\n height: 30,\n mask: {\n fill: '#999999',\n stroke: '#999999',\n strokeWidth: 1,\n fillOpacity: 0.2,\n },\n minHandle: {\n fill: '#f2f2f2',\n stroke: '#999999',\n strokeWidth: 1,\n width: 8,\n height: 16,\n gripLineGap: 2,\n gripLineLength: 8,\n },\n maxHandle: {\n fill: '#f2f2f2',\n stroke: '#999999',\n strokeWidth: 1,\n width: 8,\n height: 16,\n gripLineGap: 2,\n gripLineLength: 8,\n },\n },\n },\n};\nregisterModule(CHART_NAVIGATOR_MODULE);\n\nvar __extends$1K = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar Background = /** @class */ (function (_super) {\n __extends$1K(Background, _super);\n function Background(ctx) {\n var _a;\n var _this = _super.call(this) || this;\n _this.onLayoutComplete = function (e) {\n var _a = e.chart, width = _a.width, height = _a.height;\n _this.rectNode.width = width;\n _this.rectNode.height = height;\n };\n _this.node = new Group({ name: 'background' });\n _this.node.zIndex = Layers.SERIES_BACKGROUND_ZINDEX;\n _this.rectNode = new Rect();\n _this.node.appendChild(_this.rectNode);\n _this.fill = 'white';\n _this.visible = true;\n (_a = ctx.scene.root) === null || _a === void 0 ? void 0 : _a.appendChild(_this.node);\n _this.destroyFns.push(function () { var _a; return (_a = ctx.scene.root) === null || _a === void 0 ? void 0 : _a.removeChild(_this.node); });\n var layoutHandle = ctx.layoutService.addListener('layout-complete', _this.onLayoutComplete);\n _this.destroyFns.push(function () { return ctx.layoutService.removeListener(layoutHandle); });\n return _this;\n }\n __decorate$1e([\n Validate(BOOLEAN),\n ProxyPropertyOnWrite('node', 'visible')\n ], Background.prototype, \"visible\", void 0);\n __decorate$1e([\n Validate(OPT_COLOR_STRING),\n ProxyPropertyOnWrite('rectNode', 'fill')\n ], Background.prototype, \"fill\", void 0);\n return Background;\n}(BaseModuleInstance));\n\nvar CHART_BACKGROUND_MODULE = {\n type: 'root',\n optionsKey: 'background',\n packageType: 'community',\n chartTypes: ['cartesian', 'polar', 'hierarchy'],\n instanceConstructor: Background,\n};\nregisterModule(CHART_BACKGROUND_MODULE);\n\nvar __values$a = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nfunction setupModules() {\n var e_1, _a, e_2, _b, e_3, _c;\n try {\n for (var REGISTERED_MODULES_1 = __values$a(REGISTERED_MODULES), REGISTERED_MODULES_1_1 = REGISTERED_MODULES_1.next(); !REGISTERED_MODULES_1_1.done; REGISTERED_MODULES_1_1 = REGISTERED_MODULES_1.next()) {\n var m = REGISTERED_MODULES_1_1.value;\n if (JSON_APPLY_PLUGINS.constructors != null && m.optionConstructors != null) {\n Object.assign(JSON_APPLY_PLUGINS.constructors, m.optionConstructors);\n }\n if (m.type === 'root') {\n if (m.themeTemplate) {\n try {\n for (var _d = (e_2 = void 0, __values$a(m.chartTypes)), _e = _d.next(); !_e.done; _e = _d.next()) {\n var chartType = _e.value;\n registerChartDefaults(chartType, m.themeTemplate);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_e && !_e.done && (_b = _d.return)) _b.call(_d);\n }\n finally { if (e_2) throw e_2.error; }\n }\n }\n }\n if (m.type === 'series') {\n if (m.chartTypes.length > 1)\n throw new Error('AG Charts - Module definition error: ' + m.identifier);\n registerSeries(m.identifier, m.chartTypes[0], m.instanceConstructor, m.seriesDefaults, m.themeTemplate, m.paletteFactory);\n }\n if (m.type === 'axis-option') {\n if (m.themeTemplate) {\n try {\n for (var _f = (e_3 = void 0, __values$a(m.axisTypes)), _g = _f.next(); !_g.done; _g = _f.next()) {\n var axisType = _g.value;\n registerAxisThemeTemplate(axisType, m.themeTemplate);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_g && !_g.done && (_c = _f.return)) _c.call(_f);\n }\n finally { if (e_3) throw e_3.error; }\n }\n }\n }\n if (m.type === 'axis') {\n registerAxis(m.identifier, m.instanceConstructor);\n if (m.themeTemplate) {\n registerAxisThemeTemplate(m.identifier, m.themeTemplate);\n }\n }\n if (m.type === 'legend') {\n registerLegend(m.identifier, m.instanceConstructor);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (REGISTERED_MODULES_1_1 && !REGISTERED_MODULES_1_1.done && (_a = REGISTERED_MODULES_1.return)) _a.call(REGISTERED_MODULES_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n}\n\nvar __assign$r = (undefined && undefined.__assign) || function () {\n __assign$r = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$r.apply(this, arguments);\n};\nvar __awaiter = (undefined && undefined.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (undefined && undefined.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __read$q = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$e = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar __values$9 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nfunction chartType(options) {\n if (isAgCartesianChartOptions(options)) {\n return 'cartesian';\n }\n else if (isAgPolarChartOptions(options)) {\n return 'polar';\n }\n else if (isAgHierarchyChartOptions(options)) {\n return 'hierarchy';\n }\n throw new Error(\"AG Chart - unknown type of chart for options with type: \" + options.type);\n}\n/**\n * Factory for creating and updating instances of AgChartInstance.\n *\n * @docsInterface\n */\nvar AgChart = /** @class */ (function () {\n function AgChart() {\n }\n /**\n * Create a new `AgChartInstance` based upon the given configuration options.\n */\n AgChart.create = function (options) {\n return AgChartInternal.createOrUpdate(options);\n };\n /**\n * Update an existing `AgChartInstance`. Options provided should be complete and not\n * partial.\n *
\n *
\n * **NOTE**: As each call could trigger a chart redraw, multiple calls to update options in\n * quick succession could result in undesirable flickering, so callers should batch up and/or\n * debounce changes to avoid unintended partial update renderings.\n */\n AgChart.update = function (chart, options) {\n if (!AgChartInstanceProxy.isInstance(chart)) {\n throw new Error('AG Charts - invalid chart reference passed');\n }\n AgChartInternal.createOrUpdate(options, chart);\n };\n /**\n * Update an existing `AgChartInstance` by applying a partial set of option changes.\n *
\n *
\n * **NOTE**: As each call could trigger a chart redraw, each individual delta options update\n * should leave the chart in a valid options state. Also, multiple calls to update options in\n * quick succession could result in undesirable flickering, so callers should batch up and/or\n * debounce changes to avoid unintended partial update renderings.\n */\n AgChart.updateDelta = function (chart, deltaOptions) {\n if (!AgChartInstanceProxy.isInstance(chart)) {\n throw new Error('AG Charts - invalid chart reference passed');\n }\n return AgChartInternal.updateUserDelta(chart, deltaOptions);\n };\n /**\n * Starts a browser-based image download for the given `AgChartInstance`.\n */\n AgChart.download = function (chart, options) {\n if (!(chart instanceof AgChartInstanceProxy)) {\n throw new Error('AG Charts - invalid chart reference passed');\n }\n return AgChartInternal.download(chart, options);\n };\n /**\n * Returns a base64-encoded image data URL for the given `AgChartInstance`.\n */\n AgChart.getImageDataURL = function (chart, options) {\n if (!(chart instanceof AgChartInstanceProxy)) {\n throw new Error('AG Charts - invalid chart reference passed');\n }\n return AgChartInternal.getImageDataURL(chart, options);\n };\n return AgChart;\n}());\n/**\n * Proxy class, to allow library users to keep a stable reference to their chart, even if we need\n * to switch concrete class (e.g. when switching between CartesianChart vs. PolarChart).\n */\nvar AgChartInstanceProxy = /** @class */ (function () {\n function AgChartInstanceProxy(chart) {\n this.chart = chart;\n }\n AgChartInstanceProxy.isInstance = function (x) {\n var _a, _b;\n if (x instanceof AgChartInstanceProxy) {\n // Simple case.\n return true;\n }\n if (((_a = x.constructor) === null || _a === void 0 ? void 0 : _a.name) === 'AgChartInstanceProxy' && x.chart != null) {\n // instanceof can fail if mixing bundles (e.g. grid all-modules vs. standalone).\n return true;\n }\n var signatureProps = Object.keys((_b = x.constructor) === null || _b === void 0 ? void 0 : _b.prototype);\n var heuristicTypeCheck = Object.keys(AgChartInstanceProxy.prototype).every(function (prop) {\n return signatureProps.includes(prop);\n });\n if (heuristicTypeCheck && x.chart != null) {\n // minimised code case - the constructor name is mangled but prototype names are not :P\n return true;\n }\n return false;\n };\n AgChartInstanceProxy.prototype.getOptions = function () {\n return this.chart.getOptions();\n };\n AgChartInstanceProxy.prototype.destroy = function () {\n this.chart.destroy();\n };\n return AgChartInstanceProxy;\n}());\nvar AgChartInternal = /** @class */ (function () {\n function AgChartInternal() {\n }\n AgChartInternal.initialiseModules = function () {\n if (AgChartInternal.initialised)\n return;\n setupModules();\n AgChartInternal.initialised = true;\n };\n AgChartInternal.createOrUpdate = function (userOptions, proxy) {\n var _this = this;\n AgChartInternal.initialiseModules();\n debug('>>> AgChartV2.createOrUpdate() user options', userOptions);\n var mixinOpts = {};\n if (AgChartInternal.DEBUG() === true) {\n mixinOpts['debug'] = true;\n }\n var overrideDevicePixelRatio = userOptions.overrideDevicePixelRatio;\n delete userOptions['overrideDevicePixelRatio'];\n var processedOptions = prepareOptions(userOptions, mixinOpts);\n var chart = proxy === null || proxy === void 0 ? void 0 : proxy.chart;\n if (chart == null || chartType(userOptions) !== chartType(chart.processedOptions)) {\n chart = AgChartInternal.createChartInstance(processedOptions, overrideDevicePixelRatio, chart);\n }\n if (proxy == null) {\n proxy = new AgChartInstanceProxy(chart);\n }\n else {\n proxy.chart = chart;\n }\n var chartToUpdate = chart;\n chartToUpdate.queuedUserOptions.push(userOptions);\n var dequeue = function () {\n // If there are a lot of update calls, `requestFactoryUpdate()` may skip callbacks,\n // so we need to remove all queue items up to the last successfully applied item.\n var queuedOptionsIdx = chartToUpdate.queuedUserOptions.indexOf(userOptions);\n chartToUpdate.queuedUserOptions.splice(0, queuedOptionsIdx);\n };\n chartToUpdate.requestFactoryUpdate(function () { return __awaiter(_this, void 0, void 0, function () {\n var deltaOptions;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n // Chart destroyed, skip processing.\n if (chartToUpdate.destroyed)\n return [2 /*return*/];\n deltaOptions = jsonDiff(chartToUpdate.processedOptions, processedOptions);\n if (deltaOptions == null) {\n dequeue();\n return [2 /*return*/];\n }\n return [4 /*yield*/, AgChartInternal.updateDelta(chartToUpdate, deltaOptions, userOptions)];\n case 1:\n _a.sent();\n dequeue();\n return [2 /*return*/];\n }\n });\n }); });\n return proxy;\n };\n AgChartInternal.updateUserDelta = function (proxy, deltaOptions) {\n var _a;\n var chart = proxy.chart, queuedUserOptions = proxy.chart.queuedUserOptions;\n var lastUpdateOptions = (_a = queuedUserOptions[queuedUserOptions.length - 1]) !== null && _a !== void 0 ? _a : chart.userOptions;\n var userOptions = jsonMerge([lastUpdateOptions, deltaOptions]);\n debug('>>> AgChartV2.updateUserDelta() user delta', deltaOptions);\n debug('AgChartV2.updateUserDelta() - base options', lastUpdateOptions);\n AgChartInternal.createOrUpdate(userOptions, proxy);\n };\n /**\n * Returns the content of the current canvas as an image.\n * @param opts The download options including `width` and `height` of the image as well as `fileName` and `fileFormat`.\n */\n AgChartInternal.download = function (proxy, opts) {\n var _this = this;\n var asyncDownload = function () { return __awaiter(_this, void 0, void 0, function () {\n var maybeClone, chart;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, AgChartInternal.prepareResizedChart(proxy, opts)];\n case 1:\n maybeClone = _a.sent();\n chart = maybeClone.chart;\n chart.scene.download(opts === null || opts === void 0 ? void 0 : opts.fileName, opts === null || opts === void 0 ? void 0 : opts.fileFormat);\n if (maybeClone !== proxy) {\n maybeClone.destroy();\n }\n return [2 /*return*/];\n }\n });\n }); };\n asyncDownload().catch(function (e) { return Logger.errorOnce(e); });\n };\n AgChartInternal.getImageDataURL = function (proxy, opts) {\n return __awaiter(this, void 0, void 0, function () {\n var maybeClone, chart, result;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, AgChartInternal.prepareResizedChart(proxy, opts)];\n case 1:\n maybeClone = _a.sent();\n chart = maybeClone.chart;\n result = chart.scene.canvas.getDataURL(opts === null || opts === void 0 ? void 0 : opts.fileFormat);\n if (maybeClone !== proxy) {\n maybeClone.destroy();\n }\n return [2 /*return*/, result];\n }\n });\n });\n };\n AgChartInternal.prepareResizedChart = function (proxy, opts) {\n return __awaiter(this, void 0, void 0, function () {\n var chart, _a, width, height, currentWidth, currentHeight, unchanged, options, clonedChart;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n chart = proxy.chart;\n _a = opts !== null && opts !== void 0 ? opts : {}, width = _a.width, height = _a.height;\n currentWidth = chart.width;\n currentHeight = chart.height;\n unchanged = (width === undefined && height === undefined) ||\n (chart.scene.canvas.pixelRatio === 1 && currentWidth === width && currentHeight === height);\n if (unchanged) {\n return [2 /*return*/, proxy];\n }\n width = width !== null && width !== void 0 ? width : currentWidth;\n height = height !== null && height !== void 0 ? height : currentHeight;\n options = __assign$r(__assign$r({}, chart.userOptions), { container: document.createElement('div'), width: width, height: height, autoSize: false, overrideDevicePixelRatio: 1 });\n clonedChart = AgChartInternal.createOrUpdate(options);\n return [4 /*yield*/, clonedChart.chart.waitForUpdate()];\n case 1:\n _b.sent();\n return [2 /*return*/, clonedChart];\n }\n });\n });\n };\n AgChartInternal.createChartInstance = function (options, overrideDevicePixelRatio, oldChart) {\n var transferableResource = oldChart === null || oldChart === void 0 ? void 0 : oldChart.destroy({ keepTransferableResources: true });\n if (isAgCartesianChartOptions(options)) {\n return new CartesianChart(document, overrideDevicePixelRatio, transferableResource);\n }\n else if (isAgHierarchyChartOptions(options)) {\n return new HierarchyChart(document, overrideDevicePixelRatio, transferableResource);\n }\n else if (isAgPolarChartOptions(options)) {\n return new PolarChart(document, overrideDevicePixelRatio, transferableResource);\n }\n throw new Error(\"AG Charts - couldn't apply configuration, check type of options: \" + options['type']);\n };\n AgChartInternal.updateDelta = function (chart, processedOptions, userOptions) {\n var _a;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n if (processedOptions.type == null) {\n processedOptions = __assign$r(__assign$r({}, processedOptions), { type: (_a = chart.processedOptions.type) !== null && _a !== void 0 ? _a : optionsType(processedOptions) });\n }\n return [4 /*yield*/, chart.awaitUpdateCompletion()];\n case 1:\n _b.sent();\n if (chart.destroyed)\n return [2 /*return*/];\n debug('AgChartV2.updateDelta() - applying delta', processedOptions);\n applyChartOptions(chart, processedOptions, userOptions);\n return [2 /*return*/];\n }\n });\n });\n };\n AgChartInternal.DEBUG = function () { var _a; return (_a = windowValue('agChartsDebug')) !== null && _a !== void 0 ? _a : false; };\n AgChartInternal.initialised = false;\n return AgChartInternal;\n}());\nfunction debug(message) {\n var optionalParams = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n optionalParams[_i - 1] = arguments[_i];\n }\n if ([true, 'opts'].includes(AgChartInternal.DEBUG())) {\n Logger.debug.apply(Logger, __spreadArray$e([message], __read$q(optionalParams)));\n }\n}\nfunction applyChartOptions(chart, processedOptions, userOptions) {\n var _a, _b, _c, _d;\n var completeOptions = jsonMerge([(_a = chart.processedOptions) !== null && _a !== void 0 ? _a : {}, processedOptions], noDataCloneMergeOptions);\n var modulesChanged = applyModules(chart, completeOptions);\n var skip = ['type', 'data', 'series', 'listeners', 'theme', 'legend'];\n if (isAgCartesianChartOptions(processedOptions) || isAgPolarChartOptions(processedOptions)) {\n // Append axes to defaults.\n skip.push('axes');\n }\n else if (isAgHierarchyChartOptions(processedOptions)) ;\n else {\n throw new Error(\"AG Charts - couldn't apply configuration, check type of options and chart: \" + processedOptions['type']);\n }\n // Needs to be done before applying the series to detect if a seriesNode[Double]Click listener has been added\n if (processedOptions.listeners) {\n registerListeners(chart, processedOptions.listeners);\n }\n applyOptionValues(chart, processedOptions, { skip: skip });\n var forceNodeDataRefresh = false;\n if (processedOptions.series && processedOptions.series.length > 0) {\n applySeries(chart, processedOptions);\n forceNodeDataRefresh = true;\n }\n if ('axes' in processedOptions && Array.isArray(processedOptions.axes)) {\n var axesPresent = applyAxes(chart, processedOptions);\n if (axesPresent) {\n forceNodeDataRefresh = true;\n }\n }\n applyLegend(chart, processedOptions);\n var seriesOpts = processedOptions.series;\n var seriesDataUpdate = !!processedOptions.data || (seriesOpts === null || seriesOpts === void 0 ? void 0 : seriesOpts.some(function (s) { return s.data != null; }));\n var otherRefreshUpdate = (_c = (_b = processedOptions.legend) !== null && _b !== void 0 ? _b : processedOptions.title) !== null && _c !== void 0 ? _c : processedOptions.subtitle;\n forceNodeDataRefresh = forceNodeDataRefresh || seriesDataUpdate || !!otherRefreshUpdate;\n if (processedOptions.data) {\n chart.data = processedOptions.data;\n }\n if (processedOptions.listeners) {\n chart.updateAllSeriesListeners();\n }\n chart.processedOptions = completeOptions;\n chart.userOptions = jsonMerge([(_d = chart.userOptions) !== null && _d !== void 0 ? _d : {}, userOptions], noDataCloneMergeOptions);\n var majorChange = forceNodeDataRefresh || modulesChanged;\n var updateType = majorChange ? ChartUpdateType.PROCESS_DATA : ChartUpdateType.PERFORM_LAYOUT;\n debug('AgChartV2.applyChartOptions() - update type', ChartUpdateType[updateType]);\n chart.update(updateType, { forceNodeDataRefresh: forceNodeDataRefresh });\n}\nfunction applyModules(chart, options) {\n var e_1, _a;\n var matchingChartType = function (module) {\n return ((chart instanceof CartesianChart && module.chartTypes.includes('cartesian')) ||\n (chart instanceof PolarChart && module.chartTypes.includes('polar')) ||\n (chart instanceof HierarchyChart && module.chartTypes.includes('hierarchy')));\n };\n var modulesChanged = false;\n var rootModules = REGISTERED_MODULES.filter(function (m) { return m.type === 'root'; });\n try {\n for (var rootModules_1 = __values$9(rootModules), rootModules_1_1 = rootModules_1.next(); !rootModules_1_1.done; rootModules_1_1 = rootModules_1.next()) {\n var next = rootModules_1_1.value;\n var shouldBeEnabled = matchingChartType(next) && options[next.optionsKey] != null;\n var isEnabled = chart.isModuleEnabled(next);\n if (shouldBeEnabled === isEnabled)\n continue;\n modulesChanged = true;\n if (shouldBeEnabled) {\n chart.addModule(next);\n }\n else {\n chart.removeModule(next);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (rootModules_1_1 && !rootModules_1_1.done && (_a = rootModules_1.return)) _a.call(rootModules_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return modulesChanged;\n}\nfunction applySeries(chart, options) {\n var optSeries = options.series;\n if (!optSeries) {\n return;\n }\n var matchingTypes = chart.series.length === optSeries.length && chart.series.every(function (s, i) { var _a; return s.type === ((_a = optSeries[i]) === null || _a === void 0 ? void 0 : _a.type); });\n // Try to optimise series updates if series count and types didn't change.\n if (matchingTypes) {\n chart.series.forEach(function (s, i) {\n var _a, _b, _c, _d;\n var previousOpts = (_c = (_b = (_a = chart.processedOptions) === null || _a === void 0 ? void 0 : _a.series) === null || _b === void 0 ? void 0 : _b[i]) !== null && _c !== void 0 ? _c : {};\n var seriesDiff = jsonDiff(previousOpts, (_d = optSeries[i]) !== null && _d !== void 0 ? _d : {});\n if (!seriesDiff) {\n return;\n }\n debug(\"AgChartV2.applySeries() - applying series diff idx \" + i, seriesDiff);\n applySeriesValues(s, seriesDiff, { path: \"series[\" + i + \"]\", index: i });\n s.markNodeDataDirty();\n });\n return;\n }\n chart.series = createSeries(chart, optSeries);\n}\nfunction applyAxes(chart, options) {\n var optAxes = options.axes;\n if (!optAxes) {\n return false;\n }\n var matchingTypes = chart.axes.length === optAxes.length && chart.axes.every(function (a, i) { return a.type === optAxes[i].type; });\n // Try to optimise series updates if series count and types didn't change.\n if (matchingTypes) {\n var oldOpts_1 = chart.processedOptions;\n if (isAgCartesianChartOptions(oldOpts_1)) {\n chart.axes.forEach(function (a, i) {\n var _a, _b;\n var previousOpts = (_b = (_a = oldOpts_1.axes) === null || _a === void 0 ? void 0 : _a[i]) !== null && _b !== void 0 ? _b : {};\n var axisDiff = jsonDiff(previousOpts, optAxes[i]);\n debug(\"AgChartV2.applyAxes() - applying axis diff idx \" + i, axisDiff);\n var path = \"axes[\" + i + \"]\";\n var skip = ['axes[].type'];\n applyOptionValues(a, axisDiff, { path: path, skip: skip });\n });\n return true;\n }\n }\n chart.axes = createAxis(chart, optAxes);\n return true;\n}\nfunction applyLegend(chart, options) {\n var skip = ['listeners'];\n chart.setLegendInit(function (legend) {\n var _a, _b, _c, _d;\n applyOptionValues(legend, (_a = options.legend) !== null && _a !== void 0 ? _a : {}, { skip: skip });\n if ((_b = options.legend) === null || _b === void 0 ? void 0 : _b.listeners) {\n Object.assign((_c = chart.legend) === null || _c === void 0 ? void 0 : _c.listeners, (_d = options.legend.listeners) !== null && _d !== void 0 ? _d : {});\n }\n });\n}\nfunction createSeries(chart, options) {\n var e_2, _a;\n var _b;\n var series = [];\n var moduleContext = chart.getModuleContext();\n var index = 0;\n try {\n for (var _c = __values$9(options !== null && options !== void 0 ? options : []), _d = _c.next(); !_d.done; _d = _c.next()) {\n var seriesOptions = _d.value;\n var path = \"series[\" + index++ + \"]\";\n var seriesInstance = getSeries((_b = seriesOptions.type) !== null && _b !== void 0 ? _b : 'unknown', moduleContext);\n applySeriesValues(seriesInstance, seriesOptions, { path: path, index: index });\n series.push(seriesInstance);\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (_d && !_d.done && (_a = _c.return)) _a.call(_c);\n }\n finally { if (e_2) throw e_2.error; }\n }\n return series;\n}\nfunction createAxis(chart, options) {\n var e_3, _a;\n var axes = [];\n var skip = ['axes[].type'];\n var moduleContext = chart.getModuleContext();\n var index = 0;\n try {\n for (var _b = __values$9(options !== null && options !== void 0 ? options : []), _c = _b.next(); !_c.done; _c = _b.next()) {\n var axisOptions = _c.value;\n var axis = getAxis(axisOptions.type, moduleContext);\n var path = \"axes[\" + index++ + \"]\";\n applyAxisModules(axis, axisOptions);\n applyOptionValues(axis, axisOptions, { path: path, skip: skip });\n axes.push(axis);\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return axes;\n}\nfunction applyAxisModules(axis, options) {\n var e_4, _a;\n var modulesChanged = false;\n var rootModules = REGISTERED_MODULES.filter(function (m) { return m.type === 'axis-option'; });\n try {\n for (var rootModules_2 = __values$9(rootModules), rootModules_2_1 = rootModules_2.next(); !rootModules_2_1.done; rootModules_2_1 = rootModules_2.next()) {\n var next = rootModules_2_1.value;\n var shouldBeEnabled = options[next.optionsKey] != null;\n var isEnabled = axis.isModuleEnabled(next);\n if (shouldBeEnabled === isEnabled)\n continue;\n modulesChanged = true;\n if (shouldBeEnabled) {\n axis.addModule(next);\n }\n else {\n axis.removeModule(next);\n }\n }\n }\n catch (e_4_1) { e_4 = { error: e_4_1 }; }\n finally {\n try {\n if (rootModules_2_1 && !rootModules_2_1.done && (_a = rootModules_2.return)) _a.call(rootModules_2);\n }\n finally { if (e_4) throw e_4.error; }\n }\n return modulesChanged;\n}\nfunction registerListeners(source, listeners) {\n source.clearEventListeners();\n for (var property in listeners) {\n var listener = listeners[property];\n if (typeof listener !== 'function')\n continue;\n source.addEventListener(property, listener);\n }\n}\nfunction applyOptionValues(target, options, _a) {\n var _b = _a === void 0 ? {} : _a, skip = _b.skip, path = _b.path;\n var applyOpts = __assign$r(__assign$r(__assign$r({}, getJsonApplyOptions()), { skip: skip }), (path ? { path: path } : {}));\n return jsonApply(target, options, applyOpts);\n}\nfunction applySeriesValues(target, options, _a) {\n var _b, _c;\n var _d = _a === void 0 ? {} : _a, path = _d.path, index = _d.index;\n var skip = ['series[].listeners', 'series[].seriesGrouping'];\n var jsonApplyOptions = getJsonApplyOptions();\n var ctrs = (_b = jsonApplyOptions.constructors) !== null && _b !== void 0 ? _b : {};\n var seriesTypeOverrides = {\n constructors: __assign$r(__assign$r({}, ctrs), { title: target.type === 'pie' ? PieTitle : ctrs['title'] }),\n };\n var applyOpts = __assign$r(__assign$r(__assign$r(__assign$r(__assign$r({}, jsonApplyOptions), seriesTypeOverrides), { skip: __spreadArray$e(['series[].type'], __read$q((skip !== null && skip !== void 0 ? skip : []))) }), (path ? { path: path } : {})), { idx: index !== null && index !== void 0 ? index : -1 });\n var result = jsonApply(target, options, applyOpts);\n var listeners = options === null || options === void 0 ? void 0 : options.listeners;\n if (listeners != null) {\n registerListeners(target, listeners);\n }\n var seriesGrouping = options.seriesGrouping;\n if ('seriesGrouping' in (options !== null && options !== void 0 ? options : {})) {\n if (seriesGrouping) {\n var newSeriesGroup = Object.freeze(__assign$r(__assign$r({}, ((_c = target.seriesGrouping) !== null && _c !== void 0 ? _c : {})), seriesGrouping));\n target.seriesGrouping = newSeriesGroup;\n }\n else {\n target.seriesGrouping = seriesGrouping;\n }\n }\n return result;\n}\n\n// DO NOT UPDATE MANUALLY: Generated from script during build time\nvar VERSION$b = '8.2.0';\n\nvar __extends$1J = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ArcType;\n(function (ArcType) {\n ArcType[ArcType[\"Open\"] = 0] = \"Open\";\n ArcType[ArcType[\"Chord\"] = 1] = \"Chord\";\n ArcType[ArcType[\"Round\"] = 2] = \"Round\";\n})(ArcType || (ArcType = {}));\n/**\n * Elliptical arc node.\n */\nvar Arc = /** @class */ (function (_super) {\n __extends$1J(Arc, _super);\n function Arc() {\n var _this = _super.call(this) || this;\n _this.centerX = 0;\n _this.centerY = 0;\n _this.radius = 10;\n _this.startAngle = 0;\n _this.endAngle = Math.PI * 2;\n _this.counterClockwise = false;\n /**\n * The type of arc to render:\n * - {@link ArcType.Open} - end points of the arc segment are not connected (default)\n * - {@link ArcType.Chord} - end points of the arc segment are connected by a line segment\n * - {@link ArcType.Round} - each of the end points of the arc segment are connected\n * to the center of the arc\n * Arcs with {@link ArcType.Open} do not support hit testing, even if they have their\n * {@link Shape.fillStyle} set, because they are not closed paths. Hit testing support\n * would require using two paths - one for rendering, another for hit testing - and there\n * doesn't seem to be a compelling reason to do that, when one can just use {@link ArcType.Chord}\n * to create a closed path.\n */\n _this.type = ArcType.Open;\n _this.restoreOwnStyles();\n return _this;\n }\n Object.defineProperty(Arc.prototype, \"fullPie\", {\n get: function () {\n return isEqual(normalizeAngle360(this.startAngle), normalizeAngle360(this.endAngle));\n },\n enumerable: false,\n configurable: true\n });\n Arc.prototype.updatePath = function () {\n var path = this.path;\n path.clear(); // No need to recreate the Path, can simply clear the existing one.\n path.arc(this.centerX, this.centerY, this.radius, this.startAngle, this.endAngle, this.counterClockwise);\n if (this.type === ArcType.Chord) {\n path.closePath();\n }\n else if (this.type === ArcType.Round && !this.fullPie) {\n path.lineTo(this.centerX, this.centerY);\n path.closePath();\n }\n };\n Arc.prototype.computeBBox = function () {\n // Only works with full arcs (circles) and untransformed ellipses.\n return new BBox(this.centerX - this.radius, this.centerY - this.radius, this.radius * 2, this.radius * 2);\n };\n Arc.prototype.isPointInPath = function (x, y) {\n var point = this.transformPoint(x, y);\n var bbox = this.computeBBox();\n return (this.type !== ArcType.Open &&\n bbox.containsPoint(point.x, point.y) &&\n this.path.isPointInPath(point.x, point.y));\n };\n Arc.className = 'Arc';\n Arc.defaultStyles = Object.assign({}, Shape.defaultStyles, {\n lineWidth: 1,\n fillStyle: null,\n });\n __decorate$1d([\n ScenePathChangeDetection()\n ], Arc.prototype, \"centerX\", void 0);\n __decorate$1d([\n ScenePathChangeDetection()\n ], Arc.prototype, \"centerY\", void 0);\n __decorate$1d([\n ScenePathChangeDetection()\n ], Arc.prototype, \"radius\", void 0);\n __decorate$1d([\n ScenePathChangeDetection()\n ], Arc.prototype, \"startAngle\", void 0);\n __decorate$1d([\n ScenePathChangeDetection()\n ], Arc.prototype, \"endAngle\", void 0);\n __decorate$1d([\n ScenePathChangeDetection()\n ], Arc.prototype, \"counterClockwise\", void 0);\n __decorate$1d([\n ScenePathChangeDetection()\n ], Arc.prototype, \"type\", void 0);\n return Arc;\n}(Path));\n\nvar __extends$1I = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/** @class */ ((function (_super) {\n __extends$1I(Image, _super);\n function Image(sourceImage) {\n var _this = _super.call(this) || this;\n _this.x = 0;\n _this.y = 0;\n _this.width = 0;\n _this.height = 0;\n _this.opacity = 1;\n _this.sourceImage = sourceImage;\n return _this;\n }\n Image.prototype.render = function (renderCtx) {\n var ctx = renderCtx.ctx, forceRender = renderCtx.forceRender, stats = renderCtx.stats;\n if (this.dirty === RedrawType.NONE && !forceRender) {\n if (stats)\n stats.nodesSkipped++;\n return;\n }\n this.computeTransformMatrix();\n this.matrix.toContext(ctx);\n var image = this.sourceImage;\n ctx.globalAlpha = this.opacity;\n ctx.drawImage(image, 0, 0, image.width, image.height, this.x, this.y, this.width, this.height);\n _super.prototype.render.call(this, renderCtx);\n };\n __decorate$1c([\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], Image.prototype, \"x\", void 0);\n __decorate$1c([\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], Image.prototype, \"y\", void 0);\n __decorate$1c([\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], Image.prototype, \"width\", void 0);\n __decorate$1c([\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], Image.prototype, \"height\", void 0);\n __decorate$1c([\n SceneChangeDetection({ redraw: RedrawType.MAJOR })\n ], Image.prototype, \"opacity\", void 0);\n return Image;\n})(Node));\n\nvar __read$p = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar themes = Object.entries(themes$1).reduce(function (obj, _a) {\n var _b = __read$p(_a, 2), name = _b[0], factory = _b[1];\n obj[name] = factory();\n return obj;\n}, {});\n\nvar VALID_SERIES_TYPES = [\n 'area',\n 'bar',\n 'column',\n 'histogram',\n 'line',\n 'pie',\n 'scatter',\n];\nfunction getSeriesType(chartType) {\n switch (chartType) {\n case 'bar':\n case 'groupedBar':\n case 'stackedBar':\n case 'normalizedBar':\n return 'bar';\n case 'column':\n case 'groupedColumn':\n case 'stackedColumn':\n case 'normalizedColumn':\n return 'column';\n case 'line':\n return 'line';\n case 'area':\n case 'stackedArea':\n case 'normalizedArea':\n return 'area';\n case 'scatter':\n case 'bubble':\n return 'scatter';\n case 'histogram':\n return 'histogram';\n case 'pie':\n case 'doughnut':\n return 'pie';\n default:\n return 'cartesian';\n }\n}\n\nvar ALL_AXIS_TYPES = ['number', 'category', 'groupedCategory', 'log', 'time'];\nfunction getLegacyAxisType(chartType) {\n switch (chartType) {\n case 'bar':\n case 'stackedBar':\n case 'normalizedBar':\n return ['number', 'category'];\n case 'groupedBar':\n return ['number', 'groupedCategory'];\n case 'column':\n case 'stackedColumn':\n case 'normalizedColumn':\n case 'line':\n case 'area':\n case 'stackedArea':\n case 'normalizedArea':\n case 'histogram':\n return ['category', 'number'];\n case 'groupedColumn':\n return ['groupedCategory', 'number'];\n case 'scatter':\n case 'bubble':\n return ['number', 'number'];\n default:\n return undefined;\n }\n}\n\nvar __assign$q = (undefined && undefined.__assign) || function () {\n __assign$q = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$q.apply(this, arguments);\n};\nfunction createAgChartTheme(chartProxyParams, proxy) {\n var _a;\n var chartOptionsToRestore = chartProxyParams.chartOptionsToRestore, chartPaletteToRestore = chartProxyParams.chartPaletteToRestore, chartThemeToRestore = chartProxyParams.chartThemeToRestore;\n var themeName = getSelectedTheme(chartProxyParams);\n var stockTheme = isStockTheme(themeName);\n var rootTheme = stockTheme\n ? { baseTheme: themeName }\n : (_a = lookupCustomChartTheme(chartProxyParams, themeName)) !== null && _a !== void 0 ? _a : {};\n var gridOptionsThemeOverrides = chartProxyParams.getGridOptionsChartThemeOverrides();\n var apiThemeOverrides = chartProxyParams.apiChartThemeOverrides;\n var standaloneChartType = getSeriesType(chartProxyParams.chartType);\n var crossFilterThemeOverridePoint = standaloneChartType === 'pie' ? 'polar' : 'cartesian';\n var crossFilteringOverrides = chartProxyParams.crossFiltering\n ? createCrossFilterThemeOverrides(proxy, chartProxyParams, crossFilterThemeOverridePoint)\n : undefined;\n var formattingPanelOverrides = __assign$q({}, (chartOptionsToRestore !== null && chartOptionsToRestore !== void 0 ? chartOptionsToRestore : {}));\n var isTitleEnabled = function () {\n var isTitleEnabled = function (obj) {\n if (!obj) {\n return false;\n }\n return Object.keys(obj).some(function (key) { return _.get(obj[key], 'title.enabled', false); });\n };\n return isTitleEnabled(gridOptionsThemeOverrides) || isTitleEnabled(apiThemeOverrides);\n };\n // Overrides in ascending precedence ordering.\n var overrides = [\n stockTheme ? inbuiltStockThemeOverrides(chartProxyParams, isTitleEnabled()) : undefined,\n crossFilteringOverrides,\n gridOptionsThemeOverrides,\n apiThemeOverrides,\n formattingPanelOverrides,\n ];\n // Recursively nest theme overrides so they are applied with correct precedence in\n // Standalone Charts - this is an undocumented feature.\n // Outermost theme overrides will be the formatting panel configured values, so they are\n // differentiated from grid-config and inbuilt overrides.\n var theme = overrides\n .filter(function (v) { return !!v; })\n .reduce(function (r, n) { return ({\n baseTheme: r,\n overrides: n,\n }); }, rootTheme);\n // Avoid explicitly setting the `theme.palette` property unless we're using the restored theme\n // AND the palette is actually different.\n if (chartPaletteToRestore && themeName === chartThemeToRestore) {\n var rootThemePalette = getChartTheme(rootTheme).palette;\n if (!isIdenticalPalette(chartPaletteToRestore, rootThemePalette)) {\n theme.palette = chartPaletteToRestore;\n }\n }\n return theme;\n}\nfunction isIdenticalPalette(paletteA, paletteB) {\n var arrayCompare = function (arrA, arrB) {\n if (arrA.length !== arrB.length)\n return false;\n return arrA.every(function (v, i) { return v === arrB[i]; });\n };\n return arrayCompare(paletteA.fills, paletteB.fills) &&\n arrayCompare(paletteA.strokes, paletteB.strokes);\n}\nfunction isStockTheme(themeName) {\n return _.includes(Object.keys(themes), themeName);\n}\nfunction createCrossFilterThemeOverrides(proxy, chartProxyParams, overrideType) {\n var _a;\n var legend = {\n listeners: {\n legendItemClick: function (e) {\n var chart = proxy.getChart();\n chart.series.forEach(function (s) {\n s.toggleSeriesItem(e.itemId, e.enabled);\n s.toggleSeriesItem(e.itemId + \"-filtered-out\", e.enabled);\n });\n },\n },\n };\n var series = {};\n if (overrideType === 'polar') {\n series.pie = {\n tooltip: {\n renderer: function (_a) {\n var angleName = _a.angleName, datum = _a.datum, calloutLabelKey = _a.calloutLabelKey, radiusKey = _a.radiusKey, angleValue = _a.angleValue;\n var title = angleName;\n var label = datum[calloutLabelKey];\n var ratio = datum[radiusKey];\n var totalValue = angleValue;\n return { title: title, content: label + \": \" + totalValue * ratio };\n },\n },\n };\n }\n return _a = {},\n _a[overrideType] = {\n tooltip: {\n delay: 500,\n },\n legend: legend,\n listeners: {\n click: function (e) { return chartProxyParams.crossFilterCallback(e, true); },\n },\n series: series,\n },\n _a;\n}\nvar STATIC_INBUILT_STOCK_THEME_AXES_OVERRIDES = ALL_AXIS_TYPES.reduce(function (r, n) {\n var _a;\n return (__assign$q(__assign$q({}, r), (_a = {}, _a[n] = { title: { _enabledFromTheme: true } }, _a)));\n}, {});\nfunction inbuiltStockThemeOverrides(params, titleEnabled) {\n var extraPadding = params.getExtraPaddingDirections();\n return {\n common: {\n axes: STATIC_INBUILT_STOCK_THEME_AXES_OVERRIDES,\n padding: {\n // don't add extra padding when a title is present!\n top: !titleEnabled && extraPadding.includes('top') ? 40 : 20,\n right: extraPadding.includes('right') ? 30 : 20,\n bottom: extraPadding.includes('bottom') ? 40 : 20,\n left: extraPadding.includes('left') ? 30 : 20,\n },\n },\n pie: {\n series: {\n title: { _enabledFromTheme: true },\n calloutLabel: { _enabledFromTheme: true },\n sectorLabel: {\n enabled: false,\n _enabledFromTheme: true,\n },\n },\n },\n };\n}\nfunction getSelectedTheme(chartProxyParams) {\n var chartThemeName = chartProxyParams.getChartThemeName();\n var availableThemes = chartProxyParams.getChartThemes();\n if (!_.includes(availableThemes, chartThemeName)) {\n chartThemeName = availableThemes[0];\n }\n return chartThemeName;\n}\nfunction lookupCustomChartTheme(chartProxyParams, name) {\n var customChartThemes = chartProxyParams.customChartThemes;\n var customChartTheme = customChartThemes && customChartThemes[name];\n if (!customChartTheme) {\n console.warn(\"AG Grid: no stock theme exists with the name '\" + name + \"' and no \" +\n \"custom chart theme with that name was supplied to 'customChartThemes'\");\n }\n return customChartTheme;\n}\n\nvar __read$o = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$d = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar __values$8 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar validateIfDefined = function (validationFn) {\n return function (value) {\n if (value === undefined)\n return true;\n return validationFn(value);\n };\n};\nvar isString$1 = function (value) { return typeof value === 'string'; };\nvar isBoolean = function (value) { return typeof value === 'boolean'; };\nvar isValidSeriesChartType = function (value) { return typeof value === 'object'; };\nvar createWarnMessage = function (property, expectedType) {\n return function (value) { return \"AG Grid - unable to update chart as invalid params supplied: `\" + property + \": \" + value + \"`, expected \" + expectedType + \".\"; };\n};\nvar UpdateParamsValidator = /** @class */ (function () {\n function UpdateParamsValidator() {\n }\n UpdateParamsValidator.validateChartParams = function (params) {\n var paramsToValidate = params;\n switch (paramsToValidate.type) {\n case 'rangeChartUpdate':\n return UpdateParamsValidator.validateUpdateRangeChartParams(params);\n case 'pivotChartUpdate':\n return UpdateParamsValidator.validateUpdatePivotChartParams(params);\n case 'crossFilterChartUpdate':\n return UpdateParamsValidator.validateUpdateCrossFilterChartParams(params);\n default:\n console.warn(\"AG Grid - Invalid value supplied for 'type': \" + params.type + \". It must be either 'rangeChartUpdate', 'pivotChartUpdate', or 'crossFilterChartUpdate'.\");\n return false;\n }\n };\n UpdateParamsValidator.validateUpdateRangeChartParams = function (params) {\n var validations = __spreadArray$d(__spreadArray$d(__spreadArray$d([], __read$o(UpdateParamsValidator.commonValidations)), __read$o(UpdateParamsValidator.cellRangeValidations)), [\n {\n property: 'seriesChartTypes',\n validationFn: function (value) { return value === undefined || (Array.isArray(value) && value.every(isValidSeriesChartType)); },\n warnMessage: createWarnMessage('seriesChartTypes', 'Array of SeriesChartType'),\n },\n ]);\n return UpdateParamsValidator.validateProperties(params, validations, ['type', 'chartId', 'chartType', 'chartThemeName', 'chartThemeOverrides', 'unlinkChart', 'cellRange', 'suppressChartRanges', 'aggFunc', 'seriesChartTypes'], 'UpdateRangeChartParams');\n };\n UpdateParamsValidator.validateUpdatePivotChartParams = function (params) {\n var validations = __spreadArray$d([], __read$o(UpdateParamsValidator.commonValidations));\n return UpdateParamsValidator.validateProperties(params, validations, ['type', 'chartId', 'chartType', 'chartThemeName', 'chartThemeOverrides', 'unlinkChart'], 'UpdatePivotChartParams');\n };\n UpdateParamsValidator.validateUpdateCrossFilterChartParams = function (params) {\n var validations = __spreadArray$d(__spreadArray$d([], __read$o(UpdateParamsValidator.commonValidations)), __read$o(UpdateParamsValidator.cellRangeValidations));\n return UpdateParamsValidator.validateProperties(params, validations, ['type', 'chartId', 'chartType', 'chartThemeName', 'chartThemeOverrides', 'unlinkChart', 'cellRange', 'suppressChartRanges', 'aggFunc'], 'UpdateCrossFilterChartParams');\n };\n UpdateParamsValidator.validateProperties = function (params, validations, validPropertyNames, paramsType) {\n var e_1, _a;\n try {\n for (var validations_1 = __values$8(validations), validations_1_1 = validations_1.next(); !validations_1_1.done; validations_1_1 = validations_1.next()) {\n var validation = validations_1_1.value;\n var property = validation.property, validationFn = validation.validationFn, warnMessage = validation.warnMessage;\n if (property in params) {\n var value = params[property];\n if (!validationFn(value)) {\n console.warn(warnMessage(value));\n return false;\n }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (validations_1_1 && !validations_1_1.done && (_a = validations_1.return)) _a.call(validations_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n // Check for unexpected properties\n for (var property in params) {\n if (!validPropertyNames.includes(property)) {\n console.warn(\"AG Grid - Unexpected property supplied. \" + paramsType + \" does not contain: `\" + property + \"`.\");\n return false;\n }\n }\n return true;\n };\n UpdateParamsValidator.validChartTypes = [\n 'column',\n 'groupedColumn',\n 'stackedColumn',\n 'normalizedColumn',\n 'bar',\n 'groupedBar',\n 'stackedBar',\n 'normalizedBar',\n 'line',\n 'scatter',\n 'bubble',\n 'pie',\n 'doughnut',\n 'area',\n 'stackedArea',\n 'normalizedArea',\n 'histogram',\n 'columnLineCombo',\n 'areaColumnCombo',\n 'customCombo'\n ];\n UpdateParamsValidator.validateChartType = validateIfDefined(function (chartType) {\n return UpdateParamsValidator.validChartTypes.includes(chartType);\n });\n UpdateParamsValidator.validateAgChartThemeOverrides = validateIfDefined(function (themeOverrides) {\n // ensure supplied AgChartThemeOverrides is an object - can be improved if necessary?\n return typeof themeOverrides === 'object';\n });\n UpdateParamsValidator.validateChartParamsCellRange = validateIfDefined(function (cellRange) {\n // ensure supplied ChartParamsCellRange is an object - can be improved if necessary?\n return typeof cellRange === 'object';\n });\n UpdateParamsValidator.validateAggFunc = validateIfDefined(function (aggFunc) {\n // ensure supplied aggFunc is a `string` or `function` - can be improved if necessary?\n return typeof aggFunc === 'string' || typeof aggFunc === 'function';\n });\n UpdateParamsValidator.commonValidations = [\n { property: 'chartId', validationFn: isString$1, warnMessage: createWarnMessage('chartId', 'string') },\n {\n property: 'chartType',\n validationFn: UpdateParamsValidator.validateChartType,\n warnMessage: createWarnMessage('chartType', UpdateParamsValidator.validChartTypes.join(', '))\n },\n {\n property: 'chartThemeName',\n validationFn: isString$1,\n warnMessage: createWarnMessage('chartThemeName', 'string')\n },\n {\n property: 'chartThemeOverrides',\n validationFn: UpdateParamsValidator.validateAgChartThemeOverrides,\n warnMessage: createWarnMessage('chartThemeOverrides', 'AgChartThemeOverrides')\n },\n { property: 'unlinkChart', validationFn: isBoolean, warnMessage: createWarnMessage('unlinkChart', 'boolean') },\n ];\n UpdateParamsValidator.cellRangeValidations = [\n {\n property: 'cellRange',\n validationFn: UpdateParamsValidator.validateChartParamsCellRange,\n warnMessage: createWarnMessage('cellRange', 'ChartParamsCellRange')\n },\n {\n property: 'suppressChartRanges',\n validationFn: isBoolean,\n warnMessage: createWarnMessage('suppressChartRanges', 'boolean')\n },\n {\n property: 'aggFunc',\n validationFn: UpdateParamsValidator.validateAggFunc,\n warnMessage: createWarnMessage('aggFunc', 'string or IAggFunc')\n },\n ];\n return UpdateParamsValidator;\n}());\n\nvar __extends$1H = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$p = (undefined && undefined.__assign) || function () {\n __assign$p = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$p.apply(this, arguments);\n};\nvar __decorate$1b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DEFAULT_THEMES = ['ag-default', 'ag-material', 'ag-pastel', 'ag-vivid', 'ag-solar'];\nvar ChartController = /** @class */ (function (_super) {\n __extends$1H(ChartController, _super);\n function ChartController(model) {\n var _this = _super.call(this) || this;\n _this.model = model;\n return _this;\n }\n ChartController.prototype.init = function () {\n var _this = this;\n this.setChartRange();\n this.addManagedListener(this.eventService, Events.EVENT_RANGE_SELECTION_CHANGED, function (event) {\n if (event.id && event.id === _this.model.chartId) {\n _this.updateForRangeChange();\n }\n });\n if (this.model.unlinked) {\n if (this.rangeService) {\n this.rangeService.setCellRanges([]);\n }\n }\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_MOVED, this.updateForGridChange.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PINNED, this.updateForGridChange.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VISIBLE, this.updateForGridChange.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, this.updateForGridChange.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, this.updateForGridChange.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_CELL_VALUE_CHANGED, this.updateForDataChange.bind(this));\n };\n ChartController.prototype.update = function (params) {\n var _a, _b, _c, _d, _e, _f, _g;\n if (!this.validUpdateType(params) || !UpdateParamsValidator.validateChartParams(params)) {\n return false;\n }\n var chartId = params.chartId, chartType = params.chartType, chartThemeName = params.chartThemeName, unlinkChart = params.unlinkChart;\n // create a common base for the chart model parameters (this covers pivot chart updates)\n var common = {\n chartId: chartId,\n pivotChart: this.model.pivotChart,\n chartType: chartType !== null && chartType !== void 0 ? chartType : this.model.chartType,\n chartThemeName: chartThemeName !== null && chartThemeName !== void 0 ? chartThemeName : this.model.chartThemeName,\n unlinkChart: unlinkChart !== null && unlinkChart !== void 0 ? unlinkChart : this.model.unlinked,\n cellRange: this.model.suppliedCellRange,\n aggFunc: this.model.aggFunc,\n seriesChartTypes: undefined,\n suppressChartRanges: false,\n crossFiltering: false\n };\n var chartModelParams = __assign$p({}, common);\n // modify the chart model properties based on the type of update\n switch (params.type) {\n case 'rangeChartUpdate':\n chartModelParams.cellRange = (_a = this.createCellRange(params)) !== null && _a !== void 0 ? _a : this.model.suppliedCellRange;\n chartModelParams.aggFunc = (_b = params.aggFunc) !== null && _b !== void 0 ? _b : this.model.aggFunc;\n chartModelParams.seriesChartTypes = params.seriesChartTypes;\n chartModelParams.suppressChartRanges = (_c = params.suppressChartRanges) !== null && _c !== void 0 ? _c : this.model.suppressChartRanges;\n break;\n case 'crossFilterChartUpdate':\n chartModelParams.cellRange = (_d = this.createCellRange(params)) !== null && _d !== void 0 ? _d : this.model.suppliedCellRange;\n chartModelParams.aggFunc = (_e = params.aggFunc) !== null && _e !== void 0 ? _e : this.model.aggFunc;\n chartModelParams.crossFiltering = true;\n chartModelParams.suppressChartRanges = (_f = params.suppressChartRanges) !== null && _f !== void 0 ? _f : this.model.suppressChartRanges;\n break;\n }\n this.model.updateModel(chartModelParams);\n // if the chart should be unlinked or chart ranges suppressed, remove all cell ranges; otherwise, set the chart range\n var removeChartCellRanges = chartModelParams.unlinkChart || chartModelParams.suppressChartRanges;\n removeChartCellRanges ? (_g = this.rangeService) === null || _g === void 0 ? void 0 : _g.setCellRanges([]) : this.setChartRange();\n return true;\n };\n ChartController.prototype.updateForGridChange = function () {\n if (this.model.unlinked) {\n return;\n }\n this.model.updateCellRanges();\n this.model.updateData();\n this.setChartRange();\n };\n ChartController.prototype.updateForDataChange = function () {\n if (this.model.unlinked) {\n return;\n }\n this.model.updateData();\n this.raiseChartModelUpdateEvent();\n };\n ChartController.prototype.updateForRangeChange = function () {\n this.updateForGridChange();\n this.raiseChartRangeSelectionChangedEvent();\n };\n ChartController.prototype.updateForPanelChange = function (updatedCol) {\n this.model.updateCellRanges(updatedCol);\n this.model.updateData();\n this.setChartRange();\n this.raiseChartRangeSelectionChangedEvent();\n };\n ChartController.prototype.getChartUpdateParams = function (updatedOverrides) {\n var selectedCols = this.getSelectedValueColState();\n var fields = selectedCols.map(function (c) { return ({ colId: c.colId, displayName: c.displayName }); });\n var data = this.getChartData();\n var selectedDimension = this.getSelectedDimension();\n return {\n data: data,\n grouping: this.isGrouping(),\n category: {\n id: selectedDimension.colId,\n name: selectedDimension.displayName,\n chartDataType: this.model.getChartDataType(selectedDimension.colId)\n },\n fields: fields,\n chartId: this.getChartId(),\n getCrossFilteringContext: function () { return ({ lastSelectedChartId: 'xxx' }); },\n seriesChartTypes: this.getSeriesChartTypes(),\n updatedOverrides: updatedOverrides\n };\n };\n ChartController.prototype.getChartModel = function () {\n var modelType = this.model.pivotChart ? 'pivot' : 'range';\n var seriesChartTypes = this.isComboChart() ? this.model.comboChartModel.seriesChartTypes : undefined;\n return {\n modelType: modelType,\n chartId: this.model.chartId,\n chartType: this.model.chartType,\n chartThemeName: this.getChartThemeName(),\n chartOptions: this.chartProxy.getChartThemeOverrides(),\n chartPalette: this.chartProxy.getChartPalette(),\n cellRange: this.getCellRangeParams(),\n suppressChartRanges: this.model.suppressChartRanges,\n aggFunc: this.model.aggFunc,\n unlinkChart: this.model.unlinked,\n seriesChartTypes: seriesChartTypes\n };\n };\n ChartController.prototype.getChartId = function () {\n return this.model.chartId;\n };\n ChartController.prototype.getChartData = function () {\n return this.model.chartData;\n };\n ChartController.prototype.getChartType = function () {\n return this.model.chartType;\n };\n ChartController.prototype.setChartType = function (chartType) {\n this.model.chartType = chartType;\n this.model.comboChartModel.updateSeriesChartTypes();\n this.raiseChartModelUpdateEvent();\n this.raiseChartOptionsChangedEvent();\n };\n ChartController.prototype.setChartThemeName = function (chartThemeName) {\n this.model.chartThemeName = chartThemeName;\n this.raiseChartModelUpdateEvent();\n this.raiseChartOptionsChangedEvent();\n };\n ChartController.prototype.getChartThemeName = function () {\n return this.model.chartThemeName;\n };\n ChartController.prototype.isPivotChart = function () {\n return this.model.pivotChart;\n };\n ChartController.prototype.isPivotMode = function () {\n return this.model.isPivotMode();\n };\n ChartController.prototype.isGrouping = function () {\n return this.model.isGrouping();\n };\n ChartController.prototype.isCrossFilterChart = function () {\n return this.model.crossFiltering;\n };\n ChartController.prototype.getThemes = function () {\n return this.gridOptionsService.get('chartThemes') || DEFAULT_THEMES;\n };\n ChartController.prototype.getPalettes = function () {\n var _this = this;\n var themeNames = this.getThemes();\n return themeNames.map(function (themeName) {\n var stockTheme = isStockTheme(themeName);\n var theme = stockTheme ? themeName : _this.chartProxy.lookupCustomChartTheme(themeName);\n return getChartTheme(theme).palette;\n });\n };\n ChartController.prototype.getValueColState = function () {\n return this.model.valueColState.map(this.displayNameMapper.bind(this));\n };\n ChartController.prototype.getSelectedValueColState = function () {\n return this.getValueColState().filter(function (cs) { return cs.selected; });\n };\n ChartController.prototype.getSelectedDimension = function () {\n return this.model.getSelectedDimension();\n };\n ChartController.prototype.displayNameMapper = function (col) {\n var columnNames = this.model.columnNames[col.colId];\n col.displayName = columnNames ? columnNames.join(' - ') : this.model.getColDisplayName(col.column);\n return col;\n };\n ChartController.prototype.getColStateForMenu = function () {\n return { dimensionCols: this.model.dimensionColState, valueCols: this.getValueColState() };\n };\n ChartController.prototype.setChartRange = function (silent) {\n if (silent === void 0) { silent = false; }\n if (this.rangeService && !this.model.suppressChartRanges && !this.model.unlinked) {\n this.rangeService.setCellRanges(this.getCellRanges());\n }\n if (!silent) {\n this.raiseChartModelUpdateEvent();\n }\n };\n ChartController.prototype.detachChartRange = function () {\n // when chart is detached it won't listen to changes from the grid\n this.model.unlinked = !this.model.unlinked;\n if (this.model.unlinked) {\n // remove range from grid\n if (this.rangeService) {\n this.rangeService.setCellRanges([]);\n }\n }\n else {\n // update chart data may have changed\n this.updateForGridChange();\n }\n };\n ChartController.prototype.setChartProxy = function (chartProxy) {\n this.chartProxy = chartProxy;\n };\n ChartController.prototype.getChartProxy = function () {\n return this.chartProxy;\n };\n ChartController.prototype.isActiveXYChart = function () {\n return _.includes(['scatter', 'bubble'], this.getChartType());\n };\n ChartController.prototype.isChartLinked = function () {\n return !this.model.unlinked;\n };\n ChartController.prototype.customComboExists = function () {\n var savedCustomSeriesChartTypes = this.model.comboChartModel.savedCustomSeriesChartTypes;\n return savedCustomSeriesChartTypes && savedCustomSeriesChartTypes.length > 0;\n };\n ChartController.prototype.getSeriesChartTypes = function () {\n return this.model.comboChartModel.seriesChartTypes;\n };\n ChartController.prototype.isComboChart = function () {\n return this.model.isComboChart();\n };\n ChartController.prototype.updateSeriesChartType = function (colId, chartType, secondaryAxis) {\n var seriesChartType = this.model.comboChartModel.seriesChartTypes.find(function (s) { return s.colId === colId; });\n if (seriesChartType) {\n // once a combo chart has been modified it is now a 'customCombo' chart\n var updateChartType = this.model.chartType !== 'customCombo';\n if (updateChartType) {\n this.model.chartType = 'customCombo';\n }\n var prevSeriesChartType = seriesChartType.chartType;\n if (chartType != null) {\n seriesChartType.chartType = chartType;\n }\n if (secondaryAxis != null) {\n seriesChartType.secondaryAxis = secondaryAxis;\n }\n // replace existing custom series types with this latest version\n this.model.comboChartModel.savedCustomSeriesChartTypes = this.model.comboChartModel.seriesChartTypes;\n // series chart types can be modified, i.e. column chart types should be moved to primary axis\n this.model.comboChartModel.updateSeriesChartTypes();\n this.updateForDataChange();\n if (updateChartType) {\n // update the settings panel by raising an EVENT_CHART_TYPE_CHANGED event\n this.dispatchEvent({\n type: ChartController.EVENT_CHART_TYPE_CHANGED\n });\n }\n if (prevSeriesChartType !== chartType) {\n // update the format panel by raising an EVENT_CHART_SERIES_CHART_TYPE_CHANGED event\n this.dispatchEvent({\n type: ChartController.EVENT_CHART_SERIES_CHART_TYPE_CHANGED\n });\n }\n this.raiseChartOptionsChangedEvent();\n }\n };\n ChartController.prototype.getActiveSeriesChartTypes = function () {\n var selectedColIds = this.getSelectedValueColState().map(function (c) { return c.colId; });\n return this.getSeriesChartTypes().filter(function (s) { return selectedColIds.includes(s.colId); });\n };\n ChartController.prototype.getChartSeriesTypes = function () {\n var supportedComboSeriesTypes = ['line', 'column', 'area'];\n return this.isComboChart() ? supportedComboSeriesTypes : [getSeriesType(this.getChartType())];\n };\n ChartController.prototype.getCellRanges = function () {\n return [this.model.dimensionCellRange, this.model.valueCellRange].filter(function (r) { return r; });\n };\n ChartController.prototype.createCellRange = function (params) {\n var _a;\n return params.cellRange && ((_a = this.rangeService) === null || _a === void 0 ? void 0 : _a.createCellRangeFromCellRangeParams(params.cellRange));\n };\n ChartController.prototype.validUpdateType = function (params) {\n var _this = this;\n var _a;\n if (!params.type) {\n console.warn(\"AG Grid - Unable to update chart as the 'type' is missing. It must be either 'rangeChartUpdate', 'pivotChartUpdate', or 'crossFilterChartUpdate'.\");\n return false;\n }\n var chartTypeMap = {\n 'Range Chart': function () { return !_this.isPivotChart() && !_this.isCrossFilterChart(); },\n 'Pivot Chart': function () { return _this.isPivotChart(); },\n 'Cross Filter Chart': function () { return _this.isCrossFilterChart(); }\n };\n var currentChartType = (_a = Object.keys(chartTypeMap).find(function (type) { return chartTypeMap[type](); })) !== null && _a !== void 0 ? _a : 'Range Chart';\n var valid = params.type ===\n \"\" + currentChartType[0].toLowerCase() + currentChartType.slice(1).replace(/ /g, '') + \"Update\";\n if (!valid) {\n console.warn(\"AG Grid - Unable to update chart as a '\" + params.type + \"' update type is not permitted on a \" + currentChartType + \".\");\n }\n return valid;\n };\n ChartController.prototype.getCellRangeParams = function () {\n var cellRanges = this.getCellRanges();\n var firstCellRange = cellRanges[0];\n var startRow = (firstCellRange && firstCellRange.startRow) || null;\n var endRow = (firstCellRange && firstCellRange.endRow) || null;\n return {\n rowStartIndex: startRow && startRow.rowIndex,\n rowStartPinned: startRow && startRow.rowPinned,\n rowEndIndex: endRow && endRow.rowIndex,\n rowEndPinned: endRow && endRow.rowPinned,\n columns: cellRanges.reduce(function (columns, value) { return columns.concat(value.columns.map(function (c) { return c.getId(); })); }, [])\n };\n };\n ChartController.prototype.raiseChartModelUpdateEvent = function () {\n var event = {\n type: ChartController.EVENT_CHART_MODEL_UPDATE\n };\n this.dispatchEvent(event);\n };\n ChartController.prototype.raiseChartUpdatedEvent = function () {\n var event = {\n type: ChartController.EVENT_CHART_UPDATED\n };\n this.dispatchEvent(event);\n };\n ChartController.prototype.raiseChartApiUpdateEvent = function () {\n var event = {\n type: ChartController.EVENT_CHART_API_UPDATE\n };\n this.dispatchEvent(event);\n };\n ChartController.prototype.raiseChartOptionsChangedEvent = function () {\n var _a = this.getChartModel(), chartId = _a.chartId, chartType = _a.chartType;\n var event = {\n type: Events.EVENT_CHART_OPTIONS_CHANGED,\n chartId: chartId,\n chartType: chartType,\n chartThemeName: this.getChartThemeName(),\n chartOptions: this.chartProxy.getChartThemeOverrides()\n };\n this.eventService.dispatchEvent(event);\n };\n ChartController.prototype.raiseChartRangeSelectionChangedEvent = function () {\n var event = {\n type: Events.EVENT_CHART_RANGE_SELECTION_CHANGED,\n id: this.model.chartId,\n chartId: this.model.chartId,\n cellRange: this.getCellRangeParams()\n };\n this.eventService.dispatchEvent(event);\n };\n ChartController.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (this.rangeService) {\n this.rangeService.setCellRanges([]);\n }\n };\n ChartController.EVENT_CHART_UPDATED = 'chartUpdated';\n ChartController.EVENT_CHART_API_UPDATE = 'chartApiUpdate';\n ChartController.EVENT_CHART_MODEL_UPDATE = 'chartModelUpdate';\n ChartController.EVENT_CHART_TYPE_CHANGED = 'chartTypeChanged';\n ChartController.EVENT_CHART_SERIES_CHART_TYPE_CHANGED = 'chartSeriesChartTypeChanged';\n __decorate$1b([\n Autowired('rangeService')\n ], ChartController.prototype, \"rangeService\", void 0);\n __decorate$1b([\n PostConstruct\n ], ChartController.prototype, \"init\", null);\n return ChartController;\n}(BeanStub));\n\nvar __extends$1G = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$1a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$n = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$c = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar __values$7 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar DefaultDataPanelDef = {\n groups: [\n { type: 'categories', isOpen: true },\n { type: 'series', isOpen: true },\n { type: 'seriesChartType', isOpen: true }\n ]\n};\nvar ChartDataPanel = /** @class */ (function (_super) {\n __extends$1G(ChartDataPanel, _super);\n function ChartDataPanel(chartController, chartOptionsService) {\n var _this = _super.call(this, ChartDataPanel.TEMPLATE) || this;\n _this.chartController = chartController;\n _this.chartOptionsService = chartOptionsService;\n _this.columnComps = new Map();\n return _this;\n }\n ChartDataPanel.prototype.init = function () {\n this.updatePanels();\n this.addManagedListener(this.chartController, ChartController.EVENT_CHART_MODEL_UPDATE, this.updatePanels.bind(this));\n this.addManagedListener(this.chartController, ChartController.EVENT_CHART_API_UPDATE, this.updatePanels.bind(this));\n this.createAutoScrollService();\n };\n ChartDataPanel.prototype.destroy = function () {\n this.clearComponents();\n _super.prototype.destroy.call(this);\n };\n ChartDataPanel.prototype.updatePanels = function () {\n var _this = this;\n var _a, _b;\n var currentChartType = this.chartType;\n var _c = this.chartController.getColStateForMenu(), dimensionCols = _c.dimensionCols, valueCols = _c.valueCols;\n var colIds = dimensionCols.map(function (c) { return c.colId; }).concat(valueCols.map(function (c) { return c.colId; }));\n this.chartType = this.chartController.getChartType();\n var groupExpandedState = this.getGroupExpandedState();\n if (_.areEqual(_.keys(this.columnComps), colIds) && this.chartType === currentChartType) {\n // if possible, we just update existing components\n __spreadArray$c(__spreadArray$c([], __read$n(dimensionCols)), __read$n(valueCols)).forEach(function (col) {\n _this.columnComps.get(col.colId).setValue(col.selected, true);\n });\n if (this.chartController.isActiveXYChart()) {\n var getSeriesLabel_1 = this.generateGetSeriesLabel();\n valueCols.forEach(function (col) {\n _this.columnComps.get(col.colId).setLabel(getSeriesLabel_1(col));\n });\n }\n // recreate series chart type group if it exists as series may be added or removed via series group panel\n _.removeFromParent(this.getGui().querySelector('#seriesChartTypeGroup'));\n this.seriesChartTypeGroupComp = this.destroyBean(this.seriesChartTypeGroupComp);\n var seriesChartTypeIndex = (_a = this.getDataPanelDef().groups) === null || _a === void 0 ? void 0 : _a.reduce(function (prevVal, _a, index) {\n var type = _a.type;\n if (type === 'seriesChartType') {\n return index;\n }\n return prevVal;\n }, -1);\n if (seriesChartTypeIndex !== -1) {\n this.createSeriesChartTypeGroup(valueCols, seriesChartTypeIndex);\n }\n }\n else {\n // otherwise, we re-create everything\n this.clearComponents();\n (_b = this.getDataPanelDef().groups) === null || _b === void 0 ? void 0 : _b.forEach(function (_a) {\n var type = _a.type;\n if (type === 'categories') {\n _this.createCategoriesGroup(dimensionCols);\n }\n else if (type === 'series') {\n _this.createSeriesGroup(valueCols);\n }\n else if (type === 'seriesChartType') {\n _this.createSeriesChartTypeGroup(valueCols);\n }\n else {\n console.warn(\"AG Grid: invalid charts data panel group name supplied: '\" + type + \"'\");\n }\n });\n }\n this.restoreGroupExpandedState(groupExpandedState);\n };\n ChartDataPanel.prototype.getGroupExpandedState = function () {\n var _this = this;\n var groups = [\n { groupType: 'categories', comp: this.categoriesGroupComp },\n { groupType: 'series', comp: this.seriesGroupComp },\n { groupType: 'seriesChartType', comp: this.seriesChartTypeGroupComp }\n ];\n return groups.map(function (_a) {\n var _b, _c;\n var groupType = _a.groupType, comp = _a.comp;\n var defaultExpanded = Boolean((_c = (_b = _this.getDataPanelDef().groups) === null || _b === void 0 ? void 0 : _b.find(function (_a) {\n var type = _a.type;\n return type === groupType;\n })) === null || _c === void 0 ? void 0 : _c.isOpen);\n return !comp ? defaultExpanded : comp.isExpanded();\n });\n };\n ChartDataPanel.prototype.restoreGroupExpandedState = function (groupExpandedState) {\n [\n this.categoriesGroupComp,\n this.seriesGroupComp,\n this.seriesChartTypeGroupComp\n ].forEach(function (group, idx) {\n if (!group) {\n return;\n }\n group.toggleGroupExpand(groupExpandedState[idx]);\n });\n };\n ChartDataPanel.prototype.createAutoScrollService = function () {\n var eGui = this.getGui();\n this.autoScrollService = new AutoScrollService({\n scrollContainer: eGui,\n scrollAxis: 'y',\n getVerticalPosition: function () { return eGui.scrollTop; },\n setVerticalPosition: function (position) { return eGui.scrollTop = position; }\n });\n };\n ChartDataPanel.prototype.createComponent = function (component, id) {\n var eDiv = document.createElement('div');\n eDiv.id = id;\n eDiv.className = 'ag-chart-data-section';\n eDiv.appendChild(component.getGui());\n return eDiv;\n };\n ChartDataPanel.prototype.addComponent = function (parent, component, id) {\n var eDiv = this.createComponent(component, id);\n parent.appendChild(eDiv);\n };\n ChartDataPanel.prototype.addComponentAtIndex = function (parent, component, id, index) {\n var eDiv = this.createComponent(component, id);\n parent.insertBefore(eDiv, parent.children[index]);\n };\n ChartDataPanel.prototype.addChangeListener = function (component, columnState) {\n var _this = this;\n this.addManagedListener(component, Events.EVENT_FIELD_VALUE_CHANGED, function () {\n columnState.selected = component.getValue();\n _this.chartController.updateForPanelChange(columnState);\n });\n };\n ChartDataPanel.prototype.createCategoriesGroup = function (columns) {\n var _this = this;\n this.categoriesGroupComp = this.createBean(new AgGroupComponent({\n title: this.getCategoryGroupTitle(),\n enabled: true,\n suppressEnabledCheckbox: true,\n suppressOpenCloseIcons: false,\n cssIdentifier: 'charts-data'\n }));\n var inputName = \"chartDimension\" + this.getCompId();\n columns.forEach(function (col) {\n var comp = _this.categoriesGroupComp.createManagedBean(new AgRadioButton());\n comp.setLabel(_.escapeString(col.displayName));\n comp.setValue(col.selected);\n comp.setInputName(inputName);\n _this.addChangeListener(comp, col);\n _this.categoriesGroupComp.addItem(comp);\n _this.columnComps.set(col.colId, comp);\n });\n this.addComponent(this.getGui(), this.categoriesGroupComp, 'categoriesGroup');\n };\n ChartDataPanel.prototype.createSeriesGroup = function (columns) {\n var _this = this;\n this.seriesGroupComp = this.createManagedBean(new AgGroupComponent({\n title: this.getSeriesGroupTitle(),\n enabled: true,\n suppressEnabledCheckbox: true,\n suppressOpenCloseIcons: false,\n cssIdentifier: 'charts-data'\n }));\n if (this.chartController.isActiveXYChart()) {\n var pairedModeToggle = this.seriesGroupComp.createManagedBean(new AgToggleButton());\n pairedModeToggle\n .setLabel(this.chartTranslationService.translate('paired'))\n .setLabelAlignment('left')\n .setLabelWidth('flex')\n .setInputWidth(45)\n .setValue(this.chartOptionsService.getPairedMode())\n .onValueChange(function (newValue) {\n _this.chartOptionsService.setPairedMode(!!newValue);\n _this.chartController.updateForGridChange();\n });\n this.seriesGroupComp.addItem(pairedModeToggle);\n }\n var getSeriesLabel = this.generateGetSeriesLabel();\n columns.forEach(function (col) {\n var comp = _this.seriesGroupComp.createManagedBean(new AgCheckbox());\n comp.addCssClass('ag-data-select-checkbox');\n var label = getSeriesLabel(col);\n comp.setLabel(label);\n comp.setValue(col.selected);\n _this.addChangeListener(comp, col);\n _this.seriesGroupComp.addItem(comp);\n _this.columnComps.set(col.colId, comp);\n _this.addDragHandle(comp, col);\n });\n var eGui = this.getGui();\n var seriesGroupGui = this.seriesGroupComp.getGui();\n this.addComponent(eGui, this.seriesGroupComp, 'seriesGroup');\n var dropTarget = {\n getIconName: function () { return DragAndDropService.ICON_MOVE; },\n getContainer: function () { return seriesGroupGui; },\n onDragging: function (params) { return _this.onDragging(params); },\n onDragLeave: function () { return _this.onDragLeave(); },\n isInterestedIn: this.isInterestedIn.bind(this),\n targetContainsSource: true\n };\n this.dragAndDropService.addDropTarget(dropTarget);\n this.addDestroyFunc(function () { return _this.dragAndDropService.removeDropTarget(dropTarget); });\n };\n ChartDataPanel.prototype.createSeriesChartTypeGroup = function (columns, index) {\n var _this = this;\n if (!this.chartController.isComboChart()) {\n return;\n }\n this.seriesChartTypeGroupComp = this.createManagedBean(new AgGroupComponent({\n title: this.chartTranslationService.translate('seriesChartType'),\n enabled: true,\n suppressEnabledCheckbox: true,\n suppressOpenCloseIcons: false,\n cssIdentifier: 'charts-data'\n }));\n var seriesChartTypes = this.chartController.getSeriesChartTypes();\n columns.forEach(function (col) {\n if (!col.selected) {\n return;\n }\n var seriesChartType = seriesChartTypes.filter(function (s) { return s.colId === col.colId; })[0];\n if (!seriesChartType) {\n return;\n }\n var seriesItemGroup = _this.seriesChartTypeGroupComp.createManagedBean(new AgGroupComponent({\n title: col.displayName,\n enabled: true,\n suppressEnabledCheckbox: true,\n suppressOpenCloseIcons: true,\n cssIdentifier: 'charts-format-sub-level'\n }));\n var secondaryAxisComp = _this.seriesChartTypeGroupComp\n .createManagedBean(new AgCheckbox())\n .setLabel(_this.chartTranslationService.translate('secondaryAxis'))\n .setLabelWidth(\"flex\")\n .setDisabled(['groupedColumn', 'stackedColumn', 'stackedArea'].includes(seriesChartType.chartType))\n .setValue(!!seriesChartType.secondaryAxis)\n .onValueChange(function (enabled) { return _this.chartController.updateSeriesChartType(col.colId, undefined, enabled); });\n seriesItemGroup.addItem(secondaryAxisComp);\n var translate = function (key, defaultText) {\n return _this.chartTranslationService.translate(key, defaultText);\n };\n var availableChartTypes = [\n { value: 'line', text: translate('line', 'Line') },\n { value: 'area', text: translate('area', 'Area') },\n { value: 'stackedArea', text: translate('stackedArea', 'StackedArea') },\n { value: 'groupedColumn', text: translate('groupedColumn', 'Grouped Column') },\n { value: 'stackedColumn', text: translate('stackedColumn', 'Stacked Column') },\n ];\n var chartTypeComp = seriesItemGroup.createManagedBean(new AgSelect());\n chartTypeComp\n .setLabelAlignment('left')\n .setLabelWidth(\"flex\")\n .addOptions(availableChartTypes)\n .setValue(seriesChartType.chartType)\n .onValueChange(function (chartType) { return _this.chartController.updateSeriesChartType(col.colId, chartType); });\n seriesItemGroup.addItem(chartTypeComp);\n _this.seriesChartTypeGroupComp.addItem(seriesItemGroup);\n });\n if (index === undefined) {\n this.addComponent(this.getGui(), this.seriesChartTypeGroupComp, 'seriesChartTypeGroup');\n }\n else {\n this.addComponentAtIndex(this.getGui(), this.seriesChartTypeGroupComp, 'seriesChartTypeGroup', index);\n }\n };\n ChartDataPanel.prototype.addDragHandle = function (comp, col) {\n var _this = this;\n var eDragHandle = _.createIconNoSpan('columnDrag', this.gridOptionsService);\n eDragHandle.classList.add('ag-drag-handle', 'ag-chart-data-column-drag-handle');\n comp.getGui().insertAdjacentElement('beforeend', eDragHandle);\n var dragSource = {\n type: DragSourceType.ChartPanel,\n eElement: eDragHandle,\n dragItemName: col.displayName,\n getDragItem: function () { return ({ columns: [col.column] }); },\n onDragStopped: function () { return _this.onDragStop(); }\n };\n this.dragAndDropService.addDragSource(dragSource, true);\n this.addDestroyFunc(function () { return _this.dragAndDropService.removeDragSource(dragSource); });\n };\n ChartDataPanel.prototype.generateGetSeriesLabel = function () {\n if (!this.chartController.isActiveXYChart()) {\n return function (col) { return _.escapeString(col.displayName); };\n }\n var isBubble = this.chartType === 'bubble';\n var isInPairedMode = this.isInPairedMode();\n var selectedValuesCount = 0;\n var indexToAxisLabel = new Map();\n indexToAxisLabel.set(0, 'X');\n indexToAxisLabel.set(1, 'Y');\n indexToAxisLabel.set(2, 'size');\n return function (col) {\n var escapedLabel = _.escapeString(col.displayName);\n if (!col.selected) {\n return escapedLabel;\n }\n var axisLabel;\n if (isInPairedMode) {\n axisLabel = indexToAxisLabel.get(selectedValuesCount % (isBubble ? 3 : 2));\n }\n else {\n if (selectedValuesCount === 0) {\n axisLabel = 'X';\n }\n else {\n axisLabel = isBubble && selectedValuesCount % 2 === 0 ? 'size' : 'Y';\n }\n }\n selectedValuesCount++;\n return escapedLabel + \" (\" + axisLabel + \")\";\n };\n };\n ChartDataPanel.prototype.getCategoryGroupTitle = function () {\n return this.chartTranslationService.translate(this.chartController.isActiveXYChart() ? 'labels' : 'categories');\n };\n ChartDataPanel.prototype.getSeriesGroupTitle = function () {\n return this.chartTranslationService.translate(this.chartController.isActiveXYChart() ? 'xyValues' : 'series');\n };\n ChartDataPanel.prototype.getDataPanelDef = function () {\n var _a;\n var userProvidedDataPanelDef = (_a = this.gridOptionsService.get('chartToolPanelsDef')) === null || _a === void 0 ? void 0 : _a.dataPanel;\n return userProvidedDataPanelDef ? userProvidedDataPanelDef : DefaultDataPanelDef;\n };\n ChartDataPanel.prototype.isInPairedMode = function () {\n return this.chartController.isActiveXYChart() && this.chartOptionsService.getSeriesOption('paired', 'scatter');\n };\n ChartDataPanel.prototype.clearComponents = function () {\n _.clearElement(this.getGui());\n this.categoriesGroupComp = this.destroyBean(this.categoriesGroupComp);\n this.seriesGroupComp = this.destroyBean(this.seriesGroupComp);\n this.seriesChartTypeGroupComp = this.destroyBean(this.seriesChartTypeGroupComp);\n this.columnComps.clear();\n };\n ChartDataPanel.prototype.onDragging = function (draggingEvent) {\n var itemHovered = this.checkHoveredItem(draggingEvent);\n if (!itemHovered) {\n return;\n }\n this.lastDraggedColumn = draggingEvent.dragItem.columns[0];\n var comp = itemHovered.comp, position = itemHovered.position;\n var _a = this.lastHoveredItem || {}, lastHoveredComp = _a.comp, lastHoveredPosition = _a.position;\n if (comp === lastHoveredComp && position === lastHoveredPosition) {\n return;\n }\n this.autoScrollService.check(draggingEvent.event);\n this.clearHoveredItems();\n this.lastHoveredItem = { comp: comp, position: position };\n var eGui = comp.getGui();\n eGui.classList.add('ag-list-item-hovered', \"ag-item-highlight-\" + position);\n };\n ChartDataPanel.prototype.checkHoveredItem = function (draggingEvent) {\n var e_1, _a;\n if (_.missing(draggingEvent.vDirection)) {\n return null;\n }\n var mouseEvent = draggingEvent.event;\n try {\n for (var _b = __values$7(this.columnComps.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var comp = _c.value;\n var eGui = comp.getGui();\n if (!eGui.querySelector('.ag-chart-data-column-drag-handle')) {\n continue;\n }\n var rect = eGui.getBoundingClientRect();\n var isOverComp = mouseEvent.clientY >= rect.top && mouseEvent.clientY <= rect.bottom;\n if (isOverComp) {\n var height = eGui.clientHeight;\n var position = mouseEvent.clientY > rect.top + (height / 2) ? 'bottom' : 'top';\n return { comp: comp, position: position };\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return null;\n };\n ChartDataPanel.prototype.onDragLeave = function () {\n this.clearHoveredItems();\n };\n ChartDataPanel.prototype.onDragStop = function () {\n var _this = this;\n if (this.lastHoveredItem) {\n var _a = this.chartController.getColStateForMenu(), dimensionCols = _a.dimensionCols, valueCols = _a.valueCols;\n var draggedColumnState = __spreadArray$c(__spreadArray$c([], __read$n(dimensionCols)), __read$n(valueCols)).find(function (state) { return state.column === _this.lastDraggedColumn; });\n if (draggedColumnState) {\n var targetIndex = Array.from(this.columnComps.values()).indexOf(this.lastHoveredItem.comp);\n if (this.lastHoveredItem.position === 'bottom') {\n targetIndex++;\n }\n draggedColumnState.order = targetIndex;\n this.chartController.updateForPanelChange(draggedColumnState);\n }\n }\n this.clearHoveredItems();\n this.lastDraggedColumn = undefined;\n this.autoScrollService.ensureCleared();\n };\n ChartDataPanel.prototype.clearHoveredItems = function () {\n this.columnComps.forEach(function (columnComp) {\n columnComp.getGui().classList.remove('ag-list-item-hovered', 'ag-item-highlight-top', 'ag-item-highlight-bottom');\n });\n this.lastHoveredItem = undefined;\n };\n ChartDataPanel.prototype.isInterestedIn = function (type) {\n return type === DragSourceType.ChartPanel;\n };\n ChartDataPanel.TEMPLATE = \"
\";\n __decorate$1a([\n Autowired('dragAndDropService')\n ], ChartDataPanel.prototype, \"dragAndDropService\", void 0);\n __decorate$1a([\n Autowired('chartTranslationService')\n ], ChartDataPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$1a([\n PostConstruct\n ], ChartDataPanel.prototype, \"init\", null);\n return ChartDataPanel;\n}(Component));\n\nvar __extends$1F = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$19 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FontPanel = /** @class */ (function (_super) {\n __extends$1F(FontPanel, _super);\n function FontPanel(params) {\n var _this = _super.call(this) || this;\n _this.activeComps = [];\n _this.params = params;\n return _this;\n }\n FontPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-sub-level',\n direction: 'vertical',\n suppressOpenCloseIcons: true\n };\n this.setTemplate(FontPanel.TEMPLATE, { fontGroup: groupParams });\n this.initGroup();\n this.initFontFamilySelect();\n this.initFontWeightStyleSelect();\n this.initFontSizeSelect();\n this.initFontColorPicker();\n };\n FontPanel.prototype.addCompToPanel = function (comp) {\n this.fontGroup.addItem(comp);\n this.activeComps.push(comp);\n };\n FontPanel.prototype.setEnabled = function (enabled) {\n this.fontGroup.setEnabled(enabled);\n };\n FontPanel.prototype.initGroup = function () {\n var _this = this;\n this.fontGroup\n .setTitle(this.params.name || this.chartTranslationService.translate('font'))\n .setEnabled(this.params.enabled)\n .hideEnabledCheckbox(!!this.params.suppressEnabledCheckbox)\n .hideOpenCloseIcons(true)\n .onEnableChange(function (enabled) {\n if (_this.params.setEnabled) {\n _this.params.setEnabled(enabled);\n }\n });\n };\n FontPanel.prototype.initFontFamilySelect = function () {\n var _this = this;\n var families = [\n 'Arial, sans-serif',\n 'Aria Black, sans-serif',\n 'Book Antiqua, serif',\n 'Charcoal, sans-serif',\n 'Comic Sans MS, cursive',\n 'Courier, monospace',\n 'Courier New, monospace',\n 'Gadget, sans-serif',\n 'Geneva, sans-serif',\n 'Helvetica, sans-serif',\n 'Impact, sans-serif',\n 'Lucida Console, monospace',\n 'Lucida Grande, sans-serif',\n 'Lucida Sans Unicode, sans-serif',\n 'Monaco, monospace',\n 'Palatino Linotype, serif',\n 'Palatino, serif',\n 'Times New Roman, serif',\n 'Times, serif',\n 'Verdana, sans-serif'\n ];\n var family = this.params.initialFont.family;\n var initialValue = families[0];\n if (family) {\n // check for known values using lowercase\n var lowerCaseValues = families.map(function (f) { return f.toLowerCase(); });\n var valueIndex = lowerCaseValues.indexOf(family.toLowerCase());\n if (valueIndex >= 0) {\n initialValue = families[valueIndex];\n }\n else {\n // add user provided value to list\n var capitalisedFontValue = _.capitalise(family);\n families.push(capitalisedFontValue);\n initialValue = capitalisedFontValue;\n }\n }\n var options = families.sort().map(function (value) { return ({ value: value, text: value }); });\n this.familySelect.addOptions(options)\n .setInputWidth('flex')\n .setValue(\"\" + initialValue)\n .onValueChange(function (newValue) { return _this.params.setFont({ family: newValue }); });\n };\n FontPanel.prototype.initFontSizeSelect = function () {\n var _this = this;\n var sizes = [8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36];\n var size = this.params.initialFont.size;\n if (!_.includes(sizes, size)) {\n sizes.push(size);\n }\n var options = sizes.sort(function (a, b) { return a - b; }).map(function (value) { return ({ value: \"\" + value, text: \"\" + value }); });\n this.sizeSelect.addOptions(options)\n .setInputWidth('flex')\n .setValue(\"\" + size)\n .onValueChange(function (newValue) { return _this.params.setFont({ size: parseInt(newValue, 10) }); });\n this.sizeSelect.setLabel(this.chartTranslationService.translate('size'));\n };\n FontPanel.prototype.initFontWeightStyleSelect = function () {\n var _this = this;\n var _a = this.params.initialFont, _b = _a.weight, weight = _b === void 0 ? 'normal' : _b, _c = _a.style, style = _c === void 0 ? 'normal' : _c;\n var weightStyles = [\n { name: 'normal', weight: 'normal', style: 'normal' },\n { name: 'bold', weight: 'bold', style: 'normal' },\n { name: 'italic', weight: 'normal', style: 'italic' },\n { name: 'boldItalic', weight: 'bold', style: 'italic' }\n ];\n var selectedOption = weightStyles.find(function (x) { return x.weight === weight && x.style === style; });\n if (!selectedOption) {\n selectedOption = { name: 'predefined', weight: weight, style: style };\n weightStyles.unshift(selectedOption);\n }\n var options = weightStyles.map(function (ws) { return ({\n value: ws.name,\n text: _this.chartTranslationService.translate(ws.name),\n }); });\n this.weightStyleSelect.addOptions(options)\n .setInputWidth('flex')\n .setValue(selectedOption.name)\n .onValueChange(function (newValue) {\n var selectedWeightStyle = weightStyles.find(function (x) { return x.name === newValue; });\n _this.params.setFont({ weight: selectedWeightStyle.weight, style: selectedWeightStyle.style });\n });\n };\n FontPanel.prototype.initFontColorPicker = function () {\n var _this = this;\n this.colorPicker\n .setLabel(this.chartTranslationService.translate('color'))\n .setInputWidth(45)\n .setValue(\"\" + this.params.initialFont.color)\n .onValueChange(function (newColor) { return _this.params.setFont({ color: newColor }); });\n };\n FontPanel.prototype.addItemToPanel = function (item) {\n this.fontGroup.addItem(item);\n this.activeComps.push(item);\n };\n FontPanel.prototype.destroyActiveComps = function () {\n var _this = this;\n this.activeComps.forEach(function (comp) {\n _.removeFromParent(comp.getGui());\n _this.destroyBean(comp);\n });\n };\n FontPanel.prototype.destroy = function () {\n this.destroyActiveComps();\n _super.prototype.destroy.call(this);\n };\n FontPanel.TEMPLATE = \"
\\n \\n \\n \\n
\\n \\n \\n
\\n
\\n
\";\n __decorate$19([\n RefSelector('fontGroup')\n ], FontPanel.prototype, \"fontGroup\", void 0);\n __decorate$19([\n RefSelector('familySelect')\n ], FontPanel.prototype, \"familySelect\", void 0);\n __decorate$19([\n RefSelector('weightStyleSelect')\n ], FontPanel.prototype, \"weightStyleSelect\", void 0);\n __decorate$19([\n RefSelector('sizeSelect')\n ], FontPanel.prototype, \"sizeSelect\", void 0);\n __decorate$19([\n RefSelector('colorPicker')\n ], FontPanel.prototype, \"colorPicker\", void 0);\n __decorate$19([\n Autowired('chartTranslationService')\n ], FontPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$19([\n PostConstruct\n ], FontPanel.prototype, \"init\", null);\n return FontPanel;\n}(Component));\n\nvar __extends$1E = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$18 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar LegendPanel = /** @class */ (function (_super) {\n __extends$1E(LegendPanel, _super);\n function LegendPanel(_a) {\n var chartOptionsService = _a.chartOptionsService, _b = _a.isExpandedOnInit, isExpandedOnInit = _b === void 0 ? false : _b;\n var _this = _super.call(this) || this;\n _this.activePanels = [];\n _this.chartOptionsService = chartOptionsService;\n _this.isExpandedOnInit = isExpandedOnInit;\n return _this;\n }\n LegendPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-top-level',\n direction: 'vertical'\n };\n this.setTemplate(LegendPanel.TEMPLATE, { legendGroup: groupParams });\n this.initLegendGroup();\n this.initLegendPosition();\n this.initLegendPadding();\n this.initLegendItems();\n this.initLabelPanel();\n };\n LegendPanel.prototype.initLegendGroup = function () {\n var _this = this;\n this.legendGroup\n .setTitle(this.chartTranslationService.translate(\"legend\"))\n .hideEnabledCheckbox(false)\n .setEnabled(this.chartOptionsService.getChartOption(\"legend.enabled\") || false)\n .toggleGroupExpand(this.isExpandedOnInit)\n .onEnableChange(function (enabled) {\n _this.chartOptionsService.setChartOption(\"legend.enabled\", enabled);\n _this.legendGroup.toggleGroupExpand(true);\n });\n };\n LegendPanel.prototype.initLegendPosition = function () {\n var _this = this;\n var positions = ['top', 'right', 'bottom', 'left'];\n this.legendPositionSelect\n .setLabel(this.chartTranslationService.translate(\"position\"))\n .setLabelWidth(\"flex\")\n .setInputWidth(80)\n .addOptions(positions.map(function (position) { return ({\n value: position,\n text: _this.chartTranslationService.translate(position)\n }); }))\n .setValue(this.chartOptionsService.getChartOption(\"legend.position\"))\n .onValueChange(function (newValue) { return _this.chartOptionsService.setChartOption(\"legend.position\", newValue); });\n };\n LegendPanel.prototype.initLegendPadding = function () {\n var _this = this;\n var currentValue = this.chartOptionsService.getChartOption(\"legend.spacing\");\n this.legendPaddingSlider\n .setLabel(this.chartTranslationService.translate(\"spacing\"))\n .setMaxValue(getMaxValue(currentValue, 200))\n .setValue(\"\" + currentValue)\n .setTextFieldWidth(45)\n .onValueChange(function (newValue) { return _this.chartOptionsService.setChartOption(\"legend.spacing\", newValue); });\n };\n LegendPanel.prototype.initLegendItems = function () {\n var _this = this;\n var initSlider = function (expression, labelKey, input, defaultMaxValue) {\n var currentValue = _this.chartOptionsService.getChartOption(\"legend.\" + expression);\n input.setLabel(_this.chartTranslationService.translate(labelKey))\n .setMaxValue(getMaxValue(currentValue, defaultMaxValue))\n .setValue(\"\" + currentValue)\n .setTextFieldWidth(45)\n .onValueChange(function (newValue) {\n _this.chartOptionsService.setChartOption(\"legend.\" + expression, newValue);\n });\n };\n initSlider(\"item.marker.size\", \"markerSize\", this.markerSizeSlider, 40);\n initSlider(\"item.marker.strokeWidth\", \"markerStroke\", this.markerStrokeSlider, 10);\n initSlider(\"item.marker.padding\", \"itemSpacing\", this.markerPaddingSlider, 20);\n initSlider(\"item.paddingX\", \"layoutHorizontalSpacing\", this.itemPaddingXSlider, 50);\n initSlider(\"item.paddingY\", \"layoutVerticalSpacing\", this.itemPaddingYSlider, 50);\n };\n LegendPanel.prototype.initLabelPanel = function () {\n var _this = this;\n var chartProxy = this.chartOptionsService;\n var initialFont = {\n family: chartProxy.getChartOption(\"legend.item.label.fontFamily\"),\n style: chartProxy.getChartOption(\"legend.item.label.fontStyle\"),\n weight: chartProxy.getChartOption(\"legend.item.label.fontWeight\"),\n size: chartProxy.getChartOption(\"legend.item.label.fontSize\"),\n color: chartProxy.getChartOption(\"legend.item.label.color\")\n };\n var setFont = function (font) {\n var proxy = _this.chartOptionsService;\n if (font.family) {\n proxy.setChartOption(\"legend.item.label.fontFamily\", font.family);\n }\n if (font.weight) {\n proxy.setChartOption(\"legend.item.label.fontWeight\", font.weight);\n }\n if (font.style) {\n proxy.setChartOption(\"legend.item.label.fontStyle\", font.style);\n }\n if (font.size) {\n proxy.setChartOption(\"legend.item.label.fontSize\", font.size);\n }\n if (font.color) {\n proxy.setChartOption(\"legend.item.label.color\", font.color);\n }\n };\n var params = {\n enabled: true,\n suppressEnabledCheckbox: true,\n initialFont: initialFont,\n setFont: setFont\n };\n var fontPanelComp = this.createBean(new FontPanel(params));\n this.legendGroup.addItem(fontPanelComp);\n this.activePanels.push(fontPanelComp);\n };\n LegendPanel.prototype.destroyActivePanels = function () {\n var _this = this;\n this.activePanels.forEach(function (panel) {\n _.removeFromParent(panel.getGui());\n _this.destroyBean(panel);\n });\n };\n LegendPanel.prototype.destroy = function () {\n this.destroyActivePanels();\n _super.prototype.destroy.call(this);\n };\n LegendPanel.TEMPLATE = \"
\\n \\n \\n \\n \\n \\n \\n \\n \\n \\n
\";\n __decorate$18([\n RefSelector('legendGroup')\n ], LegendPanel.prototype, \"legendGroup\", void 0);\n __decorate$18([\n RefSelector('legendPositionSelect')\n ], LegendPanel.prototype, \"legendPositionSelect\", void 0);\n __decorate$18([\n RefSelector('legendPaddingSlider')\n ], LegendPanel.prototype, \"legendPaddingSlider\", void 0);\n __decorate$18([\n RefSelector('markerSizeSlider')\n ], LegendPanel.prototype, \"markerSizeSlider\", void 0);\n __decorate$18([\n RefSelector('markerStrokeSlider')\n ], LegendPanel.prototype, \"markerStrokeSlider\", void 0);\n __decorate$18([\n RefSelector('markerPaddingSlider')\n ], LegendPanel.prototype, \"markerPaddingSlider\", void 0);\n __decorate$18([\n RefSelector('itemPaddingXSlider')\n ], LegendPanel.prototype, \"itemPaddingXSlider\", void 0);\n __decorate$18([\n RefSelector('itemPaddingYSlider')\n ], LegendPanel.prototype, \"itemPaddingYSlider\", void 0);\n __decorate$18([\n Autowired('chartTranslationService')\n ], LegendPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$18([\n PostConstruct\n ], LegendPanel.prototype, \"init\", null);\n return LegendPanel;\n}(Component));\n\nvar __extends$1D = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$17 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AxisTicksPanel = /** @class */ (function (_super) {\n __extends$1D(AxisTicksPanel, _super);\n function AxisTicksPanel(chartOptionsService) {\n var _this = _super.call(this) || this;\n _this.chartOptionsService = chartOptionsService;\n return _this;\n }\n AxisTicksPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-sub-level',\n direction: 'vertical',\n suppressOpenCloseIcons: true\n };\n this.setTemplate(AxisTicksPanel.TEMPLATE, { axisTicksGroup: groupParams });\n this.initAxisTicks();\n };\n AxisTicksPanel.prototype.initAxisTicks = function () {\n var _this = this;\n this.axisTicksGroup\n .setTitle(this.chartTranslationService.translate(\"ticks\"))\n .hideOpenCloseIcons(true)\n .hideEnabledCheckbox(true);\n this.axisTicksColorPicker\n .setLabel(this.chartTranslationService.translate(\"color\"))\n .setLabelWidth(\"flex\")\n .setInputWidth(45)\n .setValue(this.chartOptionsService.getAxisProperty(\"tick.color\"))\n .onValueChange(function (newColor) { return _this.chartOptionsService.setAxisProperty(\"tick.color\", newColor); });\n var initInput = function (expression, input, label, defaultMaxValue) {\n var currentValue = _this.chartOptionsService.getAxisProperty(expression);\n input.setLabel(label)\n .setMaxValue(getMaxValue(currentValue, defaultMaxValue))\n .setValue(\"\" + currentValue)\n .setTextFieldWidth(45)\n .onValueChange(function (newValue) { return _this.chartOptionsService.setAxisProperty(expression, newValue); });\n };\n initInput(\"tick.width\", this.axisTicksWidthSlider, this.chartTranslationService.translate(\"width\"), 10);\n initInput(\"tick.size\", this.axisTicksSizeSlider, this.chartTranslationService.translate(\"length\"), 30);\n };\n AxisTicksPanel.TEMPLATE = \"
\\n \\n \\n \\n \\n \\n
\";\n __decorate$17([\n RefSelector('axisTicksGroup')\n ], AxisTicksPanel.prototype, \"axisTicksGroup\", void 0);\n __decorate$17([\n RefSelector('axisTicksColorPicker')\n ], AxisTicksPanel.prototype, \"axisTicksColorPicker\", void 0);\n __decorate$17([\n RefSelector('axisTicksWidthSlider')\n ], AxisTicksPanel.prototype, \"axisTicksWidthSlider\", void 0);\n __decorate$17([\n RefSelector('axisTicksSizeSlider')\n ], AxisTicksPanel.prototype, \"axisTicksSizeSlider\", void 0);\n __decorate$17([\n Autowired('chartTranslationService')\n ], AxisTicksPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$17([\n PostConstruct\n ], AxisTicksPanel.prototype, \"init\", null);\n return AxisTicksPanel;\n}(Component));\n\nvar __extends$1C = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$16 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AgAngleSelect = /** @class */ (function (_super) {\n __extends$1C(AgAngleSelect, _super);\n function AgAngleSelect(config) {\n var _this = _super.call(this, config, AgAngleSelect.TEMPLATE) || this;\n _this.radius = 0;\n _this.offsetX = 0;\n _this.offsetY = 0;\n return _this;\n }\n AgAngleSelect.prototype.postConstruct = function () {\n var _this = this;\n _super.prototype.postConstruct.call(this);\n this.dragListener = {\n eElement: this.eParentCircle,\n dragStartPixels: 0,\n onDragStart: function (e) {\n _this.parentCircleRect = _this.eParentCircle.getBoundingClientRect();\n },\n onDragging: function (e) { return _this.calculateAngleDrag(e); },\n onDragStop: function () { }\n };\n this.dragService.addDragSource(this.dragListener);\n this.eAngleValue\n .setLabel('')\n .setLabelWidth(5)\n .setInputWidth(45)\n .setMin(0)\n .setMax(360)\n .setValue(\"\" + this.degrees)\n .onValueChange(function (value) {\n if (value == null || value === '') {\n value = '0';\n }\n value = _this.eAngleValue.normalizeValue(value);\n var floatValue = parseFloat(value);\n if (floatValue > 180) {\n floatValue = floatValue - 360;\n }\n _this.setValue(floatValue);\n });\n this.updateNumberInput();\n if (_.exists(this.getValue())) {\n this.eAngleValue.setValue(this.normalizeNegativeValue(this.getValue()).toString());\n }\n this.addManagedListener(this, Events.EVENT_FIELD_VALUE_CHANGED, function () {\n var eDocument = _this.gridOptionsService.getDocument();\n if (_this.eAngleValue.getInputElement().contains(eDocument.activeElement)) {\n return;\n }\n _this.updateNumberInput();\n });\n };\n AgAngleSelect.prototype.updateNumberInput = function () {\n var normalizedValue = this.normalizeNegativeValue(this.getValue());\n this.eAngleValue.setValue(normalizedValue.toString());\n };\n AgAngleSelect.prototype.positionChildCircle = function (radians) {\n var rect = this.parentCircleRect || { width: 24, height: 24 };\n var eChildCircle = this.eChildCircle;\n var centerX = rect.width / 2;\n var centerY = rect.height / 2;\n eChildCircle.style.left = centerX + Math.cos(radians) * 8 + \"px\";\n eChildCircle.style.top = centerY + Math.sin(radians) * 8 + \"px\";\n };\n AgAngleSelect.prototype.calculatePolar = function () {\n var x = this.offsetX;\n var y = this.offsetY;\n var radians = Math.atan2(y, x);\n this.degrees = this.toDegrees(radians);\n this.radius = Math.sqrt((x * x) + (y * y));\n this.positionChildCircle(radians);\n };\n AgAngleSelect.prototype.calculateCartesian = function () {\n var radians = this.toRadians(this.getValue());\n var radius = this.getRadius();\n this\n .setOffsetX(Math.cos(radians) * radius)\n .setOffsetY(Math.sin(radians) * radius);\n };\n AgAngleSelect.prototype.setOffsetX = function (offset) {\n if (this.offsetX !== offset) {\n this.offsetX = offset;\n this.calculatePolar();\n }\n return this;\n };\n AgAngleSelect.prototype.setOffsetY = function (offset) {\n if (this.offsetY !== offset) {\n this.offsetY = offset;\n this.calculatePolar();\n }\n return this;\n };\n AgAngleSelect.prototype.calculateAngleDrag = function (e) {\n var rect = this.parentCircleRect;\n var centerX = rect.width / 2;\n var centerY = rect.height / 2;\n var x = e.clientX - rect.left;\n var y = e.clientY - rect.top;\n var dx = x - centerX;\n var dy = y - centerY;\n var radians = Math.atan2(dy, dx);\n this.setValue(radians, true);\n };\n AgAngleSelect.prototype.toDegrees = function (radians) {\n return radians / Math.PI * 180;\n };\n AgAngleSelect.prototype.toRadians = function (degrees) {\n return degrees / 180 * Math.PI;\n };\n AgAngleSelect.prototype.normalizeNegativeValue = function (degrees) {\n return degrees < 0 ? 360 + degrees : degrees;\n };\n AgAngleSelect.prototype.normalizeAngle180 = function (radians) {\n radians %= Math.PI * 2;\n if (radians < -Math.PI) {\n radians += Math.PI * 2;\n }\n else if (radians >= Math.PI) {\n radians -= Math.PI * 2;\n }\n return radians;\n };\n AgAngleSelect.prototype.getRadius = function () {\n return this.radius;\n };\n AgAngleSelect.prototype.setRadius = function (r) {\n if (this.radius === r) {\n return this;\n }\n this.radius = r;\n this.calculateCartesian();\n return this;\n };\n AgAngleSelect.prototype.onValueChange = function (callbackFn) {\n var _this = this;\n this.addManagedListener(this, Events.EVENT_FIELD_VALUE_CHANGED, function () {\n callbackFn(_this.degrees);\n });\n return this;\n };\n AgAngleSelect.prototype.getValue = function (radians) {\n return radians ? this.toRadians(this.degrees) : this.degrees;\n };\n AgAngleSelect.prototype.setValue = function (degrees, radians) {\n var radiansValue;\n if (!radians) {\n radiansValue = this.normalizeAngle180(this.toRadians(degrees));\n }\n else {\n radiansValue = degrees;\n }\n degrees = this.toDegrees(radiansValue);\n if (this.degrees !== degrees) {\n this.degrees = Math.floor(degrees);\n this.calculateCartesian();\n this.positionChildCircle(radiansValue);\n this.dispatchEvent({ type: Events.EVENT_FIELD_VALUE_CHANGED });\n }\n return this;\n };\n AgAngleSelect.prototype.setWidth = function (width) {\n _.setFixedWidth(this.getGui(), width);\n return this;\n };\n AgAngleSelect.prototype.setDisabled = function (disabled) {\n _super.prototype.setDisabled.call(this, disabled);\n this.eAngleValue.setDisabled(disabled);\n return this;\n };\n AgAngleSelect.prototype.destroy = function () {\n this.dragService.removeDragSource(this.dragListener);\n _super.prototype.destroy.call(this);\n };\n AgAngleSelect.TEMPLATE = \"
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n \\n
\\n
\";\n __decorate$16([\n RefSelector('eLabel')\n ], AgAngleSelect.prototype, \"eLabel\", void 0);\n __decorate$16([\n RefSelector('eParentCircle')\n ], AgAngleSelect.prototype, \"eParentCircle\", void 0);\n __decorate$16([\n RefSelector('eChildCircle')\n ], AgAngleSelect.prototype, \"eChildCircle\", void 0);\n __decorate$16([\n RefSelector('eAngleValue')\n ], AgAngleSelect.prototype, \"eAngleValue\", void 0);\n __decorate$16([\n Autowired('dragService')\n ], AgAngleSelect.prototype, \"dragService\", void 0);\n return AgAngleSelect;\n}(AgAbstractLabel));\n\nvar __extends$1B = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$15 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AxisPanel = /** @class */ (function (_super) {\n __extends$1B(AxisPanel, _super);\n function AxisPanel(_a) {\n var chartController = _a.chartController, chartOptionsService = _a.chartOptionsService, _b = _a.isExpandedOnInit, isExpandedOnInit = _b === void 0 ? false : _b;\n var _this = _super.call(this) || this;\n _this.activePanels = [];\n _this.axisLabelUpdateFuncs = [];\n _this.prevXRotation = 0;\n _this.prevYRotation = 0;\n _this.chartController = chartController;\n _this.chartOptionsService = chartOptionsService;\n _this.isExpandedOnInit = isExpandedOnInit;\n return _this;\n }\n AxisPanel.prototype.init = function () {\n var _this = this;\n var groupParams = {\n cssIdentifier: 'charts-format-top-level',\n direction: 'vertical'\n };\n this.setTemplate(AxisPanel.TEMPLATE, { axisGroup: groupParams });\n this.initAxis();\n this.initAxisTicks();\n this.initAxisLabels();\n var updateAxisLabelRotations = function () { return _this.axisLabelUpdateFuncs.forEach(function (func) { return func(); }); };\n this.addManagedListener(this.chartController, ChartController.EVENT_CHART_UPDATED, updateAxisLabelRotations);\n };\n AxisPanel.prototype.initAxis = function () {\n var _this = this;\n this.axisGroup\n .setTitle(this.translate(\"axis\"))\n .toggleGroupExpand(this.isExpandedOnInit)\n .hideEnabledCheckbox(true);\n this.axisColorInput\n .setLabel(this.translate(\"color\"))\n .setLabelWidth(\"flex\")\n .setInputWidth(45)\n .setValue(this.chartOptionsService.getAxisProperty(\"line.color\"))\n .onValueChange(function (newColor) { return _this.chartOptionsService.setAxisProperty(\"line.color\", newColor); });\n var currentValue = this.chartOptionsService.getAxisProperty(\"line.width\");\n this.axisLineWidthSlider\n .setMaxValue(getMaxValue(currentValue, 10))\n .setLabel(this.translate(\"thickness\"))\n .setTextFieldWidth(45)\n .setValue(\"\" + currentValue)\n .onValueChange(function (newValue) { return _this.chartOptionsService.setAxisProperty(\"line.width\", newValue); });\n };\n AxisPanel.prototype.initAxisTicks = function () {\n var axisTicksComp = this.createBean(new AxisTicksPanel(this.chartOptionsService));\n this.axisGroup.addItem(axisTicksComp);\n this.activePanels.push(axisTicksComp);\n };\n AxisPanel.prototype.initAxisLabels = function () {\n var _this = this;\n var initialFont = {\n family: this.chartOptionsService.getAxisProperty(\"label.fontFamily\"),\n style: this.chartOptionsService.getAxisProperty(\"label.fontStyle\"),\n weight: this.chartOptionsService.getAxisProperty(\"label.fontWeight\"),\n size: this.chartOptionsService.getAxisProperty(\"label.fontSize\"),\n color: this.chartOptionsService.getAxisProperty(\"label.color\")\n };\n var setFont = function (font) {\n if (font.family) {\n _this.chartOptionsService.setAxisProperty(\"label.fontFamily\", font.family);\n }\n if (font.weight) {\n _this.chartOptionsService.setAxisProperty(\"label.fontWeight\", font.weight);\n }\n if (font.style) {\n _this.chartOptionsService.setAxisProperty(\"label.fontStyle\", font.style);\n }\n if (font.size) {\n _this.chartOptionsService.setAxisProperty(\"label.fontSize\", font.size);\n }\n if (font.color) {\n _this.chartOptionsService.setAxisProperty(\"label.color\", font.color);\n }\n };\n var params = {\n name: this.translate(\"labels\"),\n enabled: true,\n suppressEnabledCheckbox: true,\n initialFont: initialFont,\n setFont: setFont\n };\n var labelPanelComp = this.createBean(new FontPanel(params));\n this.axisGroup.addItem(labelPanelComp);\n this.activePanels.push(labelPanelComp);\n this.addAdditionalLabelComps(labelPanelComp);\n };\n AxisPanel.prototype.addAdditionalLabelComps = function (labelPanelComp) {\n this.addLabelPadding(labelPanelComp);\n var _a = this.createRotationWidgets(), xRotationComp = _a.xRotationComp, yRotationComp = _a.yRotationComp;\n var autoRotateCb = this.initLabelRotations(xRotationComp, yRotationComp);\n labelPanelComp.addCompToPanel(autoRotateCb);\n labelPanelComp.addCompToPanel(xRotationComp);\n labelPanelComp.addCompToPanel(yRotationComp);\n };\n AxisPanel.prototype.initLabelRotations = function (xRotationComp, yRotationComp) {\n var _this = this;\n var getLabelRotation = function (axisType) {\n return _this.chartOptionsService.getLabelRotation(axisType);\n };\n var setLabelRotation = function (axisType, value) {\n _this.chartOptionsService.setLabelRotation(axisType, value);\n };\n var updateAutoRotate = function (autoRotate) {\n _this.chartOptionsService.setAxisProperty(\"label.autoRotate\", autoRotate);\n if (autoRotate) {\n // store prev rotations before we remove them from the options\n _this.prevXRotation = getLabelRotation(\"xAxis\");\n _this.prevYRotation = getLabelRotation(\"yAxis\");\n // `autoRotate` is only\n setLabelRotation(\"xAxis\", undefined);\n setLabelRotation(\"yAxis\", undefined);\n }\n else {\n // reinstate prev rotations\n setLabelRotation(\"xAxis\", _this.prevXRotation);\n setLabelRotation(\"yAxis\", _this.prevYRotation);\n }\n xRotationComp.setDisabled(autoRotate);\n yRotationComp.setDisabled(autoRotate);\n };\n var getAutoRotateValue = function () {\n var xRotation = getLabelRotation(\"xAxis\");\n var yRotation = getLabelRotation(\"yAxis\");\n if (xRotation == undefined && yRotation == undefined) {\n return _this.chartOptionsService.getAxisProperty(\"label.autoRotate\");\n }\n return false;\n };\n var autoRotate = getAutoRotateValue();\n var autoRotateCheckbox = this.createBean(new AgCheckbox())\n .setLabel(this.translate('autoRotate'))\n .setValue(autoRotate)\n .onValueChange(updateAutoRotate);\n // init rotation comp state\n xRotationComp.setDisabled(autoRotate);\n yRotationComp.setDisabled(autoRotate);\n return autoRotateCheckbox;\n };\n AxisPanel.prototype.createRotationWidgets = function () {\n var _this = this;\n var degreesSymbol = String.fromCharCode(176);\n var createRotationComp = function (labelKey, axisType) {\n var label = _this.chartTranslationService.translate(labelKey) + \" \" + degreesSymbol;\n var value = _this.chartOptionsService.getLabelRotation(axisType);\n var angleSelect = new AgAngleSelect()\n .setLabel(label)\n .setLabelWidth(\"flex\")\n .setValue(value || 0)\n .onValueChange(function (newValue) { return _this.chartOptionsService.setLabelRotation(axisType, newValue); });\n // the axis label rotation needs to be updated when the default category changes in the data panel\n _this.axisLabelUpdateFuncs.push(function () {\n var value = _this.chartOptionsService.getLabelRotation(axisType);\n angleSelect.setValue(value || 0);\n });\n return _this.createBean(angleSelect);\n };\n return {\n xRotationComp: createRotationComp(\"xRotation\", \"xAxis\"),\n yRotationComp: createRotationComp(\"yRotation\", \"yAxis\")\n };\n };\n AxisPanel.prototype.addLabelPadding = function (labelPanelComp) {\n var _this = this;\n var labelPaddingSlider = this.createBean(new AgSlider());\n var currentValue = this.chartOptionsService.getAxisProperty(\"label.padding\");\n labelPaddingSlider.setLabel(this.chartTranslationService.translate(\"padding\"))\n .setMaxValue(getMaxValue(currentValue, 30))\n .setValue(\"\" + currentValue)\n .setTextFieldWidth(45)\n .onValueChange(function (newValue) { return _this.chartOptionsService.setAxisProperty(\"label.padding\", newValue); });\n labelPanelComp.addCompToPanel(labelPaddingSlider);\n };\n AxisPanel.prototype.translate = function (key, defaultText) {\n return this.chartTranslationService.translate(key, defaultText);\n };\n AxisPanel.prototype.destroyActivePanels = function () {\n var _this = this;\n this.activePanels.forEach(function (panel) {\n _.removeFromParent(panel.getGui());\n _this.destroyBean(panel);\n });\n };\n AxisPanel.prototype.destroy = function () {\n this.destroyActivePanels();\n _super.prototype.destroy.call(this);\n };\n AxisPanel.TEMPLATE = \"
\\n \\n \\n \\n \\n
\";\n __decorate$15([\n RefSelector('axisGroup')\n ], AxisPanel.prototype, \"axisGroup\", void 0);\n __decorate$15([\n RefSelector('axisColorInput')\n ], AxisPanel.prototype, \"axisColorInput\", void 0);\n __decorate$15([\n RefSelector('axisLineWidthSlider')\n ], AxisPanel.prototype, \"axisLineWidthSlider\", void 0);\n __decorate$15([\n Autowired('chartTranslationService')\n ], AxisPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$15([\n PostConstruct\n ], AxisPanel.prototype, \"init\", null);\n return AxisPanel;\n}(Component));\n\nvar __extends$1A = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$14 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar NavigatorPanel = /** @class */ (function (_super) {\n __extends$1A(NavigatorPanel, _super);\n function NavigatorPanel(_a) {\n var chartOptionsService = _a.chartOptionsService, _b = _a.isExpandedOnInit, isExpandedOnInit = _b === void 0 ? false : _b;\n var _this = _super.call(this) || this;\n _this.chartOptionsService = chartOptionsService;\n _this.isExpandedOnInit = isExpandedOnInit;\n return _this;\n }\n NavigatorPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-top-level',\n direction: 'vertical'\n };\n this.setTemplate(NavigatorPanel.TEMPLATE, { navigatorGroup: groupParams });\n this.initNavigator();\n };\n NavigatorPanel.prototype.initNavigator = function () {\n var _this = this;\n var chartTranslationService = this.chartTranslationService;\n this.navigatorGroup\n .setTitle(chartTranslationService.translate(\"navigator\"))\n .hideEnabledCheckbox(false)\n .setEnabled(this.chartOptionsService.getChartOption(\"navigator.enabled\") || false)\n .onEnableChange(function (enabled) {\n _this.chartOptionsService.setChartOption(\"navigator.enabled\", enabled);\n _this.navigatorGroup.toggleGroupExpand(true);\n })\n .toggleGroupExpand(this.isExpandedOnInit);\n var currentValue = this.chartOptionsService.getChartOption(\"navigator.height\");\n this.navigatorHeightSlider\n .setLabel(chartTranslationService.translate(\"height\"))\n .setMinValue(10)\n .setMaxValue(getMaxValue(currentValue, 60))\n .setTextFieldWidth(45)\n .setValue(\"\" + (currentValue || 30))\n .onValueChange(function (height) { return _this.chartOptionsService.setChartOption(\"navigator.height\", height); });\n };\n NavigatorPanel.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n NavigatorPanel.TEMPLATE = \"
\\n \\n \\n \\n
\";\n __decorate$14([\n RefSelector('navigatorGroup')\n ], NavigatorPanel.prototype, \"navigatorGroup\", void 0);\n __decorate$14([\n RefSelector('navigatorHeightSlider')\n ], NavigatorPanel.prototype, \"navigatorHeightSlider\", void 0);\n __decorate$14([\n Autowired('chartTranslationService')\n ], NavigatorPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$14([\n PostConstruct\n ], NavigatorPanel.prototype, \"init\", null);\n return NavigatorPanel;\n}(Component));\n\nvar __extends$1z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$13 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar PaddingPanel = /** @class */ (function (_super) {\n __extends$1z(PaddingPanel, _super);\n function PaddingPanel(chartOptionsService, chartController) {\n var _this = _super.call(this) || this;\n _this.chartOptionsService = chartOptionsService;\n _this.chartController = chartController;\n return _this;\n }\n PaddingPanel.prototype.init = function () {\n var _this = this;\n var groupParams = {\n cssIdentifier: 'charts-format-sub-level',\n direction: 'vertical',\n suppressOpenCloseIcons: true\n };\n this.setTemplate(PaddingPanel.TEMPLATE, { chartPaddingGroup: groupParams });\n this.addManagedListener(this.eventService, Events.EVENT_CHART_OPTIONS_CHANGED, function (e) {\n _this.updateTopPadding(e.chartOptions);\n });\n this.initGroup();\n this.initChartPaddingItems();\n };\n PaddingPanel.prototype.initGroup = function () {\n this.chartPaddingGroup\n .setTitle(this.chartTranslationService.translate(\"padding\"))\n .hideOpenCloseIcons(true)\n .hideEnabledCheckbox(true);\n };\n PaddingPanel.prototype.initChartPaddingItems = function () {\n var _this = this;\n var initInput = function (property, input) {\n var currentValue = _this.chartOptionsService.getChartOption('padding.' + property);\n input.setLabel(_this.chartTranslationService.translate(property))\n .setMaxValue(getMaxValue(currentValue, 200))\n .setValue(\"\" + currentValue)\n .setTextFieldWidth(45)\n .onValueChange(function (newValue) { return _this.chartOptionsService.setChartOption('padding.' + property, newValue); });\n };\n initInput('top', this.paddingTopSlider);\n initInput('right', this.paddingRightSlider);\n initInput('bottom', this.paddingBottomSlider);\n initInput('left', this.paddingLeftSlider);\n };\n PaddingPanel.prototype.updateTopPadding = function (chartOptions) {\n var _a, _b;\n // keep 'top' padding in sync with chart as toggling chart title on / off change the 'top' padding\n var seriesType = this.chartController.getChartSeriesTypes()[0];\n var topPadding = (_b = (_a = chartOptions[seriesType]) === null || _a === void 0 ? void 0 : _a.padding) === null || _b === void 0 ? void 0 : _b.top;\n if (topPadding != null) {\n this.paddingTopSlider.setValue(topPadding);\n }\n };\n PaddingPanel.TEMPLATE = \"
\\n \\n \\n \\n \\n \\n \\n
\";\n __decorate$13([\n RefSelector('chartPaddingGroup')\n ], PaddingPanel.prototype, \"chartPaddingGroup\", void 0);\n __decorate$13([\n RefSelector('paddingTopSlider')\n ], PaddingPanel.prototype, \"paddingTopSlider\", void 0);\n __decorate$13([\n RefSelector('paddingRightSlider')\n ], PaddingPanel.prototype, \"paddingRightSlider\", void 0);\n __decorate$13([\n RefSelector('paddingBottomSlider')\n ], PaddingPanel.prototype, \"paddingBottomSlider\", void 0);\n __decorate$13([\n RefSelector('paddingLeftSlider')\n ], PaddingPanel.prototype, \"paddingLeftSlider\", void 0);\n __decorate$13([\n Autowired('chartTranslationService')\n ], PaddingPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$13([\n PostConstruct\n ], PaddingPanel.prototype, \"init\", null);\n return PaddingPanel;\n}(Component));\n\nvar __extends$1y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$12 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar BackgroundPanel = /** @class */ (function (_super) {\n __extends$1y(BackgroundPanel, _super);\n function BackgroundPanel(chartOptionsService) {\n var _this = _super.call(this) || this;\n _this.chartOptionsService = chartOptionsService;\n return _this;\n }\n BackgroundPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-sub-level',\n direction: 'vertical',\n suppressOpenCloseIcons: true\n };\n this.setTemplate(BackgroundPanel.TEMPLATE, { chartBackgroundGroup: groupParams });\n this.initGroup();\n this.initColorPicker();\n };\n BackgroundPanel.prototype.initGroup = function () {\n var _this = this;\n this.group\n .setTitle(this.chartTranslationService.translate('background'))\n .setEnabled(this.chartOptionsService.getChartOption('background.visible'))\n .hideOpenCloseIcons(true)\n .hideEnabledCheckbox(false)\n .onEnableChange(function (enabled) { return _this.chartOptionsService.setChartOption('background.visible', enabled); });\n };\n BackgroundPanel.prototype.initColorPicker = function () {\n var _this = this;\n this.colorPicker\n .setLabel(this.chartTranslationService.translate('color'))\n .setLabelWidth('flex')\n .setInputWidth(45)\n .setValue(this.chartOptionsService.getChartOption('background.fill'))\n .onValueChange(function (newColor) { return _this.chartOptionsService.setChartOption('background.fill', newColor); });\n };\n BackgroundPanel.TEMPLATE = \"
\\n \\n \\n \\n
\";\n __decorate$12([\n RefSelector('chartBackgroundGroup')\n ], BackgroundPanel.prototype, \"group\", void 0);\n __decorate$12([\n RefSelector('colorPicker')\n ], BackgroundPanel.prototype, \"colorPicker\", void 0);\n __decorate$12([\n Autowired('chartTranslationService')\n ], BackgroundPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$12([\n PostConstruct\n ], BackgroundPanel.prototype, \"init\", null);\n return BackgroundPanel;\n}(Component));\n\nvar __extends$1x = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$11 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TitlePanel = /** @class */ (function (_super) {\n __extends$1x(TitlePanel, _super);\n function TitlePanel(chartOptionsService) {\n var _this = _super.call(this, TitlePanel.TEMPLATE) || this;\n _this.chartOptionsService = chartOptionsService;\n _this.activePanels = [];\n return _this;\n }\n TitlePanel.prototype.init = function () {\n this.initFontPanel();\n this.titlePlaceholder = this.chartTranslationService.translate('titlePlaceholder');\n };\n TitlePanel.prototype.hasTitle = function () {\n var title = this.getOption('title');\n return title && title.enabled && title.text && title.text.length > 0;\n };\n TitlePanel.prototype.initFontPanel = function () {\n var _this = this;\n var hasTitle = this.hasTitle();\n var setFont = function (font, isSilent) {\n if (font.family) {\n _this.setOption('title.fontFamily', font.family, isSilent);\n }\n if (font.weight) {\n _this.setOption('title.fontWeight', font.weight, isSilent);\n }\n if (font.style) {\n _this.setOption('title.fontStyle', font.style, isSilent);\n }\n if (font.size) {\n _this.setOption('title.fontSize', font.size, isSilent);\n }\n if (font.color) {\n _this.setOption('title.color', font.color, isSilent);\n }\n };\n var initialFont = {\n family: this.getOption('title.fontFamily'),\n style: this.getOption('title.fontStyle'),\n weight: this.getOption('title.fontWeight'),\n size: this.getOption('title.fontSize'),\n color: this.getOption('title.color')\n };\n if (!hasTitle) {\n setFont(initialFont, true);\n }\n var fontPanelParams = {\n name: this.chartTranslationService.translate('title'),\n enabled: hasTitle,\n suppressEnabledCheckbox: false,\n initialFont: initialFont,\n setFont: setFont,\n setEnabled: function (enabled) {\n if (_this.toolbarExists()) {\n // extra padding is only included when the toolbar is present\n var topPadding = _this.getOption('padding.top');\n _this.setOption('padding.top', enabled ? topPadding - 20 : topPadding + 20);\n }\n _this.setOption('title.enabled', enabled);\n var currentTitleText = _this.getOption('title.text');\n var replaceableTitleText = currentTitleText === 'Title' || (currentTitleText === null || currentTitleText === void 0 ? void 0 : currentTitleText.trim().length) === 0;\n if (enabled && replaceableTitleText) {\n _this.setOption('title.text', _this.titlePlaceholder);\n }\n }\n };\n var fontPanelComp = this.createBean(new FontPanel(fontPanelParams));\n // add the title spacing slider to font panel\n fontPanelComp.addItemToPanel(this.createSpacingSlicer());\n this.getGui().appendChild(fontPanelComp.getGui());\n this.activePanels.push(fontPanelComp);\n // edits to the title can disable it, so keep the checkbox in sync:\n this.addManagedListener(this.eventService, 'chartTitleEdit', function () {\n fontPanelComp.setEnabled(_this.hasTitle());\n });\n };\n TitlePanel.prototype.createSpacingSlicer = function () {\n var _this = this;\n var spacingSlider = this.createBean(new AgSlider());\n var currentValue = this.chartOptionsService.getChartOption('title.spacing');\n spacingSlider.setLabel(this.chartTranslationService.translate('spacing'))\n .setMaxValue(Math.max(currentValue, 100))\n .setValue(\"\" + currentValue)\n .setTextFieldWidth(45)\n .onValueChange(function (newValue) { return _this.chartOptionsService.setChartOption('title.spacing', newValue); });\n return spacingSlider;\n };\n TitlePanel.prototype.toolbarExists = function () {\n var toolbarItemsFunc = this.gridOptionsService.getCallback('getChartToolbarItems');\n if (!toolbarItemsFunc) {\n return true;\n }\n var params = {\n defaultItems: ['chartUnlink', 'chartDownload']\n };\n var topItems = ['chartLink', 'chartUnlink', 'chartDownload'];\n return topItems.some(function (v) { var _a; return (_a = (toolbarItemsFunc && toolbarItemsFunc(params))) === null || _a === void 0 ? void 0 : _a.includes(v); });\n };\n TitlePanel.prototype.getOption = function (expression) {\n return this.chartOptionsService.getChartOption(expression);\n };\n TitlePanel.prototype.setOption = function (property, value, isSilent) {\n this.chartOptionsService.setChartOption(property, value, isSilent);\n };\n TitlePanel.prototype.destroyActivePanels = function () {\n var _this = this;\n this.activePanels.forEach(function (panel) {\n _.removeFromParent(panel.getGui());\n _this.destroyBean(panel);\n });\n };\n TitlePanel.prototype.destroy = function () {\n this.destroyActivePanels();\n _super.prototype.destroy.call(this);\n };\n TitlePanel.TEMPLATE = \"
\";\n __decorate$11([\n Autowired('chartTranslationService')\n ], TitlePanel.prototype, \"chartTranslationService\", void 0);\n __decorate$11([\n PostConstruct\n ], TitlePanel.prototype, \"init\", null);\n return TitlePanel;\n}(Component));\n\nvar __extends$1w = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$10 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ChartPanel = /** @class */ (function (_super) {\n __extends$1w(ChartPanel, _super);\n function ChartPanel(_a) {\n var chartController = _a.chartController, chartOptionsService = _a.chartOptionsService, _b = _a.isExpandedOnInit, isExpandedOnInit = _b === void 0 ? false : _b;\n var _this = _super.call(this) || this;\n _this.activePanels = [];\n _this.chartController = chartController;\n _this.chartOptionsService = chartOptionsService;\n _this.isExpandedOnInit = isExpandedOnInit;\n return _this;\n }\n ChartPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-top-level',\n direction: 'vertical'\n };\n this.setTemplate(ChartPanel.TEMPLATE, { chartGroup: groupParams });\n this.initGroup();\n this.initTitles();\n this.initPaddingPanel();\n this.initBackgroundPanel();\n };\n ChartPanel.prototype.initGroup = function () {\n this.chartGroup\n .setTitle(this.chartTranslationService.translate('chart'))\n .toggleGroupExpand(this.isExpandedOnInit)\n .hideEnabledCheckbox(true);\n };\n ChartPanel.prototype.initTitles = function () {\n var titlePanelComp = this.createBean(new TitlePanel(this.chartOptionsService));\n this.chartGroup.addItem(titlePanelComp);\n this.activePanels.push(titlePanelComp);\n };\n ChartPanel.prototype.initPaddingPanel = function () {\n var paddingPanelComp = this.createBean(new PaddingPanel(this.chartOptionsService, this.chartController));\n this.chartGroup.addItem(paddingPanelComp);\n this.activePanels.push(paddingPanelComp);\n };\n ChartPanel.prototype.initBackgroundPanel = function () {\n var backgroundPanelComp = this.createBean(new BackgroundPanel(this.chartOptionsService));\n this.chartGroup.addItem(backgroundPanelComp);\n this.activePanels.push(backgroundPanelComp);\n };\n ChartPanel.prototype.destroyActivePanels = function () {\n var _this = this;\n this.activePanels.forEach(function (panel) {\n _.removeFromParent(panel.getGui());\n _this.destroyBean(panel);\n });\n };\n ChartPanel.prototype.destroy = function () {\n this.destroyActivePanels();\n _super.prototype.destroy.call(this);\n };\n ChartPanel.TEMPLATE = \"
\\n \\n
\";\n __decorate$10([\n RefSelector('chartGroup')\n ], ChartPanel.prototype, \"chartGroup\", void 0);\n __decorate$10([\n Autowired('chartTranslationService')\n ], ChartPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$10([\n PostConstruct\n ], ChartPanel.prototype, \"init\", null);\n return ChartPanel;\n}(Component));\n\nvar __extends$1v = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$$ = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ShadowPanel = /** @class */ (function (_super) {\n __extends$1v(ShadowPanel, _super);\n function ShadowPanel(chartOptionsService, getSelectedSeries) {\n var _this = _super.call(this) || this;\n _this.chartOptionsService = chartOptionsService;\n _this.getSelectedSeries = getSelectedSeries;\n return _this;\n }\n ShadowPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-sub-level',\n direction: 'vertical',\n suppressOpenCloseIcons: true\n };\n this.setTemplate(ShadowPanel.TEMPLATE, { shadowGroup: groupParams });\n this.shadowBlurSlider.setTextFieldWidth(45);\n this.shadowXOffsetSlider.setTextFieldWidth(45);\n this.shadowYOffsetSlider.setTextFieldWidth(45);\n this.initSeriesShadow();\n };\n ShadowPanel.prototype.initSeriesShadow = function () {\n var _this = this;\n this.shadowGroup\n .setTitle(this.chartTranslationService.translate(\"shadow\"))\n .setEnabled(this.chartOptionsService.getSeriesOption(\"shadow.enabled\", this.getSelectedSeries()))\n .hideOpenCloseIcons(true)\n .hideEnabledCheckbox(false)\n .onEnableChange(function (newValue) { return _this.chartOptionsService.setSeriesOption(\"shadow.enabled\", newValue, _this.getSelectedSeries()); });\n this.shadowColorPicker\n .setLabel(this.chartTranslationService.translate(\"color\"))\n .setLabelWidth(\"flex\")\n .setInputWidth(45)\n .setValue(this.chartOptionsService.getSeriesOption(\"shadow.color\", this.getSelectedSeries()))\n .onValueChange(function (newValue) { return _this.chartOptionsService.setSeriesOption(\"shadow.color\", newValue, _this.getSelectedSeries()); });\n var initInput = function (input, property, minValue, defaultMaxValue) {\n var currentValue = _this.chartOptionsService.getSeriesOption(\"shadow.\" + property, _this.getSelectedSeries());\n input.setLabel(_this.chartTranslationService.translate(property))\n .setMinValue(minValue)\n .setMaxValue(getMaxValue(currentValue, defaultMaxValue))\n .setValue(\"\" + currentValue)\n .onValueChange(function (newValue) { return _this.chartOptionsService.setSeriesOption(\"shadow.\" + property, newValue, _this.getSelectedSeries()); });\n };\n initInput(this.shadowBlurSlider, \"blur\", 0, 20);\n initInput(this.shadowXOffsetSlider, \"xOffset\", -10, 10);\n initInput(this.shadowYOffsetSlider, \"yOffset\", -10, 10);\n };\n ShadowPanel.TEMPLATE = \"
\\n \\n \\n \\n \\n \\n \\n
\";\n __decorate$$([\n RefSelector('shadowGroup')\n ], ShadowPanel.prototype, \"shadowGroup\", void 0);\n __decorate$$([\n RefSelector('shadowColorPicker')\n ], ShadowPanel.prototype, \"shadowColorPicker\", void 0);\n __decorate$$([\n RefSelector('shadowBlurSlider')\n ], ShadowPanel.prototype, \"shadowBlurSlider\", void 0);\n __decorate$$([\n RefSelector('shadowXOffsetSlider')\n ], ShadowPanel.prototype, \"shadowXOffsetSlider\", void 0);\n __decorate$$([\n RefSelector('shadowYOffsetSlider')\n ], ShadowPanel.prototype, \"shadowYOffsetSlider\", void 0);\n __decorate$$([\n Autowired('chartTranslationService')\n ], ShadowPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$$([\n PostConstruct\n ], ShadowPanel.prototype, \"init\", null);\n return ShadowPanel;\n}(Component));\n\nfunction initFontPanelParams(_a) {\n var labelName = _a.labelName, chartOptionsService = _a.chartOptionsService, getSelectedSeries = _a.getSelectedSeries, seriesOptionLabelProperty = _a.seriesOptionLabelProperty;\n var getFontOptionExpression = function (fontOption) {\n return seriesOptionLabelProperty + \".\" + fontOption;\n };\n var getFontOption = function (fontOption) {\n var expression = getFontOptionExpression(fontOption);\n return chartOptionsService.getSeriesOption(expression, getSelectedSeries());\n };\n var setFontOption = function (fontOption, value) {\n var expression = getFontOptionExpression(fontOption);\n chartOptionsService.setSeriesOption(expression, value, getSelectedSeries());\n };\n var initialFont = {\n family: getFontOption('fontFamily'),\n style: getFontOption('fontStyle'),\n weight: getFontOption('fontWeight'),\n size: getFontOption('fontSize'),\n color: getFontOption('color'),\n };\n var setFont = function (font) {\n if (font.family) {\n setFontOption('fontFamily', font.family);\n }\n if (font.weight) {\n setFontOption('fontWeight', font.weight);\n }\n if (font.style) {\n setFontOption('fontStyle', font.style);\n }\n if (font.size) {\n setFontOption('fontSize', font.size);\n }\n if (font.color) {\n setFontOption('color', font.color);\n }\n };\n var params = {\n name: labelName,\n enabled: getFontOption('enabled') || false,\n setEnabled: function (enabled) { return setFontOption('enabled', enabled); },\n suppressEnabledCheckbox: false,\n initialFont: initialFont,\n setFont: setFont\n };\n return params;\n}\n\nvar __extends$1u = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$_ = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MarkersPanel = /** @class */ (function (_super) {\n __extends$1u(MarkersPanel, _super);\n function MarkersPanel(chartOptionsService, getSelectedSeries) {\n var _this = _super.call(this) || this;\n _this.chartOptionsService = chartOptionsService;\n _this.getSelectedSeries = getSelectedSeries;\n return _this;\n }\n MarkersPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-sub-level',\n direction: 'vertical'\n };\n this.setTemplate(MarkersPanel.TEMPLATE, { seriesMarkersGroup: groupParams });\n this.initMarkers();\n };\n MarkersPanel.prototype.initMarkers = function () {\n var _this = this;\n var seriesMarkerShapeOptions = [\n {\n value: 'square',\n text: 'Square'\n },\n {\n value: 'circle',\n text: 'Circle'\n },\n {\n value: 'cross',\n text: 'Cross'\n },\n {\n value: 'diamond',\n text: 'Diamond'\n },\n {\n value: 'plus',\n text: 'Plus'\n },\n {\n value: 'triangle',\n text: 'Triangle'\n },\n {\n value: 'heart',\n text: 'Heart'\n }\n ];\n this.seriesMarkerShapeSelect\n .addOptions(seriesMarkerShapeOptions)\n .setLabel(this.chartTranslationService.translate('shape'))\n .setValue(this.getSeriesOption(\"marker.shape\"))\n .onValueChange(function (value) { return _this.setSeriesOption(\"marker.shape\", value); });\n // scatter charts should always show markers\n var chartType = this.chartOptionsService.getChartType();\n var shouldHideEnabledCheckbox = _.includes(['scatter', 'bubble'], chartType);\n this.seriesMarkersGroup\n .setTitle(this.chartTranslationService.translate(\"markers\"))\n .hideEnabledCheckbox(shouldHideEnabledCheckbox)\n .setEnabled(this.getSeriesOption(\"marker.enabled\") || false)\n .hideOpenCloseIcons(true)\n .onEnableChange(function (newValue) { return _this.setSeriesOption(\"marker.enabled\", newValue); });\n var initInput = function (expression, input, labelKey, defaultMaxValue) {\n var currentValue = _this.getSeriesOption(expression);\n input.setLabel(_this.chartTranslationService.translate(labelKey))\n .setMaxValue(getMaxValue(currentValue, defaultMaxValue))\n .setValue(\"\" + currentValue)\n .setTextFieldWidth(45)\n .onValueChange(function (newValue) { return _this.setSeriesOption(expression, newValue); });\n };\n if (chartType === 'bubble') {\n initInput(\"marker.maxSize\", this.seriesMarkerMinSizeSlider, \"maxSize\", 60);\n initInput(\"marker.size\", this.seriesMarkerSizeSlider, \"minSize\", 60);\n }\n else {\n this.seriesMarkerMinSizeSlider.setDisplayed(false);\n initInput(\"marker.size\", this.seriesMarkerSizeSlider, \"size\", 60);\n }\n initInput(\"marker.strokeWidth\", this.seriesMarkerStrokeWidthSlider, \"strokeWidth\", 10);\n };\n MarkersPanel.prototype.getSeriesOption = function (expression) {\n return this.chartOptionsService.getSeriesOption(expression, this.getSelectedSeries());\n };\n MarkersPanel.prototype.setSeriesOption = function (expression, newValue) {\n this.chartOptionsService.setSeriesOption(expression, newValue, this.getSelectedSeries());\n };\n MarkersPanel.TEMPLATE = \"
\\n \\n \\n \\n \\n \\n \\n
\";\n __decorate$_([\n RefSelector('seriesMarkersGroup')\n ], MarkersPanel.prototype, \"seriesMarkersGroup\", void 0);\n __decorate$_([\n RefSelector('seriesMarkerShapeSelect')\n ], MarkersPanel.prototype, \"seriesMarkerShapeSelect\", void 0);\n __decorate$_([\n RefSelector('seriesMarkerSizeSlider')\n ], MarkersPanel.prototype, \"seriesMarkerSizeSlider\", void 0);\n __decorate$_([\n RefSelector('seriesMarkerMinSizeSlider')\n ], MarkersPanel.prototype, \"seriesMarkerMinSizeSlider\", void 0);\n __decorate$_([\n RefSelector('seriesMarkerStrokeWidthSlider')\n ], MarkersPanel.prototype, \"seriesMarkerStrokeWidthSlider\", void 0);\n __decorate$_([\n Autowired('chartTranslationService')\n ], MarkersPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$_([\n PostConstruct\n ], MarkersPanel.prototype, \"init\", null);\n return MarkersPanel;\n}(Component));\n\nvar __extends$1t = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$Z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CalloutPanel = /** @class */ (function (_super) {\n __extends$1t(CalloutPanel, _super);\n function CalloutPanel(chartOptionsService, getSelectedSeries) {\n var _this = _super.call(this) || this;\n _this.chartOptionsService = chartOptionsService;\n _this.getSelectedSeries = getSelectedSeries;\n return _this;\n }\n CalloutPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-sub-level',\n direction: 'vertical'\n };\n this.setTemplate(CalloutPanel.TEMPLATE, { calloutGroup: groupParams });\n this.initCalloutOptions();\n };\n CalloutPanel.prototype.initCalloutOptions = function () {\n var _this = this;\n this.calloutGroup\n .setTitle(this.chartTranslationService.translate(\"callout\"))\n .setEnabled(true)\n .hideOpenCloseIcons(true)\n .hideEnabledCheckbox(true);\n var initInput = function (expression, input, labelKey, defaultMaxValue) {\n var currentValue = _this.chartOptionsService.getSeriesOption(expression, _this.getSelectedSeries());\n input.setLabel(_this.chartTranslationService.translate(labelKey))\n .setMaxValue(getMaxValue(currentValue, defaultMaxValue))\n .setValue(\"\" + currentValue)\n .setTextFieldWidth(45)\n .onValueChange(function (newValue) { return _this.chartOptionsService.setSeriesOption(expression, newValue, _this.getSelectedSeries()); });\n };\n initInput('calloutLine.length', this.calloutLengthSlider, 'length', 40);\n initInput('calloutLine.strokeWidth', this.calloutStrokeWidthSlider, 'strokeWidth', 10);\n initInput('calloutLabel.offset', this.labelOffsetSlider, 'offset', 30);\n };\n CalloutPanel.TEMPLATE = \"
\\n \\n \\n \\n \\n \\n
\";\n __decorate$Z([\n RefSelector('calloutGroup')\n ], CalloutPanel.prototype, \"calloutGroup\", void 0);\n __decorate$Z([\n RefSelector('calloutLengthSlider')\n ], CalloutPanel.prototype, \"calloutLengthSlider\", void 0);\n __decorate$Z([\n RefSelector('calloutStrokeWidthSlider')\n ], CalloutPanel.prototype, \"calloutStrokeWidthSlider\", void 0);\n __decorate$Z([\n RefSelector('labelOffsetSlider')\n ], CalloutPanel.prototype, \"labelOffsetSlider\", void 0);\n __decorate$Z([\n Autowired('chartTranslationService')\n ], CalloutPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$Z([\n PostConstruct\n ], CalloutPanel.prototype, \"init\", null);\n return CalloutPanel;\n}(Component));\n\nvar __extends$1s = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$Y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SeriesPanel = /** @class */ (function (_super) {\n __extends$1s(SeriesPanel, _super);\n function SeriesPanel(_a) {\n var chartController = _a.chartController, chartOptionsService = _a.chartOptionsService, seriesType = _a.seriesType, _b = _a.isExpandedOnInit, isExpandedOnInit = _b === void 0 ? false : _b;\n var _this = _super.call(this) || this;\n _this.activePanels = [];\n _this.widgetFuncs = {\n 'lineWidth': function () { return _this.initLineWidth(); },\n 'strokeWidth': function () { return _this.initStrokeWidth(); },\n 'lineDash': function () { return _this.initLineDash(); },\n 'lineOpacity': function () { return _this.initLineOpacity(); },\n 'fillOpacity': function () { return _this.initFillOpacity(); },\n 'markers': function () { return _this.initMarkers(); },\n 'labels': function () { return _this.initLabels(); },\n 'shadow': function () { return _this.initShadow(); },\n 'tooltips': function () { return _this.initTooltips(); },\n 'bins': function () { return _this.initBins(); },\n };\n _this.seriesWidgetMappings = {\n 'area': ['tooltips', 'lineWidth', 'lineDash', 'lineOpacity', 'fillOpacity', 'markers', 'labels', 'shadow'],\n 'bar': ['tooltips', 'strokeWidth', 'lineDash', 'lineOpacity', 'fillOpacity', 'labels', 'shadow'],\n 'column': ['tooltips', 'strokeWidth', 'lineDash', 'lineOpacity', 'fillOpacity', 'labels', 'shadow'],\n 'line': ['tooltips', 'lineWidth', 'lineDash', 'lineOpacity', 'markers', 'labels'],\n 'histogram': ['tooltips', 'bins', 'strokeWidth', 'lineDash', 'lineOpacity', 'fillOpacity', 'labels', 'shadow'],\n 'scatter': ['tooltips', 'markers', 'labels'],\n 'pie': ['tooltips', 'strokeWidth', 'lineOpacity', 'fillOpacity', 'labels', 'shadow'],\n };\n _this.chartController = chartController;\n _this.chartOptionsService = chartOptionsService;\n _this.seriesType = seriesType || _this.getChartSeriesType();\n _this.isExpandedOnInit = isExpandedOnInit;\n return _this;\n }\n SeriesPanel.prototype.init = function () {\n var groupParams = {\n cssIdentifier: 'charts-format-top-level',\n direction: 'vertical'\n };\n this.setTemplate(SeriesPanel.TEMPLATE, { seriesGroup: groupParams });\n this.seriesGroup\n .setTitle(this.translate(\"series\"))\n .toggleGroupExpand(this.isExpandedOnInit)\n .hideEnabledCheckbox(true);\n this.addManagedListener(this.chartController, ChartController.EVENT_CHART_SERIES_CHART_TYPE_CHANGED, this.refreshWidgets.bind(this));\n this.refreshWidgets();\n };\n SeriesPanel.prototype.refreshWidgets = function () {\n var _this = this;\n this.destroyActivePanels();\n var chart = this.chartController.getChartProxy().getChart();\n chart.waitForUpdate().then(function () {\n if (_this.chartController.isComboChart()) {\n _this.updateSeriesType();\n _this.initSeriesSelect();\n }\n _this.seriesWidgetMappings[_this.seriesType].forEach(function (w) { return _this.widgetFuncs[w](); });\n })\n .catch(function (e) { return console.error(\"AG Grid - chart rendering failed\", e); });\n };\n SeriesPanel.prototype.initSeriesSelect = function () {\n var _this = this;\n var seriesSelect = this.seriesGroup.createManagedBean(new AgSelect());\n seriesSelect\n .setLabel(this.translate('seriesType'))\n .setLabelAlignment(\"left\")\n .setLabelWidth('flex')\n .setInputWidth(100)\n .addOptions(this.getSeriesSelectOptions())\n .setValue(\"\" + this.seriesType)\n .onValueChange(function (newValue) {\n _this.seriesType = newValue;\n _this.refreshWidgets();\n });\n this.seriesGroup.addItem(seriesSelect);\n this.activePanels.push(seriesSelect);\n };\n SeriesPanel.prototype.initTooltips = function () {\n var _this = this;\n var seriesTooltipsToggle = this.createBean(new AgToggleButton());\n seriesTooltipsToggle\n .setLabel(this.translate(\"tooltips\"))\n .setLabelAlignment(\"left\")\n .setLabelWidth(\"flex\")\n .setInputWidth(45)\n .setValue(this.getSeriesOption(\"tooltip.enabled\") || false)\n .onValueChange(function (newValue) { return _this.setSeriesOption(\"tooltip.enabled\", newValue); });\n this.addWidget(seriesTooltipsToggle);\n };\n SeriesPanel.prototype.initStrokeWidth = function () {\n var _this = this;\n var currentValue = this.getSeriesOption(\"strokeWidth\");\n var seriesStrokeWidthSlider = this.createBean(new AgSlider());\n seriesStrokeWidthSlider\n .setLabel(this.translate(\"strokeWidth\"))\n .setMaxValue(getMaxValue(currentValue, 10))\n .setTextFieldWidth(45)\n .setValue(\"\" + currentValue)\n .onValueChange(function (newValue) { return _this.setSeriesOption(\"strokeWidth\", newValue); });\n this.addWidget(seriesStrokeWidthSlider);\n };\n SeriesPanel.prototype.initLineWidth = function () {\n var _this = this;\n var currentValue = this.getSeriesOption(\"strokeWidth\");\n var seriesLineWidthSlider = this.createBean(new AgSlider());\n seriesLineWidthSlider\n .setLabel(this.translate('lineWidth'))\n .setMaxValue(getMaxValue(currentValue, 10))\n .setTextFieldWidth(45)\n .setValue(\"\" + currentValue)\n .onValueChange(function (newValue) { return _this.setSeriesOption(\"strokeWidth\", newValue); });\n this.addWidget(seriesLineWidthSlider);\n };\n SeriesPanel.prototype.initLineDash = function () {\n var _this = this;\n var lineDash = this.getSeriesOption(\"lineDash\");\n var currentValue = lineDash ? lineDash[0] : 0;\n var seriesLineDashSlider = this.createBean(new AgSlider());\n seriesLineDashSlider\n .setLabel(this.translate('lineDash'))\n .setMaxValue(getMaxValue(currentValue, 30))\n .setTextFieldWidth(45)\n .setValue(\"\" + currentValue)\n .onValueChange(function (newValue) { return _this.setSeriesOption(\"lineDash\", [newValue]); });\n this.addWidget(seriesLineDashSlider);\n };\n SeriesPanel.prototype.initLineOpacity = function () {\n var _this = this;\n var currentValue = this.getSeriesOption(\"strokeOpacity\");\n var seriesLineOpacitySlider = this.createBean(new AgSlider());\n seriesLineOpacitySlider\n .setLabel(this.translate(\"strokeOpacity\"))\n .setStep(0.05)\n .setMaxValue(getMaxValue(currentValue, 1))\n .setTextFieldWidth(45)\n .setValue(\"\" + currentValue)\n .onValueChange(function (newValue) { return _this.setSeriesOption(\"strokeOpacity\", newValue); });\n this.addWidget(seriesLineOpacitySlider);\n };\n SeriesPanel.prototype.initFillOpacity = function () {\n var _this = this;\n var currentValue = this.getSeriesOption(\"fillOpacity\");\n var seriesFillOpacitySlider = this.createBean(new AgSlider());\n seriesFillOpacitySlider\n .setLabel(this.translate(\"fillOpacity\"))\n .setStep(0.05)\n .setMaxValue(getMaxValue(currentValue, 1))\n .setTextFieldWidth(45)\n .setValue(\"\" + currentValue)\n .onValueChange(function (newValue) { return _this.setSeriesOption(\"fillOpacity\", newValue); });\n this.addWidget(seriesFillOpacitySlider);\n };\n SeriesPanel.prototype.initLabels = function () {\n var _this = this;\n var seriesOptionLabelProperty = this.seriesType === 'pie' ? 'calloutLabel' : 'label';\n var labelName = this.seriesType === 'pie'\n ? this.chartTranslationService.translate('calloutLabels')\n : this.chartTranslationService.translate('labels');\n var labelParams = initFontPanelParams({\n labelName: labelName,\n chartOptionsService: this.chartOptionsService,\n getSelectedSeries: function () { return _this.seriesType; },\n seriesOptionLabelProperty: seriesOptionLabelProperty\n });\n var labelPanelComp = this.createBean(new FontPanel(labelParams));\n if (this.seriesType === 'pie') {\n var calloutPanelComp = this.createBean(new CalloutPanel(this.chartOptionsService, function () { return _this.seriesType; }));\n labelPanelComp.addCompToPanel(calloutPanelComp);\n this.activePanels.push(calloutPanelComp);\n }\n this.addWidget(labelPanelComp);\n if (this.seriesType === 'pie') {\n var sectorParams = initFontPanelParams({\n labelName: this.chartTranslationService.translate('sectorLabels'),\n chartOptionsService: this.chartOptionsService,\n getSelectedSeries: function () { return _this.seriesType; },\n seriesOptionLabelProperty: 'sectorLabel'\n });\n var sectorPanelComp = this.createBean(new FontPanel(sectorParams));\n var positionRatioComp = this.getSectorLabelPositionRatio();\n sectorPanelComp.addCompToPanel(positionRatioComp);\n this.addWidget(sectorPanelComp);\n }\n };\n SeriesPanel.prototype.getSectorLabelPositionRatio = function () {\n var _this = this;\n var expression = 'sectorLabel.positionRatio';\n var currentValue = this.chartOptionsService.getSeriesOption(expression, this.seriesType);\n var sectorLabelPositionRatioSlider = this.createBean(new AgSlider());\n return sectorLabelPositionRatioSlider\n .setLabel(this.translate(\"positionRatio\"))\n .setStep(0.05)\n .setMaxValue(getMaxValue(currentValue, 1))\n .setTextFieldWidth(45)\n .setValue(\"\" + currentValue)\n .onValueChange(function (newValue) { return _this.chartOptionsService.setSeriesOption(expression, newValue, _this.seriesType); });\n };\n SeriesPanel.prototype.initShadow = function () {\n var _this = this;\n var shadowPanelComp = this.createBean(new ShadowPanel(this.chartOptionsService, function () { return _this.seriesType; }));\n this.addWidget(shadowPanelComp);\n };\n SeriesPanel.prototype.initMarkers = function () {\n var _this = this;\n var markersPanelComp = this.createBean(new MarkersPanel(this.chartOptionsService, function () { return _this.seriesType; }));\n this.addWidget(markersPanelComp);\n };\n SeriesPanel.prototype.initBins = function () {\n var _this = this;\n var _a;\n var currentValue = ((_a = this.getSeriesOption(\"bins\")) !== null && _a !== void 0 ? _a : this.getSeriesOption(\"calculatedBins\")).length;\n var seriesBinCountSlider = this.createBean(new AgSlider());\n seriesBinCountSlider\n .setLabel(this.translate(\"histogramBinCount\"))\n .setMinValue(0)\n .setMaxValue(getMaxValue(currentValue, 20))\n .setTextFieldWidth(45)\n .setValue(\"\" + currentValue)\n .onValueChange(function (newValue) { return _this.setSeriesOption(\"binCount\", newValue); });\n this.addWidget(seriesBinCountSlider);\n };\n SeriesPanel.prototype.addWidget = function (widget) {\n this.seriesGroup.addItem(widget);\n this.activePanels.push(widget);\n };\n SeriesPanel.prototype.getSeriesOption = function (expression) {\n return this.chartOptionsService.getSeriesOption(expression, this.seriesType);\n };\n SeriesPanel.prototype.setSeriesOption = function (expression, newValue) {\n this.chartOptionsService.setSeriesOption(expression, newValue, this.seriesType);\n };\n SeriesPanel.prototype.getChartSeriesType = function () {\n if (this.chartController.getSeriesChartTypes().length === 0)\n return 'column';\n var ct = this.chartController.getSeriesChartTypes()[0].chartType;\n if (ct === 'columnLineCombo')\n return 'column';\n if (ct === 'areaColumnCombo')\n return 'area';\n return getSeriesType(ct);\n };\n SeriesPanel.prototype.getSeriesSelectOptions = function () {\n var _this = this;\n if (!this.seriesSelectOptions) {\n // lazy init options as they are only required for combo charts\n this.seriesSelectOptions = new Map([\n ['area', { value: 'area', text: this.translate('area', 'Area') }],\n ['bar', { value: 'bar', text: this.translate('bar', 'Bar') }],\n ['column', { value: 'column', text: this.translate('column', 'Column') }],\n ['line', { value: 'line', text: this.translate('line', 'Line') }],\n ['scatter', { value: 'scatter', text: this.translate('scatter', 'Scatter') }],\n ['histogram', { value: 'histogram', text: this.translate('histogram', 'Histogram') }],\n ['pie', { value: 'pie', text: this.translate('pie', 'Pie') }],\n ]);\n }\n var seriesSelectOptions = new Set();\n this.chartController.getActiveSeriesChartTypes().forEach(function (s) {\n var chartType = getSeriesType(s.chartType);\n seriesSelectOptions.add(_this.seriesSelectOptions.get(chartType));\n });\n return Array.from(seriesSelectOptions);\n };\n SeriesPanel.prototype.updateSeriesType = function () {\n var activeChartTypes = this.chartController.getActiveSeriesChartTypes().map(function (s) { return getSeriesType(s.chartType); });\n var invalidSeriesType = !activeChartTypes.includes(this.seriesType);\n if (invalidSeriesType && activeChartTypes.length > 0) {\n this.seriesType = activeChartTypes[0]; // default to first active series type\n }\n };\n SeriesPanel.prototype.translate = function (key, defaultText) {\n return this.chartTranslationService.translate(key, defaultText);\n };\n SeriesPanel.prototype.destroyActivePanels = function () {\n var _this = this;\n this.activePanels.forEach(function (panel) {\n _.removeFromParent(panel.getGui());\n _this.destroyBean(panel);\n });\n };\n SeriesPanel.prototype.destroy = function () {\n this.destroyActivePanels();\n _super.prototype.destroy.call(this);\n };\n SeriesPanel.TEMPLATE = \"
\\n \\n \\n
\";\n __decorate$Y([\n RefSelector('seriesGroup')\n ], SeriesPanel.prototype, \"seriesGroup\", void 0);\n __decorate$Y([\n Autowired('chartTranslationService')\n ], SeriesPanel.prototype, \"chartTranslationService\", void 0);\n __decorate$Y([\n PostConstruct\n ], SeriesPanel.prototype, \"init\", null);\n return SeriesPanel;\n}(Component));\n\nvar __extends$1r = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$X = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nfunction getMaxValue(currentValue, defaultMaxValue) {\n return Math.max(currentValue, defaultMaxValue);\n}\nvar DefaultFormatPanelDef = {\n groups: [\n { type: 'chart' },\n { type: 'legend' },\n { type: 'series' },\n { type: 'axis' },\n { type: 'navigator' },\n ]\n};\nvar FormatPanel = /** @class */ (function (_super) {\n __extends$1r(FormatPanel, _super);\n function FormatPanel(chartController, chartOptionsService) {\n var _this = _super.call(this, FormatPanel.TEMPLATE) || this;\n _this.chartController = chartController;\n _this.chartOptionsService = chartOptionsService;\n _this.panels = [];\n _this.isGroupPanelShownInSeries = function (group, seriesType) {\n var commonGroupPanels = ['chart', 'legend', 'series'];\n if (commonGroupPanels.includes(group)) {\n return true;\n }\n var cartesianOnlyGroupPanels = ['axis', 'navigator'];\n var cartesianSeries = ['bar', 'column', 'line', 'area', 'scatter', 'histogram', 'cartesian'];\n return !!(cartesianOnlyGroupPanels.includes(group) && cartesianSeries.includes(seriesType));\n };\n return _this;\n }\n FormatPanel.prototype.init = function () {\n var _this = this;\n this.createPanels();\n this.addManagedListener(this.chartController, ChartController.EVENT_CHART_UPDATED, function () { return _this.createPanels(true); });\n this.addManagedListener(this.chartController, ChartController.EVENT_CHART_API_UPDATE, function () { return _this.createPanels(false); });\n };\n FormatPanel.prototype.createPanels = function (reuse) {\n var _this = this;\n var _a;\n var chartType = this.chartController.getChartType();\n var isGrouping = this.chartController.isGrouping();\n var seriesType = getSeriesType(chartType);\n if (reuse && chartType === this.chartType && isGrouping === this.isGrouping) {\n // existing panels can be re-used\n return;\n }\n this.destroyPanels();\n (_a = this.getFormatPanelDef().groups) === null || _a === void 0 ? void 0 : _a.forEach(function (groupDef) {\n var group = groupDef.type;\n // ensure the group should be displayed for the current series type\n if (!_this.isGroupPanelShownInSeries(group, seriesType)) {\n return;\n }\n var opts = {\n chartController: _this.chartController,\n chartOptionsService: _this.chartOptionsService,\n isExpandedOnInit: groupDef.isOpen,\n seriesType: seriesType\n };\n if (group === 'chart') {\n _this.addComponent(new ChartPanel(opts));\n }\n else if (group === 'legend') {\n _this.addComponent(new LegendPanel(opts));\n }\n else if (group === 'axis') {\n _this.addComponent(new AxisPanel(opts));\n }\n else if (group === 'series') {\n _this.addComponent(new SeriesPanel(opts));\n }\n else if (group === 'navigator') {\n _this.addComponent(new NavigatorPanel(opts));\n }\n else {\n console.warn(\"AG Grid: invalid charts format panel group name supplied: '\" + groupDef.type + \"'\");\n }\n });\n this.chartType = chartType;\n this.isGrouping = isGrouping;\n };\n FormatPanel.prototype.getFormatPanelDef = function () {\n var _a;\n var userProvidedFormatPanelDef = (_a = this.gridOptionsService.get('chartToolPanelsDef')) === null || _a === void 0 ? void 0 : _a.formatPanel;\n return userProvidedFormatPanelDef ? userProvidedFormatPanelDef : DefaultFormatPanelDef;\n };\n FormatPanel.prototype.addComponent = function (component) {\n this.createBean(component);\n this.panels.push(component);\n component.addCssClass('ag-chart-format-section');\n this.getGui().appendChild(component.getGui());\n };\n FormatPanel.prototype.destroyPanels = function () {\n var _this = this;\n this.panels.forEach(function (panel) {\n _.removeFromParent(panel.getGui());\n _this.destroyBean(panel);\n });\n };\n FormatPanel.prototype.destroy = function () {\n this.destroyPanels();\n _super.prototype.destroy.call(this);\n };\n FormatPanel.TEMPLATE = \"
\";\n __decorate$X([\n PostConstruct\n ], FormatPanel.prototype, \"init\", null);\n return FormatPanel;\n}(Component));\n\nvar __extends$1q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$W = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MiniChart = /** @class */ (function (_super) {\n __extends$1q(MiniChart, _super);\n function MiniChart(container, tooltipName) {\n var _this = _super.call(this) || this;\n _this.size = 58;\n _this.padding = 5;\n _this.root = new Group();\n var scene = new Scene({ document: window.document, width: _this.size, height: _this.size });\n scene.canvas.element.classList.add('ag-chart-mini-thumbnail-canvas');\n scene.root = _this.root;\n scene.container = container;\n _this.scene = scene;\n _this.tooltipName = tooltipName;\n return _this;\n }\n MiniChart.prototype.init = function () {\n this.scene.canvas.element.title = this.chartTranslationService.translate(this.tooltipName);\n // necessary to force scene graph render as we are not using the standalone factory!\n this.scene.render()\n .catch(function (e) { return console.error(\"AG Grid - chart update failed\", e); });\n };\n __decorate$W([\n Autowired('chartTranslationService')\n ], MiniChart.prototype, \"chartTranslationService\", void 0);\n __decorate$W([\n PostConstruct\n ], MiniChart.prototype, \"init\", null);\n return MiniChart;\n}(Component));\n\nvar __extends$1p = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$V = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MiniChartWithAxes = /** @class */ (function (_super) {\n __extends$1p(MiniChartWithAxes, _super);\n function MiniChartWithAxes(container, tooltipName) {\n var _this = _super.call(this, container, tooltipName) || this;\n _this.stroke = 'gray';\n _this.axisOvershoot = 3;\n return _this;\n }\n MiniChartWithAxes.prototype.addAxes = function () {\n var size = this.size;\n var padding = this.padding;\n var leftAxis = new Line();\n leftAxis.x1 = padding;\n leftAxis.y1 = padding;\n leftAxis.x2 = padding;\n leftAxis.y2 = size - padding + this.axisOvershoot;\n leftAxis.stroke = this.stroke;\n var bottomAxis = new Line();\n bottomAxis.x1 = padding - this.axisOvershoot + 1;\n bottomAxis.y1 = size - padding;\n bottomAxis.x2 = size - padding + 1;\n bottomAxis.y2 = size - padding;\n bottomAxis.stroke = this.stroke;\n var root = this.root;\n root.append(leftAxis);\n root.append(bottomAxis);\n };\n __decorate$V([\n PostConstruct\n ], MiniChartWithAxes.prototype, \"addAxes\", null);\n return MiniChartWithAxes;\n}(MiniChart));\n\nfunction createColumnRects(params) {\n var stacked = params.stacked, size = params.size, padding = params.padding, xScalePadding = params.xScalePadding, xScaleDomain = params.xScaleDomain, yScaleDomain = params.yScaleDomain;\n var xScale = new BandScale$5();\n xScale.domain = xScaleDomain;\n xScale.range = [padding, size - padding];\n xScale.paddingInner = xScalePadding;\n xScale.paddingOuter = xScalePadding;\n var yScale = new LinearScale$1();\n yScale.domain = yScaleDomain;\n yScale.range = [size - padding, padding];\n var createBars = function (series, xScale, yScale) {\n return series.map(function (datum, i) {\n var top = yScale.convert(datum);\n var rect = new Rect();\n rect.x = xScale.convert(i);\n rect.y = top;\n rect.width = xScale.bandwidth;\n rect.height = yScale.convert(0) - top;\n rect.strokeWidth = 1;\n rect.crisp = true;\n return rect;\n });\n };\n if (stacked) {\n return params.data.map(function (d) { return createBars(d, xScale, yScale); });\n }\n return createBars(params.data, xScale, yScale);\n}\nfunction createLinePaths(root, data, size, padding) {\n var xScale = new LinearScale$1();\n xScale.domain = [0, 4];\n xScale.range = [padding, size - padding];\n var yScale = new LinearScale$1();\n yScale.domain = [0, 10];\n yScale.range = [size - padding, padding];\n var lines = data.map(function (series) {\n var line = new Path();\n line.strokeWidth = 3;\n line.lineCap = 'round';\n line.fill = undefined;\n series.forEach(function (datum, i) {\n line.path[i > 0 ? 'lineTo' : 'moveTo'](xScale.convert(i), yScale.convert(datum));\n });\n return line;\n });\n var linesGroup = new Group();\n linesGroup.setClipRectInGroupCoordinateSpace(new BBox(padding, padding, size - padding * 2, size - padding * 2));\n linesGroup.append(lines);\n root.append(linesGroup);\n return lines;\n}\n\nvar __extends$1o = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniColumn = /** @class */ (function (_super) {\n __extends$1o(MiniColumn, _super);\n function MiniColumn(container, fills, strokes) {\n var _this = _super.call(this, container, \"groupedColumnTooltip\") || this;\n _this.columnData = [2, 3, 4];\n var _a = _this, root = _a.root, columnData = _a.columnData, size = _a.size, padding = _a.padding;\n _this.columns = createColumnRects({\n stacked: false,\n root: root,\n data: columnData,\n size: size,\n padding: padding,\n xScaleDomain: [0, 1, 2],\n yScaleDomain: [0, 4],\n xScalePadding: 0.3\n });\n root.append(_this.columns);\n _this.updateColors(fills, strokes);\n return _this;\n }\n MiniColumn.prototype.updateColors = function (fills, strokes) {\n this.columns.forEach(function (column, i) {\n column.fill = fills[i];\n column.stroke = strokes[i];\n });\n };\n MiniColumn.chartType = 'groupedColumn';\n return MiniColumn;\n}(MiniChartWithAxes));\n\nvar __extends$1n = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniStackedColumn = /** @class */ (function (_super) {\n __extends$1n(MiniStackedColumn, _super);\n function MiniStackedColumn(container, fills, strokes, data, yScaleDomain, tooltipName) {\n if (data === void 0) { data = MiniStackedColumn.data; }\n if (yScaleDomain === void 0) { yScaleDomain = [0, 16]; }\n if (tooltipName === void 0) { tooltipName = \"stackedColumnTooltip\"; }\n var _this = _super.call(this, container, tooltipName) || this;\n var _a = _this, root = _a.root, size = _a.size, padding = _a.padding;\n _this.stackedColumns = createColumnRects({\n stacked: true,\n root: root,\n data: data,\n size: size,\n padding: padding,\n xScaleDomain: [0, 1, 2],\n yScaleDomain: yScaleDomain,\n xScalePadding: 0.3,\n });\n root.append([].concat.apply([], _this.stackedColumns));\n _this.updateColors(fills, strokes);\n return _this;\n }\n MiniStackedColumn.prototype.updateColors = function (fills, strokes) {\n this.stackedColumns.forEach(function (series, i) {\n return series.forEach(function (column) {\n column.fill = fills[i];\n column.stroke = strokes[i];\n });\n });\n };\n MiniStackedColumn.chartType = 'stackedColumn';\n MiniStackedColumn.data = [\n [8, 12, 16],\n [6, 9, 12],\n [2, 3, 4]\n ];\n return MiniStackedColumn;\n}(MiniChartWithAxes));\n\nvar __extends$1m = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniNormalizedColumn = /** @class */ (function (_super) {\n __extends$1m(MiniNormalizedColumn, _super);\n function MiniNormalizedColumn(container, fills, strokes) {\n return _super.call(this, container, fills, strokes, MiniNormalizedColumn.data, [0, 10], \"normalizedColumnTooltip\") || this;\n }\n MiniNormalizedColumn.chartType = 'normalizedColumn';\n MiniNormalizedColumn.data = [\n [10, 10, 10],\n [6, 7, 8],\n [2, 4, 6]\n ];\n return MiniNormalizedColumn;\n}(MiniStackedColumn));\n\nvar __extends$1l = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniBar = /** @class */ (function (_super) {\n __extends$1l(MiniBar, _super);\n function MiniBar(container, fills, strokes) {\n var _this = _super.call(this, container, \"groupedBarTooltip\") || this;\n var padding = _this.padding;\n var size = _this.size;\n var data = [2, 3, 4];\n var yScale = new BandScale$5();\n yScale.domain = [0, 1, 2];\n yScale.range = [padding, size - padding];\n yScale.paddingInner = 0.3;\n yScale.paddingOuter = 0.3;\n var xScale = new LinearScale$1();\n xScale.domain = [0, 4];\n xScale.range = [size - padding, padding];\n var bottom = xScale.convert(0);\n var height = yScale.bandwidth;\n _this.bars = data.map(function (datum, i) {\n var rect = new Rect();\n rect.x = padding;\n rect.y = yScale.convert(i);\n rect.width = bottom - xScale.convert(datum);\n rect.height = height;\n rect.strokeWidth = 1;\n rect.crisp = true;\n return rect;\n });\n _this.updateColors(fills, strokes);\n _this.root.append(_this.bars);\n return _this;\n }\n MiniBar.prototype.updateColors = function (fills, strokes) {\n this.bars.forEach(function (bar, i) {\n bar.fill = fills[i];\n bar.stroke = strokes[i];\n });\n };\n MiniBar.chartType = 'groupedBar';\n return MiniBar;\n}(MiniChartWithAxes));\n\nvar __extends$1k = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniStackedBar = /** @class */ (function (_super) {\n __extends$1k(MiniStackedBar, _super);\n function MiniStackedBar(container, fills, strokes, data, xScaleDomain, tooltipName) {\n if (data === void 0) { data = MiniStackedBar.data; }\n if (xScaleDomain === void 0) { xScaleDomain = [0, 16]; }\n if (tooltipName === void 0) { tooltipName = \"stackedBarTooltip\"; }\n var _this = _super.call(this, container, tooltipName) || this;\n var size = _this.size;\n var padding = _this.padding;\n var yScale = new BandScale$5();\n yScale.domain = [0, 1, 2];\n yScale.range = [padding, size - padding];\n yScale.paddingInner = 0.3;\n yScale.paddingOuter = 0.3;\n var xScale = new LinearScale$1();\n xScale.domain = xScaleDomain;\n xScale.range = [size - padding, padding];\n var bottom = xScale.convert(0);\n var height = yScale.bandwidth;\n _this.bars = data.map(function (series) {\n return series.map(function (datum, i) {\n var rect = new Rect();\n rect.x = padding;\n rect.y = yScale.convert(i);\n rect.width = bottom - xScale.convert(datum);\n rect.height = height;\n rect.strokeWidth = 1;\n rect.crisp = true;\n return rect;\n });\n });\n _this.updateColors(fills, strokes);\n _this.root.append([].concat.apply([], _this.bars));\n return _this;\n }\n MiniStackedBar.prototype.updateColors = function (fills, strokes) {\n this.bars.forEach(function (series, i) {\n return series.forEach(function (bar) {\n bar.fill = fills[i];\n bar.stroke = strokes[i];\n });\n });\n };\n MiniStackedBar.chartType = 'stackedBar';\n MiniStackedBar.data = [\n [8, 12, 16],\n [6, 9, 12],\n [2, 3, 4]\n ];\n return MiniStackedBar;\n}(MiniChartWithAxes));\n\nvar __extends$1j = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniNormalizedBar = /** @class */ (function (_super) {\n __extends$1j(MiniNormalizedBar, _super);\n function MiniNormalizedBar(container, fills, strokes) {\n return _super.call(this, container, fills, strokes, MiniNormalizedBar.data, [0, 10], \"normalizedBarTooltip\") || this;\n }\n MiniNormalizedBar.chartType = 'normalizedBar';\n MiniNormalizedBar.data = [\n [10, 10, 10],\n [6, 7, 8],\n [2, 4, 6]\n ];\n return MiniNormalizedBar;\n}(MiniStackedBar));\n\nvar __extends$1i = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read$m = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar toRadians = toRadians$1;\nvar MiniDoughnut = /** @class */ (function (_super) {\n __extends$1i(MiniDoughnut, _super);\n function MiniDoughnut(container, fills, strokes, centerRadiusScaler, tooltipName) {\n if (centerRadiusScaler === void 0) { centerRadiusScaler = 0.6; }\n if (tooltipName === void 0) { tooltipName = \"doughnutTooltip\"; }\n var _this = _super.call(this, container, tooltipName) || this;\n var radius = (_this.size - _this.padding * 2) / 2;\n var center = radius + _this.padding;\n var angles = [\n [toRadians(-90), toRadians(30)],\n [toRadians(30), toRadians(120)],\n [toRadians(120), toRadians(180)],\n [toRadians(180), toRadians(210)],\n [toRadians(210), toRadians(240)],\n [toRadians(240), toRadians(270)]\n ];\n _this.sectors = angles.map(function (_a) {\n var _b = __read$m(_a, 2), startAngle = _b[0], endAngle = _b[1];\n var sector = new Sector();\n sector.centerX = center;\n sector.centerY = center;\n sector.innerRadius = radius * centerRadiusScaler;\n sector.outerRadius = radius;\n sector.startAngle = startAngle;\n sector.endAngle = endAngle;\n sector.stroke = undefined;\n sector.strokeWidth = 1;\n return sector;\n });\n _this.updateColors(fills, strokes);\n _this.root.append(_this.sectors);\n return _this;\n }\n MiniDoughnut.prototype.updateColors = function (fills, strokes) {\n this.sectors.forEach(function (sector, i) {\n sector.fill = fills[i % fills.length];\n sector.stroke = strokes[i % strokes.length];\n });\n };\n MiniDoughnut.chartType = 'doughnut';\n return MiniDoughnut;\n}(MiniChart));\n\nvar __extends$1h = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniPie = /** @class */ (function (_super) {\n __extends$1h(MiniPie, _super);\n function MiniPie(container, fills, strokes) {\n return _super.call(this, container, fills, strokes, 0, \"pieTooltip\") || this;\n }\n MiniPie.chartType = 'pie';\n return MiniPie;\n}(MiniDoughnut));\n\nvar __extends$1g = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniLine = /** @class */ (function (_super) {\n __extends$1g(MiniLine, _super);\n function MiniLine(container, fills, strokes) {\n var _this = _super.call(this, container, \"lineTooltip\") || this;\n _this.data = [\n [9, 7, 8, 5, 6],\n [5, 6, 3, 4, 1],\n [1, 3, 4, 8, 7]\n ];\n _this.lines = createLinePaths(_this.root, _this.data, _this.size, _this.padding);\n _this.updateColors(fills, strokes);\n return _this;\n }\n MiniLine.prototype.updateColors = function (fills, strokes) {\n this.lines.forEach(function (line, i) {\n line.stroke = fills[i];\n });\n };\n MiniLine.chartType = 'line';\n return MiniLine;\n}(MiniChartWithAxes));\n\nvar __extends$1f = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read$l = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar MiniScatter = /** @class */ (function (_super) {\n __extends$1f(MiniScatter, _super);\n function MiniScatter(container, fills, strokes) {\n var _this = _super.call(this, container, \"scatterTooltip\") || this;\n var size = _this.size;\n var padding = _this.padding;\n // [x, y] pairs\n var data = [\n [[0.3, 3], [1.1, 0.9], [2, 0.4], [3.4, 2.4]],\n [[0, 0.3], [1, 2], [2.4, 1.4], [3, 0]]\n ];\n var xScale = new LinearScale$1();\n xScale.domain = [-0.5, 4];\n xScale.range = [padding * 2, size - padding];\n var yScale = new LinearScale$1();\n yScale.domain = [-0.5, 3.5];\n yScale.range = [size - padding, padding];\n var points = [];\n data.forEach(function (series) {\n series.forEach(function (_a) {\n var _b = __read$l(_a, 2), x = _b[0], y = _b[1];\n var arc = new Arc();\n arc.strokeWidth = 1;\n arc.centerX = xScale.convert(x);\n arc.centerY = yScale.convert(y);\n arc.radius = 2.5;\n points.push(arc);\n });\n });\n _this.points = points;\n _this.updateColors(fills, strokes);\n var pointsGroup = new Group();\n pointsGroup.setClipRectInGroupCoordinateSpace(new BBox(padding, padding, size - padding * 2, size - padding * 2));\n pointsGroup.append(_this.points);\n _this.root.append(pointsGroup);\n return _this;\n }\n MiniScatter.prototype.updateColors = function (fills, strokes) {\n this.points.forEach(function (line, i) {\n line.stroke = strokes[i % strokes.length];\n line.fill = fills[i % fills.length];\n });\n };\n MiniScatter.chartType = 'scatter';\n return MiniScatter;\n}(MiniChartWithAxes));\n\nvar __extends$1e = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read$k = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar MiniBubble = /** @class */ (function (_super) {\n __extends$1e(MiniBubble, _super);\n function MiniBubble(container, fills, strokes) {\n var _this = _super.call(this, container, \"bubbleTooltip\") || this;\n var size = _this.size;\n var padding = _this.padding;\n // [x, y, radius] triples\n var data = [\n [[0.1, 0.3, 5], [0.5, 0.4, 7], [0.2, 0.8, 7]], [[0.8, 0.7, 5], [0.7, 0.3, 9]]\n ];\n var xScale = new LinearScale$1();\n xScale.domain = [0, 1];\n xScale.range = [padding * 2, size - padding];\n var yScale = new LinearScale$1();\n yScale.domain = [0, 1];\n yScale.range = [size - padding, padding];\n var points = [];\n data.forEach(function (series) {\n series.forEach(function (_a) {\n var _b = __read$k(_a, 3), x = _b[0], y = _b[1], radius = _b[2];\n var arc = new Arc();\n arc.strokeWidth = 1;\n arc.centerX = xScale.convert(x);\n arc.centerY = yScale.convert(y);\n arc.radius = radius;\n arc.fillOpacity = 0.7;\n points.push(arc);\n });\n });\n _this.points = points;\n _this.updateColors(fills, strokes);\n var pointsGroup = new Group();\n pointsGroup.setClipRectInGroupCoordinateSpace(new BBox(padding, padding, size - padding * 2, size - padding * 2));\n pointsGroup.append(_this.points);\n _this.root.append(pointsGroup);\n return _this;\n }\n MiniBubble.prototype.updateColors = function (fills, strokes) {\n this.points.forEach(function (line, i) {\n line.stroke = strokes[i % strokes.length];\n line.fill = fills[i % fills.length];\n });\n };\n MiniBubble.chartType = 'bubble';\n return MiniBubble;\n}(MiniChartWithAxes));\n\nvar __extends$1d = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniArea = /** @class */ (function (_super) {\n __extends$1d(MiniArea, _super);\n function MiniArea(container, fills, strokes, data) {\n if (data === void 0) { data = MiniArea.data; }\n var _this = _super.call(this, container, \"groupedAreaTooltip\") || this;\n var size = _this.size;\n var padding = _this.padding;\n var xScale = new BandScale$5();\n xScale.domain = [0, 1, 2];\n xScale.paddingInner = 1;\n xScale.paddingOuter = 0;\n xScale.range = [padding + 0.5, size - padding - 0.5];\n var yScale = new LinearScale$1();\n yScale.domain = [0, 6];\n yScale.range = [size - padding + 0.5, padding];\n var xCount = data.length;\n var last = xCount * 2 - 1;\n var pathData = [];\n var bottomY = yScale.convert(0);\n data.forEach(function (datum, i) {\n var x = xScale.convert(i);\n datum.forEach(function (yDatum, j) {\n var y = yScale.convert(yDatum);\n var points = pathData[j] || (pathData[j] = []);\n points[i] = {\n x: x,\n y: y\n };\n points[last - i] = {\n x: x,\n y: bottomY\n };\n });\n });\n _this.areas = pathData.reverse().map(function (points) {\n var area = new Path();\n area.strokeWidth = 1;\n area.fillOpacity = 0.7;\n var path = area.path;\n path.clear();\n points.forEach(function (point, i) { return path[i > 0 ? \"lineTo\" : \"moveTo\"](point.x, point.y); });\n path.closePath();\n return area;\n });\n _this.updateColors(fills, strokes);\n _this.root.append(_this.areas);\n return _this;\n }\n MiniArea.prototype.updateColors = function (fills, strokes) {\n this.areas.forEach(function (area, i) {\n area.fill = fills[i];\n area.stroke = strokes[i];\n });\n };\n MiniArea.chartType = 'area';\n MiniArea.data = [\n [1, 3, 5],\n [2, 6, 4],\n [5, 3, 1]\n ];\n return MiniArea;\n}(MiniChartWithAxes));\n\nvar __extends$1c = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniStackedArea = /** @class */ (function (_super) {\n __extends$1c(MiniStackedArea, _super);\n function MiniStackedArea(container, fills, strokes, data, tooltipName) {\n if (data === void 0) { data = MiniStackedArea.data; }\n if (tooltipName === void 0) { tooltipName = \"stackedAreaTooltip\"; }\n var _this = _super.call(this, container, tooltipName) || this;\n var size = _this.size;\n var padding = _this.padding;\n var xScale = new BandScale$5();\n xScale.domain = [0, 1, 2];\n xScale.paddingInner = 1;\n xScale.paddingOuter = 0;\n xScale.range = [padding + 0.5, size - padding - 0.5];\n var yScale = new LinearScale$1();\n yScale.domain = [0, 16];\n yScale.range = [size - padding + 0.5, padding + 0.5];\n var xCount = data.length;\n var last = xCount * 2 - 1;\n var pathData = [];\n data.forEach(function (datum, i) {\n var x = xScale.convert(i);\n var total = 0;\n datum.forEach(function (yDatum, j) {\n var y = yScale.convert(total + yDatum);\n var points = pathData[j] || (pathData[j] = []);\n points[i] = {\n x: x,\n y: y\n };\n points[last - i] = {\n x: x,\n y: yScale.convert(total) // bottom y\n };\n total += yDatum;\n });\n });\n _this.areas = pathData.map(function (points) {\n var area = new Path();\n area.strokeWidth = 1;\n var path = area.path;\n path.clear();\n points.forEach(function (point, i) { return path[i > 0 ? \"lineTo\" : \"moveTo\"](point.x, point.y); });\n path.closePath();\n return area;\n });\n _this.updateColors(fills, strokes);\n _this.root.append(_this.areas);\n return _this;\n }\n MiniStackedArea.prototype.updateColors = function (fills, strokes) {\n this.areas.forEach(function (area, i) {\n area.fill = fills[i];\n area.stroke = strokes[i];\n });\n };\n MiniStackedArea.chartType = 'stackedArea';\n MiniStackedArea.data = [\n [2, 3, 2],\n [3, 6, 5],\n [6, 2, 2]\n ];\n return MiniStackedArea;\n}(MiniChartWithAxes));\n\nvar __extends$1b = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniNormalizedArea = /** @class */ (function (_super) {\n __extends$1b(MiniNormalizedArea, _super);\n function MiniNormalizedArea(container, fills, strokes, data) {\n if (data === void 0) { data = MiniNormalizedArea.data; }\n return _super.call(this, container, fills, strokes, data, \"normalizedAreaTooltip\") || this;\n }\n MiniNormalizedArea.chartType = 'normalizedArea';\n MiniNormalizedArea.data = MiniStackedArea.data.map(function (stack) {\n var sum = stack.reduce(function (p, c) { return p + c; }, 0);\n return stack.map(function (v) { return v / sum * 16; });\n });\n return MiniNormalizedArea;\n}(MiniStackedArea));\n\nvar __extends$1a = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __read$j = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar MiniHistogram = /** @class */ (function (_super) {\n __extends$1a(MiniHistogram, _super);\n function MiniHistogram(container, fills, strokes) {\n var _this = _super.call(this, container, \"histogramTooltip\") || this;\n var padding = _this.padding;\n var size = _this.size;\n // approx normal curve\n var data = [2, 5, 11, 13, 10, 6, 1];\n var xScale = new LinearScale$1();\n xScale.domain = [0, data.length];\n xScale.range = [padding, size - padding];\n var yScale = new LinearScale$1();\n yScale.domain = [0, data.reduce(function (a, b) { return Math.max(a, b); }, 0)];\n yScale.range = [size - padding, padding];\n var bottom = yScale.convert(0);\n _this.bars = data.map(function (datum, i) {\n var top = yScale.convert(datum);\n var left = xScale.convert(i);\n var right = xScale.convert(i + 1);\n var rect = new Rect();\n rect.x = left;\n rect.y = top;\n rect.width = right - left;\n rect.height = bottom - top;\n rect.strokeWidth = 1;\n rect.crisp = true;\n return rect;\n });\n _this.updateColors(fills, strokes);\n _this.root.append(_this.bars);\n return _this;\n }\n MiniHistogram.prototype.updateColors = function (_a, _b) {\n var _c = __read$j(_a, 1), fill = _c[0];\n var _d = __read$j(_b, 1), stroke = _d[0];\n this.bars.forEach(function (bar) {\n bar.fill = fill;\n bar.stroke = stroke;\n });\n };\n MiniHistogram.chartType = 'histogram';\n return MiniHistogram;\n}(MiniChartWithAxes));\n\nvar __extends$19 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniColumnLineCombo = /** @class */ (function (_super) {\n __extends$19(MiniColumnLineCombo, _super);\n function MiniColumnLineCombo(container, fills, strokes) {\n var _this = _super.call(this, container, \"columnLineComboTooltip\") || this;\n _this.columnData = [3, 4];\n _this.lineData = [\n [5, 4, 6, 5, 4]\n ];\n var _a = _this, root = _a.root, columnData = _a.columnData, lineData = _a.lineData, size = _a.size, padding = _a.padding;\n _this.columns = createColumnRects({\n stacked: false,\n root: root,\n data: columnData,\n size: size,\n padding: padding,\n xScaleDomain: [0, 1],\n yScaleDomain: [0, 4],\n xScalePadding: 0.5\n });\n root.append(_this.columns);\n _this.lines = createLinePaths(root, lineData, size, padding);\n _this.updateColors(fills, strokes);\n return _this;\n }\n MiniColumnLineCombo.prototype.updateColors = function (fills, strokes) {\n this.columns.forEach(function (bar, i) {\n bar.fill = fills[i];\n bar.stroke = strokes[i];\n });\n this.lines.forEach(function (line, i) {\n line.stroke = fills[i + 2];\n });\n };\n MiniColumnLineCombo.chartType = 'columnLineCombo';\n return MiniColumnLineCombo;\n}(MiniChartWithAxes));\n\nvar __extends$18 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniAreaColumnCombo = /** @class */ (function (_super) {\n __extends$18(MiniAreaColumnCombo, _super);\n function MiniAreaColumnCombo(container, fills, strokes) {\n var _this = _super.call(this, container, \"areaColumnComboTooltip\") || this;\n _this.columnData = [3, 4.5];\n _this.areaData = [\n [5, 4, 6, 5, 4],\n ];\n var _a = _this, root = _a.root, columnData = _a.columnData, areaData = _a.areaData, size = _a.size, padding = _a.padding;\n _this.columns = createColumnRects({\n stacked: false,\n root: root,\n data: columnData,\n size: size,\n padding: padding,\n xScaleDomain: [0, 1],\n yScaleDomain: [0, 6],\n xScalePadding: 0.5,\n });\n // scale for area series\n var xScale = new BandScale$5();\n xScale.range = [padding, size - padding];\n xScale.domain = [0, 1, 2, 3, 4];\n xScale.paddingInner = 1;\n xScale.paddingOuter = 0;\n var yScale = new LinearScale$1();\n yScale.range = [size - padding, padding];\n yScale.domain = [0, 6];\n var pathData = [];\n var yZero = yScale.convert(0);\n var firstX = xScale.convert(0);\n areaData.forEach(function (series, i) {\n var points = pathData[i] || (pathData[i] = []);\n series.forEach(function (data, j) {\n var yDatum = data;\n var xDatum = j;\n var x = xScale.convert(xDatum);\n var y = yScale.convert(yDatum);\n points[j] = { x: x, y: y };\n });\n var lastX = xScale.convert(series.length - 1);\n pathData[i].push({\n x: lastX,\n y: yZero\n }, {\n x: firstX,\n y: yZero\n });\n });\n _this.areas = pathData.map(function (points) {\n var area = new Path();\n area.strokeWidth = 1;\n area.fillOpacity = 0.8;\n var path = area.path;\n points.forEach(function (point, i) { return path[i > 0 ? 'lineTo' : 'moveTo'](point.x, point.y); });\n return area;\n });\n root.append(_this.areas);\n root.append([].concat.apply([], _this.columns));\n _this.updateColors(fills, strokes);\n return _this;\n }\n MiniAreaColumnCombo.prototype.updateColors = function (fills, strokes) {\n this.areas.forEach(function (area, i) {\n area.fill = fills[i];\n area.stroke = strokes[i];\n });\n this.columns.forEach(function (bar, i) {\n bar.fill = fills[i + 1];\n bar.stroke = strokes[i + 1];\n });\n };\n MiniAreaColumnCombo.chartType = 'areaColumnCombo';\n return MiniAreaColumnCombo;\n}(MiniChartWithAxes));\n\nvar __extends$17 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar MiniCustomCombo = /** @class */ (function (_super) {\n __extends$17(MiniCustomCombo, _super);\n function MiniCustomCombo(container, fills, strokes) {\n var _this = _super.call(this, container, 'customComboTooltip') || this;\n _this.columnData = [3, 4];\n _this.lineData = [[5, 4, 6, 5, 4]];\n var _a = _this, root = _a.root, columnData = _a.columnData, lineData = _a.lineData, size = _a.size, padding = _a.padding;\n _this.columns = createColumnRects({\n stacked: false,\n root: root,\n data: columnData,\n size: size,\n padding: padding,\n xScaleDomain: [0, 1],\n yScaleDomain: [0, 4],\n xScalePadding: 0.5,\n });\n root.append(_this.columns);\n _this.lines = createLinePaths(root, lineData, size, padding);\n var axisStroke = 'grey';\n var axisOvershoot = 3;\n var leftAxis = new Line();\n leftAxis.x1 = padding;\n leftAxis.y1 = padding;\n leftAxis.x2 = padding;\n leftAxis.y2 = size - padding + axisOvershoot;\n leftAxis.stroke = axisStroke;\n var bottomAxis = new Line();\n bottomAxis.x1 = padding - axisOvershoot + 1;\n bottomAxis.y1 = size - padding;\n bottomAxis.x2 = size - padding + 1;\n bottomAxis.y2 = size - padding;\n bottomAxis.stroke = axisStroke;\n var penIcon = new Path();\n _this.buildPenIconPath(penIcon);\n penIcon.fill = 'whitesmoke';\n penIcon.stroke = 'darkslategrey';\n penIcon.strokeWidth = 1;\n root.append([bottomAxis, leftAxis, penIcon]);\n _this.updateColors(fills, strokes);\n return _this;\n }\n MiniCustomCombo.prototype.updateColors = function (fills, strokes) {\n this.columns.forEach(function (bar, i) {\n bar.fill = fills[i];\n bar.stroke = strokes[i];\n });\n this.lines.forEach(function (line, i) {\n line.stroke = fills[i + 2];\n });\n };\n MiniCustomCombo.prototype.buildPenIconPath = function (penIcon) {\n var path = penIcon.path;\n path.moveTo(25.76, 43.46);\n path.lineTo(31.27, 48.53);\n path.moveTo(49.86, 22);\n path.lineTo(49.86, 22);\n path.cubicCurveTo(49.01994659053345, 21.317514933510974, 47.89593834348529, 21.09645997825817, 46.86, 21.41);\n path.lineTo(46.86, 21.41);\n path.cubicCurveTo(45.55460035985361, 21.77260167850787, 44.38777081121966, 22.517979360321792, 43.51, 23.55);\n path.lineTo(25.51, 43.8);\n path.lineTo(25.43, 43.89);\n path.lineTo(23.01, 51.89);\n path.lineTo(22.83, 52.46);\n path.lineTo(31.02, 48.86);\n path.lineTo(49.02, 28.52);\n path.lineTo(49.02, 28.52);\n path.cubicCurveTo(49.940716461596224, 27.521914221246085, 50.54302631059587, 26.2720342455763, 50.75, 24.93);\n path.lineTo(50.75, 24.93);\n path.cubicCurveTo(50.95363374988308, 23.866379846512814, 50.62080640232334, 22.77066734274871, 49.86, 22.0);\n path.closePath();\n path.moveTo(41.76, 25.5);\n path.lineTo(47.34, 30.5);\n path.moveTo(40.74, 26.65);\n path.lineTo(46.25, 31.71);\n };\n MiniCustomCombo.chartType = 'customCombo';\n return MiniCustomCombo;\n}(MiniChart));\n\nvar __extends$16 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$o = (undefined && undefined.__assign) || function () {\n __assign$o = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$o.apply(this, arguments);\n};\nvar __decorate$U = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar miniChartMapping = {\n columnGroup: {\n column: MiniColumn,\n stackedColumn: MiniStackedColumn,\n normalizedColumn: MiniNormalizedColumn\n },\n barGroup: {\n bar: MiniBar,\n stackedBar: MiniStackedBar,\n normalizedBar: MiniNormalizedBar\n },\n pieGroup: {\n pie: MiniPie,\n doughnut: MiniDoughnut\n },\n lineGroup: {\n line: MiniLine\n },\n scatterGroup: {\n scatter: MiniScatter,\n bubble: MiniBubble\n },\n areaGroup: {\n area: MiniArea,\n stackedArea: MiniStackedArea,\n normalizedArea: MiniNormalizedArea\n },\n histogramGroup: {\n histogram: MiniHistogram\n },\n combinationGroup: {\n columnLineCombo: MiniColumnLineCombo,\n areaColumnCombo: MiniAreaColumnCombo,\n customCombo: MiniCustomCombo\n }\n};\nvar MiniChartsContainer = /** @class */ (function (_super) {\n __extends$16(MiniChartsContainer, _super);\n function MiniChartsContainer(chartController, fills, strokes, chartGroups) {\n if (chartGroups === void 0) { chartGroups = DEFAULT_CHART_GROUPS; }\n var _this = _super.call(this, MiniChartsContainer.TEMPLATE) || this;\n _this.wrappers = {};\n _this.chartController = chartController;\n _this.fills = fills;\n _this.strokes = strokes;\n _this.chartGroups = __assign$o({}, chartGroups);\n return _this;\n }\n MiniChartsContainer.prototype.init = function () {\n var _this = this;\n // hide MiniCustomCombo if no custom combo exists\n if (!this.chartController.customComboExists() && this.chartGroups.combinationGroup) {\n this.chartGroups.combinationGroup = this.chartGroups.combinationGroup.filter(function (chartType) { return chartType !== 'customCombo'; });\n }\n var eGui = this.getGui();\n Object.keys(this.chartGroups).forEach(function (group) {\n var chartGroupValues = _this.chartGroups[group];\n var groupComponent = _this.createBean(new AgGroupComponent({\n title: _this.chartTranslationService.translate(group),\n suppressEnabledCheckbox: true,\n enabled: true,\n suppressOpenCloseIcons: true,\n cssIdentifier: 'charts-settings',\n direction: 'horizontal'\n }));\n chartGroupValues.forEach(function (chartType) {\n var _a;\n var MiniClass = (_a = miniChartMapping[group]) === null || _a === void 0 ? void 0 : _a[chartType];\n if (!MiniClass) {\n if (miniChartMapping[group]) {\n _.doOnce(function () { return console.warn(\"AG Grid - invalid chartGroupsDef config '\" + group + \".\" + chartType + \"'\"); }, \"invalid_chartGroupsDef\" + chartType + \"_\" + group);\n }\n else {\n _.doOnce(function () { return console.warn(\"AG Grid - invalid chartGroupsDef config '\" + group + \"'\"); }, \"invalid_chartGroupsDef\" + group);\n }\n return;\n }\n var miniWrapper = document.createElement('div');\n miniWrapper.classList.add('ag-chart-mini-thumbnail');\n var miniClassChartType = MiniClass.chartType;\n _this.addManagedListener(miniWrapper, 'click', function () {\n _this.chartController.setChartType(miniClassChartType);\n _this.updateSelectedMiniChart();\n });\n _this.wrappers[miniClassChartType] = miniWrapper;\n _this.createBean(new MiniClass(miniWrapper, _this.fills, _this.strokes));\n groupComponent.addItem(miniWrapper);\n });\n eGui.appendChild(groupComponent.getGui());\n });\n this.updateSelectedMiniChart();\n };\n MiniChartsContainer.prototype.updateSelectedMiniChart = function () {\n var selectedChartType = this.chartController.getChartType();\n for (var miniChartType in this.wrappers) {\n var miniChart = this.wrappers[miniChartType];\n var selected = miniChartType === selectedChartType;\n miniChart.classList.toggle('ag-selected', selected);\n }\n };\n MiniChartsContainer.TEMPLATE = \"
\";\n __decorate$U([\n Autowired('chartTranslationService')\n ], MiniChartsContainer.prototype, \"chartTranslationService\", void 0);\n __decorate$U([\n PostConstruct\n ], MiniChartsContainer.prototype, \"init\", null);\n return MiniChartsContainer;\n}(Component));\n\nvar __extends$15 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$T = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ChartSettingsPanel = /** @class */ (function (_super) {\n __extends$15(ChartSettingsPanel, _super);\n function ChartSettingsPanel(chartController) {\n var _this = _super.call(this, ChartSettingsPanel.TEMPLATE) || this;\n _this.miniChartsContainers = [];\n _this.cardItems = [];\n _this.activePaletteIndex = 0;\n _this.palettes = [];\n _this.themes = [];\n _this.chartController = chartController;\n return _this;\n }\n ChartSettingsPanel.prototype.postConstruct = function () {\n var _this = this;\n this.resetPalettes();\n this.ePrevBtn.insertAdjacentElement('afterbegin', _.createIconNoSpan('previous', this.gridOptionsService));\n this.eNextBtn.insertAdjacentElement('afterbegin', _.createIconNoSpan('next', this.gridOptionsService));\n this.addManagedListener(this.ePrevBtn, 'click', function () { return _this.setActivePalette(_this.getPrev(), 'left'); });\n this.addManagedListener(this.eNextBtn, 'click', function () { return _this.setActivePalette(_this.getNext(), 'right'); });\n // change the selected chart when a combo chart is modified via the data panel, i.e. the custom combo should be selected\n this.addManagedListener(this.chartController, ChartController.EVENT_CHART_TYPE_CHANGED, function () { return _this.resetPalettes(true); });\n this.addManagedListener(this.chartController, ChartController.EVENT_CHART_API_UPDATE, function () { return _this.resetPalettes(true); });\n this.scrollSelectedIntoView();\n };\n ChartSettingsPanel.prototype.scrollSelectedIntoView = function () {\n var _this = this;\n // the panel is not immediately visible due to the slide animation, so we add a\n // setTimeout to wait until the panel animation is over and is able to scroll\n setTimeout(function () {\n var isMiniChartsContainerVisible = function (miniChartsContainers) {\n return !miniChartsContainers.getGui().classList.contains('ag-hidden');\n };\n var currentMiniChartContainer = _this.miniChartsContainers.find(isMiniChartsContainerVisible);\n var currentChart = currentMiniChartContainer.getGui().querySelector('.ag-selected');\n if (currentChart) {\n var parent_1 = currentChart.offsetParent;\n if (parent_1) {\n _this.eMiniChartsContainer.scrollTo(0, parent_1.offsetTop);\n }\n }\n }, 250);\n };\n ChartSettingsPanel.prototype.resetPalettes = function (forceReset) {\n var _this = this;\n var _a, _b;\n var palettes = this.chartController.getPalettes();\n var chartGroups = (_b = (_a = this.gridOptionsService.get('chartToolPanelsDef')) === null || _a === void 0 ? void 0 : _a.settingsPanel) === null || _b === void 0 ? void 0 : _b.chartGroupsDef;\n if ((_.shallowCompare(palettes, this.palettes) && !forceReset) || this.isAnimating) {\n return;\n }\n this.palettes = palettes;\n this.themes = this.chartController.getThemes();\n this.activePaletteIndex = this.themes.findIndex(function (name) { return name === _this.chartController.getChartThemeName(); });\n this.cardItems = [];\n _.clearElement(this.eCardSelector);\n this.destroyMiniCharts();\n this.palettes.forEach(function (palette, index) {\n var isActivePalette = _this.activePaletteIndex === index;\n var fills = palette.fills, strokes = palette.strokes;\n var miniChartsContainer = _this.createBean(new MiniChartsContainer(_this.chartController, fills, strokes, chartGroups));\n _this.miniChartsContainers.push(miniChartsContainer);\n _this.eMiniChartsContainer.appendChild(miniChartsContainer.getGui());\n _this.addCardLink(index);\n if (isActivePalette) {\n miniChartsContainer.updateSelectedMiniChart();\n }\n else {\n miniChartsContainer.setDisplayed(false);\n }\n });\n _.setDisplayed(this.eNavBar, this.palettes.length > 1);\n _.radioCssClass(this.cardItems[this.activePaletteIndex], 'ag-selected', 'ag-not-selected');\n };\n ChartSettingsPanel.prototype.addCardLink = function (index) {\n var _this = this;\n var link = document.createElement('div');\n link.classList.add('ag-chart-settings-card-item');\n this.addManagedListener(link, 'click', function () {\n _this.setActivePalette(index, index < _this.activePaletteIndex ? 'left' : 'right');\n });\n this.eCardSelector.appendChild(link);\n this.cardItems.push(link);\n };\n ChartSettingsPanel.prototype.getPrev = function () {\n var prev = this.activePaletteIndex - 1;\n if (prev < 0) {\n prev = this.palettes.length - 1;\n }\n return prev;\n };\n ChartSettingsPanel.prototype.getNext = function () {\n var next = this.activePaletteIndex + 1;\n if (next >= this.palettes.length) {\n next = 0;\n }\n return next;\n };\n ChartSettingsPanel.prototype.setActivePalette = function (index, animationDirection) {\n var _this = this;\n if (this.isAnimating || this.activePaletteIndex === index) {\n return;\n }\n _.radioCssClass(this.cardItems[index], 'ag-selected', 'ag-not-selected');\n var currentPalette = this.miniChartsContainers[this.activePaletteIndex];\n var currentGui = currentPalette.getGui();\n var futurePalette = this.miniChartsContainers[index];\n var nextGui = futurePalette.getGui();\n currentPalette.updateSelectedMiniChart();\n futurePalette.updateSelectedMiniChart();\n var multiplier = animationDirection === 'left' ? -1 : 1;\n var final = nextGui.style.left = (_.getAbsoluteWidth(this.getGui()) * multiplier) + \"px\";\n this.activePaletteIndex = index;\n this.isAnimating = true;\n var animatingClass = 'ag-animating';\n futurePalette.setDisplayed(true);\n currentPalette.addCssClass(animatingClass);\n futurePalette.addCssClass(animatingClass);\n this.chartController.setChartThemeName(this.themes[index]);\n window.setTimeout(function () {\n currentGui.style.left = -parseFloat(final) + \"px\";\n nextGui.style.left = '0px';\n }, 0);\n window.setTimeout(function () {\n _this.isAnimating = false;\n currentPalette.removeCssClass(animatingClass);\n futurePalette.removeCssClass(animatingClass);\n currentPalette.setDisplayed(false);\n }, 300);\n };\n ChartSettingsPanel.prototype.destroyMiniCharts = function () {\n _.clearElement(this.eMiniChartsContainer);\n this.miniChartsContainers = this.destroyBeans(this.miniChartsContainers);\n };\n ChartSettingsPanel.prototype.destroy = function () {\n this.destroyMiniCharts();\n _super.prototype.destroy.call(this);\n };\n ChartSettingsPanel.TEMPLATE = \"
\\n
\\n
\\n
\\n \\n
\\n
\\n
\\n \\n
\\n
\\n
\";\n __decorate$T([\n Autowired('resizeObserverService')\n ], ChartSettingsPanel.prototype, \"resizeObserverService\", void 0);\n __decorate$T([\n RefSelector('eMiniChartsContainer')\n ], ChartSettingsPanel.prototype, \"eMiniChartsContainer\", void 0);\n __decorate$T([\n RefSelector('eNavBar')\n ], ChartSettingsPanel.prototype, \"eNavBar\", void 0);\n __decorate$T([\n RefSelector('eCardSelector')\n ], ChartSettingsPanel.prototype, \"eCardSelector\", void 0);\n __decorate$T([\n RefSelector('ePrevBtn')\n ], ChartSettingsPanel.prototype, \"ePrevBtn\", void 0);\n __decorate$T([\n RefSelector('eNextBtn')\n ], ChartSettingsPanel.prototype, \"eNextBtn\", void 0);\n __decorate$T([\n PostConstruct\n ], ChartSettingsPanel.prototype, \"postConstruct\", null);\n return ChartSettingsPanel;\n}(Component));\n\nvar __extends$14 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$S = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TabbedChartMenu = /** @class */ (function (_super) {\n __extends$14(TabbedChartMenu, _super);\n function TabbedChartMenu(params) {\n var _this = _super.call(this) || this;\n _this.tabs = [];\n var controller = params.controller, panels = params.panels, chartOptionsService = params.chartOptionsService;\n _this.chartController = controller;\n _this.chartOptionsService = chartOptionsService;\n _this.panels = panels;\n return _this;\n }\n TabbedChartMenu.prototype.init = function () {\n var _this = this;\n this.panels.forEach(function (panel) {\n var panelType = panel.replace('chart', '').toLowerCase();\n var _a = _this.createTab(panel, panelType, _this.getPanelClass(panelType)), comp = _a.comp, tab = _a.tab;\n _this.tabs.push(tab);\n _this.addDestroyFunc(function () { return _this.destroyBean(comp); });\n });\n this.tabbedLayout = new TabbedLayout({\n items: this.tabs,\n cssClass: 'ag-chart-tabbed-menu',\n keepScrollPosition: true\n });\n this.getContext().createBean(this.tabbedLayout);\n };\n TabbedChartMenu.prototype.createTab = function (name, title, TabPanelClass) {\n var eWrapperDiv = document.createElement('div');\n eWrapperDiv.classList.add('ag-chart-tab', \"ag-chart-\" + title);\n var comp = new TabPanelClass(this.chartController, this.chartOptionsService);\n this.getContext().createBean(comp);\n eWrapperDiv.appendChild(comp.getGui());\n var titleEl = document.createElement('div');\n var translatedTitle = this.chartTranslationService.translate(title);\n titleEl.innerText = translatedTitle;\n return {\n comp: comp,\n tab: {\n title: titleEl,\n titleLabel: translatedTitle,\n bodyPromise: AgPromise.resolve(eWrapperDiv),\n getScrollableContainer: function () {\n var scrollableContainer = eWrapperDiv.querySelector('.ag-scrollable-container');\n return (scrollableContainer || eWrapperDiv);\n },\n name: name\n }\n };\n };\n TabbedChartMenu.prototype.showTab = function (tab) {\n var tabItem = this.tabs[tab];\n this.tabbedLayout.showItem(tabItem);\n };\n TabbedChartMenu.prototype.getGui = function () {\n return this.tabbedLayout && this.tabbedLayout.getGui();\n };\n TabbedChartMenu.prototype.destroy = function () {\n if (this.parentComponent && this.parentComponent.isAlive()) {\n this.destroyBean(this.parentComponent);\n }\n _super.prototype.destroy.call(this);\n };\n TabbedChartMenu.prototype.getPanelClass = function (panelType) {\n switch (panelType) {\n case TabbedChartMenu.TAB_DATA:\n return ChartDataPanel;\n case TabbedChartMenu.TAB_FORMAT:\n return FormatPanel;\n default:\n return ChartSettingsPanel;\n }\n };\n TabbedChartMenu.TAB_DATA = 'data';\n TabbedChartMenu.TAB_FORMAT = 'format';\n __decorate$S([\n Autowired('chartTranslationService')\n ], TabbedChartMenu.prototype, \"chartTranslationService\", void 0);\n __decorate$S([\n PostConstruct\n ], TabbedChartMenu.prototype, \"init\", null);\n return TabbedChartMenu;\n}(Component));\n\nvar __extends$13 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$R = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$i = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$b = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar ChartMenu = /** @class */ (function (_super) {\n __extends$13(ChartMenu, _super);\n function ChartMenu(eChartContainer, eMenuPanelContainer, chartController, chartOptionsService) {\n var _this = _super.call(this, ChartMenu.TEMPLATE) || this;\n _this.eChartContainer = eChartContainer;\n _this.eMenuPanelContainer = eMenuPanelContainer;\n _this.chartController = chartController;\n _this.chartOptionsService = chartOptionsService;\n _this.buttons = {\n chartSettings: ['menu', function () { return _this.showMenu(_this.defaultPanel); }],\n chartData: ['menu', function () { return _this.showMenu(\"chartData\"); }],\n chartFormat: ['menu', function () { return _this.showMenu(\"chartFormat\"); }],\n chartLink: ['linked', function (e) { return _this.toggleDetached(e); }],\n chartUnlink: ['unlinked', function (e) { return _this.toggleDetached(e); }],\n chartDownload: ['save', function () { return _this.saveChart(); }]\n };\n _this.panels = [];\n _this.buttonListenersDestroyFuncs = [];\n _this.menuVisible = false;\n return _this;\n }\n ChartMenu.prototype.postConstruct = function () {\n var _this = this;\n this.createButtons();\n this.addManagedListener(this.eventService, Events.EVENT_CHART_CREATED, function (e) {\n var _a;\n if (e.chartId === _this.chartController.getChartId()) {\n var showDefaultToolPanel = Boolean((_a = _this.gridOptionsService.get('chartToolPanelsDef')) === null || _a === void 0 ? void 0 : _a.defaultToolPanel);\n if (showDefaultToolPanel) {\n _this.showMenu(_this.defaultPanel, false);\n }\n }\n });\n this.refreshMenuClasses();\n if (!this.gridOptionsService.is('suppressChartToolPanelsButton') && this.panels.length > 0) {\n this.getGui().classList.add('ag-chart-tool-panel-button-enable');\n this.addManagedListener(this.eHideButton, 'click', this.toggleMenu.bind(this));\n }\n this.addManagedListener(this.chartController, ChartController.EVENT_CHART_API_UPDATE, this.createButtons.bind(this));\n };\n ChartMenu.prototype.isVisible = function () {\n return this.menuVisible;\n };\n ChartMenu.prototype.getExtraPaddingDirections = function () {\n var _this = this;\n var topItems = ['chartLink', 'chartUnlink', 'chartDownload'];\n var rightItems = ['chartSettings', 'chartData', 'chartFormat'];\n var result = [];\n if (topItems.some(function (v) { return _this.chartToolbarOptions.includes(v); })) {\n result.push('top');\n }\n if (rightItems.some(function (v) { return _this.chartToolbarOptions.includes(v); })) {\n result.push(this.gridOptionsService.is('enableRtl') ? 'left' : 'right');\n }\n return result;\n };\n ChartMenu.prototype.getToolbarOptions = function () {\n var _this = this;\n var _a, _b, _c;\n var useChartToolPanelCustomisation = Boolean(this.gridOptionsService.get('chartToolPanelsDef'));\n if (useChartToolPanelCustomisation) {\n var defaultChartToolbarOptions = [\n this.chartController.isChartLinked() ? 'chartLink' : 'chartUnlink',\n 'chartDownload'\n ];\n var toolbarItemsFunc = this.gridOptionsService.getCallback('getChartToolbarItems');\n var params = {\n defaultItems: defaultChartToolbarOptions\n };\n var chartToolbarOptions = toolbarItemsFunc\n ? toolbarItemsFunc(params).filter(function (option) {\n if (!CHART_TOOLBAR_ALLOW_LIST.includes(option)) {\n var msg = CHART_TOOL_PANEL_ALLOW_LIST.includes(option)\n ? \"AG Grid: '\" + option + \"' is a Chart Tool Panel option and will be ignored since 'chartToolPanelsDef' is used. Please use 'chartToolPanelsDef.panels' grid option instead\"\n : \"AG Grid: '\" + option + \"' is not a valid Chart Toolbar Option\";\n console.warn(msg);\n return false;\n }\n return true;\n })\n : defaultChartToolbarOptions;\n var panelsOverride = (_b = (_a = this.gridOptionsService.get('chartToolPanelsDef')) === null || _a === void 0 ? void 0 : _a.panels) === null || _b === void 0 ? void 0 : _b.map(function (panel) {\n var menuOption = CHART_TOOL_PANEL_MENU_OPTIONS[panel];\n if (!menuOption) {\n console.warn(\"AG Grid - invalid panel in chartToolPanelsDef.panels: '\" + panel + \"'\");\n }\n return menuOption;\n }).filter(function (panel) { return Boolean(panel); });\n this.panels = panelsOverride\n ? panelsOverride\n : Object.values(CHART_TOOL_PANEL_MENU_OPTIONS);\n // pivot charts use the column tool panel instead of the data panel\n if (this.chartController.isPivotChart()) {\n this.panels = this.panels.filter(function (panel) { return panel !== 'chartData'; });\n }\n var defaultToolPanel = (_c = this.gridOptionsService.get('chartToolPanelsDef')) === null || _c === void 0 ? void 0 : _c.defaultToolPanel;\n this.defaultPanel = (defaultToolPanel && CHART_TOOL_PANEL_MENU_OPTIONS[defaultToolPanel]) || this.panels[0];\n return this.panels.length > 0\n // Only one panel is required to display menu icon in toolbar\n ? __spreadArray$b([this.panels[0]], __read$i(chartToolbarOptions)) : chartToolbarOptions;\n }\n else { // To be deprecated in future. Toolbar options will be different to chart tool panels.\n var tabOptions = [\n 'chartSettings',\n 'chartData',\n 'chartFormat',\n this.chartController.isChartLinked() ? 'chartLink' : 'chartUnlink',\n 'chartDownload'\n ];\n var toolbarItemsFunc = this.gridOptionsService.getCallback('getChartToolbarItems');\n if (toolbarItemsFunc) {\n var isLegacyToolbar_1 = this.gridOptionsService.is('suppressChartToolPanelsButton');\n var params = {\n defaultItems: isLegacyToolbar_1 ? tabOptions : CHART_TOOLBAR_ALLOW_LIST\n };\n tabOptions = toolbarItemsFunc(params).filter(function (option) {\n if (!_this.buttons[option]) {\n console.warn(\"AG Grid: '\" + option + \"' is not a valid Chart Toolbar Option\");\n return false;\n }\n // If not legacy, remove chart tool panel options here,\n // and add them all in one go below\n else if (!isLegacyToolbar_1 && CHART_TOOL_PANEL_ALLOW_LIST.includes(option)) {\n var msg = \"AG Grid: '\" + option + \"' is a Chart Tool Panel option and will be ignored. Please use 'chartToolPanelsDef.panels' grid option instead\";\n console.warn(msg);\n return false;\n }\n return true;\n });\n if (!isLegacyToolbar_1) {\n // Add all the chart tool panels, as `chartToolPanelsDef.panels`\n // should be used for configuration\n tabOptions = tabOptions.concat(CHART_TOOL_PANEL_ALLOW_LIST);\n }\n }\n // pivot charts use the column tool panel instead of the data panel\n if (this.chartController.isPivotChart()) {\n tabOptions = tabOptions.filter(function (option) { return option !== 'chartData'; });\n }\n var ignoreOptions_1 = ['chartUnlink', 'chartLink', 'chartDownload'];\n this.panels = tabOptions.filter(function (option) { return ignoreOptions_1.indexOf(option) === -1; });\n this.defaultPanel = this.panels[0];\n return tabOptions.filter(function (value) {\n return ignoreOptions_1.indexOf(value) !== -1 ||\n (_this.panels.length && value === _this.panels[0]);\n });\n }\n };\n ChartMenu.prototype.toggleDetached = function (e) {\n var target = e.target;\n var active = target.classList.contains('ag-icon-linked');\n target.classList.toggle('ag-icon-linked', !active);\n target.classList.toggle('ag-icon-unlinked', active);\n var tooltipKey = active ? 'chartUnlinkToolbarTooltip' : 'chartLinkToolbarTooltip';\n var tooltipTitle = this.chartTranslationService.translate(tooltipKey);\n if (tooltipTitle) {\n target.title = tooltipTitle;\n }\n this.chartController.detachChartRange();\n };\n ChartMenu.prototype.createButtons = function () {\n var _this = this;\n this.buttonListenersDestroyFuncs.forEach(function (func) { return func(); });\n this.buttonListenersDestroyFuncs = [];\n this.chartToolbarOptions = this.getToolbarOptions();\n var menuEl = this.eMenu;\n _.clearElement(menuEl);\n this.chartToolbarOptions.forEach(function (button) {\n var buttonConfig = _this.buttons[button];\n var _a = __read$i(buttonConfig, 2), iconName = _a[0], callback = _a[1];\n var buttonEl = _.createIconNoSpan(iconName, _this.gridOptionsService, undefined, true);\n buttonEl.classList.add('ag-chart-menu-icon');\n var tooltipTitle = _this.chartTranslationService.translate(button + 'ToolbarTooltip');\n if (tooltipTitle && buttonEl instanceof HTMLElement) {\n buttonEl.title = tooltipTitle;\n }\n _this.buttonListenersDestroyFuncs.push(_this.addManagedListener(buttonEl, 'click', callback));\n menuEl.appendChild(buttonEl);\n });\n };\n ChartMenu.prototype.saveChart = function () {\n var event = { type: ChartMenu.EVENT_DOWNLOAD_CHART };\n this.dispatchEvent(event);\n };\n ChartMenu.prototype.createMenuPanel = function (defaultTab) {\n var _this = this;\n var width = this.environment.chartMenuPanelWidth();\n var menuPanel = this.menuPanel = this.createBean(new AgPanel({\n minWidth: width,\n width: width,\n height: '100%',\n closable: true,\n hideTitleBar: true,\n cssIdentifier: 'chart-menu'\n }));\n menuPanel.setParentComponent(this);\n this.eMenuPanelContainer.appendChild(menuPanel.getGui());\n this.tabbedMenu = this.createBean(new TabbedChartMenu({\n controller: this.chartController,\n type: this.chartController.getChartType(),\n panels: this.panels,\n chartOptionsService: this.chartOptionsService\n }));\n this.addManagedListener(menuPanel, Component.EVENT_DESTROYED, function () { return _this.destroyBean(_this.tabbedMenu); });\n return new AgPromise(function (res) {\n window.setTimeout(function () {\n menuPanel.setBodyComponent(_this.tabbedMenu);\n _this.tabbedMenu.showTab(defaultTab);\n res(menuPanel);\n _this.addManagedListener(_this.eChartContainer, 'click', function (event) {\n if (_this.getGui().contains(event.target)) {\n return;\n }\n if (_this.menuVisible) {\n _this.hideMenu();\n }\n });\n }, 100);\n });\n };\n ChartMenu.prototype.showContainer = function () {\n if (!this.menuPanel) {\n return;\n }\n this.menuVisible = true;\n this.showParent(this.menuPanel.getWidth());\n this.refreshMenuClasses();\n };\n ChartMenu.prototype.toggleMenu = function () {\n this.menuVisible ? this.hideMenu() : this.showMenu();\n };\n ChartMenu.prototype.showMenu = function (\n /**\n * Menu panel to show. If empty, shows the existing menu, or creates the default menu if menu panel has not been created\n */\n panel, \n /**\n * Whether to animate the menu opening\n */\n animate) {\n var _this = this;\n if (animate === void 0) { animate = true; }\n if (!animate) {\n this.eMenuPanelContainer.classList.add('ag-no-transition');\n }\n if (this.menuPanel && !panel) {\n this.showContainer();\n }\n else {\n var menuPanel = panel || this.defaultPanel;\n var tab = this.panels.indexOf(menuPanel);\n if (tab < 0) {\n console.warn(\"AG Grid: '\" + panel + \"' is not a valid Chart Tool Panel name\");\n tab = this.panels.indexOf(this.defaultPanel);\n }\n if (this.menuPanel) {\n this.tabbedMenu.showTab(tab);\n this.showContainer();\n }\n else {\n this.createMenuPanel(tab).then(this.showContainer.bind(this));\n }\n }\n if (!animate) {\n // Wait for menu to render\n setTimeout(function () {\n if (!_this.isAlive()) {\n return;\n }\n _this.eMenuPanelContainer.classList.remove('ag-no-transition');\n }, 500);\n }\n };\n ChartMenu.prototype.hideMenu = function () {\n var _this = this;\n this.hideParent();\n window.setTimeout(function () {\n _this.menuVisible = false;\n _this.refreshMenuClasses();\n }, 500);\n };\n ChartMenu.prototype.refreshMenuClasses = function () {\n this.eChartContainer.classList.toggle('ag-chart-menu-visible', this.menuVisible);\n this.eChartContainer.classList.toggle('ag-chart-menu-hidden', !this.menuVisible);\n if (!this.gridOptionsService.is('suppressChartToolPanelsButton')) {\n this.eHideButtonIcon.classList.toggle('ag-icon-contracted', this.menuVisible);\n this.eHideButtonIcon.classList.toggle('ag-icon-expanded', !this.menuVisible);\n }\n };\n ChartMenu.prototype.showParent = function (width) {\n this.eMenuPanelContainer.style.minWidth = width + \"px\";\n };\n ChartMenu.prototype.hideParent = function () {\n this.eMenuPanelContainer.style.minWidth = '0';\n };\n ChartMenu.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (this.menuPanel && this.menuPanel.isAlive()) {\n this.destroyBean(this.menuPanel);\n }\n if (this.tabbedMenu && this.tabbedMenu.isAlive()) {\n this.destroyBean(this.tabbedMenu);\n }\n };\n ChartMenu.EVENT_DOWNLOAD_CHART = \"downloadChart\";\n ChartMenu.TEMPLATE = \"
\\n
\\n \\n
\";\n __decorate$R([\n Autowired('chartTranslationService')\n ], ChartMenu.prototype, \"chartTranslationService\", void 0);\n __decorate$R([\n RefSelector(\"eMenu\")\n ], ChartMenu.prototype, \"eMenu\", void 0);\n __decorate$R([\n RefSelector(\"eHideButton\")\n ], ChartMenu.prototype, \"eHideButton\", void 0);\n __decorate$R([\n RefSelector(\"eHideButtonIcon\")\n ], ChartMenu.prototype, \"eHideButtonIcon\", void 0);\n __decorate$R([\n PostConstruct\n ], ChartMenu.prototype, \"postConstruct\", null);\n return ChartMenu;\n}(Component));\n\nvar __extends$12 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$n = (undefined && undefined.__assign) || function () {\n __assign$n = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$n.apply(this, arguments);\n};\nvar __decorate$Q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __values$6 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar TitleEdit = /** @class */ (function (_super) {\n __extends$12(TitleEdit, _super);\n function TitleEdit(chartMenu) {\n var _this = _super.call(this, TitleEdit.TEMPLATE) || this;\n _this.chartMenu = chartMenu;\n _this.destroyableChartListeners = [];\n _this.editing = false;\n return _this;\n }\n TitleEdit.prototype.init = function () {\n var _this = this;\n this.addManagedListener(this.getGui(), 'keydown', function (e) {\n if (_this.editing && e.key === 'Enter' && !e.shiftKey) {\n _this.handleEndEditing();\n e.preventDefault();\n }\n });\n this.addManagedListener(this.getGui(), 'input', function () {\n if (_this.editing) {\n _this.updateHeight();\n }\n });\n this.addManagedListener(this.getGui(), 'blur', function () { return _this.endEditing(); });\n };\n /* should be called when the containing component changes to a new chart proxy */\n TitleEdit.prototype.refreshTitle = function (chartController, chartOptionsService) {\n var e_1, _a;\n var _this = this;\n this.chartController = chartController;\n this.chartOptionsService = chartOptionsService;\n try {\n for (var _b = __values$6(this.destroyableChartListeners), _c = _b.next(); !_c.done; _c = _b.next()) {\n var destroyFn = _c.value;\n destroyFn();\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n this.destroyableChartListeners = [];\n var chartProxy = this.chartController.getChartProxy();\n var chart = chartProxy.getChart();\n var canvas = chart.scene.canvas.element;\n var destroyDbleClickListener = this.addManagedListener(canvas, 'dblclick', function (event) {\n var title = chart.title;\n if (title && title.node.containsPoint(event.offsetX, event.offsetY)) {\n var bbox = title.node.computeBBox();\n var xy = title.node.inverseTransformPoint(bbox.x, bbox.y);\n _this.startEditing(__assign$n(__assign$n({}, bbox), xy), canvas.width);\n }\n });\n var wasInTitle = false;\n var destroyMouseMoveListener = this.addManagedListener(canvas, 'mousemove', function (event) {\n var title = chart.title;\n var inTitle = !!(title && title.enabled && title.node.containsPoint(event.offsetX, event.offsetY));\n if (wasInTitle !== inTitle) {\n canvas.style.cursor = inTitle ? 'pointer' : '';\n }\n wasInTitle = inTitle;\n });\n this.destroyableChartListeners = [\n destroyDbleClickListener,\n destroyMouseMoveListener\n ];\n };\n TitleEdit.prototype.startEditing = function (titleBBox, canvasWidth) {\n if (this.chartMenu && this.chartMenu.isVisible()) {\n // currently, we ignore requests to edit the chart title while the chart menu is showing\n // because the click to edit the chart will also close the chart menu, making the position\n // of the title change.\n return;\n }\n if (this.editing) {\n return;\n }\n this.editing = true;\n var minimumTargetInputWidth = 300;\n var inputWidth = Math.max(Math.min(titleBBox.width + 20, canvasWidth), minimumTargetInputWidth);\n var element = this.getGui();\n element.classList.add('currently-editing');\n var inputStyle = element.style;\n // match style of input to title that we're editing\n inputStyle.fontFamily = this.chartOptionsService.getChartOption('title.fontFamily');\n inputStyle.fontWeight = this.chartOptionsService.getChartOption('title.fontWeight');\n inputStyle.fontStyle = this.chartOptionsService.getChartOption('title.fontStyle');\n inputStyle.fontSize = this.chartOptionsService.getChartOption('title.fontSize') + 'px';\n inputStyle.color = this.chartOptionsService.getChartOption('title.color');\n // populate the input with the title, unless the title is the placeholder:\n var oldTitle = this.chartOptionsService.getChartOption('title.text');\n var isTitlePlaceholder = oldTitle === this.chartTranslationService.translate('titlePlaceholder');\n element.value = isTitlePlaceholder ? '' : oldTitle;\n var oldTitleLines = oldTitle.split(/\\r?\\n/g).length;\n inputStyle.left = Math.round(titleBBox.x + titleBBox.width / 2 - inputWidth / 2 - 1) + 'px';\n inputStyle.top = Math.round(titleBBox.y + titleBBox.height / 2 - (oldTitleLines * this.getLineHeight()) / 2 - 2) + 'px';\n inputStyle.width = Math.round(inputWidth) + 'px';\n inputStyle.lineHeight = this.getLineHeight() + 'px';\n this.updateHeight();\n element.focus();\n };\n TitleEdit.prototype.updateHeight = function () {\n var element = this.getGui();\n // The element should cover the title and provide enough space for the new one.\n var oldTitleLines = this.chartOptionsService.getChartOption('title.text').split(/\\r?\\n/g).length;\n var currentTitleLines = element.value.split(/\\r?\\n/g).length;\n element.style.height = (Math.round(Math.max(oldTitleLines, currentTitleLines) * this.getLineHeight()) + 4) + 'px';\n };\n TitleEdit.prototype.getLineHeight = function () {\n var fixedLineHeight = this.chartOptionsService.getChartOption('title.lineHeight');\n if (fixedLineHeight) {\n return parseInt(fixedLineHeight);\n }\n return Math.round(parseInt(this.chartOptionsService.getChartOption('title.fontSize')) * 1.2);\n };\n TitleEdit.prototype.handleEndEditing = function () {\n // special handling to avoid flicker caused by delay when swapping old and new titles\n var _this = this;\n // 1 - store current title color\n var titleColor = this.chartOptionsService.getChartOption('title.color');\n // 2 - hide title by making it transparent\n var transparentColor = 'rgba(0, 0, 0, 0)';\n this.chartOptionsService.setChartOption('title.color', transparentColor);\n // 3 - trigger 'end editing' - this will update the chart with the new title\n this.chartOptionsService.awaitChartOptionUpdate(function () { return _this.endEditing(); });\n // 4 - restore title color to its original value\n this.chartOptionsService.awaitChartOptionUpdate(function () {\n _this.chartOptionsService.setChartOption('title.color', titleColor);\n });\n };\n TitleEdit.prototype.endEditing = function () {\n var _this = this;\n if (!this.editing) {\n return;\n }\n this.editing = false;\n var value = this.getGui().value;\n if (value && value.trim() !== '') {\n this.chartOptionsService.setChartOption('title.text', value);\n this.chartOptionsService.setChartOption('title.enabled', true);\n }\n else {\n this.chartOptionsService.setChartOption('title.text', '');\n this.chartOptionsService.setChartOption('title.enabled', false);\n }\n this.getGui().classList.remove('currently-editing');\n // await chart updates so `chartTitleEdit` event consumers can read the new state correctly\n this.chartOptionsService.awaitChartOptionUpdate(function () {\n _this.eventService.dispatchEvent({ type: 'chartTitleEdit' });\n });\n };\n TitleEdit.TEMPLATE = \"\\n \";\n __decorate$Q([\n Autowired('chartTranslationService')\n ], TitleEdit.prototype, \"chartTranslationService\", void 0);\n __decorate$Q([\n PostConstruct\n ], TitleEdit.prototype, \"init\", null);\n return TitleEdit;\n}(Component));\n\nvar __extends$11 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$P = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ChartDatasource = /** @class */ (function (_super) {\n __extends$11(ChartDatasource, _super);\n function ChartDatasource() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ChartDatasource.prototype.getData = function (params) {\n if (params.crossFiltering) {\n if (params.grouping) {\n console.warn(\"AG Grid: crossing filtering with row grouping is not supported.\");\n return { chartData: [], columnNames: {} };\n }\n if (!this.gridOptionsService.isRowModelType('clientSide')) {\n console.warn(\"AG Grid: crossing filtering is only supported in the client side row model.\");\n return { chartData: [], columnNames: {} };\n }\n }\n var isServerSide = this.gridOptionsService.isRowModelType('serverSide');\n if (isServerSide && params.pivoting) {\n this.updatePivotKeysForSSRM();\n }\n var result = this.extractRowsFromGridRowModel(params);\n result.chartData = this.aggregateRowsByDimension(params, result.chartData);\n return result;\n };\n ChartDatasource.prototype.extractRowsFromGridRowModel = function (params) {\n var _this = this;\n var extractedRowData = [];\n var columnNames = {};\n // maps used to keep track of expanded groups that need to be removed\n var groupNodeIndexes = {};\n var groupsToRemove = {};\n // only used when cross filtering\n var filteredNodes = {};\n var allRowNodes = [];\n var numRows;\n if (params.crossFiltering) {\n filteredNodes = this.getFilteredRowNodes();\n allRowNodes = this.getAllRowNodes();\n numRows = allRowNodes.length;\n }\n else {\n // make sure enough rows in range to chart. if user filters and less rows, then end row will be\n // the last displayed row, not where the range ends.\n var modelLastRow = this.gridRowModel.getRowCount() - 1;\n var rangeLastRow = params.endRow >= 0 ? Math.min(params.endRow, modelLastRow) : modelLastRow;\n numRows = rangeLastRow - params.startRow + 1;\n }\n var _loop_1 = function (i) {\n var data = {};\n var rowNode = params.crossFiltering ? allRowNodes[i] : this_1.gridRowModel.getRow(i + params.startRow);\n // first get data for dimensions columns\n params.dimensionCols.forEach(function (col) {\n var colId = col.colId;\n var column = _this.columnModel.getGridColumn(colId);\n if (column) {\n var valueObject = _this.valueService.getValue(column, rowNode);\n // when grouping we also need to build up multi category labels for charts\n if (params.grouping) {\n var valueString = valueObject && valueObject.toString ? String(valueObject.toString()) : '';\n // traverse parents to extract group label path\n var labels = ChartDatasource.getGroupLabels(rowNode, valueString);\n data[colId] = {\n labels: labels,\n toString: function () {\n return this.labels.filter(function (l) { return !!l; }).reverse().join(' - ');\n }\n };\n // keep track of group node indexes, so they can be padded when other groups are expanded\n if (rowNode.group) {\n groupNodeIndexes[labels.toString()] = i;\n }\n // if node (group or leaf) has parents then it is expanded and should be removed\n var groupKey = labels.slice(1, labels.length).toString();\n if (groupKey) {\n groupsToRemove[groupKey] = groupNodeIndexes[groupKey];\n }\n }\n else {\n // leaf nodes can be directly added to dimension columns\n data[colId] = valueObject;\n }\n }\n else {\n // introduce a default category when no dimensions exist with a value based off row index (+1)\n data[ChartDataModel.DEFAULT_CATEGORY] = i + 1;\n }\n });\n // then get data for value columns\n params.valueCols.forEach(function (col) {\n var columnNamesArr = [];\n // pivot keys should be added first\n var pivotKeys = col.getColDef().pivotKeys;\n if (pivotKeys) {\n columnNamesArr = pivotKeys.slice();\n }\n // then add column header name to results\n var headerName = col.getColDef().headerName;\n if (headerName) {\n columnNamesArr.push(headerName);\n }\n // add array of column names to results\n if (columnNamesArr.length > 0) {\n columnNames[col.getId()] = columnNamesArr;\n }\n var colId = col.getColId();\n if (params.crossFiltering) {\n var filteredOutColId = colId + '-filtered-out';\n // add data value to value column\n var value = _this.valueService.getValue(col, rowNode);\n var actualValue = value != null && typeof value.toNumber === 'function' ? value.toNumber() : value;\n if (filteredNodes[rowNode.id]) {\n data[colId] = actualValue;\n data[filteredOutColId] = params.aggFunc || params.isScatter ? undefined : 0;\n }\n else {\n data[colId] = params.aggFunc || params.isScatter ? undefined : 0;\n data[filteredOutColId] = actualValue;\n }\n }\n else {\n // add data value to value column\n var value = _this.valueService.getValue(col, rowNode);\n // aggregated value\n if (value && value.hasOwnProperty('toString')) {\n value = parseFloat(value.toString());\n }\n data[colId] = value != null && typeof value.toNumber === 'function' ? value.toNumber() : value;\n }\n });\n // row data from footer nodes should not be included in charts\n if (rowNode.footer) {\n // 'stamping' data as footer to avoid impacting previously calculated `groupIndexesToRemove` and will\n // be removed from the results along with any expanded group nodes\n data.footer = true;\n }\n // add data to results\n extractedRowData.push(data);\n };\n var this_1 = this;\n for (var i = 0; i < numRows; i++) {\n _loop_1(i);\n }\n if (params.grouping) {\n var groupIndexesToRemove_1 = _.values(groupsToRemove);\n var filterFunc = function (data, index) { return !data.footer && !_.includes(groupIndexesToRemove_1, index); };\n extractedRowData = extractedRowData.filter(filterFunc);\n }\n return { chartData: extractedRowData, columnNames: columnNames };\n };\n ChartDatasource.prototype.aggregateRowsByDimension = function (params, dataFromGrid) {\n var _this = this;\n var dimensionCols = params.dimensionCols;\n if (!params.aggFunc || dimensionCols.length === 0) {\n return dataFromGrid;\n }\n var lastCol = _.last(dimensionCols);\n var lastColId = lastCol && lastCol.colId;\n var map = {};\n var dataAggregated = [];\n dataFromGrid.forEach(function (data) {\n var currentMap = map;\n dimensionCols.forEach(function (col) {\n var colId = col.colId;\n var key = data[colId];\n if (colId === lastColId) {\n var groupItem_1 = currentMap[key];\n if (!groupItem_1) {\n groupItem_1 = { __children: [] };\n dimensionCols.forEach(function (dimCol) {\n var dimColId = dimCol.colId;\n groupItem_1[dimColId] = data[dimColId];\n });\n currentMap[key] = groupItem_1;\n dataAggregated.push(groupItem_1);\n }\n groupItem_1.__children.push(data);\n }\n else {\n // map of maps\n if (!currentMap[key]) {\n currentMap[key] = {};\n }\n currentMap = currentMap[key];\n }\n });\n });\n if (ModuleRegistry.__assertRegistered(ModuleNames.RowGroupingModule, 'Charting Aggregation', this.context.getGridId())) {\n dataAggregated.forEach(function (groupItem) { return params.valueCols.forEach(function (col) {\n if (params.crossFiltering) {\n params.valueCols.forEach(function (valueCol) {\n var colId = valueCol.getColId();\n // filtered data\n var dataToAgg = groupItem.__children\n .filter(function (child) { return typeof child[colId] !== 'undefined'; })\n .map(function (child) { return child[colId]; });\n var aggResult = _this.aggregationStage.aggregateValues(dataToAgg, params.aggFunc);\n groupItem[valueCol.getId()] = aggResult && typeof aggResult.value !== 'undefined' ? aggResult.value : aggResult;\n // filtered out data\n var filteredOutColId = colId + \"-filtered-out\";\n var dataToAggFiltered = groupItem.__children\n .filter(function (child) { return typeof child[filteredOutColId] !== 'undefined'; })\n .map(function (child) { return child[filteredOutColId]; });\n var aggResultFiltered = _this.aggregationStage.aggregateValues(dataToAggFiltered, params.aggFunc);\n groupItem[filteredOutColId] = aggResultFiltered && typeof aggResultFiltered.value !== 'undefined' ? aggResultFiltered.value : aggResultFiltered;\n });\n }\n else {\n var dataToAgg = groupItem.__children.map(function (child) { return child[col.getId()]; });\n var aggResult = 0;\n if (ModuleRegistry.__assertRegistered(ModuleNames.RowGroupingModule, 'Charting Aggregation', _this.context.getGridId())) {\n aggResult = _this.aggregationStage.aggregateValues(dataToAgg, params.aggFunc);\n }\n groupItem[col.getId()] = aggResult && typeof aggResult.value !== 'undefined' ? aggResult.value : aggResult;\n }\n }); });\n }\n return dataAggregated;\n };\n ChartDatasource.prototype.updatePivotKeysForSSRM = function () {\n var secondaryColumns = this.columnModel.getSecondaryColumns();\n if (!secondaryColumns) {\n return;\n }\n // we don't know what the application will use for the pivot key separator (i.e. '_' or '|' ) as the\n // secondary columns are provided to grid by the application via columnApi.setSecondaryColumns()\n var pivotKeySeparator = this.extractPivotKeySeparator(secondaryColumns);\n // `pivotKeys` is not used by the SSRM for pivoting, so it is safe to reuse this colDef property. This way\n // the same logic can be used for CSRM and SSRM to extract legend names in extractRowsFromGridRowModel()\n secondaryColumns.forEach(function (col) {\n if (pivotKeySeparator === '') {\n col.getColDef().pivotKeys = [];\n }\n else {\n var keys = col.getColId().split(pivotKeySeparator);\n col.getColDef().pivotKeys = keys.slice(0, keys.length - 1);\n }\n });\n };\n ChartDatasource.prototype.extractPivotKeySeparator = function (secondaryColumns) {\n if (secondaryColumns.length === 0) {\n return '';\n }\n var extractSeparator = function (columnGroup, childId) {\n var groupId = columnGroup.getGroupId();\n if (!columnGroup.getParent()) {\n // removing groupId ('2000') from childId ('2000|Swimming') yields '|Swimming' so first char is separator\n return childId.split(groupId)[1][0];\n }\n return extractSeparator(columnGroup.getParent(), groupId);\n };\n var firstSecondaryCol = secondaryColumns[0];\n if (firstSecondaryCol.getParent() == null) {\n return '';\n }\n return extractSeparator(firstSecondaryCol.getParent(), firstSecondaryCol.getColId());\n };\n ChartDatasource.getGroupLabels = function (rowNode, initialLabel) {\n var labels = [initialLabel];\n while (rowNode && rowNode.level !== 0) {\n rowNode = rowNode.parent;\n if (rowNode) {\n labels.push(rowNode.key);\n }\n }\n return labels;\n };\n ChartDatasource.prototype.getFilteredRowNodes = function () {\n var filteredNodes = {};\n this.gridRowModel.forEachNodeAfterFilterAndSort(function (rowNode) {\n filteredNodes[rowNode.id] = rowNode;\n });\n return filteredNodes;\n };\n ChartDatasource.prototype.getAllRowNodes = function () {\n var allRowNodes = [];\n this.gridRowModel.forEachNode(function (rowNode) {\n allRowNodes.push(rowNode);\n });\n return this.sortRowNodes(allRowNodes);\n };\n ChartDatasource.prototype.sortRowNodes = function (rowNodes) {\n var sortOptions = this.sortController.getSortOptions();\n var noSort = !sortOptions || sortOptions.length == 0;\n if (noSort)\n return rowNodes;\n return this.rowNodeSorter.doFullSort(rowNodes, sortOptions);\n };\n __decorate$P([\n Autowired('rowModel')\n ], ChartDatasource.prototype, \"gridRowModel\", void 0);\n __decorate$P([\n Autowired('valueService')\n ], ChartDatasource.prototype, \"valueService\", void 0);\n __decorate$P([\n Autowired('columnModel')\n ], ChartDatasource.prototype, \"columnModel\", void 0);\n __decorate$P([\n Autowired('rowNodeSorter')\n ], ChartDatasource.prototype, \"rowNodeSorter\", void 0);\n __decorate$P([\n Autowired('sortController')\n ], ChartDatasource.prototype, \"sortController\", void 0);\n __decorate$P([\n Optional('aggregationStage')\n ], ChartDatasource.prototype, \"aggregationStage\", void 0);\n return ChartDatasource;\n}(BeanStub));\n\nvar __extends$10 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$O = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ChartColumnService = /** @class */ (function (_super) {\n __extends$10(ChartColumnService, _super);\n function ChartColumnService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ChartColumnService.prototype.getColumn = function (colId) {\n return this.columnModel.getPrimaryColumn(colId);\n };\n ChartColumnService.prototype.getAllDisplayedColumns = function () {\n return this.columnModel.getAllDisplayedColumns();\n };\n ChartColumnService.prototype.getColDisplayName = function (col) {\n return this.columnModel.getDisplayNameForColumn(col, 'chart');\n };\n ChartColumnService.prototype.getRowGroupColumns = function () {\n return this.columnModel.getRowGroupColumns();\n };\n ChartColumnService.prototype.getGroupDisplayColumns = function () {\n return this.columnModel.getGroupDisplayColumns();\n };\n ChartColumnService.prototype.isPivotMode = function () {\n return this.columnModel.isPivotMode();\n };\n ChartColumnService.prototype.isPivotActive = function () {\n return this.columnModel.isPivotActive();\n };\n ChartColumnService.prototype.getChartColumns = function () {\n var _this = this;\n var displayedCols = this.columnModel.getAllDisplayedColumns();\n var dimensionCols = new Set();\n var valueCols = new Set();\n displayedCols.forEach(function (col) {\n var colDef = col.getColDef();\n var chartDataType = colDef.chartDataType;\n if (chartDataType) {\n // chart data type was specified explicitly\n switch (chartDataType) {\n case 'category':\n case 'time':\n dimensionCols.add(col);\n return;\n case 'series':\n valueCols.add(col);\n return;\n case 'excluded':\n return;\n default:\n console.warn(\"AG Grid: unexpected chartDataType value '\" + chartDataType + \"' supplied, instead use 'category', 'series' or 'excluded'\");\n break;\n }\n }\n if (colDef.colId === 'ag-Grid-AutoColumn') {\n dimensionCols.add(col);\n return;\n }\n if (!col.isPrimary()) {\n valueCols.add(col);\n return;\n }\n // if 'chartDataType' is not provided then infer type based data contained in first row\n (_this.isNumberCol(col) ? valueCols : dimensionCols).add(col);\n });\n return { dimensionCols: dimensionCols, valueCols: valueCols };\n };\n ChartColumnService.prototype.isNumberCol = function (col) {\n if (col.getColId() === 'ag-Grid-AutoColumn') {\n return false;\n }\n var row = this.rowRenderer.getRowNode({ rowIndex: 0, rowPinned: null });\n if (!row) {\n return false;\n }\n var cellValue = this.valueService.getValue(col, row);\n if (cellValue == null) {\n cellValue = this.extractLeafData(row, col);\n }\n if (cellValue != null && typeof cellValue.toNumber === 'function') {\n cellValue = cellValue.toNumber();\n }\n return typeof cellValue === 'number';\n };\n ChartColumnService.prototype.extractLeafData = function (row, col) {\n if (!row.allLeafChildren) {\n return null;\n }\n for (var i = 0; i < row.allLeafChildren.length; i++) {\n var childRow = row.allLeafChildren[i];\n var value = this.valueService.getValue(col, childRow);\n if (value != null) {\n return value;\n }\n }\n return null;\n };\n __decorate$O([\n Autowired('columnModel')\n ], ChartColumnService.prototype, \"columnModel\", void 0);\n __decorate$O([\n Autowired('valueService')\n ], ChartColumnService.prototype, \"valueService\", void 0);\n __decorate$O([\n Autowired('rowRenderer')\n ], ChartColumnService.prototype, \"rowRenderer\", void 0);\n ChartColumnService = __decorate$O([\n Bean(\"chartColumnService\")\n ], ChartColumnService);\n return ChartColumnService;\n}(BeanStub));\n\nvar __extends$$ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$N = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ComboChartModel = /** @class */ (function (_super) {\n __extends$$(ComboChartModel, _super);\n function ComboChartModel(chartDataModel) {\n var _a;\n var _this = _super.call(this) || this;\n // this control flag is used to only log warning for the initial user config\n _this.suppressComboChartWarnings = false;\n _this.chartDataModel = chartDataModel;\n _this.seriesChartTypes = (_a = chartDataModel.params.seriesChartTypes) !== null && _a !== void 0 ? _a : [];\n return _this;\n }\n ComboChartModel.prototype.init = function () {\n this.initComboCharts();\n };\n ComboChartModel.prototype.update = function (seriesChartTypes) {\n this.seriesChartTypes = seriesChartTypes !== null && seriesChartTypes !== void 0 ? seriesChartTypes : this.seriesChartTypes;\n this.initComboCharts();\n this.updateSeriesChartTypes();\n };\n ComboChartModel.prototype.initComboCharts = function () {\n var seriesChartTypesExist = this.seriesChartTypes && this.seriesChartTypes.length > 0;\n var customCombo = this.chartDataModel.chartType === 'customCombo' || seriesChartTypesExist;\n if (customCombo) {\n // it is not necessary to supply a chart type for combo charts when `seriesChartTypes` is supplied\n this.chartDataModel.chartType = 'customCombo';\n // cache supplied `seriesChartTypes` to allow switching between different chart types in the settings panel\n this.savedCustomSeriesChartTypes = this.seriesChartTypes || [];\n }\n };\n ComboChartModel.prototype.updateSeriesChartTypes = function () {\n if (!this.chartDataModel.isComboChart()) {\n return;\n }\n // ensure primary only chart types are not placed on secondary axis\n this.seriesChartTypes = this.seriesChartTypes.map(function (seriesChartType) {\n var primaryOnly = ['groupedColumn', 'stackedColumn', 'stackedArea'].includes(seriesChartType.chartType);\n seriesChartType.secondaryAxis = primaryOnly ? false : seriesChartType.secondaryAxis;\n return seriesChartType;\n });\n // note that when seriesChartTypes are supplied the chart type is also changed to 'customCombo'\n if (this.chartDataModel.chartType === 'customCombo') {\n this.updateSeriesChartTypesForCustomCombo();\n return;\n }\n this.updateChartSeriesTypesForBuiltInCombos();\n };\n ComboChartModel.prototype.updateSeriesChartTypesForCustomCombo = function () {\n var _this = this;\n var seriesChartTypesSupplied = this.seriesChartTypes && this.seriesChartTypes.length > 0;\n if (!seriesChartTypesSupplied && !this.suppressComboChartWarnings) {\n console.warn(\"AG Grid: 'seriesChartTypes' are required when the 'customCombo' chart type is specified.\");\n }\n // ensure correct chartTypes are supplied\n this.seriesChartTypes = this.seriesChartTypes.map(function (s) {\n if (!ComboChartModel.SUPPORTED_COMBO_CHART_TYPES.includes(s.chartType)) {\n console.warn(\"AG Grid: invalid chartType '\" + s.chartType + \"' supplied in 'seriesChartTypes', converting to 'line' instead.\");\n s.chartType = 'line';\n }\n return s;\n });\n var getSeriesChartType = function (valueCol) {\n if (!_this.savedCustomSeriesChartTypes || _this.savedCustomSeriesChartTypes.length === 0) {\n _this.savedCustomSeriesChartTypes = _this.seriesChartTypes;\n }\n var providedSeriesChartType = _this.savedCustomSeriesChartTypes.find(function (s) { return s.colId === valueCol.colId; });\n if (!providedSeriesChartType) {\n if (valueCol.selected && !_this.suppressComboChartWarnings) {\n console.warn(\"AG Grid: no 'seriesChartType' found for colId = '\" + valueCol.colId + \"', defaulting to 'line'.\");\n }\n return {\n colId: valueCol.colId,\n chartType: 'line',\n secondaryAxis: false\n };\n }\n return providedSeriesChartType;\n };\n var updatedSeriesChartTypes = this.chartDataModel.valueColState.map(getSeriesChartType);\n this.seriesChartTypes = updatedSeriesChartTypes;\n // also cache custom `seriesChartTypes` to allow for switching between different chart types\n this.savedCustomSeriesChartTypes = updatedSeriesChartTypes;\n // turn off warnings as first combo chart attempt has completed\n this.suppressComboChartWarnings = true;\n };\n ComboChartModel.prototype.updateChartSeriesTypesForBuiltInCombos = function () {\n var _a = this.chartDataModel, chartType = _a.chartType, valueColState = _a.valueColState;\n var primaryChartType = chartType === 'columnLineCombo' ? 'groupedColumn' : 'stackedArea';\n var secondaryChartType = chartType === 'columnLineCombo' ? 'line' : 'groupedColumn';\n var selectedCols = valueColState.filter(function (cs) { return cs.selected; });\n var lineIndex = Math.ceil(selectedCols.length / 2);\n this.seriesChartTypes = selectedCols.map(function (valueCol, i) {\n var seriesType = (i >= lineIndex) ? secondaryChartType : primaryChartType;\n return { colId: valueCol.colId, chartType: seriesType, secondaryAxis: false };\n });\n };\n ComboChartModel.SUPPORTED_COMBO_CHART_TYPES = ['line', 'groupedColumn', 'stackedColumn', 'area', 'stackedArea'];\n __decorate$N([\n PostConstruct\n ], ComboChartModel.prototype, \"init\", null);\n return ComboChartModel;\n}(BeanStub));\n\nvar __extends$_ = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$m = (undefined && undefined.__assign) || function () {\n __assign$m = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$m.apply(this, arguments);\n};\nvar __decorate$M = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$h = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$a = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar ChartDataModel = /** @class */ (function (_super) {\n __extends$_(ChartDataModel, _super);\n function ChartDataModel(params) {\n var _this = _super.call(this) || this;\n _this.unlinked = false;\n _this.chartData = [];\n _this.valueColState = [];\n _this.dimensionColState = [];\n _this.columnNames = {};\n _this.crossFiltering = false;\n _this.grouping = false;\n _this.params = params;\n _this.chartId = params.chartId;\n _this.chartType = params.chartType;\n _this.pivotChart = params.pivotChart;\n _this.chartThemeName = params.chartThemeName;\n _this.aggFunc = params.aggFunc;\n _this.referenceCellRange = params.cellRange;\n _this.suppliedCellRange = params.cellRange;\n _this.suppressChartRanges = params.suppressChartRanges;\n _this.unlinked = !!params.unlinkChart;\n _this.crossFiltering = !!params.crossFiltering;\n return _this;\n }\n ChartDataModel.prototype.init = function () {\n this.datasource = this.createManagedBean(new ChartDatasource());\n this.chartColumnService = this.createManagedBean(new ChartColumnService());\n this.comboChartModel = this.createManagedBean(new ComboChartModel(this));\n this.updateCellRanges();\n this.updateData();\n };\n ChartDataModel.prototype.updateModel = function (params) {\n var cellRange = params.cellRange, chartType = params.chartType, pivotChart = params.pivotChart, chartThemeName = params.chartThemeName, aggFunc = params.aggFunc, suppressChartRanges = params.suppressChartRanges, unlinkChart = params.unlinkChart, crossFiltering = params.crossFiltering, seriesChartTypes = params.seriesChartTypes;\n if (cellRange !== this.suppliedCellRange) {\n this.dimensionCellRange = undefined;\n this.valueCellRange = undefined;\n }\n this.chartType = chartType;\n this.pivotChart = pivotChart;\n this.chartThemeName = chartThemeName;\n this.aggFunc = aggFunc;\n this.referenceCellRange = cellRange;\n this.suppliedCellRange = cellRange;\n this.suppressChartRanges = suppressChartRanges;\n this.unlinked = !!unlinkChart;\n this.crossFiltering = !!crossFiltering;\n this.updateSelectedDimension(cellRange === null || cellRange === void 0 ? void 0 : cellRange.columns);\n this.updateCellRanges();\n var shouldUpdateComboModel = this.isComboChart() || seriesChartTypes;\n if (shouldUpdateComboModel) {\n this.comboChartModel.update(seriesChartTypes);\n }\n if (!this.unlinked) {\n this.updateData();\n }\n };\n ChartDataModel.prototype.updateCellRanges = function (updatedColState) {\n if (this.valueCellRange) {\n this.referenceCellRange = this.valueCellRange;\n }\n var _a = this.chartColumnService.getChartColumns(), dimensionCols = _a.dimensionCols, valueCols = _a.valueCols;\n var allColsFromRanges = this.getAllColumnsFromRanges();\n if (updatedColState) {\n this.updateColumnState(updatedColState);\n }\n this.setDimensionCellRange(dimensionCols, allColsFromRanges, updatedColState);\n this.setValueCellRange(valueCols, allColsFromRanges, updatedColState);\n if (!updatedColState) {\n this.resetColumnState();\n // dimension / category cell range could be out of sync after resetting column state when row grouping\n this.syncDimensionCellRange();\n }\n this.comboChartModel.updateSeriesChartTypes();\n };\n ChartDataModel.prototype.updateData = function () {\n var _a = this.getRowIndexes(), startRow = _a.startRow, endRow = _a.endRow;\n if (this.pivotChart) {\n this.resetColumnState();\n }\n this.grouping = this.isGrouping();\n var params = {\n aggFunc: this.aggFunc,\n dimensionCols: [this.getSelectedDimension()],\n grouping: this.grouping,\n pivoting: this.isPivotActive(),\n crossFiltering: this.crossFiltering,\n valueCols: this.getSelectedValueCols(),\n startRow: startRow,\n endRow: endRow,\n isScatter: _.includes(['scatter', 'bubble'], this.chartType)\n };\n var _b = this.datasource.getData(params), chartData = _b.chartData, columnNames = _b.columnNames;\n this.chartData = chartData;\n this.columnNames = columnNames;\n };\n ChartDataModel.prototype.isGrouping = function () {\n var usingTreeData = this.gridOptionsService.is('treeData');\n var groupedCols = usingTreeData ? null : this.chartColumnService.getRowGroupColumns();\n var isGroupActive = usingTreeData || (groupedCols && groupedCols.length > 0);\n // charts only group when the selected category is a group column\n var colId = this.getSelectedDimension().colId;\n var displayedGroupCols = this.chartColumnService.getGroupDisplayColumns();\n var groupDimensionSelected = displayedGroupCols.map(function (col) { return col.getColId(); }).some(function (id) { return id === colId; });\n return !!isGroupActive && groupDimensionSelected;\n };\n ChartDataModel.prototype.getSelectedValueCols = function () {\n return this.valueColState.filter(function (cs) { return cs.selected; }).map(function (cs) { return cs.column; });\n };\n ChartDataModel.prototype.getSelectedDimension = function () {\n return this.dimensionColState.filter(function (cs) { return cs.selected; })[0];\n };\n ChartDataModel.prototype.getColDisplayName = function (col) {\n return this.chartColumnService.getColDisplayName(col);\n };\n ChartDataModel.prototype.isPivotMode = function () {\n return this.chartColumnService.isPivotMode();\n };\n ChartDataModel.prototype.getChartDataType = function (colId) {\n var column = this.chartColumnService.getColumn(colId);\n return column ? column.getColDef().chartDataType : undefined;\n };\n ChartDataModel.prototype.isPivotActive = function () {\n return this.chartColumnService.isPivotActive();\n };\n ChartDataModel.prototype.createCellRange = function (type) {\n var columns = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n columns[_i - 1] = arguments[_i];\n }\n return {\n id: this.chartId,\n startRow: this.referenceCellRange.startRow,\n endRow: this.referenceCellRange.endRow,\n columns: columns,\n startColumn: type === CellRangeType.DIMENSION ? columns[0] : this.referenceCellRange.startColumn,\n type: type\n };\n };\n ChartDataModel.prototype.getAllColumnsFromRanges = function () {\n if (this.pivotChart) {\n return _.convertToSet(this.chartColumnService.getAllDisplayedColumns());\n }\n var columns = this.dimensionCellRange || this.valueCellRange ? [] : this.referenceCellRange.columns;\n if (this.dimensionCellRange) {\n columns.push.apply(columns, __spreadArray$a([], __read$h(this.dimensionCellRange.columns)));\n }\n if (this.valueCellRange) {\n columns.push.apply(columns, __spreadArray$a([], __read$h(this.valueCellRange.columns)));\n }\n return _.convertToSet(columns);\n };\n ChartDataModel.prototype.getRowIndexes = function () {\n var startRow = 0, endRow = 0;\n var _a = this, rangeService = _a.rangeService, valueCellRange = _a.valueCellRange;\n if (rangeService && valueCellRange) {\n startRow = rangeService.getRangeStartRow(valueCellRange).rowIndex;\n // when the last row the cell range is a pinned 'bottom' row, the `endRow` index is set to -1 which results\n // in the ChartDatasource processing all non pinned rows from the `startRow` index.\n var endRowPosition = rangeService.getRangeEndRow(valueCellRange);\n endRow = endRowPosition.rowPinned === 'bottom' ? -1 : endRowPosition.rowIndex;\n }\n return { startRow: startRow, endRow: endRow };\n };\n ChartDataModel.prototype.resetColumnState = function () {\n var _this = this;\n var _a = this.chartColumnService.getChartColumns(), dimensionCols = _a.dimensionCols, valueCols = _a.valueCols;\n var allCols = this.getAllColumnsFromRanges();\n var isInitialising = this.valueColState.length < 1;\n this.dimensionColState = [];\n this.valueColState = [];\n var hasSelectedDimension = false;\n var order = 1;\n var aggFuncDimension = this.suppliedCellRange.columns[0]; //TODO\n dimensionCols.forEach(function (column) {\n var isAutoGroupCol = column.getColId() === 'ag-Grid-AutoColumn';\n var selected = false;\n if (_this.crossFiltering && _this.aggFunc) {\n if (aggFuncDimension.getColId() === column.getColId()) {\n selected = true;\n }\n }\n else {\n selected = isAutoGroupCol ? true : !hasSelectedDimension && allCols.has(column);\n }\n _this.dimensionColState.push({\n column: column,\n colId: column.getColId(),\n displayName: _this.getColDisplayName(column),\n selected: selected,\n order: order++\n });\n if (selected) {\n hasSelectedDimension = true;\n }\n });\n var defaultCategory = {\n colId: ChartDataModel.DEFAULT_CATEGORY,\n displayName: this.chartTranslationService.translate('defaultCategory'),\n selected: !hasSelectedDimension,\n order: 0\n };\n this.dimensionColState.unshift(defaultCategory);\n var valueColumnsFromReferenceRange = this.referenceCellRange.columns.filter(function (c) { return valueCols.has(c); });\n valueCols.forEach(function (column) {\n // first time the value cell range is set, preserve the column order from the supplied range\n if (isInitialising && _.includes(_this.referenceCellRange.columns, column)) {\n column = valueColumnsFromReferenceRange.shift();\n }\n _this.valueColState.push({\n column: column,\n colId: column.getColId(),\n displayName: _this.getColDisplayName(column),\n selected: allCols.has(column),\n order: order++\n });\n });\n };\n ChartDataModel.prototype.updateColumnState = function (updatedCol) {\n var idsMatch = function (cs) { return cs.colId === updatedCol.colId; };\n var _a = this, dimensionColState = _a.dimensionColState, valueColState = _a.valueColState;\n if (dimensionColState.filter(idsMatch).length > 0) {\n // only one dimension should be selected\n dimensionColState.forEach(function (cs) { return cs.selected = idsMatch(cs); });\n }\n else {\n // just update the selected value on the supplied value column\n valueColState.filter(idsMatch).forEach(function (cs) { return cs.selected = updatedCol.selected; });\n }\n var allColumns = __spreadArray$a(__spreadArray$a([], __read$h(dimensionColState)), __read$h(valueColState));\n var orderedColIds = [];\n // calculate new order\n allColumns.forEach(function (col, i) {\n if (i === updatedCol.order) {\n orderedColIds.push(updatedCol.colId);\n }\n if (col.colId !== updatedCol.colId) {\n orderedColIds.push(col.colId);\n }\n });\n // update col state with new order\n allColumns.forEach(function (col) {\n var order = orderedColIds.indexOf(col.colId);\n col.order = order >= 0 ? orderedColIds.indexOf(col.colId) : allColumns.length - 1;\n });\n this.reorderColState();\n };\n ChartDataModel.prototype.reorderColState = function () {\n var ascColStateOrder = function (a, b) { return a.order - b.order; };\n this.dimensionColState.sort(ascColStateOrder);\n this.valueColState.sort(ascColStateOrder);\n };\n ChartDataModel.prototype.setDimensionCellRange = function (dimensionCols, colsInRange, updatedColState) {\n var _this = this;\n this.dimensionCellRange = undefined;\n if (!updatedColState && !this.dimensionColState.length) {\n // use first dimension column in range by default\n dimensionCols.forEach(function (col) {\n if (_this.dimensionCellRange || !colsInRange.has(col)) {\n return;\n }\n _this.dimensionCellRange = _this.createCellRange(CellRangeType.DIMENSION, col);\n });\n return;\n }\n var selectedDimensionColState = updatedColState;\n if (this.crossFiltering && this.aggFunc) {\n var aggFuncDimension_1 = this.suppliedCellRange.columns[0]; //TODO\n selectedDimensionColState = this.dimensionColState.filter(function (cs) { return cs.colId === aggFuncDimension_1.getColId(); })[0];\n }\n else if (!selectedDimensionColState || !dimensionCols.has(selectedDimensionColState.column)) {\n selectedDimensionColState = this.dimensionColState.filter(function (cs) { return cs.selected; })[0];\n }\n if (selectedDimensionColState && selectedDimensionColState.colId !== ChartDataModel.DEFAULT_CATEGORY) {\n this.dimensionCellRange = this.createCellRange(CellRangeType.DIMENSION, selectedDimensionColState.column);\n }\n };\n ChartDataModel.prototype.setValueCellRange = function (valueCols, colsInRange, updatedColState) {\n this.valueCellRange = undefined;\n var selectedValueCols = [];\n valueCols.forEach(function (col) {\n if (updatedColState && updatedColState.colId === col.getColId()) {\n if (updatedColState.selected) {\n selectedValueCols.push(updatedColState.column);\n }\n }\n else if (colsInRange.has(col)) {\n selectedValueCols.push(col);\n }\n });\n if (selectedValueCols.length > 0) {\n var orderedColIds_1 = [];\n if (this.valueColState.length > 0) {\n orderedColIds_1 = this.valueColState.map(function (c) { return c.colId; });\n }\n else {\n colsInRange.forEach(function (c) { return orderedColIds_1.push(c.getColId()); });\n }\n selectedValueCols.sort(function (a, b) { return orderedColIds_1.indexOf(a.getColId()) - orderedColIds_1.indexOf(b.getColId()); });\n this.valueCellRange = this.createCellRange.apply(this, __spreadArray$a([CellRangeType.VALUE], __read$h(selectedValueCols)));\n }\n };\n ChartDataModel.prototype.updateSelectedDimension = function (columns) {\n var colIdSet = new Set(columns.map(function (column) { return column.getColId(); }));\n // if no dimension found in supplied columns use the default category (always index = 0)\n var foundColState = this.dimensionColState.find(function (colState) { return colIdSet.has(colState.colId); }) || this.dimensionColState[0];\n this.dimensionColState = this.dimensionColState.map(function (colState) { return (__assign$m(__assign$m({}, colState), { selected: colState.colId === foundColState.colId })); });\n };\n ChartDataModel.prototype.syncDimensionCellRange = function () {\n var selectedDimension = this.getSelectedDimension();\n if (selectedDimension && selectedDimension.column) {\n this.dimensionCellRange = this.createCellRange(CellRangeType.DIMENSION, selectedDimension.column);\n }\n };\n ChartDataModel.prototype.isComboChart = function () {\n return ['columnLineCombo', 'areaColumnCombo', 'customCombo'].includes(this.chartType);\n };\n ChartDataModel.DEFAULT_CATEGORY = 'AG-GRID-DEFAULT-CATEGORY';\n __decorate$M([\n Autowired('rangeService')\n ], ChartDataModel.prototype, \"rangeService\", void 0);\n __decorate$M([\n Autowired('chartTranslationService')\n ], ChartDataModel.prototype, \"chartTranslationService\", void 0);\n __decorate$M([\n PostConstruct\n ], ChartDataModel.prototype, \"init\", null);\n return ChartDataModel;\n}(BeanStub));\n\nfunction deproxy(chartOrProxy) {\n if (chartOrProxy.chart != null) {\n return chartOrProxy.chart;\n }\n return chartOrProxy;\n}\n\nvar __assign$l = (undefined && undefined.__assign) || function () {\n __assign$l = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$l.apply(this, arguments);\n};\nvar ChartProxy = /** @class */ (function () {\n function ChartProxy(chartProxyParams) {\n this.chartProxyParams = chartProxyParams;\n this.clearThemeOverrides = false;\n this.chart = chartProxyParams.chartInstance;\n this.chartType = chartProxyParams.chartType;\n this.crossFiltering = chartProxyParams.crossFiltering;\n this.crossFilterCallback = chartProxyParams.crossFilterCallback;\n this.standaloneChartType = getSeriesType(this.chartType);\n if (this.chart == null) {\n this.chart = AgChart.create(this.getCommonChartOptions());\n }\n else {\n // On chart change, reset formatting panel changes.\n this.clearThemeOverrides = true;\n }\n }\n ChartProxy.prototype.getChart = function () {\n return deproxy(this.chart);\n };\n ChartProxy.prototype.getChartRef = function () {\n return this.chart;\n };\n ChartProxy.prototype.downloadChart = function (dimensions, fileName, fileFormat) {\n var chart = this.chart;\n var rawChart = deproxy(chart);\n var imageFileName = fileName || (rawChart.title ? rawChart.title.text : 'chart');\n var _a = dimensions || {}, width = _a.width, height = _a.height;\n AgChart.download(chart, { width: width, height: height, fileName: imageFileName, fileFormat: fileFormat });\n };\n ChartProxy.prototype.getChartImageDataURL = function (type) {\n return this.getChart().scene.getDataURL(type);\n };\n ChartProxy.prototype.getChartOptions = function () {\n return this.chart.getOptions();\n };\n ChartProxy.prototype.getChartThemeOverrides = function () {\n var _a;\n var chartOptionsTheme = this.getChartOptions().theme;\n return (_a = chartOptionsTheme.overrides) !== null && _a !== void 0 ? _a : {};\n };\n ChartProxy.prototype.getChartPalette = function () {\n return getChartTheme(this.getChartOptions().theme).palette;\n };\n ChartProxy.prototype.setPaired = function (paired) {\n var _a;\n // Special handling to make scatter charts operate in paired mode by default, where \n // columns alternate between being X and Y (and size for bubble). In standard mode,\n // the first column is used for X and every other column is treated as Y\n // (or alternates between Y and size for bubble)\n var seriesType = getSeriesType(this.chartProxyParams.chartType);\n AgChart.updateDelta(this.chart, { theme: { overrides: (_a = {}, _a[seriesType] = { paired: paired }, _a) } });\n };\n ChartProxy.prototype.isPaired = function () {\n var seriesType = getSeriesType(this.chartProxyParams.chartType);\n return _.get(this.getChartThemeOverrides(), seriesType + \".paired\", true);\n };\n ChartProxy.prototype.lookupCustomChartTheme = function (themeName) {\n return lookupCustomChartTheme(this.chartProxyParams, themeName);\n };\n ChartProxy.prototype.transformData = function (data, categoryKey, categoryAxis) {\n if (categoryAxis) {\n // replace the values for the selected category with a complex object to allow for duplicated categories\n return data.map(function (d, index) {\n var value = d[categoryKey];\n var valueString = value && value.toString ? value.toString() : '';\n var datum = __assign$l({}, d);\n datum[categoryKey] = { id: index, value: value, toString: function () { return valueString; } };\n return datum;\n });\n }\n return data;\n };\n ChartProxy.prototype.getCommonChartOptions = function (updatedOverrides) {\n var _a, _b;\n // Only apply active overrides if chart is initialised.\n var existingOptions = this.clearThemeOverrides ? {} : (_b = (_a = this.chart) === null || _a === void 0 ? void 0 : _a.getOptions()) !== null && _b !== void 0 ? _b : {};\n var formattingPanelOverrides = this.chart != null ?\n { overrides: this.getActiveFormattingPanelOverrides() } : {};\n this.clearThemeOverrides = false;\n return __assign$l(__assign$l({}, existingOptions), { theme: __assign$l(__assign$l({}, createAgChartTheme(this.chartProxyParams, this)), (updatedOverrides ? { overrides: updatedOverrides } : formattingPanelOverrides)), container: this.chartProxyParams.parentElement, mode: 'integrated' });\n };\n ChartProxy.prototype.getActiveFormattingPanelOverrides = function () {\n var _a, _b;\n if (this.clearThemeOverrides) {\n return {};\n }\n var inUseTheme = (_a = this.chart) === null || _a === void 0 ? void 0 : _a.getOptions().theme;\n return (_b = inUseTheme === null || inUseTheme === void 0 ? void 0 : inUseTheme.overrides) !== null && _b !== void 0 ? _b : {};\n };\n ChartProxy.prototype.destroy = function (_a) {\n var _b = _a === void 0 ? {} : _a, _c = _b.keepChartInstance, keepChartInstance = _c === void 0 ? false : _c;\n if (keepChartInstance) {\n return this.chart;\n }\n this.destroyChart();\n };\n ChartProxy.prototype.destroyChart = function () {\n if (this.chart) {\n this.chart.destroy();\n this.chart = undefined;\n }\n };\n return ChartProxy;\n}());\n\nvar __extends$Z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$k = (undefined && undefined.__assign) || function () {\n __assign$k = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$k.apply(this, arguments);\n};\nvar CartesianChartProxy = /** @class */ (function (_super) {\n __extends$Z(CartesianChartProxy, _super);\n function CartesianChartProxy(params) {\n var _this = _super.call(this, params) || this;\n _this.crossFilteringAllPoints = new Set();\n _this.crossFilteringSelectedPoints = [];\n return _this;\n }\n CartesianChartProxy.prototype.update = function (params) {\n var axes = this.getAxes(params);\n var options = __assign$k(__assign$k({}, this.getCommonChartOptions(params.updatedOverrides)), { data: this.getData(params, axes), axes: axes, series: this.getSeries(params) });\n AgChart.update(this.getChartRef(), options);\n };\n CartesianChartProxy.prototype.getData = function (params, axes) {\n var _a;\n var supportsCrossFiltering = ['area', 'line'].includes(this.standaloneChartType);\n var xPosition = this.standaloneChartType === 'bar' ? 'left' : 'bottom';\n var xAxisIsCategory = ((_a = axes.find(function (o) { return o.position === xPosition; })) === null || _a === void 0 ? void 0 : _a.type) === 'category';\n return this.crossFiltering && supportsCrossFiltering ?\n this.getCrossFilterData(params) :\n this.getDataTransformedData(params, xAxisIsCategory);\n };\n CartesianChartProxy.prototype.getDataTransformedData = function (params, isCategoryAxis) {\n return this.transformData(params.data, params.category.id, isCategoryAxis);\n };\n CartesianChartProxy.prototype.getXAxisType = function (params) {\n if (params.grouping) {\n return 'groupedCategory';\n }\n else if (CartesianChartProxy.isTimeAxis(params)) {\n return 'time';\n }\n return 'category';\n };\n CartesianChartProxy.isTimeAxis = function (params) {\n if (params.category && params.category.chartDataType) {\n return params.category.chartDataType === 'time';\n }\n var testDatum = params.data[0];\n return (testDatum && testDatum[params.category.id]) instanceof Date;\n };\n CartesianChartProxy.prototype.crossFilteringReset = function () {\n this.crossFilteringSelectedPoints = [];\n this.crossFilteringAllPoints.clear();\n };\n CartesianChartProxy.prototype.crossFilteringPointSelected = function (point) {\n return this.crossFilteringSelectedPoints.length == 0 || this.crossFilteringSelectedPoints.includes(point);\n };\n CartesianChartProxy.prototype.crossFilteringDeselectedPoints = function () {\n return this.crossFilteringSelectedPoints.length > 0 &&\n this.crossFilteringAllPoints.size !== this.crossFilteringSelectedPoints.length;\n };\n CartesianChartProxy.prototype.extractLineAreaCrossFilterSeries = function (series, params) {\n var _this = this;\n var getYKey = function (yKey) {\n if (_this.standaloneChartType === 'area') {\n var lastSelectedChartId = params.getCrossFilteringContext().lastSelectedChartId;\n return (lastSelectedChartId === params.chartId) ? yKey + '-total' : yKey;\n }\n return yKey + '-total';\n };\n return series.map(function (s) {\n s.yKey = getYKey(s.yKey);\n s.listeners = {\n nodeClick: function (e) {\n var value = e.datum[s.xKey];\n var multiSelection = e.event.metaKey || e.event.ctrlKey;\n _this.crossFilteringAddSelectedPoint(multiSelection, value);\n _this.crossFilterCallback(e);\n }\n };\n s.marker = {\n formatter: function (p) {\n var category = p.datum[params.category.id];\n return {\n fill: p.highlighted ? 'yellow' : p.fill,\n size: p.highlighted ? 14 : _this.crossFilteringPointSelected(category) ? 8 : 0,\n };\n }\n };\n if (_this.standaloneChartType === 'area') {\n s.fillOpacity = _this.crossFilteringDeselectedPoints() ? 0.3 : 1;\n }\n if (_this.standaloneChartType === 'line') {\n s.strokeOpacity = _this.crossFilteringDeselectedPoints() ? 0.3 : 1;\n }\n return s;\n });\n };\n CartesianChartProxy.prototype.getCrossFilterData = function (params) {\n var _this = this;\n this.crossFilteringAllPoints.clear();\n var colId = params.fields[0].colId;\n var filteredOutColId = colId + \"-filtered-out\";\n var lastSelectedChartId = params.getCrossFilteringContext().lastSelectedChartId;\n return params.data.map(function (d) {\n var category = d[params.category.id];\n _this.crossFilteringAllPoints.add(category);\n var pointSelected = _this.crossFilteringPointSelected(category);\n if (_this.standaloneChartType === 'area' && lastSelectedChartId === params.chartId) {\n d[colId + \"-total\"] = pointSelected ? d[colId] : d[colId] + d[filteredOutColId];\n }\n if (_this.standaloneChartType === 'line') {\n d[colId + \"-total\"] = pointSelected ? d[colId] : d[colId] + d[filteredOutColId];\n }\n return d;\n });\n };\n CartesianChartProxy.prototype.crossFilteringAddSelectedPoint = function (multiSelection, value) {\n multiSelection ? this.crossFilteringSelectedPoints.push(value) : this.crossFilteringSelectedPoints = [value];\n };\n return CartesianChartProxy;\n}(ChartProxy));\n\n// deepMerge\nfunction emptyTarget(value) {\n return Array.isArray(value) ? [] : {};\n}\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n return (options.clone !== false && options.isMergeableObject(value))\n ? deepMerge(emptyTarget(value), value, options)\n : value;\n}\nfunction defaultArrayMerge(target, source, options) {\n return target.concat(source).map(function (element) {\n return cloneUnlessOtherwiseSpecified(element, options);\n });\n}\nfunction getMergeFunction(key, options) {\n if (!options.customMerge) {\n return deepMerge;\n }\n var customMerge = options.customMerge(key);\n return typeof customMerge === 'function' ? customMerge : deepMerge;\n}\nfunction getEnumerableOwnPropertySymbols(target) {\n // @ts-ignore\n return Object.getOwnPropertySymbols\n // @ts-ignore\n ? Object.getOwnPropertySymbols(target).filter(function (symbol) {\n return target.propertyIsEnumerable(symbol);\n })\n : [];\n}\nfunction getKeys(target) {\n return Object.keys(target).concat(getEnumerableOwnPropertySymbols(target));\n}\nfunction propertyIsOnObject(object, property) {\n try {\n return property in object;\n }\n catch (_) {\n return false;\n }\n}\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n return propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n && !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n && Object.propertyIsEnumerable.call(target, key)); // and also unsafe if they're nonenumerable.\n}\nfunction mergeObject(target, source, options) {\n if (target === void 0) { target = {}; }\n if (source === void 0) { source = {}; }\n var destination = {};\n if (options.isMergeableObject(target)) {\n getKeys(target).forEach(function (key) {\n destination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n });\n }\n getKeys(source).forEach(function (key) {\n if (propertyIsUnsafe(target, key)) {\n return;\n }\n if (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n destination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n }\n else {\n destination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n }\n });\n return destination;\n}\nfunction defaultIsMergeableObject(value) {\n return isNonNullObject(value) && !isSpecial(value);\n}\nfunction isNonNullObject(value) {\n return !!value && typeof value === 'object';\n}\nfunction isSpecial(value) {\n var stringValue = Object.prototype.toString.call(value);\n return stringValue === '[object RegExp]' || stringValue === '[object Date]';\n}\nfunction deepMerge(target, source, options) {\n options = options || {};\n options.arrayMerge = options.arrayMerge || defaultArrayMerge;\n options.isMergeableObject = options.isMergeableObject || defaultIsMergeableObject;\n // cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n // implementations can use it. The caller may not replace it.\n options.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n var sourceIsArray = Array.isArray(source);\n var targetIsArray = Array.isArray(target);\n var sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n if (!sourceAndTargetTypesMatch) {\n return cloneUnlessOtherwiseSpecified(source, options);\n }\n else if (sourceIsArray) {\n return options.arrayMerge(target, source, options);\n }\n else {\n return mergeObject(target, source, options);\n }\n}\n\nfunction hexToRGBA(hex, alpha) {\n var r = parseInt(hex.slice(1, 3), 16);\n var g = parseInt(hex.slice(3, 5), 16);\n var b = parseInt(hex.slice(5, 7), 16);\n return alpha ? \"rgba(\" + r + \", \" + g + \", \" + b + \", \" + alpha + \")\" : \"rgba(\" + r + \", \" + g + \", \" + b + \")\";\n}\nfunction changeOpacity(fills, alpha) {\n return fills.map(function (fill) {\n var c = Color.fromString(fill);\n return new Color(c.r, c.g, c.b, alpha).toHexString();\n });\n}\n\nvar __extends$Y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$j = (undefined && undefined.__assign) || function () {\n __assign$j = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$j.apply(this, arguments);\n};\nvar BarChartProxy = /** @class */ (function (_super) {\n __extends$Y(BarChartProxy, _super);\n function BarChartProxy(params) {\n return _super.call(this, params) || this;\n }\n BarChartProxy.prototype.getAxes = function (params) {\n var isBar = this.standaloneChartType === 'bar';\n var axes = [\n {\n type: this.getXAxisType(params),\n position: isBar ? 'left' : 'bottom',\n },\n {\n type: 'number',\n position: isBar ? 'bottom' : 'left',\n },\n ];\n // Add a default label formatter to show '%' for normalized charts if none is provided\n if (this.isNormalised()) {\n var numberAxis = axes[1];\n numberAxis.label = __assign$j(__assign$j({}, numberAxis.label), { formatter: function (params) { return Math.round(params.value) + '%'; } });\n }\n return axes;\n };\n BarChartProxy.prototype.getSeries = function (params) {\n var _this = this;\n var groupedCharts = ['groupedColumn', 'groupedBar'];\n var isGrouped = !this.crossFiltering && _.includes(groupedCharts, this.chartType);\n var series = params.fields.map(function (f) { return ({\n type: _this.standaloneChartType,\n grouped: isGrouped,\n stacked: ['stackedColumn', 'normalizedColumn', 'stackedBar', 'normalizedBar'].includes(_this.chartType),\n normalizedTo: _this.isNormalised() ? 100 : undefined,\n xKey: params.category.id,\n xName: params.category.name,\n yKey: f.colId,\n yName: f.displayName\n }); });\n return this.crossFiltering ? this.extractCrossFilterSeries(series) : series;\n };\n BarChartProxy.prototype.extractCrossFilterSeries = function (series) {\n var _this = this;\n var palette = this.getChartPalette();\n var updatePrimarySeries = function (seriesOptions, index) {\n return __assign$j(__assign$j({}, seriesOptions), { highlightStyle: { item: { fill: undefined } }, fill: palette === null || palette === void 0 ? void 0 : palette.fills[index], stroke: palette === null || palette === void 0 ? void 0 : palette.strokes[index], listeners: {\n nodeClick: _this.crossFilterCallback\n } });\n };\n var updateFilteredOutSeries = function (seriesOptions) {\n var yKey = seriesOptions.yKey + '-filtered-out';\n return __assign$j(__assign$j({}, deepMerge({}, seriesOptions)), { yKey: yKey, fill: hexToRGBA(seriesOptions.fill, '0.3'), stroke: hexToRGBA(seriesOptions.stroke, '0.3'), showInLegend: false });\n };\n var allSeries = [];\n for (var i = 0; i < series.length; i++) {\n // update primary series\n var primarySeries = updatePrimarySeries(series[i], i);\n allSeries.push(primarySeries);\n // add 'filtered-out' series\n allSeries.push(updateFilteredOutSeries(primarySeries));\n }\n return allSeries;\n };\n BarChartProxy.prototype.isNormalised = function () {\n var normalisedCharts = ['normalizedColumn', 'normalizedBar'];\n return !this.crossFiltering && _.includes(normalisedCharts, this.chartType);\n };\n return BarChartProxy;\n}(CartesianChartProxy));\n\nvar __extends$X = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$i = (undefined && undefined.__assign) || function () {\n __assign$i = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$i.apply(this, arguments);\n};\nvar AreaChartProxy = /** @class */ (function (_super) {\n __extends$X(AreaChartProxy, _super);\n function AreaChartProxy(params) {\n return _super.call(this, params) || this;\n }\n AreaChartProxy.prototype.getAxes = function (params) {\n var axes = [\n {\n type: this.getXAxisType(params),\n position: 'bottom',\n },\n {\n type: 'number',\n position: 'left',\n },\n ];\n // Add a default label formatter to show '%' for normalized charts if none is provided\n if (this.isNormalised()) {\n var numberAxis = axes[1];\n numberAxis.label = __assign$i(__assign$i({}, numberAxis.label), { formatter: function (params) { return Math.round(params.value) + '%'; } });\n }\n return axes;\n };\n AreaChartProxy.prototype.getSeries = function (params) {\n var _this = this;\n var series = params.fields.map(function (f) { return ({\n type: _this.standaloneChartType,\n xKey: params.category.id,\n xName: params.category.name,\n yKey: f.colId,\n yName: f.displayName,\n normalizedTo: _this.chartType === 'normalizedArea' ? 100 : undefined,\n stacked: ['normalizedArea', 'stackedArea'].includes(_this.chartType)\n }); });\n return this.crossFiltering ? this.extractLineAreaCrossFilterSeries(series, params) : series;\n };\n AreaChartProxy.prototype.isNormalised = function () {\n return !this.crossFiltering && this.chartType === 'normalizedArea';\n };\n return AreaChartProxy;\n}(CartesianChartProxy));\n\nvar __extends$W = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar LineChartProxy = /** @class */ (function (_super) {\n __extends$W(LineChartProxy, _super);\n function LineChartProxy(params) {\n return _super.call(this, params) || this;\n }\n LineChartProxy.prototype.getAxes = function (params) {\n return [\n {\n type: this.getXAxisType(params),\n position: 'bottom'\n },\n {\n type: 'number',\n position: 'left'\n },\n ];\n };\n LineChartProxy.prototype.getSeries = function (params) {\n var _this = this;\n var series = params.fields.map(function (f) { return ({\n type: _this.standaloneChartType,\n xKey: params.category.id,\n xName: params.category.name,\n yKey: f.colId,\n yName: f.displayName\n }); });\n return this.crossFiltering ? this.extractLineAreaCrossFilterSeries(series, params) : series;\n };\n return LineChartProxy;\n}(CartesianChartProxy));\n\nvar __extends$V = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$h = (undefined && undefined.__assign) || function () {\n __assign$h = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$h.apply(this, arguments);\n};\nvar PieChartProxy = /** @class */ (function (_super) {\n __extends$V(PieChartProxy, _super);\n function PieChartProxy(params) {\n return _super.call(this, params) || this;\n }\n PieChartProxy.prototype.update = function (params) {\n var data = params.data, category = params.category;\n var options = __assign$h(__assign$h({}, this.getCommonChartOptions(params.updatedOverrides)), { data: this.crossFiltering ? this.getCrossFilterData(params) : this.transformData(data, category.id), series: this.getSeries(params) });\n AgChart.update(this.getChartRef(), options);\n };\n PieChartProxy.prototype.getSeries = function (params) {\n var _this = this;\n var numFields = params.fields.length;\n var offset = {\n currentOffset: 0,\n offsetAmount: numFields > 1 ? 20 : 40\n };\n var series = this.getFields(params).map(function (f) {\n var _a;\n // options shared by 'pie' and 'doughnut' charts\n var options = {\n type: _this.standaloneChartType,\n angleKey: f.colId,\n angleName: f.displayName,\n sectorLabelKey: f.colId,\n calloutLabelKey: params.category.id,\n calloutLabelName: params.category.name,\n };\n if (_this.chartType === 'doughnut') {\n var _b = PieChartProxy.calculateOffsets(offset), outerRadiusOffset = _b.outerRadiusOffset, innerRadiusOffset = _b.innerRadiusOffset;\n var title = f.displayName ? {\n title: { text: f.displayName, showInLegend: numFields > 1 },\n } : undefined;\n // augment shared options with 'doughnut' specific options\n return __assign$h(__assign$h(__assign$h(__assign$h({}, options), { outerRadiusOffset: outerRadiusOffset, innerRadiusOffset: innerRadiusOffset }), title), { calloutLine: {\n colors: (_a = _this.getChartPalette()) === null || _a === void 0 ? void 0 : _a.strokes,\n } });\n }\n return options;\n });\n return this.crossFiltering ? this.extractCrossFilterSeries(series) : series;\n };\n PieChartProxy.prototype.getCrossFilterData = function (params) {\n var colId = params.fields[0].colId;\n var filteredOutColId = colId + \"-filtered-out\";\n return params.data.map(function (d) {\n var total = d[colId] + d[filteredOutColId];\n d[colId + \"-total\"] = total;\n d[filteredOutColId] = 1; // normalise to 1\n d[colId] = d[colId] / total; // fraction of 1\n return d;\n });\n };\n PieChartProxy.prototype.extractCrossFilterSeries = function (series) {\n var _this = this;\n var palette = this.getChartPalette();\n var primaryOptions = function (seriesOptions) {\n return __assign$h(__assign$h({}, seriesOptions), { calloutLabel: { enabled: false }, highlightStyle: { item: { fill: undefined } }, radiusKey: seriesOptions.angleKey, angleKey: seriesOptions.angleKey + '-total', radiusMin: 0, radiusMax: 1, listeners: {\n nodeClick: _this.crossFilterCallback,\n } });\n };\n var filteredOutOptions = function (seriesOptions, angleKey) {\n var _a, _b;\n return __assign$h(__assign$h({}, deepMerge({}, primaryOpts)), { radiusKey: angleKey + '-filtered-out', fills: changeOpacity((_a = seriesOptions.fills) !== null && _a !== void 0 ? _a : palette.fills, 0.3), strokes: changeOpacity((_b = seriesOptions.strokes) !== null && _b !== void 0 ? _b : palette.strokes, 0.3), showInLegend: false });\n };\n // currently, only single 'doughnut' cross-filter series are supported\n var primarySeries = series[0];\n // update primary series\n var angleKey = primarySeries.angleKey;\n var primaryOpts = primaryOptions(primarySeries);\n return [\n filteredOutOptions(primarySeries, angleKey),\n primaryOpts,\n ];\n };\n PieChartProxy.calculateOffsets = function (offset) {\n var outerRadiusOffset = offset.currentOffset;\n offset.currentOffset -= offset.offsetAmount;\n var innerRadiusOffset = offset.currentOffset;\n offset.currentOffset -= offset.offsetAmount;\n return { outerRadiusOffset: outerRadiusOffset, innerRadiusOffset: innerRadiusOffset };\n };\n PieChartProxy.prototype.getFields = function (params) {\n return this.chartType === 'pie' ? params.fields.slice(0, 1) : params.fields;\n };\n PieChartProxy.prototype.crossFilteringReset = function () {\n // not required in pie charts\n };\n return PieChartProxy;\n}(ChartProxy));\n\nvar __extends$U = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$g = (undefined && undefined.__assign) || function () {\n __assign$g = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$g.apply(this, arguments);\n};\nvar __values$5 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar __read$g = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$9 = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar ScatterChartProxy = /** @class */ (function (_super) {\n __extends$U(ScatterChartProxy, _super);\n function ScatterChartProxy(params) {\n return _super.call(this, params) || this;\n }\n ScatterChartProxy.prototype.getAxes = function (_params) {\n return [\n {\n type: 'number',\n position: 'bottom',\n },\n {\n type: 'number',\n position: 'left',\n },\n ];\n };\n ScatterChartProxy.prototype.getSeries = function (params) {\n var _this = this;\n var paired = this.isPaired();\n var seriesDefinitions = this.getSeriesDefinitions(params.fields, paired);\n var labelFieldDefinition = params.category.id === ChartDataModel.DEFAULT_CATEGORY ? undefined : params.category;\n var series = seriesDefinitions.map(function (seriesDefinition) { return ({\n type: _this.standaloneChartType,\n xKey: seriesDefinition.xField.colId,\n xName: seriesDefinition.xField.displayName,\n yKey: seriesDefinition.yField.colId,\n yName: seriesDefinition.yField.displayName,\n title: seriesDefinition.yField.displayName + \" vs \" + seriesDefinition.xField.displayName,\n sizeKey: seriesDefinition.sizeField ? seriesDefinition.sizeField.colId : undefined,\n sizeName: seriesDefinition.sizeField ? seriesDefinition.sizeField.displayName : undefined,\n labelKey: labelFieldDefinition ? labelFieldDefinition.id : seriesDefinition.yField.colId,\n labelName: labelFieldDefinition ? labelFieldDefinition.name : undefined,\n }); });\n return this.crossFiltering ? this.extractCrossFilterSeries(series, params) : series;\n };\n ScatterChartProxy.prototype.extractCrossFilterSeries = function (series, params) {\n var _this = this;\n var data = params.data;\n var palette = this.getChartPalette();\n var filteredOutKey = function (key) { return key + \"-filtered-out\"; };\n var calcMarkerDomain = function (data, sizeKey) {\n var e_1, _a;\n var _b;\n var markerDomain = [Infinity, -Infinity];\n if (sizeKey != null) {\n try {\n for (var data_1 = __values$5(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n var datum = data_1_1.value;\n var value = (_b = datum[sizeKey]) !== null && _b !== void 0 ? _b : datum[filteredOutKey(sizeKey)];\n if (value < markerDomain[0]) {\n markerDomain[0] = value;\n }\n if (value > markerDomain[1]) {\n markerDomain[1] = value;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n if (markerDomain[0] <= markerDomain[1]) {\n return markerDomain;\n }\n return undefined;\n };\n var updatePrimarySeries = function (series, idx) {\n var sizeKey = series.sizeKey;\n var fill = palette === null || palette === void 0 ? void 0 : palette.fills[idx];\n var stroke = palette === null || palette === void 0 ? void 0 : palette.strokes[idx];\n var markerDomain = calcMarkerDomain(data, sizeKey);\n var marker = __assign$g(__assign$g({}, series.marker), { fill: fill, stroke: stroke, domain: markerDomain });\n return __assign$g(__assign$g({}, series), { marker: marker, highlightStyle: { item: { fill: 'yellow' } }, listeners: __assign$g(__assign$g({}, series.listeners), { nodeClick: _this.crossFilterCallback }) });\n };\n var updateFilteredOutSeries = function (series) {\n var sizeKey = series.sizeKey, yKey = series.yKey, xKey = series.xKey;\n if (sizeKey != null) {\n sizeKey = filteredOutKey(sizeKey);\n }\n return __assign$g(__assign$g({}, series), { yKey: filteredOutKey(yKey), xKey: filteredOutKey(xKey), marker: __assign$g(__assign$g({}, series.marker), { fillOpacity: 0.3, strokeOpacity: 0.3 }), sizeKey: sizeKey, showInLegend: false, listeners: __assign$g(__assign$g({}, series.listeners), { nodeClick: function (e) {\n var _a;\n var value = e.datum[filteredOutKey(xKey)];\n // Need to remove the `-filtered-out` suffixes from the event so that\n // upstream processing maps the event correctly onto grid column ids.\n var filterableEvent = __assign$g(__assign$g({}, e), { xKey: xKey, datum: __assign$g(__assign$g({}, e.datum), (_a = {}, _a[xKey] = value, _a)) });\n _this.crossFilterCallback(filterableEvent);\n } }) });\n };\n var updatedSeries = series.map(updatePrimarySeries);\n return __spreadArray$9(__spreadArray$9([], __read$g(updatedSeries)), __read$g(updatedSeries.map(updateFilteredOutSeries)));\n };\n ScatterChartProxy.prototype.getSeriesDefinitions = function (fields, paired) {\n if (fields.length < 2) {\n return [];\n }\n var isBubbleChart = this.chartType === 'bubble';\n if (paired) {\n if (isBubbleChart) {\n return fields.map(function (currentXField, i) { return i % 3 === 0 ? ({\n xField: currentXField,\n yField: fields[i + 1],\n sizeField: fields[i + 2],\n }) : null; }).filter(function (x) { return x && x.yField && x.sizeField; });\n }\n return fields.map(function (currentXField, i) { return i % 2 === 0 ? ({\n xField: currentXField,\n yField: fields[i + 1],\n }) : null; }).filter(function (x) { return x && x.yField; });\n }\n var xField = fields[0];\n if (isBubbleChart) {\n return fields\n .map(function (yField, i) { return i % 2 === 1 ? ({\n xField: xField,\n yField: yField,\n sizeField: fields[i + 1],\n }) : null; })\n .filter(function (x) { return x && x.sizeField; });\n }\n return fields.filter(function (value, i) { return i > 0; }).map(function (yField) { return ({ xField: xField, yField: yField }); });\n };\n return ScatterChartProxy;\n}(CartesianChartProxy));\n\nvar __extends$T = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar HistogramChartProxy = /** @class */ (function (_super) {\n __extends$T(HistogramChartProxy, _super);\n function HistogramChartProxy(params) {\n return _super.call(this, params) || this;\n }\n HistogramChartProxy.prototype.getSeries = function (params) {\n var firstField = params.fields[0]; // multiple series are not supported!\n return [\n {\n type: this.standaloneChartType,\n xKey: firstField.colId,\n xName: firstField.displayName,\n yName: this.chartProxyParams.translate(\"histogramFrequency\"),\n areaPlot: false, // only constant width is supported via integrated charts\n }\n ];\n };\n HistogramChartProxy.prototype.getAxes = function (_params) {\n return [\n {\n type: 'number',\n position: 'bottom',\n },\n {\n type: 'number',\n position: 'left',\n },\n ];\n };\n return HistogramChartProxy;\n}(CartesianChartProxy));\n\nvar __extends$S = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar ChartOptionsService = /** @class */ (function (_super) {\n __extends$S(ChartOptionsService, _super);\n function ChartOptionsService(chartController) {\n var _this = _super.call(this) || this;\n _this.chartController = chartController;\n return _this;\n }\n ChartOptionsService.prototype.getChartOption = function (expression) {\n // TODO: We shouldn't be reading the chart implementation directly, but right now\n // it isn't possible to either get option defaults OR retrieve themed options.\n return _.get(this.getChart(), expression, undefined);\n };\n ChartOptionsService.prototype.setChartOption = function (expression, value, isSilent) {\n var _this = this;\n var chartSeriesTypes = this.chartController.getChartSeriesTypes();\n if (this.chartController.isComboChart()) {\n chartSeriesTypes.push('cartesian');\n }\n var chartOptions = {};\n // we need to update chart options on each series type for combo charts\n chartSeriesTypes.forEach(function (seriesType) {\n chartOptions = deepMerge(chartOptions, _this.createChartOptions({\n seriesType: seriesType,\n expression: expression,\n value: value\n }));\n });\n this.updateChart(chartOptions);\n if (!isSilent) {\n this.raiseChartOptionsChangedEvent();\n }\n };\n ChartOptionsService.prototype.awaitChartOptionUpdate = function (func) {\n var chart = this.chartController.getChartProxy().getChart();\n chart.waitForUpdate().then(function () { return func(); })\n .catch(function (e) { return console.error(\"AG Grid - chart update failed\", e); });\n };\n ChartOptionsService.prototype.getAxisProperty = function (expression) {\n var _a;\n return _.get((_a = this.getChart().axes) === null || _a === void 0 ? void 0 : _a[0], expression, undefined);\n };\n ChartOptionsService.prototype.setAxisProperty = function (expression, value) {\n var _this = this;\n var _a;\n // update axis options\n var chart = this.getChart();\n var chartOptions = {};\n (_a = chart.axes) === null || _a === void 0 ? void 0 : _a.forEach(function (axis) {\n chartOptions = deepMerge(chartOptions, _this.getUpdateAxisOptions(axis, expression, value));\n });\n this.updateChart(chartOptions);\n this.raiseChartOptionsChangedEvent();\n };\n ChartOptionsService.prototype.getLabelRotation = function (axisType) {\n var axis = this.getAxis(axisType);\n return _.get(axis, 'label.rotation', undefined);\n };\n ChartOptionsService.prototype.setLabelRotation = function (axisType, value) {\n var chartAxis = this.getAxis(axisType);\n if (chartAxis) {\n var chartOptions = this.getUpdateAxisOptions(chartAxis, 'label.rotation', value);\n this.updateChart(chartOptions);\n this.raiseChartOptionsChangedEvent();\n }\n };\n ChartOptionsService.prototype.getSeriesOption = function (expression, seriesType) {\n var series = this.getChart().series.find(function (s) { return ChartOptionsService.isMatchingSeries(seriesType, s); });\n return _.get(series, expression, undefined);\n };\n ChartOptionsService.prototype.setSeriesOption = function (expression, value, seriesType) {\n var chartOptions = this.createChartOptions({\n seriesType: seriesType,\n expression: \"series.\" + expression,\n value: value\n });\n this.updateChart(chartOptions);\n this.raiseChartOptionsChangedEvent();\n };\n ChartOptionsService.prototype.getPairedMode = function () {\n return this.chartController.getChartProxy().isPaired();\n };\n ChartOptionsService.prototype.setPairedMode = function (paired) {\n this.chartController.getChartProxy().setPaired(paired);\n };\n ChartOptionsService.prototype.getAxis = function (axisType) {\n var chart = this.getChart();\n if (!chart.axes || chart.axes.length < 1) {\n return undefined;\n }\n if (axisType === 'xAxis') {\n return (chart.axes && chart.axes[0].direction === 'x') ? chart.axes[0] : chart.axes[1];\n }\n return (chart.axes && chart.axes[1].direction === 'y') ? chart.axes[1] : chart.axes[0];\n };\n ChartOptionsService.prototype.getUpdateAxisOptions = function (chartAxis, expression, value) {\n var seriesType = getSeriesType(this.getChartType());\n var validAxisTypes = ['number', 'category', 'time', 'groupedCategory'];\n if (!validAxisTypes.includes(chartAxis.type)) {\n return {};\n }\n return this.createChartOptions({\n seriesType: seriesType,\n expression: \"axes.\" + chartAxis.type + \".\" + expression,\n value: value\n });\n };\n ChartOptionsService.prototype.getChartType = function () {\n return this.chartController.getChartType();\n };\n ChartOptionsService.prototype.getChart = function () {\n return this.chartController.getChartProxy().getChart();\n };\n ChartOptionsService.prototype.updateChart = function (chartOptions) {\n var chartRef = this.chartController.getChartProxy().getChartRef();\n AgChart.updateDelta(chartRef, chartOptions);\n };\n ChartOptionsService.prototype.createChartOptions = function (_a) {\n var seriesType = _a.seriesType, expression = _a.expression, value = _a.value;\n var overrides = {};\n var chartOptions = {\n theme: {\n overrides: overrides\n }\n };\n _.set(overrides, seriesType + \".\" + expression, value);\n return chartOptions;\n };\n ChartOptionsService.prototype.raiseChartOptionsChangedEvent = function () {\n var chartModel = this.chartController.getChartModel();\n var event = {\n type: Events.EVENT_CHART_OPTIONS_CHANGED,\n chartId: chartModel.chartId,\n chartType: chartModel.chartType,\n chartThemeName: this.chartController.getChartThemeName(),\n chartOptions: chartModel.chartOptions\n };\n this.eventService.dispatchEvent(event);\n };\n ChartOptionsService.isMatchingSeries = function (seriesType, series) {\n return VALID_SERIES_TYPES.includes(seriesType) && series.type === seriesType;\n };\n ChartOptionsService.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n return ChartOptionsService;\n}(BeanStub));\n\nvar __extends$R = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$f = (undefined && undefined.__assign) || function () {\n __assign$f = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$f.apply(this, arguments);\n};\nvar ComboChartProxy = /** @class */ (function (_super) {\n __extends$R(ComboChartProxy, _super);\n function ComboChartProxy(params) {\n return _super.call(this, params) || this;\n }\n ComboChartProxy.prototype.getAxes = function (params) {\n var fields = params ? params.fields : [];\n var fieldsMap = new Map(fields.map(function (f) { return [f.colId, f]; }));\n var _a = this.getYKeys(fields, params.seriesChartTypes), primaryYKeys = _a.primaryYKeys, secondaryYKeys = _a.secondaryYKeys;\n var axes = [\n {\n type: this.getXAxisType(params),\n position: 'bottom',\n gridStyle: [{ stroke: undefined }],\n },\n ];\n if (primaryYKeys.length > 0) {\n axes.push({\n type: 'number',\n keys: primaryYKeys,\n position: 'left',\n });\n }\n if (secondaryYKeys.length > 0) {\n secondaryYKeys.forEach(function (secondaryYKey, i) {\n var field = fieldsMap.get(secondaryYKey);\n var secondaryAxisIsVisible = field && field.colId === secondaryYKey;\n if (!secondaryAxisIsVisible) {\n return;\n }\n var secondaryAxisOptions = {\n type: 'number',\n keys: [secondaryYKey],\n position: 'right',\n };\n var primaryYAxis = primaryYKeys.some(function (primaryYKey) { return !!fieldsMap.get(primaryYKey); });\n var lastSecondaryAxis = i === secondaryYKeys.length - 1;\n if (!primaryYAxis && lastSecondaryAxis) ;\n else {\n secondaryAxisOptions.gridStyle = [{ stroke: undefined }];\n }\n axes.push(secondaryAxisOptions);\n });\n }\n return axes;\n };\n ComboChartProxy.prototype.getSeries = function (params) {\n var fields = params.fields, category = params.category, seriesChartTypes = params.seriesChartTypes;\n return fields.map(function (field) {\n var seriesChartType = seriesChartTypes.find(function (s) { return s.colId === field.colId; });\n if (seriesChartType) {\n var chartType = seriesChartType.chartType;\n var grouped = ['groupedColumn', 'groupedBar'].includes(chartType);\n var groupedOpts = grouped ? { grouped: true } : {};\n return __assign$f({ type: getSeriesType(chartType), xKey: category.id, yKey: field.colId, yName: field.displayName, stacked: ['stackedArea', 'stackedColumn'].includes(chartType) }, groupedOpts);\n }\n });\n };\n ComboChartProxy.prototype.getYKeys = function (fields, seriesChartTypes) {\n var primaryYKeys = [];\n var secondaryYKeys = [];\n fields.forEach(function (field) {\n var colId = field.colId;\n var seriesChartType = seriesChartTypes.find(function (s) { return s.colId === colId; });\n if (seriesChartType) {\n seriesChartType.secondaryAxis ? secondaryYKeys.push(colId) : primaryYKeys.push(colId);\n }\n });\n return { primaryYKeys: primaryYKeys, secondaryYKeys: secondaryYKeys };\n };\n return ComboChartProxy;\n}(CartesianChartProxy));\n\nvar __extends$Q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$L = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$f = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar GridChartComp = /** @class */ (function (_super) {\n __extends$Q(GridChartComp, _super);\n function GridChartComp(params) {\n var _this = _super.call(this, GridChartComp.TEMPLATE) || this;\n _this.params = params;\n return _this;\n }\n GridChartComp.prototype.init = function () {\n var _this = this;\n var availableChartThemes = this.gridOptionsService.get('chartThemes') || DEFAULT_THEMES;\n if (availableChartThemes.length < 1) {\n throw new Error('Cannot create chart: no chart themes are available to be used.');\n }\n var chartThemeName = this.params.chartThemeName;\n if (!_.includes(availableChartThemes, chartThemeName)) {\n chartThemeName = availableChartThemes[0];\n }\n var modelParams = {\n chartId: this.params.chartId,\n pivotChart: this.params.pivotChart,\n chartType: this.params.chartType,\n chartThemeName: chartThemeName,\n aggFunc: this.params.aggFunc,\n cellRange: this.params.cellRange,\n suppressChartRanges: this.params.suppressChartRanges,\n unlinkChart: this.params.unlinkChart,\n crossFiltering: this.params.crossFiltering,\n seriesChartTypes: this.params.seriesChartTypes,\n };\n var isRtl = this.gridOptionsService.is('enableRtl');\n this.addCssClass(isRtl ? 'ag-rtl' : 'ag-ltr');\n // only the chart controller interacts with the chart model\n var model = this.createBean(new ChartDataModel(modelParams));\n this.chartController = this.createManagedBean(new ChartController(model));\n this.validateCustomThemes();\n // create chart before dialog to ensure dialog is correct size\n this.createChart();\n if (this.params.insideDialog) {\n this.addDialog();\n }\n this.addMenu();\n this.addTitleEditComp();\n this.addManagedListener(this.getGui(), 'focusin', this.setActiveChartCellRange.bind(this));\n this.addManagedListener(this.chartController, ChartController.EVENT_CHART_MODEL_UPDATE, this.update.bind(this));\n if (this.chartMenu) {\n // chart menu may not exist, i.e. cross filtering\n this.addManagedListener(this.chartMenu, ChartMenu.EVENT_DOWNLOAD_CHART, function () { return _this.downloadChart(); });\n }\n this.update();\n this.raiseChartCreatedEvent();\n };\n GridChartComp.prototype.validateCustomThemes = function () {\n var suppliedThemes = this.getChartThemes();\n var customChartThemes = this.gridOptionsService.get('customChartThemes');\n if (customChartThemes) {\n _.getAllKeysInObjects([customChartThemes]).forEach(function (customThemeName) {\n if (!_.includes(suppliedThemes, customThemeName)) {\n console.warn(\"AG Grid: a custom chart theme with the name '\" + customThemeName + \"' has been \" +\n \"supplied but not added to the 'chartThemes' list\");\n }\n });\n }\n };\n GridChartComp.prototype.createChart = function () {\n var _this = this;\n // if chart already exists, destroy it and remove it from DOM\n var chartInstance = undefined;\n if (this.chartProxy) {\n chartInstance = this.chartProxy.destroy({ keepChartInstance: true });\n }\n var crossFilterCallback = function (event, reset) {\n var ctx = _this.params.crossFilteringContext;\n ctx.lastSelectedChartId = reset ? '' : _this.chartController.getChartId();\n if (reset) {\n _this.params.crossFilteringResetCallback();\n }\n _this.crossFilterService.filter(event, reset);\n };\n var chartType = this.chartController.getChartType();\n var chartProxyParams = {\n chartType: chartType,\n chartInstance: chartInstance,\n getChartThemeName: this.getChartThemeName.bind(this),\n getChartThemes: this.getChartThemes.bind(this),\n customChartThemes: this.gridOptionsService.get('customChartThemes'),\n getGridOptionsChartThemeOverrides: function () { return _this.getGridOptionsChartThemeOverrides(); },\n getExtraPaddingDirections: function () { var _a, _b; return (_b = (_a = _this.chartMenu) === null || _a === void 0 ? void 0 : _a.getExtraPaddingDirections()) !== null && _b !== void 0 ? _b : []; },\n apiChartThemeOverrides: this.params.chartThemeOverrides,\n crossFiltering: this.params.crossFiltering,\n crossFilterCallback: crossFilterCallback,\n parentElement: this.eChart,\n grouping: this.chartController.isGrouping(),\n chartThemeToRestore: this.params.chartThemeName,\n chartOptionsToRestore: this.params.chartOptionsToRestore,\n chartPaletteToRestore: this.params.chartPaletteToRestore,\n seriesChartTypes: this.chartController.getSeriesChartTypes(),\n translate: function (toTranslate, defaultText) { return _this.chartTranslationService.translate(toTranslate, defaultText); },\n };\n // ensure 'restoring' options are not reused when switching chart types\n this.params.chartOptionsToRestore = undefined;\n // set local state used to detect when chart changes\n this.chartType = chartType;\n this.chartThemeName = this.chartController.getChartThemeName();\n this.chartProxy = GridChartComp.createChartProxy(chartProxyParams);\n if (!this.chartProxy) {\n console.warn('AG Grid: invalid chart type supplied: ', chartProxyParams.chartType);\n return;\n }\n var canvas = this.eChart.querySelector('canvas');\n if (canvas) {\n canvas.classList.add('ag-charts-canvas');\n }\n this.chartController.setChartProxy(this.chartProxy);\n this.chartOptionsService = this.createBean(new ChartOptionsService(this.chartController));\n this.titleEdit && this.titleEdit.refreshTitle(this.chartController, this.chartOptionsService);\n };\n GridChartComp.prototype.getChartThemeName = function () {\n return this.chartController.getChartThemeName();\n };\n GridChartComp.prototype.getChartThemes = function () {\n return this.chartController.getThemes();\n };\n GridChartComp.prototype.getGridOptionsChartThemeOverrides = function () {\n return this.gridOptionsService.get('chartThemeOverrides');\n };\n GridChartComp.createChartProxy = function (chartProxyParams) {\n switch (chartProxyParams.chartType) {\n case 'column':\n case 'bar':\n case 'groupedColumn':\n case 'stackedColumn':\n case 'normalizedColumn':\n case 'groupedBar':\n case 'stackedBar':\n case 'normalizedBar':\n return new BarChartProxy(chartProxyParams);\n case 'pie':\n case 'doughnut':\n return new PieChartProxy(chartProxyParams);\n case 'area':\n case 'stackedArea':\n case 'normalizedArea':\n return new AreaChartProxy(chartProxyParams);\n case 'line':\n return new LineChartProxy(chartProxyParams);\n case 'scatter':\n case 'bubble':\n return new ScatterChartProxy(chartProxyParams);\n case 'histogram':\n return new HistogramChartProxy(chartProxyParams);\n case 'columnLineCombo':\n case 'areaColumnCombo':\n case 'customCombo':\n return new ComboChartProxy(chartProxyParams);\n default:\n throw \"AG Grid: Unable to create chart as an invalid chartType = '\" + chartProxyParams.chartType + \"' was supplied.\";\n }\n };\n GridChartComp.prototype.addDialog = function () {\n var _this = this;\n var title = this.chartTranslationService.translate(this.params.pivotChart ? 'pivotChartTitle' : 'rangeChartTitle');\n var _a = this.getBestDialogSize(), width = _a.width, height = _a.height;\n this.chartDialog = new AgDialog({\n resizable: true,\n movable: true,\n maximizable: true,\n title: title,\n width: width,\n height: height,\n component: this,\n centered: true,\n closable: true\n });\n this.getContext().createBean(this.chartDialog);\n this.chartDialog.addEventListener(AgDialog.EVENT_DESTROYED, function () { return _this.destroy(); });\n };\n GridChartComp.prototype.getBestDialogSize = function () {\n var popupParent = this.popupService.getPopupParent();\n var maxWidth = _.getAbsoluteWidth(popupParent) * 0.75;\n var maxHeight = _.getAbsoluteHeight(popupParent) * 0.75;\n var ratio = 0.553;\n var chart = this.chartProxy.getChart();\n var width = this.params.insideDialog ? 850 : chart.width;\n var height = this.params.insideDialog ? 470 : chart.height;\n if (width > maxWidth || height > maxHeight) {\n width = Math.min(width, maxWidth);\n height = Math.round(width * ratio);\n if (height > maxHeight) {\n height = maxHeight;\n width = Math.min(width, Math.round(height / ratio));\n }\n }\n return { width: width, height: height };\n };\n GridChartComp.prototype.addMenu = function () {\n if (!this.params.crossFiltering) {\n this.chartMenu = this.createBean(new ChartMenu(this.eChartContainer, this.eMenuContainer, this.chartController, this.chartOptionsService));\n this.eChartContainer.appendChild(this.chartMenu.getGui());\n }\n };\n GridChartComp.prototype.addTitleEditComp = function () {\n this.titleEdit = this.createBean(new TitleEdit(this.chartMenu));\n this.eTitleEditContainer.appendChild(this.titleEdit.getGui());\n if (this.chartProxy) {\n this.titleEdit.refreshTitle(this.chartController, this.chartOptionsService);\n }\n };\n GridChartComp.prototype.update = function (params) {\n var _this = this;\n // update chart model for api.updateChart()\n if (params === null || params === void 0 ? void 0 : params.chartId) {\n var validUpdate = this.chartController.update(params);\n if (!validUpdate) {\n return; // warning already logged!\n }\n }\n var chartTypeChanged = this.chartTypeChanged(params);\n // recreate chart if chart type has changed\n if (chartTypeChanged)\n this.createChart();\n // update chart options if chart type hasn't changed or if overrides are supplied\n this.updateChart(params === null || params === void 0 ? void 0 : params.chartThemeOverrides);\n if (params === null || params === void 0 ? void 0 : params.chartId) {\n this.chartProxy.getChart().waitForUpdate().then(function () {\n _this.chartController.raiseChartApiUpdateEvent();\n });\n }\n };\n GridChartComp.prototype.updateChart = function (updatedOverrides) {\n var _this = this;\n var chartProxy = this.chartProxy;\n var selectedCols = this.chartController.getSelectedValueColState();\n var fields = selectedCols.map(function (c) { return ({ colId: c.colId, displayName: c.displayName }); });\n var data = this.chartController.getChartData();\n var chartEmpty = this.handleEmptyChart(data, fields);\n if (chartEmpty) {\n return;\n }\n var chartUpdateParams = this.chartController.getChartUpdateParams(updatedOverrides);\n chartProxy.update(chartUpdateParams);\n this.chartProxy.getChart().waitForUpdate().then(function () {\n _this.chartController.raiseChartUpdatedEvent();\n });\n this.titleEdit.refreshTitle(this.chartController, this.chartOptionsService);\n };\n GridChartComp.prototype.chartTypeChanged = function (updateParams) {\n var _a = __read$f([this.chartController.getChartType(), updateParams === null || updateParams === void 0 ? void 0 : updateParams.chartType], 2), currentType = _a[0], updatedChartType = _a[1];\n return this.chartType !== currentType || (!!updatedChartType && this.chartType !== updatedChartType);\n };\n GridChartComp.prototype.getChartModel = function () {\n return this.chartController.getChartModel();\n };\n GridChartComp.prototype.getChartImageDataURL = function (fileFormat) {\n return this.chartProxy.getChartImageDataURL(fileFormat);\n };\n GridChartComp.prototype.handleEmptyChart = function (data, fields) {\n var pivotModeDisabled = this.chartController.isPivotChart() && !this.chartController.isPivotMode();\n var minFieldsRequired = 1;\n if (this.chartController.isActiveXYChart()) {\n minFieldsRequired = this.chartController.getChartType() === 'bubble' ? 3 : 2;\n }\n var isEmptyChart = fields.length < minFieldsRequired || data.length === 0;\n if (this.eChart) {\n var isEmpty = pivotModeDisabled || isEmptyChart;\n _.setDisplayed(this.eChart, !isEmpty);\n _.setDisplayed(this.eEmpty, isEmpty);\n }\n if (pivotModeDisabled) {\n this.eEmpty.innerText = this.chartTranslationService.translate('pivotChartRequiresPivotMode');\n return true;\n }\n if (isEmptyChart) {\n this.eEmpty.innerText = this.chartTranslationService.translate('noDataToChart');\n return true;\n }\n return false;\n };\n GridChartComp.prototype.downloadChart = function (dimensions, fileName, fileFormat) {\n this.chartProxy.downloadChart(dimensions, fileName, fileFormat);\n };\n GridChartComp.prototype.openChartToolPanel = function (panel) {\n var menuPanel = panel ? CHART_TOOL_PANEL_MENU_OPTIONS[panel] : panel;\n this.chartMenu.showMenu(menuPanel);\n };\n GridChartComp.prototype.closeChartToolPanel = function () {\n this.chartMenu.hideMenu();\n };\n GridChartComp.prototype.getChartId = function () {\n return this.chartController.getChartId();\n };\n GridChartComp.prototype.getUnderlyingChart = function () {\n return this.chartProxy.getChartRef();\n };\n GridChartComp.prototype.crossFilteringReset = function () {\n this.chartProxy.crossFilteringReset();\n };\n GridChartComp.prototype.setActiveChartCellRange = function (focusEvent) {\n if (this.getGui().contains(focusEvent.relatedTarget)) {\n return;\n }\n this.chartController.setChartRange(true);\n this.gridApi.focusService.clearFocusedCell();\n };\n GridChartComp.prototype.raiseChartCreatedEvent = function () {\n var _this = this;\n var event = {\n type: Events.EVENT_CHART_CREATED,\n chartId: this.chartController.getChartId()\n };\n this.chartProxy.getChart().waitForUpdate().then(function () {\n _this.eventService.dispatchEvent(event);\n });\n };\n GridChartComp.prototype.raiseChartDestroyedEvent = function () {\n var event = {\n type: Events.EVENT_CHART_DESTROYED,\n chartId: this.chartController.getChartId(),\n };\n this.eventService.dispatchEvent(event);\n };\n GridChartComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n if (this.chartProxy) {\n this.chartProxy.destroy();\n }\n this.destroyBean(this.chartMenu);\n this.destroyBean(this.titleEdit);\n // don't want to invoke destroy() on the Dialog (prevents destroy loop)\n if (this.chartDialog && this.chartDialog.isAlive()) {\n this.destroyBean(this.chartDialog);\n }\n // if the user is providing containers for the charts, we need to clean up, otherwise the old chart\n // data will still be visible although the chart is no longer bound to the grid\n var eGui = this.getGui();\n _.clearElement(eGui);\n // remove from parent, so if user provided container, we detach from the provided dom element\n _.removeFromParent(eGui);\n this.raiseChartDestroyedEvent();\n };\n GridChartComp.TEMPLATE = \"
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\";\n __decorate$L([\n RefSelector('eChart')\n ], GridChartComp.prototype, \"eChart\", void 0);\n __decorate$L([\n RefSelector('eChartContainer')\n ], GridChartComp.prototype, \"eChartContainer\", void 0);\n __decorate$L([\n RefSelector('eMenuContainer')\n ], GridChartComp.prototype, \"eMenuContainer\", void 0);\n __decorate$L([\n RefSelector('eEmpty')\n ], GridChartComp.prototype, \"eEmpty\", void 0);\n __decorate$L([\n RefSelector('eTitleEditContainer')\n ], GridChartComp.prototype, \"eTitleEditContainer\", void 0);\n __decorate$L([\n Autowired('chartCrossFilterService')\n ], GridChartComp.prototype, \"crossFilterService\", void 0);\n __decorate$L([\n Autowired('chartTranslationService')\n ], GridChartComp.prototype, \"chartTranslationService\", void 0);\n __decorate$L([\n Autowired('gridApi')\n ], GridChartComp.prototype, \"gridApi\", void 0);\n __decorate$L([\n Autowired('popupService')\n ], GridChartComp.prototype, \"popupService\", void 0);\n __decorate$L([\n PostConstruct\n ], GridChartComp.prototype, \"init\", null);\n return GridChartComp;\n}(Component));\n\n// DO NOT UPDATE MANUALLY: Generated from script during build time\nvar VERSION$a = '30.2.0';\n\nvar __assign$e = (undefined && undefined.__assign) || function () {\n __assign$e = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$e.apply(this, arguments);\n};\nvar __rest$2 = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __read$e = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __values$4 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nfunction upgradeChartModel(model) {\n model.version;\n if (model.version == null) {\n // Try to guess the version so we can apply the right subset of migrations.\n model.version = heuristicVersionDetection(model);\n }\n model = migrateIfBefore('23.0.0', model, migrateV23);\n model = migrateIfBefore('24.0.0', model, migrateV24);\n model = migrateIfBefore('25.1.0', model, migrateV25_1);\n model = migrateIfBefore('26.0.0', model, migrateV26);\n model = migrateIfBefore('26.1.0', model, migrateV26_1);\n // Switch from iChartOptions to iAgChartOptions....\n model = migrateIfBefore('26.2.0', model, migrateV26_2);\n model = migrateIfBefore('28.0.0', model, migrateV28);\n model = migrateIfBefore('28.2.0', model, migrateV28_2);\n model = migrateIfBefore('29.0.0', model, migrateV29);\n model = migrateIfBefore('29.1.0', model, migrateV29_1);\n model = migrateIfBefore('29.2.0', model, migrateV29_2);\n model = migrateIfBefore('30.0.0', model, migrateV30);\n model = cleanup(model);\n // Bump version to latest.\n model = migrateIfBefore(VERSION$a, model, function (m) { return m; });\n return model;\n}\nfunction migrateV23(model) {\n // https://github.com/ag-grid/ag-grid/commit/76c6744ff2b732d298d1ade73c122188854b5bac\n model = jsonRename('chartOptions.legend.item.marker.type', 'shape', model);\n model = jsonRename('chartOptions.seriesDefaults.marker.type', 'shape', model);\n // https://github.com/ag-grid/ag-grid/commit/7bdf2cfd666acda758a818733a9f9cb35ac1d7a7\n model = jsonRename('chartOptions.legend.padding', 'spacing', model);\n return model;\n}\nfunction migrateV24(model) {\n var _a;\n // https://github.com/ag-grid/ag-grid/commit/f4e854e3dc459400fa00e6da2873cb8e9cfff6fe#\n model = jsonDelete('chartOptions.seriesDefaults.marker.minSize', model);\n var _b = model, chartType = _b.chartType, chartPalette = _b.chartPalette, // Migrate.\n _c = _b.chartOptions, xAxis = _c.xAxis, yAxis = _c.yAxis, chartOptions = __rest$2(_c, [\"xAxis\", \"yAxis\"]), chartModel = __rest$2(_b, [\"chartType\", \"chartPalette\", \"chartOptions\"]);\n var axesTypes = getLegacyAxisType(chartType);\n var axes = axesTypes === null || axesTypes === void 0 ? void 0 : axesTypes.map(function (type, i) { return (__assign$e({ type: type }, (i === 0 ? xAxis : yAxis))); });\n return __assign$e({ chartType: chartType, chartThemeName: (_a = LEGACY_PALETTES[chartPalette]) !== null && _a !== void 0 ? _a : 'ag-default', chartOptions: __assign$e(__assign$e({}, chartOptions), { axes: axes, xAxis: xAxis, yAxis: yAxis }) }, chartModel);\n}\nfunction migrateV25_1(model) {\n // https://github.com/ag-grid/ag-grid/commit/61943f9fecbfb5ac1b9a1fd93788f9fdd8687181\n model = jsonRename('chartOptions.seriesDefaults.label.minRequiredAngle', 'minAngle', model);\n return model;\n}\nfunction migrateV26(model) {\n // https://github.com/ag-grid/ag-grid/commit/df2445d88e64cb4e831d6163104a0fa60ccde3b5\n var highlightOptUpdate = function (_a) {\n var dimOpacity = _a.dimOpacity, opts = __rest$2(_a, [\"dimOpacity\"]);\n return (__assign$e(__assign$e({}, opts), (dimOpacity != null ? { series: { dimOpacity: dimOpacity } } : {})));\n };\n model = jsonMutate('chartOptions.seriesDefaults.highlightStyle', model, highlightOptUpdate);\n // https://github.com/ag-grid/ag-grid/commit/f4e854e3dc459400fa00e6da2873cb8e9cfff6fe#\n model = jsonDelete('chart', model);\n model = jsonDelete('chartOptions.seriesDefaults.tooltipClass', model);\n model = jsonDelete('chartOptions.seriesDefaults.tooltipTracking', model);\n // Cleanup label.rotation === 0, which was treated as 'use the default' on reload prior to 26.\n model = jsonDeleteDefault('chartOptions.axes[].label.rotation', 0, model);\n model = jsonDeleteDefault('chartOptions.axes[].label.rotation', 335, model);\n return model;\n}\nfunction migrateV26_1(model) {\n // https://github.com/ag-grid/ag-grid/commit/df2445d88e64cb4e831d6163104a0fa60ccde3b5\n var highlightOptUpdate = function (_a) {\n var item = _a.item, series = _a.series, opts = __rest$2(_a, [\"item\", \"series\"]);\n return (__assign$e({ item: __assign$e(__assign$e({}, opts), item) }, (series ? { series: series } : {})));\n };\n model = jsonMutate('chartOptions.seriesDefaults.highlightStyle', model, highlightOptUpdate);\n model = jsonMutate('chartOptions.series[].highlightStyle', model, highlightOptUpdate);\n return model;\n}\nfunction migrateV26_2(model) {\n // https://github.com/ag-grid/ag-grid/commit/8b2e223cb1a687cb6c1d70b9f75f52fa29d00341\n model = jsonMove('chartOptions.seriesDefaults.fill.opacity', 'chartOptions.seriesDefaults.fillOpacity', model);\n model = jsonMove('chartOptions.seriesDefaults.stroke.opacity', 'chartOptions.seriesDefaults.strokeOpacity', model);\n model = jsonMove('chartOptions.seriesDefaults.stroke.width', 'chartOptions.seriesDefaults.strokeWidth', model);\n model = jsonDelete('chartOptions.seriesDefaults.fill', model);\n model = jsonDelete('chartOptions.seriesDefaults.stroke', model);\n model = jsonDelete('chartOptions.seriesDefaults.callout.colors', model);\n model = jsonDelete('chartOptions.xAxis', model);\n model = jsonDelete('chartOptions.yAxis', model);\n var _a = model, chartType = _a.chartType, _b = _a.chartOptions, axes = _b.axes; _b.series; var seriesDefaults = _b.seriesDefaults, otherChartOptions = __rest$2(_b, [\"axes\", \"series\", \"seriesDefaults\"]), otherModelProps = __rest$2(_a, [\"chartType\", \"chartOptions\"]);\n // At 26.2.0 combination charts weren't supported, so we can safely assume a single series type.\n // We can't rely on the `series.type` field as it was incorrect (in v25.0.0 line chart has an\n // `area` series).\n var seriesTypes = [getSeriesType(chartType)];\n var chartTypeMixin = {};\n if (!seriesTypes.includes('pie')) {\n var minimalAxis_1 = { top: {}, bottom: {}, left: {}, right: {} };\n var updatedAxes_1 = axes\n .map(function (_a) {\n var _b;\n var type = _a.type, axisProps = __rest$2(_a, [\"type\"]);\n return (_b = {},\n _b[type] = __assign$e(__assign$e({}, minimalAxis_1), axisProps),\n _b);\n })\n .reduce(merge, {});\n ALL_AXIS_TYPES.filter(function (v) { return updatedAxes_1[v] == null; }).forEach(function (v) {\n updatedAxes_1[v] = __assign$e({}, minimalAxis_1);\n });\n chartTypeMixin.axes = updatedAxes_1;\n }\n var updatedChartOptions = seriesTypes\n .map(function (t) {\n var _a;\n return (_a = {},\n _a[t] = __assign$e(__assign$e(__assign$e({}, chartTypeMixin), { series: seriesDefaults }), otherChartOptions),\n _a);\n })\n .reduce(merge, {});\n model = __assign$e(__assign$e({}, otherModelProps), { chartType: chartType, chartOptions: updatedChartOptions });\n return model;\n}\nfunction migrateV28(model) {\n model = jsonDelete('chartOptions.*.title.padding', model);\n model = jsonDelete('chartOptions.*.subtitle.padding', model);\n model = jsonDelete('chartOptions.*.axes.*.title.padding', model);\n model = jsonBackfill('chartOptions.*.axes.*.title.enabled', false, model);\n return model;\n}\nfunction migrateV28_2(model) {\n model = jsonRename('chartOptions.pie.series.callout', 'calloutLine', model);\n model = jsonRename('chartOptions.pie.series.label', 'calloutLabel', model);\n model = jsonRename('chartOptions.pie.series.labelKey', 'sectorLabelKey', model);\n model = jsonRename('chartOptions.pie.series.labelName', 'sectorLabelName', model);\n // series.yKeys => yKey ?\n // series.yNames => yName ?\n return model;\n}\nfunction migrateV29(model) {\n model = jsonMoveIfMissing('chartOptions.scatter.series.fill', 'chartOptions.scatter.series.marker.fill', model);\n model = jsonMoveIfMissing('chartOptions.scatter.series.fillOpacity', 'chartOptions.scatter.series.marker.fillOpacity', model);\n model = jsonMoveIfMissing('chartOptions.scatter.series.stroke', 'chartOptions.scatter.series.marker.stroke', model);\n model = jsonMoveIfMissing('chartOptions.scatter.series.strokeOpacity', 'chartOptions.scatter.series.marker.strokeOpacity', model);\n model = jsonMoveIfMissing('chartOptions.scatter.series.strokeWidth', 'chartOptions.scatter.series.marker.strokeWidth', model);\n model = jsonMove('chartOptions.scatter.series.paired', 'chartOptions.scatter.paired', model);\n return model;\n}\nfunction migrateV29_1(model) {\n model = jsonDelete('chartOptions.axes[].tick.count', model);\n return model;\n}\nfunction migrateV29_2(model) {\n // https://github.com/ag-grid/ag-grid/commit/ce11956492e42e845932edb4e05d7b0b21db5c61\n var tooltipOptUpdate = function (_a) {\n var _b, _c, _d, _e;\n var tracking = _a.tracking, opts = __rest$2(_a, [\"tracking\"]);\n var output = __assign$e({}, opts);\n if (tracking === false) {\n (_b = output.position) !== null && _b !== void 0 ? _b : (output.position = { type: 'pointer' });\n (_c = output.range) !== null && _c !== void 0 ? _c : (output.range = 'nearest');\n }\n else if (tracking === true) {\n (_d = output.position) !== null && _d !== void 0 ? _d : (output.position = { type: 'node' });\n (_e = output.range) !== null && _e !== void 0 ? _e : (output.range = 'nearest');\n }\n return output;\n };\n model = jsonMutate('chartOptions.*.tooltip', model, tooltipOptUpdate);\n return model;\n}\nfunction migrateV30(model) {\n // Repeated from migrateV28_2() as they were applied retrospectively for the v30 release.\n model = jsonRename('chartOptions.pie.series.labelKey', 'sectorLabelKey', model);\n model = jsonRename('chartOptions.pie.series.labelName', 'sectorLabelName', model);\n // Late-applied migrations for deprecations in the 29.x.y range.\n model = migrateV29_1(model);\n model = migrateV29_2(model);\n // Actual v30 changes.\n model = jsonDelete('chartOptions.*.series.flipXY', model);\n model = jsonAdd('chartOptions.common.legend.enabled', true, model);\n model = jsonBackfill('chartOptions.common.legend.position', 'right', model);\n return model;\n}\nfunction cleanup(model) {\n // Remove fixed width/height - this has never been supported via UI configuration.\n model = jsonDelete('chartOptions.*.width', model);\n model = jsonDelete('chartOptions.*.height', model);\n model = jsonBackfill('chartOptions.*.axes.category.label.autoRotate', true, model);\n return model;\n}\nfunction heuristicVersionDetection(model) {\n var _a, _b;\n var modelAny = model;\n if (model.version != null) {\n return model.version;\n }\n var hasKey = function (obj) {\n var keys = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n keys[_i - 1] = arguments[_i];\n }\n return Object.keys(obj || {}).some(function (k) { return keys.includes(k); });\n };\n var chartOptions = modelAny.chartOptions;\n var seriesOptions = hasKey(chartOptions, 'seriesDefaults')\n ? chartOptions === null || chartOptions === void 0 ? void 0 : chartOptions.seriesDefaults\n : chartOptions === null || chartOptions === void 0 ? void 0 : chartOptions[Object.keys(chartOptions)[0]];\n var hints = {\n '27.0.0': hasKey(modelAny, 'seriesChartTypes'),\n '26.2.0': !hasKey(chartOptions, 'seriesDefaults'),\n '26.1.0': hasKey(seriesOptions === null || seriesOptions === void 0 ? void 0 : seriesOptions.highlightStyle, 'item'),\n '26.0.0': hasKey(seriesOptions === null || seriesOptions === void 0 ? void 0 : seriesOptions.highlightStyle, 'series'),\n // '26.0.0': modelAny.chart === undefined,\n '25.1.0': hasKey(seriesOptions === null || seriesOptions === void 0 ? void 0 : seriesOptions.label, 'minAngle'),\n '25.0.0': hasKey(modelAny, 'modelType', 'aggFunc', 'unlinkChart', 'suppressChartRanges') ||\n hasKey(seriesOptions, 'lineDash', 'lineDashOffset'),\n '24.0.0': hasKey(modelAny, 'chartThemeName', 'chart') || hasKey(chartOptions, 'series'),\n '23.2.0': hasKey(chartOptions, 'navigator'),\n '23.0.0': hasKey((_b = (_a = chartOptions === null || chartOptions === void 0 ? void 0 : chartOptions.legend) === null || _a === void 0 ? void 0 : _a.item) === null || _b === void 0 ? void 0 : _b.marker, 'shape'),\n '22.1.0': hasKey(modelAny, 'chartPalette', 'chartType'),\n };\n // Default to 27.1.0, the last version before we added `version`.\n var defaultVersion = '27.1.0';\n var matchingHints = Object.entries(hints).filter(function (_a) {\n var _b = __read$e(_a, 2); _b[0]; var match = _b[1];\n return match;\n });\n var _c = __read$e(matchingHints[0], 1), _d = _c[0], heuristicVersion = _d === void 0 ? defaultVersion : _d;\n return heuristicVersion;\n}\nfunction migrateIfBefore(maxVersion, model, migration) {\n if (versionNumber(maxVersion) > versionNumber(model.version)) {\n var result = migration(model);\n result.version = maxVersion;\n return result;\n }\n return model;\n}\nfunction versionParts(version) {\n var split = typeof version === 'string' ? version.split('.').map(function (v) { return Number(v); }) : [];\n if (split.length !== 3 || split.some(function (v) { return isNaN(v); })) {\n throw new Error('AG Grid - Illegal version string: ' + version);\n }\n return {\n major: split[0],\n minor: split[1],\n patch: split[2],\n };\n}\nfunction versionNumber(version) {\n var _a = versionParts(version), major = _a.major, minor = _a.minor, patch = _a.patch;\n // Return a number of the form MMmmPP.\n return major * 10000 + minor * 100 + patch;\n}\nfunction jsonDeleteDefault(path, defaultValue, json) {\n return jsonMutateProperty(path, true, json, function (parent, prop) {\n if (parent[prop] === defaultValue) {\n delete parent[prop];\n }\n });\n}\nfunction jsonBackfill(path, defaultValue, json) {\n return jsonMutateProperty(path, false, json, function (parent, prop) {\n if (parent[prop] == null) {\n parent[prop] = defaultValue;\n }\n });\n}\nfunction jsonAdd(path, value, json) {\n var _a;\n if (typeof path === 'string') {\n path = path.split('.');\n }\n var nextPath = path[0];\n if (path.length > 1) {\n json[nextPath] = jsonAdd(path.slice(1), value, (_a = json[nextPath]) !== null && _a !== void 0 ? _a : {});\n }\n var hasProperty = Object.keys(json).includes(nextPath);\n if (!hasProperty) {\n json[nextPath] = value;\n }\n return json;\n}\nfunction jsonMove(from, to, json) {\n var valueToMove = undefined;\n var valueFound = false;\n json = jsonMutateProperty(from, true, json, function (parent, prop) {\n valueFound = true;\n valueToMove = parent[prop];\n delete parent[prop];\n });\n if (!valueFound) {\n return json;\n }\n return jsonMutateProperty(to, false, json, function (parent, prop) {\n parent[prop] = valueToMove;\n });\n}\nfunction jsonMoveIfMissing(from, to, json) {\n var valueToMove = undefined;\n var valueFound = false;\n json = jsonMutateProperty(from, true, json, function (parent, prop) {\n valueFound = true;\n valueToMove = parent[prop];\n delete parent[prop];\n });\n if (!valueFound) {\n return json;\n }\n return jsonMutateProperty(to, false, json, function (parent, prop) {\n if (parent[prop] === undefined) {\n parent[prop] = valueToMove;\n }\n });\n}\nfunction jsonRename(path, renameTo, json) {\n return jsonMutateProperty(path, true, json, function (parent, prop) {\n parent[renameTo] = parent[prop];\n delete parent[prop];\n });\n}\nfunction jsonDelete(path, json) {\n return jsonMutateProperty(path, true, json, function (parent, prop) { return delete parent[prop]; });\n}\nfunction jsonMutateProperty(path, skipMissing, json, mutator) {\n var pathElements = path instanceof Array ? path : path.split('.');\n var parentPathElements = pathElements.slice(0, pathElements.length - 1);\n var targetName = pathElements[pathElements.length - 1];\n return jsonMutate(parentPathElements, json, function (parent) {\n var hasProperty = Object.keys(parent).includes(targetName);\n if (skipMissing && !hasProperty) {\n return parent;\n }\n var result = __assign$e({}, parent);\n mutator(result, targetName);\n return result;\n });\n}\nfunction jsonMutate(path, json, mutator) {\n var e_1, _a;\n var pathElements = path instanceof Array ? path : path.split('.');\n // Clone to avoid mutating original input.\n json = __assign$e({}, json);\n if (pathElements.length === 0) {\n return mutator(json);\n }\n else if (pathElements[0].startsWith('{')) {\n var pathOptions = pathElements[0].substring(1, pathElements[0].lastIndexOf('}')).split(',');\n try {\n for (var pathOptions_1 = __values$4(pathOptions), pathOptions_1_1 = pathOptions_1.next(); !pathOptions_1_1.done; pathOptions_1_1 = pathOptions_1.next()) {\n var pathOption = pathOptions_1_1.value;\n if (json[pathOption] != null) {\n json[pathOption] = jsonMutate(pathElements.slice(1), json[pathOption], mutator);\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (pathOptions_1_1 && !pathOptions_1_1.done && (_a = pathOptions_1.return)) _a.call(pathOptions_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n }\n else if (pathElements[0].endsWith('[]')) {\n var arrayName = pathElements[0].substring(0, path[0].indexOf('['));\n if (json[arrayName] instanceof Array) {\n json[arrayName] = json[arrayName].map(function (v) { return jsonMutate(pathElements.slice(1), v, mutator); });\n }\n }\n else if (pathElements[0] === '*') {\n for (var jsonProp in json) {\n json[jsonProp] = jsonMutate(pathElements.slice(1), json[jsonProp], mutator);\n }\n }\n else if (json[pathElements[0]] != null) {\n json[pathElements[0]] = jsonMutate(pathElements.slice(1), json[pathElements[0]], mutator);\n }\n return json;\n}\nvar merge = function (r, n) { return (__assign$e(__assign$e({}, r), n)); };\n// Precise legacy palette fills/strokes can be found here for future reference:\n// https://github.com/ag-grid/ag-grid/blob/b22.1.0/grid-enterprise-modules/charts/src/charts/chart/palettes.ts\nvar LEGACY_PALETTES = {\n borneo: 'ag-default',\n material: 'ag-material',\n pastel: 'ag-pastel',\n bright: 'ag-vivid',\n flat: 'ag-solar',\n};\n\nvar __extends$P = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$d = (undefined && undefined.__assign) || function () {\n __assign$d = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$d.apply(this, arguments);\n};\nvar __decorate$K = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$d = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$8 = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar ChartService = /** @class */ (function (_super) {\n __extends$P(ChartService, _super);\n function ChartService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // we destroy all charts bound to this grid when grid is destroyed. activeCharts contains all charts, including\n // those in developer provided containers.\n _this.activeCharts = new Set();\n _this.activeChartComps = new Set();\n // this shared (singleton) context is used by cross filtering in line and area charts\n _this.crossFilteringContext = {\n lastSelectedChartId: '',\n };\n return _this;\n }\n ChartService.prototype.updateChart = function (params) {\n if (this.activeChartComps.size === 0) {\n console.warn(\"AG Grid - No active charts to update.\");\n return;\n }\n var chartComp = __spreadArray$8([], __read$d(this.activeChartComps)).find(function (chartComp) { return chartComp.getChartId() === params.chartId; });\n if (!chartComp) {\n console.warn(\"AG Grid - Unable to update chart. No active chart found with ID: \" + params.chartId + \".\");\n return;\n }\n chartComp.update(params);\n };\n ChartService.prototype.getChartModels = function () {\n var models = [];\n var versionedModel = function (c) {\n return __assign$d(__assign$d({}, c), { version: VERSION$a });\n };\n this.activeChartComps.forEach(function (c) { return models.push(versionedModel(c.getChartModel())); });\n return models;\n };\n ChartService.prototype.getChartRef = function (chartId) {\n var chartRef;\n this.activeCharts.forEach(function (cr) {\n if (cr.chartId === chartId) {\n chartRef = cr;\n }\n });\n return chartRef;\n };\n ChartService.prototype.getChartComp = function (chartId) {\n var chartComp;\n this.activeChartComps.forEach(function (comp) {\n if (comp.getChartId() === chartId) {\n chartComp = comp;\n }\n });\n return chartComp;\n };\n ChartService.prototype.getChartImageDataURL = function (params) {\n var url;\n this.activeChartComps.forEach(function (c) {\n if (c.getChartId() === params.chartId) {\n url = c.getChartImageDataURL(params.fileFormat);\n }\n });\n return url;\n };\n ChartService.prototype.downloadChart = function (params) {\n var chartComp = Array.from(this.activeChartComps).find(function (c) { return c.getChartId() === params.chartId; });\n chartComp === null || chartComp === void 0 ? void 0 : chartComp.downloadChart(params.dimensions, params.fileName, params.fileFormat);\n };\n ChartService.prototype.openChartToolPanel = function (params) {\n var chartComp = Array.from(this.activeChartComps).find(function (c) { return c.getChartId() === params.chartId; });\n chartComp === null || chartComp === void 0 ? void 0 : chartComp.openChartToolPanel(params.panel);\n };\n ChartService.prototype.closeChartToolPanel = function (chartId) {\n var chartComp = Array.from(this.activeChartComps).find(function (c) { return c.getChartId() === chartId; });\n chartComp === null || chartComp === void 0 ? void 0 : chartComp.closeChartToolPanel();\n };\n ChartService.prototype.createChartFromCurrentRange = function (chartType) {\n if (chartType === void 0) { chartType = 'groupedColumn'; }\n var selectedRange = this.getSelectedRange();\n return this.createChart(selectedRange, chartType);\n };\n ChartService.prototype.restoreChart = function (model, chartContainer) {\n var _this = this;\n if (!model) {\n console.warn(\"AG Grid - unable to restore chart as no chart model is provided\");\n return;\n }\n if (model.version !== VERSION$a) {\n model = upgradeChartModel(model);\n }\n var params = {\n cellRange: model.cellRange,\n chartType: model.chartType,\n chartThemeName: model.chartThemeName,\n chartContainer: chartContainer,\n suppressChartRanges: model.suppressChartRanges,\n aggFunc: model.aggFunc,\n unlinkChart: model.unlinkChart,\n seriesChartTypes: model.seriesChartTypes\n };\n var getCellRange = function (cellRangeParams) {\n return _this.rangeService\n ? _this.rangeService.createCellRangeFromCellRangeParams(cellRangeParams)\n : undefined;\n };\n if (model.modelType === 'pivot') {\n // if required enter pivot mode\n if (!this.columnModel.isPivotMode()) {\n this.columnModel.setPivotMode(true, \"pivotChart\");\n }\n // pivot chart range contains all visible column without a row range to include all rows\n var columns = this.columnModel.getAllDisplayedColumns().map(function (col) { return col.getColId(); });\n var chartAllRangeParams = {\n rowStartIndex: null,\n rowStartPinned: undefined,\n rowEndIndex: null,\n rowEndPinned: undefined,\n columns: columns\n };\n var cellRange_1 = getCellRange(chartAllRangeParams);\n if (!cellRange_1) {\n console.warn(\"AG Grid - unable to create chart as there are no columns in the grid.\");\n return;\n }\n return this.createChart(cellRange_1, params.chartType, params.chartThemeName, true, true, params.chartContainer, undefined, undefined, params.unlinkChart, false, model.chartOptions);\n }\n var cellRange = getCellRange(params.cellRange);\n if (!cellRange) {\n console.warn(\"AG Grid - unable to create chart as no range is selected\");\n return;\n }\n return this.createChart(cellRange, params.chartType, params.chartThemeName, false, params.suppressChartRanges, params.chartContainer, params.aggFunc, undefined, params.unlinkChart, false, model.chartOptions, model.chartPalette, params.seriesChartTypes);\n };\n ChartService.prototype.createRangeChart = function (params) {\n var _a;\n var cellRange = (_a = this.rangeService) === null || _a === void 0 ? void 0 : _a.createCellRangeFromCellRangeParams(params.cellRange);\n if (!cellRange) {\n console.warn(\"AG Grid - unable to create chart as no range is selected\");\n return;\n }\n return this.createChart(cellRange, params.chartType, params.chartThemeName, false, params.suppressChartRanges, params.chartContainer, params.aggFunc, params.chartThemeOverrides, params.unlinkChart, undefined, undefined, undefined, params.seriesChartTypes);\n };\n ChartService.prototype.createPivotChart = function (params) {\n // if required enter pivot mode\n if (!this.columnModel.isPivotMode()) {\n this.columnModel.setPivotMode(true, \"pivotChart\");\n }\n // pivot chart range contains all visible column without a row range to include all rows\n var chartAllRangeParams = {\n rowStartIndex: null,\n rowStartPinned: undefined,\n rowEndIndex: null,\n rowEndPinned: undefined,\n columns: this.columnModel.getAllDisplayedColumns().map(function (col) { return col.getColId(); })\n };\n var cellRange = this.rangeService\n ? this.rangeService.createCellRangeFromCellRangeParams(chartAllRangeParams)\n : undefined;\n if (!cellRange) {\n console.warn(\"AG Grid - unable to create chart as there are no columns in the grid.\");\n return;\n }\n return this.createChart(cellRange, params.chartType, params.chartThemeName, true, true, params.chartContainer, undefined, params.chartThemeOverrides, params.unlinkChart);\n };\n ChartService.prototype.createCrossFilterChart = function (params) {\n var _a;\n var cellRange = (_a = this.rangeService) === null || _a === void 0 ? void 0 : _a.createCellRangeFromCellRangeParams(params.cellRange);\n if (!cellRange) {\n console.warn(\"AG Grid - unable to create chart as no range is selected\");\n return;\n }\n var crossFiltering = true;\n var suppressChartRangesSupplied = typeof params.suppressChartRanges !== 'undefined' && params.suppressChartRanges !== null;\n var suppressChartRanges = suppressChartRangesSupplied ? params.suppressChartRanges : true;\n return this.createChart(cellRange, params.chartType, params.chartThemeName, false, suppressChartRanges, params.chartContainer, params.aggFunc, params.chartThemeOverrides, params.unlinkChart, crossFiltering);\n };\n ChartService.prototype.createChart = function (cellRange, chartType, chartThemeName, pivotChart, suppressChartRanges, container, aggFunc, chartThemeOverrides, unlinkChart, crossFiltering, chartOptionsToRestore, chartPaletteToRestore, seriesChartTypes) {\n var _this = this;\n if (pivotChart === void 0) { pivotChart = false; }\n if (suppressChartRanges === void 0) { suppressChartRanges = false; }\n if (unlinkChart === void 0) { unlinkChart = false; }\n if (crossFiltering === void 0) { crossFiltering = false; }\n var createChartContainerFunc = this.gridOptionsService.getCallback('createChartContainer');\n var params = {\n chartId: this.generateId(),\n pivotChart: pivotChart,\n cellRange: cellRange,\n chartType: chartType,\n chartThemeName: chartThemeName,\n insideDialog: !(container || createChartContainerFunc),\n suppressChartRanges: suppressChartRanges,\n aggFunc: aggFunc,\n chartThemeOverrides: chartThemeOverrides,\n unlinkChart: unlinkChart,\n crossFiltering: crossFiltering,\n crossFilteringContext: this.crossFilteringContext,\n chartOptionsToRestore: chartOptionsToRestore,\n chartPaletteToRestore: chartPaletteToRestore,\n seriesChartTypes: seriesChartTypes,\n crossFilteringResetCallback: function () { return _this.activeChartComps.forEach(function (c) { return c.crossFilteringReset(); }); }\n };\n var chartComp = new GridChartComp(params);\n this.context.createBean(chartComp);\n var chartRef = this.createChartRef(chartComp);\n if (container) {\n // if container exists, means developer initiated chart create via API, so place in provided container\n container.appendChild(chartComp.getGui());\n // if the chart container was placed outside an element that\n // has the grid's theme, we manually add the current theme to\n // make sure all styles for the chartMenu are rendered correctly\n var theme = this.environment.getTheme();\n if (theme.el && !theme.el.contains(container)) {\n container.classList.add(theme.theme);\n }\n }\n else if (createChartContainerFunc) {\n // otherwise, user created chart via grid UI, check if developer provides containers (e.g. if the application\n // is using its own dialogs rather than the grid provided dialogs)\n createChartContainerFunc(chartRef);\n }\n else {\n // add listener to remove from active charts list when charts are destroyed, e.g. closing chart dialog\n chartComp.addEventListener(GridChartComp.EVENT_DESTROYED, function () {\n _this.activeChartComps.delete(chartComp);\n _this.activeCharts.delete(chartRef);\n });\n }\n return chartRef;\n };\n ChartService.prototype.createChartRef = function (chartComp) {\n var _this = this;\n var chartRef = {\n destroyChart: function () {\n if (_this.activeCharts.has(chartRef)) {\n _this.context.destroyBean(chartComp);\n _this.activeChartComps.delete(chartComp);\n _this.activeCharts.delete(chartRef);\n }\n },\n chartElement: chartComp.getGui(),\n chart: chartComp.getUnderlyingChart(),\n chartId: chartComp.getChartModel().chartId\n };\n this.activeCharts.add(chartRef);\n this.activeChartComps.add(chartComp);\n return chartRef;\n };\n ChartService.prototype.getSelectedRange = function () {\n var ranges = this.rangeService.getCellRanges();\n return ranges.length > 0 ? ranges[0] : {};\n };\n ChartService.prototype.generateId = function () {\n return \"id-\" + Math.random().toString(36).substring(2, 18);\n };\n ChartService.prototype.destroyAllActiveCharts = function () {\n this.activeCharts.forEach(function (chart) { return chart.destroyChart(); });\n };\n ChartService.CHARTS_VERSION = VERSION$b;\n __decorate$K([\n Optional('rangeService')\n ], ChartService.prototype, \"rangeService\", void 0);\n __decorate$K([\n Autowired('columnModel')\n ], ChartService.prototype, \"columnModel\", void 0);\n __decorate$K([\n PreDestroy\n ], ChartService.prototype, \"destroyAllActiveCharts\", null);\n ChartService = __decorate$K([\n Bean('chartService')\n ], ChartService);\n return ChartService;\n}(BeanStub));\n\nvar __extends$O = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$J = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ChartTranslationService = /** @class */ (function (_super) {\n __extends$O(ChartTranslationService, _super);\n function ChartTranslationService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ChartTranslationService_1 = ChartTranslationService;\n ChartTranslationService.prototype.translate = function (toTranslate, defaultText) {\n var translate = this.localeService.getLocaleTextFunc();\n var defaultTranslation = ChartTranslationService_1.DEFAULT_TRANSLATIONS[toTranslate] || defaultText;\n return translate(toTranslate, defaultTranslation);\n };\n var ChartTranslationService_1;\n ChartTranslationService.DEFAULT_TRANSLATIONS = {\n pivotChartTitle: 'Pivot Chart',\n rangeChartTitle: 'Range Chart',\n settings: 'Settings',\n data: 'Data',\n format: 'Format',\n categories: 'Categories',\n defaultCategory: '(None)',\n series: 'Series',\n xyValues: 'X Y Values',\n paired: 'Paired Mode',\n axis: 'Axis',\n navigator: 'Navigator',\n color: 'Color',\n thickness: 'Thickness',\n xType: 'X Type',\n automatic: 'Automatic',\n category: 'Category',\n number: 'Number',\n time: 'Time',\n autoRotate: 'Auto Rotate',\n xRotation: 'X Rotation',\n yRotation: 'Y Rotation',\n ticks: 'Ticks',\n width: 'Width',\n height: 'Height',\n length: 'Length',\n padding: 'Padding',\n spacing: 'Spacing',\n chart: 'Chart',\n title: 'Title',\n titlePlaceholder: 'Chart title - double click to edit',\n background: 'Background',\n font: 'Font',\n top: 'Top',\n right: 'Right',\n bottom: 'Bottom',\n left: 'Left',\n labels: 'Labels',\n calloutLabels: 'Callout Labels',\n sectorLabels: 'Sector Labels',\n positionRatio: 'Position Ratio',\n size: 'Size',\n shape: 'Shape',\n minSize: 'Minimum Size',\n maxSize: 'Maximum Size',\n legend: 'Legend',\n position: 'Position',\n markerSize: 'Marker Size',\n markerStroke: 'Marker Stroke',\n markerPadding: 'Marker Padding',\n itemSpacing: 'Item Spacing',\n itemPaddingX: 'Item Padding X',\n itemPaddingY: 'Item Padding Y',\n layoutHorizontalSpacing: 'Horizontal Spacing',\n layoutVerticalSpacing: 'Vertical Spacing',\n strokeWidth: 'Stroke Width',\n offset: 'Offset',\n offsets: 'Offsets',\n tooltips: 'Tooltips',\n callout: 'Callout',\n markers: 'Markers',\n shadow: 'Shadow',\n blur: 'Blur',\n xOffset: 'X Offset',\n yOffset: 'Y Offset',\n lineWidth: 'Line Width',\n lineDash: 'Line Dash',\n normal: 'Normal',\n bold: 'Bold',\n italic: 'Italic',\n boldItalic: 'Bold Italic',\n predefined: 'Predefined',\n fillOpacity: 'Fill Opacity',\n strokeOpacity: 'Line Opacity',\n histogramBinCount: 'Bin count',\n columnGroup: 'Column',\n barGroup: 'Bar',\n pieGroup: 'Pie',\n lineGroup: 'Line',\n scatterGroup: 'X Y (Scatter)',\n areaGroup: 'Area',\n histogramGroup: 'Histogram',\n combinationGroup: 'Combination',\n groupedColumnTooltip: 'Grouped',\n stackedColumnTooltip: 'Stacked',\n normalizedColumnTooltip: '100% Stacked',\n groupedBarTooltip: 'Grouped',\n stackedBarTooltip: 'Stacked',\n normalizedBarTooltip: '100% Stacked',\n pieTooltip: 'Pie',\n doughnutTooltip: 'Doughnut',\n lineTooltip: 'Line',\n groupedAreaTooltip: 'Area',\n stackedAreaTooltip: 'Stacked',\n normalizedAreaTooltip: '100% Stacked',\n scatterTooltip: 'Scatter',\n bubbleTooltip: 'Bubble',\n histogramTooltip: 'Histogram',\n columnLineComboTooltip: 'Column & Line',\n areaColumnComboTooltip: 'Area & Column',\n customComboTooltip: 'Custom Combination',\n noDataToChart: 'No data available to be charted.',\n pivotChartRequiresPivotMode: 'Pivot Chart requires Pivot Mode enabled.',\n chartSettingsToolbarTooltip: 'Menu',\n chartLinkToolbarTooltip: 'Linked to Grid',\n chartUnlinkToolbarTooltip: 'Unlinked from Grid',\n chartDownloadToolbarTooltip: 'Download Chart',\n histogramFrequency: \"Frequency\",\n seriesChartType: 'Series Chart Type',\n seriesType: 'Series Type',\n secondaryAxis: 'Secondary Axis',\n };\n ChartTranslationService = ChartTranslationService_1 = __decorate$J([\n Bean(\"chartTranslationService\")\n ], ChartTranslationService);\n return ChartTranslationService;\n}(BeanStub));\n\nvar __extends$N = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$I = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ChartCrossFilterService = /** @class */ (function (_super) {\n __extends$N(ChartCrossFilterService, _super);\n function ChartCrossFilterService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ChartCrossFilterService_1 = ChartCrossFilterService;\n ChartCrossFilterService.prototype.filter = function (event, reset) {\n if (reset === void 0) { reset = false; }\n var filterModel = this.gridApi.getFilterModel();\n // filters should be reset when user clicks on canvas background\n if (reset) {\n this.resetFilters(filterModel);\n return;\n }\n var colId = ChartCrossFilterService_1.extractFilterColId(event);\n if (this.isValidColumnFilter(colId)) {\n // update filters based on current chart selections\n this.updateFilters(filterModel, event, colId);\n }\n else {\n console.warn(\"AG Grid: cross filtering requires a 'agSetColumnFilter' or 'agMultiColumnFilter' \" +\n \"to be defined on the column with id: '\" + colId + \"'\");\n }\n };\n ChartCrossFilterService.prototype.resetFilters = function (filterModel) {\n var filtersExist = Object.keys(filterModel).length > 0;\n if (filtersExist) {\n // only reset filters / charts when necessary to prevent undesirable flickering effect\n this.gridApi.setFilterModel(null);\n this.gridApi.onFilterChanged();\n }\n };\n ChartCrossFilterService.prototype.updateFilters = function (filterModel, event, colId) {\n var _a;\n var dataKey = ChartCrossFilterService_1.extractFilterColId(event);\n var rawValue = event.datum[dataKey];\n if (rawValue === undefined) {\n return;\n }\n var selectedValue = rawValue.toString();\n if (event.event.metaKey || event.event.ctrlKey) {\n var existingGridValues = this.getCurrentGridValuesForCategory(colId);\n var valueAlreadyExists = _.includes(existingGridValues, selectedValue);\n var updatedValues = void 0;\n if (valueAlreadyExists) {\n updatedValues = existingGridValues.filter(function (v) { return v !== selectedValue; });\n }\n else {\n updatedValues = existingGridValues;\n updatedValues.push(selectedValue);\n }\n filterModel[colId] = this.getUpdatedFilterModel(colId, updatedValues);\n }\n else {\n var updatedValues = [selectedValue];\n filterModel = (_a = {}, _a[colId] = this.getUpdatedFilterModel(colId, updatedValues), _a);\n }\n this.gridApi.setFilterModel(filterModel);\n };\n ChartCrossFilterService.prototype.getUpdatedFilterModel = function (colId, updatedValues) {\n var columnFilterType = this.getColumnFilterType(colId);\n if (columnFilterType === 'agMultiColumnFilter') {\n return { filterType: 'multi', filterModels: [null, { filterType: 'set', values: updatedValues }] };\n }\n return { filterType: 'set', values: updatedValues };\n };\n ChartCrossFilterService.prototype.getCurrentGridValuesForCategory = function (colId) {\n var _this = this;\n var filteredValues = [];\n var column = this.getColumnById(colId);\n this.gridApi.forEachNodeAfterFilter(function (rowNode) {\n if (column && !rowNode.group) {\n var value = _this.valueService.getValue(column, rowNode) + '';\n if (!filteredValues.includes(value)) {\n filteredValues.push(value);\n }\n }\n });\n return filteredValues;\n };\n ChartCrossFilterService.extractFilterColId = function (event) {\n return event.xKey || event.calloutLabelKey;\n };\n ChartCrossFilterService.prototype.isValidColumnFilter = function (colId) {\n if (colId.indexOf('-filtered-out')) {\n colId = colId.replace('-filtered-out', '');\n }\n var filterType = this.getColumnFilterType(colId);\n if (typeof filterType === 'boolean') {\n return filterType;\n }\n return _.includes(['agSetColumnFilter', 'agMultiColumnFilter'], filterType);\n };\n ChartCrossFilterService.prototype.getColumnFilterType = function (colId) {\n var gridColumn = this.getColumnById(colId);\n if (gridColumn) {\n var colDef = gridColumn.getColDef();\n return colDef.filter;\n }\n };\n ChartCrossFilterService.prototype.getColumnById = function (colId) {\n return this.columnModel.getGridColumn(colId);\n };\n var ChartCrossFilterService_1;\n __decorate$I([\n Autowired('gridApi')\n ], ChartCrossFilterService.prototype, \"gridApi\", void 0);\n __decorate$I([\n Autowired('columnModel')\n ], ChartCrossFilterService.prototype, \"columnModel\", void 0);\n __decorate$I([\n Autowired('valueService')\n ], ChartCrossFilterService.prototype, \"valueService\", void 0);\n ChartCrossFilterService = ChartCrossFilterService_1 = __decorate$I([\n Bean(\"chartCrossFilterService\")\n ], ChartCrossFilterService);\n return ChartCrossFilterService;\n}(BeanStub));\n\nvar __extends$M = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$c = (undefined && undefined.__assign) || function () {\n __assign$c = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$c.apply(this, arguments);\n};\nvar __decorate$H = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$c = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$7 = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar __values$3 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar RangeService = /** @class */ (function (_super) {\n __extends$M(RangeService, _super);\n function RangeService() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.cellRanges = [];\n _this.bodyScrollListener = _this.onBodyScroll.bind(_this);\n _this.dragging = false;\n _this.intersectionRange = false; // When dragging ends, the current range will be used to intersect all other ranges\n return _this;\n }\n RangeService.prototype.init = function () {\n var _this = this;\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, function () { return _this.onColumnsChanged(); });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VISIBLE, this.onColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VALUE_CHANGED, this.onColumnsChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, function () { return _this.removeAllCellRanges(); });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, function () { return _this.removeAllCellRanges(); });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_CHANGED, function () { return _this.removeAllCellRanges(); });\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_GROUP_OPENED, this.refreshLastRangeStart.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_MOVED, this.refreshLastRangeStart.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PINNED, this.refreshLastRangeStart.bind(this));\n this.ctrlsService.whenReady(function () {\n var gridBodyCtrl = _this.ctrlsService.getGridBodyCtrl();\n _this.autoScrollService = new AutoScrollService({\n scrollContainer: gridBodyCtrl.getBodyViewportElement(),\n scrollAxis: 'xy',\n getVerticalPosition: function () { return gridBodyCtrl.getScrollFeature().getVScrollPosition().top; },\n setVerticalPosition: function (position) { return gridBodyCtrl.getScrollFeature().setVerticalScrollPosition(position); },\n getHorizontalPosition: function () { return gridBodyCtrl.getScrollFeature().getHScrollPosition().left; },\n setHorizontalPosition: function (position) { return gridBodyCtrl.getScrollFeature().setHorizontalScrollPosition(position); },\n shouldSkipVerticalScroll: function () { return !_this.gridOptionsService.isDomLayout('normal'); },\n shouldSkipHorizontalScroll: function () { return !gridBodyCtrl.getScrollFeature().isHorizontalScrollShowing(); }\n });\n });\n };\n // Called for both columns loaded & column visibility events\n RangeService.prototype.onColumnsChanged = function () {\n var _this = this;\n // first move start column in last cell range (i.e. series chart range)\n this.refreshLastRangeStart();\n var allColumns = this.columnModel.getAllDisplayedColumns();\n // check that the columns in each range still exist and are visible\n this.cellRanges.forEach(function (cellRange) {\n var beforeCols = cellRange.columns;\n // remove hidden or removed cols from cell range\n cellRange.columns = cellRange.columns.filter(function (col) { return col.isVisible() && allColumns.indexOf(col) !== -1; });\n var colsInRangeChanged = !_.areEqual(beforeCols, cellRange.columns);\n if (colsInRangeChanged) {\n // notify users and other parts of grid (i.e. status panel) that range has changed\n _this.dispatchChangedEvent(false, true, cellRange.id);\n }\n });\n // Remove empty cell ranges\n var countBefore = this.cellRanges.length;\n this.cellRanges = this.cellRanges.filter(function (range) { return range.columns.length > 0; });\n if (countBefore > this.cellRanges.length) {\n this.dispatchChangedEvent(false, true);\n }\n };\n RangeService.prototype.refreshLastRangeStart = function () {\n var lastRange = _.last(this.cellRanges);\n if (!lastRange) {\n return;\n }\n this.refreshRangeStart(lastRange);\n };\n RangeService.prototype.isContiguousRange = function (cellRange) {\n var rangeColumns = cellRange.columns;\n if (!rangeColumns.length) {\n return false;\n }\n var allColumns = this.columnModel.getAllDisplayedColumns();\n var allPositions = rangeColumns.map(function (c) { return allColumns.indexOf(c); }).sort(function (a, b) { return a - b; });\n return _.last(allPositions) - allPositions[0] + 1 === rangeColumns.length;\n };\n RangeService.prototype.getRangeStartRow = function (cellRange) {\n if (cellRange.startRow && cellRange.endRow) {\n return this.rowPositionUtils.before(cellRange.startRow, cellRange.endRow) ?\n cellRange.startRow : cellRange.endRow;\n }\n var rowPinned = this.pinnedRowModel.getPinnedTopRowCount() > 0 ? 'top' : null;\n return { rowIndex: 0, rowPinned: rowPinned };\n };\n RangeService.prototype.getRangeEndRow = function (cellRange) {\n if (cellRange.startRow && cellRange.endRow) {\n return this.rowPositionUtils.before(cellRange.startRow, cellRange.endRow) ?\n cellRange.endRow : cellRange.startRow;\n }\n var pinnedBottomRowCount = this.pinnedRowModel.getPinnedBottomRowCount();\n var pinnedBottom = pinnedBottomRowCount > 0;\n if (pinnedBottom) {\n return {\n rowIndex: pinnedBottomRowCount - 1,\n rowPinned: 'bottom'\n };\n }\n return {\n rowIndex: this.rowModel.getRowCount() - 1,\n rowPinned: null\n };\n };\n RangeService.prototype.setRangeToCell = function (cell, appendRange) {\n if (appendRange === void 0) { appendRange = false; }\n if (!this.gridOptionsService.is('enableRangeSelection')) {\n return;\n }\n var columns = this.calculateColumnsBetween(cell.column, cell.column);\n if (!columns) {\n return;\n }\n var suppressMultiRangeSelections = this.gridOptionsService.is('suppressMultiRangeSelection');\n // if not appending, then clear previous range selections\n if (suppressMultiRangeSelections || !appendRange || _.missing(this.cellRanges)) {\n this.removeAllCellRanges(true);\n }\n var rowForCell = {\n rowIndex: cell.rowIndex,\n rowPinned: cell.rowPinned\n };\n var cellRange = {\n startRow: rowForCell,\n endRow: rowForCell,\n columns: columns,\n startColumn: cell.column\n };\n this.cellRanges.push(cellRange);\n this.setNewestRangeStartCell(cell);\n this.onDragStop();\n this.dispatchChangedEvent(true, true);\n };\n RangeService.prototype.extendLatestRangeToCell = function (cellPosition) {\n if (this.isEmpty() || !this.newestRangeStartCell) {\n return;\n }\n var cellRange = _.last(this.cellRanges);\n this.updateRangeEnd(cellRange, cellPosition);\n };\n RangeService.prototype.updateRangeEnd = function (cellRange, cellPosition, silent) {\n if (silent === void 0) { silent = false; }\n var endColumn = cellPosition.column;\n var colsToAdd = this.calculateColumnsBetween(cellRange.startColumn, endColumn);\n if (!colsToAdd || this.isLastCellOfRange(cellRange, cellPosition)) {\n return;\n }\n cellRange.columns = colsToAdd;\n cellRange.endRow = { rowIndex: cellPosition.rowIndex, rowPinned: cellPosition.rowPinned };\n if (!silent) {\n this.dispatchChangedEvent(true, true, cellRange.id);\n }\n };\n RangeService.prototype.refreshRangeStart = function (cellRange) {\n var startColumn = cellRange.startColumn, columns = cellRange.columns;\n var moveColInCellRange = function (colToMove, moveToFront) {\n var otherCols = cellRange.columns.filter(function (col) { return col !== colToMove; });\n if (colToMove) {\n cellRange.startColumn = colToMove;\n cellRange.columns = moveToFront ? __spreadArray$7([colToMove], __read$c(otherCols)) : __spreadArray$7(__spreadArray$7([], __read$c(otherCols)), [colToMove]);\n }\n else {\n cellRange.columns = otherCols;\n }\n };\n var _a = this.getRangeEdgeColumns(cellRange), left = _a.left, right = _a.right;\n var shouldMoveLeftCol = startColumn === columns[0] && startColumn !== left;\n if (shouldMoveLeftCol) {\n moveColInCellRange(left, true);\n return;\n }\n var shouldMoveRightCol = startColumn === _.last(columns) && startColumn === right;\n if (shouldMoveRightCol) {\n moveColInCellRange(right, false);\n return;\n }\n };\n RangeService.prototype.getRangeEdgeColumns = function (cellRange) {\n var allColumns = this.columnModel.getAllDisplayedColumns();\n var allIndices = cellRange.columns\n .map(function (c) { return allColumns.indexOf(c); })\n .filter(function (i) { return i > -1; })\n .sort(function (a, b) { return a - b; });\n return {\n left: allColumns[allIndices[0]],\n right: allColumns[_.last(allIndices)]\n };\n };\n // returns true if successful, false if not successful\n RangeService.prototype.extendLatestRangeInDirection = function (event) {\n if (this.isEmpty() || !this.newestRangeStartCell) {\n return;\n }\n var key = event.key;\n var ctrlKey = event.ctrlKey || event.metaKey;\n var lastRange = _.last(this.cellRanges);\n var startCell = this.newestRangeStartCell;\n var firstCol = lastRange.columns[0];\n var lastCol = _.last(lastRange.columns);\n // find the cell that is at the furthest away corner from the starting cell\n var endCellIndex = lastRange.endRow.rowIndex;\n var endCellFloating = lastRange.endRow.rowPinned;\n var endCellColumn = startCell.column === firstCol ? lastCol : firstCol;\n var endCell = { column: endCellColumn, rowIndex: endCellIndex, rowPinned: endCellFloating };\n var newEndCell = this.cellNavigationService.getNextCellToFocus(key, endCell, ctrlKey);\n // if user is at end of grid, so no cell to extend to, we return false\n if (!newEndCell) {\n return;\n }\n this.setCellRange({\n rowStartIndex: startCell.rowIndex,\n rowStartPinned: startCell.rowPinned,\n rowEndIndex: newEndCell.rowIndex,\n rowEndPinned: newEndCell.rowPinned,\n columnStart: startCell.column,\n columnEnd: newEndCell.column\n });\n return newEndCell;\n };\n RangeService.prototype.setCellRange = function (params) {\n if (!this.gridOptionsService.is('enableRangeSelection')) {\n return;\n }\n this.removeAllCellRanges(true);\n this.addCellRange(params);\n };\n RangeService.prototype.setCellRanges = function (cellRanges) {\n var _this = this;\n if (_.shallowCompare(this.cellRanges, cellRanges)) {\n return;\n }\n this.removeAllCellRanges(true);\n cellRanges.forEach(function (newRange) {\n if (newRange.columns && newRange.startRow) {\n _this.setNewestRangeStartCell({\n rowIndex: newRange.startRow.rowIndex,\n rowPinned: newRange.startRow.rowPinned,\n column: newRange.columns[0]\n });\n }\n _this.cellRanges.push(newRange);\n });\n this.dispatchChangedEvent(false, true);\n };\n RangeService.prototype.setNewestRangeStartCell = function (position) {\n this.newestRangeStartCell = position;\n };\n RangeService.prototype.clearCellRangeCellValues = function (params) {\n var _this = this;\n var cellRanges = params.cellRanges;\n var _a = params.cellEventSource, cellEventSource = _a === void 0 ? 'rangeService' : _a, dispatchWrapperEvents = params.dispatchWrapperEvents, _b = params.wrapperEventSource, wrapperEventSource = _b === void 0 ? 'deleteKey' : _b;\n if (dispatchWrapperEvents) {\n var startEvent = {\n type: Events.EVENT_RANGE_DELETE_START,\n source: wrapperEventSource\n };\n this.eventService.dispatchEvent(startEvent);\n }\n if (!cellRanges) {\n cellRanges = this.cellRanges;\n }\n cellRanges.forEach(function (cellRange) {\n _this.forEachRowInRange(cellRange, function (rowPosition) {\n var rowNode = _this.rowPositionUtils.getRowNode(rowPosition);\n if (!rowNode) {\n return;\n }\n for (var i = 0; i < cellRange.columns.length; i++) {\n var column = _this.columnModel.getGridColumn(cellRange.columns[i]);\n if (!column || !column.isCellEditable(rowNode)) {\n return;\n }\n rowNode.setDataValue(column, null, cellEventSource);\n }\n });\n });\n if (dispatchWrapperEvents) {\n var endEvent = {\n type: Events.EVENT_RANGE_DELETE_END,\n source: wrapperEventSource\n };\n this.eventService.dispatchEvent(endEvent);\n }\n };\n RangeService.prototype.createCellRangeFromCellRangeParams = function (params) {\n var _this = this;\n var columns;\n var startsOnTheRight = false;\n if (params.columns) {\n columns = params.columns.map(function (c) { return _this.columnModel.getColumnWithValidation(c); }).filter(function (c) { return c; });\n }\n else {\n var columnStart = this.columnModel.getColumnWithValidation(params.columnStart);\n var columnEnd = this.columnModel.getColumnWithValidation(params.columnEnd);\n if (!columnStart || !columnEnd) {\n return;\n }\n columns = this.calculateColumnsBetween(columnStart, columnEnd);\n if (columns && columns.length) {\n startsOnTheRight = columns[0] !== columnStart;\n }\n }\n if (!columns) {\n return;\n }\n var startRow = params.rowStartIndex != null ? {\n rowIndex: params.rowStartIndex,\n rowPinned: params.rowStartPinned || null\n } : undefined;\n var endRow = params.rowEndIndex != null ? {\n rowIndex: params.rowEndIndex,\n rowPinned: params.rowEndPinned || null\n } : undefined;\n return {\n startRow: startRow,\n endRow: endRow,\n columns: columns,\n startColumn: startsOnTheRight ? _.last(columns) : columns[0]\n };\n };\n RangeService.prototype.addCellRange = function (params) {\n if (!this.gridOptionsService.is('enableRangeSelection')) {\n return;\n }\n var newRange = this.createCellRangeFromCellRangeParams(params);\n if (newRange) {\n if (newRange.startRow) {\n this.setNewestRangeStartCell({\n rowIndex: newRange.startRow.rowIndex,\n rowPinned: newRange.startRow.rowPinned,\n column: newRange.startColumn\n });\n }\n this.cellRanges.push(newRange);\n this.dispatchChangedEvent(false, true, newRange.id);\n }\n };\n RangeService.prototype.getCellRanges = function () {\n return this.cellRanges;\n };\n RangeService.prototype.isEmpty = function () {\n return this.cellRanges.length === 0;\n };\n RangeService.prototype.isMoreThanOneCell = function () {\n var len = this.cellRanges.length;\n if (len === 0) {\n return false;\n }\n if (len > 1) {\n return true; // Assumes a cell range must contain at least one cell\n }\n // only one range, return true if range has more than one\n var range = this.cellRanges[0];\n var startRow = this.getRangeStartRow(range);\n var endRow = this.getRangeEndRow(range);\n return startRow.rowPinned !== endRow.rowPinned ||\n startRow.rowIndex !== endRow.rowIndex ||\n range.columns.length !== 1;\n };\n RangeService.prototype.areAllRangesAbleToMerge = function () {\n var e_1, _a;\n var _this = this;\n var rowToColumnMap = new Map();\n var len = this.cellRanges.length;\n if (len <= 1)\n return true;\n this.cellRanges.forEach(function (range) {\n _this.forEachRowInRange(range, function (row) {\n var rowName = (row.rowPinned || 'normal') + \"_\" + row.rowIndex;\n var columns = rowToColumnMap.get(rowName);\n var currentRangeColIds = range.columns.map(function (col) { return col.getId(); });\n if (columns) {\n var filteredColumns = currentRangeColIds.filter(function (col) { return columns.indexOf(col) === -1; });\n columns.push.apply(columns, __spreadArray$7([], __read$c(filteredColumns)));\n }\n else {\n rowToColumnMap.set(rowName, currentRangeColIds);\n }\n });\n });\n var columnsString;\n try {\n for (var _b = __values$3(rowToColumnMap.values()), _c = _b.next(); !_c.done; _c = _b.next()) {\n var val = _c.value;\n var currentValString = val.sort().join();\n if (columnsString === undefined) {\n columnsString = currentValString;\n continue;\n }\n if (columnsString !== currentValString) {\n return false;\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (_c && !_c.done && (_a = _b.return)) _a.call(_b);\n }\n finally { if (e_1) throw e_1.error; }\n }\n return true;\n };\n RangeService.prototype.forEachRowInRange = function (cellRange, callback) {\n var topRow = this.getRangeStartRow(cellRange);\n var bottomRow = this.getRangeEndRow(cellRange);\n var currentRow = topRow;\n while (currentRow) {\n callback(currentRow);\n if (this.rowPositionUtils.sameRow(currentRow, bottomRow)) {\n break;\n }\n currentRow = this.cellNavigationService.getRowBelow(currentRow);\n }\n };\n RangeService.prototype.removeAllCellRanges = function (silent) {\n if (this.isEmpty()) {\n return;\n }\n this.onDragStop();\n this.cellRanges.length = 0;\n if (!silent) {\n this.dispatchChangedEvent(false, true);\n }\n };\n // as the user is dragging outside of the panel, the div starts to scroll, which in turn\n // means we are selection more (or less) cells, but the mouse isn't moving, so we recalculate\n // the selection my mimicking a new mouse event\n RangeService.prototype.onBodyScroll = function () {\n if (this.dragging && this.lastMouseEvent) {\n this.onDragging(this.lastMouseEvent);\n }\n };\n RangeService.prototype.isCellInAnyRange = function (cell) {\n return this.getCellRangeCount(cell) > 0;\n };\n RangeService.prototype.isCellInSpecificRange = function (cell, range) {\n var columnInRange = range.columns !== null && _.includes(range.columns, cell.column);\n var rowInRange = this.isRowInRange(cell.rowIndex, cell.rowPinned, range);\n return columnInRange && rowInRange;\n };\n RangeService.prototype.isLastCellOfRange = function (cellRange, cell) {\n var startRow = cellRange.startRow, endRow = cellRange.endRow;\n var lastRow = this.rowPositionUtils.before(startRow, endRow) ? endRow : startRow;\n var isLastRow = cell.rowIndex === lastRow.rowIndex && cell.rowPinned === lastRow.rowPinned;\n var rangeFirstIndexColumn = cellRange.columns[0];\n var rangeLastIndexColumn = _.last(cellRange.columns);\n var lastRangeColumn = cellRange.startColumn === rangeFirstIndexColumn ? rangeLastIndexColumn : rangeFirstIndexColumn;\n var isLastColumn = cell.column === lastRangeColumn;\n return isLastColumn && isLastRow;\n };\n RangeService.prototype.isBottomRightCell = function (cellRange, cell) {\n var allColumns = this.columnModel.getAllDisplayedColumns();\n var allPositions = cellRange.columns.map(function (c) { return allColumns.indexOf(c); }).sort(function (a, b) { return a - b; });\n var startRow = cellRange.startRow, endRow = cellRange.endRow;\n var lastRow = this.rowPositionUtils.before(startRow, endRow) ? endRow : startRow;\n var isRightColumn = allColumns.indexOf(cell.column) === _.last(allPositions);\n var isLastRow = cell.rowIndex === lastRow.rowIndex && _.makeNull(cell.rowPinned) === _.makeNull(lastRow.rowPinned);\n return isRightColumn && isLastRow;\n };\n // returns the number of ranges this cell is in\n RangeService.prototype.getCellRangeCount = function (cell) {\n var _this = this;\n if (this.isEmpty()) {\n return 0;\n }\n return this.cellRanges.filter(function (cellRange) { return _this.isCellInSpecificRange(cell, cellRange); }).length;\n };\n RangeService.prototype.isRowInRange = function (rowIndex, floating, cellRange) {\n var firstRow = this.getRangeStartRow(cellRange);\n var lastRow = this.getRangeEndRow(cellRange);\n var thisRow = { rowIndex: rowIndex, rowPinned: floating || null };\n // compare rowPinned with == instead of === because it can be `null` or `undefined`\n var equalsFirstRow = thisRow.rowIndex === firstRow.rowIndex && thisRow.rowPinned == firstRow.rowPinned;\n var equalsLastRow = thisRow.rowIndex === lastRow.rowIndex && thisRow.rowPinned == lastRow.rowPinned;\n if (equalsFirstRow || equalsLastRow) {\n return true;\n }\n var afterFirstRow = !this.rowPositionUtils.before(thisRow, firstRow);\n var beforeLastRow = this.rowPositionUtils.before(thisRow, lastRow);\n return afterFirstRow && beforeLastRow;\n };\n RangeService.prototype.getDraggingRange = function () {\n return this.draggingRange;\n };\n RangeService.prototype.onDragStart = function (mouseEvent) {\n if (!this.gridOptionsService.is('enableRangeSelection')) {\n return;\n }\n var ctrlKey = mouseEvent.ctrlKey, metaKey = mouseEvent.metaKey, shiftKey = mouseEvent.shiftKey;\n // ctrlKey for windows, metaKey for Apple\n var isMultiKey = ctrlKey || metaKey;\n var allowMulti = !this.gridOptionsService.is('suppressMultiRangeSelection');\n var isMultiSelect = allowMulti ? isMultiKey : false;\n var extendRange = shiftKey && _.existsAndNotEmpty(this.cellRanges);\n if (!isMultiSelect && (!extendRange || _.exists(_.last(this.cellRanges).type))) {\n this.removeAllCellRanges(true);\n }\n // The browser changes the Event target of cached events when working with the ShadowDOM\n // so we need to retrieve the initial DragStartTarget.\n var startTarget = this.dragService.getStartTarget();\n if (startTarget) {\n this.updateValuesOnMove(startTarget);\n }\n if (!this.lastCellHovered) {\n return;\n }\n this.dragging = true;\n this.lastMouseEvent = mouseEvent;\n this.intersectionRange = isMultiSelect && this.getCellRangeCount(this.lastCellHovered) > 1;\n if (!extendRange) {\n this.setNewestRangeStartCell(this.lastCellHovered);\n }\n // if we didn't clear the ranges, then dragging means the user clicked, and when the\n // user clicks it means a range of one cell was created. we need to extend this range\n // rather than creating another range. otherwise we end up with two distinct ranges\n // from a drag operation (one from click, and one from drag).\n if (this.cellRanges.length > 0) {\n this.draggingRange = _.last(this.cellRanges);\n }\n else {\n var mouseRowPosition = {\n rowIndex: this.lastCellHovered.rowIndex,\n rowPinned: this.lastCellHovered.rowPinned\n };\n this.draggingRange = {\n startRow: mouseRowPosition,\n endRow: mouseRowPosition,\n columns: [this.lastCellHovered.column],\n startColumn: this.newestRangeStartCell.column\n };\n this.cellRanges.push(this.draggingRange);\n }\n this.ctrlsService.getGridBodyCtrl().addScrollEventListener(this.bodyScrollListener);\n this.dispatchChangedEvent(true, false, this.draggingRange.id);\n };\n RangeService.prototype.intersectLastRange = function (fromMouseClick) {\n var _this = this;\n // when ranges are created due to a mouse click without drag (happens in cellMouseListener)\n // this method will be called with `fromMouseClick=true`.\n if (fromMouseClick && this.dragging) {\n return;\n }\n if (this.gridOptionsService.is('suppressMultiRangeSelection')) {\n return;\n }\n if (this.isEmpty()) {\n return;\n }\n var lastRange = _.last(this.cellRanges);\n var intersectionStartRow = this.getRangeStartRow(lastRange);\n var intersectionEndRow = this.getRangeEndRow(lastRange);\n var newRanges = [];\n this.cellRanges.slice(0, -1).forEach(function (range) {\n var startRow = _this.getRangeStartRow(range);\n var endRow = _this.getRangeEndRow(range);\n var cols = range.columns;\n var intersectCols = cols.filter(function (col) { return lastRange.columns.indexOf(col) === -1; });\n if (intersectCols.length === cols.length) {\n // No overlapping columns, retain previous range\n newRanges.push(range);\n return;\n }\n if (_this.rowPositionUtils.before(intersectionEndRow, startRow) || _this.rowPositionUtils.before(endRow, intersectionStartRow)) {\n // No overlapping rows, retain previous range\n newRanges.push(range);\n return;\n }\n var rangeCountBefore = newRanges.length;\n // Top\n if (_this.rowPositionUtils.before(startRow, intersectionStartRow)) {\n var top_1 = {\n columns: __spreadArray$7([], __read$c(cols)),\n startColumn: lastRange.startColumn,\n startRow: __assign$c({}, startRow),\n endRow: _this.cellNavigationService.getRowAbove(intersectionStartRow),\n };\n newRanges.push(top_1);\n }\n // Left & Right (not contiguous with columns)\n if (intersectCols.length > 0) {\n var middle = {\n columns: intersectCols,\n startColumn: _.includes(intersectCols, lastRange.startColumn) ? lastRange.startColumn : intersectCols[0],\n startRow: _this.rowPositionUtils.rowMax([__assign$c({}, intersectionStartRow), __assign$c({}, startRow)]),\n endRow: _this.rowPositionUtils.rowMin([__assign$c({}, intersectionEndRow), __assign$c({}, endRow)]),\n };\n newRanges.push(middle);\n }\n // Bottom\n if (_this.rowPositionUtils.before(intersectionEndRow, endRow)) {\n newRanges.push({\n columns: __spreadArray$7([], __read$c(cols)),\n startColumn: lastRange.startColumn,\n startRow: _this.cellNavigationService.getRowBelow(intersectionEndRow),\n endRow: __assign$c({}, endRow),\n });\n }\n if ((newRanges.length - rangeCountBefore) === 1) {\n // Only one range result from the intersection.\n // Copy the source range's id, since essentially we just reduced it's size\n newRanges[newRanges.length - 1].id = range.id;\n }\n });\n this.cellRanges = newRanges;\n // when this is called because of a clickEvent and the ranges were changed\n // we need to force a dragEnd event to update the UI.\n if (fromMouseClick) {\n this.dispatchChangedEvent(false, true);\n }\n };\n RangeService.prototype.updateValuesOnMove = function (eventTarget) {\n var cellCtrl = _.getCtrlForEventTarget(this.gridOptionsService, eventTarget, CellCtrl.DOM_DATA_KEY_CELL_CTRL);\n var cell = cellCtrl === null || cellCtrl === void 0 ? void 0 : cellCtrl.getCellPosition();\n this.cellHasChanged = false;\n if (!cell || (this.lastCellHovered && this.cellPositionUtils.equals(cell, this.lastCellHovered))) {\n return;\n }\n if (this.lastCellHovered) {\n this.cellHasChanged = true;\n }\n this.lastCellHovered = cell;\n };\n RangeService.prototype.onDragging = function (mouseEvent) {\n var _this = this;\n if (!this.dragging || !mouseEvent) {\n return;\n }\n this.updateValuesOnMove(mouseEvent.target);\n this.lastMouseEvent = mouseEvent;\n var cellPosition = this.lastCellHovered;\n var isMouseAndStartInPinned = function (position) {\n return cellPosition && cellPosition.rowPinned === position && _this.newestRangeStartCell.rowPinned === position;\n };\n var skipVerticalScroll = isMouseAndStartInPinned('top') || isMouseAndStartInPinned('bottom');\n this.autoScrollService.check(mouseEvent, skipVerticalScroll);\n if (!this.cellHasChanged) {\n return;\n }\n var columns = this.calculateColumnsBetween(this.newestRangeStartCell.column, cellPosition.column);\n if (!columns) {\n return;\n }\n this.draggingRange.endRow = {\n rowIndex: cellPosition.rowIndex,\n rowPinned: cellPosition.rowPinned\n };\n this.draggingRange.columns = columns;\n this.dispatchChangedEvent(false, false, this.draggingRange.id);\n };\n RangeService.prototype.onDragStop = function () {\n if (!this.dragging) {\n return;\n }\n var id = this.draggingRange.id;\n this.autoScrollService.ensureCleared();\n this.ctrlsService.getGridBodyCtrl().removeScrollEventListener(this.bodyScrollListener);\n this.lastMouseEvent = null;\n this.dragging = false;\n this.draggingRange = undefined;\n this.lastCellHovered = undefined;\n if (this.intersectionRange) {\n this.intersectionRange = false;\n this.intersectLastRange();\n }\n this.dispatchChangedEvent(false, true, id);\n };\n RangeService.prototype.dispatchChangedEvent = function (started, finished, id) {\n var event = {\n type: Events.EVENT_RANGE_SELECTION_CHANGED,\n started: started,\n finished: finished,\n id: id,\n };\n this.eventService.dispatchEvent(event);\n };\n RangeService.prototype.calculateColumnsBetween = function (columnFrom, columnTo) {\n var allColumns = this.columnModel.getAllDisplayedColumns();\n var isSameColumn = columnFrom === columnTo;\n var fromIndex = allColumns.indexOf(columnFrom);\n if (fromIndex < 0) {\n console.warn(\"AG Grid: column \" + columnFrom.getId() + \" is not visible\");\n return;\n }\n var toIndex = isSameColumn ? fromIndex : allColumns.indexOf(columnTo);\n if (toIndex < 0) {\n console.warn(\"AG Grid: column \" + columnTo.getId() + \" is not visible\");\n return;\n }\n if (isSameColumn) {\n return [columnFrom];\n }\n var firstIndex = Math.min(fromIndex, toIndex);\n var lastIndex = firstIndex === fromIndex ? toIndex : fromIndex;\n var columns = [];\n for (var i = firstIndex; i <= lastIndex; i++) {\n columns.push(allColumns[i]);\n }\n return columns;\n };\n __decorate$H([\n Autowired('rowModel')\n ], RangeService.prototype, \"rowModel\", void 0);\n __decorate$H([\n Autowired('dragService')\n ], RangeService.prototype, \"dragService\", void 0);\n __decorate$H([\n Autowired('columnModel')\n ], RangeService.prototype, \"columnModel\", void 0);\n __decorate$H([\n Autowired('cellNavigationService')\n ], RangeService.prototype, \"cellNavigationService\", void 0);\n __decorate$H([\n Autowired(\"pinnedRowModel\")\n ], RangeService.prototype, \"pinnedRowModel\", void 0);\n __decorate$H([\n Autowired('rowPositionUtils')\n ], RangeService.prototype, \"rowPositionUtils\", void 0);\n __decorate$H([\n Autowired('cellPositionUtils')\n ], RangeService.prototype, \"cellPositionUtils\", void 0);\n __decorate$H([\n Autowired('ctrlsService')\n ], RangeService.prototype, \"ctrlsService\", void 0);\n __decorate$H([\n PostConstruct\n ], RangeService.prototype, \"init\", null);\n RangeService = __decorate$H([\n Bean('rangeService')\n ], RangeService);\n return RangeService;\n}(BeanStub));\n\nvar __extends$L = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$G = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AbstractSelectionHandle = /** @class */ (function (_super) {\n __extends$L(AbstractSelectionHandle, _super);\n function AbstractSelectionHandle() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.changedCalculatedValues = false;\n _this.dragging = false;\n _this.shouldDestroyOnEndDragging = false;\n return _this;\n }\n AbstractSelectionHandle.prototype.init = function () {\n var _this = this;\n this.dragService.addDragSource({\n dragStartPixels: 0,\n eElement: this.getGui(),\n onDragStart: this.onDragStart.bind(this),\n onDragging: function (e) {\n _this.dragging = true;\n _this.rangeService.autoScrollService.check(e);\n if (_this.changedCalculatedValues) {\n _this.onDrag(e);\n _this.changedCalculatedValues = false;\n }\n },\n onDragStop: function (e) {\n _this.dragging = false;\n _this.onDragEnd(e);\n _this.clearValues();\n _this.rangeService.autoScrollService.ensureCleared();\n // TODO: this causes a bug where if there are multiple grids in the same page, all of them will\n // be affected by a drag on any. Move it to the root element.\n document.body.classList.remove(_this.getDraggingCssClass());\n if (_this.shouldDestroyOnEndDragging) {\n _this.destroy();\n }\n }\n });\n this.addManagedListener(this.getGui(), 'mousedown', this.preventRangeExtension.bind(this));\n };\n AbstractSelectionHandle.prototype.isDragging = function () {\n return this.dragging;\n };\n AbstractSelectionHandle.prototype.getCellCtrl = function () {\n return this.cellCtrl;\n };\n AbstractSelectionHandle.prototype.setCellCtrl = function (cellComp) {\n this.cellCtrl = cellComp;\n };\n AbstractSelectionHandle.prototype.getCellRange = function () {\n return this.cellRange;\n };\n AbstractSelectionHandle.prototype.setCellRange = function (range) {\n this.cellRange = range;\n };\n AbstractSelectionHandle.prototype.getRangeStartRow = function () {\n return this.rangeStartRow;\n };\n AbstractSelectionHandle.prototype.setRangeStartRow = function (row) {\n this.rangeStartRow = row;\n };\n AbstractSelectionHandle.prototype.getRangeEndRow = function () {\n return this.rangeEndRow;\n };\n AbstractSelectionHandle.prototype.setRangeEndRow = function (row) {\n this.rangeEndRow = row;\n };\n AbstractSelectionHandle.prototype.getLastCellHovered = function () {\n return this.lastCellHovered;\n };\n AbstractSelectionHandle.prototype.preventRangeExtension = function (e) {\n e.stopPropagation();\n };\n AbstractSelectionHandle.prototype.onDragStart = function (e) {\n this.cellHoverListener = this.addManagedListener(this.ctrlsService.getGridCtrl().getGui(), 'mousemove', this.updateValuesOnMove.bind(this));\n document.body.classList.add(this.getDraggingCssClass());\n };\n AbstractSelectionHandle.prototype.getDraggingCssClass = function () {\n return \"ag-dragging-\" + (this.type === SelectionHandleType.FILL ? 'fill' : 'range') + \"-handle\";\n };\n AbstractSelectionHandle.prototype.updateValuesOnMove = function (e) {\n var cell = this.mouseEventService.getCellPositionForEvent(e);\n if (!cell || (this.lastCellHovered && this.cellPositionUtils.equals(cell, this.lastCellHovered))) {\n return;\n }\n this.lastCellHovered = cell;\n this.changedCalculatedValues = true;\n };\n AbstractSelectionHandle.prototype.getType = function () {\n return this.type;\n };\n AbstractSelectionHandle.prototype.refresh = function (cellCtrl) {\n var oldCellComp = this.getCellCtrl();\n var eGui = this.getGui();\n var cellRange = _.last(this.rangeService.getCellRanges());\n var start = cellRange.startRow;\n var end = cellRange.endRow;\n if (start && end) {\n var isBefore = this.rowPositionUtils.before(end, start);\n if (isBefore) {\n this.setRangeStartRow(end);\n this.setRangeEndRow(start);\n }\n else {\n this.setRangeStartRow(start);\n this.setRangeEndRow(end);\n }\n }\n if (oldCellComp !== cellCtrl || !_.isVisible(eGui)) {\n this.setCellCtrl(cellCtrl);\n var eParentOfValue = cellCtrl.getComp().getParentOfValue();\n if (eParentOfValue) {\n eParentOfValue.appendChild(eGui);\n }\n }\n this.setCellRange(cellRange);\n };\n AbstractSelectionHandle.prototype.clearValues = function () {\n this.lastCellHovered = undefined;\n this.removeListeners();\n };\n AbstractSelectionHandle.prototype.removeListeners = function () {\n if (this.cellHoverListener) {\n this.cellHoverListener();\n this.cellHoverListener = undefined;\n }\n };\n AbstractSelectionHandle.prototype.destroy = function () {\n if (!this.shouldDestroyOnEndDragging && this.isDragging()) {\n _.setDisplayed(this.getGui(), false);\n this.shouldDestroyOnEndDragging = true;\n return;\n }\n this.shouldDestroyOnEndDragging = false;\n _super.prototype.destroy.call(this);\n this.removeListeners();\n var eGui = this.getGui();\n if (eGui.parentElement) {\n eGui.parentElement.removeChild(eGui);\n }\n };\n __decorate$G([\n Autowired(\"rowRenderer\")\n ], AbstractSelectionHandle.prototype, \"rowRenderer\", void 0);\n __decorate$G([\n Autowired(\"dragService\")\n ], AbstractSelectionHandle.prototype, \"dragService\", void 0);\n __decorate$G([\n Autowired(\"rangeService\")\n ], AbstractSelectionHandle.prototype, \"rangeService\", void 0);\n __decorate$G([\n Autowired(\"mouseEventService\")\n ], AbstractSelectionHandle.prototype, \"mouseEventService\", void 0);\n __decorate$G([\n Autowired(\"columnModel\")\n ], AbstractSelectionHandle.prototype, \"columnModel\", void 0);\n __decorate$G([\n Autowired(\"cellNavigationService\")\n ], AbstractSelectionHandle.prototype, \"cellNavigationService\", void 0);\n __decorate$G([\n Autowired(\"navigationService\")\n ], AbstractSelectionHandle.prototype, \"navigationService\", void 0);\n __decorate$G([\n Autowired('rowPositionUtils')\n ], AbstractSelectionHandle.prototype, \"rowPositionUtils\", void 0);\n __decorate$G([\n Autowired('cellPositionUtils')\n ], AbstractSelectionHandle.prototype, \"cellPositionUtils\", void 0);\n __decorate$G([\n Autowired('ctrlsService')\n ], AbstractSelectionHandle.prototype, \"ctrlsService\", void 0);\n __decorate$G([\n PostConstruct\n ], AbstractSelectionHandle.prototype, \"init\", null);\n return AbstractSelectionHandle;\n}(Component));\n\nfunction findLineByLeastSquares(values) {\n var len = values.length;\n var maxDecimals = 0;\n if (len <= 1) {\n return values;\n }\n for (var i = 0; i < values.length; i++) {\n var value = values[i];\n var splitExponent = value.toString().split('e-');\n if (splitExponent.length > 1) {\n maxDecimals = Math.max(maxDecimals, parseInt(splitExponent[1], 10));\n continue;\n }\n if (Math.floor(value) === value) {\n continue;\n }\n maxDecimals = Math.max(maxDecimals, value.toString().split('.')[1].length);\n }\n var sum_x = 0;\n var sum_y = 0;\n var sum_xy = 0;\n var sum_xx = 0;\n var y = 0;\n for (var x = 0; x < len; x++) {\n y = values[x];\n sum_x += x;\n sum_y += y;\n sum_xx += x * x;\n sum_xy += x * y;\n }\n var m = (len * sum_xy - sum_x * sum_y) / (len * sum_xx - sum_x * sum_x);\n var b = (sum_y / len) - (m * sum_x) / len;\n var result = [];\n for (var x = 0; x <= len; x++) {\n result.push(parseFloat((x * m + b).toFixed(maxDecimals)));\n }\n return result;\n}\n\nvar __extends$K = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$b = (undefined && undefined.__assign) || function () {\n __assign$b = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$b.apply(this, arguments);\n};\nvar __decorate$F = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$b = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$6 = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar FillHandle = /** @class */ (function (_super) {\n __extends$K(FillHandle, _super);\n function FillHandle() {\n var _this = _super.call(this, FillHandle.TEMPLATE) || this;\n _this.markedCells = [];\n _this.cellValues = [];\n _this.isUp = false;\n _this.isLeft = false;\n _this.isReduce = false;\n _this.type = SelectionHandleType.FILL;\n return _this;\n }\n FillHandle.prototype.updateValuesOnMove = function (e) {\n _super.prototype.updateValuesOnMove.call(this, e);\n if (!this.initialXY) {\n this.initialXY = this.mouseEventService.getNormalisedPosition(e);\n }\n var _a = this.initialXY, x = _a.x, y = _a.y;\n var _b = this.mouseEventService.getNormalisedPosition(e), newX = _b.x, newY = _b.y;\n var diffX = Math.abs(x - newX);\n var diffY = Math.abs(y - newY);\n var allowedDirection = this.getFillHandleDirection();\n var direction;\n if (allowedDirection === 'xy') {\n direction = diffX > diffY ? 'x' : 'y';\n }\n else {\n direction = allowedDirection;\n }\n if (direction !== this.dragAxis) {\n this.dragAxis = direction;\n this.changedCalculatedValues = true;\n }\n };\n FillHandle.prototype.onDrag = function (e) {\n if (!this.initialPosition) {\n var cellCtrl = this.getCellCtrl();\n if (!cellCtrl) {\n return;\n }\n this.initialPosition = cellCtrl.getCellPosition();\n }\n var lastCellHovered = this.getLastCellHovered();\n if (lastCellHovered) {\n this.markPathFrom(this.initialPosition, lastCellHovered);\n }\n };\n FillHandle.prototype.onDragEnd = function (e) {\n this.initialXY = null;\n if (!this.markedCells.length) {\n return;\n }\n var isX = this.dragAxis === 'x';\n var initialRange = this.getCellRange();\n var colLen = initialRange.columns.length;\n var rangeStartRow = this.getRangeStartRow();\n var rangeEndRow = this.getRangeEndRow();\n var finalRange;\n if (!this.isUp && !this.isLeft) {\n finalRange = this.rangeService.createCellRangeFromCellRangeParams({\n rowStartIndex: rangeStartRow.rowIndex,\n rowStartPinned: rangeStartRow.rowPinned,\n columnStart: initialRange.columns[0],\n rowEndIndex: isX ? rangeEndRow.rowIndex : this.lastCellMarked.rowIndex,\n rowEndPinned: isX ? rangeEndRow.rowPinned : this.lastCellMarked.rowPinned,\n columnEnd: isX ? this.lastCellMarked.column : initialRange.columns[colLen - 1]\n });\n }\n else {\n var startRow = isX ? rangeStartRow : this.lastCellMarked;\n finalRange = this.rangeService.createCellRangeFromCellRangeParams({\n rowStartIndex: startRow.rowIndex,\n rowStartPinned: startRow.rowPinned,\n columnStart: isX ? this.lastCellMarked.column : initialRange.columns[0],\n rowEndIndex: rangeEndRow.rowIndex,\n rowEndPinned: rangeEndRow.rowPinned,\n columnEnd: initialRange.columns[colLen - 1]\n });\n }\n if (finalRange) {\n // raising fill events for undo / redo\n this.raiseFillStartEvent();\n this.handleValueChanged(initialRange, finalRange, e);\n this.rangeService.setCellRanges([finalRange]);\n this.raiseFillEndEvent(initialRange, finalRange);\n }\n };\n FillHandle.prototype.getFillHandleDirection = function () {\n var direction = this.gridOptionsService.get('fillHandleDirection');\n if (!direction) {\n return 'xy';\n }\n if (direction !== 'x' && direction !== 'y' && direction !== 'xy') {\n _.doOnce(function () { return console.warn(\"AG Grid: valid values for fillHandleDirection are 'x', 'y' and 'xy'. Default to 'xy'.\"); }, 'warn invalid fill direction');\n return 'xy';\n }\n return direction;\n };\n FillHandle.prototype.raiseFillStartEvent = function () {\n var fillStartEvent = {\n type: Events.EVENT_FILL_START\n };\n this.eventService.dispatchEvent(fillStartEvent);\n };\n FillHandle.prototype.raiseFillEndEvent = function (initialRange, finalRange) {\n var fillEndEvent = {\n type: Events.EVENT_FILL_END,\n initialRange: initialRange,\n finalRange: finalRange\n };\n this.eventService.dispatchEvent(fillEndEvent);\n };\n FillHandle.prototype.handleValueChanged = function (initialRange, finalRange, e) {\n var _this = this;\n var initialRangeEndRow = this.rangeService.getRangeEndRow(initialRange);\n var initialRangeStartRow = this.rangeService.getRangeStartRow(initialRange);\n var finalRangeEndRow = this.rangeService.getRangeEndRow(finalRange);\n var finalRangeStartRow = this.rangeService.getRangeStartRow(finalRange);\n var isVertical = this.dragAxis === 'y';\n // if the range is being reduced in size, all we need to do is\n // clear the cells that are no longer part of the range\n if (this.isReduce && !this.gridOptionsService.is('suppressClearOnFillReduction')) {\n var columns = isVertical\n ? initialRange.columns\n : initialRange.columns.filter(function (col) { return finalRange.columns.indexOf(col) < 0; });\n var startRow = isVertical ? this.cellNavigationService.getRowBelow(finalRangeEndRow) : finalRangeStartRow;\n if (startRow) {\n this.clearCellsInRange(startRow, initialRangeEndRow, columns);\n }\n return;\n }\n var withinInitialRange = true;\n var values = [];\n var initialValues = [];\n var idx = 0;\n var resetValues = function () {\n values.length = 0;\n initialValues.length = 0;\n idx = 0;\n };\n var iterateAcrossCells = function (column, columns) {\n var currentRow = _this.isUp ? initialRangeEndRow : initialRangeStartRow;\n var finished = false;\n if (isVertical) {\n withinInitialRange = true;\n resetValues();\n }\n var _loop_1 = function () {\n var rowNode = _this.rowPositionUtils.getRowNode(currentRow);\n if (!rowNode) {\n return \"break\";\n }\n if (isVertical && column) {\n fillValues(values, column, rowNode, function () {\n return !_this.rowPositionUtils.sameRow(currentRow, _this.isUp ? initialRangeStartRow : initialRangeEndRow);\n });\n }\n else if (columns) {\n withinInitialRange = true;\n resetValues();\n columns.forEach(function (col) { return fillValues(values, col, rowNode, function () { return col !== (_this.isLeft ? initialRange.columns[0] : _.last(initialRange.columns)); }); });\n }\n finished = _this.rowPositionUtils.sameRow(currentRow, _this.isUp ? finalRangeStartRow : finalRangeEndRow);\n currentRow = _this.isUp\n ? _this.cellNavigationService.getRowAbove(currentRow)\n : _this.cellNavigationService.getRowBelow(currentRow);\n };\n while (!finished && currentRow) {\n var state_1 = _loop_1();\n if (state_1 === \"break\")\n break;\n }\n };\n var fillValues = function (currentValues, col, rowNode, updateInitialSet) {\n var _a, _b;\n var currentValue;\n var skipValue = false;\n if (withinInitialRange) {\n currentValue = _this.valueService.getValue(col, rowNode);\n initialValues.push(currentValue);\n withinInitialRange = updateInitialSet();\n }\n else {\n var _c = _this.processValues(e, currentValues, initialValues, col, rowNode, idx++), value = _c.value, fromUserFunction = _c.fromUserFunction, sourceCol = _c.sourceCol, sourceRowNode = _c.sourceRowNode;\n currentValue = value;\n if (col.isCellEditable(rowNode)) {\n var cellValue = _this.valueService.getValue(col, rowNode);\n if (!fromUserFunction) {\n if ((_a = sourceCol === null || sourceCol === void 0 ? void 0 : sourceCol.getColDef()) === null || _a === void 0 ? void 0 : _a.useValueFormatterForExport) {\n currentValue = (_b = _this.valueFormatterService.formatValue(sourceCol, sourceRowNode, currentValue)) !== null && _b !== void 0 ? _b : currentValue;\n }\n if (col.getColDef().useValueParserForImport) {\n currentValue = _this.valueParserService.parseValue(col, rowNode, \n // if no sourceCol, then currentValue is a number\n sourceCol ? currentValue : _.toStringOrNull(currentValue), cellValue);\n }\n }\n if (!fromUserFunction || cellValue !== currentValue) {\n rowNode.setDataValue(col, currentValue, 'rangeService');\n }\n else {\n skipValue = true;\n }\n }\n }\n if (!skipValue) {\n currentValues.push({\n value: currentValue,\n column: col,\n rowNode: rowNode\n });\n }\n };\n if (isVertical) {\n initialRange.columns.forEach(function (col) {\n iterateAcrossCells(col);\n });\n }\n else {\n var columns = this.isLeft ? __spreadArray$6([], __read$b(finalRange.columns)).reverse() : finalRange.columns;\n iterateAcrossCells(undefined, columns);\n }\n };\n FillHandle.prototype.clearCellsInRange = function (startRow, endRow, columns) {\n var cellRange = {\n startRow: startRow,\n endRow: endRow,\n columns: columns,\n startColumn: columns[0]\n };\n this.rangeService.clearCellRangeCellValues({ cellRanges: [cellRange] });\n };\n FillHandle.prototype.processValues = function (event, values, initialValues, col, rowNode, idx) {\n var userFillOperation = this.gridOptionsService.getCallback('fillOperation');\n var isVertical = this.dragAxis === 'y';\n var direction;\n if (isVertical) {\n direction = this.isUp ? 'up' : 'down';\n }\n else {\n direction = this.isLeft ? 'left' : 'right';\n }\n if (userFillOperation) {\n var params = {\n event: event,\n values: values.map(function (_a) {\n var value = _a.value;\n return value;\n }),\n initialValues: initialValues,\n currentIndex: idx,\n currentCellValue: this.valueService.getValue(col, rowNode),\n direction: direction,\n column: col,\n rowNode: rowNode\n };\n var userResult = userFillOperation(params);\n if (userResult !== false) {\n return { value: userResult, fromUserFunction: true };\n }\n }\n var allNumbers = !values.some(function (_a) {\n var value = _a.value;\n var asFloat = parseFloat(value);\n return isNaN(asFloat) || asFloat.toString() !== value.toString();\n });\n // values should be copied in order if the alt key is pressed\n // or if the values contain strings and numbers\n // However, if we only have one initial value selected, and that\n // value is a number and we are also pressing alt, then we should\n // increment or decrement the value by 1 based on direction.\n if (event.altKey || !allNumbers) {\n if (allNumbers && initialValues.length === 1) {\n var multiplier = (this.isUp || this.isLeft) ? -1 : 1;\n return { value: parseFloat(_.last(values).value) + 1 * multiplier, fromUserFunction: false };\n }\n var _a = values[idx % values.length], value = _a.value, sourceCol = _a.column, sourceRowNode = _a.rowNode;\n return { value: value, fromUserFunction: false, sourceCol: sourceCol, sourceRowNode: sourceRowNode };\n }\n return { value: _.last(findLineByLeastSquares(values.map(function (_a) {\n var value = _a.value;\n return Number(value);\n }))), fromUserFunction: false };\n };\n FillHandle.prototype.clearValues = function () {\n this.clearMarkedPath();\n this.clearCellValues();\n this.lastCellMarked = undefined;\n _super.prototype.clearValues.call(this);\n };\n FillHandle.prototype.clearMarkedPath = function () {\n this.markedCells.forEach(function (cell) {\n if (!cell.isAlive()) {\n return;\n }\n var comp = cell.getComp();\n comp.addOrRemoveCssClass('ag-selection-fill-top', false);\n comp.addOrRemoveCssClass('ag-selection-fill-right', false);\n comp.addOrRemoveCssClass('ag-selection-fill-bottom', false);\n comp.addOrRemoveCssClass('ag-selection-fill-left', false);\n });\n this.markedCells.length = 0;\n this.isUp = false;\n this.isLeft = false;\n this.isReduce = false;\n };\n FillHandle.prototype.clearCellValues = function () {\n this.cellValues.length = 0;\n };\n FillHandle.prototype.markPathFrom = function (initialPosition, currentPosition) {\n this.clearMarkedPath();\n this.clearCellValues();\n if (this.dragAxis === 'y') {\n if (this.rowPositionUtils.sameRow(currentPosition, initialPosition)) {\n return;\n }\n var isBefore = this.rowPositionUtils.before(currentPosition, initialPosition);\n var rangeStartRow = this.getRangeStartRow();\n var rangeEndRow = this.getRangeEndRow();\n if (isBefore && ((currentPosition.rowPinned == rangeStartRow.rowPinned &&\n currentPosition.rowIndex >= rangeStartRow.rowIndex) ||\n (rangeStartRow.rowPinned != rangeEndRow.rowPinned &&\n currentPosition.rowPinned == rangeEndRow.rowPinned &&\n currentPosition.rowIndex <= rangeEndRow.rowIndex))) {\n this.reduceVertical(initialPosition, currentPosition);\n this.isReduce = true;\n }\n else {\n this.extendVertical(initialPosition, currentPosition, isBefore);\n this.isReduce = false;\n }\n }\n else {\n var initialColumn = initialPosition.column;\n var currentColumn = currentPosition.column;\n if (initialColumn === currentColumn) {\n return;\n }\n var displayedColumns = this.columnModel.getAllDisplayedColumns();\n var initialIndex = displayedColumns.indexOf(initialColumn);\n var currentIndex = displayedColumns.indexOf(currentColumn);\n if (currentIndex <= initialIndex && currentIndex >= displayedColumns.indexOf(this.getCellRange().columns[0])) {\n this.reduceHorizontal(initialPosition, currentPosition);\n this.isReduce = true;\n }\n else {\n this.extendHorizontal(initialPosition, currentPosition, currentIndex < initialIndex);\n this.isReduce = false;\n }\n }\n this.lastCellMarked = currentPosition;\n };\n FillHandle.prototype.extendVertical = function (initialPosition, endPosition, isMovingUp) {\n var _a = this, navigationService = _a.navigationService, rangeService = _a.rangeService;\n var row = initialPosition;\n do {\n var cellRange = this.getCellRange();\n var colLen = cellRange.columns.length;\n for (var i = 0; i < colLen; i++) {\n var column = cellRange.columns[i];\n var rowPos = { rowIndex: row.rowIndex, rowPinned: row.rowPinned };\n var cellPos = __assign$b(__assign$b({}, rowPos), { column: column });\n var cellInRange = rangeService.isCellInSpecificRange(cellPos, cellRange);\n var isInitialRow = this.rowPositionUtils.sameRow(row, initialPosition);\n if (isMovingUp) {\n this.isUp = true;\n }\n if (!isInitialRow) {\n var cell = navigationService.getCellByPosition(cellPos);\n if (cell) {\n this.markedCells.push(cell);\n var cellCtrl = cell.getComp();\n if (!cellInRange) {\n cellCtrl.addOrRemoveCssClass('ag-selection-fill-left', i === 0);\n cellCtrl.addOrRemoveCssClass('ag-selection-fill-right', i === colLen - 1);\n }\n cellCtrl.addOrRemoveCssClass(isMovingUp ? 'ag-selection-fill-top' : 'ag-selection-fill-bottom', this.rowPositionUtils.sameRow(row, endPosition));\n }\n }\n }\n if (this.rowPositionUtils.sameRow(row, endPosition)) {\n break;\n }\n } while (\n // tslint:disable-next-line\n row = isMovingUp\n ? this.cellNavigationService.getRowAbove(row)\n : this.cellNavigationService.getRowBelow(row));\n };\n FillHandle.prototype.reduceVertical = function (initialPosition, endPosition) {\n var row = initialPosition;\n do {\n var cellRange = this.getCellRange();\n var colLen = cellRange.columns.length;\n var isLastRow = this.rowPositionUtils.sameRow(row, endPosition);\n for (var i = 0; i < colLen; i++) {\n var rowPos = { rowIndex: row.rowIndex, rowPinned: row.rowPinned };\n var celPos = __assign$b(__assign$b({}, rowPos), { column: cellRange.columns[i] });\n var cell = this.navigationService.getCellByPosition(celPos);\n if (cell) {\n this.markedCells.push(cell);\n var cellComp = cell.getComp();\n cellComp.addOrRemoveCssClass('ag-selection-fill-bottom', this.rowPositionUtils.sameRow(row, endPosition));\n }\n }\n if (isLastRow) {\n break;\n }\n // tslint:disable-next-line\n } while (row = this.cellNavigationService.getRowAbove(row));\n };\n FillHandle.prototype.extendHorizontal = function (initialPosition, endPosition, isMovingLeft) {\n var _this = this;\n var allCols = this.columnModel.getAllDisplayedColumns();\n var startCol = allCols.indexOf(isMovingLeft ? endPosition.column : initialPosition.column);\n var endCol = allCols.indexOf(isMovingLeft ? this.getCellRange().columns[0] : endPosition.column);\n var offset = isMovingLeft ? 0 : 1;\n var colsToMark = allCols.slice(startCol + offset, endCol + offset);\n var rangeStartRow = this.getRangeStartRow();\n var rangeEndRow = this.getRangeEndRow();\n colsToMark.forEach(function (column) {\n var row = rangeStartRow;\n var isLastRow = false;\n do {\n isLastRow = _this.rowPositionUtils.sameRow(row, rangeEndRow);\n var cell = _this.navigationService.getCellByPosition({\n rowIndex: row.rowIndex,\n rowPinned: row.rowPinned,\n column: column\n });\n if (cell) {\n _this.markedCells.push(cell);\n var cellComp = cell.getComp();\n cellComp.addOrRemoveCssClass('ag-selection-fill-top', _this.rowPositionUtils.sameRow(row, rangeStartRow));\n cellComp.addOrRemoveCssClass('ag-selection-fill-bottom', _this.rowPositionUtils.sameRow(row, rangeEndRow));\n if (isMovingLeft) {\n _this.isLeft = true;\n cellComp.addOrRemoveCssClass('ag-selection-fill-left', column === colsToMark[0]);\n }\n else {\n cellComp.addOrRemoveCssClass('ag-selection-fill-right', column === _.last(colsToMark));\n }\n }\n row = _this.cellNavigationService.getRowBelow(row);\n } while (!isLastRow);\n });\n };\n FillHandle.prototype.reduceHorizontal = function (initialPosition, endPosition) {\n var _this = this;\n var allCols = this.columnModel.getAllDisplayedColumns();\n var startCol = allCols.indexOf(endPosition.column);\n var endCol = allCols.indexOf(initialPosition.column);\n var colsToMark = allCols.slice(startCol, endCol);\n var rangeStartRow = this.getRangeStartRow();\n var rangeEndRow = this.getRangeEndRow();\n colsToMark.forEach(function (column) {\n var row = rangeStartRow;\n var isLastRow = false;\n do {\n isLastRow = _this.rowPositionUtils.sameRow(row, rangeEndRow);\n var cell = _this.navigationService.getCellByPosition({\n rowIndex: row.rowIndex,\n rowPinned: row.rowPinned,\n column: column\n });\n if (cell) {\n _this.markedCells.push(cell);\n var cellComp = cell.getComp();\n cellComp.addOrRemoveCssClass('ag-selection-fill-right', column === colsToMark[0]);\n }\n row = _this.cellNavigationService.getRowBelow(row);\n } while (!isLastRow);\n });\n };\n FillHandle.prototype.refresh = function (cellCtrl) {\n var cellRange = this.rangeService.getCellRanges()[0];\n var isColumnRange = !cellRange.startRow || !cellRange.endRow;\n if (isColumnRange) {\n this.destroy();\n return;\n }\n _super.prototype.refresh.call(this, cellCtrl);\n };\n FillHandle.TEMPLATE = \"
\";\n __decorate$F([\n Autowired('valueService')\n ], FillHandle.prototype, \"valueService\", void 0);\n __decorate$F([\n Autowired('valueParserService')\n ], FillHandle.prototype, \"valueParserService\", void 0);\n __decorate$F([\n Autowired('valueFormatterService')\n ], FillHandle.prototype, \"valueFormatterService\", void 0);\n return FillHandle;\n}(AbstractSelectionHandle));\n\nvar __extends$J = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$a = (undefined && undefined.__assign) || function () {\n __assign$a = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$a.apply(this, arguments);\n};\nvar RangeHandle = /** @class */ (function (_super) {\n __extends$J(RangeHandle, _super);\n function RangeHandle() {\n var _this = _super.call(this, RangeHandle.TEMPLATE) || this;\n _this.type = SelectionHandleType.RANGE;\n _this.rangeFixed = false;\n return _this;\n }\n RangeHandle.prototype.onDrag = function (e) {\n var lastCellHovered = this.getLastCellHovered();\n if (!lastCellHovered) {\n return;\n }\n var cellRanges = this.rangeService.getCellRanges();\n var lastRange = _.last(cellRanges);\n if (!this.rangeFixed) {\n this.fixRangeStartEnd(lastRange);\n this.rangeFixed = true;\n }\n this.endPosition = {\n rowIndex: lastCellHovered.rowIndex,\n rowPinned: lastCellHovered.rowPinned,\n column: lastCellHovered.column\n };\n // check if the cell ranges are for a chart\n if (cellRanges.length === 2 && cellRanges[0].type === CellRangeType.DIMENSION && lastRange.type === CellRangeType.VALUE) {\n var rowChanged = !this.rowPositionUtils.sameRow(this.endPosition, this.rangeService.getRangeEndRow(lastRange));\n if (rowChanged) {\n // ensure the dimension range is kept in sync with the value range (which has the handle)\n this.rangeService.updateRangeEnd(cellRanges[0], __assign$a(__assign$a({}, this.endPosition), { column: cellRanges[0].columns[0] }), true);\n }\n }\n this.rangeService.extendLatestRangeToCell(this.endPosition);\n };\n RangeHandle.prototype.onDragEnd = function (e) {\n var cellRange = _.last(this.rangeService.getCellRanges());\n this.fixRangeStartEnd(cellRange);\n this.rangeFixed = false;\n };\n RangeHandle.prototype.fixRangeStartEnd = function (cellRange) {\n var startRow = this.rangeService.getRangeStartRow(cellRange);\n var endRow = this.rangeService.getRangeEndRow(cellRange);\n var column = cellRange.columns[0];\n cellRange.startRow = startRow;\n cellRange.endRow = endRow;\n cellRange.startColumn = column;\n };\n RangeHandle.TEMPLATE = \"
\";\n return RangeHandle;\n}(AbstractSelectionHandle));\n\nvar __extends$I = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$E = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SelectionHandleFactory = /** @class */ (function (_super) {\n __extends$I(SelectionHandleFactory, _super);\n function SelectionHandleFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SelectionHandleFactory.prototype.createSelectionHandle = function (type) {\n return this.createBean(type === SelectionHandleType.RANGE ? new RangeHandle() : new FillHandle());\n };\n SelectionHandleFactory = __decorate$E([\n Bean('selectionHandleFactory')\n ], SelectionHandleFactory);\n return SelectionHandleFactory;\n}(BeanStub));\n\n// DO NOT UPDATE MANUALLY: Generated from script during build time\nvar VERSION$9 = '30.2.0';\n\nvar RangeSelectionModule = {\n version: VERSION$9,\n moduleName: ModuleNames.RangeSelectionModule,\n beans: [RangeService, SelectionHandleFactory],\n agStackComponents: [\n { componentName: 'AgFillHandle', componentClass: FillHandle },\n { componentName: 'AgRangeHandle', componentClass: RangeHandle }\n ],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar __extends$H = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$D = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$a = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar AgColorPanel = /** @class */ (function (_super) {\n __extends$H(AgColorPanel, _super);\n function AgColorPanel(config) {\n var _this = _super.call(this, AgColorPanel.TEMPLATE) || this;\n _this.H = 1; // in the [0, 1] range\n _this.S = 1; // in the [0, 1] range\n _this.B = 1; // in the [0, 1] range\n _this.A = 1; // in the [0, 1] range\n _this.isSpectrumDragging = false;\n _this.isSpectrumHueDragging = false;\n _this.isSpectrumAlphaDragging = false;\n _this.colorChanged = false;\n _this.picker = config.picker;\n return _this;\n }\n AgColorPanel.prototype.postConstruct = function () {\n var _this = this;\n this.initTabIndex();\n this.initRecentColors();\n this.addGuiEventListener('focus', function () { return _this.spectrumColor.focus(); });\n this.addGuiEventListener('keydown', function (e) {\n if (e.key === KeyCode.ENTER && !e.defaultPrevented) {\n _this.destroy();\n }\n });\n this.addManagedListener(this.spectrumColor, 'keydown', function (e) { return _this.moveDragger(e); });\n this.addManagedListener(this.spectrumAlphaSlider, 'keydown', function (e) { return _this.moveAlphaSlider(e); });\n this.addManagedListener(this.spectrumHueSlider, 'keydown', function (e) { return _this.moveHueSlider(e); });\n this.addManagedListener(this.spectrumVal, 'mousedown', this.onSpectrumDraggerDown.bind(this));\n this.addManagedListener(this.spectrumHue, 'mousedown', this.onSpectrumHueDown.bind(this));\n this.addManagedListener(this.spectrumAlpha, 'mousedown', this.onSpectrumAlphaDown.bind(this));\n this.addGuiEventListener('mousemove', function (e) {\n _this.onSpectrumDraggerMove(e);\n _this.onSpectrumHueMove(e);\n _this.onSpectrumAlphaMove(e);\n });\n // Listening to `mouseup` on the document on purpose. The user might release the mouse button\n // outside the UI control. When the mouse returns back to the control's area, the dragging\n // of the thumb is not expected and seen as a bug.\n this.addManagedListener(document, 'mouseup', this.onMouseUp.bind(this));\n this.addManagedListener(this.recentColors, 'click', this.onRecentColorClick.bind(this));\n this.addManagedListener(this.recentColors, 'keydown', function (e) {\n if (e.key === KeyCode.ENTER || e.key === KeyCode.SPACE) {\n e.preventDefault();\n _this.onRecentColorClick(e);\n }\n });\n };\n AgColorPanel.prototype.initTabIndex = function () {\n var tabIndex = this.tabIndex = (this.gridOptionsService.getNum('tabIndex') || 0).toString();\n this.spectrumColor.setAttribute('tabindex', tabIndex);\n this.spectrumHueSlider.setAttribute('tabindex', tabIndex);\n this.spectrumAlphaSlider.setAttribute('tabindex', tabIndex);\n };\n AgColorPanel.prototype.refreshSpectrumRect = function () {\n return this.spectrumValRect = this.spectrumVal.getBoundingClientRect();\n };\n AgColorPanel.prototype.refreshHueRect = function () {\n return this.spectrumHueRect = this.spectrumHue.getBoundingClientRect();\n };\n AgColorPanel.prototype.refreshAlphaRect = function () {\n return this.spectrumAlphaRect = this.spectrumAlpha.getBoundingClientRect();\n };\n AgColorPanel.prototype.onSpectrumDraggerDown = function (e) {\n this.refreshSpectrumRect();\n this.isSpectrumDragging = true;\n this.moveDragger(e);\n };\n AgColorPanel.prototype.onSpectrumDraggerMove = function (e) {\n if (this.isSpectrumDragging) {\n this.moveDragger(e);\n }\n };\n AgColorPanel.prototype.onSpectrumHueDown = function (e) {\n this.refreshHueRect();\n this.isSpectrumHueDragging = true;\n this.moveHueSlider(e);\n };\n AgColorPanel.prototype.onSpectrumHueMove = function (e) {\n if (this.isSpectrumHueDragging) {\n this.moveHueSlider(e);\n }\n };\n AgColorPanel.prototype.onSpectrumAlphaDown = function (e) {\n this.refreshAlphaRect();\n this.isSpectrumAlphaDragging = true;\n this.moveAlphaSlider(e);\n };\n AgColorPanel.prototype.onSpectrumAlphaMove = function (e) {\n if (this.isSpectrumAlphaDragging) {\n this.moveAlphaSlider(e);\n }\n };\n AgColorPanel.prototype.onMouseUp = function () {\n this.isSpectrumDragging = false;\n this.isSpectrumHueDragging = false;\n this.isSpectrumAlphaDragging = false;\n };\n AgColorPanel.prototype.moveDragger = function (e) {\n var valRect = this.spectrumValRect;\n if (!valRect) {\n return;\n }\n var x;\n var y;\n if (e instanceof MouseEvent) {\n x = e.clientX - valRect.left;\n y = e.clientY - valRect.top;\n }\n else {\n var isLeft = e.key === KeyCode.LEFT;\n var isRight = e.key === KeyCode.RIGHT;\n var isUp = e.key === KeyCode.UP;\n var isDown = e.key === KeyCode.DOWN;\n var isVertical = isUp || isDown;\n var isHorizontal = isLeft || isRight;\n if (!isVertical && !isHorizontal) {\n return;\n }\n e.preventDefault();\n var _a = this.getSpectrumValue(), currentX = _a.x, currentY = _a.y;\n x = currentX + (isHorizontal ? (isLeft ? -5 : 5) : 0);\n y = currentY + (isVertical ? (isUp ? -5 : 5) : 0);\n }\n x = Math.max(x, 0);\n x = Math.min(x, valRect.width);\n y = Math.max(y, 0);\n y = Math.min(y, valRect.height);\n this.setSpectrumValue(x / valRect.width, 1 - y / valRect.height);\n };\n AgColorPanel.prototype.moveHueSlider = function (e) {\n var rect = this.spectrumHueRect;\n if (!rect) {\n return;\n }\n var x = this.moveSlider(this.spectrumHueSlider, e);\n if (x == null) {\n return;\n }\n this.H = 1 - x / rect.width;\n this.update();\n };\n AgColorPanel.prototype.moveAlphaSlider = function (e) {\n var rect = this.spectrumAlphaRect;\n if (!rect) {\n return;\n }\n var x = this.moveSlider(this.spectrumAlphaSlider, e);\n if (x == null) {\n return;\n }\n this.A = x / rect.width;\n this.update();\n };\n AgColorPanel.prototype.moveSlider = function (slider, e) {\n var _a;\n var sliderRect = slider.getBoundingClientRect();\n var parentRect = (_a = slider.parentElement) === null || _a === void 0 ? void 0 : _a.getBoundingClientRect();\n if (!slider || !parentRect) {\n return null;\n }\n var x;\n if (e instanceof MouseEvent) {\n x = e.clientX - parentRect.left;\n }\n else {\n var isLeft = e.key === KeyCode.LEFT;\n var isRight = e.key === KeyCode.RIGHT;\n if (!isLeft && !isRight) {\n return null;\n }\n e.preventDefault();\n var diff = isLeft ? -5 : 5;\n x = (parseFloat(slider.style.left) - sliderRect.width / 2) + diff;\n }\n x = Math.max(x, 0);\n x = Math.min(x, parentRect.width);\n slider.style.left = (x + sliderRect.width / 2) + 'px';\n return x;\n };\n AgColorPanel.prototype.update = function () {\n var color = Color.fromHSB(this.H * 360, this.S, this.B, this.A);\n var spectrumColor = Color.fromHSB(this.H * 360, 1, 1);\n var rgbaColor = color.toRgbaString();\n // the recent color list needs to know color has actually changed\n var colorPicker = this.picker;\n var existingColor = Color.fromString(colorPicker.getValue());\n if (existingColor.toRgbaString() !== rgbaColor) {\n this.colorChanged = true;\n }\n colorPicker.setValue(rgbaColor);\n this.spectrumColor.style.backgroundColor = spectrumColor.toRgbaString();\n this.spectrumDragger.style.backgroundColor = rgbaColor;\n };\n /**\n * @param saturation In the [0, 1] interval.\n * @param brightness In the [0, 1] interval.\n */\n AgColorPanel.prototype.setSpectrumValue = function (saturation, brightness) {\n var valRect = this.spectrumValRect || this.refreshSpectrumRect();\n if (valRect == null) {\n return;\n }\n var dragger = this.spectrumDragger;\n var draggerRect = dragger.getBoundingClientRect();\n saturation = Math.max(0, saturation);\n saturation = Math.min(1, saturation);\n brightness = Math.max(0, brightness);\n brightness = Math.min(1, brightness);\n this.S = saturation;\n this.B = brightness;\n dragger.style.left = (saturation * valRect.width - draggerRect.width / 2) + 'px';\n dragger.style.top = ((1 - brightness) * valRect.height - draggerRect.height / 2) + 'px';\n this.update();\n };\n AgColorPanel.prototype.getSpectrumValue = function () {\n var dragger = this.spectrumDragger;\n var draggerRect = dragger.getBoundingClientRect();\n var x = parseFloat(dragger.style.left) + draggerRect.width / 2;\n var y = parseFloat(dragger.style.top) + draggerRect.height / 2;\n return { x: x, y: y };\n };\n AgColorPanel.prototype.initRecentColors = function () {\n var _this = this;\n var recentColors = AgColorPanel.recentColors;\n var innerHtml = recentColors.map(function (color, index) {\n return ( /* html */\"
\");\n });\n this.recentColors.innerHTML = innerHtml.join('');\n };\n AgColorPanel.prototype.setValue = function (val) {\n var color = Color.fromString(val);\n var _a = __read$a(color.toHSB(), 3), h = _a[0], s = _a[1], b = _a[2];\n this.H = (isNaN(h) ? 0 : h) / 360;\n this.A = color.a;\n var spectrumHueRect = this.spectrumHueRect || this.refreshHueRect();\n var spectrumAlphaRect = this.spectrumAlphaRect || this.refreshAlphaRect();\n this.spectrumHueSlider.style.left = ((this.H - 1) * -spectrumHueRect.width) + \"px\";\n this.spectrumAlphaSlider.style.left = (this.A * spectrumAlphaRect.width) + \"px\";\n this.setSpectrumValue(s, b);\n };\n AgColorPanel.prototype.onRecentColorClick = function (e) {\n var target = e.target;\n if (!_.exists(target.id)) {\n return;\n }\n var id = parseInt(target.id, 10);\n this.setValue(AgColorPanel.recentColors[id]);\n this.destroy();\n };\n AgColorPanel.prototype.addRecentColor = function () {\n var color = Color.fromHSB(this.H * 360, this.S, this.B, this.A);\n var rgbaColor = color.toRgbaString();\n var recentColors = AgColorPanel.recentColors;\n if (!this.colorChanged || recentColors[0] === rgbaColor) {\n return;\n }\n // remove duplicate color\n recentColors = recentColors.filter(function (currentColor) { return currentColor != rgbaColor; });\n // add color to head\n recentColors = [rgbaColor].concat(recentColors);\n // ensure we don't exceed max number of recent colors\n if (recentColors.length > AgColorPanel.maxRecentColors) {\n recentColors = recentColors.slice(0, AgColorPanel.maxRecentColors);\n }\n AgColorPanel.recentColors = recentColors;\n };\n AgColorPanel.prototype.destroy = function () {\n this.addRecentColor();\n _super.prototype.destroy.call(this);\n };\n AgColorPanel.maxRecentColors = 8;\n AgColorPanel.recentColors = [];\n AgColorPanel.TEMPLATE = \"
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\\n
\";\n __decorate$D([\n RefSelector('spectrumColor')\n ], AgColorPanel.prototype, \"spectrumColor\", void 0);\n __decorate$D([\n RefSelector('spectrumVal')\n ], AgColorPanel.prototype, \"spectrumVal\", void 0);\n __decorate$D([\n RefSelector('spectrumDragger')\n ], AgColorPanel.prototype, \"spectrumDragger\", void 0);\n __decorate$D([\n RefSelector('spectrumHue')\n ], AgColorPanel.prototype, \"spectrumHue\", void 0);\n __decorate$D([\n RefSelector('spectrumHueSlider')\n ], AgColorPanel.prototype, \"spectrumHueSlider\", void 0);\n __decorate$D([\n RefSelector('spectrumAlpha')\n ], AgColorPanel.prototype, \"spectrumAlpha\", void 0);\n __decorate$D([\n RefSelector('spectrumAlphaSlider')\n ], AgColorPanel.prototype, \"spectrumAlphaSlider\", void 0);\n __decorate$D([\n RefSelector('recentColors')\n ], AgColorPanel.prototype, \"recentColors\", void 0);\n __decorate$D([\n PostConstruct\n ], AgColorPanel.prototype, \"postConstruct\", null);\n return AgColorPanel;\n}(Component));\n\nvar __extends$G = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$9 = (undefined && undefined.__assign) || function () {\n __assign$9 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$9.apply(this, arguments);\n};\nvar AgColorPicker = /** @class */ (function (_super) {\n __extends$G(AgColorPicker, _super);\n function AgColorPicker(config) {\n var _this = _super.call(this, __assign$9({ pickerAriaLabelKey: 'ariaLabelColorPicker', pickerAriaLabelValue: 'Color Picker', pickerType: 'ag-list', className: 'ag-color-picker', pickerIcon: 'colorPicker' }, config)) || this;\n if (config && config.color) {\n _this.value = config.color;\n }\n return _this;\n }\n AgColorPicker.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n if (this.value) {\n this.setValue(this.value);\n }\n };\n AgColorPicker.prototype.createPickerComponent = function () {\n var eGuiRect = this.getGui().getBoundingClientRect();\n var colorDialog = this.createBean(new AgDialog({\n closable: false,\n modal: true,\n hideTitleBar: true,\n minWidth: 190,\n width: 190,\n height: 250,\n x: eGuiRect.right - 190,\n y: eGuiRect.top - 250\n }));\n return colorDialog;\n };\n AgColorPicker.prototype.renderAndPositionPicker = function () {\n var _this = this;\n var pickerComponent = this.pickerComponent;\n var colorPanel = this.createBean(new AgColorPanel({ picker: this }));\n pickerComponent.addCssClass('ag-color-dialog');\n colorPanel.addDestroyFunc(function () {\n if (pickerComponent.isAlive()) {\n _this.destroyBean(pickerComponent);\n }\n });\n pickerComponent.setParentComponent(this);\n pickerComponent.setBodyComponent(colorPanel);\n colorPanel.setValue(this.getValue());\n colorPanel.getGui().focus();\n pickerComponent.addDestroyFunc(function () {\n // here we check if the picker was already being\n // destroyed to avoid a stack overflow\n if (!_this.isDestroyingPicker) {\n _this.beforeHidePicker();\n _this.isDestroyingPicker = true;\n if (colorPanel.isAlive()) {\n _this.destroyBean(colorPanel);\n }\n if (_this.isAlive()) {\n _this.getFocusableElement().focus();\n }\n }\n else {\n _this.isDestroyingPicker = false;\n }\n });\n return function () { var _a; return (_a = _this.pickerComponent) === null || _a === void 0 ? void 0 : _a.close(); };\n };\n AgColorPicker.prototype.setValue = function (color) {\n if (this.value === color) {\n return this;\n }\n this.eDisplayField.style.backgroundColor = color;\n return _super.prototype.setValue.call(this, color);\n };\n AgColorPicker.prototype.getValue = function () {\n return this.value;\n };\n return AgColorPicker;\n}(AgPickerField));\n\nvar __read$9 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar VERSION_CHECKING_FIRST_GRID_MAJOR_VERSION = 28;\nvar VERSION_CHECKING_FIRST_CHARTS_MAJOR_VERSION = 6;\nfunction isValidVersion(version) {\n return version && version.match(/\\d+\\.\\d+\\.\\d+/);\n}\nfunction isValidMajorVersion(_a) {\n var gridMajorVersion = _a.gridMajorVersion, chartsMajorVersion = _a.chartsMajorVersion;\n var gridMajor = parseInt(gridMajorVersion, 10);\n var chartsMajor = parseInt(chartsMajorVersion, 10);\n var gridMajorDifference = gridMajor - VERSION_CHECKING_FIRST_GRID_MAJOR_VERSION;\n var chartsMajorDifference = chartsMajor - VERSION_CHECKING_FIRST_CHARTS_MAJOR_VERSION;\n var isFirstOrAfterVersion = gridMajorDifference >= 0;\n return gridMajorDifference === chartsMajorDifference && isFirstOrAfterVersion;\n}\nfunction gridChartVersion(gridVersion) {\n if (!gridVersion || !isValidVersion(gridVersion)) {\n return undefined;\n }\n var _a = __read$9(gridVersion.split('.') || [], 2), gridMajor = _a[0], gridMinor = _a[1];\n var gridMajorMinor = gridMajor + \".\" + gridMinor + \".x\";\n var gridMajorNumber = parseInt(gridMajor, 10);\n var chartsMajor = (gridMajorNumber - VERSION_CHECKING_FIRST_GRID_MAJOR_VERSION) + VERSION_CHECKING_FIRST_CHARTS_MAJOR_VERSION;\n if (chartsMajor < 0) {\n return undefined;\n }\n var chartsMinor = gridMinor;\n var chartsMajorMinor = chartsMajor + \".\" + chartsMinor + \".x\";\n return {\n gridMajorMinor: gridMajorMinor,\n chartsMajorMinor: chartsMajorMinor\n };\n}\nfunction validGridChartsVersionErrorMessage(_a) {\n var type = _a.type, gridVersion = _a.gridVersion, chartsVersion = _a.chartsVersion;\n var invalidMessage = 'AG Grid: AG Grid version is incompatible. Please see https://www.ag-grid.com/javascript-data-grid/modules/ for more information.';\n if (!gridVersion) {\n return invalidMessage;\n }\n var version = gridChartVersion(gridVersion);\n if (!version) {\n return invalidMessage;\n }\n var gridMajorMinor = version.gridMajorMinor, chartsMajorMinor = version.chartsMajorMinor;\n if (type === 'incompatible') {\n return \"AG Grid version \" + gridVersion + \" and AG Charts version \" + chartsVersion + \" is not supported. AG Grid version \" + gridMajorMinor + \" should be used with AG Chart \" + chartsMajorMinor + \". Please see https://www.ag-grid.com/javascript-data-grid/modules/ for more information.\";\n }\n else if (type === 'invalidCharts') {\n return \"AG Grid version \" + gridMajorMinor + \" should be used with AG Chart \" + chartsMajorMinor + \". Please see https://www.ag-grid.com/javascript-data-grid/modules/ for more information.\";\n }\n return invalidMessage;\n}\nfunction validGridChartsVersion(_a) {\n var gridVersion = _a.gridVersion, chartsVersion = _a.chartsVersion;\n if (!isValidVersion(chartsVersion)) {\n return {\n isValid: false,\n message: validGridChartsVersionErrorMessage({ type: 'invalidCharts', gridVersion: gridVersion, chartsVersion: chartsVersion })\n };\n }\n if (!isValidVersion(gridVersion)) {\n return {\n isValid: false,\n message: validGridChartsVersionErrorMessage({ type: 'invalidGrid', gridVersion: gridVersion, chartsVersion: chartsVersion })\n };\n }\n var _b = __read$9(gridVersion.split('.') || [], 2), gridMajor = _b[0], gridMinor = _b[1];\n var _c = __read$9(chartsVersion.split('.') || [], 2), chartsMajor = _c[0], chartsMinor = _c[1];\n var isValidMajor = isValidMajorVersion({\n gridMajorVersion: gridMajor,\n chartsMajorVersion: chartsMajor\n });\n if (isValidMajor && gridMinor === chartsMinor) {\n return {\n isValid: true\n };\n }\n else if (!isValidMajor || gridMinor !== chartsMinor) {\n return {\n isValid: false,\n message: validGridChartsVersionErrorMessage({ type: 'incompatible', gridVersion: gridVersion, chartsVersion: chartsVersion })\n };\n }\n return {\n isValid: false,\n message: validGridChartsVersionErrorMessage({ type: 'invalid', gridVersion: gridVersion, chartsVersion: chartsVersion })\n };\n}\n\nvar GridChartsModule = {\n version: VERSION$a,\n validate: function () {\n return validGridChartsVersion({\n gridVersion: VERSION$a,\n chartsVersion: ChartService.CHARTS_VERSION\n });\n },\n moduleName: ModuleNames.GridChartsModule,\n beans: [\n ChartService, ChartTranslationService, ChartCrossFilterService\n ],\n agStackComponents: [\n { componentName: 'AgColorPicker', componentClass: AgColorPicker },\n { componentName: 'AgAngleSelect', componentClass: AgAngleSelect },\n ],\n dependantModules: [\n RangeSelectionModule,\n EnterpriseCoreModule\n ]\n};\n\n/**\n * Internal Use Only: Used to ensure this file is treated as a module until we can use moduleDetection flag in Ts v4.7\n */\nvar __FORCE_MODULE_DETECTION_AG_GRID_CORE_EXT = 0;\n\nvar agCharts = {\n time: time,\n AgChart: AgChart\n};\n\nvar __extends$F = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$8 = (undefined && undefined.__assign) || function () {\n __assign$8 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$8.apply(this, arguments);\n};\nvar __decorate$C = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DetailCellRendererCtrl = /** @class */ (function (_super) {\n __extends$F(DetailCellRendererCtrl, _super);\n function DetailCellRendererCtrl() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.loadRowDataVersion = 0;\n return _this;\n }\n DetailCellRendererCtrl.prototype.init = function (comp, params) {\n this.params = params;\n this.comp = comp;\n var doNothingBecauseInsidePinnedSection = params.pinned != null;\n if (doNothingBecauseInsidePinnedSection) {\n return;\n }\n this.setAutoHeightClasses();\n this.setupRefreshStrategy();\n this.addThemeToDetailGrid();\n this.createDetailGrid();\n this.loadRowData();\n this.addManagedListener(this.eventService, Events.EVENT_FULL_WIDTH_ROW_FOCUSED, this.onFullWidthRowFocused.bind(this));\n };\n DetailCellRendererCtrl.prototype.onFullWidthRowFocused = function (e) {\n var params = this.params;\n var row = { rowIndex: params.node.rowIndex, rowPinned: params.node.rowPinned };\n var eventRow = { rowIndex: e.rowIndex, rowPinned: e.rowPinned };\n var isSameRow = this.rowPositionUtils.sameRow(row, eventRow);\n if (!isSameRow) {\n return;\n }\n this.focusService.focusInto(this.comp.getGui(), e.fromBelow);\n };\n DetailCellRendererCtrl.prototype.setAutoHeightClasses = function () {\n var autoHeight = this.gridOptionsService.is('detailRowAutoHeight');\n var parentClass = autoHeight ? 'ag-details-row-auto-height' : 'ag-details-row-fixed-height';\n var detailClass = autoHeight ? 'ag-details-grid-auto-height' : 'ag-details-grid-fixed-height';\n this.comp.addOrRemoveCssClass(parentClass, true);\n this.comp.addOrRemoveDetailGridCssClass(detailClass, true);\n };\n DetailCellRendererCtrl.prototype.setupRefreshStrategy = function () {\n var providedStrategy = this.params.refreshStrategy;\n var validSelection = providedStrategy == 'everything' || providedStrategy == 'nothing' || providedStrategy == 'rows';\n if (validSelection) {\n this.refreshStrategy = providedStrategy;\n return;\n }\n if (providedStrategy != null) {\n console.warn(\"AG Grid: invalid cellRendererParams.refreshStrategy = '\" + providedStrategy +\n \"' supplied, defaulting to refreshStrategy = 'rows'.\");\n }\n this.refreshStrategy = 'rows';\n };\n DetailCellRendererCtrl.prototype.addThemeToDetailGrid = function () {\n // this is needed by environment service of the child grid, the class needs to be on\n // the grid div itself - the browser's CSS on the other hand just inherits from the parent grid theme.\n var theme = this.environment.getTheme().theme;\n if (theme) {\n this.comp.addOrRemoveDetailGridCssClass(theme, true);\n }\n };\n DetailCellRendererCtrl.prototype.createDetailGrid = function () {\n if (_.missing(this.params.detailGridOptions)) {\n console.warn('AG Grid: could not find detail grid options for master detail, ' +\n 'please set gridOptions.detailCellRendererParams.detailGridOptions');\n return;\n }\n var autoHeight = this.gridOptionsService.is('detailRowAutoHeight');\n // we clone the detail grid options, as otherwise it would be shared\n // across many instances, and that would be a problem because we set\n // api and columnApi into gridOptions\n var gridOptions = __assign$8({}, this.params.detailGridOptions);\n if (autoHeight) {\n gridOptions.domLayout = 'autoHeight';\n }\n this.comp.setDetailGrid(gridOptions);\n };\n DetailCellRendererCtrl.prototype.registerDetailWithMaster = function (api, columnApi) {\n var rowId = this.params.node.id;\n var masterGridApi = this.params.api;\n var gridInfo = {\n id: rowId,\n api: api,\n columnApi: columnApi\n };\n var rowNode = this.params.node;\n // register with api\n masterGridApi.addDetailGridInfo(rowId, gridInfo);\n // register with node\n rowNode.detailGridInfo = gridInfo;\n this.addDestroyFunc(function () {\n // the gridInfo can be stale if a refresh happens and\n // a new row is created before the old one is destroyed.\n if (rowNode.detailGridInfo !== gridInfo) {\n return;\n }\n masterGridApi.removeDetailGridInfo(rowId); // unregister from api\n rowNode.detailGridInfo = null; // unregister from node\n });\n };\n DetailCellRendererCtrl.prototype.loadRowData = function () {\n var _this = this;\n // in case a refresh happens before the last refresh completes (as we depend on async\n // application logic) we keep track on what the latest call was.\n this.loadRowDataVersion++;\n var versionThisCall = this.loadRowDataVersion;\n var userFunc = this.params.getDetailRowData;\n if (!userFunc) {\n console.warn('AG Grid: could not find getDetailRowData for master / detail, ' +\n 'please set gridOptions.detailCellRendererParams.getDetailRowData');\n return;\n }\n var successCallback = function (rowData) {\n var mostRecentCall = _this.loadRowDataVersion === versionThisCall;\n if (mostRecentCall) {\n _this.comp.setRowData(rowData);\n }\n };\n var funcParams = {\n node: this.params.node,\n // we take data from node, rather than params.data\n // as the data could have been updated with new instance\n data: this.params.node.data,\n successCallback: successCallback,\n context: this.gridOptionsService.context\n };\n userFunc(funcParams);\n };\n DetailCellRendererCtrl.prototype.refresh = function () {\n var GET_GRID_TO_REFRESH = false;\n var GET_GRID_TO_DO_NOTHING = true;\n switch (this.refreshStrategy) {\n // ignore this refresh, make grid think we've refreshed but do nothing\n case 'nothing': return GET_GRID_TO_DO_NOTHING;\n // grid will destroy and recreate the cell\n case 'everything': return GET_GRID_TO_REFRESH;\n }\n // do the refresh here, and tell the grid to do nothing\n this.loadRowData();\n return GET_GRID_TO_DO_NOTHING;\n };\n __decorate$C([\n Autowired('rowPositionUtils')\n ], DetailCellRendererCtrl.prototype, \"rowPositionUtils\", void 0);\n __decorate$C([\n Autowired('focusService')\n ], DetailCellRendererCtrl.prototype, \"focusService\", void 0);\n return DetailCellRendererCtrl;\n}(BeanStub));\n\nvar __extends$E = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$B = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DetailCellRenderer = /** @class */ (function (_super) {\n __extends$E(DetailCellRenderer, _super);\n function DetailCellRenderer() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n DetailCellRenderer.prototype.init = function (params) {\n var _this = this;\n this.params = params;\n this.selectAndSetTemplate();\n var compProxy = {\n addOrRemoveCssClass: function (cssClassName, on) { return _this.addOrRemoveCssClass(cssClassName, on); },\n addOrRemoveDetailGridCssClass: function (cssClassName, on) { return _this.eDetailGrid.classList.toggle(cssClassName, on); },\n setDetailGrid: function (gridOptions) { return _this.setDetailGrid(gridOptions); },\n setRowData: function (rowData) { return _this.setRowData(rowData); },\n getGui: function () { return _this.eDetailGrid; }\n };\n this.ctrl = this.createManagedBean(new DetailCellRendererCtrl());\n this.ctrl.init(compProxy, params);\n };\n DetailCellRenderer.prototype.refresh = function () {\n return this.ctrl && this.ctrl.refresh();\n };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n DetailCellRenderer.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n DetailCellRenderer.prototype.selectAndSetTemplate = function () {\n var _this = this;\n if (this.params.pinned) {\n this.setTemplate('
');\n return;\n }\n var setDefaultTemplate = function () {\n _this.setTemplate(DetailCellRenderer.TEMPLATE);\n };\n if (_.missing(this.params.template)) {\n // use default template\n setDefaultTemplate();\n }\n else {\n // use user provided template\n if (typeof this.params.template === 'string') {\n this.setTemplate(this.params.template);\n }\n else if (typeof this.params.template === 'function') {\n var templateFunc = this.params.template;\n var template = templateFunc(this.params);\n this.setTemplate(template);\n }\n else {\n console.warn('AG Grid: detailCellRendererParams.template should be function or string');\n setDefaultTemplate();\n }\n }\n if (this.eDetailGrid == null) {\n console.warn('AG Grid: reference to eDetailGrid was missing from the details template. ' +\n 'Please add ref=\"eDetailGrid\" to the template.');\n }\n };\n DetailCellRenderer.prototype.setDetailGrid = function (gridOptions) {\n if (!this.eDetailGrid) {\n return;\n }\n // AG-1715\n // this is only needed when suppressReactUi=true, once we remove the old way\n // of doing react, and Master / Details is all native React, then we\n // can remove this code.\n var agGridReact = this.context.getBean('agGridReact');\n var agGridReactCloned = agGridReact ? _.cloneObject(agGridReact) : undefined;\n // when we create detail grid, the detail grid needs frameworkComponentWrapper so that\n // it created child components correctly, ie Angular detail grid can have Angular cell renderer.\n // this is only used by Angular and Vue, as React uses native React AG Grid detail grids\n var frameworkComponentWrapper = this.context.getBean('frameworkComponentWrapper');\n var frameworkOverrides = this.getFrameworkOverrides();\n // tslint:disable-next-line\n new Grid(this.eDetailGrid, gridOptions, {\n frameworkOverrides: frameworkOverrides,\n providedBeanInstances: {\n agGridReact: agGridReactCloned,\n frameworkComponentWrapper: frameworkComponentWrapper\n },\n modules: ModuleRegistry.__getGridRegisteredModules(this.params.api.getGridId())\n });\n this.detailApi = gridOptions.api;\n this.ctrl.registerDetailWithMaster(gridOptions.api, gridOptions.columnApi);\n this.addDestroyFunc(function () {\n if (gridOptions.api) {\n gridOptions.api.destroy();\n }\n });\n };\n DetailCellRenderer.prototype.setRowData = function (rowData) {\n // ensure detail grid api still exists (grid may be destroyed when async call tries to set data)\n this.detailApi && this.detailApi.setRowData(rowData);\n };\n DetailCellRenderer.TEMPLATE = \"
\\n
\\n
\";\n __decorate$B([\n RefSelector('eDetailGrid')\n ], DetailCellRenderer.prototype, \"eDetailGrid\", void 0);\n return DetailCellRenderer;\n}(Component));\n\n// DO NOT UPDATE MANUALLY: Generated from script during build time\nvar VERSION$8 = '30.2.0';\n\nvar MasterDetailModule = {\n version: VERSION$8,\n moduleName: ModuleNames.MasterDetailModule,\n beans: [],\n userComponents: [\n { componentName: 'agDetailCellRenderer', componentClass: DetailCellRenderer }\n ],\n controllers: [\n { controllerName: 'detailCellRenderer', controllerClass: DetailCellRendererCtrl }\n ],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar __extends$D = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$A = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar EnterpriseMenuFactory = /** @class */ (function (_super) {\n __extends$D(EnterpriseMenuFactory, _super);\n function EnterpriseMenuFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n EnterpriseMenuFactory.prototype.hideActiveMenu = function () {\n this.destroyBean(this.activeMenu);\n };\n EnterpriseMenuFactory.prototype.showMenuAfterMouseEvent = function (column, mouseEvent, defaultTab) {\n var _this = this;\n this.showMenu(column, function (menu) {\n var ePopup = menu.getGui();\n _this.popupService.positionPopupUnderMouseEvent({\n type: 'columnMenu',\n column: column,\n mouseEvent: mouseEvent,\n ePopup: ePopup\n });\n if (defaultTab) {\n menu.showTab(defaultTab);\n }\n }, 'columnMenu', defaultTab, undefined, mouseEvent.target);\n };\n EnterpriseMenuFactory.prototype.showMenuAfterButtonClick = function (column, eventSource, containerType, defaultTab, restrictToTabs) {\n var _this = this;\n var multiplier = -1;\n var alignSide = 'left';\n if (this.gridOptionsService.is('enableRtl')) {\n multiplier = 1;\n alignSide = 'right';\n }\n this.showMenu(column, function (menu) {\n var ePopup = menu.getGui();\n _this.popupService.positionPopupByComponent({\n type: containerType,\n column: column,\n eventSource: eventSource,\n ePopup: ePopup,\n alignSide: alignSide,\n nudgeX: 9 * multiplier,\n nudgeY: -23,\n position: 'under',\n keepWithinBounds: true,\n });\n if (defaultTab) {\n menu.showTab(defaultTab);\n }\n }, containerType, defaultTab, restrictToTabs, eventSource);\n };\n EnterpriseMenuFactory.prototype.showMenu = function (column, positionCallback, containerType, defaultTab, restrictToTabs, eventSource) {\n var _this = this;\n var _a = this.getMenuParams(column, restrictToTabs, eventSource), menu = _a.menu, eMenuGui = _a.eMenuGui, currentHeaderPosition = _a.currentHeaderPosition, currentColumnIndex = _a.currentColumnIndex, anchorToElement = _a.anchorToElement;\n var closedFuncs = [];\n closedFuncs.push(this.getClosedCallback(column, menu, currentHeaderPosition, currentColumnIndex, eventSource));\n var translate = this.localeService.getLocaleTextFunc();\n // need to show filter before positioning, as only after filter\n // is visible can we find out what the width of it is\n this.popupService.addPopup({\n modal: true,\n eChild: eMenuGui,\n closeOnEsc: true,\n closedCallback: function (e) {\n closedFuncs.forEach(function (f) { return f(e); });\n },\n afterGuiAttached: function (params) { return menu.afterGuiAttached(Object.assign({}, { container: containerType }, params)); },\n // if defaultTab is not present, positionCallback will be called\n // after `showTabBasedOnPreviousSelection` is called.\n positionCallback: !!defaultTab ? function () { return positionCallback(menu); } : undefined,\n ariaLabel: translate('ariaLabelColumnMenu', 'Column Menu')\n });\n if (!defaultTab) {\n menu.showTabBasedOnPreviousSelection();\n // reposition the menu because the method above could load\n // an element that is bigger than enterpriseMenu header.\n positionCallback(menu);\n }\n // if user starts showing / hiding columns, or otherwise move the underlying column\n // for this menu, we want to stop tracking the menu with the column position. otherwise\n // the menu would move as the user is using the columns tab inside the menu.\n var stopAnchoringPromise = this.popupService.setPopupPositionRelatedToElement(eMenuGui, anchorToElement);\n if (stopAnchoringPromise) {\n this.addStopAnchoring(stopAnchoringPromise, column, closedFuncs);\n }\n menu.addEventListener(EnterpriseMenu.EVENT_TAB_SELECTED, function (event) {\n _this.lastSelectedTab = event.key;\n });\n column.setMenuVisible(true, 'contextMenu');\n this.activeMenu = menu;\n menu.addEventListener(BeanStub.EVENT_DESTROYED, function () {\n if (_this.activeMenu === menu) {\n _this.activeMenu = null;\n }\n });\n };\n EnterpriseMenuFactory.prototype.addStopAnchoring = function (stopAnchoringPromise, column, closedFuncsArr) {\n stopAnchoringPromise.then(function (stopAnchoringFunc) {\n column.addEventListener('leftChanged', stopAnchoringFunc);\n column.addEventListener('visibleChanged', stopAnchoringFunc);\n closedFuncsArr.push(function () {\n column.removeEventListener('leftChanged', stopAnchoringFunc);\n column.removeEventListener('visibleChanged', stopAnchoringFunc);\n });\n });\n };\n EnterpriseMenuFactory.prototype.getClosedCallback = function (column, menu, headerPosition, columnIndex, eventSource) {\n var _this = this;\n return function (e) {\n _this.destroyBean(menu);\n column.setMenuVisible(false, 'contextMenu');\n var isKeyboardEvent = e instanceof KeyboardEvent;\n if (!isKeyboardEvent || !eventSource) {\n return;\n }\n var isColumnStillVisible = _this.columnModel.getAllDisplayedColumns().some(function (col) { return col === column; });\n if (isColumnStillVisible && _.isVisible(eventSource)) {\n var focusableEl = _this.focusService.findTabbableParent(eventSource);\n if (focusableEl) {\n if (column) {\n _this.headerNavigationService.scrollToColumn(column);\n }\n focusableEl.focus();\n }\n }\n // if the focusEl is no longer in the DOM, we try to focus\n // the header that is closest to the previous header position\n else if (headerPosition && columnIndex !== -1) {\n var allColumns = _this.columnModel.getAllDisplayedColumns();\n var columnToFocus = allColumns[columnIndex] || _.last(allColumns);\n if (columnToFocus) {\n _this.focusService.focusHeaderPosition({\n headerPosition: {\n headerRowIndex: headerPosition.headerRowIndex,\n column: columnToFocus\n }\n });\n }\n }\n };\n };\n EnterpriseMenuFactory.prototype.getMenuParams = function (column, restrictToTabs, eventSource) {\n var menu = this.createBean(new EnterpriseMenu(column, this.lastSelectedTab, restrictToTabs));\n return {\n menu: menu,\n eMenuGui: menu.getGui(),\n currentHeaderPosition: this.focusService.getFocusedHeader(),\n currentColumnIndex: this.columnModel.getAllDisplayedColumns().indexOf(column),\n anchorToElement: eventSource || this.ctrlsService.getGridBodyCtrl().getGui()\n };\n };\n EnterpriseMenuFactory.prototype.isMenuEnabled = function (column) {\n return column.getMenuTabs(EnterpriseMenu.TABS_DEFAULT).length > 0;\n };\n __decorate$A([\n Autowired('popupService')\n ], EnterpriseMenuFactory.prototype, \"popupService\", void 0);\n __decorate$A([\n Autowired('focusService')\n ], EnterpriseMenuFactory.prototype, \"focusService\", void 0);\n __decorate$A([\n Autowired('headerNavigationService')\n ], EnterpriseMenuFactory.prototype, \"headerNavigationService\", void 0);\n __decorate$A([\n Autowired('ctrlsService')\n ], EnterpriseMenuFactory.prototype, \"ctrlsService\", void 0);\n __decorate$A([\n Autowired('columnModel')\n ], EnterpriseMenuFactory.prototype, \"columnModel\", void 0);\n EnterpriseMenuFactory = __decorate$A([\n Bean('menuFactory')\n ], EnterpriseMenuFactory);\n return EnterpriseMenuFactory;\n}(BeanStub));\nvar EnterpriseMenu = /** @class */ (function (_super) {\n __extends$D(EnterpriseMenu, _super);\n function EnterpriseMenu(column, initialSelection, restrictTo) {\n var _this = _super.call(this) || this;\n _this.tabFactories = {};\n _this.includeChecks = {};\n _this.column = column;\n _this.initialSelection = initialSelection;\n _this.tabFactories[EnterpriseMenu.TAB_GENERAL] = _this.createMainPanel.bind(_this);\n _this.tabFactories[EnterpriseMenu.TAB_FILTER] = _this.createFilterPanel.bind(_this);\n _this.tabFactories[EnterpriseMenu.TAB_COLUMNS] = _this.createColumnsPanel.bind(_this);\n _this.includeChecks[EnterpriseMenu.TAB_GENERAL] = function () { return true; };\n _this.includeChecks[EnterpriseMenu.TAB_FILTER] = function () { return _this.filterManager.isFilterAllowed(column); };\n _this.includeChecks[EnterpriseMenu.TAB_COLUMNS] = function () { return true; };\n _this.restrictTo = restrictTo;\n return _this;\n }\n EnterpriseMenu.prototype.init = function () {\n var _this = this;\n var tabs = this.getTabsToCreate().map(function (name) { return _this.createTab(name); });\n this.tabbedLayout = new TabbedLayout({\n items: tabs,\n cssClass: 'ag-menu',\n onActiveItemClicked: this.onHidePopup.bind(this),\n onItemClicked: this.onTabItemClicked.bind(this)\n });\n this.createBean(this.tabbedLayout);\n if (this.mainMenuList) {\n this.mainMenuList.setParentComponent(this.tabbedLayout);\n }\n this.addDestroyFunc(function () { return _this.destroyBean(_this.tabbedLayout); });\n };\n EnterpriseMenu.prototype.getTabsToCreate = function () {\n var _this = this;\n if (this.restrictTo) {\n return this.restrictTo;\n }\n return this.column.getMenuTabs(EnterpriseMenu.TABS_DEFAULT)\n .filter(function (tabName) { return _this.isValidMenuTabItem(tabName); })\n .filter(function (tabName) { return _this.isNotSuppressed(tabName); })\n .filter(function (tabName) { return _this.isModuleLoaded(tabName); });\n };\n EnterpriseMenu.prototype.isModuleLoaded = function (menuTabName) {\n if (menuTabName === EnterpriseMenu.TAB_COLUMNS) {\n return ModuleRegistry.__isRegistered(ModuleNames.ColumnsToolPanelModule, this.context.getGridId());\n }\n return true;\n };\n EnterpriseMenu.prototype.isValidMenuTabItem = function (menuTabName) {\n var isValid = true;\n var itemsToConsider = EnterpriseMenu.TABS_DEFAULT;\n if (this.restrictTo != null) {\n isValid = this.restrictTo.indexOf(menuTabName) > -1;\n itemsToConsider = this.restrictTo;\n }\n isValid = isValid && EnterpriseMenu.TABS_DEFAULT.indexOf(menuTabName) > -1;\n if (!isValid) {\n console.warn(\"AG Grid: Trying to render an invalid menu item '\" + menuTabName + \"'. Check that your 'menuTabs' contains one of [\" + itemsToConsider + \"]\");\n }\n return isValid;\n };\n EnterpriseMenu.prototype.isNotSuppressed = function (menuTabName) {\n return this.includeChecks[menuTabName]();\n };\n EnterpriseMenu.prototype.createTab = function (name) {\n return this.tabFactories[name]();\n };\n EnterpriseMenu.prototype.showTabBasedOnPreviousSelection = function () {\n // show the tab the user was on last time they had a menu open\n this.showTab(this.initialSelection);\n };\n EnterpriseMenu.prototype.showTab = function (toShow) {\n if (this.tabItemColumns && toShow === EnterpriseMenu.TAB_COLUMNS) {\n this.tabbedLayout.showItem(this.tabItemColumns);\n }\n else if (this.tabItemFilter && toShow === EnterpriseMenu.TAB_FILTER) {\n this.tabbedLayout.showItem(this.tabItemFilter);\n }\n else if (this.tabItemGeneral && toShow === EnterpriseMenu.TAB_GENERAL) {\n this.tabbedLayout.showItem(this.tabItemGeneral);\n }\n else {\n this.tabbedLayout.showFirstItem();\n }\n };\n EnterpriseMenu.prototype.onTabItemClicked = function (event) {\n var key = null;\n switch (event.item) {\n case this.tabItemColumns:\n key = EnterpriseMenu.TAB_COLUMNS;\n break;\n case this.tabItemFilter:\n key = EnterpriseMenu.TAB_FILTER;\n break;\n case this.tabItemGeneral:\n key = EnterpriseMenu.TAB_GENERAL;\n break;\n }\n if (key) {\n this.activateTab(key);\n }\n };\n EnterpriseMenu.prototype.activateTab = function (tab) {\n var ev = {\n type: EnterpriseMenu.EVENT_TAB_SELECTED,\n key: tab\n };\n this.dispatchEvent(ev);\n };\n EnterpriseMenu.prototype.getMenuItems = function () {\n var defaultMenuOptions = this.getDefaultMenuOptions();\n var result;\n var userFunc = this.gridOptionsService.getCallback('getMainMenuItems');\n if (userFunc) {\n result = userFunc({\n column: this.column,\n defaultItems: defaultMenuOptions\n });\n }\n else {\n result = defaultMenuOptions;\n }\n // GUI looks weird when two separators are side by side. this can happen accidentally\n // if we remove items from the menu then two separators can edit up adjacent.\n _.removeRepeatsFromArray(result, EnterpriseMenu.MENU_ITEM_SEPARATOR);\n return result;\n };\n EnterpriseMenu.prototype.getDefaultMenuOptions = function () {\n var result = [];\n var allowPinning = !this.column.getColDef().lockPinned;\n var rowGroupCount = this.columnModel.getRowGroupColumns().length;\n var doingGrouping = rowGroupCount > 0;\n var groupedByThisColumn = this.columnModel.getRowGroupColumns().indexOf(this.column) >= 0;\n var allowValue = this.column.isAllowValue();\n var allowRowGroup = this.column.isAllowRowGroup();\n var isPrimary = this.column.isPrimary();\n var pivotModeOn = this.columnModel.isPivotMode();\n var isInMemoryRowModel = this.rowModel.getType() === 'clientSide';\n var usingTreeData = this.gridOptionsService.is('treeData');\n var allowValueAgg = \n // if primary, then only allow aggValue if grouping and it's a value columns\n (isPrimary && doingGrouping && allowValue)\n // secondary columns can always have aggValue, as it means it's a pivot value column\n || !isPrimary;\n if (allowPinning) {\n result.push('pinSubMenu');\n }\n if (allowValueAgg) {\n result.push('valueAggSubMenu');\n }\n if (allowPinning || allowValueAgg) {\n result.push(EnterpriseMenu.MENU_ITEM_SEPARATOR);\n }\n result.push('autoSizeThis');\n result.push('autoSizeAll');\n result.push(EnterpriseMenu.MENU_ITEM_SEPARATOR);\n if (!!this.column.getColDef().showRowGroup) {\n result.push('rowUnGroup');\n }\n if (allowRowGroup && this.column.isPrimary()) {\n if (groupedByThisColumn) {\n result.push('rowUnGroup');\n }\n else {\n result.push('rowGroup');\n }\n }\n result.push(EnterpriseMenu.MENU_ITEM_SEPARATOR);\n result.push('resetColumns');\n // only add grouping expand/collapse if grouping in the InMemoryRowModel\n // if pivoting, we only have expandable groups if grouping by 2 or more columns\n // as the lowest level group is not expandable while pivoting.\n // if not pivoting, then any active row group can be expanded.\n var allowExpandAndContract = isInMemoryRowModel && (usingTreeData || rowGroupCount > (pivotModeOn ? 1 : 0));\n if (allowExpandAndContract) {\n result.push('expandAll');\n result.push('contractAll');\n }\n return result;\n };\n EnterpriseMenu.prototype.createMainPanel = function () {\n this.mainMenuList = this.createManagedBean(new AgMenuList());\n var menuItems = this.getMenuItems();\n var menuItemsMapped = this.menuItemMapper.mapWithStockItems(menuItems, this.column);\n this.mainMenuList.addMenuItems(menuItemsMapped);\n this.mainMenuList.addEventListener(AgMenuItemComponent.EVENT_MENU_ITEM_SELECTED, this.onHidePopup.bind(this));\n this.tabItemGeneral = {\n title: _.createIconNoSpan('menu', this.gridOptionsService, this.column),\n titleLabel: EnterpriseMenu.TAB_GENERAL.replace('MenuTab', ''),\n bodyPromise: AgPromise.resolve(this.mainMenuList.getGui()),\n name: EnterpriseMenu.TAB_GENERAL\n };\n return this.tabItemGeneral;\n };\n EnterpriseMenu.prototype.onHidePopup = function (event) {\n var keyboardEvent;\n if (event && event.event && event.event instanceof KeyboardEvent) {\n keyboardEvent = event.event;\n }\n this.hidePopupFunc(keyboardEvent && { keyboardEvent: keyboardEvent });\n // this method only gets called when the menu was closed by selection an option\n // in this case we highlight the cell that was previously highlighted\n var focusedCell = this.focusService.getFocusedCell();\n var eDocument = this.gridOptionsService.getDocument();\n if (eDocument.activeElement === eDocument.body && focusedCell) {\n var rowIndex = focusedCell.rowIndex, rowPinned = focusedCell.rowPinned, column = focusedCell.column;\n this.focusService.setFocusedCell({ rowIndex: rowIndex, column: column, rowPinned: rowPinned, forceBrowserFocus: true, preventScrollOnBrowserFocus: true });\n }\n };\n EnterpriseMenu.prototype.createFilterPanel = function () {\n var filterWrapper = this.filterManager.getOrCreateFilterWrapper(this.column, 'COLUMN_MENU');\n if (!filterWrapper) {\n throw new Error('AG Grid - Unable to instantiate filter');\n }\n var afterFilterAttachedCallback = function (params) {\n if (!(filterWrapper === null || filterWrapper === void 0 ? void 0 : filterWrapper.filterPromise)) {\n return;\n }\n // slightly odd block this - this promise will always have been resolved by the time it gets here, so won't be\n // async (_unless_ in react or similar, but if so why not encountered before now?).\n // I'd suggest a future improvement would be to remove/replace this promise as this block just wont work if it is\n // async and is confusing if you don't have this context\n filterWrapper.filterPromise.then(function (filter) {\n if (filter && filter.afterGuiAttached) {\n filter.afterGuiAttached(params);\n }\n });\n };\n // see comment above\n var afterDetachedCallback = function () { var _a; return (_a = filterWrapper === null || filterWrapper === void 0 ? void 0 : filterWrapper.filterPromise) === null || _a === void 0 ? void 0 : _a.then(function (filter) { var _a; return (_a = filter === null || filter === void 0 ? void 0 : filter.afterGuiDetached) === null || _a === void 0 ? void 0 : _a.call(filter); }); };\n this.tabItemFilter = {\n title: _.createIconNoSpan('filter', this.gridOptionsService, this.column),\n titleLabel: EnterpriseMenu.TAB_FILTER.replace('MenuTab', ''),\n bodyPromise: filterWrapper === null || filterWrapper === void 0 ? void 0 : filterWrapper.guiPromise,\n afterAttachedCallback: afterFilterAttachedCallback,\n afterDetachedCallback: afterDetachedCallback,\n name: EnterpriseMenu.TAB_FILTER\n };\n return this.tabItemFilter;\n };\n EnterpriseMenu.prototype.createColumnsPanel = function () {\n var eWrapperDiv = document.createElement('div');\n eWrapperDiv.classList.add('ag-menu-column-select-wrapper');\n var columnSelectPanel = this.createManagedBean(new PrimaryColsPanel());\n var columnsMenuParams = this.column.getColDef().columnsMenuParams;\n if (!columnsMenuParams) {\n columnsMenuParams = {};\n }\n var contractColumnSelection = columnsMenuParams.contractColumnSelection, suppressColumnExpandAll = columnsMenuParams.suppressColumnExpandAll, suppressColumnFilter = columnsMenuParams.suppressColumnFilter, suppressColumnSelectAll = columnsMenuParams.suppressColumnSelectAll, suppressSyncLayoutWithGrid = columnsMenuParams.suppressSyncLayoutWithGrid, columnLayout = columnsMenuParams.columnLayout;\n columnSelectPanel.init(false, {\n suppressColumnMove: false,\n suppressValues: false,\n suppressPivots: false,\n suppressRowGroups: false,\n suppressPivotMode: false,\n contractColumnSelection: !!contractColumnSelection,\n suppressColumnExpandAll: !!suppressColumnExpandAll,\n suppressColumnFilter: !!suppressColumnFilter,\n suppressColumnSelectAll: !!suppressColumnSelectAll,\n suppressSyncLayoutWithGrid: !!columnLayout || !!suppressSyncLayoutWithGrid,\n api: this.gridApi,\n columnApi: this.columnApi,\n context: this.gridOptionsService.context\n }, 'columnMenu');\n if (columnLayout) {\n columnSelectPanel.setColumnLayout(columnLayout);\n }\n var columnSelectPanelGui = columnSelectPanel.getGui();\n columnSelectPanelGui.classList.add('ag-menu-column-select');\n eWrapperDiv.appendChild(columnSelectPanelGui);\n this.tabItemColumns = {\n title: _.createIconNoSpan('columns', this.gridOptionsService, this.column),\n titleLabel: EnterpriseMenu.TAB_COLUMNS.replace('MenuTab', ''),\n bodyPromise: AgPromise.resolve(eWrapperDiv),\n name: EnterpriseMenu.TAB_COLUMNS\n };\n return this.tabItemColumns;\n };\n EnterpriseMenu.prototype.afterGuiAttached = function (params) {\n var container = params.container, hidePopup = params.hidePopup;\n this.tabbedLayout.setAfterAttachedParams({ container: container, hidePopup: hidePopup });\n if (hidePopup) {\n this.hidePopupFunc = hidePopup;\n this.addDestroyFunc(hidePopup);\n }\n };\n EnterpriseMenu.prototype.getGui = function () {\n return this.tabbedLayout.getGui();\n };\n EnterpriseMenu.EVENT_TAB_SELECTED = 'tabSelected';\n EnterpriseMenu.TAB_FILTER = 'filterMenuTab';\n EnterpriseMenu.TAB_GENERAL = 'generalMenuTab';\n EnterpriseMenu.TAB_COLUMNS = 'columnsMenuTab';\n EnterpriseMenu.TABS_DEFAULT = [EnterpriseMenu.TAB_GENERAL, EnterpriseMenu.TAB_FILTER, EnterpriseMenu.TAB_COLUMNS];\n EnterpriseMenu.MENU_ITEM_SEPARATOR = 'separator';\n __decorate$A([\n Autowired('columnModel')\n ], EnterpriseMenu.prototype, \"columnModel\", void 0);\n __decorate$A([\n Autowired('filterManager')\n ], EnterpriseMenu.prototype, \"filterManager\", void 0);\n __decorate$A([\n Autowired('gridApi')\n ], EnterpriseMenu.prototype, \"gridApi\", void 0);\n __decorate$A([\n Autowired('columnApi')\n ], EnterpriseMenu.prototype, \"columnApi\", void 0);\n __decorate$A([\n Autowired('menuItemMapper')\n ], EnterpriseMenu.prototype, \"menuItemMapper\", void 0);\n __decorate$A([\n Autowired('rowModel')\n ], EnterpriseMenu.prototype, \"rowModel\", void 0);\n __decorate$A([\n Autowired('focusService')\n ], EnterpriseMenu.prototype, \"focusService\", void 0);\n __decorate$A([\n PostConstruct\n ], EnterpriseMenu.prototype, \"init\", null);\n return EnterpriseMenu;\n}(BeanStub));\n\nvar __extends$C = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$7 = (undefined && undefined.__assign) || function () {\n __assign$7 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$7.apply(this, arguments);\n};\nvar __decorate$z = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar CSS_MENU = 'ag-menu';\nvar CSS_CONTEXT_MENU_OPEN = 'ag-context-menu-open';\nvar ContextMenuFactory = /** @class */ (function (_super) {\n __extends$C(ContextMenuFactory, _super);\n function ContextMenuFactory() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ContextMenuFactory.prototype.hideActiveMenu = function () {\n this.destroyBean(this.activeMenu);\n };\n ContextMenuFactory.prototype.getMenuItems = function (node, column, value) {\n var defaultMenuOptions = [];\n if (_.exists(node) && ModuleRegistry.__isRegistered(ModuleNames.ClipboardModule, this.context.getGridId())) {\n if (column) {\n // only makes sense if column exists, could have originated from a row\n if (!this.gridOptionsService.is('suppressCutToClipboard')) {\n defaultMenuOptions.push('cut');\n }\n defaultMenuOptions.push('copy', 'copyWithHeaders', 'copyWithGroupHeaders', 'paste', 'separator');\n }\n }\n if (this.gridOptionsService.is('enableCharts') && ModuleRegistry.__isRegistered(ModuleNames.GridChartsModule, this.context.getGridId())) {\n if (this.columnModel.isPivotMode()) {\n defaultMenuOptions.push('pivotChart');\n }\n if (this.rangeService && !this.rangeService.isEmpty()) {\n defaultMenuOptions.push('chartRange');\n }\n }\n if (_.exists(node)) {\n // if user clicks a cell\n var csvModuleMissing = !ModuleRegistry.__isRegistered(ModuleNames.CsvExportModule, this.context.getGridId());\n var excelModuleMissing = !ModuleRegistry.__isRegistered(ModuleNames.ExcelExportModule, this.context.getGridId());\n var suppressExcel = this.gridOptionsService.is('suppressExcelExport') || excelModuleMissing;\n var suppressCsv = this.gridOptionsService.is('suppressCsvExport') || csvModuleMissing;\n var onIPad = _.isIOSUserAgent();\n var anyExport = !onIPad && (!suppressExcel || !suppressCsv);\n if (anyExport) {\n defaultMenuOptions.push('export');\n }\n }\n var userFunc = this.gridOptionsService.getCallback('getContextMenuItems');\n if (userFunc) {\n var params = {\n node: node,\n column: column,\n value: value,\n defaultItems: defaultMenuOptions.length ? defaultMenuOptions : undefined,\n };\n return userFunc(params);\n }\n return defaultMenuOptions;\n };\n ContextMenuFactory.prototype.onContextMenu = function (mouseEvent, touchEvent, rowNode, column, value, anchorToElement) {\n // to allow us to debug in chrome, we ignore the event if ctrl is pressed.\n // not everyone wants this, so first 'if' below allows to turn this hack off.\n if (!this.gridOptionsService.is('allowContextMenuWithControlKey')) {\n // then do the check\n if (mouseEvent && (mouseEvent.ctrlKey || mouseEvent.metaKey)) {\n return;\n }\n }\n // need to do this regardless of context menu showing or not, so doing\n // before the isSuppressContextMenu() check\n if (mouseEvent) {\n this.blockMiddleClickScrollsIfNeeded(mouseEvent);\n }\n if (this.gridOptionsService.is('suppressContextMenu')) {\n return;\n }\n var eventOrTouch = mouseEvent ? mouseEvent : touchEvent.touches[0];\n if (this.showMenu(rowNode, column, value, eventOrTouch, anchorToElement)) {\n var event_1 = mouseEvent ? mouseEvent : touchEvent;\n event_1.preventDefault();\n }\n };\n ContextMenuFactory.prototype.blockMiddleClickScrollsIfNeeded = function (mouseEvent) {\n // if we don't do this, then middle click will never result in a 'click' event, as 'mousedown'\n // will be consumed by the browser to mean 'scroll' (as you can scroll with the middle mouse\n // button in the browser). so this property allows the user to receive middle button clicks if\n // they want.\n var gridOptionsService = this.gridOptionsService;\n var which = mouseEvent.which;\n if (gridOptionsService.is('suppressMiddleClickScrolls') && which === 2) {\n mouseEvent.preventDefault();\n }\n };\n ContextMenuFactory.prototype.showMenu = function (node, column, value, mouseEvent, anchorToElement) {\n var _this = this;\n var menuItems = this.getMenuItems(node, column, value);\n var eGridBodyGui = this.ctrlsService.getGridBodyCtrl().getGui();\n if (menuItems === undefined || _.missingOrEmpty(menuItems)) {\n return false;\n }\n var menu = new ContextMenu(menuItems);\n this.createBean(menu);\n var eMenuGui = menu.getGui();\n var positionParams = {\n column: column,\n rowNode: node,\n type: 'contextMenu',\n mouseEvent: mouseEvent,\n ePopup: eMenuGui,\n // move one pixel away so that accidentally double clicking\n // won't show the browser's contextmenu\n nudgeY: 1\n };\n var translate = this.localeService.getLocaleTextFunc();\n var addPopupRes = this.popupService.addPopup({\n modal: true,\n eChild: eMenuGui,\n closeOnEsc: true,\n closedCallback: function () {\n eGridBodyGui.classList.remove(CSS_CONTEXT_MENU_OPEN);\n _this.destroyBean(menu);\n },\n click: mouseEvent,\n positionCallback: function () {\n var isRtl = _this.gridOptionsService.is('enableRtl');\n _this.popupService.positionPopupUnderMouseEvent(__assign$7(__assign$7({}, positionParams), { nudgeX: isRtl ? (eMenuGui.offsetWidth + 1) * -1 : 1 }));\n },\n // so when browser is scrolled down, or grid is scrolled, context menu stays with cell\n anchorToElement: anchorToElement,\n ariaLabel: translate('ariaLabelContextMenu', 'Context Menu')\n });\n if (addPopupRes) {\n eGridBodyGui.classList.add(CSS_CONTEXT_MENU_OPEN);\n menu.afterGuiAttached({ container: 'contextMenu', hidePopup: addPopupRes.hideFunc });\n }\n // there should never be an active menu at this point, however it was found\n // that you could right click a second time just 1 or 2 pixels from the first\n // click, and another menu would pop up. so somehow the logic for closing the\n // first menu (clicking outside should close it) was glitchy somehow. an easy\n // way to avoid this is just remove the old context menu here if it exists.\n if (this.activeMenu) {\n this.hideActiveMenu();\n }\n this.activeMenu = menu;\n menu.addEventListener(BeanStub.EVENT_DESTROYED, function () {\n if (_this.activeMenu === menu) {\n _this.activeMenu = null;\n }\n });\n // hide the popup if something gets selected\n if (addPopupRes) {\n menu.addEventListener(AgMenuItemComponent.EVENT_MENU_ITEM_SELECTED, addPopupRes.hideFunc);\n }\n return true;\n };\n __decorate$z([\n Autowired('popupService')\n ], ContextMenuFactory.prototype, \"popupService\", void 0);\n __decorate$z([\n Optional('rangeService')\n ], ContextMenuFactory.prototype, \"rangeService\", void 0);\n __decorate$z([\n Autowired('ctrlsService')\n ], ContextMenuFactory.prototype, \"ctrlsService\", void 0);\n __decorate$z([\n Autowired('columnModel')\n ], ContextMenuFactory.prototype, \"columnModel\", void 0);\n ContextMenuFactory = __decorate$z([\n Bean('contextMenuFactory')\n ], ContextMenuFactory);\n return ContextMenuFactory;\n}(BeanStub));\nvar ContextMenu = /** @class */ (function (_super) {\n __extends$C(ContextMenu, _super);\n function ContextMenu(menuItems) {\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.menuList = null;\n _this.focusedCell = null;\n _this.menuItems = menuItems;\n return _this;\n }\n ContextMenu.prototype.addMenuItems = function () {\n var _this = this;\n var menuList = this.createManagedBean(new AgMenuList());\n var menuItemsMapped = this.menuItemMapper.mapWithStockItems(this.menuItems, null);\n menuList.addMenuItems(menuItemsMapped);\n this.appendChild(menuList);\n this.menuList = menuList;\n menuList.addEventListener(AgMenuItemComponent.EVENT_MENU_ITEM_SELECTED, function (e) { return _this.dispatchEvent(e); });\n };\n ContextMenu.prototype.afterGuiAttached = function (params) {\n if (params.hidePopup) {\n this.addDestroyFunc(params.hidePopup);\n }\n this.focusedCell = this.focusService.getFocusedCell();\n if (this.menuList) {\n this.focusService.focusInto(this.menuList.getGui());\n }\n };\n ContextMenu.prototype.restoreFocusedCell = function () {\n var currentFocusedCell = this.focusService.getFocusedCell();\n if (currentFocusedCell && this.focusedCell && this.cellPositionUtils.equals(currentFocusedCell, this.focusedCell)) {\n var _a = this.focusedCell, rowIndex = _a.rowIndex, rowPinned = _a.rowPinned, column = _a.column;\n var doc = this.gridOptionsService.getDocument();\n if (doc.activeElement === doc.body) {\n this.focusService.setFocusedCell({ rowIndex: rowIndex, column: column, rowPinned: rowPinned, forceBrowserFocus: true });\n }\n }\n };\n ContextMenu.prototype.destroy = function () {\n this.restoreFocusedCell();\n _super.prototype.destroy.call(this);\n };\n __decorate$z([\n Autowired('menuItemMapper')\n ], ContextMenu.prototype, \"menuItemMapper\", void 0);\n __decorate$z([\n Autowired('focusService')\n ], ContextMenu.prototype, \"focusService\", void 0);\n __decorate$z([\n Autowired('cellPositionUtils')\n ], ContextMenu.prototype, \"cellPositionUtils\", void 0);\n __decorate$z([\n PostConstruct\n ], ContextMenu.prototype, \"addMenuItems\", null);\n return ContextMenu;\n}(Component));\n\nvar __extends$B = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$6 = (undefined && undefined.__assign) || function () {\n __assign$6 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$6.apply(this, arguments);\n};\nvar __decorate$y = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MenuItemMapper = /** @class */ (function (_super) {\n __extends$B(MenuItemMapper, _super);\n function MenuItemMapper() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n MenuItemMapper.prototype.mapWithStockItems = function (originalList, column) {\n var _this = this;\n if (!originalList) {\n return [];\n }\n var resultList = [];\n originalList.forEach(function (menuItemOrString) {\n var result;\n if (typeof menuItemOrString === 'string') {\n result = _this.getStockMenuItem(menuItemOrString, column);\n }\n else {\n // Spread to prevent leaking mapped subMenus back into the original menuItem\n result = __assign$6({}, menuItemOrString);\n }\n // if no mapping, can happen when module is not loaded but user tries to use module anyway\n if (!result) {\n return;\n }\n var resultDef = result;\n var subMenu = resultDef.subMenu;\n if (subMenu && subMenu instanceof Array) {\n resultDef.subMenu = _this.mapWithStockItems(subMenu, column);\n }\n if (result != null) {\n resultList.push(result);\n }\n });\n return resultList;\n };\n MenuItemMapper.prototype.getStockMenuItem = function (key, column) {\n var _this = this;\n var _a, _b;\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n var skipHeaderOnAutoSize = this.gridOptionsService.is('skipHeaderOnAutoSize');\n switch (key) {\n case 'pinSubMenu':\n return {\n name: localeTextFunc('pinColumn', 'Pin Column'),\n icon: _.createIconNoSpan('menuPin', this.gridOptionsService, null),\n subMenu: ['clearPinned', 'pinLeft', 'pinRight']\n };\n case 'pinLeft':\n return {\n name: localeTextFunc('pinLeft', 'Pin Left'),\n action: function () { return _this.columnModel.setColumnPinned(column, 'left', \"contextMenu\"); },\n checked: !!column && column.isPinnedLeft()\n };\n case 'pinRight':\n return {\n name: localeTextFunc('pinRight', 'Pin Right'),\n action: function () { return _this.columnModel.setColumnPinned(column, 'right', \"contextMenu\"); },\n checked: !!column && column.isPinnedRight()\n };\n case 'clearPinned':\n return {\n name: localeTextFunc('noPin', 'No Pin'),\n action: function () { return _this.columnModel.setColumnPinned(column, null, \"contextMenu\"); },\n checked: !!column && !column.isPinned()\n };\n case 'valueAggSubMenu':\n if (ModuleRegistry.__assertRegistered(ModuleNames.RowGroupingModule, 'Aggregation from Menu', this.context.getGridId())) {\n if (!(column === null || column === void 0 ? void 0 : column.isPrimary()) && !(column === null || column === void 0 ? void 0 : column.getColDef().pivotValueColumn)) {\n return null;\n }\n return {\n name: localeTextFunc('valueAggregation', 'Value Aggregation'),\n icon: _.createIconNoSpan('menuValue', this.gridOptionsService, null),\n subMenu: this.createAggregationSubMenu(column)\n };\n }\n else {\n return null;\n }\n case 'autoSizeThis':\n return {\n name: localeTextFunc('autosizeThiscolumn', 'Autosize This Column'),\n action: function () { return _this.columnModel.autoSizeColumn(column, skipHeaderOnAutoSize, \"contextMenu\"); }\n };\n case 'autoSizeAll':\n return {\n name: localeTextFunc('autosizeAllColumns', 'Autosize All Columns'),\n action: function () { return _this.columnModel.autoSizeAllColumns(skipHeaderOnAutoSize, \"contextMenu\"); }\n };\n case 'rowGroup':\n return {\n name: localeTextFunc('groupBy', 'Group by') + ' ' + _.escapeString(this.columnModel.getDisplayNameForColumn(column, 'header')),\n disabled: (column === null || column === void 0 ? void 0 : column.isRowGroupActive()) || !(column === null || column === void 0 ? void 0 : column.getColDef().enableRowGroup),\n action: function () { return _this.columnModel.addRowGroupColumn(column, \"contextMenu\"); },\n icon: _.createIconNoSpan('menuAddRowGroup', this.gridOptionsService, null)\n };\n case 'rowUnGroup':\n var icon = _.createIconNoSpan('menuRemoveRowGroup', this.gridOptionsService, null);\n var showRowGroup_1 = column === null || column === void 0 ? void 0 : column.getColDef().showRowGroup;\n // Handle single auto group column\n if (showRowGroup_1 === true) {\n return {\n name: localeTextFunc('ungroupAll', 'Un-Group All'),\n disabled: !(column === null || column === void 0 ? void 0 : column.getColDef().showRowGroup),\n action: function () { return _this.columnModel.setRowGroupColumns([], \"contextMenu\"); },\n icon: icon\n };\n }\n // Handle multiple auto group columns\n if (typeof showRowGroup_1 === 'string') {\n var underlyingColumn = (_a = this.columnModel.getSourceColumnsForGroupColumn(column)) === null || _a === void 0 ? void 0 : _a[0];\n var ungroupByName = (underlyingColumn != null) ? _.escapeString(this.columnModel.getDisplayNameForColumn(underlyingColumn, 'header')) : showRowGroup_1;\n return {\n name: localeTextFunc('ungroupBy', 'Un-Group by') + ' ' + ungroupByName,\n disabled: !(column === null || column === void 0 ? void 0 : column.getColDef().showRowGroup),\n action: function () { return _this.columnModel.removeRowGroupColumn(showRowGroup_1, \"contextMenu\"); },\n icon: icon\n };\n }\n // Handle primary column\n return {\n name: localeTextFunc('ungroupBy', 'Un-Group by') + ' ' + _.escapeString(this.columnModel.getDisplayNameForColumn(column, 'header')),\n disabled: !(column === null || column === void 0 ? void 0 : column.isRowGroupActive()) || !(column === null || column === void 0 ? void 0 : column.getColDef().enableRowGroup),\n action: function () { return _this.columnModel.removeRowGroupColumn(column, \"contextMenu\"); },\n icon: icon\n };\n case 'resetColumns':\n return {\n name: localeTextFunc('resetColumns', 'Reset Columns'),\n action: function () { return _this.columnModel.resetColumnState(\"contextMenu\"); }\n };\n case 'expandAll':\n return {\n name: localeTextFunc('expandAll', 'Expand All Row Groups'),\n action: function () { return _this.gridApi.expandAll(); }\n };\n case 'contractAll':\n return {\n name: localeTextFunc('collapseAll', 'Collapse All Row Groups'),\n action: function () { return _this.gridApi.collapseAll(); }\n };\n case 'copy':\n if (ModuleRegistry.__assertRegistered(ModuleNames.ClipboardModule, 'Copy from Menu', this.context.getGridId())) {\n return {\n name: localeTextFunc('copy', 'Copy'),\n shortcut: localeTextFunc('ctrlC', 'Ctrl+C'),\n icon: _.createIconNoSpan('clipboardCopy', this.gridOptionsService, null),\n action: function () { return _this.clipboardService.copyToClipboard(); }\n };\n }\n else {\n return null;\n }\n case 'copyWithHeaders':\n if (ModuleRegistry.__assertRegistered(ModuleNames.ClipboardModule, 'Copy with Headers from Menu', this.context.getGridId())) {\n return {\n name: localeTextFunc('copyWithHeaders', 'Copy with Headers'),\n // shortcut: localeTextFunc('ctrlC','Ctrl+C'),\n icon: _.createIconNoSpan('clipboardCopy', this.gridOptionsService, null),\n action: function () { return _this.clipboardService.copyToClipboard({ includeHeaders: true }); }\n };\n }\n else {\n return null;\n }\n case 'copyWithGroupHeaders':\n if (ModuleRegistry.__assertRegistered(ModuleNames.ClipboardModule, 'Copy with Group Headers from Menu', this.context.getGridId())) {\n return {\n name: localeTextFunc('copyWithGroupHeaders', 'Copy with Group Headers'),\n // shortcut: localeTextFunc('ctrlC','Ctrl+C'),\n icon: _.createIconNoSpan('clipboardCopy', this.gridOptionsService, null),\n action: function () { return _this.clipboardService.copyToClipboard({ includeHeaders: true, includeGroupHeaders: true }); }\n };\n }\n else {\n return null;\n }\n case 'cut':\n if (ModuleRegistry.__assertRegistered(ModuleNames.ClipboardModule, 'Cut from Menu', this.context.getGridId())) {\n var focusedCell = this.focusService.getFocusedCell();\n var rowNode = focusedCell ? this.rowPositionUtils.getRowNode(focusedCell) : null;\n var isEditable = rowNode ? focusedCell === null || focusedCell === void 0 ? void 0 : focusedCell.column.isCellEditable(rowNode) : false;\n return {\n name: localeTextFunc('cut', 'Cut'),\n shortcut: localeTextFunc('ctrlX', 'Ctrl+X'),\n icon: _.createIconNoSpan('clipboardCut', this.gridOptionsService, null),\n disabled: !isEditable || this.gridOptionsService.is('suppressCutToClipboard'),\n action: function () { return _this.clipboardService.cutToClipboard(undefined, 'contextMenu'); }\n };\n }\n else {\n return null;\n }\n case 'paste':\n if (ModuleRegistry.__assertRegistered(ModuleNames.ClipboardModule, 'Paste from Clipboard', this.context.getGridId())) {\n return {\n name: localeTextFunc('paste', 'Paste'),\n shortcut: localeTextFunc('ctrlV', 'Ctrl+V'),\n disabled: true,\n icon: _.createIconNoSpan('clipboardPaste', this.gridOptionsService, null),\n action: function () { return _this.clipboardService.pasteFromClipboard(); }\n };\n }\n else {\n return null;\n }\n case 'export':\n var exportSubMenuItems = [];\n var csvModuleLoaded = ModuleRegistry.__isRegistered(ModuleNames.CsvExportModule, this.context.getGridId());\n var excelModuleLoaded = ModuleRegistry.__isRegistered(ModuleNames.ExcelExportModule, this.context.getGridId());\n if (!this.gridOptionsService.is('suppressCsvExport') && csvModuleLoaded) {\n exportSubMenuItems.push('csvExport');\n }\n if (!this.gridOptionsService.is('suppressExcelExport') && excelModuleLoaded) {\n exportSubMenuItems.push('excelExport');\n }\n return {\n name: localeTextFunc('export', 'Export'),\n subMenu: exportSubMenuItems,\n icon: _.createIconNoSpan('save', this.gridOptionsService, null),\n };\n case 'csvExport':\n return {\n name: localeTextFunc('csvExport', 'CSV Export'),\n icon: _.createIconNoSpan('csvExport', this.gridOptionsService, null),\n action: function () { return _this.gridApi.exportDataAsCsv({}); }\n };\n case 'excelExport':\n return {\n name: localeTextFunc('excelExport', 'Excel Export'),\n icon: _.createIconNoSpan('excelExport', this.gridOptionsService, null),\n action: function () { return _this.gridApi.exportDataAsExcel(); }\n };\n case 'separator':\n return 'separator';\n case 'pivotChart':\n case 'chartRange':\n return (_b = this.chartMenuItemMapper.getChartItems(key)) !== null && _b !== void 0 ? _b : null;\n default: {\n console.warn(\"AG Grid: unknown menu item type \" + key);\n return null;\n }\n }\n };\n MenuItemMapper.prototype.createAggregationSubMenu = function (column) {\n var _this = this;\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n var columnToUse;\n if (column.isPrimary()) {\n columnToUse = column;\n }\n else {\n var pivotValueColumn = column.getColDef().pivotValueColumn;\n columnToUse = _.exists(pivotValueColumn) ? pivotValueColumn : undefined;\n }\n var result = [];\n if (columnToUse) {\n var columnIsAlreadyAggValue_1 = columnToUse.isValueActive();\n var funcNames = this.aggFuncService.getFuncNames(columnToUse);\n result.push({\n name: localeTextFunc('noAggregation', 'None'),\n action: function () {\n _this.columnModel.removeValueColumn(columnToUse, \"contextMenu\");\n _this.columnModel.setColumnAggFunc(columnToUse, undefined, \"contextMenu\");\n },\n checked: !columnIsAlreadyAggValue_1\n });\n funcNames.forEach(function (funcName) {\n result.push({\n name: localeTextFunc(funcName, _.capitalise(funcName)),\n action: function () {\n _this.columnModel.setColumnAggFunc(columnToUse, funcName, \"contextMenu\");\n _this.columnModel.addValueColumn(columnToUse, \"contextMenu\");\n },\n checked: columnIsAlreadyAggValue_1 && columnToUse.getAggFunc() === funcName\n });\n });\n }\n return result;\n };\n __decorate$y([\n Autowired('columnModel')\n ], MenuItemMapper.prototype, \"columnModel\", void 0);\n __decorate$y([\n Autowired('gridApi')\n ], MenuItemMapper.prototype, \"gridApi\", void 0);\n __decorate$y([\n Optional('clipboardService')\n ], MenuItemMapper.prototype, \"clipboardService\", void 0);\n __decorate$y([\n Optional('aggFuncService')\n ], MenuItemMapper.prototype, \"aggFuncService\", void 0);\n __decorate$y([\n Autowired('focusService')\n ], MenuItemMapper.prototype, \"focusService\", void 0);\n __decorate$y([\n Autowired('rowPositionUtils')\n ], MenuItemMapper.prototype, \"rowPositionUtils\", void 0);\n __decorate$y([\n Autowired('chartMenuItemMapper')\n ], MenuItemMapper.prototype, \"chartMenuItemMapper\", void 0);\n MenuItemMapper = __decorate$y([\n Bean('menuItemMapper')\n ], MenuItemMapper);\n return MenuItemMapper;\n}(BeanStub));\n\n// DO NOT UPDATE MANUALLY: Generated from script during build time\nvar VERSION$7 = '30.2.0';\n\nvar __extends$A = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$5 = (undefined && undefined.__assign) || function () {\n __assign$5 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$5.apply(this, arguments);\n};\nvar __decorate$x = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$8 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar ChartMenuItemMapper = /** @class */ (function (_super) {\n __extends$A(ChartMenuItemMapper, _super);\n function ChartMenuItemMapper() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ChartMenuItemMapper_1 = ChartMenuItemMapper;\n ChartMenuItemMapper.prototype.getChartItems = function (key) {\n var _a, _b;\n if (!this.chartService) {\n ModuleRegistry.__assertRegistered(ModuleNames.GridChartsModule, \"the Context Menu key \\\"\" + key + \"\\\"\", this.context.getGridId());\n return undefined;\n }\n var builder = key === 'pivotChart'\n ? new PivotMenuItemMapper(this.gridOptionsService, this.chartService, this.localeService)\n : new RangeMenuItemMapper(this.gridOptionsService, this.chartService, this.localeService);\n var topLevelMenuItem = builder.getMenuItem();\n var chartGroupsDef = (_b = (_a = this.gridOptionsService.get('chartToolPanelsDef')) === null || _a === void 0 ? void 0 : _a.settingsPanel) === null || _b === void 0 ? void 0 : _b.chartGroupsDef;\n if (chartGroupsDef) {\n // Apply filtering and ordering if chartGroupsDef provided\n topLevelMenuItem = ChartMenuItemMapper_1.filterAndOrderChartMenu(topLevelMenuItem, chartGroupsDef, builder.getConfigLookup());\n }\n return this.cleanInternals(topLevelMenuItem);\n };\n // Remove our internal _key properties so this does not leak out of the class on the menu items.\n ChartMenuItemMapper.prototype.cleanInternals = function (menuItem) {\n if (!menuItem) {\n return menuItem;\n }\n var removeKey = function (m) {\n var _a;\n m === null || m === void 0 ? true : delete m._key;\n (_a = m === null || m === void 0 ? void 0 : m.subMenu) === null || _a === void 0 ? void 0 : _a.forEach(function (s) { return removeKey(s); });\n return m;\n };\n return removeKey(menuItem);\n };\n ChartMenuItemMapper.buildLookup = function (menuItem) {\n var itemLookup = {};\n var addItem = function (item) {\n itemLookup[item._key] = item;\n if (item.subMenu) {\n item.subMenu.forEach(function (s) { return addItem(s); });\n }\n };\n addItem(menuItem);\n return itemLookup;\n };\n /**\n * Make the MenuItem match the charts provided and their ordering on the ChartGroupsDef config object as provided by the user.\n */\n ChartMenuItemMapper.filterAndOrderChartMenu = function (topLevelMenuItem, chartGroupsDef, configLookup) {\n var _a;\n var menuItemLookup = this.buildLookup(topLevelMenuItem);\n var orderedAndFiltered = __assign$5(__assign$5({}, topLevelMenuItem), { subMenu: [] });\n Object.entries(chartGroupsDef).forEach(function (_a) {\n var _b, _c;\n var _d = __read$8(_a, 2), group = _d[0], chartTypes = _d[1];\n var chartConfigGroup = configLookup[group];\n if (chartConfigGroup == undefined) {\n _.doOnce(function () { return console.warn(\"AG Grid - invalid chartGroupsDef config '\" + group + \"'\"); }, \"invalid_chartGroupsDef\" + group);\n return undefined;\n }\n var menuItem = menuItemLookup[chartConfigGroup._key];\n if (menuItem) {\n if (menuItem.subMenu) {\n var subMenus = chartTypes.map(function (chartType) {\n var itemKey = chartConfigGroup[chartType];\n if (itemKey == undefined) {\n _.doOnce(function () { return console.warn(\"AG Grid - invalid chartGroupsDef config '\" + group + \".\" + chartType + \"'\"); }, \"invalid_chartGroupsDef\" + chartType + \"_\" + group);\n return undefined;\n }\n return menuItemLookup[itemKey];\n }).filter(function (s) { return s !== undefined; });\n if (subMenus.length > 0) {\n menuItem.subMenu = subMenus;\n (_b = orderedAndFiltered.subMenu) === null || _b === void 0 ? void 0 : _b.push(menuItem);\n }\n }\n else {\n // Handles line case which is not actually a sub subMenu\n (_c = orderedAndFiltered.subMenu) === null || _c === void 0 ? void 0 : _c.push(menuItem);\n }\n }\n });\n if (((_a = orderedAndFiltered.subMenu) === null || _a === void 0 ? void 0 : _a.length) == 0) {\n return undefined;\n }\n return orderedAndFiltered;\n };\n var ChartMenuItemMapper_1;\n __decorate$x([\n Optional('chartService')\n ], ChartMenuItemMapper.prototype, \"chartService\", void 0);\n ChartMenuItemMapper = ChartMenuItemMapper_1 = __decorate$x([\n Bean('chartMenuItemMapper')\n ], ChartMenuItemMapper);\n return ChartMenuItemMapper;\n}(BeanStub));\nvar PivotMenuItemMapper = /** @class */ (function () {\n function PivotMenuItemMapper(gridOptionsService, chartService, localeService) {\n this.gridOptionsService = gridOptionsService;\n this.chartService = chartService;\n this.localeService = localeService;\n }\n PivotMenuItemMapper.prototype.getMenuItem = function () {\n var _this = this;\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n var getMenuItem = function (localeKey, defaultText, chartType, key) {\n return {\n name: localeTextFunc(localeKey, defaultText),\n action: function () { return _this.chartService.createPivotChart({ chartType: chartType }); },\n _key: key\n };\n };\n return {\n name: localeTextFunc('pivotChart', 'Pivot Chart'),\n _key: 'pivotChart',\n subMenu: [\n {\n _key: 'pivotColumnChart',\n name: localeTextFunc('columnChart', 'Column'),\n subMenu: [\n getMenuItem('groupedColumn', 'Grouped‎', 'groupedColumn', 'pivotGroupedColumn'),\n getMenuItem('stackedColumn', 'Stacked‎', 'stackedColumn', 'pivotStackedColumn'),\n getMenuItem('normalizedColumn', '100% Stacked‎', 'normalizedColumn', 'pivotNormalizedColumn')\n ]\n },\n {\n _key: 'pivotBarChart',\n name: localeTextFunc('barChart', 'Bar'),\n subMenu: [\n getMenuItem('groupedBar', 'Grouped‎', 'groupedBar', 'pivotGroupedBar'),\n getMenuItem('stackedBar', 'Stacked‎', 'stackedBar', 'pivotStackedBar'),\n getMenuItem('normalizedBar', '100% Stacked‎', 'normalizedBar', 'pivotNormalizedBar')\n ]\n },\n {\n _key: 'pivotPieChart',\n name: localeTextFunc('pieChart', 'Pie'),\n subMenu: [\n getMenuItem('pie', 'Pie‎', 'pie', 'pivotPie'),\n getMenuItem('doughnut', 'Doughnut‎', 'doughnut', 'pivotDoughnut')\n ]\n },\n getMenuItem('line', 'Line‎', 'line', 'pivotLineChart'),\n {\n _key: 'pivotXYChart',\n name: localeTextFunc('xyChart', 'X Y (Scatter)'),\n subMenu: [\n getMenuItem('scatter', 'Scatter‎', 'scatter', 'pivotScatter'),\n getMenuItem('bubble', 'Bubble‎', 'bubble', 'pivotBubble')\n ]\n },\n {\n _key: 'pivotAreaChart',\n name: localeTextFunc('areaChart', 'Area'),\n subMenu: [\n getMenuItem('area', 'Area‎', 'area', 'pivotArea'),\n getMenuItem('stackedArea', 'Stacked‎', 'stackedArea', 'pivotStackedArea'),\n getMenuItem('normalizedArea', '100% Stacked‎', 'normalizedArea', 'pivotNormalizedArea')\n ]\n },\n getMenuItem('histogramChart', 'Histogram‎', 'histogram', 'pivotHistogramChart'),\n {\n _key: 'pivotCombinationChart',\n name: localeTextFunc('combinationChart', 'Combination'),\n subMenu: [\n getMenuItem('columnLineCombo', 'Column & Line‎', 'columnLineCombo', 'pivotColumnLineCombo'),\n getMenuItem('AreaColumnCombo', 'Area & Column‎', 'areaColumnCombo', 'pivotAreaColumnCombo')\n ]\n }\n ],\n icon: _.createIconNoSpan('chart', this.gridOptionsService, undefined),\n };\n };\n PivotMenuItemMapper.prototype.getConfigLookup = function () {\n return {\n columnGroup: {\n _key: 'pivotColumnChart',\n column: 'pivotGroupedColumn',\n stackedColumn: 'pivotStackedColumn',\n normalizedColumn: 'pivotNormalizedColumn',\n },\n barGroup: {\n _key: 'pivotBarChart',\n bar: 'pivotGroupedBar',\n stackedBar: 'pivotStackedBar',\n normalizedBar: 'pivotNormalizedBar',\n },\n pieGroup: {\n _key: 'pivotPieChart',\n pie: 'pivotPie',\n doughnut: 'pivotDoughnut',\n },\n lineGroup: {\n _key: 'pivotLineChart',\n line: 'pivotLineChart',\n },\n scatterGroup: {\n _key: 'pivotXYChart',\n bubble: 'pivotBubble',\n scatter: 'pivotScatter',\n },\n areaGroup: {\n _key: 'pivotAreaChart',\n area: 'pivotArea',\n stackedArea: 'pivotStackedArea',\n normalizedArea: 'pivotNormalizedArea',\n },\n histogramGroup: {\n _key: 'pivotHistogramChart',\n histogram: 'pivotHistogramChart',\n },\n combinationGroup: {\n _key: 'pivotCombinationChart',\n columnLineCombo: 'pivotColumnLineCombo',\n areaColumnCombo: 'pivotAreaColumnCombo',\n customCombo: '' // Not currently supported but needs a value to separate from a missing value\n }\n };\n };\n return PivotMenuItemMapper;\n}());\nvar RangeMenuItemMapper = /** @class */ (function () {\n function RangeMenuItemMapper(gridOptionsService, chartService, localeService) {\n this.gridOptionsService = gridOptionsService;\n this.chartService = chartService;\n this.localeService = localeService;\n }\n RangeMenuItemMapper.prototype.getMenuItem = function () {\n var _this = this;\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n var getMenuItem = function (localeKey, defaultText, chartType, key) {\n return {\n name: localeTextFunc(localeKey, defaultText),\n action: function () { return _this.chartService.createChartFromCurrentRange(chartType); },\n _key: key\n };\n };\n return {\n name: localeTextFunc('chartRange', 'Chart Range'),\n _key: 'chartRange',\n subMenu: [\n {\n name: localeTextFunc('columnChart', 'Column'),\n subMenu: [\n getMenuItem('groupedColumn', 'Grouped‎', 'groupedColumn', 'rangeGroupedColumn'),\n getMenuItem('stackedColumn', 'Stacked‎', 'stackedColumn', 'rangeStackedColumn'),\n getMenuItem('normalizedColumn', '100% Stacked‎', 'normalizedColumn', 'rangeNormalizedColumn')\n ],\n _key: 'rangeColumnChart'\n },\n {\n name: localeTextFunc('barChart', 'Bar'),\n subMenu: [\n getMenuItem('groupedBar', 'Grouped‎', 'groupedBar', 'rangeGroupedBar'),\n getMenuItem('stackedBar', 'Stacked‎', 'stackedBar', 'rangeStackedBar'),\n getMenuItem('normalizedBar', '100% Stacked‎', 'normalizedBar', 'rangeNormalizedBar')\n ],\n _key: 'rangeBarChart'\n },\n {\n name: localeTextFunc('pieChart', 'Pie'),\n subMenu: [\n getMenuItem('pie', 'Pie‎', 'pie', 'rangePie'),\n getMenuItem('doughnut', 'Doughnut‎', 'doughnut', 'rangeDoughnut')\n ],\n _key: 'rangePieChart'\n },\n getMenuItem('line', 'Line‎', 'line', 'rangeLineChart'),\n {\n name: localeTextFunc('xyChart', 'X Y (Scatter)'),\n subMenu: [\n getMenuItem('scatter', 'Scatter‎', 'scatter', 'rangeScatter'),\n getMenuItem('bubble', 'Bubble‎', 'bubble', 'rangeBubble')\n ],\n _key: 'rangeXYChart'\n },\n {\n name: localeTextFunc('areaChart', 'Area'),\n subMenu: [\n getMenuItem('area', 'Area‎', 'area', 'rangeArea'),\n getMenuItem('stackedArea', 'Stacked‎', 'stackedArea', 'rangeStackedArea'),\n getMenuItem('normalizedArea', '100% Stacked‎', 'normalizedArea', 'rangeNormalizedArea')\n ],\n _key: 'rangeAreaChart'\n },\n getMenuItem('histogramChart', 'Histogram‎', 'histogram', 'rangeHistogramChart'),\n {\n name: localeTextFunc('combinationChart', 'Combination'),\n subMenu: [\n getMenuItem('columnLineCombo', 'Column & Line‎', 'columnLineCombo', 'rangeColumnLineCombo'),\n getMenuItem('AreaColumnCombo', 'Area & Column‎', 'areaColumnCombo', 'rangeAreaColumnCombo')\n ],\n _key: 'rangeCombinationChart'\n }\n ],\n icon: _.createIconNoSpan('chart', this.gridOptionsService, undefined),\n };\n };\n RangeMenuItemMapper.prototype.getConfigLookup = function () {\n return {\n columnGroup: {\n _key: 'rangeColumnChart',\n column: 'rangeGroupedColumn',\n stackedColumn: 'rangeStackedColumn',\n normalizedColumn: 'rangeNormalizedColumn',\n },\n barGroup: {\n _key: 'rangeBarChart',\n bar: 'rangeGroupedBar',\n stackedBar: 'rangeStackedBar',\n normalizedBar: 'rangeNormalizedBar',\n },\n pieGroup: {\n _key: 'rangePieChart',\n pie: 'rangePie',\n doughnut: 'rangeDoughnut',\n },\n lineGroup: {\n _key: 'rangeLineChart',\n line: 'rangeLineChart',\n },\n scatterGroup: {\n _key: 'rangeXYChart',\n bubble: 'rangeBubble',\n scatter: 'rangeScatter',\n },\n areaGroup: {\n _key: 'rangeAreaChart',\n area: 'rangeArea',\n stackedArea: 'rangeStackedArea',\n normalizedArea: 'rangeNormalizedArea',\n },\n histogramGroup: {\n _key: 'rangeHistogramChart',\n histogram: 'rangeHistogramChart',\n },\n combinationGroup: {\n _key: 'rangeCombinationChart',\n columnLineCombo: 'rangeColumnLineCombo',\n areaColumnCombo: 'rangeAreaColumnCombo',\n customCombo: '' // Not currently supported but needs a value to separate from a missing value\n }\n };\n };\n return RangeMenuItemMapper;\n}());\n\nvar MenuModule = {\n version: VERSION$7,\n moduleName: ModuleNames.MenuModule,\n beans: [EnterpriseMenuFactory, ContextMenuFactory, MenuItemMapper, ChartMenuItemMapper],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar __extends$z = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$4 = (undefined && undefined.__assign) || function () {\n __assign$4 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$4.apply(this, arguments);\n};\nvar __decorate$w = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MultiFilter = /** @class */ (function (_super) {\n __extends$z(MultiFilter, _super);\n function MultiFilter() {\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.filterDefs = [];\n _this.filters = [];\n _this.guiDestroyFuncs = [];\n _this.activeFilterIndices = [];\n _this.lastActivatedMenuItem = null;\n _this.afterFiltersReadyFuncs = [];\n return _this;\n }\n MultiFilter.prototype.postConstruct = function () {\n var _this = this;\n this.initialiseTabGuard({\n onFocusIn: function (e) { return _this.onFocusIn(e); }\n });\n };\n MultiFilter.getFilterDefs = function (params) {\n var filters = params.filters;\n return filters && filters.length > 0 ?\n filters :\n [{ filter: 'agTextColumnFilter' }, { filter: 'agSetColumnFilter' }];\n };\n MultiFilter.prototype.init = function (params) {\n var _this = this;\n this.params = params;\n this.filterDefs = MultiFilter.getFilterDefs(params);\n var column = params.column, filterChangedCallback = params.filterChangedCallback;\n this.column = column;\n this.filterChangedCallback = filterChangedCallback;\n var filterPromises = [];\n this.filterDefs.forEach(function (filterDef, index) {\n var filterPromise = _this.createFilter(filterDef, index);\n if (filterPromise != null) {\n filterPromises.push(filterPromise);\n }\n });\n // we have to refresh the GUI here to ensure that Angular components are not rendered in odd places\n return AgPromise\n .all(filterPromises)\n .then(function (filters) {\n _this.filters = filters;\n _this.refreshGui('columnMenu');\n _this.afterFiltersReadyFuncs.forEach(function (f) { return f(); });\n _this.afterFiltersReadyFuncs.length = 0;\n });\n };\n MultiFilter.prototype.refreshGui = function (container) {\n var _this = this;\n if (container === this.lastOpenedInContainer) {\n return;\n }\n this.removeAllChildrenExceptTabGuards();\n this.destroyChildren();\n this.filters.forEach(function (filter, index) {\n if (index > 0) {\n _this.appendChild(_.loadTemplate(/* html */ \"
\"));\n }\n var filterDef = _this.filterDefs[index];\n var filterTitle = _this.getFilterTitle(filter, filterDef);\n var filterGui;\n if (filterDef.display === 'subMenu' && container !== 'toolPanel') {\n // prevent sub-menu being used in tool panel\n var menuItem = _this.insertFilterMenu(filter, filterTitle);\n filterGui = menuItem.getGui();\n }\n else if (filterDef.display === 'subMenu' || filterDef.display === 'accordion') {\n // sub-menus should appear as groups in the tool panel\n var group = _this.insertFilterGroup(filter, filterTitle);\n filterGui = group.getGui();\n }\n else {\n // display inline\n filterGui = filter.getGui();\n }\n _this.appendChild(filterGui);\n });\n this.lastOpenedInContainer = container;\n };\n MultiFilter.prototype.getFilterTitle = function (filter, filterDef) {\n if (filterDef.title != null) {\n return filterDef.title;\n }\n var filterWithoutType = filter;\n return typeof filterWithoutType.getFilterTitle === 'function' ? filterWithoutType.getFilterTitle() : 'Filter';\n };\n MultiFilter.prototype.destroyChildren = function () {\n this.guiDestroyFuncs.forEach(function (func) { return func(); });\n this.guiDestroyFuncs.length = 0;\n };\n MultiFilter.prototype.insertFilterMenu = function (filter, name) {\n var _this = this;\n var menuItem = this.createBean(new AgMenuItemComponent({\n name: name,\n subMenu: filter,\n cssClasses: ['ag-multi-filter-menu-item'],\n isCompact: true,\n isAnotherSubMenuOpen: function () { return false; },\n }));\n menuItem.setParentComponent(this);\n this.guiDestroyFuncs.push(function () { return _this.destroyBean(menuItem); });\n this.addManagedListener(menuItem, AgMenuItemComponent.EVENT_MENU_ITEM_ACTIVATED, function (event) {\n if (_this.lastActivatedMenuItem && _this.lastActivatedMenuItem !== event.menuItem) {\n _this.lastActivatedMenuItem.deactivate();\n }\n _this.lastActivatedMenuItem = event.menuItem;\n });\n menuItem.addGuiEventListener('focusin', function () { return menuItem.activate(); });\n menuItem.addGuiEventListener('focusout', function () {\n if (!menuItem.isSubMenuOpen()) {\n menuItem.deactivate();\n }\n });\n return menuItem;\n };\n MultiFilter.prototype.insertFilterGroup = function (filter, title) {\n var _this = this;\n var group = this.createBean(new AgGroupComponent({\n title: title,\n cssIdentifier: 'multi-filter',\n }));\n this.guiDestroyFuncs.push(function () { return _this.destroyBean(group); });\n group.addItem(filter.getGui());\n group.toggleGroupExpand(false);\n if (filter.afterGuiAttached) {\n group.addManagedListener(group, AgGroupComponent.EVENT_EXPANDED, function () { return filter.afterGuiAttached({\n container: _this.lastOpenedInContainer,\n suppressFocus: true,\n hidePopup: _this.hidePopup\n }); });\n }\n return group;\n };\n MultiFilter.prototype.isFilterActive = function () {\n return this.filters.some(function (filter) { return filter.isFilterActive(); });\n };\n MultiFilter.prototype.getLastActiveFilterIndex = function () {\n return this.activeFilterIndices.length > 0 ? this.activeFilterIndices[this.activeFilterIndices.length - 1] : null;\n };\n MultiFilter.prototype.doesFilterPass = function (params, filterToSkip) {\n var rowPasses = true;\n this.filters.forEach(function (filter) {\n if (!rowPasses || filter === filterToSkip || !filter.isFilterActive()) {\n return;\n }\n rowPasses = filter.doesFilterPass(params);\n });\n return rowPasses;\n };\n MultiFilter.prototype.getFilterType = function () {\n return 'multi';\n };\n MultiFilter.prototype.getModelFromUi = function () {\n var model = {\n filterType: this.getFilterType(),\n filterModels: this.filters.map(function (filter) {\n var providedFilter = filter;\n if (typeof providedFilter.getModelFromUi === 'function') {\n return providedFilter.getModelFromUi();\n }\n return null;\n })\n };\n return model;\n };\n MultiFilter.prototype.getModel = function () {\n if (!this.isFilterActive()) {\n return null;\n }\n var model = {\n filterType: this.getFilterType(),\n filterModels: this.filters.map(function (filter) {\n if (filter.isFilterActive()) {\n return filter.getModel();\n }\n return null;\n })\n };\n return model;\n };\n MultiFilter.prototype.setModel = function (model) {\n var _this = this;\n var setFilterModel = function (filter, filterModel) {\n return new AgPromise(function (resolve) {\n var promise = filter.setModel(filterModel);\n promise ? promise.then(function () { return resolve(); }) : resolve();\n });\n };\n var promises = [];\n if (model == null) {\n promises = this.filters.map(function (filter, index) {\n var res = setFilterModel(filter, null).then(function () {\n _this.updateActiveList(index);\n });\n return res;\n });\n }\n else {\n this.filters.forEach(function (filter, index) {\n var filterModel = model.filterModels.length > index ? model.filterModels[index] : null;\n var res = setFilterModel(filter, filterModel).then(function () {\n _this.updateActiveList(index);\n });\n promises.push(res);\n });\n }\n return AgPromise.all(promises).then(function () { });\n };\n MultiFilter.prototype.applyModel = function (source) {\n if (source === void 0) { source = 'api'; }\n var result = false;\n this.filters.forEach(function (filter) {\n if (filter instanceof ProvidedFilter) {\n result = filter.applyModel(source) || result;\n }\n });\n return result;\n };\n MultiFilter.prototype.getChildFilterInstance = function (index) {\n return this.filters[index];\n };\n MultiFilter.prototype.afterGuiAttached = function (params) {\n if (params) {\n this.hidePopup = params.hidePopup;\n this.refreshGui(params.container);\n }\n else {\n this.hidePopup = undefined;\n }\n var filters = this.params.filters;\n var suppressFocus = filters && filters.some(function (filter) { return filter.display && filter.display !== 'inline'; });\n this.executeFunctionIfExists('afterGuiAttached', __assign$4(__assign$4({}, params || {}), { suppressFocus: suppressFocus }));\n var eDocument = this.gridOptionsService.getDocument();\n var activeEl = eDocument.activeElement;\n // if suppress focus is true, we might run into two scenarios:\n // 1 - we are loading the filter for the first time and the component isn't ready,\n // which means the document will have focus.\n // 2 - The focus will be somewhere inside the component due to auto focus\n // In both cases we need to force the focus somewhere valid but outside the filter.\n if (suppressFocus && (activeEl === eDocument.body || this.getGui().contains(activeEl))) {\n // reset focus to the top of the container, and blur\n this.forceFocusOutOfContainer(true);\n }\n };\n MultiFilter.prototype.afterGuiDetached = function () {\n this.executeFunctionIfExists('afterGuiDetached');\n };\n MultiFilter.prototype.onAnyFilterChanged = function () {\n this.executeFunctionIfExists('onAnyFilterChanged');\n };\n MultiFilter.prototype.onNewRowsLoaded = function () {\n this.executeFunctionIfExists('onNewRowsLoaded');\n };\n MultiFilter.prototype.destroy = function () {\n var _this = this;\n this.filters.forEach(function (filter) {\n filter.setModel(null);\n _this.destroyBean(filter);\n });\n this.filters.length = 0;\n this.destroyChildren();\n this.hidePopup = undefined;\n _super.prototype.destroy.call(this);\n };\n MultiFilter.prototype.executeFunctionIfExists = function (name) {\n var params = [];\n for (var _i = 1; _i < arguments.length; _i++) {\n params[_i - 1] = arguments[_i];\n }\n // The first filter is always the \"dominant\" one. By iterating in reverse order we ensure the first filter\n // always gets the last say\n _.forEachReverse(this.filters, function (filter) {\n var func = filter[name];\n if (typeof func === 'function') {\n func.apply(filter, params);\n }\n });\n };\n MultiFilter.prototype.createFilter = function (filterDef, index) {\n var _this = this;\n var _a = this.params, filterModifiedCallback = _a.filterModifiedCallback, doesRowPassOtherFilter = _a.doesRowPassOtherFilter;\n var filterInstance;\n var filterParams = __assign$4(__assign$4({}, this.filterManager.createFilterParams(this.column, this.column.getColDef())), { filterModifiedCallback: filterModifiedCallback, filterChangedCallback: function (additionalEventAttributes) {\n _this.executeWhenAllFiltersReady(function () { return _this.filterChanged(index, additionalEventAttributes); });\n }, doesRowPassOtherFilter: function (node) {\n return doesRowPassOtherFilter(node) && _this.doesFilterPass({ node: node, data: node.data }, filterInstance);\n } });\n var compDetails = this.userComponentFactory.getFilterDetails(filterDef, filterParams, 'agTextColumnFilter');\n if (!compDetails) {\n return null;\n }\n var filterPromise = compDetails.newAgStackInstance();\n if (filterPromise) {\n filterPromise.then(function (filter) { return filterInstance = filter; });\n }\n return filterPromise;\n };\n MultiFilter.prototype.executeWhenAllFiltersReady = function (action) {\n if (this.filters && this.filters.length > 0) {\n action();\n }\n else {\n this.afterFiltersReadyFuncs.push(action);\n }\n };\n MultiFilter.prototype.updateActiveList = function (index) {\n var changedFilter = this.filters[index];\n _.removeFromArray(this.activeFilterIndices, index);\n if (changedFilter.isFilterActive()) {\n this.activeFilterIndices.push(index);\n }\n };\n MultiFilter.prototype.filterChanged = function (index, additionalEventAttributes) {\n this.updateActiveList(index);\n this.filterChangedCallback(additionalEventAttributes);\n var changedFilter = this.filters[index];\n this.filters.forEach(function (filter) {\n if (filter === changedFilter) {\n return;\n }\n if (typeof filter.onAnyFilterChanged === 'function') {\n filter.onAnyFilterChanged();\n }\n });\n };\n MultiFilter.prototype.onFocusIn = function (e) {\n if (this.lastActivatedMenuItem != null && !this.lastActivatedMenuItem.getGui().contains(e.target)) {\n this.lastActivatedMenuItem.deactivate();\n this.lastActivatedMenuItem = null;\n }\n return true;\n };\n MultiFilter.prototype.getModelAsString = function (model) {\n var _a, _b, _c, _d;\n if (!this.filters || !((_a = model === null || model === void 0 ? void 0 : model.filterModels) === null || _a === void 0 ? void 0 : _a.length)) {\n return '';\n }\n var lastActiveIndex = (_b = this.getLastActiveFilterIndex()) !== null && _b !== void 0 ? _b : 0;\n var activeFilter = this.filters[lastActiveIndex];\n return (_d = (_c = activeFilter.getModelAsString) === null || _c === void 0 ? void 0 : _c.call(activeFilter, model.filterModels[lastActiveIndex])) !== null && _d !== void 0 ? _d : '';\n };\n __decorate$w([\n Autowired('filterManager')\n ], MultiFilter.prototype, \"filterManager\", void 0);\n __decorate$w([\n Autowired('userComponentFactory')\n ], MultiFilter.prototype, \"userComponentFactory\", void 0);\n __decorate$w([\n PostConstruct\n ], MultiFilter.prototype, \"postConstruct\", null);\n return MultiFilter;\n}(TabGuardComp));\n\nvar __extends$y = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$3 = (undefined && undefined.__assign) || function () {\n __assign$3 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$3.apply(this, arguments);\n};\nvar __decorate$v = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar MultiFloatingFilterComp = /** @class */ (function (_super) {\n __extends$y(MultiFloatingFilterComp, _super);\n function MultiFloatingFilterComp() {\n var _this = _super.call(this, /* html */ \"
\") || this;\n _this.floatingFilters = [];\n _this.compDetailsList = [];\n return _this;\n }\n MultiFloatingFilterComp.prototype.init = function (params) {\n this.params = params;\n var compDetailsList = this.getCompDetailsList(params).compDetailsList;\n return this.setParams(compDetailsList);\n };\n MultiFloatingFilterComp.prototype.setParams = function (compDetailsList) {\n var _this = this;\n var floatingFilterPromises = [];\n compDetailsList.forEach(function (compDetails) {\n var floatingFilterPromise = compDetails === null || compDetails === void 0 ? void 0 : compDetails.newAgStackInstance();\n if (floatingFilterPromise != null) {\n _this.compDetailsList.push(compDetails);\n floatingFilterPromises.push(floatingFilterPromise);\n }\n });\n return AgPromise.all(floatingFilterPromises).then(function (floatingFilters) {\n floatingFilters.forEach(function (floatingFilter, index) {\n _this.floatingFilters.push(floatingFilter);\n var gui = floatingFilter.getGui();\n _this.appendChild(gui);\n if (index > 0) {\n _.setDisplayed(gui, false);\n }\n });\n });\n };\n MultiFloatingFilterComp.prototype.onParamsUpdated = function (params) {\n var _this = this;\n this.params = params;\n var _a = this.getCompDetailsList(params), newCompDetailsList = _a.compDetailsList, floatingFilterParamsList = _a.floatingFilterParamsList;\n var allFloatingFilterCompsUnchanged = newCompDetailsList.length === this.compDetailsList.length\n && newCompDetailsList.every(function (newCompDetails, index) { return !_this.filterManager.areFilterCompsDifferent(_this.compDetailsList[index], newCompDetails); });\n if (allFloatingFilterCompsUnchanged) {\n floatingFilterParamsList.forEach(function (floatingFilterParams, index) {\n var _a;\n var floatingFilter = _this.floatingFilters[index];\n (_a = floatingFilter.onParamsUpdated) === null || _a === void 0 ? void 0 : _a.call(floatingFilter, floatingFilterParams);\n });\n }\n else {\n _.clearElement(this.getGui());\n this.destroyBeans(this.floatingFilters);\n this.floatingFilters = [];\n this.compDetailsList = [];\n this.setParams(newCompDetailsList);\n }\n };\n MultiFloatingFilterComp.prototype.getCompDetailsList = function (params) {\n var _this = this;\n var compDetailsList = [];\n var floatingFilterParamsList = [];\n var filterParams = params.filterParams;\n MultiFilter.getFilterDefs(filterParams).forEach(function (filterDef, index) {\n var floatingFilterParams = __assign$3(__assign$3({}, params), { \n // set the parent filter instance for each floating filter to the relevant child filter instance\n parentFilterInstance: function (callback) {\n _this.parentMultiFilterInstance(function (parent) {\n var child = parent.getChildFilterInstance(index);\n if (child == null) {\n return;\n }\n callback(child);\n });\n } });\n _.mergeDeep(floatingFilterParams.filterParams, filterDef.filterParams);\n var compDetails = _this.getCompDetails(filterDef, floatingFilterParams);\n if (compDetails) {\n compDetailsList.push(compDetails);\n floatingFilterParamsList.push(floatingFilterParams);\n }\n });\n return { compDetailsList: compDetailsList, floatingFilterParamsList: floatingFilterParamsList };\n };\n MultiFloatingFilterComp.prototype.onParentModelChanged = function (model, event) {\n var _this = this;\n // We don't want to update the floating filter if the floating filter caused the change,\n // because the UI is already in sync. if we didn't do this, the UI would behave strangely\n // as it would be updating as the user is typing\n if (event && event.afterFloatingFilter) {\n return;\n }\n this.parentMultiFilterInstance(function (parent) {\n if (model == null) {\n _this.floatingFilters.forEach(function (filter, i) {\n filter.onParentModelChanged(null, event);\n _.setDisplayed(filter.getGui(), i === 0);\n });\n }\n else {\n var lastActiveFloatingFilterIndex_1 = parent.getLastActiveFilterIndex();\n _this.floatingFilters.forEach(function (filter, i) {\n var filterModel = model.filterModels.length > i ? model.filterModels[i] : null;\n filter.onParentModelChanged(filterModel, event);\n var shouldShow = lastActiveFloatingFilterIndex_1 == null ? i === 0 : i === lastActiveFloatingFilterIndex_1;\n _.setDisplayed(filter.getGui(), shouldShow);\n });\n }\n });\n };\n MultiFloatingFilterComp.prototype.destroy = function () {\n this.destroyBeans(this.floatingFilters);\n this.floatingFilters.length = 0;\n _super.prototype.destroy.call(this);\n };\n MultiFloatingFilterComp.prototype.getCompDetails = function (filterDef, params) {\n var _this = this;\n var _a;\n var defaultComponentName = (_a = this.userComponentFactory.getDefaultFloatingFilterType(filterDef, function () { return _this.filterManager.getDefaultFloatingFilter(_this.params.column); })) !== null && _a !== void 0 ? _a : 'agReadOnlyFloatingFilter';\n return this.userComponentFactory.getFloatingFilterCompDetails(filterDef, params, defaultComponentName);\n };\n MultiFloatingFilterComp.prototype.parentMultiFilterInstance = function (cb) {\n this.params.parentFilterInstance(function (parent) {\n if (!(parent instanceof MultiFilter)) {\n throw new Error('AG Grid - MultiFloatingFilterComp expects MultiFilter as its parent');\n }\n cb(parent);\n });\n };\n __decorate$v([\n Autowired('userComponentFactory')\n ], MultiFloatingFilterComp.prototype, \"userComponentFactory\", void 0);\n __decorate$v([\n Autowired('filterManager')\n ], MultiFloatingFilterComp.prototype, \"filterManager\", void 0);\n return MultiFloatingFilterComp;\n}(Component));\n\n// DO NOT UPDATE MANUALLY: Generated from script during build time\nvar VERSION$6 = '30.2.0';\n\nvar MultiFilterModule = {\n version: VERSION$6,\n moduleName: ModuleNames.MultiFilterModule,\n beans: [],\n userComponents: [\n { componentName: 'agMultiColumnFilter', componentClass: MultiFilter },\n { componentName: 'agMultiColumnFloatingFilter', componentClass: MultiFloatingFilterComp },\n ],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar __extends$x = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar RichSelectCellEditor = /** @class */ (function (_super) {\n __extends$x(RichSelectCellEditor, _super);\n function RichSelectCellEditor() {\n return _super.call(this, /* html */ \"
\") || this;\n }\n RichSelectCellEditor.prototype.init = function (params) {\n var _this = this;\n this.params = params;\n var cellStartedEdit = params.cellStartedEdit, cellHeight = params.cellHeight, values = params.values;\n if (_.missing(values)) {\n console.warn('AG Grid: richSelectCellEditor requires values for it to work');\n return;\n }\n var _a = this.buildRichSelectParams(), richSelectParams = _a.params, valuesPromise = _a.valuesPromise;\n this.richSelect = this.createManagedBean(new AgRichSelect(richSelectParams));\n this.appendChild(this.richSelect);\n if (valuesPromise) {\n valuesPromise.then(function (values) {\n _this.richSelect.setValueList({ valueList: values, refresh: true });\n var searchStringCallback = _this.getSearchStringCallback(values);\n if (searchStringCallback) {\n _this.richSelect.setSearchStringCreator(searchStringCallback);\n }\n });\n }\n this.addManagedListener(this.richSelect, Events.EVENT_FIELD_PICKER_VALUE_SELECTED, this.onEditorPickerValueSelected.bind(this));\n this.addManagedListener(this.richSelect.getGui(), 'focusout', this.onEditorFocusOut.bind(this));\n this.focusAfterAttached = cellStartedEdit;\n if (_.exists(cellHeight)) {\n this.richSelect.setRowHeight(cellHeight);\n }\n };\n RichSelectCellEditor.prototype.onEditorPickerValueSelected = function (e) {\n this.params.stopEditing(!e.fromEnterKey);\n };\n RichSelectCellEditor.prototype.onEditorFocusOut = function (e) {\n if (this.richSelect.getGui().contains(e.relatedTarget)) {\n return;\n }\n this.params.stopEditing(true);\n };\n RichSelectCellEditor.prototype.buildRichSelectParams = function () {\n var _a = this.params, cellRenderer = _a.cellRenderer, value = _a.value, values = _a.values, formatValue = _a.formatValue, searchDebounceDelay = _a.searchDebounceDelay, valueListGap = _a.valueListGap, valueListMaxHeight = _a.valueListMaxHeight, valueListMaxWidth = _a.valueListMaxWidth, allowTyping = _a.allowTyping, filterList = _a.filterList, searchType = _a.searchType, highlightMatch = _a.highlightMatch, valuePlaceholder = _a.valuePlaceholder;\n var ret = {\n value: value,\n cellRenderer: cellRenderer,\n searchDebounceDelay: searchDebounceDelay,\n valueFormatter: formatValue,\n pickerAriaLabelKey: 'ariaLabelRichSelectField',\n pickerAriaLabelValue: 'Rich Select Field',\n pickerType: 'virtual-list',\n pickerGap: valueListGap,\n allowTyping: allowTyping,\n filterList: filterList,\n searchType: searchType,\n highlightMatch: highlightMatch,\n maxPickerHeight: valueListMaxHeight,\n maxPickerWidth: valueListMaxWidth,\n placeholder: valuePlaceholder\n };\n var valuesResult;\n var valuesPromise;\n if (typeof values === 'function') {\n valuesResult = values(this.params);\n }\n else {\n valuesResult = values;\n }\n if (Array.isArray(valuesResult)) {\n ret.valueList = valuesResult;\n ret.searchStringCreator = this.getSearchStringCallback(valuesResult);\n }\n else {\n valuesPromise = valuesResult;\n }\n return { params: ret, valuesPromise: valuesPromise };\n };\n RichSelectCellEditor.prototype.getSearchStringCallback = function (values) {\n var _this = this;\n var colDef = this.params.colDef;\n if (typeof values[0] !== 'object' || !colDef.keyCreator) {\n return;\n }\n return function (values) { return values.map(function (value) {\n var keyParams = {\n value: value,\n colDef: _this.params.colDef,\n column: _this.params.column,\n node: _this.params.node,\n data: _this.params.data,\n api: _this.gridOptionsService.api,\n columnApi: _this.gridOptionsService.columnApi,\n context: _this.gridOptionsService.context\n };\n return colDef.keyCreator(keyParams);\n }); };\n };\n // we need to have the gui attached before we can draw the virtual rows, as the\n // virtual row logic needs info about the gui state\n RichSelectCellEditor.prototype.afterGuiAttached = function () {\n var _this = this;\n var _a = this, focusAfterAttached = _a.focusAfterAttached, params = _a.params;\n setTimeout(function () {\n if (!_this.isAlive()) {\n return;\n }\n if (focusAfterAttached) {\n _this.richSelect.getFocusableElement().focus();\n }\n _this.richSelect.showPicker();\n var eventKey = params.eventKey;\n if (eventKey) {\n if ((eventKey === null || eventKey === void 0 ? void 0 : eventKey.length) === 1) {\n _this.richSelect.searchTextFromString(eventKey);\n }\n }\n });\n };\n RichSelectCellEditor.prototype.getValue = function () {\n return this.richSelect.getValue();\n };\n RichSelectCellEditor.prototype.isPopup = function () {\n return false;\n };\n return RichSelectCellEditor;\n}(PopupComponent));\n\n// DO NOT UPDATE MANUALLY: Generated from script during build time\nvar VERSION$5 = '30.2.0';\n\nvar RichSelectModule = {\n version: VERSION$5,\n moduleName: ModuleNames.RichSelectModule,\n beans: [],\n userComponents: [\n { componentName: 'agRichSelect', componentClass: RichSelectCellEditor },\n { componentName: 'agRichSelectCellEditor', componentClass: RichSelectCellEditor }\n ],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar __extends$w = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$u = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FullStore = /** @class */ (function (_super) {\n __extends$w(FullStore, _super);\n function FullStore(ssrmParams, storeParams, parentRowNode) {\n var _this = \n // finite block represents a cache with just one block, thus 0 is the id, it's the first block\n _super.call(this, 0) || this;\n _this.nodeIdSequence = new NumberSequence();\n _this.info = {};\n _this.ssrmParams = ssrmParams;\n _this.parentRowNode = parentRowNode;\n _this.level = parentRowNode.level + 1;\n _this.groupLevel = ssrmParams.rowGroupCols ? _this.level < ssrmParams.rowGroupCols.length : undefined;\n _this.leafGroup = ssrmParams.rowGroupCols ? _this.level === ssrmParams.rowGroupCols.length - 1 : false;\n return _this;\n }\n FullStore.prototype.postConstruct = function () {\n var _this = this;\n this.usingTreeData = this.gridOptionsService.is('treeData');\n this.nodeIdPrefix = this.blockUtils.createNodeIdPrefix(this.parentRowNode);\n if (!this.usingTreeData && this.groupLevel) {\n var groupColVo = this.ssrmParams.rowGroupCols[this.level];\n this.groupField = groupColVo.field;\n this.rowGroupColumn = this.columnModel.getRowGroupColumns()[this.level];\n }\n var initialRowCount = 1;\n var isRootStore = this.parentRowNode.level === -1;\n var userInitialRowCount = this.storeUtils.getServerSideInitialRowCount();\n if (isRootStore && userInitialRowCount !== undefined) {\n initialRowCount = userInitialRowCount;\n }\n this.initialiseRowNodes(initialRowCount);\n this.rowNodeBlockLoader.addBlock(this);\n this.addDestroyFunc(function () { return _this.rowNodeBlockLoader.removeBlock(_this); });\n this.postSortFunc = this.gridOptionsService.getCallback('postSortRows');\n };\n FullStore.prototype.destroyRowNodes = function () {\n this.blockUtils.destroyRowNodes(this.allRowNodes);\n this.allRowNodes = [];\n this.nodesAfterSort = [];\n this.nodesAfterFilter = [];\n this.allNodesMap = {};\n };\n FullStore.prototype.initialiseRowNodes = function (loadingRowsCount, failedLoad) {\n if (failedLoad === void 0) { failedLoad = false; }\n this.destroyRowNodes();\n for (var i = 0; i < loadingRowsCount; i++) {\n var loadingRowNode = this.blockUtils.createRowNode({\n field: this.groupField, group: this.groupLevel, leafGroup: this.leafGroup,\n level: this.level, parent: this.parentRowNode, rowGroupColumn: this.rowGroupColumn\n });\n if (failedLoad) {\n loadingRowNode.failedLoad = true;\n }\n this.allRowNodes.push(loadingRowNode);\n this.nodesAfterFilter.push(loadingRowNode);\n this.nodesAfterSort.push(loadingRowNode);\n }\n };\n FullStore.prototype.getBlockStateJson = function () {\n return {\n id: this.nodeIdPrefix ? this.nodeIdPrefix : '',\n state: this.getState()\n };\n };\n FullStore.prototype.loadFromDatasource = function () {\n this.storeUtils.loadFromDatasource({\n startRow: undefined,\n endRow: undefined,\n parentBlock: this,\n parentNode: this.parentRowNode,\n storeParams: this.ssrmParams,\n successCallback: this.pageLoaded.bind(this, this.getVersion()),\n success: this.success.bind(this, this.getVersion()),\n failCallback: this.pageLoadFailed.bind(this, this.getVersion()),\n fail: this.pageLoadFailed.bind(this, this.getVersion())\n });\n };\n FullStore.prototype.getStartRow = function () {\n return 0; // always zero as not in a cache\n };\n FullStore.prototype.getEndRow = function () {\n return this.nodesAfterSort.length;\n };\n FullStore.prototype.createDataNode = function (data, index) {\n var rowNode = this.blockUtils.createRowNode({\n field: this.groupField, group: this.groupLevel, leafGroup: this.leafGroup,\n level: this.level, parent: this.parentRowNode, rowGroupColumn: this.rowGroupColumn\n });\n if (index != null) {\n _.insertIntoArray(this.allRowNodes, rowNode, index);\n }\n else {\n this.allRowNodes.push(rowNode);\n }\n var defaultId = this.prefixId(this.nodeIdSequence.next());\n this.blockUtils.setDataIntoRowNode(rowNode, data, defaultId, undefined);\n this.nodeManager.addRowNode(rowNode);\n this.blockUtils.checkOpenByDefault(rowNode);\n this.allNodesMap[rowNode.id] = rowNode;\n return rowNode;\n };\n FullStore.prototype.prefixId = function (id) {\n if (this.nodeIdPrefix) {\n return this.nodeIdPrefix + '-' + id;\n }\n else {\n return id.toString();\n }\n };\n FullStore.prototype.processServerFail = function () {\n this.initialiseRowNodes(1, true);\n this.fireStoreUpdatedEvent();\n this.flushAsyncTransactions();\n };\n FullStore.prototype.processServerResult = function (params) {\n if (!this.isAlive()) {\n return;\n }\n var info = params.storeInfo || params.groupLevelInfo;\n if (info) {\n Object.assign(this.info, info);\n }\n if (params.pivotResultFields) {\n this.serverSideRowModel.generateSecondaryColumns(params.pivotResultFields);\n }\n var nodesToRecycle = this.allRowNodes.length > 0 ? this.allNodesMap : undefined;\n this.allRowNodes = [];\n this.nodesAfterSort = [];\n this.nodesAfterFilter = [];\n this.allNodesMap = {};\n if (!params.rowData) {\n var message_1 = 'AG Grid: \"params.data\" is missing from Server-Side Row Model success() callback. Please use the \"data\" attribute. If no data is returned, set an empty list.';\n _.doOnce(function () { return console.warn(message_1, params); }, 'FullStore.noData');\n }\n this.createOrRecycleNodes(nodesToRecycle, params.rowData);\n if (nodesToRecycle) {\n this.blockUtils.destroyRowNodes(_.getAllValuesInObject(nodesToRecycle));\n }\n this.filterAndSortNodes();\n this.fireStoreUpdatedEvent();\n this.flushAsyncTransactions();\n };\n FullStore.prototype.createOrRecycleNodes = function (nodesToRecycle, rowData) {\n var _this = this;\n if (!rowData) {\n return;\n }\n var lookupNodeToRecycle = function (data) {\n if (!nodesToRecycle) {\n return undefined;\n }\n var getRowIdFunc = _this.gridOptionsService.getCallback('getRowId');\n if (!getRowIdFunc) {\n return undefined;\n }\n var parentKeys = _this.parentRowNode.getGroupKeys();\n var level = _this.level;\n var id = getRowIdFunc({\n data: data,\n parentKeys: parentKeys.length > 0 ? parentKeys : undefined,\n level: level,\n });\n var foundNode = nodesToRecycle[id];\n if (!foundNode) {\n return undefined;\n }\n delete nodesToRecycle[id];\n return foundNode;\n };\n var recycleNode = function (rowNode, dataItem) {\n _this.allNodesMap[rowNode.id] = rowNode;\n _this.blockUtils.updateDataIntoRowNode(rowNode, dataItem);\n _this.allRowNodes.push(rowNode);\n };\n rowData.forEach(function (dataItem) {\n var nodeToRecycle = lookupNodeToRecycle(dataItem);\n if (nodeToRecycle) {\n recycleNode(nodeToRecycle, dataItem);\n }\n else {\n _this.createDataNode(dataItem);\n }\n });\n };\n FullStore.prototype.flushAsyncTransactions = function () {\n var _this = this;\n // we want to update the store with any outstanding transactions straight away,\n // as otherwise if waitTimeMillis is large (eg 5s), then the user could be looking\n // at old data for a few seconds before the transactions is applied, which isn't what\n // you would expect when we advertise 'transaction is applied when data is loaded'.\n // we do this in a timeout as flushAsyncTransactions expects the grid to be in a settled\n // state, not in the middle of loading rows! keeps the VM Turns more simple and deterministic.\n window.setTimeout(function () { return _this.transactionManager.flushAsyncTransactions(); }, 0);\n };\n FullStore.prototype.filterAndSortNodes = function () {\n this.filterRowNodes();\n this.sortRowNodes();\n };\n FullStore.prototype.sortRowNodes = function () {\n var serverIsSorting = this.storeUtils.isServerSideSortAllLevels() || this.storeUtils.isServerSideSortOnServer();\n var sortOptions = this.sortController.getSortOptions();\n var noSortApplied = !sortOptions || sortOptions.length == 0;\n if (serverIsSorting || noSortApplied) {\n this.nodesAfterSort = this.nodesAfterFilter;\n return;\n }\n this.nodesAfterSort = this.rowNodeSorter.doFullSort(this.nodesAfterFilter, sortOptions);\n if (this.postSortFunc) {\n var params = { nodes: this.nodesAfterSort };\n this.postSortFunc(params);\n }\n };\n FullStore.prototype.filterRowNodes = function () {\n var _this = this;\n var serverIsFiltering = !this.storeUtils.isServerSideOnlyRefreshFilteredGroups() || this.storeUtils.isServerSideFilterOnServer();\n // filtering for InFullStore only works at lowest level details.\n // reason is the logic for group filtering was to difficult to work out how it should work at time of writing.\n var groupLevel = this.groupLevel;\n if (serverIsFiltering || groupLevel) {\n this.nodesAfterFilter = this.allRowNodes;\n return;\n }\n this.nodesAfterFilter = this.allRowNodes.filter(function (rowNode) { return _this.filterManager.doesRowPassFilter({ rowNode: rowNode }); });\n };\n FullStore.prototype.clearDisplayIndexes = function () {\n var _this = this;\n this.displayIndexStart = undefined;\n this.displayIndexEnd = undefined;\n this.allRowNodes.forEach(function (rowNode) { return _this.blockUtils.clearDisplayIndex(rowNode); });\n };\n FullStore.prototype.getDisplayIndexEnd = function () {\n return this.displayIndexEnd;\n };\n FullStore.prototype.isDisplayIndexInStore = function (displayIndex) {\n if (this.getRowCount() === 0) {\n return false;\n }\n return displayIndex >= this.displayIndexStart && displayIndex < this.displayIndexEnd;\n };\n FullStore.prototype.setDisplayIndexes = function (displayIndexSeq, nextRowTop) {\n var _this = this;\n this.displayIndexStart = displayIndexSeq.peek();\n this.topPx = nextRowTop.value;\n var visibleNodeIds = {};\n // set on all visible nodes\n this.nodesAfterSort.forEach(function (rowNode) {\n _this.blockUtils.setDisplayIndex(rowNode, displayIndexSeq, nextRowTop);\n visibleNodeIds[rowNode.id] = true;\n });\n // and clear on all non-visible nodes\n this.allRowNodes.forEach(function (rowNode) {\n if (!visibleNodeIds[rowNode.id]) {\n _this.blockUtils.clearDisplayIndex(rowNode);\n }\n });\n this.displayIndexEnd = displayIndexSeq.peek();\n this.heightPx = nextRowTop.value - this.topPx;\n };\n FullStore.prototype.forEachStoreDeep = function (callback, sequence) {\n if (sequence === void 0) { sequence = new NumberSequence(); }\n callback(this, sequence.next());\n this.allRowNodes.forEach(function (rowNode) {\n var childCache = rowNode.childStore;\n if (childCache) {\n childCache.forEachStoreDeep(callback, sequence);\n }\n });\n };\n FullStore.prototype.forEachNodeDeep = function (callback, sequence) {\n if (sequence === void 0) { sequence = new NumberSequence(); }\n this.allRowNodes.forEach(function (rowNode) {\n callback(rowNode, sequence.next());\n var childCache = rowNode.childStore;\n if (childCache) {\n childCache.forEachNodeDeep(callback, sequence);\n }\n });\n };\n FullStore.prototype.forEachNodeDeepAfterFilterAndSort = function (callback, sequence, includeFooterNodes) {\n if (sequence === void 0) { sequence = new NumberSequence(); }\n if (includeFooterNodes === void 0) { includeFooterNodes = false; }\n this.nodesAfterSort.forEach(function (rowNode) {\n callback(rowNode, sequence.next());\n var childCache = rowNode.childStore;\n if (childCache) {\n childCache.forEachNodeDeepAfterFilterAndSort(callback, sequence, includeFooterNodes);\n }\n });\n if (includeFooterNodes && this.parentRowNode.sibling) {\n callback(this.parentRowNode.sibling, sequence.next());\n }\n };\n FullStore.prototype.getRowUsingDisplayIndex = function (displayRowIndex) {\n // this can happen if asking for a row that doesn't exist in the model,\n // eg if a cell range is selected, and the user filters so rows no longer exists\n if (!this.isDisplayIndexInStore(displayRowIndex)) {\n return undefined;\n }\n var res = this.blockUtils.binarySearchForDisplayIndex(displayRowIndex, this.nodesAfterSort);\n return res;\n };\n FullStore.prototype.getRowBounds = function (index) {\n for (var i = 0; i < this.nodesAfterSort.length; i++) {\n var rowNode = this.nodesAfterSort[i];\n var res = this.blockUtils.extractRowBounds(rowNode, index);\n if (res) {\n return res;\n }\n }\n return null;\n };\n FullStore.prototype.isPixelInRange = function (pixel) {\n return pixel >= this.topPx && pixel < (this.topPx + this.heightPx);\n };\n FullStore.prototype.getRowIndexAtPixel = function (pixel) {\n var _this = this;\n // if pixel before block, return first row\n var pixelBeforeThisStore = pixel <= this.topPx;\n if (pixelBeforeThisStore) {\n var firstNode = this.nodesAfterSort[0];\n return firstNode.rowIndex;\n }\n // if pixel after store, return last row, however the last\n // row could be a child store\n var pixelAfterThisStore = pixel >= (this.topPx + this.heightPx);\n if (pixelAfterThisStore) {\n var lastRowNode = this.nodesAfterSort[this.nodesAfterSort.length - 1];\n var lastRowNodeBottomPx = lastRowNode.rowTop + lastRowNode.rowHeight;\n if (pixel >= lastRowNodeBottomPx && lastRowNode.expanded) {\n if (lastRowNode.childStore && lastRowNode.childStore.getRowCount() > 0) {\n return lastRowNode.childStore.getRowIndexAtPixel(pixel);\n }\n if (lastRowNode.detailNode) {\n return lastRowNode.detailNode.rowIndex;\n }\n }\n return lastRowNode.rowIndex;\n }\n var res = null;\n this.nodesAfterSort.forEach(function (rowNode) {\n var res2 = _this.blockUtils.getIndexAtPixel(rowNode, pixel);\n if (res2 != null) {\n res = res2;\n }\n });\n var pixelIsPastLastRow = res == null;\n if (pixelIsPastLastRow) {\n return this.displayIndexEnd - 1;\n }\n return res;\n };\n FullStore.prototype.getChildStore = function (keys) {\n var _this = this;\n return this.storeUtils.getChildStore(keys, this, function (key) {\n var rowNode = _this.allRowNodes.find(function (currentRowNode) {\n return currentRowNode.key == key;\n });\n return rowNode;\n });\n };\n FullStore.prototype.forEachChildStoreShallow = function (callback) {\n this.allRowNodes.forEach(function (rowNode) {\n var childStore = rowNode.childStore;\n if (childStore) {\n callback(childStore);\n }\n });\n };\n FullStore.prototype.refreshAfterFilter = function (params) {\n var serverIsFiltering = this.storeUtils.isServerSideFilterOnServer();\n var storeIsImpacted = this.storeUtils.isServerRefreshNeeded(this.parentRowNode, this.ssrmParams.rowGroupCols, params);\n var serverIsFilteringAllLevels = !this.storeUtils.isServerSideOnlyRefreshFilteredGroups();\n if (serverIsFilteringAllLevels || (serverIsFiltering && storeIsImpacted)) {\n this.refreshStore(true);\n this.sortRowNodes();\n return;\n }\n this.filterRowNodes();\n this.sortRowNodes();\n this.forEachChildStoreShallow(function (store) { return store.refreshAfterFilter(params); });\n };\n FullStore.prototype.refreshAfterSort = function (params) {\n var serverIsSorting = this.storeUtils.isServerSideSortOnServer();\n var storeIsImpacted = this.storeUtils.isServerRefreshNeeded(this.parentRowNode, this.ssrmParams.rowGroupCols, params);\n var serverIsSortingAllLevels = this.storeUtils.isServerSideSortAllLevels();\n if (serverIsSortingAllLevels || (serverIsSorting && storeIsImpacted)) {\n this.refreshStore(true);\n this.filterRowNodes();\n return;\n }\n this.filterRowNodes();\n this.sortRowNodes();\n this.forEachChildStoreShallow(function (store) { return store.refreshAfterSort(params); });\n };\n FullStore.prototype.applyTransaction = function (transaction) {\n // we only apply transactions to loaded state\n switch (this.getState()) {\n case RowNodeBlock.STATE_FAILED:\n return { status: ServerSideTransactionResultStatus.StoreLoadingFailed };\n case RowNodeBlock.STATE_LOADING:\n return { status: ServerSideTransactionResultStatus.StoreLoading };\n case RowNodeBlock.STATE_WAITING_TO_LOAD:\n return { status: ServerSideTransactionResultStatus.StoreWaitingToLoad };\n }\n var applyCallback = this.gridOptionsService.getCallback('isApplyServerSideTransaction');\n if (applyCallback) {\n var params = {\n transaction: transaction,\n parentNode: this.parentRowNode,\n storeInfo: this.info,\n groupLevelInfo: this.info\n };\n var apply = applyCallback(params);\n if (!apply) {\n return { status: ServerSideTransactionResultStatus.Cancelled };\n }\n }\n var res = {\n status: ServerSideTransactionResultStatus.Applied,\n remove: [],\n update: [],\n add: []\n };\n var nodesToUnselect = [];\n this.executeAdd(transaction, res);\n this.executeRemove(transaction, res, nodesToUnselect);\n this.executeUpdate(transaction, res, nodesToUnselect);\n this.filterAndSortNodes();\n this.updateSelection(nodesToUnselect);\n return res;\n };\n FullStore.prototype.updateSelection = function (nodesToUnselect) {\n var selectionChanged = nodesToUnselect.length > 0;\n if (selectionChanged) {\n this.selectionService.setNodesSelected({\n newValue: false,\n nodes: nodesToUnselect,\n suppressFinishActions: true,\n clearSelection: false,\n source: 'rowDataChanged',\n });\n var event_1 = {\n type: Events.EVENT_SELECTION_CHANGED,\n source: 'rowDataChanged'\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n FullStore.prototype.executeAdd = function (rowDataTran, rowNodeTransaction) {\n var _this = this;\n var add = rowDataTran.add, addIndex = rowDataTran.addIndex;\n if (_.missingOrEmpty(add)) {\n return;\n }\n var useIndex = typeof addIndex === 'number' && addIndex >= 0;\n if (useIndex) {\n // items get inserted in reverse order for index insertion\n add.reverse().forEach(function (item) {\n var newRowNode = _this.createDataNode(item, addIndex);\n rowNodeTransaction.add.push(newRowNode);\n });\n }\n else {\n add.forEach(function (item) {\n var newRowNode = _this.createDataNode(item);\n rowNodeTransaction.add.push(newRowNode);\n });\n }\n };\n FullStore.prototype.executeRemove = function (rowDataTran, rowNodeTransaction, nodesToUnselect) {\n var _this = this;\n var remove = rowDataTran.remove;\n if (remove == null) {\n return;\n }\n var rowIdsRemoved = {};\n remove.forEach(function (item) {\n var rowNode = _this.lookupRowNode(item);\n if (!rowNode) {\n return;\n }\n // do delete - setting 'suppressFinishActions = true' to ensure EVENT_SELECTION_CHANGED is not raised for\n // each row node updated, instead it is raised once by the calling code if any selected nodes exist.\n if (rowNode.isSelected()) {\n nodesToUnselect.push(rowNode);\n }\n // so row renderer knows to fade row out (and not reposition it)\n rowNode.clearRowTopAndRowIndex();\n // NOTE: were we could remove from allLeaveChildren, however _.removeFromArray() is expensive, especially\n // if called multiple times (eg deleting lots of rows) and if allLeafChildren is a large list\n rowIdsRemoved[rowNode.id] = true;\n // _.removeFromArray(this.rootNode.allLeafChildren, rowNode);\n delete _this.allNodesMap[rowNode.id];\n rowNodeTransaction.remove.push(rowNode);\n _this.nodeManager.removeNode(rowNode);\n });\n this.allRowNodes = this.allRowNodes.filter(function (rowNode) { return !rowIdsRemoved[rowNode.id]; });\n };\n FullStore.prototype.executeUpdate = function (rowDataTran, rowNodeTransaction, nodesToUnselect) {\n var _this = this;\n var update = rowDataTran.update;\n if (update == null) {\n return;\n }\n update.forEach(function (item) {\n var rowNode = _this.lookupRowNode(item);\n if (!rowNode) {\n return;\n }\n _this.blockUtils.updateDataIntoRowNode(rowNode, item);\n if (!rowNode.selectable && rowNode.isSelected()) {\n nodesToUnselect.push(rowNode);\n }\n rowNodeTransaction.update.push(rowNode);\n });\n };\n FullStore.prototype.lookupRowNode = function (data) {\n var getRowIdFunc = this.gridOptionsService.getCallback('getRowId');\n var rowNode;\n if (getRowIdFunc != null) {\n // find rowNode using id\n var level = this.level;\n var parentKeys = this.parentRowNode.getGroupKeys();\n var id = getRowIdFunc({\n data: data,\n parentKeys: parentKeys.length > 0 ? parentKeys : undefined,\n level: level,\n });\n rowNode = this.allNodesMap[id];\n if (!rowNode) {\n console.error(\"AG Grid: could not find row id=\" + id + \", data item was not found for this id\");\n return null;\n }\n }\n else {\n // find rowNode using object references\n rowNode = this.allRowNodes.find(function (currentRowNode) { return currentRowNode.data === data; });\n if (!rowNode) {\n console.error(\"AG Grid: could not find data item as object was not found\", data);\n return null;\n }\n }\n return rowNode;\n };\n FullStore.prototype.addStoreStates = function (result) {\n result.push({\n suppressInfiniteScroll: true,\n route: this.parentRowNode.getGroupKeys(),\n rowCount: this.allRowNodes.length,\n info: this.info\n });\n this.forEachChildStoreShallow(function (childStore) { return childStore.addStoreStates(result); });\n };\n FullStore.prototype.refreshStore = function (purge) {\n if (purge) {\n var loadingRowsToShow = this.nodesAfterSort ? this.nodesAfterSort.length : 1;\n this.initialiseRowNodes(loadingRowsToShow);\n }\n this.scheduleLoad();\n this.fireStoreUpdatedEvent();\n };\n FullStore.prototype.retryLoads = function () {\n if (this.getState() === RowNodeBlock.STATE_FAILED) {\n this.initialiseRowNodes(1);\n this.scheduleLoad();\n }\n this.forEachChildStoreShallow(function (store) { return store.retryLoads(); });\n };\n FullStore.prototype.scheduleLoad = function () {\n this.setStateWaitingToLoad();\n this.rowNodeBlockLoader.checkBlockToLoad();\n };\n // gets called 1) row count changed 2) cache purged 3) items inserted\n FullStore.prototype.fireStoreUpdatedEvent = function () {\n // this results in row model firing ModelUpdated.\n // server side row model also updates the row indexes first\n var event = {\n type: Events.EVENT_STORE_UPDATED\n };\n this.eventService.dispatchEvent(event);\n };\n FullStore.prototype.getRowCount = function () {\n return this.nodesAfterSort.length;\n };\n FullStore.prototype.getTopLevelRowDisplayedIndex = function (topLevelIndex) {\n var rowNode = this.nodesAfterSort[topLevelIndex];\n return rowNode.rowIndex;\n };\n FullStore.prototype.isLastRowIndexKnown = function () {\n return this.getState() == RowNodeBlock.STATE_LOADED;\n };\n FullStore.prototype.getRowNodesInRange = function (firstInRange, lastInRange) {\n var result = [];\n var inActiveRange = false;\n // if only one node passed, we start the selection at the top\n if (_.missing(firstInRange)) {\n inActiveRange = true;\n }\n this.nodesAfterSort.forEach(function (rowNode) {\n var hitFirstOrLast = rowNode === firstInRange || rowNode === lastInRange;\n if (inActiveRange || hitFirstOrLast) {\n result.push(rowNode);\n }\n if (hitFirstOrLast) {\n inActiveRange = !inActiveRange;\n }\n });\n // inActiveRange will be still true if we never hit the second rowNode\n var invalidRange = inActiveRange;\n return invalidRange ? [] : result;\n };\n FullStore.prototype.getStoreBounds = function () {\n return {\n topPx: this.topPx,\n heightPx: this.heightPx,\n };\n };\n __decorate$u([\n Autowired('ssrmStoreUtils')\n ], FullStore.prototype, \"storeUtils\", void 0);\n __decorate$u([\n Autowired('ssrmBlockUtils')\n ], FullStore.prototype, \"blockUtils\", void 0);\n __decorate$u([\n Autowired('columnModel')\n ], FullStore.prototype, \"columnModel\", void 0);\n __decorate$u([\n Autowired('rowNodeBlockLoader')\n ], FullStore.prototype, \"rowNodeBlockLoader\", void 0);\n __decorate$u([\n Autowired('rowNodeSorter')\n ], FullStore.prototype, \"rowNodeSorter\", void 0);\n __decorate$u([\n Autowired('sortController')\n ], FullStore.prototype, \"sortController\", void 0);\n __decorate$u([\n Autowired('selectionService')\n ], FullStore.prototype, \"selectionService\", void 0);\n __decorate$u([\n Autowired('ssrmNodeManager')\n ], FullStore.prototype, \"nodeManager\", void 0);\n __decorate$u([\n Autowired('filterManager')\n ], FullStore.prototype, \"filterManager\", void 0);\n __decorate$u([\n Autowired('ssrmTransactionManager')\n ], FullStore.prototype, \"transactionManager\", void 0);\n __decorate$u([\n Autowired('rowModel')\n ], FullStore.prototype, \"serverSideRowModel\", void 0);\n __decorate$u([\n PostConstruct\n ], FullStore.prototype, \"postConstruct\", null);\n __decorate$u([\n PreDestroy\n ], FullStore.prototype, \"destroyRowNodes\", null);\n return FullStore;\n}(RowNodeBlock));\n\nvar __extends$v = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$t = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$7 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar LazyBlockLoader = /** @class */ (function (_super) {\n __extends$v(LazyBlockLoader, _super);\n function LazyBlockLoader(cache, parentNode, storeParams) {\n var _this = _super.call(this) || this;\n _this.loadingNodes = new Set();\n _this.checkForLoadQueued = false;\n _this.loaderTimeout = undefined;\n _this.nextBlockToLoad = undefined;\n _this.parentNode = parentNode;\n _this.cache = cache;\n _this.storeParams = storeParams;\n return _this;\n }\n LazyBlockLoader.prototype.init = function () {\n var _this = this;\n this.addManagedListener(this.rowNodeBlockLoader, RowNodeBlockLoader.BLOCK_LOADED_EVENT, function () { return _this.queueLoadAction(); });\n };\n LazyBlockLoader.prototype.isRowLoading = function (index) {\n return this.loadingNodes.has(index);\n };\n LazyBlockLoader.prototype.getBlockToLoad = function () {\n var _this = this;\n var _a;\n var firstRowInViewport = this.api.getFirstDisplayedRow();\n var lastRowInViewport = this.api.getLastDisplayedRow();\n // quick look-up for priority rows needing loading in viewport.\n for (var i = firstRowInViewport; i <= lastRowInViewport; i++) {\n var node = this.cache.getNodeCachedByDisplayIndex(i);\n if (!node) {\n // if no row details, ignore, as row hasn't been created\n // and it's too expensive to work out its location here\n continue;\n }\n var lazyNode = this.cache.getNodes().getBy('node', node);\n if (!lazyNode) {\n continue;\n }\n if (this.isRowLoading(lazyNode.index)) {\n continue;\n }\n if (node.__needsRefreshWhenVisible || (node.stub && !node.failedLoad)) {\n return this.getBlockStartIndexForIndex(lazyNode.index);\n }\n }\n var nodesToRefresh = this.cache.getNodesToRefresh();\n var nodeToRefresh = null;\n var nodeToRefreshDist = Number.MAX_SAFE_INTEGER;\n nodesToRefresh.forEach(function (node) {\n if (node.rowIndex == null) {\n nodeToRefresh = node;\n return;\n }\n if (_this.isRowLoading(node.rowIndex)) {\n return;\n }\n var distToViewportTop = Math.abs(firstRowInViewport - node.rowIndex);\n var distToViewportBottom = Math.abs(node.rowIndex - lastRowInViewport);\n if (distToViewportTop < nodeToRefreshDist) {\n nodeToRefresh = node;\n nodeToRefreshDist = distToViewportTop;\n }\n if (distToViewportBottom < nodeToRefreshDist) {\n nodeToRefresh = node;\n nodeToRefreshDist = distToViewportBottom;\n }\n });\n var lazyIndex = (_a = this.cache.getNodes().getBy('node', nodeToRefresh)) === null || _a === void 0 ? void 0 : _a.index;\n return lazyIndex == null ? undefined : this.getBlockStartIndexForIndex(lazyIndex);\n };\n LazyBlockLoader.prototype.reset = function () {\n this.loadingNodes.clear();\n clearTimeout(this.loaderTimeout);\n this.loaderTimeout = undefined;\n };\n LazyBlockLoader.prototype.executeLoad = function (startRow, endRow) {\n var _this = this;\n var _a;\n var ssrmParams = this.cache.getSsrmParams();\n var request = {\n startRow: startRow,\n endRow: endRow,\n rowGroupCols: ssrmParams.rowGroupCols,\n valueCols: ssrmParams.valueCols,\n pivotCols: ssrmParams.pivotCols,\n pivotMode: ssrmParams.pivotMode,\n groupKeys: this.parentNode.getGroupKeys(),\n filterModel: ssrmParams.filterModel,\n sortModel: ssrmParams.sortModel,\n };\n var removeNodesFromLoadingMap = function () {\n for (var i = 0; i < endRow - startRow; i++) {\n _this.loadingNodes.delete(startRow + i);\n }\n };\n var addNodesToLoadingMap = function () {\n for (var i = 0; i < endRow - startRow; i++) {\n _this.loadingNodes.add(startRow + i);\n }\n };\n var success = function (params) {\n _this.rowNodeBlockLoader.loadComplete();\n _this.cache.onLoadSuccess(startRow, endRow - startRow, params);\n removeNodesFromLoadingMap();\n _this.queueLoadAction();\n };\n var fail = function () {\n _this.rowNodeBlockLoader.loadComplete();\n _this.cache.onLoadFailed(startRow, endRow - startRow);\n removeNodesFromLoadingMap();\n _this.queueLoadAction();\n };\n var params = {\n request: request,\n successCallback: function (rowData, rowCount) { return success({ rowData: rowData, rowCount: rowCount }); },\n success: success,\n failCallback: fail,\n fail: fail,\n parentNode: this.parentNode,\n api: this.api,\n columnApi: this.columnApi,\n context: this.gridOptionsService.context\n };\n addNodesToLoadingMap();\n (_a = this.cache.getSsrmParams().datasource) === null || _a === void 0 ? void 0 : _a.getRows(params);\n };\n LazyBlockLoader.prototype.getNextBlockToLoad = function () {\n var result = this.getBlockToLoad();\n if (result != null) {\n return [String(result), result + this.getBlockSize()];\n }\n return null;\n };\n LazyBlockLoader.prototype.queueLoadCheck = function () {\n var _this = this;\n // already going to check next cycle, ignore.\n if (this.checkForLoadQueued) {\n return;\n }\n this.checkForLoadQueued = true;\n window.queueMicrotask(function () {\n _this.checkForLoadQueued = false;\n _this.queueLoadAction();\n });\n };\n LazyBlockLoader.prototype.queueLoadAction = function () {\n var _this = this;\n var _a;\n var nextBlockToLoad = this.getNextBlockToLoad();\n if (!nextBlockToLoad) {\n // there's no block we should be loading right now, clear the timeouts\n window.clearTimeout(this.loaderTimeout);\n this.loaderTimeout = undefined;\n this.nextBlockToLoad = undefined;\n return;\n }\n // if the next required block has changed, reset the loading timeout\n if (!this.nextBlockToLoad || (this.nextBlockToLoad[0] !== nextBlockToLoad[0] && this.nextBlockToLoad[1] !== nextBlockToLoad[1])) {\n this.nextBlockToLoad = nextBlockToLoad;\n window.clearTimeout(this.loaderTimeout);\n var _b = __read$7(this.nextBlockToLoad, 2), startRowString = _b[0], endRow_1 = _b[1];\n var startRow_1 = Number(startRowString);\n this.loaderTimeout = window.setTimeout(function () {\n if (!_this.cache.isAlive()) {\n return;\n }\n _this.loaderTimeout = undefined;\n _this.attemptLoad(startRow_1, endRow_1);\n _this.nextBlockToLoad = undefined;\n }, (_a = this.gridOptionsService.getNum('blockLoadDebounceMillis')) !== null && _a !== void 0 ? _a : 0);\n }\n };\n LazyBlockLoader.prototype.attemptLoad = function (start, end) {\n var availableLoadingCount = this.rowNodeBlockLoader.getAvailableLoadingCount();\n // too many loads already, ignore the request as a successful request will requeue itself anyway\n if (availableLoadingCount != null && availableLoadingCount === 0) {\n return;\n }\n this.rowNodeBlockLoader.registerLoads(1);\n this.executeLoad(start, end);\n this.queueLoadAction();\n };\n LazyBlockLoader.prototype.getBlockSize = function () {\n return this.storeParams.cacheBlockSize || LazyBlockLoader.DEFAULT_BLOCK_SIZE;\n };\n LazyBlockLoader.prototype.getBlockStartIndexForIndex = function (storeIndex) {\n var blockSize = this.getBlockSize();\n return storeIndex - (storeIndex % blockSize);\n };\n LazyBlockLoader.prototype.getBlockBoundsForIndex = function (storeIndex) {\n var startOfBlock = this.getBlockStartIndexForIndex(storeIndex);\n var blockSize = this.getBlockSize();\n return [startOfBlock, startOfBlock + blockSize];\n };\n LazyBlockLoader.DEFAULT_BLOCK_SIZE = 100;\n __decorate$t([\n Autowired('gridApi')\n ], LazyBlockLoader.prototype, \"api\", void 0);\n __decorate$t([\n Autowired('columnApi')\n ], LazyBlockLoader.prototype, \"columnApi\", void 0);\n __decorate$t([\n Autowired('rowNodeBlockLoader')\n ], LazyBlockLoader.prototype, \"rowNodeBlockLoader\", void 0);\n __decorate$t([\n PostConstruct\n ], LazyBlockLoader.prototype, \"init\", null);\n return LazyBlockLoader;\n}(BeanStub));\n\nvar MultiIndexMap = /** @class */ (function () {\n function MultiIndexMap() {\n var indexes = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n indexes[_i] = arguments[_i];\n }\n if (indexes.length < 1) {\n throw new Error('AG Grid: At least one index must be provided.');\n }\n this.indexes = indexes;\n this.maps = new Map(this.indexes.map(function (index) { return [index, new Map()]; }));\n }\n MultiIndexMap.prototype.getBy = function (index, key) {\n var map = this.maps.get(index);\n if (!map) {\n throw new Error(\"AG Grid: \" + String(index) + \" not found\");\n }\n return map.get(key);\n };\n MultiIndexMap.prototype.set = function (item) {\n var _this = this;\n this.indexes.forEach(function (index) {\n var map = _this.maps.get(index);\n if (!map) {\n throw new Error(\"AG Grid: \" + String(index) + \" not found\");\n }\n map.set(item[index], item);\n });\n };\n MultiIndexMap.prototype.delete = function (item) {\n var _this = this;\n this.indexes.forEach(function (index) {\n var map = _this.maps.get(index);\n if (!map) {\n throw new Error(\"AG Grid: \" + String(index) + \" not found\");\n }\n map.delete(item[index]);\n });\n };\n MultiIndexMap.prototype.clear = function () {\n this.maps.forEach(function (map) { return map.clear(); });\n };\n MultiIndexMap.prototype.getIterator = function (index) {\n var map = this.maps.get(index);\n if (!map) {\n throw new Error(\"AG Grid: \" + String(index) + \" not found\");\n }\n return map.values();\n };\n MultiIndexMap.prototype.forEach = function (callback) {\n var iterator = this.getIterator(this.indexes[0]);\n var pointer;\n while (pointer = iterator.next()) {\n if (pointer.done)\n break;\n callback(pointer.value);\n }\n };\n MultiIndexMap.prototype.find = function (callback) {\n var iterator = this.getIterator(this.indexes[0]);\n var pointer;\n while (pointer = iterator.next()) {\n if (pointer.done)\n break;\n if (callback(pointer.value)) {\n return pointer.value;\n }\n }\n };\n MultiIndexMap.prototype.filter = function (predicate) {\n var iterator = this.getIterator(this.indexes[0]);\n var pointer;\n var result = [];\n while (pointer = iterator.next()) {\n if (pointer.done)\n break;\n if (predicate(pointer.value)) {\n result.push(pointer.value);\n }\n }\n return result;\n };\n return MultiIndexMap;\n}());\n\nvar __extends$u = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$s = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$6 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$5 = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar LazyCache = /** @class */ (function (_super) {\n __extends$u(LazyCache, _super);\n function LazyCache(store, numberOfRows, storeParams) {\n var _this = _super.call(this) || this;\n /**\n * Indicates whether this is still the live dataset for this store (used for ignoring old requests after purge)\n */\n _this.live = true;\n /**\n * A cache of removed group nodes, this is retained for preserving group\n * state when the node moves in and out of the cache. Generally caused by\n * rows moving blocks.\n */\n _this.removedNodeCache = new Map();\n _this.store = store;\n _this.numberOfRows = numberOfRows;\n _this.isLastRowKnown = false;\n _this.storeParams = storeParams;\n return _this;\n }\n LazyCache.prototype.init = function () {\n // initiate the node map to be indexed at 'index', 'id' and 'node' for quick look-up.\n // it's important id isn't first, as stub nodes overwrite each-other, and the first index is\n // used for iteration.\n this.nodeMap = new MultiIndexMap('index', 'id', 'node');\n this.nodeDisplayIndexMap = new Map();\n this.nodesToRefresh = new Set();\n this.defaultNodeIdPrefix = this.blockUtils.createNodeIdPrefix(this.store.getParentNode());\n this.rowLoader = this.createManagedBean(new LazyBlockLoader(this, this.store.getParentNode(), this.storeParams));\n this.getRowIdFunc = this.gridOptionsService.getCallback('getRowId');\n this.isMasterDetail = this.gridOptionsService.is('masterDetail');\n };\n LazyCache.prototype.destroyRowNodes = function () {\n var _this = this;\n this.numberOfRows = 0;\n this.nodeMap.forEach(function (node) { return _this.blockUtils.destroyRowNode(node.node); });\n this.nodeMap.clear();\n this.nodeDisplayIndexMap.clear();\n this.nodesToRefresh.clear();\n this.live = false;\n };\n /**\n * Get the row node for a specific display index from this store\n * @param displayIndex the display index of the node to find\n * @returns undefined if the node is not in the store bounds, otherwise will always return a node\n */\n LazyCache.prototype.getRowByDisplayIndex = function (displayIndex) {\n var _a, _b, _c, _d;\n // if index isn't in store, nothing to return\n if (!this.store.isDisplayIndexInStore(displayIndex)) {\n return undefined;\n }\n // first try to directly look this node up in the display index map\n var node = this.nodeDisplayIndexMap.get(displayIndex);\n if (node) {\n // if we have the node, check if it needs refreshed when rendered\n if (node.stub || node.__needsRefreshWhenVisible) {\n this.rowLoader.queueLoadCheck();\n }\n return node;\n }\n // next check if this is the first row, if so return a stub node\n // this is a performance optimisation, as it is the most common scenario\n // and enables the node - 1 check to kick in more often.\n if (displayIndex === this.store.getDisplayIndexStart()) {\n return this.createStubNode(0, displayIndex);\n }\n // check if the row immediately prior is available in the store\n var contiguouslyPreviousNode = this.nodeDisplayIndexMap.get(displayIndex - 1);\n if (contiguouslyPreviousNode) {\n // if previous row is master detail, and expanded, this node must be detail\n if (this.isMasterDetail && contiguouslyPreviousNode.master && contiguouslyPreviousNode.expanded) {\n return contiguouslyPreviousNode.detailNode;\n }\n // if previous row is expanded group, this node will belong to that group.\n if (contiguouslyPreviousNode.expanded && ((_a = contiguouslyPreviousNode.childStore) === null || _a === void 0 ? void 0 : _a.isDisplayIndexInStore(displayIndex))) {\n return (_b = contiguouslyPreviousNode.childStore) === null || _b === void 0 ? void 0 : _b.getRowUsingDisplayIndex(displayIndex);\n }\n // otherwise, row must be a stub node\n var lazyCacheNode = this.nodeMap.getBy('node', contiguouslyPreviousNode);\n return this.createStubNode(lazyCacheNode.index + 1, displayIndex);\n }\n var adjacentNodes = this.getSurroundingNodesByDisplayIndex(displayIndex);\n // if no bounds skipped includes this, calculate from end index\n if (adjacentNodes == null) {\n var storeIndexFromEndIndex_1 = this.store.getRowCount() - (this.store.getDisplayIndexEnd() - displayIndex);\n return this.createStubNode(storeIndexFromEndIndex_1, displayIndex);\n }\n var previousNode = adjacentNodes.previousNode, nextNode = adjacentNodes.nextNode;\n // if the node before this node is expanded, this node might be a child of that node\n if (previousNode && previousNode.node.expanded && ((_c = previousNode.node.childStore) === null || _c === void 0 ? void 0 : _c.isDisplayIndexInStore(displayIndex))) {\n return (_d = previousNode.node.childStore) === null || _d === void 0 ? void 0 : _d.getRowUsingDisplayIndex(displayIndex);\n }\n // if we have the node after this node, we can calculate the store index of this node by the difference\n // in display indexes between the two nodes.\n if (nextNode) {\n var displayIndexDiff = nextNode.node.rowIndex - displayIndex;\n var newStoreIndex = nextNode.index - displayIndexDiff;\n return this.createStubNode(newStoreIndex, displayIndex);\n }\n // if no next node, calculate from end index of this store\n var storeIndexFromEndIndex = this.store.getRowCount() - (this.store.getDisplayIndexEnd() - displayIndex);\n return this.createStubNode(storeIndexFromEndIndex, displayIndex);\n };\n /**\n * Used for creating and positioning a stub node without firing a store updated event\n */\n LazyCache.prototype.createStubNode = function (storeIndex, displayIndex) {\n var _this = this;\n // bounds are acquired before creating the node, as otherwise it'll use it's own empty self to calculate\n var rowBounds = this.store.getRowBounds(displayIndex);\n var newNode = this.createRowAtIndex(storeIndex, null, function (node) {\n node.setRowIndex(displayIndex);\n node.setRowTop(rowBounds.rowTop);\n _this.nodeDisplayIndexMap.set(displayIndex, node);\n });\n this.rowLoader.queueLoadCheck();\n return newNode;\n };\n /**\n * @param index The row index relative to this store\n * @returns A rowNode at the given store index\n */\n LazyCache.prototype.getRowByStoreIndex = function (index) {\n var _a;\n return (_a = this.nodeMap.getBy('index', index)) === null || _a === void 0 ? void 0 : _a.node;\n };\n /**\n * Given a number of rows, skips through the given sequence & row top reference (using default row height)\n * @param numberOfRowsToSkip number of rows to skip over in the given sequence\n * @param displayIndexSeq the sequence in which to skip\n * @param nextRowTop the row top reference in which to skip\n */\n LazyCache.prototype.skipDisplayIndexes = function (numberOfRowsToSkip, displayIndexSeq, nextRowTop) {\n if (numberOfRowsToSkip === 0) {\n return;\n }\n var defaultRowHeight = this.gridOptionsService.getRowHeightAsNumber();\n displayIndexSeq.skip(numberOfRowsToSkip);\n nextRowTop.value += numberOfRowsToSkip * defaultRowHeight;\n };\n /**\n * @param displayIndexSeq the number sequence for generating the display index of each row\n * @param nextRowTop an object containing the next row top value intended to be modified by ref per row\n */\n LazyCache.prototype.setDisplayIndexes = function (displayIndexSeq, nextRowTop) {\n // Create a map of display index nodes for access speed\n this.nodeDisplayIndexMap.clear();\n // create an object indexed by store index, as this will sort all of the nodes when we iterate\n // the object\n var orderedMap = {};\n this.nodeMap.forEach(function (lazyNode) {\n orderedMap[lazyNode.index] = lazyNode.node;\n });\n var lastIndex = -1;\n // iterate over the nodes in order, setting the display index on each node.\n for (var stringIndex in orderedMap) {\n var node = orderedMap[stringIndex];\n var numericIndex = Number(stringIndex);\n // if any nodes aren't currently in the store, skip the display indexes too\n var numberOfRowsToSkip_1 = (numericIndex - 1) - lastIndex;\n this.skipDisplayIndexes(numberOfRowsToSkip_1, displayIndexSeq, nextRowTop);\n // set this nodes index and row top\n this.blockUtils.setDisplayIndex(node, displayIndexSeq, nextRowTop);\n this.nodeDisplayIndexMap.set(node.rowIndex, node);\n // store this index for skipping after this\n lastIndex = numericIndex;\n }\n // need to skip rows until the end of this store\n var numberOfRowsToSkip = (this.numberOfRows - 1) - lastIndex;\n this.skipDisplayIndexes(numberOfRowsToSkip, displayIndexSeq, nextRowTop);\n // this is not terribly efficient, and could probs be improved\n this.purgeExcessRows();\n };\n LazyCache.prototype.getRowCount = function () {\n return this.numberOfRows;\n };\n LazyCache.prototype.setRowCount = function (rowCount, isLastRowIndexKnown) {\n if (rowCount < 0) {\n throw new Error('AG Grid: setRowCount can only accept a positive row count.');\n }\n this.numberOfRows = rowCount;\n if (isLastRowIndexKnown != null) {\n this.isLastRowKnown = isLastRowIndexKnown;\n if (isLastRowIndexKnown === false) {\n this.numberOfRows += 1;\n }\n }\n this.fireStoreUpdatedEvent();\n };\n LazyCache.prototype.getNodes = function () {\n return this.nodeMap;\n };\n LazyCache.prototype.getNodeCachedByDisplayIndex = function (displayIndex) {\n var _a;\n return (_a = this.nodeDisplayIndexMap.get(displayIndex)) !== null && _a !== void 0 ? _a : null;\n };\n LazyCache.prototype.getNodesToRefresh = function () {\n return this.nodesToRefresh;\n };\n /**\n * @returns the previous and next loaded row nodes surrounding the given display index\n */\n LazyCache.prototype.getSurroundingNodesByDisplayIndex = function (displayIndex) {\n var nextNode;\n var previousNode;\n this.nodeMap.forEach(function (lazyNode) {\n // previous node\n if (displayIndex > lazyNode.node.rowIndex) {\n // get the largest previous node\n if (previousNode == null || previousNode.node.rowIndex < lazyNode.node.rowIndex) {\n previousNode = lazyNode;\n }\n return;\n }\n // next node\n // get the smallest next node\n if (nextNode == null || nextNode.node.rowIndex > lazyNode.node.rowIndex) {\n nextNode = lazyNode;\n return;\n }\n });\n if (!previousNode && !nextNode)\n return null;\n return { previousNode: previousNode, nextNode: nextNode };\n };\n /**\n * Get or calculate the display index for a given store index\n * @param storeIndex the rows index within this store\n * @returns the rows visible display index relative to the grid\n */\n LazyCache.prototype.getDisplayIndexFromStoreIndex = function (storeIndex) {\n var _a, _b;\n var nodeAtIndex = this.nodeMap.getBy('index', storeIndex);\n if (nodeAtIndex) {\n return nodeAtIndex.node.rowIndex;\n }\n var nextNode;\n var previousNode;\n this.nodeMap.forEach(function (lazyNode) {\n // previous node\n if (storeIndex > lazyNode.index) {\n // get the largest previous node\n if (previousNode == null || previousNode.index < lazyNode.index) {\n previousNode = lazyNode;\n }\n return;\n }\n // next node\n // get the smallest next node\n if (nextNode == null || nextNode.index > lazyNode.index) {\n nextNode = lazyNode;\n return;\n }\n });\n if (!nextNode) {\n return this.store.getDisplayIndexEnd() - (this.numberOfRows - storeIndex);\n }\n if (!previousNode) {\n return this.store.getDisplayIndexStart() + storeIndex;\n }\n var storeIndexDiff = storeIndex - previousNode.index;\n var previousDisplayIndex = ((_b = (_a = previousNode.node.childStore) === null || _a === void 0 ? void 0 : _a.getDisplayIndexEnd()) !== null && _b !== void 0 ? _b : previousNode.node.rowIndex);\n return previousDisplayIndex + storeIndexDiff;\n };\n /**\n * Creates a new row and inserts it at the given index\n * @param atStoreIndex the node index relative to this store\n * @param data the data object to populate the node with\n * @returns the new row node\n */\n LazyCache.prototype.createRowAtIndex = function (atStoreIndex, data, createNodeCallback) {\n var _a, _b;\n // make sure an existing node isn't being overwritten\n var lazyNode = this.nodeMap.getBy('index', atStoreIndex);\n // if node already exists, update it or destroy it\n if (lazyNode) {\n var node = lazyNode.node;\n node.__needsRefreshWhenVisible = false;\n // if the node is the same, just update the content\n if (this.doesNodeMatch(data, node)) {\n this.blockUtils.updateDataIntoRowNode(node, data);\n this.nodesToRefresh.delete(node);\n return node;\n }\n // if there's no id and this is an open group, protect this node from changes\n // hasChildren also checks for tree data and master detail\n if (this.getRowIdFunc == null && node.hasChildren() && node.expanded) {\n this.nodesToRefresh.delete(node);\n return node;\n }\n // destroy the old node, might be worth caching state here\n this.destroyRowAtIndex(atStoreIndex);\n }\n // if the node already exists elsewhere, update it and move it to the new location\n if (data && this.getRowIdFunc != null) {\n var id = this.getRowId(data);\n // the node was deleted at some point, but as we're refreshing\n // it's been cached and we can retrieve it for reuse.\n var deletedNode = id && ((_a = this.removedNodeCache) === null || _a === void 0 ? void 0 : _a.get(id));\n if (deletedNode) {\n (_b = this.removedNodeCache) === null || _b === void 0 ? void 0 : _b.delete(id);\n this.blockUtils.updateDataIntoRowNode(deletedNode, data);\n this.nodeMap.set({\n id: deletedNode.id,\n node: deletedNode,\n index: atStoreIndex\n });\n return deletedNode;\n }\n var lazyNode_1 = this.nodeMap.getBy('id', id);\n if (lazyNode_1) {\n // delete old lazy node so we can insert it at different location\n this.nodeMap.delete(lazyNode_1);\n var node = lazyNode_1.node, index = lazyNode_1.index;\n this.blockUtils.updateDataIntoRowNode(node, data);\n this.nodeMap.set({\n id: node.id,\n node: node,\n index: atStoreIndex\n });\n this.nodesToRefresh.delete(node);\n if (this.rowLoader.getBlockStartIndexForIndex(index) === this.rowLoader.getBlockStartIndexForIndex(atStoreIndex)) {\n // if the block hasn't changed and we have a nodes map, we don't need to refresh the original block, as this block\n // has just been refreshed.\n return node;\n }\n // mark all of the old block as needsVerify to trigger it for a refresh, as nodes\n // should not be out of place\n this.markBlockForVerify(index);\n return node;\n }\n }\n // node doesn't exist, create a new one\n var newNode = this.blockUtils.createRowNode(this.store.getRowDetails());\n if (data != null) {\n var defaultId = this.getPrefixedId(this.store.getIdSequence().next());\n this.blockUtils.setDataIntoRowNode(newNode, data, defaultId, undefined);\n this.blockUtils.checkOpenByDefault(newNode);\n this.nodeManager.addRowNode(newNode);\n }\n // add the new node to the store, has to be done after the display index is calculated so it doesn't take itself into account\n this.nodeMap.set({\n id: newNode.id,\n node: newNode,\n index: atStoreIndex,\n });\n if (createNodeCallback) {\n createNodeCallback(newNode);\n }\n return newNode;\n };\n LazyCache.prototype.getBlockStates = function () {\n var _this = this;\n var blockCounts = {};\n var blockStates = {};\n this.nodeMap.forEach(function (_a) {\n var _b;\n var node = _a.node, index = _a.index;\n var blockStart = _this.rowLoader.getBlockStartIndexForIndex(index);\n if (!node.stub && !node.failedLoad) {\n blockCounts[blockStart] = ((_b = blockCounts[blockStart]) !== null && _b !== void 0 ? _b : 0) + 1;\n }\n var rowState = 'loaded';\n if (node.failedLoad) {\n rowState = 'failed';\n }\n else if (_this.rowLoader.isRowLoading(blockStart)) {\n rowState = 'loading';\n }\n else if (_this.nodesToRefresh.has(node) || node.stub) {\n rowState = 'needsLoading';\n }\n if (!blockStates[blockStart]) {\n blockStates[blockStart] = new Set();\n }\n blockStates[blockStart].add(rowState);\n });\n var statePriorityMap = {\n loading: 4,\n failed: 3,\n needsLoading: 2,\n loaded: 1,\n };\n var blockPrefix = this.blockUtils.createNodeIdPrefix(this.store.getParentNode());\n var results = {};\n Object.entries(blockStates).forEach(function (_a) {\n var _b;\n var _c = __read$6(_a, 2), blockStart = _c[0], uniqueStates = _c[1];\n var sortedStates = __spreadArray$5([], __read$6(uniqueStates)).sort(function (a, b) { var _a, _b; return ((_a = statePriorityMap[a]) !== null && _a !== void 0 ? _a : 0) - ((_b = statePriorityMap[b]) !== null && _b !== void 0 ? _b : 0); });\n var priorityState = sortedStates[0];\n var blockNumber = Number(blockStart) / _this.rowLoader.getBlockSize();\n var blockId = blockPrefix ? blockPrefix + \"-\" + blockNumber : String(blockNumber);\n results[blockId] = {\n blockNumber: blockNumber,\n startRow: Number(blockStart),\n endRow: Number(blockStart) + _this.rowLoader.getBlockSize(),\n pageStatus: priorityState,\n loadedRowCount: (_b = blockCounts[blockStart]) !== null && _b !== void 0 ? _b : 0,\n };\n });\n return results;\n };\n LazyCache.prototype.destroyRowAtIndex = function (atStoreIndex) {\n var lazyNode = this.nodeMap.getBy('index', atStoreIndex);\n if (!lazyNode) {\n return;\n }\n this.nodeMap.delete(lazyNode);\n this.nodeDisplayIndexMap.delete(lazyNode.node.rowIndex);\n if (lazyNode.node.hasChildren() && this.nodesToRefresh.size > 0) {\n // while refreshing, we retain the group nodes so they can be moved\n // without losing state\n this.removedNodeCache.set(lazyNode.node.id, lazyNode.node);\n }\n else {\n this.blockUtils.destroyRowNode(lazyNode.node);\n }\n this.nodesToRefresh.delete(lazyNode.node);\n };\n LazyCache.prototype.getSsrmParams = function () {\n return this.store.getSsrmParams();\n };\n /**\n * @param id the base id to be prefixed\n * @returns a node id with prefix if required\n */\n LazyCache.prototype.getPrefixedId = function (id) {\n if (this.defaultNodeIdPrefix) {\n return this.defaultNodeIdPrefix + '-' + id;\n }\n else {\n return id.toString();\n }\n };\n LazyCache.prototype.markBlockForVerify = function (rowIndex) {\n var _a = __read$6(this.rowLoader.getBlockBoundsForIndex(rowIndex), 2), start = _a[0], end = _a[1];\n var lazyNodesInRange = this.nodeMap.filter(function (lazyNode) { return lazyNode.index >= start && lazyNode.index < end; });\n lazyNodesInRange.forEach(function (_a) {\n var node = _a.node;\n node.__needsRefreshWhenVisible = true;\n });\n };\n LazyCache.prototype.doesNodeMatch = function (data, node) {\n if (node.stub) {\n return false;\n }\n if (this.getRowIdFunc != null) {\n var id = this.getRowId(data);\n return node.id === id;\n }\n return node.data === data;\n };\n /**\n * Deletes any stub nodes not within the given range\n */\n LazyCache.prototype.purgeStubsOutsideOfViewport = function () {\n var _this = this;\n var firstRow = this.api.getFirstDisplayedRow();\n var lastRow = this.api.getLastDisplayedRow();\n var firstRowBlockStart = this.rowLoader.getBlockStartIndexForIndex(firstRow);\n var _a = __read$6(this.rowLoader.getBlockBoundsForIndex(lastRow), 2); _a[0]; var lastRowBlockEnd = _a[1];\n this.nodeMap.forEach(function (lazyNode) {\n // failed loads are still useful, so we don't purge them\n if (_this.rowLoader.isRowLoading(lazyNode.index) || lazyNode.node.failedLoad) {\n return;\n }\n if (lazyNode.node.stub && (lazyNode.index < firstRowBlockStart || lazyNode.index > lastRowBlockEnd)) {\n _this.destroyRowAtIndex(lazyNode.index);\n }\n });\n };\n LazyCache.prototype.getBlocksDistanceFromRow = function (nodes, otherDisplayIndex) {\n var _this = this;\n var blockDistanceToMiddle = {};\n nodes.forEach(function (_a) {\n var node = _a.node, index = _a.index;\n var _b = __read$6(_this.rowLoader.getBlockBoundsForIndex(index), 2), blockStart = _b[0], blockEnd = _b[1];\n if (blockStart in blockDistanceToMiddle) {\n return;\n }\n var distStart = Math.abs(node.rowIndex - otherDisplayIndex);\n var distEnd;\n // may not have an end node if the block came back small \n var lastLazyNode = _this.nodeMap.getBy('index', [blockEnd - 1]);\n if (lastLazyNode)\n distEnd = Math.abs(lastLazyNode.node.rowIndex - otherDisplayIndex);\n var farthest = distEnd == null || distStart < distEnd ? distStart : distEnd;\n blockDistanceToMiddle[blockStart] = farthest;\n });\n return Object.entries(blockDistanceToMiddle);\n };\n LazyCache.prototype.purgeExcessRows = function () {\n var _this = this;\n var _a;\n // Delete all stub nodes which aren't in the viewport or already loading\n this.purgeStubsOutsideOfViewport();\n if (this.store.getDisplayIndexEnd() == null || this.storeParams.maxBlocksInCache == null) {\n // if group is collapsed, or max blocks missing, ignore the event\n return;\n }\n var firstRowInViewport = this.api.getFirstDisplayedRow();\n var lastRowInViewport = this.api.getLastDisplayedRow();\n // the start storeIndex of every block in this store\n var allLoadedBlocks = new Set();\n // the start storeIndex of every displayed block in this store\n var blocksInViewport = new Set();\n this.nodeMap.forEach(function (_a) {\n var index = _a.index, node = _a.node;\n var blockStart = _this.rowLoader.getBlockStartIndexForIndex(index);\n allLoadedBlocks.add(blockStart);\n var isInViewport = node.rowIndex >= firstRowInViewport && node.rowIndex <= lastRowInViewport;\n if (isInViewport) {\n blocksInViewport.add(blockStart);\n }\n });\n // if the viewport is larger than the max blocks, then the viewport size is minimum cache size\n var numberOfBlocksToRetain = Math.max(blocksInViewport.size, (_a = this.storeParams.maxBlocksInCache) !== null && _a !== void 0 ? _a : 0);\n // ensure there is blocks that can be removed\n var loadedBlockCount = allLoadedBlocks.size;\n var blocksToRemove = loadedBlockCount - numberOfBlocksToRetain;\n if (blocksToRemove <= 0) {\n return;\n }\n // the first and last block in the viewport\n var firstRowBlockStart = Number.MAX_SAFE_INTEGER;\n var lastRowBlockStart = Number.MIN_SAFE_INTEGER;\n blocksInViewport.forEach(function (blockStart) {\n if (firstRowBlockStart > blockStart) {\n firstRowBlockStart = blockStart;\n }\n if (lastRowBlockStart < blockStart) {\n lastRowBlockStart = blockStart;\n }\n });\n // all nodes which aren't cached or in the viewport, and so can be removed\n var disposableNodes = this.nodeMap.filter(function (_a) {\n var node = _a.node, index = _a.index;\n var rowBlockStart = _this.rowLoader.getBlockStartIndexForIndex(index);\n var rowBlockInViewport = rowBlockStart >= firstRowBlockStart && rowBlockStart <= lastRowBlockStart;\n return !rowBlockInViewport && !_this.isNodeCached(node);\n });\n if (disposableNodes.length === 0) {\n return;\n }\n var midViewportRow = firstRowInViewport + ((lastRowInViewport - firstRowInViewport) / 2);\n var blockDistanceArray = this.getBlocksDistanceFromRow(disposableNodes, midViewportRow);\n var blockSize = this.rowLoader.getBlockSize();\n // sort the blocks by distance from middle of viewport\n blockDistanceArray.sort(function (a, b) { return Math.sign(b[1] - a[1]); });\n // remove excess blocks, starting from furthest from viewport\n for (var i = 0; i < Math.min(blocksToRemove, blockDistanceArray.length); i++) {\n var blockStart = Number(blockDistanceArray[i][0]);\n for (var x = blockStart; x < blockStart + blockSize; x++) {\n var lazyNode = this.nodeMap.getBy('index', x);\n if (!lazyNode || this.isNodeCached(lazyNode.node)) {\n continue;\n }\n this.destroyRowAtIndex(x);\n }\n }\n };\n LazyCache.prototype.isNodeFocused = function (node) {\n var focusedCell = this.focusService.getFocusCellToUseAfterRefresh();\n if (!focusedCell) {\n return false;\n }\n if (focusedCell.rowPinned != null) {\n return false;\n }\n var hasFocus = focusedCell.rowIndex === node.rowIndex;\n return hasFocus;\n };\n LazyCache.prototype.isNodeCached = function (node) {\n return (node.isExpandable() && node.expanded) || this.isNodeFocused(node);\n };\n LazyCache.prototype.extractDuplicateIds = function (rows) {\n var _this = this;\n if (this.getRowIdFunc != null) {\n return [];\n }\n var newIds = new Set();\n var duplicates = new Set();\n rows.forEach(function (data) {\n var id = _this.getRowId(data);\n if (newIds.has(id)) {\n duplicates.add(id);\n return;\n }\n newIds.add(id);\n });\n return __spreadArray$5([], __read$6(duplicates));\n };\n LazyCache.prototype.onLoadSuccess = function (firstRowIndex, numberOfRowsExpected, response) {\n var _this = this;\n var _a;\n if (!this.live)\n return;\n var info = (_a = response.groupLevelInfo) !== null && _a !== void 0 ? _a : response.storeInfo;\n this.store.setStoreInfo(info);\n if (this.getRowIdFunc != null) {\n var duplicates = this.extractDuplicateIds(response.rowData);\n if (duplicates.length > 0) {\n var duplicateIdText = duplicates.join(', ');\n console.warn(\"AG Grid: Unable to display rows as duplicate row ids (\" + duplicateIdText + \") were returned by the getRowId callback. Please modify the getRowId callback to provide unique ids.\");\n this.onLoadFailed(firstRowIndex, numberOfRowsExpected);\n return;\n }\n }\n if (response.pivotResultFields) {\n this.serverSideRowModel.generateSecondaryColumns(response.pivotResultFields);\n }\n var wasRefreshing = this.nodesToRefresh.size > 0;\n response.rowData.forEach(function (data, responseRowIndex) {\n var _a;\n var rowIndex = firstRowIndex + responseRowIndex;\n var nodeFromCache = _this.nodeMap.getBy('index', rowIndex);\n // if stub, overwrite\n if ((_a = nodeFromCache === null || nodeFromCache === void 0 ? void 0 : nodeFromCache.node) === null || _a === void 0 ? void 0 : _a.stub) {\n _this.createRowAtIndex(rowIndex, data);\n return;\n }\n // node already exists, and same as node at designated position, update data\n if (nodeFromCache && _this.doesNodeMatch(data, nodeFromCache.node)) {\n _this.blockUtils.updateDataIntoRowNode(nodeFromCache.node, data);\n _this.nodesToRefresh.delete(nodeFromCache.node);\n nodeFromCache.node.__needsRefreshWhenVisible = false;\n return;\n }\n // create row will handle deleting the overwritten row\n _this.createRowAtIndex(rowIndex, data);\n });\n var finishedRefreshing = this.nodesToRefresh.size === 0;\n if (wasRefreshing && finishedRefreshing) {\n this.fireRefreshFinishedEvent();\n }\n if (response.rowCount != undefined && response.rowCount !== -1) {\n // if the rowCount has been provided, set the row count\n this.numberOfRows = response.rowCount;\n this.isLastRowKnown = true;\n }\n else if (numberOfRowsExpected > response.rowData.length) {\n // infer the last row as the response came back short\n this.numberOfRows = firstRowIndex + response.rowData.length;\n this.isLastRowKnown = true;\n }\n else if (!this.isLastRowKnown) {\n // add 1 for loading row, as we don't know the last row\n var lastInferredRow = firstRowIndex + response.rowData.length + 1;\n if (lastInferredRow > this.numberOfRows) {\n this.numberOfRows = lastInferredRow;\n }\n }\n if (this.isLastRowKnown) {\n // delete any rows after the last index\n var lazyNodesAfterStoreEnd = this.nodeMap.filter(function (lazyNode) { return lazyNode.index >= _this.numberOfRows; });\n lazyNodesAfterStoreEnd.forEach(function (lazyNode) { return _this.destroyRowAtIndex(lazyNode.index); });\n }\n this.fireStoreUpdatedEvent();\n };\n LazyCache.prototype.fireRefreshFinishedEvent = function () {\n var _this = this;\n var finishedRefreshing = this.nodesToRefresh.size === 0;\n // if anything refreshing currently, skip.\n if (!finishedRefreshing) {\n return;\n }\n // any nodes left in the map need to be cleaned up, this prevents us preserving nodes\n // indefinitely\n this.removedNodeCache.forEach(function (node) {\n _this.blockUtils.destroyRowNode(node);\n });\n this.removedNodeCache = new Map();\n this.store.fireRefreshFinishedEvent();\n };\n LazyCache.prototype.isLastRowIndexKnown = function () {\n return this.isLastRowKnown;\n };\n LazyCache.prototype.onLoadFailed = function (firstRowIndex, numberOfRowsExpected) {\n var _a;\n if (!this.live)\n return;\n var wasRefreshing = this.nodesToRefresh.size > 0;\n for (var i = firstRowIndex; i < firstRowIndex + numberOfRowsExpected && i < this.getRowCount(); i++) {\n var node = ((_a = this.nodeMap.getBy('index', i)) !== null && _a !== void 0 ? _a : {}).node;\n if (node) {\n this.nodesToRefresh.delete(node);\n }\n if (!node || !node.stub) {\n if (node && !node.stub) {\n // if node is not a stub, we destroy it and recreate as nodes can't go from data to stub\n this.destroyRowAtIndex(i);\n }\n node = this.createRowAtIndex(i);\n }\n // this node has been refreshed, even if it wasn't successful\n node.__needsRefreshWhenVisible = false;\n node.failedLoad = true;\n }\n var finishedRefreshing = this.nodesToRefresh.size === 0;\n if (wasRefreshing && finishedRefreshing) {\n this.fireRefreshFinishedEvent();\n }\n this.fireStoreUpdatedEvent();\n };\n LazyCache.prototype.markNodesForRefresh = function () {\n var _this = this;\n this.nodeMap.forEach(function (lazyNode) {\n if (lazyNode.node.stub && !lazyNode.node.failedLoad) {\n return;\n }\n _this.nodesToRefresh.add(lazyNode.node);\n });\n this.rowLoader.queueLoadCheck();\n if (this.isLastRowKnown && this.numberOfRows === 0) {\n this.numberOfRows = 1;\n this.isLastRowKnown = false;\n this.fireStoreUpdatedEvent();\n }\n };\n LazyCache.prototype.isNodeInCache = function (id) {\n return !!this.nodeMap.getBy('id', id);\n };\n // gets called 1) row count changed 2) cache purged 3) items inserted\n LazyCache.prototype.fireStoreUpdatedEvent = function () {\n if (!this.live) {\n return;\n }\n this.store.fireStoreUpdatedEvent();\n };\n LazyCache.prototype.getRowId = function (data) {\n if (this.getRowIdFunc == null) {\n return null;\n }\n // find rowNode using id\n var level = this.store.getRowDetails().level;\n var parentKeys = this.store.getParentNode().getGroupKeys();\n var id = this.getRowIdFunc({\n data: data,\n parentKeys: parentKeys.length > 0 ? parentKeys : undefined,\n level: level,\n });\n return String(id);\n };\n LazyCache.prototype.updateRowNodes = function (updates) {\n var _this = this;\n if (this.getRowIdFunc == null) {\n // throw error, as this is type checked in the store. User likely abusing internal apis if here.\n throw new Error('AG Grid: Transactions can only be applied when row ids are supplied.');\n }\n var updatedNodes = [];\n updates.forEach(function (data) {\n var id = _this.getRowId(data);\n var lazyNode = _this.nodeMap.getBy('id', id);\n if (lazyNode) {\n _this.blockUtils.updateDataIntoRowNode(lazyNode.node, data);\n updatedNodes.push(lazyNode.node);\n }\n });\n return updatedNodes;\n };\n LazyCache.prototype.insertRowNodes = function (inserts, indexToAdd) {\n var _this = this;\n // adjust row count to allow for footer row\n var realRowCount = this.store.getRowCount() - (this.store.getParentNode().sibling ? 1 : 0);\n // if missing and we know the last row, we're inserting at the end\n var addIndex = indexToAdd == null && this.isLastRowKnown ? realRowCount : indexToAdd;\n // can't insert nodes past the end of the store\n if (addIndex == null || realRowCount < addIndex) {\n return [];\n }\n if (this.getRowIdFunc == null) {\n // throw error, as this is type checked in the store. User likely abusing internal apis if here.\n throw new Error('AG Grid: Transactions can only be applied when row ids are supplied.');\n }\n var uniqueInsertsMap = {};\n inserts.forEach(function (data) {\n var dataId = _this.getRowId(data);\n if (dataId && _this.isNodeInCache(dataId)) {\n return;\n }\n uniqueInsertsMap[dataId] = data;\n });\n var uniqueInserts = Object.values(uniqueInsertsMap);\n var numberOfInserts = uniqueInserts.length;\n if (numberOfInserts === 0) {\n return [];\n }\n var nodesToMove = this.nodeMap.filter(function (node) { return node.index >= addIndex; });\n // delete all nodes which need moved first, so they don't get overwritten\n nodesToMove.forEach(function (lazyNode) { return _this.nodeMap.delete(lazyNode); });\n // then move the nodes to their new locations\n nodesToMove.forEach(function (lazyNode) {\n _this.nodeMap.set({\n node: lazyNode.node,\n index: lazyNode.index + numberOfInserts,\n id: lazyNode.id,\n });\n });\n // increase the store size to accommodate\n this.numberOfRows += numberOfInserts;\n // finally insert the new rows\n return uniqueInserts.map(function (data, uniqueInsertOffset) { return _this.createRowAtIndex(addIndex + uniqueInsertOffset, data); });\n };\n LazyCache.prototype.getOrderedNodeMap = function () {\n var obj = {};\n this.nodeMap.forEach(function (node) { return obj[node.index] = node; });\n return obj;\n };\n LazyCache.prototype.clearDisplayIndexes = function () {\n this.nodeDisplayIndexMap.clear();\n };\n LazyCache.prototype.removeRowNodes = function (idsToRemove) {\n if (this.getRowIdFunc == null) {\n // throw error, as this is type checked in the store. User likely abusing internal apis if here.\n throw new Error('AG Grid: Transactions can only be applied when row ids are supplied.');\n }\n var removedNodes = [];\n var nodesToVerify = [];\n // track how many nodes have been deleted, as when we pass other nodes we need to shift them up\n var deletedNodeCount = 0;\n var remainingIdsToRemove = __spreadArray$5([], __read$6(idsToRemove));\n var allNodes = this.getOrderedNodeMap();\n var contiguousIndex = -1;\n var _loop_1 = function (stringIndex) {\n contiguousIndex += 1;\n var node = allNodes[stringIndex];\n // finding the index allows the use of splice which should be slightly faster than both a check and filter\n var matchIndex = remainingIdsToRemove.findIndex(function (idToRemove) { return idToRemove === node.id; });\n if (matchIndex !== -1) {\n // found node, remove it from nodes to remove\n remainingIdsToRemove.splice(matchIndex, 1);\n this_1.destroyRowAtIndex(Number(stringIndex));\n removedNodes.push(node.node);\n deletedNodeCount += 1;\n return \"continue\";\n }\n // no nodes removed and this node doesn't match, so no need to shift\n if (deletedNodeCount === 0) {\n return \"continue\";\n }\n var numericStoreIndex = Number(stringIndex);\n if (contiguousIndex !== numericStoreIndex) {\n nodesToVerify.push(node.node);\n }\n // shift normal node up by number of deleted prior to this point\n this_1.nodeMap.delete(allNodes[stringIndex]);\n this_1.nodeMap.set({\n id: node.id,\n node: node.node,\n index: numericStoreIndex - deletedNodeCount,\n });\n };\n var this_1 = this;\n for (var stringIndex in allNodes) {\n _loop_1(stringIndex);\n }\n this.numberOfRows -= this.isLastRowIndexKnown() ? idsToRemove.length : deletedNodeCount;\n if (remainingIdsToRemove.length > 0 && nodesToVerify.length > 0) {\n nodesToVerify.forEach(function (node) { return node.__needsRefreshWhenVisible = true; });\n this.rowLoader.queueLoadCheck();\n }\n return removedNodes;\n };\n __decorate$s([\n Autowired('gridApi')\n ], LazyCache.prototype, \"api\", void 0);\n __decorate$s([\n Autowired('ssrmBlockUtils')\n ], LazyCache.prototype, \"blockUtils\", void 0);\n __decorate$s([\n Autowired('focusService')\n ], LazyCache.prototype, \"focusService\", void 0);\n __decorate$s([\n Autowired('ssrmNodeManager')\n ], LazyCache.prototype, \"nodeManager\", void 0);\n __decorate$s([\n Autowired('rowModel')\n ], LazyCache.prototype, \"serverSideRowModel\", void 0);\n __decorate$s([\n PostConstruct\n ], LazyCache.prototype, \"init\", null);\n __decorate$s([\n PreDestroy\n ], LazyCache.prototype, \"destroyRowNodes\", null);\n return LazyCache;\n}(BeanStub));\n\nvar __extends$t = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$r = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$5 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$4 = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar LazyStore = /** @class */ (function (_super) {\n __extends$t(LazyStore, _super);\n function LazyStore(ssrmParams, storeParams, parentRowNode) {\n var _this = _super.call(this) || this;\n _this.idSequence = new NumberSequence();\n _this.ssrmParams = ssrmParams;\n _this.parentRowNode = parentRowNode;\n _this.storeParams = storeParams;\n _this.level = parentRowNode.level + 1;\n _this.group = ssrmParams.rowGroupCols ? _this.level < ssrmParams.rowGroupCols.length : false;\n _this.leafGroup = ssrmParams.rowGroupCols ? _this.level === ssrmParams.rowGroupCols.length - 1 : false;\n _this.info = {};\n return _this;\n }\n LazyStore.prototype.init = function () {\n var numberOfRows = 1;\n if (this.level === 0) {\n numberOfRows = this.storeUtils.getServerSideInitialRowCount();\n }\n this.cache = this.createManagedBean(new LazyCache(this, numberOfRows, this.storeParams));\n var usingTreeData = this.gridOptionsService.is('treeData');\n if (!usingTreeData && this.group) {\n var groupColVo = this.ssrmParams.rowGroupCols[this.level];\n this.groupField = groupColVo.field;\n this.rowGroupColumn = this.columnModel.getRowGroupColumns()[this.level];\n }\n };\n LazyStore.prototype.destroyRowNodes = function () {\n this.displayIndexStart = undefined;\n this.displayIndexEnd = undefined;\n this.destroyBean(this.cache);\n };\n /**\n * Given a server response, ingest the rows outside of the data source lifecycle.\n *\n * @param rowDataParams the server response containing the rows to ingest\n * @param startRow the index to start ingesting rows\n * @param expectedRows the expected number of rows in the response (used to determine if the last row index is known)\n */\n LazyStore.prototype.applyRowData = function (rowDataParams, startRow, expectedRows) {\n this.cache.onLoadSuccess(startRow, expectedRows, rowDataParams);\n };\n /**\n * Applies a given transaction to the data set within this store\n *\n * @param transaction an object containing delta instructions determining the changes to apply to this store\n * @returns an object determining the status of this transaction and effected nodes\n */\n LazyStore.prototype.applyTransaction = function (transaction) {\n var _this = this;\n var _a, _b, _c;\n var idFunc = this.gridOptionsService.getCallback('getRowId');\n if (!idFunc) {\n console.warn('AG Grid: getRowId callback must be implemented for transactions to work. Transaction was ignored.');\n return {\n status: ServerSideTransactionResultStatus.Cancelled,\n };\n }\n var applyCallback = this.gridOptionsService.getCallback('isApplyServerSideTransaction');\n if (applyCallback) {\n var params = {\n transaction: transaction,\n parentNode: this.parentRowNode,\n storeInfo: this.info,\n groupLevelInfo: this.info\n };\n var apply = applyCallback(params);\n if (!apply) {\n return { status: ServerSideTransactionResultStatus.Cancelled };\n }\n }\n var updatedNodes = undefined;\n if ((_a = transaction.update) === null || _a === void 0 ? void 0 : _a.length) {\n updatedNodes = this.cache.updateRowNodes(transaction.update);\n }\n var insertedNodes = undefined;\n if ((_b = transaction.add) === null || _b === void 0 ? void 0 : _b.length) {\n var addIndex = transaction.addIndex;\n if (addIndex != null && addIndex < 0) {\n addIndex = undefined;\n }\n insertedNodes = this.cache.insertRowNodes(transaction.add, addIndex);\n }\n var removedNodes = undefined;\n if ((_c = transaction.remove) === null || _c === void 0 ? void 0 : _c.length) {\n var allIdsToRemove = transaction.remove.map(function (data) { return (idFunc({ level: _this.level, parentKeys: _this.parentRowNode.getGroupKeys(), data: data })); });\n var allUniqueIdsToRemove = __spreadArray$4([], __read$5(new Set(allIdsToRemove)));\n removedNodes = this.cache.removeRowNodes(allUniqueIdsToRemove);\n }\n this.updateSelectionAfterTransaction(updatedNodes, removedNodes);\n return {\n status: ServerSideTransactionResultStatus.Applied,\n update: updatedNodes,\n add: insertedNodes,\n remove: removedNodes,\n };\n };\n LazyStore.prototype.updateSelectionAfterTransaction = function (updatedNodes, removedNodes) {\n var nodesToDeselect = [];\n updatedNodes === null || updatedNodes === void 0 ? void 0 : updatedNodes.forEach(function (node) {\n if (node.isSelected() && !node.selectable) {\n nodesToDeselect.push(node);\n }\n });\n removedNodes === null || removedNodes === void 0 ? void 0 : removedNodes.forEach(function (node) {\n if (node.isSelected()) {\n nodesToDeselect.push(node);\n }\n });\n if (nodesToDeselect.length) {\n this.selectionService.setNodesSelected({\n newValue: false,\n clearSelection: false,\n nodes: nodesToDeselect,\n source: 'rowDataChanged',\n });\n }\n };\n /**\n * Clear the display indexes, used for fading rows out when stores are not being destroyed\n */\n LazyStore.prototype.clearDisplayIndexes = function () {\n var _this = this;\n this.displayIndexStart = undefined;\n this.displayIndexEnd = undefined;\n this.cache.getNodes().forEach(function (lazyNode) { return _this.blockUtils.clearDisplayIndex(lazyNode.node); });\n if (this.parentRowNode.sibling) {\n this.blockUtils.clearDisplayIndex(this.parentRowNode.sibling);\n }\n this.cache.clearDisplayIndexes();\n };\n /**\n * @returns an index representing the last sequentially displayed row in the grid for this store\n */\n LazyStore.prototype.getDisplayIndexStart = function () {\n return this.displayIndexStart;\n };\n /**\n * @returns the index representing one after the last sequentially displayed row in the grid for this store\n */\n LazyStore.prototype.getDisplayIndexEnd = function () {\n return this.displayIndexEnd;\n };\n /**\n * @returns the virtual size of this store\n */\n LazyStore.prototype.getRowCount = function () {\n if (this.parentRowNode.sibling) {\n return this.cache.getRowCount() + 1;\n }\n return this.cache.getRowCount();\n };\n /**\n * Sets the current row count of the store, and whether the last row index is known\n */\n LazyStore.prototype.setRowCount = function (rowCount, isLastRowIndexKnown) {\n this.cache.setRowCount(rowCount, isLastRowIndexKnown);\n };\n /**\n * Given a display index, returns whether that row is within this store or a child store of this store\n *\n * @param displayIndex the visible index of a row\n * @returns whether or not the row exists within this store\n */\n LazyStore.prototype.isDisplayIndexInStore = function (displayIndex) {\n if (this.cache.getRowCount() === 0)\n return false;\n return this.displayIndexStart <= displayIndex && displayIndex < this.getDisplayIndexEnd();\n };\n /**\n * Recursively sets up the display indexes and top position of every node belonging to this store.\n *\n * Called after a row height changes, or a store updated event.\n *\n * @param displayIndexSeq the number sequence for generating the display index of each row\n * @param nextRowTop an object containing the next row top value intended to be modified by ref per row\n */\n LazyStore.prototype.setDisplayIndexes = function (displayIndexSeq, nextRowTop) {\n this.displayIndexStart = displayIndexSeq.peek();\n this.topPx = nextRowTop.value;\n // delegate to the store to set the row display indexes\n this.cache.setDisplayIndexes(displayIndexSeq, nextRowTop);\n if (this.parentRowNode.sibling) {\n this.blockUtils.setDisplayIndex(this.parentRowNode.sibling, displayIndexSeq, nextRowTop);\n }\n this.displayIndexEnd = displayIndexSeq.peek();\n this.heightPx = nextRowTop.value - this.topPx;\n };\n /**\n * Recursively applies a provided function to every node\n *\n * For the purpose of exclusively server side filtered stores, this is the same as getNodes().forEachDeepAfterFilterAndSort\n */\n LazyStore.prototype.forEachStoreDeep = function (callback, sequence) {\n if (sequence === void 0) { sequence = new NumberSequence(); }\n callback(this, sequence.next());\n this.cache.getNodes().forEach(function (lazyNode) {\n var childCache = lazyNode.node.childStore;\n if (childCache) {\n childCache.forEachStoreDeep(callback, sequence);\n }\n });\n };\n /**\n * Recursively applies a provided function to every node\n *\n * For the purpose of exclusively server side filtered stores, this is the same as getNodes().forEachDeepAfterFilterAndSort\n */\n LazyStore.prototype.forEachNodeDeep = function (callback, sequence) {\n if (sequence === void 0) { sequence = new NumberSequence(); }\n this.cache.getNodes().forEach(function (lazyNode) {\n callback(lazyNode.node, sequence.next());\n var childCache = lazyNode.node.childStore;\n if (childCache) {\n childCache.forEachNodeDeep(callback, sequence);\n }\n });\n };\n /**\n * Recursively applies a provided function to every node\n *\n * For the purpose of exclusively server side filtered stores, this is the same as getNodes().forEachDeep\n */\n LazyStore.prototype.forEachNodeDeepAfterFilterAndSort = function (callback, sequence, includeFooterNodes) {\n if (sequence === void 0) { sequence = new NumberSequence(); }\n if (includeFooterNodes === void 0) { includeFooterNodes = false; }\n var orderedNodes = this.cache.getOrderedNodeMap();\n for (var key in orderedNodes) {\n var lazyNode = orderedNodes[key];\n callback(lazyNode.node, sequence.next());\n var childCache = lazyNode.node.childStore;\n if (childCache) {\n childCache.forEachNodeDeepAfterFilterAndSort(callback, sequence, includeFooterNodes);\n }\n }\n if (includeFooterNodes && this.parentRowNode.sibling) {\n callback(this.parentRowNode.sibling, sequence.next());\n }\n };\n /**\n * Removes the failed status from all nodes, and marks them as stub to encourage reloading\n */\n LazyStore.prototype.retryLoads = function () {\n this.cache.getNodes().forEach(function (_a) {\n var node = _a.node;\n if (node.failedLoad) {\n node.failedLoad = false;\n node.__needsRefreshWhenVisible = true;\n node.stub = true;\n }\n });\n this.forEachChildStoreShallow(function (store) { return store.retryLoads(); });\n this.fireStoreUpdatedEvent();\n };\n /**\n * Given a display index, returns the row at that location.\n *\n * @param displayRowIndex the displayed index within the grid to search for\n * @returns the row node if the display index falls within the store, if it didn't exist this will create a new stub to return\n */\n LazyStore.prototype.getRowUsingDisplayIndex = function (displayRowIndex) {\n if (this.parentRowNode.sibling && displayRowIndex === this.parentRowNode.sibling.rowIndex) {\n return this.parentRowNode.sibling;\n }\n return this.cache.getRowByDisplayIndex(displayRowIndex);\n };\n /**\n * Given a display index, returns the row top and height for the row at that index.\n *\n * @param displayIndex the display index of the node\n * @returns an object containing the rowTop and rowHeight of the node at the given displayIndex\n */\n LazyStore.prototype.getRowBounds = function (displayIndex) {\n var _a;\n if (!this.isDisplayIndexInStore(displayIndex)) {\n return null;\n }\n var thisNode = this.cache.getNodeCachedByDisplayIndex(displayIndex);\n if (thisNode) {\n var boundsFromRow = this.blockUtils.extractRowBounds(thisNode, displayIndex);\n if (boundsFromRow) {\n return boundsFromRow;\n }\n }\n var _b = (_a = this.cache.getSurroundingNodesByDisplayIndex(displayIndex)) !== null && _a !== void 0 ? _a : {}, previousNode = _b.previousNode, nextNode = _b.nextNode;\n // previous node may equal, or catch via detail node or child of group\n if (previousNode) {\n var boundsFromRow = this.blockUtils.extractRowBounds(previousNode.node, displayIndex);\n if (boundsFromRow != null) {\n return boundsFromRow;\n }\n }\n var defaultRowHeight = this.gridOptionsService.getRowHeightAsNumber();\n // if node after this, can calculate backwards (and ignore detail/grouping)\n if (nextNode) {\n var numberOfRowDiff_1 = (nextNode.node.rowIndex - displayIndex) * defaultRowHeight;\n return {\n rowTop: nextNode.node.rowTop - numberOfRowDiff_1,\n rowHeight: defaultRowHeight,\n };\n }\n // otherwise calculate from end of store\n var lastTop = this.topPx + this.heightPx;\n var numberOfRowDiff = (this.getDisplayIndexEnd() - displayIndex) * defaultRowHeight;\n return {\n rowTop: lastTop - numberOfRowDiff,\n rowHeight: defaultRowHeight,\n };\n };\n /**\n * Given a vertical pixel, determines whether this store contains a row at that pixel\n *\n * @param pixel a vertical pixel position from the grid\n * @returns whether that pixel points to a virtual space belonging to this store\n */\n LazyStore.prototype.isPixelInRange = function (pixel) {\n return pixel >= this.topPx && pixel < (this.topPx + this.heightPx);\n };\n /**\n * Given a vertical pixel, returns the row existing at that pixel location\n *\n * @param pixel a vertical pixel position from the grid\n * @returns the display index at the given pixel location\n */\n LazyStore.prototype.getRowIndexAtPixel = function (pixel) {\n if (pixel < this.topPx) {\n return this.getDisplayIndexStart();\n }\n if (pixel >= this.topPx + this.heightPx) {\n return this.getDisplayIndexEnd() - 1;\n }\n var distToPreviousNodeTop = Number.MAX_SAFE_INTEGER;\n var previousNode = null;\n var distToNextNodeTop = Number.MAX_SAFE_INTEGER;\n var nextNode = null;\n this.cache.getNodes().forEach(function (_a) {\n var node = _a.node;\n var distBetween = Math.abs(pixel - node.rowTop);\n // previous node\n if (node.rowTop < pixel) {\n if (distBetween < distToPreviousNodeTop) {\n distToPreviousNodeTop = distBetween;\n previousNode = node;\n }\n return;\n }\n // next node\n if (distBetween < distToNextNodeTop) {\n distToNextNodeTop = distBetween;\n nextNode = node;\n }\n });\n // cast these back as typescript doesn't understand the forEach above\n previousNode = previousNode;\n nextNode = nextNode;\n // previous node may equal, or catch via detail node or child of group\n if (previousNode) {\n var indexOfRow = this.blockUtils.getIndexAtPixel(previousNode, pixel);\n if (indexOfRow != null) {\n return indexOfRow;\n }\n }\n var defaultRowHeight = this.gridOptionsService.getRowHeightAsNumber();\n // if node after this, can calculate backwards (and ignore detail/grouping)\n if (nextNode) {\n var nextTop_1 = nextNode.rowTop;\n var numberOfRowDiff_2 = Math.ceil((nextTop_1 - pixel) / defaultRowHeight);\n return nextNode.rowIndex - numberOfRowDiff_2;\n }\n // otherwise calculate from end of store\n var nextTop = this.topPx + this.heightPx;\n var numberOfRowDiff = Math.floor((nextTop - pixel) / defaultRowHeight);\n return this.getDisplayIndexEnd() - numberOfRowDiff;\n };\n /**\n * Given a path of group keys, returns the child store for that group.\n *\n * @param keys the grouping path to the desired store\n * @returns the child store for the given keys, or null if not found\n */\n LazyStore.prototype.getChildStore = function (keys) {\n var _this = this;\n return this.storeUtils.getChildStore(keys, this, function (key) {\n var lazyNode = _this.cache.getNodes().find(function (lazyNode) { return lazyNode.node.key == key; });\n if (!lazyNode) {\n return null;\n }\n return lazyNode.node;\n });\n };\n /**\n * Executes a provided callback on each child store belonging to this store\n *\n * @param cb the callback to execute\n */\n LazyStore.prototype.forEachChildStoreShallow = function (cb) {\n this.cache.getNodes().forEach(function (_a) {\n var node = _a.node;\n if (node.childStore) {\n cb(node.childStore);\n }\n });\n };\n /**\n * Executes after a change to sorting, determines recursively whether this store or a child requires refreshed.\n *\n * If a purge refresh occurs, the row count is preserved.\n *\n * @param params a set of properties pertaining to the sort changes\n */\n LazyStore.prototype.refreshAfterSort = function (params) {\n var serverSortsAllLevels = this.storeUtils.isServerSideSortAllLevels();\n if (serverSortsAllLevels || this.storeUtils.isServerRefreshNeeded(this.parentRowNode, this.ssrmParams.rowGroupCols, params)) {\n var oldCount = this.cache.getRowCount();\n this.destroyBean(this.cache);\n this.cache = this.createManagedBean(new LazyCache(this, oldCount, this.storeParams));\n this.fireStoreUpdatedEvent();\n return;\n }\n // call refreshAfterSort on children, as we did not purge.\n // if we did purge, no need to do this as all children were destroyed\n this.forEachChildStoreShallow(function (store) { return store.refreshAfterSort(params); });\n };\n /**\n * Executes after a change to filtering, determines recursively whether this store or a child requires refreshed.\n *\n * If a refresh occurs, the row count is reset.\n *\n * @param params a set of properties pertaining to the filter changes\n */\n LazyStore.prototype.refreshAfterFilter = function (params) {\n var serverFiltersAllLevels = !this.storeUtils.isServerSideOnlyRefreshFilteredGroups();\n if (serverFiltersAllLevels || this.storeUtils.isServerRefreshNeeded(this.parentRowNode, this.ssrmParams.rowGroupCols, params)) {\n this.refreshStore(true);\n return;\n }\n // call refreshAfterSort on children, as we did not purge.\n // if we did purge, no need to do this as all children were destroyed\n this.forEachChildStoreShallow(function (store) { return store.refreshAfterFilter(params); });\n };\n /**\n * Marks all existing nodes as requiring reloaded, and triggers a load check\n *\n * @param purge whether to remove all nodes and data in favour of stub nodes\n */\n LazyStore.prototype.refreshStore = function (purge) {\n if (purge) {\n this.destroyBean(this.cache);\n this.cache = this.createManagedBean(new LazyCache(this, 1, this.storeParams));\n this.fireStoreUpdatedEvent();\n return;\n }\n this.cache.markNodesForRefresh();\n };\n /**\n * Used for pagination, given a local/store index, returns the display index of that row\n *\n * @param topLevelIndex the store index of a row\n * @returns the display index for the given store index\n */\n LazyStore.prototype.getTopLevelRowDisplayedIndex = function (topLevelIndex) {\n var displayIndex = this.cache.getDisplayIndexFromStoreIndex(topLevelIndex);\n return displayIndex !== null && displayIndex !== void 0 ? displayIndex : topLevelIndex;\n };\n /**\n * Used for pagination to determine if the last page is known, and for aria to determine if the last grid row is known\n *\n * @returns whether the last index of this store is known, or if lazy loading still required\n */\n LazyStore.prototype.isLastRowIndexKnown = function () {\n return this.cache.isLastRowIndexKnown();\n };\n /**\n * Used by the selection service to select a range of nodes\n *\n * @param firstInRange the first node in the range to find\n * @param lastInRange the last node in the range to find\n * @returns a range of nodes between firstInRange and lastInRange inclusive\n */\n LazyStore.prototype.getRowNodesInRange = function (firstInRange, lastInRange) {\n // if only one node passed, we start the selection at the top\n if (_.missing(firstInRange)) ;\n return this.cache.getNodes().filter(function (_a) {\n var node = _a.node;\n return node.rowIndex >= firstInRange.rowIndex && node.rowIndex <= lastInRange.rowIndex;\n }).map(function (_a) {\n var node = _a.node;\n return node;\n });\n };\n /**\n * Mutates a given array to add this stores state, and recursively add all the children store states.\n *\n * @param result a mutable results array\n */\n LazyStore.prototype.addStoreStates = function (result) {\n result.push({\n suppressInfiniteScroll: false,\n route: this.parentRowNode.getGroupKeys(),\n rowCount: this.getRowCount(),\n lastRowIndexKnown: this.isLastRowIndexKnown(),\n info: this.info,\n maxBlocksInCache: this.storeParams.maxBlocksInCache,\n cacheBlockSize: this.storeParams.cacheBlockSize,\n });\n this.forEachChildStoreShallow(function (childStore) { return childStore.addStoreStates(result); });\n };\n LazyStore.prototype.getIdSequence = function () {\n return this.idSequence;\n };\n LazyStore.prototype.getParentNode = function () {\n return this.parentRowNode;\n };\n LazyStore.prototype.getRowDetails = function () {\n return {\n field: this.groupField,\n group: this.group,\n leafGroup: this.leafGroup,\n level: this.level,\n parent: this.parentRowNode,\n rowGroupColumn: this.rowGroupColumn,\n };\n };\n LazyStore.prototype.getSsrmParams = function () {\n return this.ssrmParams;\n };\n LazyStore.prototype.setStoreInfo = function (info) {\n if (info) {\n Object.assign(this.info, info);\n }\n };\n // gets called 1) row count changed 2) cache purged\n LazyStore.prototype.fireStoreUpdatedEvent = function () {\n // this results in row model firing ModelUpdated.\n // server side row model also updates the row indexes first\n var event = {\n type: Events.EVENT_STORE_UPDATED\n };\n this.eventService.dispatchEvent(event);\n };\n // gets called when row data updated, and no more refreshing needed\n LazyStore.prototype.fireRefreshFinishedEvent = function () {\n var event = {\n type: Events.EVENT_STORE_REFRESHED,\n route: this.parentRowNode.getRoute(),\n };\n this.eventService.dispatchEvent(event);\n };\n LazyStore.prototype.getBlockStates = function () {\n return this.cache.getBlockStates();\n };\n LazyStore.prototype.getStoreBounds = function () {\n return {\n topPx: this.topPx,\n heightPx: this.heightPx,\n };\n };\n __decorate$r([\n Autowired('ssrmBlockUtils')\n ], LazyStore.prototype, \"blockUtils\", void 0);\n __decorate$r([\n Autowired('ssrmStoreUtils')\n ], LazyStore.prototype, \"storeUtils\", void 0);\n __decorate$r([\n Autowired('columnModel')\n ], LazyStore.prototype, \"columnModel\", void 0);\n __decorate$r([\n Autowired('selectionService')\n ], LazyStore.prototype, \"selectionService\", void 0);\n __decorate$r([\n PostConstruct\n ], LazyStore.prototype, \"init\", null);\n __decorate$r([\n PreDestroy\n ], LazyStore.prototype, \"destroyRowNodes\", null);\n return LazyStore;\n}(BeanStub));\n\nvar __extends$s = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$q = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$4 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar ServerSideRowModel = /** @class */ (function (_super) {\n __extends$s(ServerSideRowModel, _super);\n function ServerSideRowModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.onRowHeightChanged_debounced = _.debounce(_this.onRowHeightChanged.bind(_this), 100);\n _this.pauseStoreUpdateListening = false;\n _this.started = false;\n _this.managingPivotResultColumns = false;\n return _this;\n }\n // we don't implement as lazy row heights is not supported in this row model\n ServerSideRowModel.prototype.ensureRowHeightsValid = function () { return false; };\n ServerSideRowModel.prototype.start = function () {\n this.started = true;\n var datasource = this.gridOptionsService.get('serverSideDatasource');\n if (datasource) {\n this.setDatasource(datasource);\n }\n };\n ServerSideRowModel.prototype.destroyDatasource = function () {\n if (!this.datasource) {\n return;\n }\n if (this.datasource.destroy) {\n this.datasource.destroy();\n }\n this.rowRenderer.datasourceChanged();\n this.datasource = undefined;\n };\n ServerSideRowModel.prototype.addEventListeners = function () {\n this.addManagedListener(this.eventService, Events.EVENT_NEW_COLUMNS_LOADED, this.onColumnEverything.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_STORE_UPDATED, this.onStoreUpdated.bind(this));\n var resetListener = this.resetRootStore.bind(this);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_VALUE_CHANGED, resetListener);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_CHANGED, resetListener);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, resetListener);\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_PIVOT_MODE_CHANGED, resetListener);\n this.addManagedPropertyListener('treeData', resetListener);\n this.verifyProps();\n };\n ServerSideRowModel.prototype.verifyProps = function () {\n if (this.gridOptionsService.exists('initialGroupOrderComparator')) {\n var message_1 = \"AG Grid: initialGroupOrderComparator cannot be used with Server Side Row Model. If using Full Store, then provide the rows to the grid in the desired sort order. If using Infinite Scroll, then sorting is done on the server side, nothing to do with the client.\";\n _.doOnce(function () { return console.warn(message_1); }, 'SSRM.InitialGroupOrderComparator');\n }\n if (this.gridOptionsService.isRowSelection() && !this.gridOptionsService.exists('getRowId')) {\n var message_2 = \"AG Grid: getRowId callback must be provided for Server Side Row Model selection to work correctly.\";\n _.doOnce(function () { return console.warn(message_2); }, 'SSRM.SelectionNeedsRowNodeIdFunc');\n }\n };\n ServerSideRowModel.prototype.setDatasource = function (datasource) {\n // sometimes React, due to async, can call gridApi.setDatasource() before we have started.\n // this happens when React app does this:\n // useEffect(() => setDatasource(ds), []);\n // thus if we set the datasource before the grid UI has finished initialising, we do not set it,\n // and the ssrm.start() method will set the datasoure when the grid is ready.\n if (!this.started) {\n return;\n }\n this.destroyDatasource();\n this.datasource = datasource;\n this.resetRootStore();\n };\n ServerSideRowModel.prototype.applyRowData = function (rowDataParams, startRow, route) {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return;\n }\n var storeToExecuteOn = rootStore.getChildStore(route);\n if (!storeToExecuteOn) {\n return;\n }\n if (storeToExecuteOn instanceof LazyStore) {\n storeToExecuteOn.applyRowData(rowDataParams, startRow, rowDataParams.rowData.length);\n }\n else if (storeToExecuteOn instanceof FullStore) {\n storeToExecuteOn.processServerResult(rowDataParams);\n }\n };\n ServerSideRowModel.prototype.isLastRowIndexKnown = function () {\n var cache = this.getRootStore();\n if (!cache) {\n return false;\n }\n return cache.isLastRowIndexKnown();\n };\n ServerSideRowModel.prototype.onColumnEverything = function () {\n // if first time, always reset\n if (!this.storeParams) {\n this.resetRootStore();\n return;\n }\n // check if anything pertaining to fetching data has changed, and if it has, reset, but if\n // it has not, don't reset\n var rowGroupColumnVos = this.columnsToValueObjects(this.columnModel.getRowGroupColumns());\n var valueColumnVos = this.columnsToValueObjects(this.columnModel.getValueColumns());\n var pivotColumnVos = this.columnsToValueObjects(this.columnModel.getPivotColumns());\n // compares two sets of columns, ensuring no columns have been added or removed (unless specified via allowRemovedColumns)\n // if the columns are found, also ensures the field and aggFunc properties have not been changed.\n var areColsSame = function (params) {\n var oldColsMap = {};\n params.oldCols.forEach(function (col) { return oldColsMap[col.id] = col; });\n var allColsUnchanged = params.newCols.every(function (col) {\n var equivalentCol = oldColsMap[col.id];\n if (equivalentCol) {\n delete oldColsMap[col.id];\n }\n return equivalentCol && equivalentCol.field === col.field && equivalentCol.aggFunc === col.aggFunc;\n });\n var missingCols = !params.allowRemovedColumns && !!Object.values(oldColsMap).length;\n return allColsUnchanged && !missingCols;\n };\n var sortModelDifferent = !_.jsonEquals(this.storeParams.sortModel, this.sortListener.extractSortModel());\n var rowGroupDifferent = !areColsSame({\n oldCols: this.storeParams.rowGroupCols,\n newCols: rowGroupColumnVos,\n });\n var pivotDifferent = !areColsSame({\n oldCols: this.storeParams.pivotCols,\n newCols: pivotColumnVos,\n });\n var valuesDifferent = !!(rowGroupColumnVos === null || rowGroupColumnVos === void 0 ? void 0 : rowGroupColumnVos.length) && !areColsSame({\n oldCols: this.storeParams.valueCols,\n newCols: valueColumnVos,\n allowRemovedColumns: true,\n });\n var resetRequired = sortModelDifferent || rowGroupDifferent || pivotDifferent || valuesDifferent;\n if (resetRequired) {\n this.resetRootStore();\n }\n else {\n // cols may have changed even if we didn't do a reset. storeParams ref will be provided when getRows\n // is called, so it's important to keep it up to date.\n var newParams = this.createStoreParams();\n this.storeParams.rowGroupCols = newParams.rowGroupCols;\n this.storeParams.pivotCols = newParams.pivotCols;\n this.storeParams.valueCols = newParams.valueCols;\n }\n };\n ServerSideRowModel.prototype.destroyRootStore = function () {\n if (!this.rootNode || !this.rootNode.childStore) {\n return;\n }\n this.rootNode.childStore = this.destroyBean(this.rootNode.childStore);\n this.nodeManager.clear();\n };\n ServerSideRowModel.prototype.refreshAfterSort = function (newSortModel, params) {\n if (this.storeParams) {\n this.storeParams.sortModel = newSortModel;\n }\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return;\n }\n rootStore.refreshAfterSort(params);\n this.onStoreUpdated();\n };\n ServerSideRowModel.prototype.generateSecondaryColumns = function (pivotFields) {\n var pivotColumnGroupDefs = this.pivotColDefService.createColDefsFromFields(pivotFields);\n this.managingPivotResultColumns = true;\n this.columnModel.setSecondaryColumns(pivotColumnGroupDefs, \"rowModelUpdated\");\n };\n ServerSideRowModel.prototype.resetRootStore = function () {\n this.destroyRootStore();\n this.rootNode = new RowNode(this.beans);\n this.rootNode.group = true;\n this.rootNode.level = -1;\n if (this.datasource) {\n this.storeParams = this.createStoreParams();\n this.rootNode.childStore = this.createBean(this.storeFactory.createStore(this.storeParams, this.rootNode));\n this.updateRowIndexesAndBounds();\n }\n if (this.managingPivotResultColumns) {\n // if managing pivot columns, also reset secondary columns.\n this.columnModel.setSecondaryColumns(null);\n this.managingPivotResultColumns = false;\n }\n // this event shows/hides 'no rows' overlay\n var rowDataChangedEvent = {\n type: Events.EVENT_ROW_DATA_UPDATED\n };\n this.eventService.dispatchEvent(rowDataChangedEvent);\n // this gets the row to render rows (or remove the previously rendered rows, as it's blank to start).\n // important to NOT pass in an event with keepRenderedRows or animate, as we want the renderer\n // to treat the rows as new rows, as it's all new data\n this.dispatchModelUpdated(true);\n };\n ServerSideRowModel.prototype.columnsToValueObjects = function (columns) {\n var _this = this;\n return columns.map(function (col) { return ({\n id: col.getId(),\n aggFunc: col.getAggFunc(),\n displayName: _this.columnModel.getDisplayNameForColumn(col, 'model'),\n field: col.getColDef().field\n }); });\n };\n ServerSideRowModel.prototype.createStoreParams = function () {\n var rowGroupColumnVos = this.columnsToValueObjects(this.columnModel.getRowGroupColumns());\n var valueColumnVos = this.columnsToValueObjects(this.columnModel.getValueColumns());\n var pivotColumnVos = this.columnsToValueObjects(this.columnModel.getPivotColumns());\n var dynamicRowHeight = this.gridOptionsService.isGetRowHeightFunction();\n var params = {\n // the columns the user has grouped and aggregated by\n valueCols: valueColumnVos,\n rowGroupCols: rowGroupColumnVos,\n pivotCols: pivotColumnVos,\n pivotMode: this.columnModel.isPivotMode(),\n // sort and filter model\n filterModel: this.filterManager.getFilterModel(),\n sortModel: this.sortListener.extractSortModel(),\n datasource: this.datasource,\n lastAccessedSequence: new NumberSequence(),\n // blockSize: blockSize == null ? 100 : blockSize,\n dynamicRowHeight: dynamicRowHeight\n };\n return params;\n };\n ServerSideRowModel.prototype.getParams = function () {\n return this.storeParams;\n };\n ServerSideRowModel.prototype.dispatchModelUpdated = function (reset) {\n if (reset === void 0) { reset = false; }\n var modelUpdatedEvent = {\n type: Events.EVENT_MODEL_UPDATED,\n animate: !reset,\n keepRenderedRows: !reset,\n newPage: false,\n newData: false\n };\n this.eventService.dispatchEvent(modelUpdatedEvent);\n };\n ServerSideRowModel.prototype.onStoreUpdated = function () {\n // sometimes if doing a batch update, we do the batch first,\n // then call onStoreUpdated manually. eg expandAll() method.\n if (this.pauseStoreUpdateListening) {\n return;\n }\n this.updateRowIndexesAndBounds();\n this.dispatchModelUpdated();\n };\n /** This method is debounced. It is used for row auto-height. If we don't debounce,\n * then the Row Models will end up recalculating each row position\n * for each row height change and result in the Row Renderer laying out rows.\n * This is particularly bad if using print layout, and showing eg 1,000 rows,\n * each row will change it's height, causing Row Model to update 1,000 times.\n */\n ServerSideRowModel.prototype.onRowHeightChangedDebounced = function () {\n this.onRowHeightChanged_debounced();\n };\n ServerSideRowModel.prototype.onRowHeightChanged = function () {\n this.updateRowIndexesAndBounds();\n this.dispatchModelUpdated();\n };\n ServerSideRowModel.prototype.updateRowIndexesAndBounds = function () {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return;\n }\n rootStore.setDisplayIndexes(new NumberSequence(), { value: 0 });\n };\n ServerSideRowModel.prototype.retryLoads = function () {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return;\n }\n rootStore.retryLoads();\n this.onStoreUpdated();\n };\n ServerSideRowModel.prototype.getRow = function (index) {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return undefined;\n }\n return rootStore.getRowUsingDisplayIndex(index);\n };\n ServerSideRowModel.prototype.expandAll = function (value) {\n // if we don't pause store updating, we are needlessly\n // recalculating row-indexes etc, and also getting rendering\n // engine to re-render (listens on ModelUpdated event)\n this.pauseStoreUpdateListening = true;\n this.forEachNode(function (node) {\n if (node.stub) {\n return;\n }\n if (node.hasChildren()) {\n node.setExpanded(value);\n }\n });\n this.pauseStoreUpdateListening = false;\n this.onStoreUpdated();\n };\n ServerSideRowModel.prototype.refreshAfterFilter = function (newFilterModel, params) {\n if (this.storeParams) {\n this.storeParams.filterModel = newFilterModel;\n }\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return;\n }\n rootStore.refreshAfterFilter(params);\n this.onStoreUpdated();\n };\n ServerSideRowModel.prototype.getRootStore = function () {\n if (this.rootNode && this.rootNode.childStore) {\n return this.rootNode.childStore;\n }\n };\n ServerSideRowModel.prototype.getRowCount = function () {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return 0;\n }\n return rootStore.getDisplayIndexEnd();\n };\n ServerSideRowModel.prototype.getTopLevelRowCount = function () {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return 1;\n }\n return rootStore.getRowCount();\n };\n ServerSideRowModel.prototype.getTopLevelRowDisplayedIndex = function (topLevelIndex) {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return topLevelIndex;\n }\n return rootStore.getTopLevelRowDisplayedIndex(topLevelIndex);\n };\n ServerSideRowModel.prototype.getRowBounds = function (index) {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n var rowHeight = this.gridOptionsService.getRowHeightAsNumber();\n return {\n rowTop: 0,\n rowHeight: rowHeight\n };\n }\n return rootStore.getRowBounds(index);\n };\n ServerSideRowModel.prototype.getBlockStates = function () {\n var root = this.getRootStore();\n if (!root) {\n return undefined;\n }\n var states = {};\n root.forEachStoreDeep(function (store) {\n if (store instanceof FullStore) {\n var _a = store.getBlockStateJson(), id = _a.id, state = _a.state;\n states[id] = state;\n }\n else if (store instanceof LazyStore) {\n Object.entries(store.getBlockStates()).forEach(function (_a) {\n var _b = __read$4(_a, 2), block = _b[0], state = _b[1];\n states[block] = state;\n });\n }\n else {\n throw new Error('AG Grid: Unsupported store type');\n }\n });\n return states;\n };\n ServerSideRowModel.prototype.getRowIndexAtPixel = function (pixel) {\n var rootStore = this.getRootStore();\n if (pixel <= 0 || !rootStore) {\n return 0;\n }\n return rootStore.getRowIndexAtPixel(pixel);\n };\n ServerSideRowModel.prototype.isEmpty = function () {\n return false;\n };\n ServerSideRowModel.prototype.isRowsToRender = function () {\n return this.getRootStore() != null && this.getRowCount() > 0;\n };\n ServerSideRowModel.prototype.getType = function () {\n return 'serverSide';\n };\n ServerSideRowModel.prototype.forEachNode = function (callback) {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return;\n }\n rootStore.forEachNodeDeep(callback);\n };\n ServerSideRowModel.prototype.forEachNodeAfterFilterAndSort = function (callback, includeFooterNodes) {\n if (includeFooterNodes === void 0) { includeFooterNodes = false; }\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return;\n }\n rootStore.forEachNodeDeepAfterFilterAndSort(callback, undefined, includeFooterNodes);\n };\n ServerSideRowModel.prototype.executeOnStore = function (route, callback) {\n var rootStore = this.getRootStore();\n if (!rootStore) {\n return;\n }\n var storeToExecuteOn = rootStore.getChildStore(route);\n if (storeToExecuteOn) {\n callback(storeToExecuteOn);\n }\n };\n ServerSideRowModel.prototype.refreshStore = function (params) {\n if (params === void 0) { params = {}; }\n var route = params.route ? params.route : [];\n this.executeOnStore(route, function (store) { return store.refreshStore(params.purge == true); });\n };\n ServerSideRowModel.prototype.getStoreState = function () {\n var res = [];\n var rootStore = this.getRootStore();\n if (rootStore) {\n rootStore.addStoreStates(res);\n }\n return res;\n };\n ServerSideRowModel.prototype.getNodesInRangeForSelection = function (firstInRange, lastInRange) {\n if (!_.exists(firstInRange)) {\n return [];\n }\n if (!lastInRange) {\n return [firstInRange];\n }\n var startIndex = firstInRange.rowIndex;\n var endIndex = lastInRange.rowIndex;\n if (startIndex === null || endIndex === null) {\n return [firstInRange];\n }\n var nodeRange = [];\n var _a = __read$4([startIndex, endIndex].sort(function (a, b) { return a - b; }), 2), firstIndex = _a[0], lastIndex = _a[1];\n this.forEachNode(function (node) {\n var thisRowIndex = node.rowIndex;\n if (thisRowIndex == null || node.stub) {\n return;\n }\n if (thisRowIndex >= firstIndex && thisRowIndex <= lastIndex) {\n nodeRange.push(node);\n }\n });\n // don't allow range selection if we don't have the full range of rows\n if (nodeRange.length !== (lastIndex - firstIndex + 1)) {\n return [firstInRange];\n }\n return nodeRange;\n };\n ServerSideRowModel.prototype.getRowNode = function (id) {\n var result;\n this.forEachNode(function (rowNode) {\n if (rowNode.id === id) {\n result = rowNode;\n }\n if (rowNode.detailNode && rowNode.detailNode.id === id) {\n result = rowNode.detailNode;\n }\n });\n return result;\n };\n ServerSideRowModel.prototype.isRowPresent = function (rowNode) {\n var foundRowNode = this.getRowNode(rowNode.id);\n return !!foundRowNode;\n };\n ServerSideRowModel.prototype.setRowCount = function (rowCount, lastRowIndexKnown) {\n var rootStore = this.getRootStore();\n if (rootStore) {\n if (rootStore instanceof LazyStore) {\n rootStore.setRowCount(rowCount, lastRowIndexKnown);\n return;\n }\n console.error('AG Grid: Infinite scrolling must be enabled in order to set the row count.');\n }\n };\n __decorate$q([\n Autowired('columnModel')\n ], ServerSideRowModel.prototype, \"columnModel\", void 0);\n __decorate$q([\n Autowired('filterManager')\n ], ServerSideRowModel.prototype, \"filterManager\", void 0);\n __decorate$q([\n Autowired('rowRenderer')\n ], ServerSideRowModel.prototype, \"rowRenderer\", void 0);\n __decorate$q([\n Autowired('ssrmSortService')\n ], ServerSideRowModel.prototype, \"sortListener\", void 0);\n __decorate$q([\n Autowired('ssrmNodeManager')\n ], ServerSideRowModel.prototype, \"nodeManager\", void 0);\n __decorate$q([\n Autowired('ssrmStoreFactory')\n ], ServerSideRowModel.prototype, \"storeFactory\", void 0);\n __decorate$q([\n Autowired('beans')\n ], ServerSideRowModel.prototype, \"beans\", void 0);\n __decorate$q([\n Optional('pivotColDefService')\n ], ServerSideRowModel.prototype, \"pivotColDefService\", void 0);\n __decorate$q([\n PreDestroy\n ], ServerSideRowModel.prototype, \"destroyDatasource\", null);\n __decorate$q([\n PostConstruct\n ], ServerSideRowModel.prototype, \"addEventListeners\", null);\n __decorate$q([\n PreDestroy\n ], ServerSideRowModel.prototype, \"destroyRootStore\", null);\n ServerSideRowModel = __decorate$q([\n Bean('rowModel')\n ], ServerSideRowModel);\n return ServerSideRowModel;\n}(BeanStub));\n\nvar __extends$r = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$p = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar StoreUtils = /** @class */ (function (_super) {\n __extends$r(StoreUtils, _super);\n function StoreUtils() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n StoreUtils.prototype.loadFromDatasource = function (p) {\n var storeParams = p.storeParams, parentBlock = p.parentBlock, parentNode = p.parentNode;\n var groupKeys = parentNode.getGroupKeys();\n if (!storeParams.datasource) {\n return;\n }\n var request = {\n startRow: p.startRow,\n endRow: p.endRow,\n rowGroupCols: storeParams.rowGroupCols,\n valueCols: storeParams.valueCols,\n pivotCols: storeParams.pivotCols,\n pivotMode: storeParams.pivotMode,\n groupKeys: groupKeys,\n filterModel: storeParams.filterModel,\n sortModel: storeParams.sortModel\n };\n var getRowsParams = {\n successCallback: p.successCallback,\n success: p.success,\n failCallback: p.failCallback,\n fail: p.fail,\n request: request,\n parentNode: p.parentNode,\n api: this.gridApi,\n columnApi: this.columnApi,\n context: this.gridOptionsService.context\n };\n window.setTimeout(function () {\n if (!storeParams.datasource || !parentBlock.isAlive()) {\n // failCallback() is important, to reduce the 'RowNodeBlockLoader.activeBlockLoadsCount' count\n p.failCallback();\n return;\n }\n storeParams.datasource.getRows(getRowsParams);\n }, 0);\n };\n StoreUtils.prototype.getChildStore = function (keys, currentCache, findNodeFunc) {\n if (_.missingOrEmpty(keys)) {\n return currentCache;\n }\n var nextKey = keys[0];\n var nextNode = findNodeFunc(nextKey);\n if (nextNode) {\n // if we have the final node, but not the final store, we create it to allow\n // early population of data\n if (keys.length === 1 && !nextNode.childStore) {\n var storeParams = this.serverSideRowModel.getParams();\n nextNode.childStore = this.createBean(this.storeFactory.createStore(storeParams, nextNode));\n }\n var keyListForNextLevel = keys.slice(1, keys.length);\n var nextStore = nextNode.childStore;\n return nextStore ? nextStore.getChildStore(keyListForNextLevel) : null;\n }\n return null;\n };\n StoreUtils.prototype.isServerRefreshNeeded = function (parentRowNode, rowGroupCols, params) {\n if (params.valueColChanged || params.secondaryColChanged) {\n return true;\n }\n var level = parentRowNode.level + 1;\n var grouping = level < rowGroupCols.length;\n var leafNodes = !grouping;\n if (leafNodes) {\n return true;\n }\n var colIdThisGroup = rowGroupCols[level].id;\n var actionOnThisGroup = params.changedColumns.indexOf(colIdThisGroup) > -1;\n if (actionOnThisGroup) {\n return true;\n }\n var allCols = this.columnModel.getAllGridColumns();\n var affectedGroupCols = allCols\n // find all impacted cols which also a group display column\n .filter(function (col) { return col.getColDef().showRowGroup && params.changedColumns.includes(col.getId()); })\n .map(function (col) { return col.getColDef().showRowGroup; })\n // if displaying all groups, or displaying the effected col for this group, refresh\n .some(function (group) { return group === true || group === colIdThisGroup; });\n return affectedGroupCols;\n };\n StoreUtils.prototype.getServerSideInitialRowCount = function () {\n var rowCount = this.gridOptionsService.getNum('serverSideInitialRowCount');\n if (typeof rowCount === 'number' && rowCount > 0) {\n return rowCount;\n }\n return 1;\n };\n StoreUtils.prototype.assertRowModelIsServerSide = function (key) {\n if (!this.gridOptionsService.isRowModelType('serverSide')) {\n _.doOnce(function () { return console.warn(\"AG Grid: The '\" + key + \"' property can only be used with the Server Side Row Model.\"); }, key);\n return false;\n }\n return true;\n };\n StoreUtils.prototype.assertNotTreeData = function (key) {\n if (this.gridOptionsService.is('treeData')) {\n _.doOnce(function () { return console.warn(\"AG Grid: The '\" + key + \"' property cannot be used while using tree data.\"); }, key + '_TreeData');\n return false;\n }\n return true;\n };\n StoreUtils.prototype.isServerSideSortAllLevels = function () {\n return this.gridOptionsService.is('serverSideSortAllLevels') && this.assertRowModelIsServerSide('serverSideSortAllLevels');\n };\n StoreUtils.prototype.isServerSideOnlyRefreshFilteredGroups = function () {\n return this.gridOptionsService.is('serverSideOnlyRefreshFilteredGroups') && this.assertRowModelIsServerSide('serverSideOnlyRefreshFilteredGroups');\n };\n StoreUtils.prototype.isServerSideSortOnServer = function () {\n return this.gridOptionsService.is('serverSideSortOnServer') && this.assertRowModelIsServerSide('serverSideSortOnServer') && this.assertNotTreeData('serverSideSortOnServer');\n };\n StoreUtils.prototype.isServerSideFilterOnServer = function () {\n return this.gridOptionsService.is('serverSideFilterOnServer') && this.assertRowModelIsServerSide('serverSideFilterOnServer') && this.assertNotTreeData('serverSideFilterOnServer');\n };\n __decorate$p([\n Autowired('columnApi')\n ], StoreUtils.prototype, \"columnApi\", void 0);\n __decorate$p([\n Autowired('columnModel')\n ], StoreUtils.prototype, \"columnModel\", void 0);\n __decorate$p([\n Autowired('gridApi')\n ], StoreUtils.prototype, \"gridApi\", void 0);\n __decorate$p([\n Autowired('rowModel')\n ], StoreUtils.prototype, \"serverSideRowModel\", void 0);\n __decorate$p([\n Autowired('ssrmStoreFactory')\n ], StoreUtils.prototype, \"storeFactory\", void 0);\n StoreUtils = __decorate$p([\n Bean('ssrmStoreUtils')\n ], StoreUtils);\n return StoreUtils;\n}(BeanStub));\n\nvar __extends$q = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$o = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar GROUP_MISSING_KEY_ID = 'ag-Grid-MissingKey';\nvar BlockUtils = /** @class */ (function (_super) {\n __extends$q(BlockUtils, _super);\n function BlockUtils() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BlockUtils.prototype.postConstruct = function () {\n this.rowHeight = this.gridOptionsService.getRowHeightAsNumber();\n this.usingMasterDetail = this.gridOptionsService.is('masterDetail');\n };\n BlockUtils.prototype.createRowNode = function (params) {\n var rowNode = new RowNode(this.beans);\n var rowHeight = params.rowHeight != null ? params.rowHeight : this.rowHeight;\n rowNode.setRowHeight(rowHeight);\n rowNode.group = params.group;\n rowNode.leafGroup = params.leafGroup;\n rowNode.level = params.level;\n rowNode.uiLevel = params.level;\n rowNode.parent = params.parent;\n // stub gets set to true here, and then false when this rowNode gets it's data\n rowNode.stub = true;\n rowNode.__needsRefreshWhenVisible = false;\n if (rowNode.group) {\n rowNode.expanded = false;\n rowNode.field = params.field;\n rowNode.rowGroupColumn = params.rowGroupColumn;\n }\n return rowNode;\n };\n BlockUtils.prototype.destroyRowNodes = function (rowNodes) {\n var _this = this;\n if (rowNodes) {\n rowNodes.forEach(function (row) { return _this.destroyRowNode(row); });\n }\n };\n BlockUtils.prototype.destroyRowNode = function (rowNode, preserveStore) {\n if (preserveStore === void 0) { preserveStore = false; }\n if (rowNode.childStore && !preserveStore) {\n this.destroyBean(rowNode.childStore);\n rowNode.childStore = null;\n }\n // if this has a footer, destroy that too\n if (rowNode.sibling && !rowNode.footer) {\n this.destroyRowNode(rowNode.sibling, false);\n }\n // this is needed, so row render knows to fade out the row, otherwise it\n // sees row top is present, and thinks the row should be shown. maybe\n // rowNode should have a flag on whether it is visible???\n rowNode.clearRowTopAndRowIndex();\n if (rowNode.id != null) {\n this.nodeManager.removeNode(rowNode);\n }\n };\n BlockUtils.prototype.setTreeGroupInfo = function (rowNode) {\n rowNode.updateHasChildren();\n var getKeyFunc = this.gridOptionsService.get('getServerSideGroupKey');\n if (rowNode.hasChildren() && getKeyFunc != null) {\n rowNode.key = getKeyFunc(rowNode.data);\n }\n if (!rowNode.hasChildren() && rowNode.childStore != null) {\n this.destroyBean(rowNode.childStore);\n rowNode.childStore = null;\n rowNode.expanded = false;\n }\n };\n BlockUtils.prototype.setRowGroupInfo = function (rowNode) {\n rowNode.key = this.valueService.getValue(rowNode.rowGroupColumn, rowNode);\n if (rowNode.key === null || rowNode.key === undefined) {\n _.doOnce(function () {\n console.warn(\"AG Grid: null and undefined values are not allowed for server side row model keys\");\n if (rowNode.rowGroupColumn) {\n console.warn(\"column = \" + rowNode.rowGroupColumn.getId());\n }\n console.warn(\"data is \", rowNode.data);\n }, 'ServerSideBlock-CannotHaveNullOrUndefinedForKey');\n }\n var getGroupIncludeFooter = this.beans.gridOptionsService.getGroupIncludeFooter();\n var doesRowShowFooter = getGroupIncludeFooter({ node: rowNode });\n if (doesRowShowFooter) {\n rowNode.createFooter();\n if (rowNode.sibling) {\n rowNode.sibling.uiLevel = rowNode.uiLevel + 1;\n }\n }\n };\n BlockUtils.prototype.setMasterDetailInfo = function (rowNode) {\n var isMasterFunc = this.gridOptionsService.get('isRowMaster');\n if (isMasterFunc != null) {\n rowNode.master = isMasterFunc(rowNode.data);\n }\n else {\n rowNode.master = true;\n }\n };\n BlockUtils.prototype.updateDataIntoRowNode = function (rowNode, data) {\n rowNode.updateData(data);\n if (this.gridOptionsService.is('treeData')) {\n this.setTreeGroupInfo(rowNode);\n this.setChildCountIntoRowNode(rowNode);\n }\n else if (rowNode.group) {\n this.setChildCountIntoRowNode(rowNode);\n if (!rowNode.footer) {\n var getGroupIncludeFooter = this.beans.gridOptionsService.getGroupIncludeFooter();\n var doesRowShowFooter = getGroupIncludeFooter({ node: rowNode });\n if (doesRowShowFooter) {\n if (rowNode.sibling) {\n rowNode.sibling.updateData(data);\n }\n else {\n rowNode.createFooter();\n }\n }\n else if (rowNode.sibling) {\n rowNode.destroyFooter();\n }\n }\n // it's not possible for a node to change whether it's a group or not\n // when doing row grouping (as only rows at certain levels are groups),\n // so nothing to do here\n }\n else if (this.usingMasterDetail) ;\n };\n BlockUtils.prototype.setDataIntoRowNode = function (rowNode, data, defaultId, cachedRowHeight) {\n var _a;\n rowNode.stub = false;\n var treeData = this.gridOptionsService.is('treeData');\n if (_.exists(data)) {\n rowNode.setDataAndId(data, defaultId);\n if (treeData) {\n this.setTreeGroupInfo(rowNode);\n }\n else if (rowNode.group) {\n this.setRowGroupInfo(rowNode);\n }\n else if (this.usingMasterDetail) {\n this.setMasterDetailInfo(rowNode);\n }\n }\n else {\n rowNode.setDataAndId(undefined, undefined);\n rowNode.key = null;\n }\n if (treeData || rowNode.group) {\n this.setGroupDataIntoRowNode(rowNode);\n this.setChildCountIntoRowNode(rowNode);\n }\n // this needs to be done AFTER setGroupDataIntoRowNode(), as the height can depend on the group data\n // getting set, if it's a group node and colDef.autoHeight=true\n if (_.exists(data)) {\n rowNode.setRowHeight(this.gridOptionsService.getRowHeightForNode(rowNode, false, cachedRowHeight).height);\n (_a = rowNode.sibling) === null || _a === void 0 ? void 0 : _a.setRowHeight(this.gridOptionsService.getRowHeightForNode(rowNode.sibling, false, cachedRowHeight).height);\n }\n };\n BlockUtils.prototype.setChildCountIntoRowNode = function (rowNode) {\n var getChildCount = this.gridOptionsService.get('getChildCount');\n if (getChildCount) {\n rowNode.setAllChildrenCount(getChildCount(rowNode.data));\n }\n };\n BlockUtils.prototype.setGroupDataIntoRowNode = function (rowNode) {\n var _this = this;\n var groupDisplayCols = this.columnModel.getGroupDisplayColumns();\n var usingTreeData = this.gridOptionsService.is('treeData');\n groupDisplayCols.forEach(function (col) {\n if (rowNode.groupData == null) {\n rowNode.groupData = {};\n }\n if (usingTreeData) {\n rowNode.groupData[col.getColId()] = rowNode.key;\n }\n else if (col.isRowGroupDisplayed(rowNode.rowGroupColumn.getId())) {\n var groupValue = _this.valueService.getValue(rowNode.rowGroupColumn, rowNode);\n rowNode.groupData[col.getColId()] = groupValue;\n }\n });\n };\n BlockUtils.prototype.clearDisplayIndex = function (rowNode) {\n rowNode.clearRowTopAndRowIndex();\n var hasChildStore = rowNode.hasChildren() && _.exists(rowNode.childStore);\n if (hasChildStore) {\n var childStore = rowNode.childStore;\n childStore.clearDisplayIndexes();\n }\n var hasDetailNode = rowNode.master && rowNode.detailNode;\n if (hasDetailNode) {\n rowNode.detailNode.clearRowTopAndRowIndex();\n }\n };\n BlockUtils.prototype.setDisplayIndex = function (rowNode, displayIndexSeq, nextRowTop) {\n // set this row\n rowNode.setRowIndex(displayIndexSeq.next());\n rowNode.setRowTop(nextRowTop.value);\n nextRowTop.value += rowNode.rowHeight;\n if (rowNode.footer) {\n return;\n }\n // set child for master / detail\n var hasDetailRow = rowNode.master;\n if (hasDetailRow) {\n if (rowNode.expanded && rowNode.detailNode) {\n rowNode.detailNode.setRowIndex(displayIndexSeq.next());\n rowNode.detailNode.setRowTop(nextRowTop.value);\n nextRowTop.value += rowNode.detailNode.rowHeight;\n }\n else if (rowNode.detailNode) {\n rowNode.detailNode.clearRowTopAndRowIndex();\n }\n }\n // set children for SSRM child rows\n var hasChildStore = rowNode.hasChildren() && _.exists(rowNode.childStore);\n if (hasChildStore) {\n var childStore = rowNode.childStore;\n if (rowNode.expanded) {\n childStore.setDisplayIndexes(displayIndexSeq, nextRowTop);\n }\n else {\n // we need to clear the row tops, as the row renderer depends on\n // this to know if the row should be faded out\n childStore.clearDisplayIndexes();\n }\n }\n };\n BlockUtils.prototype.binarySearchForDisplayIndex = function (displayRowIndex, rowNodes) {\n var bottomPointer = 0;\n var topPointer = rowNodes.length - 1;\n if (_.missing(topPointer) || _.missing(bottomPointer)) {\n console.warn(\"AG Grid: error: topPointer = \" + topPointer + \", bottomPointer = \" + bottomPointer);\n return undefined;\n }\n while (true) {\n var midPointer = Math.floor((bottomPointer + topPointer) / 2);\n var currentRowNode = rowNodes[midPointer];\n // first check current row for index\n if (currentRowNode.rowIndex === displayRowIndex) {\n return currentRowNode;\n }\n // then check if current row contains a detail row with the index\n var expandedMasterRow = currentRowNode.master && currentRowNode.expanded;\n var detailNode = currentRowNode.detailNode;\n if (expandedMasterRow && detailNode && detailNode.rowIndex === displayRowIndex) {\n return currentRowNode.detailNode;\n }\n // then check if child cache contains index\n var childStore = currentRowNode.childStore;\n if (currentRowNode.expanded && childStore && childStore.isDisplayIndexInStore(displayRowIndex)) {\n return childStore.getRowUsingDisplayIndex(displayRowIndex);\n }\n // otherwise adjust pointers to continue searching for index\n if (currentRowNode.rowIndex < displayRowIndex) {\n bottomPointer = midPointer + 1;\n }\n else if (currentRowNode.rowIndex > displayRowIndex) {\n topPointer = midPointer - 1;\n }\n else {\n console.warn(\"AG Grid: error: unable to locate rowIndex = \" + displayRowIndex + \" in cache\");\n return undefined;\n }\n }\n };\n BlockUtils.prototype.extractRowBounds = function (rowNode, index) {\n var extractRowBounds = function (currentRowNode) { return ({\n rowHeight: currentRowNode.rowHeight,\n rowTop: currentRowNode.rowTop\n }); };\n if (rowNode.rowIndex === index) {\n return extractRowBounds(rowNode);\n }\n if (rowNode.hasChildren() && rowNode.expanded && _.exists(rowNode.childStore)) {\n var childStore = rowNode.childStore;\n if (childStore.isDisplayIndexInStore(index)) {\n return childStore.getRowBounds(index);\n }\n }\n else if (rowNode.master && rowNode.expanded && _.exists(rowNode.detailNode)) {\n if (rowNode.detailNode.rowIndex === index) {\n return extractRowBounds(rowNode.detailNode);\n }\n }\n };\n BlockUtils.prototype.getIndexAtPixel = function (rowNode, pixel) {\n // first check if pixel is in range of current row\n if (rowNode.isPixelInRange(pixel)) {\n return rowNode.rowIndex;\n }\n // then check if current row contains a detail row with pixel in range\n var expandedMasterRow = rowNode.master && rowNode.expanded;\n var detailNode = rowNode.detailNode;\n if (expandedMasterRow && detailNode && detailNode.isPixelInRange(pixel)) {\n return rowNode.detailNode.rowIndex;\n }\n // then check if it's a group row with a child cache with pixel in range\n if (rowNode.hasChildren() && rowNode.expanded && _.exists(rowNode.childStore)) {\n var childStore = rowNode.childStore;\n if (childStore.isPixelInRange(pixel)) {\n return childStore.getRowIndexAtPixel(pixel);\n }\n }\n return null;\n // pixel is not within this row node or it's children / detail, so return undefined\n };\n BlockUtils.prototype.createNodeIdPrefix = function (parentRowNode) {\n var parts = [];\n var rowNode = parentRowNode;\n // pull keys from all parent nodes, but do not include the root node\n while (rowNode && rowNode.level >= 0) {\n if (rowNode.key === '') {\n parts.push(GROUP_MISSING_KEY_ID);\n }\n else {\n parts.push(rowNode.key);\n }\n rowNode = rowNode.parent;\n }\n if (parts.length > 0) {\n return parts.reverse().join('-');\n }\n // no prefix, so node id's are left as they are\n return undefined;\n };\n BlockUtils.prototype.checkOpenByDefault = function (rowNode) {\n if (!rowNode.isExpandable()) {\n return;\n }\n var userFunc = this.gridOptionsService.getCallback('isServerSideGroupOpenByDefault');\n if (!userFunc) {\n return;\n }\n var params = {\n data: rowNode.data,\n rowNode: rowNode\n };\n var userFuncRes = userFunc(params);\n if (userFuncRes) {\n // we do this in a timeout, so that we don't expand a row node while in the middle\n // of setting up rows, setting up rows is complex enough without another chunk of work\n // getting added to the call stack. this is also helpful as openByDefault may or may\n // not happen (so makes setting up rows more deterministic by expands never happening)\n // and also checkOpenByDefault is shard with both store types, so easier control how it\n // impacts things by keeping it in new VM turn.\n window.setTimeout(function () { return rowNode.setExpanded(true); }, 0);\n }\n };\n __decorate$o([\n Autowired('valueService')\n ], BlockUtils.prototype, \"valueService\", void 0);\n __decorate$o([\n Autowired('columnModel')\n ], BlockUtils.prototype, \"columnModel\", void 0);\n __decorate$o([\n Autowired('ssrmNodeManager')\n ], BlockUtils.prototype, \"nodeManager\", void 0);\n __decorate$o([\n Autowired('beans')\n ], BlockUtils.prototype, \"beans\", void 0);\n __decorate$o([\n PostConstruct\n ], BlockUtils.prototype, \"postConstruct\", null);\n BlockUtils = __decorate$o([\n Bean('ssrmBlockUtils')\n ], BlockUtils);\n return BlockUtils;\n}(BeanStub));\n\nvar __decorate$n = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar NodeManager = /** @class */ (function () {\n function NodeManager() {\n this.rowNodes = {};\n }\n NodeManager.prototype.addRowNode = function (rowNode) {\n var id = rowNode.id;\n if (this.rowNodes[id]) {\n console.warn(\"AG Grid: Duplicate node id \" + rowNode.id + \". Row ID's are provided via the getRowId() callback. Please modify the getRowId() callback code to provide unique row id values.\");\n console.warn('first instance', this.rowNodes[id].data);\n console.warn('second instance', rowNode.data);\n }\n this.rowNodes[id] = rowNode;\n };\n NodeManager.prototype.removeNode = function (rowNode) {\n var id = rowNode.id;\n if (this.rowNodes[id]) {\n this.rowNodes[id] = undefined;\n }\n };\n NodeManager.prototype.clear = function () {\n this.rowNodes = {};\n };\n __decorate$n([\n PreDestroy\n ], NodeManager.prototype, \"clear\", null);\n NodeManager = __decorate$n([\n Bean('ssrmNodeManager')\n ], NodeManager);\n return NodeManager;\n}());\n\nvar __extends$p = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$m = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TransactionManager = /** @class */ (function (_super) {\n __extends$p(TransactionManager, _super);\n function TransactionManager() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.asyncTransactions = [];\n return _this;\n }\n TransactionManager.prototype.postConstruct = function () {\n // only want to be active if SSRM active, otherwise would be interfering with other row models\n if (!this.gridOptionsService.isRowModelType('serverSide')) {\n return;\n }\n };\n TransactionManager.prototype.applyTransactionAsync = function (transaction, callback) {\n if (this.asyncTransactionsTimeout == null) {\n this.scheduleExecuteAsync();\n }\n this.asyncTransactions.push({ transaction: transaction, callback: callback });\n };\n TransactionManager.prototype.scheduleExecuteAsync = function () {\n var _this = this;\n var waitMillis = this.gridOptionsService.getAsyncTransactionWaitMillis();\n this.asyncTransactionsTimeout = window.setTimeout(function () {\n _this.executeAsyncTransactions();\n }, waitMillis);\n };\n TransactionManager.prototype.executeAsyncTransactions = function () {\n var _this = this;\n if (!this.asyncTransactions) {\n return;\n }\n var resultFuncs = [];\n var resultsForEvent = [];\n var transactionsToRetry = [];\n var atLeastOneTransactionApplied = false;\n this.asyncTransactions.forEach(function (txWrapper) {\n var result;\n _this.serverSideRowModel.executeOnStore(txWrapper.transaction.route, function (cache) {\n result = cache.applyTransaction(txWrapper.transaction);\n });\n if (result == undefined) {\n result = { status: ServerSideTransactionResultStatus.StoreNotFound };\n }\n resultsForEvent.push(result);\n var retryTransaction = result.status == ServerSideTransactionResultStatus.StoreLoading;\n if (retryTransaction) {\n transactionsToRetry.push(txWrapper);\n return;\n }\n if (txWrapper.callback) {\n resultFuncs.push(function () { return txWrapper.callback(result); });\n }\n if (result.status === ServerSideTransactionResultStatus.Applied) {\n atLeastOneTransactionApplied = true;\n }\n });\n // do callbacks in next VM turn so it's async\n if (resultFuncs.length > 0) {\n window.setTimeout(function () {\n resultFuncs.forEach(function (func) { return func(); });\n }, 0);\n }\n this.asyncTransactionsTimeout = undefined;\n // this will be empty list if nothing to retry\n this.asyncTransactions = transactionsToRetry;\n if (atLeastOneTransactionApplied) {\n this.valueCache.onDataChanged();\n this.eventService.dispatchEvent({ type: Events.EVENT_STORE_UPDATED });\n }\n if (resultsForEvent.length > 0) {\n var event_1 = {\n type: Events.EVENT_ASYNC_TRANSACTIONS_FLUSHED,\n results: resultsForEvent\n };\n this.eventService.dispatchEvent(event_1);\n }\n };\n TransactionManager.prototype.flushAsyncTransactions = function () {\n // the timeout could be missing, if we are flushing due to row data loaded\n if (this.asyncTransactionsTimeout != null) {\n clearTimeout(this.asyncTransactionsTimeout);\n }\n this.executeAsyncTransactions();\n };\n TransactionManager.prototype.applyTransaction = function (transaction) {\n var res;\n this.serverSideRowModel.executeOnStore(transaction.route, function (store) {\n res = store.applyTransaction(transaction);\n });\n if (res) {\n this.valueCache.onDataChanged();\n if (res.remove) {\n var removedRowIds = res.remove.map(function (row) { return row.id; });\n this.selectionService.deleteSelectionStateFromParent(transaction.route || [], removedRowIds);\n }\n this.eventService.dispatchEvent({ type: Events.EVENT_STORE_UPDATED });\n return res;\n }\n else {\n return { status: ServerSideTransactionResultStatus.StoreNotFound };\n }\n };\n __decorate$m([\n Autowired('rowNodeBlockLoader')\n ], TransactionManager.prototype, \"rowNodeBlockLoader\", void 0);\n __decorate$m([\n Autowired('valueCache')\n ], TransactionManager.prototype, \"valueCache\", void 0);\n __decorate$m([\n Autowired('rowModel')\n ], TransactionManager.prototype, \"serverSideRowModel\", void 0);\n __decorate$m([\n Autowired('rowRenderer')\n ], TransactionManager.prototype, \"rowRenderer\", void 0);\n __decorate$m([\n Autowired('selectionService')\n ], TransactionManager.prototype, \"selectionService\", void 0);\n __decorate$m([\n PostConstruct\n ], TransactionManager.prototype, \"postConstruct\", null);\n TransactionManager = __decorate$m([\n Bean('ssrmTransactionManager')\n ], TransactionManager);\n return TransactionManager;\n}(BeanStub));\n\nvar __extends$o = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$l = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ExpandListener = /** @class */ (function (_super) {\n __extends$o(ExpandListener, _super);\n function ExpandListener() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ExpandListener.prototype.postConstruct = function () {\n // only want to be active if SSRM active, otherwise would be interfering with other row models\n if (!this.gridOptionsService.isRowModelType('serverSide')) {\n return;\n }\n this.addManagedListener(this.eventService, Events.EVENT_ROW_GROUP_OPENED, this.onRowGroupOpened.bind(this));\n };\n ExpandListener.prototype.onRowGroupOpened = function (event) {\n var rowNode = event.node;\n if (rowNode.expanded) {\n if (rowNode.master) {\n this.createDetailNode(rowNode);\n }\n else if (_.missing(rowNode.childStore)) {\n var storeParams = this.serverSideRowModel.getParams();\n rowNode.childStore = this.createBean(this.storeFactory.createStore(storeParams, rowNode));\n }\n }\n else if (this.gridOptionsService.is('purgeClosedRowNodes') && _.exists(rowNode.childStore)) {\n rowNode.childStore = this.destroyBean(rowNode.childStore);\n }\n var storeUpdatedEvent = { type: Events.EVENT_STORE_UPDATED };\n this.eventService.dispatchEvent(storeUpdatedEvent);\n };\n ExpandListener.prototype.createDetailNode = function (masterNode) {\n if (_.exists(masterNode.detailNode)) {\n return masterNode.detailNode;\n }\n var detailNode = new RowNode(this.beans);\n detailNode.detail = true;\n detailNode.selectable = false;\n detailNode.parent = masterNode;\n if (_.exists(masterNode.id)) {\n detailNode.id = 'detail_' + masterNode.id;\n }\n detailNode.data = masterNode.data;\n detailNode.level = masterNode.level + 1;\n var defaultDetailRowHeight = 200;\n var rowHeight = this.gridOptionsService.getRowHeightForNode(detailNode).height;\n detailNode.rowHeight = rowHeight ? rowHeight : defaultDetailRowHeight;\n masterNode.detailNode = detailNode;\n return detailNode;\n };\n __decorate$l([\n Autowired('rowModel')\n ], ExpandListener.prototype, \"serverSideRowModel\", void 0);\n __decorate$l([\n Autowired('ssrmStoreFactory')\n ], ExpandListener.prototype, \"storeFactory\", void 0);\n __decorate$l([\n Autowired('beans')\n ], ExpandListener.prototype, \"beans\", void 0);\n __decorate$l([\n PostConstruct\n ], ExpandListener.prototype, \"postConstruct\", null);\n ExpandListener = __decorate$l([\n Bean('ssrmExpandListener')\n ], ExpandListener);\n return ExpandListener;\n}(BeanStub));\n\nvar __extends$n = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$k = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SortListener = /** @class */ (function (_super) {\n __extends$n(SortListener, _super);\n function SortListener() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SortListener.prototype.postConstruct = function () {\n // only want to be active if SSRM active, otherwise would be interfering with other row models\n if (!this.gridOptionsService.isRowModelType('serverSide')) {\n return;\n }\n this.addManagedListener(this.eventService, Events.EVENT_SORT_CHANGED, this.onSortChanged.bind(this));\n };\n SortListener.prototype.extractSortModel = function () {\n var sortModel = this.sortController.getSortModel();\n // when using tree data we just return the sort model with the 'ag-Grid-AutoColumn' as is, i.e not broken out\n // into it's constitute group columns as they are not defined up front and can vary per node.\n if (this.gridOptionsService.is('treeData')) {\n return sortModel;\n }\n // it autoCol is active, we don't want to send this to the server. instead we want to\n // send the\n this.replaceAutoGroupColumnWithActualRowGroupColumns(sortModel);\n this.removeMultiColumnPrefixOnColumnIds(sortModel);\n return sortModel;\n };\n SortListener.prototype.removeMultiColumnPrefixOnColumnIds = function (sortModel) {\n if (this.gridOptionsService.isGroupMultiAutoColumn()) {\n var multiColumnPrefix = GROUP_AUTO_COLUMN_ID + \"-\";\n for (var i = 0; i < sortModel.length; ++i) {\n if (sortModel[i].colId.indexOf(multiColumnPrefix) > -1) {\n sortModel[i].colId = sortModel[i].colId.substr(multiColumnPrefix.length);\n }\n }\n }\n };\n SortListener.prototype.replaceAutoGroupColumnWithActualRowGroupColumns = function (sortModel) {\n // find index of auto group column in sort model\n var autoGroupSortModel = sortModel.find(function (sm) { return sm.colId == GROUP_AUTO_COLUMN_ID; });\n // replace auto column with individual group columns\n if (autoGroupSortModel) {\n // remove auto group column\n var autoGroupIndex = sortModel.indexOf(autoGroupSortModel);\n _.removeFromArray(sortModel, autoGroupSortModel);\n var isNotInSortModel = function (col) { return sortModel.filter(function (sm) { return sm.colId === col.getColId(); }).length == 0; };\n var mapColumnToSortModel = function (col) { return ({ colId: col.getId(), sort: autoGroupSortModel.sort }); };\n var newModels = this.columnModel.getRowGroupColumns()\n .filter(isNotInSortModel)\n .map(mapColumnToSortModel);\n _.insertArrayIntoArray(sortModel, newModels, autoGroupIndex);\n }\n };\n SortListener.prototype.onSortChanged = function () {\n var storeParams = this.serverSideRowModel.getParams();\n if (!storeParams) {\n return;\n } // params is undefined if no datasource set\n var newSortModel = this.extractSortModel();\n var oldSortModel = storeParams.sortModel;\n var changedColumns = this.findChangedColumnsInSort(newSortModel, oldSortModel);\n var valueColChanged = this.listenerUtils.isSortingWithValueColumn(changedColumns);\n var secondaryColChanged = this.listenerUtils.isSortingWithSecondaryColumn(changedColumns);\n var params = {\n valueColChanged: valueColChanged,\n secondaryColChanged: secondaryColChanged,\n changedColumns: changedColumns\n };\n this.serverSideRowModel.refreshAfterSort(newSortModel, params);\n };\n // returns back all the cols that were effected by the sorting. eg if we were sorting by col A,\n // and now we are sorting by col B, the list of impacted cols should be A and B. so if a cache\n // is impacted by sorting on A or B then it needs to be refreshed. this includes where the cache\n // was previously sorted by A and then the A sort now needs to be cleared.\n SortListener.prototype.findChangedColumnsInSort = function (newSortModel, oldSortModel) {\n var allColsInBothSorts = [];\n [newSortModel, oldSortModel].forEach(function (sortModel) {\n if (sortModel) {\n var ids = sortModel.map(function (sm) { return sm.colId; });\n allColsInBothSorts = allColsInBothSorts.concat(ids);\n }\n });\n var differentSorts = function (oldSortItem, newSortItem) {\n var oldSort = oldSortItem ? oldSortItem.sort : null;\n var newSort = newSortItem ? newSortItem.sort : null;\n return oldSort !== newSort;\n };\n var differentIndexes = function (oldSortItem, newSortItem) {\n var oldIndex = oldSortItem ? oldSortModel.indexOf(oldSortItem) : -1;\n var newIndex = newSortItem ? newSortModel.indexOf(newSortItem) : -1;\n return oldIndex !== newIndex;\n };\n return allColsInBothSorts.filter(function (colId) {\n var oldSortItem = oldSortModel.find(function (sm) { return sm.colId === colId; });\n var newSortItem = newSortModel.find(function (sm) { return sm.colId === colId; });\n return differentSorts(oldSortItem, newSortItem) || differentIndexes(oldSortItem, newSortItem);\n });\n };\n __decorate$k([\n Autowired('sortController')\n ], SortListener.prototype, \"sortController\", void 0);\n __decorate$k([\n Autowired('columnModel')\n ], SortListener.prototype, \"columnModel\", void 0);\n __decorate$k([\n Autowired('rowModel')\n ], SortListener.prototype, \"serverSideRowModel\", void 0);\n __decorate$k([\n Autowired('ssrmListenerUtils')\n ], SortListener.prototype, \"listenerUtils\", void 0);\n __decorate$k([\n PostConstruct\n ], SortListener.prototype, \"postConstruct\", null);\n SortListener = __decorate$k([\n Bean('ssrmSortService')\n ], SortListener);\n return SortListener;\n}(BeanStub));\n\nvar __extends$m = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$j = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FilterListener = /** @class */ (function (_super) {\n __extends$m(FilterListener, _super);\n function FilterListener() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FilterListener.prototype.postConstruct = function () {\n // only want to be active if SSRM active, otherwise would be interfering with other row models\n if (!this.gridOptionsService.isRowModelType('serverSide')) {\n return;\n }\n this.addManagedListener(this.eventService, Events.EVENT_FILTER_CHANGED, this.onFilterChanged.bind(this));\n };\n FilterListener.prototype.onFilterChanged = function () {\n var storeParams = this.serverSideRowModel.getParams();\n if (!storeParams) {\n return;\n } // params is undefined if no datasource set\n var newModel = this.filterManager.getFilterModel();\n var oldModel = storeParams ? storeParams.filterModel : {};\n var changedColumns = this.findChangedColumns(newModel, oldModel);\n var valueColChanged = this.listenerUtils.isSortingWithValueColumn(changedColumns);\n var secondaryColChanged = this.listenerUtils.isSortingWithSecondaryColumn(changedColumns);\n var params = {\n valueColChanged: valueColChanged,\n secondaryColChanged: secondaryColChanged,\n changedColumns: changedColumns\n };\n this.serverSideRowModel.refreshAfterFilter(newModel, params);\n };\n FilterListener.prototype.findChangedColumns = function (oldModel, newModel) {\n var allColKeysMap = {};\n Object.keys(oldModel).forEach(function (key) { return allColKeysMap[key] = true; });\n Object.keys(newModel).forEach(function (key) { return allColKeysMap[key] = true; });\n var res = [];\n Object.keys(allColKeysMap).forEach(function (key) {\n var oldJson = JSON.stringify(oldModel[key]);\n var newJson = JSON.stringify(newModel[key]);\n var filterChanged = oldJson != newJson;\n if (filterChanged) {\n res.push(key);\n }\n });\n return res;\n };\n __decorate$j([\n Autowired('rowModel')\n ], FilterListener.prototype, \"serverSideRowModel\", void 0);\n __decorate$j([\n Autowired('filterManager')\n ], FilterListener.prototype, \"filterManager\", void 0);\n __decorate$j([\n Autowired('ssrmListenerUtils')\n ], FilterListener.prototype, \"listenerUtils\", void 0);\n __decorate$j([\n PostConstruct\n ], FilterListener.prototype, \"postConstruct\", null);\n FilterListener = __decorate$j([\n Bean('ssrmFilterListener')\n ], FilterListener);\n return FilterListener;\n}(BeanStub));\n\nvar __decorate$i = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar StoreFactory = /** @class */ (function () {\n function StoreFactory() {\n }\n StoreFactory.prototype.createStore = function (ssrmParams, parentNode) {\n var storeParams = this.getStoreParams(ssrmParams, parentNode);\n var CacheClass = storeParams.suppressInfiniteScroll ? FullStore : LazyStore;\n return new CacheClass(ssrmParams, storeParams, parentNode);\n };\n StoreFactory.prototype.getStoreParams = function (ssrmParams, parentNode) {\n var userStoreParams = this.getLevelSpecificParams(parentNode);\n // if user provided overrideParams, we take infiniteScroll from there if it exists\n var infiniteScroll = this.isInfiniteScroll(userStoreParams);\n var cacheBlockSize = this.getBlockSize(infiniteScroll, userStoreParams);\n var maxBlocksInCache = this.getMaxBlocksInCache(infiniteScroll, ssrmParams, userStoreParams);\n var storeParams = {\n suppressInfiniteScroll: !infiniteScroll,\n cacheBlockSize: cacheBlockSize,\n maxBlocksInCache: maxBlocksInCache\n };\n return storeParams;\n };\n StoreFactory.prototype.getMaxBlocksInCache = function (infiniteScroll, ssrmParams, userStoreParams) {\n if (!infiniteScroll) {\n return undefined;\n }\n var maxBlocksInCache = (userStoreParams && userStoreParams.maxBlocksInCache != null)\n ? userStoreParams.maxBlocksInCache\n : this.gridOptionsService.getNum('maxBlocksInCache');\n var maxBlocksActive = maxBlocksInCache != null && maxBlocksInCache >= 0;\n if (!maxBlocksActive) {\n return undefined;\n }\n if (ssrmParams.dynamicRowHeight) {\n var message_1 = 'AG Grid: Server Side Row Model does not support Dynamic Row Height and Cache Purging. ' +\n 'Either a) remove getRowHeight() callback or b) remove maxBlocksInCache property. Purging has been disabled.';\n _.doOnce(function () { return console.warn(message_1); }, 'storeFactory.maxBlocksInCache.dynamicRowHeight');\n return undefined;\n }\n if (this.columnModel.isAutoRowHeightActive()) {\n var message_2 = 'AG Grid: Server Side Row Model does not support Auto Row Height and Cache Purging. ' +\n 'Either a) remove colDef.autoHeight or b) remove maxBlocksInCache property. Purging has been disabled.';\n _.doOnce(function () { return console.warn(message_2); }, 'storeFactory.maxBlocksInCache.autoRowHeightActive');\n return undefined;\n }\n return maxBlocksInCache;\n };\n StoreFactory.prototype.getBlockSize = function (infiniteScroll, userStoreParams) {\n if (!infiniteScroll) {\n return undefined;\n }\n var blockSize = (userStoreParams && userStoreParams.cacheBlockSize != null)\n ? userStoreParams.cacheBlockSize\n : this.gridOptionsService.getNum('cacheBlockSize');\n if (blockSize != null && blockSize > 0) {\n return blockSize;\n }\n else {\n return 100;\n }\n };\n StoreFactory.prototype.getLevelSpecificParams = function (parentNode) {\n var callback = this.gridOptionsService.getCallback('getServerSideGroupLevelParams');\n if (!callback) {\n return undefined;\n }\n var params = {\n level: parentNode.level + 1,\n parentRowNode: parentNode.level >= 0 ? parentNode : undefined,\n rowGroupColumns: this.columnModel.getRowGroupColumns(),\n pivotColumns: this.columnModel.getPivotColumns(),\n pivotMode: this.columnModel.isPivotMode()\n };\n var res = callback(params);\n if (res.storeType != null) {\n res.suppressInfiniteScroll = res.storeType !== \"partial\";\n }\n return res;\n };\n StoreFactory.prototype.isInfiniteScroll = function (storeParams) {\n var res = (storeParams && storeParams.suppressInfiniteScroll != null)\n ? storeParams.suppressInfiniteScroll\n : this.isSuppressServerSideInfiniteScroll();\n return !res;\n };\n StoreFactory.prototype.isSuppressServerSideInfiniteScroll = function () {\n return this.gridOptionsService.is('suppressServerSideInfiniteScroll');\n };\n __decorate$i([\n Autowired('gridOptionsService')\n ], StoreFactory.prototype, \"gridOptionsService\", void 0);\n __decorate$i([\n Autowired('columnModel')\n ], StoreFactory.prototype, \"columnModel\", void 0);\n StoreFactory = __decorate$i([\n Bean('ssrmStoreFactory')\n ], StoreFactory);\n return StoreFactory;\n}());\n\nvar __decorate$h = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar ListenerUtils = /** @class */ (function () {\n function ListenerUtils() {\n }\n ListenerUtils.prototype.isSortingWithValueColumn = function (changedColumnsInSort) {\n var valueColIds = this.columnModel.getValueColumns().map(function (col) { return col.getColId(); });\n for (var i = 0; i < changedColumnsInSort.length; i++) {\n if (valueColIds.indexOf(changedColumnsInSort[i]) > -1) {\n return true;\n }\n }\n return false;\n };\n ListenerUtils.prototype.isSortingWithSecondaryColumn = function (changedColumnsInSort) {\n if (!this.columnModel.getSecondaryColumns()) {\n return false;\n }\n var secondaryColIds = this.columnModel.getSecondaryColumns().map(function (col) { return col.getColId(); });\n for (var i = 0; i < changedColumnsInSort.length; i++) {\n if (secondaryColIds.indexOf(changedColumnsInSort[i]) > -1) {\n return true;\n }\n }\n return false;\n };\n __decorate$h([\n Autowired('columnModel')\n ], ListenerUtils.prototype, \"columnModel\", void 0);\n ListenerUtils = __decorate$h([\n Bean('ssrmListenerUtils')\n ], ListenerUtils);\n return ListenerUtils;\n}());\n\nvar __extends$l = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$g = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __read$3 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$3 = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar DefaultStrategy = /** @class */ (function (_super) {\n __extends$l(DefaultStrategy, _super);\n function DefaultStrategy() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.selectedState = { selectAll: false, toggledNodes: new Set() };\n _this.lastSelected = null;\n _this.selectAllUsed = false;\n // this is to prevent regressions, default selectionService retains reference of clicked nodes.\n _this.selectedNodes = {};\n return _this;\n }\n DefaultStrategy.prototype.init = function () {\n var _this = this;\n this.rowSelection = this.gridOptionsService.get('rowSelection');\n this.addManagedPropertyListener('rowSelection', function (propChange) {\n _this.rowSelection = propChange.currentValue;\n });\n };\n DefaultStrategy.prototype.getSelectedState = function () {\n return {\n selectAll: this.selectedState.selectAll,\n toggledNodes: __spreadArray$3([], __read$3(this.selectedState.toggledNodes)),\n };\n };\n DefaultStrategy.prototype.setSelectedState = function (state) {\n // fire selection changed event\n var newState = {\n selectAll: false,\n toggledNodes: new Set(),\n };\n if (typeof state !== 'object') {\n console.error('AG Grid: The provided selection state should be an object.');\n return;\n }\n if ('selectAll' in state && typeof state.selectAll === 'boolean') {\n newState.selectAll = state.selectAll;\n }\n else {\n console.error('AG Grid: Select all status should be of boolean type.');\n return;\n }\n if ('toggledNodes' in state && Array.isArray(state.toggledNodes)) {\n state.toggledNodes.forEach(function (key) {\n if (typeof key === 'string') {\n newState.toggledNodes.add(key);\n }\n else {\n console.warn(\"AG Grid: Provided ids must be of string type. Invalid id provided: \" + key);\n }\n });\n }\n else {\n console.error('AG Grid: `toggledNodes` must be an array of string ids.');\n return;\n }\n this.selectedState = newState;\n };\n DefaultStrategy.prototype.deleteSelectionStateFromParent = function (parentPath, removedNodeIds) {\n var _this = this;\n if (this.selectedState.toggledNodes.size === 0) {\n return false;\n }\n var anyNodesToggled = false;\n removedNodeIds.forEach(function (id) {\n if (_this.selectedState.toggledNodes.delete(id)) {\n anyNodesToggled = true;\n }\n });\n return anyNodesToggled;\n };\n DefaultStrategy.prototype.setNodesSelected = function (params) {\n var _a;\n var _this = this;\n if (params.nodes.length === 0)\n return 0;\n var onlyThisNode = params.clearSelection && params.newValue && !params.rangeSelect;\n if (this.rowSelection !== 'multiple' || onlyThisNode) {\n if (params.nodes.length > 1) {\n throw new Error('AG Grid: cannot select multiple rows when rowSelection is set to \\'single\\'');\n }\n var node = params.nodes[0];\n if (params.newValue) {\n this.selectedNodes = (_a = {}, _a[node.id] = node, _a);\n this.selectedState = {\n selectAll: false,\n toggledNodes: new Set([node.id]),\n };\n }\n else {\n this.selectedNodes = {};\n this.selectedState = {\n selectAll: false,\n toggledNodes: new Set(),\n };\n }\n this.lastSelected = node.id;\n return 1;\n }\n var updateNodeState = function (node) {\n if (params.newValue) {\n _this.selectedNodes[node.id] = node;\n }\n else {\n delete _this.selectedNodes[node.id];\n }\n var isNodeSelectable = node.selectable;\n var doesNodeConform = params.newValue === _this.selectedState.selectAll;\n if (doesNodeConform || !isNodeSelectable) {\n _this.selectedState.toggledNodes.delete(node.id);\n return;\n }\n _this.selectedState.toggledNodes.add(node.id);\n };\n if (params.rangeSelect && this.lastSelected) {\n if (params.nodes.length > 1) {\n throw new Error('AG Grid: cannot select multiple rows when using rangeSelect');\n }\n var node = params.nodes[0];\n var lastSelectedNode = this.rowModel.getRowNode(this.lastSelected);\n this.rowModel.getNodesInRangeForSelection(node, lastSelectedNode !== null && lastSelectedNode !== void 0 ? lastSelectedNode : null).forEach(updateNodeState);\n this.lastSelected = node.id;\n return 1;\n }\n params.nodes.forEach(updateNodeState);\n this.lastSelected = params.nodes[params.nodes.length - 1].id;\n return 1;\n };\n DefaultStrategy.prototype.processNewRow = function (node) {\n if (this.selectedNodes[node.id]) {\n this.selectedNodes[node.id] = node;\n }\n };\n DefaultStrategy.prototype.isNodeSelected = function (node) {\n var isToggled = this.selectedState.toggledNodes.has(node.id);\n return this.selectedState.selectAll ? !isToggled : isToggled;\n };\n DefaultStrategy.prototype.getSelectedNodes = function () {\n if (this.selectAllUsed) {\n console.warn(\"AG Grid: getSelectedNodes and getSelectedRows functions cannot be used with select all functionality with the server-side row model.\\n Use `api.getServerSideSelectionState()` instead.\");\n }\n return Object.values(this.selectedNodes);\n };\n DefaultStrategy.prototype.getSelectedRows = function () {\n return this.getSelectedNodes().map(function (node) { return node.data; });\n };\n DefaultStrategy.prototype.getSelectionCount = function () {\n if (this.selectedState.selectAll) {\n return -1;\n }\n return this.selectedState.toggledNodes.size;\n };\n DefaultStrategy.prototype.clearOtherNodes = function (rowNodeToKeepSelected, source) {\n var clearedRows = this.selectedState.selectAll ? 1 : this.selectedState.toggledNodes.size - 1;\n this.selectedState = {\n selectAll: false,\n toggledNodes: new Set([rowNodeToKeepSelected.id]),\n };\n this.rowModel.forEachNode(function (node) {\n if (node !== rowNodeToKeepSelected) {\n node.selectThisNode(false, undefined, source);\n }\n });\n var event = {\n type: Events.EVENT_SELECTION_CHANGED,\n source: source,\n };\n this.eventService.dispatchEvent(event);\n return clearedRows;\n };\n DefaultStrategy.prototype.isEmpty = function () {\n var _a;\n return !this.selectedState.selectAll && !((_a = this.selectedState.toggledNodes) === null || _a === void 0 ? void 0 : _a.size);\n };\n DefaultStrategy.prototype.selectAllRowNodes = function (params) {\n this.selectedState = { selectAll: true, toggledNodes: new Set() };\n this.selectedNodes = {};\n this.selectAllUsed = true;\n };\n DefaultStrategy.prototype.deselectAllRowNodes = function (params) {\n this.selectedState = { selectAll: false, toggledNodes: new Set() };\n this.selectedNodes = {};\n };\n DefaultStrategy.prototype.getSelectAllState = function (justFiltered, justCurrentPage) {\n if (this.selectedState.selectAll) {\n if (this.selectedState.toggledNodes.size > 0) {\n return null;\n }\n return true;\n }\n if (this.selectedState.toggledNodes.size > 0) {\n return null;\n }\n return false;\n };\n __decorate$g([\n Autowired('rowModel')\n ], DefaultStrategy.prototype, \"rowModel\", void 0);\n __decorate$g([\n PostConstruct\n ], DefaultStrategy.prototype, \"init\", null);\n return DefaultStrategy;\n}(BeanStub));\n\nvar __extends$k = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$2 = (undefined && undefined.__assign) || function () {\n __assign$2 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$2.apply(this, arguments);\n};\nvar __decorate$f = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __rest$1 = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __read$2 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$2 = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar GroupSelectsChildrenStrategy = /** @class */ (function (_super) {\n __extends$k(GroupSelectsChildrenStrategy, _super);\n function GroupSelectsChildrenStrategy() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.selectedState = { selectAllChildren: false, toggledNodes: new Map() };\n _this.lastSelected = null;\n return _this;\n }\n GroupSelectsChildrenStrategy.prototype.init = function () {\n var _this = this;\n // if model has updated, a store may now be fully loaded to clean up indeterminate states\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, function () { return _this.removeRedundantState(); });\n // when the grouping changes, the state no longer makes sense, so reset the state.\n this.addManagedListener(this.eventService, Events.EVENT_COLUMN_ROW_GROUP_CHANGED, function () { return _this.selectionService.reset(); });\n };\n GroupSelectsChildrenStrategy.prototype.getSelectedState = function () {\n var _this = this;\n var recursivelySerializeState = function (state, level, nodeId) {\n var normalisedState = {\n nodeId: nodeId,\n };\n if (level <= _this.columnModel.getRowGroupColumns().length) {\n normalisedState.selectAllChildren = state.selectAllChildren;\n }\n // omit toggledNodes if empty\n if (state.toggledNodes.size) {\n var toggledNodes_1 = [];\n state.toggledNodes.forEach(function (value, key) {\n var newState = recursivelySerializeState(value, level + 1, key);\n toggledNodes_1.push(newState);\n });\n normalisedState.toggledNodes = toggledNodes_1;\n }\n return normalisedState;\n };\n return recursivelySerializeState(this.selectedState, 0);\n };\n GroupSelectsChildrenStrategy.prototype.setSelectedState = function (state) {\n var recursivelyDeserializeState = function (normalisedState, parentSelected) {\n var _a, _b;\n if (typeof normalisedState !== 'object') {\n throw new Error('AG Grid: Each provided state object must be an object.');\n }\n if ('selectAllChildren' in normalisedState && typeof normalisedState.selectAllChildren !== 'boolean') {\n throw new Error('AG Grid: `selectAllChildren` must be a boolean value or undefined.');\n }\n if ('toggledNodes' in normalisedState) {\n if (!Array.isArray(normalisedState.toggledNodes)) {\n throw new Error('AG Grid: `toggledNodes` must be an array.');\n }\n var allHaveIds = normalisedState.toggledNodes.every(function (innerState) { return (typeof innerState === 'object' && 'nodeId' in innerState && typeof innerState.nodeId === 'string'); });\n if (!allHaveIds) {\n throw new Error('AG Grid: Every `toggledNode` requires an associated string id.');\n }\n }\n var isThisNodeSelected = (_a = normalisedState.selectAllChildren) !== null && _a !== void 0 ? _a : !parentSelected;\n var convertedChildren = (_b = normalisedState.toggledNodes) === null || _b === void 0 ? void 0 : _b.map(function (innerState) { return ([innerState.nodeId, recursivelyDeserializeState(innerState, isThisNodeSelected)]); });\n var doesRedundantStateExist = convertedChildren === null || convertedChildren === void 0 ? void 0 : convertedChildren.some(function (_a) {\n var _b = __read$2(_a, 2); _b[0]; var innerState = _b[1];\n return isThisNodeSelected === innerState.selectAllChildren && innerState.toggledNodes.size === 0;\n });\n if (doesRedundantStateExist) {\n throw new Error(\"\\n AG Grid: AG Grid: Row selection state could not be parsed due to invalid data. Ensure all child state has toggledNodes or does not conform with the parent rule.\\n Please rebuild the selection state and reapply it.\\n \");\n }\n return {\n selectAllChildren: isThisNodeSelected,\n toggledNodes: new Map(convertedChildren),\n };\n };\n try {\n this.selectedState = recursivelyDeserializeState(state, !!state.selectAllChildren);\n }\n catch (e) {\n console.error(e.message);\n }\n };\n GroupSelectsChildrenStrategy.prototype.deleteSelectionStateFromParent = function (parentRoute, removedNodeIds) {\n var parentState = this.selectedState;\n var remainingRoute = __spreadArray$2([], __read$2(parentRoute));\n while (parentState && remainingRoute.length) {\n parentState = parentState.toggledNodes.get(remainingRoute.pop());\n }\n // parent has no explicit state, nothing to remove\n if (!parentState) {\n return false;\n }\n var anyStateChanged = false;\n removedNodeIds.forEach(function (id) {\n if (parentState === null || parentState === void 0 ? void 0 : parentState.toggledNodes.delete(id)) {\n anyStateChanged = true;\n }\n });\n if (anyStateChanged) {\n this.removeRedundantState();\n }\n return anyStateChanged;\n };\n GroupSelectsChildrenStrategy.prototype.setNodesSelected = function (params) {\n var _this = this;\n var nodes = params.nodes, other = __rest$1(params, [\"nodes\"]);\n if (nodes.length === 0)\n return 0;\n if (params.rangeSelect) {\n if (nodes.length > 1) {\n throw new Error('AG Grid: cannot select multiple rows when using rangeSelect');\n }\n var node_1 = nodes[0];\n var rangeOfNodes = this.rowModel.getNodesInRangeForSelection(node_1, this.lastSelected);\n // sort the routes by route length, high to low, this means we can do the lowest level children first\n var routes = rangeOfNodes.map(this.getRouteToNode).sort(function (a, b) { return b.length - a.length; });\n // skip routes if we've already done a descendent\n var completedRoutes_1 = new Set();\n routes.forEach(function (route) {\n // skip routes if we've already selected a descendent\n if (completedRoutes_1.has(route[route.length - 1])) {\n return;\n }\n route.forEach(function (part) { return completedRoutes_1.add(part); });\n _this.recursivelySelectNode(route, _this.selectedState, __assign$2({ node: node_1 }, other));\n });\n this.removeRedundantState();\n this.lastSelected = node_1;\n return 1;\n }\n params.nodes.forEach(function (node) {\n var idPathToNode = _this.getRouteToNode(node);\n _this.recursivelySelectNode(idPathToNode, _this.selectedState, __assign$2(__assign$2({}, other), { node: node }));\n });\n this.removeRedundantState();\n this.lastSelected = params.nodes[params.nodes.length - 1];\n return 1;\n };\n GroupSelectsChildrenStrategy.prototype.isNodeSelected = function (node) {\n var path = this.getRouteToNode(node);\n return this.isNodePathSelected(path, this.selectedState);\n };\n GroupSelectsChildrenStrategy.prototype.isNodePathSelected = function (_a, state) {\n var _b = __read$2(_a), nextNode = _b[0], nodes = _b.slice(1);\n if (nodes.length === 0) {\n var isToggled = state.toggledNodes.has(nextNode.id);\n if (nextNode.hasChildren()) {\n var groupState = state.toggledNodes.get(nextNode.id);\n if (groupState && groupState.toggledNodes.size) {\n return undefined;\n }\n }\n return state.selectAllChildren ? !isToggled : isToggled;\n }\n // if there's a deeper level, check recursively\n if (state.toggledNodes.has(nextNode.id)) {\n var nextState = state.toggledNodes.get(nextNode.id);\n if (nextState) {\n return this.isNodePathSelected(nodes, nextState);\n }\n }\n // no deeper custom state, respect the closest default\n return !!state.selectAllChildren;\n };\n GroupSelectsChildrenStrategy.prototype.getRouteToNode = function (node) {\n var pathToNode = [];\n var tempNode = node;\n while (tempNode.parent) {\n pathToNode.push(tempNode);\n tempNode = tempNode.parent;\n }\n return pathToNode.reverse();\n };\n GroupSelectsChildrenStrategy.prototype.removeRedundantState = function () {\n var _this = this;\n if (this.filterManager.isAnyFilterPresent()) {\n return;\n }\n var recursivelyRemoveState = function (selectedState, store, node) {\n if (selectedState === void 0) { selectedState = _this.selectedState; }\n if (store === void 0) { store = _this.serverSideRowModel.getRootStore(); }\n var allChildNodesFound = true;\n var noIndeterminateChildren = true;\n selectedState.toggledNodes.forEach(function (state, id) {\n var parentNode = _this.rowModel.getRowNode(id);\n if (!parentNode) {\n allChildNodesFound = false;\n }\n var nextStore = parentNode === null || parentNode === void 0 ? void 0 : parentNode.childStore;\n if (!nextStore) {\n if (state.toggledNodes.size > 0) {\n noIndeterminateChildren = false;\n }\n return;\n }\n // if child was cleared, check if this state is still relevant\n if (recursivelyRemoveState(state, nextStore, parentNode)) {\n // cleans out groups which have no toggled nodes and an equivalent default to its parent\n if (selectedState.selectAllChildren === state.selectAllChildren) {\n selectedState.toggledNodes.delete(id);\n }\n }\n if (state.toggledNodes.size > 0) {\n noIndeterminateChildren = false;\n }\n });\n if (!store || !store.isLastRowIndexKnown() || store.getRowCount() !== selectedState.toggledNodes.size) {\n // if row count unknown, or doesn't match the size of toggledNodes, ignore.\n return false;\n }\n if (noIndeterminateChildren && allChildNodesFound) {\n selectedState.toggledNodes.clear();\n selectedState.selectAllChildren = !selectedState.selectAllChildren;\n // if node was indeterminate, it's not any more.\n if (node && (node === null || node === void 0 ? void 0 : node.isSelected()) !== selectedState.selectAllChildren) {\n node.selectThisNode(selectedState.selectAllChildren, undefined, 'api');\n }\n return true;\n }\n return false;\n };\n recursivelyRemoveState();\n };\n GroupSelectsChildrenStrategy.prototype.recursivelySelectNode = function (_a, selectedState, params) {\n var _b = __read$2(_a), nextNode = _b[0], nodes = _b.slice(1);\n if (!nextNode) {\n return;\n }\n // if this is the last node, hard add/remove based on its selectAllChildren state\n var isLastNode = !nodes.length;\n if (isLastNode) {\n // if the node is not selectable, we should never have it in selection state\n var isNodeSelectable = nextNode.selectable;\n var doesNodeConform = selectedState.selectAllChildren === params.newValue;\n if (doesNodeConform || !isNodeSelectable) {\n selectedState.toggledNodes.delete(nextNode.id);\n return;\n }\n var newState = {\n selectAllChildren: params.newValue,\n toggledNodes: new Map(),\n };\n selectedState.toggledNodes.set(nextNode.id, newState);\n return;\n }\n var doesStateAlreadyExist = selectedState.toggledNodes.has(nextNode.id);\n var childState = doesStateAlreadyExist ? (selectedState.toggledNodes.get(nextNode.id)) : {\n selectAllChildren: selectedState.selectAllChildren,\n toggledNodes: new Map(),\n };\n if (!doesStateAlreadyExist) {\n selectedState.toggledNodes.set(nextNode.id, childState);\n }\n this.recursivelySelectNode(nodes, childState, params);\n // cleans out groups which have no toggled nodes and an equivalent default to its parent\n if (selectedState.selectAllChildren === childState.selectAllChildren && childState.toggledNodes.size === 0) {\n selectedState.toggledNodes.delete(nextNode.id);\n }\n };\n GroupSelectsChildrenStrategy.prototype.getSelectedNodes = function () {\n console.warn(\"AG Grid: `getSelectedNodes` and `getSelectedRows` functions cannot be used with `groupSelectsChildren` and the server-side row model.\\n Use `api.getServerSideSelectionState()` instead.\");\n var selectedNodes = [];\n this.rowModel.forEachNode(function (node) {\n if (node.isSelected()) {\n selectedNodes.push(node);\n }\n });\n return selectedNodes;\n };\n GroupSelectsChildrenStrategy.prototype.processNewRow = function (node) {\n // This is used for updating outdated node refs, as this model entirely uses ids it's irrelevant\n };\n GroupSelectsChildrenStrategy.prototype.getSelectedRows = function () {\n return this.getSelectedNodes().map(function (node) { return node.data; });\n };\n GroupSelectsChildrenStrategy.prototype.getSelectionCount = function () {\n return -1;\n };\n GroupSelectsChildrenStrategy.prototype.isEmpty = function () {\n var _a;\n return !this.selectedState.selectAllChildren && !((_a = this.selectedState.toggledNodes) === null || _a === void 0 ? void 0 : _a.size);\n };\n GroupSelectsChildrenStrategy.prototype.selectAllRowNodes = function (params) {\n this.selectedState = { selectAllChildren: true, toggledNodes: new Map() };\n };\n GroupSelectsChildrenStrategy.prototype.deselectAllRowNodes = function (params) {\n this.selectedState = { selectAllChildren: false, toggledNodes: new Map() };\n };\n GroupSelectsChildrenStrategy.prototype.getSelectAllState = function (justFiltered, justCurrentPage) {\n if (this.selectedState.selectAllChildren) {\n if (this.selectedState.toggledNodes.size > 0) {\n return null;\n }\n return true;\n }\n if (this.selectedState.toggledNodes.size > 0) {\n return null;\n }\n return false;\n };\n __decorate$f([\n Autowired('rowModel')\n ], GroupSelectsChildrenStrategy.prototype, \"rowModel\", void 0);\n __decorate$f([\n Autowired('columnModel')\n ], GroupSelectsChildrenStrategy.prototype, \"columnModel\", void 0);\n __decorate$f([\n Autowired('filterManager')\n ], GroupSelectsChildrenStrategy.prototype, \"filterManager\", void 0);\n __decorate$f([\n Autowired('rowModel')\n ], GroupSelectsChildrenStrategy.prototype, \"serverSideRowModel\", void 0);\n __decorate$f([\n Autowired('selectionService')\n ], GroupSelectsChildrenStrategy.prototype, \"selectionService\", void 0);\n __decorate$f([\n PostConstruct\n ], GroupSelectsChildrenStrategy.prototype, \"init\", null);\n return GroupSelectsChildrenStrategy;\n}(BeanStub));\n\nvar __extends$j = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign$1 = (undefined && undefined.__assign) || function () {\n __assign$1 = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign$1.apply(this, arguments);\n};\nvar __decorate$e = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar __rest = (undefined && undefined.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar ServerSideSelectionService = /** @class */ (function (_super) {\n __extends$j(ServerSideSelectionService, _super);\n function ServerSideSelectionService() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ServerSideSelectionService.prototype.init = function () {\n var _this = this;\n var groupSelectsChildren = this.gridOptionsService.is('groupSelectsChildren');\n this.addManagedPropertyListener('groupSelectsChildren', function (propChange) {\n _this.destroyBean(_this.selectionStrategy);\n var StrategyClazz = !propChange.currentValue ? DefaultStrategy : GroupSelectsChildrenStrategy;\n _this.selectionStrategy = _this.createManagedBean(new StrategyClazz());\n _this.shotgunResetNodeSelectionState();\n var event = {\n type: Events.EVENT_SELECTION_CHANGED,\n source: 'api',\n };\n _this.eventService.dispatchEvent(event);\n });\n this.rowSelection = this.gridOptionsService.get('rowSelection');\n this.addManagedPropertyListener('rowSelection', function (propChange) { return _this.rowSelection = propChange.currentValue; });\n var StrategyClazz = !groupSelectsChildren ? DefaultStrategy : GroupSelectsChildrenStrategy;\n this.selectionStrategy = this.createManagedBean(new StrategyClazz());\n };\n ServerSideSelectionService.prototype.getServerSideSelectionState = function () {\n return this.selectionStrategy.getSelectedState();\n };\n ServerSideSelectionService.prototype.setServerSideSelectionState = function (state) {\n this.selectionStrategy.setSelectedState(state);\n this.shotgunResetNodeSelectionState();\n var event = {\n type: Events.EVENT_SELECTION_CHANGED,\n source: 'api',\n };\n this.eventService.dispatchEvent(event);\n };\n ServerSideSelectionService.prototype.setNodesSelected = function (params) {\n var nodes = params.nodes, otherParams = __rest(params, [\"nodes\"]);\n if (nodes.length > 1 && this.rowSelection !== 'multiple') {\n console.warn(\"AG Grid: cannot multi select while rowSelection='single'\");\n return 0;\n }\n if (nodes.length > 1 && params.rangeSelect) {\n console.warn(\"AG Grid: cannot use range selection when multi selecting rows\");\n return 0;\n }\n var adjustedParams = __assign$1({ nodes: nodes.filter(function (node) { return node.selectable; }) }, otherParams);\n // if no selectable nodes, then return 0\n if (!adjustedParams.nodes.length) {\n return 0;\n }\n var changedNodes = this.selectionStrategy.setNodesSelected(adjustedParams);\n this.shotgunResetNodeSelectionState(adjustedParams.source);\n var event = {\n type: Events.EVENT_SELECTION_CHANGED,\n source: adjustedParams.source,\n };\n this.eventService.dispatchEvent(event);\n return changedNodes;\n };\n /**\n * Deletes the selection state for a set of nodes, for use after deleting nodes via\n * transaction. As this is designed for transactions, all nodes should belong to the same group.\n */\n ServerSideSelectionService.prototype.deleteSelectionStateFromParent = function (storeRoute, removedNodeIds) {\n var stateChanged = this.selectionStrategy.deleteSelectionStateFromParent(storeRoute, removedNodeIds);\n if (!stateChanged) {\n return;\n }\n this.shotgunResetNodeSelectionState();\n var event = {\n type: Events.EVENT_SELECTION_CHANGED,\n source: 'api',\n };\n this.eventService.dispatchEvent(event);\n };\n ServerSideSelectionService.prototype.shotgunResetNodeSelectionState = function (source) {\n var _this = this;\n this.rowModel.forEachNode(function (node) {\n if (node.stub) {\n return;\n }\n var isNodeSelected = _this.selectionStrategy.isNodeSelected(node);\n if (isNodeSelected !== node.isSelected()) {\n node.selectThisNode(isNodeSelected, undefined, source);\n }\n });\n };\n ServerSideSelectionService.prototype.getSelectedNodes = function () {\n return this.selectionStrategy.getSelectedNodes();\n };\n ServerSideSelectionService.prototype.getSelectedRows = function () {\n return this.selectionStrategy.getSelectedRows();\n };\n ServerSideSelectionService.prototype.getSelectionCount = function () {\n return this.selectionStrategy.getSelectionCount();\n };\n ServerSideSelectionService.prototype.syncInRowNode = function (rowNode, oldNode) {\n // update any refs being held in the strategies\n this.selectionStrategy.processNewRow(rowNode);\n var isNodeSelected = this.selectionStrategy.isNodeSelected(rowNode);\n // if the node was selected but node is not selectable, we deselect the node.\n // (could be due to user applying selected state directly, or a change in selectable)\n if (isNodeSelected != false && !rowNode.selectable) {\n this.selectionStrategy.setNodesSelected({\n nodes: [rowNode],\n newValue: false,\n source: 'api',\n });\n // we need to shotgun reset here as if this was hierarchical, some group nodes\n // may be changing from indeterminate to unchecked.\n this.shotgunResetNodeSelectionState();\n var event_1 = {\n type: Events.EVENT_SELECTION_CHANGED,\n source: 'api',\n };\n this.eventService.dispatchEvent(event_1);\n return;\n }\n rowNode.setSelectedInitialValue(isNodeSelected);\n };\n ServerSideSelectionService.prototype.reset = function () {\n this.selectionStrategy.deselectAllRowNodes({ source: 'api' });\n };\n ServerSideSelectionService.prototype.isEmpty = function () {\n return this.selectionStrategy.isEmpty();\n };\n ServerSideSelectionService.prototype.selectAllRowNodes = function (params) {\n if (params.justCurrentPage || params.justFiltered) {\n console.warn(\"AG Grid: selecting just filtered only works when gridOptions.rowModelType='clientSide'\");\n }\n this.selectionStrategy.selectAllRowNodes(params);\n this.rowModel.forEachNode(function (node) {\n if (node.stub) {\n return;\n }\n node.selectThisNode(true, undefined, params.source);\n });\n var event = {\n type: Events.EVENT_SELECTION_CHANGED,\n source: params.source,\n };\n this.eventService.dispatchEvent(event);\n };\n ServerSideSelectionService.prototype.deselectAllRowNodes = function (params) {\n if (params.justCurrentPage || params.justFiltered) {\n console.warn(\"AG Grid: selecting just filtered only works when gridOptions.rowModelType='clientSide'\");\n }\n this.selectionStrategy.deselectAllRowNodes(params);\n this.rowModel.forEachNode(function (node) {\n if (node.stub) {\n return;\n }\n node.selectThisNode(false, undefined, params.source);\n });\n var event = {\n type: Events.EVENT_SELECTION_CHANGED,\n source: params.source,\n };\n this.eventService.dispatchEvent(event);\n };\n ServerSideSelectionService.prototype.getSelectAllState = function (justFiltered, justCurrentPage) {\n return this.selectionStrategy.getSelectAllState(justFiltered, justCurrentPage);\n };\n // used by CSRM\n ServerSideSelectionService.prototype.updateGroupsFromChildrenSelections = function (source, changedPath) {\n return false;\n };\n // used by CSRM\n ServerSideSelectionService.prototype.getBestCostNodeSelection = function () {\n console.warn('AG Grid: calling gridApi.getBestCostNodeSelection() is only possible when using rowModelType=`clientSide`.');\n return undefined;\n };\n // used by CSRM\n ServerSideSelectionService.prototype.filterFromSelection = function () {\n return;\n };\n __decorate$e([\n Autowired('rowModel')\n ], ServerSideSelectionService.prototype, \"rowModel\", void 0);\n __decorate$e([\n PostConstruct\n ], ServerSideSelectionService.prototype, \"init\", null);\n ServerSideSelectionService = __decorate$e([\n Bean('selectionService')\n ], ServerSideSelectionService);\n return ServerSideSelectionService;\n}(BeanStub));\n\n// DO NOT UPDATE MANUALLY: Generated from script during build time\nvar VERSION$4 = '30.2.0';\n\nvar ServerSideRowModelModule = {\n version: VERSION$4,\n moduleName: ModuleNames.ServerSideRowModelModule,\n rowModel: 'serverSide',\n beans: [ServerSideRowModel, ExpandListener, SortListener, StoreUtils, BlockUtils, NodeManager, TransactionManager,\n FilterListener, StoreFactory, ListenerUtils, ServerSideSelectionService],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\n/** @param V type of value in the Set Filter */\nvar ClientSideValuesExtractor = /** @class */ (function () {\n function ClientSideValuesExtractor(rowModel, filterParams, createKey, caseFormat, columnModel, valueService, treeDataOrGrouping, treeData, getDataPath, groupAllowUnbalanced) {\n this.rowModel = rowModel;\n this.filterParams = filterParams;\n this.createKey = createKey;\n this.caseFormat = caseFormat;\n this.columnModel = columnModel;\n this.valueService = valueService;\n this.treeDataOrGrouping = treeDataOrGrouping;\n this.treeData = treeData;\n this.getDataPath = getDataPath;\n this.groupAllowUnbalanced = groupAllowUnbalanced;\n }\n ClientSideValuesExtractor.prototype.extractUniqueValues = function (predicate, existingValues) {\n var _this = this;\n var values = new Map();\n var existingFormattedKeys = this.extractExistingFormattedKeys(existingValues);\n var formattedKeys = new Set();\n var treeData = this.treeData && !!this.getDataPath;\n var groupedCols = this.columnModel.getRowGroupColumns();\n var addValue = function (unformattedKey, value) {\n var formattedKey = _this.caseFormat(unformattedKey);\n if (!formattedKeys.has(formattedKey)) {\n formattedKeys.add(formattedKey);\n var keyToAdd = unformattedKey;\n var valueToAdd = _.makeNull(value);\n // when case insensitive, we pick the first value to use. if this is later filtered out,\n // we still want to use the original value and not one with a different case\n var existingUnformattedKey = existingFormattedKeys === null || existingFormattedKeys === void 0 ? void 0 : existingFormattedKeys.get(formattedKey);\n if (existingUnformattedKey != null) {\n keyToAdd = existingUnformattedKey;\n valueToAdd = existingValues.get(existingUnformattedKey);\n }\n values.set(keyToAdd, valueToAdd);\n }\n };\n this.rowModel.forEachLeafNode(function (node) {\n // only pull values from rows that have data. this means we skip filler group nodes.\n if (!node.data || !predicate(node)) {\n return;\n }\n if (_this.treeDataOrGrouping) {\n _this.addValueForTreeDataOrGrouping(node, treeData, groupedCols, addValue);\n return;\n }\n var value = _this.getValue(node);\n if (_this.filterParams.convertValuesToStrings) {\n // for backwards compatibility - keeping separate as it will eventually be removed\n _this.addValueForConvertValuesToString(node, value, addValue);\n return;\n }\n if (value != null && Array.isArray(value)) {\n value.forEach(function (x) {\n addValue(_this.createKey(x, node), x);\n });\n if (value.length === 0) {\n addValue(null, null);\n }\n }\n else {\n addValue(_this.createKey(value, node), value);\n }\n });\n return values;\n };\n ClientSideValuesExtractor.prototype.addValueForConvertValuesToString = function (node, value, addValue) {\n var key = this.createKey(value, node);\n if (key != null && Array.isArray(key)) {\n key.forEach(function (part) {\n var processedPart = _.toStringOrNull(_.makeNull(part));\n addValue(processedPart, processedPart);\n });\n if (key.length === 0) {\n addValue(null, null);\n }\n }\n else {\n addValue(key, key);\n }\n };\n ClientSideValuesExtractor.prototype.addValueForTreeDataOrGrouping = function (node, treeData, groupedCols, addValue) {\n var _this = this;\n var _a;\n var dataPath;\n if (treeData) {\n if ((_a = node.childrenAfterGroup) === null || _a === void 0 ? void 0 : _a.length) {\n return;\n }\n dataPath = this.getDataPath(node.data);\n }\n else {\n dataPath = groupedCols.map(function (groupCol) { return _this.valueService.getKeyForNode(groupCol, node); });\n dataPath.push(this.getValue(node));\n }\n if (dataPath) {\n dataPath = dataPath.map(function (treeKey) { return _.toStringOrNull(_.makeNull(treeKey)); });\n }\n if (!treeData && this.groupAllowUnbalanced && (dataPath === null || dataPath === void 0 ? void 0 : dataPath.some(function (treeKey) { return treeKey == null; }))) {\n dataPath = dataPath.filter(function (treeKey) { return treeKey != null; });\n }\n addValue(this.createKey(dataPath), dataPath);\n };\n ClientSideValuesExtractor.prototype.getValue = function (node) {\n var _a = this.filterParams, api = _a.api, colDef = _a.colDef, column = _a.column, columnApi = _a.columnApi, context = _a.context;\n return this.filterParams.valueGetter({\n api: api,\n colDef: colDef,\n column: column,\n columnApi: columnApi,\n context: context,\n data: node.data,\n getValue: function (field) { return node.data[field]; },\n node: node,\n });\n };\n ClientSideValuesExtractor.prototype.extractExistingFormattedKeys = function (existingValues) {\n var _this = this;\n if (!existingValues) {\n return null;\n }\n var existingFormattedKeys = new Map();\n existingValues.forEach(function (_value, key) {\n existingFormattedKeys.set(_this.caseFormat(key), key);\n });\n return existingFormattedKeys;\n };\n return ClientSideValuesExtractor;\n}());\n\nvar SetFilterDisplayValue = /** @class */ (function () {\n function SetFilterDisplayValue() {\n }\n SetFilterDisplayValue.SELECT_ALL = '__AG_SELECT_ALL__';\n SetFilterDisplayValue.ADD_SELECTION_TO_FILTER = '__AG_ADD_SELECTION_TO_FILTER__';\n return SetFilterDisplayValue;\n}());\n\nvar __values$2 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar FlatSetDisplayValueModel = /** @class */ (function () {\n function FlatSetDisplayValueModel(valueFormatterService, valueFormatter, formatter, column) {\n this.valueFormatterService = valueFormatterService;\n this.valueFormatter = valueFormatter;\n this.formatter = formatter;\n this.column = column;\n /** All keys that are currently displayed, after the mini-filter has been applied. */\n this.displayedKeys = [];\n }\n FlatSetDisplayValueModel.prototype.updateDisplayedValuesToAllAvailable = function (_getValue, _allKeys, availableKeys) {\n this.displayedKeys = Array.from(availableKeys);\n };\n FlatSetDisplayValueModel.prototype.updateDisplayedValuesToMatchMiniFilter = function (getValue, _allKeys, availableKeys, matchesFilter, nullMatchesFilter) {\n var e_1, _a;\n this.displayedKeys = [];\n try {\n for (var availableKeys_1 = __values$2(availableKeys), availableKeys_1_1 = availableKeys_1.next(); !availableKeys_1_1.done; availableKeys_1_1 = availableKeys_1.next()) {\n var key = availableKeys_1_1.value;\n if (key == null) {\n if (nullMatchesFilter) {\n this.displayedKeys.push(key);\n }\n }\n else {\n var value = getValue(key);\n var valueFormatterValue = this.valueFormatterService.formatValue(this.column, null, value, this.valueFormatter, false);\n var textFormatterValue = this.formatter(valueFormatterValue);\n if (matchesFilter(textFormatterValue)) {\n this.displayedKeys.push(key);\n }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (availableKeys_1_1 && !availableKeys_1_1.done && (_a = availableKeys_1.return)) _a.call(availableKeys_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n FlatSetDisplayValueModel.prototype.getDisplayedValueCount = function () {\n return this.displayedKeys.length;\n };\n FlatSetDisplayValueModel.prototype.getDisplayedItem = function (index) {\n return this.displayedKeys[index];\n };\n FlatSetDisplayValueModel.prototype.getSelectAllItem = function () {\n return SetFilterDisplayValue.SELECT_ALL;\n };\n FlatSetDisplayValueModel.prototype.getAddSelectionToFilterItem = function () {\n return SetFilterDisplayValue.ADD_SELECTION_TO_FILTER;\n };\n FlatSetDisplayValueModel.prototype.getDisplayedKeys = function () {\n return this.displayedKeys;\n };\n FlatSetDisplayValueModel.prototype.forEachDisplayedKey = function (func) {\n this.displayedKeys.forEach(func);\n };\n FlatSetDisplayValueModel.prototype.someDisplayedKey = function (func) {\n return this.displayedKeys.some(func);\n };\n FlatSetDisplayValueModel.prototype.hasGroups = function () {\n return false;\n };\n FlatSetDisplayValueModel.prototype.refresh = function () {\n // not used\n };\n return FlatSetDisplayValueModel;\n}());\n\nvar __read$1 = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray$1 = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar __values$1 = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar TreeSetDisplayValueModel = /** @class */ (function () {\n function TreeSetDisplayValueModel(formatter, treeListPathGetter, treeListFormatter, treeDataOrGrouping) {\n this.formatter = formatter;\n this.treeListPathGetter = treeListPathGetter;\n this.treeListFormatter = treeListFormatter;\n this.treeDataOrGrouping = treeDataOrGrouping;\n /** all displayed items in a tree structure */\n this.allDisplayedItemsTree = [];\n /** all displayed items flattened and filtered */\n this.activeDisplayedItemsFlat = [];\n this.selectAllItem = {\n depth: 0,\n filterPasses: true,\n available: true,\n treeKey: SetFilterDisplayValue.SELECT_ALL,\n children: this.allDisplayedItemsTree,\n expanded: true,\n key: SetFilterDisplayValue.SELECT_ALL,\n parentTreeKeys: []\n };\n this.addSelectionToFilterItem = {\n depth: 0,\n filterPasses: true,\n available: true,\n treeKey: SetFilterDisplayValue.ADD_SELECTION_TO_FILTER,\n expanded: true,\n key: SetFilterDisplayValue.ADD_SELECTION_TO_FILTER,\n parentTreeKeys: []\n };\n }\n TreeSetDisplayValueModel.prototype.updateDisplayedValuesToAllAvailable = function (getValue, allKeys, availableKeys, source) {\n if (source === 'reload') {\n this.generateItemTree(getValue, allKeys, availableKeys);\n }\n else if (source === 'otherFilter') {\n this.updateAvailable(availableKeys);\n this.updateExpandAll();\n }\n else if (source === 'miniFilter') {\n this.resetFilter();\n this.updateExpandAll();\n }\n this.flattenItems();\n };\n TreeSetDisplayValueModel.prototype.updateDisplayedValuesToMatchMiniFilter = function (getValue, allKeys, availableKeys, matchesFilter, nullMatchesFilter, source) {\n if (source === 'reload') {\n this.generateItemTree(getValue, allKeys, availableKeys);\n }\n else if (source === 'otherFilter') {\n this.updateAvailable(availableKeys);\n }\n this.updateFilter(matchesFilter, nullMatchesFilter);\n this.updateExpandAll();\n this.flattenItems();\n };\n TreeSetDisplayValueModel.prototype.generateItemTree = function (getValue, allKeys, availableKeys) {\n var e_1, _a;\n var _b;\n this.allDisplayedItemsTree = [];\n this.groupsExist = false;\n var treeListPathGetter = this.getTreeListPathGetter(getValue, availableKeys);\n var _loop_1 = function (key) {\n var value = getValue(key);\n var dataPath = (_b = treeListPathGetter(value)) !== null && _b !== void 0 ? _b : [null];\n if (dataPath.length > 1) {\n this_1.groupsExist = true;\n }\n var available = availableKeys.has(key);\n var children = this_1.allDisplayedItemsTree;\n var item;\n var parentTreeKeys = [];\n dataPath.forEach(function (treeKey, depth) {\n if (!children) {\n children = [];\n item.children = children;\n }\n item = children.find(function (child) { var _a; return ((_a = child.treeKey) === null || _a === void 0 ? void 0 : _a.toUpperCase()) === (treeKey === null || treeKey === void 0 ? void 0 : treeKey.toUpperCase()); });\n if (!item) {\n item = { treeKey: treeKey, depth: depth, filterPasses: true, expanded: false, available: available, parentTreeKeys: parentTreeKeys };\n if (depth === dataPath.length - 1) {\n item.key = key;\n }\n children.push(item);\n }\n children = item.children;\n parentTreeKeys = __spreadArray$1(__spreadArray$1([], __read$1(parentTreeKeys)), [treeKey]);\n });\n };\n var this_1 = this;\n try {\n for (var allKeys_1 = __values$1(allKeys), allKeys_1_1 = allKeys_1.next(); !allKeys_1_1.done; allKeys_1_1 = allKeys_1.next()) {\n var key = allKeys_1_1.value;\n _loop_1(key);\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (allKeys_1_1 && !allKeys_1_1.done && (_a = allKeys_1.return)) _a.call(allKeys_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n // update the parent availability based on the children\n this.updateAvailable(availableKeys);\n this.selectAllItem.children = this.allDisplayedItemsTree;\n this.selectAllItem.expanded = false;\n };\n TreeSetDisplayValueModel.prototype.getTreeListPathGetter = function (getValue, availableKeys) {\n var e_2, _a;\n if (this.treeListPathGetter) {\n return this.treeListPathGetter;\n }\n if (this.treeDataOrGrouping) {\n return function (value) { return value; };\n }\n // infer from data\n var isDate = false;\n try {\n for (var availableKeys_1 = __values$1(availableKeys), availableKeys_1_1 = availableKeys_1.next(); !availableKeys_1_1.done; availableKeys_1_1 = availableKeys_1.next()) {\n var availableKey = availableKeys_1_1.value;\n // find the first non-null value\n var value = getValue(availableKey);\n if (value instanceof Date) {\n isDate = true;\n break;\n }\n else if (value != null) {\n break;\n }\n }\n }\n catch (e_2_1) { e_2 = { error: e_2_1 }; }\n finally {\n try {\n if (availableKeys_1_1 && !availableKeys_1_1.done && (_a = availableKeys_1.return)) _a.call(availableKeys_1);\n }\n finally { if (e_2) throw e_2.error; }\n }\n if (isDate) {\n return TreeSetDisplayValueModel.DATE_TREE_LIST_PATH_GETTER;\n }\n _.doOnce(function () { return console.warn('AG Grid: property treeList=true for Set Filter params, but you did not provide a treeListPathGetter or values of type Date.'); }, 'getTreeListPathGetter');\n return function (value) { return [String(value)]; };\n };\n TreeSetDisplayValueModel.prototype.flattenItems = function () {\n var _this = this;\n this.activeDisplayedItemsFlat = [];\n var recursivelyFlattenDisplayedItems = function (items) {\n items.forEach(function (item) {\n if (!item.filterPasses || !item.available) {\n return;\n }\n _this.activeDisplayedItemsFlat.push(item);\n if (item.children && item.expanded) {\n recursivelyFlattenDisplayedItems(item.children);\n }\n });\n };\n recursivelyFlattenDisplayedItems(this.allDisplayedItemsTree);\n };\n TreeSetDisplayValueModel.prototype.resetFilter = function () {\n var recursiveFilterReset = function (item) {\n if (item.children) {\n item.children.forEach(function (child) {\n recursiveFilterReset(child);\n });\n }\n item.filterPasses = true;\n };\n this.allDisplayedItemsTree.forEach(function (item) { return recursiveFilterReset(item); });\n };\n TreeSetDisplayValueModel.prototype.updateFilter = function (matchesFilter, nullMatchesFilter) {\n var _this = this;\n var passesFilter = function (item) {\n if (!item.available) {\n return false;\n }\n if (item.treeKey == null) {\n return nullMatchesFilter;\n }\n return matchesFilter(_this.formatter(_this.treeListFormatter ? _this.treeListFormatter(item.treeKey, item.depth, item.parentTreeKeys) : item.treeKey));\n };\n this.allDisplayedItemsTree.forEach(function (item) { return _this.recursiveItemCheck(item, false, passesFilter, 'filterPasses'); });\n };\n TreeSetDisplayValueModel.prototype.getDisplayedValueCount = function () {\n return this.activeDisplayedItemsFlat.length;\n };\n TreeSetDisplayValueModel.prototype.getDisplayedItem = function (index) {\n return this.activeDisplayedItemsFlat[index];\n };\n TreeSetDisplayValueModel.prototype.getSelectAllItem = function () {\n return this.selectAllItem;\n };\n TreeSetDisplayValueModel.prototype.getAddSelectionToFilterItem = function () {\n return this.addSelectionToFilterItem;\n };\n TreeSetDisplayValueModel.prototype.getDisplayedKeys = function () {\n var displayedKeys = [];\n this.forEachDisplayedKey(function (key) { return displayedKeys.push(key); });\n return displayedKeys;\n };\n TreeSetDisplayValueModel.prototype.forEachDisplayedKey = function (func) {\n var recursiveForEachItem = function (item, topParentExpanded) {\n if (item.children) {\n if (!item.expanded || !topParentExpanded) {\n // if the parent is not expanded, we need to iterate the entire tree\n item.children.forEach(function (child) {\n if (child.filterPasses) {\n recursiveForEachItem(child, false);\n }\n });\n }\n }\n else {\n func(item.key);\n }\n };\n this.activeDisplayedItemsFlat.forEach(function (item) { return recursiveForEachItem(item, true); });\n };\n TreeSetDisplayValueModel.prototype.someDisplayedKey = function (func) {\n var recursiveSomeItem = function (item, topParentExpanded) {\n if (item.children) {\n if (!item.expanded || !topParentExpanded) {\n // if the parent is not expanded, we need to iterate the entire tree\n return item.children.some(function (child) {\n if (child.filterPasses) {\n return recursiveSomeItem(child, false);\n }\n return false;\n });\n }\n }\n else {\n return func(item.key);\n }\n return false;\n };\n return this.activeDisplayedItemsFlat.some(function (item) { return recursiveSomeItem(item, true); });\n };\n TreeSetDisplayValueModel.prototype.hasGroups = function () {\n return this.groupsExist;\n };\n TreeSetDisplayValueModel.prototype.refresh = function () {\n this.updateExpandAll();\n this.flattenItems();\n };\n TreeSetDisplayValueModel.prototype.updateExpandAll = function () {\n var recursiveExpansionCheck = function (items, someTrue, someFalse) {\n var e_3, _a;\n try {\n for (var items_1 = __values$1(items), items_1_1 = items_1.next(); !items_1_1.done; items_1_1 = items_1.next()) {\n var item_1 = items_1_1.value;\n if (!item_1.filterPasses || !item_1.available || !item_1.children) {\n continue;\n }\n // indeterminate state only exists for expand all, so don't need to check for the current item\n someTrue = someTrue || !!item_1.expanded;\n someFalse = someFalse || !item_1.expanded;\n if (someTrue && someFalse) {\n // already indeterminate. No need to check the children\n return undefined;\n }\n var childExpanded = recursiveExpansionCheck(item_1.children, someTrue, someFalse);\n if (childExpanded === undefined) {\n return undefined;\n }\n else if (childExpanded) {\n someTrue = true;\n }\n else {\n someFalse = true;\n }\n }\n }\n catch (e_3_1) { e_3 = { error: e_3_1 }; }\n finally {\n try {\n if (items_1_1 && !items_1_1.done && (_a = items_1.return)) _a.call(items_1);\n }\n finally { if (e_3) throw e_3.error; }\n }\n return someTrue && someFalse ? undefined : someTrue;\n };\n var item = this.getSelectAllItem();\n item.expanded = recursiveExpansionCheck(item.children, false, false);\n };\n TreeSetDisplayValueModel.prototype.recursiveItemCheck = function (item, parentPasses, checkFunction, itemProp) {\n var _this = this;\n var atLeastOneChildPassed = false;\n if (item.children) {\n item.children.forEach(function (child) {\n var childPasses = _this.recursiveItemCheck(child, parentPasses || checkFunction(item), checkFunction, itemProp);\n atLeastOneChildPassed = atLeastOneChildPassed || childPasses;\n });\n }\n var itemPasses = parentPasses || atLeastOneChildPassed || checkFunction(item);\n item[itemProp] = itemPasses;\n return itemPasses;\n };\n TreeSetDisplayValueModel.prototype.updateAvailable = function (availableKeys) {\n var _this = this;\n var isAvailable = function (item) { return availableKeys.has(item.key); };\n this.allDisplayedItemsTree.forEach(function (item) { return _this.recursiveItemCheck(item, false, isAvailable, 'available'); });\n };\n TreeSetDisplayValueModel.DATE_TREE_LIST_PATH_GETTER = function (date) { return date ? [String(date.getFullYear()), String(date.getMonth() + 1), String(date.getDate())] : null; };\n return TreeSetDisplayValueModel;\n}());\n\nvar SetValueModelFilteringKeys = /** @class */ (function () {\n function SetValueModelFilteringKeys(_a) {\n var caseFormat = _a.caseFormat;\n // To make the filtering fast, we store the keys in a Set rather than using the default array.\n this.filteringKeys = null;\n // This attribute contains keys that are actually used for filtering.\n // These keys take into account case sensitivity:\n // - When filtering is case-insensitive, all filtering keys are converted to upper case and stored here.\n // - When filtering is case-sensitive, this is the same as filteringKeys.\n this.filteringKeysCaseFormatted = null;\n this.hasNoAppliedFilteringKeys = false;\n this.caseFormat = caseFormat;\n }\n SetValueModelFilteringKeys.prototype.allFilteringKeys = function () {\n return this.filteringKeys;\n };\n SetValueModelFilteringKeys.prototype.allFilteringKeysCaseFormatted = function () {\n return this.filteringKeysCaseFormatted;\n };\n SetValueModelFilteringKeys.prototype.noAppliedFilteringKeys = function () {\n return this.hasNoAppliedFilteringKeys;\n };\n SetValueModelFilteringKeys.prototype.setFilteringKeys = function (filteringKeys) {\n var _this = this;\n this.filteringKeys = new Set(filteringKeys);\n this.hasNoAppliedFilteringKeys = !this.filteringKeys || this.filteringKeys.size === 0;\n this.filteringKeysCaseFormatted = new Set();\n this.filteringKeys.forEach(function (key) {\n return _this.filteringKeysCaseFormatted.add(_this.caseFormat(key));\n });\n };\n SetValueModelFilteringKeys.prototype.addFilteringKey = function (key) {\n if (this.filteringKeys == null) {\n this.filteringKeys = new Set();\n this.filteringKeysCaseFormatted = new Set();\n }\n this.filteringKeys.add(key);\n this.filteringKeysCaseFormatted.add(this.caseFormat(key));\n if (this.hasNoAppliedFilteringKeys) {\n this.hasNoAppliedFilteringKeys = false;\n }\n };\n SetValueModelFilteringKeys.prototype.hasCaseFormattedFilteringKey = function (key) {\n return this.filteringKeysCaseFormatted.has(this.caseFormat(key));\n };\n SetValueModelFilteringKeys.prototype.hasFilteringKey = function (key) {\n return this.filteringKeys.has(key);\n };\n SetValueModelFilteringKeys.prototype.reset = function () {\n this.filteringKeys = null;\n this.filteringKeysCaseFormatted = null;\n this.hasNoAppliedFilteringKeys = false;\n };\n return SetValueModelFilteringKeys;\n}());\n\nvar __read = (undefined && undefined.__read) || function (o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n};\nvar __spreadArray = (undefined && undefined.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar SetFilterModelValuesType;\n(function (SetFilterModelValuesType) {\n SetFilterModelValuesType[SetFilterModelValuesType[\"PROVIDED_LIST\"] = 0] = \"PROVIDED_LIST\";\n SetFilterModelValuesType[SetFilterModelValuesType[\"PROVIDED_CALLBACK\"] = 1] = \"PROVIDED_CALLBACK\";\n SetFilterModelValuesType[SetFilterModelValuesType[\"TAKEN_FROM_GRID_VALUES\"] = 2] = \"TAKEN_FROM_GRID_VALUES\";\n})(SetFilterModelValuesType || (SetFilterModelValuesType = {}));\n/** @param V type of value in the Set Filter */\nvar SetValueModel = /** @class */ (function () {\n function SetValueModel(params) {\n var _this = this;\n var _a;\n this.localEventService = new EventService();\n this.miniFilterText = null;\n /** When true, in excelMode = 'windows', it adds previously selected filter items to newly checked filter selection */\n this.addCurrentSelectionToFilter = false;\n /** Values provided to the filter for use. */\n this.providedValues = null;\n /** All possible values for the filter, sorted if required. */\n this.allValues = new Map();\n /** Remaining keys when filters from other columns have been applied. */\n this.availableKeys = new Set();\n /** Keys that have been selected for this filter. */\n this.selectedKeys = new Set();\n this.initialised = false;\n var usingComplexObjects = params.usingComplexObjects, columnModel = params.columnModel, valueService = params.valueService, treeDataTreeList = params.treeDataTreeList, groupingTreeList = params.groupingTreeList, filterParams = params.filterParams, gridOptionsService = params.gridOptionsService, valueFormatterService = params.valueFormatterService, valueFormatter = params.valueFormatter;\n var column = filterParams.column, colDef = filterParams.colDef, textFormatter = filterParams.textFormatter, doesRowPassOtherFilter = filterParams.doesRowPassOtherFilter, suppressSorting = filterParams.suppressSorting, comparator = filterParams.comparator, rowModel = filterParams.rowModel, values = filterParams.values, caseSensitive = filterParams.caseSensitive, convertValuesToStrings = filterParams.convertValuesToStrings, treeList = filterParams.treeList, treeListPathGetter = filterParams.treeListPathGetter, treeListFormatter = filterParams.treeListFormatter;\n this.filterParams = filterParams;\n this.setIsLoading = params.setIsLoading;\n this.translate = params.translate;\n this.caseFormat = params.caseFormat;\n this.createKey = params.createKey;\n this.usingComplexObjects = !!params.usingComplexObjects;\n this.formatter = textFormatter || TextFilter.DEFAULT_FORMATTER;\n this.doesRowPassOtherFilters = doesRowPassOtherFilter;\n this.suppressSorting = suppressSorting || false;\n this.convertValuesToStrings = !!convertValuesToStrings;\n this.filteringKeys = new SetValueModelFilteringKeys({ caseFormat: this.caseFormat });\n var keyComparator = comparator !== null && comparator !== void 0 ? comparator : colDef.comparator;\n var treeDataOrGrouping = !!treeDataTreeList || !!groupingTreeList;\n // If using complex objects and a comparator is provided, sort by values, otherwise need to sort by the string keys.\n // Also if tree data, grouping, or date with tree list, then need to do value sort\n this.compareByValue = !!((usingComplexObjects && keyComparator) || treeDataOrGrouping || (treeList && !treeListPathGetter));\n if (treeDataOrGrouping && !keyComparator) {\n this.entryComparator = this.createTreeDataOrGroupingComparator();\n }\n else if (treeList && !treeListPathGetter && !keyComparator) {\n this.entryComparator = function (_a, _b) {\n var _c = __read(_a, 2); _c[0]; var aValue = _c[1];\n var _d = __read(_b, 2); _d[0]; var bValue = _d[1];\n return _.defaultComparator(aValue, bValue);\n };\n }\n else {\n this.entryComparator = function (_a, _b) {\n var _c = __read(_a, 2); _c[0]; var aValue = _c[1];\n var _d = __read(_b, 2); _d[0]; var bValue = _d[1];\n return keyComparator(aValue, bValue);\n };\n }\n this.keyComparator = (_a = keyComparator) !== null && _a !== void 0 ? _a : _.defaultComparator;\n this.caseSensitive = !!caseSensitive;\n var getDataPath = gridOptionsService.get('getDataPath');\n var groupAllowUnbalanced = gridOptionsService.is('groupAllowUnbalanced');\n if (rowModel.getType() === 'clientSide') {\n this.clientSideValuesExtractor = new ClientSideValuesExtractor(rowModel, this.filterParams, this.createKey, this.caseFormat, columnModel, valueService, treeDataOrGrouping, !!treeDataTreeList, getDataPath, groupAllowUnbalanced);\n }\n if (values == null) {\n this.valuesType = SetFilterModelValuesType.TAKEN_FROM_GRID_VALUES;\n }\n else {\n this.valuesType = Array.isArray(values) ?\n SetFilterModelValuesType.PROVIDED_LIST :\n SetFilterModelValuesType.PROVIDED_CALLBACK;\n this.providedValues = values;\n }\n this.displayValueModel = treeList ? new TreeSetDisplayValueModel(this.formatter, treeListPathGetter, treeListFormatter, treeDataTreeList || groupingTreeList) : new FlatSetDisplayValueModel(valueFormatterService, valueFormatter, this.formatter, column);\n this.updateAllValues().then(function (updatedKeys) { return _this.resetSelectionState(updatedKeys || []); });\n }\n SetValueModel.prototype.addEventListener = function (eventType, listener, async) {\n this.localEventService.addEventListener(eventType, listener, async);\n };\n SetValueModel.prototype.removeEventListener = function (eventType, listener, async) {\n this.localEventService.removeEventListener(eventType, listener, async);\n };\n /**\n * Re-fetches the values used in the filter from the value source.\n * If keepSelection is false, the filter selection will be reset to everything selected,\n * otherwise the current selection will be preserved.\n */\n SetValueModel.prototype.refreshValues = function () {\n var currentModel = this.getModel();\n this.updateAllValues();\n // ensure model is updated for new values\n return this.setModel(currentModel);\n };\n /**\n * Overrides the current values being used for the set filter.\n * If keepSelection is false, the filter selection will be reset to everything selected,\n * otherwise the current selection will be preserved.\n */\n SetValueModel.prototype.overrideValues = function (valuesToUse) {\n var _this = this;\n return new AgPromise(function (resolve) {\n // wait for any existing values to be populated before overriding\n _this.allValuesPromise.then(function () {\n _this.valuesType = SetFilterModelValuesType.PROVIDED_LIST;\n _this.providedValues = valuesToUse;\n _this.refreshValues().then(function () { return resolve(); });\n });\n });\n };\n /** @return has anything been updated */\n SetValueModel.prototype.refreshAfterAnyFilterChanged = function () {\n var _this = this;\n if (this.showAvailableOnly()) {\n return this.allValuesPromise.then(function (keys) {\n _this.updateAvailableKeys(keys !== null && keys !== void 0 ? keys : [], 'otherFilter');\n return true;\n });\n }\n return AgPromise.resolve(false);\n };\n SetValueModel.prototype.isInitialised = function () {\n return this.initialised;\n };\n SetValueModel.prototype.updateAllValues = function () {\n var _this = this;\n this.allValuesPromise = new AgPromise(function (resolve) {\n switch (_this.valuesType) {\n case SetFilterModelValuesType.TAKEN_FROM_GRID_VALUES:\n case SetFilterModelValuesType.PROVIDED_LIST: {\n resolve(_this.processAllKeys(_this.valuesType === SetFilterModelValuesType.TAKEN_FROM_GRID_VALUES, _this.providedValues));\n break;\n }\n case SetFilterModelValuesType.PROVIDED_CALLBACK: {\n _this.setIsLoading(true);\n var callback_1 = _this.providedValues;\n var _a = _this.filterParams, columnApi = _a.columnApi, api = _a.api, context = _a.context, column = _a.column, colDef = _a.colDef;\n var params_1 = {\n success: function (values) {\n _this.setIsLoading(false);\n resolve(_this.processAllKeys(false, values));\n },\n colDef: colDef,\n column: column,\n columnApi: columnApi,\n api: api,\n context: context,\n };\n window.setTimeout(function () { return callback_1(params_1); }, 0);\n break;\n }\n default:\n throw new Error('Unrecognised valuesType');\n }\n });\n this.allValuesPromise.then(function (values) { return _this.updateAvailableKeys(values || [], 'reload'); }).then(function () { return _this.initialised = true; });\n return this.allValuesPromise;\n };\n SetValueModel.prototype.processAllKeys = function (getFromRows, providedValues) {\n var values = getFromRows ? this.getValuesFromRows(false) : this.uniqueValues(this.validateProvidedValues(providedValues));\n var sortedKeys = this.sortKeys(values);\n this.allValues = values !== null && values !== void 0 ? values : new Map();\n return sortedKeys;\n };\n SetValueModel.prototype.validateProvidedValues = function (values) {\n if (this.usingComplexObjects && (values === null || values === void 0 ? void 0 : values.length)) {\n var firstValue = values[0];\n if (firstValue && typeof firstValue !== 'object' && typeof firstValue !== 'function') {\n var firstKey = this.createKey(firstValue);\n if (firstKey == null) {\n _.doOnce(function () { return console.warn('Set Filter Key Creator is returning null for provided values and provided values are primitives. Please provide complex objects or set convertValuesToStrings=true in the filterParams. See https://www.ag-grid.com/javascript-data-grid/filter-set-filter-list/#filter-value-types'); }, 'setFilterComplexObjectsProvidedNull');\n }\n else {\n _.doOnce(function () { return console.warn('AG Grid: Set Filter has a Key Creator, but provided values are primitives. Did you mean to provide complex objects or enable convertValuesToStrings?'); }, 'setFilterComplexObjectsProvidedPrimitive');\n }\n }\n }\n return values;\n };\n SetValueModel.prototype.setValuesType = function (value) {\n this.valuesType = value;\n };\n SetValueModel.prototype.getValuesType = function () {\n return this.valuesType;\n };\n SetValueModel.prototype.isKeyAvailable = function (key) {\n return this.availableKeys.has(key);\n };\n SetValueModel.prototype.showAvailableOnly = function () {\n return this.valuesType === SetFilterModelValuesType.TAKEN_FROM_GRID_VALUES;\n };\n SetValueModel.prototype.updateAvailableKeys = function (allKeys, source) {\n var availableKeys = this.showAvailableOnly() ? this.sortKeys(this.getValuesFromRows(true)) : allKeys;\n this.availableKeys = new Set(availableKeys);\n this.localEventService.dispatchEvent({ type: SetValueModel.EVENT_AVAILABLE_VALUES_CHANGED });\n this.updateDisplayedValues(source, allKeys);\n };\n SetValueModel.prototype.sortKeys = function (nullableValues) {\n var values = nullableValues !== null && nullableValues !== void 0 ? nullableValues : new Map();\n if (this.suppressSorting) {\n return Array.from(values.keys());\n }\n var sortedKeys;\n if (this.compareByValue) {\n sortedKeys = Array.from(values.entries()).sort(this.entryComparator).map(function (_a) {\n var _b = __read(_a, 1), key = _b[0];\n return key;\n });\n }\n else {\n sortedKeys = Array.from(values.keys()).sort(this.keyComparator);\n }\n if (this.filterParams.excelMode && values.has(null)) {\n // ensure the blank value always appears last\n sortedKeys = sortedKeys.filter(function (v) { return v != null; });\n sortedKeys.push(null);\n }\n return sortedKeys;\n };\n SetValueModel.prototype.getValuesFromRows = function (removeUnavailableValues) {\n var _this = this;\n if (removeUnavailableValues === void 0) { removeUnavailableValues = false; }\n if (!this.clientSideValuesExtractor) {\n console.error('AG Grid: Set Filter cannot initialise because you are using a row model that does not contain all rows in the browser. Either use a different filter type, or configure Set Filter such that you provide it with values');\n return null;\n }\n var predicate = function (node) { return (!removeUnavailableValues || _this.doesRowPassOtherFilters(node)); };\n return this.clientSideValuesExtractor.extractUniqueValues(predicate, removeUnavailableValues && !this.caseSensitive ? this.allValues : undefined);\n };\n /** Sets mini filter value. Returns true if it changed from last value, otherwise false. */\n SetValueModel.prototype.setMiniFilter = function (value) {\n value = _.makeNull(value);\n if (this.miniFilterText === value) {\n //do nothing if filter has not changed\n return false;\n }\n if (value === null) {\n // Reset 'Add current selection to filter' checkbox when clearing mini filter\n this.setAddCurrentSelectionToFilter(false);\n }\n this.miniFilterText = value;\n this.updateDisplayedValues('miniFilter');\n return true;\n };\n SetValueModel.prototype.getMiniFilter = function () {\n return this.miniFilterText;\n };\n SetValueModel.prototype.updateDisplayedValues = function (source, allKeys) {\n var _this = this;\n if (source === 'expansion') {\n this.displayValueModel.refresh();\n return;\n }\n // if no filter, just display all available values\n if (this.miniFilterText == null) {\n this.displayValueModel.updateDisplayedValuesToAllAvailable(function (key) { return _this.getValue(key); }, allKeys, this.availableKeys, source);\n return;\n }\n // if filter present, we filter down the list\n // to allow for case insensitive searches, upper-case both filter text and value\n var formattedFilterText = this.caseFormat(this.formatter(this.miniFilterText) || '');\n var matchesFilter = function (valueToCheck) {\n return valueToCheck != null && _this.caseFormat(valueToCheck).indexOf(formattedFilterText) >= 0;\n };\n var nullMatchesFilter = !!this.filterParams.excelMode && matchesFilter(this.translate('blanks'));\n this.displayValueModel.updateDisplayedValuesToMatchMiniFilter(function (key) { return _this.getValue(key); }, allKeys, this.availableKeys, matchesFilter, nullMatchesFilter, source);\n };\n SetValueModel.prototype.getDisplayedValueCount = function () {\n return this.displayValueModel.getDisplayedValueCount();\n };\n SetValueModel.prototype.getDisplayedItem = function (index) {\n return this.displayValueModel.getDisplayedItem(index);\n };\n SetValueModel.prototype.getSelectAllItem = function () {\n return this.displayValueModel.getSelectAllItem();\n };\n SetValueModel.prototype.getAddSelectionToFilterItem = function () {\n return this.displayValueModel.getAddSelectionToFilterItem();\n };\n SetValueModel.prototype.hasSelections = function () {\n return this.filterParams.defaultToNothingSelected ?\n this.selectedKeys.size > 0 :\n this.allValues.size !== this.selectedKeys.size;\n };\n SetValueModel.prototype.getKeys = function () {\n return Array.from(this.allValues.keys());\n };\n SetValueModel.prototype.getValues = function () {\n return Array.from(this.allValues.values());\n };\n SetValueModel.prototype.getValue = function (key) {\n return this.allValues.get(key);\n };\n SetValueModel.prototype.setAddCurrentSelectionToFilter = function (value) {\n this.addCurrentSelectionToFilter = value;\n };\n SetValueModel.prototype.isInWindowsExcelMode = function () {\n return this.filterParams.excelMode === 'windows';\n };\n SetValueModel.prototype.isAddCurrentSelectionToFilterChecked = function () {\n return this.isInWindowsExcelMode() && this.addCurrentSelectionToFilter;\n };\n SetValueModel.prototype.showAddCurrentSelectionToFilter = function () {\n // We only show the 'Add current selection to filter' option\n // when excel mode is enabled with 'windows' mode\n // and when the users types a value in the mini filter.\n return (this.isInWindowsExcelMode()\n && _.exists(this.miniFilterText)\n && this.miniFilterText.length > 0);\n };\n SetValueModel.prototype.selectAllMatchingMiniFilter = function (clearExistingSelection) {\n var _this = this;\n if (clearExistingSelection === void 0) { clearExistingSelection = false; }\n if (this.miniFilterText == null) {\n // ensure everything is selected\n this.selectedKeys = new Set(this.allValues.keys());\n }\n else {\n // ensure everything that matches the mini filter is selected\n if (clearExistingSelection) {\n this.selectedKeys.clear();\n }\n this.displayValueModel.forEachDisplayedKey(function (key) { return _this.selectedKeys.add(key); });\n }\n };\n SetValueModel.prototype.deselectAllMatchingMiniFilter = function () {\n var _this = this;\n if (this.miniFilterText == null) {\n // ensure everything is deselected\n this.selectedKeys.clear();\n }\n else {\n // ensure everything that matches the mini filter is deselected\n this.displayValueModel.forEachDisplayedKey(function (key) { return _this.selectedKeys.delete(key); });\n }\n };\n SetValueModel.prototype.selectKey = function (key) {\n this.selectedKeys.add(key);\n };\n SetValueModel.prototype.deselectKey = function (key) {\n if (this.filterParams.excelMode && this.isEverythingVisibleSelected()) {\n // ensure we're starting from the correct \"everything selected\" state\n this.resetSelectionState(this.displayValueModel.getDisplayedKeys());\n }\n this.selectedKeys.delete(key);\n };\n SetValueModel.prototype.isKeySelected = function (key) {\n return this.selectedKeys.has(key);\n };\n SetValueModel.prototype.isEverythingVisibleSelected = function () {\n var _this = this;\n return !this.displayValueModel.someDisplayedKey(function (it) { return !_this.isKeySelected(it); });\n };\n SetValueModel.prototype.isNothingVisibleSelected = function () {\n var _this = this;\n return !this.displayValueModel.someDisplayedKey(function (it) { return _this.isKeySelected(it); });\n };\n SetValueModel.prototype.getModel = function () {\n if (!this.hasSelections()) {\n return null;\n }\n // When excelMode = 'windows' and the user has ticked 'Add current selection to filter'\n // the filtering keys can be different from the selected keys, and they should be included\n // in the model.\n var filteringKeys = this.isAddCurrentSelectionToFilterChecked()\n ? this.filteringKeys.allFilteringKeys()\n : null;\n if (filteringKeys && filteringKeys.size > 0) {\n if (this.selectedKeys) {\n // When existing filtering keys are present along with selected keys,\n // we combine them and return the result.\n // We use a set structure to avoid duplicates\n var modelKeys = new Set(__spreadArray(__spreadArray([], __read(Array.from(filteringKeys))), __read(Array.from(this.selectedKeys).filter(function (key) { return !filteringKeys.has(key); }))));\n return Array.from(modelKeys);\n }\n else {\n return Array.from(filteringKeys);\n }\n }\n // No extra filtering keys are present - so just return the selected keys\n return Array.from(this.selectedKeys);\n };\n SetValueModel.prototype.setModel = function (model) {\n var _this = this;\n return this.allValuesPromise.then(function (keys) {\n if (model == null) {\n _this.resetSelectionState(keys !== null && keys !== void 0 ? keys : []);\n }\n else {\n // select all values from the model that exist in the filter\n _this.selectedKeys.clear();\n var existingFormattedKeys_1 = new Map();\n _this.allValues.forEach(function (_value, key) {\n existingFormattedKeys_1.set(_this.caseFormat(key), key);\n });\n model.forEach(function (unformattedKey) {\n var formattedKey = _this.caseFormat(_.makeNull(unformattedKey));\n var existingUnformattedKey = existingFormattedKeys_1.get(formattedKey);\n if (existingUnformattedKey !== undefined) {\n _this.selectKey(existingUnformattedKey);\n }\n });\n }\n });\n };\n SetValueModel.prototype.uniqueValues = function (values) {\n var _this = this;\n var uniqueValues = new Map();\n var formattedKeys = new Set();\n (values !== null && values !== void 0 ? values : []).forEach(function (value) {\n var valueToUse = _.makeNull(value);\n var unformattedKey = _this.convertAndGetKey(valueToUse);\n var formattedKey = _this.caseFormat(unformattedKey);\n if (!formattedKeys.has(formattedKey)) {\n formattedKeys.add(formattedKey);\n uniqueValues.set(unformattedKey, valueToUse);\n }\n });\n return uniqueValues;\n };\n SetValueModel.prototype.convertAndGetKey = function (value) {\n return this.convertValuesToStrings ? value : this.createKey(value);\n };\n SetValueModel.prototype.resetSelectionState = function (keys) {\n if (this.filterParams.defaultToNothingSelected) {\n this.selectedKeys.clear();\n }\n else {\n this.selectedKeys = new Set(keys);\n }\n };\n SetValueModel.prototype.hasGroups = function () {\n return this.displayValueModel.hasGroups();\n };\n SetValueModel.prototype.createTreeDataOrGroupingComparator = function () {\n return function (_a, _b) {\n var _c = __read(_a, 2); _c[0]; var aValue = _c[1];\n var _d = __read(_b, 2); _d[0]; var bValue = _d[1];\n if (aValue == null) {\n return bValue == null ? 0 : -1;\n }\n else if (bValue == null) {\n return 1;\n }\n for (var i = 0; i < aValue.length; i++) {\n if (i >= bValue.length) {\n return 1;\n }\n var diff = _.defaultComparator(aValue[i], bValue[i]);\n if (diff !== 0) {\n return diff;\n }\n }\n return 0;\n };\n };\n SetValueModel.prototype.setAppliedModelKeys = function (appliedModelKeys) {\n this.filteringKeys.setFilteringKeys(appliedModelKeys);\n };\n SetValueModel.prototype.addToAppliedModelKeys = function (appliedModelKey) {\n this.filteringKeys.addFilteringKey(appliedModelKey);\n };\n SetValueModel.prototype.getAppliedModelKeys = function () {\n return this.filteringKeys.allFilteringKeys();\n };\n SetValueModel.prototype.getCaseFormattedAppliedModelKeys = function () {\n return this.filteringKeys.allFilteringKeysCaseFormatted();\n };\n SetValueModel.prototype.hasAppliedModelKey = function (appliedModelKey) {\n return this.filteringKeys.hasCaseFormattedFilteringKey(appliedModelKey);\n };\n SetValueModel.prototype.hasAnyAppliedModelKey = function () {\n return !this.filteringKeys.noAppliedFilteringKeys();\n };\n SetValueModel.EVENT_AVAILABLE_VALUES_CHANGED = 'availableValuesChanged';\n return SetValueModel;\n}());\n\nvar __extends$i = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$d = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/** @param V type of value in the Set Filter */\nvar SetFilterListItem = /** @class */ (function (_super) {\n __extends$i(SetFilterListItem, _super);\n function SetFilterListItem(params) {\n var _a;\n var _this = _super.call(this, params.isGroup ? SetFilterListItem.GROUP_TEMPLATE : SetFilterListItem.TEMPLATE) || this;\n _this.focusWrapper = params.focusWrapper;\n _this.value = params.value;\n _this.params = params.params;\n _this.translate = params.translate;\n _this.valueFormatter = params.valueFormatter;\n _this.item = params.item;\n _this.isSelected = params.isSelected;\n _this.isTree = params.isTree;\n _this.depth = (_a = params.depth) !== null && _a !== void 0 ? _a : 0;\n _this.isGroup = params.isGroup;\n _this.groupsExist = params.groupsExist;\n _this.isExpanded = params.isExpanded;\n _this.hasIndeterminateExpandState = params.hasIndeterminateExpandState;\n return _this;\n }\n SetFilterListItem.prototype.init = function () {\n var _this = this;\n this.addDestroyFunc(function () { var _a; return (_a = _this.destroyCellRendererComponent) === null || _a === void 0 ? void 0 : _a.call(_this); });\n this.render();\n this.eCheckbox.setLabelEllipsis(true);\n this.eCheckbox.setValue(this.isSelected, true);\n this.eCheckbox.setDisabled(!!this.params.readOnly);\n this.eCheckbox.getInputElement().setAttribute('tabindex', '-1');\n this.refreshVariableAriaLabels();\n if (this.isTree) {\n if (this.depth > 0) {\n this.addCssClass('ag-set-filter-indent-' + this.depth);\n }\n if (this.isGroup) {\n this.setupExpansion();\n }\n else {\n if (this.groupsExist) {\n this.addCssClass('ag-set-filter-add-group-indent');\n }\n }\n _.setAriaLevel(this.focusWrapper, this.depth + 1);\n }\n if (!!this.params.readOnly) {\n // Don't add event listeners if we're read-only.\n return;\n }\n this.eCheckbox.onValueChange(function (value) { return _this.onCheckboxChanged(!!value); });\n };\n SetFilterListItem.prototype.setupExpansion = function () {\n this.eGroupClosedIcon.appendChild(_.createIcon('setFilterGroupClosed', this.gridOptionsService, null));\n this.eGroupOpenedIcon.appendChild(_.createIcon('setFilterGroupOpen', this.gridOptionsService, null));\n this.addManagedListener(this.eGroupClosedIcon, 'click', this.onExpandOrContractClicked.bind(this));\n this.addManagedListener(this.eGroupOpenedIcon, 'click', this.onExpandOrContractClicked.bind(this));\n if (this.hasIndeterminateExpandState) {\n this.eGroupIndeterminateIcon.appendChild(_.createIcon('setFilterGroupIndeterminate', this.gridOptionsService, null));\n this.addManagedListener(this.eGroupIndeterminateIcon, 'click', this.onExpandOrContractClicked.bind(this));\n }\n this.setExpandedIcons();\n this.refreshAriaExpanded();\n };\n SetFilterListItem.prototype.onExpandOrContractClicked = function () {\n this.setExpanded(!this.isExpanded);\n };\n SetFilterListItem.prototype.setExpanded = function (isExpanded, silent) {\n if (this.isGroup && isExpanded !== this.isExpanded) {\n this.isExpanded = isExpanded;\n var event_1 = {\n type: SetFilterListItem.EVENT_EXPANDED_CHANGED,\n isExpanded: !!isExpanded,\n item: this.item\n };\n if (!silent) {\n this.dispatchEvent(event_1);\n }\n this.setExpandedIcons();\n this.refreshAriaExpanded();\n }\n };\n SetFilterListItem.prototype.refreshAriaExpanded = function () {\n _.setAriaExpanded(this.focusWrapper, !!this.isExpanded);\n };\n SetFilterListItem.prototype.setExpandedIcons = function () {\n _.setDisplayed(this.eGroupClosedIcon, this.hasIndeterminateExpandState ? this.isExpanded === false : !this.isExpanded);\n _.setDisplayed(this.eGroupOpenedIcon, this.isExpanded === true);\n if (this.hasIndeterminateExpandState) {\n _.setDisplayed(this.eGroupIndeterminateIcon, this.isExpanded === undefined);\n }\n };\n SetFilterListItem.prototype.onCheckboxChanged = function (isSelected) {\n this.isSelected = isSelected;\n var event = {\n type: SetFilterListItem.EVENT_SELECTION_CHANGED,\n isSelected: isSelected,\n item: this.item\n };\n this.dispatchEvent(event);\n this.refreshVariableAriaLabels();\n };\n SetFilterListItem.prototype.toggleSelected = function () {\n if (!!this.params.readOnly) {\n return;\n }\n this.setSelected(!this.isSelected);\n };\n SetFilterListItem.prototype.setSelected = function (isSelected, silent) {\n this.isSelected = isSelected;\n this.eCheckbox.setValue(this.isSelected, silent);\n };\n SetFilterListItem.prototype.refreshVariableAriaLabels = function () {\n if (!this.isTree) {\n return;\n }\n var translate = this.localeService.getLocaleTextFunc();\n var checkboxValue = this.eCheckbox.getValue();\n var state = checkboxValue === undefined ?\n translate('ariaIndeterminate', 'indeterminate') :\n (checkboxValue ? translate('ariaVisible', 'visible') : translate('ariaHidden', 'hidden'));\n var visibilityLabel = translate('ariaToggleVisibility', 'Press SPACE to toggle visibility');\n _.setAriaLabelledBy(this.eCheckbox.getInputElement(), undefined);\n this.eCheckbox.setInputAriaLabel(visibilityLabel + \" (\" + state + \")\");\n };\n SetFilterListItem.prototype.setupFixedAriaLabels = function (value) {\n if (!this.isTree) {\n return;\n }\n var translate = this.localeService.getLocaleTextFunc();\n var itemLabel = translate('ariaFilterValue', 'Filter Value');\n _.setAriaLabel(this.focusWrapper, value + \" \" + itemLabel);\n _.setAriaDescribedBy(this.focusWrapper, this.eCheckbox.getInputElement().id);\n };\n SetFilterListItem.prototype.refresh = function (item, isSelected, isExpanded) {\n var _a, _b;\n this.item = item;\n // setExpanded checks if value has changed, setSelected does not\n if (isSelected !== this.isSelected) {\n this.setSelected(isSelected, true);\n }\n this.setExpanded(isExpanded, true);\n if (this.valueFunction) {\n // underlying value might have changed, so call again and re-render\n var value = this.valueFunction();\n this.setTooltipAndCellRendererParams(value, value);\n if (!this.cellRendererComponent) {\n this.renderCellWithoutCellRenderer();\n }\n }\n if (this.cellRendererComponent) {\n var success = (_b = (_a = this.cellRendererComponent).refresh) === null || _b === void 0 ? void 0 : _b.call(_a, this.cellRendererParams);\n if (!success) {\n var oldComponent = this.cellRendererComponent;\n this.renderCell();\n this.destroyBean(oldComponent);\n }\n }\n };\n SetFilterListItem.prototype.render = function () {\n var column = this.params.column;\n var value = this.value;\n var formattedValue = null;\n if (typeof value === 'function') {\n this.valueFunction = value;\n formattedValue = this.valueFunction();\n // backwards compatibility for select all in value\n value = formattedValue;\n }\n else if (this.isTree) {\n // tree values are already formatted via treeListFormatter\n formattedValue = _.toStringOrNull(value);\n }\n else {\n formattedValue = this.getFormattedValue(column, value);\n }\n this.setTooltipAndCellRendererParams(value, formattedValue);\n this.renderCell();\n };\n SetFilterListItem.prototype.setTooltipAndCellRendererParams = function (value, formattedValue) {\n if (this.params.showTooltips) {\n var tooltipValue = formattedValue != null ? formattedValue : _.toStringOrNull(value);\n this.setTooltip(tooltipValue);\n }\n this.cellRendererParams = {\n value: value,\n valueFormatted: formattedValue,\n api: this.gridOptionsService.api,\n columnApi: this.gridOptionsService.columnApi,\n context: this.gridOptionsService.context,\n colDef: this.params.colDef,\n column: this.params.column,\n };\n };\n SetFilterListItem.prototype.getTooltipParams = function () {\n var res = _super.prototype.getTooltipParams.call(this);\n res.location = 'setFilterValue';\n res.colDef = this.getComponentHolder();\n if (this.isTree) {\n res.level = this.depth;\n }\n return res;\n };\n SetFilterListItem.prototype.getFormattedValue = function (column, value) {\n return this.valueFormatterService.formatValue(column, null, value, this.valueFormatter, false);\n };\n SetFilterListItem.prototype.renderCell = function () {\n var _this = this;\n var compDetails = this.userComponentFactory.getSetFilterCellRendererDetails(this.params, this.cellRendererParams);\n var cellRendererPromise = compDetails ? compDetails.newAgStackInstance() : undefined;\n if (cellRendererPromise == null) {\n this.renderCellWithoutCellRenderer();\n return;\n }\n cellRendererPromise.then(function (component) {\n if (component) {\n _this.cellRendererComponent = component;\n _this.eCheckbox.setLabel(component.getGui());\n _this.destroyCellRendererComponent = function () { return _this.destroyBean(component); };\n }\n });\n };\n SetFilterListItem.prototype.renderCellWithoutCellRenderer = function () {\n var _a;\n var valueToRender = (_a = (this.cellRendererParams.valueFormatted == null ? this.cellRendererParams.value : this.cellRendererParams.valueFormatted)) !== null && _a !== void 0 ? _a : this.translate('blanks');\n if (typeof valueToRender !== 'string') {\n _.doOnce(function () { return console.warn('AG Grid: Set Filter Value Formatter must return string values. Please ensure the Set Filter Value Formatter returns string values for complex objects, or set convertValuesToStrings=true in the filterParams. See https://www.ag-grid.com/javascript-data-grid/filter-set-filter-list/#filter-value-types'); }, 'setFilterComplexObjectsValueFormatter');\n valueToRender = '';\n }\n this.eCheckbox.setLabel(valueToRender);\n this.setupFixedAriaLabels(valueToRender);\n };\n SetFilterListItem.prototype.getComponentHolder = function () {\n return this.params.column.getColDef();\n };\n SetFilterListItem.EVENT_SELECTION_CHANGED = 'selectionChanged';\n SetFilterListItem.EVENT_EXPANDED_CHANGED = 'expandedChanged';\n SetFilterListItem.GROUP_TEMPLATE = \"\\n
\\n \\n \\n \\n \\n \\n \\n
\";\n SetFilterListItem.TEMPLATE = \"\\n
\\n \\n
\";\n __decorate$d([\n Autowired('valueFormatterService')\n ], SetFilterListItem.prototype, \"valueFormatterService\", void 0);\n __decorate$d([\n Autowired('userComponentFactory')\n ], SetFilterListItem.prototype, \"userComponentFactory\", void 0);\n __decorate$d([\n RefSelector('eCheckbox')\n ], SetFilterListItem.prototype, \"eCheckbox\", void 0);\n __decorate$d([\n RefSelector('eGroupOpenedIcon')\n ], SetFilterListItem.prototype, \"eGroupOpenedIcon\", void 0);\n __decorate$d([\n RefSelector('eGroupClosedIcon')\n ], SetFilterListItem.prototype, \"eGroupClosedIcon\", void 0);\n __decorate$d([\n RefSelector('eGroupIndeterminateIcon')\n ], SetFilterListItem.prototype, \"eGroupIndeterminateIcon\", void 0);\n __decorate$d([\n PostConstruct\n ], SetFilterListItem.prototype, \"init\", null);\n return SetFilterListItem;\n}(Component));\n\nvar DEFAULT_LOCALE_TEXT = {\n loadingOoo: 'Loading...',\n blanks: '(Blanks)',\n searchOoo: 'Search...',\n selectAll: '(Select All)',\n selectAllSearchResults: '(Select All Search Results)',\n addCurrentSelectionToFilter: 'Add current selection to filter',\n noMatches: 'No matches.'\n};\n\nvar SetFilterModelFormatter = /** @class */ (function () {\n function SetFilterModelFormatter() {\n }\n SetFilterModelFormatter.prototype.getModelAsString = function (model, setFilter) {\n var values = (model || setFilter.getModel() || {}).values;\n var valueModel = setFilter.getValueModel();\n if (values == null || valueModel == null) {\n return '';\n }\n var availableKeys = values.filter(function (v) { return valueModel.isKeyAvailable(v); });\n var numValues = availableKeys.length;\n var formattedValues = availableKeys.slice(0, 10).map(function (key) { return setFilter.getFormattedValue(key); });\n return \"(\" + numValues + \") \" + formattedValues.join(',') + (numValues > 10 ? ',...' : '');\n };\n return SetFilterModelFormatter;\n}());\n\nvar __extends$h = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$c = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/** @param V type of value in the Set Filter */\nvar SetFilter = /** @class */ (function (_super) {\n __extends$h(SetFilter, _super);\n function SetFilter() {\n var _this = _super.call(this, 'setFilter') || this;\n _this.valueModel = null;\n _this.setFilterParams = null;\n _this.virtualList = null;\n _this.caseSensitive = false;\n _this.convertValuesToStrings = false;\n _this.treeDataTreeList = false;\n _this.groupingTreeList = false;\n _this.hardRefreshVirtualList = false;\n _this.noValueFormatterSupplied = false;\n _this.filterModelFormatter = new SetFilterModelFormatter();\n return _this;\n }\n SetFilter.prototype.postConstruct = function () {\n _super.prototype.postConstruct.call(this);\n };\n // unlike the simple filters, nothing in the set filter UI shows/hides.\n // maybe this method belongs in abstractSimpleFilter???\n SetFilter.prototype.updateUiVisibility = function () { };\n SetFilter.prototype.createBodyTemplate = function () {\n return /* html */ \"\\n
\\n
\" + this.translateForSetFilter('loadingOoo') + \"
\\n \\n
\" + this.translateForSetFilter('noMatches') + \"
\\n
\\n
\";\n };\n SetFilter.prototype.handleKeyDown = function (e) {\n _super.prototype.handleKeyDown.call(this, e);\n if (e.defaultPrevented) {\n return;\n }\n switch (e.key) {\n case KeyCode.SPACE:\n this.handleKeySpace(e);\n break;\n case KeyCode.ENTER:\n this.handleKeyEnter(e);\n break;\n case KeyCode.LEFT:\n this.handleKeyLeft(e);\n break;\n case KeyCode.RIGHT:\n this.handleKeyRight(e);\n break;\n }\n };\n SetFilter.prototype.handleKeySpace = function (e) {\n var _a;\n (_a = this.getComponentForKeyEvent(e)) === null || _a === void 0 ? void 0 : _a.toggleSelected();\n };\n SetFilter.prototype.handleKeyEnter = function (e) {\n if (!this.setFilterParams) {\n return;\n }\n var _a = this.setFilterParams || {}, excelMode = _a.excelMode, readOnly = _a.readOnly;\n if (!excelMode || !!readOnly) {\n return;\n }\n e.preventDefault();\n // in Excel Mode, hitting Enter is the same as pressing the Apply button\n this.onBtApply(false, false, e);\n if (this.setFilterParams.excelMode === 'mac') {\n // in Mac version, select all the input text\n this.eMiniFilter.getInputElement().select();\n }\n };\n SetFilter.prototype.handleKeyLeft = function (e) {\n var _a;\n (_a = this.getComponentForKeyEvent(e)) === null || _a === void 0 ? void 0 : _a.setExpanded(false);\n };\n SetFilter.prototype.handleKeyRight = function (e) {\n var _a;\n (_a = this.getComponentForKeyEvent(e)) === null || _a === void 0 ? void 0 : _a.setExpanded(true);\n };\n SetFilter.prototype.getComponentForKeyEvent = function (e) {\n var _a;\n var eDocument = this.gridOptionsService.getDocument();\n if (!this.eSetFilterList.contains(eDocument.activeElement) || !this.virtualList) {\n return;\n }\n var currentItem = this.virtualList.getLastFocusedRow();\n if (currentItem == null) {\n return;\n }\n var component = this.virtualList.getComponentAt(currentItem);\n if (component == null) {\n return;\n }\n e.preventDefault();\n var readOnly = ((_a = this.setFilterParams) !== null && _a !== void 0 ? _a : {}).readOnly;\n if (!!readOnly) {\n return;\n }\n return component;\n };\n SetFilter.prototype.getCssIdentifier = function () {\n return 'set-filter';\n };\n SetFilter.prototype.setModel = function (model) {\n var _a;\n if (model == null && ((_a = this.valueModel) === null || _a === void 0 ? void 0 : _a.getModel()) == null) {\n // refreshing is expensive. if new and old model are both null (e.g. nothing set), skip.\n // mini filter isn't contained within the model, so always reset\n this.setMiniFilter(null);\n return AgPromise.resolve();\n }\n return _super.prototype.setModel.call(this, model);\n };\n SetFilter.prototype.setModelAndRefresh = function (values) {\n var _this = this;\n return this.valueModel ? this.valueModel.setModel(values).then(function () { return _this.refresh(); }) : AgPromise.resolve();\n };\n SetFilter.prototype.resetUiToDefaults = function () {\n this.setMiniFilter(null);\n return this.setModelAndRefresh(null);\n };\n SetFilter.prototype.setModelIntoUi = function (model) {\n this.setMiniFilter(null);\n var values = model == null ? null : model.values;\n return this.setModelAndRefresh(values);\n };\n SetFilter.prototype.getModelFromUi = function () {\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n var values = this.valueModel.getModel();\n if (!values) {\n return null;\n }\n return { values: values, filterType: this.getFilterType() };\n };\n SetFilter.prototype.getFilterType = function () {\n return 'set';\n };\n SetFilter.prototype.getValueModel = function () {\n return this.valueModel;\n };\n SetFilter.prototype.areModelsEqual = function (a, b) {\n // both are missing\n if (a == null && b == null) {\n return true;\n }\n return a != null && b != null && _.areEqual(a.values, b.values);\n };\n SetFilter.prototype.setParams = function (params) {\n var _this = this;\n var _a;\n this.applyExcelModeOptions(params);\n _super.prototype.setParams.call(this, params);\n this.setFilterParams = params;\n this.convertValuesToStrings = !!params.convertValuesToStrings;\n this.caseSensitive = !!params.caseSensitive;\n var keyCreator = (_a = params.keyCreator) !== null && _a !== void 0 ? _a : params.colDef.keyCreator;\n this.setValueFormatter(params.valueFormatter, keyCreator, this.convertValuesToStrings, !!params.treeList, !!params.colDef.refData);\n var isGroupCol = params.column.getId().startsWith(GROUP_AUTO_COLUMN_ID);\n this.treeDataTreeList = this.gridOptionsService.is('treeData') && !!params.treeList && isGroupCol;\n this.getDataPath = this.gridOptionsService.get('getDataPath');\n this.groupingTreeList = !!this.columnModel.getRowGroupColumns().length && !!params.treeList && isGroupCol;\n this.createKey = this.generateCreateKey(keyCreator, this.convertValuesToStrings, this.treeDataTreeList || this.groupingTreeList);\n this.valueModel = new SetValueModel({\n filterParams: params,\n setIsLoading: function (loading) { return _this.setIsLoading(loading); },\n valueFormatterService: this.valueFormatterService,\n translate: function (key) { return _this.translateForSetFilter(key); },\n caseFormat: function (v) { return _this.caseFormat(v); },\n createKey: this.createKey,\n valueFormatter: this.valueFormatter,\n usingComplexObjects: !!keyCreator,\n gridOptionsService: this.gridOptionsService,\n columnModel: this.columnModel,\n valueService: this.valueService,\n treeDataTreeList: this.treeDataTreeList,\n groupingTreeList: this.groupingTreeList\n });\n this.initialiseFilterBodyUi();\n this.addEventListenersForDataChanges();\n };\n SetFilter.prototype.onAddCurrentSelectionToFilterChange = function (newValue) {\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n this.valueModel.setAddCurrentSelectionToFilter(newValue);\n };\n SetFilter.prototype.setValueFormatter = function (providedValueFormatter, keyCreator, convertValuesToStrings, treeList, isRefData) {\n var valueFormatter = providedValueFormatter;\n if (!valueFormatter) {\n if (keyCreator && !convertValuesToStrings && !treeList) {\n throw new Error('AG Grid: Must supply a Value Formatter in Set Filter params when using a Key Creator unless convertValuesToStrings is enabled');\n }\n this.noValueFormatterSupplied = true;\n // ref data is handled by ValueFormatterService\n if (!isRefData) {\n valueFormatter = function (params) { return _.toStringOrNull(params.value); };\n }\n }\n this.valueFormatter = valueFormatter;\n };\n SetFilter.prototype.generateCreateKey = function (keyCreator, convertValuesToStrings, treeDataOrGrouping) {\n var _this = this;\n if (treeDataOrGrouping && !keyCreator) {\n throw new Error('AG Grid: Must supply a Key Creator in Set Filter params when `treeList = true` on a group column, and Tree Data or Row Grouping is enabled.');\n }\n if (keyCreator) {\n return function (value, node) {\n if (node === void 0) { node = null; }\n var params = _this.getKeyCreatorParams(value, node);\n return _.makeNull(keyCreator(params));\n };\n }\n if (convertValuesToStrings) {\n // for backwards compatibility - keeping separate as it will eventually be removed\n return function (value) { return Array.isArray(value) ? value : _.makeNull(_.toStringOrNull(value)); };\n }\n else {\n return function (value) { return _.makeNull(_.toStringOrNull(value)); };\n }\n };\n SetFilter.prototype.getFormattedValue = function (key) {\n var _a;\n var value = this.valueModel.getValue(key);\n if (this.noValueFormatterSupplied && (this.treeDataTreeList || this.groupingTreeList) && Array.isArray(value)) {\n // essentially get back the cell value\n value = _.last(value);\n }\n var formattedValue = this.valueFormatterService.formatValue(this.setFilterParams.column, null, value, this.valueFormatter, false);\n return (_a = (formattedValue == null ? _.toStringOrNull(value) : formattedValue)) !== null && _a !== void 0 ? _a : this.translateForSetFilter('blanks');\n };\n SetFilter.prototype.applyExcelModeOptions = function (params) {\n // apply default options to match Excel behaviour, unless they have already been specified\n if (params.excelMode === 'windows') {\n if (!params.buttons) {\n params.buttons = ['apply', 'cancel'];\n }\n if (params.closeOnApply == null) {\n params.closeOnApply = true;\n }\n }\n else if (params.excelMode === 'mac') {\n if (!params.buttons) {\n params.buttons = ['reset'];\n }\n if (params.applyMiniFilterWhileTyping == null) {\n params.applyMiniFilterWhileTyping = true;\n }\n if (params.debounceMs == null) {\n params.debounceMs = 500;\n }\n }\n if (params.excelMode && params.defaultToNothingSelected) {\n params.defaultToNothingSelected = false;\n _.doOnce(function () { return console.warn('AG Grid: The Set Filter Parameter \"defaultToNothingSelected\" value was ignored because it does not work when \"excelMode\" is used.'); }, 'setFilterExcelModeDefaultToNothingSelect');\n }\n };\n SetFilter.prototype.addEventListenersForDataChanges = function () {\n var _this = this;\n if (!this.isValuesTakenFromGrid()) {\n return;\n }\n this.addManagedListener(this.eventService, Events.EVENT_CELL_VALUE_CHANGED, function (event) {\n // only interested in changes to do with this column\n if (_this.setFilterParams && event.column === _this.setFilterParams.column) {\n _this.syncAfterDataChange();\n }\n });\n };\n SetFilter.prototype.syncAfterDataChange = function () {\n var _this = this;\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n var promise = this.valueModel.refreshValues();\n return promise.then(function () {\n _this.refresh();\n _this.onBtApply(false, true);\n });\n };\n SetFilter.prototype.setIsLoading = function (isLoading) {\n _.setDisplayed(this.eFilterLoading, isLoading);\n if (!isLoading) {\n // hard refresh when async data received\n this.hardRefreshVirtualList = true;\n }\n };\n SetFilter.prototype.initialiseFilterBodyUi = function () {\n this.initVirtualList();\n this.initMiniFilter();\n };\n SetFilter.prototype.initVirtualList = function () {\n var _this = this;\n if (!this.setFilterParams) {\n throw new Error('Set filter params have not been provided.');\n }\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n var translate = this.localeService.getLocaleTextFunc();\n var filterListName = translate('ariaFilterList', 'Filter List');\n var isTree = !!this.setFilterParams.treeList;\n var virtualList = this.virtualList = this.createBean(new VirtualList({\n cssIdentifier: 'filter',\n ariaRole: isTree ? 'tree' : 'listbox',\n listName: filterListName\n }));\n var eSetFilterList = this.getRefElement('eSetFilterList');\n if (isTree) {\n eSetFilterList.classList.add('ag-set-filter-tree-list');\n }\n if (eSetFilterList) {\n eSetFilterList.appendChild(virtualList.getGui());\n }\n var cellHeight = this.setFilterParams.cellHeight;\n if (cellHeight != null) {\n virtualList.setRowHeight(cellHeight);\n }\n var componentCreator = function (item, listItemElement) { return _this.createSetListItem(item, isTree, listItemElement); };\n virtualList.setComponentCreator(componentCreator);\n var componentUpdater = function (item, component) { return _this.updateSetListItem(item, component); };\n virtualList.setComponentUpdater(componentUpdater);\n var model;\n if (this.setFilterParams.suppressSelectAll) {\n model = new ModelWrapper(this.valueModel);\n }\n else {\n model = new ModelWrapperWithSelectAll(this.valueModel, function () { return _this.isSelectAllSelected(); });\n }\n if (isTree) {\n model = new TreeModelWrapper(model);\n }\n virtualList.setModel(model);\n };\n SetFilter.prototype.getSelectAllLabel = function () {\n if (!this.setFilterParams) {\n throw new Error('Set filter params have not been provided.');\n }\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n var key = this.valueModel.getMiniFilter() == null || !this.setFilterParams.excelMode ?\n 'selectAll' : 'selectAllSearchResults';\n return this.translateForSetFilter(key);\n };\n SetFilter.prototype.getAddSelectionToFilterLabel = function () {\n if (!this.setFilterParams) {\n throw new Error('Set filter params have not been provided.');\n }\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n return this.translateForSetFilter('addCurrentSelectionToFilter');\n };\n SetFilter.prototype.createSetListItem = function (item, isTree, focusWrapper) {\n var _this = this;\n if (!this.setFilterParams) {\n throw new Error('Set filter params have not been provided.');\n }\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n var groupsExist = this.valueModel.hasGroups();\n var _a = this.isSelectedExpanded(item), isSelected = _a.isSelected, isExpanded = _a.isExpanded;\n var _b = this.newSetListItemAttributes(item, isTree), value = _b.value, depth = _b.depth, isGroup = _b.isGroup, hasIndeterminateExpandState = _b.hasIndeterminateExpandState, selectedListener = _b.selectedListener, expandedListener = _b.expandedListener;\n var itemParams = {\n focusWrapper: focusWrapper,\n value: value,\n params: this.setFilterParams,\n translate: function (translateKey) { return _this.translateForSetFilter(translateKey); },\n valueFormatter: this.valueFormatter,\n item: item,\n isSelected: isSelected,\n isTree: isTree,\n depth: depth,\n groupsExist: groupsExist,\n isGroup: isGroup,\n isExpanded: isExpanded,\n hasIndeterminateExpandState: hasIndeterminateExpandState,\n };\n var listItem = this.createBean(new SetFilterListItem(itemParams));\n listItem.addEventListener(SetFilterListItem.EVENT_SELECTION_CHANGED, selectedListener);\n if (expandedListener) {\n listItem.addEventListener(SetFilterListItem.EVENT_EXPANDED_CHANGED, expandedListener);\n }\n return listItem;\n };\n SetFilter.prototype.newSetTreeItemAttributes = function (item, isTree) {\n var _this = this;\n var _a, _b, _c, _d, _e, _f;\n if (!this.setFilterParams) {\n throw new Error('Set filter params have not been provided.');\n }\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n var groupsExist = this.valueModel.hasGroups();\n // Select all option\n if (item.key === SetFilterDisplayValue.SELECT_ALL) {\n return {\n value: function () { return _this.getSelectAllLabel(); },\n isGroup: groupsExist,\n depth: item.depth,\n hasIndeterminateExpandState: true,\n selectedListener: function (e) { return _this.onSelectAll(e.isSelected); },\n expandedListener: function (e) { return _this.onExpandAll(e.item, e.isExpanded); },\n };\n }\n // Add selection to filter option\n if (item.key === SetFilterDisplayValue.ADD_SELECTION_TO_FILTER) {\n return {\n value: function () { return _this.getAddSelectionToFilterLabel(); },\n depth: item.depth,\n isGroup: false,\n hasIndeterminateExpandState: false,\n selectedListener: function (e) {\n _this.onAddCurrentSelectionToFilterChange(e.isSelected);\n }\n };\n }\n // Group\n if (item.children) {\n return {\n value: (_c = (_b = (_a = this.setFilterParams).treeListFormatter) === null || _b === void 0 ? void 0 : _b.call(_a, item.treeKey, item.depth, item.parentTreeKeys)) !== null && _c !== void 0 ? _c : item.treeKey,\n depth: item.depth,\n isGroup: true,\n selectedListener: function (e) { return _this.onGroupItemSelected(e.item, e.isSelected); },\n expandedListener: function (e) { return _this.onExpandedChanged(e.item, e.isExpanded); },\n };\n }\n // Leaf\n return {\n value: (_f = (_e = (_d = this.setFilterParams).treeListFormatter) === null || _e === void 0 ? void 0 : _e.call(_d, item.treeKey, item.depth, item.parentTreeKeys)) !== null && _f !== void 0 ? _f : item.treeKey,\n depth: item.depth,\n selectedListener: function (e) { return _this.onItemSelected(e.item.key, e.isSelected); },\n };\n };\n SetFilter.prototype.newSetListItemAttributes = function (item, isTree) {\n var _this = this;\n if (!this.setFilterParams) {\n throw new Error('Set filter params have not been provided.');\n }\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n // Tree item\n if (this.isSetFilterModelTreeItem(item)) {\n return this.newSetTreeItemAttributes(item, isTree);\n }\n // List item - 'Select All'\n if (item === SetFilterDisplayValue.SELECT_ALL) {\n return {\n value: function () { return _this.getSelectAllLabel(); },\n selectedListener: function (e) { return _this.onSelectAll(e.isSelected); },\n };\n }\n // List item - 'Add selection to filter'\n if (item === SetFilterDisplayValue.ADD_SELECTION_TO_FILTER) {\n return {\n value: function () { return _this.getAddSelectionToFilterLabel(); },\n selectedListener: function (e) {\n _this.onAddCurrentSelectionToFilterChange(e.isSelected);\n },\n };\n }\n // List item\n return {\n value: this.valueModel.getValue(item),\n selectedListener: function (e) { return _this.onItemSelected(e.item, e.isSelected); },\n };\n };\n SetFilter.prototype.updateSetListItem = function (item, component) {\n var _a = this.isSelectedExpanded(item), isSelected = _a.isSelected, isExpanded = _a.isExpanded;\n component.refresh(item, isSelected, isExpanded);\n };\n SetFilter.prototype.isSelectedExpanded = function (item) {\n var isSelected;\n var isExpanded;\n if (this.isSetFilterModelTreeItem(item)) {\n isExpanded = item.expanded;\n if (item.key === SetFilterDisplayValue.SELECT_ALL) {\n isSelected = this.isSelectAllSelected();\n }\n else if (item.key === SetFilterDisplayValue.ADD_SELECTION_TO_FILTER) {\n isSelected = this.valueModel.isAddCurrentSelectionToFilterChecked();\n }\n else if (item.children) {\n isSelected = this.areAllChildrenSelected(item);\n }\n else {\n isSelected = this.valueModel.isKeySelected(item.key);\n }\n }\n else {\n if (item === SetFilterDisplayValue.SELECT_ALL) {\n isSelected = this.isSelectAllSelected();\n }\n else if (item === SetFilterDisplayValue.ADD_SELECTION_TO_FILTER) {\n isSelected = this.valueModel.isAddCurrentSelectionToFilterChecked();\n }\n else {\n isSelected = this.valueModel.isKeySelected(item);\n }\n }\n return { isSelected: isSelected, isExpanded: isExpanded };\n };\n SetFilter.prototype.isSetFilterModelTreeItem = function (item) {\n return (item === null || item === void 0 ? void 0 : item.treeKey) !== undefined;\n };\n SetFilter.prototype.initMiniFilter = function () {\n var _this = this;\n if (!this.setFilterParams) {\n throw new Error('Set filter params have not been provided.');\n }\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n var _a = this, eMiniFilter = _a.eMiniFilter, localeService = _a.localeService;\n var translate = localeService.getLocaleTextFunc();\n eMiniFilter.setDisplayed(!this.setFilterParams.suppressMiniFilter);\n eMiniFilter.setValue(this.valueModel.getMiniFilter());\n eMiniFilter.onValueChange(function () { return _this.onMiniFilterInput(); });\n eMiniFilter.setInputAriaLabel(translate('ariaSearchFilterValues', 'Search filter values'));\n this.addManagedListener(eMiniFilter.getInputElement(), 'keydown', function (e) { return _this.onMiniFilterKeyDown(e); });\n };\n // we need to have the GUI attached before we can draw the virtual rows, as the\n // virtual row logic needs info about the GUI state\n SetFilter.prototype.afterGuiAttached = function (params) {\n if (!this.setFilterParams) {\n throw new Error('Set filter params have not been provided.');\n }\n _super.prototype.afterGuiAttached.call(this, params);\n // collapse all tree list items (if tree list)\n this.resetExpansion();\n this.refreshVirtualList();\n var eMiniFilter = this.eMiniFilter;\n eMiniFilter.setInputPlaceholder(this.translateForSetFilter('searchOoo'));\n if (!params || !params.suppressFocus) {\n eMiniFilter.getFocusableElement().focus();\n }\n };\n SetFilter.prototype.afterGuiDetached = function () {\n var _a, _b;\n _super.prototype.afterGuiDetached.call(this);\n // discard any unapplied UI state (reset to model)\n if ((_a = this.setFilterParams) === null || _a === void 0 ? void 0 : _a.excelMode) {\n this.resetMiniFilter();\n }\n var appliedModel = this.getModel();\n if (((_b = this.setFilterParams) === null || _b === void 0 ? void 0 : _b.excelMode) || !this.areModelsEqual(appliedModel, this.getModelFromUi())) {\n this.resetUiToActiveModel(appliedModel);\n this.showOrHideResults();\n }\n };\n SetFilter.prototype.applyModel = function (source) {\n var _this = this;\n if (source === void 0) { source = 'api'; }\n if (!this.setFilterParams) {\n throw new Error('Set filter params have not been provided.');\n }\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n if (this.setFilterParams.excelMode && source !== 'rowDataUpdated' && this.valueModel.isEverythingVisibleSelected()) {\n // In Excel, if the filter is applied with all visible values selected, then any active filter on the\n // column is removed. This ensures the filter is removed in this situation.\n this.valueModel.selectAllMatchingMiniFilter();\n }\n // Here we implement AG-9090 TC2\n // When 'Add current selection to filter' is visible and checked, but no filter is applied:\n // Do NOT apply the current selection as filter.\n var shouldKeepCurrentSelection = this.valueModel.showAddCurrentSelectionToFilter() && this.valueModel.isAddCurrentSelectionToFilterChecked();\n if (shouldKeepCurrentSelection && !this.getModel()) {\n return false;\n }\n var result = _super.prototype.applyModel.call(this, source);\n // keep appliedModelKeys in sync with the applied model\n var appliedModel = this.getModel();\n if (appliedModel) {\n if (!shouldKeepCurrentSelection) {\n this.valueModel.setAppliedModelKeys(new Set());\n }\n appliedModel.values.forEach(function (key) {\n _this.valueModel.addToAppliedModelKeys(key);\n });\n }\n else {\n if (!shouldKeepCurrentSelection) {\n this.valueModel.setAppliedModelKeys(null);\n }\n }\n return result;\n };\n SetFilter.prototype.isModelValid = function (model) {\n return this.setFilterParams && this.setFilterParams.excelMode ? model == null || model.values.length > 0 : true;\n };\n SetFilter.prototype.doesFilterPass = function (params) {\n var _this = this;\n if (!this.setFilterParams || !this.valueModel || !this.valueModel.getCaseFormattedAppliedModelKeys()) {\n return true;\n }\n // if nothing selected, don't need to check value\n if (!this.valueModel.hasAnyAppliedModelKey()) {\n return false;\n }\n var node = params.node, data = params.data;\n if (this.treeDataTreeList) {\n return this.doesFilterPassForTreeData(node, data);\n }\n if (this.groupingTreeList) {\n return this.doesFilterPassForGrouping(node, data);\n }\n var value = this.getValueFromNode(node, data);\n if (this.convertValuesToStrings) {\n // for backwards compatibility - keeping separate as it will eventually be removed\n return this.doesFilterPassForConvertValuesToString(node, value);\n }\n if (value != null && Array.isArray(value)) {\n if (value.length === 0) {\n return this.valueModel.hasAppliedModelKey(null);\n }\n return value.some(function (v) { return _this.isInAppliedModel(_this.createKey(v, node)); });\n }\n return this.isInAppliedModel(this.createKey(value, node));\n };\n SetFilter.prototype.doesFilterPassForConvertValuesToString = function (node, value) {\n var _this = this;\n var key = this.createKey(value, node);\n if (key != null && Array.isArray(key)) {\n if (key.length === 0) {\n return this.valueModel.hasAppliedModelKey(null);\n }\n return key.some(function (v) { return _this.isInAppliedModel(v); });\n }\n return this.isInAppliedModel(key);\n };\n SetFilter.prototype.doesFilterPassForTreeData = function (node, data) {\n var _a;\n if ((_a = node.childrenAfterGroup) === null || _a === void 0 ? void 0 : _a.length) {\n // only perform checking on leaves. The core filtering logic for tree data won't work properly otherwise\n return false;\n }\n return this.isInAppliedModel(this.createKey(this.checkMakeNullDataPath(this.getDataPath(data))));\n };\n SetFilter.prototype.doesFilterPassForGrouping = function (node, data) {\n var _this = this;\n var dataPath = this.columnModel.getRowGroupColumns().map(function (groupCol) { return _this.valueService.getKeyForNode(groupCol, node); });\n dataPath.push(this.getValueFromNode(node, data));\n return this.isInAppliedModel(this.createKey(this.checkMakeNullDataPath(dataPath)));\n };\n SetFilter.prototype.checkMakeNullDataPath = function (dataPath) {\n if (dataPath) {\n dataPath = dataPath.map(function (treeKey) { return _.toStringOrNull(_.makeNull(treeKey)); });\n }\n if (dataPath === null || dataPath === void 0 ? void 0 : dataPath.some(function (treeKey) { return treeKey == null; })) {\n return null;\n }\n return dataPath;\n };\n SetFilter.prototype.isInAppliedModel = function (key) {\n return this.valueModel.hasAppliedModelKey(key);\n };\n SetFilter.prototype.getValueFromNode = function (node, data) {\n var _a = this.setFilterParams, valueGetter = _a.valueGetter, api = _a.api, colDef = _a.colDef, column = _a.column, columnApi = _a.columnApi, context = _a.context;\n return valueGetter({\n api: api,\n colDef: colDef,\n column: column,\n columnApi: columnApi,\n context: context,\n data: data,\n getValue: function (field) { return data[field]; },\n node: node,\n });\n };\n SetFilter.prototype.getKeyCreatorParams = function (value, node) {\n if (node === void 0) { node = null; }\n return {\n value: value,\n colDef: this.setFilterParams.colDef,\n column: this.setFilterParams.column,\n node: node,\n data: node === null || node === void 0 ? void 0 : node.data,\n api: this.setFilterParams.api,\n columnApi: this.setFilterParams.columnApi,\n context: this.setFilterParams.context\n };\n };\n SetFilter.prototype.onNewRowsLoaded = function () {\n if (!this.isValuesTakenFromGrid()) {\n return;\n }\n this.syncAfterDataChange();\n };\n SetFilter.prototype.isValuesTakenFromGrid = function () {\n if (!this.valueModel) {\n return false;\n }\n var valuesType = this.valueModel.getValuesType();\n return valuesType === SetFilterModelValuesType.TAKEN_FROM_GRID_VALUES;\n };\n //noinspection JSUnusedGlobalSymbols\n /**\n * Public method provided so the user can change the value of the filter once\n * the filter has been already started\n * @param values The values to use.\n */\n SetFilter.prototype.setFilterValues = function (values) {\n var _this = this;\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n this.valueModel.overrideValues(values).then(function () {\n _this.refresh();\n _this.onUiChanged();\n });\n };\n //noinspection JSUnusedGlobalSymbols\n /**\n * Public method provided so the user can reset the values of the filter once that it has started.\n */\n SetFilter.prototype.resetFilterValues = function () {\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n this.valueModel.setValuesType(SetFilterModelValuesType.TAKEN_FROM_GRID_VALUES);\n this.syncAfterDataChange();\n };\n SetFilter.prototype.refreshFilterValues = function () {\n var _this = this;\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n // the model is still being initialised\n if (!this.valueModel.isInitialised()) {\n return;\n }\n this.valueModel.refreshValues().then(function () {\n _this.refresh();\n _this.onUiChanged();\n });\n };\n SetFilter.prototype.onAnyFilterChanged = function () {\n var _this = this;\n // don't block the current action when updating the values for this filter\n setTimeout(function () {\n if (!_this.isAlive()) {\n return;\n }\n if (!_this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n _this.valueModel.refreshAfterAnyFilterChanged().then(function (refresh) {\n if (refresh) {\n _this.refresh();\n _this.showOrHideResults();\n }\n });\n }, 0);\n };\n SetFilter.prototype.onMiniFilterInput = function () {\n if (!this.setFilterParams) {\n throw new Error('Set filter params have not been provided.');\n }\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n if (!this.valueModel.setMiniFilter(this.eMiniFilter.getValue())) {\n return;\n }\n var _a = this.setFilterParams || {}, applyMiniFilterWhileTyping = _a.applyMiniFilterWhileTyping, readOnly = _a.readOnly;\n if (!readOnly && applyMiniFilterWhileTyping) {\n this.filterOnAllVisibleValues(false);\n }\n else {\n this.updateUiAfterMiniFilterChange();\n }\n };\n SetFilter.prototype.updateUiAfterMiniFilterChange = function () {\n if (!this.setFilterParams) {\n throw new Error('Set filter params have not been provided.');\n }\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n var _a = this.setFilterParams || {}, excelMode = _a.excelMode, readOnly = _a.readOnly;\n if (excelMode == null || !!readOnly) {\n this.refresh();\n }\n else if (this.valueModel.getMiniFilter() == null) {\n this.resetUiToActiveModel(this.getModel());\n }\n else {\n this.valueModel.selectAllMatchingMiniFilter(true);\n this.refresh();\n this.onUiChanged();\n }\n this.showOrHideResults();\n };\n SetFilter.prototype.showOrHideResults = function () {\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n var hideResults = this.valueModel.getMiniFilter() != null && this.valueModel.getDisplayedValueCount() < 1;\n _.setDisplayed(this.eNoMatches, hideResults);\n _.setDisplayed(this.eSetFilterList, !hideResults);\n };\n SetFilter.prototype.resetMiniFilter = function () {\n var _a;\n this.eMiniFilter.setValue(null, true);\n (_a = this.valueModel) === null || _a === void 0 ? void 0 : _a.setMiniFilter(null);\n };\n SetFilter.prototype.resetUiToActiveModel = function (currentModel, afterUiUpdatedFunc) {\n var _this = this;\n // override the default behaviour as we don't always want to clear the mini filter\n this.setModelAndRefresh(currentModel == null ? null : currentModel.values).then(function () {\n _this.onUiChanged(false, 'prevent');\n afterUiUpdatedFunc === null || afterUiUpdatedFunc === void 0 ? void 0 : afterUiUpdatedFunc();\n });\n };\n SetFilter.prototype.handleCancelEnd = function (e) {\n this.setMiniFilter(null);\n _super.prototype.handleCancelEnd.call(this, e);\n };\n SetFilter.prototype.onMiniFilterKeyDown = function (e) {\n var _a = this.setFilterParams || {}, excelMode = _a.excelMode, readOnly = _a.readOnly;\n if (e.key === KeyCode.ENTER && !excelMode && !readOnly) {\n this.filterOnAllVisibleValues();\n }\n };\n SetFilter.prototype.filterOnAllVisibleValues = function (applyImmediately) {\n if (applyImmediately === void 0) { applyImmediately = true; }\n var readOnly = (this.setFilterParams || {}).readOnly;\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n if (!!readOnly) {\n throw new Error('Unable to filter in readOnly mode.');\n }\n this.valueModel.selectAllMatchingMiniFilter(true);\n this.refresh();\n this.onUiChanged(false, applyImmediately ? 'immediately' : 'debounce');\n this.showOrHideResults();\n };\n SetFilter.prototype.focusRowIfAlive = function (rowIndex) {\n var _this = this;\n if (rowIndex == null) {\n return;\n }\n window.setTimeout(function () {\n if (!_this.virtualList) {\n throw new Error('Virtual list has not been created.');\n }\n if (_this.isAlive()) {\n _this.virtualList.focusRow(rowIndex);\n }\n }, 0);\n };\n SetFilter.prototype.onSelectAll = function (isSelected) {\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n if (!this.virtualList) {\n throw new Error('Virtual list has not been created.');\n }\n if (isSelected) {\n this.valueModel.selectAllMatchingMiniFilter();\n }\n else {\n this.valueModel.deselectAllMatchingMiniFilter();\n }\n this.refreshAfterSelection();\n };\n SetFilter.prototype.onGroupItemSelected = function (item, isSelected) {\n var _this = this;\n var recursiveGroupSelection = function (i) {\n if (i.children) {\n i.children.forEach(function (childItem) { return recursiveGroupSelection(childItem); });\n }\n else {\n _this.selectItem(i.key, isSelected);\n }\n };\n recursiveGroupSelection(item);\n this.refreshAfterSelection();\n };\n SetFilter.prototype.onItemSelected = function (key, isSelected) {\n if (!this.valueModel) {\n throw new Error('Value model has not been created.');\n }\n if (!this.virtualList) {\n throw new Error('Virtual list has not been created.');\n }\n this.selectItem(key, isSelected);\n this.refreshAfterSelection();\n };\n SetFilter.prototype.selectItem = function (key, isSelected) {\n if (isSelected) {\n this.valueModel.selectKey(key);\n }\n else {\n this.valueModel.deselectKey(key);\n }\n };\n SetFilter.prototype.onExpandAll = function (item, isExpanded) {\n var recursiveExpansion = function (i) {\n if (i.filterPasses && i.available && i.children) {\n i.children.forEach(function (childItem) { return recursiveExpansion(childItem); });\n i.expanded = isExpanded;\n }\n };\n recursiveExpansion(item);\n this.refreshAfterExpansion();\n };\n SetFilter.prototype.onExpandedChanged = function (item, isExpanded) {\n item.expanded = isExpanded;\n this.refreshAfterExpansion();\n };\n SetFilter.prototype.refreshAfterExpansion = function () {\n var focusedRow = this.virtualList.getLastFocusedRow();\n this.valueModel.updateDisplayedValues('expansion');\n this.refresh();\n this.focusRowIfAlive(focusedRow);\n };\n SetFilter.prototype.refreshAfterSelection = function () {\n var focusedRow = this.virtualList.getLastFocusedRow();\n this.refresh();\n this.onUiChanged();\n this.focusRowIfAlive(focusedRow);\n };\n SetFilter.prototype.setMiniFilter = function (newMiniFilter) {\n this.eMiniFilter.setValue(newMiniFilter);\n this.onMiniFilterInput();\n };\n SetFilter.prototype.getMiniFilter = function () {\n return this.valueModel ? this.valueModel.getMiniFilter() : null;\n };\n SetFilter.prototype.refresh = function () {\n if (!this.virtualList) {\n throw new Error('Virtual list has not been created.');\n }\n this.virtualList.refresh(!this.hardRefreshVirtualList);\n if (this.hardRefreshVirtualList) {\n this.hardRefreshVirtualList = false;\n }\n };\n SetFilter.prototype.getFilterKeys = function () {\n return this.valueModel ? this.valueModel.getKeys() : [];\n };\n SetFilter.prototype.getFilterValues = function () {\n return this.valueModel ? this.valueModel.getValues() : [];\n };\n SetFilter.prototype.getValues = function () {\n return this.getFilterKeys();\n };\n SetFilter.prototype.refreshVirtualList = function () {\n if (this.setFilterParams && this.setFilterParams.refreshValuesOnOpen) {\n this.refreshFilterValues();\n }\n else {\n this.refresh();\n }\n };\n SetFilter.prototype.translateForSetFilter = function (key) {\n var translate = this.localeService.getLocaleTextFunc();\n return translate(key, DEFAULT_LOCALE_TEXT[key]);\n };\n SetFilter.prototype.isSelectAllSelected = function () {\n if (!this.setFilterParams || !this.valueModel) {\n return false;\n }\n if (!this.setFilterParams.defaultToNothingSelected) {\n // everything selected by default\n if (this.valueModel.hasSelections() && this.valueModel.isNothingVisibleSelected()) {\n return false;\n }\n if (this.valueModel.isEverythingVisibleSelected()) {\n return true;\n }\n }\n else {\n // nothing selected by default\n if (this.valueModel.hasSelections() && this.valueModel.isEverythingVisibleSelected()) {\n return true;\n }\n if (this.valueModel.isNothingVisibleSelected()) {\n return false;\n }\n }\n // returning `undefined` means the checkbox status is indeterminate.\n return undefined;\n };\n SetFilter.prototype.areAllChildrenSelected = function (item) {\n var _this = this;\n var recursiveChildSelectionCheck = function (i) {\n if (i.children) {\n var someTrue_1 = false;\n var someFalse_1 = false;\n var mixed = i.children.some(function (child) {\n if (!child.filterPasses || !child.available) {\n return false;\n }\n var childSelected = recursiveChildSelectionCheck(child);\n if (childSelected === undefined) {\n return true;\n }\n if (childSelected) {\n someTrue_1 = true;\n }\n else {\n someFalse_1 = true;\n }\n return someTrue_1 && someFalse_1;\n });\n // returning `undefined` means the checkbox status is indeterminate.\n // if not mixed and some true, all must be true\n return mixed ? undefined : someTrue_1;\n }\n else {\n return _this.valueModel.isKeySelected(i.key);\n }\n };\n if (!this.setFilterParams.defaultToNothingSelected) {\n // everything selected by default\n return recursiveChildSelectionCheck(item);\n }\n else {\n // nothing selected by default\n return this.valueModel.hasSelections() && recursiveChildSelectionCheck(item);\n }\n };\n SetFilter.prototype.destroy = function () {\n if (this.virtualList != null) {\n this.virtualList.destroy();\n this.virtualList = null;\n }\n _super.prototype.destroy.call(this);\n };\n SetFilter.prototype.caseFormat = function (valueToFormat) {\n if (valueToFormat == null || typeof valueToFormat !== 'string') {\n return valueToFormat;\n }\n return this.caseSensitive ? valueToFormat : valueToFormat.toUpperCase();\n };\n SetFilter.prototype.resetExpansion = function () {\n var _a, _b;\n if (!((_a = this.setFilterParams) === null || _a === void 0 ? void 0 : _a.treeList)) {\n return;\n }\n var selectAllItem = (_b = this.valueModel) === null || _b === void 0 ? void 0 : _b.getSelectAllItem();\n if (this.isSetFilterModelTreeItem(selectAllItem)) {\n var recursiveCollapse_1 = function (i) {\n if (i.children) {\n i.children.forEach(function (childItem) { return recursiveCollapse_1(childItem); });\n i.expanded = false;\n }\n };\n recursiveCollapse_1(selectAllItem);\n this.valueModel.updateDisplayedValues('expansion');\n }\n };\n SetFilter.prototype.getModelAsString = function (model) {\n return this.filterModelFormatter.getModelAsString(model, this);\n };\n SetFilter.prototype.getPositionableElement = function () {\n return this.eSetFilterList;\n };\n __decorate$c([\n RefSelector('eMiniFilter')\n ], SetFilter.prototype, \"eMiniFilter\", void 0);\n __decorate$c([\n RefSelector('eFilterLoading')\n ], SetFilter.prototype, \"eFilterLoading\", void 0);\n __decorate$c([\n RefSelector('eSetFilterList')\n ], SetFilter.prototype, \"eSetFilterList\", void 0);\n __decorate$c([\n RefSelector('eFilterNoMatches')\n ], SetFilter.prototype, \"eNoMatches\", void 0);\n __decorate$c([\n Autowired('valueFormatterService')\n ], SetFilter.prototype, \"valueFormatterService\", void 0);\n __decorate$c([\n Autowired('columnModel')\n ], SetFilter.prototype, \"columnModel\", void 0);\n __decorate$c([\n Autowired('valueService')\n ], SetFilter.prototype, \"valueService\", void 0);\n return SetFilter;\n}(ProvidedFilter));\nvar ModelWrapper = /** @class */ (function () {\n function ModelWrapper(model) {\n this.model = model;\n }\n ModelWrapper.prototype.getRowCount = function () {\n return this.model.getDisplayedValueCount();\n };\n ModelWrapper.prototype.getRow = function (index) {\n return this.model.getDisplayedItem(index);\n };\n ModelWrapper.prototype.isRowSelected = function (index) {\n return this.model.isKeySelected(this.getRow(index));\n };\n ModelWrapper.prototype.areRowsEqual = function (oldRow, newRow) {\n return oldRow === newRow;\n };\n return ModelWrapper;\n}());\nvar ModelWrapperWithSelectAll = /** @class */ (function () {\n function ModelWrapperWithSelectAll(model, isSelectAllSelected) {\n this.model = model;\n this.isSelectAllSelected = isSelectAllSelected;\n }\n ModelWrapperWithSelectAll.prototype.getRowCount = function () {\n var showAddCurrentSelectionToFilter = this.model.showAddCurrentSelectionToFilter();\n var outboundItems = showAddCurrentSelectionToFilter ? 2 : 1;\n return this.model.getDisplayedValueCount() + outboundItems;\n };\n ModelWrapperWithSelectAll.prototype.getRow = function (index) {\n if (index === 0) {\n return this.model.getSelectAllItem();\n }\n var showAddCurrentSelectionToFilter = this.model.showAddCurrentSelectionToFilter();\n var outboundItems = showAddCurrentSelectionToFilter ? 2 : 1;\n if (index === 1 && showAddCurrentSelectionToFilter) {\n return this.model.getAddSelectionToFilterItem();\n }\n return this.model.getDisplayedItem(index - outboundItems);\n };\n ModelWrapperWithSelectAll.prototype.isRowSelected = function (index) {\n if (index === 0) {\n return this.isSelectAllSelected();\n }\n if (index === 1 && this.model.showAddCurrentSelectionToFilter()) {\n return this.model.isAddCurrentSelectionToFilterChecked();\n }\n return this.model.isKeySelected(this.getRow(index));\n };\n ModelWrapperWithSelectAll.prototype.areRowsEqual = function (oldRow, newRow) {\n return oldRow === newRow;\n };\n return ModelWrapperWithSelectAll;\n}());\n// isRowSelected is used by VirtualList to add aria tags for flat lists. We want to suppress this when using trees\nvar TreeModelWrapper = /** @class */ (function () {\n function TreeModelWrapper(model) {\n this.model = model;\n }\n TreeModelWrapper.prototype.getRowCount = function () {\n return this.model.getRowCount();\n };\n TreeModelWrapper.prototype.getRow = function (index) {\n return this.model.getRow(index);\n };\n TreeModelWrapper.prototype.areRowsEqual = function (oldRow, newRow) {\n if (oldRow == null && newRow == null) {\n return true;\n }\n return oldRow != null && newRow != null && oldRow.treeKey === newRow.treeKey && oldRow.depth === newRow.depth;\n };\n return TreeModelWrapper;\n}());\n\nvar __extends$g = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$b = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SetFloatingFilterComp = /** @class */ (function (_super) {\n __extends$g(SetFloatingFilterComp, _super);\n function SetFloatingFilterComp() {\n var _this = _super.call(this, /* html */ \"\\n
\\n \\n
\") || this;\n _this.availableValuesListenerAdded = false;\n _this.filterModelFormatter = new SetFilterModelFormatter();\n return _this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n SetFloatingFilterComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n SetFloatingFilterComp.prototype.init = function (params) {\n var _this = this;\n this.params = params;\n this.eFloatingFilterText\n .setDisabled(true)\n .addGuiEventListener('click', function () { return _this.params.showParentFilter(); });\n this.setParams(params);\n };\n SetFloatingFilterComp.prototype.setParams = function (params) {\n var displayName = this.columnModel.getDisplayNameForColumn(params.column, 'header', true);\n var translate = this.localeService.getLocaleTextFunc();\n this.eFloatingFilterText.setInputAriaLabel(displayName + \" \" + translate('ariaFilterInput', 'Filter Input'));\n };\n SetFloatingFilterComp.prototype.onParamsUpdated = function (params) {\n this.params = params;\n this.setParams(params);\n };\n SetFloatingFilterComp.prototype.onParentModelChanged = function (parentModel) {\n this.updateFloatingFilterText(parentModel);\n };\n SetFloatingFilterComp.prototype.parentSetFilterInstance = function (cb) {\n this.params.parentFilterInstance(function (filter) {\n if (!(filter instanceof SetFilter)) {\n throw new Error('AG Grid - SetFloatingFilter expects SetFilter as its parent');\n }\n cb(filter);\n });\n };\n SetFloatingFilterComp.prototype.addAvailableValuesListener = function () {\n var _this = this;\n this.parentSetFilterInstance(function (setFilter) {\n var setValueModel = setFilter.getValueModel();\n if (!setValueModel) {\n return;\n }\n // unlike other filters, what we show in the floating filter can be different, even\n // if another filter changes. this is due to how set filter restricts its values based\n // on selections in other filters, e.g. if you filter Language to English, then the set filter\n // on Country will only show English speaking countries. Thus the list of items to show\n // in the floating filter can change.\n _this.addManagedListener(setValueModel, SetValueModel.EVENT_AVAILABLE_VALUES_CHANGED, function () { return _this.updateFloatingFilterText(); });\n });\n this.availableValuesListenerAdded = true;\n };\n SetFloatingFilterComp.prototype.updateFloatingFilterText = function (parentModel) {\n var _this = this;\n if (!this.availableValuesListenerAdded) {\n this.addAvailableValuesListener();\n }\n this.parentSetFilterInstance(function (setFilter) {\n _this.eFloatingFilterText.setValue(_this.filterModelFormatter.getModelAsString(parentModel, setFilter));\n });\n };\n __decorate$b([\n RefSelector('eFloatingFilterText')\n ], SetFloatingFilterComp.prototype, \"eFloatingFilterText\", void 0);\n __decorate$b([\n Autowired('columnModel')\n ], SetFloatingFilterComp.prototype, \"columnModel\", void 0);\n return SetFloatingFilterComp;\n}(Component));\n\n// DO NOT UPDATE MANUALLY: Generated from script during build time\nvar VERSION$3 = '30.2.0';\n\nvar SetFilterModule = {\n version: VERSION$3,\n moduleName: ModuleNames.SetFilterModule,\n beans: [],\n userComponents: [\n { componentName: 'agSetColumnFilter', componentClass: SetFilter },\n { componentName: 'agSetColumnFloatingFilter', componentClass: SetFloatingFilterComp },\n ],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar __extends$f = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$a = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar StatusBarService = /** @class */ (function (_super) {\n __extends$f(StatusBarService, _super);\n // tslint:disable-next-line\n function StatusBarService() {\n var _this = _super.call(this) || this;\n _this.allComponents = {};\n return _this;\n }\n StatusBarService.prototype.registerStatusPanel = function (key, component) {\n this.allComponents[key] = component;\n };\n StatusBarService.prototype.getStatusPanel = function (key) {\n return this.allComponents[key];\n };\n StatusBarService = __decorate$a([\n Bean('statusBarService')\n ], StatusBarService);\n return StatusBarService;\n}(BeanStub));\n\nvar __extends$e = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$9 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar StatusBar = /** @class */ (function (_super) {\n __extends$e(StatusBar, _super);\n function StatusBar() {\n return _super.call(this, StatusBar.TEMPLATE) || this;\n }\n StatusBar.prototype.postConstruct = function () {\n var _a;\n var statusPanels = (_a = this.gridOptionsService.get('statusBar')) === null || _a === void 0 ? void 0 : _a.statusPanels;\n if (statusPanels) {\n var leftStatusPanelComponents = statusPanels\n .filter(function (componentConfig) { return componentConfig.align === 'left'; });\n this.createAndRenderComponents(leftStatusPanelComponents, this.eStatusBarLeft);\n var centerStatusPanelComponents = statusPanels\n .filter(function (componentConfig) { return componentConfig.align === 'center'; });\n this.createAndRenderComponents(centerStatusPanelComponents, this.eStatusBarCenter);\n var rightStatusPanelComponents = statusPanels\n .filter(function (componentConfig) { return (!componentConfig.align || componentConfig.align === 'right'); });\n this.createAndRenderComponents(rightStatusPanelComponents, this.eStatusBarRight);\n }\n else {\n this.setDisplayed(false);\n }\n };\n StatusBar.prototype.createAndRenderComponents = function (statusBarComponents, ePanelComponent) {\n var _this = this;\n var componentDetails = [];\n statusBarComponents.forEach(function (componentConfig) {\n var params = {};\n var compDetails = _this.userComponentFactory.getStatusPanelCompDetails(componentConfig, params);\n var promise = compDetails.newAgStackInstance();\n if (!promise) {\n return;\n }\n componentDetails.push({\n // default to the component name if no key supplied\n key: componentConfig.key || componentConfig.statusPanel,\n promise: promise\n });\n });\n AgPromise.all(componentDetails.map(function (details) { return details.promise; }))\n .then(function () {\n componentDetails.forEach(function (componentDetail) {\n componentDetail.promise.then(function (component) {\n var destroyFunc = function () {\n _this.getContext().destroyBean(component);\n };\n if (_this.isAlive()) {\n _this.statusBarService.registerStatusPanel(componentDetail.key, component);\n ePanelComponent.appendChild(component.getGui());\n _this.addDestroyFunc(destroyFunc);\n }\n else {\n destroyFunc();\n }\n });\n });\n });\n };\n StatusBar.TEMPLATE = \"
\\n
\\n
\\n
\\n
\";\n __decorate$9([\n Autowired('userComponentFactory')\n ], StatusBar.prototype, \"userComponentFactory\", void 0);\n __decorate$9([\n Autowired('statusBarService')\n ], StatusBar.prototype, \"statusBarService\", void 0);\n __decorate$9([\n RefSelector('eStatusBarLeft')\n ], StatusBar.prototype, \"eStatusBarLeft\", void 0);\n __decorate$9([\n RefSelector('eStatusBarCenter')\n ], StatusBar.prototype, \"eStatusBarCenter\", void 0);\n __decorate$9([\n RefSelector('eStatusBarRight')\n ], StatusBar.prototype, \"eStatusBarRight\", void 0);\n __decorate$9([\n PostConstruct\n ], StatusBar.prototype, \"postConstruct\", null);\n return StatusBar;\n}(Component));\n\nvar __extends$d = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$8 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar NameValueComp = /** @class */ (function (_super) {\n __extends$d(NameValueComp, _super);\n function NameValueComp() {\n return _super.call(this, NameValueComp.TEMPLATE) || this;\n }\n NameValueComp.prototype.setLabel = function (key, defaultValue) {\n // we want to hide until the first value comes in\n this.setDisplayed(false);\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n this.eLabel.innerHTML = localeTextFunc(key, defaultValue);\n };\n NameValueComp.prototype.setValue = function (value) {\n this.eValue.innerHTML = value;\n };\n NameValueComp.TEMPLATE = \"
\\n : \\n \\n
\";\n __decorate$8([\n RefSelector('eLabel')\n ], NameValueComp.prototype, \"eLabel\", void 0);\n __decorate$8([\n RefSelector('eValue')\n ], NameValueComp.prototype, \"eValue\", void 0);\n return NameValueComp;\n}(Component));\n\nvar __extends$c = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$7 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TotalAndFilteredRowsComp = /** @class */ (function (_super) {\n __extends$c(TotalAndFilteredRowsComp, _super);\n function TotalAndFilteredRowsComp() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TotalAndFilteredRowsComp.prototype.postConstruct = function () {\n // this component is only really useful with client side row model\n if (this.gridApi.getModel().getType() !== 'clientSide') {\n console.warn(\"AG Grid: agTotalAndFilteredRowCountComponent should only be used with the client side row model.\");\n return;\n }\n this.setLabel('totalAndFilteredRows', 'Rows');\n this.addCssClass('ag-status-panel');\n this.addCssClass('ag-status-panel-total-and-filtered-row-count');\n this.setDisplayed(true);\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, this.onDataChanged.bind(this));\n this.onDataChanged();\n };\n TotalAndFilteredRowsComp.prototype.onDataChanged = function () {\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n var thousandSeparator = localeTextFunc('thousandSeparator', ',');\n var decimalSeparator = localeTextFunc('decimalSeparator', '.');\n var rowCount = _.formatNumberCommas(this.getFilteredRowCountValue(), thousandSeparator, decimalSeparator);\n var totalRowCount = _.formatNumberCommas(this.getTotalRowCount(), thousandSeparator, decimalSeparator);\n if (rowCount === totalRowCount) {\n this.setValue(rowCount);\n }\n else {\n var localeTextFunc_1 = this.localeService.getLocaleTextFunc();\n this.setValue(rowCount + \" \" + localeTextFunc_1('of', 'of') + \" \" + totalRowCount);\n }\n };\n TotalAndFilteredRowsComp.prototype.getFilteredRowCountValue = function () {\n var filteredRowCount = 0;\n this.gridApi.forEachNodeAfterFilter(function (node) {\n if (!node.group) {\n filteredRowCount++;\n }\n });\n return filteredRowCount;\n };\n TotalAndFilteredRowsComp.prototype.getTotalRowCount = function () {\n var totalRowCount = 0;\n this.gridApi.forEachNode(function (node) {\n if (!node.group) {\n totalRowCount++;\n }\n });\n return totalRowCount;\n };\n TotalAndFilteredRowsComp.prototype.init = function () { };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n TotalAndFilteredRowsComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n __decorate$7([\n Autowired('gridApi')\n ], TotalAndFilteredRowsComp.prototype, \"gridApi\", void 0);\n __decorate$7([\n PostConstruct\n ], TotalAndFilteredRowsComp.prototype, \"postConstruct\", null);\n return TotalAndFilteredRowsComp;\n}(NameValueComp));\n\nvar __extends$b = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$6 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar FilteredRowsComp = /** @class */ (function (_super) {\n __extends$b(FilteredRowsComp, _super);\n function FilteredRowsComp() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n FilteredRowsComp.prototype.postConstruct = function () {\n this.setLabel('filteredRows', 'Filtered');\n // this component is only really useful with client side row model\n if (this.gridApi.getModel().getType() !== 'clientSide') {\n console.warn(\"AG Grid: agFilteredRowCountComponent should only be used with the client side row model.\");\n return;\n }\n this.addCssClass('ag-status-panel');\n this.addCssClass('ag-status-panel-filtered-row-count');\n this.setDisplayed(true);\n var listener = this.onDataChanged.bind(this);\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, listener);\n listener();\n };\n FilteredRowsComp.prototype.onDataChanged = function () {\n var totalRowCountValue = this.getTotalRowCountValue();\n var filteredRowCountValue = this.getFilteredRowCountValue();\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n var thousandSeparator = localeTextFunc('thousandSeparator', ',');\n var decimalSeparator = localeTextFunc('decimalSeparator', '.');\n this.setValue(_.formatNumberCommas(filteredRowCountValue, thousandSeparator, decimalSeparator));\n this.setDisplayed(totalRowCountValue !== filteredRowCountValue);\n };\n FilteredRowsComp.prototype.getTotalRowCountValue = function () {\n var totalRowCount = 0;\n this.gridApi.forEachNode(function (node) { return totalRowCount += 1; });\n return totalRowCount;\n };\n FilteredRowsComp.prototype.getFilteredRowCountValue = function () {\n var filteredRowCount = 0;\n this.gridApi.forEachNodeAfterFilter(function (node) {\n if (!node.group) {\n filteredRowCount += 1;\n }\n });\n return filteredRowCount;\n };\n FilteredRowsComp.prototype.init = function () { };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n FilteredRowsComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n __decorate$6([\n Autowired('gridApi')\n ], FilteredRowsComp.prototype, \"gridApi\", void 0);\n __decorate$6([\n PostConstruct\n ], FilteredRowsComp.prototype, \"postConstruct\", null);\n return FilteredRowsComp;\n}(NameValueComp));\n\nvar __extends$a = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$5 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar TotalRowsComp = /** @class */ (function (_super) {\n __extends$a(TotalRowsComp, _super);\n function TotalRowsComp() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n TotalRowsComp.prototype.postConstruct = function () {\n this.setLabel('totalRows', 'Total Rows');\n // this component is only really useful with client side row model\n if (this.gridApi.getModel().getType() !== 'clientSide') {\n console.warn(\"AG Grid: agTotalRowCountComponent should only be used with the client side row model.\");\n return;\n }\n this.addCssClass('ag-status-panel');\n this.addCssClass('ag-status-panel-total-row-count');\n this.setDisplayed(true);\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, this.onDataChanged.bind(this));\n this.onDataChanged();\n };\n TotalRowsComp.prototype.onDataChanged = function () {\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n var thousandSeparator = localeTextFunc('thousandSeparator', ',');\n var decimalSeparator = localeTextFunc('decimalSeparator', '.');\n this.setValue(_.formatNumberCommas(this.getRowCountValue(), thousandSeparator, decimalSeparator));\n };\n TotalRowsComp.prototype.getRowCountValue = function () {\n var totalRowCount = 0;\n this.gridApi.forEachLeafNode(function (node) { return totalRowCount += 1; });\n return totalRowCount;\n };\n TotalRowsComp.prototype.init = function () {\n };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n TotalRowsComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n __decorate$5([\n Autowired('gridApi')\n ], TotalRowsComp.prototype, \"gridApi\", void 0);\n __decorate$5([\n PostConstruct\n ], TotalRowsComp.prototype, \"postConstruct\", null);\n return TotalRowsComp;\n}(NameValueComp));\n\nvar __extends$9 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$4 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SelectedRowsComp = /** @class */ (function (_super) {\n __extends$9(SelectedRowsComp, _super);\n function SelectedRowsComp() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SelectedRowsComp.prototype.postConstruct = function () {\n if (!this.isValidRowModel()) {\n console.warn(\"AG Grid: agSelectedRowCountComponent should only be used with the client and server side row model.\");\n return;\n }\n this.setLabel('selectedRows', 'Selected');\n this.addCssClass('ag-status-panel');\n this.addCssClass('ag-status-panel-selected-row-count');\n this.onRowSelectionChanged();\n var eventListener = this.onRowSelectionChanged.bind(this);\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, eventListener);\n this.addManagedListener(this.eventService, Events.EVENT_SELECTION_CHANGED, eventListener);\n };\n SelectedRowsComp.prototype.isValidRowModel = function () {\n // this component is only really useful with client or server side rowmodels\n var rowModelType = this.gridApi.getModel().getType();\n return rowModelType === 'clientSide' || rowModelType === 'serverSide';\n };\n SelectedRowsComp.prototype.onRowSelectionChanged = function () {\n var selectedRowCount = this.selectionService.getSelectionCount();\n if (selectedRowCount < 0) {\n this.setValue('?');\n this.setDisplayed(true);\n return;\n }\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n var thousandSeparator = localeTextFunc('thousandSeparator', ',');\n var decimalSeparator = localeTextFunc('decimalSeparator', '.');\n this.setValue(_.formatNumberCommas(selectedRowCount, thousandSeparator, decimalSeparator));\n this.setDisplayed(selectedRowCount > 0);\n };\n SelectedRowsComp.prototype.init = function () {\n };\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n SelectedRowsComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n __decorate$4([\n Autowired('gridApi')\n ], SelectedRowsComp.prototype, \"gridApi\", void 0);\n __decorate$4([\n Autowired('selectionService')\n ], SelectedRowsComp.prototype, \"selectionService\", void 0);\n __decorate$4([\n PostConstruct\n ], SelectedRowsComp.prototype, \"postConstruct\", null);\n return SelectedRowsComp;\n}(NameValueComp));\n\nvar __extends$8 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$3 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar AggregationComp = /** @class */ (function (_super) {\n __extends$8(AggregationComp, _super);\n function AggregationComp() {\n return _super.call(this, AggregationComp.TEMPLATE) || this;\n }\n // this is a user component, and IComponent has \"public destroy()\" as part of the interface.\n // so we need to override destroy() just to make the method public.\n AggregationComp.prototype.destroy = function () {\n _super.prototype.destroy.call(this);\n };\n AggregationComp.prototype.postConstruct = function () {\n if (!this.isValidRowModel()) {\n console.warn(\"AG Grid: agAggregationComponent should only be used with the client and server side row model.\");\n return;\n }\n this.avgAggregationComp.setLabel('avg', 'Average');\n this.countAggregationComp.setLabel('count', 'Count');\n this.minAggregationComp.setLabel('min', 'Min');\n this.maxAggregationComp.setLabel('max', 'Max');\n this.sumAggregationComp.setLabel('sum', 'Sum');\n this.addManagedListener(this.eventService, Events.EVENT_RANGE_SELECTION_CHANGED, this.onRangeSelectionChanged.bind(this));\n this.addManagedListener(this.eventService, Events.EVENT_MODEL_UPDATED, this.onRangeSelectionChanged.bind(this));\n };\n AggregationComp.prototype.isValidRowModel = function () {\n // this component is only really useful with client or server side rowmodels\n var rowModelType = this.gridApi.getModel().getType();\n return rowModelType === 'clientSide' || rowModelType === 'serverSide';\n };\n AggregationComp.prototype.init = function () {\n };\n AggregationComp.prototype.setAggregationComponentValue = function (aggFuncName, value, visible) {\n var statusBarValueComponent = this.getAggregationValueComponent(aggFuncName);\n if (_.exists(statusBarValueComponent) && statusBarValueComponent) {\n var localeTextFunc = this.localeService.getLocaleTextFunc();\n var thousandSeparator = localeTextFunc('thousandSeparator', ',');\n var decimalSeparator = localeTextFunc('decimalSeparator', '.');\n statusBarValueComponent.setValue(_.formatNumberTwoDecimalPlacesAndCommas(value, thousandSeparator, decimalSeparator));\n statusBarValueComponent.setDisplayed(visible);\n }\n };\n AggregationComp.prototype.getAggregationValueComponent = function (aggFuncName) {\n // converts user supplied agg name to our reference - eg: sum => sumAggregationComp\n var refComponentName = aggFuncName + \"AggregationComp\";\n // if the user has specified the agAggregationPanelComp but no aggFuncs we show the all\n // if the user has specified the agAggregationPanelComp and aggFuncs, then we only show the aggFuncs listed\n var statusBarValueComponent = null;\n var statusBar = this.gridOptionsService.get('statusBar');\n var aggregationPanelConfig = _.exists(statusBar) && statusBar ? statusBar.statusPanels.find(function (panel) { return panel.statusPanel === 'agAggregationComponent'; }) : null;\n if (_.exists(aggregationPanelConfig) && aggregationPanelConfig) {\n // a little defensive here - if no statusPanelParams show it, if componentParams we also expect aggFuncs\n if (!_.exists(aggregationPanelConfig.statusPanelParams) ||\n (_.exists(aggregationPanelConfig.statusPanelParams) &&\n _.exists(aggregationPanelConfig.statusPanelParams.aggFuncs) &&\n _.exists(aggregationPanelConfig.statusPanelParams.aggFuncs.find(function (func) { return func === aggFuncName; })))) {\n statusBarValueComponent = this[refComponentName];\n }\n }\n else {\n // components not specified - assume we can show this component\n statusBarValueComponent = this[refComponentName];\n }\n // either we can't find it (which would indicate a typo or similar user side), or the user has deliberately\n // not listed the component in aggFuncs\n return statusBarValueComponent;\n };\n AggregationComp.prototype.onRangeSelectionChanged = function () {\n var _this = this;\n var cellRanges = this.rangeService ? this.rangeService.getCellRanges() : undefined;\n var sum = 0;\n var count = 0;\n var numberCount = 0;\n var min = null;\n var max = null;\n var cellsSoFar = {};\n if (cellRanges && !_.missingOrEmpty(cellRanges)) {\n cellRanges.forEach(function (cellRange) {\n var currentRow = _this.rangeService.getRangeStartRow(cellRange);\n var lastRow = _this.rangeService.getRangeEndRow(cellRange);\n while (true) {\n var finishedAllRows = _.missing(currentRow) || !currentRow || _this.rowPositionUtils.before(lastRow, currentRow);\n if (finishedAllRows || !currentRow || !cellRange.columns) {\n break;\n }\n cellRange.columns.forEach(function (col) {\n if (currentRow === null) {\n return;\n }\n // we only want to include each cell once, in case a cell is in multiple ranges\n var cellId = _this.cellPositionUtils.createId({\n rowPinned: currentRow.rowPinned,\n column: col,\n rowIndex: currentRow.rowIndex\n });\n if (cellsSoFar[cellId]) {\n return;\n }\n cellsSoFar[cellId] = true;\n var rowNode = _this.rowRenderer.getRowNode(currentRow);\n if (_.missing(rowNode)) {\n return;\n }\n var value = _this.valueService.getValue(col, rowNode);\n // if empty cell, skip it, doesn't impact count or anything\n if (_.missing(value) || value === '') {\n return;\n }\n count++;\n // see if value is wrapped, can happen when doing count() or avg() functions\n if (typeof value === 'object' && 'value' in value) {\n value = value.value;\n // ensure that the new value wouldn't have been skipped by the previous check\n if (value === '') {\n return;\n }\n }\n if (typeof value === 'string') {\n value = Number(value);\n }\n if (typeof value === 'number' && !isNaN(value)) {\n sum += value;\n if (max === null || value > max) {\n max = value;\n }\n if (min === null || value < min) {\n min = value;\n }\n numberCount++;\n }\n });\n currentRow = _this.cellNavigationService.getRowBelow(currentRow);\n }\n });\n }\n var gotResult = count > 1;\n var gotNumberResult = numberCount > 1;\n // we show count even if no numbers\n this.setAggregationComponentValue('count', count, gotResult);\n // show if numbers found\n this.setAggregationComponentValue('sum', sum, gotNumberResult);\n this.setAggregationComponentValue('min', min, gotNumberResult);\n this.setAggregationComponentValue('max', max, gotNumberResult);\n this.setAggregationComponentValue('avg', (sum / numberCount), gotNumberResult);\n };\n AggregationComp.TEMPLATE = \"
\\n \\n \\n \\n \\n \\n
\";\n __decorate$3([\n Optional('rangeService')\n ], AggregationComp.prototype, \"rangeService\", void 0);\n __decorate$3([\n Autowired('valueService')\n ], AggregationComp.prototype, \"valueService\", void 0);\n __decorate$3([\n Autowired('cellNavigationService')\n ], AggregationComp.prototype, \"cellNavigationService\", void 0);\n __decorate$3([\n Autowired('rowRenderer')\n ], AggregationComp.prototype, \"rowRenderer\", void 0);\n __decorate$3([\n Autowired('gridApi')\n ], AggregationComp.prototype, \"gridApi\", void 0);\n __decorate$3([\n Autowired('cellPositionUtils')\n ], AggregationComp.prototype, \"cellPositionUtils\", void 0);\n __decorate$3([\n Autowired('rowPositionUtils')\n ], AggregationComp.prototype, \"rowPositionUtils\", void 0);\n __decorate$3([\n RefSelector('sumAggregationComp')\n ], AggregationComp.prototype, \"sumAggregationComp\", void 0);\n __decorate$3([\n RefSelector('countAggregationComp')\n ], AggregationComp.prototype, \"countAggregationComp\", void 0);\n __decorate$3([\n RefSelector('minAggregationComp')\n ], AggregationComp.prototype, \"minAggregationComp\", void 0);\n __decorate$3([\n RefSelector('maxAggregationComp')\n ], AggregationComp.prototype, \"maxAggregationComp\", void 0);\n __decorate$3([\n RefSelector('avgAggregationComp')\n ], AggregationComp.prototype, \"avgAggregationComp\", void 0);\n __decorate$3([\n PostConstruct\n ], AggregationComp.prototype, \"postConstruct\", null);\n return AggregationComp;\n}(Component));\n\n// DO NOT UPDATE MANUALLY: Generated from script during build time\nvar VERSION$2 = '30.2.0';\n\nvar StatusBarModule = {\n version: VERSION$2,\n moduleName: ModuleNames.StatusBarModule,\n beans: [StatusBarService],\n agStackComponents: [\n { componentName: 'AgStatusBar', componentClass: StatusBar },\n { componentName: 'AgNameValue', componentClass: NameValueComp },\n ],\n userComponents: [\n { componentName: 'agAggregationComponent', componentClass: AggregationComp },\n { componentName: 'agSelectedRowCountComponent', componentClass: SelectedRowsComp },\n { componentName: 'agTotalRowCountComponent', componentClass: TotalRowsComp },\n { componentName: 'agFilteredRowCountComponent', componentClass: FilteredRowsComp },\n { componentName: 'agTotalAndFilteredRowCountComponent', componentClass: TotalAndFilteredRowsComp }\n ],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\n// DO NOT UPDATE MANUALLY: Generated from script during build time\nvar VERSION$1 = '30.2.0';\n\nvar __extends$7 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate$2 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar DEFAULT_VIEWPORT_ROW_MODEL_PAGE_SIZE = 5;\nvar DEFAULT_VIEWPORT_ROW_MODEL_BUFFER_SIZE = 5;\nvar ViewportRowModel = /** @class */ (function (_super) {\n __extends$7(ViewportRowModel, _super);\n function ViewportRowModel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n // rowRenderer tells us these\n _this.firstRow = -1;\n _this.lastRow = -1;\n // datasource tells us this\n _this.rowCount = -1;\n _this.rowNodesByIndex = {};\n return _this;\n }\n // we don't implement as lazy row heights is not supported in this row model\n ViewportRowModel.prototype.ensureRowHeightsValid = function (startPixel, endPixel, startLimitIndex, endLimitIndex) { return false; };\n ViewportRowModel.prototype.init = function () {\n this.rowHeight = this.gridOptionsService.getRowHeightAsNumber();\n this.addManagedListener(this.eventService, Events.EVENT_VIEWPORT_CHANGED, this.onViewportChanged.bind(this));\n };\n ViewportRowModel.prototype.start = function () {\n if (this.gridOptionsService.get('viewportDatasource')) {\n this.setViewportDatasource(this.gridOptionsService.get('viewportDatasource'));\n }\n };\n ViewportRowModel.prototype.isLastRowIndexKnown = function () {\n return true;\n };\n ViewportRowModel.prototype.destroyDatasource = function () {\n if (!this.viewportDatasource) {\n return;\n }\n if (this.viewportDatasource.destroy) {\n this.viewportDatasource.destroy();\n }\n this.rowRenderer.datasourceChanged();\n this.firstRow = -1;\n this.lastRow = -1;\n };\n ViewportRowModel.prototype.getViewportRowModelPageSize = function () {\n return _.oneOrGreater(this.gridOptionsService.getNum('viewportRowModelPageSize'), DEFAULT_VIEWPORT_ROW_MODEL_PAGE_SIZE);\n };\n ViewportRowModel.prototype.getViewportRowModelBufferSize = function () {\n return _.zeroOrGreater(this.gridOptionsService.getNum('viewportRowModelBufferSize'), DEFAULT_VIEWPORT_ROW_MODEL_BUFFER_SIZE);\n };\n ViewportRowModel.prototype.calculateFirstRow = function (firstRenderedRow) {\n var bufferSize = this.getViewportRowModelBufferSize();\n var pageSize = this.getViewportRowModelPageSize();\n var afterBuffer = firstRenderedRow - bufferSize;\n if (afterBuffer < 0) {\n return 0;\n }\n return Math.floor(afterBuffer / pageSize) * pageSize;\n };\n ViewportRowModel.prototype.calculateLastRow = function (lastRenderedRow) {\n if (lastRenderedRow === -1) {\n return lastRenderedRow;\n }\n var bufferSize = this.getViewportRowModelBufferSize();\n var pageSize = this.getViewportRowModelPageSize();\n var afterBuffer = lastRenderedRow + bufferSize;\n var result = Math.ceil(afterBuffer / pageSize) * pageSize;\n var lastRowIndex = this.rowCount - 1;\n return Math.min(result, lastRowIndex);\n };\n ViewportRowModel.prototype.onViewportChanged = function (event) {\n var newFirst = this.calculateFirstRow(event.firstRow);\n var newLast = this.calculateLastRow(event.lastRow);\n if (this.firstRow !== newFirst || this.lastRow !== newLast) {\n this.firstRow = newFirst;\n this.lastRow = newLast;\n this.purgeRowsNotInViewport();\n if (this.viewportDatasource) {\n this.viewportDatasource.setViewportRange(this.firstRow, this.lastRow);\n }\n }\n };\n ViewportRowModel.prototype.purgeRowsNotInViewport = function () {\n var _this = this;\n Object.keys(this.rowNodesByIndex).forEach(function (indexStr) {\n var index = parseInt(indexStr, 10);\n if (index < _this.firstRow || index > _this.lastRow) {\n if (_this.isRowFocused(index)) {\n return;\n }\n delete _this.rowNodesByIndex[index];\n }\n });\n };\n ViewportRowModel.prototype.isRowFocused = function (rowIndex) {\n var focusedCell = this.focusService.getFocusCellToUseAfterRefresh();\n if (!focusedCell) {\n return false;\n }\n if (focusedCell.rowPinned != null) {\n return false;\n }\n var hasFocus = focusedCell.rowIndex === rowIndex;\n return hasFocus;\n };\n ViewportRowModel.prototype.setViewportDatasource = function (viewportDatasource) {\n this.destroyDatasource();\n this.viewportDatasource = viewportDatasource;\n this.rowCount = -1;\n if (!viewportDatasource.init) {\n console.warn('AG Grid: viewport is missing init method.');\n }\n else {\n viewportDatasource.init({\n setRowCount: this.setRowCount.bind(this),\n setRowData: this.setRowData.bind(this),\n getRow: this.getRow.bind(this)\n });\n }\n };\n ViewportRowModel.prototype.getType = function () {\n return 'viewport';\n };\n ViewportRowModel.prototype.getRow = function (rowIndex) {\n if (!this.rowNodesByIndex[rowIndex]) {\n this.rowNodesByIndex[rowIndex] = this.createBlankRowNode(rowIndex);\n }\n return this.rowNodesByIndex[rowIndex];\n };\n ViewportRowModel.prototype.getRowNode = function (id) {\n var result;\n this.forEachNode(function (rowNode) {\n if (rowNode.id === id) {\n result = rowNode;\n }\n });\n return result;\n };\n ViewportRowModel.prototype.getRowCount = function () {\n return this.rowCount === -1 ? 0 : this.rowCount;\n };\n ViewportRowModel.prototype.getRowIndexAtPixel = function (pixel) {\n if (this.rowHeight !== 0) { // avoid divide by zero error\n return Math.floor(pixel / this.rowHeight);\n }\n return 0;\n };\n ViewportRowModel.prototype.getRowBounds = function (index) {\n return {\n rowHeight: this.rowHeight,\n rowTop: this.rowHeight * index\n };\n };\n ViewportRowModel.prototype.getTopLevelRowCount = function () {\n return this.getRowCount();\n };\n ViewportRowModel.prototype.getTopLevelRowDisplayedIndex = function (topLevelIndex) {\n return topLevelIndex;\n };\n ViewportRowModel.prototype.isEmpty = function () {\n return this.rowCount > 0;\n };\n ViewportRowModel.prototype.isRowsToRender = function () {\n return this.rowCount > 0;\n };\n ViewportRowModel.prototype.getNodesInRangeForSelection = function (firstInRange, lastInRange) {\n var firstIndex = _.missing(firstInRange) ? 0 : firstInRange.rowIndex;\n var lastIndex = lastInRange.rowIndex;\n var firstNodeOutOfRange = firstIndex < this.firstRow || firstIndex > this.lastRow;\n var lastNodeOutOfRange = lastIndex < this.firstRow || lastIndex > this.lastRow;\n if (firstNodeOutOfRange || lastNodeOutOfRange) {\n return [];\n }\n var result = [];\n var startIndex = firstIndex <= lastIndex ? firstIndex : lastIndex;\n var endIndex = firstIndex <= lastIndex ? lastIndex : firstIndex;\n for (var i = startIndex; i <= endIndex; i++) {\n result.push(this.rowNodesByIndex[i]);\n }\n return result;\n };\n ViewportRowModel.prototype.forEachNode = function (callback) {\n var _this = this;\n var callbackCount = 0;\n Object.keys(this.rowNodesByIndex).forEach(function (indexStr) {\n var index = parseInt(indexStr, 10);\n var rowNode = _this.rowNodesByIndex[index];\n callback(rowNode, callbackCount);\n callbackCount++;\n });\n };\n ViewportRowModel.prototype.setRowData = function (rowData) {\n var _this = this;\n _.iterateObject(rowData, function (indexStr, dataItem) {\n var index = parseInt(indexStr, 10);\n // we should never keep rows that we didn't specifically ask for, this\n // guarantees the contract we have with the server.\n if (index >= _this.firstRow && index <= _this.lastRow) {\n var rowNode = _this.rowNodesByIndex[index];\n // the abnormal case is we requested a row even though the grid didn't need it\n // as a result of the paging and buffer (ie the row is off screen), in which\n // case we need to create a new node now\n if (_.missing(rowNode)) {\n rowNode = _this.createBlankRowNode(index);\n _this.rowNodesByIndex[index] = rowNode;\n }\n // now we deffo have a row node, so set in the details\n // if the grid already asked for this row (the normal case), then we would\n // of put a placeholder node in place.\n rowNode.setDataAndId(dataItem, index.toString());\n }\n });\n };\n ViewportRowModel.prototype.createBlankRowNode = function (rowIndex) {\n var rowNode = new RowNode(this.beans);\n rowNode.setRowHeight(this.rowHeight);\n rowNode.setRowTop(this.rowHeight * rowIndex);\n rowNode.setRowIndex(rowIndex);\n return rowNode;\n };\n ViewportRowModel.prototype.setRowCount = function (rowCount, keepRenderedRows) {\n if (keepRenderedRows === void 0) { keepRenderedRows = false; }\n if (rowCount === this.rowCount) {\n return;\n }\n this.rowCount = rowCount;\n var event = {\n type: Events.EVENT_MODEL_UPDATED,\n newData: false,\n newPage: false,\n keepRenderedRows: keepRenderedRows,\n animate: false\n };\n this.eventService.dispatchEvent(event);\n };\n ViewportRowModel.prototype.isRowPresent = function (rowNode) {\n var foundRowNode = this.getRowNode(rowNode.id);\n return !!foundRowNode;\n };\n __decorate$2([\n Autowired('rowRenderer')\n ], ViewportRowModel.prototype, \"rowRenderer\", void 0);\n __decorate$2([\n Autowired('focusService')\n ], ViewportRowModel.prototype, \"focusService\", void 0);\n __decorate$2([\n Autowired('beans')\n ], ViewportRowModel.prototype, \"beans\", void 0);\n __decorate$2([\n PostConstruct\n ], ViewportRowModel.prototype, \"init\", null);\n __decorate$2([\n PreDestroy\n ], ViewportRowModel.prototype, \"destroyDatasource\", null);\n ViewportRowModel = __decorate$2([\n Bean('rowModel')\n ], ViewportRowModel);\n return ViewportRowModel;\n}(BeanStub));\n\nvar ViewportRowModelModule = {\n version: VERSION$1,\n moduleName: ModuleNames.ViewportRowModelModule,\n rowModel: 'viewport',\n beans: [ViewportRowModel],\n dependantModules: [\n EnterpriseCoreModule\n ]\n};\n\nvar defaultTooltipCss = \"\\n.ag-sparkline-tooltip-wrapper {\\n position: absolute;\\n user-select: none;\\n pointer-events: none;\\n}\\n\\n.ag-sparkline-tooltip {\\n position: relative;\\n font: 12px arial,sans-serif;\\n border-radius: 2px;\\n box-shadow: 0 1px 3px rgb(0 0 0 / 20%), 0 1px 1px rgb(0 0 0 / 14%);\\n line-height: 1.7em;\\n overflow: hidden;\\n white-space: nowrap;\\n z-index: 99999;\\n background-color: rgb(255, 255, 255);\\n color: rgba(0,0,0, 0.67);\\n}\\n\\n.ag-sparkline-tooltip-content {\\n padding: 0 7px;\\n opacity: 1;\\n}\\n\\n.ag-sparkline-tooltip-title {\\n padding-left: 7px;\\n opacity: 1;\\n}\\n\\n.ag-sparkline-tooltip-wrapper-hidden {\\n top: -10000px !important;\\n}\\n\\n.ag-sparkline-wrapper {\\n box-sizing: border-box;\\n overflow: hidden;\\n}\\n\";\n\nvar __values = (undefined && undefined.__values) || function(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n};\nvar extent$3 = extent$4, isNumber$3 = isNumber$4, isString = isString$2, isStringObject = isStringObject$1, isDate = isDate$1, createId = createId$1, Padding = Padding$1;\nvar LinearScale = LinearScale$1, BandScale$4 = BandScale$5, TimeScale = TimeScale$1;\n/**\n * Constants to declare the expected nominal zIndex for nodes in a sparkline rendering.\n */\nvar ZINDICIES;\n(function (ZINDICIES) {\n ZINDICIES[ZINDICIES[\"SERIES_FILL_ZINDEX\"] = 50] = \"SERIES_FILL_ZINDEX\";\n ZINDICIES[ZINDICIES[\"AXIS_LINE_ZINDEX\"] = 500] = \"AXIS_LINE_ZINDEX\";\n ZINDICIES[ZINDICIES[\"SERIES_STROKE_ZINDEX\"] = 1000] = \"SERIES_STROKE_ZINDEX\";\n ZINDICIES[ZINDICIES[\"SERIES_LABEL_ZINDEX\"] = 1500] = \"SERIES_LABEL_ZINDEX\";\n ZINDICIES[ZINDICIES[\"CROSSHAIR_ZINDEX\"] = 2000] = \"CROSSHAIR_ZINDEX\";\n ZINDICIES[ZINDICIES[\"SERIES_MARKERS_ZINDEX\"] = 2500] = \"SERIES_MARKERS_ZINDEX\";\n})(ZINDICIES || (ZINDICIES = {}));\nvar SparklineAxis = /** @class */ (function () {\n function SparklineAxis() {\n this.type = 'category';\n this.stroke = 'rgb(204, 214, 235)';\n this.strokeWidth = 1;\n }\n return SparklineAxis;\n}());\nvar Sparkline = /** @class */ (function () {\n function Sparkline() {\n this.id = createId(this);\n this.seriesRect = {\n x: 0,\n y: 0,\n width: 0,\n height: 0,\n };\n this._context = undefined;\n this._container = undefined;\n this._data = undefined;\n this.padding = new Padding(3);\n this.xKey = 'x';\n this.yKey = 'y';\n this.dataType = undefined;\n this.xData = [];\n this.yData = [];\n // Minimum y value in provided data.\n this.min = undefined;\n // Maximum y value in provided data.\n this.max = undefined;\n this.yScale = new LinearScale();\n this.axis = new SparklineAxis();\n this.highlightStyle = {\n size: 6,\n fill: 'yellow',\n stroke: 'silver',\n strokeWidth: 1,\n };\n this._width = 100;\n this._height = 100;\n this.smallestInterval = undefined;\n this.layoutId = 0;\n this.defaultDateFormatter = new Intl.DateTimeFormat('en-US', {\n year: 'numeric',\n month: '2-digit',\n day: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n second: '2-digit',\n hour12: false,\n });\n this._onMouseMove = this.onMouseMove.bind(this);\n this._onMouseOut = this.onMouseOut.bind(this);\n var root = new Group();\n this.rootGroup = root;\n var element = document.createElement('div');\n element.setAttribute('class', 'ag-sparkline-wrapper');\n var scene = new Scene({ document: document });\n this.scene = scene;\n this.canvasElement = scene.canvas.element;\n scene.root = root;\n scene.container = element;\n scene.resize(this.width, this.height);\n this.seriesRect.width = this.width;\n this.seriesRect.height = this.height;\n // one style element for tooltip styles per document\n if (Sparkline.tooltipDocuments.indexOf(document) === -1) {\n var styleElement = document.createElement('style');\n styleElement.innerHTML = defaultTooltipCss;\n document.head.insertBefore(styleElement, document.head.querySelector('style'));\n Sparkline.tooltipDocuments.push(document);\n }\n this.setupDomEventListeners(this.scene.canvas.element);\n }\n Object.defineProperty(Sparkline.prototype, \"context\", {\n get: function () {\n return this._context;\n },\n set: function (value) {\n if (this._context !== value) {\n this._context = value;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Sparkline.prototype, \"container\", {\n get: function () {\n return this._container;\n },\n set: function (value) {\n if (this._container !== value) {\n var parentNode = this.canvasElement.parentNode;\n if (parentNode != null) {\n parentNode.removeChild(this.canvasElement);\n }\n if (value) {\n value.appendChild(this.canvasElement);\n }\n this._container = value;\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Sparkline.prototype, \"data\", {\n get: function () {\n return this._data;\n },\n set: function (value) {\n if (this._data !== value) {\n this._data = value;\n this.processData();\n if (this.mouseMoveEvent && this.highlightedDatum) {\n this.updateHitPoint(this.mouseMoveEvent);\n }\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Sparkline.prototype, \"width\", {\n get: function () {\n return this._width;\n },\n set: function (value) {\n if (this._width !== value) {\n this._width = value;\n this.scene.resize(value, this.height);\n this.scheduleLayout();\n }\n },\n enumerable: false,\n configurable: true\n });\n Object.defineProperty(Sparkline.prototype, \"height\", {\n get: function () {\n return this._height;\n },\n set: function (value) {\n if (this._height !== value) {\n this._height = value;\n this.scene.resize(this.width, value);\n this.scheduleLayout();\n }\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Generate node data from processed data.\n * Produce data joins.\n * Update selection's nodes using node data.\n */\n Sparkline.prototype.update = function () { };\n // Update y scale based on processed data.\n Sparkline.prototype.updateYScale = function () {\n this.updateYScaleRange();\n this.updateYScaleDomain();\n };\n // Update y scale domain based on processed data.\n Sparkline.prototype.updateYScaleDomain = function () { };\n // Update y scale range based on height and padding (seriesRect).\n Sparkline.prototype.updateYScaleRange = function () {\n var _a = this, yScale = _a.yScale, seriesRect = _a.seriesRect;\n yScale.range = [seriesRect.height, 0];\n };\n // Update x scale based on processed data.\n Sparkline.prototype.updateXScale = function () {\n var type = this.axis.type;\n this.xScale = this.getXScale(type);\n this.updateXScaleRange();\n this.updateXScaleDomain();\n };\n // Update x scale range based on width and padding (seriesRect).\n Sparkline.prototype.updateXScaleRange = function () {\n this.xScale.range = [0, this.seriesRect.width];\n };\n // Update x scale domain based on processed data and type of scale.\n Sparkline.prototype.updateXScaleDomain = function () {\n var _a = this, xData = _a.xData, xScale = _a.xScale;\n var xMinMax;\n if (xScale instanceof LinearScale || xScale instanceof TimeScale) {\n xMinMax = extent$3(xData);\n }\n this.xScale.domain = xMinMax ? xMinMax.slice() : xData;\n };\n /**\n * Return xScale instance based on the provided type or return a `BandScale` by default.\n * The default type is `category`.\n * @param type\n */\n Sparkline.prototype.getXScale = function (type) {\n if (type === void 0) { type = 'category'; }\n switch (type) {\n case 'number':\n return new LinearScale();\n case 'time':\n return new TimeScale();\n case 'category':\n default:\n return new BandScale$4();\n }\n };\n // Update axis line.\n Sparkline.prototype.updateAxisLine = function () { };\n // Update X and Y scales and the axis line.\n Sparkline.prototype.updateAxes = function () {\n this.updateYScale();\n this.updateXScale();\n this.updateAxisLine();\n };\n // Update horizontal and vertical crosshair lines.\n Sparkline.prototype.updateCrosshairs = function () {\n this.updateXCrosshairLine();\n this.updateYCrosshairLine();\n };\n // Using processed data, generate data that backs visible nodes.\n Sparkline.prototype.generateNodeData = function () {\n return [];\n };\n // Returns persisted node data associated with the sparkline's data.\n Sparkline.prototype.getNodeData = function () {\n return [];\n };\n // Update the selection's nodes.\n Sparkline.prototype.updateNodes = function () { };\n // Update the vertical crosshair line.\n Sparkline.prototype.updateXCrosshairLine = function () { };\n // Update the horizontal crosshair line.\n Sparkline.prototype.updateYCrosshairLine = function () { };\n Sparkline.prototype.highlightDatum = function (closestDatum) {\n this.updateNodes();\n };\n Sparkline.prototype.dehighlightDatum = function () {\n this.highlightedDatum = undefined;\n this.updateNodes();\n this.updateCrosshairs();\n };\n /**\n * Highlight closest datum and display tooltip if enabled.\n * Only update if necessary, i.e. only update if the highlighted datum is different from previously highlighted datum,\n * or if there is no previously highlighted datum.\n * @param event\n */\n Sparkline.prototype.onMouseMove = function (event) {\n this.mouseMoveEvent = event;\n this.updateHitPoint(event);\n };\n Sparkline.prototype.updateHitPoint = function (event) {\n var _a, _b, _c;\n var closestDatum = this.pickClosestSeriesNodeDatum(event.offsetX, event.offsetY);\n if (!closestDatum) {\n return;\n }\n var oldHighlightedDatum = this.highlightedDatum;\n this.highlightedDatum = closestDatum;\n if ((this.highlightedDatum && !oldHighlightedDatum) ||\n (this.highlightedDatum && oldHighlightedDatum && this.highlightedDatum !== oldHighlightedDatum)) {\n this.highlightDatum(closestDatum);\n this.updateCrosshairs();\n this.scene.render().catch(function (e) { return console.error(\"AG Grid - chart rendering failed\", e); });\n }\n var tooltipEnabled = (_c = (_b = (_a = this.processedOptions) === null || _a === void 0 ? void 0 : _a.tooltip) === null || _b === void 0 ? void 0 : _b.enabled) !== null && _c !== void 0 ? _c : true;\n if (tooltipEnabled) {\n this.handleTooltip(event, closestDatum);\n }\n };\n /**\n * Dehighlight all nodes and remove tooltip.\n * @param event\n */\n Sparkline.prototype.onMouseOut = function (event) {\n this.dehighlightDatum();\n this.tooltip.toggle(false);\n this.scene.render().catch(function (e) { return console.error(\"AG Grid - chart rendering failed\", e); });\n };\n // Fetch required values from the data object and process them.\n Sparkline.prototype.processData = function () {\n var _this = this;\n var _a = this, data = _a.data, yData = _a.yData, xData = _a.xData;\n if (!data || this.invalidData(this.data)) {\n return;\n }\n yData.length = 0;\n xData.length = 0;\n var n = data.length;\n var dataType = this.getDataType(data);\n this.dataType = dataType;\n var xValueType = this.axis.type;\n var xType = xValueType !== 'number' && xValueType !== 'time' ? 'category' : xValueType;\n var isContinuousX = xType === 'number' || xType === 'time';\n var setSmallestXInterval = function (curr, prev) {\n if (_this.smallestInterval == undefined) {\n _this.smallestInterval = { x: Infinity, y: Infinity };\n }\n var x = _this.smallestInterval.x;\n var interval = Math.abs(curr - prev);\n if (interval > 0 && interval < x) {\n _this.smallestInterval.x = interval;\n }\n };\n var prevX;\n if (dataType === 'number') {\n for (var i = 0; i < n; i++) {\n var xDatum = i;\n var yDatum = data[i];\n var x = this.getDatum(xDatum, xType);\n var y = this.getDatum(yDatum, 'number');\n if (isContinuousX) {\n setSmallestXInterval(x, prevX);\n }\n xData.push(x);\n yData.push(y);\n prevX = x;\n }\n }\n else if (dataType === 'array') {\n for (var i = 0; i < n; i++) {\n var datum = data[i];\n if (Array.isArray(datum)) {\n var xDatum = datum[0];\n var yDatum = datum[1];\n var x = this.getDatum(xDatum, xType);\n var y = this.getDatum(yDatum, 'number');\n if (x == undefined) {\n continue;\n }\n if (isContinuousX) {\n setSmallestXInterval(x, prevX);\n }\n xData.push(x);\n yData.push(y);\n prevX = x;\n }\n }\n }\n else if (dataType === 'object') {\n var _b = this, yKey = _b.yKey, xKey = _b.xKey;\n for (var i = 0; i < n; i++) {\n var datum = data[i];\n if (typeof datum === 'object' && !Array.isArray(datum)) {\n var xDatum = datum[xKey];\n var yDatum = datum[yKey];\n var x = this.getDatum(xDatum, xType);\n var y = this.getDatum(yDatum, 'number');\n if (x == undefined) {\n continue;\n }\n if (isContinuousX) {\n setSmallestXInterval(x, prevX);\n }\n xData.push(x);\n yData.push(y);\n prevX = x;\n }\n }\n }\n this.updateAxes();\n this.immediateLayout();\n };\n /**\n * Return the type of data provided to the sparkline based on the first truthy value in the data array.\n * If the value is not a number, array or object, return `undefined`.\n * @param data\n */\n Sparkline.prototype.getDataType = function (data) {\n var e_1, _a;\n try {\n for (var data_1 = __values(data), data_1_1 = data_1.next(); !data_1_1.done; data_1_1 = data_1.next()) {\n var datum = data_1_1.value;\n if (datum != undefined) {\n if (isNumber$3(datum)) {\n return 'number';\n }\n else if (Array.isArray(datum)) {\n return 'array';\n }\n else if (typeof datum === 'object') {\n return 'object';\n }\n }\n }\n }\n catch (e_1_1) { e_1 = { error: e_1_1 }; }\n finally {\n try {\n if (data_1_1 && !data_1_1.done && (_a = data_1.return)) _a.call(data_1);\n }\n finally { if (e_1) throw e_1.error; }\n }\n };\n /**\n * Return the given value depending on the type of axis.\n * Return `undefined` if the value is invalid for the given axis type.\n * @param value\n */\n Sparkline.prototype.getDatum = function (value, type) {\n if ((type === 'number' && isNumber$3(value)) || (type === 'time' && (isNumber$3(value) || isDate(value)))) {\n return value;\n }\n else if (type === 'category') {\n if (isString(value) || isDate(value) || isNumber$3(value)) {\n return { toString: function () { return String(value); } };\n }\n else if (isStringObject(value)) {\n return value;\n }\n }\n };\n Object.defineProperty(Sparkline.prototype, \"layoutScheduled\", {\n /**\n * Only `true` while we are waiting for the layout to start.\n * This will be `false` if the layout has already started and is ongoing.\n */\n get: function () {\n return !!this.layoutId;\n },\n enumerable: false,\n configurable: true\n });\n /**\n * Execute update method on the next available screen repaint to make changes to the canvas.\n * If we are waiting for a layout to start and a new layout is requested,\n * cancel the previous layout using the non 0 integer (this.layoutId) returned from requestAnimationFrame.\n */\n Sparkline.prototype.scheduleLayout = function () {\n var _this = this;\n if (this.layoutId) {\n cancelAnimationFrame(this.layoutId);\n }\n this.layoutId = requestAnimationFrame(function () {\n _this.immediateLayout();\n _this.layoutId = 0;\n });\n };\n Sparkline.prototype.immediateLayout = function () {\n this.setSparklineDimensions();\n if (this.invalidData(this.data)) {\n return;\n }\n // update axes ranges\n this.updateXScaleRange();\n this.updateYScaleRange();\n // update axis line\n this.updateAxisLine();\n // produce data joins and update selection's nodes\n this.update();\n this.scene.render().catch(function (e) { return console.error(\"AG Grid - chart rendering failed\", e); });\n };\n Sparkline.prototype.setSparklineDimensions = function () {\n var _a = this, width = _a.width, height = _a.height, padding = _a.padding, seriesRect = _a.seriesRect, rootGroup = _a.rootGroup;\n var shrunkWidth = width - padding.left - padding.right;\n var shrunkHeight = height - padding.top - padding.bottom;\n seriesRect.width = shrunkWidth;\n seriesRect.height = shrunkHeight;\n seriesRect.x = padding.left;\n seriesRect.y = padding.top;\n rootGroup.translationX = seriesRect.x;\n rootGroup.translationY = seriesRect.y;\n };\n /**\n * Return the closest data point to x/y canvas coordinates.\n * @param x\n * @param y\n */\n Sparkline.prototype.pickClosestSeriesNodeDatum = function (x, y) {\n var minDistance = Infinity;\n var closestDatum;\n var hitPoint = this.rootGroup.transformPoint(x, y);\n var nodeData = this.getNodeData();\n for (var i = 0; i < nodeData.length; i++) {\n var datum = nodeData[i];\n if (!datum.point) {\n return;\n }\n var distance = this.getDistance(hitPoint, datum.point);\n if (distance <= minDistance) {\n minDistance = distance;\n closestDatum = datum;\n }\n }\n return closestDatum;\n };\n /**\n * Return the relevant distance between two points.\n * The distance will be calculated based on the x value of the points for all sparklines except bar sparkline, where the distance is based on the y values.\n * @param x\n * @param y\n */\n Sparkline.prototype.getDistance = function (p1, p2) {\n return Math.abs(p1.x - p2.x);\n };\n /**\n * calculate x/y coordinates for tooltip based on coordinates of highlighted datum, position of canvas and page offset.\n * @param datum\n */\n Sparkline.prototype.handleTooltip = function (event, datum) {\n var _a, _b;\n var seriesDatum = datum.seriesDatum;\n var canvasElement = this.canvasElement;\n var clientX = event.clientX, clientY = event.clientY;\n var tooltipOptions = (_a = this.processedOptions) === null || _a === void 0 ? void 0 : _a.tooltip;\n var meta = {\n pageX: clientX,\n pageY: clientY,\n position: {\n xOffset: tooltipOptions === null || tooltipOptions === void 0 ? void 0 : tooltipOptions.xOffset,\n yOffset: tooltipOptions === null || tooltipOptions === void 0 ? void 0 : tooltipOptions.yOffset,\n },\n container: tooltipOptions === null || tooltipOptions === void 0 ? void 0 : tooltipOptions.container,\n };\n // confine tooltip to sparkline width if tooltip container not provided.\n if (meta.container == undefined) {\n meta.container = canvasElement;\n }\n var yValue = seriesDatum.y;\n var xValue = seriesDatum.x;\n // check if tooltip is enabled for this specific data point\n var enabled = (_b = tooltipOptions === null || tooltipOptions === void 0 ? void 0 : tooltipOptions.enabled) !== null && _b !== void 0 ? _b : true;\n var tooltipRenderer = tooltipOptions === null || tooltipOptions === void 0 ? void 0 : tooltipOptions.renderer;\n if (tooltipRenderer) {\n var tooltipRendererResult = tooltipRenderer({\n context: this.context,\n datum: seriesDatum,\n yValue: yValue,\n xValue: xValue,\n });\n enabled =\n typeof tooltipRendererResult !== 'string' && tooltipRendererResult.enabled !== undefined\n ? tooltipRendererResult.enabled\n : enabled;\n }\n var html = enabled && seriesDatum.y !== undefined && this.getTooltipHtml(datum);\n if (html) {\n this.tooltip.show(meta, html);\n }\n };\n Sparkline.prototype.formatNumericDatum = function (datum) {\n return String(Math.round(datum * 10) / 10);\n };\n // locale.format('%m/%d/%y, %H:%M:%S');\n Sparkline.prototype.formatDatum = function (datum) {\n var type = this.axis.type || 'category';\n if (type === 'number' && typeof datum === 'number') {\n return this.formatNumericDatum(datum);\n }\n else if (type === 'time' && (datum instanceof Date || isNumber$3(datum))) {\n return this.defaultDateFormatter.format(datum);\n }\n else {\n return String(datum);\n }\n };\n Sparkline.prototype.setupDomEventListeners = function (chartElement) {\n chartElement.addEventListener('mousemove', this._onMouseMove);\n chartElement.addEventListener('mouseout', this._onMouseOut);\n };\n Sparkline.prototype.cleanupDomEventListeners = function (chartElement) {\n chartElement.removeEventListener('mousemove', this._onMouseMove);\n chartElement.removeEventListener('mouseout', this._onMouseOut);\n };\n Sparkline.prototype.invalidData = function (data) {\n return !data || !Array.isArray(data) || data.length === 0;\n };\n /**\n * Cleanup and remove canvas element from the DOM.\n */\n Sparkline.prototype.destroy = function () {\n this.scene.container = undefined;\n // remove canvas element from the DOM\n this.container = undefined;\n this.cleanupDomEventListeners(this.scene.canvas.element);\n };\n Sparkline.tooltipDocuments = [];\n return Sparkline;\n}());\n\nfunction toTooltipHtml(input, defaults) {\n var _a, _b, _c;\n if (typeof input === 'string') {\n return input;\n }\n defaults = defaults !== null && defaults !== void 0 ? defaults : {};\n var _d = input.content, content = _d === void 0 ? (_a = defaults.content) !== null && _a !== void 0 ? _a : '' : _d, _e = input.title, title = _e === void 0 ? (_b = defaults.title) !== null && _b !== void 0 ? _b : undefined : _e, _f = input.color, color = _f === void 0 ? defaults.color : _f, _g = input.backgroundColor, backgroundColor = _g === void 0 ? defaults.backgroundColor : _g, _h = input.opacity, opacity = _h === void 0 ? (_c = defaults.opacity) !== null && _c !== void 0 ? _c : 1 : _h;\n var titleHtml;\n var contentHtml;\n if (color) {\n titleHtml = title\n ? \"\" + title + \"\"\n : '';\n contentHtml = \"\" + content + \"\";\n }\n else {\n titleHtml = title ? \"\" + title + \"\" : '';\n contentHtml = \"\" + content + \"\";\n }\n var style = \"opacity: \" + opacity;\n if (backgroundColor) {\n style += \"; background-color: \" + backgroundColor.toLowerCase();\n }\n return \"
\\n \" + titleHtml + \"\\n \" + contentHtml + \"\\n
\";\n}\nvar SparklineTooltip = /** @class */ (function () {\n function SparklineTooltip() {\n this.element = document.createElement('div');\n var tooltipRoot = document.body;\n tooltipRoot.appendChild(this.element);\n }\n SparklineTooltip.prototype.isVisible = function () {\n var element = this.element;\n if (element.classList) {\n return !element.classList.contains(SparklineTooltip.class + \"-wrapper-hidden\");\n }\n // IE11\n var classes = element.getAttribute('class');\n if (classes) {\n return classes.split(' ').indexOf(SparklineTooltip.class + \"-wrapper-hidden\") < 0;\n }\n return false;\n };\n SparklineTooltip.prototype.updateClass = function (visible) {\n var classList = [SparklineTooltip.class + \"-wrapper\"];\n if (visible !== true) {\n classList.push(SparklineTooltip.class + \"-wrapper-hidden\");\n }\n this.element.setAttribute('class', classList.join(' '));\n };\n SparklineTooltip.prototype.show = function (meta, html) {\n var _a, _b, _c, _d;\n this.toggle(false);\n var element = this.element;\n if (html !== undefined) {\n element.innerHTML = html;\n }\n else if (!element.innerHTML) {\n return;\n }\n var xOffset = (_b = (_a = meta.position) === null || _a === void 0 ? void 0 : _a.xOffset) !== null && _b !== void 0 ? _b : 10;\n var yOffset = (_d = (_c = meta.position) === null || _c === void 0 ? void 0 : _c.yOffset) !== null && _d !== void 0 ? _d : 0;\n var left = meta.pageX + xOffset;\n var top = meta.pageY + yOffset;\n var tooltipRect = element.getBoundingClientRect();\n var maxLeft = window.innerWidth - tooltipRect.width;\n if (meta.container) {\n var containerRect = meta.container.getBoundingClientRect();\n maxLeft = containerRect.left + (containerRect.width - tooltipRect.width);\n }\n if (left > maxLeft) {\n left = meta.pageX - element.clientWidth - xOffset;\n }\n if (typeof scrollX !== 'undefined') {\n left += scrollX;\n }\n if (typeof scrollY !== 'undefined') {\n top += scrollY;\n }\n element.style.left = Math.round(left) + \"px\";\n element.style.top = Math.round(top) + \"px\";\n this.toggle(true);\n };\n SparklineTooltip.prototype.toggle = function (visible) {\n this.updateClass(visible);\n };\n SparklineTooltip.prototype.destroy = function () {\n var parentNode = this.element.parentNode;\n if (parentNode) {\n parentNode.removeChild(this.element);\n }\n };\n SparklineTooltip.class = 'ag-sparkline-tooltip';\n return SparklineTooltip;\n}());\n\nfunction getMarker(shape) {\n switch (shape) {\n case 'circle':\n return Circle;\n case 'square':\n return Square;\n case 'diamond':\n return Diamond;\n default:\n return Circle;\n }\n}\n\nfunction getLineDash(lineCap, lineDash) {\n if (lineDash === void 0) { lineDash = 'solid'; }\n var buttOrNull = {\n solid: [],\n dash: [4, 3],\n dot: [1, 3],\n dashDot: [4, 3, 1, 3],\n dashDotDot: [4, 3, 1, 3, 1, 3],\n shortDot: [1, 1],\n shortDash: [3, 1],\n shortDashDot: [3, 1, 1, 1],\n shortDashDotDot: [3, 1, 1, 1, 1, 1],\n longDash: [8, 3],\n longDashDot: [8, 3, 1, 3],\n longDashDotDot: [8, 3, 1, 3, 1, 3]\n };\n var roundOrSquare = {\n solid: [],\n dash: [3, 3],\n dot: [0, 3],\n dashDot: [3, 3, 0, 3],\n dashDotDot: [3, 3, 0, 3, 0, 3],\n shortDot: [0, 2],\n shortDash: [2, 2],\n shortDashDot: [2, 2, 0, 2],\n shortDashDotDot: [2, 2, 0, 2, 0, 2],\n longDash: [7, 3],\n longDashDot: [7, 3, 0, 3],\n longDashDotDot: [7, 3, 0, 3, 0, 3]\n };\n if (lineCap === 'round' || lineCap === 'square') {\n if (roundOrSquare[lineDash] == undefined) {\n console.warn(\"'\" + lineDash + \"' is not a valid 'lineDash' option.\");\n return roundOrSquare.solid;\n }\n return roundOrSquare[lineDash];\n }\n if (buttOrNull[lineDash] == undefined) {\n console.warn(\"'\" + lineDash + \"' is not a valid 'lineDash' option.\");\n return buttOrNull.solid;\n }\n return buttOrNull[lineDash];\n}\n\nvar __extends$6 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar extent$2 = extent$4;\nvar BandScale$3 = BandScale$5;\nvar SparklineMarker$1 = /** @class */ (function () {\n function SparklineMarker() {\n this.enabled = true;\n this.shape = 'circle';\n this.size = 0;\n this.fill = 'rgb(124, 181, 236)';\n this.stroke = 'rgb(124, 181, 236)';\n this.strokeWidth = 1;\n this.formatter = undefined;\n }\n return SparklineMarker;\n}());\nvar SparklineLine$1 = /** @class */ (function () {\n function SparklineLine() {\n this.stroke = 'rgb(124, 181, 236)';\n this.strokeWidth = 1;\n }\n return SparklineLine;\n}());\nvar SparklineCrosshairs$1 = /** @class */ (function () {\n function SparklineCrosshairs() {\n this.xLine = {\n enabled: true,\n stroke: 'rgba(0,0,0, 0.54)',\n strokeWidth: 1,\n lineDash: 'solid',\n lineCap: undefined,\n };\n this.yLine = {\n enabled: false,\n stroke: 'rgba(0,0,0, 0.54)',\n strokeWidth: 1,\n lineDash: 'solid',\n lineCap: undefined,\n };\n }\n return SparklineCrosshairs;\n}());\nvar AreaSparkline = /** @class */ (function (_super) {\n __extends$6(AreaSparkline, _super);\n function AreaSparkline() {\n var _this = _super.call(this) || this;\n _this.fill = 'rgba(124, 181, 236, 0.25)';\n _this.strokePath = new Path();\n _this.fillPath = new Path();\n _this.xCrosshairLine = new Line();\n _this.yCrosshairLine = new Line();\n _this.areaSparklineGroup = new Group();\n _this.xAxisLine = new Line();\n _this.markers = new Group();\n _this.markerSelection = Selection.select(_this.markers, function () { return _this.markerFactory(); });\n _this.markerSelectionData = [];\n _this.marker = new SparklineMarker$1();\n _this.line = new SparklineLine$1();\n _this.crosshairs = new SparklineCrosshairs$1();\n _this.rootGroup.append(_this.areaSparklineGroup);\n _this.xAxisLine.zIndex = ZINDICIES.AXIS_LINE_ZINDEX;\n _this.fillPath.zIndex = ZINDICIES.SERIES_FILL_ZINDEX;\n _this.strokePath.zIndex = ZINDICIES.SERIES_STROKE_ZINDEX;\n _this.xCrosshairLine.zIndex = ZINDICIES.CROSSHAIR_ZINDEX;\n _this.yCrosshairLine.zIndex = ZINDICIES.CROSSHAIR_ZINDEX;\n _this.markers.zIndex = ZINDICIES.SERIES_MARKERS_ZINDEX;\n _this.areaSparklineGroup.append([\n _this.fillPath,\n _this.xAxisLine,\n _this.strokePath,\n _this.xCrosshairLine,\n _this.yCrosshairLine,\n _this.markers,\n ]);\n return _this;\n }\n AreaSparkline.prototype.markerFactory = function () {\n var shape = this.marker.shape;\n var MarkerShape = getMarker(shape);\n return new MarkerShape();\n };\n AreaSparkline.prototype.getNodeData = function () {\n return this.markerSelectionData;\n };\n AreaSparkline.prototype.update = function () {\n var data = this.generateNodeData();\n if (!data) {\n return;\n }\n var nodeData = data.nodeData, fillData = data.fillData, strokeData = data.strokeData;\n this.markerSelectionData = nodeData;\n this.updateSelection(nodeData);\n this.updateNodes();\n this.updateStroke(strokeData);\n this.updateFill(fillData);\n };\n AreaSparkline.prototype.updateYScaleDomain = function () {\n var _a = this, yData = _a.yData, yScale = _a.yScale;\n var yMinMax = extent$2(yData);\n var yMin = 0;\n var yMax = 1;\n if (yMinMax !== undefined) {\n yMin = this.min = yMinMax[0];\n yMax = this.max = yMinMax[1];\n }\n // if yMin is positive, set yMin to 0\n yMin = yMin < 0 ? yMin : 0;\n // if yMax is negative, set yMax to 0\n yMax = yMax < 0 ? 0 : yMax;\n yScale.domain = [yMin, yMax];\n };\n AreaSparkline.prototype.generateNodeData = function () {\n var _a = this, data = _a.data, yData = _a.yData, xData = _a.xData, xScale = _a.xScale, yScale = _a.yScale;\n if (!data) {\n return;\n }\n var continuous = !(xScale instanceof BandScale$3);\n var offsetX = !continuous ? xScale.bandwidth / 2 : 0;\n var n = yData.length;\n var nodeData = [];\n var fillData = [];\n var strokeData = [];\n var firstValidX;\n var lastValidX;\n var previousX;\n var nextX;\n var yZero = yScale.convert(0);\n for (var i = 0; i < n; i++) {\n var yDatum = yData[i];\n var xDatum = xData[i];\n var x = xScale.convert(continuous ? xScale.toDomain(xDatum) : xDatum) + offsetX;\n var y = yDatum === undefined ? NaN : yScale.convert(yDatum);\n // if this iteration is not the last, set nextX using the next value in the data array\n if (i + 1 < n) {\n nextX = xScale.convert(continuous ? xScale.toDomain(xData[i + 1]) : xData[i + 1]) + offsetX;\n }\n // set stroke data regardless of missing/ undefined values. Undefined values will be handled in the updateStroke() method\n strokeData.push({\n seriesDatum: { x: xDatum, y: yDatum },\n point: { x: x, y: y },\n });\n if (yDatum === undefined && previousX !== undefined) {\n // if yDatum is undefined and there is a valid previous data point, add a phantom point at yZero\n // if a next data point exists, add a phantom point at yZero at the next X\n fillData.push({ seriesDatum: undefined, point: { x: previousX, y: yZero } });\n if (nextX !== undefined) {\n fillData.push({ seriesDatum: undefined, point: { x: nextX, y: yZero } });\n }\n }\n else if (yDatum !== undefined) {\n fillData.push({\n seriesDatum: { x: xDatum, y: yDatum },\n point: { x: x, y: y },\n });\n // set node data only if yDatum is not undefined. These values are used in the updateSelection() method to update markers\n nodeData.push({\n seriesDatum: { x: xDatum, y: yDatum },\n point: { x: x, y: y },\n });\n firstValidX = firstValidX !== undefined ? firstValidX : x;\n lastValidX = x;\n }\n previousX = x;\n }\n // phantom points for creating closed area\n fillData.push({ seriesDatum: undefined, point: { x: lastValidX, y: yZero } }, { seriesDatum: undefined, point: { x: firstValidX, y: yZero } });\n return { nodeData: nodeData, fillData: fillData, strokeData: strokeData };\n };\n AreaSparkline.prototype.updateAxisLine = function () {\n var _a = this, xScale = _a.xScale, yScale = _a.yScale, axis = _a.axis, xAxisLine = _a.xAxisLine;\n xAxisLine.x1 = xScale.range[0];\n xAxisLine.x2 = xScale.range[1];\n xAxisLine.y1 = xAxisLine.y2 = 0;\n xAxisLine.stroke = axis.stroke;\n xAxisLine.strokeWidth = axis.strokeWidth;\n var yZero = yScale.convert(0);\n xAxisLine.translationY = yZero;\n };\n AreaSparkline.prototype.updateSelection = function (selectionData) {\n this.markerSelection.update(selectionData);\n };\n AreaSparkline.prototype.updateNodes = function () {\n var _this = this;\n var _a = this, highlightedDatum = _a.highlightedDatum, highlightStyle = _a.highlightStyle, marker = _a.marker;\n var highlightSize = highlightStyle.size, highlightFill = highlightStyle.fill, highlightStroke = highlightStyle.stroke, highlightStrokeWidth = highlightStyle.strokeWidth;\n var markerFormatter = marker.formatter;\n this.markerSelection.each(function (node, datum, index) {\n var point = datum.point, seriesDatum = datum.seriesDatum;\n if (!point) {\n return;\n }\n var highlighted = datum === highlightedDatum;\n var markerFill = highlighted && highlightFill !== undefined ? highlightFill : marker.fill;\n var markerStroke = highlighted && highlightStroke !== undefined ? highlightStroke : marker.stroke;\n var markerStrokeWidth = highlighted && highlightStrokeWidth !== undefined ? highlightStrokeWidth : marker.strokeWidth;\n var markerSize = highlighted && highlightSize !== undefined ? highlightSize : marker.size;\n var markerFormat;\n if (markerFormatter) {\n var first = index === 0;\n var last = index === _this.markerSelectionData.length - 1;\n var min = seriesDatum.y === _this.min;\n var max = seriesDatum.y === _this.max;\n markerFormat = markerFormatter({\n datum: datum,\n xValue: seriesDatum.x,\n yValue: seriesDatum.y,\n min: min,\n max: max,\n first: first,\n last: last,\n fill: markerFill,\n stroke: markerStroke,\n strokeWidth: markerStrokeWidth,\n size: markerSize,\n highlighted: highlighted,\n });\n }\n node.size = markerFormat && markerFormat.size != undefined ? markerFormat.size : markerSize;\n node.fill = markerFormat && markerFormat.fill != undefined ? markerFormat.fill : markerFill;\n node.stroke = markerFormat && markerFormat.stroke != undefined ? markerFormat.stroke : markerStroke;\n node.strokeWidth =\n markerFormat && markerFormat.strokeWidth != undefined ? markerFormat.strokeWidth : markerStrokeWidth;\n node.translationX = point.x;\n node.translationY = point.y;\n node.visible =\n markerFormat && markerFormat.enabled != undefined\n ? markerFormat.enabled\n : marker.enabled && node.size > 0;\n });\n };\n AreaSparkline.prototype.updateStroke = function (strokeData) {\n var _a = this, strokePath = _a.strokePath, yData = _a.yData, line = _a.line;\n if (yData.length < 2) {\n return;\n }\n var path = strokePath.path;\n var n = strokeData.length;\n var moveTo = true;\n path.clear();\n for (var i = 0; i < n; i++) {\n var _b = strokeData[i], point = _b.point, seriesDatum = _b.seriesDatum;\n var x = point.x;\n var y = point.y;\n if (seriesDatum.y == undefined) {\n moveTo = true;\n }\n else {\n if (moveTo) {\n path.moveTo(x, y);\n moveTo = false;\n }\n else {\n path.lineTo(x, y);\n }\n }\n }\n strokePath.lineJoin = strokePath.lineCap = 'round';\n strokePath.fill = undefined;\n strokePath.stroke = line.stroke;\n strokePath.strokeWidth = line.strokeWidth;\n };\n AreaSparkline.prototype.updateFill = function (areaData) {\n var _a = this, fillPath = _a.fillPath, yData = _a.yData, fill = _a.fill;\n var path = fillPath.path;\n var n = areaData.length;\n path.clear();\n if (yData.length < 2) {\n return;\n }\n for (var i = 0; i < n; i++) {\n var point = areaData[i].point;\n var x = point.x;\n var y = point.y;\n if (i > 0) {\n path.lineTo(x, y);\n }\n else {\n path.moveTo(x, y);\n }\n }\n path.closePath();\n fillPath.lineJoin = 'round';\n fillPath.stroke = undefined;\n fillPath.fill = fill;\n };\n AreaSparkline.prototype.updateXCrosshairLine = function () {\n var _a;\n var _b = this, yScale = _b.yScale, xCrosshairLine = _b.xCrosshairLine, highlightedDatum = _b.highlightedDatum, xLine = _b.crosshairs.xLine;\n if (!xLine.enabled || highlightedDatum == undefined) {\n xCrosshairLine.strokeWidth = 0;\n return;\n }\n xCrosshairLine.y1 = yScale.range[0];\n xCrosshairLine.y2 = yScale.range[1];\n xCrosshairLine.x1 = xCrosshairLine.x2 = 0;\n xCrosshairLine.stroke = xLine.stroke;\n xCrosshairLine.strokeWidth = (_a = xLine.strokeWidth) !== null && _a !== void 0 ? _a : 1;\n xCrosshairLine.lineCap = xLine.lineCap === 'round' || xLine.lineCap === 'square' ? xLine.lineCap : undefined;\n var lineDash = xLine.lineDash;\n xCrosshairLine.lineDash = Array.isArray(lineDash)\n ? lineDash\n : getLineDash(xCrosshairLine.lineCap, xLine.lineDash);\n xCrosshairLine.translationX = highlightedDatum.point.x;\n };\n AreaSparkline.prototype.updateYCrosshairLine = function () {\n var _a;\n var _b = this, xScale = _b.xScale, yCrosshairLine = _b.yCrosshairLine, highlightedDatum = _b.highlightedDatum, yLine = _b.crosshairs.yLine;\n if (!yLine.enabled || highlightedDatum == undefined) {\n yCrosshairLine.strokeWidth = 0;\n return;\n }\n yCrosshairLine.x1 = xScale.range[0];\n yCrosshairLine.x2 = xScale.range[1];\n yCrosshairLine.y1 = yCrosshairLine.y2 = 0;\n yCrosshairLine.stroke = yLine.stroke;\n yCrosshairLine.strokeWidth = (_a = yLine.strokeWidth) !== null && _a !== void 0 ? _a : 1;\n yCrosshairLine.lineCap = yLine.lineCap === 'round' || yLine.lineCap === 'square' ? yLine.lineCap : undefined;\n var lineDash = yLine.lineDash;\n yCrosshairLine.lineDash = Array.isArray(lineDash)\n ? lineDash\n : getLineDash(yCrosshairLine.lineCap, yLine.lineDash);\n yCrosshairLine.translationY = highlightedDatum.point.y;\n };\n AreaSparkline.prototype.getTooltipHtml = function (datum) {\n var _a, _b;\n var dataType = this.dataType;\n var seriesDatum = datum.seriesDatum;\n var yValue = seriesDatum.y;\n var xValue = seriesDatum.x;\n var content = this.formatNumericDatum(yValue);\n var title = dataType === 'array' || dataType === 'object' ? this.formatDatum(xValue) : undefined;\n var defaults = {\n content: content,\n title: title,\n };\n var tooltipRenderer = (_b = (_a = this.processedOptions) === null || _a === void 0 ? void 0 : _a.tooltip) === null || _b === void 0 ? void 0 : _b.renderer;\n if (tooltipRenderer) {\n return toTooltipHtml(tooltipRenderer({\n context: this.context,\n datum: seriesDatum,\n yValue: yValue,\n xValue: xValue,\n }), defaults);\n }\n return toTooltipHtml(defaults);\n };\n AreaSparkline.className = 'AreaSparkline';\n return AreaSparkline;\n}(Sparkline));\n\nvar __extends$5 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar extent$1 = extent$4;\nvar BandScale$2 = BandScale$5;\nvar SparklineMarker = /** @class */ (function () {\n function SparklineMarker() {\n this.enabled = true;\n this.shape = 'circle';\n this.size = 0;\n this.fill = 'rgb(124, 181, 236)';\n this.stroke = 'rgb(124, 181, 236)';\n this.strokeWidth = 1;\n this.formatter = undefined;\n }\n return SparklineMarker;\n}());\nvar SparklineLine = /** @class */ (function () {\n function SparklineLine() {\n this.stroke = 'rgb(124, 181, 236)';\n this.strokeWidth = 1;\n }\n return SparklineLine;\n}());\nvar SparklineCrosshairs = /** @class */ (function () {\n function SparklineCrosshairs() {\n this.xLine = {\n enabled: true,\n stroke: 'rgba(0,0,0, 0.54)',\n strokeWidth: 1,\n lineDash: 'solid',\n lineCap: undefined,\n };\n this.yLine = {\n enabled: false,\n stroke: 'rgba(0,0,0, 0.54)',\n strokeWidth: 1,\n lineDash: 'solid',\n lineCap: undefined,\n };\n }\n return SparklineCrosshairs;\n}());\nvar LineSparkline = /** @class */ (function (_super) {\n __extends$5(LineSparkline, _super);\n function LineSparkline() {\n var _this = _super.call(this) || this;\n _this.linePath = new Path();\n _this.xCrosshairLine = new Line();\n _this.yCrosshairLine = new Line();\n _this.lineSparklineGroup = new Group();\n _this.markers = new Group();\n _this.markerSelection = Selection.select(_this.markers, function () { return _this.markerFactory(); });\n _this.markerSelectionData = [];\n _this.marker = new SparklineMarker();\n _this.line = new SparklineLine();\n _this.crosshairs = new SparklineCrosshairs();\n _this.rootGroup.append(_this.lineSparklineGroup);\n _this.linePath.zIndex = ZINDICIES.SERIES_STROKE_ZINDEX;\n _this.xCrosshairLine.zIndex = ZINDICIES.CROSSHAIR_ZINDEX;\n _this.yCrosshairLine.zIndex = ZINDICIES.CROSSHAIR_ZINDEX;\n _this.markers.zIndex = ZINDICIES.SERIES_MARKERS_ZINDEX;\n _this.lineSparklineGroup.append([_this.linePath, _this.xCrosshairLine, _this.yCrosshairLine, _this.markers]);\n return _this;\n }\n LineSparkline.prototype.getNodeData = function () {\n return this.markerSelectionData;\n };\n LineSparkline.prototype.markerFactory = function () {\n var shape = this.marker.shape;\n var MarkerShape = getMarker(shape);\n return new MarkerShape();\n };\n /**\n * If marker shape is changed, this method should be called to remove the previous marker nodes selection.\n */\n LineSparkline.prototype.onMarkerShapeChange = function () {\n this.markerSelection = this.markerSelection.clear();\n this.scheduleLayout();\n };\n LineSparkline.prototype.update = function () {\n var nodeData = this.generateNodeData();\n if (!nodeData) {\n return;\n }\n this.markerSelectionData = nodeData;\n this.updateSelection(nodeData);\n this.updateNodes();\n this.updateLine();\n };\n LineSparkline.prototype.updateYScaleDomain = function () {\n var _a = this, yData = _a.yData, yScale = _a.yScale;\n var yMinMax = extent$1(yData);\n var yMin = 0;\n var yMax = 1;\n if (yMinMax !== undefined) {\n yMin = this.min = yMinMax[0];\n yMax = this.max = yMinMax[1];\n }\n if (yMin === yMax) {\n // if all values in the data are the same, yMin and yMax will be equal, need to adjust the domain with some padding\n var padding = Math.abs(yMin * 0.01);\n yMin -= padding;\n yMax += padding;\n }\n yScale.domain = [yMin, yMax];\n };\n LineSparkline.prototype.generateNodeData = function () {\n var _a = this, data = _a.data, yData = _a.yData, xData = _a.xData, xScale = _a.xScale, yScale = _a.yScale;\n if (!data) {\n return;\n }\n var continuous = !(xScale instanceof BandScale$2);\n var offsetX = !continuous ? xScale.bandwidth / 2 : 0;\n var nodeData = [];\n for (var i = 0; i < yData.length; i++) {\n var yDatum = yData[i];\n var xDatum = xData[i];\n if (yDatum == undefined) {\n continue;\n }\n var x = xScale.convert(continuous ? xScale.toDomain(xDatum) : xDatum) + offsetX;\n var y = yDatum === undefined ? NaN : yScale.convert(yDatum);\n nodeData.push({\n seriesDatum: { x: xDatum, y: yDatum },\n point: { x: x, y: y },\n });\n }\n return nodeData;\n };\n LineSparkline.prototype.updateSelection = function (selectionData) {\n this.markerSelection.update(selectionData);\n };\n LineSparkline.prototype.updateNodes = function () {\n var _this = this;\n var _a = this, highlightedDatum = _a.highlightedDatum, highlightStyle = _a.highlightStyle, marker = _a.marker;\n var highlightSize = highlightStyle.size, highlightFill = highlightStyle.fill, highlightStroke = highlightStyle.stroke, highlightStrokeWidth = highlightStyle.strokeWidth;\n var markerFormatter = marker.formatter;\n this.markerSelection.each(function (node, datum, index) {\n var highlighted = datum === highlightedDatum;\n var markerFill = highlighted && highlightFill !== undefined ? highlightFill : marker.fill;\n var markerStroke = highlighted && highlightStroke !== undefined ? highlightStroke : marker.stroke;\n var markerStrokeWidth = highlighted && highlightStrokeWidth !== undefined ? highlightStrokeWidth : marker.strokeWidth;\n var markerSize = highlighted && highlightSize !== undefined ? highlightSize : marker.size;\n var markerFormat;\n var seriesDatum = datum.seriesDatum, point = datum.point;\n if (markerFormatter) {\n var first = index === 0;\n var last = index === _this.markerSelectionData.length - 1;\n var min = seriesDatum.y === _this.min;\n var max = seriesDatum.y === _this.max;\n markerFormat = markerFormatter({\n datum: datum,\n xValue: seriesDatum.x,\n yValue: seriesDatum.y,\n min: min,\n max: max,\n first: first,\n last: last,\n fill: markerFill,\n stroke: markerStroke,\n strokeWidth: markerStrokeWidth,\n size: markerSize,\n highlighted: highlighted,\n });\n }\n node.size = markerFormat && markerFormat.size != undefined ? markerFormat.size : markerSize;\n node.fill = markerFormat && markerFormat.fill != undefined ? markerFormat.fill : markerFill;\n node.stroke = markerFormat && markerFormat.stroke != undefined ? markerFormat.stroke : markerStroke;\n node.strokeWidth =\n markerFormat && markerFormat.strokeWidth != undefined ? markerFormat.strokeWidth : markerStrokeWidth;\n node.translationX = point.x;\n node.translationY = point.y;\n node.visible =\n markerFormat && markerFormat.enabled != undefined\n ? markerFormat.enabled\n : marker.enabled && node.size > 0;\n });\n };\n LineSparkline.prototype.updateLine = function () {\n var _a = this, linePath = _a.linePath, yData = _a.yData, xData = _a.xData, xScale = _a.xScale, yScale = _a.yScale, line = _a.line;\n if (yData.length < 2) {\n return;\n }\n var continuous = !(xScale instanceof BandScale$2);\n var path = linePath.path;\n var n = yData.length;\n var offsetX = !continuous ? xScale.bandwidth / 2 : 0;\n var moveTo = true;\n path.clear();\n for (var i = 0; i < n; i++) {\n var xDatum = xData[i];\n var yDatum = yData[i];\n var x = xScale.convert(continuous ? xScale.toDomain(xDatum) : xDatum) + offsetX;\n var y = yDatum === undefined ? NaN : yScale.convert(yDatum);\n if (yDatum == undefined) {\n moveTo = true;\n }\n else {\n if (moveTo) {\n path.moveTo(x, y);\n moveTo = false;\n }\n else {\n path.lineTo(x, y);\n }\n }\n }\n linePath.fill = undefined;\n linePath.stroke = line.stroke;\n linePath.strokeWidth = line.strokeWidth;\n };\n LineSparkline.prototype.updateXCrosshairLine = function () {\n var _a;\n var _b = this, yScale = _b.yScale, xCrosshairLine = _b.xCrosshairLine, highlightedDatum = _b.highlightedDatum, xLine = _b.crosshairs.xLine;\n if (!xLine.enabled || highlightedDatum == undefined) {\n xCrosshairLine.strokeWidth = 0;\n return;\n }\n xCrosshairLine.y1 = yScale.range[0];\n xCrosshairLine.y2 = yScale.range[1];\n xCrosshairLine.x1 = xCrosshairLine.x2 = 0;\n xCrosshairLine.stroke = xLine.stroke;\n xCrosshairLine.strokeWidth = (_a = xLine.strokeWidth) !== null && _a !== void 0 ? _a : 1;\n xCrosshairLine.lineCap = xLine.lineCap === 'round' || xLine.lineCap === 'square' ? xLine.lineCap : undefined;\n var lineDash = xLine.lineDash;\n xCrosshairLine.lineDash = Array.isArray(lineDash)\n ? lineDash\n : getLineDash(xCrosshairLine.lineCap, xLine.lineDash);\n xCrosshairLine.translationX = highlightedDatum.point.x;\n };\n LineSparkline.prototype.updateYCrosshairLine = function () {\n var _a;\n var _b = this, xScale = _b.xScale, yCrosshairLine = _b.yCrosshairLine, highlightedDatum = _b.highlightedDatum, yLine = _b.crosshairs.yLine;\n if (!yLine.enabled || highlightedDatum == undefined) {\n yCrosshairLine.strokeWidth = 0;\n return;\n }\n yCrosshairLine.x1 = xScale.range[0];\n yCrosshairLine.x2 = xScale.range[1];\n yCrosshairLine.y1 = yCrosshairLine.y2 = 0;\n yCrosshairLine.stroke = yLine.stroke;\n yCrosshairLine.strokeWidth = (_a = yLine.strokeWidth) !== null && _a !== void 0 ? _a : 1;\n yCrosshairLine.lineCap = yLine.lineCap === 'round' || yLine.lineCap === 'square' ? yLine.lineCap : undefined;\n var lineDash = yLine.lineDash;\n yCrosshairLine.lineDash = Array.isArray(lineDash)\n ? lineDash\n : getLineDash(yCrosshairLine.lineCap, yLine.lineDash);\n yCrosshairLine.translationY = highlightedDatum.point.y;\n };\n LineSparkline.prototype.getTooltipHtml = function (datum) {\n var _a, _b;\n var dataType = this.dataType;\n var seriesDatum = datum.seriesDatum;\n var yValue = seriesDatum.y;\n var xValue = seriesDatum.x;\n var content = this.formatNumericDatum(yValue);\n var title = dataType === 'array' || dataType === 'object' ? this.formatDatum(xValue) : undefined;\n var defaults = {\n content: content,\n title: title,\n };\n var tooltipRenderer = (_b = (_a = this.processedOptions) === null || _a === void 0 ? void 0 : _a.tooltip) === null || _b === void 0 ? void 0 : _b.renderer;\n if (tooltipRenderer) {\n return toTooltipHtml(tooltipRenderer({\n context: this.context,\n datum: seriesDatum,\n yValue: yValue,\n xValue: xValue,\n }), defaults);\n }\n return toTooltipHtml(defaults);\n };\n LineSparkline.className = 'LineSparkline';\n return LineSparkline;\n}(Sparkline));\n\nvar Label = /** @class */ (function () {\n function Label() {\n this.enabled = true;\n this.fontSize = 8;\n this.fontFamily = 'Verdana, sans-serif';\n this.fontStyle = undefined;\n this.fontWeight = undefined;\n this.color = 'rgba(70, 70, 70, 1)';\n }\n return Label;\n}());\n\nvar __extends$4 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar extent = extent$4;\nvar BarColumnNodeTag;\n(function (BarColumnNodeTag) {\n BarColumnNodeTag[BarColumnNodeTag[\"Rect\"] = 0] = \"Rect\";\n BarColumnNodeTag[BarColumnNodeTag[\"Label\"] = 1] = \"Label\";\n})(BarColumnNodeTag || (BarColumnNodeTag = {}));\nvar BarColumnLabelPlacement;\n(function (BarColumnLabelPlacement) {\n BarColumnLabelPlacement[\"InsideBase\"] = \"insideBase\";\n BarColumnLabelPlacement[\"InsideEnd\"] = \"insideEnd\";\n BarColumnLabelPlacement[\"Center\"] = \"center\";\n BarColumnLabelPlacement[\"OutsideEnd\"] = \"outsideEnd\";\n})(BarColumnLabelPlacement || (BarColumnLabelPlacement = {}));\nvar BarColumnLabel = /** @class */ (function (_super) {\n __extends$4(BarColumnLabel, _super);\n function BarColumnLabel() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.formatter = undefined;\n _this.placement = BarColumnLabelPlacement.InsideEnd;\n return _this;\n }\n return BarColumnLabel;\n}(Label));\nvar BarColumnSparkline = /** @class */ (function (_super) {\n __extends$4(BarColumnSparkline, _super);\n function BarColumnSparkline() {\n var _this = _super.call(this) || this;\n _this.fill = 'rgb(124, 181, 236)';\n _this.stroke = 'silver';\n _this.strokeWidth = 0;\n _this.paddingInner = 0.1;\n _this.paddingOuter = 0.2;\n _this.valueAxisDomain = undefined;\n _this.formatter = undefined;\n _this.axisLine = new Line();\n _this.bandWidth = 0;\n _this.sparklineGroup = new Group();\n _this.rectGroup = new Group();\n _this.labelGroup = new Group();\n _this.rectSelection = Selection.select(_this.rectGroup, Rect);\n _this.labelSelection = Selection.select(_this.labelGroup, Text);\n _this.nodeSelectionData = [];\n _this.label = new BarColumnLabel();\n _this.rootGroup.append(_this.sparklineGroup);\n _this.rectGroup.zIndex = ZINDICIES.SERIES_FILL_ZINDEX;\n _this.axisLine.zIndex = ZINDICIES.AXIS_LINE_ZINDEX;\n _this.labelGroup.zIndex = ZINDICIES.SERIES_LABEL_ZINDEX;\n _this.sparklineGroup.append([_this.rectGroup, _this.axisLine, _this.labelGroup]);\n _this.axisLine.lineCap = 'round';\n _this.label.enabled = false;\n return _this;\n }\n BarColumnSparkline.prototype.getNodeData = function () {\n return this.nodeSelectionData;\n };\n BarColumnSparkline.prototype.update = function () {\n this.updateSelections();\n this.updateNodes();\n };\n BarColumnSparkline.prototype.updateSelections = function () {\n var nodeData = this.generateNodeData();\n if (!nodeData) {\n return;\n }\n this.nodeSelectionData = nodeData;\n this.updateRectSelection(nodeData);\n this.updateLabelSelection(nodeData);\n };\n BarColumnSparkline.prototype.updateNodes = function () {\n this.updateRectNodes();\n this.updateLabelNodes();\n };\n BarColumnSparkline.prototype.calculateStep = function (range) {\n var _a;\n var _b = this, xScale = _b.xScale, paddingInner = _b.paddingInner, paddingOuter = _b.paddingOuter, smallestInterval = _b.smallestInterval;\n // calculate step\n var domainLength = xScale.domain[1] - xScale.domain[0];\n var intervals = domainLength / ((_a = smallestInterval === null || smallestInterval === void 0 ? void 0 : smallestInterval.x) !== null && _a !== void 0 ? _a : 1) + 1;\n // The number of intervals/bands is used to determine the width of individual bands by dividing the available range.\n // Allow a maximum of 50 bands to ensure the step (width of individual bands + padding) does not fall below a certain number of pixels.\n // If the number of intervals exceeds 50, calculate the step for 50 bands within the given range.\n // This means there could be some overlap of the bands in the sparkline.\n var maxBands = 50;\n var bands = Math.min(intervals, maxBands);\n var gaps = bands - 1; // number of gaps (padding between bands)\n var step = range / Math.max(1, 2 * paddingOuter + gaps * paddingInner + bands); // step width is a combination of band width and gap width\n return step;\n };\n BarColumnSparkline.prototype.updateYScaleDomain = function () {\n var _a = this, yScale = _a.yScale, yData = _a.yData, valueAxisDomain = _a.valueAxisDomain;\n var yMinMax = extent(yData);\n var yMin = 0;\n var yMax = 1;\n if (yMinMax !== undefined) {\n yMin = this.min = yMinMax[0];\n yMax = this.max = yMinMax[1];\n }\n // if yMin is positive, set yMin to 0\n yMin = yMin < 0 ? yMin : 0;\n // if yMax is negative, set yMax to 0\n yMax = yMax < 0 ? 0 : yMax;\n if (valueAxisDomain) {\n if (valueAxisDomain[1] < yMax) {\n valueAxisDomain[1] = yMax;\n }\n if (valueAxisDomain[0] > yMin) {\n valueAxisDomain[0] = yMin;\n }\n }\n yScale.domain = valueAxisDomain ? valueAxisDomain : [yMin, yMax];\n };\n BarColumnSparkline.prototype.updateRectSelection = function (selectionData) {\n this.rectSelection.update(selectionData);\n };\n BarColumnSparkline.prototype.updateRectNodes = function () {\n var _this = this;\n var _a = this, highlightedDatum = _a.highlightedDatum, nodeFormatter = _a.formatter, fill = _a.fill, stroke = _a.stroke, strokeWidth = _a.strokeWidth;\n var _b = this.highlightStyle, highlightFill = _b.fill, highlightStroke = _b.stroke, highlightStrokeWidth = _b.strokeWidth;\n this.rectSelection.each(function (node, datum, index) {\n var highlighted = datum === highlightedDatum;\n var nodeFill = highlighted && highlightFill !== undefined ? highlightFill : fill;\n var nodeStroke = highlighted && highlightStroke !== undefined ? highlightStroke : stroke;\n var nodeStrokeWidth = highlighted && highlightStrokeWidth !== undefined ? highlightStrokeWidth : strokeWidth;\n var nodeFormat;\n var x = datum.x, y = datum.y, width = datum.width, height = datum.height, seriesDatum = datum.seriesDatum;\n if (nodeFormatter) {\n var first = index === 0;\n var last = index === _this.nodeSelectionData.length - 1;\n var min = seriesDatum.y === _this.min;\n var max = seriesDatum.y === _this.max;\n nodeFormat = nodeFormatter({\n datum: datum,\n xValue: seriesDatum.x,\n yValue: seriesDatum.y,\n width: width,\n height: height,\n min: min,\n max: max,\n first: first,\n last: last,\n fill: nodeFill,\n stroke: nodeStroke,\n strokeWidth: nodeStrokeWidth,\n highlighted: highlighted,\n });\n }\n node.fill = (nodeFormat && nodeFormat.fill) || nodeFill;\n node.stroke = (nodeFormat && nodeFormat.stroke) || nodeStroke;\n node.strokeWidth = (nodeFormat && nodeFormat.strokeWidth) || nodeStrokeWidth;\n node.x = node.y = 0;\n node.width = width;\n node.height = height;\n node.visible = node.height > 0;\n node.translationX = x;\n node.translationY = y;\n // shifts bars upwards?\n // node.crisp = true;\n });\n };\n BarColumnSparkline.prototype.updateLabelSelection = function (selectionData) {\n this.labelSelection.update(selectionData, function (text) {\n text.tag = BarColumnNodeTag.Label;\n text.pointerEvents = PointerEvents.None;\n });\n };\n BarColumnSparkline.prototype.updateLabelNodes = function () {\n var _a = this.label, labelEnabled = _a.enabled, fontStyle = _a.fontStyle, fontWeight = _a.fontWeight, fontSize = _a.fontSize, fontFamily = _a.fontFamily, color = _a.color;\n this.labelSelection.each(function (text, datum) {\n var label = datum.label;\n if (label && labelEnabled) {\n text.fontStyle = fontStyle;\n text.fontWeight = fontWeight;\n text.fontSize = fontSize;\n text.fontFamily = fontFamily;\n text.textAlign = label.textAlign;\n text.textBaseline = label.textBaseline;\n text.text = label.text;\n text.x = label.x;\n text.y = label.y;\n text.fill = color;\n text.visible = true;\n }\n else {\n text.visible = false;\n }\n });\n };\n BarColumnSparkline.prototype.getTooltipHtml = function (datum) {\n var _a, _b;\n var dataType = this.dataType;\n var seriesDatum = datum.seriesDatum;\n var yValue = seriesDatum.y;\n var xValue = seriesDatum.x;\n var content = this.formatNumericDatum(yValue);\n var title = dataType === 'array' || dataType === 'object' ? this.formatDatum(xValue) : undefined;\n var defaults = {\n content: content,\n title: title,\n };\n var tooltipRenderer = (_b = (_a = this.processedOptions) === null || _a === void 0 ? void 0 : _a.tooltip) === null || _b === void 0 ? void 0 : _b.renderer;\n if (tooltipRenderer) {\n return toTooltipHtml(tooltipRenderer({\n context: this.context,\n datum: seriesDatum,\n yValue: yValue,\n xValue: xValue,\n }), defaults);\n }\n return toTooltipHtml(defaults);\n };\n BarColumnSparkline.prototype.formatLabelValue = function (value) {\n return value % 1 !== 0 ? value.toFixed(1) : value.toFixed(0);\n };\n return BarColumnSparkline;\n}(Sparkline));\n\nvar __extends$3 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar isNumber$2 = isNumber$4;\nvar BandScale$1 = BandScale$5;\nvar BarSparkline = /** @class */ (function (_super) {\n __extends$3(BarSparkline, _super);\n function BarSparkline() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n BarSparkline.prototype.updateYScaleRange = function () {\n var _a = this, seriesRect = _a.seriesRect, yScale = _a.yScale;\n yScale.range = [0, seriesRect.width];\n };\n BarSparkline.prototype.updateXScaleRange = function () {\n var _a = this, xScale = _a.xScale, seriesRect = _a.seriesRect, paddingOuter = _a.paddingOuter, paddingInner = _a.paddingInner;\n if (xScale instanceof BandScale$1) {\n xScale.range = [0, seriesRect.height];\n xScale.paddingInner = paddingInner;\n xScale.paddingOuter = paddingOuter;\n }\n else {\n // last node will be clipped if the scale is not a band scale\n // subtract last band width from the range so that the last band is not clipped\n var step = this.calculateStep(seriesRect.height);\n // PaddingOuter and paddingInner are fractions of the step with values between 0 and 1\n var padding = step * paddingOuter; // left and right outer padding\n this.bandWidth = step * (1 - paddingInner);\n xScale.range = [padding, seriesRect.height - padding - this.bandWidth];\n }\n };\n BarSparkline.prototype.updateAxisLine = function () {\n var _a = this, yScale = _a.yScale, axis = _a.axis, axisLine = _a.axisLine, seriesRect = _a.seriesRect;\n var strokeWidth = axis.strokeWidth;\n axisLine.x1 = 0;\n axisLine.x2 = 0;\n axisLine.y1 = 0;\n axisLine.y2 = seriesRect.height;\n axisLine.stroke = axis.stroke;\n axisLine.strokeWidth = strokeWidth + (strokeWidth % 2 === 1 ? 1 : 0);\n var yZero = yScale.convert(0);\n axisLine.translationX = yZero;\n };\n BarSparkline.prototype.generateNodeData = function () {\n var _a = this, data = _a.data, yData = _a.yData, xData = _a.xData, xScale = _a.xScale, yScale = _a.yScale, fill = _a.fill, stroke = _a.stroke, strokeWidth = _a.strokeWidth, label = _a.label;\n if (!data) {\n return;\n }\n var labelFontStyle = label.fontStyle, labelFontWeight = label.fontWeight, labelFontSize = label.fontSize, labelFontFamily = label.fontFamily, labelColor = label.color, labelFormatter = label.formatter, labelPlacement = label.placement;\n var nodeData = [];\n var yZero = yScale.convert(0);\n var continuous = !(xScale instanceof BandScale$1);\n for (var i = 0, n = yData.length; i < n; i++) {\n var yDatum = yData[i];\n var xDatum = xData[i];\n var invalidDatum = yDatum === undefined;\n if (invalidDatum) {\n yDatum = 0;\n }\n var y = xScale.convert(continuous ? xScale.toDomain(xDatum) : xDatum);\n var x = Math.min(yDatum === undefined ? NaN : yScale.convert(yDatum), yZero);\n var bottom = Math.max(yDatum === undefined ? NaN : yScale.convert(yDatum), yZero);\n // if the scale is a band scale, the width of the rects will be the bandwidth, otherwise the width of the rects will be the range / number of items in the data\n var height = !continuous ? xScale.bandwidth : this.bandWidth;\n var width = bottom - x;\n var midPoint = {\n x: yZero,\n y: y,\n };\n var labelText = void 0;\n if (labelFormatter) {\n labelText = labelFormatter({ value: yDatum });\n }\n else {\n labelText = yDatum !== undefined && isNumber$2(yDatum) ? this.formatLabelValue(yDatum) : '';\n }\n var labelY = y + height / 2;\n var labelX = void 0;\n var labelTextBaseline = 'middle';\n var labelTextAlign = void 0;\n var isPositiveY = yDatum !== undefined && yDatum >= 0;\n var labelPadding = 4;\n if (labelPlacement === BarColumnLabelPlacement.Center) {\n labelX = x + width / 2;\n labelTextAlign = 'center';\n }\n else if (labelPlacement === BarColumnLabelPlacement.OutsideEnd) {\n labelX = x + (isPositiveY ? width + labelPadding : -labelPadding);\n labelTextAlign = isPositiveY ? 'start' : 'end';\n }\n else if (labelPlacement === BarColumnLabelPlacement.InsideEnd) {\n labelX = x + (isPositiveY ? width - labelPadding : labelPadding);\n labelTextAlign = isPositiveY ? 'end' : 'start';\n var textSize = HdpiCanvas.getTextSize(labelText, labelFontFamily);\n var textWidth = textSize.width || 20;\n var positiveBoundary = yZero + textWidth;\n var negativeBoundary = yZero - textWidth;\n var exceedsBoundaries = (isPositiveY && labelX < positiveBoundary) || (!isPositiveY && labelX > negativeBoundary);\n if (exceedsBoundaries) {\n // if labelX exceeds the boundary, labels should be positioned at `insideBase`.\n labelX = yZero + labelPadding * (isPositiveY ? 1 : -1);\n labelTextAlign = isPositiveY ? 'start' : 'end';\n }\n }\n else {\n // if labelPlacement === BarColumnLabelPlacement.InsideBase\n labelX = yZero + labelPadding * (isPositiveY ? 1 : -1);\n labelTextAlign = isPositiveY ? 'start' : 'end';\n }\n nodeData.push({\n x: x,\n y: y,\n width: width,\n height: height,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n seriesDatum: { x: xDatum, y: invalidDatum ? undefined : yDatum },\n point: midPoint,\n label: {\n x: labelX,\n y: labelY,\n text: labelText,\n fontStyle: labelFontStyle,\n fontWeight: labelFontWeight,\n fontSize: labelFontSize,\n fontFamily: labelFontFamily,\n textAlign: labelTextAlign,\n textBaseline: labelTextBaseline,\n fill: labelColor,\n },\n });\n }\n return nodeData;\n };\n BarSparkline.prototype.getDistance = function (p1, p2) {\n return Math.abs(p1.y - p2.y);\n };\n BarSparkline.className = 'BarSparkline';\n return BarSparkline;\n}(BarColumnSparkline));\n\nvar __extends$2 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar isNumber$1 = isNumber$4;\nvar BandScale = BandScale$5;\nvar ColumnSparkline = /** @class */ (function (_super) {\n __extends$2(ColumnSparkline, _super);\n function ColumnSparkline() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n ColumnSparkline.prototype.updateYScaleRange = function () {\n var _a = this, seriesRect = _a.seriesRect, yScale = _a.yScale;\n yScale.range = [seriesRect.height, 0];\n };\n ColumnSparkline.prototype.updateXScaleRange = function () {\n var _a = this, xScale = _a.xScale, seriesRect = _a.seriesRect, paddingOuter = _a.paddingOuter, paddingInner = _a.paddingInner;\n if (xScale instanceof BandScale) {\n xScale.range = [0, seriesRect.width];\n xScale.paddingInner = paddingInner;\n xScale.paddingOuter = paddingOuter;\n }\n else {\n // last node will be clipped if the scale is not a band scale\n // subtract last band width from the range so that the last band is not clipped\n var step = this.calculateStep(seriesRect.width);\n // PaddingOuter and paddingInner are fractions of the step with values between 0 and 1\n var padding = step * paddingOuter; // left and right outer padding\n this.bandWidth = step * (1 - paddingInner);\n xScale.range = [padding, seriesRect.width - padding - this.bandWidth];\n }\n };\n ColumnSparkline.prototype.updateAxisLine = function () {\n var _a = this, yScale = _a.yScale, axis = _a.axis, axisLine = _a.axisLine, seriesRect = _a.seriesRect;\n var strokeWidth = axis.strokeWidth;\n axisLine.x1 = 0;\n axisLine.x2 = seriesRect.width;\n axisLine.y1 = 0;\n axisLine.y2 = 0;\n axisLine.stroke = axis.stroke;\n axisLine.strokeWidth = strokeWidth + (strokeWidth % 2 === 1 ? 1 : 0);\n var yZero = yScale.convert(0);\n axisLine.translationY = yZero;\n };\n ColumnSparkline.prototype.generateNodeData = function () {\n var _a = this, data = _a.data, yData = _a.yData, xData = _a.xData, xScale = _a.xScale, yScale = _a.yScale, fill = _a.fill, stroke = _a.stroke, strokeWidth = _a.strokeWidth, label = _a.label;\n if (!data) {\n return;\n }\n var labelFontStyle = label.fontStyle, labelFontWeight = label.fontWeight, labelFontSize = label.fontSize, labelFontFamily = label.fontFamily, labelColor = label.color, labelFormatter = label.formatter, labelPlacement = label.placement;\n var nodeData = [];\n var yZero = yScale.convert(0);\n var continuous = !(xScale instanceof BandScale);\n for (var i = 0, n = yData.length; i < n; i++) {\n var yDatum = yData[i];\n var xDatum = xData[i];\n var invalidDatum = yDatum === undefined;\n if (invalidDatum) {\n yDatum = 0;\n }\n var y = Math.min(yDatum === undefined ? NaN : yScale.convert(yDatum), yZero);\n var x = xScale.convert(continuous ? xScale.toDomain(xDatum) : xDatum);\n var bottom = Math.max(yDatum === undefined ? NaN : yScale.convert(yDatum), yZero);\n // if the scale is a band scale, the width of the rects will be the bandwidth, otherwise the width of the rects will be the range / number of items in the data\n var width = !continuous ? xScale.bandwidth : this.bandWidth;\n var height = bottom - y;\n var midPoint = {\n x: x + width / 2,\n y: yZero,\n };\n var labelText = void 0;\n if (labelFormatter) {\n labelText = labelFormatter({ value: yDatum });\n }\n else {\n labelText = yDatum !== undefined && isNumber$1(yDatum) ? this.formatLabelValue(yDatum) : '';\n }\n var labelX = x + width / 2;\n var labelY = void 0;\n var labelTextAlign = 'center';\n var labelTextBaseline = void 0;\n var isPositiveY = yDatum !== undefined && yDatum >= 0;\n var labelPadding = 2;\n if (labelPlacement === BarColumnLabelPlacement.Center) {\n labelY = y + height / 2;\n labelTextBaseline = 'middle';\n }\n else if (labelPlacement === BarColumnLabelPlacement.OutsideEnd) {\n labelY = y + (isPositiveY ? -labelPadding : height + labelPadding);\n labelTextBaseline = isPositiveY ? 'bottom' : 'top';\n }\n else if (labelPlacement === BarColumnLabelPlacement.InsideEnd) {\n labelY = y + (isPositiveY ? labelPadding : height - labelPadding);\n labelTextBaseline = isPositiveY ? 'top' : 'bottom';\n var textSize = HdpiCanvas.getTextSize(labelText, labelFontFamily);\n var textHeight = textSize.height || 10;\n var positiveBoundary = yZero - textHeight;\n var negativeBoundary = yZero + textHeight;\n var exceedsBoundaries = (isPositiveY && labelY > positiveBoundary) || (!isPositiveY && labelY < negativeBoundary);\n if (exceedsBoundaries) {\n // if labelY exceeds the y boundary, labels should be positioned at the insideBase\n labelY = yZero + labelPadding * (isPositiveY ? -1 : 1);\n labelTextBaseline = isPositiveY ? 'bottom' : 'top';\n }\n }\n else {\n // if labelPlacement === BarColumnLabelPlacement.InsideBase\n labelY = yZero + labelPadding * (isPositiveY ? -1 : 1);\n labelTextBaseline = isPositiveY ? 'bottom' : 'top';\n }\n nodeData.push({\n x: x,\n y: y,\n width: width,\n height: height,\n fill: fill,\n stroke: stroke,\n strokeWidth: strokeWidth,\n seriesDatum: { x: xDatum, y: invalidDatum ? undefined : yDatum },\n point: midPoint,\n label: {\n x: labelX,\n y: labelY,\n text: labelText,\n fontStyle: labelFontStyle,\n fontWeight: labelFontWeight,\n fontSize: labelFontSize,\n fontFamily: labelFontFamily,\n textAlign: labelTextAlign,\n textBaseline: labelTextBaseline,\n fill: labelColor,\n },\n });\n }\n return nodeData;\n };\n ColumnSparkline.className = 'ColumnSparkline';\n return ColumnSparkline;\n}(BarColumnSparkline));\n\nvar isNumber = isNumber$4;\nvar AgSparkline = /** @class */ (function () {\n function AgSparkline() {\n }\n AgSparkline.create = function (options, tooltip) {\n // avoid mutating user provided options\n options = jsonMerge([options]);\n var sparkline = getSparklineInstance(options.type);\n if (tooltip) {\n sparkline.tooltip = tooltip;\n }\n initSparkline(sparkline, options);\n initSparklineByType(sparkline, options);\n if (options.data) {\n sparkline.data = options.data;\n }\n sparkline.processedOptions = options;\n return sparkline;\n };\n return AgSparkline;\n}());\nfunction getSparklineInstance(type) {\n if (type === void 0) { type = 'line'; }\n switch (type) {\n case 'column':\n return new ColumnSparkline();\n case 'bar':\n return new BarSparkline();\n case 'area':\n return new AreaSparkline();\n case 'line':\n default:\n return new LineSparkline();\n }\n}\nfunction initSparklineByType(sparkline, options) {\n switch (options.type) {\n case 'bar':\n initBarColumnSparkline(sparkline, options);\n break;\n case 'column':\n initBarColumnSparkline(sparkline, options);\n break;\n case 'area':\n initAreaSparkline(sparkline, options);\n break;\n case 'line':\n default:\n initLineSparkline(sparkline, options);\n break;\n }\n}\nfunction initSparkline(sparkline, options) {\n setValueIfPropertyExists(sparkline, 'context', options.context, options);\n setValueIfPropertyExists(sparkline, 'width', options.width, options);\n setValueIfPropertyExists(sparkline, 'height', options.height, options);\n setValueIfPropertyExists(sparkline, 'container', options.container, options);\n setValueIfPropertyExists(sparkline, 'xKey', options.xKey, options);\n setValueIfPropertyExists(sparkline, 'yKey', options.yKey, options);\n if (options.padding) {\n initPaddingOptions(sparkline.padding, options.padding);\n }\n if (options.axis) {\n initAxisOptions(sparkline.axis, options.axis);\n }\n if (options.highlightStyle) {\n initHighlightStyleOptions(sparkline.highlightStyle, options.highlightStyle);\n }\n}\nfunction initLineSparkline(sparkline, options) {\n if (options.marker) {\n initMarkerOptions(sparkline.marker, options.marker);\n }\n if (options.line) {\n initLineOptions(sparkline.line, options.line);\n }\n if (options.crosshairs) {\n initCrosshairsOptions(sparkline.crosshairs, options.crosshairs);\n }\n}\nfunction initAreaSparkline(sparkline, options) {\n setValueIfPropertyExists(sparkline, 'fill', options.fill, options);\n if (options.marker) {\n initMarkerOptions(sparkline.marker, options.marker);\n }\n if (options.line) {\n initLineOptions(sparkline.line, options.line);\n }\n if (options.crosshairs) {\n initCrosshairsOptions(sparkline.crosshairs, options.crosshairs);\n }\n}\nfunction initBarColumnSparkline(sparkline, options) {\n setValueIfPropertyExists(sparkline, 'valueAxisDomain', options.valueAxisDomain, options);\n setValueIfPropertyExists(sparkline, 'fill', options.fill, options);\n setValueIfPropertyExists(sparkline, 'stroke', options.stroke, options);\n setValueIfPropertyExists(sparkline, 'strokeWidth', options.strokeWidth, options);\n setValueIfPropertyExists(sparkline, 'paddingInner', options.paddingInner, options);\n setValueIfPropertyExists(sparkline, 'paddingOuter', options.paddingOuter, options);\n setValueIfPropertyExists(sparkline, 'formatter', options.formatter, options);\n if (options.label) {\n initLabelOptions(sparkline.label, options.label);\n }\n}\nfunction initPaddingOptions(target, options) {\n setValueIfPropertyExists(target, 'top', options.top, options);\n setValueIfPropertyExists(target, 'right', options.right, options);\n setValueIfPropertyExists(target, 'bottom', options.bottom, options);\n setValueIfPropertyExists(target, 'left', options.left, options);\n}\nfunction initMarkerOptions(target, options) {\n setValueIfPropertyExists(target, 'enabled', options.enabled, options);\n setValueIfPropertyExists(target, 'size', options.size, options);\n setValueIfPropertyExists(target, 'shape', options.shape, options);\n setValueIfPropertyExists(target, 'fill', options.fill, options);\n setValueIfPropertyExists(target, 'stroke', options.stroke, options);\n setValueIfPropertyExists(target, 'strokeWidth', options.strokeWidth, options);\n setValueIfPropertyExists(target, 'formatter', options.formatter, options);\n}\nfunction initLabelOptions(target, options) {\n setValueIfPropertyExists(target, 'enabled', options.enabled, options);\n setValueIfPropertyExists(target, 'fontStyle', options.fontStyle, options);\n setValueIfPropertyExists(target, 'fontWeight', options.fontWeight, options);\n setValueIfPropertyExists(target, 'fontSize', options.fontSize, options);\n setValueIfPropertyExists(target, 'fontFamily', options.fontFamily, options);\n setValueIfPropertyExists(target, 'textAlign', options.textAlign, options);\n setValueIfPropertyExists(target, 'textBaseline', options.textBaseline, options);\n setValueIfPropertyExists(target, 'color', options.color, options);\n setValueIfPropertyExists(target, 'formatter', options.formatter, options);\n setValueIfPropertyExists(target, 'placement', options.placement, options);\n}\nfunction initLineOptions(target, options) {\n setValueIfPropertyExists(target, 'stroke', options.stroke, options);\n setValueIfPropertyExists(target, 'strokeWidth', options.strokeWidth, options);\n}\nfunction initAxisOptions(target, options) {\n setValueIfPropertyExists(target, 'type', options.type, options);\n setValueIfPropertyExists(target, 'stroke', options.stroke, options);\n setValueIfPropertyExists(target, 'strokeWidth', options.strokeWidth, options);\n}\nfunction initHighlightStyleOptions(target, options) {\n setValueIfPropertyExists(target, 'fill', options.fill, options);\n setValueIfPropertyExists(target, 'size', options.size, options);\n setValueIfPropertyExists(target, 'stroke', options.stroke, options);\n setValueIfPropertyExists(target, 'strokeWidth', options.strokeWidth, options);\n}\nfunction initCrosshairsOptions(target, options) {\n if (target.xLine && options.xLine) {\n initCrosshairLineOptions(target.xLine, options.xLine);\n }\n if (target.yLine && options.yLine) {\n initCrosshairLineOptions(target.yLine, options.yLine);\n }\n}\nfunction initCrosshairLineOptions(target, options) {\n setValueIfPropertyExists(target, 'enabled', options.enabled, options);\n setValueIfPropertyExists(target, 'stroke', options.stroke, options);\n setValueIfPropertyExists(target, 'strokeWidth', options.strokeWidth, options);\n setValueIfPropertyExists(target, 'lineDash', options.lineDash, options);\n setValueIfPropertyExists(target, 'lineCap', options.lineCap, options);\n}\nvar doOnceFlags = {};\n/**\n * If the key was passed before, then doesn't execute the func\n * @param {Function} func\n * @param {string} key\n */\nfunction doOnce(func, key) {\n if (doOnceFlags[key]) {\n return;\n }\n func();\n doOnceFlags[key] = true;\n}\nvar offsetValidator = function (property, value, defaultOffset) {\n if (isNumber(value)) {\n return true;\n }\n var message = \"AG Charts: \" + property + \" must be a number, the value you provided is not a valid number. Using the default of \" + defaultOffset + \"px.\";\n doOnce(function () { return console.warn(message); }, property + \" not a number\");\n return false;\n};\nvar validators = {\n xOffset: offsetValidator,\n yOffset: offsetValidator,\n};\nfunction setValueIfPropertyExists(target, property, value, options) {\n if (property in options) {\n if (property in target) {\n var validator = validators[property];\n var isValid = validator ? validator(property, value, target[property]) : true;\n if (isValid && target[property] !== value) {\n // only set property if the value is different to new value\n target[property] = value;\n }\n }\n else {\n console.warn(\"Property \" + property + \" does not exist on the target object.\");\n }\n }\n}\n\nvar __extends$1 = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (undefined && undefined.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __decorate$1 = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\nvar SparklineCellRenderer = /** @class */ (function (_super) {\n __extends$1(SparklineCellRenderer, _super);\n function SparklineCellRenderer() {\n return _super.call(this, SparklineCellRenderer.TEMPLATE) || this;\n }\n SparklineCellRenderer.prototype.init = function (params) {\n var _this = this;\n var firstTimeIn = true;\n var updateSparkline = function () {\n var _a = _this.getGui(), clientWidth = _a.clientWidth, clientHeight = _a.clientHeight;\n if (clientWidth === 0 || clientHeight === 0) {\n return;\n }\n if (firstTimeIn) {\n var options = __assign({ data: params.value, width: clientWidth, height: clientHeight, context: {\n data: params.data,\n } }, params.sparklineOptions);\n // create new instance of sparkline\n _this.sparkline = AgSparkline.create(options, _this.sparklineTooltipSingleton.getSparklineTooltip());\n // append sparkline canvas to cell renderer element\n _this.eSparkline.appendChild(_this.sparkline.canvasElement);\n firstTimeIn = false;\n }\n else {\n _this.sparkline.width = clientWidth;\n _this.sparkline.height = clientHeight;\n }\n };\n var unsubscribeFromResize = this.resizeObserverService.observeResize(this.getGui(), updateSparkline);\n this.addDestroyFunc(function () { return unsubscribeFromResize(); });\n };\n SparklineCellRenderer.prototype.refresh = function (params) {\n if (this.sparkline) {\n this.sparkline.data = params.value;\n return true;\n }\n return false;\n };\n SparklineCellRenderer.prototype.destroy = function () {\n if (this.sparkline) {\n this.sparkline.destroy();\n }\n _super.prototype.destroy.call(this);\n };\n SparklineCellRenderer.TEMPLATE /* html */ = \"
\\n \\n
\";\n __decorate$1([\n RefSelector('eSparkline')\n ], SparklineCellRenderer.prototype, \"eSparkline\", void 0);\n __decorate$1([\n Autowired('resizeObserverService')\n ], SparklineCellRenderer.prototype, \"resizeObserverService\", void 0);\n __decorate$1([\n Autowired('sparklineTooltipSingleton')\n ], SparklineCellRenderer.prototype, \"sparklineTooltipSingleton\", void 0);\n return SparklineCellRenderer;\n}(Component));\n\nvar __extends = (undefined && undefined.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n};\n/**\n * This 'bean' creates a single sparkline tooltip that is bound to the grid lifecycle.\n */\nvar SparklineTooltipSingleton = /** @class */ (function (_super) {\n __extends(SparklineTooltipSingleton, _super);\n function SparklineTooltipSingleton() {\n return _super !== null && _super.apply(this, arguments) || this;\n }\n SparklineTooltipSingleton.prototype.postConstruct = function () {\n this.tooltip = new SparklineTooltip();\n };\n SparklineTooltipSingleton.prototype.getSparklineTooltip = function () {\n return this.tooltip;\n };\n SparklineTooltipSingleton.prototype.destroyTooltip = function () {\n if (this.tooltip) {\n this.tooltip.destroy();\n }\n };\n __decorate([\n PostConstruct\n ], SparklineTooltipSingleton.prototype, \"postConstruct\", null);\n __decorate([\n PreDestroy\n ], SparklineTooltipSingleton.prototype, \"destroyTooltip\", null);\n SparklineTooltipSingleton = __decorate([\n Bean('sparklineTooltipSingleton')\n ], SparklineTooltipSingleton);\n return SparklineTooltipSingleton;\n}(BeanStub));\n\n// DO NOT UPDATE MANUALLY: Generated from script during build time\nvar VERSION = '30.2.0';\n\nvar SparklinesModule = {\n version: VERSION,\n moduleName: ModuleNames.SparklinesModule,\n beans: [SparklineTooltipSingleton],\n userComponents: [{ componentName: 'agSparklineCellRenderer', componentClass: SparklineCellRenderer }],\n dependantModules: [EnterpriseCoreModule],\n};\n\nconst AllEnterpriseModules = [\n AdvancedFilterModule,\n ClipboardModule,\n ColumnsToolPanelModule,\n ExcelExportModule,\n FiltersToolPanelModule,\n GridChartsModule,\n MasterDetailModule,\n MenuModule,\n MultiFilterModule,\n RangeSelectionModule,\n RichSelectModule,\n RowGroupingModule,\n ServerSideRowModelModule,\n SetFilterModule,\n SideBarModule,\n StatusBarModule,\n ViewportRowModelModule,\n SparklinesModule\n];\nconst AllModules = AllCommunityModules.concat(AllEnterpriseModules);\n\nModuleRegistry.registerModules(AllEnterpriseModules);\n\nexport { AdvancedFilterModule, AllEnterpriseModules, AllModules, ClipboardModule, ColumnsToolPanelModule, EnterpriseCoreModule, ExcelExportModule, FiltersToolPanelModule, GridChartsModule, GridLicenseManager as LicenseManager, MasterDetailModule, MenuModule, MultiFilter, MultiFilterModule, PivotDropZonePanel, PrimaryColsPanel, RangeSelectionModule, RichSelectModule, RowGroupDropZonePanel, RowGroupingModule, ServerSideRowModelModule, SetFilter, SetFilterModule, SideBarModule, SparklinesModule, StatusBarModule, ToolPanelColDefService, ValuesDropZonePanel, ViewportRowModelModule, __FORCE_MODULE_DETECTION_AG_GRID_CORE_EXT, agCharts, exportMultipleSheetsAsExcel, getMultipleSheetsAsExcel };\n","// ag-grid-react v30.2.0\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AgGridReact = void 0;\nvar react_1 = __importStar(require(\"react\"));\nvar agGridReactLegacy_1 = require(\"./legacy/agGridReactLegacy\");\nvar agGridReactUi_1 = require(\"./reactUi/agGridReactUi\");\nvar AgGridReact = /** @class */ (function (_super) {\n __extends(AgGridReact, _super);\n function AgGridReact() {\n var _this = _super !== null && _super.apply(this, arguments) || this;\n _this.setGridApi = function (api, columnApi) {\n _this.api = api;\n _this.columnApi = columnApi;\n };\n return _this;\n }\n AgGridReact.prototype.render = function () {\n var ReactComponentToUse = this.props.suppressReactUi ?\n react_1.default.createElement(agGridReactLegacy_1.AgGridReactLegacy, __assign({}, this.props, { setGridApi: this.setGridApi }))\n : react_1.default.createElement(agGridReactUi_1.AgGridReactUi, __assign({}, this.props, { setGridApi: this.setGridApi }));\n return ReactComponentToUse;\n };\n return AgGridReact;\n}(react_1.Component));\nexports.AgGridReact = AgGridReact;\n","// ag-grid-react v30.2.0\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AgGridReactLegacy = void 0;\nvar ag_grid_community_1 = require(\"ag-grid-community\");\nvar prop_types_1 = __importDefault(require(\"prop-types\"));\nvar react_1 = __importStar(require(\"react\"));\nvar legacyReactComponent_1 = require(\"./legacyReactComponent\");\nvar newReactComponent_1 = require(\"../shared/newReactComponent\");\nvar portalManager_1 = require(\"../shared/portalManager\");\nvar reactFrameworkOverrides_1 = require(\"../shared/reactFrameworkOverrides\");\nvar AgGridReactLegacy = /** @class */ (function (_super) {\n __extends(AgGridReactLegacy, _super);\n function AgGridReactLegacy(props) {\n var _this = _super.call(this, props) || this;\n _this.props = props;\n _this.api = null;\n _this.destroyed = false;\n _this.SYNCHRONOUS_CHANGE_PROPERTIES = ['context'];\n _this.portalManager = new portalManager_1.LegacyPortalManager(_this, props.componentWrappingElement, props.maxComponentCreationTimeMs);\n return _this;\n }\n AgGridReactLegacy.prototype.render = function () {\n var _this = this;\n return react_1.default.createElement('div', {\n style: this.createStyleForDiv(),\n className: this.props.className,\n ref: function (e) {\n _this.eGridDiv = e;\n }\n }, this.portalManager.getPortals());\n };\n AgGridReactLegacy.prototype.createStyleForDiv = function () {\n return __assign({ height: '100%' }, (this.props.containerStyle || {}));\n };\n AgGridReactLegacy.prototype.componentDidMount = function () {\n var modules = this.props.modules || [];\n var gridParams = {\n providedBeanInstances: {\n agGridReact: this,\n frameworkComponentWrapper: new ReactFrameworkComponentWrapper(this, this.portalManager)\n },\n modules: modules,\n frameworkOverrides: new reactFrameworkOverrides_1.ReactFrameworkOverrides(false)\n };\n var gridOptions = this.props.gridOptions || {};\n this.gridOptions = ag_grid_community_1.ComponentUtil.copyAttributesToGridOptions(gridOptions, this.props);\n this.checkForDeprecations(this.props);\n // don't need the return value\n new ag_grid_community_1.Grid(this.eGridDiv, this.gridOptions, gridParams);\n this.api = this.gridOptions.api;\n this.columnApi = this.gridOptions.columnApi;\n this.props.setGridApi(this.api, this.columnApi);\n };\n AgGridReactLegacy.prototype.checkForDeprecations = function (props) {\n if (props.rowDataChangeDetectionStrategy) {\n ag_grid_community_1._.doOnce(function () { return console.warn('AG Grid: Since v29 rowDataChangeDetectionStrategy has been deprecated. Row data property changes will be compared by reference via triple equals ===. See https://ag-grid.com/react-data-grid/react-hooks/'); }, 'rowDataChangeDetectionStrategy_Deprecation');\n }\n };\n AgGridReactLegacy.prototype.shouldComponentUpdate = function (nextProps) {\n this.processPropsChanges(this.props, nextProps);\n // we want full control of the dom, as AG Grid doesn't use React internally,\n // so for performance reasons we tell React we don't need render called after\n // property changes.\n return false;\n };\n AgGridReactLegacy.prototype.componentDidUpdate = function (prevProps) {\n this.processPropsChanges(prevProps, this.props);\n };\n AgGridReactLegacy.prototype.processPropsChanges = function (prevProps, nextProps) {\n var changes = {};\n this.extractGridPropertyChanges(prevProps, nextProps, changes);\n this.processSynchronousChanges(changes);\n this.processAsynchronousChanges(changes);\n };\n AgGridReactLegacy.prototype.extractGridPropertyChanges = function (prevProps, nextProps, changes) {\n var debugLogging = !!nextProps.debug;\n Object.keys(nextProps).forEach(function (propKey) {\n if (ag_grid_community_1.ComponentUtil.ALL_PROPERTIES_SET.has(propKey)) {\n if (prevProps[propKey] !== nextProps[propKey]) {\n if (debugLogging) {\n console.log(\"agGridReact: [\" + propKey + \"] property changed\");\n }\n changes[propKey] = {\n previousValue: prevProps[propKey],\n currentValue: nextProps[propKey]\n };\n }\n }\n });\n ag_grid_community_1.ComponentUtil.EVENT_CALLBACKS.forEach(function (funcName) {\n if (prevProps[funcName] !== nextProps[funcName]) {\n if (debugLogging) {\n console.log(\"agGridReact: [\" + funcName + \"] event callback changed\");\n }\n changes[funcName] = {\n previousValue: prevProps[funcName],\n currentValue: nextProps[funcName]\n };\n }\n });\n };\n AgGridReactLegacy.prototype.componentWillUnmount = function () {\n if (this.api) {\n this.api.destroy();\n this.api = null;\n }\n this.destroyed = true;\n this.portalManager.destroy();\n };\n AgGridReactLegacy.prototype.isDisableStaticMarkup = function () {\n return this.props.disableStaticMarkup === true;\n };\n AgGridReactLegacy.prototype.isLegacyComponentRendering = function () {\n return this.props.legacyComponentRendering === true;\n };\n AgGridReactLegacy.prototype.processSynchronousChanges = function (changes) {\n var asyncChanges = __assign({}, changes);\n if (Object.keys(asyncChanges).length > 0) {\n var synchronousChanges_1 = {};\n this.SYNCHRONOUS_CHANGE_PROPERTIES.forEach(function (synchronousChangeProperty) {\n if (asyncChanges[synchronousChangeProperty]) {\n synchronousChanges_1[synchronousChangeProperty] = asyncChanges[synchronousChangeProperty];\n delete asyncChanges[synchronousChangeProperty];\n }\n });\n if (Object.keys(synchronousChanges_1).length > 0 && !!this.api) {\n ag_grid_community_1.ComponentUtil.processOnChange(synchronousChanges_1, this.api);\n }\n }\n return asyncChanges;\n };\n AgGridReactLegacy.prototype.processAsynchronousChanges = function (changes) {\n var _this = this;\n if (Object.keys(changes).length > 0) {\n window.setTimeout(function () {\n // destroyed?\n if (_this.api) {\n ag_grid_community_1.ComponentUtil.processOnChange(changes, _this.api);\n }\n });\n }\n };\n AgGridReactLegacy.MAX_COMPONENT_CREATION_TIME_IN_MS = 1000; // a second should be more than enough to instantiate a component\n AgGridReactLegacy.defaultProps = {\n legacyComponentRendering: false,\n disableStaticMarkup: false,\n maxComponentCreationTimeMs: AgGridReactLegacy.MAX_COMPONENT_CREATION_TIME_IN_MS\n };\n return AgGridReactLegacy;\n}(react_1.Component));\nexports.AgGridReactLegacy = AgGridReactLegacy;\nAgGridReactLegacy.propTypes = {\n gridOptions: prop_types_1.default.object\n};\naddProperties(ag_grid_community_1.ComponentUtil.EVENT_CALLBACKS, prop_types_1.default.func);\naddProperties(ag_grid_community_1.ComponentUtil.BOOLEAN_PROPERTIES, prop_types_1.default.bool);\naddProperties(ag_grid_community_1.ComponentUtil.STRING_PROPERTIES, prop_types_1.default.string);\naddProperties(ag_grid_community_1.ComponentUtil.OBJECT_PROPERTIES, prop_types_1.default.object);\naddProperties(ag_grid_community_1.ComponentUtil.ARRAY_PROPERTIES, prop_types_1.default.array);\naddProperties(ag_grid_community_1.ComponentUtil.NUMBER_PROPERTIES, prop_types_1.default.number);\naddProperties(ag_grid_community_1.ComponentUtil.FUNCTION_PROPERTIES, prop_types_1.default.func);\nfunction addProperties(listOfProps, propType) {\n listOfProps.forEach(function (propKey) {\n AgGridReactLegacy[propKey] = propType;\n });\n}\nvar ReactFrameworkComponentWrapper = /** @class */ (function (_super) {\n __extends(ReactFrameworkComponentWrapper, _super);\n function ReactFrameworkComponentWrapper(agGridReact, portalManager) {\n var _this = _super.call(this) || this;\n _this.agGridReact = agGridReact;\n _this.portalManager = portalManager;\n return _this;\n }\n ReactFrameworkComponentWrapper.prototype.createWrapper = function (UserReactComponent, componentType) {\n if (this.agGridReact.isLegacyComponentRendering()) {\n return new legacyReactComponent_1.LegacyReactComponent(UserReactComponent, this.agGridReact, this.portalManager, componentType);\n }\n else {\n return new newReactComponent_1.NewReactComponent(UserReactComponent, this.portalManager, componentType);\n }\n };\n return ReactFrameworkComponentWrapper;\n}(ag_grid_community_1.BaseComponentWrapper));\n","// ag-grid-react v30.2.0\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.LegacyReactComponent = void 0;\nvar react_1 = require(\"react\");\nvar react_dom_1 = require(\"react-dom\");\nvar ag_grid_community_1 = require(\"ag-grid-community\");\nvar reactComponent_1 = require(\"../shared/reactComponent\");\nvar server_1 = require(\"react-dom/server\");\nvar keyGenerator_1 = __importDefault(require(\"../shared/keyGenerator\"));\nvar LegacyReactComponent = /** @class */ (function (_super) {\n __extends(LegacyReactComponent, _super);\n function LegacyReactComponent(reactComponent, parentComponent, portalManager, componentType) {\n var _this = _super.call(this, reactComponent, portalManager, componentType) || this;\n _this.staticMarkup = null;\n _this.staticRenderTime = 0;\n _this.parentComponent = parentComponent;\n return _this;\n }\n LegacyReactComponent.prototype.init = function (params) {\n var _this = this;\n this.eParentElement = this.createParentElement(params);\n this.renderStaticMarkup(params);\n return new ag_grid_community_1.AgPromise(function (resolve) { return _this.createReactComponent(params, resolve); });\n };\n LegacyReactComponent.prototype.createReactComponent = function (params, resolve) {\n var _this = this;\n // regular components (ie not functional)\n if (!this.isStatelessComponent()) {\n // grab hold of the actual instance created\n params.ref = function (element) {\n _this.componentInstance = element;\n _this.addParentContainerStyleAndClasses();\n _this.removeStaticMarkup();\n };\n }\n var reactComponent = react_1.createElement(this.reactComponent, params);\n var portal = react_dom_1.createPortal(reactComponent, this.eParentElement, keyGenerator_1.default() // fixed deltaRowModeRefreshCompRenderer\n );\n this.portal = portal;\n this.portalManager.mountReactPortal(portal, this, function (value) {\n resolve(value);\n // functional/stateless components have a slightly different lifecycle (no refs) so we'll clean them up\n // here\n if (_this.isStatelessComponent()) {\n if (_this.isSlowRenderer()) {\n _this.removeStaticMarkup();\n }\n setTimeout(function () {\n _this.removeStaticMarkup();\n });\n }\n });\n };\n LegacyReactComponent.prototype.fallbackMethodAvailable = function (name) {\n return false;\n };\n LegacyReactComponent.prototype.fallbackMethod = function (name, params) { };\n LegacyReactComponent.prototype.isSlowRenderer = function () {\n return this.staticRenderTime >= LegacyReactComponent.SLOW_RENDERING_THRESHOLD;\n };\n LegacyReactComponent.prototype.isNullValue = function () {\n return this.staticMarkup === '';\n };\n /*\n * Attempt to render the component as static markup if possible\n * What this does is eliminate any visible flicker for the user in the scenario where a component is destroyed and\n * recreated with exactly the same data (ie with force refresh)\n * Note: Some use cases will throw an error (ie when using Context) so if an error occurs just ignore it any move on\n */\n LegacyReactComponent.prototype.renderStaticMarkup = function (params) {\n if (this.parentComponent.isDisableStaticMarkup() || !this.componentType.cellRenderer) {\n return;\n }\n var originalConsoleError = console.error;\n var reactComponent = react_1.createElement(this.reactComponent, params);\n try {\n // if a user is doing anything that uses useLayoutEffect (like material ui) then it will throw and we\n // can't do anything to stop it; this is just a warning and has no effect on anything so just suppress it\n // for this single operation\n console.error = function () {\n };\n var start = Date.now();\n var staticMarkup = server_1.renderToStaticMarkup(reactComponent);\n this.staticRenderTime = Date.now() - start;\n console.error = originalConsoleError;\n // if the render method returns null the result will be an empty string\n if (staticMarkup === '') {\n this.staticMarkup = staticMarkup;\n }\n else {\n if (staticMarkup) {\n // we wrap the content as if there is \"trailing\" text etc it's not easy to safely remove\n // the same is true for memoized renderers, renderers that that return simple strings or NaN etc\n this.staticMarkup = document.createElement('span');\n this.staticMarkup.innerHTML = staticMarkup;\n this.eParentElement.appendChild(this.staticMarkup);\n }\n }\n }\n catch (e) {\n // we tried - this can happen with certain (rare) edge cases\n }\n finally {\n console.error = originalConsoleError;\n }\n };\n LegacyReactComponent.prototype.removeStaticMarkup = function () {\n if (this.parentComponent.isDisableStaticMarkup() || !this.componentType.cellRenderer) {\n return;\n }\n if (this.staticMarkup) {\n if (this.staticMarkup.remove) {\n // everyone else in the world\n this.staticMarkup.remove();\n this.staticMarkup = null;\n }\n else if (this.eParentElement.removeChild) {\n // ie11...\n this.eParentElement.removeChild(this.staticMarkup);\n this.staticMarkup = null;\n }\n }\n };\n LegacyReactComponent.prototype.rendered = function () {\n return this.isNullValue() ||\n !!this.staticMarkup || (this.isStatelessComponent() && this.statelessComponentRendered()) ||\n !!(!this.isStatelessComponent() && this.getFrameworkComponentInstance());\n };\n LegacyReactComponent.SLOW_RENDERING_THRESHOLD = 3;\n return LegacyReactComponent;\n}(reactComponent_1.ReactComponent));\nexports.LegacyReactComponent = LegacyReactComponent;\n","// ag-grid-react v30.2.0\n\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AgGridReactFire = exports.AgGridReactLegacy = exports.AgGridReact = void 0;\nvar agGridReact_1 = require(\"./agGridReact\");\nObject.defineProperty(exports, \"AgGridReact\", { enumerable: true, get: function () { return agGridReact_1.AgGridReact; } });\nvar agGridReactLegacy_1 = require(\"./legacy/agGridReactLegacy\");\nObject.defineProperty(exports, \"AgGridReactLegacy\", { enumerable: true, get: function () { return agGridReactLegacy_1.AgGridReactLegacy; } });\nvar agGridReactUi_1 = require(\"./reactUi/agGridReactUi\");\nObject.defineProperty(exports, \"AgGridReactFire\", { enumerable: true, get: function () { return agGridReactUi_1.AgGridReactUi; } });\n__exportStar(require(\"./shared/interfaces\"), exports);\n","// ag-grid-react v30.2.0\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.AgGridReactUi = void 0;\nvar ag_grid_community_1 = require(\"ag-grid-community\");\nvar react_1 = __importStar(require(\"react\"));\nvar newReactComponent_1 = require(\"../shared/newReactComponent\");\nvar portalManager_1 = require(\"../shared/portalManager\");\nvar reactFrameworkOverrides_1 = require(\"../shared/reactFrameworkOverrides\");\nvar gridComp_1 = __importDefault(require(\"./gridComp\"));\nfunction debug(msg, obj) {\n // console.log(msg, obj);\n}\nvar AgGridReactUi = function (props) {\n var _a, _b;\n var gridOptionsRef = react_1.useRef(null);\n var eGui = react_1.useRef(null);\n var portalManager = react_1.useRef(null);\n var destroyFuncs = react_1.useRef([]);\n var whenReadyFuncs = react_1.useRef([]);\n //prevProps\n var prevProps = react_1.useRef(props);\n var ready = react_1.useRef(false);\n var _c = react_1.useState(undefined), context = _c[0], setContext = _c[1];\n var checkForDeprecations = react_1.useCallback(function (props) {\n if (props.rowDataChangeDetectionStrategy) {\n ag_grid_community_1._.doOnce(function () {\n return console.warn('AG Grid: Since v29 rowDataChangeDetectionStrategy has been deprecated. Row data property changes will be compared by reference via triple equals ===. See https://ag-grid.com/react-data-grid/react-hooks/');\n }, 'rowDataChangeDetectionStrategy_Deprecation');\n }\n }, []);\n // Hook to enable Portals to be displayed via the PortalManager\n var _d = react_1.useState(0), setPortalRefresher = _d[1];\n var setRef = react_1.useCallback(function (e) {\n eGui.current = e;\n if (!eGui.current) {\n debug('AgGridReactUi.destroy');\n destroyFuncs.current.forEach(function (f) { return f(); });\n destroyFuncs.current.length = 0;\n return;\n }\n var modules = props.modules || [];\n if (!portalManager.current) {\n portalManager.current = new portalManager_1.PortalManager(function () { return setPortalRefresher(function (prev) { return prev + 1; }); }, props.componentWrappingElement, props.maxComponentCreationTimeMs);\n destroyFuncs.current.push(function () {\n var _a;\n (_a = portalManager.current) === null || _a === void 0 ? void 0 : _a.destroy();\n portalManager.current = null;\n });\n }\n var gridParams = {\n providedBeanInstances: {\n frameworkComponentWrapper: new ReactFrameworkComponentWrapper(portalManager.current),\n },\n modules: modules,\n frameworkOverrides: new reactFrameworkOverrides_1.ReactFrameworkOverrides(true),\n };\n gridOptionsRef.current = props.gridOptions || {};\n gridOptionsRef.current = ag_grid_community_1.ComponentUtil.copyAttributesToGridOptions(gridOptionsRef.current, props);\n checkForDeprecations(props);\n var createUiCallback = function (context) {\n setContext(context);\n destroyFuncs.current.push(function () {\n context.destroy();\n });\n // because React is Async, we need to wait for the UI to be initialised before exposing the API's\n var ctrlsService = context.getBean(ag_grid_community_1.CtrlsService.NAME);\n ctrlsService.whenReady(function () {\n debug('AgGridReactUi. ctlService is ready');\n if (context.isDestroyed()) {\n return;\n }\n if (gridOptionsRef.current) {\n var api = gridOptionsRef.current.api;\n if (api) {\n if (props.setGridApi) {\n props.setGridApi(api, gridOptionsRef.current.columnApi);\n }\n }\n }\n });\n };\n // this callback adds to ctrlsService.whenReady(), just like above, however because whenReady() executes\n // funcs in the order they were received, we know adding items here will be AFTER the grid has set columns\n // and data. this is because GridCoreCreator sets these between calling createUiCallback and acceptChangesCallback\n var acceptChangesCallback = function (context) {\n var ctrlsService = context.getBean(ag_grid_community_1.CtrlsService.NAME);\n ctrlsService.whenReady(function () {\n debug('AgGridReactUi.acceptChangesCallback');\n whenReadyFuncs.current.forEach(function (f) { return f(); });\n whenReadyFuncs.current.length = 0;\n ready.current = true;\n });\n };\n var gridCoreCreator = new ag_grid_community_1.GridCoreCreator();\n gridCoreCreator.create(eGui.current, gridOptionsRef.current, createUiCallback, acceptChangesCallback, gridParams);\n }, []);\n var style = react_1.useMemo(function () {\n return __assign({ height: '100%' }, (props.containerStyle || {}));\n }, [props.containerStyle]);\n var processWhenReady = react_1.useCallback(function (func) {\n if (ready.current) {\n debug('AgGridReactUi.processWhenReady sync');\n func();\n }\n else {\n debug('AgGridReactUi.processWhenReady async');\n whenReadyFuncs.current.push(func);\n }\n }, []);\n react_1.useEffect(function () {\n var changes = {};\n extractGridPropertyChanges(prevProps.current, props, changes);\n prevProps.current = props;\n processWhenReady(function () {\n var _a;\n if ((_a = gridOptionsRef.current) === null || _a === void 0 ? void 0 : _a.api) {\n ag_grid_community_1.ComponentUtil.processOnChange(changes, gridOptionsRef.current.api);\n }\n });\n }, [props]);\n return (react_1.default.createElement(\"div\", { style: style, className: props.className, ref: setRef },\n context && !context.isDestroyed() ? react_1.default.createElement(gridComp_1.default, { context: context }) : null, (_b = (_a = portalManager.current) === null || _a === void 0 ? void 0 : _a.getPortals()) !== null && _b !== void 0 ? _b : null));\n};\nexports.AgGridReactUi = AgGridReactUi;\nvar ReactFrameworkComponentWrapper = /** @class */ (function (_super) {\n __extends(ReactFrameworkComponentWrapper, _super);\n function ReactFrameworkComponentWrapper(parent) {\n var _this = _super.call(this) || this;\n _this.parent = parent;\n return _this;\n }\n ReactFrameworkComponentWrapper.prototype.createWrapper = function (UserReactComponent, componentType) {\n return new newReactComponent_1.NewReactComponent(UserReactComponent, this.parent, componentType);\n };\n return ReactFrameworkComponentWrapper;\n}(ag_grid_community_1.BaseComponentWrapper));\nfunction extractGridPropertyChanges(prevProps, nextProps, changes) {\n var debugLogging = !!nextProps.debug;\n Object.keys(nextProps).forEach(function (propKey) {\n if (ag_grid_community_1.ComponentUtil.ALL_PROPERTIES_SET.has(propKey)) {\n if (prevProps[propKey] !== nextProps[propKey]) {\n if (debugLogging) {\n console.log(\" agGridReact: [\" + propKey + \"] property changed\");\n }\n changes[propKey] = {\n previousValue: prevProps[propKey],\n currentValue: nextProps[propKey],\n };\n }\n }\n });\n ag_grid_community_1.ComponentUtil.EVENT_CALLBACKS.forEach(function (funcName) {\n if (prevProps[funcName] !== nextProps[funcName]) {\n if (debugLogging) {\n console.log(\"agGridReact: [\" + funcName + \"] event callback changed\");\n }\n changes[funcName] = {\n previousValue: prevProps[funcName],\n currentValue: nextProps[funcName],\n };\n }\n });\n}\n","// ag-grid-react v30.2.0\n\"use strict\";\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.BeansContext = void 0;\nvar react_1 = __importDefault(require(\"react\"));\nexports.BeansContext = react_1.default.createContext({});\n","// ag-grid-react v30.2.0\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = __importStar(require(\"react\"));\nvar utils_1 = require(\"../utils\");\nvar ag_grid_community_1 = require(\"ag-grid-community\");\nvar beansContext_1 = require(\"../beansContext\");\nvar agGridReactUi_1 = require(\"../agGridReactUi\");\nvar DetailCellRenderer = function (props, ref) {\n var _a = react_1.useContext(beansContext_1.BeansContext), ctrlsFactory = _a.ctrlsFactory, context = _a.context, gridOptionsService = _a.gridOptionsService, resizeObserverService = _a.resizeObserverService, clientSideRowModel = _a.clientSideRowModel, serverSideRowModel = _a.serverSideRowModel;\n var _b = react_1.useState(function () { return new utils_1.CssClasses(); }), cssClasses = _b[0], setCssClasses = _b[1];\n var _c = react_1.useState(function () { return new utils_1.CssClasses(); }), gridCssClasses = _c[0], setGridCssClasses = _c[1];\n var _d = react_1.useState(), detailGridOptions = _d[0], setDetailGridOptions = _d[1];\n var _e = react_1.useState(), detailRowData = _e[0], setDetailRowData = _e[1];\n var ctrlRef = react_1.useRef();\n var eGuiRef = react_1.useRef(null);\n var resizeObserverDestroyFunc = react_1.useRef();\n var parentModules = react_1.useMemo(function () { return ag_grid_community_1.ModuleRegistry.__getGridRegisteredModules(props.api.getGridId()); }, [props]);\n var topClassName = react_1.useMemo(function () { return cssClasses.toString() + ' ag-details-row'; }, [cssClasses]);\n var gridClassName = react_1.useMemo(function () { return gridCssClasses.toString() + ' ag-details-grid'; }, [gridCssClasses]);\n if (ref) {\n react_1.useImperativeHandle(ref, function () { return ({\n refresh: function () { var _a, _b; return (_b = (_a = ctrlRef.current) === null || _a === void 0 ? void 0 : _a.refresh()) !== null && _b !== void 0 ? _b : false; }\n }); });\n }\n if (props.template) {\n ag_grid_community_1._.doOnce(function () { return console.warn('AG Grid: detailCellRendererParams.template is not supported by AG Grid React. To change the template, provide a Custom Detail Cell Renderer. See https://ag-grid.com/react-data-grid/master-detail-custom-detail/'); }, \"React_detailCellRenderer.template\");\n }\n var setRef = react_1.useCallback(function (e) {\n eGuiRef.current = e;\n if (!eGuiRef.current) {\n context.destroyBean(ctrlRef.current);\n if (resizeObserverDestroyFunc.current) {\n resizeObserverDestroyFunc.current();\n }\n return;\n }\n var compProxy = {\n addOrRemoveCssClass: function (name, on) { return setCssClasses(function (prev) { return prev.setClass(name, on); }); },\n addOrRemoveDetailGridCssClass: function (name, on) { return setGridCssClasses(function (prev) { return prev.setClass(name, on); }); },\n setDetailGrid: function (gridOptions) { return setDetailGridOptions(gridOptions); },\n setRowData: function (rowData) { return setDetailRowData(rowData); },\n getGui: function () { return eGuiRef.current; }\n };\n var ctrl = ctrlsFactory.getInstance('detailCellRenderer');\n if (!ctrl) {\n return;\n } // should never happen, means master/detail module not loaded\n context.createBean(ctrl);\n ctrl.init(compProxy, props);\n ctrlRef.current = ctrl;\n if (gridOptionsService.is('detailRowAutoHeight')) {\n var checkRowSizeFunc = function () {\n // when disposed, current is null, so nothing to do, and the resize observer will\n // be disposed of soon\n if (eGuiRef.current == null) {\n return;\n }\n var clientHeight = eGuiRef.current.clientHeight;\n // if the UI is not ready, the height can be 0, which we ignore, as otherwise a flicker will occur\n // as UI goes from the default height, to 0, then to the real height as UI becomes ready. this means\n // it's not possible for have 0 as auto-height, however this is an improbable use case, as even an\n // empty detail grid would still have some styling around it giving at least a few pixels.\n if (clientHeight != null && clientHeight > 0) {\n // we do the update in a timeout, to make sure we are not calling from inside the grid\n // doing another update\n var updateRowHeightFunc = function () {\n props.node.setRowHeight(clientHeight);\n if (clientSideRowModel) {\n clientSideRowModel.onRowHeightChanged();\n }\n else if (serverSideRowModel) {\n serverSideRowModel.onRowHeightChanged();\n }\n };\n setTimeout(updateRowHeightFunc, 0);\n }\n };\n resizeObserverDestroyFunc.current = resizeObserverService.observeResize(eGuiRef.current, checkRowSizeFunc);\n checkRowSizeFunc();\n }\n }, []);\n var setGridApi = react_1.useCallback(function (api, columnApi) {\n var _a;\n (_a = ctrlRef.current) === null || _a === void 0 ? void 0 : _a.registerDetailWithMaster(api, columnApi);\n }, []);\n return (react_1.default.createElement(\"div\", { className: topClassName, ref: setRef }, detailGridOptions &&\n react_1.default.createElement(agGridReactUi_1.AgGridReactUi, __assign({ className: gridClassName }, detailGridOptions, { modules: parentModules, rowData: detailRowData, setGridApi: setGridApi }))));\n};\nexports.default = react_1.forwardRef(DetailCellRenderer);\n","// ag-grid-react v30.2.0\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ag_grid_community_1 = require(\"ag-grid-community\");\nvar react_1 = __importStar(require(\"react\"));\nvar beansContext_1 = require(\"../beansContext\");\nvar jsComp_1 = require(\"../jsComp\");\nvar utils_1 = require(\"../utils\");\nvar GroupCellRenderer = react_1.forwardRef(function (props, ref) {\n var context = react_1.useContext(beansContext_1.BeansContext).context;\n var eGui = react_1.useRef(null);\n var eValueRef = react_1.useRef(null);\n var eCheckboxRef = react_1.useRef(null);\n var eExpandedRef = react_1.useRef(null);\n var eContractedRef = react_1.useRef(null);\n var ctrlRef = react_1.useRef();\n var _a = react_1.useState(), innerCompDetails = _a[0], setInnerCompDetails = _a[1];\n var _b = react_1.useState(), childCount = _b[0], setChildCount = _b[1];\n var _c = react_1.useState(), value = _c[0], setValue = _c[1];\n var _d = react_1.useState(function () { return new utils_1.CssClasses(); }), cssClasses = _d[0], setCssClasses = _d[1];\n var _e = react_1.useState(function () { return new utils_1.CssClasses('ag-hidden'); }), expandedCssClasses = _e[0], setExpandedCssClasses = _e[1];\n var _f = react_1.useState(function () { return new utils_1.CssClasses('ag-hidden'); }), contractedCssClasses = _f[0], setContractedCssClasses = _f[1];\n var _g = react_1.useState(function () { return new utils_1.CssClasses('ag-invisible'); }), checkboxCssClasses = _g[0], setCheckboxCssClasses = _g[1];\n react_1.useImperativeHandle(ref, function () {\n return {\n // force new instance when grid tries to refresh\n refresh: function () { return false; }\n };\n });\n react_1.useLayoutEffect(function () {\n return jsComp_1.showJsComp(innerCompDetails, context, eValueRef.current);\n }, [innerCompDetails]);\n var setRef = react_1.useCallback(function (ref) {\n eGui.current = ref;\n if (!eGui.current) {\n context.destroyBean(ctrlRef.current);\n ctrlRef.current = null;\n return;\n }\n var compProxy = {\n setInnerRenderer: function (details, valueToDisplay) {\n setInnerCompDetails(details);\n setValue(valueToDisplay);\n },\n setChildCount: function (count) { return setChildCount(count); },\n addOrRemoveCssClass: function (name, on) { return setCssClasses(function (prev) { return prev.setClass(name, on); }); },\n setContractedDisplayed: function (displayed) { return setContractedCssClasses(function (prev) { return prev.setClass('ag-hidden', !displayed); }); },\n setExpandedDisplayed: function (displayed) { return setExpandedCssClasses(function (prev) { return prev.setClass('ag-hidden', !displayed); }); },\n setCheckboxVisible: function (visible) { return setCheckboxCssClasses(function (prev) { return prev.setClass('ag-invisible', !visible); }); }\n };\n ctrlRef.current = context.createBean(new ag_grid_community_1.GroupCellRendererCtrl());\n ctrlRef.current.init(compProxy, eGui.current, eCheckboxRef.current, eExpandedRef.current, eContractedRef.current, GroupCellRenderer, props);\n }, []);\n var className = react_1.useMemo(function () { return \"ag-cell-wrapper \" + cssClasses.toString(); }, [cssClasses]);\n var expandedClassName = react_1.useMemo(function () { return \"ag-group-expanded \" + expandedCssClasses.toString(); }, [expandedCssClasses]);\n var contractedClassName = react_1.useMemo(function () { return \"ag-group-contracted \" + contractedCssClasses.toString(); }, [contractedCssClasses]);\n var checkboxClassName = react_1.useMemo(function () { return \"ag-group-checkbox \" + checkboxCssClasses.toString(); }, [checkboxCssClasses]);\n var useFwRenderer = innerCompDetails && innerCompDetails.componentFromFramework;\n var FwRenderer = useFwRenderer ? innerCompDetails.componentClass : undefined;\n var useValue = innerCompDetails == null && value != null;\n var escapedValue = ag_grid_community_1._.escapeString(value, true);\n return (react_1.default.createElement(\"span\", __assign({ className: className, ref: setRef }, (!props.colDef ? { role: 'gridcell' } : {})),\n react_1.default.createElement(\"span\", { className: expandedClassName, ref: eExpandedRef }),\n react_1.default.createElement(\"span\", { className: contractedClassName, ref: eContractedRef }),\n react_1.default.createElement(\"span\", { className: checkboxClassName, ref: eCheckboxRef }),\n react_1.default.createElement(\"span\", { className: \"ag-group-value\", ref: eValueRef },\n useValue && react_1.default.createElement(react_1.default.Fragment, null, escapedValue),\n useFwRenderer && react_1.default.createElement(FwRenderer, __assign({}, innerCompDetails.params))),\n react_1.default.createElement(\"span\", { className: \"ag-group-child-count\" }, childCount)));\n});\n// we do not memo() here, as it would stop the forwardRef working\nexports.default = GroupCellRenderer;\n","// ag-grid-react v30.2.0\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.CellCompState = void 0;\nvar ag_grid_community_1 = require(\"ag-grid-community\");\nvar react_1 = __importStar(require(\"react\"));\nvar utils_1 = require(\"../utils\");\nvar popupEditorComp_1 = __importDefault(require(\"./popupEditorComp\"));\nvar showJsRenderer_1 = __importDefault(require(\"./showJsRenderer\"));\nvar beansContext_1 = require(\"../beansContext\");\nvar jsComp_1 = require(\"../jsComp\");\nvar CellCompState;\n(function (CellCompState) {\n CellCompState[CellCompState[\"ShowValue\"] = 0] = \"ShowValue\";\n CellCompState[CellCompState[\"EditValue\"] = 1] = \"EditValue\";\n})(CellCompState = exports.CellCompState || (exports.CellCompState = {}));\nvar checkCellEditorDeprecations = function (popup, cellEditor, cellCtrl) {\n var col = cellCtrl.getColumn();\n // cellEditor is written to be a popup editor, however colDef.cellEditorPopup is not set\n if (!popup && cellEditor.isPopup && cellEditor.isPopup()) {\n var msg_1 = \"AG Grid: Found an issue in column \" + col.getColId() + \". If using React, specify an editor is a popup using colDef.cellEditorPopup=true. AG Grid React cannot depend on the editor component specifying if it's in a popup (via the isPopup() method on the editor), as React needs to know this information BEFORE the component is created.\";\n ag_grid_community_1._.doOnce(function () { return console.warn(msg_1); }, 'jsEditorComp-isPopup-' + cellCtrl.getColumn().getColId());\n }\n // cellEditor is a popup and is trying to position itself the deprecated way\n if (popup && cellEditor.getPopupPosition && cellEditor.getPopupPosition() != null) {\n var msg_2 = \"AG Grid: Found an issue in column \" + col.getColId() + \". If using React, specify an editor popup position using colDef.cellEditorPopupPosition=true. AG Grid React cannot depend on the editor component specifying it's position (via the getPopupPosition() method on the editor), as React needs to know this information BEFORE the component is created.\";\n ag_grid_community_1._.doOnce(function () { return console.warn(msg_2); }, 'jsEditorComp-getPopupPosition-' + cellCtrl.getColumn().getColId());\n }\n};\nvar jsxEditValue = function (editDetails, setInlineCellEditorRef, setPopupCellEditorRef, eGui, cellCtrl, jsEditorComp) {\n var compDetails = editDetails.compDetails;\n var CellEditorClass = compDetails.componentClass;\n var reactInlineEditor = compDetails.componentFromFramework && !editDetails.popup;\n var reactPopupEditor = compDetails.componentFromFramework && editDetails.popup;\n var jsPopupEditor = !compDetails.componentFromFramework && editDetails.popup;\n return (react_1.default.createElement(react_1.default.Fragment, null,\n reactInlineEditor && react_1.default.createElement(CellEditorClass, __assign({}, editDetails.compDetails.params, { ref: setInlineCellEditorRef })),\n reactPopupEditor &&\n react_1.default.createElement(popupEditorComp_1.default, { editDetails: editDetails, cellCtrl: cellCtrl, eParentCell: eGui, wrappedContent: react_1.default.createElement(CellEditorClass, __assign({}, editDetails.compDetails.params, { ref: setPopupCellEditorRef })) }),\n jsPopupEditor &&\n jsEditorComp &&\n react_1.default.createElement(popupEditorComp_1.default, { editDetails: editDetails, cellCtrl: cellCtrl, eParentCell: eGui, jsChildComp: jsEditorComp })));\n};\nvar jsxShowValue = function (showDetails, key, parentId, cellRendererRef, showCellWrapper, reactCellRendererStateless, setECellValue) {\n var compDetails = showDetails.compDetails, value = showDetails.value;\n var noCellRenderer = !compDetails;\n var reactCellRenderer = compDetails && compDetails.componentFromFramework;\n var CellRendererClass = compDetails && compDetails.componentClass;\n // if we didn't do this, objects would cause React error. we depend on objects for things\n // like the aggregation functions avg and count, which return objects and depend on toString()\n // getting called.\n var valueForNoCellRenderer = (value === null || value === void 0 ? void 0 : value.toString) ? value.toString() : value;\n var bodyJsxFunc = function () { return (react_1.default.createElement(react_1.default.Fragment, null,\n noCellRenderer && react_1.default.createElement(react_1.default.Fragment, null, valueForNoCellRenderer),\n reactCellRenderer && !reactCellRendererStateless && react_1.default.createElement(CellRendererClass, __assign({}, compDetails.params, { key: key, ref: cellRendererRef })),\n reactCellRenderer && reactCellRendererStateless && react_1.default.createElement(CellRendererClass, __assign({}, compDetails.params, { key: key })))); };\n return (react_1.default.createElement(react_1.default.Fragment, null, showCellWrapper\n ? (react_1.default.createElement(\"span\", { role: \"presentation\", id: \"cell-\" + parentId, className: \"ag-cell-value\", ref: setECellValue }, bodyJsxFunc()))\n : bodyJsxFunc()));\n};\nvar CellComp = function (props) {\n var context = react_1.useContext(beansContext_1.BeansContext).context;\n var cellCtrl = props.cellCtrl, printLayout = props.printLayout, editingRow = props.editingRow;\n var tabIndex = cellCtrl.getTabIndex();\n var colId = cellCtrl.getColumnIdSanitised();\n var cellInstanceId = cellCtrl.getInstanceId();\n // Only provide an initial state when not using a Cell Renderer so that we do not display a raw value before the cell renderer is created.\n var _a = react_1.useState(function () { return cellCtrl.getIsCellRenderer() ? undefined : { compDetails: undefined, value: cellCtrl.getValueToDisplay(), force: false }; }), renderDetails = _a[0], setRenderDetails = _a[1];\n var _b = react_1.useState(), editDetails = _b[0], setEditDetails = _b[1];\n var _c = react_1.useState(1), renderKey = _c[0], setRenderKey = _c[1];\n var _d = react_1.useState(), userStyles = _d[0], setUserStyles = _d[1];\n var _e = react_1.useState(false), includeSelection = _e[0], setIncludeSelection = _e[1];\n var _f = react_1.useState(false), includeRowDrag = _f[0], setIncludeRowDrag = _f[1];\n var _g = react_1.useState(false), includeDndSource = _g[0], setIncludeDndSource = _g[1];\n var _h = react_1.useState(), jsEditorComp = _h[0], setJsEditorComp = _h[1];\n // useMemo as more then just accessing a boolean on the cellCtrl\n var forceWrapper = react_1.useMemo(function () { return cellCtrl.isForceWrapper(); }, [cellCtrl]);\n var eGui = react_1.useRef(null);\n var cellRendererRef = react_1.useRef(null);\n var jsCellRendererRef = react_1.useRef();\n var cellEditorRef = react_1.useRef();\n var eCellWrapper = react_1.useRef();\n var cellWrapperDestroyFuncs = react_1.useRef([]);\n // when setting the ref, we also update the state item to force a re-render\n var eCellValue = react_1.useRef();\n var _j = react_1.useState(0), cellValueVersion = _j[0], setCellValueVersion = _j[1];\n var setCellValueRef = react_1.useCallback(function (ref) {\n eCellValue.current = ref;\n setCellValueVersion(function (v) { return v + 1; });\n }, []);\n var showTools = renderDetails != null && (includeSelection || includeDndSource || includeRowDrag);\n var showCellWrapper = forceWrapper || showTools;\n var setCellEditorRef = react_1.useCallback(function (popup, cellEditor) {\n cellEditorRef.current = cellEditor;\n if (cellEditor) {\n checkCellEditorDeprecations(popup, cellEditor, cellCtrl);\n var editingCancelledByUserComp = cellEditor.isCancelBeforeStart && cellEditor.isCancelBeforeStart();\n if (editingCancelledByUserComp) {\n // we cannot set state inside render, so hack is to do it in next VM turn\n setTimeout(function () {\n cellCtrl.stopEditing(true);\n cellCtrl.focusCell(true);\n });\n }\n }\n }, [cellCtrl]);\n var setPopupCellEditorRef = react_1.useCallback(function (cellRenderer) { return setCellEditorRef(true, cellRenderer); }, [setCellEditorRef]);\n var setInlineCellEditorRef = react_1.useCallback(function (cellRenderer) { return setCellEditorRef(false, cellRenderer); }, [setCellEditorRef]);\n var cssClassManager = react_1.useRef();\n if (!cssClassManager.current) {\n cssClassManager.current = new ag_grid_community_1.CssClassManager(function () { return eGui.current; });\n }\n showJsRenderer_1.default(renderDetails, showCellWrapper, eCellValue.current, cellValueVersion, jsCellRendererRef, eGui);\n // if RenderDetails changed, need to call refresh. This is not our preferred way (the preferred\n // way for React is just allow the new props to propagate down to the React Cell Renderer)\n // however we do this for backwards compatibility, as having refresh used to be supported.\n var lastRenderDetails = react_1.useRef();\n react_1.useLayoutEffect(function () {\n var oldDetails = lastRenderDetails.current;\n var newDetails = renderDetails;\n lastRenderDetails.current = renderDetails;\n // if not updating renderDetails, do nothing\n if (oldDetails == null ||\n oldDetails.compDetails == null ||\n newDetails == null ||\n newDetails.compDetails == null) {\n return;\n }\n var oldCompDetails = oldDetails.compDetails;\n var newCompDetails = newDetails.compDetails;\n // if different Cell Renderer, then do nothing, as renderer will be recreated\n if (oldCompDetails.componentClass != newCompDetails.componentClass) {\n return;\n }\n // if no refresh method, do nothing\n if (cellRendererRef.current == null || cellRendererRef.current.refresh == null) {\n return;\n }\n var result = cellRendererRef.current.refresh(newCompDetails.params);\n if (result != true) {\n // increasing the render key forces the refresh. this is undocumented (for React users,\n // we don't document the refresh method, instead we tell them to act on new params).\n // however the GroupCellRenderer has this logic in it and would need a small refactor\n // to get it working without using refresh() returning false. so this hack staying in,\n // in React if refresh() is implemented and returns false (or undefined), we force a refresh\n setRenderKey(function (prev) { return prev + 1; });\n }\n }, [renderDetails]);\n react_1.useLayoutEffect(function () {\n var doingJsEditor = editDetails && !editDetails.compDetails.componentFromFramework;\n if (!doingJsEditor) {\n return;\n }\n var compDetails = editDetails.compDetails;\n var isPopup = editDetails.popup === true;\n var cellEditor = jsComp_1.createSyncJsComp(compDetails);\n if (!cellEditor) {\n return;\n }\n var compGui = cellEditor.getGui();\n setCellEditorRef(isPopup, cellEditor);\n if (!isPopup) {\n var parentEl = (forceWrapper ? eCellWrapper : eGui).current;\n parentEl === null || parentEl === void 0 ? void 0 : parentEl.appendChild(compGui);\n cellEditor.afterGuiAttached && cellEditor.afterGuiAttached();\n }\n setJsEditorComp(cellEditor);\n return function () {\n context.destroyBean(cellEditor);\n setCellEditorRef(isPopup, undefined);\n setJsEditorComp(undefined);\n if (compGui && compGui.parentElement) {\n compGui.parentElement.removeChild(compGui);\n }\n };\n }, [editDetails]);\n // tool widgets effect\n var setCellWrapperRef = react_1.useCallback(function (ref) {\n eCellWrapper.current = ref;\n if (!eCellWrapper.current) {\n cellWrapperDestroyFuncs.current.forEach(function (f) { return f(); });\n cellWrapperDestroyFuncs.current = [];\n return;\n }\n var addComp = function (comp) {\n var _a;\n if (comp) {\n var eGui_1 = comp.getGui();\n (_a = eCellWrapper.current) === null || _a === void 0 ? void 0 : _a.insertAdjacentElement('afterbegin', eGui_1);\n cellWrapperDestroyFuncs.current.push(function () {\n context.destroyBean(comp);\n ag_grid_community_1._.removeFromParent(eGui_1);\n });\n }\n return comp;\n };\n if (includeSelection) {\n var checkboxSelectionComp = cellCtrl.createSelectionCheckbox();\n addComp(checkboxSelectionComp);\n }\n if (includeDndSource) {\n addComp(cellCtrl.createDndSource());\n }\n if (includeRowDrag) {\n addComp(cellCtrl.createRowDragComp());\n }\n }, [cellCtrl, context, includeDndSource, includeRowDrag, includeSelection]);\n // we use layout effect here as we want to synchronously process setComp and it's side effects\n // to ensure the component is fully initialised prior to the first browser paint. See AG-7018.\n var setRef = react_1.useCallback(function (ref) {\n eGui.current = ref;\n if (!eGui.current) {\n return;\n }\n if (!cellCtrl) {\n return;\n }\n var compProxy = {\n addOrRemoveCssClass: function (name, on) { return cssClassManager.current.addOrRemoveCssClass(name, on); },\n setUserStyles: function (styles) { return setUserStyles(styles); },\n getFocusableElement: function () { return eGui.current; },\n setIncludeSelection: function (include) { return setIncludeSelection(include); },\n setIncludeRowDrag: function (include) { return setIncludeRowDrag(include); },\n setIncludeDndSource: function (include) { return setIncludeDndSource(include); },\n getCellEditor: function () { return cellEditorRef.current || null; },\n getCellRenderer: function () { return cellRendererRef.current ? cellRendererRef.current : jsCellRendererRef.current; },\n getParentOfValue: function () { return eCellValue.current ? eCellValue.current : eCellWrapper.current ? eCellWrapper.current : eGui.current; },\n setRenderDetails: function (compDetails, value, force) {\n setRenderDetails(function (prev) {\n if ((prev === null || prev === void 0 ? void 0 : prev.compDetails) !== compDetails || (prev === null || prev === void 0 ? void 0 : prev.value) !== value || (prev === null || prev === void 0 ? void 0 : prev.force) !== force) {\n return {\n value: value,\n compDetails: compDetails,\n force: force\n };\n }\n else {\n return prev;\n }\n });\n },\n setEditDetails: function (compDetails, popup, popupPosition) {\n if (compDetails) {\n // start editing\n setEditDetails({\n compDetails: compDetails,\n popup: popup,\n popupPosition: popupPosition\n });\n if (!popup) {\n setRenderDetails(undefined);\n }\n }\n else {\n // stop editing\n setEditDetails(undefined);\n }\n }\n };\n var cellWrapperOrUndefined = eCellWrapper.current || undefined;\n cellCtrl.setComp(compProxy, eGui.current, cellWrapperOrUndefined, printLayout, editingRow);\n }, []);\n var reactCellRendererStateless = react_1.useMemo(function () {\n var res = renderDetails &&\n renderDetails.compDetails &&\n renderDetails.compDetails.componentFromFramework &&\n utils_1.isComponentStateless(renderDetails.compDetails.componentClass);\n return !!res;\n }, [renderDetails]);\n react_1.useLayoutEffect(function () {\n var _a;\n if (!eGui.current) {\n return;\n }\n cssClassManager.current.addOrRemoveCssClass('ag-cell-value', !showCellWrapper);\n cssClassManager.current.addOrRemoveCssClass('ag-cell-inline-editing', !!editDetails && !editDetails.popup);\n cssClassManager.current.addOrRemoveCssClass('ag-cell-popup-editing', !!editDetails && !!editDetails.popup);\n cssClassManager.current.addOrRemoveCssClass('ag-cell-not-inline-editing', !editDetails || !!editDetails.popup);\n (_a = cellCtrl.getRowCtrl()) === null || _a === void 0 ? void 0 : _a.setInlineEditingCss(!!editDetails);\n if (cellCtrl.shouldRestoreFocus() && !cellCtrl.isEditing()) {\n // Restore focus to the cell if it was focused before and not editing.\n // If it is editing then it is likely the focus was moved to the editor and we should not move it back.\n eGui.current.focus({ preventScroll: true });\n }\n });\n var showContents = function () { return (react_1.default.createElement(react_1.default.Fragment, null,\n (renderDetails != null && jsxShowValue(renderDetails, renderKey, cellInstanceId, cellRendererRef, showCellWrapper, reactCellRendererStateless, setCellValueRef)),\n (editDetails != null && jsxEditValue(editDetails, setInlineCellEditorRef, setPopupCellEditorRef, eGui.current, cellCtrl, jsEditorComp)))); };\n return (react_1.default.createElement(\"div\", { ref: setRef, style: userStyles, tabIndex: tabIndex, role: 'gridcell', \"col-id\": colId }, showCellWrapper\n ? (react_1.default.createElement(\"div\", { className: \"ag-cell-wrapper\", role: \"presentation\", ref: setCellWrapperRef }, showContents()))\n : showContents()));\n};\nexports.default = react_1.memo(CellComp);\n","// ag-grid-react v30.2.0\n\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ag_grid_community_1 = require(\"ag-grid-community\");\nvar react_1 = __importStar(require(\"react\"));\nvar react_dom_1 = require(\"react-dom\");\nvar beansContext_1 = require(\"../beansContext\");\nvar useEffectOnce_1 = require(\"../useEffectOnce\");\nvar PopupEditorComp = function (props) {\n var _a = react_1.useState(), popupEditorWrapper = _a[0], setPopupEditorWrapper = _a[1];\n var _b = react_1.useContext(beansContext_1.BeansContext), context = _b.context, popupService = _b.popupService, localeService = _b.localeService, gridOptionsService = _b.gridOptionsService;\n useEffectOnce_1.useEffectOnce(function () {\n var editDetails = props.editDetails, cellCtrl = props.cellCtrl, eParentCell = props.eParentCell;\n var compDetails = editDetails.compDetails;\n var useModelPopup = gridOptionsService.is('stopEditingWhenCellsLoseFocus');\n var wrapper = context.createBean(new ag_grid_community_1.PopupEditorWrapper(compDetails.params));\n var ePopupGui = wrapper.getGui();\n if (props.jsChildComp) {\n var eChildGui = props.jsChildComp.getGui();\n if (eChildGui) {\n ePopupGui.appendChild(eChildGui);\n }\n }\n var positionParams = {\n column: cellCtrl.getColumn(),\n rowNode: cellCtrl.getRowNode(),\n type: 'popupCellEditor',\n eventSource: eParentCell,\n ePopup: ePopupGui,\n position: editDetails.popupPosition,\n keepWithinBounds: true\n };\n var positionCallback = popupService.positionPopupByComponent.bind(popupService, positionParams);\n var translate = localeService.getLocaleTextFunc();\n var addPopupRes = popupService.addPopup({\n modal: useModelPopup,\n eChild: ePopupGui,\n closeOnEsc: true,\n closedCallback: function () { cellCtrl.onPopupEditorClosed(); },\n anchorToElement: eParentCell,\n positionCallback: positionCallback,\n ariaLabel: translate('ariaLabelCellEditor', 'Cell Editor')\n });\n var hideEditorPopup = addPopupRes ? addPopupRes.hideFunc : undefined;\n setPopupEditorWrapper(wrapper);\n props.jsChildComp && props.jsChildComp.afterGuiAttached && props.jsChildComp.afterGuiAttached();\n return function () {\n if (hideEditorPopup != null) {\n hideEditorPopup();\n }\n context.destroyBean(wrapper);\n };\n });\n return (react_1.default.createElement(react_1.default.Fragment, null, popupEditorWrapper && props.wrappedContent\n && react_dom_1.createPortal(props.wrappedContent, popupEditorWrapper.getGui())));\n};\nexports.default = react_1.memo(PopupEditorComp);\n","// ag-grid-react v30.2.0\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = require(\"react\");\nvar beansContext_1 = require(\"../beansContext\");\nvar useJsCellRenderer = function (showDetails, showTools, eCellValue, cellValueVersion, jsCellRendererRef, eGui) {\n var context = react_1.useContext(beansContext_1.BeansContext).context;\n var destroyCellRenderer = react_1.useCallback(function () {\n var comp = jsCellRendererRef.current;\n if (!comp) {\n return;\n }\n var compGui = comp.getGui();\n if (compGui && compGui.parentElement) {\n compGui.parentElement.removeChild(compGui);\n }\n context.destroyBean(comp);\n jsCellRendererRef.current = undefined;\n }, []);\n // create or refresh JS cell renderer\n react_1.useEffect(function () {\n var showValue = showDetails != null;\n var jsCompDetails = showDetails && showDetails.compDetails && !showDetails.compDetails.componentFromFramework;\n var waitingForToolsSetup = showTools && eCellValue == null;\n var showComp = showValue && jsCompDetails && !waitingForToolsSetup;\n // if not showing comp, destroy any existing one and return\n if (!showComp) {\n destroyCellRenderer();\n return;\n }\n var compDetails = showDetails.compDetails;\n if (jsCellRendererRef.current) {\n // attempt refresh if refresh method exists\n var comp_1 = jsCellRendererRef.current;\n var attemptRefresh = comp_1.refresh != null && showDetails.force == false;\n var refreshResult = attemptRefresh ? comp_1.refresh(compDetails.params) : false;\n var refreshWorked = refreshResult === true || refreshResult === undefined;\n // if refresh worked, nothing else to do\n if (refreshWorked) {\n return;\n }\n // if refresh didn't work, we destroy it and continue, so new cell renderer created below\n destroyCellRenderer();\n }\n var promise = compDetails.newAgStackInstance();\n ;\n if (!promise) {\n return;\n }\n var comp = promise.resolveNow(null, function (x) { return x; }); // js comps are never async\n if (!comp) {\n return;\n }\n var compGui = comp.getGui();\n if (!compGui) {\n return;\n }\n var parent = showTools ? eCellValue : eGui.current;\n parent.appendChild(compGui);\n jsCellRendererRef.current = comp;\n // We do not return the destroy here as we want to keep the comp alive for our custom refresh approach above\n }, [showDetails, showTools, cellValueVersion]);\n // this effect makes sure destroyCellRenderer gets called when the\n // component is destroyed. as the other effect only updates when there\n // is a change in state\n react_1.useEffect(function () {\n return destroyCellRenderer;\n }, []);\n};\nexports.default = useJsCellRenderer;\n","// ag-grid-react v30.2.0\n\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ag_grid_community_1 = require(\"ag-grid-community\");\nvar react_1 = __importStar(require(\"react\"));\nvar beansContext_1 = require(\"./beansContext\");\nvar gridHeaderComp_1 = __importDefault(require(\"./header/gridHeaderComp\"));\nvar reactComment_1 = __importDefault(require(\"./reactComment\"));\nvar rowContainerComp_1 = __importDefault(require(\"./rows/rowContainerComp\"));\nvar utils_1 = require(\"./utils\");\nvar GridBodyComp = function () {\n var _a = react_1.useContext(beansContext_1.BeansContext), context = _a.context, agStackComponentsRegistry = _a.agStackComponentsRegistry, resizeObserverService = _a.resizeObserverService;\n var _b = react_1.useState(''), rowAnimationClass = _b[0], setRowAnimationClass = _b[1];\n var _c = react_1.useState(0), topHeight = _c[0], setTopHeight = _c[1];\n var _d = react_1.useState(0), bottomHeight = _d[0], setBottomHeight = _d[1];\n var _e = react_1.useState('0px'), stickyTopHeight = _e[0], setStickyTopHeight = _e[1];\n var _f = react_1.useState('0px'), stickyTopTop = _f[0], setStickyTopTop = _f[1];\n var _g = react_1.useState('100%'), stickyTopWidth = _g[0], setStickyTopWidth = _g[1];\n var _h = react_1.useState(''), topDisplay = _h[0], setTopDisplay = _h[1];\n var _j = react_1.useState(''), bottomDisplay = _j[0], setBottomDisplay = _j[1];\n var _k = react_1.useState(null), forceVerticalScrollClass = _k[0], setForceVerticalScrollClass = _k[1];\n var _l = react_1.useState(''), topAndBottomOverflowY = _l[0], setTopAndBottomOverflowY = _l[1];\n var _m = react_1.useState(null), cellSelectableCss = _m[0], setCellSelectableCss = _m[1];\n // we initialise layoutClass to 'ag-layout-normal', because if we don't, the comp will initially\n // render with no width (as ag-layout-normal sets width to 0, which is needed for flex) which\n // gives the grid a massive width, which then renders a massive amount of columns. this problem\n // is due to React been async, for the non-async version (ie when not using React) this is not a\n // problem as the UI will finish initialising before we set data.\n var _o = react_1.useState('ag-layout-normal'), layoutClass = _o[0], setLayoutClass = _o[1];\n var cssClassManager = react_1.useRef();\n if (!cssClassManager.current) {\n cssClassManager.current = new ag_grid_community_1.CssClassManager(function () { return eRoot.current; });\n }\n var eRoot = react_1.useRef(null);\n var eTop = react_1.useRef(null);\n var eStickyTop = react_1.useRef(null);\n var eBody = react_1.useRef(null);\n var eBodyViewport = react_1.useRef(null);\n var eBottom = react_1.useRef(null);\n var beansToDestroy = react_1.useRef([]);\n var destroyFuncs = react_1.useRef([]);\n reactComment_1.default(' AG Grid Body ', eRoot);\n reactComment_1.default(' AG Pinned Top ', eTop);\n reactComment_1.default(' AG Sticky Top ', eStickyTop);\n reactComment_1.default(' AG Middle ', eBodyViewport);\n reactComment_1.default(' AG Pinned Bottom ', eBottom);\n var setRef = react_1.useCallback(function (e) {\n eRoot.current = e;\n if (!eRoot.current) {\n context.destroyBeans(beansToDestroy.current);\n destroyFuncs.current.forEach(function (f) { return f(); });\n beansToDestroy.current = [];\n destroyFuncs.current = [];\n return;\n }\n if (!context) {\n return;\n }\n var newComp = function (tag) {\n var CompClass = agStackComponentsRegistry.getComponentClass(tag);\n var comp = context.createBean(new CompClass());\n beansToDestroy.current.push(comp);\n return comp;\n };\n var attachToDom = function (eParent, eChild) {\n eParent.appendChild(eChild);\n destroyFuncs.current.push(function () { return eParent.removeChild(eChild); });\n };\n attachToDom(eRoot.current, document.createComment(' AG Fake Horizontal Scroll '));\n attachToDom(eRoot.current, newComp('AG-FAKE-HORIZONTAL-SCROLL').getGui());\n attachToDom(eRoot.current, document.createComment(' AG Overlay Wrapper '));\n attachToDom(eRoot.current, newComp('AG-OVERLAY-WRAPPER').getGui());\n if (eBody.current) {\n attachToDom(eBody.current, document.createComment(' AG Fake Vertical Scroll '));\n attachToDom(eBody.current, newComp('AG-FAKE-VERTICAL-SCROLL').getGui());\n }\n var compProxy = {\n setRowAnimationCssOnBodyViewport: setRowAnimationClass,\n setColumnCount: function (count) {\n if (eRoot.current) {\n ag_grid_community_1._.setAriaColCount(eRoot.current, count);\n }\n },\n setRowCount: function (count) {\n if (eRoot.current) {\n ag_grid_community_1._.setAriaRowCount(eRoot.current, count);\n }\n },\n setTopHeight: setTopHeight,\n setBottomHeight: setBottomHeight,\n setStickyTopHeight: setStickyTopHeight,\n setStickyTopTop: setStickyTopTop,\n setStickyTopWidth: setStickyTopWidth,\n setTopDisplay: setTopDisplay,\n setBottomDisplay: setBottomDisplay,\n setColumnMovingCss: function (cssClass, flag) { return cssClassManager.current.addOrRemoveCssClass(cssClass, flag); },\n updateLayoutClasses: setLayoutClass,\n setAlwaysVerticalScrollClass: setForceVerticalScrollClass,\n setPinnedTopBottomOverflowY: setTopAndBottomOverflowY,\n setCellSelectableCss: function (cssClass, flag) { return setCellSelectableCss(flag ? cssClass : null); },\n setBodyViewportWidth: function (width) {\n if (eBodyViewport.current) {\n eBodyViewport.current.style.width = width;\n }\n },\n registerBodyViewportResizeListener: function (listener) {\n if (eBodyViewport.current) {\n var unsubscribeFromResize_1 = resizeObserverService.observeResize(eBodyViewport.current, listener);\n destroyFuncs.current.push(function () { return unsubscribeFromResize_1(); });\n }\n }\n };\n var ctrl = context.createBean(new ag_grid_community_1.GridBodyCtrl());\n beansToDestroy.current.push(ctrl);\n ctrl.setComp(compProxy, eRoot.current, eBodyViewport.current, eTop.current, eBottom.current, eStickyTop.current);\n }, []);\n var rootClasses = react_1.useMemo(function () {\n return utils_1.classesList('ag-root', 'ag-unselectable', layoutClass);\n }, [layoutClass]);\n var bodyViewportClasses = react_1.useMemo(function () {\n return utils_1.classesList('ag-body-viewport', rowAnimationClass, layoutClass, forceVerticalScrollClass, cellSelectableCss);\n }, [rowAnimationClass, layoutClass, forceVerticalScrollClass, cellSelectableCss]);\n var bodyClasses = react_1.useMemo(function () {\n return utils_1.classesList('ag-body', layoutClass);\n }, [layoutClass]);\n var topClasses = react_1.useMemo(function () {\n return utils_1.classesList('ag-floating-top', cellSelectableCss);\n }, [cellSelectableCss]);\n var stickyTopClasses = react_1.useMemo(function () {\n return utils_1.classesList('ag-sticky-top', cellSelectableCss);\n }, [cellSelectableCss]);\n var bottomClasses = react_1.useMemo(function () {\n return utils_1.classesList('ag-floating-bottom', cellSelectableCss);\n }, [cellSelectableCss]);\n var topStyle = react_1.useMemo(function () { return ({\n height: topHeight,\n minHeight: topHeight,\n display: topDisplay,\n overflowY: topAndBottomOverflowY\n }); }, [topHeight, topDisplay, topAndBottomOverflowY]);\n var stickyTopStyle = react_1.useMemo(function () { return ({\n height: stickyTopHeight,\n top: stickyTopTop,\n width: stickyTopWidth\n }); }, [stickyTopHeight, stickyTopTop, stickyTopWidth]);\n var bottomStyle = react_1.useMemo(function () { return ({\n height: bottomHeight,\n minHeight: bottomHeight,\n display: bottomDisplay,\n overflowY: topAndBottomOverflowY\n }); }, [bottomHeight, bottomDisplay, topAndBottomOverflowY]);\n var createRowContainer = function (container) { return react_1.default.createElement(rowContainerComp_1.default, { name: container, key: container + \"-container\" }); };\n var createSection = function (_a) {\n var section = _a.section, children = _a.children, className = _a.className, style = _a.style;\n return (react_1.default.createElement(\"div\", { ref: section, className: className, role: \"presentation\", style: style }, children.map(createRowContainer)));\n };\n return (react_1.default.createElement(\"div\", { ref: setRef, className: rootClasses, role: \"treegrid\" },\n react_1.default.createElement(gridHeaderComp_1.default, null),\n createSection({ section: eTop, className: topClasses, style: topStyle, children: [\n ag_grid_community_1.RowContainerName.TOP_LEFT,\n ag_grid_community_1.RowContainerName.TOP_CENTER,\n ag_grid_community_1.RowContainerName.TOP_RIGHT,\n ag_grid_community_1.RowContainerName.TOP_FULL_WIDTH,\n ] }),\n react_1.default.createElement(\"div\", { className: bodyClasses, ref: eBody, role: \"presentation\" }, createSection({ section: eBodyViewport, className: bodyViewportClasses,\n children: [\n ag_grid_community_1.RowContainerName.LEFT,\n ag_grid_community_1.RowContainerName.CENTER,\n ag_grid_community_1.RowContainerName.RIGHT,\n ag_grid_community_1.RowContainerName.FULL_WIDTH,\n ] })),\n createSection({ section: eStickyTop, className: stickyTopClasses, style: stickyTopStyle, children: [\n ag_grid_community_1.RowContainerName.STICKY_TOP_LEFT,\n ag_grid_community_1.RowContainerName.STICKY_TOP_CENTER,\n ag_grid_community_1.RowContainerName.STICKY_TOP_RIGHT,\n ag_grid_community_1.RowContainerName.STICKY_TOP_FULL_WIDTH,\n ] }),\n createSection({ section: eBottom, className: bottomClasses, style: bottomStyle, children: [\n ag_grid_community_1.RowContainerName.BOTTOM_LEFT,\n ag_grid_community_1.RowContainerName.BOTTOM_CENTER,\n ag_grid_community_1.RowContainerName.BOTTOM_RIGHT,\n ag_grid_community_1.RowContainerName.BOTTOM_FULL_WIDTH,\n ] })));\n};\nexports.default = react_1.memo(GridBodyComp);\n","// ag-grid-react v30.2.0\n\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ag_grid_community_1 = require(\"ag-grid-community\");\nvar react_1 = __importStar(require(\"react\"));\nvar beansContext_1 = require(\"./beansContext\");\nvar gridBodyComp_1 = __importDefault(require(\"./gridBodyComp\"));\nvar reactComment_1 = __importDefault(require(\"./reactComment\"));\nvar tabGuardComp_1 = __importDefault(require(\"./tabGuardComp\"));\nvar utils_1 = require(\"./utils\");\nvar GridComp = function (_a) {\n var context = _a.context;\n var _b = react_1.useState(''), rtlClass = _b[0], setRtlClass = _b[1];\n var _c = react_1.useState(''), keyboardFocusClass = _c[0], setKeyboardFocusClass = _c[1];\n var _d = react_1.useState(''), layoutClass = _d[0], setLayoutClass = _d[1];\n var _e = react_1.useState(null), cursor = _e[0], setCursor = _e[1];\n var _f = react_1.useState(null), userSelect = _f[0], setUserSelect = _f[1];\n var _g = react_1.useState(false), initialised = _g[0], setInitialised = _g[1];\n var _h = react_1.useState(), tabGuardReady = _h[0], setTabGuardReady = _h[1];\n var gridCtrlRef = react_1.useRef(null);\n var eRootWrapperRef = react_1.useRef(null);\n var tabGuardRef = react_1.useRef();\n // eGridBodyParent is state as we use it in render\n var _j = react_1.useState(null), eGridBodyParent = _j[0], setGridBodyParent = _j[1];\n var focusInnerElementRef = react_1.useRef(function () { return undefined; });\n var onTabKeyDown = react_1.useCallback(function () { return undefined; }, []);\n var beans = react_1.useMemo(function () {\n if (context.isDestroyed()) {\n return null;\n }\n return context.getBean('beans');\n }, [context]);\n reactComment_1.default(' AG Grid ', eRootWrapperRef);\n var setRef = react_1.useCallback(function (e) {\n eRootWrapperRef.current = e;\n if (!eRootWrapperRef.current) {\n context.destroyBean(gridCtrlRef.current);\n gridCtrlRef.current = null;\n return;\n }\n if (context.isDestroyed()) {\n return;\n }\n gridCtrlRef.current = context.createBean(new ag_grid_community_1.GridCtrl());\n var gridCtrl = gridCtrlRef.current;\n focusInnerElementRef.current = gridCtrl.focusInnerElement.bind(gridCtrl);\n var compProxy = {\n destroyGridUi: function () { },\n setRtlClass: setRtlClass,\n addOrRemoveKeyboardFocusClass: function (addOrRemove) { return setKeyboardFocusClass(addOrRemove ? ag_grid_community_1.FocusService.AG_KEYBOARD_FOCUS : ''); },\n forceFocusOutOfContainer: function () {\n var _a;\n (_a = tabGuardRef.current) === null || _a === void 0 ? void 0 : _a.forceFocusOutOfContainer();\n },\n updateLayoutClasses: setLayoutClass,\n getFocusableContainers: function () {\n var _a, _b;\n var els = [];\n var gridBodyCompEl = (_a = eRootWrapperRef.current) === null || _a === void 0 ? void 0 : _a.querySelector('.ag-root');\n var sideBarEl = (_b = eRootWrapperRef.current) === null || _b === void 0 ? void 0 : _b.querySelector('.ag-side-bar:not(.ag-hidden)');\n if (gridBodyCompEl) {\n els.push(gridBodyCompEl);\n }\n if (sideBarEl) {\n els.push(sideBarEl);\n }\n return els;\n },\n setCursor: setCursor,\n setUserSelect: setUserSelect\n };\n gridCtrl.setComp(compProxy, eRootWrapperRef.current, eRootWrapperRef.current);\n setInitialised(true);\n }, []);\n // initialise the extra components\n react_1.useEffect(function () {\n if (!tabGuardReady || !beans || !gridCtrlRef.current || !eGridBodyParent || !eRootWrapperRef.current) {\n return;\n }\n var gridCtrl = gridCtrlRef.current;\n var beansToDestroy = [];\n var agStackComponentsRegistry = beans.agStackComponentsRegistry;\n var HeaderDropZonesClass = agStackComponentsRegistry.getComponentClass('AG-GRID-HEADER-DROP-ZONES');\n var SideBarClass = agStackComponentsRegistry.getComponentClass('AG-SIDE-BAR');\n var StatusBarClass = agStackComponentsRegistry.getComponentClass('AG-STATUS-BAR');\n var WatermarkClass = agStackComponentsRegistry.getComponentClass('AG-WATERMARK');\n var PaginationClass = agStackComponentsRegistry.getComponentClass('AG-PAGINATION');\n var additionalEls = [];\n var eRootWrapper = eRootWrapperRef.current;\n if (gridCtrl.showDropZones() && HeaderDropZonesClass) {\n var headerDropZonesComp = context.createBean(new HeaderDropZonesClass());\n var eGui = headerDropZonesComp.getGui();\n eRootWrapper.insertAdjacentElement('afterbegin', eGui);\n additionalEls.push(eGui);\n beansToDestroy.push(headerDropZonesComp);\n }\n if (gridCtrl.showSideBar() && SideBarClass) {\n var sideBarComp = context.createBean(new SideBarClass());\n var eGui = sideBarComp.getGui();\n var bottomTabGuard = eGridBodyParent.querySelector('.ag-tab-guard-bottom');\n if (bottomTabGuard) {\n bottomTabGuard.insertAdjacentElement('beforebegin', eGui);\n additionalEls.push(eGui);\n }\n beansToDestroy.push(sideBarComp);\n }\n if (gridCtrl.showStatusBar() && StatusBarClass) {\n var statusBarComp = context.createBean(new StatusBarClass());\n var eGui = statusBarComp.getGui();\n eRootWrapper.insertAdjacentElement('beforeend', eGui);\n additionalEls.push(eGui);\n beansToDestroy.push(statusBarComp);\n }\n if (PaginationClass) {\n var paginationComp = context.createBean(new PaginationClass());\n var eGui = paginationComp.getGui();\n eRootWrapper.insertAdjacentElement('beforeend', eGui);\n additionalEls.push(eGui);\n beansToDestroy.push(paginationComp);\n }\n if (gridCtrl.showWatermark() && WatermarkClass) {\n var watermarkComp = context.createBean(new WatermarkClass());\n var eGui = watermarkComp.getGui();\n eRootWrapper.insertAdjacentElement('beforeend', eGui);\n additionalEls.push(eGui);\n beansToDestroy.push(watermarkComp);\n }\n return function () {\n context.destroyBeans(beansToDestroy);\n additionalEls.forEach(function (el) {\n if (el.parentElement) {\n el.parentElement.removeChild(el);\n }\n });\n };\n }, [tabGuardReady, eGridBodyParent, beans]);\n var rootWrapperClasses = react_1.useMemo(function () { return utils_1.classesList('ag-root-wrapper', rtlClass, keyboardFocusClass, layoutClass); }, [rtlClass, keyboardFocusClass, layoutClass]);\n var rootWrapperBodyClasses = react_1.useMemo(function () { return utils_1.classesList('ag-root-wrapper-body', 'ag-focus-managed', layoutClass); }, [layoutClass]);\n var topStyle = react_1.useMemo(function () { return ({\n userSelect: userSelect != null ? userSelect : '',\n WebkitUserSelect: userSelect != null ? userSelect : '',\n cursor: cursor != null ? cursor : ''\n }); }, [userSelect, cursor]);\n var setTabGuardCompRef = react_1.useCallback(function (ref) {\n tabGuardRef.current = ref;\n setTabGuardReady(ref !== null);\n }, []);\n return (react_1.default.createElement(\"div\", { ref: setRef, className: rootWrapperClasses, style: topStyle, role: \"presentation\" },\n react_1.default.createElement(\"div\", { className: rootWrapperBodyClasses, ref: setGridBodyParent, role: \"presentation\" }, initialised && eGridBodyParent && beans &&\n react_1.default.createElement(beansContext_1.BeansContext.Provider, { value: beans },\n react_1.default.createElement(tabGuardComp_1.default, { ref: setTabGuardCompRef, eFocusableElement: eGridBodyParent, onTabKeyDown: onTabKeyDown, gridCtrl: gridCtrlRef.current }, // we wait for initialised before rending the children, so GridComp has created and registered with it's\n // GridCtrl before we create the child GridBodyComp. Otherwise the GridBodyComp would initialise first,\n // before we have set the the Layout CSS classes, causing the GridBodyComp to render rows to a grid that\n // doesn't have it's height specified, which would result if all the rows getting rendered (and if many rows,\n // hangs the UI)\n react_1.default.createElement(gridBodyComp_1.default, null))))));\n};\nexports.default = react_1.memo(GridComp);\n","// ag-grid-react v30.2.0\n\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = __importStar(require(\"react\"));\nvar beansContext_1 = require(\"../beansContext\");\nvar ag_grid_community_1 = require(\"ag-grid-community\");\nvar utils_1 = require(\"../utils\");\nvar headerRowContainerComp_1 = __importDefault(require(\"./headerRowContainerComp\"));\nvar GridHeaderComp = function () {\n var _a = react_1.useState(function () { return new utils_1.CssClasses(); }), cssClasses = _a[0], setCssClasses = _a[1];\n var _b = react_1.useState(), height = _b[0], setHeight = _b[1];\n var context = react_1.useContext(beansContext_1.BeansContext).context;\n var eGui = react_1.useRef(null);\n var gridCtrlRef = react_1.useRef(null);\n var setRef = react_1.useCallback(function (e) {\n eGui.current = e;\n if (!e) {\n context.destroyBean(gridCtrlRef.current);\n gridCtrlRef.current = null;\n return;\n }\n var compProxy = {\n addOrRemoveCssClass: function (name, on) { return setCssClasses(function (prev) { return prev.setClass(name, on); }); },\n setHeightAndMinHeight: function (height) { return setHeight(height); }\n };\n gridCtrlRef.current = context.createBean(new ag_grid_community_1.GridHeaderCtrl());\n gridCtrlRef.current.setComp(compProxy, eGui.current, eGui.current);\n }, []);\n var className = react_1.useMemo(function () {\n var res = cssClasses.toString();\n return 'ag-header ' + res;\n }, [cssClasses]);\n var style = react_1.useMemo(function () { return ({\n height: height,\n minHeight: height\n }); }, [height]);\n return (react_1.default.createElement(\"div\", { ref: setRef, className: className, style: style, role: \"presentation\" },\n react_1.default.createElement(headerRowContainerComp_1.default, { pinned: 'left' }),\n react_1.default.createElement(headerRowContainerComp_1.default, { pinned: null }),\n react_1.default.createElement(headerRowContainerComp_1.default, { pinned: 'right' })));\n};\nexports.default = react_1.memo(GridHeaderComp);\n","// ag-grid-react v30.2.0\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = __importStar(require(\"react\"));\nvar beansContext_1 = require(\"../beansContext\");\nvar ag_grid_community_1 = require(\"ag-grid-community\");\nvar utils_1 = require(\"../utils\");\nvar jsComp_1 = require(\"../jsComp\");\nvar HeaderCellComp = function (props) {\n var ctrl = props.ctrl;\n var context = react_1.useContext(beansContext_1.BeansContext).context;\n var colId = ctrl.getColId();\n var _a = react_1.useState(), userCompDetails = _a[0], setUserCompDetails = _a[1];\n var eGui = react_1.useRef(null);\n var eResize = react_1.useRef(null);\n var eHeaderCompWrapper = react_1.useRef(null);\n var userCompRef = react_1.useRef();\n var cssClassManager = react_1.useRef();\n if (!cssClassManager.current) {\n cssClassManager.current = new ag_grid_community_1.CssClassManager(function () { return eGui.current; });\n }\n var setRef = react_1.useCallback(function (e) {\n var _a;\n eGui.current = e;\n if (!eGui.current) {\n // Any clean up required?\n return;\n }\n var compProxy = {\n setWidth: function (width) {\n if (eGui.current) {\n eGui.current.style.width = width;\n }\n },\n addOrRemoveCssClass: function (name, on) { return cssClassManager.current.addOrRemoveCssClass(name, on); },\n setAriaDescription: function (label) {\n if (eGui.current) {\n ag_grid_community_1._.setAriaDescription(eGui.current, label);\n }\n },\n setAriaSort: function (sort) {\n if (eGui.current) {\n sort ? ag_grid_community_1._.setAriaSort(eGui.current, sort) : ag_grid_community_1._.removeAriaSort(eGui.current);\n }\n },\n setUserCompDetails: function (compDetails) { return setUserCompDetails(compDetails); },\n getUserCompInstance: function () { return userCompRef.current || undefined; }\n };\n ctrl.setComp(compProxy, eGui.current, eResize.current, eHeaderCompWrapper.current);\n var selectAllGui = ctrl.getSelectAllGui();\n (_a = eResize.current) === null || _a === void 0 ? void 0 : _a.insertAdjacentElement('afterend', selectAllGui);\n }, []);\n // js comps\n react_1.useLayoutEffect(function () { return jsComp_1.showJsComp(userCompDetails, context, eHeaderCompWrapper.current, userCompRef); }, [userCompDetails]);\n // add drag handling, must be done after component is added to the dom\n react_1.useEffect(function () {\n ctrl.setDragSource(eGui.current);\n }, [userCompDetails]);\n var userCompStateless = react_1.useMemo(function () {\n var res = (userCompDetails === null || userCompDetails === void 0 ? void 0 : userCompDetails.componentFromFramework) && utils_1.isComponentStateless(userCompDetails.componentClass);\n return !!res;\n }, [userCompDetails]);\n var reactUserComp = userCompDetails && userCompDetails.componentFromFramework;\n var UserCompClass = userCompDetails && userCompDetails.componentClass;\n return (react_1.default.createElement(\"div\", { ref: setRef, className: \"ag-header-cell\", \"col-id\": colId, role: \"columnheader\", tabIndex: -1 },\n react_1.default.createElement(\"div\", { ref: eResize, className: \"ag-header-cell-resize\", role: \"presentation\" }),\n react_1.default.createElement(\"div\", { ref: eHeaderCompWrapper, className: \"ag-header-cell-comp-wrapper\", role: \"presentation\" },\n reactUserComp && userCompStateless && react_1.default.createElement(UserCompClass, __assign({}, userCompDetails.params)),\n reactUserComp && !userCompStateless && react_1.default.createElement(UserCompClass, __assign({}, userCompDetails.params, { ref: userCompRef })))));\n};\nexports.default = react_1.memo(HeaderCellComp);\n","// ag-grid-react v30.2.0\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = __importStar(require(\"react\"));\nvar beansContext_1 = require(\"../beansContext\");\nvar ag_grid_community_1 = require(\"ag-grid-community\");\nvar utils_1 = require(\"../utils\");\nvar jsComp_1 = require(\"../jsComp\");\nvar HeaderFilterCellComp = function (props) {\n var context = react_1.useContext(beansContext_1.BeansContext).context;\n var _a = react_1.useState(function () { return new utils_1.CssClasses('ag-header-cell', 'ag-floating-filter'); }), cssClasses = _a[0], setCssClasses = _a[1];\n var _b = react_1.useState(function () { return new utils_1.CssClasses(); }), cssBodyClasses = _b[0], setBodyCssClasses = _b[1];\n var _c = react_1.useState(function () { return new utils_1.CssClasses('ag-floating-filter-button', 'ag-hidden'); }), cssButtonWrapperClasses = _c[0], setButtonWrapperCssClasses = _c[1];\n var _d = react_1.useState(\"false\"), buttonWrapperAriaHidden = _d[0], setButtonWrapperAriaHidden = _d[1];\n var _e = react_1.useState(), userCompDetails = _e[0], setUserCompDetails = _e[1];\n var eGui = react_1.useRef(null);\n var eFloatingFilterBody = react_1.useRef(null);\n var eButtonWrapper = react_1.useRef(null);\n var eButtonShowMainFilter = react_1.useRef(null);\n var userCompResolve = react_1.useRef();\n var userCompPromise = react_1.useRef();\n var userCompRef = function (value) {\n // We skip when it's un-setting\n if (value == null) {\n return;\n }\n userCompResolve.current && userCompResolve.current(value);\n };\n var ctrl = props.ctrl;\n var setRef = react_1.useCallback(function (e) {\n eGui.current = e;\n if (!eGui.current) {\n return;\n }\n userCompPromise.current = new ag_grid_community_1.AgPromise(function (resolve) {\n userCompResolve.current = resolve;\n });\n var compProxy = {\n addOrRemoveCssClass: function (name, on) { return setCssClasses(function (prev) { return prev.setClass(name, on); }); },\n addOrRemoveBodyCssClass: function (name, on) { return setBodyCssClasses(function (prev) { return prev.setClass(name, on); }); },\n setButtonWrapperDisplayed: function (displayed) {\n setButtonWrapperCssClasses(function (prev) { return prev.setClass('ag-hidden', !displayed); });\n setButtonWrapperAriaHidden(!displayed ? \"true\" : \"false\");\n },\n setWidth: function (width) {\n if (eGui.current) {\n eGui.current.style.width = width;\n }\n },\n setCompDetails: function (compDetails) { return setUserCompDetails(compDetails); },\n getFloatingFilterComp: function () { return userCompPromise.current ? userCompPromise.current : null; },\n setMenuIcon: function (eIcon) { var _a; return (_a = eButtonShowMainFilter.current) === null || _a === void 0 ? void 0 : _a.appendChild(eIcon); }\n };\n ctrl.setComp(compProxy, eGui.current, eButtonShowMainFilter.current, eFloatingFilterBody.current);\n }, []);\n // js comps\n react_1.useLayoutEffect(function () { return jsComp_1.showJsComp(userCompDetails, context, eFloatingFilterBody.current, userCompRef); }, [userCompDetails]);\n var className = react_1.useMemo(function () { return cssClasses.toString(); }, [cssClasses]);\n var bodyClassName = react_1.useMemo(function () { return cssBodyClasses.toString(); }, [cssBodyClasses]);\n var buttonWrapperClassName = react_1.useMemo(function () { return cssButtonWrapperClasses.toString(); }, [cssButtonWrapperClasses]);\n var userCompStateless = react_1.useMemo(function () {\n var res = userCompDetails\n && userCompDetails.componentFromFramework\n && utils_1.isComponentStateless(userCompDetails.componentClass);\n return !!res;\n }, [userCompDetails]);\n var reactUserComp = userCompDetails && userCompDetails.componentFromFramework;\n var UserCompClass = userCompDetails && userCompDetails.componentClass;\n return (react_1.default.createElement(\"div\", { ref: setRef, className: className, role: \"gridcell\", tabIndex: -1 },\n react_1.default.createElement(\"div\", { ref: eFloatingFilterBody, className: bodyClassName, role: \"presentation\" },\n reactUserComp && userCompStateless && react_1.default.createElement(UserCompClass, __assign({}, userCompDetails.params)),\n reactUserComp && !userCompStateless && react_1.default.createElement(UserCompClass, __assign({}, userCompDetails.params, { ref: userCompRef }))),\n react_1.default.createElement(\"div\", { ref: eButtonWrapper, \"aria-hidden\": buttonWrapperAriaHidden, className: buttonWrapperClassName, role: \"presentation\" },\n react_1.default.createElement(\"button\", { ref: eButtonShowMainFilter, type: \"button\", className: \"ag-button ag-floating-filter-button-button\", tabIndex: -1 }))));\n};\nexports.default = react_1.memo(HeaderFilterCellComp);\n","// ag-grid-react v30.2.0\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = __importStar(require(\"react\"));\nvar beansContext_1 = require(\"../beansContext\");\nvar jsComp_1 = require(\"../jsComp\");\nvar utils_1 = require(\"../utils\");\nvar HeaderGroupCellComp = function (props) {\n var context = react_1.useContext(beansContext_1.BeansContext).context;\n var ctrl = props.ctrl;\n var _a = react_1.useState(function () { return new utils_1.CssClasses(); }), cssClasses = _a[0], setCssClasses = _a[1];\n var _b = react_1.useState(function () { return new utils_1.CssClasses(); }), cssResizableClasses = _b[0], setResizableCssClasses = _b[1];\n var _c = react_1.useState(\"false\"), resizableAriaHidden = _c[0], setResizableAriaHidden = _c[1];\n var _d = react_1.useState(), ariaExpanded = _d[0], setAriaExpanded = _d[1];\n var _e = react_1.useState(), userCompDetails = _e[0], setUserCompDetails = _e[1];\n var colId = react_1.useMemo(function () { return ctrl.getColId(); }, []);\n var eGui = react_1.useRef(null);\n var eResize = react_1.useRef(null);\n var setRef = react_1.useCallback(function (e) {\n eGui.current = e;\n if (!eGui.current) {\n return;\n }\n var compProxy = {\n setWidth: function (width) {\n if (eGui.current) {\n eGui.current.style.width = width;\n }\n },\n addOrRemoveCssClass: function (name, on) { return setCssClasses(function (prev) { return prev.setClass(name, on); }); },\n setUserCompDetails: function (compDetails) { return setUserCompDetails(compDetails); },\n setResizableDisplayed: function (displayed) {\n setResizableCssClasses(function (prev) { return prev.setClass('ag-hidden', !displayed); });\n setResizableAriaHidden(!displayed ? \"true\" : \"false\");\n },\n setAriaExpanded: function (expanded) { return setAriaExpanded(expanded); }\n };\n ctrl.setComp(compProxy, eGui.current, eResize.current);\n }, []);\n // js comps\n react_1.useLayoutEffect(function () { return jsComp_1.showJsComp(userCompDetails, context, eGui.current); }, [userCompDetails]);\n // add drag handling, must be done after component is added to the dom\n react_1.useEffect(function () {\n if (eGui.current) {\n ctrl.setDragSource(eGui.current);\n }\n }, [userCompDetails]);\n var className = react_1.useMemo(function () { return 'ag-header-group-cell ' + cssClasses.toString(); }, [cssClasses]);\n var resizableClassName = react_1.useMemo(function () { return 'ag-header-cell-resize ' + cssResizableClasses.toString(); }, [cssResizableClasses]);\n var reactUserComp = userCompDetails && userCompDetails.componentFromFramework;\n var UserCompClass = userCompDetails && userCompDetails.componentClass;\n return (react_1.default.createElement(\"div\", { ref: setRef, className: className, \"col-id\": colId, role: \"columnheader\", tabIndex: -1, \"aria-expanded\": ariaExpanded },\n reactUserComp && react_1.default.createElement(UserCompClass, __assign({}, userCompDetails.params)),\n react_1.default.createElement(\"div\", { ref: eResize, \"aria-hidden\": resizableAriaHidden, className: resizableClassName })));\n};\nexports.default = react_1.memo(HeaderGroupCellComp);\n","// ag-grid-react v30.2.0\n\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ag_grid_community_1 = require(\"ag-grid-community\");\nvar react_1 = __importStar(require(\"react\"));\nvar headerCellComp_1 = __importDefault(require(\"./headerCellComp\"));\nvar headerGroupCellComp_1 = __importDefault(require(\"./headerGroupCellComp\"));\nvar headerFilterCellComp_1 = __importDefault(require(\"./headerFilterCellComp\"));\nvar utils_1 = require(\"../utils\");\nvar HeaderRowComp = function (props) {\n var ctrl = props.ctrl;\n var _a = react_1.useMemo(function () { return ctrl.getTopAndHeight(); }, []), topOffset = _a.topOffset, rowHeight = _a.rowHeight;\n var ariaRowIndex = ctrl.getAriaRowIndex();\n var className = ctrl.getHeaderRowClass();\n var transform = react_1.useMemo(function () { return ctrl.getTransform(); }, []);\n var _b = react_1.useState(function () { return rowHeight + 'px'; }), height = _b[0], setHeight = _b[1];\n var _c = react_1.useState(function () { return topOffset + 'px'; }), top = _c[0], setTop = _c[1];\n var _d = react_1.useState(function () { return ctrl.getHeaderCtrls(); }), cellCtrls = _d[0], setCellCtrls = _d[1];\n var eGui = react_1.useRef(null);\n var setRef = react_1.useCallback(function (e) {\n eGui.current = e;\n if (!e) {\n return;\n }\n var compProxy = {\n setHeight: function (height) { return setHeight(height); },\n setTop: function (top) { return setTop(top); },\n setHeaderCtrls: function (ctrls, forceOrder, afterScroll) {\n utils_1.agFlushSync(afterScroll, function () {\n setCellCtrls(function (prev) { return utils_1.getNextValueIfDifferent(prev, ctrls, forceOrder); });\n });\n },\n setWidth: function (width) {\n if (eGui.current) {\n eGui.current.style.width = width;\n }\n },\n };\n ctrl.setComp(compProxy, false);\n }, []);\n var style = react_1.useMemo(function () { return ({\n transform: transform,\n height: height,\n top: top,\n }); }, [transform, height, top]);\n var createCellJsx = react_1.useCallback(function (cellCtrl) {\n switch (ctrl.getType()) {\n case ag_grid_community_1.HeaderRowType.COLUMN_GROUP:\n return react_1.default.createElement(headerGroupCellComp_1.default, { ctrl: cellCtrl, key: cellCtrl.getInstanceId() });\n case ag_grid_community_1.HeaderRowType.FLOATING_FILTER:\n return react_1.default.createElement(headerFilterCellComp_1.default, { ctrl: cellCtrl, key: cellCtrl.getInstanceId() });\n default:\n return react_1.default.createElement(headerCellComp_1.default, { ctrl: cellCtrl, key: cellCtrl.getInstanceId() });\n }\n }, []);\n return (react_1.default.createElement(\"div\", { ref: setRef, className: className, role: \"row\", style: style, \"aria-rowindex\": ariaRowIndex }, cellCtrls.map(createCellJsx)));\n};\nexports.default = react_1.memo(HeaderRowComp);\n","// ag-grid-react v30.2.0\n\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = __importStar(require(\"react\"));\nvar beansContext_1 = require(\"../beansContext\");\nvar ag_grid_community_1 = require(\"ag-grid-community\");\nvar headerRowComp_1 = __importDefault(require(\"./headerRowComp\"));\nvar HeaderRowContainerComp = function (props) {\n var _a = react_1.useState(true), displayed = _a[0], setDisplayed = _a[1];\n var _b = react_1.useState([]), headerRowCtrls = _b[0], setHeaderRowCtrls = _b[1];\n var context = react_1.useContext(beansContext_1.BeansContext).context;\n var eGui = react_1.useRef(null);\n var eCenterContainer = react_1.useRef(null);\n var headerRowCtrlRef = react_1.useRef(null);\n var pinnedLeft = props.pinned === 'left';\n var pinnedRight = props.pinned === 'right';\n var centre = !pinnedLeft && !pinnedRight;\n var setRef = react_1.useCallback(function (e) {\n eGui.current = e;\n if (!eGui.current) {\n context.destroyBean(headerRowCtrlRef.current);\n headerRowCtrlRef.current = null;\n return;\n }\n var compProxy = {\n setDisplayed: setDisplayed,\n setCtrls: function (ctrls) { return setHeaderRowCtrls(ctrls); },\n // centre only\n setCenterWidth: function (width) {\n if (eCenterContainer.current) {\n eCenterContainer.current.style.width = width;\n }\n },\n setViewportScrollLeft: function (left) {\n if (eGui.current) {\n eGui.current.scrollLeft = left;\n }\n },\n // pinned only\n setPinnedContainerWidth: function (width) {\n if (eGui.current) {\n eGui.current.style.width = width;\n eGui.current.style.minWidth = width;\n eGui.current.style.maxWidth = width;\n }\n }\n };\n headerRowCtrlRef.current = context.createBean(new ag_grid_community_1.HeaderRowContainerCtrl(props.pinned));\n headerRowCtrlRef.current.setComp(compProxy, eGui.current);\n }, []);\n var className = !displayed ? 'ag-hidden' : '';\n var insertRowsJsx = function () { return headerRowCtrls.map(function (ctrl) { return react_1.default.createElement(headerRowComp_1.default, { ctrl: ctrl, key: ctrl.getInstanceId() }); }); };\n return (react_1.default.createElement(react_1.default.Fragment, null,\n pinnedLeft &&\n react_1.default.createElement(\"div\", { ref: setRef, className: \"ag-pinned-left-header \" + className, \"aria-hidden\": !displayed, role: \"presentation\" }, insertRowsJsx()),\n pinnedRight &&\n react_1.default.createElement(\"div\", { ref: setRef, className: \"ag-pinned-right-header \" + className, \"aria-hidden\": !displayed, role: \"presentation\" }, insertRowsJsx()),\n centre &&\n react_1.default.createElement(\"div\", { ref: setRef, className: \"ag-header-viewport \" + className, role: \"presentation\" },\n react_1.default.createElement(\"div\", { ref: eCenterContainer, className: \"ag-header-container\", role: \"rowgroup\" }, insertRowsJsx()))));\n};\nexports.default = react_1.memo(HeaderRowContainerComp);\n","// ag-grid-react v30.2.0\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.createSyncJsComp = exports.showJsComp = void 0;\n/**\n * Show a JS Component\n * @returns Effect Cleanup function\n */\nvar showJsComp = function (compDetails, context, eParent, ref) {\n var doNothing = !compDetails || compDetails.componentFromFramework || context.isDestroyed();\n if (doNothing) {\n return;\n }\n var promise = compDetails.newAgStackInstance();\n if (!promise) {\n return;\n }\n // almost all JS Comps are NOT async, however the Floating Multi Filter is Async as it could\n // be wrapping a React filter, so we need to cater for async comps here.\n var comp;\n var compGui;\n var destroyed = false;\n promise.then(function (c) {\n if (destroyed) {\n context.destroyBean(c);\n return;\n }\n comp = c;\n compGui = comp.getGui();\n eParent.appendChild(compGui);\n setRef(ref, comp);\n });\n return function () {\n destroyed = true;\n if (!comp) {\n return;\n } // in case we were destroyed before async comp was returned\n if (compGui && compGui.parentElement) {\n compGui.parentElement.removeChild(compGui);\n }\n context.destroyBean(comp);\n if (ref) {\n setRef(ref, undefined);\n }\n };\n};\nexports.showJsComp = showJsComp;\nvar setRef = function (ref, value) {\n if (!ref) {\n return;\n }\n if (ref instanceof Function) {\n var refCallback = ref;\n refCallback(value);\n }\n else {\n var refObj = ref;\n refObj.current = value;\n }\n};\nvar createSyncJsComp = function (compDetails) {\n var promise = compDetails.newAgStackInstance();\n if (!promise) {\n return;\n }\n return promise.resolveNow(null, function (x) { return x; }); // js comps are never async\n};\nexports.createSyncJsComp = createSyncJsComp;\n","// ag-grid-react v30.2.0\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = require(\"react\");\nvar useReactCommentEffect = function (comment, eForCommentRef) {\n react_1.useEffect(function () {\n var eForComment = eForCommentRef.current;\n if (eForComment) {\n var eParent_1 = eForComment.parentElement;\n if (eParent_1) {\n var eComment_1 = document.createComment(comment);\n eParent_1.insertBefore(eComment_1, eForComment);\n return function () {\n eParent_1.removeChild(eComment_1);\n };\n }\n }\n }, [comment]);\n};\nexports.default = useReactCommentEffect;\n","// ag-grid-react v30.2.0\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = __importStar(require(\"react\"));\nvar ag_grid_community_1 = require(\"ag-grid-community\");\nvar jsComp_1 = require(\"../jsComp\");\nvar utils_1 = require(\"../utils\");\nvar beansContext_1 = require(\"../beansContext\");\nvar cellComp_1 = __importDefault(require(\"../cells/cellComp\"));\nvar RowComp = function (params) {\n var context = react_1.useContext(beansContext_1.BeansContext).context;\n var rowCtrl = params.rowCtrl, containerType = params.containerType;\n var tabIndex = rowCtrl.getTabIndex();\n var domOrderRef = react_1.useRef(rowCtrl.getDomOrder());\n var isFullWidth = rowCtrl.isFullWidth();\n // Flag used to avoid problematic initialState setter funcs being called on a dead / non displayed row. \n // Due to async rendering its possible for the row to be destroyed before React has had a chance to render it.\n var isDisplayed = rowCtrl.getRowNode().displayed;\n var _a = react_1.useState(function () { return isDisplayed ? rowCtrl.getRowIndex() : null; }), rowIndex = _a[0], setRowIndex = _a[1];\n var _b = react_1.useState(function () { return rowCtrl.getRowId(); }), rowId = _b[0], setRowId = _b[1];\n var _c = react_1.useState(function () { return rowCtrl.getBusinessKey(); }), rowBusinessKey = _c[0], setRowBusinessKey = _c[1];\n var _d = react_1.useState(function () { return rowCtrl.getRowStyles(); }), userStyles = _d[0], setUserStyles = _d[1];\n var _e = react_1.useState(function () { return null; }), cellCtrls = _e[0], setCellCtrls = _e[1];\n var _f = react_1.useState(), fullWidthCompDetails = _f[0], setFullWidthCompDetails = _f[1];\n // these styles have initial values, so element is placed into the DOM with them,\n // rather than an transition getting applied.\n var _g = react_1.useState(function () { return isDisplayed ? rowCtrl.getInitialRowTop(containerType) : undefined; }), top = _g[0], setTop = _g[1];\n var _h = react_1.useState(function () { return isDisplayed ? rowCtrl.getInitialTransform(containerType) : undefined; }), transform = _h[0], setTransform = _h[1];\n var eGui = react_1.useRef(null);\n var fullWidthCompRef = react_1.useRef();\n var autoHeightSetup = react_1.useRef(false);\n var _j = react_1.useState(0), autoHeightSetupAttempt = _j[0], setAutoHeightSetupAttempt = _j[1];\n // puts autoHeight onto full with detail rows. this needs trickery, as we need\n // the HTMLElement for the provided Detail Cell Renderer, however the Detail Cell Renderer\n // could be a stateless React Func Comp which won't work with useRef, so we need\n // to poll (we limit to 10) looking for the Detail HTMLElement (which will be the only\n // child) after the fullWidthCompDetails is set.\n // I think this looping could be avoided if we use a ref Callback instead of useRef,\n react_1.useEffect(function () {\n var _a;\n if (autoHeightSetup.current) {\n return;\n }\n if (!fullWidthCompDetails) {\n return;\n }\n if (autoHeightSetupAttempt > 10) {\n return;\n }\n var eChild = (_a = eGui.current) === null || _a === void 0 ? void 0 : _a.firstChild;\n if (eChild) {\n rowCtrl.setupDetailRowAutoHeight(eChild);\n autoHeightSetup.current = true;\n }\n else {\n setAutoHeightSetupAttempt(function (prev) { return prev + 1; });\n }\n }, [fullWidthCompDetails, autoHeightSetupAttempt]);\n var cssClassManager = react_1.useRef();\n if (!cssClassManager.current) {\n cssClassManager.current = new ag_grid_community_1.CssClassManager(function () { return eGui.current; });\n }\n var setRef = react_1.useCallback(function (e) {\n eGui.current = e;\n if (!eGui.current) {\n rowCtrl.unsetComp(containerType);\n return;\n }\n // because React is asynchronous, it's possible the RowCtrl is no longer a valid RowCtrl. This can\n // happen if user calls two API methods one after the other, with the second API invalidating the rows\n // the first call created. Thus the rows for the first call could still get created even though no longer needed.\n if (!rowCtrl.isAlive()) {\n return;\n }\n var compProxy = {\n // the rowTop is managed by state, instead of direct style manipulation by rowCtrl (like all the other styles)\n // as we need to have an initial value when it's placed into he DOM for the first time, for animation to work.\n setTop: setTop,\n setTransform: setTransform,\n // i found using React for managing classes at the row level was to slow, as modifying classes caused a lot of\n // React code to execute, so avoiding React for managing CSS Classes made the grid go much faster.\n addOrRemoveCssClass: function (name, on) { return cssClassManager.current.addOrRemoveCssClass(name, on); },\n setDomOrder: function (domOrder) { return domOrderRef.current = domOrder; },\n setRowIndex: setRowIndex,\n setRowId: setRowId,\n setRowBusinessKey: setRowBusinessKey,\n setUserStyles: setUserStyles,\n // if we don't maintain the order, then cols will be ripped out and into the dom\n // when cols reordered, which would stop the CSS transitions from working\n setCellCtrls: function (next, useFlushSync) {\n utils_1.agFlushSync(useFlushSync, function () {\n setCellCtrls(function (prev) { return utils_1.getNextValueIfDifferent(prev, next, domOrderRef.current); });\n });\n },\n showFullWidth: function (compDetails) { return setFullWidthCompDetails(compDetails); },\n getFullWidthCellRenderer: function () { return fullWidthCompRef.current; },\n };\n rowCtrl.setComp(compProxy, eGui.current, containerType);\n }, []);\n react_1.useLayoutEffect(function () { return jsComp_1.showJsComp(fullWidthCompDetails, context, eGui.current, fullWidthCompRef); }, [fullWidthCompDetails]);\n var rowStyles = react_1.useMemo(function () {\n var res = { top: top, transform: transform };\n Object.assign(res, userStyles);\n return res;\n }, [top, transform, userStyles]);\n var showFullWidthFramework = isFullWidth && fullWidthCompDetails && fullWidthCompDetails.componentFromFramework;\n var showCells = !isFullWidth && cellCtrls != null;\n var reactFullWidthCellRendererStateless = react_1.useMemo(function () {\n var res = (fullWidthCompDetails === null || fullWidthCompDetails === void 0 ? void 0 : fullWidthCompDetails.componentFromFramework) && utils_1.isComponentStateless(fullWidthCompDetails.componentClass);\n return !!res;\n }, [fullWidthCompDetails]);\n var showCellsJsx = function () { return cellCtrls === null || cellCtrls === void 0 ? void 0 : cellCtrls.map(function (cellCtrl) { return (react_1.default.createElement(cellComp_1.default, { cellCtrl: cellCtrl, editingRow: rowCtrl.isEditing(), printLayout: rowCtrl.isPrintLayout(), key: cellCtrl.getInstanceId() })); }); };\n var showFullWidthFrameworkJsx = function () {\n var FullWidthComp = fullWidthCompDetails.componentClass;\n return (react_1.default.createElement(react_1.default.Fragment, null,\n reactFullWidthCellRendererStateless\n && react_1.default.createElement(FullWidthComp, __assign({}, fullWidthCompDetails.params)),\n !reactFullWidthCellRendererStateless\n && react_1.default.createElement(FullWidthComp, __assign({}, fullWidthCompDetails.params, { ref: fullWidthCompRef }))));\n };\n return (react_1.default.createElement(\"div\", { ref: setRef, role: 'row', style: rowStyles, \"row-index\": rowIndex, \"row-id\": rowId, \"row-business-key\": rowBusinessKey, tabIndex: tabIndex },\n showCells && showCellsJsx(),\n showFullWidthFramework && showFullWidthFrameworkJsx()));\n};\nexports.default = react_1.memo(RowComp);\n","// ag-grid-react v30.2.0\n\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar ag_grid_community_1 = require(\"ag-grid-community\");\nvar react_1 = __importStar(require(\"react\"));\nvar utils_1 = require(\"../utils\");\nvar reactComment_1 = __importDefault(require(\"../reactComment\"));\nvar rowComp_1 = __importDefault(require(\"./rowComp\"));\nvar beansContext_1 = require(\"../beansContext\");\nvar RowContainerComp = function (params) {\n var context = react_1.useContext(beansContext_1.BeansContext).context;\n var name = params.name;\n var containerType = react_1.useMemo(function () { return ag_grid_community_1.getRowContainerTypeForName(name); }, [name]);\n var eViewport = react_1.useRef(null);\n var eContainer = react_1.useRef(null);\n var rowCtrlsRef = react_1.useRef([]);\n var _a = react_1.useState(function () { return []; }), rowCtrlsOrdered = _a[0], setRowCtrlsOrdered = _a[1];\n var domOrderRef = react_1.useRef(false);\n var rowContainerCtrlRef = react_1.useRef();\n var cssClasses = react_1.useMemo(function () { return ag_grid_community_1.RowContainerCtrl.getRowContainerCssClasses(name); }, [name]);\n var viewportClasses = react_1.useMemo(function () { return utils_1.classesList(cssClasses.viewport); }, [cssClasses]);\n var containerClasses = react_1.useMemo(function () { return utils_1.classesList(cssClasses.container); }, [cssClasses]);\n // no need to useMemo for boolean types\n var centerTemplate = name === ag_grid_community_1.RowContainerName.CENTER\n || name === ag_grid_community_1.RowContainerName.TOP_CENTER\n || name === ag_grid_community_1.RowContainerName.BOTTOM_CENTER\n || name === ag_grid_community_1.RowContainerName.STICKY_TOP_CENTER;\n var topLevelRef = centerTemplate ? eViewport : eContainer;\n reactComment_1.default(' AG Row Container ' + name + ' ', topLevelRef);\n var areElementsReady = react_1.useCallback(function () {\n if (centerTemplate) {\n return eViewport.current != null && eContainer.current != null;\n }\n return eContainer.current != null;\n }, []);\n var areElementsRemoved = react_1.useCallback(function () {\n if (centerTemplate) {\n return eViewport.current == null && eContainer.current == null;\n }\n return eContainer.current == null;\n }, []);\n var setRef = react_1.useCallback(function () {\n if (areElementsRemoved()) {\n context.destroyBean(rowContainerCtrlRef.current);\n rowContainerCtrlRef.current = null;\n }\n if (areElementsReady()) {\n var updateRowCtrlsOrdered_1 = function (useFlushSync) {\n utils_1.agFlushSync(useFlushSync, function () {\n setRowCtrlsOrdered(function (prev) { return utils_1.getNextValueIfDifferent(prev, rowCtrlsRef.current, domOrderRef.current); });\n });\n };\n var compProxy = {\n setViewportHeight: function (height) {\n if (eViewport.current) {\n eViewport.current.style.height = height;\n }\n },\n setRowCtrls: function (rowCtrls, useFlushSync) {\n var useFlush = useFlushSync && rowCtrlsRef.current.length > 0 && rowCtrls.length > 0;\n // Keep a record of the rowCtrls in case we need to reset the Dom order.\n rowCtrlsRef.current = rowCtrls;\n updateRowCtrlsOrdered_1(useFlush);\n },\n setDomOrder: function (domOrder) {\n if (domOrderRef.current != domOrder) {\n domOrderRef.current = domOrder;\n updateRowCtrlsOrdered_1(false);\n }\n },\n setContainerWidth: function (width) {\n if (eContainer.current) {\n eContainer.current.style.width = width;\n }\n }\n };\n rowContainerCtrlRef.current = context.createBean(new ag_grid_community_1.RowContainerCtrl(name));\n rowContainerCtrlRef.current.setComp(compProxy, eContainer.current, eViewport.current);\n }\n }, [areElementsReady, areElementsRemoved]);\n var setContainerRef = react_1.useCallback(function (e) { eContainer.current = e; setRef(); }, [setRef]);\n var setViewportRef = react_1.useCallback(function (e) { eViewport.current = e; setRef(); }, [setRef]);\n var buildContainer = function () { return (react_1.default.createElement(\"div\", { className: containerClasses, ref: setContainerRef, role: rowCtrlsOrdered.length ? \"rowgroup\" : \"presentation\" }, rowCtrlsOrdered.map(function (rowCtrl) {\n return react_1.default.createElement(rowComp_1.default, { rowCtrl: rowCtrl, containerType: containerType, key: rowCtrl.getInstanceId() });\n }))); };\n return (react_1.default.createElement(react_1.default.Fragment, null, centerTemplate ?\n react_1.default.createElement(\"div\", { className: viewportClasses, ref: setViewportRef, role: \"presentation\" }, buildContainer()) :\n buildContainer()));\n};\nexports.default = react_1.memo(RowContainerComp);\n","// ag-grid-react v30.2.0\n\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = __importStar(require(\"react\"));\nvar ag_grid_community_1 = require(\"ag-grid-community\");\nvar beansContext_1 = require(\"./beansContext\");\nvar TabGuardCompRef = function (props, forwardRef) {\n var children = props.children, eFocusableElement = props.eFocusableElement, onTabKeyDown = props.onTabKeyDown, gridCtrl = props.gridCtrl;\n var context = react_1.useContext(beansContext_1.BeansContext).context;\n var topTabGuardRef = react_1.useRef(null);\n var bottomTabGuardRef = react_1.useRef(null);\n var tabGuardCtrlRef = react_1.useRef();\n var setTabIndex = function (value) {\n var processedValue = value == null ? undefined : parseInt(value, 10).toString();\n [topTabGuardRef, bottomTabGuardRef].forEach(function (tabGuard) {\n var _a, _b;\n if (processedValue === undefined) {\n (_a = tabGuard.current) === null || _a === void 0 ? void 0 : _a.removeAttribute('tabindex');\n }\n else {\n (_b = tabGuard.current) === null || _b === void 0 ? void 0 : _b.setAttribute('tabindex', processedValue);\n }\n });\n };\n react_1.useImperativeHandle(forwardRef, function () { return ({\n forceFocusOutOfContainer: function () {\n var _a;\n (_a = tabGuardCtrlRef.current) === null || _a === void 0 ? void 0 : _a.forceFocusOutOfContainer();\n }\n }); });\n var setupCtrl = react_1.useCallback(function () {\n if (!topTabGuardRef.current && !bottomTabGuardRef.current) {\n // Clean up after both refs have been removed\n context.destroyBean(tabGuardCtrlRef.current);\n tabGuardCtrlRef.current = null;\n return;\n }\n if (topTabGuardRef.current && bottomTabGuardRef.current) {\n var compProxy = {\n setTabIndex: setTabIndex\n };\n tabGuardCtrlRef.current = context.createBean(new ag_grid_community_1.TabGuardCtrl({\n comp: compProxy,\n eTopGuard: topTabGuardRef.current,\n eBottomGuard: bottomTabGuardRef.current,\n eFocusableElement: eFocusableElement,\n onTabKeyDown: onTabKeyDown,\n focusInnerElement: function (fromBottom) { return gridCtrl.focusInnerElement(fromBottom); }\n }));\n }\n }, []);\n var setTopRef = react_1.useCallback(function (e) {\n topTabGuardRef.current = e;\n setupCtrl();\n }, [setupCtrl]);\n var setBottomRef = react_1.useCallback(function (e) {\n bottomTabGuardRef.current = e;\n setupCtrl();\n }, [setupCtrl]);\n var createTabGuard = function (side) {\n var className = side === 'top' ? ag_grid_community_1.TabGuardClassNames.TAB_GUARD_TOP : ag_grid_community_1.TabGuardClassNames.TAB_GUARD_BOTTOM;\n return (react_1.default.createElement(\"div\", { className: ag_grid_community_1.TabGuardClassNames.TAB_GUARD + \" \" + className, role: \"presentation\", ref: side === 'top' ? setTopRef : setBottomRef }));\n };\n return (react_1.default.createElement(react_1.default.Fragment, null,\n createTabGuard('top'),\n children,\n createTabGuard('bottom')));\n};\nvar TabGuardComp = react_1.forwardRef(TabGuardCompRef);\nexports.default = react_1.memo(TabGuardComp);\n","// ag-grid-react v30.2.0\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.useEffectOnce = void 0;\nvar react_1 = require(\"react\");\n/** This should only be used a last resort for working around StrictMode!\n * Currently only used for Popup Editor due to our approach of showing a popup.\n */\nvar useEffectOnce = function (effect) {\n var effectFn = react_1.useRef(effect);\n var destroyFn = react_1.useRef();\n var effectCalled = react_1.useRef(false);\n var rendered = react_1.useRef(false);\n var _a = react_1.useState(0), setVal = _a[1];\n if (effectCalled.current) {\n rendered.current = true;\n }\n react_1.useEffect(function () {\n // only execute the effect first time around\n if (!effectCalled.current) {\n destroyFn.current = effectFn.current();\n effectCalled.current = true;\n }\n // this forces one render after the effect is run\n setVal(function (val) { return val + 1; });\n return function () {\n // if the comp didn't render since the useEffect was called,\n // we know it's the dummy React cycle\n if (!rendered.current) {\n return;\n }\n // otherwise this is not a dummy destroy, so call the destroy func\n if (destroyFn.current) {\n destroyFn.current();\n }\n };\n }, []);\n};\nexports.useEffectOnce = useEffectOnce;\n","// ag-grid-react v30.2.0\n\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.getNextValueIfDifferent = exports.agFlushSync = exports.isComponentStateless = exports.CssClasses = exports.classesList = void 0;\nvar react_dom_1 = __importDefault(require(\"react-dom\"));\nvar classesList = function () {\n var list = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n list[_i] = arguments[_i];\n }\n var filtered = list.filter(function (s) { return s != null && s !== ''; });\n return filtered.join(' ');\n};\nexports.classesList = classesList;\nvar CssClasses = /** @class */ (function () {\n function CssClasses() {\n var _this = this;\n var initialClasses = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n initialClasses[_i] = arguments[_i];\n }\n this.classesMap = {};\n initialClasses.forEach(function (className) {\n _this.classesMap[className] = true;\n });\n }\n CssClasses.prototype.setClass = function (className, on) {\n // important to not make a copy if nothing has changed, so react\n // won't trigger a render cycle on new object instance\n var nothingHasChanged = !!this.classesMap[className] == on;\n if (nothingHasChanged) {\n return this;\n }\n var res = new CssClasses();\n res.classesMap = __assign({}, this.classesMap);\n res.classesMap[className] = on;\n return res;\n };\n CssClasses.prototype.toString = function () {\n var _this = this;\n var res = Object.keys(this.classesMap).filter(function (key) { return _this.classesMap[key]; }).join(' ');\n return res;\n };\n return CssClasses;\n}());\nexports.CssClasses = CssClasses;\nvar isComponentStateless = function (Component) {\n var hasSymbol = function () { return typeof Symbol === 'function' && Symbol.for; };\n var getMemoType = function () { return hasSymbol() ? Symbol.for('react.memo') : 0xead3; };\n return (typeof Component === 'function' && !(Component.prototype && Component.prototype.isReactComponent)) || (typeof Component === 'object' && Component.$$typeof === getMemoType());\n};\nexports.isComponentStateless = isComponentStateless;\n// CreateRoot is only available from React 18, which if used requires us to use flushSync.\nvar createRootAndFlushSyncAvailable = react_dom_1.default.createRoot != null && react_dom_1.default.flushSync != null;\n/**\n * Wrapper around flushSync to provide backwards compatibility with React 16-17\n * Also allows us to control via the `useFlushSync` param whether we want to use flushSync or not\n * as we do not want to use flushSync when we are likely to already be in a render cycle\n */\nvar agFlushSync = function (useFlushSync, fn) {\n if (createRootAndFlushSyncAvailable && useFlushSync) {\n react_dom_1.default.flushSync(fn);\n }\n else {\n fn();\n }\n};\nexports.agFlushSync = agFlushSync;\n/**\n * The aim of this function is to maintain references to prev or next values where possible.\n * If there are not real changes then return the prev value to avoid unnecessary renders.\n * @param maintainOrder If we want to maintain the order of the elements in the dom in line with the next array\n * @returns\n */\nfunction getNextValueIfDifferent(prev, next, maintainOrder) {\n if (next == null || prev == null) {\n return next;\n }\n // If same array instance nothing to do.\n // If both empty arrays maintain reference of prev.\n if (prev === next || (next.length === 0 && prev.length === 0)) {\n return prev;\n }\n // If maintaining dom order just return next\n // If prev is empty just return next immediately as no previous order to maintain\n // If prev was not empty but next is empty return next immediately\n if (maintainOrder || (prev.length === 0 && next.length > 0) || (prev.length > 0 && next.length === 0)) {\n return next;\n }\n // if dom order not important, we don't want to change the order\n // of the elements in the dom, as this would break transition styles\n var oldValues = [];\n var newValues = [];\n var prevMap = new Map();\n var nextMap = new Map();\n for (var i = 0; i < next.length; i++) {\n var c = next[i];\n nextMap.set(c.getInstanceId(), c);\n }\n for (var i = 0; i < prev.length; i++) {\n var c = prev[i];\n prevMap.set(c.getInstanceId(), c);\n if (nextMap.has(c.getInstanceId())) {\n oldValues.push(c);\n }\n }\n for (var i = 0; i < next.length; i++) {\n var c = next[i];\n var instanceId = c.getInstanceId();\n if (!prevMap.has(instanceId)) {\n newValues.push(c);\n }\n }\n // All the same values exist just maybe in a different order so maintain the existing reference\n if (oldValues.length === prev.length && newValues.length === 0) {\n return prev;\n }\n // All new values so avoid spreading the new array to maintain the reference\n if (oldValues.length === 0 && newValues.length === next.length) {\n return next;\n }\n // Spread as we need to combine the old and new values\n return __spreadArray(__spreadArray([], oldValues), newValues);\n}\nexports.getNextValueIfDifferent = getNextValueIfDifferent;\n","// ag-grid-react v30.2.0\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ChangeDetectionStrategyType = void 0;\n/** @deprecated v29 ChangeDetectionStrategyType has been deprecated. IdentityCheck will always be used now for a more consistent approach. */\nvar ChangeDetectionStrategyType;\n(function (ChangeDetectionStrategyType) {\n ChangeDetectionStrategyType[\"IdentityCheck\"] = \"IdentityCheck\";\n ChangeDetectionStrategyType[\"DeepValueCheck\"] = \"DeepValueCheck\";\n ChangeDetectionStrategyType[\"NoCheck\"] = \"NoCheck\";\n})(ChangeDetectionStrategyType = exports.ChangeDetectionStrategyType || (exports.ChangeDetectionStrategyType = {}));\n","// ag-grid-react v30.2.0\n\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar counter = 0;\nfunction generateNewKey() {\n return \"agPortalKey_\" + ++counter;\n}\nexports.default = generateNewKey;\n","// ag-grid-react v30.2.0\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.NewReactComponent = void 0;\nvar react_1 = require(\"react\");\nvar react_dom_1 = require(\"react-dom\");\nvar ag_grid_community_1 = require(\"ag-grid-community\");\nvar reactComponent_1 = require(\"./reactComponent\");\nvar server_1 = require(\"react-dom/server\");\nvar keyGenerator_1 = __importDefault(require(\"./keyGenerator\"));\nvar NewReactComponent = /** @class */ (function (_super) {\n __extends(NewReactComponent, _super);\n function NewReactComponent(reactComponent, parentComponent, componentType) {\n var _this = _super.call(this, reactComponent, parentComponent, componentType) || this;\n _this.oldPortal = null;\n _this.key = keyGenerator_1.default();\n _this.portalKey = keyGenerator_1.default();\n return _this;\n }\n NewReactComponent.prototype.init = function (params) {\n var _this = this;\n this.eParentElement = this.createParentElement(params);\n this.params = params;\n this.createOrUpdatePortal(params);\n return new ag_grid_community_1.AgPromise(function (resolve) { return _this.createReactComponent(resolve); });\n };\n NewReactComponent.prototype.createOrUpdatePortal = function (params) {\n var _this = this;\n if (!this.isStatelessComponent()) {\n // grab hold of the actual instance created\n params.ref = function (element) {\n _this.componentInstance = element;\n _this.addParentContainerStyleAndClasses();\n };\n }\n this.reactElement = react_1.createElement(this.reactComponent, __assign(__assign({}, params), { key: this.key }));\n this.portal = react_dom_1.createPortal(this.reactElement, this.eParentElement, this.portalKey // fixed deltaRowModeRefreshCompRenderer\n );\n };\n NewReactComponent.prototype.createReactComponent = function (resolve) {\n this.portalManager.mountReactPortal(this.portal, this, function (value) {\n resolve(value);\n });\n };\n NewReactComponent.prototype.isNullValue = function () {\n return this.valueRenderedIsNull(this.params);\n };\n NewReactComponent.prototype.rendered = function () {\n return (this.isStatelessComponent() && this.statelessComponentRendered()) ||\n !!(!this.isStatelessComponent() && this.getFrameworkComponentInstance());\n };\n NewReactComponent.prototype.valueRenderedIsNull = function (params) {\n // we only do this for cellRenderers\n if (!this.componentType.cellRenderer) {\n return false;\n }\n // we've no way of knowing if a component returns null without rendering it first\n // so we render it to markup and check the output - if it'll be null we know and won't timeout\n // waiting for a component that will never be created\n var originalConsoleError = console.error;\n try {\n // if a user is doing anything that uses useLayoutEffect (like material ui) then it will throw and we\n // can't do anything to stop it; this is just a warning and has no effect on anything so just suppress it\n // for this single operation\n console.error = function () {\n };\n var staticMarkup = server_1.renderToStaticMarkup(react_1.createElement(this.reactComponent, params));\n return staticMarkup === '';\n }\n catch (ignore) {\n }\n finally {\n console.error = originalConsoleError;\n }\n return false;\n };\n /*\n * fallback methods - these will be invoked if a corresponding instance method is not present\n * for example if refresh is called and is not available on the component instance, then refreshComponent on this\n * class will be invoked instead\n *\n * Currently only refresh is supported\n */\n NewReactComponent.prototype.refreshComponent = function (args) {\n this.oldPortal = this.portal;\n this.createOrUpdatePortal(args);\n this.portalManager.updateReactPortal(this.oldPortal, this.portal);\n };\n NewReactComponent.prototype.fallbackMethod = function (name, params) {\n var method = this[name + \"Component\"];\n if (!!method) {\n return method.bind(this)(params);\n }\n };\n NewReactComponent.prototype.fallbackMethodAvailable = function (name) {\n var method = this[name + \"Component\"];\n return !!method;\n };\n return NewReactComponent;\n}(reactComponent_1.ReactComponent));\nexports.NewReactComponent = NewReactComponent;\n","// ag-grid-react v30.2.0\n\"use strict\";\nvar __spreadArray = (this && this.__spreadArray) || function (to, from) {\n for (var i = 0, il = from.length, j = to.length; i < il; i++, j++)\n to[j] = from[i];\n return to;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.PortalManager = exports.LegacyPortalManager = void 0;\nvar LegacyPortalManager = /** @class */ (function () {\n function LegacyPortalManager(parent, wrappingElement, maxComponentCreationTimeMs) {\n this.destroyed = false;\n this.portals = [];\n this.hasPendingPortalUpdate = false;\n this.wrappingElement = wrappingElement ? wrappingElement : 'div';\n this.parent = parent;\n this.maxComponentCreationTimeMs = maxComponentCreationTimeMs ? maxComponentCreationTimeMs : LegacyPortalManager.MAX_COMPONENT_CREATION_TIME_IN_MS;\n }\n LegacyPortalManager.prototype.getPortals = function () {\n return this.portals;\n };\n LegacyPortalManager.prototype.destroy = function () {\n this.destroyed = true;\n };\n LegacyPortalManager.prototype.destroyPortal = function (portal) {\n this.portals = this.portals.filter(function (curPortal) { return curPortal !== portal; });\n this.batchUpdate();\n };\n LegacyPortalManager.prototype.getComponentWrappingElement = function () {\n return this.wrappingElement;\n };\n LegacyPortalManager.prototype.mountReactPortal = function (portal, reactComponent, resolve) {\n this.portals = __spreadArray(__spreadArray([], this.portals), [portal]);\n this.waitForInstance(reactComponent, resolve);\n this.batchUpdate();\n };\n LegacyPortalManager.prototype.updateReactPortal = function (oldPortal, newPortal) {\n this.portals[this.portals.indexOf(oldPortal)] = newPortal;\n this.batchUpdate();\n };\n LegacyPortalManager.prototype.batchUpdate = function () {\n var _this = this;\n if (this.hasPendingPortalUpdate) {\n return;\n }\n setTimeout(function () {\n if (!_this.destroyed) { // destroyed?\n _this.parent.forceUpdate(function () {\n _this.hasPendingPortalUpdate = false;\n });\n }\n });\n this.hasPendingPortalUpdate = true;\n };\n LegacyPortalManager.prototype.waitForInstance = function (reactComponent, resolve, startTime) {\n var _this = this;\n if (startTime === void 0) { startTime = Date.now(); }\n // if the grid has been destroyed in the meantime just resolve\n if (this.destroyed) {\n resolve(null);\n return;\n }\n if (reactComponent.rendered()) {\n resolve(reactComponent);\n }\n else {\n if (Date.now() - startTime >= this.maxComponentCreationTimeMs && !this.hasPendingPortalUpdate) {\n // last check - we check if this is a null value being rendered - we do this last as using SSR to check the value\n // can mess up contexts\n if (reactComponent.isNullValue()) {\n resolve(reactComponent);\n return;\n }\n console.error(\"AG Grid: React Component '\" + reactComponent.getReactComponentName() + \"' not created within \" + this.maxComponentCreationTimeMs + \"ms\");\n return;\n }\n window.setTimeout(function () {\n _this.waitForInstance(reactComponent, resolve, startTime);\n });\n }\n };\n LegacyPortalManager.MAX_COMPONENT_CREATION_TIME_IN_MS = 1000; // a second should be more than enough to instantiate a component\n return LegacyPortalManager;\n}());\nexports.LegacyPortalManager = LegacyPortalManager;\nvar PortalManager = /** @class */ (function () {\n function PortalManager(refresher, wrappingElement, maxComponentCreationTimeMs) {\n this.destroyed = false;\n this.portals = [];\n this.hasPendingPortalUpdate = false;\n this.wrappingElement = wrappingElement ? wrappingElement : 'div';\n this.refresher = refresher;\n this.maxComponentCreationTimeMs = maxComponentCreationTimeMs ? maxComponentCreationTimeMs : PortalManager.MAX_COMPONENT_CREATION_TIME_IN_MS;\n }\n PortalManager.prototype.getPortals = function () {\n return this.portals;\n };\n PortalManager.prototype.destroy = function () {\n this.destroyed = true;\n };\n PortalManager.prototype.destroyPortal = function (portal) {\n this.portals = this.portals.filter(function (curPortal) { return curPortal !== portal; });\n this.batchUpdate();\n };\n PortalManager.prototype.getComponentWrappingElement = function () {\n return this.wrappingElement;\n };\n PortalManager.prototype.mountReactPortal = function (portal, reactComponent, resolve) {\n this.portals = __spreadArray(__spreadArray([], this.portals), [portal]);\n this.waitForInstance(reactComponent, resolve);\n this.batchUpdate();\n };\n PortalManager.prototype.updateReactPortal = function (oldPortal, newPortal) {\n this.portals[this.portals.indexOf(oldPortal)] = newPortal;\n this.batchUpdate();\n };\n PortalManager.prototype.batchUpdate = function () {\n var _this = this;\n if (this.hasPendingPortalUpdate) {\n return;\n }\n setTimeout(function () {\n if (!_this.destroyed) { // destroyed?\n _this.refresher();\n _this.hasPendingPortalUpdate = false;\n }\n });\n this.hasPendingPortalUpdate = true;\n };\n PortalManager.prototype.waitForInstance = function (reactComponent, resolve, startTime) {\n var _this = this;\n if (startTime === void 0) { startTime = Date.now(); }\n // if the grid has been destroyed in the meantime just resolve\n if (this.destroyed) {\n resolve(null);\n return;\n }\n if (reactComponent.rendered()) {\n resolve(reactComponent);\n }\n else {\n if (Date.now() - startTime >= this.maxComponentCreationTimeMs && !this.hasPendingPortalUpdate) {\n // last check - we check if this is a null value being rendered - we do this last as using SSR to check the value\n // can mess up contexts\n if (reactComponent.isNullValue()) {\n resolve(reactComponent);\n return;\n }\n console.error(\"AG Grid: React Component '\" + reactComponent.getReactComponentName() + \"' not created within \" + this.maxComponentCreationTimeMs + \"ms\");\n return;\n }\n window.setTimeout(function () {\n _this.waitForInstance(reactComponent, resolve, startTime);\n });\n }\n };\n PortalManager.MAX_COMPONENT_CREATION_TIME_IN_MS = 1000; // a second should be more than enough to instantiate a component\n return PortalManager;\n}());\nexports.PortalManager = PortalManager;\n","// ag-grid-react v30.2.0\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReactComponent = void 0;\nvar BaseReactComponent = /** @class */ (function () {\n function BaseReactComponent() {\n }\n return BaseReactComponent;\n}());\nvar ReactComponent = /** @class */ (function (_super) {\n __extends(ReactComponent, _super);\n function ReactComponent(reactComponent, portalManager, componentType) {\n var _this = _super.call(this) || this;\n _this.portal = null;\n _this.reactComponent = reactComponent;\n _this.portalManager = portalManager;\n _this.componentType = componentType;\n _this.statelessComponent = _this.isStateless(_this.reactComponent);\n return _this;\n }\n ReactComponent.prototype.getGui = function () {\n return this.eParentElement;\n };\n ReactComponent.prototype.destroy = function () {\n if (this.componentInstance && typeof this.componentInstance.destroy == 'function') {\n this.componentInstance.destroy();\n }\n return this.portalManager.destroyPortal(this.portal);\n };\n ReactComponent.prototype.createParentElement = function (params) {\n var componentWrappingElement = this.portalManager.getComponentWrappingElement();\n var eParentElement = document.createElement(componentWrappingElement || 'div');\n eParentElement.classList.add('ag-react-container');\n // DEPRECATED - use componentInstance.getReactContainerStyle or componentInstance.getReactContainerClasses instead\n // so user can have access to the react container, to add css class or style\n params.reactContainer = eParentElement;\n return eParentElement;\n };\n ReactComponent.prototype.addParentContainerStyleAndClasses = function () {\n var _this = this;\n if (!this.componentInstance) {\n return;\n }\n if (this.componentInstance.getReactContainerStyle && this.componentInstance.getReactContainerStyle()) {\n Object.assign(this.eParentElement.style, this.componentInstance.getReactContainerStyle());\n }\n if (this.componentInstance.getReactContainerClasses && this.componentInstance.getReactContainerClasses()) {\n var parentContainerClasses = this.componentInstance.getReactContainerClasses();\n parentContainerClasses.forEach(function (className) { return _this.eParentElement.classList.add(className); });\n }\n };\n ReactComponent.prototype.statelessComponentRendered = function () {\n // fixed fragmentsFuncRendererCreateDestroy funcRendererWithNan (changeDetectionService too for NaN)\n return this.eParentElement.childElementCount > 0 || this.eParentElement.childNodes.length > 0;\n };\n ReactComponent.prototype.getFrameworkComponentInstance = function () {\n return this.componentInstance;\n };\n ReactComponent.prototype.isStatelessComponent = function () {\n return this.statelessComponent;\n };\n ReactComponent.prototype.getReactComponentName = function () {\n return this.reactComponent.name;\n };\n ReactComponent.prototype.getMemoType = function () {\n return this.hasSymbol() ? Symbol.for('react.memo') : 0xead3;\n };\n ReactComponent.prototype.hasSymbol = function () {\n return typeof Symbol === 'function' && Symbol.for;\n };\n ReactComponent.prototype.isStateless = function (Component) {\n return (typeof Component === 'function' && !(Component.prototype && Component.prototype.isReactComponent))\n || (typeof Component === 'object' && Component.$$typeof === this.getMemoType());\n };\n ReactComponent.prototype.hasMethod = function (name) {\n var frameworkComponentInstance = this.getFrameworkComponentInstance();\n return (!!frameworkComponentInstance && frameworkComponentInstance[name] !== null) ||\n this.fallbackMethodAvailable(name);\n };\n ReactComponent.prototype.callMethod = function (name, args) {\n var _this = this;\n var frameworkComponentInstance = this.getFrameworkComponentInstance();\n if (this.isStatelessComponent()) {\n return this.fallbackMethod(name, !!args && args[0] ? args[0] : {});\n }\n else if (!(!!frameworkComponentInstance)) {\n // instance not ready yet - wait for it\n setTimeout(function () { return _this.callMethod(name, args); });\n return;\n }\n var method = frameworkComponentInstance[name];\n if (!!method) {\n return method.apply(frameworkComponentInstance, args);\n }\n if (this.fallbackMethodAvailable(name)) {\n return this.fallbackMethod(name, !!args && args[0] ? args[0] : {});\n }\n };\n ReactComponent.prototype.addMethod = function (name, callback) {\n this[name] = callback;\n };\n return ReactComponent;\n}(BaseReactComponent));\nexports.ReactComponent = ReactComponent;\n","// ag-grid-react v30.2.0\n\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.ReactFrameworkOverrides = void 0;\nvar ag_grid_community_1 = require(\"ag-grid-community\");\nvar groupCellRenderer_1 = __importDefault(require(\"../reactUi/cellRenderer/groupCellRenderer\"));\nvar detailCellRenderer_1 = __importDefault(require(\"../reactUi/cellRenderer/detailCellRenderer\"));\nvar ReactFrameworkOverrides = /** @class */ (function (_super) {\n __extends(ReactFrameworkOverrides, _super);\n function ReactFrameworkOverrides(reactUi) {\n var _this = _super.call(this) || this;\n _this.frameworkComponents = {\n agGroupCellRenderer: groupCellRenderer_1.default,\n agGroupRowRenderer: groupCellRenderer_1.default,\n agDetailCellRenderer: detailCellRenderer_1.default\n };\n _this.reactUi = reactUi;\n _this.renderingEngine = reactUi ? 'react' : 'vanilla';\n return _this;\n }\n ReactFrameworkOverrides.prototype.frameworkComponent = function (name) {\n if (!this.reactUi) {\n return;\n }\n return this.frameworkComponents[name];\n };\n ReactFrameworkOverrides.prototype.isFrameworkComponent = function (comp) {\n if (!comp) {\n return false;\n }\n var prototype = comp.prototype;\n var isJsComp = prototype && 'getGui' in prototype;\n return !isJsComp;\n };\n return ReactFrameworkOverrides;\n}(ag_grid_community_1.VanillaFrameworkOverrides));\nexports.ReactFrameworkOverrides = ReactFrameworkOverrides;\n",null,"import {\n DocumentNode,\n OperationDefinitionNode,\n SelectionSetNode,\n FieldNode,\n FragmentDefinitionNode,\n} from 'graphql';\n\nexport function queryFromPojo(obj: any): DocumentNode {\n const op: OperationDefinitionNode = {\n kind: 'OperationDefinition',\n operation: 'query',\n name: {\n kind: 'Name',\n value: 'GeneratedClientQuery',\n },\n selectionSet: selectionSetFromObj(obj),\n };\n\n const out: DocumentNode = {\n kind: 'Document',\n definitions: [op],\n };\n\n return out;\n}\n\nexport function fragmentFromPojo(obj: any, typename?: string): DocumentNode {\n const frag: FragmentDefinitionNode = {\n kind: 'FragmentDefinition',\n typeCondition: {\n kind: 'NamedType',\n name: {\n kind: 'Name',\n value: typename || '__FakeType',\n },\n },\n name: {\n kind: 'Name',\n value: 'GeneratedClientQuery',\n },\n selectionSet: selectionSetFromObj(obj),\n };\n\n const out: DocumentNode = {\n kind: 'Document',\n definitions: [frag],\n };\n\n return out;\n}\n\nfunction selectionSetFromObj(obj: any): SelectionSetNode {\n if (\n typeof obj === 'number' ||\n typeof obj === 'boolean' ||\n typeof obj === 'string' ||\n typeof obj === 'undefined' ||\n obj === null\n ) {\n // No selection set here\n return null;\n }\n\n if (Array.isArray(obj)) {\n // GraphQL queries don't include arrays\n return selectionSetFromObj(obj[0]);\n }\n\n // Now we know it's an object\n const selections: FieldNode[] = [];\n\n Object.keys(obj).forEach(key => {\n const nestedSelSet: SelectionSetNode = selectionSetFromObj(obj[key]);\n\n const field: FieldNode = {\n kind: 'Field',\n name: {\n kind: 'Name',\n value: key,\n },\n selectionSet: nestedSelSet || undefined,\n };\n\n selections.push(field);\n });\n\n const selectionSet: SelectionSetNode = {\n kind: 'SelectionSet',\n selections,\n };\n\n return selectionSet;\n}\n\nexport const justTypenameQuery: DocumentNode = {\n kind: 'Document',\n definitions: [\n {\n kind: 'OperationDefinition',\n operation: 'query',\n name: null,\n variableDefinitions: null,\n directives: [],\n selectionSet: {\n kind: 'SelectionSet',\n selections: [\n {\n kind: 'Field',\n alias: null,\n name: {\n kind: 'Name',\n value: '__typename',\n },\n arguments: [],\n directives: [],\n selectionSet: null,\n },\n ],\n },\n },\n ],\n};\n","import { DataProxy } from './DataProxy';\n\nexport namespace Cache {\n export type WatchCallback = (newData: any) => void;\n export interface EvictionResult {\n success: Boolean;\n }\n\n export interface ReadOptions\n extends DataProxy.Query {\n rootId?: string;\n previousResult?: any;\n optimistic: boolean;\n }\n\n export interface WriteOptions\n extends DataProxy.Query {\n dataId: string;\n result: TResult;\n }\n\n export interface DiffOptions extends ReadOptions {\n returnPartialData?: boolean;\n }\n\n export interface WatchOptions extends ReadOptions {\n callback: WatchCallback;\n }\n\n export interface EvictOptions\n extends DataProxy.Query {\n rootId?: string;\n }\n\n export import DiffResult = DataProxy.DiffResult;\n export import WriteQueryOptions = DataProxy.WriteQueryOptions;\n export import WriteFragmentOptions = DataProxy.WriteFragmentOptions;\n export import WriteDataOptions = DataProxy.WriteDataOptions;\n export import Fragment = DataProxy.Fragment;\n}\n","import { DocumentNode } from 'graphql';\nimport { getFragmentQueryDocument } from 'apollo-utilities';\n\nimport { DataProxy, Cache } from './types';\nimport { justTypenameQuery, queryFromPojo, fragmentFromPojo } from './utils';\n\nexport type Transaction = (c: ApolloCache) => void;\n\nexport abstract class ApolloCache implements DataProxy {\n // required to implement\n // core API\n public abstract read(\n query: Cache.ReadOptions,\n ): T | null;\n public abstract write(\n write: Cache.WriteOptions,\n ): void;\n public abstract diff(query: Cache.DiffOptions): Cache.DiffResult;\n public abstract watch(watch: Cache.WatchOptions): () => void;\n public abstract evict(\n query: Cache.EvictOptions,\n ): Cache.EvictionResult;\n public abstract reset(): Promise;\n\n // intializer / offline / ssr API\n /**\n * Replaces existing state in the cache (if any) with the values expressed by\n * `serializedState`.\n *\n * Called when hydrating a cache (server side rendering, or offline storage),\n * and also (potentially) during hot reloads.\n */\n public abstract restore(\n serializedState: TSerialized,\n ): ApolloCache;\n\n /**\n * Exposes the cache's complete state, in a serializable format for later restoration.\n */\n public abstract extract(optimistic?: boolean): TSerialized;\n\n // optimistic API\n public abstract removeOptimistic(id: string): void;\n\n // transactional API\n public abstract performTransaction(\n transaction: Transaction,\n ): void;\n public abstract recordOptimisticTransaction(\n transaction: Transaction,\n id: string,\n ): void;\n\n // optional API\n public transformDocument(document: DocumentNode): DocumentNode {\n return document;\n }\n // experimental\n public transformForLink(document: DocumentNode): DocumentNode {\n return document;\n }\n\n // DataProxy API\n /**\n *\n * @param options\n * @param optimistic\n */\n public readQuery(\n options: DataProxy.Query,\n optimistic: boolean = false,\n ): QueryType | null {\n return this.read({\n query: options.query,\n variables: options.variables,\n optimistic,\n });\n }\n\n public readFragment(\n options: DataProxy.Fragment,\n optimistic: boolean = false,\n ): FragmentType | null {\n return this.read({\n query: getFragmentQueryDocument(options.fragment, options.fragmentName),\n variables: options.variables,\n rootId: options.id,\n optimistic,\n });\n }\n\n public writeQuery(\n options: Cache.WriteQueryOptions,\n ): void {\n this.write({\n dataId: 'ROOT_QUERY',\n result: options.data,\n query: options.query,\n variables: options.variables,\n });\n }\n\n public writeFragment(\n options: Cache.WriteFragmentOptions,\n ): void {\n this.write({\n dataId: options.id,\n result: options.data,\n variables: options.variables,\n query: getFragmentQueryDocument(options.fragment, options.fragmentName),\n });\n }\n\n public writeData({\n id,\n data,\n }: Cache.WriteDataOptions): void {\n if (typeof id !== 'undefined') {\n let typenameResult = null;\n // Since we can't use fragments without having a typename in the store,\n // we need to make sure we have one.\n // To avoid overwriting an existing typename, we need to read it out first\n // and generate a fake one if none exists.\n try {\n typenameResult = this.read({\n rootId: id,\n optimistic: false,\n query: justTypenameQuery,\n });\n } catch (e) {\n // Do nothing, since an error just means no typename exists\n }\n\n // tslint:disable-next-line\n const __typename =\n (typenameResult && typenameResult.__typename) || '__ClientData';\n\n // Add a type here to satisfy the inmemory cache\n const dataToWrite = Object.assign({ __typename }, data);\n\n this.writeFragment({\n id,\n fragment: fragmentFromPojo(dataToWrite, __typename),\n data: dataToWrite,\n });\n } else {\n this.writeQuery({ query: queryFromPojo(data), data });\n }\n }\n}\n",null,null,null,null,null,null,null,null,null,"\"use strict\";\n\nfunction Cache(options) {\n this.map = new Map;\n this.newest = null;\n this.oldest = null;\n this.max = options && options.max;\n this.dispose = options && options.dispose;\n}\n\nexports.Cache = Cache;\n\nvar Cp = Cache.prototype;\n\nCp.has = function (key) {\n return this.map.has(key);\n};\n\nCp.get = function (key) {\n var entry = getEntry(this, key);\n return entry && entry.value;\n};\n\nfunction getEntry(cache, key) {\n var entry = cache.map.get(key);\n if (entry &&\n entry !== cache.newest) {\n var older = entry.older;\n var newer = entry.newer;\n\n if (newer) {\n newer.older = older;\n }\n\n if (older) {\n older.newer = newer;\n }\n\n entry.older = cache.newest;\n entry.older.newer = entry;\n\n entry.newer = null;\n cache.newest = entry;\n\n if (entry === cache.oldest) {\n cache.oldest = newer;\n }\n }\n\n return entry;\n}\n\nCp.set = function (key, value) {\n var entry = getEntry(this, key);\n if (entry) {\n return entry.value = value;\n }\n\n entry = {\n key: key,\n value: value,\n newer: null,\n older: this.newest\n };\n\n if (this.newest) {\n this.newest.newer = entry;\n }\n\n this.newest = entry;\n this.oldest = this.oldest || entry;\n\n this.map.set(key, entry);\n\n return entry.value;\n};\n\nCp.clean = function () {\n if (typeof this.max === \"number\") {\n while (this.oldest &&\n this.map.size > this.max) {\n this.delete(this.oldest.key);\n }\n }\n};\n\nCp.delete = function (key) {\n var entry = this.map.get(key);\n if (entry) {\n if (entry === this.newest) {\n this.newest = entry.older;\n }\n\n if (entry === this.oldest) {\n this.oldest = entry.newer;\n }\n\n if (entry.newer) {\n entry.newer.older = entry.older;\n }\n\n if (entry.older) {\n entry.older.newer = entry.newer;\n }\n\n this.map.delete(key);\n\n if (typeof this.dispose === \"function\") {\n this.dispose(key, entry.value);\n }\n\n return true;\n }\n\n return false;\n};\n","\"use strict\";\n\nvar getLocal = require(\"./local.js\").get;\nvar UNKNOWN_VALUE = Object.create(null);\nvar emptySetPool = [];\nvar entryPool = [];\n\n// Don't let the emptySetPool or entryPool grow larger than this size,\n// since unconstrained pool growth could lead to memory leaks.\nexports.POOL_TARGET_SIZE = 100;\n\n// Since this package might be used browsers, we should avoid using the\n// Node built-in assert module.\nfunction assert(condition, optionalMessage) {\n if (! condition) {\n throw new Error(optionalMessage || \"assertion failure\");\n }\n}\n\nfunction Entry(fn, key, args) {\n this.parents = new Set;\n this.childValues = new Map;\n\n // When this Entry has children that are dirty, this property becomes\n // a Set containing other Entry objects, borrowed from emptySetPool.\n // When the set becomes empty, it gets recycled back to emptySetPool.\n this.dirtyChildren = null;\n\n reset(this, fn, key, args);\n\n ++Entry.count;\n}\n\nEntry.count = 0;\n\nfunction reset(entry, fn, key, args) {\n entry.fn = fn;\n entry.key = key;\n entry.args = args;\n entry.value = UNKNOWN_VALUE;\n entry.dirty = true;\n entry.subscribe = null;\n entry.unsubscribe = null;\n entry.recomputing = false;\n // Optional callback that will be invoked when entry.parents becomes\n // empty. The Entry object is given as the first parameter. If the\n // callback returns true, then this entry can be removed from the graph\n // and safely recycled into the entryPool.\n entry.reportOrphan = null;\n}\n\nEntry.acquire = function (fn, key, args) {\n var entry = entryPool.pop();\n if (entry) {\n reset(entry, fn, key, args);\n return entry;\n }\n return new Entry(fn, key, args);\n};\n\nfunction release(entry) {\n assert(entry.parents.size === 0);\n assert(entry.childValues.size === 0);\n assert(entry.dirtyChildren === null);\n if (entryPool.length < exports.POOL_TARGET_SIZE) {\n entryPool.push(entry);\n }\n}\n\nexports.Entry = Entry;\n\nvar Ep = Entry.prototype;\n\n// The public API of Entry objects consists of the Entry constructor,\n// along with the recompute, setDirty, and dispose methods.\n\nEp.recompute = function recompute() {\n if (! rememberParent(this) &&\n maybeReportOrphan(this)) {\n // The recipient of the entry.reportOrphan callback decided to dispose\n // of this orphan entry by calling entry.dispos(), which recycles it\n // into the entryPool, so we don't need to (and should not) proceed\n // with the recomputation.\n return;\n }\n\n return recomputeIfDirty(this);\n};\n\n// If the given entry has a reportOrphan method, and no remaining parents,\n// call entry.reportOrphan and return true iff it returns true. The\n// reportOrphan function should return true to indicate entry.dispose()\n// has been called, and the entry has been removed from any other caches\n// (see index.js for the only current example).\nfunction maybeReportOrphan(entry) {\n var report = entry.reportOrphan;\n return typeof report === \"function\" &&\n entry.parents.size === 0 &&\n report(entry) === true;\n}\n\nEp.setDirty = function setDirty() {\n if (this.dirty) return;\n this.dirty = true;\n this.value = UNKNOWN_VALUE;\n reportDirty(this);\n // We can go ahead and unsubscribe here, since any further dirty\n // notifications we receive will be redundant, and unsubscribing may\n // free up some resources, e.g. file watchers.\n unsubscribe(this);\n};\n\nEp.dispose = function dispose() {\n var entry = this;\n forgetChildren(entry).forEach(maybeReportOrphan);\n unsubscribe(entry);\n\n // Because this entry has been kicked out of the cache (in index.js),\n // we've lost the ability to find out if/when this entry becomes dirty,\n // whether that happens through a subscription, because of a direct call\n // to entry.setDirty(), or because one of its children becomes dirty.\n // Because of this loss of future information, we have to assume the\n // worst (that this entry might have become dirty very soon), so we must\n // immediately mark this entry's parents as dirty. Normally we could\n // just call entry.setDirty() rather than calling parent.setDirty() for\n // each parent, but that would leave this entry in parent.childValues\n // and parent.dirtyChildren, which would prevent the child from being\n // truly forgotten.\n entry.parents.forEach(function (parent) {\n parent.setDirty();\n forgetChild(parent, entry);\n });\n\n // Since this entry has no parents and no children anymore, and the\n // caller of Entry#dispose has indicated that entry.value no longer\n // matters, we can safely recycle this Entry object for later use.\n release(entry);\n};\n\nfunction setClean(entry) {\n entry.dirty = false;\n\n if (mightBeDirty(entry)) {\n // This Entry may still have dirty children, in which case we can't\n // let our parents know we're clean just yet.\n return;\n }\n\n reportClean(entry);\n}\n\nfunction reportDirty(entry) {\n entry.parents.forEach(function (parent) {\n reportDirtyChild(parent, entry);\n });\n}\n\nfunction reportClean(entry) {\n entry.parents.forEach(function (parent) {\n reportCleanChild(parent, entry);\n });\n}\n\nfunction mightBeDirty(entry) {\n return entry.dirty ||\n (entry.dirtyChildren &&\n entry.dirtyChildren.size);\n}\n\n// Let a parent Entry know that one of its children may be dirty.\nfunction reportDirtyChild(entry, child) {\n // Must have called rememberParent(child) before calling\n // reportDirtyChild(parent, child).\n assert(entry.childValues.has(child));\n assert(mightBeDirty(child));\n\n if (! entry.dirtyChildren) {\n entry.dirtyChildren = emptySetPool.pop() || new Set;\n\n } else if (entry.dirtyChildren.has(child)) {\n // If we already know this child is dirty, then we must have already\n // informed our own parents that we are dirty, so we can terminate\n // the recursion early.\n return;\n }\n\n entry.dirtyChildren.add(child);\n reportDirty(entry);\n}\n\n// Let a parent Entry know that one of its children is no longer dirty.\nfunction reportCleanChild(entry, child) {\n var cv = entry.childValues;\n\n // Must have called rememberChild(child) before calling\n // reportCleanChild(parent, child).\n assert(cv.has(child));\n assert(! mightBeDirty(child));\n\n var childValue = cv.get(child);\n if (childValue === UNKNOWN_VALUE) {\n cv.set(child, child.value);\n } else if (childValue !== child.value) {\n entry.setDirty();\n }\n\n removeDirtyChild(entry, child);\n\n if (mightBeDirty(entry)) {\n return;\n }\n\n reportClean(entry);\n}\n\nfunction removeDirtyChild(entry, child) {\n var dc = entry.dirtyChildren;\n if (dc) {\n dc.delete(child);\n if (dc.size === 0) {\n if (emptySetPool.length < exports.POOL_TARGET_SIZE) {\n emptySetPool.push(dc);\n }\n entry.dirtyChildren = null;\n }\n }\n}\n\nfunction rememberParent(entry) {\n var local = getLocal();\n var parent = local.currentParentEntry;\n if (parent) {\n entry.parents.add(parent);\n\n if (! parent.childValues.has(entry)) {\n parent.childValues.set(entry, UNKNOWN_VALUE);\n }\n\n if (mightBeDirty(entry)) {\n reportDirtyChild(parent, entry);\n } else {\n reportCleanChild(parent, entry);\n }\n\n return parent;\n }\n}\n\n// This is the most important method of the Entry API, because it\n// determines whether the cached entry.value can be returned immediately,\n// or must be recomputed. The overall performance of the caching system\n// depends on the truth of the following observations: (1) this.dirty is\n// usually false, (2) this.dirtyChildren is usually null/empty, and thus\n// (3) this.value is usally returned very quickly, without recomputation.\nfunction recomputeIfDirty(entry) {\n if (entry.dirty) {\n // If this Entry is explicitly dirty because someone called\n // entry.setDirty(), recompute.\n return reallyRecompute(entry);\n }\n\n if (mightBeDirty(entry)) {\n // Get fresh values for any dirty children, and if those values\n // disagree with this.childValues, mark this Entry explicitly dirty.\n entry.dirtyChildren.forEach(function (child) {\n assert(entry.childValues.has(child));\n try {\n recomputeIfDirty(child);\n } catch (e) {\n entry.setDirty();\n }\n });\n\n if (entry.dirty) {\n // If this Entry has become explicitly dirty after comparing the fresh\n // values of its dirty children against this.childValues, recompute.\n return reallyRecompute(entry);\n }\n }\n\n assert(entry.value !== UNKNOWN_VALUE);\n\n return entry.value;\n}\n\nfunction reallyRecompute(entry) {\n assert(! entry.recomputing, \"already recomputing\");\n entry.recomputing = true;\n\n // Since this recomputation is likely to re-remember some of this\n // entry's children, we forget our children here but do not call\n // maybeReportOrphan until after the recomputation finishes.\n var originalChildren = forgetChildren(entry);\n\n var local = getLocal();\n var parent = local.currentParentEntry;\n local.currentParentEntry = entry;\n\n var threw = true;\n try {\n entry.value = entry.fn.apply(null, entry.args);\n threw = false;\n\n } finally {\n entry.recomputing = false;\n\n assert(local.currentParentEntry === entry);\n local.currentParentEntry = parent;\n\n if (threw || ! subscribe(entry)) {\n // Mark this Entry dirty if entry.fn threw or we failed to\n // resubscribe. This is important because, if we have a subscribe\n // function and it failed, then we're going to miss important\n // notifications about the potential dirtiness of entry.value.\n entry.setDirty();\n } else {\n // If we successfully recomputed entry.value and did not fail to\n // (re)subscribe, then this Entry is no longer explicitly dirty.\n setClean(entry);\n }\n }\n\n // Now that we've had a chance to re-remember any children that were\n // involved in the recomputation, we can safely report any orphan\n // children that remain.\n originalChildren.forEach(maybeReportOrphan);\n\n return entry.value;\n}\n\nvar reusableEmptyArray = [];\n\n// Removes all children from this entry and returns an array of the\n// removed children.\nfunction forgetChildren(entry) {\n var children = reusableEmptyArray;\n\n if (entry.childValues.size > 0) {\n children = [];\n entry.childValues.forEach(function (value, child) {\n forgetChild(entry, child);\n children.push(child);\n });\n }\n\n // After we forget all our children, this.dirtyChildren must be empty\n // and therefor must have been reset to null.\n assert(entry.dirtyChildren === null);\n\n return children;\n}\n\nfunction forgetChild(entry, child) {\n child.parents.delete(entry);\n entry.childValues.delete(child);\n removeDirtyChild(entry, child);\n}\n\nfunction subscribe(entry) {\n if (typeof entry.subscribe === \"function\") {\n try {\n unsubscribe(entry); // Prevent double subscriptions.\n entry.unsubscribe = entry.subscribe.apply(null, entry.args);\n } catch (e) {\n // If this Entry has a subscribe function and it threw an exception\n // (or an unsubscribe function it previously returned now throws),\n // return false to indicate that we were not able to subscribe (or\n // unsubscribe), and this Entry should remain dirty.\n entry.setDirty();\n return false;\n }\n }\n\n // Returning true indicates either that there was no entry.subscribe\n // function or that it succeeded.\n return true;\n}\n\nfunction unsubscribe(entry) {\n var unsub = entry.unsubscribe;\n if (typeof unsub === \"function\") {\n entry.unsubscribe = null;\n unsub();\n }\n}\n","\"use strict\";\n\nvar Cache = require(\"./cache.js\").Cache;\nvar tuple = require(\"immutable-tuple\").tuple;\nvar Entry = require(\"./entry.js\").Entry;\nvar getLocal = require(\"./local.js\").get;\n\n// Exported so that custom makeCacheKey functions can easily reuse the\n// default implementation (with different arguments).\nexports.defaultMakeCacheKey = tuple;\n\nfunction normalizeOptions(options) {\n options = options || Object.create(null);\n\n if (typeof options.makeCacheKey !== \"function\") {\n options.makeCacheKey = tuple;\n }\n\n if (typeof options.max !== \"number\") {\n options.max = Math.pow(2, 16);\n }\n\n return options;\n}\n\nfunction wrap(fn, options) {\n options = normalizeOptions(options);\n\n // If this wrapped function is disposable, then its creator does not\n // care about its return value, and it should be removed from the cache\n // immediately when it no longer has any parents that depend on it.\n var disposable = !! options.disposable;\n\n var cache = new Cache({\n max: options.max,\n dispose: function (key, entry) {\n entry.dispose();\n }\n });\n\n function reportOrphan(entry) {\n if (disposable) {\n // Triggers the entry.dispose() call above.\n cache.delete(entry.key);\n return true;\n }\n }\n\n function optimistic() {\n if (disposable && ! getLocal().currentParentEntry) {\n // If there's no current parent computation, and this wrapped\n // function is disposable (meaning we don't care about entry.value,\n // just dependency tracking), then we can short-cut everything else\n // in this function, because entry.recompute() is going to recycle\n // the entry object without recomputing anything, anyway.\n return;\n }\n\n var key = options.makeCacheKey.apply(null, arguments);\n if (! key) {\n return fn.apply(null, arguments);\n }\n\n var args = [], len = arguments.length;\n while (len--) args[len] = arguments[len];\n\n var entry = cache.get(key);\n if (entry) {\n entry.args = args;\n } else {\n cache.set(key, entry = Entry.acquire(fn, key, args));\n entry.subscribe = options.subscribe;\n if (disposable) {\n entry.reportOrphan = reportOrphan;\n }\n }\n\n var value = entry.recompute();\n\n // Move this entry to the front of the least-recently used queue,\n // since we just finished computing its value.\n cache.set(key, entry);\n\n // Clean up any excess entries in the cache, but only if this entry\n // has no parents, which means we're not in the middle of a larger\n // computation that might be flummoxed by the cleaning.\n if (entry.parents.size === 0) {\n cache.clean();\n }\n\n // If options.disposable is truthy, the caller of wrap is telling us\n // they don't care about the result of entry.recompute(), so we should\n // avoid returning the value, so it won't be accidentally used.\n if (! disposable) {\n return value;\n }\n }\n\n optimistic.dirty = function () {\n var key = options.makeCacheKey.apply(null, arguments);\n if (! key) {\n return;\n }\n\n if (! cache.has(key)) {\n return;\n }\n\n cache.get(key).setDirty();\n };\n\n return optimistic;\n}\n\nexports.wrap = wrap;\n","\"use strict\";\n\nvar fakeNullFiber = new (function Fiber(){});\nvar localKey = \"_optimism_local\";\n\nfunction getCurrentFiber() {\n return fakeNullFiber;\n}\n\nif (typeof module === \"object\") {\n try {\n var Fiber = module[\"eriuqer\".split(\"\").reverse().join(\"\")](\"fibers\");\n // If we were able to require fibers, redefine the getCurrentFiber\n // function so that it has a chance to return Fiber.current.\n getCurrentFiber = function () {\n return Fiber.current || fakeNullFiber;\n };\n } catch (e) {}\n}\n\n// Returns an object unique to Fiber.current, if fibers are enabled.\n// This object is used for Fiber-local storage in ./entry.js.\nexports.get = function () {\n var fiber = getCurrentFiber();\n return fiber[localKey] || (fiber[localKey] = Object.create(null));\n};\n","import {\n ApolloLink,\n Observable,\n Operation,\n NextLink,\n GraphQLRequest,\n} from 'apollo-link';\n\nexport type ContextSetter = (\n operation: GraphQLRequest,\n prevContext: any,\n) => Promise | any;\n\nexport const setContext = (setter: ContextSetter): ApolloLink =>\n new ApolloLink((operation: Operation, forward: NextLink) => {\n const { ...request } = operation;\n\n return new Observable(observer => {\n let handle;\n Promise.resolve(request)\n .then(req => setter(req, operation.getContext()))\n .then(operation.setContext)\n .then(() => {\n handle = forward(operation).subscribe({\n next: observer.next.bind(observer),\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer),\n });\n })\n .catch(observer.error.bind(observer));\n\n return () => {\n if (handle) handle.unsubscribe();\n };\n });\n });\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { Operation } from 'apollo-link';\nimport { print } from 'graphql/language/printer';\nimport { InvariantError } from 'ts-invariant';\n\n/*\n * Http Utilities: shared across links that make http requests\n */\n\n// XXX replace with actual typings when available\ndeclare var AbortController: any;\n\n//Used for any Error for data from the server\n//on a request with a Status >= 300\n//response contains no data or errors\nexport type ServerError = Error & {\n response: Response;\n result: Record;\n statusCode: number;\n};\n\n//Thrown when server's resonse is cannot be parsed\nexport type ServerParseError = Error & {\n response: Response;\n statusCode: number;\n bodyText: string;\n};\n\nexport type ClientParseError = InvariantError & {\n parseError: Error;\n};\n\nexport interface HttpQueryOptions {\n includeQuery?: boolean;\n includeExtensions?: boolean;\n}\n\nexport interface HttpConfig {\n http?: HttpQueryOptions;\n options?: any;\n headers?: any; //overrides headers in options\n credentials?: any;\n}\n\nexport interface UriFunction {\n (operation: Operation): string;\n}\n\n// The body of a GraphQL-over-HTTP-POST request.\nexport interface Body {\n query?: string;\n operationName?: string;\n variables?: Record;\n extensions?: Record;\n}\n\nexport interface HttpOptions {\n /**\n * The URI to use when fetching operations.\n *\n * Defaults to '/graphql'.\n */\n uri?: string | UriFunction;\n\n /**\n * Passes the extensions field to your graphql server.\n *\n * Defaults to false.\n */\n includeExtensions?: boolean;\n\n /**\n * A `fetch`-compatible API to use when making requests.\n */\n fetch?: WindowOrWorkerGlobalScope['fetch'];\n\n /**\n * An object representing values to be sent as headers on the request.\n */\n headers?: any;\n\n /**\n * The credentials policy you want to use for the fetch call.\n */\n credentials?: string;\n\n /**\n * Any overrides of the fetch options argument to pass to the fetch call.\n */\n fetchOptions?: any;\n}\n\nconst defaultHttpOptions: HttpQueryOptions = {\n includeQuery: true,\n includeExtensions: false,\n};\n\nconst defaultHeaders = {\n // headers are case insensitive (https://stackoverflow.com/a/5259004)\n accept: '*/*',\n 'content-type': 'application/json',\n};\n\nconst defaultOptions = {\n method: 'POST',\n};\n\nexport const fallbackHttpConfig = {\n http: defaultHttpOptions,\n headers: defaultHeaders,\n options: defaultOptions,\n};\n\nexport const throwServerError = (response, result, message) => {\n const error = new Error(message) as ServerError;\n\n error.name = 'ServerError';\n error.response = response;\n error.statusCode = response.status;\n error.result = result;\n\n throw error;\n};\n\n//TODO: when conditional types come in ts 2.8, operations should be a generic type that extends Operation | Array\nexport const parseAndCheckHttpResponse = operations => (response: Response) => {\n return (\n response\n .text()\n .then(bodyText => {\n try {\n return JSON.parse(bodyText);\n } catch (err) {\n const parseError = err as ServerParseError;\n parseError.name = 'ServerParseError';\n parseError.response = response;\n parseError.statusCode = response.status;\n parseError.bodyText = bodyText;\n return Promise.reject(parseError);\n }\n })\n //TODO: when conditional types come out then result should be T extends Array ? Array : FetchResult\n .then((result: any) => {\n if (response.status >= 300) {\n //Network error\n throwServerError(\n response,\n result,\n `Response not successful: Received status code ${response.status}`,\n );\n }\n //TODO should really error per response in a Batch based on properties\n // - could be done in a validation link\n if (\n !Array.isArray(result) &&\n !result.hasOwnProperty('data') &&\n !result.hasOwnProperty('errors')\n ) {\n //Data error\n throwServerError(\n response,\n result,\n `Server response was missing for query '${\n Array.isArray(operations)\n ? operations.map(op => op.operationName)\n : operations.operationName\n }'.`,\n );\n }\n return result;\n })\n );\n};\n\nexport const checkFetcher = (fetcher: WindowOrWorkerGlobalScope['fetch']) => {\n if (!fetcher && typeof fetch === 'undefined') {\n let library: string = 'unfetch';\n if (typeof window === 'undefined') library = 'node-fetch';\n throw new InvariantError(`\nfetch is not found globally and no fetcher passed, to fix pass a fetch for\nyour environment like https://www.npmjs.com/package/${library}.\n\nFor example:\nimport fetch from '${library}';\nimport { createHttpLink } from 'apollo-link-http';\n\nconst link = createHttpLink({ uri: '/graphql', fetch: fetch });`);\n }\n};\n\nexport const createSignalIfSupported = () => {\n if (typeof AbortController === 'undefined')\n return { controller: false, signal: false };\n\n const controller = new AbortController();\n const signal = controller.signal;\n return { controller, signal };\n};\n\nexport const selectHttpOptionsAndBody = (\n operation: Operation,\n fallbackConfig: HttpConfig,\n ...configs: Array\n) => {\n let options: HttpConfig & Record = {\n ...fallbackConfig.options,\n headers: fallbackConfig.headers,\n credentials: fallbackConfig.credentials,\n };\n let http: HttpQueryOptions = fallbackConfig.http;\n\n /*\n * use the rest of the configs to populate the options\n * configs later in the list will overwrite earlier fields\n */\n configs.forEach(config => {\n options = {\n ...options,\n ...config.options,\n headers: {\n ...options.headers,\n ...config.headers,\n },\n };\n if (config.credentials) options.credentials = config.credentials;\n\n http = {\n ...http,\n ...config.http,\n };\n });\n\n //The body depends on the http options\n const { operationName, extensions, variables, query } = operation;\n const body: Body = { operationName, variables };\n\n if (http.includeExtensions) (body as any).extensions = extensions;\n\n // not sending the query (i.e persisted queries)\n if (http.includeQuery) (body as any).query = print(query);\n\n return {\n options,\n body,\n };\n};\n\nexport const serializeFetchParameter = (p, label) => {\n let serialized;\n try {\n serialized = JSON.stringify(p);\n } catch (e) {\n const parseError = new InvariantError(\n `Network request failed. ${label} is not serializable: ${e.message}`,\n ) as ClientParseError;\n parseError.parseError = e;\n throw parseError;\n }\n return serialized;\n};\n\n//selects \"/graphql\" by default\nexport const selectURI = (\n operation,\n fallbackURI?: string | ((operation: Operation) => string),\n) => {\n const context = operation.getContext();\n const contextURI = context.uri;\n\n if (contextURI) {\n return contextURI;\n } else if (typeof fallbackURI === 'function') {\n return fallbackURI(operation);\n } else {\n return (fallbackURI as string) || '/graphql';\n }\n};\n","/* tslint:disable */\n\nimport { ApolloLink, Observable, RequestHandler, fromError } from 'apollo-link';\nimport {\n serializeFetchParameter,\n selectURI,\n parseAndCheckHttpResponse,\n checkFetcher,\n selectHttpOptionsAndBody,\n createSignalIfSupported,\n fallbackHttpConfig,\n Body,\n HttpOptions,\n UriFunction as _UriFunction,\n} from 'apollo-link-http-common';\nimport { DefinitionNode } from 'graphql';\n\nexport namespace HttpLink {\n //TODO Would much rather be able to export directly\n export interface UriFunction extends _UriFunction {}\n export interface Options extends HttpOptions {\n /**\n * If set to true, use the HTTP GET method for query operations. Mutations\n * will still use the method specified in fetchOptions.method (which defaults\n * to POST).\n */\n useGETForQueries?: boolean;\n }\n}\n\n// For backwards compatibility.\nexport import FetchOptions = HttpLink.Options;\nexport import UriFunction = HttpLink.UriFunction;\n\nexport const createHttpLink = (linkOptions: HttpLink.Options = {}) => {\n let {\n uri = '/graphql',\n // use default global fetch is nothing passed in\n fetch: fetcher,\n includeExtensions,\n useGETForQueries,\n ...requestOptions\n } = linkOptions;\n\n // dev warnings to ensure fetch is present\n checkFetcher(fetcher);\n\n //fetcher is set here rather than the destructuring to ensure fetch is\n //declared before referencing it. Reference in the destructuring would cause\n //a ReferenceError\n if (!fetcher) {\n fetcher = fetch;\n }\n\n const linkConfig = {\n http: { includeExtensions },\n options: requestOptions.fetchOptions,\n credentials: requestOptions.credentials,\n headers: requestOptions.headers,\n };\n\n return new ApolloLink(operation => {\n let chosenURI = selectURI(operation, uri);\n\n const context = operation.getContext();\n\n // `apollographql-client-*` headers are automatically set if a\n // `clientAwareness` object is found in the context. These headers are\n // set first, followed by the rest of the headers pulled from\n // `context.headers`. If desired, `apollographql-client-*` headers set by\n // the `clientAwareness` object can be overridden by\n // `apollographql-client-*` headers set in `context.headers`.\n const clientAwarenessHeaders = {};\n if (context.clientAwareness) {\n const { name, version } = context.clientAwareness;\n if (name) {\n clientAwarenessHeaders['apollographql-client-name'] = name;\n }\n if (version) {\n clientAwarenessHeaders['apollographql-client-version'] = version;\n }\n }\n\n const contextHeaders = { ...clientAwarenessHeaders, ...context.headers };\n\n const contextConfig = {\n http: context.http,\n options: context.fetchOptions,\n credentials: context.credentials,\n headers: contextHeaders,\n };\n\n //uses fallback, link, and then context to build options\n const { options, body } = selectHttpOptionsAndBody(\n operation,\n fallbackHttpConfig,\n linkConfig,\n contextConfig,\n );\n\n let controller;\n if (!(options as any).signal) {\n const { controller: _controller, signal } = createSignalIfSupported();\n controller = _controller;\n if (controller) (options as any).signal = signal;\n }\n\n // If requested, set method to GET if there are no mutations.\n const definitionIsMutation = (d: DefinitionNode) => {\n return d.kind === 'OperationDefinition' && d.operation === 'mutation';\n };\n if (\n useGETForQueries &&\n !operation.query.definitions.some(definitionIsMutation)\n ) {\n options.method = 'GET';\n }\n\n if (options.method === 'GET') {\n const { newURI, parseError } = rewriteURIForGET(chosenURI, body);\n if (parseError) {\n return fromError(parseError);\n }\n chosenURI = newURI;\n } else {\n try {\n (options as any).body = serializeFetchParameter(body, 'Payload');\n } catch (parseError) {\n return fromError(parseError);\n }\n }\n\n return new Observable(observer => {\n fetcher(chosenURI, options)\n .then(response => {\n operation.setContext({ response });\n return response;\n })\n .then(parseAndCheckHttpResponse(operation))\n .then(result => {\n // we have data and can send it to back up the link chain\n observer.next(result);\n observer.complete();\n return result;\n })\n .catch(err => {\n // fetch was cancelled so its already been cleaned up in the unsubscribe\n if (err.name === 'AbortError') return;\n // if it is a network error, BUT there is graphql result info\n // fire the next observer before calling error\n // this gives apollo-client (and react-apollo) the `graphqlErrors` and `networErrors`\n // to pass to UI\n // this should only happen if we *also* have data as part of the response key per\n // the spec\n if (err.result && err.result.errors && err.result.data) {\n // if we dont' call next, the UI can only show networkError because AC didn't\n // get andy graphqlErrors\n // this is graphql execution result info (i.e errors and possibly data)\n // this is because there is no formal spec how errors should translate to\n // http status codes. So an auth error (401) could have both data\n // from a public field, errors from a private field, and a status of 401\n // {\n // user { // this will have errors\n // firstName\n // }\n // products { // this is public so will have data\n // cost\n // }\n // }\n //\n // the result of above *could* look like this:\n // {\n // data: { products: [{ cost: \"$10\" }] },\n // errors: [{\n // message: 'your session has timed out',\n // path: []\n // }]\n // }\n // status code of above would be a 401\n // in the UI you want to show data where you can, errors as data where you can\n // and use correct http status codes\n observer.next(err.result);\n }\n observer.error(err);\n });\n\n return () => {\n // XXX support canceling this request\n // https://developers.google.com/web/updates/2017/09/abortable-fetch\n if (controller) controller.abort();\n };\n });\n });\n};\n\n// For GET operations, returns the given URI rewritten with parameters, or a\n// parse error.\nfunction rewriteURIForGET(chosenURI: string, body: Body) {\n // Implement the standard HTTP GET serialization, plus 'extensions'. Note\n // the extra level of JSON serialization!\n const queryParams = [];\n const addQueryParam = (key: string, value: string) => {\n queryParams.push(`${key}=${encodeURIComponent(value)}`);\n };\n\n if ('query' in body) {\n addQueryParam('query', body.query);\n }\n if (body.operationName) {\n addQueryParam('operationName', body.operationName);\n }\n if (body.variables) {\n let serializedVariables;\n try {\n serializedVariables = serializeFetchParameter(\n body.variables,\n 'Variables map',\n );\n } catch (parseError) {\n return { parseError };\n }\n addQueryParam('variables', serializedVariables);\n }\n if (body.extensions) {\n let serializedExtensions;\n try {\n serializedExtensions = serializeFetchParameter(\n body.extensions,\n 'Extensions map',\n );\n } catch (parseError) {\n return { parseError };\n }\n addQueryParam('extensions', serializedExtensions);\n }\n\n // Reconstruct the URI with added query params.\n // XXX This assumes that the URI is well-formed and that it doesn't\n // already contain any of these query params. We could instead use the\n // URL API and take a polyfill (whatwg-url@6) for older browsers that\n // don't support URLSearchParams. Note that some browsers (and\n // versions of whatwg-url) support URL but not URLSearchParams!\n let fragment = '',\n preFragment = chosenURI;\n const fragmentStart = chosenURI.indexOf('#');\n if (fragmentStart !== -1) {\n fragment = chosenURI.substr(fragmentStart);\n preFragment = chosenURI.substr(0, fragmentStart);\n }\n const queryParamsPrefix = preFragment.indexOf('?') === -1 ? '?' : '&';\n const newURI =\n preFragment + queryParamsPrefix + queryParams.join('&') + fragment;\n return { newURI };\n}\n\nexport class HttpLink extends ApolloLink {\n public requester: RequestHandler;\n constructor(opts?: HttpLink.Options) {\n super(createHttpLink(opts).request);\n }\n}\n","import {\n ApolloLink,\n Observable,\n Operation,\n NextLink,\n FetchResult,\n} from 'apollo-link';\n\nimport {\n DelayFunction,\n DelayFunctionOptions,\n buildDelayFunction,\n} from './delayFunction';\nimport {\n RetryFunction,\n RetryFunctionOptions,\n buildRetryFunction,\n} from './retryFunction';\n\nexport namespace RetryLink {\n export interface Options {\n /**\n * Configuration for the delay strategy to use, or a custom delay strategy.\n */\n delay?: DelayFunctionOptions | DelayFunction;\n\n /**\n * Configuration for the retry strategy to use, or a custom retry strategy.\n */\n attempts?: RetryFunctionOptions | RetryFunction;\n }\n}\n\n/**\n * Tracking and management of operations that may be (or currently are) retried.\n */\nclass RetryableOperation {\n private retryCount: number = 0;\n private values: any[] = [];\n private error: any;\n private complete = false;\n private canceled = false;\n private observers: ZenObservable.Observer[] = [];\n private currentSubscription: ZenObservable.Subscription = null;\n private timerId: number;\n\n constructor(\n private operation: Operation,\n private nextLink: NextLink,\n private delayFor: DelayFunction,\n private retryIf: RetryFunction,\n ) {}\n\n /**\n * Register a new observer for this operation.\n *\n * If the operation has previously emitted other events, they will be\n * immediately triggered for the observer.\n */\n public subscribe(observer: ZenObservable.Observer) {\n if (this.canceled) {\n throw new Error(\n `Subscribing to a retryable link that was canceled is not supported`,\n );\n }\n this.observers.push(observer);\n\n // If we've already begun, catch this observer up.\n for (const value of this.values) {\n observer.next(value);\n }\n\n if (this.complete) {\n observer.complete();\n } else if (this.error) {\n observer.error(this.error);\n }\n }\n\n /**\n * Remove a previously registered observer from this operation.\n *\n * If no observers remain, the operation will stop retrying, and unsubscribe\n * from its downstream link.\n */\n public unsubscribe(observer: ZenObservable.Observer) {\n const index = this.observers.indexOf(observer);\n if (index < 0) {\n throw new Error(\n `RetryLink BUG! Attempting to unsubscribe unknown observer!`,\n );\n }\n // Note that we are careful not to change the order of length of the array,\n // as we are often mid-iteration when calling this method.\n this.observers[index] = null;\n\n // If this is the last observer, we're done.\n if (this.observers.every(o => o === null)) {\n this.cancel();\n }\n }\n\n /**\n * Start the initial request.\n */\n public start() {\n if (this.currentSubscription) return; // Already started.\n\n this.try();\n }\n\n /**\n * Stop retrying for the operation, and cancel any in-progress requests.\n */\n public cancel() {\n if (this.currentSubscription) {\n this.currentSubscription.unsubscribe();\n }\n clearTimeout(this.timerId);\n this.timerId = null;\n this.currentSubscription = null;\n this.canceled = true;\n }\n\n private try() {\n this.currentSubscription = this.nextLink(this.operation).subscribe({\n next: this.onNext,\n error: this.onError,\n complete: this.onComplete,\n });\n }\n\n private onNext = (value: any) => {\n this.values.push(value);\n for (const observer of this.observers) {\n if (!observer) continue;\n observer.next(value);\n }\n };\n\n private onComplete = () => {\n this.complete = true;\n for (const observer of this.observers) {\n if (!observer) continue;\n observer.complete();\n }\n };\n\n private onError = async error => {\n this.retryCount += 1;\n\n // Should we retry?\n const shouldRetry = await this.retryIf(\n this.retryCount,\n this.operation,\n error,\n );\n if (shouldRetry) {\n this.scheduleRetry(this.delayFor(this.retryCount, this.operation, error));\n return;\n }\n\n this.error = error;\n for (const observer of this.observers) {\n if (!observer) continue;\n observer.error(error);\n }\n };\n\n private scheduleRetry(delay) {\n if (this.timerId) {\n throw new Error(`RetryLink BUG! Encountered overlapping retries`);\n }\n\n this.timerId = setTimeout(() => {\n this.timerId = null;\n this.try();\n }, delay);\n }\n}\n\nexport class RetryLink extends ApolloLink {\n private delayFor: DelayFunction;\n private retryIf: RetryFunction;\n\n constructor({ delay, attempts }: RetryLink.Options = {}) {\n super();\n this.delayFor =\n typeof delay === 'function' ? delay : buildDelayFunction(delay);\n this.retryIf =\n typeof attempts === 'function' ? attempts : buildRetryFunction(attempts);\n }\n\n public request(\n operation: Operation,\n nextLink: NextLink,\n ): Observable {\n const retryable = new RetryableOperation(\n operation,\n nextLink,\n this.delayFor,\n this.retryIf,\n );\n retryable.start();\n\n return new Observable(observer => {\n retryable.subscribe(observer);\n return () => {\n retryable.unsubscribe(observer);\n };\n });\n }\n}\n","import { Operation } from 'apollo-link';\n\n/**\n * Advanced mode: a function that implements the strategy for calculating delays\n * for particular responses.\n */\nexport interface DelayFunction {\n (count: number, operation: Operation, error: any): number;\n}\n\nexport interface DelayFunctionOptions {\n /**\n * The number of milliseconds to wait before attempting the first retry.\n *\n * Delays will increase exponentially for each attempt. E.g. if this is\n * set to 100, subsequent retries will be delayed by 200, 400, 800, etc,\n * until they reach maxDelay.\n *\n * Note that if jittering is enabled, this is the _average_ delay.\n *\n * Defaults to 300.\n */\n initial?: number;\n\n /**\n * The maximum number of milliseconds that the link should wait for any\n * retry.\n *\n * Defaults to Infinity.\n */\n max?: number;\n\n /**\n * Whether delays between attempts should be randomized.\n *\n * This helps avoid thundering herd type situations by better distributing\n * load during major outages.\n *\n * Defaults to true.\n */\n jitter?: boolean;\n}\n\nexport function buildDelayFunction({\n initial = 300,\n max = Infinity,\n jitter = true,\n}: DelayFunctionOptions = {}): DelayFunction {\n let baseDelay;\n if (jitter) {\n // If we're jittering, baseDelay is half of the maximum delay for that\n // attempt (and is, on average, the delay we will encounter).\n baseDelay = initial;\n } else {\n // If we're not jittering, adjust baseDelay so that the first attempt\n // lines up with initialDelay, for everyone's sanity.\n baseDelay = initial / 2;\n }\n\n return function delayFunction(count: number) {\n let delay = Math.min(max, baseDelay * 2 ** count);\n if (jitter) {\n // We opt for a full jitter approach for a mostly uniform distribution,\n // but bound it within initialDelay and delay for everyone's sanity.\n delay = Math.random() * delay;\n }\n\n return delay;\n };\n}\n","import { Operation } from 'apollo-link';\n\n/**\n * Advanced mode: a function that determines both whether a particular\n * response should be retried.\n */\nexport interface RetryFunction {\n (count: number, operation: Operation, error: any): boolean | Promise;\n}\n\nexport interface RetryFunctionOptions {\n /**\n * The max number of times to try a single operation before giving up.\n *\n * Note that this INCLUDES the initial request as part of the count.\n * E.g. maxTries of 1 indicates no retrying should occur.\n *\n * Defaults to 5. Pass Infinity for infinite retries.\n */\n max?: number;\n\n /**\n * Predicate function that determines whether a particular error should\n * trigger a retry.\n *\n * For example, you may want to not retry 4xx class HTTP errors.\n *\n * By default, all errors are retried.\n */\n retryIf?: (error: any, operation: Operation) => boolean | Promise;\n}\n\nexport function buildRetryFunction({\n max = 5,\n retryIf,\n}: RetryFunctionOptions = {}): RetryFunction {\n return function retryFunction(count, operation, error) {\n if (count >= max) return false;\n return retryIf ? retryIf(error, operation) : !!error;\n };\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import Observable from 'zen-observable-ts';\n\nimport { GraphQLRequest, Operation } from './types';\nimport { ApolloLink } from './link';\n\nimport { getOperationName } from 'apollo-utilities';\nimport { invariant, InvariantError } from 'ts-invariant';\nexport { getOperationName };\n\nexport function validateOperation(operation: GraphQLRequest): GraphQLRequest {\n const OPERATION_FIELDS = [\n 'query',\n 'operationName',\n 'variables',\n 'extensions',\n 'context',\n ];\n for (let key of Object.keys(operation)) {\n if (OPERATION_FIELDS.indexOf(key) < 0) {\n throw new InvariantError(`illegal argument: ${key}`);\n }\n }\n\n return operation;\n}\n\nexport class LinkError extends Error {\n public link: ApolloLink;\n constructor(message?: string, link?: ApolloLink) {\n super(message);\n this.link = link;\n }\n}\n\nexport function isTerminating(link: ApolloLink): boolean {\n return link.request.length <= 1;\n}\n\nexport function toPromise(observable: Observable): Promise {\n let completed = false;\n return new Promise((resolve, reject) => {\n observable.subscribe({\n next: data => {\n if (completed) {\n invariant.warn(\n `Promise Wrapper does not support multiple results from Observable`,\n );\n } else {\n completed = true;\n resolve(data);\n }\n },\n error: reject,\n });\n });\n}\n\n// backwards compat\nexport const makePromise = toPromise;\n\nexport function fromPromise(promise: Promise): Observable {\n return new Observable(observer => {\n promise\n .then((value: T) => {\n observer.next(value);\n observer.complete();\n })\n .catch(observer.error.bind(observer));\n });\n}\n\nexport function fromError(errorValue: any): Observable {\n return new Observable(observer => {\n observer.error(errorValue);\n });\n}\n\nexport function transformOperation(operation: GraphQLRequest): GraphQLRequest {\n const transformedOperation: GraphQLRequest = {\n variables: operation.variables || {},\n extensions: operation.extensions || {},\n operationName: operation.operationName,\n query: operation.query,\n };\n\n // best guess at an operation name\n if (!transformedOperation.operationName) {\n transformedOperation.operationName =\n typeof transformedOperation.query !== 'string'\n ? getOperationName(transformedOperation.query)\n : '';\n }\n\n return transformedOperation as Operation;\n}\n\nexport function createOperation(\n starting: any,\n operation: GraphQLRequest,\n): Operation {\n let context = { ...starting };\n const setContext = next => {\n if (typeof next === 'function') {\n context = { ...context, ...next(context) };\n } else {\n context = { ...context, ...next };\n }\n };\n const getContext = () => ({ ...context });\n\n Object.defineProperty(operation, 'setContext', {\n enumerable: false,\n value: setContext,\n });\n\n Object.defineProperty(operation, 'getContext', {\n enumerable: false,\n value: getContext,\n });\n\n Object.defineProperty(operation, 'toKey', {\n enumerable: false,\n value: () => getKey(operation),\n });\n\n return operation as Operation;\n}\n\nexport function getKey(operation: GraphQLRequest) {\n // XXX We're assuming here that query and variables will be serialized in\n // the same order, which might not always be true.\n const { query, variables, operationName } = operation;\n return JSON.stringify([operationName, query, variables]);\n}\n","import Observable from 'zen-observable-ts';\nimport { invariant, InvariantError } from 'ts-invariant';\n\nimport {\n GraphQLRequest,\n NextLink,\n Operation,\n RequestHandler,\n FetchResult,\n} from './types';\n\nimport {\n validateOperation,\n isTerminating,\n LinkError,\n transformOperation,\n createOperation,\n} from './linkUtils';\n\nfunction passthrough(op, forward) {\n return forward ? forward(op) : Observable.of();\n}\n\nfunction toLink(handler: RequestHandler | ApolloLink) {\n return typeof handler === 'function' ? new ApolloLink(handler) : handler;\n}\n\nexport function empty(): ApolloLink {\n return new ApolloLink(() => Observable.of());\n}\n\nexport function from(links: ApolloLink[]): ApolloLink {\n if (links.length === 0) return empty();\n return links.map(toLink).reduce((x, y) => x.concat(y));\n}\n\nexport function split(\n test: (op: Operation) => boolean,\n left: ApolloLink | RequestHandler,\n right?: ApolloLink | RequestHandler,\n): ApolloLink {\n const leftLink = toLink(left);\n const rightLink = toLink(right || new ApolloLink(passthrough));\n\n if (isTerminating(leftLink) && isTerminating(rightLink)) {\n return new ApolloLink(operation => {\n return test(operation)\n ? leftLink.request(operation) || Observable.of()\n : rightLink.request(operation) || Observable.of();\n });\n } else {\n return new ApolloLink((operation, forward) => {\n return test(operation)\n ? leftLink.request(operation, forward) || Observable.of()\n : rightLink.request(operation, forward) || Observable.of();\n });\n }\n}\n\n// join two Links together\nexport const concat = (\n first: ApolloLink | RequestHandler,\n second: ApolloLink | RequestHandler,\n) => {\n const firstLink = toLink(first);\n if (isTerminating(firstLink)) {\n invariant.warn(\n new LinkError(\n `You are calling concat on a terminating link, which will have no effect`,\n firstLink,\n ),\n );\n return firstLink;\n }\n const nextLink = toLink(second);\n\n if (isTerminating(nextLink)) {\n return new ApolloLink(\n operation =>\n firstLink.request(\n operation,\n op => nextLink.request(op) || Observable.of(),\n ) || Observable.of(),\n );\n } else {\n return new ApolloLink((operation, forward) => {\n return (\n firstLink.request(operation, op => {\n return nextLink.request(op, forward) || Observable.of();\n }) || Observable.of()\n );\n });\n }\n};\n\nexport class ApolloLink {\n public static empty = empty;\n public static from = from;\n public static split = split;\n public static execute = execute;\n\n constructor(request?: RequestHandler) {\n if (request) this.request = request;\n }\n\n public split(\n test: (op: Operation) => boolean,\n left: ApolloLink | RequestHandler,\n right?: ApolloLink | RequestHandler,\n ): ApolloLink {\n return this.concat(split(test, left, right || new ApolloLink(passthrough)));\n }\n\n public concat(next: ApolloLink | RequestHandler): ApolloLink {\n return concat(this, next);\n }\n\n public request(\n operation: Operation,\n forward?: NextLink,\n ): Observable | null {\n throw new InvariantError('request is not implemented');\n }\n}\n\nexport function execute(\n link: ApolloLink,\n operation: GraphQLRequest,\n): Observable {\n return (\n link.request(\n createOperation(\n operation.context,\n transformOperation(validateOperation(operation)),\n ),\n ) || Observable.of()\n );\n}\n","/* tslint:disable */\n\nimport zenObservable from 'zen-observable';\n\nnamespace Observable {\n\n}\n\nimport { ZenObservable } from './types';\n\nexport { ZenObservable };\n\nexport type Observer = ZenObservable.Observer;\nexport type Subscriber = ZenObservable.Subscriber;\nexport type ObservableLike = ZenObservable.ObservableLike;\n\nexport const Observable: {\n new (subscriber: Subscriber): Observable;\n from(\n observable: Observable | ZenObservable.ObservableLike | ArrayLike,\n ): Observable;\n of(...args: Array): Observable;\n} = zenObservable;\n\nexport interface Observable {\n subscribe(\n observerOrNext: ((value: T) => void) | ZenObservable.Observer,\n error?: (error: any) => void,\n complete?: () => void,\n ): ZenObservable.Subscription;\n\n forEach(fn: (value: T) => void): Promise;\n\n map(fn: (value: T) => R): Observable;\n\n filter(fn: (value: T) => boolean): Observable;\n\n reduce(\n fn: (previousValue: R | T, currentValue: T) => R | T,\n initialValue?: R | T,\n ): Observable;\n\n flatMap(fn: (value: T) => ZenObservable.ObservableLike): Observable;\n\n from(\n observable: Observable | ZenObservable.ObservableLike | ArrayLike,\n ): Observable;\n of(...args: Array): Observable;\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import {\n DirectiveNode,\n FieldNode,\n IntValueNode,\n FloatValueNode,\n StringValueNode,\n BooleanValueNode,\n ObjectValueNode,\n ListValueNode,\n EnumValueNode,\n NullValueNode,\n VariableNode,\n InlineFragmentNode,\n ValueNode,\n SelectionNode,\n NameNode,\n} from 'graphql';\n\nimport stringify from 'fast-json-stable-stringify';\nimport { InvariantError } from 'ts-invariant';\n\nexport interface IdValue {\n type: 'id';\n id: string;\n generated: boolean;\n typename: string | undefined;\n}\n\nexport interface JsonValue {\n type: 'json';\n json: any;\n}\n\nexport type ListValue = Array;\n\nexport type StoreValue =\n | number\n | string\n | string[]\n | IdValue\n | ListValue\n | JsonValue\n | null\n | undefined\n | void\n | Object;\n\nexport type ScalarValue = StringValueNode | BooleanValueNode | EnumValueNode;\n\nexport function isScalarValue(value: ValueNode): value is ScalarValue {\n return ['StringValue', 'BooleanValue', 'EnumValue'].indexOf(value.kind) > -1;\n}\n\nexport type NumberValue = IntValueNode | FloatValueNode;\n\nexport function isNumberValue(value: ValueNode): value is NumberValue {\n return ['IntValue', 'FloatValue'].indexOf(value.kind) > -1;\n}\n\nfunction isStringValue(value: ValueNode): value is StringValueNode {\n return value.kind === 'StringValue';\n}\n\nfunction isBooleanValue(value: ValueNode): value is BooleanValueNode {\n return value.kind === 'BooleanValue';\n}\n\nfunction isIntValue(value: ValueNode): value is IntValueNode {\n return value.kind === 'IntValue';\n}\n\nfunction isFloatValue(value: ValueNode): value is FloatValueNode {\n return value.kind === 'FloatValue';\n}\n\nfunction isVariable(value: ValueNode): value is VariableNode {\n return value.kind === 'Variable';\n}\n\nfunction isObjectValue(value: ValueNode): value is ObjectValueNode {\n return value.kind === 'ObjectValue';\n}\n\nfunction isListValue(value: ValueNode): value is ListValueNode {\n return value.kind === 'ListValue';\n}\n\nfunction isEnumValue(value: ValueNode): value is EnumValueNode {\n return value.kind === 'EnumValue';\n}\n\nfunction isNullValue(value: ValueNode): value is NullValueNode {\n return value.kind === 'NullValue';\n}\n\nexport function valueToObjectRepresentation(\n argObj: any,\n name: NameNode,\n value: ValueNode,\n variables?: Object,\n) {\n if (isIntValue(value) || isFloatValue(value)) {\n argObj[name.value] = Number(value.value);\n } else if (isBooleanValue(value) || isStringValue(value)) {\n argObj[name.value] = value.value;\n } else if (isObjectValue(value)) {\n const nestedArgObj = {};\n value.fields.map(obj =>\n valueToObjectRepresentation(nestedArgObj, obj.name, obj.value, variables),\n );\n argObj[name.value] = nestedArgObj;\n } else if (isVariable(value)) {\n const variableValue = (variables || ({} as any))[value.name.value];\n argObj[name.value] = variableValue;\n } else if (isListValue(value)) {\n argObj[name.value] = value.values.map(listValue => {\n const nestedArgArrayObj = {};\n valueToObjectRepresentation(\n nestedArgArrayObj,\n name,\n listValue,\n variables,\n );\n return (nestedArgArrayObj as any)[name.value];\n });\n } else if (isEnumValue(value)) {\n argObj[name.value] = (value as EnumValueNode).value;\n } else if (isNullValue(value)) {\n argObj[name.value] = null;\n } else {\n throw new InvariantError(\n `The inline argument \"${name.value}\" of kind \"${(value as any).kind}\"` +\n 'is not supported. Use variables instead of inline arguments to ' +\n 'overcome this limitation.',\n );\n }\n}\n\nexport function storeKeyNameFromField(\n field: FieldNode,\n variables?: Object,\n): string {\n let directivesObj: any = null;\n if (field.directives) {\n directivesObj = {};\n field.directives.forEach(directive => {\n directivesObj[directive.name.value] = {};\n\n if (directive.arguments) {\n directive.arguments.forEach(({ name, value }) =>\n valueToObjectRepresentation(\n directivesObj[directive.name.value],\n name,\n value,\n variables,\n ),\n );\n }\n });\n }\n\n let argObj: any = null;\n if (field.arguments && field.arguments.length) {\n argObj = {};\n field.arguments.forEach(({ name, value }) =>\n valueToObjectRepresentation(argObj, name, value, variables),\n );\n }\n\n return getStoreKeyName(field.name.value, argObj, directivesObj);\n}\n\nexport type Directives = {\n [directiveName: string]: {\n [argName: string]: any;\n };\n};\n\nconst KNOWN_DIRECTIVES: string[] = [\n 'connection',\n 'include',\n 'skip',\n 'client',\n 'rest',\n 'export',\n];\n\nexport function getStoreKeyName(\n fieldName: string,\n args?: Object,\n directives?: Directives,\n): string {\n if (\n directives &&\n directives['connection'] &&\n directives['connection']['key']\n ) {\n if (\n directives['connection']['filter'] &&\n (directives['connection']['filter'] as string[]).length > 0\n ) {\n const filterKeys = directives['connection']['filter']\n ? (directives['connection']['filter'] as string[])\n : [];\n filterKeys.sort();\n\n const queryArgs = args as { [key: string]: any };\n const filteredArgs = {} as { [key: string]: any };\n filterKeys.forEach(key => {\n filteredArgs[key] = queryArgs[key];\n });\n\n return `${directives['connection']['key']}(${JSON.stringify(\n filteredArgs,\n )})`;\n } else {\n return directives['connection']['key'];\n }\n }\n\n let completeFieldName: string = fieldName;\n\n if (args) {\n // We can't use `JSON.stringify` here since it's non-deterministic,\n // and can lead to different store key names being created even though\n // the `args` object used during creation has the same properties/values.\n const stringifiedArgs: string = stringify(args);\n completeFieldName += `(${stringifiedArgs})`;\n }\n\n if (directives) {\n Object.keys(directives).forEach(key => {\n if (KNOWN_DIRECTIVES.indexOf(key) !== -1) return;\n if (directives[key] && Object.keys(directives[key]).length) {\n completeFieldName += `@${key}(${JSON.stringify(directives[key])})`;\n } else {\n completeFieldName += `@${key}`;\n }\n });\n }\n\n return completeFieldName;\n}\n\nexport function argumentsObjectFromField(\n field: FieldNode | DirectiveNode,\n variables: Object,\n): Object {\n if (field.arguments && field.arguments.length) {\n const argObj: Object = {};\n field.arguments.forEach(({ name, value }) =>\n valueToObjectRepresentation(argObj, name, value, variables),\n );\n return argObj;\n }\n\n return null;\n}\n\nexport function resultKeyNameFromField(field: FieldNode): string {\n return field.alias ? field.alias.value : field.name.value;\n}\n\nexport function isField(selection: SelectionNode): selection is FieldNode {\n return selection.kind === 'Field';\n}\n\nexport function isInlineFragment(\n selection: SelectionNode,\n): selection is InlineFragmentNode {\n return selection.kind === 'InlineFragment';\n}\n\nexport function isIdValue(idObject: StoreValue): idObject is IdValue {\n return idObject &&\n (idObject as IdValue | JsonValue).type === 'id' &&\n typeof (idObject as IdValue).generated === 'boolean';\n}\n\nexport type IdConfig = {\n id: string;\n typename: string | undefined;\n};\n\nexport function toIdValue(\n idConfig: string | IdConfig,\n generated = false,\n): IdValue {\n return {\n type: 'id',\n generated,\n ...(typeof idConfig === 'string'\n ? { id: idConfig, typename: undefined }\n : idConfig),\n };\n}\n\nexport function isJsonValue(jsonObject: StoreValue): jsonObject is JsonValue {\n return (\n jsonObject != null &&\n typeof jsonObject === 'object' &&\n (jsonObject as IdValue | JsonValue).type === 'json'\n );\n}\n\nfunction defaultValueFromVariable(node: VariableNode) {\n throw new InvariantError(`Variable nodes are not supported by valueFromNode`);\n}\n\nexport type VariableValue = (node: VariableNode) => any;\n\n/**\n * Evaluate a ValueNode and yield its value in its natural JS form.\n */\nexport function valueFromNode(\n node: ValueNode,\n onVariable: VariableValue = defaultValueFromVariable,\n): any {\n switch (node.kind) {\n case 'Variable':\n return onVariable(node);\n case 'NullValue':\n return null;\n case 'IntValue':\n return parseInt(node.value, 10);\n case 'FloatValue':\n return parseFloat(node.value);\n case 'ListValue':\n return node.values.map(v => valueFromNode(v, onVariable));\n case 'ObjectValue': {\n const value: { [key: string]: any } = {};\n for (const field of node.fields) {\n value[field.name.value] = valueFromNode(field.value, onVariable);\n }\n return value;\n }\n default:\n return node.value;\n }\n}\n","// Provides the methods that allow QueryManager to handle the `skip` and\n// `include` directives within GraphQL.\nimport {\n FieldNode,\n SelectionNode,\n VariableNode,\n BooleanValueNode,\n DirectiveNode,\n DocumentNode,\n ArgumentNode,\n ValueNode,\n} from 'graphql';\n\nimport { visit } from 'graphql/language/visitor';\n\nimport { invariant } from 'ts-invariant';\n\nimport { argumentsObjectFromField } from './storeUtils';\n\nexport type DirectiveInfo = {\n [fieldName: string]: { [argName: string]: any };\n};\n\nexport function getDirectiveInfoFromField(\n field: FieldNode,\n variables: Object,\n): DirectiveInfo {\n if (field.directives && field.directives.length) {\n const directiveObj: DirectiveInfo = {};\n field.directives.forEach((directive: DirectiveNode) => {\n directiveObj[directive.name.value] = argumentsObjectFromField(\n directive,\n variables,\n );\n });\n return directiveObj;\n }\n return null;\n}\n\nexport function shouldInclude(\n selection: SelectionNode,\n variables: { [name: string]: any } = {},\n): boolean {\n return getInclusionDirectives(\n selection.directives,\n ).every(({ directive, ifArgument }) => {\n let evaledValue: boolean = false;\n if (ifArgument.value.kind === 'Variable') {\n evaledValue = variables[(ifArgument.value as VariableNode).name.value];\n invariant(\n evaledValue !== void 0,\n `Invalid variable referenced in @${directive.name.value} directive.`,\n );\n } else {\n evaledValue = (ifArgument.value as BooleanValueNode).value;\n }\n return directive.name.value === 'skip' ? !evaledValue : evaledValue;\n });\n}\n\nexport function getDirectiveNames(doc: DocumentNode) {\n const names: string[] = [];\n\n visit(doc, {\n Directive(node) {\n names.push(node.name.value);\n },\n });\n\n return names;\n}\n\nexport function hasDirectives(names: string[], doc: DocumentNode) {\n return getDirectiveNames(doc).some(\n (name: string) => names.indexOf(name) > -1,\n );\n}\n\nexport function hasClientExports(document: DocumentNode) {\n return (\n document &&\n hasDirectives(['client'], document) &&\n hasDirectives(['export'], document)\n );\n}\n\nexport type InclusionDirectives = Array<{\n directive: DirectiveNode;\n ifArgument: ArgumentNode;\n}>;\n\nfunction isInclusionDirective({ name: { value } }: DirectiveNode): boolean {\n return value === 'skip' || value === 'include';\n}\n\nexport function getInclusionDirectives(\n directives: ReadonlyArray,\n): InclusionDirectives {\n return directives ? directives.filter(isInclusionDirective).map(directive => {\n const directiveArguments = directive.arguments;\n const directiveName = directive.name.value;\n\n invariant(\n directiveArguments && directiveArguments.length === 1,\n `Incorrect number of arguments for the @${directiveName} directive.`,\n );\n\n const ifArgument = directiveArguments[0];\n invariant(\n ifArgument.name && ifArgument.name.value === 'if',\n `Invalid argument for the @${directiveName} directive.`,\n );\n\n const ifValue: ValueNode = ifArgument.value;\n\n // means it has to be a variable value if this is a valid @skip or @include directive\n invariant(\n ifValue &&\n (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'),\n `Argument for the @${directiveName} directive must be a variable or a boolean value.`,\n );\n\n return { directive, ifArgument };\n }) : [];\n}\n\n","import { DocumentNode, FragmentDefinitionNode } from 'graphql';\nimport { invariant, InvariantError } from 'ts-invariant';\n\n/**\n * Returns a query document which adds a single query operation that only\n * spreads the target fragment inside of it.\n *\n * So for example a document of:\n *\n * ```graphql\n * fragment foo on Foo { a b c }\n * ```\n *\n * Turns into:\n *\n * ```graphql\n * { ...foo }\n *\n * fragment foo on Foo { a b c }\n * ```\n *\n * The target fragment will either be the only fragment in the document, or a\n * fragment specified by the provided `fragmentName`. If there is more than one\n * fragment, but a `fragmentName` was not defined then an error will be thrown.\n */\nexport function getFragmentQueryDocument(\n document: DocumentNode,\n fragmentName?: string,\n): DocumentNode {\n let actualFragmentName = fragmentName;\n\n // Build an array of all our fragment definitions that will be used for\n // validations. We also do some validations on the other definitions in the\n // document while building this list.\n const fragments: Array = [];\n document.definitions.forEach(definition => {\n // Throw an error if we encounter an operation definition because we will\n // define our own operation definition later on.\n if (definition.kind === 'OperationDefinition') {\n throw new InvariantError(\n `Found a ${definition.operation} operation${\n definition.name ? ` named '${definition.name.value}'` : ''\n }. ` +\n 'No operations are allowed when using a fragment as a query. Only fragments are allowed.',\n );\n }\n // Add our definition to the fragments array if it is a fragment\n // definition.\n if (definition.kind === 'FragmentDefinition') {\n fragments.push(definition);\n }\n });\n\n // If the user did not give us a fragment name then let us try to get a\n // name from a single fragment in the definition.\n if (typeof actualFragmentName === 'undefined') {\n invariant(\n fragments.length === 1,\n `Found ${\n fragments.length\n } fragments. \\`fragmentName\\` must be provided when there is not exactly 1 fragment.`,\n );\n actualFragmentName = fragments[0].name.value;\n }\n\n // Generate a query document with an operation that simply spreads the\n // fragment inside of it.\n const query: DocumentNode = {\n ...document,\n definitions: [\n {\n kind: 'OperationDefinition',\n operation: 'query',\n selectionSet: {\n kind: 'SelectionSet',\n selections: [\n {\n kind: 'FragmentSpread',\n name: {\n kind: 'Name',\n value: actualFragmentName,\n },\n },\n ],\n },\n },\n ...document.definitions,\n ],\n };\n\n return query;\n}\n","/**\n * Adds the properties of one or more source objects to a target object. Works exactly like\n * `Object.assign`, but as a utility to maintain support for IE 11.\n *\n * @see https://github.com/apollostack/apollo-client/pull/1009\n */\nexport function assign(a: A, b: B): A & B;\nexport function assign(a: A, b: B, c: C): A & B & C;\nexport function assign(a: A, b: B, c: C, d: D): A & B & C & D;\nexport function assign(\n a: A,\n b: B,\n c: C,\n d: D,\n e: E,\n): A & B & C & D & E;\nexport function assign(target: any, ...sources: Array): any;\nexport function assign(\n target: { [key: string]: any },\n ...sources: Array<{ [key: string]: any }>\n): { [key: string]: any } {\n sources.forEach(source => {\n if (typeof source === 'undefined' || source === null) {\n return;\n }\n Object.keys(source).forEach(key => {\n target[key] = source[key];\n });\n });\n return target;\n}\n","import {\n DocumentNode,\n OperationDefinitionNode,\n FragmentDefinitionNode,\n ValueNode,\n} from 'graphql';\n\nimport { invariant, InvariantError } from 'ts-invariant';\n\nimport { assign } from './util/assign';\n\nimport { valueToObjectRepresentation, JsonValue } from './storeUtils';\n\nexport function getMutationDefinition(\n doc: DocumentNode,\n): OperationDefinitionNode {\n checkDocument(doc);\n\n let mutationDef: OperationDefinitionNode | null = doc.definitions.filter(\n definition =>\n definition.kind === 'OperationDefinition' &&\n definition.operation === 'mutation',\n )[0] as OperationDefinitionNode;\n\n invariant(mutationDef, 'Must contain a mutation definition.');\n\n return mutationDef;\n}\n\n// Checks the document for errors and throws an exception if there is an error.\nexport function checkDocument(doc: DocumentNode) {\n invariant(\n doc && doc.kind === 'Document',\n `Expecting a parsed GraphQL document. Perhaps you need to wrap the query \\\nstring in a \"gql\" tag? http://docs.apollostack.com/apollo-client/core.html#gql`,\n );\n\n const operations = doc.definitions\n .filter(d => d.kind !== 'FragmentDefinition')\n .map(definition => {\n if (definition.kind !== 'OperationDefinition') {\n throw new InvariantError(\n `Schema type definitions not allowed in queries. Found: \"${\n definition.kind\n }\"`,\n );\n }\n return definition;\n });\n\n invariant(\n operations.length <= 1,\n `Ambiguous GraphQL document: contains ${operations.length} operations`,\n );\n\n return doc;\n}\n\nexport function getOperationDefinition(\n doc: DocumentNode,\n): OperationDefinitionNode | undefined {\n checkDocument(doc);\n return doc.definitions.filter(\n definition => definition.kind === 'OperationDefinition',\n )[0] as OperationDefinitionNode;\n}\n\nexport function getOperationDefinitionOrDie(\n document: DocumentNode,\n): OperationDefinitionNode {\n const def = getOperationDefinition(document);\n invariant(def, `GraphQL document is missing an operation`);\n return def;\n}\n\nexport function getOperationName(doc: DocumentNode): string | null {\n return (\n doc.definitions\n .filter(\n definition =>\n definition.kind === 'OperationDefinition' && definition.name,\n )\n .map((x: OperationDefinitionNode) => x.name.value)[0] || null\n );\n}\n\n// Returns the FragmentDefinitions from a particular document as an array\nexport function getFragmentDefinitions(\n doc: DocumentNode,\n): FragmentDefinitionNode[] {\n return doc.definitions.filter(\n definition => definition.kind === 'FragmentDefinition',\n ) as FragmentDefinitionNode[];\n}\n\nexport function getQueryDefinition(doc: DocumentNode): OperationDefinitionNode {\n const queryDef = getOperationDefinition(doc) as OperationDefinitionNode;\n\n invariant(\n queryDef && queryDef.operation === 'query',\n 'Must contain a query definition.',\n );\n\n return queryDef;\n}\n\nexport function getFragmentDefinition(\n doc: DocumentNode,\n): FragmentDefinitionNode {\n invariant(\n doc.kind === 'Document',\n `Expecting a parsed GraphQL document. Perhaps you need to wrap the query \\\nstring in a \"gql\" tag? http://docs.apollostack.com/apollo-client/core.html#gql`,\n );\n\n invariant(\n doc.definitions.length <= 1,\n 'Fragment must have exactly one definition.',\n );\n\n const fragmentDef = doc.definitions[0] as FragmentDefinitionNode;\n\n invariant(\n fragmentDef.kind === 'FragmentDefinition',\n 'Must be a fragment definition.',\n );\n\n return fragmentDef as FragmentDefinitionNode;\n}\n\n/**\n * Returns the first operation definition found in this document.\n * If no operation definition is found, the first fragment definition will be returned.\n * If no definitions are found, an error will be thrown.\n */\nexport function getMainDefinition(\n queryDoc: DocumentNode,\n): OperationDefinitionNode | FragmentDefinitionNode {\n checkDocument(queryDoc);\n\n let fragmentDefinition;\n\n for (let definition of queryDoc.definitions) {\n if (definition.kind === 'OperationDefinition') {\n const operation = (definition as OperationDefinitionNode).operation;\n if (\n operation === 'query' ||\n operation === 'mutation' ||\n operation === 'subscription'\n ) {\n return definition as OperationDefinitionNode;\n }\n }\n if (definition.kind === 'FragmentDefinition' && !fragmentDefinition) {\n // we do this because we want to allow multiple fragment definitions\n // to precede an operation definition.\n fragmentDefinition = definition as FragmentDefinitionNode;\n }\n }\n\n if (fragmentDefinition) {\n return fragmentDefinition;\n }\n\n throw new InvariantError(\n 'Expected a parsed GraphQL query with a query, mutation, subscription, or a fragment.',\n );\n}\n\n/**\n * This is an interface that describes a map from fragment names to fragment definitions.\n */\nexport interface FragmentMap {\n [fragmentName: string]: FragmentDefinitionNode;\n}\n\n// Utility function that takes a list of fragment definitions and makes a hash out of them\n// that maps the name of the fragment to the fragment definition.\nexport function createFragmentMap(\n fragments: FragmentDefinitionNode[] = [],\n): FragmentMap {\n const symTable: FragmentMap = {};\n fragments.forEach(fragment => {\n symTable[fragment.name.value] = fragment;\n });\n\n return symTable;\n}\n\nexport function getDefaultValues(\n definition: OperationDefinitionNode | undefined,\n): { [key: string]: JsonValue } {\n if (\n definition &&\n definition.variableDefinitions &&\n definition.variableDefinitions.length\n ) {\n const defaultValues = definition.variableDefinitions\n .filter(({ defaultValue }) => defaultValue)\n .map(\n ({ variable, defaultValue }): { [key: string]: JsonValue } => {\n const defaultValueObj: { [key: string]: JsonValue } = {};\n valueToObjectRepresentation(\n defaultValueObj,\n variable.name,\n defaultValue as ValueNode,\n );\n\n return defaultValueObj;\n },\n );\n\n return assign({}, ...defaultValues);\n }\n\n return {};\n}\n\n/**\n * Returns the names of all variables declared by the operation.\n */\nexport function variablesInOperation(\n operation: OperationDefinitionNode,\n): Set {\n const names = new Set();\n if (operation.variableDefinitions) {\n for (const definition of operation.variableDefinitions) {\n names.add(definition.variable.name.value);\n }\n }\n\n return names;\n}\n","export function filterInPlace(\n array: T[],\n test: (elem: T) => boolean,\n context?: any,\n): T[] {\n let target = 0;\n array.forEach(function (elem, i) {\n if (test.call(this, elem, i, array)) {\n array[target++] = elem;\n }\n }, context);\n array.length = target;\n return array;\n}\n","import {\n DocumentNode,\n SelectionNode,\n SelectionSetNode,\n OperationDefinitionNode,\n FieldNode,\n DirectiveNode,\n FragmentDefinitionNode,\n ArgumentNode,\n FragmentSpreadNode,\n VariableDefinitionNode,\n VariableNode,\n} from 'graphql';\nimport { visit } from 'graphql/language/visitor';\n\nimport {\n checkDocument,\n getOperationDefinition,\n getFragmentDefinition,\n getFragmentDefinitions,\n createFragmentMap,\n FragmentMap,\n getMainDefinition,\n} from './getFromAST';\nimport { filterInPlace } from './util/filterInPlace';\nimport { invariant } from 'ts-invariant';\nimport { isField, isInlineFragment } from './storeUtils';\n\nexport type RemoveNodeConfig = {\n name?: string;\n test?: (node: N) => boolean;\n remove?: boolean;\n};\n\nexport type GetNodeConfig = {\n name?: string;\n test?: (node: N) => boolean;\n};\n\nexport type RemoveDirectiveConfig = RemoveNodeConfig;\nexport type GetDirectiveConfig = GetNodeConfig;\nexport type RemoveArgumentsConfig = RemoveNodeConfig;\nexport type GetFragmentSpreadConfig = GetNodeConfig;\nexport type RemoveFragmentSpreadConfig = RemoveNodeConfig;\nexport type RemoveFragmentDefinitionConfig = RemoveNodeConfig<\n FragmentDefinitionNode\n>;\nexport type RemoveVariableDefinitionConfig = RemoveNodeConfig<\n VariableDefinitionNode\n>;\n\nconst TYPENAME_FIELD: FieldNode = {\n kind: 'Field',\n name: {\n kind: 'Name',\n value: '__typename',\n },\n};\n\nfunction isEmpty(\n op: OperationDefinitionNode | FragmentDefinitionNode,\n fragments: FragmentMap,\n): boolean {\n return op.selectionSet.selections.every(\n selection =>\n selection.kind === 'FragmentSpread' &&\n isEmpty(fragments[selection.name.value], fragments),\n );\n}\n\nfunction nullIfDocIsEmpty(doc: DocumentNode) {\n return isEmpty(\n getOperationDefinition(doc) || getFragmentDefinition(doc),\n createFragmentMap(getFragmentDefinitions(doc)),\n )\n ? null\n : doc;\n}\n\nfunction getDirectiveMatcher(\n directives: (RemoveDirectiveConfig | GetDirectiveConfig)[],\n) {\n return function directiveMatcher(directive: DirectiveNode) {\n return directives.some(\n dir =>\n (dir.name && dir.name === directive.name.value) ||\n (dir.test && dir.test(directive)),\n );\n };\n}\n\nexport function removeDirectivesFromDocument(\n directives: RemoveDirectiveConfig[],\n doc: DocumentNode,\n): DocumentNode | null {\n const variablesInUse: Record = Object.create(null);\n let variablesToRemove: RemoveArgumentsConfig[] = [];\n\n const fragmentSpreadsInUse: Record = Object.create(null);\n let fragmentSpreadsToRemove: RemoveFragmentSpreadConfig[] = [];\n\n let modifiedDoc = nullIfDocIsEmpty(\n visit(doc, {\n Variable: {\n enter(node, _key, parent) {\n // Store each variable that's referenced as part of an argument\n // (excluding operation definition variables), so we know which\n // variables are being used. If we later want to remove a variable\n // we'll fist check to see if it's being used, before continuing with\n // the removal.\n if (\n (parent as VariableDefinitionNode).kind !== 'VariableDefinition'\n ) {\n variablesInUse[node.name.value] = true;\n }\n },\n },\n\n Field: {\n enter(node) {\n if (directives && node.directives) {\n // If `remove` is set to true for a directive, and a directive match\n // is found for a field, remove the field as well.\n const shouldRemoveField = directives.some(\n directive => directive.remove,\n );\n\n if (\n shouldRemoveField &&\n node.directives &&\n node.directives.some(getDirectiveMatcher(directives))\n ) {\n if (node.arguments) {\n // Store field argument variables so they can be removed\n // from the operation definition.\n node.arguments.forEach(arg => {\n if (arg.value.kind === 'Variable') {\n variablesToRemove.push({\n name: (arg.value as VariableNode).name.value,\n });\n }\n });\n }\n\n if (node.selectionSet) {\n // Store fragment spread names so they can be removed from the\n // docuemnt.\n getAllFragmentSpreadsFromSelectionSet(node.selectionSet).forEach(\n frag => {\n fragmentSpreadsToRemove.push({\n name: frag.name.value,\n });\n },\n );\n }\n\n // Remove the field.\n return null;\n }\n }\n },\n },\n\n FragmentSpread: {\n enter(node) {\n // Keep track of referenced fragment spreads. This is used to\n // determine if top level fragment definitions should be removed.\n fragmentSpreadsInUse[node.name.value] = true;\n },\n },\n\n Directive: {\n enter(node) {\n // If a matching directive is found, remove it.\n if (getDirectiveMatcher(directives)(node)) {\n return null;\n }\n },\n },\n }),\n );\n\n // If we've removed fields with arguments, make sure the associated\n // variables are also removed from the rest of the document, as long as they\n // aren't being used elsewhere.\n if (\n modifiedDoc &&\n filterInPlace(variablesToRemove, v => !variablesInUse[v.name]).length\n ) {\n modifiedDoc = removeArgumentsFromDocument(variablesToRemove, modifiedDoc);\n }\n\n // If we've removed selection sets with fragment spreads, make sure the\n // associated fragment definitions are also removed from the rest of the\n // document, as long as they aren't being used elsewhere.\n if (\n modifiedDoc &&\n filterInPlace(fragmentSpreadsToRemove, fs => !fragmentSpreadsInUse[fs.name])\n .length\n ) {\n modifiedDoc = removeFragmentSpreadFromDocument(\n fragmentSpreadsToRemove,\n modifiedDoc,\n );\n }\n\n return modifiedDoc;\n}\n\nexport function addTypenameToDocument(doc: DocumentNode): DocumentNode {\n return visit(checkDocument(doc), {\n SelectionSet: {\n enter(node, _key, parent) {\n // Don't add __typename to OperationDefinitions.\n if (\n parent &&\n (parent as OperationDefinitionNode).kind === 'OperationDefinition'\n ) {\n return;\n }\n\n // No changes if no selections.\n const { selections } = node;\n if (!selections) {\n return;\n }\n\n // If selections already have a __typename, or are part of an\n // introspection query, do nothing.\n const skip = selections.some(selection => {\n return (\n isField(selection) &&\n (selection.name.value === '__typename' ||\n selection.name.value.lastIndexOf('__', 0) === 0)\n );\n });\n if (skip) {\n return;\n }\n\n // If this SelectionSet is @export-ed as an input variable, it should\n // not have a __typename field (see issue #4691).\n const field = parent as FieldNode;\n if (\n isField(field) &&\n field.directives &&\n field.directives.some(d => d.name.value === 'export')\n ) {\n return;\n }\n\n // Create and return a new SelectionSet with a __typename Field.\n return {\n ...node,\n selections: [...selections, TYPENAME_FIELD],\n };\n },\n },\n });\n}\n\nconst connectionRemoveConfig = {\n test: (directive: DirectiveNode) => {\n const willRemove = directive.name.value === 'connection';\n if (willRemove) {\n if (\n !directive.arguments ||\n !directive.arguments.some(arg => arg.name.value === 'key')\n ) {\n invariant.warn(\n 'Removing an @connection directive even though it does not have a key. ' +\n 'You may want to use the key parameter to specify a store key.',\n );\n }\n }\n\n return willRemove;\n },\n};\n\nexport function removeConnectionDirectiveFromDocument(doc: DocumentNode) {\n return removeDirectivesFromDocument(\n [connectionRemoveConfig],\n checkDocument(doc),\n );\n}\n\nfunction hasDirectivesInSelectionSet(\n directives: GetDirectiveConfig[],\n selectionSet: SelectionSetNode,\n nestedCheck = true,\n): boolean {\n return (\n selectionSet &&\n selectionSet.selections &&\n selectionSet.selections.some(selection =>\n hasDirectivesInSelection(directives, selection, nestedCheck),\n )\n );\n}\n\nfunction hasDirectivesInSelection(\n directives: GetDirectiveConfig[],\n selection: SelectionNode,\n nestedCheck = true,\n): boolean {\n if (!isField(selection)) {\n return true;\n }\n\n if (!selection.directives) {\n return false;\n }\n\n return (\n selection.directives.some(getDirectiveMatcher(directives)) ||\n (nestedCheck &&\n hasDirectivesInSelectionSet(\n directives,\n selection.selectionSet,\n nestedCheck,\n ))\n );\n}\n\nexport function getDirectivesFromDocument(\n directives: GetDirectiveConfig[],\n doc: DocumentNode,\n): DocumentNode {\n checkDocument(doc);\n\n let parentPath: string;\n\n return nullIfDocIsEmpty(\n visit(doc, {\n SelectionSet: {\n enter(node, _key, _parent, path) {\n const currentPath = path.join('-');\n\n if (\n !parentPath ||\n currentPath === parentPath ||\n !currentPath.startsWith(parentPath)\n ) {\n if (node.selections) {\n const selectionsWithDirectives = node.selections.filter(\n selection => hasDirectivesInSelection(directives, selection),\n );\n\n if (hasDirectivesInSelectionSet(directives, node, false)) {\n parentPath = currentPath;\n }\n\n return {\n ...node,\n selections: selectionsWithDirectives,\n };\n } else {\n return null;\n }\n }\n },\n },\n }),\n );\n}\n\nfunction getArgumentMatcher(config: RemoveArgumentsConfig[]) {\n return function argumentMatcher(argument: ArgumentNode) {\n return config.some(\n (aConfig: RemoveArgumentsConfig) =>\n argument.value &&\n argument.value.kind === 'Variable' &&\n argument.value.name &&\n (aConfig.name === argument.value.name.value ||\n (aConfig.test && aConfig.test(argument))),\n );\n };\n}\n\nexport function removeArgumentsFromDocument(\n config: RemoveArgumentsConfig[],\n doc: DocumentNode,\n): DocumentNode {\n const argMatcher = getArgumentMatcher(config);\n\n return nullIfDocIsEmpty(\n visit(doc, {\n OperationDefinition: {\n enter(node) {\n return {\n ...node,\n // Remove matching top level variables definitions.\n variableDefinitions: node.variableDefinitions.filter(\n varDef =>\n !config.some(arg => arg.name === varDef.variable.name.value),\n ),\n };\n },\n },\n\n Field: {\n enter(node) {\n // If `remove` is set to true for an argument, and an argument match\n // is found for a field, remove the field as well.\n const shouldRemoveField = config.some(argConfig => argConfig.remove);\n\n if (shouldRemoveField) {\n let argMatchCount = 0;\n node.arguments.forEach(arg => {\n if (argMatcher(arg)) {\n argMatchCount += 1;\n }\n });\n if (argMatchCount === 1) {\n return null;\n }\n }\n },\n },\n\n Argument: {\n enter(node) {\n // Remove all matching arguments.\n if (argMatcher(node)) {\n return null;\n }\n },\n },\n }),\n );\n}\n\nexport function removeFragmentSpreadFromDocument(\n config: RemoveFragmentSpreadConfig[],\n doc: DocumentNode,\n): DocumentNode {\n function enter(\n node: FragmentSpreadNode | FragmentDefinitionNode,\n ): null | void {\n if (config.some(def => def.name === node.name.value)) {\n return null;\n }\n }\n\n return nullIfDocIsEmpty(\n visit(doc, {\n FragmentSpread: { enter },\n FragmentDefinition: { enter },\n }),\n );\n}\n\nfunction getAllFragmentSpreadsFromSelectionSet(\n selectionSet: SelectionSetNode,\n): FragmentSpreadNode[] {\n const allFragments: FragmentSpreadNode[] = [];\n\n selectionSet.selections.forEach(selection => {\n if (\n (isField(selection) || isInlineFragment(selection)) &&\n selection.selectionSet\n ) {\n getAllFragmentSpreadsFromSelectionSet(selection.selectionSet).forEach(\n frag => allFragments.push(frag),\n );\n } else if (selection.kind === 'FragmentSpread') {\n allFragments.push(selection);\n }\n });\n\n return allFragments;\n}\n\n// If the incoming document is a query, return it as is. Otherwise, build a\n// new document containing a query operation based on the selection set\n// of the previous main operation.\nexport function buildQueryFromSelectionSet(\n document: DocumentNode,\n): DocumentNode {\n const definition = getMainDefinition(document);\n const definitionOperation = (definition).operation;\n\n if (definitionOperation === 'query') {\n // Already a query, so return the existing document.\n return document;\n }\n\n // Build a new query using the selection set of the main operation.\n const modifiedDoc = visit(document, {\n OperationDefinition: {\n enter(node) {\n return {\n ...node,\n operation: 'query',\n };\n },\n },\n });\n return modifiedDoc;\n}\n\n// Remove fields / selection sets that include an @client directive.\nexport function removeClientSetsFromDocument(\n document: DocumentNode,\n): DocumentNode | null {\n checkDocument(document);\n\n let modifiedDoc = removeDirectivesFromDocument(\n [\n {\n test: (directive: DirectiveNode) => directive.name.value === 'client',\n remove: true,\n },\n ],\n document,\n );\n\n // After a fragment definition has had its @client related document\n // sets removed, if the only field it has left is a __typename field,\n // remove the entire fragment operation to prevent it from being fired\n // on the server.\n if (modifiedDoc) {\n modifiedDoc = visit(modifiedDoc, {\n FragmentDefinition: {\n enter(node) {\n if (node.selectionSet) {\n const isTypenameOnly = node.selectionSet.selections.every(\n selection =>\n isField(selection) && selection.name.value === '__typename',\n );\n if (isTypenameOnly) {\n return null;\n }\n }\n },\n },\n });\n }\n\n return modifiedDoc;\n}\n","export const canUseWeakMap = typeof WeakMap === 'function' && !(\n typeof navigator === 'object' &&\n navigator.product === 'ReactNative'\n);\n","const { toString } = Object.prototype;\n\n/**\n * Deeply clones a value to create a new instance.\n */\nexport function cloneDeep(value: T): T {\n return cloneDeepHelper(value, new Map());\n}\n\nfunction cloneDeepHelper(val: T, seen: Map): T {\n switch (toString.call(val)) {\n case \"[object Array]\": {\n if (seen.has(val)) return seen.get(val);\n const copy: T & any[] = (val as any).slice(0);\n seen.set(val, copy);\n copy.forEach(function (child, i) {\n copy[i] = cloneDeepHelper(child, seen);\n });\n return copy;\n }\n\n case \"[object Object]\": {\n if (seen.has(val)) return seen.get(val);\n // High fidelity polyfills of Object.create and Object.getPrototypeOf are\n // possible in all JS environments, so we will assume they exist/work.\n const copy = Object.create(Object.getPrototypeOf(val));\n seen.set(val, copy);\n Object.keys(val).forEach(key => {\n copy[key] = cloneDeepHelper((val as any)[key], seen);\n });\n return copy;\n }\n\n default:\n return val;\n }\n}\n","export function getEnv(): string | undefined {\n if (typeof process !== 'undefined' && process.env.NODE_ENV) {\n return process.env.NODE_ENV;\n }\n\n // default environment\n return 'development';\n}\n\nexport function isEnv(env: string): boolean {\n return getEnv() === env;\n}\n\nexport function isProduction(): boolean {\n return isEnv('production') === true;\n}\n\nexport function isDevelopment(): boolean {\n return isEnv('development') === true;\n}\n\nexport function isTest(): boolean {\n return isEnv('test') === true;\n}\n","import { ExecutionResult } from 'graphql';\n\nexport function tryFunctionOrLogError(f: Function) {\n try {\n return f();\n } catch (e) {\n if (console.error) {\n console.error(e);\n }\n }\n}\n\nexport function graphQLResultHasError(result: ExecutionResult) {\n return result.errors && result.errors.length;\n}\n","import { isDevelopment, isTest } from './environment';\n\n// Taken (mostly) from https://github.com/substack/deep-freeze to avoid\n// import hassles with rollup.\nfunction deepFreeze(o: any) {\n Object.freeze(o);\n\n Object.getOwnPropertyNames(o).forEach(function(prop) {\n if (\n o[prop] !== null &&\n (typeof o[prop] === 'object' || typeof o[prop] === 'function') &&\n !Object.isFrozen(o[prop])\n ) {\n deepFreeze(o[prop]);\n }\n });\n\n return o;\n}\n\nexport function maybeDeepFreeze(obj: any) {\n if (isDevelopment() || isTest()) {\n // Polyfilled Symbols potentially cause infinite / very deep recursion while deep freezing\n // which is known to crash IE11 (https://github.com/apollographql/apollo-client/issues/3043).\n const symbolIsPolyfilled =\n typeof Symbol === 'function' && typeof Symbol('') === 'string';\n\n if (!symbolIsPolyfilled) {\n return deepFreeze(obj);\n }\n }\n return obj;\n}\n","const { hasOwnProperty } = Object.prototype;\n\n// These mergeDeep and mergeDeepArray utilities merge any number of objects\n// together, sharing as much memory as possible with the source objects, while\n// remaining careful to avoid modifying any source objects.\n\n// Logically, the return type of mergeDeep should be the intersection of\n// all the argument types. The binary call signature is by far the most\n// common, but we support 0- through 5-ary as well. After that, the\n// resulting type is just the inferred array element type. Note to nerds:\n// there is a more clever way of doing this that converts the tuple type\n// first to a union type (easy enough: T[number]) and then converts the\n// union to an intersection type using distributive conditional type\n// inference, but that approach has several fatal flaws (boolean becomes\n// true & false, and the inferred type ends up as unknown in many cases),\n// in addition to being nearly impossible to explain/understand.\nexport type TupleToIntersection =\n T extends [infer A] ? A :\n T extends [infer A, infer B] ? A & B :\n T extends [infer A, infer B, infer C] ? A & B & C :\n T extends [infer A, infer B, infer C, infer D] ? A & B & C & D :\n T extends [infer A, infer B, infer C, infer D, infer E] ? A & B & C & D & E :\n T extends (infer U)[] ? U : any;\n\nexport function mergeDeep(\n ...sources: T\n): TupleToIntersection {\n return mergeDeepArray(sources);\n}\n\n// In almost any situation where you could succeed in getting the\n// TypeScript compiler to infer a tuple type for the sources array, you\n// could just use mergeDeep instead of mergeDeepArray, so instead of\n// trying to convert T[] to an intersection type we just infer the array\n// element type, which works perfectly when the sources array has a\n// consistent element type.\nexport function mergeDeepArray(sources: T[]): T {\n let target = sources[0] || {} as T;\n const count = sources.length;\n if (count > 1) {\n const pastCopies: any[] = [];\n target = shallowCopyForMerge(target, pastCopies);\n for (let i = 1; i < count; ++i) {\n target = mergeHelper(target, sources[i], pastCopies);\n }\n }\n return target;\n}\n\nfunction isObject(obj: any): obj is Record {\n return obj !== null && typeof obj === 'object';\n}\n\nfunction mergeHelper(\n target: any,\n source: any,\n pastCopies: any[],\n) {\n if (isObject(source) && isObject(target)) {\n // In case the target has been frozen, make an extensible copy so that\n // we can merge properties into the copy.\n if (Object.isExtensible && !Object.isExtensible(target)) {\n target = shallowCopyForMerge(target, pastCopies);\n }\n\n Object.keys(source).forEach(sourceKey => {\n const sourceValue = source[sourceKey];\n if (hasOwnProperty.call(target, sourceKey)) {\n const targetValue = target[sourceKey];\n if (sourceValue !== targetValue) {\n // When there is a key collision, we need to make a shallow copy of\n // target[sourceKey] so the merge does not modify any source objects.\n // To avoid making unnecessary copies, we use a simple array to track\n // past copies, since it's safe to modify copies created earlier in\n // the merge. We use an array for pastCopies instead of a Map or Set,\n // since the number of copies should be relatively small, and some\n // Map/Set polyfills modify their keys.\n target[sourceKey] = mergeHelper(\n shallowCopyForMerge(targetValue, pastCopies),\n sourceValue,\n pastCopies,\n );\n }\n } else {\n // If there is no collision, the target can safely share memory with\n // the source, and the recursion can terminate here.\n target[sourceKey] = sourceValue;\n }\n });\n\n return target;\n }\n\n // If source (or target) is not an object, let source replace target.\n return source;\n}\n\nfunction shallowCopyForMerge(value: T, pastCopies: any[]): T {\n if (\n value !== null &&\n typeof value === 'object' &&\n pastCopies.indexOf(value) < 0\n ) {\n if (Array.isArray(value)) {\n value = (value as any).slice(0);\n } else {\n value = {\n __proto__: Object.getPrototypeOf(value),\n ...value,\n };\n }\n pastCopies.push(value);\n }\n return value;\n}\n","import { isProduction, isTest } from './environment';\n\nconst haveWarned = Object.create({});\n\n/**\n * Print a warning only once in development.\n * In production no warnings are printed.\n * In test all warnings are printed.\n *\n * @param msg The warning message\n * @param type warn or error (will call console.warn or console.error)\n */\nexport function warnOnceInDevelopment(msg: string, type = 'warn') {\n if (!isProduction() && !haveWarned[msg]) {\n if (!isTest()) {\n haveWarned[msg] = true;\n }\n if (type === 'error') {\n console.error(msg);\n } else {\n console.warn(msg);\n }\n }\n}\n","/**\n * In order to make assertions easier, this function strips `symbol`'s from\n * the incoming data.\n *\n * This can be handy when running tests against `apollo-client` for example,\n * since it adds `symbol`'s to the data in the store. Jest's `toEqual`\n * function now covers `symbol`'s (https://github.com/facebook/jest/pull/3437),\n * which means all test data used in a `toEqual` comparison would also have to\n * include `symbol`'s, to pass. By stripping `symbol`'s from the cache data\n * we can compare against more simplified test data.\n */\nexport function stripSymbols(data: T): T {\n return JSON.parse(JSON.stringify(data));\n}\n","'use strict';\n\nconst asn1 = exports;\n\nasn1.bignum = require('bn.js');\n\nasn1.define = require('./asn1/api').define;\nasn1.base = require('./asn1/base');\nasn1.constants = require('./asn1/constants');\nasn1.decoders = require('./asn1/decoders');\nasn1.encoders = require('./asn1/encoders');\n","'use strict';\n\nconst encoders = require('./encoders');\nconst decoders = require('./decoders');\nconst inherits = require('inherits');\n\nconst api = exports;\n\napi.define = function define(name, body) {\n return new Entity(name, body);\n};\n\nfunction Entity(name, body) {\n this.name = name;\n this.body = body;\n\n this.decoders = {};\n this.encoders = {};\n}\n\nEntity.prototype._createNamed = function createNamed(Base) {\n const name = this.name;\n\n function Generated(entity) {\n this._initNamed(entity, name);\n }\n inherits(Generated, Base);\n Generated.prototype._initNamed = function _initNamed(entity, name) {\n Base.call(this, entity, name);\n };\n\n return new Generated(this);\n};\n\nEntity.prototype._getDecoder = function _getDecoder(enc) {\n enc = enc || 'der';\n // Lazily create decoder\n if (!this.decoders.hasOwnProperty(enc))\n this.decoders[enc] = this._createNamed(decoders[enc]);\n return this.decoders[enc];\n};\n\nEntity.prototype.decode = function decode(data, enc, options) {\n return this._getDecoder(enc).decode(data, options);\n};\n\nEntity.prototype._getEncoder = function _getEncoder(enc) {\n enc = enc || 'der';\n // Lazily create encoder\n if (!this.encoders.hasOwnProperty(enc))\n this.encoders[enc] = this._createNamed(encoders[enc]);\n return this.encoders[enc];\n};\n\nEntity.prototype.encode = function encode(data, enc, /* internal */ reporter) {\n return this._getEncoder(enc).encode(data, reporter);\n};\n","'use strict';\n\nconst inherits = require('inherits');\nconst Reporter = require('../base/reporter').Reporter;\nconst Buffer = require('safer-buffer').Buffer;\n\nfunction DecoderBuffer(base, options) {\n Reporter.call(this, options);\n if (!Buffer.isBuffer(base)) {\n this.error('Input not Buffer');\n return;\n }\n\n this.base = base;\n this.offset = 0;\n this.length = base.length;\n}\ninherits(DecoderBuffer, Reporter);\nexports.DecoderBuffer = DecoderBuffer;\n\nDecoderBuffer.isDecoderBuffer = function isDecoderBuffer(data) {\n if (data instanceof DecoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n Buffer.isBuffer(data.base) &&\n data.constructor.name === 'DecoderBuffer' &&\n typeof data.offset === 'number' &&\n typeof data.length === 'number' &&\n typeof data.save === 'function' &&\n typeof data.restore === 'function' &&\n typeof data.isEmpty === 'function' &&\n typeof data.readUInt8 === 'function' &&\n typeof data.skip === 'function' &&\n typeof data.raw === 'function';\n\n return isCompatible;\n};\n\nDecoderBuffer.prototype.save = function save() {\n return { offset: this.offset, reporter: Reporter.prototype.save.call(this) };\n};\n\nDecoderBuffer.prototype.restore = function restore(save) {\n // Return skipped data\n const res = new DecoderBuffer(this.base);\n res.offset = save.offset;\n res.length = this.offset;\n\n this.offset = save.offset;\n Reporter.prototype.restore.call(this, save.reporter);\n\n return res;\n};\n\nDecoderBuffer.prototype.isEmpty = function isEmpty() {\n return this.offset === this.length;\n};\n\nDecoderBuffer.prototype.readUInt8 = function readUInt8(fail) {\n if (this.offset + 1 <= this.length)\n return this.base.readUInt8(this.offset++, true);\n else\n return this.error(fail || 'DecoderBuffer overrun');\n};\n\nDecoderBuffer.prototype.skip = function skip(bytes, fail) {\n if (!(this.offset + bytes <= this.length))\n return this.error(fail || 'DecoderBuffer overrun');\n\n const res = new DecoderBuffer(this.base);\n\n // Share reporter state\n res._reporterState = this._reporterState;\n\n res.offset = this.offset;\n res.length = this.offset + bytes;\n this.offset += bytes;\n return res;\n};\n\nDecoderBuffer.prototype.raw = function raw(save) {\n return this.base.slice(save ? save.offset : this.offset, this.length);\n};\n\nfunction EncoderBuffer(value, reporter) {\n if (Array.isArray(value)) {\n this.length = 0;\n this.value = value.map(function(item) {\n if (!EncoderBuffer.isEncoderBuffer(item))\n item = new EncoderBuffer(item, reporter);\n this.length += item.length;\n return item;\n }, this);\n } else if (typeof value === 'number') {\n if (!(0 <= value && value <= 0xff))\n return reporter.error('non-byte EncoderBuffer value');\n this.value = value;\n this.length = 1;\n } else if (typeof value === 'string') {\n this.value = value;\n this.length = Buffer.byteLength(value);\n } else if (Buffer.isBuffer(value)) {\n this.value = value;\n this.length = value.length;\n } else {\n return reporter.error('Unsupported type: ' + typeof value);\n }\n}\nexports.EncoderBuffer = EncoderBuffer;\n\nEncoderBuffer.isEncoderBuffer = function isEncoderBuffer(data) {\n if (data instanceof EncoderBuffer) {\n return true;\n }\n\n // Or accept compatible API\n const isCompatible = typeof data === 'object' &&\n data.constructor.name === 'EncoderBuffer' &&\n typeof data.length === 'number' &&\n typeof data.join === 'function';\n\n return isCompatible;\n};\n\nEncoderBuffer.prototype.join = function join(out, offset) {\n if (!out)\n out = Buffer.alloc(this.length);\n if (!offset)\n offset = 0;\n\n if (this.length === 0)\n return out;\n\n if (Array.isArray(this.value)) {\n this.value.forEach(function(item) {\n item.join(out, offset);\n offset += item.length;\n });\n } else {\n if (typeof this.value === 'number')\n out[offset] = this.value;\n else if (typeof this.value === 'string')\n out.write(this.value, offset);\n else if (Buffer.isBuffer(this.value))\n this.value.copy(out, offset);\n offset += this.length;\n }\n\n return out;\n};\n","'use strict';\n\nconst base = exports;\n\nbase.Reporter = require('./reporter').Reporter;\nbase.DecoderBuffer = require('./buffer').DecoderBuffer;\nbase.EncoderBuffer = require('./buffer').EncoderBuffer;\nbase.Node = require('./node');\n","'use strict';\n\nconst Reporter = require('../base/reporter').Reporter;\nconst EncoderBuffer = require('../base/buffer').EncoderBuffer;\nconst DecoderBuffer = require('../base/buffer').DecoderBuffer;\nconst assert = require('minimalistic-assert');\n\n// Supported tags\nconst tags = [\n 'seq', 'seqof', 'set', 'setof', 'objid', 'bool',\n 'gentime', 'utctime', 'null_', 'enum', 'int', 'objDesc',\n 'bitstr', 'bmpstr', 'charstr', 'genstr', 'graphstr', 'ia5str', 'iso646str',\n 'numstr', 'octstr', 'printstr', 't61str', 'unistr', 'utf8str', 'videostr'\n];\n\n// Public methods list\nconst methods = [\n 'key', 'obj', 'use', 'optional', 'explicit', 'implicit', 'def', 'choice',\n 'any', 'contains'\n].concat(tags);\n\n// Overrided methods list\nconst overrided = [\n '_peekTag', '_decodeTag', '_use',\n '_decodeStr', '_decodeObjid', '_decodeTime',\n '_decodeNull', '_decodeInt', '_decodeBool', '_decodeList',\n\n '_encodeComposite', '_encodeStr', '_encodeObjid', '_encodeTime',\n '_encodeNull', '_encodeInt', '_encodeBool'\n];\n\nfunction Node(enc, parent, name) {\n const state = {};\n this._baseState = state;\n\n state.name = name;\n state.enc = enc;\n\n state.parent = parent || null;\n state.children = null;\n\n // State\n state.tag = null;\n state.args = null;\n state.reverseArgs = null;\n state.choice = null;\n state.optional = false;\n state.any = false;\n state.obj = false;\n state.use = null;\n state.useDecoder = null;\n state.key = null;\n state['default'] = null;\n state.explicit = null;\n state.implicit = null;\n state.contains = null;\n\n // Should create new instance on each method\n if (!state.parent) {\n state.children = [];\n this._wrap();\n }\n}\nmodule.exports = Node;\n\nconst stateProps = [\n 'enc', 'parent', 'children', 'tag', 'args', 'reverseArgs', 'choice',\n 'optional', 'any', 'obj', 'use', 'alteredUse', 'key', 'default', 'explicit',\n 'implicit', 'contains'\n];\n\nNode.prototype.clone = function clone() {\n const state = this._baseState;\n const cstate = {};\n stateProps.forEach(function(prop) {\n cstate[prop] = state[prop];\n });\n const res = new this.constructor(cstate.parent);\n res._baseState = cstate;\n return res;\n};\n\nNode.prototype._wrap = function wrap() {\n const state = this._baseState;\n methods.forEach(function(method) {\n this[method] = function _wrappedMethod() {\n const clone = new this.constructor(this);\n state.children.push(clone);\n return clone[method].apply(clone, arguments);\n };\n }, this);\n};\n\nNode.prototype._init = function init(body) {\n const state = this._baseState;\n\n assert(state.parent === null);\n body.call(this);\n\n // Filter children\n state.children = state.children.filter(function(child) {\n return child._baseState.parent === this;\n }, this);\n assert.equal(state.children.length, 1, 'Root node can have only one child');\n};\n\nNode.prototype._useArgs = function useArgs(args) {\n const state = this._baseState;\n\n // Filter children and args\n const children = args.filter(function(arg) {\n return arg instanceof this.constructor;\n }, this);\n args = args.filter(function(arg) {\n return !(arg instanceof this.constructor);\n }, this);\n\n if (children.length !== 0) {\n assert(state.children === null);\n state.children = children;\n\n // Replace parent to maintain backward link\n children.forEach(function(child) {\n child._baseState.parent = this;\n }, this);\n }\n if (args.length !== 0) {\n assert(state.args === null);\n state.args = args;\n state.reverseArgs = args.map(function(arg) {\n if (typeof arg !== 'object' || arg.constructor !== Object)\n return arg;\n\n const res = {};\n Object.keys(arg).forEach(function(key) {\n if (key == (key | 0))\n key |= 0;\n const value = arg[key];\n res[value] = key;\n });\n return res;\n });\n }\n};\n\n//\n// Overrided methods\n//\n\noverrided.forEach(function(method) {\n Node.prototype[method] = function _overrided() {\n const state = this._baseState;\n throw new Error(method + ' not implemented for encoding: ' + state.enc);\n };\n});\n\n//\n// Public methods\n//\n\ntags.forEach(function(tag) {\n Node.prototype[tag] = function _tagMethod() {\n const state = this._baseState;\n const args = Array.prototype.slice.call(arguments);\n\n assert(state.tag === null);\n state.tag = tag;\n\n this._useArgs(args);\n\n return this;\n };\n});\n\nNode.prototype.use = function use(item) {\n assert(item);\n const state = this._baseState;\n\n assert(state.use === null);\n state.use = item;\n\n return this;\n};\n\nNode.prototype.optional = function optional() {\n const state = this._baseState;\n\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.def = function def(val) {\n const state = this._baseState;\n\n assert(state['default'] === null);\n state['default'] = val;\n state.optional = true;\n\n return this;\n};\n\nNode.prototype.explicit = function explicit(num) {\n const state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.explicit = num;\n\n return this;\n};\n\nNode.prototype.implicit = function implicit(num) {\n const state = this._baseState;\n\n assert(state.explicit === null && state.implicit === null);\n state.implicit = num;\n\n return this;\n};\n\nNode.prototype.obj = function obj() {\n const state = this._baseState;\n const args = Array.prototype.slice.call(arguments);\n\n state.obj = true;\n\n if (args.length !== 0)\n this._useArgs(args);\n\n return this;\n};\n\nNode.prototype.key = function key(newKey) {\n const state = this._baseState;\n\n assert(state.key === null);\n state.key = newKey;\n\n return this;\n};\n\nNode.prototype.any = function any() {\n const state = this._baseState;\n\n state.any = true;\n\n return this;\n};\n\nNode.prototype.choice = function choice(obj) {\n const state = this._baseState;\n\n assert(state.choice === null);\n state.choice = obj;\n this._useArgs(Object.keys(obj).map(function(key) {\n return obj[key];\n }));\n\n return this;\n};\n\nNode.prototype.contains = function contains(item) {\n const state = this._baseState;\n\n assert(state.use === null);\n state.contains = item;\n\n return this;\n};\n\n//\n// Decoding\n//\n\nNode.prototype._decode = function decode(input, options) {\n const state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return input.wrapResult(state.children[0]._decode(input, options));\n\n let result = state['default'];\n let present = true;\n\n let prevKey = null;\n if (state.key !== null)\n prevKey = input.enterKey(state.key);\n\n // Check if tag is there\n if (state.optional) {\n let tag = null;\n if (state.explicit !== null)\n tag = state.explicit;\n else if (state.implicit !== null)\n tag = state.implicit;\n else if (state.tag !== null)\n tag = state.tag;\n\n if (tag === null && !state.any) {\n // Trial and Error\n const save = input.save();\n try {\n if (state.choice === null)\n this._decodeGeneric(state.tag, input, options);\n else\n this._decodeChoice(input, options);\n present = true;\n } catch (e) {\n present = false;\n }\n input.restore(save);\n } else {\n present = this._peekTag(input, tag, state.any);\n\n if (input.isError(present))\n return present;\n }\n }\n\n // Push object on stack\n let prevObj;\n if (state.obj && present)\n prevObj = input.enterObject();\n\n if (present) {\n // Unwrap explicit values\n if (state.explicit !== null) {\n const explicit = this._decodeTag(input, state.explicit);\n if (input.isError(explicit))\n return explicit;\n input = explicit;\n }\n\n const start = input.offset;\n\n // Unwrap implicit and normal values\n if (state.use === null && state.choice === null) {\n let save;\n if (state.any)\n save = input.save();\n const body = this._decodeTag(\n input,\n state.implicit !== null ? state.implicit : state.tag,\n state.any\n );\n if (input.isError(body))\n return body;\n\n if (state.any)\n result = input.raw(save);\n else\n input = body;\n }\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), start, input.length, 'tagged');\n\n if (options && options.track && state.tag !== null)\n options.track(input.path(), input.offset, input.length, 'content');\n\n // Select proper method for tag\n if (state.any) {\n // no-op\n } else if (state.choice === null) {\n result = this._decodeGeneric(state.tag, input, options);\n } else {\n result = this._decodeChoice(input, options);\n }\n\n if (input.isError(result))\n return result;\n\n // Decode children\n if (!state.any && state.choice === null && state.children !== null) {\n state.children.forEach(function decodeChildren(child) {\n // NOTE: We are ignoring errors here, to let parser continue with other\n // parts of encoded data\n child._decode(input, options);\n });\n }\n\n // Decode contained/encoded by schema, only in bit or octet strings\n if (state.contains && (state.tag === 'octstr' || state.tag === 'bitstr')) {\n const data = new DecoderBuffer(result);\n result = this._getUse(state.contains, input._reporterState.obj)\n ._decode(data, options);\n }\n }\n\n // Pop object\n if (state.obj && present)\n result = input.leaveObject(prevObj);\n\n // Set key\n if (state.key !== null && (result !== null || present === true))\n input.leaveKey(prevKey, state.key, result);\n else if (prevKey !== null)\n input.exitKey(prevKey);\n\n return result;\n};\n\nNode.prototype._decodeGeneric = function decodeGeneric(tag, input, options) {\n const state = this._baseState;\n\n if (tag === 'seq' || tag === 'set')\n return null;\n if (tag === 'seqof' || tag === 'setof')\n return this._decodeList(input, tag, state.args[0], options);\n else if (/str$/.test(tag))\n return this._decodeStr(input, tag, options);\n else if (tag === 'objid' && state.args)\n return this._decodeObjid(input, state.args[0], state.args[1], options);\n else if (tag === 'objid')\n return this._decodeObjid(input, null, null, options);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._decodeTime(input, tag, options);\n else if (tag === 'null_')\n return this._decodeNull(input, options);\n else if (tag === 'bool')\n return this._decodeBool(input, options);\n else if (tag === 'objDesc')\n return this._decodeStr(input, tag, options);\n else if (tag === 'int' || tag === 'enum')\n return this._decodeInt(input, state.args && state.args[0], options);\n\n if (state.use !== null) {\n return this._getUse(state.use, input._reporterState.obj)\n ._decode(input, options);\n } else {\n return input.error('unknown tag: ' + tag);\n }\n};\n\nNode.prototype._getUse = function _getUse(entity, obj) {\n\n const state = this._baseState;\n // Create altered use decoder if implicit is set\n state.useDecoder = this._use(entity, obj);\n assert(state.useDecoder._baseState.parent === null);\n state.useDecoder = state.useDecoder._baseState.children[0];\n if (state.implicit !== state.useDecoder._baseState.implicit) {\n state.useDecoder = state.useDecoder.clone();\n state.useDecoder._baseState.implicit = state.implicit;\n }\n return state.useDecoder;\n};\n\nNode.prototype._decodeChoice = function decodeChoice(input, options) {\n const state = this._baseState;\n let result = null;\n let match = false;\n\n Object.keys(state.choice).some(function(key) {\n const save = input.save();\n const node = state.choice[key];\n try {\n const value = node._decode(input, options);\n if (input.isError(value))\n return false;\n\n result = { type: key, value: value };\n match = true;\n } catch (e) {\n input.restore(save);\n return false;\n }\n return true;\n }, this);\n\n if (!match)\n return input.error('Choice not matched');\n\n return result;\n};\n\n//\n// Encoding\n//\n\nNode.prototype._createEncoderBuffer = function createEncoderBuffer(data) {\n return new EncoderBuffer(data, this.reporter);\n};\n\nNode.prototype._encode = function encode(data, reporter, parent) {\n const state = this._baseState;\n if (state['default'] !== null && state['default'] === data)\n return;\n\n const result = this._encodeValue(data, reporter, parent);\n if (result === undefined)\n return;\n\n if (this._skipDefault(result, reporter, parent))\n return;\n\n return result;\n};\n\nNode.prototype._encodeValue = function encode(data, reporter, parent) {\n const state = this._baseState;\n\n // Decode root node\n if (state.parent === null)\n return state.children[0]._encode(data, reporter || new Reporter());\n\n let result = null;\n\n // Set reporter to share it with a child class\n this.reporter = reporter;\n\n // Check if data is there\n if (state.optional && data === undefined) {\n if (state['default'] !== null)\n data = state['default'];\n else\n return;\n }\n\n // Encode children first\n let content = null;\n let primitive = false;\n if (state.any) {\n // Anything that was given is translated to buffer\n result = this._createEncoderBuffer(data);\n } else if (state.choice) {\n result = this._encodeChoice(data, reporter);\n } else if (state.contains) {\n content = this._getUse(state.contains, parent)._encode(data, reporter);\n primitive = true;\n } else if (state.children) {\n content = state.children.map(function(child) {\n if (child._baseState.tag === 'null_')\n return child._encode(null, reporter, data);\n\n if (child._baseState.key === null)\n return reporter.error('Child should have a key');\n const prevKey = reporter.enterKey(child._baseState.key);\n\n if (typeof data !== 'object')\n return reporter.error('Child expected, but input is not object');\n\n const res = child._encode(data[child._baseState.key], reporter, data);\n reporter.leaveKey(prevKey);\n\n return res;\n }, this).filter(function(child) {\n return child;\n });\n content = this._createEncoderBuffer(content);\n } else {\n if (state.tag === 'seqof' || state.tag === 'setof') {\n // TODO(indutny): this should be thrown on DSL level\n if (!(state.args && state.args.length === 1))\n return reporter.error('Too many args for : ' + state.tag);\n\n if (!Array.isArray(data))\n return reporter.error('seqof/setof, but data is not Array');\n\n const child = this.clone();\n child._baseState.implicit = null;\n content = this._createEncoderBuffer(data.map(function(item) {\n const state = this._baseState;\n\n return this._getUse(state.args[0], data)._encode(item, reporter);\n }, child));\n } else if (state.use !== null) {\n result = this._getUse(state.use, parent)._encode(data, reporter);\n } else {\n content = this._encodePrimitive(state.tag, data);\n primitive = true;\n }\n }\n\n // Encode data itself\n if (!state.any && state.choice === null) {\n const tag = state.implicit !== null ? state.implicit : state.tag;\n const cls = state.implicit === null ? 'universal' : 'context';\n\n if (tag === null) {\n if (state.use === null)\n reporter.error('Tag could be omitted only for .use()');\n } else {\n if (state.use === null)\n result = this._encodeComposite(tag, primitive, cls, content);\n }\n }\n\n // Wrap in explicit\n if (state.explicit !== null)\n result = this._encodeComposite(state.explicit, false, 'context', result);\n\n return result;\n};\n\nNode.prototype._encodeChoice = function encodeChoice(data, reporter) {\n const state = this._baseState;\n\n const node = state.choice[data.type];\n if (!node) {\n assert(\n false,\n data.type + ' not found in ' +\n JSON.stringify(Object.keys(state.choice)));\n }\n return node._encode(data.value, reporter);\n};\n\nNode.prototype._encodePrimitive = function encodePrimitive(tag, data) {\n const state = this._baseState;\n\n if (/str$/.test(tag))\n return this._encodeStr(data, tag);\n else if (tag === 'objid' && state.args)\n return this._encodeObjid(data, state.reverseArgs[0], state.args[1]);\n else if (tag === 'objid')\n return this._encodeObjid(data, null, null);\n else if (tag === 'gentime' || tag === 'utctime')\n return this._encodeTime(data, tag);\n else if (tag === 'null_')\n return this._encodeNull();\n else if (tag === 'int' || tag === 'enum')\n return this._encodeInt(data, state.args && state.reverseArgs[0]);\n else if (tag === 'bool')\n return this._encodeBool(data);\n else if (tag === 'objDesc')\n return this._encodeStr(data, tag);\n else\n throw new Error('Unsupported tag: ' + tag);\n};\n\nNode.prototype._isNumstr = function isNumstr(str) {\n return /^[0-9 ]*$/.test(str);\n};\n\nNode.prototype._isPrintstr = function isPrintstr(str) {\n return /^[A-Za-z0-9 '()+,-./:=?]*$/.test(str);\n};\n","'use strict';\n\nconst inherits = require('inherits');\n\nfunction Reporter(options) {\n this._reporterState = {\n obj: null,\n path: [],\n options: options || {},\n errors: []\n };\n}\nexports.Reporter = Reporter;\n\nReporter.prototype.isError = function isError(obj) {\n return obj instanceof ReporterError;\n};\n\nReporter.prototype.save = function save() {\n const state = this._reporterState;\n\n return { obj: state.obj, pathLen: state.path.length };\n};\n\nReporter.prototype.restore = function restore(data) {\n const state = this._reporterState;\n\n state.obj = data.obj;\n state.path = state.path.slice(0, data.pathLen);\n};\n\nReporter.prototype.enterKey = function enterKey(key) {\n return this._reporterState.path.push(key);\n};\n\nReporter.prototype.exitKey = function exitKey(index) {\n const state = this._reporterState;\n\n state.path = state.path.slice(0, index - 1);\n};\n\nReporter.prototype.leaveKey = function leaveKey(index, key, value) {\n const state = this._reporterState;\n\n this.exitKey(index);\n if (state.obj !== null)\n state.obj[key] = value;\n};\n\nReporter.prototype.path = function path() {\n return this._reporterState.path.join('/');\n};\n\nReporter.prototype.enterObject = function enterObject() {\n const state = this._reporterState;\n\n const prev = state.obj;\n state.obj = {};\n return prev;\n};\n\nReporter.prototype.leaveObject = function leaveObject(prev) {\n const state = this._reporterState;\n\n const now = state.obj;\n state.obj = prev;\n return now;\n};\n\nReporter.prototype.error = function error(msg) {\n let err;\n const state = this._reporterState;\n\n const inherited = msg instanceof ReporterError;\n if (inherited) {\n err = msg;\n } else {\n err = new ReporterError(state.path.map(function(elem) {\n return '[' + JSON.stringify(elem) + ']';\n }).join(''), msg.message || msg, msg.stack);\n }\n\n if (!state.options.partial)\n throw err;\n\n if (!inherited)\n state.errors.push(err);\n\n return err;\n};\n\nReporter.prototype.wrapResult = function wrapResult(result) {\n const state = this._reporterState;\n if (!state.options.partial)\n return result;\n\n return {\n result: this.isError(result) ? null : result,\n errors: state.errors\n };\n};\n\nfunction ReporterError(path, msg) {\n this.path = path;\n this.rethrow(msg);\n}\ninherits(ReporterError, Error);\n\nReporterError.prototype.rethrow = function rethrow(msg) {\n this.message = msg + ' at: ' + (this.path || '(shallow)');\n if (Error.captureStackTrace)\n Error.captureStackTrace(this, ReporterError);\n\n if (!this.stack) {\n try {\n // IE only adds stack when thrown\n throw new Error(this.message);\n } catch (e) {\n this.stack = e.stack;\n }\n }\n return this;\n};\n","'use strict';\n\n// Helper\nfunction reverse(map) {\n const res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n const value = map[key];\n res[value] = key;\n });\n\n return res;\n}\n\nexports.tagClass = {\n 0: 'universal',\n 1: 'application',\n 2: 'context',\n 3: 'private'\n};\nexports.tagClassByName = reverse(exports.tagClass);\n\nexports.tag = {\n 0x00: 'end',\n 0x01: 'bool',\n 0x02: 'int',\n 0x03: 'bitstr',\n 0x04: 'octstr',\n 0x05: 'null_',\n 0x06: 'objid',\n 0x07: 'objDesc',\n 0x08: 'external',\n 0x09: 'real',\n 0x0a: 'enum',\n 0x0b: 'embed',\n 0x0c: 'utf8str',\n 0x0d: 'relativeOid',\n 0x10: 'seq',\n 0x11: 'set',\n 0x12: 'numstr',\n 0x13: 'printstr',\n 0x14: 't61str',\n 0x15: 'videostr',\n 0x16: 'ia5str',\n 0x17: 'utctime',\n 0x18: 'gentime',\n 0x19: 'graphstr',\n 0x1a: 'iso646str',\n 0x1b: 'genstr',\n 0x1c: 'unistr',\n 0x1d: 'charstr',\n 0x1e: 'bmpstr'\n};\nexports.tagByName = reverse(exports.tag);\n","'use strict';\n\nconst constants = exports;\n\n// Helper\nconstants._reverse = function reverse(map) {\n const res = {};\n\n Object.keys(map).forEach(function(key) {\n // Convert key to integer if it is stringified\n if ((key | 0) == key)\n key = key | 0;\n\n const value = map[key];\n res[value] = key;\n });\n\n return res;\n};\n\nconstants.der = require('./der');\n","'use strict';\n\nconst inherits = require('inherits');\n\nconst bignum = require('bn.js');\nconst DecoderBuffer = require('../base/buffer').DecoderBuffer;\nconst Node = require('../base/node');\n\n// Import DER constants\nconst der = require('../constants/der');\n\nfunction DERDecoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n}\nmodule.exports = DERDecoder;\n\nDERDecoder.prototype.decode = function decode(data, options) {\n if (!DecoderBuffer.isDecoderBuffer(data)) {\n data = new DecoderBuffer(data, options);\n }\n\n return this.tree._decode(data, options);\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\ninherits(DERNode, Node);\n\nDERNode.prototype._peekTag = function peekTag(buffer, tag, any) {\n if (buffer.isEmpty())\n return false;\n\n const state = buffer.save();\n const decodedTag = derDecodeTag(buffer, 'Failed to peek tag: \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n buffer.restore(state);\n\n return decodedTag.tag === tag || decodedTag.tagStr === tag ||\n (decodedTag.tagStr + 'of') === tag || any;\n};\n\nDERNode.prototype._decodeTag = function decodeTag(buffer, tag, any) {\n const decodedTag = derDecodeTag(buffer,\n 'Failed to decode tag of \"' + tag + '\"');\n if (buffer.isError(decodedTag))\n return decodedTag;\n\n let len = derDecodeLen(buffer,\n decodedTag.primitive,\n 'Failed to get length of \"' + tag + '\"');\n\n // Failure\n if (buffer.isError(len))\n return len;\n\n if (!any &&\n decodedTag.tag !== tag &&\n decodedTag.tagStr !== tag &&\n decodedTag.tagStr + 'of' !== tag) {\n return buffer.error('Failed to match tag: \"' + tag + '\"');\n }\n\n if (decodedTag.primitive || len !== null)\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n\n // Indefinite length... find END tag\n const state = buffer.save();\n const res = this._skipUntilEnd(\n buffer,\n 'Failed to skip indefinite length body: \"' + this.tag + '\"');\n if (buffer.isError(res))\n return res;\n\n len = buffer.offset - state.offset;\n buffer.restore(state);\n return buffer.skip(len, 'Failed to match body of: \"' + tag + '\"');\n};\n\nDERNode.prototype._skipUntilEnd = function skipUntilEnd(buffer, fail) {\n for (;;) {\n const tag = derDecodeTag(buffer, fail);\n if (buffer.isError(tag))\n return tag;\n const len = derDecodeLen(buffer, tag.primitive, fail);\n if (buffer.isError(len))\n return len;\n\n let res;\n if (tag.primitive || len !== null)\n res = buffer.skip(len);\n else\n res = this._skipUntilEnd(buffer, fail);\n\n // Failure\n if (buffer.isError(res))\n return res;\n\n if (tag.tagStr === 'end')\n break;\n }\n};\n\nDERNode.prototype._decodeList = function decodeList(buffer, tag, decoder,\n options) {\n const result = [];\n while (!buffer.isEmpty()) {\n const possibleEnd = this._peekTag(buffer, 'end');\n if (buffer.isError(possibleEnd))\n return possibleEnd;\n\n const res = decoder.decode(buffer, 'der', options);\n if (buffer.isError(res) && possibleEnd)\n break;\n result.push(res);\n }\n return result;\n};\n\nDERNode.prototype._decodeStr = function decodeStr(buffer, tag) {\n if (tag === 'bitstr') {\n const unused = buffer.readUInt8();\n if (buffer.isError(unused))\n return unused;\n return { unused: unused, data: buffer.raw() };\n } else if (tag === 'bmpstr') {\n const raw = buffer.raw();\n if (raw.length % 2 === 1)\n return buffer.error('Decoding of string type: bmpstr length mismatch');\n\n let str = '';\n for (let i = 0; i < raw.length / 2; i++) {\n str += String.fromCharCode(raw.readUInt16BE(i * 2));\n }\n return str;\n } else if (tag === 'numstr') {\n const numstr = buffer.raw().toString('ascii');\n if (!this._isNumstr(numstr)) {\n return buffer.error('Decoding of string type: ' +\n 'numstr unsupported characters');\n }\n return numstr;\n } else if (tag === 'octstr') {\n return buffer.raw();\n } else if (tag === 'objDesc') {\n return buffer.raw();\n } else if (tag === 'printstr') {\n const printstr = buffer.raw().toString('ascii');\n if (!this._isPrintstr(printstr)) {\n return buffer.error('Decoding of string type: ' +\n 'printstr unsupported characters');\n }\n return printstr;\n } else if (/str$/.test(tag)) {\n return buffer.raw().toString();\n } else {\n return buffer.error('Decoding of string type: ' + tag + ' unsupported');\n }\n};\n\nDERNode.prototype._decodeObjid = function decodeObjid(buffer, values, relative) {\n let result;\n const identifiers = [];\n let ident = 0;\n let subident = 0;\n while (!buffer.isEmpty()) {\n subident = buffer.readUInt8();\n ident <<= 7;\n ident |= subident & 0x7f;\n if ((subident & 0x80) === 0) {\n identifiers.push(ident);\n ident = 0;\n }\n }\n if (subident & 0x80)\n identifiers.push(ident);\n\n const first = (identifiers[0] / 40) | 0;\n const second = identifiers[0] % 40;\n\n if (relative)\n result = identifiers;\n else\n result = [first, second].concat(identifiers.slice(1));\n\n if (values) {\n let tmp = values[result.join(' ')];\n if (tmp === undefined)\n tmp = values[result.join('.')];\n if (tmp !== undefined)\n result = tmp;\n }\n\n return result;\n};\n\nDERNode.prototype._decodeTime = function decodeTime(buffer, tag) {\n const str = buffer.raw().toString();\n\n let year;\n let mon;\n let day;\n let hour;\n let min;\n let sec;\n if (tag === 'gentime') {\n year = str.slice(0, 4) | 0;\n mon = str.slice(4, 6) | 0;\n day = str.slice(6, 8) | 0;\n hour = str.slice(8, 10) | 0;\n min = str.slice(10, 12) | 0;\n sec = str.slice(12, 14) | 0;\n } else if (tag === 'utctime') {\n year = str.slice(0, 2) | 0;\n mon = str.slice(2, 4) | 0;\n day = str.slice(4, 6) | 0;\n hour = str.slice(6, 8) | 0;\n min = str.slice(8, 10) | 0;\n sec = str.slice(10, 12) | 0;\n if (year < 70)\n year = 2000 + year;\n else\n year = 1900 + year;\n } else {\n return buffer.error('Decoding ' + tag + ' time is not supported yet');\n }\n\n return Date.UTC(year, mon - 1, day, hour, min, sec, 0);\n};\n\nDERNode.prototype._decodeNull = function decodeNull() {\n return null;\n};\n\nDERNode.prototype._decodeBool = function decodeBool(buffer) {\n const res = buffer.readUInt8();\n if (buffer.isError(res))\n return res;\n else\n return res !== 0;\n};\n\nDERNode.prototype._decodeInt = function decodeInt(buffer, values) {\n // Bigint, return as it is (assume big endian)\n const raw = buffer.raw();\n let res = new bignum(raw);\n\n if (values)\n res = values[res.toString(10)] || res;\n\n return res;\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getDecoder('der').tree;\n};\n\n// Utility methods\n\nfunction derDecodeTag(buf, fail) {\n let tag = buf.readUInt8(fail);\n if (buf.isError(tag))\n return tag;\n\n const cls = der.tagClass[tag >> 6];\n const primitive = (tag & 0x20) === 0;\n\n // Multi-octet tag - load\n if ((tag & 0x1f) === 0x1f) {\n let oct = tag;\n tag = 0;\n while ((oct & 0x80) === 0x80) {\n oct = buf.readUInt8(fail);\n if (buf.isError(oct))\n return oct;\n\n tag <<= 7;\n tag |= oct & 0x7f;\n }\n } else {\n tag &= 0x1f;\n }\n const tagStr = der.tag[tag];\n\n return {\n cls: cls,\n primitive: primitive,\n tag: tag,\n tagStr: tagStr\n };\n}\n\nfunction derDecodeLen(buf, primitive, fail) {\n let len = buf.readUInt8(fail);\n if (buf.isError(len))\n return len;\n\n // Indefinite form\n if (!primitive && len === 0x80)\n return null;\n\n // Definite form\n if ((len & 0x80) === 0) {\n // Short form\n return len;\n }\n\n // Long form\n const num = len & 0x7f;\n if (num > 4)\n return buf.error('length octect is too long');\n\n len = 0;\n for (let i = 0; i < num; i++) {\n len <<= 8;\n const j = buf.readUInt8(fail);\n if (buf.isError(j))\n return j;\n len |= j;\n }\n\n return len;\n}\n","'use strict';\n\nconst decoders = exports;\n\ndecoders.der = require('./der');\ndecoders.pem = require('./pem');\n","'use strict';\n\nconst inherits = require('inherits');\nconst Buffer = require('safer-buffer').Buffer;\n\nconst DERDecoder = require('./der');\n\nfunction PEMDecoder(entity) {\n DERDecoder.call(this, entity);\n this.enc = 'pem';\n}\ninherits(PEMDecoder, DERDecoder);\nmodule.exports = PEMDecoder;\n\nPEMDecoder.prototype.decode = function decode(data, options) {\n const lines = data.toString().split(/[\\r\\n]+/g);\n\n const label = options.label.toUpperCase();\n\n const re = /^-----(BEGIN|END) ([^-]+)-----$/;\n let start = -1;\n let end = -1;\n for (let i = 0; i < lines.length; i++) {\n const match = lines[i].match(re);\n if (match === null)\n continue;\n\n if (match[2] !== label)\n continue;\n\n if (start === -1) {\n if (match[1] !== 'BEGIN')\n break;\n start = i;\n } else {\n if (match[1] !== 'END')\n break;\n end = i;\n break;\n }\n }\n if (start === -1 || end === -1)\n throw new Error('PEM section not found for: ' + label);\n\n const base64 = lines.slice(start + 1, end).join('');\n // Remove excessive symbols\n base64.replace(/[^a-z0-9+/=]+/gi, '');\n\n const input = Buffer.from(base64, 'base64');\n return DERDecoder.prototype.decode.call(this, input, options);\n};\n","'use strict';\n\nconst inherits = require('inherits');\nconst Buffer = require('safer-buffer').Buffer;\nconst Node = require('../base/node');\n\n// Import DER constants\nconst der = require('../constants/der');\n\nfunction DEREncoder(entity) {\n this.enc = 'der';\n this.name = entity.name;\n this.entity = entity;\n\n // Construct base tree\n this.tree = new DERNode();\n this.tree._init(entity.body);\n}\nmodule.exports = DEREncoder;\n\nDEREncoder.prototype.encode = function encode(data, reporter) {\n return this.tree._encode(data, reporter).join();\n};\n\n// Tree methods\n\nfunction DERNode(parent) {\n Node.call(this, 'der', parent);\n}\ninherits(DERNode, Node);\n\nDERNode.prototype._encodeComposite = function encodeComposite(tag,\n primitive,\n cls,\n content) {\n const encodedTag = encodeTag(tag, primitive, cls, this.reporter);\n\n // Short form\n if (content.length < 0x80) {\n const header = Buffer.alloc(2);\n header[0] = encodedTag;\n header[1] = content.length;\n return this._createEncoderBuffer([ header, content ]);\n }\n\n // Long form\n // Count octets required to store length\n let lenOctets = 1;\n for (let i = content.length; i >= 0x100; i >>= 8)\n lenOctets++;\n\n const header = Buffer.alloc(1 + 1 + lenOctets);\n header[0] = encodedTag;\n header[1] = 0x80 | lenOctets;\n\n for (let i = 1 + lenOctets, j = content.length; j > 0; i--, j >>= 8)\n header[i] = j & 0xff;\n\n return this._createEncoderBuffer([ header, content ]);\n};\n\nDERNode.prototype._encodeStr = function encodeStr(str, tag) {\n if (tag === 'bitstr') {\n return this._createEncoderBuffer([ str.unused | 0, str.data ]);\n } else if (tag === 'bmpstr') {\n const buf = Buffer.alloc(str.length * 2);\n for (let i = 0; i < str.length; i++) {\n buf.writeUInt16BE(str.charCodeAt(i), i * 2);\n }\n return this._createEncoderBuffer(buf);\n } else if (tag === 'numstr') {\n if (!this._isNumstr(str)) {\n return this.reporter.error('Encoding of string type: numstr supports ' +\n 'only digits and space');\n }\n return this._createEncoderBuffer(str);\n } else if (tag === 'printstr') {\n if (!this._isPrintstr(str)) {\n return this.reporter.error('Encoding of string type: printstr supports ' +\n 'only latin upper and lower case letters, ' +\n 'digits, space, apostrophe, left and rigth ' +\n 'parenthesis, plus sign, comma, hyphen, ' +\n 'dot, slash, colon, equal sign, ' +\n 'question mark');\n }\n return this._createEncoderBuffer(str);\n } else if (/str$/.test(tag)) {\n return this._createEncoderBuffer(str);\n } else if (tag === 'objDesc') {\n return this._createEncoderBuffer(str);\n } else {\n return this.reporter.error('Encoding of string type: ' + tag +\n ' unsupported');\n }\n};\n\nDERNode.prototype._encodeObjid = function encodeObjid(id, values, relative) {\n if (typeof id === 'string') {\n if (!values)\n return this.reporter.error('string objid given, but no values map found');\n if (!values.hasOwnProperty(id))\n return this.reporter.error('objid not found in values map');\n id = values[id].split(/[\\s.]+/g);\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n } else if (Array.isArray(id)) {\n id = id.slice();\n for (let i = 0; i < id.length; i++)\n id[i] |= 0;\n }\n\n if (!Array.isArray(id)) {\n return this.reporter.error('objid() should be either array or string, ' +\n 'got: ' + JSON.stringify(id));\n }\n\n if (!relative) {\n if (id[1] >= 40)\n return this.reporter.error('Second objid identifier OOB');\n id.splice(0, 2, id[0] * 40 + id[1]);\n }\n\n // Count number of octets\n let size = 0;\n for (let i = 0; i < id.length; i++) {\n let ident = id[i];\n for (size++; ident >= 0x80; ident >>= 7)\n size++;\n }\n\n const objid = Buffer.alloc(size);\n let offset = objid.length - 1;\n for (let i = id.length - 1; i >= 0; i--) {\n let ident = id[i];\n objid[offset--] = ident & 0x7f;\n while ((ident >>= 7) > 0)\n objid[offset--] = 0x80 | (ident & 0x7f);\n }\n\n return this._createEncoderBuffer(objid);\n};\n\nfunction two(num) {\n if (num < 10)\n return '0' + num;\n else\n return num;\n}\n\nDERNode.prototype._encodeTime = function encodeTime(time, tag) {\n let str;\n const date = new Date(time);\n\n if (tag === 'gentime') {\n str = [\n two(date.getUTCFullYear()),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else if (tag === 'utctime') {\n str = [\n two(date.getUTCFullYear() % 100),\n two(date.getUTCMonth() + 1),\n two(date.getUTCDate()),\n two(date.getUTCHours()),\n two(date.getUTCMinutes()),\n two(date.getUTCSeconds()),\n 'Z'\n ].join('');\n } else {\n this.reporter.error('Encoding ' + tag + ' time is not supported yet');\n }\n\n return this._encodeStr(str, 'octstr');\n};\n\nDERNode.prototype._encodeNull = function encodeNull() {\n return this._createEncoderBuffer('');\n};\n\nDERNode.prototype._encodeInt = function encodeInt(num, values) {\n if (typeof num === 'string') {\n if (!values)\n return this.reporter.error('String int or enum given, but no values map');\n if (!values.hasOwnProperty(num)) {\n return this.reporter.error('Values map doesn\\'t contain: ' +\n JSON.stringify(num));\n }\n num = values[num];\n }\n\n // Bignum, assume big endian\n if (typeof num !== 'number' && !Buffer.isBuffer(num)) {\n const numArray = num.toArray();\n if (!num.sign && numArray[0] & 0x80) {\n numArray.unshift(0);\n }\n num = Buffer.from(numArray);\n }\n\n if (Buffer.isBuffer(num)) {\n let size = num.length;\n if (num.length === 0)\n size++;\n\n const out = Buffer.alloc(size);\n num.copy(out);\n if (num.length === 0)\n out[0] = 0;\n return this._createEncoderBuffer(out);\n }\n\n if (num < 0x80)\n return this._createEncoderBuffer(num);\n\n if (num < 0x100)\n return this._createEncoderBuffer([0, num]);\n\n let size = 1;\n for (let i = num; i >= 0x100; i >>= 8)\n size++;\n\n const out = new Array(size);\n for (let i = out.length - 1; i >= 0; i--) {\n out[i] = num & 0xff;\n num >>= 8;\n }\n if(out[0] & 0x80) {\n out.unshift(0);\n }\n\n return this._createEncoderBuffer(Buffer.from(out));\n};\n\nDERNode.prototype._encodeBool = function encodeBool(value) {\n return this._createEncoderBuffer(value ? 0xff : 0);\n};\n\nDERNode.prototype._use = function use(entity, obj) {\n if (typeof entity === 'function')\n entity = entity(obj);\n return entity._getEncoder('der').tree;\n};\n\nDERNode.prototype._skipDefault = function skipDefault(dataBuffer, reporter, parent) {\n const state = this._baseState;\n let i;\n if (state['default'] === null)\n return false;\n\n const data = dataBuffer.join();\n if (state.defaultBuffer === undefined)\n state.defaultBuffer = this._encodeValue(state['default'], reporter, parent).join();\n\n if (data.length !== state.defaultBuffer.length)\n return false;\n\n for (i=0; i < data.length; i++)\n if (data[i] !== state.defaultBuffer[i])\n return false;\n\n return true;\n};\n\n// Utility methods\n\nfunction encodeTag(tag, primitive, cls, reporter) {\n let res;\n\n if (tag === 'seqof')\n tag = 'seq';\n else if (tag === 'setof')\n tag = 'set';\n\n if (der.tagByName.hasOwnProperty(tag))\n res = der.tagByName[tag];\n else if (typeof tag === 'number' && (tag | 0) === tag)\n res = tag;\n else\n return reporter.error('Unknown tag: ' + tag);\n\n if (res >= 0x1f)\n return reporter.error('Multi-octet tag encoding unsupported');\n\n if (!primitive)\n res |= 0x20;\n\n res |= (der.tagClassByName[cls || 'universal'] << 6);\n\n return res;\n}\n","'use strict';\n\nconst encoders = exports;\n\nencoders.der = require('./der');\nencoders.pem = require('./pem');\n","'use strict';\n\nconst inherits = require('inherits');\n\nconst DEREncoder = require('./der');\n\nfunction PEMEncoder(entity) {\n DEREncoder.call(this, entity);\n this.enc = 'pem';\n}\ninherits(PEMEncoder, DEREncoder);\nmodule.exports = PEMEncoder;\n\nPEMEncoder.prototype.encode = function encode(data, options) {\n const buf = DEREncoder.prototype.encode.call(this, data);\n\n const p = buf.toString('base64');\n const out = [ '-----BEGIN ' + options.label + '-----' ];\n for (let i = 0; i < p.length; i += 64)\n out.push(p.slice(i, i + 64));\n out.push('-----END ' + options.label + '-----');\n return out.join('\\n');\n};\n","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (file, acceptedFiles) {\n if (file && acceptedFiles) {\n var acceptedFilesArray = Array.isArray(acceptedFiles) ? acceptedFiles : acceptedFiles.split(',');\n var fileName = file.name || '';\n var mimeType = (file.type || '').toLowerCase();\n var baseMimeType = mimeType.replace(/\\/.*$/, '');\n return acceptedFilesArray.some(function (type) {\n var validType = type.trim().toLowerCase();\n\n if (validType.charAt(0) === '.') {\n return fileName.toLowerCase().endsWith(validType);\n } else if (validType.endsWith('/*')) {\n // This is something like a image/* mime type\n return baseMimeType === validType.replace(/\\/.*$/, '');\n }\n\n return mimeType === validType;\n });\n }\n\n return true;\n};","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar core_1 = require(\"@apollo/client/core\");\nvar printer_1 = require(\"graphql/language/printer\");\nvar signer_1 = require(\"./signer\");\nvar Url = require(\"url\");\nvar platform_1 = require(\"./platform\");\nvar packageInfo = require(\"../package.json\");\nvar SERVICE = 'appsync';\nexports.USER_AGENT_HEADER = 'x-amz-user-agent';\nexports.USER_AGENT = \"aws-amplify/\" + packageInfo.version + (platform_1.userAgent && ' ') + platform_1.userAgent;\nvar AUTH_TYPE;\n(function (AUTH_TYPE) {\n AUTH_TYPE[\"NONE\"] = \"NONE\";\n AUTH_TYPE[\"API_KEY\"] = \"API_KEY\";\n AUTH_TYPE[\"AWS_IAM\"] = \"AWS_IAM\";\n AUTH_TYPE[\"AMAZON_COGNITO_USER_POOLS\"] = \"AMAZON_COGNITO_USER_POOLS\";\n AUTH_TYPE[\"OPENID_CONNECT\"] = \"OPENID_CONNECT\";\n AUTH_TYPE[\"AWS_LAMBDA\"] = \"AWS_LAMBDA\";\n})(AUTH_TYPE = exports.AUTH_TYPE || (exports.AUTH_TYPE = {}));\nvar AuthLink = /** @class */ (function (_super) {\n __extends(AuthLink, _super);\n /**\n *\n * @param {*} options\n */\n function AuthLink(options) {\n var _this = _super.call(this) || this;\n _this.link = exports.authLink(options);\n return _this;\n }\n AuthLink.prototype.request = function (operation, forward) {\n return this.link.request(operation, forward);\n };\n return AuthLink;\n}(core_1.ApolloLink));\nexports.AuthLink = AuthLink;\nvar headerBasedAuth = function (_a, operation, forward) {\n var _b = _a === void 0 ? { header: '', value: '' } : _a, header = _b.header, value = _b.value;\n return __awaiter(void 0, void 0, void 0, function () {\n var origContext, headers, headerValue, _c;\n var _d, _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n origContext = operation.getContext();\n headers = __assign(__assign({}, origContext.headers), (_d = {}, _d[exports.USER_AGENT_HEADER] = exports.USER_AGENT, _d));\n if (!(header && value)) return [3 /*break*/, 5];\n if (!(typeof value === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, value.call(undefined)];\n case 1:\n _c = _f.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, value];\n case 3:\n _c = _f.sent();\n _f.label = 4;\n case 4:\n headerValue = _c;\n headers = __assign((_e = {}, _e[header] = headerValue, _e), headers);\n _f.label = 5;\n case 5:\n operation.setContext(__assign(__assign({}, origContext), { headers: headers }));\n return [2 /*return*/, forward(operation)];\n }\n });\n });\n};\nvar iamBasedAuth = function (_a, operation, forward) {\n var credentials = _a.credentials, region = _a.region, url = _a.url;\n return __awaiter(void 0, void 0, void 0, function () {\n var service, origContext, creds, _b, accessKeyId, secretAccessKey, sessionToken, _c, host, path, formatted, headers;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n service = SERVICE;\n origContext = operation.getContext();\n creds = typeof credentials === 'function' ? credentials.call() : (credentials || {});\n if (!(creds && typeof creds.getPromise === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, creds.getPromise()];\n case 1:\n _e.sent();\n _e.label = 2;\n case 2: return [4 /*yield*/, creds];\n case 3:\n _b = _e.sent(), accessKeyId = _b.accessKeyId, secretAccessKey = _b.secretAccessKey, sessionToken = _b.sessionToken;\n _c = Url.parse(url), host = _c.host, path = _c.path;\n formatted = __assign(__assign({}, formatAsRequest(operation, {})), { service: service, region: region, url: url, host: host, path: path });\n headers = signer_1.Signer.sign(formatted, { access_key: accessKeyId, secret_key: secretAccessKey, session_token: sessionToken }).headers;\n operation.setContext(__assign(__assign({}, origContext), { headers: __assign(__assign(__assign({}, origContext.headers), headers), (_d = {}, _d[exports.USER_AGENT_HEADER] = exports.USER_AGENT, _d)) }));\n return [2 /*return*/, forward(operation)];\n }\n });\n });\n};\nexports.authLink = function (_a) {\n var url = _a.url, region = _a.region, _b = _a.auth, type = (_b === void 0 ? {} : _b).type, auth = _a.auth;\n return new core_1.ApolloLink(function (operation, forward) {\n return new core_1.Observable(function (observer) {\n var handle;\n var promise;\n switch (type) {\n case AUTH_TYPE.NONE:\n promise = headerBasedAuth(undefined, operation, forward);\n break;\n case AUTH_TYPE.AWS_IAM:\n var _a = auth.credentials, credentials = _a === void 0 ? {} : _a;\n promise = iamBasedAuth({\n credentials: credentials,\n region: region,\n url: url,\n }, operation, forward);\n break;\n case AUTH_TYPE.API_KEY:\n var _b = auth.apiKey, apiKey = _b === void 0 ? '' : _b;\n promise = headerBasedAuth({ header: 'X-Api-Key', value: apiKey }, operation, forward);\n break;\n case AUTH_TYPE.AMAZON_COGNITO_USER_POOLS:\n case AUTH_TYPE.OPENID_CONNECT:\n var _c = auth.jwtToken, jwtToken = _c === void 0 ? '' : _c;\n promise = headerBasedAuth({ header: 'Authorization', value: jwtToken }, operation, forward);\n break;\n case AUTH_TYPE.AWS_LAMBDA:\n var _d = auth.token, token = _d === void 0 ? '' : _d;\n promise = headerBasedAuth({ header: 'Authorization', value: token }, operation, forward);\n break;\n default:\n var error = new Error(\"Invalid AUTH_TYPE: \" + auth.type);\n throw error;\n }\n promise.then(function (observable) {\n handle = observable.subscribe({\n next: observer.next.bind(observer),\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer),\n });\n });\n return function () {\n if (handle)\n handle.unsubscribe();\n };\n });\n });\n};\nvar formatAsRequest = function (_a, options) {\n var operationName = _a.operationName, variables = _a.variables, query = _a.query;\n var body = {\n operationName: operationName,\n variables: removeTemporaryVariables(variables),\n query: printer_1.print(query)\n };\n return __assign(__assign({ body: JSON.stringify(body), method: 'POST' }, options), { headers: __assign({ accept: '*/*', 'content-type': 'application/json; charset=UTF-8' }, options.headers) });\n};\n/**\n * Removes all temporary variables (starting with '@@') so that the signature matches the final request.\n */\nvar removeTemporaryVariables = function (variables) {\n return Object.keys(variables)\n .filter(function (key) { return !key.startsWith(\"@@\"); })\n .reduce(function (acc, key) {\n acc[key] = variables[key];\n return acc;\n }, {});\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar auth_link_1 = require(\"./auth-link\");\nexports.AuthLink = auth_link_1.AuthLink;\nexports.AUTH_TYPE = auth_link_1.AUTH_TYPE;\nexports.USER_AGENT_HEADER = auth_link_1.USER_AGENT_HEADER;\nexports.USER_AGENT = auth_link_1.USER_AGENT;\nexports.createAuthLink = function (_a) {\n var url = _a.url, region = _a.region, auth = _a.auth;\n return new auth_link_1.AuthLink({ url: url, region: region, auth: auth });\n};\nvar signer_1 = require(\"./signer\");\nexports.Signer = signer_1.Signer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar userAgent = '';\nexports.userAgent = userAgent;\n","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n__export(require(\"./signer\"));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*\nCopyright 2017 - 2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with the License. A copy of the License is located at\n http://aws.amazon.com/apache2.0/\nor in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and limitations under the License.\n*/\nglobal.Buffer = global.Buffer || require('buffer').Buffer; // Required for aws sigv4 signing\nvar url = require('url');\nvar Sha256 = require('@aws-crypto/sha256-js').Sha256;\nvar toHex = require(\"@aws-sdk/util-hex-encoding\").toHex;\nvar encrypt = function (key, src, encoding) {\n if (encoding === void 0) { encoding = ''; }\n var hash = new Sha256(key);\n hash.update(src);\n var result = hash.digestSync();\n if (encoding === 'hex') {\n return toHex(result);\n }\n return result;\n};\nvar hash = function (src) {\n var arg = src || '';\n var hash = new Sha256();\n hash.update(arg);\n return toHex(hash.digestSync());\n};\n/**\n* @private\n* Create canonical headers\n*\n
\nCanonicalHeaders =\n    CanonicalHeadersEntry0 + CanonicalHeadersEntry1 + ... + CanonicalHeadersEntryN\nCanonicalHeadersEntry =\n    Lowercase(HeaderName) + ':' + Trimall(HeaderValue) + '\\n'\n
\n*/\nvar canonical_headers = function (headers) {\n if (!headers || Object.keys(headers).length === 0) {\n return '';\n }\n return Object.keys(headers)\n .map(function (key) {\n return {\n key: key.toLowerCase(),\n value: headers[key] ? headers[key].trim().replace(/\\s+/g, ' ') : ''\n };\n })\n .sort(function (a, b) {\n return a.key < b.key ? -1 : 1;\n })\n .map(function (item) {\n return item.key + ':' + item.value;\n })\n .join('\\n') + '\\n';\n};\n/**\n* List of header keys included in the canonical headers.\n* @access private\n*/\nvar signed_headers = function (headers) {\n return Object.keys(headers)\n .map(function (key) { return key.toLowerCase(); })\n .sort()\n .join(';');\n};\n/**\n* @private\n* Create canonical request\n* Refer to {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html|Create a Canonical Request}\n*\n
\nCanonicalRequest =\n    HTTPRequestMethod + '\\n' +\n    CanonicalURI + '\\n' +\n    CanonicalQueryString + '\\n' +\n    CanonicalHeaders + '\\n' +\n    SignedHeaders + '\\n' +\n    HexEncode(Hash(RequestPayload))\n
\n*/\nvar canonical_request = function (request) {\n var url_info = url.parse(request.url);\n return [\n request.method || '/',\n url_info.path,\n url_info.query,\n canonical_headers(request.headers),\n signed_headers(request.headers),\n hash(request.body)\n ].join('\\n');\n};\nvar parse_service_info = function (request) {\n var url_info = url.parse(request.url), host = url_info.host;\n var matched = host.match(/([^.]+)\\.(?:([^.]*)\\.)?amazonaws\\.com$/), parsed = (matched || []).slice(1, 3);\n if (parsed[1] === 'es') { // Elastic Search\n parsed = parsed.reverse();\n }\n return {\n service: request.service || parsed[0],\n region: request.region || parsed[1]\n };\n};\nvar credential_scope = function (d_str, region, service) {\n return [\n d_str,\n region,\n service,\n 'aws4_request',\n ].join('/');\n};\n/**\n* @private\n* Create a string to sign\n* Refer to {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html|Create String to Sign}\n*\n
\nStringToSign =\n    Algorithm + \\n +\n    RequestDateTime + \\n +\n    CredentialScope + \\n +\n    HashedCanonicalRequest\n
\n*/\nvar string_to_sign = function (algorithm, canonical_request, dt_str, scope) {\n return [\n algorithm,\n dt_str,\n scope,\n hash(canonical_request)\n ].join('\\n');\n};\n/**\n* @private\n* Create signing key\n* Refer to {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html|Calculate Signature}\n*\n
\nkSecret = your secret access key\nkDate = HMAC(\"AWS4\" + kSecret, Date)\nkRegion = HMAC(kDate, Region)\nkService = HMAC(kRegion, Service)\nkSigning = HMAC(kService, \"aws4_request\")\n
\n*/\nvar get_signing_key = function (secret_key, d_str, service_info) {\n if (secret_key === void 0) { secret_key = ''; }\n var k = ('AWS4' + secret_key), k_date = encrypt(k, d_str), k_region = encrypt(k_date, service_info.region), k_service = encrypt(k_region, service_info.service), k_signing = encrypt(k_service, 'aws4_request');\n return k_signing;\n};\nvar get_signature = function (signing_key, str_to_sign) {\n return encrypt(signing_key, str_to_sign, 'hex');\n};\n/**\n* @private\n* Create authorization header\n* Refer to {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html|Add the Signing Information}\n*/\nvar get_authorization_header = function (algorithm, access_key, scope, signed_headers, signature) {\n if (access_key === void 0) { access_key = ''; }\n return [\n algorithm + ' ' + 'Credential=' + access_key + '/' + scope,\n 'SignedHeaders=' + signed_headers,\n 'Signature=' + signature\n ].join(', ');\n};\n/**\n* Sign a HTTP request, add 'Authorization' header to request param\n* @method sign\n* @memberof Signer\n* @static\n*\n* @param {object} request - HTTP request object\n
\nrequest: {\n    method: GET | POST | PUT ...\n    url: ...,\n    headers: {\n        header1: ...\n    },\n    body: data\n}\n
\n* @param {object} access_info - AWS access credential info\n
\naccess_info: {\n    access_key: ...,\n    secret_key: ...,\n    session_token: ...\n}\n
\n* @param {object} [service_info] - AWS service type and region, optional,\n* if not provided then parse out from url\n
\nservice_info: {\n    service: ...,\n    region: ...\n}\n
\n*\n* @returns {object} Signed HTTP request\n*/\nvar sign = function (request, access_info, service_info) {\n if (service_info === void 0) { service_info = null; }\n request.headers = request.headers || {};\n // datetime string and date string\n var dt = new Date(), dt_str = dt.toISOString().replace(/[:-]|\\.\\d{3}/g, ''), d_str = dt_str.substr(0, 8), algorithm = 'AWS4-HMAC-SHA256';\n var url_info = url.parse(request.url);\n request.headers['host'] = url_info.host;\n request.headers['x-amz-date'] = dt_str;\n if (access_info.session_token) {\n request.headers['X-Amz-Security-Token'] = access_info.session_token;\n }\n // Task 1: Create a Canonical Request\n var request_str = canonical_request(request);\n // Task 2: Create a String to Sign\n service_info = service_info || parse_service_info(request);\n var scope = credential_scope(d_str, service_info.region, service_info.service);\n var str_to_sign = string_to_sign(algorithm, request_str, dt_str, scope);\n // Task 3: Calculate the Signature\n var signing_key = get_signing_key(access_info.secret_key, d_str, service_info), signature = get_signature(signing_key, str_to_sign);\n // Task 4: Adding the Signing information to the Request\n var authorization_header = get_authorization_header(algorithm, access_info.access_key, scope, signed_headers(request.headers), signature);\n request.headers['Authorization'] = authorization_header;\n return request;\n};\n/**\n* AWS request signer.\n* Refer to {@link http://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html|Signature Version 4}\n*\n* @class Signer\n*/\nvar Signer = /** @class */ (function () {\n function Signer() {\n }\n Signer.sign = sign;\n return Signer;\n}());\nexports.Signer = Signer;\nexports.default = Signer;\n","import {\n BLOCK_SIZE,\n DIGEST_LENGTH,\n INIT,\n KEY,\n MAX_HASHABLE_LENGTH\n} from \"./constants\";\n\n/**\n * @internal\n */\nexport class RawSha256 {\n private state: Int32Array = Int32Array.from(INIT);\n private temp: Int32Array = new Int32Array(64);\n private buffer: Uint8Array = new Uint8Array(64);\n private bufferLength: number = 0;\n private bytesHashed: number = 0;\n\n /**\n * @internal\n */\n finished: boolean = false;\n\n update(data: Uint8Array): void {\n if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n\n let position = 0;\n let { byteLength } = data;\n this.bytesHashed += byteLength;\n\n if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) {\n throw new Error(\"Cannot hash more than 2^53 - 1 bits\");\n }\n\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n }\n\n digest(): Uint8Array {\n if (!this.finished) {\n const bitsHashed = this.bytesHashed * 8;\n const bufferView = new DataView(\n this.buffer.buffer,\n this.buffer.byteOffset,\n this.buffer.byteLength\n );\n\n const undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (let i = this.bufferLength; i < BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n\n for (let i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(\n BLOCK_SIZE - 8,\n Math.floor(bitsHashed / 0x100000000),\n true\n );\n bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed);\n\n this.hashBuffer();\n\n this.finished = true;\n }\n\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n const out = new Uint8Array(DIGEST_LENGTH);\n for (let i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n\n return out;\n }\n\n private hashBuffer(): void {\n const { buffer, state } = this;\n\n let state0 = state[0],\n state1 = state[1],\n state2 = state[2],\n state3 = state[3],\n state4 = state[4],\n state5 = state[5],\n state6 = state[6],\n state7 = state[7];\n\n for (let i = 0; i < BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] =\n ((buffer[i * 4] & 0xff) << 24) |\n ((buffer[i * 4 + 1] & 0xff) << 16) |\n ((buffer[i * 4 + 2] & 0xff) << 8) |\n (buffer[i * 4 + 3] & 0xff);\n } else {\n let u = this.temp[i - 2];\n const t1 =\n ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\n\n u = this.temp[i - 15];\n const t2 =\n ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\n\n this.temp[i] =\n ((t1 + this.temp[i - 7]) | 0) + ((t2 + this.temp[i - 16]) | 0);\n }\n\n const t1 =\n ((((((state4 >>> 6) | (state4 << 26)) ^\n ((state4 >>> 11) | (state4 << 21)) ^\n ((state4 >>> 25) | (state4 << 7))) +\n ((state4 & state5) ^ (~state4 & state6))) |\n 0) +\n ((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) |\n 0;\n\n const t2 =\n ((((state0 >>> 2) | (state0 << 30)) ^\n ((state0 >>> 13) | (state0 << 19)) ^\n ((state0 >>> 22) | (state0 << 10))) +\n ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\n 0;\n\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n }\n}\n","/**\n * @internal\n */\nexport const BLOCK_SIZE: number = 64;\n\n/**\n * @internal\n */\nexport const DIGEST_LENGTH: number = 32;\n\n/**\n * @internal\n */\nexport const KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n\n/**\n * @internal\n */\nexport const INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n];\n\n/**\n * @internal\n */\nexport const MAX_HASHABLE_LENGTH = 2 ** 53 - 1;\n","export * from \"./jsSha256\";\n","import { BLOCK_SIZE } from \"./constants\";\nimport { RawSha256 } from \"./RawSha256\";\nimport { Hash, SourceData } from \"@aws-sdk/types\";\nimport { isEmptyData, convertToBuffer } from \"@aws-crypto/util\";\n\nexport class Sha256 implements Hash {\n private readonly hash = new RawSha256();\n private readonly outer?: RawSha256;\n private error: any;\n\n constructor(secret?: SourceData) {\n if (secret) {\n this.outer = new RawSha256();\n const inner = bufferFromSecret(secret);\n const outer = new Uint8Array(BLOCK_SIZE);\n outer.set(inner);\n\n for (let i = 0; i < BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n\n this.hash.update(inner);\n this.outer.update(outer);\n\n // overwrite the copied key in memory\n for (let i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n }\n }\n\n update(toHash: SourceData): void {\n if (isEmptyData(toHash) || this.error) {\n return;\n }\n\n try {\n this.hash.update(convertToBuffer(toHash));\n } catch (e) {\n this.error = e;\n }\n }\n\n /* This synchronous method keeps compatibility\n * with the v2 aws-sdk.\n */\n digestSync(): Uint8Array {\n if (this.error) {\n throw this.error;\n }\n\n if (this.outer) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n\n return this.outer.digest();\n }\n\n return this.hash.digest();\n }\n\n /* The underlying digest method here is synchronous.\n * To keep the same interface with the other hash functions\n * the default is to expose this as an async method.\n * However, it can sometimes be useful to have a sync method.\n */\n async digest(): Promise {\n return this.digestSync();\n }\n}\n\nfunction bufferFromSecret(secret: SourceData): Uint8Array {\n let input = convertToBuffer(secret);\n\n if (input.byteLength > BLOCK_SIZE) {\n const bufferHash = new RawSha256();\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n\n const buffer = new Uint8Array(BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\nimport { fromUtf8 as fromUtf8Browser } from \"@aws-sdk/util-utf8-browser\";\n\n// Quick polyfill\nconst fromUtf8 =\n typeof Buffer !== \"undefined\" && Buffer.from\n ? (input: string) => Buffer.from(input, \"utf8\")\n : fromUtf8Browser;\n\nexport function convertToBuffer(data: SourceData): Uint8Array {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array) return data;\n\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(\n data.buffer,\n data.byteOffset,\n data.byteLength / Uint8Array.BYTES_PER_ELEMENT\n );\n }\n\n return new Uint8Array(data);\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport { convertToBuffer } from \"./convertToBuffer\";\nexport { isEmptyData } from \"./isEmptyData\";\nexport { numToUint8 } from \"./numToUint8\";\nexport {uint32ArrayFrom} from './uint32ArrayFrom';\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\n\nexport function isEmptyData(data: SourceData): boolean {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function numToUint8(num: number) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n// IE 11 does not support Array.from, so we do it manually\nexport function uint32ArrayFrom(a_lookUpTable: Array): Uint32Array {\n if (!Array.from) {\n const return_array = new Uint32Array(a_lookUpTable.length)\n let a_index = 0\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index]\n }\n return return_array\n }\n return Uint32Array.from(a_lookUpTable)\n}\n","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport const fromUtf8 = (input) => typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\nexport const toUtf8 = (input) => typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n","export const fromUtf8 = (input) => {\n const bytes = [];\n for (let i = 0, len = input.length; i < len; i++) {\n const value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 0b11000000, (value & 0b111111) | 0b10000000);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n const surrogatePair = 0x10000 + ((value & 0b1111111111) << 10) + (input.charCodeAt(++i) & 0b1111111111);\n bytes.push((surrogatePair >> 18) | 0b11110000, ((surrogatePair >> 12) & 0b111111) | 0b10000000, ((surrogatePair >> 6) & 0b111111) | 0b10000000, (surrogatePair & 0b111111) | 0b10000000);\n }\n else {\n bytes.push((value >> 12) | 0b11100000, ((value >> 6) & 0b111111) | 0b10000000, (value & 0b111111) | 0b10000000);\n }\n }\n return Uint8Array.from(bytes);\n};\nexport const toUtf8 = (input) => {\n let decoded = \"\";\n for (let i = 0, len = input.length; i < len; i++) {\n const byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (0b11000000 <= byte && byte < 0b11100000) {\n const nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 0b11111) << 6) | (nextByte & 0b111111));\n }\n else if (0b11110000 <= byte && byte < 0b101101101) {\n const surrogatePair = [byte, input[++i], input[++i], input[++i]];\n const encoded = \"%\" + surrogatePair.map((byteValue) => byteValue.toString(16)).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 0b1111) << 12) | ((input[++i] & 0b111111) << 6) | (input[++i] & 0b111111));\n }\n }\n return decoded;\n};\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","\"use strict\";\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __exportStar = (this && this.__exportStar) || function(m, exports) {\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar rehydrated_1 = require(\"./rehydrated\");\nObject.defineProperty(exports, \"Rehydrated\", { enumerable: true, get: function () { return rehydrated_1.default; } });\n__exportStar(require(\"./offline-helpers\"), exports);\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nexports.graphqlMutation = void 0;\nvar React = require(\"react\");\nvar PropTypes = require(\"prop-types\");\nvar apollo_utilities_1 = require(\"apollo-utilities\");\nvar react_apollo_1 = require(\"react-apollo\");\nvar aws_appsync_1 = require(\"aws-appsync\");\nexports.graphqlMutation = function (mutation, cacheUpdateQuery, typename, idField, operationType) { return withGraphQL(reactMutator(mutation, cacheUpdateQuery, typename, idField, operationType)); };\nvar withGraphQL = function (options) { return function (Component) {\n var document = options.document;\n var A = react_apollo_1.graphql(document, options)(Component);\n var B = function (props, context) {\n var client = context.client;\n return (React.createElement(A, __assign({}, props, { client: client })));\n };\n B.contextTypes = {\n client: PropTypes.object.isRequired\n };\n return B;\n}; };\nvar reactMutator = function (mutation, cacheUpdateQuery, typename, idField, operationType) { return ({\n document: mutation,\n props: function (props) {\n var _a;\n var client = props.ownProps.client;\n var mutationName = apollo_utilities_1.resultKeyNameFromField(mutation.definitions[0].selectionSet.selections[0]);\n return _a = {},\n _a[mutationName] = function (variables) { return props.mutate(aws_appsync_1.buildMutation(client, mutation, variables, cacheUpdateQuery, typename, idField, operationType)); },\n _a;\n },\n}); };\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar React = require(\"react\");\nvar PropTypes = require(\"prop-types\");\nvar aws_appsync_1 = require(\"aws-appsync\");\nvar Rehydrate = function (props) { return (React.createElement(\"div\", { className: \"awsappsync \" + (props.rehydrated ? 'awsappsync--rehydrated' : 'awsappsync--rehydrating') }, props.rehydrated ? props.children : React.createElement(\"span\", null, \"Loading...\"))); };\nvar Rehydrated = /** @class */ (function (_super) {\n __extends(Rehydrated, _super);\n function Rehydrated(props, context) {\n var _this = _super.call(this, props, context) || this;\n _this.state = {\n rehydrated: false\n };\n return _this;\n }\n Rehydrated.prototype.componentDidMount = function () {\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0: return [4 /*yield*/, this.context.client.hydrated()];\n case 1:\n _a.sent();\n this.setState({\n rehydrated: true\n });\n return [2 /*return*/];\n }\n });\n });\n };\n Rehydrated.prototype.render = function () {\n var _a = this.props, render = _a.render, children = _a.children, loading = _a.loading;\n var rehydrated = this.state.rehydrated;\n if (render)\n return render({ rehydrated: rehydrated });\n if (children) {\n if (loading)\n return rehydrated ? children : loading;\n return (React.createElement(Rehydrate, { rehydrated: rehydrated }, children));\n }\n };\n Rehydrated.contextTypes = {\n client: PropTypes.instanceOf(aws_appsync_1.default).isRequired,\n };\n Rehydrated.propTypes = {\n render: PropTypes.func,\n children: PropTypes.node,\n loading: PropTypes.node,\n };\n return Rehydrated;\n}(React.Component));\nexports.default = Rehydrated;\n","\"use strict\";\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar subscription_handshake_link_1 = require(\"./subscription-handshake-link\");\nexports.CONTROL_EVENTS_KEY = subscription_handshake_link_1.CONTROL_EVENTS_KEY;\nvar core_1 = require(\"@apollo/client/core\");\nvar http_1 = require(\"@apollo/client/link/http\");\nvar utilities_1 = require(\"@apollo/client/utilities\");\nvar non_terminating_link_1 = require(\"./non-terminating-link\");\nvar realtime_subscription_handshake_link_1 = require(\"./realtime-subscription-handshake-link\");\nfunction createSubscriptionHandshakeLink(infoOrUrl, theResultsFetcherLink) {\n var resultsFetcherLink, subscriptionLinks;\n if (typeof infoOrUrl === \"string\") {\n resultsFetcherLink =\n theResultsFetcherLink || http_1.createHttpLink({ uri: infoOrUrl });\n subscriptionLinks = core_1.ApolloLink.from([\n new non_terminating_link_1.NonTerminatingLink(\"controlMessages\", {\n link: new core_1.ApolloLink(function (operation, _forward) {\n return new core_1.Observable(function (observer) {\n var _a;\n var _b = operation, _c = _b.variables, _d = subscription_handshake_link_1.CONTROL_EVENTS_KEY, controlEvents = _c[_d], variables = __rest(_c, [typeof _d === \"symbol\" ? _d : _d + \"\"]);\n if (typeof controlEvents !== \"undefined\") {\n operation.variables = variables;\n }\n observer.next((_a = {}, _a[subscription_handshake_link_1.CONTROL_EVENTS_KEY] = controlEvents, _a));\n return function () { };\n });\n })\n }),\n new non_terminating_link_1.NonTerminatingLink(\"subsInfo\", { link: resultsFetcherLink }),\n new subscription_handshake_link_1.SubscriptionHandshakeLink(\"subsInfo\")\n ]);\n }\n else {\n var url = infoOrUrl.url;\n resultsFetcherLink = theResultsFetcherLink || http_1.createHttpLink({ uri: url });\n subscriptionLinks = new realtime_subscription_handshake_link_1.AppSyncRealTimeSubscriptionHandshakeLink(infoOrUrl);\n }\n return core_1.ApolloLink.split(function (operation) {\n var query = operation.query;\n var _a = utilities_1.getMainDefinition(query), kind = _a.kind, graphqlOperation = _a.operation;\n var isSubscription = kind === \"OperationDefinition\" && graphqlOperation === \"subscription\";\n return isSubscription;\n }, subscriptionLinks, resultsFetcherLink);\n}\nexports.createSubscriptionHandshakeLink = createSubscriptionHandshakeLink;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar core_1 = require(\"@apollo/client/core\");\nvar context_1 = require(\"@apollo/client/link/context\");\nvar NonTerminatingLink = /** @class */ (function (_super) {\n __extends(NonTerminatingLink, _super);\n function NonTerminatingLink(contextKey, _a) {\n var link = _a.link;\n var _this = _super.call(this) || this;\n _this.contextKey = contextKey;\n _this.link = link;\n return _this;\n }\n NonTerminatingLink.prototype.request = function (operation, forward) {\n var _this = this;\n return (context_1.setContext(function (_request, prevContext) { return __awaiter(_this, void 0, void 0, function () {\n var result;\n var _a;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, new Promise(function (resolve, reject) {\n _this.link.request(operation).subscribe({\n next: resolve,\n error: reject,\n });\n })];\n case 1:\n result = _b.sent();\n return [2 /*return*/, __assign(__assign({}, prevContext), (_a = {}, _a[this.contextKey] = result, _a))];\n }\n });\n }); })).request(operation, forward);\n };\n return NonTerminatingLink;\n}(core_1.ApolloLink));\nexports.NonTerminatingLink = NonTerminatingLink;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar core_1 = require(\"@apollo/client/core\");\nvar utils_1 = require(\"./utils\");\nvar aws_appsync_auth_link_1 = require(\"aws-appsync-auth-link\");\nvar graphql_1 = require(\"graphql\");\nvar url = require(\"url\");\nvar uuid_1 = require(\"uuid\");\nvar types_1 = require(\"./types\");\nvar retry_1 = require(\"./utils/retry\");\nvar logger = utils_1.rootLogger.extend(\"subscriptions\");\nexports.CONTROL_EVENTS_KEY = \"@@controlEvents\";\nvar NON_RETRYABLE_CODES = [400, 401, 403];\nvar SERVICE = \"appsync\";\nvar APPSYNC_REALTIME_HEADERS = {\n accept: 'application/json, text/javascript',\n 'content-encoding': 'amz-1.0',\n 'content-type': 'application/json; charset=UTF-8'\n};\n/**\n * Time in milliseconds to wait for GQL_CONNECTION_INIT message\n */\nvar CONNECTION_INIT_TIMEOUT = 15000;\n/**\n * Time in milliseconds to wait for GQL_START_ACK message\n */\nvar START_ACK_TIMEOUT = 15000;\n/**\n * Frequency in milliseconds in which the server sends GQL_CONNECTION_KEEP_ALIVE messages\n */\nvar SERVER_KEEP_ALIVE_TIMEOUT = 1 * 60 * 1000;\n/**\n * Default Time in milliseconds to wait for GQL_CONNECTION_KEEP_ALIVE message\n */\nvar DEFAULT_KEEP_ALIVE_TIMEOUT = 5 * 60 * 1000;\nvar standardDomainPattern = /^https:\\/\\/\\w{26}\\.appsync\\-api\\.\\w{2}(?:(?:\\-\\w{2,})+)\\-\\d\\.amazonaws.com\\/graphql$/i;\nvar customDomainPath = '/realtime';\nvar AppSyncRealTimeSubscriptionHandshakeLink = /** @class */ (function (_super) {\n __extends(AppSyncRealTimeSubscriptionHandshakeLink, _super);\n function AppSyncRealTimeSubscriptionHandshakeLink(_a) {\n var theUrl = _a.url, theRegion = _a.region, theAuth = _a.auth, keepAliveTimeoutMs = _a.keepAliveTimeoutMs;\n var _this = _super.call(this) || this;\n _this.socketStatus = types_1.SOCKET_STATUS.CLOSED;\n _this.keepAliveTimeout = undefined;\n _this.subscriptionObserverMap = new Map();\n _this.promiseArray = [];\n _this.url = theUrl;\n _this.region = theRegion;\n _this.auth = theAuth;\n _this.keepAliveTimeout = keepAliveTimeoutMs;\n if (_this.keepAliveTimeout < SERVER_KEEP_ALIVE_TIMEOUT) {\n var configName = 'keepAliveTimeoutMs';\n throw new Error(configName + \" must be greater than or equal to \" + SERVER_KEEP_ALIVE_TIMEOUT + \" (\" + _this.keepAliveTimeout + \" used).\");\n }\n return _this;\n }\n // Check if url matches standard domain pattern\n AppSyncRealTimeSubscriptionHandshakeLink.prototype.isCustomDomain = function (url) {\n return url.match(standardDomainPattern) === null;\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype.request = function (operation) {\n var _a;\n var _this = this;\n var query = operation.query, variables = operation.variables;\n var _b = operation.getContext(), _c = _b.controlMessages, _d = exports.CONTROL_EVENTS_KEY, controlEvents = (_c === void 0 ? (_a = {},\n _a[exports.CONTROL_EVENTS_KEY] = undefined,\n _a) : _c)[_d], headers = _b.headers;\n return new core_1.Observable(function (observer) {\n if (!_this.url) {\n observer.error({\n errors: [\n __assign({}, new graphql_1.GraphQLError(\"Subscribe only available for AWS AppSync endpoint\")),\n ],\n });\n observer.complete();\n }\n else {\n var subscriptionId_1 = uuid_1.v4();\n var token = _this.auth.type === aws_appsync_auth_link_1.AUTH_TYPE.AMAZON_COGNITO_USER_POOLS ||\n _this.auth.type === aws_appsync_auth_link_1.AUTH_TYPE.OPENID_CONNECT\n ? _this.auth.jwtToken\n : null;\n token = _this.auth.type === aws_appsync_auth_link_1.AUTH_TYPE.AWS_LAMBDA ? _this.auth.token : token;\n var options = {\n appSyncGraphqlEndpoint: _this.url,\n authenticationType: _this.auth.type,\n query: graphql_1.print(query),\n region: _this.region,\n graphql_headers: function () { return (headers); },\n variables: variables,\n apiKey: _this.auth.type === aws_appsync_auth_link_1.AUTH_TYPE.API_KEY ? _this.auth.apiKey : \"\",\n credentials: _this.auth.type === aws_appsync_auth_link_1.AUTH_TYPE.AWS_IAM ? _this.auth.credentials : null,\n token: token\n };\n _this._startSubscriptionWithAWSAppSyncRealTime({\n options: options,\n observer: observer,\n subscriptionId: subscriptionId_1\n });\n return function () { return __awaiter(_this, void 0, void 0, function () {\n var subscriptionState;\n return __generator(this, function (_a) {\n // Cleanup after unsubscribing or observer.complete was called after _startSubscriptionWithAWSAppSyncRealTime\n try {\n this._verifySubscriptionAlreadyStarted(subscriptionId_1);\n subscriptionState = this.subscriptionObserverMap.get(subscriptionId_1).subscriptionState;\n if (subscriptionState === types_1.SUBSCRIPTION_STATUS.CONNECTED) {\n this._sendUnsubscriptionMessage(subscriptionId_1);\n }\n else {\n throw new Error(\"Subscription has failed, starting to remove subscription.\");\n }\n }\n catch (err) {\n this._removeSubscriptionObserver(subscriptionId_1);\n return [2 /*return*/];\n }\n return [2 /*return*/];\n });\n }); };\n }\n }).filter(function (data) {\n var _a = data.extensions, _b = (_a === void 0 ? {} : _a).controlMsgType, controlMsgType = _b === void 0 ? undefined : _b;\n var isControlMsg = typeof controlMsgType !== \"undefined\";\n return controlEvents === true || !isControlMsg;\n });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._verifySubscriptionAlreadyStarted = function (subscriptionId) {\n return __awaiter(this, void 0, void 0, function () {\n var subscriptionState;\n var _this = this;\n return __generator(this, function (_a) {\n subscriptionState = this.subscriptionObserverMap.get(subscriptionId).subscriptionState;\n // This in case unsubscribe is invoked before sending start subscription message\n if (subscriptionState === types_1.SUBSCRIPTION_STATUS.PENDING) {\n return [2 /*return*/, new Promise(function (res, rej) {\n var _a = _this.subscriptionObserverMap.get(subscriptionId), observer = _a.observer, subscriptionState = _a.subscriptionState, variables = _a.variables, query = _a.query;\n _this.subscriptionObserverMap.set(subscriptionId, {\n observer: observer,\n subscriptionState: subscriptionState,\n variables: variables,\n query: query,\n subscriptionReadyCallback: res,\n subscriptionFailedCallback: rej\n });\n })];\n }\n return [2 /*return*/];\n });\n });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._sendUnsubscriptionMessage = function (subscriptionId) {\n try {\n if (this.awsRealTimeSocket &&\n this.awsRealTimeSocket.readyState === WebSocket.OPEN &&\n this.socketStatus === types_1.SOCKET_STATUS.READY) {\n // Preparing unsubscribe message to stop receiving messages for that subscription\n var unsubscribeMessage = {\n id: subscriptionId,\n type: types_1.MESSAGE_TYPES.GQL_STOP\n };\n var stringToAWSRealTime = JSON.stringify(unsubscribeMessage);\n this.awsRealTimeSocket.send(stringToAWSRealTime);\n this._removeSubscriptionObserver(subscriptionId);\n }\n }\n catch (err) {\n // If GQL_STOP is not sent because of disconnection issue, then there is nothing the client can do\n logger({ err: err });\n }\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._removeSubscriptionObserver = function (subscriptionId) {\n this.subscriptionObserverMap.delete(subscriptionId);\n // Verifying for 1000ms after removing subscription in case there are new subscriptions on mount / unmount\n setTimeout(this._closeSocketIfRequired.bind(this), 1000);\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._closeSocketIfRequired = function () {\n if (this.subscriptionObserverMap.size > 0) {\n // There are active subscriptions on the WebSocket\n return;\n }\n if (!this.awsRealTimeSocket) {\n this.socketStatus = types_1.SOCKET_STATUS.CLOSED;\n return;\n }\n if (this.awsRealTimeSocket.bufferedAmount > 0) {\n // There is still data on the WebSocket\n setTimeout(this._closeSocketIfRequired.bind(this), 1000);\n }\n else {\n logger(\"closing WebSocket...\");\n clearTimeout(this.keepAliveTimeoutId);\n var tempSocket = this.awsRealTimeSocket;\n tempSocket.close(1000);\n this.awsRealTimeSocket = null;\n this.socketStatus = types_1.SOCKET_STATUS.CLOSED;\n }\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._startSubscriptionWithAWSAppSyncRealTime = function (_a) {\n var options = _a.options, observer = _a.observer, subscriptionId = _a.subscriptionId;\n return __awaiter(this, void 0, void 0, function () {\n var appSyncGraphqlEndpoint, authenticationType, query, variables, apiKey, region, _b, graphql_headers, credentials, token, subscriptionState, data, dataString, headerObj, _c, subscriptionMessage, stringToAWSRealTime, err_1, _d, message, subscriptionFailedCallback_1, _e, subscriptionFailedCallback, subscriptionReadyCallback;\n var _f;\n var _this = this;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n appSyncGraphqlEndpoint = options.appSyncGraphqlEndpoint, authenticationType = options.authenticationType, query = options.query, variables = options.variables, apiKey = options.apiKey, region = options.region, _b = options.graphql_headers, graphql_headers = _b === void 0 ? function () { return ({}); } : _b, credentials = options.credentials, token = options.token;\n subscriptionState = types_1.SUBSCRIPTION_STATUS.PENDING;\n data = {\n query: query,\n variables: variables\n };\n // Having a subscription id map will make it simple to forward messages received\n this.subscriptionObserverMap.set(subscriptionId, {\n observer: observer,\n query: query,\n variables: variables,\n subscriptionState: subscriptionState,\n startAckTimeoutId: null,\n });\n dataString = JSON.stringify(data);\n _c = [{}];\n return [4 /*yield*/, this._awsRealTimeHeaderBasedAuth({\n apiKey: apiKey,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n authenticationType: authenticationType,\n payload: dataString,\n canonicalUri: \"\",\n region: region,\n credentials: credentials,\n token: token,\n graphql_headers: graphql_headers\n })];\n case 1:\n headerObj = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_g.sent())])), (_f = {}, _f[aws_appsync_auth_link_1.USER_AGENT_HEADER] = aws_appsync_auth_link_1.USER_AGENT, _f)]);\n subscriptionMessage = {\n id: subscriptionId,\n payload: {\n data: dataString,\n extensions: {\n authorization: __assign({}, headerObj)\n }\n },\n type: types_1.MESSAGE_TYPES.GQL_START\n };\n stringToAWSRealTime = JSON.stringify(subscriptionMessage);\n _g.label = 2;\n case 2:\n _g.trys.push([2, 4, , 5]);\n return [4 /*yield*/, this._initializeWebSocketConnection({\n apiKey: apiKey,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n authenticationType: authenticationType,\n region: region,\n credentials: credentials,\n token: token\n })];\n case 3:\n _g.sent();\n return [3 /*break*/, 5];\n case 4:\n err_1 = _g.sent();\n _d = err_1.message, message = _d === void 0 ? \"\" : _d;\n observer.error({\n errors: [\n __assign({}, new graphql_1.GraphQLError(\"Connection failed: \" + message))\n ]\n });\n observer.complete();\n subscriptionFailedCallback_1 = (this.subscriptionObserverMap.get(subscriptionId) || {}).subscriptionFailedCallback;\n // Notify concurrent unsubscription\n if (typeof subscriptionFailedCallback_1 === \"function\") {\n subscriptionFailedCallback_1();\n }\n return [2 /*return*/];\n case 5:\n _e = this.subscriptionObserverMap.get(subscriptionId), subscriptionFailedCallback = _e.subscriptionFailedCallback, subscriptionReadyCallback = _e.subscriptionReadyCallback;\n // This must be done before sending the message in order to be listening immediately\n this.subscriptionObserverMap.set(subscriptionId, {\n observer: observer,\n subscriptionState: subscriptionState,\n variables: variables,\n query: query,\n subscriptionReadyCallback: subscriptionReadyCallback,\n subscriptionFailedCallback: subscriptionFailedCallback,\n startAckTimeoutId: setTimeout(function () {\n _this._timeoutStartSubscriptionAck.call(_this, subscriptionId);\n }, START_ACK_TIMEOUT)\n });\n if (this.awsRealTimeSocket) {\n this.awsRealTimeSocket.send(stringToAWSRealTime);\n }\n return [2 /*return*/];\n }\n });\n });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._initializeWebSocketConnection = function (_a) {\n var _this = this;\n var appSyncGraphqlEndpoint = _a.appSyncGraphqlEndpoint, authenticationType = _a.authenticationType, apiKey = _a.apiKey, region = _a.region, credentials = _a.credentials, token = _a.token;\n if (this.socketStatus === types_1.SOCKET_STATUS.READY) {\n return;\n }\n return new Promise(function (res, rej) { return __awaiter(_this, void 0, void 0, function () {\n var payloadString, headerString, _a, _b, headerQs, payloadQs, discoverableEndpoint, awsRealTimeUrl, err_2;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n this.promiseArray.push({ res: res, rej: rej });\n if (!(this.socketStatus === types_1.SOCKET_STATUS.CLOSED)) return [3 /*break*/, 5];\n _c.label = 1;\n case 1:\n _c.trys.push([1, 4, , 5]);\n this.socketStatus = types_1.SOCKET_STATUS.CONNECTING;\n payloadString = \"{}\";\n _b = (_a = JSON).stringify;\n return [4 /*yield*/, this._awsRealTimeHeaderBasedAuth({\n authenticationType: authenticationType,\n payload: payloadString,\n canonicalUri: \"/connect\",\n apiKey: apiKey,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n region: region,\n credentials: credentials,\n token: token,\n graphql_headers: function () { }\n })];\n case 2:\n headerString = _b.apply(_a, [_c.sent()]);\n headerQs = Buffer.from(headerString).toString(\"base64\");\n payloadQs = Buffer.from(payloadString).toString(\"base64\");\n discoverableEndpoint = appSyncGraphqlEndpoint;\n if (this.isCustomDomain(discoverableEndpoint)) {\n discoverableEndpoint = discoverableEndpoint.concat(customDomainPath);\n }\n else {\n discoverableEndpoint = discoverableEndpoint.replace('appsync-api', 'appsync-realtime-api').replace('gogi-beta', 'grt-beta');\n }\n discoverableEndpoint = discoverableEndpoint\n .replace(\"https://\", \"wss://\")\n .replace('http://', 'ws://');\n awsRealTimeUrl = discoverableEndpoint + \"?header=\" + headerQs + \"&payload=\" + payloadQs;\n return [4 /*yield*/, this._initializeRetryableHandshake({ awsRealTimeUrl: awsRealTimeUrl })];\n case 3:\n _c.sent();\n this.promiseArray.forEach(function (_a) {\n var res = _a.res;\n logger(\"Notifying connection successful\");\n res();\n });\n this.socketStatus = types_1.SOCKET_STATUS.READY;\n this.promiseArray = [];\n return [3 /*break*/, 5];\n case 4:\n err_2 = _c.sent();\n this.promiseArray.forEach(function (_a) {\n var rej = _a.rej;\n return rej(err_2);\n });\n this.promiseArray = [];\n if (this.awsRealTimeSocket &&\n this.awsRealTimeSocket.readyState === WebSocket.OPEN) {\n this.awsRealTimeSocket.close(3001);\n }\n this.awsRealTimeSocket = null;\n this.socketStatus = types_1.SOCKET_STATUS.CLOSED;\n return [3 /*break*/, 5];\n case 5: return [2 /*return*/];\n }\n });\n }); });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._awsRealTimeHeaderBasedAuth = function (_a) {\n var authenticationType = _a.authenticationType, payload = _a.payload, canonicalUri = _a.canonicalUri, appSyncGraphqlEndpoint = _a.appSyncGraphqlEndpoint, apiKey = _a.apiKey, region = _a.region, credentials = _a.credentials, token = _a.token, graphql_headers = _a.graphql_headers;\n return __awaiter(this, void 0, void 0, function () {\n var headerHandler, handler, host, result;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n headerHandler = {\n API_KEY: this._awsRealTimeApiKeyHeader.bind(this),\n AWS_IAM: this._awsRealTimeIAMHeader.bind(this),\n OPENID_CONNECT: this._awsRealTimeAuthorizationHeader.bind(this),\n AMAZON_COGNITO_USER_POOLS: this._awsRealTimeAuthorizationHeader.bind(this),\n AWS_LAMBDA: this._awsRealTimeAuthorizationHeader.bind(this)\n };\n handler = headerHandler[authenticationType];\n if (typeof handler !== \"function\") {\n logger(\"Authentication type \" + authenticationType + \" not supported\");\n return [2 /*return*/, {}];\n }\n host = url.parse(appSyncGraphqlEndpoint).host;\n return [4 /*yield*/, handler({\n payload: payload,\n canonicalUri: canonicalUri,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n apiKey: apiKey,\n region: region,\n host: host,\n credentials: credentials,\n token: token,\n graphql_headers: graphql_headers\n })];\n case 1:\n result = _b.sent();\n return [2 /*return*/, result];\n }\n });\n });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._awsRealTimeAuthorizationHeader = function (_a) {\n var host = _a.host, token = _a.token, graphql_headers = _a.graphql_headers;\n return __awaiter(this, void 0, void 0, function () {\n var _b, _c, _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _b = {};\n if (!(typeof token === \"function\")) return [3 /*break*/, 2];\n return [4 /*yield*/, token.call(undefined)];\n case 1:\n _c = _e.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, token];\n case 3:\n _c = _e.sent();\n _e.label = 4;\n case 4:\n _d = [(_b.Authorization = _c, _b.host = host, _b)];\n return [4 /*yield*/, graphql_headers()];\n case 5: return [2 /*return*/, __assign.apply(void 0, _d.concat([(_e.sent())]))];\n }\n });\n });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._awsRealTimeApiKeyHeader = function (_a) {\n var apiKey = _a.apiKey, host = _a.host, graphql_headers = _a.graphql_headers;\n return __awaiter(this, void 0, void 0, function () {\n var dt, dtStr, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n dt = new Date();\n dtStr = dt.toISOString().replace(/[:\\-]|\\.\\d{3}/g, \"\");\n _b = [{ host: host, \"x-amz-date\": dtStr, \"x-api-key\": apiKey }];\n return [4 /*yield*/, graphql_headers()];\n case 1: return [2 /*return*/, __assign.apply(void 0, _b.concat([(_c.sent())]))];\n }\n });\n });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._awsRealTimeIAMHeader = function (_a) {\n var payload = _a.payload, canonicalUri = _a.canonicalUri, appSyncGraphqlEndpoint = _a.appSyncGraphqlEndpoint, region = _a.region, credentials = _a.credentials;\n return __awaiter(this, void 0, void 0, function () {\n var endpointInfo, creds, _b, accessKeyId, secretAccessKey, sessionToken, formattedCredentials, request, signed_params;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n endpointInfo = {\n region: region,\n service: SERVICE\n };\n creds = typeof credentials === \"function\"\n ? credentials.call()\n : credentials || {};\n if (!(creds && typeof creds.getPromise === \"function\")) return [3 /*break*/, 2];\n return [4 /*yield*/, creds.getPromise()];\n case 1:\n _c.sent();\n _c.label = 2;\n case 2:\n if (!creds) {\n throw new Error(\"No credentials\");\n }\n return [4 /*yield*/, creds];\n case 3:\n _b = _c.sent(), accessKeyId = _b.accessKeyId, secretAccessKey = _b.secretAccessKey, sessionToken = _b.sessionToken;\n formattedCredentials = {\n access_key: accessKeyId,\n secret_key: secretAccessKey,\n session_token: sessionToken\n };\n request = {\n url: \"\" + appSyncGraphqlEndpoint + canonicalUri,\n body: payload,\n method: \"POST\",\n headers: __assign({}, APPSYNC_REALTIME_HEADERS)\n };\n signed_params = aws_appsync_auth_link_1.Signer.sign(request, formattedCredentials, endpointInfo);\n return [2 /*return*/, signed_params.headers];\n }\n });\n });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._initializeRetryableHandshake = function (_a) {\n var awsRealTimeUrl = _a.awsRealTimeUrl;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n logger(\"Initializaling retryable Handshake\");\n return [4 /*yield*/, retry_1.jitteredExponentialRetry(this._initializeHandshake.bind(this), [\n { awsRealTimeUrl: awsRealTimeUrl }\n ])];\n case 1:\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._initializeHandshake = function (_a) {\n var awsRealTimeUrl = _a.awsRealTimeUrl;\n return __awaiter(this, void 0, void 0, function () {\n var err_3, errorType, errorCode;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n logger(\"Initializing handshake \" + awsRealTimeUrl);\n _b.label = 1;\n case 1:\n _b.trys.push([1, 4, , 5]);\n return [4 /*yield*/, (function () {\n return new Promise(function (res, rej) {\n var newSocket = AppSyncRealTimeSubscriptionHandshakeLink.createWebSocket(awsRealTimeUrl, \"graphql-ws\");\n newSocket.onerror = function () {\n logger(\"WebSocket connection error\");\n };\n newSocket.onclose = function () {\n rej(new Error(\"Connection handshake error\"));\n };\n newSocket.onopen = function () {\n _this.awsRealTimeSocket = newSocket;\n return res();\n };\n });\n })()];\n case 2:\n _b.sent();\n // Step 2: wait for ack from AWS AppSyncReaTime after sending init\n return [4 /*yield*/, (function () {\n return new Promise(function (res, rej) {\n var ackOk = false;\n _this.awsRealTimeSocket.onerror = function (error) {\n logger(\"WebSocket closed \" + JSON.stringify(error));\n };\n _this.awsRealTimeSocket.onclose = function (event) {\n logger(\"WebSocket closed \" + event.reason);\n rej(new Error(JSON.stringify(event)));\n };\n _this.awsRealTimeSocket.onmessage = function (message) {\n var _a;\n logger(\"subscription message from AWS AppSyncRealTime: \" + message.data + \" \");\n var data = JSON.parse(message.data);\n var type = data.type, _b = data.payload, _c = (_b === void 0 ? {} : _b).connectionTimeoutMs, connectionTimeoutMs = _c === void 0 ? DEFAULT_KEEP_ALIVE_TIMEOUT : _c;\n if (type === types_1.MESSAGE_TYPES.GQL_CONNECTION_ACK) {\n ackOk = true;\n _this.keepAliveTimeout = (_a = _this.keepAliveTimeout) !== null && _a !== void 0 ? _a : connectionTimeoutMs;\n _this.awsRealTimeSocket.onmessage = _this._handleIncomingSubscriptionMessage.bind(_this);\n _this.awsRealTimeSocket.onerror = function (err) {\n logger(err);\n _this._errorDisconnect(types_1.CONTROL_MSG.CONNECTION_CLOSED);\n };\n _this.awsRealTimeSocket.onclose = function (event) {\n logger(\"WebSocket closed \" + event.reason);\n _this._errorDisconnect(types_1.CONTROL_MSG.CONNECTION_CLOSED);\n };\n res(\"Cool, connected to AWS AppSyncRealTime\");\n return;\n }\n if (type === types_1.MESSAGE_TYPES.GQL_CONNECTION_ERROR) {\n var _d = data.payload, _e = (_d === void 0 ? {} : _d).errors, _f = (_e === void 0 ? [] : _e)[0], _g = _f === void 0 ? {} : _f, _h = _g.errorType, errorType = _h === void 0 ? \"\" : _h, _j = _g.errorCode, errorCode = _j === void 0 ? 0 : _j;\n rej({ errorType: errorType, errorCode: errorCode });\n }\n };\n var gqlInit = {\n type: types_1.MESSAGE_TYPES.GQL_CONNECTION_INIT\n };\n _this.awsRealTimeSocket.send(JSON.stringify(gqlInit));\n function checkAckOk() {\n if (!ackOk) {\n rej(new Error(\"Connection timeout: ack from AWSRealTime was not received on \" + CONNECTION_INIT_TIMEOUT + \" ms\"));\n }\n }\n setTimeout(checkAckOk.bind(_this), CONNECTION_INIT_TIMEOUT);\n });\n })()];\n case 3:\n // Step 2: wait for ack from AWS AppSyncReaTime after sending init\n _b.sent();\n return [3 /*break*/, 5];\n case 4:\n err_3 = _b.sent();\n errorType = err_3.errorType, errorCode = err_3.errorCode;\n if (NON_RETRYABLE_CODES.indexOf(errorCode) >= 0) {\n throw new retry_1.NonRetryableError(errorType);\n }\n else if (errorType) {\n throw new Error(errorType);\n }\n else {\n throw err_3;\n }\n return [3 /*break*/, 5];\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._handleIncomingSubscriptionMessage = function (message) {\n logger(\"subscription message from AWS AppSync RealTime: \" + message.data);\n var _a = JSON.parse(message.data), _b = _a.id, id = _b === void 0 ? \"\" : _b, payload = _a.payload, type = _a.type;\n var _c = this.subscriptionObserverMap.get(id) || {}, _d = _c.observer, observer = _d === void 0 ? null : _d, _e = _c.query, query = _e === void 0 ? \"\" : _e, _f = _c.variables, variables = _f === void 0 ? {} : _f, _g = _c.startAckTimeoutId, startAckTimeoutId = _g === void 0 ? 0 : _g, _h = _c.subscriptionReadyCallback, subscriptionReadyCallback = _h === void 0 ? null : _h, _j = _c.subscriptionFailedCallback, subscriptionFailedCallback = _j === void 0 ? null : _j;\n logger({ id: id, observer: observer, query: query, variables: variables });\n if (type === types_1.MESSAGE_TYPES.GQL_DATA && payload && payload.data) {\n if (observer) {\n observer.next(payload);\n }\n else {\n logger(\"observer not found for id: \" + id);\n }\n return;\n }\n if (type === types_1.MESSAGE_TYPES.GQL_START_ACK) {\n logger(\"subscription ready for \" + JSON.stringify({ query: query, variables: variables }));\n if (typeof subscriptionReadyCallback === \"function\") {\n subscriptionReadyCallback();\n }\n clearTimeout(startAckTimeoutId);\n if (observer) {\n observer.next({\n data: payload,\n extensions: {\n controlMsgType: \"CONNECTED\"\n }\n });\n }\n else {\n logger(\"observer not found for id: \" + id);\n }\n var subscriptionState = types_1.SUBSCRIPTION_STATUS.CONNECTED;\n this.subscriptionObserverMap.set(id, {\n observer: observer,\n query: query,\n variables: variables,\n startAckTimeoutId: null,\n subscriptionState: subscriptionState,\n subscriptionReadyCallback: subscriptionReadyCallback,\n subscriptionFailedCallback: subscriptionFailedCallback\n });\n return;\n }\n if (type === types_1.MESSAGE_TYPES.GQL_CONNECTION_KEEP_ALIVE) {\n clearTimeout(this.keepAliveTimeoutId);\n this.keepAliveTimeoutId = setTimeout(this._errorDisconnect.bind(this, types_1.CONTROL_MSG.TIMEOUT_DISCONNECT), this.keepAliveTimeout);\n return;\n }\n if (type === types_1.MESSAGE_TYPES.GQL_ERROR) {\n var subscriptionState = types_1.SUBSCRIPTION_STATUS.FAILED;\n this.subscriptionObserverMap.set(id, {\n observer: observer,\n query: query,\n variables: variables,\n startAckTimeoutId: startAckTimeoutId,\n subscriptionReadyCallback: subscriptionReadyCallback,\n subscriptionFailedCallback: subscriptionFailedCallback,\n subscriptionState: subscriptionState\n });\n clearTimeout(startAckTimeoutId);\n if (observer) {\n observer.error({\n errors: [\n __assign({}, new graphql_1.GraphQLError(\"Connection failed: \" + JSON.stringify(payload)))\n ]\n });\n observer.complete();\n }\n else {\n logger(\"observer not found for id: \" + id);\n }\n if (typeof subscriptionFailedCallback === \"function\") {\n subscriptionFailedCallback();\n }\n }\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._errorDisconnect = function (msg) {\n logger(\"Disconnect error: \" + msg);\n this.subscriptionObserverMap.forEach(function (_a) {\n var observer = _a.observer;\n if (observer && !observer.closed) {\n observer.error({\n errors: [__assign({}, new graphql_1.GraphQLError(msg))],\n });\n }\n });\n this.subscriptionObserverMap.clear();\n if (this.awsRealTimeSocket) {\n this.awsRealTimeSocket.close();\n }\n this.socketStatus = types_1.SOCKET_STATUS.CLOSED;\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._timeoutStartSubscriptionAck = function (subscriptionId) {\n var _a = this.subscriptionObserverMap.get(subscriptionId) || {}, observer = _a.observer, query = _a.query, variables = _a.variables;\n if (!observer) {\n return;\n }\n this.subscriptionObserverMap.set(subscriptionId, {\n observer: observer,\n query: query,\n variables: variables,\n subscriptionState: types_1.SUBSCRIPTION_STATUS.FAILED\n });\n if (observer && !observer.closed) {\n observer.error({\n errors: [\n __assign({}, new graphql_1.GraphQLError(\"Subscription timeout \" + JSON.stringify({ query: query, variables: variables })))\n ]\n });\n // Cleanup will be automatically executed\n observer.complete();\n }\n logger(\"timeoutStartSubscription\", JSON.stringify({ query: query, variables: variables }));\n };\n AppSyncRealTimeSubscriptionHandshakeLink.createWebSocket = function (awsRealTimeUrl, protocol) {\n return new WebSocket(awsRealTimeUrl, protocol);\n };\n return AppSyncRealTimeSubscriptionHandshakeLink;\n}(core_1.ApolloLink));\nexports.AppSyncRealTimeSubscriptionHandshakeLink = AppSyncRealTimeSubscriptionHandshakeLink;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar core_1 = require(\"@apollo/client/core\");\nvar utils_1 = require(\"./utils\");\nvar Paho = require(\"./vendor/paho-mqtt\");\nvar utilities_1 = require(\"@apollo/client/utilities\");\nvar logger = utils_1.rootLogger.extend('subscriptions');\nvar mqttLogger = logger.extend('mqtt');\nexports.CONTROL_EVENTS_KEY = '@@controlEvents';\nvar SubscriptionHandshakeLink = /** @class */ (function (_super) {\n __extends(SubscriptionHandshakeLink, _super);\n function SubscriptionHandshakeLink(subsInfoContextKey) {\n var _this = _super.call(this) || this;\n _this.topicObservers = new Map();\n _this.clientObservers = new Map();\n _this.onMessage = function (topic, message, selectionNames) {\n var parsedMessage = JSON.parse(message);\n var observers = _this.topicObservers.get(topic);\n var data = selectionNames.reduce(function (acc, name) { return (acc[name] = acc[name] || null, acc); }, parsedMessage.data || {});\n logger('Message received', { data: data, topic: topic, observers: observers });\n observers.forEach(function (observer) {\n try {\n observer.next(__assign(__assign({}, parsedMessage), { data: data }));\n }\n catch (err) {\n logger(err);\n }\n });\n };\n _this.subsInfoContextKey = subsInfoContextKey;\n return _this;\n }\n SubscriptionHandshakeLink.prototype.request = function (operation) {\n var _a;\n var _this = this;\n var _b = operation.getContext(), _c = this.subsInfoContextKey, subsInfo = _b[_c], _d = _b.controlMessages, _e = exports.CONTROL_EVENTS_KEY, controlEvents = (_d === void 0 ? (_a = {}, _a[exports.CONTROL_EVENTS_KEY] = undefined, _a) : _d)[_e];\n var _f = subsInfo.extensions, _g = (_f === void 0 ? { subscription: { newSubscriptions: {}, mqttConnections: [] } } : _f).subscription, newSubscriptions = _g.newSubscriptions, mqttConnections = _g.mqttConnections, _h = subsInfo.errors, errors = _h === void 0 ? [] : _h;\n if (errors && errors.length) {\n return new core_1.Observable(function (observer) {\n observer.error(new core_1.ApolloError({\n errorMessage: 'Error during subscription handshake',\n extraInfo: { errors: errors },\n graphQLErrors: errors\n }));\n return function () { };\n });\n }\n var newSubscriptionTopics = Object.keys(newSubscriptions).map(function (subKey) { return newSubscriptions[subKey].topic; });\n var existingTopicsWithObserver = new Set(newSubscriptionTopics.filter(function (t) { return _this.topicObservers.has(t); }));\n var newTopics = new Set(newSubscriptionTopics.filter(function (t) { return !existingTopicsWithObserver.has(t); }));\n return new core_1.Observable(function (observer) {\n existingTopicsWithObserver.forEach(function (t) {\n _this.topicObservers.get(t).add(observer);\n var anObserver = Array.from(_this.topicObservers.get(t)).find(function () { return true; });\n var clientId = Array.from(_this.clientObservers).find(function (_a) {\n var observers = _a[1].observers;\n return observers.has(anObserver);\n })[0];\n _this.clientObservers.get(clientId).observers.add(observer);\n });\n var newTopicsConnectionInfo = mqttConnections\n .filter(function (c) { return c.topics.some(function (t) { return newTopics.has(t); }); })\n .map(function (_a) {\n var topics = _a.topics, rest = __rest(_a, [\"topics\"]);\n return (__assign(__assign({}, rest), { topics: topics.filter(function (t) { return newTopics.has(t); }) }));\n });\n _this.connectNewClients(newTopicsConnectionInfo, observer, operation);\n return function () {\n var clientsForCurrentObserver = Array.from(_this.clientObservers).filter(function (_a) {\n var observers = _a[1].observers;\n return observers.has(observer);\n });\n clientsForCurrentObserver.forEach(function (_a) {\n var clientId = _a[0];\n return _this.clientObservers.get(clientId).observers.delete(observer);\n });\n _this.clientObservers.forEach(function (_a) {\n var observers = _a.observers, client = _a.client;\n if (observers.size === 0) {\n if (client.isConnected()) {\n client.disconnect();\n }\n _this.clientObservers.delete(client.clientId);\n }\n });\n _this.clientObservers = new Map(Array.from(_this.clientObservers).filter(function (_a) {\n var observers = _a[1].observers;\n return observers.size > 0;\n }));\n _this.topicObservers.forEach(function (observers) { return observers.delete(observer); });\n _this.topicObservers = new Map(Array.from(_this.topicObservers)\n .filter(function (_a) {\n var observers = _a[1];\n return observers.size > 0;\n }));\n };\n }).filter(function (data) {\n var _a = data.extensions, _b = (_a === void 0 ? {} : _a).controlMsgType, controlMsgType = _b === void 0 ? undefined : _b;\n var isControlMsg = typeof controlMsgType !== 'undefined';\n return controlEvents === true || !isControlMsg;\n });\n };\n SubscriptionHandshakeLink.prototype.connectNewClients = function (connectionInfo, observer, operation) {\n return __awaiter(this, void 0, void 0, function () {\n var query, selectionNames, result, data;\n var _this = this;\n return __generator(this, function (_a) {\n query = operation.query;\n selectionNames = utilities_1.getMainDefinition(query).selectionSet.selections.map(function (_a) {\n var value = _a.name.value;\n return value;\n });\n result = Promise.all(connectionInfo.map(function (c) { return _this.connectNewClient(c, observer, selectionNames); }));\n data = selectionNames.reduce(function (acc, name) { return (acc[name] = acc[name] || null, acc); }, {});\n observer.next({\n data: data,\n extensions: {\n controlMsgType: 'CONNECTED',\n controlMsgInfo: {\n connectionInfo: connectionInfo,\n },\n }\n });\n return [2 /*return*/, result];\n });\n });\n };\n ;\n SubscriptionHandshakeLink.prototype.connectNewClient = function (connectionInfo, observer, selectionNames) {\n return __awaiter(this, void 0, void 0, function () {\n var clientId, url, topics, client;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n clientId = connectionInfo.client, url = connectionInfo.url, topics = connectionInfo.topics;\n client = new Paho.Client(url, clientId);\n client.trace = mqttLogger.bind(null, clientId);\n client.onConnectionLost = function (_a) {\n var errorCode = _a.errorCode, args = __rest(_a, [\"errorCode\"]);\n if (errorCode !== 0) {\n topics.forEach(function (t) {\n if (_this.topicObservers.has(t)) {\n _this.topicObservers.get(t).forEach(function (observer) { return observer.error(__assign(__assign({}, args), { permanent: true })); });\n }\n });\n }\n topics.forEach(function (t) { return _this.topicObservers.delete(t); });\n };\n client.onMessageArrived = function (_a) {\n var destinationName = _a.destinationName, payloadString = _a.payloadString;\n return _this.onMessage(destinationName, payloadString, selectionNames);\n };\n return [4 /*yield*/, new Promise(function (resolve, reject) {\n client.connect({\n useSSL: url.indexOf('wss://') === 0,\n mqttVersion: 3,\n onSuccess: function () { return resolve(client); },\n onFailure: reject,\n });\n })];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.subscribeToTopics(client, topics, observer)];\n case 2:\n _a.sent();\n return [2 /*return*/, client];\n }\n });\n });\n };\n SubscriptionHandshakeLink.prototype.subscribeToTopics = function (client, topics, observer) {\n var _this = this;\n return Promise.all(topics.map(function (topic) { return _this.subscribeToTopic(client, topic, observer); }));\n };\n SubscriptionHandshakeLink.prototype.subscribeToTopic = function (client, topic, observer) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n client.subscribe(topic, {\n onSuccess: function () {\n if (!_this.topicObservers.has(topic)) {\n _this.topicObservers.set(topic, new Set());\n }\n if (!_this.clientObservers.has(client.clientId)) {\n _this.clientObservers.set(client.clientId, { client: client, observers: new Set() });\n }\n _this.topicObservers.get(topic).add(observer);\n _this.clientObservers.get(client.clientId).observers.add(observer);\n resolve(topic);\n },\n onFailure: reject,\n });\n });\n };\n return SubscriptionHandshakeLink;\n}(core_1.ApolloLink));\nexports.SubscriptionHandshakeLink = SubscriptionHandshakeLink;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//#region Subscription link enums\nvar SUBSCRIPTION_STATUS;\n(function (SUBSCRIPTION_STATUS) {\n SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS[\"PENDING\"] = 0] = \"PENDING\";\n SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS[\"CONNECTED\"] = 1] = \"CONNECTED\";\n SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS[\"FAILED\"] = 2] = \"FAILED\";\n})(SUBSCRIPTION_STATUS = exports.SUBSCRIPTION_STATUS || (exports.SUBSCRIPTION_STATUS = {}));\nvar SOCKET_STATUS;\n(function (SOCKET_STATUS) {\n SOCKET_STATUS[SOCKET_STATUS[\"CLOSED\"] = 0] = \"CLOSED\";\n SOCKET_STATUS[SOCKET_STATUS[\"READY\"] = 1] = \"READY\";\n SOCKET_STATUS[SOCKET_STATUS[\"CONNECTING\"] = 2] = \"CONNECTING\";\n})(SOCKET_STATUS = exports.SOCKET_STATUS || (exports.SOCKET_STATUS = {}));\nvar MESSAGE_TYPES;\n(function (MESSAGE_TYPES) {\n /**\n * Client -> Server message.\n * This message type is the first message after handshake and this will initialize AWS AppSync RealTime communication\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_INIT\"] = \"connection_init\";\n /**\n * Server -> Client message\n * This message type is in case there is an issue with AWS AppSync RealTime when establishing connection\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_ERROR\"] = \"connection_error\";\n /**\n * Server -> Client message.\n * This message type is for the ack response from AWS AppSync RealTime for GQL_CONNECTION_INIT message\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_ACK\"] = \"connection_ack\";\n /**\n * Client -> Server message.\n * This message type is for register subscriptions with AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_START\"] = \"start\";\n /**\n * Server -> Client message.\n * This message type is for the ack response from AWS AppSync RealTime for GQL_START message\n */\n MESSAGE_TYPES[\"GQL_START_ACK\"] = \"start_ack\";\n /**\n * Server -> Client message.\n * This message type is for subscription message from AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_DATA\"] = \"data\";\n /**\n * Server -> Client message.\n * This message type helps the client to know is still receiving messages from AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_KEEP_ALIVE\"] = \"ka\";\n /**\n * Client -> Server message.\n * This message type is for unregister subscriptions with AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_STOP\"] = \"stop\";\n /**\n * Server -> Client message.\n * This message type is for the ack response from AWS AppSync RealTime for GQL_STOP message\n */\n MESSAGE_TYPES[\"GQL_COMPLETE\"] = \"complete\";\n /**\n * Server -> Client message.\n * This message type is for sending error messages from AWS AppSync RealTime to the client\n */\n MESSAGE_TYPES[\"GQL_ERROR\"] = \"error\"; // Server -> Client\n})(MESSAGE_TYPES = exports.MESSAGE_TYPES || (exports.MESSAGE_TYPES = {}));\nvar CONTROL_MSG;\n(function (CONTROL_MSG) {\n CONTROL_MSG[\"CONNECTION_CLOSED\"] = \"Connection closed\";\n CONTROL_MSG[\"TIMEOUT_DISCONNECT\"] = \"Timeout disconnect\";\n CONTROL_MSG[\"SUBSCRIPTION_ACK\"] = \"Subscription ack\";\n})(CONTROL_MSG = exports.CONTROL_MSG || (exports.CONTROL_MSG = {}));\n//#endregion\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar logger_1 = require(\"./logger\");\nexports.rootLogger = logger_1.default;\n","\"use strict\";\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar debug_1 = require(\"debug\");\nvar debugLogger = debug_1.default('aws-appsync');\nvar extend = function (category) {\n if (category === void 0) { category = ''; }\n var newCategory = category ? __spreadArrays(this.namespace.split(':'), [category]).join(':') : this.namespace;\n var result = debug_1.default(newCategory);\n result.extend = extend.bind(result);\n return result;\n};\ndebugLogger.extend = extend.bind(debugLogger);\nexports.default = debugLogger;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar index_1 = require(\"./index\");\nvar logger = index_1.rootLogger.extend(\"retry\");\nvar MAX_DELAY_MS = 5000;\n/**\n * Internal use of Subscription link\n * @private\n */\nvar NonRetryableError = /** @class */ (function (_super) {\n __extends(NonRetryableError, _super);\n function NonRetryableError(message) {\n var _this = _super.call(this, message) || this;\n _this.nonRetryable = true;\n return _this;\n }\n return NonRetryableError;\n}(Error));\nexports.NonRetryableError = NonRetryableError;\nvar isNonRetryableError = function (obj) {\n var key = \"nonRetryable\";\n return obj && obj[key];\n};\n/**\n * @private\n * Internal use of Subscription link\n */\nfunction retry(functionToRetry, args, delayFn, attempt) {\n if (attempt === void 0) { attempt = 1; }\n return __awaiter(this, void 0, void 0, function () {\n var err_1, retryIn_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger(\"Attempt #\" + attempt + \" for this vars: \" + JSON.stringify(args));\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 8]);\n return [4 /*yield*/, functionToRetry.apply(undefined, args)];\n case 2:\n _a.sent();\n return [3 /*break*/, 8];\n case 3:\n err_1 = _a.sent();\n logger(\"error \" + err_1);\n if (isNonRetryableError(err_1)) {\n logger(\"non retryable error\");\n throw err_1;\n }\n retryIn_1 = delayFn(attempt, args, err_1);\n logger(\"retryIn \", retryIn_1);\n if (!(retryIn_1 !== false)) return [3 /*break*/, 6];\n return [4 /*yield*/, new Promise(function (res) { return setTimeout(res, retryIn_1); })];\n case 4:\n _a.sent();\n return [4 /*yield*/, retry(functionToRetry, args, delayFn, attempt + 1)];\n case 5: return [2 /*return*/, _a.sent()];\n case 6: throw err_1;\n case 7: return [3 /*break*/, 8];\n case 8: return [2 /*return*/];\n }\n });\n });\n}\nexports.retry = retry;\nfunction jitteredBackoff(maxDelayMs) {\n var BASE_TIME_MS = 100;\n var JITTER_FACTOR = 100;\n return function (attempt) {\n var delay = Math.pow(2, attempt) * BASE_TIME_MS + JITTER_FACTOR * Math.random();\n return delay > maxDelayMs ? false : delay;\n };\n}\n/**\n * @private\n * Internal use of Subscription link\n */\nexports.jitteredExponentialRetry = function (functionToRetry, args, maxDelayMs) {\n if (maxDelayMs === void 0) { maxDelayMs = MAX_DELAY_MS; }\n return retry(functionToRetry, args, jitteredBackoff(maxDelayMs));\n};\n","/*******************************************************************************\n * Copyright (c) 2013 IBM Corp.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * and Eclipse Distribution License v1.0 which accompany this distribution.\n *\n * The Eclipse Public License is available at\n * http://www.eclipse.org/legal/epl-v10.html\n * and the Eclipse Distribution License is available at\n * http://www.eclipse.org/org/documents/edl-v10.php.\n *\n * Contributors:\n * Andrew Banks - initial API and implementation and initial documentation\n *******************************************************************************/\n\n\n// Only expose a single object name in the global namespace.\n// Everything must go through this module. Global Paho module\n// only has a single public function, client, which returns\n// a Paho client object given connection details.\n\n/**\n * Send and receive messages using web browsers.\n *

\n * This programming interface lets a JavaScript client application use the MQTT V3.1 or\n * V3.1.1 protocol to connect to an MQTT-supporting messaging server.\n *\n * The function supported includes:\n *

    \n *
  1. Connecting to and disconnecting from a server. The server is identified by its host name and port number.\n *
  2. Specifying options that relate to the communications link with the server,\n * for example the frequency of keep-alive heartbeats, and whether SSL/TLS is required.\n *
  3. Subscribing to and receiving messages from MQTT Topics.\n *
  4. Publishing messages to MQTT Topics.\n *
\n *

\n * The API consists of two main objects:\n *

\n *
{@link Paho.Client}
\n *
This contains methods that provide the functionality of the API,\n * including provision of callbacks that notify the application when a message\n * arrives from or is delivered to the messaging server,\n * or when the status of its connection to the messaging server changes.
\n *
{@link Paho.Message}
\n *
This encapsulates the payload of the message along with various attributes\n * associated with its delivery, in particular the destination to which it has\n * been (or is about to be) sent.
\n *
\n *

\n * The programming interface validates parameters passed to it, and will throw\n * an Error containing an error message intended for developer use, if it detects\n * an error with any parameter.\n *

\n * Example:\n *\n *

\nclient = new Paho.Client(location.hostname, Number(location.port), \"clientId\");\nclient.onConnectionLost = onConnectionLost;\nclient.onMessageArrived = onMessageArrived;\nclient.connect({onSuccess:onConnect});\n\nfunction onConnect() {\n  // Once a connection has been made, make a subscription and send a message.\n  console.log(\"onConnect\");\n  client.subscribe(\"/World\");\n  message = new Paho.Message(\"Hello\");\n  message.destinationName = \"/World\";\n  client.send(message);\n};\nfunction onConnectionLost(responseObject) {\n  if (responseObject.errorCode !== 0)\n\tconsole.log(\"onConnectionLost:\"+responseObject.errorMessage);\n};\nfunction onMessageArrived(message) {\n  console.log(\"onMessageArrived:\"+message.payloadString);\n  client.disconnect();\n};\n * 
\n * @namespace Paho\n */\n\n/* jshint shadow:true */\n(function ExportLibrary(root, factory) {\n\tif(typeof exports === \"object\" && typeof module === \"object\"){\n\t\tmodule.exports = factory();\n\t} else if (typeof define === \"function\" && define.amd){\n\t\tdefine(factory);\n\t} else if (typeof exports === \"object\"){\n\t\texports = factory();\n\t} else {\n\t\t//if (typeof root.Paho === \"undefined\"){\n\t\t//\troot.Paho = {};\n\t\t//}\n\t\troot.Paho = factory();\n\t}\n})(this, function LibraryFactory(){\n\n\n\tvar PahoMQTT = (function (global) {\n\n\t// Private variables below, these are only visible inside the function closure\n\t// which is used to define the module.\n\tvar version = \"@VERSION@-@BUILDLEVEL@\";\n\n\t/**\n\t * @private\n\t */\n\tvar localStorage = global.localStorage || (function () {\n\t\tvar data = {};\n\n\t\treturn {\n\t\t\tsetItem: function (key, item) { data[key] = item; },\n\t\t\tgetItem: function (key) { return data[key]; },\n\t\t\tremoveItem: function (key) { delete data[key]; },\n\t\t};\n\t})();\n\n\t\t/**\n\t * Unique message type identifiers, with associated\n\t * associated integer values.\n\t * @private\n\t */\n\t\tvar MESSAGE_TYPE = {\n\t\t\tCONNECT: 1,\n\t\t\tCONNACK: 2,\n\t\t\tPUBLISH: 3,\n\t\t\tPUBACK: 4,\n\t\t\tPUBREC: 5,\n\t\t\tPUBREL: 6,\n\t\t\tPUBCOMP: 7,\n\t\t\tSUBSCRIBE: 8,\n\t\t\tSUBACK: 9,\n\t\t\tUNSUBSCRIBE: 10,\n\t\t\tUNSUBACK: 11,\n\t\t\tPINGREQ: 12,\n\t\t\tPINGRESP: 13,\n\t\t\tDISCONNECT: 14\n\t\t};\n\n\t\t// Collection of utility methods used to simplify module code\n\t\t// and promote the DRY pattern.\n\n\t\t/**\n\t * Validate an object's parameter names to ensure they\n\t * match a list of expected variables name for this option\n\t * type. Used to ensure option object passed into the API don't\n\t * contain erroneous parameters.\n\t * @param {Object} obj - User options object\n\t * @param {Object} keys - valid keys and types that may exist in obj.\n\t * @throws {Error} Invalid option parameter found.\n\t * @private\n\t */\n\t\tvar validate = function(obj, keys) {\n\t\t\tfor (var key in obj) {\n\t\t\t\tif (obj.hasOwnProperty(key)) {\n\t\t\t\t\tif (keys.hasOwnProperty(key)) {\n\t\t\t\t\t\tif (typeof obj[key] !== keys[key])\n\t\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof obj[key], key]));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar errorStr = \"Unknown property, \" + key + \". Valid properties are:\";\n\t\t\t\t\t\tfor (var validKey in keys)\n\t\t\t\t\t\t\tif (keys.hasOwnProperty(validKey))\n\t\t\t\t\t\t\t\terrorStr = errorStr+\" \"+validKey;\n\t\t\t\t\t\tthrow new Error(errorStr);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t * Return a new function which runs the user function bound\n\t * to a fixed scope.\n\t * @param {function} User function\n\t * @param {object} Function scope\n\t * @return {function} User function bound to another scope\n\t * @private\n\t */\n\t\tvar scope = function (f, scope) {\n\t\t\treturn function () {\n\t\t\t\treturn f.apply(scope, arguments);\n\t\t\t};\n\t\t};\n\n\t\t/**\n\t * Unique message type identifiers, with associated\n\t * associated integer values.\n\t * @private\n\t */\n\t\tvar ERROR = {\n\t\t\tOK: {code:0, text:\"AMQJSC0000I OK.\"},\n\t\t\tCONNECT_TIMEOUT: {code:1, text:\"AMQJSC0001E Connect timed out.\"},\n\t\t\tSUBSCRIBE_TIMEOUT: {code:2, text:\"AMQJS0002E Subscribe timed out.\"},\n\t\t\tUNSUBSCRIBE_TIMEOUT: {code:3, text:\"AMQJS0003E Unsubscribe timed out.\"},\n\t\t\tPING_TIMEOUT: {code:4, text:\"AMQJS0004E Ping timed out.\"},\n\t\t\tINTERNAL_ERROR: {code:5, text:\"AMQJS0005E Internal error. Error Message: {0}, Stack trace: {1}\"},\n\t\t\tCONNACK_RETURNCODE: {code:6, text:\"AMQJS0006E Bad Connack return code:{0} {1}.\"},\n\t\t\tSOCKET_ERROR: {code:7, text:\"AMQJS0007E Socket error:{0}.\"},\n\t\t\tSOCKET_CLOSE: {code:8, text:\"AMQJS0008I Socket closed.\"},\n\t\t\tMALFORMED_UTF: {code:9, text:\"AMQJS0009E Malformed UTF data:{0} {1} {2}.\"},\n\t\t\tUNSUPPORTED: {code:10, text:\"AMQJS0010E {0} is not supported by this browser.\"},\n\t\t\tINVALID_STATE: {code:11, text:\"AMQJS0011E Invalid state {0}.\"},\n\t\t\tINVALID_TYPE: {code:12, text:\"AMQJS0012E Invalid type {0} for {1}.\"},\n\t\t\tINVALID_ARGUMENT: {code:13, text:\"AMQJS0013E Invalid argument {0} for {1}.\"},\n\t\t\tUNSUPPORTED_OPERATION: {code:14, text:\"AMQJS0014E Unsupported operation.\"},\n\t\t\tINVALID_STORED_DATA: {code:15, text:\"AMQJS0015E Invalid data in local storage key={0} value={1}.\"},\n\t\t\tINVALID_MQTT_MESSAGE_TYPE: {code:16, text:\"AMQJS0016E Invalid MQTT message type {0}.\"},\n\t\t\tMALFORMED_UNICODE: {code:17, text:\"AMQJS0017E Malformed Unicode string:{0} {1}.\"},\n\t\t\tBUFFER_FULL: {code:18, text:\"AMQJS0018E Message buffer is full, maximum buffer size: {0}.\"},\n\t\t};\n\n\t\t/** CONNACK RC Meaning. */\n\t\tvar CONNACK_RC = {\n\t\t\t0:\"Connection Accepted\",\n\t\t\t1:\"Connection Refused: unacceptable protocol version\",\n\t\t\t2:\"Connection Refused: identifier rejected\",\n\t\t\t3:\"Connection Refused: server unavailable\",\n\t\t\t4:\"Connection Refused: bad user name or password\",\n\t\t\t5:\"Connection Refused: not authorized\"\n\t\t};\n\n\t/**\n\t * Format an error message text.\n\t * @private\n\t * @param {error} ERROR value above.\n\t * @param {substitutions} [array] substituted into the text.\n\t * @return the text with the substitutions made.\n\t */\n\t\tvar format = function(error, substitutions) {\n\t\t\tvar text = error.text;\n\t\t\tif (substitutions) {\n\t\t\t\tvar field,start;\n\t\t\t\tfor (var i=0; i 0) {\n\t\t\t\t\t\tvar part1 = text.substring(0,start);\n\t\t\t\t\t\tvar part2 = text.substring(start+field.length);\n\t\t\t\t\t\ttext = part1+substitutions[i]+part2;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn text;\n\t\t};\n\n\t\t//MQTT protocol and version 6 M Q I s d p 3\n\t\tvar MqttProtoIdentifierv3 = [0x00,0x06,0x4d,0x51,0x49,0x73,0x64,0x70,0x03];\n\t\t//MQTT proto/version for 311 4 M Q T T 4\n\t\tvar MqttProtoIdentifierv4 = [0x00,0x04,0x4d,0x51,0x54,0x54,0x04];\n\n\t\t/**\n\t * Construct an MQTT wire protocol message.\n\t * @param type MQTT packet type.\n\t * @param options optional wire message attributes.\n\t *\n\t * Optional properties\n\t *\n\t * messageIdentifier: message ID in the range [0..65535]\n\t * payloadMessage:\tApplication Message - PUBLISH only\n\t * connectStrings:\tarray of 0 or more Strings to be put into the CONNECT payload\n\t * topics:\t\t\tarray of strings (SUBSCRIBE, UNSUBSCRIBE)\n\t * requestQoS:\t\tarray of QoS values [0..2]\n\t *\n\t * \"Flag\" properties\n\t * cleanSession:\ttrue if present / false if absent (CONNECT)\n\t * willMessage: \ttrue if present / false if absent (CONNECT)\n\t * isRetained:\t\ttrue if present / false if absent (CONNECT)\n\t * userName:\t\ttrue if present / false if absent (CONNECT)\n\t * password:\t\ttrue if present / false if absent (CONNECT)\n\t * keepAliveInterval:\tinteger [0..65535] (CONNECT)\n\t *\n\t * @private\n\t * @ignore\n\t */\n\t\tvar WireMessage = function (type, options) {\n\t\t\tthis.type = type;\n\t\t\tfor (var name in options) {\n\t\t\t\tif (options.hasOwnProperty(name)) {\n\t\t\t\t\tthis[name] = options[name];\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tWireMessage.prototype.encode = function() {\n\t\t// Compute the first byte of the fixed header\n\t\t\tvar first = ((this.type & 0x0f) << 4);\n\n\t\t\t/*\n\t\t * Now calculate the length of the variable header + payload by adding up the lengths\n\t\t * of all the component parts\n\t\t */\n\n\t\t\tvar remLength = 0;\n\t\t\tvar topicStrLength = [];\n\t\t\tvar destinationNameLength = 0;\n\t\t\tvar willMessagePayloadBytes;\n\n\t\t\t// if the message contains a messageIdentifier then we need two bytes for that\n\t\t\tif (this.messageIdentifier !== undefined)\n\t\t\t\tremLength += 2;\n\n\t\t\tswitch(this.type) {\n\t\t\t// If this a Connect then we need to include 12 bytes for its header\n\t\t\tcase MESSAGE_TYPE.CONNECT:\n\t\t\t\tswitch(this.mqttVersion) {\n\t\t\t\tcase 3:\n\t\t\t\t\tremLength += MqttProtoIdentifierv3.length + 3;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 4:\n\t\t\t\t\tremLength += MqttProtoIdentifierv4.length + 3;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tremLength += UTF8Length(this.clientId) + 2;\n\t\t\t\tif (this.willMessage !== undefined) {\n\t\t\t\t\tremLength += UTF8Length(this.willMessage.destinationName) + 2;\n\t\t\t\t\t// Will message is always a string, sent as UTF-8 characters with a preceding length.\n\t\t\t\t\twillMessagePayloadBytes = this.willMessage.payloadBytes;\n\t\t\t\t\tif (!(willMessagePayloadBytes instanceof Uint8Array))\n\t\t\t\t\t\twillMessagePayloadBytes = new Uint8Array(payloadBytes);\n\t\t\t\t\tremLength += willMessagePayloadBytes.byteLength +2;\n\t\t\t\t}\n\t\t\t\tif (this.userName !== undefined)\n\t\t\t\t\tremLength += UTF8Length(this.userName) + 2;\n\t\t\t\tif (this.password !== undefined)\n\t\t\t\t\tremLength += UTF8Length(this.password) + 2;\n\t\t\t\tbreak;\n\n\t\t\t// Subscribe, Unsubscribe can both contain topic strings\n\t\t\tcase MESSAGE_TYPE.SUBSCRIBE:\n\t\t\t\tfirst |= 0x02; // Qos = 1;\n\t\t\t\tfor ( var i = 0; i < this.topics.length; i++) {\n\t\t\t\t\ttopicStrLength[i] = UTF8Length(this.topics[i]);\n\t\t\t\t\tremLength += topicStrLength[i] + 2;\n\t\t\t\t}\n\t\t\t\tremLength += this.requestedQos.length; // 1 byte for each topic's Qos\n\t\t\t\t// QoS on Subscribe only\n\t\t\t\tbreak;\n\n\t\t\tcase MESSAGE_TYPE.UNSUBSCRIBE:\n\t\t\t\tfirst |= 0x02; // Qos = 1;\n\t\t\t\tfor ( var i = 0; i < this.topics.length; i++) {\n\t\t\t\t\ttopicStrLength[i] = UTF8Length(this.topics[i]);\n\t\t\t\t\tremLength += topicStrLength[i] + 2;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase MESSAGE_TYPE.PUBREL:\n\t\t\t\tfirst |= 0x02; // Qos = 1;\n\t\t\t\tbreak;\n\n\t\t\tcase MESSAGE_TYPE.PUBLISH:\n\t\t\t\tif (this.payloadMessage.duplicate) first |= 0x08;\n\t\t\t\tfirst = first |= (this.payloadMessage.qos << 1);\n\t\t\t\tif (this.payloadMessage.retained) first |= 0x01;\n\t\t\t\tdestinationNameLength = UTF8Length(this.payloadMessage.destinationName);\n\t\t\t\tremLength += destinationNameLength + 2;\n\t\t\t\tvar payloadBytes = this.payloadMessage.payloadBytes;\n\t\t\t\tremLength += payloadBytes.byteLength;\n\t\t\t\tif (payloadBytes instanceof ArrayBuffer)\n\t\t\t\t\tpayloadBytes = new Uint8Array(payloadBytes);\n\t\t\t\telse if (!(payloadBytes instanceof Uint8Array))\n\t\t\t\t\tpayloadBytes = new Uint8Array(payloadBytes.buffer);\n\t\t\t\tbreak;\n\n\t\t\tcase MESSAGE_TYPE.DISCONNECT:\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Now we can allocate a buffer for the message\n\n\t\t\tvar mbi = encodeMBI(remLength); // Convert the length to MQTT MBI format\n\t\t\tvar pos = mbi.length + 1; // Offset of start of variable header\n\t\t\tvar buffer = new ArrayBuffer(remLength + pos);\n\t\t\tvar byteStream = new Uint8Array(buffer); // view it as a sequence of bytes\n\n\t\t\t//Write the fixed header into the buffer\n\t\t\tbyteStream[0] = first;\n\t\t\tbyteStream.set(mbi,1);\n\n\t\t\t// If this is a PUBLISH then the variable header starts with a topic\n\t\t\tif (this.type == MESSAGE_TYPE.PUBLISH)\n\t\t\t\tpos = writeString(this.payloadMessage.destinationName, destinationNameLength, byteStream, pos);\n\t\t\t// If this is a CONNECT then the variable header contains the protocol name/version, flags and keepalive time\n\n\t\t\telse if (this.type == MESSAGE_TYPE.CONNECT) {\n\t\t\t\tswitch (this.mqttVersion) {\n\t\t\t\tcase 3:\n\t\t\t\t\tbyteStream.set(MqttProtoIdentifierv3, pos);\n\t\t\t\t\tpos += MqttProtoIdentifierv3.length;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 4:\n\t\t\t\t\tbyteStream.set(MqttProtoIdentifierv4, pos);\n\t\t\t\t\tpos += MqttProtoIdentifierv4.length;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tvar connectFlags = 0;\n\t\t\t\tif (this.cleanSession)\n\t\t\t\t\tconnectFlags = 0x02;\n\t\t\t\tif (this.willMessage !== undefined ) {\n\t\t\t\t\tconnectFlags |= 0x04;\n\t\t\t\t\tconnectFlags |= (this.willMessage.qos<<3);\n\t\t\t\t\tif (this.willMessage.retained) {\n\t\t\t\t\t\tconnectFlags |= 0x20;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (this.userName !== undefined)\n\t\t\t\t\tconnectFlags |= 0x80;\n\t\t\t\tif (this.password !== undefined)\n\t\t\t\t\tconnectFlags |= 0x40;\n\t\t\t\tbyteStream[pos++] = connectFlags;\n\t\t\t\tpos = writeUint16 (this.keepAliveInterval, byteStream, pos);\n\t\t\t}\n\n\t\t\t// Output the messageIdentifier - if there is one\n\t\t\tif (this.messageIdentifier !== undefined)\n\t\t\t\tpos = writeUint16 (this.messageIdentifier, byteStream, pos);\n\n\t\t\tswitch(this.type) {\n\t\t\tcase MESSAGE_TYPE.CONNECT:\n\t\t\t\tpos = writeString(this.clientId, UTF8Length(this.clientId), byteStream, pos);\n\t\t\t\tif (this.willMessage !== undefined) {\n\t\t\t\t\tpos = writeString(this.willMessage.destinationName, UTF8Length(this.willMessage.destinationName), byteStream, pos);\n\t\t\t\t\tpos = writeUint16(willMessagePayloadBytes.byteLength, byteStream, pos);\n\t\t\t\t\tbyteStream.set(willMessagePayloadBytes, pos);\n\t\t\t\t\tpos += willMessagePayloadBytes.byteLength;\n\n\t\t\t\t}\n\t\t\t\tif (this.userName !== undefined)\n\t\t\t\t\tpos = writeString(this.userName, UTF8Length(this.userName), byteStream, pos);\n\t\t\t\tif (this.password !== undefined)\n\t\t\t\t\tpos = writeString(this.password, UTF8Length(this.password), byteStream, pos);\n\t\t\t\tbreak;\n\n\t\t\tcase MESSAGE_TYPE.PUBLISH:\n\t\t\t\t// PUBLISH has a text or binary payload, if text do not add a 2 byte length field, just the UTF characters.\n\t\t\t\tbyteStream.set(payloadBytes, pos);\n\n\t\t\t\tbreak;\n\n\t\t\t\t// \t case MESSAGE_TYPE.PUBREC:\n\t\t\t\t// \t case MESSAGE_TYPE.PUBREL:\n\t\t\t\t// \t case MESSAGE_TYPE.PUBCOMP:\n\t\t\t\t// \t \tbreak;\n\n\t\t\tcase MESSAGE_TYPE.SUBSCRIBE:\n\t\t\t\t// SUBSCRIBE has a list of topic strings and request QoS\n\t\t\t\tfor (var i=0; i> 4;\n\t\t\tvar messageInfo = first &= 0x0f;\n\t\t\tpos += 1;\n\n\n\t\t\t// Decode the remaining length (MBI format)\n\n\t\t\tvar digit;\n\t\t\tvar remLength = 0;\n\t\t\tvar multiplier = 1;\n\t\t\tdo {\n\t\t\t\tif (pos == input.length) {\n\t\t\t\t\treturn [null,startingPos];\n\t\t\t\t}\n\t\t\t\tdigit = input[pos++];\n\t\t\t\tremLength += ((digit & 0x7F) * multiplier);\n\t\t\t\tmultiplier *= 128;\n\t\t\t} while ((digit & 0x80) !== 0);\n\n\t\t\tvar endPos = pos+remLength;\n\t\t\tif (endPos > input.length) {\n\t\t\t\treturn [null,startingPos];\n\t\t\t}\n\n\t\t\tvar wireMessage = new WireMessage(type);\n\t\t\tswitch(type) {\n\t\t\tcase MESSAGE_TYPE.CONNACK:\n\t\t\t\tvar connectAcknowledgeFlags = input[pos++];\n\t\t\t\tif (connectAcknowledgeFlags & 0x01)\n\t\t\t\t\twireMessage.sessionPresent = true;\n\t\t\t\twireMessage.returnCode = input[pos++];\n\t\t\t\tbreak;\n\n\t\t\tcase MESSAGE_TYPE.PUBLISH:\n\t\t\t\tvar qos = (messageInfo >> 1) & 0x03;\n\n\t\t\t\tvar len = readUint16(input, pos);\n\t\t\t\tpos += 2;\n\t\t\t\tvar topicName = parseUTF8(input, pos, len);\n\t\t\t\tpos += len;\n\t\t\t\t// If QoS 1 or 2 there will be a messageIdentifier\n\t\t\t\tif (qos > 0) {\n\t\t\t\t\twireMessage.messageIdentifier = readUint16(input, pos);\n\t\t\t\t\tpos += 2;\n\t\t\t\t}\n\t\t\t\tvar message = new PahoMQTT.Message(input.subarray(pos, endPos));\n\t\t\t\tif ((messageInfo & 0x01) == 0x01)\n\t\t\t\t\tmessage.retained = true;\n\t\t\t\tif ((messageInfo & 0x08) == 0x08)\n\t\t\t\t\tmessage.duplicate = true;\n\t\t\t\tmessage.qos = qos;\n\t\t\t\tmessage.destinationName = topicName;\n\t\t\t\twireMessage.payloadMessage = message;\n\t\t\t\tbreak;\n\n\t\t\tcase MESSAGE_TYPE.PUBACK:\n\t\t\tcase MESSAGE_TYPE.PUBREC:\n\t\t\tcase MESSAGE_TYPE.PUBREL:\n\t\t\tcase MESSAGE_TYPE.PUBCOMP:\n\t\t\tcase MESSAGE_TYPE.UNSUBACK:\n\t\t\t\twireMessage.messageIdentifier = readUint16(input, pos);\n\t\t\t\tbreak;\n\n\t\t\tcase MESSAGE_TYPE.SUBACK:\n\t\t\t\twireMessage.messageIdentifier = readUint16(input, pos);\n\t\t\t\tpos += 2;\n\t\t\t\twireMessage.returnCode = input.subarray(pos, endPos);\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn [wireMessage,endPos];\n\t\t}\n\n\t\tfunction writeUint16(input, buffer, offset) {\n\t\t\tbuffer[offset++] = input >> 8; //MSB\n\t\t\tbuffer[offset++] = input % 256; //LSB\n\t\t\treturn offset;\n\t\t}\n\n\t\tfunction writeString(input, utf8Length, buffer, offset) {\n\t\t\toffset = writeUint16(utf8Length, buffer, offset);\n\t\t\tstringToUTF8(input, buffer, offset);\n\t\t\treturn offset + utf8Length;\n\t\t}\n\n\t\tfunction readUint16(buffer, offset) {\n\t\t\treturn 256*buffer[offset] + buffer[offset+1];\n\t\t}\n\n\t\t/**\n\t * Encodes an MQTT Multi-Byte Integer\n\t * @private\n\t */\n\t\tfunction encodeMBI(number) {\n\t\t\tvar output = new Array(1);\n\t\t\tvar numBytes = 0;\n\n\t\t\tdo {\n\t\t\t\tvar digit = number % 128;\n\t\t\t\tnumber = number >> 7;\n\t\t\t\tif (number > 0) {\n\t\t\t\t\tdigit |= 0x80;\n\t\t\t\t}\n\t\t\t\toutput[numBytes++] = digit;\n\t\t\t} while ( (number > 0) && (numBytes<4) );\n\n\t\t\treturn output;\n\t\t}\n\n\t\t/**\n\t * Takes a String and calculates its length in bytes when encoded in UTF8.\n\t * @private\n\t */\n\t\tfunction UTF8Length(input) {\n\t\t\tvar output = 0;\n\t\t\tfor (var i = 0; i 0x7FF)\n\t\t\t\t{\n\t\t\t\t\t// Surrogate pair means its a 4 byte character\n\t\t\t\t\tif (0xD800 <= charCode && charCode <= 0xDBFF)\n\t\t\t\t\t{\n\t\t\t\t\t\ti++;\n\t\t\t\t\t\toutput++;\n\t\t\t\t\t}\n\t\t\t\t\toutput +=3;\n\t\t\t\t}\n\t\t\t\telse if (charCode > 0x7F)\n\t\t\t\t\toutput +=2;\n\t\t\t\telse\n\t\t\t\t\toutput++;\n\t\t\t}\n\t\t\treturn output;\n\t\t}\n\n\t\t/**\n\t * Takes a String and writes it into an array as UTF8 encoded bytes.\n\t * @private\n\t */\n\t\tfunction stringToUTF8(input, output, start) {\n\t\t\tvar pos = start;\n\t\t\tfor (var i = 0; i>6 & 0x1F | 0xC0;\n\t\t\t\t\toutput[pos++] = charCode & 0x3F | 0x80;\n\t\t\t\t} else if (charCode <= 0xFFFF) {\n\t\t\t\t\toutput[pos++] = charCode>>12 & 0x0F | 0xE0;\n\t\t\t\t\toutput[pos++] = charCode>>6 & 0x3F | 0x80;\n\t\t\t\t\toutput[pos++] = charCode & 0x3F | 0x80;\n\t\t\t\t} else {\n\t\t\t\t\toutput[pos++] = charCode>>18 & 0x07 | 0xF0;\n\t\t\t\t\toutput[pos++] = charCode>>12 & 0x3F | 0x80;\n\t\t\t\t\toutput[pos++] = charCode>>6 & 0x3F | 0x80;\n\t\t\t\t\toutput[pos++] = charCode & 0x3F | 0x80;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn output;\n\t\t}\n\n\t\tfunction parseUTF8(input, offset, length) {\n\t\t\tvar output = \"\";\n\t\t\tvar utf16;\n\t\t\tvar pos = offset;\n\n\t\t\twhile (pos < offset+length)\n\t\t\t{\n\t\t\t\tvar byte1 = input[pos++];\n\t\t\t\tif (byte1 < 128)\n\t\t\t\t\tutf16 = byte1;\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tvar byte2 = input[pos++]-128;\n\t\t\t\t\tif (byte2 < 0)\n\t\t\t\t\t\tthrow new Error(format(ERROR.MALFORMED_UTF, [byte1.toString(16), byte2.toString(16),\"\"]));\n\t\t\t\t\tif (byte1 < 0xE0) // 2 byte character\n\t\t\t\t\t\tutf16 = 64*(byte1-0xC0) + byte2;\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tvar byte3 = input[pos++]-128;\n\t\t\t\t\t\tif (byte3 < 0)\n\t\t\t\t\t\t\tthrow new Error(format(ERROR.MALFORMED_UTF, [byte1.toString(16), byte2.toString(16), byte3.toString(16)]));\n\t\t\t\t\t\tif (byte1 < 0xF0) // 3 byte character\n\t\t\t\t\t\t\tutf16 = 4096*(byte1-0xE0) + 64*byte2 + byte3;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvar byte4 = input[pos++]-128;\n\t\t\t\t\t\t\tif (byte4 < 0)\n\t\t\t\t\t\t\t\tthrow new Error(format(ERROR.MALFORMED_UTF, [byte1.toString(16), byte2.toString(16), byte3.toString(16), byte4.toString(16)]));\n\t\t\t\t\t\t\tif (byte1 < 0xF8) // 4 byte character\n\t\t\t\t\t\t\t\tutf16 = 262144*(byte1-0xF0) + 4096*byte2 + 64*byte3 + byte4;\n\t\t\t\t\t\t\telse // longer encodings are not supported\n\t\t\t\t\t\t\t\tthrow new Error(format(ERROR.MALFORMED_UTF, [byte1.toString(16), byte2.toString(16), byte3.toString(16), byte4.toString(16)]));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (utf16 > 0xFFFF) // 4 byte character - express as a surrogate pair\n\t\t\t\t{\n\t\t\t\t\tutf16 -= 0x10000;\n\t\t\t\t\toutput += String.fromCharCode(0xD800 + (utf16 >> 10)); // lead character\n\t\t\t\t\tutf16 = 0xDC00 + (utf16 & 0x3FF); // trail character\n\t\t\t\t}\n\t\t\t\toutput += String.fromCharCode(utf16);\n\t\t\t}\n\t\t\treturn output;\n\t\t}\n\n\t\t/**\n\t * Repeat keepalive requests, monitor responses.\n\t * @ignore\n\t */\n\t\tvar Pinger = function(client, keepAliveInterval) {\n\t\t\tthis._client = client;\n\t\t\tthis._keepAliveInterval = keepAliveInterval*1000;\n\t\t\tthis.isReset = false;\n\n\t\t\tvar pingReq = new WireMessage(MESSAGE_TYPE.PINGREQ).encode();\n\n\t\t\tvar doTimeout = function (pinger) {\n\t\t\t\treturn function () {\n\t\t\t\t\treturn doPing.apply(pinger);\n\t\t\t\t};\n\t\t\t};\n\n\t\t\t/** @ignore */\n\t\t\tvar doPing = function() {\n\t\t\t\tif (!this.isReset) {\n\t\t\t\t\tthis._client._trace(\"Pinger.doPing\", \"Timed out\");\n\t\t\t\t\tthis._client._disconnected( ERROR.PING_TIMEOUT.code , format(ERROR.PING_TIMEOUT));\n\t\t\t\t} else {\n\t\t\t\t\tthis.isReset = false;\n\t\t\t\t\tthis._client._trace(\"Pinger.doPing\", \"send PINGREQ\");\n\t\t\t\t\tthis._client.socket.send(pingReq);\n\t\t\t\t\tthis.timeout = setTimeout(doTimeout(this), this._keepAliveInterval);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tthis.reset = function() {\n\t\t\t\tthis.isReset = true;\n\t\t\t\tclearTimeout(this.timeout);\n\t\t\t\tif (this._keepAliveInterval > 0)\n\t\t\t\t\tthis.timeout = setTimeout(doTimeout(this), this._keepAliveInterval);\n\t\t\t};\n\n\t\t\tthis.cancel = function() {\n\t\t\t\tclearTimeout(this.timeout);\n\t\t\t};\n\t\t};\n\n\t\t/**\n\t * Monitor request completion.\n\t * @ignore\n\t */\n\t\tvar Timeout = function(client, timeoutSeconds, action, args) {\n\t\t\tif (!timeoutSeconds)\n\t\t\t\ttimeoutSeconds = 30;\n\n\t\t\tvar doTimeout = function (action, client, args) {\n\t\t\t\treturn function () {\n\t\t\t\t\treturn action.apply(client, args);\n\t\t\t\t};\n\t\t\t};\n\t\t\tthis.timeout = setTimeout(doTimeout(action, client, args), timeoutSeconds * 1000);\n\n\t\t\tthis.cancel = function() {\n\t\t\t\tclearTimeout(this.timeout);\n\t\t\t};\n\t\t};\n\n\t/**\n\t * Internal implementation of the Websockets MQTT V3.1 client.\n\t *\n\t * @name Paho.ClientImpl @constructor\n\t * @param {String} host the DNS nameof the webSocket host.\n\t * @param {Number} port the port number for that host.\n\t * @param {String} clientId the MQ client identifier.\n\t */\n\t\tvar ClientImpl = function (uri, host, port, path, clientId) {\n\t\t// Check dependencies are satisfied in this browser.\n\t\t\tif (!(\"WebSocket\" in global && global.WebSocket !== null)) {\n\t\t\t\tthrow new Error(format(ERROR.UNSUPPORTED, [\"WebSocket\"]));\n\t\t\t}\n\t\t\tif (!(\"ArrayBuffer\" in global && global.ArrayBuffer !== null)) {\n\t\t\t\tthrow new Error(format(ERROR.UNSUPPORTED, [\"ArrayBuffer\"]));\n\t\t\t}\n\t\t\tthis._trace(\"Paho.Client\", uri, host, port, path, clientId);\n\n\t\t\tthis.host = host;\n\t\t\tthis.port = port;\n\t\t\tthis.path = path;\n\t\t\tthis.uri = uri;\n\t\t\tthis.clientId = clientId;\n\t\t\tthis._wsuri = null;\n\n\t\t\t// Local storagekeys are qualified with the following string.\n\t\t\t// The conditional inclusion of path in the key is for backward\n\t\t\t// compatibility to when the path was not configurable and assumed to\n\t\t\t// be /mqtt\n\t\t\tthis._localKey=host+\":\"+port+(path!=\"/mqtt\"?\":\"+path:\"\")+\":\"+clientId+\":\";\n\n\t\t\t// Create private instance-only message queue\n\t\t\t// Internal queue of messages to be sent, in sending order.\n\t\t\tthis._msg_queue = [];\n\t\t\tthis._buffered_msg_queue = [];\n\n\t\t\t// Messages we have sent and are expecting a response for, indexed by their respective message ids.\n\t\t\tthis._sentMessages = {};\n\n\t\t\t// Messages we have received and acknowleged and are expecting a confirm message for\n\t\t\t// indexed by their respective message ids.\n\t\t\tthis._receivedMessages = {};\n\n\t\t\t// Internal list of callbacks to be executed when messages\n\t\t\t// have been successfully sent over web socket, e.g. disconnect\n\t\t\t// when it doesn't have to wait for ACK, just message is dispatched.\n\t\t\tthis._notify_msg_sent = {};\n\n\t\t\t// Unique identifier for SEND messages, incrementing\n\t\t\t// counter as messages are sent.\n\t\t\tthis._message_identifier = 1;\n\n\t\t\t// Used to determine the transmission sequence of stored sent messages.\n\t\t\tthis._sequence = 0;\n\n\n\t\t\t// Load the local state, if any, from the saved version, only restore state relevant to this client.\n\t\t\tfor (var key in localStorage)\n\t\t\t\tif ( key.indexOf(\"Sent:\"+this._localKey) === 0 || key.indexOf(\"Received:\"+this._localKey) === 0)\n\t\t\t\t\tthis.restore(key);\n\t\t};\n\n\t\t// Messaging Client public instance members.\n\t\tClientImpl.prototype.host = null;\n\t\tClientImpl.prototype.port = null;\n\t\tClientImpl.prototype.path = null;\n\t\tClientImpl.prototype.uri = null;\n\t\tClientImpl.prototype.clientId = null;\n\n\t\t// Messaging Client private instance members.\n\t\tClientImpl.prototype.socket = null;\n\t\t/* true once we have received an acknowledgement to a CONNECT packet. */\n\t\tClientImpl.prototype.connected = false;\n\t\t/* The largest message identifier allowed, may not be larger than 2**16 but\n\t\t * if set smaller reduces the maximum number of outbound messages allowed.\n\t\t */\n\t\tClientImpl.prototype.maxMessageIdentifier = 65536;\n\t\tClientImpl.prototype.connectOptions = null;\n\t\tClientImpl.prototype.hostIndex = null;\n\t\tClientImpl.prototype.onConnected = null;\n\t\tClientImpl.prototype.onConnectionLost = null;\n\t\tClientImpl.prototype.onMessageDelivered = null;\n\t\tClientImpl.prototype.onMessageArrived = null;\n\t\tClientImpl.prototype.traceFunction = null;\n\t\tClientImpl.prototype._msg_queue = null;\n\t\tClientImpl.prototype._buffered_msg_queue = null;\n\t\tClientImpl.prototype._connectTimeout = null;\n\t\t/* The sendPinger monitors how long we allow before we send data to prove to the server that we are alive. */\n\t\tClientImpl.prototype.sendPinger = null;\n\t\t/* The receivePinger monitors how long we allow before we require evidence that the server is alive. */\n\t\tClientImpl.prototype.receivePinger = null;\n\t\tClientImpl.prototype._reconnectInterval = 1; // Reconnect Delay, starts at 1 second\n\t\tClientImpl.prototype._reconnecting = false;\n\t\tClientImpl.prototype._reconnectTimeout = null;\n\t\tClientImpl.prototype.disconnectedPublishing = false;\n\t\tClientImpl.prototype.disconnectedBufferSize = 5000;\n\n\t\tClientImpl.prototype.receiveBuffer = null;\n\n\t\tClientImpl.prototype._traceBuffer = null;\n\t\tClientImpl.prototype._MAX_TRACE_ENTRIES = 100;\n\n\t\tClientImpl.prototype.connect = function (connectOptions) {\n\t\t\tvar connectOptionsMasked = this._traceMask(connectOptions, \"password\");\n\t\t\tthis._trace(\"Client.connect\", connectOptionsMasked, this.socket, this.connected);\n\n\t\t\tif (this.connected)\n\t\t\t\tthrow new Error(format(ERROR.INVALID_STATE, [\"already connected\"]));\n\t\t\tif (this.socket)\n\t\t\t\tthrow new Error(format(ERROR.INVALID_STATE, [\"already connected\"]));\n\n\t\t\tif (this._reconnecting) {\n\t\t\t// connect() function is called while reconnect is in progress.\n\t\t\t// Terminate the auto reconnect process to use new connect options.\n\t\t\t\tthis._reconnectTimeout.cancel();\n\t\t\t\tthis._reconnectTimeout = null;\n\t\t\t\tthis._reconnecting = false;\n\t\t\t}\n\n\t\t\tthis.connectOptions = connectOptions;\n\t\t\tthis._reconnectInterval = 1;\n\t\t\tthis._reconnecting = false;\n\t\t\tif (connectOptions.uris) {\n\t\t\t\tthis.hostIndex = 0;\n\t\t\t\tthis._doConnect(connectOptions.uris[0]);\n\t\t\t} else {\n\t\t\t\tthis._doConnect(this.uri);\n\t\t\t}\n\n\t\t};\n\n\t\tClientImpl.prototype.subscribe = function (filter, subscribeOptions) {\n\t\t\tthis._trace(\"Client.subscribe\", filter, subscribeOptions);\n\n\t\t\tif (!this.connected)\n\t\t\t\tthrow new Error(format(ERROR.INVALID_STATE, [\"not connected\"]));\n\n\t\t\tvar wireMessage = new WireMessage(MESSAGE_TYPE.SUBSCRIBE);\n\t\t\twireMessage.topics=[filter];\n\t\t\tif (subscribeOptions.qos !== undefined)\n\t\t\t\twireMessage.requestedQos = [subscribeOptions.qos];\n\t\t\telse\n\t\t\t\twireMessage.requestedQos = [0];\n\n\t\t\tif (subscribeOptions.onSuccess) {\n\t\t\t\twireMessage.onSuccess = function(grantedQos) {subscribeOptions.onSuccess({invocationContext:subscribeOptions.invocationContext,grantedQos:grantedQos});};\n\t\t\t}\n\n\t\t\tif (subscribeOptions.onFailure) {\n\t\t\t\twireMessage.onFailure = function(errorCode) {subscribeOptions.onFailure({invocationContext:subscribeOptions.invocationContext,errorCode:errorCode, errorMessage:format(errorCode)});};\n\t\t\t}\n\n\t\t\tif (subscribeOptions.timeout) {\n\t\t\t\twireMessage.timeOut = new Timeout(this, subscribeOptions.timeout, subscribeOptions.onFailure,\n\t\t\t\t\t[{invocationContext:subscribeOptions.invocationContext,\n\t\t\t\t\t\terrorCode:ERROR.SUBSCRIBE_TIMEOUT.code,\n\t\t\t\t\t\terrorMessage:format(ERROR.SUBSCRIBE_TIMEOUT)}]);\n\t\t\t}\n\n\t\t\t// All subscriptions return a SUBACK.\n\t\t\tthis._requires_ack(wireMessage);\n\t\t\tthis._schedule_message(wireMessage);\n\t\t};\n\n\t\t/** @ignore */\n\t\tClientImpl.prototype.unsubscribe = function(filter, unsubscribeOptions) {\n\t\t\tthis._trace(\"Client.unsubscribe\", filter, unsubscribeOptions);\n\n\t\t\tif (!this.connected)\n\t\t\t\tthrow new Error(format(ERROR.INVALID_STATE, [\"not connected\"]));\n\n\t\t\tvar wireMessage = new WireMessage(MESSAGE_TYPE.UNSUBSCRIBE);\n\t\t\twireMessage.topics = [filter];\n\n\t\t\tif (unsubscribeOptions.onSuccess) {\n\t\t\t\twireMessage.callback = function() {unsubscribeOptions.onSuccess({invocationContext:unsubscribeOptions.invocationContext});};\n\t\t\t}\n\t\t\tif (unsubscribeOptions.timeout) {\n\t\t\t\twireMessage.timeOut = new Timeout(this, unsubscribeOptions.timeout, unsubscribeOptions.onFailure,\n\t\t\t\t\t[{invocationContext:unsubscribeOptions.invocationContext,\n\t\t\t\t\t\terrorCode:ERROR.UNSUBSCRIBE_TIMEOUT.code,\n\t\t\t\t\t\terrorMessage:format(ERROR.UNSUBSCRIBE_TIMEOUT)}]);\n\t\t\t}\n\n\t\t\t// All unsubscribes return a SUBACK.\n\t\t\tthis._requires_ack(wireMessage);\n\t\t\tthis._schedule_message(wireMessage);\n\t\t};\n\n\t\tClientImpl.prototype.send = function (message) {\n\t\t\tthis._trace(\"Client.send\", message);\n\n\t\t\tvar wireMessage = new WireMessage(MESSAGE_TYPE.PUBLISH);\n\t\t\twireMessage.payloadMessage = message;\n\n\t\t\tif (this.connected) {\n\t\t\t// Mark qos 1 & 2 message as \"ACK required\"\n\t\t\t// For qos 0 message, invoke onMessageDelivered callback if there is one.\n\t\t\t// Then schedule the message.\n\t\t\t\tif (message.qos > 0) {\n\t\t\t\t\tthis._requires_ack(wireMessage);\n\t\t\t\t} else if (this.onMessageDelivered) {\n\t\t\t\t\tthis._notify_msg_sent[wireMessage] = this.onMessageDelivered(wireMessage.payloadMessage);\n\t\t\t\t}\n\t\t\t\tthis._schedule_message(wireMessage);\n\t\t\t} else {\n\t\t\t// Currently disconnected, will not schedule this message\n\t\t\t// Check if reconnecting is in progress and disconnected publish is enabled.\n\t\t\t\tif (this._reconnecting && this.disconnectedPublishing) {\n\t\t\t\t// Check the limit which include the \"required ACK\" messages\n\t\t\t\t\tvar messageCount = Object.keys(this._sentMessages).length + this._buffered_msg_queue.length;\n\t\t\t\t\tif (messageCount > this.disconnectedBufferSize) {\n\t\t\t\t\t\tthrow new Error(format(ERROR.BUFFER_FULL, [this.disconnectedBufferSize]));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (message.qos > 0) {\n\t\t\t\t\t\t// Mark this message as \"ACK required\"\n\t\t\t\t\t\t\tthis._requires_ack(wireMessage);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\twireMessage.sequence = ++this._sequence;\n\t\t\t\t\t\t\t// Add messages in fifo order to array, by adding to start\n\t\t\t\t\t\t\tthis._buffered_msg_queue.unshift(wireMessage);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(format(ERROR.INVALID_STATE, [\"not connected\"]));\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tClientImpl.prototype.disconnect = function () {\n\t\t\tthis._trace(\"Client.disconnect\");\n\n\t\t\tif (this._reconnecting) {\n\t\t\t// disconnect() function is called while reconnect is in progress.\n\t\t\t// Terminate the auto reconnect process.\n\t\t\t\tthis._reconnectTimeout.cancel();\n\t\t\t\tthis._reconnectTimeout = null;\n\t\t\t\tthis._reconnecting = false;\n\t\t\t}\n\n\t\t\tif (!this.socket)\n\t\t\t\tthrow new Error(format(ERROR.INVALID_STATE, [\"not connecting or connected\"]));\n\n\t\t\tvar wireMessage = new WireMessage(MESSAGE_TYPE.DISCONNECT);\n\n\t\t\t// Run the disconnected call back as soon as the message has been sent,\n\t\t\t// in case of a failure later on in the disconnect processing.\n\t\t\t// as a consequence, the _disconected call back may be run several times.\n\t\t\tthis._notify_msg_sent[wireMessage] = scope(this._disconnected, this);\n\n\t\t\tthis._schedule_message(wireMessage);\n\t\t};\n\n\t\tClientImpl.prototype.getTraceLog = function () {\n\t\t\tif ( this._traceBuffer !== null ) {\n\t\t\t\tthis._trace(\"Client.getTraceLog\", new Date());\n\t\t\t\tthis._trace(\"Client.getTraceLog in flight messages\", this._sentMessages.length);\n\t\t\t\tfor (var key in this._sentMessages)\n\t\t\t\t\tthis._trace(\"_sentMessages \",key, this._sentMessages[key]);\n\t\t\t\tfor (var key in this._receivedMessages)\n\t\t\t\t\tthis._trace(\"_receivedMessages \",key, this._receivedMessages[key]);\n\n\t\t\t\treturn this._traceBuffer;\n\t\t\t}\n\t\t};\n\n\t\tClientImpl.prototype.startTrace = function () {\n\t\t\tif ( this._traceBuffer === null ) {\n\t\t\t\tthis._traceBuffer = [];\n\t\t\t}\n\t\t\tthis._trace(\"Client.startTrace\", new Date(), version);\n\t\t};\n\n\t\tClientImpl.prototype.stopTrace = function () {\n\t\t\tdelete this._traceBuffer;\n\t\t};\n\n\t\tClientImpl.prototype._doConnect = function (wsurl) {\n\t\t// When the socket is open, this client will send the CONNECT WireMessage using the saved parameters.\n\t\t\tif (this.connectOptions.useSSL) {\n\t\t\t\tvar uriParts = wsurl.split(\":\");\n\t\t\t\turiParts[0] = \"wss\";\n\t\t\t\twsurl = uriParts.join(\":\");\n\t\t\t}\n\t\t\tthis._wsuri = wsurl;\n\t\t\tthis.connected = false;\n\n\n\n\t\t\tif (this.connectOptions.mqttVersion < 4) {\n\t\t\t\tthis.socket = new WebSocket(wsurl, [\"mqttv3.1\"]);\n\t\t\t} else {\n\t\t\t\tthis.socket = new WebSocket(wsurl, [\"mqtt\"]);\n\t\t\t}\n\t\t\tthis.socket.binaryType = \"arraybuffer\";\n\t\t\tthis.socket.onopen = scope(this._on_socket_open, this);\n\t\t\tthis.socket.onmessage = scope(this._on_socket_message, this);\n\t\t\tthis.socket.onerror = scope(this._on_socket_error, this);\n\t\t\tthis.socket.onclose = scope(this._on_socket_close, this);\n\n\t\t\tthis.sendPinger = new Pinger(this, this.connectOptions.keepAliveInterval);\n\t\t\tthis.receivePinger = new Pinger(this, this.connectOptions.keepAliveInterval);\n\t\t\tif (this._connectTimeout) {\n\t\t\t\tthis._connectTimeout.cancel();\n\t\t\t\tthis._connectTimeout = null;\n\t\t\t}\n\t\t\tthis._connectTimeout = new Timeout(this, this.connectOptions.timeout, this._disconnected, [ERROR.CONNECT_TIMEOUT.code, format(ERROR.CONNECT_TIMEOUT)]);\n\t\t};\n\n\n\t\t// Schedule a new message to be sent over the WebSockets\n\t\t// connection. CONNECT messages cause WebSocket connection\n\t\t// to be started. All other messages are queued internally\n\t\t// until this has happened. When WS connection starts, process\n\t\t// all outstanding messages.\n\t\tClientImpl.prototype._schedule_message = function (message) {\n\t\t\t// Add messages in fifo order to array, by adding to start\n\t\t\tthis._msg_queue.unshift(message);\n\t\t\t// Process outstanding messages in the queue if we have an open socket, and have received CONNACK.\n\t\t\tif (this.connected) {\n\t\t\t\tthis._process_queue();\n\t\t\t}\n\t\t};\n\n\t\tClientImpl.prototype.store = function(prefix, wireMessage) {\n\t\t\tvar storedMessage = {type:wireMessage.type, messageIdentifier:wireMessage.messageIdentifier, version:1};\n\n\t\t\tswitch(wireMessage.type) {\n\t\t\tcase MESSAGE_TYPE.PUBLISH:\n\t\t\t\tif(wireMessage.pubRecReceived)\n\t\t\t\t\tstoredMessage.pubRecReceived = true;\n\n\t\t\t\t// Convert the payload to a hex string.\n\t\t\t\tstoredMessage.payloadMessage = {};\n\t\t\t\tvar hex = \"\";\n\t\t\t\tvar messageBytes = wireMessage.payloadMessage.payloadBytes;\n\t\t\t\tfor (var i=0; i= 2) {\n\t\t\t\t\tvar x = parseInt(hex.substring(0, 2), 16);\n\t\t\t\t\thex = hex.substring(2, hex.length);\n\t\t\t\t\tbyteStream[i++] = x;\n\t\t\t\t}\n\t\t\t\tvar payloadMessage = new PahoMQTT.Message(byteStream);\n\t\t\t\tpayloadMessage.qos = storedMessage.payloadMessage.qos;\n\t\t\t\tpayloadMessage.destinationName = storedMessage.payloadMessage.destinationName;\n\t\t\t\tif (storedMessage.payloadMessage.duplicate)\n\t\t\t\t\tpayloadMessage.duplicate = true;\n\t\t\t\tif (storedMessage.payloadMessage.retained)\n\t\t\t\t\tpayloadMessage.retained = true;\n\t\t\t\twireMessage.payloadMessage = payloadMessage;\n\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tthrow Error(format(ERROR.INVALID_STORED_DATA, [key, value]));\n\t\t\t}\n\n\t\t\tif (key.indexOf(\"Sent:\"+this._localKey) === 0) {\n\t\t\t\twireMessage.payloadMessage.duplicate = true;\n\t\t\t\tthis._sentMessages[wireMessage.messageIdentifier] = wireMessage;\n\t\t\t} else if (key.indexOf(\"Received:\"+this._localKey) === 0) {\n\t\t\t\tthis._receivedMessages[wireMessage.messageIdentifier] = wireMessage;\n\t\t\t}\n\t\t};\n\n\t\tClientImpl.prototype._process_queue = function () {\n\t\t\tvar message = null;\n\n\t\t\t// Send all queued messages down socket connection\n\t\t\twhile ((message = this._msg_queue.pop())) {\n\t\t\t\tthis._socket_send(message);\n\t\t\t\t// Notify listeners that message was successfully sent\n\t\t\t\tif (this._notify_msg_sent[message]) {\n\t\t\t\t\tthis._notify_msg_sent[message]();\n\t\t\t\t\tdelete this._notify_msg_sent[message];\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t * Expect an ACK response for this message. Add message to the set of in progress\n\t * messages and set an unused identifier in this message.\n\t * @ignore\n\t */\n\t\tClientImpl.prototype._requires_ack = function (wireMessage) {\n\t\t\tvar messageCount = Object.keys(this._sentMessages).length;\n\t\t\tif (messageCount > this.maxMessageIdentifier)\n\t\t\t\tthrow Error (\"Too many messages:\"+messageCount);\n\n\t\t\twhile(this._sentMessages[this._message_identifier] !== undefined) {\n\t\t\t\tthis._message_identifier++;\n\t\t\t}\n\t\t\twireMessage.messageIdentifier = this._message_identifier;\n\t\t\tthis._sentMessages[wireMessage.messageIdentifier] = wireMessage;\n\t\t\tif (wireMessage.type === MESSAGE_TYPE.PUBLISH) {\n\t\t\t\tthis.store(\"Sent:\", wireMessage);\n\t\t\t}\n\t\t\tif (this._message_identifier === this.maxMessageIdentifier) {\n\t\t\t\tthis._message_identifier = 1;\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t * Called when the underlying websocket has been opened.\n\t * @ignore\n\t */\n\t\tClientImpl.prototype._on_socket_open = function () {\n\t\t// Create the CONNECT message object.\n\t\t\tvar wireMessage = new WireMessage(MESSAGE_TYPE.CONNECT, this.connectOptions);\n\t\t\twireMessage.clientId = this.clientId;\n\t\t\tthis._socket_send(wireMessage);\n\t\t};\n\n\t\t/**\n\t * Called when the underlying websocket has received a complete packet.\n\t * @ignore\n\t */\n\t\tClientImpl.prototype._on_socket_message = function (event) {\n\t\t\tthis._trace(\"Client._on_socket_message\", event.data);\n\t\t\tvar messages = this._deframeMessages(event.data);\n\t\t\tfor (var i = 0; i < messages.length; i+=1) {\n\t\t\t\tthis._handleMessage(messages[i]);\n\t\t\t}\n\t\t};\n\n\t\tClientImpl.prototype._deframeMessages = function(data) {\n\t\t\tvar byteArray = new Uint8Array(data);\n\t\t\tvar messages = [];\n\t\t\tif (this.receiveBuffer) {\n\t\t\t\tvar newData = new Uint8Array(this.receiveBuffer.length+byteArray.length);\n\t\t\t\tnewData.set(this.receiveBuffer);\n\t\t\t\tnewData.set(byteArray,this.receiveBuffer.length);\n\t\t\t\tbyteArray = newData;\n\t\t\t\tdelete this.receiveBuffer;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tvar offset = 0;\n\t\t\t\twhile(offset < byteArray.length) {\n\t\t\t\t\tvar result = decodeMessage(byteArray,offset);\n\t\t\t\t\tvar wireMessage = result[0];\n\t\t\t\t\toffset = result[1];\n\t\t\t\t\tif (wireMessage !== null) {\n\t\t\t\t\t\tmessages.push(wireMessage);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (offset < byteArray.length) {\n\t\t\t\t\tthis.receiveBuffer = byteArray.subarray(offset);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tvar errorStack = ((error.hasOwnProperty(\"stack\") == \"undefined\") ? error.stack.toString() : \"No Error Stack Available\");\n\t\t\t\tthis._disconnected(ERROR.INTERNAL_ERROR.code , format(ERROR.INTERNAL_ERROR, [error.message,errorStack]));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treturn messages;\n\t\t};\n\n\t\tClientImpl.prototype._handleMessage = function(wireMessage) {\n\n\t\t\tthis._trace(\"Client._handleMessage\", wireMessage);\n\n\t\t\ttry {\n\t\t\t\tswitch(wireMessage.type) {\n\t\t\t\tcase MESSAGE_TYPE.CONNACK:\n\t\t\t\t\tthis._connectTimeout.cancel();\n\t\t\t\t\tif (this._reconnectTimeout)\n\t\t\t\t\t\tthis._reconnectTimeout.cancel();\n\n\t\t\t\t\t// If we have started using clean session then clear up the local state.\n\t\t\t\t\tif (this.connectOptions.cleanSession) {\n\t\t\t\t\t\tfor (var key in this._sentMessages) {\n\t\t\t\t\t\t\tvar sentMessage = this._sentMessages[key];\n\t\t\t\t\t\t\tlocalStorage.removeItem(\"Sent:\"+this._localKey+sentMessage.messageIdentifier);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis._sentMessages = {};\n\n\t\t\t\t\t\tfor (var key in this._receivedMessages) {\n\t\t\t\t\t\t\tvar receivedMessage = this._receivedMessages[key];\n\t\t\t\t\t\t\tlocalStorage.removeItem(\"Received:\"+this._localKey+receivedMessage.messageIdentifier);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis._receivedMessages = {};\n\t\t\t\t\t}\n\t\t\t\t\t// Client connected and ready for business.\n\t\t\t\t\tif (wireMessage.returnCode === 0) {\n\n\t\t\t\t\t\tthis.connected = true;\n\t\t\t\t\t\t// Jump to the end of the list of uris and stop looking for a good host.\n\n\t\t\t\t\t\tif (this.connectOptions.uris)\n\t\t\t\t\t\t\tthis.hostIndex = this.connectOptions.uris.length;\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._disconnected(ERROR.CONNACK_RETURNCODE.code , format(ERROR.CONNACK_RETURNCODE, [wireMessage.returnCode, CONNACK_RC[wireMessage.returnCode]]));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Resend messages.\n\t\t\t\t\tvar sequencedMessages = [];\n\t\t\t\t\tfor (var msgId in this._sentMessages) {\n\t\t\t\t\t\tif (this._sentMessages.hasOwnProperty(msgId))\n\t\t\t\t\t\t\tsequencedMessages.push(this._sentMessages[msgId]);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Also schedule qos 0 buffered messages if any\n\t\t\t\t\tif (this._buffered_msg_queue.length > 0) {\n\t\t\t\t\t\tvar msg = null;\n\t\t\t\t\t\twhile ((msg = this._buffered_msg_queue.pop())) {\n\t\t\t\t\t\t\tsequencedMessages.push(msg);\n\t\t\t\t\t\t\tif (this.onMessageDelivered)\n\t\t\t\t\t\t\t\tthis._notify_msg_sent[msg] = this.onMessageDelivered(msg.payloadMessage);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Sort sentMessages into the original sent order.\n\t\t\t\t\tvar sequencedMessages = sequencedMessages.sort(function(a,b) {return a.sequence - b.sequence;} );\n\t\t\t\t\tfor (var i=0, len=sequencedMessages.length; i\n\t * Most applications will create just one Client object and then call its connect() method,\n\t * however applications can create more than one Client object if they wish.\n\t * In this case the combination of host, port and clientId attributes must be different for each Client object.\n\t *

\n\t * The send, subscribe and unsubscribe methods are implemented as asynchronous JavaScript methods\n\t * (even though the underlying protocol exchange might be synchronous in nature).\n\t * This means they signal their completion by calling back to the application,\n\t * via Success or Failure callback functions provided by the application on the method in question.\n\t * Such callbacks are called at most once per method invocation and do not persist beyond the lifetime\n\t * of the script that made the invocation.\n\t *

\n\t * In contrast there are some callback functions, most notably onMessageArrived,\n\t * that are defined on the {@link Paho.Client} object.\n\t * These may get called multiple times, and aren't directly related to specific method invocations made by the client.\n\t *\n\t * @name Paho.Client\n\t *\n\t * @constructor\n\t *\n\t * @param {string} host - the address of the messaging server, as a fully qualified WebSocket URI, as a DNS name or dotted decimal IP address.\n\t * @param {number} port - the port number to connect to - only required if host is not a URI\n\t * @param {string} path - the path on the host to connect to - only used if host is not a URI. Default: '/mqtt'.\n\t * @param {string} clientId - the Messaging client identifier, between 1 and 23 characters in length.\n\t *\n\t * @property {string} host - read only the server's DNS hostname or dotted decimal IP address.\n\t * @property {number} port - read only the server's port.\n\t * @property {string} path - read only the server's path.\n\t * @property {string} clientId - read only used when connecting to the server.\n\t * @property {function} onConnectionLost - called when a connection has been lost.\n\t * after a connect() method has succeeded.\n\t * Establish the call back used when a connection has been lost. The connection may be\n\t * lost because the client initiates a disconnect or because the server or network\n\t * cause the client to be disconnected. The disconnect call back may be called without\n\t * the connectionComplete call back being invoked if, for example the client fails to\n\t * connect.\n\t * A single response object parameter is passed to the onConnectionLost callback containing the following fields:\n\t *

    \n\t *
  1. errorCode\n\t *
  2. errorMessage\n\t *
\n\t * @property {function} onMessageDelivered - called when a message has been delivered.\n\t * All processing that this Client will ever do has been completed. So, for example,\n\t * in the case of a Qos=2 message sent by this client, the PubComp flow has been received from the server\n\t * and the message has been removed from persistent storage before this callback is invoked.\n\t * Parameters passed to the onMessageDelivered callback are:\n\t *
    \n\t *
  1. {@link Paho.Message} that was delivered.\n\t *
\n\t * @property {function} onMessageArrived - called when a message has arrived in this Paho.client.\n\t * Parameters passed to the onMessageArrived callback are:\n\t *
    \n\t *
  1. {@link Paho.Message} that has arrived.\n\t *
\n\t * @property {function} onConnected - called when a connection is successfully made to the server.\n\t * after a connect() method.\n\t * Parameters passed to the onConnected callback are:\n\t *
    \n\t *
  1. reconnect (boolean) - If true, the connection was the result of a reconnect.
  2. \n\t *
  3. URI (string) - The URI used to connect to the server.
  4. \n\t *
\n\t * @property {boolean} disconnectedPublishing - if set, will enable disconnected publishing in\n\t * in the event that the connection to the server is lost.\n\t * @property {number} disconnectedBufferSize - Used to set the maximum number of messages that the disconnected\n\t * buffer will hold before rejecting new messages. Default size: 5000 messages\n\t * @property {function} trace - called whenever trace is called. TODO\n\t */\n\t\tvar Client = function (host, port, path, clientId) {\n\n\t\t\tvar uri;\n\n\t\t\tif (typeof host !== \"string\")\n\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof host, \"host\"]));\n\n\t\t\tif (arguments.length == 2) {\n\t\t\t// host: must be full ws:// uri\n\t\t\t// port: clientId\n\t\t\t\tclientId = port;\n\t\t\t\turi = host;\n\t\t\t\tvar match = uri.match(/^(wss?):\\/\\/((\\[(.+)\\])|([^\\/]+?))(:(\\d+))?(\\/.*)$/);\n\t\t\t\tif (match) {\n\t\t\t\t\thost = match[4]||match[2];\n\t\t\t\t\tport = parseInt(match[7]);\n\t\t\t\t\tpath = match[8];\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT,[host,\"host\"]));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (arguments.length == 3) {\n\t\t\t\t\tclientId = path;\n\t\t\t\t\tpath = \"/mqtt\";\n\t\t\t\t}\n\t\t\t\tif (typeof port !== \"number\" || port < 0)\n\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof port, \"port\"]));\n\t\t\t\tif (typeof path !== \"string\")\n\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof path, \"path\"]));\n\n\t\t\t\tvar ipv6AddSBracket = (host.indexOf(\":\") !== -1 && host.slice(0,1) !== \"[\" && host.slice(-1) !== \"]\");\n\t\t\t\turi = \"ws://\"+(ipv6AddSBracket?\"[\"+host+\"]\":host)+\":\"+port+path;\n\t\t\t}\n\n\t\t\tvar clientIdLength = 0;\n\t\t\tfor (var i = 0; i 65535)\n\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT, [clientId, \"clientId\"]));\n\n\t\t\tvar client = new ClientImpl(uri, host, port, path, clientId);\n\n\t\t\t//Public Properties\n\t\t\tObject.defineProperties(this,{\n\t\t\t\t\"host\":{\n\t\t\t\t\tget: function() { return host; },\n\t\t\t\t\tset: function() { throw new Error(format(ERROR.UNSUPPORTED_OPERATION)); }\n\t\t\t\t},\n\t\t\t\t\"port\":{\n\t\t\t\t\tget: function() { return port; },\n\t\t\t\t\tset: function() { throw new Error(format(ERROR.UNSUPPORTED_OPERATION)); }\n\t\t\t\t},\n\t\t\t\t\"path\":{\n\t\t\t\t\tget: function() { return path; },\n\t\t\t\t\tset: function() { throw new Error(format(ERROR.UNSUPPORTED_OPERATION)); }\n\t\t\t\t},\n\t\t\t\t\"uri\":{\n\t\t\t\t\tget: function() { return uri; },\n\t\t\t\t\tset: function() { throw new Error(format(ERROR.UNSUPPORTED_OPERATION)); }\n\t\t\t\t},\n\t\t\t\t\"clientId\":{\n\t\t\t\t\tget: function() { return client.clientId; },\n\t\t\t\t\tset: function() { throw new Error(format(ERROR.UNSUPPORTED_OPERATION)); }\n\t\t\t\t},\n\t\t\t\t\"onConnected\":{\n\t\t\t\t\tget: function() { return client.onConnected; },\n\t\t\t\t\tset: function(newOnConnected) {\n\t\t\t\t\t\tif (typeof newOnConnected === \"function\")\n\t\t\t\t\t\t\tclient.onConnected = newOnConnected;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof newOnConnected, \"onConnected\"]));\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"disconnectedPublishing\":{\n\t\t\t\t\tget: function() { return client.disconnectedPublishing; },\n\t\t\t\t\tset: function(newDisconnectedPublishing) {\n\t\t\t\t\t\tclient.disconnectedPublishing = newDisconnectedPublishing;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"disconnectedBufferSize\":{\n\t\t\t\t\tget: function() { return client.disconnectedBufferSize; },\n\t\t\t\t\tset: function(newDisconnectedBufferSize) {\n\t\t\t\t\t\tclient.disconnectedBufferSize = newDisconnectedBufferSize;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"onConnectionLost\":{\n\t\t\t\t\tget: function() { return client.onConnectionLost; },\n\t\t\t\t\tset: function(newOnConnectionLost) {\n\t\t\t\t\t\tif (typeof newOnConnectionLost === \"function\")\n\t\t\t\t\t\t\tclient.onConnectionLost = newOnConnectionLost;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof newOnConnectionLost, \"onConnectionLost\"]));\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"onMessageDelivered\":{\n\t\t\t\t\tget: function() { return client.onMessageDelivered; },\n\t\t\t\t\tset: function(newOnMessageDelivered) {\n\t\t\t\t\t\tif (typeof newOnMessageDelivered === \"function\")\n\t\t\t\t\t\t\tclient.onMessageDelivered = newOnMessageDelivered;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof newOnMessageDelivered, \"onMessageDelivered\"]));\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"onMessageArrived\":{\n\t\t\t\t\tget: function() { return client.onMessageArrived; },\n\t\t\t\t\tset: function(newOnMessageArrived) {\n\t\t\t\t\t\tif (typeof newOnMessageArrived === \"function\")\n\t\t\t\t\t\t\tclient.onMessageArrived = newOnMessageArrived;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof newOnMessageArrived, \"onMessageArrived\"]));\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"trace\":{\n\t\t\t\t\tget: function() { return client.traceFunction; },\n\t\t\t\t\tset: function(trace) {\n\t\t\t\t\t\tif(typeof trace === \"function\"){\n\t\t\t\t\t\t\tclient.traceFunction = trace;\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof trace, \"onTrace\"]));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t/**\n\t\t * Connect this Messaging client to its server.\n\t\t *\n\t\t * @name Paho.Client#connect\n\t\t * @function\n\t\t * @param {object} connectOptions - Attributes used with the connection.\n\t\t * @param {number} connectOptions.timeout - If the connect has not succeeded within this\n\t\t * number of seconds, it is deemed to have failed.\n\t\t * The default is 30 seconds.\n\t\t * @param {string} connectOptions.userName - Authentication username for this connection.\n\t\t * @param {string} connectOptions.password - Authentication password for this connection.\n\t\t * @param {Paho.Message} connectOptions.willMessage - sent by the server when the client\n\t\t * disconnects abnormally.\n\t\t * @param {number} connectOptions.keepAliveInterval - the server disconnects this client if\n\t\t * there is no activity for this number of seconds.\n\t\t * The default value of 60 seconds is assumed if not set.\n\t\t * @param {boolean} connectOptions.cleanSession - if true(default) the client and server\n\t\t * persistent state is deleted on successful connect.\n\t\t * @param {boolean} connectOptions.useSSL - if present and true, use an SSL Websocket connection.\n\t\t * @param {object} connectOptions.invocationContext - passed to the onSuccess callback or onFailure callback.\n\t\t * @param {function} connectOptions.onSuccess - called when the connect acknowledgement\n\t\t * has been received from the server.\n\t\t * A single response object parameter is passed to the onSuccess callback containing the following fields:\n\t\t *
    \n\t\t *
  1. invocationContext as passed in to the onSuccess method in the connectOptions.\n\t\t *
\n\t * @param {function} connectOptions.onFailure - called when the connect request has failed or timed out.\n\t\t * A single response object parameter is passed to the onFailure callback containing the following fields:\n\t\t *
    \n\t\t *
  1. invocationContext as passed in to the onFailure method in the connectOptions.\n\t\t *
  2. errorCode a number indicating the nature of the error.\n\t\t *
  3. errorMessage text describing the error.\n\t\t *
\n\t * @param {array} connectOptions.hosts - If present this contains either a set of hostnames or fully qualified\n\t\t * WebSocket URIs (ws://iot.eclipse.org:80/ws), that are tried in order in place\n\t\t * of the host and port paramater on the construtor. The hosts are tried one at at time in order until\n\t\t * one of then succeeds.\n\t * @param {array} connectOptions.ports - If present the set of ports matching the hosts. If hosts contains URIs, this property\n\t\t * is not used.\n\t * @param {boolean} connectOptions.reconnect - Sets whether the client will automatically attempt to reconnect\n\t * to the server if the connection is lost.\n\t *
    \n\t *
  • If set to false, the client will not attempt to automatically reconnect to the server in the event that the\n\t * connection is lost.
  • \n\t *
  • If set to true, in the event that the connection is lost, the client will attempt to reconnect to the server.\n\t * It will initially wait 1 second before it attempts to reconnect, for every failed reconnect attempt, the delay\n\t * will double until it is at 2 minutes at which point the delay will stay at 2 minutes.
  • \n\t *
\n\t * @param {number} connectOptions.mqttVersion - The version of MQTT to use to connect to the MQTT Broker.\n\t *
    \n\t *
  • 3 - MQTT V3.1
  • \n\t *
  • 4 - MQTT V3.1.1
  • \n\t *
\n\t * @param {boolean} connectOptions.mqttVersionExplicit - If set to true, will force the connection to use the\n\t * selected MQTT Version or will fail to connect.\n\t * @param {array} connectOptions.uris - If present, should contain a list of fully qualified WebSocket uris\n\t * (e.g. ws://iot.eclipse.org:80/ws), that are tried in order in place of the host and port parameter of the construtor.\n\t * The uris are tried one at a time in order until one of them succeeds. Do not use this in conjunction with hosts as\n\t * the hosts array will be converted to uris and will overwrite this property.\n\t\t * @throws {InvalidState} If the client is not in disconnected state. The client must have received connectionLost\n\t\t * or disconnected before calling connect for a second or subsequent time.\n\t\t */\n\t\t\tthis.connect = function (connectOptions) {\n\t\t\t\tconnectOptions = connectOptions || {} ;\n\t\t\t\tvalidate(connectOptions, {timeout:\"number\",\n\t\t\t\t\tuserName:\"string\",\n\t\t\t\t\tpassword:\"string\",\n\t\t\t\t\twillMessage:\"object\",\n\t\t\t\t\tkeepAliveInterval:\"number\",\n\t\t\t\t\tcleanSession:\"boolean\",\n\t\t\t\t\tuseSSL:\"boolean\",\n\t\t\t\t\tinvocationContext:\"object\",\n\t\t\t\t\tonSuccess:\"function\",\n\t\t\t\t\tonFailure:\"function\",\n\t\t\t\t\thosts:\"object\",\n\t\t\t\t\tports:\"object\",\n\t\t\t\t\treconnect:\"boolean\",\n\t\t\t\t\tmqttVersion:\"number\",\n\t\t\t\t\tmqttVersionExplicit:\"boolean\",\n\t\t\t\t\turis: \"object\"});\n\n\t\t\t\t// If no keep alive interval is set, assume 60 seconds.\n\t\t\t\tif (connectOptions.keepAliveInterval === undefined)\n\t\t\t\t\tconnectOptions.keepAliveInterval = 60;\n\n\t\t\t\tif (connectOptions.mqttVersion > 4 || connectOptions.mqttVersion < 3) {\n\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT, [connectOptions.mqttVersion, \"connectOptions.mqttVersion\"]));\n\t\t\t\t}\n\n\t\t\t\tif (connectOptions.mqttVersion === undefined) {\n\t\t\t\t\tconnectOptions.mqttVersionExplicit = false;\n\t\t\t\t\tconnectOptions.mqttVersion = 4;\n\t\t\t\t} else {\n\t\t\t\t\tconnectOptions.mqttVersionExplicit = true;\n\t\t\t\t}\n\n\t\t\t\t//Check that if password is set, so is username\n\t\t\t\tif (connectOptions.password !== undefined && connectOptions.userName === undefined)\n\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT, [connectOptions.password, \"connectOptions.password\"]));\n\n\t\t\t\tif (connectOptions.willMessage) {\n\t\t\t\t\tif (!(connectOptions.willMessage instanceof Message))\n\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [connectOptions.willMessage, \"connectOptions.willMessage\"]));\n\t\t\t\t\t// The will message must have a payload that can be represented as a string.\n\t\t\t\t\t// Cause the willMessage to throw an exception if this is not the case.\n\t\t\t\t\tconnectOptions.willMessage.stringPayload = null;\n\n\t\t\t\t\tif (typeof connectOptions.willMessage.destinationName === \"undefined\")\n\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof connectOptions.willMessage.destinationName, \"connectOptions.willMessage.destinationName\"]));\n\t\t\t\t}\n\t\t\t\tif (typeof connectOptions.cleanSession === \"undefined\")\n\t\t\t\t\tconnectOptions.cleanSession = true;\n\t\t\t\tif (connectOptions.hosts) {\n\n\t\t\t\t\tif (!(connectOptions.hosts instanceof Array) )\n\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT, [connectOptions.hosts, \"connectOptions.hosts\"]));\n\t\t\t\t\tif (connectOptions.hosts.length <1 )\n\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT, [connectOptions.hosts, \"connectOptions.hosts\"]));\n\n\t\t\t\t\tvar usingURIs = false;\n\t\t\t\t\tfor (var i = 0; i\n\t\t * @param {object} subscribeOptions - used to control the subscription\n\t\t *\n\t\t * @param {number} subscribeOptions.qos - the maximum qos of any publications sent\n\t\t * as a result of making this subscription.\n\t\t * @param {object} subscribeOptions.invocationContext - passed to the onSuccess callback\n\t\t * or onFailure callback.\n\t\t * @param {function} subscribeOptions.onSuccess - called when the subscribe acknowledgement\n\t\t * has been received from the server.\n\t\t * A single response object parameter is passed to the onSuccess callback containing the following fields:\n\t\t *
    \n\t\t *
  1. invocationContext if set in the subscribeOptions.\n\t\t *
\n\t\t * @param {function} subscribeOptions.onFailure - called when the subscribe request has failed or timed out.\n\t\t * A single response object parameter is passed to the onFailure callback containing the following fields:\n\t\t *
    \n\t\t *
  1. invocationContext - if set in the subscribeOptions.\n\t\t *
  2. errorCode - a number indicating the nature of the error.\n\t\t *
  3. errorMessage - text describing the error.\n\t\t *
\n\t\t * @param {number} subscribeOptions.timeout - which, if present, determines the number of\n\t\t * seconds after which the onFailure calback is called.\n\t\t * The presence of a timeout does not prevent the onSuccess\n\t\t * callback from being called when the subscribe completes.\n\t\t * @throws {InvalidState} if the client is not in connected state.\n\t\t */\n\t\t\tthis.subscribe = function (filter, subscribeOptions) {\n\t\t\t\tif (typeof filter !== \"string\")\n\t\t\t\t\tthrow new Error(\"Invalid argument:\"+filter);\n\t\t\t\tsubscribeOptions = subscribeOptions || {} ;\n\t\t\t\tvalidate(subscribeOptions, {qos:\"number\",\n\t\t\t\t\tinvocationContext:\"object\",\n\t\t\t\t\tonSuccess:\"function\",\n\t\t\t\t\tonFailure:\"function\",\n\t\t\t\t\ttimeout:\"number\"\n\t\t\t\t});\n\t\t\t\tif (subscribeOptions.timeout && !subscribeOptions.onFailure)\n\t\t\t\t\tthrow new Error(\"subscribeOptions.timeout specified with no onFailure callback.\");\n\t\t\t\tif (typeof subscribeOptions.qos !== \"undefined\" && !(subscribeOptions.qos === 0 || subscribeOptions.qos === 1 || subscribeOptions.qos === 2 ))\n\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT, [subscribeOptions.qos, \"subscribeOptions.qos\"]));\n\t\t\t\tclient.subscribe(filter, subscribeOptions);\n\t\t\t};\n\n\t\t\t/**\n\t\t * Unsubscribe for messages, stop receiving messages sent to destinations described by the filter.\n\t\t *\n\t\t * @name Paho.Client#unsubscribe\n\t\t * @function\n\t\t * @param {string} filter - describing the destinations to receive messages from.\n\t\t * @param {object} unsubscribeOptions - used to control the subscription\n\t\t * @param {object} unsubscribeOptions.invocationContext - passed to the onSuccess callback\n\t\t\t\t\t\t\t\t\t\t\t or onFailure callback.\n\t\t * @param {function} unsubscribeOptions.onSuccess - called when the unsubscribe acknowledgement has been received from the server.\n\t\t * A single response object parameter is passed to the\n\t\t * onSuccess callback containing the following fields:\n\t\t *
    \n\t\t *
  1. invocationContext - if set in the unsubscribeOptions.\n\t\t *
\n\t\t * @param {function} unsubscribeOptions.onFailure called when the unsubscribe request has failed or timed out.\n\t\t * A single response object parameter is passed to the onFailure callback containing the following fields:\n\t\t *
    \n\t\t *
  1. invocationContext - if set in the unsubscribeOptions.\n\t\t *
  2. errorCode - a number indicating the nature of the error.\n\t\t *
  3. errorMessage - text describing the error.\n\t\t *
\n\t\t * @param {number} unsubscribeOptions.timeout - which, if present, determines the number of seconds\n\t\t * after which the onFailure callback is called. The presence of\n\t\t * a timeout does not prevent the onSuccess callback from being\n\t\t * called when the unsubscribe completes\n\t\t * @throws {InvalidState} if the client is not in connected state.\n\t\t */\n\t\t\tthis.unsubscribe = function (filter, unsubscribeOptions) {\n\t\t\t\tif (typeof filter !== \"string\")\n\t\t\t\t\tthrow new Error(\"Invalid argument:\"+filter);\n\t\t\t\tunsubscribeOptions = unsubscribeOptions || {} ;\n\t\t\t\tvalidate(unsubscribeOptions, {invocationContext:\"object\",\n\t\t\t\t\tonSuccess:\"function\",\n\t\t\t\t\tonFailure:\"function\",\n\t\t\t\t\ttimeout:\"number\"\n\t\t\t\t});\n\t\t\t\tif (unsubscribeOptions.timeout && !unsubscribeOptions.onFailure)\n\t\t\t\t\tthrow new Error(\"unsubscribeOptions.timeout specified with no onFailure callback.\");\n\t\t\t\tclient.unsubscribe(filter, unsubscribeOptions);\n\t\t\t};\n\n\t\t\t/**\n\t\t * Send a message to the consumers of the destination in the Message.\n\t\t *\n\t\t * @name Paho.Client#send\n\t\t * @function\n\t\t * @param {string|Paho.Message} topic - mandatory The name of the destination to which the message is to be sent.\n\t\t * \t\t\t\t\t - If it is the only parameter, used as Paho.Message object.\n\t\t * @param {String|ArrayBuffer} payload - The message data to be sent.\n\t\t * @param {number} qos The Quality of Service used to deliver the message.\n\t\t * \t\t
\n\t\t * \t\t\t
0 Best effort (default).\n\t\t * \t\t\t
1 At least once.\n\t\t * \t\t\t
2 Exactly once.\n\t\t * \t\t
\n\t\t * @param {Boolean} retained If true, the message is to be retained by the server and delivered\n\t\t * to both current and future subscriptions.\n\t\t * If false the server only delivers the message to current subscribers, this is the default for new Messages.\n\t\t * A received message has the retained boolean set to true if the message was published\n\t\t * with the retained boolean set to true\n\t\t * and the subscrption was made after the message has been published.\n\t\t * @throws {InvalidState} if the client is not connected.\n\t\t */\n\t\t\tthis.send = function (topic,payload,qos,retained) {\n\t\t\t\tvar message ;\n\n\t\t\t\tif(arguments.length === 0){\n\t\t\t\t\tthrow new Error(\"Invalid argument.\"+\"length\");\n\n\t\t\t\t}else if(arguments.length == 1) {\n\n\t\t\t\t\tif (!(topic instanceof Message) && (typeof topic !== \"string\"))\n\t\t\t\t\t\tthrow new Error(\"Invalid argument:\"+ typeof topic);\n\n\t\t\t\t\tmessage = topic;\n\t\t\t\t\tif (typeof message.destinationName === \"undefined\")\n\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT,[message.destinationName,\"Message.destinationName\"]));\n\t\t\t\t\tclient.send(message);\n\n\t\t\t\t}else {\n\t\t\t\t//parameter checking in Message object\n\t\t\t\t\tmessage = new Message(payload);\n\t\t\t\t\tmessage.destinationName = topic;\n\t\t\t\t\tif(arguments.length >= 3)\n\t\t\t\t\t\tmessage.qos = qos;\n\t\t\t\t\tif(arguments.length >= 4)\n\t\t\t\t\t\tmessage.retained = retained;\n\t\t\t\t\tclient.send(message);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t/**\n\t\t * Publish a message to the consumers of the destination in the Message.\n\t\t * Synonym for Paho.Mqtt.Client#send\n\t\t *\n\t\t * @name Paho.Client#publish\n\t\t * @function\n\t\t * @param {string|Paho.Message} topic - mandatory The name of the topic to which the message is to be published.\n\t\t * \t\t\t\t\t - If it is the only parameter, used as Paho.Message object.\n\t\t * @param {String|ArrayBuffer} payload - The message data to be published.\n\t\t * @param {number} qos The Quality of Service used to deliver the message.\n\t\t * \t\t
\n\t\t * \t\t\t
0 Best effort (default).\n\t\t * \t\t\t
1 At least once.\n\t\t * \t\t\t
2 Exactly once.\n\t\t * \t\t
\n\t\t * @param {Boolean} retained If true, the message is to be retained by the server and delivered\n\t\t * to both current and future subscriptions.\n\t\t * If false the server only delivers the message to current subscribers, this is the default for new Messages.\n\t\t * A received message has the retained boolean set to true if the message was published\n\t\t * with the retained boolean set to true\n\t\t * and the subscrption was made after the message has been published.\n\t\t * @throws {InvalidState} if the client is not connected.\n\t\t */\n\t\t\tthis.publish = function(topic,payload,qos,retained) {\n\t\t\t\tvar message ;\n\n\t\t\t\tif(arguments.length === 0){\n\t\t\t\t\tthrow new Error(\"Invalid argument.\"+\"length\");\n\n\t\t\t\t}else if(arguments.length == 1) {\n\n\t\t\t\t\tif (!(topic instanceof Message) && (typeof topic !== \"string\"))\n\t\t\t\t\t\tthrow new Error(\"Invalid argument:\"+ typeof topic);\n\n\t\t\t\t\tmessage = topic;\n\t\t\t\t\tif (typeof message.destinationName === \"undefined\")\n\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT,[message.destinationName,\"Message.destinationName\"]));\n\t\t\t\t\tclient.send(message);\n\n\t\t\t\t}else {\n\t\t\t\t\t//parameter checking in Message object\n\t\t\t\t\tmessage = new Message(payload);\n\t\t\t\t\tmessage.destinationName = topic;\n\t\t\t\t\tif(arguments.length >= 3)\n\t\t\t\t\t\tmessage.qos = qos;\n\t\t\t\t\tif(arguments.length >= 4)\n\t\t\t\t\t\tmessage.retained = retained;\n\t\t\t\t\tclient.send(message);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t/**\n\t\t * Normal disconnect of this Messaging client from its server.\n\t\t *\n\t\t * @name Paho.Client#disconnect\n\t\t * @function\n\t\t * @throws {InvalidState} if the client is already disconnected.\n\t\t */\n\t\t\tthis.disconnect = function () {\n\t\t\t\tclient.disconnect();\n\t\t\t};\n\n\t\t\t/**\n\t\t * Get the contents of the trace log.\n\t\t *\n\t\t * @name Paho.Client#getTraceLog\n\t\t * @function\n\t\t * @return {Object[]} tracebuffer containing the time ordered trace records.\n\t\t */\n\t\t\tthis.getTraceLog = function () {\n\t\t\t\treturn client.getTraceLog();\n\t\t\t};\n\n\t\t\t/**\n\t\t * Start tracing.\n\t\t *\n\t\t * @name Paho.Client#startTrace\n\t\t * @function\n\t\t */\n\t\t\tthis.startTrace = function () {\n\t\t\t\tclient.startTrace();\n\t\t\t};\n\n\t\t\t/**\n\t\t * Stop tracing.\n\t\t *\n\t\t * @name Paho.Client#stopTrace\n\t\t * @function\n\t\t */\n\t\t\tthis.stopTrace = function () {\n\t\t\t\tclient.stopTrace();\n\t\t\t};\n\n\t\t\tthis.isConnected = function() {\n\t\t\t\treturn client.connected;\n\t\t\t};\n\t\t};\n\n\t\t/**\n\t * An application message, sent or received.\n\t *

\n\t * All attributes may be null, which implies the default values.\n\t *\n\t * @name Paho.Message\n\t * @constructor\n\t * @param {String|ArrayBuffer} payload The message data to be sent.\n\t *

\n\t * @property {string} payloadString read only The payload as a string if the payload consists of valid UTF-8 characters.\n\t * @property {ArrayBuffer} payloadBytes read only The payload as an ArrayBuffer.\n\t *

\n\t * @property {string} destinationName mandatory The name of the destination to which the message is to be sent\n\t * (for messages about to be sent) or the name of the destination from which the message has been received.\n\t * (for messages received by the onMessage function).\n\t *

\n\t * @property {number} qos The Quality of Service used to deliver the message.\n\t *

\n\t *
0 Best effort (default).\n\t *
1 At least once.\n\t *
2 Exactly once.\n\t *
\n\t *

\n\t * @property {Boolean} retained If true, the message is to be retained by the server and delivered\n\t * to both current and future subscriptions.\n\t * If false the server only delivers the message to current subscribers, this is the default for new Messages.\n\t * A received message has the retained boolean set to true if the message was published\n\t * with the retained boolean set to true\n\t * and the subscrption was made after the message has been published.\n\t *

\n\t * @property {Boolean} duplicate read only If true, this message might be a duplicate of one which has already been received.\n\t * This is only set on messages received from the server.\n\t *\n\t */\n\t\tvar Message = function (newPayload) {\n\t\t\tvar payload;\n\t\t\tif ( typeof newPayload === \"string\" ||\n\t\tnewPayload instanceof ArrayBuffer ||\n\t\t(ArrayBuffer.isView(newPayload) && !(newPayload instanceof DataView))\n\t\t\t) {\n\t\t\t\tpayload = newPayload;\n\t\t\t} else {\n\t\t\t\tthrow (format(ERROR.INVALID_ARGUMENT, [newPayload, \"newPayload\"]));\n\t\t\t}\n\n\t\t\tvar destinationName;\n\t\t\tvar qos = 0;\n\t\t\tvar retained = false;\n\t\t\tvar duplicate = false;\n\n\t\t\tObject.defineProperties(this,{\n\t\t\t\t\"payloadString\":{\n\t\t\t\t\tenumerable : true,\n\t\t\t\t\tget : function () {\n\t\t\t\t\t\tif (typeof payload === \"string\")\n\t\t\t\t\t\t\treturn payload;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\treturn parseUTF8(payload, 0, payload.length);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"payloadBytes\":{\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\tif (typeof payload === \"string\") {\n\t\t\t\t\t\t\tvar buffer = new ArrayBuffer(UTF8Length(payload));\n\t\t\t\t\t\t\tvar byteStream = new Uint8Array(buffer);\n\t\t\t\t\t\t\tstringToUTF8(payload, byteStream, 0);\n\t\t\n\t\t\t\t\t\t\treturn byteStream;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn payload;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"destinationName\":{\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: function() { return destinationName; },\n\t\t\t\t\tset: function(newDestinationName) {\n\t\t\t\t\t\tif (typeof newDestinationName === \"string\")\n\t\t\t\t\t\t\tdestinationName = newDestinationName;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT, [newDestinationName, \"newDestinationName\"]));\n\t\t\t\t\t} \n\t\t\t\t},\n\t\t\t\t\"qos\":{\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: function() { return qos; },\n\t\t\t\t\tset: function(newQos) {\n\t\t\t\t\t\tif (newQos === 0 || newQos === 1 || newQos === 2 )\n\t\t\t\t\t\t\tqos = newQos;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tthrow new Error(\"Invalid argument:\"+newQos);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"retained\":{\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: function() { return retained; },\n\t\t\t\t\tset: function(newRetained) {\n\t\t\t\t\t\tif (typeof newRetained === \"boolean\")\n\t\t\t\t\t\t\tretained = newRetained;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT, [newRetained, \"newRetained\"]));\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"topic\":{\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: function() { return destinationName; },\n\t\t\t\t\tset: function(newTopic) {destinationName=newTopic;}\n\t\t\t\t},\n\t\t\t\t\"duplicate\":{\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: function() { return duplicate; },\n\t\t\t\t\tset: function(newDuplicate) {duplicate=newDuplicate;}\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\t// Module contents.\n\t\treturn {\n\t\t\tClient: Client,\n\t\t\tMessage: Message\n\t\t};\n\t// eslint-disable-next-line no-nested-ternary\n\t})(typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {});\n\treturn PahoMQTT;\n});\n","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n__export(require(\"./offline-cache\"));\nvar offline_cache_1 = require(\"./offline-cache\");\nexports.OfflineCache = offline_cache_1.default;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar utils_1 = require(\"../utils\");\nvar apollo_cache_inmemory_1 = require(\"apollo-cache-inmemory\");\nexports.defaultDataIdFromObject = apollo_cache_inmemory_1.defaultDataIdFromObject;\nvar deltaSync_1 = require(\"../deltaSync\");\nvar logger = utils_1.rootLogger.extend('offline-cache');\n// Offline schema keys: Do not change in a non-backwards-compatible way\nexports.NORMALIZED_CACHE_KEY = 'appsync';\nexports.METADATA_KEY = 'appsync-metadata';\nvar WRITE_CACHE_ACTION = 'AAS_WRITE_CACHE';\nfunction isOfflineCacheOptions(obj) {\n return !!obj.store;\n}\n;\nvar MyCache = /** @class */ (function (_super) {\n __extends(MyCache, _super);\n function MyCache(optionsOrStore, config) {\n if (config === void 0) { config = {}; }\n var _this = _super.call(this, config) || this;\n if (isOfflineCacheOptions(optionsOrStore)) {\n var store = optionsOrStore.store;\n _this.store = store;\n }\n else {\n _this.store = optionsOrStore;\n }\n var cancelSubscription = _this.store.subscribe(function () {\n var _a = _this.store.getState(), _b = exports.NORMALIZED_CACHE_KEY, _c = _a[_b], normCache = _c === void 0 ? {} : _c, _d = _a.rehydrated, rehydrated = _d === void 0 ? false : _d;\n _super.prototype.restore.call(_this, __assign({}, normCache));\n if (rehydrated) {\n logger('Rehydrated! Cancelling subscription.');\n cancelSubscription();\n }\n });\n return _this;\n }\n MyCache.prototype.restore = function (data) {\n boundWriteCache(this.store, data);\n _super.prototype.restore.call(this, data);\n _super.prototype.broadcastWatches.call(this);\n return this;\n };\n MyCache.prototype.write = function (write) {\n _super.prototype.write.call(this, write);\n if (write.dataId === 'ROOT_MUTATION') {\n this.data.delete('ROOT_MUTATION');\n }\n if (this.data && typeof this.data.record === 'undefined') {\n // do not persist contents of a RecordingCache\n var data = _super.prototype.extract.call(this, true);\n boundWriteCache(this.store, data);\n }\n else {\n logger('No dispatch for RecordingCache');\n }\n };\n MyCache.prototype.reset = function () {\n logger('Resetting cache');\n boundWriteCache(this.store, {});\n return _super.prototype.reset.call(this);\n };\n MyCache.prototype.getIdsMap = function () {\n var _a = this.store.getState(), _b = exports.METADATA_KEY, idsMap = _a[_b].idsMap;\n return __assign({}, idsMap);\n };\n return MyCache;\n}(apollo_cache_inmemory_1.InMemoryCache));\nexports.default = MyCache;\nvar boundWriteCache = function (store, data) {\n logger(\"Dispatching \" + WRITE_CACHE_ACTION);\n store.dispatch(writeThunk(WRITE_CACHE_ACTION, data));\n};\nvar writeThunk = function (type, payload) { return function (dispatch, _getState) { return dispatch({\n type: type,\n payload: payload,\n}); }; };\nexports.reducer = function () {\n var _a;\n return (_a = {},\n _a[exports.NORMALIZED_CACHE_KEY] = function (state, action) {\n if (state === void 0) { state = {}; }\n var type = action.type, normCache = action.payload;\n switch (type) {\n case WRITE_CACHE_ACTION:\n return __assign({}, normCache);\n default:\n return state;\n }\n },\n _a);\n};\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nrequire(\"setimmediate\");\nvar apollo_client_1 = require(\"apollo-client\");\nvar apollo_cache_inmemory_1 = require(\"apollo-cache-inmemory\");\nvar apollo_link_1 = require(\"apollo-link\");\nvar apollo_link_http_1 = require(\"apollo-link-http\");\nvar index_1 = require(\"./cache/index\");\nexports.defaultDataIdFromObject = index_1.defaultDataIdFromObject;\nvar offline_cache_1 = require(\"./cache/offline-cache\");\nvar link_1 = require(\"./link\");\nvar store_1 = require(\"./store\");\nvar aws_appsync_auth_link_1 = require(\"aws-appsync-auth-link\");\nexports.AUTH_TYPE = aws_appsync_auth_link_1.AUTH_TYPE;\nvar aws_appsync_subscription_link_1 = require(\"aws-appsync-subscription-link\");\nvar utils_1 = require(\"./utils\");\nvar conflict_resolution_link_1 = require(\"./link/conflict-resolution-link\");\nvar retry_link_1 = require(\"./link/retry-link\");\nvar deltaSync_1 = require(\"./deltaSync\");\nexports.buildSync = deltaSync_1.buildSync;\nvar retry_link_2 = require(\"./link/retry-link\");\nvar CatchErrorLink = /** @class */ (function (_super) {\n __extends(CatchErrorLink, _super);\n function CatchErrorLink(linkGenerator) {\n var _this = this;\n try {\n _this = _super.call(this) || this;\n _this.link = linkGenerator();\n }\n catch (error) {\n error[retry_link_2.PERMANENT_ERROR_KEY] = true;\n throw error;\n }\n return _this;\n }\n CatchErrorLink.prototype.request = function (operation, forward) {\n return this.link.request(operation, forward);\n };\n return CatchErrorLink;\n}(apollo_link_1.ApolloLink));\nvar PermanentErrorLink = /** @class */ (function (_super) {\n __extends(PermanentErrorLink, _super);\n function PermanentErrorLink(link) {\n var _this = _super.call(this) || this;\n _this.link = link;\n return _this;\n }\n PermanentErrorLink.prototype.request = function (operation, forward) {\n var _this = this;\n return new apollo_link_1.Observable(function (observer) {\n var subscription = _this.link.request(operation, forward).subscribe({\n next: observer.next.bind(observer),\n error: function (err) {\n if (err.permanent) {\n err[retry_link_2.PERMANENT_ERROR_KEY] = true;\n }\n observer.error.call(observer, err);\n },\n complete: observer.complete.bind(observer)\n });\n return function () {\n subscription.unsubscribe();\n };\n });\n };\n return PermanentErrorLink;\n}(apollo_link_1.ApolloLink));\nexports.createAppSyncLink = function (_a) {\n var url = _a.url, region = _a.region, auth = _a.auth, complexObjectsCredentials = _a.complexObjectsCredentials, _b = _a.resultsFetcherLink, resultsFetcherLink = _b === void 0 ? apollo_link_http_1.createHttpLink({ uri: url }) : _b, conflictResolver = _a.conflictResolver;\n var link = apollo_link_1.ApolloLink.from([\n createLinkWithStore(function (store) { return new link_1.OfflineLink(store); }),\n new conflict_resolution_link_1.default(conflictResolver),\n new link_1.ComplexObjectLink(complexObjectsCredentials),\n retry_link_1.createRetryLink(apollo_link_1.ApolloLink.from([\n new CatchErrorLink(function () { return new aws_appsync_auth_link_1.AuthLink({ url: url, region: region, auth: auth }); }),\n new PermanentErrorLink(aws_appsync_subscription_link_1.createSubscriptionHandshakeLink({ url: url, region: region, auth: auth }, resultsFetcherLink))\n ]))\n ].filter(Boolean));\n return link;\n};\nexports.createLinkWithCache = function (createLinkFunc) {\n if (createLinkFunc === void 0) { createLinkFunc = function (cache) { return new apollo_link_1.ApolloLink(utils_1.passthroughLink); }; }\n var theLink;\n return new apollo_link_1.ApolloLink(function (op, forward) {\n if (!theLink) {\n var cache = op.getContext().cache;\n theLink = createLinkFunc(cache);\n }\n return theLink.request(op, forward);\n });\n};\nvar createLinkWithStore = function (createLinkFunc) {\n if (createLinkFunc === void 0) { createLinkFunc = function (store) { return new apollo_link_1.ApolloLink(utils_1.passthroughLink); }; }\n return exports.createLinkWithCache(function (cache) {\n var store = cache.store;\n return store ? createLinkFunc(store) : new apollo_link_1.ApolloLink(utils_1.passthroughLink);\n });\n};\nvar keyPrefixesInUse = new Set();\nvar AWSAppSyncClient = /** @class */ (function (_super) {\n __extends(AWSAppSyncClient, _super);\n function AWSAppSyncClient(_a, options) {\n var url = _a.url, region = _a.region, auth = _a.auth, conflictResolver = _a.conflictResolver, complexObjectsCredentials = _a.complexObjectsCredentials, _b = _a.cacheOptions, cacheOptions = _b === void 0 ? {} : _b, _c = _a.disableOffline, disableOffline = _c === void 0 ? false : _c, _d = _a.offlineConfig, _e = _d === void 0 ? {} : _d, _f = _e.storage, storage = _f === void 0 ? undefined : _f, _g = _e.keyPrefix, keyPrefix = _g === void 0 ? undefined : _g, _h = _e.callback, callback = _h === void 0 ? function () { } : _h;\n var _this = this;\n var _j = options || {}, _k = _j.cache, customCache = _k === void 0 ? undefined : _k, _l = _j.link, customLink = _l === void 0 ? undefined : _l;\n if (!customLink && (!url || !region || !auth)) {\n throw new Error('In order to initialize AWSAppSyncClient, you must specify url, region and auth properties on the config object or a custom link.');\n }\n keyPrefix = keyPrefix || store_1.DEFAULT_KEY_PREFIX;\n if (!disableOffline && keyPrefixesInUse.has(keyPrefix)) {\n throw new Error(\"The keyPrefix \" + keyPrefix + \" is already in use. Multiple clients cannot share the same keyPrefix. Provide a different keyPrefix in the offlineConfig object.\");\n }\n var resolveClient;\n var dataIdFromObject = disableOffline ? function () { return null; } : cacheOptions.dataIdFromObject || index_1.defaultDataIdFromObject;\n var store = disableOffline ? null : store_1.createStore({\n clientGetter: function () { return _this; },\n persistCallback: function () { resolveClient(_this); },\n dataIdFromObject: dataIdFromObject,\n storage: storage,\n keyPrefix: keyPrefix,\n callback: callback\n });\n var cache = disableOffline\n ? (customCache || new apollo_cache_inmemory_1.InMemoryCache(cacheOptions))\n : new index_1.OfflineCache({ store: store }, cacheOptions);\n var waitForRehydrationLink = new apollo_link_1.ApolloLink(function (op, forward) {\n var handle = null;\n return new apollo_link_1.Observable(function (observer) {\n _this.hydratedPromise.then(function () {\n handle = utils_1.passthroughLink(op, forward).subscribe(observer);\n }).catch(observer.error);\n return function () {\n if (handle) {\n handle.unsubscribe();\n }\n };\n });\n });\n var link = waitForRehydrationLink.concat(customLink || exports.createAppSyncLink({ url: url, region: region, auth: auth, complexObjectsCredentials: complexObjectsCredentials, conflictResolver: conflictResolver }));\n var newOptions = __assign(__assign({}, options), { link: link,\n cache: cache });\n _this = _super.call(this, newOptions) || this;\n _this.hydratedPromise = disableOffline ? Promise.resolve(_this) : new Promise(function (resolve) { resolveClient = resolve; });\n _this._disableOffline = disableOffline;\n _this._store = store;\n if (!disableOffline) {\n keyPrefixesInUse.add(keyPrefix);\n }\n return _this;\n }\n AWSAppSyncClient.prototype.hydrated = function () {\n return this.hydratedPromise;\n };\n ;\n AWSAppSyncClient.prototype.isOfflineEnabled = function () {\n return !this._disableOffline;\n };\n AWSAppSyncClient.prototype.mutate = function (options) {\n if (!this.isOfflineEnabled()) {\n return _super.prototype.mutate.call(this, options);\n }\n var doIt = false;\n var origContext = options.context, optimisticResponse = options.optimisticResponse, update = options.update, fetchPolicy = options.fetchPolicy, otherOptions = __rest(options, [\"context\", \"optimisticResponse\", \"update\", \"fetchPolicy\"]);\n var context = __assign(__assign({}, origContext), { AASContext: {\n doIt: doIt,\n optimisticResponse: optimisticResponse,\n update: update,\n fetchPolicy: fetchPolicy,\n } });\n return _super.prototype.mutate.call(this, __assign({ optimisticResponse: optimisticResponse,\n context: context,\n update: update,\n fetchPolicy: fetchPolicy }, otherOptions));\n };\n AWSAppSyncClient.prototype.sync = function (options) {\n var _this = this;\n if (!this.isOfflineEnabled()) {\n throw new Error('Not supported');\n }\n return new apollo_link_1.Observable(function (observer) {\n var handle;\n var callback = function (subscription) {\n handle = subscription;\n };\n (function () { return __awaiter(_this, void 0, void 0, function () {\n var hash, itemInHash, _a, baseLastSyncTimestamp;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, this.hydrated()];\n case 1:\n _b.sent();\n hash = deltaSync_1.hashForOptions(options);\n itemInHash = this._store.getState()[offline_cache_1.METADATA_KEY][deltaSync_1.DELTASYNC_KEY].metadata[hash];\n _a = (itemInHash || {}).baseLastSyncTimestamp, baseLastSyncTimestamp = _a === void 0 ? null : _a;\n deltaSync_1.boundEnqueueDeltaSync(this._store, __assign(__assign({}, options), { baseLastSyncTimestamp: baseLastSyncTimestamp }), observer, callback);\n return [2 /*return*/];\n }\n });\n }); })();\n return function () {\n if (handle) {\n handle.unsubscribe();\n }\n };\n }).subscribe(function () { });\n };\n return AWSAppSyncClient;\n}(apollo_client_1.default));\nexports.AWSAppSyncClient = AWSAppSyncClient;\nexports.default = AWSAppSyncClient;\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar apollo_cache_inmemory_1 = require(\"apollo-cache-inmemory\");\nvar offline_cache_1 = require(\"./cache/offline-cache\");\nvar apollo_utilities_1 = require(\"apollo-utilities\");\nvar utils_1 = require(\"./utils\");\nvar apollo_link_1 = require(\"apollo-link\");\nvar retry_link_1 = require(\"./link/retry-link\");\nvar graphql_1 = require(\"graphql\");\nvar offline_1 = require(\"./helpers/offline\");\nvar offline_link_1 = require(\"./link/offline-link\");\nvar aws_appsync_subscription_link_1 = require(\"aws-appsync-subscription-link\");\nvar logger = utils_1.rootLogger.extend('deltasync');\nexports.DELTASYNC_KEY = 'deltaSync';\n//#endregion\n//#region Constants\nvar actions = {\n ENQUEUE: 'DELTASYNC_ENQUEUE_RECONNECT',\n UPDATE_LASTSYNC: 'DELTASYNC_UPDATE_LASTSYNC',\n};\nvar DEFAULT_UPPER_BOUND_TIME_MS = 24 * 60 * 60 * 1000;\nvar MIN_UPPER_BOUND_TIME_MS = 2 * 1000;\nvar BUFFER_MILLISECONDS = 2000;\n//#endregion\n//#region helpers\nvar subscriptionMessagesProcessorCreator = function (proxy, updateFunction) {\n var buffer = [];\n var ready = false;\n var wrappedUpdateFunction = function (proxy, record) { return apollo_utilities_1.tryFunctionOrLogError(function () { return updateFunction(proxy, record); }); };\n var processor = {\n enqueue: function (record) {\n if (ready) {\n wrappedUpdateFunction(proxy, record);\n return;\n }\n buffer.push(record);\n },\n ready: function () {\n if (ready) {\n return;\n }\n buffer.forEach(function (record) { return wrappedUpdateFunction(proxy, record); });\n buffer = [];\n ready = true;\n },\n close: function () {\n buffer = [];\n ready = true;\n }\n };\n return processor;\n};\nexports.hashForOptions = function (options) {\n var _a = options.baseQuery, _b = _a === void 0 ? {} : _a, _c = _b.query, baseQueryQuery = _c === void 0 ? null : _c, _d = _b.variables, baseQueryVariables = _d === void 0 ? {} : _d, _e = options.subscriptionQuery, _f = _e === void 0 ? {} : _e, _g = _f.query, subscriptionQueryQuery = _g === void 0 ? null : _g, _h = _f.variables, subscriptionQueryVariables = _h === void 0 ? {} : _h, _j = options.deltaQuery, _k = _j === void 0 ? {} : _j, _l = _k.query, deltaQueryQuery = _l === void 0 ? null : _l, _m = _k.variables, deltaQueryVariables = _m === void 0 ? {} : _m;\n var baseQuery = baseQueryQuery ? {\n query: graphql_1.print(baseQueryQuery),\n variables: baseQueryVariables,\n } : {};\n var subscriptionQuery = subscriptionQueryQuery ? {\n query: graphql_1.print(subscriptionQueryQuery),\n variables: subscriptionQueryVariables,\n } : {};\n var deltaQuery = deltaQueryQuery ? {\n query: graphql_1.print(deltaQueryQuery),\n variables: deltaQueryVariables,\n } : {};\n return utils_1.hash(JSON.stringify({\n baseQuery: baseQuery,\n subscriptionQuery: subscriptionQuery,\n deltaQuery: deltaQuery,\n }));\n};\n//#endregion\n//#region Redux\nvar effect = function (store, client, effect, _action, _offlineCallback, offlineStatusChangeObservable) { return __awaiter(void 0, void 0, void 0, function () {\n var options, _a, baseQuery, subscriptionQuery, deltaQuery, observer, _b, callback, upperBoundTimeMS, hash, itemInHash, _c, lastSyncTimestamp, _d, baseLastSyncTimestamp, networkStatusSubscription, subscription, baseQueryTimeoutId, subscriptionProcessor, unsubscribeAll, enqueueAgain, handle, STOP_CACHE_RECORDING, recorderCacheWrites, cacheProxy, error_2, _e, _f, _g, idsMap_1, cacheSnapshot, enquededMutations, subsControlLogger_1, baseRefreshIntervalInSeconds, skipBaseQuery, query, update_1, variables, result_1, _h, _j, cacheSnapshot_1, data, query, update_2, variables, result_2, dataStore_1, enqueuedActionsFilter_1, baseQueryTimeout, error_1;\n return __generator(this, function (_k) {\n switch (_k.label) {\n case 0:\n options = effect.options, _a = effect.options, baseQuery = _a.baseQuery, subscriptionQuery = _a.subscriptionQuery, deltaQuery = _a.deltaQuery, observer = effect.observer, _b = effect.callback, callback = _b === void 0 ? function () { } : _b;\n if (!observer || typeof observer.next !== 'function' || observer.closed) {\n // If we don't have an observer, we complete this effect (this means the app was closed/opened and a completely \n // new deltaSync will happen)\n return [2 /*return*/];\n }\n upperBoundTimeMS = DEFAULT_UPPER_BOUND_TIME_MS;\n hash = exports.hashForOptions(options);\n itemInHash = store.getState()[offline_cache_1.METADATA_KEY][exports.DELTASYNC_KEY].metadata[hash];\n _c = options.lastSyncTimestamp, lastSyncTimestamp = _c === void 0 ? itemInHash.lastSyncTimestamp : _c, _d = options.baseLastSyncTimestamp, baseLastSyncTimestamp = _d === void 0 ? itemInHash.baseLastSyncTimestamp : _d;\n unsubscribeAll = function () {\n logger('Unsubscribing');\n if (networkStatusSubscription)\n networkStatusSubscription.unsubscribe();\n if (subscription)\n subscription.unsubscribe();\n if (baseQueryTimeoutId)\n clearTimeout(baseQueryTimeoutId);\n if (subscriptionProcessor)\n subscriptionProcessor.close();\n };\n enqueueAgain = function () {\n unsubscribeAll();\n logger('Re-queuing', { baseLastSyncTimestamp: baseLastSyncTimestamp, lastSyncTimestamp: lastSyncTimestamp });\n exports.boundEnqueueDeltaSync(store, __assign(__assign({}, options), { lastSyncTimestamp: lastSyncTimestamp, baseLastSyncTimestamp: baseLastSyncTimestamp }), observer, callback);\n };\n if (typeof callback === 'function') {\n handle = new apollo_link_1.Observable(function () { return function () { return unsubscribeAll(); }; }).subscribe({ next: function () { } });\n callback(handle);\n }\n networkStatusSubscription = new apollo_link_1.Observable(function (obs) {\n var handle = offlineStatusChangeObservable.subscribe({\n next: function (_a) {\n var online = _a.online;\n if (!online) {\n obs.next(null);\n obs.complete();\n }\n },\n complete: function () { return obs.complete(); },\n });\n return function () { return handle.unsubscribe(); };\n }).subscribe({\n next: function () {\n enqueueAgain();\n }\n });\n STOP_CACHE_RECORDING = typeof Symbol !== 'undefined' ? Symbol('stopCacheRecording') : '@@stopCacheRecording';\n recorderCacheWrites = [];\n cacheProxy = new Proxy(client.cache, {\n get: function (target, name, receiver) {\n switch (name) {\n case 'write':\n return function (options) {\n if (!receiver[STOP_CACHE_RECORDING]) {\n recorderCacheWrites.push(options);\n }\n return target[name](options);\n };\n }\n return target[name];\n }\n });\n subscriptionProcessor = subscriptionMessagesProcessorCreator(cacheProxy, function (proxy, record) {\n var update = options.subscriptionQuery.update;\n if (typeof update === 'function') {\n update(proxy, record);\n client.queryManager.broadcastQueries();\n }\n });\n _k.label = 1;\n case 1:\n _k.trys.push([1, 8, , 9]);\n _e = store.getState(), _f = offline_cache_1.METADATA_KEY, _g = _e[_f], idsMap_1 = _g.idsMap, cacheSnapshot = _g.snapshot.cache, enquededMutations = _e.offline.outbox;\n subsControlLogger_1 = logger.extend('subsc-control');\n return [4 /*yield*/, new Promise(function (resolve) {\n var _a;\n if (subscriptionQuery && subscriptionQuery.query) {\n var query = subscriptionQuery.query, variables = subscriptionQuery.variables;\n subscription = client.subscribe({\n query: query,\n variables: __assign(__assign({}, variables), (_a = {}, _a[retry_link_1.SKIP_RETRY_KEY] = true, _a[aws_appsync_subscription_link_1.CONTROL_EVENTS_KEY] = true, _a)),\n }).filter(function (data) {\n var _a = data.extensions, _b = _a === void 0 ? {} : _a, _c = _b.controlMsgType, controlMsgType = _c === void 0 ? undefined : _c, _d = _b.controlMsgInfo, controlMsgInfo = _d === void 0 ? undefined : _d;\n var isControlMsg = typeof controlMsgType !== 'undefined';\n if (controlMsgType) {\n subsControlLogger_1(controlMsgType, controlMsgInfo);\n if (controlMsgType === 'CONNECTED') {\n resolve();\n }\n }\n return !isControlMsg;\n }).subscribe({\n next: function (data) {\n subscriptionProcessor.enqueue(data);\n },\n error: function (err) {\n resolve();\n error_2 = err;\n unsubscribeAll();\n if (apollo_utilities_1.graphQLResultHasError(err) || err.graphQLErrors) {\n // send error to observable, unsubscribe all, do not enqueue\n observer.error(err);\n return;\n }\n enqueueAgain();\n }\n });\n }\n else {\n resolve();\n }\n })];\n case 2:\n _k.sent();\n if (error_2) {\n throw error_2;\n }\n baseRefreshIntervalInSeconds = (baseQuery || { baseRefreshIntervalInSeconds: undefined }).baseRefreshIntervalInSeconds;\n upperBoundTimeMS = baseRefreshIntervalInSeconds ? baseRefreshIntervalInSeconds * 1000 : DEFAULT_UPPER_BOUND_TIME_MS;\n skipBaseQuery = !(baseQuery && baseQuery.query) || (baseLastSyncTimestamp\n ? Date.now() - baseLastSyncTimestamp < upperBoundTimeMS\n : itemInHash.baseLastSyncTimestamp && Date.now() - itemInHash.baseLastSyncTimestamp < upperBoundTimeMS);\n if (!(baseQuery && baseQuery.query)) return [3 /*break*/, 5];\n query = baseQuery.query, update_1 = baseQuery.update, variables = baseQuery.variables;\n logger((skipBaseQuery ? 'Skipping' : 'Running') + \" base query\", { baseLastSyncTimestamp: baseLastSyncTimestamp, itemInHash: itemInHash });\n if (!!skipBaseQuery) return [3 /*break*/, 4];\n return [4 /*yield*/, client.query({\n fetchPolicy: 'no-cache',\n query: query,\n variables: variables,\n })];\n case 3:\n result_1 = _k.sent();\n cacheProxy.writeQuery({ query: query, variables: variables, data: result_1.data });\n if (typeof update_1 === 'function') {\n apollo_utilities_1.tryFunctionOrLogError(function () {\n update_1(cacheProxy, result_1);\n });\n }\n baseLastSyncTimestamp = Date.now() - BUFFER_MILLISECONDS;\n boundUpdateLastSync(store, { hash: hash, baseLastSyncTimestamp: baseLastSyncTimestamp });\n return [3 /*break*/, 5];\n case 4:\n try {\n if (enquededMutations.length === 1) {\n offline_link_1.boundSaveSnapshot(store, client.cache);\n }\n _h = store.getState(), _j = offline_cache_1.METADATA_KEY, cacheSnapshot_1 = _h[_j].snapshot.cache;\n data = cacheProxy.storeReader.readQueryFromStore({\n store: apollo_cache_inmemory_1.defaultNormalizedCacheFactory(cacheSnapshot_1),\n query: apollo_utilities_1.addTypenameToDocument(query),\n variables: variables,\n });\n cacheProxy.writeQuery({ query: query, variables: variables, data: data });\n }\n catch (error) {\n logger('Error reading/writting baseQuery from store', error);\n }\n _k.label = 5;\n case 5:\n //#endregion\n //#region Delta query\n if (deltaQuery && deltaQuery.query && !skipBaseQuery) {\n logger('Skipping deltaQuery');\n }\n if (!(deltaQuery && deltaQuery.query && skipBaseQuery)) return [3 /*break*/, 7];\n query = deltaQuery.query, update_2 = deltaQuery.update, variables = deltaQuery.variables;\n logger('Running deltaQuery', { lastSyncTimestamp: lastSyncTimestamp, baseLastSyncTimestamp: baseLastSyncTimestamp });\n return [4 /*yield*/, client.query({\n fetchPolicy: 'no-cache',\n query: query,\n variables: __assign(__assign({}, variables), { lastSync: Math.floor((lastSyncTimestamp || baseLastSyncTimestamp) / 1000) || 0 }),\n })];\n case 6:\n result_2 = _k.sent();\n if (typeof update_2 === 'function') {\n apollo_utilities_1.tryFunctionOrLogError(function () {\n update_2(cacheProxy, result_2);\n });\n }\n lastSyncTimestamp = Date.now() - BUFFER_MILLISECONDS;\n boundUpdateLastSync(store, { hash: hash, lastSyncTimestamp: lastSyncTimestamp });\n _k.label = 7;\n case 7:\n //#endregion\n if (error_2) {\n throw error_2;\n }\n // process subscription messages\n subscriptionProcessor.ready();\n cacheProxy[STOP_CACHE_RECORDING] = true;\n if (enquededMutations.length === 1) {\n offline_link_1.boundSaveSnapshot(store, client.cache);\n }\n else {\n // Restore from cache snapshot\n client.cache.restore(cacheSnapshot);\n }\n recorderCacheWrites.forEach(client.cache.write.bind(client.cache));\n offline_link_1.boundSaveSnapshot(store, client.cache);\n client.initQueryManager();\n dataStore_1 = client.queryManager.dataStore;\n enqueuedActionsFilter_1 = [offline_link_1.offlineEffectConfig.enqueueAction];\n enquededMutations\n .filter(function (_a) {\n var type = _a.type;\n return enqueuedActionsFilter_1.indexOf(type) > -1;\n })\n .forEach(function (_a) {\n var effect = _a.meta.offline.effect;\n var _b = effect, _c = _b.operation, _d = _c === void 0 ? {} : _c, _e = _d.variables, variables = _e === void 0 ? {} : _e, _f = _d.query, document = _f === void 0 ? null : _f, update = _b.update, origOptimisticResponse = _b.optimisticResponse;\n if (typeof update !== 'function') {\n return;\n }\n var optimisticResponse = offline_link_1.replaceUsingMap(__assign({}, origOptimisticResponse), idsMap_1);\n var result = { data: optimisticResponse };\n dataStore_1.markMutationResult({\n mutationId: null,\n result: result,\n document: document,\n variables: variables,\n updateQueries: {},\n update: update\n });\n });\n client.queryManager.broadcastQueries();\n if (baseQuery && baseQuery.query) {\n baseQueryTimeout = Math.max(upperBoundTimeMS - (Date.now() - baseLastSyncTimestamp), MIN_UPPER_BOUND_TIME_MS);\n logger(\"Re-running in \" + baseQueryTimeout / 1000 / 60 + \" minutes\");\n baseQueryTimeoutId = global.setTimeout(function () { return enqueueAgain(); }, baseQueryTimeout);\n }\n return [3 /*break*/, 9];\n case 8:\n error_1 = _k.sent();\n unsubscribeAll();\n throw error_1;\n case 9: return [2 /*return*/];\n }\n });\n}); };\nvar discard = function (_callback, error, action, retries) {\n var effect = action.meta.offline.effect;\n var observer = effect.observer;\n if (observer && observer.error && !observer.closed) {\n observer.error(error);\n }\n return true;\n};\nvar reducer = function () { return function (state, action) {\n var _a;\n switch (action.type) {\n case actions.UPDATE_LASTSYNC:\n logger(action.type, action.payload);\n return lastSyncReducer(state, action);\n case actions.ENQUEUE:\n logger(action.type, action.meta.offline.effect.options);\n return metadataReducer(state, action);\n default:\n var newState = __assign(__assign({}, state), (_a = {}, _a[exports.DELTASYNC_KEY] = __assign({ metadata: {} }, state.deltaSync), _a));\n return newState;\n }\n}; };\nvar lastSyncReducer = function (state, action) {\n var _a, _b;\n var _c = action.payload, lastSyncTimestamp = _c.lastSyncTimestamp, hash = _c.hash, baseLastSyncTimestamp = _c.baseLastSyncTimestamp;\n var _d = state[exports.DELTASYNC_KEY], metadata = _d.metadata, deltaSync = __rest(_d, [\"metadata\"]);\n var _e = metadata, _f = hash, hashMetadata = _e[_f], otherHashes = __rest(_e, [typeof _f === \"symbol\" ? _f : _f + \"\"]);\n var newMetadata = {\n baseLastSyncTimestamp: baseLastSyncTimestamp || hashMetadata.baseLastSyncTimestamp,\n lastSyncTimestamp: lastSyncTimestamp,\n };\n var newState = __assign(__assign({}, state), (_a = {}, _a[exports.DELTASYNC_KEY] = __assign(__assign({}, deltaSync), { metadata: __assign(__assign({}, otherHashes), (_b = {}, _b[hash] = newMetadata, _b)) }), _a));\n return newState;\n};\nvar metadataReducer = function (state, action) {\n var _a, _b;\n var effect = action.meta.offline.effect;\n var options = effect.options;\n var metadata = state[exports.DELTASYNC_KEY].metadata;\n var hash = exports.hashForOptions(options);\n var hashMetadata = metadata[hash];\n var _c = hashMetadata || {}, _d = _c.lastSyncTimestamp, lastSyncTimestamp = _d === void 0 ? options.lastSyncTimestamp : _d, _e = _c.baseLastSyncTimestamp, baseLastSyncTimestamp = _e === void 0 ? options.baseLastSyncTimestamp : _e;\n var newMetadata = {\n lastSyncTimestamp: lastSyncTimestamp,\n baseLastSyncTimestamp: options.baseLastSyncTimestamp === null ? null : baseLastSyncTimestamp,\n };\n var newState = __assign(__assign({}, state), (_a = {}, _a[exports.DELTASYNC_KEY] = {\n metadata: __assign(__assign({}, metadata), (_b = {}, _b[hash] = newMetadata, _b))\n }, _a));\n return newState;\n};\nexports.boundEnqueueDeltaSync = function (store, options, observer, callback) {\n var effect = { options: options, observer: observer, callback: callback };\n store.dispatch({\n type: exports.offlineEffectConfig.enqueueAction,\n meta: {\n offline: {\n effect: effect\n },\n }\n });\n};\nvar boundUpdateLastSync = function (store, _a) {\n var hash = _a.hash, lastSyncTimestamp = _a.lastSyncTimestamp, baseLastSyncTimestamp = _a.baseLastSyncTimestamp;\n var action = {\n type: actions.UPDATE_LASTSYNC,\n payload: {\n hash: hash,\n lastSyncTimestamp: lastSyncTimestamp,\n baseLastSyncTimestamp: baseLastSyncTimestamp,\n }\n };\n store.dispatch(action);\n};\n//#endregion\n//#region Builder\nexports.buildSync = function (typename, options, idField) {\n if (idField === void 0) { idField = 'id'; }\n var baseQuery = options.baseQuery, subscriptionQuery = options.subscriptionQuery, deltaQuery = options.deltaQuery, _a = options.cacheUpdates, cacheUpdates = _a === void 0 ? function () { return []; } : _a;\n var loggerHelper = logger.extend('helper');\n var result = {\n baseQuery: __assign(__assign({}, baseQuery), (baseQuery && {\n update: function (cache, _a) {\n var data = _a.data;\n var opFieldName = utils_1.getOperationFieldName(baseQuery.query);\n var _b = data, _c = opFieldName, result = _b[_c];\n writeCacheUpdates(loggerHelper, cache, result, cacheUpdates);\n }\n })),\n subscriptionQuery: __assign(__assign({}, subscriptionQuery), (subscriptionQuery && {\n update: function (cache, _a) {\n var data = _a.data;\n updateBaseWithDelta(loggerHelper, baseQuery, subscriptionQuery, cache, data, cacheUpdates, typename, idField);\n }\n })),\n deltaQuery: __assign(__assign({}, deltaQuery), (deltaQuery && {\n update: function (cache, _a) {\n var data = _a.data;\n updateBaseWithDelta(loggerHelper, baseQuery, deltaQuery, cache, data, cacheUpdates, typename, idField);\n }\n })),\n };\n loggerHelper('buildSync options', result);\n return result;\n};\nvar writeCacheUpdates = function (logger, cache, result, cacheUpdates) {\n if (cacheUpdates === void 0) { cacheUpdates = function () { return []; }; }\n var cacheUpdatesLogger = logger.extend('cacheUpdates');\n cacheUpdatesLogger('writeCacheUpdates');\n result.forEach(function (item) { return cacheUpdates(item).forEach(function (_a) {\n var _b;\n var query = _a.query, variables = _a.variables;\n var opFieldName = utils_1.getOperationFieldName(query);\n var data = (_b = {}, _b[opFieldName] = item, _b);\n cacheUpdatesLogger(\"Writing \" + opFieldName, { variables: variables, data: data });\n cache.writeQuery({ query: query, variables: variables, data: data });\n }); });\n};\nvar deltaRecordsProcessor = function (logger, deltaOperationName, deltaRecords, baseResult, typename, idField) {\n var opType = offline_1.getOpTypeFromOperationName(deltaOperationName);\n logger({ deltaOperationName: deltaOperationName, opType: opType, deltaRecords: deltaRecords });\n if (!deltaRecords.length) {\n return baseResult;\n }\n var result = __spreadArrays(baseResult);\n deltaRecords.forEach(function (deltaRecord) {\n var incomingRecord = __assign(__assign({}, deltaRecord), { __typename: typename });\n var isRemove = opType === offline_1.CacheOperationTypes.REMOVE || incomingRecord.aws_ds === 'DELETE';\n var updater = offline_1.getUpdater(opType === offline_1.CacheOperationTypes.AUTO && !isRemove\n ? offline_1.CacheOperationTypes.ADD\n : (isRemove ? offline_1.CacheOperationTypes.REMOVE : opType), idField);\n logger({ incomingRecord: incomingRecord, isRemove: isRemove });\n result = updater(__spreadArrays(result), incomingRecord);\n });\n return result;\n};\nvar updateBaseWithDelta = function (logger, baseQuery, otherQuery, cache, data, cacheUpdates, typename, idField) {\n var _a;\n if (cacheUpdates === void 0) { cacheUpdates = function () { return []; }; }\n if (idField === void 0) { idField = 'id'; }\n var updateLogger = logger.extend('update');\n var opDefinition = apollo_utilities_1.getMainDefinition(otherQuery.query);\n var _b = opDefinition.selectionSet.selections[0], opName = _b.name.value, opAliasNode = _b.alias;\n var _c = (opAliasNode || {}).value, opAlias = _c === void 0 ? null : _c;\n var _d = opDefinition, kind = _d.kind, graphqlOperation = _d.operation;\n var isSubscription = kind === 'OperationDefinition' && graphqlOperation === 'subscription';\n var deltaOperationName = (isSubscription ? Object.keys(data) : [opAlias || opName])[0];\n var _e = data, _f = deltaOperationName, records = _e[_f];\n var deltaRecords = [].concat(records);\n if (!baseQuery || !baseQuery.query) {\n updateLogger('No baseQuery provided');\n }\n else {\n var query = baseQuery.query, variables = baseQuery.variables;\n var operationName = utils_1.getOperationFieldName(query);\n var _g = cache.readQuery({ query, variables }), _h = operationName, baseResult = _g[_h];\n if (!Array.isArray(baseResult)) {\n throw new Error('Result of baseQuery is not an array');\n }\n var result = deltaRecordsProcessor(updateLogger, deltaOperationName, deltaRecords, baseResult, typename, idField);\n if (result !== baseResult) {\n cache.writeQuery({ query: query, data: (_a = {}, _a[operationName] = result, _a) });\n }\n }\n writeCacheUpdates(updateLogger, cache, deltaRecords, cacheUpdates);\n};\n//#endregion\nexports.offlineEffectConfig = {\n enqueueAction: actions.ENQUEUE,\n effect: effect,\n discard: discard,\n reducer: reducer,\n};\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar uuid_1 = require(\"uuid\");\nvar apollo_utilities_1 = require(\"apollo-utilities\");\nvar client_1 = require(\"../client\");\nvar link_1 = require(\"../link\");\nvar utils_1 = require(\"../utils\");\nvar logger = utils_1.rootLogger.extend('offline-helper');\nvar CacheOperationTypes;\n(function (CacheOperationTypes) {\n CacheOperationTypes[\"AUTO\"] = \"auto\";\n CacheOperationTypes[\"ADD\"] = \"add\";\n CacheOperationTypes[\"REMOVE\"] = \"remove\";\n CacheOperationTypes[\"UPDATE\"] = \"update\";\n})(CacheOperationTypes = exports.CacheOperationTypes || (exports.CacheOperationTypes = {}));\n;\nvar prefixesForRemove = [\n 'delete',\n 'deleted',\n 'discard',\n 'discarded',\n 'erase',\n 'erased',\n 'remove',\n 'removed'\n];\nvar prefixesForUpdate = [\n 'update',\n 'updated',\n 'upsert',\n 'upserted',\n 'edit',\n 'edited',\n 'modify',\n 'modified',\n];\nvar prefixesForAdd = [\n 'create',\n 'created',\n 'put',\n 'set',\n 'add',\n 'added',\n 'new',\n 'insert',\n 'inserted',\n];\nexports.getOpTypeFromOperationName = function (opName) {\n if (opName === void 0) { opName = ''; }\n // Note: we do a toLowerCase() and startsWith() to avoid ambiguity with operations like \"RemoveAddendum\"\n var comparator = function (prefix) { return opName.toLowerCase().startsWith(prefix) || opName.toLowerCase().startsWith(\"on\" + prefix); };\n var result = CacheOperationTypes.AUTO;\n [\n [prefixesForAdd, CacheOperationTypes.ADD],\n [prefixesForRemove, CacheOperationTypes.REMOVE],\n [prefixesForUpdate, CacheOperationTypes.UPDATE],\n ].forEach(function (_a) {\n var prefix = _a[0], type = _a[1];\n if (prefix.some(comparator)) {\n result = type;\n return;\n }\n });\n return result;\n};\n/**\n * Builds a SubscribeToMoreOptions object ready to be used by Apollo's subscribeToMore() to automatically update the query result in the\n * cache according to the cacheUpdateQuery parameter\n *\n * @param subscriptionQuery The GraphQL subscription DocumentNode or CacheUpdateQuery\n * @param cacheUpdateQuery The query for which the result needs to be updated\n * @param idField\n * @param operationType\n */\nvar buildSubscription = function (subscriptionQuery, cacheUpdateQuery, idField, operationType) {\n var document = (subscriptionQuery && subscriptionQuery.query) || subscriptionQuery;\n var variables = (subscriptionQuery && subscriptionQuery.variables) || {};\n var query = (cacheUpdateQuery && cacheUpdateQuery.query) || cacheUpdateQuery;\n var queryField = utils_1.getOperationFieldName(query);\n return {\n document: document,\n variables: variables,\n updateQuery: function (prev, _a) {\n var _b;\n var data = _a.subscriptionData.data;\n var subField = Object.keys(data)[0];\n var _c = data, _d = subField, mutadedItem = _c[_d];\n var optype = operationType || exports.getOpTypeFromOperationName(subField);\n var updater = exports.getUpdater(optype, idField);\n var updatedOpResult;\n var result;\n var path = findArrayInObject(prev);\n if (path) {\n var arr = __spreadArrays(getValueByPath(prev, path));\n updatedOpResult = updater(arr, mutadedItem);\n }\n else {\n updatedOpResult = updater(prev, mutadedItem);\n }\n if (!path || path.length === 0) {\n result = updatedOpResult;\n }\n else {\n var cloned = apollo_utilities_1.cloneDeep(prev);\n setValueByPath(cloned, path, updatedOpResult);\n result = cloned[queryField];\n }\n return _b = {},\n _b[queryField] = result,\n _b;\n }\n };\n};\nexports.buildSubscription = buildSubscription;\nexports.getUpdater = function (opType, idField) {\n if (idField === void 0) { idField = 'id'; }\n var updater;\n switch (opType) {\n case CacheOperationTypes.ADD:\n updater = function (currentValue, newItem) {\n if (Array.isArray(currentValue)) {\n return !newItem ? __spreadArrays(currentValue) : __spreadArrays(currentValue.filter(function (item) { return item[idField] !== newItem[idField]; }), [newItem]);\n }\n else {\n return newItem;\n }\n };\n break;\n case CacheOperationTypes.UPDATE:\n updater = function (currentValue, newItem) {\n if (Array.isArray(currentValue)) {\n return !newItem ? __spreadArrays(currentValue) : currentValue.map(function (item) { return item[idField] === newItem[idField] ? newItem : item; });\n }\n else {\n return newItem;\n }\n };\n break;\n case CacheOperationTypes.REMOVE:\n updater = function (currentValue, newItem) {\n if (Array.isArray(currentValue)) {\n return !newItem ? __spreadArrays(currentValue) : currentValue.filter(function (item) { return item[idField] !== newItem[idField]; });\n }\n else {\n return null;\n }\n };\n break;\n default:\n updater = function (currentValue) { return currentValue; };\n }\n return updater;\n};\nvar getOpTypeQueriesMap = function (cacheUpdateQuery, variables) {\n var _a;\n var cacheUpdateQueryVal = typeof cacheUpdateQuery === 'function' ?\n cacheUpdateQuery(variables) :\n cacheUpdateQuery || {};\n var opTypeQueriesMap = cacheUpdateQueryVal;\n if (isDocument(cacheUpdateQueryVal) ||\n isDocument(cacheUpdateQueryVal.query) ||\n Array.isArray(cacheUpdateQuery)) {\n opTypeQueriesMap = (_a = {}, _a[CacheOperationTypes.AUTO] = [].concat(cacheUpdateQueryVal), _a);\n }\n return opTypeQueriesMap;\n};\nvar getEvaluatedOp = function (opType, mutationField, operationType) {\n var evaluatedOP = opType === CacheOperationTypes.AUTO ?\n (operationType || exports.getOpTypeFromOperationName(mutationField)) :\n opType;\n return evaluatedOP;\n};\nvar findArrayInObject = function (obj, path) {\n if (path === void 0) { path = []; }\n if (Array.isArray(obj)) {\n return path;\n }\n if (!isObject(obj)) {\n return undefined;\n }\n var result;\n Object.keys(obj).some(function (key) {\n var newPath = findArrayInObject(obj[key], path.concat(key));\n if (newPath) {\n result = newPath;\n return true;\n }\n return false;\n });\n return result;\n};\nvar getValueByPath = function (obj, path) {\n if (path === void 0) { path = []; }\n if (!isObject(obj)) {\n return obj;\n }\n return path.reduce(function (acc, elem) {\n var val = acc && acc[elem];\n if (val) {\n return val;\n }\n return null;\n }, obj);\n};\nvar setValueByPath = function (obj, path, value) {\n if (path === void 0) { path = []; }\n return path.reduce(function (acc, elem, i, arr) {\n if (arr.length - 1 === i) {\n acc[elem] = value;\n return obj;\n }\n return acc[elem];\n }, obj);\n};\nvar isDocument = function (doc) { return !!doc && doc.kind === 'Document'; };\n// make sure that the object is of type object and is not null.\nvar isObject = function (object) { return object != null && (typeof object === 'object'); };\n/**\n * Builds a MutationOptions object ready to be used by the ApolloClient to automatically update the cache according to the cacheUpdateQuery\n * parameter\n *\n * @param client An ApolloClient instance\n * @param mutation DocumentNode for the muation\n * @param variables An object with the mutation variables\n * @param cacheUpdateQuery The queries to update in the cache\n * @param typename __typename from your schema\n * @param idField The name of the field with the ID\n * @param operationType Override for the operation type\n *\n * @returns Mutation options to be used by the ApolloClient\n */\nvar buildMutation = function (client, mutation, variablesInfo, cacheUpdateQuery, typename, idField, operationType) {\n var _a, _b, _c;\n if (idField === void 0) { idField = 'id'; }\n var isVariablesInfo = typeof variablesInfo.variables === 'object';\n var variables = isVariablesInfo ? variablesInfo.variables : variablesInfo;\n var hasInputType = Object.keys(variables).length === 1 && typeof variables.input === 'object';\n var inputTypeVersionField = isVariablesInfo && variablesInfo.inputType.definitions[0].fields.find(function (f) {\n return ['version', 'expectedVersion'].find(function (n) { return n === f.name.value; }) && f.type.name.value === 'Int';\n });\n var useVersioning = hasInputType ? !!inputTypeVersionField : true;\n var opTypeQueriesMap = getOpTypeQueriesMap(cacheUpdateQuery, variables);\n var _d = hasInputType ? variables.input : variables, _e = idField || 'id', idCustomField = _d[_e];\n var comparator = function (elem) { return elem[idField] === idCustomField; };\n var version = 0;\n for (var opType in opTypeQueriesMap) {\n var queries = [].concat(opTypeQueriesMap[opType]);\n queries.forEach(function (queryEntry) {\n var query = (queryEntry && queryEntry.query) || queryEntry;\n var queryVars = (queryEntry && queryEntry.variables) || {};\n var queryField = utils_1.getOperationFieldName(query);\n var result;\n var cachedItem;\n try {\n var _a = client.readQuery({ query, variables: queryVars }), _b = queryField, queryRead = _a[_b];\n result = queryRead;\n }\n catch (err) {\n logger('Skipping query', query, err.message);\n return;\n }\n var path = findArrayInObject(result);\n if (path) {\n var arr = __spreadArrays(getValueByPath(result, path));\n cachedItem = arr.find(comparator);\n }\n else {\n cachedItem = result;\n }\n if (cachedItem) {\n version = Math.max(version, cachedItem.version);\n }\n });\n }\n ;\n var mutationField = utils_1.getOperationFieldName(mutation);\n var cache = client &&\n client instanceof client_1.default &&\n client.isOfflineEnabled() &&\n client.cache;\n var versionFieldName = inputTypeVersionField ? inputTypeVersionField.name.value : '';\n return {\n mutation: mutation,\n variables: hasInputType\n ? { input: __assign(__assign({}, (useVersioning && (_a = {}, _a[versionFieldName] = version, _a))), variables.input) }\n : __assign({ version: version, expectedVersion: version }, variables),\n optimisticResponse: typename ? (_b = {\n __typename: \"Mutation\"\n },\n _b[mutationField] = __assign(__assign((_c = { __typename: typename }, _c[idField] = (hasInputType ? variables.input : variables)[idField] || uuid_1.v4(), _c), (hasInputType ? variables.input : variables)), { version: version + 1 }),\n _b) : null,\n update: function (proxy, _a) {\n var _b = mutationField, mutatedItem = _a.data[_b];\n var _loop_1 = function (opType) {\n var queries = [].concat(opTypeQueriesMap[opType]);\n var updaterFn = exports.getUpdater(getEvaluatedOp(opType, mutationField, operationType), idField);\n queries.forEach(function (queryEntry) {\n var query = (queryEntry && queryEntry.query) || queryEntry;\n var queryField = utils_1.getOperationFieldName(query);\n var queryVars = (queryEntry && queryEntry.variables) || {};\n if (cache) {\n queryVars = link_1.replaceUsingMap(__assign({}, queryVars), cache.getIdsMap());\n }\n var data;\n var updatedOpResult;\n try {\n data = proxy.readQuery({ query: query, variables: queryVars });\n }\n catch (err) {\n logger('Skipping query', query, err.message);\n return;\n }\n var opResultCachedValue = data[queryField];\n var path = findArrayInObject(opResultCachedValue);\n if (path) {\n var arr = __spreadArrays(getValueByPath(opResultCachedValue, path));\n updatedOpResult = updaterFn(arr, mutatedItem);\n }\n else {\n updatedOpResult = updaterFn(opResultCachedValue, mutatedItem);\n }\n if (!path || path.length === 0) {\n data[queryField] = updatedOpResult;\n }\n else {\n setValueByPath(data[queryField], path, updatedOpResult);\n }\n proxy.writeQuery({ query: query, variables: queryVars, data: data });\n });\n };\n for (var opType in opTypeQueriesMap) {\n _loop_1(opType);\n }\n },\n };\n};\nexports.buildMutation = buildMutation;\n","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2017 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar client_1 = require(\"./client\");\n__export(require(\"./client\"));\nvar aws_appsync_auth_link_1 = require(\"aws-appsync-auth-link\");\nexports.Signer = aws_appsync_auth_link_1.Signer;\n__export(require(\"./helpers/offline\"));\nexports.default = client_1.default;\n","\"use strict\";\n/*!\n * Copyright 2017-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar lib_storage_1 = require(\"@aws-sdk/lib-storage\");\nvar client_s3_1 = require(\"@aws-sdk/client-s3\");\nexports.default = (function (fileField, _a) {\n var credentials = _a.credentials;\n var Bucket = fileField.bucket, Key = fileField.key, region = fileField.region, ContentType = fileField.mimeType, Body = fileField.localUri;\n var target = { Bucket: Bucket, Key: Key, Body: Body, ContentType: ContentType };\n var parallelUploads3 = new lib_storage_1.Upload({\n client: new client_s3_1.S3({ credentials: credentials, region: region }) || new client_s3_1.S3Client({ credentials: credentials, region: region }),\n leavePartsOnError: false,\n params: target,\n });\n return parallelUploads3.done();\n});\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar apollo_client_1 = require(\"apollo-client\");\nvar apollo_link_1 = require(\"apollo-link\");\nvar apollo_link_2 = require(\"apollo-link\");\nvar apollo_utilities_1 = require(\"apollo-utilities\");\nvar graphql_1 = require(\"graphql\");\nvar complex_object_link_uploader_1 = require(\"./complex-object-link-uploader\");\nvar ComplexObjectLink = /** @class */ (function (_super) {\n __extends(ComplexObjectLink, _super);\n function ComplexObjectLink(credentials) {\n var _this = _super.call(this) || this;\n _this.link = exports.complexObjectLink(credentials);\n return _this;\n }\n ComplexObjectLink.prototype.request = function (operation, forward) {\n return this.link.request(operation, forward);\n };\n return ComplexObjectLink;\n}(apollo_link_2.ApolloLink));\nexports.ComplexObjectLink = ComplexObjectLink;\nexports.complexObjectLink = function (credentials) {\n return new apollo_link_2.ApolloLink(function (operation, forward) {\n return new apollo_link_1.Observable(function (observer) {\n var handle;\n var operationType = apollo_utilities_1.getOperationDefinition(operation.query).operation;\n var isMutation = operationType === 'mutation';\n var objectsToUpload = isMutation ? findInObject(operation.variables) : {};\n var uploadPromise = Promise.resolve(operation);\n if (Object.keys(objectsToUpload).length) {\n var uploadCredentials = typeof credentials === 'function' ? credentials.call() : credentials;\n uploadPromise = Promise.resolve(uploadCredentials)\n .then(function (credentials) {\n var uploadPromises = Object.entries(objectsToUpload).map(function (_a) {\n var _ = _a[0], fileField = _a[1];\n return complex_object_link_uploader_1.default(fileField, { credentials: credentials });\n });\n return Promise.all(__spreadArrays([operation], uploadPromises));\n })\n .then(function (_a) {\n var operation = _a[0], all = _a.slice(1);\n return operation;\n })\n .catch(function (err) {\n var error = new graphql_1.GraphQLError(err.message);\n error.errorType = 'AWSAppSyncClient:S3UploadException';\n throw new apollo_client_1.ApolloError({\n graphQLErrors: [error],\n extraInfo: err,\n });\n });\n }\n uploadPromise\n .then(forward)\n .then(function (observable) {\n handle = observable.subscribe({\n next: observer.next.bind(observer),\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer),\n });\n }).catch(function (err) {\n observer.error(err);\n });\n return function () {\n if (handle)\n handle.unsubscribe();\n };\n });\n });\n};\nvar complexObjectFields = [\n { name: 'bucket', type: 'string' },\n { name: 'key', type: 'string' },\n { name: 'region', type: 'string' },\n { name: 'mimeType', type: 'string' },\n { name: 'localUri', type: ['object', 'string'] },\n];\nvar findInObject = function (obj) {\n var testFn = function (val) {\n return complexObjectFields.every(function (field) {\n var hasValue = val[field.name];\n var types = Array.isArray(field.type) ? field.type : [field.type];\n var isOfType = hasValue && types.reduce(function (prev, curr) {\n return prev || typeof val[field.name] === curr;\n }, false);\n return isOfType;\n });\n };\n var _findInObject = function (obj, path, acc) {\n if (path === void 0) { path = ''; }\n if (acc === void 0) { acc = {}; }\n if (!obj) {\n return acc;\n }\n if (testFn(obj)) {\n acc[path] = __assign({}, obj);\n delete obj.mimeType;\n delete obj.localUri;\n }\n if (typeof obj === 'object') {\n Object.keys(obj).forEach(function (key) {\n var val = obj[key];\n if (Array.isArray(val)) {\n val.forEach(function (v, i) { return _findInObject(v, path + \".\" + key + \"[\" + i + \"]\", acc); });\n }\n else if (typeof val === 'object') {\n _findInObject(val, \"\" + path + (path && '.') + key, acc);\n }\n });\n }\n return _findInObject(null, path, acc);\n };\n return _findInObject(obj);\n};\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar apollo_link_1 = require(\"apollo-link\");\nvar apollo_link_retry_1 = require(\"apollo-link-retry\");\nvar utils_1 = require(\"../utils\");\nvar ConflictResolutionLink = /** @class */ (function (_super) {\n __extends(ConflictResolutionLink, _super);\n function ConflictResolutionLink(conflictResolver, maxRetries) {\n if (maxRetries === void 0) { maxRetries = 10; }\n var _this = _super.call(this) || this;\n _this.conflictResolver = conflictResolver;\n _this.maxRetries = maxRetries;\n _this.link = apollo_link_1.ApolloLink.from([\n new apollo_link_retry_1.RetryLink({\n delay: { initial: 0, max: 0 },\n attempts: function (count, operation, error) {\n if (count > _this.maxRetries) {\n return false;\n }\n if (_this.hasConflictError(error)) {\n if (typeof _this.conflictResolver === 'function') {\n var data = error.data;\n var mutation = operation.query;\n var mutationName = utils_1.getOperationFieldName(mutation);\n var operationType = 'mutation';\n var retries = count;\n var variables = __assign({}, operation.variables);\n var newVars = _this.conflictResolver({\n data: data,\n mutation: mutation,\n mutationName: mutationName,\n operationType: operationType,\n retries: retries,\n variables: variables,\n });\n if (newVars === 'DISCARD') {\n return false;\n }\n if (newVars) {\n operation.variables = newVars;\n return true;\n }\n }\n }\n return false;\n }\n }),\n new apollo_link_1.ApolloLink(function (op, fwd) { return new apollo_link_1.Observable(function (observer) {\n fwd(op).subscribe({\n next: function (data) {\n var err = (data.errors || []).find(_this.hasConflictError);\n if (err) {\n observer.error(err);\n }\n else {\n observer.next(__assign(__assign({}, data), { context: __assign(__assign({}, data.context), { additionalDataContext: {\n newVars: op.variables,\n } }) }));\n }\n },\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer),\n });\n return function () { return null; };\n }); })\n ]);\n return _this;\n }\n ConflictResolutionLink.prototype.hasConflictError = function (error) {\n var hasConflictError = [\n 'DynamoDB:ConditionalCheckFailedException'\n ].some(function (err) { return err === error.errorType; });\n return hasConflictError;\n };\n ConflictResolutionLink.prototype.request = function (operation, forward) {\n if (typeof this.conflictResolver !== 'function') {\n return utils_1.passthroughLink(operation, forward);\n }\n return this.link.request(operation, forward);\n };\n return ConflictResolutionLink;\n}(apollo_link_1.ApolloLink));\nexports.default = ConflictResolutionLink;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar offline_link_1 = require(\"./offline-link\");\nexports.OfflineLink = offline_link_1.OfflineLink;\nexports.replaceUsingMap = offline_link_1.replaceUsingMap;\nvar complex_object_link_1 = require(\"./complex-object-link\");\nexports.ComplexObjectLink = complex_object_link_1.ComplexObjectLink;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar apollo_cache_inmemory_1 = require(\"apollo-cache-inmemory\");\nvar apollo_link_1 = require(\"apollo-link\");\nvar apollo_utilities_1 = require(\"apollo-utilities\");\nvar constants_1 = require(\"@redux-offline/redux-offline/lib/constants\");\nvar cache_1 = require(\"../cache\");\nvar utils_1 = require(\"../utils\");\nvar apollo_client_1 = require(\"apollo-client\");\nvar retry_link_1 = require(\"./retry-link\");\nvar logger = utils_1.rootLogger.extend('offline-link');\nvar actions = {\n SAVE_SNAPSHOT: 'SAVE_SNAPSHOT',\n ENQUEUE: 'ENQUEUE_OFFLINE_MUTATION',\n COMMIT: 'COMMIT_OFFLINE_MUTATION',\n ROLLBACK: 'ROLLBACK_OFFLINE_MUTATION',\n SAVE_SERVER_ID: 'SAVE_SERVER_ID',\n};\nvar IS_OPTIMISTIC_KEY = typeof Symbol !== 'undefined' ? Symbol('isOptimistic') : '@@isOptimistic';\nexports.isOptimistic = function (obj) { return typeof obj[IS_OPTIMISTIC_KEY] !== undefined ? !!obj[IS_OPTIMISTIC_KEY] : false; };\nvar OfflineLink = /** @class */ (function (_super) {\n __extends(OfflineLink, _super);\n function OfflineLink(store) {\n var _this = _super.call(this) || this;\n _this.store = store;\n return _this;\n }\n OfflineLink.prototype.request = function (operation, forward) {\n var _this = this;\n return new apollo_link_1.Observable(function (observer) {\n var _a;\n var online = _this.store.getState().offline.online;\n var operationType = apollo_utilities_1.getOperationDefinition(operation.query).operation;\n var isMutation = operationType === 'mutation';\n var isQuery = operationType === 'query';\n if (!online && isQuery) {\n var data = processOfflineQuery(operation, _this.store);\n observer.next({ data: data });\n observer.complete();\n return function () { return null; };\n }\n if (isMutation) {\n var _b = operation.getContext(), _c = _b.AASContext, _d = (_c === void 0 ? {} : _c).doIt, doIt = _d === void 0 ? false : _d, cache = _b.cache;\n if (!doIt) {\n var _e = _this.store.getState(), _f = cache_1.METADATA_KEY, enqueuedMutations = _e[_f].snapshot.enqueuedMutations;\n if (enqueuedMutations === 0) {\n exports.boundSaveSnapshot(_this.store, cache);\n }\n var data = enqueueMutation(operation, _this.store, observer);\n if (!online) {\n observer.next((_a = { data: data }, _a[IS_OPTIMISTIC_KEY] = true, _a));\n observer.complete();\n }\n return function () { return null; };\n }\n }\n var handle = forward(operation).subscribe({\n next: observer.next.bind(observer),\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer),\n });\n return function () {\n if (handle)\n handle.unsubscribe();\n };\n });\n };\n return OfflineLink;\n}(apollo_link_1.ApolloLink));\nexports.OfflineLink = OfflineLink;\nexports.boundSaveSnapshot = function (store, cache) { return store.dispatch(saveSnapshot(cache)); };\nvar saveSnapshot = function (cache) { return ({\n type: actions.SAVE_SNAPSHOT,\n payload: { cache: cache },\n}); };\nvar processOfflineQuery = function (operation, theStore) {\n var _a = theStore.getState(), _b = cache_1.NORMALIZED_CACHE_KEY, _c = _a[_b], normalizedCache = _c === void 0 ? {} : _c;\n var query = operation.query, variables = operation.variables;\n var cache = operation.getContext().cache;\n var store = apollo_cache_inmemory_1.defaultNormalizedCacheFactory(normalizedCache);\n var data = cache.storeReader.readQueryFromStore({\n store: store,\n query: query,\n variables: variables,\n });\n return data;\n};\nvar enqueueMutation = function (operation, theStore, observer) {\n var mutation = operation.query, variables = operation.variables;\n var _a = operation.getContext().AASContext, origOptimistic = _a.optimisticResponse, update = _a.update, updateQueries = _a.updateQueries, refetchQueries = _a.refetchQueries, fetchPolicy = _a.fetchPolicy;\n var optimisticResponse = typeof origOptimistic === 'function' ? origOptimistic(variables) : origOptimistic;\n setImmediate(function () {\n var effect = {\n optimisticResponse: optimisticResponse,\n operation: operation,\n update: update,\n updateQueries: updateQueries,\n refetchQueries: refetchQueries,\n fetchPolicy: fetchPolicy,\n observer: observer,\n };\n theStore.dispatch({\n type: actions.ENQUEUE,\n payload: { optimisticResponse: optimisticResponse },\n meta: {\n offline: {\n effect: effect,\n commit: { type: actions.COMMIT },\n rollback: { type: actions.ROLLBACK },\n }\n }\n });\n });\n var result;\n if (optimisticResponse) {\n result = optimisticResponse;\n }\n else {\n var mutationDefinition = apollo_utilities_1.getMutationDefinition(mutation);\n result = mutationDefinition.selectionSet.selections.reduce(function (acc, elem) {\n acc[apollo_utilities_1.resultKeyNameFromField(elem)] = null;\n return acc;\n }, {});\n }\n return result;\n};\nvar effect = function (store, client, effect, action, callback) { return __awaiter(void 0, void 0, void 0, function () {\n var doIt, origOptimistic, _a, origVars, mutation, context, update, updateQueries, refetchQueries, fetchPolicy, observer, _b, _c, idsMap, variables, optimisticResponse;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n doIt = true;\n origOptimistic = effect.optimisticResponse, _a = effect.operation, origVars = _a.variables, mutation = _a.query, context = _a.context, update = effect.update, updateQueries = effect.updateQueries, refetchQueries = effect.refetchQueries, fetchPolicy = effect.fetchPolicy, observer = effect.observer;\n return [4 /*yield*/, client.hydrated()];\n case 1:\n _e.sent();\n _b = store.getState(), _c = cache_1.METADATA_KEY, idsMap = _b[_c].idsMap;\n variables = __assign(__assign({}, exports.replaceUsingMap(__assign({}, origVars), idsMap)), (_d = {}, _d[retry_link_1.SKIP_RETRY_KEY] = true, _d));\n optimisticResponse = exports.replaceUsingMap(__assign({}, origOptimistic), idsMap);\n return [2 /*return*/, new Promise(function (resolve, reject) {\n if (!client.queryManager) {\n client.initQueryManager();\n }\n var buildOperationForLink = client.queryManager.buildOperationForLink;\n var extraContext = __assign(__assign({ AASContext: {\n doIt: doIt\n } }, context), { optimisticResponse: optimisticResponse });\n var operation = buildOperationForLink.call(client.queryManager, mutation, variables, extraContext);\n logger('Executing link', operation);\n apollo_link_1.execute(client.link, operation).subscribe({\n next: function (data) {\n var _a;\n boundSaveServerId(store, optimisticResponse, data.data);\n var _b = store.getState(), _c = cache_1.METADATA_KEY, _d = _b[_c], idsMap = _d.idsMap, cacheSnapshot = _d.snapshot.cache, _e = _b.offline.outbox, enquededMutations = _e.slice(1);\n // Restore from cache snapshot\n client.cache.restore(cacheSnapshot);\n var dataStore = client.queryManager.dataStore;\n if (fetchPolicy !== 'no-cache') {\n dataStore.markMutationResult({\n mutationId: null,\n result: data,\n document: mutation,\n variables: variables,\n updateQueries: {},\n update: update\n });\n }\n exports.boundSaveSnapshot(store, client.cache);\n // Apply enqueued update functions to new cache\n var enqueuedActionsFilter = [\n exports.offlineEffectConfig.enqueueAction\n ];\n enquededMutations\n .filter(function (_a) {\n var type = _a.type;\n return enqueuedActionsFilter.indexOf(type) > -1;\n })\n .forEach(function (_a) {\n var effect = _a.meta.offline.effect;\n var _b = effect, _c = _b.operation, _d = _c === void 0 ? {} : _c, _e = _d.variables, variables = _e === void 0 ? {} : _e, _f = _d.query, document = _f === void 0 ? null : _f, update = _b.update, origOptimisticResponse = _b.optimisticResponse, fetchPolicy = _b.fetchPolicy;\n if (typeof update !== 'function') {\n logger('No update function for mutation', { document: document, variables: variables });\n return;\n }\n var optimisticResponse = exports.replaceUsingMap(__assign({}, origOptimisticResponse), idsMap);\n var result = { data: optimisticResponse };\n if (fetchPolicy !== 'no-cache') {\n logger('Running update function for mutation', { document: document, variables: variables });\n dataStore.markMutationResult({\n mutationId: null,\n result: result,\n document: document,\n variables: variables,\n updateQueries: {},\n update: update\n });\n }\n });\n client.queryManager.broadcastQueries();\n resolve({ data: data });\n if (observer.next && !observer.closed) {\n observer.next(__assign(__assign({}, data), (_a = {}, _a[IS_OPTIMISTIC_KEY] = false, _a)));\n observer.complete();\n }\n else {\n // throw new Error('Manually interact with cache');\n }\n if (typeof callback === 'function') {\n var mutationName_1 = utils_1.getOperationFieldName(mutation);\n var _f = data.context || {}, _g = _f.additionalDataContext, _h = (_g === void 0 ? {} : _g).newVars, newVars_1 = _h === void 0 ? operation.variables : _h, restContext = __rest(_f, [\"additionalDataContext\"]);\n if (!Object.keys(restContext || {}).length) {\n delete data.context;\n }\n else {\n data.context = restContext;\n }\n apollo_utilities_1.tryFunctionOrLogError(function () {\n var errors = data.errors ? {\n mutation: mutationName_1,\n variables: newVars_1,\n error: new apollo_client_1.ApolloError({\n graphQLErrors: __spreadArrays(data.errors),\n }),\n notified: !!observer.next,\n } : null;\n var success = errors === null ? __assign(__assign({ mutation: mutationName_1, variables: newVars_1 }, data), { notified: !!observer.next }) : null;\n callback(errors, success);\n });\n }\n },\n error: function (err) {\n logger('Error when executing link', err);\n reject(err);\n }\n });\n })];\n }\n });\n}); };\nvar reducer = function (dataIdFromObject) { return function (state, action) {\n var type = action.type, payload = action.payload;\n switch (type) {\n case constants_1.PERSIST_REHYDRATE:\n var _a = payload, _b = cache_1.METADATA_KEY, rehydratedState = _a[_b];\n return rehydratedState || state;\n default:\n var _c = state || {}, _d = _c.idsMap, origIdsMap = _d === void 0 ? {} : _d, _e = _c.snapshot, origSnapshot = _e === void 0 ? {} : _e, restState = __rest(_c, [\"idsMap\", \"snapshot\"]);\n var snapshot = snapshotReducer(origSnapshot, action);\n var idsMap = idsMapReducer(origIdsMap, __assign(__assign({}, action), { remainingMutations: snapshot.enqueuedMutations }), dataIdFromObject);\n return __assign(__assign({}, restState), { snapshot: snapshot,\n idsMap: idsMap });\n }\n}; };\nvar snapshotReducer = function (state, action) {\n var enqueuedMutations = enqueuedMutationsReducer(state && state.enqueuedMutations, action);\n var cache = cacheSnapshotReducer(state && state.cache, __assign(__assign({}, action), { enqueuedMutations: enqueuedMutations }));\n return {\n enqueuedMutations: enqueuedMutations,\n cache: cache,\n };\n};\nvar enqueuedMutationsReducer = function (state, action) {\n if (state === void 0) { state = 0; }\n var type = action.type;\n switch (type) {\n case actions.ENQUEUE:\n return state + 1;\n case actions.COMMIT:\n case actions.ROLLBACK:\n return state - 1;\n default:\n return state;\n }\n};\nvar cacheSnapshotReducer = function (state, action) {\n if (state === void 0) { state = {}; }\n var type = action.type, payload = action.payload;\n switch (type) {\n case actions.SAVE_SNAPSHOT:\n var cache = payload.cache;\n var cacheContents = __assign({}, cache.extract(false));\n return cacheContents;\n default:\n return state;\n }\n};\nvar boundSaveServerId = function (store, optimisticResponse, data) { return store.dispatch(saveServerId(optimisticResponse, data)); };\nvar saveServerId = function (optimisticResponse, data) { return ({\n type: actions.SAVE_SERVER_ID,\n payload: { data: data, optimisticResponse: optimisticResponse },\n}); };\nvar idsMapReducer = function (state, action, dataIdFromObject) {\n if (state === void 0) { state = {}; }\n var type = action.type, _a = action.payload, payload = _a === void 0 ? {} : _a;\n var optimisticResponse = payload.optimisticResponse;\n switch (type) {\n case actions.ENQUEUE:\n var ids = exports.getIds(dataIdFromObject, optimisticResponse);\n var entries = Object.values(ids).reduce(function (acc, id) { return (acc[id] = null, acc); }, {});\n return __assign(__assign({}, state), entries);\n case actions.COMMIT:\n var remainingMutations = action.remainingMutations;\n // Clear ids map on last mutation\n return remainingMutations ? state : {};\n case actions.SAVE_SERVER_ID:\n var data = payload.data;\n var oldIds = exports.getIds(dataIdFromObject, optimisticResponse);\n var newIds = exports.getIds(dataIdFromObject, data);\n var mapped = mapIds(oldIds, newIds);\n return __assign(__assign({}, state), mapped);\n default:\n return state;\n }\n};\nvar discard = function (callback, error, action, retries) {\n var discardResult = _discard(error, action, retries);\n if (discardResult) {\n // Call global error callback and observer\n var observer = action.meta.offline.effect.observer;\n if (observer && !observer.closed) {\n observer.error(error);\n }\n if (typeof callback === 'function') {\n apollo_utilities_1.tryFunctionOrLogError(function () {\n callback({ error: error }, null);\n });\n }\n }\n return discardResult;\n};\nvar _discard = function (error, action, retries) {\n var _a = error.graphQLErrors, graphQLErrors = _a === void 0 ? [] : _a;\n if (graphQLErrors.length) {\n logger('Discarding action.', action, graphQLErrors);\n return true;\n }\n else {\n var _b = error.networkError, _c = (_b === void 0 ? { graphQLErrors: [] } : _b).graphQLErrors, graphQLErrors_1 = _c === void 0 ? [] : _c;\n var appSyncClientError = graphQLErrors_1.find(function (err) { return err.errorType && err.errorType.startsWith('AWSAppSyncClient:'); });\n if (appSyncClientError) {\n logger('Discarding action.', action, appSyncClientError);\n return true;\n }\n }\n return error.permanent || retries > 10;\n};\n//#region utils\nexports.replaceUsingMap = function (obj, map) {\n if (map === void 0) { map = {}; }\n if (!obj || !map) {\n return obj;\n }\n var newVal = map[obj];\n if (newVal) {\n obj = newVal;\n return obj;\n }\n if (typeof obj === 'object') {\n Object.keys(obj).forEach(function (key) {\n var val = obj[key];\n if (Array.isArray(val)) {\n obj[key] = val.map(function (v, i) { return exports.replaceUsingMap(v, map); });\n }\n else if (typeof val === 'object') {\n obj[key] = exports.replaceUsingMap(val, map);\n }\n else {\n var newVal_1 = map[val];\n if (newVal_1) {\n obj[key] = newVal_1;\n }\n }\n });\n }\n return obj;\n};\nexports.getIds = function (dataIdFromObject, obj, path, acc) {\n if (path === void 0) { path = ''; }\n if (acc === void 0) { acc = {}; }\n if (!obj) {\n return acc;\n }\n if (typeof obj === 'object') {\n var dataId = dataIdFromObject(obj);\n if (dataId) {\n var _a = dataId.match(/(.+:)?(.+)/) || [], _b = _a[2], id = _b === void 0 ? null : _b;\n if (utils_1.isUuid(dataId)) {\n acc[path] = id;\n }\n }\n Object.keys(obj).forEach(function (key) {\n var val = obj[key];\n if (Array.isArray(val)) {\n val.forEach(function (v, i) { return exports.getIds(dataIdFromObject, v, path + \".\" + key + \"[\" + i + \"]\", acc); });\n }\n else if (typeof val === 'object') {\n exports.getIds(dataIdFromObject, val, \"\" + path + (path && '.') + key, acc);\n }\n });\n }\n return exports.getIds(dataIdFromObject, null, path, acc);\n};\nvar intersectingKeys = function (obj1, obj2) {\n if (obj1 === void 0) { obj1 = {}; }\n if (obj2 === void 0) { obj2 = {}; }\n var keys1 = Object.keys(obj1);\n var keys2 = Object.keys(obj2);\n return keys1.filter(function (k) { return keys2.indexOf(k) !== -1; });\n};\nvar mapIds = function (obj1, obj2) { return intersectingKeys(obj1, obj2).reduce(function (acc, k) { return (acc[obj1[k]] = obj2[k], acc); }, {}); };\n//#endregion\nexports.offlineEffectConfig = {\n enqueueAction: actions.ENQUEUE,\n effect: effect,\n discard: discard,\n reducer: reducer,\n};\n","\"use strict\";\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar apollo_link_1 = require(\"apollo-link\");\nvar apollo_link_retry_1 = require(\"apollo-link-retry\");\nvar apollo_utilities_1 = require(\"apollo-utilities\");\nexports.PERMANENT_ERROR_KEY = typeof Symbol !== 'undefined' ? Symbol('permanentError') : '@@permanentError';\nvar BASE_TIME_MS = 100;\nvar JITTER_FACTOR = 100;\nvar MAX_DELAY_MS = 5 * 60 * 1000;\nvar getDelay = function (count) { return ((Math.pow(2, count)) * BASE_TIME_MS) + (JITTER_FACTOR * Math.random()); };\nexports.SKIP_RETRY_KEY = '@@skipRetry';\nexports.getEffectDelay = function (_action, retries) {\n var delay = getDelay(retries);\n return delay <= MAX_DELAY_MS ? delay : null;\n};\nexports.createRetryLink = function (origLink) {\n var delay;\n var retryLink = new apollo_link_retry_1.RetryLink({\n attempts: function (count, operation, error) {\n var _a = error, _b = exports.PERMANENT_ERROR_KEY, _c = _a[_b], permanent = _c === void 0 ? false : _c;\n var _d = operation.variables, _e = exports.SKIP_RETRY_KEY, _f = _d[_e], skipRetry = _f === void 0 ? false : _f;\n if (permanent) {\n return false;\n }\n if (error.statusCode >= 400 && error.statusCode < 500) {\n return false;\n }\n if (apollo_utilities_1.graphQLResultHasError({ errors: error ? error.graphQLErrors : [] })) {\n return false;\n }\n if (skipRetry) {\n return false;\n }\n delay = getDelay(count);\n return delay <= MAX_DELAY_MS;\n },\n delay: function (_count, _operation, _error) { return delay; },\n });\n var link = apollo_link_1.ApolloLink.from([\n retryLink,\n origLink,\n ]);\n return new apollo_link_1.ApolloLink(function (operation, forward) {\n var _a = operation.variables, _b = exports.SKIP_RETRY_KEY, _c = _a[_b], skipRetry = _c === void 0 ? false : _c, otherVars = __rest(_a, [typeof _b === \"symbol\" ? _b : _b + \"\"]);\n if (skipRetry) {\n operation.variables = otherVars;\n }\n return link.request(operation, forward);\n });\n};\n","\"use strict\";\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar utils_1 = require(\"./utils\");\nvar redux_1 = require(\"redux\");\nvar redux_offline_1 = require(\"@redux-offline/redux-offline\");\nvar defaults_1 = require(\"@redux-offline/redux-offline/lib/defaults\");\nvar constants_1 = require(\"@redux-offline/redux-offline/lib/constants\");\nvar constants_2 = require(\"redux-persist/lib/constants\");\nvar redux_thunk_1 = require(\"redux-thunk\");\nvar index_1 = require(\"./cache/index\");\nvar retry_link_1 = require(\"./link/retry-link\");\nvar offline_link_1 = require(\"./link/offline-link\");\nvar deltaSync_1 = require(\"./deltaSync\");\nvar apollo_link_1 = require(\"apollo-link\");\nvar detectNetwork = defaults_1.default.detectNetwork;\nvar logger = utils_1.rootLogger.extend('store');\nexports.DEFAULT_KEY_PREFIX = constants_2.KEY_PREFIX;\nvar newStore = function (_a) {\n var _b = _a.clientGetter, clientGetter = _b === void 0 ? function () { return null; } : _b, _c = _a.persistCallback, persistCallback = _c === void 0 ? function () { return null; } : _c, dataIdFromObject = _a.dataIdFromObject, keyPrefix = _a.keyPrefix, storage = _a.storage, _d = _a.callback, callback = _d === void 0 ? function () { } : _d;\n logger('Creating store');\n var store = redux_1.createStore(redux_1.combineReducers(__assign(__assign({ rehydrated: function (state, action) {\n if (state === void 0) { state = false; }\n switch (action.type) {\n case constants_1.PERSIST_REHYDRATE:\n return true;\n default:\n return state;\n }\n } }, index_1.reducer()), reducer(dataIdFromObject))), typeof window !== 'undefined' && window.__REDUX_DEVTOOLS_EXTENSION__ && window.__REDUX_DEVTOOLS_EXTENSION__(), redux_1.compose(redux_1.applyMiddleware(redux_thunk_1.default), redux_offline_1.offline(__assign(__assign({}, defaults_1.default), { retry: retry_link_1.getEffectDelay, persistCallback: function () {\n logger('Storage ready');\n persistCallback();\n }, persistOptions: __assign(__assign(__assign({}, (keyPrefix && { keyPrefix: keyPrefix + \":\" })), (storage && { storage: storage })), { whitelist: [\n index_1.NORMALIZED_CACHE_KEY,\n index_1.METADATA_KEY,\n 'offline',\n ] }), effect: function (effectPayload, action) { return effect(effectPayload, action, store, clientGetter(), callback, detectNetwork); }, discard: function (error, action, retries) { return discard(callback, error, action, retries); } }))));\n return store;\n};\nexports.createStore = newStore;\nvar offlineEffectsConfigs = [\n offline_link_1.offlineEffectConfig,\n deltaSync_1.offlineEffectConfig\n].filter(Boolean).reduce(function (acc, _a) {\n var enqueueAction = _a.enqueueAction, rest = __rest(_a, [\"enqueueAction\"]);\n acc[enqueueAction] = __assign({ enqueueAction: enqueueAction }, rest);\n return acc;\n}, {});\nvar reducer = function (dataIdFromObject) {\n var _a;\n return (_a = {},\n _a[index_1.METADATA_KEY] = function (state, action) { return Object.entries(offlineEffectsConfigs)\n .reduce(function (acc, _a) {\n var _b = _a[1].reducer, reducer = _b === void 0 ? function () { return function (x) { return x; }; } : _b;\n return reducer(dataIdFromObject)(acc, action);\n }, state); },\n _a);\n};\nvar effect = function (effect, action, store, clientGetter, callback, offlineStatusChangeCallbackCreator) { return __awaiter(void 0, void 0, void 0, function () {\n var config, observable;\n return __generator(this, function (_a) {\n config = offlineEffectsConfigs[action.type];\n observable = new apollo_link_1.Observable(function (observer) {\n offlineStatusChangeCallbackCreator(function (onlineStatus) {\n observer.next(onlineStatus);\n });\n return function () { };\n });\n if (config && config.effect) {\n logger(\"Executing effect for \" + action.type);\n return [2 /*return*/, config.effect(store, clientGetter, effect, action, callback, observable)];\n }\n logger(\"No effect found for \" + action.type);\n return [2 /*return*/];\n });\n}); };\nvar discard = function (callback, error, action, retries) {\n var discard = offlineEffectsConfigs[action.type].discard;\n if (discard) {\n logger(\"Executing discard for \" + action.type, discard);\n return discard(callback, error, action, retries);\n }\n logger(\"No custom discard found for \" + action.type + \". Discarding effect.\");\n return true;\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar apollo_utilities_1 = require(\"apollo-utilities\");\nvar apollo_link_1 = require(\"apollo-link\");\nvar sha256_js_1 = require(\"@aws-crypto/sha256-js\");\nvar util_hex_encoding_1 = require(\"@aws-sdk/util-hex-encoding\");\nexports.passthroughLink = function (op, forward) { return (forward ? forward(op) : apollo_link_1.Observable.of()); };\nexports.isUuid = function (val) { return typeof val === 'string' && val.match(/[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}/i); };\nexports.getOperationFieldName = function (operation) { return apollo_utilities_1.resultKeyNameFromField(operation.definitions[0].selectionSet.selections[0]); };\nexports.hash = function (src) {\n debugger;\n var arg = src || {};\n var hash = new sha256_js_1.Sha256();\n hash.update(arg);\n return util_hex_encoding_1.toHex(hash.digestSync());\n};\nvar logger_1 = require(\"./logger\");\nexports.rootLogger = logger_1.default;\n","\"use strict\";\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar debug_1 = require(\"debug\");\nvar debugLogger = debug_1.default('aws-appsync');\nvar extend = function (category) {\n if (category === void 0) { category = ''; }\n var newCategory = category ? __spreadArrays(this.namespace.split(':'), [category]).join(':') : this.namespace;\n var result = debug_1.default(newCategory);\n result.extend = extend.bind(result);\n return result;\n};\ndebugLogger.extend = extend.bind(debugLogger);\nexports.default = debugLogger;\n","import {\n BLOCK_SIZE,\n DIGEST_LENGTH,\n INIT,\n KEY,\n MAX_HASHABLE_LENGTH\n} from \"./constants\";\n\n/**\n * @internal\n */\nexport class RawSha256 {\n private state: Int32Array = Int32Array.from(INIT);\n private temp: Int32Array = new Int32Array(64);\n private buffer: Uint8Array = new Uint8Array(64);\n private bufferLength: number = 0;\n private bytesHashed: number = 0;\n\n /**\n * @internal\n */\n finished: boolean = false;\n\n update(data: Uint8Array): void {\n if (this.finished) {\n throw new Error(\"Attempted to update an already finished hash.\");\n }\n\n let position = 0;\n let { byteLength } = data;\n this.bytesHashed += byteLength;\n\n if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) {\n throw new Error(\"Cannot hash more than 2^53 - 1 bits\");\n }\n\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n }\n\n digest(): Uint8Array {\n if (!this.finished) {\n const bitsHashed = this.bytesHashed * 8;\n const bufferView = new DataView(\n this.buffer.buffer,\n this.buffer.byteOffset,\n this.buffer.byteLength\n );\n\n const undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (let i = this.bufferLength; i < BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n\n for (let i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(\n BLOCK_SIZE - 8,\n Math.floor(bitsHashed / 0x100000000),\n true\n );\n bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed);\n\n this.hashBuffer();\n\n this.finished = true;\n }\n\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n const out = new Uint8Array(DIGEST_LENGTH);\n for (let i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n\n return out;\n }\n\n private hashBuffer(): void {\n const { buffer, state } = this;\n\n let state0 = state[0],\n state1 = state[1],\n state2 = state[2],\n state3 = state[3],\n state4 = state[4],\n state5 = state[5],\n state6 = state[6],\n state7 = state[7];\n\n for (let i = 0; i < BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] =\n ((buffer[i * 4] & 0xff) << 24) |\n ((buffer[i * 4 + 1] & 0xff) << 16) |\n ((buffer[i * 4 + 2] & 0xff) << 8) |\n (buffer[i * 4 + 3] & 0xff);\n } else {\n let u = this.temp[i - 2];\n const t1 =\n ((u >>> 17) | (u << 15)) ^ ((u >>> 19) | (u << 13)) ^ (u >>> 10);\n\n u = this.temp[i - 15];\n const t2 =\n ((u >>> 7) | (u << 25)) ^ ((u >>> 18) | (u << 14)) ^ (u >>> 3);\n\n this.temp[i] =\n ((t1 + this.temp[i - 7]) | 0) + ((t2 + this.temp[i - 16]) | 0);\n }\n\n const t1 =\n ((((((state4 >>> 6) | (state4 << 26)) ^\n ((state4 >>> 11) | (state4 << 21)) ^\n ((state4 >>> 25) | (state4 << 7))) +\n ((state4 & state5) ^ (~state4 & state6))) |\n 0) +\n ((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) |\n 0;\n\n const t2 =\n ((((state0 >>> 2) | (state0 << 30)) ^\n ((state0 >>> 13) | (state0 << 19)) ^\n ((state0 >>> 22) | (state0 << 10))) +\n ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) |\n 0;\n\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n }\n}\n","/**\n * @internal\n */\nexport const BLOCK_SIZE: number = 64;\n\n/**\n * @internal\n */\nexport const DIGEST_LENGTH: number = 32;\n\n/**\n * @internal\n */\nexport const KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n\n/**\n * @internal\n */\nexport const INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19\n];\n\n/**\n * @internal\n */\nexport const MAX_HASHABLE_LENGTH = 2 ** 53 - 1;\n","export * from \"./jsSha256\";\n","import { BLOCK_SIZE } from \"./constants\";\nimport { RawSha256 } from \"./RawSha256\";\nimport { Hash, SourceData } from \"@aws-sdk/types\";\nimport { isEmptyData, convertToBuffer } from \"@aws-crypto/util\";\n\nexport class Sha256 implements Hash {\n private readonly hash = new RawSha256();\n private readonly outer?: RawSha256;\n private error: any;\n\n constructor(secret?: SourceData) {\n if (secret) {\n this.outer = new RawSha256();\n const inner = bufferFromSecret(secret);\n const outer = new Uint8Array(BLOCK_SIZE);\n outer.set(inner);\n\n for (let i = 0; i < BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n\n this.hash.update(inner);\n this.outer.update(outer);\n\n // overwrite the copied key in memory\n for (let i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n }\n }\n\n update(toHash: SourceData): void {\n if (isEmptyData(toHash) || this.error) {\n return;\n }\n\n try {\n this.hash.update(convertToBuffer(toHash));\n } catch (e) {\n this.error = e;\n }\n }\n\n /* This synchronous method keeps compatibility\n * with the v2 aws-sdk.\n */\n digestSync(): Uint8Array {\n if (this.error) {\n throw this.error;\n }\n\n if (this.outer) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n\n return this.outer.digest();\n }\n\n return this.hash.digest();\n }\n\n /* The underlying digest method here is synchronous.\n * To keep the same interface with the other hash functions\n * the default is to expose this as an async method.\n * However, it can sometimes be useful to have a sync method.\n */\n async digest(): Promise {\n return this.digestSync();\n }\n}\n\nfunction bufferFromSecret(secret: SourceData): Uint8Array {\n let input = convertToBuffer(secret);\n\n if (input.byteLength > BLOCK_SIZE) {\n const bufferHash = new RawSha256();\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n\n const buffer = new Uint8Array(BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\nimport { fromUtf8 as fromUtf8Browser } from \"@aws-sdk/util-utf8-browser\";\n\n// Quick polyfill\nconst fromUtf8 =\n typeof Buffer !== \"undefined\" && Buffer.from\n ? (input: string) => Buffer.from(input, \"utf8\")\n : fromUtf8Browser;\n\nexport function convertToBuffer(data: SourceData): Uint8Array {\n // Already a Uint8, do nothing\n if (data instanceof Uint8Array) return data;\n\n if (typeof data === \"string\") {\n return fromUtf8(data);\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(\n data.buffer,\n data.byteOffset,\n data.byteLength / Uint8Array.BYTES_PER_ELEMENT\n );\n }\n\n return new Uint8Array(data);\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport { convertToBuffer } from \"./convertToBuffer\";\nexport { isEmptyData } from \"./isEmptyData\";\nexport { numToUint8 } from \"./numToUint8\";\nexport {uint32ArrayFrom} from './uint32ArrayFrom';\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { SourceData } from \"@aws-sdk/types\";\n\nexport function isEmptyData(data: SourceData): boolean {\n if (typeof data === \"string\") {\n return data.length === 0;\n }\n\n return data.byteLength === 0;\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\nexport function numToUint8(num: number) {\n return new Uint8Array([\n (num & 0xff000000) >> 24,\n (num & 0x00ff0000) >> 16,\n (num & 0x0000ff00) >> 8,\n num & 0x000000ff,\n ]);\n}\n","// Copyright Amazon.com Inc. or its affiliates. All Rights Reserved.\n// SPDX-License-Identifier: Apache-2.0\n\n// IE 11 does not support Array.from, so we do it manually\nexport function uint32ArrayFrom(a_lookUpTable: Array): Uint32Array {\n if (!Array.from) {\n const return_array = new Uint32Array(a_lookUpTable.length)\n let a_index = 0\n while (a_index < a_lookUpTable.length) {\n return_array[a_index] = a_lookUpTable[a_index]\n }\n return return_array\n }\n return Uint32Array.from(a_lookUpTable)\n}\n","import { fromUtf8 as jsFromUtf8, toUtf8 as jsToUtf8 } from \"./pureJs\";\nimport { fromUtf8 as textEncoderFromUtf8, toUtf8 as textEncoderToUtf8 } from \"./whatwgEncodingApi\";\nexport const fromUtf8 = (input) => typeof TextEncoder === \"function\" ? textEncoderFromUtf8(input) : jsFromUtf8(input);\nexport const toUtf8 = (input) => typeof TextDecoder === \"function\" ? textEncoderToUtf8(input) : jsToUtf8(input);\n","export function fromUtf8(input) {\n return new TextEncoder().encode(input);\n}\nexport function toUtf8(input) {\n return new TextDecoder(\"utf-8\").decode(input);\n}\n","export const fromUtf8 = (input) => {\n const bytes = [];\n for (let i = 0, len = input.length; i < len; i++) {\n const value = input.charCodeAt(i);\n if (value < 0x80) {\n bytes.push(value);\n }\n else if (value < 0x800) {\n bytes.push((value >> 6) | 0b11000000, (value & 0b111111) | 0b10000000);\n }\n else if (i + 1 < input.length && (value & 0xfc00) === 0xd800 && (input.charCodeAt(i + 1) & 0xfc00) === 0xdc00) {\n const surrogatePair = 0x10000 + ((value & 0b1111111111) << 10) + (input.charCodeAt(++i) & 0b1111111111);\n bytes.push((surrogatePair >> 18) | 0b11110000, ((surrogatePair >> 12) & 0b111111) | 0b10000000, ((surrogatePair >> 6) & 0b111111) | 0b10000000, (surrogatePair & 0b111111) | 0b10000000);\n }\n else {\n bytes.push((value >> 12) | 0b11100000, ((value >> 6) & 0b111111) | 0b10000000, (value & 0b111111) | 0b10000000);\n }\n }\n return Uint8Array.from(bytes);\n};\nexport const toUtf8 = (input) => {\n let decoded = \"\";\n for (let i = 0, len = input.length; i < len; i++) {\n const byte = input[i];\n if (byte < 0x80) {\n decoded += String.fromCharCode(byte);\n }\n else if (0b11000000 <= byte && byte < 0b11100000) {\n const nextByte = input[++i];\n decoded += String.fromCharCode(((byte & 0b11111) << 6) | (nextByte & 0b111111));\n }\n else if (0b11110000 <= byte && byte < 0b101101101) {\n const surrogatePair = [byte, input[++i], input[++i], input[++i]];\n const encoded = \"%\" + surrogatePair.map((byteValue) => byteValue.toString(16)).join(\"%\");\n decoded += decodeURIComponent(encoded);\n }\n else {\n decoded += String.fromCharCode(((byte & 0b1111) << 12) | ((input[++i] & 0b111111) << 6) | (input[++i] & 0b111111));\n }\n }\n return decoded;\n};\n","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.busy = exports.completeRetry = exports.scheduleRetry = exports.networkStatusChanged = void 0;\n\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\n\nvar _constants = require(\"./constants\");\n\nvar networkStatusChanged = function networkStatusChanged(params) {\n var payload;\n\n if ((0, _typeof2.default)(params) === 'object') {\n payload = params;\n } else {\n payload = {\n online: params\n };\n }\n\n return {\n type: _constants.OFFLINE_STATUS_CHANGED,\n payload: payload\n };\n};\n\nexports.networkStatusChanged = networkStatusChanged;\n\nvar scheduleRetry = function scheduleRetry() {\n var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n return {\n type: _constants.OFFLINE_SCHEDULE_RETRY,\n payload: {\n delay: delay\n }\n };\n};\n\nexports.scheduleRetry = scheduleRetry;\n\nvar completeRetry = function completeRetry(action) {\n return {\n type: _constants.OFFLINE_COMPLETE_RETRY,\n payload: action\n };\n};\n\nexports.completeRetry = completeRetry;\n\nvar busy = function busy(isBusy) {\n return {\n type: _constants.OFFLINE_BUSY,\n payload: {\n busy: isBusy\n }\n };\n};\n\nexports.busy = busy;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.applyDefaults = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _defaults = _interopRequireDefault(require(\"./defaults\"));\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar applyDefaults = function applyDefaults() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return _objectSpread(_objectSpread({}, _defaults.default), config);\n};\n\nexports.applyDefaults = applyDefaults;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.DEFAULT_ROLLBACK = exports.DEFAULT_COMMIT = exports.JS_ERROR = exports.PERSIST_REHYDRATE = exports.RESET_STATE = exports.OFFLINE_BUSY = exports.OFFLINE_SEND = exports.OFFLINE_COMPLETE_RETRY = exports.OFFLINE_SCHEDULE_RETRY = exports.OFFLINE_STATUS_CHANGED = void 0;\n// Literal ACTION typing allows to ensure a stricter type than string\nvar OFFLINE_STATUS_CHANGED = 'Offline/STATUS_CHANGED';\nexports.OFFLINE_STATUS_CHANGED = OFFLINE_STATUS_CHANGED;\nvar OFFLINE_SCHEDULE_RETRY = 'Offline/SCHEDULE_RETRY';\nexports.OFFLINE_SCHEDULE_RETRY = OFFLINE_SCHEDULE_RETRY;\nvar OFFLINE_COMPLETE_RETRY = 'Offline/COMPLETE_RETRY';\nexports.OFFLINE_COMPLETE_RETRY = OFFLINE_COMPLETE_RETRY;\nvar OFFLINE_SEND = 'Offline/SEND';\nexports.OFFLINE_SEND = OFFLINE_SEND;\nvar OFFLINE_BUSY = 'Offline/BUSY';\nexports.OFFLINE_BUSY = OFFLINE_BUSY;\nvar RESET_STATE = 'Offline/RESET_STATE';\nexports.RESET_STATE = RESET_STATE;\nvar PERSIST_REHYDRATE = 'persist/REHYDRATE';\nexports.PERSIST_REHYDRATE = PERSIST_REHYDRATE;\nvar JS_ERROR = 'Offline/JS_ERROR';\nexports.JS_ERROR = JS_ERROR;\nvar DEFAULT_COMMIT = 'Offline/DEFAULT_COMMIT';\nexports.DEFAULT_COMMIT = DEFAULT_COMMIT;\nvar DEFAULT_ROLLBACK = 'Offline/DEFAULT_ROLLBACK';\nexports.DEFAULT_ROLLBACK = DEFAULT_ROLLBACK;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _constants = require(\"../constants\");\n\nvar defaultCommit = {\n type: _constants.DEFAULT_COMMIT\n};\nvar _default = defaultCommit;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _constants = require(\"../constants\");\n\nvar defaultRollback = {\n type: _constants.DEFAULT_ROLLBACK\n};\nvar _default = defaultRollback;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar handle = function handle(callback, online) {\n // NetInfo is not supported in browsers, hence we only pass online status\n if (window.requestAnimationFrame) {\n window.requestAnimationFrame(function () {\n return callback({\n online: online\n });\n });\n } else {\n setTimeout(function () {\n return callback({\n online: online\n });\n }, 0);\n }\n};\n\nvar _default = function _default(callback) {\n if (typeof window !== 'undefined' && window.addEventListener) {\n window.addEventListener('online', function () {\n return handle(callback, true);\n });\n window.addEventListener('offline', function () {\n return handle(callback, false);\n });\n handle(callback, window.navigator.onLine);\n }\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _effect = require(\"./effect\");\n\nvar _default = function _default(error, action) {\n var _retries = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 0;\n\n // not a network error -> discard\n if (!('status' in error)) {\n return true;\n } // discard http 4xx errors\n // $FlowFixMe\n\n\n return error.status >= 400 && error.status < 500;\n};\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.NetworkError = NetworkError;\nexports.default = exports.getFormData = exports.getHeaders = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction NetworkError(response, status) {\n this.name = 'NetworkError';\n this.status = status;\n this.response = response;\n} // $FlowFixMe\n\n\nNetworkError.prototype = Error.prototype;\n\nvar tryParseJSON = function tryParseJSON(json) {\n if (!json) {\n return null;\n }\n\n try {\n return JSON.parse(json);\n } catch (e) {\n throw new Error(\"Failed to parse unexpected JSON response: \".concat(json));\n }\n};\n\nvar getResponseBody = function getResponseBody(res) {\n var contentType = res.headers.get('content-type') || false;\n\n if (contentType && contentType.indexOf('json') >= 0) {\n return res.text().then(tryParseJSON);\n }\n\n return res.text();\n};\n\nvar getHeaders = function getHeaders(headers) {\n var _ref = headers || {},\n contentTypeCapitalized = _ref['Content-Type'],\n contentTypeLowerCase = _ref['content-type'],\n restOfHeaders = (0, _objectWithoutProperties2.default)(_ref, [\"Content-Type\", \"content-type\"]);\n\n var contentType = contentTypeCapitalized || contentTypeLowerCase || 'application/json';\n return _objectSpread(_objectSpread({}, restOfHeaders), {}, {\n 'content-type': contentType\n });\n};\n\nexports.getHeaders = getHeaders;\n\nvar getFormData = function getFormData(object) {\n var formData = new FormData();\n Object.keys(object).forEach(function (key) {\n Object.keys(object[key]).forEach(function (innerObj) {\n var newObj = object[key][innerObj];\n formData.append(newObj[0], newObj[1]);\n });\n });\n return formData;\n}; // eslint-disable-next-line no-unused-vars\n\n\nexports.getFormData = getFormData;\n\nvar _default = function _default(effect, _action) {\n var url = effect.url,\n json = effect.json,\n options = (0, _objectWithoutProperties2.default)(effect, [\"url\", \"json\"]);\n var headers = getHeaders(options.headers);\n\n if (!(options.body instanceof FormData) && Object.prototype.hasOwnProperty.call(headers, 'content-type') && headers['content-type'].toLowerCase().includes('multipart/form-data')) {\n options.body = getFormData(options.body);\n }\n\n if (json !== null && json !== undefined) {\n try {\n options.body = JSON.stringify(json);\n } catch (e) {\n return Promise.reject(e);\n }\n }\n\n return fetch(url, _objectSpread(_objectSpread({}, options), {}, {\n headers: headers\n })).then(function (res) {\n if (res.ok) {\n return getResponseBody(res);\n }\n\n return getResponseBody(res).then(function (body) {\n throw new NetworkError(body || '', res.status);\n });\n });\n};\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _persist = _interopRequireDefault(require(\"./persist\"));\n\nvar _detectNetwork = _interopRequireDefault(require(\"./detectNetwork\"));\n\nvar _effect = _interopRequireDefault(require(\"./effect\"));\n\nvar _retry = _interopRequireDefault(require(\"./retry\"));\n\nvar _discard = _interopRequireDefault(require(\"./discard\"));\n\nvar _defaultCommit = _interopRequireDefault(require(\"./defaultCommit\"));\n\nvar _defaultRollback = _interopRequireDefault(require(\"./defaultRollback\"));\n\nvar _persistAutoRehydrate = _interopRequireDefault(require(\"./persistAutoRehydrate\"));\n\nvar _offlineStateLens = _interopRequireDefault(require(\"./offlineStateLens\"));\n\nvar _queue = _interopRequireDefault(require(\"./queue\"));\n\nvar _default = {\n rehydrate: true,\n // backward compatibility, TODO remove in the next breaking change version\n persist: _persist.default,\n detectNetwork: _detectNetwork.default,\n effect: _effect.default,\n retry: _retry.default,\n discard: _discard.default,\n defaultCommit: _defaultCommit.default,\n defaultRollback: _defaultRollback.default,\n persistAutoRehydrate: _persistAutoRehydrate.default,\n offlineStateLens: _offlineStateLens.default,\n queue: _queue.default,\n returnPromises: false\n};\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _objectWithoutProperties2 = _interopRequireDefault(require(\"@babel/runtime/helpers/objectWithoutProperties\"));\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar _default = function _default(state) {\n var offline = state.offline,\n rest = (0, _objectWithoutProperties2.default)(state, [\"offline\"]);\n return {\n get: offline,\n set: function set(offlineState) {\n return typeof offlineState === 'undefined' ? rest : _objectSpread({\n offline: offlineState\n }, rest);\n }\n };\n};\n\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _reduxPersist = require(\"redux-persist\");\n\n// flow\nvar _default = _reduxPersist.persistStore;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _reduxPersist = require(\"redux-persist\");\n\nvar _default = _reduxPersist.autoRehydrate;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _toArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toArray\"));\n\nvar _toConsumableArray2 = _interopRequireDefault(require(\"@babel/runtime/helpers/toConsumableArray\"));\n\n/* eslint-disable no-unused-vars */\nfunction enqueue(array, item, context) {\n return [].concat((0, _toConsumableArray2.default)(array), [item]);\n}\n\nfunction dequeue(array, item, context) {\n var _array = (0, _toArray2.default)(array),\n rest = _array.slice(1);\n\n return rest;\n}\n\nfunction peek(array, item, context) {\n return array[0];\n}\n\nvar _default = {\n enqueue: enqueue,\n dequeue: dequeue,\n peek: peek\n};\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar decaySchedule = [1000, // After 1 seconds\n1000 * 5, // After 5 seconds\n1000 * 15, // After 15 seconds\n1000 * 30, // After 30 seconds\n1000 * 60, // After 1 minute\n1000 * 60 * 3, // After 3 minutes\n1000 * 60 * 5, // After 5 minutes\n1000 * 60 * 10, // After 10 minutes\n1000 * 60 * 30, // After 30 minutes\n1000 * 60 * 60 // After 1 hour\n];\n\nvar _default = function _default(action, retries) {\n return decaySchedule[retries] || null;\n};\n\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createOffline = exports.offline = void 0;\n\nvar _typeof2 = _interopRequireDefault(require(\"@babel/runtime/helpers/typeof\"));\n\nvar _redux = require(\"redux\");\n\nvar _middleware = require(\"./middleware\");\n\nvar _updater = require(\"./updater\");\n\nvar _config = require(\"./config\");\n\nvar _actions = require(\"./actions\");\n\nvar _offlineActionTracker = _interopRequireDefault(require(\"./offlineActionTracker\"));\n\n/* global $Shape */\n// @TODO: Take createStore as config?\nvar warnIfNotReduxAction = function warnIfNotReduxAction(config, key) {\n var maybeAction = config[key];\n var isNotReduxAction = maybeAction === null || (0, _typeof2.default)(maybeAction) !== 'object' || typeof maybeAction.type !== 'string' || maybeAction.type === '';\n\n if (isNotReduxAction && console.warn) {\n var msg = \"\".concat(key, \" must be a proper redux action, \") + \"i.e. it must be an object and have a non-empty string type. \" + \"Instead you provided: \".concat(JSON.stringify(maybeAction, null, 2));\n console.warn(msg);\n }\n};\n\nvar offline = function offline() {\n var userConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n return function (createStore) {\n return function (reducer, preloadedState) {\n var enhancer = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : function (x) {\n return x;\n };\n var config = (0, _config.applyDefaults)(userConfig);\n warnIfNotReduxAction(config, 'defaultCommit');\n warnIfNotReduxAction(config, 'defaultRollback'); // toggle experimental returned promises\n\n config.offlineActionTracker = config.returnPromises ? _offlineActionTracker.default.withPromises : _offlineActionTracker.default.withoutPromises;\n delete config.returnPromises; // wraps userland reducer with a top-level\n // reducer that handles offline state updating\n\n var offlineReducer = (0, _updater.enhanceReducer)(reducer, config); // $FlowFixMe\n\n var offlineMiddleware = (0, _redux.applyMiddleware)((0, _middleware.createOfflineMiddleware)(config)); // create autoRehydrate enhancer if required\n\n var offlineEnhancer = config.persist && config.rehydrate && config.persistAutoRehydrate ? (0, _redux.compose)(offlineMiddleware, config.persistAutoRehydrate()) : offlineMiddleware; // create store\n\n var store = offlineEnhancer(createStore)(offlineReducer, preloadedState, enhancer);\n var baseReplaceReducer = store.replaceReducer.bind(store); // $FlowFixMe\n\n store.replaceReducer = function replaceReducer(nextReducer) {\n return baseReplaceReducer((0, _updater.enhanceReducer)(nextReducer, config));\n }; // launch store persistor\n\n\n if (config.persist) {\n config.persist(store, config.persistOptions, config.persistCallback);\n } // launch network detector\n\n\n if (config.detectNetwork) {\n config.detectNetwork(function (online) {\n store.dispatch((0, _actions.networkStatusChanged)(online));\n });\n }\n\n return store;\n };\n };\n};\n\nexports.offline = offline;\n\nvar createOffline = function createOffline() {\n var userConfig = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var config = (0, _config.applyDefaults)(userConfig); // toggle experimental returned promises\n\n config.offlineActionTracker = config.returnPromises ? _offlineActionTracker.default.withPromises : _offlineActionTracker.default.withoutPromises;\n delete config.returnPromises;\n warnIfNotReduxAction(config, 'defaultCommit');\n warnIfNotReduxAction(config, 'defaultRollback');\n\n var enhanceStore = function enhanceStore(next) {\n return function (reducer, preloadedState, enhancer) {\n // create autoRehydrate enhancer if required\n var createStore = config.persist && config.rehydrate && config.persistAutoRehydrate ? config.persistAutoRehydrate()(next) : next; // create store\n\n var store = createStore(reducer, preloadedState, enhancer);\n var baseReplaceReducer = store.replaceReducer.bind(store);\n\n store.replaceReducer = function replaceReducer(nextReducer) {\n return baseReplaceReducer((0, _updater.enhanceReducer)(nextReducer, config));\n }; // launch store persistor\n\n\n if (config.persist) {\n config.persist(store, config.persistOptions, config.persistCallback);\n } // launch network detector\n\n\n if (config.detectNetwork) {\n config.detectNetwork(function (online) {\n store.dispatch((0, _actions.networkStatusChanged)(online));\n });\n }\n\n return store;\n };\n };\n\n return {\n middleware: (0, _middleware.createOfflineMiddleware)(config),\n enhanceReducer: function enhanceReducer(reducer) {\n return (0, _updater.enhanceReducer)(reducer, config);\n },\n enhanceStore: enhanceStore\n };\n};\n\nexports.createOffline = createOffline;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.createOfflineMiddleware = void 0;\n\nvar _constants = require(\"./constants\");\n\nvar _actions = require(\"./actions\");\n\nvar _send = _interopRequireDefault(require(\"./send\"));\n\nvar after = function after() {\n var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n return new Promise(function (resolve) {\n return setTimeout(resolve, timeout);\n });\n};\n\nvar createOfflineMiddleware = function createOfflineMiddleware(config) {\n return function (store) {\n return function (next) {\n return function (action) {\n // allow other middleware to do their things\n var result = next(action);\n var promise; // find any actions to send, if any\n\n var state = store.getState();\n var offline = config.offlineStateLens(state).get;\n var context = {\n offline: offline\n };\n var offlineAction = config.queue.peek(offline.outbox, action, context); // create promise to return on enqueue offline action\n\n if (action.meta && action.meta.offline) {\n var registerAction = config.offlineActionTracker.registerAction;\n promise = registerAction(offline.lastTransaction);\n } // if there are any actions in the queue that we are not\n // yet processing, send those actions\n\n\n if (offlineAction && !offline.busy && !offline.retryScheduled && offline.online) {\n (0, _send.default)(offlineAction, store.dispatch, config, offline.retryCount);\n }\n\n if (action.type === _constants.OFFLINE_SCHEDULE_RETRY) {\n after(action.payload.delay).then(function () {\n store.dispatch((0, _actions.completeRetry)(offlineAction));\n });\n }\n\n if (action.type === _constants.OFFLINE_SEND && offlineAction && !offline.busy) {\n (0, _send.default)(offlineAction, store.dispatch, config, offline.retryCount);\n }\n\n return promise || result;\n };\n };\n };\n};\n\nexports.createOfflineMiddleware = createOfflineMiddleware;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar subscriptions = {};\n\nfunction registerAction(transaction) {\n return new Promise(function (resolve, reject) {\n subscriptions[transaction] = {\n resolve: resolve,\n reject: reject\n };\n });\n}\n\nfunction resolveAction(transaction, value) {\n var subscription = subscriptions[transaction];\n\n if (subscription) {\n subscription.resolve(value);\n delete subscriptions[transaction];\n }\n}\n\nfunction rejectAction(transaction, error) {\n var subscription = subscriptions[transaction];\n\n if (subscription) {\n subscription.reject(error);\n delete subscriptions[transaction];\n }\n}\n\nvar withPromises = {\n registerAction: registerAction,\n resolveAction: resolveAction,\n rejectAction: rejectAction\n};\nvar withoutPromises = {\n registerAction: function registerAction() {},\n resolveAction: function resolveAction() {},\n rejectAction: function rejectAction() {}\n};\nvar _default = {\n withPromises: withPromises,\n withoutPromises: withoutPromises\n};\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _regenerator = _interopRequireDefault(require(\"@babel/runtime/regenerator\"));\n\nvar _asyncToGenerator2 = _interopRequireDefault(require(\"@babel/runtime/helpers/asyncToGenerator\"));\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _actions = require(\"./actions\");\n\nvar _constants = require(\"./constants\");\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar complete = function complete(action, result, offlineAction, config) {\n var _config$offlineAction = config.offlineActionTracker,\n resolveAction = _config$offlineAction.resolveAction,\n rejectAction = _config$offlineAction.rejectAction;\n\n if (result.success) {\n resolveAction(offlineAction.meta.transaction, result.payload);\n } else if (result.payload) {\n rejectAction(offlineAction.meta.transaction, result.payload);\n }\n\n return _objectSpread(_objectSpread({}, action), {}, {\n payload: result.payload,\n meta: _objectSpread(_objectSpread({}, action.meta), {}, {\n success: result.success,\n completed: true\n })\n });\n};\n\nvar handleJsError = function handleJsError(error) {\n return {\n type: _constants.JS_ERROR,\n meta: {\n error: error,\n success: false,\n completed: true\n }\n };\n};\n\nvar send = function send(action, dispatch, config) {\n var retries = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 0;\n var metadata = action.meta.offline;\n dispatch((0, _actions.busy)(true));\n return config.effect(metadata.effect, action).then(function (result) {\n var commitAction = metadata.commit || _objectSpread(_objectSpread({}, config.defaultCommit), {}, {\n meta: _objectSpread(_objectSpread({}, config.defaultCommit.meta), {}, {\n offlineAction: action\n })\n });\n\n try {\n return dispatch(complete(commitAction, {\n success: true,\n payload: result\n }, action, config));\n } catch (error) {\n return dispatch(handleJsError(error));\n }\n }).catch( /*#__PURE__*/function () {\n var _ref = (0, _asyncToGenerator2.default)( /*#__PURE__*/_regenerator.default.mark(function _callee(error) {\n var rollbackAction, mustDiscard, delay;\n return _regenerator.default.wrap(function _callee$(_context) {\n while (1) {\n switch (_context.prev = _context.next) {\n case 0:\n rollbackAction = metadata.rollback || _objectSpread(_objectSpread({}, config.defaultRollback), {}, {\n meta: _objectSpread(_objectSpread({}, config.defaultRollback.meta), {}, {\n offlineAction: action\n })\n }); // discard\n\n mustDiscard = true;\n _context.prev = 2;\n _context.next = 5;\n return config.discard(error, action, retries);\n\n case 5:\n mustDiscard = _context.sent;\n _context.next = 11;\n break;\n\n case 8:\n _context.prev = 8;\n _context.t0 = _context[\"catch\"](2);\n console.warn(_context.t0);\n\n case 11:\n if (mustDiscard) {\n _context.next = 15;\n break;\n }\n\n delay = config.retry(action, retries);\n\n if (!(delay != null)) {\n _context.next = 15;\n break;\n }\n\n return _context.abrupt(\"return\", dispatch((0, _actions.scheduleRetry)(delay)));\n\n case 15:\n return _context.abrupt(\"return\", dispatch(complete(rollbackAction, {\n success: false,\n payload: error\n }, action, config)));\n\n case 16:\n case \"end\":\n return _context.stop();\n }\n }\n }, _callee, null, [[2, 8]]);\n }));\n\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }()).finally(function () {\n return dispatch((0, _actions.busy)(false));\n });\n};\n\nvar _default = send;\nexports.default = _default;","\"use strict\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.enhanceReducer = exports.buildOfflineUpdater = exports.initialState = void 0;\n\nvar _defineProperty2 = _interopRequireDefault(require(\"@babel/runtime/helpers/defineProperty\"));\n\nvar _constants = require(\"./constants\");\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { (0, _defineProperty2.default)(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nvar initialState = {\n busy: false,\n lastTransaction: 0,\n online: false,\n outbox: [],\n retryCount: 0,\n retryScheduled: false,\n netInfo: {\n isConnectionExpensive: null,\n reach: 'NONE'\n }\n};\nexports.initialState = initialState;\n\nvar buildOfflineUpdater = function buildOfflineUpdater(dequeue, enqueue) {\n return function offlineUpdater() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : initialState;\n var action = arguments.length > 1 ? arguments[1] : undefined;\n\n // Update online/offline status\n if (action.type === _constants.OFFLINE_STATUS_CHANGED && !action.meta) {\n return _objectSpread(_objectSpread({}, state), {}, {\n online: action.payload.online,\n netInfo: action.payload.netInfo\n });\n }\n\n if (action.type === _constants.PERSIST_REHYDRATE && action.payload) {\n return _objectSpread(_objectSpread(_objectSpread({}, state), action.payload.offline || {}), {}, {\n online: state.online,\n netInfo: state.netInfo,\n retryScheduled: initialState.retryScheduled,\n retryCount: initialState.retryCount,\n busy: initialState.busy\n });\n }\n\n if (action.type === _constants.OFFLINE_SCHEDULE_RETRY) {\n return _objectSpread(_objectSpread({}, state), {}, {\n retryScheduled: true,\n retryCount: state.retryCount + 1\n });\n }\n\n if (action.type === _constants.OFFLINE_COMPLETE_RETRY) {\n return _objectSpread(_objectSpread({}, state), {}, {\n retryScheduled: false\n });\n }\n\n if (action.type === _constants.OFFLINE_BUSY && !action.meta && action.payload && typeof action.payload.busy === 'boolean') {\n return _objectSpread(_objectSpread({}, state), {}, {\n busy: action.payload.busy\n });\n } // Add offline actions to queue\n\n\n if (action.meta && action.meta.offline) {\n var transaction = state.lastTransaction + 1;\n\n var stamped = _objectSpread(_objectSpread({}, action), {}, {\n meta: _objectSpread(_objectSpread({}, action.meta), {}, {\n transaction: transaction\n })\n });\n\n var offline = state;\n return _objectSpread(_objectSpread({}, state), {}, {\n lastTransaction: transaction,\n outbox: enqueue(offline.outbox, stamped, {\n offline: offline\n })\n });\n } // Remove completed actions from queue (success or fail)\n\n\n if (action.meta && action.meta.completed === true) {\n var _offline = state;\n return _objectSpread(_objectSpread({}, state), {}, {\n outbox: dequeue(_offline.outbox, action, {\n offline: _offline\n }),\n retryCount: 0\n });\n }\n\n if (action.type === _constants.RESET_STATE) {\n return _objectSpread(_objectSpread({}, initialState), {}, {\n online: state.online,\n netInfo: state.netInfo\n });\n }\n\n return state;\n };\n};\n\nexports.buildOfflineUpdater = buildOfflineUpdater;\n\nvar enhanceReducer = function enhanceReducer(reducer, config) {\n var _config$queue = config.queue,\n dequeue = _config$queue.dequeue,\n enqueue = _config$queue.enqueue;\n var offlineUpdater = buildOfflineUpdater(dequeue, enqueue);\n return function (state, action) {\n var offlineState;\n var restState;\n\n if (typeof state !== 'undefined') {\n offlineState = config.offlineStateLens(state).get;\n restState = config.offlineStateLens(state).set();\n }\n\n return config.offlineStateLens(reducer(restState, action)).set(offlineUpdater(offlineState, action));\n };\n};\n\nexports.enhanceReducer = enhanceReducer;",null,"const { toString } = Object.prototype;\n\n/**\n * Deeply clones a value to create a new instance.\n */\nexport function cloneDeep(value: T): T {\n return cloneDeepHelper(value, new Map());\n}\n\nfunction cloneDeepHelper(val: T, seen: Map): T {\n switch (toString.call(val)) {\n case \"[object Array]\": {\n if (seen.has(val)) return seen.get(val);\n const copy: T & any[] = (val as any).slice(0);\n seen.set(val, copy);\n copy.forEach(function (child, i) {\n copy[i] = cloneDeepHelper(child, seen);\n });\n return copy;\n }\n\n case \"[object Object]\": {\n if (seen.has(val)) return seen.get(val);\n // High fidelity polyfills of Object.create and Object.getPrototypeOf are\n // possible in all JS environments, so we will assume they exist/work.\n const copy = Object.create(Object.getPrototypeOf(val));\n seen.set(val, copy);\n Object.keys(val).forEach(key => {\n copy[key] = cloneDeepHelper((val as any)[key], seen);\n });\n return copy;\n }\n\n default:\n return val;\n }\n}\n","/**\n * Performs a deep equality check on two JavaScript values.\n */\nexport function isEqual(a: any, b: any): boolean {\n // If the two values are strictly equal, we are good.\n if (a === b) {\n return true;\n }\n // Dates are equivalent if their time values are equal.\n if (a instanceof Date && b instanceof Date) {\n return a.getTime() === b.getTime();\n }\n // If a and b are both objects, we will compare their properties. This will compare arrays as\n // well.\n if (\n a != null &&\n typeof a === 'object' &&\n b != null &&\n typeof b === 'object'\n ) {\n // Compare all of the keys in `a`. If one of the keys has a different value, or that key does\n // not exist in `b` return false immediately.\n for (const key in a) {\n if (Object.prototype.hasOwnProperty.call(a, key)) {\n if (!Object.prototype.hasOwnProperty.call(b, key)) {\n return false;\n }\n if (!isEqual(a[key], b[key])) {\n return false;\n }\n }\n }\n // Look through all the keys in `b`. If `b` has a key that `a` does not, return false.\n for (const key in b) {\n if (\n Object.prototype.hasOwnProperty.call(b, key) &&\n !Object.prototype.hasOwnProperty.call(a, key)\n ) {\n return false;\n }\n }\n // If we made it this far the objects are equal!\n return true;\n }\n // Otherwise the values are not equal.\n return false;\n}\n","import { ExecutionResult } from 'graphql';\n\nexport function tryFunctionOrLogError(f: Function) {\n try {\n return f();\n } catch (e) {\n if (console.error) {\n console.error(e);\n }\n }\n}\n\nexport function graphQLResultHasError(result: ExecutionResult) {\n return result.errors && result.errors.length;\n}\n",null,null,null,null,"export const canUseWeakMap = typeof WeakMap === 'function' && !(\n typeof navigator === 'object' &&\n navigator.product === 'ReactNative'\n);\n","const { toString } = Object.prototype;\n\n/**\n * Deeply clones a value to create a new instance.\n */\nexport function cloneDeep(value: T): T {\n return cloneDeepHelper(value, new Map());\n}\n\nfunction cloneDeepHelper(val: T, seen: Map): T {\n switch (toString.call(val)) {\n case \"[object Array]\": {\n if (seen.has(val)) return seen.get(val);\n const copy: T & any[] = (val as any).slice(0);\n seen.set(val, copy);\n copy.forEach(function (child, i) {\n copy[i] = cloneDeepHelper(child, seen);\n });\n return copy;\n }\n\n case \"[object Object]\": {\n if (seen.has(val)) return seen.get(val);\n // High fidelity polyfills of Object.create and Object.getPrototypeOf are\n // possible in all JS environments, so we will assume they exist/work.\n const copy = Object.create(Object.getPrototypeOf(val));\n seen.set(val, copy);\n Object.keys(val).forEach(key => {\n copy[key] = cloneDeepHelper((val as any)[key], seen);\n });\n return copy;\n }\n\n default:\n return val;\n }\n}\n","const { hasOwnProperty } = Object.prototype;\n\n// These mergeDeep and mergeDeepArray utilities merge any number of objects\n// together, sharing as much memory as possible with the source objects, while\n// remaining careful to avoid modifying any source objects.\n\n// Logically, the return type of mergeDeep should be the intersection of\n// all the argument types. The binary call signature is by far the most\n// common, but we support 0- through 5-ary as well. After that, the\n// resulting type is just the inferred array element type. Note to nerds:\n// there is a more clever way of doing this that converts the tuple type\n// first to a union type (easy enough: T[number]) and then converts the\n// union to an intersection type using distributive conditional type\n// inference, but that approach has several fatal flaws (boolean becomes\n// true & false, and the inferred type ends up as unknown in many cases),\n// in addition to being nearly impossible to explain/understand.\nexport type TupleToIntersection =\n T extends [infer A] ? A :\n T extends [infer A, infer B] ? A & B :\n T extends [infer A, infer B, infer C] ? A & B & C :\n T extends [infer A, infer B, infer C, infer D] ? A & B & C & D :\n T extends [infer A, infer B, infer C, infer D, infer E] ? A & B & C & D & E :\n T extends (infer U)[] ? U : any;\n\nexport function mergeDeep(\n ...sources: T\n): TupleToIntersection {\n return mergeDeepArray(sources);\n}\n\n// In almost any situation where you could succeed in getting the\n// TypeScript compiler to infer a tuple type for the sources array, you\n// could just use mergeDeep instead of mergeDeepArray, so instead of\n// trying to convert T[] to an intersection type we just infer the array\n// element type, which works perfectly when the sources array has a\n// consistent element type.\nexport function mergeDeepArray(sources: T[]): T {\n let target = sources[0] || {} as T;\n const count = sources.length;\n if (count > 1) {\n const pastCopies: any[] = [];\n target = shallowCopyForMerge(target, pastCopies);\n for (let i = 1; i < count; ++i) {\n target = mergeHelper(target, sources[i], pastCopies);\n }\n }\n return target;\n}\n\nfunction isObject(obj: any): obj is Record {\n return obj !== null && typeof obj === 'object';\n}\n\nfunction mergeHelper(\n target: any,\n source: any,\n pastCopies: any[],\n) {\n if (isObject(source) && isObject(target)) {\n // In case the target has been frozen, make an extensible copy so that\n // we can merge properties into the copy.\n if (Object.isExtensible && !Object.isExtensible(target)) {\n target = shallowCopyForMerge(target, pastCopies);\n }\n\n Object.keys(source).forEach(sourceKey => {\n const sourceValue = source[sourceKey];\n if (hasOwnProperty.call(target, sourceKey)) {\n const targetValue = target[sourceKey];\n if (sourceValue !== targetValue) {\n // When there is a key collision, we need to make a shallow copy of\n // target[sourceKey] so the merge does not modify any source objects.\n // To avoid making unnecessary copies, we use a simple array to track\n // past copies, since it's safe to modify copies created earlier in\n // the merge. We use an array for pastCopies instead of a Map or Set,\n // since the number of copies should be relatively small, and some\n // Map/Set polyfills modify their keys.\n target[sourceKey] = mergeHelper(\n shallowCopyForMerge(targetValue, pastCopies),\n sourceValue,\n pastCopies,\n );\n }\n } else {\n // If there is no collision, the target can safely share memory with\n // the source, and the recursion can terminate here.\n target[sourceKey] = sourceValue;\n }\n });\n\n return target;\n }\n\n // If source (or target) is not an object, let source replace target.\n return source;\n}\n\nfunction shallowCopyForMerge(value: T, pastCopies: any[]): T {\n if (\n value !== null &&\n typeof value === 'object' &&\n pastCopies.indexOf(value) < 0\n ) {\n if (Array.isArray(value)) {\n value = (value as any).slice(0);\n } else {\n value = {\n __proto__: Object.getPrototypeOf(value),\n ...value,\n };\n }\n pastCopies.push(value);\n }\n return value;\n}\n","import { isProduction, isTest } from './environment';\n\nconst haveWarned = Object.create({});\n\n/**\n * Print a warning only once in development.\n * In production no warnings are printed.\n * In test all warnings are printed.\n *\n * @param msg The warning message\n * @param type warn or error (will call console.warn or console.error)\n */\nexport function warnOnceInDevelopment(msg: string, type = 'warn') {\n if (!isProduction() && !haveWarned[msg]) {\n if (!isTest()) {\n haveWarned[msg] = true;\n }\n if (type === 'error') {\n console.error(msg);\n } else {\n console.warn(msg);\n }\n }\n}\n","import Observable from 'zen-observable-ts';\n\nimport { GraphQLRequest, Operation } from './types';\nimport { ApolloLink } from './link';\n\nimport { getOperationName } from 'apollo-utilities';\nimport { invariant, InvariantError } from 'ts-invariant';\nexport { getOperationName };\n\nexport function validateOperation(operation: GraphQLRequest): GraphQLRequest {\n const OPERATION_FIELDS = [\n 'query',\n 'operationName',\n 'variables',\n 'extensions',\n 'context',\n ];\n for (let key of Object.keys(operation)) {\n if (OPERATION_FIELDS.indexOf(key) < 0) {\n throw new InvariantError(`illegal argument: ${key}`);\n }\n }\n\n return operation;\n}\n\nexport class LinkError extends Error {\n public link: ApolloLink;\n constructor(message?: string, link?: ApolloLink) {\n super(message);\n this.link = link;\n }\n}\n\nexport function isTerminating(link: ApolloLink): boolean {\n return link.request.length <= 1;\n}\n\nexport function toPromise(observable: Observable): Promise {\n let completed = false;\n return new Promise((resolve, reject) => {\n observable.subscribe({\n next: data => {\n if (completed) {\n invariant.warn(\n `Promise Wrapper does not support multiple results from Observable`,\n );\n } else {\n completed = true;\n resolve(data);\n }\n },\n error: reject,\n });\n });\n}\n\n// backwards compat\nexport const makePromise = toPromise;\n\nexport function fromPromise(promise: Promise): Observable {\n return new Observable(observer => {\n promise\n .then((value: T) => {\n observer.next(value);\n observer.complete();\n })\n .catch(observer.error.bind(observer));\n });\n}\n\nexport function fromError(errorValue: any): Observable {\n return new Observable(observer => {\n observer.error(errorValue);\n });\n}\n\nexport function transformOperation(operation: GraphQLRequest): GraphQLRequest {\n const transformedOperation: GraphQLRequest = {\n variables: operation.variables || {},\n extensions: operation.extensions || {},\n operationName: operation.operationName,\n query: operation.query,\n };\n\n // best guess at an operation name\n if (!transformedOperation.operationName) {\n transformedOperation.operationName =\n typeof transformedOperation.query !== 'string'\n ? getOperationName(transformedOperation.query)\n : '';\n }\n\n return transformedOperation as Operation;\n}\n\nexport function createOperation(\n starting: any,\n operation: GraphQLRequest,\n): Operation {\n let context = { ...starting };\n const setContext = next => {\n if (typeof next === 'function') {\n context = { ...context, ...next(context) };\n } else {\n context = { ...context, ...next };\n }\n };\n const getContext = () => ({ ...context });\n\n Object.defineProperty(operation, 'setContext', {\n enumerable: false,\n value: setContext,\n });\n\n Object.defineProperty(operation, 'getContext', {\n enumerable: false,\n value: getContext,\n });\n\n Object.defineProperty(operation, 'toKey', {\n enumerable: false,\n value: () => getKey(operation),\n });\n\n return operation as Operation;\n}\n\nexport function getKey(operation: GraphQLRequest) {\n // XXX We're assuming here that query and variables will be serialized in\n // the same order, which might not always be true.\n const { query, variables, operationName } = operation;\n return JSON.stringify([operationName, query, variables]);\n}\n","import Observable from 'zen-observable-ts';\nimport { invariant, InvariantError } from 'ts-invariant';\n\nimport {\n GraphQLRequest,\n NextLink,\n Operation,\n RequestHandler,\n FetchResult,\n} from './types';\n\nimport {\n validateOperation,\n isTerminating,\n LinkError,\n transformOperation,\n createOperation,\n} from './linkUtils';\n\nfunction passthrough(op, forward) {\n return forward ? forward(op) : Observable.of();\n}\n\nfunction toLink(handler: RequestHandler | ApolloLink) {\n return typeof handler === 'function' ? new ApolloLink(handler) : handler;\n}\n\nexport function empty(): ApolloLink {\n return new ApolloLink(() => Observable.of());\n}\n\nexport function from(links: ApolloLink[]): ApolloLink {\n if (links.length === 0) return empty();\n return links.map(toLink).reduce((x, y) => x.concat(y));\n}\n\nexport function split(\n test: (op: Operation) => boolean,\n left: ApolloLink | RequestHandler,\n right?: ApolloLink | RequestHandler,\n): ApolloLink {\n const leftLink = toLink(left);\n const rightLink = toLink(right || new ApolloLink(passthrough));\n\n if (isTerminating(leftLink) && isTerminating(rightLink)) {\n return new ApolloLink(operation => {\n return test(operation)\n ? leftLink.request(operation) || Observable.of()\n : rightLink.request(operation) || Observable.of();\n });\n } else {\n return new ApolloLink((operation, forward) => {\n return test(operation)\n ? leftLink.request(operation, forward) || Observable.of()\n : rightLink.request(operation, forward) || Observable.of();\n });\n }\n}\n\n// join two Links together\nexport const concat = (\n first: ApolloLink | RequestHandler,\n second: ApolloLink | RequestHandler,\n) => {\n const firstLink = toLink(first);\n if (isTerminating(firstLink)) {\n invariant.warn(\n new LinkError(\n `You are calling concat on a terminating link, which will have no effect`,\n firstLink,\n ),\n );\n return firstLink;\n }\n const nextLink = toLink(second);\n\n if (isTerminating(nextLink)) {\n return new ApolloLink(\n operation =>\n firstLink.request(\n operation,\n op => nextLink.request(op) || Observable.of(),\n ) || Observable.of(),\n );\n } else {\n return new ApolloLink((operation, forward) => {\n return (\n firstLink.request(operation, op => {\n return nextLink.request(op, forward) || Observable.of();\n }) || Observable.of()\n );\n });\n }\n};\n\nexport class ApolloLink {\n public static empty = empty;\n public static from = from;\n public static split = split;\n public static execute = execute;\n\n constructor(request?: RequestHandler) {\n if (request) this.request = request;\n }\n\n public split(\n test: (op: Operation) => boolean,\n left: ApolloLink | RequestHandler,\n right?: ApolloLink | RequestHandler,\n ): ApolloLink {\n return this.concat(split(test, left, right || new ApolloLink(passthrough)));\n }\n\n public concat(next: ApolloLink | RequestHandler): ApolloLink {\n return concat(this, next);\n }\n\n public request(\n operation: Operation,\n forward?: NextLink,\n ): Observable | null {\n throw new InvariantError('request is not implemented');\n }\n}\n\nexport function execute(\n link: ApolloLink,\n operation: GraphQLRequest,\n): Observable {\n return (\n link.request(\n createOperation(\n operation.context,\n transformOperation(validateOperation(operation)),\n ),\n ) || Observable.of()\n );\n}\n","import {\n DocumentNode,\n OperationDefinitionNode,\n FragmentDefinitionNode,\n ValueNode,\n} from 'graphql';\n\nimport { invariant, InvariantError } from 'ts-invariant';\n\nimport { assign } from './util/assign';\n\nimport { valueToObjectRepresentation, JsonValue } from './storeUtils';\n\nexport function getMutationDefinition(\n doc: DocumentNode,\n): OperationDefinitionNode {\n checkDocument(doc);\n\n let mutationDef: OperationDefinitionNode | null = doc.definitions.filter(\n definition =>\n definition.kind === 'OperationDefinition' &&\n definition.operation === 'mutation',\n )[0] as OperationDefinitionNode;\n\n invariant(mutationDef, 'Must contain a mutation definition.');\n\n return mutationDef;\n}\n\n// Checks the document for errors and throws an exception if there is an error.\nexport function checkDocument(doc: DocumentNode) {\n invariant(\n doc && doc.kind === 'Document',\n `Expecting a parsed GraphQL document. Perhaps you need to wrap the query \\\nstring in a \"gql\" tag? http://docs.apollostack.com/apollo-client/core.html#gql`,\n );\n\n const operations = doc.definitions\n .filter(d => d.kind !== 'FragmentDefinition')\n .map(definition => {\n if (definition.kind !== 'OperationDefinition') {\n throw new InvariantError(\n `Schema type definitions not allowed in queries. Found: \"${\n definition.kind\n }\"`,\n );\n }\n return definition;\n });\n\n invariant(\n operations.length <= 1,\n `Ambiguous GraphQL document: contains ${operations.length} operations`,\n );\n\n return doc;\n}\n\nexport function getOperationDefinition(\n doc: DocumentNode,\n): OperationDefinitionNode | undefined {\n checkDocument(doc);\n return doc.definitions.filter(\n definition => definition.kind === 'OperationDefinition',\n )[0] as OperationDefinitionNode;\n}\n\nexport function getOperationDefinitionOrDie(\n document: DocumentNode,\n): OperationDefinitionNode {\n const def = getOperationDefinition(document);\n invariant(def, `GraphQL document is missing an operation`);\n return def;\n}\n\nexport function getOperationName(doc: DocumentNode): string | null {\n return (\n doc.definitions\n .filter(\n definition =>\n definition.kind === 'OperationDefinition' && definition.name,\n )\n .map((x: OperationDefinitionNode) => x.name.value)[0] || null\n );\n}\n\n// Returns the FragmentDefinitions from a particular document as an array\nexport function getFragmentDefinitions(\n doc: DocumentNode,\n): FragmentDefinitionNode[] {\n return doc.definitions.filter(\n definition => definition.kind === 'FragmentDefinition',\n ) as FragmentDefinitionNode[];\n}\n\nexport function getQueryDefinition(doc: DocumentNode): OperationDefinitionNode {\n const queryDef = getOperationDefinition(doc) as OperationDefinitionNode;\n\n invariant(\n queryDef && queryDef.operation === 'query',\n 'Must contain a query definition.',\n );\n\n return queryDef;\n}\n\nexport function getFragmentDefinition(\n doc: DocumentNode,\n): FragmentDefinitionNode {\n invariant(\n doc.kind === 'Document',\n `Expecting a parsed GraphQL document. Perhaps you need to wrap the query \\\nstring in a \"gql\" tag? http://docs.apollostack.com/apollo-client/core.html#gql`,\n );\n\n invariant(\n doc.definitions.length <= 1,\n 'Fragment must have exactly one definition.',\n );\n\n const fragmentDef = doc.definitions[0] as FragmentDefinitionNode;\n\n invariant(\n fragmentDef.kind === 'FragmentDefinition',\n 'Must be a fragment definition.',\n );\n\n return fragmentDef as FragmentDefinitionNode;\n}\n\n/**\n * Returns the first operation definition found in this document.\n * If no operation definition is found, the first fragment definition will be returned.\n * If no definitions are found, an error will be thrown.\n */\nexport function getMainDefinition(\n queryDoc: DocumentNode,\n): OperationDefinitionNode | FragmentDefinitionNode {\n checkDocument(queryDoc);\n\n let fragmentDefinition;\n\n for (let definition of queryDoc.definitions) {\n if (definition.kind === 'OperationDefinition') {\n const operation = (definition as OperationDefinitionNode).operation;\n if (\n operation === 'query' ||\n operation === 'mutation' ||\n operation === 'subscription'\n ) {\n return definition as OperationDefinitionNode;\n }\n }\n if (definition.kind === 'FragmentDefinition' && !fragmentDefinition) {\n // we do this because we want to allow multiple fragment definitions\n // to precede an operation definition.\n fragmentDefinition = definition as FragmentDefinitionNode;\n }\n }\n\n if (fragmentDefinition) {\n return fragmentDefinition;\n }\n\n throw new InvariantError(\n 'Expected a parsed GraphQL query with a query, mutation, subscription, or a fragment.',\n );\n}\n\n/**\n * This is an interface that describes a map from fragment names to fragment definitions.\n */\nexport interface FragmentMap {\n [fragmentName: string]: FragmentDefinitionNode;\n}\n\n// Utility function that takes a list of fragment definitions and makes a hash out of them\n// that maps the name of the fragment to the fragment definition.\nexport function createFragmentMap(\n fragments: FragmentDefinitionNode[] = [],\n): FragmentMap {\n const symTable: FragmentMap = {};\n fragments.forEach(fragment => {\n symTable[fragment.name.value] = fragment;\n });\n\n return symTable;\n}\n\nexport function getDefaultValues(\n definition: OperationDefinitionNode | undefined,\n): { [key: string]: JsonValue } {\n if (\n definition &&\n definition.variableDefinitions &&\n definition.variableDefinitions.length\n ) {\n const defaultValues = definition.variableDefinitions\n .filter(({ defaultValue }) => defaultValue)\n .map(\n ({ variable, defaultValue }): { [key: string]: JsonValue } => {\n const defaultValueObj: { [key: string]: JsonValue } = {};\n valueToObjectRepresentation(\n defaultValueObj,\n variable.name,\n defaultValue as ValueNode,\n );\n\n return defaultValueObj;\n },\n );\n\n return assign({}, ...defaultValues);\n }\n\n return {};\n}\n\n/**\n * Returns the names of all variables declared by the operation.\n */\nexport function variablesInOperation(\n operation: OperationDefinitionNode,\n): Set {\n const names = new Set();\n if (operation.variableDefinitions) {\n for (const definition of operation.variableDefinitions) {\n names.add(definition.variable.name.value);\n }\n }\n\n return names;\n}\n","/**\r\n * Adds the properties of one or more source objects to a target object. Works exactly like\r\n * `Object.assign`, but as a utility to maintain support for IE 11.\r\n *\r\n * @see https://github.com/apollostack/apollo-client/pull/1009\r\n */\r\nexport function assign(a: A, b: B): A & B;\r\nexport function assign(a: A, b: B, c: C): A & B & C;\r\nexport function assign(a: A, b: B, c: C, d: D): A & B & C & D;\r\nexport function assign(\r\n a: A,\r\n b: B,\r\n c: C,\r\n d: D,\r\n e: E,\r\n): A & B & C & D & E;\r\nexport function assign(target: any, ...sources: Array): any;\r\nexport function assign(\r\n target: { [key: string]: any },\r\n ...sources: Array<{ [key: string]: any }>\r\n): { [key: string]: any } {\r\n sources.forEach(source => {\r\n if (typeof source === 'undefined' || source === null) {\r\n return;\r\n }\r\n Object.keys(source).forEach(key => {\r\n target[key] = source[key];\r\n });\r\n });\r\n return target;\r\n}\r\n","import {\n DirectiveNode,\n FieldNode,\n IntValueNode,\n FloatValueNode,\n StringValueNode,\n BooleanValueNode,\n ObjectValueNode,\n ListValueNode,\n EnumValueNode,\n NullValueNode,\n VariableNode,\n InlineFragmentNode,\n ValueNode,\n SelectionNode,\n NameNode,\n} from 'graphql';\n\nimport stringify from 'fast-json-stable-stringify';\n\nexport interface IdValue {\n type: 'id';\n id: string;\n generated: boolean;\n typename: string | undefined;\n}\n\nexport interface JsonValue {\n type: 'json';\n json: any;\n}\n\nexport type ListValue = Array;\n\nexport type StoreValue =\n | number\n | string\n | string[]\n | IdValue\n | ListValue\n | JsonValue\n | null\n | undefined\n | void\n | Object;\n\nexport type ScalarValue = StringValueNode | BooleanValueNode | EnumValueNode;\n\nexport function isScalarValue(value: ValueNode): value is ScalarValue {\n return ['StringValue', 'BooleanValue', 'EnumValue'].indexOf(value.kind) > -1;\n}\n\nexport type NumberValue = IntValueNode | FloatValueNode;\n\nexport function isNumberValue(value: ValueNode): value is NumberValue {\n return ['IntValue', 'FloatValue'].indexOf(value.kind) > -1;\n}\n\nfunction isStringValue(value: ValueNode): value is StringValueNode {\n return value.kind === 'StringValue';\n}\n\nfunction isBooleanValue(value: ValueNode): value is BooleanValueNode {\n return value.kind === 'BooleanValue';\n}\n\nfunction isIntValue(value: ValueNode): value is IntValueNode {\n return value.kind === 'IntValue';\n}\n\nfunction isFloatValue(value: ValueNode): value is FloatValueNode {\n return value.kind === 'FloatValue';\n}\n\nfunction isVariable(value: ValueNode): value is VariableNode {\n return value.kind === 'Variable';\n}\n\nfunction isObjectValue(value: ValueNode): value is ObjectValueNode {\n return value.kind === 'ObjectValue';\n}\n\nfunction isListValue(value: ValueNode): value is ListValueNode {\n return value.kind === 'ListValue';\n}\n\nfunction isEnumValue(value: ValueNode): value is EnumValueNode {\n return value.kind === 'EnumValue';\n}\n\nfunction isNullValue(value: ValueNode): value is NullValueNode {\n return value.kind === 'NullValue';\n}\n\nexport function valueToObjectRepresentation(\n argObj: any,\n name: NameNode,\n value: ValueNode,\n variables?: Object,\n) {\n if (isIntValue(value) || isFloatValue(value)) {\n argObj[name.value] = Number(value.value);\n } else if (isBooleanValue(value) || isStringValue(value)) {\n argObj[name.value] = value.value;\n } else if (isObjectValue(value)) {\n const nestedArgObj = {};\n value.fields.map(obj =>\n valueToObjectRepresentation(nestedArgObj, obj.name, obj.value, variables),\n );\n argObj[name.value] = nestedArgObj;\n } else if (isVariable(value)) {\n const variableValue = (variables || ({} as any))[value.name.value];\n argObj[name.value] = variableValue;\n } else if (isListValue(value)) {\n argObj[name.value] = value.values.map(listValue => {\n const nestedArgArrayObj = {};\n valueToObjectRepresentation(\n nestedArgArrayObj,\n name,\n listValue,\n variables,\n );\n return (nestedArgArrayObj as any)[name.value];\n });\n } else if (isEnumValue(value)) {\n argObj[name.value] = (value as EnumValueNode).value;\n } else if (isNullValue(value)) {\n argObj[name.value] = null;\n } else {\n throw new Error(\n `The inline argument \"${name.value}\" of kind \"${(value as any).kind}\"` +\n 'is not supported. Use variables instead of inline arguments to ' +\n 'overcome this limitation.',\n );\n }\n}\n\nexport function storeKeyNameFromField(\n field: FieldNode,\n variables?: Object,\n): string {\n let directivesObj: any = null;\n if (field.directives) {\n directivesObj = {};\n field.directives.forEach(directive => {\n directivesObj[directive.name.value] = {};\n\n if (directive.arguments) {\n directive.arguments.forEach(({ name, value }) =>\n valueToObjectRepresentation(\n directivesObj[directive.name.value],\n name,\n value,\n variables,\n ),\n );\n }\n });\n }\n\n let argObj: any = null;\n if (field.arguments && field.arguments.length) {\n argObj = {};\n field.arguments.forEach(({ name, value }) =>\n valueToObjectRepresentation(argObj, name, value, variables),\n );\n }\n\n return getStoreKeyName(field.name.value, argObj, directivesObj);\n}\n\nexport type Directives = {\n [directiveName: string]: {\n [argName: string]: any;\n };\n};\n\nconst KNOWN_DIRECTIVES: string[] = [\n 'connection',\n 'include',\n 'skip',\n 'client',\n 'rest',\n 'export',\n];\n\nexport function getStoreKeyName(\n fieldName: string,\n args?: Object,\n directives?: Directives,\n): string {\n if (\n directives &&\n directives['connection'] &&\n directives['connection']['key']\n ) {\n if (\n directives['connection']['filter'] &&\n (directives['connection']['filter'] as string[]).length > 0\n ) {\n const filterKeys = directives['connection']['filter']\n ? (directives['connection']['filter'] as string[])\n : [];\n filterKeys.sort();\n\n const queryArgs = args as { [key: string]: any };\n const filteredArgs = {} as { [key: string]: any };\n filterKeys.forEach(key => {\n filteredArgs[key] = queryArgs[key];\n });\n\n return `${directives['connection']['key']}(${JSON.stringify(\n filteredArgs,\n )})`;\n } else {\n return directives['connection']['key'];\n }\n }\n\n let completeFieldName: string = fieldName;\n\n if (args) {\n // We can't use `JSON.stringify` here since it's non-deterministic,\n // and can lead to different store key names being created even though\n // the `args` object used during creation has the same properties/values.\n const stringifiedArgs: string = stringify(args);\n completeFieldName += `(${stringifiedArgs})`;\n }\n\n if (directives) {\n Object.keys(directives).forEach(key => {\n if (KNOWN_DIRECTIVES.indexOf(key) !== -1) return;\n if (directives[key] && Object.keys(directives[key]).length) {\n completeFieldName += `@${key}(${JSON.stringify(directives[key])})`;\n } else {\n completeFieldName += `@${key}`;\n }\n });\n }\n\n return completeFieldName;\n}\n\nexport function argumentsObjectFromField(\n field: FieldNode | DirectiveNode,\n variables: Object,\n): Object {\n if (field.arguments && field.arguments.length) {\n const argObj: Object = {};\n field.arguments.forEach(({ name, value }) =>\n valueToObjectRepresentation(argObj, name, value, variables),\n );\n return argObj;\n }\n\n return null;\n}\n\nexport function resultKeyNameFromField(field: FieldNode): string {\n return field.alias ? field.alias.value : field.name.value;\n}\n\nexport function isField(selection: SelectionNode): selection is FieldNode {\n return selection.kind === 'Field';\n}\n\nexport function isInlineFragment(\n selection: SelectionNode,\n): selection is InlineFragmentNode {\n return selection.kind === 'InlineFragment';\n}\n\nexport function isIdValue(idObject: StoreValue): idObject is IdValue {\n return idObject &&\n (idObject as IdValue | JsonValue).type === 'id' &&\n typeof (idObject as IdValue).generated === 'boolean';\n}\n\nexport type IdConfig = {\n id: string;\n typename: string | undefined;\n};\n\nexport function toIdValue(\n idConfig: string | IdConfig,\n generated = false,\n): IdValue {\n return {\n type: 'id',\n generated,\n ...(typeof idConfig === 'string'\n ? { id: idConfig, typename: undefined }\n : idConfig),\n };\n}\n\nexport function isJsonValue(jsonObject: StoreValue): jsonObject is JsonValue {\n return (\n jsonObject != null &&\n typeof jsonObject === 'object' &&\n (jsonObject as IdValue | JsonValue).type === 'json'\n );\n}\n\nfunction defaultValueFromVariable(node: VariableNode) {\n throw new Error(`Variable nodes are not supported by valueFromNode`);\n}\n\nexport type VariableValue = (node: VariableNode) => any;\n\n/**\n * Evaluate a ValueNode and yield its value in its natural JS form.\n */\nexport function valueFromNode(\n node: ValueNode,\n onVariable: VariableValue = defaultValueFromVariable,\n): any {\n switch (node.kind) {\n case 'Variable':\n return onVariable(node);\n case 'NullValue':\n return null;\n case 'IntValue':\n return parseInt(node.value, 10);\n case 'FloatValue':\n return parseFloat(node.value);\n case 'ListValue':\n return node.values.map(v => valueFromNode(v, onVariable));\n case 'ObjectValue': {\n const value: { [key: string]: any } = {};\n for (const field of node.fields) {\n value[field.name.value] = valueFromNode(field.value, onVariable);\n }\n return value;\n }\n default:\n return node.value;\n }\n}\n","import {\n DocumentNode,\n OperationDefinitionNode,\n FragmentDefinitionNode,\n ValueNode,\n} from 'graphql';\nimport { assign } from './util/assign';\n\nimport { valueToObjectRepresentation, JsonValue } from './storeUtils';\n\nexport function getMutationDefinition(\n doc: DocumentNode,\n): OperationDefinitionNode {\n checkDocument(doc);\n\n let mutationDef: OperationDefinitionNode | null = doc.definitions.filter(\n definition =>\n definition.kind === 'OperationDefinition' &&\n definition.operation === 'mutation',\n )[0] as OperationDefinitionNode;\n\n if (!mutationDef) {\n throw new Error('Must contain a mutation definition.');\n }\n\n return mutationDef;\n}\n\n// Checks the document for errors and throws an exception if there is an error.\nexport function checkDocument(doc: DocumentNode) {\n if (doc.kind !== 'Document') {\n throw new Error(`Expecting a parsed GraphQL document. Perhaps you need to wrap the query \\\nstring in a \"gql\" tag? http://docs.apollostack.com/apollo-client/core.html#gql`);\n }\n\n const operations = doc.definitions\n .filter(d => d.kind !== 'FragmentDefinition')\n .map(definition => {\n if (definition.kind !== 'OperationDefinition') {\n throw new Error(\n `Schema type definitions not allowed in queries. Found: \"${\n definition.kind\n }\"`,\n );\n }\n return definition;\n });\n\n if (operations.length > 1) {\n throw new Error(\n `Ambiguous GraphQL document: contains ${operations.length} operations`,\n );\n }\n}\n\nexport function getOperationDefinition(\n doc: DocumentNode,\n): OperationDefinitionNode | undefined {\n checkDocument(doc);\n return doc.definitions.filter(\n definition => definition.kind === 'OperationDefinition',\n )[0] as OperationDefinitionNode;\n}\n\nexport function getOperationDefinitionOrDie(\n document: DocumentNode,\n): OperationDefinitionNode {\n const def = getOperationDefinition(document);\n if (!def) {\n throw new Error(`GraphQL document is missing an operation`);\n }\n return def;\n}\n\nexport function getOperationName(doc: DocumentNode): string | null {\n return (\n doc.definitions\n .filter(\n definition =>\n definition.kind === 'OperationDefinition' && definition.name,\n )\n .map((x: OperationDefinitionNode) => x.name.value)[0] || null\n );\n}\n\n// Returns the FragmentDefinitions from a particular document as an array\nexport function getFragmentDefinitions(\n doc: DocumentNode,\n): FragmentDefinitionNode[] {\n return doc.definitions.filter(\n definition => definition.kind === 'FragmentDefinition',\n ) as FragmentDefinitionNode[];\n}\n\nexport function getQueryDefinition(doc: DocumentNode): OperationDefinitionNode {\n const queryDef = getOperationDefinition(doc) as OperationDefinitionNode;\n\n if (!queryDef || queryDef.operation !== 'query') {\n throw new Error('Must contain a query definition.');\n }\n\n return queryDef;\n}\n\nexport function getFragmentDefinition(\n doc: DocumentNode,\n): FragmentDefinitionNode {\n if (doc.kind !== 'Document') {\n throw new Error(`Expecting a parsed GraphQL document. Perhaps you need to wrap the query \\\nstring in a \"gql\" tag? http://docs.apollostack.com/apollo-client/core.html#gql`);\n }\n\n if (doc.definitions.length > 1) {\n throw new Error('Fragment must have exactly one definition.');\n }\n\n const fragmentDef = doc.definitions[0] as FragmentDefinitionNode;\n\n if (fragmentDef.kind !== 'FragmentDefinition') {\n throw new Error('Must be a fragment definition.');\n }\n\n return fragmentDef as FragmentDefinitionNode;\n}\n\n/**\n * Returns the first operation definition found in this document.\n * If no operation definition is found, the first fragment definition will be returned.\n * If no definitions are found, an error will be thrown.\n */\nexport function getMainDefinition(\n queryDoc: DocumentNode,\n): OperationDefinitionNode | FragmentDefinitionNode {\n checkDocument(queryDoc);\n\n let fragmentDefinition;\n\n for (let definition of queryDoc.definitions) {\n if (definition.kind === 'OperationDefinition') {\n const operation = (definition as OperationDefinitionNode).operation;\n if (\n operation === 'query' ||\n operation === 'mutation' ||\n operation === 'subscription'\n ) {\n return definition as OperationDefinitionNode;\n }\n }\n if (definition.kind === 'FragmentDefinition' && !fragmentDefinition) {\n // we do this because we want to allow multiple fragment definitions\n // to precede an operation definition.\n fragmentDefinition = definition as FragmentDefinitionNode;\n }\n }\n\n if (fragmentDefinition) {\n return fragmentDefinition;\n }\n\n throw new Error(\n 'Expected a parsed GraphQL query with a query, mutation, subscription, or a fragment.',\n );\n}\n\n/**\n * This is an interface that describes a map from fragment names to fragment definitions.\n */\nexport interface FragmentMap {\n [fragmentName: string]: FragmentDefinitionNode;\n}\n\n// Utility function that takes a list of fragment definitions and makes a hash out of them\n// that maps the name of the fragment to the fragment definition.\nexport function createFragmentMap(\n fragments: FragmentDefinitionNode[] = [],\n): FragmentMap {\n const symTable: FragmentMap = {};\n fragments.forEach(fragment => {\n symTable[fragment.name.value] = fragment;\n });\n\n return symTable;\n}\n\nexport function getDefaultValues(\n definition: OperationDefinitionNode | undefined,\n): { [key: string]: JsonValue } {\n if (\n definition &&\n definition.variableDefinitions &&\n definition.variableDefinitions.length\n ) {\n const defaultValues = definition.variableDefinitions\n .filter(({ defaultValue }) => defaultValue)\n .map(\n ({ variable, defaultValue }): { [key: string]: JsonValue } => {\n const defaultValueObj: { [key: string]: JsonValue } = {};\n valueToObjectRepresentation(\n defaultValueObj,\n variable.name,\n defaultValue as ValueNode,\n );\n\n return defaultValueObj;\n },\n );\n\n return assign({}, ...defaultValues);\n }\n\n return {};\n}\n\n/**\n * Returns the names of all variables declared by the operation.\n */\nexport function variablesInOperation(\n operation: OperationDefinitionNode,\n): Set {\n const names = new Set();\n if (operation.variableDefinitions) {\n for (const definition of operation.variableDefinitions) {\n names.add(definition.variable.name.value);\n }\n }\n\n return names;\n}\n","import {\n DocumentNode,\n SelectionNode,\n SelectionSetNode,\n DefinitionNode,\n OperationDefinitionNode,\n FieldNode,\n DirectiveNode,\n FragmentDefinitionNode,\n} from 'graphql';\n\nimport { cloneDeep } from './util/cloneDeep';\n\nimport {\n checkDocument,\n getOperationDefinitionOrDie,\n getFragmentDefinitions,\n createFragmentMap,\n FragmentMap,\n} from './getFromAST';\n\nconst TYPENAME_FIELD: FieldNode = {\n kind: 'Field',\n name: {\n kind: 'Name',\n value: '__typename',\n },\n};\n\nfunction isNotEmpty(\n op: OperationDefinitionNode | FragmentDefinitionNode,\n fragments: FragmentMap,\n): Boolean {\n // keep selections that are still valid\n return (\n op.selectionSet.selections.filter(\n selectionSet =>\n // anything that doesn't match the compound filter is okay\n !// not an empty array\n (\n selectionSet &&\n // look into fragments to verify they should stay\n selectionSet.kind === 'FragmentSpread' &&\n // see if the fragment in the map is valid (recursively)\n !isNotEmpty(fragments[selectionSet.name.value], fragments)\n ),\n ).length > 0\n );\n}\n\nfunction getDirectiveMatcher(\n directives: (RemoveDirectiveConfig | GetDirectiveConfig)[],\n) {\n return function directiveMatcher(directive: DirectiveNode): Boolean {\n return directives.some(\n (dir: RemoveDirectiveConfig | GetDirectiveConfig) => {\n if (dir.name && dir.name === directive.name.value) return true;\n if (dir.test && dir.test(directive)) return true;\n return false;\n },\n );\n };\n}\n\nfunction addTypenameToSelectionSet(\n selectionSet: SelectionSetNode,\n isRoot = false,\n) {\n if (selectionSet.selections) {\n if (!isRoot) {\n const alreadyHasThisField = selectionSet.selections.some(selection => {\n return (\n selection.kind === 'Field' &&\n (selection as FieldNode).name.value === '__typename'\n );\n });\n\n if (!alreadyHasThisField) {\n selectionSet.selections.push(TYPENAME_FIELD);\n }\n }\n\n selectionSet.selections.forEach(selection => {\n // Must not add __typename if we're inside an introspection query\n if (selection.kind === 'Field') {\n if (\n selection.name.value.lastIndexOf('__', 0) !== 0 &&\n selection.selectionSet\n ) {\n addTypenameToSelectionSet(selection.selectionSet);\n }\n } else if (selection.kind === 'InlineFragment') {\n if (selection.selectionSet) {\n addTypenameToSelectionSet(selection.selectionSet);\n }\n }\n });\n }\n}\n\nexport type RemoveDirectiveConfig = {\n name?: string;\n test?: (directive: DirectiveNode) => boolean;\n remove?: boolean;\n};\n\nfunction removeDirectivesFromSelectionSet(\n directives: RemoveDirectiveConfig[],\n selectionSet: SelectionSetNode,\n): SelectionSetNode {\n if (!selectionSet.selections) return selectionSet;\n // if any of the directives are set to remove this selectionSet, remove it\n const agressiveRemove = directives.some(\n (dir: RemoveDirectiveConfig) => dir.remove,\n );\n\n selectionSet.selections = selectionSet.selections\n .map(selection => {\n if (\n selection.kind !== 'Field' ||\n !(selection as FieldNode) ||\n !selection.directives\n )\n return selection;\n const directiveMatcher = getDirectiveMatcher(directives);\n let remove: boolean;\n selection.directives = selection.directives.filter(directive => {\n const shouldKeep = !directiveMatcher(directive);\n\n if (!remove && !shouldKeep && agressiveRemove) remove = true;\n\n return shouldKeep;\n });\n\n return remove ? null : selection;\n })\n .filter(x => !!x);\n\n selectionSet.selections.forEach(selection => {\n if (\n (selection.kind === 'Field' || selection.kind === 'InlineFragment') &&\n selection.selectionSet\n ) {\n removeDirectivesFromSelectionSet(directives, selection.selectionSet);\n }\n });\n\n return selectionSet;\n}\n\nexport function removeDirectivesFromDocument(\n directives: RemoveDirectiveConfig[],\n doc: DocumentNode,\n): DocumentNode | null {\n const docClone = cloneDeep(doc);\n\n docClone.definitions.forEach((definition: DefinitionNode) => {\n removeDirectivesFromSelectionSet(\n directives,\n (definition as OperationDefinitionNode).selectionSet,\n );\n });\n const operation = getOperationDefinitionOrDie(docClone);\n const fragments = createFragmentMap(getFragmentDefinitions(docClone));\n return isNotEmpty(operation, fragments) ? docClone : null;\n}\n\nexport function addTypenameToDocument(doc: DocumentNode) {\n checkDocument(doc);\n const docClone = cloneDeep(doc);\n\n docClone.definitions.forEach((definition: DefinitionNode) => {\n const isRoot = definition.kind === 'OperationDefinition';\n addTypenameToSelectionSet(\n (definition as OperationDefinitionNode).selectionSet,\n isRoot,\n );\n });\n return docClone;\n}\n\nconst connectionRemoveConfig = {\n test: (directive: DirectiveNode) => {\n const willRemove = directive.name.value === 'connection';\n if (willRemove) {\n if (\n !directive.arguments ||\n !directive.arguments.some(arg => arg.name.value === 'key')\n ) {\n console.warn(\n 'Removing an @connection directive even though it does not have a key. ' +\n 'You may want to use the key parameter to specify a store key.',\n );\n }\n }\n\n return willRemove;\n },\n};\n\nexport function removeConnectionDirectiveFromDocument(doc: DocumentNode) {\n checkDocument(doc);\n return removeDirectivesFromDocument([connectionRemoveConfig], doc);\n}\n\nexport type GetDirectiveConfig = {\n name?: string;\n test?: (directive: DirectiveNode) => boolean;\n};\n\nfunction hasDirectivesInSelectionSet(\n directives: GetDirectiveConfig[],\n selectionSet: SelectionSetNode,\n nestedCheck = true,\n): boolean {\n if (!(selectionSet && selectionSet.selections)) {\n return false;\n }\n const matchedSelections = selectionSet.selections.filter(selection => {\n return hasDirectivesInSelection(directives, selection, nestedCheck);\n });\n return matchedSelections.length > 0;\n}\n\nfunction hasDirectivesInSelection(\n directives: GetDirectiveConfig[],\n selection: SelectionNode,\n nestedCheck = true,\n): boolean {\n if (selection.kind !== 'Field' || !(selection as FieldNode)) {\n return true;\n }\n\n if (!selection.directives) {\n return false;\n }\n const directiveMatcher = getDirectiveMatcher(directives);\n const matchedDirectives = selection.directives.filter(directiveMatcher);\n return (\n matchedDirectives.length > 0 ||\n (nestedCheck &&\n hasDirectivesInSelectionSet(\n directives,\n selection.selectionSet,\n nestedCheck,\n ))\n );\n}\n\nfunction getDirectivesFromSelectionSet(\n directives: GetDirectiveConfig[],\n selectionSet: SelectionSetNode,\n) {\n selectionSet.selections = selectionSet.selections\n .filter(selection => {\n return hasDirectivesInSelection(directives, selection, true);\n })\n .map(selection => {\n if (hasDirectivesInSelection(directives, selection, false)) {\n return selection;\n }\n if (\n (selection.kind === 'Field' || selection.kind === 'InlineFragment') &&\n selection.selectionSet\n ) {\n selection.selectionSet = getDirectivesFromSelectionSet(\n directives,\n selection.selectionSet,\n );\n }\n return selection;\n });\n return selectionSet;\n}\n\nexport function getDirectivesFromDocument(\n directives: GetDirectiveConfig[],\n doc: DocumentNode,\n includeAllFragments = false,\n): DocumentNode | null {\n checkDocument(doc);\n const docClone = cloneDeep(doc);\n docClone.definitions = docClone.definitions.map(definition => {\n if (\n (definition.kind === 'OperationDefinition' ||\n (definition.kind === 'FragmentDefinition' && !includeAllFragments)) &&\n definition.selectionSet\n ) {\n definition.selectionSet = getDirectivesFromSelectionSet(\n directives,\n definition.selectionSet,\n );\n }\n return definition;\n });\n\n const operation = getOperationDefinitionOrDie(docClone);\n const fragments = createFragmentMap(getFragmentDefinitions(docClone));\n return isNotEmpty(operation, fragments) ? docClone : null;\n}\n","export function getEnv(): string | undefined {\n if (typeof process !== 'undefined' && process.env.NODE_ENV) {\n return process.env.NODE_ENV;\n }\n\n // default environment\n return 'development';\n}\n\nexport function isEnv(env: string): boolean {\n return getEnv() === env;\n}\n\nexport function isProduction(): boolean {\n return isEnv('production') === true;\n}\n\nexport function isDevelopment(): boolean {\n return isEnv('development') === true;\n}\n\nexport function isTest(): boolean {\n return isEnv('test') === true;\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import {\n ApolloLink,\n Operation,\n NextLink,\n FetchResult,\n Observable,\n} from 'apollo-link';\n\n/*\n * Expects context to contain the forceFetch field if no dedup\n */\nexport class DedupLink extends ApolloLink {\n private inFlightRequestObservables: Map<\n string,\n Observable\n > = new Map();\n private subscribers: Map = new Map();\n\n public request(\n operation: Operation,\n forward: NextLink,\n ): Observable {\n // sometimes we might not want to deduplicate a request, for example when we want to force fetch it.\n if (operation.getContext().forceFetch) {\n return forward(operation);\n }\n\n const key = operation.toKey();\n\n if (!this.inFlightRequestObservables.get(key)) {\n // this is a new request, i.e. we haven't deduplicated it yet\n // call the next link\n const singleObserver = forward(operation);\n let subscription;\n\n const sharedObserver = new Observable(observer => {\n // this will still be called by each subscriber regardless of\n // deduplication status\n if (!this.subscribers.has(key)) this.subscribers.set(key, new Set());\n\n this.subscribers.get(key).add(observer);\n\n if (!subscription) {\n subscription = singleObserver.subscribe({\n next: result => {\n const subscribers = this.subscribers.get(key);\n this.subscribers.delete(key);\n this.inFlightRequestObservables.delete(key);\n if (subscribers) {\n subscribers.forEach(obs => obs.next(result));\n subscribers.forEach(obs => obs.complete());\n }\n },\n error: error => {\n const subscribers = this.subscribers.get(key);\n this.subscribers.delete(key);\n this.inFlightRequestObservables.delete(key);\n if (subscribers) {\n subscribers.forEach(obs => obs.error(error));\n }\n },\n });\n }\n\n return () => {\n if (this.subscribers.has(key)) {\n this.subscribers.get(key).delete(observer);\n if (this.subscribers.get(key).size === 0) {\n this.inFlightRequestObservables.delete(key);\n if (subscription) subscription.unsubscribe();\n }\n }\n };\n });\n\n this.inFlightRequestObservables.set(key, sharedObserver);\n }\n\n // return shared Observable\n return this.inFlightRequestObservables.get(key);\n }\n}\n","// Provides the methods that allow QueryManager to handle\r\n// the `skip` and `include` directives within GraphQL.\r\nimport {\r\n FieldNode,\r\n OperationDefinitionNode,\r\n SelectionNode,\r\n VariableNode,\r\n BooleanValueNode,\r\n DirectiveNode,\r\n DocumentNode,\r\n} from 'graphql';\r\n\r\nimport { argumentsObjectFromField } from './storeUtils';\r\n\r\nexport type DirectiveInfo = {\r\n [fieldName: string]: { [argName: string]: any };\r\n};\r\n\r\nexport function getDirectiveInfoFromField(\r\n field: FieldNode,\r\n variables: Object,\r\n): DirectiveInfo {\r\n if (field.directives && field.directives.length) {\r\n const directiveObj: DirectiveInfo = {};\r\n field.directives.forEach((directive: DirectiveNode) => {\r\n directiveObj[directive.name.value] = argumentsObjectFromField(\r\n directive,\r\n variables,\r\n );\r\n });\r\n return directiveObj;\r\n }\r\n return null;\r\n}\r\n\r\nexport function shouldInclude(\r\n selection: SelectionNode,\r\n variables: { [name: string]: any } = {},\r\n): boolean {\r\n if (!selection.directives) {\r\n return true;\r\n }\r\n\r\n let res: boolean = true;\r\n selection.directives.forEach(directive => {\r\n // TODO should move this validation to GraphQL validation once that's implemented.\r\n if (directive.name.value !== 'skip' && directive.name.value !== 'include') {\r\n // Just don't worry about directives we don't understand\r\n return;\r\n }\r\n\r\n //evaluate the \"if\" argument and skip (i.e. return undefined) if it evaluates to true.\r\n const directiveArguments = directive.arguments || [];\r\n const directiveName = directive.name.value;\r\n if (directiveArguments.length !== 1) {\r\n throw new Error(\r\n `Incorrect number of arguments for the @${directiveName} directive.`,\r\n );\r\n }\r\n\r\n const ifArgument = directiveArguments[0];\r\n if (!ifArgument.name || ifArgument.name.value !== 'if') {\r\n throw new Error(`Invalid argument for the @${directiveName} directive.`);\r\n }\r\n\r\n const ifValue = directiveArguments[0].value;\r\n let evaledValue: boolean = false;\r\n if (!ifValue || ifValue.kind !== 'BooleanValue') {\r\n // means it has to be a variable value if this is a valid @skip or @include directive\r\n if (ifValue.kind !== 'Variable') {\r\n throw new Error(\r\n `Argument for the @${directiveName} directive must be a variable or a boolean value.`,\r\n );\r\n } else {\r\n evaledValue = variables[(ifValue as VariableNode).name.value];\r\n if (evaledValue === undefined) {\r\n throw new Error(\r\n `Invalid variable referenced in @${directiveName} directive.`,\r\n );\r\n }\r\n }\r\n } else {\r\n evaledValue = (ifValue as BooleanValueNode).value;\r\n }\r\n\r\n if (directiveName === 'skip') {\r\n evaledValue = !evaledValue;\r\n }\r\n\r\n if (!evaledValue) {\r\n res = false;\r\n }\r\n });\r\n\r\n return res;\r\n}\r\n\r\nexport function flattenSelections(selection: SelectionNode): SelectionNode[] {\r\n if (\r\n !(selection as FieldNode).selectionSet ||\r\n !((selection as FieldNode).selectionSet.selections.length > 0)\r\n )\r\n return [selection];\r\n\r\n return [selection].concat(\r\n (selection as FieldNode).selectionSet.selections\r\n .map(selectionNode =>\r\n [selectionNode].concat(flattenSelections(selectionNode)),\r\n )\r\n .reduce((selections, selected) => selections.concat(selected), []),\r\n );\r\n}\r\n\r\nexport function getDirectiveNames(doc: DocumentNode) {\r\n // operation => [names of directives];\r\n const directiveNames = doc.definitions\r\n .filter(\r\n (definition: OperationDefinitionNode) =>\r\n definition.selectionSet && definition.selectionSet.selections,\r\n )\r\n // operation => [[Selection]]\r\n .map(x => flattenSelections(x as any))\r\n // [[Selection]] => [Selection]\r\n .reduce((selections, selected) => selections.concat(selected), [])\r\n // [Selection] => [Selection with Directives]\r\n .filter(\r\n (selection: SelectionNode) =>\r\n selection.directives && selection.directives.length > 0,\r\n )\r\n // [Selection with Directives] => [[Directives]]\r\n .map((selection: SelectionNode) => selection.directives)\r\n // [[Directives]] => [Directives]\r\n .reduce((directives, directive) => directives.concat(directive), [])\r\n // [Directives] => [Name]\r\n .map((directive: DirectiveNode) => directive.name.value);\r\n return directiveNames;\r\n}\r\n\r\nexport function hasDirectives(names: string[], doc: DocumentNode) {\r\n return getDirectiveNames(doc).some(\r\n (name: string) => names.indexOf(name) > -1,\r\n );\r\n}\r\n",null,null,null,null,null,null,null,"exports.version = \"2.4.6\"","import { getOperationName } from 'apollo-utilities';\nimport Observable from 'zen-observable-ts';\nimport { print } from 'graphql/language/printer';\n\nimport { GraphQLRequest, Operation } from './types';\nimport { ApolloLink } from './link';\n\nexport function validateOperation(operation: GraphQLRequest): GraphQLRequest {\n const OPERATION_FIELDS = [\n 'query',\n 'operationName',\n 'variables',\n 'extensions',\n 'context',\n ];\n for (let key of Object.keys(operation)) {\n if (OPERATION_FIELDS.indexOf(key) < 0) {\n throw new Error(`illegal argument: ${key}`);\n }\n }\n\n return operation;\n}\n\nexport class LinkError extends Error {\n public link: ApolloLink;\n constructor(message?: string, link?: ApolloLink) {\n super(message);\n this.link = link;\n }\n}\n\nexport function isTerminating(link: ApolloLink): boolean {\n return link.request.length <= 1;\n}\n\nexport function toPromise(observable: Observable): Promise {\n let completed = false;\n return new Promise((resolve, reject) => {\n observable.subscribe({\n next: data => {\n if (completed) {\n console.warn(\n `Promise Wrapper does not support multiple results from Observable`,\n );\n } else {\n completed = true;\n resolve(data);\n }\n },\n error: reject,\n });\n });\n}\n\n// backwards compat\nexport const makePromise = toPromise;\n\nexport function fromPromise(promise: Promise): Observable {\n return new Observable(observer => {\n promise\n .then((value: T) => {\n observer.next(value);\n observer.complete();\n })\n .catch(observer.error.bind(observer));\n });\n}\n\nexport function fromError(errorValue: any): Observable {\n return new Observable(observer => {\n observer.error(errorValue);\n });\n}\n\nexport function transformOperation(operation: GraphQLRequest): GraphQLRequest {\n const transformedOperation: GraphQLRequest = {\n variables: operation.variables || {},\n extensions: operation.extensions || {},\n operationName: operation.operationName,\n query: operation.query,\n };\n\n // best guess at an operation name\n if (!transformedOperation.operationName) {\n transformedOperation.operationName =\n typeof transformedOperation.query !== 'string'\n ? getOperationName(transformedOperation.query)\n : '';\n }\n\n return transformedOperation as Operation;\n}\n\nexport function createOperation(\n starting: any,\n operation: GraphQLRequest,\n): Operation {\n let context = { ...starting };\n const setContext = next => {\n if (typeof next === 'function') {\n context = { ...context, ...next(context) };\n } else {\n context = { ...context, ...next };\n }\n };\n const getContext = () => ({ ...context });\n\n Object.defineProperty(operation, 'setContext', {\n enumerable: false,\n value: setContext,\n });\n\n Object.defineProperty(operation, 'getContext', {\n enumerable: false,\n value: getContext,\n });\n\n Object.defineProperty(operation, 'toKey', {\n enumerable: false,\n value: () => getKey(operation),\n });\n\n return operation as Operation;\n}\n\nexport function getKey(operation: GraphQLRequest) {\n // XXX we're assuming here that variables will be serialized in the same order.\n // that might not always be true\n return `${print(operation.query)}|${JSON.stringify(operation.variables)}|${\n operation.operationName\n }`;\n}\n","import Observable from 'zen-observable-ts';\n\nimport {\n GraphQLRequest,\n NextLink,\n Operation,\n RequestHandler,\n FetchResult,\n} from './types';\n\nimport {\n validateOperation,\n isTerminating,\n LinkError,\n transformOperation,\n createOperation,\n} from './linkUtils';\n\nconst passthrough = (op, forward) => (forward ? forward(op) : Observable.of());\n\nconst toLink = (handler: RequestHandler | ApolloLink) =>\n typeof handler === 'function' ? new ApolloLink(handler) : handler;\n\nexport const empty = (): ApolloLink =>\n new ApolloLink((op, forward) => Observable.of());\n\nexport const from = (links: ApolloLink[]): ApolloLink => {\n if (links.length === 0) return empty();\n\n return links.map(toLink).reduce((x, y) => x.concat(y));\n};\n\nexport const split = (\n test: (op: Operation) => boolean,\n left: ApolloLink | RequestHandler,\n right: ApolloLink | RequestHandler = new ApolloLink(passthrough),\n): ApolloLink => {\n const leftLink = toLink(left);\n const rightLink = toLink(right);\n\n if (isTerminating(leftLink) && isTerminating(rightLink)) {\n return new ApolloLink(operation => {\n return test(operation)\n ? leftLink.request(operation) || Observable.of()\n : rightLink.request(operation) || Observable.of();\n });\n } else {\n return new ApolloLink((operation, forward) => {\n return test(operation)\n ? leftLink.request(operation, forward) || Observable.of()\n : rightLink.request(operation, forward) || Observable.of();\n });\n }\n};\n\n// join two Links together\nexport const concat = (\n first: ApolloLink | RequestHandler,\n second: ApolloLink | RequestHandler,\n) => {\n const firstLink = toLink(first);\n if (isTerminating(firstLink)) {\n console.warn(\n new LinkError(\n `You are calling concat on a terminating link, which will have no effect`,\n firstLink,\n ),\n );\n return firstLink;\n }\n const nextLink = toLink(second);\n\n if (isTerminating(nextLink)) {\n return new ApolloLink(\n operation =>\n firstLink.request(\n operation,\n op => nextLink.request(op) || Observable.of(),\n ) || Observable.of(),\n );\n } else {\n return new ApolloLink((operation, forward) => {\n return (\n firstLink.request(operation, op => {\n return nextLink.request(op, forward) || Observable.of();\n }) || Observable.of()\n );\n });\n }\n};\n\nexport class ApolloLink {\n public static empty = empty;\n public static from = from;\n public static split = split;\n public static execute = execute;\n\n constructor(request?: RequestHandler) {\n if (request) this.request = request;\n }\n\n public split(\n test: (op: Operation) => boolean,\n left: ApolloLink | RequestHandler,\n right: ApolloLink | RequestHandler = new ApolloLink(passthrough),\n ): ApolloLink {\n return this.concat(split(test, left, right));\n }\n\n public concat(next: ApolloLink | RequestHandler): ApolloLink {\n return concat(this, next);\n }\n\n public request(\n operation: Operation,\n forward?: NextLink,\n ): Observable | null {\n throw new Error('request is not implemented');\n }\n}\n\nexport function execute(\n link: ApolloLink,\n operation: GraphQLRequest,\n): Observable {\n return (\n link.request(\n createOperation(\n operation.context,\n transformOperation(validateOperation(operation)),\n ),\n ) || Observable.of()\n );\n}\n","import {\n DirectiveNode,\n FieldNode,\n IntValueNode,\n FloatValueNode,\n StringValueNode,\n BooleanValueNode,\n ObjectValueNode,\n ListValueNode,\n EnumValueNode,\n NullValueNode,\n VariableNode,\n InlineFragmentNode,\n ValueNode,\n SelectionNode,\n NameNode,\n} from 'graphql';\n\nimport stringify from 'fast-json-stable-stringify';\nimport { InvariantError } from 'ts-invariant';\n\nexport interface IdValue {\n type: 'id';\n id: string;\n generated: boolean;\n typename: string | undefined;\n}\n\nexport interface JsonValue {\n type: 'json';\n json: any;\n}\n\nexport type ListValue = Array;\n\nexport type StoreValue =\n | number\n | string\n | string[]\n | IdValue\n | ListValue\n | JsonValue\n | null\n | undefined\n | void\n | Object;\n\nexport type ScalarValue = StringValueNode | BooleanValueNode | EnumValueNode;\n\nexport function isScalarValue(value: ValueNode): value is ScalarValue {\n return ['StringValue', 'BooleanValue', 'EnumValue'].indexOf(value.kind) > -1;\n}\n\nexport type NumberValue = IntValueNode | FloatValueNode;\n\nexport function isNumberValue(value: ValueNode): value is NumberValue {\n return ['IntValue', 'FloatValue'].indexOf(value.kind) > -1;\n}\n\nfunction isStringValue(value: ValueNode): value is StringValueNode {\n return value.kind === 'StringValue';\n}\n\nfunction isBooleanValue(value: ValueNode): value is BooleanValueNode {\n return value.kind === 'BooleanValue';\n}\n\nfunction isIntValue(value: ValueNode): value is IntValueNode {\n return value.kind === 'IntValue';\n}\n\nfunction isFloatValue(value: ValueNode): value is FloatValueNode {\n return value.kind === 'FloatValue';\n}\n\nfunction isVariable(value: ValueNode): value is VariableNode {\n return value.kind === 'Variable';\n}\n\nfunction isObjectValue(value: ValueNode): value is ObjectValueNode {\n return value.kind === 'ObjectValue';\n}\n\nfunction isListValue(value: ValueNode): value is ListValueNode {\n return value.kind === 'ListValue';\n}\n\nfunction isEnumValue(value: ValueNode): value is EnumValueNode {\n return value.kind === 'EnumValue';\n}\n\nfunction isNullValue(value: ValueNode): value is NullValueNode {\n return value.kind === 'NullValue';\n}\n\nexport function valueToObjectRepresentation(\n argObj: any,\n name: NameNode,\n value: ValueNode,\n variables?: Object,\n) {\n if (isIntValue(value) || isFloatValue(value)) {\n argObj[name.value] = Number(value.value);\n } else if (isBooleanValue(value) || isStringValue(value)) {\n argObj[name.value] = value.value;\n } else if (isObjectValue(value)) {\n const nestedArgObj = {};\n value.fields.map(obj =>\n valueToObjectRepresentation(nestedArgObj, obj.name, obj.value, variables),\n );\n argObj[name.value] = nestedArgObj;\n } else if (isVariable(value)) {\n const variableValue = (variables || ({} as any))[value.name.value];\n argObj[name.value] = variableValue;\n } else if (isListValue(value)) {\n argObj[name.value] = value.values.map(listValue => {\n const nestedArgArrayObj = {};\n valueToObjectRepresentation(\n nestedArgArrayObj,\n name,\n listValue,\n variables,\n );\n return (nestedArgArrayObj as any)[name.value];\n });\n } else if (isEnumValue(value)) {\n argObj[name.value] = (value as EnumValueNode).value;\n } else if (isNullValue(value)) {\n argObj[name.value] = null;\n } else {\n throw new InvariantError(\n `The inline argument \"${name.value}\" of kind \"${(value as any).kind}\"` +\n 'is not supported. Use variables instead of inline arguments to ' +\n 'overcome this limitation.',\n );\n }\n}\n\nexport function storeKeyNameFromField(\n field: FieldNode,\n variables?: Object,\n): string {\n let directivesObj: any = null;\n if (field.directives) {\n directivesObj = {};\n field.directives.forEach(directive => {\n directivesObj[directive.name.value] = {};\n\n if (directive.arguments) {\n directive.arguments.forEach(({ name, value }) =>\n valueToObjectRepresentation(\n directivesObj[directive.name.value],\n name,\n value,\n variables,\n ),\n );\n }\n });\n }\n\n let argObj: any = null;\n if (field.arguments && field.arguments.length) {\n argObj = {};\n field.arguments.forEach(({ name, value }) =>\n valueToObjectRepresentation(argObj, name, value, variables),\n );\n }\n\n return getStoreKeyName(field.name.value, argObj, directivesObj);\n}\n\nexport type Directives = {\n [directiveName: string]: {\n [argName: string]: any;\n };\n};\n\nconst KNOWN_DIRECTIVES: string[] = [\n 'connection',\n 'include',\n 'skip',\n 'client',\n 'rest',\n 'export',\n];\n\nexport function getStoreKeyName(\n fieldName: string,\n args?: Object,\n directives?: Directives,\n): string {\n if (\n directives &&\n directives['connection'] &&\n directives['connection']['key']\n ) {\n if (\n directives['connection']['filter'] &&\n (directives['connection']['filter'] as string[]).length > 0\n ) {\n const filterKeys = directives['connection']['filter']\n ? (directives['connection']['filter'] as string[])\n : [];\n filterKeys.sort();\n\n const queryArgs = args as { [key: string]: any };\n const filteredArgs = {} as { [key: string]: any };\n filterKeys.forEach(key => {\n filteredArgs[key] = queryArgs[key];\n });\n\n return `${directives['connection']['key']}(${JSON.stringify(\n filteredArgs,\n )})`;\n } else {\n return directives['connection']['key'];\n }\n }\n\n let completeFieldName: string = fieldName;\n\n if (args) {\n // We can't use `JSON.stringify` here since it's non-deterministic,\n // and can lead to different store key names being created even though\n // the `args` object used during creation has the same properties/values.\n const stringifiedArgs: string = stringify(args);\n completeFieldName += `(${stringifiedArgs})`;\n }\n\n if (directives) {\n Object.keys(directives).forEach(key => {\n if (KNOWN_DIRECTIVES.indexOf(key) !== -1) return;\n if (directives[key] && Object.keys(directives[key]).length) {\n completeFieldName += `@${key}(${JSON.stringify(directives[key])})`;\n } else {\n completeFieldName += `@${key}`;\n }\n });\n }\n\n return completeFieldName;\n}\n\nexport function argumentsObjectFromField(\n field: FieldNode | DirectiveNode,\n variables: Object,\n): Object {\n if (field.arguments && field.arguments.length) {\n const argObj: Object = {};\n field.arguments.forEach(({ name, value }) =>\n valueToObjectRepresentation(argObj, name, value, variables),\n );\n return argObj;\n }\n\n return null;\n}\n\nexport function resultKeyNameFromField(field: FieldNode): string {\n return field.alias ? field.alias.value : field.name.value;\n}\n\nexport function isField(selection: SelectionNode): selection is FieldNode {\n return selection.kind === 'Field';\n}\n\nexport function isInlineFragment(\n selection: SelectionNode,\n): selection is InlineFragmentNode {\n return selection.kind === 'InlineFragment';\n}\n\nexport function isIdValue(idObject: StoreValue): idObject is IdValue {\n return idObject &&\n (idObject as IdValue | JsonValue).type === 'id' &&\n typeof (idObject as IdValue).generated === 'boolean';\n}\n\nexport type IdConfig = {\n id: string;\n typename: string | undefined;\n};\n\nexport function toIdValue(\n idConfig: string | IdConfig,\n generated = false,\n): IdValue {\n return {\n type: 'id',\n generated,\n ...(typeof idConfig === 'string'\n ? { id: idConfig, typename: undefined }\n : idConfig),\n };\n}\n\nexport function isJsonValue(jsonObject: StoreValue): jsonObject is JsonValue {\n return (\n jsonObject != null &&\n typeof jsonObject === 'object' &&\n (jsonObject as IdValue | JsonValue).type === 'json'\n );\n}\n\nfunction defaultValueFromVariable(node: VariableNode) {\n throw new InvariantError(`Variable nodes are not supported by valueFromNode`);\n}\n\nexport type VariableValue = (node: VariableNode) => any;\n\n/**\n * Evaluate a ValueNode and yield its value in its natural JS form.\n */\nexport function valueFromNode(\n node: ValueNode,\n onVariable: VariableValue = defaultValueFromVariable,\n): any {\n switch (node.kind) {\n case 'Variable':\n return onVariable(node);\n case 'NullValue':\n return null;\n case 'IntValue':\n return parseInt(node.value, 10);\n case 'FloatValue':\n return parseFloat(node.value);\n case 'ListValue':\n return node.values.map(v => valueFromNode(v, onVariable));\n case 'ObjectValue': {\n const value: { [key: string]: any } = {};\n for (const field of node.fields) {\n value[field.name.value] = valueFromNode(field.value, onVariable);\n }\n return value;\n }\n default:\n return node.value;\n }\n}\n","// Provides the methods that allow QueryManager to handle the `skip` and\n// `include` directives within GraphQL.\nimport {\n FieldNode,\n SelectionNode,\n VariableNode,\n BooleanValueNode,\n DirectiveNode,\n DocumentNode,\n ArgumentNode,\n ValueNode,\n} from 'graphql';\n\nimport { visit } from 'graphql/language/visitor';\n\nimport { invariant } from 'ts-invariant';\n\nimport { argumentsObjectFromField } from './storeUtils';\n\nexport type DirectiveInfo = {\n [fieldName: string]: { [argName: string]: any };\n};\n\nexport function getDirectiveInfoFromField(\n field: FieldNode,\n variables: Object,\n): DirectiveInfo {\n if (field.directives && field.directives.length) {\n const directiveObj: DirectiveInfo = {};\n field.directives.forEach((directive: DirectiveNode) => {\n directiveObj[directive.name.value] = argumentsObjectFromField(\n directive,\n variables,\n );\n });\n return directiveObj;\n }\n return null;\n}\n\nexport function shouldInclude(\n selection: SelectionNode,\n variables: { [name: string]: any } = {},\n): boolean {\n return getInclusionDirectives(\n selection.directives,\n ).every(({ directive, ifArgument }) => {\n let evaledValue: boolean = false;\n if (ifArgument.value.kind === 'Variable') {\n evaledValue = variables[(ifArgument.value as VariableNode).name.value];\n invariant(\n evaledValue !== void 0,\n `Invalid variable referenced in @${directive.name.value} directive.`,\n );\n } else {\n evaledValue = (ifArgument.value as BooleanValueNode).value;\n }\n return directive.name.value === 'skip' ? !evaledValue : evaledValue;\n });\n}\n\nexport function getDirectiveNames(doc: DocumentNode) {\n const names: string[] = [];\n\n visit(doc, {\n Directive(node) {\n names.push(node.name.value);\n },\n });\n\n return names;\n}\n\nexport function hasDirectives(names: string[], doc: DocumentNode) {\n return getDirectiveNames(doc).some(\n (name: string) => names.indexOf(name) > -1,\n );\n}\n\nexport function hasClientExports(document: DocumentNode) {\n return (\n document &&\n hasDirectives(['client'], document) &&\n hasDirectives(['export'], document)\n );\n}\n\nexport type InclusionDirectives = Array<{\n directive: DirectiveNode;\n ifArgument: ArgumentNode;\n}>;\n\nfunction isInclusionDirective({ name: { value } }: DirectiveNode): boolean {\n return value === 'skip' || value === 'include';\n}\n\nexport function getInclusionDirectives(\n directives: ReadonlyArray,\n): InclusionDirectives {\n return directives ? directives.filter(isInclusionDirective).map(directive => {\n const directiveArguments = directive.arguments;\n const directiveName = directive.name.value;\n\n invariant(\n directiveArguments && directiveArguments.length === 1,\n `Incorrect number of arguments for the @${directiveName} directive.`,\n );\n\n const ifArgument = directiveArguments[0];\n invariant(\n ifArgument.name && ifArgument.name.value === 'if',\n `Invalid argument for the @${directiveName} directive.`,\n );\n\n const ifValue: ValueNode = ifArgument.value;\n\n // means it has to be a variable value if this is a valid @skip or @include directive\n invariant(\n ifValue &&\n (ifValue.kind === 'Variable' || ifValue.kind === 'BooleanValue'),\n `Argument for the @${directiveName} directive must be a variable or a boolean value.`,\n );\n\n return { directive, ifArgument };\n }) : [];\n}\n\n","import { DocumentNode, FragmentDefinitionNode } from 'graphql';\nimport { invariant, InvariantError } from 'ts-invariant';\n\n/**\n * Returns a query document which adds a single query operation that only\n * spreads the target fragment inside of it.\n *\n * So for example a document of:\n *\n * ```graphql\n * fragment foo on Foo { a b c }\n * ```\n *\n * Turns into:\n *\n * ```graphql\n * { ...foo }\n *\n * fragment foo on Foo { a b c }\n * ```\n *\n * The target fragment will either be the only fragment in the document, or a\n * fragment specified by the provided `fragmentName`. If there is more than one\n * fragment, but a `fragmentName` was not defined then an error will be thrown.\n */\nexport function getFragmentQueryDocument(\n document: DocumentNode,\n fragmentName?: string,\n): DocumentNode {\n let actualFragmentName = fragmentName;\n\n // Build an array of all our fragment definitions that will be used for\n // validations. We also do some validations on the other definitions in the\n // document while building this list.\n const fragments: Array = [];\n document.definitions.forEach(definition => {\n // Throw an error if we encounter an operation definition because we will\n // define our own operation definition later on.\n if (definition.kind === 'OperationDefinition') {\n throw new InvariantError(\n `Found a ${definition.operation} operation${\n definition.name ? ` named '${definition.name.value}'` : ''\n }. ` +\n 'No operations are allowed when using a fragment as a query. Only fragments are allowed.',\n );\n }\n // Add our definition to the fragments array if it is a fragment\n // definition.\n if (definition.kind === 'FragmentDefinition') {\n fragments.push(definition);\n }\n });\n\n // If the user did not give us a fragment name then let us try to get a\n // name from a single fragment in the definition.\n if (typeof actualFragmentName === 'undefined') {\n invariant(\n fragments.length === 1,\n `Found ${\n fragments.length\n } fragments. \\`fragmentName\\` must be provided when there is not exactly 1 fragment.`,\n );\n actualFragmentName = fragments[0].name.value;\n }\n\n // Generate a query document with an operation that simply spreads the\n // fragment inside of it.\n const query: DocumentNode = {\n ...document,\n definitions: [\n {\n kind: 'OperationDefinition',\n operation: 'query',\n selectionSet: {\n kind: 'SelectionSet',\n selections: [\n {\n kind: 'FragmentSpread',\n name: {\n kind: 'Name',\n value: actualFragmentName,\n },\n },\n ],\n },\n },\n ...document.definitions,\n ],\n };\n\n return query;\n}\n","/**\n * Adds the properties of one or more source objects to a target object. Works exactly like\n * `Object.assign`, but as a utility to maintain support for IE 11.\n *\n * @see https://github.com/apollostack/apollo-client/pull/1009\n */\nexport function assign(a: A, b: B): A & B;\nexport function assign(a: A, b: B, c: C): A & B & C;\nexport function assign(a: A, b: B, c: C, d: D): A & B & C & D;\nexport function assign(\n a: A,\n b: B,\n c: C,\n d: D,\n e: E,\n): A & B & C & D & E;\nexport function assign(target: any, ...sources: Array): any;\nexport function assign(\n target: { [key: string]: any },\n ...sources: Array<{ [key: string]: any }>\n): { [key: string]: any } {\n sources.forEach(source => {\n if (typeof source === 'undefined' || source === null) {\n return;\n }\n Object.keys(source).forEach(key => {\n target[key] = source[key];\n });\n });\n return target;\n}\n","import {\n DocumentNode,\n OperationDefinitionNode,\n FragmentDefinitionNode,\n ValueNode,\n} from 'graphql';\n\nimport { invariant, InvariantError } from 'ts-invariant';\n\nimport { assign } from './util/assign';\n\nimport { valueToObjectRepresentation, JsonValue } from './storeUtils';\n\nexport function getMutationDefinition(\n doc: DocumentNode,\n): OperationDefinitionNode {\n checkDocument(doc);\n\n let mutationDef: OperationDefinitionNode | null = doc.definitions.filter(\n definition =>\n definition.kind === 'OperationDefinition' &&\n definition.operation === 'mutation',\n )[0] as OperationDefinitionNode;\n\n invariant(mutationDef, 'Must contain a mutation definition.');\n\n return mutationDef;\n}\n\n// Checks the document for errors and throws an exception if there is an error.\nexport function checkDocument(doc: DocumentNode) {\n invariant(\n doc && doc.kind === 'Document',\n `Expecting a parsed GraphQL document. Perhaps you need to wrap the query \\\nstring in a \"gql\" tag? http://docs.apollostack.com/apollo-client/core.html#gql`,\n );\n\n const operations = doc.definitions\n .filter(d => d.kind !== 'FragmentDefinition')\n .map(definition => {\n if (definition.kind !== 'OperationDefinition') {\n throw new InvariantError(\n `Schema type definitions not allowed in queries. Found: \"${\n definition.kind\n }\"`,\n );\n }\n return definition;\n });\n\n invariant(\n operations.length <= 1,\n `Ambiguous GraphQL document: contains ${operations.length} operations`,\n );\n\n return doc;\n}\n\nexport function getOperationDefinition(\n doc: DocumentNode,\n): OperationDefinitionNode | undefined {\n checkDocument(doc);\n return doc.definitions.filter(\n definition => definition.kind === 'OperationDefinition',\n )[0] as OperationDefinitionNode;\n}\n\nexport function getOperationDefinitionOrDie(\n document: DocumentNode,\n): OperationDefinitionNode {\n const def = getOperationDefinition(document);\n invariant(def, `GraphQL document is missing an operation`);\n return def;\n}\n\nexport function getOperationName(doc: DocumentNode): string | null {\n return (\n doc.definitions\n .filter(\n definition =>\n definition.kind === 'OperationDefinition' && definition.name,\n )\n .map((x: OperationDefinitionNode) => x.name.value)[0] || null\n );\n}\n\n// Returns the FragmentDefinitions from a particular document as an array\nexport function getFragmentDefinitions(\n doc: DocumentNode,\n): FragmentDefinitionNode[] {\n return doc.definitions.filter(\n definition => definition.kind === 'FragmentDefinition',\n ) as FragmentDefinitionNode[];\n}\n\nexport function getQueryDefinition(doc: DocumentNode): OperationDefinitionNode {\n const queryDef = getOperationDefinition(doc) as OperationDefinitionNode;\n\n invariant(\n queryDef && queryDef.operation === 'query',\n 'Must contain a query definition.',\n );\n\n return queryDef;\n}\n\nexport function getFragmentDefinition(\n doc: DocumentNode,\n): FragmentDefinitionNode {\n invariant(\n doc.kind === 'Document',\n `Expecting a parsed GraphQL document. Perhaps you need to wrap the query \\\nstring in a \"gql\" tag? http://docs.apollostack.com/apollo-client/core.html#gql`,\n );\n\n invariant(\n doc.definitions.length <= 1,\n 'Fragment must have exactly one definition.',\n );\n\n const fragmentDef = doc.definitions[0] as FragmentDefinitionNode;\n\n invariant(\n fragmentDef.kind === 'FragmentDefinition',\n 'Must be a fragment definition.',\n );\n\n return fragmentDef as FragmentDefinitionNode;\n}\n\n/**\n * Returns the first operation definition found in this document.\n * If no operation definition is found, the first fragment definition will be returned.\n * If no definitions are found, an error will be thrown.\n */\nexport function getMainDefinition(\n queryDoc: DocumentNode,\n): OperationDefinitionNode | FragmentDefinitionNode {\n checkDocument(queryDoc);\n\n let fragmentDefinition;\n\n for (let definition of queryDoc.definitions) {\n if (definition.kind === 'OperationDefinition') {\n const operation = (definition as OperationDefinitionNode).operation;\n if (\n operation === 'query' ||\n operation === 'mutation' ||\n operation === 'subscription'\n ) {\n return definition as OperationDefinitionNode;\n }\n }\n if (definition.kind === 'FragmentDefinition' && !fragmentDefinition) {\n // we do this because we want to allow multiple fragment definitions\n // to precede an operation definition.\n fragmentDefinition = definition as FragmentDefinitionNode;\n }\n }\n\n if (fragmentDefinition) {\n return fragmentDefinition;\n }\n\n throw new InvariantError(\n 'Expected a parsed GraphQL query with a query, mutation, subscription, or a fragment.',\n );\n}\n\n/**\n * This is an interface that describes a map from fragment names to fragment definitions.\n */\nexport interface FragmentMap {\n [fragmentName: string]: FragmentDefinitionNode;\n}\n\n// Utility function that takes a list of fragment definitions and makes a hash out of them\n// that maps the name of the fragment to the fragment definition.\nexport function createFragmentMap(\n fragments: FragmentDefinitionNode[] = [],\n): FragmentMap {\n const symTable: FragmentMap = {};\n fragments.forEach(fragment => {\n symTable[fragment.name.value] = fragment;\n });\n\n return symTable;\n}\n\nexport function getDefaultValues(\n definition: OperationDefinitionNode | undefined,\n): { [key: string]: JsonValue } {\n if (\n definition &&\n definition.variableDefinitions &&\n definition.variableDefinitions.length\n ) {\n const defaultValues = definition.variableDefinitions\n .filter(({ defaultValue }) => defaultValue)\n .map(\n ({ variable, defaultValue }): { [key: string]: JsonValue } => {\n const defaultValueObj: { [key: string]: JsonValue } = {};\n valueToObjectRepresentation(\n defaultValueObj,\n variable.name,\n defaultValue as ValueNode,\n );\n\n return defaultValueObj;\n },\n );\n\n return assign({}, ...defaultValues);\n }\n\n return {};\n}\n\n/**\n * Returns the names of all variables declared by the operation.\n */\nexport function variablesInOperation(\n operation: OperationDefinitionNode,\n): Set {\n const names = new Set();\n if (operation.variableDefinitions) {\n for (const definition of operation.variableDefinitions) {\n names.add(definition.variable.name.value);\n }\n }\n\n return names;\n}\n","export function filterInPlace(\n array: T[],\n test: (elem: T) => boolean,\n context?: any,\n): T[] {\n let target = 0;\n array.forEach(function (elem, i) {\n if (test.call(this, elem, i, array)) {\n array[target++] = elem;\n }\n }, context);\n array.length = target;\n return array;\n}\n","import {\n DocumentNode,\n SelectionNode,\n SelectionSetNode,\n OperationDefinitionNode,\n FieldNode,\n DirectiveNode,\n FragmentDefinitionNode,\n ArgumentNode,\n FragmentSpreadNode,\n VariableDefinitionNode,\n VariableNode,\n} from 'graphql';\nimport { visit } from 'graphql/language/visitor';\n\nimport {\n checkDocument,\n getOperationDefinition,\n getFragmentDefinition,\n getFragmentDefinitions,\n createFragmentMap,\n FragmentMap,\n getMainDefinition,\n} from './getFromAST';\nimport { filterInPlace } from './util/filterInPlace';\nimport { invariant } from 'ts-invariant';\nimport { isField, isInlineFragment } from './storeUtils';\n\nexport type RemoveNodeConfig = {\n name?: string;\n test?: (node: N) => boolean;\n remove?: boolean;\n};\n\nexport type GetNodeConfig = {\n name?: string;\n test?: (node: N) => boolean;\n};\n\nexport type RemoveDirectiveConfig = RemoveNodeConfig;\nexport type GetDirectiveConfig = GetNodeConfig;\nexport type RemoveArgumentsConfig = RemoveNodeConfig;\nexport type GetFragmentSpreadConfig = GetNodeConfig;\nexport type RemoveFragmentSpreadConfig = RemoveNodeConfig;\nexport type RemoveFragmentDefinitionConfig = RemoveNodeConfig<\n FragmentDefinitionNode\n>;\nexport type RemoveVariableDefinitionConfig = RemoveNodeConfig<\n VariableDefinitionNode\n>;\n\nconst TYPENAME_FIELD: FieldNode = {\n kind: 'Field',\n name: {\n kind: 'Name',\n value: '__typename',\n },\n};\n\nfunction isEmpty(\n op: OperationDefinitionNode | FragmentDefinitionNode,\n fragments: FragmentMap,\n): boolean {\n return op.selectionSet.selections.every(\n selection =>\n selection.kind === 'FragmentSpread' &&\n isEmpty(fragments[selection.name.value], fragments),\n );\n}\n\nfunction nullIfDocIsEmpty(doc: DocumentNode) {\n return isEmpty(\n getOperationDefinition(doc) || getFragmentDefinition(doc),\n createFragmentMap(getFragmentDefinitions(doc)),\n )\n ? null\n : doc;\n}\n\nfunction getDirectiveMatcher(\n directives: (RemoveDirectiveConfig | GetDirectiveConfig)[],\n) {\n return function directiveMatcher(directive: DirectiveNode) {\n return directives.some(\n dir =>\n (dir.name && dir.name === directive.name.value) ||\n (dir.test && dir.test(directive)),\n );\n };\n}\n\nexport function removeDirectivesFromDocument(\n directives: RemoveDirectiveConfig[],\n doc: DocumentNode,\n): DocumentNode | null {\n const variablesInUse: Record = Object.create(null);\n let variablesToRemove: RemoveArgumentsConfig[] = [];\n\n const fragmentSpreadsInUse: Record = Object.create(null);\n let fragmentSpreadsToRemove: RemoveFragmentSpreadConfig[] = [];\n\n let modifiedDoc = nullIfDocIsEmpty(\n visit(doc, {\n Variable: {\n enter(node, _key, parent) {\n // Store each variable that's referenced as part of an argument\n // (excluding operation definition variables), so we know which\n // variables are being used. If we later want to remove a variable\n // we'll fist check to see if it's being used, before continuing with\n // the removal.\n if (\n (parent as VariableDefinitionNode).kind !== 'VariableDefinition'\n ) {\n variablesInUse[node.name.value] = true;\n }\n },\n },\n\n Field: {\n enter(node) {\n if (directives && node.directives) {\n // If `remove` is set to true for a directive, and a directive match\n // is found for a field, remove the field as well.\n const shouldRemoveField = directives.some(\n directive => directive.remove,\n );\n\n if (\n shouldRemoveField &&\n node.directives &&\n node.directives.some(getDirectiveMatcher(directives))\n ) {\n if (node.arguments) {\n // Store field argument variables so they can be removed\n // from the operation definition.\n node.arguments.forEach(arg => {\n if (arg.value.kind === 'Variable') {\n variablesToRemove.push({\n name: (arg.value as VariableNode).name.value,\n });\n }\n });\n }\n\n if (node.selectionSet) {\n // Store fragment spread names so they can be removed from the\n // docuemnt.\n getAllFragmentSpreadsFromSelectionSet(node.selectionSet).forEach(\n frag => {\n fragmentSpreadsToRemove.push({\n name: frag.name.value,\n });\n },\n );\n }\n\n // Remove the field.\n return null;\n }\n }\n },\n },\n\n FragmentSpread: {\n enter(node) {\n // Keep track of referenced fragment spreads. This is used to\n // determine if top level fragment definitions should be removed.\n fragmentSpreadsInUse[node.name.value] = true;\n },\n },\n\n Directive: {\n enter(node) {\n // If a matching directive is found, remove it.\n if (getDirectiveMatcher(directives)(node)) {\n return null;\n }\n },\n },\n }),\n );\n\n // If we've removed fields with arguments, make sure the associated\n // variables are also removed from the rest of the document, as long as they\n // aren't being used elsewhere.\n if (\n modifiedDoc &&\n filterInPlace(variablesToRemove, v => !variablesInUse[v.name]).length\n ) {\n modifiedDoc = removeArgumentsFromDocument(variablesToRemove, modifiedDoc);\n }\n\n // If we've removed selection sets with fragment spreads, make sure the\n // associated fragment definitions are also removed from the rest of the\n // document, as long as they aren't being used elsewhere.\n if (\n modifiedDoc &&\n filterInPlace(fragmentSpreadsToRemove, fs => !fragmentSpreadsInUse[fs.name])\n .length\n ) {\n modifiedDoc = removeFragmentSpreadFromDocument(\n fragmentSpreadsToRemove,\n modifiedDoc,\n );\n }\n\n return modifiedDoc;\n}\n\nexport function addTypenameToDocument(doc: DocumentNode): DocumentNode {\n return visit(checkDocument(doc), {\n SelectionSet: {\n enter(node, _key, parent) {\n // Don't add __typename to OperationDefinitions.\n if (\n parent &&\n (parent as OperationDefinitionNode).kind === 'OperationDefinition'\n ) {\n return;\n }\n\n // No changes if no selections.\n const { selections } = node;\n if (!selections) {\n return;\n }\n\n // If selections already have a __typename, or are part of an\n // introspection query, do nothing.\n const skip = selections.some(selection => {\n return (\n isField(selection) &&\n (selection.name.value === '__typename' ||\n selection.name.value.lastIndexOf('__', 0) === 0)\n );\n });\n if (skip) {\n return;\n }\n\n // If this SelectionSet is @export-ed as an input variable, it should\n // not have a __typename field (see issue #4691).\n const field = parent as FieldNode;\n if (\n isField(field) &&\n field.directives &&\n field.directives.some(d => d.name.value === 'export')\n ) {\n return;\n }\n\n // Create and return a new SelectionSet with a __typename Field.\n return {\n ...node,\n selections: [...selections, TYPENAME_FIELD],\n };\n },\n },\n });\n}\n\nconst connectionRemoveConfig = {\n test: (directive: DirectiveNode) => {\n const willRemove = directive.name.value === 'connection';\n if (willRemove) {\n if (\n !directive.arguments ||\n !directive.arguments.some(arg => arg.name.value === 'key')\n ) {\n invariant.warn(\n 'Removing an @connection directive even though it does not have a key. ' +\n 'You may want to use the key parameter to specify a store key.',\n );\n }\n }\n\n return willRemove;\n },\n};\n\nexport function removeConnectionDirectiveFromDocument(doc: DocumentNode) {\n return removeDirectivesFromDocument(\n [connectionRemoveConfig],\n checkDocument(doc),\n );\n}\n\nfunction hasDirectivesInSelectionSet(\n directives: GetDirectiveConfig[],\n selectionSet: SelectionSetNode,\n nestedCheck = true,\n): boolean {\n return (\n selectionSet &&\n selectionSet.selections &&\n selectionSet.selections.some(selection =>\n hasDirectivesInSelection(directives, selection, nestedCheck),\n )\n );\n}\n\nfunction hasDirectivesInSelection(\n directives: GetDirectiveConfig[],\n selection: SelectionNode,\n nestedCheck = true,\n): boolean {\n if (!isField(selection)) {\n return true;\n }\n\n if (!selection.directives) {\n return false;\n }\n\n return (\n selection.directives.some(getDirectiveMatcher(directives)) ||\n (nestedCheck &&\n hasDirectivesInSelectionSet(\n directives,\n selection.selectionSet,\n nestedCheck,\n ))\n );\n}\n\nexport function getDirectivesFromDocument(\n directives: GetDirectiveConfig[],\n doc: DocumentNode,\n): DocumentNode {\n checkDocument(doc);\n\n let parentPath: string;\n\n return nullIfDocIsEmpty(\n visit(doc, {\n SelectionSet: {\n enter(node, _key, _parent, path) {\n const currentPath = path.join('-');\n\n if (\n !parentPath ||\n currentPath === parentPath ||\n !currentPath.startsWith(parentPath)\n ) {\n if (node.selections) {\n const selectionsWithDirectives = node.selections.filter(\n selection => hasDirectivesInSelection(directives, selection),\n );\n\n if (hasDirectivesInSelectionSet(directives, node, false)) {\n parentPath = currentPath;\n }\n\n return {\n ...node,\n selections: selectionsWithDirectives,\n };\n } else {\n return null;\n }\n }\n },\n },\n }),\n );\n}\n\nfunction getArgumentMatcher(config: RemoveArgumentsConfig[]) {\n return function argumentMatcher(argument: ArgumentNode) {\n return config.some(\n (aConfig: RemoveArgumentsConfig) =>\n argument.value &&\n argument.value.kind === 'Variable' &&\n argument.value.name &&\n (aConfig.name === argument.value.name.value ||\n (aConfig.test && aConfig.test(argument))),\n );\n };\n}\n\nexport function removeArgumentsFromDocument(\n config: RemoveArgumentsConfig[],\n doc: DocumentNode,\n): DocumentNode {\n const argMatcher = getArgumentMatcher(config);\n\n return nullIfDocIsEmpty(\n visit(doc, {\n OperationDefinition: {\n enter(node) {\n return {\n ...node,\n // Remove matching top level variables definitions.\n variableDefinitions: node.variableDefinitions.filter(\n varDef =>\n !config.some(arg => arg.name === varDef.variable.name.value),\n ),\n };\n },\n },\n\n Field: {\n enter(node) {\n // If `remove` is set to true for an argument, and an argument match\n // is found for a field, remove the field as well.\n const shouldRemoveField = config.some(argConfig => argConfig.remove);\n\n if (shouldRemoveField) {\n let argMatchCount = 0;\n node.arguments.forEach(arg => {\n if (argMatcher(arg)) {\n argMatchCount += 1;\n }\n });\n if (argMatchCount === 1) {\n return null;\n }\n }\n },\n },\n\n Argument: {\n enter(node) {\n // Remove all matching arguments.\n if (argMatcher(node)) {\n return null;\n }\n },\n },\n }),\n );\n}\n\nexport function removeFragmentSpreadFromDocument(\n config: RemoveFragmentSpreadConfig[],\n doc: DocumentNode,\n): DocumentNode {\n function enter(\n node: FragmentSpreadNode | FragmentDefinitionNode,\n ): null | void {\n if (config.some(def => def.name === node.name.value)) {\n return null;\n }\n }\n\n return nullIfDocIsEmpty(\n visit(doc, {\n FragmentSpread: { enter },\n FragmentDefinition: { enter },\n }),\n );\n}\n\nfunction getAllFragmentSpreadsFromSelectionSet(\n selectionSet: SelectionSetNode,\n): FragmentSpreadNode[] {\n const allFragments: FragmentSpreadNode[] = [];\n\n selectionSet.selections.forEach(selection => {\n if (\n (isField(selection) || isInlineFragment(selection)) &&\n selection.selectionSet\n ) {\n getAllFragmentSpreadsFromSelectionSet(selection.selectionSet).forEach(\n frag => allFragments.push(frag),\n );\n } else if (selection.kind === 'FragmentSpread') {\n allFragments.push(selection);\n }\n });\n\n return allFragments;\n}\n\n// If the incoming document is a query, return it as is. Otherwise, build a\n// new document containing a query operation based on the selection set\n// of the previous main operation.\nexport function buildQueryFromSelectionSet(\n document: DocumentNode,\n): DocumentNode {\n const definition = getMainDefinition(document);\n const definitionOperation = (definition).operation;\n\n if (definitionOperation === 'query') {\n // Already a query, so return the existing document.\n return document;\n }\n\n // Build a new query using the selection set of the main operation.\n const modifiedDoc = visit(document, {\n OperationDefinition: {\n enter(node) {\n return {\n ...node,\n operation: 'query',\n };\n },\n },\n });\n return modifiedDoc;\n}\n\n// Remove fields / selection sets that include an @client directive.\nexport function removeClientSetsFromDocument(\n document: DocumentNode,\n): DocumentNode | null {\n checkDocument(document);\n\n let modifiedDoc = removeDirectivesFromDocument(\n [\n {\n test: (directive: DirectiveNode) => directive.name.value === 'client',\n remove: true,\n },\n ],\n document,\n );\n\n // After a fragment definition has had its @client related document\n // sets removed, if the only field it has left is a __typename field,\n // remove the entire fragment operation to prevent it from being fired\n // on the server.\n if (modifiedDoc) {\n modifiedDoc = visit(modifiedDoc, {\n FragmentDefinition: {\n enter(node) {\n if (node.selectionSet) {\n const isTypenameOnly = node.selectionSet.selections.every(\n selection =>\n isField(selection) && selection.name.value === '__typename',\n );\n if (isTypenameOnly) {\n return null;\n }\n }\n },\n },\n });\n }\n\n return modifiedDoc;\n}\n","export const canUseWeakMap = typeof WeakMap === 'function' && !(\n typeof navigator === 'object' &&\n navigator.product === 'ReactNative'\n);\n","const { toString } = Object.prototype;\n\n/**\n * Deeply clones a value to create a new instance.\n */\nexport function cloneDeep(value: T): T {\n return cloneDeepHelper(value, new Map());\n}\n\nfunction cloneDeepHelper(val: T, seen: Map): T {\n switch (toString.call(val)) {\n case \"[object Array]\": {\n if (seen.has(val)) return seen.get(val);\n const copy: T & any[] = (val as any).slice(0);\n seen.set(val, copy);\n copy.forEach(function (child, i) {\n copy[i] = cloneDeepHelper(child, seen);\n });\n return copy;\n }\n\n case \"[object Object]\": {\n if (seen.has(val)) return seen.get(val);\n // High fidelity polyfills of Object.create and Object.getPrototypeOf are\n // possible in all JS environments, so we will assume they exist/work.\n const copy = Object.create(Object.getPrototypeOf(val));\n seen.set(val, copy);\n Object.keys(val).forEach(key => {\n copy[key] = cloneDeepHelper((val as any)[key], seen);\n });\n return copy;\n }\n\n default:\n return val;\n }\n}\n","export function getEnv(): string | undefined {\n if (typeof process !== 'undefined' && process.env.NODE_ENV) {\n return process.env.NODE_ENV;\n }\n\n // default environment\n return 'development';\n}\n\nexport function isEnv(env: string): boolean {\n return getEnv() === env;\n}\n\nexport function isProduction(): boolean {\n return isEnv('production') === true;\n}\n\nexport function isDevelopment(): boolean {\n return isEnv('development') === true;\n}\n\nexport function isTest(): boolean {\n return isEnv('test') === true;\n}\n","import { ExecutionResult } from 'graphql';\n\nexport function tryFunctionOrLogError(f: Function) {\n try {\n return f();\n } catch (e) {\n if (console.error) {\n console.error(e);\n }\n }\n}\n\nexport function graphQLResultHasError(result: ExecutionResult) {\n return result.errors && result.errors.length;\n}\n","import { isDevelopment, isTest } from './environment';\n\n// Taken (mostly) from https://github.com/substack/deep-freeze to avoid\n// import hassles with rollup.\nfunction deepFreeze(o: any) {\n Object.freeze(o);\n\n Object.getOwnPropertyNames(o).forEach(function(prop) {\n if (\n o[prop] !== null &&\n (typeof o[prop] === 'object' || typeof o[prop] === 'function') &&\n !Object.isFrozen(o[prop])\n ) {\n deepFreeze(o[prop]);\n }\n });\n\n return o;\n}\n\nexport function maybeDeepFreeze(obj: any) {\n if (isDevelopment() || isTest()) {\n // Polyfilled Symbols potentially cause infinite / very deep recursion while deep freezing\n // which is known to crash IE11 (https://github.com/apollographql/apollo-client/issues/3043).\n const symbolIsPolyfilled =\n typeof Symbol === 'function' && typeof Symbol('') === 'string';\n\n if (!symbolIsPolyfilled) {\n return deepFreeze(obj);\n }\n }\n return obj;\n}\n","const { hasOwnProperty } = Object.prototype;\n\n// These mergeDeep and mergeDeepArray utilities merge any number of objects\n// together, sharing as much memory as possible with the source objects, while\n// remaining careful to avoid modifying any source objects.\n\n// Logically, the return type of mergeDeep should be the intersection of\n// all the argument types. The binary call signature is by far the most\n// common, but we support 0- through 5-ary as well. After that, the\n// resulting type is just the inferred array element type. Note to nerds:\n// there is a more clever way of doing this that converts the tuple type\n// first to a union type (easy enough: T[number]) and then converts the\n// union to an intersection type using distributive conditional type\n// inference, but that approach has several fatal flaws (boolean becomes\n// true & false, and the inferred type ends up as unknown in many cases),\n// in addition to being nearly impossible to explain/understand.\nexport type TupleToIntersection =\n T extends [infer A] ? A :\n T extends [infer A, infer B] ? A & B :\n T extends [infer A, infer B, infer C] ? A & B & C :\n T extends [infer A, infer B, infer C, infer D] ? A & B & C & D :\n T extends [infer A, infer B, infer C, infer D, infer E] ? A & B & C & D & E :\n T extends (infer U)[] ? U : any;\n\nexport function mergeDeep(\n ...sources: T\n): TupleToIntersection {\n return mergeDeepArray(sources);\n}\n\n// In almost any situation where you could succeed in getting the\n// TypeScript compiler to infer a tuple type for the sources array, you\n// could just use mergeDeep instead of mergeDeepArray, so instead of\n// trying to convert T[] to an intersection type we just infer the array\n// element type, which works perfectly when the sources array has a\n// consistent element type.\nexport function mergeDeepArray(sources: T[]): T {\n let target = sources[0] || {} as T;\n const count = sources.length;\n if (count > 1) {\n const pastCopies: any[] = [];\n target = shallowCopyForMerge(target, pastCopies);\n for (let i = 1; i < count; ++i) {\n target = mergeHelper(target, sources[i], pastCopies);\n }\n }\n return target;\n}\n\nfunction isObject(obj: any): obj is Record {\n return obj !== null && typeof obj === 'object';\n}\n\nfunction mergeHelper(\n target: any,\n source: any,\n pastCopies: any[],\n) {\n if (isObject(source) && isObject(target)) {\n // In case the target has been frozen, make an extensible copy so that\n // we can merge properties into the copy.\n if (Object.isExtensible && !Object.isExtensible(target)) {\n target = shallowCopyForMerge(target, pastCopies);\n }\n\n Object.keys(source).forEach(sourceKey => {\n const sourceValue = source[sourceKey];\n if (hasOwnProperty.call(target, sourceKey)) {\n const targetValue = target[sourceKey];\n if (sourceValue !== targetValue) {\n // When there is a key collision, we need to make a shallow copy of\n // target[sourceKey] so the merge does not modify any source objects.\n // To avoid making unnecessary copies, we use a simple array to track\n // past copies, since it's safe to modify copies created earlier in\n // the merge. We use an array for pastCopies instead of a Map or Set,\n // since the number of copies should be relatively small, and some\n // Map/Set polyfills modify their keys.\n target[sourceKey] = mergeHelper(\n shallowCopyForMerge(targetValue, pastCopies),\n sourceValue,\n pastCopies,\n );\n }\n } else {\n // If there is no collision, the target can safely share memory with\n // the source, and the recursion can terminate here.\n target[sourceKey] = sourceValue;\n }\n });\n\n return target;\n }\n\n // If source (or target) is not an object, let source replace target.\n return source;\n}\n\nfunction shallowCopyForMerge(value: T, pastCopies: any[]): T {\n if (\n value !== null &&\n typeof value === 'object' &&\n pastCopies.indexOf(value) < 0\n ) {\n if (Array.isArray(value)) {\n value = (value as any).slice(0);\n } else {\n value = {\n __proto__: Object.getPrototypeOf(value),\n ...value,\n };\n }\n pastCopies.push(value);\n }\n return value;\n}\n","import { isProduction, isTest } from './environment';\n\nconst haveWarned = Object.create({});\n\n/**\n * Print a warning only once in development.\n * In production no warnings are printed.\n * In test all warnings are printed.\n *\n * @param msg The warning message\n * @param type warn or error (will call console.warn or console.error)\n */\nexport function warnOnceInDevelopment(msg: string, type = 'warn') {\n if (!isProduction() && !haveWarned[msg]) {\n if (!isTest()) {\n haveWarned[msg] = true;\n }\n if (type === 'error') {\n console.error(msg);\n } else {\n console.warn(msg);\n }\n }\n}\n","/**\n * In order to make assertions easier, this function strips `symbol`'s from\n * the incoming data.\n *\n * This can be handy when running tests against `apollo-client` for example,\n * since it adds `symbol`'s to the data in the store. Jest's `toEqual`\n * function now covers `symbol`'s (https://github.com/facebook/jest/pull/3437),\n * which means all test data used in a `toEqual` comparison would also have to\n * include `symbol`'s, to pass. By stripping `symbol`'s from the cache data\n * we can compare against more simplified test data.\n */\nexport function stripSymbols(data: T): T {\n return JSON.parse(JSON.stringify(data));\n}\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar apollo_link_1 = require(\"apollo-link\");\nvar apollo_link_2 = require(\"apollo-link\");\nvar printer_1 = require(\"graphql/language/printer\");\nvar signer_1 = require(\"./signer\");\nvar Url = require(\"url\");\nvar platform_1 = require(\"./platform\");\nvar packageInfo = require(\"../package.json\");\nvar SERVICE = 'appsync';\nexports.USER_AGENT_HEADER = 'x-amz-user-agent';\nexports.USER_AGENT = \"aws-amplify/\" + packageInfo.version + (platform_1.userAgent && ' ') + platform_1.userAgent;\nvar AUTH_TYPE;\n(function (AUTH_TYPE) {\n AUTH_TYPE[\"NONE\"] = \"NONE\";\n AUTH_TYPE[\"API_KEY\"] = \"API_KEY\";\n AUTH_TYPE[\"AWS_IAM\"] = \"AWS_IAM\";\n AUTH_TYPE[\"AMAZON_COGNITO_USER_POOLS\"] = \"AMAZON_COGNITO_USER_POOLS\";\n AUTH_TYPE[\"OPENID_CONNECT\"] = \"OPENID_CONNECT\";\n AUTH_TYPE[\"AWS_LAMBDA\"] = \"AWS_LAMBDA\";\n})(AUTH_TYPE = exports.AUTH_TYPE || (exports.AUTH_TYPE = {}));\nvar AuthLink = /** @class */ (function (_super) {\n __extends(AuthLink, _super);\n /**\n *\n * @param {*} options\n */\n function AuthLink(options) {\n var _this = _super.call(this) || this;\n _this.link = exports.authLink(options);\n return _this;\n }\n AuthLink.prototype.request = function (operation, forward) {\n return this.link.request(operation, forward);\n };\n return AuthLink;\n}(apollo_link_2.ApolloLink));\nexports.AuthLink = AuthLink;\nvar headerBasedAuth = function (_a, operation, forward) {\n var _b = _a === void 0 ? { header: '', value: '' } : _a, header = _b.header, value = _b.value;\n return __awaiter(void 0, void 0, void 0, function () {\n var origContext, headers, headerValue, _c;\n var _d, _e;\n return __generator(this, function (_f) {\n switch (_f.label) {\n case 0:\n origContext = operation.getContext();\n headers = __assign(__assign({}, origContext.headers), (_d = {}, _d[exports.USER_AGENT_HEADER] = exports.USER_AGENT, _d));\n if (!(header && value)) return [3 /*break*/, 5];\n if (!(typeof value === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, value.call(undefined)];\n case 1:\n _c = _f.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, value];\n case 3:\n _c = _f.sent();\n _f.label = 4;\n case 4:\n headerValue = _c;\n headers = __assign((_e = {}, _e[header] = headerValue, _e), headers);\n _f.label = 5;\n case 5:\n operation.setContext(__assign(__assign({}, origContext), { headers: headers }));\n return [2 /*return*/, forward(operation)];\n }\n });\n });\n};\nvar iamBasedAuth = function (_a, operation, forward) {\n var credentials = _a.credentials, region = _a.region, url = _a.url;\n return __awaiter(void 0, void 0, void 0, function () {\n var service, origContext, creds, _b, accessKeyId, secretAccessKey, sessionToken, _c, host, path, formatted, headers;\n var _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n service = SERVICE;\n origContext = operation.getContext();\n creds = typeof credentials === 'function' ? credentials.call() : (credentials || {});\n if (!(creds && typeof creds.getPromise === 'function')) return [3 /*break*/, 2];\n return [4 /*yield*/, creds.getPromise()];\n case 1:\n _e.sent();\n _e.label = 2;\n case 2: return [4 /*yield*/, creds];\n case 3:\n _b = _e.sent(), accessKeyId = _b.accessKeyId, secretAccessKey = _b.secretAccessKey, sessionToken = _b.sessionToken;\n _c = Url.parse(url), host = _c.host, path = _c.path;\n formatted = __assign(__assign({}, formatAsRequest(operation, {})), { service: service, region: region, url: url, host: host, path: path });\n headers = signer_1.Signer.sign(formatted, { access_key: accessKeyId, secret_key: secretAccessKey, session_token: sessionToken }).headers;\n operation.setContext(__assign(__assign({}, origContext), { headers: __assign(__assign(__assign({}, origContext.headers), headers), (_d = {}, _d[exports.USER_AGENT_HEADER] = exports.USER_AGENT, _d)) }));\n return [2 /*return*/, forward(operation)];\n }\n });\n });\n};\nexports.authLink = function (_a) {\n var url = _a.url, region = _a.region, _b = _a.auth, type = (_b === void 0 ? {} : _b).type, auth = _a.auth;\n return new apollo_link_2.ApolloLink(function (operation, forward) {\n return new apollo_link_1.Observable(function (observer) {\n var handle;\n var promise;\n switch (type) {\n case AUTH_TYPE.NONE:\n promise = headerBasedAuth(undefined, operation, forward);\n break;\n case AUTH_TYPE.AWS_IAM:\n var _a = auth.credentials, credentials = _a === void 0 ? {} : _a;\n promise = iamBasedAuth({\n credentials: credentials,\n region: region,\n url: url,\n }, operation, forward);\n break;\n case AUTH_TYPE.API_KEY:\n var _b = auth.apiKey, apiKey = _b === void 0 ? '' : _b;\n promise = headerBasedAuth({ header: 'X-Api-Key', value: apiKey }, operation, forward);\n break;\n case AUTH_TYPE.AMAZON_COGNITO_USER_POOLS:\n case AUTH_TYPE.OPENID_CONNECT:\n var _c = auth.jwtToken, jwtToken = _c === void 0 ? '' : _c;\n promise = headerBasedAuth({ header: 'Authorization', value: jwtToken }, operation, forward);\n break;\n case AUTH_TYPE.AWS_LAMBDA:\n var _d = auth.token, token = _d === void 0 ? '' : _d;\n promise = headerBasedAuth({ header: 'Authorization', value: token }, operation, forward);\n break;\n default:\n var error = new Error(\"Invalid AUTH_TYPE: \" + auth.type);\n throw error;\n }\n promise.then(function (observable) {\n handle = observable.subscribe({\n next: observer.next.bind(observer),\n error: observer.error.bind(observer),\n complete: observer.complete.bind(observer),\n });\n });\n return function () {\n if (handle)\n handle.unsubscribe();\n };\n });\n });\n};\nvar formatAsRequest = function (_a, options) {\n var operationName = _a.operationName, variables = _a.variables, query = _a.query;\n var body = {\n operationName: operationName,\n variables: removeTemporaryVariables(variables),\n query: printer_1.print(query)\n };\n return __assign(__assign({ body: JSON.stringify(body), method: 'POST' }, options), { headers: __assign({ accept: '*/*', 'content-type': 'application/json; charset=UTF-8' }, options.headers) });\n};\n/**\n * Removes all temporary variables (starting with '@@') so that the signature matches the final request.\n */\nvar removeTemporaryVariables = function (variables) {\n return Object.keys(variables)\n .filter(function (key) { return !key.startsWith(\"@@\"); })\n .reduce(function (acc, key) {\n acc[key] = variables[key];\n return acc;\n }, {});\n};\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar auth_link_1 = require(\"./auth-link\");\nexports.AuthLink = auth_link_1.AuthLink;\nexports.AUTH_TYPE = auth_link_1.AUTH_TYPE;\nexports.USER_AGENT_HEADER = auth_link_1.USER_AGENT_HEADER;\nexports.USER_AGENT = auth_link_1.USER_AGENT;\nexports.createAuthLink = function (_a) {\n var url = _a.url, region = _a.region, auth = _a.auth;\n return new auth_link_1.AuthLink({ url: url, region: region, auth: auth });\n};\nvar signer_1 = require(\"./signer\");\nexports.Signer = signer_1.Signer;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar userAgent = '';\nexports.userAgent = userAgent;\n","\"use strict\";\nfunction __export(m) {\n for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];\n}\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\n__export(require(\"./signer\"));\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*\nCopyright 2017 - 2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\nLicensed under the Apache License, Version 2.0 (the \"License\"). You may not use this file except in compliance with the License. A copy of the License is located at\n http://aws.amazon.com/apache2.0/\nor in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\nSee the License for the specific language governing permissions and limitations under the License.\n*/\nglobal.Buffer = global.Buffer || require('buffer').Buffer; // Required for aws sigv4 signing\nvar url = require('url');\nvar Sha256 = require('@aws-crypto/sha256-js').Sha256;\nvar toHex = require(\"@aws-sdk/util-hex-encoding\").toHex;\nvar encrypt = function (key, src, encoding) {\n if (encoding === void 0) { encoding = ''; }\n var hash = new Sha256(key);\n hash.update(src);\n var result = hash.digestSync();\n if (encoding === 'hex') {\n return toHex(result);\n }\n return result;\n};\nvar hash = function (src) {\n var arg = src || '';\n var hash = new Sha256();\n hash.update(arg);\n return toHex(hash.digestSync());\n};\n/**\n* @private\n* Create canonical headers\n*\n

\nCanonicalHeaders =\n    CanonicalHeadersEntry0 + CanonicalHeadersEntry1 + ... + CanonicalHeadersEntryN\nCanonicalHeadersEntry =\n    Lowercase(HeaderName) + ':' + Trimall(HeaderValue) + '\\n'\n
\n*/\nvar canonical_headers = function (headers) {\n if (!headers || Object.keys(headers).length === 0) {\n return '';\n }\n return Object.keys(headers)\n .map(function (key) {\n return {\n key: key.toLowerCase(),\n value: headers[key] ? headers[key].trim().replace(/\\s+/g, ' ') : ''\n };\n })\n .sort(function (a, b) {\n return a.key < b.key ? -1 : 1;\n })\n .map(function (item) {\n return item.key + ':' + item.value;\n })\n .join('\\n') + '\\n';\n};\n/**\n* List of header keys included in the canonical headers.\n* @access private\n*/\nvar signed_headers = function (headers) {\n return Object.keys(headers)\n .map(function (key) { return key.toLowerCase(); })\n .sort()\n .join(';');\n};\n/**\n* @private\n* Create canonical request\n* Refer to {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-create-canonical-request.html|Create a Canonical Request}\n*\n
\nCanonicalRequest =\n    HTTPRequestMethod + '\\n' +\n    CanonicalURI + '\\n' +\n    CanonicalQueryString + '\\n' +\n    CanonicalHeaders + '\\n' +\n    SignedHeaders + '\\n' +\n    HexEncode(Hash(RequestPayload))\n
\n*/\nvar canonical_request = function (request) {\n var url_info = url.parse(request.url);\n return [\n request.method || '/',\n url_info.path,\n url_info.query,\n canonical_headers(request.headers),\n signed_headers(request.headers),\n hash(request.body)\n ].join('\\n');\n};\nvar parse_service_info = function (request) {\n var url_info = url.parse(request.url), host = url_info.host;\n var matched = host.match(/([^.]+)\\.(?:([^.]*)\\.)?amazonaws\\.com$/), parsed = (matched || []).slice(1, 3);\n if (parsed[1] === 'es') { // Elastic Search\n parsed = parsed.reverse();\n }\n return {\n service: request.service || parsed[0],\n region: request.region || parsed[1]\n };\n};\nvar credential_scope = function (d_str, region, service) {\n return [\n d_str,\n region,\n service,\n 'aws4_request',\n ].join('/');\n};\n/**\n* @private\n* Create a string to sign\n* Refer to {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-create-string-to-sign.html|Create String to Sign}\n*\n
\nStringToSign =\n    Algorithm + \\n +\n    RequestDateTime + \\n +\n    CredentialScope + \\n +\n    HashedCanonicalRequest\n
\n*/\nvar string_to_sign = function (algorithm, canonical_request, dt_str, scope) {\n return [\n algorithm,\n dt_str,\n scope,\n hash(canonical_request)\n ].join('\\n');\n};\n/**\n* @private\n* Create signing key\n* Refer to {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-calculate-signature.html|Calculate Signature}\n*\n
\nkSecret = your secret access key\nkDate = HMAC(\"AWS4\" + kSecret, Date)\nkRegion = HMAC(kDate, Region)\nkService = HMAC(kRegion, Service)\nkSigning = HMAC(kService, \"aws4_request\")\n
\n*/\nvar get_signing_key = function (secret_key, d_str, service_info) {\n if (secret_key === void 0) { secret_key = ''; }\n var k = ('AWS4' + secret_key), k_date = encrypt(k, d_str), k_region = encrypt(k_date, service_info.region), k_service = encrypt(k_region, service_info.service), k_signing = encrypt(k_service, 'aws4_request');\n return k_signing;\n};\nvar get_signature = function (signing_key, str_to_sign) {\n return encrypt(signing_key, str_to_sign, 'hex');\n};\n/**\n* @private\n* Create authorization header\n* Refer to {@link http://docs.aws.amazon.com/general/latest/gr/sigv4-add-signature-to-request.html|Add the Signing Information}\n*/\nvar get_authorization_header = function (algorithm, access_key, scope, signed_headers, signature) {\n if (access_key === void 0) { access_key = ''; }\n return [\n algorithm + ' ' + 'Credential=' + access_key + '/' + scope,\n 'SignedHeaders=' + signed_headers,\n 'Signature=' + signature\n ].join(', ');\n};\n/**\n* Sign a HTTP request, add 'Authorization' header to request param\n* @method sign\n* @memberof Signer\n* @static\n*\n* @param {object} request - HTTP request object\n
\nrequest: {\n    method: GET | POST | PUT ...\n    url: ...,\n    headers: {\n        header1: ...\n    },\n    body: data\n}\n
\n* @param {object} access_info - AWS access credential info\n
\naccess_info: {\n    access_key: ...,\n    secret_key: ...,\n    session_token: ...\n}\n
\n* @param {object} [service_info] - AWS service type and region, optional,\n* if not provided then parse out from url\n
\nservice_info: {\n    service: ...,\n    region: ...\n}\n
\n*\n* @returns {object} Signed HTTP request\n*/\nvar sign = function (request, access_info, service_info) {\n if (service_info === void 0) { service_info = null; }\n request.headers = request.headers || {};\n // datetime string and date string\n var dt = new Date(), dt_str = dt.toISOString().replace(/[:-]|\\.\\d{3}/g, ''), d_str = dt_str.substr(0, 8), algorithm = 'AWS4-HMAC-SHA256';\n var url_info = url.parse(request.url);\n request.headers['host'] = url_info.host;\n request.headers['x-amz-date'] = dt_str;\n if (access_info.session_token) {\n request.headers['X-Amz-Security-Token'] = access_info.session_token;\n }\n // Task 1: Create a Canonical Request\n var request_str = canonical_request(request);\n // Task 2: Create a String to Sign\n service_info = service_info || parse_service_info(request);\n var scope = credential_scope(d_str, service_info.region, service_info.service);\n var str_to_sign = string_to_sign(algorithm, request_str, dt_str, scope);\n // Task 3: Calculate the Signature\n var signing_key = get_signing_key(access_info.secret_key, d_str, service_info), signature = get_signature(signing_key, str_to_sign);\n // Task 4: Adding the Signing information to the Request\n var authorization_header = get_authorization_header(algorithm, access_info.access_key, scope, signed_headers(request.headers), signature);\n request.headers['Authorization'] = authorization_header;\n return request;\n};\n/**\n* AWS request signer.\n* Refer to {@link http://docs.aws.amazon.com/general/latest/gr/sigv4_signing.html|Signature Version 4}\n*\n* @class Signer\n*/\nvar Signer = /** @class */ (function () {\n function Signer() {\n }\n Signer.sign = sign;\n return Signer;\n}());\nexports.Signer = Signer;\nexports.default = Signer;\n","\"use strict\";\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar subscription_handshake_link_1 = require(\"./subscription-handshake-link\");\nexports.CONTROL_EVENTS_KEY = subscription_handshake_link_1.CONTROL_EVENTS_KEY;\nvar apollo_link_1 = require(\"apollo-link\");\nvar apollo_link_http_1 = require(\"apollo-link-http\");\nvar apollo_utilities_1 = require(\"apollo-utilities\");\nvar non_terminating_link_1 = require(\"./non-terminating-link\");\nvar realtime_subscription_handshake_link_1 = require(\"./realtime-subscription-handshake-link\");\nfunction createSubscriptionHandshakeLink(infoOrUrl, theResultsFetcherLink) {\n var resultsFetcherLink, subscriptionLinks;\n if (typeof infoOrUrl === \"string\") {\n resultsFetcherLink =\n theResultsFetcherLink || apollo_link_http_1.createHttpLink({ uri: infoOrUrl });\n subscriptionLinks = apollo_link_1.ApolloLink.from([\n new non_terminating_link_1.NonTerminatingLink(\"controlMessages\", {\n link: new apollo_link_1.ApolloLink(function (operation, _forward) {\n return new apollo_link_1.Observable(function (observer) {\n var _a;\n var _b = operation, _c = _b.variables, _d = subscription_handshake_link_1.CONTROL_EVENTS_KEY, controlEvents = _c[_d], variables = __rest(_c, [typeof _d === \"symbol\" ? _d : _d + \"\"]);\n if (typeof controlEvents !== \"undefined\") {\n operation.variables = variables;\n }\n observer.next((_a = {}, _a[subscription_handshake_link_1.CONTROL_EVENTS_KEY] = controlEvents, _a));\n return function () { };\n });\n })\n }),\n new non_terminating_link_1.NonTerminatingLink(\"subsInfo\", { link: resultsFetcherLink }),\n new subscription_handshake_link_1.SubscriptionHandshakeLink(\"subsInfo\")\n ]);\n }\n else {\n var url = infoOrUrl.url;\n resultsFetcherLink = theResultsFetcherLink || apollo_link_http_1.createHttpLink({ uri: url });\n subscriptionLinks = new realtime_subscription_handshake_link_1.AppSyncRealTimeSubscriptionHandshakeLink(infoOrUrl);\n }\n return apollo_link_1.ApolloLink.split(function (operation) {\n var query = operation.query;\n var _a = apollo_utilities_1.getMainDefinition(query), kind = _a.kind, graphqlOperation = _a.operation;\n var isSubscription = kind === \"OperationDefinition\" && graphqlOperation === \"subscription\";\n return isSubscription;\n }, subscriptionLinks, resultsFetcherLink);\n}\nexports.createSubscriptionHandshakeLink = createSubscriptionHandshakeLink;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar apollo_link_1 = require(\"apollo-link\");\nvar apollo_link_context_1 = require(\"apollo-link-context\");\nvar NonTerminatingLink = /** @class */ (function (_super) {\n __extends(NonTerminatingLink, _super);\n function NonTerminatingLink(contextKey, _a) {\n var link = _a.link;\n var _this = _super.call(this) || this;\n _this.contextKey = contextKey;\n _this.link = link;\n return _this;\n }\n NonTerminatingLink.prototype.request = function (operation, forward) {\n var _this = this;\n return apollo_link_context_1.setContext(function (_request, prevContext) { return __awaiter(_this, void 0, void 0, function () {\n var result;\n var _a;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0: return [4 /*yield*/, new Promise(function (resolve, reject) {\n _this.link.request(operation).subscribe({\n next: resolve,\n error: reject,\n });\n })];\n case 1:\n result = _b.sent();\n return [2 /*return*/, __assign(__assign({}, prevContext), (_a = {}, _a[this.contextKey] = result, _a))];\n }\n });\n }); }).request(operation, forward);\n };\n return NonTerminatingLink;\n}(apollo_link_1.ApolloLink));\nexports.NonTerminatingLink = NonTerminatingLink;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2021 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar apollo_link_1 = require(\"apollo-link\");\nvar utils_1 = require(\"./utils\");\nvar aws_appsync_auth_link_1 = require(\"aws-appsync-auth-link\");\nvar graphql_1 = require(\"graphql\");\nvar url = require(\"url\");\nvar uuid_1 = require(\"uuid\");\nvar types_1 = require(\"./types\");\nvar retry_1 = require(\"./utils/retry\");\nvar logger = utils_1.rootLogger.extend(\"subscriptions\");\nexports.CONTROL_EVENTS_KEY = \"@@controlEvents\";\nvar NON_RETRYABLE_CODES = [400, 401, 403];\nvar SERVICE = \"appsync\";\nvar APPSYNC_REALTIME_HEADERS = {\n accept: \"application/json, text/javascript\",\n \"content-encoding\": \"amz-1.0\",\n \"content-type\": \"application/json; charset=UTF-8\",\n};\n/**\n * Time in milliseconds to wait for GQL_CONNECTION_INIT message\n */\nvar CONNECTION_INIT_TIMEOUT = 15000;\n/**\n * Time in milliseconds to wait for GQL_START_ACK message\n */\nvar START_ACK_TIMEOUT = 15000;\n/**\n * Frequency in milliseconds in which the server sends GQL_CONNECTION_KEEP_ALIVE messages\n */\nvar SERVER_KEEP_ALIVE_TIMEOUT = 1 * 60 * 1000;\n/**\n * Default Time in milliseconds to wait for GQL_CONNECTION_KEEP_ALIVE message\n */\nvar DEFAULT_KEEP_ALIVE_TIMEOUT = 5 * 60 * 1000;\nvar standardDomainPattern = /^https:\\/\\/\\w{26}\\.appsync\\-api\\.\\w{2}(?:(?:\\-\\w{2,})+)\\-\\d\\.amazonaws.com\\/graphql$/i;\nvar customDomainPath = '/realtime';\nvar AppSyncRealTimeSubscriptionHandshakeLink = /** @class */ (function (_super) {\n __extends(AppSyncRealTimeSubscriptionHandshakeLink, _super);\n function AppSyncRealTimeSubscriptionHandshakeLink(_a) {\n var theUrl = _a.url, theRegion = _a.region, theAuth = _a.auth, keepAliveTimeoutMs = _a.keepAliveTimeoutMs;\n var _this = _super.call(this) || this;\n _this.socketStatus = types_1.SOCKET_STATUS.CLOSED;\n _this.keepAliveTimeout = undefined;\n _this.subscriptionObserverMap = new Map();\n _this.promiseArray = [];\n _this.url = theUrl;\n _this.region = theRegion;\n _this.auth = theAuth;\n _this.keepAliveTimeout = keepAliveTimeoutMs;\n if (_this.keepAliveTimeout < SERVER_KEEP_ALIVE_TIMEOUT) {\n var configName = 'keepAliveTimeoutMs';\n throw new Error(configName + \" must be greater than or equal to \" + SERVER_KEEP_ALIVE_TIMEOUT + \" (\" + _this.keepAliveTimeout + \" used).\");\n }\n return _this;\n }\n // Check if url matches standard domain pattern\n AppSyncRealTimeSubscriptionHandshakeLink.prototype.isCustomDomain = function (url) {\n return url.match(standardDomainPattern) === null;\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype.request = function (operation) {\n var _a;\n var _this = this;\n var query = operation.query, variables = operation.variables;\n var _b = operation.getContext(), _c = _b.controlMessages, _d = exports.CONTROL_EVENTS_KEY, controlEvents = (_c === void 0 ? (_a = {},\n _a[exports.CONTROL_EVENTS_KEY] = undefined,\n _a) : _c)[_d], headers = _b.headers;\n return new apollo_link_1.Observable(function (observer) {\n if (!_this.url) {\n observer.error({\n errors: [\n __assign({}, new graphql_1.GraphQLError(\"Subscribe only available for AWS AppSync endpoint\")),\n ],\n });\n observer.complete();\n }\n else {\n var subscriptionId_1 = uuid_1.v4();\n var token = _this.auth.type === aws_appsync_auth_link_1.AUTH_TYPE.AMAZON_COGNITO_USER_POOLS ||\n _this.auth.type === aws_appsync_auth_link_1.AUTH_TYPE.OPENID_CONNECT\n ? _this.auth.jwtToken\n : null;\n token =\n _this.auth.type === aws_appsync_auth_link_1.AUTH_TYPE.AWS_LAMBDA ? _this.auth.token : token;\n var options = {\n appSyncGraphqlEndpoint: _this.url,\n authenticationType: _this.auth.type,\n query: graphql_1.print(query),\n region: _this.region,\n graphql_headers: function () { return headers; },\n variables: variables,\n apiKey: _this.auth.type === aws_appsync_auth_link_1.AUTH_TYPE.API_KEY ? _this.auth.apiKey : \"\",\n credentials: _this.auth.type === aws_appsync_auth_link_1.AUTH_TYPE.AWS_IAM ? _this.auth.credentials : null,\n token: token,\n };\n _this._startSubscriptionWithAWSAppSyncRealTime({\n options: options,\n observer: observer,\n subscriptionId: subscriptionId_1,\n });\n return function () { return __awaiter(_this, void 0, void 0, function () {\n var subscriptionState;\n return __generator(this, function (_a) {\n // Cleanup after unsubscribing or observer.complete was called after _startSubscriptionWithAWSAppSyncRealTime\n try {\n this._verifySubscriptionAlreadyStarted(subscriptionId_1);\n subscriptionState = this.subscriptionObserverMap.get(subscriptionId_1).subscriptionState;\n if (subscriptionState === types_1.SUBSCRIPTION_STATUS.CONNECTED) {\n this._sendUnsubscriptionMessage(subscriptionId_1);\n }\n else {\n throw new Error(\"Subscription has failed, starting to remove subscription.\");\n }\n }\n catch (err) {\n this._removeSubscriptionObserver(subscriptionId_1);\n return [2 /*return*/];\n }\n return [2 /*return*/];\n });\n }); };\n }\n }).filter(function (data) {\n var _a = data.extensions, _b = (_a === void 0 ? {} : _a).controlMsgType, controlMsgType = _b === void 0 ? undefined : _b;\n var isControlMsg = typeof controlMsgType !== \"undefined\";\n return controlEvents === true || !isControlMsg;\n });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._verifySubscriptionAlreadyStarted = function (subscriptionId) {\n return __awaiter(this, void 0, void 0, function () {\n var subscriptionState;\n var _this = this;\n return __generator(this, function (_a) {\n subscriptionState = this.subscriptionObserverMap.get(subscriptionId).subscriptionState;\n // This in case unsubscribe is invoked before sending start subscription message\n if (subscriptionState === types_1.SUBSCRIPTION_STATUS.PENDING) {\n return [2 /*return*/, new Promise(function (res, rej) {\n var _a = _this.subscriptionObserverMap.get(subscriptionId), observer = _a.observer, subscriptionState = _a.subscriptionState, variables = _a.variables, query = _a.query;\n _this.subscriptionObserverMap.set(subscriptionId, {\n observer: observer,\n subscriptionState: subscriptionState,\n variables: variables,\n query: query,\n subscriptionReadyCallback: res,\n subscriptionFailedCallback: rej,\n });\n })];\n }\n return [2 /*return*/];\n });\n });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._sendUnsubscriptionMessage = function (subscriptionId) {\n try {\n if (this.awsRealTimeSocket &&\n this.awsRealTimeSocket.readyState === WebSocket.OPEN &&\n this.socketStatus === types_1.SOCKET_STATUS.READY) {\n // Preparing unsubscribe message to stop receiving messages for that subscription\n var unsubscribeMessage = {\n id: subscriptionId,\n type: types_1.MESSAGE_TYPES.GQL_STOP,\n };\n var stringToAWSRealTime = JSON.stringify(unsubscribeMessage);\n this.awsRealTimeSocket.send(stringToAWSRealTime);\n this._removeSubscriptionObserver(subscriptionId);\n }\n }\n catch (err) {\n // If GQL_STOP is not sent because of disconnection issue, then there is nothing the client can do\n logger({ err: err });\n }\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._removeSubscriptionObserver = function (subscriptionId) {\n this.subscriptionObserverMap.delete(subscriptionId);\n // Verifying for 1000ms after removing subscription in case there are new subscriptions on mount / unmount\n setTimeout(this._closeSocketIfRequired.bind(this), 1000);\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._closeSocketIfRequired = function () {\n if (this.subscriptionObserverMap.size > 0) {\n // There are active subscriptions on the WebSocket\n return;\n }\n if (!this.awsRealTimeSocket) {\n this.socketStatus = types_1.SOCKET_STATUS.CLOSED;\n return;\n }\n if (this.awsRealTimeSocket.bufferedAmount > 0) {\n // There is still data on the WebSocket\n setTimeout(this._closeSocketIfRequired.bind(this), 1000);\n }\n else {\n logger(\"closing WebSocket...\");\n clearTimeout(this.keepAliveTimeoutId);\n var tempSocket = this.awsRealTimeSocket;\n tempSocket.close(1000);\n this.awsRealTimeSocket = null;\n this.socketStatus = types_1.SOCKET_STATUS.CLOSED;\n }\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._startSubscriptionWithAWSAppSyncRealTime = function (_a) {\n var options = _a.options, observer = _a.observer, subscriptionId = _a.subscriptionId;\n return __awaiter(this, void 0, void 0, function () {\n var appSyncGraphqlEndpoint, authenticationType, query, variables, apiKey, region, _b, graphql_headers, credentials, token, subscriptionState, data, dataString, headerObj, _c, subscriptionMessage, stringToAWSRealTime, err_1, _d, message, subscriptionFailedCallback_1, _e, subscriptionFailedCallback, subscriptionReadyCallback;\n var _f;\n var _this = this;\n return __generator(this, function (_g) {\n switch (_g.label) {\n case 0:\n appSyncGraphqlEndpoint = options.appSyncGraphqlEndpoint, authenticationType = options.authenticationType, query = options.query, variables = options.variables, apiKey = options.apiKey, region = options.region, _b = options.graphql_headers, graphql_headers = _b === void 0 ? function () { return ({}); } : _b, credentials = options.credentials, token = options.token;\n subscriptionState = types_1.SUBSCRIPTION_STATUS.PENDING;\n data = {\n query: query,\n variables: variables,\n };\n // Having a subscription id map will make it simple to forward messages received\n this.subscriptionObserverMap.set(subscriptionId, {\n observer: observer,\n query: query,\n variables: variables,\n subscriptionState: subscriptionState,\n startAckTimeoutId: null,\n });\n dataString = JSON.stringify(data);\n _c = [{}];\n return [4 /*yield*/, this._awsRealTimeHeaderBasedAuth({\n apiKey: apiKey,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n authenticationType: authenticationType,\n payload: dataString,\n canonicalUri: \"\",\n region: region,\n credentials: credentials,\n token: token,\n graphql_headers: graphql_headers,\n })];\n case 1:\n headerObj = __assign.apply(void 0, [__assign.apply(void 0, _c.concat([(_g.sent())])), (_f = {}, _f[aws_appsync_auth_link_1.USER_AGENT_HEADER] = aws_appsync_auth_link_1.USER_AGENT, _f)]);\n subscriptionMessage = {\n id: subscriptionId,\n payload: {\n data: dataString,\n extensions: {\n authorization: __assign({}, headerObj),\n },\n },\n type: types_1.MESSAGE_TYPES.GQL_START,\n };\n stringToAWSRealTime = JSON.stringify(subscriptionMessage);\n _g.label = 2;\n case 2:\n _g.trys.push([2, 4, , 5]);\n return [4 /*yield*/, this._initializeWebSocketConnection({\n apiKey: apiKey,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n authenticationType: authenticationType,\n region: region,\n credentials: credentials,\n token: token,\n })];\n case 3:\n _g.sent();\n return [3 /*break*/, 5];\n case 4:\n err_1 = _g.sent();\n _d = err_1.message, message = _d === void 0 ? \"\" : _d;\n observer.error({\n errors: [\n __assign({}, new graphql_1.GraphQLError(\"Connection failed: \" + message)),\n ],\n });\n observer.complete();\n subscriptionFailedCallback_1 = (this.subscriptionObserverMap.get(subscriptionId) || {}).subscriptionFailedCallback;\n // Notify concurrent unsubscription\n if (typeof subscriptionFailedCallback_1 === \"function\") {\n subscriptionFailedCallback_1();\n }\n return [2 /*return*/];\n case 5:\n _e = this.subscriptionObserverMap.get(subscriptionId), subscriptionFailedCallback = _e.subscriptionFailedCallback, subscriptionReadyCallback = _e.subscriptionReadyCallback;\n // This must be done before sending the message in order to be listening immediately\n this.subscriptionObserverMap.set(subscriptionId, {\n observer: observer,\n subscriptionState: subscriptionState,\n variables: variables,\n query: query,\n subscriptionReadyCallback: subscriptionReadyCallback,\n subscriptionFailedCallback: subscriptionFailedCallback,\n startAckTimeoutId: setTimeout(function () {\n _this._timeoutStartSubscriptionAck.call(_this, subscriptionId);\n }, START_ACK_TIMEOUT),\n });\n if (this.awsRealTimeSocket) {\n this.awsRealTimeSocket.send(stringToAWSRealTime);\n }\n return [2 /*return*/];\n }\n });\n });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._initializeWebSocketConnection = function (_a) {\n var _this = this;\n var appSyncGraphqlEndpoint = _a.appSyncGraphqlEndpoint, authenticationType = _a.authenticationType, apiKey = _a.apiKey, region = _a.region, credentials = _a.credentials, token = _a.token;\n if (this.socketStatus === types_1.SOCKET_STATUS.READY) {\n return;\n }\n return new Promise(function (res, rej) { return __awaiter(_this, void 0, void 0, function () {\n var payloadString, headerString, _a, _b, headerQs, payloadQs, discoverableEndpoint, awsRealTimeUrl, err_2;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n this.promiseArray.push({ res: res, rej: rej });\n if (!(this.socketStatus === types_1.SOCKET_STATUS.CLOSED)) return [3 /*break*/, 5];\n _c.label = 1;\n case 1:\n _c.trys.push([1, 4, , 5]);\n this.socketStatus = types_1.SOCKET_STATUS.CONNECTING;\n payloadString = \"{}\";\n _b = (_a = JSON).stringify;\n return [4 /*yield*/, this._awsRealTimeHeaderBasedAuth({\n authenticationType: authenticationType,\n payload: payloadString,\n canonicalUri: \"/connect\",\n apiKey: apiKey,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n region: region,\n credentials: credentials,\n token: token,\n graphql_headers: function () { }\n })];\n case 2:\n headerString = _b.apply(_a, [_c.sent()]);\n headerQs = Buffer.from(headerString).toString(\"base64\");\n payloadQs = Buffer.from(payloadString).toString(\"base64\");\n discoverableEndpoint = appSyncGraphqlEndpoint;\n if (this.isCustomDomain(discoverableEndpoint)) {\n discoverableEndpoint = discoverableEndpoint.concat(customDomainPath);\n }\n else {\n discoverableEndpoint = discoverableEndpoint.replace('appsync-api', 'appsync-realtime-api').replace('gogi-beta', 'grt-beta');\n }\n discoverableEndpoint = discoverableEndpoint\n .replace(\"https://\", \"wss://\")\n .replace('http://', 'ws://');\n awsRealTimeUrl = discoverableEndpoint + \"?header=\" + headerQs + \"&payload=\" + payloadQs;\n return [4 /*yield*/, this._initializeRetryableHandshake({ awsRealTimeUrl: awsRealTimeUrl })];\n case 3:\n _c.sent();\n this.promiseArray.forEach(function (_a) {\n var res = _a.res;\n logger(\"Notifying connection successful\");\n res();\n });\n this.socketStatus = types_1.SOCKET_STATUS.READY;\n this.promiseArray = [];\n return [3 /*break*/, 5];\n case 4:\n err_2 = _c.sent();\n this.promiseArray.forEach(function (_a) {\n var rej = _a.rej;\n return rej(err_2);\n });\n this.promiseArray = [];\n if (this.awsRealTimeSocket &&\n this.awsRealTimeSocket.readyState === WebSocket.OPEN) {\n this.awsRealTimeSocket.close(3001);\n }\n this.awsRealTimeSocket = null;\n this.socketStatus = types_1.SOCKET_STATUS.CLOSED;\n return [3 /*break*/, 5];\n case 5: return [2 /*return*/];\n }\n });\n }); });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._awsRealTimeHeaderBasedAuth = function (_a) {\n var authenticationType = _a.authenticationType, payload = _a.payload, canonicalUri = _a.canonicalUri, appSyncGraphqlEndpoint = _a.appSyncGraphqlEndpoint, apiKey = _a.apiKey, region = _a.region, credentials = _a.credentials, token = _a.token, graphql_headers = _a.graphql_headers;\n return __awaiter(this, void 0, void 0, function () {\n var headerHandler, handler, host, result;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n headerHandler = {\n API_KEY: this._awsRealTimeApiKeyHeader.bind(this),\n AWS_IAM: this._awsRealTimeIAMHeader.bind(this),\n OPENID_CONNECT: this._awsRealTimeAuthorizationHeader.bind(this),\n AMAZON_COGNITO_USER_POOLS: this._awsRealTimeAuthorizationHeader.bind(this),\n AWS_LAMBDA: this._awsRealTimeAuthorizationHeader.bind(this),\n };\n handler = headerHandler[authenticationType];\n if (typeof handler !== \"function\") {\n logger(\"Authentication type \" + authenticationType + \" not supported\");\n return [2 /*return*/, {}];\n }\n host = url.parse(appSyncGraphqlEndpoint).host;\n return [4 /*yield*/, handler({\n payload: payload,\n canonicalUri: canonicalUri,\n appSyncGraphqlEndpoint: appSyncGraphqlEndpoint,\n apiKey: apiKey,\n region: region,\n host: host,\n credentials: credentials,\n token: token,\n graphql_headers: graphql_headers,\n })];\n case 1:\n result = _b.sent();\n return [2 /*return*/, result];\n }\n });\n });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._awsRealTimeAuthorizationHeader = function (_a) {\n var host = _a.host, token = _a.token, graphql_headers = _a.graphql_headers;\n return __awaiter(this, void 0, void 0, function () {\n var _b, _c, _d;\n return __generator(this, function (_e) {\n switch (_e.label) {\n case 0:\n _b = {};\n if (!(typeof token === \"function\")) return [3 /*break*/, 2];\n return [4 /*yield*/, token.call(undefined)];\n case 1:\n _c = _e.sent();\n return [3 /*break*/, 4];\n case 2: return [4 /*yield*/, token];\n case 3:\n _c = _e.sent();\n _e.label = 4;\n case 4:\n _d = [(_b.Authorization = _c, _b.host = host, _b)];\n return [4 /*yield*/, graphql_headers()];\n case 5: return [2 /*return*/, __assign.apply(void 0, _d.concat([(_e.sent())]))];\n }\n });\n });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._awsRealTimeApiKeyHeader = function (_a) {\n var apiKey = _a.apiKey, host = _a.host, graphql_headers = _a.graphql_headers;\n return __awaiter(this, void 0, void 0, function () {\n var dt, dtStr, _b;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n dt = new Date();\n dtStr = dt.toISOString().replace(/[:\\-]|\\.\\d{3}/g, \"\");\n _b = [{ host: host, \"x-amz-date\": dtStr, \"x-api-key\": apiKey }];\n return [4 /*yield*/, graphql_headers()];\n case 1: return [2 /*return*/, __assign.apply(void 0, _b.concat([(_c.sent())]))];\n }\n });\n });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._awsRealTimeIAMHeader = function (_a) {\n var payload = _a.payload, canonicalUri = _a.canonicalUri, appSyncGraphqlEndpoint = _a.appSyncGraphqlEndpoint, region = _a.region, credentials = _a.credentials;\n return __awaiter(this, void 0, void 0, function () {\n var endpointInfo, creds, _b, accessKeyId, secretAccessKey, sessionToken, formattedCredentials, request, signed_params;\n return __generator(this, function (_c) {\n switch (_c.label) {\n case 0:\n endpointInfo = {\n region: region,\n service: SERVICE,\n };\n creds = typeof credentials === \"function\"\n ? credentials.call()\n : credentials || {};\n if (!(creds && typeof creds.getPromise === \"function\")) return [3 /*break*/, 2];\n return [4 /*yield*/, creds.getPromise()];\n case 1:\n _c.sent();\n _c.label = 2;\n case 2:\n if (!creds) {\n throw new Error(\"No credentials\");\n }\n return [4 /*yield*/, creds];\n case 3:\n _b = _c.sent(), accessKeyId = _b.accessKeyId, secretAccessKey = _b.secretAccessKey, sessionToken = _b.sessionToken;\n formattedCredentials = {\n access_key: accessKeyId,\n secret_key: secretAccessKey,\n session_token: sessionToken,\n };\n request = {\n url: \"\" + appSyncGraphqlEndpoint + canonicalUri,\n body: payload,\n method: \"POST\",\n headers: __assign({}, APPSYNC_REALTIME_HEADERS),\n };\n signed_params = aws_appsync_auth_link_1.Signer.sign(request, formattedCredentials, endpointInfo);\n return [2 /*return*/, signed_params.headers];\n }\n });\n });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._initializeRetryableHandshake = function (_a) {\n var awsRealTimeUrl = _a.awsRealTimeUrl;\n return __awaiter(this, void 0, void 0, function () {\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n logger(\"Initializaling retryable Handshake\");\n return [4 /*yield*/, retry_1.jitteredExponentialRetry(this._initializeHandshake.bind(this), [\n { awsRealTimeUrl: awsRealTimeUrl },\n ])];\n case 1:\n _b.sent();\n return [2 /*return*/];\n }\n });\n });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._initializeHandshake = function (_a) {\n var awsRealTimeUrl = _a.awsRealTimeUrl;\n return __awaiter(this, void 0, void 0, function () {\n var err_3, errorType, errorCode;\n var _this = this;\n return __generator(this, function (_b) {\n switch (_b.label) {\n case 0:\n logger(\"Initializing handshake \" + awsRealTimeUrl);\n _b.label = 1;\n case 1:\n _b.trys.push([1, 4, , 5]);\n return [4 /*yield*/, (function () {\n return new Promise(function (res, rej) {\n var newSocket = AppSyncRealTimeSubscriptionHandshakeLink.createWebSocket(awsRealTimeUrl, \"graphql-ws\");\n newSocket.onerror = function () {\n logger(\"WebSocket connection error\");\n };\n newSocket.onclose = function () {\n rej(new Error(\"Connection handshake error\"));\n };\n newSocket.onopen = function () {\n _this.awsRealTimeSocket = newSocket;\n return res();\n };\n });\n })()];\n case 2:\n _b.sent();\n // Step 2: wait for ack from AWS AppSyncReaTime after sending init\n return [4 /*yield*/, (function () {\n return new Promise(function (res, rej) {\n var ackOk = false;\n _this.awsRealTimeSocket.onerror = function (error) {\n logger(\"WebSocket closed \" + JSON.stringify(error));\n };\n _this.awsRealTimeSocket.onclose = function (event) {\n logger(\"WebSocket closed \" + event.reason);\n rej(new Error(JSON.stringify(event)));\n };\n _this.awsRealTimeSocket.onmessage = function (message) {\n var _a;\n logger(\"subscription message from AWS AppSyncRealTime: \" + message.data + \" \");\n var data = JSON.parse(message.data);\n var type = data.type, _b = data.payload, _c = (_b === void 0 ? {} : _b).connectionTimeoutMs, connectionTimeoutMs = _c === void 0 ? DEFAULT_KEEP_ALIVE_TIMEOUT : _c;\n if (type === types_1.MESSAGE_TYPES.GQL_CONNECTION_ACK) {\n ackOk = true;\n _this.keepAliveTimeout = (_a = _this.keepAliveTimeout) !== null && _a !== void 0 ? _a : connectionTimeoutMs;\n _this.awsRealTimeSocket.onmessage = _this._handleIncomingSubscriptionMessage.bind(_this);\n _this.awsRealTimeSocket.onerror = function (err) {\n logger(err);\n _this._errorDisconnect(types_1.CONTROL_MSG.CONNECTION_CLOSED);\n };\n _this.awsRealTimeSocket.onclose = function (event) {\n logger(\"WebSocket closed \" + event.reason);\n _this._errorDisconnect(types_1.CONTROL_MSG.CONNECTION_CLOSED);\n };\n res(\"Cool, connected to AWS AppSyncRealTime\");\n return;\n }\n if (type === types_1.MESSAGE_TYPES.GQL_CONNECTION_ERROR) {\n var _d = data.payload, _e = (_d === void 0 ? {} : _d).errors, _f = (_e === void 0 ? [] : _e)[0], _g = _f === void 0 ? {} : _f, _h = _g.errorType, errorType = _h === void 0 ? \"\" : _h, _j = _g.errorCode, errorCode = _j === void 0 ? 0 : _j;\n rej({ errorType: errorType, errorCode: errorCode });\n }\n };\n var gqlInit = {\n type: types_1.MESSAGE_TYPES.GQL_CONNECTION_INIT,\n };\n _this.awsRealTimeSocket.send(JSON.stringify(gqlInit));\n function checkAckOk() {\n if (!ackOk) {\n rej(new Error(\"Connection timeout: ack from AWSRealTime was not received on \" + CONNECTION_INIT_TIMEOUT + \" ms\"));\n }\n }\n setTimeout(checkAckOk.bind(_this), CONNECTION_INIT_TIMEOUT);\n });\n })()];\n case 3:\n // Step 2: wait for ack from AWS AppSyncReaTime after sending init\n _b.sent();\n return [3 /*break*/, 5];\n case 4:\n err_3 = _b.sent();\n errorType = err_3.errorType, errorCode = err_3.errorCode;\n if (NON_RETRYABLE_CODES.indexOf(errorCode) >= 0) {\n throw new retry_1.NonRetryableError(errorType);\n }\n else if (errorType) {\n throw new Error(errorType);\n }\n else {\n throw err_3;\n }\n return [3 /*break*/, 5];\n case 5: return [2 /*return*/];\n }\n });\n });\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._handleIncomingSubscriptionMessage = function (message) {\n logger(\"subscription message from AWS AppSync RealTime: \" + message.data);\n var _a = JSON.parse(message.data), _b = _a.id, id = _b === void 0 ? \"\" : _b, payload = _a.payload, type = _a.type;\n var _c = this.subscriptionObserverMap.get(id) || {}, _d = _c.observer, observer = _d === void 0 ? null : _d, _e = _c.query, query = _e === void 0 ? \"\" : _e, _f = _c.variables, variables = _f === void 0 ? {} : _f, _g = _c.startAckTimeoutId, startAckTimeoutId = _g === void 0 ? 0 : _g, _h = _c.subscriptionReadyCallback, subscriptionReadyCallback = _h === void 0 ? null : _h, _j = _c.subscriptionFailedCallback, subscriptionFailedCallback = _j === void 0 ? null : _j;\n logger({ id: id, observer: observer, query: query, variables: variables });\n if (type === types_1.MESSAGE_TYPES.GQL_DATA && payload && payload.data) {\n if (observer) {\n observer.next(payload);\n }\n else {\n logger(\"observer not found for id: \" + id);\n }\n return;\n }\n if (type === types_1.MESSAGE_TYPES.GQL_START_ACK) {\n logger(\"subscription ready for \" + JSON.stringify({ query: query, variables: variables }));\n if (typeof subscriptionReadyCallback === \"function\") {\n subscriptionReadyCallback();\n }\n clearTimeout(startAckTimeoutId);\n if (observer) {\n observer.next({\n data: payload,\n extensions: {\n controlMsgType: \"CONNECTED\",\n },\n });\n }\n else {\n logger(\"observer not found for id: \" + id);\n }\n var subscriptionState = types_1.SUBSCRIPTION_STATUS.CONNECTED;\n this.subscriptionObserverMap.set(id, {\n observer: observer,\n query: query,\n variables: variables,\n startAckTimeoutId: null,\n subscriptionState: subscriptionState,\n subscriptionReadyCallback: subscriptionReadyCallback,\n subscriptionFailedCallback: subscriptionFailedCallback,\n });\n return;\n }\n if (type === types_1.MESSAGE_TYPES.GQL_CONNECTION_KEEP_ALIVE) {\n clearTimeout(this.keepAliveTimeoutId);\n this.keepAliveTimeoutId = setTimeout(this._errorDisconnect.bind(this, types_1.CONTROL_MSG.TIMEOUT_DISCONNECT), this.keepAliveTimeout);\n return;\n }\n if (type === types_1.MESSAGE_TYPES.GQL_ERROR) {\n var subscriptionState = types_1.SUBSCRIPTION_STATUS.FAILED;\n this.subscriptionObserverMap.set(id, {\n observer: observer,\n query: query,\n variables: variables,\n startAckTimeoutId: startAckTimeoutId,\n subscriptionReadyCallback: subscriptionReadyCallback,\n subscriptionFailedCallback: subscriptionFailedCallback,\n subscriptionState: subscriptionState,\n });\n observer.error({\n errors: [\n __assign({}, new graphql_1.GraphQLError(\"Connection failed: \" + JSON.stringify(payload))),\n ],\n });\n clearTimeout(startAckTimeoutId);\n if (observer) {\n observer.error({\n errors: [\n __assign({}, new graphql_1.GraphQLError(\"Connection failed: \" + JSON.stringify(payload)))\n ]\n });\n observer.complete();\n }\n else {\n logger(\"observer not found for id: \" + id);\n }\n if (typeof subscriptionFailedCallback === \"function\") {\n subscriptionFailedCallback();\n }\n }\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._errorDisconnect = function (msg) {\n logger(\"Disconnect error: \" + msg);\n this.subscriptionObserverMap.forEach(function (_a) {\n var observer = _a.observer;\n if (observer && !observer.closed) {\n observer.error({\n errors: [__assign({}, new graphql_1.GraphQLError(msg))],\n });\n }\n });\n this.subscriptionObserverMap.clear();\n if (this.awsRealTimeSocket) {\n this.awsRealTimeSocket.close();\n }\n this.socketStatus = types_1.SOCKET_STATUS.CLOSED;\n };\n AppSyncRealTimeSubscriptionHandshakeLink.prototype._timeoutStartSubscriptionAck = function (subscriptionId) {\n var _a = this.subscriptionObserverMap.get(subscriptionId) || {}, observer = _a.observer, query = _a.query, variables = _a.variables;\n if (!observer) {\n return;\n }\n this.subscriptionObserverMap.set(subscriptionId, {\n observer: observer,\n query: query,\n variables: variables,\n subscriptionState: types_1.SUBSCRIPTION_STATUS.FAILED,\n });\n if (observer && !observer.closed) {\n observer.error({\n errors: [\n __assign({}, new graphql_1.GraphQLError(\"Subscription timeout \" + JSON.stringify({ query: query, variables: variables }))),\n ],\n });\n // Cleanup will be automatically executed\n observer.complete();\n }\n logger(\"timeoutStartSubscription\", JSON.stringify({ query: query, variables: variables }));\n };\n AppSyncRealTimeSubscriptionHandshakeLink.createWebSocket = function (awsRealTimeUrl, protocol) {\n return new WebSocket(awsRealTimeUrl, protocol);\n };\n return AppSyncRealTimeSubscriptionHandshakeLink;\n}(apollo_link_1.ApolloLink));\nexports.AppSyncRealTimeSubscriptionHandshakeLink = AppSyncRealTimeSubscriptionHandshakeLink;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar apollo_link_1 = require(\"apollo-link\");\nvar utils_1 = require(\"./utils\");\nvar Paho = require(\"./vendor/paho-mqtt\");\nvar apollo_client_1 = require(\"apollo-client\");\nvar apollo_utilities_1 = require(\"apollo-utilities\");\nvar logger = utils_1.rootLogger.extend('subscriptions');\nvar mqttLogger = logger.extend('mqtt');\nexports.CONTROL_EVENTS_KEY = '@@controlEvents';\nvar SubscriptionHandshakeLink = /** @class */ (function (_super) {\n __extends(SubscriptionHandshakeLink, _super);\n function SubscriptionHandshakeLink(subsInfoContextKey) {\n var _this = _super.call(this) || this;\n _this.topicObservers = new Map();\n _this.clientObservers = new Map();\n _this.onMessage = function (topic, message, selectionNames) {\n var parsedMessage = JSON.parse(message);\n var observers = _this.topicObservers.get(topic);\n var data = selectionNames.reduce(function (acc, name) { return (acc[name] = acc[name] || null, acc); }, parsedMessage.data || {});\n logger('Message received', { data: data, topic: topic, observers: observers });\n observers.forEach(function (observer) {\n try {\n observer.next(__assign(__assign({}, parsedMessage), { data: data }));\n }\n catch (err) {\n logger(err);\n }\n });\n };\n _this.subsInfoContextKey = subsInfoContextKey;\n return _this;\n }\n SubscriptionHandshakeLink.prototype.request = function (operation) {\n var _a;\n var _this = this;\n var _b = operation.getContext(), _c = this.subsInfoContextKey, subsInfo = _b[_c], _d = _b.controlMessages, _e = exports.CONTROL_EVENTS_KEY, controlEvents = (_d === void 0 ? (_a = {}, _a[exports.CONTROL_EVENTS_KEY] = undefined, _a) : _d)[_e];\n var _f = subsInfo.extensions, _g = (_f === void 0 ? { subscription: { newSubscriptions: {}, mqttConnections: [] } } : _f).subscription, newSubscriptions = _g.newSubscriptions, mqttConnections = _g.mqttConnections, _h = subsInfo.errors, errors = _h === void 0 ? [] : _h;\n if (errors && errors.length) {\n return new apollo_link_1.Observable(function (observer) {\n observer.error(new apollo_client_1.ApolloError({\n errorMessage: 'Error during subscription handshake',\n extraInfo: { errors: errors },\n graphQLErrors: errors\n }));\n return function () { };\n });\n }\n var newSubscriptionTopics = Object.keys(newSubscriptions).map(function (subKey) { return newSubscriptions[subKey].topic; });\n var existingTopicsWithObserver = new Set(newSubscriptionTopics.filter(function (t) { return _this.topicObservers.has(t); }));\n var newTopics = new Set(newSubscriptionTopics.filter(function (t) { return !existingTopicsWithObserver.has(t); }));\n return new apollo_link_1.Observable(function (observer) {\n existingTopicsWithObserver.forEach(function (t) {\n _this.topicObservers.get(t).add(observer);\n var anObserver = Array.from(_this.topicObservers.get(t)).find(function () { return true; });\n var clientId = Array.from(_this.clientObservers).find(function (_a) {\n var observers = _a[1].observers;\n return observers.has(anObserver);\n })[0];\n _this.clientObservers.get(clientId).observers.add(observer);\n });\n var newTopicsConnectionInfo = mqttConnections\n .filter(function (c) { return c.topics.some(function (t) { return newTopics.has(t); }); })\n .map(function (_a) {\n var topics = _a.topics, rest = __rest(_a, [\"topics\"]);\n return (__assign(__assign({}, rest), { topics: topics.filter(function (t) { return newTopics.has(t); }) }));\n });\n _this.connectNewClients(newTopicsConnectionInfo, observer, operation);\n return function () {\n var clientsForCurrentObserver = Array.from(_this.clientObservers).filter(function (_a) {\n var observers = _a[1].observers;\n return observers.has(observer);\n });\n clientsForCurrentObserver.forEach(function (_a) {\n var clientId = _a[0];\n return _this.clientObservers.get(clientId).observers.delete(observer);\n });\n _this.clientObservers.forEach(function (_a) {\n var observers = _a.observers, client = _a.client;\n if (observers.size === 0) {\n if (client.isConnected()) {\n client.disconnect();\n }\n _this.clientObservers.delete(client.clientId);\n }\n });\n _this.clientObservers = new Map(Array.from(_this.clientObservers).filter(function (_a) {\n var observers = _a[1].observers;\n return observers.size > 0;\n }));\n _this.topicObservers.forEach(function (observers) { return observers.delete(observer); });\n _this.topicObservers = new Map(Array.from(_this.topicObservers)\n .filter(function (_a) {\n var observers = _a[1];\n return observers.size > 0;\n }));\n };\n }).filter(function (data) {\n var _a = data.extensions, _b = (_a === void 0 ? {} : _a).controlMsgType, controlMsgType = _b === void 0 ? undefined : _b;\n var isControlMsg = typeof controlMsgType !== 'undefined';\n return controlEvents === true || !isControlMsg;\n });\n };\n SubscriptionHandshakeLink.prototype.connectNewClients = function (connectionInfo, observer, operation) {\n return __awaiter(this, void 0, void 0, function () {\n var query, selectionNames, result, data;\n var _this = this;\n return __generator(this, function (_a) {\n query = operation.query;\n selectionNames = apollo_utilities_1.getMainDefinition(query).selectionSet.selections.map(function (_a) {\n var value = _a.name.value;\n return value;\n });\n result = Promise.all(connectionInfo.map(function (c) { return _this.connectNewClient(c, observer, selectionNames); }));\n data = selectionNames.reduce(function (acc, name) { return (acc[name] = acc[name] || null, acc); }, {});\n observer.next({\n data: data,\n extensions: {\n controlMsgType: 'CONNECTED',\n controlMsgInfo: {\n connectionInfo: connectionInfo,\n },\n }\n });\n return [2 /*return*/, result];\n });\n });\n };\n ;\n SubscriptionHandshakeLink.prototype.connectNewClient = function (connectionInfo, observer, selectionNames) {\n return __awaiter(this, void 0, void 0, function () {\n var clientId, url, topics, client;\n var _this = this;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n clientId = connectionInfo.client, url = connectionInfo.url, topics = connectionInfo.topics;\n client = new Paho.Client(url, clientId);\n client.trace = mqttLogger.bind(null, clientId);\n client.onConnectionLost = function (_a) {\n var errorCode = _a.errorCode, args = __rest(_a, [\"errorCode\"]);\n if (errorCode !== 0) {\n topics.forEach(function (t) {\n if (_this.topicObservers.has(t)) {\n _this.topicObservers.get(t).forEach(function (observer) { return observer.error(__assign(__assign({}, args), { permanent: true })); });\n }\n });\n }\n topics.forEach(function (t) { return _this.topicObservers.delete(t); });\n };\n client.onMessageArrived = function (_a) {\n var destinationName = _a.destinationName, payloadString = _a.payloadString;\n return _this.onMessage(destinationName, payloadString, selectionNames);\n };\n return [4 /*yield*/, new Promise(function (resolve, reject) {\n client.connect({\n useSSL: url.indexOf('wss://') === 0,\n mqttVersion: 3,\n onSuccess: function () { return resolve(client); },\n onFailure: reject,\n });\n })];\n case 1:\n _a.sent();\n return [4 /*yield*/, this.subscribeToTopics(client, topics, observer)];\n case 2:\n _a.sent();\n return [2 /*return*/, client];\n }\n });\n });\n };\n SubscriptionHandshakeLink.prototype.subscribeToTopics = function (client, topics, observer) {\n var _this = this;\n return Promise.all(topics.map(function (topic) { return _this.subscribeToTopic(client, topic, observer); }));\n };\n SubscriptionHandshakeLink.prototype.subscribeToTopic = function (client, topic, observer) {\n var _this = this;\n return new Promise(function (resolve, reject) {\n client.subscribe(topic, {\n onSuccess: function () {\n if (!_this.topicObservers.has(topic)) {\n _this.topicObservers.set(topic, new Set());\n }\n if (!_this.clientObservers.has(client.clientId)) {\n _this.clientObservers.set(client.clientId, { client: client, observers: new Set() });\n }\n _this.topicObservers.get(topic).add(observer);\n _this.clientObservers.get(client.clientId).observers.add(observer);\n resolve(topic);\n },\n onFailure: reject,\n });\n });\n };\n return SubscriptionHandshakeLink;\n}(apollo_link_1.ApolloLink));\nexports.SubscriptionHandshakeLink = SubscriptionHandshakeLink;\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n//#region Subscription link enums\nvar SUBSCRIPTION_STATUS;\n(function (SUBSCRIPTION_STATUS) {\n SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS[\"PENDING\"] = 0] = \"PENDING\";\n SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS[\"CONNECTED\"] = 1] = \"CONNECTED\";\n SUBSCRIPTION_STATUS[SUBSCRIPTION_STATUS[\"FAILED\"] = 2] = \"FAILED\";\n})(SUBSCRIPTION_STATUS = exports.SUBSCRIPTION_STATUS || (exports.SUBSCRIPTION_STATUS = {}));\nvar SOCKET_STATUS;\n(function (SOCKET_STATUS) {\n SOCKET_STATUS[SOCKET_STATUS[\"CLOSED\"] = 0] = \"CLOSED\";\n SOCKET_STATUS[SOCKET_STATUS[\"READY\"] = 1] = \"READY\";\n SOCKET_STATUS[SOCKET_STATUS[\"CONNECTING\"] = 2] = \"CONNECTING\";\n})(SOCKET_STATUS = exports.SOCKET_STATUS || (exports.SOCKET_STATUS = {}));\nvar MESSAGE_TYPES;\n(function (MESSAGE_TYPES) {\n /**\n * Client -> Server message.\n * This message type is the first message after handshake and this will initialize AWS AppSync RealTime communication\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_INIT\"] = \"connection_init\";\n /**\n * Server -> Client message\n * This message type is in case there is an issue with AWS AppSync RealTime when establishing connection\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_ERROR\"] = \"connection_error\";\n /**\n * Server -> Client message.\n * This message type is for the ack response from AWS AppSync RealTime for GQL_CONNECTION_INIT message\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_ACK\"] = \"connection_ack\";\n /**\n * Client -> Server message.\n * This message type is for register subscriptions with AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_START\"] = \"start\";\n /**\n * Server -> Client message.\n * This message type is for the ack response from AWS AppSync RealTime for GQL_START message\n */\n MESSAGE_TYPES[\"GQL_START_ACK\"] = \"start_ack\";\n /**\n * Server -> Client message.\n * This message type is for subscription message from AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_DATA\"] = \"data\";\n /**\n * Server -> Client message.\n * This message type helps the client to know is still receiving messages from AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_CONNECTION_KEEP_ALIVE\"] = \"ka\";\n /**\n * Client -> Server message.\n * This message type is for unregister subscriptions with AWS AppSync RealTime\n */\n MESSAGE_TYPES[\"GQL_STOP\"] = \"stop\";\n /**\n * Server -> Client message.\n * This message type is for the ack response from AWS AppSync RealTime for GQL_STOP message\n */\n MESSAGE_TYPES[\"GQL_COMPLETE\"] = \"complete\";\n /**\n * Server -> Client message.\n * This message type is for sending error messages from AWS AppSync RealTime to the client\n */\n MESSAGE_TYPES[\"GQL_ERROR\"] = \"error\"; // Server -> Client\n})(MESSAGE_TYPES = exports.MESSAGE_TYPES || (exports.MESSAGE_TYPES = {}));\nvar CONTROL_MSG;\n(function (CONTROL_MSG) {\n CONTROL_MSG[\"CONNECTION_CLOSED\"] = \"Connection closed\";\n CONTROL_MSG[\"TIMEOUT_DISCONNECT\"] = \"Timeout disconnect\";\n CONTROL_MSG[\"SUBSCRIPTION_ACK\"] = \"Subscription ack\";\n})(CONTROL_MSG = exports.CONTROL_MSG || (exports.CONTROL_MSG = {}));\n//#endregion\n","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\n/*!\n * Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n * SPDX-License-Identifier: Apache-2.0\n */\nvar logger_1 = require(\"./logger\");\nexports.rootLogger = logger_1.default;\n","\"use strict\";\nvar __spreadArrays = (this && this.__spreadArrays) || function () {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar debug_1 = require(\"debug\");\nvar debugLogger = debug_1.default('aws-appsync');\nvar extend = function (category) {\n if (category === void 0) { category = ''; }\n var newCategory = category ? __spreadArrays(this.namespace.split(':'), [category]).join(':') : this.namespace;\n var result = debug_1.default(newCategory);\n result.extend = extend.bind(result);\n return result;\n};\ndebugLogger.extend = extend.bind(debugLogger);\nexports.default = debugLogger;\n","\"use strict\";\nvar __extends = (this && this.__extends) || (function () {\n var extendStatics = function (d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\n return extendStatics(d, b);\n };\n return function (d, b) {\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n };\n})();\nvar __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n};\nvar __generator = (this && this.__generator) || function (thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (_) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar index_1 = require(\"./index\");\nvar logger = index_1.rootLogger.extend(\"retry\");\nvar MAX_DELAY_MS = 5000;\n/**\n * Internal use of Subscription link\n * @private\n */\nvar NonRetryableError = /** @class */ (function (_super) {\n __extends(NonRetryableError, _super);\n function NonRetryableError(message) {\n var _this = _super.call(this, message) || this;\n _this.nonRetryable = true;\n return _this;\n }\n return NonRetryableError;\n}(Error));\nexports.NonRetryableError = NonRetryableError;\nvar isNonRetryableError = function (obj) {\n var key = \"nonRetryable\";\n return obj && obj[key];\n};\n/**\n * @private\n * Internal use of Subscription link\n */\nfunction retry(functionToRetry, args, delayFn, attempt) {\n if (attempt === void 0) { attempt = 1; }\n return __awaiter(this, void 0, void 0, function () {\n var err_1, retryIn_1;\n return __generator(this, function (_a) {\n switch (_a.label) {\n case 0:\n logger(\"Attempt #\" + attempt + \" for this vars: \" + JSON.stringify(args));\n _a.label = 1;\n case 1:\n _a.trys.push([1, 3, , 8]);\n return [4 /*yield*/, functionToRetry.apply(undefined, args)];\n case 2:\n _a.sent();\n return [3 /*break*/, 8];\n case 3:\n err_1 = _a.sent();\n logger(\"error \" + err_1);\n if (isNonRetryableError(err_1)) {\n logger(\"non retryable error\");\n throw err_1;\n }\n retryIn_1 = delayFn(attempt, args, err_1);\n logger(\"retryIn \", retryIn_1);\n if (!(retryIn_1 !== false)) return [3 /*break*/, 6];\n return [4 /*yield*/, new Promise(function (res) { return setTimeout(res, retryIn_1); })];\n case 4:\n _a.sent();\n return [4 /*yield*/, retry(functionToRetry, args, delayFn, attempt + 1)];\n case 5: return [2 /*return*/, _a.sent()];\n case 6: throw err_1;\n case 7: return [3 /*break*/, 8];\n case 8: return [2 /*return*/];\n }\n });\n });\n}\nexports.retry = retry;\nfunction jitteredBackoff(maxDelayMs) {\n var BASE_TIME_MS = 100;\n var JITTER_FACTOR = 100;\n return function (attempt) {\n var delay = Math.pow(2, attempt) * BASE_TIME_MS + JITTER_FACTOR * Math.random();\n return delay > maxDelayMs ? false : delay;\n };\n}\n/**\n * @private\n * Internal use of Subscription link\n */\nexports.jitteredExponentialRetry = function (functionToRetry, args, maxDelayMs) {\n if (maxDelayMs === void 0) { maxDelayMs = MAX_DELAY_MS; }\n return retry(functionToRetry, args, jitteredBackoff(maxDelayMs));\n};\n","/*******************************************************************************\n * Copyright (c) 2013 IBM Corp.\n *\n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * and Eclipse Distribution License v1.0 which accompany this distribution.\n *\n * The Eclipse Public License is available at\n * http://www.eclipse.org/legal/epl-v10.html\n * and the Eclipse Distribution License is available at\n * http://www.eclipse.org/org/documents/edl-v10.php.\n *\n * Contributors:\n * Andrew Banks - initial API and implementation and initial documentation\n *******************************************************************************/\n\n\n// Only expose a single object name in the global namespace.\n// Everything must go through this module. Global Paho module\n// only has a single public function, client, which returns\n// a Paho client object given connection details.\n\n/**\n * Send and receive messages using web browsers.\n *

\n * This programming interface lets a JavaScript client application use the MQTT V3.1 or\n * V3.1.1 protocol to connect to an MQTT-supporting messaging server.\n *\n * The function supported includes:\n *

    \n *
  1. Connecting to and disconnecting from a server. The server is identified by its host name and port number.\n *
  2. Specifying options that relate to the communications link with the server,\n * for example the frequency of keep-alive heartbeats, and whether SSL/TLS is required.\n *
  3. Subscribing to and receiving messages from MQTT Topics.\n *
  4. Publishing messages to MQTT Topics.\n *
\n *

\n * The API consists of two main objects:\n *

\n *
{@link Paho.Client}
\n *
This contains methods that provide the functionality of the API,\n * including provision of callbacks that notify the application when a message\n * arrives from or is delivered to the messaging server,\n * or when the status of its connection to the messaging server changes.
\n *
{@link Paho.Message}
\n *
This encapsulates the payload of the message along with various attributes\n * associated with its delivery, in particular the destination to which it has\n * been (or is about to be) sent.
\n *
\n *

\n * The programming interface validates parameters passed to it, and will throw\n * an Error containing an error message intended for developer use, if it detects\n * an error with any parameter.\n *

\n * Example:\n *\n *

\nclient = new Paho.Client(location.hostname, Number(location.port), \"clientId\");\nclient.onConnectionLost = onConnectionLost;\nclient.onMessageArrived = onMessageArrived;\nclient.connect({onSuccess:onConnect});\n\nfunction onConnect() {\n  // Once a connection has been made, make a subscription and send a message.\n  console.log(\"onConnect\");\n  client.subscribe(\"/World\");\n  message = new Paho.Message(\"Hello\");\n  message.destinationName = \"/World\";\n  client.send(message);\n};\nfunction onConnectionLost(responseObject) {\n  if (responseObject.errorCode !== 0)\n\tconsole.log(\"onConnectionLost:\"+responseObject.errorMessage);\n};\nfunction onMessageArrived(message) {\n  console.log(\"onMessageArrived:\"+message.payloadString);\n  client.disconnect();\n};\n * 
\n * @namespace Paho\n */\n\n/* jshint shadow:true */\n(function ExportLibrary(root, factory) {\n\tif(typeof exports === \"object\" && typeof module === \"object\"){\n\t\tmodule.exports = factory();\n\t} else if (typeof define === \"function\" && define.amd){\n\t\tdefine(factory);\n\t} else if (typeof exports === \"object\"){\n\t\texports = factory();\n\t} else {\n\t\t//if (typeof root.Paho === \"undefined\"){\n\t\t//\troot.Paho = {};\n\t\t//}\n\t\troot.Paho = factory();\n\t}\n})(this, function LibraryFactory(){\n\n\n\tvar PahoMQTT = (function (global) {\n\n\t// Private variables below, these are only visible inside the function closure\n\t// which is used to define the module.\n\tvar version = \"@VERSION@-@BUILDLEVEL@\";\n\n\t/**\n\t * @private\n\t */\n\tvar localStorage = global.localStorage || (function () {\n\t\tvar data = {};\n\n\t\treturn {\n\t\t\tsetItem: function (key, item) { data[key] = item; },\n\t\t\tgetItem: function (key) { return data[key]; },\n\t\t\tremoveItem: function (key) { delete data[key]; },\n\t\t};\n\t})();\n\n\t\t/**\n\t * Unique message type identifiers, with associated\n\t * associated integer values.\n\t * @private\n\t */\n\t\tvar MESSAGE_TYPE = {\n\t\t\tCONNECT: 1,\n\t\t\tCONNACK: 2,\n\t\t\tPUBLISH: 3,\n\t\t\tPUBACK: 4,\n\t\t\tPUBREC: 5,\n\t\t\tPUBREL: 6,\n\t\t\tPUBCOMP: 7,\n\t\t\tSUBSCRIBE: 8,\n\t\t\tSUBACK: 9,\n\t\t\tUNSUBSCRIBE: 10,\n\t\t\tUNSUBACK: 11,\n\t\t\tPINGREQ: 12,\n\t\t\tPINGRESP: 13,\n\t\t\tDISCONNECT: 14\n\t\t};\n\n\t\t// Collection of utility methods used to simplify module code\n\t\t// and promote the DRY pattern.\n\n\t\t/**\n\t * Validate an object's parameter names to ensure they\n\t * match a list of expected variables name for this option\n\t * type. Used to ensure option object passed into the API don't\n\t * contain erroneous parameters.\n\t * @param {Object} obj - User options object\n\t * @param {Object} keys - valid keys and types that may exist in obj.\n\t * @throws {Error} Invalid option parameter found.\n\t * @private\n\t */\n\t\tvar validate = function(obj, keys) {\n\t\t\tfor (var key in obj) {\n\t\t\t\tif (obj.hasOwnProperty(key)) {\n\t\t\t\t\tif (keys.hasOwnProperty(key)) {\n\t\t\t\t\t\tif (typeof obj[key] !== keys[key])\n\t\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof obj[key], key]));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar errorStr = \"Unknown property, \" + key + \". Valid properties are:\";\n\t\t\t\t\t\tfor (var validKey in keys)\n\t\t\t\t\t\t\tif (keys.hasOwnProperty(validKey))\n\t\t\t\t\t\t\t\terrorStr = errorStr+\" \"+validKey;\n\t\t\t\t\t\tthrow new Error(errorStr);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t * Return a new function which runs the user function bound\n\t * to a fixed scope.\n\t * @param {function} User function\n\t * @param {object} Function scope\n\t * @return {function} User function bound to another scope\n\t * @private\n\t */\n\t\tvar scope = function (f, scope) {\n\t\t\treturn function () {\n\t\t\t\treturn f.apply(scope, arguments);\n\t\t\t};\n\t\t};\n\n\t\t/**\n\t * Unique message type identifiers, with associated\n\t * associated integer values.\n\t * @private\n\t */\n\t\tvar ERROR = {\n\t\t\tOK: {code:0, text:\"AMQJSC0000I OK.\"},\n\t\t\tCONNECT_TIMEOUT: {code:1, text:\"AMQJSC0001E Connect timed out.\"},\n\t\t\tSUBSCRIBE_TIMEOUT: {code:2, text:\"AMQJS0002E Subscribe timed out.\"},\n\t\t\tUNSUBSCRIBE_TIMEOUT: {code:3, text:\"AMQJS0003E Unsubscribe timed out.\"},\n\t\t\tPING_TIMEOUT: {code:4, text:\"AMQJS0004E Ping timed out.\"},\n\t\t\tINTERNAL_ERROR: {code:5, text:\"AMQJS0005E Internal error. Error Message: {0}, Stack trace: {1}\"},\n\t\t\tCONNACK_RETURNCODE: {code:6, text:\"AMQJS0006E Bad Connack return code:{0} {1}.\"},\n\t\t\tSOCKET_ERROR: {code:7, text:\"AMQJS0007E Socket error:{0}.\"},\n\t\t\tSOCKET_CLOSE: {code:8, text:\"AMQJS0008I Socket closed.\"},\n\t\t\tMALFORMED_UTF: {code:9, text:\"AMQJS0009E Malformed UTF data:{0} {1} {2}.\"},\n\t\t\tUNSUPPORTED: {code:10, text:\"AMQJS0010E {0} is not supported by this browser.\"},\n\t\t\tINVALID_STATE: {code:11, text:\"AMQJS0011E Invalid state {0}.\"},\n\t\t\tINVALID_TYPE: {code:12, text:\"AMQJS0012E Invalid type {0} for {1}.\"},\n\t\t\tINVALID_ARGUMENT: {code:13, text:\"AMQJS0013E Invalid argument {0} for {1}.\"},\n\t\t\tUNSUPPORTED_OPERATION: {code:14, text:\"AMQJS0014E Unsupported operation.\"},\n\t\t\tINVALID_STORED_DATA: {code:15, text:\"AMQJS0015E Invalid data in local storage key={0} value={1}.\"},\n\t\t\tINVALID_MQTT_MESSAGE_TYPE: {code:16, text:\"AMQJS0016E Invalid MQTT message type {0}.\"},\n\t\t\tMALFORMED_UNICODE: {code:17, text:\"AMQJS0017E Malformed Unicode string:{0} {1}.\"},\n\t\t\tBUFFER_FULL: {code:18, text:\"AMQJS0018E Message buffer is full, maximum buffer size: {0}.\"},\n\t\t};\n\n\t\t/** CONNACK RC Meaning. */\n\t\tvar CONNACK_RC = {\n\t\t\t0:\"Connection Accepted\",\n\t\t\t1:\"Connection Refused: unacceptable protocol version\",\n\t\t\t2:\"Connection Refused: identifier rejected\",\n\t\t\t3:\"Connection Refused: server unavailable\",\n\t\t\t4:\"Connection Refused: bad user name or password\",\n\t\t\t5:\"Connection Refused: not authorized\"\n\t\t};\n\n\t/**\n\t * Format an error message text.\n\t * @private\n\t * @param {error} ERROR value above.\n\t * @param {substitutions} [array] substituted into the text.\n\t * @return the text with the substitutions made.\n\t */\n\t\tvar format = function(error, substitutions) {\n\t\t\tvar text = error.text;\n\t\t\tif (substitutions) {\n\t\t\t\tvar field,start;\n\t\t\t\tfor (var i=0; i 0) {\n\t\t\t\t\t\tvar part1 = text.substring(0,start);\n\t\t\t\t\t\tvar part2 = text.substring(start+field.length);\n\t\t\t\t\t\ttext = part1+substitutions[i]+part2;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn text;\n\t\t};\n\n\t\t//MQTT protocol and version 6 M Q I s d p 3\n\t\tvar MqttProtoIdentifierv3 = [0x00,0x06,0x4d,0x51,0x49,0x73,0x64,0x70,0x03];\n\t\t//MQTT proto/version for 311 4 M Q T T 4\n\t\tvar MqttProtoIdentifierv4 = [0x00,0x04,0x4d,0x51,0x54,0x54,0x04];\n\n\t\t/**\n\t * Construct an MQTT wire protocol message.\n\t * @param type MQTT packet type.\n\t * @param options optional wire message attributes.\n\t *\n\t * Optional properties\n\t *\n\t * messageIdentifier: message ID in the range [0..65535]\n\t * payloadMessage:\tApplication Message - PUBLISH only\n\t * connectStrings:\tarray of 0 or more Strings to be put into the CONNECT payload\n\t * topics:\t\t\tarray of strings (SUBSCRIBE, UNSUBSCRIBE)\n\t * requestQoS:\t\tarray of QoS values [0..2]\n\t *\n\t * \"Flag\" properties\n\t * cleanSession:\ttrue if present / false if absent (CONNECT)\n\t * willMessage: \ttrue if present / false if absent (CONNECT)\n\t * isRetained:\t\ttrue if present / false if absent (CONNECT)\n\t * userName:\t\ttrue if present / false if absent (CONNECT)\n\t * password:\t\ttrue if present / false if absent (CONNECT)\n\t * keepAliveInterval:\tinteger [0..65535] (CONNECT)\n\t *\n\t * @private\n\t * @ignore\n\t */\n\t\tvar WireMessage = function (type, options) {\n\t\t\tthis.type = type;\n\t\t\tfor (var name in options) {\n\t\t\t\tif (options.hasOwnProperty(name)) {\n\t\t\t\t\tthis[name] = options[name];\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tWireMessage.prototype.encode = function() {\n\t\t// Compute the first byte of the fixed header\n\t\t\tvar first = ((this.type & 0x0f) << 4);\n\n\t\t\t/*\n\t\t * Now calculate the length of the variable header + payload by adding up the lengths\n\t\t * of all the component parts\n\t\t */\n\n\t\t\tvar remLength = 0;\n\t\t\tvar topicStrLength = [];\n\t\t\tvar destinationNameLength = 0;\n\t\t\tvar willMessagePayloadBytes;\n\n\t\t\t// if the message contains a messageIdentifier then we need two bytes for that\n\t\t\tif (this.messageIdentifier !== undefined)\n\t\t\t\tremLength += 2;\n\n\t\t\tswitch(this.type) {\n\t\t\t// If this a Connect then we need to include 12 bytes for its header\n\t\t\tcase MESSAGE_TYPE.CONNECT:\n\t\t\t\tswitch(this.mqttVersion) {\n\t\t\t\tcase 3:\n\t\t\t\t\tremLength += MqttProtoIdentifierv3.length + 3;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 4:\n\t\t\t\t\tremLength += MqttProtoIdentifierv4.length + 3;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tremLength += UTF8Length(this.clientId) + 2;\n\t\t\t\tif (this.willMessage !== undefined) {\n\t\t\t\t\tremLength += UTF8Length(this.willMessage.destinationName) + 2;\n\t\t\t\t\t// Will message is always a string, sent as UTF-8 characters with a preceding length.\n\t\t\t\t\twillMessagePayloadBytes = this.willMessage.payloadBytes;\n\t\t\t\t\tif (!(willMessagePayloadBytes instanceof Uint8Array))\n\t\t\t\t\t\twillMessagePayloadBytes = new Uint8Array(payloadBytes);\n\t\t\t\t\tremLength += willMessagePayloadBytes.byteLength +2;\n\t\t\t\t}\n\t\t\t\tif (this.userName !== undefined)\n\t\t\t\t\tremLength += UTF8Length(this.userName) + 2;\n\t\t\t\tif (this.password !== undefined)\n\t\t\t\t\tremLength += UTF8Length(this.password) + 2;\n\t\t\t\tbreak;\n\n\t\t\t// Subscribe, Unsubscribe can both contain topic strings\n\t\t\tcase MESSAGE_TYPE.SUBSCRIBE:\n\t\t\t\tfirst |= 0x02; // Qos = 1;\n\t\t\t\tfor ( var i = 0; i < this.topics.length; i++) {\n\t\t\t\t\ttopicStrLength[i] = UTF8Length(this.topics[i]);\n\t\t\t\t\tremLength += topicStrLength[i] + 2;\n\t\t\t\t}\n\t\t\t\tremLength += this.requestedQos.length; // 1 byte for each topic's Qos\n\t\t\t\t// QoS on Subscribe only\n\t\t\t\tbreak;\n\n\t\t\tcase MESSAGE_TYPE.UNSUBSCRIBE:\n\t\t\t\tfirst |= 0x02; // Qos = 1;\n\t\t\t\tfor ( var i = 0; i < this.topics.length; i++) {\n\t\t\t\t\ttopicStrLength[i] = UTF8Length(this.topics[i]);\n\t\t\t\t\tremLength += topicStrLength[i] + 2;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase MESSAGE_TYPE.PUBREL:\n\t\t\t\tfirst |= 0x02; // Qos = 1;\n\t\t\t\tbreak;\n\n\t\t\tcase MESSAGE_TYPE.PUBLISH:\n\t\t\t\tif (this.payloadMessage.duplicate) first |= 0x08;\n\t\t\t\tfirst = first |= (this.payloadMessage.qos << 1);\n\t\t\t\tif (this.payloadMessage.retained) first |= 0x01;\n\t\t\t\tdestinationNameLength = UTF8Length(this.payloadMessage.destinationName);\n\t\t\t\tremLength += destinationNameLength + 2;\n\t\t\t\tvar payloadBytes = this.payloadMessage.payloadBytes;\n\t\t\t\tremLength += payloadBytes.byteLength;\n\t\t\t\tif (payloadBytes instanceof ArrayBuffer)\n\t\t\t\t\tpayloadBytes = new Uint8Array(payloadBytes);\n\t\t\t\telse if (!(payloadBytes instanceof Uint8Array))\n\t\t\t\t\tpayloadBytes = new Uint8Array(payloadBytes.buffer);\n\t\t\t\tbreak;\n\n\t\t\tcase MESSAGE_TYPE.DISCONNECT:\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\t// Now we can allocate a buffer for the message\n\n\t\t\tvar mbi = encodeMBI(remLength); // Convert the length to MQTT MBI format\n\t\t\tvar pos = mbi.length + 1; // Offset of start of variable header\n\t\t\tvar buffer = new ArrayBuffer(remLength + pos);\n\t\t\tvar byteStream = new Uint8Array(buffer); // view it as a sequence of bytes\n\n\t\t\t//Write the fixed header into the buffer\n\t\t\tbyteStream[0] = first;\n\t\t\tbyteStream.set(mbi,1);\n\n\t\t\t// If this is a PUBLISH then the variable header starts with a topic\n\t\t\tif (this.type == MESSAGE_TYPE.PUBLISH)\n\t\t\t\tpos = writeString(this.payloadMessage.destinationName, destinationNameLength, byteStream, pos);\n\t\t\t// If this is a CONNECT then the variable header contains the protocol name/version, flags and keepalive time\n\n\t\t\telse if (this.type == MESSAGE_TYPE.CONNECT) {\n\t\t\t\tswitch (this.mqttVersion) {\n\t\t\t\tcase 3:\n\t\t\t\t\tbyteStream.set(MqttProtoIdentifierv3, pos);\n\t\t\t\t\tpos += MqttProtoIdentifierv3.length;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 4:\n\t\t\t\t\tbyteStream.set(MqttProtoIdentifierv4, pos);\n\t\t\t\t\tpos += MqttProtoIdentifierv4.length;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tvar connectFlags = 0;\n\t\t\t\tif (this.cleanSession)\n\t\t\t\t\tconnectFlags = 0x02;\n\t\t\t\tif (this.willMessage !== undefined ) {\n\t\t\t\t\tconnectFlags |= 0x04;\n\t\t\t\t\tconnectFlags |= (this.willMessage.qos<<3);\n\t\t\t\t\tif (this.willMessage.retained) {\n\t\t\t\t\t\tconnectFlags |= 0x20;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (this.userName !== undefined)\n\t\t\t\t\tconnectFlags |= 0x80;\n\t\t\t\tif (this.password !== undefined)\n\t\t\t\t\tconnectFlags |= 0x40;\n\t\t\t\tbyteStream[pos++] = connectFlags;\n\t\t\t\tpos = writeUint16 (this.keepAliveInterval, byteStream, pos);\n\t\t\t}\n\n\t\t\t// Output the messageIdentifier - if there is one\n\t\t\tif (this.messageIdentifier !== undefined)\n\t\t\t\tpos = writeUint16 (this.messageIdentifier, byteStream, pos);\n\n\t\t\tswitch(this.type) {\n\t\t\tcase MESSAGE_TYPE.CONNECT:\n\t\t\t\tpos = writeString(this.clientId, UTF8Length(this.clientId), byteStream, pos);\n\t\t\t\tif (this.willMessage !== undefined) {\n\t\t\t\t\tpos = writeString(this.willMessage.destinationName, UTF8Length(this.willMessage.destinationName), byteStream, pos);\n\t\t\t\t\tpos = writeUint16(willMessagePayloadBytes.byteLength, byteStream, pos);\n\t\t\t\t\tbyteStream.set(willMessagePayloadBytes, pos);\n\t\t\t\t\tpos += willMessagePayloadBytes.byteLength;\n\n\t\t\t\t}\n\t\t\t\tif (this.userName !== undefined)\n\t\t\t\t\tpos = writeString(this.userName, UTF8Length(this.userName), byteStream, pos);\n\t\t\t\tif (this.password !== undefined)\n\t\t\t\t\tpos = writeString(this.password, UTF8Length(this.password), byteStream, pos);\n\t\t\t\tbreak;\n\n\t\t\tcase MESSAGE_TYPE.PUBLISH:\n\t\t\t\t// PUBLISH has a text or binary payload, if text do not add a 2 byte length field, just the UTF characters.\n\t\t\t\tbyteStream.set(payloadBytes, pos);\n\n\t\t\t\tbreak;\n\n\t\t\t\t// \t case MESSAGE_TYPE.PUBREC:\n\t\t\t\t// \t case MESSAGE_TYPE.PUBREL:\n\t\t\t\t// \t case MESSAGE_TYPE.PUBCOMP:\n\t\t\t\t// \t \tbreak;\n\n\t\t\tcase MESSAGE_TYPE.SUBSCRIBE:\n\t\t\t\t// SUBSCRIBE has a list of topic strings and request QoS\n\t\t\t\tfor (var i=0; i> 4;\n\t\t\tvar messageInfo = first &= 0x0f;\n\t\t\tpos += 1;\n\n\n\t\t\t// Decode the remaining length (MBI format)\n\n\t\t\tvar digit;\n\t\t\tvar remLength = 0;\n\t\t\tvar multiplier = 1;\n\t\t\tdo {\n\t\t\t\tif (pos == input.length) {\n\t\t\t\t\treturn [null,startingPos];\n\t\t\t\t}\n\t\t\t\tdigit = input[pos++];\n\t\t\t\tremLength += ((digit & 0x7F) * multiplier);\n\t\t\t\tmultiplier *= 128;\n\t\t\t} while ((digit & 0x80) !== 0);\n\n\t\t\tvar endPos = pos+remLength;\n\t\t\tif (endPos > input.length) {\n\t\t\t\treturn [null,startingPos];\n\t\t\t}\n\n\t\t\tvar wireMessage = new WireMessage(type);\n\t\t\tswitch(type) {\n\t\t\tcase MESSAGE_TYPE.CONNACK:\n\t\t\t\tvar connectAcknowledgeFlags = input[pos++];\n\t\t\t\tif (connectAcknowledgeFlags & 0x01)\n\t\t\t\t\twireMessage.sessionPresent = true;\n\t\t\t\twireMessage.returnCode = input[pos++];\n\t\t\t\tbreak;\n\n\t\t\tcase MESSAGE_TYPE.PUBLISH:\n\t\t\t\tvar qos = (messageInfo >> 1) & 0x03;\n\n\t\t\t\tvar len = readUint16(input, pos);\n\t\t\t\tpos += 2;\n\t\t\t\tvar topicName = parseUTF8(input, pos, len);\n\t\t\t\tpos += len;\n\t\t\t\t// If QoS 1 or 2 there will be a messageIdentifier\n\t\t\t\tif (qos > 0) {\n\t\t\t\t\twireMessage.messageIdentifier = readUint16(input, pos);\n\t\t\t\t\tpos += 2;\n\t\t\t\t}\n\t\t\t\tvar message = new PahoMQTT.Message(input.subarray(pos, endPos));\n\t\t\t\tif ((messageInfo & 0x01) == 0x01)\n\t\t\t\t\tmessage.retained = true;\n\t\t\t\tif ((messageInfo & 0x08) == 0x08)\n\t\t\t\t\tmessage.duplicate = true;\n\t\t\t\tmessage.qos = qos;\n\t\t\t\tmessage.destinationName = topicName;\n\t\t\t\twireMessage.payloadMessage = message;\n\t\t\t\tbreak;\n\n\t\t\tcase MESSAGE_TYPE.PUBACK:\n\t\t\tcase MESSAGE_TYPE.PUBREC:\n\t\t\tcase MESSAGE_TYPE.PUBREL:\n\t\t\tcase MESSAGE_TYPE.PUBCOMP:\n\t\t\tcase MESSAGE_TYPE.UNSUBACK:\n\t\t\t\twireMessage.messageIdentifier = readUint16(input, pos);\n\t\t\t\tbreak;\n\n\t\t\tcase MESSAGE_TYPE.SUBACK:\n\t\t\t\twireMessage.messageIdentifier = readUint16(input, pos);\n\t\t\t\tpos += 2;\n\t\t\t\twireMessage.returnCode = input.subarray(pos, endPos);\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\treturn [wireMessage,endPos];\n\t\t}\n\n\t\tfunction writeUint16(input, buffer, offset) {\n\t\t\tbuffer[offset++] = input >> 8; //MSB\n\t\t\tbuffer[offset++] = input % 256; //LSB\n\t\t\treturn offset;\n\t\t}\n\n\t\tfunction writeString(input, utf8Length, buffer, offset) {\n\t\t\toffset = writeUint16(utf8Length, buffer, offset);\n\t\t\tstringToUTF8(input, buffer, offset);\n\t\t\treturn offset + utf8Length;\n\t\t}\n\n\t\tfunction readUint16(buffer, offset) {\n\t\t\treturn 256*buffer[offset] + buffer[offset+1];\n\t\t}\n\n\t\t/**\n\t * Encodes an MQTT Multi-Byte Integer\n\t * @private\n\t */\n\t\tfunction encodeMBI(number) {\n\t\t\tvar output = new Array(1);\n\t\t\tvar numBytes = 0;\n\n\t\t\tdo {\n\t\t\t\tvar digit = number % 128;\n\t\t\t\tnumber = number >> 7;\n\t\t\t\tif (number > 0) {\n\t\t\t\t\tdigit |= 0x80;\n\t\t\t\t}\n\t\t\t\toutput[numBytes++] = digit;\n\t\t\t} while ( (number > 0) && (numBytes<4) );\n\n\t\t\treturn output;\n\t\t}\n\n\t\t/**\n\t * Takes a String and calculates its length in bytes when encoded in UTF8.\n\t * @private\n\t */\n\t\tfunction UTF8Length(input) {\n\t\t\tvar output = 0;\n\t\t\tfor (var i = 0; i 0x7FF)\n\t\t\t\t{\n\t\t\t\t\t// Surrogate pair means its a 4 byte character\n\t\t\t\t\tif (0xD800 <= charCode && charCode <= 0xDBFF)\n\t\t\t\t\t{\n\t\t\t\t\t\ti++;\n\t\t\t\t\t\toutput++;\n\t\t\t\t\t}\n\t\t\t\t\toutput +=3;\n\t\t\t\t}\n\t\t\t\telse if (charCode > 0x7F)\n\t\t\t\t\toutput +=2;\n\t\t\t\telse\n\t\t\t\t\toutput++;\n\t\t\t}\n\t\t\treturn output;\n\t\t}\n\n\t\t/**\n\t * Takes a String and writes it into an array as UTF8 encoded bytes.\n\t * @private\n\t */\n\t\tfunction stringToUTF8(input, output, start) {\n\t\t\tvar pos = start;\n\t\t\tfor (var i = 0; i>6 & 0x1F | 0xC0;\n\t\t\t\t\toutput[pos++] = charCode & 0x3F | 0x80;\n\t\t\t\t} else if (charCode <= 0xFFFF) {\n\t\t\t\t\toutput[pos++] = charCode>>12 & 0x0F | 0xE0;\n\t\t\t\t\toutput[pos++] = charCode>>6 & 0x3F | 0x80;\n\t\t\t\t\toutput[pos++] = charCode & 0x3F | 0x80;\n\t\t\t\t} else {\n\t\t\t\t\toutput[pos++] = charCode>>18 & 0x07 | 0xF0;\n\t\t\t\t\toutput[pos++] = charCode>>12 & 0x3F | 0x80;\n\t\t\t\t\toutput[pos++] = charCode>>6 & 0x3F | 0x80;\n\t\t\t\t\toutput[pos++] = charCode & 0x3F | 0x80;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn output;\n\t\t}\n\n\t\tfunction parseUTF8(input, offset, length) {\n\t\t\tvar output = \"\";\n\t\t\tvar utf16;\n\t\t\tvar pos = offset;\n\n\t\t\twhile (pos < offset+length)\n\t\t\t{\n\t\t\t\tvar byte1 = input[pos++];\n\t\t\t\tif (byte1 < 128)\n\t\t\t\t\tutf16 = byte1;\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tvar byte2 = input[pos++]-128;\n\t\t\t\t\tif (byte2 < 0)\n\t\t\t\t\t\tthrow new Error(format(ERROR.MALFORMED_UTF, [byte1.toString(16), byte2.toString(16),\"\"]));\n\t\t\t\t\tif (byte1 < 0xE0) // 2 byte character\n\t\t\t\t\t\tutf16 = 64*(byte1-0xC0) + byte2;\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tvar byte3 = input[pos++]-128;\n\t\t\t\t\t\tif (byte3 < 0)\n\t\t\t\t\t\t\tthrow new Error(format(ERROR.MALFORMED_UTF, [byte1.toString(16), byte2.toString(16), byte3.toString(16)]));\n\t\t\t\t\t\tif (byte1 < 0xF0) // 3 byte character\n\t\t\t\t\t\t\tutf16 = 4096*(byte1-0xE0) + 64*byte2 + byte3;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tvar byte4 = input[pos++]-128;\n\t\t\t\t\t\t\tif (byte4 < 0)\n\t\t\t\t\t\t\t\tthrow new Error(format(ERROR.MALFORMED_UTF, [byte1.toString(16), byte2.toString(16), byte3.toString(16), byte4.toString(16)]));\n\t\t\t\t\t\t\tif (byte1 < 0xF8) // 4 byte character\n\t\t\t\t\t\t\t\tutf16 = 262144*(byte1-0xF0) + 4096*byte2 + 64*byte3 + byte4;\n\t\t\t\t\t\t\telse // longer encodings are not supported\n\t\t\t\t\t\t\t\tthrow new Error(format(ERROR.MALFORMED_UTF, [byte1.toString(16), byte2.toString(16), byte3.toString(16), byte4.toString(16)]));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (utf16 > 0xFFFF) // 4 byte character - express as a surrogate pair\n\t\t\t\t{\n\t\t\t\t\tutf16 -= 0x10000;\n\t\t\t\t\toutput += String.fromCharCode(0xD800 + (utf16 >> 10)); // lead character\n\t\t\t\t\tutf16 = 0xDC00 + (utf16 & 0x3FF); // trail character\n\t\t\t\t}\n\t\t\t\toutput += String.fromCharCode(utf16);\n\t\t\t}\n\t\t\treturn output;\n\t\t}\n\n\t\t/**\n\t * Repeat keepalive requests, monitor responses.\n\t * @ignore\n\t */\n\t\tvar Pinger = function(client, keepAliveInterval) {\n\t\t\tthis._client = client;\n\t\t\tthis._keepAliveInterval = keepAliveInterval*1000;\n\t\t\tthis.isReset = false;\n\n\t\t\tvar pingReq = new WireMessage(MESSAGE_TYPE.PINGREQ).encode();\n\n\t\t\tvar doTimeout = function (pinger) {\n\t\t\t\treturn function () {\n\t\t\t\t\treturn doPing.apply(pinger);\n\t\t\t\t};\n\t\t\t};\n\n\t\t\t/** @ignore */\n\t\t\tvar doPing = function() {\n\t\t\t\tif (!this.isReset) {\n\t\t\t\t\tthis._client._trace(\"Pinger.doPing\", \"Timed out\");\n\t\t\t\t\tthis._client._disconnected( ERROR.PING_TIMEOUT.code , format(ERROR.PING_TIMEOUT));\n\t\t\t\t} else {\n\t\t\t\t\tthis.isReset = false;\n\t\t\t\t\tthis._client._trace(\"Pinger.doPing\", \"send PINGREQ\");\n\t\t\t\t\tthis._client.socket.send(pingReq);\n\t\t\t\t\tthis.timeout = setTimeout(doTimeout(this), this._keepAliveInterval);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\tthis.reset = function() {\n\t\t\t\tthis.isReset = true;\n\t\t\t\tclearTimeout(this.timeout);\n\t\t\t\tif (this._keepAliveInterval > 0)\n\t\t\t\t\tthis.timeout = setTimeout(doTimeout(this), this._keepAliveInterval);\n\t\t\t};\n\n\t\t\tthis.cancel = function() {\n\t\t\t\tclearTimeout(this.timeout);\n\t\t\t};\n\t\t};\n\n\t\t/**\n\t * Monitor request completion.\n\t * @ignore\n\t */\n\t\tvar Timeout = function(client, timeoutSeconds, action, args) {\n\t\t\tif (!timeoutSeconds)\n\t\t\t\ttimeoutSeconds = 30;\n\n\t\t\tvar doTimeout = function (action, client, args) {\n\t\t\t\treturn function () {\n\t\t\t\t\treturn action.apply(client, args);\n\t\t\t\t};\n\t\t\t};\n\t\t\tthis.timeout = setTimeout(doTimeout(action, client, args), timeoutSeconds * 1000);\n\n\t\t\tthis.cancel = function() {\n\t\t\t\tclearTimeout(this.timeout);\n\t\t\t};\n\t\t};\n\n\t/**\n\t * Internal implementation of the Websockets MQTT V3.1 client.\n\t *\n\t * @name Paho.ClientImpl @constructor\n\t * @param {String} host the DNS nameof the webSocket host.\n\t * @param {Number} port the port number for that host.\n\t * @param {String} clientId the MQ client identifier.\n\t */\n\t\tvar ClientImpl = function (uri, host, port, path, clientId) {\n\t\t// Check dependencies are satisfied in this browser.\n\t\t\tif (!(\"WebSocket\" in global && global.WebSocket !== null)) {\n\t\t\t\tthrow new Error(format(ERROR.UNSUPPORTED, [\"WebSocket\"]));\n\t\t\t}\n\t\t\tif (!(\"ArrayBuffer\" in global && global.ArrayBuffer !== null)) {\n\t\t\t\tthrow new Error(format(ERROR.UNSUPPORTED, [\"ArrayBuffer\"]));\n\t\t\t}\n\t\t\tthis._trace(\"Paho.Client\", uri, host, port, path, clientId);\n\n\t\t\tthis.host = host;\n\t\t\tthis.port = port;\n\t\t\tthis.path = path;\n\t\t\tthis.uri = uri;\n\t\t\tthis.clientId = clientId;\n\t\t\tthis._wsuri = null;\n\n\t\t\t// Local storagekeys are qualified with the following string.\n\t\t\t// The conditional inclusion of path in the key is for backward\n\t\t\t// compatibility to when the path was not configurable and assumed to\n\t\t\t// be /mqtt\n\t\t\tthis._localKey=host+\":\"+port+(path!=\"/mqtt\"?\":\"+path:\"\")+\":\"+clientId+\":\";\n\n\t\t\t// Create private instance-only message queue\n\t\t\t// Internal queue of messages to be sent, in sending order.\n\t\t\tthis._msg_queue = [];\n\t\t\tthis._buffered_msg_queue = [];\n\n\t\t\t// Messages we have sent and are expecting a response for, indexed by their respective message ids.\n\t\t\tthis._sentMessages = {};\n\n\t\t\t// Messages we have received and acknowleged and are expecting a confirm message for\n\t\t\t// indexed by their respective message ids.\n\t\t\tthis._receivedMessages = {};\n\n\t\t\t// Internal list of callbacks to be executed when messages\n\t\t\t// have been successfully sent over web socket, e.g. disconnect\n\t\t\t// when it doesn't have to wait for ACK, just message is dispatched.\n\t\t\tthis._notify_msg_sent = {};\n\n\t\t\t// Unique identifier for SEND messages, incrementing\n\t\t\t// counter as messages are sent.\n\t\t\tthis._message_identifier = 1;\n\n\t\t\t// Used to determine the transmission sequence of stored sent messages.\n\t\t\tthis._sequence = 0;\n\n\n\t\t\t// Load the local state, if any, from the saved version, only restore state relevant to this client.\n\t\t\tfor (var key in localStorage)\n\t\t\t\tif ( key.indexOf(\"Sent:\"+this._localKey) === 0 || key.indexOf(\"Received:\"+this._localKey) === 0)\n\t\t\t\t\tthis.restore(key);\n\t\t};\n\n\t\t// Messaging Client public instance members.\n\t\tClientImpl.prototype.host = null;\n\t\tClientImpl.prototype.port = null;\n\t\tClientImpl.prototype.path = null;\n\t\tClientImpl.prototype.uri = null;\n\t\tClientImpl.prototype.clientId = null;\n\n\t\t// Messaging Client private instance members.\n\t\tClientImpl.prototype.socket = null;\n\t\t/* true once we have received an acknowledgement to a CONNECT packet. */\n\t\tClientImpl.prototype.connected = false;\n\t\t/* The largest message identifier allowed, may not be larger than 2**16 but\n\t\t * if set smaller reduces the maximum number of outbound messages allowed.\n\t\t */\n\t\tClientImpl.prototype.maxMessageIdentifier = 65536;\n\t\tClientImpl.prototype.connectOptions = null;\n\t\tClientImpl.prototype.hostIndex = null;\n\t\tClientImpl.prototype.onConnected = null;\n\t\tClientImpl.prototype.onConnectionLost = null;\n\t\tClientImpl.prototype.onMessageDelivered = null;\n\t\tClientImpl.prototype.onMessageArrived = null;\n\t\tClientImpl.prototype.traceFunction = null;\n\t\tClientImpl.prototype._msg_queue = null;\n\t\tClientImpl.prototype._buffered_msg_queue = null;\n\t\tClientImpl.prototype._connectTimeout = null;\n\t\t/* The sendPinger monitors how long we allow before we send data to prove to the server that we are alive. */\n\t\tClientImpl.prototype.sendPinger = null;\n\t\t/* The receivePinger monitors how long we allow before we require evidence that the server is alive. */\n\t\tClientImpl.prototype.receivePinger = null;\n\t\tClientImpl.prototype._reconnectInterval = 1; // Reconnect Delay, starts at 1 second\n\t\tClientImpl.prototype._reconnecting = false;\n\t\tClientImpl.prototype._reconnectTimeout = null;\n\t\tClientImpl.prototype.disconnectedPublishing = false;\n\t\tClientImpl.prototype.disconnectedBufferSize = 5000;\n\n\t\tClientImpl.prototype.receiveBuffer = null;\n\n\t\tClientImpl.prototype._traceBuffer = null;\n\t\tClientImpl.prototype._MAX_TRACE_ENTRIES = 100;\n\n\t\tClientImpl.prototype.connect = function (connectOptions) {\n\t\t\tvar connectOptionsMasked = this._traceMask(connectOptions, \"password\");\n\t\t\tthis._trace(\"Client.connect\", connectOptionsMasked, this.socket, this.connected);\n\n\t\t\tif (this.connected)\n\t\t\t\tthrow new Error(format(ERROR.INVALID_STATE, [\"already connected\"]));\n\t\t\tif (this.socket)\n\t\t\t\tthrow new Error(format(ERROR.INVALID_STATE, [\"already connected\"]));\n\n\t\t\tif (this._reconnecting) {\n\t\t\t// connect() function is called while reconnect is in progress.\n\t\t\t// Terminate the auto reconnect process to use new connect options.\n\t\t\t\tthis._reconnectTimeout.cancel();\n\t\t\t\tthis._reconnectTimeout = null;\n\t\t\t\tthis._reconnecting = false;\n\t\t\t}\n\n\t\t\tthis.connectOptions = connectOptions;\n\t\t\tthis._reconnectInterval = 1;\n\t\t\tthis._reconnecting = false;\n\t\t\tif (connectOptions.uris) {\n\t\t\t\tthis.hostIndex = 0;\n\t\t\t\tthis._doConnect(connectOptions.uris[0]);\n\t\t\t} else {\n\t\t\t\tthis._doConnect(this.uri);\n\t\t\t}\n\n\t\t};\n\n\t\tClientImpl.prototype.subscribe = function (filter, subscribeOptions) {\n\t\t\tthis._trace(\"Client.subscribe\", filter, subscribeOptions);\n\n\t\t\tif (!this.connected)\n\t\t\t\tthrow new Error(format(ERROR.INVALID_STATE, [\"not connected\"]));\n\n\t\t\tvar wireMessage = new WireMessage(MESSAGE_TYPE.SUBSCRIBE);\n\t\t\twireMessage.topics=[filter];\n\t\t\tif (subscribeOptions.qos !== undefined)\n\t\t\t\twireMessage.requestedQos = [subscribeOptions.qos];\n\t\t\telse\n\t\t\t\twireMessage.requestedQos = [0];\n\n\t\t\tif (subscribeOptions.onSuccess) {\n\t\t\t\twireMessage.onSuccess = function(grantedQos) {subscribeOptions.onSuccess({invocationContext:subscribeOptions.invocationContext,grantedQos:grantedQos});};\n\t\t\t}\n\n\t\t\tif (subscribeOptions.onFailure) {\n\t\t\t\twireMessage.onFailure = function(errorCode) {subscribeOptions.onFailure({invocationContext:subscribeOptions.invocationContext,errorCode:errorCode, errorMessage:format(errorCode)});};\n\t\t\t}\n\n\t\t\tif (subscribeOptions.timeout) {\n\t\t\t\twireMessage.timeOut = new Timeout(this, subscribeOptions.timeout, subscribeOptions.onFailure,\n\t\t\t\t\t[{invocationContext:subscribeOptions.invocationContext,\n\t\t\t\t\t\terrorCode:ERROR.SUBSCRIBE_TIMEOUT.code,\n\t\t\t\t\t\terrorMessage:format(ERROR.SUBSCRIBE_TIMEOUT)}]);\n\t\t\t}\n\n\t\t\t// All subscriptions return a SUBACK.\n\t\t\tthis._requires_ack(wireMessage);\n\t\t\tthis._schedule_message(wireMessage);\n\t\t};\n\n\t\t/** @ignore */\n\t\tClientImpl.prototype.unsubscribe = function(filter, unsubscribeOptions) {\n\t\t\tthis._trace(\"Client.unsubscribe\", filter, unsubscribeOptions);\n\n\t\t\tif (!this.connected)\n\t\t\t\tthrow new Error(format(ERROR.INVALID_STATE, [\"not connected\"]));\n\n\t\t\tvar wireMessage = new WireMessage(MESSAGE_TYPE.UNSUBSCRIBE);\n\t\t\twireMessage.topics = [filter];\n\n\t\t\tif (unsubscribeOptions.onSuccess) {\n\t\t\t\twireMessage.callback = function() {unsubscribeOptions.onSuccess({invocationContext:unsubscribeOptions.invocationContext});};\n\t\t\t}\n\t\t\tif (unsubscribeOptions.timeout) {\n\t\t\t\twireMessage.timeOut = new Timeout(this, unsubscribeOptions.timeout, unsubscribeOptions.onFailure,\n\t\t\t\t\t[{invocationContext:unsubscribeOptions.invocationContext,\n\t\t\t\t\t\terrorCode:ERROR.UNSUBSCRIBE_TIMEOUT.code,\n\t\t\t\t\t\terrorMessage:format(ERROR.UNSUBSCRIBE_TIMEOUT)}]);\n\t\t\t}\n\n\t\t\t// All unsubscribes return a SUBACK.\n\t\t\tthis._requires_ack(wireMessage);\n\t\t\tthis._schedule_message(wireMessage);\n\t\t};\n\n\t\tClientImpl.prototype.send = function (message) {\n\t\t\tthis._trace(\"Client.send\", message);\n\n\t\t\tvar wireMessage = new WireMessage(MESSAGE_TYPE.PUBLISH);\n\t\t\twireMessage.payloadMessage = message;\n\n\t\t\tif (this.connected) {\n\t\t\t// Mark qos 1 & 2 message as \"ACK required\"\n\t\t\t// For qos 0 message, invoke onMessageDelivered callback if there is one.\n\t\t\t// Then schedule the message.\n\t\t\t\tif (message.qos > 0) {\n\t\t\t\t\tthis._requires_ack(wireMessage);\n\t\t\t\t} else if (this.onMessageDelivered) {\n\t\t\t\t\tthis._notify_msg_sent[wireMessage] = this.onMessageDelivered(wireMessage.payloadMessage);\n\t\t\t\t}\n\t\t\t\tthis._schedule_message(wireMessage);\n\t\t\t} else {\n\t\t\t// Currently disconnected, will not schedule this message\n\t\t\t// Check if reconnecting is in progress and disconnected publish is enabled.\n\t\t\t\tif (this._reconnecting && this.disconnectedPublishing) {\n\t\t\t\t// Check the limit which include the \"required ACK\" messages\n\t\t\t\t\tvar messageCount = Object.keys(this._sentMessages).length + this._buffered_msg_queue.length;\n\t\t\t\t\tif (messageCount > this.disconnectedBufferSize) {\n\t\t\t\t\t\tthrow new Error(format(ERROR.BUFFER_FULL, [this.disconnectedBufferSize]));\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (message.qos > 0) {\n\t\t\t\t\t\t// Mark this message as \"ACK required\"\n\t\t\t\t\t\t\tthis._requires_ack(wireMessage);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\twireMessage.sequence = ++this._sequence;\n\t\t\t\t\t\t\t// Add messages in fifo order to array, by adding to start\n\t\t\t\t\t\t\tthis._buffered_msg_queue.unshift(wireMessage);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(format(ERROR.INVALID_STATE, [\"not connected\"]));\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\tClientImpl.prototype.disconnect = function () {\n\t\t\tthis._trace(\"Client.disconnect\");\n\n\t\t\tif (this._reconnecting) {\n\t\t\t// disconnect() function is called while reconnect is in progress.\n\t\t\t// Terminate the auto reconnect process.\n\t\t\t\tthis._reconnectTimeout.cancel();\n\t\t\t\tthis._reconnectTimeout = null;\n\t\t\t\tthis._reconnecting = false;\n\t\t\t}\n\n\t\t\tif (!this.socket)\n\t\t\t\tthrow new Error(format(ERROR.INVALID_STATE, [\"not connecting or connected\"]));\n\n\t\t\tvar wireMessage = new WireMessage(MESSAGE_TYPE.DISCONNECT);\n\n\t\t\t// Run the disconnected call back as soon as the message has been sent,\n\t\t\t// in case of a failure later on in the disconnect processing.\n\t\t\t// as a consequence, the _disconected call back may be run several times.\n\t\t\tthis._notify_msg_sent[wireMessage] = scope(this._disconnected, this);\n\n\t\t\tthis._schedule_message(wireMessage);\n\t\t};\n\n\t\tClientImpl.prototype.getTraceLog = function () {\n\t\t\tif ( this._traceBuffer !== null ) {\n\t\t\t\tthis._trace(\"Client.getTraceLog\", new Date());\n\t\t\t\tthis._trace(\"Client.getTraceLog in flight messages\", this._sentMessages.length);\n\t\t\t\tfor (var key in this._sentMessages)\n\t\t\t\t\tthis._trace(\"_sentMessages \",key, this._sentMessages[key]);\n\t\t\t\tfor (var key in this._receivedMessages)\n\t\t\t\t\tthis._trace(\"_receivedMessages \",key, this._receivedMessages[key]);\n\n\t\t\t\treturn this._traceBuffer;\n\t\t\t}\n\t\t};\n\n\t\tClientImpl.prototype.startTrace = function () {\n\t\t\tif ( this._traceBuffer === null ) {\n\t\t\t\tthis._traceBuffer = [];\n\t\t\t}\n\t\t\tthis._trace(\"Client.startTrace\", new Date(), version);\n\t\t};\n\n\t\tClientImpl.prototype.stopTrace = function () {\n\t\t\tdelete this._traceBuffer;\n\t\t};\n\n\t\tClientImpl.prototype._doConnect = function (wsurl) {\n\t\t// When the socket is open, this client will send the CONNECT WireMessage using the saved parameters.\n\t\t\tif (this.connectOptions.useSSL) {\n\t\t\t\tvar uriParts = wsurl.split(\":\");\n\t\t\t\turiParts[0] = \"wss\";\n\t\t\t\twsurl = uriParts.join(\":\");\n\t\t\t}\n\t\t\tthis._wsuri = wsurl;\n\t\t\tthis.connected = false;\n\n\n\n\t\t\tif (this.connectOptions.mqttVersion < 4) {\n\t\t\t\tthis.socket = new WebSocket(wsurl, [\"mqttv3.1\"]);\n\t\t\t} else {\n\t\t\t\tthis.socket = new WebSocket(wsurl, [\"mqtt\"]);\n\t\t\t}\n\t\t\tthis.socket.binaryType = \"arraybuffer\";\n\t\t\tthis.socket.onopen = scope(this._on_socket_open, this);\n\t\t\tthis.socket.onmessage = scope(this._on_socket_message, this);\n\t\t\tthis.socket.onerror = scope(this._on_socket_error, this);\n\t\t\tthis.socket.onclose = scope(this._on_socket_close, this);\n\n\t\t\tthis.sendPinger = new Pinger(this, this.connectOptions.keepAliveInterval);\n\t\t\tthis.receivePinger = new Pinger(this, this.connectOptions.keepAliveInterval);\n\t\t\tif (this._connectTimeout) {\n\t\t\t\tthis._connectTimeout.cancel();\n\t\t\t\tthis._connectTimeout = null;\n\t\t\t}\n\t\t\tthis._connectTimeout = new Timeout(this, this.connectOptions.timeout, this._disconnected, [ERROR.CONNECT_TIMEOUT.code, format(ERROR.CONNECT_TIMEOUT)]);\n\t\t};\n\n\n\t\t// Schedule a new message to be sent over the WebSockets\n\t\t// connection. CONNECT messages cause WebSocket connection\n\t\t// to be started. All other messages are queued internally\n\t\t// until this has happened. When WS connection starts, process\n\t\t// all outstanding messages.\n\t\tClientImpl.prototype._schedule_message = function (message) {\n\t\t\t// Add messages in fifo order to array, by adding to start\n\t\t\tthis._msg_queue.unshift(message);\n\t\t\t// Process outstanding messages in the queue if we have an open socket, and have received CONNACK.\n\t\t\tif (this.connected) {\n\t\t\t\tthis._process_queue();\n\t\t\t}\n\t\t};\n\n\t\tClientImpl.prototype.store = function(prefix, wireMessage) {\n\t\t\tvar storedMessage = {type:wireMessage.type, messageIdentifier:wireMessage.messageIdentifier, version:1};\n\n\t\t\tswitch(wireMessage.type) {\n\t\t\tcase MESSAGE_TYPE.PUBLISH:\n\t\t\t\tif(wireMessage.pubRecReceived)\n\t\t\t\t\tstoredMessage.pubRecReceived = true;\n\n\t\t\t\t// Convert the payload to a hex string.\n\t\t\t\tstoredMessage.payloadMessage = {};\n\t\t\t\tvar hex = \"\";\n\t\t\t\tvar messageBytes = wireMessage.payloadMessage.payloadBytes;\n\t\t\t\tfor (var i=0; i= 2) {\n\t\t\t\t\tvar x = parseInt(hex.substring(0, 2), 16);\n\t\t\t\t\thex = hex.substring(2, hex.length);\n\t\t\t\t\tbyteStream[i++] = x;\n\t\t\t\t}\n\t\t\t\tvar payloadMessage = new PahoMQTT.Message(byteStream);\n\t\t\t\tpayloadMessage.qos = storedMessage.payloadMessage.qos;\n\t\t\t\tpayloadMessage.destinationName = storedMessage.payloadMessage.destinationName;\n\t\t\t\tif (storedMessage.payloadMessage.duplicate)\n\t\t\t\t\tpayloadMessage.duplicate = true;\n\t\t\t\tif (storedMessage.payloadMessage.retained)\n\t\t\t\t\tpayloadMessage.retained = true;\n\t\t\t\twireMessage.payloadMessage = payloadMessage;\n\n\t\t\t\tbreak;\n\n\t\t\tdefault:\n\t\t\t\tthrow Error(format(ERROR.INVALID_STORED_DATA, [key, value]));\n\t\t\t}\n\n\t\t\tif (key.indexOf(\"Sent:\"+this._localKey) === 0) {\n\t\t\t\twireMessage.payloadMessage.duplicate = true;\n\t\t\t\tthis._sentMessages[wireMessage.messageIdentifier] = wireMessage;\n\t\t\t} else if (key.indexOf(\"Received:\"+this._localKey) === 0) {\n\t\t\t\tthis._receivedMessages[wireMessage.messageIdentifier] = wireMessage;\n\t\t\t}\n\t\t};\n\n\t\tClientImpl.prototype._process_queue = function () {\n\t\t\tvar message = null;\n\n\t\t\t// Send all queued messages down socket connection\n\t\t\twhile ((message = this._msg_queue.pop())) {\n\t\t\t\tthis._socket_send(message);\n\t\t\t\t// Notify listeners that message was successfully sent\n\t\t\t\tif (this._notify_msg_sent[message]) {\n\t\t\t\t\tthis._notify_msg_sent[message]();\n\t\t\t\t\tdelete this._notify_msg_sent[message];\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t * Expect an ACK response for this message. Add message to the set of in progress\n\t * messages and set an unused identifier in this message.\n\t * @ignore\n\t */\n\t\tClientImpl.prototype._requires_ack = function (wireMessage) {\n\t\t\tvar messageCount = Object.keys(this._sentMessages).length;\n\t\t\tif (messageCount > this.maxMessageIdentifier)\n\t\t\t\tthrow Error (\"Too many messages:\"+messageCount);\n\n\t\t\twhile(this._sentMessages[this._message_identifier] !== undefined) {\n\t\t\t\tthis._message_identifier++;\n\t\t\t}\n\t\t\twireMessage.messageIdentifier = this._message_identifier;\n\t\t\tthis._sentMessages[wireMessage.messageIdentifier] = wireMessage;\n\t\t\tif (wireMessage.type === MESSAGE_TYPE.PUBLISH) {\n\t\t\t\tthis.store(\"Sent:\", wireMessage);\n\t\t\t}\n\t\t\tif (this._message_identifier === this.maxMessageIdentifier) {\n\t\t\t\tthis._message_identifier = 1;\n\t\t\t}\n\t\t};\n\n\t\t/**\n\t * Called when the underlying websocket has been opened.\n\t * @ignore\n\t */\n\t\tClientImpl.prototype._on_socket_open = function () {\n\t\t// Create the CONNECT message object.\n\t\t\tvar wireMessage = new WireMessage(MESSAGE_TYPE.CONNECT, this.connectOptions);\n\t\t\twireMessage.clientId = this.clientId;\n\t\t\tthis._socket_send(wireMessage);\n\t\t};\n\n\t\t/**\n\t * Called when the underlying websocket has received a complete packet.\n\t * @ignore\n\t */\n\t\tClientImpl.prototype._on_socket_message = function (event) {\n\t\t\tthis._trace(\"Client._on_socket_message\", event.data);\n\t\t\tvar messages = this._deframeMessages(event.data);\n\t\t\tfor (var i = 0; i < messages.length; i+=1) {\n\t\t\t\tthis._handleMessage(messages[i]);\n\t\t\t}\n\t\t};\n\n\t\tClientImpl.prototype._deframeMessages = function(data) {\n\t\t\tvar byteArray = new Uint8Array(data);\n\t\t\tvar messages = [];\n\t\t\tif (this.receiveBuffer) {\n\t\t\t\tvar newData = new Uint8Array(this.receiveBuffer.length+byteArray.length);\n\t\t\t\tnewData.set(this.receiveBuffer);\n\t\t\t\tnewData.set(byteArray,this.receiveBuffer.length);\n\t\t\t\tbyteArray = newData;\n\t\t\t\tdelete this.receiveBuffer;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tvar offset = 0;\n\t\t\t\twhile(offset < byteArray.length) {\n\t\t\t\t\tvar result = decodeMessage(byteArray,offset);\n\t\t\t\t\tvar wireMessage = result[0];\n\t\t\t\t\toffset = result[1];\n\t\t\t\t\tif (wireMessage !== null) {\n\t\t\t\t\t\tmessages.push(wireMessage);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (offset < byteArray.length) {\n\t\t\t\t\tthis.receiveBuffer = byteArray.subarray(offset);\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tvar errorStack = ((error.hasOwnProperty(\"stack\") == \"undefined\") ? error.stack.toString() : \"No Error Stack Available\");\n\t\t\t\tthis._disconnected(ERROR.INTERNAL_ERROR.code , format(ERROR.INTERNAL_ERROR, [error.message,errorStack]));\n\t\t\t\treturn;\n\t\t\t}\n\t\t\treturn messages;\n\t\t};\n\n\t\tClientImpl.prototype._handleMessage = function(wireMessage) {\n\n\t\t\tthis._trace(\"Client._handleMessage\", wireMessage);\n\n\t\t\ttry {\n\t\t\t\tswitch(wireMessage.type) {\n\t\t\t\tcase MESSAGE_TYPE.CONNACK:\n\t\t\t\t\tthis._connectTimeout.cancel();\n\t\t\t\t\tif (this._reconnectTimeout)\n\t\t\t\t\t\tthis._reconnectTimeout.cancel();\n\n\t\t\t\t\t// If we have started using clean session then clear up the local state.\n\t\t\t\t\tif (this.connectOptions.cleanSession) {\n\t\t\t\t\t\tfor (var key in this._sentMessages) {\n\t\t\t\t\t\t\tvar sentMessage = this._sentMessages[key];\n\t\t\t\t\t\t\tlocalStorage.removeItem(\"Sent:\"+this._localKey+sentMessage.messageIdentifier);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis._sentMessages = {};\n\n\t\t\t\t\t\tfor (var key in this._receivedMessages) {\n\t\t\t\t\t\t\tvar receivedMessage = this._receivedMessages[key];\n\t\t\t\t\t\t\tlocalStorage.removeItem(\"Received:\"+this._localKey+receivedMessage.messageIdentifier);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis._receivedMessages = {};\n\t\t\t\t\t}\n\t\t\t\t\t// Client connected and ready for business.\n\t\t\t\t\tif (wireMessage.returnCode === 0) {\n\n\t\t\t\t\t\tthis.connected = true;\n\t\t\t\t\t\t// Jump to the end of the list of uris and stop looking for a good host.\n\n\t\t\t\t\t\tif (this.connectOptions.uris)\n\t\t\t\t\t\t\tthis.hostIndex = this.connectOptions.uris.length;\n\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis._disconnected(ERROR.CONNACK_RETURNCODE.code , format(ERROR.CONNACK_RETURNCODE, [wireMessage.returnCode, CONNACK_RC[wireMessage.returnCode]]));\n\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\n\t\t\t\t\t// Resend messages.\n\t\t\t\t\tvar sequencedMessages = [];\n\t\t\t\t\tfor (var msgId in this._sentMessages) {\n\t\t\t\t\t\tif (this._sentMessages.hasOwnProperty(msgId))\n\t\t\t\t\t\t\tsequencedMessages.push(this._sentMessages[msgId]);\n\t\t\t\t\t}\n\n\t\t\t\t\t// Also schedule qos 0 buffered messages if any\n\t\t\t\t\tif (this._buffered_msg_queue.length > 0) {\n\t\t\t\t\t\tvar msg = null;\n\t\t\t\t\t\twhile ((msg = this._buffered_msg_queue.pop())) {\n\t\t\t\t\t\t\tsequencedMessages.push(msg);\n\t\t\t\t\t\t\tif (this.onMessageDelivered)\n\t\t\t\t\t\t\t\tthis._notify_msg_sent[msg] = this.onMessageDelivered(msg.payloadMessage);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t// Sort sentMessages into the original sent order.\n\t\t\t\t\tvar sequencedMessages = sequencedMessages.sort(function(a,b) {return a.sequence - b.sequence;} );\n\t\t\t\t\tfor (var i=0, len=sequencedMessages.length; i\n\t * Most applications will create just one Client object and then call its connect() method,\n\t * however applications can create more than one Client object if they wish.\n\t * In this case the combination of host, port and clientId attributes must be different for each Client object.\n\t *

\n\t * The send, subscribe and unsubscribe methods are implemented as asynchronous JavaScript methods\n\t * (even though the underlying protocol exchange might be synchronous in nature).\n\t * This means they signal their completion by calling back to the application,\n\t * via Success or Failure callback functions provided by the application on the method in question.\n\t * Such callbacks are called at most once per method invocation and do not persist beyond the lifetime\n\t * of the script that made the invocation.\n\t *

\n\t * In contrast there are some callback functions, most notably onMessageArrived,\n\t * that are defined on the {@link Paho.Client} object.\n\t * These may get called multiple times, and aren't directly related to specific method invocations made by the client.\n\t *\n\t * @name Paho.Client\n\t *\n\t * @constructor\n\t *\n\t * @param {string} host - the address of the messaging server, as a fully qualified WebSocket URI, as a DNS name or dotted decimal IP address.\n\t * @param {number} port - the port number to connect to - only required if host is not a URI\n\t * @param {string} path - the path on the host to connect to - only used if host is not a URI. Default: '/mqtt'.\n\t * @param {string} clientId - the Messaging client identifier, between 1 and 23 characters in length.\n\t *\n\t * @property {string} host - read only the server's DNS hostname or dotted decimal IP address.\n\t * @property {number} port - read only the server's port.\n\t * @property {string} path - read only the server's path.\n\t * @property {string} clientId - read only used when connecting to the server.\n\t * @property {function} onConnectionLost - called when a connection has been lost.\n\t * after a connect() method has succeeded.\n\t * Establish the call back used when a connection has been lost. The connection may be\n\t * lost because the client initiates a disconnect or because the server or network\n\t * cause the client to be disconnected. The disconnect call back may be called without\n\t * the connectionComplete call back being invoked if, for example the client fails to\n\t * connect.\n\t * A single response object parameter is passed to the onConnectionLost callback containing the following fields:\n\t *

    \n\t *
  1. errorCode\n\t *
  2. errorMessage\n\t *
\n\t * @property {function} onMessageDelivered - called when a message has been delivered.\n\t * All processing that this Client will ever do has been completed. So, for example,\n\t * in the case of a Qos=2 message sent by this client, the PubComp flow has been received from the server\n\t * and the message has been removed from persistent storage before this callback is invoked.\n\t * Parameters passed to the onMessageDelivered callback are:\n\t *
    \n\t *
  1. {@link Paho.Message} that was delivered.\n\t *
\n\t * @property {function} onMessageArrived - called when a message has arrived in this Paho.client.\n\t * Parameters passed to the onMessageArrived callback are:\n\t *
    \n\t *
  1. {@link Paho.Message} that has arrived.\n\t *
\n\t * @property {function} onConnected - called when a connection is successfully made to the server.\n\t * after a connect() method.\n\t * Parameters passed to the onConnected callback are:\n\t *
    \n\t *
  1. reconnect (boolean) - If true, the connection was the result of a reconnect.
  2. \n\t *
  3. URI (string) - The URI used to connect to the server.
  4. \n\t *
\n\t * @property {boolean} disconnectedPublishing - if set, will enable disconnected publishing in\n\t * in the event that the connection to the server is lost.\n\t * @property {number} disconnectedBufferSize - Used to set the maximum number of messages that the disconnected\n\t * buffer will hold before rejecting new messages. Default size: 5000 messages\n\t * @property {function} trace - called whenever trace is called. TODO\n\t */\n\t\tvar Client = function (host, port, path, clientId) {\n\n\t\t\tvar uri;\n\n\t\t\tif (typeof host !== \"string\")\n\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof host, \"host\"]));\n\n\t\t\tif (arguments.length == 2) {\n\t\t\t// host: must be full ws:// uri\n\t\t\t// port: clientId\n\t\t\t\tclientId = port;\n\t\t\t\turi = host;\n\t\t\t\tvar match = uri.match(/^(wss?):\\/\\/((\\[(.+)\\])|([^\\/]+?))(:(\\d+))?(\\/.*)$/);\n\t\t\t\tif (match) {\n\t\t\t\t\thost = match[4]||match[2];\n\t\t\t\t\tport = parseInt(match[7]);\n\t\t\t\t\tpath = match[8];\n\t\t\t\t} else {\n\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT,[host,\"host\"]));\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (arguments.length == 3) {\n\t\t\t\t\tclientId = path;\n\t\t\t\t\tpath = \"/mqtt\";\n\t\t\t\t}\n\t\t\t\tif (typeof port !== \"number\" || port < 0)\n\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof port, \"port\"]));\n\t\t\t\tif (typeof path !== \"string\")\n\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof path, \"path\"]));\n\n\t\t\t\tvar ipv6AddSBracket = (host.indexOf(\":\") !== -1 && host.slice(0,1) !== \"[\" && host.slice(-1) !== \"]\");\n\t\t\t\turi = \"ws://\"+(ipv6AddSBracket?\"[\"+host+\"]\":host)+\":\"+port+path;\n\t\t\t}\n\n\t\t\tvar clientIdLength = 0;\n\t\t\tfor (var i = 0; i 65535)\n\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT, [clientId, \"clientId\"]));\n\n\t\t\tvar client = new ClientImpl(uri, host, port, path, clientId);\n\n\t\t\t//Public Properties\n\t\t\tObject.defineProperties(this,{\n\t\t\t\t\"host\":{\n\t\t\t\t\tget: function() { return host; },\n\t\t\t\t\tset: function() { throw new Error(format(ERROR.UNSUPPORTED_OPERATION)); }\n\t\t\t\t},\n\t\t\t\t\"port\":{\n\t\t\t\t\tget: function() { return port; },\n\t\t\t\t\tset: function() { throw new Error(format(ERROR.UNSUPPORTED_OPERATION)); }\n\t\t\t\t},\n\t\t\t\t\"path\":{\n\t\t\t\t\tget: function() { return path; },\n\t\t\t\t\tset: function() { throw new Error(format(ERROR.UNSUPPORTED_OPERATION)); }\n\t\t\t\t},\n\t\t\t\t\"uri\":{\n\t\t\t\t\tget: function() { return uri; },\n\t\t\t\t\tset: function() { throw new Error(format(ERROR.UNSUPPORTED_OPERATION)); }\n\t\t\t\t},\n\t\t\t\t\"clientId\":{\n\t\t\t\t\tget: function() { return client.clientId; },\n\t\t\t\t\tset: function() { throw new Error(format(ERROR.UNSUPPORTED_OPERATION)); }\n\t\t\t\t},\n\t\t\t\t\"onConnected\":{\n\t\t\t\t\tget: function() { return client.onConnected; },\n\t\t\t\t\tset: function(newOnConnected) {\n\t\t\t\t\t\tif (typeof newOnConnected === \"function\")\n\t\t\t\t\t\t\tclient.onConnected = newOnConnected;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof newOnConnected, \"onConnected\"]));\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"disconnectedPublishing\":{\n\t\t\t\t\tget: function() { return client.disconnectedPublishing; },\n\t\t\t\t\tset: function(newDisconnectedPublishing) {\n\t\t\t\t\t\tclient.disconnectedPublishing = newDisconnectedPublishing;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"disconnectedBufferSize\":{\n\t\t\t\t\tget: function() { return client.disconnectedBufferSize; },\n\t\t\t\t\tset: function(newDisconnectedBufferSize) {\n\t\t\t\t\t\tclient.disconnectedBufferSize = newDisconnectedBufferSize;\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"onConnectionLost\":{\n\t\t\t\t\tget: function() { return client.onConnectionLost; },\n\t\t\t\t\tset: function(newOnConnectionLost) {\n\t\t\t\t\t\tif (typeof newOnConnectionLost === \"function\")\n\t\t\t\t\t\t\tclient.onConnectionLost = newOnConnectionLost;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof newOnConnectionLost, \"onConnectionLost\"]));\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"onMessageDelivered\":{\n\t\t\t\t\tget: function() { return client.onMessageDelivered; },\n\t\t\t\t\tset: function(newOnMessageDelivered) {\n\t\t\t\t\t\tif (typeof newOnMessageDelivered === \"function\")\n\t\t\t\t\t\t\tclient.onMessageDelivered = newOnMessageDelivered;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof newOnMessageDelivered, \"onMessageDelivered\"]));\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"onMessageArrived\":{\n\t\t\t\t\tget: function() { return client.onMessageArrived; },\n\t\t\t\t\tset: function(newOnMessageArrived) {\n\t\t\t\t\t\tif (typeof newOnMessageArrived === \"function\")\n\t\t\t\t\t\t\tclient.onMessageArrived = newOnMessageArrived;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof newOnMessageArrived, \"onMessageArrived\"]));\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"trace\":{\n\t\t\t\t\tget: function() { return client.traceFunction; },\n\t\t\t\t\tset: function(trace) {\n\t\t\t\t\t\tif(typeof trace === \"function\"){\n\t\t\t\t\t\t\tclient.traceFunction = trace;\n\t\t\t\t\t\t}else{\n\t\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof trace, \"onTrace\"]));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t});\n\n\t\t\t/**\n\t\t * Connect this Messaging client to its server.\n\t\t *\n\t\t * @name Paho.Client#connect\n\t\t * @function\n\t\t * @param {object} connectOptions - Attributes used with the connection.\n\t\t * @param {number} connectOptions.timeout - If the connect has not succeeded within this\n\t\t * number of seconds, it is deemed to have failed.\n\t\t * The default is 30 seconds.\n\t\t * @param {string} connectOptions.userName - Authentication username for this connection.\n\t\t * @param {string} connectOptions.password - Authentication password for this connection.\n\t\t * @param {Paho.Message} connectOptions.willMessage - sent by the server when the client\n\t\t * disconnects abnormally.\n\t\t * @param {number} connectOptions.keepAliveInterval - the server disconnects this client if\n\t\t * there is no activity for this number of seconds.\n\t\t * The default value of 60 seconds is assumed if not set.\n\t\t * @param {boolean} connectOptions.cleanSession - if true(default) the client and server\n\t\t * persistent state is deleted on successful connect.\n\t\t * @param {boolean} connectOptions.useSSL - if present and true, use an SSL Websocket connection.\n\t\t * @param {object} connectOptions.invocationContext - passed to the onSuccess callback or onFailure callback.\n\t\t * @param {function} connectOptions.onSuccess - called when the connect acknowledgement\n\t\t * has been received from the server.\n\t\t * A single response object parameter is passed to the onSuccess callback containing the following fields:\n\t\t *
    \n\t\t *
  1. invocationContext as passed in to the onSuccess method in the connectOptions.\n\t\t *
\n\t * @param {function} connectOptions.onFailure - called when the connect request has failed or timed out.\n\t\t * A single response object parameter is passed to the onFailure callback containing the following fields:\n\t\t *
    \n\t\t *
  1. invocationContext as passed in to the onFailure method in the connectOptions.\n\t\t *
  2. errorCode a number indicating the nature of the error.\n\t\t *
  3. errorMessage text describing the error.\n\t\t *
\n\t * @param {array} connectOptions.hosts - If present this contains either a set of hostnames or fully qualified\n\t\t * WebSocket URIs (ws://iot.eclipse.org:80/ws), that are tried in order in place\n\t\t * of the host and port paramater on the construtor. The hosts are tried one at at time in order until\n\t\t * one of then succeeds.\n\t * @param {array} connectOptions.ports - If present the set of ports matching the hosts. If hosts contains URIs, this property\n\t\t * is not used.\n\t * @param {boolean} connectOptions.reconnect - Sets whether the client will automatically attempt to reconnect\n\t * to the server if the connection is lost.\n\t *
    \n\t *
  • If set to false, the client will not attempt to automatically reconnect to the server in the event that the\n\t * connection is lost.
  • \n\t *
  • If set to true, in the event that the connection is lost, the client will attempt to reconnect to the server.\n\t * It will initially wait 1 second before it attempts to reconnect, for every failed reconnect attempt, the delay\n\t * will double until it is at 2 minutes at which point the delay will stay at 2 minutes.
  • \n\t *
\n\t * @param {number} connectOptions.mqttVersion - The version of MQTT to use to connect to the MQTT Broker.\n\t *
    \n\t *
  • 3 - MQTT V3.1
  • \n\t *
  • 4 - MQTT V3.1.1
  • \n\t *
\n\t * @param {boolean} connectOptions.mqttVersionExplicit - If set to true, will force the connection to use the\n\t * selected MQTT Version or will fail to connect.\n\t * @param {array} connectOptions.uris - If present, should contain a list of fully qualified WebSocket uris\n\t * (e.g. ws://iot.eclipse.org:80/ws), that are tried in order in place of the host and port parameter of the construtor.\n\t * The uris are tried one at a time in order until one of them succeeds. Do not use this in conjunction with hosts as\n\t * the hosts array will be converted to uris and will overwrite this property.\n\t\t * @throws {InvalidState} If the client is not in disconnected state. The client must have received connectionLost\n\t\t * or disconnected before calling connect for a second or subsequent time.\n\t\t */\n\t\t\tthis.connect = function (connectOptions) {\n\t\t\t\tconnectOptions = connectOptions || {} ;\n\t\t\t\tvalidate(connectOptions, {timeout:\"number\",\n\t\t\t\t\tuserName:\"string\",\n\t\t\t\t\tpassword:\"string\",\n\t\t\t\t\twillMessage:\"object\",\n\t\t\t\t\tkeepAliveInterval:\"number\",\n\t\t\t\t\tcleanSession:\"boolean\",\n\t\t\t\t\tuseSSL:\"boolean\",\n\t\t\t\t\tinvocationContext:\"object\",\n\t\t\t\t\tonSuccess:\"function\",\n\t\t\t\t\tonFailure:\"function\",\n\t\t\t\t\thosts:\"object\",\n\t\t\t\t\tports:\"object\",\n\t\t\t\t\treconnect:\"boolean\",\n\t\t\t\t\tmqttVersion:\"number\",\n\t\t\t\t\tmqttVersionExplicit:\"boolean\",\n\t\t\t\t\turis: \"object\"});\n\n\t\t\t\t// If no keep alive interval is set, assume 60 seconds.\n\t\t\t\tif (connectOptions.keepAliveInterval === undefined)\n\t\t\t\t\tconnectOptions.keepAliveInterval = 60;\n\n\t\t\t\tif (connectOptions.mqttVersion > 4 || connectOptions.mqttVersion < 3) {\n\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT, [connectOptions.mqttVersion, \"connectOptions.mqttVersion\"]));\n\t\t\t\t}\n\n\t\t\t\tif (connectOptions.mqttVersion === undefined) {\n\t\t\t\t\tconnectOptions.mqttVersionExplicit = false;\n\t\t\t\t\tconnectOptions.mqttVersion = 4;\n\t\t\t\t} else {\n\t\t\t\t\tconnectOptions.mqttVersionExplicit = true;\n\t\t\t\t}\n\n\t\t\t\t//Check that if password is set, so is username\n\t\t\t\tif (connectOptions.password !== undefined && connectOptions.userName === undefined)\n\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT, [connectOptions.password, \"connectOptions.password\"]));\n\n\t\t\t\tif (connectOptions.willMessage) {\n\t\t\t\t\tif (!(connectOptions.willMessage instanceof Message))\n\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [connectOptions.willMessage, \"connectOptions.willMessage\"]));\n\t\t\t\t\t// The will message must have a payload that can be represented as a string.\n\t\t\t\t\t// Cause the willMessage to throw an exception if this is not the case.\n\t\t\t\t\tconnectOptions.willMessage.stringPayload = null;\n\n\t\t\t\t\tif (typeof connectOptions.willMessage.destinationName === \"undefined\")\n\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_TYPE, [typeof connectOptions.willMessage.destinationName, \"connectOptions.willMessage.destinationName\"]));\n\t\t\t\t}\n\t\t\t\tif (typeof connectOptions.cleanSession === \"undefined\")\n\t\t\t\t\tconnectOptions.cleanSession = true;\n\t\t\t\tif (connectOptions.hosts) {\n\n\t\t\t\t\tif (!(connectOptions.hosts instanceof Array) )\n\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT, [connectOptions.hosts, \"connectOptions.hosts\"]));\n\t\t\t\t\tif (connectOptions.hosts.length <1 )\n\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT, [connectOptions.hosts, \"connectOptions.hosts\"]));\n\n\t\t\t\t\tvar usingURIs = false;\n\t\t\t\t\tfor (var i = 0; i\n\t\t * @param {object} subscribeOptions - used to control the subscription\n\t\t *\n\t\t * @param {number} subscribeOptions.qos - the maximum qos of any publications sent\n\t\t * as a result of making this subscription.\n\t\t * @param {object} subscribeOptions.invocationContext - passed to the onSuccess callback\n\t\t * or onFailure callback.\n\t\t * @param {function} subscribeOptions.onSuccess - called when the subscribe acknowledgement\n\t\t * has been received from the server.\n\t\t * A single response object parameter is passed to the onSuccess callback containing the following fields:\n\t\t *
    \n\t\t *
  1. invocationContext if set in the subscribeOptions.\n\t\t *
\n\t\t * @param {function} subscribeOptions.onFailure - called when the subscribe request has failed or timed out.\n\t\t * A single response object parameter is passed to the onFailure callback containing the following fields:\n\t\t *
    \n\t\t *
  1. invocationContext - if set in the subscribeOptions.\n\t\t *
  2. errorCode - a number indicating the nature of the error.\n\t\t *
  3. errorMessage - text describing the error.\n\t\t *
\n\t\t * @param {number} subscribeOptions.timeout - which, if present, determines the number of\n\t\t * seconds after which the onFailure calback is called.\n\t\t * The presence of a timeout does not prevent the onSuccess\n\t\t * callback from being called when the subscribe completes.\n\t\t * @throws {InvalidState} if the client is not in connected state.\n\t\t */\n\t\t\tthis.subscribe = function (filter, subscribeOptions) {\n\t\t\t\tif (typeof filter !== \"string\")\n\t\t\t\t\tthrow new Error(\"Invalid argument:\"+filter);\n\t\t\t\tsubscribeOptions = subscribeOptions || {} ;\n\t\t\t\tvalidate(subscribeOptions, {qos:\"number\",\n\t\t\t\t\tinvocationContext:\"object\",\n\t\t\t\t\tonSuccess:\"function\",\n\t\t\t\t\tonFailure:\"function\",\n\t\t\t\t\ttimeout:\"number\"\n\t\t\t\t});\n\t\t\t\tif (subscribeOptions.timeout && !subscribeOptions.onFailure)\n\t\t\t\t\tthrow new Error(\"subscribeOptions.timeout specified with no onFailure callback.\");\n\t\t\t\tif (typeof subscribeOptions.qos !== \"undefined\" && !(subscribeOptions.qos === 0 || subscribeOptions.qos === 1 || subscribeOptions.qos === 2 ))\n\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT, [subscribeOptions.qos, \"subscribeOptions.qos\"]));\n\t\t\t\tclient.subscribe(filter, subscribeOptions);\n\t\t\t};\n\n\t\t\t/**\n\t\t * Unsubscribe for messages, stop receiving messages sent to destinations described by the filter.\n\t\t *\n\t\t * @name Paho.Client#unsubscribe\n\t\t * @function\n\t\t * @param {string} filter - describing the destinations to receive messages from.\n\t\t * @param {object} unsubscribeOptions - used to control the subscription\n\t\t * @param {object} unsubscribeOptions.invocationContext - passed to the onSuccess callback\n\t\t\t\t\t\t\t\t\t\t\t or onFailure callback.\n\t\t * @param {function} unsubscribeOptions.onSuccess - called when the unsubscribe acknowledgement has been received from the server.\n\t\t * A single response object parameter is passed to the\n\t\t * onSuccess callback containing the following fields:\n\t\t *
    \n\t\t *
  1. invocationContext - if set in the unsubscribeOptions.\n\t\t *
\n\t\t * @param {function} unsubscribeOptions.onFailure called when the unsubscribe request has failed or timed out.\n\t\t * A single response object parameter is passed to the onFailure callback containing the following fields:\n\t\t *
    \n\t\t *
  1. invocationContext - if set in the unsubscribeOptions.\n\t\t *
  2. errorCode - a number indicating the nature of the error.\n\t\t *
  3. errorMessage - text describing the error.\n\t\t *
\n\t\t * @param {number} unsubscribeOptions.timeout - which, if present, determines the number of seconds\n\t\t * after which the onFailure callback is called. The presence of\n\t\t * a timeout does not prevent the onSuccess callback from being\n\t\t * called when the unsubscribe completes\n\t\t * @throws {InvalidState} if the client is not in connected state.\n\t\t */\n\t\t\tthis.unsubscribe = function (filter, unsubscribeOptions) {\n\t\t\t\tif (typeof filter !== \"string\")\n\t\t\t\t\tthrow new Error(\"Invalid argument:\"+filter);\n\t\t\t\tunsubscribeOptions = unsubscribeOptions || {} ;\n\t\t\t\tvalidate(unsubscribeOptions, {invocationContext:\"object\",\n\t\t\t\t\tonSuccess:\"function\",\n\t\t\t\t\tonFailure:\"function\",\n\t\t\t\t\ttimeout:\"number\"\n\t\t\t\t});\n\t\t\t\tif (unsubscribeOptions.timeout && !unsubscribeOptions.onFailure)\n\t\t\t\t\tthrow new Error(\"unsubscribeOptions.timeout specified with no onFailure callback.\");\n\t\t\t\tclient.unsubscribe(filter, unsubscribeOptions);\n\t\t\t};\n\n\t\t\t/**\n\t\t * Send a message to the consumers of the destination in the Message.\n\t\t *\n\t\t * @name Paho.Client#send\n\t\t * @function\n\t\t * @param {string|Paho.Message} topic - mandatory The name of the destination to which the message is to be sent.\n\t\t * \t\t\t\t\t - If it is the only parameter, used as Paho.Message object.\n\t\t * @param {String|ArrayBuffer} payload - The message data to be sent.\n\t\t * @param {number} qos The Quality of Service used to deliver the message.\n\t\t * \t\t
\n\t\t * \t\t\t
0 Best effort (default).\n\t\t * \t\t\t
1 At least once.\n\t\t * \t\t\t
2 Exactly once.\n\t\t * \t\t
\n\t\t * @param {Boolean} retained If true, the message is to be retained by the server and delivered\n\t\t * to both current and future subscriptions.\n\t\t * If false the server only delivers the message to current subscribers, this is the default for new Messages.\n\t\t * A received message has the retained boolean set to true if the message was published\n\t\t * with the retained boolean set to true\n\t\t * and the subscrption was made after the message has been published.\n\t\t * @throws {InvalidState} if the client is not connected.\n\t\t */\n\t\t\tthis.send = function (topic,payload,qos,retained) {\n\t\t\t\tvar message ;\n\n\t\t\t\tif(arguments.length === 0){\n\t\t\t\t\tthrow new Error(\"Invalid argument.\"+\"length\");\n\n\t\t\t\t}else if(arguments.length == 1) {\n\n\t\t\t\t\tif (!(topic instanceof Message) && (typeof topic !== \"string\"))\n\t\t\t\t\t\tthrow new Error(\"Invalid argument:\"+ typeof topic);\n\n\t\t\t\t\tmessage = topic;\n\t\t\t\t\tif (typeof message.destinationName === \"undefined\")\n\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT,[message.destinationName,\"Message.destinationName\"]));\n\t\t\t\t\tclient.send(message);\n\n\t\t\t\t}else {\n\t\t\t\t//parameter checking in Message object\n\t\t\t\t\tmessage = new Message(payload);\n\t\t\t\t\tmessage.destinationName = topic;\n\t\t\t\t\tif(arguments.length >= 3)\n\t\t\t\t\t\tmessage.qos = qos;\n\t\t\t\t\tif(arguments.length >= 4)\n\t\t\t\t\t\tmessage.retained = retained;\n\t\t\t\t\tclient.send(message);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t/**\n\t\t * Publish a message to the consumers of the destination in the Message.\n\t\t * Synonym for Paho.Mqtt.Client#send\n\t\t *\n\t\t * @name Paho.Client#publish\n\t\t * @function\n\t\t * @param {string|Paho.Message} topic - mandatory The name of the topic to which the message is to be published.\n\t\t * \t\t\t\t\t - If it is the only parameter, used as Paho.Message object.\n\t\t * @param {String|ArrayBuffer} payload - The message data to be published.\n\t\t * @param {number} qos The Quality of Service used to deliver the message.\n\t\t * \t\t
\n\t\t * \t\t\t
0 Best effort (default).\n\t\t * \t\t\t
1 At least once.\n\t\t * \t\t\t
2 Exactly once.\n\t\t * \t\t
\n\t\t * @param {Boolean} retained If true, the message is to be retained by the server and delivered\n\t\t * to both current and future subscriptions.\n\t\t * If false the server only delivers the message to current subscribers, this is the default for new Messages.\n\t\t * A received message has the retained boolean set to true if the message was published\n\t\t * with the retained boolean set to true\n\t\t * and the subscrption was made after the message has been published.\n\t\t * @throws {InvalidState} if the client is not connected.\n\t\t */\n\t\t\tthis.publish = function(topic,payload,qos,retained) {\n\t\t\t\tvar message ;\n\n\t\t\t\tif(arguments.length === 0){\n\t\t\t\t\tthrow new Error(\"Invalid argument.\"+\"length\");\n\n\t\t\t\t}else if(arguments.length == 1) {\n\n\t\t\t\t\tif (!(topic instanceof Message) && (typeof topic !== \"string\"))\n\t\t\t\t\t\tthrow new Error(\"Invalid argument:\"+ typeof topic);\n\n\t\t\t\t\tmessage = topic;\n\t\t\t\t\tif (typeof message.destinationName === \"undefined\")\n\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT,[message.destinationName,\"Message.destinationName\"]));\n\t\t\t\t\tclient.send(message);\n\n\t\t\t\t}else {\n\t\t\t\t\t//parameter checking in Message object\n\t\t\t\t\tmessage = new Message(payload);\n\t\t\t\t\tmessage.destinationName = topic;\n\t\t\t\t\tif(arguments.length >= 3)\n\t\t\t\t\t\tmessage.qos = qos;\n\t\t\t\t\tif(arguments.length >= 4)\n\t\t\t\t\t\tmessage.retained = retained;\n\t\t\t\t\tclient.send(message);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\t/**\n\t\t * Normal disconnect of this Messaging client from its server.\n\t\t *\n\t\t * @name Paho.Client#disconnect\n\t\t * @function\n\t\t * @throws {InvalidState} if the client is already disconnected.\n\t\t */\n\t\t\tthis.disconnect = function () {\n\t\t\t\tclient.disconnect();\n\t\t\t};\n\n\t\t\t/**\n\t\t * Get the contents of the trace log.\n\t\t *\n\t\t * @name Paho.Client#getTraceLog\n\t\t * @function\n\t\t * @return {Object[]} tracebuffer containing the time ordered trace records.\n\t\t */\n\t\t\tthis.getTraceLog = function () {\n\t\t\t\treturn client.getTraceLog();\n\t\t\t};\n\n\t\t\t/**\n\t\t * Start tracing.\n\t\t *\n\t\t * @name Paho.Client#startTrace\n\t\t * @function\n\t\t */\n\t\t\tthis.startTrace = function () {\n\t\t\t\tclient.startTrace();\n\t\t\t};\n\n\t\t\t/**\n\t\t * Stop tracing.\n\t\t *\n\t\t * @name Paho.Client#stopTrace\n\t\t * @function\n\t\t */\n\t\t\tthis.stopTrace = function () {\n\t\t\t\tclient.stopTrace();\n\t\t\t};\n\n\t\t\tthis.isConnected = function() {\n\t\t\t\treturn client.connected;\n\t\t\t};\n\t\t};\n\n\t\t/**\n\t * An application message, sent or received.\n\t *

\n\t * All attributes may be null, which implies the default values.\n\t *\n\t * @name Paho.Message\n\t * @constructor\n\t * @param {String|ArrayBuffer} payload The message data to be sent.\n\t *

\n\t * @property {string} payloadString read only The payload as a string if the payload consists of valid UTF-8 characters.\n\t * @property {ArrayBuffer} payloadBytes read only The payload as an ArrayBuffer.\n\t *

\n\t * @property {string} destinationName mandatory The name of the destination to which the message is to be sent\n\t * (for messages about to be sent) or the name of the destination from which the message has been received.\n\t * (for messages received by the onMessage function).\n\t *

\n\t * @property {number} qos The Quality of Service used to deliver the message.\n\t *

\n\t *
0 Best effort (default).\n\t *
1 At least once.\n\t *
2 Exactly once.\n\t *
\n\t *

\n\t * @property {Boolean} retained If true, the message is to be retained by the server and delivered\n\t * to both current and future subscriptions.\n\t * If false the server only delivers the message to current subscribers, this is the default for new Messages.\n\t * A received message has the retained boolean set to true if the message was published\n\t * with the retained boolean set to true\n\t * and the subscrption was made after the message has been published.\n\t *

\n\t * @property {Boolean} duplicate read only If true, this message might be a duplicate of one which has already been received.\n\t * This is only set on messages received from the server.\n\t *\n\t */\n\t\tvar Message = function (newPayload) {\n\t\t\tvar payload;\n\t\t\tif ( typeof newPayload === \"string\" ||\n\t\tnewPayload instanceof ArrayBuffer ||\n\t\t(ArrayBuffer.isView(newPayload) && !(newPayload instanceof DataView))\n\t\t\t) {\n\t\t\t\tpayload = newPayload;\n\t\t\t} else {\n\t\t\t\tthrow (format(ERROR.INVALID_ARGUMENT, [newPayload, \"newPayload\"]));\n\t\t\t}\n\n\t\t\tvar destinationName;\n\t\t\tvar qos = 0;\n\t\t\tvar retained = false;\n\t\t\tvar duplicate = false;\n\n\t\t\tObject.defineProperties(this,{\n\t\t\t\t\"payloadString\":{\n\t\t\t\t\tenumerable : true,\n\t\t\t\t\tget : function () {\n\t\t\t\t\t\tif (typeof payload === \"string\")\n\t\t\t\t\t\t\treturn payload;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\treturn parseUTF8(payload, 0, payload.length);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"payloadBytes\":{\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: function() {\n\t\t\t\t\t\tif (typeof payload === \"string\") {\n\t\t\t\t\t\t\tvar buffer = new ArrayBuffer(UTF8Length(payload));\n\t\t\t\t\t\t\tvar byteStream = new Uint8Array(buffer);\n\t\t\t\t\t\t\tstringToUTF8(payload, byteStream, 0);\n\t\t\n\t\t\t\t\t\t\treturn byteStream;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\treturn payload;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"destinationName\":{\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: function() { return destinationName; },\n\t\t\t\t\tset: function(newDestinationName) {\n\t\t\t\t\t\tif (typeof newDestinationName === \"string\")\n\t\t\t\t\t\t\tdestinationName = newDestinationName;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT, [newDestinationName, \"newDestinationName\"]));\n\t\t\t\t\t} \n\t\t\t\t},\n\t\t\t\t\"qos\":{\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: function() { return qos; },\n\t\t\t\t\tset: function(newQos) {\n\t\t\t\t\t\tif (newQos === 0 || newQos === 1 || newQos === 2 )\n\t\t\t\t\t\t\tqos = newQos;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tthrow new Error(\"Invalid argument:\"+newQos);\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"retained\":{\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: function() { return retained; },\n\t\t\t\t\tset: function(newRetained) {\n\t\t\t\t\t\tif (typeof newRetained === \"boolean\")\n\t\t\t\t\t\t\tretained = newRetained;\n\t\t\t\t\t\telse\n\t\t\t\t\t\t\tthrow new Error(format(ERROR.INVALID_ARGUMENT, [newRetained, \"newRetained\"]));\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t\t\"topic\":{\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: function() { return destinationName; },\n\t\t\t\t\tset: function(newTopic) {destinationName=newTopic;}\n\t\t\t\t},\n\t\t\t\t\"duplicate\":{\n\t\t\t\t\tenumerable: true,\n\t\t\t\t\tget: function() { return duplicate; },\n\t\t\t\t\tset: function(newDuplicate) {duplicate=newDuplicate;}\n\t\t\t\t}\n\t\t\t});\n\t\t};\n\n\t\t// Module contents.\n\t\treturn {\n\t\t\tClient: Client,\n\t\t\tMessage: Message\n\t\t};\n\t// eslint-disable-next-line no-nested-ternary\n\t})(typeof global !== \"undefined\" ? global : typeof self !== \"undefined\" ? self : typeof window !== \"undefined\" ? window : {});\n\treturn PahoMQTT;\n});\n","/**\n * This is the web browser implementation of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = require('./debug');\nexports.log = log;\nexports.formatArgs = formatArgs;\nexports.save = save;\nexports.load = load;\nexports.useColors = useColors;\nexports.storage = 'undefined' != typeof chrome\n && 'undefined' != typeof chrome.storage\n ? chrome.storage.local\n : localstorage();\n\n/**\n * Colors.\n */\n\nexports.colors = [\n 'lightseagreen',\n 'forestgreen',\n 'goldenrod',\n 'dodgerblue',\n 'darkorchid',\n 'crimson'\n];\n\n/**\n * Currently only WebKit-based Web Inspectors, Firefox >= v31,\n * and the Firebug extension (any Firefox version) are known\n * to support \"%c\" CSS customizations.\n *\n * TODO: add a `localStorage` variable to explicitly enable/disable colors\n */\n\nfunction useColors() {\n // NB: In an Electron preload script, document will be defined but not fully\n // initialized. Since we know we're in Chrome, we'll just detect this case\n // explicitly\n if (typeof window !== 'undefined' && window.process && window.process.type === 'renderer') {\n return true;\n }\n\n // is webkit? http://stackoverflow.com/a/16459606/376773\n // document is undefined in react-native: https://github.com/facebook/react-native/pull/1632\n return (typeof document !== 'undefined' && document.documentElement && document.documentElement.style && document.documentElement.style.WebkitAppearance) ||\n // is firebug? http://stackoverflow.com/a/398120/376773\n (typeof window !== 'undefined' && window.console && (window.console.firebug || (window.console.exception && window.console.table))) ||\n // is firefox >= v31?\n // https://developer.mozilla.org/en-US/docs/Tools/Web_Console#Styling_messages\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/firefox\\/(\\d+)/) && parseInt(RegExp.$1, 10) >= 31) ||\n // double check webkit in userAgent just in case we are in a worker\n (typeof navigator !== 'undefined' && navigator.userAgent && navigator.userAgent.toLowerCase().match(/applewebkit\\/(\\d+)/));\n}\n\n/**\n * Map %j to `JSON.stringify()`, since no Web Inspectors do that by default.\n */\n\nexports.formatters.j = function(v) {\n try {\n return JSON.stringify(v);\n } catch (err) {\n return '[UnexpectedJSONParseError]: ' + err.message;\n }\n};\n\n\n/**\n * Colorize log arguments if enabled.\n *\n * @api public\n */\n\nfunction formatArgs(args) {\n var useColors = this.useColors;\n\n args[0] = (useColors ? '%c' : '')\n + this.namespace\n + (useColors ? ' %c' : ' ')\n + args[0]\n + (useColors ? '%c ' : ' ')\n + '+' + exports.humanize(this.diff);\n\n if (!useColors) return;\n\n var c = 'color: ' + this.color;\n args.splice(1, 0, c, 'color: inherit')\n\n // the final \"%c\" is somewhat tricky, because there could be other\n // arguments passed either before or after the %c, so we need to\n // figure out the correct index to insert the CSS into\n var index = 0;\n var lastC = 0;\n args[0].replace(/%[a-zA-Z%]/g, function(match) {\n if ('%%' === match) return;\n index++;\n if ('%c' === match) {\n // we only are interested in the *last* %c\n // (the user may have provided their own)\n lastC = index;\n }\n });\n\n args.splice(lastC, 0, c);\n}\n\n/**\n * Invokes `console.log()` when available.\n * No-op when `console.log` is not a \"function\".\n *\n * @api public\n */\n\nfunction log() {\n // this hackery is required for IE8/9, where\n // the `console.log` function doesn't have 'apply'\n return 'object' === typeof console\n && console.log\n && Function.prototype.apply.call(console.log, console, arguments);\n}\n\n/**\n * Save `namespaces`.\n *\n * @param {String} namespaces\n * @api private\n */\n\nfunction save(namespaces) {\n try {\n if (null == namespaces) {\n exports.storage.removeItem('debug');\n } else {\n exports.storage.debug = namespaces;\n }\n } catch(e) {}\n}\n\n/**\n * Load `namespaces`.\n *\n * @return {String} returns the previously persisted debug modes\n * @api private\n */\n\nfunction load() {\n var r;\n try {\n r = exports.storage.debug;\n } catch(e) {}\n\n // If debug isn't set in LS, and we're in Electron, try to load $DEBUG\n if (!r && typeof process !== 'undefined' && 'env' in process) {\n r = process.env.DEBUG;\n }\n\n return r;\n}\n\n/**\n * Enable namespaces listed in `localStorage.debug` initially.\n */\n\nexports.enable(load());\n\n/**\n * Localstorage attempts to return the localstorage.\n *\n * This is necessary because safari throws\n * when a user disables cookies/localstorage\n * and you attempt to access it.\n *\n * @return {LocalStorage}\n * @api private\n */\n\nfunction localstorage() {\n try {\n return window.localStorage;\n } catch (e) {}\n}\n","\n/**\n * This is the common logic for both the Node.js and web browser\n * implementations of `debug()`.\n *\n * Expose `debug()` as the module.\n */\n\nexports = module.exports = createDebug.debug = createDebug['default'] = createDebug;\nexports.coerce = coerce;\nexports.disable = disable;\nexports.enable = enable;\nexports.enabled = enabled;\nexports.humanize = require('ms');\n\n/**\n * The currently active debug mode names, and names to skip.\n */\n\nexports.names = [];\nexports.skips = [];\n\n/**\n * Map of special \"%n\" handling functions, for the debug \"format\" argument.\n *\n * Valid key names are a single, lower or upper-case letter, i.e. \"n\" and \"N\".\n */\n\nexports.formatters = {};\n\n/**\n * Previous log timestamp.\n */\n\nvar prevTime;\n\n/**\n * Select a color.\n * @param {String} namespace\n * @return {Number}\n * @api private\n */\n\nfunction selectColor(namespace) {\n var hash = 0, i;\n\n for (i in namespace) {\n hash = ((hash << 5) - hash) + namespace.charCodeAt(i);\n hash |= 0; // Convert to 32bit integer\n }\n\n return exports.colors[Math.abs(hash) % exports.colors.length];\n}\n\n/**\n * Create a debugger with the given `namespace`.\n *\n * @param {String} namespace\n * @return {Function}\n * @api public\n */\n\nfunction createDebug(namespace) {\n\n function debug() {\n // disabled?\n if (!debug.enabled) return;\n\n var self = debug;\n\n // set `diff` timestamp\n var curr = +new Date();\n var ms = curr - (prevTime || curr);\n self.diff = ms;\n self.prev = prevTime;\n self.curr = curr;\n prevTime = curr;\n\n // turn the `arguments` into a proper Array\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n\n args[0] = exports.coerce(args[0]);\n\n if ('string' !== typeof args[0]) {\n // anything else let's inspect with %O\n args.unshift('%O');\n }\n\n // apply any `formatters` transformations\n var index = 0;\n args[0] = args[0].replace(/%([a-zA-Z%])/g, function(match, format) {\n // if we encounter an escaped % then don't increase the array index\n if (match === '%%') return match;\n index++;\n var formatter = exports.formatters[format];\n if ('function' === typeof formatter) {\n var val = args[index];\n match = formatter.call(self, val);\n\n // now we need to remove `args[index]` since it's inlined in the `format`\n args.splice(index, 1);\n index--;\n }\n return match;\n });\n\n // apply env-specific formatting (colors, etc.)\n exports.formatArgs.call(self, args);\n\n var logFn = debug.log || exports.log || console.log.bind(console);\n logFn.apply(self, args);\n }\n\n debug.namespace = namespace;\n debug.enabled = exports.enabled(namespace);\n debug.useColors = exports.useColors();\n debug.color = selectColor(namespace);\n\n // env-specific initialization logic for debug instances\n if ('function' === typeof exports.init) {\n exports.init(debug);\n }\n\n return debug;\n}\n\n/**\n * Enables a debug mode by namespaces. This can include modes\n * separated by a colon and wildcards.\n *\n * @param {String} namespaces\n * @api public\n */\n\nfunction enable(namespaces) {\n exports.save(namespaces);\n\n exports.names = [];\n exports.skips = [];\n\n var split = (typeof namespaces === 'string' ? namespaces : '').split(/[\\s,]+/);\n var len = split.length;\n\n for (var i = 0; i < len; i++) {\n if (!split[i]) continue; // ignore empty strings\n namespaces = split[i].replace(/\\*/g, '.*?');\n if (namespaces[0] === '-') {\n exports.skips.push(new RegExp('^' + namespaces.substr(1) + '$'));\n } else {\n exports.names.push(new RegExp('^' + namespaces + '$'));\n }\n }\n}\n\n/**\n * Disable debug output.\n *\n * @api public\n */\n\nfunction disable() {\n exports.enable('');\n}\n\n/**\n * Returns true if the given mode name is enabled, false otherwise.\n *\n * @param {String} name\n * @return {Boolean}\n * @api public\n */\n\nfunction enabled(name) {\n var i, len;\n for (i = 0, len = exports.skips.length; i < len; i++) {\n if (exports.skips[i].test(name)) {\n return false;\n }\n }\n for (i = 0, len = exports.names.length; i < len; i++) {\n if (exports.names[i].test(name)) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Coerce `val`.\n *\n * @param {Mixed} val\n * @return {Mixed}\n * @api private\n */\n\nfunction coerce(val) {\n if (val instanceof Error) return val.stack || val.message;\n return val;\n}\n","/**\n * Helpers.\n */\n\nvar s = 1000;\nvar m = s * 60;\nvar h = m * 60;\nvar d = h * 24;\nvar y = d * 365.25;\n\n/**\n * Parse or format the given `val`.\n *\n * Options:\n *\n * - `long` verbose formatting [false]\n *\n * @param {String|Number} val\n * @param {Object} [options]\n * @throws {Error} throw an error if val is not a non-empty string or a number\n * @return {String|Number}\n * @api public\n */\n\nmodule.exports = function(val, options) {\n options = options || {};\n var type = typeof val;\n if (type === 'string' && val.length > 0) {\n return parse(val);\n } else if (type === 'number' && isNaN(val) === false) {\n return options.long ? fmtLong(val) : fmtShort(val);\n }\n throw new Error(\n 'val is not a non-empty string or a valid number. val=' +\n JSON.stringify(val)\n );\n};\n\n/**\n * Parse the given `str` and return milliseconds.\n *\n * @param {String} str\n * @return {Number}\n * @api private\n */\n\nfunction parse(str) {\n str = String(str);\n if (str.length > 100) {\n return;\n }\n var match = /^((?:\\d+)?\\.?\\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|years?|yrs?|y)?$/i.exec(\n str\n );\n if (!match) {\n return;\n }\n var n = parseFloat(match[1]);\n var type = (match[2] || 'ms').toLowerCase();\n switch (type) {\n case 'years':\n case 'year':\n case 'yrs':\n case 'yr':\n case 'y':\n return n * y;\n case 'days':\n case 'day':\n case 'd':\n return n * d;\n case 'hours':\n case 'hour':\n case 'hrs':\n case 'hr':\n case 'h':\n return n * h;\n case 'minutes':\n case 'minute':\n case 'mins':\n case 'min':\n case 'm':\n return n * m;\n case 'seconds':\n case 'second':\n case 'secs':\n case 'sec':\n case 's':\n return n * s;\n case 'milliseconds':\n case 'millisecond':\n case 'msecs':\n case 'msec':\n case 'ms':\n return n;\n default:\n return undefined;\n }\n}\n\n/**\n * Short format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtShort(ms) {\n if (ms >= d) {\n return Math.round(ms / d) + 'd';\n }\n if (ms >= h) {\n return Math.round(ms / h) + 'h';\n }\n if (ms >= m) {\n return Math.round(ms / m) + 'm';\n }\n if (ms >= s) {\n return Math.round(ms / s) + 's';\n }\n return ms + 'ms';\n}\n\n/**\n * Long format for `ms`.\n *\n * @param {Number} ms\n * @return {String}\n * @api private\n */\n\nfunction fmtLong(ms) {\n return plural(ms, d, 'day') ||\n plural(ms, h, 'hour') ||\n plural(ms, m, 'minute') ||\n plural(ms, s, 'second') ||\n ms + ' ms';\n}\n\n/**\n * Pluralization helper.\n */\n\nfunction plural(ms, n, name) {\n if (ms < n) {\n return;\n }\n if (ms < n * 1.5) {\n return Math.floor(ms / n) + ' ' + name;\n }\n return Math.ceil(ms / n) + ' ' + name + 's';\n}\n","export var KEY_PREFIX = 'reduxPersist:';\nexport var REHYDRATE = 'persist/REHYDRATE';","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nimport isPlainObject from 'lodash-es/isPlainObject';\n\nexport default function isStatePlainEnough(a) {\n // isPlainObject + duck type not immutable\n if (!a) return false;\n if ((typeof a === 'undefined' ? 'undefined' : _typeof(a)) !== 'object') return false;\n if (typeof a.asMutable === 'function') return false;\n if (!isPlainObject(a)) return false;\n return true;\n}","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nvar _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport { REHYDRATE } from './constants';\nimport isStatePlainEnough from './utils/isStatePlainEnough';\n\nexport default function autoRehydrate() {\n var config = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n var stateReconciler = config.stateReconciler || defaultStateReconciler;\n\n return function (next) {\n return function (reducer, initialState, enhancer) {\n var store = next(liftReducer(reducer), initialState, enhancer);\n return _extends({}, store, {\n replaceReducer: function replaceReducer(reducer) {\n return store.replaceReducer(liftReducer(reducer));\n }\n });\n };\n };\n\n function liftReducer(reducer) {\n var rehydrated = false;\n var preRehydrateActions = [];\n return function (state, action) {\n if (action.type !== REHYDRATE) {\n if (config.log && !rehydrated) preRehydrateActions.push(action); // store pre-rehydrate actions for debugging\n return reducer(state, action);\n } else {\n if (config.log && !rehydrated) logPreRehydrate(preRehydrateActions);\n rehydrated = true;\n\n var inboundState = action.payload;\n var reducedState = reducer(state, action);\n\n return stateReconciler(state, inboundState, reducedState, config.log);\n }\n };\n }\n}\n\nfunction logPreRehydrate(preRehydrateActions) {\n var concernedActions = preRehydrateActions.slice(1);\n if (concernedActions.length > 0) {\n console.log('\\n redux-persist/autoRehydrate: %d actions were fired before rehydration completed. This can be a symptom of a race\\n condition where the rehydrate action may overwrite the previously affected state. Consider running these actions\\n after rehydration:\\n ', concernedActions.length, concernedActions);\n }\n}\n\nfunction defaultStateReconciler(state, inboundState, reducedState, log) {\n var newState = _extends({}, reducedState);\n\n Object.keys(inboundState).forEach(function (key) {\n // if initialState does not have key, skip auto rehydration\n if (!state.hasOwnProperty(key)) return;\n\n // if initial state is an object but inbound state is null/undefined, skip\n if (_typeof(state[key]) === 'object' && !inboundState[key]) {\n if (log) console.log('redux-persist/autoRehydrate: sub state for key `%s` is falsy but initial state is an object, skipping autoRehydrate.', key);\n return;\n }\n\n // if reducer modifies substate, skip auto rehydration\n if (state[key] !== reducedState[key]) {\n if (log) console.log('redux-persist/autoRehydrate: sub state for key `%s` modified, skipping autoRehydrate.', key);\n newState[key] = reducedState[key];\n return;\n }\n\n // otherwise take the inboundState\n if (isStatePlainEnough(inboundState[key]) && isStatePlainEnough(state[key])) newState[key] = _extends({}, state[key], inboundState[key]); // shallow merge\n else newState[key] = inboundState[key]; // hard set\n\n if (log) console.log('redux-persist/autoRehydrate: key `%s`, rehydrated to ', key, newState[key]);\n });\n return newState;\n}","var hasNativeSupport = typeof global !== 'undefined' && typeof global.setImmediate !== 'undefined';\nvar setImmediate = hasNativeSupport ? function (fn, ms) {\n return global.setImmediate(fn, ms);\n} : function (fn, ms) {\n return setTimeout(fn, ms);\n};\n\nexport default setImmediate;","var _typeof = typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj; };\n\nimport setImmediate from '../utils/setImmediate';\n\nvar noStorage = function noStorage() {\n /* noop */return null;\n};\nif (process.env.NODE_ENV !== 'production') {\n noStorage = function noStorage() {\n console.error('redux-persist asyncLocalStorage requires a global localStorage object. Either use a different storage backend or if this is a universal redux application you probably should conditionally persist like so: https://gist.github.com/rt2zz/ac9eb396793f95ff3c3b');\n return null;\n };\n}\n\nfunction _hasStorage(storageType) {\n if ((typeof window === 'undefined' ? 'undefined' : _typeof(window)) !== 'object' || !(storageType in window)) {\n return false;\n }\n\n try {\n var storage = window[storageType];\n var testKey = 'redux-persist ' + storageType + ' test';\n storage.setItem(testKey, 'test');\n storage.getItem(testKey);\n storage.removeItem(testKey);\n } catch (e) {\n if (process.env.NODE_ENV !== 'production') console.warn('redux-persist ' + storageType + ' test failed, persistence will be disabled.');\n return false;\n }\n return true;\n}\n\nfunction hasLocalStorage() {\n return _hasStorage('localStorage');\n}\n\nfunction hasSessionStorage() {\n return _hasStorage('sessionStorage');\n}\n\nfunction getStorage(type) {\n if (type === 'local') {\n return hasLocalStorage() ? window.localStorage : { getItem: noStorage, setItem: noStorage, removeItem: noStorage, getAllKeys: noStorage };\n }\n if (type === 'session') {\n return hasSessionStorage() ? window.sessionStorage : { getItem: noStorage, setItem: noStorage, removeItem: noStorage, getAllKeys: noStorage };\n }\n}\n\nexport default function (type, config) {\n var storage = getStorage(type);\n return {\n getAllKeys: function getAllKeys(cb) {\n return new Promise(function (resolve, reject) {\n try {\n var keys = [];\n for (var i = 0; i < storage.length; i++) {\n keys.push(storage.key(i));\n }\n setImmediate(function () {\n cb && cb(null, keys);\n resolve(keys);\n });\n } catch (e) {\n cb && cb(e);\n reject(e);\n }\n });\n },\n getItem: function getItem(key, cb) {\n return new Promise(function (resolve, reject) {\n try {\n var s = storage.getItem(key);\n setImmediate(function () {\n cb && cb(null, s);\n resolve(s);\n });\n } catch (e) {\n cb && cb(e);\n reject(e);\n }\n });\n },\n setItem: function setItem(key, string, cb) {\n return new Promise(function (resolve, reject) {\n try {\n storage.setItem(key, string);\n setImmediate(function () {\n cb && cb(null);\n resolve();\n });\n } catch (e) {\n cb && cb(e);\n reject(e);\n }\n });\n },\n removeItem: function removeItem(key, cb) {\n return new Promise(function (resolve, reject) {\n try {\n storage.removeItem(key);\n setImmediate(function () {\n cb && cb(null);\n resolve();\n });\n } catch (e) {\n cb && cb(e);\n reject(e);\n }\n });\n }\n };\n}","import { KEY_PREFIX } from './constants';\n\nexport default function purgeStoredState(config, keys) {\n var storage = config.storage;\n var keyPrefix = config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX;\n\n // basic validation\n if (Array.isArray(config)) throw new Error('redux-persist: purgeStoredState requires config as a first argument (found array). An array of keys is the optional second argument.');\n if (!storage) throw new Error('redux-persist: config.storage required in purgeStoredState');\n\n if (typeof keys === 'undefined') {\n // if keys is not defined, purge all keys\n return new Promise(function (resolve, reject) {\n storage.getAllKeys(function (err, allKeys) {\n if (err) {\n if (process.env.NODE_ENV !== 'production') console.warn('redux-persist: error during purgeStoredState in storage.getAllKeys');\n reject(err);\n } else {\n resolve(purgeStoredState(config, allKeys.filter(function (key) {\n return key.indexOf(keyPrefix) === 0;\n }).map(function (key) {\n return key.slice(keyPrefix.length);\n })));\n }\n });\n });\n } else {\n // otherwise purge specified keys\n return Promise.all(keys.map(function (key) {\n return storage.removeItem('' + keyPrefix + key, warnIfRemoveError(key));\n }));\n }\n}\n\nfunction warnIfRemoveError(key) {\n return function removeError(err) {\n if (err && process.env.NODE_ENV !== 'production') {\n console.warn('Error storing data for key:', key, err);\n }\n };\n}","import { KEY_PREFIX, REHYDRATE } from './constants';\nimport createAsyncLocalStorage from './defaults/asyncLocalStorage';\nimport purgeStoredState from './purgeStoredState';\nimport stringify from 'json-stringify-safe';\n\nexport default function createPersistor(store, config) {\n // defaults\n var serializer = config.serialize === false ? function (data) {\n return data;\n } : defaultSerializer;\n var deserializer = config.serialize === false ? function (data) {\n return data;\n } : defaultDeserializer;\n var blacklist = config.blacklist || [];\n var whitelist = config.whitelist || false;\n var transforms = config.transforms || [];\n var debounce = config.debounce || false;\n var keyPrefix = config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX;\n\n // pluggable state shape (e.g. immutablejs)\n var stateInit = config._stateInit || {};\n var stateIterator = config._stateIterator || defaultStateIterator;\n var stateGetter = config._stateGetter || defaultStateGetter;\n var stateSetter = config._stateSetter || defaultStateSetter;\n\n // storage with keys -> getAllKeys for localForage support\n var storage = config.storage || createAsyncLocalStorage('local');\n if (storage.keys && !storage.getAllKeys) {\n storage.getAllKeys = storage.keys;\n }\n\n // initialize stateful values\n var lastState = stateInit;\n var paused = false;\n var storesToProcess = [];\n var timeIterator = null;\n\n store.subscribe(function () {\n if (paused) return;\n\n var state = store.getState();\n\n stateIterator(state, function (subState, key) {\n if (!passWhitelistBlacklist(key)) return;\n if (stateGetter(lastState, key) === stateGetter(state, key)) return;\n if (storesToProcess.indexOf(key) !== -1) return;\n storesToProcess.push(key);\n });\n\n var len = storesToProcess.length;\n\n // time iterator (read: debounce)\n if (timeIterator === null) {\n timeIterator = setInterval(function () {\n if (paused && len === storesToProcess.length || storesToProcess.length === 0) {\n clearInterval(timeIterator);\n timeIterator = null;\n return;\n }\n\n var key = storesToProcess.shift();\n var storageKey = createStorageKey(key);\n var endState = transforms.reduce(function (subState, transformer) {\n return transformer.in(subState, key);\n }, stateGetter(store.getState(), key));\n if (typeof endState !== 'undefined') storage.setItem(storageKey, serializer(endState), warnIfSetError(key));\n }, debounce);\n }\n\n lastState = state;\n });\n\n function passWhitelistBlacklist(key) {\n if (whitelist && whitelist.indexOf(key) === -1) return false;\n if (blacklist.indexOf(key) !== -1) return false;\n return true;\n }\n\n function adhocRehydrate(incoming) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n\n var state = {};\n if (options.serial) {\n stateIterator(incoming, function (subState, key) {\n try {\n var data = deserializer(subState);\n var value = transforms.reduceRight(function (interState, transformer) {\n return transformer.out(interState, key);\n }, data);\n state = stateSetter(state, key, value);\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') console.warn('Error rehydrating data for key \"' + key + '\"', subState, err);\n }\n });\n } else state = incoming;\n\n store.dispatch(rehydrateAction(state));\n return state;\n }\n\n function createStorageKey(key) {\n return '' + keyPrefix + key;\n }\n\n // return `persistor`\n return {\n rehydrate: adhocRehydrate,\n pause: function pause() {\n paused = true;\n },\n resume: function resume() {\n paused = false;\n },\n purge: function purge(keys) {\n return purgeStoredState({ storage: storage, keyPrefix: keyPrefix }, keys);\n }\n };\n}\n\nfunction warnIfSetError(key) {\n return function setError(err) {\n if (err && process.env.NODE_ENV !== 'production') {\n console.warn('Error storing data for key:', key, err);\n }\n };\n}\n\nfunction defaultSerializer(data) {\n return stringify(data, null, null, function (k, v) {\n if (process.env.NODE_ENV !== 'production') return null;\n throw new Error('\\n redux-persist: cannot process cyclical state.\\n Consider changing your state structure to have no cycles.\\n Alternatively blacklist the corresponding reducer key.\\n Cycle encounted at key \"' + k + '\" with value \"' + v + '\".\\n ');\n });\n}\n\nfunction defaultDeserializer(serial) {\n return JSON.parse(serial);\n}\n\nfunction rehydrateAction(data) {\n return {\n type: REHYDRATE,\n payload: data\n };\n}\n\nfunction defaultStateIterator(collection, callback) {\n return Object.keys(collection).forEach(function (key) {\n return callback(collection[key], key);\n });\n}\n\nfunction defaultStateGetter(state, key) {\n return state[key];\n}\n\nfunction defaultStateSetter(state, key, value) {\n state[key] = value;\n return state;\n}","function createTransform(inbound, outbound) {\n var config = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n\n var whitelist = config.whitelist || null;\n var blacklist = config.blacklist || null;\n\n function whitelistBlacklistCheck(key) {\n if (whitelist && whitelist.indexOf(key) === -1) return true;\n if (blacklist && blacklist.indexOf(key) !== -1) return true;\n return false;\n }\n\n return {\n in: function _in(state, key) {\n return !whitelistBlacklistCheck(key) && inbound ? inbound(state, key) : state;\n },\n out: function out(state, key) {\n return !whitelistBlacklistCheck(key) && outbound ? outbound(state, key) : state;\n }\n };\n}\n\nexport default createTransform;","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport { KEY_PREFIX } from './constants';\nimport createAsyncLocalStorage from './defaults/asyncLocalStorage';\n\nexport default function getStoredState(config, onComplete) {\n var storage = config.storage || createAsyncLocalStorage('local');\n var deserializer = config.serialize === false ? function (data) {\n return data;\n } : defaultDeserializer;\n var blacklist = config.blacklist || [];\n var whitelist = config.whitelist || false;\n var transforms = config.transforms || [];\n var keyPrefix = config.keyPrefix !== undefined ? config.keyPrefix : KEY_PREFIX;\n\n // fallback getAllKeys to `keys` if present (LocalForage compatability)\n if (storage.keys && !storage.getAllKeys) storage = _extends({}, storage, { getAllKeys: storage.keys });\n\n var restoredState = {};\n var completionCount = 0;\n\n storage.getAllKeys(function (err, allKeys) {\n if (err) {\n if (process.env.NODE_ENV !== 'production') console.warn('redux-persist/getStoredState: Error in storage.getAllKeys');\n complete(err);\n }\n\n var persistKeys = allKeys.filter(function (key) {\n return key.indexOf(keyPrefix) === 0;\n }).map(function (key) {\n return key.slice(keyPrefix.length);\n });\n var keysToRestore = persistKeys.filter(passWhitelistBlacklist);\n\n var restoreCount = keysToRestore.length;\n if (restoreCount === 0) complete(null, restoredState);\n keysToRestore.forEach(function (key) {\n storage.getItem(createStorageKey(key), function (err, serialized) {\n if (err && process.env.NODE_ENV !== 'production') console.warn('redux-persist/getStoredState: Error restoring data for key:', key, err);else restoredState[key] = rehydrate(key, serialized);\n completionCount += 1;\n if (completionCount === restoreCount) complete(null, restoredState);\n });\n });\n });\n\n function rehydrate(key, serialized) {\n var state = null;\n\n try {\n var data = deserializer(serialized);\n state = transforms.reduceRight(function (subState, transformer) {\n return transformer.out(subState, key);\n }, data);\n } catch (err) {\n if (process.env.NODE_ENV !== 'production') console.warn('redux-persist/getStoredState: Error restoring data for key:', key, err);\n }\n\n return state;\n }\n\n function complete(err, restoredState) {\n onComplete(err, restoredState);\n }\n\n function passWhitelistBlacklist(key) {\n if (whitelist && whitelist.indexOf(key) === -1) return false;\n if (blacklist.indexOf(key) !== -1) return false;\n return true;\n }\n\n function createStorageKey(key) {\n return '' + keyPrefix + key;\n }\n\n if (typeof onComplete !== 'function' && !!Promise) {\n return new Promise(function (resolve, reject) {\n onComplete = function onComplete(err, restoredState) {\n if (err) reject(err);else resolve(restoredState);\n };\n });\n }\n}\n\nfunction defaultDeserializer(serial) {\n return JSON.parse(serial);\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport { REHYDRATE } from './constants';\nimport getStoredState from './getStoredState';\nimport createPersistor from './createPersistor';\nimport setImmediate from './utils/setImmediate';\n\nexport default function persistStore(store) {\n var config = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var onComplete = arguments[2];\n\n // defaults\n // @TODO remove shouldRestore\n var shouldRestore = !config.skipRestore;\n if (process.env.NODE_ENV !== 'production' && config.skipRestore) console.warn('redux-persist: config.skipRestore has been deprecated. If you want to skip restoration use `createPersistor` instead');\n\n var purgeKeys = null;\n\n // create and pause persistor\n var persistor = createPersistor(store, config);\n persistor.pause();\n\n // restore\n if (shouldRestore) {\n setImmediate(function () {\n getStoredState(config, function (err, restoredState) {\n if (err) {\n complete(err);\n return;\n }\n // do not persist state for purgeKeys\n if (purgeKeys) {\n if (purgeKeys === '*') restoredState = {};else purgeKeys.forEach(function (key) {\n return delete restoredState[key];\n });\n }\n try {\n store.dispatch(rehydrateAction(restoredState, err));\n } finally {\n complete(err, restoredState);\n }\n });\n });\n } else setImmediate(complete);\n\n function complete(err, restoredState) {\n persistor.resume();\n onComplete && onComplete(err, restoredState);\n }\n\n return _extends({}, persistor, {\n purge: function purge(keys) {\n purgeKeys = keys || '*';\n return persistor.purge(keys);\n }\n });\n}\n\nfunction rehydrateAction(payload) {\n var error = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n\n return {\n type: REHYDRATE,\n payload: payload,\n error: error\n };\n}","import autoRehydrate from './autoRehydrate';\nimport createPersistor from './createPersistor';\nimport createTransform from './createTransform';\nimport getStoredState from './getStoredState';\nimport persistStore from './persistStore';\nimport purgeStoredState from './purgeStoredState';\n\n// @TODO remove in v5\nvar deprecated = function deprecated(cb, cb2, cb3) {\n console.error('redux-persist: this method of importing storages has been removed. instead use `import { asyncLocalStorage } from \"redux-persist/storages\"`');\n if (typeof cb === 'function') cb();\n if (typeof cb2 === 'function') cb2();\n if (typeof cb3 === 'function') cb3();\n};\nvar deprecatedStorage = { getAllKeys: deprecated, getItem: deprecated, setItem: deprecated, removeItem: deprecated };\nvar storages = {\n asyncLocalStorage: deprecatedStorage,\n asyncSessionStorage: deprecatedStorage\n};\n\nexport { autoRehydrate, createPersistor, createTransform, getStoredState, persistStore, purgeStoredState, storages };","'use strict';\n\nexports.__esModule = true;\nvar KEY_PREFIX = exports.KEY_PREFIX = 'reduxPersist:';\nvar REHYDRATE = exports.REHYDRATE = 'persist/REHYDRATE';","/** A function that accepts a potential \"extra argument\" value to be injected later,\r\n * and returns an instance of the thunk middleware that uses that value\r\n */\nfunction createThunkMiddleware(extraArgument) {\n // Standard Redux middleware definition pattern:\n // See: https://redux.js.org/tutorials/fundamentals/part-4-store#writing-custom-middleware\n var middleware = function middleware(_ref) {\n var dispatch = _ref.dispatch,\n getState = _ref.getState;\n return function (next) {\n return function (action) {\n // The thunk middleware looks for any functions that were passed to `store.dispatch`.\n // If this \"action\" is really a function, call it and return the result.\n if (typeof action === 'function') {\n // Inject the store's `dispatch` and `getState` methods, as well as any \"extra arg\"\n return action(dispatch, getState, extraArgument);\n } // Otherwise, pass the action down the middleware chain as usual\n\n\n return next(action);\n };\n };\n };\n\n return middleware;\n}\n\nvar thunk = createThunkMiddleware(); // Attach the factory function so users can create a customized version\n// with whatever \"extra arg\" they want to inject into their thunks\n\nthunk.withExtraArgument = createThunkMiddleware;\nexport default thunk;","import isPlainObject from 'lodash-es/isPlainObject';\nimport $$observable from 'symbol-observable';\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nexport var ActionTypes = {\n INIT: '@@redux/INIT'\n\n /**\n * Creates a Redux store that holds the state tree.\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n};export default function createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error('Expected the enhancer to be a function.');\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error('Expected the reducer to be a function.');\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n function getState() {\n return currentState;\n }\n\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error('Expected listener to be a function.');\n }\n\n var isSubscribed = true;\n\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n isSubscribed = false;\n\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n };\n }\n\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error('Actions must be plain objects. ' + 'Use custom middleware for async actions.');\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error('Actions may not have an undefined \"type\" property. ' + 'Have you misspelled a constant?');\n }\n\n if (isDispatching) {\n throw new Error('Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error('Expected the nextReducer to be a function.');\n }\n\n currentReducer = nextReducer;\n dispatch({ type: ActionTypes.INIT });\n }\n\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object') {\n throw new TypeError('Expected the observer to be an object.');\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return { unsubscribe: unsubscribe };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n }\n\n // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n dispatch({ type: ActionTypes.INIT });\n\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}","import { ActionTypes } from './createStore';\nimport isPlainObject from 'lodash-es/isPlainObject';\nimport warning from './utils/warning';\n\nfunction getUndefinedStateErrorMessage(key, action) {\n var actionType = action && action.type;\n var actionName = actionType && '\"' + actionType.toString() + '\"' || 'an action';\n\n return 'Given action ' + actionName + ', reducer \"' + key + '\" returned undefined. ' + 'To ignore an action, you must explicitly return the previous state. ' + 'If you want this reducer to hold no value, you can return null instead of undefined.';\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return 'The ' + argumentName + ' has unexpected type of \"' + {}.toString.call(inputState).match(/\\s([a-z|A-Z]+)/)[1] + '\". Expected argument to be an object with the following ' + ('keys: \"' + reducerKeys.join('\", \"') + '\"');\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n\n if (unexpectedKeys.length > 0) {\n return 'Unexpected ' + (unexpectedKeys.length > 1 ? 'keys' : 'key') + ' ' + ('\"' + unexpectedKeys.join('\", \"') + '\" found in ' + argumentName + '. ') + 'Expected to find one of the known reducer keys instead: ' + ('\"' + reducerKeys.join('\", \"') + '\". Unexpected keys will be ignored.');\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, { type: ActionTypes.INIT });\n\n if (typeof initialState === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined during initialization. ' + 'If the state passed to the reducer is undefined, you must ' + 'explicitly return the initial state. The initial state may ' + 'not be undefined. If you don\\'t want to set a value for this reducer, ' + 'you can use null instead of undefined.');\n }\n\n var type = '@@redux/PROBE_UNKNOWN_ACTION_' + Math.random().toString(36).substring(7).split('').join('.');\n if (typeof reducer(undefined, { type: type }) === 'undefined') {\n throw new Error('Reducer \"' + key + '\" returned undefined when probed with a random type. ' + ('Don\\'t try to handle ' + ActionTypes.INIT + ' or other actions in \"redux/*\" ') + 'namespace. They are considered private. Instead, you must return the ' + 'current state for any unknown actions, unless it is undefined, ' + 'in which case you must return the initial state, regardless of the ' + 'action type. The initial state may not be undefined, but can be null.');\n }\n });\n}\n\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\nexport default function combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning('No reducer provided for key \"' + key + '\"');\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n var finalReducerKeys = Object.keys(finalReducers);\n\n var unexpectedKeyCache = void 0;\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError = void 0;\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination() {\n var state = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var action = arguments[1];\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n if (typeof nextStateForKey === 'undefined') {\n var errorMessage = getUndefinedStateErrorMessage(_key, action);\n throw new Error(errorMessage);\n }\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n return hasChanged ? nextState : state;\n };\n}","function bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(undefined, arguments));\n };\n}\n\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass a single function as the first argument,\n * and get a function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\nexport default function bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error('bindActionCreators expected an object or a function, instead received ' + (actionCreators === null ? 'null' : typeof actionCreators) + '. ' + 'Did you write \"import ActionCreators from\" instead of \"import * as ActionCreators from\"?');\n }\n\n var keys = Object.keys(actionCreators);\n var boundActionCreators = {};\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var actionCreator = actionCreators[key];\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n return boundActionCreators;\n}","/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\n\nexport default function compose() {\n for (var _len = arguments.length, funcs = Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(undefined, arguments));\n };\n });\n}","var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; };\n\nimport compose from './compose';\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\nexport default function applyMiddleware() {\n for (var _len = arguments.length, middlewares = Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function (reducer, preloadedState, enhancer) {\n var store = createStore(reducer, preloadedState, enhancer);\n var _dispatch = store.dispatch;\n var chain = [];\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch(action) {\n return _dispatch(action);\n }\n };\n chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(undefined, chain)(store.dispatch);\n\n return _extends({}, store, {\n dispatch: _dispatch\n });\n };\n };\n}","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","var v1 = require('./v1');\nvar v4 = require('./v4');\n\nvar uuid = v4;\nuuid.v1 = v1;\nuuid.v4 = v4;\n\nmodule.exports = uuid;\n","/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex;\n // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n return ([\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]], '-',\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]],\n bth[buf[i++]], bth[buf[i++]]\n ]).join('');\n}\n\nmodule.exports = bytesToUuid;\n","// Unique ID creation requires a high quality random # generator. In the\n// browser this is a little complicated due to unknown quality of Math.random()\n// and inconsistent support for the `crypto` API. We do the best we can via\n// feature-detection\n\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto\n// implementation. Also, find the complete implementation of crypto on IE11.\nvar getRandomValues = (typeof(crypto) != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto)) ||\n (typeof(msCrypto) != 'undefined' && typeof window.msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto));\n\nif (getRandomValues) {\n // WHATWG crypto RNG - http://wiki.whatwg.org/wiki/Crypto\n var rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\n module.exports = function whatwgRNG() {\n getRandomValues(rnds8);\n return rnds8;\n };\n} else {\n // Math.random()-based (RNG)\n //\n // If all else fails, use Math.random(). It's fast, but is of unspecified\n // quality.\n var rnds = new Array(16);\n\n module.exports = function mathRNG() {\n for (var i = 0, r; i < 16; i++) {\n if ((i & 0x03) === 0) r = Math.random() * 0x100000000;\n rnds[i] = r >>> ((i & 0x03) << 3) & 0xff;\n }\n\n return rnds;\n };\n}\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\n\nvar _nodeId;\nvar _clockseq;\n\n// Previous uuid creation time\nvar _lastMSecs = 0;\nvar _lastNSecs = 0;\n\n// See https://github.com/uuidjs/uuid for API details\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq;\n\n // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n if (node == null || clockseq == null) {\n var seedBytes = rng();\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [\n seedBytes[0] | 0x01,\n seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]\n ];\n }\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n }\n\n // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime();\n\n // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1;\n\n // Time since last uuid creation (in msecs)\n var dt = (msecs - _lastMSecs) + (nsecs - _lastNSecs)/10000;\n\n // Per 4.2.1.2, Bump clockseq on clock regression\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n }\n\n // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n }\n\n // Per 4.2.1.2 Throw error if too many uuids are requested\n if (nsecs >= 10000) {\n throw new Error('uuid.v1(): Can\\'t create more than 10M uuids/sec');\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq;\n\n // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n msecs += 12219292800000;\n\n // `time_low`\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff;\n\n // `time_mid`\n var tmh = (msecs / 0x100000000 * 10000) & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff;\n\n // `time_high_and_version`\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n b[i++] = tmh >>> 16 & 0xff;\n\n // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n b[i++] = clockseq >>> 8 | 0x80;\n\n // `clock_seq_low`\n b[i++] = clockseq & 0xff;\n\n // `node`\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : bytesToUuid(b);\n}\n\nmodule.exports = v1;\n","var rng = require('./lib/rng');\nvar bytesToUuid = require('./lib/bytesToUuid');\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof(options) == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n options = options || {};\n\n var rnds = options.random || (options.rng || rng)();\n\n // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n rnds[6] = (rnds[6] & 0x0f) | 0x40;\n rnds[8] = (rnds[8] & 0x3f) | 0x80;\n\n // Copy bytes to buffer, if provided\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || bytesToUuid(rnds);\n}\n\nmodule.exports = v4;\n","/* tslint:disable */\n\nimport zenObservable from 'zen-observable';\n\nnamespace Observable {\n\n}\n\nimport { ZenObservable } from './types';\n\nexport { ZenObservable };\n\nexport type Observer = ZenObservable.Observer;\nexport type Subscriber = ZenObservable.Subscriber;\nexport type ObservableLike = ZenObservable.ObservableLike;\n\nexport const Observable: {\n new (subscriber: Subscriber): Observable;\n from(\n observable: Observable | ZenObservable.ObservableLike | ArrayLike,\n ): Observable;\n of(...args: Array): Observable;\n} = zenObservable;\n\nexport interface Observable {\n subscribe(\n observerOrNext: ((value: T) => void) | ZenObservable.Observer,\n error?: (error: any) => void,\n complete?: () => void,\n ): ZenObservable.Subscription;\n\n forEach(fn: (value: T) => void): Promise;\n\n map(fn: (value: T) => R): Observable;\n\n filter(fn: (value: T) => boolean): Observable;\n\n reduce(\n fn: (previousValue: R | T, currentValue: T) => R | T,\n initialValue?: R | T,\n ): Observable;\n\n flatMap(fn: (value: T) => ZenObservable.ObservableLike): Observable;\n\n from(\n observable: Observable | ZenObservable.ObservableLike | ArrayLike,\n ): Observable;\n of(...args: Array): Observable;\n}\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['acm'] = {};\nAWS.ACM = Service.defineService('acm', ['2015-12-08']);\nObject.defineProperty(apiLoader.services['acm'], '2015-12-08', {\n get: function get() {\n var model = require('../apis/acm-2015-12-08.min.json');\n model.paginators = require('../apis/acm-2015-12-08.paginators.json').pagination;\n model.waiters = require('../apis/acm-2015-12-08.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ACM;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['amp'] = {};\nAWS.Amp = Service.defineService('amp', ['2020-08-01']);\nObject.defineProperty(apiLoader.services['amp'], '2020-08-01', {\n get: function get() {\n var model = require('../apis/amp-2020-08-01.min.json');\n model.paginators = require('../apis/amp-2020-08-01.paginators.json').pagination;\n model.waiters = require('../apis/amp-2020-08-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Amp;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['apigateway'] = {};\nAWS.APIGateway = Service.defineService('apigateway', ['2015-07-09']);\nrequire('../lib/services/apigateway');\nObject.defineProperty(apiLoader.services['apigateway'], '2015-07-09', {\n get: function get() {\n var model = require('../apis/apigateway-2015-07-09.min.json');\n model.paginators = require('../apis/apigateway-2015-07-09.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.APIGateway;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['applicationautoscaling'] = {};\nAWS.ApplicationAutoScaling = Service.defineService('applicationautoscaling', ['2016-02-06']);\nObject.defineProperty(apiLoader.services['applicationautoscaling'], '2016-02-06', {\n get: function get() {\n var model = require('../apis/application-autoscaling-2016-02-06.min.json');\n model.paginators = require('../apis/application-autoscaling-2016-02-06.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ApplicationAutoScaling;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['athena'] = {};\nAWS.Athena = Service.defineService('athena', ['2017-05-18']);\nObject.defineProperty(apiLoader.services['athena'], '2017-05-18', {\n get: function get() {\n var model = require('../apis/athena-2017-05-18.min.json');\n model.paginators = require('../apis/athena-2017-05-18.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Athena;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['autoscaling'] = {};\nAWS.AutoScaling = Service.defineService('autoscaling', ['2011-01-01']);\nObject.defineProperty(apiLoader.services['autoscaling'], '2011-01-01', {\n get: function get() {\n var model = require('../apis/autoscaling-2011-01-01.min.json');\n model.paginators = require('../apis/autoscaling-2011-01-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.AutoScaling;\n","require('../lib/node_loader');\nmodule.exports = {\n ACM: require('./acm'),\n APIGateway: require('./apigateway'),\n ApplicationAutoScaling: require('./applicationautoscaling'),\n AutoScaling: require('./autoscaling'),\n CloudFormation: require('./cloudformation'),\n CloudFront: require('./cloudfront'),\n CloudHSM: require('./cloudhsm'),\n CloudTrail: require('./cloudtrail'),\n CloudWatch: require('./cloudwatch'),\n CloudWatchEvents: require('./cloudwatchevents'),\n CloudWatchLogs: require('./cloudwatchlogs'),\n CodeBuild: require('./codebuild'),\n CodeCommit: require('./codecommit'),\n CodeDeploy: require('./codedeploy'),\n CodePipeline: require('./codepipeline'),\n CognitoIdentity: require('./cognitoidentity'),\n CognitoIdentityServiceProvider: require('./cognitoidentityserviceprovider'),\n CognitoSync: require('./cognitosync'),\n ConfigService: require('./configservice'),\n CUR: require('./cur'),\n DeviceFarm: require('./devicefarm'),\n DirectConnect: require('./directconnect'),\n DynamoDB: require('./dynamodb'),\n DynamoDBStreams: require('./dynamodbstreams'),\n EC2: require('./ec2'),\n ECR: require('./ecr'),\n ECS: require('./ecs'),\n EFS: require('./efs'),\n ElastiCache: require('./elasticache'),\n ElasticBeanstalk: require('./elasticbeanstalk'),\n ELB: require('./elb'),\n ELBv2: require('./elbv2'),\n EMR: require('./emr'),\n ElasticTranscoder: require('./elastictranscoder'),\n Firehose: require('./firehose'),\n GameLift: require('./gamelift'),\n IAM: require('./iam'),\n Inspector: require('./inspector'),\n Iot: require('./iot'),\n IotData: require('./iotdata'),\n Kinesis: require('./kinesis'),\n KMS: require('./kms'),\n Lambda: require('./lambda'),\n LexRuntime: require('./lexruntime'),\n MachineLearning: require('./machinelearning'),\n MarketplaceCommerceAnalytics: require('./marketplacecommerceanalytics'),\n MTurk: require('./mturk'),\n MobileAnalytics: require('./mobileanalytics'),\n OpsWorks: require('./opsworks'),\n Polly: require('./polly'),\n RDS: require('./rds'),\n Redshift: require('./redshift'),\n Rekognition: require('./rekognition'),\n Route53: require('./route53'),\n Route53Domains: require('./route53domains'),\n S3: require('./s3'),\n ServiceCatalog: require('./servicecatalog'),\n SES: require('./ses'),\n SNS: require('./sns'),\n SQS: require('./sqs'),\n SSM: require('./ssm'),\n StorageGateway: require('./storagegateway'),\n STS: require('./sts'),\n XRay: require('./xray'),\n WAF: require('./waf'),\n WorkDocs: require('./workdocs'),\n LexModelBuildingService: require('./lexmodelbuildingservice'),\n Athena: require('./athena'),\n CloudHSMV2: require('./cloudhsmv2'),\n Pricing: require('./pricing'),\n CostExplorer: require('./costexplorer'),\n MediaStoreData: require('./mediastoredata'),\n Comprehend: require('./comprehend'),\n KinesisVideoArchivedMedia: require('./kinesisvideoarchivedmedia'),\n KinesisVideoMedia: require('./kinesisvideomedia'),\n KinesisVideo: require('./kinesisvideo'),\n Translate: require('./translate'),\n ResourceGroups: require('./resourcegroups'),\n Connect: require('./connect'),\n SecretsManager: require('./secretsmanager'),\n IoTAnalytics: require('./iotanalytics'),\n ComprehendMedical: require('./comprehendmedical'),\n Personalize: require('./personalize'),\n PersonalizeEvents: require('./personalizeevents'),\n PersonalizeRuntime: require('./personalizeruntime'),\n ForecastService: require('./forecastservice'),\n ForecastQueryService: require('./forecastqueryservice'),\n MarketplaceCatalog: require('./marketplacecatalog'),\n KinesisVideoSignalingChannels: require('./kinesisvideosignalingchannels'),\n Amp: require('./amp'),\n Location: require('./location'),\n LexRuntimeV2: require('./lexruntimev2')\n};","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudformation'] = {};\nAWS.CloudFormation = Service.defineService('cloudformation', ['2010-05-15']);\nObject.defineProperty(apiLoader.services['cloudformation'], '2010-05-15', {\n get: function get() {\n var model = require('../apis/cloudformation-2010-05-15.min.json');\n model.paginators = require('../apis/cloudformation-2010-05-15.paginators.json').pagination;\n model.waiters = require('../apis/cloudformation-2010-05-15.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudFormation;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudfront'] = {};\nAWS.CloudFront = Service.defineService('cloudfront', ['2013-05-12*', '2013-11-11*', '2014-05-31*', '2014-10-21*', '2014-11-06*', '2015-04-17*', '2015-07-27*', '2015-09-17*', '2016-01-13*', '2016-01-28*', '2016-08-01*', '2016-08-20*', '2016-09-07*', '2016-09-29*', '2016-11-25', '2016-11-25*', '2017-03-25', '2017-03-25*', '2017-10-30', '2017-10-30*', '2018-06-18', '2018-06-18*', '2018-11-05', '2018-11-05*', '2019-03-26', '2019-03-26*', '2020-05-31']);\nrequire('../lib/services/cloudfront');\nObject.defineProperty(apiLoader.services['cloudfront'], '2016-11-25', {\n get: function get() {\n var model = require('../apis/cloudfront-2016-11-25.min.json');\n model.paginators = require('../apis/cloudfront-2016-11-25.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2016-11-25.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2017-03-25', {\n get: function get() {\n var model = require('../apis/cloudfront-2017-03-25.min.json');\n model.paginators = require('../apis/cloudfront-2017-03-25.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2017-03-25.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2017-10-30', {\n get: function get() {\n var model = require('../apis/cloudfront-2017-10-30.min.json');\n model.paginators = require('../apis/cloudfront-2017-10-30.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2017-10-30.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2018-06-18', {\n get: function get() {\n var model = require('../apis/cloudfront-2018-06-18.min.json');\n model.paginators = require('../apis/cloudfront-2018-06-18.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2018-06-18.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2018-11-05', {\n get: function get() {\n var model = require('../apis/cloudfront-2018-11-05.min.json');\n model.paginators = require('../apis/cloudfront-2018-11-05.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2018-11-05.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2019-03-26', {\n get: function get() {\n var model = require('../apis/cloudfront-2019-03-26.min.json');\n model.paginators = require('../apis/cloudfront-2019-03-26.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2019-03-26.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['cloudfront'], '2020-05-31', {\n get: function get() {\n var model = require('../apis/cloudfront-2020-05-31.min.json');\n model.paginators = require('../apis/cloudfront-2020-05-31.paginators.json').pagination;\n model.waiters = require('../apis/cloudfront-2020-05-31.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudFront;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudhsm'] = {};\nAWS.CloudHSM = Service.defineService('cloudhsm', ['2014-05-30']);\nObject.defineProperty(apiLoader.services['cloudhsm'], '2014-05-30', {\n get: function get() {\n var model = require('../apis/cloudhsm-2014-05-30.min.json');\n model.paginators = require('../apis/cloudhsm-2014-05-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudHSM;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudhsmv2'] = {};\nAWS.CloudHSMV2 = Service.defineService('cloudhsmv2', ['2017-04-28']);\nObject.defineProperty(apiLoader.services['cloudhsmv2'], '2017-04-28', {\n get: function get() {\n var model = require('../apis/cloudhsmv2-2017-04-28.min.json');\n model.paginators = require('../apis/cloudhsmv2-2017-04-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudHSMV2;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudtrail'] = {};\nAWS.CloudTrail = Service.defineService('cloudtrail', ['2013-11-01']);\nObject.defineProperty(apiLoader.services['cloudtrail'], '2013-11-01', {\n get: function get() {\n var model = require('../apis/cloudtrail-2013-11-01.min.json');\n model.paginators = require('../apis/cloudtrail-2013-11-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudTrail;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudwatch'] = {};\nAWS.CloudWatch = Service.defineService('cloudwatch', ['2010-08-01']);\nObject.defineProperty(apiLoader.services['cloudwatch'], '2010-08-01', {\n get: function get() {\n var model = require('../apis/monitoring-2010-08-01.min.json');\n model.paginators = require('../apis/monitoring-2010-08-01.paginators.json').pagination;\n model.waiters = require('../apis/monitoring-2010-08-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudWatch;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudwatchevents'] = {};\nAWS.CloudWatchEvents = Service.defineService('cloudwatchevents', ['2014-02-03*', '2015-10-07']);\nObject.defineProperty(apiLoader.services['cloudwatchevents'], '2015-10-07', {\n get: function get() {\n var model = require('../apis/events-2015-10-07.min.json');\n model.paginators = require('../apis/events-2015-10-07.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudWatchEvents;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cloudwatchlogs'] = {};\nAWS.CloudWatchLogs = Service.defineService('cloudwatchlogs', ['2014-03-28']);\nObject.defineProperty(apiLoader.services['cloudwatchlogs'], '2014-03-28', {\n get: function get() {\n var model = require('../apis/logs-2014-03-28.min.json');\n model.paginators = require('../apis/logs-2014-03-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CloudWatchLogs;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['codebuild'] = {};\nAWS.CodeBuild = Service.defineService('codebuild', ['2016-10-06']);\nObject.defineProperty(apiLoader.services['codebuild'], '2016-10-06', {\n get: function get() {\n var model = require('../apis/codebuild-2016-10-06.min.json');\n model.paginators = require('../apis/codebuild-2016-10-06.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CodeBuild;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['codecommit'] = {};\nAWS.CodeCommit = Service.defineService('codecommit', ['2015-04-13']);\nObject.defineProperty(apiLoader.services['codecommit'], '2015-04-13', {\n get: function get() {\n var model = require('../apis/codecommit-2015-04-13.min.json');\n model.paginators = require('../apis/codecommit-2015-04-13.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CodeCommit;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['codedeploy'] = {};\nAWS.CodeDeploy = Service.defineService('codedeploy', ['2014-10-06']);\nObject.defineProperty(apiLoader.services['codedeploy'], '2014-10-06', {\n get: function get() {\n var model = require('../apis/codedeploy-2014-10-06.min.json');\n model.paginators = require('../apis/codedeploy-2014-10-06.paginators.json').pagination;\n model.waiters = require('../apis/codedeploy-2014-10-06.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CodeDeploy;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['codepipeline'] = {};\nAWS.CodePipeline = Service.defineService('codepipeline', ['2015-07-09']);\nObject.defineProperty(apiLoader.services['codepipeline'], '2015-07-09', {\n get: function get() {\n var model = require('../apis/codepipeline-2015-07-09.min.json');\n model.paginators = require('../apis/codepipeline-2015-07-09.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CodePipeline;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cognitoidentity'] = {};\nAWS.CognitoIdentity = Service.defineService('cognitoidentity', ['2014-06-30']);\nObject.defineProperty(apiLoader.services['cognitoidentity'], '2014-06-30', {\n get: function get() {\n var model = require('../apis/cognito-identity-2014-06-30.min.json');\n model.paginators = require('../apis/cognito-identity-2014-06-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CognitoIdentity;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cognitoidentityserviceprovider'] = {};\nAWS.CognitoIdentityServiceProvider = Service.defineService('cognitoidentityserviceprovider', ['2016-04-18']);\nObject.defineProperty(apiLoader.services['cognitoidentityserviceprovider'], '2016-04-18', {\n get: function get() {\n var model = require('../apis/cognito-idp-2016-04-18.min.json');\n model.paginators = require('../apis/cognito-idp-2016-04-18.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CognitoIdentityServiceProvider;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cognitosync'] = {};\nAWS.CognitoSync = Service.defineService('cognitosync', ['2014-06-30']);\nObject.defineProperty(apiLoader.services['cognitosync'], '2014-06-30', {\n get: function get() {\n var model = require('../apis/cognito-sync-2014-06-30.min.json');\n model.paginators = require('../apis/cognito-sync-2014-06-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CognitoSync;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['comprehend'] = {};\nAWS.Comprehend = Service.defineService('comprehend', ['2017-11-27']);\nObject.defineProperty(apiLoader.services['comprehend'], '2017-11-27', {\n get: function get() {\n var model = require('../apis/comprehend-2017-11-27.min.json');\n model.paginators = require('../apis/comprehend-2017-11-27.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Comprehend;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['comprehendmedical'] = {};\nAWS.ComprehendMedical = Service.defineService('comprehendmedical', ['2018-10-30']);\nObject.defineProperty(apiLoader.services['comprehendmedical'], '2018-10-30', {\n get: function get() {\n var model = require('../apis/comprehendmedical-2018-10-30.min.json');\n model.paginators = require('../apis/comprehendmedical-2018-10-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ComprehendMedical;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['configservice'] = {};\nAWS.ConfigService = Service.defineService('configservice', ['2014-11-12']);\nObject.defineProperty(apiLoader.services['configservice'], '2014-11-12', {\n get: function get() {\n var model = require('../apis/config-2014-11-12.min.json');\n model.paginators = require('../apis/config-2014-11-12.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ConfigService;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['connect'] = {};\nAWS.Connect = Service.defineService('connect', ['2017-08-08']);\nObject.defineProperty(apiLoader.services['connect'], '2017-08-08', {\n get: function get() {\n var model = require('../apis/connect-2017-08-08.min.json');\n model.paginators = require('../apis/connect-2017-08-08.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Connect;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['costexplorer'] = {};\nAWS.CostExplorer = Service.defineService('costexplorer', ['2017-10-25']);\nObject.defineProperty(apiLoader.services['costexplorer'], '2017-10-25', {\n get: function get() {\n var model = require('../apis/ce-2017-10-25.min.json');\n model.paginators = require('../apis/ce-2017-10-25.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CostExplorer;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['cur'] = {};\nAWS.CUR = Service.defineService('cur', ['2017-01-06']);\nObject.defineProperty(apiLoader.services['cur'], '2017-01-06', {\n get: function get() {\n var model = require('../apis/cur-2017-01-06.min.json');\n model.paginators = require('../apis/cur-2017-01-06.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.CUR;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['devicefarm'] = {};\nAWS.DeviceFarm = Service.defineService('devicefarm', ['2015-06-23']);\nObject.defineProperty(apiLoader.services['devicefarm'], '2015-06-23', {\n get: function get() {\n var model = require('../apis/devicefarm-2015-06-23.min.json');\n model.paginators = require('../apis/devicefarm-2015-06-23.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DeviceFarm;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['directconnect'] = {};\nAWS.DirectConnect = Service.defineService('directconnect', ['2012-10-25']);\nObject.defineProperty(apiLoader.services['directconnect'], '2012-10-25', {\n get: function get() {\n var model = require('../apis/directconnect-2012-10-25.min.json');\n model.paginators = require('../apis/directconnect-2012-10-25.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DirectConnect;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['dynamodb'] = {};\nAWS.DynamoDB = Service.defineService('dynamodb', ['2011-12-05', '2012-08-10']);\nrequire('../lib/services/dynamodb');\nObject.defineProperty(apiLoader.services['dynamodb'], '2011-12-05', {\n get: function get() {\n var model = require('../apis/dynamodb-2011-12-05.min.json');\n model.paginators = require('../apis/dynamodb-2011-12-05.paginators.json').pagination;\n model.waiters = require('../apis/dynamodb-2011-12-05.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['dynamodb'], '2012-08-10', {\n get: function get() {\n var model = require('../apis/dynamodb-2012-08-10.min.json');\n model.paginators = require('../apis/dynamodb-2012-08-10.paginators.json').pagination;\n model.waiters = require('../apis/dynamodb-2012-08-10.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DynamoDB;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['dynamodbstreams'] = {};\nAWS.DynamoDBStreams = Service.defineService('dynamodbstreams', ['2012-08-10']);\nObject.defineProperty(apiLoader.services['dynamodbstreams'], '2012-08-10', {\n get: function get() {\n var model = require('../apis/streams.dynamodb-2012-08-10.min.json');\n model.paginators = require('../apis/streams.dynamodb-2012-08-10.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.DynamoDBStreams;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ec2'] = {};\nAWS.EC2 = Service.defineService('ec2', ['2013-06-15*', '2013-10-15*', '2014-02-01*', '2014-05-01*', '2014-06-15*', '2014-09-01*', '2014-10-01*', '2015-03-01*', '2015-04-15*', '2015-10-01*', '2016-04-01*', '2016-09-15*', '2016-11-15']);\nrequire('../lib/services/ec2');\nObject.defineProperty(apiLoader.services['ec2'], '2016-11-15', {\n get: function get() {\n var model = require('../apis/ec2-2016-11-15.min.json');\n model.paginators = require('../apis/ec2-2016-11-15.paginators.json').pagination;\n model.waiters = require('../apis/ec2-2016-11-15.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.EC2;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ecr'] = {};\nAWS.ECR = Service.defineService('ecr', ['2015-09-21']);\nObject.defineProperty(apiLoader.services['ecr'], '2015-09-21', {\n get: function get() {\n var model = require('../apis/ecr-2015-09-21.min.json');\n model.paginators = require('../apis/ecr-2015-09-21.paginators.json').pagination;\n model.waiters = require('../apis/ecr-2015-09-21.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ECR;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ecs'] = {};\nAWS.ECS = Service.defineService('ecs', ['2014-11-13']);\nObject.defineProperty(apiLoader.services['ecs'], '2014-11-13', {\n get: function get() {\n var model = require('../apis/ecs-2014-11-13.min.json');\n model.paginators = require('../apis/ecs-2014-11-13.paginators.json').pagination;\n model.waiters = require('../apis/ecs-2014-11-13.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ECS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['efs'] = {};\nAWS.EFS = Service.defineService('efs', ['2015-02-01']);\nObject.defineProperty(apiLoader.services['efs'], '2015-02-01', {\n get: function get() {\n var model = require('../apis/elasticfilesystem-2015-02-01.min.json');\n model.paginators = require('../apis/elasticfilesystem-2015-02-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.EFS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elasticache'] = {};\nAWS.ElastiCache = Service.defineService('elasticache', ['2012-11-15*', '2014-03-24*', '2014-07-15*', '2014-09-30*', '2015-02-02']);\nObject.defineProperty(apiLoader.services['elasticache'], '2015-02-02', {\n get: function get() {\n var model = require('../apis/elasticache-2015-02-02.min.json');\n model.paginators = require('../apis/elasticache-2015-02-02.paginators.json').pagination;\n model.waiters = require('../apis/elasticache-2015-02-02.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ElastiCache;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elasticbeanstalk'] = {};\nAWS.ElasticBeanstalk = Service.defineService('elasticbeanstalk', ['2010-12-01']);\nObject.defineProperty(apiLoader.services['elasticbeanstalk'], '2010-12-01', {\n get: function get() {\n var model = require('../apis/elasticbeanstalk-2010-12-01.min.json');\n model.paginators = require('../apis/elasticbeanstalk-2010-12-01.paginators.json').pagination;\n model.waiters = require('../apis/elasticbeanstalk-2010-12-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ElasticBeanstalk;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elastictranscoder'] = {};\nAWS.ElasticTranscoder = Service.defineService('elastictranscoder', ['2012-09-25']);\nObject.defineProperty(apiLoader.services['elastictranscoder'], '2012-09-25', {\n get: function get() {\n var model = require('../apis/elastictranscoder-2012-09-25.min.json');\n model.paginators = require('../apis/elastictranscoder-2012-09-25.paginators.json').pagination;\n model.waiters = require('../apis/elastictranscoder-2012-09-25.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ElasticTranscoder;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elb'] = {};\nAWS.ELB = Service.defineService('elb', ['2012-06-01']);\nObject.defineProperty(apiLoader.services['elb'], '2012-06-01', {\n get: function get() {\n var model = require('../apis/elasticloadbalancing-2012-06-01.min.json');\n model.paginators = require('../apis/elasticloadbalancing-2012-06-01.paginators.json').pagination;\n model.waiters = require('../apis/elasticloadbalancing-2012-06-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ELB;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['elbv2'] = {};\nAWS.ELBv2 = Service.defineService('elbv2', ['2015-12-01']);\nObject.defineProperty(apiLoader.services['elbv2'], '2015-12-01', {\n get: function get() {\n var model = require('../apis/elasticloadbalancingv2-2015-12-01.min.json');\n model.paginators = require('../apis/elasticloadbalancingv2-2015-12-01.paginators.json').pagination;\n model.waiters = require('../apis/elasticloadbalancingv2-2015-12-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ELBv2;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['emr'] = {};\nAWS.EMR = Service.defineService('emr', ['2009-03-31']);\nObject.defineProperty(apiLoader.services['emr'], '2009-03-31', {\n get: function get() {\n var model = require('../apis/elasticmapreduce-2009-03-31.min.json');\n model.paginators = require('../apis/elasticmapreduce-2009-03-31.paginators.json').pagination;\n model.waiters = require('../apis/elasticmapreduce-2009-03-31.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.EMR;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['firehose'] = {};\nAWS.Firehose = Service.defineService('firehose', ['2015-08-04']);\nObject.defineProperty(apiLoader.services['firehose'], '2015-08-04', {\n get: function get() {\n var model = require('../apis/firehose-2015-08-04.min.json');\n model.paginators = require('../apis/firehose-2015-08-04.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Firehose;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['forecastqueryservice'] = {};\nAWS.ForecastQueryService = Service.defineService('forecastqueryservice', ['2018-06-26']);\nObject.defineProperty(apiLoader.services['forecastqueryservice'], '2018-06-26', {\n get: function get() {\n var model = require('../apis/forecastquery-2018-06-26.min.json');\n model.paginators = require('../apis/forecastquery-2018-06-26.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ForecastQueryService;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['forecastservice'] = {};\nAWS.ForecastService = Service.defineService('forecastservice', ['2018-06-26']);\nObject.defineProperty(apiLoader.services['forecastservice'], '2018-06-26', {\n get: function get() {\n var model = require('../apis/forecast-2018-06-26.min.json');\n model.paginators = require('../apis/forecast-2018-06-26.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ForecastService;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['gamelift'] = {};\nAWS.GameLift = Service.defineService('gamelift', ['2015-10-01']);\nObject.defineProperty(apiLoader.services['gamelift'], '2015-10-01', {\n get: function get() {\n var model = require('../apis/gamelift-2015-10-01.min.json');\n model.paginators = require('../apis/gamelift-2015-10-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.GameLift;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iam'] = {};\nAWS.IAM = Service.defineService('iam', ['2010-05-08']);\nObject.defineProperty(apiLoader.services['iam'], '2010-05-08', {\n get: function get() {\n var model = require('../apis/iam-2010-05-08.min.json');\n model.paginators = require('../apis/iam-2010-05-08.paginators.json').pagination;\n model.waiters = require('../apis/iam-2010-05-08.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.IAM;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['inspector'] = {};\nAWS.Inspector = Service.defineService('inspector', ['2015-08-18*', '2016-02-16']);\nObject.defineProperty(apiLoader.services['inspector'], '2016-02-16', {\n get: function get() {\n var model = require('../apis/inspector-2016-02-16.min.json');\n model.paginators = require('../apis/inspector-2016-02-16.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Inspector;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iot'] = {};\nAWS.Iot = Service.defineService('iot', ['2015-05-28']);\nObject.defineProperty(apiLoader.services['iot'], '2015-05-28', {\n get: function get() {\n var model = require('../apis/iot-2015-05-28.min.json');\n model.paginators = require('../apis/iot-2015-05-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Iot;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iotanalytics'] = {};\nAWS.IoTAnalytics = Service.defineService('iotanalytics', ['2017-11-27']);\nObject.defineProperty(apiLoader.services['iotanalytics'], '2017-11-27', {\n get: function get() {\n var model = require('../apis/iotanalytics-2017-11-27.min.json');\n model.paginators = require('../apis/iotanalytics-2017-11-27.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.IoTAnalytics;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['iotdata'] = {};\nAWS.IotData = Service.defineService('iotdata', ['2015-05-28']);\nrequire('../lib/services/iotdata');\nObject.defineProperty(apiLoader.services['iotdata'], '2015-05-28', {\n get: function get() {\n var model = require('../apis/iot-data-2015-05-28.min.json');\n model.paginators = require('../apis/iot-data-2015-05-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.IotData;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesis'] = {};\nAWS.Kinesis = Service.defineService('kinesis', ['2013-12-02']);\nObject.defineProperty(apiLoader.services['kinesis'], '2013-12-02', {\n get: function get() {\n var model = require('../apis/kinesis-2013-12-02.min.json');\n model.paginators = require('../apis/kinesis-2013-12-02.paginators.json').pagination;\n model.waiters = require('../apis/kinesis-2013-12-02.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Kinesis;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesisvideo'] = {};\nAWS.KinesisVideo = Service.defineService('kinesisvideo', ['2017-09-30']);\nObject.defineProperty(apiLoader.services['kinesisvideo'], '2017-09-30', {\n get: function get() {\n var model = require('../apis/kinesisvideo-2017-09-30.min.json');\n model.paginators = require('../apis/kinesisvideo-2017-09-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KinesisVideo;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesisvideoarchivedmedia'] = {};\nAWS.KinesisVideoArchivedMedia = Service.defineService('kinesisvideoarchivedmedia', ['2017-09-30']);\nObject.defineProperty(apiLoader.services['kinesisvideoarchivedmedia'], '2017-09-30', {\n get: function get() {\n var model = require('../apis/kinesis-video-archived-media-2017-09-30.min.json');\n model.paginators = require('../apis/kinesis-video-archived-media-2017-09-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KinesisVideoArchivedMedia;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesisvideomedia'] = {};\nAWS.KinesisVideoMedia = Service.defineService('kinesisvideomedia', ['2017-09-30']);\nObject.defineProperty(apiLoader.services['kinesisvideomedia'], '2017-09-30', {\n get: function get() {\n var model = require('../apis/kinesis-video-media-2017-09-30.min.json');\n model.paginators = require('../apis/kinesis-video-media-2017-09-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KinesisVideoMedia;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kinesisvideosignalingchannels'] = {};\nAWS.KinesisVideoSignalingChannels = Service.defineService('kinesisvideosignalingchannels', ['2019-12-04']);\nObject.defineProperty(apiLoader.services['kinesisvideosignalingchannels'], '2019-12-04', {\n get: function get() {\n var model = require('../apis/kinesis-video-signaling-2019-12-04.min.json');\n model.paginators = require('../apis/kinesis-video-signaling-2019-12-04.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KinesisVideoSignalingChannels;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['kms'] = {};\nAWS.KMS = Service.defineService('kms', ['2014-11-01']);\nObject.defineProperty(apiLoader.services['kms'], '2014-11-01', {\n get: function get() {\n var model = require('../apis/kms-2014-11-01.min.json');\n model.paginators = require('../apis/kms-2014-11-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.KMS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['lambda'] = {};\nAWS.Lambda = Service.defineService('lambda', ['2014-11-11', '2015-03-31']);\nrequire('../lib/services/lambda');\nObject.defineProperty(apiLoader.services['lambda'], '2014-11-11', {\n get: function get() {\n var model = require('../apis/lambda-2014-11-11.min.json');\n model.paginators = require('../apis/lambda-2014-11-11.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['lambda'], '2015-03-31', {\n get: function get() {\n var model = require('../apis/lambda-2015-03-31.min.json');\n model.paginators = require('../apis/lambda-2015-03-31.paginators.json').pagination;\n model.waiters = require('../apis/lambda-2015-03-31.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Lambda;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['lexmodelbuildingservice'] = {};\nAWS.LexModelBuildingService = Service.defineService('lexmodelbuildingservice', ['2017-04-19']);\nObject.defineProperty(apiLoader.services['lexmodelbuildingservice'], '2017-04-19', {\n get: function get() {\n var model = require('../apis/lex-models-2017-04-19.min.json');\n model.paginators = require('../apis/lex-models-2017-04-19.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.LexModelBuildingService;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['lexruntime'] = {};\nAWS.LexRuntime = Service.defineService('lexruntime', ['2016-11-28']);\nObject.defineProperty(apiLoader.services['lexruntime'], '2016-11-28', {\n get: function get() {\n var model = require('../apis/runtime.lex-2016-11-28.min.json');\n model.paginators = require('../apis/runtime.lex-2016-11-28.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.LexRuntime;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['lexruntimev2'] = {};\nAWS.LexRuntimeV2 = Service.defineService('lexruntimev2', ['2020-08-07']);\nObject.defineProperty(apiLoader.services['lexruntimev2'], '2020-08-07', {\n get: function get() {\n var model = require('../apis/runtime.lex.v2-2020-08-07.min.json');\n model.paginators = require('../apis/runtime.lex.v2-2020-08-07.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.LexRuntimeV2;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['location'] = {};\nAWS.Location = Service.defineService('location', ['2020-11-19']);\nObject.defineProperty(apiLoader.services['location'], '2020-11-19', {\n get: function get() {\n var model = require('../apis/location-2020-11-19.min.json');\n model.paginators = require('../apis/location-2020-11-19.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Location;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['machinelearning'] = {};\nAWS.MachineLearning = Service.defineService('machinelearning', ['2014-12-12']);\nrequire('../lib/services/machinelearning');\nObject.defineProperty(apiLoader.services['machinelearning'], '2014-12-12', {\n get: function get() {\n var model = require('../apis/machinelearning-2014-12-12.min.json');\n model.paginators = require('../apis/machinelearning-2014-12-12.paginators.json').pagination;\n model.waiters = require('../apis/machinelearning-2014-12-12.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MachineLearning;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['marketplacecatalog'] = {};\nAWS.MarketplaceCatalog = Service.defineService('marketplacecatalog', ['2018-09-17']);\nObject.defineProperty(apiLoader.services['marketplacecatalog'], '2018-09-17', {\n get: function get() {\n var model = require('../apis/marketplace-catalog-2018-09-17.min.json');\n model.paginators = require('../apis/marketplace-catalog-2018-09-17.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MarketplaceCatalog;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['marketplacecommerceanalytics'] = {};\nAWS.MarketplaceCommerceAnalytics = Service.defineService('marketplacecommerceanalytics', ['2015-07-01']);\nObject.defineProperty(apiLoader.services['marketplacecommerceanalytics'], '2015-07-01', {\n get: function get() {\n var model = require('../apis/marketplacecommerceanalytics-2015-07-01.min.json');\n model.paginators = require('../apis/marketplacecommerceanalytics-2015-07-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MarketplaceCommerceAnalytics;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['mediastoredata'] = {};\nAWS.MediaStoreData = Service.defineService('mediastoredata', ['2017-09-01']);\nObject.defineProperty(apiLoader.services['mediastoredata'], '2017-09-01', {\n get: function get() {\n var model = require('../apis/mediastore-data-2017-09-01.min.json');\n model.paginators = require('../apis/mediastore-data-2017-09-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MediaStoreData;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['mobileanalytics'] = {};\nAWS.MobileAnalytics = Service.defineService('mobileanalytics', ['2014-06-05']);\nObject.defineProperty(apiLoader.services['mobileanalytics'], '2014-06-05', {\n get: function get() {\n var model = require('../apis/mobileanalytics-2014-06-05.min.json');\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MobileAnalytics;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['mturk'] = {};\nAWS.MTurk = Service.defineService('mturk', ['2017-01-17']);\nObject.defineProperty(apiLoader.services['mturk'], '2017-01-17', {\n get: function get() {\n var model = require('../apis/mturk-requester-2017-01-17.min.json');\n model.paginators = require('../apis/mturk-requester-2017-01-17.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.MTurk;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['opsworks'] = {};\nAWS.OpsWorks = Service.defineService('opsworks', ['2013-02-18']);\nObject.defineProperty(apiLoader.services['opsworks'], '2013-02-18', {\n get: function get() {\n var model = require('../apis/opsworks-2013-02-18.min.json');\n model.paginators = require('../apis/opsworks-2013-02-18.paginators.json').pagination;\n model.waiters = require('../apis/opsworks-2013-02-18.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.OpsWorks;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['personalize'] = {};\nAWS.Personalize = Service.defineService('personalize', ['2018-05-22']);\nObject.defineProperty(apiLoader.services['personalize'], '2018-05-22', {\n get: function get() {\n var model = require('../apis/personalize-2018-05-22.min.json');\n model.paginators = require('../apis/personalize-2018-05-22.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Personalize;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['personalizeevents'] = {};\nAWS.PersonalizeEvents = Service.defineService('personalizeevents', ['2018-03-22']);\nObject.defineProperty(apiLoader.services['personalizeevents'], '2018-03-22', {\n get: function get() {\n var model = require('../apis/personalize-events-2018-03-22.min.json');\n model.paginators = require('../apis/personalize-events-2018-03-22.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.PersonalizeEvents;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['personalizeruntime'] = {};\nAWS.PersonalizeRuntime = Service.defineService('personalizeruntime', ['2018-05-22']);\nObject.defineProperty(apiLoader.services['personalizeruntime'], '2018-05-22', {\n get: function get() {\n var model = require('../apis/personalize-runtime-2018-05-22.min.json');\n model.paginators = require('../apis/personalize-runtime-2018-05-22.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.PersonalizeRuntime;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['polly'] = {};\nAWS.Polly = Service.defineService('polly', ['2016-06-10']);\nrequire('../lib/services/polly');\nObject.defineProperty(apiLoader.services['polly'], '2016-06-10', {\n get: function get() {\n var model = require('../apis/polly-2016-06-10.min.json');\n model.paginators = require('../apis/polly-2016-06-10.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Polly;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['pricing'] = {};\nAWS.Pricing = Service.defineService('pricing', ['2017-10-15']);\nObject.defineProperty(apiLoader.services['pricing'], '2017-10-15', {\n get: function get() {\n var model = require('../apis/pricing-2017-10-15.min.json');\n model.paginators = require('../apis/pricing-2017-10-15.paginators.json').pagination;\n model.waiters = require('../apis/pricing-2017-10-15.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Pricing;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['rds'] = {};\nAWS.RDS = Service.defineService('rds', ['2013-01-10', '2013-02-12', '2013-09-09', '2014-09-01', '2014-09-01*', '2014-10-31']);\nrequire('../lib/services/rds');\nObject.defineProperty(apiLoader.services['rds'], '2013-01-10', {\n get: function get() {\n var model = require('../apis/rds-2013-01-10.min.json');\n model.paginators = require('../apis/rds-2013-01-10.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['rds'], '2013-02-12', {\n get: function get() {\n var model = require('../apis/rds-2013-02-12.min.json');\n model.paginators = require('../apis/rds-2013-02-12.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['rds'], '2013-09-09', {\n get: function get() {\n var model = require('../apis/rds-2013-09-09.min.json');\n model.paginators = require('../apis/rds-2013-09-09.paginators.json').pagination;\n model.waiters = require('../apis/rds-2013-09-09.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['rds'], '2014-09-01', {\n get: function get() {\n var model = require('../apis/rds-2014-09-01.min.json');\n model.paginators = require('../apis/rds-2014-09-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\nObject.defineProperty(apiLoader.services['rds'], '2014-10-31', {\n get: function get() {\n var model = require('../apis/rds-2014-10-31.min.json');\n model.paginators = require('../apis/rds-2014-10-31.paginators.json').pagination;\n model.waiters = require('../apis/rds-2014-10-31.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.RDS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['redshift'] = {};\nAWS.Redshift = Service.defineService('redshift', ['2012-12-01']);\nObject.defineProperty(apiLoader.services['redshift'], '2012-12-01', {\n get: function get() {\n var model = require('../apis/redshift-2012-12-01.min.json');\n model.paginators = require('../apis/redshift-2012-12-01.paginators.json').pagination;\n model.waiters = require('../apis/redshift-2012-12-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Redshift;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['rekognition'] = {};\nAWS.Rekognition = Service.defineService('rekognition', ['2016-06-27']);\nObject.defineProperty(apiLoader.services['rekognition'], '2016-06-27', {\n get: function get() {\n var model = require('../apis/rekognition-2016-06-27.min.json');\n model.paginators = require('../apis/rekognition-2016-06-27.paginators.json').pagination;\n model.waiters = require('../apis/rekognition-2016-06-27.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Rekognition;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['resourcegroups'] = {};\nAWS.ResourceGroups = Service.defineService('resourcegroups', ['2017-11-27']);\nObject.defineProperty(apiLoader.services['resourcegroups'], '2017-11-27', {\n get: function get() {\n var model = require('../apis/resource-groups-2017-11-27.min.json');\n model.paginators = require('../apis/resource-groups-2017-11-27.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ResourceGroups;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['route53'] = {};\nAWS.Route53 = Service.defineService('route53', ['2013-04-01']);\nrequire('../lib/services/route53');\nObject.defineProperty(apiLoader.services['route53'], '2013-04-01', {\n get: function get() {\n var model = require('../apis/route53-2013-04-01.min.json');\n model.paginators = require('../apis/route53-2013-04-01.paginators.json').pagination;\n model.waiters = require('../apis/route53-2013-04-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Route53;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['route53domains'] = {};\nAWS.Route53Domains = Service.defineService('route53domains', ['2014-05-15']);\nObject.defineProperty(apiLoader.services['route53domains'], '2014-05-15', {\n get: function get() {\n var model = require('../apis/route53domains-2014-05-15.min.json');\n model.paginators = require('../apis/route53domains-2014-05-15.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Route53Domains;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['s3'] = {};\nAWS.S3 = Service.defineService('s3', ['2006-03-01']);\nrequire('../lib/services/s3');\nObject.defineProperty(apiLoader.services['s3'], '2006-03-01', {\n get: function get() {\n var model = require('../apis/s3-2006-03-01.min.json');\n model.paginators = require('../apis/s3-2006-03-01.paginators.json').pagination;\n model.waiters = require('../apis/s3-2006-03-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.S3;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['secretsmanager'] = {};\nAWS.SecretsManager = Service.defineService('secretsmanager', ['2017-10-17']);\nObject.defineProperty(apiLoader.services['secretsmanager'], '2017-10-17', {\n get: function get() {\n var model = require('../apis/secretsmanager-2017-10-17.min.json');\n model.paginators = require('../apis/secretsmanager-2017-10-17.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SecretsManager;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['servicecatalog'] = {};\nAWS.ServiceCatalog = Service.defineService('servicecatalog', ['2015-12-10']);\nObject.defineProperty(apiLoader.services['servicecatalog'], '2015-12-10', {\n get: function get() {\n var model = require('../apis/servicecatalog-2015-12-10.min.json');\n model.paginators = require('../apis/servicecatalog-2015-12-10.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.ServiceCatalog;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ses'] = {};\nAWS.SES = Service.defineService('ses', ['2010-12-01']);\nObject.defineProperty(apiLoader.services['ses'], '2010-12-01', {\n get: function get() {\n var model = require('../apis/email-2010-12-01.min.json');\n model.paginators = require('../apis/email-2010-12-01.paginators.json').pagination;\n model.waiters = require('../apis/email-2010-12-01.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SES;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['sns'] = {};\nAWS.SNS = Service.defineService('sns', ['2010-03-31']);\nObject.defineProperty(apiLoader.services['sns'], '2010-03-31', {\n get: function get() {\n var model = require('../apis/sns-2010-03-31.min.json');\n model.paginators = require('../apis/sns-2010-03-31.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SNS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['sqs'] = {};\nAWS.SQS = Service.defineService('sqs', ['2012-11-05']);\nrequire('../lib/services/sqs');\nObject.defineProperty(apiLoader.services['sqs'], '2012-11-05', {\n get: function get() {\n var model = require('../apis/sqs-2012-11-05.min.json');\n model.paginators = require('../apis/sqs-2012-11-05.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SQS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['ssm'] = {};\nAWS.SSM = Service.defineService('ssm', ['2014-11-06']);\nObject.defineProperty(apiLoader.services['ssm'], '2014-11-06', {\n get: function get() {\n var model = require('../apis/ssm-2014-11-06.min.json');\n model.paginators = require('../apis/ssm-2014-11-06.paginators.json').pagination;\n model.waiters = require('../apis/ssm-2014-11-06.waiters2.json').waiters;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.SSM;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['storagegateway'] = {};\nAWS.StorageGateway = Service.defineService('storagegateway', ['2013-06-30']);\nObject.defineProperty(apiLoader.services['storagegateway'], '2013-06-30', {\n get: function get() {\n var model = require('../apis/storagegateway-2013-06-30.min.json');\n model.paginators = require('../apis/storagegateway-2013-06-30.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.StorageGateway;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['sts'] = {};\nAWS.STS = Service.defineService('sts', ['2011-06-15']);\nrequire('../lib/services/sts');\nObject.defineProperty(apiLoader.services['sts'], '2011-06-15', {\n get: function get() {\n var model = require('../apis/sts-2011-06-15.min.json');\n model.paginators = require('../apis/sts-2011-06-15.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.STS;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['translate'] = {};\nAWS.Translate = Service.defineService('translate', ['2017-07-01']);\nObject.defineProperty(apiLoader.services['translate'], '2017-07-01', {\n get: function get() {\n var model = require('../apis/translate-2017-07-01.min.json');\n model.paginators = require('../apis/translate-2017-07-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.Translate;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['waf'] = {};\nAWS.WAF = Service.defineService('waf', ['2015-08-24']);\nObject.defineProperty(apiLoader.services['waf'], '2015-08-24', {\n get: function get() {\n var model = require('../apis/waf-2015-08-24.min.json');\n model.paginators = require('../apis/waf-2015-08-24.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.WAF;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['workdocs'] = {};\nAWS.WorkDocs = Service.defineService('workdocs', ['2016-05-01']);\nObject.defineProperty(apiLoader.services['workdocs'], '2016-05-01', {\n get: function get() {\n var model = require('../apis/workdocs-2016-05-01.min.json');\n model.paginators = require('../apis/workdocs-2016-05-01.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.WorkDocs;\n","require('../lib/node_loader');\nvar AWS = require('../lib/core');\nvar Service = AWS.Service;\nvar apiLoader = AWS.apiLoader;\n\napiLoader.services['xray'] = {};\nAWS.XRay = Service.defineService('xray', ['2016-04-12']);\nObject.defineProperty(apiLoader.services['xray'], '2016-04-12', {\n get: function get() {\n var model = require('../apis/xray-2016-04-12.min.json');\n model.paginators = require('../apis/xray-2016-04-12.paginators.json').pagination;\n return model;\n },\n enumerable: true,\n configurable: true\n});\n\nmodule.exports = AWS.XRay;\n","function apiLoader(svc, version) {\n if (!apiLoader.services.hasOwnProperty(svc)) {\n throw new Error('InvalidService: Failed to load api for ' + svc);\n }\n return apiLoader.services[svc][version];\n}\n\n/**\n * @api private\n *\n * This member of AWS.apiLoader is private, but changing it will necessitate a\n * change to ../scripts/services-table-generator.ts\n */\napiLoader.services = {};\n\n/**\n * @api private\n */\nmodule.exports = apiLoader;\n","require('./browser_loader');\n\nvar AWS = require('./core');\n\nif (typeof window !== 'undefined') window.AWS = AWS;\nif (typeof module !== 'undefined') {\n /**\n * @api private\n */\n module.exports = AWS;\n}\nif (typeof self !== 'undefined') self.AWS = AWS;\n\n/**\n * @private\n * DO NOT REMOVE\n * browser builder will strip out this line if services are supplied on the command line.\n */\nrequire('../clients/browser_default');\n","var Hmac = require('./browserHmac');\nvar Md5 = require('./browserMd5');\nvar Sha1 = require('./browserSha1');\nvar Sha256 = require('./browserSha256');\n\n/**\n * @api private\n */\nmodule.exports = exports = {\n createHash: function createHash(alg) {\n alg = alg.toLowerCase();\n if (alg === 'md5') {\n return new Md5();\n } else if (alg === 'sha256') {\n return new Sha256();\n } else if (alg === 'sha1') {\n return new Sha1();\n }\n\n throw new Error('Hash algorithm ' + alg + ' is not supported in the browser SDK');\n },\n createHmac: function createHmac(alg, key) {\n alg = alg.toLowerCase();\n if (alg === 'md5') {\n return new Hmac(Md5, key);\n } else if (alg === 'sha256') {\n return new Hmac(Sha256, key);\n } else if (alg === 'sha1') {\n return new Hmac(Sha1, key);\n }\n\n throw new Error('HMAC algorithm ' + alg + ' is not supported in the browser SDK');\n },\n createSign: function() {\n throw new Error('createSign is not implemented in the browser');\n }\n };\n","var Buffer = require('buffer/').Buffer;\n\n/**\n * This is a polyfill for the static method `isView` of `ArrayBuffer`, which is\n * e.g. missing in IE 10.\n *\n * @api private\n */\nif (\n typeof ArrayBuffer !== 'undefined' &&\n typeof ArrayBuffer.isView === 'undefined'\n) {\n ArrayBuffer.isView = function(arg) {\n return viewStrings.indexOf(Object.prototype.toString.call(arg)) > -1;\n };\n}\n\n/**\n * @api private\n */\nvar viewStrings = [\n '[object Int8Array]',\n '[object Uint8Array]',\n '[object Uint8ClampedArray]',\n '[object Int16Array]',\n '[object Uint16Array]',\n '[object Int32Array]',\n '[object Uint32Array]',\n '[object Float32Array]',\n '[object Float64Array]',\n '[object DataView]',\n];\n\n/**\n * @api private\n */\nfunction isEmptyData(data) {\n if (typeof data === 'string') {\n return data.length === 0;\n }\n return data.byteLength === 0;\n}\n\n/**\n * @api private\n */\nfunction convertToBuffer(data) {\n if (typeof data === 'string') {\n data = new Buffer(data, 'utf8');\n }\n\n if (ArrayBuffer.isView(data)) {\n return new Uint8Array(data.buffer, data.byteOffset, data.byteLength / Uint8Array.BYTES_PER_ELEMENT);\n }\n\n return new Uint8Array(data);\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = {\n isEmptyData: isEmptyData,\n convertToBuffer: convertToBuffer,\n};\n","var hashUtils = require('./browserHashUtils');\n\n/**\n * @api private\n */\nfunction Hmac(hashCtor, secret) {\n this.hash = new hashCtor();\n this.outer = new hashCtor();\n\n var inner = bufferFromSecret(hashCtor, secret);\n var outer = new Uint8Array(hashCtor.BLOCK_SIZE);\n outer.set(inner);\n\n for (var i = 0; i < hashCtor.BLOCK_SIZE; i++) {\n inner[i] ^= 0x36;\n outer[i] ^= 0x5c;\n }\n\n this.hash.update(inner);\n this.outer.update(outer);\n\n // Zero out the copied key buffer.\n for (var i = 0; i < inner.byteLength; i++) {\n inner[i] = 0;\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = Hmac;\n\nHmac.prototype.update = function (toHash) {\n if (hashUtils.isEmptyData(toHash) || this.error) {\n return this;\n }\n\n try {\n this.hash.update(hashUtils.convertToBuffer(toHash));\n } catch (e) {\n this.error = e;\n }\n\n return this;\n};\n\nHmac.prototype.digest = function (encoding) {\n if (!this.outer.finished) {\n this.outer.update(this.hash.digest());\n }\n\n return this.outer.digest(encoding);\n};\n\nfunction bufferFromSecret(hashCtor, secret) {\n var input = hashUtils.convertToBuffer(secret);\n if (input.byteLength > hashCtor.BLOCK_SIZE) {\n var bufferHash = new hashCtor;\n bufferHash.update(input);\n input = bufferHash.digest();\n }\n var buffer = new Uint8Array(hashCtor.BLOCK_SIZE);\n buffer.set(input);\n return buffer;\n}\n","var hashUtils = require('./browserHashUtils');\nvar Buffer = require('buffer/').Buffer;\n\nvar BLOCK_SIZE = 64;\n\nvar DIGEST_LENGTH = 16;\n\nvar INIT = [\n 0x67452301,\n 0xefcdab89,\n 0x98badcfe,\n 0x10325476,\n];\n\n/**\n * @api private\n */\nfunction Md5() {\n this.state = [\n 0x67452301,\n 0xefcdab89,\n 0x98badcfe,\n 0x10325476,\n ];\n this.buffer = new DataView(new ArrayBuffer(BLOCK_SIZE));\n this.bufferLength = 0;\n this.bytesHashed = 0;\n this.finished = false;\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = Md5;\n\nMd5.BLOCK_SIZE = BLOCK_SIZE;\n\nMd5.prototype.update = function (sourceData) {\n if (hashUtils.isEmptyData(sourceData)) {\n return this;\n } else if (this.finished) {\n throw new Error('Attempted to update an already finished hash.');\n }\n\n var data = hashUtils.convertToBuffer(sourceData);\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n while (byteLength > 0) {\n this.buffer.setUint8(this.bufferLength++, data[position++]);\n byteLength--;\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n\n return this;\n};\n\nMd5.prototype.digest = function (encoding) {\n if (!this.finished) {\n var _a = this, buffer = _a.buffer, undecoratedLength = _a.bufferLength, bytesHashed = _a.bytesHashed;\n var bitsHashed = bytesHashed * 8;\n buffer.setUint8(this.bufferLength++, 128);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (var i = this.bufferLength; i < BLOCK_SIZE; i++) {\n buffer.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (var i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n buffer.setUint8(i, 0);\n }\n buffer.setUint32(BLOCK_SIZE - 8, bitsHashed >>> 0, true);\n buffer.setUint32(BLOCK_SIZE - 4, Math.floor(bitsHashed / 0x100000000), true);\n this.hashBuffer();\n this.finished = true;\n }\n var out = new DataView(new ArrayBuffer(DIGEST_LENGTH));\n for (var i = 0; i < 4; i++) {\n out.setUint32(i * 4, this.state[i], true);\n }\n var buff = new Buffer(out.buffer, out.byteOffset, out.byteLength);\n return encoding ? buff.toString(encoding) : buff;\n};\n\nMd5.prototype.hashBuffer = function () {\n var _a = this, buffer = _a.buffer, state = _a.state;\n var a = state[0], b = state[1], c = state[2], d = state[3];\n a = ff(a, b, c, d, buffer.getUint32(0, true), 7, 0xd76aa478);\n d = ff(d, a, b, c, buffer.getUint32(4, true), 12, 0xe8c7b756);\n c = ff(c, d, a, b, buffer.getUint32(8, true), 17, 0x242070db);\n b = ff(b, c, d, a, buffer.getUint32(12, true), 22, 0xc1bdceee);\n a = ff(a, b, c, d, buffer.getUint32(16, true), 7, 0xf57c0faf);\n d = ff(d, a, b, c, buffer.getUint32(20, true), 12, 0x4787c62a);\n c = ff(c, d, a, b, buffer.getUint32(24, true), 17, 0xa8304613);\n b = ff(b, c, d, a, buffer.getUint32(28, true), 22, 0xfd469501);\n a = ff(a, b, c, d, buffer.getUint32(32, true), 7, 0x698098d8);\n d = ff(d, a, b, c, buffer.getUint32(36, true), 12, 0x8b44f7af);\n c = ff(c, d, a, b, buffer.getUint32(40, true), 17, 0xffff5bb1);\n b = ff(b, c, d, a, buffer.getUint32(44, true), 22, 0x895cd7be);\n a = ff(a, b, c, d, buffer.getUint32(48, true), 7, 0x6b901122);\n d = ff(d, a, b, c, buffer.getUint32(52, true), 12, 0xfd987193);\n c = ff(c, d, a, b, buffer.getUint32(56, true), 17, 0xa679438e);\n b = ff(b, c, d, a, buffer.getUint32(60, true), 22, 0x49b40821);\n a = gg(a, b, c, d, buffer.getUint32(4, true), 5, 0xf61e2562);\n d = gg(d, a, b, c, buffer.getUint32(24, true), 9, 0xc040b340);\n c = gg(c, d, a, b, buffer.getUint32(44, true), 14, 0x265e5a51);\n b = gg(b, c, d, a, buffer.getUint32(0, true), 20, 0xe9b6c7aa);\n a = gg(a, b, c, d, buffer.getUint32(20, true), 5, 0xd62f105d);\n d = gg(d, a, b, c, buffer.getUint32(40, true), 9, 0x02441453);\n c = gg(c, d, a, b, buffer.getUint32(60, true), 14, 0xd8a1e681);\n b = gg(b, c, d, a, buffer.getUint32(16, true), 20, 0xe7d3fbc8);\n a = gg(a, b, c, d, buffer.getUint32(36, true), 5, 0x21e1cde6);\n d = gg(d, a, b, c, buffer.getUint32(56, true), 9, 0xc33707d6);\n c = gg(c, d, a, b, buffer.getUint32(12, true), 14, 0xf4d50d87);\n b = gg(b, c, d, a, buffer.getUint32(32, true), 20, 0x455a14ed);\n a = gg(a, b, c, d, buffer.getUint32(52, true), 5, 0xa9e3e905);\n d = gg(d, a, b, c, buffer.getUint32(8, true), 9, 0xfcefa3f8);\n c = gg(c, d, a, b, buffer.getUint32(28, true), 14, 0x676f02d9);\n b = gg(b, c, d, a, buffer.getUint32(48, true), 20, 0x8d2a4c8a);\n a = hh(a, b, c, d, buffer.getUint32(20, true), 4, 0xfffa3942);\n d = hh(d, a, b, c, buffer.getUint32(32, true), 11, 0x8771f681);\n c = hh(c, d, a, b, buffer.getUint32(44, true), 16, 0x6d9d6122);\n b = hh(b, c, d, a, buffer.getUint32(56, true), 23, 0xfde5380c);\n a = hh(a, b, c, d, buffer.getUint32(4, true), 4, 0xa4beea44);\n d = hh(d, a, b, c, buffer.getUint32(16, true), 11, 0x4bdecfa9);\n c = hh(c, d, a, b, buffer.getUint32(28, true), 16, 0xf6bb4b60);\n b = hh(b, c, d, a, buffer.getUint32(40, true), 23, 0xbebfbc70);\n a = hh(a, b, c, d, buffer.getUint32(52, true), 4, 0x289b7ec6);\n d = hh(d, a, b, c, buffer.getUint32(0, true), 11, 0xeaa127fa);\n c = hh(c, d, a, b, buffer.getUint32(12, true), 16, 0xd4ef3085);\n b = hh(b, c, d, a, buffer.getUint32(24, true), 23, 0x04881d05);\n a = hh(a, b, c, d, buffer.getUint32(36, true), 4, 0xd9d4d039);\n d = hh(d, a, b, c, buffer.getUint32(48, true), 11, 0xe6db99e5);\n c = hh(c, d, a, b, buffer.getUint32(60, true), 16, 0x1fa27cf8);\n b = hh(b, c, d, a, buffer.getUint32(8, true), 23, 0xc4ac5665);\n a = ii(a, b, c, d, buffer.getUint32(0, true), 6, 0xf4292244);\n d = ii(d, a, b, c, buffer.getUint32(28, true), 10, 0x432aff97);\n c = ii(c, d, a, b, buffer.getUint32(56, true), 15, 0xab9423a7);\n b = ii(b, c, d, a, buffer.getUint32(20, true), 21, 0xfc93a039);\n a = ii(a, b, c, d, buffer.getUint32(48, true), 6, 0x655b59c3);\n d = ii(d, a, b, c, buffer.getUint32(12, true), 10, 0x8f0ccc92);\n c = ii(c, d, a, b, buffer.getUint32(40, true), 15, 0xffeff47d);\n b = ii(b, c, d, a, buffer.getUint32(4, true), 21, 0x85845dd1);\n a = ii(a, b, c, d, buffer.getUint32(32, true), 6, 0x6fa87e4f);\n d = ii(d, a, b, c, buffer.getUint32(60, true), 10, 0xfe2ce6e0);\n c = ii(c, d, a, b, buffer.getUint32(24, true), 15, 0xa3014314);\n b = ii(b, c, d, a, buffer.getUint32(52, true), 21, 0x4e0811a1);\n a = ii(a, b, c, d, buffer.getUint32(16, true), 6, 0xf7537e82);\n d = ii(d, a, b, c, buffer.getUint32(44, true), 10, 0xbd3af235);\n c = ii(c, d, a, b, buffer.getUint32(8, true), 15, 0x2ad7d2bb);\n b = ii(b, c, d, a, buffer.getUint32(36, true), 21, 0xeb86d391);\n state[0] = (a + state[0]) & 0xFFFFFFFF;\n state[1] = (b + state[1]) & 0xFFFFFFFF;\n state[2] = (c + state[2]) & 0xFFFFFFFF;\n state[3] = (d + state[3]) & 0xFFFFFFFF;\n};\n\nfunction cmn(q, a, b, x, s, t) {\n a = (((a + q) & 0xFFFFFFFF) + ((x + t) & 0xFFFFFFFF)) & 0xFFFFFFFF;\n return (((a << s) | (a >>> (32 - s))) + b) & 0xFFFFFFFF;\n}\n\nfunction ff(a, b, c, d, x, s, t) {\n return cmn((b & c) | ((~b) & d), a, b, x, s, t);\n}\n\nfunction gg(a, b, c, d, x, s, t) {\n return cmn((b & d) | (c & (~d)), a, b, x, s, t);\n}\n\nfunction hh(a, b, c, d, x, s, t) {\n return cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction ii(a, b, c, d, x, s, t) {\n return cmn(c ^ (b | (~d)), a, b, x, s, t);\n}\n","var Buffer = require('buffer/').Buffer;\nvar hashUtils = require('./browserHashUtils');\n\nvar BLOCK_SIZE = 64;\n\nvar DIGEST_LENGTH = 20;\n\nvar KEY = new Uint32Array([\n 0x5a827999,\n 0x6ed9eba1,\n 0x8f1bbcdc | 0,\n 0xca62c1d6 | 0\n]);\n\nvar INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19,\n];\n\nvar MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n\n/**\n * @api private\n */\nfunction Sha1() {\n this.h0 = 0x67452301;\n this.h1 = 0xEFCDAB89;\n this.h2 = 0x98BADCFE;\n this.h3 = 0x10325476;\n this.h4 = 0xC3D2E1F0;\n // The first 64 bytes (16 words) is the data chunk\n this.block = new Uint32Array(80);\n this.offset = 0;\n this.shift = 24;\n this.totalLength = 0;\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = Sha1;\n\nSha1.BLOCK_SIZE = BLOCK_SIZE;\n\nSha1.prototype.update = function (data) {\n if (this.finished) {\n throw new Error('Attempted to update an already finished hash.');\n }\n\n if (hashUtils.isEmptyData(data)) {\n return this;\n }\n\n data = hashUtils.convertToBuffer(data);\n\n var length = data.length;\n this.totalLength += length * 8;\n for (var i = 0; i < length; i++) {\n this.write(data[i]);\n }\n\n return this;\n};\n\nSha1.prototype.write = function write(byte) {\n this.block[this.offset] |= (byte & 0xff) << this.shift;\n if (this.shift) {\n this.shift -= 8;\n } else {\n this.offset++;\n this.shift = 24;\n }\n\n if (this.offset === 16) this.processBlock();\n};\n\nSha1.prototype.digest = function (encoding) {\n // Pad\n this.write(0x80);\n if (this.offset > 14 || (this.offset === 14 && this.shift < 24)) {\n this.processBlock();\n }\n this.offset = 14;\n this.shift = 24;\n\n // 64-bit length big-endian\n this.write(0x00); // numbers this big aren't accurate in javascript anyway\n this.write(0x00); // ..So just hard-code to zero.\n this.write(this.totalLength > 0xffffffffff ? this.totalLength / 0x10000000000 : 0x00);\n this.write(this.totalLength > 0xffffffff ? this.totalLength / 0x100000000 : 0x00);\n for (var s = 24; s >= 0; s -= 8) {\n this.write(this.totalLength >> s);\n }\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n var out = new Buffer(DIGEST_LENGTH);\n var outView = new DataView(out.buffer);\n outView.setUint32(0, this.h0, false);\n outView.setUint32(4, this.h1, false);\n outView.setUint32(8, this.h2, false);\n outView.setUint32(12, this.h3, false);\n outView.setUint32(16, this.h4, false);\n\n return encoding ? out.toString(encoding) : out;\n};\n\nSha1.prototype.processBlock = function processBlock() {\n // Extend the sixteen 32-bit words into eighty 32-bit words:\n for (var i = 16; i < 80; i++) {\n var w = this.block[i - 3] ^ this.block[i - 8] ^ this.block[i - 14] ^ this.block[i - 16];\n this.block[i] = (w << 1) | (w >>> 31);\n }\n\n // Initialize hash value for this chunk:\n var a = this.h0;\n var b = this.h1;\n var c = this.h2;\n var d = this.h3;\n var e = this.h4;\n var f, k;\n\n // Main loop:\n for (i = 0; i < 80; i++) {\n if (i < 20) {\n f = d ^ (b & (c ^ d));\n k = 0x5A827999;\n }\n else if (i < 40) {\n f = b ^ c ^ d;\n k = 0x6ED9EBA1;\n }\n else if (i < 60) {\n f = (b & c) | (d & (b | c));\n k = 0x8F1BBCDC;\n }\n else {\n f = b ^ c ^ d;\n k = 0xCA62C1D6;\n }\n var temp = (a << 5 | a >>> 27) + f + e + k + (this.block[i]|0);\n e = d;\n d = c;\n c = (b << 30 | b >>> 2);\n b = a;\n a = temp;\n }\n\n // Add this chunk's hash to result so far:\n this.h0 = (this.h0 + a) | 0;\n this.h1 = (this.h1 + b) | 0;\n this.h2 = (this.h2 + c) | 0;\n this.h3 = (this.h3 + d) | 0;\n this.h4 = (this.h4 + e) | 0;\n\n // The block is now reusable.\n this.offset = 0;\n for (i = 0; i < 16; i++) {\n this.block[i] = 0;\n }\n};\n","var Buffer = require('buffer/').Buffer;\nvar hashUtils = require('./browserHashUtils');\n\nvar BLOCK_SIZE = 64;\n\nvar DIGEST_LENGTH = 32;\n\nvar KEY = new Uint32Array([\n 0x428a2f98,\n 0x71374491,\n 0xb5c0fbcf,\n 0xe9b5dba5,\n 0x3956c25b,\n 0x59f111f1,\n 0x923f82a4,\n 0xab1c5ed5,\n 0xd807aa98,\n 0x12835b01,\n 0x243185be,\n 0x550c7dc3,\n 0x72be5d74,\n 0x80deb1fe,\n 0x9bdc06a7,\n 0xc19bf174,\n 0xe49b69c1,\n 0xefbe4786,\n 0x0fc19dc6,\n 0x240ca1cc,\n 0x2de92c6f,\n 0x4a7484aa,\n 0x5cb0a9dc,\n 0x76f988da,\n 0x983e5152,\n 0xa831c66d,\n 0xb00327c8,\n 0xbf597fc7,\n 0xc6e00bf3,\n 0xd5a79147,\n 0x06ca6351,\n 0x14292967,\n 0x27b70a85,\n 0x2e1b2138,\n 0x4d2c6dfc,\n 0x53380d13,\n 0x650a7354,\n 0x766a0abb,\n 0x81c2c92e,\n 0x92722c85,\n 0xa2bfe8a1,\n 0xa81a664b,\n 0xc24b8b70,\n 0xc76c51a3,\n 0xd192e819,\n 0xd6990624,\n 0xf40e3585,\n 0x106aa070,\n 0x19a4c116,\n 0x1e376c08,\n 0x2748774c,\n 0x34b0bcb5,\n 0x391c0cb3,\n 0x4ed8aa4a,\n 0x5b9cca4f,\n 0x682e6ff3,\n 0x748f82ee,\n 0x78a5636f,\n 0x84c87814,\n 0x8cc70208,\n 0x90befffa,\n 0xa4506ceb,\n 0xbef9a3f7,\n 0xc67178f2\n]);\n\nvar INIT = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19,\n];\n\nvar MAX_HASHABLE_LENGTH = Math.pow(2, 53) - 1;\n\n/**\n * @private\n */\nfunction Sha256() {\n this.state = [\n 0x6a09e667,\n 0xbb67ae85,\n 0x3c6ef372,\n 0xa54ff53a,\n 0x510e527f,\n 0x9b05688c,\n 0x1f83d9ab,\n 0x5be0cd19,\n ];\n this.temp = new Int32Array(64);\n this.buffer = new Uint8Array(64);\n this.bufferLength = 0;\n this.bytesHashed = 0;\n /**\n * @private\n */\n this.finished = false;\n}\n\n/**\n * @api private\n */\nmodule.exports = exports = Sha256;\n\nSha256.BLOCK_SIZE = BLOCK_SIZE;\n\nSha256.prototype.update = function (data) {\n if (this.finished) {\n throw new Error('Attempted to update an already finished hash.');\n }\n\n if (hashUtils.isEmptyData(data)) {\n return this;\n }\n\n data = hashUtils.convertToBuffer(data);\n\n var position = 0;\n var byteLength = data.byteLength;\n this.bytesHashed += byteLength;\n if (this.bytesHashed * 8 > MAX_HASHABLE_LENGTH) {\n throw new Error('Cannot hash more than 2^53 - 1 bits');\n }\n\n while (byteLength > 0) {\n this.buffer[this.bufferLength++] = data[position++];\n byteLength--;\n if (this.bufferLength === BLOCK_SIZE) {\n this.hashBuffer();\n this.bufferLength = 0;\n }\n }\n\n return this;\n};\n\nSha256.prototype.digest = function (encoding) {\n if (!this.finished) {\n var bitsHashed = this.bytesHashed * 8;\n var bufferView = new DataView(this.buffer.buffer, this.buffer.byteOffset, this.buffer.byteLength);\n var undecoratedLength = this.bufferLength;\n bufferView.setUint8(this.bufferLength++, 0x80);\n // Ensure the final block has enough room for the hashed length\n if (undecoratedLength % BLOCK_SIZE >= BLOCK_SIZE - 8) {\n for (var i = this.bufferLength; i < BLOCK_SIZE; i++) {\n bufferView.setUint8(i, 0);\n }\n this.hashBuffer();\n this.bufferLength = 0;\n }\n for (var i = this.bufferLength; i < BLOCK_SIZE - 8; i++) {\n bufferView.setUint8(i, 0);\n }\n bufferView.setUint32(BLOCK_SIZE - 8, Math.floor(bitsHashed / 0x100000000), true);\n bufferView.setUint32(BLOCK_SIZE - 4, bitsHashed);\n this.hashBuffer();\n this.finished = true;\n }\n // The value in state is little-endian rather than big-endian, so flip\n // each word into a new Uint8Array\n var out = new Buffer(DIGEST_LENGTH);\n for (var i = 0; i < 8; i++) {\n out[i * 4] = (this.state[i] >>> 24) & 0xff;\n out[i * 4 + 1] = (this.state[i] >>> 16) & 0xff;\n out[i * 4 + 2] = (this.state[i] >>> 8) & 0xff;\n out[i * 4 + 3] = (this.state[i] >>> 0) & 0xff;\n }\n return encoding ? out.toString(encoding) : out;\n};\n\nSha256.prototype.hashBuffer = function () {\n var _a = this,\n buffer = _a.buffer,\n state = _a.state;\n var state0 = state[0],\n state1 = state[1],\n state2 = state[2],\n state3 = state[3],\n state4 = state[4],\n state5 = state[5],\n state6 = state[6],\n state7 = state[7];\n for (var i = 0; i < BLOCK_SIZE; i++) {\n if (i < 16) {\n this.temp[i] = (((buffer[i * 4] & 0xff) << 24) |\n ((buffer[(i * 4) + 1] & 0xff) << 16) |\n ((buffer[(i * 4) + 2] & 0xff) << 8) |\n (buffer[(i * 4) + 3] & 0xff));\n }\n else {\n var u = this.temp[i - 2];\n var t1_1 = (u >>> 17 | u << 15) ^\n (u >>> 19 | u << 13) ^\n (u >>> 10);\n u = this.temp[i - 15];\n var t2_1 = (u >>> 7 | u << 25) ^\n (u >>> 18 | u << 14) ^\n (u >>> 3);\n this.temp[i] = (t1_1 + this.temp[i - 7] | 0) +\n (t2_1 + this.temp[i - 16] | 0);\n }\n var t1 = (((((state4 >>> 6 | state4 << 26) ^\n (state4 >>> 11 | state4 << 21) ^\n (state4 >>> 25 | state4 << 7))\n + ((state4 & state5) ^ (~state4 & state6))) | 0)\n + ((state7 + ((KEY[i] + this.temp[i]) | 0)) | 0)) | 0;\n var t2 = (((state0 >>> 2 | state0 << 30) ^\n (state0 >>> 13 | state0 << 19) ^\n (state0 >>> 22 | state0 << 10)) + ((state0 & state1) ^ (state0 & state2) ^ (state1 & state2))) | 0;\n state7 = state6;\n state6 = state5;\n state5 = state4;\n state4 = (state3 + t1) | 0;\n state3 = state2;\n state2 = state1;\n state1 = state0;\n state0 = (t1 + t2) | 0;\n }\n state[0] += state0;\n state[1] += state1;\n state[2] += state2;\n state[3] += state3;\n state[4] += state4;\n state[5] += state5;\n state[6] += state6;\n state[7] += state7;\n};\n","var util = require('./util');\n\n// browser specific modules\nutil.crypto.lib = require('./browserCryptoLib');\nutil.Buffer = require('buffer/').Buffer;\nutil.url = require('url/');\nutil.querystring = require('querystring/');\nutil.realClock = require('./realclock/browserClock');\nutil.environment = 'js';\nutil.createEventStream = require('./event-stream/buffered-create-event-stream').createEventStream;\nutil.isBrowser = function() { return true; };\nutil.isNode = function() { return false; };\n\nvar AWS = require('./core');\n\n/**\n * @api private\n */\nmodule.exports = AWS;\n\nrequire('./credentials');\nrequire('./credentials/credential_provider_chain');\nrequire('./credentials/temporary_credentials');\nrequire('./credentials/chainable_temporary_credentials');\nrequire('./credentials/web_identity_credentials');\nrequire('./credentials/cognito_identity_credentials');\nrequire('./credentials/saml_credentials');\n\n// Load the DOMParser XML parser\nAWS.XML.Parser = require('./xml/browser_parser');\n\n// Load the XHR HttpClient\nrequire('./http/xhr');\n\nif (typeof process === 'undefined') {\n var process = {\n browser: true\n };\n}\n","var AWS = require('../core'),\n url = AWS.util.url,\n crypto = AWS.util.crypto.lib,\n base64Encode = AWS.util.base64.encode,\n inherit = AWS.util.inherit;\n\nvar queryEncode = function (string) {\n var replacements = {\n '+': '-',\n '=': '_',\n '/': '~'\n };\n return string.replace(/[\\+=\\/]/g, function (match) {\n return replacements[match];\n });\n};\n\nvar signPolicy = function (policy, privateKey) {\n var sign = crypto.createSign('RSA-SHA1');\n sign.write(policy);\n return queryEncode(sign.sign(privateKey, 'base64'));\n};\n\nvar signWithCannedPolicy = function (url, expires, keyPairId, privateKey) {\n var policy = JSON.stringify({\n Statement: [\n {\n Resource: url,\n Condition: { DateLessThan: { 'AWS:EpochTime': expires } }\n }\n ]\n });\n\n return {\n Expires: expires,\n 'Key-Pair-Id': keyPairId,\n Signature: signPolicy(policy.toString(), privateKey)\n };\n};\n\nvar signWithCustomPolicy = function (policy, keyPairId, privateKey) {\n policy = policy.replace(/\\s/mg, '');\n\n return {\n Policy: queryEncode(base64Encode(policy)),\n 'Key-Pair-Id': keyPairId,\n Signature: signPolicy(policy, privateKey)\n };\n};\n\nvar determineScheme = function (url) {\n var parts = url.split('://');\n if (parts.length < 2) {\n throw new Error('Invalid URL.');\n }\n\n return parts[0].replace('*', '');\n};\n\nvar getRtmpUrl = function (rtmpUrl) {\n var parsed = url.parse(rtmpUrl);\n return parsed.path.replace(/^\\//, '') + (parsed.hash || '');\n};\n\nvar getResource = function (url) {\n switch (determineScheme(url)) {\n case 'http':\n case 'https':\n return url;\n case 'rtmp':\n return getRtmpUrl(url);\n default:\n throw new Error('Invalid URI scheme. Scheme must be one of'\n + ' http, https, or rtmp');\n }\n};\n\nvar handleError = function (err, callback) {\n if (!callback || typeof callback !== 'function') {\n throw err;\n }\n\n callback(err);\n};\n\nvar handleSuccess = function (result, callback) {\n if (!callback || typeof callback !== 'function') {\n return result;\n }\n\n callback(null, result);\n};\n\nAWS.CloudFront.Signer = inherit({\n /**\n * A signer object can be used to generate signed URLs and cookies for granting\n * access to content on restricted CloudFront distributions.\n *\n * @see http://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/PrivateContent.html\n *\n * @param keyPairId [String] (Required) The ID of the CloudFront key pair\n * being used.\n * @param privateKey [String] (Required) A private key in RSA format.\n */\n constructor: function Signer(keyPairId, privateKey) {\n if (keyPairId === void 0 || privateKey === void 0) {\n throw new Error('A key pair ID and private key are required');\n }\n\n this.keyPairId = keyPairId;\n this.privateKey = privateKey;\n },\n\n /**\n * Create a signed Amazon CloudFront Cookie.\n *\n * @param options [Object] The options to create a signed cookie.\n * @option options url [String] The URL to which the signature will grant\n * access. Required unless you pass in a full\n * policy.\n * @option options expires [Number] A Unix UTC timestamp indicating when the\n * signature should expire. Required unless you\n * pass in a full policy.\n * @option options policy [String] A CloudFront JSON policy. Required unless\n * you pass in a url and an expiry time.\n *\n * @param cb [Function] if a callback is provided, this function will\n * pass the hash as the second parameter (after the error parameter) to\n * the callback function.\n *\n * @return [Object] if called synchronously (with no callback), returns the\n * signed cookie parameters.\n * @return [null] nothing is returned if a callback is provided.\n */\n getSignedCookie: function (options, cb) {\n var signatureHash = 'policy' in options\n ? signWithCustomPolicy(options.policy, this.keyPairId, this.privateKey)\n : signWithCannedPolicy(options.url, options.expires, this.keyPairId, this.privateKey);\n\n var cookieHash = {};\n for (var key in signatureHash) {\n if (Object.prototype.hasOwnProperty.call(signatureHash, key)) {\n cookieHash['CloudFront-' + key] = signatureHash[key];\n }\n }\n\n return handleSuccess(cookieHash, cb);\n },\n\n /**\n * Create a signed Amazon CloudFront URL.\n *\n * Keep in mind that URLs meant for use in media/flash players may have\n * different requirements for URL formats (e.g. some require that the\n * extension be removed, some require the file name to be prefixed\n * - mp4:, some require you to add \"/cfx/st\" into your URL).\n *\n * @param options [Object] The options to create a signed URL.\n * @option options url [String] The URL to which the signature will grant\n * access. Any query params included with\n * the URL should be encoded. Required.\n * @option options expires [Number] A Unix UTC timestamp indicating when the\n * signature should expire. Required unless you\n * pass in a full policy.\n * @option options policy [String] A CloudFront JSON policy. Required unless\n * you pass in a url and an expiry time.\n *\n * @param cb [Function] if a callback is provided, this function will\n * pass the URL as the second parameter (after the error parameter) to\n * the callback function.\n *\n * @return [String] if called synchronously (with no callback), returns the\n * signed URL.\n * @return [null] nothing is returned if a callback is provided.\n */\n getSignedUrl: function (options, cb) {\n try {\n var resource = getResource(options.url);\n } catch (err) {\n return handleError(err, cb);\n }\n\n var parsedUrl = url.parse(options.url, true),\n signatureHash = Object.prototype.hasOwnProperty.call(options, 'policy')\n ? signWithCustomPolicy(options.policy, this.keyPairId, this.privateKey)\n : signWithCannedPolicy(resource, options.expires, this.keyPairId, this.privateKey);\n\n parsedUrl.search = null;\n for (var key in signatureHash) {\n if (Object.prototype.hasOwnProperty.call(signatureHash, key)) {\n parsedUrl.query[key] = signatureHash[key];\n }\n }\n\n try {\n var signedUrl = determineScheme(options.url) === 'rtmp'\n ? getRtmpUrl(url.format(parsedUrl))\n : url.format(parsedUrl);\n } catch (err) {\n return handleError(err, cb);\n }\n\n return handleSuccess(signedUrl, cb);\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.CloudFront.Signer;\n","var AWS = require('./core');\nrequire('./credentials');\nrequire('./credentials/credential_provider_chain');\nvar PromisesDependency;\n\n/**\n * The main configuration class used by all service objects to set\n * the region, credentials, and other options for requests.\n *\n * By default, credentials and region settings are left unconfigured.\n * This should be configured by the application before using any\n * AWS service APIs.\n *\n * In order to set global configuration options, properties should\n * be assigned to the global {AWS.config} object.\n *\n * @see AWS.config\n *\n * @!group General Configuration Options\n *\n * @!attribute credentials\n * @return [AWS.Credentials] the AWS credentials to sign requests with.\n *\n * @!attribute region\n * @example Set the global region setting to us-west-2\n * AWS.config.update({region: 'us-west-2'});\n * @return [AWS.Credentials] The region to send service requests to.\n * @see http://docs.amazonwebservices.com/general/latest/gr/rande.html\n * A list of available endpoints for each AWS service\n *\n * @!attribute maxRetries\n * @return [Integer] the maximum amount of retries to perform for a\n * service request. By default this value is calculated by the specific\n * service object that the request is being made to.\n *\n * @!attribute maxRedirects\n * @return [Integer] the maximum amount of redirects to follow for a\n * service request. Defaults to 10.\n *\n * @!attribute paramValidation\n * @return [Boolean|map] whether input parameters should be validated against\n * the operation description before sending the request. Defaults to true.\n * Pass a map to enable any of the following specific validation features:\n *\n * * **min** [Boolean] — Validates that a value meets the min\n * constraint. This is enabled by default when paramValidation is set\n * to `true`.\n * * **max** [Boolean] — Validates that a value meets the max\n * constraint.\n * * **pattern** [Boolean] — Validates that a string value matches a\n * regular expression.\n * * **enum** [Boolean] — Validates that a string value matches one\n * of the allowable enum values.\n *\n * @!attribute computeChecksums\n * @return [Boolean] whether to compute checksums for payload bodies when\n * the service accepts it (currently supported in S3 and SQS only).\n *\n * @!attribute convertResponseTypes\n * @return [Boolean] whether types are converted when parsing response data.\n * Currently only supported for JSON based services. Turning this off may\n * improve performance on large response payloads. Defaults to `true`.\n *\n * @!attribute correctClockSkew\n * @return [Boolean] whether to apply a clock skew correction and retry\n * requests that fail because of an skewed client clock. Defaults to\n * `false`.\n *\n * @!attribute sslEnabled\n * @return [Boolean] whether SSL is enabled for requests\n *\n * @!attribute s3ForcePathStyle\n * @return [Boolean] whether to force path style URLs for S3 objects\n *\n * @!attribute s3BucketEndpoint\n * @note Setting this configuration option requires an `endpoint` to be\n * provided explicitly to the service constructor.\n * @return [Boolean] whether the provided endpoint addresses an individual\n * bucket (false if it addresses the root API endpoint).\n *\n * @!attribute s3DisableBodySigning\n * @return [Boolean] whether to disable S3 body signing when using signature version `v4`.\n * Body signing can only be disabled when using https. Defaults to `true`.\n *\n * @!attribute s3UsEast1RegionalEndpoint\n * @return ['legacy'|'regional'] when region is set to 'us-east-1', whether to send s3\n * request to global endpoints or 'us-east-1' regional endpoints. This config is only\n * applicable to S3 client;\n * Defaults to 'legacy'\n * @!attribute s3UseArnRegion\n * @return [Boolean] whether to override the request region with the region inferred\n * from requested resource's ARN. Only available for S3 buckets\n * Defaults to `true`\n *\n * @!attribute useAccelerateEndpoint\n * @note This configuration option is only compatible with S3 while accessing\n * dns-compatible buckets.\n * @return [Boolean] Whether to use the Accelerate endpoint with the S3 service.\n * Defaults to `false`.\n *\n * @!attribute retryDelayOptions\n * @example Set the base retry delay for all services to 300 ms\n * AWS.config.update({retryDelayOptions: {base: 300}});\n * // Delays with maxRetries = 3: 300, 600, 1200\n * @example Set a custom backoff function to provide delay values on retries\n * AWS.config.update({retryDelayOptions: {customBackoff: function(retryCount, err) {\n * // returns delay in ms\n * }}});\n * @return [map] A set of options to configure the retry delay on retryable errors.\n * Currently supported options are:\n *\n * * **base** [Integer] — The base number of milliseconds to use in the\n * exponential backoff for operation retries. Defaults to 100 ms for all services except\n * DynamoDB, where it defaults to 50ms.\n *\n * * **customBackoff ** [function] — A custom function that accepts a\n * retry count and error and returns the amount of time to delay in\n * milliseconds. If the result is a non-zero negative value, no further\n * retry attempts will be made. The `base` option will be ignored if this\n * option is supplied. The function is only called for retryable errors.\n *\n * @!attribute httpOptions\n * @return [map] A set of options to pass to the low-level HTTP request.\n * Currently supported options are:\n *\n * * **proxy** [String] — the URL to proxy requests through\n * * **agent** [http.Agent, https.Agent] — the Agent object to perform\n * HTTP requests with. Used for connection pooling. Note that for\n * SSL connections, a special Agent object is used in order to enable\n * peer certificate verification. This feature is only supported in the\n * Node.js environment.\n * * **connectTimeout** [Integer] — Sets the socket to timeout after\n * failing to establish a connection with the server after\n * `connectTimeout` milliseconds. This timeout has no effect once a socket\n * connection has been established.\n * * **timeout** [Integer] — The number of milliseconds a request can\n * take before automatically being terminated.\n * Defaults to two minutes (120000).\n * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous\n * HTTP requests. Used in the browser environment only. Set to false to\n * send requests synchronously. Defaults to true (async on).\n * * **xhrWithCredentials** [Boolean] — Sets the \"withCredentials\"\n * property of an XMLHttpRequest object. Used in the browser environment\n * only. Defaults to false.\n * @!attribute logger\n * @return [#write,#log] an object that responds to .write() (like a stream)\n * or .log() (like the console object) in order to log information about\n * requests\n *\n * @!attribute systemClockOffset\n * @return [Number] an offset value in milliseconds to apply to all signing\n * times. Use this to compensate for clock skew when your system may be\n * out of sync with the service time. Note that this configuration option\n * can only be applied to the global `AWS.config` object and cannot be\n * overridden in service-specific configuration. Defaults to 0 milliseconds.\n *\n * @!attribute signatureVersion\n * @return [String] the signature version to sign requests with (overriding\n * the API configuration). Possible values are: 'v2', 'v3', 'v4'.\n *\n * @!attribute signatureCache\n * @return [Boolean] whether the signature to sign requests with (overriding\n * the API configuration) is cached. Only applies to the signature version 'v4'.\n * Defaults to `true`.\n *\n * @!attribute endpointDiscoveryEnabled\n * @return [Boolean|undefined] whether to call operations with endpoints\n * given by service dynamically. Setting this config to `true` will enable\n * endpoint discovery for all applicable operations. Setting it to `false`\n * will explicitly disable endpoint discovery even though operations that\n * require endpoint discovery will presumably fail. Leaving it to\n * `undefined` means SDK only do endpoint discovery when it's required.\n * Defaults to `undefined`\n *\n * @!attribute endpointCacheSize\n * @return [Number] the size of the global cache storing endpoints from endpoint\n * discovery operations. Once endpoint cache is created, updating this setting\n * cannot change existing cache size.\n * Defaults to 1000\n *\n * @!attribute hostPrefixEnabled\n * @return [Boolean] whether to marshal request parameters to the prefix of\n * hostname. Defaults to `true`.\n *\n * @!attribute stsRegionalEndpoints\n * @return ['legacy'|'regional'] whether to send sts request to global endpoints or\n * regional endpoints.\n * Defaults to 'legacy'.\n *\n * @!attribute useFipsEndpoint\n * @return [Boolean] Enables FIPS compatible endpoints. Defaults to `false`.\n *\n * @!attribute useDualstackEndpoint\n * @return [Boolean] Enables IPv6 dualstack endpoint. Defaults to `false`.\n */\nAWS.Config = AWS.util.inherit({\n /**\n * @!endgroup\n */\n\n /**\n * Creates a new configuration object. This is the object that passes\n * option data along to service requests, including credentials, security,\n * region information, and some service specific settings.\n *\n * @example Creating a new configuration object with credentials and region\n * var config = new AWS.Config({\n * accessKeyId: 'AKID', secretAccessKey: 'SECRET', region: 'us-west-2'\n * });\n * @option options accessKeyId [String] your AWS access key ID.\n * @option options secretAccessKey [String] your AWS secret access key.\n * @option options sessionToken [AWS.Credentials] the optional AWS\n * session token to sign requests with.\n * @option options credentials [AWS.Credentials] the AWS credentials\n * to sign requests with. You can either specify this object, or\n * specify the accessKeyId and secretAccessKey options directly.\n * @option options credentialProvider [AWS.CredentialProviderChain] the\n * provider chain used to resolve credentials if no static `credentials`\n * property is set.\n * @option options region [String] the region to send service requests to.\n * See {region} for more information.\n * @option options maxRetries [Integer] the maximum amount of retries to\n * attempt with a request. See {maxRetries} for more information.\n * @option options maxRedirects [Integer] the maximum amount of redirects to\n * follow with a request. See {maxRedirects} for more information.\n * @option options sslEnabled [Boolean] whether to enable SSL for\n * requests.\n * @option options paramValidation [Boolean|map] whether input parameters\n * should be validated against the operation description before sending\n * the request. Defaults to true. Pass a map to enable any of the\n * following specific validation features:\n *\n * * **min** [Boolean] — Validates that a value meets the min\n * constraint. This is enabled by default when paramValidation is set\n * to `true`.\n * * **max** [Boolean] — Validates that a value meets the max\n * constraint.\n * * **pattern** [Boolean] — Validates that a string value matches a\n * regular expression.\n * * **enum** [Boolean] — Validates that a string value matches one\n * of the allowable enum values.\n * @option options computeChecksums [Boolean] whether to compute checksums\n * for payload bodies when the service accepts it (currently supported\n * in S3 only)\n * @option options convertResponseTypes [Boolean] whether types are converted\n * when parsing response data. Currently only supported for JSON based\n * services. Turning this off may improve performance on large response\n * payloads. Defaults to `true`.\n * @option options correctClockSkew [Boolean] whether to apply a clock skew\n * correction and retry requests that fail because of an skewed client\n * clock. Defaults to `false`.\n * @option options s3ForcePathStyle [Boolean] whether to force path\n * style URLs for S3 objects.\n * @option options s3BucketEndpoint [Boolean] whether the provided endpoint\n * addresses an individual bucket (false if it addresses the root API\n * endpoint). Note that setting this configuration option requires an\n * `endpoint` to be provided explicitly to the service constructor.\n * @option options s3DisableBodySigning [Boolean] whether S3 body signing\n * should be disabled when using signature version `v4`. Body signing\n * can only be disabled when using https. Defaults to `true`.\n * @option options s3UsEast1RegionalEndpoint ['legacy'|'regional'] when region\n * is set to 'us-east-1', whether to send s3 request to global endpoints or\n * 'us-east-1' regional endpoints. This config is only applicable to S3 client.\n * Defaults to `legacy`\n * @option options s3UseArnRegion [Boolean] whether to override the request region\n * with the region inferred from requested resource's ARN. Only available for S3 buckets\n * Defaults to `true`\n *\n * @option options retryDelayOptions [map] A set of options to configure\n * the retry delay on retryable errors. Currently supported options are:\n *\n * * **base** [Integer] — The base number of milliseconds to use in the\n * exponential backoff for operation retries. Defaults to 100 ms for all\n * services except DynamoDB, where it defaults to 50ms.\n * * **customBackoff ** [function] — A custom function that accepts a\n * retry count and error and returns the amount of time to delay in\n * milliseconds. If the result is a non-zero negative value, no further\n * retry attempts will be made. The `base` option will be ignored if this\n * option is supplied. The function is only called for retryable errors.\n * @option options httpOptions [map] A set of options to pass to the low-level\n * HTTP request. Currently supported options are:\n *\n * * **proxy** [String] — the URL to proxy requests through\n * * **agent** [http.Agent, https.Agent] — the Agent object to perform\n * HTTP requests with. Used for connection pooling. Defaults to the global\n * agent (`http.globalAgent`) for non-SSL connections. Note that for\n * SSL connections, a special Agent object is used in order to enable\n * peer certificate verification. This feature is only available in the\n * Node.js environment.\n * * **connectTimeout** [Integer] — Sets the socket to timeout after\n * failing to establish a connection with the server after\n * `connectTimeout` milliseconds. This timeout has no effect once a socket\n * connection has been established.\n * * **timeout** [Integer] — Sets the socket to timeout after timeout\n * milliseconds of inactivity on the socket. Defaults to two minutes\n * (120000).\n * * **xhrAsync** [Boolean] — Whether the SDK will send asynchronous\n * HTTP requests. Used in the browser environment only. Set to false to\n * send requests synchronously. Defaults to true (async on).\n * * **xhrWithCredentials** [Boolean] — Sets the \"withCredentials\"\n * property of an XMLHttpRequest object. Used in the browser environment\n * only. Defaults to false.\n * @option options apiVersion [String, Date] a String in YYYY-MM-DD format\n * (or a date) that represents the latest possible API version that can be\n * used in all services (unless overridden by `apiVersions`). Specify\n * 'latest' to use the latest possible version.\n * @option options apiVersions [map] a map of service\n * identifiers (the lowercase service class name) with the API version to\n * use when instantiating a service. Specify 'latest' for each individual\n * that can use the latest available version.\n * @option options logger [#write,#log] an object that responds to .write()\n * (like a stream) or .log() (like the console object) in order to log\n * information about requests\n * @option options systemClockOffset [Number] an offset value in milliseconds\n * to apply to all signing times. Use this to compensate for clock skew\n * when your system may be out of sync with the service time. Note that\n * this configuration option can only be applied to the global `AWS.config`\n * object and cannot be overridden in service-specific configuration.\n * Defaults to 0 milliseconds.\n * @option options signatureVersion [String] the signature version to sign\n * requests with (overriding the API configuration). Possible values are:\n * 'v2', 'v3', 'v4'.\n * @option options signatureCache [Boolean] whether the signature to sign\n * requests with (overriding the API configuration) is cached. Only applies\n * to the signature version 'v4'. Defaults to `true`.\n * @option options dynamoDbCrc32 [Boolean] whether to validate the CRC32\n * checksum of HTTP response bodies returned by DynamoDB. Default: `true`.\n * @option options useAccelerateEndpoint [Boolean] Whether to use the\n * S3 Transfer Acceleration endpoint with the S3 service. Default: `false`.\n * @option options clientSideMonitoring [Boolean] whether to collect and\n * publish this client's performance metrics of all its API requests.\n * @option options endpointDiscoveryEnabled [Boolean|undefined] whether to\n * call operations with endpoints given by service dynamically. Setting this\n * config to `true` will enable endpoint discovery for all applicable operations.\n * Setting it to `false` will explicitly disable endpoint discovery even though\n * operations that require endpoint discovery will presumably fail. Leaving it\n * to `undefined` means SDK will only do endpoint discovery when it's required.\n * Defaults to `undefined`\n * @option options endpointCacheSize [Number] the size of the global cache storing\n * endpoints from endpoint discovery operations. Once endpoint cache is created,\n * updating this setting cannot change existing cache size.\n * Defaults to 1000\n * @option options hostPrefixEnabled [Boolean] whether to marshal request\n * parameters to the prefix of hostname.\n * Defaults to `true`.\n * @option options stsRegionalEndpoints ['legacy'|'regional'] whether to send sts request\n * to global endpoints or regional endpoints.\n * Defaults to 'legacy'.\n * @option options useFipsEndpoint [Boolean] Enables FIPS compatible endpoints.\n * Defaults to `false`.\n * @option options useDualstackEndpoint [Boolean] Enables IPv6 dualstack endpoint.\n * Defaults to `false`.\n */\n constructor: function Config(options) {\n if (options === undefined) options = {};\n options = this.extractCredentials(options);\n\n AWS.util.each.call(this, this.keys, function (key, value) {\n this.set(key, options[key], value);\n });\n },\n\n /**\n * @!group Managing Credentials\n */\n\n /**\n * Loads credentials from the configuration object. This is used internally\n * by the SDK to ensure that refreshable {Credentials} objects are properly\n * refreshed and loaded when sending a request. If you want to ensure that\n * your credentials are loaded prior to a request, you can use this method\n * directly to provide accurate credential data stored in the object.\n *\n * @note If you configure the SDK with static or environment credentials,\n * the credential data should already be present in {credentials} attribute.\n * This method is primarily necessary to load credentials from asynchronous\n * sources, or sources that can refresh credentials periodically.\n * @example Getting your access key\n * AWS.config.getCredentials(function(err) {\n * if (err) console.log(err.stack); // credentials not loaded\n * else console.log(\"Access Key:\", AWS.config.credentials.accessKeyId);\n * })\n * @callback callback function(err)\n * Called when the {credentials} have been properly set on the configuration\n * object.\n *\n * @param err [Error] if this is set, credentials were not successfully\n * loaded and this error provides information why.\n * @see credentials\n * @see Credentials\n */\n getCredentials: function getCredentials(callback) {\n var self = this;\n\n function finish(err) {\n callback(err, err ? null : self.credentials);\n }\n\n function credError(msg, err) {\n return new AWS.util.error(err || new Error(), {\n code: 'CredentialsError',\n message: msg,\n name: 'CredentialsError'\n });\n }\n\n function getAsyncCredentials() {\n self.credentials.get(function(err) {\n if (err) {\n var msg = 'Could not load credentials from ' +\n self.credentials.constructor.name;\n err = credError(msg, err);\n }\n finish(err);\n });\n }\n\n function getStaticCredentials() {\n var err = null;\n if (!self.credentials.accessKeyId || !self.credentials.secretAccessKey) {\n err = credError('Missing credentials');\n }\n finish(err);\n }\n\n if (self.credentials) {\n if (typeof self.credentials.get === 'function') {\n getAsyncCredentials();\n } else { // static credentials\n getStaticCredentials();\n }\n } else if (self.credentialProvider) {\n self.credentialProvider.resolve(function(err, creds) {\n if (err) {\n err = credError('Could not load credentials from any providers', err);\n }\n self.credentials = creds;\n finish(err);\n });\n } else {\n finish(credError('No credentials to load'));\n }\n },\n\n /**\n * Loads token from the configuration object. This is used internally\n * by the SDK to ensure that refreshable {Token} objects are properly\n * refreshed and loaded when sending a request. If you want to ensure that\n * your token is loaded prior to a request, you can use this method\n * directly to provide accurate token data stored in the object.\n *\n * @note If you configure the SDK with static token, the token data should\n * already be present in {token} attribute. This method is primarily necessary\n * to load token from asynchronous sources, or sources that can refresh\n * token periodically.\n * @example Getting your access token\n * AWS.config.getToken(function(err) {\n * if (err) console.log(err.stack); // token not loaded\n * else console.log(\"Token:\", AWS.config.token.token);\n * })\n * @callback callback function(err)\n * Called when the {token} have been properly set on the configuration object.\n *\n * @param err [Error] if this is set, token was not successfully loaded and\n * this error provides information why.\n * @see token\n */\n getToken: function getToken(callback) {\n var self = this;\n\n function finish(err) {\n callback(err, err ? null : self.token);\n }\n\n function tokenError(msg, err) {\n return new AWS.util.error(err || new Error(), {\n code: 'TokenError',\n message: msg,\n name: 'TokenError'\n });\n }\n\n function getAsyncToken() {\n self.token.get(function(err) {\n if (err) {\n var msg = 'Could not load token from ' +\n self.token.constructor.name;\n err = tokenError(msg, err);\n }\n finish(err);\n });\n }\n\n function getStaticToken() {\n var err = null;\n if (!self.token.token) {\n err = tokenError('Missing token');\n }\n finish(err);\n }\n\n if (self.token) {\n if (typeof self.token.get === 'function') {\n getAsyncToken();\n } else { // static token\n getStaticToken();\n }\n } else if (self.tokenProvider) {\n self.tokenProvider.resolve(function(err, token) {\n if (err) {\n err = tokenError('Could not load token from any providers', err);\n }\n self.token = token;\n finish(err);\n });\n } else {\n finish(tokenError('No token to load'));\n }\n },\n\n /**\n * @!group Loading and Setting Configuration Options\n */\n\n /**\n * @overload update(options, allowUnknownKeys = false)\n * Updates the current configuration object with new options.\n *\n * @example Update maxRetries property of a configuration object\n * config.update({maxRetries: 10});\n * @param [Object] options a map of option keys and values.\n * @param [Boolean] allowUnknownKeys whether unknown keys can be set on\n * the configuration object. Defaults to `false`.\n * @see constructor\n */\n update: function update(options, allowUnknownKeys) {\n allowUnknownKeys = allowUnknownKeys || false;\n options = this.extractCredentials(options);\n AWS.util.each.call(this, options, function (key, value) {\n if (allowUnknownKeys || Object.prototype.hasOwnProperty.call(this.keys, key) ||\n AWS.Service.hasService(key)) {\n this.set(key, value);\n }\n });\n },\n\n /**\n * Loads configuration data from a JSON file into this config object.\n * @note Loading configuration will reset all existing configuration\n * on the object.\n * @!macro nobrowser\n * @param path [String] the path relative to your process's current\n * working directory to load configuration from.\n * @return [AWS.Config] the same configuration object\n */\n loadFromPath: function loadFromPath(path) {\n this.clear();\n\n var options = JSON.parse(AWS.util.readFileSync(path));\n var fileSystemCreds = new AWS.FileSystemCredentials(path);\n var chain = new AWS.CredentialProviderChain();\n chain.providers.unshift(fileSystemCreds);\n chain.resolve(function (err, creds) {\n if (err) throw err;\n else options.credentials = creds;\n });\n\n this.constructor(options);\n\n return this;\n },\n\n /**\n * Clears configuration data on this object\n *\n * @api private\n */\n clear: function clear() {\n /*jshint forin:false */\n AWS.util.each.call(this, this.keys, function (key) {\n delete this[key];\n });\n\n // reset credential provider\n this.set('credentials', undefined);\n this.set('credentialProvider', undefined);\n },\n\n /**\n * Sets a property on the configuration object, allowing for a\n * default value\n * @api private\n */\n set: function set(property, value, defaultValue) {\n if (value === undefined) {\n if (defaultValue === undefined) {\n defaultValue = this.keys[property];\n }\n if (typeof defaultValue === 'function') {\n this[property] = defaultValue.call(this);\n } else {\n this[property] = defaultValue;\n }\n } else if (property === 'httpOptions' && this[property]) {\n // deep merge httpOptions\n this[property] = AWS.util.merge(this[property], value);\n } else {\n this[property] = value;\n }\n },\n\n /**\n * All of the keys with their default values.\n *\n * @constant\n * @api private\n */\n keys: {\n credentials: null,\n credentialProvider: null,\n region: null,\n logger: null,\n apiVersions: {},\n apiVersion: null,\n endpoint: undefined,\n httpOptions: {\n timeout: 120000\n },\n maxRetries: undefined,\n maxRedirects: 10,\n paramValidation: true,\n sslEnabled: true,\n s3ForcePathStyle: false,\n s3BucketEndpoint: false,\n s3DisableBodySigning: true,\n s3UsEast1RegionalEndpoint: 'legacy',\n s3UseArnRegion: undefined,\n computeChecksums: true,\n convertResponseTypes: true,\n correctClockSkew: false,\n customUserAgent: null,\n dynamoDbCrc32: true,\n systemClockOffset: 0,\n signatureVersion: null,\n signatureCache: true,\n retryDelayOptions: {},\n useAccelerateEndpoint: false,\n clientSideMonitoring: false,\n endpointDiscoveryEnabled: undefined,\n endpointCacheSize: 1000,\n hostPrefixEnabled: true,\n stsRegionalEndpoints: 'legacy',\n useFipsEndpoint: false,\n useDualstackEndpoint: false,\n token: null\n },\n\n /**\n * Extracts accessKeyId, secretAccessKey and sessionToken\n * from a configuration hash.\n *\n * @api private\n */\n extractCredentials: function extractCredentials(options) {\n if (options.accessKeyId && options.secretAccessKey) {\n options = AWS.util.copy(options);\n options.credentials = new AWS.Credentials(options);\n }\n return options;\n },\n\n /**\n * Sets the promise dependency the SDK will use wherever Promises are returned.\n * Passing `null` will force the SDK to use native Promises if they are available.\n * If native Promises are not available, passing `null` will have no effect.\n * @param [Constructor] dep A reference to a Promise constructor\n */\n setPromisesDependency: function setPromisesDependency(dep) {\n PromisesDependency = dep;\n // if null was passed in, we should try to use native promises\n if (dep === null && typeof Promise === 'function') {\n PromisesDependency = Promise;\n }\n var constructors = [AWS.Request, AWS.Credentials, AWS.CredentialProviderChain];\n if (AWS.S3) {\n constructors.push(AWS.S3);\n if (AWS.S3.ManagedUpload) {\n constructors.push(AWS.S3.ManagedUpload);\n }\n }\n AWS.util.addPromises(constructors, PromisesDependency);\n },\n\n /**\n * Gets the promise dependency set by `AWS.config.setPromisesDependency`.\n */\n getPromisesDependency: function getPromisesDependency() {\n return PromisesDependency;\n }\n});\n\n/**\n * @return [AWS.Config] The global configuration object singleton instance\n * @readonly\n * @see AWS.Config\n */\nAWS.config = new AWS.Config();\n","var AWS = require('./core');\n/**\n * @api private\n */\nfunction validateRegionalEndpointsFlagValue(configValue, errorOptions) {\n if (typeof configValue !== 'string') return undefined;\n else if (['legacy', 'regional'].indexOf(configValue.toLowerCase()) >= 0) {\n return configValue.toLowerCase();\n } else {\n throw AWS.util.error(new Error(), errorOptions);\n }\n}\n\n/**\n * Resolve the configuration value for regional endpoint from difference sources: client\n * config, environmental variable, shared config file. Value can be case-insensitive\n * 'legacy' or 'reginal'.\n * @param originalConfig user-supplied config object to resolve\n * @param options a map of config property names from individual configuration source\n * - env: name of environmental variable that refers to the config\n * - sharedConfig: name of shared configuration file property that refers to the config\n * - clientConfig: name of client configuration property that refers to the config\n *\n * @api private\n */\nfunction resolveRegionalEndpointsFlag(originalConfig, options) {\n originalConfig = originalConfig || {};\n //validate config value\n var resolved;\n if (originalConfig[options.clientConfig]) {\n resolved = validateRegionalEndpointsFlagValue(originalConfig[options.clientConfig], {\n code: 'InvalidConfiguration',\n message: 'invalid \"' + options.clientConfig + '\" configuration. Expect \"legacy\" ' +\n ' or \"regional\". Got \"' + originalConfig[options.clientConfig] + '\".'\n });\n if (resolved) return resolved;\n }\n if (!AWS.util.isNode()) return resolved;\n //validate environmental variable\n if (Object.prototype.hasOwnProperty.call(process.env, options.env)) {\n var envFlag = process.env[options.env];\n resolved = validateRegionalEndpointsFlagValue(envFlag, {\n code: 'InvalidEnvironmentalVariable',\n message: 'invalid ' + options.env + ' environmental variable. Expect \"legacy\" ' +\n ' or \"regional\". Got \"' + process.env[options.env] + '\".'\n });\n if (resolved) return resolved;\n }\n //validate shared config file\n var profile = {};\n try {\n var profiles = AWS.util.getProfilesFromSharedConfig(AWS.util.iniLoader);\n profile = profiles[process.env.AWS_PROFILE || AWS.util.defaultProfile];\n } catch (e) {};\n if (profile && Object.prototype.hasOwnProperty.call(profile, options.sharedConfig)) {\n var fileFlag = profile[options.sharedConfig];\n resolved = validateRegionalEndpointsFlagValue(fileFlag, {\n code: 'InvalidConfiguration',\n message: 'invalid ' + options.sharedConfig + ' profile config. Expect \"legacy\" ' +\n ' or \"regional\". Got \"' + profile[options.sharedConfig] + '\".'\n });\n if (resolved) return resolved;\n }\n return resolved;\n}\n\nmodule.exports = resolveRegionalEndpointsFlag;\n","/**\n * The main AWS namespace\n */\nvar AWS = { util: require('./util') };\n\n/**\n * @api private\n * @!macro [new] nobrowser\n * @note This feature is not supported in the browser environment of the SDK.\n */\nvar _hidden = {}; _hidden.toString(); // hack to parse macro\n\n/**\n * @api private\n */\nmodule.exports = AWS;\n\nAWS.util.update(AWS, {\n\n /**\n * @constant\n */\n VERSION: '2.1478.0',\n\n /**\n * @api private\n */\n Signers: {},\n\n /**\n * @api private\n */\n Protocol: {\n Json: require('./protocol/json'),\n Query: require('./protocol/query'),\n Rest: require('./protocol/rest'),\n RestJson: require('./protocol/rest_json'),\n RestXml: require('./protocol/rest_xml')\n },\n\n /**\n * @api private\n */\n XML: {\n Builder: require('./xml/builder'),\n Parser: null // conditionally set based on environment\n },\n\n /**\n * @api private\n */\n JSON: {\n Builder: require('./json/builder'),\n Parser: require('./json/parser')\n },\n\n /**\n * @api private\n */\n Model: {\n Api: require('./model/api'),\n Operation: require('./model/operation'),\n Shape: require('./model/shape'),\n Paginator: require('./model/paginator'),\n ResourceWaiter: require('./model/resource_waiter')\n },\n\n /**\n * @api private\n */\n apiLoader: require('./api_loader'),\n\n /**\n * @api private\n */\n EndpointCache: require('../vendor/endpoint-cache').EndpointCache\n});\nrequire('./sequential_executor');\nrequire('./service');\nrequire('./config');\nrequire('./http');\nrequire('./event_listeners');\nrequire('./request');\nrequire('./response');\nrequire('./resource_waiter');\nrequire('./signers/request_signer');\nrequire('./param_validator');\nrequire('./maintenance_mode_message');\n\n/**\n * @readonly\n * @return [AWS.SequentialExecutor] a collection of global event listeners that\n * are attached to every sent request.\n * @see AWS.Request AWS.Request for a list of events to listen for\n * @example Logging the time taken to send a request\n * AWS.events.on('send', function startSend(resp) {\n * resp.startTime = new Date().getTime();\n * }).on('complete', function calculateTime(resp) {\n * var time = (new Date().getTime() - resp.startTime) / 1000;\n * console.log('Request took ' + time + ' seconds');\n * });\n *\n * new AWS.S3().listBuckets(); // prints 'Request took 0.285 seconds'\n */\nAWS.events = new AWS.SequentialExecutor();\n\n//create endpoint cache lazily\nAWS.util.memoizedProperty(AWS, 'endpointCache', function() {\n return new AWS.EndpointCache(AWS.config.endpointCacheSize);\n}, true);\n","var AWS = require('./core');\n\n/**\n * Represents your AWS security credentials, specifically the\n * {accessKeyId}, {secretAccessKey}, and optional {sessionToken}.\n * Creating a `Credentials` object allows you to pass around your\n * security information to configuration and service objects.\n *\n * Note that this class typically does not need to be constructed manually,\n * as the {AWS.Config} and {AWS.Service} classes both accept simple\n * options hashes with the three keys. These structures will be converted\n * into Credentials objects automatically.\n *\n * ## Expiring and Refreshing Credentials\n *\n * Occasionally credentials can expire in the middle of a long-running\n * application. In this case, the SDK will automatically attempt to\n * refresh the credentials from the storage location if the Credentials\n * class implements the {refresh} method.\n *\n * If you are implementing a credential storage location, you\n * will want to create a subclass of the `Credentials` class and\n * override the {refresh} method. This method allows credentials to be\n * retrieved from the backing store, be it a file system, database, or\n * some network storage. The method should reset the credential attributes\n * on the object.\n *\n * @!attribute expired\n * @return [Boolean] whether the credentials have been expired and\n * require a refresh. Used in conjunction with {expireTime}.\n * @!attribute expireTime\n * @return [Date] a time when credentials should be considered expired. Used\n * in conjunction with {expired}.\n * @!attribute accessKeyId\n * @return [String] the AWS access key ID\n * @!attribute secretAccessKey\n * @return [String] the AWS secret access key\n * @!attribute sessionToken\n * @return [String] an optional AWS session token\n */\nAWS.Credentials = AWS.util.inherit({\n /**\n * A credentials object can be created using positional arguments or an options\n * hash.\n *\n * @overload AWS.Credentials(accessKeyId, secretAccessKey, sessionToken=null)\n * Creates a Credentials object with a given set of credential information\n * as positional arguments.\n * @param accessKeyId [String] the AWS access key ID\n * @param secretAccessKey [String] the AWS secret access key\n * @param sessionToken [String] the optional AWS session token\n * @example Create a credentials object with AWS credentials\n * var creds = new AWS.Credentials('akid', 'secret', 'session');\n * @overload AWS.Credentials(options)\n * Creates a Credentials object with a given set of credential information\n * as an options hash.\n * @option options accessKeyId [String] the AWS access key ID\n * @option options secretAccessKey [String] the AWS secret access key\n * @option options sessionToken [String] the optional AWS session token\n * @example Create a credentials object with AWS credentials\n * var creds = new AWS.Credentials({\n * accessKeyId: 'akid', secretAccessKey: 'secret', sessionToken: 'session'\n * });\n */\n constructor: function Credentials() {\n // hide secretAccessKey from being displayed with util.inspect\n AWS.util.hideProperties(this, ['secretAccessKey']);\n\n this.expired = false;\n this.expireTime = null;\n this.refreshCallbacks = [];\n if (arguments.length === 1 && typeof arguments[0] === 'object') {\n var creds = arguments[0].credentials || arguments[0];\n this.accessKeyId = creds.accessKeyId;\n this.secretAccessKey = creds.secretAccessKey;\n this.sessionToken = creds.sessionToken;\n } else {\n this.accessKeyId = arguments[0];\n this.secretAccessKey = arguments[1];\n this.sessionToken = arguments[2];\n }\n },\n\n /**\n * @return [Integer] the number of seconds before {expireTime} during which\n * the credentials will be considered expired.\n */\n expiryWindow: 15,\n\n /**\n * @return [Boolean] whether the credentials object should call {refresh}\n * @note Subclasses should override this method to provide custom refresh\n * logic.\n */\n needsRefresh: function needsRefresh() {\n var currentTime = AWS.util.date.getDate().getTime();\n var adjustedTime = new Date(currentTime + this.expiryWindow * 1000);\n\n if (this.expireTime && adjustedTime > this.expireTime) {\n return true;\n } else {\n return this.expired || !this.accessKeyId || !this.secretAccessKey;\n }\n },\n\n /**\n * Gets the existing credentials, refreshing them if they are not yet loaded\n * or have expired. Users should call this method before using {refresh},\n * as this will not attempt to reload credentials when they are already\n * loaded into the object.\n *\n * @callback callback function(err)\n * When this callback is called with no error, it means either credentials\n * do not need to be refreshed or refreshed credentials information has\n * been loaded into the object (as the `accessKeyId`, `secretAccessKey`,\n * and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n */\n get: function get(callback) {\n var self = this;\n if (this.needsRefresh()) {\n this.refresh(function(err) {\n if (!err) self.expired = false; // reset expired flag\n if (callback) callback(err);\n });\n } else if (callback) {\n callback();\n }\n },\n\n /**\n * @!method getPromise()\n * Returns a 'thenable' promise.\n * Gets the existing credentials, refreshing them if they are not yet loaded\n * or have expired. Users should call this method before using {refresh},\n * as this will not attempt to reload credentials when they are already\n * loaded into the object.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function()\n * Called if the promise is fulfilled. When this callback is called, it\n * means either credentials do not need to be refreshed or refreshed\n * credentials information has been loaded into the object (as the\n * `accessKeyId`, `secretAccessKey`, and `sessionToken` properties).\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] if an error occurred, this value will be filled\n * @return [Promise] A promise that represents the state of the `get` call.\n * @example Calling the `getPromise` method.\n * var promise = credProvider.getPromise();\n * promise.then(function() { ... }, function(err) { ... });\n */\n\n /**\n * @!method refreshPromise()\n * Returns a 'thenable' promise.\n * Refreshes the credentials. Users should call {get} before attempting\n * to forcibly refresh credentials.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function()\n * Called if the promise is fulfilled. When this callback is called, it\n * means refreshed credentials information has been loaded into the object\n * (as the `accessKeyId`, `secretAccessKey`, and `sessionToken` properties).\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] if an error occurred, this value will be filled\n * @return [Promise] A promise that represents the state of the `refresh` call.\n * @example Calling the `refreshPromise` method.\n * var promise = credProvider.refreshPromise();\n * promise.then(function() { ... }, function(err) { ... });\n */\n\n /**\n * Refreshes the credentials. Users should call {get} before attempting\n * to forcibly refresh credentials.\n *\n * @callback callback function(err)\n * When this callback is called with no error, it means refreshed\n * credentials information has been loaded into the object (as the\n * `accessKeyId`, `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @note Subclasses should override this class to reset the\n * {accessKeyId}, {secretAccessKey} and optional {sessionToken}\n * on the credentials object and then call the callback with\n * any error information.\n * @see get\n */\n refresh: function refresh(callback) {\n this.expired = false;\n callback();\n },\n\n /**\n * @api private\n * @param callback\n */\n coalesceRefresh: function coalesceRefresh(callback, sync) {\n var self = this;\n if (self.refreshCallbacks.push(callback) === 1) {\n self.load(function onLoad(err) {\n AWS.util.arrayEach(self.refreshCallbacks, function(callback) {\n if (sync) {\n callback(err);\n } else {\n // callback could throw, so defer to ensure all callbacks are notified\n AWS.util.defer(function () {\n callback(err);\n });\n }\n });\n self.refreshCallbacks.length = 0;\n });\n }\n },\n\n /**\n * @api private\n * @param callback\n */\n load: function load(callback) {\n callback();\n }\n});\n\n/**\n * @api private\n */\nAWS.Credentials.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.getPromise = AWS.util.promisifyMethod('get', PromiseDependency);\n this.prototype.refreshPromise = AWS.util.promisifyMethod('refresh', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.Credentials.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.getPromise;\n delete this.prototype.refreshPromise;\n};\n\nAWS.util.addPromises(AWS.Credentials);\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents temporary credentials retrieved from {AWS.STS}. Without any\n * extra parameters, credentials will be fetched from the\n * {AWS.STS.getSessionToken} operation. If an IAM role is provided, the\n * {AWS.STS.assumeRole} operation will be used to fetch credentials for the\n * role instead.\n *\n * AWS.ChainableTemporaryCredentials differs from AWS.TemporaryCredentials in\n * the way masterCredentials and refreshes are handled.\n * AWS.ChainableTemporaryCredentials refreshes expired credentials using the\n * masterCredentials passed by the user to support chaining of STS credentials.\n * However, AWS.TemporaryCredentials recursively collapses the masterCredentials\n * during instantiation, precluding the ability to refresh credentials which\n * require intermediate, temporary credentials.\n *\n * For example, if the application should use RoleA, which must be assumed from\n * RoleB, and the environment provides credentials which can assume RoleB, then\n * AWS.ChainableTemporaryCredentials must be used to support refreshing the\n * temporary credentials for RoleA:\n *\n * ```javascript\n * var roleACreds = new AWS.ChainableTemporaryCredentials({\n * params: {RoleArn: 'RoleA'},\n * masterCredentials: new AWS.ChainableTemporaryCredentials({\n * params: {RoleArn: 'RoleB'},\n * masterCredentials: new AWS.EnvironmentCredentials('AWS')\n * })\n * });\n * ```\n *\n * If AWS.TemporaryCredentials had been used in the previous example,\n * `roleACreds` would fail to refresh because `roleACreds` would\n * use the environment credentials for the AssumeRole request.\n *\n * Another difference is that AWS.ChainableTemporaryCredentials creates the STS\n * service instance during instantiation while AWS.TemporaryCredentials creates\n * the STS service instance during the first refresh. Creating the service\n * instance during instantiation effectively captures the master credentials\n * from the global config, so that subsequent changes to the global config do\n * not affect the master credentials used to refresh the temporary credentials.\n *\n * This allows an instance of AWS.ChainableTemporaryCredentials to be assigned\n * to AWS.config.credentials:\n *\n * ```javascript\n * var envCreds = new AWS.EnvironmentCredentials('AWS');\n * AWS.config.credentials = envCreds;\n * // masterCredentials will be envCreds\n * AWS.config.credentials = new AWS.ChainableTemporaryCredentials({\n * params: {RoleArn: '...'}\n * });\n * ```\n *\n * Similarly, to use the CredentialProviderChain's default providers as the\n * master credentials, simply create a new instance of\n * AWS.ChainableTemporaryCredentials:\n *\n * ```javascript\n * AWS.config.credentials = new ChainableTemporaryCredentials({\n * params: {RoleArn: '...'}\n * });\n * ```\n *\n * @!attribute service\n * @return [AWS.STS] the STS service instance used to\n * get and refresh temporary credentials from AWS STS.\n * @note (see constructor)\n */\nAWS.ChainableTemporaryCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new temporary credentials object.\n *\n * @param options [map] a set of options\n * @option options params [map] ({}) a map of options that are passed to the\n * {AWS.STS.assumeRole} or {AWS.STS.getSessionToken} operations.\n * If a `RoleArn` parameter is passed in, credentials will be based on the\n * IAM role. If a `SerialNumber` parameter is passed in, {tokenCodeFn} must\n * also be passed in or an error will be thrown.\n * @option options masterCredentials [AWS.Credentials] the master credentials\n * used to get and refresh temporary credentials from AWS STS. By default,\n * AWS.config.credentials or AWS.config.credentialProvider will be used.\n * @option options tokenCodeFn [Function] (null) Function to provide\n * `TokenCode`, if `SerialNumber` is provided for profile in {params}. Function\n * is called with value of `SerialNumber` and `callback`, and should provide\n * the `TokenCode` or an error to the callback in the format\n * `callback(err, token)`.\n * @example Creating a new credentials object for generic temporary credentials\n * AWS.config.credentials = new AWS.ChainableTemporaryCredentials();\n * @example Creating a new credentials object for an IAM role\n * AWS.config.credentials = new AWS.ChainableTemporaryCredentials({\n * params: {\n * RoleArn: 'arn:aws:iam::1234567890:role/TemporaryCredentials'\n * }\n * });\n * @see AWS.STS.assumeRole\n * @see AWS.STS.getSessionToken\n */\n constructor: function ChainableTemporaryCredentials(options) {\n AWS.Credentials.call(this);\n options = options || {};\n this.errorCode = 'ChainableTemporaryCredentialsProviderFailure';\n this.expired = true;\n this.tokenCodeFn = null;\n\n var params = AWS.util.copy(options.params) || {};\n if (params.RoleArn) {\n params.RoleSessionName = params.RoleSessionName || 'temporary-credentials';\n }\n if (params.SerialNumber) {\n if (!options.tokenCodeFn || (typeof options.tokenCodeFn !== 'function')) {\n throw new AWS.util.error(\n new Error('tokenCodeFn must be a function when params.SerialNumber is given'),\n {code: this.errorCode}\n );\n } else {\n this.tokenCodeFn = options.tokenCodeFn;\n }\n }\n var config = AWS.util.merge(\n {\n params: params,\n credentials: options.masterCredentials || AWS.config.credentials\n },\n options.stsConfig || {}\n );\n this.service = new STS(config);\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRole} or\n * {AWS.STS.getSessionToken}, depending on whether an IAM role ARN was passed\n * to the credentials {constructor}.\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see AWS.Credentials.get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n * @param callback\n */\n load: function load(callback) {\n var self = this;\n var operation = self.service.config.params.RoleArn ? 'assumeRole' : 'getSessionToken';\n this.getTokenCode(function (err, tokenCode) {\n var params = {};\n if (err) {\n callback(err);\n return;\n }\n if (tokenCode) {\n params.TokenCode = tokenCode;\n }\n self.service[operation](params, function (err, data) {\n if (!err) {\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n });\n },\n\n /**\n * @api private\n */\n getTokenCode: function getTokenCode(callback) {\n var self = this;\n if (this.tokenCodeFn) {\n this.tokenCodeFn(this.service.config.params.SerialNumber, function (err, token) {\n if (err) {\n var message = err;\n if (err instanceof Error) {\n message = err.message;\n }\n callback(\n AWS.util.error(\n new Error('Error fetching MFA token: ' + message),\n { code: self.errorCode}\n )\n );\n return;\n }\n callback(null, token);\n });\n } else {\n callback(null);\n }\n }\n});\n","var AWS = require('../core');\nvar CognitoIdentity = require('../../clients/cognitoidentity');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents credentials retrieved from STS Web Identity Federation using\n * the Amazon Cognito Identity service.\n *\n * By default this provider gets credentials using the\n * {AWS.CognitoIdentity.getCredentialsForIdentity} service operation, which\n * requires either an `IdentityId` or an `IdentityPoolId` (Amazon Cognito\n * Identity Pool ID), which is used to call {AWS.CognitoIdentity.getId} to\n * obtain an `IdentityId`. If the identity or identity pool is not configured in\n * the Amazon Cognito Console to use IAM roles with the appropriate permissions,\n * then additionally a `RoleArn` is required containing the ARN of the IAM trust\n * policy for the Amazon Cognito role that the user will log into. If a `RoleArn`\n * is provided, then this provider gets credentials using the\n * {AWS.STS.assumeRoleWithWebIdentity} service operation, after first getting an\n * Open ID token from {AWS.CognitoIdentity.getOpenIdToken}.\n *\n * In addition, if this credential provider is used to provide authenticated\n * login, the `Logins` map may be set to the tokens provided by the respective\n * identity providers. See {constructor} for an example on creating a credentials\n * object with proper property values.\n *\n * ## Refreshing Credentials from Identity Service\n *\n * In addition to AWS credentials expiring after a given amount of time, the\n * login token from the identity provider will also expire. Once this token\n * expires, it will not be usable to refresh AWS credentials, and another\n * token will be needed. The SDK does not manage refreshing of the token value,\n * but this can be done through a \"refresh token\" supported by most identity\n * providers. Consult the documentation for the identity provider for refreshing\n * tokens. Once the refreshed token is acquired, you should make sure to update\n * this new token in the credentials object's {params} property. The following\n * code will update the WebIdentityToken, assuming you have retrieved an updated\n * token from the identity provider:\n *\n * ```javascript\n * AWS.config.credentials.params.Logins['graph.facebook.com'] = updatedToken;\n * ```\n *\n * Future calls to `credentials.refresh()` will now use the new token.\n *\n * @!attribute params\n * @return [map] the map of params passed to\n * {AWS.CognitoIdentity.getId},\n * {AWS.CognitoIdentity.getOpenIdToken}, and\n * {AWS.STS.assumeRoleWithWebIdentity}. To update the token, set the\n * `params.WebIdentityToken` property.\n * @!attribute data\n * @return [map] the raw data response from the call to\n * {AWS.CognitoIdentity.getCredentialsForIdentity}, or\n * {AWS.STS.assumeRoleWithWebIdentity}. Use this if you want to get\n * access to other properties from the response.\n * @!attribute identityId\n * @return [String] the Cognito ID returned by the last call to\n * {AWS.CognitoIdentity.getOpenIdToken}. This ID represents the actual\n * final resolved identity ID from Amazon Cognito.\n */\nAWS.CognitoIdentityCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * @api private\n */\n localStorageKey: {\n id: 'aws.cognito.identity-id.',\n providers: 'aws.cognito.identity-providers.'\n },\n\n /**\n * Creates a new credentials object.\n * @example Creating a new credentials object\n * AWS.config.credentials = new AWS.CognitoIdentityCredentials({\n *\n * // either IdentityPoolId or IdentityId is required\n * // See the IdentityPoolId param for AWS.CognitoIdentity.getID (linked below)\n * // See the IdentityId param for AWS.CognitoIdentity.getCredentialsForIdentity\n * // or AWS.CognitoIdentity.getOpenIdToken (linked below)\n * IdentityPoolId: 'us-east-1:1699ebc0-7900-4099-b910-2df94f52a030',\n * IdentityId: 'us-east-1:128d0a74-c82f-4553-916d-90053e4a8b0f'\n *\n * // optional, only necessary when the identity pool is not configured\n * // to use IAM roles in the Amazon Cognito Console\n * // See the RoleArn param for AWS.STS.assumeRoleWithWebIdentity (linked below)\n * RoleArn: 'arn:aws:iam::1234567890:role/MYAPP-CognitoIdentity',\n *\n * // optional tokens, used for authenticated login\n * // See the Logins param for AWS.CognitoIdentity.getID (linked below)\n * Logins: {\n * 'graph.facebook.com': 'FBTOKEN',\n * 'www.amazon.com': 'AMAZONTOKEN',\n * 'accounts.google.com': 'GOOGLETOKEN',\n * 'api.twitter.com': 'TWITTERTOKEN',\n * 'www.digits.com': 'DIGITSTOKEN'\n * },\n *\n * // optional name, defaults to web-identity\n * // See the RoleSessionName param for AWS.STS.assumeRoleWithWebIdentity (linked below)\n * RoleSessionName: 'web',\n *\n * // optional, only necessary when application runs in a browser\n * // and multiple users are signed in at once, used for caching\n * LoginId: 'example@gmail.com'\n *\n * }, {\n * // optionally provide configuration to apply to the underlying service clients\n * // if configuration is not provided, then configuration will be pulled from AWS.config\n *\n * // region should match the region your identity pool is located in\n * region: 'us-east-1',\n *\n * // specify timeout options\n * httpOptions: {\n * timeout: 100\n * }\n * });\n * @see AWS.CognitoIdentity.getId\n * @see AWS.CognitoIdentity.getCredentialsForIdentity\n * @see AWS.STS.assumeRoleWithWebIdentity\n * @see AWS.CognitoIdentity.getOpenIdToken\n * @see AWS.Config\n * @note If a region is not provided in the global AWS.config, or\n * specified in the `clientConfig` to the CognitoIdentityCredentials\n * constructor, you may encounter a 'Missing credentials in config' error\n * when calling making a service call.\n */\n constructor: function CognitoIdentityCredentials(params, clientConfig) {\n AWS.Credentials.call(this);\n this.expired = true;\n this.params = params;\n this.data = null;\n this._identityId = null;\n this._clientConfig = AWS.util.copy(clientConfig || {});\n this.loadCachedId();\n var self = this;\n Object.defineProperty(this, 'identityId', {\n get: function() {\n self.loadCachedId();\n return self._identityId || self.params.IdentityId;\n },\n set: function(identityId) {\n self._identityId = identityId;\n }\n });\n },\n\n /**\n * Refreshes credentials using {AWS.CognitoIdentity.getCredentialsForIdentity},\n * or {AWS.STS.assumeRoleWithWebIdentity}.\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see AWS.Credentials.get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n * @param callback\n */\n load: function load(callback) {\n var self = this;\n self.createClients();\n self.data = null;\n self._identityId = null;\n self.getId(function(err) {\n if (!err) {\n if (!self.params.RoleArn) {\n self.getCredentialsForIdentity(callback);\n } else {\n self.getCredentialsFromSTS(callback);\n }\n } else {\n self.clearIdOnNotAuthorized(err);\n callback(err);\n }\n });\n },\n\n /**\n * Clears the cached Cognito ID associated with the currently configured\n * identity pool ID. Use this to manually invalidate your cache if\n * the identity pool ID was deleted.\n */\n clearCachedId: function clearCache() {\n this._identityId = null;\n delete this.params.IdentityId;\n\n var poolId = this.params.IdentityPoolId;\n var loginId = this.params.LoginId || '';\n delete this.storage[this.localStorageKey.id + poolId + loginId];\n delete this.storage[this.localStorageKey.providers + poolId + loginId];\n },\n\n /**\n * @api private\n */\n clearIdOnNotAuthorized: function clearIdOnNotAuthorized(err) {\n var self = this;\n if (err.code == 'NotAuthorizedException') {\n self.clearCachedId();\n }\n },\n\n /**\n * Retrieves a Cognito ID, loading from cache if it was already retrieved\n * on this device.\n *\n * @callback callback function(err, identityId)\n * @param err [Error, null] an error object if the call failed or null if\n * it succeeded.\n * @param identityId [String, null] if successful, the callback will return\n * the Cognito ID.\n * @note If not loaded explicitly, the Cognito ID is loaded and stored in\n * localStorage in the browser environment of a device.\n * @api private\n */\n getId: function getId(callback) {\n var self = this;\n if (typeof self.params.IdentityId === 'string') {\n return callback(null, self.params.IdentityId);\n }\n\n self.cognito.getId(function(err, data) {\n if (!err && data.IdentityId) {\n self.params.IdentityId = data.IdentityId;\n callback(null, data.IdentityId);\n } else {\n callback(err);\n }\n });\n },\n\n\n /**\n * @api private\n */\n loadCredentials: function loadCredentials(data, credentials) {\n if (!data || !credentials) return;\n credentials.expired = false;\n credentials.accessKeyId = data.Credentials.AccessKeyId;\n credentials.secretAccessKey = data.Credentials.SecretKey;\n credentials.sessionToken = data.Credentials.SessionToken;\n credentials.expireTime = data.Credentials.Expiration;\n },\n\n /**\n * @api private\n */\n getCredentialsForIdentity: function getCredentialsForIdentity(callback) {\n var self = this;\n self.cognito.getCredentialsForIdentity(function(err, data) {\n if (!err) {\n self.cacheId(data);\n self.data = data;\n self.loadCredentials(self.data, self);\n } else {\n self.clearIdOnNotAuthorized(err);\n }\n callback(err);\n });\n },\n\n /**\n * @api private\n */\n getCredentialsFromSTS: function getCredentialsFromSTS(callback) {\n var self = this;\n self.cognito.getOpenIdToken(function(err, data) {\n if (!err) {\n self.cacheId(data);\n self.params.WebIdentityToken = data.Token;\n self.webIdentityCredentials.refresh(function(webErr) {\n if (!webErr) {\n self.data = self.webIdentityCredentials.data;\n self.sts.credentialsFrom(self.data, self);\n }\n callback(webErr);\n });\n } else {\n self.clearIdOnNotAuthorized(err);\n callback(err);\n }\n });\n },\n\n /**\n * @api private\n */\n loadCachedId: function loadCachedId() {\n var self = this;\n\n // in the browser we source default IdentityId from localStorage\n if (AWS.util.isBrowser() && !self.params.IdentityId) {\n var id = self.getStorage('id');\n if (id && self.params.Logins) {\n var actualProviders = Object.keys(self.params.Logins);\n var cachedProviders =\n (self.getStorage('providers') || '').split(',');\n\n // only load ID if at least one provider used this ID before\n var intersect = cachedProviders.filter(function(n) {\n return actualProviders.indexOf(n) !== -1;\n });\n if (intersect.length !== 0) {\n self.params.IdentityId = id;\n }\n } else if (id) {\n self.params.IdentityId = id;\n }\n }\n },\n\n /**\n * @api private\n */\n createClients: function() {\n var clientConfig = this._clientConfig;\n this.webIdentityCredentials = this.webIdentityCredentials ||\n new AWS.WebIdentityCredentials(this.params, clientConfig);\n if (!this.cognito) {\n var cognitoConfig = AWS.util.merge({}, clientConfig);\n cognitoConfig.params = this.params;\n this.cognito = new CognitoIdentity(cognitoConfig);\n }\n this.sts = this.sts || new STS(clientConfig);\n },\n\n /**\n * @api private\n */\n cacheId: function cacheId(data) {\n this._identityId = data.IdentityId;\n this.params.IdentityId = this._identityId;\n\n // cache this IdentityId in browser localStorage if possible\n if (AWS.util.isBrowser()) {\n this.setStorage('id', data.IdentityId);\n\n if (this.params.Logins) {\n this.setStorage('providers', Object.keys(this.params.Logins).join(','));\n }\n }\n },\n\n /**\n * @api private\n */\n getStorage: function getStorage(key) {\n return this.storage[this.localStorageKey[key] + this.params.IdentityPoolId + (this.params.LoginId || '')];\n },\n\n /**\n * @api private\n */\n setStorage: function setStorage(key, val) {\n try {\n this.storage[this.localStorageKey[key] + this.params.IdentityPoolId + (this.params.LoginId || '')] = val;\n } catch (_) {}\n },\n\n /**\n * @api private\n */\n storage: (function() {\n try {\n var storage = AWS.util.isBrowser() && window.localStorage !== null && typeof window.localStorage === 'object' ?\n window.localStorage : {};\n\n // Test set/remove which would throw an error in Safari's private browsing\n storage['aws.test-storage'] = 'foobar';\n delete storage['aws.test-storage'];\n\n return storage;\n } catch (_) {\n return {};\n }\n })()\n});\n","var AWS = require('../core');\n\n/**\n * Creates a credential provider chain that searches for AWS credentials\n * in a list of credential providers specified by the {providers} property.\n *\n * By default, the chain will use the {defaultProviders} to resolve credentials.\n * These providers will look in the environment using the\n * {AWS.EnvironmentCredentials} class with the 'AWS' and 'AMAZON' prefixes.\n *\n * ## Setting Providers\n *\n * Each provider in the {providers} list should be a function that returns\n * a {AWS.Credentials} object, or a hardcoded credentials object. The function\n * form allows for delayed execution of the credential construction.\n *\n * ## Resolving Credentials from a Chain\n *\n * Call {resolve} to return the first valid credential object that can be\n * loaded by the provider chain.\n *\n * For example, to resolve a chain with a custom provider that checks a file\n * on disk after the set of {defaultProviders}:\n *\n * ```javascript\n * var diskProvider = new AWS.FileSystemCredentials('./creds.json');\n * var chain = new AWS.CredentialProviderChain();\n * chain.providers.push(diskProvider);\n * chain.resolve();\n * ```\n *\n * The above code will return the `diskProvider` object if the\n * file contains credentials and the `defaultProviders` do not contain\n * any credential settings.\n *\n * @!attribute providers\n * @return [Array]\n * a list of credentials objects or functions that return credentials\n * objects. If the provider is a function, the function will be\n * executed lazily when the provider needs to be checked for valid\n * credentials. By default, this object will be set to the\n * {defaultProviders}.\n * @see defaultProviders\n */\nAWS.CredentialProviderChain = AWS.util.inherit(AWS.Credentials, {\n\n /**\n * Creates a new CredentialProviderChain with a default set of providers\n * specified by {defaultProviders}.\n */\n constructor: function CredentialProviderChain(providers) {\n if (providers) {\n this.providers = providers;\n } else {\n this.providers = AWS.CredentialProviderChain.defaultProviders.slice(0);\n }\n this.resolveCallbacks = [];\n },\n\n /**\n * @!method resolvePromise()\n * Returns a 'thenable' promise.\n * Resolves the provider chain by searching for the first set of\n * credentials in {providers}.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function(credentials)\n * Called if the promise is fulfilled and the provider resolves the chain\n * to a credentials object\n * @param credentials [AWS.Credentials] the credentials object resolved\n * by the provider chain.\n * @callback rejectedCallback function(error)\n * Called if the promise is rejected.\n * @param err [Error] the error object returned if no credentials are found.\n * @return [Promise] A promise that represents the state of the `resolve` method call.\n * @example Calling the `resolvePromise` method.\n * var promise = chain.resolvePromise();\n * promise.then(function(credentials) { ... }, function(err) { ... });\n */\n\n /**\n * Resolves the provider chain by searching for the first set of\n * credentials in {providers}.\n *\n * @callback callback function(err, credentials)\n * Called when the provider resolves the chain to a credentials object\n * or null if no credentials can be found.\n *\n * @param err [Error] the error object returned if no credentials are\n * found.\n * @param credentials [AWS.Credentials] the credentials object resolved\n * by the provider chain.\n * @return [AWS.CredentialProviderChain] the provider, for chaining.\n */\n resolve: function resolve(callback) {\n var self = this;\n if (self.providers.length === 0) {\n callback(new Error('No providers'));\n return self;\n }\n\n if (self.resolveCallbacks.push(callback) === 1) {\n var index = 0;\n var providers = self.providers.slice(0);\n\n function resolveNext(err, creds) {\n if ((!err && creds) || index === providers.length) {\n AWS.util.arrayEach(self.resolveCallbacks, function (callback) {\n callback(err, creds);\n });\n self.resolveCallbacks.length = 0;\n return;\n }\n\n var provider = providers[index++];\n if (typeof provider === 'function') {\n creds = provider.call();\n } else {\n creds = provider;\n }\n\n if (creds.get) {\n creds.get(function (getErr) {\n resolveNext(getErr, getErr ? null : creds);\n });\n } else {\n resolveNext(null, creds);\n }\n }\n\n resolveNext();\n }\n\n return self;\n }\n});\n\n/**\n * The default set of providers used by a vanilla CredentialProviderChain.\n *\n * In the browser:\n *\n * ```javascript\n * AWS.CredentialProviderChain.defaultProviders = []\n * ```\n *\n * In Node.js:\n *\n * ```javascript\n * AWS.CredentialProviderChain.defaultProviders = [\n * function () { return new AWS.EnvironmentCredentials('AWS'); },\n * function () { return new AWS.EnvironmentCredentials('AMAZON'); },\n * function () { return new AWS.SsoCredentials(); },\n * function () { return new AWS.SharedIniFileCredentials(); },\n * function () { return new AWS.ECSCredentials(); },\n * function () { return new AWS.ProcessCredentials(); },\n * function () { return new AWS.TokenFileWebIdentityCredentials(); },\n * function () { return new AWS.EC2MetadataCredentials() }\n * ]\n * ```\n */\nAWS.CredentialProviderChain.defaultProviders = [];\n\n/**\n * @api private\n */\nAWS.CredentialProviderChain.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.resolvePromise = AWS.util.promisifyMethod('resolve', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.CredentialProviderChain.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.resolvePromise;\n};\n\nAWS.util.addPromises(AWS.CredentialProviderChain);\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents credentials retrieved from STS SAML support.\n *\n * By default this provider gets credentials using the\n * {AWS.STS.assumeRoleWithSAML} service operation. This operation\n * requires a `RoleArn` containing the ARN of the IAM trust policy for the\n * application for which credentials will be given, as well as a `PrincipalArn`\n * representing the ARN for the SAML identity provider. In addition, the\n * `SAMLAssertion` must be set to the token provided by the identity\n * provider. See {constructor} for an example on creating a credentials\n * object with proper `RoleArn`, `PrincipalArn`, and `SAMLAssertion` values.\n *\n * ## Refreshing Credentials from Identity Service\n *\n * In addition to AWS credentials expiring after a given amount of time, the\n * login token from the identity provider will also expire. Once this token\n * expires, it will not be usable to refresh AWS credentials, and another\n * token will be needed. The SDK does not manage refreshing of the token value,\n * but this can be done through a \"refresh token\" supported by most identity\n * providers. Consult the documentation for the identity provider for refreshing\n * tokens. Once the refreshed token is acquired, you should make sure to update\n * this new token in the credentials object's {params} property. The following\n * code will update the SAMLAssertion, assuming you have retrieved an updated\n * token from the identity provider:\n *\n * ```javascript\n * AWS.config.credentials.params.SAMLAssertion = updatedToken;\n * ```\n *\n * Future calls to `credentials.refresh()` will now use the new token.\n *\n * @!attribute params\n * @return [map] the map of params passed to\n * {AWS.STS.assumeRoleWithSAML}. To update the token, set the\n * `params.SAMLAssertion` property.\n */\nAWS.SAMLCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new credentials object.\n * @param (see AWS.STS.assumeRoleWithSAML)\n * @example Creating a new credentials object\n * AWS.config.credentials = new AWS.SAMLCredentials({\n * RoleArn: 'arn:aws:iam::1234567890:role/SAMLRole',\n * PrincipalArn: 'arn:aws:iam::1234567890:role/SAMLPrincipal',\n * SAMLAssertion: 'base64-token', // base64-encoded token from IdP\n * });\n * @see AWS.STS.assumeRoleWithSAML\n */\n constructor: function SAMLCredentials(params) {\n AWS.Credentials.call(this);\n this.expired = true;\n this.params = params;\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRoleWithSAML}\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n */\n load: function load(callback) {\n var self = this;\n self.createClients();\n self.service.assumeRoleWithSAML(function (err, data) {\n if (!err) {\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n },\n\n /**\n * @api private\n */\n createClients: function() {\n this.service = this.service || new STS({params: this.params});\n }\n\n});\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents temporary credentials retrieved from {AWS.STS}. Without any\n * extra parameters, credentials will be fetched from the\n * {AWS.STS.getSessionToken} operation. If an IAM role is provided, the\n * {AWS.STS.assumeRole} operation will be used to fetch credentials for the\n * role instead.\n *\n * @note AWS.TemporaryCredentials is deprecated, but remains available for\n * backwards compatibility. {AWS.ChainableTemporaryCredentials} is the\n * preferred class for temporary credentials.\n *\n * To setup temporary credentials, configure a set of master credentials\n * using the standard credentials providers (environment, EC2 instance metadata,\n * or from the filesystem), then set the global credentials to a new\n * temporary credentials object:\n *\n * ```javascript\n * // Note that environment credentials are loaded by default,\n * // the following line is shown for clarity:\n * AWS.config.credentials = new AWS.EnvironmentCredentials('AWS');\n *\n * // Now set temporary credentials seeded from the master credentials\n * AWS.config.credentials = new AWS.TemporaryCredentials();\n *\n * // subsequent requests will now use temporary credentials from AWS STS.\n * new AWS.S3().listBucket(function(err, data) { ... });\n * ```\n *\n * @!attribute masterCredentials\n * @return [AWS.Credentials] the master (non-temporary) credentials used to\n * get and refresh temporary credentials from AWS STS.\n * @note (see constructor)\n */\nAWS.TemporaryCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new temporary credentials object.\n *\n * @note In order to create temporary credentials, you first need to have\n * \"master\" credentials configured in {AWS.Config.credentials}. These\n * master credentials are necessary to retrieve the temporary credentials,\n * as well as refresh the credentials when they expire.\n * @param params [map] a map of options that are passed to the\n * {AWS.STS.assumeRole} or {AWS.STS.getSessionToken} operations.\n * If a `RoleArn` parameter is passed in, credentials will be based on the\n * IAM role.\n * @param masterCredentials [AWS.Credentials] the master (non-temporary) credentials\n * used to get and refresh temporary credentials from AWS STS.\n * @example Creating a new credentials object for generic temporary credentials\n * AWS.config.credentials = new AWS.TemporaryCredentials();\n * @example Creating a new credentials object for an IAM role\n * AWS.config.credentials = new AWS.TemporaryCredentials({\n * RoleArn: 'arn:aws:iam::1234567890:role/TemporaryCredentials',\n * });\n * @see AWS.STS.assumeRole\n * @see AWS.STS.getSessionToken\n */\n constructor: function TemporaryCredentials(params, masterCredentials) {\n AWS.Credentials.call(this);\n this.loadMasterCredentials(masterCredentials);\n this.expired = true;\n\n this.params = params || {};\n if (this.params.RoleArn) {\n this.params.RoleSessionName =\n this.params.RoleSessionName || 'temporary-credentials';\n }\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRole} or\n * {AWS.STS.getSessionToken}, depending on whether an IAM role ARN was passed\n * to the credentials {constructor}.\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see get\n */\n refresh: function refresh (callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n */\n load: function load (callback) {\n var self = this;\n self.createClients();\n self.masterCredentials.get(function () {\n self.service.config.credentials = self.masterCredentials;\n var operation = self.params.RoleArn ?\n self.service.assumeRole : self.service.getSessionToken;\n operation.call(self.service, function (err, data) {\n if (!err) {\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n });\n },\n\n /**\n * @api private\n */\n loadMasterCredentials: function loadMasterCredentials (masterCredentials) {\n this.masterCredentials = masterCredentials || AWS.config.credentials;\n while (this.masterCredentials.masterCredentials) {\n this.masterCredentials = this.masterCredentials.masterCredentials;\n }\n\n if (typeof this.masterCredentials.get !== 'function') {\n this.masterCredentials = new AWS.Credentials(this.masterCredentials);\n }\n },\n\n /**\n * @api private\n */\n createClients: function () {\n this.service = this.service || new STS({params: this.params});\n }\n\n});\n","var AWS = require('../core');\nvar STS = require('../../clients/sts');\n\n/**\n * Represents credentials retrieved from STS Web Identity Federation support.\n *\n * By default this provider gets credentials using the\n * {AWS.STS.assumeRoleWithWebIdentity} service operation. This operation\n * requires a `RoleArn` containing the ARN of the IAM trust policy for the\n * application for which credentials will be given. In addition, the\n * `WebIdentityToken` must be set to the token provided by the identity\n * provider. See {constructor} for an example on creating a credentials\n * object with proper `RoleArn` and `WebIdentityToken` values.\n *\n * ## Refreshing Credentials from Identity Service\n *\n * In addition to AWS credentials expiring after a given amount of time, the\n * login token from the identity provider will also expire. Once this token\n * expires, it will not be usable to refresh AWS credentials, and another\n * token will be needed. The SDK does not manage refreshing of the token value,\n * but this can be done through a \"refresh token\" supported by most identity\n * providers. Consult the documentation for the identity provider for refreshing\n * tokens. Once the refreshed token is acquired, you should make sure to update\n * this new token in the credentials object's {params} property. The following\n * code will update the WebIdentityToken, assuming you have retrieved an updated\n * token from the identity provider:\n *\n * ```javascript\n * AWS.config.credentials.params.WebIdentityToken = updatedToken;\n * ```\n *\n * Future calls to `credentials.refresh()` will now use the new token.\n *\n * @!attribute params\n * @return [map] the map of params passed to\n * {AWS.STS.assumeRoleWithWebIdentity}. To update the token, set the\n * `params.WebIdentityToken` property.\n * @!attribute data\n * @return [map] the raw data response from the call to\n * {AWS.STS.assumeRoleWithWebIdentity}. Use this if you want to get\n * access to other properties from the response.\n */\nAWS.WebIdentityCredentials = AWS.util.inherit(AWS.Credentials, {\n /**\n * Creates a new credentials object.\n * @param (see AWS.STS.assumeRoleWithWebIdentity)\n * @example Creating a new credentials object\n * AWS.config.credentials = new AWS.WebIdentityCredentials({\n * RoleArn: 'arn:aws:iam::1234567890:role/WebIdentity',\n * WebIdentityToken: 'ABCDEFGHIJKLMNOP', // token from identity service\n * RoleSessionName: 'web' // optional name, defaults to web-identity\n * }, {\n * // optionally provide configuration to apply to the underlying AWS.STS service client\n * // if configuration is not provided, then configuration will be pulled from AWS.config\n *\n * // specify timeout options\n * httpOptions: {\n * timeout: 100\n * }\n * });\n * @see AWS.STS.assumeRoleWithWebIdentity\n * @see AWS.Config\n */\n constructor: function WebIdentityCredentials(params, clientConfig) {\n AWS.Credentials.call(this);\n this.expired = true;\n this.params = params;\n this.params.RoleSessionName = this.params.RoleSessionName || 'web-identity';\n this.data = null;\n this._clientConfig = AWS.util.copy(clientConfig || {});\n },\n\n /**\n * Refreshes credentials using {AWS.STS.assumeRoleWithWebIdentity}\n *\n * @callback callback function(err)\n * Called when the STS service responds (or fails). When\n * this callback is called with no error, it means that the credentials\n * information has been loaded into the object (as the `accessKeyId`,\n * `secretAccessKey`, and `sessionToken` properties).\n * @param err [Error] if an error occurred, this value will be filled\n * @see get\n */\n refresh: function refresh(callback) {\n this.coalesceRefresh(callback || AWS.util.fn.callback);\n },\n\n /**\n * @api private\n */\n load: function load(callback) {\n var self = this;\n self.createClients();\n self.service.assumeRoleWithWebIdentity(function (err, data) {\n self.data = null;\n if (!err) {\n self.data = data;\n self.service.credentialsFrom(data, self);\n }\n callback(err);\n });\n },\n\n /**\n * @api private\n */\n createClients: function() {\n if (!this.service) {\n var stsConfig = AWS.util.merge({}, this._clientConfig);\n stsConfig.params = this.params;\n this.service = new STS(stsConfig);\n }\n }\n\n});\n","var AWS = require('./core');\nvar util = require('./util');\nvar endpointDiscoveryEnabledEnvs = ['AWS_ENABLE_ENDPOINT_DISCOVERY', 'AWS_ENDPOINT_DISCOVERY_ENABLED'];\n\n/**\n * Generate key (except resources and operation part) to index the endpoints in the cache\n * If input shape has endpointdiscoveryid trait then use\n * accessKey + operation + resources + region + service as cache key\n * If input shape doesn't have endpointdiscoveryid trait then use\n * accessKey + region + service as cache key\n * @return [map] object with keys to index endpoints.\n * @api private\n */\nfunction getCacheKey(request) {\n var service = request.service;\n var api = service.api || {};\n var operations = api.operations;\n var identifiers = {};\n if (service.config.region) {\n identifiers.region = service.config.region;\n }\n if (api.serviceId) {\n identifiers.serviceId = api.serviceId;\n }\n if (service.config.credentials.accessKeyId) {\n identifiers.accessKeyId = service.config.credentials.accessKeyId;\n }\n return identifiers;\n}\n\n/**\n * Recursive helper for marshallCustomIdentifiers().\n * Looks for required string input members that have 'endpointdiscoveryid' trait.\n * @api private\n */\nfunction marshallCustomIdentifiersHelper(result, params, shape) {\n if (!shape || params === undefined || params === null) return;\n if (shape.type === 'structure' && shape.required && shape.required.length > 0) {\n util.arrayEach(shape.required, function(name) {\n var memberShape = shape.members[name];\n if (memberShape.endpointDiscoveryId === true) {\n var locationName = memberShape.isLocationName ? memberShape.name : name;\n result[locationName] = String(params[name]);\n } else {\n marshallCustomIdentifiersHelper(result, params[name], memberShape);\n }\n });\n }\n}\n\n/**\n * Get custom identifiers for cache key.\n * Identifies custom identifiers by checking each shape's `endpointDiscoveryId` trait.\n * @param [object] request object\n * @param [object] input shape of the given operation's api\n * @api private\n */\nfunction marshallCustomIdentifiers(request, shape) {\n var identifiers = {};\n marshallCustomIdentifiersHelper(identifiers, request.params, shape);\n return identifiers;\n}\n\n/**\n * Call endpoint discovery operation when it's optional.\n * When endpoint is available in cache then use the cached endpoints. If endpoints\n * are unavailable then use regional endpoints and call endpoint discovery operation\n * asynchronously. This is turned off by default.\n * @param [object] request object\n * @api private\n */\nfunction optionalDiscoverEndpoint(request) {\n var service = request.service;\n var api = service.api;\n var operationModel = api.operations ? api.operations[request.operation] : undefined;\n var inputShape = operationModel ? operationModel.input : undefined;\n\n var identifiers = marshallCustomIdentifiers(request, inputShape);\n var cacheKey = getCacheKey(request);\n if (Object.keys(identifiers).length > 0) {\n cacheKey = util.update(cacheKey, identifiers);\n if (operationModel) cacheKey.operation = operationModel.name;\n }\n var endpoints = AWS.endpointCache.get(cacheKey);\n if (endpoints && endpoints.length === 1 && endpoints[0].Address === '') {\n //endpoint operation is being made but response not yet received\n //or endpoint operation just failed in 1 minute\n return;\n } else if (endpoints && endpoints.length > 0) {\n //found endpoint record from cache\n request.httpRequest.updateEndpoint(endpoints[0].Address);\n } else {\n //endpoint record not in cache or outdated. make discovery operation\n var endpointRequest = service.makeRequest(api.endpointOperation, {\n Operation: operationModel.name,\n Identifiers: identifiers,\n });\n addApiVersionHeader(endpointRequest);\n endpointRequest.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n endpointRequest.removeListener('retry', AWS.EventListeners.Core.RETRY_CHECK);\n //put in a placeholder for endpoints already requested, prevent\n //too much in-flight calls\n AWS.endpointCache.put(cacheKey, [{\n Address: '',\n CachePeriodInMinutes: 1\n }]);\n endpointRequest.send(function(err, data) {\n if (data && data.Endpoints) {\n AWS.endpointCache.put(cacheKey, data.Endpoints);\n } else if (err) {\n AWS.endpointCache.put(cacheKey, [{\n Address: '',\n CachePeriodInMinutes: 1 //not to make more endpoint operation in next 1 minute\n }]);\n }\n });\n }\n}\n\nvar requestQueue = {};\n\n/**\n * Call endpoint discovery operation when it's required.\n * When endpoint is available in cache then use cached ones. If endpoints are\n * unavailable then SDK should call endpoint operation then use returned new\n * endpoint for the api call. SDK will automatically attempt to do endpoint\n * discovery. This is turned off by default\n * @param [object] request object\n * @api private\n */\nfunction requiredDiscoverEndpoint(request, done) {\n var service = request.service;\n var api = service.api;\n var operationModel = api.operations ? api.operations[request.operation] : undefined;\n var inputShape = operationModel ? operationModel.input : undefined;\n\n var identifiers = marshallCustomIdentifiers(request, inputShape);\n var cacheKey = getCacheKey(request);\n if (Object.keys(identifiers).length > 0) {\n cacheKey = util.update(cacheKey, identifiers);\n if (operationModel) cacheKey.operation = operationModel.name;\n }\n var cacheKeyStr = AWS.EndpointCache.getKeyString(cacheKey);\n var endpoints = AWS.endpointCache.get(cacheKeyStr); //endpoint cache also accepts string keys\n if (endpoints && endpoints.length === 1 && endpoints[0].Address === '') {\n //endpoint operation is being made but response not yet received\n //push request object to a pending queue\n if (!requestQueue[cacheKeyStr]) requestQueue[cacheKeyStr] = [];\n requestQueue[cacheKeyStr].push({request: request, callback: done});\n return;\n } else if (endpoints && endpoints.length > 0) {\n request.httpRequest.updateEndpoint(endpoints[0].Address);\n done();\n } else {\n var endpointRequest = service.makeRequest(api.endpointOperation, {\n Operation: operationModel.name,\n Identifiers: identifiers,\n });\n endpointRequest.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n addApiVersionHeader(endpointRequest);\n\n //put in a placeholder for endpoints already requested, prevent\n //too much in-flight calls\n AWS.endpointCache.put(cacheKeyStr, [{\n Address: '',\n CachePeriodInMinutes: 60 //long-live cache\n }]);\n endpointRequest.send(function(err, data) {\n if (err) {\n request.response.error = util.error(err, { retryable: false });\n AWS.endpointCache.remove(cacheKey);\n\n //fail all the pending requests in batch\n if (requestQueue[cacheKeyStr]) {\n var pendingRequests = requestQueue[cacheKeyStr];\n util.arrayEach(pendingRequests, function(requestContext) {\n requestContext.request.response.error = util.error(err, { retryable: false });\n requestContext.callback();\n });\n delete requestQueue[cacheKeyStr];\n }\n } else if (data) {\n AWS.endpointCache.put(cacheKeyStr, data.Endpoints);\n request.httpRequest.updateEndpoint(data.Endpoints[0].Address);\n\n //update the endpoint for all the pending requests in batch\n if (requestQueue[cacheKeyStr]) {\n var pendingRequests = requestQueue[cacheKeyStr];\n util.arrayEach(pendingRequests, function(requestContext) {\n requestContext.request.httpRequest.updateEndpoint(data.Endpoints[0].Address);\n requestContext.callback();\n });\n delete requestQueue[cacheKeyStr];\n }\n }\n done();\n });\n }\n}\n\n/**\n * add api version header to endpoint operation\n * @api private\n */\nfunction addApiVersionHeader(endpointRequest) {\n var api = endpointRequest.service.api;\n var apiVersion = api.apiVersion;\n if (apiVersion && !endpointRequest.httpRequest.headers['x-amz-api-version']) {\n endpointRequest.httpRequest.headers['x-amz-api-version'] = apiVersion;\n }\n}\n\n/**\n * If api call gets invalid endpoint exception, SDK should attempt to remove the invalid\n * endpoint from cache.\n * @api private\n */\nfunction invalidateCachedEndpoints(response) {\n var error = response.error;\n var httpResponse = response.httpResponse;\n if (error &&\n (error.code === 'InvalidEndpointException' || httpResponse.statusCode === 421)\n ) {\n var request = response.request;\n var operations = request.service.api.operations || {};\n var inputShape = operations[request.operation] ? operations[request.operation].input : undefined;\n var identifiers = marshallCustomIdentifiers(request, inputShape);\n var cacheKey = getCacheKey(request);\n if (Object.keys(identifiers).length > 0) {\n cacheKey = util.update(cacheKey, identifiers);\n if (operations[request.operation]) cacheKey.operation = operations[request.operation].name;\n }\n AWS.endpointCache.remove(cacheKey);\n }\n}\n\n/**\n * If endpoint is explicitly configured, SDK should not do endpoint discovery in anytime.\n * @param [object] client Service client object.\n * @api private\n */\nfunction hasCustomEndpoint(client) {\n //if set endpoint is set for specific client, enable endpoint discovery will raise an error.\n if (client._originalConfig && client._originalConfig.endpoint && client._originalConfig.endpointDiscoveryEnabled === true) {\n throw util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'Custom endpoint is supplied; endpointDiscoveryEnabled must not be true.'\n });\n };\n var svcConfig = AWS.config[client.serviceIdentifier] || {};\n return Boolean(AWS.config.endpoint || svcConfig.endpoint || (client._originalConfig && client._originalConfig.endpoint));\n}\n\n/**\n * @api private\n */\nfunction isFalsy(value) {\n return ['false', '0'].indexOf(value) >= 0;\n}\n\n/**\n * If endpoint discovery should perform for this request when no operation requires endpoint\n * discovery for the given service.\n * SDK performs config resolution in order like below:\n * 1. If set in client configuration.\n * 2. If set in env AWS_ENABLE_ENDPOINT_DISCOVERY.\n * 3. If set in shared ini config file with key 'endpoint_discovery_enabled'.\n * @param [object] request request object.\n * @returns [boolean|undefined] if endpoint discovery config is not set in any source, this\n * function returns undefined\n * @api private\n */\nfunction resolveEndpointDiscoveryConfig(request) {\n var service = request.service || {};\n if (service.config.endpointDiscoveryEnabled !== undefined) {\n return service.config.endpointDiscoveryEnabled;\n }\n\n //shared ini file is only available in Node\n //not to check env in browser\n if (util.isBrowser()) return undefined;\n\n // If any of recognized endpoint discovery config env is set\n for (var i = 0; i < endpointDiscoveryEnabledEnvs.length; i++) {\n var env = endpointDiscoveryEnabledEnvs[i];\n if (Object.prototype.hasOwnProperty.call(process.env, env)) {\n if (process.env[env] === '' || process.env[env] === undefined) {\n throw util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'environmental variable ' + env + ' cannot be set to nothing'\n });\n }\n return !isFalsy(process.env[env]);\n }\n }\n\n var configFile = {};\n try {\n configFile = AWS.util.iniLoader ? AWS.util.iniLoader.loadFrom({\n isConfig: true,\n filename: process.env[AWS.util.sharedConfigFileEnv]\n }) : {};\n } catch (e) {}\n var sharedFileConfig = configFile[\n process.env.AWS_PROFILE || AWS.util.defaultProfile\n ] || {};\n if (Object.prototype.hasOwnProperty.call(sharedFileConfig, 'endpoint_discovery_enabled')) {\n if (sharedFileConfig.endpoint_discovery_enabled === undefined) {\n throw util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'config file entry \\'endpoint_discovery_enabled\\' cannot be set to nothing'\n });\n }\n return !isFalsy(sharedFileConfig.endpoint_discovery_enabled);\n }\n return undefined;\n}\n\n/**\n * attach endpoint discovery logic to request object\n * @param [object] request\n * @api private\n */\nfunction discoverEndpoint(request, done) {\n var service = request.service || {};\n if (hasCustomEndpoint(service) || request.isPresigned()) return done();\n\n var operations = service.api.operations || {};\n var operationModel = operations[request.operation];\n var isEndpointDiscoveryRequired = operationModel ? operationModel.endpointDiscoveryRequired : 'NULL';\n var isEnabled = resolveEndpointDiscoveryConfig(request);\n var hasRequiredEndpointDiscovery = service.api.hasRequiredEndpointDiscovery;\n if (isEnabled || hasRequiredEndpointDiscovery) {\n // Once a customer enables endpoint discovery, the SDK should start appending\n // the string endpoint-discovery to the user-agent on all requests.\n request.httpRequest.appendToUserAgent('endpoint-discovery');\n }\n switch (isEndpointDiscoveryRequired) {\n case 'OPTIONAL':\n if (isEnabled || hasRequiredEndpointDiscovery) {\n // For a given service; if at least one operation requires endpoint discovery then the SDK must enable endpoint discovery\n // by default for all operations of that service, including operations where endpoint discovery is optional.\n optionalDiscoverEndpoint(request);\n request.addNamedListener('INVALIDATE_CACHED_ENDPOINTS', 'extractError', invalidateCachedEndpoints);\n }\n done();\n break;\n case 'REQUIRED':\n if (isEnabled === false) {\n // For a given operation; if endpoint discovery is required and it has been disabled on the SDK client,\n // then the SDK must return a clear and actionable exception.\n request.response.error = util.error(new Error(), {\n code: 'ConfigurationException',\n message: 'Endpoint Discovery is disabled but ' + service.api.className + '.' + request.operation +\n '() requires it. Please check your configurations.'\n });\n done();\n break;\n }\n request.addNamedListener('INVALIDATE_CACHED_ENDPOINTS', 'extractError', invalidateCachedEndpoints);\n requiredDiscoverEndpoint(request, done);\n break;\n case 'NULL':\n default:\n done();\n break;\n }\n}\n\nmodule.exports = {\n discoverEndpoint: discoverEndpoint,\n requiredDiscoverEndpoint: requiredDiscoverEndpoint,\n optionalDiscoverEndpoint: optionalDiscoverEndpoint,\n marshallCustomIdentifiers: marshallCustomIdentifiers,\n getCacheKey: getCacheKey,\n invalidateCachedEndpoint: invalidateCachedEndpoints,\n};\n","var AWS = require('../core');\nvar util = AWS.util;\nvar typeOf = require('./types').typeOf;\nvar DynamoDBSet = require('./set');\nvar NumberValue = require('./numberValue');\n\nAWS.DynamoDB.Converter = {\n /**\n * Convert a JavaScript value to its equivalent DynamoDB AttributeValue type\n *\n * @param data [any] The data to convert to a DynamoDB AttributeValue\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n * @return [map] An object in the Amazon DynamoDB AttributeValue format\n *\n * @see AWS.DynamoDB.Converter.marshall AWS.DynamoDB.Converter.marshall to\n * convert entire records (rather than individual attributes)\n */\n input: function convertInput(data, options) {\n options = options || {};\n var type = typeOf(data);\n if (type === 'Object') {\n return formatMap(data, options);\n } else if (type === 'Array') {\n return formatList(data, options);\n } else if (type === 'Set') {\n return formatSet(data, options);\n } else if (type === 'String') {\n if (data.length === 0 && options.convertEmptyValues) {\n return convertInput(null);\n }\n return { S: data };\n } else if (type === 'Number' || type === 'NumberValue') {\n return { N: data.toString() };\n } else if (type === 'Binary') {\n if (data.length === 0 && options.convertEmptyValues) {\n return convertInput(null);\n }\n return { B: data };\n } else if (type === 'Boolean') {\n return { BOOL: data };\n } else if (type === 'null') {\n return { NULL: true };\n } else if (type !== 'undefined' && type !== 'Function') {\n // this value has a custom constructor\n return formatMap(data, options);\n }\n },\n\n /**\n * Convert a JavaScript object into a DynamoDB record.\n *\n * @param data [any] The data to convert to a DynamoDB record\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n *\n * @return [map] An object in the DynamoDB record format.\n *\n * @example Convert a JavaScript object into a DynamoDB record\n * var marshalled = AWS.DynamoDB.Converter.marshall({\n * string: 'foo',\n * list: ['fizz', 'buzz', 'pop'],\n * map: {\n * nestedMap: {\n * key: 'value',\n * }\n * },\n * number: 123,\n * nullValue: null,\n * boolValue: true,\n * stringSet: new DynamoDBSet(['foo', 'bar', 'baz'])\n * });\n */\n marshall: function marshallItem(data, options) {\n return AWS.DynamoDB.Converter.input(data, options).M;\n },\n\n /**\n * Convert a DynamoDB AttributeValue object to its equivalent JavaScript type.\n *\n * @param data [map] An object in the Amazon DynamoDB AttributeValue format\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n *\n * @return [Object|Array|String|Number|Boolean|null]\n *\n * @see AWS.DynamoDB.Converter.unmarshall AWS.DynamoDB.Converter.unmarshall to\n * convert entire records (rather than individual attributes)\n */\n output: function convertOutput(data, options) {\n options = options || {};\n var list, map, i;\n for (var type in data) {\n var values = data[type];\n if (type === 'M') {\n map = {};\n for (var key in values) {\n map[key] = convertOutput(values[key], options);\n }\n return map;\n } else if (type === 'L') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(convertOutput(values[i], options));\n }\n return list;\n } else if (type === 'SS') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(values[i] + '');\n }\n return new DynamoDBSet(list);\n } else if (type === 'NS') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(convertNumber(values[i], options.wrapNumbers));\n }\n return new DynamoDBSet(list);\n } else if (type === 'BS') {\n list = [];\n for (i = 0; i < values.length; i++) {\n list.push(AWS.util.buffer.toBuffer(values[i]));\n }\n return new DynamoDBSet(list);\n } else if (type === 'S') {\n return values + '';\n } else if (type === 'N') {\n return convertNumber(values, options.wrapNumbers);\n } else if (type === 'B') {\n return util.buffer.toBuffer(values);\n } else if (type === 'BOOL') {\n return (values === 'true' || values === 'TRUE' || values === true);\n } else if (type === 'NULL') {\n return null;\n }\n }\n },\n\n /**\n * Convert a DynamoDB record into a JavaScript object.\n *\n * @param data [any] The DynamoDB record\n * @param options [map]\n * @option options convertEmptyValues [Boolean] Whether to automatically\n * convert empty strings, blobs,\n * and sets to `null`\n * @option options wrapNumbers [Boolean] Whether to return numbers as a\n * NumberValue object instead of\n * converting them to native JavaScript\n * numbers. This allows for the safe\n * round-trip transport of numbers of\n * arbitrary size.\n *\n * @return [map] An object whose properties have been converted from\n * DynamoDB's AttributeValue format into their corresponding native\n * JavaScript types.\n *\n * @example Convert a record received from a DynamoDB stream\n * var unmarshalled = AWS.DynamoDB.Converter.unmarshall({\n * string: {S: 'foo'},\n * list: {L: [{S: 'fizz'}, {S: 'buzz'}, {S: 'pop'}]},\n * map: {\n * M: {\n * nestedMap: {\n * M: {\n * key: {S: 'value'}\n * }\n * }\n * }\n * },\n * number: {N: '123'},\n * nullValue: {NULL: true},\n * boolValue: {BOOL: true}\n * });\n */\n unmarshall: function unmarshall(data, options) {\n return AWS.DynamoDB.Converter.output({M: data}, options);\n }\n};\n\n/**\n * @api private\n * @param data [Array]\n * @param options [map]\n */\nfunction formatList(data, options) {\n var list = {L: []};\n for (var i = 0; i < data.length; i++) {\n list['L'].push(AWS.DynamoDB.Converter.input(data[i], options));\n }\n return list;\n}\n\n/**\n * @api private\n * @param value [String]\n * @param wrapNumbers [Boolean]\n */\nfunction convertNumber(value, wrapNumbers) {\n return wrapNumbers ? new NumberValue(value) : Number(value);\n}\n\n/**\n * @api private\n * @param data [map]\n * @param options [map]\n */\nfunction formatMap(data, options) {\n var map = {M: {}};\n for (var key in data) {\n var formatted = AWS.DynamoDB.Converter.input(data[key], options);\n if (formatted !== void 0) {\n map['M'][key] = formatted;\n }\n }\n return map;\n}\n\n/**\n * @api private\n */\nfunction formatSet(data, options) {\n options = options || {};\n var values = data.values;\n if (options.convertEmptyValues) {\n values = filterEmptySetValues(data);\n if (values.length === 0) {\n return AWS.DynamoDB.Converter.input(null);\n }\n }\n\n var map = {};\n switch (data.type) {\n case 'String': map['SS'] = values; break;\n case 'Binary': map['BS'] = values; break;\n case 'Number': map['NS'] = values.map(function (value) {\n return value.toString();\n });\n }\n return map;\n}\n\n/**\n * @api private\n */\nfunction filterEmptySetValues(set) {\n var nonEmptyValues = [];\n var potentiallyEmptyTypes = {\n String: true,\n Binary: true,\n Number: false\n };\n if (potentiallyEmptyTypes[set.type]) {\n for (var i = 0; i < set.values.length; i++) {\n if (set.values[i].length === 0) {\n continue;\n }\n nonEmptyValues.push(set.values[i]);\n }\n\n return nonEmptyValues;\n }\n\n return set.values;\n}\n\n/**\n * @api private\n */\nmodule.exports = AWS.DynamoDB.Converter;\n","var AWS = require('../core');\nvar Translator = require('./translator');\nvar DynamoDBSet = require('./set');\n\n/**\n * The document client simplifies working with items in Amazon DynamoDB\n * by abstracting away the notion of attribute values. This abstraction\n * annotates native JavaScript types supplied as input parameters, as well\n * as converts annotated response data to native JavaScript types.\n *\n * ## Marshalling Input and Unmarshalling Response Data\n *\n * The document client affords developers the use of native JavaScript types\n * instead of `AttributeValue`s to simplify the JavaScript development\n * experience with Amazon DynamoDB. JavaScript objects passed in as parameters\n * are marshalled into `AttributeValue` shapes required by Amazon DynamoDB.\n * Responses from DynamoDB are unmarshalled into plain JavaScript objects\n * by the `DocumentClient`. The `DocumentClient`, does not accept\n * `AttributeValue`s in favor of native JavaScript types.\n *\n * | JavaScript Type | DynamoDB AttributeValue |\n * |:----------------------------------------------------------------------:|-------------------------|\n * | String | S |\n * | Number | N |\n * | Boolean | BOOL |\n * | null | NULL |\n * | Array | L |\n * | Object | M |\n * | Buffer, File, Blob, ArrayBuffer, DataView, and JavaScript typed arrays | B |\n *\n * ## Support for Sets\n *\n * The `DocumentClient` offers a convenient way to create sets from\n * JavaScript Arrays. The type of set is inferred from the first element\n * in the array. DynamoDB supports string, number, and binary sets. To\n * learn more about supported types see the\n * [Amazon DynamoDB Data Model Documentation](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html)\n * For more information see {AWS.DynamoDB.DocumentClient.createSet}\n *\n */\nAWS.DynamoDB.DocumentClient = AWS.util.inherit({\n\n /**\n * Creates a DynamoDB document client with a set of configuration options.\n *\n * @option options params [map] An optional map of parameters to bind to every\n * request sent by this service object.\n * @option options service [AWS.DynamoDB] An optional pre-configured instance\n * of the AWS.DynamoDB service object. This instance's config will be\n * copied to a new instance used by this client. You should not need to\n * retain a reference to the input object, and may destroy it or allow it\n * to be garbage collected.\n * @option options convertEmptyValues [Boolean] set to true if you would like\n * the document client to convert empty values (0-length strings, binary\n * buffers, and sets) to be converted to NULL types when persisting to\n * DynamoDB.\n * @option options wrapNumbers [Boolean] Set to true to return numbers as a\n * NumberValue object instead of converting them to native JavaScript numbers.\n * This allows for the safe round-trip transport of numbers of arbitrary size.\n * @see AWS.DynamoDB.constructor\n *\n */\n constructor: function DocumentClient(options) {\n var self = this;\n self.options = options || {};\n self.configure(self.options);\n },\n\n /**\n * @api private\n */\n configure: function configure(options) {\n var self = this;\n self.service = options.service;\n self.bindServiceObject(options);\n self.attrValue = options.attrValue =\n self.service.api.operations.putItem.input.members.Item.value.shape;\n },\n\n /**\n * @api private\n */\n bindServiceObject: function bindServiceObject(options) {\n var self = this;\n options = options || {};\n\n if (!self.service) {\n self.service = new AWS.DynamoDB(options);\n } else {\n var config = AWS.util.copy(self.service.config);\n self.service = new self.service.constructor.__super__(config);\n self.service.config.params =\n AWS.util.merge(self.service.config.params || {}, options.params);\n }\n },\n\n /**\n * @api private\n */\n makeServiceRequest: function(operation, params, callback) {\n var self = this;\n var request = self.service[operation](params);\n self.setupRequest(request);\n self.setupResponse(request);\n if (typeof callback === 'function') {\n request.send(callback);\n }\n return request;\n },\n\n /**\n * @api private\n */\n serviceClientOperationsMap: {\n batchGet: 'batchGetItem',\n batchWrite: 'batchWriteItem',\n delete: 'deleteItem',\n get: 'getItem',\n put: 'putItem',\n query: 'query',\n scan: 'scan',\n update: 'updateItem',\n transactGet: 'transactGetItems',\n transactWrite: 'transactWriteItems'\n },\n\n /**\n * Returns the attributes of one or more items from one or more tables\n * by delegating to `AWS.DynamoDB.batchGetItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.batchGetItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.batchGetItem\n * @example Get items from multiple tables\n * var params = {\n * RequestItems: {\n * 'Table-1': {\n * Keys: [\n * {\n * HashKey: 'haskey',\n * NumberRangeKey: 1\n * }\n * ]\n * },\n * 'Table-2': {\n * Keys: [\n * { foo: 'bar' },\n * ]\n * }\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.batchGet(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n batchGet: function(params, callback) {\n var operation = this.serviceClientOperationsMap['batchGet'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Puts or deletes multiple items in one or more tables by delegating\n * to `AWS.DynamoDB.batchWriteItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.batchWriteItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.batchWriteItem\n * @example Write to and delete from a table\n * var params = {\n * RequestItems: {\n * 'Table-1': [\n * {\n * DeleteRequest: {\n * Key: { HashKey: 'someKey' }\n * }\n * },\n * {\n * PutRequest: {\n * Item: {\n * HashKey: 'anotherKey',\n * NumAttribute: 1,\n * BoolAttribute: true,\n * ListAttribute: [1, 'two', false],\n * MapAttribute: { foo: 'bar' }\n * }\n * }\n * }\n * ]\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.batchWrite(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n batchWrite: function(params, callback) {\n var operation = this.serviceClientOperationsMap['batchWrite'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Deletes a single item in a table by primary key by delegating to\n * `AWS.DynamoDB.deleteItem()`\n *\n * Supply the same parameters as {AWS.DynamoDB.deleteItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.deleteItem\n * @example Delete an item from a table\n * var params = {\n * TableName : 'Table',\n * Key: {\n * HashKey: 'hashkey',\n * NumberRangeKey: 1\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.delete(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n delete: function(params, callback) {\n var operation = this.serviceClientOperationsMap['delete'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Returns a set of attributes for the item with the given primary key\n * by delegating to `AWS.DynamoDB.getItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.getItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.getItem\n * @example Get an item from a table\n * var params = {\n * TableName : 'Table',\n * Key: {\n * HashKey: 'hashkey'\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.get(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n get: function(params, callback) {\n var operation = this.serviceClientOperationsMap['get'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Creates a new item, or replaces an old item with a new item by\n * delegating to `AWS.DynamoDB.putItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.putItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.putItem\n * @example Create a new item in a table\n * var params = {\n * TableName : 'Table',\n * Item: {\n * HashKey: 'haskey',\n * NumAttribute: 1,\n * BoolAttribute: true,\n * ListAttribute: [1, 'two', false],\n * MapAttribute: { foo: 'bar'},\n * NullAttribute: null\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.put(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n put: function(params, callback) {\n var operation = this.serviceClientOperationsMap['put'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Edits an existing item's attributes, or adds a new item to the table if\n * it does not already exist by delegating to `AWS.DynamoDB.updateItem()`.\n *\n * Supply the same parameters as {AWS.DynamoDB.updateItem} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.updateItem\n * @example Update an item with expressions\n * var params = {\n * TableName: 'Table',\n * Key: { HashKey : 'hashkey' },\n * UpdateExpression: 'set #a = :x + :y',\n * ConditionExpression: '#a < :MAX',\n * ExpressionAttributeNames: {'#a' : 'Sum'},\n * ExpressionAttributeValues: {\n * ':x' : 20,\n * ':y' : 45,\n * ':MAX' : 100,\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.update(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n update: function(params, callback) {\n var operation = this.serviceClientOperationsMap['update'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Returns one or more items and item attributes by accessing every item\n * in a table or a secondary index.\n *\n * Supply the same parameters as {AWS.DynamoDB.scan} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.scan\n * @example Scan the table with a filter expression\n * var params = {\n * TableName : 'Table',\n * FilterExpression : 'Year = :this_year',\n * ExpressionAttributeValues : {':this_year' : 2015}\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.scan(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n scan: function(params, callback) {\n var operation = this.serviceClientOperationsMap['scan'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Directly access items from a table by primary key or a secondary index.\n *\n * Supply the same parameters as {AWS.DynamoDB.query} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.query\n * @example Query an index\n * var params = {\n * TableName: 'Table',\n * IndexName: 'Index',\n * KeyConditionExpression: 'HashKey = :hkey and RangeKey > :rkey',\n * ExpressionAttributeValues: {\n * ':hkey': 'key',\n * ':rkey': 2015\n * }\n * };\n *\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * documentClient.query(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n query: function(params, callback) {\n var operation = this.serviceClientOperationsMap['query'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Synchronous write operation that groups up to 25 action requests.\n *\n * Supply the same parameters as {AWS.DynamoDB.transactWriteItems} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.transactWriteItems\n * @example Get items from multiple tables\n * var params = {\n * TransactItems: [{\n * Put: {\n * TableName : 'Table0',\n * Item: {\n * HashKey: 'haskey',\n * NumAttribute: 1,\n * BoolAttribute: true,\n * ListAttribute: [1, 'two', false],\n * MapAttribute: { foo: 'bar'},\n * NullAttribute: null\n * }\n * }\n * }, {\n * Update: {\n * TableName: 'Table1',\n * Key: { HashKey : 'hashkey' },\n * UpdateExpression: 'set #a = :x + :y',\n * ConditionExpression: '#a < :MAX',\n * ExpressionAttributeNames: {'#a' : 'Sum'},\n * ExpressionAttributeValues: {\n * ':x' : 20,\n * ':y' : 45,\n * ':MAX' : 100,\n * }\n * }\n * }]\n * };\n *\n * documentClient.transactWrite(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n */\n transactWrite: function(params, callback) {\n var operation = this.serviceClientOperationsMap['transactWrite'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Atomically retrieves multiple items from one or more tables (but not from indexes)\n * in a single account and region.\n *\n * Supply the same parameters as {AWS.DynamoDB.transactGetItems} with\n * `AttributeValue`s substituted by native JavaScript types.\n *\n * @see AWS.DynamoDB.transactGetItems\n * @example Get items from multiple tables\n * var params = {\n * TransactItems: [{\n * Get: {\n * TableName : 'Table0',\n * Key: {\n * HashKey: 'hashkey0'\n * }\n * }\n * }, {\n * Get: {\n * TableName : 'Table1',\n * Key: {\n * HashKey: 'hashkey1'\n * }\n * }\n * }]\n * };\n *\n * documentClient.transactGet(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n */\n transactGet: function(params, callback) {\n var operation = this.serviceClientOperationsMap['transactGet'];\n return this.makeServiceRequest(operation, params, callback);\n },\n\n /**\n * Creates a set of elements inferring the type of set from\n * the type of the first element. Amazon DynamoDB currently supports\n * the number sets, string sets, and binary sets. For more information\n * about DynamoDB data types see the documentation on the\n * [Amazon DynamoDB Data Model](http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/DataModel.html#DataModel.DataTypes).\n *\n * @param list [Array] Collection to represent your DynamoDB Set\n * @param options [map]\n * * **validate** [Boolean] set to true if you want to validate the type\n * of each element in the set. Defaults to `false`.\n * @example Creating a number set\n * var documentClient = new AWS.DynamoDB.DocumentClient();\n *\n * var params = {\n * Item: {\n * hashkey: 'hashkey'\n * numbers: documentClient.createSet([1, 2, 3]);\n * }\n * };\n *\n * documentClient.put(params, function(err, data) {\n * if (err) console.log(err);\n * else console.log(data);\n * });\n *\n */\n createSet: function(list, options) {\n options = options || {};\n return new DynamoDBSet(list, options);\n },\n\n /**\n * @api private\n */\n getTranslator: function() {\n return new Translator(this.options);\n },\n\n /**\n * @api private\n */\n setupRequest: function setupRequest(request) {\n var self = this;\n var translator = self.getTranslator();\n var operation = request.operation;\n var inputShape = request.service.api.operations[operation].input;\n request._events.validate.unshift(function(req) {\n req.rawParams = AWS.util.copy(req.params);\n req.params = translator.translateInput(req.rawParams, inputShape);\n });\n },\n\n /**\n * @api private\n */\n setupResponse: function setupResponse(request) {\n var self = this;\n var translator = self.getTranslator();\n var outputShape = self.service.api.operations[request.operation].output;\n request.on('extractData', function(response) {\n response.data = translator.translateOutput(response.data, outputShape);\n });\n\n var response = request.response;\n response.nextPage = function(cb) {\n var resp = this;\n var req = resp.request;\n var config;\n var service = req.service;\n var operation = req.operation;\n try {\n config = service.paginationConfig(operation, true);\n } catch (e) { resp.error = e; }\n\n if (!resp.hasNextPage()) {\n if (cb) cb(resp.error, null);\n else if (resp.error) throw resp.error;\n return null;\n }\n\n var params = AWS.util.copy(req.rawParams);\n if (!resp.nextPageTokens) {\n return cb ? cb(null, null) : null;\n } else {\n var inputTokens = config.inputToken;\n if (typeof inputTokens === 'string') inputTokens = [inputTokens];\n for (var i = 0; i < inputTokens.length; i++) {\n params[inputTokens[i]] = resp.nextPageTokens[i];\n }\n return self[operation](params, cb);\n }\n };\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.DynamoDB.DocumentClient;\n","var util = require('../core').util;\n\n/**\n * An object recognizable as a numeric value that stores the underlying number\n * as a string.\n *\n * Intended to be a deserialization target for the DynamoDB Document Client when\n * the `wrapNumbers` flag is set. This allows for numeric values that lose\n * precision when converted to JavaScript's `number` type.\n */\nvar DynamoDBNumberValue = util.inherit({\n constructor: function NumberValue(value) {\n this.wrapperName = 'NumberValue';\n this.value = value.toString();\n },\n\n /**\n * Render the underlying value as a number when converting to JSON.\n */\n toJSON: function () {\n return this.toNumber();\n },\n\n /**\n * Convert the underlying value to a JavaScript number.\n */\n toNumber: function () {\n return Number(this.value);\n },\n\n /**\n * Return a string representing the unaltered value provided to the\n * constructor.\n */\n toString: function () {\n return this.value;\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = DynamoDBNumberValue;\n","var util = require('../core').util;\nvar typeOf = require('./types').typeOf;\n\n/**\n * @api private\n */\nvar memberTypeToSetType = {\n 'String': 'String',\n 'Number': 'Number',\n 'NumberValue': 'Number',\n 'Binary': 'Binary'\n};\n\n/**\n * @api private\n */\nvar DynamoDBSet = util.inherit({\n\n constructor: function Set(list, options) {\n options = options || {};\n this.wrapperName = 'Set';\n this.initialize(list, options.validate);\n },\n\n initialize: function(list, validate) {\n var self = this;\n self.values = [].concat(list);\n self.detectType();\n if (validate) {\n self.validate();\n }\n },\n\n detectType: function() {\n this.type = memberTypeToSetType[typeOf(this.values[0])];\n if (!this.type) {\n throw util.error(new Error(), {\n code: 'InvalidSetType',\n message: 'Sets can contain string, number, or binary values'\n });\n }\n },\n\n validate: function() {\n var self = this;\n var length = self.values.length;\n var values = self.values;\n for (var i = 0; i < length; i++) {\n if (memberTypeToSetType[typeOf(values[i])] !== self.type) {\n throw util.error(new Error(), {\n code: 'InvalidType',\n message: self.type + ' Set contains ' + typeOf(values[i]) + ' value'\n });\n }\n }\n },\n\n /**\n * Render the underlying values only when converting to JSON.\n */\n toJSON: function() {\n var self = this;\n return self.values;\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = DynamoDBSet;\n","var util = require('../core').util;\nvar convert = require('./converter');\n\nvar Translator = function(options) {\n options = options || {};\n this.attrValue = options.attrValue;\n this.convertEmptyValues = Boolean(options.convertEmptyValues);\n this.wrapNumbers = Boolean(options.wrapNumbers);\n};\n\nTranslator.prototype.translateInput = function(value, shape) {\n this.mode = 'input';\n return this.translate(value, shape);\n};\n\nTranslator.prototype.translateOutput = function(value, shape) {\n this.mode = 'output';\n return this.translate(value, shape);\n};\n\nTranslator.prototype.translate = function(value, shape) {\n var self = this;\n if (!shape || value === undefined) return undefined;\n\n if (shape.shape === self.attrValue) {\n return convert[self.mode](value, {\n convertEmptyValues: self.convertEmptyValues,\n wrapNumbers: self.wrapNumbers,\n });\n }\n switch (shape.type) {\n case 'structure': return self.translateStructure(value, shape);\n case 'map': return self.translateMap(value, shape);\n case 'list': return self.translateList(value, shape);\n default: return self.translateScalar(value, shape);\n }\n};\n\nTranslator.prototype.translateStructure = function(structure, shape) {\n var self = this;\n if (structure == null) return undefined;\n\n var struct = {};\n util.each(structure, function(name, value) {\n var memberShape = shape.members[name];\n if (memberShape) {\n var result = self.translate(value, memberShape);\n if (result !== undefined) struct[name] = result;\n }\n });\n return struct;\n};\n\nTranslator.prototype.translateList = function(list, shape) {\n var self = this;\n if (list == null) return undefined;\n\n var out = [];\n util.arrayEach(list, function(value) {\n var result = self.translate(value, shape.member);\n if (result === undefined) out.push(null);\n else out.push(result);\n });\n return out;\n};\n\nTranslator.prototype.translateMap = function(map, shape) {\n var self = this;\n if (map == null) return undefined;\n\n var out = {};\n util.each(map, function(key, value) {\n var result = self.translate(value, shape.value);\n if (result === undefined) out[key] = null;\n else out[key] = result;\n });\n return out;\n};\n\nTranslator.prototype.translateScalar = function(value, shape) {\n return shape.toType(value);\n};\n\n/**\n * @api private\n */\nmodule.exports = Translator;\n","var util = require('../core').util;\n\nfunction typeOf(data) {\n if (data === null && typeof data === 'object') {\n return 'null';\n } else if (data !== undefined && isBinary(data)) {\n return 'Binary';\n } else if (data !== undefined && data.constructor) {\n return data.wrapperName || util.typeName(data.constructor);\n } else if (data !== undefined && typeof data === 'object') {\n // this object is the result of Object.create(null), hence the absence of a\n // defined constructor\n return 'Object';\n } else {\n return 'undefined';\n }\n}\n\nfunction isBinary(data) {\n var types = [\n 'Buffer', 'File', 'Blob', 'ArrayBuffer', 'DataView',\n 'Int8Array', 'Uint8Array', 'Uint8ClampedArray',\n 'Int16Array', 'Uint16Array', 'Int32Array', 'Uint32Array',\n 'Float32Array', 'Float64Array'\n ];\n if (util.isNode()) {\n var Stream = util.stream.Stream;\n if (util.Buffer.isBuffer(data) || data instanceof Stream) {\n return true;\n }\n }\n\n for (var i = 0; i < types.length; i++) {\n if (data !== undefined && data.constructor) {\n if (util.isType(data, types[i])) return true;\n if (util.typeName(data.constructor) === types[i]) return true;\n }\n }\n\n return false;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n typeOf: typeOf,\n isBinary: isBinary\n};\n","var eventMessageChunker = require('../event-stream/event-message-chunker').eventMessageChunker;\nvar parseEvent = require('./parse-event').parseEvent;\n\nfunction createEventStream(body, parser, model) {\n var eventMessages = eventMessageChunker(body);\n\n var events = [];\n\n for (var i = 0; i < eventMessages.length; i++) {\n events.push(parseEvent(parser, eventMessages[i], model));\n }\n\n return events;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n createEventStream: createEventStream\n};\n","/**\n * Takes in a buffer of event messages and splits them into individual messages.\n * @param {Buffer} buffer\n * @api private\n */\nfunction eventMessageChunker(buffer) {\n /** @type Buffer[] */\n var messages = [];\n var offset = 0;\n\n while (offset < buffer.length) {\n var totalLength = buffer.readInt32BE(offset);\n\n // create new buffer for individual message (shares memory with original)\n var message = buffer.slice(offset, totalLength + offset);\n // increment offset to it starts at the next message\n offset += totalLength;\n\n messages.push(message);\n }\n\n return messages;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n eventMessageChunker: eventMessageChunker\n};\n","var util = require('../core').util;\nvar toBuffer = util.buffer.toBuffer;\n\n/**\n * A lossless representation of a signed, 64-bit integer. Instances of this\n * class may be used in arithmetic expressions as if they were numeric\n * primitives, but the binary representation will be preserved unchanged as the\n * `bytes` property of the object. The bytes should be encoded as big-endian,\n * two's complement integers.\n * @param {Buffer} bytes\n *\n * @api private\n */\nfunction Int64(bytes) {\n if (bytes.length !== 8) {\n throw new Error('Int64 buffers must be exactly 8 bytes');\n }\n if (!util.Buffer.isBuffer(bytes)) bytes = toBuffer(bytes);\n\n this.bytes = bytes;\n}\n\n/**\n * @param {number} number\n * @returns {Int64}\n *\n * @api private\n */\nInt64.fromNumber = function(number) {\n if (number > 9223372036854775807 || number < -9223372036854775808) {\n throw new Error(\n number + ' is too large (or, if negative, too small) to represent as an Int64'\n );\n }\n\n var bytes = new Uint8Array(8);\n for (\n var i = 7, remaining = Math.abs(Math.round(number));\n i > -1 && remaining > 0;\n i--, remaining /= 256\n ) {\n bytes[i] = remaining;\n }\n\n if (number < 0) {\n negate(bytes);\n }\n\n return new Int64(bytes);\n};\n\n/**\n * @returns {number}\n *\n * @api private\n */\nInt64.prototype.valueOf = function() {\n var bytes = this.bytes.slice(0);\n var negative = bytes[0] & 128;\n if (negative) {\n negate(bytes);\n }\n\n return parseInt(bytes.toString('hex'), 16) * (negative ? -1 : 1);\n};\n\nInt64.prototype.toString = function() {\n return String(this.valueOf());\n};\n\n/**\n * @param {Buffer} bytes\n *\n * @api private\n */\nfunction negate(bytes) {\n for (var i = 0; i < 8; i++) {\n bytes[i] ^= 0xFF;\n }\n for (var i = 7; i > -1; i--) {\n bytes[i]++;\n if (bytes[i] !== 0) {\n break;\n }\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n Int64: Int64\n};\n","var parseMessage = require('./parse-message').parseMessage;\n\n/**\n *\n * @param {*} parser\n * @param {Buffer} message\n * @param {*} shape\n * @api private\n */\nfunction parseEvent(parser, message, shape) {\n var parsedMessage = parseMessage(message);\n\n // check if message is an event or error\n var messageType = parsedMessage.headers[':message-type'];\n if (messageType) {\n if (messageType.value === 'error') {\n throw parseError(parsedMessage);\n } else if (messageType.value !== 'event') {\n // not sure how to parse non-events/non-errors, ignore for now\n return;\n }\n }\n\n // determine event type\n var eventType = parsedMessage.headers[':event-type'];\n // check that the event type is modeled\n var eventModel = shape.members[eventType.value];\n if (!eventModel) {\n return;\n }\n\n var result = {};\n // check if an event payload exists\n var eventPayloadMemberName = eventModel.eventPayloadMemberName;\n if (eventPayloadMemberName) {\n var payloadShape = eventModel.members[eventPayloadMemberName];\n // if the shape is binary, return the byte array\n if (payloadShape.type === 'binary') {\n result[eventPayloadMemberName] = parsedMessage.body;\n } else {\n result[eventPayloadMemberName] = parser.parse(parsedMessage.body.toString(), payloadShape);\n }\n }\n\n // read event headers\n var eventHeaderNames = eventModel.eventHeaderMemberNames;\n for (var i = 0; i < eventHeaderNames.length; i++) {\n var name = eventHeaderNames[i];\n if (parsedMessage.headers[name]) {\n // parse the header!\n result[name] = eventModel.members[name].toType(parsedMessage.headers[name].value);\n }\n }\n\n var output = {};\n output[eventType.value] = result;\n return output;\n}\n\nfunction parseError(message) {\n var errorCode = message.headers[':error-code'];\n var errorMessage = message.headers[':error-message'];\n var error = new Error(errorMessage.value || errorMessage);\n error.code = error.name = errorCode.value || errorCode;\n return error;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n parseEvent: parseEvent\n};\n","var Int64 = require('./int64').Int64;\n\nvar splitMessage = require('./split-message').splitMessage;\n\nvar BOOLEAN_TAG = 'boolean';\nvar BYTE_TAG = 'byte';\nvar SHORT_TAG = 'short';\nvar INT_TAG = 'integer';\nvar LONG_TAG = 'long';\nvar BINARY_TAG = 'binary';\nvar STRING_TAG = 'string';\nvar TIMESTAMP_TAG = 'timestamp';\nvar UUID_TAG = 'uuid';\n\n/**\n * @api private\n *\n * @param {Buffer} headers\n */\nfunction parseHeaders(headers) {\n var out = {};\n var position = 0;\n while (position < headers.length) {\n var nameLength = headers.readUInt8(position++);\n var name = headers.slice(position, position + nameLength).toString();\n position += nameLength;\n switch (headers.readUInt8(position++)) {\n case 0 /* boolTrue */:\n out[name] = {\n type: BOOLEAN_TAG,\n value: true\n };\n break;\n case 1 /* boolFalse */:\n out[name] = {\n type: BOOLEAN_TAG,\n value: false\n };\n break;\n case 2 /* byte */:\n out[name] = {\n type: BYTE_TAG,\n value: headers.readInt8(position++)\n };\n break;\n case 3 /* short */:\n out[name] = {\n type: SHORT_TAG,\n value: headers.readInt16BE(position)\n };\n position += 2;\n break;\n case 4 /* integer */:\n out[name] = {\n type: INT_TAG,\n value: headers.readInt32BE(position)\n };\n position += 4;\n break;\n case 5 /* long */:\n out[name] = {\n type: LONG_TAG,\n value: new Int64(headers.slice(position, position + 8))\n };\n position += 8;\n break;\n case 6 /* byteArray */:\n var binaryLength = headers.readUInt16BE(position);\n position += 2;\n out[name] = {\n type: BINARY_TAG,\n value: headers.slice(position, position + binaryLength)\n };\n position += binaryLength;\n break;\n case 7 /* string */:\n var stringLength = headers.readUInt16BE(position);\n position += 2;\n out[name] = {\n type: STRING_TAG,\n value: headers.slice(\n position,\n position + stringLength\n ).toString()\n };\n position += stringLength;\n break;\n case 8 /* timestamp */:\n out[name] = {\n type: TIMESTAMP_TAG,\n value: new Date(\n new Int64(headers.slice(position, position + 8))\n .valueOf()\n )\n };\n position += 8;\n break;\n case 9 /* uuid */:\n var uuidChars = headers.slice(position, position + 16)\n .toString('hex');\n position += 16;\n out[name] = {\n type: UUID_TAG,\n value: uuidChars.substr(0, 8) + '-' +\n uuidChars.substr(8, 4) + '-' +\n uuidChars.substr(12, 4) + '-' +\n uuidChars.substr(16, 4) + '-' +\n uuidChars.substr(20)\n };\n break;\n default:\n throw new Error('Unrecognized header type tag');\n }\n }\n return out;\n}\n\nfunction parseMessage(message) {\n var parsed = splitMessage(message);\n return { headers: parseHeaders(parsed.headers), body: parsed.body };\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n parseMessage: parseMessage\n};\n","var util = require('../core').util;\nvar toBuffer = util.buffer.toBuffer;\n\n// All prelude components are unsigned, 32-bit integers\nvar PRELUDE_MEMBER_LENGTH = 4;\n// The prelude consists of two components\nvar PRELUDE_LENGTH = PRELUDE_MEMBER_LENGTH * 2;\n// Checksums are always CRC32 hashes.\nvar CHECKSUM_LENGTH = 4;\n// Messages must include a full prelude, a prelude checksum, and a message checksum\nvar MINIMUM_MESSAGE_LENGTH = PRELUDE_LENGTH + CHECKSUM_LENGTH * 2;\n\n/**\n * @api private\n *\n * @param {Buffer} message\n */\nfunction splitMessage(message) {\n if (!util.Buffer.isBuffer(message)) message = toBuffer(message);\n\n if (message.length < MINIMUM_MESSAGE_LENGTH) {\n throw new Error('Provided message too short to accommodate event stream message overhead');\n }\n\n if (message.length !== message.readUInt32BE(0)) {\n throw new Error('Reported message length does not match received message length');\n }\n\n var expectedPreludeChecksum = message.readUInt32BE(PRELUDE_LENGTH);\n\n if (\n expectedPreludeChecksum !== util.crypto.crc32(\n message.slice(0, PRELUDE_LENGTH)\n )\n ) {\n throw new Error(\n 'The prelude checksum specified in the message (' +\n expectedPreludeChecksum +\n ') does not match the calculated CRC32 checksum.'\n );\n }\n\n var expectedMessageChecksum = message.readUInt32BE(message.length - CHECKSUM_LENGTH);\n\n if (\n expectedMessageChecksum !== util.crypto.crc32(\n message.slice(0, message.length - CHECKSUM_LENGTH)\n )\n ) {\n throw new Error(\n 'The message checksum did not match the expected value of ' +\n expectedMessageChecksum\n );\n }\n\n var headersStart = PRELUDE_LENGTH + CHECKSUM_LENGTH;\n var headersEnd = headersStart + message.readUInt32BE(PRELUDE_MEMBER_LENGTH);\n\n return {\n headers: message.slice(headersStart, headersEnd),\n body: message.slice(headersEnd, message.length - CHECKSUM_LENGTH),\n };\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n splitMessage: splitMessage\n};\n","var AWS = require('./core');\nvar SequentialExecutor = require('./sequential_executor');\nvar DISCOVER_ENDPOINT = require('./discover_endpoint').discoverEndpoint;\n/**\n * The namespace used to register global event listeners for request building\n * and sending.\n */\nAWS.EventListeners = {\n /**\n * @!attribute VALIDATE_CREDENTIALS\n * A request listener that validates whether the request is being\n * sent with credentials.\n * Handles the {AWS.Request~validate 'validate' Request event}\n * @example Sending a request without validating credentials\n * var listener = AWS.EventListeners.Core.VALIDATE_CREDENTIALS;\n * request.removeListener('validate', listener);\n * @readonly\n * @return [Function]\n * @!attribute VALIDATE_REGION\n * A request listener that validates whether the region is set\n * for a request.\n * Handles the {AWS.Request~validate 'validate' Request event}\n * @example Sending a request without validating region configuration\n * var listener = AWS.EventListeners.Core.VALIDATE_REGION;\n * request.removeListener('validate', listener);\n * @readonly\n * @return [Function]\n * @!attribute VALIDATE_PARAMETERS\n * A request listener that validates input parameters in a request.\n * Handles the {AWS.Request~validate 'validate' Request event}\n * @example Sending a request without validating parameters\n * var listener = AWS.EventListeners.Core.VALIDATE_PARAMETERS;\n * request.removeListener('validate', listener);\n * @example Disable parameter validation globally\n * AWS.EventListeners.Core.removeListener('validate',\n * AWS.EventListeners.Core.VALIDATE_REGION);\n * @readonly\n * @return [Function]\n * @!attribute SEND\n * A request listener that initiates the HTTP connection for a\n * request being sent. Handles the {AWS.Request~send 'send' Request event}\n * @example Replacing the HTTP handler\n * var listener = AWS.EventListeners.Core.SEND;\n * request.removeListener('send', listener);\n * request.on('send', function(response) {\n * customHandler.send(response);\n * });\n * @return [Function]\n * @readonly\n * @!attribute HTTP_DATA\n * A request listener that reads data from the HTTP connection in order\n * to build the response data.\n * Handles the {AWS.Request~httpData 'httpData' Request event}.\n * Remove this handler if you are overriding the 'httpData' event and\n * do not want extra data processing and buffering overhead.\n * @example Disabling default data processing\n * var listener = AWS.EventListeners.Core.HTTP_DATA;\n * request.removeListener('httpData', listener);\n * @return [Function]\n * @readonly\n */\n Core: {} /* doc hack */\n};\n\n/**\n * @api private\n */\nfunction getOperationAuthtype(req) {\n if (!req.service.api.operations) {\n return '';\n }\n var operation = req.service.api.operations[req.operation];\n return operation ? operation.authtype : '';\n}\n\n/**\n * @api private\n */\nfunction getIdentityType(req) {\n var service = req.service;\n\n if (service.config.signatureVersion) {\n return service.config.signatureVersion;\n }\n\n if (service.api.signatureVersion) {\n return service.api.signatureVersion;\n }\n\n return getOperationAuthtype(req);\n}\n\nAWS.EventListeners = {\n Core: new SequentialExecutor().addNamedListeners(function(add, addAsync) {\n addAsync(\n 'VALIDATE_CREDENTIALS', 'validate',\n function VALIDATE_CREDENTIALS(req, done) {\n if (!req.service.api.signatureVersion && !req.service.config.signatureVersion) return done(); // none\n\n var identityType = getIdentityType(req);\n if (identityType === 'bearer') {\n req.service.config.getToken(function(err) {\n if (err) {\n req.response.error = AWS.util.error(err, {code: 'TokenError'});\n }\n done();\n });\n return;\n }\n\n req.service.config.getCredentials(function(err) {\n if (err) {\n req.response.error = AWS.util.error(err,\n {\n code: 'CredentialsError',\n message: 'Missing credentials in config, if using AWS_CONFIG_FILE, set AWS_SDK_LOAD_CONFIG=1'\n }\n );\n }\n done();\n });\n });\n\n add('VALIDATE_REGION', 'validate', function VALIDATE_REGION(req) {\n if (!req.service.isGlobalEndpoint) {\n var dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/);\n if (!req.service.config.region) {\n req.response.error = AWS.util.error(new Error(),\n {code: 'ConfigError', message: 'Missing region in config'});\n } else if (!dnsHostRegex.test(req.service.config.region)) {\n req.response.error = AWS.util.error(new Error(),\n {code: 'ConfigError', message: 'Invalid region in config'});\n }\n }\n });\n\n add('BUILD_IDEMPOTENCY_TOKENS', 'validate', function BUILD_IDEMPOTENCY_TOKENS(req) {\n if (!req.service.api.operations) {\n return;\n }\n var operation = req.service.api.operations[req.operation];\n if (!operation) {\n return;\n }\n var idempotentMembers = operation.idempotentMembers;\n if (!idempotentMembers.length) {\n return;\n }\n // creates a copy of params so user's param object isn't mutated\n var params = AWS.util.copy(req.params);\n for (var i = 0, iLen = idempotentMembers.length; i < iLen; i++) {\n if (!params[idempotentMembers[i]]) {\n // add the member\n params[idempotentMembers[i]] = AWS.util.uuid.v4();\n }\n }\n req.params = params;\n });\n\n add('VALIDATE_PARAMETERS', 'validate', function VALIDATE_PARAMETERS(req) {\n if (!req.service.api.operations) {\n return;\n }\n var rules = req.service.api.operations[req.operation].input;\n var validation = req.service.config.paramValidation;\n new AWS.ParamValidator(validation).validate(rules, req.params);\n });\n\n add('COMPUTE_CHECKSUM', 'afterBuild', function COMPUTE_CHECKSUM(req) {\n if (!req.service.api.operations) {\n return;\n }\n var operation = req.service.api.operations[req.operation];\n if (!operation) {\n return;\n }\n var body = req.httpRequest.body;\n var isNonStreamingPayload = body && (AWS.util.Buffer.isBuffer(body) || typeof body === 'string');\n var headers = req.httpRequest.headers;\n if (\n operation.httpChecksumRequired &&\n req.service.config.computeChecksums &&\n isNonStreamingPayload &&\n !headers['Content-MD5']\n ) {\n var md5 = AWS.util.crypto.md5(body, 'base64');\n headers['Content-MD5'] = md5;\n }\n });\n\n addAsync('COMPUTE_SHA256', 'afterBuild', function COMPUTE_SHA256(req, done) {\n req.haltHandlersOnError();\n if (!req.service.api.operations) {\n return;\n }\n var operation = req.service.api.operations[req.operation];\n var authtype = operation ? operation.authtype : '';\n if (!req.service.api.signatureVersion && !authtype && !req.service.config.signatureVersion) return done(); // none\n if (req.service.getSignerClass(req) === AWS.Signers.V4) {\n var body = req.httpRequest.body || '';\n if (authtype.indexOf('unsigned-body') >= 0) {\n req.httpRequest.headers['X-Amz-Content-Sha256'] = 'UNSIGNED-PAYLOAD';\n return done();\n }\n AWS.util.computeSha256(body, function(err, sha) {\n if (err) {\n done(err);\n }\n else {\n req.httpRequest.headers['X-Amz-Content-Sha256'] = sha;\n done();\n }\n });\n } else {\n done();\n }\n });\n\n add('SET_CONTENT_LENGTH', 'afterBuild', function SET_CONTENT_LENGTH(req) {\n var authtype = getOperationAuthtype(req);\n var payloadMember = AWS.util.getRequestPayloadShape(req);\n if (req.httpRequest.headers['Content-Length'] === undefined) {\n try {\n var length = AWS.util.string.byteLength(req.httpRequest.body);\n req.httpRequest.headers['Content-Length'] = length;\n } catch (err) {\n if (payloadMember && payloadMember.isStreaming) {\n if (payloadMember.requiresLength) {\n //streaming payload requires length(s3, glacier)\n throw err;\n } else if (authtype.indexOf('unsigned-body') >= 0) {\n //unbounded streaming payload(lex, mediastore)\n req.httpRequest.headers['Transfer-Encoding'] = 'chunked';\n return;\n } else {\n throw err;\n }\n }\n throw err;\n }\n }\n });\n\n add('SET_HTTP_HOST', 'afterBuild', function SET_HTTP_HOST(req) {\n req.httpRequest.headers['Host'] = req.httpRequest.endpoint.host;\n });\n\n add('SET_TRACE_ID', 'afterBuild', function SET_TRACE_ID(req) {\n var traceIdHeaderName = 'X-Amzn-Trace-Id';\n if (AWS.util.isNode() && !Object.hasOwnProperty.call(req.httpRequest.headers, traceIdHeaderName)) {\n var ENV_LAMBDA_FUNCTION_NAME = 'AWS_LAMBDA_FUNCTION_NAME';\n var ENV_TRACE_ID = '_X_AMZN_TRACE_ID';\n var functionName = process.env[ENV_LAMBDA_FUNCTION_NAME];\n var traceId = process.env[ENV_TRACE_ID];\n if (\n typeof functionName === 'string' &&\n functionName.length > 0 &&\n typeof traceId === 'string' &&\n traceId.length > 0\n ) {\n req.httpRequest.headers[traceIdHeaderName] = traceId;\n }\n }\n });\n\n add('RESTART', 'restart', function RESTART() {\n var err = this.response.error;\n if (!err || !err.retryable) return;\n\n this.httpRequest = new AWS.HttpRequest(\n this.service.endpoint,\n this.service.region\n );\n\n if (this.response.retryCount < this.service.config.maxRetries) {\n this.response.retryCount++;\n } else {\n this.response.error = null;\n }\n });\n\n var addToHead = true;\n addAsync('DISCOVER_ENDPOINT', 'sign', DISCOVER_ENDPOINT, addToHead);\n\n addAsync('SIGN', 'sign', function SIGN(req, done) {\n var service = req.service;\n var identityType = getIdentityType(req);\n if (!identityType || identityType.length === 0) return done(); // none\n\n if (identityType === 'bearer') {\n service.config.getToken(function (err, token) {\n if (err) {\n req.response.error = err;\n return done();\n }\n\n try {\n var SignerClass = service.getSignerClass(req);\n var signer = new SignerClass(req.httpRequest);\n signer.addAuthorization(token);\n } catch (e) {\n req.response.error = e;\n }\n done();\n });\n } else {\n service.config.getCredentials(function (err, credentials) {\n if (err) {\n req.response.error = err;\n return done();\n }\n\n try {\n var date = service.getSkewCorrectedDate();\n var SignerClass = service.getSignerClass(req);\n var operations = req.service.api.operations || {};\n var operation = operations[req.operation];\n var signer = new SignerClass(req.httpRequest,\n service.getSigningName(req),\n {\n signatureCache: service.config.signatureCache,\n operation: operation,\n signatureVersion: service.api.signatureVersion\n });\n signer.setServiceClientId(service._clientId);\n\n // clear old authorization headers\n delete req.httpRequest.headers['Authorization'];\n delete req.httpRequest.headers['Date'];\n delete req.httpRequest.headers['X-Amz-Date'];\n\n // add new authorization\n signer.addAuthorization(credentials, date);\n req.signedAt = date;\n } catch (e) {\n req.response.error = e;\n }\n done();\n });\n\n }\n });\n\n add('VALIDATE_RESPONSE', 'validateResponse', function VALIDATE_RESPONSE(resp) {\n if (this.service.successfulResponse(resp, this)) {\n resp.data = {};\n resp.error = null;\n } else {\n resp.data = null;\n resp.error = AWS.util.error(new Error(),\n {code: 'UnknownError', message: 'An unknown error occurred.'});\n }\n });\n\n add('ERROR', 'error', function ERROR(err, resp) {\n var awsQueryCompatible = resp.request.service.api.awsQueryCompatible;\n if (awsQueryCompatible) {\n var headers = resp.httpResponse.headers;\n var queryErrorCode = headers ? headers['x-amzn-query-error'] : undefined;\n if (queryErrorCode && queryErrorCode.includes(';')) {\n resp.error.code = queryErrorCode.split(';')[0];\n }\n }\n }, true);\n\n addAsync('SEND', 'send', function SEND(resp, done) {\n resp.httpResponse._abortCallback = done;\n resp.error = null;\n resp.data = null;\n\n function callback(httpResp) {\n resp.httpResponse.stream = httpResp;\n var stream = resp.request.httpRequest.stream;\n var service = resp.request.service;\n var api = service.api;\n var operationName = resp.request.operation;\n var operation = api.operations[operationName] || {};\n\n httpResp.on('headers', function onHeaders(statusCode, headers, statusMessage) {\n resp.request.emit(\n 'httpHeaders',\n [statusCode, headers, resp, statusMessage]\n );\n\n if (!resp.httpResponse.streaming) {\n if (AWS.HttpClient.streamsApiVersion === 2) { // streams2 API check\n // if we detect event streams, we're going to have to\n // return the stream immediately\n if (operation.hasEventOutput && service.successfulResponse(resp)) {\n // skip reading the IncomingStream\n resp.request.emit('httpDone');\n done();\n return;\n }\n\n httpResp.on('readable', function onReadable() {\n var data = httpResp.read();\n if (data !== null) {\n resp.request.emit('httpData', [data, resp]);\n }\n });\n } else { // legacy streams API\n httpResp.on('data', function onData(data) {\n resp.request.emit('httpData', [data, resp]);\n });\n }\n }\n });\n\n httpResp.on('end', function onEnd() {\n if (!stream || !stream.didCallback) {\n if (AWS.HttpClient.streamsApiVersion === 2 && (operation.hasEventOutput && service.successfulResponse(resp))) {\n // don't concatenate response chunks when streaming event stream data when response is successful\n return;\n }\n resp.request.emit('httpDone');\n done();\n }\n });\n }\n\n function progress(httpResp) {\n httpResp.on('sendProgress', function onSendProgress(value) {\n resp.request.emit('httpUploadProgress', [value, resp]);\n });\n\n httpResp.on('receiveProgress', function onReceiveProgress(value) {\n resp.request.emit('httpDownloadProgress', [value, resp]);\n });\n }\n\n function error(err) {\n if (err.code !== 'RequestAbortedError') {\n var errCode = err.code === 'TimeoutError' ? err.code : 'NetworkingError';\n err = AWS.util.error(err, {\n code: errCode,\n region: resp.request.httpRequest.region,\n hostname: resp.request.httpRequest.endpoint.hostname,\n retryable: true\n });\n }\n resp.error = err;\n resp.request.emit('httpError', [resp.error, resp], function() {\n done();\n });\n }\n\n function executeSend() {\n var http = AWS.HttpClient.getInstance();\n var httpOptions = resp.request.service.config.httpOptions || {};\n try {\n var stream = http.handleRequest(resp.request.httpRequest, httpOptions,\n callback, error);\n progress(stream);\n } catch (err) {\n error(err);\n }\n }\n var timeDiff = (resp.request.service.getSkewCorrectedDate() - this.signedAt) / 1000;\n if (timeDiff >= 60 * 10) { // if we signed 10min ago, re-sign\n this.emit('sign', [this], function(err) {\n if (err) done(err);\n else executeSend();\n });\n } else {\n executeSend();\n }\n });\n\n add('HTTP_HEADERS', 'httpHeaders',\n function HTTP_HEADERS(statusCode, headers, resp, statusMessage) {\n resp.httpResponse.statusCode = statusCode;\n resp.httpResponse.statusMessage = statusMessage;\n resp.httpResponse.headers = headers;\n resp.httpResponse.body = AWS.util.buffer.toBuffer('');\n resp.httpResponse.buffers = [];\n resp.httpResponse.numBytes = 0;\n var dateHeader = headers.date || headers.Date;\n var service = resp.request.service;\n if (dateHeader) {\n var serverTime = Date.parse(dateHeader);\n if (service.config.correctClockSkew\n && service.isClockSkewed(serverTime)) {\n service.applyClockOffset(serverTime);\n }\n }\n });\n\n add('HTTP_DATA', 'httpData', function HTTP_DATA(chunk, resp) {\n if (chunk) {\n if (AWS.util.isNode()) {\n resp.httpResponse.numBytes += chunk.length;\n\n var total = resp.httpResponse.headers['content-length'];\n var progress = { loaded: resp.httpResponse.numBytes, total: total };\n resp.request.emit('httpDownloadProgress', [progress, resp]);\n }\n\n resp.httpResponse.buffers.push(AWS.util.buffer.toBuffer(chunk));\n }\n });\n\n add('HTTP_DONE', 'httpDone', function HTTP_DONE(resp) {\n // convert buffers array into single buffer\n if (resp.httpResponse.buffers && resp.httpResponse.buffers.length > 0) {\n var body = AWS.util.buffer.concat(resp.httpResponse.buffers);\n resp.httpResponse.body = body;\n }\n delete resp.httpResponse.numBytes;\n delete resp.httpResponse.buffers;\n });\n\n add('FINALIZE_ERROR', 'retry', function FINALIZE_ERROR(resp) {\n if (resp.httpResponse.statusCode) {\n resp.error.statusCode = resp.httpResponse.statusCode;\n if (resp.error.retryable === undefined) {\n resp.error.retryable = this.service.retryableError(resp.error, this);\n }\n }\n });\n\n add('INVALIDATE_CREDENTIALS', 'retry', function INVALIDATE_CREDENTIALS(resp) {\n if (!resp.error) return;\n switch (resp.error.code) {\n case 'RequestExpired': // EC2 only\n case 'ExpiredTokenException':\n case 'ExpiredToken':\n resp.error.retryable = true;\n resp.request.service.config.credentials.expired = true;\n }\n });\n\n add('EXPIRED_SIGNATURE', 'retry', function EXPIRED_SIGNATURE(resp) {\n var err = resp.error;\n if (!err) return;\n if (typeof err.code === 'string' && typeof err.message === 'string') {\n if (err.code.match(/Signature/) && err.message.match(/expired/)) {\n resp.error.retryable = true;\n }\n }\n });\n\n add('CLOCK_SKEWED', 'retry', function CLOCK_SKEWED(resp) {\n if (!resp.error) return;\n if (this.service.clockSkewError(resp.error)\n && this.service.config.correctClockSkew) {\n resp.error.retryable = true;\n }\n });\n\n add('REDIRECT', 'retry', function REDIRECT(resp) {\n if (resp.error && resp.error.statusCode >= 300 &&\n resp.error.statusCode < 400 && resp.httpResponse.headers['location']) {\n this.httpRequest.endpoint =\n new AWS.Endpoint(resp.httpResponse.headers['location']);\n this.httpRequest.headers['Host'] = this.httpRequest.endpoint.host;\n resp.error.redirect = true;\n resp.error.retryable = true;\n }\n });\n\n add('RETRY_CHECK', 'retry', function RETRY_CHECK(resp) {\n if (resp.error) {\n if (resp.error.redirect && resp.redirectCount < resp.maxRedirects) {\n resp.error.retryDelay = 0;\n } else if (resp.retryCount < resp.maxRetries) {\n resp.error.retryDelay = this.service.retryDelays(resp.retryCount, resp.error) || 0;\n }\n }\n });\n\n addAsync('RESET_RETRY_STATE', 'afterRetry', function RESET_RETRY_STATE(resp, done) {\n var delay, willRetry = false;\n\n if (resp.error) {\n delay = resp.error.retryDelay || 0;\n if (resp.error.retryable && resp.retryCount < resp.maxRetries) {\n resp.retryCount++;\n willRetry = true;\n } else if (resp.error.redirect && resp.redirectCount < resp.maxRedirects) {\n resp.redirectCount++;\n willRetry = true;\n }\n }\n\n // delay < 0 is a signal from customBackoff to skip retries\n if (willRetry && delay >= 0) {\n resp.error = null;\n setTimeout(done, delay);\n } else {\n done();\n }\n });\n }),\n\n CorePost: new SequentialExecutor().addNamedListeners(function(add) {\n add('EXTRACT_REQUEST_ID', 'extractData', AWS.util.extractRequestId);\n add('EXTRACT_REQUEST_ID', 'extractError', AWS.util.extractRequestId);\n\n add('ENOTFOUND_ERROR', 'httpError', function ENOTFOUND_ERROR(err) {\n function isDNSError(err) {\n return err.errno === 'ENOTFOUND' ||\n typeof err.errno === 'number' &&\n typeof AWS.util.getSystemErrorName === 'function' &&\n ['EAI_NONAME', 'EAI_NODATA'].indexOf(AWS.util.getSystemErrorName(err.errno) >= 0);\n }\n if (err.code === 'NetworkingError' && isDNSError(err)) {\n var message = 'Inaccessible host: `' + err.hostname + '\\' at port `' + err.port +\n '\\'. This service may not be available in the `' + err.region +\n '\\' region.';\n this.response.error = AWS.util.error(new Error(message), {\n code: 'UnknownEndpoint',\n region: err.region,\n hostname: err.hostname,\n retryable: true,\n originalError: err\n });\n }\n });\n }),\n\n Logger: new SequentialExecutor().addNamedListeners(function(add) {\n add('LOG_REQUEST', 'complete', function LOG_REQUEST(resp) {\n var req = resp.request;\n var logger = req.service.config.logger;\n if (!logger) return;\n function filterSensitiveLog(inputShape, shape) {\n if (!shape) {\n return shape;\n }\n if (inputShape.isSensitive) {\n return '***SensitiveInformation***';\n }\n switch (inputShape.type) {\n case 'structure':\n var struct = {};\n AWS.util.each(shape, function(subShapeName, subShape) {\n if (Object.prototype.hasOwnProperty.call(inputShape.members, subShapeName)) {\n struct[subShapeName] = filterSensitiveLog(inputShape.members[subShapeName], subShape);\n } else {\n struct[subShapeName] = subShape;\n }\n });\n return struct;\n case 'list':\n var list = [];\n AWS.util.arrayEach(shape, function(subShape, index) {\n list.push(filterSensitiveLog(inputShape.member, subShape));\n });\n return list;\n case 'map':\n var map = {};\n AWS.util.each(shape, function(key, value) {\n map[key] = filterSensitiveLog(inputShape.value, value);\n });\n return map;\n default:\n return shape;\n }\n }\n\n function buildMessage() {\n var time = resp.request.service.getSkewCorrectedDate().getTime();\n var delta = (time - req.startTime.getTime()) / 1000;\n var ansi = logger.isTTY ? true : false;\n var status = resp.httpResponse.statusCode;\n var censoredParams = req.params;\n if (\n req.service.api.operations &&\n req.service.api.operations[req.operation] &&\n req.service.api.operations[req.operation].input\n ) {\n var inputShape = req.service.api.operations[req.operation].input;\n censoredParams = filterSensitiveLog(inputShape, req.params);\n }\n var params = require('util').inspect(censoredParams, true, null);\n var message = '';\n if (ansi) message += '\\x1B[33m';\n message += '[AWS ' + req.service.serviceIdentifier + ' ' + status;\n message += ' ' + delta.toString() + 's ' + resp.retryCount + ' retries]';\n if (ansi) message += '\\x1B[0;1m';\n message += ' ' + AWS.util.string.lowerFirst(req.operation);\n message += '(' + params + ')';\n if (ansi) message += '\\x1B[0m';\n return message;\n }\n\n var line = buildMessage();\n if (typeof logger.log === 'function') {\n logger.log(line);\n } else if (typeof logger.write === 'function') {\n logger.write(line + '\\n');\n }\n });\n }),\n\n Json: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/json');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n }),\n\n Rest: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/rest');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n }),\n\n RestJson: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/rest_json');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n add('UNSET_CONTENT_LENGTH', 'afterBuild', svc.unsetContentLength);\n }),\n\n RestXml: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/rest_xml');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n }),\n\n Query: new SequentialExecutor().addNamedListeners(function(add) {\n var svc = require('./protocol/query');\n add('BUILD', 'build', svc.buildRequest);\n add('EXTRACT_DATA', 'extractData', svc.extractData);\n add('EXTRACT_ERROR', 'extractError', svc.extractError);\n })\n};\n","var AWS = require('./core');\nvar inherit = AWS.util.inherit;\n\n/**\n * The endpoint that a service will talk to, for example,\n * `'https://ec2.ap-southeast-1.amazonaws.com'`. If\n * you need to override an endpoint for a service, you can\n * set the endpoint on a service by passing the endpoint\n * object with the `endpoint` option key:\n *\n * ```javascript\n * var ep = new AWS.Endpoint('awsproxy.example.com');\n * var s3 = new AWS.S3({endpoint: ep});\n * s3.service.endpoint.hostname == 'awsproxy.example.com'\n * ```\n *\n * Note that if you do not specify a protocol, the protocol will\n * be selected based on your current {AWS.config} configuration.\n *\n * @!attribute protocol\n * @return [String] the protocol (http or https) of the endpoint\n * URL\n * @!attribute hostname\n * @return [String] the host portion of the endpoint, e.g.,\n * example.com\n * @!attribute host\n * @return [String] the host portion of the endpoint including\n * the port, e.g., example.com:80\n * @!attribute port\n * @return [Integer] the port of the endpoint\n * @!attribute href\n * @return [String] the full URL of the endpoint\n */\nAWS.Endpoint = inherit({\n\n /**\n * @overload Endpoint(endpoint)\n * Constructs a new endpoint given an endpoint URL. If the\n * URL omits a protocol (http or https), the default protocol\n * set in the global {AWS.config} will be used.\n * @param endpoint [String] the URL to construct an endpoint from\n */\n constructor: function Endpoint(endpoint, config) {\n AWS.util.hideProperties(this, ['slashes', 'auth', 'hash', 'search', 'query']);\n\n if (typeof endpoint === 'undefined' || endpoint === null) {\n throw new Error('Invalid endpoint: ' + endpoint);\n } else if (typeof endpoint !== 'string') {\n return AWS.util.copy(endpoint);\n }\n\n if (!endpoint.match(/^http/)) {\n var useSSL = config && config.sslEnabled !== undefined ?\n config.sslEnabled : AWS.config.sslEnabled;\n endpoint = (useSSL ? 'https' : 'http') + '://' + endpoint;\n }\n\n AWS.util.update(this, AWS.util.urlParse(endpoint));\n\n // Ensure the port property is set as an integer\n if (this.port) {\n this.port = parseInt(this.port, 10);\n } else {\n this.port = this.protocol === 'https:' ? 443 : 80;\n }\n }\n\n});\n\n/**\n * The low level HTTP request object, encapsulating all HTTP header\n * and body data sent by a service request.\n *\n * @!attribute method\n * @return [String] the HTTP method of the request\n * @!attribute path\n * @return [String] the path portion of the URI, e.g.,\n * \"/list/?start=5&num=10\"\n * @!attribute headers\n * @return [map]\n * a map of header keys and their respective values\n * @!attribute body\n * @return [String] the request body payload\n * @!attribute endpoint\n * @return [AWS.Endpoint] the endpoint for the request\n * @!attribute region\n * @api private\n * @return [String] the region, for signing purposes only.\n */\nAWS.HttpRequest = inherit({\n\n /**\n * @api private\n */\n constructor: function HttpRequest(endpoint, region) {\n endpoint = new AWS.Endpoint(endpoint);\n this.method = 'POST';\n this.path = endpoint.path || '/';\n this.headers = {};\n this.body = '';\n this.endpoint = endpoint;\n this.region = region;\n this._userAgent = '';\n this.setUserAgent();\n },\n\n /**\n * @api private\n */\n setUserAgent: function setUserAgent() {\n this._userAgent = this.headers[this.getUserAgentHeaderName()] = AWS.util.userAgent();\n },\n\n getUserAgentHeaderName: function getUserAgentHeaderName() {\n var prefix = AWS.util.isBrowser() ? 'X-Amz-' : '';\n return prefix + 'User-Agent';\n },\n\n /**\n * @api private\n */\n appendToUserAgent: function appendToUserAgent(agentPartial) {\n if (typeof agentPartial === 'string' && agentPartial) {\n this._userAgent += ' ' + agentPartial;\n }\n this.headers[this.getUserAgentHeaderName()] = this._userAgent;\n },\n\n /**\n * @api private\n */\n getUserAgent: function getUserAgent() {\n return this._userAgent;\n },\n\n /**\n * @return [String] the part of the {path} excluding the\n * query string\n */\n pathname: function pathname() {\n return this.path.split('?', 1)[0];\n },\n\n /**\n * @return [String] the query string portion of the {path}\n */\n search: function search() {\n var query = this.path.split('?', 2)[1];\n if (query) {\n query = AWS.util.queryStringParse(query);\n return AWS.util.queryParamsToString(query);\n }\n return '';\n },\n\n /**\n * @api private\n * update httpRequest endpoint with endpoint string\n */\n updateEndpoint: function updateEndpoint(endpointStr) {\n var newEndpoint = new AWS.Endpoint(endpointStr);\n this.endpoint = newEndpoint;\n this.path = newEndpoint.path || '/';\n if (this.headers['Host']) {\n this.headers['Host'] = newEndpoint.host;\n }\n }\n});\n\n/**\n * The low level HTTP response object, encapsulating all HTTP header\n * and body data returned from the request.\n *\n * @!attribute statusCode\n * @return [Integer] the HTTP status code of the response (e.g., 200, 404)\n * @!attribute headers\n * @return [map]\n * a map of response header keys and their respective values\n * @!attribute body\n * @return [String] the response body payload\n * @!attribute [r] streaming\n * @return [Boolean] whether this response is being streamed at a low-level.\n * Defaults to `false` (buffered reads). Do not modify this manually, use\n * {createUnbufferedStream} to convert the stream to unbuffered mode\n * instead.\n */\nAWS.HttpResponse = inherit({\n\n /**\n * @api private\n */\n constructor: function HttpResponse() {\n this.statusCode = undefined;\n this.headers = {};\n this.body = undefined;\n this.streaming = false;\n this.stream = null;\n },\n\n /**\n * Disables buffering on the HTTP response and returns the stream for reading.\n * @return [Stream, XMLHttpRequest, null] the underlying stream object.\n * Use this object to directly read data off of the stream.\n * @note This object is only available after the {AWS.Request~httpHeaders}\n * event has fired. This method must be called prior to\n * {AWS.Request~httpData}.\n * @example Taking control of a stream\n * request.on('httpHeaders', function(statusCode, headers) {\n * if (statusCode < 300) {\n * if (headers.etag === 'xyz') {\n * // pipe the stream, disabling buffering\n * var stream = this.response.httpResponse.createUnbufferedStream();\n * stream.pipe(process.stdout);\n * } else { // abort this request and set a better error message\n * this.abort();\n * this.response.error = new Error('Invalid ETag');\n * }\n * }\n * }).send(console.log);\n */\n createUnbufferedStream: function createUnbufferedStream() {\n this.streaming = true;\n return this.stream;\n }\n});\n\n\nAWS.HttpClient = inherit({});\n\n/**\n * @api private\n */\nAWS.HttpClient.getInstance = function getInstance() {\n if (this.singleton === undefined) {\n this.singleton = new this();\n }\n return this.singleton;\n};\n","var AWS = require('../core');\nvar EventEmitter = require('events').EventEmitter;\nrequire('../http');\n\n/**\n * @api private\n */\nAWS.XHRClient = AWS.util.inherit({\n handleRequest: function handleRequest(httpRequest, httpOptions, callback, errCallback) {\n var self = this;\n var endpoint = httpRequest.endpoint;\n var emitter = new EventEmitter();\n var href = endpoint.protocol + '//' + endpoint.hostname;\n if (endpoint.port !== 80 && endpoint.port !== 443) {\n href += ':' + endpoint.port;\n }\n href += httpRequest.path;\n\n var xhr = new XMLHttpRequest(), headersEmitted = false;\n httpRequest.stream = xhr;\n\n xhr.addEventListener('readystatechange', function() {\n try {\n if (xhr.status === 0) return; // 0 code is invalid\n } catch (e) { return; }\n\n if (this.readyState >= this.HEADERS_RECEIVED && !headersEmitted) {\n emitter.statusCode = xhr.status;\n emitter.headers = self.parseHeaders(xhr.getAllResponseHeaders());\n emitter.emit(\n 'headers',\n emitter.statusCode,\n emitter.headers,\n xhr.statusText\n );\n headersEmitted = true;\n }\n if (this.readyState === this.DONE) {\n self.finishRequest(xhr, emitter);\n }\n }, false);\n xhr.upload.addEventListener('progress', function (evt) {\n emitter.emit('sendProgress', evt);\n });\n xhr.addEventListener('progress', function (evt) {\n emitter.emit('receiveProgress', evt);\n }, false);\n xhr.addEventListener('timeout', function () {\n errCallback(AWS.util.error(new Error('Timeout'), {code: 'TimeoutError'}));\n }, false);\n xhr.addEventListener('error', function () {\n errCallback(AWS.util.error(new Error('Network Failure'), {\n code: 'NetworkingError'\n }));\n }, false);\n xhr.addEventListener('abort', function () {\n errCallback(AWS.util.error(new Error('Request aborted'), {\n code: 'RequestAbortedError'\n }));\n }, false);\n\n callback(emitter);\n xhr.open(httpRequest.method, href, httpOptions.xhrAsync !== false);\n AWS.util.each(httpRequest.headers, function (key, value) {\n if (key !== 'Content-Length' && key !== 'User-Agent' && key !== 'Host') {\n xhr.setRequestHeader(key, value);\n }\n });\n\n if (httpOptions.timeout && httpOptions.xhrAsync !== false) {\n xhr.timeout = httpOptions.timeout;\n }\n\n if (httpOptions.xhrWithCredentials) {\n xhr.withCredentials = true;\n }\n try { xhr.responseType = 'arraybuffer'; } catch (e) {}\n\n try {\n if (httpRequest.body) {\n xhr.send(httpRequest.body);\n } else {\n xhr.send();\n }\n } catch (err) {\n if (httpRequest.body && typeof httpRequest.body.buffer === 'object') {\n xhr.send(httpRequest.body.buffer); // send ArrayBuffer directly\n } else {\n throw err;\n }\n }\n\n return emitter;\n },\n\n parseHeaders: function parseHeaders(rawHeaders) {\n var headers = {};\n AWS.util.arrayEach(rawHeaders.split(/\\r?\\n/), function (line) {\n var key = line.split(':', 1)[0];\n var value = line.substring(key.length + 2);\n if (key.length > 0) headers[key.toLowerCase()] = value;\n });\n return headers;\n },\n\n finishRequest: function finishRequest(xhr, emitter) {\n var buffer;\n if (xhr.responseType === 'arraybuffer' && xhr.response) {\n var ab = xhr.response;\n buffer = new AWS.util.Buffer(ab.byteLength);\n var view = new Uint8Array(ab);\n for (var i = 0; i < buffer.length; ++i) {\n buffer[i] = view[i];\n }\n }\n\n try {\n if (!buffer && typeof xhr.responseText === 'string') {\n buffer = new AWS.util.Buffer(xhr.responseText);\n }\n } catch (e) {}\n\n if (buffer) emitter.emit('data', buffer);\n emitter.emit('end');\n }\n});\n\n/**\n * @api private\n */\nAWS.HttpClient.prototype = AWS.XHRClient.prototype;\n\n/**\n * @api private\n */\nAWS.HttpClient.streamsApiVersion = 1;\n","var util = require('../util');\n\nfunction JsonBuilder() { }\n\nJsonBuilder.prototype.build = function(value, shape) {\n return JSON.stringify(translate(value, shape));\n};\n\nfunction translate(value, shape) {\n if (!shape || value === undefined || value === null) return undefined;\n\n switch (shape.type) {\n case 'structure': return translateStructure(value, shape);\n case 'map': return translateMap(value, shape);\n case 'list': return translateList(value, shape);\n default: return translateScalar(value, shape);\n }\n}\n\nfunction translateStructure(structure, shape) {\n if (shape.isDocument) {\n return structure;\n }\n var struct = {};\n util.each(structure, function(name, value) {\n var memberShape = shape.members[name];\n if (memberShape) {\n if (memberShape.location !== 'body') return;\n var locationName = memberShape.isLocationName ? memberShape.name : name;\n var result = translate(value, memberShape);\n if (result !== undefined) struct[locationName] = result;\n }\n });\n return struct;\n}\n\nfunction translateList(list, shape) {\n var out = [];\n util.arrayEach(list, function(value) {\n var result = translate(value, shape.member);\n if (result !== undefined) out.push(result);\n });\n return out;\n}\n\nfunction translateMap(map, shape) {\n var out = {};\n util.each(map, function(key, value) {\n var result = translate(value, shape.value);\n if (result !== undefined) out[key] = result;\n });\n return out;\n}\n\nfunction translateScalar(value, shape) {\n return shape.toWireFormat(value);\n}\n\n/**\n * @api private\n */\nmodule.exports = JsonBuilder;\n","var util = require('../util');\n\nfunction JsonParser() { }\n\nJsonParser.prototype.parse = function(value, shape) {\n return translate(JSON.parse(value), shape);\n};\n\nfunction translate(value, shape) {\n if (!shape || value === undefined) return undefined;\n\n switch (shape.type) {\n case 'structure': return translateStructure(value, shape);\n case 'map': return translateMap(value, shape);\n case 'list': return translateList(value, shape);\n default: return translateScalar(value, shape);\n }\n}\n\nfunction translateStructure(structure, shape) {\n if (structure == null) return undefined;\n if (shape.isDocument) return structure;\n\n var struct = {};\n var shapeMembers = shape.members;\n util.each(shapeMembers, function(name, memberShape) {\n var locationName = memberShape.isLocationName ? memberShape.name : name;\n if (Object.prototype.hasOwnProperty.call(structure, locationName)) {\n var value = structure[locationName];\n var result = translate(value, memberShape);\n if (result !== undefined) struct[name] = result;\n }\n });\n return struct;\n}\n\nfunction translateList(list, shape) {\n if (list == null) return undefined;\n\n var out = [];\n util.arrayEach(list, function(value) {\n var result = translate(value, shape.member);\n if (result === undefined) out.push(null);\n else out.push(result);\n });\n return out;\n}\n\nfunction translateMap(map, shape) {\n if (map == null) return undefined;\n\n var out = {};\n util.each(map, function(key, value) {\n var result = translate(value, shape.value);\n if (result === undefined) out[key] = null;\n else out[key] = result;\n });\n return out;\n}\n\nfunction translateScalar(value, shape) {\n return shape.toType(value);\n}\n\n/**\n * @api private\n */\nmodule.exports = JsonParser;\n","var warning = [\n 'We are formalizing our plans to enter AWS SDK for JavaScript (v2) into maintenance mode in 2023.\\n',\n 'Please migrate your code to use AWS SDK for JavaScript (v3).',\n 'For more information, check the migration guide at https://a.co/7PzMCcy'\n].join('\\n');\n\nmodule.exports = {\n suppress: false\n};\n\n/**\n * To suppress this message:\n * @example\n * require('aws-sdk/lib/maintenance_mode_message').suppress = true;\n */\nfunction emitWarning() {\n if (typeof process === 'undefined')\n return;\n\n // Skip maintenance mode message in Lambda environments\n if (\n typeof process.env === 'object' &&\n typeof process.env.AWS_EXECUTION_ENV !== 'undefined' &&\n process.env.AWS_EXECUTION_ENV.indexOf('AWS_Lambda_') === 0\n ) {\n return;\n }\n\n if (\n typeof process.env === 'object' &&\n typeof process.env.AWS_SDK_JS_SUPPRESS_MAINTENANCE_MODE_MESSAGE !== 'undefined'\n ) {\n return;\n }\n\n if (typeof process.emitWarning === 'function') {\n process.emitWarning(warning, {\n type: 'NOTE'\n });\n }\n}\n\nsetTimeout(function () {\n if (!module.exports.suppress) {\n emitWarning();\n }\n}, 0);\n","var Collection = require('./collection');\nvar Operation = require('./operation');\nvar Shape = require('./shape');\nvar Paginator = require('./paginator');\nvar ResourceWaiter = require('./resource_waiter');\nvar metadata = require('../../apis/metadata.json');\n\nvar util = require('../util');\nvar property = util.property;\nvar memoizedProperty = util.memoizedProperty;\n\nfunction Api(api, options) {\n var self = this;\n api = api || {};\n options = options || {};\n options.api = this;\n\n api.metadata = api.metadata || {};\n\n var serviceIdentifier = options.serviceIdentifier;\n delete options.serviceIdentifier;\n\n property(this, 'isApi', true, false);\n property(this, 'apiVersion', api.metadata.apiVersion);\n property(this, 'endpointPrefix', api.metadata.endpointPrefix);\n property(this, 'signingName', api.metadata.signingName);\n property(this, 'globalEndpoint', api.metadata.globalEndpoint);\n property(this, 'signatureVersion', api.metadata.signatureVersion);\n property(this, 'jsonVersion', api.metadata.jsonVersion);\n property(this, 'targetPrefix', api.metadata.targetPrefix);\n property(this, 'protocol', api.metadata.protocol);\n property(this, 'timestampFormat', api.metadata.timestampFormat);\n property(this, 'xmlNamespaceUri', api.metadata.xmlNamespace);\n property(this, 'abbreviation', api.metadata.serviceAbbreviation);\n property(this, 'fullName', api.metadata.serviceFullName);\n property(this, 'serviceId', api.metadata.serviceId);\n if (serviceIdentifier && metadata[serviceIdentifier]) {\n property(this, 'xmlNoDefaultLists', metadata[serviceIdentifier].xmlNoDefaultLists, false);\n }\n\n memoizedProperty(this, 'className', function() {\n var name = api.metadata.serviceAbbreviation || api.metadata.serviceFullName;\n if (!name) return null;\n\n name = name.replace(/^Amazon|AWS\\s*|\\(.*|\\s+|\\W+/g, '');\n if (name === 'ElasticLoadBalancing') name = 'ELB';\n return name;\n });\n\n function addEndpointOperation(name, operation) {\n if (operation.endpointoperation === true) {\n property(self, 'endpointOperation', util.string.lowerFirst(name));\n }\n if (operation.endpointdiscovery && !self.hasRequiredEndpointDiscovery) {\n property(\n self,\n 'hasRequiredEndpointDiscovery',\n operation.endpointdiscovery.required === true\n );\n }\n }\n\n property(this, 'operations', new Collection(api.operations, options, function(name, operation) {\n return new Operation(name, operation, options);\n }, util.string.lowerFirst, addEndpointOperation));\n\n property(this, 'shapes', new Collection(api.shapes, options, function(name, shape) {\n return Shape.create(shape, options);\n }));\n\n property(this, 'paginators', new Collection(api.paginators, options, function(name, paginator) {\n return new Paginator(name, paginator, options);\n }));\n\n property(this, 'waiters', new Collection(api.waiters, options, function(name, waiter) {\n return new ResourceWaiter(name, waiter, options);\n }, util.string.lowerFirst));\n\n if (options.documentation) {\n property(this, 'documentation', api.documentation);\n property(this, 'documentationUrl', api.documentationUrl);\n }\n property(this, 'awsQueryCompatible', api.metadata.awsQueryCompatible);\n}\n\n/**\n * @api private\n */\nmodule.exports = Api;\n","var memoizedProperty = require('../util').memoizedProperty;\n\nfunction memoize(name, value, factory, nameTr) {\n memoizedProperty(this, nameTr(name), function() {\n return factory(name, value);\n });\n}\n\nfunction Collection(iterable, options, factory, nameTr, callback) {\n nameTr = nameTr || String;\n var self = this;\n\n for (var id in iterable) {\n if (Object.prototype.hasOwnProperty.call(iterable, id)) {\n memoize.call(self, id, iterable[id], factory, nameTr);\n if (callback) callback(id, iterable[id]);\n }\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = Collection;\n","var Shape = require('./shape');\n\nvar util = require('../util');\nvar property = util.property;\nvar memoizedProperty = util.memoizedProperty;\n\nfunction Operation(name, operation, options) {\n var self = this;\n options = options || {};\n\n property(this, 'name', operation.name || name);\n property(this, 'api', options.api, false);\n\n operation.http = operation.http || {};\n property(this, 'endpoint', operation.endpoint);\n property(this, 'httpMethod', operation.http.method || 'POST');\n property(this, 'httpPath', operation.http.requestUri || '/');\n property(this, 'authtype', operation.authtype || '');\n property(\n this,\n 'endpointDiscoveryRequired',\n operation.endpointdiscovery ?\n (operation.endpointdiscovery.required ? 'REQUIRED' : 'OPTIONAL') :\n 'NULL'\n );\n\n // httpChecksum replaces usage of httpChecksumRequired, but some APIs\n // (s3control) still uses old trait.\n var httpChecksumRequired = operation.httpChecksumRequired\n || (operation.httpChecksum && operation.httpChecksum.requestChecksumRequired);\n property(this, 'httpChecksumRequired', httpChecksumRequired, false);\n\n memoizedProperty(this, 'input', function() {\n if (!operation.input) {\n return new Shape.create({type: 'structure'}, options);\n }\n return Shape.create(operation.input, options);\n });\n\n memoizedProperty(this, 'output', function() {\n if (!operation.output) {\n return new Shape.create({type: 'structure'}, options);\n }\n return Shape.create(operation.output, options);\n });\n\n memoizedProperty(this, 'errors', function() {\n var list = [];\n if (!operation.errors) return null;\n\n for (var i = 0; i < operation.errors.length; i++) {\n list.push(Shape.create(operation.errors[i], options));\n }\n\n return list;\n });\n\n memoizedProperty(this, 'paginator', function() {\n return options.api.paginators[name];\n });\n\n if (options.documentation) {\n property(this, 'documentation', operation.documentation);\n property(this, 'documentationUrl', operation.documentationUrl);\n }\n\n // idempotentMembers only tracks top-level input shapes\n memoizedProperty(this, 'idempotentMembers', function() {\n var idempotentMembers = [];\n var input = self.input;\n var members = input.members;\n if (!input.members) {\n return idempotentMembers;\n }\n for (var name in members) {\n if (!members.hasOwnProperty(name)) {\n continue;\n }\n if (members[name].isIdempotent === true) {\n idempotentMembers.push(name);\n }\n }\n return idempotentMembers;\n });\n\n memoizedProperty(this, 'hasEventOutput', function() {\n var output = self.output;\n return hasEventStream(output);\n });\n}\n\nfunction hasEventStream(topLevelShape) {\n var members = topLevelShape.members;\n var payload = topLevelShape.payload;\n\n if (!topLevelShape.members) {\n return false;\n }\n\n if (payload) {\n var payloadMember = members[payload];\n return payloadMember.isEventStream;\n }\n\n // check if any member is an event stream\n for (var name in members) {\n if (!members.hasOwnProperty(name)) {\n if (members[name].isEventStream === true) {\n return true;\n }\n }\n }\n return false;\n}\n\n/**\n * @api private\n */\nmodule.exports = Operation;\n","var property = require('../util').property;\n\nfunction Paginator(name, paginator) {\n property(this, 'inputToken', paginator.input_token);\n property(this, 'limitKey', paginator.limit_key);\n property(this, 'moreResults', paginator.more_results);\n property(this, 'outputToken', paginator.output_token);\n property(this, 'resultKey', paginator.result_key);\n}\n\n/**\n * @api private\n */\nmodule.exports = Paginator;\n","var util = require('../util');\nvar property = util.property;\n\nfunction ResourceWaiter(name, waiter, options) {\n options = options || {};\n property(this, 'name', name);\n property(this, 'api', options.api, false);\n\n if (waiter.operation) {\n property(this, 'operation', util.string.lowerFirst(waiter.operation));\n }\n\n var self = this;\n var keys = [\n 'type',\n 'description',\n 'delay',\n 'maxAttempts',\n 'acceptors'\n ];\n\n keys.forEach(function(key) {\n var value = waiter[key];\n if (value) {\n property(self, key, value);\n }\n });\n}\n\n/**\n * @api private\n */\nmodule.exports = ResourceWaiter;\n","var Collection = require('./collection');\n\nvar util = require('../util');\n\nfunction property(obj, name, value) {\n if (value !== null && value !== undefined) {\n util.property.apply(this, arguments);\n }\n}\n\nfunction memoizedProperty(obj, name) {\n if (!obj.constructor.prototype[name]) {\n util.memoizedProperty.apply(this, arguments);\n }\n}\n\nfunction Shape(shape, options, memberName) {\n options = options || {};\n\n property(this, 'shape', shape.shape);\n property(this, 'api', options.api, false);\n property(this, 'type', shape.type);\n property(this, 'enum', shape.enum);\n property(this, 'min', shape.min);\n property(this, 'max', shape.max);\n property(this, 'pattern', shape.pattern);\n property(this, 'location', shape.location || this.location || 'body');\n property(this, 'name', this.name || shape.xmlName || shape.queryName ||\n shape.locationName || memberName);\n property(this, 'isStreaming', shape.streaming || this.isStreaming || false);\n property(this, 'requiresLength', shape.requiresLength, false);\n property(this, 'isComposite', shape.isComposite || false);\n property(this, 'isShape', true, false);\n property(this, 'isQueryName', Boolean(shape.queryName), false);\n property(this, 'isLocationName', Boolean(shape.locationName), false);\n property(this, 'isIdempotent', shape.idempotencyToken === true);\n property(this, 'isJsonValue', shape.jsonvalue === true);\n property(this, 'isSensitive', shape.sensitive === true || shape.prototype && shape.prototype.sensitive === true);\n property(this, 'isEventStream', Boolean(shape.eventstream), false);\n property(this, 'isEvent', Boolean(shape.event), false);\n property(this, 'isEventPayload', Boolean(shape.eventpayload), false);\n property(this, 'isEventHeader', Boolean(shape.eventheader), false);\n property(this, 'isTimestampFormatSet', Boolean(shape.timestampFormat) || shape.prototype && shape.prototype.isTimestampFormatSet === true, false);\n property(this, 'endpointDiscoveryId', Boolean(shape.endpointdiscoveryid), false);\n property(this, 'hostLabel', Boolean(shape.hostLabel), false);\n\n if (options.documentation) {\n property(this, 'documentation', shape.documentation);\n property(this, 'documentationUrl', shape.documentationUrl);\n }\n\n if (shape.xmlAttribute) {\n property(this, 'isXmlAttribute', shape.xmlAttribute || false);\n }\n\n // type conversion and parsing\n property(this, 'defaultValue', null);\n this.toWireFormat = function(value) {\n if (value === null || value === undefined) return '';\n return value;\n };\n this.toType = function(value) { return value; };\n}\n\n/**\n * @api private\n */\nShape.normalizedTypes = {\n character: 'string',\n double: 'float',\n long: 'integer',\n short: 'integer',\n biginteger: 'integer',\n bigdecimal: 'float',\n blob: 'binary'\n};\n\n/**\n * @api private\n */\nShape.types = {\n 'structure': StructureShape,\n 'list': ListShape,\n 'map': MapShape,\n 'boolean': BooleanShape,\n 'timestamp': TimestampShape,\n 'float': FloatShape,\n 'integer': IntegerShape,\n 'string': StringShape,\n 'base64': Base64Shape,\n 'binary': BinaryShape\n};\n\nShape.resolve = function resolve(shape, options) {\n if (shape.shape) {\n var refShape = options.api.shapes[shape.shape];\n if (!refShape) {\n throw new Error('Cannot find shape reference: ' + shape.shape);\n }\n\n return refShape;\n } else {\n return null;\n }\n};\n\nShape.create = function create(shape, options, memberName) {\n if (shape.isShape) return shape;\n\n var refShape = Shape.resolve(shape, options);\n if (refShape) {\n var filteredKeys = Object.keys(shape);\n if (!options.documentation) {\n filteredKeys = filteredKeys.filter(function(name) {\n return !name.match(/documentation/);\n });\n }\n\n // create an inline shape with extra members\n var InlineShape = function() {\n refShape.constructor.call(this, shape, options, memberName);\n };\n InlineShape.prototype = refShape;\n return new InlineShape();\n } else {\n // set type if not set\n if (!shape.type) {\n if (shape.members) shape.type = 'structure';\n else if (shape.member) shape.type = 'list';\n else if (shape.key) shape.type = 'map';\n else shape.type = 'string';\n }\n\n // normalize types\n var origType = shape.type;\n if (Shape.normalizedTypes[shape.type]) {\n shape.type = Shape.normalizedTypes[shape.type];\n }\n\n if (Shape.types[shape.type]) {\n return new Shape.types[shape.type](shape, options, memberName);\n } else {\n throw new Error('Unrecognized shape type: ' + origType);\n }\n }\n};\n\nfunction CompositeShape(shape) {\n Shape.apply(this, arguments);\n property(this, 'isComposite', true);\n\n if (shape.flattened) {\n property(this, 'flattened', shape.flattened || false);\n }\n}\n\nfunction StructureShape(shape, options) {\n var self = this;\n var requiredMap = null, firstInit = !this.isShape;\n\n CompositeShape.apply(this, arguments);\n\n if (firstInit) {\n property(this, 'defaultValue', function() { return {}; });\n property(this, 'members', {});\n property(this, 'memberNames', []);\n property(this, 'required', []);\n property(this, 'isRequired', function() { return false; });\n property(this, 'isDocument', Boolean(shape.document));\n }\n\n if (shape.members) {\n property(this, 'members', new Collection(shape.members, options, function(name, member) {\n return Shape.create(member, options, name);\n }));\n memoizedProperty(this, 'memberNames', function() {\n return shape.xmlOrder || Object.keys(shape.members);\n });\n\n if (shape.event) {\n memoizedProperty(this, 'eventPayloadMemberName', function() {\n var members = self.members;\n var memberNames = self.memberNames;\n // iterate over members to find ones that are event payloads\n for (var i = 0, iLen = memberNames.length; i < iLen; i++) {\n if (members[memberNames[i]].isEventPayload) {\n return memberNames[i];\n }\n }\n });\n\n memoizedProperty(this, 'eventHeaderMemberNames', function() {\n var members = self.members;\n var memberNames = self.memberNames;\n var eventHeaderMemberNames = [];\n // iterate over members to find ones that are event headers\n for (var i = 0, iLen = memberNames.length; i < iLen; i++) {\n if (members[memberNames[i]].isEventHeader) {\n eventHeaderMemberNames.push(memberNames[i]);\n }\n }\n return eventHeaderMemberNames;\n });\n }\n }\n\n if (shape.required) {\n property(this, 'required', shape.required);\n property(this, 'isRequired', function(name) {\n if (!requiredMap) {\n requiredMap = {};\n for (var i = 0; i < shape.required.length; i++) {\n requiredMap[shape.required[i]] = true;\n }\n }\n\n return requiredMap[name];\n }, false, true);\n }\n\n property(this, 'resultWrapper', shape.resultWrapper || null);\n\n if (shape.payload) {\n property(this, 'payload', shape.payload);\n }\n\n if (typeof shape.xmlNamespace === 'string') {\n property(this, 'xmlNamespaceUri', shape.xmlNamespace);\n } else if (typeof shape.xmlNamespace === 'object') {\n property(this, 'xmlNamespacePrefix', shape.xmlNamespace.prefix);\n property(this, 'xmlNamespaceUri', shape.xmlNamespace.uri);\n }\n}\n\nfunction ListShape(shape, options) {\n var self = this, firstInit = !this.isShape;\n CompositeShape.apply(this, arguments);\n\n if (firstInit) {\n property(this, 'defaultValue', function() { return []; });\n }\n\n if (shape.member) {\n memoizedProperty(this, 'member', function() {\n return Shape.create(shape.member, options);\n });\n }\n\n if (this.flattened) {\n var oldName = this.name;\n memoizedProperty(this, 'name', function() {\n return self.member.name || oldName;\n });\n }\n}\n\nfunction MapShape(shape, options) {\n var firstInit = !this.isShape;\n CompositeShape.apply(this, arguments);\n\n if (firstInit) {\n property(this, 'defaultValue', function() { return {}; });\n property(this, 'key', Shape.create({type: 'string'}, options));\n property(this, 'value', Shape.create({type: 'string'}, options));\n }\n\n if (shape.key) {\n memoizedProperty(this, 'key', function() {\n return Shape.create(shape.key, options);\n });\n }\n if (shape.value) {\n memoizedProperty(this, 'value', function() {\n return Shape.create(shape.value, options);\n });\n }\n}\n\nfunction TimestampShape(shape) {\n var self = this;\n Shape.apply(this, arguments);\n\n if (shape.timestampFormat) {\n property(this, 'timestampFormat', shape.timestampFormat);\n } else if (self.isTimestampFormatSet && this.timestampFormat) {\n property(this, 'timestampFormat', this.timestampFormat);\n } else if (this.location === 'header') {\n property(this, 'timestampFormat', 'rfc822');\n } else if (this.location === 'querystring') {\n property(this, 'timestampFormat', 'iso8601');\n } else if (this.api) {\n switch (this.api.protocol) {\n case 'json':\n case 'rest-json':\n property(this, 'timestampFormat', 'unixTimestamp');\n break;\n case 'rest-xml':\n case 'query':\n case 'ec2':\n property(this, 'timestampFormat', 'iso8601');\n break;\n }\n }\n\n this.toType = function(value) {\n if (value === null || value === undefined) return null;\n if (typeof value.toUTCString === 'function') return value;\n return typeof value === 'string' || typeof value === 'number' ?\n util.date.parseTimestamp(value) : null;\n };\n\n this.toWireFormat = function(value) {\n return util.date.format(value, self.timestampFormat);\n };\n}\n\nfunction StringShape() {\n Shape.apply(this, arguments);\n\n var nullLessProtocols = ['rest-xml', 'query', 'ec2'];\n this.toType = function(value) {\n value = this.api && nullLessProtocols.indexOf(this.api.protocol) > -1 ?\n value || '' : value;\n if (this.isJsonValue) {\n return JSON.parse(value);\n }\n\n return value && typeof value.toString === 'function' ?\n value.toString() : value;\n };\n\n this.toWireFormat = function(value) {\n return this.isJsonValue ? JSON.stringify(value) : value;\n };\n}\n\nfunction FloatShape() {\n Shape.apply(this, arguments);\n\n this.toType = function(value) {\n if (value === null || value === undefined) return null;\n return parseFloat(value);\n };\n this.toWireFormat = this.toType;\n}\n\nfunction IntegerShape() {\n Shape.apply(this, arguments);\n\n this.toType = function(value) {\n if (value === null || value === undefined) return null;\n return parseInt(value, 10);\n };\n this.toWireFormat = this.toType;\n}\n\nfunction BinaryShape() {\n Shape.apply(this, arguments);\n this.toType = function(value) {\n var buf = util.base64.decode(value);\n if (this.isSensitive && util.isNode() && typeof util.Buffer.alloc === 'function') {\n /* Node.js can create a Buffer that is not isolated.\n * i.e. buf.byteLength !== buf.buffer.byteLength\n * This means that the sensitive data is accessible to anyone with access to buf.buffer.\n * If this is the node shared Buffer, then other code within this process _could_ find this secret.\n * Copy sensitive data to an isolated Buffer and zero the sensitive data.\n * While this is safe to do here, copying this code somewhere else may produce unexpected results.\n */\n var secureBuf = util.Buffer.alloc(buf.length, buf);\n buf.fill(0);\n buf = secureBuf;\n }\n return buf;\n };\n this.toWireFormat = util.base64.encode;\n}\n\nfunction Base64Shape() {\n BinaryShape.apply(this, arguments);\n}\n\nfunction BooleanShape() {\n Shape.apply(this, arguments);\n\n this.toType = function(value) {\n if (typeof value === 'boolean') return value;\n if (value === null || value === undefined) return null;\n return value === 'true';\n };\n}\n\n/**\n * @api private\n */\nShape.shapes = {\n StructureShape: StructureShape,\n ListShape: ListShape,\n MapShape: MapShape,\n StringShape: StringShape,\n BooleanShape: BooleanShape,\n Base64Shape: Base64Shape\n};\n\n/**\n * @api private\n */\nmodule.exports = Shape;\n","var AWS = require('./core');\n\n/**\n * @api private\n */\nAWS.ParamValidator = AWS.util.inherit({\n /**\n * Create a new validator object.\n *\n * @param validation [Boolean|map] whether input parameters should be\n * validated against the operation description before sending the\n * request. Pass a map to enable any of the following specific\n * validation features:\n *\n * * **min** [Boolean] — Validates that a value meets the min\n * constraint. This is enabled by default when paramValidation is set\n * to `true`.\n * * **max** [Boolean] — Validates that a value meets the max\n * constraint.\n * * **pattern** [Boolean] — Validates that a string value matches a\n * regular expression.\n * * **enum** [Boolean] — Validates that a string value matches one\n * of the allowable enum values.\n */\n constructor: function ParamValidator(validation) {\n if (validation === true || validation === undefined) {\n validation = {'min': true};\n }\n this.validation = validation;\n },\n\n validate: function validate(shape, params, context) {\n this.errors = [];\n this.validateMember(shape, params || {}, context || 'params');\n\n if (this.errors.length > 1) {\n var msg = this.errors.join('\\n* ');\n msg = 'There were ' + this.errors.length +\n ' validation errors:\\n* ' + msg;\n throw AWS.util.error(new Error(msg),\n {code: 'MultipleValidationErrors', errors: this.errors});\n } else if (this.errors.length === 1) {\n throw this.errors[0];\n } else {\n return true;\n }\n },\n\n fail: function fail(code, message) {\n this.errors.push(AWS.util.error(new Error(message), {code: code}));\n },\n\n validateStructure: function validateStructure(shape, params, context) {\n if (shape.isDocument) return true;\n\n this.validateType(params, context, ['object'], 'structure');\n var paramName;\n for (var i = 0; shape.required && i < shape.required.length; i++) {\n paramName = shape.required[i];\n var value = params[paramName];\n if (value === undefined || value === null) {\n this.fail('MissingRequiredParameter',\n 'Missing required key \\'' + paramName + '\\' in ' + context);\n }\n }\n\n // validate hash members\n for (paramName in params) {\n if (!Object.prototype.hasOwnProperty.call(params, paramName)) continue;\n\n var paramValue = params[paramName],\n memberShape = shape.members[paramName];\n\n if (memberShape !== undefined) {\n var memberContext = [context, paramName].join('.');\n this.validateMember(memberShape, paramValue, memberContext);\n } else if (paramValue !== undefined && paramValue !== null) {\n this.fail('UnexpectedParameter',\n 'Unexpected key \\'' + paramName + '\\' found in ' + context);\n }\n }\n\n return true;\n },\n\n validateMember: function validateMember(shape, param, context) {\n switch (shape.type) {\n case 'structure':\n return this.validateStructure(shape, param, context);\n case 'list':\n return this.validateList(shape, param, context);\n case 'map':\n return this.validateMap(shape, param, context);\n default:\n return this.validateScalar(shape, param, context);\n }\n },\n\n validateList: function validateList(shape, params, context) {\n if (this.validateType(params, context, [Array])) {\n this.validateRange(shape, params.length, context, 'list member count');\n // validate array members\n for (var i = 0; i < params.length; i++) {\n this.validateMember(shape.member, params[i], context + '[' + i + ']');\n }\n }\n },\n\n validateMap: function validateMap(shape, params, context) {\n if (this.validateType(params, context, ['object'], 'map')) {\n // Build up a count of map members to validate range traits.\n var mapCount = 0;\n for (var param in params) {\n if (!Object.prototype.hasOwnProperty.call(params, param)) continue;\n // Validate any map key trait constraints\n this.validateMember(shape.key, param,\n context + '[key=\\'' + param + '\\']');\n this.validateMember(shape.value, params[param],\n context + '[\\'' + param + '\\']');\n mapCount++;\n }\n this.validateRange(shape, mapCount, context, 'map member count');\n }\n },\n\n validateScalar: function validateScalar(shape, value, context) {\n switch (shape.type) {\n case null:\n case undefined:\n case 'string':\n return this.validateString(shape, value, context);\n case 'base64':\n case 'binary':\n return this.validatePayload(value, context);\n case 'integer':\n case 'float':\n return this.validateNumber(shape, value, context);\n case 'boolean':\n return this.validateType(value, context, ['boolean']);\n case 'timestamp':\n return this.validateType(value, context, [Date,\n /^\\d{4}-\\d{2}-\\d{2}T\\d{2}:\\d{2}:\\d{2}(\\.\\d+)?Z$/, 'number'],\n 'Date object, ISO-8601 string, or a UNIX timestamp');\n default:\n return this.fail('UnkownType', 'Unhandled type ' +\n shape.type + ' for ' + context);\n }\n },\n\n validateString: function validateString(shape, value, context) {\n var validTypes = ['string'];\n if (shape.isJsonValue) {\n validTypes = validTypes.concat(['number', 'object', 'boolean']);\n }\n if (value !== null && this.validateType(value, context, validTypes)) {\n this.validateEnum(shape, value, context);\n this.validateRange(shape, value.length, context, 'string length');\n this.validatePattern(shape, value, context);\n this.validateUri(shape, value, context);\n }\n },\n\n validateUri: function validateUri(shape, value, context) {\n if (shape['location'] === 'uri') {\n if (value.length === 0) {\n this.fail('UriParameterError', 'Expected uri parameter to have length >= 1,'\n + ' but found \"' + value +'\" for ' + context);\n }\n }\n },\n\n validatePattern: function validatePattern(shape, value, context) {\n if (this.validation['pattern'] && shape['pattern'] !== undefined) {\n if (!(new RegExp(shape['pattern'])).test(value)) {\n this.fail('PatternMatchError', 'Provided value \"' + value + '\" '\n + 'does not match regex pattern /' + shape['pattern'] + '/ for '\n + context);\n }\n }\n },\n\n validateRange: function validateRange(shape, value, context, descriptor) {\n if (this.validation['min']) {\n if (shape['min'] !== undefined && value < shape['min']) {\n this.fail('MinRangeError', 'Expected ' + descriptor + ' >= '\n + shape['min'] + ', but found ' + value + ' for ' + context);\n }\n }\n if (this.validation['max']) {\n if (shape['max'] !== undefined && value > shape['max']) {\n this.fail('MaxRangeError', 'Expected ' + descriptor + ' <= '\n + shape['max'] + ', but found ' + value + ' for ' + context);\n }\n }\n },\n\n validateEnum: function validateRange(shape, value, context) {\n if (this.validation['enum'] && shape['enum'] !== undefined) {\n // Fail if the string value is not present in the enum list\n if (shape['enum'].indexOf(value) === -1) {\n this.fail('EnumError', 'Found string value of ' + value + ', but '\n + 'expected ' + shape['enum'].join('|') + ' for ' + context);\n }\n }\n },\n\n validateType: function validateType(value, context, acceptedTypes, type) {\n // We will not log an error for null or undefined, but we will return\n // false so that callers know that the expected type was not strictly met.\n if (value === null || value === undefined) return false;\n\n var foundInvalidType = false;\n for (var i = 0; i < acceptedTypes.length; i++) {\n if (typeof acceptedTypes[i] === 'string') {\n if (typeof value === acceptedTypes[i]) return true;\n } else if (acceptedTypes[i] instanceof RegExp) {\n if ((value || '').toString().match(acceptedTypes[i])) return true;\n } else {\n if (value instanceof acceptedTypes[i]) return true;\n if (AWS.util.isType(value, acceptedTypes[i])) return true;\n if (!type && !foundInvalidType) acceptedTypes = acceptedTypes.slice();\n acceptedTypes[i] = AWS.util.typeName(acceptedTypes[i]);\n }\n foundInvalidType = true;\n }\n\n var acceptedType = type;\n if (!acceptedType) {\n acceptedType = acceptedTypes.join(', ').replace(/,([^,]+)$/, ', or$1');\n }\n\n var vowel = acceptedType.match(/^[aeiou]/i) ? 'n' : '';\n this.fail('InvalidParameterType', 'Expected ' + context + ' to be a' +\n vowel + ' ' + acceptedType);\n return false;\n },\n\n validateNumber: function validateNumber(shape, value, context) {\n if (value === null || value === undefined) return;\n if (typeof value === 'string') {\n var castedValue = parseFloat(value);\n if (castedValue.toString() === value) value = castedValue;\n }\n if (this.validateType(value, context, ['number'])) {\n this.validateRange(shape, value, context, 'numeric value');\n }\n },\n\n validatePayload: function validatePayload(value, context) {\n if (value === null || value === undefined) return;\n if (typeof value === 'string') return;\n if (value && typeof value.byteLength === 'number') return; // typed arrays\n if (AWS.util.isNode()) { // special check for buffer/stream in Node.js\n var Stream = AWS.util.stream.Stream;\n if (AWS.util.Buffer.isBuffer(value) || value instanceof Stream) return;\n } else {\n if (typeof Blob !== void 0 && value instanceof Blob) return;\n }\n\n var types = ['Buffer', 'Stream', 'File', 'Blob', 'ArrayBuffer', 'DataView'];\n if (value) {\n for (var i = 0; i < types.length; i++) {\n if (AWS.util.isType(value, types[i])) return;\n if (AWS.util.typeName(value.constructor) === types[i]) return;\n }\n }\n\n this.fail('InvalidParameterType', 'Expected ' + context + ' to be a ' +\n 'string, Buffer, Stream, Blob, or typed array object');\n }\n});\n","var AWS = require('../core');\nvar rest = AWS.Protocol.Rest;\n\n/**\n * A presigner object can be used to generate presigned urls for the Polly service.\n */\nAWS.Polly.Presigner = AWS.util.inherit({\n /**\n * Creates a presigner object with a set of configuration options.\n *\n * @option options params [map] An optional map of parameters to bind to every\n * request sent by this service object.\n * @option options service [AWS.Polly] An optional pre-configured instance\n * of the AWS.Polly service object to use for requests. The object may\n * bound parameters used by the presigner.\n * @see AWS.Polly.constructor\n */\n constructor: function Signer(options) {\n options = options || {};\n this.options = options;\n this.service = options.service;\n this.bindServiceObject(options);\n this._operations = {};\n },\n\n /**\n * @api private\n */\n bindServiceObject: function bindServiceObject(options) {\n options = options || {};\n if (!this.service) {\n this.service = new AWS.Polly(options);\n } else {\n var config = AWS.util.copy(this.service.config);\n this.service = new this.service.constructor.__super__(config);\n this.service.config.params = AWS.util.merge(this.service.config.params || {}, options.params);\n }\n },\n\n /**\n * @api private\n */\n modifyInputMembers: function modifyInputMembers(input) {\n // make copies of the input so we don't overwrite the api\n // need to be careful to copy anything we access/modify\n var modifiedInput = AWS.util.copy(input);\n modifiedInput.members = AWS.util.copy(input.members);\n AWS.util.each(input.members, function(name, member) {\n modifiedInput.members[name] = AWS.util.copy(member);\n // update location and locationName\n if (!member.location || member.location === 'body') {\n modifiedInput.members[name].location = 'querystring';\n modifiedInput.members[name].locationName = name;\n }\n });\n return modifiedInput;\n },\n\n /**\n * @api private\n */\n convertPostToGet: function convertPostToGet(req) {\n // convert method\n req.httpRequest.method = 'GET';\n\n var operation = req.service.api.operations[req.operation];\n // get cached operation input first\n var input = this._operations[req.operation];\n if (!input) {\n // modify the original input\n this._operations[req.operation] = input = this.modifyInputMembers(operation.input);\n }\n\n var uri = rest.generateURI(req.httpRequest.endpoint.path, operation.httpPath, input, req.params);\n\n req.httpRequest.path = uri;\n req.httpRequest.body = '';\n\n // don't need these headers on a GET request\n delete req.httpRequest.headers['Content-Length'];\n delete req.httpRequest.headers['Content-Type'];\n },\n\n /**\n * @overload getSynthesizeSpeechUrl(params = {}, [expires = 3600], [callback])\n * Generate a presigned url for {AWS.Polly.synthesizeSpeech}.\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n * @param params [map] parameters to pass to the operation. See the {AWS.Polly.synthesizeSpeech}\n * operation for the expected operation parameters.\n * @param expires [Integer] (3600) the number of seconds to expire the pre-signed URL operation in.\n * Defaults to 1 hour.\n * @return [string] if called synchronously (with no callback), returns the signed URL.\n * @return [null] nothing is returned if a callback is provided.\n * @callback callback function (err, url)\n * If a callback is supplied, it is called when a signed URL has been generated.\n * @param err [Error] the error object returned from the presigner.\n * @param url [String] the signed URL.\n * @see AWS.Polly.synthesizeSpeech\n */\n getSynthesizeSpeechUrl: function getSynthesizeSpeechUrl(params, expires, callback) {\n var self = this;\n var request = this.service.makeRequest('synthesizeSpeech', params);\n // remove existing build listeners\n request.removeAllListeners('build');\n request.on('build', function(req) {\n self.convertPostToGet(req);\n });\n return request.presign(expires, callback);\n }\n});\n","var util = require('../util');\nvar AWS = require('../core');\n\n/**\n * Prepend prefix defined by API model to endpoint that's already\n * constructed. This feature does not apply to operations using\n * endpoint discovery and can be disabled.\n * @api private\n */\nfunction populateHostPrefix(request) {\n var enabled = request.service.config.hostPrefixEnabled;\n if (!enabled) return request;\n var operationModel = request.service.api.operations[request.operation];\n //don't marshal host prefix when operation has endpoint discovery traits\n if (hasEndpointDiscover(request)) return request;\n if (operationModel.endpoint && operationModel.endpoint.hostPrefix) {\n var hostPrefixNotation = operationModel.endpoint.hostPrefix;\n var hostPrefix = expandHostPrefix(hostPrefixNotation, request.params, operationModel.input);\n prependEndpointPrefix(request.httpRequest.endpoint, hostPrefix);\n validateHostname(request.httpRequest.endpoint.hostname);\n }\n return request;\n}\n\n/**\n * @api private\n */\nfunction hasEndpointDiscover(request) {\n var api = request.service.api;\n var operationModel = api.operations[request.operation];\n var isEndpointOperation = api.endpointOperation && (api.endpointOperation === util.string.lowerFirst(operationModel.name));\n return (operationModel.endpointDiscoveryRequired !== 'NULL' || isEndpointOperation === true);\n}\n\n/**\n * @api private\n */\nfunction expandHostPrefix(hostPrefixNotation, params, shape) {\n util.each(shape.members, function(name, member) {\n if (member.hostLabel === true) {\n if (typeof params[name] !== 'string' || params[name] === '') {\n throw util.error(new Error(), {\n message: 'Parameter ' + name + ' should be a non-empty string.',\n code: 'InvalidParameter'\n });\n }\n var regex = new RegExp('\\\\{' + name + '\\\\}', 'g');\n hostPrefixNotation = hostPrefixNotation.replace(regex, params[name]);\n }\n });\n return hostPrefixNotation;\n}\n\n/**\n * @api private\n */\nfunction prependEndpointPrefix(endpoint, prefix) {\n if (endpoint.host) {\n endpoint.host = prefix + endpoint.host;\n }\n if (endpoint.hostname) {\n endpoint.hostname = prefix + endpoint.hostname;\n }\n}\n\n/**\n * @api private\n */\nfunction validateHostname(hostname) {\n var labels = hostname.split('.');\n //Reference: https://tools.ietf.org/html/rfc1123#section-2\n var hostPattern = /^[a-zA-Z0-9]{1}$|^[a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]$/;\n util.arrayEach(labels, function(label) {\n if (!label.length || label.length < 1 || label.length > 63) {\n throw util.error(new Error(), {\n code: 'ValidationError',\n message: 'Hostname label length should be between 1 to 63 characters, inclusive.'\n });\n }\n if (!hostPattern.test(label)) {\n throw AWS.util.error(new Error(),\n {code: 'ValidationError', message: label + ' is not hostname compatible.'});\n }\n });\n}\n\nmodule.exports = {\n populateHostPrefix: populateHostPrefix\n};\n","var util = require('../util');\nvar JsonBuilder = require('../json/builder');\nvar JsonParser = require('../json/parser');\nvar populateHostPrefix = require('./helpers').populateHostPrefix;\n\nfunction buildRequest(req) {\n var httpRequest = req.httpRequest;\n var api = req.service.api;\n var target = api.targetPrefix + '.' + api.operations[req.operation].name;\n var version = api.jsonVersion || '1.0';\n var input = api.operations[req.operation].input;\n var builder = new JsonBuilder();\n\n if (version === 1) version = '1.0';\n\n if (api.awsQueryCompatible) {\n if (!httpRequest.params) {\n httpRequest.params = {};\n }\n // because Query protocol does this.\n Object.assign(httpRequest.params, req.params);\n }\n\n httpRequest.body = builder.build(req.params || {}, input);\n httpRequest.headers['Content-Type'] = 'application/x-amz-json-' + version;\n httpRequest.headers['X-Amz-Target'] = target;\n\n populateHostPrefix(req);\n}\n\nfunction extractError(resp) {\n var error = {};\n var httpResponse = resp.httpResponse;\n\n error.code = httpResponse.headers['x-amzn-errortype'] || 'UnknownError';\n if (typeof error.code === 'string') {\n error.code = error.code.split(':')[0];\n }\n\n if (httpResponse.body.length > 0) {\n try {\n var e = JSON.parse(httpResponse.body.toString());\n\n var code = e.__type || e.code || e.Code;\n if (code) {\n error.code = code.split('#').pop();\n }\n if (error.code === 'RequestEntityTooLarge') {\n error.message = 'Request body must be less than 1 MB';\n } else {\n error.message = (e.message || e.Message || null);\n }\n\n // The minimized models do not have error shapes, so\n // without expanding the model size, it's not possible\n // to validate the response shape (members) or\n // check if any are sensitive to logging.\n\n // Assign the fields as non-enumerable, allowing specific access only.\n for (var key in e || {}) {\n if (key === 'code' || key === 'message') {\n continue;\n }\n error['[' + key + ']'] = 'See error.' + key + ' for details.';\n Object.defineProperty(error, key, {\n value: e[key],\n enumerable: false,\n writable: true\n });\n }\n } catch (e) {\n error.statusCode = httpResponse.statusCode;\n error.message = httpResponse.statusMessage;\n }\n } else {\n error.statusCode = httpResponse.statusCode;\n error.message = httpResponse.statusCode.toString();\n }\n\n resp.error = util.error(new Error(), error);\n}\n\nfunction extractData(resp) {\n var body = resp.httpResponse.body.toString() || '{}';\n if (resp.request.service.config.convertResponseTypes === false) {\n resp.data = JSON.parse(body);\n } else {\n var operation = resp.request.service.api.operations[resp.request.operation];\n var shape = operation.output || {};\n var parser = new JsonParser();\n resp.data = parser.parse(body, shape);\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData\n};\n","var AWS = require('../core');\nvar util = require('../util');\nvar QueryParamSerializer = require('../query/query_param_serializer');\nvar Shape = require('../model/shape');\nvar populateHostPrefix = require('./helpers').populateHostPrefix;\n\nfunction buildRequest(req) {\n var operation = req.service.api.operations[req.operation];\n var httpRequest = req.httpRequest;\n httpRequest.headers['Content-Type'] =\n 'application/x-www-form-urlencoded; charset=utf-8';\n httpRequest.params = {\n Version: req.service.api.apiVersion,\n Action: operation.name\n };\n\n // convert the request parameters into a list of query params,\n // e.g. Deeply.NestedParam.0.Name=value\n var builder = new QueryParamSerializer();\n builder.serialize(req.params, operation.input, function(name, value) {\n httpRequest.params[name] = value;\n });\n httpRequest.body = util.queryParamsToString(httpRequest.params);\n\n populateHostPrefix(req);\n}\n\nfunction extractError(resp) {\n var data, body = resp.httpResponse.body.toString();\n if (body.match('= 0 ? '&' : '?');\n var parts = [];\n util.arrayEach(Object.keys(queryString).sort(), function(key) {\n if (!Array.isArray(queryString[key])) {\n queryString[key] = [queryString[key]];\n }\n for (var i = 0; i < queryString[key].length; i++) {\n parts.push(util.uriEscape(String(key)) + '=' + queryString[key][i]);\n }\n });\n uri += parts.join('&');\n }\n\n return uri;\n}\n\nfunction populateURI(req) {\n var operation = req.service.api.operations[req.operation];\n var input = operation.input;\n\n var uri = generateURI(req.httpRequest.endpoint.path, operation.httpPath, input, req.params);\n req.httpRequest.path = uri;\n}\n\nfunction populateHeaders(req) {\n var operation = req.service.api.operations[req.operation];\n util.each(operation.input.members, function (name, member) {\n var value = req.params[name];\n if (value === null || value === undefined) return;\n\n if (member.location === 'headers' && member.type === 'map') {\n util.each(value, function(key, memberValue) {\n req.httpRequest.headers[member.name + key] = memberValue;\n });\n } else if (member.location === 'header') {\n value = member.toWireFormat(value).toString();\n if (member.isJsonValue) {\n value = util.base64.encode(value);\n }\n req.httpRequest.headers[member.name] = value;\n }\n });\n}\n\nfunction buildRequest(req) {\n populateMethod(req);\n populateURI(req);\n populateHeaders(req);\n populateHostPrefix(req);\n}\n\nfunction extractError() {\n}\n\nfunction extractData(resp) {\n var req = resp.request;\n var data = {};\n var r = resp.httpResponse;\n var operation = req.service.api.operations[req.operation];\n var output = operation.output;\n\n // normalize headers names to lower-cased keys for matching\n var headers = {};\n util.each(r.headers, function (k, v) {\n headers[k.toLowerCase()] = v;\n });\n\n util.each(output.members, function(name, member) {\n var header = (member.name || name).toLowerCase();\n if (member.location === 'headers' && member.type === 'map') {\n data[name] = {};\n var location = member.isLocationName ? member.name : '';\n var pattern = new RegExp('^' + location + '(.+)', 'i');\n util.each(r.headers, function (k, v) {\n var result = k.match(pattern);\n if (result !== null) {\n data[name][result[1]] = v;\n }\n });\n } else if (member.location === 'header') {\n if (headers[header] !== undefined) {\n var value = member.isJsonValue ?\n util.base64.decode(headers[header]) :\n headers[header];\n data[name] = member.toType(value);\n }\n } else if (member.location === 'statusCode') {\n data[name] = parseInt(r.statusCode, 10);\n }\n });\n\n resp.data = data;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData,\n generateURI: generateURI\n};\n","var util = require('../util');\nvar Rest = require('./rest');\nvar Json = require('./json');\nvar JsonBuilder = require('../json/builder');\nvar JsonParser = require('../json/parser');\n\nvar METHODS_WITHOUT_BODY = ['GET', 'HEAD', 'DELETE'];\n\nfunction unsetContentLength(req) {\n var payloadMember = util.getRequestPayloadShape(req);\n if (\n payloadMember === undefined &&\n METHODS_WITHOUT_BODY.indexOf(req.httpRequest.method) >= 0\n ) {\n delete req.httpRequest.headers['Content-Length'];\n }\n}\n\nfunction populateBody(req) {\n var builder = new JsonBuilder();\n var input = req.service.api.operations[req.operation].input;\n\n if (input.payload) {\n var params = {};\n var payloadShape = input.members[input.payload];\n params = req.params[input.payload];\n\n if (payloadShape.type === 'structure') {\n req.httpRequest.body = builder.build(params || {}, payloadShape);\n applyContentTypeHeader(req);\n } else if (params !== undefined) {\n // non-JSON payload\n req.httpRequest.body = params;\n if (payloadShape.type === 'binary' || payloadShape.isStreaming) {\n applyContentTypeHeader(req, true);\n }\n }\n } else {\n req.httpRequest.body = builder.build(req.params, input);\n applyContentTypeHeader(req);\n }\n}\n\nfunction applyContentTypeHeader(req, isBinary) {\n if (!req.httpRequest.headers['Content-Type']) {\n var type = isBinary ? 'binary/octet-stream' : 'application/json';\n req.httpRequest.headers['Content-Type'] = type;\n }\n}\n\nfunction buildRequest(req) {\n Rest.buildRequest(req);\n\n // never send body payload on GET/HEAD/DELETE\n if (METHODS_WITHOUT_BODY.indexOf(req.httpRequest.method) < 0) {\n populateBody(req);\n }\n}\n\nfunction extractError(resp) {\n Json.extractError(resp);\n}\n\nfunction extractData(resp) {\n Rest.extractData(resp);\n\n var req = resp.request;\n var operation = req.service.api.operations[req.operation];\n var rules = req.service.api.operations[req.operation].output || {};\n var parser;\n var hasEventOutput = operation.hasEventOutput;\n\n if (rules.payload) {\n var payloadMember = rules.members[rules.payload];\n var body = resp.httpResponse.body;\n if (payloadMember.isEventStream) {\n parser = new JsonParser();\n resp.data[payload] = util.createEventStream(\n AWS.HttpClient.streamsApiVersion === 2 ? resp.httpResponse.stream : body,\n parser,\n payloadMember\n );\n } else if (payloadMember.type === 'structure' || payloadMember.type === 'list') {\n var parser = new JsonParser();\n resp.data[rules.payload] = parser.parse(body, payloadMember);\n } else if (payloadMember.type === 'binary' || payloadMember.isStreaming) {\n resp.data[rules.payload] = body;\n } else {\n resp.data[rules.payload] = payloadMember.toType(body);\n }\n } else {\n var data = resp.data;\n Json.extractData(resp);\n resp.data = util.merge(data, resp.data);\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData,\n unsetContentLength: unsetContentLength\n};\n","var AWS = require('../core');\nvar util = require('../util');\nvar Rest = require('./rest');\n\nfunction populateBody(req) {\n var input = req.service.api.operations[req.operation].input;\n var builder = new AWS.XML.Builder();\n var params = req.params;\n\n var payload = input.payload;\n if (payload) {\n var payloadMember = input.members[payload];\n params = params[payload];\n if (params === undefined) return;\n\n if (payloadMember.type === 'structure') {\n var rootElement = payloadMember.name;\n req.httpRequest.body = builder.toXML(params, payloadMember, rootElement, true);\n } else { // non-xml payload\n req.httpRequest.body = params;\n }\n } else {\n req.httpRequest.body = builder.toXML(params, input, input.name ||\n input.shape || util.string.upperFirst(req.operation) + 'Request');\n }\n}\n\nfunction buildRequest(req) {\n Rest.buildRequest(req);\n\n // never send body payload on GET/HEAD\n if (['GET', 'HEAD'].indexOf(req.httpRequest.method) < 0) {\n populateBody(req);\n }\n}\n\nfunction extractError(resp) {\n Rest.extractError(resp);\n\n var data;\n try {\n data = new AWS.XML.Parser().parse(resp.httpResponse.body.toString());\n } catch (e) {\n data = {\n Code: resp.httpResponse.statusCode,\n Message: resp.httpResponse.statusMessage\n };\n }\n\n if (data.Errors) data = data.Errors;\n if (data.Error) data = data.Error;\n if (data.Code) {\n resp.error = util.error(new Error(), {\n code: data.Code,\n message: data.Message\n });\n } else {\n resp.error = util.error(new Error(), {\n code: resp.httpResponse.statusCode,\n message: null\n });\n }\n}\n\nfunction extractData(resp) {\n Rest.extractData(resp);\n\n var parser;\n var req = resp.request;\n var body = resp.httpResponse.body;\n var operation = req.service.api.operations[req.operation];\n var output = operation.output;\n\n var hasEventOutput = operation.hasEventOutput;\n\n var payload = output.payload;\n if (payload) {\n var payloadMember = output.members[payload];\n if (payloadMember.isEventStream) {\n parser = new AWS.XML.Parser();\n resp.data[payload] = util.createEventStream(\n AWS.HttpClient.streamsApiVersion === 2 ? resp.httpResponse.stream : resp.httpResponse.body,\n parser,\n payloadMember\n );\n } else if (payloadMember.type === 'structure') {\n parser = new AWS.XML.Parser();\n resp.data[payload] = parser.parse(body.toString(), payloadMember);\n } else if (payloadMember.type === 'binary' || payloadMember.isStreaming) {\n resp.data[payload] = body;\n } else {\n resp.data[payload] = payloadMember.toType(body);\n }\n } else if (body.length > 0) {\n parser = new AWS.XML.Parser();\n var data = parser.parse(body.toString(), output);\n util.update(resp.data, data);\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n buildRequest: buildRequest,\n extractError: extractError,\n extractData: extractData\n};\n","var util = require('../util');\n\nfunction QueryParamSerializer() {\n}\n\nQueryParamSerializer.prototype.serialize = function(params, shape, fn) {\n serializeStructure('', params, shape, fn);\n};\n\nfunction ucfirst(shape) {\n if (shape.isQueryName || shape.api.protocol !== 'ec2') {\n return shape.name;\n } else {\n return shape.name[0].toUpperCase() + shape.name.substr(1);\n }\n}\n\nfunction serializeStructure(prefix, struct, rules, fn) {\n util.each(rules.members, function(name, member) {\n var value = struct[name];\n if (value === null || value === undefined) return;\n\n var memberName = ucfirst(member);\n memberName = prefix ? prefix + '.' + memberName : memberName;\n serializeMember(memberName, value, member, fn);\n });\n}\n\nfunction serializeMap(name, map, rules, fn) {\n var i = 1;\n util.each(map, function (key, value) {\n var prefix = rules.flattened ? '.' : '.entry.';\n var position = prefix + (i++) + '.';\n var keyName = position + (rules.key.name || 'key');\n var valueName = position + (rules.value.name || 'value');\n serializeMember(name + keyName, key, rules.key, fn);\n serializeMember(name + valueName, value, rules.value, fn);\n });\n}\n\nfunction serializeList(name, list, rules, fn) {\n var memberRules = rules.member || {};\n\n if (list.length === 0) {\n fn.call(this, name, null);\n return;\n }\n\n util.arrayEach(list, function (v, n) {\n var suffix = '.' + (n + 1);\n if (rules.api.protocol === 'ec2') {\n // Do nothing for EC2\n suffix = suffix + ''; // make linter happy\n } else if (rules.flattened) {\n if (memberRules.name) {\n var parts = name.split('.');\n parts.pop();\n parts.push(ucfirst(memberRules));\n name = parts.join('.');\n }\n } else {\n suffix = '.' + (memberRules.name ? memberRules.name : 'member') + suffix;\n }\n serializeMember(name + suffix, v, memberRules, fn);\n });\n}\n\nfunction serializeMember(name, value, rules, fn) {\n if (value === null || value === undefined) return;\n if (rules.type === 'structure') {\n serializeStructure(name, value, rules, fn);\n } else if (rules.type === 'list') {\n serializeList(name, value, rules, fn);\n } else if (rules.type === 'map') {\n serializeMap(name, value, rules, fn);\n } else {\n fn(name, rules.toWireFormat(value).toString());\n }\n}\n\n/**\n * @api private\n */\nmodule.exports = QueryParamSerializer;\n","var AWS = require('../core');\n\n/**\n * @api private\n */\nvar service = null;\n\n/**\n * @api private\n */\nvar api = {\n signatureVersion: 'v4',\n signingName: 'rds-db',\n operations: {}\n};\n\n/**\n * @api private\n */\nvar requiredAuthTokenOptions = {\n region: 'string',\n hostname: 'string',\n port: 'number',\n username: 'string'\n};\n\n/**\n * A signer object can be used to generate an auth token to a database.\n */\nAWS.RDS.Signer = AWS.util.inherit({\n /**\n * Creates a signer object can be used to generate an auth token.\n *\n * @option options credentials [AWS.Credentials] the AWS credentials\n * to sign requests with. Uses the default credential provider chain\n * if not specified.\n * @option options hostname [String] the hostname of the database to connect to.\n * @option options port [Number] the port number the database is listening on.\n * @option options region [String] the region the database is located in.\n * @option options username [String] the username to login as.\n * @example Passing in options to constructor\n * var signer = new AWS.RDS.Signer({\n * credentials: new AWS.SharedIniFileCredentials({profile: 'default'}),\n * region: 'us-east-1',\n * hostname: 'db.us-east-1.rds.amazonaws.com',\n * port: 8000,\n * username: 'name'\n * });\n */\n constructor: function Signer(options) {\n this.options = options || {};\n },\n\n /**\n * @api private\n * Strips the protocol from a url.\n */\n convertUrlToAuthToken: function convertUrlToAuthToken(url) {\n // we are always using https as the protocol\n var protocol = 'https://';\n if (url.indexOf(protocol) === 0) {\n return url.substring(protocol.length);\n }\n },\n\n /**\n * @overload getAuthToken(options = {}, [callback])\n * Generate an auth token to a database.\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n *\n * @param options [map] The fields to use when generating an auth token.\n * Any options specified here will be merged on top of any options passed\n * to AWS.RDS.Signer:\n *\n * * **credentials** (AWS.Credentials) — the AWS credentials\n * to sign requests with. Uses the default credential provider chain\n * if not specified.\n * * **hostname** (String) — the hostname of the database to connect to.\n * * **port** (Number) — the port number the database is listening on.\n * * **region** (String) — the region the database is located in.\n * * **username** (String) — the username to login as.\n * @return [String] if called synchronously (with no callback), returns the\n * auth token.\n * @return [null] nothing is returned if a callback is provided.\n * @callback callback function (err, token)\n * If a callback is supplied, it is called when an auth token has been generated.\n * @param err [Error] the error object returned from the signer.\n * @param token [String] the auth token.\n *\n * @example Generating an auth token synchronously\n * var signer = new AWS.RDS.Signer({\n * // configure options\n * region: 'us-east-1',\n * username: 'default',\n * hostname: 'db.us-east-1.amazonaws.com',\n * port: 8000\n * });\n * var token = signer.getAuthToken({\n * // these options are merged with those defined when creating the signer, overriding in the case of a duplicate option\n * // credentials are not specified here or when creating the signer, so default credential provider will be used\n * username: 'test' // overriding username\n * });\n * @example Generating an auth token asynchronously\n * var signer = new AWS.RDS.Signer({\n * // configure options\n * region: 'us-east-1',\n * username: 'default',\n * hostname: 'db.us-east-1.amazonaws.com',\n * port: 8000\n * });\n * signer.getAuthToken({\n * // these options are merged with those defined when creating the signer, overriding in the case of a duplicate option\n * // credentials are not specified here or when creating the signer, so default credential provider will be used\n * username: 'test' // overriding username\n * }, function(err, token) {\n * if (err) {\n * // handle error\n * } else {\n * // use token\n * }\n * });\n *\n */\n getAuthToken: function getAuthToken(options, callback) {\n if (typeof options === 'function' && callback === undefined) {\n callback = options;\n options = {};\n }\n var self = this;\n var hasCallback = typeof callback === 'function';\n // merge options with existing options\n options = AWS.util.merge(this.options, options);\n // validate options\n var optionsValidation = this.validateAuthTokenOptions(options);\n if (optionsValidation !== true) {\n if (hasCallback) {\n return callback(optionsValidation, null);\n }\n throw optionsValidation;\n }\n\n // 15 minutes\n var expires = 900;\n // create service to generate a request from\n var serviceOptions = {\n region: options.region,\n endpoint: new AWS.Endpoint(options.hostname + ':' + options.port),\n paramValidation: false,\n signatureVersion: 'v4'\n };\n if (options.credentials) {\n serviceOptions.credentials = options.credentials;\n }\n service = new AWS.Service(serviceOptions);\n // ensure the SDK is using sigv4 signing (config is not enough)\n service.api = api;\n\n var request = service.makeRequest();\n // add listeners to request to properly build auth token\n this.modifyRequestForAuthToken(request, options);\n\n if (hasCallback) {\n request.presign(expires, function(err, url) {\n if (url) {\n url = self.convertUrlToAuthToken(url);\n }\n callback(err, url);\n });\n } else {\n var url = request.presign(expires);\n return this.convertUrlToAuthToken(url);\n }\n },\n\n /**\n * @api private\n * Modifies a request to allow the presigner to generate an auth token.\n */\n modifyRequestForAuthToken: function modifyRequestForAuthToken(request, options) {\n request.on('build', request.buildAsGet);\n var httpRequest = request.httpRequest;\n httpRequest.body = AWS.util.queryParamsToString({\n Action: 'connect',\n DBUser: options.username\n });\n },\n\n /**\n * @api private\n * Validates that the options passed in contain all the keys with values of the correct type that\n * are needed to generate an auth token.\n */\n validateAuthTokenOptions: function validateAuthTokenOptions(options) {\n // iterate over all keys in options\n var message = '';\n options = options || {};\n for (var key in requiredAuthTokenOptions) {\n if (!Object.prototype.hasOwnProperty.call(requiredAuthTokenOptions, key)) {\n continue;\n }\n if (typeof options[key] !== requiredAuthTokenOptions[key]) {\n message += 'option \\'' + key + '\\' should have been type \\'' + requiredAuthTokenOptions[key] + '\\', was \\'' + typeof options[key] + '\\'.\\n';\n }\n }\n if (message.length) {\n return AWS.util.error(new Error(), {\n code: 'InvalidParameter',\n message: message\n });\n }\n return true;\n }\n});\n","module.exports = {\n //provide realtime clock for performance measurement\n now: function now() {\n if (typeof performance !== 'undefined' && typeof performance.now === 'function') {\n return performance.now();\n }\n return Date.now();\n }\n};\n","function isFipsRegion(region) {\n return typeof region === 'string' && (region.startsWith('fips-') || region.endsWith('-fips'));\n}\n\nfunction isGlobalRegion(region) {\n return typeof region === 'string' && ['aws-global', 'aws-us-gov-global'].includes(region);\n}\n\nfunction getRealRegion(region) {\n return ['fips-aws-global', 'aws-fips', 'aws-global'].includes(region)\n ? 'us-east-1'\n : ['fips-aws-us-gov-global', 'aws-us-gov-global'].includes(region)\n ? 'us-gov-west-1'\n : region.replace(/fips-(dkr-|prod-)?|-fips/, '');\n}\n\nmodule.exports = {\n isFipsRegion: isFipsRegion,\n isGlobalRegion: isGlobalRegion,\n getRealRegion: getRealRegion\n};\n","var util = require('./util');\nvar regionConfig = require('./region_config_data.json');\n\nfunction generateRegionPrefix(region) {\n if (!region) return null;\n var parts = region.split('-');\n if (parts.length < 3) return null;\n return parts.slice(0, parts.length - 2).join('-') + '-*';\n}\n\nfunction derivedKeys(service) {\n var region = service.config.region;\n var regionPrefix = generateRegionPrefix(region);\n var endpointPrefix = service.api.endpointPrefix;\n\n return [\n [region, endpointPrefix],\n [regionPrefix, endpointPrefix],\n [region, '*'],\n [regionPrefix, '*'],\n ['*', endpointPrefix],\n [region, 'internal-*'],\n ['*', '*']\n ].map(function(item) {\n return item[0] && item[1] ? item.join('/') : null;\n });\n}\n\nfunction applyConfig(service, config) {\n util.each(config, function(key, value) {\n if (key === 'globalEndpoint') return;\n if (service.config[key] === undefined || service.config[key] === null) {\n service.config[key] = value;\n }\n });\n}\n\nfunction configureEndpoint(service) {\n var keys = derivedKeys(service);\n var useFipsEndpoint = service.config.useFipsEndpoint;\n var useDualstackEndpoint = service.config.useDualstackEndpoint;\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n if (!key) continue;\n\n var rules = useFipsEndpoint\n ? useDualstackEndpoint\n ? regionConfig.dualstackFipsRules\n : regionConfig.fipsRules\n : useDualstackEndpoint\n ? regionConfig.dualstackRules\n : regionConfig.rules;\n\n if (Object.prototype.hasOwnProperty.call(rules, key)) {\n var config = rules[key];\n if (typeof config === 'string') {\n config = regionConfig.patterns[config];\n }\n\n // set global endpoint\n service.isGlobalEndpoint = !!config.globalEndpoint;\n if (config.signingRegion) {\n service.signingRegion = config.signingRegion;\n }\n\n // signature version\n if (!config.signatureVersion) {\n // Note: config is a global object and should not be mutated here.\n // However, we are retaining this line for backwards compatibility.\n // The non-v4 signatureVersion will be set in a copied object below.\n config.signatureVersion = 'v4';\n }\n\n var useBearer = (service.api && service.api.signatureVersion) === 'bearer';\n\n // merge config\n applyConfig(service, Object.assign(\n {},\n config,\n { signatureVersion: useBearer ? 'bearer' : config.signatureVersion }\n ));\n return;\n }\n }\n}\n\nfunction getEndpointSuffix(region) {\n var regionRegexes = {\n '^(us|eu|ap|sa|ca|me)\\\\-\\\\w+\\\\-\\\\d+$': 'amazonaws.com',\n '^cn\\\\-\\\\w+\\\\-\\\\d+$': 'amazonaws.com.cn',\n '^us\\\\-gov\\\\-\\\\w+\\\\-\\\\d+$': 'amazonaws.com',\n '^us\\\\-iso\\\\-\\\\w+\\\\-\\\\d+$': 'c2s.ic.gov',\n '^us\\\\-isob\\\\-\\\\w+\\\\-\\\\d+$': 'sc2s.sgov.gov'\n };\n var defaultSuffix = 'amazonaws.com';\n var regexes = Object.keys(regionRegexes);\n for (var i = 0; i < regexes.length; i++) {\n var regionPattern = RegExp(regexes[i]);\n var dnsSuffix = regionRegexes[regexes[i]];\n if (regionPattern.test(region)) return dnsSuffix;\n }\n return defaultSuffix;\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n configureEndpoint: configureEndpoint,\n getEndpointSuffix: getEndpointSuffix,\n};\n","var AWS = require('./core');\nvar AcceptorStateMachine = require('./state_machine');\nvar inherit = AWS.util.inherit;\nvar domain = AWS.util.domain;\nvar jmespath = require('jmespath');\n\n/**\n * @api private\n */\nvar hardErrorStates = {success: 1, error: 1, complete: 1};\n\nfunction isTerminalState(machine) {\n return Object.prototype.hasOwnProperty.call(hardErrorStates, machine._asm.currentState);\n}\n\nvar fsm = new AcceptorStateMachine();\nfsm.setupStates = function() {\n var transition = function(_, done) {\n var self = this;\n self._haltHandlersOnError = false;\n\n self.emit(self._asm.currentState, function(err) {\n if (err) {\n if (isTerminalState(self)) {\n if (domain && self.domain instanceof domain.Domain) {\n err.domainEmitter = self;\n err.domain = self.domain;\n err.domainThrown = false;\n self.domain.emit('error', err);\n } else {\n throw err;\n }\n } else {\n self.response.error = err;\n done(err);\n }\n } else {\n done(self.response.error);\n }\n });\n\n };\n\n this.addState('validate', 'build', 'error', transition);\n this.addState('build', 'afterBuild', 'restart', transition);\n this.addState('afterBuild', 'sign', 'restart', transition);\n this.addState('sign', 'send', 'retry', transition);\n this.addState('retry', 'afterRetry', 'afterRetry', transition);\n this.addState('afterRetry', 'sign', 'error', transition);\n this.addState('send', 'validateResponse', 'retry', transition);\n this.addState('validateResponse', 'extractData', 'extractError', transition);\n this.addState('extractError', 'extractData', 'retry', transition);\n this.addState('extractData', 'success', 'retry', transition);\n this.addState('restart', 'build', 'error', transition);\n this.addState('success', 'complete', 'complete', transition);\n this.addState('error', 'complete', 'complete', transition);\n this.addState('complete', null, null, transition);\n};\nfsm.setupStates();\n\n/**\n * ## Asynchronous Requests\n *\n * All requests made through the SDK are asynchronous and use a\n * callback interface. Each service method that kicks off a request\n * returns an `AWS.Request` object that you can use to register\n * callbacks.\n *\n * For example, the following service method returns the request\n * object as \"request\", which can be used to register callbacks:\n *\n * ```javascript\n * // request is an AWS.Request object\n * var request = ec2.describeInstances();\n *\n * // register callbacks on request to retrieve response data\n * request.on('success', function(response) {\n * console.log(response.data);\n * });\n * ```\n *\n * When a request is ready to be sent, the {send} method should\n * be called:\n *\n * ```javascript\n * request.send();\n * ```\n *\n * Since registered callbacks may or may not be idempotent, requests should only\n * be sent once. To perform the same operation multiple times, you will need to\n * create multiple request objects, each with its own registered callbacks.\n *\n * ## Removing Default Listeners for Events\n *\n * Request objects are built with default listeners for the various events,\n * depending on the service type. In some cases, you may want to remove\n * some built-in listeners to customize behaviour. Doing this requires\n * access to the built-in listener functions, which are exposed through\n * the {AWS.EventListeners.Core} namespace. For instance, you may\n * want to customize the HTTP handler used when sending a request. In this\n * case, you can remove the built-in listener associated with the 'send'\n * event, the {AWS.EventListeners.Core.SEND} listener and add your own.\n *\n * ## Multiple Callbacks and Chaining\n *\n * You can register multiple callbacks on any request object. The\n * callbacks can be registered for different events, or all for the\n * same event. In addition, you can chain callback registration, for\n * example:\n *\n * ```javascript\n * request.\n * on('success', function(response) {\n * console.log(\"Success!\");\n * }).\n * on('error', function(error, response) {\n * console.log(\"Error!\");\n * }).\n * on('complete', function(response) {\n * console.log(\"Always!\");\n * }).\n * send();\n * ```\n *\n * The above example will print either \"Success! Always!\", or \"Error! Always!\",\n * depending on whether the request succeeded or not.\n *\n * @!attribute httpRequest\n * @readonly\n * @!group HTTP Properties\n * @return [AWS.HttpRequest] the raw HTTP request object\n * containing request headers and body information\n * sent by the service.\n *\n * @!attribute startTime\n * @readonly\n * @!group Operation Properties\n * @return [Date] the time that the request started\n *\n * @!group Request Building Events\n *\n * @!event validate(request)\n * Triggered when a request is being validated. Listeners\n * should throw an error if the request should not be sent.\n * @param request [Request] the request object being sent\n * @see AWS.EventListeners.Core.VALIDATE_CREDENTIALS\n * @see AWS.EventListeners.Core.VALIDATE_REGION\n * @example Ensuring that a certain parameter is set before sending a request\n * var req = s3.putObject(params);\n * req.on('validate', function() {\n * if (!req.params.Body.match(/^Hello\\s/)) {\n * throw new Error('Body must start with \"Hello \"');\n * }\n * });\n * req.send(function(err, data) { ... });\n *\n * @!event build(request)\n * Triggered when the request payload is being built. Listeners\n * should fill the necessary information to send the request\n * over HTTP.\n * @param (see AWS.Request~validate)\n * @example Add a custom HTTP header to a request\n * var req = s3.putObject(params);\n * req.on('build', function() {\n * req.httpRequest.headers['Custom-Header'] = 'value';\n * });\n * req.send(function(err, data) { ... });\n *\n * @!event sign(request)\n * Triggered when the request is being signed. Listeners should\n * add the correct authentication headers and/or adjust the body,\n * depending on the authentication mechanism being used.\n * @param (see AWS.Request~validate)\n *\n * @!group Request Sending Events\n *\n * @!event send(response)\n * Triggered when the request is ready to be sent. Listeners\n * should call the underlying transport layer to initiate\n * the sending of the request.\n * @param response [Response] the response object\n * @context [Request] the request object that was sent\n * @see AWS.EventListeners.Core.SEND\n *\n * @!event retry(response)\n * Triggered when a request failed and might need to be retried or redirected.\n * If the response is retryable, the listener should set the\n * `response.error.retryable` property to `true`, and optionally set\n * `response.error.retryDelay` to the millisecond delay for the next attempt.\n * In the case of a redirect, `response.error.redirect` should be set to\n * `true` with `retryDelay` set to an optional delay on the next request.\n *\n * If a listener decides that a request should not be retried,\n * it should set both `retryable` and `redirect` to false.\n *\n * Note that a retryable error will be retried at most\n * {AWS.Config.maxRetries} times (based on the service object's config).\n * Similarly, a request that is redirected will only redirect at most\n * {AWS.Config.maxRedirects} times.\n *\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n * @example Adding a custom retry for a 404 response\n * request.on('retry', function(response) {\n * // this resource is not yet available, wait 10 seconds to get it again\n * if (response.httpResponse.statusCode === 404 && response.error) {\n * response.error.retryable = true; // retry this error\n * response.error.retryDelay = 10000; // wait 10 seconds\n * }\n * });\n *\n * @!group Data Parsing Events\n *\n * @!event extractError(response)\n * Triggered on all non-2xx requests so that listeners can extract\n * error details from the response body. Listeners to this event\n * should set the `response.error` property.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!event extractData(response)\n * Triggered in successful requests to allow listeners to\n * de-serialize the response body into `response.data`.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!group Completion Events\n *\n * @!event success(response)\n * Triggered when the request completed successfully.\n * `response.data` will contain the response data and\n * `response.error` will be null.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!event error(error, response)\n * Triggered when an error occurs at any point during the\n * request. `response.error` will contain details about the error\n * that occurred. `response.data` will be null.\n * @param error [Error] the error object containing details about\n * the error that occurred.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!event complete(response)\n * Triggered whenever a request cycle completes. `response.error`\n * should be checked, since the request may have failed.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!group HTTP Events\n *\n * @!event httpHeaders(statusCode, headers, response, statusMessage)\n * Triggered when headers are sent by the remote server\n * @param statusCode [Integer] the HTTP response code\n * @param headers [map] the response headers\n * @param (see AWS.Request~send)\n * @param statusMessage [String] A status message corresponding to the HTTP\n * response code\n * @context (see AWS.Request~send)\n *\n * @!event httpData(chunk, response)\n * Triggered when data is sent by the remote server\n * @param chunk [Buffer] the buffer data containing the next data chunk\n * from the server\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n * @see AWS.EventListeners.Core.HTTP_DATA\n *\n * @!event httpUploadProgress(progress, response)\n * Triggered when the HTTP request has uploaded more data\n * @param progress [map] An object containing the `loaded` and `total` bytes\n * of the request.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n * @note This event will not be emitted in Node.js 0.8.x.\n *\n * @!event httpDownloadProgress(progress, response)\n * Triggered when the HTTP request has downloaded more data\n * @param progress [map] An object containing the `loaded` and `total` bytes\n * of the request.\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n * @note This event will not be emitted in Node.js 0.8.x.\n *\n * @!event httpError(error, response)\n * Triggered when the HTTP request failed\n * @param error [Error] the error object that was thrown\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @!event httpDone(response)\n * Triggered when the server is finished sending data\n * @param (see AWS.Request~send)\n * @context (see AWS.Request~send)\n *\n * @see AWS.Response\n */\nAWS.Request = inherit({\n\n /**\n * Creates a request for an operation on a given service with\n * a set of input parameters.\n *\n * @param service [AWS.Service] the service to perform the operation on\n * @param operation [String] the operation to perform on the service\n * @param params [Object] parameters to send to the operation.\n * See the operation's documentation for the format of the\n * parameters.\n */\n constructor: function Request(service, operation, params) {\n var endpoint = service.endpoint;\n var region = service.config.region;\n var customUserAgent = service.config.customUserAgent;\n\n if (service.signingRegion) {\n region = service.signingRegion;\n } else if (service.isGlobalEndpoint) {\n region = 'us-east-1';\n }\n\n this.domain = domain && domain.active;\n this.service = service;\n this.operation = operation;\n this.params = params || {};\n this.httpRequest = new AWS.HttpRequest(endpoint, region);\n this.httpRequest.appendToUserAgent(customUserAgent);\n this.startTime = service.getSkewCorrectedDate();\n\n this.response = new AWS.Response(this);\n this._asm = new AcceptorStateMachine(fsm.states, 'validate');\n this._haltHandlersOnError = false;\n\n AWS.SequentialExecutor.call(this);\n this.emit = this.emitEvent;\n },\n\n /**\n * @!group Sending a Request\n */\n\n /**\n * @overload send(callback = null)\n * Sends the request object.\n *\n * @callback callback function(err, data)\n * If a callback is supplied, it is called when a response is returned\n * from the service.\n * @context [AWS.Request] the request object being sent.\n * @param err [Error] the error object returned from the request.\n * Set to `null` if the request is successful.\n * @param data [Object] the de-serialized data returned from\n * the request. Set to `null` if a request error occurs.\n * @example Sending a request with a callback\n * request = s3.putObject({Bucket: 'bucket', Key: 'key'});\n * request.send(function(err, data) { console.log(err, data); });\n * @example Sending a request with no callback (using event handlers)\n * request = s3.putObject({Bucket: 'bucket', Key: 'key'});\n * request.on('complete', function(response) { ... }); // register a callback\n * request.send();\n */\n send: function send(callback) {\n if (callback) {\n // append to user agent\n this.httpRequest.appendToUserAgent('callback');\n this.on('complete', function (resp) {\n callback.call(resp, resp.error, resp.data);\n });\n }\n this.runTo();\n\n return this.response;\n },\n\n /**\n * @!method promise()\n * Sends the request and returns a 'thenable' promise.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function(data)\n * Called if the promise is fulfilled.\n * @param data [Object] the de-serialized data returned from the request.\n * @callback rejectedCallback function(error)\n * Called if the promise is rejected.\n * @param error [Error] the error object returned from the request.\n * @return [Promise] A promise that represents the state of the request.\n * @example Sending a request using promises.\n * var request = s3.putObject({Bucket: 'bucket', Key: 'key'});\n * var result = request.promise();\n * result.then(function(data) { ... }, function(error) { ... });\n */\n\n /**\n * @api private\n */\n build: function build(callback) {\n return this.runTo('send', callback);\n },\n\n /**\n * @api private\n */\n runTo: function runTo(state, done) {\n this._asm.runTo(state, done, this);\n return this;\n },\n\n /**\n * Aborts a request, emitting the error and complete events.\n *\n * @!macro nobrowser\n * @example Aborting a request after sending\n * var params = {\n * Bucket: 'bucket', Key: 'key',\n * Body: Buffer.alloc(1024 * 1024 * 5) // 5MB payload\n * };\n * var request = s3.putObject(params);\n * request.send(function (err, data) {\n * if (err) console.log(\"Error:\", err.code, err.message);\n * else console.log(data);\n * });\n *\n * // abort request in 1 second\n * setTimeout(request.abort.bind(request), 1000);\n *\n * // prints \"Error: RequestAbortedError Request aborted by user\"\n * @return [AWS.Request] the same request object, for chaining.\n * @since v1.4.0\n */\n abort: function abort() {\n this.removeAllListeners('validateResponse');\n this.removeAllListeners('extractError');\n this.on('validateResponse', function addAbortedError(resp) {\n resp.error = AWS.util.error(new Error('Request aborted by user'), {\n code: 'RequestAbortedError', retryable: false\n });\n });\n\n if (this.httpRequest.stream && !this.httpRequest.stream.didCallback) { // abort HTTP stream\n this.httpRequest.stream.abort();\n if (this.httpRequest._abortCallback) {\n this.httpRequest._abortCallback();\n } else {\n this.removeAllListeners('send'); // haven't sent yet, so let's not\n }\n }\n\n return this;\n },\n\n /**\n * Iterates over each page of results given a pageable request, calling\n * the provided callback with each page of data. After all pages have been\n * retrieved, the callback is called with `null` data.\n *\n * @note This operation can generate multiple requests to a service.\n * @example Iterating over multiple pages of objects in an S3 bucket\n * var pages = 1;\n * s3.listObjects().eachPage(function(err, data) {\n * if (err) return;\n * console.log(\"Page\", pages++);\n * console.log(data);\n * });\n * @example Iterating over multiple pages with an asynchronous callback\n * s3.listObjects(params).eachPage(function(err, data, done) {\n * doSomethingAsyncAndOrExpensive(function() {\n * // The next page of results isn't fetched until done is called\n * done();\n * });\n * });\n * @callback callback function(err, data, [doneCallback])\n * Called with each page of resulting data from the request. If the\n * optional `doneCallback` is provided in the function, it must be called\n * when the callback is complete.\n *\n * @param err [Error] an error object, if an error occurred.\n * @param data [Object] a single page of response data. If there is no\n * more data, this object will be `null`.\n * @param doneCallback [Function] an optional done callback. If this\n * argument is defined in the function declaration, it should be called\n * when the next page is ready to be retrieved. This is useful for\n * controlling serial pagination across asynchronous operations.\n * @return [Boolean] if the callback returns `false`, pagination will\n * stop.\n *\n * @see AWS.Request.eachItem\n * @see AWS.Response.nextPage\n * @since v1.4.0\n */\n eachPage: function eachPage(callback) {\n // Make all callbacks async-ish\n callback = AWS.util.fn.makeAsync(callback, 3);\n\n function wrappedCallback(response) {\n callback.call(response, response.error, response.data, function (result) {\n if (result === false) return;\n\n if (response.hasNextPage()) {\n response.nextPage().on('complete', wrappedCallback).send();\n } else {\n callback.call(response, null, null, AWS.util.fn.noop);\n }\n });\n }\n\n this.on('complete', wrappedCallback).send();\n },\n\n /**\n * Enumerates over individual items of a request, paging the responses if\n * necessary.\n *\n * @api experimental\n * @since v1.4.0\n */\n eachItem: function eachItem(callback) {\n var self = this;\n function wrappedCallback(err, data) {\n if (err) return callback(err, null);\n if (data === null) return callback(null, null);\n\n var config = self.service.paginationConfig(self.operation);\n var resultKey = config.resultKey;\n if (Array.isArray(resultKey)) resultKey = resultKey[0];\n var items = jmespath.search(data, resultKey);\n var continueIteration = true;\n AWS.util.arrayEach(items, function(item) {\n continueIteration = callback(null, item);\n if (continueIteration === false) {\n return AWS.util.abort;\n }\n });\n return continueIteration;\n }\n\n this.eachPage(wrappedCallback);\n },\n\n /**\n * @return [Boolean] whether the operation can return multiple pages of\n * response data.\n * @see AWS.Response.eachPage\n * @since v1.4.0\n */\n isPageable: function isPageable() {\n return this.service.paginationConfig(this.operation) ? true : false;\n },\n\n /**\n * Sends the request and converts the request object into a readable stream\n * that can be read from or piped into a writable stream.\n *\n * @note The data read from a readable stream contains only\n * the raw HTTP body contents.\n * @example Manually reading from a stream\n * request.createReadStream().on('data', function(data) {\n * console.log(\"Got data:\", data.toString());\n * });\n * @example Piping a request body into a file\n * var out = fs.createWriteStream('/path/to/outfile.jpg');\n * s3.service.getObject(params).createReadStream().pipe(out);\n * @return [Stream] the readable stream object that can be piped\n * or read from (by registering 'data' event listeners).\n * @!macro nobrowser\n */\n createReadStream: function createReadStream() {\n var streams = AWS.util.stream;\n var req = this;\n var stream = null;\n\n if (AWS.HttpClient.streamsApiVersion === 2) {\n stream = new streams.PassThrough();\n process.nextTick(function() { req.send(); });\n } else {\n stream = new streams.Stream();\n stream.readable = true;\n\n stream.sent = false;\n stream.on('newListener', function(event) {\n if (!stream.sent && event === 'data') {\n stream.sent = true;\n process.nextTick(function() { req.send(); });\n }\n });\n }\n\n this.on('error', function(err) {\n stream.emit('error', err);\n });\n\n this.on('httpHeaders', function streamHeaders(statusCode, headers, resp) {\n if (statusCode < 300) {\n req.removeListener('httpData', AWS.EventListeners.Core.HTTP_DATA);\n req.removeListener('httpError', AWS.EventListeners.Core.HTTP_ERROR);\n req.on('httpError', function streamHttpError(error) {\n resp.error = error;\n resp.error.retryable = false;\n });\n\n var shouldCheckContentLength = false;\n var expectedLen;\n if (req.httpRequest.method !== 'HEAD') {\n expectedLen = parseInt(headers['content-length'], 10);\n }\n if (expectedLen !== undefined && !isNaN(expectedLen) && expectedLen >= 0) {\n shouldCheckContentLength = true;\n var receivedLen = 0;\n }\n\n var checkContentLengthAndEmit = function checkContentLengthAndEmit() {\n if (shouldCheckContentLength && receivedLen !== expectedLen) {\n stream.emit('error', AWS.util.error(\n new Error('Stream content length mismatch. Received ' +\n receivedLen + ' of ' + expectedLen + ' bytes.'),\n { code: 'StreamContentLengthMismatch' }\n ));\n } else if (AWS.HttpClient.streamsApiVersion === 2) {\n stream.end();\n } else {\n stream.emit('end');\n }\n };\n\n var httpStream = resp.httpResponse.createUnbufferedStream();\n\n if (AWS.HttpClient.streamsApiVersion === 2) {\n if (shouldCheckContentLength) {\n var lengthAccumulator = new streams.PassThrough();\n lengthAccumulator._write = function(chunk) {\n if (chunk && chunk.length) {\n receivedLen += chunk.length;\n }\n return streams.PassThrough.prototype._write.apply(this, arguments);\n };\n\n lengthAccumulator.on('end', checkContentLengthAndEmit);\n stream.on('error', function(err) {\n shouldCheckContentLength = false;\n httpStream.unpipe(lengthAccumulator);\n lengthAccumulator.emit('end');\n lengthAccumulator.end();\n });\n httpStream.pipe(lengthAccumulator).pipe(stream, { end: false });\n } else {\n httpStream.pipe(stream);\n }\n } else {\n\n if (shouldCheckContentLength) {\n httpStream.on('data', function(arg) {\n if (arg && arg.length) {\n receivedLen += arg.length;\n }\n });\n }\n\n httpStream.on('data', function(arg) {\n stream.emit('data', arg);\n });\n httpStream.on('end', checkContentLengthAndEmit);\n }\n\n httpStream.on('error', function(err) {\n shouldCheckContentLength = false;\n stream.emit('error', err);\n });\n }\n });\n\n return stream;\n },\n\n /**\n * @param [Array,Response] args This should be the response object,\n * or an array of args to send to the event.\n * @api private\n */\n emitEvent: function emit(eventName, args, done) {\n if (typeof args === 'function') { done = args; args = null; }\n if (!done) done = function() { };\n if (!args) args = this.eventParameters(eventName, this.response);\n\n var origEmit = AWS.SequentialExecutor.prototype.emit;\n origEmit.call(this, eventName, args, function (err) {\n if (err) this.response.error = err;\n done.call(this, err);\n });\n },\n\n /**\n * @api private\n */\n eventParameters: function eventParameters(eventName) {\n switch (eventName) {\n case 'restart':\n case 'validate':\n case 'sign':\n case 'build':\n case 'afterValidate':\n case 'afterBuild':\n return [this];\n case 'error':\n return [this.response.error, this.response];\n default:\n return [this.response];\n }\n },\n\n /**\n * @api private\n */\n presign: function presign(expires, callback) {\n if (!callback && typeof expires === 'function') {\n callback = expires;\n expires = null;\n }\n return new AWS.Signers.Presign().sign(this.toGet(), expires, callback);\n },\n\n /**\n * @api private\n */\n isPresigned: function isPresigned() {\n return Object.prototype.hasOwnProperty.call(this.httpRequest.headers, 'presigned-expires');\n },\n\n /**\n * @api private\n */\n toUnauthenticated: function toUnauthenticated() {\n this._unAuthenticated = true;\n this.removeListener('validate', AWS.EventListeners.Core.VALIDATE_CREDENTIALS);\n this.removeListener('sign', AWS.EventListeners.Core.SIGN);\n return this;\n },\n\n /**\n * @api private\n */\n toGet: function toGet() {\n if (this.service.api.protocol === 'query' ||\n this.service.api.protocol === 'ec2') {\n this.removeListener('build', this.buildAsGet);\n this.addListener('build', this.buildAsGet);\n }\n return this;\n },\n\n /**\n * @api private\n */\n buildAsGet: function buildAsGet(request) {\n request.httpRequest.method = 'GET';\n request.httpRequest.path = request.service.endpoint.path +\n '?' + request.httpRequest.body;\n request.httpRequest.body = '';\n\n // don't need these headers on a GET request\n delete request.httpRequest.headers['Content-Length'];\n delete request.httpRequest.headers['Content-Type'];\n },\n\n /**\n * @api private\n */\n haltHandlersOnError: function haltHandlersOnError() {\n this._haltHandlersOnError = true;\n }\n});\n\n/**\n * @api private\n */\nAWS.Request.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.promise = function promise() {\n var self = this;\n // append to user agent\n this.httpRequest.appendToUserAgent('promise');\n return new PromiseDependency(function(resolve, reject) {\n self.on('complete', function(resp) {\n if (resp.error) {\n reject(resp.error);\n } else {\n // define $response property so that it is not enumerable\n // this prevents circular reference errors when stringifying the JSON object\n resolve(Object.defineProperty(\n resp.data || {},\n '$response',\n {value: resp}\n ));\n }\n });\n self.runTo();\n });\n };\n};\n\n/**\n * @api private\n */\nAWS.Request.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.promise;\n};\n\nAWS.util.addPromises(AWS.Request);\n\nAWS.util.mixin(AWS.Request, AWS.SequentialExecutor);\n","/**\n * Copyright 2012-2013 Amazon.com, Inc. or its affiliates. All Rights Reserved.\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\"). You\n * may not use this file except in compliance with the License. A copy of\n * the License is located at\n *\n * http://aws.amazon.com/apache2.0/\n *\n * or in the \"license\" file accompanying this file. This file is\n * distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF\n * ANY KIND, either express or implied. See the License for the specific\n * language governing permissions and limitations under the License.\n */\n\nvar AWS = require('./core');\nvar inherit = AWS.util.inherit;\nvar jmespath = require('jmespath');\n\n/**\n * @api private\n */\nfunction CHECK_ACCEPTORS(resp) {\n var waiter = resp.request._waiter;\n var acceptors = waiter.config.acceptors;\n var acceptorMatched = false;\n var state = 'retry';\n\n acceptors.forEach(function(acceptor) {\n if (!acceptorMatched) {\n var matcher = waiter.matchers[acceptor.matcher];\n if (matcher && matcher(resp, acceptor.expected, acceptor.argument)) {\n acceptorMatched = true;\n state = acceptor.state;\n }\n }\n });\n\n if (!acceptorMatched && resp.error) state = 'failure';\n\n if (state === 'success') {\n waiter.setSuccess(resp);\n } else {\n waiter.setError(resp, state === 'retry');\n }\n}\n\n/**\n * @api private\n */\nAWS.ResourceWaiter = inherit({\n /**\n * Waits for a given state on a service object\n * @param service [Service] the service object to wait on\n * @param state [String] the state (defined in waiter configuration) to wait\n * for.\n * @example Create a waiter for running EC2 instances\n * var ec2 = new AWS.EC2;\n * var waiter = new AWS.ResourceWaiter(ec2, 'instanceRunning');\n */\n constructor: function constructor(service, state) {\n this.service = service;\n this.state = state;\n this.loadWaiterConfig(this.state);\n },\n\n service: null,\n\n state: null,\n\n config: null,\n\n matchers: {\n path: function(resp, expected, argument) {\n try {\n var result = jmespath.search(resp.data, argument);\n } catch (err) {\n return false;\n }\n\n return jmespath.strictDeepEqual(result,expected);\n },\n\n pathAll: function(resp, expected, argument) {\n try {\n var results = jmespath.search(resp.data, argument);\n } catch (err) {\n return false;\n }\n\n if (!Array.isArray(results)) results = [results];\n var numResults = results.length;\n if (!numResults) return false;\n for (var ind = 0 ; ind < numResults; ind++) {\n if (!jmespath.strictDeepEqual(results[ind], expected)) {\n return false;\n }\n }\n return true;\n },\n\n pathAny: function(resp, expected, argument) {\n try {\n var results = jmespath.search(resp.data, argument);\n } catch (err) {\n return false;\n }\n\n if (!Array.isArray(results)) results = [results];\n var numResults = results.length;\n for (var ind = 0 ; ind < numResults; ind++) {\n if (jmespath.strictDeepEqual(results[ind], expected)) {\n return true;\n }\n }\n return false;\n },\n\n status: function(resp, expected) {\n var statusCode = resp.httpResponse.statusCode;\n return (typeof statusCode === 'number') && (statusCode === expected);\n },\n\n error: function(resp, expected) {\n if (typeof expected === 'string' && resp.error) {\n return expected === resp.error.code;\n }\n // if expected is not string, can be boolean indicating presence of error\n return expected === !!resp.error;\n }\n },\n\n listeners: new AWS.SequentialExecutor().addNamedListeners(function(add) {\n add('RETRY_CHECK', 'retry', function(resp) {\n var waiter = resp.request._waiter;\n if (resp.error && resp.error.code === 'ResourceNotReady') {\n resp.error.retryDelay = (waiter.config.delay || 0) * 1000;\n }\n });\n\n add('CHECK_OUTPUT', 'extractData', CHECK_ACCEPTORS);\n\n add('CHECK_ERROR', 'extractError', CHECK_ACCEPTORS);\n }),\n\n /**\n * @return [AWS.Request]\n */\n wait: function wait(params, callback) {\n if (typeof params === 'function') {\n callback = params; params = undefined;\n }\n\n if (params && params.$waiter) {\n params = AWS.util.copy(params);\n if (typeof params.$waiter.delay === 'number') {\n this.config.delay = params.$waiter.delay;\n }\n if (typeof params.$waiter.maxAttempts === 'number') {\n this.config.maxAttempts = params.$waiter.maxAttempts;\n }\n delete params.$waiter;\n }\n\n var request = this.service.makeRequest(this.config.operation, params);\n request._waiter = this;\n request.response.maxRetries = this.config.maxAttempts;\n request.addListeners(this.listeners);\n\n if (callback) request.send(callback);\n return request;\n },\n\n setSuccess: function setSuccess(resp) {\n resp.error = null;\n resp.data = resp.data || {};\n resp.request.removeAllListeners('extractData');\n },\n\n setError: function setError(resp, retryable) {\n resp.data = null;\n resp.error = AWS.util.error(resp.error || new Error(), {\n code: 'ResourceNotReady',\n message: 'Resource is not in the state ' + this.state,\n retryable: retryable\n });\n },\n\n /**\n * Loads waiter configuration from API configuration\n *\n * @api private\n */\n loadWaiterConfig: function loadWaiterConfig(state) {\n if (!this.service.api.waiters[state]) {\n throw new AWS.util.error(new Error(), {\n code: 'StateNotFoundError',\n message: 'State ' + state + ' not found.'\n });\n }\n\n this.config = AWS.util.copy(this.service.api.waiters[state]);\n }\n});\n","var AWS = require('./core');\nvar inherit = AWS.util.inherit;\nvar jmespath = require('jmespath');\n\n/**\n * This class encapsulates the response information\n * from a service request operation sent through {AWS.Request}.\n * The response object has two main properties for getting information\n * back from a request:\n *\n * ## The `data` property\n *\n * The `response.data` property contains the serialized object data\n * retrieved from the service request. For instance, for an\n * Amazon DynamoDB `listTables` method call, the response data might\n * look like:\n *\n * ```\n * > resp.data\n * { TableNames:\n * [ 'table1', 'table2', ... ] }\n * ```\n *\n * The `data` property can be null if an error occurs (see below).\n *\n * ## The `error` property\n *\n * In the event of a service error (or transfer error), the\n * `response.error` property will be filled with the given\n * error data in the form:\n *\n * ```\n * { code: 'SHORT_UNIQUE_ERROR_CODE',\n * message: 'Some human readable error message' }\n * ```\n *\n * In the case of an error, the `data` property will be `null`.\n * Note that if you handle events that can be in a failure state,\n * you should always check whether `response.error` is set\n * before attempting to access the `response.data` property.\n *\n * @!attribute data\n * @readonly\n * @!group Data Properties\n * @note Inside of a {AWS.Request~httpData} event, this\n * property contains a single raw packet instead of the\n * full de-serialized service response.\n * @return [Object] the de-serialized response data\n * from the service.\n *\n * @!attribute error\n * An structure containing information about a service\n * or networking error.\n * @readonly\n * @!group Data Properties\n * @note This attribute is only filled if a service or\n * networking error occurs.\n * @return [Error]\n * * code [String] a unique short code representing the\n * error that was emitted.\n * * message [String] a longer human readable error message\n * * retryable [Boolean] whether the error message is\n * retryable.\n * * statusCode [Numeric] in the case of a request that reached the service,\n * this value contains the response status code.\n * * time [Date] the date time object when the error occurred.\n * * hostname [String] set when a networking error occurs to easily\n * identify the endpoint of the request.\n * * region [String] set when a networking error occurs to easily\n * identify the region of the request.\n *\n * @!attribute requestId\n * @readonly\n * @!group Data Properties\n * @return [String] the unique request ID associated with the response.\n * Log this value when debugging requests for AWS support.\n *\n * @!attribute retryCount\n * @readonly\n * @!group Operation Properties\n * @return [Integer] the number of retries that were\n * attempted before the request was completed.\n *\n * @!attribute redirectCount\n * @readonly\n * @!group Operation Properties\n * @return [Integer] the number of redirects that were\n * followed before the request was completed.\n *\n * @!attribute httpResponse\n * @readonly\n * @!group HTTP Properties\n * @return [AWS.HttpResponse] the raw HTTP response object\n * containing the response headers and body information\n * from the server.\n *\n * @see AWS.Request\n */\nAWS.Response = inherit({\n\n /**\n * @api private\n */\n constructor: function Response(request) {\n this.request = request;\n this.data = null;\n this.error = null;\n this.retryCount = 0;\n this.redirectCount = 0;\n this.httpResponse = new AWS.HttpResponse();\n if (request) {\n this.maxRetries = request.service.numRetries();\n this.maxRedirects = request.service.config.maxRedirects;\n }\n },\n\n /**\n * Creates a new request for the next page of response data, calling the\n * callback with the page data if a callback is provided.\n *\n * @callback callback function(err, data)\n * Called when a page of data is returned from the next request.\n *\n * @param err [Error] an error object, if an error occurred in the request\n * @param data [Object] the next page of data, or null, if there are no\n * more pages left.\n * @return [AWS.Request] the request object for the next page of data\n * @return [null] if no callback is provided and there are no pages left\n * to retrieve.\n * @since v1.4.0\n */\n nextPage: function nextPage(callback) {\n var config;\n var service = this.request.service;\n var operation = this.request.operation;\n try {\n config = service.paginationConfig(operation, true);\n } catch (e) { this.error = e; }\n\n if (!this.hasNextPage()) {\n if (callback) callback(this.error, null);\n else if (this.error) throw this.error;\n return null;\n }\n\n var params = AWS.util.copy(this.request.params);\n if (!this.nextPageTokens) {\n return callback ? callback(null, null) : null;\n } else {\n var inputTokens = config.inputToken;\n if (typeof inputTokens === 'string') inputTokens = [inputTokens];\n for (var i = 0; i < inputTokens.length; i++) {\n params[inputTokens[i]] = this.nextPageTokens[i];\n }\n return service.makeRequest(this.request.operation, params, callback);\n }\n },\n\n /**\n * @return [Boolean] whether more pages of data can be returned by further\n * requests\n * @since v1.4.0\n */\n hasNextPage: function hasNextPage() {\n this.cacheNextPageTokens();\n if (this.nextPageTokens) return true;\n if (this.nextPageTokens === undefined) return undefined;\n else return false;\n },\n\n /**\n * @api private\n */\n cacheNextPageTokens: function cacheNextPageTokens() {\n if (Object.prototype.hasOwnProperty.call(this, 'nextPageTokens')) return this.nextPageTokens;\n this.nextPageTokens = undefined;\n\n var config = this.request.service.paginationConfig(this.request.operation);\n if (!config) return this.nextPageTokens;\n\n this.nextPageTokens = null;\n if (config.moreResults) {\n if (!jmespath.search(this.data, config.moreResults)) {\n return this.nextPageTokens;\n }\n }\n\n var exprs = config.outputToken;\n if (typeof exprs === 'string') exprs = [exprs];\n AWS.util.arrayEach.call(this, exprs, function (expr) {\n var output = jmespath.search(this.data, expr);\n if (output) {\n this.nextPageTokens = this.nextPageTokens || [];\n this.nextPageTokens.push(output);\n }\n });\n\n return this.nextPageTokens;\n }\n\n});\n","var AWS = require('../core');\nvar byteLength = AWS.util.string.byteLength;\nvar Buffer = AWS.util.Buffer;\n\n/**\n * The managed uploader allows for easy and efficient uploading of buffers,\n * blobs, or streams, using a configurable amount of concurrency to perform\n * multipart uploads where possible. This abstraction also enables uploading\n * streams of unknown size due to the use of multipart uploads.\n *\n * To construct a managed upload object, see the {constructor} function.\n *\n * ## Tracking upload progress\n *\n * The managed upload object can also track progress by attaching an\n * 'httpUploadProgress' listener to the upload manager. This event is similar\n * to {AWS.Request~httpUploadProgress} but groups all concurrent upload progress\n * into a single event. See {AWS.S3.ManagedUpload~httpUploadProgress} for more\n * information.\n *\n * ## Handling Multipart Cleanup\n *\n * By default, this class will automatically clean up any multipart uploads\n * when an individual part upload fails. This behavior can be disabled in order\n * to manually handle failures by setting the `leavePartsOnError` configuration\n * option to `true` when initializing the upload object.\n *\n * @!event httpUploadProgress(progress)\n * Triggered when the uploader has uploaded more data.\n * @note The `total` property may not be set if the stream being uploaded has\n * not yet finished chunking. In this case the `total` will be undefined\n * until the total stream size is known.\n * @note This event will not be emitted in Node.js 0.8.x.\n * @param progress [map] An object containing the `loaded` and `total` bytes\n * of the request and the `key` of the S3 object. Note that `total` may be undefined until the payload\n * size is known.\n * @context (see AWS.Request~send)\n */\nAWS.S3.ManagedUpload = AWS.util.inherit({\n /**\n * Creates a managed upload object with a set of configuration options.\n *\n * @note A \"Body\" parameter is required to be set prior to calling {send}.\n * @note In Node.js, sending \"Body\" as {https://nodejs.org/dist/latest/docs/api/stream.html#stream_object_mode object-mode stream}\n * may result in upload hangs. Using buffer stream is preferable.\n * @option options params [map] a map of parameters to pass to the upload\n * requests. The \"Body\" parameter is required to be specified either on\n * the service or in the params option.\n * @note ContentMD5 should not be provided when using the managed upload object.\n * Instead, setting \"computeChecksums\" to true will enable automatic ContentMD5 generation\n * by the managed upload object.\n * @option options queueSize [Number] (4) the size of the concurrent queue\n * manager to upload parts in parallel. Set to 1 for synchronous uploading\n * of parts. Note that the uploader will buffer at most queueSize * partSize\n * bytes into memory at any given time.\n * @option options partSize [Number] (5mb) the size in bytes for each\n * individual part to be uploaded. Adjust the part size to ensure the number\n * of parts does not exceed {maxTotalParts}. See {minPartSize} for the\n * minimum allowed part size.\n * @option options leavePartsOnError [Boolean] (false) whether to abort the\n * multipart upload if an error occurs. Set to true if you want to handle\n * failures manually.\n * @option options service [AWS.S3] an optional S3 service object to use for\n * requests. This object might have bound parameters used by the uploader.\n * @option options tags [Array] The tags to apply to the uploaded object.\n * Each tag should have a `Key` and `Value` keys.\n * @example Creating a default uploader for a stream object\n * var upload = new AWS.S3.ManagedUpload({\n * params: {Bucket: 'bucket', Key: 'key', Body: stream}\n * });\n * @example Creating an uploader with concurrency of 1 and partSize of 10mb\n * var upload = new AWS.S3.ManagedUpload({\n * partSize: 10 * 1024 * 1024, queueSize: 1,\n * params: {Bucket: 'bucket', Key: 'key', Body: stream}\n * });\n * @example Creating an uploader with tags\n * var upload = new AWS.S3.ManagedUpload({\n * params: {Bucket: 'bucket', Key: 'key', Body: stream},\n * tags: [{Key: 'tag1', Value: 'value1'}, {Key: 'tag2', Value: 'value2'}]\n * });\n * @see send\n */\n constructor: function ManagedUpload(options) {\n var self = this;\n AWS.SequentialExecutor.call(self);\n self.body = null;\n self.sliceFn = null;\n self.callback = null;\n self.parts = {};\n self.completeInfo = [];\n self.fillQueue = function() {\n self.callback(new Error('Unsupported body payload ' + typeof self.body));\n };\n\n self.configure(options);\n },\n\n /**\n * @api private\n */\n configure: function configure(options) {\n options = options || {};\n this.partSize = this.minPartSize;\n\n if (options.queueSize) this.queueSize = options.queueSize;\n if (options.partSize) this.partSize = options.partSize;\n if (options.leavePartsOnError) this.leavePartsOnError = true;\n if (options.tags) {\n if (!Array.isArray(options.tags)) {\n throw new Error('Tags must be specified as an array; ' +\n typeof options.tags + ' provided.');\n }\n this.tags = options.tags;\n }\n\n if (this.partSize < this.minPartSize) {\n throw new Error('partSize must be greater than ' +\n this.minPartSize);\n }\n\n this.service = options.service;\n this.bindServiceObject(options.params);\n this.validateBody();\n this.adjustTotalBytes();\n },\n\n /**\n * @api private\n */\n leavePartsOnError: false,\n\n /**\n * @api private\n */\n queueSize: 4,\n\n /**\n * @api private\n */\n partSize: null,\n\n /**\n * @readonly\n * @return [Number] the minimum number of bytes for an individual part\n * upload.\n */\n minPartSize: 1024 * 1024 * 5,\n\n /**\n * @readonly\n * @return [Number] the maximum allowed number of parts in a multipart upload.\n */\n maxTotalParts: 10000,\n\n /**\n * Initiates the managed upload for the payload.\n *\n * @callback callback function(err, data)\n * @param err [Error] an error or null if no error occurred.\n * @param data [map] The response data from the successful upload:\n * * `Location` (String) the URL of the uploaded object\n * * `ETag` (String) the ETag of the uploaded object\n * * `Bucket` (String) the bucket to which the object was uploaded\n * * `Key` (String) the key to which the object was uploaded\n * @example Sending a managed upload object\n * var params = {Bucket: 'bucket', Key: 'key', Body: stream};\n * var upload = new AWS.S3.ManagedUpload({params: params});\n * upload.send(function(err, data) {\n * console.log(err, data);\n * });\n */\n send: function(callback) {\n var self = this;\n self.failed = false;\n self.callback = callback || function(err) { if (err) throw err; };\n\n var runFill = true;\n if (self.sliceFn) {\n self.fillQueue = self.fillBuffer;\n } else if (AWS.util.isNode()) {\n var Stream = AWS.util.stream.Stream;\n if (self.body instanceof Stream) {\n runFill = false;\n self.fillQueue = self.fillStream;\n self.partBuffers = [];\n self.body.\n on('error', function(err) { self.cleanup(err); }).\n on('readable', function() { self.fillQueue(); }).\n on('end', function() {\n self.isDoneChunking = true;\n self.numParts = self.totalPartNumbers;\n self.fillQueue.call(self);\n\n if (self.isDoneChunking && self.totalPartNumbers >= 1 && self.doneParts === self.numParts) {\n self.finishMultiPart();\n }\n });\n }\n }\n\n if (runFill) self.fillQueue.call(self);\n },\n\n /**\n * @!method promise()\n * Returns a 'thenable' promise.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @callback fulfilledCallback function(data)\n * Called if the promise is fulfilled.\n * @param data [map] The response data from the successful upload:\n * `Location` (String) the URL of the uploaded object\n * `ETag` (String) the ETag of the uploaded object\n * `Bucket` (String) the bucket to which the object was uploaded\n * `Key` (String) the key to which the object was uploaded\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] an error or null if no error occurred.\n * @return [Promise] A promise that represents the state of the upload request.\n * @example Sending an upload request using promises.\n * var upload = s3.upload({Bucket: 'bucket', Key: 'key', Body: stream});\n * var promise = upload.promise();\n * promise.then(function(data) { ... }, function(err) { ... });\n */\n\n /**\n * Aborts a managed upload, including all concurrent upload requests.\n * @note By default, calling this function will cleanup a multipart upload\n * if one was created. To leave the multipart upload around after aborting\n * a request, configure `leavePartsOnError` to `true` in the {constructor}.\n * @note Calling {abort} in the browser environment will not abort any requests\n * that are already in flight. If a multipart upload was created, any parts\n * not yet uploaded will not be sent, and the multipart upload will be cleaned up.\n * @example Aborting an upload\n * var params = {\n * Bucket: 'bucket', Key: 'key',\n * Body: Buffer.alloc(1024 * 1024 * 25) // 25MB payload\n * };\n * var upload = s3.upload(params);\n * upload.send(function (err, data) {\n * if (err) console.log(\"Error:\", err.code, err.message);\n * else console.log(data);\n * });\n *\n * // abort request in 1 second\n * setTimeout(upload.abort.bind(upload), 1000);\n */\n abort: function() {\n var self = this;\n //abort putObject request\n if (self.isDoneChunking === true && self.totalPartNumbers === 1 && self.singlePart) {\n self.singlePart.abort();\n } else {\n self.cleanup(AWS.util.error(new Error('Request aborted by user'), {\n code: 'RequestAbortedError', retryable: false\n }));\n }\n },\n\n /**\n * @api private\n */\n validateBody: function validateBody() {\n var self = this;\n self.body = self.service.config.params.Body;\n if (typeof self.body === 'string') {\n self.body = AWS.util.buffer.toBuffer(self.body);\n } else if (!self.body) {\n throw new Error('params.Body is required');\n }\n self.sliceFn = AWS.util.arraySliceFn(self.body);\n },\n\n /**\n * @api private\n */\n bindServiceObject: function bindServiceObject(params) {\n params = params || {};\n var self = this;\n // bind parameters to new service object\n if (!self.service) {\n self.service = new AWS.S3({params: params});\n } else {\n // Create a new S3 client from the supplied client's constructor.\n var service = self.service;\n var config = AWS.util.copy(service.config);\n config.signatureVersion = service.getSignatureVersion();\n self.service = new service.constructor.__super__(config);\n self.service.config.params =\n AWS.util.merge(self.service.config.params || {}, params);\n Object.defineProperty(self.service, '_originalConfig', {\n get: function() { return service._originalConfig; },\n enumerable: false,\n configurable: true\n });\n }\n },\n\n /**\n * @api private\n */\n adjustTotalBytes: function adjustTotalBytes() {\n var self = this;\n try { // try to get totalBytes\n self.totalBytes = byteLength(self.body);\n } catch (e) { }\n\n // try to adjust partSize if we know payload length\n if (self.totalBytes) {\n var newPartSize = Math.ceil(self.totalBytes / self.maxTotalParts);\n if (newPartSize > self.partSize) self.partSize = newPartSize;\n } else {\n self.totalBytes = undefined;\n }\n },\n\n /**\n * @api private\n */\n isDoneChunking: false,\n\n /**\n * @api private\n */\n partPos: 0,\n\n /**\n * @api private\n */\n totalChunkedBytes: 0,\n\n /**\n * @api private\n */\n totalUploadedBytes: 0,\n\n /**\n * @api private\n */\n totalBytes: undefined,\n\n /**\n * @api private\n */\n numParts: 0,\n\n /**\n * @api private\n */\n totalPartNumbers: 0,\n\n /**\n * @api private\n */\n activeParts: 0,\n\n /**\n * @api private\n */\n doneParts: 0,\n\n /**\n * @api private\n */\n parts: null,\n\n /**\n * @api private\n */\n completeInfo: null,\n\n /**\n * @api private\n */\n failed: false,\n\n /**\n * @api private\n */\n multipartReq: null,\n\n /**\n * @api private\n */\n partBuffers: null,\n\n /**\n * @api private\n */\n partBufferLength: 0,\n\n /**\n * @api private\n */\n fillBuffer: function fillBuffer() {\n var self = this;\n var bodyLen = byteLength(self.body);\n\n if (bodyLen === 0) {\n self.isDoneChunking = true;\n self.numParts = 1;\n self.nextChunk(self.body);\n return;\n }\n\n while (self.activeParts < self.queueSize && self.partPos < bodyLen) {\n var endPos = Math.min(self.partPos + self.partSize, bodyLen);\n var buf = self.sliceFn.call(self.body, self.partPos, endPos);\n self.partPos += self.partSize;\n\n if (byteLength(buf) < self.partSize || self.partPos === bodyLen) {\n self.isDoneChunking = true;\n self.numParts = self.totalPartNumbers + 1;\n }\n self.nextChunk(buf);\n }\n },\n\n /**\n * @api private\n */\n fillStream: function fillStream() {\n var self = this;\n if (self.activeParts >= self.queueSize) return;\n\n var buf = self.body.read(self.partSize - self.partBufferLength) ||\n self.body.read();\n if (buf) {\n self.partBuffers.push(buf);\n self.partBufferLength += buf.length;\n self.totalChunkedBytes += buf.length;\n }\n\n if (self.partBufferLength >= self.partSize) {\n // if we have single buffer we avoid copyfull concat\n var pbuf = self.partBuffers.length === 1 ?\n self.partBuffers[0] : Buffer.concat(self.partBuffers);\n self.partBuffers = [];\n self.partBufferLength = 0;\n\n // if we have more than partSize, push the rest back on the queue\n if (pbuf.length > self.partSize) {\n var rest = pbuf.slice(self.partSize);\n self.partBuffers.push(rest);\n self.partBufferLength += rest.length;\n pbuf = pbuf.slice(0, self.partSize);\n }\n\n self.nextChunk(pbuf);\n }\n\n if (self.isDoneChunking && !self.isDoneSending) {\n // if we have single buffer we avoid copyfull concat\n pbuf = self.partBuffers.length === 1 ?\n self.partBuffers[0] : Buffer.concat(self.partBuffers);\n self.partBuffers = [];\n self.partBufferLength = 0;\n self.totalBytes = self.totalChunkedBytes;\n self.isDoneSending = true;\n\n if (self.numParts === 0 || pbuf.length > 0) {\n self.numParts++;\n self.nextChunk(pbuf);\n }\n }\n\n self.body.read(0);\n },\n\n /**\n * @api private\n */\n nextChunk: function nextChunk(chunk) {\n var self = this;\n if (self.failed) return null;\n\n var partNumber = ++self.totalPartNumbers;\n if (self.isDoneChunking && partNumber === 1) {\n var params = {Body: chunk};\n if (this.tags) {\n params.Tagging = this.getTaggingHeader();\n }\n var req = self.service.putObject(params);\n req._managedUpload = self;\n req.on('httpUploadProgress', self.progress).send(self.finishSinglePart);\n self.singlePart = req; //save the single part request\n return null;\n } else if (self.service.config.params.ContentMD5) {\n var err = AWS.util.error(new Error('The Content-MD5 you specified is invalid for multi-part uploads.'), {\n code: 'InvalidDigest', retryable: false\n });\n\n self.cleanup(err);\n return null;\n }\n\n if (self.completeInfo[partNumber] && self.completeInfo[partNumber].ETag !== null) {\n return null; // Already uploaded this part.\n }\n\n self.activeParts++;\n if (!self.service.config.params.UploadId) {\n\n if (!self.multipartReq) { // create multipart\n self.multipartReq = self.service.createMultipartUpload();\n self.multipartReq.on('success', function(resp) {\n self.service.config.params.UploadId = resp.data.UploadId;\n self.multipartReq = null;\n });\n self.queueChunks(chunk, partNumber);\n self.multipartReq.on('error', function(err) {\n self.cleanup(err);\n });\n self.multipartReq.send();\n } else {\n self.queueChunks(chunk, partNumber);\n }\n } else { // multipart is created, just send\n self.uploadPart(chunk, partNumber);\n }\n },\n\n /**\n * @api private\n */\n getTaggingHeader: function getTaggingHeader() {\n var kvPairStrings = [];\n for (var i = 0; i < this.tags.length; i++) {\n kvPairStrings.push(AWS.util.uriEscape(this.tags[i].Key) + '=' +\n AWS.util.uriEscape(this.tags[i].Value));\n }\n\n return kvPairStrings.join('&');\n },\n\n /**\n * @api private\n */\n uploadPart: function uploadPart(chunk, partNumber) {\n var self = this;\n\n var partParams = {\n Body: chunk,\n ContentLength: AWS.util.string.byteLength(chunk),\n PartNumber: partNumber\n };\n\n var partInfo = {ETag: null, PartNumber: partNumber};\n self.completeInfo[partNumber] = partInfo;\n\n var req = self.service.uploadPart(partParams);\n self.parts[partNumber] = req;\n req._lastUploadedBytes = 0;\n req._managedUpload = self;\n req.on('httpUploadProgress', self.progress);\n req.send(function(err, data) {\n delete self.parts[partParams.PartNumber];\n self.activeParts--;\n\n if (!err && (!data || !data.ETag)) {\n var message = 'No access to ETag property on response.';\n if (AWS.util.isBrowser()) {\n message += ' Check CORS configuration to expose ETag header.';\n }\n\n err = AWS.util.error(new Error(message), {\n code: 'ETagMissing', retryable: false\n });\n }\n if (err) return self.cleanup(err);\n //prevent sending part being returned twice (https://github.com/aws/aws-sdk-js/issues/2304)\n if (self.completeInfo[partNumber] && self.completeInfo[partNumber].ETag !== null) return null;\n partInfo.ETag = data.ETag;\n self.doneParts++;\n if (self.isDoneChunking && self.doneParts === self.totalPartNumbers) {\n self.finishMultiPart();\n } else {\n self.fillQueue.call(self);\n }\n });\n },\n\n /**\n * @api private\n */\n queueChunks: function queueChunks(chunk, partNumber) {\n var self = this;\n self.multipartReq.on('success', function() {\n self.uploadPart(chunk, partNumber);\n });\n },\n\n /**\n * @api private\n */\n cleanup: function cleanup(err) {\n var self = this;\n if (self.failed) return;\n\n // clean up stream\n if (typeof self.body.removeAllListeners === 'function' &&\n typeof self.body.resume === 'function') {\n self.body.removeAllListeners('readable');\n self.body.removeAllListeners('end');\n self.body.resume();\n }\n\n // cleanup multipartReq listeners\n if (self.multipartReq) {\n self.multipartReq.removeAllListeners('success');\n self.multipartReq.removeAllListeners('error');\n self.multipartReq.removeAllListeners('complete');\n delete self.multipartReq;\n }\n\n if (self.service.config.params.UploadId && !self.leavePartsOnError) {\n self.service.abortMultipartUpload().send();\n } else if (self.leavePartsOnError) {\n self.isDoneChunking = false;\n }\n\n AWS.util.each(self.parts, function(partNumber, part) {\n part.removeAllListeners('complete');\n part.abort();\n });\n\n self.activeParts = 0;\n self.partPos = 0;\n self.numParts = 0;\n self.totalPartNumbers = 0;\n self.parts = {};\n self.failed = true;\n self.callback(err);\n },\n\n /**\n * @api private\n */\n finishMultiPart: function finishMultiPart() {\n var self = this;\n var completeParams = { MultipartUpload: { Parts: self.completeInfo.slice(1) } };\n self.service.completeMultipartUpload(completeParams, function(err, data) {\n if (err) {\n return self.cleanup(err);\n }\n\n if (data && typeof data.Location === 'string') {\n data.Location = data.Location.replace(/%2F/g, '/');\n }\n\n if (Array.isArray(self.tags)) {\n for (var i = 0; i < self.tags.length; i++) {\n self.tags[i].Value = String(self.tags[i].Value);\n }\n self.service.putObjectTagging(\n {Tagging: {TagSet: self.tags}},\n function(e, d) {\n if (e) {\n self.callback(e);\n } else {\n self.callback(e, data);\n }\n }\n );\n } else {\n self.callback(err, data);\n }\n });\n },\n\n /**\n * @api private\n */\n finishSinglePart: function finishSinglePart(err, data) {\n var upload = this.request._managedUpload;\n var httpReq = this.request.httpRequest;\n var endpoint = httpReq.endpoint;\n if (err) return upload.callback(err);\n data.Location =\n [endpoint.protocol, '//', endpoint.host, httpReq.path].join('');\n data.key = this.request.params.Key; // will stay undocumented\n data.Key = this.request.params.Key;\n data.Bucket = this.request.params.Bucket;\n upload.callback(err, data);\n },\n\n /**\n * @api private\n */\n progress: function progress(info) {\n var upload = this._managedUpload;\n if (this.operation === 'putObject') {\n info.part = 1;\n info.key = this.params.Key;\n } else {\n upload.totalUploadedBytes += info.loaded - this._lastUploadedBytes;\n this._lastUploadedBytes = info.loaded;\n info = {\n loaded: upload.totalUploadedBytes,\n total: upload.totalBytes,\n part: this.params.PartNumber,\n key: this.params.Key\n };\n }\n upload.emit('httpUploadProgress', [info]);\n }\n});\n\nAWS.util.mixin(AWS.S3.ManagedUpload, AWS.SequentialExecutor);\n\n/**\n * @api private\n */\nAWS.S3.ManagedUpload.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.promise = AWS.util.promisifyMethod('send', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.S3.ManagedUpload.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.promise;\n};\n\nAWS.util.addPromises(AWS.S3.ManagedUpload);\n\n/**\n * @api private\n */\nmodule.exports = AWS.S3.ManagedUpload;\n","var AWS = require('./core');\n\n/**\n * @api private\n * @!method on(eventName, callback)\n * Registers an event listener callback for the event given by `eventName`.\n * Parameters passed to the callback function depend on the individual event\n * being triggered. See the event documentation for those parameters.\n *\n * @param eventName [String] the event name to register the listener for\n * @param callback [Function] the listener callback function\n * @param toHead [Boolean] attach the listener callback to the head of callback array if set to true.\n * Default to be false.\n * @return [AWS.SequentialExecutor] the same object for chaining\n */\nAWS.SequentialExecutor = AWS.util.inherit({\n\n constructor: function SequentialExecutor() {\n this._events = {};\n },\n\n /**\n * @api private\n */\n listeners: function listeners(eventName) {\n return this._events[eventName] ? this._events[eventName].slice(0) : [];\n },\n\n on: function on(eventName, listener, toHead) {\n if (this._events[eventName]) {\n toHead ?\n this._events[eventName].unshift(listener) :\n this._events[eventName].push(listener);\n } else {\n this._events[eventName] = [listener];\n }\n return this;\n },\n\n onAsync: function onAsync(eventName, listener, toHead) {\n listener._isAsync = true;\n return this.on(eventName, listener, toHead);\n },\n\n removeListener: function removeListener(eventName, listener) {\n var listeners = this._events[eventName];\n if (listeners) {\n var length = listeners.length;\n var position = -1;\n for (var i = 0; i < length; ++i) {\n if (listeners[i] === listener) {\n position = i;\n }\n }\n if (position > -1) {\n listeners.splice(position, 1);\n }\n }\n return this;\n },\n\n removeAllListeners: function removeAllListeners(eventName) {\n if (eventName) {\n delete this._events[eventName];\n } else {\n this._events = {};\n }\n return this;\n },\n\n /**\n * @api private\n */\n emit: function emit(eventName, eventArgs, doneCallback) {\n if (!doneCallback) doneCallback = function() { };\n var listeners = this.listeners(eventName);\n var count = listeners.length;\n this.callListeners(listeners, eventArgs, doneCallback);\n return count > 0;\n },\n\n /**\n * @api private\n */\n callListeners: function callListeners(listeners, args, doneCallback, prevError) {\n var self = this;\n var error = prevError || null;\n\n function callNextListener(err) {\n if (err) {\n error = AWS.util.error(error || new Error(), err);\n if (self._haltHandlersOnError) {\n return doneCallback.call(self, error);\n }\n }\n self.callListeners(listeners, args, doneCallback, error);\n }\n\n while (listeners.length > 0) {\n var listener = listeners.shift();\n if (listener._isAsync) { // asynchronous listener\n listener.apply(self, args.concat([callNextListener]));\n return; // stop here, callNextListener will continue\n } else { // synchronous listener\n try {\n listener.apply(self, args);\n } catch (err) {\n error = AWS.util.error(error || new Error(), err);\n }\n if (error && self._haltHandlersOnError) {\n doneCallback.call(self, error);\n return;\n }\n }\n }\n doneCallback.call(self, error);\n },\n\n /**\n * Adds or copies a set of listeners from another list of\n * listeners or SequentialExecutor object.\n *\n * @param listeners [map>, AWS.SequentialExecutor]\n * a list of events and callbacks, or an event emitter object\n * containing listeners to add to this emitter object.\n * @return [AWS.SequentialExecutor] the emitter object, for chaining.\n * @example Adding listeners from a map of listeners\n * emitter.addListeners({\n * event1: [function() { ... }, function() { ... }],\n * event2: [function() { ... }]\n * });\n * emitter.emit('event1'); // emitter has event1\n * emitter.emit('event2'); // emitter has event2\n * @example Adding listeners from another emitter object\n * var emitter1 = new AWS.SequentialExecutor();\n * emitter1.on('event1', function() { ... });\n * emitter1.on('event2', function() { ... });\n * var emitter2 = new AWS.SequentialExecutor();\n * emitter2.addListeners(emitter1);\n * emitter2.emit('event1'); // emitter2 has event1\n * emitter2.emit('event2'); // emitter2 has event2\n */\n addListeners: function addListeners(listeners) {\n var self = this;\n\n // extract listeners if parameter is an SequentialExecutor object\n if (listeners._events) listeners = listeners._events;\n\n AWS.util.each(listeners, function(event, callbacks) {\n if (typeof callbacks === 'function') callbacks = [callbacks];\n AWS.util.arrayEach(callbacks, function(callback) {\n self.on(event, callback);\n });\n });\n\n return self;\n },\n\n /**\n * Registers an event with {on} and saves the callback handle function\n * as a property on the emitter object using a given `name`.\n *\n * @param name [String] the property name to set on this object containing\n * the callback function handle so that the listener can be removed in\n * the future.\n * @param (see on)\n * @return (see on)\n * @example Adding a named listener DATA_CALLBACK\n * var listener = function() { doSomething(); };\n * emitter.addNamedListener('DATA_CALLBACK', 'data', listener);\n *\n * // the following prints: true\n * console.log(emitter.DATA_CALLBACK == listener);\n */\n addNamedListener: function addNamedListener(name, eventName, callback, toHead) {\n this[name] = callback;\n this.addListener(eventName, callback, toHead);\n return this;\n },\n\n /**\n * @api private\n */\n addNamedAsyncListener: function addNamedAsyncListener(name, eventName, callback, toHead) {\n callback._isAsync = true;\n return this.addNamedListener(name, eventName, callback, toHead);\n },\n\n /**\n * Helper method to add a set of named listeners using\n * {addNamedListener}. The callback contains a parameter\n * with a handle to the `addNamedListener` method.\n *\n * @callback callback function(add)\n * The callback function is called immediately in order to provide\n * the `add` function to the block. This simplifies the addition of\n * a large group of named listeners.\n * @param add [Function] the {addNamedListener} function to call\n * when registering listeners.\n * @example Adding a set of named listeners\n * emitter.addNamedListeners(function(add) {\n * add('DATA_CALLBACK', 'data', function() { ... });\n * add('OTHER', 'otherEvent', function() { ... });\n * add('LAST', 'lastEvent', function() { ... });\n * });\n *\n * // these properties are now set:\n * emitter.DATA_CALLBACK;\n * emitter.OTHER;\n * emitter.LAST;\n */\n addNamedListeners: function addNamedListeners(callback) {\n var self = this;\n callback(\n function() {\n self.addNamedListener.apply(self, arguments);\n },\n function() {\n self.addNamedAsyncListener.apply(self, arguments);\n }\n );\n return this;\n }\n});\n\n/**\n * {on} is the prefered method.\n * @api private\n */\nAWS.SequentialExecutor.prototype.addListener = AWS.SequentialExecutor.prototype.on;\n\n/**\n * @api private\n */\nmodule.exports = AWS.SequentialExecutor;\n","var AWS = require('./core');\nvar Api = require('./model/api');\nvar regionConfig = require('./region_config');\n\nvar inherit = AWS.util.inherit;\nvar clientCount = 0;\nvar region_utils = require('./region/utils');\n\n/**\n * The service class representing an AWS service.\n *\n * @class_abstract This class is an abstract class.\n *\n * @!attribute apiVersions\n * @return [Array] the list of API versions supported by this service.\n * @readonly\n */\nAWS.Service = inherit({\n /**\n * Create a new service object with a configuration object\n *\n * @param config [map] a map of configuration options\n */\n constructor: function Service(config) {\n if (!this.loadServiceClass) {\n throw AWS.util.error(new Error(),\n 'Service must be constructed with `new\\' operator');\n }\n\n if (config) {\n if (config.region) {\n var region = config.region;\n if (region_utils.isFipsRegion(region)) {\n config.region = region_utils.getRealRegion(region);\n config.useFipsEndpoint = true;\n }\n if (region_utils.isGlobalRegion(region)) {\n config.region = region_utils.getRealRegion(region);\n }\n }\n if (typeof config.useDualstack === 'boolean'\n && typeof config.useDualstackEndpoint !== 'boolean') {\n config.useDualstackEndpoint = config.useDualstack;\n }\n }\n\n var ServiceClass = this.loadServiceClass(config || {});\n if (ServiceClass) {\n var originalConfig = AWS.util.copy(config);\n var svc = new ServiceClass(config);\n Object.defineProperty(svc, '_originalConfig', {\n get: function() { return originalConfig; },\n enumerable: false,\n configurable: true\n });\n svc._clientId = ++clientCount;\n return svc;\n }\n this.initialize(config);\n },\n\n /**\n * @api private\n */\n initialize: function initialize(config) {\n var svcConfig = AWS.config[this.serviceIdentifier];\n this.config = new AWS.Config(AWS.config);\n if (svcConfig) this.config.update(svcConfig, true);\n if (config) this.config.update(config, true);\n\n this.validateService();\n if (!this.config.endpoint) regionConfig.configureEndpoint(this);\n\n this.config.endpoint = this.endpointFromTemplate(this.config.endpoint);\n this.setEndpoint(this.config.endpoint);\n //enable attaching listeners to service client\n AWS.SequentialExecutor.call(this);\n AWS.Service.addDefaultMonitoringListeners(this);\n if ((this.config.clientSideMonitoring || AWS.Service._clientSideMonitoring) && this.publisher) {\n var publisher = this.publisher;\n this.addNamedListener('PUBLISH_API_CALL', 'apiCall', function PUBLISH_API_CALL(event) {\n process.nextTick(function() {publisher.eventHandler(event);});\n });\n this.addNamedListener('PUBLISH_API_ATTEMPT', 'apiCallAttempt', function PUBLISH_API_ATTEMPT(event) {\n process.nextTick(function() {publisher.eventHandler(event);});\n });\n }\n },\n\n /**\n * @api private\n */\n validateService: function validateService() {\n },\n\n /**\n * @api private\n */\n loadServiceClass: function loadServiceClass(serviceConfig) {\n var config = serviceConfig;\n if (!AWS.util.isEmpty(this.api)) {\n return null;\n } else if (config.apiConfig) {\n return AWS.Service.defineServiceApi(this.constructor, config.apiConfig);\n } else if (!this.constructor.services) {\n return null;\n } else {\n config = new AWS.Config(AWS.config);\n config.update(serviceConfig, true);\n var version = config.apiVersions[this.constructor.serviceIdentifier];\n version = version || config.apiVersion;\n return this.getLatestServiceClass(version);\n }\n },\n\n /**\n * @api private\n */\n getLatestServiceClass: function getLatestServiceClass(version) {\n version = this.getLatestServiceVersion(version);\n if (this.constructor.services[version] === null) {\n AWS.Service.defineServiceApi(this.constructor, version);\n }\n\n return this.constructor.services[version];\n },\n\n /**\n * @api private\n */\n getLatestServiceVersion: function getLatestServiceVersion(version) {\n if (!this.constructor.services || this.constructor.services.length === 0) {\n throw new Error('No services defined on ' +\n this.constructor.serviceIdentifier);\n }\n\n if (!version) {\n version = 'latest';\n } else if (AWS.util.isType(version, Date)) {\n version = AWS.util.date.iso8601(version).split('T')[0];\n }\n\n if (Object.hasOwnProperty(this.constructor.services, version)) {\n return version;\n }\n\n var keys = Object.keys(this.constructor.services).sort();\n var selectedVersion = null;\n for (var i = keys.length - 1; i >= 0; i--) {\n // versions that end in \"*\" are not available on disk and can be\n // skipped, so do not choose these as selectedVersions\n if (keys[i][keys[i].length - 1] !== '*') {\n selectedVersion = keys[i];\n }\n if (keys[i].substr(0, 10) <= version) {\n return selectedVersion;\n }\n }\n\n throw new Error('Could not find ' + this.constructor.serviceIdentifier +\n ' API to satisfy version constraint `' + version + '\\'');\n },\n\n /**\n * @api private\n */\n api: {},\n\n /**\n * @api private\n */\n defaultRetryCount: 3,\n\n /**\n * @api private\n */\n customizeRequests: function customizeRequests(callback) {\n if (!callback) {\n this.customRequestHandler = null;\n } else if (typeof callback === 'function') {\n this.customRequestHandler = callback;\n } else {\n throw new Error('Invalid callback type \\'' + typeof callback + '\\' provided in customizeRequests');\n }\n },\n\n /**\n * Calls an operation on a service with the given input parameters.\n *\n * @param operation [String] the name of the operation to call on the service.\n * @param params [map] a map of input options for the operation\n * @callback callback function(err, data)\n * If a callback is supplied, it is called when a response is returned\n * from the service.\n * @param err [Error] the error object returned from the request.\n * Set to `null` if the request is successful.\n * @param data [Object] the de-serialized data returned from\n * the request. Set to `null` if a request error occurs.\n */\n makeRequest: function makeRequest(operation, params, callback) {\n if (typeof params === 'function') {\n callback = params;\n params = null;\n }\n\n params = params || {};\n if (this.config.params) { // copy only toplevel bound params\n var rules = this.api.operations[operation];\n if (rules) {\n params = AWS.util.copy(params);\n AWS.util.each(this.config.params, function(key, value) {\n if (rules.input.members[key]) {\n if (params[key] === undefined || params[key] === null) {\n params[key] = value;\n }\n }\n });\n }\n }\n\n var request = new AWS.Request(this, operation, params);\n this.addAllRequestListeners(request);\n this.attachMonitoringEmitter(request);\n if (callback) request.send(callback);\n return request;\n },\n\n /**\n * Calls an operation on a service with the given input parameters, without\n * any authentication data. This method is useful for \"public\" API operations.\n *\n * @param operation [String] the name of the operation to call on the service.\n * @param params [map] a map of input options for the operation\n * @callback callback function(err, data)\n * If a callback is supplied, it is called when a response is returned\n * from the service.\n * @param err [Error] the error object returned from the request.\n * Set to `null` if the request is successful.\n * @param data [Object] the de-serialized data returned from\n * the request. Set to `null` if a request error occurs.\n */\n makeUnauthenticatedRequest: function makeUnauthenticatedRequest(operation, params, callback) {\n if (typeof params === 'function') {\n callback = params;\n params = {};\n }\n\n var request = this.makeRequest(operation, params).toUnauthenticated();\n return callback ? request.send(callback) : request;\n },\n\n /**\n * Waits for a given state\n *\n * @param state [String] the state on the service to wait for\n * @param params [map] a map of parameters to pass with each request\n * @option params $waiter [map] a map of configuration options for the waiter\n * @option params $waiter.delay [Number] The number of seconds to wait between\n * requests\n * @option params $waiter.maxAttempts [Number] The maximum number of requests\n * to send while waiting\n * @callback callback function(err, data)\n * If a callback is supplied, it is called when a response is returned\n * from the service.\n * @param err [Error] the error object returned from the request.\n * Set to `null` if the request is successful.\n * @param data [Object] the de-serialized data returned from\n * the request. Set to `null` if a request error occurs.\n */\n waitFor: function waitFor(state, params, callback) {\n var waiter = new AWS.ResourceWaiter(this, state);\n return waiter.wait(params, callback);\n },\n\n /**\n * @api private\n */\n addAllRequestListeners: function addAllRequestListeners(request) {\n var list = [AWS.events, AWS.EventListeners.Core, this.serviceInterface(),\n AWS.EventListeners.CorePost];\n for (var i = 0; i < list.length; i++) {\n if (list[i]) request.addListeners(list[i]);\n }\n\n // disable parameter validation\n if (!this.config.paramValidation) {\n request.removeListener('validate',\n AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n }\n\n if (this.config.logger) { // add logging events\n request.addListeners(AWS.EventListeners.Logger);\n }\n\n this.setupRequestListeners(request);\n // call prototype's customRequestHandler\n if (typeof this.constructor.prototype.customRequestHandler === 'function') {\n this.constructor.prototype.customRequestHandler(request);\n }\n // call instance's customRequestHandler\n if (Object.prototype.hasOwnProperty.call(this, 'customRequestHandler') && typeof this.customRequestHandler === 'function') {\n this.customRequestHandler(request);\n }\n },\n\n /**\n * Event recording metrics for a whole API call.\n * @returns {object} a subset of api call metrics\n * @api private\n */\n apiCallEvent: function apiCallEvent(request) {\n var api = request.service.api.operations[request.operation];\n var monitoringEvent = {\n Type: 'ApiCall',\n Api: api ? api.name : request.operation,\n Version: 1,\n Service: request.service.api.serviceId || request.service.api.endpointPrefix,\n Region: request.httpRequest.region,\n MaxRetriesExceeded: 0,\n UserAgent: request.httpRequest.getUserAgent(),\n };\n var response = request.response;\n if (response.httpResponse.statusCode) {\n monitoringEvent.FinalHttpStatusCode = response.httpResponse.statusCode;\n }\n if (response.error) {\n var error = response.error;\n var statusCode = response.httpResponse.statusCode;\n if (statusCode > 299) {\n if (error.code) monitoringEvent.FinalAwsException = error.code;\n if (error.message) monitoringEvent.FinalAwsExceptionMessage = error.message;\n } else {\n if (error.code || error.name) monitoringEvent.FinalSdkException = error.code || error.name;\n if (error.message) monitoringEvent.FinalSdkExceptionMessage = error.message;\n }\n }\n return monitoringEvent;\n },\n\n /**\n * Event recording metrics for an API call attempt.\n * @returns {object} a subset of api call attempt metrics\n * @api private\n */\n apiAttemptEvent: function apiAttemptEvent(request) {\n var api = request.service.api.operations[request.operation];\n var monitoringEvent = {\n Type: 'ApiCallAttempt',\n Api: api ? api.name : request.operation,\n Version: 1,\n Service: request.service.api.serviceId || request.service.api.endpointPrefix,\n Fqdn: request.httpRequest.endpoint.hostname,\n UserAgent: request.httpRequest.getUserAgent(),\n };\n var response = request.response;\n if (response.httpResponse.statusCode) {\n monitoringEvent.HttpStatusCode = response.httpResponse.statusCode;\n }\n if (\n !request._unAuthenticated &&\n request.service.config.credentials &&\n request.service.config.credentials.accessKeyId\n ) {\n monitoringEvent.AccessKey = request.service.config.credentials.accessKeyId;\n }\n if (!response.httpResponse.headers) return monitoringEvent;\n if (request.httpRequest.headers['x-amz-security-token']) {\n monitoringEvent.SessionToken = request.httpRequest.headers['x-amz-security-token'];\n }\n if (response.httpResponse.headers['x-amzn-requestid']) {\n monitoringEvent.XAmznRequestId = response.httpResponse.headers['x-amzn-requestid'];\n }\n if (response.httpResponse.headers['x-amz-request-id']) {\n monitoringEvent.XAmzRequestId = response.httpResponse.headers['x-amz-request-id'];\n }\n if (response.httpResponse.headers['x-amz-id-2']) {\n monitoringEvent.XAmzId2 = response.httpResponse.headers['x-amz-id-2'];\n }\n return monitoringEvent;\n },\n\n /**\n * Add metrics of failed request.\n * @api private\n */\n attemptFailEvent: function attemptFailEvent(request) {\n var monitoringEvent = this.apiAttemptEvent(request);\n var response = request.response;\n var error = response.error;\n if (response.httpResponse.statusCode > 299 ) {\n if (error.code) monitoringEvent.AwsException = error.code;\n if (error.message) monitoringEvent.AwsExceptionMessage = error.message;\n } else {\n if (error.code || error.name) monitoringEvent.SdkException = error.code || error.name;\n if (error.message) monitoringEvent.SdkExceptionMessage = error.message;\n }\n return monitoringEvent;\n },\n\n /**\n * Attach listeners to request object to fetch metrics of each request\n * and emit data object through \\'ApiCall\\' and \\'ApiCallAttempt\\' events.\n * @api private\n */\n attachMonitoringEmitter: function attachMonitoringEmitter(request) {\n var attemptTimestamp; //timestamp marking the beginning of a request attempt\n var attemptStartRealTime; //Start time of request attempt. Used to calculating attemptLatency\n var attemptLatency; //latency from request sent out to http response reaching SDK\n var callStartRealTime; //Start time of API call. Used to calculating API call latency\n var attemptCount = 0; //request.retryCount is not reliable here\n var region; //region cache region for each attempt since it can be updated in plase (e.g. s3)\n var callTimestamp; //timestamp when the request is created\n var self = this;\n var addToHead = true;\n\n request.on('validate', function () {\n callStartRealTime = AWS.util.realClock.now();\n callTimestamp = Date.now();\n }, addToHead);\n request.on('sign', function () {\n attemptStartRealTime = AWS.util.realClock.now();\n attemptTimestamp = Date.now();\n region = request.httpRequest.region;\n attemptCount++;\n }, addToHead);\n request.on('validateResponse', function() {\n attemptLatency = Math.round(AWS.util.realClock.now() - attemptStartRealTime);\n });\n request.addNamedListener('API_CALL_ATTEMPT', 'success', function API_CALL_ATTEMPT() {\n var apiAttemptEvent = self.apiAttemptEvent(request);\n apiAttemptEvent.Timestamp = attemptTimestamp;\n apiAttemptEvent.AttemptLatency = attemptLatency >= 0 ? attemptLatency : 0;\n apiAttemptEvent.Region = region;\n self.emit('apiCallAttempt', [apiAttemptEvent]);\n });\n request.addNamedListener('API_CALL_ATTEMPT_RETRY', 'retry', function API_CALL_ATTEMPT_RETRY() {\n var apiAttemptEvent = self.attemptFailEvent(request);\n apiAttemptEvent.Timestamp = attemptTimestamp;\n //attemptLatency may not be available if fail before response\n attemptLatency = attemptLatency ||\n Math.round(AWS.util.realClock.now() - attemptStartRealTime);\n apiAttemptEvent.AttemptLatency = attemptLatency >= 0 ? attemptLatency : 0;\n apiAttemptEvent.Region = region;\n self.emit('apiCallAttempt', [apiAttemptEvent]);\n });\n request.addNamedListener('API_CALL', 'complete', function API_CALL() {\n var apiCallEvent = self.apiCallEvent(request);\n apiCallEvent.AttemptCount = attemptCount;\n if (apiCallEvent.AttemptCount <= 0) return;\n apiCallEvent.Timestamp = callTimestamp;\n var latency = Math.round(AWS.util.realClock.now() - callStartRealTime);\n apiCallEvent.Latency = latency >= 0 ? latency : 0;\n var response = request.response;\n if (\n response.error &&\n response.error.retryable &&\n typeof response.retryCount === 'number' &&\n typeof response.maxRetries === 'number' &&\n (response.retryCount >= response.maxRetries)\n ) {\n apiCallEvent.MaxRetriesExceeded = 1;\n }\n self.emit('apiCall', [apiCallEvent]);\n });\n },\n\n /**\n * Override this method to setup any custom request listeners for each\n * new request to the service.\n *\n * @method_abstract This is an abstract method.\n */\n setupRequestListeners: function setupRequestListeners(request) {\n },\n\n /**\n * Gets the signing name for a given request\n * @api private\n */\n getSigningName: function getSigningName() {\n return this.api.signingName || this.api.endpointPrefix;\n },\n\n /**\n * Gets the signer class for a given request\n * @api private\n */\n getSignerClass: function getSignerClass(request) {\n var version;\n // get operation authtype if present\n var operation = null;\n var authtype = '';\n if (request) {\n var operations = request.service.api.operations || {};\n operation = operations[request.operation] || null;\n authtype = operation ? operation.authtype : '';\n }\n if (this.config.signatureVersion) {\n version = this.config.signatureVersion;\n } else if (authtype === 'v4' || authtype === 'v4-unsigned-body') {\n version = 'v4';\n } else if (authtype === 'bearer') {\n version = 'bearer';\n } else {\n version = this.api.signatureVersion;\n }\n return AWS.Signers.RequestSigner.getVersion(version);\n },\n\n /**\n * @api private\n */\n serviceInterface: function serviceInterface() {\n switch (this.api.protocol) {\n case 'ec2': return AWS.EventListeners.Query;\n case 'query': return AWS.EventListeners.Query;\n case 'json': return AWS.EventListeners.Json;\n case 'rest-json': return AWS.EventListeners.RestJson;\n case 'rest-xml': return AWS.EventListeners.RestXml;\n }\n if (this.api.protocol) {\n throw new Error('Invalid service `protocol\\' ' +\n this.api.protocol + ' in API config');\n }\n },\n\n /**\n * @api private\n */\n successfulResponse: function successfulResponse(resp) {\n return resp.httpResponse.statusCode < 300;\n },\n\n /**\n * How many times a failed request should be retried before giving up.\n * the defaultRetryCount can be overriden by service classes.\n *\n * @api private\n */\n numRetries: function numRetries() {\n if (this.config.maxRetries !== undefined) {\n return this.config.maxRetries;\n } else {\n return this.defaultRetryCount;\n }\n },\n\n /**\n * @api private\n */\n retryDelays: function retryDelays(retryCount, err) {\n return AWS.util.calculateRetryDelay(retryCount, this.config.retryDelayOptions, err);\n },\n\n /**\n * @api private\n */\n retryableError: function retryableError(error) {\n if (this.timeoutError(error)) return true;\n if (this.networkingError(error)) return true;\n if (this.expiredCredentialsError(error)) return true;\n if (this.throttledError(error)) return true;\n if (error.statusCode >= 500) return true;\n return false;\n },\n\n /**\n * @api private\n */\n networkingError: function networkingError(error) {\n return error.code === 'NetworkingError';\n },\n\n /**\n * @api private\n */\n timeoutError: function timeoutError(error) {\n return error.code === 'TimeoutError';\n },\n\n /**\n * @api private\n */\n expiredCredentialsError: function expiredCredentialsError(error) {\n // TODO : this only handles *one* of the expired credential codes\n return (error.code === 'ExpiredTokenException');\n },\n\n /**\n * @api private\n */\n clockSkewError: function clockSkewError(error) {\n switch (error.code) {\n case 'RequestTimeTooSkewed':\n case 'RequestExpired':\n case 'InvalidSignatureException':\n case 'SignatureDoesNotMatch':\n case 'AuthFailure':\n case 'RequestInTheFuture':\n return true;\n default: return false;\n }\n },\n\n /**\n * @api private\n */\n getSkewCorrectedDate: function getSkewCorrectedDate() {\n return new Date(Date.now() + this.config.systemClockOffset);\n },\n\n /**\n * @api private\n */\n applyClockOffset: function applyClockOffset(newServerTime) {\n if (newServerTime) {\n this.config.systemClockOffset = newServerTime - Date.now();\n }\n },\n\n /**\n * @api private\n */\n isClockSkewed: function isClockSkewed(newServerTime) {\n if (newServerTime) {\n return Math.abs(this.getSkewCorrectedDate().getTime() - newServerTime) >= 300000;\n }\n },\n\n /**\n * @api private\n */\n throttledError: function throttledError(error) {\n // this logic varies between services\n if (error.statusCode === 429) return true;\n switch (error.code) {\n case 'ProvisionedThroughputExceededException':\n case 'Throttling':\n case 'ThrottlingException':\n case 'RequestLimitExceeded':\n case 'RequestThrottled':\n case 'RequestThrottledException':\n case 'TooManyRequestsException':\n case 'TransactionInProgressException': //dynamodb\n case 'EC2ThrottledException':\n return true;\n default:\n return false;\n }\n },\n\n /**\n * @api private\n */\n endpointFromTemplate: function endpointFromTemplate(endpoint) {\n if (typeof endpoint !== 'string') return endpoint;\n\n var e = endpoint;\n e = e.replace(/\\{service\\}/g, this.api.endpointPrefix);\n e = e.replace(/\\{region\\}/g, this.config.region);\n e = e.replace(/\\{scheme\\}/g, this.config.sslEnabled ? 'https' : 'http');\n return e;\n },\n\n /**\n * @api private\n */\n setEndpoint: function setEndpoint(endpoint) {\n this.endpoint = new AWS.Endpoint(endpoint, this.config);\n },\n\n /**\n * @api private\n */\n paginationConfig: function paginationConfig(operation, throwException) {\n var paginator = this.api.operations[operation].paginator;\n if (!paginator) {\n if (throwException) {\n var e = new Error();\n throw AWS.util.error(e, 'No pagination configuration for ' + operation);\n }\n return null;\n }\n\n return paginator;\n }\n});\n\nAWS.util.update(AWS.Service, {\n\n /**\n * Adds one method for each operation described in the api configuration\n *\n * @api private\n */\n defineMethods: function defineMethods(svc) {\n AWS.util.each(svc.prototype.api.operations, function iterator(method) {\n if (svc.prototype[method]) return;\n var operation = svc.prototype.api.operations[method];\n if (operation.authtype === 'none') {\n svc.prototype[method] = function (params, callback) {\n return this.makeUnauthenticatedRequest(method, params, callback);\n };\n } else {\n svc.prototype[method] = function (params, callback) {\n return this.makeRequest(method, params, callback);\n };\n }\n });\n },\n\n /**\n * Defines a new Service class using a service identifier and list of versions\n * including an optional set of features (functions) to apply to the class\n * prototype.\n *\n * @param serviceIdentifier [String] the identifier for the service\n * @param versions [Array] a list of versions that work with this\n * service\n * @param features [Object] an object to attach to the prototype\n * @return [Class] the service class defined by this function.\n */\n defineService: function defineService(serviceIdentifier, versions, features) {\n AWS.Service._serviceMap[serviceIdentifier] = true;\n if (!Array.isArray(versions)) {\n features = versions;\n versions = [];\n }\n\n var svc = inherit(AWS.Service, features || {});\n\n if (typeof serviceIdentifier === 'string') {\n AWS.Service.addVersions(svc, versions);\n\n var identifier = svc.serviceIdentifier || serviceIdentifier;\n svc.serviceIdentifier = identifier;\n } else { // defineService called with an API\n svc.prototype.api = serviceIdentifier;\n AWS.Service.defineMethods(svc);\n }\n AWS.SequentialExecutor.call(this.prototype);\n //util.clientSideMonitoring is only available in node\n if (!this.prototype.publisher && AWS.util.clientSideMonitoring) {\n var Publisher = AWS.util.clientSideMonitoring.Publisher;\n var configProvider = AWS.util.clientSideMonitoring.configProvider;\n var publisherConfig = configProvider();\n this.prototype.publisher = new Publisher(publisherConfig);\n if (publisherConfig.enabled) {\n //if csm is enabled in environment, SDK should send all metrics\n AWS.Service._clientSideMonitoring = true;\n }\n }\n AWS.SequentialExecutor.call(svc.prototype);\n AWS.Service.addDefaultMonitoringListeners(svc.prototype);\n return svc;\n },\n\n /**\n * @api private\n */\n addVersions: function addVersions(svc, versions) {\n if (!Array.isArray(versions)) versions = [versions];\n\n svc.services = svc.services || {};\n for (var i = 0; i < versions.length; i++) {\n if (svc.services[versions[i]] === undefined) {\n svc.services[versions[i]] = null;\n }\n }\n\n svc.apiVersions = Object.keys(svc.services).sort();\n },\n\n /**\n * @api private\n */\n defineServiceApi: function defineServiceApi(superclass, version, apiConfig) {\n var svc = inherit(superclass, {\n serviceIdentifier: superclass.serviceIdentifier\n });\n\n function setApi(api) {\n if (api.isApi) {\n svc.prototype.api = api;\n } else {\n svc.prototype.api = new Api(api, {\n serviceIdentifier: superclass.serviceIdentifier\n });\n }\n }\n\n if (typeof version === 'string') {\n if (apiConfig) {\n setApi(apiConfig);\n } else {\n try {\n setApi(AWS.apiLoader(superclass.serviceIdentifier, version));\n } catch (err) {\n throw AWS.util.error(err, {\n message: 'Could not find API configuration ' +\n superclass.serviceIdentifier + '-' + version\n });\n }\n }\n if (!Object.prototype.hasOwnProperty.call(superclass.services, version)) {\n superclass.apiVersions = superclass.apiVersions.concat(version).sort();\n }\n superclass.services[version] = svc;\n } else {\n setApi(version);\n }\n\n AWS.Service.defineMethods(svc);\n return svc;\n },\n\n /**\n * @api private\n */\n hasService: function(identifier) {\n return Object.prototype.hasOwnProperty.call(AWS.Service._serviceMap, identifier);\n },\n\n /**\n * @param attachOn attach default monitoring listeners to object\n *\n * Each monitoring event should be emitted from service client to service constructor prototype and then\n * to global service prototype like bubbling up. These default monitoring events listener will transfer\n * the monitoring events to the upper layer.\n * @api private\n */\n addDefaultMonitoringListeners: function addDefaultMonitoringListeners(attachOn) {\n attachOn.addNamedListener('MONITOR_EVENTS_BUBBLE', 'apiCallAttempt', function EVENTS_BUBBLE(event) {\n var baseClass = Object.getPrototypeOf(attachOn);\n if (baseClass._events) baseClass.emit('apiCallAttempt', [event]);\n });\n attachOn.addNamedListener('CALL_EVENTS_BUBBLE', 'apiCall', function CALL_EVENTS_BUBBLE(event) {\n var baseClass = Object.getPrototypeOf(attachOn);\n if (baseClass._events) baseClass.emit('apiCall', [event]);\n });\n },\n\n /**\n * @api private\n */\n _serviceMap: {}\n});\n\nAWS.util.mixin(AWS.Service, AWS.SequentialExecutor);\n\n/**\n * @api private\n */\nmodule.exports = AWS.Service;\n","var AWS = require('../core');\n\nAWS.util.update(AWS.APIGateway.prototype, {\n/**\n * Sets the Accept header to application/json.\n *\n * @api private\n */\n setAcceptHeader: function setAcceptHeader(req) {\n var httpRequest = req.httpRequest;\n if (!httpRequest.headers.Accept) {\n httpRequest.headers['Accept'] = 'application/json';\n }\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('build', this.setAcceptHeader);\n if (request.operation === 'getExport') {\n var params = request.params || {};\n if (params.exportType === 'swagger') {\n request.addListener('extractData', AWS.util.convertPayloadToString);\n }\n }\n }\n});\n\n","var AWS = require('../core');\n\n// pull in CloudFront signer\nrequire('../cloudfront/signer');\n\nAWS.util.update(AWS.CloudFront.prototype, {\n\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('extractData', AWS.util.hoistPayloadMember);\n }\n\n});\n","var AWS = require('../core');\nrequire('../dynamodb/document_client');\n\nAWS.util.update(AWS.DynamoDB.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n if (request.service.config.dynamoDbCrc32) {\n request.removeListener('extractData', AWS.EventListeners.Json.EXTRACT_DATA);\n request.addListener('extractData', this.checkCrc32);\n request.addListener('extractData', AWS.EventListeners.Json.EXTRACT_DATA);\n }\n },\n\n /**\n * @api private\n */\n checkCrc32: function checkCrc32(resp) {\n if (!resp.httpResponse.streaming && !resp.request.service.crc32IsValid(resp)) {\n resp.data = null;\n resp.error = AWS.util.error(new Error(), {\n code: 'CRC32CheckFailed',\n message: 'CRC32 integrity check failed',\n retryable: true\n });\n resp.request.haltHandlersOnError();\n throw (resp.error);\n }\n },\n\n /**\n * @api private\n */\n crc32IsValid: function crc32IsValid(resp) {\n var crc = resp.httpResponse.headers['x-amz-crc32'];\n if (!crc) return true; // no (valid) CRC32 header\n return parseInt(crc, 10) === AWS.util.crypto.crc32(resp.httpResponse.body);\n },\n\n /**\n * @api private\n */\n defaultRetryCount: 10,\n\n /**\n * @api private\n */\n retryDelays: function retryDelays(retryCount, err) {\n var retryDelayOptions = AWS.util.copy(this.config.retryDelayOptions);\n\n if (typeof retryDelayOptions.base !== 'number') {\n retryDelayOptions.base = 50; // default for dynamodb\n }\n var delay = AWS.util.calculateRetryDelay(retryCount, retryDelayOptions, err);\n return delay;\n }\n});\n","var AWS = require('../core');\n\nAWS.util.update(AWS.EC2.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.removeListener('extractError', AWS.EventListeners.Query.EXTRACT_ERROR);\n request.addListener('extractError', this.extractError);\n\n if (request.operation === 'copySnapshot') {\n request.onAsync('validate', this.buildCopySnapshotPresignedUrl);\n }\n },\n\n /**\n * @api private\n */\n buildCopySnapshotPresignedUrl: function buildCopySnapshotPresignedUrl(req, done) {\n if (req.params.PresignedUrl || req._subRequest) {\n return done();\n }\n\n req.params = AWS.util.copy(req.params);\n req.params.DestinationRegion = req.service.config.region;\n\n var config = AWS.util.copy(req.service.config);\n delete config.endpoint;\n config.region = req.params.SourceRegion;\n var svc = new req.service.constructor(config);\n var newReq = svc[req.operation](req.params);\n newReq._subRequest = true;\n newReq.presign(function(err, url) {\n if (err) done(err);\n else {\n req.params.PresignedUrl = url;\n done();\n }\n });\n },\n\n /**\n * @api private\n */\n extractError: function extractError(resp) {\n // EC2 nests the error code and message deeper than other AWS Query services.\n var httpResponse = resp.httpResponse;\n var data = new AWS.XML.Parser().parse(httpResponse.body.toString() || '');\n if (data.Errors) {\n resp.error = AWS.util.error(new Error(), {\n code: data.Errors.Error.Code,\n message: data.Errors.Error.Message\n });\n } else {\n resp.error = AWS.util.error(new Error(), {\n code: httpResponse.statusCode,\n message: null\n });\n }\n resp.error.requestId = data.RequestID || null;\n }\n});\n","var AWS = require('../core');\n\n/**\n * @api private\n */\nvar blobPayloadOutputOps = [\n 'deleteThingShadow',\n 'getThingShadow',\n 'updateThingShadow'\n];\n\n/**\n * Constructs a service interface object. Each API operation is exposed as a\n * function on service.\n *\n * ### Sending a Request Using IotData\n *\n * ```javascript\n * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'});\n * iotdata.getThingShadow(params, function (err, data) {\n * if (err) console.log(err, err.stack); // an error occurred\n * else console.log(data); // successful response\n * });\n * ```\n *\n * ### Locking the API Version\n *\n * In order to ensure that the IotData object uses this specific API,\n * you can construct the object by passing the `apiVersion` option to the\n * constructor:\n *\n * ```javascript\n * var iotdata = new AWS.IotData({\n * endpoint: 'my.host.tld',\n * apiVersion: '2015-05-28'\n * });\n * ```\n *\n * You can also set the API version globally in `AWS.config.apiVersions` using\n * the **iotdata** service identifier:\n *\n * ```javascript\n * AWS.config.apiVersions = {\n * iotdata: '2015-05-28',\n * // other service API versions\n * };\n *\n * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'});\n * ```\n *\n * @note You *must* provide an `endpoint` configuration parameter when\n * constructing this service. See {constructor} for more information.\n *\n * @!method constructor(options = {})\n * Constructs a service object. This object has one method for each\n * API operation.\n *\n * @example Constructing a IotData object\n * var iotdata = new AWS.IotData({endpoint: 'my.host.tld'});\n * @note You *must* provide an `endpoint` when constructing this service.\n * @option (see AWS.Config.constructor)\n *\n * @service iotdata\n * @version 2015-05-28\n */\nAWS.util.update(AWS.IotData.prototype, {\n /**\n * @api private\n */\n validateService: function validateService() {\n if (!this.config.endpoint || this.config.endpoint.indexOf('{') >= 0) {\n var msg = 'AWS.IotData requires an explicit ' +\n '`endpoint\\' configuration option.';\n throw AWS.util.error(new Error(),\n {name: 'InvalidEndpoint', message: msg});\n }\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('validateResponse', this.validateResponseBody);\n if (blobPayloadOutputOps.indexOf(request.operation) > -1) {\n request.addListener('extractData', AWS.util.convertPayloadToString);\n }\n },\n\n /**\n * @api private\n */\n validateResponseBody: function validateResponseBody(resp) {\n var body = resp.httpResponse.body.toString() || '{}';\n var bodyCheck = body.trim();\n if (!bodyCheck || bodyCheck.charAt(0) !== '{') {\n resp.httpResponse.body = '';\n }\n }\n\n});\n","var AWS = require('../core');\n\nAWS.util.update(AWS.Lambda.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n if (request.operation === 'invoke') {\n request.addListener('extractData', AWS.util.convertPayloadToString);\n }\n }\n});\n\n","var AWS = require('../core');\n\nAWS.util.update(AWS.MachineLearning.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n if (request.operation === 'predict') {\n request.addListener('build', this.buildEndpoint);\n }\n },\n\n /**\n * Updates request endpoint from PredictEndpoint\n * @api private\n */\n buildEndpoint: function buildEndpoint(request) {\n var url = request.params.PredictEndpoint;\n if (url) {\n request.httpRequest.endpoint = new AWS.Endpoint(url);\n }\n }\n\n});\n","require('../polly/presigner');\n","var AWS = require('../core');\nvar rdsutil = require('./rdsutil');\nrequire('../rds/signer');\n /**\n * @api private\n */\n var crossRegionOperations = ['copyDBSnapshot', 'createDBInstanceReadReplica', 'createDBCluster', 'copyDBClusterSnapshot', 'startDBInstanceAutomatedBackupsReplication'];\n\n AWS.util.update(AWS.RDS.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n rdsutil.setupRequestListeners(this, request, crossRegionOperations);\n },\n });\n","var AWS = require('../core');\n\nvar rdsutil = {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(service, request, crossRegionOperations) {\n if (crossRegionOperations.indexOf(request.operation) !== -1 &&\n request.params.SourceRegion) {\n request.params = AWS.util.copy(request.params);\n if (request.params.PreSignedUrl ||\n request.params.SourceRegion === service.config.region) {\n delete request.params.SourceRegion;\n } else {\n var doesParamValidation = !!service.config.paramValidation;\n // remove the validate parameters listener so we can re-add it after we build the URL\n if (doesParamValidation) {\n request.removeListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n }\n request.onAsync('validate', rdsutil.buildCrossRegionPresignedUrl);\n if (doesParamValidation) {\n request.addListener('validate', AWS.EventListeners.Core.VALIDATE_PARAMETERS);\n }\n }\n }\n },\n\n /**\n * @api private\n */\n buildCrossRegionPresignedUrl: function buildCrossRegionPresignedUrl(req, done) {\n var config = AWS.util.copy(req.service.config);\n config.region = req.params.SourceRegion;\n delete req.params.SourceRegion;\n delete config.endpoint;\n // relevant params for the operation will already be in req.params\n delete config.params;\n config.signatureVersion = 'v4';\n var destinationRegion = req.service.config.region;\n\n var svc = new req.service.constructor(config);\n var newReq = svc[req.operation](AWS.util.copy(req.params));\n newReq.on('build', function addDestinationRegionParam(request) {\n var httpRequest = request.httpRequest;\n httpRequest.params.DestinationRegion = destinationRegion;\n httpRequest.body = AWS.util.queryParamsToString(httpRequest.params);\n });\n newReq.presign(function(err, url) {\n if (err) done(err);\n else {\n req.params.PreSignedUrl = url;\n done();\n }\n });\n }\n};\n\n/**\n * @api private\n */\nmodule.exports = rdsutil;\n","var AWS = require('../core');\n\nAWS.util.update(AWS.Route53.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.on('build', this.sanitizeUrl);\n },\n\n /**\n * @api private\n */\n sanitizeUrl: function sanitizeUrl(request) {\n var path = request.httpRequest.path;\n request.httpRequest.path = path.replace(/\\/%2F\\w+%2F/, '/');\n },\n\n /**\n * @return [Boolean] whether the error can be retried\n * @api private\n */\n retryableError: function retryableError(error) {\n if (error.code === 'PriorRequestNotComplete' &&\n error.statusCode === 400) {\n return true;\n } else {\n var _super = AWS.Service.prototype.retryableError;\n return _super.call(this, error);\n }\n }\n});\n","var AWS = require('../core');\nvar v4Credentials = require('../signers/v4_credentials');\nvar resolveRegionalEndpointsFlag = require('../config_regional_endpoint');\nvar s3util = require('./s3util');\nvar regionUtil = require('../region_config');\n\n// Pull in managed upload extension\nrequire('../s3/managed_upload');\n\n/**\n * @api private\n */\nvar operationsWith200StatusCodeError = {\n 'completeMultipartUpload': true,\n 'copyObject': true,\n 'uploadPartCopy': true\n};\n\n/**\n * @api private\n */\n var regionRedirectErrorCodes = [\n 'AuthorizationHeaderMalformed', // non-head operations on virtual-hosted global bucket endpoints\n 'BadRequest', // head operations on virtual-hosted global bucket endpoints\n 'PermanentRedirect', // non-head operations on path-style or regional endpoints\n 301 // head operations on path-style or regional endpoints\n ];\n\nvar OBJECT_LAMBDA_SERVICE = 's3-object-lambda';\n\nAWS.util.update(AWS.S3.prototype, {\n /**\n * @api private\n */\n getSignatureVersion: function getSignatureVersion(request) {\n var defaultApiVersion = this.api.signatureVersion;\n var userDefinedVersion = this._originalConfig ? this._originalConfig.signatureVersion : null;\n var regionDefinedVersion = this.config.signatureVersion;\n var isPresigned = request ? request.isPresigned() : false;\n /*\n 1) User defined version specified:\n a) always return user defined version\n 2) No user defined version specified:\n a) If not using presigned urls, default to V4\n b) If using presigned urls, default to lowest version the region supports\n */\n if (userDefinedVersion) {\n userDefinedVersion = userDefinedVersion === 'v2' ? 's3' : userDefinedVersion;\n return userDefinedVersion;\n }\n if (isPresigned !== true) {\n defaultApiVersion = 'v4';\n } else if (regionDefinedVersion) {\n defaultApiVersion = regionDefinedVersion;\n }\n return defaultApiVersion;\n },\n\n /**\n * @api private\n */\n getSigningName: function getSigningName(req) {\n if (req && req.operation === 'writeGetObjectResponse') {\n return OBJECT_LAMBDA_SERVICE;\n }\n\n var _super = AWS.Service.prototype.getSigningName;\n return (req && req._parsedArn && req._parsedArn.service)\n ? req._parsedArn.service\n : _super.call(this);\n },\n\n /**\n * @api private\n */\n getSignerClass: function getSignerClass(request) {\n var signatureVersion = this.getSignatureVersion(request);\n return AWS.Signers.RequestSigner.getVersion(signatureVersion);\n },\n\n /**\n * @api private\n */\n validateService: function validateService() {\n var msg;\n var messages = [];\n\n // default to us-east-1 when no region is provided\n if (!this.config.region) this.config.region = 'us-east-1';\n\n if (!this.config.endpoint && this.config.s3BucketEndpoint) {\n messages.push('An endpoint must be provided when configuring ' +\n '`s3BucketEndpoint` to true.');\n }\n if (messages.length === 1) {\n msg = messages[0];\n } else if (messages.length > 1) {\n msg = 'Multiple configuration errors:\\n' + messages.join('\\n');\n }\n if (msg) {\n throw AWS.util.error(new Error(),\n {name: 'InvalidEndpoint', message: msg});\n }\n },\n\n /**\n * @api private\n */\n shouldDisableBodySigning: function shouldDisableBodySigning(request) {\n var signerClass = this.getSignerClass();\n if (this.config.s3DisableBodySigning === true && signerClass === AWS.Signers.V4\n && request.httpRequest.endpoint.protocol === 'https:') {\n return true;\n }\n return false;\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n var prependListener = true;\n request.addListener('validate', this.validateScheme);\n request.addListener('validate', this.validateBucketName, prependListener);\n request.addListener('validate', this.optInUsEast1RegionalEndpoint, prependListener);\n\n request.removeListener('validate',\n AWS.EventListeners.Core.VALIDATE_REGION);\n request.addListener('build', this.addContentType);\n request.addListener('build', this.computeContentMd5);\n request.addListener('build', this.computeSseCustomerKeyMd5);\n request.addListener('build', this.populateURI);\n request.addListener('afterBuild', this.addExpect100Continue);\n request.addListener('extractError', this.extractError);\n request.addListener('extractData', AWS.util.hoistPayloadMember);\n request.addListener('extractData', this.extractData);\n request.addListener('extractData', this.extractErrorFrom200Response);\n request.addListener('beforePresign', this.prepareSignedUrl);\n if (this.shouldDisableBodySigning(request)) {\n request.removeListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256);\n request.addListener('afterBuild', this.disableBodySigning);\n }\n //deal with ARNs supplied to Bucket\n if (request.operation !== 'createBucket' && s3util.isArnInParam(request, 'Bucket')) {\n // avoid duplicate parsing in the future\n request._parsedArn = AWS.util.ARN.parse(request.params.Bucket);\n\n request.removeListener('validate', this.validateBucketName);\n request.removeListener('build', this.populateURI);\n if (request._parsedArn.service === 's3') {\n request.addListener('validate', s3util.validateS3AccessPointArn);\n request.addListener('validate', this.validateArnResourceType);\n request.addListener('validate', this.validateArnRegion);\n } else if (request._parsedArn.service === 's3-outposts') {\n request.addListener('validate', s3util.validateOutpostsAccessPointArn);\n request.addListener('validate', s3util.validateOutpostsArn);\n request.addListener('validate', s3util.validateArnRegion);\n }\n request.addListener('validate', s3util.validateArnAccount);\n request.addListener('validate', s3util.validateArnService);\n request.addListener('build', this.populateUriFromAccessPointArn);\n request.addListener('build', s3util.validatePopulateUriFromArn);\n return;\n }\n //listeners regarding region inference\n request.addListener('validate', this.validateBucketEndpoint);\n request.addListener('validate', this.correctBucketRegionFromCache);\n request.onAsync('extractError', this.requestBucketRegion);\n if (AWS.util.isBrowser()) {\n request.onAsync('retry', this.reqRegionForNetworkingError);\n }\n },\n\n /**\n * @api private\n */\n validateScheme: function(req) {\n var params = req.params,\n scheme = req.httpRequest.endpoint.protocol,\n sensitive = params.SSECustomerKey || params.CopySourceSSECustomerKey;\n if (sensitive && scheme !== 'https:') {\n var msg = 'Cannot send SSE keys over HTTP. Set \\'sslEnabled\\'' +\n 'to \\'true\\' in your configuration';\n throw AWS.util.error(new Error(),\n { code: 'ConfigError', message: msg });\n }\n },\n\n /**\n * @api private\n */\n validateBucketEndpoint: function(req) {\n if (!req.params.Bucket && req.service.config.s3BucketEndpoint) {\n var msg = 'Cannot send requests to root API with `s3BucketEndpoint` set.';\n throw AWS.util.error(new Error(),\n { code: 'ConfigError', message: msg });\n }\n },\n\n /**\n * @api private\n */\n validateArnRegion: function validateArnRegion(req) {\n s3util.validateArnRegion(req, { allowFipsEndpoint: true });\n },\n\n /**\n * Validate resource-type supplied in S3 ARN\n */\n validateArnResourceType: function validateArnResourceType(req) {\n var resource = req._parsedArn.resource;\n\n if (\n resource.indexOf('accesspoint:') !== 0 &&\n resource.indexOf('accesspoint/') !== 0\n ) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'ARN resource should begin with \\'accesspoint/\\''\n });\n }\n },\n\n /**\n * @api private\n */\n validateBucketName: function validateBucketName(req) {\n var service = req.service;\n var signatureVersion = service.getSignatureVersion(req);\n var bucket = req.params && req.params.Bucket;\n var key = req.params && req.params.Key;\n var slashIndex = bucket && bucket.indexOf('/');\n if (bucket && slashIndex >= 0) {\n if (typeof key === 'string' && slashIndex > 0) {\n req.params = AWS.util.copy(req.params);\n // Need to include trailing slash to match sigv2 behavior\n var prefix = bucket.substr(slashIndex + 1) || '';\n req.params.Key = prefix + '/' + key;\n req.params.Bucket = bucket.substr(0, slashIndex);\n } else if (signatureVersion === 'v4') {\n var msg = 'Bucket names cannot contain forward slashes. Bucket: ' + bucket;\n throw AWS.util.error(new Error(),\n { code: 'InvalidBucket', message: msg });\n }\n }\n },\n\n /**\n * @api private\n */\n isValidAccelerateOperation: function isValidAccelerateOperation(operation) {\n var invalidOperations = [\n 'createBucket',\n 'deleteBucket',\n 'listBuckets'\n ];\n return invalidOperations.indexOf(operation) === -1;\n },\n\n /**\n * When us-east-1 region endpoint configuration is set, in stead of sending request to\n * global endpoint(e.g. 's3.amazonaws.com'), we will send request to\n * 's3.us-east-1.amazonaws.com'.\n * @api private\n */\n optInUsEast1RegionalEndpoint: function optInUsEast1RegionalEndpoint(req) {\n var service = req.service;\n var config = service.config;\n config.s3UsEast1RegionalEndpoint = resolveRegionalEndpointsFlag(service._originalConfig, {\n env: 'AWS_S3_US_EAST_1_REGIONAL_ENDPOINT',\n sharedConfig: 's3_us_east_1_regional_endpoint',\n clientConfig: 's3UsEast1RegionalEndpoint'\n });\n if (\n !(service._originalConfig || {}).endpoint &&\n req.httpRequest.region === 'us-east-1' &&\n config.s3UsEast1RegionalEndpoint === 'regional' &&\n req.httpRequest.endpoint.hostname.indexOf('s3.amazonaws.com') >= 0\n ) {\n var insertPoint = config.endpoint.indexOf('.amazonaws.com');\n regionalEndpoint = config.endpoint.substring(0, insertPoint) +\n '.us-east-1' + config.endpoint.substring(insertPoint);\n req.httpRequest.updateEndpoint(regionalEndpoint);\n }\n },\n\n /**\n * S3 prefers dns-compatible bucket names to be moved from the uri path\n * to the hostname as a sub-domain. This is not possible, even for dns-compat\n * buckets when using SSL and the bucket name contains a dot ('.'). The\n * ssl wildcard certificate is only 1-level deep.\n *\n * @api private\n */\n populateURI: function populateURI(req) {\n var httpRequest = req.httpRequest;\n var b = req.params.Bucket;\n var service = req.service;\n var endpoint = httpRequest.endpoint;\n if (b) {\n if (!service.pathStyleBucketName(b)) {\n if (service.config.useAccelerateEndpoint && service.isValidAccelerateOperation(req.operation)) {\n if (service.config.useDualstackEndpoint) {\n endpoint.hostname = b + '.s3-accelerate.dualstack.amazonaws.com';\n } else {\n endpoint.hostname = b + '.s3-accelerate.amazonaws.com';\n }\n } else if (!service.config.s3BucketEndpoint) {\n endpoint.hostname =\n b + '.' + endpoint.hostname;\n }\n\n var port = endpoint.port;\n if (port !== 80 && port !== 443) {\n endpoint.host = endpoint.hostname + ':' +\n endpoint.port;\n } else {\n endpoint.host = endpoint.hostname;\n }\n\n httpRequest.virtualHostedBucket = b; // needed for signing the request\n service.removeVirtualHostedBucketFromPath(req);\n }\n }\n },\n\n /**\n * Takes the bucket name out of the path if bucket is virtual-hosted\n *\n * @api private\n */\n removeVirtualHostedBucketFromPath: function removeVirtualHostedBucketFromPath(req) {\n var httpRequest = req.httpRequest;\n var bucket = httpRequest.virtualHostedBucket;\n if (bucket && httpRequest.path) {\n if (req.params && req.params.Key) {\n var encodedS3Key = '/' + AWS.util.uriEscapePath(req.params.Key);\n if (httpRequest.path.indexOf(encodedS3Key) === 0 && (httpRequest.path.length === encodedS3Key.length || httpRequest.path[encodedS3Key.length] === '?')) {\n //path only contains key or path contains only key and querystring\n return;\n }\n }\n httpRequest.path = httpRequest.path.replace(new RegExp('/' + bucket), '');\n if (httpRequest.path[0] !== '/') {\n httpRequest.path = '/' + httpRequest.path;\n }\n }\n },\n\n /**\n * When user supply an access point ARN in the Bucket parameter, we need to\n * populate the URI according to the ARN.\n */\n populateUriFromAccessPointArn: function populateUriFromAccessPointArn(req) {\n var accessPointArn = req._parsedArn;\n\n var isOutpostArn = accessPointArn.service === 's3-outposts';\n var isObjectLambdaArn = accessPointArn.service === 's3-object-lambda';\n\n var outpostsSuffix = isOutpostArn ? '.' + accessPointArn.outpostId: '';\n var serviceName = isOutpostArn ? 's3-outposts': 's3-accesspoint';\n var fipsSuffix = !isOutpostArn && req.service.config.useFipsEndpoint ? '-fips': '';\n var dualStackSuffix = !isOutpostArn &&\n req.service.config.useDualstackEndpoint ? '.dualstack' : '';\n\n var endpoint = req.httpRequest.endpoint;\n var dnsSuffix = regionUtil.getEndpointSuffix(accessPointArn.region);\n var useArnRegion = req.service.config.s3UseArnRegion;\n\n endpoint.hostname = [\n accessPointArn.accessPoint + '-' + accessPointArn.accountId + outpostsSuffix,\n serviceName + fipsSuffix + dualStackSuffix,\n useArnRegion ? accessPointArn.region : req.service.config.region,\n dnsSuffix\n ].join('.');\n\n if (isObjectLambdaArn) {\n // should be in the format: \"accesspoint/${accesspointName}\"\n var serviceName = 's3-object-lambda';\n var accesspointName = accessPointArn.resource.split('/')[1];\n var fipsSuffix = req.service.config.useFipsEndpoint ? '-fips': '';\n endpoint.hostname = [\n accesspointName + '-' + accessPointArn.accountId,\n serviceName + fipsSuffix,\n useArnRegion ? accessPointArn.region : req.service.config.region,\n dnsSuffix\n ].join('.');\n }\n endpoint.host = endpoint.hostname;\n var encodedArn = AWS.util.uriEscape(req.params.Bucket);\n var path = req.httpRequest.path;\n //remove the Bucket value from path\n req.httpRequest.path = path.replace(new RegExp('/' + encodedArn), '');\n if (req.httpRequest.path[0] !== '/') {\n req.httpRequest.path = '/' + req.httpRequest.path;\n }\n req.httpRequest.region = accessPointArn.region; //region used to sign\n },\n\n /**\n * Adds Expect: 100-continue header if payload is greater-or-equal 1MB\n * @api private\n */\n addExpect100Continue: function addExpect100Continue(req) {\n var len = req.httpRequest.headers['Content-Length'];\n if (AWS.util.isNode() && (len >= 1024 * 1024 || req.params.Body instanceof AWS.util.stream.Stream)) {\n req.httpRequest.headers['Expect'] = '100-continue';\n }\n },\n\n /**\n * Adds a default content type if none is supplied.\n *\n * @api private\n */\n addContentType: function addContentType(req) {\n var httpRequest = req.httpRequest;\n if (httpRequest.method === 'GET' || httpRequest.method === 'HEAD') {\n // Content-Type is not set in GET/HEAD requests\n delete httpRequest.headers['Content-Type'];\n return;\n }\n\n if (!httpRequest.headers['Content-Type']) { // always have a Content-Type\n httpRequest.headers['Content-Type'] = 'application/octet-stream';\n }\n\n var contentType = httpRequest.headers['Content-Type'];\n if (AWS.util.isBrowser()) {\n if (typeof httpRequest.body === 'string' && !contentType.match(/;\\s*charset=/)) {\n var charset = '; charset=UTF-8';\n httpRequest.headers['Content-Type'] += charset;\n } else {\n var replaceFn = function(_, prefix, charsetName) {\n return prefix + charsetName.toUpperCase();\n };\n\n httpRequest.headers['Content-Type'] =\n contentType.replace(/(;\\s*charset=)(.+)$/, replaceFn);\n }\n }\n },\n\n /**\n * Checks whether checksums should be computed for the request if it's not\n * already set by {AWS.EventListeners.Core.COMPUTE_CHECKSUM}. It depends on\n * whether {AWS.Config.computeChecksums} is set.\n *\n * @param req [AWS.Request] the request to check against\n * @return [Boolean] whether to compute checksums for a request.\n * @api private\n */\n willComputeChecksums: function willComputeChecksums(req) {\n var rules = req.service.api.operations[req.operation].input.members;\n var body = req.httpRequest.body;\n var needsContentMD5 = req.service.config.computeChecksums &&\n rules.ContentMD5 &&\n !req.params.ContentMD5 &&\n body &&\n (AWS.util.Buffer.isBuffer(req.httpRequest.body) || typeof req.httpRequest.body === 'string');\n\n // Sha256 signing disabled, and not a presigned url\n if (needsContentMD5 && req.service.shouldDisableBodySigning(req) && !req.isPresigned()) {\n return true;\n }\n\n // SigV2 and presign, for backwards compatibility purpose.\n if (needsContentMD5 && this.getSignatureVersion(req) === 's3' && req.isPresigned()) {\n return true;\n }\n\n return false;\n },\n\n /**\n * A listener that computes the Content-MD5 and sets it in the header.\n * This listener is to support S3-specific features like\n * s3DisableBodySigning and SigV2 presign. Content MD5 logic for SigV4 is\n * handled in AWS.EventListeners.Core.COMPUTE_CHECKSUM\n *\n * @api private\n */\n computeContentMd5: function computeContentMd5(req) {\n if (req.service.willComputeChecksums(req)) {\n var md5 = AWS.util.crypto.md5(req.httpRequest.body, 'base64');\n req.httpRequest.headers['Content-MD5'] = md5;\n }\n },\n\n /**\n * @api private\n */\n computeSseCustomerKeyMd5: function computeSseCustomerKeyMd5(req) {\n var keys = {\n SSECustomerKey: 'x-amz-server-side-encryption-customer-key-MD5',\n CopySourceSSECustomerKey: 'x-amz-copy-source-server-side-encryption-customer-key-MD5'\n };\n AWS.util.each(keys, function(key, header) {\n if (req.params[key]) {\n var value = AWS.util.crypto.md5(req.params[key], 'base64');\n req.httpRequest.headers[header] = value;\n }\n });\n },\n\n /**\n * Returns true if the bucket name should be left in the URI path for\n * a request to S3. This function takes into account the current\n * endpoint protocol (e.g. http or https).\n *\n * @api private\n */\n pathStyleBucketName: function pathStyleBucketName(bucketName) {\n // user can force path style requests via the configuration\n if (this.config.s3ForcePathStyle) return true;\n if (this.config.s3BucketEndpoint) return false;\n\n if (s3util.dnsCompatibleBucketName(bucketName)) {\n return (this.config.sslEnabled && bucketName.match(/\\./)) ? true : false;\n } else {\n return true; // not dns compatible names must always use path style\n }\n },\n\n /**\n * For COPY operations, some can be error even with status code 200.\n * SDK treats the response as exception when response body indicates\n * an exception or body is empty.\n *\n * @api private\n */\n extractErrorFrom200Response: function extractErrorFrom200Response(resp) {\n if (!operationsWith200StatusCodeError[resp.request.operation]) return;\n var httpResponse = resp.httpResponse;\n if (httpResponse.body && httpResponse.body.toString().match('')) {\n // Response body with '...' indicates an exception.\n // Get S3 client object. In ManagedUpload, this.service refers to\n // S3 client object.\n resp.data = null;\n var service = this.service ? this.service : this;\n service.extractError(resp);\n throw resp.error;\n } else if (!httpResponse.body || !httpResponse.body.toString().match(/<[\\w_]/)) {\n // When body is empty or incomplete, S3 might stop the request on detecting client\n // side aborting the request.\n resp.data = null;\n throw AWS.util.error(new Error(), {\n code: 'InternalError',\n message: 'S3 aborted request'\n });\n }\n },\n\n /**\n * @return [Boolean] whether the error can be retried\n * @api private\n */\n retryableError: function retryableError(error, request) {\n if (operationsWith200StatusCodeError[request.operation] &&\n error.statusCode === 200) {\n return true;\n } else if (request._requestRegionForBucket &&\n request.service.bucketRegionCache[request._requestRegionForBucket]) {\n return false;\n } else if (error && error.code === 'RequestTimeout') {\n return true;\n } else if (error &&\n regionRedirectErrorCodes.indexOf(error.code) != -1 &&\n error.region && error.region != request.httpRequest.region) {\n request.httpRequest.region = error.region;\n if (error.statusCode === 301) {\n request.service.updateReqBucketRegion(request);\n }\n return true;\n } else {\n var _super = AWS.Service.prototype.retryableError;\n return _super.call(this, error, request);\n }\n },\n\n /**\n * Updates httpRequest with region. If region is not provided, then\n * the httpRequest will be updated based on httpRequest.region\n *\n * @api private\n */\n updateReqBucketRegion: function updateReqBucketRegion(request, region) {\n var httpRequest = request.httpRequest;\n if (typeof region === 'string' && region.length) {\n httpRequest.region = region;\n }\n if (!httpRequest.endpoint.host.match(/s3(?!-accelerate).*\\.amazonaws\\.com$/)) {\n return;\n }\n var service = request.service;\n var s3Config = service.config;\n var s3BucketEndpoint = s3Config.s3BucketEndpoint;\n if (s3BucketEndpoint) {\n delete s3Config.s3BucketEndpoint;\n }\n var newConfig = AWS.util.copy(s3Config);\n delete newConfig.endpoint;\n newConfig.region = httpRequest.region;\n\n httpRequest.endpoint = (new AWS.S3(newConfig)).endpoint;\n service.populateURI(request);\n s3Config.s3BucketEndpoint = s3BucketEndpoint;\n httpRequest.headers.Host = httpRequest.endpoint.host;\n\n if (request._asm.currentState === 'validate') {\n request.removeListener('build', service.populateURI);\n request.addListener('build', service.removeVirtualHostedBucketFromPath);\n }\n },\n\n /**\n * Provides a specialized parser for getBucketLocation -- all other\n * operations are parsed by the super class.\n *\n * @api private\n */\n extractData: function extractData(resp) {\n var req = resp.request;\n if (req.operation === 'getBucketLocation') {\n var match = resp.httpResponse.body.toString().match(/>(.+)<\\/Location/);\n delete resp.data['_'];\n if (match) {\n resp.data.LocationConstraint = match[1];\n } else {\n resp.data.LocationConstraint = '';\n }\n }\n var bucket = req.params.Bucket || null;\n if (req.operation === 'deleteBucket' && typeof bucket === 'string' && !resp.error) {\n req.service.clearBucketRegionCache(bucket);\n } else {\n var headers = resp.httpResponse.headers || {};\n var region = headers['x-amz-bucket-region'] || null;\n if (!region && req.operation === 'createBucket' && !resp.error) {\n var createBucketConfiguration = req.params.CreateBucketConfiguration;\n if (!createBucketConfiguration) {\n region = 'us-east-1';\n } else if (createBucketConfiguration.LocationConstraint === 'EU') {\n region = 'eu-west-1';\n } else {\n region = createBucketConfiguration.LocationConstraint;\n }\n }\n if (region) {\n if (bucket && region !== req.service.bucketRegionCache[bucket]) {\n req.service.bucketRegionCache[bucket] = region;\n }\n }\n }\n req.service.extractRequestIds(resp);\n },\n\n /**\n * Extracts an error object from the http response.\n *\n * @api private\n */\n extractError: function extractError(resp) {\n var codes = {\n 304: 'NotModified',\n 403: 'Forbidden',\n 400: 'BadRequest',\n 404: 'NotFound'\n };\n\n var req = resp.request;\n var code = resp.httpResponse.statusCode;\n var body = resp.httpResponse.body || '';\n\n var headers = resp.httpResponse.headers || {};\n var region = headers['x-amz-bucket-region'] || null;\n var bucket = req.params.Bucket || null;\n var bucketRegionCache = req.service.bucketRegionCache;\n if (region && bucket && region !== bucketRegionCache[bucket]) {\n bucketRegionCache[bucket] = region;\n }\n\n var cachedRegion;\n if (codes[code] && body.length === 0) {\n if (bucket && !region) {\n cachedRegion = bucketRegionCache[bucket] || null;\n if (cachedRegion !== req.httpRequest.region) {\n region = cachedRegion;\n }\n }\n resp.error = AWS.util.error(new Error(), {\n code: codes[code],\n message: null,\n region: region\n });\n } else {\n var data = new AWS.XML.Parser().parse(body.toString());\n\n if (data.Region && !region) {\n region = data.Region;\n if (bucket && region !== bucketRegionCache[bucket]) {\n bucketRegionCache[bucket] = region;\n }\n } else if (bucket && !region && !data.Region) {\n cachedRegion = bucketRegionCache[bucket] || null;\n if (cachedRegion !== req.httpRequest.region) {\n region = cachedRegion;\n }\n }\n\n resp.error = AWS.util.error(new Error(), {\n code: data.Code || code,\n message: data.Message || null,\n region: region\n });\n }\n req.service.extractRequestIds(resp);\n },\n\n /**\n * If region was not obtained synchronously, then send async request\n * to get bucket region for errors resulting from wrong region.\n *\n * @api private\n */\n requestBucketRegion: function requestBucketRegion(resp, done) {\n var error = resp.error;\n var req = resp.request;\n var bucket = req.params.Bucket || null;\n\n if (!error || !bucket || error.region || req.operation === 'listObjects' ||\n (AWS.util.isNode() && req.operation === 'headBucket') ||\n (error.statusCode === 400 && req.operation !== 'headObject') ||\n regionRedirectErrorCodes.indexOf(error.code) === -1) {\n return done();\n }\n var reqOperation = AWS.util.isNode() ? 'headBucket' : 'listObjects';\n var reqParams = {Bucket: bucket};\n if (reqOperation === 'listObjects') reqParams.MaxKeys = 0;\n var regionReq = req.service[reqOperation](reqParams);\n regionReq._requestRegionForBucket = bucket;\n regionReq.send(function() {\n var region = req.service.bucketRegionCache[bucket] || null;\n error.region = region;\n done();\n });\n },\n\n /**\n * For browser only. If NetworkingError received, will attempt to obtain\n * the bucket region.\n *\n * @api private\n */\n reqRegionForNetworkingError: function reqRegionForNetworkingError(resp, done) {\n if (!AWS.util.isBrowser()) {\n return done();\n }\n var error = resp.error;\n var request = resp.request;\n var bucket = request.params.Bucket;\n if (!error || error.code !== 'NetworkingError' || !bucket ||\n request.httpRequest.region === 'us-east-1') {\n return done();\n }\n var service = request.service;\n var bucketRegionCache = service.bucketRegionCache;\n var cachedRegion = bucketRegionCache[bucket] || null;\n\n if (cachedRegion && cachedRegion !== request.httpRequest.region) {\n service.updateReqBucketRegion(request, cachedRegion);\n done();\n } else if (!s3util.dnsCompatibleBucketName(bucket)) {\n service.updateReqBucketRegion(request, 'us-east-1');\n if (bucketRegionCache[bucket] !== 'us-east-1') {\n bucketRegionCache[bucket] = 'us-east-1';\n }\n done();\n } else if (request.httpRequest.virtualHostedBucket) {\n var getRegionReq = service.listObjects({Bucket: bucket, MaxKeys: 0});\n service.updateReqBucketRegion(getRegionReq, 'us-east-1');\n getRegionReq._requestRegionForBucket = bucket;\n\n getRegionReq.send(function() {\n var region = service.bucketRegionCache[bucket] || null;\n if (region && region !== request.httpRequest.region) {\n service.updateReqBucketRegion(request, region);\n }\n done();\n });\n } else {\n // DNS-compatible path-style\n // (s3ForcePathStyle or bucket name with dot over https)\n // Cannot obtain region information for this case\n done();\n }\n },\n\n /**\n * Cache for bucket region.\n *\n * @api private\n */\n bucketRegionCache: {},\n\n /**\n * Clears bucket region cache.\n *\n * @api private\n */\n clearBucketRegionCache: function(buckets) {\n var bucketRegionCache = this.bucketRegionCache;\n if (!buckets) {\n buckets = Object.keys(bucketRegionCache);\n } else if (typeof buckets === 'string') {\n buckets = [buckets];\n }\n for (var i = 0; i < buckets.length; i++) {\n delete bucketRegionCache[buckets[i]];\n }\n return bucketRegionCache;\n },\n\n /**\n * Corrects request region if bucket's cached region is different\n *\n * @api private\n */\n correctBucketRegionFromCache: function correctBucketRegionFromCache(req) {\n var bucket = req.params.Bucket || null;\n if (bucket) {\n var service = req.service;\n var requestRegion = req.httpRequest.region;\n var cachedRegion = service.bucketRegionCache[bucket];\n if (cachedRegion && cachedRegion !== requestRegion) {\n service.updateReqBucketRegion(req, cachedRegion);\n }\n }\n },\n\n /**\n * Extracts S3 specific request ids from the http response.\n *\n * @api private\n */\n extractRequestIds: function extractRequestIds(resp) {\n var extendedRequestId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-id-2'] : null;\n var cfId = resp.httpResponse.headers ? resp.httpResponse.headers['x-amz-cf-id'] : null;\n resp.extendedRequestId = extendedRequestId;\n resp.cfId = cfId;\n\n if (resp.error) {\n resp.error.requestId = resp.requestId || null;\n resp.error.extendedRequestId = extendedRequestId;\n resp.error.cfId = cfId;\n }\n },\n\n /**\n * Get a pre-signed URL for a given operation name.\n *\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n * @note Not all operation parameters are supported when using pre-signed\n * URLs. Certain parameters, such as `SSECustomerKey`, `ACL`, `Expires`,\n * `ContentLength`, or `Tagging` must be provided as headers when sending a\n * request. If you are using pre-signed URLs to upload from a browser and\n * need to use these fields, see {createPresignedPost}.\n * @note The default signer allows altering the request by adding corresponding\n * headers to set some parameters (e.g. Range) and these added parameters\n * won't be signed. You must use signatureVersion v4 to to include these\n * parameters in the signed portion of the URL and enforce exact matching\n * between headers and signed params in the URL.\n * @note This operation cannot be used with a promise. See note above regarding\n * asynchronous credentials and use with a callback.\n * @param operation [String] the name of the operation to call\n * @param params [map] parameters to pass to the operation. See the given\n * operation for the expected operation parameters. In addition, you can\n * also pass the \"Expires\" parameter to inform S3 how long the URL should\n * work for.\n * @option params Expires [Integer] (900) the number of seconds to expire\n * the pre-signed URL operation in. Defaults to 15 minutes.\n * @param callback [Function] if a callback is provided, this function will\n * pass the URL as the second parameter (after the error parameter) to\n * the callback function.\n * @return [String] if called synchronously (with no callback), returns the\n * signed URL.\n * @return [null] nothing is returned if a callback is provided.\n * @example Pre-signing a getObject operation (synchronously)\n * var params = {Bucket: 'bucket', Key: 'key'};\n * var url = s3.getSignedUrl('getObject', params);\n * console.log('The URL is', url);\n * @example Pre-signing a putObject (asynchronously)\n * var params = {Bucket: 'bucket', Key: 'key'};\n * s3.getSignedUrl('putObject', params, function (err, url) {\n * console.log('The URL is', url);\n * });\n * @example Pre-signing a putObject operation with a specific payload\n * var params = {Bucket: 'bucket', Key: 'key', Body: 'body'};\n * var url = s3.getSignedUrl('putObject', params);\n * console.log('The URL is', url);\n * @example Passing in a 1-minute expiry time for a pre-signed URL\n * var params = {Bucket: 'bucket', Key: 'key', Expires: 60};\n * var url = s3.getSignedUrl('getObject', params);\n * console.log('The URL is', url); // expires in 60 seconds\n */\n getSignedUrl: function getSignedUrl(operation, params, callback) {\n params = AWS.util.copy(params || {});\n var expires = params.Expires || 900;\n\n if (typeof expires !== 'number') {\n throw AWS.util.error(new Error(),\n { code: 'InvalidParameterException', message: 'The expiration must be a number, received ' + typeof expires });\n }\n\n delete params.Expires; // we can't validate this\n var request = this.makeRequest(operation, params);\n\n if (callback) {\n AWS.util.defer(function() {\n request.presign(expires, callback);\n });\n } else {\n return request.presign(expires, callback);\n }\n },\n\n /**\n * @!method getSignedUrlPromise()\n * Returns a 'thenable' promise that will be resolved with a pre-signed URL\n * for a given operation name.\n *\n * Two callbacks can be provided to the `then` method on the returned promise.\n * The first callback will be called if the promise is fulfilled, and the second\n * callback will be called if the promise is rejected.\n * @note Not all operation parameters are supported when using pre-signed\n * URLs. Certain parameters, such as `SSECustomerKey`, `ACL`, `Expires`,\n * `ContentLength`, or `Tagging` must be provided as headers when sending a\n * request. If you are using pre-signed URLs to upload from a browser and\n * need to use these fields, see {createPresignedPost}.\n * @param operation [String] the name of the operation to call\n * @param params [map] parameters to pass to the operation. See the given\n * operation for the expected operation parameters. In addition, you can\n * also pass the \"Expires\" parameter to inform S3 how long the URL should\n * work for.\n * @option params Expires [Integer] (900) the number of seconds to expire\n * the pre-signed URL operation in. Defaults to 15 minutes.\n * @callback fulfilledCallback function(url)\n * Called if the promise is fulfilled.\n * @param url [String] the signed url\n * @callback rejectedCallback function(err)\n * Called if the promise is rejected.\n * @param err [Error] if an error occurred, this value will be filled\n * @return [Promise] A promise that represents the state of the `refresh` call.\n * @example Pre-signing a getObject operation\n * var params = {Bucket: 'bucket', Key: 'key'};\n * var promise = s3.getSignedUrlPromise('getObject', params);\n * promise.then(function(url) {\n * console.log('The URL is', url);\n * }, function(err) { ... });\n * @example Pre-signing a putObject operation with a specific payload\n * var params = {Bucket: 'bucket', Key: 'key', Body: 'body'};\n * var promise = s3.getSignedUrlPromise('putObject', params);\n * promise.then(function(url) {\n * console.log('The URL is', url);\n * }, function(err) { ... });\n * @example Passing in a 1-minute expiry time for a pre-signed URL\n * var params = {Bucket: 'bucket', Key: 'key', Expires: 60};\n * var promise = s3.getSignedUrlPromise('getObject', params);\n * promise.then(function(url) {\n * console.log('The URL is', url);\n * }, function(err) { ... });\n */\n\n /**\n * Get a pre-signed POST policy to support uploading to S3 directly from an\n * HTML form.\n *\n * @param params [map]\n * @option params Bucket [String] The bucket to which the post should be\n * uploaded\n * @option params Expires [Integer] (3600) The number of seconds for which\n * the presigned policy should be valid.\n * @option params Conditions [Array] An array of conditions that must be met\n * for the presigned policy to allow the\n * upload. This can include required tags,\n * the accepted range for content lengths,\n * etc.\n * @see http://docs.aws.amazon.com/AmazonS3/latest/API/sigv4-HTTPPOSTConstructPolicy.html\n * @option params Fields [map] Fields to include in the form. All\n * values passed in as fields will be\n * signed as exact match conditions.\n * @param callback [Function]\n *\n * @note All fields passed in when creating presigned post data will be signed\n * as exact match conditions. Any fields that will be interpolated by S3\n * must be added to the fields hash after signing, and an appropriate\n * condition for such fields must be explicitly added to the Conditions\n * array passed to this function before signing.\n *\n * @example Presiging post data with a known key\n * var params = {\n * Bucket: 'bucket',\n * Fields: {\n * key: 'key'\n * }\n * };\n * s3.createPresignedPost(params, function(err, data) {\n * if (err) {\n * console.error('Presigning post data encountered an error', err);\n * } else {\n * console.log('The post data is', data);\n * }\n * });\n *\n * @example Presigning post data with an interpolated key\n * var params = {\n * Bucket: 'bucket',\n * Conditions: [\n * ['starts-with', '$key', 'path/to/uploads/']\n * ]\n * };\n * s3.createPresignedPost(params, function(err, data) {\n * if (err) {\n * console.error('Presigning post data encountered an error', err);\n * } else {\n * data.Fields.key = 'path/to/uploads/${filename}';\n * console.log('The post data is', data);\n * }\n * });\n *\n * @note You must ensure that you have static or previously resolved\n * credentials if you call this method synchronously (with no callback),\n * otherwise it may not properly sign the request. If you cannot guarantee\n * this (you are using an asynchronous credential provider, i.e., EC2\n * IAM roles), you should always call this method with an asynchronous\n * callback.\n *\n * @return [map] If called synchronously (with no callback), returns a hash\n * with the url to set as the form action and a hash of fields\n * to include in the form.\n * @return [null] Nothing is returned if a callback is provided.\n *\n * @callback callback function (err, data)\n * @param err [Error] the error object returned from the policy signer\n * @param data [map] The data necessary to construct an HTML form\n * @param data.url [String] The URL to use as the action of the form\n * @param data.fields [map] A hash of fields that must be included in the\n * form for the upload to succeed. This hash will\n * include the signed POST policy, your access key\n * ID and security token (if present), etc. These\n * may be safely included as input elements of type\n * 'hidden.'\n */\n createPresignedPost: function createPresignedPost(params, callback) {\n if (typeof params === 'function' && callback === undefined) {\n callback = params;\n params = null;\n }\n\n params = AWS.util.copy(params || {});\n var boundParams = this.config.params || {};\n var bucket = params.Bucket || boundParams.Bucket,\n self = this,\n config = this.config,\n endpoint = AWS.util.copy(this.endpoint);\n if (!config.s3BucketEndpoint) {\n endpoint.pathname = '/' + bucket;\n }\n\n function finalizePost() {\n return {\n url: AWS.util.urlFormat(endpoint),\n fields: self.preparePostFields(\n config.credentials,\n config.region,\n bucket,\n params.Fields,\n params.Conditions,\n params.Expires\n )\n };\n }\n\n if (callback) {\n config.getCredentials(function (err) {\n if (err) {\n callback(err);\n } else {\n try {\n callback(null, finalizePost());\n } catch (err) {\n callback(err);\n }\n }\n });\n } else {\n return finalizePost();\n }\n },\n\n /**\n * @api private\n */\n preparePostFields: function preparePostFields(\n credentials,\n region,\n bucket,\n fields,\n conditions,\n expiresInSeconds\n ) {\n var now = this.getSkewCorrectedDate();\n if (!credentials || !region || !bucket) {\n throw new Error('Unable to create a POST object policy without a bucket,'\n + ' region, and credentials');\n }\n fields = AWS.util.copy(fields || {});\n conditions = (conditions || []).slice(0);\n expiresInSeconds = expiresInSeconds || 3600;\n\n var signingDate = AWS.util.date.iso8601(now).replace(/[:\\-]|\\.\\d{3}/g, '');\n var shortDate = signingDate.substr(0, 8);\n var scope = v4Credentials.createScope(shortDate, region, 's3');\n var credential = credentials.accessKeyId + '/' + scope;\n\n fields['bucket'] = bucket;\n fields['X-Amz-Algorithm'] = 'AWS4-HMAC-SHA256';\n fields['X-Amz-Credential'] = credential;\n fields['X-Amz-Date'] = signingDate;\n if (credentials.sessionToken) {\n fields['X-Amz-Security-Token'] = credentials.sessionToken;\n }\n for (var field in fields) {\n if (fields.hasOwnProperty(field)) {\n var condition = {};\n condition[field] = fields[field];\n conditions.push(condition);\n }\n }\n\n fields.Policy = this.preparePostPolicy(\n new Date(now.valueOf() + expiresInSeconds * 1000),\n conditions\n );\n fields['X-Amz-Signature'] = AWS.util.crypto.hmac(\n v4Credentials.getSigningKey(credentials, shortDate, region, 's3', true),\n fields.Policy,\n 'hex'\n );\n\n return fields;\n },\n\n /**\n * @api private\n */\n preparePostPolicy: function preparePostPolicy(expiration, conditions) {\n return AWS.util.base64.encode(JSON.stringify({\n expiration: AWS.util.date.iso8601(expiration),\n conditions: conditions\n }));\n },\n\n /**\n * @api private\n */\n prepareSignedUrl: function prepareSignedUrl(request) {\n request.addListener('validate', request.service.noPresignedContentLength);\n request.removeListener('build', request.service.addContentType);\n if (!request.params.Body) {\n // no Content-MD5/SHA-256 if body is not provided\n request.removeListener('build', request.service.computeContentMd5);\n } else {\n request.addListener('afterBuild', AWS.EventListeners.Core.COMPUTE_SHA256);\n }\n },\n\n /**\n * @api private\n * @param request\n */\n disableBodySigning: function disableBodySigning(request) {\n var headers = request.httpRequest.headers;\n // Add the header to anything that isn't a presigned url, unless that presigned url had a body defined\n if (!Object.prototype.hasOwnProperty.call(headers, 'presigned-expires')) {\n headers['X-Amz-Content-Sha256'] = 'UNSIGNED-PAYLOAD';\n }\n },\n\n /**\n * @api private\n */\n noPresignedContentLength: function noPresignedContentLength(request) {\n if (request.params.ContentLength !== undefined) {\n throw AWS.util.error(new Error(), {code: 'UnexpectedParameter',\n message: 'ContentLength is not supported in pre-signed URLs.'});\n }\n },\n\n createBucket: function createBucket(params, callback) {\n // When creating a bucket *outside* the classic region, the location\n // constraint must be set for the bucket and it must match the endpoint.\n // This chunk of code will set the location constraint param based\n // on the region (when possible), but it will not override a passed-in\n // location constraint.\n if (typeof params === 'function' || !params) {\n callback = callback || params;\n params = {};\n }\n var hostname = this.endpoint.hostname;\n // copy params so that appending keys does not unintentioinallly\n // mutate params object argument passed in by user\n var copiedParams = AWS.util.copy(params);\n\n if (hostname !== this.api.globalEndpoint && !params.CreateBucketConfiguration) {\n copiedParams.CreateBucketConfiguration = { LocationConstraint: this.config.region };\n }\n return this.makeRequest('createBucket', copiedParams, callback);\n },\n\n writeGetObjectResponse: function writeGetObjectResponse(params, callback) {\n\n var request = this.makeRequest('writeGetObjectResponse', AWS.util.copy(params), callback);\n var hostname = this.endpoint.hostname;\n if (hostname.indexOf(this.config.region) !== -1) {\n // hostname specifies a region already\n hostname = hostname.replace('s3.', OBJECT_LAMBDA_SERVICE + '.');\n } else {\n // Hostname doesn't have a region.\n // Object Lambda requires an explicit region.\n hostname = hostname.replace('s3.', OBJECT_LAMBDA_SERVICE + '.' + this.config.region + '.');\n }\n\n request.httpRequest.endpoint = new AWS.Endpoint(hostname, this.config);\n return request;\n },\n\n /**\n * @see AWS.S3.ManagedUpload\n * @overload upload(params = {}, [options], [callback])\n * Uploads an arbitrarily sized buffer, blob, or stream, using intelligent\n * concurrent handling of parts if the payload is large enough. You can\n * configure the concurrent queue size by setting `options`. Note that this\n * is the only operation for which the SDK can retry requests with stream\n * bodies.\n *\n * @param (see AWS.S3.putObject)\n * @option (see AWS.S3.ManagedUpload.constructor)\n * @return [AWS.S3.ManagedUpload] the managed upload object that can call\n * `send()` or track progress.\n * @example Uploading a stream object\n * var params = {Bucket: 'bucket', Key: 'key', Body: stream};\n * s3.upload(params, function(err, data) {\n * console.log(err, data);\n * });\n * @example Uploading a stream with concurrency of 1 and partSize of 10mb\n * var params = {Bucket: 'bucket', Key: 'key', Body: stream};\n * var options = {partSize: 10 * 1024 * 1024, queueSize: 1};\n * s3.upload(params, options, function(err, data) {\n * console.log(err, data);\n * });\n * @callback callback function(err, data)\n * @param err [Error] an error or null if no error occurred.\n * @param data [map] The response data from the successful upload:\n * @param data.Location [String] the URL of the uploaded object\n * @param data.ETag [String] the ETag of the uploaded object\n * @param data.Bucket [String] the bucket to which the object was uploaded\n * @param data.Key [String] the key to which the object was uploaded\n */\n upload: function upload(params, options, callback) {\n if (typeof options === 'function' && callback === undefined) {\n callback = options;\n options = null;\n }\n\n options = options || {};\n options = AWS.util.merge(options || {}, {service: this, params: params});\n\n var uploader = new AWS.S3.ManagedUpload(options);\n if (typeof callback === 'function') uploader.send(callback);\n return uploader;\n }\n});\n\n/**\n * @api private\n */\nAWS.S3.addPromisesToClass = function addPromisesToClass(PromiseDependency) {\n this.prototype.getSignedUrlPromise = AWS.util.promisifyMethod('getSignedUrl', PromiseDependency);\n};\n\n/**\n * @api private\n */\nAWS.S3.deletePromisesFromClass = function deletePromisesFromClass() {\n delete this.prototype.getSignedUrlPromise;\n};\n\nAWS.util.addPromises(AWS.S3);\n","var AWS = require('../core');\nvar regionUtil = require('../region_config');\n\nvar s3util = {\n /**\n * @api private\n */\n isArnInParam: function isArnInParam(req, paramName) {\n var inputShape = (req.service.api.operations[req.operation] || {}).input || {};\n var inputMembers = inputShape.members || {};\n if (!req.params[paramName] || !inputMembers[paramName]) return false;\n return AWS.util.ARN.validate(req.params[paramName]);\n },\n\n /**\n * Validate service component from ARN supplied in Bucket parameter\n */\n validateArnService: function validateArnService(req) {\n var parsedArn = req._parsedArn;\n\n if (parsedArn.service !== 's3'\n && parsedArn.service !== 's3-outposts'\n && parsedArn.service !== 's3-object-lambda') {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'expect \\'s3\\' or \\'s3-outposts\\' or \\'s3-object-lambda\\' in ARN service component'\n });\n }\n },\n\n /**\n * Validate account ID from ARN supplied in Bucket parameter is a valid account\n */\n validateArnAccount: function validateArnAccount(req) {\n var parsedArn = req._parsedArn;\n\n if (!/[0-9]{12}/.exec(parsedArn.accountId)) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'ARN accountID does not match regex \"[0-9]{12}\"'\n });\n }\n },\n\n /**\n * Validate ARN supplied in Bucket parameter is a valid access point ARN\n */\n validateS3AccessPointArn: function validateS3AccessPointArn(req) {\n var parsedArn = req._parsedArn;\n\n //can be ':' or '/'\n var delimiter = parsedArn.resource['accesspoint'.length];\n\n if (parsedArn.resource.split(delimiter).length !== 2) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Access Point ARN should have one resource accesspoint/{accesspointName}'\n });\n }\n\n var accessPoint = parsedArn.resource.split(delimiter)[1];\n var accessPointPrefix = accessPoint + '-' + parsedArn.accountId;\n if (!s3util.dnsCompatibleBucketName(accessPointPrefix) || accessPointPrefix.match(/\\./)) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Access point resource in ARN is not DNS compatible. Got ' + accessPoint\n });\n }\n\n //set parsed valid access point\n req._parsedArn.accessPoint = accessPoint;\n },\n\n /**\n * Validate Outposts ARN supplied in Bucket parameter is a valid outposts ARN\n */\n validateOutpostsArn: function validateOutpostsArn(req) {\n var parsedArn = req._parsedArn;\n\n if (\n parsedArn.resource.indexOf('outpost:') !== 0 &&\n parsedArn.resource.indexOf('outpost/') !== 0\n ) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'ARN resource should begin with \\'outpost/\\''\n });\n }\n\n //can be ':' or '/'\n var delimiter = parsedArn.resource['outpost'.length];\n var outpostId = parsedArn.resource.split(delimiter)[1];\n var dnsHostRegex = new RegExp(/^([a-zA-Z0-9]|[a-zA-Z0-9][a-zA-Z0-9-]{0,61}[a-zA-Z0-9])$/);\n if (!dnsHostRegex.test(outpostId)) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Outpost resource in ARN is not DNS compatible. Got ' + outpostId\n });\n }\n req._parsedArn.outpostId = outpostId;\n },\n\n /**\n * Validate Outposts ARN supplied in Bucket parameter is a valid outposts ARN\n */\n validateOutpostsAccessPointArn: function validateOutpostsAccessPointArn(req) {\n var parsedArn = req._parsedArn;\n\n //can be ':' or '/'\n var delimiter = parsedArn.resource['outpost'.length];\n\n if (parsedArn.resource.split(delimiter).length !== 4) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Outposts ARN should have two resources outpost/{outpostId}/accesspoint/{accesspointName}'\n });\n }\n\n var accessPoint = parsedArn.resource.split(delimiter)[3];\n var accessPointPrefix = accessPoint + '-' + parsedArn.accountId;\n if (!s3util.dnsCompatibleBucketName(accessPointPrefix) || accessPointPrefix.match(/\\./)) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: 'Access point resource in ARN is not DNS compatible. Got ' + accessPoint\n });\n }\n\n //set parsed valid access point\n req._parsedArn.accessPoint = accessPoint;\n },\n\n /**\n * Validate region field in ARN supplied in Bucket parameter is a valid region\n */\n validateArnRegion: function validateArnRegion(req, options) {\n if (options === undefined) {\n options = {};\n }\n\n var useArnRegion = s3util.loadUseArnRegionConfig(req);\n var regionFromArn = req._parsedArn.region;\n var clientRegion = req.service.config.region;\n var useFipsEndpoint = req.service.config.useFipsEndpoint;\n var allowFipsEndpoint = options.allowFipsEndpoint || false;\n\n if (!regionFromArn) {\n var message = 'ARN region is empty';\n if (req._parsedArn.service === 's3') {\n message = message + '\\nYou may want to use multi-regional ARN. The feature is not supported in current SDK. ' +\n 'You should consider switching to V3(https://github.com/aws/aws-sdk-js-v3).';\n }\n throw AWS.util.error(new Error(), {\n code: 'InvalidARN',\n message: message\n });\n }\n\n if (useFipsEndpoint && !allowFipsEndpoint) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'ARN endpoint is not compatible with FIPS region'\n });\n }\n\n if (regionFromArn.indexOf('fips') >= 0) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'FIPS region not allowed in ARN'\n });\n }\n\n if (!useArnRegion && regionFromArn !== clientRegion) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Configured region conflicts with access point region'\n });\n } else if (\n useArnRegion &&\n regionUtil.getEndpointSuffix(regionFromArn) !== regionUtil.getEndpointSuffix(clientRegion)\n ) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Configured region and access point region not in same partition'\n });\n }\n\n if (req.service.config.useAccelerateEndpoint) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'useAccelerateEndpoint config is not supported with access point ARN'\n });\n }\n\n if (req._parsedArn.service === 's3-outposts' && req.service.config.useDualstackEndpoint) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Dualstack is not supported with outposts access point ARN'\n });\n }\n },\n\n loadUseArnRegionConfig: function loadUseArnRegionConfig(req) {\n var envName = 'AWS_S3_USE_ARN_REGION';\n var configName = 's3_use_arn_region';\n var useArnRegion = true;\n var originalConfig = req.service._originalConfig || {};\n if (req.service.config.s3UseArnRegion !== undefined) {\n return req.service.config.s3UseArnRegion;\n } else if (originalConfig.s3UseArnRegion !== undefined) {\n useArnRegion = originalConfig.s3UseArnRegion === true;\n } else if (AWS.util.isNode()) {\n //load from environmental variable AWS_USE_ARN_REGION\n if (process.env[envName]) {\n var value = process.env[envName].trim().toLowerCase();\n if (['false', 'true'].indexOf(value) < 0) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: envName + ' only accepts true or false. Got ' + process.env[envName],\n retryable: false\n });\n }\n useArnRegion = value === 'true';\n } else { //load from shared config property use_arn_region\n var profiles = {};\n var profile = {};\n try {\n profiles = AWS.util.getProfilesFromSharedConfig(AWS.util.iniLoader);\n profile = profiles[process.env.AWS_PROFILE || AWS.util.defaultProfile];\n } catch (e) {}\n if (profile[configName]) {\n if (['false', 'true'].indexOf(profile[configName].trim().toLowerCase()) < 0) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: configName + ' only accepts true or false. Got ' + profile[configName],\n retryable: false\n });\n }\n useArnRegion = profile[configName].trim().toLowerCase() === 'true';\n }\n }\n }\n req.service.config.s3UseArnRegion = useArnRegion;\n return useArnRegion;\n },\n\n /**\n * Validations before URI can be populated\n */\n validatePopulateUriFromArn: function validatePopulateUriFromArn(req) {\n if (req.service._originalConfig && req.service._originalConfig.endpoint) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Custom endpoint is not compatible with access point ARN'\n });\n }\n\n if (req.service.config.s3ForcePathStyle) {\n throw AWS.util.error(new Error(), {\n code: 'InvalidConfiguration',\n message: 'Cannot construct path-style endpoint with access point'\n });\n }\n },\n\n /**\n * Returns true if the bucket name is DNS compatible. Buckets created\n * outside of the classic region MUST be DNS compatible.\n *\n * @api private\n */\n dnsCompatibleBucketName: function dnsCompatibleBucketName(bucketName) {\n var b = bucketName;\n var domain = new RegExp(/^[a-z0-9][a-z0-9\\.\\-]{1,61}[a-z0-9]$/);\n var ipAddress = new RegExp(/(\\d+\\.){3}\\d+/);\n var dots = new RegExp(/\\.\\./);\n return (b.match(domain) && !b.match(ipAddress) && !b.match(dots)) ? true : false;\n },\n};\n\n/**\n * @api private\n */\nmodule.exports = s3util;\n","var AWS = require('../core');\n\nAWS.util.update(AWS.SQS.prototype, {\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('build', this.buildEndpoint);\n\n if (request.service.config.computeChecksums) {\n if (request.operation === 'sendMessage') {\n request.addListener('extractData', this.verifySendMessageChecksum);\n } else if (request.operation === 'sendMessageBatch') {\n request.addListener('extractData', this.verifySendMessageBatchChecksum);\n } else if (request.operation === 'receiveMessage') {\n request.addListener('extractData', this.verifyReceiveMessageChecksum);\n }\n }\n },\n\n /**\n * @api private\n */\n verifySendMessageChecksum: function verifySendMessageChecksum(response) {\n if (!response.data) return;\n\n var md5 = response.data.MD5OfMessageBody;\n var body = this.params.MessageBody;\n var calculatedMd5 = this.service.calculateChecksum(body);\n if (calculatedMd5 !== md5) {\n var msg = 'Got \"' + response.data.MD5OfMessageBody +\n '\", expecting \"' + calculatedMd5 + '\".';\n this.service.throwInvalidChecksumError(response,\n [response.data.MessageId], msg);\n }\n },\n\n /**\n * @api private\n */\n verifySendMessageBatchChecksum: function verifySendMessageBatchChecksum(response) {\n if (!response.data) return;\n\n var service = this.service;\n var entries = {};\n var errors = [];\n var messageIds = [];\n AWS.util.arrayEach(response.data.Successful, function (entry) {\n entries[entry.Id] = entry;\n });\n AWS.util.arrayEach(this.params.Entries, function (entry) {\n if (entries[entry.Id]) {\n var md5 = entries[entry.Id].MD5OfMessageBody;\n var body = entry.MessageBody;\n if (!service.isChecksumValid(md5, body)) {\n errors.push(entry.Id);\n messageIds.push(entries[entry.Id].MessageId);\n }\n }\n });\n\n if (errors.length > 0) {\n service.throwInvalidChecksumError(response, messageIds,\n 'Invalid messages: ' + errors.join(', '));\n }\n },\n\n /**\n * @api private\n */\n verifyReceiveMessageChecksum: function verifyReceiveMessageChecksum(response) {\n if (!response.data) return;\n\n var service = this.service;\n var messageIds = [];\n AWS.util.arrayEach(response.data.Messages, function(message) {\n var md5 = message.MD5OfBody;\n var body = message.Body;\n if (!service.isChecksumValid(md5, body)) {\n messageIds.push(message.MessageId);\n }\n });\n\n if (messageIds.length > 0) {\n service.throwInvalidChecksumError(response, messageIds,\n 'Invalid messages: ' + messageIds.join(', '));\n }\n },\n\n /**\n * @api private\n */\n throwInvalidChecksumError: function throwInvalidChecksumError(response, ids, message) {\n response.error = AWS.util.error(new Error(), {\n retryable: true,\n code: 'InvalidChecksum',\n messageIds: ids,\n message: response.request.operation +\n ' returned an invalid MD5 response. ' + message\n });\n },\n\n /**\n * @api private\n */\n isChecksumValid: function isChecksumValid(checksum, data) {\n return this.calculateChecksum(data) === checksum;\n },\n\n /**\n * @api private\n */\n calculateChecksum: function calculateChecksum(data) {\n return AWS.util.crypto.md5(data, 'hex');\n },\n\n /**\n * @api private\n */\n buildEndpoint: function buildEndpoint(request) {\n var url = request.httpRequest.params.QueueUrl;\n if (url) {\n request.httpRequest.endpoint = new AWS.Endpoint(url);\n\n // signature version 4 requires the region name to be set,\n // sqs queue urls contain the region name\n var matches = request.httpRequest.endpoint.host.match(/^sqs\\.(.+?)\\./);\n if (matches) request.httpRequest.region = matches[1];\n }\n }\n});\n","var AWS = require('../core');\nvar resolveRegionalEndpointsFlag = require('../config_regional_endpoint');\nvar ENV_REGIONAL_ENDPOINT_ENABLED = 'AWS_STS_REGIONAL_ENDPOINTS';\nvar CONFIG_REGIONAL_ENDPOINT_ENABLED = 'sts_regional_endpoints';\n\nAWS.util.update(AWS.STS.prototype, {\n /**\n * @overload credentialsFrom(data, credentials = null)\n * Creates a credentials object from STS response data containing\n * credentials information. Useful for quickly setting AWS credentials.\n *\n * @note This is a low-level utility function. If you want to load temporary\n * credentials into your process for subsequent requests to AWS resources,\n * you should use {AWS.TemporaryCredentials} instead.\n * @param data [map] data retrieved from a call to {getFederatedToken},\n * {getSessionToken}, {assumeRole}, or {assumeRoleWithWebIdentity}.\n * @param credentials [AWS.Credentials] an optional credentials object to\n * fill instead of creating a new object. Useful when modifying an\n * existing credentials object from a refresh call.\n * @return [AWS.TemporaryCredentials] the set of temporary credentials\n * loaded from a raw STS operation response.\n * @example Using credentialsFrom to load global AWS credentials\n * var sts = new AWS.STS();\n * sts.getSessionToken(function (err, data) {\n * if (err) console.log(\"Error getting credentials\");\n * else {\n * AWS.config.credentials = sts.credentialsFrom(data);\n * }\n * });\n * @see AWS.TemporaryCredentials\n */\n credentialsFrom: function credentialsFrom(data, credentials) {\n if (!data) return null;\n if (!credentials) credentials = new AWS.TemporaryCredentials();\n credentials.expired = false;\n credentials.accessKeyId = data.Credentials.AccessKeyId;\n credentials.secretAccessKey = data.Credentials.SecretAccessKey;\n credentials.sessionToken = data.Credentials.SessionToken;\n credentials.expireTime = data.Credentials.Expiration;\n return credentials;\n },\n\n assumeRoleWithWebIdentity: function assumeRoleWithWebIdentity(params, callback) {\n return this.makeUnauthenticatedRequest('assumeRoleWithWebIdentity', params, callback);\n },\n\n assumeRoleWithSAML: function assumeRoleWithSAML(params, callback) {\n return this.makeUnauthenticatedRequest('assumeRoleWithSAML', params, callback);\n },\n\n /**\n * @api private\n */\n setupRequestListeners: function setupRequestListeners(request) {\n request.addListener('validate', this.optInRegionalEndpoint, true);\n },\n\n /**\n * @api private\n */\n optInRegionalEndpoint: function optInRegionalEndpoint(req) {\n var service = req.service;\n var config = service.config;\n config.stsRegionalEndpoints = resolveRegionalEndpointsFlag(service._originalConfig, {\n env: ENV_REGIONAL_ENDPOINT_ENABLED,\n sharedConfig: CONFIG_REGIONAL_ENDPOINT_ENABLED,\n clientConfig: 'stsRegionalEndpoints'\n });\n if (\n config.stsRegionalEndpoints === 'regional' &&\n service.isGlobalEndpoint\n ) {\n //client will throw if region is not supplied; request will be signed with specified region\n if (!config.region) {\n throw AWS.util.error(new Error(),\n {code: 'ConfigError', message: 'Missing region in config'});\n }\n var insertPoint = config.endpoint.indexOf('.amazonaws.com');\n var regionalEndpoint = config.endpoint.substring(0, insertPoint) +\n '.' + config.region + config.endpoint.substring(insertPoint);\n req.httpRequest.updateEndpoint(regionalEndpoint);\n req.httpRequest.region = config.region;\n }\n }\n\n});\n","var AWS = require('../core');\n\n/**\n * @api private\n */\nAWS.Signers.Bearer = AWS.util.inherit(AWS.Signers.RequestSigner, {\n constructor: function Bearer(request) {\n AWS.Signers.RequestSigner.call(this, request);\n },\n\n addAuthorization: function addAuthorization(token) {\n this.request.headers['Authorization'] = 'Bearer ' + token.token;\n }\n});\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nvar expiresHeader = 'presigned-expires';\n\n/**\n * @api private\n */\nfunction signedUrlBuilder(request) {\n var expires = request.httpRequest.headers[expiresHeader];\n var signerClass = request.service.getSignerClass(request);\n\n delete request.httpRequest.headers['User-Agent'];\n delete request.httpRequest.headers['X-Amz-User-Agent'];\n\n if (signerClass === AWS.Signers.V4) {\n if (expires > 604800) { // one week expiry is invalid\n var message = 'Presigning does not support expiry time greater ' +\n 'than a week with SigV4 signing.';\n throw AWS.util.error(new Error(), {\n code: 'InvalidExpiryTime', message: message, retryable: false\n });\n }\n request.httpRequest.headers[expiresHeader] = expires;\n } else if (signerClass === AWS.Signers.S3) {\n var now = request.service ? request.service.getSkewCorrectedDate() : AWS.util.date.getDate();\n request.httpRequest.headers[expiresHeader] = parseInt(\n AWS.util.date.unixTimestamp(now) + expires, 10).toString();\n } else {\n throw AWS.util.error(new Error(), {\n message: 'Presigning only supports S3 or SigV4 signing.',\n code: 'UnsupportedSigner', retryable: false\n });\n }\n}\n\n/**\n * @api private\n */\nfunction signedUrlSigner(request) {\n var endpoint = request.httpRequest.endpoint;\n var parsedUrl = AWS.util.urlParse(request.httpRequest.path);\n var queryParams = {};\n\n if (parsedUrl.search) {\n queryParams = AWS.util.queryStringParse(parsedUrl.search.substr(1));\n }\n\n var auth = request.httpRequest.headers['Authorization'].split(' ');\n if (auth[0] === 'AWS') {\n auth = auth[1].split(':');\n queryParams['Signature'] = auth.pop();\n queryParams['AWSAccessKeyId'] = auth.join(':');\n\n AWS.util.each(request.httpRequest.headers, function (key, value) {\n if (key === expiresHeader) key = 'Expires';\n if (key.indexOf('x-amz-meta-') === 0) {\n // Delete existing, potentially not normalized key\n delete queryParams[key];\n key = key.toLowerCase();\n }\n queryParams[key] = value;\n });\n delete request.httpRequest.headers[expiresHeader];\n delete queryParams['Authorization'];\n delete queryParams['Host'];\n } else if (auth[0] === 'AWS4-HMAC-SHA256') { // SigV4 signing\n auth.shift();\n var rest = auth.join(' ');\n var signature = rest.match(/Signature=(.*?)(?:,|\\s|\\r?\\n|$)/)[1];\n queryParams['X-Amz-Signature'] = signature;\n delete queryParams['Expires'];\n }\n\n // build URL\n endpoint.pathname = parsedUrl.pathname;\n endpoint.search = AWS.util.queryParamsToString(queryParams);\n}\n\n/**\n * @api private\n */\nAWS.Signers.Presign = inherit({\n /**\n * @api private\n */\n sign: function sign(request, expireTime, callback) {\n request.httpRequest.headers[expiresHeader] = expireTime || 3600;\n request.on('build', signedUrlBuilder);\n request.on('sign', signedUrlSigner);\n request.removeListener('afterBuild',\n AWS.EventListeners.Core.SET_CONTENT_LENGTH);\n request.removeListener('afterBuild',\n AWS.EventListeners.Core.COMPUTE_SHA256);\n\n request.emit('beforePresign', [request]);\n\n if (callback) {\n request.build(function() {\n if (this.response.error) callback(this.response.error);\n else {\n callback(null, AWS.util.urlFormat(request.httpRequest.endpoint));\n }\n });\n } else {\n request.build();\n if (request.response.error) throw request.response.error;\n return AWS.util.urlFormat(request.httpRequest.endpoint);\n }\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.Presign;\n","var AWS = require('../core');\n\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.RequestSigner = inherit({\n constructor: function RequestSigner(request) {\n this.request = request;\n },\n\n setServiceClientId: function setServiceClientId(id) {\n this.serviceClientId = id;\n },\n\n getServiceClientId: function getServiceClientId() {\n return this.serviceClientId;\n }\n});\n\nAWS.Signers.RequestSigner.getVersion = function getVersion(version) {\n switch (version) {\n case 'v2': return AWS.Signers.V2;\n case 'v3': return AWS.Signers.V3;\n case 's3v4': return AWS.Signers.V4;\n case 'v4': return AWS.Signers.V4;\n case 's3': return AWS.Signers.S3;\n case 'v3https': return AWS.Signers.V3Https;\n case 'bearer': return AWS.Signers.Bearer;\n }\n throw new Error('Unknown signing version ' + version);\n};\n\nrequire('./v2');\nrequire('./v3');\nrequire('./v3https');\nrequire('./v4');\nrequire('./s3');\nrequire('./presign');\nrequire('./bearer');\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.S3 = inherit(AWS.Signers.RequestSigner, {\n /**\n * When building the stringToSign, these sub resource params should be\n * part of the canonical resource string with their NON-decoded values\n */\n subResources: {\n 'acl': 1,\n 'accelerate': 1,\n 'analytics': 1,\n 'cors': 1,\n 'lifecycle': 1,\n 'delete': 1,\n 'inventory': 1,\n 'location': 1,\n 'logging': 1,\n 'metrics': 1,\n 'notification': 1,\n 'partNumber': 1,\n 'policy': 1,\n 'requestPayment': 1,\n 'replication': 1,\n 'restore': 1,\n 'tagging': 1,\n 'torrent': 1,\n 'uploadId': 1,\n 'uploads': 1,\n 'versionId': 1,\n 'versioning': 1,\n 'versions': 1,\n 'website': 1\n },\n\n // when building the stringToSign, these querystring params should be\n // part of the canonical resource string with their NON-encoded values\n responseHeaders: {\n 'response-content-type': 1,\n 'response-content-language': 1,\n 'response-expires': 1,\n 'response-cache-control': 1,\n 'response-content-disposition': 1,\n 'response-content-encoding': 1\n },\n\n addAuthorization: function addAuthorization(credentials, date) {\n if (!this.request.headers['presigned-expires']) {\n this.request.headers['X-Amz-Date'] = AWS.util.date.rfc822(date);\n }\n\n if (credentials.sessionToken) {\n // presigned URLs require this header to be lowercased\n this.request.headers['x-amz-security-token'] = credentials.sessionToken;\n }\n\n var signature = this.sign(credentials.secretAccessKey, this.stringToSign());\n var auth = 'AWS ' + credentials.accessKeyId + ':' + signature;\n\n this.request.headers['Authorization'] = auth;\n },\n\n stringToSign: function stringToSign() {\n var r = this.request;\n\n var parts = [];\n parts.push(r.method);\n parts.push(r.headers['Content-MD5'] || '');\n parts.push(r.headers['Content-Type'] || '');\n\n // This is the \"Date\" header, but we use X-Amz-Date.\n // The S3 signing mechanism requires us to pass an empty\n // string for this Date header regardless.\n parts.push(r.headers['presigned-expires'] || '');\n\n var headers = this.canonicalizedAmzHeaders();\n if (headers) parts.push(headers);\n parts.push(this.canonicalizedResource());\n\n return parts.join('\\n');\n\n },\n\n canonicalizedAmzHeaders: function canonicalizedAmzHeaders() {\n\n var amzHeaders = [];\n\n AWS.util.each(this.request.headers, function (name) {\n if (name.match(/^x-amz-/i))\n amzHeaders.push(name);\n });\n\n amzHeaders.sort(function (a, b) {\n return a.toLowerCase() < b.toLowerCase() ? -1 : 1;\n });\n\n var parts = [];\n AWS.util.arrayEach.call(this, amzHeaders, function (name) {\n parts.push(name.toLowerCase() + ':' + String(this.request.headers[name]));\n });\n\n return parts.join('\\n');\n\n },\n\n canonicalizedResource: function canonicalizedResource() {\n\n var r = this.request;\n\n var parts = r.path.split('?');\n var path = parts[0];\n var querystring = parts[1];\n\n var resource = '';\n\n if (r.virtualHostedBucket)\n resource += '/' + r.virtualHostedBucket;\n\n resource += path;\n\n if (querystring) {\n\n // collect a list of sub resources and query params that need to be signed\n var resources = [];\n\n AWS.util.arrayEach.call(this, querystring.split('&'), function (param) {\n var name = param.split('=')[0];\n var value = param.split('=')[1];\n if (this.subResources[name] || this.responseHeaders[name]) {\n var subresource = { name: name };\n if (value !== undefined) {\n if (this.subResources[name]) {\n subresource.value = value;\n } else {\n subresource.value = decodeURIComponent(value);\n }\n }\n resources.push(subresource);\n }\n });\n\n resources.sort(function (a, b) { return a.name < b.name ? -1 : 1; });\n\n if (resources.length) {\n\n querystring = [];\n AWS.util.arrayEach(resources, function (res) {\n if (res.value === undefined) {\n querystring.push(res.name);\n } else {\n querystring.push(res.name + '=' + res.value);\n }\n });\n\n resource += '?' + querystring.join('&');\n }\n\n }\n\n return resource;\n\n },\n\n sign: function sign(secret, string) {\n return AWS.util.crypto.hmac(secret, string, 'base64', 'sha1');\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.S3;\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.V2 = inherit(AWS.Signers.RequestSigner, {\n addAuthorization: function addAuthorization(credentials, date) {\n\n if (!date) date = AWS.util.date.getDate();\n\n var r = this.request;\n\n r.params.Timestamp = AWS.util.date.iso8601(date);\n r.params.SignatureVersion = '2';\n r.params.SignatureMethod = 'HmacSHA256';\n r.params.AWSAccessKeyId = credentials.accessKeyId;\n\n if (credentials.sessionToken) {\n r.params.SecurityToken = credentials.sessionToken;\n }\n\n delete r.params.Signature; // delete old Signature for re-signing\n r.params.Signature = this.signature(credentials);\n\n r.body = AWS.util.queryParamsToString(r.params);\n r.headers['Content-Length'] = r.body.length;\n },\n\n signature: function signature(credentials) {\n return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64');\n },\n\n stringToSign: function stringToSign() {\n var parts = [];\n parts.push(this.request.method);\n parts.push(this.request.endpoint.host.toLowerCase());\n parts.push(this.request.pathname());\n parts.push(AWS.util.queryParamsToString(this.request.params));\n return parts.join('\\n');\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V2;\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nAWS.Signers.V3 = inherit(AWS.Signers.RequestSigner, {\n addAuthorization: function addAuthorization(credentials, date) {\n\n var datetime = AWS.util.date.rfc822(date);\n\n this.request.headers['X-Amz-Date'] = datetime;\n\n if (credentials.sessionToken) {\n this.request.headers['x-amz-security-token'] = credentials.sessionToken;\n }\n\n this.request.headers['X-Amzn-Authorization'] =\n this.authorization(credentials, datetime);\n\n },\n\n authorization: function authorization(credentials) {\n return 'AWS3 ' +\n 'AWSAccessKeyId=' + credentials.accessKeyId + ',' +\n 'Algorithm=HmacSHA256,' +\n 'SignedHeaders=' + this.signedHeaders() + ',' +\n 'Signature=' + this.signature(credentials);\n },\n\n signedHeaders: function signedHeaders() {\n var headers = [];\n AWS.util.arrayEach(this.headersToSign(), function iterator(h) {\n headers.push(h.toLowerCase());\n });\n return headers.sort().join(';');\n },\n\n canonicalHeaders: function canonicalHeaders() {\n var headers = this.request.headers;\n var parts = [];\n AWS.util.arrayEach(this.headersToSign(), function iterator(h) {\n parts.push(h.toLowerCase().trim() + ':' + String(headers[h]).trim());\n });\n return parts.sort().join('\\n') + '\\n';\n },\n\n headersToSign: function headersToSign() {\n var headers = [];\n AWS.util.each(this.request.headers, function iterator(k) {\n if (k === 'Host' || k === 'Content-Encoding' || k.match(/^X-Amz/i)) {\n headers.push(k);\n }\n });\n return headers;\n },\n\n signature: function signature(credentials) {\n return AWS.util.crypto.hmac(credentials.secretAccessKey, this.stringToSign(), 'base64');\n },\n\n stringToSign: function stringToSign() {\n var parts = [];\n parts.push(this.request.method);\n parts.push('/');\n parts.push('');\n parts.push(this.canonicalHeaders());\n parts.push(this.request.body);\n return AWS.util.crypto.sha256(parts.join('\\n'));\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V3;\n","var AWS = require('../core');\nvar inherit = AWS.util.inherit;\n\nrequire('./v3');\n\n/**\n * @api private\n */\nAWS.Signers.V3Https = inherit(AWS.Signers.V3, {\n authorization: function authorization(credentials) {\n return 'AWS3-HTTPS ' +\n 'AWSAccessKeyId=' + credentials.accessKeyId + ',' +\n 'Algorithm=HmacSHA256,' +\n 'Signature=' + this.signature(credentials);\n },\n\n stringToSign: function stringToSign() {\n return this.request.headers['X-Amz-Date'];\n }\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V3Https;\n","var AWS = require('../core');\nvar v4Credentials = require('./v4_credentials');\nvar inherit = AWS.util.inherit;\n\n/**\n * @api private\n */\nvar expiresHeader = 'presigned-expires';\n\n/**\n * @api private\n */\nAWS.Signers.V4 = inherit(AWS.Signers.RequestSigner, {\n constructor: function V4(request, serviceName, options) {\n AWS.Signers.RequestSigner.call(this, request);\n this.serviceName = serviceName;\n options = options || {};\n this.signatureCache = typeof options.signatureCache === 'boolean' ? options.signatureCache : true;\n this.operation = options.operation;\n this.signatureVersion = options.signatureVersion;\n },\n\n algorithm: 'AWS4-HMAC-SHA256',\n\n addAuthorization: function addAuthorization(credentials, date) {\n var datetime = AWS.util.date.iso8601(date).replace(/[:\\-]|\\.\\d{3}/g, '');\n\n if (this.isPresigned()) {\n this.updateForPresigned(credentials, datetime);\n } else {\n this.addHeaders(credentials, datetime);\n }\n\n this.request.headers['Authorization'] =\n this.authorization(credentials, datetime);\n },\n\n addHeaders: function addHeaders(credentials, datetime) {\n this.request.headers['X-Amz-Date'] = datetime;\n if (credentials.sessionToken) {\n this.request.headers['x-amz-security-token'] = credentials.sessionToken;\n }\n },\n\n updateForPresigned: function updateForPresigned(credentials, datetime) {\n var credString = this.credentialString(datetime);\n var qs = {\n 'X-Amz-Date': datetime,\n 'X-Amz-Algorithm': this.algorithm,\n 'X-Amz-Credential': credentials.accessKeyId + '/' + credString,\n 'X-Amz-Expires': this.request.headers[expiresHeader],\n 'X-Amz-SignedHeaders': this.signedHeaders()\n };\n\n if (credentials.sessionToken) {\n qs['X-Amz-Security-Token'] = credentials.sessionToken;\n }\n\n if (this.request.headers['Content-Type']) {\n qs['Content-Type'] = this.request.headers['Content-Type'];\n }\n if (this.request.headers['Content-MD5']) {\n qs['Content-MD5'] = this.request.headers['Content-MD5'];\n }\n if (this.request.headers['Cache-Control']) {\n qs['Cache-Control'] = this.request.headers['Cache-Control'];\n }\n\n // need to pull in any other X-Amz-* headers\n AWS.util.each.call(this, this.request.headers, function(key, value) {\n if (key === expiresHeader) return;\n if (this.isSignableHeader(key)) {\n var lowerKey = key.toLowerCase();\n // Metadata should be normalized\n if (lowerKey.indexOf('x-amz-meta-') === 0) {\n qs[lowerKey] = value;\n } else if (lowerKey.indexOf('x-amz-') === 0) {\n qs[key] = value;\n }\n }\n });\n\n var sep = this.request.path.indexOf('?') >= 0 ? '&' : '?';\n this.request.path += sep + AWS.util.queryParamsToString(qs);\n },\n\n authorization: function authorization(credentials, datetime) {\n var parts = [];\n var credString = this.credentialString(datetime);\n parts.push(this.algorithm + ' Credential=' +\n credentials.accessKeyId + '/' + credString);\n parts.push('SignedHeaders=' + this.signedHeaders());\n parts.push('Signature=' + this.signature(credentials, datetime));\n return parts.join(', ');\n },\n\n signature: function signature(credentials, datetime) {\n var signingKey = v4Credentials.getSigningKey(\n credentials,\n datetime.substr(0, 8),\n this.request.region,\n this.serviceName,\n this.signatureCache\n );\n return AWS.util.crypto.hmac(signingKey, this.stringToSign(datetime), 'hex');\n },\n\n stringToSign: function stringToSign(datetime) {\n var parts = [];\n parts.push('AWS4-HMAC-SHA256');\n parts.push(datetime);\n parts.push(this.credentialString(datetime));\n parts.push(this.hexEncodedHash(this.canonicalString()));\n return parts.join('\\n');\n },\n\n canonicalString: function canonicalString() {\n var parts = [], pathname = this.request.pathname();\n if (this.serviceName !== 's3' && this.signatureVersion !== 's3v4') pathname = AWS.util.uriEscapePath(pathname);\n\n parts.push(this.request.method);\n parts.push(pathname);\n parts.push(this.request.search());\n parts.push(this.canonicalHeaders() + '\\n');\n parts.push(this.signedHeaders());\n parts.push(this.hexEncodedBodyHash());\n return parts.join('\\n');\n },\n\n canonicalHeaders: function canonicalHeaders() {\n var headers = [];\n AWS.util.each.call(this, this.request.headers, function (key, item) {\n headers.push([key, item]);\n });\n headers.sort(function (a, b) {\n return a[0].toLowerCase() < b[0].toLowerCase() ? -1 : 1;\n });\n var parts = [];\n AWS.util.arrayEach.call(this, headers, function (item) {\n var key = item[0].toLowerCase();\n if (this.isSignableHeader(key)) {\n var value = item[1];\n if (typeof value === 'undefined' || value === null || typeof value.toString !== 'function') {\n throw AWS.util.error(new Error('Header ' + key + ' contains invalid value'), {\n code: 'InvalidHeader'\n });\n }\n parts.push(key + ':' +\n this.canonicalHeaderValues(value.toString()));\n }\n });\n return parts.join('\\n');\n },\n\n canonicalHeaderValues: function canonicalHeaderValues(values) {\n return values.replace(/\\s+/g, ' ').replace(/^\\s+|\\s+$/g, '');\n },\n\n signedHeaders: function signedHeaders() {\n var keys = [];\n AWS.util.each.call(this, this.request.headers, function (key) {\n key = key.toLowerCase();\n if (this.isSignableHeader(key)) keys.push(key);\n });\n return keys.sort().join(';');\n },\n\n credentialString: function credentialString(datetime) {\n return v4Credentials.createScope(\n datetime.substr(0, 8),\n this.request.region,\n this.serviceName\n );\n },\n\n hexEncodedHash: function hash(string) {\n return AWS.util.crypto.sha256(string, 'hex');\n },\n\n hexEncodedBodyHash: function hexEncodedBodyHash() {\n var request = this.request;\n if (this.isPresigned() && (['s3', 's3-object-lambda'].indexOf(this.serviceName) > -1) && !request.body) {\n return 'UNSIGNED-PAYLOAD';\n } else if (request.headers['X-Amz-Content-Sha256']) {\n return request.headers['X-Amz-Content-Sha256'];\n } else {\n return this.hexEncodedHash(this.request.body || '');\n }\n },\n\n unsignableHeaders: [\n 'authorization',\n 'content-type',\n 'content-length',\n 'user-agent',\n expiresHeader,\n 'expect',\n 'x-amzn-trace-id'\n ],\n\n isSignableHeader: function isSignableHeader(key) {\n if (key.toLowerCase().indexOf('x-amz-') === 0) return true;\n return this.unsignableHeaders.indexOf(key) < 0;\n },\n\n isPresigned: function isPresigned() {\n return this.request.headers[expiresHeader] ? true : false;\n }\n\n});\n\n/**\n * @api private\n */\nmodule.exports = AWS.Signers.V4;\n","var AWS = require('../core');\n\n/**\n * @api private\n */\nvar cachedSecret = {};\n\n/**\n * @api private\n */\nvar cacheQueue = [];\n\n/**\n * @api private\n */\nvar maxCacheEntries = 50;\n\n/**\n * @api private\n */\nvar v4Identifier = 'aws4_request';\n\n/**\n * @api private\n */\nmodule.exports = {\n /**\n * @api private\n *\n * @param date [String]\n * @param region [String]\n * @param serviceName [String]\n * @return [String]\n */\n createScope: function createScope(date, region, serviceName) {\n return [\n date.substr(0, 8),\n region,\n serviceName,\n v4Identifier\n ].join('/');\n },\n\n /**\n * @api private\n *\n * @param credentials [Credentials]\n * @param date [String]\n * @param region [String]\n * @param service [String]\n * @param shouldCache [Boolean]\n * @return [String]\n */\n getSigningKey: function getSigningKey(\n credentials,\n date,\n region,\n service,\n shouldCache\n ) {\n var credsIdentifier = AWS.util.crypto\n .hmac(credentials.secretAccessKey, credentials.accessKeyId, 'base64');\n var cacheKey = [credsIdentifier, date, region, service].join('_');\n shouldCache = shouldCache !== false;\n if (shouldCache && (cacheKey in cachedSecret)) {\n return cachedSecret[cacheKey];\n }\n\n var kDate = AWS.util.crypto.hmac(\n 'AWS4' + credentials.secretAccessKey,\n date,\n 'buffer'\n );\n var kRegion = AWS.util.crypto.hmac(kDate, region, 'buffer');\n var kService = AWS.util.crypto.hmac(kRegion, service, 'buffer');\n\n var signingKey = AWS.util.crypto.hmac(kService, v4Identifier, 'buffer');\n if (shouldCache) {\n cachedSecret[cacheKey] = signingKey;\n cacheQueue.push(cacheKey);\n if (cacheQueue.length > maxCacheEntries) {\n // remove the oldest entry (not the least recently used)\n delete cachedSecret[cacheQueue.shift()];\n }\n }\n\n return signingKey;\n },\n\n /**\n * @api private\n *\n * Empties the derived signing key cache. Made available for testing purposes\n * only.\n */\n emptyCache: function emptyCache() {\n cachedSecret = {};\n cacheQueue = [];\n }\n};\n","function AcceptorStateMachine(states, state) {\n this.currentState = state || null;\n this.states = states || {};\n}\n\nAcceptorStateMachine.prototype.runTo = function runTo(finalState, done, bindObject, inputError) {\n if (typeof finalState === 'function') {\n inputError = bindObject; bindObject = done;\n done = finalState; finalState = null;\n }\n\n var self = this;\n var state = self.states[self.currentState];\n state.fn.call(bindObject || self, inputError, function(err) {\n if (err) {\n if (state.fail) self.currentState = state.fail;\n else return done ? done.call(bindObject, err) : null;\n } else {\n if (state.accept) self.currentState = state.accept;\n else return done ? done.call(bindObject) : null;\n }\n if (self.currentState === finalState) {\n return done ? done.call(bindObject, err) : null;\n }\n\n self.runTo(finalState, done, bindObject, err);\n });\n};\n\nAcceptorStateMachine.prototype.addState = function addState(name, acceptState, failState, fn) {\n if (typeof acceptState === 'function') {\n fn = acceptState; acceptState = null; failState = null;\n } else if (typeof failState === 'function') {\n fn = failState; failState = null;\n }\n\n if (!this.currentState) this.currentState = name;\n this.states[name] = { accept: acceptState, fail: failState, fn: fn };\n return this;\n};\n\n/**\n * @api private\n */\nmodule.exports = AcceptorStateMachine;\n","/* eslint guard-for-in:0 */\nvar AWS;\n\n/**\n * A set of utility methods for use with the AWS SDK.\n *\n * @!attribute abort\n * Return this value from an iterator function {each} or {arrayEach}\n * to break out of the iteration.\n * @example Breaking out of an iterator function\n * AWS.util.each({a: 1, b: 2, c: 3}, function(key, value) {\n * if (key == 'b') return AWS.util.abort;\n * });\n * @see each\n * @see arrayEach\n * @api private\n */\nvar util = {\n environment: 'nodejs',\n engine: function engine() {\n if (util.isBrowser() && typeof navigator !== 'undefined') {\n return navigator.userAgent;\n } else {\n var engine = process.platform + '/' + process.version;\n if (process.env.AWS_EXECUTION_ENV) {\n engine += ' exec-env/' + process.env.AWS_EXECUTION_ENV;\n }\n return engine;\n }\n },\n\n userAgent: function userAgent() {\n var name = util.environment;\n var agent = 'aws-sdk-' + name + '/' + require('./core').VERSION;\n if (name === 'nodejs') agent += ' ' + util.engine();\n return agent;\n },\n\n uriEscape: function uriEscape(string) {\n var output = encodeURIComponent(string);\n output = output.replace(/[^A-Za-z0-9_.~\\-%]+/g, escape);\n\n // AWS percent-encodes some extra non-standard characters in a URI\n output = output.replace(/[*]/g, function(ch) {\n return '%' + ch.charCodeAt(0).toString(16).toUpperCase();\n });\n\n return output;\n },\n\n uriEscapePath: function uriEscapePath(string) {\n var parts = [];\n util.arrayEach(string.split('/'), function (part) {\n parts.push(util.uriEscape(part));\n });\n return parts.join('/');\n },\n\n urlParse: function urlParse(url) {\n return util.url.parse(url);\n },\n\n urlFormat: function urlFormat(url) {\n return util.url.format(url);\n },\n\n queryStringParse: function queryStringParse(qs) {\n return util.querystring.parse(qs);\n },\n\n queryParamsToString: function queryParamsToString(params) {\n var items = [];\n var escape = util.uriEscape;\n var sortedKeys = Object.keys(params).sort();\n\n util.arrayEach(sortedKeys, function(name) {\n var value = params[name];\n var ename = escape(name);\n var result = ename + '=';\n if (Array.isArray(value)) {\n var vals = [];\n util.arrayEach(value, function(item) { vals.push(escape(item)); });\n result = ename + '=' + vals.sort().join('&' + ename + '=');\n } else if (value !== undefined && value !== null) {\n result = ename + '=' + escape(value);\n }\n items.push(result);\n });\n\n return items.join('&');\n },\n\n readFileSync: function readFileSync(path) {\n if (util.isBrowser()) return null;\n return require('fs').readFileSync(path, 'utf-8');\n },\n\n base64: {\n encode: function encode64(string) {\n if (typeof string === 'number') {\n throw util.error(new Error('Cannot base64 encode number ' + string));\n }\n if (string === null || typeof string === 'undefined') {\n return string;\n }\n var buf = util.buffer.toBuffer(string);\n return buf.toString('base64');\n },\n\n decode: function decode64(string) {\n if (typeof string === 'number') {\n throw util.error(new Error('Cannot base64 decode number ' + string));\n }\n if (string === null || typeof string === 'undefined') {\n return string;\n }\n return util.buffer.toBuffer(string, 'base64');\n }\n\n },\n\n buffer: {\n /**\n * Buffer constructor for Node buffer and buffer pollyfill\n */\n toBuffer: function(data, encoding) {\n return (typeof util.Buffer.from === 'function' && util.Buffer.from !== Uint8Array.from) ?\n util.Buffer.from(data, encoding) : new util.Buffer(data, encoding);\n },\n\n alloc: function(size, fill, encoding) {\n if (typeof size !== 'number') {\n throw new Error('size passed to alloc must be a number.');\n }\n if (typeof util.Buffer.alloc === 'function') {\n return util.Buffer.alloc(size, fill, encoding);\n } else {\n var buf = new util.Buffer(size);\n if (fill !== undefined && typeof buf.fill === 'function') {\n buf.fill(fill, undefined, undefined, encoding);\n }\n return buf;\n }\n },\n\n toStream: function toStream(buffer) {\n if (!util.Buffer.isBuffer(buffer)) buffer = util.buffer.toBuffer(buffer);\n\n var readable = new (util.stream.Readable)();\n var pos = 0;\n readable._read = function(size) {\n if (pos >= buffer.length) return readable.push(null);\n\n var end = pos + size;\n if (end > buffer.length) end = buffer.length;\n readable.push(buffer.slice(pos, end));\n pos = end;\n };\n\n return readable;\n },\n\n /**\n * Concatenates a list of Buffer objects.\n */\n concat: function(buffers) {\n var length = 0,\n offset = 0,\n buffer = null, i;\n\n for (i = 0; i < buffers.length; i++) {\n length += buffers[i].length;\n }\n\n buffer = util.buffer.alloc(length);\n\n for (i = 0; i < buffers.length; i++) {\n buffers[i].copy(buffer, offset);\n offset += buffers[i].length;\n }\n\n return buffer;\n }\n },\n\n string: {\n byteLength: function byteLength(string) {\n if (string === null || string === undefined) return 0;\n if (typeof string === 'string') string = util.buffer.toBuffer(string);\n\n if (typeof string.byteLength === 'number') {\n return string.byteLength;\n } else if (typeof string.length === 'number') {\n return string.length;\n } else if (typeof string.size === 'number') {\n return string.size;\n } else if (typeof string.path === 'string') {\n return require('fs').lstatSync(string.path).size;\n } else {\n throw util.error(new Error('Cannot determine length of ' + string),\n { object: string });\n }\n },\n\n upperFirst: function upperFirst(string) {\n return string[0].toUpperCase() + string.substr(1);\n },\n\n lowerFirst: function lowerFirst(string) {\n return string[0].toLowerCase() + string.substr(1);\n }\n },\n\n ini: {\n parse: function string(ini) {\n var currentSection, map = {};\n util.arrayEach(ini.split(/\\r?\\n/), function(line) {\n line = line.split(/(^|\\s)[;#]/)[0].trim(); // remove comments and trim\n var isSection = line[0] === '[' && line[line.length - 1] === ']';\n if (isSection) {\n currentSection = line.substring(1, line.length - 1);\n if (currentSection === '__proto__' || currentSection.split(/\\s/)[1] === '__proto__') {\n throw util.error(\n new Error('Cannot load profile name \\'' + currentSection + '\\' from shared ini file.')\n );\n }\n } else if (currentSection) {\n var indexOfEqualsSign = line.indexOf('=');\n var start = 0;\n var end = line.length - 1;\n var isAssignment =\n indexOfEqualsSign !== -1 && indexOfEqualsSign !== start && indexOfEqualsSign !== end;\n\n if (isAssignment) {\n var name = line.substring(0, indexOfEqualsSign).trim();\n var value = line.substring(indexOfEqualsSign + 1).trim();\n\n map[currentSection] = map[currentSection] || {};\n map[currentSection][name] = value;\n }\n }\n });\n\n return map;\n }\n },\n\n fn: {\n noop: function() {},\n callback: function (err) { if (err) throw err; },\n\n /**\n * Turn a synchronous function into as \"async\" function by making it call\n * a callback. The underlying function is called with all but the last argument,\n * which is treated as the callback. The callback is passed passed a first argument\n * of null on success to mimick standard node callbacks.\n */\n makeAsync: function makeAsync(fn, expectedArgs) {\n if (expectedArgs && expectedArgs <= fn.length) {\n return fn;\n }\n\n return function() {\n var args = Array.prototype.slice.call(arguments, 0);\n var callback = args.pop();\n var result = fn.apply(null, args);\n callback(result);\n };\n }\n },\n\n /**\n * Date and time utility functions.\n */\n date: {\n\n /**\n * @return [Date] the current JavaScript date object. Since all\n * AWS services rely on this date object, you can override\n * this function to provide a special time value to AWS service\n * requests.\n */\n getDate: function getDate() {\n if (!AWS) AWS = require('./core');\n if (AWS.config.systemClockOffset) { // use offset when non-zero\n return new Date(new Date().getTime() + AWS.config.systemClockOffset);\n } else {\n return new Date();\n }\n },\n\n /**\n * @return [String] the date in ISO-8601 format\n */\n iso8601: function iso8601(date) {\n if (date === undefined) { date = util.date.getDate(); }\n return date.toISOString().replace(/\\.\\d{3}Z$/, 'Z');\n },\n\n /**\n * @return [String] the date in RFC 822 format\n */\n rfc822: function rfc822(date) {\n if (date === undefined) { date = util.date.getDate(); }\n return date.toUTCString();\n },\n\n /**\n * @return [Integer] the UNIX timestamp value for the current time\n */\n unixTimestamp: function unixTimestamp(date) {\n if (date === undefined) { date = util.date.getDate(); }\n return date.getTime() / 1000;\n },\n\n /**\n * @param [String,number,Date] date\n * @return [Date]\n */\n from: function format(date) {\n if (typeof date === 'number') {\n return new Date(date * 1000); // unix timestamp\n } else {\n return new Date(date);\n }\n },\n\n /**\n * Given a Date or date-like value, this function formats the\n * date into a string of the requested value.\n * @param [String,number,Date] date\n * @param [String] formatter Valid formats are:\n # * 'iso8601'\n # * 'rfc822'\n # * 'unixTimestamp'\n * @return [String]\n */\n format: function format(date, formatter) {\n if (!formatter) formatter = 'iso8601';\n return util.date[formatter](util.date.from(date));\n },\n\n parseTimestamp: function parseTimestamp(value) {\n if (typeof value === 'number') { // unix timestamp (number)\n return new Date(value * 1000);\n } else if (value.match(/^\\d+$/)) { // unix timestamp\n return new Date(value * 1000);\n } else if (value.match(/^\\d{4}/)) { // iso8601\n return new Date(value);\n } else if (value.match(/^\\w{3},/)) { // rfc822\n return new Date(value);\n } else {\n throw util.error(\n new Error('unhandled timestamp format: ' + value),\n {code: 'TimestampParserError'});\n }\n }\n\n },\n\n crypto: {\n crc32Table: [\n 0x00000000, 0x77073096, 0xEE0E612C, 0x990951BA, 0x076DC419,\n 0x706AF48F, 0xE963A535, 0x9E6495A3, 0x0EDB8832, 0x79DCB8A4,\n 0xE0D5E91E, 0x97D2D988, 0x09B64C2B, 0x7EB17CBD, 0xE7B82D07,\n 0x90BF1D91, 0x1DB71064, 0x6AB020F2, 0xF3B97148, 0x84BE41DE,\n 0x1ADAD47D, 0x6DDDE4EB, 0xF4D4B551, 0x83D385C7, 0x136C9856,\n 0x646BA8C0, 0xFD62F97A, 0x8A65C9EC, 0x14015C4F, 0x63066CD9,\n 0xFA0F3D63, 0x8D080DF5, 0x3B6E20C8, 0x4C69105E, 0xD56041E4,\n 0xA2677172, 0x3C03E4D1, 0x4B04D447, 0xD20D85FD, 0xA50AB56B,\n 0x35B5A8FA, 0x42B2986C, 0xDBBBC9D6, 0xACBCF940, 0x32D86CE3,\n 0x45DF5C75, 0xDCD60DCF, 0xABD13D59, 0x26D930AC, 0x51DE003A,\n 0xC8D75180, 0xBFD06116, 0x21B4F4B5, 0x56B3C423, 0xCFBA9599,\n 0xB8BDA50F, 0x2802B89E, 0x5F058808, 0xC60CD9B2, 0xB10BE924,\n 0x2F6F7C87, 0x58684C11, 0xC1611DAB, 0xB6662D3D, 0x76DC4190,\n 0x01DB7106, 0x98D220BC, 0xEFD5102A, 0x71B18589, 0x06B6B51F,\n 0x9FBFE4A5, 0xE8B8D433, 0x7807C9A2, 0x0F00F934, 0x9609A88E,\n 0xE10E9818, 0x7F6A0DBB, 0x086D3D2D, 0x91646C97, 0xE6635C01,\n 0x6B6B51F4, 0x1C6C6162, 0x856530D8, 0xF262004E, 0x6C0695ED,\n 0x1B01A57B, 0x8208F4C1, 0xF50FC457, 0x65B0D9C6, 0x12B7E950,\n 0x8BBEB8EA, 0xFCB9887C, 0x62DD1DDF, 0x15DA2D49, 0x8CD37CF3,\n 0xFBD44C65, 0x4DB26158, 0x3AB551CE, 0xA3BC0074, 0xD4BB30E2,\n 0x4ADFA541, 0x3DD895D7, 0xA4D1C46D, 0xD3D6F4FB, 0x4369E96A,\n 0x346ED9FC, 0xAD678846, 0xDA60B8D0, 0x44042D73, 0x33031DE5,\n 0xAA0A4C5F, 0xDD0D7CC9, 0x5005713C, 0x270241AA, 0xBE0B1010,\n 0xC90C2086, 0x5768B525, 0x206F85B3, 0xB966D409, 0xCE61E49F,\n 0x5EDEF90E, 0x29D9C998, 0xB0D09822, 0xC7D7A8B4, 0x59B33D17,\n 0x2EB40D81, 0xB7BD5C3B, 0xC0BA6CAD, 0xEDB88320, 0x9ABFB3B6,\n 0x03B6E20C, 0x74B1D29A, 0xEAD54739, 0x9DD277AF, 0x04DB2615,\n 0x73DC1683, 0xE3630B12, 0x94643B84, 0x0D6D6A3E, 0x7A6A5AA8,\n 0xE40ECF0B, 0x9309FF9D, 0x0A00AE27, 0x7D079EB1, 0xF00F9344,\n 0x8708A3D2, 0x1E01F268, 0x6906C2FE, 0xF762575D, 0x806567CB,\n 0x196C3671, 0x6E6B06E7, 0xFED41B76, 0x89D32BE0, 0x10DA7A5A,\n 0x67DD4ACC, 0xF9B9DF6F, 0x8EBEEFF9, 0x17B7BE43, 0x60B08ED5,\n 0xD6D6A3E8, 0xA1D1937E, 0x38D8C2C4, 0x4FDFF252, 0xD1BB67F1,\n 0xA6BC5767, 0x3FB506DD, 0x48B2364B, 0xD80D2BDA, 0xAF0A1B4C,\n 0x36034AF6, 0x41047A60, 0xDF60EFC3, 0xA867DF55, 0x316E8EEF,\n 0x4669BE79, 0xCB61B38C, 0xBC66831A, 0x256FD2A0, 0x5268E236,\n 0xCC0C7795, 0xBB0B4703, 0x220216B9, 0x5505262F, 0xC5BA3BBE,\n 0xB2BD0B28, 0x2BB45A92, 0x5CB36A04, 0xC2D7FFA7, 0xB5D0CF31,\n 0x2CD99E8B, 0x5BDEAE1D, 0x9B64C2B0, 0xEC63F226, 0x756AA39C,\n 0x026D930A, 0x9C0906A9, 0xEB0E363F, 0x72076785, 0x05005713,\n 0x95BF4A82, 0xE2B87A14, 0x7BB12BAE, 0x0CB61B38, 0x92D28E9B,\n 0xE5D5BE0D, 0x7CDCEFB7, 0x0BDBDF21, 0x86D3D2D4, 0xF1D4E242,\n 0x68DDB3F8, 0x1FDA836E, 0x81BE16CD, 0xF6B9265B, 0x6FB077E1,\n 0x18B74777, 0x88085AE6, 0xFF0F6A70, 0x66063BCA, 0x11010B5C,\n 0x8F659EFF, 0xF862AE69, 0x616BFFD3, 0x166CCF45, 0xA00AE278,\n 0xD70DD2EE, 0x4E048354, 0x3903B3C2, 0xA7672661, 0xD06016F7,\n 0x4969474D, 0x3E6E77DB, 0xAED16A4A, 0xD9D65ADC, 0x40DF0B66,\n 0x37D83BF0, 0xA9BCAE53, 0xDEBB9EC5, 0x47B2CF7F, 0x30B5FFE9,\n 0xBDBDF21C, 0xCABAC28A, 0x53B39330, 0x24B4A3A6, 0xBAD03605,\n 0xCDD70693, 0x54DE5729, 0x23D967BF, 0xB3667A2E, 0xC4614AB8,\n 0x5D681B02, 0x2A6F2B94, 0xB40BBE37, 0xC30C8EA1, 0x5A05DF1B,\n 0x2D02EF8D],\n\n crc32: function crc32(data) {\n var tbl = util.crypto.crc32Table;\n var crc = 0 ^ -1;\n\n if (typeof data === 'string') {\n data = util.buffer.toBuffer(data);\n }\n\n for (var i = 0; i < data.length; i++) {\n var code = data.readUInt8(i);\n crc = (crc >>> 8) ^ tbl[(crc ^ code) & 0xFF];\n }\n return (crc ^ -1) >>> 0;\n },\n\n hmac: function hmac(key, string, digest, fn) {\n if (!digest) digest = 'binary';\n if (digest === 'buffer') { digest = undefined; }\n if (!fn) fn = 'sha256';\n if (typeof string === 'string') string = util.buffer.toBuffer(string);\n return util.crypto.lib.createHmac(fn, key).update(string).digest(digest);\n },\n\n md5: function md5(data, digest, callback) {\n return util.crypto.hash('md5', data, digest, callback);\n },\n\n sha256: function sha256(data, digest, callback) {\n return util.crypto.hash('sha256', data, digest, callback);\n },\n\n hash: function(algorithm, data, digest, callback) {\n var hash = util.crypto.createHash(algorithm);\n if (!digest) { digest = 'binary'; }\n if (digest === 'buffer') { digest = undefined; }\n if (typeof data === 'string') data = util.buffer.toBuffer(data);\n var sliceFn = util.arraySliceFn(data);\n var isBuffer = util.Buffer.isBuffer(data);\n //Identifying objects with an ArrayBuffer as buffers\n if (util.isBrowser() && typeof ArrayBuffer !== 'undefined' && data && data.buffer instanceof ArrayBuffer) isBuffer = true;\n\n if (callback && typeof data === 'object' &&\n typeof data.on === 'function' && !isBuffer) {\n data.on('data', function(chunk) { hash.update(chunk); });\n data.on('error', function(err) { callback(err); });\n data.on('end', function() { callback(null, hash.digest(digest)); });\n } else if (callback && sliceFn && !isBuffer &&\n typeof FileReader !== 'undefined') {\n // this might be a File/Blob\n var index = 0, size = 1024 * 512;\n var reader = new FileReader();\n reader.onerror = function() {\n callback(new Error('Failed to read data.'));\n };\n reader.onload = function() {\n var buf = new util.Buffer(new Uint8Array(reader.result));\n hash.update(buf);\n index += buf.length;\n reader._continueReading();\n };\n reader._continueReading = function() {\n if (index >= data.size) {\n callback(null, hash.digest(digest));\n return;\n }\n\n var back = index + size;\n if (back > data.size) back = data.size;\n reader.readAsArrayBuffer(sliceFn.call(data, index, back));\n };\n\n reader._continueReading();\n } else {\n if (util.isBrowser() && typeof data === 'object' && !isBuffer) {\n data = new util.Buffer(new Uint8Array(data));\n }\n var out = hash.update(data).digest(digest);\n if (callback) callback(null, out);\n return out;\n }\n },\n\n toHex: function toHex(data) {\n var out = [];\n for (var i = 0; i < data.length; i++) {\n out.push(('0' + data.charCodeAt(i).toString(16)).substr(-2, 2));\n }\n return out.join('');\n },\n\n createHash: function createHash(algorithm) {\n return util.crypto.lib.createHash(algorithm);\n }\n\n },\n\n /** @!ignore */\n\n /* Abort constant */\n abort: {},\n\n each: function each(object, iterFunction) {\n for (var key in object) {\n if (Object.prototype.hasOwnProperty.call(object, key)) {\n var ret = iterFunction.call(this, key, object[key]);\n if (ret === util.abort) break;\n }\n }\n },\n\n arrayEach: function arrayEach(array, iterFunction) {\n for (var idx in array) {\n if (Object.prototype.hasOwnProperty.call(array, idx)) {\n var ret = iterFunction.call(this, array[idx], parseInt(idx, 10));\n if (ret === util.abort) break;\n }\n }\n },\n\n update: function update(obj1, obj2) {\n util.each(obj2, function iterator(key, item) {\n obj1[key] = item;\n });\n return obj1;\n },\n\n merge: function merge(obj1, obj2) {\n return util.update(util.copy(obj1), obj2);\n },\n\n copy: function copy(object) {\n if (object === null || object === undefined) return object;\n var dupe = {};\n // jshint forin:false\n for (var key in object) {\n dupe[key] = object[key];\n }\n return dupe;\n },\n\n isEmpty: function isEmpty(obj) {\n for (var prop in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, prop)) {\n return false;\n }\n }\n return true;\n },\n\n arraySliceFn: function arraySliceFn(obj) {\n var fn = obj.slice || obj.webkitSlice || obj.mozSlice;\n return typeof fn === 'function' ? fn : null;\n },\n\n isType: function isType(obj, type) {\n // handle cross-\"frame\" objects\n if (typeof type === 'function') type = util.typeName(type);\n return Object.prototype.toString.call(obj) === '[object ' + type + ']';\n },\n\n typeName: function typeName(type) {\n if (Object.prototype.hasOwnProperty.call(type, 'name')) return type.name;\n var str = type.toString();\n var match = str.match(/^\\s*function (.+)\\(/);\n return match ? match[1] : str;\n },\n\n error: function error(err, options) {\n var originalError = null;\n if (typeof err.message === 'string' && err.message !== '') {\n if (typeof options === 'string' || (options && options.message)) {\n originalError = util.copy(err);\n originalError.message = err.message;\n }\n }\n err.message = err.message || null;\n\n if (typeof options === 'string') {\n err.message = options;\n } else if (typeof options === 'object' && options !== null) {\n util.update(err, options);\n if (options.message)\n err.message = options.message;\n if (options.code || options.name)\n err.code = options.code || options.name;\n if (options.stack)\n err.stack = options.stack;\n }\n\n if (typeof Object.defineProperty === 'function') {\n Object.defineProperty(err, 'name', {writable: true, enumerable: false});\n Object.defineProperty(err, 'message', {enumerable: true});\n }\n\n err.name = String(options && options.name || err.name || err.code || 'Error');\n err.time = new Date();\n\n if (originalError) {\n err.originalError = originalError;\n }\n\n\n for (var key in options || {}) {\n if (key[0] === '[' && key[key.length - 1] === ']') {\n key = key.slice(1, -1);\n if (key === 'code' || key === 'message') {\n continue;\n }\n err['[' + key + ']'] = 'See error.' + key + ' for details.';\n Object.defineProperty(err, key, {\n value: err[key] || (options && options[key]) || (originalError && originalError[key]),\n enumerable: false,\n writable: true\n });\n }\n }\n\n return err;\n },\n\n /**\n * @api private\n */\n inherit: function inherit(klass, features) {\n var newObject = null;\n if (features === undefined) {\n features = klass;\n klass = Object;\n newObject = {};\n } else {\n var ctor = function ConstructorWrapper() {};\n ctor.prototype = klass.prototype;\n newObject = new ctor();\n }\n\n // constructor not supplied, create pass-through ctor\n if (features.constructor === Object) {\n features.constructor = function() {\n if (klass !== Object) {\n return klass.apply(this, arguments);\n }\n };\n }\n\n features.constructor.prototype = newObject;\n util.update(features.constructor.prototype, features);\n features.constructor.__super__ = klass;\n return features.constructor;\n },\n\n /**\n * @api private\n */\n mixin: function mixin() {\n var klass = arguments[0];\n for (var i = 1; i < arguments.length; i++) {\n // jshint forin:false\n for (var prop in arguments[i].prototype) {\n var fn = arguments[i].prototype[prop];\n if (prop !== 'constructor') {\n klass.prototype[prop] = fn;\n }\n }\n }\n return klass;\n },\n\n /**\n * @api private\n */\n hideProperties: function hideProperties(obj, props) {\n if (typeof Object.defineProperty !== 'function') return;\n\n util.arrayEach(props, function (key) {\n Object.defineProperty(obj, key, {\n enumerable: false, writable: true, configurable: true });\n });\n },\n\n /**\n * @api private\n */\n property: function property(obj, name, value, enumerable, isValue) {\n var opts = {\n configurable: true,\n enumerable: enumerable !== undefined ? enumerable : true\n };\n if (typeof value === 'function' && !isValue) {\n opts.get = value;\n }\n else {\n opts.value = value; opts.writable = true;\n }\n\n Object.defineProperty(obj, name, opts);\n },\n\n /**\n * @api private\n */\n memoizedProperty: function memoizedProperty(obj, name, get, enumerable) {\n var cachedValue = null;\n\n // build enumerable attribute for each value with lazy accessor.\n util.property(obj, name, function() {\n if (cachedValue === null) {\n cachedValue = get();\n }\n return cachedValue;\n }, enumerable);\n },\n\n /**\n * TODO Remove in major version revision\n * This backfill populates response data without the\n * top-level payload name.\n *\n * @api private\n */\n hoistPayloadMember: function hoistPayloadMember(resp) {\n var req = resp.request;\n var operationName = req.operation;\n var operation = req.service.api.operations[operationName];\n var output = operation.output;\n if (output.payload && !operation.hasEventOutput) {\n var payloadMember = output.members[output.payload];\n var responsePayload = resp.data[output.payload];\n if (payloadMember.type === 'structure') {\n util.each(responsePayload, function(key, value) {\n util.property(resp.data, key, value, false);\n });\n }\n }\n },\n\n /**\n * Compute SHA-256 checksums of streams\n *\n * @api private\n */\n computeSha256: function computeSha256(body, done) {\n if (util.isNode()) {\n var Stream = util.stream.Stream;\n var fs = require('fs');\n if (typeof Stream === 'function' && body instanceof Stream) {\n if (typeof body.path === 'string') { // assume file object\n var settings = {};\n if (typeof body.start === 'number') {\n settings.start = body.start;\n }\n if (typeof body.end === 'number') {\n settings.end = body.end;\n }\n body = fs.createReadStream(body.path, settings);\n } else { // TODO support other stream types\n return done(new Error('Non-file stream objects are ' +\n 'not supported with SigV4'));\n }\n }\n }\n\n util.crypto.sha256(body, 'hex', function(err, sha) {\n if (err) done(err);\n else done(null, sha);\n });\n },\n\n /**\n * @api private\n */\n isClockSkewed: function isClockSkewed(serverTime) {\n if (serverTime) {\n util.property(AWS.config, 'isClockSkewed',\n Math.abs(new Date().getTime() - serverTime) >= 300000, false);\n return AWS.config.isClockSkewed;\n }\n },\n\n applyClockOffset: function applyClockOffset(serverTime) {\n if (serverTime)\n AWS.config.systemClockOffset = serverTime - new Date().getTime();\n },\n\n /**\n * @api private\n */\n extractRequestId: function extractRequestId(resp) {\n var requestId = resp.httpResponse.headers['x-amz-request-id'] ||\n resp.httpResponse.headers['x-amzn-requestid'];\n\n if (!requestId && resp.data && resp.data.ResponseMetadata) {\n requestId = resp.data.ResponseMetadata.RequestId;\n }\n\n if (requestId) {\n resp.requestId = requestId;\n }\n\n if (resp.error) {\n resp.error.requestId = requestId;\n }\n },\n\n /**\n * @api private\n */\n addPromises: function addPromises(constructors, PromiseDependency) {\n var deletePromises = false;\n if (PromiseDependency === undefined && AWS && AWS.config) {\n PromiseDependency = AWS.config.getPromisesDependency();\n }\n if (PromiseDependency === undefined && typeof Promise !== 'undefined') {\n PromiseDependency = Promise;\n }\n if (typeof PromiseDependency !== 'function') deletePromises = true;\n if (!Array.isArray(constructors)) constructors = [constructors];\n\n for (var ind = 0; ind < constructors.length; ind++) {\n var constructor = constructors[ind];\n if (deletePromises) {\n if (constructor.deletePromisesFromClass) {\n constructor.deletePromisesFromClass();\n }\n } else if (constructor.addPromisesToClass) {\n constructor.addPromisesToClass(PromiseDependency);\n }\n }\n },\n\n /**\n * @api private\n * Return a function that will return a promise whose fate is decided by the\n * callback behavior of the given method with `methodName`. The method to be\n * promisified should conform to node.js convention of accepting a callback as\n * last argument and calling that callback with error as the first argument\n * and success value on the second argument.\n */\n promisifyMethod: function promisifyMethod(methodName, PromiseDependency) {\n return function promise() {\n var self = this;\n var args = Array.prototype.slice.call(arguments);\n return new PromiseDependency(function(resolve, reject) {\n args.push(function(err, data) {\n if (err) {\n reject(err);\n } else {\n resolve(data);\n }\n });\n self[methodName].apply(self, args);\n });\n };\n },\n\n /**\n * @api private\n */\n isDualstackAvailable: function isDualstackAvailable(service) {\n if (!service) return false;\n var metadata = require('../apis/metadata.json');\n if (typeof service !== 'string') service = service.serviceIdentifier;\n if (typeof service !== 'string' || !metadata.hasOwnProperty(service)) return false;\n return !!metadata[service].dualstackAvailable;\n },\n\n /**\n * @api private\n */\n calculateRetryDelay: function calculateRetryDelay(retryCount, retryDelayOptions, err) {\n if (!retryDelayOptions) retryDelayOptions = {};\n var customBackoff = retryDelayOptions.customBackoff || null;\n if (typeof customBackoff === 'function') {\n return customBackoff(retryCount, err);\n }\n var base = typeof retryDelayOptions.base === 'number' ? retryDelayOptions.base : 100;\n var delay = Math.random() * (Math.pow(2, retryCount) * base);\n return delay;\n },\n\n /**\n * @api private\n */\n handleRequestWithRetries: function handleRequestWithRetries(httpRequest, options, cb) {\n if (!options) options = {};\n var http = AWS.HttpClient.getInstance();\n var httpOptions = options.httpOptions || {};\n var retryCount = 0;\n\n var errCallback = function(err) {\n var maxRetries = options.maxRetries || 0;\n if (err && err.code === 'TimeoutError') err.retryable = true;\n\n // Call `calculateRetryDelay()` only when relevant, see #3401\n if (err && err.retryable && retryCount < maxRetries) {\n var delay = util.calculateRetryDelay(retryCount, options.retryDelayOptions, err);\n if (delay >= 0) {\n retryCount++;\n setTimeout(sendRequest, delay + (err.retryAfter || 0));\n return;\n }\n }\n cb(err);\n };\n\n var sendRequest = function() {\n var data = '';\n http.handleRequest(httpRequest, httpOptions, function(httpResponse) {\n httpResponse.on('data', function(chunk) { data += chunk.toString(); });\n httpResponse.on('end', function() {\n var statusCode = httpResponse.statusCode;\n if (statusCode < 300) {\n cb(null, data);\n } else {\n var retryAfter = parseInt(httpResponse.headers['retry-after'], 10) * 1000 || 0;\n var err = util.error(new Error(),\n {\n statusCode: statusCode,\n retryable: statusCode >= 500 || statusCode === 429\n }\n );\n if (retryAfter && err.retryable) err.retryAfter = retryAfter;\n errCallback(err);\n }\n });\n }, errCallback);\n };\n\n AWS.util.defer(sendRequest);\n },\n\n /**\n * @api private\n */\n uuid: {\n v4: function uuidV4() {\n return require('uuid').v4();\n }\n },\n\n /**\n * @api private\n */\n convertPayloadToString: function convertPayloadToString(resp) {\n var req = resp.request;\n var operation = req.operation;\n var rules = req.service.api.operations[operation].output || {};\n if (rules.payload && resp.data[rules.payload]) {\n resp.data[rules.payload] = resp.data[rules.payload].toString();\n }\n },\n\n /**\n * @api private\n */\n defer: function defer(callback) {\n if (typeof process === 'object' && typeof process.nextTick === 'function') {\n process.nextTick(callback);\n } else if (typeof setImmediate === 'function') {\n setImmediate(callback);\n } else {\n setTimeout(callback, 0);\n }\n },\n\n /**\n * @api private\n */\n getRequestPayloadShape: function getRequestPayloadShape(req) {\n var operations = req.service.api.operations;\n if (!operations) return undefined;\n var operation = (operations || {})[req.operation];\n if (!operation || !operation.input || !operation.input.payload) return undefined;\n return operation.input.members[operation.input.payload];\n },\n\n getProfilesFromSharedConfig: function getProfilesFromSharedConfig(iniLoader, filename) {\n var profiles = {};\n var profilesFromConfig = {};\n if (process.env[util.configOptInEnv]) {\n var profilesFromConfig = iniLoader.loadFrom({\n isConfig: true,\n filename: process.env[util.sharedConfigFileEnv]\n });\n }\n var profilesFromCreds= {};\n try {\n var profilesFromCreds = iniLoader.loadFrom({\n filename: filename ||\n (process.env[util.configOptInEnv] && process.env[util.sharedCredentialsFileEnv])\n });\n } catch (error) {\n // if using config, assume it is fully descriptive without a credentials file:\n if (!process.env[util.configOptInEnv]) throw error;\n }\n for (var i = 0, profileNames = Object.keys(profilesFromConfig); i < profileNames.length; i++) {\n profiles[profileNames[i]] = objectAssign(profiles[profileNames[i]] || {}, profilesFromConfig[profileNames[i]]);\n }\n for (var i = 0, profileNames = Object.keys(profilesFromCreds); i < profileNames.length; i++) {\n profiles[profileNames[i]] = objectAssign(profiles[profileNames[i]] || {}, profilesFromCreds[profileNames[i]]);\n }\n return profiles;\n\n /**\n * Roughly the semantics of `Object.assign(target, source)`\n */\n function objectAssign(target, source) {\n for (var i = 0, keys = Object.keys(source); i < keys.length; i++) {\n target[keys[i]] = source[keys[i]];\n }\n return target;\n }\n },\n\n /**\n * @api private\n */\n ARN: {\n validate: function validateARN(str) {\n return str && str.indexOf('arn:') === 0 && str.split(':').length >= 6;\n },\n parse: function parseARN(arn) {\n var matched = arn.split(':');\n return {\n partition: matched[1],\n service: matched[2],\n region: matched[3],\n accountId: matched[4],\n resource: matched.slice(5).join(':')\n };\n },\n build: function buildARN(arnObject) {\n if (\n arnObject.service === undefined ||\n arnObject.region === undefined ||\n arnObject.accountId === undefined ||\n arnObject.resource === undefined\n ) throw util.error(new Error('Input ARN object is invalid'));\n return 'arn:'+ (arnObject.partition || 'aws') + ':' + arnObject.service +\n ':' + arnObject.region + ':' + arnObject.accountId + ':' + arnObject.resource;\n }\n },\n\n /**\n * @api private\n */\n defaultProfile: 'default',\n\n /**\n * @api private\n */\n configOptInEnv: 'AWS_SDK_LOAD_CONFIG',\n\n /**\n * @api private\n */\n sharedCredentialsFileEnv: 'AWS_SHARED_CREDENTIALS_FILE',\n\n /**\n * @api private\n */\n sharedConfigFileEnv: 'AWS_CONFIG_FILE',\n\n /**\n * @api private\n */\n imdsDisabledEnv: 'AWS_EC2_METADATA_DISABLED'\n};\n\n/**\n * @api private\n */\nmodule.exports = util;\n","var util = require('../util');\nvar Shape = require('../model/shape');\n\nfunction DomXmlParser() { }\n\nDomXmlParser.prototype.parse = function(xml, shape) {\n if (xml.replace(/^\\s+/, '') === '') return {};\n\n var result, error;\n try {\n if (window.DOMParser) {\n try {\n var parser = new DOMParser();\n result = parser.parseFromString(xml, 'text/xml');\n } catch (syntaxError) {\n throw util.error(new Error('Parse error in document'),\n {\n originalError: syntaxError,\n code: 'XMLParserError',\n retryable: true\n });\n }\n\n if (result.documentElement === null) {\n throw util.error(new Error('Cannot parse empty document.'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n\n var isError = result.getElementsByTagName('parsererror')[0];\n if (isError && (isError.parentNode === result ||\n isError.parentNode.nodeName === 'body' ||\n isError.parentNode.parentNode === result ||\n isError.parentNode.parentNode.nodeName === 'body')) {\n var errorElement = isError.getElementsByTagName('div')[0] || isError;\n throw util.error(new Error(errorElement.textContent || 'Parser error in document'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n } else if (window.ActiveXObject) {\n result = new window.ActiveXObject('Microsoft.XMLDOM');\n result.async = false;\n\n if (!result.loadXML(xml)) {\n throw util.error(new Error('Parse error in document'),\n {\n code: 'XMLParserError',\n retryable: true\n });\n }\n } else {\n throw new Error('Cannot load XML parser');\n }\n } catch (e) {\n error = e;\n }\n\n if (result && result.documentElement && !error) {\n var data = parseXml(result.documentElement, shape);\n var metadata = getElementByTagName(result.documentElement, 'ResponseMetadata');\n if (metadata) {\n data.ResponseMetadata = parseXml(metadata, {});\n }\n return data;\n } else if (error) {\n throw util.error(error || new Error(), {code: 'XMLParserError', retryable: true});\n } else { // empty xml document\n return {};\n }\n};\n\nfunction getElementByTagName(xml, tag) {\n var elements = xml.getElementsByTagName(tag);\n for (var i = 0, iLen = elements.length; i < iLen; i++) {\n if (elements[i].parentNode === xml) {\n return elements[i];\n }\n }\n}\n\nfunction parseXml(xml, shape) {\n if (!shape) shape = {};\n switch (shape.type) {\n case 'structure': return parseStructure(xml, shape);\n case 'map': return parseMap(xml, shape);\n case 'list': return parseList(xml, shape);\n case undefined: case null: return parseUnknown(xml);\n default: return parseScalar(xml, shape);\n }\n}\n\nfunction parseStructure(xml, shape) {\n var data = {};\n if (xml === null) return data;\n\n util.each(shape.members, function(memberName, memberShape) {\n if (memberShape.isXmlAttribute) {\n if (Object.prototype.hasOwnProperty.call(xml.attributes, memberShape.name)) {\n var value = xml.attributes[memberShape.name].value;\n data[memberName] = parseXml({textContent: value}, memberShape);\n }\n } else {\n var xmlChild = memberShape.flattened ? xml :\n getElementByTagName(xml, memberShape.name);\n if (xmlChild) {\n data[memberName] = parseXml(xmlChild, memberShape);\n } else if (\n !memberShape.flattened &&\n memberShape.type === 'list' &&\n !shape.api.xmlNoDefaultLists) {\n data[memberName] = memberShape.defaultValue;\n }\n }\n });\n\n return data;\n}\n\nfunction parseMap(xml, shape) {\n var data = {};\n var xmlKey = shape.key.name || 'key';\n var xmlValue = shape.value.name || 'value';\n var tagName = shape.flattened ? shape.name : 'entry';\n\n var child = xml.firstElementChild;\n while (child) {\n if (child.nodeName === tagName) {\n var key = getElementByTagName(child, xmlKey).textContent;\n var value = getElementByTagName(child, xmlValue);\n data[key] = parseXml(value, shape.value);\n }\n child = child.nextElementSibling;\n }\n return data;\n}\n\nfunction parseList(xml, shape) {\n var data = [];\n var tagName = shape.flattened ? shape.name : (shape.member.name || 'member');\n\n var child = xml.firstElementChild;\n while (child) {\n if (child.nodeName === tagName) {\n data.push(parseXml(child, shape.member));\n }\n child = child.nextElementSibling;\n }\n return data;\n}\n\nfunction parseScalar(xml, shape) {\n if (xml.getAttribute) {\n var encoding = xml.getAttribute('encoding');\n if (encoding === 'base64') {\n shape = new Shape.create({type: encoding});\n }\n }\n\n var text = xml.textContent;\n if (text === '') text = null;\n if (typeof shape.toType === 'function') {\n return shape.toType(text);\n } else {\n return text;\n }\n}\n\nfunction parseUnknown(xml) {\n if (xml === undefined || xml === null) return '';\n\n // empty object\n if (!xml.firstElementChild) {\n if (xml.parentNode.parentNode === null) return {};\n if (xml.childNodes.length === 0) return '';\n else return xml.textContent;\n }\n\n // object, parse as structure\n var shape = {type: 'structure', members: {}};\n var child = xml.firstElementChild;\n while (child) {\n var tag = child.nodeName;\n if (Object.prototype.hasOwnProperty.call(shape.members, tag)) {\n // multiple tags of the same name makes it a list\n shape.members[tag].type = 'list';\n } else {\n shape.members[tag] = {name: tag};\n }\n child = child.nextElementSibling;\n }\n return parseStructure(xml, shape);\n}\n\n/**\n * @api private\n */\nmodule.exports = DomXmlParser;\n","var util = require('../util');\nvar XmlNode = require('./xml-node').XmlNode;\nvar XmlText = require('./xml-text').XmlText;\n\nfunction XmlBuilder() { }\n\nXmlBuilder.prototype.toXML = function(params, shape, rootElement, noEmpty) {\n var xml = new XmlNode(rootElement);\n applyNamespaces(xml, shape, true);\n serialize(xml, params, shape);\n return xml.children.length > 0 || noEmpty ? xml.toString() : '';\n};\n\nfunction serialize(xml, value, shape) {\n switch (shape.type) {\n case 'structure': return serializeStructure(xml, value, shape);\n case 'map': return serializeMap(xml, value, shape);\n case 'list': return serializeList(xml, value, shape);\n default: return serializeScalar(xml, value, shape);\n }\n}\n\nfunction serializeStructure(xml, params, shape) {\n util.arrayEach(shape.memberNames, function(memberName) {\n var memberShape = shape.members[memberName];\n if (memberShape.location !== 'body') return;\n\n var value = params[memberName];\n var name = memberShape.name;\n if (value !== undefined && value !== null) {\n if (memberShape.isXmlAttribute) {\n xml.addAttribute(name, value);\n } else if (memberShape.flattened) {\n serialize(xml, value, memberShape);\n } else {\n var element = new XmlNode(name);\n xml.addChildNode(element);\n applyNamespaces(element, memberShape);\n serialize(element, value, memberShape);\n }\n }\n });\n}\n\nfunction serializeMap(xml, map, shape) {\n var xmlKey = shape.key.name || 'key';\n var xmlValue = shape.value.name || 'value';\n\n util.each(map, function(key, value) {\n var entry = new XmlNode(shape.flattened ? shape.name : 'entry');\n xml.addChildNode(entry);\n\n var entryKey = new XmlNode(xmlKey);\n var entryValue = new XmlNode(xmlValue);\n entry.addChildNode(entryKey);\n entry.addChildNode(entryValue);\n\n serialize(entryKey, key, shape.key);\n serialize(entryValue, value, shape.value);\n });\n}\n\nfunction serializeList(xml, list, shape) {\n if (shape.flattened) {\n util.arrayEach(list, function(value) {\n var name = shape.member.name || shape.name;\n var element = new XmlNode(name);\n xml.addChildNode(element);\n serialize(element, value, shape.member);\n });\n } else {\n util.arrayEach(list, function(value) {\n var name = shape.member.name || 'member';\n var element = new XmlNode(name);\n xml.addChildNode(element);\n serialize(element, value, shape.member);\n });\n }\n}\n\nfunction serializeScalar(xml, value, shape) {\n xml.addChildNode(\n new XmlText(shape.toWireFormat(value))\n );\n}\n\nfunction applyNamespaces(xml, shape, isRoot) {\n var uri, prefix = 'xmlns';\n if (shape.xmlNamespaceUri) {\n uri = shape.xmlNamespaceUri;\n if (shape.xmlNamespacePrefix) prefix += ':' + shape.xmlNamespacePrefix;\n } else if (isRoot && shape.api.xmlNamespaceUri) {\n uri = shape.api.xmlNamespaceUri;\n }\n\n if (uri) xml.addAttribute(prefix, uri);\n}\n\n/**\n * @api private\n */\nmodule.exports = XmlBuilder;\n","/**\n * Escapes characters that can not be in an XML attribute.\n */\nfunction escapeAttribute(value) {\n return value.replace(/&/g, '&').replace(/'/g, ''').replace(//g, '>').replace(/\"/g, '"');\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n escapeAttribute: escapeAttribute\n};\n","/**\n * Escapes characters that can not be in an XML element.\n */\nfunction escapeElement(value) {\n return value.replace(/&/g, '&')\n .replace(//g, '>')\n .replace(/\\r/g, ' ')\n .replace(/\\n/g, ' ')\n .replace(/\\u0085/g, '…')\n .replace(/\\u2028/, '
');\n}\n\n/**\n * @api private\n */\nmodule.exports = {\n escapeElement: escapeElement\n};\n","var escapeAttribute = require('./escape-attribute').escapeAttribute;\n\n/**\n * Represents an XML node.\n * @api private\n */\nfunction XmlNode(name, children) {\n if (children === void 0) { children = []; }\n this.name = name;\n this.children = children;\n this.attributes = {};\n}\nXmlNode.prototype.addAttribute = function (name, value) {\n this.attributes[name] = value;\n return this;\n};\nXmlNode.prototype.addChildNode = function (child) {\n this.children.push(child);\n return this;\n};\nXmlNode.prototype.removeAttribute = function (name) {\n delete this.attributes[name];\n return this;\n};\nXmlNode.prototype.toString = function () {\n var hasChildren = Boolean(this.children.length);\n var xmlText = '<' + this.name;\n // add attributes\n var attributes = this.attributes;\n for (var i = 0, attributeNames = Object.keys(attributes); i < attributeNames.length; i++) {\n var attributeName = attributeNames[i];\n var attribute = attributes[attributeName];\n if (typeof attribute !== 'undefined' && attribute !== null) {\n xmlText += ' ' + attributeName + '=\\\"' + escapeAttribute('' + attribute) + '\\\"';\n }\n }\n return xmlText += !hasChildren ? '/>' : '>' + this.children.map(function (c) { return c.toString(); }).join('') + '';\n};\n\n/**\n * @api private\n */\nmodule.exports = {\n XmlNode: XmlNode\n};\n","var escapeElement = require('./escape-element').escapeElement;\n\n/**\n * Represents an XML text value.\n * @api private\n */\nfunction XmlText(value) {\n this.value = value;\n}\n\nXmlText.prototype.toString = function () {\n return escapeElement('' + this.value);\n};\n\n/**\n * @api private\n */\nmodule.exports = {\n XmlText: XmlText\n};\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nvar base64 = require('base64-js')\nvar ieee754 = require('ieee754')\nvar isArray = require('isarray')\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Use Object implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * Due to various browser bugs, sometimes the Object implementation will be used even\n * when the browser supports typed arrays.\n *\n * Note:\n *\n * - Firefox 4-29 lacks support for adding new properties to `Uint8Array` instances,\n * See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438.\n *\n * - Chrome 9-10 is missing the `TypedArray.prototype.subarray` function.\n *\n * - IE10 has a broken `TypedArray.prototype.subarray` function which returns arrays of\n * incorrect length in some situations.\n\n * We detect these buggy browsers and set `Buffer.TYPED_ARRAY_SUPPORT` to `false` so they\n * get the Object implementation, which is slower but behaves correctly.\n */\nBuffer.TYPED_ARRAY_SUPPORT = global.TYPED_ARRAY_SUPPORT !== undefined\n ? global.TYPED_ARRAY_SUPPORT\n : typedArraySupport()\n\n/*\n * Export kMaxLength after typed array support is determined.\n */\nexports.kMaxLength = kMaxLength()\n\nfunction typedArraySupport () {\n try {\n var arr = new Uint8Array(1)\n arr.__proto__ = {__proto__: Uint8Array.prototype, foo: function () { return 42 }}\n return arr.foo() === 42 && // typed array instances can be augmented\n typeof arr.subarray === 'function' && // chrome 9-10 lack `subarray`\n arr.subarray(1, 1).byteLength === 0 // ie10 has broken `subarray`\n } catch (e) {\n return false\n }\n}\n\nfunction kMaxLength () {\n return Buffer.TYPED_ARRAY_SUPPORT\n ? 0x7fffffff\n : 0x3fffffff\n}\n\nfunction createBuffer (that, length) {\n if (kMaxLength() < length) {\n throw new RangeError('Invalid typed array length')\n }\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = new Uint8Array(length)\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n if (that === null) {\n that = new Buffer(length)\n }\n that.length = length\n }\n\n return that\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n if (!Buffer.TYPED_ARRAY_SUPPORT && !(this instanceof Buffer)) {\n return new Buffer(arg, encodingOrOffset, length)\n }\n\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new Error(\n 'If encoding is specified then the first argument must be a string'\n )\n }\n return allocUnsafe(this, arg)\n }\n return from(this, arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\n// TODO: Legacy, not needed anymore. Remove in next major version.\nBuffer._augment = function (arr) {\n arr.__proto__ = Buffer.prototype\n return arr\n}\n\nfunction from (that, value, encodingOrOffset, length) {\n if (typeof value === 'number') {\n throw new TypeError('\"value\" argument must not be a number')\n }\n\n if (typeof ArrayBuffer !== 'undefined' && value instanceof ArrayBuffer) {\n return fromArrayBuffer(that, value, encodingOrOffset, length)\n }\n\n if (typeof value === 'string') {\n return fromString(that, value, encodingOrOffset)\n }\n\n return fromObject(that, value)\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(null, value, encodingOrOffset, length)\n}\n\nif (Buffer.TYPED_ARRAY_SUPPORT) {\n Buffer.prototype.__proto__ = Uint8Array.prototype\n Buffer.__proto__ = Uint8Array\n if (typeof Symbol !== 'undefined' && Symbol.species &&\n Buffer[Symbol.species] === Buffer) {\n // Fix subarray() in ES2016. See: https://github.com/feross/buffer/pull/97\n Object.defineProperty(Buffer, Symbol.species, {\n value: null,\n configurable: true\n })\n }\n}\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be a number')\n } else if (size < 0) {\n throw new RangeError('\"size\" argument must not be negative')\n }\n}\n\nfunction alloc (that, size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(that, size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpretted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(that, size).fill(fill, encoding)\n : createBuffer(that, size).fill(fill)\n }\n return createBuffer(that, size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(null, size, fill, encoding)\n}\n\nfunction allocUnsafe (that, size) {\n assertSize(size)\n that = createBuffer(that, size < 0 ? 0 : checked(size) | 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) {\n for (var i = 0; i < size; ++i) {\n that[i] = 0\n }\n }\n return that\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(null, size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(null, size)\n}\n\nfunction fromString (that, string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('\"encoding\" must be a valid string encoding')\n }\n\n var length = byteLength(string, encoding) | 0\n that = createBuffer(that, length)\n\n var actual = that.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n that = that.slice(0, actual)\n }\n\n return that\n}\n\nfunction fromArrayLike (that, array) {\n var length = array.length < 0 ? 0 : checked(array.length) | 0\n that = createBuffer(that, length)\n for (var i = 0; i < length; i += 1) {\n that[i] = array[i] & 255\n }\n return that\n}\n\nfunction fromArrayBuffer (that, array, byteOffset, length) {\n array.byteLength // this throws if `array` is not a valid ArrayBuffer\n\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\\'offset\\' is out of bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\\'length\\' is out of bounds')\n }\n\n if (byteOffset === undefined && length === undefined) {\n array = new Uint8Array(array)\n } else if (length === undefined) {\n array = new Uint8Array(array, byteOffset)\n } else {\n array = new Uint8Array(array, byteOffset, length)\n }\n\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n // Return an augmented `Uint8Array` instance, for best performance\n that = array\n that.__proto__ = Buffer.prototype\n } else {\n // Fallback: Return an object instance of the Buffer class\n that = fromArrayLike(that, array)\n }\n return that\n}\n\nfunction fromObject (that, obj) {\n if (Buffer.isBuffer(obj)) {\n var len = checked(obj.length) | 0\n that = createBuffer(that, len)\n\n if (that.length === 0) {\n return that\n }\n\n obj.copy(that, 0, 0, len)\n return that\n }\n\n if (obj) {\n if ((typeof ArrayBuffer !== 'undefined' &&\n obj.buffer instanceof ArrayBuffer) || 'length' in obj) {\n if (typeof obj.length !== 'number' || isnan(obj.length)) {\n return createBuffer(that, 0)\n }\n return fromArrayLike(that, obj)\n }\n\n if (obj.type === 'Buffer' && isArray(obj.data)) {\n return fromArrayLike(that, obj.data)\n }\n }\n\n throw new TypeError('First argument must be a string, Buffer, ArrayBuffer, Array, or array-like object.')\n}\n\nfunction checked (length) {\n // Note: cannot use `length < kMaxLength()` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= kMaxLength()) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + kMaxLength().toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return !!(b != null && b._isBuffer)\n}\n\nBuffer.compare = function compare (a, b) {\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError('Arguments must be Buffers')\n }\n\n if (a === b) return 0\n\n var x = a.length\n var y = b.length\n\n for (var i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n var i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n var buffer = Buffer.allocUnsafe(length)\n var pos = 0\n for (i = 0; i < list.length; ++i) {\n var buf = list[i]\n if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n buf.copy(buffer, pos)\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (typeof ArrayBuffer !== 'undefined' && typeof ArrayBuffer.isView === 'function' &&\n (ArrayBuffer.isView(string) || string instanceof ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n string = '' + string\n }\n\n var len = string.length\n if (len === 0) return 0\n\n // Use a for loop to avoid recursion\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n case undefined:\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) return utf8ToBytes(string).length // assume utf8\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n var loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coersion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// The property is used by `Buffer.isBuffer` and `is-buffer` (in Safari 5-7) to detect\n// Buffer instances.\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n var i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n var len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (var i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n var len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (var i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n var len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (var i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n var length = this.length | 0\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n var str = ''\n var max = exports.INSPECT_MAX_BYTES\n if (this.length > 0) {\n str = this.toString('hex', 0, max).match(/.{2}/g).join(' ')\n if (this.length > max) str += ' ... '\n }\n return ''\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (!Buffer.isBuffer(target)) {\n throw new TypeError('Argument must be a Buffer')\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n var x = thisEnd - thisStart\n var y = end - start\n var len = Math.min(x, y)\n\n var thisCopy = this.slice(thisStart, thisEnd)\n var targetCopy = target.slice(start, end)\n\n for (var i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (isNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (Buffer.TYPED_ARRAY_SUPPORT &&\n typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [ val ], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n var indexSize = 1\n var arrLength = arr.length\n var valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n var i\n if (dir) {\n var foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n var found = true\n for (var j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n var remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n // must be an even number of digits\n var strLen = string.length\n if (strLen % 2 !== 0) throw new TypeError('Invalid hex string')\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n for (var i = 0; i < length; ++i) {\n var parsed = parseInt(string.substr(i * 2, 2), 16)\n if (isNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction latin1Write (buf, string, offset, length) {\n return asciiWrite(buf, string, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset | 0\n if (isFinite(length)) {\n length = length | 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n // legacy write(string, encoding, offset, length) - remove in v0.13\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n var remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n var loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n return asciiWrite(this, string, offset, length)\n\n case 'latin1':\n case 'binary':\n return latin1Write(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n var res = []\n\n var i = start\n while (i < end) {\n var firstByte = buf[i]\n var codePoint = null\n var bytesPerSequence = (firstByte > 0xEF) ? 4\n : (firstByte > 0xDF) ? 3\n : (firstByte > 0xBF) ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n var secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nvar MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n var len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n var res = ''\n var i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n var ret = ''\n end = Math.min(buf.length, end)\n\n for (var i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n var len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n var out = ''\n for (var i = start; i < end; ++i) {\n out += toHex(buf[i])\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n var bytes = buf.slice(start, end)\n var res = ''\n for (var i = 0; i < bytes.length; i += 2) {\n res += String.fromCharCode(bytes[i] + bytes[i + 1] * 256)\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n var len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n var newBuf\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n newBuf = this.subarray(start, end)\n newBuf.__proto__ = Buffer.prototype\n } else {\n var sliceLen = end - start\n newBuf = new Buffer(sliceLen, undefined)\n for (var i = 0; i < sliceLen; ++i) {\n newBuf[i] = this[i + start]\n }\n }\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n var val = this[offset + --byteLength]\n var mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var val = this[offset]\n var mul = 1\n var i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n var i = byteLength\n var mul = 1\n var val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 2, this.length)\n var val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var mul = 1\n var i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n byteLength = byteLength | 0\n if (!noAssert) {\n var maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n var i = byteLength - 1\n var mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nfunction objectWriteUInt16 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 2); i < j; ++i) {\n buf[offset + i] = (value & (0xff << (8 * (littleEndian ? i : 1 - i)))) >>>\n (littleEndian ? i : 1 - i) * 8\n }\n}\n\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nfunction objectWriteUInt32 (buf, value, offset, littleEndian) {\n if (value < 0) value = 0xffffffff + value + 1\n for (var i = 0, j = Math.min(buf.length - offset, 4); i < j; ++i) {\n buf[offset + i] = (value >>> (littleEndian ? i : 3 - i) * 8) & 0xff\n }\n}\n\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = 0\n var mul = 1\n var sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) {\n var limit = Math.pow(2, 8 * byteLength - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n var i = byteLength - 1\n var mul = 1\n var sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (!Buffer.TYPED_ARRAY_SUPPORT) value = Math.floor(value)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n } else {\n objectWriteUInt16(this, value, offset, true)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n } else {\n objectWriteUInt16(this, value, offset, false)\n }\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n } else {\n objectWriteUInt32(this, value, offset, true)\n }\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset | 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n if (Buffer.TYPED_ARRAY_SUPPORT) {\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n } else {\n objectWriteUInt32(this, value, offset, false)\n }\n return offset + 4\n}\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('sourceStart out of bounds')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n var len = end - start\n var i\n\n if (this === target && start < targetStart && targetStart < end) {\n // descending copy from end\n for (i = len - 1; i >= 0; --i) {\n target[i + targetStart] = this[i + start]\n }\n } else if (len < 1000 || !Buffer.TYPED_ARRAY_SUPPORT) {\n // ascending copy from start\n for (i = 0; i < len; ++i) {\n target[i + targetStart] = this[i + start]\n }\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, start + len),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (val.length === 1) {\n var code = val.charCodeAt(0)\n if (code < 256) {\n val = code\n }\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n } else if (typeof val === 'number') {\n val = val & 255\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n var i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n var bytes = Buffer.isBuffer(val)\n ? val\n : utf8ToBytes(new Buffer(val, encoding).toString())\n var len = bytes.length\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// HELPER FUNCTIONS\n// ================\n\nvar INVALID_BASE64_RE = /[^+\\/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = stringtrim(str).replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction stringtrim (str) {\n if (str.trim) return str.trim()\n return str.replace(/^\\s+|\\s+$/g, '')\n}\n\nfunction toHex (n) {\n if (n < 16) return '0' + n.toString(16)\n return n.toString(16)\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n var codePoint\n var length = string.length\n var leadSurrogate = null\n var bytes = []\n\n for (var i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n var c, hi, lo\n var byteArray = []\n for (var i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n for (var i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\nfunction isnan (val) {\n return val !== val // eslint-disable-line no-self-compare\n}\n","/*! ieee754. BSD-3-Clause License. Feross Aboukhadijeh */\nexports.read = function (buffer, offset, isLE, mLen, nBytes) {\n var e, m\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var nBits = -7\n var i = isLE ? (nBytes - 1) : 0\n var d = isLE ? -1 : 1\n var s = buffer[offset + i]\n\n i += d\n\n e = s & ((1 << (-nBits)) - 1)\n s >>= (-nBits)\n nBits += eLen\n for (; nBits > 0; e = (e * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n m = e & ((1 << (-nBits)) - 1)\n e >>= (-nBits)\n nBits += mLen\n for (; nBits > 0; m = (m * 256) + buffer[offset + i], i += d, nBits -= 8) {}\n\n if (e === 0) {\n e = 1 - eBias\n } else if (e === eMax) {\n return m ? NaN : ((s ? -1 : 1) * Infinity)\n } else {\n m = m + Math.pow(2, mLen)\n e = e - eBias\n }\n return (s ? -1 : 1) * m * Math.pow(2, e - mLen)\n}\n\nexports.write = function (buffer, value, offset, isLE, mLen, nBytes) {\n var e, m, c\n var eLen = (nBytes * 8) - mLen - 1\n var eMax = (1 << eLen) - 1\n var eBias = eMax >> 1\n var rt = (mLen === 23 ? Math.pow(2, -24) - Math.pow(2, -77) : 0)\n var i = isLE ? 0 : (nBytes - 1)\n var d = isLE ? 1 : -1\n var s = value < 0 || (value === 0 && 1 / value < 0) ? 1 : 0\n\n value = Math.abs(value)\n\n if (isNaN(value) || value === Infinity) {\n m = isNaN(value) ? 1 : 0\n e = eMax\n } else {\n e = Math.floor(Math.log(value) / Math.LN2)\n if (value * (c = Math.pow(2, -e)) < 1) {\n e--\n c *= 2\n }\n if (e + eBias >= 1) {\n value += rt / c\n } else {\n value += rt * Math.pow(2, 1 - eBias)\n }\n if (value * c >= 2) {\n e++\n c /= 2\n }\n\n if (e + eBias >= eMax) {\n m = 0\n e = eMax\n } else if (e + eBias >= 1) {\n m = ((value * c) - 1) * Math.pow(2, mLen)\n e = e + eBias\n } else {\n m = value * Math.pow(2, eBias - 1) * Math.pow(2, mLen)\n e = 0\n }\n }\n\n for (; mLen >= 8; buffer[offset + i] = m & 0xff, i += d, m /= 256, mLen -= 8) {}\n\n e = (e << mLen) | m\n eLen += mLen\n for (; eLen > 0; buffer[offset + i] = e & 0xff, i += d, e /= 256, eLen -= 8) {}\n\n buffer[offset + i - d] |= s * 128\n}\n","// 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\nfunction EventEmitter() {\n this._events = this._events || {};\n this._maxListeners = this._maxListeners || undefined;\n}\nmodule.exports = EventEmitter;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nEventEmitter.defaultMaxListeners = 10;\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function(n) {\n if (!isNumber(n) || n < 0 || isNaN(n))\n throw TypeError('n must be a positive number');\n this._maxListeners = n;\n return this;\n};\n\nEventEmitter.prototype.emit = function(type) {\n var er, handler, len, args, i, listeners;\n\n if (!this._events)\n this._events = {};\n\n // If there is no 'error' event listener then throw.\n if (type === 'error') {\n if (!this._events.error ||\n (isObject(this._events.error) && !this._events.error.length)) {\n er = arguments[1];\n if (er instanceof Error) {\n throw er; // Unhandled 'error' event\n } else {\n // At least give some kind of context to the user\n var err = new Error('Uncaught, unspecified \"error\" event. (' + er + ')');\n err.context = er;\n throw err;\n }\n }\n }\n\n handler = this._events[type];\n\n if (isUndefined(handler))\n return false;\n\n if (isFunction(handler)) {\n switch (arguments.length) {\n // fast cases\n case 1:\n handler.call(this);\n break;\n case 2:\n handler.call(this, arguments[1]);\n break;\n case 3:\n handler.call(this, arguments[1], arguments[2]);\n break;\n // slower\n default:\n args = Array.prototype.slice.call(arguments, 1);\n handler.apply(this, args);\n }\n } else if (isObject(handler)) {\n args = Array.prototype.slice.call(arguments, 1);\n listeners = handler.slice();\n len = listeners.length;\n for (i = 0; i < len; i++)\n listeners[i].apply(this, args);\n }\n\n return true;\n};\n\nEventEmitter.prototype.addListener = function(type, listener) {\n var m;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events)\n this._events = {};\n\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (this._events.newListener)\n this.emit('newListener', type,\n isFunction(listener.listener) ?\n listener.listener : listener);\n\n if (!this._events[type])\n // Optimize the case of one listener. Don't need the extra array object.\n this._events[type] = listener;\n else if (isObject(this._events[type]))\n // If we've already got an array, just append.\n this._events[type].push(listener);\n else\n // Adding the second element, need to change to array.\n this._events[type] = [this._events[type], listener];\n\n // Check for listener leak\n if (isObject(this._events[type]) && !this._events[type].warned) {\n if (!isUndefined(this._maxListeners)) {\n m = this._maxListeners;\n } else {\n m = EventEmitter.defaultMaxListeners;\n }\n\n if (m && m > 0 && this._events[type].length > m) {\n this._events[type].warned = true;\n console.error('(node) warning: possible EventEmitter memory ' +\n 'leak detected. %d listeners added. ' +\n 'Use emitter.setMaxListeners() to increase limit.',\n this._events[type].length);\n if (typeof console.trace === 'function') {\n // not supported in IE 10\n console.trace();\n }\n }\n }\n\n return this;\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.once = function(type, listener) {\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n var fired = false;\n\n function g() {\n this.removeListener(type, g);\n\n if (!fired) {\n fired = true;\n listener.apply(this, arguments);\n }\n }\n\n g.listener = listener;\n this.on(type, g);\n\n return this;\n};\n\n// emits a 'removeListener' event iff the listener was removed\nEventEmitter.prototype.removeListener = function(type, listener) {\n var list, position, length, i;\n\n if (!isFunction(listener))\n throw TypeError('listener must be a function');\n\n if (!this._events || !this._events[type])\n return this;\n\n list = this._events[type];\n length = list.length;\n position = -1;\n\n if (list === listener ||\n (isFunction(list.listener) && list.listener === listener)) {\n delete this._events[type];\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n\n } else if (isObject(list)) {\n for (i = length; i-- > 0;) {\n if (list[i] === listener ||\n (list[i].listener && list[i].listener === listener)) {\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (list.length === 1) {\n list.length = 0;\n delete this._events[type];\n } else {\n list.splice(position, 1);\n }\n\n if (this._events.removeListener)\n this.emit('removeListener', type, listener);\n }\n\n return this;\n};\n\nEventEmitter.prototype.removeAllListeners = function(type) {\n var key, listeners;\n\n if (!this._events)\n return this;\n\n // not listening for removeListener, no need to emit\n if (!this._events.removeListener) {\n if (arguments.length === 0)\n this._events = {};\n else if (this._events[type])\n delete this._events[type];\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n for (key in this._events) {\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = {};\n return this;\n }\n\n listeners = this._events[type];\n\n if (isFunction(listeners)) {\n this.removeListener(type, listeners);\n } else if (listeners) {\n // LIFO order\n while (listeners.length)\n this.removeListener(type, listeners[listeners.length - 1]);\n }\n delete this._events[type];\n\n return this;\n};\n\nEventEmitter.prototype.listeners = function(type) {\n var ret;\n if (!this._events || !this._events[type])\n ret = [];\n else if (isFunction(this._events[type]))\n ret = [this._events[type]];\n else\n ret = this._events[type].slice();\n return ret;\n};\n\nEventEmitter.prototype.listenerCount = function(type) {\n if (this._events) {\n var evlistener = this._events[type];\n\n if (isFunction(evlistener))\n return 1;\n else if (evlistener)\n return evlistener.length;\n }\n return 0;\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n return emitter.listenerCount(type);\n};\n\nfunction isFunction(arg) {\n return typeof arg === 'function';\n}\n\nfunction isNumber(arg) {\n return typeof arg === 'number';\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isUndefined(arg) {\n return arg === void 0;\n}\n","/*! https://mths.be/punycode v1.3.2 by @mathias */\n;(function(root) {\n\n\t/** Detect free variables */\n\tvar freeExports = typeof exports == 'object' && exports &&\n\t\t!exports.nodeType && exports;\n\tvar freeModule = typeof module == 'object' && module &&\n\t\t!module.nodeType && module;\n\tvar freeGlobal = typeof global == 'object' && global;\n\tif (\n\t\tfreeGlobal.global === freeGlobal ||\n\t\tfreeGlobal.window === freeGlobal ||\n\t\tfreeGlobal.self === freeGlobal\n\t) {\n\t\troot = freeGlobal;\n\t}\n\n\t/**\n\t * The `punycode` object.\n\t * @name punycode\n\t * @type Object\n\t */\n\tvar punycode,\n\n\t/** Highest positive signed 32-bit float value */\n\tmaxInt = 2147483647, // aka. 0x7FFFFFFF or 2^31-1\n\n\t/** Bootstring parameters */\n\tbase = 36,\n\ttMin = 1,\n\ttMax = 26,\n\tskew = 38,\n\tdamp = 700,\n\tinitialBias = 72,\n\tinitialN = 128, // 0x80\n\tdelimiter = '-', // '\\x2D'\n\n\t/** Regular expressions */\n\tregexPunycode = /^xn--/,\n\tregexNonASCII = /[^\\x20-\\x7E]/, // unprintable ASCII chars + non-ASCII chars\n\tregexSeparators = /[\\x2E\\u3002\\uFF0E\\uFF61]/g, // RFC 3490 separators\n\n\t/** Error messages */\n\terrors = {\n\t\t'overflow': 'Overflow: input needs wider integers to process',\n\t\t'not-basic': 'Illegal input >= 0x80 (not a basic code point)',\n\t\t'invalid-input': 'Invalid input'\n\t},\n\n\t/** Convenience shortcuts */\n\tbaseMinusTMin = base - tMin,\n\tfloor = Math.floor,\n\tstringFromCharCode = String.fromCharCode,\n\n\t/** Temporary variable */\n\tkey;\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/**\n\t * A generic error utility function.\n\t * @private\n\t * @param {String} type The error type.\n\t * @returns {Error} Throws a `RangeError` with the applicable error message.\n\t */\n\tfunction error(type) {\n\t\tthrow RangeError(errors[type]);\n\t}\n\n\t/**\n\t * A generic `Array#map` utility function.\n\t * @private\n\t * @param {Array} array The array to iterate over.\n\t * @param {Function} callback The function that gets called for every array\n\t * item.\n\t * @returns {Array} A new array of values returned by the callback function.\n\t */\n\tfunction map(array, fn) {\n\t\tvar length = array.length;\n\t\tvar result = [];\n\t\twhile (length--) {\n\t\t\tresult[length] = fn(array[length]);\n\t\t}\n\t\treturn result;\n\t}\n\n\t/**\n\t * A simple `Array#map`-like wrapper to work with domain name strings or email\n\t * addresses.\n\t * @private\n\t * @param {String} domain The domain name or email address.\n\t * @param {Function} callback The function that gets called for every\n\t * character.\n\t * @returns {Array} A new string of characters returned by the callback\n\t * function.\n\t */\n\tfunction mapDomain(string, fn) {\n\t\tvar parts = string.split('@');\n\t\tvar result = '';\n\t\tif (parts.length > 1) {\n\t\t\t// In email addresses, only the domain name should be punycoded. Leave\n\t\t\t// the local part (i.e. everything up to `@`) intact.\n\t\t\tresult = parts[0] + '@';\n\t\t\tstring = parts[1];\n\t\t}\n\t\t// Avoid `split(regex)` for IE8 compatibility. See #17.\n\t\tstring = string.replace(regexSeparators, '\\x2E');\n\t\tvar labels = string.split('.');\n\t\tvar encoded = map(labels, fn).join('.');\n\t\treturn result + encoded;\n\t}\n\n\t/**\n\t * Creates an array containing the numeric code points of each Unicode\n\t * character in the string. While JavaScript uses UCS-2 internally,\n\t * this function will convert a pair of surrogate halves (each of which\n\t * UCS-2 exposes as separate characters) into a single code point,\n\t * matching UTF-16.\n\t * @see `punycode.ucs2.encode`\n\t * @see \n\t * @memberOf punycode.ucs2\n\t * @name decode\n\t * @param {String} string The Unicode input string (UCS-2).\n\t * @returns {Array} The new array of code points.\n\t */\n\tfunction ucs2decode(string) {\n\t\tvar output = [],\n\t\t counter = 0,\n\t\t length = string.length,\n\t\t value,\n\t\t extra;\n\t\twhile (counter < length) {\n\t\t\tvalue = string.charCodeAt(counter++);\n\t\t\tif (value >= 0xD800 && value <= 0xDBFF && counter < length) {\n\t\t\t\t// high surrogate, and there is a next character\n\t\t\t\textra = string.charCodeAt(counter++);\n\t\t\t\tif ((extra & 0xFC00) == 0xDC00) { // low surrogate\n\t\t\t\t\toutput.push(((value & 0x3FF) << 10) + (extra & 0x3FF) + 0x10000);\n\t\t\t\t} else {\n\t\t\t\t\t// unmatched surrogate; only append this code unit, in case the next\n\t\t\t\t\t// code unit is the high surrogate of a surrogate pair\n\t\t\t\t\toutput.push(value);\n\t\t\t\t\tcounter--;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\toutput.push(value);\n\t\t\t}\n\t\t}\n\t\treturn output;\n\t}\n\n\t/**\n\t * Creates a string based on an array of numeric code points.\n\t * @see `punycode.ucs2.decode`\n\t * @memberOf punycode.ucs2\n\t * @name encode\n\t * @param {Array} codePoints The array of numeric code points.\n\t * @returns {String} The new Unicode string (UCS-2).\n\t */\n\tfunction ucs2encode(array) {\n\t\treturn map(array, function(value) {\n\t\t\tvar output = '';\n\t\t\tif (value > 0xFFFF) {\n\t\t\t\tvalue -= 0x10000;\n\t\t\t\toutput += stringFromCharCode(value >>> 10 & 0x3FF | 0xD800);\n\t\t\t\tvalue = 0xDC00 | value & 0x3FF;\n\t\t\t}\n\t\t\toutput += stringFromCharCode(value);\n\t\t\treturn output;\n\t\t}).join('');\n\t}\n\n\t/**\n\t * Converts a basic code point into a digit/integer.\n\t * @see `digitToBasic()`\n\t * @private\n\t * @param {Number} codePoint The basic numeric code point value.\n\t * @returns {Number} The numeric value of a basic code point (for use in\n\t * representing integers) in the range `0` to `base - 1`, or `base` if\n\t * the code point does not represent a value.\n\t */\n\tfunction basicToDigit(codePoint) {\n\t\tif (codePoint - 48 < 10) {\n\t\t\treturn codePoint - 22;\n\t\t}\n\t\tif (codePoint - 65 < 26) {\n\t\t\treturn codePoint - 65;\n\t\t}\n\t\tif (codePoint - 97 < 26) {\n\t\t\treturn codePoint - 97;\n\t\t}\n\t\treturn base;\n\t}\n\n\t/**\n\t * Converts a digit/integer into a basic code point.\n\t * @see `basicToDigit()`\n\t * @private\n\t * @param {Number} digit The numeric value of a basic code point.\n\t * @returns {Number} The basic code point whose value (when used for\n\t * representing integers) is `digit`, which needs to be in the range\n\t * `0` to `base - 1`. If `flag` is non-zero, the uppercase form is\n\t * used; else, the lowercase form is used. The behavior is undefined\n\t * if `flag` is non-zero and `digit` has no uppercase form.\n\t */\n\tfunction digitToBasic(digit, flag) {\n\t\t// 0..25 map to ASCII a..z or A..Z\n\t\t// 26..35 map to ASCII 0..9\n\t\treturn digit + 22 + 75 * (digit < 26) - ((flag != 0) << 5);\n\t}\n\n\t/**\n\t * Bias adaptation function as per section 3.4 of RFC 3492.\n\t * http://tools.ietf.org/html/rfc3492#section-3.4\n\t * @private\n\t */\n\tfunction adapt(delta, numPoints, firstTime) {\n\t\tvar k = 0;\n\t\tdelta = firstTime ? floor(delta / damp) : delta >> 1;\n\t\tdelta += floor(delta / numPoints);\n\t\tfor (/* no initialization */; delta > baseMinusTMin * tMax >> 1; k += base) {\n\t\t\tdelta = floor(delta / baseMinusTMin);\n\t\t}\n\t\treturn floor(k + (baseMinusTMin + 1) * delta / (delta + skew));\n\t}\n\n\t/**\n\t * Converts a Punycode string of ASCII-only symbols to a string of Unicode\n\t * symbols.\n\t * @memberOf punycode\n\t * @param {String} input The Punycode string of ASCII-only symbols.\n\t * @returns {String} The resulting string of Unicode symbols.\n\t */\n\tfunction decode(input) {\n\t\t// Don't use UCS-2\n\t\tvar output = [],\n\t\t inputLength = input.length,\n\t\t out,\n\t\t i = 0,\n\t\t n = initialN,\n\t\t bias = initialBias,\n\t\t basic,\n\t\t j,\n\t\t index,\n\t\t oldi,\n\t\t w,\n\t\t k,\n\t\t digit,\n\t\t t,\n\t\t /** Cached calculation results */\n\t\t baseMinusT;\n\n\t\t// Handle the basic code points: let `basic` be the number of input code\n\t\t// points before the last delimiter, or `0` if there is none, then copy\n\t\t// the first basic code points to the output.\n\n\t\tbasic = input.lastIndexOf(delimiter);\n\t\tif (basic < 0) {\n\t\t\tbasic = 0;\n\t\t}\n\n\t\tfor (j = 0; j < basic; ++j) {\n\t\t\t// if it's not a basic code point\n\t\t\tif (input.charCodeAt(j) >= 0x80) {\n\t\t\t\terror('not-basic');\n\t\t\t}\n\t\t\toutput.push(input.charCodeAt(j));\n\t\t}\n\n\t\t// Main decoding loop: start just after the last delimiter if any basic code\n\t\t// points were copied; start at the beginning otherwise.\n\n\t\tfor (index = basic > 0 ? basic + 1 : 0; index < inputLength; /* no final expression */) {\n\n\t\t\t// `index` is the index of the next character to be consumed.\n\t\t\t// Decode a generalized variable-length integer into `delta`,\n\t\t\t// which gets added to `i`. The overflow checking is easier\n\t\t\t// if we increase `i` as we go, then subtract off its starting\n\t\t\t// value at the end to obtain `delta`.\n\t\t\tfor (oldi = i, w = 1, k = base; /* no condition */; k += base) {\n\n\t\t\t\tif (index >= inputLength) {\n\t\t\t\t\terror('invalid-input');\n\t\t\t\t}\n\n\t\t\t\tdigit = basicToDigit(input.charCodeAt(index++));\n\n\t\t\t\tif (digit >= base || digit > floor((maxInt - i) / w)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\ti += digit * w;\n\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\n\t\t\t\tif (digit < t) {\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\n\t\t\t\tbaseMinusT = base - t;\n\t\t\t\tif (w > floor(maxInt / baseMinusT)) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tw *= baseMinusT;\n\n\t\t\t}\n\n\t\t\tout = output.length + 1;\n\t\t\tbias = adapt(i - oldi, out, oldi == 0);\n\n\t\t\t// `i` was supposed to wrap around from `out` to `0`,\n\t\t\t// incrementing `n` each time, so we'll fix that now:\n\t\t\tif (floor(i / out) > maxInt - n) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tn += floor(i / out);\n\t\t\ti %= out;\n\n\t\t\t// Insert `n` at position `i` of the output\n\t\t\toutput.splice(i++, 0, n);\n\n\t\t}\n\n\t\treturn ucs2encode(output);\n\t}\n\n\t/**\n\t * Converts a string of Unicode symbols (e.g. a domain name label) to a\n\t * Punycode string of ASCII-only symbols.\n\t * @memberOf punycode\n\t * @param {String} input The string of Unicode symbols.\n\t * @returns {String} The resulting Punycode string of ASCII-only symbols.\n\t */\n\tfunction encode(input) {\n\t\tvar n,\n\t\t delta,\n\t\t handledCPCount,\n\t\t basicLength,\n\t\t bias,\n\t\t j,\n\t\t m,\n\t\t q,\n\t\t k,\n\t\t t,\n\t\t currentValue,\n\t\t output = [],\n\t\t /** `inputLength` will hold the number of code points in `input`. */\n\t\t inputLength,\n\t\t /** Cached calculation results */\n\t\t handledCPCountPlusOne,\n\t\t baseMinusT,\n\t\t qMinusT;\n\n\t\t// Convert the input in UCS-2 to Unicode\n\t\tinput = ucs2decode(input);\n\n\t\t// Cache the length\n\t\tinputLength = input.length;\n\n\t\t// Initialize the state\n\t\tn = initialN;\n\t\tdelta = 0;\n\t\tbias = initialBias;\n\n\t\t// Handle the basic code points\n\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\tcurrentValue = input[j];\n\t\t\tif (currentValue < 0x80) {\n\t\t\t\toutput.push(stringFromCharCode(currentValue));\n\t\t\t}\n\t\t}\n\n\t\thandledCPCount = basicLength = output.length;\n\n\t\t// `handledCPCount` is the number of code points that have been handled;\n\t\t// `basicLength` is the number of basic code points.\n\n\t\t// Finish the basic string - if it is not empty - with a delimiter\n\t\tif (basicLength) {\n\t\t\toutput.push(delimiter);\n\t\t}\n\n\t\t// Main encoding loop:\n\t\twhile (handledCPCount < inputLength) {\n\n\t\t\t// All non-basic code points < n have been handled already. Find the next\n\t\t\t// larger one:\n\t\t\tfor (m = maxInt, j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\t\t\t\tif (currentValue >= n && currentValue < m) {\n\t\t\t\t\tm = currentValue;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Increase `delta` enough to advance the decoder's state to ,\n\t\t\t// but guard against overflow\n\t\t\thandledCPCountPlusOne = handledCPCount + 1;\n\t\t\tif (m - n > floor((maxInt - delta) / handledCPCountPlusOne)) {\n\t\t\t\terror('overflow');\n\t\t\t}\n\n\t\t\tdelta += (m - n) * handledCPCountPlusOne;\n\t\t\tn = m;\n\n\t\t\tfor (j = 0; j < inputLength; ++j) {\n\t\t\t\tcurrentValue = input[j];\n\n\t\t\t\tif (currentValue < n && ++delta > maxInt) {\n\t\t\t\t\terror('overflow');\n\t\t\t\t}\n\n\t\t\t\tif (currentValue == n) {\n\t\t\t\t\t// Represent delta as a generalized variable-length integer\n\t\t\t\t\tfor (q = delta, k = base; /* no condition */; k += base) {\n\t\t\t\t\t\tt = k <= bias ? tMin : (k >= bias + tMax ? tMax : k - bias);\n\t\t\t\t\t\tif (q < t) {\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tqMinusT = q - t;\n\t\t\t\t\t\tbaseMinusT = base - t;\n\t\t\t\t\t\toutput.push(\n\t\t\t\t\t\t\tstringFromCharCode(digitToBasic(t + qMinusT % baseMinusT, 0))\n\t\t\t\t\t\t);\n\t\t\t\t\t\tq = floor(qMinusT / baseMinusT);\n\t\t\t\t\t}\n\n\t\t\t\t\toutput.push(stringFromCharCode(digitToBasic(q, 0)));\n\t\t\t\t\tbias = adapt(delta, handledCPCountPlusOne, handledCPCount == basicLength);\n\t\t\t\t\tdelta = 0;\n\t\t\t\t\t++handledCPCount;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t++delta;\n\t\t\t++n;\n\n\t\t}\n\t\treturn output.join('');\n\t}\n\n\t/**\n\t * Converts a Punycode string representing a domain name or an email address\n\t * to Unicode. Only the Punycoded parts of the input will be converted, i.e.\n\t * it doesn't matter if you call it on a string that has already been\n\t * converted to Unicode.\n\t * @memberOf punycode\n\t * @param {String} input The Punycoded domain name or email address to\n\t * convert to Unicode.\n\t * @returns {String} The Unicode representation of the given Punycode\n\t * string.\n\t */\n\tfunction toUnicode(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexPunycode.test(string)\n\t\t\t\t? decode(string.slice(4).toLowerCase())\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/**\n\t * Converts a Unicode string representing a domain name or an email address to\n\t * Punycode. Only the non-ASCII parts of the domain name will be converted,\n\t * i.e. it doesn't matter if you call it with a domain that's already in\n\t * ASCII.\n\t * @memberOf punycode\n\t * @param {String} input The domain name or email address to convert, as a\n\t * Unicode string.\n\t * @returns {String} The Punycode representation of the given domain name or\n\t * email address.\n\t */\n\tfunction toASCII(input) {\n\t\treturn mapDomain(input, function(string) {\n\t\t\treturn regexNonASCII.test(string)\n\t\t\t\t? 'xn--' + encode(string)\n\t\t\t\t: string;\n\t\t});\n\t}\n\n\t/*--------------------------------------------------------------------------*/\n\n\t/** Define the public API */\n\tpunycode = {\n\t\t/**\n\t\t * A string representing the current Punycode.js version number.\n\t\t * @memberOf punycode\n\t\t * @type String\n\t\t */\n\t\t'version': '1.3.2',\n\t\t/**\n\t\t * An object of methods to convert from JavaScript's internal character\n\t\t * representation (UCS-2) to Unicode code points, and back.\n\t\t * @see \n\t\t * @memberOf punycode\n\t\t * @type Object\n\t\t */\n\t\t'ucs2': {\n\t\t\t'decode': ucs2decode,\n\t\t\t'encode': ucs2encode\n\t\t},\n\t\t'decode': decode,\n\t\t'encode': encode,\n\t\t'toASCII': toASCII,\n\t\t'toUnicode': toUnicode\n\t};\n\n\t/** Expose `punycode` */\n\t// Some AMD build optimizers, like r.js, check for specific condition patterns\n\t// like the following:\n\tif (\n\t\ttypeof define == 'function' &&\n\t\ttypeof define.amd == 'object' &&\n\t\tdefine.amd\n\t) {\n\t\tdefine('punycode', function() {\n\t\t\treturn punycode;\n\t\t});\n\t} else if (freeExports && freeModule) {\n\t\tif (module.exports == freeExports) { // in Node.js or RingoJS v0.8.0+\n\t\t\tfreeModule.exports = punycode;\n\t\t} else { // in Narwhal or RingoJS v0.7.0-\n\t\t\tfor (key in punycode) {\n\t\t\t\tpunycode.hasOwnProperty(key) && (freeExports[key] = punycode[key]);\n\t\t\t}\n\t\t}\n\t} else { // in Rhino or a web browser\n\t\troot.punycode = punycode;\n\t}\n\n}(this));\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\nvar punycode = require('punycode');\n\nexports.parse = urlParse;\nexports.resolve = urlResolve;\nexports.resolveObject = urlResolveObject;\nexports.format = urlFormat;\n\nexports.Url = Url;\n\nfunction Url() {\n this.protocol = null;\n this.slashes = null;\n this.auth = null;\n this.host = null;\n this.port = null;\n this.hostname = null;\n this.hash = null;\n this.search = null;\n this.query = null;\n this.pathname = null;\n this.path = null;\n this.href = null;\n}\n\n// Reference: RFC 3986, RFC 1808, RFC 2396\n\n// define these here so at least they only have to be\n// compiled once on the first module load.\nvar protocolPattern = /^([a-z0-9.+-]+:)/i,\n portPattern = /:[0-9]*$/,\n\n // RFC 2396: characters reserved for delimiting URLs.\n // We actually just auto-escape these.\n delims = ['<', '>', '\"', '`', ' ', '\\r', '\\n', '\\t'],\n\n // RFC 2396: characters not allowed for various reasons.\n unwise = ['{', '}', '|', '\\\\', '^', '`'].concat(delims),\n\n // Allowed by RFCs, but cause of XSS attacks. Always escape these.\n autoEscape = ['\\''].concat(unwise),\n // Characters that are never ever allowed in a hostname.\n // Note that any invalid chars are also handled, but these\n // are the ones that are *expected* to be seen, so we fast-path\n // them.\n nonHostChars = ['%', '/', '?', ';', '#'].concat(autoEscape),\n hostEndingChars = ['/', '?', '#'],\n hostnameMaxLen = 255,\n hostnamePartPattern = /^[a-z0-9A-Z_-]{0,63}$/,\n hostnamePartStart = /^([a-z0-9A-Z_-]{0,63})(.*)$/,\n // protocols that can allow \"unsafe\" and \"unwise\" chars.\n unsafeProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that never have a hostname.\n hostlessProtocol = {\n 'javascript': true,\n 'javascript:': true\n },\n // protocols that always contain a // bit.\n slashedProtocol = {\n 'http': true,\n 'https': true,\n 'ftp': true,\n 'gopher': true,\n 'file': true,\n 'http:': true,\n 'https:': true,\n 'ftp:': true,\n 'gopher:': true,\n 'file:': true\n },\n querystring = require('querystring');\n\nfunction urlParse(url, parseQueryString, slashesDenoteHost) {\n if (url && isObject(url) && url instanceof Url) return url;\n\n var u = new Url;\n u.parse(url, parseQueryString, slashesDenoteHost);\n return u;\n}\n\nUrl.prototype.parse = function(url, parseQueryString, slashesDenoteHost) {\n if (!isString(url)) {\n throw new TypeError(\"Parameter 'url' must be a string, not \" + typeof url);\n }\n\n var rest = url;\n\n // trim before proceeding.\n // This is to support parse stuff like \" http://foo.com \\n\"\n rest = rest.trim();\n\n var proto = protocolPattern.exec(rest);\n if (proto) {\n proto = proto[0];\n var lowerProto = proto.toLowerCase();\n this.protocol = lowerProto;\n rest = rest.substr(proto.length);\n }\n\n // figure out if it's got a host\n // user@server is *always* interpreted as a hostname, and url\n // resolution will treat //foo/bar as host=foo,path=bar because that's\n // how the browser resolves relative URLs.\n if (slashesDenoteHost || proto || rest.match(/^\\/\\/[^@\\/]+@[^@\\/]+/)) {\n var slashes = rest.substr(0, 2) === '//';\n if (slashes && !(proto && hostlessProtocol[proto])) {\n rest = rest.substr(2);\n this.slashes = true;\n }\n }\n\n if (!hostlessProtocol[proto] &&\n (slashes || (proto && !slashedProtocol[proto]))) {\n\n // there's a hostname.\n // the first instance of /, ?, ;, or # ends the host.\n //\n // If there is an @ in the hostname, then non-host chars *are* allowed\n // to the left of the last @ sign, unless some host-ending character\n // comes *before* the @-sign.\n // URLs are obnoxious.\n //\n // ex:\n // http://a@b@c/ => user:a@b host:c\n // http://a@b?@c => user:a host:c path:/?@c\n\n // v0.12 TODO(isaacs): This is not quite how Chrome does things.\n // Review our test case against browsers more comprehensively.\n\n // find the first instance of any hostEndingChars\n var hostEnd = -1;\n for (var i = 0; i < hostEndingChars.length; i++) {\n var hec = rest.indexOf(hostEndingChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n\n // at this point, either we have an explicit point where the\n // auth portion cannot go past, or the last @ char is the decider.\n var auth, atSign;\n if (hostEnd === -1) {\n // atSign can be anywhere.\n atSign = rest.lastIndexOf('@');\n } else {\n // atSign must be in auth portion.\n // http://a@b/c@d => host:b auth:a path:/c@d\n atSign = rest.lastIndexOf('@', hostEnd);\n }\n\n // Now we have a portion which is definitely the auth.\n // Pull that off.\n if (atSign !== -1) {\n auth = rest.slice(0, atSign);\n rest = rest.slice(atSign + 1);\n this.auth = decodeURIComponent(auth);\n }\n\n // the host is the remaining to the left of the first non-host char\n hostEnd = -1;\n for (var i = 0; i < nonHostChars.length; i++) {\n var hec = rest.indexOf(nonHostChars[i]);\n if (hec !== -1 && (hostEnd === -1 || hec < hostEnd))\n hostEnd = hec;\n }\n // if we still have not hit it, then the entire thing is a host.\n if (hostEnd === -1)\n hostEnd = rest.length;\n\n this.host = rest.slice(0, hostEnd);\n rest = rest.slice(hostEnd);\n\n // pull out port.\n this.parseHost();\n\n // we've indicated that there is a hostname,\n // so even if it's empty, it has to be present.\n this.hostname = this.hostname || '';\n\n // if hostname begins with [ and ends with ]\n // assume that it's an IPv6 address.\n var ipv6Hostname = this.hostname[0] === '[' &&\n this.hostname[this.hostname.length - 1] === ']';\n\n // validate a little.\n if (!ipv6Hostname) {\n var hostparts = this.hostname.split(/\\./);\n for (var i = 0, l = hostparts.length; i < l; i++) {\n var part = hostparts[i];\n if (!part) continue;\n if (!part.match(hostnamePartPattern)) {\n var newpart = '';\n for (var j = 0, k = part.length; j < k; j++) {\n if (part.charCodeAt(j) > 127) {\n // we replace non-ASCII char with a temporary placeholder\n // we need this to make sure size of hostname is not\n // broken by replacing non-ASCII by nothing\n newpart += 'x';\n } else {\n newpart += part[j];\n }\n }\n // we test again with ASCII char only\n if (!newpart.match(hostnamePartPattern)) {\n var validParts = hostparts.slice(0, i);\n var notHost = hostparts.slice(i + 1);\n var bit = part.match(hostnamePartStart);\n if (bit) {\n validParts.push(bit[1]);\n notHost.unshift(bit[2]);\n }\n if (notHost.length) {\n rest = '/' + notHost.join('.') + rest;\n }\n this.hostname = validParts.join('.');\n break;\n }\n }\n }\n }\n\n if (this.hostname.length > hostnameMaxLen) {\n this.hostname = '';\n } else {\n // hostnames are always lower case.\n this.hostname = this.hostname.toLowerCase();\n }\n\n if (!ipv6Hostname) {\n // IDNA Support: Returns a puny coded representation of \"domain\".\n // It only converts the part of the domain name that\n // has non ASCII characters. I.e. it dosent matter if\n // you call it with a domain that already is in ASCII.\n var domainArray = this.hostname.split('.');\n var newOut = [];\n for (var i = 0; i < domainArray.length; ++i) {\n var s = domainArray[i];\n newOut.push(s.match(/[^A-Za-z0-9_-]/) ?\n 'xn--' + punycode.encode(s) : s);\n }\n this.hostname = newOut.join('.');\n }\n\n var p = this.port ? ':' + this.port : '';\n var h = this.hostname || '';\n this.host = h + p;\n this.href += this.host;\n\n // strip [ and ] from the hostname\n // the host field still retains them, though\n if (ipv6Hostname) {\n this.hostname = this.hostname.substr(1, this.hostname.length - 2);\n if (rest[0] !== '/') {\n rest = '/' + rest;\n }\n }\n }\n\n // now rest is set to the post-host stuff.\n // chop off any delim chars.\n if (!unsafeProtocol[lowerProto]) {\n\n // First, make 100% sure that any \"autoEscape\" chars get\n // escaped, even if encodeURIComponent doesn't think they\n // need to be.\n for (var i = 0, l = autoEscape.length; i < l; i++) {\n var ae = autoEscape[i];\n var esc = encodeURIComponent(ae);\n if (esc === ae) {\n esc = escape(ae);\n }\n rest = rest.split(ae).join(esc);\n }\n }\n\n\n // chop off from the tail first.\n var hash = rest.indexOf('#');\n if (hash !== -1) {\n // got a fragment string.\n this.hash = rest.substr(hash);\n rest = rest.slice(0, hash);\n }\n var qm = rest.indexOf('?');\n if (qm !== -1) {\n this.search = rest.substr(qm);\n this.query = rest.substr(qm + 1);\n if (parseQueryString) {\n this.query = querystring.parse(this.query);\n }\n rest = rest.slice(0, qm);\n } else if (parseQueryString) {\n // no query string, but parseQueryString still requested\n this.search = '';\n this.query = {};\n }\n if (rest) this.pathname = rest;\n if (slashedProtocol[lowerProto] &&\n this.hostname && !this.pathname) {\n this.pathname = '/';\n }\n\n //to support http.request\n if (this.pathname || this.search) {\n var p = this.pathname || '';\n var s = this.search || '';\n this.path = p + s;\n }\n\n // finally, reconstruct the href based on what has been validated.\n this.href = this.format();\n return this;\n};\n\n// format a parsed object into a url string\nfunction urlFormat(obj) {\n // ensure it's an object, and not a string url.\n // If it's an obj, this is a no-op.\n // this way, you can call url_format() on strings\n // to clean up potentially wonky urls.\n if (isString(obj)) obj = urlParse(obj);\n if (!(obj instanceof Url)) return Url.prototype.format.call(obj);\n return obj.format();\n}\n\nUrl.prototype.format = function() {\n var auth = this.auth || '';\n if (auth) {\n auth = encodeURIComponent(auth);\n auth = auth.replace(/%3A/i, ':');\n auth += '@';\n }\n\n var protocol = this.protocol || '',\n pathname = this.pathname || '',\n hash = this.hash || '',\n host = false,\n query = '';\n\n if (this.host) {\n host = auth + this.host;\n } else if (this.hostname) {\n host = auth + (this.hostname.indexOf(':') === -1 ?\n this.hostname :\n '[' + this.hostname + ']');\n if (this.port) {\n host += ':' + this.port;\n }\n }\n\n if (this.query &&\n isObject(this.query) &&\n Object.keys(this.query).length) {\n query = querystring.stringify(this.query);\n }\n\n var search = this.search || (query && ('?' + query)) || '';\n\n if (protocol && protocol.substr(-1) !== ':') protocol += ':';\n\n // only the slashedProtocols get the //. Not mailto:, xmpp:, etc.\n // unless they had them to begin with.\n if (this.slashes ||\n (!protocol || slashedProtocol[protocol]) && host !== false) {\n host = '//' + (host || '');\n if (pathname && pathname.charAt(0) !== '/') pathname = '/' + pathname;\n } else if (!host) {\n host = '';\n }\n\n if (hash && hash.charAt(0) !== '#') hash = '#' + hash;\n if (search && search.charAt(0) !== '?') search = '?' + search;\n\n pathname = pathname.replace(/[?#]/g, function(match) {\n return encodeURIComponent(match);\n });\n search = search.replace('#', '%23');\n\n return protocol + host + pathname + search + hash;\n};\n\nfunction urlResolve(source, relative) {\n return urlParse(source, false, true).resolve(relative);\n}\n\nUrl.prototype.resolve = function(relative) {\n return this.resolveObject(urlParse(relative, false, true)).format();\n};\n\nfunction urlResolveObject(source, relative) {\n if (!source) return relative;\n return urlParse(source, false, true).resolveObject(relative);\n}\n\nUrl.prototype.resolveObject = function(relative) {\n if (isString(relative)) {\n var rel = new Url();\n rel.parse(relative, false, true);\n relative = rel;\n }\n\n var result = new Url();\n Object.keys(this).forEach(function(k) {\n result[k] = this[k];\n }, this);\n\n // hash is always overridden, no matter what.\n // even href=\"\" will remove it.\n result.hash = relative.hash;\n\n // if the relative url is empty, then there's nothing left to do here.\n if (relative.href === '') {\n result.href = result.format();\n return result;\n }\n\n // hrefs like //foo/bar always cut to the protocol.\n if (relative.slashes && !relative.protocol) {\n // take everything except the protocol from relative\n Object.keys(relative).forEach(function(k) {\n if (k !== 'protocol')\n result[k] = relative[k];\n });\n\n //urlParse appends trailing / to urls like http://www.example.com\n if (slashedProtocol[result.protocol] &&\n result.hostname && !result.pathname) {\n result.path = result.pathname = '/';\n }\n\n result.href = result.format();\n return result;\n }\n\n if (relative.protocol && relative.protocol !== result.protocol) {\n // if it's a known url protocol, then changing\n // the protocol does weird things\n // first, if it's not file:, then we MUST have a host,\n // and if there was a path\n // to begin with, then we MUST have a path.\n // if it is file:, then the host is dropped,\n // because that's known to be hostless.\n // anything else is assumed to be absolute.\n if (!slashedProtocol[relative.protocol]) {\n Object.keys(relative).forEach(function(k) {\n result[k] = relative[k];\n });\n result.href = result.format();\n return result;\n }\n\n result.protocol = relative.protocol;\n if (!relative.host && !hostlessProtocol[relative.protocol]) {\n var relPath = (relative.pathname || '').split('/');\n while (relPath.length && !(relative.host = relPath.shift()));\n if (!relative.host) relative.host = '';\n if (!relative.hostname) relative.hostname = '';\n if (relPath[0] !== '') relPath.unshift('');\n if (relPath.length < 2) relPath.unshift('');\n result.pathname = relPath.join('/');\n } else {\n result.pathname = relative.pathname;\n }\n result.search = relative.search;\n result.query = relative.query;\n result.host = relative.host || '';\n result.auth = relative.auth;\n result.hostname = relative.hostname || relative.host;\n result.port = relative.port;\n // to support http.request\n if (result.pathname || result.search) {\n var p = result.pathname || '';\n var s = result.search || '';\n result.path = p + s;\n }\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n }\n\n var isSourceAbs = (result.pathname && result.pathname.charAt(0) === '/'),\n isRelAbs = (\n relative.host ||\n relative.pathname && relative.pathname.charAt(0) === '/'\n ),\n mustEndAbs = (isRelAbs || isSourceAbs ||\n (result.host && relative.pathname)),\n removeAllDots = mustEndAbs,\n srcPath = result.pathname && result.pathname.split('/') || [],\n relPath = relative.pathname && relative.pathname.split('/') || [],\n psychotic = result.protocol && !slashedProtocol[result.protocol];\n\n // if the url is a non-slashed url, then relative\n // links like ../.. should be able\n // to crawl up to the hostname, as well. This is strange.\n // result.protocol has already been set by now.\n // Later on, put the first path part into the host field.\n if (psychotic) {\n result.hostname = '';\n result.port = null;\n if (result.host) {\n if (srcPath[0] === '') srcPath[0] = result.host;\n else srcPath.unshift(result.host);\n }\n result.host = '';\n if (relative.protocol) {\n relative.hostname = null;\n relative.port = null;\n if (relative.host) {\n if (relPath[0] === '') relPath[0] = relative.host;\n else relPath.unshift(relative.host);\n }\n relative.host = null;\n }\n mustEndAbs = mustEndAbs && (relPath[0] === '' || srcPath[0] === '');\n }\n\n if (isRelAbs) {\n // it's absolute.\n result.host = (relative.host || relative.host === '') ?\n relative.host : result.host;\n result.hostname = (relative.hostname || relative.hostname === '') ?\n relative.hostname : result.hostname;\n result.search = relative.search;\n result.query = relative.query;\n srcPath = relPath;\n // fall through to the dot-handling below.\n } else if (relPath.length) {\n // it's relative\n // throw away the existing file, and take the new path instead.\n if (!srcPath) srcPath = [];\n srcPath.pop();\n srcPath = srcPath.concat(relPath);\n result.search = relative.search;\n result.query = relative.query;\n } else if (!isNullOrUndefined(relative.search)) {\n // just pull out the search.\n // like href='?foo'.\n // Put this after the other two cases because it simplifies the booleans\n if (psychotic) {\n result.hostname = result.host = srcPath.shift();\n //occationaly the auth can get stuck only in host\n //this especialy happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n result.search = relative.search;\n result.query = relative.query;\n //to support http.request\n if (!isNull(result.pathname) || !isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.href = result.format();\n return result;\n }\n\n if (!srcPath.length) {\n // no path at all. easy.\n // we've already handled the other stuff above.\n result.pathname = null;\n //to support http.request\n if (result.search) {\n result.path = '/' + result.search;\n } else {\n result.path = null;\n }\n result.href = result.format();\n return result;\n }\n\n // if a url ENDs in . or .., then it must get a trailing slash.\n // however, if it ends in anything else non-slashy,\n // then it must NOT get a trailing slash.\n var last = srcPath.slice(-1)[0];\n var hasTrailingSlash = (\n (result.host || relative.host) && (last === '.' || last === '..') ||\n last === '');\n\n // strip single dots, resolve double dots to parent dir\n // if the path tries to go above the root, `up` ends up > 0\n var up = 0;\n for (var i = srcPath.length; i >= 0; i--) {\n last = srcPath[i];\n if (last == '.') {\n srcPath.splice(i, 1);\n } else if (last === '..') {\n srcPath.splice(i, 1);\n up++;\n } else if (up) {\n srcPath.splice(i, 1);\n up--;\n }\n }\n\n // if the path is allowed to go above the root, restore leading ..s\n if (!mustEndAbs && !removeAllDots) {\n for (; up--; up) {\n srcPath.unshift('..');\n }\n }\n\n if (mustEndAbs && srcPath[0] !== '' &&\n (!srcPath[0] || srcPath[0].charAt(0) !== '/')) {\n srcPath.unshift('');\n }\n\n if (hasTrailingSlash && (srcPath.join('/').substr(-1) !== '/')) {\n srcPath.push('');\n }\n\n var isAbsolute = srcPath[0] === '' ||\n (srcPath[0] && srcPath[0].charAt(0) === '/');\n\n // put the host back\n if (psychotic) {\n result.hostname = result.host = isAbsolute ? '' :\n srcPath.length ? srcPath.shift() : '';\n //occationaly the auth can get stuck only in host\n //this especialy happens in cases like\n //url.resolveObject('mailto:local1@domain1', 'local2@domain2')\n var authInHost = result.host && result.host.indexOf('@') > 0 ?\n result.host.split('@') : false;\n if (authInHost) {\n result.auth = authInHost.shift();\n result.host = result.hostname = authInHost.shift();\n }\n }\n\n mustEndAbs = mustEndAbs || (result.host && srcPath.length);\n\n if (mustEndAbs && !isAbsolute) {\n srcPath.unshift('');\n }\n\n if (!srcPath.length) {\n result.pathname = null;\n result.path = null;\n } else {\n result.pathname = srcPath.join('/');\n }\n\n //to support request.http\n if (!isNull(result.pathname) || !isNull(result.search)) {\n result.path = (result.pathname ? result.pathname : '') +\n (result.search ? result.search : '');\n }\n result.auth = relative.auth || result.auth;\n result.slashes = result.slashes || relative.slashes;\n result.href = result.format();\n return result;\n};\n\nUrl.prototype.parseHost = function() {\n var host = this.host;\n var port = portPattern.exec(host);\n if (port) {\n port = port[0];\n if (port !== ':') {\n this.port = port.substr(1);\n }\n host = host.substr(0, host.length - port.length);\n }\n if (host) this.hostname = host;\n};\n\nfunction isString(arg) {\n return typeof arg === \"string\";\n}\n\nfunction isObject(arg) {\n return typeof arg === 'object' && arg !== null;\n}\n\nfunction isNull(arg) {\n return arg === null;\n}\nfunction isNullOrUndefined(arg) {\n return arg == null;\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/**\n * Convert array of 16 byte values to UUID string format of the form:\n * XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX\n */\nvar byteToHex = [];\n\nfor (var i = 0; i < 256; ++i) {\n byteToHex[i] = (i + 0x100).toString(16).substr(1);\n}\n\nfunction bytesToUuid(buf, offset) {\n var i = offset || 0;\n var bth = byteToHex; // join used to fix memory issue caused by concatenation: https://bugs.chromium.org/p/v8/issues/detail?id=3175#c4\n\n return [bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], '-', bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]], bth[buf[i++]]].join('');\n}\n\nvar _default = bytesToUuid;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nObject.defineProperty(exports, \"v1\", {\n enumerable: true,\n get: function () {\n return _v.default;\n }\n});\nObject.defineProperty(exports, \"v3\", {\n enumerable: true,\n get: function () {\n return _v2.default;\n }\n});\nObject.defineProperty(exports, \"v4\", {\n enumerable: true,\n get: function () {\n return _v3.default;\n }\n});\nObject.defineProperty(exports, \"v5\", {\n enumerable: true,\n get: function () {\n return _v4.default;\n }\n});\n\nvar _v = _interopRequireDefault(require(\"./v1.js\"));\n\nvar _v2 = _interopRequireDefault(require(\"./v3.js\"));\n\nvar _v3 = _interopRequireDefault(require(\"./v4.js\"));\n\nvar _v4 = _interopRequireDefault(require(\"./v5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n/*\n * Browser-compatible JavaScript MD5\n *\n * Modification of JavaScript MD5\n * https://github.com/blueimp/JavaScript-MD5\n *\n * Copyright 2011, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on\n * A JavaScript implementation of the RSA Data Security, Inc. MD5 Message\n * Digest Algorithm, as defined in RFC 1321.\n * Version 2.2 Copyright (C) Paul Johnston 1999 - 2009\n * Other contributors: Greg Holt, Andrew Kepert, Ydnar, Lostinet\n * Distributed under the BSD License\n * See http://pajhome.org.uk/crypt/md5 for more info.\n */\nfunction md5(bytes) {\n if (typeof bytes == 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Array(msg.length);\n\n for (var i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i);\n }\n\n return md5ToHexEncodedArray(wordsToMd5(bytesToWords(bytes), bytes.length * 8));\n}\n/*\n * Convert an array of little-endian words to an array of bytes\n */\n\n\nfunction md5ToHexEncodedArray(input) {\n var i;\n var x;\n var output = [];\n var length32 = input.length * 32;\n var hexTab = '0123456789abcdef';\n var hex;\n\n for (i = 0; i < length32; i += 8) {\n x = input[i >> 5] >>> i % 32 & 0xff;\n hex = parseInt(hexTab.charAt(x >>> 4 & 0x0f) + hexTab.charAt(x & 0x0f), 16);\n output.push(hex);\n }\n\n return output;\n}\n/*\n * Calculate the MD5 of an array of little-endian words, and a bit length.\n */\n\n\nfunction wordsToMd5(x, len) {\n /* append padding */\n x[len >> 5] |= 0x80 << len % 32;\n x[(len + 64 >>> 9 << 4) + 14] = len;\n var i;\n var olda;\n var oldb;\n var oldc;\n var oldd;\n var a = 1732584193;\n var b = -271733879;\n var c = -1732584194;\n var d = 271733878;\n\n for (i = 0; i < x.length; i += 16) {\n olda = a;\n oldb = b;\n oldc = c;\n oldd = d;\n a = md5ff(a, b, c, d, x[i], 7, -680876936);\n d = md5ff(d, a, b, c, x[i + 1], 12, -389564586);\n c = md5ff(c, d, a, b, x[i + 2], 17, 606105819);\n b = md5ff(b, c, d, a, x[i + 3], 22, -1044525330);\n a = md5ff(a, b, c, d, x[i + 4], 7, -176418897);\n d = md5ff(d, a, b, c, x[i + 5], 12, 1200080426);\n c = md5ff(c, d, a, b, x[i + 6], 17, -1473231341);\n b = md5ff(b, c, d, a, x[i + 7], 22, -45705983);\n a = md5ff(a, b, c, d, x[i + 8], 7, 1770035416);\n d = md5ff(d, a, b, c, x[i + 9], 12, -1958414417);\n c = md5ff(c, d, a, b, x[i + 10], 17, -42063);\n b = md5ff(b, c, d, a, x[i + 11], 22, -1990404162);\n a = md5ff(a, b, c, d, x[i + 12], 7, 1804603682);\n d = md5ff(d, a, b, c, x[i + 13], 12, -40341101);\n c = md5ff(c, d, a, b, x[i + 14], 17, -1502002290);\n b = md5ff(b, c, d, a, x[i + 15], 22, 1236535329);\n a = md5gg(a, b, c, d, x[i + 1], 5, -165796510);\n d = md5gg(d, a, b, c, x[i + 6], 9, -1069501632);\n c = md5gg(c, d, a, b, x[i + 11], 14, 643717713);\n b = md5gg(b, c, d, a, x[i], 20, -373897302);\n a = md5gg(a, b, c, d, x[i + 5], 5, -701558691);\n d = md5gg(d, a, b, c, x[i + 10], 9, 38016083);\n c = md5gg(c, d, a, b, x[i + 15], 14, -660478335);\n b = md5gg(b, c, d, a, x[i + 4], 20, -405537848);\n a = md5gg(a, b, c, d, x[i + 9], 5, 568446438);\n d = md5gg(d, a, b, c, x[i + 14], 9, -1019803690);\n c = md5gg(c, d, a, b, x[i + 3], 14, -187363961);\n b = md5gg(b, c, d, a, x[i + 8], 20, 1163531501);\n a = md5gg(a, b, c, d, x[i + 13], 5, -1444681467);\n d = md5gg(d, a, b, c, x[i + 2], 9, -51403784);\n c = md5gg(c, d, a, b, x[i + 7], 14, 1735328473);\n b = md5gg(b, c, d, a, x[i + 12], 20, -1926607734);\n a = md5hh(a, b, c, d, x[i + 5], 4, -378558);\n d = md5hh(d, a, b, c, x[i + 8], 11, -2022574463);\n c = md5hh(c, d, a, b, x[i + 11], 16, 1839030562);\n b = md5hh(b, c, d, a, x[i + 14], 23, -35309556);\n a = md5hh(a, b, c, d, x[i + 1], 4, -1530992060);\n d = md5hh(d, a, b, c, x[i + 4], 11, 1272893353);\n c = md5hh(c, d, a, b, x[i + 7], 16, -155497632);\n b = md5hh(b, c, d, a, x[i + 10], 23, -1094730640);\n a = md5hh(a, b, c, d, x[i + 13], 4, 681279174);\n d = md5hh(d, a, b, c, x[i], 11, -358537222);\n c = md5hh(c, d, a, b, x[i + 3], 16, -722521979);\n b = md5hh(b, c, d, a, x[i + 6], 23, 76029189);\n a = md5hh(a, b, c, d, x[i + 9], 4, -640364487);\n d = md5hh(d, a, b, c, x[i + 12], 11, -421815835);\n c = md5hh(c, d, a, b, x[i + 15], 16, 530742520);\n b = md5hh(b, c, d, a, x[i + 2], 23, -995338651);\n a = md5ii(a, b, c, d, x[i], 6, -198630844);\n d = md5ii(d, a, b, c, x[i + 7], 10, 1126891415);\n c = md5ii(c, d, a, b, x[i + 14], 15, -1416354905);\n b = md5ii(b, c, d, a, x[i + 5], 21, -57434055);\n a = md5ii(a, b, c, d, x[i + 12], 6, 1700485571);\n d = md5ii(d, a, b, c, x[i + 3], 10, -1894986606);\n c = md5ii(c, d, a, b, x[i + 10], 15, -1051523);\n b = md5ii(b, c, d, a, x[i + 1], 21, -2054922799);\n a = md5ii(a, b, c, d, x[i + 8], 6, 1873313359);\n d = md5ii(d, a, b, c, x[i + 15], 10, -30611744);\n c = md5ii(c, d, a, b, x[i + 6], 15, -1560198380);\n b = md5ii(b, c, d, a, x[i + 13], 21, 1309151649);\n a = md5ii(a, b, c, d, x[i + 4], 6, -145523070);\n d = md5ii(d, a, b, c, x[i + 11], 10, -1120210379);\n c = md5ii(c, d, a, b, x[i + 2], 15, 718787259);\n b = md5ii(b, c, d, a, x[i + 9], 21, -343485551);\n a = safeAdd(a, olda);\n b = safeAdd(b, oldb);\n c = safeAdd(c, oldc);\n d = safeAdd(d, oldd);\n }\n\n return [a, b, c, d];\n}\n/*\n * Convert an array bytes to an array of little-endian words\n * Characters >255 have their high-byte silently ignored.\n */\n\n\nfunction bytesToWords(input) {\n var i;\n var output = [];\n output[(input.length >> 2) - 1] = undefined;\n\n for (i = 0; i < output.length; i += 1) {\n output[i] = 0;\n }\n\n var length8 = input.length * 8;\n\n for (i = 0; i < length8; i += 8) {\n output[i >> 5] |= (input[i / 8] & 0xff) << i % 32;\n }\n\n return output;\n}\n/*\n * Add integers, wrapping at 2^32. This uses 16-bit operations internally\n * to work around bugs in some JS interpreters.\n */\n\n\nfunction safeAdd(x, y) {\n var lsw = (x & 0xffff) + (y & 0xffff);\n var msw = (x >> 16) + (y >> 16) + (lsw >> 16);\n return msw << 16 | lsw & 0xffff;\n}\n/*\n * Bitwise rotate a 32-bit number to the left.\n */\n\n\nfunction bitRotateLeft(num, cnt) {\n return num << cnt | num >>> 32 - cnt;\n}\n/*\n * These functions implement the four basic operations the algorithm uses.\n */\n\n\nfunction md5cmn(q, a, b, x, s, t) {\n return safeAdd(bitRotateLeft(safeAdd(safeAdd(a, q), safeAdd(x, t)), s), b);\n}\n\nfunction md5ff(a, b, c, d, x, s, t) {\n return md5cmn(b & c | ~b & d, a, b, x, s, t);\n}\n\nfunction md5gg(a, b, c, d, x, s, t) {\n return md5cmn(b & d | c & ~d, a, b, x, s, t);\n}\n\nfunction md5hh(a, b, c, d, x, s, t) {\n return md5cmn(b ^ c ^ d, a, b, x, s, t);\n}\n\nfunction md5ii(a, b, c, d, x, s, t) {\n return md5cmn(c ^ (b | ~d), a, b, x, s, t);\n}\n\nvar _default = md5;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = rng;\n// Unique ID creation requires a high quality random # generator. In the browser we therefore\n// require the crypto API and do not support built-in fallback to lower quality random number\n// generators (like Math.random()).\n// getRandomValues needs to be invoked in a context where \"this\" is a Crypto implementation. Also,\n// find the complete implementation of crypto (msCrypto) on IE11.\nvar getRandomValues = typeof crypto != 'undefined' && crypto.getRandomValues && crypto.getRandomValues.bind(crypto) || typeof msCrypto != 'undefined' && typeof msCrypto.getRandomValues == 'function' && msCrypto.getRandomValues.bind(msCrypto);\nvar rnds8 = new Uint8Array(16); // eslint-disable-line no-undef\n\nfunction rng() {\n if (!getRandomValues) {\n throw new Error('crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported');\n }\n\n return getRandomValues(rnds8);\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\n// Adapted from Chris Veness' SHA1 code at\n// http://www.movable-type.co.uk/scripts/sha1.html\nfunction f(s, x, y, z) {\n switch (s) {\n case 0:\n return x & y ^ ~x & z;\n\n case 1:\n return x ^ y ^ z;\n\n case 2:\n return x & y ^ x & z ^ y & z;\n\n case 3:\n return x ^ y ^ z;\n }\n}\n\nfunction ROTL(x, n) {\n return x << n | x >>> 32 - n;\n}\n\nfunction sha1(bytes) {\n var K = [0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6];\n var H = [0x67452301, 0xefcdab89, 0x98badcfe, 0x10325476, 0xc3d2e1f0];\n\n if (typeof bytes == 'string') {\n var msg = unescape(encodeURIComponent(bytes)); // UTF8 escape\n\n bytes = new Array(msg.length);\n\n for (var i = 0; i < msg.length; i++) bytes[i] = msg.charCodeAt(i);\n }\n\n bytes.push(0x80);\n var l = bytes.length / 4 + 2;\n var N = Math.ceil(l / 16);\n var M = new Array(N);\n\n for (var i = 0; i < N; i++) {\n M[i] = new Array(16);\n\n for (var j = 0; j < 16; j++) {\n M[i][j] = bytes[i * 64 + j * 4] << 24 | bytes[i * 64 + j * 4 + 1] << 16 | bytes[i * 64 + j * 4 + 2] << 8 | bytes[i * 64 + j * 4 + 3];\n }\n }\n\n M[N - 1][14] = (bytes.length - 1) * 8 / Math.pow(2, 32);\n M[N - 1][14] = Math.floor(M[N - 1][14]);\n M[N - 1][15] = (bytes.length - 1) * 8 & 0xffffffff;\n\n for (var i = 0; i < N; i++) {\n var W = new Array(80);\n\n for (var t = 0; t < 16; t++) W[t] = M[i][t];\n\n for (var t = 16; t < 80; t++) {\n W[t] = ROTL(W[t - 3] ^ W[t - 8] ^ W[t - 14] ^ W[t - 16], 1);\n }\n\n var a = H[0];\n var b = H[1];\n var c = H[2];\n var d = H[3];\n var e = H[4];\n\n for (var t = 0; t < 80; t++) {\n var s = Math.floor(t / 20);\n var T = ROTL(a, 5) + f(s, b, c, d) + e + K[s] + W[t] >>> 0;\n e = d;\n d = c;\n c = ROTL(b, 30) >>> 0;\n b = a;\n a = T;\n }\n\n H[0] = H[0] + a >>> 0;\n H[1] = H[1] + b >>> 0;\n H[2] = H[2] + c >>> 0;\n H[3] = H[3] + d >>> 0;\n H[4] = H[4] + e >>> 0;\n }\n\n return [H[0] >> 24 & 0xff, H[0] >> 16 & 0xff, H[0] >> 8 & 0xff, H[0] & 0xff, H[1] >> 24 & 0xff, H[1] >> 16 & 0xff, H[1] >> 8 & 0xff, H[1] & 0xff, H[2] >> 24 & 0xff, H[2] >> 16 & 0xff, H[2] >> 8 & 0xff, H[2] & 0xff, H[3] >> 24 & 0xff, H[3] >> 16 & 0xff, H[3] >> 8 & 0xff, H[3] & 0xff, H[4] >> 24 & 0xff, H[4] >> 16 & 0xff, H[4] >> 8 & 0xff, H[4] & 0xff];\n}\n\nvar _default = sha1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _bytesToUuid = _interopRequireDefault(require(\"./bytesToUuid.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\n// **`v1()` - Generate time-based UUID**\n//\n// Inspired by https://github.com/LiosK/UUID.js\n// and http://docs.python.org/library/uuid.html\nvar _nodeId;\n\nvar _clockseq; // Previous uuid creation time\n\n\nvar _lastMSecs = 0;\nvar _lastNSecs = 0; // See https://github.com/uuidjs/uuid for API details\n\nfunction v1(options, buf, offset) {\n var i = buf && offset || 0;\n var b = buf || [];\n options = options || {};\n var node = options.node || _nodeId;\n var clockseq = options.clockseq !== undefined ? options.clockseq : _clockseq; // node and clockseq need to be initialized to random values if they're not\n // specified. We do this lazily to minimize issues related to insufficient\n // system entropy. See #189\n\n if (node == null || clockseq == null) {\n var seedBytes = options.random || (options.rng || _rng.default)();\n\n if (node == null) {\n // Per 4.5, create and 48-bit node id, (47 random bits + multicast bit = 1)\n node = _nodeId = [seedBytes[0] | 0x01, seedBytes[1], seedBytes[2], seedBytes[3], seedBytes[4], seedBytes[5]];\n }\n\n if (clockseq == null) {\n // Per 4.2.2, randomize (14 bit) clockseq\n clockseq = _clockseq = (seedBytes[6] << 8 | seedBytes[7]) & 0x3fff;\n }\n } // UUID timestamps are 100 nano-second units since the Gregorian epoch,\n // (1582-10-15 00:00). JSNumbers aren't precise enough for this, so\n // time is handled internally as 'msecs' (integer milliseconds) and 'nsecs'\n // (100-nanoseconds offset from msecs) since unix epoch, 1970-01-01 00:00.\n\n\n var msecs = options.msecs !== undefined ? options.msecs : new Date().getTime(); // Per 4.2.1.2, use count of uuid's generated during the current clock\n // cycle to simulate higher resolution clock\n\n var nsecs = options.nsecs !== undefined ? options.nsecs : _lastNSecs + 1; // Time since last uuid creation (in msecs)\n\n var dt = msecs - _lastMSecs + (nsecs - _lastNSecs) / 10000; // Per 4.2.1.2, Bump clockseq on clock regression\n\n if (dt < 0 && options.clockseq === undefined) {\n clockseq = clockseq + 1 & 0x3fff;\n } // Reset nsecs if clock regresses (new clockseq) or we've moved onto a new\n // time interval\n\n\n if ((dt < 0 || msecs > _lastMSecs) && options.nsecs === undefined) {\n nsecs = 0;\n } // Per 4.2.1.2 Throw error if too many uuids are requested\n\n\n if (nsecs >= 10000) {\n throw new Error(\"uuid.v1(): Can't create more than 10M uuids/sec\");\n }\n\n _lastMSecs = msecs;\n _lastNSecs = nsecs;\n _clockseq = clockseq; // Per 4.1.4 - Convert from unix epoch to Gregorian epoch\n\n msecs += 12219292800000; // `time_low`\n\n var tl = ((msecs & 0xfffffff) * 10000 + nsecs) % 0x100000000;\n b[i++] = tl >>> 24 & 0xff;\n b[i++] = tl >>> 16 & 0xff;\n b[i++] = tl >>> 8 & 0xff;\n b[i++] = tl & 0xff; // `time_mid`\n\n var tmh = msecs / 0x100000000 * 10000 & 0xfffffff;\n b[i++] = tmh >>> 8 & 0xff;\n b[i++] = tmh & 0xff; // `time_high_and_version`\n\n b[i++] = tmh >>> 24 & 0xf | 0x10; // include version\n\n b[i++] = tmh >>> 16 & 0xff; // `clock_seq_hi_and_reserved` (Per 4.2.2 - include variant)\n\n b[i++] = clockseq >>> 8 | 0x80; // `clock_seq_low`\n\n b[i++] = clockseq & 0xff; // `node`\n\n for (var n = 0; n < 6; ++n) {\n b[i + n] = node[n];\n }\n\n return buf ? buf : (0, _bytesToUuid.default)(b);\n}\n\nvar _default = v1;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _md = _interopRequireDefault(require(\"./md5.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v3 = (0, _v.default)('v3', 0x30, _md.default);\nvar _default = v3;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = _default;\nexports.URL = exports.DNS = void 0;\n\nvar _bytesToUuid = _interopRequireDefault(require(\"./bytesToUuid.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction uuidToBytes(uuid) {\n // Note: We assume we're being passed a valid uuid string\n var bytes = [];\n uuid.replace(/[a-fA-F0-9]{2}/g, function (hex) {\n bytes.push(parseInt(hex, 16));\n });\n return bytes;\n}\n\nfunction stringToBytes(str) {\n str = unescape(encodeURIComponent(str)); // UTF8 escape\n\n var bytes = new Array(str.length);\n\n for (var i = 0; i < str.length; i++) {\n bytes[i] = str.charCodeAt(i);\n }\n\n return bytes;\n}\n\nconst DNS = '6ba7b810-9dad-11d1-80b4-00c04fd430c8';\nexports.DNS = DNS;\nconst URL = '6ba7b811-9dad-11d1-80b4-00c04fd430c8';\nexports.URL = URL;\n\nfunction _default(name, version, hashfunc) {\n var generateUUID = function (value, namespace, buf, offset) {\n var off = buf && offset || 0;\n if (typeof value == 'string') value = stringToBytes(value);\n if (typeof namespace == 'string') namespace = uuidToBytes(namespace);\n if (!Array.isArray(value)) throw TypeError('value must be an array of bytes');\n if (!Array.isArray(namespace) || namespace.length !== 16) throw TypeError('namespace must be uuid string or an Array of 16 byte values'); // Per 4.3\n\n var bytes = hashfunc(namespace.concat(value));\n bytes[6] = bytes[6] & 0x0f | version;\n bytes[8] = bytes[8] & 0x3f | 0x80;\n\n if (buf) {\n for (var idx = 0; idx < 16; ++idx) {\n buf[off + idx] = bytes[idx];\n }\n }\n\n return buf || (0, _bytesToUuid.default)(bytes);\n }; // Function#name is not settable on some platforms (#270)\n\n\n try {\n generateUUID.name = name;\n } catch (err) {} // For CommonJS default export support\n\n\n generateUUID.DNS = DNS;\n generateUUID.URL = URL;\n return generateUUID;\n}","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _rng = _interopRequireDefault(require(\"./rng.js\"));\n\nvar _bytesToUuid = _interopRequireDefault(require(\"./bytesToUuid.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nfunction v4(options, buf, offset) {\n var i = buf && offset || 0;\n\n if (typeof options == 'string') {\n buf = options === 'binary' ? new Array(16) : null;\n options = null;\n }\n\n options = options || {};\n\n var rnds = options.random || (options.rng || _rng.default)(); // Per 4.4, set bits for version and `clock_seq_hi_and_reserved`\n\n\n rnds[6] = rnds[6] & 0x0f | 0x40;\n rnds[8] = rnds[8] & 0x3f | 0x80; // Copy bytes to buffer, if provided\n\n if (buf) {\n for (var ii = 0; ii < 16; ++ii) {\n buf[i + ii] = rnds[ii];\n }\n }\n\n return buf || (0, _bytesToUuid.default)(rnds);\n}\n\nvar _default = v4;\nexports.default = _default;","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar _v = _interopRequireDefault(require(\"./v35.js\"));\n\nvar _sha = _interopRequireDefault(require(\"./sha1.js\"));\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nconst v5 = (0, _v.default)('v5', 0x50, _sha.default);\nvar _default = v5;\nexports.default = _default;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LRU_1 = require(\"./utils/LRU\");\nvar CACHE_SIZE = 1000;\n/**\n * Inspired node-lru-cache[https://github.com/isaacs/node-lru-cache]\n */\nvar EndpointCache = /** @class */ (function () {\n function EndpointCache(maxSize) {\n if (maxSize === void 0) { maxSize = CACHE_SIZE; }\n this.maxSize = maxSize;\n this.cache = new LRU_1.LRUCache(maxSize);\n }\n ;\n Object.defineProperty(EndpointCache.prototype, \"size\", {\n get: function () {\n return this.cache.length;\n },\n enumerable: true,\n configurable: true\n });\n EndpointCache.prototype.put = function (key, value) {\n var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;\n var endpointRecord = this.populateValue(value);\n this.cache.put(keyString, endpointRecord);\n };\n EndpointCache.prototype.get = function (key) {\n var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;\n var now = Date.now();\n var records = this.cache.get(keyString);\n if (records) {\n for (var i = records.length-1; i >= 0; i--) {\n var record = records[i];\n if (record.Expire < now) {\n records.splice(i, 1);\n }\n }\n if (records.length === 0) {\n this.cache.remove(keyString);\n return undefined;\n }\n }\n return records;\n };\n EndpointCache.getKeyString = function (key) {\n var identifiers = [];\n var identifierNames = Object.keys(key).sort();\n for (var i = 0; i < identifierNames.length; i++) {\n var identifierName = identifierNames[i];\n if (key[identifierName] === undefined)\n continue;\n identifiers.push(key[identifierName]);\n }\n return identifiers.join(' ');\n };\n EndpointCache.prototype.populateValue = function (endpoints) {\n var now = Date.now();\n return endpoints.map(function (endpoint) { return ({\n Address: endpoint.Address || '',\n Expire: now + (endpoint.CachePeriodInMinutes || 1) * 60 * 1000\n }); });\n };\n EndpointCache.prototype.empty = function () {\n this.cache.empty();\n };\n EndpointCache.prototype.remove = function (key) {\n var keyString = typeof key !== 'string' ? EndpointCache.getKeyString(key) : key;\n this.cache.remove(keyString);\n };\n return EndpointCache;\n}());\nexports.EndpointCache = EndpointCache;","\"use strict\";\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar LinkedListNode = /** @class */ (function () {\n function LinkedListNode(key, value) {\n this.key = key;\n this.value = value;\n }\n return LinkedListNode;\n}());\nvar LRUCache = /** @class */ (function () {\n function LRUCache(size) {\n this.nodeMap = {};\n this.size = 0;\n if (typeof size !== 'number' || size < 1) {\n throw new Error('Cache size can only be positive number');\n }\n this.sizeLimit = size;\n }\n Object.defineProperty(LRUCache.prototype, \"length\", {\n get: function () {\n return this.size;\n },\n enumerable: true,\n configurable: true\n });\n LRUCache.prototype.prependToList = function (node) {\n if (!this.headerNode) {\n this.tailNode = node;\n }\n else {\n this.headerNode.prev = node;\n node.next = this.headerNode;\n }\n this.headerNode = node;\n this.size++;\n };\n LRUCache.prototype.removeFromTail = function () {\n if (!this.tailNode) {\n return undefined;\n }\n var node = this.tailNode;\n var prevNode = node.prev;\n if (prevNode) {\n prevNode.next = undefined;\n }\n node.prev = undefined;\n this.tailNode = prevNode;\n this.size--;\n return node;\n };\n LRUCache.prototype.detachFromList = function (node) {\n if (this.headerNode === node) {\n this.headerNode = node.next;\n }\n if (this.tailNode === node) {\n this.tailNode = node.prev;\n }\n if (node.prev) {\n node.prev.next = node.next;\n }\n if (node.next) {\n node.next.prev = node.prev;\n }\n node.next = undefined;\n node.prev = undefined;\n this.size--;\n };\n LRUCache.prototype.get = function (key) {\n if (this.nodeMap[key]) {\n var node = this.nodeMap[key];\n this.detachFromList(node);\n this.prependToList(node);\n return node.value;\n }\n };\n LRUCache.prototype.remove = function (key) {\n if (this.nodeMap[key]) {\n var node = this.nodeMap[key];\n this.detachFromList(node);\n delete this.nodeMap[key];\n }\n };\n LRUCache.prototype.put = function (key, value) {\n if (this.nodeMap[key]) {\n this.remove(key);\n }\n else if (this.size === this.sizeLimit) {\n var tailNode = this.removeFromTail();\n var key_1 = tailNode.key;\n delete this.nodeMap[key_1];\n }\n var newNode = new LinkedListNode(key, value);\n this.nodeMap[key] = newNode;\n this.prependToList(newNode);\n };\n LRUCache.prototype.empty = function () {\n var keys = Object.keys(this.nodeMap);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n var node = this.nodeMap[key];\n this.detachFromList(node);\n delete this.nodeMap[key];\n }\n };\n return LRUCache;\n}());\nexports.LRUCache = LRUCache;","module.exports = require('./lib/axios');","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar cookies = require('./../helpers/cookies');\nvar buildURL = require('./../helpers/buildURL');\nvar buildFullPath = require('../core/buildFullPath');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar transitionalDefaults = require('../defaults/transitional');\nvar AxiosError = require('../core/AxiosError');\nvar CanceledError = require('../cancel/CanceledError');\nvar parseProtocol = require('../helpers/parseProtocol');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n var responseType = config.responseType;\n var onCanceled;\n function done() {\n if (config.cancelToken) {\n config.cancelToken.unsubscribe(onCanceled);\n }\n\n if (config.signal) {\n config.signal.removeEventListener('abort', onCanceled);\n }\n }\n\n if (utils.isFormData(requestData) && utils.isStandardBrowserEnv()) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password ? unescape(encodeURIComponent(config.auth.password)) : '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n var fullPath = buildFullPath(config.baseURL, config.url);\n\n request.open(config.method.toUpperCase(), buildURL(fullPath, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n function onloadend() {\n if (!request) {\n return;\n }\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !responseType || responseType === 'text' || responseType === 'json' ?\n request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(function _resolve(value) {\n resolve(value);\n done();\n }, function _reject(err) {\n reject(err);\n done();\n }, response);\n\n // Clean up request\n request = null;\n }\n\n if ('onloadend' in request) {\n // Use onloadend if available\n request.onloadend = onloadend;\n } else {\n // Listen for ready state to emulate onloadend\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n // readystate handler is calling before onerror or ontimeout handlers,\n // so we should call onloadend on the next 'tick'\n setTimeout(onloadend);\n };\n }\n\n // Handle browser request cancellation (as opposed to a manual cancellation)\n request.onabort = function handleAbort() {\n if (!request) {\n return;\n }\n\n reject(new AxiosError('Request aborted', AxiosError.ECONNABORTED, config, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(new AxiosError('Network Error', AxiosError.ERR_NETWORK, config, request, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n var timeoutErrorMessage = config.timeout ? 'timeout of ' + config.timeout + 'ms exceeded' : 'timeout exceeded';\n var transitional = config.transitional || transitionalDefaults;\n if (config.timeoutErrorMessage) {\n timeoutErrorMessage = config.timeoutErrorMessage;\n }\n reject(new AxiosError(\n timeoutErrorMessage,\n transitional.clarifyTimeoutError ? AxiosError.ETIMEDOUT : AxiosError.ECONNABORTED,\n config,\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(fullPath)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (!utils.isUndefined(config.withCredentials)) {\n request.withCredentials = !!config.withCredentials;\n }\n\n // Add responseType to request if needed\n if (responseType && responseType !== 'json') {\n request.responseType = config.responseType;\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken || config.signal) {\n // Handle cancellation\n // eslint-disable-next-line func-names\n onCanceled = function(cancel) {\n if (!request) {\n return;\n }\n reject(!cancel || (cancel && cancel.type) ? new CanceledError() : cancel);\n request.abort();\n request = null;\n };\n\n config.cancelToken && config.cancelToken.subscribe(onCanceled);\n if (config.signal) {\n config.signal.aborted ? onCanceled() : config.signal.addEventListener('abort', onCanceled);\n }\n }\n\n if (!requestData) {\n requestData = null;\n }\n\n var protocol = parseProtocol(fullPath);\n\n if (protocol && [ 'http', 'https', 'file' ].indexOf(protocol) === -1) {\n reject(new AxiosError('Unsupported protocol ' + protocol + ':', AxiosError.ERR_BAD_REQUEST, config));\n return;\n }\n\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar mergeConfig = require('./core/mergeConfig');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n // Factory for creating new instances\n instance.create = function create(instanceConfig) {\n return createInstance(mergeConfig(defaultConfig, instanceConfig));\n };\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Expose Cancel & CancelToken\naxios.CanceledError = require('./cancel/CanceledError');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\naxios.VERSION = require('./env/data').version;\naxios.toFormData = require('./helpers/toFormData');\n\n// Expose AxiosError class\naxios.AxiosError = require('../lib/core/AxiosError');\n\n// alias for CanceledError for backward compatibility\naxios.Cancel = axios.CanceledError;\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\n// Expose isAxiosError\naxios.isAxiosError = require('./helpers/isAxiosError');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","'use strict';\n\nvar CanceledError = require('./CanceledError');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n\n // eslint-disable-next-line func-names\n this.promise.then(function(cancel) {\n if (!token._listeners) return;\n\n var i;\n var l = token._listeners.length;\n\n for (i = 0; i < l; i++) {\n token._listeners[i](cancel);\n }\n token._listeners = null;\n });\n\n // eslint-disable-next-line func-names\n this.promise.then = function(onfulfilled) {\n var _resolve;\n // eslint-disable-next-line func-names\n var promise = new Promise(function(resolve) {\n token.subscribe(resolve);\n _resolve = resolve;\n }).then(onfulfilled);\n\n promise.cancel = function reject() {\n token.unsubscribe(_resolve);\n };\n\n return promise;\n };\n\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new CanceledError(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Subscribe to the cancel signal\n */\n\nCancelToken.prototype.subscribe = function subscribe(listener) {\n if (this.reason) {\n listener(this.reason);\n return;\n }\n\n if (this._listeners) {\n this._listeners.push(listener);\n } else {\n this._listeners = [listener];\n }\n};\n\n/**\n * Unsubscribe from the cancel signal\n */\n\nCancelToken.prototype.unsubscribe = function unsubscribe(listener) {\n if (!this._listeners) {\n return;\n }\n var index = this._listeners.indexOf(listener);\n if (index !== -1) {\n this._listeners.splice(index, 1);\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\nvar AxiosError = require('../core/AxiosError');\nvar utils = require('../utils');\n\n/**\n * A `CanceledError` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction CanceledError(message) {\n // eslint-disable-next-line no-eq-null,eqeqeq\n AxiosError.call(this, message == null ? 'canceled' : message, AxiosError.ERR_CANCELED);\n this.name = 'CanceledError';\n}\n\nutils.inherits(CanceledError, AxiosError, {\n __CANCEL__: true\n});\n\nmodule.exports = CanceledError;\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar buildURL = require('../helpers/buildURL');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\nvar mergeConfig = require('./mergeConfig');\nvar buildFullPath = require('./buildFullPath');\nvar validator = require('../helpers/validator');\n\nvar validators = validator.validators;\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(configOrUrl, config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof configOrUrl === 'string') {\n config = config || {};\n config.url = configOrUrl;\n } else {\n config = configOrUrl || {};\n }\n\n config = mergeConfig(this.defaults, config);\n\n // Set config.method\n if (config.method) {\n config.method = config.method.toLowerCase();\n } else if (this.defaults.method) {\n config.method = this.defaults.method.toLowerCase();\n } else {\n config.method = 'get';\n }\n\n var transitional = config.transitional;\n\n if (transitional !== undefined) {\n validator.assertOptions(transitional, {\n silentJSONParsing: validators.transitional(validators.boolean),\n forcedJSONParsing: validators.transitional(validators.boolean),\n clarifyTimeoutError: validators.transitional(validators.boolean)\n }, false);\n }\n\n // filter out skipped interceptors\n var requestInterceptorChain = [];\n var synchronousRequestInterceptors = true;\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n if (typeof interceptor.runWhen === 'function' && interceptor.runWhen(config) === false) {\n return;\n }\n\n synchronousRequestInterceptors = synchronousRequestInterceptors && interceptor.synchronous;\n\n requestInterceptorChain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n var responseInterceptorChain = [];\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n responseInterceptorChain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n var promise;\n\n if (!synchronousRequestInterceptors) {\n var chain = [dispatchRequest, undefined];\n\n Array.prototype.unshift.apply(chain, requestInterceptorChain);\n chain = chain.concat(responseInterceptorChain);\n\n promise = Promise.resolve(config);\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n }\n\n\n var newConfig = config;\n while (requestInterceptorChain.length) {\n var onFulfilled = requestInterceptorChain.shift();\n var onRejected = requestInterceptorChain.shift();\n try {\n newConfig = onFulfilled(newConfig);\n } catch (error) {\n onRejected(error);\n break;\n }\n }\n\n try {\n promise = dispatchRequest(newConfig);\n } catch (error) {\n return Promise.reject(error);\n }\n\n while (responseInterceptorChain.length) {\n promise = promise.then(responseInterceptorChain.shift(), responseInterceptorChain.shift());\n }\n\n return promise;\n};\n\nAxios.prototype.getUri = function getUri(config) {\n config = mergeConfig(this.defaults, config);\n var fullPath = buildFullPath(config.baseURL, config.url);\n return buildURL(fullPath, config.params, config.paramsSerializer);\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n url: url,\n data: (config || {}).data\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n\n function generateHTTPMethod(isForm) {\n return function httpMethod(url, data, config) {\n return this.request(mergeConfig(config || {}, {\n method: method,\n headers: isForm ? {\n 'Content-Type': 'multipart/form-data'\n } : {},\n url: url,\n data: data\n }));\n };\n }\n\n Axios.prototype[method] = generateHTTPMethod();\n\n Axios.prototype[method + 'Form'] = generateHTTPMethod(true);\n});\n\nmodule.exports = Axios;\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [config] The config.\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nfunction AxiosError(message, code, config, request, response) {\n Error.call(this);\n this.message = message;\n this.name = 'AxiosError';\n code && (this.code = code);\n config && (this.config = config);\n request && (this.request = request);\n response && (this.response = response);\n}\n\nutils.inherits(AxiosError, Error, {\n toJSON: function toJSON() {\n return {\n // Standard\n message: this.message,\n name: this.name,\n // Microsoft\n description: this.description,\n number: this.number,\n // Mozilla\n fileName: this.fileName,\n lineNumber: this.lineNumber,\n columnNumber: this.columnNumber,\n stack: this.stack,\n // Axios\n config: this.config,\n code: this.code,\n status: this.response && this.response.status ? this.response.status : null\n };\n }\n});\n\nvar prototype = AxiosError.prototype;\nvar descriptors = {};\n\n[\n 'ERR_BAD_OPTION_VALUE',\n 'ERR_BAD_OPTION',\n 'ECONNABORTED',\n 'ETIMEDOUT',\n 'ERR_NETWORK',\n 'ERR_FR_TOO_MANY_REDIRECTS',\n 'ERR_DEPRECATED',\n 'ERR_BAD_RESPONSE',\n 'ERR_BAD_REQUEST',\n 'ERR_CANCELED'\n// eslint-disable-next-line func-names\n].forEach(function(code) {\n descriptors[code] = {value: code};\n});\n\nObject.defineProperties(AxiosError, descriptors);\nObject.defineProperty(prototype, 'isAxiosError', {value: true});\n\n// eslint-disable-next-line func-names\nAxiosError.from = function(error, code, config, request, response, customProps) {\n var axiosError = Object.create(prototype);\n\n utils.toFlatObject(error, axiosError, function filter(obj) {\n return obj !== Error.prototype;\n });\n\n AxiosError.call(axiosError, error.message, code, config, request, response);\n\n axiosError.name = error.name;\n\n customProps && Object.assign(axiosError, customProps);\n\n return axiosError;\n};\n\nmodule.exports = AxiosError;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected, options) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected,\n synchronous: options ? options.synchronous : false,\n runWhen: options ? options.runWhen : null\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar isAbsoluteURL = require('../helpers/isAbsoluteURL');\nvar combineURLs = require('../helpers/combineURLs');\n\n/**\n * Creates a new URL by combining the baseURL with the requestedURL,\n * only when the requestedURL is not already an absolute URL.\n * If the requestURL is absolute, this function returns the requestedURL untouched.\n *\n * @param {string} baseURL The base URL\n * @param {string} requestedURL Absolute or relative URL to combine\n * @returns {string} The combined full path\n */\nmodule.exports = function buildFullPath(baseURL, requestedURL) {\n if (baseURL && !isAbsoluteURL(requestedURL)) {\n return combineURLs(baseURL, requestedURL);\n }\n return requestedURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar CanceledError = require('../cancel/CanceledError');\n\n/**\n * Throws a `CanceledError` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n\n if (config.signal && config.signal.aborted) {\n throw new CanceledError();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData.call(\n config,\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData.call(\n config,\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData.call(\n config,\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Config-specific merge-function which creates a new config-object\n * by merging two configuration objects together.\n *\n * @param {Object} config1\n * @param {Object} config2\n * @returns {Object} New object resulting from merging config2 to config1\n */\nmodule.exports = function mergeConfig(config1, config2) {\n // eslint-disable-next-line no-param-reassign\n config2 = config2 || {};\n var config = {};\n\n function getMergedValue(target, source) {\n if (utils.isPlainObject(target) && utils.isPlainObject(source)) {\n return utils.merge(target, source);\n } else if (utils.isPlainObject(source)) {\n return utils.merge({}, source);\n } else if (utils.isArray(source)) {\n return source.slice();\n }\n return source;\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDeepProperties(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function valueFromConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function defaultToConfig2(prop) {\n if (!utils.isUndefined(config2[prop])) {\n return getMergedValue(undefined, config2[prop]);\n } else if (!utils.isUndefined(config1[prop])) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n // eslint-disable-next-line consistent-return\n function mergeDirectKeys(prop) {\n if (prop in config2) {\n return getMergedValue(config1[prop], config2[prop]);\n } else if (prop in config1) {\n return getMergedValue(undefined, config1[prop]);\n }\n }\n\n var mergeMap = {\n 'url': valueFromConfig2,\n 'method': valueFromConfig2,\n 'data': valueFromConfig2,\n 'baseURL': defaultToConfig2,\n 'transformRequest': defaultToConfig2,\n 'transformResponse': defaultToConfig2,\n 'paramsSerializer': defaultToConfig2,\n 'timeout': defaultToConfig2,\n 'timeoutMessage': defaultToConfig2,\n 'withCredentials': defaultToConfig2,\n 'adapter': defaultToConfig2,\n 'responseType': defaultToConfig2,\n 'xsrfCookieName': defaultToConfig2,\n 'xsrfHeaderName': defaultToConfig2,\n 'onUploadProgress': defaultToConfig2,\n 'onDownloadProgress': defaultToConfig2,\n 'decompress': defaultToConfig2,\n 'maxContentLength': defaultToConfig2,\n 'maxBodyLength': defaultToConfig2,\n 'beforeRedirect': defaultToConfig2,\n 'transport': defaultToConfig2,\n 'httpAgent': defaultToConfig2,\n 'httpsAgent': defaultToConfig2,\n 'cancelToken': defaultToConfig2,\n 'socketPath': defaultToConfig2,\n 'responseEncoding': defaultToConfig2,\n 'validateStatus': mergeDirectKeys\n };\n\n utils.forEach(Object.keys(config1).concat(Object.keys(config2)), function computeConfigValue(prop) {\n var merge = mergeMap[prop] || mergeDeepProperties;\n var configValue = merge(prop);\n (utils.isUndefined(configValue) && merge !== mergeDirectKeys) || (config[prop] = configValue);\n });\n\n return config;\n};\n","'use strict';\n\nvar AxiosError = require('./AxiosError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(new AxiosError(\n 'Request failed with status code ' + response.status,\n [AxiosError.ERR_BAD_REQUEST, AxiosError.ERR_BAD_RESPONSE][Math.floor(response.status / 100) - 4],\n response.config,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar defaults = require('../defaults');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n var context = this || defaults;\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn.call(context, data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar normalizeHeaderName = require('../helpers/normalizeHeaderName');\nvar AxiosError = require('../core/AxiosError');\nvar transitionalDefaults = require('./transitional');\nvar toFormData = require('../helpers/toFormData');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('../adapters/xhr');\n } else if (typeof process !== 'undefined' && Object.prototype.toString.call(process) === '[object process]') {\n // For node use HTTP adapter\n adapter = require('../adapters/http');\n }\n return adapter;\n}\n\nfunction stringifySafely(rawValue, parser, encoder) {\n if (utils.isString(rawValue)) {\n try {\n (parser || JSON.parse)(rawValue);\n return utils.trim(rawValue);\n } catch (e) {\n if (e.name !== 'SyntaxError') {\n throw e;\n }\n }\n }\n\n return (encoder || JSON.stringify)(rawValue);\n}\n\nvar defaults = {\n\n transitional: transitionalDefaults,\n\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Accept');\n normalizeHeaderName(headers, 'Content-Type');\n\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n\n var isObjectPayload = utils.isObject(data);\n var contentType = headers && headers['Content-Type'];\n\n var isFileList;\n\n if ((isFileList = utils.isFileList(data)) || (isObjectPayload && contentType === 'multipart/form-data')) {\n var _FormData = this.env && this.env.FormData;\n return toFormData(isFileList ? {'files[]': data} : data, _FormData && new _FormData());\n } else if (isObjectPayload || contentType === 'application/json') {\n setContentTypeIfUnset(headers, 'application/json');\n return stringifySafely(data);\n }\n\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n var transitional = this.transitional || defaults.transitional;\n var silentJSONParsing = transitional && transitional.silentJSONParsing;\n var forcedJSONParsing = transitional && transitional.forcedJSONParsing;\n var strictJSONParsing = !silentJSONParsing && this.responseType === 'json';\n\n if (strictJSONParsing || (forcedJSONParsing && utils.isString(data) && data.length)) {\n try {\n return JSON.parse(data);\n } catch (e) {\n if (strictJSONParsing) {\n if (e.name === 'SyntaxError') {\n throw AxiosError.from(e, AxiosError.ERR_BAD_RESPONSE, this, null, this.response);\n }\n throw e;\n }\n }\n }\n\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n maxBodyLength: -1,\n\n env: {\n FormData: require('./env/FormData')\n },\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n },\n\n headers: {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nmodule.exports = {\n silentJSONParsing: true,\n forcedJSONParsing: true,\n clarifyTimeoutError: false\n};\n","module.exports = {\n \"version\": \"0.27.2\"\n};","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n var hashmarkIndex = url.indexOf('#');\n if (hashmarkIndex !== -1) {\n url = url.slice(0, hashmarkIndex);\n }\n\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d+\\-.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Determines whether the payload is an error thrown by Axios\n *\n * @param {*} payload The value to test\n * @returns {boolean} True if the payload is an error thrown by Axios, otherwise false\n */\nmodule.exports = function isAxiosError(payload) {\n return utils.isObject(payload) && (payload.isAxiosError === true);\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","// eslint-disable-next-line strict\nmodule.exports = null;\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nmodule.exports = function parseProtocol(url) {\n var match = /^([-+\\w]{1,25})(:?\\/\\/|:)/.exec(url);\n return match && match[1] || '';\n};\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar utils = require('../utils');\n\n/**\n * Convert a data object to FormData\n * @param {Object} obj\n * @param {?Object} [formData]\n * @returns {Object}\n **/\n\nfunction toFormData(obj, formData) {\n // eslint-disable-next-line no-param-reassign\n formData = formData || new FormData();\n\n var stack = [];\n\n function convertValue(value) {\n if (value === null) return '';\n\n if (utils.isDate(value)) {\n return value.toISOString();\n }\n\n if (utils.isArrayBuffer(value) || utils.isTypedArray(value)) {\n return typeof Blob === 'function' ? new Blob([value]) : Buffer.from(value);\n }\n\n return value;\n }\n\n function build(data, parentKey) {\n if (utils.isPlainObject(data) || utils.isArray(data)) {\n if (stack.indexOf(data) !== -1) {\n throw Error('Circular reference detected in ' + parentKey);\n }\n\n stack.push(data);\n\n utils.forEach(data, function each(value, key) {\n if (utils.isUndefined(value)) return;\n var fullKey = parentKey ? parentKey + '.' + key : key;\n var arr;\n\n if (value && !parentKey && typeof value === 'object') {\n if (utils.endsWith(key, '{}')) {\n // eslint-disable-next-line no-param-reassign\n value = JSON.stringify(value);\n } else if (utils.endsWith(key, '[]') && (arr = utils.toArray(value))) {\n // eslint-disable-next-line func-names\n arr.forEach(function(el) {\n !utils.isUndefined(el) && formData.append(fullKey, convertValue(el));\n });\n return;\n }\n }\n\n build(value, fullKey);\n });\n\n stack.pop();\n } else {\n formData.append(parentKey, convertValue(data));\n }\n }\n\n build(obj);\n\n return formData;\n}\n\nmodule.exports = toFormData;\n","'use strict';\n\nvar VERSION = require('../env/data').version;\nvar AxiosError = require('../core/AxiosError');\n\nvar validators = {};\n\n// eslint-disable-next-line func-names\n['object', 'boolean', 'number', 'function', 'string', 'symbol'].forEach(function(type, i) {\n validators[type] = function validator(thing) {\n return typeof thing === type || 'a' + (i < 1 ? 'n ' : ' ') + type;\n };\n});\n\nvar deprecatedWarnings = {};\n\n/**\n * Transitional option validator\n * @param {function|boolean?} validator - set to false if the transitional option has been removed\n * @param {string?} version - deprecated version / removed since version\n * @param {string?} message - some message with additional info\n * @returns {function}\n */\nvalidators.transitional = function transitional(validator, version, message) {\n function formatMessage(opt, desc) {\n return '[Axios v' + VERSION + '] Transitional option \\'' + opt + '\\'' + desc + (message ? '. ' + message : '');\n }\n\n // eslint-disable-next-line func-names\n return function(value, opt, opts) {\n if (validator === false) {\n throw new AxiosError(\n formatMessage(opt, ' has been removed' + (version ? ' in ' + version : '')),\n AxiosError.ERR_DEPRECATED\n );\n }\n\n if (version && !deprecatedWarnings[opt]) {\n deprecatedWarnings[opt] = true;\n // eslint-disable-next-line no-console\n console.warn(\n formatMessage(\n opt,\n ' has been deprecated since v' + version + ' and will be removed in the near future'\n )\n );\n }\n\n return validator ? validator(value, opt, opts) : true;\n };\n};\n\n/**\n * Assert object's properties type\n * @param {object} options\n * @param {object} schema\n * @param {boolean?} allowUnknown\n */\n\nfunction assertOptions(options, schema, allowUnknown) {\n if (typeof options !== 'object') {\n throw new AxiosError('options must be an object', AxiosError.ERR_BAD_OPTION_VALUE);\n }\n var keys = Object.keys(options);\n var i = keys.length;\n while (i-- > 0) {\n var opt = keys[i];\n var validator = schema[opt];\n if (validator) {\n var value = options[opt];\n var result = value === undefined || validator(value, opt, options);\n if (result !== true) {\n throw new AxiosError('option ' + opt + ' must be ' + result, AxiosError.ERR_BAD_OPTION_VALUE);\n }\n continue;\n }\n if (allowUnknown !== true) {\n throw new AxiosError('Unknown option ' + opt, AxiosError.ERR_BAD_OPTION);\n }\n }\n}\n\nmodule.exports = {\n assertOptions: assertOptions,\n validators: validators\n};\n","'use strict';\n\nvar bind = require('./helpers/bind');\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n// eslint-disable-next-line func-names\nvar kindOf = (function(cache) {\n // eslint-disable-next-line func-names\n return function(thing) {\n var str = toString.call(thing);\n return cache[str] || (cache[str] = str.slice(8, -1).toLowerCase());\n };\n})(Object.create(null));\n\nfunction kindOfTest(type) {\n type = type.toLowerCase();\n return function isKindOf(thing) {\n return kindOf(thing) === type;\n };\n}\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return Array.isArray(val);\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is a Buffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Buffer, otherwise false\n */\nfunction isBuffer(val) {\n return val !== null && !isUndefined(val) && val.constructor !== null && !isUndefined(val.constructor)\n && typeof val.constructor.isBuffer === 'function' && val.constructor.isBuffer(val);\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nvar isArrayBuffer = kindOfTest('ArrayBuffer');\n\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (isArrayBuffer(val.buffer));\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a plain Object\n *\n * @param {Object} val The value to test\n * @return {boolean} True if value is a plain Object, otherwise false\n */\nfunction isPlainObject(val) {\n if (kindOf(val) !== 'object') {\n return false;\n }\n\n var prototype = Object.getPrototypeOf(val);\n return prototype === null || prototype === Object.prototype;\n}\n\n/**\n * Determine if a value is a Date\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nvar isDate = kindOfTest('Date');\n\n/**\n * Determine if a value is a File\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFile = kindOfTest('File');\n\n/**\n * Determine if a value is a Blob\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nvar isBlob = kindOfTest('Blob');\n\n/**\n * Determine if a value is a FileList\n *\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nvar isFileList = kindOfTest('FileList');\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} thing The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(thing) {\n var pattern = '[object FormData]';\n return thing && (\n (typeof FormData === 'function' && thing instanceof FormData) ||\n toString.call(thing) === pattern ||\n (isFunction(thing.toString) && thing.toString() === pattern)\n );\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n * @function\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nvar isURLSearchParams = kindOfTest('URLSearchParams');\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n * nativescript\n * navigator.product -> 'NativeScript' or 'NS'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && (navigator.product === 'ReactNative' ||\n navigator.product === 'NativeScript' ||\n navigator.product === 'NS')) {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (isPlainObject(result[key]) && isPlainObject(val)) {\n result[key] = merge(result[key], val);\n } else if (isPlainObject(val)) {\n result[key] = merge({}, val);\n } else if (isArray(val)) {\n result[key] = val.slice();\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\n/**\n * Remove byte order marker. This catches EF BB BF (the UTF-8 BOM)\n *\n * @param {string} content with BOM\n * @return {string} content value without BOM\n */\nfunction stripBOM(content) {\n if (content.charCodeAt(0) === 0xFEFF) {\n content = content.slice(1);\n }\n return content;\n}\n\n/**\n * Inherit the prototype methods from one constructor into another\n * @param {function} constructor\n * @param {function} superConstructor\n * @param {object} [props]\n * @param {object} [descriptors]\n */\n\nfunction inherits(constructor, superConstructor, props, descriptors) {\n constructor.prototype = Object.create(superConstructor.prototype, descriptors);\n constructor.prototype.constructor = constructor;\n props && Object.assign(constructor.prototype, props);\n}\n\n/**\n * Resolve object with deep prototype chain to a flat object\n * @param {Object} sourceObj source object\n * @param {Object} [destObj]\n * @param {Function} [filter]\n * @returns {Object}\n */\n\nfunction toFlatObject(sourceObj, destObj, filter) {\n var props;\n var i;\n var prop;\n var merged = {};\n\n destObj = destObj || {};\n\n do {\n props = Object.getOwnPropertyNames(sourceObj);\n i = props.length;\n while (i-- > 0) {\n prop = props[i];\n if (!merged[prop]) {\n destObj[prop] = sourceObj[prop];\n merged[prop] = true;\n }\n }\n sourceObj = Object.getPrototypeOf(sourceObj);\n } while (sourceObj && (!filter || filter(sourceObj, destObj)) && sourceObj !== Object.prototype);\n\n return destObj;\n}\n\n/*\n * determines whether a string ends with the characters of a specified string\n * @param {String} str\n * @param {String} searchString\n * @param {Number} [position= 0]\n * @returns {boolean}\n */\nfunction endsWith(str, searchString, position) {\n str = String(str);\n if (position === undefined || position > str.length) {\n position = str.length;\n }\n position -= searchString.length;\n var lastIndex = str.indexOf(searchString, position);\n return lastIndex !== -1 && lastIndex === position;\n}\n\n\n/**\n * Returns new array from array like object\n * @param {*} [thing]\n * @returns {Array}\n */\nfunction toArray(thing) {\n if (!thing) return null;\n var i = thing.length;\n if (isUndefined(i)) return null;\n var arr = new Array(i);\n while (i-- > 0) {\n arr[i] = thing[i];\n }\n return arr;\n}\n\n// eslint-disable-next-line func-names\nvar isTypedArray = (function(TypedArray) {\n // eslint-disable-next-line func-names\n return function(thing) {\n return TypedArray && thing instanceof TypedArray;\n };\n})(typeof Uint8Array !== 'undefined' && Object.getPrototypeOf(Uint8Array));\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isPlainObject: isPlainObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim,\n stripBOM: stripBOM,\n inherits: inherits,\n toFlatObject: toFlatObject,\n kindOf: kindOf,\n kindOfTest: kindOfTest,\n endsWith: endsWith,\n toArray: toArray,\n isTypedArray: isTypedArray,\n isFileList: isFileList\n};\n","'use strict'\n\nexports.byteLength = byteLength\nexports.toByteArray = toByteArray\nexports.fromByteArray = fromByteArray\n\nvar lookup = []\nvar revLookup = []\nvar Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array\n\nvar code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/'\nfor (var i = 0, len = code.length; i < len; ++i) {\n lookup[i] = code[i]\n revLookup[code.charCodeAt(i)] = i\n}\n\n// Support decoding URL-safe base64 strings, as Node.js does.\n// See: https://en.wikipedia.org/wiki/Base64#URL_applications\nrevLookup['-'.charCodeAt(0)] = 62\nrevLookup['_'.charCodeAt(0)] = 63\n\nfunction getLens (b64) {\n var len = b64.length\n\n if (len % 4 > 0) {\n throw new Error('Invalid string. Length must be a multiple of 4')\n }\n\n // Trim off extra bytes after placeholder bytes are found\n // See: https://github.com/beatgammit/base64-js/issues/42\n var validLen = b64.indexOf('=')\n if (validLen === -1) validLen = len\n\n var placeHoldersLen = validLen === len\n ? 0\n : 4 - (validLen % 4)\n\n return [validLen, placeHoldersLen]\n}\n\n// base64 is 4/3 + up to two characters of the original data\nfunction byteLength (b64) {\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction _byteLength (b64, validLen, placeHoldersLen) {\n return ((validLen + placeHoldersLen) * 3 / 4) - placeHoldersLen\n}\n\nfunction toByteArray (b64) {\n var tmp\n var lens = getLens(b64)\n var validLen = lens[0]\n var placeHoldersLen = lens[1]\n\n var arr = new Arr(_byteLength(b64, validLen, placeHoldersLen))\n\n var curByte = 0\n\n // if there are placeholders, only get up to the last complete 4 chars\n var len = placeHoldersLen > 0\n ? validLen - 4\n : validLen\n\n var i\n for (i = 0; i < len; i += 4) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 18) |\n (revLookup[b64.charCodeAt(i + 1)] << 12) |\n (revLookup[b64.charCodeAt(i + 2)] << 6) |\n revLookup[b64.charCodeAt(i + 3)]\n arr[curByte++] = (tmp >> 16) & 0xFF\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 2) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 2) |\n (revLookup[b64.charCodeAt(i + 1)] >> 4)\n arr[curByte++] = tmp & 0xFF\n }\n\n if (placeHoldersLen === 1) {\n tmp =\n (revLookup[b64.charCodeAt(i)] << 10) |\n (revLookup[b64.charCodeAt(i + 1)] << 4) |\n (revLookup[b64.charCodeAt(i + 2)] >> 2)\n arr[curByte++] = (tmp >> 8) & 0xFF\n arr[curByte++] = tmp & 0xFF\n }\n\n return arr\n}\n\nfunction tripletToBase64 (num) {\n return lookup[num >> 18 & 0x3F] +\n lookup[num >> 12 & 0x3F] +\n lookup[num >> 6 & 0x3F] +\n lookup[num & 0x3F]\n}\n\nfunction encodeChunk (uint8, start, end) {\n var tmp\n var output = []\n for (var i = start; i < end; i += 3) {\n tmp =\n ((uint8[i] << 16) & 0xFF0000) +\n ((uint8[i + 1] << 8) & 0xFF00) +\n (uint8[i + 2] & 0xFF)\n output.push(tripletToBase64(tmp))\n }\n return output.join('')\n}\n\nfunction fromByteArray (uint8) {\n var tmp\n var len = uint8.length\n var extraBytes = len % 3 // if we have 1 byte left, pad 2 bytes\n var parts = []\n var maxChunkLength = 16383 // must be multiple of 3\n\n // go through the array every three bytes, we'll deal with trailing stuff later\n for (var i = 0, len2 = len - extraBytes; i < len2; i += maxChunkLength) {\n parts.push(encodeChunk(uint8, i, (i + maxChunkLength) > len2 ? len2 : (i + maxChunkLength)))\n }\n\n // pad the end with zeros, but make sure to not forget the extra bytes\n if (extraBytes === 1) {\n tmp = uint8[len - 1]\n parts.push(\n lookup[tmp >> 2] +\n lookup[(tmp << 4) & 0x3F] +\n '=='\n )\n } else if (extraBytes === 2) {\n tmp = (uint8[len - 2] << 8) + uint8[len - 1]\n parts.push(\n lookup[tmp >> 10] +\n lookup[(tmp >> 4) & 0x3F] +\n lookup[(tmp << 2) & 0x3F] +\n '='\n )\n }\n\n return parts.join('')\n}\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [ number & 0x3ffffff ];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [ 0 ];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this.strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // 'A' - 'F'\n if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n // '0' - '9'\n } else {\n return (c - 48) & 0xf;\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this.strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n r += c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n r += c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n r += c;\n }\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [ 0 ];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this.strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype.strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n BN.prototype.inspect = function inspect () {\n return (this.red ? '';\n };\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16);\n };\n\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n assert(typeof Buffer !== 'undefined');\n return this.toArrayLike(Buffer, endian, length);\n };\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n this.strip();\n var littleEndian = endian === 'le';\n var res = new ArrayType(reqLength);\n\n var b, i;\n var q = this.clone();\n if (!littleEndian) {\n // Assume big-endian\n for (i = 0; i < reqLength - byteLength; i++) {\n res[i] = 0;\n }\n\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[reqLength - i - 1] = b;\n }\n } else {\n for (i = 0; !q.isZero(); i++) {\n b = q.andln(0xff);\n q.iushrn(8);\n\n res[i] = b;\n }\n\n for (; i < reqLength; i++) {\n res[i] = 0;\n }\n }\n\n return res;\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] & (1 << wbit)) >>> wbit;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this.strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this.strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this.strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this.strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this.strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this.strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out.strip();\n }\n\n function jumboMulTo (self, num, out) {\n var fftm = new FFTM();\n return fftm.mulp(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out.strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this.strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this.strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) < num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this.strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this.strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this.strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q.strip();\n }\n a.strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || r2 === 1 && cmp === 0) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modn = function modn (num) {\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return acc;\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n return this.strip();\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this.strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is BN v4 instance\n r.strip();\n } else {\n // r is BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n return a.umod(this.m)._forceRed(this);\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","!function(e,t){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define([],t):\"object\"==typeof exports?exports.bowser=t():e.bowser=t()}(this,(function(){return function(e){var t={};function r(n){if(t[n])return t[n].exports;var i=t[n]={i:n,l:!1,exports:{}};return e[n].call(i.exports,i,i.exports,r),i.l=!0,i.exports}return r.m=e,r.c=t,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(e,\"__esModule\",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&\"object\"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,\"default\",{enumerable:!0,value:e}),2&t&&\"string\"!=typeof e)for(var i in e)r.d(n,i,function(t){return e[t]}.bind(null,i));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,\"a\",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p=\"\",r(r.s=90)}({17:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n=r(18),i=function(){function e(){}return e.getFirstMatch=function(e,t){var r=t.match(e);return r&&r.length>0&&r[1]||\"\"},e.getSecondMatch=function(e,t){var r=t.match(e);return r&&r.length>1&&r[2]||\"\"},e.matchAndReturnConst=function(e,t,r){if(e.test(t))return r},e.getWindowsVersionName=function(e){switch(e){case\"NT\":return\"NT\";case\"XP\":return\"XP\";case\"NT 5.0\":return\"2000\";case\"NT 5.1\":return\"XP\";case\"NT 5.2\":return\"2003\";case\"NT 6.0\":return\"Vista\";case\"NT 6.1\":return\"7\";case\"NT 6.2\":return\"8\";case\"NT 6.3\":return\"8.1\";case\"NT 10.0\":return\"10\";default:return}},e.getMacOSVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),10===t[0])switch(t[1]){case 5:return\"Leopard\";case 6:return\"Snow Leopard\";case 7:return\"Lion\";case 8:return\"Mountain Lion\";case 9:return\"Mavericks\";case 10:return\"Yosemite\";case 11:return\"El Capitan\";case 12:return\"Sierra\";case 13:return\"High Sierra\";case 14:return\"Mojave\";case 15:return\"Catalina\";default:return}},e.getAndroidVersionName=function(e){var t=e.split(\".\").splice(0,2).map((function(e){return parseInt(e,10)||0}));if(t.push(0),!(1===t[0]&&t[1]<5))return 1===t[0]&&t[1]<6?\"Cupcake\":1===t[0]&&t[1]>=6?\"Donut\":2===t[0]&&t[1]<2?\"Eclair\":2===t[0]&&2===t[1]?\"Froyo\":2===t[0]&&t[1]>2?\"Gingerbread\":3===t[0]?\"Honeycomb\":4===t[0]&&t[1]<1?\"Ice Cream Sandwich\":4===t[0]&&t[1]<4?\"Jelly Bean\":4===t[0]&&t[1]>=4?\"KitKat\":5===t[0]?\"Lollipop\":6===t[0]?\"Marshmallow\":7===t[0]?\"Nougat\":8===t[0]?\"Oreo\":9===t[0]?\"Pie\":void 0},e.getVersionPrecision=function(e){return e.split(\".\").length},e.compareVersions=function(t,r,n){void 0===n&&(n=!1);var i=e.getVersionPrecision(t),s=e.getVersionPrecision(r),a=Math.max(i,s),o=0,u=e.map([t,r],(function(t){var r=a-e.getVersionPrecision(t),n=t+new Array(r+1).join(\".0\");return e.map(n.split(\".\"),(function(e){return new Array(20-e.length).join(\"0\")+e})).reverse()}));for(n&&(o=a-Math.min(i,s)),a-=1;a>=o;){if(u[0][a]>u[1][a])return 1;if(u[0][a]===u[1][a]){if(a===o)return 0;a-=1}else if(u[0][a]1?i-1:0),a=1;a0){var a=Object.keys(r),u=o.default.find(a,(function(e){return t.isOS(e)}));if(u){var d=this.satisfies(r[u]);if(void 0!==d)return d}var c=o.default.find(a,(function(e){return t.isPlatform(e)}));if(c){var f=this.satisfies(r[c]);if(void 0!==f)return f}}if(s>0){var l=Object.keys(i),h=o.default.find(l,(function(e){return t.isBrowser(e,!0)}));if(void 0!==h)return this.compareVersion(i[h])}},t.isBrowser=function(e,t){void 0===t&&(t=!1);var r=this.getBrowserName().toLowerCase(),n=e.toLowerCase(),i=o.default.getBrowserTypeByAlias(n);return t&&i&&(n=i.toLowerCase()),n===r},t.compareVersion=function(e){var t=[0],r=e,n=!1,i=this.getBrowserVersion();if(\"string\"==typeof i)return\">\"===e[0]||\"<\"===e[0]?(r=e.substr(1),\"=\"===e[1]?(n=!0,r=e.substr(2)):t=[],\">\"===e[0]?t.push(1):t.push(-1)):\"=\"===e[0]?r=e.substr(1):\"~\"===e[0]&&(n=!0,r=e.substr(1)),t.indexOf(o.default.compareVersions(i,r,n))>-1},t.isOS=function(e){return this.getOSName(!0)===String(e).toLowerCase()},t.isPlatform=function(e){return this.getPlatformType(!0)===String(e).toLowerCase()},t.isEngine=function(e){return this.getEngineName(!0)===String(e).toLowerCase()},t.is=function(e,t){return void 0===t&&(t=!1),this.isBrowser(e,t)||this.isOS(e)||this.isPlatform(e)},t.some=function(e){var t=this;return void 0===e&&(e=[]),e.some((function(e){return t.is(e)}))},e}();t.default=d,e.exports=t.default},92:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n};var s=/version\\/(\\d+(\\.?_?\\d+)+)/i,a=[{test:[/googlebot/i],describe:function(e){var t={name:\"Googlebot\"},r=i.default.getFirstMatch(/googlebot\\/(\\d+(\\.\\d+))/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/opera/i],describe:function(e){var t={name:\"Opera\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:opera)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opr\\/|opios/i],describe:function(e){var t={name:\"Opera\"},r=i.default.getFirstMatch(/(?:opr|opios)[\\s/](\\S+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/SamsungBrowser/i],describe:function(e){var t={name:\"Samsung Internet for Android\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:SamsungBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Whale/i],describe:function(e){var t={name:\"NAVER Whale Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:whale)[\\s/](\\d+(?:\\.\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MZBrowser/i],describe:function(e){var t={name:\"MZ Browser\"},r=i.default.getFirstMatch(/(?:MZBrowser)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/focus/i],describe:function(e){var t={name:\"Focus\"},r=i.default.getFirstMatch(/(?:focus)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/swing/i],describe:function(e){var t={name:\"Swing\"},r=i.default.getFirstMatch(/(?:swing)[\\s/](\\d+(?:\\.\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/coast/i],describe:function(e){var t={name:\"Opera Coast\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:coast)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/opt\\/\\d+(?:.?_?\\d+)+/i],describe:function(e){var t={name:\"Opera Touch\"},r=i.default.getFirstMatch(/(?:opt)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/yabrowser/i],describe:function(e){var t={name:\"Yandex Browser\"},r=i.default.getFirstMatch(/(?:yabrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/ucbrowser/i],describe:function(e){var t={name:\"UC Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:ucbrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/Maxthon|mxios/i],describe:function(e){var t={name:\"Maxthon\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:Maxthon|mxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/epiphany/i],describe:function(e){var t={name:\"Epiphany\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:epiphany)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/puffin/i],describe:function(e){var t={name:\"Puffin\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:puffin)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sleipnir/i],describe:function(e){var t={name:\"Sleipnir\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:sleipnir)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/k-meleon/i],describe:function(e){var t={name:\"K-Meleon\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/(?:k-meleon)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/micromessenger/i],describe:function(e){var t={name:\"WeChat\"},r=i.default.getFirstMatch(/(?:micromessenger)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qqbrowser/i],describe:function(e){var t={name:/qqbrowserlite/i.test(e)?\"QQ Browser Lite\":\"QQ Browser\"},r=i.default.getFirstMatch(/(?:qqbrowserlite|qqbrowser)[/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/msie|trident/i],describe:function(e){var t={name:\"Internet Explorer\"},r=i.default.getFirstMatch(/(?:msie |rv:)(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/\\sedg\\//i],describe:function(e){var t={name:\"Microsoft Edge\"},r=i.default.getFirstMatch(/\\sedg\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/edg([ea]|ios)/i],describe:function(e){var t={name:\"Microsoft Edge\"},r=i.default.getSecondMatch(/edg([ea]|ios)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/vivaldi/i],describe:function(e){var t={name:\"Vivaldi\"},r=i.default.getFirstMatch(/vivaldi\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/seamonkey/i],describe:function(e){var t={name:\"SeaMonkey\"},r=i.default.getFirstMatch(/seamonkey\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/sailfish/i],describe:function(e){var t={name:\"Sailfish\"},r=i.default.getFirstMatch(/sailfish\\s?browser\\/(\\d+(\\.\\d+)?)/i,e);return r&&(t.version=r),t}},{test:[/silk/i],describe:function(e){var t={name:\"Amazon Silk\"},r=i.default.getFirstMatch(/silk\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/phantom/i],describe:function(e){var t={name:\"PhantomJS\"},r=i.default.getFirstMatch(/phantomjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/slimerjs/i],describe:function(e){var t={name:\"SlimerJS\"},r=i.default.getFirstMatch(/slimerjs\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t={name:\"BlackBerry\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/blackberry[\\d]+\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t={name:\"WebOS Browser\"},r=i.default.getFirstMatch(s,e)||i.default.getFirstMatch(/w(?:eb)?[o0]sbrowser\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/bada/i],describe:function(e){var t={name:\"Bada\"},r=i.default.getFirstMatch(/dolfin\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/tizen/i],describe:function(e){var t={name:\"Tizen\"},r=i.default.getFirstMatch(/(?:tizen\\s?)?browser\\/(\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/qupzilla/i],describe:function(e){var t={name:\"QupZilla\"},r=i.default.getFirstMatch(/(?:qupzilla)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/firefox|iceweasel|fxios/i],describe:function(e){var t={name:\"Firefox\"},r=i.default.getFirstMatch(/(?:firefox|iceweasel|fxios)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/electron/i],describe:function(e){var t={name:\"Electron\"},r=i.default.getFirstMatch(/(?:electron)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/MiuiBrowser/i],describe:function(e){var t={name:\"Miui\"},r=i.default.getFirstMatch(/(?:MiuiBrowser)[\\s/](\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/chromium/i],describe:function(e){var t={name:\"Chromium\"},r=i.default.getFirstMatch(/(?:chromium)[\\s/](\\d+(\\.?_?\\d+)+)/i,e)||i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/chrome|crios|crmo/i],describe:function(e){var t={name:\"Chrome\"},r=i.default.getFirstMatch(/(?:chrome|crios|crmo)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/GSA/i],describe:function(e){var t={name:\"Google Search\"},r=i.default.getFirstMatch(/(?:GSA)\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t={name:\"Android Browser\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/playstation 4/i],describe:function(e){var t={name:\"PlayStation 4\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/safari|applewebkit/i],describe:function(e){var t={name:\"Safari\"},r=i.default.getFirstMatch(s,e);return r&&(t.version=r),t}},{test:[/.*/i],describe:function(e){var t=-1!==e.search(\"\\\\(\")?/^(.*)\\/(.*)[ \\t]\\((.*)/:/^(.*)\\/(.*) /;return{name:i.default.getFirstMatch(t,e),version:i.default.getSecondMatch(t,e)}}}];t.default=a,e.exports=t.default},93:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/Roku\\/DVP/],describe:function(e){var t=i.default.getFirstMatch(/Roku\\/DVP-(\\d+\\.\\d+)/i,e);return{name:s.OS_MAP.Roku,version:t}}},{test:[/windows phone/i],describe:function(e){var t=i.default.getFirstMatch(/windows phone (?:os)?\\s?(\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.WindowsPhone,version:t}}},{test:[/windows /i],describe:function(e){var t=i.default.getFirstMatch(/Windows ((NT|XP)( \\d\\d?.\\d)?)/i,e),r=i.default.getWindowsVersionName(t);return{name:s.OS_MAP.Windows,version:t,versionName:r}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(e){var t={name:s.OS_MAP.iOS},r=i.default.getSecondMatch(/(Version\\/)(\\d[\\d.]+)/,e);return r&&(t.version=r),t}},{test:[/macintosh/i],describe:function(e){var t=i.default.getFirstMatch(/mac os x (\\d+(\\.?_?\\d+)+)/i,e).replace(/[_\\s]/g,\".\"),r=i.default.getMacOSVersionName(t),n={name:s.OS_MAP.MacOS,version:t};return r&&(n.versionName=r),n}},{test:[/(ipod|iphone|ipad)/i],describe:function(e){var t=i.default.getFirstMatch(/os (\\d+([_\\s]\\d+)*) like mac os x/i,e).replace(/[_\\s]/g,\".\");return{name:s.OS_MAP.iOS,version:t}}},{test:function(e){var t=!e.test(/like android/i),r=e.test(/android/i);return t&&r},describe:function(e){var t=i.default.getFirstMatch(/android[\\s/-](\\d+(\\.\\d+)*)/i,e),r=i.default.getAndroidVersionName(t),n={name:s.OS_MAP.Android,version:t};return r&&(n.versionName=r),n}},{test:[/(web|hpw)[o0]s/i],describe:function(e){var t=i.default.getFirstMatch(/(?:web|hpw)[o0]s\\/(\\d+(\\.\\d+)*)/i,e),r={name:s.OS_MAP.WebOS};return t&&t.length&&(r.version=t),r}},{test:[/blackberry|\\bbb\\d+/i,/rim\\stablet/i],describe:function(e){var t=i.default.getFirstMatch(/rim\\stablet\\sos\\s(\\d+(\\.\\d+)*)/i,e)||i.default.getFirstMatch(/blackberry\\d+\\/(\\d+([_\\s]\\d+)*)/i,e)||i.default.getFirstMatch(/\\bbb(\\d+)/i,e);return{name:s.OS_MAP.BlackBerry,version:t}}},{test:[/bada/i],describe:function(e){var t=i.default.getFirstMatch(/bada\\/(\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.Bada,version:t}}},{test:[/tizen/i],describe:function(e){var t=i.default.getFirstMatch(/tizen[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.Tizen,version:t}}},{test:[/linux/i],describe:function(){return{name:s.OS_MAP.Linux}}},{test:[/CrOS/],describe:function(){return{name:s.OS_MAP.ChromeOS}}},{test:[/PlayStation 4/],describe:function(e){var t=i.default.getFirstMatch(/PlayStation 4[/\\s](\\d+(\\.\\d+)*)/i,e);return{name:s.OS_MAP.PlayStation4,version:t}}}];t.default=a,e.exports=t.default},94:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:[/googlebot/i],describe:function(){return{type:\"bot\",vendor:\"Google\"}}},{test:[/huawei/i],describe:function(e){var t=i.default.getFirstMatch(/(can-l01)/i,e)&&\"Nova\",r={type:s.PLATFORMS_MAP.mobile,vendor:\"Huawei\"};return t&&(r.model=t),r}},{test:[/nexus\\s*(?:7|8|9|10).*/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Nexus\"}}},{test:[/ipad/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/Macintosh(.*?) FxiOS(.*?)\\//],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Apple\",model:\"iPad\"}}},{test:[/kftt build/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Amazon\",model:\"Kindle Fire HD 7\"}}},{test:[/silk/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet,vendor:\"Amazon\"}}},{test:[/tablet(?! pc)/i],describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){var t=e.test(/ipod|iphone/i),r=e.test(/like (ipod|iphone)/i);return t&&!r},describe:function(e){var t=i.default.getFirstMatch(/(ipod|iphone)/i,e);return{type:s.PLATFORMS_MAP.mobile,vendor:\"Apple\",model:t}}},{test:[/nexus\\s*[0-6].*/i,/galaxy nexus/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"Nexus\"}}},{test:[/[^-]mobi/i],describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"blackberry\"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"BlackBerry\"}}},{test:function(e){return\"bada\"===e.getBrowserName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"windows phone\"===e.getBrowserName()},describe:function(){return{type:s.PLATFORMS_MAP.mobile,vendor:\"Microsoft\"}}},{test:function(e){var t=Number(String(e.getOSVersion()).split(\".\")[0]);return\"android\"===e.getOSName(!0)&&t>=3},describe:function(){return{type:s.PLATFORMS_MAP.tablet}}},{test:function(e){return\"android\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.mobile}}},{test:function(e){return\"macos\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop,vendor:\"Apple\"}}},{test:function(e){return\"windows\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return\"linux\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.desktop}}},{test:function(e){return\"playstation 4\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}},{test:function(e){return\"roku\"===e.getOSName(!0)},describe:function(){return{type:s.PLATFORMS_MAP.tv}}}];t.default=a,e.exports=t.default},95:function(e,t,r){\"use strict\";t.__esModule=!0,t.default=void 0;var n,i=(n=r(17))&&n.__esModule?n:{default:n},s=r(18);var a=[{test:function(e){return\"microsoft edge\"===e.getBrowserName(!0)},describe:function(e){if(/\\sedg\\//i.test(e))return{name:s.ENGINE_MAP.Blink};var t=i.default.getFirstMatch(/edge\\/(\\d+(\\.?_?\\d+)+)/i,e);return{name:s.ENGINE_MAP.EdgeHTML,version:t}}},{test:[/trident/i],describe:function(e){var t={name:s.ENGINE_MAP.Trident},r=i.default.getFirstMatch(/trident\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){return e.test(/presto/i)},describe:function(e){var t={name:s.ENGINE_MAP.Presto},r=i.default.getFirstMatch(/presto\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:function(e){var t=e.test(/gecko/i),r=e.test(/like gecko/i);return t&&!r},describe:function(e){var t={name:s.ENGINE_MAP.Gecko},r=i.default.getFirstMatch(/gecko\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}},{test:[/(apple)?webkit\\/537\\.36/i],describe:function(){return{name:s.ENGINE_MAP.Blink}}},{test:[/(apple)?webkit/i],describe:function(e){var t={name:s.ENGINE_MAP.WebKit},r=i.default.getFirstMatch(/webkit\\/(\\d+(\\.?_?\\d+)+)/i,e);return r&&(t.version=r),t}}];t.default=a,e.exports=t.default}})}));","var r;\n\nmodule.exports = function rand(len) {\n if (!r)\n r = new Rand(null);\n\n return r.generate(len);\n};\n\nfunction Rand(rand) {\n this.rand = rand;\n}\nmodule.exports.Rand = Rand;\n\nRand.prototype.generate = function generate(len) {\n return this._rand(len);\n};\n\n// Emulate crypto API using randy\nRand.prototype._rand = function _rand(n) {\n if (this.rand.getBytes)\n return this.rand.getBytes(n);\n\n var res = new Uint8Array(n);\n for (var i = 0; i < res.length; i++)\n res[i] = this.rand.getByte();\n return res;\n};\n\nif (typeof self === 'object') {\n if (self.crypto && self.crypto.getRandomValues) {\n // Modern browsers\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.crypto.getRandomValues(arr);\n return arr;\n };\n } else if (self.msCrypto && self.msCrypto.getRandomValues) {\n // IE\n Rand.prototype._rand = function _rand(n) {\n var arr = new Uint8Array(n);\n self.msCrypto.getRandomValues(arr);\n return arr;\n };\n\n // Safari's WebWorkers do not have `crypto`\n } else if (typeof window === 'object') {\n // Old junk\n Rand.prototype._rand = function() {\n throw new Error('Not implemented yet');\n };\n }\n} else {\n // Node.js or Web worker with no crypto support\n try {\n var crypto = require('crypto');\n if (typeof crypto.randomBytes !== 'function')\n throw new Error('Not supported');\n\n Rand.prototype._rand = function _rand(n) {\n return crypto.randomBytes(n);\n };\n } catch (e) {\n }\n}\n","// based on the aes implimentation in triple sec\n// https://github.com/keybase/triplesec\n// which is in turn based on the one from crypto-js\n// https://code.google.com/p/crypto-js/\n\nvar Buffer = require('safe-buffer').Buffer\n\nfunction asUInt32Array (buf) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n\n var len = (buf.length / 4) | 0\n var out = new Array(len)\n\n for (var i = 0; i < len; i++) {\n out[i] = buf.readUInt32BE(i * 4)\n }\n\n return out\n}\n\nfunction scrubVec (v) {\n for (var i = 0; i < v.length; v++) {\n v[i] = 0\n }\n}\n\nfunction cryptBlock (M, keySchedule, SUB_MIX, SBOX, nRounds) {\n var SUB_MIX0 = SUB_MIX[0]\n var SUB_MIX1 = SUB_MIX[1]\n var SUB_MIX2 = SUB_MIX[2]\n var SUB_MIX3 = SUB_MIX[3]\n\n var s0 = M[0] ^ keySchedule[0]\n var s1 = M[1] ^ keySchedule[1]\n var s2 = M[2] ^ keySchedule[2]\n var s3 = M[3] ^ keySchedule[3]\n var t0, t1, t2, t3\n var ksRow = 4\n\n for (var round = 1; round < nRounds; round++) {\n t0 = SUB_MIX0[s0 >>> 24] ^ SUB_MIX1[(s1 >>> 16) & 0xff] ^ SUB_MIX2[(s2 >>> 8) & 0xff] ^ SUB_MIX3[s3 & 0xff] ^ keySchedule[ksRow++]\n t1 = SUB_MIX0[s1 >>> 24] ^ SUB_MIX1[(s2 >>> 16) & 0xff] ^ SUB_MIX2[(s3 >>> 8) & 0xff] ^ SUB_MIX3[s0 & 0xff] ^ keySchedule[ksRow++]\n t2 = SUB_MIX0[s2 >>> 24] ^ SUB_MIX1[(s3 >>> 16) & 0xff] ^ SUB_MIX2[(s0 >>> 8) & 0xff] ^ SUB_MIX3[s1 & 0xff] ^ keySchedule[ksRow++]\n t3 = SUB_MIX0[s3 >>> 24] ^ SUB_MIX1[(s0 >>> 16) & 0xff] ^ SUB_MIX2[(s1 >>> 8) & 0xff] ^ SUB_MIX3[s2 & 0xff] ^ keySchedule[ksRow++]\n s0 = t0\n s1 = t1\n s2 = t2\n s3 = t3\n }\n\n t0 = ((SBOX[s0 >>> 24] << 24) | (SBOX[(s1 >>> 16) & 0xff] << 16) | (SBOX[(s2 >>> 8) & 0xff] << 8) | SBOX[s3 & 0xff]) ^ keySchedule[ksRow++]\n t1 = ((SBOX[s1 >>> 24] << 24) | (SBOX[(s2 >>> 16) & 0xff] << 16) | (SBOX[(s3 >>> 8) & 0xff] << 8) | SBOX[s0 & 0xff]) ^ keySchedule[ksRow++]\n t2 = ((SBOX[s2 >>> 24] << 24) | (SBOX[(s3 >>> 16) & 0xff] << 16) | (SBOX[(s0 >>> 8) & 0xff] << 8) | SBOX[s1 & 0xff]) ^ keySchedule[ksRow++]\n t3 = ((SBOX[s3 >>> 24] << 24) | (SBOX[(s0 >>> 16) & 0xff] << 16) | (SBOX[(s1 >>> 8) & 0xff] << 8) | SBOX[s2 & 0xff]) ^ keySchedule[ksRow++]\n t0 = t0 >>> 0\n t1 = t1 >>> 0\n t2 = t2 >>> 0\n t3 = t3 >>> 0\n\n return [t0, t1, t2, t3]\n}\n\n// AES constants\nvar RCON = [0x00, 0x01, 0x02, 0x04, 0x08, 0x10, 0x20, 0x40, 0x80, 0x1b, 0x36]\nvar G = (function () {\n // Compute double table\n var d = new Array(256)\n for (var j = 0; j < 256; j++) {\n if (j < 128) {\n d[j] = j << 1\n } else {\n d[j] = (j << 1) ^ 0x11b\n }\n }\n\n var SBOX = []\n var INV_SBOX = []\n var SUB_MIX = [[], [], [], []]\n var INV_SUB_MIX = [[], [], [], []]\n\n // Walk GF(2^8)\n var x = 0\n var xi = 0\n for (var i = 0; i < 256; ++i) {\n // Compute sbox\n var sx = xi ^ (xi << 1) ^ (xi << 2) ^ (xi << 3) ^ (xi << 4)\n sx = (sx >>> 8) ^ (sx & 0xff) ^ 0x63\n SBOX[x] = sx\n INV_SBOX[sx] = x\n\n // Compute multiplication\n var x2 = d[x]\n var x4 = d[x2]\n var x8 = d[x4]\n\n // Compute sub bytes, mix columns tables\n var t = (d[sx] * 0x101) ^ (sx * 0x1010100)\n SUB_MIX[0][x] = (t << 24) | (t >>> 8)\n SUB_MIX[1][x] = (t << 16) | (t >>> 16)\n SUB_MIX[2][x] = (t << 8) | (t >>> 24)\n SUB_MIX[3][x] = t\n\n // Compute inv sub bytes, inv mix columns tables\n t = (x8 * 0x1010101) ^ (x4 * 0x10001) ^ (x2 * 0x101) ^ (x * 0x1010100)\n INV_SUB_MIX[0][sx] = (t << 24) | (t >>> 8)\n INV_SUB_MIX[1][sx] = (t << 16) | (t >>> 16)\n INV_SUB_MIX[2][sx] = (t << 8) | (t >>> 24)\n INV_SUB_MIX[3][sx] = t\n\n if (x === 0) {\n x = xi = 1\n } else {\n x = x2 ^ d[d[d[x8 ^ x2]]]\n xi ^= d[d[xi]]\n }\n }\n\n return {\n SBOX: SBOX,\n INV_SBOX: INV_SBOX,\n SUB_MIX: SUB_MIX,\n INV_SUB_MIX: INV_SUB_MIX\n }\n})()\n\nfunction AES (key) {\n this._key = asUInt32Array(key)\n this._reset()\n}\n\nAES.blockSize = 4 * 4\nAES.keySize = 256 / 8\nAES.prototype.blockSize = AES.blockSize\nAES.prototype.keySize = AES.keySize\nAES.prototype._reset = function () {\n var keyWords = this._key\n var keySize = keyWords.length\n var nRounds = keySize + 6\n var ksRows = (nRounds + 1) * 4\n\n var keySchedule = []\n for (var k = 0; k < keySize; k++) {\n keySchedule[k] = keyWords[k]\n }\n\n for (k = keySize; k < ksRows; k++) {\n var t = keySchedule[k - 1]\n\n if (k % keySize === 0) {\n t = (t << 8) | (t >>> 24)\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n\n t ^= RCON[(k / keySize) | 0] << 24\n } else if (keySize > 6 && k % keySize === 4) {\n t =\n (G.SBOX[t >>> 24] << 24) |\n (G.SBOX[(t >>> 16) & 0xff] << 16) |\n (G.SBOX[(t >>> 8) & 0xff] << 8) |\n (G.SBOX[t & 0xff])\n }\n\n keySchedule[k] = keySchedule[k - keySize] ^ t\n }\n\n var invKeySchedule = []\n for (var ik = 0; ik < ksRows; ik++) {\n var ksR = ksRows - ik\n var tt = keySchedule[ksR - (ik % 4 ? 0 : 4)]\n\n if (ik < 4 || ksR <= 4) {\n invKeySchedule[ik] = tt\n } else {\n invKeySchedule[ik] =\n G.INV_SUB_MIX[0][G.SBOX[tt >>> 24]] ^\n G.INV_SUB_MIX[1][G.SBOX[(tt >>> 16) & 0xff]] ^\n G.INV_SUB_MIX[2][G.SBOX[(tt >>> 8) & 0xff]] ^\n G.INV_SUB_MIX[3][G.SBOX[tt & 0xff]]\n }\n }\n\n this._nRounds = nRounds\n this._keySchedule = keySchedule\n this._invKeySchedule = invKeySchedule\n}\n\nAES.prototype.encryptBlockRaw = function (M) {\n M = asUInt32Array(M)\n return cryptBlock(M, this._keySchedule, G.SUB_MIX, G.SBOX, this._nRounds)\n}\n\nAES.prototype.encryptBlock = function (M) {\n var out = this.encryptBlockRaw(M)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[1], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[3], 12)\n return buf\n}\n\nAES.prototype.decryptBlock = function (M) {\n M = asUInt32Array(M)\n\n // swap\n var m1 = M[1]\n M[1] = M[3]\n M[3] = m1\n\n var out = cryptBlock(M, this._invKeySchedule, G.INV_SUB_MIX, G.INV_SBOX, this._nRounds)\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0], 0)\n buf.writeUInt32BE(out[3], 4)\n buf.writeUInt32BE(out[2], 8)\n buf.writeUInt32BE(out[1], 12)\n return buf\n}\n\nAES.prototype.scrub = function () {\n scrubVec(this._keySchedule)\n scrubVec(this._invKeySchedule)\n scrubVec(this._key)\n}\n\nmodule.exports.AES = AES\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\nvar GHASH = require('./ghash')\nvar xor = require('buffer-xor')\nvar incr32 = require('./incr32')\n\nfunction xorTest (a, b) {\n var out = 0\n if (a.length !== b.length) out++\n\n var len = Math.min(a.length, b.length)\n for (var i = 0; i < len; ++i) {\n out += (a[i] ^ b[i])\n }\n\n return out\n}\n\nfunction calcIv (self, iv, ck) {\n if (iv.length === 12) {\n self._finID = Buffer.concat([iv, Buffer.from([0, 0, 0, 1])])\n return Buffer.concat([iv, Buffer.from([0, 0, 0, 2])])\n }\n var ghash = new GHASH(ck)\n var len = iv.length\n var toPad = len % 16\n ghash.update(iv)\n if (toPad) {\n toPad = 16 - toPad\n ghash.update(Buffer.alloc(toPad, 0))\n }\n ghash.update(Buffer.alloc(8, 0))\n var ivBits = len * 8\n var tail = Buffer.alloc(8)\n tail.writeUIntBE(ivBits, 0, 8)\n ghash.update(tail)\n self._finID = ghash.state\n var out = Buffer.from(self._finID)\n incr32(out)\n return out\n}\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n var h = Buffer.alloc(4, 0)\n\n this._cipher = new aes.AES(key)\n var ck = this._cipher.encryptBlock(h)\n this._ghash = new GHASH(ck)\n iv = calcIv(this, iv, ck)\n\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._alen = 0\n this._len = 0\n this._mode = mode\n\n this._authTag = null\n this._called = false\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n if (!this._called && this._alen) {\n var rump = 16 - (this._alen % 16)\n if (rump < 16) {\n rump = Buffer.alloc(rump, 0)\n this._ghash.update(rump)\n }\n }\n\n this._called = true\n var out = this._mode.encrypt(this, chunk)\n if (this._decrypt) {\n this._ghash.update(chunk)\n } else {\n this._ghash.update(out)\n }\n this._len += chunk.length\n return out\n}\n\nStreamCipher.prototype._final = function () {\n if (this._decrypt && !this._authTag) throw new Error('Unsupported state or unable to authenticate data')\n\n var tag = xor(this._ghash.final(this._alen * 8, this._len * 8), this._cipher.encryptBlock(this._finID))\n if (this._decrypt && xorTest(tag, this._authTag)) throw new Error('Unsupported state or unable to authenticate data')\n\n this._authTag = tag\n this._cipher.scrub()\n}\n\nStreamCipher.prototype.getAuthTag = function getAuthTag () {\n if (this._decrypt || !Buffer.isBuffer(this._authTag)) throw new Error('Attempting to get auth tag in unsupported state')\n\n return this._authTag\n}\n\nStreamCipher.prototype.setAuthTag = function setAuthTag (tag) {\n if (!this._decrypt) throw new Error('Attempting to set auth tag in unsupported state')\n\n this._authTag = tag\n}\n\nStreamCipher.prototype.setAAD = function setAAD (buf) {\n if (this._called) throw new Error('Attempting to set AAD in unsupported state')\n\n this._ghash.update(buf)\n this._alen += buf.length\n}\n\nmodule.exports = StreamCipher\n","var ciphers = require('./encrypter')\nvar deciphers = require('./decrypter')\nvar modes = require('./modes/list.json')\n\nfunction getCiphers () {\n return Object.keys(modes)\n}\n\nexports.createCipher = exports.Cipher = ciphers.createCipher\nexports.createCipheriv = exports.Cipheriv = ciphers.createCipheriv\nexports.createDecipher = exports.Decipher = deciphers.createDecipher\nexports.createDecipheriv = exports.Decipheriv = deciphers.createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar MODES = require('./modes')\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Decipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._last = void 0\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Decipher, Transform)\n\nDecipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n while ((chunk = this._cache.get(this._autopadding))) {\n thing = this._mode.decrypt(this, chunk)\n out.push(thing)\n }\n return Buffer.concat(out)\n}\n\nDecipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n return unpad(this._mode.decrypt(this, chunk))\n } else if (chunk) {\n throw new Error('data not multiple of block length')\n }\n}\n\nDecipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function (autoPadding) {\n var out\n if (autoPadding) {\n if (this.cache.length > 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n } else {\n if (this.cache.length >= 16) {\n out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n }\n\n return null\n}\n\nSplitter.prototype.flush = function () {\n if (this.cache.length) return this.cache\n}\n\nfunction unpad (last) {\n var padded = last[15]\n if (padded < 1 || padded > 16) {\n throw new Error('unable to decrypt data')\n }\n var i = -1\n while (++i < padded) {\n if (last[(i + (16 - padded))] !== padded) {\n throw new Error('unable to decrypt data')\n }\n }\n if (padded === 16) return\n\n return last.slice(0, 16 - padded)\n}\n\nfunction createDecipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv, true)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv, true)\n }\n\n return new Decipher(config.module, password, iv)\n}\n\nfunction createDecipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createDecipher = createDecipher\nexports.createDecipheriv = createDecipheriv\n","var MODES = require('./modes')\nvar AuthCipher = require('./authCipher')\nvar Buffer = require('safe-buffer').Buffer\nvar StreamCipher = require('./streamCipher')\nvar Transform = require('cipher-base')\nvar aes = require('./aes')\nvar ebtk = require('evp_bytestokey')\nvar inherits = require('inherits')\n\nfunction Cipher (mode, key, iv) {\n Transform.call(this)\n\n this._cache = new Splitter()\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._mode = mode\n this._autopadding = true\n}\n\ninherits(Cipher, Transform)\n\nCipher.prototype._update = function (data) {\n this._cache.add(data)\n var chunk\n var thing\n var out = []\n\n while ((chunk = this._cache.get())) {\n thing = this._mode.encrypt(this, chunk)\n out.push(thing)\n }\n\n return Buffer.concat(out)\n}\n\nvar PADDING = Buffer.alloc(16, 0x10)\n\nCipher.prototype._final = function () {\n var chunk = this._cache.flush()\n if (this._autopadding) {\n chunk = this._mode.encrypt(this, chunk)\n this._cipher.scrub()\n return chunk\n }\n\n if (!chunk.equals(PADDING)) {\n this._cipher.scrub()\n throw new Error('data not multiple of block length')\n }\n}\n\nCipher.prototype.setAutoPadding = function (setTo) {\n this._autopadding = !!setTo\n return this\n}\n\nfunction Splitter () {\n this.cache = Buffer.allocUnsafe(0)\n}\n\nSplitter.prototype.add = function (data) {\n this.cache = Buffer.concat([this.cache, data])\n}\n\nSplitter.prototype.get = function () {\n if (this.cache.length > 15) {\n var out = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n return out\n }\n return null\n}\n\nSplitter.prototype.flush = function () {\n var len = 16 - this.cache.length\n var padBuff = Buffer.allocUnsafe(len)\n\n var i = -1\n while (++i < len) {\n padBuff.writeUInt8(len, i)\n }\n\n return Buffer.concat([this.cache, padBuff])\n}\n\nfunction createCipheriv (suite, password, iv) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n if (typeof password === 'string') password = Buffer.from(password)\n if (password.length !== config.key / 8) throw new TypeError('invalid key length ' + password.length)\n\n if (typeof iv === 'string') iv = Buffer.from(iv)\n if (config.mode !== 'GCM' && iv.length !== config.iv) throw new TypeError('invalid iv length ' + iv.length)\n\n if (config.type === 'stream') {\n return new StreamCipher(config.module, password, iv)\n } else if (config.type === 'auth') {\n return new AuthCipher(config.module, password, iv)\n }\n\n return new Cipher(config.module, password, iv)\n}\n\nfunction createCipher (suite, password) {\n var config = MODES[suite.toLowerCase()]\n if (!config) throw new TypeError('invalid suite type')\n\n var keys = ebtk(password, false, config.key, config.iv)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nexports.createCipheriv = createCipheriv\nexports.createCipher = createCipher\n","var Buffer = require('safe-buffer').Buffer\nvar ZEROES = Buffer.alloc(16, 0)\n\nfunction toArray (buf) {\n return [\n buf.readUInt32BE(0),\n buf.readUInt32BE(4),\n buf.readUInt32BE(8),\n buf.readUInt32BE(12)\n ]\n}\n\nfunction fromArray (out) {\n var buf = Buffer.allocUnsafe(16)\n buf.writeUInt32BE(out[0] >>> 0, 0)\n buf.writeUInt32BE(out[1] >>> 0, 4)\n buf.writeUInt32BE(out[2] >>> 0, 8)\n buf.writeUInt32BE(out[3] >>> 0, 12)\n return buf\n}\n\nfunction GHASH (key) {\n this.h = key\n this.state = Buffer.alloc(16, 0)\n this.cache = Buffer.allocUnsafe(0)\n}\n\n// from http://bitwiseshiftleft.github.io/sjcl/doc/symbols/src/core_gcm.js.html\n// by Juho Vähä-Herttua\nGHASH.prototype.ghash = function (block) {\n var i = -1\n while (++i < block.length) {\n this.state[i] ^= block[i]\n }\n this._multiply()\n}\n\nGHASH.prototype._multiply = function () {\n var Vi = toArray(this.h)\n var Zi = [0, 0, 0, 0]\n var j, xi, lsbVi\n var i = -1\n while (++i < 128) {\n xi = (this.state[~~(i / 8)] & (1 << (7 - (i % 8)))) !== 0\n if (xi) {\n // Z_i+1 = Z_i ^ V_i\n Zi[0] ^= Vi[0]\n Zi[1] ^= Vi[1]\n Zi[2] ^= Vi[2]\n Zi[3] ^= Vi[3]\n }\n\n // Store the value of LSB(V_i)\n lsbVi = (Vi[3] & 1) !== 0\n\n // V_i+1 = V_i >> 1\n for (j = 3; j > 0; j--) {\n Vi[j] = (Vi[j] >>> 1) | ((Vi[j - 1] & 1) << 31)\n }\n Vi[0] = Vi[0] >>> 1\n\n // If LSB(V_i) is 1, V_i+1 = (V_i >> 1) ^ R\n if (lsbVi) {\n Vi[0] = Vi[0] ^ (0xe1 << 24)\n }\n }\n this.state = fromArray(Zi)\n}\n\nGHASH.prototype.update = function (buf) {\n this.cache = Buffer.concat([this.cache, buf])\n var chunk\n while (this.cache.length >= 16) {\n chunk = this.cache.slice(0, 16)\n this.cache = this.cache.slice(16)\n this.ghash(chunk)\n }\n}\n\nGHASH.prototype.final = function (abl, bl) {\n if (this.cache.length) {\n this.ghash(Buffer.concat([this.cache, ZEROES], 16))\n }\n\n this.ghash(fromArray([0, abl, 0, bl]))\n return this.state\n}\n\nmodule.exports = GHASH\n","function incr32 (iv) {\n var len = iv.length\n var item\n while (len--) {\n item = iv.readUInt8(len)\n if (item === 255) {\n iv.writeUInt8(0, len)\n } else {\n item++\n iv.writeUInt8(item, len)\n break\n }\n }\n}\nmodule.exports = incr32\n","var xor = require('buffer-xor')\n\nexports.encrypt = function (self, block) {\n var data = xor(block, self._prev)\n\n self._prev = self._cipher.encryptBlock(data)\n return self._prev\n}\n\nexports.decrypt = function (self, block) {\n var pad = self._prev\n\n self._prev = block\n var out = self._cipher.decryptBlock(block)\n\n return xor(out, pad)\n}\n","var Buffer = require('safe-buffer').Buffer\nvar xor = require('buffer-xor')\n\nfunction encryptStart (self, data, decrypt) {\n var len = data.length\n var out = xor(data, self._cache)\n self._cache = self._cache.slice(len)\n self._prev = Buffer.concat([self._prev, decrypt ? data : out])\n return out\n}\n\nexports.encrypt = function (self, data, decrypt) {\n var out = Buffer.allocUnsafe(0)\n var len\n\n while (data.length) {\n if (self._cache.length === 0) {\n self._cache = self._cipher.encryptBlock(self._prev)\n self._prev = Buffer.allocUnsafe(0)\n }\n\n if (self._cache.length <= data.length) {\n len = self._cache.length\n out = Buffer.concat([out, encryptStart(self, data.slice(0, len), decrypt)])\n data = data.slice(len)\n } else {\n out = Buffer.concat([out, encryptStart(self, data, decrypt)])\n break\n }\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad\n var i = -1\n var len = 8\n var out = 0\n var bit, value\n while (++i < len) {\n pad = self._cipher.encryptBlock(self._prev)\n bit = (byteParam & (1 << (7 - i))) ? 0x80 : 0\n value = pad[0] ^ bit\n out += ((value & 0x80) >> (i % 8))\n self._prev = shiftIn(self._prev, decrypt ? bit : value)\n }\n return out\n}\n\nfunction shiftIn (buffer, value) {\n var len = buffer.length\n var i = -1\n var out = Buffer.allocUnsafe(buffer.length)\n buffer = Buffer.concat([buffer, Buffer.from([value])])\n\n while (++i < len) {\n out[i] = buffer[i] << 1 | buffer[i + 1] >> (7)\n }\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var Buffer = require('safe-buffer').Buffer\n\nfunction encryptByte (self, byteParam, decrypt) {\n var pad = self._cipher.encryptBlock(self._prev)\n var out = pad[0] ^ byteParam\n\n self._prev = Buffer.concat([\n self._prev.slice(1),\n Buffer.from([decrypt ? byteParam : out])\n ])\n\n return out\n}\n\nexports.encrypt = function (self, chunk, decrypt) {\n var len = chunk.length\n var out = Buffer.allocUnsafe(len)\n var i = -1\n\n while (++i < len) {\n out[i] = encryptByte(self, chunk[i], decrypt)\n }\n\n return out\n}\n","var xor = require('buffer-xor')\nvar Buffer = require('safe-buffer').Buffer\nvar incr32 = require('../incr32')\n\nfunction getBlock (self) {\n var out = self._cipher.encryptBlockRaw(self._prev)\n incr32(self._prev)\n return out\n}\n\nvar blockSize = 16\nexports.encrypt = function (self, chunk) {\n var chunkNum = Math.ceil(chunk.length / blockSize)\n var start = self._cache.length\n self._cache = Buffer.concat([\n self._cache,\n Buffer.allocUnsafe(chunkNum * blockSize)\n ])\n for (var i = 0; i < chunkNum; i++) {\n var out = getBlock(self)\n var offset = start + i * blockSize\n self._cache.writeUInt32BE(out[0], offset + 0)\n self._cache.writeUInt32BE(out[1], offset + 4)\n self._cache.writeUInt32BE(out[2], offset + 8)\n self._cache.writeUInt32BE(out[3], offset + 12)\n }\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","exports.encrypt = function (self, block) {\n return self._cipher.encryptBlock(block)\n}\n\nexports.decrypt = function (self, block) {\n return self._cipher.decryptBlock(block)\n}\n","var modeModules = {\n ECB: require('./ecb'),\n CBC: require('./cbc'),\n CFB: require('./cfb'),\n CFB8: require('./cfb8'),\n CFB1: require('./cfb1'),\n OFB: require('./ofb'),\n CTR: require('./ctr'),\n GCM: require('./ctr')\n}\n\nvar modes = require('./list.json')\n\nfor (var key in modes) {\n modes[key].module = modeModules[modes[key].mode]\n}\n\nmodule.exports = modes\n","var xor = require('buffer-xor')\n\nfunction getBlock (self) {\n self._prev = self._cipher.encryptBlock(self._prev)\n return self._prev\n}\n\nexports.encrypt = function (self, chunk) {\n while (self._cache.length < chunk.length) {\n self._cache = Buffer.concat([self._cache, getBlock(self)])\n }\n\n var pad = self._cache.slice(0, chunk.length)\n self._cache = self._cache.slice(chunk.length)\n return xor(chunk, pad)\n}\n","var aes = require('./aes')\nvar Buffer = require('safe-buffer').Buffer\nvar Transform = require('cipher-base')\nvar inherits = require('inherits')\n\nfunction StreamCipher (mode, key, iv, decrypt) {\n Transform.call(this)\n\n this._cipher = new aes.AES(key)\n this._prev = Buffer.from(iv)\n this._cache = Buffer.allocUnsafe(0)\n this._secCache = Buffer.allocUnsafe(0)\n this._decrypt = decrypt\n this._mode = mode\n}\n\ninherits(StreamCipher, Transform)\n\nStreamCipher.prototype._update = function (chunk) {\n return this._mode.encrypt(this, chunk, this._decrypt)\n}\n\nStreamCipher.prototype._final = function () {\n this._cipher.scrub()\n}\n\nmodule.exports = StreamCipher\n","var DES = require('browserify-des')\nvar aes = require('browserify-aes/browser')\nvar aesModes = require('browserify-aes/modes')\nvar desModes = require('browserify-des/modes')\nvar ebtk = require('evp_bytestokey')\n\nfunction createCipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createCipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createDecipher (suite, password) {\n suite = suite.toLowerCase()\n\n var keyLen, ivLen\n if (aesModes[suite]) {\n keyLen = aesModes[suite].key\n ivLen = aesModes[suite].iv\n } else if (desModes[suite]) {\n keyLen = desModes[suite].key * 8\n ivLen = desModes[suite].iv\n } else {\n throw new TypeError('invalid suite type')\n }\n\n var keys = ebtk(password, false, keyLen, ivLen)\n return createDecipheriv(suite, keys.key, keys.iv)\n}\n\nfunction createCipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createCipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction createDecipheriv (suite, key, iv) {\n suite = suite.toLowerCase()\n if (aesModes[suite]) return aes.createDecipheriv(suite, key, iv)\n if (desModes[suite]) return new DES({ key: key, iv: iv, mode: suite, decrypt: true })\n\n throw new TypeError('invalid suite type')\n}\n\nfunction getCiphers () {\n return Object.keys(desModes).concat(aes.getCiphers())\n}\n\nexports.createCipher = exports.Cipher = createCipher\nexports.createCipheriv = exports.Cipheriv = createCipheriv\nexports.createDecipher = exports.Decipher = createDecipher\nexports.createDecipheriv = exports.Decipheriv = createDecipheriv\nexports.listCiphers = exports.getCiphers = getCiphers\n","var CipherBase = require('cipher-base')\nvar des = require('des.js')\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar modes = {\n 'des-ede3-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede3': des.EDE,\n 'des-ede-cbc': des.CBC.instantiate(des.EDE),\n 'des-ede': des.EDE,\n 'des-cbc': des.CBC.instantiate(des.DES),\n 'des-ecb': des.DES\n}\nmodes.des = modes['des-cbc']\nmodes.des3 = modes['des-ede3-cbc']\nmodule.exports = DES\ninherits(DES, CipherBase)\nfunction DES (opts) {\n CipherBase.call(this)\n var modeName = opts.mode.toLowerCase()\n var mode = modes[modeName]\n var type\n if (opts.decrypt) {\n type = 'decrypt'\n } else {\n type = 'encrypt'\n }\n var key = opts.key\n if (!Buffer.isBuffer(key)) {\n key = Buffer.from(key)\n }\n if (modeName === 'des-ede' || modeName === 'des-ede-cbc') {\n key = Buffer.concat([key, key.slice(0, 8)])\n }\n var iv = opts.iv\n if (!Buffer.isBuffer(iv)) {\n iv = Buffer.from(iv)\n }\n this._des = mode.create({\n key: key,\n iv: iv,\n type: type\n })\n}\nDES.prototype._update = function (data) {\n return Buffer.from(this._des.update(data))\n}\nDES.prototype._final = function () {\n return Buffer.from(this._des.final())\n}\n","exports['des-ecb'] = {\n key: 8,\n iv: 0\n}\nexports['des-cbc'] = exports.des = {\n key: 8,\n iv: 8\n}\nexports['des-ede3-cbc'] = exports.des3 = {\n key: 24,\n iv: 8\n}\nexports['des-ede3'] = {\n key: 24,\n iv: 0\n}\nexports['des-ede-cbc'] = {\n key: 16,\n iv: 8\n}\nexports['des-ede'] = {\n key: 16,\n iv: 0\n}\n","var BN = require('bn.js')\nvar randomBytes = require('randombytes')\n\nfunction blind (priv) {\n var r = getr(priv)\n var blinder = r.toRed(BN.mont(priv.modulus)).redPow(new BN(priv.publicExponent)).fromRed()\n return { blinder: blinder, unblinder: r.invm(priv.modulus) }\n}\n\nfunction getr (priv) {\n var len = priv.modulus.byteLength()\n var r\n do {\n r = new BN(randomBytes(len))\n } while (r.cmp(priv.modulus) >= 0 || !r.umod(priv.prime1) || !r.umod(priv.prime2))\n return r\n}\n\nfunction crt (msg, priv) {\n var blinds = blind(priv)\n var len = priv.modulus.byteLength()\n var blinded = new BN(msg).mul(blinds.blinder).umod(priv.modulus)\n var c1 = blinded.toRed(BN.mont(priv.prime1))\n var c2 = blinded.toRed(BN.mont(priv.prime2))\n var qinv = priv.coefficient\n var p = priv.prime1\n var q = priv.prime2\n var m1 = c1.redPow(priv.exponent1).fromRed()\n var m2 = c2.redPow(priv.exponent2).fromRed()\n var h = m1.isub(m2).imul(qinv).umod(p).imul(q)\n return m2.iadd(h).imul(blinds.unblinder).umod(priv.modulus).toArrayLike(Buffer, 'be', len)\n}\ncrt.getr = getr\n\nmodule.exports = crt\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","module.exports = require('./browser/algorithms.json')\n","var Buffer = require('safe-buffer').Buffer\nvar createHash = require('create-hash')\nvar stream = require('readable-stream')\nvar inherits = require('inherits')\nvar sign = require('./sign')\nvar verify = require('./verify')\n\nvar algorithms = require('./algorithms.json')\nObject.keys(algorithms).forEach(function (key) {\n algorithms[key].id = Buffer.from(algorithms[key].id, 'hex')\n algorithms[key.toLowerCase()] = algorithms[key]\n})\n\nfunction Sign (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hashType = data.hash\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Sign, stream.Writable)\n\nSign.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nSign.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nSign.prototype.sign = function signMethod (key, enc) {\n this.end()\n var hash = this._hash.digest()\n var sig = sign(hash, key, this._hashType, this._signType, this._tag)\n\n return enc ? sig.toString(enc) : sig\n}\n\nfunction Verify (algorithm) {\n stream.Writable.call(this)\n\n var data = algorithms[algorithm]\n if (!data) throw new Error('Unknown message digest')\n\n this._hash = createHash(data.hash)\n this._tag = data.id\n this._signType = data.sign\n}\ninherits(Verify, stream.Writable)\n\nVerify.prototype._write = function _write (data, _, done) {\n this._hash.update(data)\n done()\n}\n\nVerify.prototype.update = function update (data, enc) {\n if (typeof data === 'string') data = Buffer.from(data, enc)\n\n this._hash.update(data)\n return this\n}\n\nVerify.prototype.verify = function verifyMethod (key, sig, enc) {\n if (typeof sig === 'string') sig = Buffer.from(sig, enc)\n\n this.end()\n var hash = this._hash.digest()\n return verify(sig, hash, key, this._signType, this._tag)\n}\n\nfunction createSign (algorithm) {\n return new Sign(algorithm)\n}\n\nfunction createVerify (algorithm) {\n return new Verify(algorithm)\n}\n\nmodule.exports = {\n Sign: createSign,\n Verify: createVerify,\n createSign: createSign,\n createVerify: createVerify\n}\n","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\nvar createHmac = require('create-hmac')\nvar crt = require('browserify-rsa')\nvar EC = require('elliptic').ec\nvar BN = require('bn.js')\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction sign (hash, key, hashType, signType, tag) {\n var priv = parseKeys(key)\n if (priv.curve) {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n return ecSign(hash, priv)\n } else if (priv.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong private key type')\n return dsaSign(hash, priv, hashType)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong private key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = priv.modulus.byteLength()\n var pad = [0, 1]\n while (hash.length + pad.length + 1 < len) pad.push(0xff)\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) pad.push(hash[i])\n\n var out = crt(pad, priv)\n return out\n}\n\nfunction ecSign (hash, priv) {\n var curveId = curves[priv.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + priv.curve.join('.'))\n\n var curve = new EC(curveId)\n var key = curve.keyFromPrivate(priv.privateKey)\n var out = key.sign(hash)\n\n return Buffer.from(out.toDER())\n}\n\nfunction dsaSign (hash, priv, algo) {\n var x = priv.params.priv_key\n var p = priv.params.p\n var q = priv.params.q\n var g = priv.params.g\n var r = new BN(0)\n var k\n var H = bits2int(hash, q).mod(q)\n var s = false\n var kv = getKey(x, q, hash, algo)\n while (s === false) {\n k = makeKey(q, kv, algo)\n r = makeR(g, k, p, q)\n s = k.invm(q).imul(H.add(x.mul(r))).mod(q)\n if (s.cmpn(0) === 0) {\n s = false\n r = new BN(0)\n }\n }\n return toDER(r, s)\n}\n\nfunction toDER (r, s) {\n r = r.toArray()\n s = s.toArray()\n\n // Pad values\n if (r[0] & 0x80) r = [0].concat(r)\n if (s[0] & 0x80) s = [0].concat(s)\n\n var total = r.length + s.length + 4\n var res = [0x30, total, 0x02, r.length]\n res = res.concat(r, [0x02, s.length], s)\n return Buffer.from(res)\n}\n\nfunction getKey (x, q, hash, algo) {\n x = Buffer.from(x.toArray())\n if (x.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - x.length)\n x = Buffer.concat([zeros, x])\n }\n var hlen = hash.length\n var hbits = bits2octets(hash, q)\n var v = Buffer.alloc(hlen)\n v.fill(1)\n var k = Buffer.alloc(hlen)\n k = createHmac(algo, k).update(v).update(Buffer.from([0])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n k = createHmac(algo, k).update(v).update(Buffer.from([1])).update(x).update(hbits).digest()\n v = createHmac(algo, k).update(v).digest()\n return { k: k, v: v }\n}\n\nfunction bits2int (obits, q) {\n var bits = new BN(obits)\n var shift = (obits.length << 3) - q.bitLength()\n if (shift > 0) bits.ishrn(shift)\n return bits\n}\n\nfunction bits2octets (bits, q) {\n bits = bits2int(bits, q)\n bits = bits.mod(q)\n var out = Buffer.from(bits.toArray())\n if (out.length < q.byteLength()) {\n var zeros = Buffer.alloc(q.byteLength() - out.length)\n out = Buffer.concat([zeros, out])\n }\n return out\n}\n\nfunction makeKey (q, kv, algo) {\n var t\n var k\n\n do {\n t = Buffer.alloc(0)\n\n while (t.length * 8 < q.bitLength()) {\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n t = Buffer.concat([t, kv.v])\n }\n\n k = bits2int(t, q)\n kv.k = createHmac(algo, kv.k).update(kv.v).update(Buffer.from([0])).digest()\n kv.v = createHmac(algo, kv.k).update(kv.v).digest()\n } while (k.cmp(q) !== -1)\n\n return k\n}\n\nfunction makeR (g, k, p, q) {\n return g.toRed(BN.mont(p)).redPow(k).fromRed().mod(q)\n}\n\nmodule.exports = sign\nmodule.exports.getKey = getKey\nmodule.exports.makeKey = makeKey\n","// much of this based on https://github.com/indutny/self-signed/blob/gh-pages/lib/rsa.js\nvar Buffer = require('safe-buffer').Buffer\nvar BN = require('bn.js')\nvar EC = require('elliptic').ec\nvar parseKeys = require('parse-asn1')\nvar curves = require('./curves.json')\n\nfunction verify (sig, hash, key, signType, tag) {\n var pub = parseKeys(key)\n if (pub.type === 'ec') {\n // rsa keys can be interpreted as ecdsa ones in openssl\n if (signType !== 'ecdsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n return ecVerify(sig, hash, pub)\n } else if (pub.type === 'dsa') {\n if (signType !== 'dsa') throw new Error('wrong public key type')\n return dsaVerify(sig, hash, pub)\n } else {\n if (signType !== 'rsa' && signType !== 'ecdsa/rsa') throw new Error('wrong public key type')\n }\n hash = Buffer.concat([tag, hash])\n var len = pub.modulus.byteLength()\n var pad = [1]\n var padNum = 0\n while (hash.length + pad.length + 2 < len) {\n pad.push(0xff)\n padNum++\n }\n pad.push(0x00)\n var i = -1\n while (++i < hash.length) {\n pad.push(hash[i])\n }\n pad = Buffer.from(pad)\n var red = BN.mont(pub.modulus)\n sig = new BN(sig).toRed(red)\n\n sig = sig.redPow(new BN(pub.publicExponent))\n sig = Buffer.from(sig.fromRed().toArray())\n var out = padNum < 8 ? 1 : 0\n len = Math.min(sig.length, pad.length)\n if (sig.length !== pad.length) out = 1\n\n i = -1\n while (++i < len) out |= sig[i] ^ pad[i]\n return out === 0\n}\n\nfunction ecVerify (sig, hash, pub) {\n var curveId = curves[pub.data.algorithm.curve.join('.')]\n if (!curveId) throw new Error('unknown curve ' + pub.data.algorithm.curve.join('.'))\n\n var curve = new EC(curveId)\n var pubkey = pub.data.subjectPrivateKey.data\n\n return curve.verify(hash, sig, pubkey)\n}\n\nfunction dsaVerify (sig, hash, pub) {\n var p = pub.data.p\n var q = pub.data.q\n var g = pub.data.g\n var y = pub.data.pub_key\n var unpacked = parseKeys.signature.decode(sig, 'der')\n var s = unpacked.s\n var r = unpacked.r\n checkValue(s, q)\n checkValue(r, q)\n var montp = BN.mont(p)\n var w = s.invm(q)\n var v = g.toRed(montp)\n .redPow(new BN(hash).mul(w).mod(q))\n .fromRed()\n .mul(y.toRed(montp).redPow(r.mul(w).mod(q)).fromRed())\n .mod(p)\n .mod(q)\n return v.cmp(r) === 0\n}\n\nfunction checkValue (b, q) {\n if (b.cmpn(0) <= 0) throw new Error('invalid sig')\n if (b.cmp(q) >= q) throw new Error('invalid sig')\n}\n\nmodule.exports = verify\n","(function (module, exports) {\n 'use strict';\n\n // Utils\n function assert (val, msg) {\n if (!val) throw new Error(msg || 'Assertion failed');\n }\n\n // Could use `inherits` module, but don't want to move from single file\n // architecture yet.\n function inherits (ctor, superCtor) {\n ctor.super_ = superCtor;\n var TempCtor = function () {};\n TempCtor.prototype = superCtor.prototype;\n ctor.prototype = new TempCtor();\n ctor.prototype.constructor = ctor;\n }\n\n // BN\n\n function BN (number, base, endian) {\n if (BN.isBN(number)) {\n return number;\n }\n\n this.negative = 0;\n this.words = null;\n this.length = 0;\n\n // Reduction context\n this.red = null;\n\n if (number !== null) {\n if (base === 'le' || base === 'be') {\n endian = base;\n base = 10;\n }\n\n this._init(number || 0, base || 10, endian || 'be');\n }\n }\n if (typeof module === 'object') {\n module.exports = BN;\n } else {\n exports.BN = BN;\n }\n\n BN.BN = BN;\n BN.wordSize = 26;\n\n var Buffer;\n try {\n if (typeof window !== 'undefined' && typeof window.Buffer !== 'undefined') {\n Buffer = window.Buffer;\n } else {\n Buffer = require('buffer').Buffer;\n }\n } catch (e) {\n }\n\n BN.isBN = function isBN (num) {\n if (num instanceof BN) {\n return true;\n }\n\n return num !== null && typeof num === 'object' &&\n num.constructor.wordSize === BN.wordSize && Array.isArray(num.words);\n };\n\n BN.max = function max (left, right) {\n if (left.cmp(right) > 0) return left;\n return right;\n };\n\n BN.min = function min (left, right) {\n if (left.cmp(right) < 0) return left;\n return right;\n };\n\n BN.prototype._init = function init (number, base, endian) {\n if (typeof number === 'number') {\n return this._initNumber(number, base, endian);\n }\n\n if (typeof number === 'object') {\n return this._initArray(number, base, endian);\n }\n\n if (base === 'hex') {\n base = 16;\n }\n assert(base === (base | 0) && base >= 2 && base <= 36);\n\n number = number.toString().replace(/\\s+/g, '');\n var start = 0;\n if (number[0] === '-') {\n start++;\n this.negative = 1;\n }\n\n if (start < number.length) {\n if (base === 16) {\n this._parseHex(number, start, endian);\n } else {\n this._parseBase(number, base, start);\n if (endian === 'le') {\n this._initArray(this.toArray(), base, endian);\n }\n }\n }\n };\n\n BN.prototype._initNumber = function _initNumber (number, base, endian) {\n if (number < 0) {\n this.negative = 1;\n number = -number;\n }\n if (number < 0x4000000) {\n this.words = [number & 0x3ffffff];\n this.length = 1;\n } else if (number < 0x10000000000000) {\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff\n ];\n this.length = 2;\n } else {\n assert(number < 0x20000000000000); // 2 ^ 53 (unsafe)\n this.words = [\n number & 0x3ffffff,\n (number / 0x4000000) & 0x3ffffff,\n 1\n ];\n this.length = 3;\n }\n\n if (endian !== 'le') return;\n\n // Reverse the bytes\n this._initArray(this.toArray(), base, endian);\n };\n\n BN.prototype._initArray = function _initArray (number, base, endian) {\n // Perhaps a Uint8Array\n assert(typeof number.length === 'number');\n if (number.length <= 0) {\n this.words = [0];\n this.length = 1;\n return this;\n }\n\n this.length = Math.ceil(number.length / 3);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n var j, w;\n var off = 0;\n if (endian === 'be') {\n for (i = number.length - 1, j = 0; i >= 0; i -= 3) {\n w = number[i] | (number[i - 1] << 8) | (number[i - 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n } else if (endian === 'le') {\n for (i = 0, j = 0; i < number.length; i += 3) {\n w = number[i] | (number[i + 1] << 8) | (number[i + 2] << 16);\n this.words[j] |= (w << off) & 0x3ffffff;\n this.words[j + 1] = (w >>> (26 - off)) & 0x3ffffff;\n off += 24;\n if (off >= 26) {\n off -= 26;\n j++;\n }\n }\n }\n return this._strip();\n };\n\n function parseHex4Bits (string, index) {\n var c = string.charCodeAt(index);\n // '0' - '9'\n if (c >= 48 && c <= 57) {\n return c - 48;\n // 'A' - 'F'\n } else if (c >= 65 && c <= 70) {\n return c - 55;\n // 'a' - 'f'\n } else if (c >= 97 && c <= 102) {\n return c - 87;\n } else {\n assert(false, 'Invalid character in ' + string);\n }\n }\n\n function parseHexByte (string, lowerBound, index) {\n var r = parseHex4Bits(string, index);\n if (index - 1 >= lowerBound) {\n r |= parseHex4Bits(string, index - 1) << 4;\n }\n return r;\n }\n\n BN.prototype._parseHex = function _parseHex (number, start, endian) {\n // Create possibly bigger array to ensure that it fits the number\n this.length = Math.ceil((number.length - start) / 6);\n this.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n this.words[i] = 0;\n }\n\n // 24-bits chunks\n var off = 0;\n var j = 0;\n\n var w;\n if (endian === 'be') {\n for (i = number.length - 1; i >= start; i -= 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n } else {\n var parseLength = number.length - start;\n for (i = parseLength % 2 === 0 ? start + 1 : start; i < number.length; i += 2) {\n w = parseHexByte(number, start, i) << off;\n this.words[j] |= w & 0x3ffffff;\n if (off >= 18) {\n off -= 18;\n j += 1;\n this.words[j] |= w >>> 26;\n } else {\n off += 8;\n }\n }\n }\n\n this._strip();\n };\n\n function parseBase (str, start, end, mul) {\n var r = 0;\n var b = 0;\n var len = Math.min(str.length, end);\n for (var i = start; i < len; i++) {\n var c = str.charCodeAt(i) - 48;\n\n r *= mul;\n\n // 'a'\n if (c >= 49) {\n b = c - 49 + 0xa;\n\n // 'A'\n } else if (c >= 17) {\n b = c - 17 + 0xa;\n\n // '0' - '9'\n } else {\n b = c;\n }\n assert(c >= 0 && b < mul, 'Invalid character');\n r += b;\n }\n return r;\n }\n\n BN.prototype._parseBase = function _parseBase (number, base, start) {\n // Initialize as zero\n this.words = [0];\n this.length = 1;\n\n // Find length of limb in base\n for (var limbLen = 0, limbPow = 1; limbPow <= 0x3ffffff; limbPow *= base) {\n limbLen++;\n }\n limbLen--;\n limbPow = (limbPow / base) | 0;\n\n var total = number.length - start;\n var mod = total % limbLen;\n var end = Math.min(total, total - mod) + start;\n\n var word = 0;\n for (var i = start; i < end; i += limbLen) {\n word = parseBase(number, i, i + limbLen, base);\n\n this.imuln(limbPow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n if (mod !== 0) {\n var pow = 1;\n word = parseBase(number, i, number.length, base);\n\n for (i = 0; i < mod; i++) {\n pow *= base;\n }\n\n this.imuln(pow);\n if (this.words[0] + word < 0x4000000) {\n this.words[0] += word;\n } else {\n this._iaddn(word);\n }\n }\n\n this._strip();\n };\n\n BN.prototype.copy = function copy (dest) {\n dest.words = new Array(this.length);\n for (var i = 0; i < this.length; i++) {\n dest.words[i] = this.words[i];\n }\n dest.length = this.length;\n dest.negative = this.negative;\n dest.red = this.red;\n };\n\n function move (dest, src) {\n dest.words = src.words;\n dest.length = src.length;\n dest.negative = src.negative;\n dest.red = src.red;\n }\n\n BN.prototype._move = function _move (dest) {\n move(dest, this);\n };\n\n BN.prototype.clone = function clone () {\n var r = new BN(null);\n this.copy(r);\n return r;\n };\n\n BN.prototype._expand = function _expand (size) {\n while (this.length < size) {\n this.words[this.length++] = 0;\n }\n return this;\n };\n\n // Remove leading `0` from `this`\n BN.prototype._strip = function strip () {\n while (this.length > 1 && this.words[this.length - 1] === 0) {\n this.length--;\n }\n return this._normSign();\n };\n\n BN.prototype._normSign = function _normSign () {\n // -0 = 0\n if (this.length === 1 && this.words[0] === 0) {\n this.negative = 0;\n }\n return this;\n };\n\n // Check Symbol.for because not everywhere where Symbol defined\n // See https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Symbol#Browser_compatibility\n if (typeof Symbol !== 'undefined' && typeof Symbol.for === 'function') {\n try {\n BN.prototype[Symbol.for('nodejs.util.inspect.custom')] = inspect;\n } catch (e) {\n BN.prototype.inspect = inspect;\n }\n } else {\n BN.prototype.inspect = inspect;\n }\n\n function inspect () {\n return (this.red ? '';\n }\n\n /*\n\n var zeros = [];\n var groupSizes = [];\n var groupBases = [];\n\n var s = '';\n var i = -1;\n while (++i < BN.wordSize) {\n zeros[i] = s;\n s += '0';\n }\n groupSizes[0] = 0;\n groupSizes[1] = 0;\n groupBases[0] = 0;\n groupBases[1] = 0;\n var base = 2 - 1;\n while (++base < 36 + 1) {\n var groupSize = 0;\n var groupBase = 1;\n while (groupBase < (1 << BN.wordSize) / base) {\n groupBase *= base;\n groupSize += 1;\n }\n groupSizes[base] = groupSize;\n groupBases[base] = groupBase;\n }\n\n */\n\n var zeros = [\n '',\n '0',\n '00',\n '000',\n '0000',\n '00000',\n '000000',\n '0000000',\n '00000000',\n '000000000',\n '0000000000',\n '00000000000',\n '000000000000',\n '0000000000000',\n '00000000000000',\n '000000000000000',\n '0000000000000000',\n '00000000000000000',\n '000000000000000000',\n '0000000000000000000',\n '00000000000000000000',\n '000000000000000000000',\n '0000000000000000000000',\n '00000000000000000000000',\n '000000000000000000000000',\n '0000000000000000000000000'\n ];\n\n var groupSizes = [\n 0, 0,\n 25, 16, 12, 11, 10, 9, 8,\n 8, 7, 7, 7, 7, 6, 6,\n 6, 6, 6, 6, 6, 5, 5,\n 5, 5, 5, 5, 5, 5, 5,\n 5, 5, 5, 5, 5, 5, 5\n ];\n\n var groupBases = [\n 0, 0,\n 33554432, 43046721, 16777216, 48828125, 60466176, 40353607, 16777216,\n 43046721, 10000000, 19487171, 35831808, 62748517, 7529536, 11390625,\n 16777216, 24137569, 34012224, 47045881, 64000000, 4084101, 5153632,\n 6436343, 7962624, 9765625, 11881376, 14348907, 17210368, 20511149,\n 24300000, 28629151, 33554432, 39135393, 45435424, 52521875, 60466176\n ];\n\n BN.prototype.toString = function toString (base, padding) {\n base = base || 10;\n padding = padding | 0 || 1;\n\n var out;\n if (base === 16 || base === 'hex') {\n out = '';\n var off = 0;\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = this.words[i];\n var word = (((w << off) | carry) & 0xffffff).toString(16);\n carry = (w >>> (24 - off)) & 0xffffff;\n off += 2;\n if (off >= 26) {\n off -= 26;\n i--;\n }\n if (carry !== 0 || i !== this.length - 1) {\n out = zeros[6 - word.length] + word + out;\n } else {\n out = word + out;\n }\n }\n if (carry !== 0) {\n out = carry.toString(16) + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n if (base === (base | 0) && base >= 2 && base <= 36) {\n // var groupSize = Math.floor(BN.wordSize * Math.LN2 / Math.log(base));\n var groupSize = groupSizes[base];\n // var groupBase = Math.pow(base, groupSize);\n var groupBase = groupBases[base];\n out = '';\n var c = this.clone();\n c.negative = 0;\n while (!c.isZero()) {\n var r = c.modrn(groupBase).toString(base);\n c = c.idivn(groupBase);\n\n if (!c.isZero()) {\n out = zeros[groupSize - r.length] + r + out;\n } else {\n out = r + out;\n }\n }\n if (this.isZero()) {\n out = '0' + out;\n }\n while (out.length % padding !== 0) {\n out = '0' + out;\n }\n if (this.negative !== 0) {\n out = '-' + out;\n }\n return out;\n }\n\n assert(false, 'Base should be between 2 and 36');\n };\n\n BN.prototype.toNumber = function toNumber () {\n var ret = this.words[0];\n if (this.length === 2) {\n ret += this.words[1] * 0x4000000;\n } else if (this.length === 3 && this.words[2] === 0x01) {\n // NOTE: at this stage it is known that the top bit is set\n ret += 0x10000000000000 + (this.words[1] * 0x4000000);\n } else if (this.length > 2) {\n assert(false, 'Number can only safely store up to 53 bits');\n }\n return (this.negative !== 0) ? -ret : ret;\n };\n\n BN.prototype.toJSON = function toJSON () {\n return this.toString(16, 2);\n };\n\n if (Buffer) {\n BN.prototype.toBuffer = function toBuffer (endian, length) {\n return this.toArrayLike(Buffer, endian, length);\n };\n }\n\n BN.prototype.toArray = function toArray (endian, length) {\n return this.toArrayLike(Array, endian, length);\n };\n\n var allocate = function allocate (ArrayType, size) {\n if (ArrayType.allocUnsafe) {\n return ArrayType.allocUnsafe(size);\n }\n return new ArrayType(size);\n };\n\n BN.prototype.toArrayLike = function toArrayLike (ArrayType, endian, length) {\n this._strip();\n\n var byteLength = this.byteLength();\n var reqLength = length || Math.max(1, byteLength);\n assert(byteLength <= reqLength, 'byte array longer than desired length');\n assert(reqLength > 0, 'Requested array length <= 0');\n\n var res = allocate(ArrayType, reqLength);\n var postfix = endian === 'le' ? 'LE' : 'BE';\n this['_toArrayLike' + postfix](res, byteLength);\n return res;\n };\n\n BN.prototype._toArrayLikeLE = function _toArrayLikeLE (res, byteLength) {\n var position = 0;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position++] = word & 0xff;\n if (position < res.length) {\n res[position++] = (word >> 8) & 0xff;\n }\n if (position < res.length) {\n res[position++] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position < res.length) {\n res[position++] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position < res.length) {\n res[position++] = carry;\n\n while (position < res.length) {\n res[position++] = 0;\n }\n }\n };\n\n BN.prototype._toArrayLikeBE = function _toArrayLikeBE (res, byteLength) {\n var position = res.length - 1;\n var carry = 0;\n\n for (var i = 0, shift = 0; i < this.length; i++) {\n var word = (this.words[i] << shift) | carry;\n\n res[position--] = word & 0xff;\n if (position >= 0) {\n res[position--] = (word >> 8) & 0xff;\n }\n if (position >= 0) {\n res[position--] = (word >> 16) & 0xff;\n }\n\n if (shift === 6) {\n if (position >= 0) {\n res[position--] = (word >> 24) & 0xff;\n }\n carry = 0;\n shift = 0;\n } else {\n carry = word >>> 24;\n shift += 2;\n }\n }\n\n if (position >= 0) {\n res[position--] = carry;\n\n while (position >= 0) {\n res[position--] = 0;\n }\n }\n };\n\n if (Math.clz32) {\n BN.prototype._countBits = function _countBits (w) {\n return 32 - Math.clz32(w);\n };\n } else {\n BN.prototype._countBits = function _countBits (w) {\n var t = w;\n var r = 0;\n if (t >= 0x1000) {\n r += 13;\n t >>>= 13;\n }\n if (t >= 0x40) {\n r += 7;\n t >>>= 7;\n }\n if (t >= 0x8) {\n r += 4;\n t >>>= 4;\n }\n if (t >= 0x02) {\n r += 2;\n t >>>= 2;\n }\n return r + t;\n };\n }\n\n BN.prototype._zeroBits = function _zeroBits (w) {\n // Short-cut\n if (w === 0) return 26;\n\n var t = w;\n var r = 0;\n if ((t & 0x1fff) === 0) {\n r += 13;\n t >>>= 13;\n }\n if ((t & 0x7f) === 0) {\n r += 7;\n t >>>= 7;\n }\n if ((t & 0xf) === 0) {\n r += 4;\n t >>>= 4;\n }\n if ((t & 0x3) === 0) {\n r += 2;\n t >>>= 2;\n }\n if ((t & 0x1) === 0) {\n r++;\n }\n return r;\n };\n\n // Return number of used bits in a BN\n BN.prototype.bitLength = function bitLength () {\n var w = this.words[this.length - 1];\n var hi = this._countBits(w);\n return (this.length - 1) * 26 + hi;\n };\n\n function toBitArray (num) {\n var w = new Array(num.bitLength());\n\n for (var bit = 0; bit < w.length; bit++) {\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n w[bit] = (num.words[off] >>> wbit) & 0x01;\n }\n\n return w;\n }\n\n // Number of trailing zero bits\n BN.prototype.zeroBits = function zeroBits () {\n if (this.isZero()) return 0;\n\n var r = 0;\n for (var i = 0; i < this.length; i++) {\n var b = this._zeroBits(this.words[i]);\n r += b;\n if (b !== 26) break;\n }\n return r;\n };\n\n BN.prototype.byteLength = function byteLength () {\n return Math.ceil(this.bitLength() / 8);\n };\n\n BN.prototype.toTwos = function toTwos (width) {\n if (this.negative !== 0) {\n return this.abs().inotn(width).iaddn(1);\n }\n return this.clone();\n };\n\n BN.prototype.fromTwos = function fromTwos (width) {\n if (this.testn(width - 1)) {\n return this.notn(width).iaddn(1).ineg();\n }\n return this.clone();\n };\n\n BN.prototype.isNeg = function isNeg () {\n return this.negative !== 0;\n };\n\n // Return negative clone of `this`\n BN.prototype.neg = function neg () {\n return this.clone().ineg();\n };\n\n BN.prototype.ineg = function ineg () {\n if (!this.isZero()) {\n this.negative ^= 1;\n }\n\n return this;\n };\n\n // Or `num` with `this` in-place\n BN.prototype.iuor = function iuor (num) {\n while (this.length < num.length) {\n this.words[this.length++] = 0;\n }\n\n for (var i = 0; i < num.length; i++) {\n this.words[i] = this.words[i] | num.words[i];\n }\n\n return this._strip();\n };\n\n BN.prototype.ior = function ior (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuor(num);\n };\n\n // Or `num` with `this`\n BN.prototype.or = function or (num) {\n if (this.length > num.length) return this.clone().ior(num);\n return num.clone().ior(this);\n };\n\n BN.prototype.uor = function uor (num) {\n if (this.length > num.length) return this.clone().iuor(num);\n return num.clone().iuor(this);\n };\n\n // And `num` with `this` in-place\n BN.prototype.iuand = function iuand (num) {\n // b = min-length(num, this)\n var b;\n if (this.length > num.length) {\n b = num;\n } else {\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = this.words[i] & num.words[i];\n }\n\n this.length = b.length;\n\n return this._strip();\n };\n\n BN.prototype.iand = function iand (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuand(num);\n };\n\n // And `num` with `this`\n BN.prototype.and = function and (num) {\n if (this.length > num.length) return this.clone().iand(num);\n return num.clone().iand(this);\n };\n\n BN.prototype.uand = function uand (num) {\n if (this.length > num.length) return this.clone().iuand(num);\n return num.clone().iuand(this);\n };\n\n // Xor `num` with `this` in-place\n BN.prototype.iuxor = function iuxor (num) {\n // a.length > b.length\n var a;\n var b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n for (var i = 0; i < b.length; i++) {\n this.words[i] = a.words[i] ^ b.words[i];\n }\n\n if (this !== a) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = a.length;\n\n return this._strip();\n };\n\n BN.prototype.ixor = function ixor (num) {\n assert((this.negative | num.negative) === 0);\n return this.iuxor(num);\n };\n\n // Xor `num` with `this`\n BN.prototype.xor = function xor (num) {\n if (this.length > num.length) return this.clone().ixor(num);\n return num.clone().ixor(this);\n };\n\n BN.prototype.uxor = function uxor (num) {\n if (this.length > num.length) return this.clone().iuxor(num);\n return num.clone().iuxor(this);\n };\n\n // Not ``this`` with ``width`` bitwidth\n BN.prototype.inotn = function inotn (width) {\n assert(typeof width === 'number' && width >= 0);\n\n var bytesNeeded = Math.ceil(width / 26) | 0;\n var bitsLeft = width % 26;\n\n // Extend the buffer with leading zeroes\n this._expand(bytesNeeded);\n\n if (bitsLeft > 0) {\n bytesNeeded--;\n }\n\n // Handle complete words\n for (var i = 0; i < bytesNeeded; i++) {\n this.words[i] = ~this.words[i] & 0x3ffffff;\n }\n\n // Handle the residue\n if (bitsLeft > 0) {\n this.words[i] = ~this.words[i] & (0x3ffffff >> (26 - bitsLeft));\n }\n\n // And remove leading zeroes\n return this._strip();\n };\n\n BN.prototype.notn = function notn (width) {\n return this.clone().inotn(width);\n };\n\n // Set `bit` of `this`\n BN.prototype.setn = function setn (bit, val) {\n assert(typeof bit === 'number' && bit >= 0);\n\n var off = (bit / 26) | 0;\n var wbit = bit % 26;\n\n this._expand(off + 1);\n\n if (val) {\n this.words[off] = this.words[off] | (1 << wbit);\n } else {\n this.words[off] = this.words[off] & ~(1 << wbit);\n }\n\n return this._strip();\n };\n\n // Add `num` to `this` in-place\n BN.prototype.iadd = function iadd (num) {\n var r;\n\n // negative + positive\n if (this.negative !== 0 && num.negative === 0) {\n this.negative = 0;\n r = this.isub(num);\n this.negative ^= 1;\n return this._normSign();\n\n // positive + negative\n } else if (this.negative === 0 && num.negative !== 0) {\n num.negative = 0;\n r = this.isub(num);\n num.negative = 1;\n return r._normSign();\n }\n\n // a.length > b.length\n var a, b;\n if (this.length > num.length) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) + (b.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n this.words[i] = r & 0x3ffffff;\n carry = r >>> 26;\n }\n\n this.length = a.length;\n if (carry !== 0) {\n this.words[this.length] = carry;\n this.length++;\n // Copy the rest of the words\n } else if (a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n return this;\n };\n\n // Add `num` to `this`\n BN.prototype.add = function add (num) {\n var res;\n if (num.negative !== 0 && this.negative === 0) {\n num.negative = 0;\n res = this.sub(num);\n num.negative ^= 1;\n return res;\n } else if (num.negative === 0 && this.negative !== 0) {\n this.negative = 0;\n res = num.sub(this);\n this.negative = 1;\n return res;\n }\n\n if (this.length > num.length) return this.clone().iadd(num);\n\n return num.clone().iadd(this);\n };\n\n // Subtract `num` from `this` in-place\n BN.prototype.isub = function isub (num) {\n // this - (-num) = this + num\n if (num.negative !== 0) {\n num.negative = 0;\n var r = this.iadd(num);\n num.negative = 1;\n return r._normSign();\n\n // -this - num = -(this + num)\n } else if (this.negative !== 0) {\n this.negative = 0;\n this.iadd(num);\n this.negative = 1;\n return this._normSign();\n }\n\n // At this point both numbers are positive\n var cmp = this.cmp(num);\n\n // Optimization - zeroify\n if (cmp === 0) {\n this.negative = 0;\n this.length = 1;\n this.words[0] = 0;\n return this;\n }\n\n // a > b\n var a, b;\n if (cmp > 0) {\n a = this;\n b = num;\n } else {\n a = num;\n b = this;\n }\n\n var carry = 0;\n for (var i = 0; i < b.length; i++) {\n r = (a.words[i] | 0) - (b.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n for (; carry !== 0 && i < a.length; i++) {\n r = (a.words[i] | 0) + carry;\n carry = r >> 26;\n this.words[i] = r & 0x3ffffff;\n }\n\n // Copy rest of the words\n if (carry === 0 && i < a.length && a !== this) {\n for (; i < a.length; i++) {\n this.words[i] = a.words[i];\n }\n }\n\n this.length = Math.max(this.length, i);\n\n if (a !== this) {\n this.negative = 1;\n }\n\n return this._strip();\n };\n\n // Subtract `num` from `this`\n BN.prototype.sub = function sub (num) {\n return this.clone().isub(num);\n };\n\n function smallMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n var len = (self.length + num.length) | 0;\n out.length = len;\n len = (len - 1) | 0;\n\n // Peel one iteration (compiler can't do it, because of code complexity)\n var a = self.words[0] | 0;\n var b = num.words[0] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n var carry = (r / 0x4000000) | 0;\n out.words[0] = lo;\n\n for (var k = 1; k < len; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = carry >>> 26;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = (k - j) | 0;\n a = self.words[i] | 0;\n b = num.words[j] | 0;\n r = a * b + rword;\n ncarry += (r / 0x4000000) | 0;\n rword = r & 0x3ffffff;\n }\n out.words[k] = rword | 0;\n carry = ncarry | 0;\n }\n if (carry !== 0) {\n out.words[k] = carry | 0;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n // TODO(indutny): it may be reasonable to omit it for users who don't need\n // to work with 256-bit numbers, otherwise it gives 20% improvement for 256-bit\n // multiplication (like elliptic secp256k1).\n var comb10MulTo = function comb10MulTo (self, num, out) {\n var a = self.words;\n var b = num.words;\n var o = out.words;\n var c = 0;\n var lo;\n var mid;\n var hi;\n var a0 = a[0] | 0;\n var al0 = a0 & 0x1fff;\n var ah0 = a0 >>> 13;\n var a1 = a[1] | 0;\n var al1 = a1 & 0x1fff;\n var ah1 = a1 >>> 13;\n var a2 = a[2] | 0;\n var al2 = a2 & 0x1fff;\n var ah2 = a2 >>> 13;\n var a3 = a[3] | 0;\n var al3 = a3 & 0x1fff;\n var ah3 = a3 >>> 13;\n var a4 = a[4] | 0;\n var al4 = a4 & 0x1fff;\n var ah4 = a4 >>> 13;\n var a5 = a[5] | 0;\n var al5 = a5 & 0x1fff;\n var ah5 = a5 >>> 13;\n var a6 = a[6] | 0;\n var al6 = a6 & 0x1fff;\n var ah6 = a6 >>> 13;\n var a7 = a[7] | 0;\n var al7 = a7 & 0x1fff;\n var ah7 = a7 >>> 13;\n var a8 = a[8] | 0;\n var al8 = a8 & 0x1fff;\n var ah8 = a8 >>> 13;\n var a9 = a[9] | 0;\n var al9 = a9 & 0x1fff;\n var ah9 = a9 >>> 13;\n var b0 = b[0] | 0;\n var bl0 = b0 & 0x1fff;\n var bh0 = b0 >>> 13;\n var b1 = b[1] | 0;\n var bl1 = b1 & 0x1fff;\n var bh1 = b1 >>> 13;\n var b2 = b[2] | 0;\n var bl2 = b2 & 0x1fff;\n var bh2 = b2 >>> 13;\n var b3 = b[3] | 0;\n var bl3 = b3 & 0x1fff;\n var bh3 = b3 >>> 13;\n var b4 = b[4] | 0;\n var bl4 = b4 & 0x1fff;\n var bh4 = b4 >>> 13;\n var b5 = b[5] | 0;\n var bl5 = b5 & 0x1fff;\n var bh5 = b5 >>> 13;\n var b6 = b[6] | 0;\n var bl6 = b6 & 0x1fff;\n var bh6 = b6 >>> 13;\n var b7 = b[7] | 0;\n var bl7 = b7 & 0x1fff;\n var bh7 = b7 >>> 13;\n var b8 = b[8] | 0;\n var bl8 = b8 & 0x1fff;\n var bh8 = b8 >>> 13;\n var b9 = b[9] | 0;\n var bl9 = b9 & 0x1fff;\n var bh9 = b9 >>> 13;\n\n out.negative = self.negative ^ num.negative;\n out.length = 19;\n /* k = 0 */\n lo = Math.imul(al0, bl0);\n mid = Math.imul(al0, bh0);\n mid = (mid + Math.imul(ah0, bl0)) | 0;\n hi = Math.imul(ah0, bh0);\n var w0 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w0 >>> 26)) | 0;\n w0 &= 0x3ffffff;\n /* k = 1 */\n lo = Math.imul(al1, bl0);\n mid = Math.imul(al1, bh0);\n mid = (mid + Math.imul(ah1, bl0)) | 0;\n hi = Math.imul(ah1, bh0);\n lo = (lo + Math.imul(al0, bl1)) | 0;\n mid = (mid + Math.imul(al0, bh1)) | 0;\n mid = (mid + Math.imul(ah0, bl1)) | 0;\n hi = (hi + Math.imul(ah0, bh1)) | 0;\n var w1 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w1 >>> 26)) | 0;\n w1 &= 0x3ffffff;\n /* k = 2 */\n lo = Math.imul(al2, bl0);\n mid = Math.imul(al2, bh0);\n mid = (mid + Math.imul(ah2, bl0)) | 0;\n hi = Math.imul(ah2, bh0);\n lo = (lo + Math.imul(al1, bl1)) | 0;\n mid = (mid + Math.imul(al1, bh1)) | 0;\n mid = (mid + Math.imul(ah1, bl1)) | 0;\n hi = (hi + Math.imul(ah1, bh1)) | 0;\n lo = (lo + Math.imul(al0, bl2)) | 0;\n mid = (mid + Math.imul(al0, bh2)) | 0;\n mid = (mid + Math.imul(ah0, bl2)) | 0;\n hi = (hi + Math.imul(ah0, bh2)) | 0;\n var w2 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w2 >>> 26)) | 0;\n w2 &= 0x3ffffff;\n /* k = 3 */\n lo = Math.imul(al3, bl0);\n mid = Math.imul(al3, bh0);\n mid = (mid + Math.imul(ah3, bl0)) | 0;\n hi = Math.imul(ah3, bh0);\n lo = (lo + Math.imul(al2, bl1)) | 0;\n mid = (mid + Math.imul(al2, bh1)) | 0;\n mid = (mid + Math.imul(ah2, bl1)) | 0;\n hi = (hi + Math.imul(ah2, bh1)) | 0;\n lo = (lo + Math.imul(al1, bl2)) | 0;\n mid = (mid + Math.imul(al1, bh2)) | 0;\n mid = (mid + Math.imul(ah1, bl2)) | 0;\n hi = (hi + Math.imul(ah1, bh2)) | 0;\n lo = (lo + Math.imul(al0, bl3)) | 0;\n mid = (mid + Math.imul(al0, bh3)) | 0;\n mid = (mid + Math.imul(ah0, bl3)) | 0;\n hi = (hi + Math.imul(ah0, bh3)) | 0;\n var w3 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w3 >>> 26)) | 0;\n w3 &= 0x3ffffff;\n /* k = 4 */\n lo = Math.imul(al4, bl0);\n mid = Math.imul(al4, bh0);\n mid = (mid + Math.imul(ah4, bl0)) | 0;\n hi = Math.imul(ah4, bh0);\n lo = (lo + Math.imul(al3, bl1)) | 0;\n mid = (mid + Math.imul(al3, bh1)) | 0;\n mid = (mid + Math.imul(ah3, bl1)) | 0;\n hi = (hi + Math.imul(ah3, bh1)) | 0;\n lo = (lo + Math.imul(al2, bl2)) | 0;\n mid = (mid + Math.imul(al2, bh2)) | 0;\n mid = (mid + Math.imul(ah2, bl2)) | 0;\n hi = (hi + Math.imul(ah2, bh2)) | 0;\n lo = (lo + Math.imul(al1, bl3)) | 0;\n mid = (mid + Math.imul(al1, bh3)) | 0;\n mid = (mid + Math.imul(ah1, bl3)) | 0;\n hi = (hi + Math.imul(ah1, bh3)) | 0;\n lo = (lo + Math.imul(al0, bl4)) | 0;\n mid = (mid + Math.imul(al0, bh4)) | 0;\n mid = (mid + Math.imul(ah0, bl4)) | 0;\n hi = (hi + Math.imul(ah0, bh4)) | 0;\n var w4 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w4 >>> 26)) | 0;\n w4 &= 0x3ffffff;\n /* k = 5 */\n lo = Math.imul(al5, bl0);\n mid = Math.imul(al5, bh0);\n mid = (mid + Math.imul(ah5, bl0)) | 0;\n hi = Math.imul(ah5, bh0);\n lo = (lo + Math.imul(al4, bl1)) | 0;\n mid = (mid + Math.imul(al4, bh1)) | 0;\n mid = (mid + Math.imul(ah4, bl1)) | 0;\n hi = (hi + Math.imul(ah4, bh1)) | 0;\n lo = (lo + Math.imul(al3, bl2)) | 0;\n mid = (mid + Math.imul(al3, bh2)) | 0;\n mid = (mid + Math.imul(ah3, bl2)) | 0;\n hi = (hi + Math.imul(ah3, bh2)) | 0;\n lo = (lo + Math.imul(al2, bl3)) | 0;\n mid = (mid + Math.imul(al2, bh3)) | 0;\n mid = (mid + Math.imul(ah2, bl3)) | 0;\n hi = (hi + Math.imul(ah2, bh3)) | 0;\n lo = (lo + Math.imul(al1, bl4)) | 0;\n mid = (mid + Math.imul(al1, bh4)) | 0;\n mid = (mid + Math.imul(ah1, bl4)) | 0;\n hi = (hi + Math.imul(ah1, bh4)) | 0;\n lo = (lo + Math.imul(al0, bl5)) | 0;\n mid = (mid + Math.imul(al0, bh5)) | 0;\n mid = (mid + Math.imul(ah0, bl5)) | 0;\n hi = (hi + Math.imul(ah0, bh5)) | 0;\n var w5 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w5 >>> 26)) | 0;\n w5 &= 0x3ffffff;\n /* k = 6 */\n lo = Math.imul(al6, bl0);\n mid = Math.imul(al6, bh0);\n mid = (mid + Math.imul(ah6, bl0)) | 0;\n hi = Math.imul(ah6, bh0);\n lo = (lo + Math.imul(al5, bl1)) | 0;\n mid = (mid + Math.imul(al5, bh1)) | 0;\n mid = (mid + Math.imul(ah5, bl1)) | 0;\n hi = (hi + Math.imul(ah5, bh1)) | 0;\n lo = (lo + Math.imul(al4, bl2)) | 0;\n mid = (mid + Math.imul(al4, bh2)) | 0;\n mid = (mid + Math.imul(ah4, bl2)) | 0;\n hi = (hi + Math.imul(ah4, bh2)) | 0;\n lo = (lo + Math.imul(al3, bl3)) | 0;\n mid = (mid + Math.imul(al3, bh3)) | 0;\n mid = (mid + Math.imul(ah3, bl3)) | 0;\n hi = (hi + Math.imul(ah3, bh3)) | 0;\n lo = (lo + Math.imul(al2, bl4)) | 0;\n mid = (mid + Math.imul(al2, bh4)) | 0;\n mid = (mid + Math.imul(ah2, bl4)) | 0;\n hi = (hi + Math.imul(ah2, bh4)) | 0;\n lo = (lo + Math.imul(al1, bl5)) | 0;\n mid = (mid + Math.imul(al1, bh5)) | 0;\n mid = (mid + Math.imul(ah1, bl5)) | 0;\n hi = (hi + Math.imul(ah1, bh5)) | 0;\n lo = (lo + Math.imul(al0, bl6)) | 0;\n mid = (mid + Math.imul(al0, bh6)) | 0;\n mid = (mid + Math.imul(ah0, bl6)) | 0;\n hi = (hi + Math.imul(ah0, bh6)) | 0;\n var w6 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w6 >>> 26)) | 0;\n w6 &= 0x3ffffff;\n /* k = 7 */\n lo = Math.imul(al7, bl0);\n mid = Math.imul(al7, bh0);\n mid = (mid + Math.imul(ah7, bl0)) | 0;\n hi = Math.imul(ah7, bh0);\n lo = (lo + Math.imul(al6, bl1)) | 0;\n mid = (mid + Math.imul(al6, bh1)) | 0;\n mid = (mid + Math.imul(ah6, bl1)) | 0;\n hi = (hi + Math.imul(ah6, bh1)) | 0;\n lo = (lo + Math.imul(al5, bl2)) | 0;\n mid = (mid + Math.imul(al5, bh2)) | 0;\n mid = (mid + Math.imul(ah5, bl2)) | 0;\n hi = (hi + Math.imul(ah5, bh2)) | 0;\n lo = (lo + Math.imul(al4, bl3)) | 0;\n mid = (mid + Math.imul(al4, bh3)) | 0;\n mid = (mid + Math.imul(ah4, bl3)) | 0;\n hi = (hi + Math.imul(ah4, bh3)) | 0;\n lo = (lo + Math.imul(al3, bl4)) | 0;\n mid = (mid + Math.imul(al3, bh4)) | 0;\n mid = (mid + Math.imul(ah3, bl4)) | 0;\n hi = (hi + Math.imul(ah3, bh4)) | 0;\n lo = (lo + Math.imul(al2, bl5)) | 0;\n mid = (mid + Math.imul(al2, bh5)) | 0;\n mid = (mid + Math.imul(ah2, bl5)) | 0;\n hi = (hi + Math.imul(ah2, bh5)) | 0;\n lo = (lo + Math.imul(al1, bl6)) | 0;\n mid = (mid + Math.imul(al1, bh6)) | 0;\n mid = (mid + Math.imul(ah1, bl6)) | 0;\n hi = (hi + Math.imul(ah1, bh6)) | 0;\n lo = (lo + Math.imul(al0, bl7)) | 0;\n mid = (mid + Math.imul(al0, bh7)) | 0;\n mid = (mid + Math.imul(ah0, bl7)) | 0;\n hi = (hi + Math.imul(ah0, bh7)) | 0;\n var w7 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w7 >>> 26)) | 0;\n w7 &= 0x3ffffff;\n /* k = 8 */\n lo = Math.imul(al8, bl0);\n mid = Math.imul(al8, bh0);\n mid = (mid + Math.imul(ah8, bl0)) | 0;\n hi = Math.imul(ah8, bh0);\n lo = (lo + Math.imul(al7, bl1)) | 0;\n mid = (mid + Math.imul(al7, bh1)) | 0;\n mid = (mid + Math.imul(ah7, bl1)) | 0;\n hi = (hi + Math.imul(ah7, bh1)) | 0;\n lo = (lo + Math.imul(al6, bl2)) | 0;\n mid = (mid + Math.imul(al6, bh2)) | 0;\n mid = (mid + Math.imul(ah6, bl2)) | 0;\n hi = (hi + Math.imul(ah6, bh2)) | 0;\n lo = (lo + Math.imul(al5, bl3)) | 0;\n mid = (mid + Math.imul(al5, bh3)) | 0;\n mid = (mid + Math.imul(ah5, bl3)) | 0;\n hi = (hi + Math.imul(ah5, bh3)) | 0;\n lo = (lo + Math.imul(al4, bl4)) | 0;\n mid = (mid + Math.imul(al4, bh4)) | 0;\n mid = (mid + Math.imul(ah4, bl4)) | 0;\n hi = (hi + Math.imul(ah4, bh4)) | 0;\n lo = (lo + Math.imul(al3, bl5)) | 0;\n mid = (mid + Math.imul(al3, bh5)) | 0;\n mid = (mid + Math.imul(ah3, bl5)) | 0;\n hi = (hi + Math.imul(ah3, bh5)) | 0;\n lo = (lo + Math.imul(al2, bl6)) | 0;\n mid = (mid + Math.imul(al2, bh6)) | 0;\n mid = (mid + Math.imul(ah2, bl6)) | 0;\n hi = (hi + Math.imul(ah2, bh6)) | 0;\n lo = (lo + Math.imul(al1, bl7)) | 0;\n mid = (mid + Math.imul(al1, bh7)) | 0;\n mid = (mid + Math.imul(ah1, bl7)) | 0;\n hi = (hi + Math.imul(ah1, bh7)) | 0;\n lo = (lo + Math.imul(al0, bl8)) | 0;\n mid = (mid + Math.imul(al0, bh8)) | 0;\n mid = (mid + Math.imul(ah0, bl8)) | 0;\n hi = (hi + Math.imul(ah0, bh8)) | 0;\n var w8 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w8 >>> 26)) | 0;\n w8 &= 0x3ffffff;\n /* k = 9 */\n lo = Math.imul(al9, bl0);\n mid = Math.imul(al9, bh0);\n mid = (mid + Math.imul(ah9, bl0)) | 0;\n hi = Math.imul(ah9, bh0);\n lo = (lo + Math.imul(al8, bl1)) | 0;\n mid = (mid + Math.imul(al8, bh1)) | 0;\n mid = (mid + Math.imul(ah8, bl1)) | 0;\n hi = (hi + Math.imul(ah8, bh1)) | 0;\n lo = (lo + Math.imul(al7, bl2)) | 0;\n mid = (mid + Math.imul(al7, bh2)) | 0;\n mid = (mid + Math.imul(ah7, bl2)) | 0;\n hi = (hi + Math.imul(ah7, bh2)) | 0;\n lo = (lo + Math.imul(al6, bl3)) | 0;\n mid = (mid + Math.imul(al6, bh3)) | 0;\n mid = (mid + Math.imul(ah6, bl3)) | 0;\n hi = (hi + Math.imul(ah6, bh3)) | 0;\n lo = (lo + Math.imul(al5, bl4)) | 0;\n mid = (mid + Math.imul(al5, bh4)) | 0;\n mid = (mid + Math.imul(ah5, bl4)) | 0;\n hi = (hi + Math.imul(ah5, bh4)) | 0;\n lo = (lo + Math.imul(al4, bl5)) | 0;\n mid = (mid + Math.imul(al4, bh5)) | 0;\n mid = (mid + Math.imul(ah4, bl5)) | 0;\n hi = (hi + Math.imul(ah4, bh5)) | 0;\n lo = (lo + Math.imul(al3, bl6)) | 0;\n mid = (mid + Math.imul(al3, bh6)) | 0;\n mid = (mid + Math.imul(ah3, bl6)) | 0;\n hi = (hi + Math.imul(ah3, bh6)) | 0;\n lo = (lo + Math.imul(al2, bl7)) | 0;\n mid = (mid + Math.imul(al2, bh7)) | 0;\n mid = (mid + Math.imul(ah2, bl7)) | 0;\n hi = (hi + Math.imul(ah2, bh7)) | 0;\n lo = (lo + Math.imul(al1, bl8)) | 0;\n mid = (mid + Math.imul(al1, bh8)) | 0;\n mid = (mid + Math.imul(ah1, bl8)) | 0;\n hi = (hi + Math.imul(ah1, bh8)) | 0;\n lo = (lo + Math.imul(al0, bl9)) | 0;\n mid = (mid + Math.imul(al0, bh9)) | 0;\n mid = (mid + Math.imul(ah0, bl9)) | 0;\n hi = (hi + Math.imul(ah0, bh9)) | 0;\n var w9 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w9 >>> 26)) | 0;\n w9 &= 0x3ffffff;\n /* k = 10 */\n lo = Math.imul(al9, bl1);\n mid = Math.imul(al9, bh1);\n mid = (mid + Math.imul(ah9, bl1)) | 0;\n hi = Math.imul(ah9, bh1);\n lo = (lo + Math.imul(al8, bl2)) | 0;\n mid = (mid + Math.imul(al8, bh2)) | 0;\n mid = (mid + Math.imul(ah8, bl2)) | 0;\n hi = (hi + Math.imul(ah8, bh2)) | 0;\n lo = (lo + Math.imul(al7, bl3)) | 0;\n mid = (mid + Math.imul(al7, bh3)) | 0;\n mid = (mid + Math.imul(ah7, bl3)) | 0;\n hi = (hi + Math.imul(ah7, bh3)) | 0;\n lo = (lo + Math.imul(al6, bl4)) | 0;\n mid = (mid + Math.imul(al6, bh4)) | 0;\n mid = (mid + Math.imul(ah6, bl4)) | 0;\n hi = (hi + Math.imul(ah6, bh4)) | 0;\n lo = (lo + Math.imul(al5, bl5)) | 0;\n mid = (mid + Math.imul(al5, bh5)) | 0;\n mid = (mid + Math.imul(ah5, bl5)) | 0;\n hi = (hi + Math.imul(ah5, bh5)) | 0;\n lo = (lo + Math.imul(al4, bl6)) | 0;\n mid = (mid + Math.imul(al4, bh6)) | 0;\n mid = (mid + Math.imul(ah4, bl6)) | 0;\n hi = (hi + Math.imul(ah4, bh6)) | 0;\n lo = (lo + Math.imul(al3, bl7)) | 0;\n mid = (mid + Math.imul(al3, bh7)) | 0;\n mid = (mid + Math.imul(ah3, bl7)) | 0;\n hi = (hi + Math.imul(ah3, bh7)) | 0;\n lo = (lo + Math.imul(al2, bl8)) | 0;\n mid = (mid + Math.imul(al2, bh8)) | 0;\n mid = (mid + Math.imul(ah2, bl8)) | 0;\n hi = (hi + Math.imul(ah2, bh8)) | 0;\n lo = (lo + Math.imul(al1, bl9)) | 0;\n mid = (mid + Math.imul(al1, bh9)) | 0;\n mid = (mid + Math.imul(ah1, bl9)) | 0;\n hi = (hi + Math.imul(ah1, bh9)) | 0;\n var w10 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w10 >>> 26)) | 0;\n w10 &= 0x3ffffff;\n /* k = 11 */\n lo = Math.imul(al9, bl2);\n mid = Math.imul(al9, bh2);\n mid = (mid + Math.imul(ah9, bl2)) | 0;\n hi = Math.imul(ah9, bh2);\n lo = (lo + Math.imul(al8, bl3)) | 0;\n mid = (mid + Math.imul(al8, bh3)) | 0;\n mid = (mid + Math.imul(ah8, bl3)) | 0;\n hi = (hi + Math.imul(ah8, bh3)) | 0;\n lo = (lo + Math.imul(al7, bl4)) | 0;\n mid = (mid + Math.imul(al7, bh4)) | 0;\n mid = (mid + Math.imul(ah7, bl4)) | 0;\n hi = (hi + Math.imul(ah7, bh4)) | 0;\n lo = (lo + Math.imul(al6, bl5)) | 0;\n mid = (mid + Math.imul(al6, bh5)) | 0;\n mid = (mid + Math.imul(ah6, bl5)) | 0;\n hi = (hi + Math.imul(ah6, bh5)) | 0;\n lo = (lo + Math.imul(al5, bl6)) | 0;\n mid = (mid + Math.imul(al5, bh6)) | 0;\n mid = (mid + Math.imul(ah5, bl6)) | 0;\n hi = (hi + Math.imul(ah5, bh6)) | 0;\n lo = (lo + Math.imul(al4, bl7)) | 0;\n mid = (mid + Math.imul(al4, bh7)) | 0;\n mid = (mid + Math.imul(ah4, bl7)) | 0;\n hi = (hi + Math.imul(ah4, bh7)) | 0;\n lo = (lo + Math.imul(al3, bl8)) | 0;\n mid = (mid + Math.imul(al3, bh8)) | 0;\n mid = (mid + Math.imul(ah3, bl8)) | 0;\n hi = (hi + Math.imul(ah3, bh8)) | 0;\n lo = (lo + Math.imul(al2, bl9)) | 0;\n mid = (mid + Math.imul(al2, bh9)) | 0;\n mid = (mid + Math.imul(ah2, bl9)) | 0;\n hi = (hi + Math.imul(ah2, bh9)) | 0;\n var w11 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w11 >>> 26)) | 0;\n w11 &= 0x3ffffff;\n /* k = 12 */\n lo = Math.imul(al9, bl3);\n mid = Math.imul(al9, bh3);\n mid = (mid + Math.imul(ah9, bl3)) | 0;\n hi = Math.imul(ah9, bh3);\n lo = (lo + Math.imul(al8, bl4)) | 0;\n mid = (mid + Math.imul(al8, bh4)) | 0;\n mid = (mid + Math.imul(ah8, bl4)) | 0;\n hi = (hi + Math.imul(ah8, bh4)) | 0;\n lo = (lo + Math.imul(al7, bl5)) | 0;\n mid = (mid + Math.imul(al7, bh5)) | 0;\n mid = (mid + Math.imul(ah7, bl5)) | 0;\n hi = (hi + Math.imul(ah7, bh5)) | 0;\n lo = (lo + Math.imul(al6, bl6)) | 0;\n mid = (mid + Math.imul(al6, bh6)) | 0;\n mid = (mid + Math.imul(ah6, bl6)) | 0;\n hi = (hi + Math.imul(ah6, bh6)) | 0;\n lo = (lo + Math.imul(al5, bl7)) | 0;\n mid = (mid + Math.imul(al5, bh7)) | 0;\n mid = (mid + Math.imul(ah5, bl7)) | 0;\n hi = (hi + Math.imul(ah5, bh7)) | 0;\n lo = (lo + Math.imul(al4, bl8)) | 0;\n mid = (mid + Math.imul(al4, bh8)) | 0;\n mid = (mid + Math.imul(ah4, bl8)) | 0;\n hi = (hi + Math.imul(ah4, bh8)) | 0;\n lo = (lo + Math.imul(al3, bl9)) | 0;\n mid = (mid + Math.imul(al3, bh9)) | 0;\n mid = (mid + Math.imul(ah3, bl9)) | 0;\n hi = (hi + Math.imul(ah3, bh9)) | 0;\n var w12 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w12 >>> 26)) | 0;\n w12 &= 0x3ffffff;\n /* k = 13 */\n lo = Math.imul(al9, bl4);\n mid = Math.imul(al9, bh4);\n mid = (mid + Math.imul(ah9, bl4)) | 0;\n hi = Math.imul(ah9, bh4);\n lo = (lo + Math.imul(al8, bl5)) | 0;\n mid = (mid + Math.imul(al8, bh5)) | 0;\n mid = (mid + Math.imul(ah8, bl5)) | 0;\n hi = (hi + Math.imul(ah8, bh5)) | 0;\n lo = (lo + Math.imul(al7, bl6)) | 0;\n mid = (mid + Math.imul(al7, bh6)) | 0;\n mid = (mid + Math.imul(ah7, bl6)) | 0;\n hi = (hi + Math.imul(ah7, bh6)) | 0;\n lo = (lo + Math.imul(al6, bl7)) | 0;\n mid = (mid + Math.imul(al6, bh7)) | 0;\n mid = (mid + Math.imul(ah6, bl7)) | 0;\n hi = (hi + Math.imul(ah6, bh7)) | 0;\n lo = (lo + Math.imul(al5, bl8)) | 0;\n mid = (mid + Math.imul(al5, bh8)) | 0;\n mid = (mid + Math.imul(ah5, bl8)) | 0;\n hi = (hi + Math.imul(ah5, bh8)) | 0;\n lo = (lo + Math.imul(al4, bl9)) | 0;\n mid = (mid + Math.imul(al4, bh9)) | 0;\n mid = (mid + Math.imul(ah4, bl9)) | 0;\n hi = (hi + Math.imul(ah4, bh9)) | 0;\n var w13 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w13 >>> 26)) | 0;\n w13 &= 0x3ffffff;\n /* k = 14 */\n lo = Math.imul(al9, bl5);\n mid = Math.imul(al9, bh5);\n mid = (mid + Math.imul(ah9, bl5)) | 0;\n hi = Math.imul(ah9, bh5);\n lo = (lo + Math.imul(al8, bl6)) | 0;\n mid = (mid + Math.imul(al8, bh6)) | 0;\n mid = (mid + Math.imul(ah8, bl6)) | 0;\n hi = (hi + Math.imul(ah8, bh6)) | 0;\n lo = (lo + Math.imul(al7, bl7)) | 0;\n mid = (mid + Math.imul(al7, bh7)) | 0;\n mid = (mid + Math.imul(ah7, bl7)) | 0;\n hi = (hi + Math.imul(ah7, bh7)) | 0;\n lo = (lo + Math.imul(al6, bl8)) | 0;\n mid = (mid + Math.imul(al6, bh8)) | 0;\n mid = (mid + Math.imul(ah6, bl8)) | 0;\n hi = (hi + Math.imul(ah6, bh8)) | 0;\n lo = (lo + Math.imul(al5, bl9)) | 0;\n mid = (mid + Math.imul(al5, bh9)) | 0;\n mid = (mid + Math.imul(ah5, bl9)) | 0;\n hi = (hi + Math.imul(ah5, bh9)) | 0;\n var w14 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w14 >>> 26)) | 0;\n w14 &= 0x3ffffff;\n /* k = 15 */\n lo = Math.imul(al9, bl6);\n mid = Math.imul(al9, bh6);\n mid = (mid + Math.imul(ah9, bl6)) | 0;\n hi = Math.imul(ah9, bh6);\n lo = (lo + Math.imul(al8, bl7)) | 0;\n mid = (mid + Math.imul(al8, bh7)) | 0;\n mid = (mid + Math.imul(ah8, bl7)) | 0;\n hi = (hi + Math.imul(ah8, bh7)) | 0;\n lo = (lo + Math.imul(al7, bl8)) | 0;\n mid = (mid + Math.imul(al7, bh8)) | 0;\n mid = (mid + Math.imul(ah7, bl8)) | 0;\n hi = (hi + Math.imul(ah7, bh8)) | 0;\n lo = (lo + Math.imul(al6, bl9)) | 0;\n mid = (mid + Math.imul(al6, bh9)) | 0;\n mid = (mid + Math.imul(ah6, bl9)) | 0;\n hi = (hi + Math.imul(ah6, bh9)) | 0;\n var w15 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w15 >>> 26)) | 0;\n w15 &= 0x3ffffff;\n /* k = 16 */\n lo = Math.imul(al9, bl7);\n mid = Math.imul(al9, bh7);\n mid = (mid + Math.imul(ah9, bl7)) | 0;\n hi = Math.imul(ah9, bh7);\n lo = (lo + Math.imul(al8, bl8)) | 0;\n mid = (mid + Math.imul(al8, bh8)) | 0;\n mid = (mid + Math.imul(ah8, bl8)) | 0;\n hi = (hi + Math.imul(ah8, bh8)) | 0;\n lo = (lo + Math.imul(al7, bl9)) | 0;\n mid = (mid + Math.imul(al7, bh9)) | 0;\n mid = (mid + Math.imul(ah7, bl9)) | 0;\n hi = (hi + Math.imul(ah7, bh9)) | 0;\n var w16 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w16 >>> 26)) | 0;\n w16 &= 0x3ffffff;\n /* k = 17 */\n lo = Math.imul(al9, bl8);\n mid = Math.imul(al9, bh8);\n mid = (mid + Math.imul(ah9, bl8)) | 0;\n hi = Math.imul(ah9, bh8);\n lo = (lo + Math.imul(al8, bl9)) | 0;\n mid = (mid + Math.imul(al8, bh9)) | 0;\n mid = (mid + Math.imul(ah8, bl9)) | 0;\n hi = (hi + Math.imul(ah8, bh9)) | 0;\n var w17 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w17 >>> 26)) | 0;\n w17 &= 0x3ffffff;\n /* k = 18 */\n lo = Math.imul(al9, bl9);\n mid = Math.imul(al9, bh9);\n mid = (mid + Math.imul(ah9, bl9)) | 0;\n hi = Math.imul(ah9, bh9);\n var w18 = (((c + lo) | 0) + ((mid & 0x1fff) << 13)) | 0;\n c = (((hi + (mid >>> 13)) | 0) + (w18 >>> 26)) | 0;\n w18 &= 0x3ffffff;\n o[0] = w0;\n o[1] = w1;\n o[2] = w2;\n o[3] = w3;\n o[4] = w4;\n o[5] = w5;\n o[6] = w6;\n o[7] = w7;\n o[8] = w8;\n o[9] = w9;\n o[10] = w10;\n o[11] = w11;\n o[12] = w12;\n o[13] = w13;\n o[14] = w14;\n o[15] = w15;\n o[16] = w16;\n o[17] = w17;\n o[18] = w18;\n if (c !== 0) {\n o[19] = c;\n out.length++;\n }\n return out;\n };\n\n // Polyfill comb\n if (!Math.imul) {\n comb10MulTo = smallMulTo;\n }\n\n function bigMulTo (self, num, out) {\n out.negative = num.negative ^ self.negative;\n out.length = self.length + num.length;\n\n var carry = 0;\n var hncarry = 0;\n for (var k = 0; k < out.length - 1; k++) {\n // Sum all words with the same `i + j = k` and accumulate `ncarry`,\n // note that ncarry could be >= 0x3ffffff\n var ncarry = hncarry;\n hncarry = 0;\n var rword = carry & 0x3ffffff;\n var maxJ = Math.min(k, num.length - 1);\n for (var j = Math.max(0, k - self.length + 1); j <= maxJ; j++) {\n var i = k - j;\n var a = self.words[i] | 0;\n var b = num.words[j] | 0;\n var r = a * b;\n\n var lo = r & 0x3ffffff;\n ncarry = (ncarry + ((r / 0x4000000) | 0)) | 0;\n lo = (lo + rword) | 0;\n rword = lo & 0x3ffffff;\n ncarry = (ncarry + (lo >>> 26)) | 0;\n\n hncarry += ncarry >>> 26;\n ncarry &= 0x3ffffff;\n }\n out.words[k] = rword;\n carry = ncarry;\n ncarry = hncarry;\n }\n if (carry !== 0) {\n out.words[k] = carry;\n } else {\n out.length--;\n }\n\n return out._strip();\n }\n\n function jumboMulTo (self, num, out) {\n // Temporary disable, see https://github.com/indutny/bn.js/issues/211\n // var fftm = new FFTM();\n // return fftm.mulp(self, num, out);\n return bigMulTo(self, num, out);\n }\n\n BN.prototype.mulTo = function mulTo (num, out) {\n var res;\n var len = this.length + num.length;\n if (this.length === 10 && num.length === 10) {\n res = comb10MulTo(this, num, out);\n } else if (len < 63) {\n res = smallMulTo(this, num, out);\n } else if (len < 1024) {\n res = bigMulTo(this, num, out);\n } else {\n res = jumboMulTo(this, num, out);\n }\n\n return res;\n };\n\n // Cooley-Tukey algorithm for FFT\n // slightly revisited to rely on looping instead of recursion\n\n function FFTM (x, y) {\n this.x = x;\n this.y = y;\n }\n\n FFTM.prototype.makeRBT = function makeRBT (N) {\n var t = new Array(N);\n var l = BN.prototype._countBits(N) - 1;\n for (var i = 0; i < N; i++) {\n t[i] = this.revBin(i, l, N);\n }\n\n return t;\n };\n\n // Returns binary-reversed representation of `x`\n FFTM.prototype.revBin = function revBin (x, l, N) {\n if (x === 0 || x === N - 1) return x;\n\n var rb = 0;\n for (var i = 0; i < l; i++) {\n rb |= (x & 1) << (l - i - 1);\n x >>= 1;\n }\n\n return rb;\n };\n\n // Performs \"tweedling\" phase, therefore 'emulating'\n // behaviour of the recursive algorithm\n FFTM.prototype.permute = function permute (rbt, rws, iws, rtws, itws, N) {\n for (var i = 0; i < N; i++) {\n rtws[i] = rws[rbt[i]];\n itws[i] = iws[rbt[i]];\n }\n };\n\n FFTM.prototype.transform = function transform (rws, iws, rtws, itws, N, rbt) {\n this.permute(rbt, rws, iws, rtws, itws, N);\n\n for (var s = 1; s < N; s <<= 1) {\n var l = s << 1;\n\n var rtwdf = Math.cos(2 * Math.PI / l);\n var itwdf = Math.sin(2 * Math.PI / l);\n\n for (var p = 0; p < N; p += l) {\n var rtwdf_ = rtwdf;\n var itwdf_ = itwdf;\n\n for (var j = 0; j < s; j++) {\n var re = rtws[p + j];\n var ie = itws[p + j];\n\n var ro = rtws[p + j + s];\n var io = itws[p + j + s];\n\n var rx = rtwdf_ * ro - itwdf_ * io;\n\n io = rtwdf_ * io + itwdf_ * ro;\n ro = rx;\n\n rtws[p + j] = re + ro;\n itws[p + j] = ie + io;\n\n rtws[p + j + s] = re - ro;\n itws[p + j + s] = ie - io;\n\n /* jshint maxdepth : false */\n if (j !== l) {\n rx = rtwdf * rtwdf_ - itwdf * itwdf_;\n\n itwdf_ = rtwdf * itwdf_ + itwdf * rtwdf_;\n rtwdf_ = rx;\n }\n }\n }\n }\n };\n\n FFTM.prototype.guessLen13b = function guessLen13b (n, m) {\n var N = Math.max(m, n) | 1;\n var odd = N & 1;\n var i = 0;\n for (N = N / 2 | 0; N; N = N >>> 1) {\n i++;\n }\n\n return 1 << i + 1 + odd;\n };\n\n FFTM.prototype.conjugate = function conjugate (rws, iws, N) {\n if (N <= 1) return;\n\n for (var i = 0; i < N / 2; i++) {\n var t = rws[i];\n\n rws[i] = rws[N - i - 1];\n rws[N - i - 1] = t;\n\n t = iws[i];\n\n iws[i] = -iws[N - i - 1];\n iws[N - i - 1] = -t;\n }\n };\n\n FFTM.prototype.normalize13b = function normalize13b (ws, N) {\n var carry = 0;\n for (var i = 0; i < N / 2; i++) {\n var w = Math.round(ws[2 * i + 1] / N) * 0x2000 +\n Math.round(ws[2 * i] / N) +\n carry;\n\n ws[i] = w & 0x3ffffff;\n\n if (w < 0x4000000) {\n carry = 0;\n } else {\n carry = w / 0x4000000 | 0;\n }\n }\n\n return ws;\n };\n\n FFTM.prototype.convert13b = function convert13b (ws, len, rws, N) {\n var carry = 0;\n for (var i = 0; i < len; i++) {\n carry = carry + (ws[i] | 0);\n\n rws[2 * i] = carry & 0x1fff; carry = carry >>> 13;\n rws[2 * i + 1] = carry & 0x1fff; carry = carry >>> 13;\n }\n\n // Pad with zeroes\n for (i = 2 * len; i < N; ++i) {\n rws[i] = 0;\n }\n\n assert(carry === 0);\n assert((carry & ~0x1fff) === 0);\n };\n\n FFTM.prototype.stub = function stub (N) {\n var ph = new Array(N);\n for (var i = 0; i < N; i++) {\n ph[i] = 0;\n }\n\n return ph;\n };\n\n FFTM.prototype.mulp = function mulp (x, y, out) {\n var N = 2 * this.guessLen13b(x.length, y.length);\n\n var rbt = this.makeRBT(N);\n\n var _ = this.stub(N);\n\n var rws = new Array(N);\n var rwst = new Array(N);\n var iwst = new Array(N);\n\n var nrws = new Array(N);\n var nrwst = new Array(N);\n var niwst = new Array(N);\n\n var rmws = out.words;\n rmws.length = N;\n\n this.convert13b(x.words, x.length, rws, N);\n this.convert13b(y.words, y.length, nrws, N);\n\n this.transform(rws, _, rwst, iwst, N, rbt);\n this.transform(nrws, _, nrwst, niwst, N, rbt);\n\n for (var i = 0; i < N; i++) {\n var rx = rwst[i] * nrwst[i] - iwst[i] * niwst[i];\n iwst[i] = rwst[i] * niwst[i] + iwst[i] * nrwst[i];\n rwst[i] = rx;\n }\n\n this.conjugate(rwst, iwst, N);\n this.transform(rwst, iwst, rmws, _, N, rbt);\n this.conjugate(rmws, _, N);\n this.normalize13b(rmws, N);\n\n out.negative = x.negative ^ y.negative;\n out.length = x.length + y.length;\n return out._strip();\n };\n\n // Multiply `this` by `num`\n BN.prototype.mul = function mul (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return this.mulTo(num, out);\n };\n\n // Multiply employing FFT\n BN.prototype.mulf = function mulf (num) {\n var out = new BN(null);\n out.words = new Array(this.length + num.length);\n return jumboMulTo(this, num, out);\n };\n\n // In-place Multiplication\n BN.prototype.imul = function imul (num) {\n return this.clone().mulTo(num, this);\n };\n\n BN.prototype.imuln = function imuln (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n\n // Carry\n var carry = 0;\n for (var i = 0; i < this.length; i++) {\n var w = (this.words[i] | 0) * num;\n var lo = (w & 0x3ffffff) + (carry & 0x3ffffff);\n carry >>= 26;\n carry += (w / 0x4000000) | 0;\n // NOTE: lo is 27bit maximum\n carry += lo >>> 26;\n this.words[i] = lo & 0x3ffffff;\n }\n\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.muln = function muln (num) {\n return this.clone().imuln(num);\n };\n\n // `this` * `this`\n BN.prototype.sqr = function sqr () {\n return this.mul(this);\n };\n\n // `this` * `this` in-place\n BN.prototype.isqr = function isqr () {\n return this.imul(this.clone());\n };\n\n // Math.pow(`this`, `num`)\n BN.prototype.pow = function pow (num) {\n var w = toBitArray(num);\n if (w.length === 0) return new BN(1);\n\n // Skip leading zeroes\n var res = this;\n for (var i = 0; i < w.length; i++, res = res.sqr()) {\n if (w[i] !== 0) break;\n }\n\n if (++i < w.length) {\n for (var q = res.sqr(); i < w.length; i++, q = q.sqr()) {\n if (w[i] === 0) continue;\n\n res = res.mul(q);\n }\n }\n\n return res;\n };\n\n // Shift-left in-place\n BN.prototype.iushln = function iushln (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n var carryMask = (0x3ffffff >>> (26 - r)) << (26 - r);\n var i;\n\n if (r !== 0) {\n var carry = 0;\n\n for (i = 0; i < this.length; i++) {\n var newCarry = this.words[i] & carryMask;\n var c = ((this.words[i] | 0) - newCarry) << r;\n this.words[i] = c | carry;\n carry = newCarry >>> (26 - r);\n }\n\n if (carry) {\n this.words[i] = carry;\n this.length++;\n }\n }\n\n if (s !== 0) {\n for (i = this.length - 1; i >= 0; i--) {\n this.words[i + s] = this.words[i];\n }\n\n for (i = 0; i < s; i++) {\n this.words[i] = 0;\n }\n\n this.length += s;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishln = function ishln (bits) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushln(bits);\n };\n\n // Shift-right in-place\n // NOTE: `hint` is a lowest bit before trailing zeroes\n // NOTE: if `extended` is present - it will be filled with destroyed bits\n BN.prototype.iushrn = function iushrn (bits, hint, extended) {\n assert(typeof bits === 'number' && bits >= 0);\n var h;\n if (hint) {\n h = (hint - (hint % 26)) / 26;\n } else {\n h = 0;\n }\n\n var r = bits % 26;\n var s = Math.min((bits - r) / 26, this.length);\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n var maskedWords = extended;\n\n h -= s;\n h = Math.max(0, h);\n\n // Extended mode, copy masked part\n if (maskedWords) {\n for (var i = 0; i < s; i++) {\n maskedWords.words[i] = this.words[i];\n }\n maskedWords.length = s;\n }\n\n if (s === 0) {\n // No-op, we should not move anything at all\n } else if (this.length > s) {\n this.length -= s;\n for (i = 0; i < this.length; i++) {\n this.words[i] = this.words[i + s];\n }\n } else {\n this.words[0] = 0;\n this.length = 1;\n }\n\n var carry = 0;\n for (i = this.length - 1; i >= 0 && (carry !== 0 || i >= h); i--) {\n var word = this.words[i] | 0;\n this.words[i] = (carry << (26 - r)) | (word >>> r);\n carry = word & mask;\n }\n\n // Push carried bits as a mask\n if (maskedWords && carry !== 0) {\n maskedWords.words[maskedWords.length++] = carry;\n }\n\n if (this.length === 0) {\n this.words[0] = 0;\n this.length = 1;\n }\n\n return this._strip();\n };\n\n BN.prototype.ishrn = function ishrn (bits, hint, extended) {\n // TODO(indutny): implement me\n assert(this.negative === 0);\n return this.iushrn(bits, hint, extended);\n };\n\n // Shift-left\n BN.prototype.shln = function shln (bits) {\n return this.clone().ishln(bits);\n };\n\n BN.prototype.ushln = function ushln (bits) {\n return this.clone().iushln(bits);\n };\n\n // Shift-right\n BN.prototype.shrn = function shrn (bits) {\n return this.clone().ishrn(bits);\n };\n\n BN.prototype.ushrn = function ushrn (bits) {\n return this.clone().iushrn(bits);\n };\n\n // Test if n bit is set\n BN.prototype.testn = function testn (bit) {\n assert(typeof bit === 'number' && bit >= 0);\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) return false;\n\n // Check bit and return\n var w = this.words[s];\n\n return !!(w & q);\n };\n\n // Return only lowers bits of number (in-place)\n BN.prototype.imaskn = function imaskn (bits) {\n assert(typeof bits === 'number' && bits >= 0);\n var r = bits % 26;\n var s = (bits - r) / 26;\n\n assert(this.negative === 0, 'imaskn works only with positive numbers');\n\n if (this.length <= s) {\n return this;\n }\n\n if (r !== 0) {\n s++;\n }\n this.length = Math.min(s, this.length);\n\n if (r !== 0) {\n var mask = 0x3ffffff ^ ((0x3ffffff >>> r) << r);\n this.words[this.length - 1] &= mask;\n }\n\n return this._strip();\n };\n\n // Return only lowers bits of number\n BN.prototype.maskn = function maskn (bits) {\n return this.clone().imaskn(bits);\n };\n\n // Add plain number `num` to `this`\n BN.prototype.iaddn = function iaddn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.isubn(-num);\n\n // Possible sign change\n if (this.negative !== 0) {\n if (this.length === 1 && (this.words[0] | 0) <= num) {\n this.words[0] = num - (this.words[0] | 0);\n this.negative = 0;\n return this;\n }\n\n this.negative = 0;\n this.isubn(num);\n this.negative = 1;\n return this;\n }\n\n // Add without checks\n return this._iaddn(num);\n };\n\n BN.prototype._iaddn = function _iaddn (num) {\n this.words[0] += num;\n\n // Carry\n for (var i = 0; i < this.length && this.words[i] >= 0x4000000; i++) {\n this.words[i] -= 0x4000000;\n if (i === this.length - 1) {\n this.words[i + 1] = 1;\n } else {\n this.words[i + 1]++;\n }\n }\n this.length = Math.max(this.length, i + 1);\n\n return this;\n };\n\n // Subtract plain number `num` from `this`\n BN.prototype.isubn = function isubn (num) {\n assert(typeof num === 'number');\n assert(num < 0x4000000);\n if (num < 0) return this.iaddn(-num);\n\n if (this.negative !== 0) {\n this.negative = 0;\n this.iaddn(num);\n this.negative = 1;\n return this;\n }\n\n this.words[0] -= num;\n\n if (this.length === 1 && this.words[0] < 0) {\n this.words[0] = -this.words[0];\n this.negative = 1;\n } else {\n // Carry\n for (var i = 0; i < this.length && this.words[i] < 0; i++) {\n this.words[i] += 0x4000000;\n this.words[i + 1] -= 1;\n }\n }\n\n return this._strip();\n };\n\n BN.prototype.addn = function addn (num) {\n return this.clone().iaddn(num);\n };\n\n BN.prototype.subn = function subn (num) {\n return this.clone().isubn(num);\n };\n\n BN.prototype.iabs = function iabs () {\n this.negative = 0;\n\n return this;\n };\n\n BN.prototype.abs = function abs () {\n return this.clone().iabs();\n };\n\n BN.prototype._ishlnsubmul = function _ishlnsubmul (num, mul, shift) {\n var len = num.length + shift;\n var i;\n\n this._expand(len);\n\n var w;\n var carry = 0;\n for (i = 0; i < num.length; i++) {\n w = (this.words[i + shift] | 0) + carry;\n var right = (num.words[i] | 0) * mul;\n w -= right & 0x3ffffff;\n carry = (w >> 26) - ((right / 0x4000000) | 0);\n this.words[i + shift] = w & 0x3ffffff;\n }\n for (; i < this.length - shift; i++) {\n w = (this.words[i + shift] | 0) + carry;\n carry = w >> 26;\n this.words[i + shift] = w & 0x3ffffff;\n }\n\n if (carry === 0) return this._strip();\n\n // Subtraction overflow\n assert(carry === -1);\n carry = 0;\n for (i = 0; i < this.length; i++) {\n w = -(this.words[i] | 0) + carry;\n carry = w >> 26;\n this.words[i] = w & 0x3ffffff;\n }\n this.negative = 1;\n\n return this._strip();\n };\n\n BN.prototype._wordDiv = function _wordDiv (num, mode) {\n var shift = this.length - num.length;\n\n var a = this.clone();\n var b = num;\n\n // Normalize\n var bhi = b.words[b.length - 1] | 0;\n var bhiBits = this._countBits(bhi);\n shift = 26 - bhiBits;\n if (shift !== 0) {\n b = b.ushln(shift);\n a.iushln(shift);\n bhi = b.words[b.length - 1] | 0;\n }\n\n // Initialize quotient\n var m = a.length - b.length;\n var q;\n\n if (mode !== 'mod') {\n q = new BN(null);\n q.length = m + 1;\n q.words = new Array(q.length);\n for (var i = 0; i < q.length; i++) {\n q.words[i] = 0;\n }\n }\n\n var diff = a.clone()._ishlnsubmul(b, 1, m);\n if (diff.negative === 0) {\n a = diff;\n if (q) {\n q.words[m] = 1;\n }\n }\n\n for (var j = m - 1; j >= 0; j--) {\n var qj = (a.words[b.length + j] | 0) * 0x4000000 +\n (a.words[b.length + j - 1] | 0);\n\n // NOTE: (qj / bhi) is (0x3ffffff * 0x4000000 + 0x3ffffff) / 0x2000000 max\n // (0x7ffffff)\n qj = Math.min((qj / bhi) | 0, 0x3ffffff);\n\n a._ishlnsubmul(b, qj, j);\n while (a.negative !== 0) {\n qj--;\n a.negative = 0;\n a._ishlnsubmul(b, 1, j);\n if (!a.isZero()) {\n a.negative ^= 1;\n }\n }\n if (q) {\n q.words[j] = qj;\n }\n }\n if (q) {\n q._strip();\n }\n a._strip();\n\n // Denormalize\n if (mode !== 'div' && shift !== 0) {\n a.iushrn(shift);\n }\n\n return {\n div: q || null,\n mod: a\n };\n };\n\n // NOTE: 1) `mode` can be set to `mod` to request mod only,\n // to `div` to request div only, or be absent to\n // request both div & mod\n // 2) `positive` is true if unsigned mod is requested\n BN.prototype.divmod = function divmod (num, mode, positive) {\n assert(!num.isZero());\n\n if (this.isZero()) {\n return {\n div: new BN(0),\n mod: new BN(0)\n };\n }\n\n var div, mod, res;\n if (this.negative !== 0 && num.negative === 0) {\n res = this.neg().divmod(num, mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.iadd(num);\n }\n }\n\n return {\n div: div,\n mod: mod\n };\n }\n\n if (this.negative === 0 && num.negative !== 0) {\n res = this.divmod(num.neg(), mode);\n\n if (mode !== 'mod') {\n div = res.div.neg();\n }\n\n return {\n div: div,\n mod: res.mod\n };\n }\n\n if ((this.negative & num.negative) !== 0) {\n res = this.neg().divmod(num.neg(), mode);\n\n if (mode !== 'div') {\n mod = res.mod.neg();\n if (positive && mod.negative !== 0) {\n mod.isub(num);\n }\n }\n\n return {\n div: res.div,\n mod: mod\n };\n }\n\n // Both numbers are positive at this point\n\n // Strip both numbers to approximate shift value\n if (num.length > this.length || this.cmp(num) < 0) {\n return {\n div: new BN(0),\n mod: this\n };\n }\n\n // Very short reduction\n if (num.length === 1) {\n if (mode === 'div') {\n return {\n div: this.divn(num.words[0]),\n mod: null\n };\n }\n\n if (mode === 'mod') {\n return {\n div: null,\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return {\n div: this.divn(num.words[0]),\n mod: new BN(this.modrn(num.words[0]))\n };\n }\n\n return this._wordDiv(num, mode);\n };\n\n // Find `this` / `num`\n BN.prototype.div = function div (num) {\n return this.divmod(num, 'div', false).div;\n };\n\n // Find `this` % `num`\n BN.prototype.mod = function mod (num) {\n return this.divmod(num, 'mod', false).mod;\n };\n\n BN.prototype.umod = function umod (num) {\n return this.divmod(num, 'mod', true).mod;\n };\n\n // Find Round(`this` / `num`)\n BN.prototype.divRound = function divRound (num) {\n var dm = this.divmod(num);\n\n // Fast case - exact division\n if (dm.mod.isZero()) return dm.div;\n\n var mod = dm.div.negative !== 0 ? dm.mod.isub(num) : dm.mod;\n\n var half = num.ushrn(1);\n var r2 = num.andln(1);\n var cmp = mod.cmp(half);\n\n // Round down\n if (cmp < 0 || (r2 === 1 && cmp === 0)) return dm.div;\n\n // Round up\n return dm.div.negative !== 0 ? dm.div.isubn(1) : dm.div.iaddn(1);\n };\n\n BN.prototype.modrn = function modrn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n var p = (1 << 26) % num;\n\n var acc = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n acc = (p * acc + (this.words[i] | 0)) % num;\n }\n\n return isNegNum ? -acc : acc;\n };\n\n // WARNING: DEPRECATED\n BN.prototype.modn = function modn (num) {\n return this.modrn(num);\n };\n\n // In-place division by number\n BN.prototype.idivn = function idivn (num) {\n var isNegNum = num < 0;\n if (isNegNum) num = -num;\n\n assert(num <= 0x3ffffff);\n\n var carry = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var w = (this.words[i] | 0) + carry * 0x4000000;\n this.words[i] = (w / num) | 0;\n carry = w % num;\n }\n\n this._strip();\n return isNegNum ? this.ineg() : this;\n };\n\n BN.prototype.divn = function divn (num) {\n return this.clone().idivn(num);\n };\n\n BN.prototype.egcd = function egcd (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var x = this;\n var y = p.clone();\n\n if (x.negative !== 0) {\n x = x.umod(p);\n } else {\n x = x.clone();\n }\n\n // A * x + B * y = x\n var A = new BN(1);\n var B = new BN(0);\n\n // C * x + D * y = y\n var C = new BN(0);\n var D = new BN(1);\n\n var g = 0;\n\n while (x.isEven() && y.isEven()) {\n x.iushrn(1);\n y.iushrn(1);\n ++g;\n }\n\n var yp = y.clone();\n var xp = x.clone();\n\n while (!x.isZero()) {\n for (var i = 0, im = 1; (x.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n x.iushrn(i);\n while (i-- > 0) {\n if (A.isOdd() || B.isOdd()) {\n A.iadd(yp);\n B.isub(xp);\n }\n\n A.iushrn(1);\n B.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (y.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n y.iushrn(j);\n while (j-- > 0) {\n if (C.isOdd() || D.isOdd()) {\n C.iadd(yp);\n D.isub(xp);\n }\n\n C.iushrn(1);\n D.iushrn(1);\n }\n }\n\n if (x.cmp(y) >= 0) {\n x.isub(y);\n A.isub(C);\n B.isub(D);\n } else {\n y.isub(x);\n C.isub(A);\n D.isub(B);\n }\n }\n\n return {\n a: C,\n b: D,\n gcd: y.iushln(g)\n };\n };\n\n // This is reduced incarnation of the binary EEA\n // above, designated to invert members of the\n // _prime_ fields F(p) at a maximal speed\n BN.prototype._invmp = function _invmp (p) {\n assert(p.negative === 0);\n assert(!p.isZero());\n\n var a = this;\n var b = p.clone();\n\n if (a.negative !== 0) {\n a = a.umod(p);\n } else {\n a = a.clone();\n }\n\n var x1 = new BN(1);\n var x2 = new BN(0);\n\n var delta = b.clone();\n\n while (a.cmpn(1) > 0 && b.cmpn(1) > 0) {\n for (var i = 0, im = 1; (a.words[0] & im) === 0 && i < 26; ++i, im <<= 1);\n if (i > 0) {\n a.iushrn(i);\n while (i-- > 0) {\n if (x1.isOdd()) {\n x1.iadd(delta);\n }\n\n x1.iushrn(1);\n }\n }\n\n for (var j = 0, jm = 1; (b.words[0] & jm) === 0 && j < 26; ++j, jm <<= 1);\n if (j > 0) {\n b.iushrn(j);\n while (j-- > 0) {\n if (x2.isOdd()) {\n x2.iadd(delta);\n }\n\n x2.iushrn(1);\n }\n }\n\n if (a.cmp(b) >= 0) {\n a.isub(b);\n x1.isub(x2);\n } else {\n b.isub(a);\n x2.isub(x1);\n }\n }\n\n var res;\n if (a.cmpn(1) === 0) {\n res = x1;\n } else {\n res = x2;\n }\n\n if (res.cmpn(0) < 0) {\n res.iadd(p);\n }\n\n return res;\n };\n\n BN.prototype.gcd = function gcd (num) {\n if (this.isZero()) return num.abs();\n if (num.isZero()) return this.abs();\n\n var a = this.clone();\n var b = num.clone();\n a.negative = 0;\n b.negative = 0;\n\n // Remove common factor of two\n for (var shift = 0; a.isEven() && b.isEven(); shift++) {\n a.iushrn(1);\n b.iushrn(1);\n }\n\n do {\n while (a.isEven()) {\n a.iushrn(1);\n }\n while (b.isEven()) {\n b.iushrn(1);\n }\n\n var r = a.cmp(b);\n if (r < 0) {\n // Swap `a` and `b` to make `a` always bigger than `b`\n var t = a;\n a = b;\n b = t;\n } else if (r === 0 || b.cmpn(1) === 0) {\n break;\n }\n\n a.isub(b);\n } while (true);\n\n return b.iushln(shift);\n };\n\n // Invert number in the field F(num)\n BN.prototype.invm = function invm (num) {\n return this.egcd(num).a.umod(num);\n };\n\n BN.prototype.isEven = function isEven () {\n return (this.words[0] & 1) === 0;\n };\n\n BN.prototype.isOdd = function isOdd () {\n return (this.words[0] & 1) === 1;\n };\n\n // And first word and num\n BN.prototype.andln = function andln (num) {\n return this.words[0] & num;\n };\n\n // Increment at the bit position in-line\n BN.prototype.bincn = function bincn (bit) {\n assert(typeof bit === 'number');\n var r = bit % 26;\n var s = (bit - r) / 26;\n var q = 1 << r;\n\n // Fast case: bit is much higher than all existing words\n if (this.length <= s) {\n this._expand(s + 1);\n this.words[s] |= q;\n return this;\n }\n\n // Add bit and propagate, if needed\n var carry = q;\n for (var i = s; carry !== 0 && i < this.length; i++) {\n var w = this.words[i] | 0;\n w += carry;\n carry = w >>> 26;\n w &= 0x3ffffff;\n this.words[i] = w;\n }\n if (carry !== 0) {\n this.words[i] = carry;\n this.length++;\n }\n return this;\n };\n\n BN.prototype.isZero = function isZero () {\n return this.length === 1 && this.words[0] === 0;\n };\n\n BN.prototype.cmpn = function cmpn (num) {\n var negative = num < 0;\n\n if (this.negative !== 0 && !negative) return -1;\n if (this.negative === 0 && negative) return 1;\n\n this._strip();\n\n var res;\n if (this.length > 1) {\n res = 1;\n } else {\n if (negative) {\n num = -num;\n }\n\n assert(num <= 0x3ffffff, 'Number is too big');\n\n var w = this.words[0] | 0;\n res = w === num ? 0 : w < num ? -1 : 1;\n }\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Compare two numbers and return:\n // 1 - if `this` > `num`\n // 0 - if `this` == `num`\n // -1 - if `this` < `num`\n BN.prototype.cmp = function cmp (num) {\n if (this.negative !== 0 && num.negative === 0) return -1;\n if (this.negative === 0 && num.negative !== 0) return 1;\n\n var res = this.ucmp(num);\n if (this.negative !== 0) return -res | 0;\n return res;\n };\n\n // Unsigned comparison\n BN.prototype.ucmp = function ucmp (num) {\n // At this point both numbers have the same sign\n if (this.length > num.length) return 1;\n if (this.length < num.length) return -1;\n\n var res = 0;\n for (var i = this.length - 1; i >= 0; i--) {\n var a = this.words[i] | 0;\n var b = num.words[i] | 0;\n\n if (a === b) continue;\n if (a < b) {\n res = -1;\n } else if (a > b) {\n res = 1;\n }\n break;\n }\n return res;\n };\n\n BN.prototype.gtn = function gtn (num) {\n return this.cmpn(num) === 1;\n };\n\n BN.prototype.gt = function gt (num) {\n return this.cmp(num) === 1;\n };\n\n BN.prototype.gten = function gten (num) {\n return this.cmpn(num) >= 0;\n };\n\n BN.prototype.gte = function gte (num) {\n return this.cmp(num) >= 0;\n };\n\n BN.prototype.ltn = function ltn (num) {\n return this.cmpn(num) === -1;\n };\n\n BN.prototype.lt = function lt (num) {\n return this.cmp(num) === -1;\n };\n\n BN.prototype.lten = function lten (num) {\n return this.cmpn(num) <= 0;\n };\n\n BN.prototype.lte = function lte (num) {\n return this.cmp(num) <= 0;\n };\n\n BN.prototype.eqn = function eqn (num) {\n return this.cmpn(num) === 0;\n };\n\n BN.prototype.eq = function eq (num) {\n return this.cmp(num) === 0;\n };\n\n //\n // A reduce context, could be using montgomery or something better, depending\n // on the `m` itself.\n //\n BN.red = function red (num) {\n return new Red(num);\n };\n\n BN.prototype.toRed = function toRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n assert(this.negative === 0, 'red works only with positives');\n return ctx.convertTo(this)._forceRed(ctx);\n };\n\n BN.prototype.fromRed = function fromRed () {\n assert(this.red, 'fromRed works only with numbers in reduction context');\n return this.red.convertFrom(this);\n };\n\n BN.prototype._forceRed = function _forceRed (ctx) {\n this.red = ctx;\n return this;\n };\n\n BN.prototype.forceRed = function forceRed (ctx) {\n assert(!this.red, 'Already a number in reduction context');\n return this._forceRed(ctx);\n };\n\n BN.prototype.redAdd = function redAdd (num) {\n assert(this.red, 'redAdd works only with red numbers');\n return this.red.add(this, num);\n };\n\n BN.prototype.redIAdd = function redIAdd (num) {\n assert(this.red, 'redIAdd works only with red numbers');\n return this.red.iadd(this, num);\n };\n\n BN.prototype.redSub = function redSub (num) {\n assert(this.red, 'redSub works only with red numbers');\n return this.red.sub(this, num);\n };\n\n BN.prototype.redISub = function redISub (num) {\n assert(this.red, 'redISub works only with red numbers');\n return this.red.isub(this, num);\n };\n\n BN.prototype.redShl = function redShl (num) {\n assert(this.red, 'redShl works only with red numbers');\n return this.red.shl(this, num);\n };\n\n BN.prototype.redMul = function redMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.mul(this, num);\n };\n\n BN.prototype.redIMul = function redIMul (num) {\n assert(this.red, 'redMul works only with red numbers');\n this.red._verify2(this, num);\n return this.red.imul(this, num);\n };\n\n BN.prototype.redSqr = function redSqr () {\n assert(this.red, 'redSqr works only with red numbers');\n this.red._verify1(this);\n return this.red.sqr(this);\n };\n\n BN.prototype.redISqr = function redISqr () {\n assert(this.red, 'redISqr works only with red numbers');\n this.red._verify1(this);\n return this.red.isqr(this);\n };\n\n // Square root over p\n BN.prototype.redSqrt = function redSqrt () {\n assert(this.red, 'redSqrt works only with red numbers');\n this.red._verify1(this);\n return this.red.sqrt(this);\n };\n\n BN.prototype.redInvm = function redInvm () {\n assert(this.red, 'redInvm works only with red numbers');\n this.red._verify1(this);\n return this.red.invm(this);\n };\n\n // Return negative clone of `this` % `red modulo`\n BN.prototype.redNeg = function redNeg () {\n assert(this.red, 'redNeg works only with red numbers');\n this.red._verify1(this);\n return this.red.neg(this);\n };\n\n BN.prototype.redPow = function redPow (num) {\n assert(this.red && !num.red, 'redPow(normalNum)');\n this.red._verify1(this);\n return this.red.pow(this, num);\n };\n\n // Prime numbers with efficient reduction\n var primes = {\n k256: null,\n p224: null,\n p192: null,\n p25519: null\n };\n\n // Pseudo-Mersenne prime\n function MPrime (name, p) {\n // P = 2 ^ N - K\n this.name = name;\n this.p = new BN(p, 16);\n this.n = this.p.bitLength();\n this.k = new BN(1).iushln(this.n).isub(this.p);\n\n this.tmp = this._tmp();\n }\n\n MPrime.prototype._tmp = function _tmp () {\n var tmp = new BN(null);\n tmp.words = new Array(Math.ceil(this.n / 13));\n return tmp;\n };\n\n MPrime.prototype.ireduce = function ireduce (num) {\n // Assumes that `num` is less than `P^2`\n // num = HI * (2 ^ N - K) + HI * K + LO = HI * K + LO (mod P)\n var r = num;\n var rlen;\n\n do {\n this.split(r, this.tmp);\n r = this.imulK(r);\n r = r.iadd(this.tmp);\n rlen = r.bitLength();\n } while (rlen > this.n);\n\n var cmp = rlen < this.n ? -1 : r.ucmp(this.p);\n if (cmp === 0) {\n r.words[0] = 0;\n r.length = 1;\n } else if (cmp > 0) {\n r.isub(this.p);\n } else {\n if (r.strip !== undefined) {\n // r is a BN v4 instance\n r.strip();\n } else {\n // r is a BN v5 instance\n r._strip();\n }\n }\n\n return r;\n };\n\n MPrime.prototype.split = function split (input, out) {\n input.iushrn(this.n, 0, out);\n };\n\n MPrime.prototype.imulK = function imulK (num) {\n return num.imul(this.k);\n };\n\n function K256 () {\n MPrime.call(\n this,\n 'k256',\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f');\n }\n inherits(K256, MPrime);\n\n K256.prototype.split = function split (input, output) {\n // 256 = 9 * 26 + 22\n var mask = 0x3fffff;\n\n var outLen = Math.min(input.length, 9);\n for (var i = 0; i < outLen; i++) {\n output.words[i] = input.words[i];\n }\n output.length = outLen;\n\n if (input.length <= 9) {\n input.words[0] = 0;\n input.length = 1;\n return;\n }\n\n // Shift by 9 limbs\n var prev = input.words[9];\n output.words[output.length++] = prev & mask;\n\n for (i = 10; i < input.length; i++) {\n var next = input.words[i] | 0;\n input.words[i - 10] = ((next & mask) << 4) | (prev >>> 22);\n prev = next;\n }\n prev >>>= 22;\n input.words[i - 10] = prev;\n if (prev === 0 && input.length > 10) {\n input.length -= 10;\n } else {\n input.length -= 9;\n }\n };\n\n K256.prototype.imulK = function imulK (num) {\n // K = 0x1000003d1 = [ 0x40, 0x3d1 ]\n num.words[num.length] = 0;\n num.words[num.length + 1] = 0;\n num.length += 2;\n\n // bounded at: 0x40 * 0x3ffffff + 0x3d0 = 0x100000390\n var lo = 0;\n for (var i = 0; i < num.length; i++) {\n var w = num.words[i] | 0;\n lo += w * 0x3d1;\n num.words[i] = lo & 0x3ffffff;\n lo = w * 0x40 + ((lo / 0x4000000) | 0);\n }\n\n // Fast length reduction\n if (num.words[num.length - 1] === 0) {\n num.length--;\n if (num.words[num.length - 1] === 0) {\n num.length--;\n }\n }\n return num;\n };\n\n function P224 () {\n MPrime.call(\n this,\n 'p224',\n 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001');\n }\n inherits(P224, MPrime);\n\n function P192 () {\n MPrime.call(\n this,\n 'p192',\n 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff');\n }\n inherits(P192, MPrime);\n\n function P25519 () {\n // 2 ^ 255 - 19\n MPrime.call(\n this,\n '25519',\n '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed');\n }\n inherits(P25519, MPrime);\n\n P25519.prototype.imulK = function imulK (num) {\n // K = 0x13\n var carry = 0;\n for (var i = 0; i < num.length; i++) {\n var hi = (num.words[i] | 0) * 0x13 + carry;\n var lo = hi & 0x3ffffff;\n hi >>>= 26;\n\n num.words[i] = lo;\n carry = hi;\n }\n if (carry !== 0) {\n num.words[num.length++] = carry;\n }\n return num;\n };\n\n // Exported mostly for testing purposes, use plain name instead\n BN._prime = function prime (name) {\n // Cached version of prime\n if (primes[name]) return primes[name];\n\n var prime;\n if (name === 'k256') {\n prime = new K256();\n } else if (name === 'p224') {\n prime = new P224();\n } else if (name === 'p192') {\n prime = new P192();\n } else if (name === 'p25519') {\n prime = new P25519();\n } else {\n throw new Error('Unknown prime ' + name);\n }\n primes[name] = prime;\n\n return prime;\n };\n\n //\n // Base reduction engine\n //\n function Red (m) {\n if (typeof m === 'string') {\n var prime = BN._prime(m);\n this.m = prime.p;\n this.prime = prime;\n } else {\n assert(m.gtn(1), 'modulus must be greater than 1');\n this.m = m;\n this.prime = null;\n }\n }\n\n Red.prototype._verify1 = function _verify1 (a) {\n assert(a.negative === 0, 'red works only with positives');\n assert(a.red, 'red works only with red numbers');\n };\n\n Red.prototype._verify2 = function _verify2 (a, b) {\n assert((a.negative | b.negative) === 0, 'red works only with positives');\n assert(a.red && a.red === b.red,\n 'red works only with red numbers');\n };\n\n Red.prototype.imod = function imod (a) {\n if (this.prime) return this.prime.ireduce(a)._forceRed(this);\n\n move(a, a.umod(this.m)._forceRed(this));\n return a;\n };\n\n Red.prototype.neg = function neg (a) {\n if (a.isZero()) {\n return a.clone();\n }\n\n return this.m.sub(a)._forceRed(this);\n };\n\n Red.prototype.add = function add (a, b) {\n this._verify2(a, b);\n\n var res = a.add(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.iadd = function iadd (a, b) {\n this._verify2(a, b);\n\n var res = a.iadd(b);\n if (res.cmp(this.m) >= 0) {\n res.isub(this.m);\n }\n return res;\n };\n\n Red.prototype.sub = function sub (a, b) {\n this._verify2(a, b);\n\n var res = a.sub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res._forceRed(this);\n };\n\n Red.prototype.isub = function isub (a, b) {\n this._verify2(a, b);\n\n var res = a.isub(b);\n if (res.cmpn(0) < 0) {\n res.iadd(this.m);\n }\n return res;\n };\n\n Red.prototype.shl = function shl (a, num) {\n this._verify1(a);\n return this.imod(a.ushln(num));\n };\n\n Red.prototype.imul = function imul (a, b) {\n this._verify2(a, b);\n return this.imod(a.imul(b));\n };\n\n Red.prototype.mul = function mul (a, b) {\n this._verify2(a, b);\n return this.imod(a.mul(b));\n };\n\n Red.prototype.isqr = function isqr (a) {\n return this.imul(a, a.clone());\n };\n\n Red.prototype.sqr = function sqr (a) {\n return this.mul(a, a);\n };\n\n Red.prototype.sqrt = function sqrt (a) {\n if (a.isZero()) return a.clone();\n\n var mod3 = this.m.andln(3);\n assert(mod3 % 2 === 1);\n\n // Fast case\n if (mod3 === 3) {\n var pow = this.m.add(new BN(1)).iushrn(2);\n return this.pow(a, pow);\n }\n\n // Tonelli-Shanks algorithm (Totally unoptimized and slow)\n //\n // Find Q and S, that Q * 2 ^ S = (P - 1)\n var q = this.m.subn(1);\n var s = 0;\n while (!q.isZero() && q.andln(1) === 0) {\n s++;\n q.iushrn(1);\n }\n assert(!q.isZero());\n\n var one = new BN(1).toRed(this);\n var nOne = one.redNeg();\n\n // Find quadratic non-residue\n // NOTE: Max is such because of generalized Riemann hypothesis.\n var lpow = this.m.subn(1).iushrn(1);\n var z = this.m.bitLength();\n z = new BN(2 * z * z).toRed(this);\n\n while (this.pow(z, lpow).cmp(nOne) !== 0) {\n z.redIAdd(nOne);\n }\n\n var c = this.pow(z, q);\n var r = this.pow(a, q.addn(1).iushrn(1));\n var t = this.pow(a, q);\n var m = s;\n while (t.cmp(one) !== 0) {\n var tmp = t;\n for (var i = 0; tmp.cmp(one) !== 0; i++) {\n tmp = tmp.redSqr();\n }\n assert(i < m);\n var b = this.pow(c, new BN(1).iushln(m - i - 1));\n\n r = r.redMul(b);\n c = b.redSqr();\n t = t.redMul(c);\n m = i;\n }\n\n return r;\n };\n\n Red.prototype.invm = function invm (a) {\n var inv = a._invmp(this.m);\n if (inv.negative !== 0) {\n inv.negative = 0;\n return this.imod(inv).redNeg();\n } else {\n return this.imod(inv);\n }\n };\n\n Red.prototype.pow = function pow (a, num) {\n if (num.isZero()) return new BN(1).toRed(this);\n if (num.cmpn(1) === 0) return a.clone();\n\n var windowSize = 4;\n var wnd = new Array(1 << windowSize);\n wnd[0] = new BN(1).toRed(this);\n wnd[1] = a;\n for (var i = 2; i < wnd.length; i++) {\n wnd[i] = this.mul(wnd[i - 1], a);\n }\n\n var res = wnd[0];\n var current = 0;\n var currentLen = 0;\n var start = num.bitLength() % 26;\n if (start === 0) {\n start = 26;\n }\n\n for (i = num.length - 1; i >= 0; i--) {\n var word = num.words[i];\n for (var j = start - 1; j >= 0; j--) {\n var bit = (word >> j) & 1;\n if (res !== wnd[0]) {\n res = this.sqr(res);\n }\n\n if (bit === 0 && current === 0) {\n currentLen = 0;\n continue;\n }\n\n current <<= 1;\n current |= bit;\n currentLen++;\n if (currentLen !== windowSize && (i !== 0 || j !== 0)) continue;\n\n res = this.mul(res, wnd[current]);\n currentLen = 0;\n current = 0;\n }\n start = 26;\n }\n\n return res;\n };\n\n Red.prototype.convertTo = function convertTo (num) {\n var r = num.umod(this.m);\n\n return r === num ? r.clone() : r;\n };\n\n Red.prototype.convertFrom = function convertFrom (num) {\n var res = num.clone();\n res.red = null;\n return res;\n };\n\n //\n // Montgomery method engine\n //\n\n BN.mont = function mont (num) {\n return new Mont(num);\n };\n\n function Mont (m) {\n Red.call(this, m);\n\n this.shift = this.m.bitLength();\n if (this.shift % 26 !== 0) {\n this.shift += 26 - (this.shift % 26);\n }\n\n this.r = new BN(1).iushln(this.shift);\n this.r2 = this.imod(this.r.sqr());\n this.rinv = this.r._invmp(this.m);\n\n this.minv = this.rinv.mul(this.r).isubn(1).div(this.m);\n this.minv = this.minv.umod(this.r);\n this.minv = this.r.sub(this.minv);\n }\n inherits(Mont, Red);\n\n Mont.prototype.convertTo = function convertTo (num) {\n return this.imod(num.ushln(this.shift));\n };\n\n Mont.prototype.convertFrom = function convertFrom (num) {\n var r = this.imod(num.mul(this.rinv));\n r.red = null;\n return r;\n };\n\n Mont.prototype.imul = function imul (a, b) {\n if (a.isZero() || b.isZero()) {\n a.words[0] = 0;\n a.length = 1;\n return a;\n }\n\n var t = a.imul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.mul = function mul (a, b) {\n if (a.isZero() || b.isZero()) return new BN(0)._forceRed(this);\n\n var t = a.mul(b);\n var c = t.maskn(this.shift).mul(this.minv).imaskn(this.shift).mul(this.m);\n var u = t.isub(c).iushrn(this.shift);\n var res = u;\n if (u.cmp(this.m) >= 0) {\n res = u.isub(this.m);\n } else if (u.cmpn(0) < 0) {\n res = u.iadd(this.m);\n }\n\n return res._forceRed(this);\n };\n\n Mont.prototype.invm = function invm (a) {\n // (AR)^-1 * R^2 = (A^-1 * R^-1) * R^2 = A^-1 * R\n var res = this.imod(a._invmp(this.m).mul(this.r2));\n return res._forceRed(this);\n };\n})(typeof module === 'undefined' || module, this);\n","'use strict';\n\nfunction _inheritsLoose(subClass, superClass) { subClass.prototype = Object.create(superClass.prototype); subClass.prototype.constructor = subClass; subClass.__proto__ = superClass; }\n\nvar codes = {};\n\nfunction createErrorType(code, message, Base) {\n if (!Base) {\n Base = Error;\n }\n\n function getMessage(arg1, arg2, arg3) {\n if (typeof message === 'string') {\n return message;\n } else {\n return message(arg1, arg2, arg3);\n }\n }\n\n var NodeError =\n /*#__PURE__*/\n function (_Base) {\n _inheritsLoose(NodeError, _Base);\n\n function NodeError(arg1, arg2, arg3) {\n return _Base.call(this, getMessage(arg1, arg2, arg3)) || this;\n }\n\n return NodeError;\n }(Base);\n\n NodeError.prototype.name = Base.name;\n NodeError.prototype.code = code;\n codes[code] = NodeError;\n} // https://github.com/nodejs/node/blob/v10.8.0/lib/internal/errors.js\n\n\nfunction oneOf(expected, thing) {\n if (Array.isArray(expected)) {\n var len = expected.length;\n expected = expected.map(function (i) {\n return String(i);\n });\n\n if (len > 2) {\n return \"one of \".concat(thing, \" \").concat(expected.slice(0, len - 1).join(', '), \", or \") + expected[len - 1];\n } else if (len === 2) {\n return \"one of \".concat(thing, \" \").concat(expected[0], \" or \").concat(expected[1]);\n } else {\n return \"of \".concat(thing, \" \").concat(expected[0]);\n }\n } else {\n return \"of \".concat(thing, \" \").concat(String(expected));\n }\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/startsWith\n\n\nfunction startsWith(str, search, pos) {\n return str.substr(!pos || pos < 0 ? 0 : +pos, search.length) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/endsWith\n\n\nfunction endsWith(str, search, this_len) {\n if (this_len === undefined || this_len > str.length) {\n this_len = str.length;\n }\n\n return str.substring(this_len - search.length, this_len) === search;\n} // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/includes\n\n\nfunction includes(str, search, start) {\n if (typeof start !== 'number') {\n start = 0;\n }\n\n if (start + search.length > str.length) {\n return false;\n } else {\n return str.indexOf(search, start) !== -1;\n }\n}\n\ncreateErrorType('ERR_INVALID_OPT_VALUE', function (name, value) {\n return 'The value \"' + value + '\" is invalid for option \"' + name + '\"';\n}, TypeError);\ncreateErrorType('ERR_INVALID_ARG_TYPE', function (name, expected, actual) {\n // determiner: 'must be' or 'must not be'\n var determiner;\n\n if (typeof expected === 'string' && startsWith(expected, 'not ')) {\n determiner = 'must not be';\n expected = expected.replace(/^not /, '');\n } else {\n determiner = 'must be';\n }\n\n var msg;\n\n if (endsWith(name, ' argument')) {\n // For cases like 'first argument'\n msg = \"The \".concat(name, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n } else {\n var type = includes(name, '.') ? 'property' : 'argument';\n msg = \"The \\\"\".concat(name, \"\\\" \").concat(type, \" \").concat(determiner, \" \").concat(oneOf(expected, 'type'));\n }\n\n msg += \". Received type \".concat(typeof actual);\n return msg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_PUSH_AFTER_EOF', 'stream.push() after EOF');\ncreateErrorType('ERR_METHOD_NOT_IMPLEMENTED', function (name) {\n return 'The ' + name + ' method is not implemented';\n});\ncreateErrorType('ERR_STREAM_PREMATURE_CLOSE', 'Premature close');\ncreateErrorType('ERR_STREAM_DESTROYED', function (name) {\n return 'Cannot call ' + name + ' after a stream was destroyed';\n});\ncreateErrorType('ERR_MULTIPLE_CALLBACK', 'Callback called multiple times');\ncreateErrorType('ERR_STREAM_CANNOT_PIPE', 'Cannot pipe, not readable');\ncreateErrorType('ERR_STREAM_WRITE_AFTER_END', 'write after end');\ncreateErrorType('ERR_STREAM_NULL_VALUES', 'May not write null values to stream', TypeError);\ncreateErrorType('ERR_UNKNOWN_ENCODING', function (arg) {\n return 'Unknown encoding: ' + arg;\n}, TypeError);\ncreateErrorType('ERR_STREAM_UNSHIFT_AFTER_END_EVENT', 'stream.unshift() after end event');\nmodule.exports.codes = codes;\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a duplex stream is just a stream that is both readable and writable.\n// Since JS doesn't have multiple prototypal inheritance, this class\n// prototypally inherits from Readable, and then parasitically from\n// Writable.\n\n'use strict';\n\n/**/\nvar objectKeys = Object.keys || function (obj) {\n var keys = [];\n for (var key in obj) keys.push(key);\n return keys;\n};\n/**/\n\nmodule.exports = Duplex;\nvar Readable = require('./_stream_readable');\nvar Writable = require('./_stream_writable');\nrequire('inherits')(Duplex, Readable);\n{\n // Allow the keys array to be GC'ed.\n var keys = objectKeys(Writable.prototype);\n for (var v = 0; v < keys.length; v++) {\n var method = keys[v];\n if (!Duplex.prototype[method]) Duplex.prototype[method] = Writable.prototype[method];\n }\n}\nfunction Duplex(options) {\n if (!(this instanceof Duplex)) return new Duplex(options);\n Readable.call(this, options);\n Writable.call(this, options);\n this.allowHalfOpen = true;\n if (options) {\n if (options.readable === false) this.readable = false;\n if (options.writable === false) this.writable = false;\n if (options.allowHalfOpen === false) {\n this.allowHalfOpen = false;\n this.once('end', onend);\n }\n }\n}\nObject.defineProperty(Duplex.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nObject.defineProperty(Duplex.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\n\n// the no-half-open enforcer\nfunction onend() {\n // If the writable side ended, then we're ok.\n if (this._writableState.ended) return;\n\n // no more data can be written.\n // But allow more writes to happen in this tick.\n process.nextTick(onEndNT, this);\n}\nfunction onEndNT(self) {\n self.end();\n}\nObject.defineProperty(Duplex.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined || this._writableState === undefined) {\n return false;\n }\n return this._readableState.destroyed && this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (this._readableState === undefined || this._writableState === undefined) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n this._writableState.destroyed = value;\n }\n});","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a passthrough stream.\n// basically just the most minimal sort of Transform stream.\n// Every written chunk gets output as-is.\n\n'use strict';\n\nmodule.exports = PassThrough;\nvar Transform = require('./_stream_transform');\nrequire('inherits')(PassThrough, Transform);\nfunction PassThrough(options) {\n if (!(this instanceof PassThrough)) return new PassThrough(options);\n Transform.call(this, options);\n}\nPassThrough.prototype._transform = function (chunk, encoding, cb) {\n cb(null, chunk);\n};","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nmodule.exports = Readable;\n\n/**/\nvar Duplex;\n/**/\n\nReadable.ReadableState = ReadableState;\n\n/**/\nvar EE = require('events').EventEmitter;\nvar EElistenerCount = function EElistenerCount(emitter, type) {\n return emitter.listeners(type).length;\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\n\n/**/\nvar debugUtil = require('util');\nvar debug;\nif (debugUtil && debugUtil.debuglog) {\n debug = debugUtil.debuglog('stream');\n} else {\n debug = function debug() {};\n}\n/**/\n\nvar BufferList = require('./internal/streams/buffer_list');\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_STREAM_PUSH_AFTER_EOF = _require$codes.ERR_STREAM_PUSH_AFTER_EOF,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_STREAM_UNSHIFT_AFTER_END_EVENT = _require$codes.ERR_STREAM_UNSHIFT_AFTER_END_EVENT;\n\n// Lazy loaded to improve the startup performance.\nvar StringDecoder;\nvar createReadableStreamAsyncIterator;\nvar from;\nrequire('inherits')(Readable, Stream);\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nvar kProxyEvents = ['error', 'close', 'destroy', 'pause', 'resume'];\nfunction prependListener(emitter, event, fn) {\n // Sadly this is not cacheable as some libraries bundle their own\n // event emitter implementation with them.\n if (typeof emitter.prependListener === 'function') return emitter.prependListener(event, fn);\n\n // This is a hack to make sure that our error handler is attached before any\n // userland ones. NEVER DO THIS. This is here only because this code needs\n // to continue to work with older versions of Node.js that do not include\n // the prependListener() method. The goal is to eventually remove this hack.\n if (!emitter._events || !emitter._events[event]) emitter.on(event, fn);else if (Array.isArray(emitter._events[event])) emitter._events[event].unshift(fn);else emitter._events[event] = [fn, emitter._events[event]];\n}\nfunction ReadableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream.\n // These options can be provided separately as readableXXX and writableXXX.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag. Used to make read(n) ignore n and to\n // make all the buffer merging and length checks go away\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.readableObjectMode;\n\n // the point at which it stops calling _read() to fill the buffer\n // Note: 0 is a valid value, means \"don't call _read preemptively ever\"\n this.highWaterMark = getHighWaterMark(this, options, 'readableHighWaterMark', isDuplex);\n\n // A linked list is used to store data chunks instead of an array because the\n // linked list can remove elements from the beginning faster than\n // array.shift()\n this.buffer = new BufferList();\n this.length = 0;\n this.pipes = null;\n this.pipesCount = 0;\n this.flowing = null;\n this.ended = false;\n this.endEmitted = false;\n this.reading = false;\n\n // a flag to be able to tell if the event 'readable'/'data' is emitted\n // immediately, or on a later tick. We set this to true at first, because\n // any actions that shouldn't happen until \"later\" should generally also\n // not happen before the first read call.\n this.sync = true;\n\n // whenever we return null, then we set a flag to say\n // that we're awaiting a 'readable' event emission.\n this.needReadable = false;\n this.emittedReadable = false;\n this.readableListening = false;\n this.resumeScheduled = false;\n this.paused = true;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'end' (and potentially 'finish')\n this.autoDestroy = !!options.autoDestroy;\n\n // has it been destroyed\n this.destroyed = false;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // the number of writers that are awaiting a drain event in .pipe()s\n this.awaitDrain = 0;\n\n // if true, a maybeReadMore has been scheduled\n this.readingMore = false;\n this.decoder = null;\n this.encoding = null;\n if (options.encoding) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n this.decoder = new StringDecoder(options.encoding);\n this.encoding = options.encoding;\n }\n}\nfunction Readable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n if (!(this instanceof Readable)) return new Readable(options);\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the ReadableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n this._readableState = new ReadableState(options, this, isDuplex);\n\n // legacy\n this.readable = true;\n if (options) {\n if (typeof options.read === 'function') this._read = options.read;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n }\n Stream.call(this);\n}\nObject.defineProperty(Readable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._readableState === undefined) {\n return false;\n }\n return this._readableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._readableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._readableState.destroyed = value;\n }\n});\nReadable.prototype.destroy = destroyImpl.destroy;\nReadable.prototype._undestroy = destroyImpl.undestroy;\nReadable.prototype._destroy = function (err, cb) {\n cb(err);\n};\n\n// Manually shove something into the read() buffer.\n// This returns true if the highWaterMark has not been hit yet,\n// similar to how Writable.write() returns true if you should\n// write() some more.\nReadable.prototype.push = function (chunk, encoding) {\n var state = this._readableState;\n var skipChunkCheck;\n if (!state.objectMode) {\n if (typeof chunk === 'string') {\n encoding = encoding || state.defaultEncoding;\n if (encoding !== state.encoding) {\n chunk = Buffer.from(chunk, encoding);\n encoding = '';\n }\n skipChunkCheck = true;\n }\n } else {\n skipChunkCheck = true;\n }\n return readableAddChunk(this, chunk, encoding, false, skipChunkCheck);\n};\n\n// Unshift should *always* be something directly out of read()\nReadable.prototype.unshift = function (chunk) {\n return readableAddChunk(this, chunk, null, true, false);\n};\nfunction readableAddChunk(stream, chunk, encoding, addToFront, skipChunkCheck) {\n debug('readableAddChunk', chunk);\n var state = stream._readableState;\n if (chunk === null) {\n state.reading = false;\n onEofChunk(stream, state);\n } else {\n var er;\n if (!skipChunkCheck) er = chunkInvalid(state, chunk);\n if (er) {\n errorOrDestroy(stream, er);\n } else if (state.objectMode || chunk && chunk.length > 0) {\n if (typeof chunk !== 'string' && !state.objectMode && Object.getPrototypeOf(chunk) !== Buffer.prototype) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (addToFront) {\n if (state.endEmitted) errorOrDestroy(stream, new ERR_STREAM_UNSHIFT_AFTER_END_EVENT());else addChunk(stream, state, chunk, true);\n } else if (state.ended) {\n errorOrDestroy(stream, new ERR_STREAM_PUSH_AFTER_EOF());\n } else if (state.destroyed) {\n return false;\n } else {\n state.reading = false;\n if (state.decoder && !encoding) {\n chunk = state.decoder.write(chunk);\n if (state.objectMode || chunk.length !== 0) addChunk(stream, state, chunk, false);else maybeReadMore(stream, state);\n } else {\n addChunk(stream, state, chunk, false);\n }\n }\n } else if (!addToFront) {\n state.reading = false;\n maybeReadMore(stream, state);\n }\n }\n\n // We can push more data if we are below the highWaterMark.\n // Also, if we have no data yet, we can stand some more bytes.\n // This is to work around cases where hwm=0, such as the repl.\n return !state.ended && (state.length < state.highWaterMark || state.length === 0);\n}\nfunction addChunk(stream, state, chunk, addToFront) {\n if (state.flowing && state.length === 0 && !state.sync) {\n state.awaitDrain = 0;\n stream.emit('data', chunk);\n } else {\n // update the buffer info.\n state.length += state.objectMode ? 1 : chunk.length;\n if (addToFront) state.buffer.unshift(chunk);else state.buffer.push(chunk);\n if (state.needReadable) emitReadable(stream);\n }\n maybeReadMore(stream, state);\n}\nfunction chunkInvalid(state, chunk) {\n var er;\n if (!_isUint8Array(chunk) && typeof chunk !== 'string' && chunk !== undefined && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer', 'Uint8Array'], chunk);\n }\n return er;\n}\nReadable.prototype.isPaused = function () {\n return this._readableState.flowing === false;\n};\n\n// backwards compatibility.\nReadable.prototype.setEncoding = function (enc) {\n if (!StringDecoder) StringDecoder = require('string_decoder/').StringDecoder;\n var decoder = new StringDecoder(enc);\n this._readableState.decoder = decoder;\n // If setEncoding(null), decoder.encoding equals utf8\n this._readableState.encoding = this._readableState.decoder.encoding;\n\n // Iterate over current buffer to convert already stored Buffers:\n var p = this._readableState.buffer.head;\n var content = '';\n while (p !== null) {\n content += decoder.write(p.data);\n p = p.next;\n }\n this._readableState.buffer.clear();\n if (content !== '') this._readableState.buffer.push(content);\n this._readableState.length = content.length;\n return this;\n};\n\n// Don't raise the hwm > 1GB\nvar MAX_HWM = 0x40000000;\nfunction computeNewHighWaterMark(n) {\n if (n >= MAX_HWM) {\n // TODO(ronag): Throw ERR_VALUE_OUT_OF_RANGE.\n n = MAX_HWM;\n } else {\n // Get the next highest power of 2 to prevent increasing hwm excessively in\n // tiny amounts\n n--;\n n |= n >>> 1;\n n |= n >>> 2;\n n |= n >>> 4;\n n |= n >>> 8;\n n |= n >>> 16;\n n++;\n }\n return n;\n}\n\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction howMuchToRead(n, state) {\n if (n <= 0 || state.length === 0 && state.ended) return 0;\n if (state.objectMode) return 1;\n if (n !== n) {\n // Only flow one buffer at a time\n if (state.flowing && state.length) return state.buffer.head.data.length;else return state.length;\n }\n // If we're asking for more than the current hwm, then raise the hwm.\n if (n > state.highWaterMark) state.highWaterMark = computeNewHighWaterMark(n);\n if (n <= state.length) return n;\n // Don't have enough\n if (!state.ended) {\n state.needReadable = true;\n return 0;\n }\n return state.length;\n}\n\n// you can override either this method, or the async _read(n) below.\nReadable.prototype.read = function (n) {\n debug('read', n);\n n = parseInt(n, 10);\n var state = this._readableState;\n var nOrig = n;\n if (n !== 0) state.emittedReadable = false;\n\n // if we're doing read(0) to trigger a readable event, but we\n // already have a bunch of data in the buffer, then just trigger\n // the 'readable' event and move on.\n if (n === 0 && state.needReadable && ((state.highWaterMark !== 0 ? state.length >= state.highWaterMark : state.length > 0) || state.ended)) {\n debug('read: emitReadable', state.length, state.ended);\n if (state.length === 0 && state.ended) endReadable(this);else emitReadable(this);\n return null;\n }\n n = howMuchToRead(n, state);\n\n // if we've ended, and we're now clear, then finish it up.\n if (n === 0 && state.ended) {\n if (state.length === 0) endReadable(this);\n return null;\n }\n\n // All the actual chunk generation logic needs to be\n // *below* the call to _read. The reason is that in certain\n // synthetic stream cases, such as passthrough streams, _read\n // may be a completely synchronous operation which may change\n // the state of the read buffer, providing enough data when\n // before there was *not* enough.\n //\n // So, the steps are:\n // 1. Figure out what the state of things will be after we do\n // a read from the buffer.\n //\n // 2. If that resulting state will trigger a _read, then call _read.\n // Note that this may be asynchronous, or synchronous. Yes, it is\n // deeply ugly to write APIs this way, but that still doesn't mean\n // that the Readable class should behave improperly, as streams are\n // designed to be sync/async agnostic.\n // Take note if the _read call is sync or async (ie, if the read call\n // has returned yet), so that we know whether or not it's safe to emit\n // 'readable' etc.\n //\n // 3. Actually pull the requested chunks out of the buffer and return.\n\n // if we need a readable event, then we need to do some reading.\n var doRead = state.needReadable;\n debug('need readable', doRead);\n\n // if we currently have less than the highWaterMark, then also read some\n if (state.length === 0 || state.length - n < state.highWaterMark) {\n doRead = true;\n debug('length less than watermark', doRead);\n }\n\n // however, if we've ended, then there's no point, and if we're already\n // reading, then it's unnecessary.\n if (state.ended || state.reading) {\n doRead = false;\n debug('reading or ended', doRead);\n } else if (doRead) {\n debug('do read');\n state.reading = true;\n state.sync = true;\n // if the length is currently zero, then we *need* a readable event.\n if (state.length === 0) state.needReadable = true;\n // call internal read method\n this._read(state.highWaterMark);\n state.sync = false;\n // If _read pushed data synchronously, then `reading` will be false,\n // and we need to re-evaluate how much data we can return to the user.\n if (!state.reading) n = howMuchToRead(nOrig, state);\n }\n var ret;\n if (n > 0) ret = fromList(n, state);else ret = null;\n if (ret === null) {\n state.needReadable = state.length <= state.highWaterMark;\n n = 0;\n } else {\n state.length -= n;\n state.awaitDrain = 0;\n }\n if (state.length === 0) {\n // If we have nothing in the buffer, then we want to know\n // as soon as we *do* get something into the buffer.\n if (!state.ended) state.needReadable = true;\n\n // If we tried to read() past the EOF, then emit end on the next tick.\n if (nOrig !== n && state.ended) endReadable(this);\n }\n if (ret !== null) this.emit('data', ret);\n return ret;\n};\nfunction onEofChunk(stream, state) {\n debug('onEofChunk');\n if (state.ended) return;\n if (state.decoder) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) {\n state.buffer.push(chunk);\n state.length += state.objectMode ? 1 : chunk.length;\n }\n }\n state.ended = true;\n if (state.sync) {\n // if we are sync, wait until next tick to emit the data.\n // Otherwise we risk emitting data in the flow()\n // the readable code triggers during a read() call\n emitReadable(stream);\n } else {\n // emit 'readable' now to make sure it gets picked up.\n state.needReadable = false;\n if (!state.emittedReadable) {\n state.emittedReadable = true;\n emitReadable_(stream);\n }\n }\n}\n\n// Don't emit readable right away in sync mode, because this can trigger\n// another read() call => stack overflow. This way, it might trigger\n// a nextTick recursion warning, but that's not so bad.\nfunction emitReadable(stream) {\n var state = stream._readableState;\n debug('emitReadable', state.needReadable, state.emittedReadable);\n state.needReadable = false;\n if (!state.emittedReadable) {\n debug('emitReadable', state.flowing);\n state.emittedReadable = true;\n process.nextTick(emitReadable_, stream);\n }\n}\nfunction emitReadable_(stream) {\n var state = stream._readableState;\n debug('emitReadable_', state.destroyed, state.length, state.ended);\n if (!state.destroyed && (state.length || state.ended)) {\n stream.emit('readable');\n state.emittedReadable = false;\n }\n\n // The stream needs another readable event if\n // 1. It is not flowing, as the flow mechanism will take\n // care of it.\n // 2. It is not ended.\n // 3. It is below the highWaterMark, so we can schedule\n // another readable later.\n state.needReadable = !state.flowing && !state.ended && state.length <= state.highWaterMark;\n flow(stream);\n}\n\n// at this point, the user has presumably seen the 'readable' event,\n// and called read() to consume some data. that may have triggered\n// in turn another _read(n) call, in which case reading = true if\n// it's in progress.\n// However, if we're not ended, or reading, and the length < hwm,\n// then go ahead and try to read some more preemptively.\nfunction maybeReadMore(stream, state) {\n if (!state.readingMore) {\n state.readingMore = true;\n process.nextTick(maybeReadMore_, stream, state);\n }\n}\nfunction maybeReadMore_(stream, state) {\n // Attempt to read more data if we should.\n //\n // The conditions for reading more data are (one of):\n // - Not enough data buffered (state.length < state.highWaterMark). The loop\n // is responsible for filling the buffer with enough data if such data\n // is available. If highWaterMark is 0 and we are not in the flowing mode\n // we should _not_ attempt to buffer any extra data. We'll get more data\n // when the stream consumer calls read() instead.\n // - No data in the buffer, and the stream is in flowing mode. In this mode\n // the loop below is responsible for ensuring read() is called. Failing to\n // call read here would abort the flow and there's no other mechanism for\n // continuing the flow if the stream consumer has just subscribed to the\n // 'data' event.\n //\n // In addition to the above conditions to keep reading data, the following\n // conditions prevent the data from being read:\n // - The stream has ended (state.ended).\n // - There is already a pending 'read' operation (state.reading). This is a\n // case where the the stream has called the implementation defined _read()\n // method, but they are processing the call asynchronously and have _not_\n // called push() with new data. In this case we skip performing more\n // read()s. The execution ends in this method again after the _read() ends\n // up calling push() with more data.\n while (!state.reading && !state.ended && (state.length < state.highWaterMark || state.flowing && state.length === 0)) {\n var len = state.length;\n debug('maybeReadMore read 0');\n stream.read(0);\n if (len === state.length)\n // didn't get any data, stop spinning.\n break;\n }\n state.readingMore = false;\n}\n\n// abstract method. to be overridden in specific implementation classes.\n// call cb(er, data) where data is <= n in length.\n// for virtual (non-string, non-buffer) streams, \"length\" is somewhat\n// arbitrary, and perhaps not very meaningful.\nReadable.prototype._read = function (n) {\n errorOrDestroy(this, new ERR_METHOD_NOT_IMPLEMENTED('_read()'));\n};\nReadable.prototype.pipe = function (dest, pipeOpts) {\n var src = this;\n var state = this._readableState;\n switch (state.pipesCount) {\n case 0:\n state.pipes = dest;\n break;\n case 1:\n state.pipes = [state.pipes, dest];\n break;\n default:\n state.pipes.push(dest);\n break;\n }\n state.pipesCount += 1;\n debug('pipe count=%d opts=%j', state.pipesCount, pipeOpts);\n var doEnd = (!pipeOpts || pipeOpts.end !== false) && dest !== process.stdout && dest !== process.stderr;\n var endFn = doEnd ? onend : unpipe;\n if (state.endEmitted) process.nextTick(endFn);else src.once('end', endFn);\n dest.on('unpipe', onunpipe);\n function onunpipe(readable, unpipeInfo) {\n debug('onunpipe');\n if (readable === src) {\n if (unpipeInfo && unpipeInfo.hasUnpiped === false) {\n unpipeInfo.hasUnpiped = true;\n cleanup();\n }\n }\n }\n function onend() {\n debug('onend');\n dest.end();\n }\n\n // when the dest drains, it reduces the awaitDrain counter\n // on the source. This would be more elegant with a .once()\n // handler in flow(), but adding and removing repeatedly is\n // too slow.\n var ondrain = pipeOnDrain(src);\n dest.on('drain', ondrain);\n var cleanedUp = false;\n function cleanup() {\n debug('cleanup');\n // cleanup event handlers once the pipe is broken\n dest.removeListener('close', onclose);\n dest.removeListener('finish', onfinish);\n dest.removeListener('drain', ondrain);\n dest.removeListener('error', onerror);\n dest.removeListener('unpipe', onunpipe);\n src.removeListener('end', onend);\n src.removeListener('end', unpipe);\n src.removeListener('data', ondata);\n cleanedUp = true;\n\n // if the reader is waiting for a drain event from this\n // specific writer, then it would cause it to never start\n // flowing again.\n // So, if this is awaiting a drain, then we just call it now.\n // If we don't know, then assume that we are waiting for one.\n if (state.awaitDrain && (!dest._writableState || dest._writableState.needDrain)) ondrain();\n }\n src.on('data', ondata);\n function ondata(chunk) {\n debug('ondata');\n var ret = dest.write(chunk);\n debug('dest.write', ret);\n if (ret === false) {\n // If the user unpiped during `dest.write()`, it is possible\n // to get stuck in a permanently paused state if that write\n // also returned false.\n // => Check whether `dest` is still a piping destination.\n if ((state.pipesCount === 1 && state.pipes === dest || state.pipesCount > 1 && indexOf(state.pipes, dest) !== -1) && !cleanedUp) {\n debug('false write response, pause', state.awaitDrain);\n state.awaitDrain++;\n }\n src.pause();\n }\n }\n\n // if the dest has an error, then stop piping into it.\n // however, don't suppress the throwing behavior for this.\n function onerror(er) {\n debug('onerror', er);\n unpipe();\n dest.removeListener('error', onerror);\n if (EElistenerCount(dest, 'error') === 0) errorOrDestroy(dest, er);\n }\n\n // Make sure our error handler is attached before userland ones.\n prependListener(dest, 'error', onerror);\n\n // Both close and finish should trigger unpipe, but only once.\n function onclose() {\n dest.removeListener('finish', onfinish);\n unpipe();\n }\n dest.once('close', onclose);\n function onfinish() {\n debug('onfinish');\n dest.removeListener('close', onclose);\n unpipe();\n }\n dest.once('finish', onfinish);\n function unpipe() {\n debug('unpipe');\n src.unpipe(dest);\n }\n\n // tell the dest that it's being piped to\n dest.emit('pipe', src);\n\n // start the flow if it hasn't been started already.\n if (!state.flowing) {\n debug('pipe resume');\n src.resume();\n }\n return dest;\n};\nfunction pipeOnDrain(src) {\n return function pipeOnDrainFunctionResult() {\n var state = src._readableState;\n debug('pipeOnDrain', state.awaitDrain);\n if (state.awaitDrain) state.awaitDrain--;\n if (state.awaitDrain === 0 && EElistenerCount(src, 'data')) {\n state.flowing = true;\n flow(src);\n }\n };\n}\nReadable.prototype.unpipe = function (dest) {\n var state = this._readableState;\n var unpipeInfo = {\n hasUnpiped: false\n };\n\n // if we're not piping anywhere, then do nothing.\n if (state.pipesCount === 0) return this;\n\n // just one destination. most common case.\n if (state.pipesCount === 1) {\n // passed in one, but it's not the right one.\n if (dest && dest !== state.pipes) return this;\n if (!dest) dest = state.pipes;\n\n // got a match.\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n if (dest) dest.emit('unpipe', this, unpipeInfo);\n return this;\n }\n\n // slow case. multiple pipe destinations.\n\n if (!dest) {\n // remove all.\n var dests = state.pipes;\n var len = state.pipesCount;\n state.pipes = null;\n state.pipesCount = 0;\n state.flowing = false;\n for (var i = 0; i < len; i++) dests[i].emit('unpipe', this, {\n hasUnpiped: false\n });\n return this;\n }\n\n // try to find the right one.\n var index = indexOf(state.pipes, dest);\n if (index === -1) return this;\n state.pipes.splice(index, 1);\n state.pipesCount -= 1;\n if (state.pipesCount === 1) state.pipes = state.pipes[0];\n dest.emit('unpipe', this, unpipeInfo);\n return this;\n};\n\n// set up data events if they are asked for\n// Ensure readable listeners eventually get something\nReadable.prototype.on = function (ev, fn) {\n var res = Stream.prototype.on.call(this, ev, fn);\n var state = this._readableState;\n if (ev === 'data') {\n // update readableListening so that resume() may be a no-op\n // a few lines down. This is needed to support once('readable').\n state.readableListening = this.listenerCount('readable') > 0;\n\n // Try start flowing on next tick if stream isn't explicitly paused\n if (state.flowing !== false) this.resume();\n } else if (ev === 'readable') {\n if (!state.endEmitted && !state.readableListening) {\n state.readableListening = state.needReadable = true;\n state.flowing = false;\n state.emittedReadable = false;\n debug('on readable', state.length, state.reading);\n if (state.length) {\n emitReadable(this);\n } else if (!state.reading) {\n process.nextTick(nReadingNextTick, this);\n }\n }\n }\n return res;\n};\nReadable.prototype.addListener = Readable.prototype.on;\nReadable.prototype.removeListener = function (ev, fn) {\n var res = Stream.prototype.removeListener.call(this, ev, fn);\n if (ev === 'readable') {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nReadable.prototype.removeAllListeners = function (ev) {\n var res = Stream.prototype.removeAllListeners.apply(this, arguments);\n if (ev === 'readable' || ev === undefined) {\n // We need to check if there is someone still listening to\n // readable and reset the state. However this needs to happen\n // after readable has been emitted but before I/O (nextTick) to\n // support once('readable', fn) cycles. This means that calling\n // resume within the same tick will have no\n // effect.\n process.nextTick(updateReadableListening, this);\n }\n return res;\n};\nfunction updateReadableListening(self) {\n var state = self._readableState;\n state.readableListening = self.listenerCount('readable') > 0;\n if (state.resumeScheduled && !state.paused) {\n // flowing needs to be set to true now, otherwise\n // the upcoming resume will not flow.\n state.flowing = true;\n\n // crude way to check if we should resume\n } else if (self.listenerCount('data') > 0) {\n self.resume();\n }\n}\nfunction nReadingNextTick(self) {\n debug('readable nexttick read 0');\n self.read(0);\n}\n\n// pause() and resume() are remnants of the legacy readable stream API\n// If the user uses them, then switch into old mode.\nReadable.prototype.resume = function () {\n var state = this._readableState;\n if (!state.flowing) {\n debug('resume');\n // we flow only if there is no one listening\n // for readable, but we still have to call\n // resume()\n state.flowing = !state.readableListening;\n resume(this, state);\n }\n state.paused = false;\n return this;\n};\nfunction resume(stream, state) {\n if (!state.resumeScheduled) {\n state.resumeScheduled = true;\n process.nextTick(resume_, stream, state);\n }\n}\nfunction resume_(stream, state) {\n debug('resume', state.reading);\n if (!state.reading) {\n stream.read(0);\n }\n state.resumeScheduled = false;\n stream.emit('resume');\n flow(stream);\n if (state.flowing && !state.reading) stream.read(0);\n}\nReadable.prototype.pause = function () {\n debug('call pause flowing=%j', this._readableState.flowing);\n if (this._readableState.flowing !== false) {\n debug('pause');\n this._readableState.flowing = false;\n this.emit('pause');\n }\n this._readableState.paused = true;\n return this;\n};\nfunction flow(stream) {\n var state = stream._readableState;\n debug('flow', state.flowing);\n while (state.flowing && stream.read() !== null);\n}\n\n// wrap an old-style stream as the async data source.\n// This is *not* part of the readable stream interface.\n// It is an ugly unfortunate mess of history.\nReadable.prototype.wrap = function (stream) {\n var _this = this;\n var state = this._readableState;\n var paused = false;\n stream.on('end', function () {\n debug('wrapped end');\n if (state.decoder && !state.ended) {\n var chunk = state.decoder.end();\n if (chunk && chunk.length) _this.push(chunk);\n }\n _this.push(null);\n });\n stream.on('data', function (chunk) {\n debug('wrapped data');\n if (state.decoder) chunk = state.decoder.write(chunk);\n\n // don't skip over falsy values in objectMode\n if (state.objectMode && (chunk === null || chunk === undefined)) return;else if (!state.objectMode && (!chunk || !chunk.length)) return;\n var ret = _this.push(chunk);\n if (!ret) {\n paused = true;\n stream.pause();\n }\n });\n\n // proxy all the other methods.\n // important when wrapping filters and duplexes.\n for (var i in stream) {\n if (this[i] === undefined && typeof stream[i] === 'function') {\n this[i] = function methodWrap(method) {\n return function methodWrapReturnFunction() {\n return stream[method].apply(stream, arguments);\n };\n }(i);\n }\n }\n\n // proxy certain important events.\n for (var n = 0; n < kProxyEvents.length; n++) {\n stream.on(kProxyEvents[n], this.emit.bind(this, kProxyEvents[n]));\n }\n\n // when we try to consume some more bytes, simply unpause the\n // underlying stream.\n this._read = function (n) {\n debug('wrapped _read', n);\n if (paused) {\n paused = false;\n stream.resume();\n }\n };\n return this;\n};\nif (typeof Symbol === 'function') {\n Readable.prototype[Symbol.asyncIterator] = function () {\n if (createReadableStreamAsyncIterator === undefined) {\n createReadableStreamAsyncIterator = require('./internal/streams/async_iterator');\n }\n return createReadableStreamAsyncIterator(this);\n };\n}\nObject.defineProperty(Readable.prototype, 'readableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.highWaterMark;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState && this._readableState.buffer;\n }\n});\nObject.defineProperty(Readable.prototype, 'readableFlowing', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.flowing;\n },\n set: function set(state) {\n if (this._readableState) {\n this._readableState.flowing = state;\n }\n }\n});\n\n// exposed for testing purposes only.\nReadable._fromList = fromList;\nObject.defineProperty(Readable.prototype, 'readableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._readableState.length;\n }\n});\n\n// Pluck off n bytes from an array of buffers.\n// Length is the combined lengths of all the buffers in the list.\n// This function is designed to be inlinable, so please take care when making\n// changes to the function body.\nfunction fromList(n, state) {\n // nothing buffered\n if (state.length === 0) return null;\n var ret;\n if (state.objectMode) ret = state.buffer.shift();else if (!n || n >= state.length) {\n // read it all, truncate the list\n if (state.decoder) ret = state.buffer.join('');else if (state.buffer.length === 1) ret = state.buffer.first();else ret = state.buffer.concat(state.length);\n state.buffer.clear();\n } else {\n // read part of list\n ret = state.buffer.consume(n, state.decoder);\n }\n return ret;\n}\nfunction endReadable(stream) {\n var state = stream._readableState;\n debug('endReadable', state.endEmitted);\n if (!state.endEmitted) {\n state.ended = true;\n process.nextTick(endReadableNT, state, stream);\n }\n}\nfunction endReadableNT(state, stream) {\n debug('endReadableNT', state.endEmitted, state.length);\n\n // Check that we didn't get one last unshift.\n if (!state.endEmitted && state.length === 0) {\n state.endEmitted = true;\n stream.readable = false;\n stream.emit('end');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the writable side is ready for autoDestroy as well\n var wState = stream._writableState;\n if (!wState || wState.autoDestroy && wState.finished) {\n stream.destroy();\n }\n }\n }\n}\nif (typeof Symbol === 'function') {\n Readable.from = function (iterable, opts) {\n if (from === undefined) {\n from = require('./internal/streams/from');\n }\n return from(Readable, iterable, opts);\n };\n}\nfunction indexOf(xs, x) {\n for (var i = 0, l = xs.length; i < l; i++) {\n if (xs[i] === x) return i;\n }\n return -1;\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// a transform stream is a readable/writable stream where you do\n// something with the data. Sometimes it's called a \"filter\",\n// but that's not a great name for it, since that implies a thing where\n// some bits pass through, and others are simply ignored. (That would\n// be a valid example of a transform, of course.)\n//\n// While the output is causally related to the input, it's not a\n// necessarily symmetric or synchronous transformation. For example,\n// a zlib stream might take multiple plain-text writes(), and then\n// emit a single compressed chunk some time in the future.\n//\n// Here's how this works:\n//\n// The Transform stream has all the aspects of the readable and writable\n// stream classes. When you write(chunk), that calls _write(chunk,cb)\n// internally, and returns false if there's a lot of pending writes\n// buffered up. When you call read(), that calls _read(n) until\n// there's enough pending readable data buffered up.\n//\n// In a transform stream, the written data is placed in a buffer. When\n// _read(n) is called, it transforms the queued up data, calling the\n// buffered _write cb's as it consumes chunks. If consuming a single\n// written chunk would result in multiple output chunks, then the first\n// outputted bit calls the readcb, and subsequent chunks just go into\n// the read buffer, and will cause it to emit 'readable' if necessary.\n//\n// This way, back-pressure is actually determined by the reading side,\n// since _read has to be called to start processing a new chunk. However,\n// a pathological inflate type of transform can cause excessive buffering\n// here. For example, imagine a stream where every byte of input is\n// interpreted as an integer from 0-255, and then results in that many\n// bytes of output. Writing the 4 bytes {ff,ff,ff,ff} would result in\n// 1kb of data being output. In this case, you could write a very small\n// amount of input, and end up with a very large amount of output. In\n// such a pathological inflating mechanism, there'd be no way to tell\n// the system to stop doing the transform. A single 4MB write could\n// cause the system to run out of memory.\n//\n// However, even in such a pathological case, only a single written chunk\n// would be consumed, and then the rest would wait (un-transformed) until\n// the results of the previous transformed chunk were consumed.\n\n'use strict';\n\nmodule.exports = Transform;\nvar _require$codes = require('../errors').codes,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_TRANSFORM_ALREADY_TRANSFORMING = _require$codes.ERR_TRANSFORM_ALREADY_TRANSFORMING,\n ERR_TRANSFORM_WITH_LENGTH_0 = _require$codes.ERR_TRANSFORM_WITH_LENGTH_0;\nvar Duplex = require('./_stream_duplex');\nrequire('inherits')(Transform, Duplex);\nfunction afterTransform(er, data) {\n var ts = this._transformState;\n ts.transforming = false;\n var cb = ts.writecb;\n if (cb === null) {\n return this.emit('error', new ERR_MULTIPLE_CALLBACK());\n }\n ts.writechunk = null;\n ts.writecb = null;\n if (data != null)\n // single equals check for both `null` and `undefined`\n this.push(data);\n cb(er);\n var rs = this._readableState;\n rs.reading = false;\n if (rs.needReadable || rs.length < rs.highWaterMark) {\n this._read(rs.highWaterMark);\n }\n}\nfunction Transform(options) {\n if (!(this instanceof Transform)) return new Transform(options);\n Duplex.call(this, options);\n this._transformState = {\n afterTransform: afterTransform.bind(this),\n needTransform: false,\n transforming: false,\n writecb: null,\n writechunk: null,\n writeencoding: null\n };\n\n // start out asking for a readable event once data is transformed.\n this._readableState.needReadable = true;\n\n // we have implemented the _read method, and done the other things\n // that Readable wants before the first _read call, so unset the\n // sync guard flag.\n this._readableState.sync = false;\n if (options) {\n if (typeof options.transform === 'function') this._transform = options.transform;\n if (typeof options.flush === 'function') this._flush = options.flush;\n }\n\n // When the writable side finishes, then flush out anything remaining.\n this.on('prefinish', prefinish);\n}\nfunction prefinish() {\n var _this = this;\n if (typeof this._flush === 'function' && !this._readableState.destroyed) {\n this._flush(function (er, data) {\n done(_this, er, data);\n });\n } else {\n done(this, null, null);\n }\n}\nTransform.prototype.push = function (chunk, encoding) {\n this._transformState.needTransform = false;\n return Duplex.prototype.push.call(this, chunk, encoding);\n};\n\n// This is the part where you do stuff!\n// override this function in implementation classes.\n// 'chunk' is an input chunk.\n//\n// Call `push(newChunk)` to pass along transformed output\n// to the readable side. You may call 'push' zero or more times.\n//\n// Call `cb(err)` when you are done with this chunk. If you pass\n// an error, then that'll put the hurt on the whole operation. If you\n// never call cb(), then you'll never get another chunk.\nTransform.prototype._transform = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_transform()'));\n};\nTransform.prototype._write = function (chunk, encoding, cb) {\n var ts = this._transformState;\n ts.writecb = cb;\n ts.writechunk = chunk;\n ts.writeencoding = encoding;\n if (!ts.transforming) {\n var rs = this._readableState;\n if (ts.needTransform || rs.needReadable || rs.length < rs.highWaterMark) this._read(rs.highWaterMark);\n }\n};\n\n// Doesn't matter what the args are here.\n// _transform does all the work.\n// That we got here means that the readable side wants more data.\nTransform.prototype._read = function (n) {\n var ts = this._transformState;\n if (ts.writechunk !== null && !ts.transforming) {\n ts.transforming = true;\n this._transform(ts.writechunk, ts.writeencoding, ts.afterTransform);\n } else {\n // mark that we need a transform, so that any data that comes in\n // will get processed, now that we've asked for it.\n ts.needTransform = true;\n }\n};\nTransform.prototype._destroy = function (err, cb) {\n Duplex.prototype._destroy.call(this, err, function (err2) {\n cb(err2);\n });\n};\nfunction done(stream, er, data) {\n if (er) return stream.emit('error', er);\n if (data != null)\n // single equals check for both `null` and `undefined`\n stream.push(data);\n\n // TODO(BridgeAR): Write a test for these two error cases\n // if there's nothing in the write buffer, then that means\n // that nothing more will ever be provided\n if (stream._writableState.length) throw new ERR_TRANSFORM_WITH_LENGTH_0();\n if (stream._transformState.transforming) throw new ERR_TRANSFORM_ALREADY_TRANSFORMING();\n return stream.push(null);\n}","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n// A bit simpler than readable streams.\n// Implement an async ._write(chunk, encoding, cb), and it'll handle all\n// the drain event emission and buffering.\n\n'use strict';\n\nmodule.exports = Writable;\n\n/* */\nfunction WriteReq(chunk, encoding, cb) {\n this.chunk = chunk;\n this.encoding = encoding;\n this.callback = cb;\n this.next = null;\n}\n\n// It seems a linked list but it is not\n// there will be only 2 of these for each stream\nfunction CorkedRequest(state) {\n var _this = this;\n this.next = null;\n this.entry = null;\n this.finish = function () {\n onCorkedFinish(_this, state);\n };\n}\n/* */\n\n/**/\nvar Duplex;\n/**/\n\nWritable.WritableState = WritableState;\n\n/**/\nvar internalUtil = {\n deprecate: require('util-deprecate')\n};\n/**/\n\n/**/\nvar Stream = require('./internal/streams/stream');\n/**/\n\nvar Buffer = require('buffer').Buffer;\nvar OurUint8Array = (typeof global !== 'undefined' ? global : typeof window !== 'undefined' ? window : typeof self !== 'undefined' ? self : {}).Uint8Array || function () {};\nfunction _uint8ArrayToBuffer(chunk) {\n return Buffer.from(chunk);\n}\nfunction _isUint8Array(obj) {\n return Buffer.isBuffer(obj) || obj instanceof OurUint8Array;\n}\nvar destroyImpl = require('./internal/streams/destroy');\nvar _require = require('./internal/streams/state'),\n getHighWaterMark = _require.getHighWaterMark;\nvar _require$codes = require('../errors').codes,\n ERR_INVALID_ARG_TYPE = _require$codes.ERR_INVALID_ARG_TYPE,\n ERR_METHOD_NOT_IMPLEMENTED = _require$codes.ERR_METHOD_NOT_IMPLEMENTED,\n ERR_MULTIPLE_CALLBACK = _require$codes.ERR_MULTIPLE_CALLBACK,\n ERR_STREAM_CANNOT_PIPE = _require$codes.ERR_STREAM_CANNOT_PIPE,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED,\n ERR_STREAM_NULL_VALUES = _require$codes.ERR_STREAM_NULL_VALUES,\n ERR_STREAM_WRITE_AFTER_END = _require$codes.ERR_STREAM_WRITE_AFTER_END,\n ERR_UNKNOWN_ENCODING = _require$codes.ERR_UNKNOWN_ENCODING;\nvar errorOrDestroy = destroyImpl.errorOrDestroy;\nrequire('inherits')(Writable, Stream);\nfunction nop() {}\nfunction WritableState(options, stream, isDuplex) {\n Duplex = Duplex || require('./_stream_duplex');\n options = options || {};\n\n // Duplex streams are both readable and writable, but share\n // the same options object.\n // However, some cases require setting options to different\n // values for the readable and the writable sides of the duplex stream,\n // e.g. options.readableObjectMode vs. options.writableObjectMode, etc.\n if (typeof isDuplex !== 'boolean') isDuplex = stream instanceof Duplex;\n\n // object stream flag to indicate whether or not this stream\n // contains buffers or objects.\n this.objectMode = !!options.objectMode;\n if (isDuplex) this.objectMode = this.objectMode || !!options.writableObjectMode;\n\n // the point at which write() starts returning false\n // Note: 0 is a valid value, means that we always return false if\n // the entire buffer is not flushed immediately on write()\n this.highWaterMark = getHighWaterMark(this, options, 'writableHighWaterMark', isDuplex);\n\n // if _final has been called\n this.finalCalled = false;\n\n // drain event flag.\n this.needDrain = false;\n // at the start of calling end()\n this.ending = false;\n // when end() has been called, and returned\n this.ended = false;\n // when 'finish' is emitted\n this.finished = false;\n\n // has it been destroyed\n this.destroyed = false;\n\n // should we decode strings into buffers before passing to _write?\n // this is here so that some node-core streams can optimize string\n // handling at a lower level.\n var noDecode = options.decodeStrings === false;\n this.decodeStrings = !noDecode;\n\n // Crypto is kind of old and crusty. Historically, its default string\n // encoding is 'binary' so we have to make this configurable.\n // Everything else in the universe uses 'utf8', though.\n this.defaultEncoding = options.defaultEncoding || 'utf8';\n\n // not an actual buffer we keep track of, but a measurement\n // of how much we're waiting to get pushed to some underlying\n // socket or file.\n this.length = 0;\n\n // a flag to see when we're in the middle of a write.\n this.writing = false;\n\n // when true all writes will be buffered until .uncork() call\n this.corked = 0;\n\n // a flag to be able to tell if the onwrite cb is called immediately,\n // or on a later tick. We set this to true at first, because any\n // actions that shouldn't happen until \"later\" should generally also\n // not happen before the first write call.\n this.sync = true;\n\n // a flag to know if we're processing previously buffered items, which\n // may call the _write() callback in the same tick, so that we don't\n // end up in an overlapped onwrite situation.\n this.bufferProcessing = false;\n\n // the callback that's passed to _write(chunk,cb)\n this.onwrite = function (er) {\n onwrite(stream, er);\n };\n\n // the callback that the user supplies to write(chunk,encoding,cb)\n this.writecb = null;\n\n // the amount that is being written when _write is called.\n this.writelen = 0;\n this.bufferedRequest = null;\n this.lastBufferedRequest = null;\n\n // number of pending user-supplied write callbacks\n // this must be 0 before 'finish' can be emitted\n this.pendingcb = 0;\n\n // emit prefinish if the only thing we're waiting for is _write cbs\n // This is relevant for synchronous Transform streams\n this.prefinished = false;\n\n // True if the error was already emitted and should not be thrown again\n this.errorEmitted = false;\n\n // Should close be emitted on destroy. Defaults to true.\n this.emitClose = options.emitClose !== false;\n\n // Should .destroy() be called after 'finish' (and potentially 'end')\n this.autoDestroy = !!options.autoDestroy;\n\n // count buffered requests\n this.bufferedRequestCount = 0;\n\n // allocate the first CorkedRequest, there is always\n // one allocated and free to use, and we maintain at most two\n this.corkedRequestsFree = new CorkedRequest(this);\n}\nWritableState.prototype.getBuffer = function getBuffer() {\n var current = this.bufferedRequest;\n var out = [];\n while (current) {\n out.push(current);\n current = current.next;\n }\n return out;\n};\n(function () {\n try {\n Object.defineProperty(WritableState.prototype, 'buffer', {\n get: internalUtil.deprecate(function writableStateBufferGetter() {\n return this.getBuffer();\n }, '_writableState.buffer is deprecated. Use _writableState.getBuffer ' + 'instead.', 'DEP0003')\n });\n } catch (_) {}\n})();\n\n// Test _writableState for inheritance to account for Duplex streams,\n// whose prototype chain only points to Readable.\nvar realHasInstance;\nif (typeof Symbol === 'function' && Symbol.hasInstance && typeof Function.prototype[Symbol.hasInstance] === 'function') {\n realHasInstance = Function.prototype[Symbol.hasInstance];\n Object.defineProperty(Writable, Symbol.hasInstance, {\n value: function value(object) {\n if (realHasInstance.call(this, object)) return true;\n if (this !== Writable) return false;\n return object && object._writableState instanceof WritableState;\n }\n });\n} else {\n realHasInstance = function realHasInstance(object) {\n return object instanceof this;\n };\n}\nfunction Writable(options) {\n Duplex = Duplex || require('./_stream_duplex');\n\n // Writable ctor is applied to Duplexes, too.\n // `realHasInstance` is necessary because using plain `instanceof`\n // would return false, as no `_writableState` property is attached.\n\n // Trying to use the custom `instanceof` for Writable here will also break the\n // Node.js LazyTransform implementation, which has a non-trivial getter for\n // `_writableState` that would lead to infinite recursion.\n\n // Checking for a Stream.Duplex instance is faster here instead of inside\n // the WritableState constructor, at least with V8 6.5\n var isDuplex = this instanceof Duplex;\n if (!isDuplex && !realHasInstance.call(Writable, this)) return new Writable(options);\n this._writableState = new WritableState(options, this, isDuplex);\n\n // legacy.\n this.writable = true;\n if (options) {\n if (typeof options.write === 'function') this._write = options.write;\n if (typeof options.writev === 'function') this._writev = options.writev;\n if (typeof options.destroy === 'function') this._destroy = options.destroy;\n if (typeof options.final === 'function') this._final = options.final;\n }\n Stream.call(this);\n}\n\n// Otherwise people can pipe Writable streams, which is just wrong.\nWritable.prototype.pipe = function () {\n errorOrDestroy(this, new ERR_STREAM_CANNOT_PIPE());\n};\nfunction writeAfterEnd(stream, cb) {\n var er = new ERR_STREAM_WRITE_AFTER_END();\n // TODO: defer error events consistently everywhere, not just the cb\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n}\n\n// Checks that a user-supplied chunk is valid, especially for the particular\n// mode the stream is in. Currently this means that `null` is never accepted\n// and undefined/non-string values are only allowed in object mode.\nfunction validChunk(stream, state, chunk, cb) {\n var er;\n if (chunk === null) {\n er = new ERR_STREAM_NULL_VALUES();\n } else if (typeof chunk !== 'string' && !state.objectMode) {\n er = new ERR_INVALID_ARG_TYPE('chunk', ['string', 'Buffer'], chunk);\n }\n if (er) {\n errorOrDestroy(stream, er);\n process.nextTick(cb, er);\n return false;\n }\n return true;\n}\nWritable.prototype.write = function (chunk, encoding, cb) {\n var state = this._writableState;\n var ret = false;\n var isBuf = !state.objectMode && _isUint8Array(chunk);\n if (isBuf && !Buffer.isBuffer(chunk)) {\n chunk = _uint8ArrayToBuffer(chunk);\n }\n if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (isBuf) encoding = 'buffer';else if (!encoding) encoding = state.defaultEncoding;\n if (typeof cb !== 'function') cb = nop;\n if (state.ending) writeAfterEnd(this, cb);else if (isBuf || validChunk(this, state, chunk, cb)) {\n state.pendingcb++;\n ret = writeOrBuffer(this, state, isBuf, chunk, encoding, cb);\n }\n return ret;\n};\nWritable.prototype.cork = function () {\n this._writableState.corked++;\n};\nWritable.prototype.uncork = function () {\n var state = this._writableState;\n if (state.corked) {\n state.corked--;\n if (!state.writing && !state.corked && !state.bufferProcessing && state.bufferedRequest) clearBuffer(this, state);\n }\n};\nWritable.prototype.setDefaultEncoding = function setDefaultEncoding(encoding) {\n // node::ParseEncoding() requires lower case.\n if (typeof encoding === 'string') encoding = encoding.toLowerCase();\n if (!(['hex', 'utf8', 'utf-8', 'ascii', 'binary', 'base64', 'ucs2', 'ucs-2', 'utf16le', 'utf-16le', 'raw'].indexOf((encoding + '').toLowerCase()) > -1)) throw new ERR_UNKNOWN_ENCODING(encoding);\n this._writableState.defaultEncoding = encoding;\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableBuffer', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState && this._writableState.getBuffer();\n }\n});\nfunction decodeChunk(state, chunk, encoding) {\n if (!state.objectMode && state.decodeStrings !== false && typeof chunk === 'string') {\n chunk = Buffer.from(chunk, encoding);\n }\n return chunk;\n}\nObject.defineProperty(Writable.prototype, 'writableHighWaterMark', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.highWaterMark;\n }\n});\n\n// if we're already writing something, then just put this\n// in the queue, and wait our turn. Otherwise, call _write\n// If we return false, then we need a drain event, so set that flag.\nfunction writeOrBuffer(stream, state, isBuf, chunk, encoding, cb) {\n if (!isBuf) {\n var newChunk = decodeChunk(state, chunk, encoding);\n if (chunk !== newChunk) {\n isBuf = true;\n encoding = 'buffer';\n chunk = newChunk;\n }\n }\n var len = state.objectMode ? 1 : chunk.length;\n state.length += len;\n var ret = state.length < state.highWaterMark;\n // we must ensure that previous needDrain will not be reset to false.\n if (!ret) state.needDrain = true;\n if (state.writing || state.corked) {\n var last = state.lastBufferedRequest;\n state.lastBufferedRequest = {\n chunk: chunk,\n encoding: encoding,\n isBuf: isBuf,\n callback: cb,\n next: null\n };\n if (last) {\n last.next = state.lastBufferedRequest;\n } else {\n state.bufferedRequest = state.lastBufferedRequest;\n }\n state.bufferedRequestCount += 1;\n } else {\n doWrite(stream, state, false, len, chunk, encoding, cb);\n }\n return ret;\n}\nfunction doWrite(stream, state, writev, len, chunk, encoding, cb) {\n state.writelen = len;\n state.writecb = cb;\n state.writing = true;\n state.sync = true;\n if (state.destroyed) state.onwrite(new ERR_STREAM_DESTROYED('write'));else if (writev) stream._writev(chunk, state.onwrite);else stream._write(chunk, encoding, state.onwrite);\n state.sync = false;\n}\nfunction onwriteError(stream, state, sync, er, cb) {\n --state.pendingcb;\n if (sync) {\n // defer the callback if we are being called synchronously\n // to avoid piling up things on the stack\n process.nextTick(cb, er);\n // this can emit finish, and it will always happen\n // after error\n process.nextTick(finishMaybe, stream, state);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n } else {\n // the caller expect this to happen before if\n // it is async\n cb(er);\n stream._writableState.errorEmitted = true;\n errorOrDestroy(stream, er);\n // this can emit finish, but finish must\n // always follow error\n finishMaybe(stream, state);\n }\n}\nfunction onwriteStateUpdate(state) {\n state.writing = false;\n state.writecb = null;\n state.length -= state.writelen;\n state.writelen = 0;\n}\nfunction onwrite(stream, er) {\n var state = stream._writableState;\n var sync = state.sync;\n var cb = state.writecb;\n if (typeof cb !== 'function') throw new ERR_MULTIPLE_CALLBACK();\n onwriteStateUpdate(state);\n if (er) onwriteError(stream, state, sync, er, cb);else {\n // Check if we're actually ready to finish, but don't emit yet\n var finished = needFinish(state) || stream.destroyed;\n if (!finished && !state.corked && !state.bufferProcessing && state.bufferedRequest) {\n clearBuffer(stream, state);\n }\n if (sync) {\n process.nextTick(afterWrite, stream, state, finished, cb);\n } else {\n afterWrite(stream, state, finished, cb);\n }\n }\n}\nfunction afterWrite(stream, state, finished, cb) {\n if (!finished) onwriteDrain(stream, state);\n state.pendingcb--;\n cb();\n finishMaybe(stream, state);\n}\n\n// Must force callback to be called on nextTick, so that we don't\n// emit 'drain' before the write() consumer gets the 'false' return\n// value, and has a chance to attach a 'drain' listener.\nfunction onwriteDrain(stream, state) {\n if (state.length === 0 && state.needDrain) {\n state.needDrain = false;\n stream.emit('drain');\n }\n}\n\n// if there's something in the buffer waiting, then process it\nfunction clearBuffer(stream, state) {\n state.bufferProcessing = true;\n var entry = state.bufferedRequest;\n if (stream._writev && entry && entry.next) {\n // Fast case, write everything using _writev()\n var l = state.bufferedRequestCount;\n var buffer = new Array(l);\n var holder = state.corkedRequestsFree;\n holder.entry = entry;\n var count = 0;\n var allBuffers = true;\n while (entry) {\n buffer[count] = entry;\n if (!entry.isBuf) allBuffers = false;\n entry = entry.next;\n count += 1;\n }\n buffer.allBuffers = allBuffers;\n doWrite(stream, state, true, state.length, buffer, '', holder.finish);\n\n // doWrite is almost always async, defer these to save a bit of time\n // as the hot path ends with doWrite\n state.pendingcb++;\n state.lastBufferedRequest = null;\n if (holder.next) {\n state.corkedRequestsFree = holder.next;\n holder.next = null;\n } else {\n state.corkedRequestsFree = new CorkedRequest(state);\n }\n state.bufferedRequestCount = 0;\n } else {\n // Slow case, write chunks one-by-one\n while (entry) {\n var chunk = entry.chunk;\n var encoding = entry.encoding;\n var cb = entry.callback;\n var len = state.objectMode ? 1 : chunk.length;\n doWrite(stream, state, false, len, chunk, encoding, cb);\n entry = entry.next;\n state.bufferedRequestCount--;\n // if we didn't call the onwrite immediately, then\n // it means that we need to wait until it does.\n // also, that means that the chunk and cb are currently\n // being processed, so move the buffer counter past them.\n if (state.writing) {\n break;\n }\n }\n if (entry === null) state.lastBufferedRequest = null;\n }\n state.bufferedRequest = entry;\n state.bufferProcessing = false;\n}\nWritable.prototype._write = function (chunk, encoding, cb) {\n cb(new ERR_METHOD_NOT_IMPLEMENTED('_write()'));\n};\nWritable.prototype._writev = null;\nWritable.prototype.end = function (chunk, encoding, cb) {\n var state = this._writableState;\n if (typeof chunk === 'function') {\n cb = chunk;\n chunk = null;\n encoding = null;\n } else if (typeof encoding === 'function') {\n cb = encoding;\n encoding = null;\n }\n if (chunk !== null && chunk !== undefined) this.write(chunk, encoding);\n\n // .end() fully uncorks\n if (state.corked) {\n state.corked = 1;\n this.uncork();\n }\n\n // ignore unnecessary end() calls.\n if (!state.ending) endWritable(this, state, cb);\n return this;\n};\nObject.defineProperty(Writable.prototype, 'writableLength', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n return this._writableState.length;\n }\n});\nfunction needFinish(state) {\n return state.ending && state.length === 0 && state.bufferedRequest === null && !state.finished && !state.writing;\n}\nfunction callFinal(stream, state) {\n stream._final(function (err) {\n state.pendingcb--;\n if (err) {\n errorOrDestroy(stream, err);\n }\n state.prefinished = true;\n stream.emit('prefinish');\n finishMaybe(stream, state);\n });\n}\nfunction prefinish(stream, state) {\n if (!state.prefinished && !state.finalCalled) {\n if (typeof stream._final === 'function' && !state.destroyed) {\n state.pendingcb++;\n state.finalCalled = true;\n process.nextTick(callFinal, stream, state);\n } else {\n state.prefinished = true;\n stream.emit('prefinish');\n }\n }\n}\nfunction finishMaybe(stream, state) {\n var need = needFinish(state);\n if (need) {\n prefinish(stream, state);\n if (state.pendingcb === 0) {\n state.finished = true;\n stream.emit('finish');\n if (state.autoDestroy) {\n // In case of duplex streams we need a way to detect\n // if the readable side is ready for autoDestroy as well\n var rState = stream._readableState;\n if (!rState || rState.autoDestroy && rState.endEmitted) {\n stream.destroy();\n }\n }\n }\n }\n return need;\n}\nfunction endWritable(stream, state, cb) {\n state.ending = true;\n finishMaybe(stream, state);\n if (cb) {\n if (state.finished) process.nextTick(cb);else stream.once('finish', cb);\n }\n state.ended = true;\n stream.writable = false;\n}\nfunction onCorkedFinish(corkReq, state, err) {\n var entry = corkReq.entry;\n corkReq.entry = null;\n while (entry) {\n var cb = entry.callback;\n state.pendingcb--;\n cb(err);\n entry = entry.next;\n }\n\n // reuse the free corkReq.\n state.corkedRequestsFree.next = corkReq;\n}\nObject.defineProperty(Writable.prototype, 'destroyed', {\n // making it explicit this property is not enumerable\n // because otherwise some prototype manipulation in\n // userland will fail\n enumerable: false,\n get: function get() {\n if (this._writableState === undefined) {\n return false;\n }\n return this._writableState.destroyed;\n },\n set: function set(value) {\n // we ignore the value if the stream\n // has not been initialized yet\n if (!this._writableState) {\n return;\n }\n\n // backward compatibility, the user is explicitly\n // managing destroyed\n this._writableState.destroyed = value;\n }\n});\nWritable.prototype.destroy = destroyImpl.destroy;\nWritable.prototype._undestroy = destroyImpl.undestroy;\nWritable.prototype._destroy = function (err, cb) {\n cb(err);\n};","'use strict';\n\nvar _Object$setPrototypeO;\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar finished = require('./end-of-stream');\nvar kLastResolve = Symbol('lastResolve');\nvar kLastReject = Symbol('lastReject');\nvar kError = Symbol('error');\nvar kEnded = Symbol('ended');\nvar kLastPromise = Symbol('lastPromise');\nvar kHandlePromise = Symbol('handlePromise');\nvar kStream = Symbol('stream');\nfunction createIterResult(value, done) {\n return {\n value: value,\n done: done\n };\n}\nfunction readAndResolve(iter) {\n var resolve = iter[kLastResolve];\n if (resolve !== null) {\n var data = iter[kStream].read();\n // we defer if data is null\n // we can be expecting either 'end' or\n // 'error'\n if (data !== null) {\n iter[kLastPromise] = null;\n iter[kLastResolve] = null;\n iter[kLastReject] = null;\n resolve(createIterResult(data, false));\n }\n }\n}\nfunction onReadable(iter) {\n // we wait for the next tick, because it might\n // emit an error with process.nextTick\n process.nextTick(readAndResolve, iter);\n}\nfunction wrapForNext(lastPromise, iter) {\n return function (resolve, reject) {\n lastPromise.then(function () {\n if (iter[kEnded]) {\n resolve(createIterResult(undefined, true));\n return;\n }\n iter[kHandlePromise](resolve, reject);\n }, reject);\n };\n}\nvar AsyncIteratorPrototype = Object.getPrototypeOf(function () {});\nvar ReadableStreamAsyncIteratorPrototype = Object.setPrototypeOf((_Object$setPrototypeO = {\n get stream() {\n return this[kStream];\n },\n next: function next() {\n var _this = this;\n // if we have detected an error in the meanwhile\n // reject straight away\n var error = this[kError];\n if (error !== null) {\n return Promise.reject(error);\n }\n if (this[kEnded]) {\n return Promise.resolve(createIterResult(undefined, true));\n }\n if (this[kStream].destroyed) {\n // We need to defer via nextTick because if .destroy(err) is\n // called, the error will be emitted via nextTick, and\n // we cannot guarantee that there is no error lingering around\n // waiting to be emitted.\n return new Promise(function (resolve, reject) {\n process.nextTick(function () {\n if (_this[kError]) {\n reject(_this[kError]);\n } else {\n resolve(createIterResult(undefined, true));\n }\n });\n });\n }\n\n // if we have multiple next() calls\n // we will wait for the previous Promise to finish\n // this logic is optimized to support for await loops,\n // where next() is only called once at a time\n var lastPromise = this[kLastPromise];\n var promise;\n if (lastPromise) {\n promise = new Promise(wrapForNext(lastPromise, this));\n } else {\n // fast path needed to support multiple this.push()\n // without triggering the next() queue\n var data = this[kStream].read();\n if (data !== null) {\n return Promise.resolve(createIterResult(data, false));\n }\n promise = new Promise(this[kHandlePromise]);\n }\n this[kLastPromise] = promise;\n return promise;\n }\n}, _defineProperty(_Object$setPrototypeO, Symbol.asyncIterator, function () {\n return this;\n}), _defineProperty(_Object$setPrototypeO, \"return\", function _return() {\n var _this2 = this;\n // destroy(err, cb) is a private API\n // we can guarantee we have that here, because we control the\n // Readable class this is attached to\n return new Promise(function (resolve, reject) {\n _this2[kStream].destroy(null, function (err) {\n if (err) {\n reject(err);\n return;\n }\n resolve(createIterResult(undefined, true));\n });\n });\n}), _Object$setPrototypeO), AsyncIteratorPrototype);\nvar createReadableStreamAsyncIterator = function createReadableStreamAsyncIterator(stream) {\n var _Object$create;\n var iterator = Object.create(ReadableStreamAsyncIteratorPrototype, (_Object$create = {}, _defineProperty(_Object$create, kStream, {\n value: stream,\n writable: true\n }), _defineProperty(_Object$create, kLastResolve, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kLastReject, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kError, {\n value: null,\n writable: true\n }), _defineProperty(_Object$create, kEnded, {\n value: stream._readableState.endEmitted,\n writable: true\n }), _defineProperty(_Object$create, kHandlePromise, {\n value: function value(resolve, reject) {\n var data = iterator[kStream].read();\n if (data) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(data, false));\n } else {\n iterator[kLastResolve] = resolve;\n iterator[kLastReject] = reject;\n }\n },\n writable: true\n }), _Object$create));\n iterator[kLastPromise] = null;\n finished(stream, function (err) {\n if (err && err.code !== 'ERR_STREAM_PREMATURE_CLOSE') {\n var reject = iterator[kLastReject];\n // reject if we are waiting for data in the Promise\n // returned by next() and store the error\n if (reject !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n reject(err);\n }\n iterator[kError] = err;\n return;\n }\n var resolve = iterator[kLastResolve];\n if (resolve !== null) {\n iterator[kLastPromise] = null;\n iterator[kLastResolve] = null;\n iterator[kLastReject] = null;\n resolve(createIterResult(undefined, true));\n }\n iterator[kEnded] = true;\n });\n stream.on('readable', onReadable.bind(null, iterator));\n return iterator;\n};\nmodule.exports = createReadableStreamAsyncIterator;","'use strict';\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }\nfunction _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError(\"Cannot call a class as a function\"); } }\nfunction _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if (\"value\" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }\nfunction _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, \"prototype\", { writable: false }); return Constructor; }\nfunction _toPropertyKey(arg) { var key = _toPrimitive(arg, \"string\"); return typeof key === \"symbol\" ? key : String(key); }\nfunction _toPrimitive(input, hint) { if (typeof input !== \"object\" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || \"default\"); if (typeof res !== \"object\") return res; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (hint === \"string\" ? String : Number)(input); }\nvar _require = require('buffer'),\n Buffer = _require.Buffer;\nvar _require2 = require('util'),\n inspect = _require2.inspect;\nvar custom = inspect && inspect.custom || 'inspect';\nfunction copyBuffer(src, target, offset) {\n Buffer.prototype.copy.call(src, target, offset);\n}\nmodule.exports = /*#__PURE__*/function () {\n function BufferList() {\n _classCallCheck(this, BufferList);\n this.head = null;\n this.tail = null;\n this.length = 0;\n }\n _createClass(BufferList, [{\n key: \"push\",\n value: function push(v) {\n var entry = {\n data: v,\n next: null\n };\n if (this.length > 0) this.tail.next = entry;else this.head = entry;\n this.tail = entry;\n ++this.length;\n }\n }, {\n key: \"unshift\",\n value: function unshift(v) {\n var entry = {\n data: v,\n next: this.head\n };\n if (this.length === 0) this.tail = entry;\n this.head = entry;\n ++this.length;\n }\n }, {\n key: \"shift\",\n value: function shift() {\n if (this.length === 0) return;\n var ret = this.head.data;\n if (this.length === 1) this.head = this.tail = null;else this.head = this.head.next;\n --this.length;\n return ret;\n }\n }, {\n key: \"clear\",\n value: function clear() {\n this.head = this.tail = null;\n this.length = 0;\n }\n }, {\n key: \"join\",\n value: function join(s) {\n if (this.length === 0) return '';\n var p = this.head;\n var ret = '' + p.data;\n while (p = p.next) ret += s + p.data;\n return ret;\n }\n }, {\n key: \"concat\",\n value: function concat(n) {\n if (this.length === 0) return Buffer.alloc(0);\n var ret = Buffer.allocUnsafe(n >>> 0);\n var p = this.head;\n var i = 0;\n while (p) {\n copyBuffer(p.data, ret, i);\n i += p.data.length;\n p = p.next;\n }\n return ret;\n }\n\n // Consumes a specified amount of bytes or characters from the buffered data.\n }, {\n key: \"consume\",\n value: function consume(n, hasStrings) {\n var ret;\n if (n < this.head.data.length) {\n // `slice` is the same for buffers and strings.\n ret = this.head.data.slice(0, n);\n this.head.data = this.head.data.slice(n);\n } else if (n === this.head.data.length) {\n // First chunk is a perfect match.\n ret = this.shift();\n } else {\n // Result spans more than one buffer.\n ret = hasStrings ? this._getString(n) : this._getBuffer(n);\n }\n return ret;\n }\n }, {\n key: \"first\",\n value: function first() {\n return this.head.data;\n }\n\n // Consumes a specified amount of characters from the buffered data.\n }, {\n key: \"_getString\",\n value: function _getString(n) {\n var p = this.head;\n var c = 1;\n var ret = p.data;\n n -= ret.length;\n while (p = p.next) {\n var str = p.data;\n var nb = n > str.length ? str.length : n;\n if (nb === str.length) ret += str;else ret += str.slice(0, n);\n n -= nb;\n if (n === 0) {\n if (nb === str.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = str.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Consumes a specified amount of bytes from the buffered data.\n }, {\n key: \"_getBuffer\",\n value: function _getBuffer(n) {\n var ret = Buffer.allocUnsafe(n);\n var p = this.head;\n var c = 1;\n p.data.copy(ret);\n n -= p.data.length;\n while (p = p.next) {\n var buf = p.data;\n var nb = n > buf.length ? buf.length : n;\n buf.copy(ret, ret.length - n, 0, nb);\n n -= nb;\n if (n === 0) {\n if (nb === buf.length) {\n ++c;\n if (p.next) this.head = p.next;else this.head = this.tail = null;\n } else {\n this.head = p;\n p.data = buf.slice(nb);\n }\n break;\n }\n ++c;\n }\n this.length -= c;\n return ret;\n }\n\n // Make sure the linked list only shows the minimal necessary information.\n }, {\n key: custom,\n value: function value(_, options) {\n return inspect(this, _objectSpread(_objectSpread({}, options), {}, {\n // Only inspect one level.\n depth: 0,\n // It should not recurse.\n customInspect: false\n }));\n }\n }]);\n return BufferList;\n}();","'use strict';\n\n// undocumented cb() API, needed for core, not for public API\nfunction destroy(err, cb) {\n var _this = this;\n var readableDestroyed = this._readableState && this._readableState.destroyed;\n var writableDestroyed = this._writableState && this._writableState.destroyed;\n if (readableDestroyed || writableDestroyed) {\n if (cb) {\n cb(err);\n } else if (err) {\n if (!this._writableState) {\n process.nextTick(emitErrorNT, this, err);\n } else if (!this._writableState.errorEmitted) {\n this._writableState.errorEmitted = true;\n process.nextTick(emitErrorNT, this, err);\n }\n }\n return this;\n }\n\n // we set destroyed to true before firing error callbacks in order\n // to make it re-entrance safe in case destroy() is called within callbacks\n\n if (this._readableState) {\n this._readableState.destroyed = true;\n }\n\n // if this is a duplex stream mark the writable part as destroyed as well\n if (this._writableState) {\n this._writableState.destroyed = true;\n }\n this._destroy(err || null, function (err) {\n if (!cb && err) {\n if (!_this._writableState) {\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else if (!_this._writableState.errorEmitted) {\n _this._writableState.errorEmitted = true;\n process.nextTick(emitErrorAndCloseNT, _this, err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n } else if (cb) {\n process.nextTick(emitCloseNT, _this);\n cb(err);\n } else {\n process.nextTick(emitCloseNT, _this);\n }\n });\n return this;\n}\nfunction emitErrorAndCloseNT(self, err) {\n emitErrorNT(self, err);\n emitCloseNT(self);\n}\nfunction emitCloseNT(self) {\n if (self._writableState && !self._writableState.emitClose) return;\n if (self._readableState && !self._readableState.emitClose) return;\n self.emit('close');\n}\nfunction undestroy() {\n if (this._readableState) {\n this._readableState.destroyed = false;\n this._readableState.reading = false;\n this._readableState.ended = false;\n this._readableState.endEmitted = false;\n }\n if (this._writableState) {\n this._writableState.destroyed = false;\n this._writableState.ended = false;\n this._writableState.ending = false;\n this._writableState.finalCalled = false;\n this._writableState.prefinished = false;\n this._writableState.finished = false;\n this._writableState.errorEmitted = false;\n }\n}\nfunction emitErrorNT(self, err) {\n self.emit('error', err);\n}\nfunction errorOrDestroy(stream, err) {\n // We have tests that rely on errors being emitted\n // in the same tick, so changing this is semver major.\n // For now when you opt-in to autoDestroy we allow\n // the error to be emitted nextTick. In a future\n // semver major update we should change the default to this.\n\n var rState = stream._readableState;\n var wState = stream._writableState;\n if (rState && rState.autoDestroy || wState && wState.autoDestroy) stream.destroy(err);else stream.emit('error', err);\n}\nmodule.exports = {\n destroy: destroy,\n undestroy: undestroy,\n errorOrDestroy: errorOrDestroy\n};","// Ported from https://github.com/mafintosh/end-of-stream with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar ERR_STREAM_PREMATURE_CLOSE = require('../../../errors').codes.ERR_STREAM_PREMATURE_CLOSE;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n callback.apply(this, args);\n };\n}\nfunction noop() {}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction eos(stream, opts, callback) {\n if (typeof opts === 'function') return eos(stream, null, opts);\n if (!opts) opts = {};\n callback = once(callback || noop);\n var readable = opts.readable || opts.readable !== false && stream.readable;\n var writable = opts.writable || opts.writable !== false && stream.writable;\n var onlegacyfinish = function onlegacyfinish() {\n if (!stream.writable) onfinish();\n };\n var writableEnded = stream._writableState && stream._writableState.finished;\n var onfinish = function onfinish() {\n writable = false;\n writableEnded = true;\n if (!readable) callback.call(stream);\n };\n var readableEnded = stream._readableState && stream._readableState.endEmitted;\n var onend = function onend() {\n readable = false;\n readableEnded = true;\n if (!writable) callback.call(stream);\n };\n var onerror = function onerror(err) {\n callback.call(stream, err);\n };\n var onclose = function onclose() {\n var err;\n if (readable && !readableEnded) {\n if (!stream._readableState || !stream._readableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n if (writable && !writableEnded) {\n if (!stream._writableState || !stream._writableState.ended) err = new ERR_STREAM_PREMATURE_CLOSE();\n return callback.call(stream, err);\n }\n };\n var onrequest = function onrequest() {\n stream.req.on('finish', onfinish);\n };\n if (isRequest(stream)) {\n stream.on('complete', onfinish);\n stream.on('abort', onclose);\n if (stream.req) onrequest();else stream.on('request', onrequest);\n } else if (writable && !stream._writableState) {\n // legacy streams\n stream.on('end', onlegacyfinish);\n stream.on('close', onlegacyfinish);\n }\n stream.on('end', onend);\n stream.on('finish', onfinish);\n if (opts.error !== false) stream.on('error', onerror);\n stream.on('close', onclose);\n return function () {\n stream.removeListener('complete', onfinish);\n stream.removeListener('abort', onclose);\n stream.removeListener('request', onrequest);\n if (stream.req) stream.req.removeListener('finish', onfinish);\n stream.removeListener('end', onlegacyfinish);\n stream.removeListener('close', onlegacyfinish);\n stream.removeListener('finish', onfinish);\n stream.removeListener('end', onend);\n stream.removeListener('error', onerror);\n stream.removeListener('close', onclose);\n };\n}\nmodule.exports = eos;","module.exports = function () {\n throw new Error('Readable.from is not available in the browser')\n};\n","// Ported from https://github.com/mafintosh/pump with\n// permission from the author, Mathias Buus (@mafintosh).\n\n'use strict';\n\nvar eos;\nfunction once(callback) {\n var called = false;\n return function () {\n if (called) return;\n called = true;\n callback.apply(void 0, arguments);\n };\n}\nvar _require$codes = require('../../../errors').codes,\n ERR_MISSING_ARGS = _require$codes.ERR_MISSING_ARGS,\n ERR_STREAM_DESTROYED = _require$codes.ERR_STREAM_DESTROYED;\nfunction noop(err) {\n // Rethrow the error if it exists to avoid swallowing it\n if (err) throw err;\n}\nfunction isRequest(stream) {\n return stream.setHeader && typeof stream.abort === 'function';\n}\nfunction destroyer(stream, reading, writing, callback) {\n callback = once(callback);\n var closed = false;\n stream.on('close', function () {\n closed = true;\n });\n if (eos === undefined) eos = require('./end-of-stream');\n eos(stream, {\n readable: reading,\n writable: writing\n }, function (err) {\n if (err) return callback(err);\n closed = true;\n callback();\n });\n var destroyed = false;\n return function (err) {\n if (closed) return;\n if (destroyed) return;\n destroyed = true;\n\n // request.destroy just do .end - .abort is what we want\n if (isRequest(stream)) return stream.abort();\n if (typeof stream.destroy === 'function') return stream.destroy();\n callback(err || new ERR_STREAM_DESTROYED('pipe'));\n };\n}\nfunction call(fn) {\n fn();\n}\nfunction pipe(from, to) {\n return from.pipe(to);\n}\nfunction popCallback(streams) {\n if (!streams.length) return noop;\n if (typeof streams[streams.length - 1] !== 'function') return noop;\n return streams.pop();\n}\nfunction pipeline() {\n for (var _len = arguments.length, streams = new Array(_len), _key = 0; _key < _len; _key++) {\n streams[_key] = arguments[_key];\n }\n var callback = popCallback(streams);\n if (Array.isArray(streams[0])) streams = streams[0];\n if (streams.length < 2) {\n throw new ERR_MISSING_ARGS('streams');\n }\n var error;\n var destroys = streams.map(function (stream, i) {\n var reading = i < streams.length - 1;\n var writing = i > 0;\n return destroyer(stream, reading, writing, function (err) {\n if (!error) error = err;\n if (err) destroys.forEach(call);\n if (reading) return;\n destroys.forEach(call);\n callback(error);\n });\n });\n return streams.reduce(pipe);\n}\nmodule.exports = pipeline;","'use strict';\n\nvar ERR_INVALID_OPT_VALUE = require('../../../errors').codes.ERR_INVALID_OPT_VALUE;\nfunction highWaterMarkFrom(options, isDuplex, duplexKey) {\n return options.highWaterMark != null ? options.highWaterMark : isDuplex ? options[duplexKey] : null;\n}\nfunction getHighWaterMark(state, options, duplexKey, isDuplex) {\n var hwm = highWaterMarkFrom(options, isDuplex, duplexKey);\n if (hwm != null) {\n if (!(isFinite(hwm) && Math.floor(hwm) === hwm) || hwm < 0) {\n var name = isDuplex ? duplexKey : 'highWaterMark';\n throw new ERR_INVALID_OPT_VALUE(name, hwm);\n }\n return Math.floor(hwm);\n }\n\n // Default value\n return state.objectMode ? 16 : 16 * 1024;\n}\nmodule.exports = {\n getHighWaterMark: getHighWaterMark\n};","module.exports = require('events').EventEmitter;\n","exports = module.exports = require('./lib/_stream_readable.js');\nexports.Stream = exports;\nexports.Readable = exports;\nexports.Writable = require('./lib/_stream_writable.js');\nexports.Duplex = require('./lib/_stream_duplex.js');\nexports.Transform = require('./lib/_stream_transform.js');\nexports.PassThrough = require('./lib/_stream_passthrough.js');\nexports.finished = require('./lib/internal/streams/end-of-stream.js');\nexports.pipeline = require('./lib/internal/streams/pipeline.js');\n","/*jshint node:true */\n'use strict';\nvar Buffer = require('buffer').Buffer; // browserify\nvar SlowBuffer = require('buffer').SlowBuffer;\n\nmodule.exports = bufferEq;\n\nfunction bufferEq(a, b) {\n\n // shortcutting on type is necessary for correctness\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n return false;\n }\n\n // buffer sizes should be well-known information, so despite this\n // shortcutting, it doesn't leak any information about the *contents* of the\n // buffers.\n if (a.length !== b.length) {\n return false;\n }\n\n var c = 0;\n for (var i = 0; i < a.length; i++) {\n /*jshint bitwise:false */\n c |= a[i] ^ b[i]; // XOR\n }\n return c === 0;\n}\n\nbufferEq.install = function() {\n Buffer.prototype.equal = SlowBuffer.prototype.equal = function equal(that) {\n return bufferEq(this, that);\n };\n};\n\nvar origBufEqual = Buffer.prototype.equal;\nvar origSlowBufEqual = SlowBuffer.prototype.equal;\nbufferEq.restore = function() {\n Buffer.prototype.equal = origBufEqual;\n SlowBuffer.prototype.equal = origSlowBufEqual;\n};\n","module.exports = function xor (a, b) {\n var length = Math.min(a.length, b.length)\n var buffer = new Buffer(length)\n\n for (var i = 0; i < length; ++i) {\n buffer[i] = a[i] ^ b[i]\n }\n\n return buffer\n}\n","/*!\n * The buffer module from node.js, for the browser.\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n/* eslint-disable no-proto */\n\n'use strict'\n\nconst base64 = require('base64-js')\nconst ieee754 = require('ieee754')\nconst customInspectSymbol =\n (typeof Symbol === 'function' && typeof Symbol['for'] === 'function') // eslint-disable-line dot-notation\n ? Symbol['for']('nodejs.util.inspect.custom') // eslint-disable-line dot-notation\n : null\n\nexports.Buffer = Buffer\nexports.SlowBuffer = SlowBuffer\nexports.INSPECT_MAX_BYTES = 50\n\nconst K_MAX_LENGTH = 0x7fffffff\nexports.kMaxLength = K_MAX_LENGTH\n\n/**\n * If `Buffer.TYPED_ARRAY_SUPPORT`:\n * === true Use Uint8Array implementation (fastest)\n * === false Print warning and recommend using `buffer` v4.x which has an Object\n * implementation (most compatible, even IE6)\n *\n * Browsers that support typed arrays are IE 10+, Firefox 4+, Chrome 7+, Safari 5.1+,\n * Opera 11.6+, iOS 4.2+.\n *\n * We report that the browser does not support typed arrays if the are not subclassable\n * using __proto__. Firefox 4-29 lacks support for adding new properties to `Uint8Array`\n * (See: https://bugzilla.mozilla.org/show_bug.cgi?id=695438). IE 10 lacks support\n * for __proto__ and has a buggy typed array implementation.\n */\nBuffer.TYPED_ARRAY_SUPPORT = typedArraySupport()\n\nif (!Buffer.TYPED_ARRAY_SUPPORT && typeof console !== 'undefined' &&\n typeof console.error === 'function') {\n console.error(\n 'This browser lacks typed array (Uint8Array) support which is required by ' +\n '`buffer` v5.x. Use `buffer` v4.x if you require old browser support.'\n )\n}\n\nfunction typedArraySupport () {\n // Can typed array instances can be augmented?\n try {\n const arr = new Uint8Array(1)\n const proto = { foo: function () { return 42 } }\n Object.setPrototypeOf(proto, Uint8Array.prototype)\n Object.setPrototypeOf(arr, proto)\n return arr.foo() === 42\n } catch (e) {\n return false\n }\n}\n\nObject.defineProperty(Buffer.prototype, 'parent', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.buffer\n }\n})\n\nObject.defineProperty(Buffer.prototype, 'offset', {\n enumerable: true,\n get: function () {\n if (!Buffer.isBuffer(this)) return undefined\n return this.byteOffset\n }\n})\n\nfunction createBuffer (length) {\n if (length > K_MAX_LENGTH) {\n throw new RangeError('The value \"' + length + '\" is invalid for option \"size\"')\n }\n // Return an augmented `Uint8Array` instance\n const buf = new Uint8Array(length)\n Object.setPrototypeOf(buf, Buffer.prototype)\n return buf\n}\n\n/**\n * The Buffer constructor returns instances of `Uint8Array` that have their\n * prototype changed to `Buffer.prototype`. Furthermore, `Buffer` is a subclass of\n * `Uint8Array`, so the returned instances will have all the node `Buffer` methods\n * and the `Uint8Array` methods. Square bracket notation works as expected -- it\n * returns a single octet.\n *\n * The `Uint8Array` prototype remains unmodified.\n */\n\nfunction Buffer (arg, encodingOrOffset, length) {\n // Common case.\n if (typeof arg === 'number') {\n if (typeof encodingOrOffset === 'string') {\n throw new TypeError(\n 'The \"string\" argument must be of type string. Received type number'\n )\n }\n return allocUnsafe(arg)\n }\n return from(arg, encodingOrOffset, length)\n}\n\nBuffer.poolSize = 8192 // not used by this implementation\n\nfunction from (value, encodingOrOffset, length) {\n if (typeof value === 'string') {\n return fromString(value, encodingOrOffset)\n }\n\n if (ArrayBuffer.isView(value)) {\n return fromArrayView(value)\n }\n\n if (value == null) {\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n }\n\n if (isInstance(value, ArrayBuffer) ||\n (value && isInstance(value.buffer, ArrayBuffer))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof SharedArrayBuffer !== 'undefined' &&\n (isInstance(value, SharedArrayBuffer) ||\n (value && isInstance(value.buffer, SharedArrayBuffer)))) {\n return fromArrayBuffer(value, encodingOrOffset, length)\n }\n\n if (typeof value === 'number') {\n throw new TypeError(\n 'The \"value\" argument must not be of type number. Received type number'\n )\n }\n\n const valueOf = value.valueOf && value.valueOf()\n if (valueOf != null && valueOf !== value) {\n return Buffer.from(valueOf, encodingOrOffset, length)\n }\n\n const b = fromObject(value)\n if (b) return b\n\n if (typeof Symbol !== 'undefined' && Symbol.toPrimitive != null &&\n typeof value[Symbol.toPrimitive] === 'function') {\n return Buffer.from(value[Symbol.toPrimitive]('string'), encodingOrOffset, length)\n }\n\n throw new TypeError(\n 'The first argument must be one of type string, Buffer, ArrayBuffer, Array, ' +\n 'or Array-like Object. Received type ' + (typeof value)\n )\n}\n\n/**\n * Functionally equivalent to Buffer(arg, encoding) but throws a TypeError\n * if value is a number.\n * Buffer.from(str[, encoding])\n * Buffer.from(array)\n * Buffer.from(buffer)\n * Buffer.from(arrayBuffer[, byteOffset[, length]])\n **/\nBuffer.from = function (value, encodingOrOffset, length) {\n return from(value, encodingOrOffset, length)\n}\n\n// Note: Change prototype *after* Buffer.from is defined to workaround Chrome bug:\n// https://github.com/feross/buffer/pull/148\nObject.setPrototypeOf(Buffer.prototype, Uint8Array.prototype)\nObject.setPrototypeOf(Buffer, Uint8Array)\n\nfunction assertSize (size) {\n if (typeof size !== 'number') {\n throw new TypeError('\"size\" argument must be of type number')\n } else if (size < 0) {\n throw new RangeError('The value \"' + size + '\" is invalid for option \"size\"')\n }\n}\n\nfunction alloc (size, fill, encoding) {\n assertSize(size)\n if (size <= 0) {\n return createBuffer(size)\n }\n if (fill !== undefined) {\n // Only pay attention to encoding if it's a string. This\n // prevents accidentally sending in a number that would\n // be interpreted as a start offset.\n return typeof encoding === 'string'\n ? createBuffer(size).fill(fill, encoding)\n : createBuffer(size).fill(fill)\n }\n return createBuffer(size)\n}\n\n/**\n * Creates a new filled Buffer instance.\n * alloc(size[, fill[, encoding]])\n **/\nBuffer.alloc = function (size, fill, encoding) {\n return alloc(size, fill, encoding)\n}\n\nfunction allocUnsafe (size) {\n assertSize(size)\n return createBuffer(size < 0 ? 0 : checked(size) | 0)\n}\n\n/**\n * Equivalent to Buffer(num), by default creates a non-zero-filled Buffer instance.\n * */\nBuffer.allocUnsafe = function (size) {\n return allocUnsafe(size)\n}\n/**\n * Equivalent to SlowBuffer(num), by default creates a non-zero-filled Buffer instance.\n */\nBuffer.allocUnsafeSlow = function (size) {\n return allocUnsafe(size)\n}\n\nfunction fromString (string, encoding) {\n if (typeof encoding !== 'string' || encoding === '') {\n encoding = 'utf8'\n }\n\n if (!Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n\n const length = byteLength(string, encoding) | 0\n let buf = createBuffer(length)\n\n const actual = buf.write(string, encoding)\n\n if (actual !== length) {\n // Writing a hex string, for example, that contains invalid characters will\n // cause everything after the first invalid character to be ignored. (e.g.\n // 'abxxcd' will be treated as 'ab')\n buf = buf.slice(0, actual)\n }\n\n return buf\n}\n\nfunction fromArrayLike (array) {\n const length = array.length < 0 ? 0 : checked(array.length) | 0\n const buf = createBuffer(length)\n for (let i = 0; i < length; i += 1) {\n buf[i] = array[i] & 255\n }\n return buf\n}\n\nfunction fromArrayView (arrayView) {\n if (isInstance(arrayView, Uint8Array)) {\n const copy = new Uint8Array(arrayView)\n return fromArrayBuffer(copy.buffer, copy.byteOffset, copy.byteLength)\n }\n return fromArrayLike(arrayView)\n}\n\nfunction fromArrayBuffer (array, byteOffset, length) {\n if (byteOffset < 0 || array.byteLength < byteOffset) {\n throw new RangeError('\"offset\" is outside of buffer bounds')\n }\n\n if (array.byteLength < byteOffset + (length || 0)) {\n throw new RangeError('\"length\" is outside of buffer bounds')\n }\n\n let buf\n if (byteOffset === undefined && length === undefined) {\n buf = new Uint8Array(array)\n } else if (length === undefined) {\n buf = new Uint8Array(array, byteOffset)\n } else {\n buf = new Uint8Array(array, byteOffset, length)\n }\n\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(buf, Buffer.prototype)\n\n return buf\n}\n\nfunction fromObject (obj) {\n if (Buffer.isBuffer(obj)) {\n const len = checked(obj.length) | 0\n const buf = createBuffer(len)\n\n if (buf.length === 0) {\n return buf\n }\n\n obj.copy(buf, 0, 0, len)\n return buf\n }\n\n if (obj.length !== undefined) {\n if (typeof obj.length !== 'number' || numberIsNaN(obj.length)) {\n return createBuffer(0)\n }\n return fromArrayLike(obj)\n }\n\n if (obj.type === 'Buffer' && Array.isArray(obj.data)) {\n return fromArrayLike(obj.data)\n }\n}\n\nfunction checked (length) {\n // Note: cannot use `length < K_MAX_LENGTH` here because that fails when\n // length is NaN (which is otherwise coerced to zero.)\n if (length >= K_MAX_LENGTH) {\n throw new RangeError('Attempt to allocate Buffer larger than maximum ' +\n 'size: 0x' + K_MAX_LENGTH.toString(16) + ' bytes')\n }\n return length | 0\n}\n\nfunction SlowBuffer (length) {\n if (+length != length) { // eslint-disable-line eqeqeq\n length = 0\n }\n return Buffer.alloc(+length)\n}\n\nBuffer.isBuffer = function isBuffer (b) {\n return b != null && b._isBuffer === true &&\n b !== Buffer.prototype // so Buffer.isBuffer(Buffer.prototype) will be false\n}\n\nBuffer.compare = function compare (a, b) {\n if (isInstance(a, Uint8Array)) a = Buffer.from(a, a.offset, a.byteLength)\n if (isInstance(b, Uint8Array)) b = Buffer.from(b, b.offset, b.byteLength)\n if (!Buffer.isBuffer(a) || !Buffer.isBuffer(b)) {\n throw new TypeError(\n 'The \"buf1\", \"buf2\" arguments must be one of type Buffer or Uint8Array'\n )\n }\n\n if (a === b) return 0\n\n let x = a.length\n let y = b.length\n\n for (let i = 0, len = Math.min(x, y); i < len; ++i) {\n if (a[i] !== b[i]) {\n x = a[i]\n y = b[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\nBuffer.isEncoding = function isEncoding (encoding) {\n switch (String(encoding).toLowerCase()) {\n case 'hex':\n case 'utf8':\n case 'utf-8':\n case 'ascii':\n case 'latin1':\n case 'binary':\n case 'base64':\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return true\n default:\n return false\n }\n}\n\nBuffer.concat = function concat (list, length) {\n if (!Array.isArray(list)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n }\n\n if (list.length === 0) {\n return Buffer.alloc(0)\n }\n\n let i\n if (length === undefined) {\n length = 0\n for (i = 0; i < list.length; ++i) {\n length += list[i].length\n }\n }\n\n const buffer = Buffer.allocUnsafe(length)\n let pos = 0\n for (i = 0; i < list.length; ++i) {\n let buf = list[i]\n if (isInstance(buf, Uint8Array)) {\n if (pos + buf.length > buffer.length) {\n if (!Buffer.isBuffer(buf)) buf = Buffer.from(buf)\n buf.copy(buffer, pos)\n } else {\n Uint8Array.prototype.set.call(\n buffer,\n buf,\n pos\n )\n }\n } else if (!Buffer.isBuffer(buf)) {\n throw new TypeError('\"list\" argument must be an Array of Buffers')\n } else {\n buf.copy(buffer, pos)\n }\n pos += buf.length\n }\n return buffer\n}\n\nfunction byteLength (string, encoding) {\n if (Buffer.isBuffer(string)) {\n return string.length\n }\n if (ArrayBuffer.isView(string) || isInstance(string, ArrayBuffer)) {\n return string.byteLength\n }\n if (typeof string !== 'string') {\n throw new TypeError(\n 'The \"string\" argument must be one of type string, Buffer, or ArrayBuffer. ' +\n 'Received type ' + typeof string\n )\n }\n\n const len = string.length\n const mustMatch = (arguments.length > 2 && arguments[2] === true)\n if (!mustMatch && len === 0) return 0\n\n // Use a for loop to avoid recursion\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'ascii':\n case 'latin1':\n case 'binary':\n return len\n case 'utf8':\n case 'utf-8':\n return utf8ToBytes(string).length\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return len * 2\n case 'hex':\n return len >>> 1\n case 'base64':\n return base64ToBytes(string).length\n default:\n if (loweredCase) {\n return mustMatch ? -1 : utf8ToBytes(string).length // assume utf8\n }\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\nBuffer.byteLength = byteLength\n\nfunction slowToString (encoding, start, end) {\n let loweredCase = false\n\n // No need to verify that \"this.length <= MAX_UINT32\" since it's a read-only\n // property of a typed array.\n\n // This behaves neither like String nor Uint8Array in that we set start/end\n // to their upper/lower bounds if the value passed is out of range.\n // undefined is handled specially as per ECMA-262 6th Edition,\n // Section 13.3.3.7 Runtime Semantics: KeyedBindingInitialization.\n if (start === undefined || start < 0) {\n start = 0\n }\n // Return early if start > this.length. Done here to prevent potential uint32\n // coercion fail below.\n if (start > this.length) {\n return ''\n }\n\n if (end === undefined || end > this.length) {\n end = this.length\n }\n\n if (end <= 0) {\n return ''\n }\n\n // Force coercion to uint32. This will also coerce falsey/NaN values to 0.\n end >>>= 0\n start >>>= 0\n\n if (end <= start) {\n return ''\n }\n\n if (!encoding) encoding = 'utf8'\n\n while (true) {\n switch (encoding) {\n case 'hex':\n return hexSlice(this, start, end)\n\n case 'utf8':\n case 'utf-8':\n return utf8Slice(this, start, end)\n\n case 'ascii':\n return asciiSlice(this, start, end)\n\n case 'latin1':\n case 'binary':\n return latin1Slice(this, start, end)\n\n case 'base64':\n return base64Slice(this, start, end)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return utf16leSlice(this, start, end)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = (encoding + '').toLowerCase()\n loweredCase = true\n }\n }\n}\n\n// This property is used by `Buffer.isBuffer` (and the `is-buffer` npm package)\n// to detect a Buffer instance. It's not possible to use `instanceof Buffer`\n// reliably in a browserify context because there could be multiple different\n// copies of the 'buffer' package in use. This method works even for Buffer\n// instances that were created from another copy of the `buffer` package.\n// See: https://github.com/feross/buffer/issues/154\nBuffer.prototype._isBuffer = true\n\nfunction swap (b, n, m) {\n const i = b[n]\n b[n] = b[m]\n b[m] = i\n}\n\nBuffer.prototype.swap16 = function swap16 () {\n const len = this.length\n if (len % 2 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 16-bits')\n }\n for (let i = 0; i < len; i += 2) {\n swap(this, i, i + 1)\n }\n return this\n}\n\nBuffer.prototype.swap32 = function swap32 () {\n const len = this.length\n if (len % 4 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 32-bits')\n }\n for (let i = 0; i < len; i += 4) {\n swap(this, i, i + 3)\n swap(this, i + 1, i + 2)\n }\n return this\n}\n\nBuffer.prototype.swap64 = function swap64 () {\n const len = this.length\n if (len % 8 !== 0) {\n throw new RangeError('Buffer size must be a multiple of 64-bits')\n }\n for (let i = 0; i < len; i += 8) {\n swap(this, i, i + 7)\n swap(this, i + 1, i + 6)\n swap(this, i + 2, i + 5)\n swap(this, i + 3, i + 4)\n }\n return this\n}\n\nBuffer.prototype.toString = function toString () {\n const length = this.length\n if (length === 0) return ''\n if (arguments.length === 0) return utf8Slice(this, 0, length)\n return slowToString.apply(this, arguments)\n}\n\nBuffer.prototype.toLocaleString = Buffer.prototype.toString\n\nBuffer.prototype.equals = function equals (b) {\n if (!Buffer.isBuffer(b)) throw new TypeError('Argument must be a Buffer')\n if (this === b) return true\n return Buffer.compare(this, b) === 0\n}\n\nBuffer.prototype.inspect = function inspect () {\n let str = ''\n const max = exports.INSPECT_MAX_BYTES\n str = this.toString('hex', 0, max).replace(/(.{2})/g, '$1 ').trim()\n if (this.length > max) str += ' ... '\n return ''\n}\nif (customInspectSymbol) {\n Buffer.prototype[customInspectSymbol] = Buffer.prototype.inspect\n}\n\nBuffer.prototype.compare = function compare (target, start, end, thisStart, thisEnd) {\n if (isInstance(target, Uint8Array)) {\n target = Buffer.from(target, target.offset, target.byteLength)\n }\n if (!Buffer.isBuffer(target)) {\n throw new TypeError(\n 'The \"target\" argument must be one of type Buffer or Uint8Array. ' +\n 'Received type ' + (typeof target)\n )\n }\n\n if (start === undefined) {\n start = 0\n }\n if (end === undefined) {\n end = target ? target.length : 0\n }\n if (thisStart === undefined) {\n thisStart = 0\n }\n if (thisEnd === undefined) {\n thisEnd = this.length\n }\n\n if (start < 0 || end > target.length || thisStart < 0 || thisEnd > this.length) {\n throw new RangeError('out of range index')\n }\n\n if (thisStart >= thisEnd && start >= end) {\n return 0\n }\n if (thisStart >= thisEnd) {\n return -1\n }\n if (start >= end) {\n return 1\n }\n\n start >>>= 0\n end >>>= 0\n thisStart >>>= 0\n thisEnd >>>= 0\n\n if (this === target) return 0\n\n let x = thisEnd - thisStart\n let y = end - start\n const len = Math.min(x, y)\n\n const thisCopy = this.slice(thisStart, thisEnd)\n const targetCopy = target.slice(start, end)\n\n for (let i = 0; i < len; ++i) {\n if (thisCopy[i] !== targetCopy[i]) {\n x = thisCopy[i]\n y = targetCopy[i]\n break\n }\n }\n\n if (x < y) return -1\n if (y < x) return 1\n return 0\n}\n\n// Finds either the first index of `val` in `buffer` at offset >= `byteOffset`,\n// OR the last index of `val` in `buffer` at offset <= `byteOffset`.\n//\n// Arguments:\n// - buffer - a Buffer to search\n// - val - a string, Buffer, or number\n// - byteOffset - an index into `buffer`; will be clamped to an int32\n// - encoding - an optional encoding, relevant is val is a string\n// - dir - true for indexOf, false for lastIndexOf\nfunction bidirectionalIndexOf (buffer, val, byteOffset, encoding, dir) {\n // Empty buffer means no match\n if (buffer.length === 0) return -1\n\n // Normalize byteOffset\n if (typeof byteOffset === 'string') {\n encoding = byteOffset\n byteOffset = 0\n } else if (byteOffset > 0x7fffffff) {\n byteOffset = 0x7fffffff\n } else if (byteOffset < -0x80000000) {\n byteOffset = -0x80000000\n }\n byteOffset = +byteOffset // Coerce to Number.\n if (numberIsNaN(byteOffset)) {\n // byteOffset: it it's undefined, null, NaN, \"foo\", etc, search whole buffer\n byteOffset = dir ? 0 : (buffer.length - 1)\n }\n\n // Normalize byteOffset: negative offsets start from the end of the buffer\n if (byteOffset < 0) byteOffset = buffer.length + byteOffset\n if (byteOffset >= buffer.length) {\n if (dir) return -1\n else byteOffset = buffer.length - 1\n } else if (byteOffset < 0) {\n if (dir) byteOffset = 0\n else return -1\n }\n\n // Normalize val\n if (typeof val === 'string') {\n val = Buffer.from(val, encoding)\n }\n\n // Finally, search either indexOf (if dir is true) or lastIndexOf\n if (Buffer.isBuffer(val)) {\n // Special case: looking for empty string/buffer always fails\n if (val.length === 0) {\n return -1\n }\n return arrayIndexOf(buffer, val, byteOffset, encoding, dir)\n } else if (typeof val === 'number') {\n val = val & 0xFF // Search for a byte value [0-255]\n if (typeof Uint8Array.prototype.indexOf === 'function') {\n if (dir) {\n return Uint8Array.prototype.indexOf.call(buffer, val, byteOffset)\n } else {\n return Uint8Array.prototype.lastIndexOf.call(buffer, val, byteOffset)\n }\n }\n return arrayIndexOf(buffer, [val], byteOffset, encoding, dir)\n }\n\n throw new TypeError('val must be string, number or Buffer')\n}\n\nfunction arrayIndexOf (arr, val, byteOffset, encoding, dir) {\n let indexSize = 1\n let arrLength = arr.length\n let valLength = val.length\n\n if (encoding !== undefined) {\n encoding = String(encoding).toLowerCase()\n if (encoding === 'ucs2' || encoding === 'ucs-2' ||\n encoding === 'utf16le' || encoding === 'utf-16le') {\n if (arr.length < 2 || val.length < 2) {\n return -1\n }\n indexSize = 2\n arrLength /= 2\n valLength /= 2\n byteOffset /= 2\n }\n }\n\n function read (buf, i) {\n if (indexSize === 1) {\n return buf[i]\n } else {\n return buf.readUInt16BE(i * indexSize)\n }\n }\n\n let i\n if (dir) {\n let foundIndex = -1\n for (i = byteOffset; i < arrLength; i++) {\n if (read(arr, i) === read(val, foundIndex === -1 ? 0 : i - foundIndex)) {\n if (foundIndex === -1) foundIndex = i\n if (i - foundIndex + 1 === valLength) return foundIndex * indexSize\n } else {\n if (foundIndex !== -1) i -= i - foundIndex\n foundIndex = -1\n }\n }\n } else {\n if (byteOffset + valLength > arrLength) byteOffset = arrLength - valLength\n for (i = byteOffset; i >= 0; i--) {\n let found = true\n for (let j = 0; j < valLength; j++) {\n if (read(arr, i + j) !== read(val, j)) {\n found = false\n break\n }\n }\n if (found) return i\n }\n }\n\n return -1\n}\n\nBuffer.prototype.includes = function includes (val, byteOffset, encoding) {\n return this.indexOf(val, byteOffset, encoding) !== -1\n}\n\nBuffer.prototype.indexOf = function indexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, true)\n}\n\nBuffer.prototype.lastIndexOf = function lastIndexOf (val, byteOffset, encoding) {\n return bidirectionalIndexOf(this, val, byteOffset, encoding, false)\n}\n\nfunction hexWrite (buf, string, offset, length) {\n offset = Number(offset) || 0\n const remaining = buf.length - offset\n if (!length) {\n length = remaining\n } else {\n length = Number(length)\n if (length > remaining) {\n length = remaining\n }\n }\n\n const strLen = string.length\n\n if (length > strLen / 2) {\n length = strLen / 2\n }\n let i\n for (i = 0; i < length; ++i) {\n const parsed = parseInt(string.substr(i * 2, 2), 16)\n if (numberIsNaN(parsed)) return i\n buf[offset + i] = parsed\n }\n return i\n}\n\nfunction utf8Write (buf, string, offset, length) {\n return blitBuffer(utf8ToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nfunction asciiWrite (buf, string, offset, length) {\n return blitBuffer(asciiToBytes(string), buf, offset, length)\n}\n\nfunction base64Write (buf, string, offset, length) {\n return blitBuffer(base64ToBytes(string), buf, offset, length)\n}\n\nfunction ucs2Write (buf, string, offset, length) {\n return blitBuffer(utf16leToBytes(string, buf.length - offset), buf, offset, length)\n}\n\nBuffer.prototype.write = function write (string, offset, length, encoding) {\n // Buffer#write(string)\n if (offset === undefined) {\n encoding = 'utf8'\n length = this.length\n offset = 0\n // Buffer#write(string, encoding)\n } else if (length === undefined && typeof offset === 'string') {\n encoding = offset\n length = this.length\n offset = 0\n // Buffer#write(string, offset[, length][, encoding])\n } else if (isFinite(offset)) {\n offset = offset >>> 0\n if (isFinite(length)) {\n length = length >>> 0\n if (encoding === undefined) encoding = 'utf8'\n } else {\n encoding = length\n length = undefined\n }\n } else {\n throw new Error(\n 'Buffer.write(string, encoding, offset[, length]) is no longer supported'\n )\n }\n\n const remaining = this.length - offset\n if (length === undefined || length > remaining) length = remaining\n\n if ((string.length > 0 && (length < 0 || offset < 0)) || offset > this.length) {\n throw new RangeError('Attempt to write outside buffer bounds')\n }\n\n if (!encoding) encoding = 'utf8'\n\n let loweredCase = false\n for (;;) {\n switch (encoding) {\n case 'hex':\n return hexWrite(this, string, offset, length)\n\n case 'utf8':\n case 'utf-8':\n return utf8Write(this, string, offset, length)\n\n case 'ascii':\n case 'latin1':\n case 'binary':\n return asciiWrite(this, string, offset, length)\n\n case 'base64':\n // Warning: maxLength not taken into account in base64Write\n return base64Write(this, string, offset, length)\n\n case 'ucs2':\n case 'ucs-2':\n case 'utf16le':\n case 'utf-16le':\n return ucs2Write(this, string, offset, length)\n\n default:\n if (loweredCase) throw new TypeError('Unknown encoding: ' + encoding)\n encoding = ('' + encoding).toLowerCase()\n loweredCase = true\n }\n }\n}\n\nBuffer.prototype.toJSON = function toJSON () {\n return {\n type: 'Buffer',\n data: Array.prototype.slice.call(this._arr || this, 0)\n }\n}\n\nfunction base64Slice (buf, start, end) {\n if (start === 0 && end === buf.length) {\n return base64.fromByteArray(buf)\n } else {\n return base64.fromByteArray(buf.slice(start, end))\n }\n}\n\nfunction utf8Slice (buf, start, end) {\n end = Math.min(buf.length, end)\n const res = []\n\n let i = start\n while (i < end) {\n const firstByte = buf[i]\n let codePoint = null\n let bytesPerSequence = (firstByte > 0xEF)\n ? 4\n : (firstByte > 0xDF)\n ? 3\n : (firstByte > 0xBF)\n ? 2\n : 1\n\n if (i + bytesPerSequence <= end) {\n let secondByte, thirdByte, fourthByte, tempCodePoint\n\n switch (bytesPerSequence) {\n case 1:\n if (firstByte < 0x80) {\n codePoint = firstByte\n }\n break\n case 2:\n secondByte = buf[i + 1]\n if ((secondByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0x1F) << 0x6 | (secondByte & 0x3F)\n if (tempCodePoint > 0x7F) {\n codePoint = tempCodePoint\n }\n }\n break\n case 3:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0xC | (secondByte & 0x3F) << 0x6 | (thirdByte & 0x3F)\n if (tempCodePoint > 0x7FF && (tempCodePoint < 0xD800 || tempCodePoint > 0xDFFF)) {\n codePoint = tempCodePoint\n }\n }\n break\n case 4:\n secondByte = buf[i + 1]\n thirdByte = buf[i + 2]\n fourthByte = buf[i + 3]\n if ((secondByte & 0xC0) === 0x80 && (thirdByte & 0xC0) === 0x80 && (fourthByte & 0xC0) === 0x80) {\n tempCodePoint = (firstByte & 0xF) << 0x12 | (secondByte & 0x3F) << 0xC | (thirdByte & 0x3F) << 0x6 | (fourthByte & 0x3F)\n if (tempCodePoint > 0xFFFF && tempCodePoint < 0x110000) {\n codePoint = tempCodePoint\n }\n }\n }\n }\n\n if (codePoint === null) {\n // we did not generate a valid codePoint so insert a\n // replacement char (U+FFFD) and advance only 1 byte\n codePoint = 0xFFFD\n bytesPerSequence = 1\n } else if (codePoint > 0xFFFF) {\n // encode to utf16 (surrogate pair dance)\n codePoint -= 0x10000\n res.push(codePoint >>> 10 & 0x3FF | 0xD800)\n codePoint = 0xDC00 | codePoint & 0x3FF\n }\n\n res.push(codePoint)\n i += bytesPerSequence\n }\n\n return decodeCodePointsArray(res)\n}\n\n// Based on http://stackoverflow.com/a/22747272/680742, the browser with\n// the lowest limit is Chrome, with 0x10000 args.\n// We go 1 magnitude less, for safety\nconst MAX_ARGUMENTS_LENGTH = 0x1000\n\nfunction decodeCodePointsArray (codePoints) {\n const len = codePoints.length\n if (len <= MAX_ARGUMENTS_LENGTH) {\n return String.fromCharCode.apply(String, codePoints) // avoid extra slice()\n }\n\n // Decode in chunks to avoid \"call stack size exceeded\".\n let res = ''\n let i = 0\n while (i < len) {\n res += String.fromCharCode.apply(\n String,\n codePoints.slice(i, i += MAX_ARGUMENTS_LENGTH)\n )\n }\n return res\n}\n\nfunction asciiSlice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i] & 0x7F)\n }\n return ret\n}\n\nfunction latin1Slice (buf, start, end) {\n let ret = ''\n end = Math.min(buf.length, end)\n\n for (let i = start; i < end; ++i) {\n ret += String.fromCharCode(buf[i])\n }\n return ret\n}\n\nfunction hexSlice (buf, start, end) {\n const len = buf.length\n\n if (!start || start < 0) start = 0\n if (!end || end < 0 || end > len) end = len\n\n let out = ''\n for (let i = start; i < end; ++i) {\n out += hexSliceLookupTable[buf[i]]\n }\n return out\n}\n\nfunction utf16leSlice (buf, start, end) {\n const bytes = buf.slice(start, end)\n let res = ''\n // If bytes.length is odd, the last 8 bits must be ignored (same as node.js)\n for (let i = 0; i < bytes.length - 1; i += 2) {\n res += String.fromCharCode(bytes[i] + (bytes[i + 1] * 256))\n }\n return res\n}\n\nBuffer.prototype.slice = function slice (start, end) {\n const len = this.length\n start = ~~start\n end = end === undefined ? len : ~~end\n\n if (start < 0) {\n start += len\n if (start < 0) start = 0\n } else if (start > len) {\n start = len\n }\n\n if (end < 0) {\n end += len\n if (end < 0) end = 0\n } else if (end > len) {\n end = len\n }\n\n if (end < start) end = start\n\n const newBuf = this.subarray(start, end)\n // Return an augmented `Uint8Array` instance\n Object.setPrototypeOf(newBuf, Buffer.prototype)\n\n return newBuf\n}\n\n/*\n * Need to make sure that buffer isn't trying to write out of bounds.\n */\nfunction checkOffset (offset, ext, length) {\n if ((offset % 1) !== 0 || offset < 0) throw new RangeError('offset is not uint')\n if (offset + ext > length) throw new RangeError('Trying to access beyond buffer length')\n}\n\nBuffer.prototype.readUintLE =\nBuffer.prototype.readUIntLE = function readUIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUintBE =\nBuffer.prototype.readUIntBE = function readUIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n checkOffset(offset, byteLength, this.length)\n }\n\n let val = this[offset + --byteLength]\n let mul = 1\n while (byteLength > 0 && (mul *= 0x100)) {\n val += this[offset + --byteLength] * mul\n }\n\n return val\n}\n\nBuffer.prototype.readUint8 =\nBuffer.prototype.readUInt8 = function readUInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n return this[offset]\n}\n\nBuffer.prototype.readUint16LE =\nBuffer.prototype.readUInt16LE = function readUInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return this[offset] | (this[offset + 1] << 8)\n}\n\nBuffer.prototype.readUint16BE =\nBuffer.prototype.readUInt16BE = function readUInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n return (this[offset] << 8) | this[offset + 1]\n}\n\nBuffer.prototype.readUint32LE =\nBuffer.prototype.readUInt32LE = function readUInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return ((this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16)) +\n (this[offset + 3] * 0x1000000)\n}\n\nBuffer.prototype.readUint32BE =\nBuffer.prototype.readUInt32BE = function readUInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] * 0x1000000) +\n ((this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n this[offset + 3])\n}\n\nBuffer.prototype.readBigUInt64LE = defineBigIntMethod(function readBigUInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const lo = first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24\n\n const hi = this[++offset] +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n last * 2 ** 24\n\n return BigInt(lo) + (BigInt(hi) << BigInt(32))\n})\n\nBuffer.prototype.readBigUInt64BE = defineBigIntMethod(function readBigUInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const hi = first * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n const lo = this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last\n\n return (BigInt(hi) << BigInt(32)) + BigInt(lo)\n})\n\nBuffer.prototype.readIntLE = function readIntLE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let val = this[offset]\n let mul = 1\n let i = 0\n while (++i < byteLength && (mul *= 0x100)) {\n val += this[offset + i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readIntBE = function readIntBE (offset, byteLength, noAssert) {\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) checkOffset(offset, byteLength, this.length)\n\n let i = byteLength\n let mul = 1\n let val = this[offset + --i]\n while (i > 0 && (mul *= 0x100)) {\n val += this[offset + --i] * mul\n }\n mul *= 0x80\n\n if (val >= mul) val -= Math.pow(2, 8 * byteLength)\n\n return val\n}\n\nBuffer.prototype.readInt8 = function readInt8 (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 1, this.length)\n if (!(this[offset] & 0x80)) return (this[offset])\n return ((0xff - this[offset] + 1) * -1)\n}\n\nBuffer.prototype.readInt16LE = function readInt16LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset] | (this[offset + 1] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt16BE = function readInt16BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 2, this.length)\n const val = this[offset + 1] | (this[offset] << 8)\n return (val & 0x8000) ? val | 0xFFFF0000 : val\n}\n\nBuffer.prototype.readInt32LE = function readInt32LE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset]) |\n (this[offset + 1] << 8) |\n (this[offset + 2] << 16) |\n (this[offset + 3] << 24)\n}\n\nBuffer.prototype.readInt32BE = function readInt32BE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n\n return (this[offset] << 24) |\n (this[offset + 1] << 16) |\n (this[offset + 2] << 8) |\n (this[offset + 3])\n}\n\nBuffer.prototype.readBigInt64LE = defineBigIntMethod(function readBigInt64LE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = this[offset + 4] +\n this[offset + 5] * 2 ** 8 +\n this[offset + 6] * 2 ** 16 +\n (last << 24) // Overflow\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(first +\n this[++offset] * 2 ** 8 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 24)\n})\n\nBuffer.prototype.readBigInt64BE = defineBigIntMethod(function readBigInt64BE (offset) {\n offset = offset >>> 0\n validateNumber(offset, 'offset')\n const first = this[offset]\n const last = this[offset + 7]\n if (first === undefined || last === undefined) {\n boundsError(offset, this.length - 8)\n }\n\n const val = (first << 24) + // Overflow\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n this[++offset]\n\n return (BigInt(val) << BigInt(32)) +\n BigInt(this[++offset] * 2 ** 24 +\n this[++offset] * 2 ** 16 +\n this[++offset] * 2 ** 8 +\n last)\n})\n\nBuffer.prototype.readFloatLE = function readFloatLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, true, 23, 4)\n}\n\nBuffer.prototype.readFloatBE = function readFloatBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 4, this.length)\n return ieee754.read(this, offset, false, 23, 4)\n}\n\nBuffer.prototype.readDoubleLE = function readDoubleLE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, true, 52, 8)\n}\n\nBuffer.prototype.readDoubleBE = function readDoubleBE (offset, noAssert) {\n offset = offset >>> 0\n if (!noAssert) checkOffset(offset, 8, this.length)\n return ieee754.read(this, offset, false, 52, 8)\n}\n\nfunction checkInt (buf, value, offset, ext, max, min) {\n if (!Buffer.isBuffer(buf)) throw new TypeError('\"buffer\" argument must be a Buffer instance')\n if (value > max || value < min) throw new RangeError('\"value\" argument is out of bounds')\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n}\n\nBuffer.prototype.writeUintLE =\nBuffer.prototype.writeUIntLE = function writeUIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let mul = 1\n let i = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUintBE =\nBuffer.prototype.writeUIntBE = function writeUIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n byteLength = byteLength >>> 0\n if (!noAssert) {\n const maxBytes = Math.pow(2, 8 * byteLength) - 1\n checkInt(this, value, offset, byteLength, maxBytes, 0)\n }\n\n let i = byteLength - 1\n let mul = 1\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n this[offset + i] = (value / mul) & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeUint8 =\nBuffer.prototype.writeUInt8 = function writeUInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0xff, 0)\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeUint16LE =\nBuffer.prototype.writeUInt16LE = function writeUInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeUint16BE =\nBuffer.prototype.writeUInt16BE = function writeUInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0xffff, 0)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeUint32LE =\nBuffer.prototype.writeUInt32LE = function writeUInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset + 3] = (value >>> 24)\n this[offset + 2] = (value >>> 16)\n this[offset + 1] = (value >>> 8)\n this[offset] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeUint32BE =\nBuffer.prototype.writeUInt32BE = function writeUInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0xffffffff, 0)\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nfunction wrtBigUInt64LE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n lo = lo >> 8\n buf[offset++] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n hi = hi >> 8\n buf[offset++] = hi\n return offset\n}\n\nfunction wrtBigUInt64BE (buf, value, offset, min, max) {\n checkIntBI(value, min, max, buf, offset, 7)\n\n let lo = Number(value & BigInt(0xffffffff))\n buf[offset + 7] = lo\n lo = lo >> 8\n buf[offset + 6] = lo\n lo = lo >> 8\n buf[offset + 5] = lo\n lo = lo >> 8\n buf[offset + 4] = lo\n let hi = Number(value >> BigInt(32) & BigInt(0xffffffff))\n buf[offset + 3] = hi\n hi = hi >> 8\n buf[offset + 2] = hi\n hi = hi >> 8\n buf[offset + 1] = hi\n hi = hi >> 8\n buf[offset] = hi\n return offset + 8\n}\n\nBuffer.prototype.writeBigUInt64LE = defineBigIntMethod(function writeBigUInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeBigUInt64BE = defineBigIntMethod(function writeBigUInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, BigInt(0), BigInt('0xffffffffffffffff'))\n})\n\nBuffer.prototype.writeIntLE = function writeIntLE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = 0\n let mul = 1\n let sub = 0\n this[offset] = value & 0xFF\n while (++i < byteLength && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i - 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeIntBE = function writeIntBE (value, offset, byteLength, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n const limit = Math.pow(2, (8 * byteLength) - 1)\n\n checkInt(this, value, offset, byteLength, limit - 1, -limit)\n }\n\n let i = byteLength - 1\n let mul = 1\n let sub = 0\n this[offset + i] = value & 0xFF\n while (--i >= 0 && (mul *= 0x100)) {\n if (value < 0 && sub === 0 && this[offset + i + 1] !== 0) {\n sub = 1\n }\n this[offset + i] = ((value / mul) >> 0) - sub & 0xFF\n }\n\n return offset + byteLength\n}\n\nBuffer.prototype.writeInt8 = function writeInt8 (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 1, 0x7f, -0x80)\n if (value < 0) value = 0xff + value + 1\n this[offset] = (value & 0xff)\n return offset + 1\n}\n\nBuffer.prototype.writeInt16LE = function writeInt16LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n return offset + 2\n}\n\nBuffer.prototype.writeInt16BE = function writeInt16BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 2, 0x7fff, -0x8000)\n this[offset] = (value >>> 8)\n this[offset + 1] = (value & 0xff)\n return offset + 2\n}\n\nBuffer.prototype.writeInt32LE = function writeInt32LE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n this[offset] = (value & 0xff)\n this[offset + 1] = (value >>> 8)\n this[offset + 2] = (value >>> 16)\n this[offset + 3] = (value >>> 24)\n return offset + 4\n}\n\nBuffer.prototype.writeInt32BE = function writeInt32BE (value, offset, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) checkInt(this, value, offset, 4, 0x7fffffff, -0x80000000)\n if (value < 0) value = 0xffffffff + value + 1\n this[offset] = (value >>> 24)\n this[offset + 1] = (value >>> 16)\n this[offset + 2] = (value >>> 8)\n this[offset + 3] = (value & 0xff)\n return offset + 4\n}\n\nBuffer.prototype.writeBigInt64LE = defineBigIntMethod(function writeBigInt64LE (value, offset = 0) {\n return wrtBigUInt64LE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nBuffer.prototype.writeBigInt64BE = defineBigIntMethod(function writeBigInt64BE (value, offset = 0) {\n return wrtBigUInt64BE(this, value, offset, -BigInt('0x8000000000000000'), BigInt('0x7fffffffffffffff'))\n})\n\nfunction checkIEEE754 (buf, value, offset, ext, max, min) {\n if (offset + ext > buf.length) throw new RangeError('Index out of range')\n if (offset < 0) throw new RangeError('Index out of range')\n}\n\nfunction writeFloat (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 4, 3.4028234663852886e+38, -3.4028234663852886e+38)\n }\n ieee754.write(buf, value, offset, littleEndian, 23, 4)\n return offset + 4\n}\n\nBuffer.prototype.writeFloatLE = function writeFloatLE (value, offset, noAssert) {\n return writeFloat(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeFloatBE = function writeFloatBE (value, offset, noAssert) {\n return writeFloat(this, value, offset, false, noAssert)\n}\n\nfunction writeDouble (buf, value, offset, littleEndian, noAssert) {\n value = +value\n offset = offset >>> 0\n if (!noAssert) {\n checkIEEE754(buf, value, offset, 8, 1.7976931348623157E+308, -1.7976931348623157E+308)\n }\n ieee754.write(buf, value, offset, littleEndian, 52, 8)\n return offset + 8\n}\n\nBuffer.prototype.writeDoubleLE = function writeDoubleLE (value, offset, noAssert) {\n return writeDouble(this, value, offset, true, noAssert)\n}\n\nBuffer.prototype.writeDoubleBE = function writeDoubleBE (value, offset, noAssert) {\n return writeDouble(this, value, offset, false, noAssert)\n}\n\n// copy(targetBuffer, targetStart=0, sourceStart=0, sourceEnd=buffer.length)\nBuffer.prototype.copy = function copy (target, targetStart, start, end) {\n if (!Buffer.isBuffer(target)) throw new TypeError('argument should be a Buffer')\n if (!start) start = 0\n if (!end && end !== 0) end = this.length\n if (targetStart >= target.length) targetStart = target.length\n if (!targetStart) targetStart = 0\n if (end > 0 && end < start) end = start\n\n // Copy 0 bytes; we're done\n if (end === start) return 0\n if (target.length === 0 || this.length === 0) return 0\n\n // Fatal error conditions\n if (targetStart < 0) {\n throw new RangeError('targetStart out of bounds')\n }\n if (start < 0 || start >= this.length) throw new RangeError('Index out of range')\n if (end < 0) throw new RangeError('sourceEnd out of bounds')\n\n // Are we oob?\n if (end > this.length) end = this.length\n if (target.length - targetStart < end - start) {\n end = target.length - targetStart + start\n }\n\n const len = end - start\n\n if (this === target && typeof Uint8Array.prototype.copyWithin === 'function') {\n // Use built-in when available, missing from IE11\n this.copyWithin(targetStart, start, end)\n } else {\n Uint8Array.prototype.set.call(\n target,\n this.subarray(start, end),\n targetStart\n )\n }\n\n return len\n}\n\n// Usage:\n// buffer.fill(number[, offset[, end]])\n// buffer.fill(buffer[, offset[, end]])\n// buffer.fill(string[, offset[, end]][, encoding])\nBuffer.prototype.fill = function fill (val, start, end, encoding) {\n // Handle string cases:\n if (typeof val === 'string') {\n if (typeof start === 'string') {\n encoding = start\n start = 0\n end = this.length\n } else if (typeof end === 'string') {\n encoding = end\n end = this.length\n }\n if (encoding !== undefined && typeof encoding !== 'string') {\n throw new TypeError('encoding must be a string')\n }\n if (typeof encoding === 'string' && !Buffer.isEncoding(encoding)) {\n throw new TypeError('Unknown encoding: ' + encoding)\n }\n if (val.length === 1) {\n const code = val.charCodeAt(0)\n if ((encoding === 'utf8' && code < 128) ||\n encoding === 'latin1') {\n // Fast path: If `val` fits into a single byte, use that numeric value.\n val = code\n }\n }\n } else if (typeof val === 'number') {\n val = val & 255\n } else if (typeof val === 'boolean') {\n val = Number(val)\n }\n\n // Invalid ranges are not set to a default, so can range check early.\n if (start < 0 || this.length < start || this.length < end) {\n throw new RangeError('Out of range index')\n }\n\n if (end <= start) {\n return this\n }\n\n start = start >>> 0\n end = end === undefined ? this.length : end >>> 0\n\n if (!val) val = 0\n\n let i\n if (typeof val === 'number') {\n for (i = start; i < end; ++i) {\n this[i] = val\n }\n } else {\n const bytes = Buffer.isBuffer(val)\n ? val\n : Buffer.from(val, encoding)\n const len = bytes.length\n if (len === 0) {\n throw new TypeError('The value \"' + val +\n '\" is invalid for argument \"value\"')\n }\n for (i = 0; i < end - start; ++i) {\n this[i + start] = bytes[i % len]\n }\n }\n\n return this\n}\n\n// CUSTOM ERRORS\n// =============\n\n// Simplified versions from Node, changed for Buffer-only usage\nconst errors = {}\nfunction E (sym, getMessage, Base) {\n errors[sym] = class NodeError extends Base {\n constructor () {\n super()\n\n Object.defineProperty(this, 'message', {\n value: getMessage.apply(this, arguments),\n writable: true,\n configurable: true\n })\n\n // Add the error code to the name to include it in the stack trace.\n this.name = `${this.name} [${sym}]`\n // Access the stack to generate the error message including the error code\n // from the name.\n this.stack // eslint-disable-line no-unused-expressions\n // Reset the name to the actual name.\n delete this.name\n }\n\n get code () {\n return sym\n }\n\n set code (value) {\n Object.defineProperty(this, 'code', {\n configurable: true,\n enumerable: true,\n value,\n writable: true\n })\n }\n\n toString () {\n return `${this.name} [${sym}]: ${this.message}`\n }\n }\n}\n\nE('ERR_BUFFER_OUT_OF_BOUNDS',\n function (name) {\n if (name) {\n return `${name} is outside of buffer bounds`\n }\n\n return 'Attempt to access memory outside buffer bounds'\n }, RangeError)\nE('ERR_INVALID_ARG_TYPE',\n function (name, actual) {\n return `The \"${name}\" argument must be of type number. Received type ${typeof actual}`\n }, TypeError)\nE('ERR_OUT_OF_RANGE',\n function (str, range, input) {\n let msg = `The value of \"${str}\" is out of range.`\n let received = input\n if (Number.isInteger(input) && Math.abs(input) > 2 ** 32) {\n received = addNumericalSeparator(String(input))\n } else if (typeof input === 'bigint') {\n received = String(input)\n if (input > BigInt(2) ** BigInt(32) || input < -(BigInt(2) ** BigInt(32))) {\n received = addNumericalSeparator(received)\n }\n received += 'n'\n }\n msg += ` It must be ${range}. Received ${received}`\n return msg\n }, RangeError)\n\nfunction addNumericalSeparator (val) {\n let res = ''\n let i = val.length\n const start = val[0] === '-' ? 1 : 0\n for (; i >= start + 4; i -= 3) {\n res = `_${val.slice(i - 3, i)}${res}`\n }\n return `${val.slice(0, i)}${res}`\n}\n\n// CHECK FUNCTIONS\n// ===============\n\nfunction checkBounds (buf, offset, byteLength) {\n validateNumber(offset, 'offset')\n if (buf[offset] === undefined || buf[offset + byteLength] === undefined) {\n boundsError(offset, buf.length - (byteLength + 1))\n }\n}\n\nfunction checkIntBI (value, min, max, buf, offset, byteLength) {\n if (value > max || value < min) {\n const n = typeof min === 'bigint' ? 'n' : ''\n let range\n if (byteLength > 3) {\n if (min === 0 || min === BigInt(0)) {\n range = `>= 0${n} and < 2${n} ** ${(byteLength + 1) * 8}${n}`\n } else {\n range = `>= -(2${n} ** ${(byteLength + 1) * 8 - 1}${n}) and < 2 ** ` +\n `${(byteLength + 1) * 8 - 1}${n}`\n }\n } else {\n range = `>= ${min}${n} and <= ${max}${n}`\n }\n throw new errors.ERR_OUT_OF_RANGE('value', range, value)\n }\n checkBounds(buf, offset, byteLength)\n}\n\nfunction validateNumber (value, name) {\n if (typeof value !== 'number') {\n throw new errors.ERR_INVALID_ARG_TYPE(name, 'number', value)\n }\n}\n\nfunction boundsError (value, length, type) {\n if (Math.floor(value) !== value) {\n validateNumber(value, type)\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset', 'an integer', value)\n }\n\n if (length < 0) {\n throw new errors.ERR_BUFFER_OUT_OF_BOUNDS()\n }\n\n throw new errors.ERR_OUT_OF_RANGE(type || 'offset',\n `>= ${type ? 1 : 0} and <= ${length}`,\n value)\n}\n\n// HELPER FUNCTIONS\n// ================\n\nconst INVALID_BASE64_RE = /[^+/0-9A-Za-z-_]/g\n\nfunction base64clean (str) {\n // Node takes equal signs as end of the Base64 encoding\n str = str.split('=')[0]\n // Node strips out invalid characters like \\n and \\t from the string, base64-js does not\n str = str.trim().replace(INVALID_BASE64_RE, '')\n // Node converts strings with length < 2 to ''\n if (str.length < 2) return ''\n // Node allows for non-padded base64 strings (missing trailing ===), base64-js does not\n while (str.length % 4 !== 0) {\n str = str + '='\n }\n return str\n}\n\nfunction utf8ToBytes (string, units) {\n units = units || Infinity\n let codePoint\n const length = string.length\n let leadSurrogate = null\n const bytes = []\n\n for (let i = 0; i < length; ++i) {\n codePoint = string.charCodeAt(i)\n\n // is surrogate component\n if (codePoint > 0xD7FF && codePoint < 0xE000) {\n // last char was a lead\n if (!leadSurrogate) {\n // no lead yet\n if (codePoint > 0xDBFF) {\n // unexpected trail\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n } else if (i + 1 === length) {\n // unpaired lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n continue\n }\n\n // valid lead\n leadSurrogate = codePoint\n\n continue\n }\n\n // 2 leads in a row\n if (codePoint < 0xDC00) {\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n leadSurrogate = codePoint\n continue\n }\n\n // valid surrogate pair\n codePoint = (leadSurrogate - 0xD800 << 10 | codePoint - 0xDC00) + 0x10000\n } else if (leadSurrogate) {\n // valid bmp char, but last char was a lead\n if ((units -= 3) > -1) bytes.push(0xEF, 0xBF, 0xBD)\n }\n\n leadSurrogate = null\n\n // encode utf8\n if (codePoint < 0x80) {\n if ((units -= 1) < 0) break\n bytes.push(codePoint)\n } else if (codePoint < 0x800) {\n if ((units -= 2) < 0) break\n bytes.push(\n codePoint >> 0x6 | 0xC0,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x10000) {\n if ((units -= 3) < 0) break\n bytes.push(\n codePoint >> 0xC | 0xE0,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else if (codePoint < 0x110000) {\n if ((units -= 4) < 0) break\n bytes.push(\n codePoint >> 0x12 | 0xF0,\n codePoint >> 0xC & 0x3F | 0x80,\n codePoint >> 0x6 & 0x3F | 0x80,\n codePoint & 0x3F | 0x80\n )\n } else {\n throw new Error('Invalid code point')\n }\n }\n\n return bytes\n}\n\nfunction asciiToBytes (str) {\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n // Node's code seems to be doing this and not & 0x7F..\n byteArray.push(str.charCodeAt(i) & 0xFF)\n }\n return byteArray\n}\n\nfunction utf16leToBytes (str, units) {\n let c, hi, lo\n const byteArray = []\n for (let i = 0; i < str.length; ++i) {\n if ((units -= 2) < 0) break\n\n c = str.charCodeAt(i)\n hi = c >> 8\n lo = c % 256\n byteArray.push(lo)\n byteArray.push(hi)\n }\n\n return byteArray\n}\n\nfunction base64ToBytes (str) {\n return base64.toByteArray(base64clean(str))\n}\n\nfunction blitBuffer (src, dst, offset, length) {\n let i\n for (i = 0; i < length; ++i) {\n if ((i + offset >= dst.length) || (i >= src.length)) break\n dst[i + offset] = src[i]\n }\n return i\n}\n\n// ArrayBuffer or Uint8Array objects from other contexts (i.e. iframes) do not pass\n// the `instanceof` check but they should be treated as of that type.\n// See: https://github.com/feross/buffer/issues/166\nfunction isInstance (obj, type) {\n return obj instanceof type ||\n (obj != null && obj.constructor != null && obj.constructor.name != null &&\n obj.constructor.name === type.name)\n}\nfunction numberIsNaN (obj) {\n // For IE11 support\n return obj !== obj // eslint-disable-line no-self-compare\n}\n\n// Create lookup table for `toString('hex')`\n// See: https://github.com/feross/buffer/issues/219\nconst hexSliceLookupTable = (function () {\n const alphabet = '0123456789abcdef'\n const table = new Array(256)\n for (let i = 0; i < 16; ++i) {\n const i16 = i * 16\n for (let j = 0; j < 16; ++j) {\n table[i16 + j] = alphabet[i] + alphabet[j]\n }\n }\n return table\n})()\n\n// Return not function with Error if BigInt not supported\nfunction defineBigIntMethod (fn) {\n return typeof BigInt === 'undefined' ? BufferBigIntNotDefined : fn\n}\n\nfunction BufferBigIntNotDefined () {\n throw new Error('BigInt not supported')\n}\n","'use strict';\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar callBind = require('./');\n\nvar $indexOf = callBind(GetIntrinsic('String.prototype.indexOf'));\n\nmodule.exports = function callBoundIntrinsic(name, allowMissing) {\n\tvar intrinsic = GetIntrinsic(name, !!allowMissing);\n\tif (typeof intrinsic === 'function' && $indexOf(name, '.prototype.') > -1) {\n\t\treturn callBind(intrinsic);\n\t}\n\treturn intrinsic;\n};\n","'use strict';\n\nvar bind = require('function-bind');\nvar GetIntrinsic = require('get-intrinsic');\nvar setFunctionLength = require('set-function-length');\n\nvar $TypeError = GetIntrinsic('%TypeError%');\nvar $apply = GetIntrinsic('%Function.prototype.apply%');\nvar $call = GetIntrinsic('%Function.prototype.call%');\nvar $reflectApply = GetIntrinsic('%Reflect.apply%', true) || bind.call($call, $apply);\n\nvar $defineProperty = GetIntrinsic('%Object.defineProperty%', true);\nvar $max = GetIntrinsic('%Math.max%');\n\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = null;\n\t}\n}\n\nmodule.exports = function callBind(originalFunction) {\n\tif (typeof originalFunction !== 'function') {\n\t\tthrow new $TypeError('a function is required');\n\t}\n\tvar func = $reflectApply(bind, $call, arguments);\n\treturn setFunctionLength(\n\t\tfunc,\n\t\t1 + $max(0, originalFunction.length - (arguments.length - 1)),\n\t\ttrue\n\t);\n};\n\nvar applyBind = function applyBind() {\n\treturn $reflectApply(bind, $apply, arguments);\n};\n\nif ($defineProperty) {\n\t$defineProperty(module.exports, 'apply', { value: applyBind });\n} else {\n\tmodule.exports.apply = applyBind;\n}\n","var Buffer = require('safe-buffer').Buffer\nvar Transform = require('stream').Transform\nvar StringDecoder = require('string_decoder').StringDecoder\nvar inherits = require('inherits')\n\nfunction CipherBase (hashMode) {\n Transform.call(this)\n this.hashMode = typeof hashMode === 'string'\n if (this.hashMode) {\n this[hashMode] = this._finalOrDigest\n } else {\n this.final = this._finalOrDigest\n }\n if (this._final) {\n this.__final = this._final\n this._final = null\n }\n this._decoder = null\n this._encoding = null\n}\ninherits(CipherBase, Transform)\n\nCipherBase.prototype.update = function (data, inputEnc, outputEnc) {\n if (typeof data === 'string') {\n data = Buffer.from(data, inputEnc)\n }\n\n var outData = this._update(data)\n if (this.hashMode) return this\n\n if (outputEnc) {\n outData = this._toString(outData, outputEnc)\n }\n\n return outData\n}\n\nCipherBase.prototype.setAutoPadding = function () {}\nCipherBase.prototype.getAuthTag = function () {\n throw new Error('trying to get auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAuthTag = function () {\n throw new Error('trying to set auth tag in unsupported state')\n}\n\nCipherBase.prototype.setAAD = function () {\n throw new Error('trying to set aad in unsupported state')\n}\n\nCipherBase.prototype._transform = function (data, _, next) {\n var err\n try {\n if (this.hashMode) {\n this._update(data)\n } else {\n this.push(this._update(data))\n }\n } catch (e) {\n err = e\n } finally {\n next(err)\n }\n}\nCipherBase.prototype._flush = function (done) {\n var err\n try {\n this.push(this.__final())\n } catch (e) {\n err = e\n }\n\n done(err)\n}\nCipherBase.prototype._finalOrDigest = function (outputEnc) {\n var outData = this.__final() || Buffer.alloc(0)\n if (outputEnc) {\n outData = this._toString(outData, outputEnc, true)\n }\n return outData\n}\n\nCipherBase.prototype._toString = function (value, enc, fin) {\n if (!this._decoder) {\n this._decoder = new StringDecoder(enc)\n this._encoding = enc\n }\n\n if (this._encoding !== enc) throw new Error('can\\'t switch encodings')\n\n var out = this._decoder.write(value)\n if (fin) {\n out += this._decoder.end()\n }\n\n return out\n}\n\nmodule.exports = CipherBase\n","function r(e){var t,f,n=\"\";if(\"string\"==typeof e||\"number\"==typeof e)n+=e;else if(\"object\"==typeof e)if(Array.isArray(e))for(t=0;t blocksize) {\n var hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n key = hash.update(key).digest()\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n this._hash = alg === 'rmd160' ? new RIPEMD160() : sha(alg)\n this._hash.update(ipad)\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.update(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._hash.digest()\n var hash = this._alg === 'rmd160' ? new RIPEMD160() : sha(this._alg)\n return hash.update(this._opad).update(h).digest()\n}\n\nmodule.exports = function createHmac (alg, key) {\n alg = alg.toLowerCase()\n if (alg === 'rmd160' || alg === 'ripemd160') {\n return new Hmac('rmd160', key)\n }\n if (alg === 'md5') {\n return new Legacy(md5, key)\n }\n return new Hmac(alg, key)\n}\n","'use strict'\nvar inherits = require('inherits')\nvar Buffer = require('safe-buffer').Buffer\n\nvar Base = require('cipher-base')\n\nvar ZEROS = Buffer.alloc(128)\nvar blocksize = 64\n\nfunction Hmac (alg, key) {\n Base.call(this, 'digest')\n if (typeof key === 'string') {\n key = Buffer.from(key)\n }\n\n this._alg = alg\n this._key = key\n\n if (key.length > blocksize) {\n key = alg(key)\n } else if (key.length < blocksize) {\n key = Buffer.concat([key, ZEROS], blocksize)\n }\n\n var ipad = this._ipad = Buffer.allocUnsafe(blocksize)\n var opad = this._opad = Buffer.allocUnsafe(blocksize)\n\n for (var i = 0; i < blocksize; i++) {\n ipad[i] = key[i] ^ 0x36\n opad[i] = key[i] ^ 0x5C\n }\n\n this._hash = [ipad]\n}\n\ninherits(Hmac, Base)\n\nHmac.prototype._update = function (data) {\n this._hash.push(data)\n}\n\nHmac.prototype._final = function () {\n var h = this._alg(Buffer.concat(this._hash))\n return this._alg(Buffer.concat([this._opad, h]))\n}\nmodule.exports = Hmac\n","'use strict'\n\nexports.randomBytes = exports.rng = exports.pseudoRandomBytes = exports.prng = require('randombytes')\nexports.createHash = exports.Hash = require('create-hash')\nexports.createHmac = exports.Hmac = require('create-hmac')\n\nvar algos = require('browserify-sign/algos')\nvar algoKeys = Object.keys(algos)\nvar hashes = ['sha1', 'sha224', 'sha256', 'sha384', 'sha512', 'md5', 'rmd160'].concat(algoKeys)\nexports.getHashes = function () {\n return hashes\n}\n\nvar p = require('pbkdf2')\nexports.pbkdf2 = p.pbkdf2\nexports.pbkdf2Sync = p.pbkdf2Sync\n\nvar aes = require('browserify-cipher')\n\nexports.Cipher = aes.Cipher\nexports.createCipher = aes.createCipher\nexports.Cipheriv = aes.Cipheriv\nexports.createCipheriv = aes.createCipheriv\nexports.Decipher = aes.Decipher\nexports.createDecipher = aes.createDecipher\nexports.Decipheriv = aes.Decipheriv\nexports.createDecipheriv = aes.createDecipheriv\nexports.getCiphers = aes.getCiphers\nexports.listCiphers = aes.listCiphers\n\nvar dh = require('diffie-hellman')\n\nexports.DiffieHellmanGroup = dh.DiffieHellmanGroup\nexports.createDiffieHellmanGroup = dh.createDiffieHellmanGroup\nexports.getDiffieHellman = dh.getDiffieHellman\nexports.createDiffieHellman = dh.createDiffieHellman\nexports.DiffieHellman = dh.DiffieHellman\n\nvar sign = require('browserify-sign')\n\nexports.createSign = sign.createSign\nexports.Sign = sign.Sign\nexports.createVerify = sign.createVerify\nexports.Verify = sign.Verify\n\nexports.createECDH = require('create-ecdh')\n\nvar publicEncrypt = require('public-encrypt')\n\nexports.publicEncrypt = publicEncrypt.publicEncrypt\nexports.privateEncrypt = publicEncrypt.privateEncrypt\nexports.publicDecrypt = publicEncrypt.publicDecrypt\nexports.privateDecrypt = publicEncrypt.privateDecrypt\n\n// the least I can do is make error messages for the rest of the node.js/crypto api.\n// ;[\n// 'createCredentials'\n// ].forEach(function (name) {\n// exports[name] = function () {\n// throw new Error([\n// 'sorry, ' + name + ' is not implemented yet',\n// 'we accept pull requests',\n// 'https://github.com/crypto-browserify/crypto-browserify'\n// ].join('\\n'))\n// }\n// })\n\nvar rf = require('randomfill')\n\nexports.randomFill = rf.randomFill\nexports.randomFillSync = rf.randomFillSync\n\nexports.createCredentials = function () {\n throw new Error([\n 'sorry, createCredentials is not implemented yet',\n 'we accept pull requests',\n 'https://github.com/crypto-browserify/crypto-browserify'\n ].join('\\n'))\n}\n\nexports.constants = {\n 'DH_CHECK_P_NOT_SAFE_PRIME': 2,\n 'DH_CHECK_P_NOT_PRIME': 1,\n 'DH_UNABLE_TO_CHECK_GENERATOR': 4,\n 'DH_NOT_SUITABLE_GENERATOR': 8,\n 'NPN_ENABLED': 1,\n 'ALPN_ENABLED': 1,\n 'RSA_PKCS1_PADDING': 1,\n 'RSA_SSLV23_PADDING': 2,\n 'RSA_NO_PADDING': 3,\n 'RSA_PKCS1_OAEP_PADDING': 4,\n 'RSA_X931_PADDING': 5,\n 'RSA_PKCS1_PSS_PADDING': 6,\n 'POINT_CONVERSION_COMPRESSED': 2,\n 'POINT_CONVERSION_UNCOMPRESSED': 4,\n 'POINT_CONVERSION_HYBRID': 6\n}\n","\"use strict\";\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\n\nvar dateLongFormatter = function dateLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'P':\n return formatLong.date({\n width: 'short'\n });\n\n case 'PP':\n return formatLong.date({\n width: 'medium'\n });\n\n case 'PPP':\n return formatLong.date({\n width: 'long'\n });\n\n case 'PPPP':\n default:\n return formatLong.date({\n width: 'full'\n });\n }\n};\n\nvar timeLongFormatter = function timeLongFormatter(pattern, formatLong) {\n switch (pattern) {\n case 'p':\n return formatLong.time({\n width: 'short'\n });\n\n case 'pp':\n return formatLong.time({\n width: 'medium'\n });\n\n case 'ppp':\n return formatLong.time({\n width: 'long'\n });\n\n case 'pppp':\n default:\n return formatLong.time({\n width: 'full'\n });\n }\n};\n\nvar dateTimeLongFormatter = function dateTimeLongFormatter(pattern, formatLong) {\n var matchResult = pattern.match(/(P+)(p+)?/) || [];\n var datePattern = matchResult[1];\n var timePattern = matchResult[2];\n\n if (!timePattern) {\n return dateLongFormatter(pattern, formatLong);\n }\n\n var dateTimeFormat;\n\n switch (datePattern) {\n case 'P':\n dateTimeFormat = formatLong.dateTime({\n width: 'short'\n });\n break;\n\n case 'PP':\n dateTimeFormat = formatLong.dateTime({\n width: 'medium'\n });\n break;\n\n case 'PPP':\n dateTimeFormat = formatLong.dateTime({\n width: 'long'\n });\n break;\n\n case 'PPPP':\n default:\n dateTimeFormat = formatLong.dateTime({\n width: 'full'\n });\n break;\n }\n\n return dateTimeFormat.replace('{{date}}', dateLongFormatter(datePattern, formatLong)).replace('{{time}}', timeLongFormatter(timePattern, formatLong));\n};\n\nvar longFormatters = {\n p: timeLongFormatter,\n P: dateTimeLongFormatter\n};\nvar _default = longFormatters;\nexports.default = _default;\nmodule.exports = exports.default;","'use strict';\n\nvar isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction getMergeFunction(key, options) {\n\tif (!options.customMerge) {\n\t\treturn deepmerge\n\t}\n\tvar customMerge = options.customMerge(key);\n\treturn typeof customMerge === 'function' ? customMerge : deepmerge\n}\n\nfunction getEnumerableOwnPropertySymbols(target) {\n\treturn Object.getOwnPropertySymbols\n\t\t? Object.getOwnPropertySymbols(target).filter(function(symbol) {\n\t\t\treturn Object.propertyIsEnumerable.call(target, symbol)\n\t\t})\n\t\t: []\n}\n\nfunction getKeys(target) {\n\treturn Object.keys(target).concat(getEnumerableOwnPropertySymbols(target))\n}\n\nfunction propertyIsOnObject(object, property) {\n\ttry {\n\t\treturn property in object\n\t} catch(_) {\n\t\treturn false\n\t}\n}\n\n// Protects from prototype poisoning and unexpected merging up the prototype chain.\nfunction propertyIsUnsafe(target, key) {\n\treturn propertyIsOnObject(target, key) // Properties are safe to merge if they don't exist in the target yet,\n\t\t&& !(Object.hasOwnProperty.call(target, key) // unsafe if they exist up the prototype chain,\n\t\t\t&& Object.propertyIsEnumerable.call(target, key)) // and also unsafe if they're nonenumerable.\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tgetKeys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tgetKeys(source).forEach(function(key) {\n\t\tif (propertyIsUnsafe(target, key)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (propertyIsOnObject(target, key) && options.isMergeableObject(source[key])) {\n\t\t\tdestination[key] = getMergeFunction(key, options)(target[key], source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\t// cloneUnlessOtherwiseSpecified is added to `options` so that custom arrayMerge()\n\t// implementations can use it. The caller may not replace it.\n\toptions.cloneUnlessOtherwiseSpecified = cloneUnlessOtherwiseSpecified;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nmodule.exports = deepmerge_1;\n","'use strict';\n\nvar hasPropertyDescriptors = require('has-property-descriptors')();\n\nvar GetIntrinsic = require('get-intrinsic');\n\nvar $defineProperty = hasPropertyDescriptors && GetIntrinsic('%Object.defineProperty%', true);\nif ($defineProperty) {\n\ttry {\n\t\t$defineProperty({}, 'a', { value: 1 });\n\t} catch (e) {\n\t\t// IE 8 has a broken defineProperty\n\t\t$defineProperty = false;\n\t}\n}\n\nvar $SyntaxError = GetIntrinsic('%SyntaxError%');\nvar $TypeError = GetIntrinsic('%TypeError%');\n\nvar gopd = require('gopd');\n\n/** @type {(obj: Record, property: PropertyKey, value: unknown, nonEnumerable?: boolean | null, nonWritable?: boolean | null, nonConfigurable?: boolean | null, loose?: boolean) => void} */\nmodule.exports = function defineDataProperty(\n\tobj,\n\tproperty,\n\tvalue\n) {\n\tif (!obj || (typeof obj !== 'object' && typeof obj !== 'function')) {\n\t\tthrow new $TypeError('`obj` must be an object or a function`');\n\t}\n\tif (typeof property !== 'string' && typeof property !== 'symbol') {\n\t\tthrow new $TypeError('`property` must be a string or a symbol`');\n\t}\n\tif (arguments.length > 3 && typeof arguments[3] !== 'boolean' && arguments[3] !== null) {\n\t\tthrow new $TypeError('`nonEnumerable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 4 && typeof arguments[4] !== 'boolean' && arguments[4] !== null) {\n\t\tthrow new $TypeError('`nonWritable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 5 && typeof arguments[5] !== 'boolean' && arguments[5] !== null) {\n\t\tthrow new $TypeError('`nonConfigurable`, if provided, must be a boolean or null');\n\t}\n\tif (arguments.length > 6 && typeof arguments[6] !== 'boolean') {\n\t\tthrow new $TypeError('`loose`, if provided, must be a boolean');\n\t}\n\n\tvar nonEnumerable = arguments.length > 3 ? arguments[3] : null;\n\tvar nonWritable = arguments.length > 4 ? arguments[4] : null;\n\tvar nonConfigurable = arguments.length > 5 ? arguments[5] : null;\n\tvar loose = arguments.length > 6 ? arguments[6] : false;\n\n\t/* @type {false | TypedPropertyDescriptor} */\n\tvar desc = !!gopd && gopd(obj, property);\n\n\tif ($defineProperty) {\n\t\t$defineProperty(obj, property, {\n\t\t\tconfigurable: nonConfigurable === null && desc ? desc.configurable : !nonConfigurable,\n\t\t\tenumerable: nonEnumerable === null && desc ? desc.enumerable : !nonEnumerable,\n\t\t\tvalue: value,\n\t\t\twritable: nonWritable === null && desc ? desc.writable : !nonWritable\n\t\t});\n\t} else if (loose || (!nonEnumerable && !nonWritable && !nonConfigurable)) {\n\t\t// must fall back to [[Set]], and was not explicitly asked to make non-enumerable, non-writable, or non-configurable\n\t\tobj[property] = value; // eslint-disable-line no-param-reassign\n\t} else {\n\t\tthrow new $SyntaxError('This environment does not support defining a property as non-configurable, non-writable, or non-enumerable.');\n\t}\n};\n","'use strict';\n\nexports.utils = require('./des/utils');\nexports.Cipher = require('./des/cipher');\nexports.DES = require('./des/des');\nexports.CBC = require('./des/cbc');\nexports.EDE = require('./des/ede');\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar proto = {};\n\nfunction CBCState(iv) {\n assert.equal(iv.length, 8, 'Invalid IV length');\n\n this.iv = new Array(8);\n for (var i = 0; i < this.iv.length; i++)\n this.iv[i] = iv[i];\n}\n\nfunction instantiate(Base) {\n function CBC(options) {\n Base.call(this, options);\n this._cbcInit();\n }\n inherits(CBC, Base);\n\n var keys = Object.keys(proto);\n for (var i = 0; i < keys.length; i++) {\n var key = keys[i];\n CBC.prototype[key] = proto[key];\n }\n\n CBC.create = function create(options) {\n return new CBC(options);\n };\n\n return CBC;\n}\n\nexports.instantiate = instantiate;\n\nproto._cbcInit = function _cbcInit() {\n var state = new CBCState(this.options.iv);\n this._cbcState = state;\n};\n\nproto._update = function _update(inp, inOff, out, outOff) {\n var state = this._cbcState;\n var superProto = this.constructor.super_.prototype;\n\n var iv = state.iv;\n if (this.type === 'encrypt') {\n for (var i = 0; i < this.blockSize; i++)\n iv[i] ^= inp[inOff + i];\n\n superProto._update.call(this, iv, 0, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = out[outOff + i];\n } else {\n superProto._update.call(this, inp, inOff, out, outOff);\n\n for (var i = 0; i < this.blockSize; i++)\n out[outOff + i] ^= iv[i];\n\n for (var i = 0; i < this.blockSize; i++)\n iv[i] = inp[inOff + i];\n }\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\n\nfunction Cipher(options) {\n this.options = options;\n\n this.type = this.options.type;\n this.blockSize = 8;\n this._init();\n\n this.buffer = new Array(this.blockSize);\n this.bufferOff = 0;\n this.padding = options.padding !== false\n}\nmodule.exports = Cipher;\n\nCipher.prototype._init = function _init() {\n // Might be overrided\n};\n\nCipher.prototype.update = function update(data) {\n if (data.length === 0)\n return [];\n\n if (this.type === 'decrypt')\n return this._updateDecrypt(data);\n else\n return this._updateEncrypt(data);\n};\n\nCipher.prototype._buffer = function _buffer(data, off) {\n // Append data to buffer\n var min = Math.min(this.buffer.length - this.bufferOff, data.length - off);\n for (var i = 0; i < min; i++)\n this.buffer[this.bufferOff + i] = data[off + i];\n this.bufferOff += min;\n\n // Shift next\n return min;\n};\n\nCipher.prototype._flushBuffer = function _flushBuffer(out, off) {\n this._update(this.buffer, 0, out, off);\n this.bufferOff = 0;\n return this.blockSize;\n};\n\nCipher.prototype._updateEncrypt = function _updateEncrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = ((this.bufferOff + data.length) / this.blockSize) | 0;\n var out = new Array(count * this.blockSize);\n\n if (this.bufferOff !== 0) {\n inputOff += this._buffer(data, inputOff);\n\n if (this.bufferOff === this.buffer.length)\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Write blocks\n var max = data.length - ((data.length - inputOff) % this.blockSize);\n for (; inputOff < max; inputOff += this.blockSize) {\n this._update(data, inputOff, out, outputOff);\n outputOff += this.blockSize;\n }\n\n // Queue rest\n for (; inputOff < data.length; inputOff++, this.bufferOff++)\n this.buffer[this.bufferOff] = data[inputOff];\n\n return out;\n};\n\nCipher.prototype._updateDecrypt = function _updateDecrypt(data) {\n var inputOff = 0;\n var outputOff = 0;\n\n var count = Math.ceil((this.bufferOff + data.length) / this.blockSize) - 1;\n var out = new Array(count * this.blockSize);\n\n // TODO(indutny): optimize it, this is far from optimal\n for (; count > 0; count--) {\n inputOff += this._buffer(data, inputOff);\n outputOff += this._flushBuffer(out, outputOff);\n }\n\n // Buffer rest of the input\n inputOff += this._buffer(data, inputOff);\n\n return out;\n};\n\nCipher.prototype.final = function final(buffer) {\n var first;\n if (buffer)\n first = this.update(buffer);\n\n var last;\n if (this.type === 'encrypt')\n last = this._finalEncrypt();\n else\n last = this._finalDecrypt();\n\n if (first)\n return first.concat(last);\n else\n return last;\n};\n\nCipher.prototype._pad = function _pad(buffer, off) {\n if (off === 0)\n return false;\n\n while (off < buffer.length)\n buffer[off++] = 0;\n\n return true;\n};\n\nCipher.prototype._finalEncrypt = function _finalEncrypt() {\n if (!this._pad(this.buffer, this.bufferOff))\n return [];\n\n var out = new Array(this.blockSize);\n this._update(this.buffer, 0, out, 0);\n return out;\n};\n\nCipher.prototype._unpad = function _unpad(buffer) {\n return buffer;\n};\n\nCipher.prototype._finalDecrypt = function _finalDecrypt() {\n assert.equal(this.bufferOff, this.blockSize, 'Not enough data to decrypt');\n var out = new Array(this.blockSize);\n this._flushBuffer(out, 0);\n\n return this._unpad(out);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar utils = require('./utils');\nvar Cipher = require('./cipher');\n\nfunction DESState() {\n this.tmp = new Array(2);\n this.keys = null;\n}\n\nfunction DES(options) {\n Cipher.call(this, options);\n\n var state = new DESState();\n this._desState = state;\n\n this.deriveKeys(state, options.key);\n}\ninherits(DES, Cipher);\nmodule.exports = DES;\n\nDES.create = function create(options) {\n return new DES(options);\n};\n\nvar shiftTable = [\n 1, 1, 2, 2, 2, 2, 2, 2,\n 1, 2, 2, 2, 2, 2, 2, 1\n];\n\nDES.prototype.deriveKeys = function deriveKeys(state, key) {\n state.keys = new Array(16 * 2);\n\n assert.equal(key.length, this.blockSize, 'Invalid key length');\n\n var kL = utils.readUInt32BE(key, 0);\n var kR = utils.readUInt32BE(key, 4);\n\n utils.pc1(kL, kR, state.tmp, 0);\n kL = state.tmp[0];\n kR = state.tmp[1];\n for (var i = 0; i < state.keys.length; i += 2) {\n var shift = shiftTable[i >>> 1];\n kL = utils.r28shl(kL, shift);\n kR = utils.r28shl(kR, shift);\n utils.pc2(kL, kR, state.keys, i);\n }\n};\n\nDES.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._desState;\n\n var l = utils.readUInt32BE(inp, inOff);\n var r = utils.readUInt32BE(inp, inOff + 4);\n\n // Initial Permutation\n utils.ip(l, r, state.tmp, 0);\n l = state.tmp[0];\n r = state.tmp[1];\n\n if (this.type === 'encrypt')\n this._encrypt(state, l, r, state.tmp, 0);\n else\n this._decrypt(state, l, r, state.tmp, 0);\n\n l = state.tmp[0];\n r = state.tmp[1];\n\n utils.writeUInt32BE(out, l, outOff);\n utils.writeUInt32BE(out, r, outOff + 4);\n};\n\nDES.prototype._pad = function _pad(buffer, off) {\n if (this.padding === false) {\n return false;\n }\n\n var value = buffer.length - off;\n for (var i = off; i < buffer.length; i++)\n buffer[i] = value;\n\n return true;\n};\n\nDES.prototype._unpad = function _unpad(buffer) {\n if (this.padding === false) {\n return buffer;\n }\n\n var pad = buffer[buffer.length - 1];\n for (var i = buffer.length - pad; i < buffer.length; i++)\n assert.equal(buffer[i], pad);\n\n return buffer.slice(0, buffer.length - pad);\n};\n\nDES.prototype._encrypt = function _encrypt(state, lStart, rStart, out, off) {\n var l = lStart;\n var r = rStart;\n\n // Apply f() x16 times\n for (var i = 0; i < state.keys.length; i += 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(r, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = r;\n r = (l ^ f) >>> 0;\n l = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(r, l, out, off);\n};\n\nDES.prototype._decrypt = function _decrypt(state, lStart, rStart, out, off) {\n var l = rStart;\n var r = lStart;\n\n // Apply f() x16 times\n for (var i = state.keys.length - 2; i >= 0; i -= 2) {\n var keyL = state.keys[i];\n var keyR = state.keys[i + 1];\n\n // f(r, k)\n utils.expand(l, state.tmp, 0);\n\n keyL ^= state.tmp[0];\n keyR ^= state.tmp[1];\n var s = utils.substitute(keyL, keyR);\n var f = utils.permute(s);\n\n var t = l;\n l = (r ^ f) >>> 0;\n r = t;\n }\n\n // Reverse Initial Permutation\n utils.rip(l, r, out, off);\n};\n","'use strict';\n\nvar assert = require('minimalistic-assert');\nvar inherits = require('inherits');\n\nvar Cipher = require('./cipher');\nvar DES = require('./des');\n\nfunction EDEState(type, key) {\n assert.equal(key.length, 24, 'Invalid key length');\n\n var k1 = key.slice(0, 8);\n var k2 = key.slice(8, 16);\n var k3 = key.slice(16, 24);\n\n if (type === 'encrypt') {\n this.ciphers = [\n DES.create({ type: 'encrypt', key: k1 }),\n DES.create({ type: 'decrypt', key: k2 }),\n DES.create({ type: 'encrypt', key: k3 })\n ];\n } else {\n this.ciphers = [\n DES.create({ type: 'decrypt', key: k3 }),\n DES.create({ type: 'encrypt', key: k2 }),\n DES.create({ type: 'decrypt', key: k1 })\n ];\n }\n}\n\nfunction EDE(options) {\n Cipher.call(this, options);\n\n var state = new EDEState(this.type, this.options.key);\n this._edeState = state;\n}\ninherits(EDE, Cipher);\n\nmodule.exports = EDE;\n\nEDE.create = function create(options) {\n return new EDE(options);\n};\n\nEDE.prototype._update = function _update(inp, inOff, out, outOff) {\n var state = this._edeState;\n\n state.ciphers[0]._update(inp, inOff, out, outOff);\n state.ciphers[1]._update(out, outOff, out, outOff);\n state.ciphers[2]._update(out, outOff, out, outOff);\n};\n\nEDE.prototype._pad = DES.prototype._pad;\nEDE.prototype._unpad = DES.prototype._unpad;\n","'use strict';\n\nexports.readUInt32BE = function readUInt32BE(bytes, off) {\n var res = (bytes[0 + off] << 24) |\n (bytes[1 + off] << 16) |\n (bytes[2 + off] << 8) |\n bytes[3 + off];\n return res >>> 0;\n};\n\nexports.writeUInt32BE = function writeUInt32BE(bytes, value, off) {\n bytes[0 + off] = value >>> 24;\n bytes[1 + off] = (value >>> 16) & 0xff;\n bytes[2 + off] = (value >>> 8) & 0xff;\n bytes[3 + off] = value & 0xff;\n};\n\nexports.ip = function ip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n\n for (var i = 6; i >= 0; i -= 2) {\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n }\n for (var j = 1; j <= 25; j += 8) {\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.rip = function rip(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n for (var i = 0; i < 4; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outL <<= 1;\n outL |= (inR >>> (j + i)) & 1;\n outL <<= 1;\n outL |= (inL >>> (j + i)) & 1;\n }\n }\n for (var i = 4; i < 8; i++) {\n for (var j = 24; j >= 0; j -= 8) {\n outR <<= 1;\n outR |= (inR >>> (j + i)) & 1;\n outR <<= 1;\n outR |= (inL >>> (j + i)) & 1;\n }\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.pc1 = function pc1(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n // 7, 15, 23, 31, 39, 47, 55, 63\n // 6, 14, 22, 30, 39, 47, 55, 63\n // 5, 13, 21, 29, 39, 47, 55, 63\n // 4, 12, 20, 28\n for (var i = 7; i >= 5; i--) {\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outL <<= 1;\n outL |= (inR >> (j + i)) & 1;\n }\n\n // 1, 9, 17, 25, 33, 41, 49, 57\n // 2, 10, 18, 26, 34, 42, 50, 58\n // 3, 11, 19, 27, 35, 43, 51, 59\n // 36, 44, 52, 60\n for (var i = 1; i <= 3; i++) {\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inR >> (j + i)) & 1;\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n }\n for (var j = 0; j <= 24; j += 8) {\n outR <<= 1;\n outR |= (inL >> (j + i)) & 1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.r28shl = function r28shl(num, shift) {\n return ((num << shift) & 0xfffffff) | (num >>> (28 - shift));\n};\n\nvar pc2table = [\n // inL => outL\n 14, 11, 17, 4, 27, 23, 25, 0,\n 13, 22, 7, 18, 5, 9, 16, 24,\n 2, 20, 12, 21, 1, 8, 15, 26,\n\n // inR => outR\n 15, 4, 25, 19, 9, 1, 26, 16,\n 5, 11, 23, 8, 12, 7, 17, 0,\n 22, 3, 10, 14, 6, 20, 27, 24\n];\n\nexports.pc2 = function pc2(inL, inR, out, off) {\n var outL = 0;\n var outR = 0;\n\n var len = pc2table.length >>> 1;\n for (var i = 0; i < len; i++) {\n outL <<= 1;\n outL |= (inL >>> pc2table[i]) & 0x1;\n }\n for (var i = len; i < pc2table.length; i++) {\n outR <<= 1;\n outR |= (inR >>> pc2table[i]) & 0x1;\n }\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nexports.expand = function expand(r, out, off) {\n var outL = 0;\n var outR = 0;\n\n outL = ((r & 1) << 5) | (r >>> 27);\n for (var i = 23; i >= 15; i -= 4) {\n outL <<= 6;\n outL |= (r >>> i) & 0x3f;\n }\n for (var i = 11; i >= 3; i -= 4) {\n outR |= (r >>> i) & 0x3f;\n outR <<= 6;\n }\n outR |= ((r & 0x1f) << 1) | (r >>> 31);\n\n out[off + 0] = outL >>> 0;\n out[off + 1] = outR >>> 0;\n};\n\nvar sTable = [\n 14, 0, 4, 15, 13, 7, 1, 4, 2, 14, 15, 2, 11, 13, 8, 1,\n 3, 10, 10, 6, 6, 12, 12, 11, 5, 9, 9, 5, 0, 3, 7, 8,\n 4, 15, 1, 12, 14, 8, 8, 2, 13, 4, 6, 9, 2, 1, 11, 7,\n 15, 5, 12, 11, 9, 3, 7, 14, 3, 10, 10, 0, 5, 6, 0, 13,\n\n 15, 3, 1, 13, 8, 4, 14, 7, 6, 15, 11, 2, 3, 8, 4, 14,\n 9, 12, 7, 0, 2, 1, 13, 10, 12, 6, 0, 9, 5, 11, 10, 5,\n 0, 13, 14, 8, 7, 10, 11, 1, 10, 3, 4, 15, 13, 4, 1, 2,\n 5, 11, 8, 6, 12, 7, 6, 12, 9, 0, 3, 5, 2, 14, 15, 9,\n\n 10, 13, 0, 7, 9, 0, 14, 9, 6, 3, 3, 4, 15, 6, 5, 10,\n 1, 2, 13, 8, 12, 5, 7, 14, 11, 12, 4, 11, 2, 15, 8, 1,\n 13, 1, 6, 10, 4, 13, 9, 0, 8, 6, 15, 9, 3, 8, 0, 7,\n 11, 4, 1, 15, 2, 14, 12, 3, 5, 11, 10, 5, 14, 2, 7, 12,\n\n 7, 13, 13, 8, 14, 11, 3, 5, 0, 6, 6, 15, 9, 0, 10, 3,\n 1, 4, 2, 7, 8, 2, 5, 12, 11, 1, 12, 10, 4, 14, 15, 9,\n 10, 3, 6, 15, 9, 0, 0, 6, 12, 10, 11, 1, 7, 13, 13, 8,\n 15, 9, 1, 4, 3, 5, 14, 11, 5, 12, 2, 7, 8, 2, 4, 14,\n\n 2, 14, 12, 11, 4, 2, 1, 12, 7, 4, 10, 7, 11, 13, 6, 1,\n 8, 5, 5, 0, 3, 15, 15, 10, 13, 3, 0, 9, 14, 8, 9, 6,\n 4, 11, 2, 8, 1, 12, 11, 7, 10, 1, 13, 14, 7, 2, 8, 13,\n 15, 6, 9, 15, 12, 0, 5, 9, 6, 10, 3, 4, 0, 5, 14, 3,\n\n 12, 10, 1, 15, 10, 4, 15, 2, 9, 7, 2, 12, 6, 9, 8, 5,\n 0, 6, 13, 1, 3, 13, 4, 14, 14, 0, 7, 11, 5, 3, 11, 8,\n 9, 4, 14, 3, 15, 2, 5, 12, 2, 9, 8, 5, 12, 15, 3, 10,\n 7, 11, 0, 14, 4, 1, 10, 7, 1, 6, 13, 0, 11, 8, 6, 13,\n\n 4, 13, 11, 0, 2, 11, 14, 7, 15, 4, 0, 9, 8, 1, 13, 10,\n 3, 14, 12, 3, 9, 5, 7, 12, 5, 2, 10, 15, 6, 8, 1, 6,\n 1, 6, 4, 11, 11, 13, 13, 8, 12, 1, 3, 4, 7, 10, 14, 7,\n 10, 9, 15, 5, 6, 0, 8, 15, 0, 14, 5, 2, 9, 3, 2, 12,\n\n 13, 1, 2, 15, 8, 13, 4, 8, 6, 10, 15, 3, 11, 7, 1, 4,\n 10, 12, 9, 5, 3, 6, 14, 11, 5, 0, 0, 14, 12, 9, 7, 2,\n 7, 2, 11, 1, 4, 14, 1, 7, 9, 4, 12, 10, 14, 8, 2, 13,\n 0, 15, 6, 12, 10, 9, 13, 0, 15, 3, 3, 5, 5, 6, 8, 11\n];\n\nexports.substitute = function substitute(inL, inR) {\n var out = 0;\n for (var i = 0; i < 4; i++) {\n var b = (inL >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n for (var i = 0; i < 4; i++) {\n var b = (inR >>> (18 - i * 6)) & 0x3f;\n var sb = sTable[4 * 0x40 + i * 0x40 + b];\n\n out <<= 4;\n out |= sb;\n }\n return out >>> 0;\n};\n\nvar permuteTable = [\n 16, 25, 12, 11, 3, 20, 4, 15, 31, 17, 9, 6, 27, 14, 1, 22,\n 30, 24, 8, 18, 0, 5, 29, 23, 13, 19, 2, 26, 10, 21, 28, 7\n];\n\nexports.permute = function permute(num) {\n var out = 0;\n for (var i = 0; i < permuteTable.length; i++) {\n out <<= 1;\n out |= (num >>> permuteTable[i]) & 0x1;\n }\n return out >>> 0;\n};\n\nexports.padSplit = function padSplit(num, size, group) {\n var str = num.toString(2);\n while (str.length < size)\n str = '0' + str;\n\n var out = [];\n for (var i = 0; i < size; i += group)\n out.push(str.slice(i, i + group));\n return out.join(' ');\n};\n","var generatePrime = require('./lib/generatePrime')\nvar primes = require('./lib/primes.json')\n\nvar DH = require('./lib/dh')\n\nfunction getDiffieHellman (mod) {\n var prime = new Buffer(primes[mod].prime, 'hex')\n var gen = new Buffer(primes[mod].gen, 'hex')\n\n return new DH(prime, gen)\n}\n\nvar ENCODINGS = {\n 'binary': true, 'hex': true, 'base64': true\n}\n\nfunction createDiffieHellman (prime, enc, generator, genc) {\n if (Buffer.isBuffer(enc) || ENCODINGS[enc] === undefined) {\n return createDiffieHellman(prime, 'binary', enc, generator)\n }\n\n enc = enc || 'binary'\n genc = genc || 'binary'\n generator = generator || new Buffer([2])\n\n if (!Buffer.isBuffer(generator)) {\n generator = new Buffer(generator, genc)\n }\n\n if (typeof prime === 'number') {\n return new DH(generatePrime(prime, generator), generator, true)\n }\n\n if (!Buffer.isBuffer(prime)) {\n prime = new Buffer(prime, enc)\n }\n\n return new DH(prime, generator, true)\n}\n\nexports.DiffieHellmanGroup = exports.createDiffieHellmanGroup = exports.getDiffieHellman = getDiffieHellman\nexports.createDiffieHellman = exports.DiffieHellman = createDiffieHellman\n","var BN = require('bn.js');\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar TWENTYFOUR = new BN(24);\nvar ELEVEN = new BN(11);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar primes = require('./generatePrime');\nvar randomBytes = require('randombytes');\nmodule.exports = DH;\n\nfunction setPublicKey(pub, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(pub)) {\n pub = new Buffer(pub, enc);\n }\n this._pub = new BN(pub);\n return this;\n}\n\nfunction setPrivateKey(priv, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(priv)) {\n priv = new Buffer(priv, enc);\n }\n this._priv = new BN(priv);\n return this;\n}\n\nvar primeCache = {};\nfunction checkPrime(prime, generator) {\n var gen = generator.toString('hex');\n var hex = [gen, prime.toString(16)].join('_');\n if (hex in primeCache) {\n return primeCache[hex];\n }\n var error = 0;\n\n if (prime.isEven() ||\n !primes.simpleSieve ||\n !primes.fermatTest(prime) ||\n !millerRabin.test(prime)) {\n //not a prime so +1\n error += 1;\n\n if (gen === '02' || gen === '05') {\n // we'd be able to check the generator\n // it would fail so +8\n error += 8;\n } else {\n //we wouldn't be able to test the generator\n // so +4\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n }\n if (!millerRabin.test(prime.shrn(1))) {\n //not a safe prime\n error += 2;\n }\n var rem;\n switch (gen) {\n case '02':\n if (prime.mod(TWENTYFOUR).cmp(ELEVEN)) {\n // unsuidable generator\n error += 8;\n }\n break;\n case '05':\n rem = prime.mod(TEN);\n if (rem.cmp(THREE) && rem.cmp(SEVEN)) {\n // prime mod 10 needs to equal 3 or 7\n error += 8;\n }\n break;\n default:\n error += 4;\n }\n primeCache[hex] = error;\n return error;\n}\n\nfunction DH(prime, generator, malleable) {\n this.setGenerator(generator);\n this.__prime = new BN(prime);\n this._prime = BN.mont(this.__prime);\n this._primeLen = prime.length;\n this._pub = undefined;\n this._priv = undefined;\n this._primeCode = undefined;\n if (malleable) {\n this.setPublicKey = setPublicKey;\n this.setPrivateKey = setPrivateKey;\n } else {\n this._primeCode = 8;\n }\n}\nObject.defineProperty(DH.prototype, 'verifyError', {\n enumerable: true,\n get: function () {\n if (typeof this._primeCode !== 'number') {\n this._primeCode = checkPrime(this.__prime, this.__gen);\n }\n return this._primeCode;\n }\n});\nDH.prototype.generateKeys = function () {\n if (!this._priv) {\n this._priv = new BN(randomBytes(this._primeLen));\n }\n this._pub = this._gen.toRed(this._prime).redPow(this._priv).fromRed();\n return this.getPublicKey();\n};\n\nDH.prototype.computeSecret = function (other) {\n other = new BN(other);\n other = other.toRed(this._prime);\n var secret = other.redPow(this._priv).fromRed();\n var out = new Buffer(secret.toArray());\n var prime = this.getPrime();\n if (out.length < prime.length) {\n var front = new Buffer(prime.length - out.length);\n front.fill(0);\n out = Buffer.concat([front, out]);\n }\n return out;\n};\n\nDH.prototype.getPublicKey = function getPublicKey(enc) {\n return formatReturnValue(this._pub, enc);\n};\n\nDH.prototype.getPrivateKey = function getPrivateKey(enc) {\n return formatReturnValue(this._priv, enc);\n};\n\nDH.prototype.getPrime = function (enc) {\n return formatReturnValue(this.__prime, enc);\n};\n\nDH.prototype.getGenerator = function (enc) {\n return formatReturnValue(this._gen, enc);\n};\n\nDH.prototype.setGenerator = function (gen, enc) {\n enc = enc || 'utf8';\n if (!Buffer.isBuffer(gen)) {\n gen = new Buffer(gen, enc);\n }\n this.__gen = gen;\n this._gen = new BN(gen);\n return this;\n};\n\nfunction formatReturnValue(bn, enc) {\n var buf = new Buffer(bn.toArray());\n if (!enc) {\n return buf;\n } else {\n return buf.toString(enc);\n }\n}\n","var randomBytes = require('randombytes');\nmodule.exports = findPrime;\nfindPrime.simpleSieve = simpleSieve;\nfindPrime.fermatTest = fermatTest;\nvar BN = require('bn.js');\nvar TWENTYFOUR = new BN(24);\nvar MillerRabin = require('miller-rabin');\nvar millerRabin = new MillerRabin();\nvar ONE = new BN(1);\nvar TWO = new BN(2);\nvar FIVE = new BN(5);\nvar SIXTEEN = new BN(16);\nvar EIGHT = new BN(8);\nvar TEN = new BN(10);\nvar THREE = new BN(3);\nvar SEVEN = new BN(7);\nvar ELEVEN = new BN(11);\nvar FOUR = new BN(4);\nvar TWELVE = new BN(12);\nvar primes = null;\n\nfunction _getPrimes() {\n if (primes !== null)\n return primes;\n\n var limit = 0x100000;\n var res = [];\n res[0] = 2;\n for (var i = 1, k = 3; k < limit; k += 2) {\n var sqrt = Math.ceil(Math.sqrt(k));\n for (var j = 0; j < i && res[j] <= sqrt; j++)\n if (k % res[j] === 0)\n break;\n\n if (i !== j && res[j] <= sqrt)\n continue;\n\n res[i++] = k;\n }\n primes = res;\n return res;\n}\n\nfunction simpleSieve(p) {\n var primes = _getPrimes();\n\n for (var i = 0; i < primes.length; i++)\n if (p.modn(primes[i]) === 0) {\n if (p.cmpn(primes[i]) === 0) {\n return true;\n } else {\n return false;\n }\n }\n\n return true;\n}\n\nfunction fermatTest(p) {\n var red = BN.mont(p);\n return TWO.toRed(red).redPow(p.subn(1)).fromRed().cmpn(1) === 0;\n}\n\nfunction findPrime(bits, gen) {\n if (bits < 16) {\n // this is what openssl does\n if (gen === 2 || gen === 5) {\n return new BN([0x8c, 0x7b]);\n } else {\n return new BN([0x8c, 0x27]);\n }\n }\n gen = new BN(gen);\n\n var num, n2;\n\n while (true) {\n num = new BN(randomBytes(Math.ceil(bits / 8)));\n while (num.bitLength() > bits) {\n num.ishrn(1);\n }\n if (num.isEven()) {\n num.iadd(ONE);\n }\n if (!num.testn(1)) {\n num.iadd(TWO);\n }\n if (!gen.cmp(TWO)) {\n while (num.mod(TWENTYFOUR).cmp(ELEVEN)) {\n num.iadd(FOUR);\n }\n } else if (!gen.cmp(FIVE)) {\n while (num.mod(TEN).cmp(THREE)) {\n num.iadd(FOUR);\n }\n }\n n2 = num.shrn(1);\n if (simpleSieve(n2) && simpleSieve(num) &&\n fermatTest(n2) && fermatTest(num) &&\n millerRabin.test(n2) && millerRabin.test(num)) {\n return num;\n }\n }\n\n}\n","'use strict';\n\nvar Buffer = require('safe-buffer').Buffer;\n\nvar getParamBytesForAlg = require('./param-bytes-for-alg');\n\nvar MAX_OCTET = 0x80,\n\tCLASS_UNIVERSAL = 0,\n\tPRIMITIVE_BIT = 0x20,\n\tTAG_SEQ = 0x10,\n\tTAG_INT = 0x02,\n\tENCODED_TAG_SEQ = (TAG_SEQ | PRIMITIVE_BIT) | (CLASS_UNIVERSAL << 6),\n\tENCODED_TAG_INT = TAG_INT | (CLASS_UNIVERSAL << 6);\n\nfunction base64Url(base64) {\n\treturn base64\n\t\t.replace(/=/g, '')\n\t\t.replace(/\\+/g, '-')\n\t\t.replace(/\\//g, '_');\n}\n\nfunction signatureAsBuffer(signature) {\n\tif (Buffer.isBuffer(signature)) {\n\t\treturn signature;\n\t} else if ('string' === typeof signature) {\n\t\treturn Buffer.from(signature, 'base64');\n\t}\n\n\tthrow new TypeError('ECDSA signature must be a Base64 string or a Buffer');\n}\n\nfunction derToJose(signature, alg) {\n\tsignature = signatureAsBuffer(signature);\n\tvar paramBytes = getParamBytesForAlg(alg);\n\n\t// the DER encoded param should at most be the param size, plus a padding\n\t// zero, since due to being a signed integer\n\tvar maxEncodedParamLength = paramBytes + 1;\n\n\tvar inputLength = signature.length;\n\n\tvar offset = 0;\n\tif (signature[offset++] !== ENCODED_TAG_SEQ) {\n\t\tthrow new Error('Could not find expected \"seq\"');\n\t}\n\n\tvar seqLength = signature[offset++];\n\tif (seqLength === (MAX_OCTET | 1)) {\n\t\tseqLength = signature[offset++];\n\t}\n\n\tif (inputLength - offset < seqLength) {\n\t\tthrow new Error('\"seq\" specified length of \"' + seqLength + '\", only \"' + (inputLength - offset) + '\" remaining');\n\t}\n\n\tif (signature[offset++] !== ENCODED_TAG_INT) {\n\t\tthrow new Error('Could not find expected \"int\" for \"r\"');\n\t}\n\n\tvar rLength = signature[offset++];\n\n\tif (inputLength - offset - 2 < rLength) {\n\t\tthrow new Error('\"r\" specified length of \"' + rLength + '\", only \"' + (inputLength - offset - 2) + '\" available');\n\t}\n\n\tif (maxEncodedParamLength < rLength) {\n\t\tthrow new Error('\"r\" specified length of \"' + rLength + '\", max of \"' + maxEncodedParamLength + '\" is acceptable');\n\t}\n\n\tvar rOffset = offset;\n\toffset += rLength;\n\n\tif (signature[offset++] !== ENCODED_TAG_INT) {\n\t\tthrow new Error('Could not find expected \"int\" for \"s\"');\n\t}\n\n\tvar sLength = signature[offset++];\n\n\tif (inputLength - offset !== sLength) {\n\t\tthrow new Error('\"s\" specified length of \"' + sLength + '\", expected \"' + (inputLength - offset) + '\"');\n\t}\n\n\tif (maxEncodedParamLength < sLength) {\n\t\tthrow new Error('\"s\" specified length of \"' + sLength + '\", max of \"' + maxEncodedParamLength + '\" is acceptable');\n\t}\n\n\tvar sOffset = offset;\n\toffset += sLength;\n\n\tif (offset !== inputLength) {\n\t\tthrow new Error('Expected to consume entire buffer, but \"' + (inputLength - offset) + '\" bytes remain');\n\t}\n\n\tvar rPadding = paramBytes - rLength,\n\t\tsPadding = paramBytes - sLength;\n\n\tvar dst = Buffer.allocUnsafe(rPadding + rLength + sPadding + sLength);\n\n\tfor (offset = 0; offset < rPadding; ++offset) {\n\t\tdst[offset] = 0;\n\t}\n\tsignature.copy(dst, offset, rOffset + Math.max(-rPadding, 0), rOffset + rLength);\n\n\toffset = paramBytes;\n\n\tfor (var o = offset; offset < o + sPadding; ++offset) {\n\t\tdst[offset] = 0;\n\t}\n\tsignature.copy(dst, offset, sOffset + Math.max(-sPadding, 0), sOffset + sLength);\n\n\tdst = dst.toString('base64');\n\tdst = base64Url(dst);\n\n\treturn dst;\n}\n\nfunction countPadding(buf, start, stop) {\n\tvar padding = 0;\n\twhile (start + padding < stop && buf[start + padding] === 0) {\n\t\t++padding;\n\t}\n\n\tvar needsSign = buf[start + padding] >= MAX_OCTET;\n\tif (needsSign) {\n\t\t--padding;\n\t}\n\n\treturn padding;\n}\n\nfunction joseToDer(signature, alg) {\n\tsignature = signatureAsBuffer(signature);\n\tvar paramBytes = getParamBytesForAlg(alg);\n\n\tvar signatureBytes = signature.length;\n\tif (signatureBytes !== paramBytes * 2) {\n\t\tthrow new TypeError('\"' + alg + '\" signatures must be \"' + paramBytes * 2 + '\" bytes, saw \"' + signatureBytes + '\"');\n\t}\n\n\tvar rPadding = countPadding(signature, 0, paramBytes);\n\tvar sPadding = countPadding(signature, paramBytes, signature.length);\n\tvar rLength = paramBytes - rPadding;\n\tvar sLength = paramBytes - sPadding;\n\n\tvar rsBytes = 1 + 1 + rLength + 1 + 1 + sLength;\n\n\tvar shortLength = rsBytes < MAX_OCTET;\n\n\tvar dst = Buffer.allocUnsafe((shortLength ? 2 : 3) + rsBytes);\n\n\tvar offset = 0;\n\tdst[offset++] = ENCODED_TAG_SEQ;\n\tif (shortLength) {\n\t\t// Bit 8 has value \"0\"\n\t\t// bits 7-1 give the length.\n\t\tdst[offset++] = rsBytes;\n\t} else {\n\t\t// Bit 8 of first octet has value \"1\"\n\t\t// bits 7-1 give the number of additional length octets.\n\t\tdst[offset++] = MAX_OCTET\t| 1;\n\t\t// length, base 256\n\t\tdst[offset++] = rsBytes & 0xff;\n\t}\n\tdst[offset++] = ENCODED_TAG_INT;\n\tdst[offset++] = rLength;\n\tif (rPadding < 0) {\n\t\tdst[offset++] = 0;\n\t\toffset += signature.copy(dst, offset, 0, paramBytes);\n\t} else {\n\t\toffset += signature.copy(dst, offset, rPadding, paramBytes);\n\t}\n\tdst[offset++] = ENCODED_TAG_INT;\n\tdst[offset++] = sLength;\n\tif (sPadding < 0) {\n\t\tdst[offset++] = 0;\n\t\tsignature.copy(dst, offset, paramBytes);\n\t} else {\n\t\tsignature.copy(dst, offset, paramBytes + sPadding);\n\t}\n\n\treturn dst;\n}\n\nmodule.exports = {\n\tderToJose: derToJose,\n\tjoseToDer: joseToDer\n};\n","'use strict';\n\nfunction getParamSize(keySize) {\n\tvar result = ((keySize / 8) | 0) + (keySize % 8 === 0 ? 0 : 1);\n\treturn result;\n}\n\nvar paramBytesForAlg = {\n\tES256: getParamSize(256),\n\tES384: getParamSize(384),\n\tES512: getParamSize(521)\n};\n\nfunction getParamBytesForAlg(alg) {\n\tvar paramBytes = paramBytesForAlg[alg];\n\tif (paramBytes) {\n\t\treturn paramBytes;\n\t}\n\n\tthrow new Error('Unknown algorithm \"' + alg + '\"');\n}\n\nmodule.exports = getParamBytesForAlg;\n","'use strict';\n\nvar elliptic = exports;\n\nelliptic.version = require('../package.json').version;\nelliptic.utils = require('./elliptic/utils');\nelliptic.rand = require('brorand');\nelliptic.curve = require('./elliptic/curve');\nelliptic.curves = require('./elliptic/curves');\n\n// Protocols\nelliptic.ec = require('./elliptic/ec');\nelliptic.eddsa = require('./elliptic/eddsa');\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar getNAF = utils.getNAF;\nvar getJSF = utils.getJSF;\nvar assert = utils.assert;\n\nfunction BaseCurve(type, conf) {\n this.type = type;\n this.p = new BN(conf.p, 16);\n\n // Use Montgomery, when there is no fast reduction for the prime\n this.red = conf.prime ? BN.red(conf.prime) : BN.mont(this.p);\n\n // Useful for many curves\n this.zero = new BN(0).toRed(this.red);\n this.one = new BN(1).toRed(this.red);\n this.two = new BN(2).toRed(this.red);\n\n // Curve configuration, optional\n this.n = conf.n && new BN(conf.n, 16);\n this.g = conf.g && this.pointFromJSON(conf.g, conf.gRed);\n\n // Temporary arrays\n this._wnafT1 = new Array(4);\n this._wnafT2 = new Array(4);\n this._wnafT3 = new Array(4);\n this._wnafT4 = new Array(4);\n\n this._bitLength = this.n ? this.n.bitLength() : 0;\n\n // Generalized Greg Maxwell's trick\n var adjustCount = this.n && this.p.div(this.n);\n if (!adjustCount || adjustCount.cmpn(100) > 0) {\n this.redN = null;\n } else {\n this._maxwellTrick = true;\n this.redN = this.n.toRed(this.red);\n }\n}\nmodule.exports = BaseCurve;\n\nBaseCurve.prototype.point = function point() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype.validate = function validate() {\n throw new Error('Not implemented');\n};\n\nBaseCurve.prototype._fixedNafMul = function _fixedNafMul(p, k) {\n assert(p.precomputed);\n var doubles = p._getDoubles();\n\n var naf = getNAF(k, 1, this._bitLength);\n var I = (1 << (doubles.step + 1)) - (doubles.step % 2 === 0 ? 2 : 1);\n I /= 3;\n\n // Translate into more windowed form\n var repr = [];\n var j;\n var nafW;\n for (j = 0; j < naf.length; j += doubles.step) {\n nafW = 0;\n for (var l = j + doubles.step - 1; l >= j; l--)\n nafW = (nafW << 1) + naf[l];\n repr.push(nafW);\n }\n\n var a = this.jpoint(null, null, null);\n var b = this.jpoint(null, null, null);\n for (var i = I; i > 0; i--) {\n for (j = 0; j < repr.length; j++) {\n nafW = repr[j];\n if (nafW === i)\n b = b.mixedAdd(doubles.points[j]);\n else if (nafW === -i)\n b = b.mixedAdd(doubles.points[j].neg());\n }\n a = a.add(b);\n }\n return a.toP();\n};\n\nBaseCurve.prototype._wnafMul = function _wnafMul(p, k) {\n var w = 4;\n\n // Precompute window\n var nafPoints = p._getNAFPoints(w);\n w = nafPoints.wnd;\n var wnd = nafPoints.points;\n\n // Get NAF form\n var naf = getNAF(k, w, this._bitLength);\n\n // Add `this`*(N+1) for every w-NAF index\n var acc = this.jpoint(null, null, null);\n for (var i = naf.length - 1; i >= 0; i--) {\n // Count zeroes\n for (var l = 0; i >= 0 && naf[i] === 0; i--)\n l++;\n if (i >= 0)\n l++;\n acc = acc.dblp(l);\n\n if (i < 0)\n break;\n var z = naf[i];\n assert(z !== 0);\n if (p.type === 'affine') {\n // J +- P\n if (z > 0)\n acc = acc.mixedAdd(wnd[(z - 1) >> 1]);\n else\n acc = acc.mixedAdd(wnd[(-z - 1) >> 1].neg());\n } else {\n // J +- J\n if (z > 0)\n acc = acc.add(wnd[(z - 1) >> 1]);\n else\n acc = acc.add(wnd[(-z - 1) >> 1].neg());\n }\n }\n return p.type === 'affine' ? acc.toP() : acc;\n};\n\nBaseCurve.prototype._wnafMulAdd = function _wnafMulAdd(defW,\n points,\n coeffs,\n len,\n jacobianResult) {\n var wndWidth = this._wnafT1;\n var wnd = this._wnafT2;\n var naf = this._wnafT3;\n\n // Fill all arrays\n var max = 0;\n var i;\n var j;\n var p;\n for (i = 0; i < len; i++) {\n p = points[i];\n var nafPoints = p._getNAFPoints(defW);\n wndWidth[i] = nafPoints.wnd;\n wnd[i] = nafPoints.points;\n }\n\n // Comb small window NAFs\n for (i = len - 1; i >= 1; i -= 2) {\n var a = i - 1;\n var b = i;\n if (wndWidth[a] !== 1 || wndWidth[b] !== 1) {\n naf[a] = getNAF(coeffs[a], wndWidth[a], this._bitLength);\n naf[b] = getNAF(coeffs[b], wndWidth[b], this._bitLength);\n max = Math.max(naf[a].length, max);\n max = Math.max(naf[b].length, max);\n continue;\n }\n\n var comb = [\n points[a], /* 1 */\n null, /* 3 */\n null, /* 5 */\n points[b], /* 7 */\n ];\n\n // Try to avoid Projective points, if possible\n if (points[a].y.cmp(points[b].y) === 0) {\n comb[1] = points[a].add(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n } else if (points[a].y.cmp(points[b].y.redNeg()) === 0) {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].add(points[b].neg());\n } else {\n comb[1] = points[a].toJ().mixedAdd(points[b]);\n comb[2] = points[a].toJ().mixedAdd(points[b].neg());\n }\n\n var index = [\n -3, /* -1 -1 */\n -1, /* -1 0 */\n -5, /* -1 1 */\n -7, /* 0 -1 */\n 0, /* 0 0 */\n 7, /* 0 1 */\n 5, /* 1 -1 */\n 1, /* 1 0 */\n 3, /* 1 1 */\n ];\n\n var jsf = getJSF(coeffs[a], coeffs[b]);\n max = Math.max(jsf[0].length, max);\n naf[a] = new Array(max);\n naf[b] = new Array(max);\n for (j = 0; j < max; j++) {\n var ja = jsf[0][j] | 0;\n var jb = jsf[1][j] | 0;\n\n naf[a][j] = index[(ja + 1) * 3 + (jb + 1)];\n naf[b][j] = 0;\n wnd[a] = comb;\n }\n }\n\n var acc = this.jpoint(null, null, null);\n var tmp = this._wnafT4;\n for (i = max; i >= 0; i--) {\n var k = 0;\n\n while (i >= 0) {\n var zero = true;\n for (j = 0; j < len; j++) {\n tmp[j] = naf[j][i] | 0;\n if (tmp[j] !== 0)\n zero = false;\n }\n if (!zero)\n break;\n k++;\n i--;\n }\n if (i >= 0)\n k++;\n acc = acc.dblp(k);\n if (i < 0)\n break;\n\n for (j = 0; j < len; j++) {\n var z = tmp[j];\n p;\n if (z === 0)\n continue;\n else if (z > 0)\n p = wnd[j][(z - 1) >> 1];\n else if (z < 0)\n p = wnd[j][(-z - 1) >> 1].neg();\n\n if (p.type === 'affine')\n acc = acc.mixedAdd(p);\n else\n acc = acc.add(p);\n }\n }\n // Zeroify references\n for (i = 0; i < len; i++)\n wnd[i] = null;\n\n if (jacobianResult)\n return acc;\n else\n return acc.toP();\n};\n\nfunction BasePoint(curve, type) {\n this.curve = curve;\n this.type = type;\n this.precomputed = null;\n}\nBaseCurve.BasePoint = BasePoint;\n\nBasePoint.prototype.eq = function eq(/*other*/) {\n throw new Error('Not implemented');\n};\n\nBasePoint.prototype.validate = function validate() {\n return this.curve.validate(this);\n};\n\nBaseCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n bytes = utils.toArray(bytes, enc);\n\n var len = this.p.byteLength();\n\n // uncompressed, hybrid-odd, hybrid-even\n if ((bytes[0] === 0x04 || bytes[0] === 0x06 || bytes[0] === 0x07) &&\n bytes.length - 1 === 2 * len) {\n if (bytes[0] === 0x06)\n assert(bytes[bytes.length - 1] % 2 === 0);\n else if (bytes[0] === 0x07)\n assert(bytes[bytes.length - 1] % 2 === 1);\n\n var res = this.point(bytes.slice(1, 1 + len),\n bytes.slice(1 + len, 1 + 2 * len));\n\n return res;\n } else if ((bytes[0] === 0x02 || bytes[0] === 0x03) &&\n bytes.length - 1 === len) {\n return this.pointFromX(bytes.slice(1, 1 + len), bytes[0] === 0x03);\n }\n throw new Error('Unknown point format');\n};\n\nBasePoint.prototype.encodeCompressed = function encodeCompressed(enc) {\n return this.encode(enc, true);\n};\n\nBasePoint.prototype._encode = function _encode(compact) {\n var len = this.curve.p.byteLength();\n var x = this.getX().toArray('be', len);\n\n if (compact)\n return [ this.getY().isEven() ? 0x02 : 0x03 ].concat(x);\n\n return [ 0x04 ].concat(x, this.getY().toArray('be', len));\n};\n\nBasePoint.prototype.encode = function encode(enc, compact) {\n return utils.encode(this._encode(compact), enc);\n};\n\nBasePoint.prototype.precompute = function precompute(power) {\n if (this.precomputed)\n return this;\n\n var precomputed = {\n doubles: null,\n naf: null,\n beta: null,\n };\n precomputed.naf = this._getNAFPoints(8);\n precomputed.doubles = this._getDoubles(4, power);\n precomputed.beta = this._getBeta();\n this.precomputed = precomputed;\n\n return this;\n};\n\nBasePoint.prototype._hasDoubles = function _hasDoubles(k) {\n if (!this.precomputed)\n return false;\n\n var doubles = this.precomputed.doubles;\n if (!doubles)\n return false;\n\n return doubles.points.length >= Math.ceil((k.bitLength() + 1) / doubles.step);\n};\n\nBasePoint.prototype._getDoubles = function _getDoubles(step, power) {\n if (this.precomputed && this.precomputed.doubles)\n return this.precomputed.doubles;\n\n var doubles = [ this ];\n var acc = this;\n for (var i = 0; i < power; i += step) {\n for (var j = 0; j < step; j++)\n acc = acc.dbl();\n doubles.push(acc);\n }\n return {\n step: step,\n points: doubles,\n };\n};\n\nBasePoint.prototype._getNAFPoints = function _getNAFPoints(wnd) {\n if (this.precomputed && this.precomputed.naf)\n return this.precomputed.naf;\n\n var res = [ this ];\n var max = (1 << wnd) - 1;\n var dbl = max === 1 ? null : this.dbl();\n for (var i = 1; i < max; i++)\n res[i] = res[i - 1].add(dbl);\n return {\n wnd: wnd,\n points: res,\n };\n};\n\nBasePoint.prototype._getBeta = function _getBeta() {\n return null;\n};\n\nBasePoint.prototype.dblp = function dblp(k) {\n var r = this;\n for (var i = 0; i < k; i++)\n r = r.dbl();\n return r;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction EdwardsCurve(conf) {\n // NOTE: Important as we are creating point in Base.call()\n this.twisted = (conf.a | 0) !== 1;\n this.mOneA = this.twisted && (conf.a | 0) === -1;\n this.extended = this.mOneA;\n\n Base.call(this, 'edwards', conf);\n\n this.a = new BN(conf.a, 16).umod(this.red.m);\n this.a = this.a.toRed(this.red);\n this.c = new BN(conf.c, 16).toRed(this.red);\n this.c2 = this.c.redSqr();\n this.d = new BN(conf.d, 16).toRed(this.red);\n this.dd = this.d.redAdd(this.d);\n\n assert(!this.twisted || this.c.fromRed().cmpn(1) === 0);\n this.oneC = (conf.c | 0) === 1;\n}\ninherits(EdwardsCurve, Base);\nmodule.exports = EdwardsCurve;\n\nEdwardsCurve.prototype._mulA = function _mulA(num) {\n if (this.mOneA)\n return num.redNeg();\n else\n return this.a.redMul(num);\n};\n\nEdwardsCurve.prototype._mulC = function _mulC(num) {\n if (this.oneC)\n return num;\n else\n return this.c.redMul(num);\n};\n\n// Just for compatibility with Short curve\nEdwardsCurve.prototype.jpoint = function jpoint(x, y, z, t) {\n return this.point(x, y, z, t);\n};\n\nEdwardsCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var x2 = x.redSqr();\n var rhs = this.c2.redSub(this.a.redMul(x2));\n var lhs = this.one.redSub(this.c2.redMul(this.d).redMul(x2));\n\n var y2 = rhs.redMul(lhs.redInvm());\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.pointFromY = function pointFromY(y, odd) {\n y = new BN(y, 16);\n if (!y.red)\n y = y.toRed(this.red);\n\n // x^2 = (y^2 - c^2) / (c^2 d y^2 - a)\n var y2 = y.redSqr();\n var lhs = y2.redSub(this.c2);\n var rhs = y2.redMul(this.d).redMul(this.c2).redSub(this.a);\n var x2 = lhs.redMul(rhs.redInvm());\n\n if (x2.cmp(this.zero) === 0) {\n if (odd)\n throw new Error('invalid point');\n else\n return this.point(this.zero, y);\n }\n\n var x = x2.redSqrt();\n if (x.redSqr().redSub(x2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n if (x.fromRed().isOdd() !== odd)\n x = x.redNeg();\n\n return this.point(x, y);\n};\n\nEdwardsCurve.prototype.validate = function validate(point) {\n if (point.isInfinity())\n return true;\n\n // Curve: A * X^2 + Y^2 = C^2 * (1 + D * X^2 * Y^2)\n point.normalize();\n\n var x2 = point.x.redSqr();\n var y2 = point.y.redSqr();\n var lhs = x2.redMul(this.a).redAdd(y2);\n var rhs = this.c2.redMul(this.one.redAdd(this.d.redMul(x2).redMul(y2)));\n\n return lhs.cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, y, z, t) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && y === null && z === null) {\n this.x = this.curve.zero;\n this.y = this.curve.one;\n this.z = this.curve.one;\n this.t = this.curve.zero;\n this.zOne = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = z ? new BN(z, 16) : this.curve.one;\n this.t = t && new BN(t, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n if (this.t && !this.t.red)\n this.t = this.t.toRed(this.curve.red);\n this.zOne = this.z === this.curve.one;\n\n // Use extended coordinates\n if (this.curve.extended && !this.t) {\n this.t = this.x.redMul(this.y);\n if (!this.zOne)\n this.t = this.t.redMul(this.z.redInvm());\n }\n }\n}\ninherits(Point, Base.BasePoint);\n\nEdwardsCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nEdwardsCurve.prototype.point = function point(x, y, z, t) {\n return new Point(this, x, y, z, t);\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1], obj[2]);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.x.cmpn(0) === 0 &&\n (this.y.cmp(this.z) === 0 ||\n (this.zOne && this.y.cmp(this.curve.c) === 0));\n};\n\nPoint.prototype._extDbl = function _extDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #doubling-dbl-2008-hwcd\n // 4M + 4S\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = 2 * Z1^2\n var c = this.z.redSqr();\n c = c.redIAdd(c);\n // D = a * A\n var d = this.curve._mulA(a);\n // E = (X1 + Y1)^2 - A - B\n var e = this.x.redAdd(this.y).redSqr().redISub(a).redISub(b);\n // G = D + B\n var g = d.redAdd(b);\n // F = G - C\n var f = g.redSub(c);\n // H = D - B\n var h = d.redSub(b);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projDbl = function _projDbl() {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #doubling-dbl-2008-bbjlp\n // #doubling-dbl-2007-bl\n // and others\n // Generally 3M + 4S or 2M + 4S\n\n // B = (X1 + Y1)^2\n var b = this.x.redAdd(this.y).redSqr();\n // C = X1^2\n var c = this.x.redSqr();\n // D = Y1^2\n var d = this.y.redSqr();\n\n var nx;\n var ny;\n var nz;\n var e;\n var h;\n var j;\n if (this.curve.twisted) {\n // E = a * C\n e = this.curve._mulA(c);\n // F = E + D\n var f = e.redAdd(d);\n if (this.zOne) {\n // X3 = (B - C - D) * (F - 2)\n nx = b.redSub(c).redSub(d).redMul(f.redSub(this.curve.two));\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F^2 - 2 * F\n nz = f.redSqr().redSub(f).redSub(f);\n } else {\n // H = Z1^2\n h = this.z.redSqr();\n // J = F - 2 * H\n j = f.redSub(h).redISub(h);\n // X3 = (B-C-D)*J\n nx = b.redSub(c).redISub(d).redMul(j);\n // Y3 = F * (E - D)\n ny = f.redMul(e.redSub(d));\n // Z3 = F * J\n nz = f.redMul(j);\n }\n } else {\n // E = C + D\n e = c.redAdd(d);\n // H = (c * Z1)^2\n h = this.curve._mulC(this.z).redSqr();\n // J = E - 2 * H\n j = e.redSub(h).redSub(h);\n // X3 = c * (B - E) * J\n nx = this.curve._mulC(b.redISub(e)).redMul(j);\n // Y3 = c * E * (C - D)\n ny = this.curve._mulC(e).redMul(c.redISub(d));\n // Z3 = E * J\n nz = e.redMul(j);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n // Double in extended coordinates\n if (this.curve.extended)\n return this._extDbl();\n else\n return this._projDbl();\n};\n\nPoint.prototype._extAdd = function _extAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-extended-1.html\n // #addition-add-2008-hwcd-3\n // 8M\n\n // A = (Y1 - X1) * (Y2 - X2)\n var a = this.y.redSub(this.x).redMul(p.y.redSub(p.x));\n // B = (Y1 + X1) * (Y2 + X2)\n var b = this.y.redAdd(this.x).redMul(p.y.redAdd(p.x));\n // C = T1 * k * T2\n var c = this.t.redMul(this.curve.dd).redMul(p.t);\n // D = Z1 * 2 * Z2\n var d = this.z.redMul(p.z.redAdd(p.z));\n // E = B - A\n var e = b.redSub(a);\n // F = D - C\n var f = d.redSub(c);\n // G = D + C\n var g = d.redAdd(c);\n // H = B + A\n var h = b.redAdd(a);\n // X3 = E * F\n var nx = e.redMul(f);\n // Y3 = G * H\n var ny = g.redMul(h);\n // T3 = E * H\n var nt = e.redMul(h);\n // Z3 = F * G\n var nz = f.redMul(g);\n return this.curve.point(nx, ny, nz, nt);\n};\n\nPoint.prototype._projAdd = function _projAdd(p) {\n // hyperelliptic.org/EFD/g1p/auto-twisted-projective.html\n // #addition-add-2008-bbjlp\n // #addition-add-2007-bl\n // 10M + 1S\n\n // A = Z1 * Z2\n var a = this.z.redMul(p.z);\n // B = A^2\n var b = a.redSqr();\n // C = X1 * X2\n var c = this.x.redMul(p.x);\n // D = Y1 * Y2\n var d = this.y.redMul(p.y);\n // E = d * C * D\n var e = this.curve.d.redMul(c).redMul(d);\n // F = B - E\n var f = b.redSub(e);\n // G = B + E\n var g = b.redAdd(e);\n // X3 = A * F * ((X1 + Y1) * (X2 + Y2) - C - D)\n var tmp = this.x.redAdd(this.y).redMul(p.x.redAdd(p.y)).redISub(c).redISub(d);\n var nx = a.redMul(f).redMul(tmp);\n var ny;\n var nz;\n if (this.curve.twisted) {\n // Y3 = A * G * (D - a * C)\n ny = a.redMul(g).redMul(d.redSub(this.curve._mulA(c)));\n // Z3 = F * G\n nz = f.redMul(g);\n } else {\n // Y3 = A * G * (D - C)\n ny = a.redMul(g).redMul(d.redSub(c));\n // Z3 = c * F * G\n nz = this.curve._mulC(f).redMul(g);\n }\n return this.curve.point(nx, ny, nz);\n};\n\nPoint.prototype.add = function add(p) {\n if (this.isInfinity())\n return p;\n if (p.isInfinity())\n return this;\n\n if (this.curve.extended)\n return this._extAdd(p);\n else\n return this._projAdd(p);\n};\n\nPoint.prototype.mul = function mul(k) {\n if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, false);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p, k2) {\n return this.curve._wnafMulAdd(1, [ this, p ], [ k1, k2 ], 2, true);\n};\n\nPoint.prototype.normalize = function normalize() {\n if (this.zOne)\n return this;\n\n // Normalize coordinates\n var zi = this.z.redInvm();\n this.x = this.x.redMul(zi);\n this.y = this.y.redMul(zi);\n if (this.t)\n this.t = this.t.redMul(zi);\n this.z = this.curve.one;\n this.zOne = true;\n return this;\n};\n\nPoint.prototype.neg = function neg() {\n return this.curve.point(this.x.redNeg(),\n this.y,\n this.z,\n this.t && this.t.redNeg());\n};\n\nPoint.prototype.getX = function getX() {\n this.normalize();\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n this.normalize();\n return this.y.fromRed();\n};\n\nPoint.prototype.eq = function eq(other) {\n return this === other ||\n this.getX().cmp(other.getX()) === 0 &&\n this.getY().cmp(other.getY()) === 0;\n};\n\nPoint.prototype.eqXToP = function eqXToP(x) {\n var rx = x.toRed(this.curve.red).redMul(this.z);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(this.z);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\n// Compatibility with BaseCurve\nPoint.prototype.toP = Point.prototype.normalize;\nPoint.prototype.mixedAdd = Point.prototype.add;\n","'use strict';\n\nvar curve = exports;\n\ncurve.base = require('./base');\ncurve.short = require('./short');\ncurve.mont = require('./mont');\ncurve.edwards = require('./edwards');\n","'use strict';\n\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar utils = require('../utils');\n\nfunction MontCurve(conf) {\n Base.call(this, 'mont', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.i4 = new BN(4).toRed(this.red).redInvm();\n this.two = new BN(2).toRed(this.red);\n this.a24 = this.i4.redMul(this.a.redAdd(this.two));\n}\ninherits(MontCurve, Base);\nmodule.exports = MontCurve;\n\nMontCurve.prototype.validate = function validate(point) {\n var x = point.normalize().x;\n var x2 = x.redSqr();\n var rhs = x2.redMul(x).redAdd(x2.redMul(this.a)).redAdd(x);\n var y = rhs.redSqrt();\n\n return y.redSqr().cmp(rhs) === 0;\n};\n\nfunction Point(curve, x, z) {\n Base.BasePoint.call(this, curve, 'projective');\n if (x === null && z === null) {\n this.x = this.curve.one;\n this.z = this.curve.zero;\n } else {\n this.x = new BN(x, 16);\n this.z = new BN(z, 16);\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n }\n}\ninherits(Point, Base.BasePoint);\n\nMontCurve.prototype.decodePoint = function decodePoint(bytes, enc) {\n return this.point(utils.toArray(bytes, enc), 1);\n};\n\nMontCurve.prototype.point = function point(x, z) {\n return new Point(this, x, z);\n};\n\nMontCurve.prototype.pointFromJSON = function pointFromJSON(obj) {\n return Point.fromJSON(this, obj);\n};\n\nPoint.prototype.precompute = function precompute() {\n // No-op\n};\n\nPoint.prototype._encode = function _encode() {\n return this.getX().toArray('be', this.curve.p.byteLength());\n};\n\nPoint.fromJSON = function fromJSON(curve, obj) {\n return new Point(curve, obj[0], obj[1] || curve.one);\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n\nPoint.prototype.dbl = function dbl() {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#doubling-dbl-1987-m-3\n // 2M + 2S + 4A\n\n // A = X1 + Z1\n var a = this.x.redAdd(this.z);\n // AA = A^2\n var aa = a.redSqr();\n // B = X1 - Z1\n var b = this.x.redSub(this.z);\n // BB = B^2\n var bb = b.redSqr();\n // C = AA - BB\n var c = aa.redSub(bb);\n // X3 = AA * BB\n var nx = aa.redMul(bb);\n // Z3 = C * (BB + A24 * C)\n var nz = c.redMul(bb.redAdd(this.curve.a24.redMul(c)));\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.add = function add() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.diffAdd = function diffAdd(p, diff) {\n // http://hyperelliptic.org/EFD/g1p/auto-montgom-xz.html#diffadd-dadd-1987-m-3\n // 4M + 2S + 6A\n\n // A = X2 + Z2\n var a = this.x.redAdd(this.z);\n // B = X2 - Z2\n var b = this.x.redSub(this.z);\n // C = X3 + Z3\n var c = p.x.redAdd(p.z);\n // D = X3 - Z3\n var d = p.x.redSub(p.z);\n // DA = D * A\n var da = d.redMul(a);\n // CB = C * B\n var cb = c.redMul(b);\n // X5 = Z1 * (DA + CB)^2\n var nx = diff.z.redMul(da.redAdd(cb).redSqr());\n // Z5 = X1 * (DA - CB)^2\n var nz = diff.x.redMul(da.redISub(cb).redSqr());\n return this.curve.point(nx, nz);\n};\n\nPoint.prototype.mul = function mul(k) {\n var t = k.clone();\n var a = this; // (N / 2) * Q + Q\n var b = this.curve.point(null, null); // (N / 2) * Q\n var c = this; // Q\n\n for (var bits = []; t.cmpn(0) !== 0; t.iushrn(1))\n bits.push(t.andln(1));\n\n for (var i = bits.length - 1; i >= 0; i--) {\n if (bits[i] === 0) {\n // N * Q + Q = ((N / 2) * Q + Q)) + (N / 2) * Q\n a = a.diffAdd(b, c);\n // N * Q = 2 * ((N / 2) * Q + Q))\n b = b.dbl();\n } else {\n // N * Q = ((N / 2) * Q + Q) + ((N / 2) * Q)\n b = a.diffAdd(b, c);\n // N * Q + Q = 2 * ((N / 2) * Q + Q)\n a = a.dbl();\n }\n }\n return b;\n};\n\nPoint.prototype.mulAdd = function mulAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.jumlAdd = function jumlAdd() {\n throw new Error('Not supported on Montgomery curve');\n};\n\nPoint.prototype.eq = function eq(other) {\n return this.getX().cmp(other.getX()) === 0;\n};\n\nPoint.prototype.normalize = function normalize() {\n this.x = this.x.redMul(this.z.redInvm());\n this.z = this.curve.one;\n return this;\n};\n\nPoint.prototype.getX = function getX() {\n // Normalize coordinates\n this.normalize();\n\n return this.x.fromRed();\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar BN = require('bn.js');\nvar inherits = require('inherits');\nvar Base = require('./base');\n\nvar assert = utils.assert;\n\nfunction ShortCurve(conf) {\n Base.call(this, 'short', conf);\n\n this.a = new BN(conf.a, 16).toRed(this.red);\n this.b = new BN(conf.b, 16).toRed(this.red);\n this.tinv = this.two.redInvm();\n\n this.zeroA = this.a.fromRed().cmpn(0) === 0;\n this.threeA = this.a.fromRed().sub(this.p).cmpn(-3) === 0;\n\n // If the curve is endomorphic, precalculate beta and lambda\n this.endo = this._getEndomorphism(conf);\n this._endoWnafT1 = new Array(4);\n this._endoWnafT2 = new Array(4);\n}\ninherits(ShortCurve, Base);\nmodule.exports = ShortCurve;\n\nShortCurve.prototype._getEndomorphism = function _getEndomorphism(conf) {\n // No efficient endomorphism\n if (!this.zeroA || !this.g || !this.n || this.p.modn(3) !== 1)\n return;\n\n // Compute beta and lambda, that lambda * P = (beta * Px; Py)\n var beta;\n var lambda;\n if (conf.beta) {\n beta = new BN(conf.beta, 16).toRed(this.red);\n } else {\n var betas = this._getEndoRoots(this.p);\n // Choose the smallest beta\n beta = betas[0].cmp(betas[1]) < 0 ? betas[0] : betas[1];\n beta = beta.toRed(this.red);\n }\n if (conf.lambda) {\n lambda = new BN(conf.lambda, 16);\n } else {\n // Choose the lambda that is matching selected beta\n var lambdas = this._getEndoRoots(this.n);\n if (this.g.mul(lambdas[0]).x.cmp(this.g.x.redMul(beta)) === 0) {\n lambda = lambdas[0];\n } else {\n lambda = lambdas[1];\n assert(this.g.mul(lambda).x.cmp(this.g.x.redMul(beta)) === 0);\n }\n }\n\n // Get basis vectors, used for balanced length-two representation\n var basis;\n if (conf.basis) {\n basis = conf.basis.map(function(vec) {\n return {\n a: new BN(vec.a, 16),\n b: new BN(vec.b, 16),\n };\n });\n } else {\n basis = this._getEndoBasis(lambda);\n }\n\n return {\n beta: beta,\n lambda: lambda,\n basis: basis,\n };\n};\n\nShortCurve.prototype._getEndoRoots = function _getEndoRoots(num) {\n // Find roots of for x^2 + x + 1 in F\n // Root = (-1 +- Sqrt(-3)) / 2\n //\n var red = num === this.p ? this.red : BN.mont(num);\n var tinv = new BN(2).toRed(red).redInvm();\n var ntinv = tinv.redNeg();\n\n var s = new BN(3).toRed(red).redNeg().redSqrt().redMul(tinv);\n\n var l1 = ntinv.redAdd(s).fromRed();\n var l2 = ntinv.redSub(s).fromRed();\n return [ l1, l2 ];\n};\n\nShortCurve.prototype._getEndoBasis = function _getEndoBasis(lambda) {\n // aprxSqrt >= sqrt(this.n)\n var aprxSqrt = this.n.ushrn(Math.floor(this.n.bitLength() / 2));\n\n // 3.74\n // Run EGCD, until r(L + 1) < aprxSqrt\n var u = lambda;\n var v = this.n.clone();\n var x1 = new BN(1);\n var y1 = new BN(0);\n var x2 = new BN(0);\n var y2 = new BN(1);\n\n // NOTE: all vectors are roots of: a + b * lambda = 0 (mod n)\n var a0;\n var b0;\n // First vector\n var a1;\n var b1;\n // Second vector\n var a2;\n var b2;\n\n var prevR;\n var i = 0;\n var r;\n var x;\n while (u.cmpn(0) !== 0) {\n var q = v.div(u);\n r = v.sub(q.mul(u));\n x = x2.sub(q.mul(x1));\n var y = y2.sub(q.mul(y1));\n\n if (!a1 && r.cmp(aprxSqrt) < 0) {\n a0 = prevR.neg();\n b0 = x1;\n a1 = r.neg();\n b1 = x;\n } else if (a1 && ++i === 2) {\n break;\n }\n prevR = r;\n\n v = u;\n u = r;\n x2 = x1;\n x1 = x;\n y2 = y1;\n y1 = y;\n }\n a2 = r.neg();\n b2 = x;\n\n var len1 = a1.sqr().add(b1.sqr());\n var len2 = a2.sqr().add(b2.sqr());\n if (len2.cmp(len1) >= 0) {\n a2 = a0;\n b2 = b0;\n }\n\n // Normalize signs\n if (a1.negative) {\n a1 = a1.neg();\n b1 = b1.neg();\n }\n if (a2.negative) {\n a2 = a2.neg();\n b2 = b2.neg();\n }\n\n return [\n { a: a1, b: b1 },\n { a: a2, b: b2 },\n ];\n};\n\nShortCurve.prototype._endoSplit = function _endoSplit(k) {\n var basis = this.endo.basis;\n var v1 = basis[0];\n var v2 = basis[1];\n\n var c1 = v2.b.mul(k).divRound(this.n);\n var c2 = v1.b.neg().mul(k).divRound(this.n);\n\n var p1 = c1.mul(v1.a);\n var p2 = c2.mul(v2.a);\n var q1 = c1.mul(v1.b);\n var q2 = c2.mul(v2.b);\n\n // Calculate answer\n var k1 = k.sub(p1).sub(p2);\n var k2 = q1.add(q2).neg();\n return { k1: k1, k2: k2 };\n};\n\nShortCurve.prototype.pointFromX = function pointFromX(x, odd) {\n x = new BN(x, 16);\n if (!x.red)\n x = x.toRed(this.red);\n\n var y2 = x.redSqr().redMul(x).redIAdd(x.redMul(this.a)).redIAdd(this.b);\n var y = y2.redSqrt();\n if (y.redSqr().redSub(y2).cmp(this.zero) !== 0)\n throw new Error('invalid point');\n\n // XXX Is there any way to tell if the number is odd without converting it\n // to non-red form?\n var isOdd = y.fromRed().isOdd();\n if (odd && !isOdd || !odd && isOdd)\n y = y.redNeg();\n\n return this.point(x, y);\n};\n\nShortCurve.prototype.validate = function validate(point) {\n if (point.inf)\n return true;\n\n var x = point.x;\n var y = point.y;\n\n var ax = this.a.redMul(x);\n var rhs = x.redSqr().redMul(x).redIAdd(ax).redIAdd(this.b);\n return y.redSqr().redISub(rhs).cmpn(0) === 0;\n};\n\nShortCurve.prototype._endoWnafMulAdd =\n function _endoWnafMulAdd(points, coeffs, jacobianResult) {\n var npoints = this._endoWnafT1;\n var ncoeffs = this._endoWnafT2;\n for (var i = 0; i < points.length; i++) {\n var split = this._endoSplit(coeffs[i]);\n var p = points[i];\n var beta = p._getBeta();\n\n if (split.k1.negative) {\n split.k1.ineg();\n p = p.neg(true);\n }\n if (split.k2.negative) {\n split.k2.ineg();\n beta = beta.neg(true);\n }\n\n npoints[i * 2] = p;\n npoints[i * 2 + 1] = beta;\n ncoeffs[i * 2] = split.k1;\n ncoeffs[i * 2 + 1] = split.k2;\n }\n var res = this._wnafMulAdd(1, npoints, ncoeffs, i * 2, jacobianResult);\n\n // Clean-up references to points and coefficients\n for (var j = 0; j < i * 2; j++) {\n npoints[j] = null;\n ncoeffs[j] = null;\n }\n return res;\n };\n\nfunction Point(curve, x, y, isRed) {\n Base.BasePoint.call(this, curve, 'affine');\n if (x === null && y === null) {\n this.x = null;\n this.y = null;\n this.inf = true;\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n // Force redgomery representation when loading from JSON\n if (isRed) {\n this.x.forceRed(this.curve.red);\n this.y.forceRed(this.curve.red);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n this.inf = false;\n }\n}\ninherits(Point, Base.BasePoint);\n\nShortCurve.prototype.point = function point(x, y, isRed) {\n return new Point(this, x, y, isRed);\n};\n\nShortCurve.prototype.pointFromJSON = function pointFromJSON(obj, red) {\n return Point.fromJSON(this, obj, red);\n};\n\nPoint.prototype._getBeta = function _getBeta() {\n if (!this.curve.endo)\n return;\n\n var pre = this.precomputed;\n if (pre && pre.beta)\n return pre.beta;\n\n var beta = this.curve.point(this.x.redMul(this.curve.endo.beta), this.y);\n if (pre) {\n var curve = this.curve;\n var endoMul = function(p) {\n return curve.point(p.x.redMul(curve.endo.beta), p.y);\n };\n pre.beta = beta;\n beta.precomputed = {\n beta: null,\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(endoMul),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(endoMul),\n },\n };\n }\n return beta;\n};\n\nPoint.prototype.toJSON = function toJSON() {\n if (!this.precomputed)\n return [ this.x, this.y ];\n\n return [ this.x, this.y, this.precomputed && {\n doubles: this.precomputed.doubles && {\n step: this.precomputed.doubles.step,\n points: this.precomputed.doubles.points.slice(1),\n },\n naf: this.precomputed.naf && {\n wnd: this.precomputed.naf.wnd,\n points: this.precomputed.naf.points.slice(1),\n },\n } ];\n};\n\nPoint.fromJSON = function fromJSON(curve, obj, red) {\n if (typeof obj === 'string')\n obj = JSON.parse(obj);\n var res = curve.point(obj[0], obj[1], red);\n if (!obj[2])\n return res;\n\n function obj2point(obj) {\n return curve.point(obj[0], obj[1], red);\n }\n\n var pre = obj[2];\n res.precomputed = {\n beta: null,\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: [ res ].concat(pre.doubles.points.map(obj2point)),\n },\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: [ res ].concat(pre.naf.points.map(obj2point)),\n },\n };\n return res;\n};\n\nPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nPoint.prototype.isInfinity = function isInfinity() {\n return this.inf;\n};\n\nPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.inf)\n return p;\n\n // P + O = P\n if (p.inf)\n return this;\n\n // P + P = 2P\n if (this.eq(p))\n return this.dbl();\n\n // P + (-P) = O\n if (this.neg().eq(p))\n return this.curve.point(null, null);\n\n // P + Q = O\n if (this.x.cmp(p.x) === 0)\n return this.curve.point(null, null);\n\n var c = this.y.redSub(p.y);\n if (c.cmpn(0) !== 0)\n c = c.redMul(this.x.redSub(p.x).redInvm());\n var nx = c.redSqr().redISub(this.x).redISub(p.x);\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.dbl = function dbl() {\n if (this.inf)\n return this;\n\n // 2P = O\n var ys1 = this.y.redAdd(this.y);\n if (ys1.cmpn(0) === 0)\n return this.curve.point(null, null);\n\n var a = this.curve.a;\n\n var x2 = this.x.redSqr();\n var dyinv = ys1.redInvm();\n var c = x2.redAdd(x2).redIAdd(x2).redIAdd(a).redMul(dyinv);\n\n var nx = c.redSqr().redISub(this.x.redAdd(this.x));\n var ny = c.redMul(this.x.redSub(nx)).redISub(this.y);\n return this.curve.point(nx, ny);\n};\n\nPoint.prototype.getX = function getX() {\n return this.x.fromRed();\n};\n\nPoint.prototype.getY = function getY() {\n return this.y.fromRed();\n};\n\nPoint.prototype.mul = function mul(k) {\n k = new BN(k, 16);\n if (this.isInfinity())\n return this;\n else if (this._hasDoubles(k))\n return this.curve._fixedNafMul(this, k);\n else if (this.curve.endo)\n return this.curve._endoWnafMulAdd([ this ], [ k ]);\n else\n return this.curve._wnafMul(this, k);\n};\n\nPoint.prototype.mulAdd = function mulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2);\n};\n\nPoint.prototype.jmulAdd = function jmulAdd(k1, p2, k2) {\n var points = [ this, p2 ];\n var coeffs = [ k1, k2 ];\n if (this.curve.endo)\n return this.curve._endoWnafMulAdd(points, coeffs, true);\n else\n return this.curve._wnafMulAdd(1, points, coeffs, 2, true);\n};\n\nPoint.prototype.eq = function eq(p) {\n return this === p ||\n this.inf === p.inf &&\n (this.inf || this.x.cmp(p.x) === 0 && this.y.cmp(p.y) === 0);\n};\n\nPoint.prototype.neg = function neg(_precompute) {\n if (this.inf)\n return this;\n\n var res = this.curve.point(this.x, this.y.redNeg());\n if (_precompute && this.precomputed) {\n var pre = this.precomputed;\n var negate = function(p) {\n return p.neg();\n };\n res.precomputed = {\n naf: pre.naf && {\n wnd: pre.naf.wnd,\n points: pre.naf.points.map(negate),\n },\n doubles: pre.doubles && {\n step: pre.doubles.step,\n points: pre.doubles.points.map(negate),\n },\n };\n }\n return res;\n};\n\nPoint.prototype.toJ = function toJ() {\n if (this.inf)\n return this.curve.jpoint(null, null, null);\n\n var res = this.curve.jpoint(this.x, this.y, this.curve.one);\n return res;\n};\n\nfunction JPoint(curve, x, y, z) {\n Base.BasePoint.call(this, curve, 'jacobian');\n if (x === null && y === null && z === null) {\n this.x = this.curve.one;\n this.y = this.curve.one;\n this.z = new BN(0);\n } else {\n this.x = new BN(x, 16);\n this.y = new BN(y, 16);\n this.z = new BN(z, 16);\n }\n if (!this.x.red)\n this.x = this.x.toRed(this.curve.red);\n if (!this.y.red)\n this.y = this.y.toRed(this.curve.red);\n if (!this.z.red)\n this.z = this.z.toRed(this.curve.red);\n\n this.zOne = this.z === this.curve.one;\n}\ninherits(JPoint, Base.BasePoint);\n\nShortCurve.prototype.jpoint = function jpoint(x, y, z) {\n return new JPoint(this, x, y, z);\n};\n\nJPoint.prototype.toP = function toP() {\n if (this.isInfinity())\n return this.curve.point(null, null);\n\n var zinv = this.z.redInvm();\n var zinv2 = zinv.redSqr();\n var ax = this.x.redMul(zinv2);\n var ay = this.y.redMul(zinv2).redMul(zinv);\n\n return this.curve.point(ax, ay);\n};\n\nJPoint.prototype.neg = function neg() {\n return this.curve.jpoint(this.x, this.y.redNeg(), this.z);\n};\n\nJPoint.prototype.add = function add(p) {\n // O + P = P\n if (this.isInfinity())\n return p;\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 12M + 4S + 7A\n var pz2 = p.z.redSqr();\n var z2 = this.z.redSqr();\n var u1 = this.x.redMul(pz2);\n var u2 = p.x.redMul(z2);\n var s1 = this.y.redMul(pz2.redMul(p.z));\n var s2 = p.y.redMul(z2.redMul(this.z));\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(p.z).redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mixedAdd = function mixedAdd(p) {\n // O + P = P\n if (this.isInfinity())\n return p.toJ();\n\n // P + O = P\n if (p.isInfinity())\n return this;\n\n // 8M + 3S + 7A\n var z2 = this.z.redSqr();\n var u1 = this.x;\n var u2 = p.x.redMul(z2);\n var s1 = this.y;\n var s2 = p.y.redMul(z2).redMul(this.z);\n\n var h = u1.redSub(u2);\n var r = s1.redSub(s2);\n if (h.cmpn(0) === 0) {\n if (r.cmpn(0) !== 0)\n return this.curve.jpoint(null, null, null);\n else\n return this.dbl();\n }\n\n var h2 = h.redSqr();\n var h3 = h2.redMul(h);\n var v = u1.redMul(h2);\n\n var nx = r.redSqr().redIAdd(h3).redISub(v).redISub(v);\n var ny = r.redMul(v.redISub(nx)).redISub(s1.redMul(h3));\n var nz = this.z.redMul(h);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.dblp = function dblp(pow) {\n if (pow === 0)\n return this;\n if (this.isInfinity())\n return this;\n if (!pow)\n return this.dbl();\n\n var i;\n if (this.curve.zeroA || this.curve.threeA) {\n var r = this;\n for (i = 0; i < pow; i++)\n r = r.dbl();\n return r;\n }\n\n // 1M + 2S + 1A + N * (4S + 5M + 8A)\n // N = 1 => 6M + 6S + 9A\n var a = this.curve.a;\n var tinv = this.curve.tinv;\n\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n // Reuse results\n var jyd = jy.redAdd(jy);\n for (i = 0; i < pow; i++) {\n var jx2 = jx.redSqr();\n var jyd2 = jyd.redSqr();\n var jyd4 = jyd2.redSqr();\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var t1 = jx.redMul(jyd2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n var dny = c.redMul(t2);\n dny = dny.redIAdd(dny).redISub(jyd4);\n var nz = jyd.redMul(jz);\n if (i + 1 < pow)\n jz4 = jz4.redMul(jyd4);\n\n jx = nx;\n jz = nz;\n jyd = dny;\n }\n\n return this.curve.jpoint(jx, jyd.redMul(tinv), jz);\n};\n\nJPoint.prototype.dbl = function dbl() {\n if (this.isInfinity())\n return this;\n\n if (this.curve.zeroA)\n return this._zeroDbl();\n else if (this.curve.threeA)\n return this._threeDbl();\n else\n return this._dbl();\n};\n\nJPoint.prototype._zeroDbl = function _zeroDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 14A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // T = M ^ 2 - 2*S\n var t = m.redSqr().redISub(s).redISub(s);\n\n // 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2*Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html\n // #doubling-dbl-2009-l\n // 2M + 5S + 13A\n\n // A = X1^2\n var a = this.x.redSqr();\n // B = Y1^2\n var b = this.y.redSqr();\n // C = B^2\n var c = b.redSqr();\n // D = 2 * ((X1 + B)^2 - A - C)\n var d = this.x.redAdd(b).redSqr().redISub(a).redISub(c);\n d = d.redIAdd(d);\n // E = 3 * A\n var e = a.redAdd(a).redIAdd(a);\n // F = E^2\n var f = e.redSqr();\n\n // 8 * C\n var c8 = c.redIAdd(c);\n c8 = c8.redIAdd(c8);\n c8 = c8.redIAdd(c8);\n\n // X3 = F - 2 * D\n nx = f.redISub(d).redISub(d);\n // Y3 = E * (D - X3) - 8 * C\n ny = e.redMul(d.redISub(nx)).redISub(c8);\n // Z3 = 2 * Y1 * Z1\n nz = this.y.redMul(this.z);\n nz = nz.redIAdd(nz);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._threeDbl = function _threeDbl() {\n var nx;\n var ny;\n var nz;\n // Z = 1\n if (this.zOne) {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html\n // #doubling-mdbl-2007-bl\n // 1M + 5S + 15A\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // S = 2 * ((X1 + YY)^2 - XX - YYYY)\n var s = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n s = s.redIAdd(s);\n // M = 3 * XX + a\n var m = xx.redAdd(xx).redIAdd(xx).redIAdd(this.curve.a);\n // T = M^2 - 2 * S\n var t = m.redSqr().redISub(s).redISub(s);\n // X3 = T\n nx = t;\n // Y3 = M * (S - T) - 8 * YYYY\n var yyyy8 = yyyy.redIAdd(yyyy);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n yyyy8 = yyyy8.redIAdd(yyyy8);\n ny = m.redMul(s.redISub(t)).redISub(yyyy8);\n // Z3 = 2 * Y1\n nz = this.y.redAdd(this.y);\n } else {\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-3.html#doubling-dbl-2001-b\n // 3M + 5S\n\n // delta = Z1^2\n var delta = this.z.redSqr();\n // gamma = Y1^2\n var gamma = this.y.redSqr();\n // beta = X1 * gamma\n var beta = this.x.redMul(gamma);\n // alpha = 3 * (X1 - delta) * (X1 + delta)\n var alpha = this.x.redSub(delta).redMul(this.x.redAdd(delta));\n alpha = alpha.redAdd(alpha).redIAdd(alpha);\n // X3 = alpha^2 - 8 * beta\n var beta4 = beta.redIAdd(beta);\n beta4 = beta4.redIAdd(beta4);\n var beta8 = beta4.redAdd(beta4);\n nx = alpha.redSqr().redISub(beta8);\n // Z3 = (Y1 + Z1)^2 - gamma - delta\n nz = this.y.redAdd(this.z).redSqr().redISub(gamma).redISub(delta);\n // Y3 = alpha * (4 * beta - X3) - 8 * gamma^2\n var ggamma8 = gamma.redSqr();\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ggamma8 = ggamma8.redIAdd(ggamma8);\n ny = alpha.redMul(beta4.redISub(nx)).redISub(ggamma8);\n }\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype._dbl = function _dbl() {\n var a = this.curve.a;\n\n // 4M + 6S + 10A\n var jx = this.x;\n var jy = this.y;\n var jz = this.z;\n var jz4 = jz.redSqr().redSqr();\n\n var jx2 = jx.redSqr();\n var jy2 = jy.redSqr();\n\n var c = jx2.redAdd(jx2).redIAdd(jx2).redIAdd(a.redMul(jz4));\n\n var jxd4 = jx.redAdd(jx);\n jxd4 = jxd4.redIAdd(jxd4);\n var t1 = jxd4.redMul(jy2);\n var nx = c.redSqr().redISub(t1.redAdd(t1));\n var t2 = t1.redISub(nx);\n\n var jyd8 = jy2.redSqr();\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n jyd8 = jyd8.redIAdd(jyd8);\n var ny = c.redMul(t2).redISub(jyd8);\n var nz = jy.redAdd(jy).redMul(jz);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.trpl = function trpl() {\n if (!this.curve.zeroA)\n return this.dbl().add(this);\n\n // hyperelliptic.org/EFD/g1p/auto-shortw-jacobian-0.html#tripling-tpl-2007-bl\n // 5M + 10S + ...\n\n // XX = X1^2\n var xx = this.x.redSqr();\n // YY = Y1^2\n var yy = this.y.redSqr();\n // ZZ = Z1^2\n var zz = this.z.redSqr();\n // YYYY = YY^2\n var yyyy = yy.redSqr();\n // M = 3 * XX + a * ZZ2; a = 0\n var m = xx.redAdd(xx).redIAdd(xx);\n // MM = M^2\n var mm = m.redSqr();\n // E = 6 * ((X1 + YY)^2 - XX - YYYY) - MM\n var e = this.x.redAdd(yy).redSqr().redISub(xx).redISub(yyyy);\n e = e.redIAdd(e);\n e = e.redAdd(e).redIAdd(e);\n e = e.redISub(mm);\n // EE = E^2\n var ee = e.redSqr();\n // T = 16*YYYY\n var t = yyyy.redIAdd(yyyy);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n t = t.redIAdd(t);\n // U = (M + E)^2 - MM - EE - T\n var u = m.redIAdd(e).redSqr().redISub(mm).redISub(ee).redISub(t);\n // X3 = 4 * (X1 * EE - 4 * YY * U)\n var yyu4 = yy.redMul(u);\n yyu4 = yyu4.redIAdd(yyu4);\n yyu4 = yyu4.redIAdd(yyu4);\n var nx = this.x.redMul(ee).redISub(yyu4);\n nx = nx.redIAdd(nx);\n nx = nx.redIAdd(nx);\n // Y3 = 8 * Y1 * (U * (T - U) - E * EE)\n var ny = this.y.redMul(u.redMul(t.redISub(u)).redISub(e.redMul(ee)));\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n ny = ny.redIAdd(ny);\n // Z3 = (Z1 + E)^2 - ZZ - EE\n var nz = this.z.redAdd(e).redSqr().redISub(zz).redISub(ee);\n\n return this.curve.jpoint(nx, ny, nz);\n};\n\nJPoint.prototype.mul = function mul(k, kbase) {\n k = new BN(k, kbase);\n\n return this.curve._wnafMul(this, k);\n};\n\nJPoint.prototype.eq = function eq(p) {\n if (p.type === 'affine')\n return this.eq(p.toJ());\n\n if (this === p)\n return true;\n\n // x1 * z2^2 == x2 * z1^2\n var z2 = this.z.redSqr();\n var pz2 = p.z.redSqr();\n if (this.x.redMul(pz2).redISub(p.x.redMul(z2)).cmpn(0) !== 0)\n return false;\n\n // y1 * z2^3 == y2 * z1^3\n var z3 = z2.redMul(this.z);\n var pz3 = pz2.redMul(p.z);\n return this.y.redMul(pz3).redISub(p.y.redMul(z3)).cmpn(0) === 0;\n};\n\nJPoint.prototype.eqXToP = function eqXToP(x) {\n var zs = this.z.redSqr();\n var rx = x.toRed(this.curve.red).redMul(zs);\n if (this.x.cmp(rx) === 0)\n return true;\n\n var xc = x.clone();\n var t = this.curve.redN.redMul(zs);\n for (;;) {\n xc.iadd(this.curve.n);\n if (xc.cmp(this.curve.p) >= 0)\n return false;\n\n rx.redIAdd(t);\n if (this.x.cmp(rx) === 0)\n return true;\n }\n};\n\nJPoint.prototype.inspect = function inspect() {\n if (this.isInfinity())\n return '';\n return '';\n};\n\nJPoint.prototype.isInfinity = function isInfinity() {\n // XXX This code assumes that zero is always zero in red\n return this.z.cmpn(0) === 0;\n};\n","'use strict';\n\nvar curves = exports;\n\nvar hash = require('hash.js');\nvar curve = require('./curve');\nvar utils = require('./utils');\n\nvar assert = utils.assert;\n\nfunction PresetCurve(options) {\n if (options.type === 'short')\n this.curve = new curve.short(options);\n else if (options.type === 'edwards')\n this.curve = new curve.edwards(options);\n else\n this.curve = new curve.mont(options);\n this.g = this.curve.g;\n this.n = this.curve.n;\n this.hash = options.hash;\n\n assert(this.g.validate(), 'Invalid curve');\n assert(this.g.mul(this.n).isInfinity(), 'Invalid curve, G*N != O');\n}\ncurves.PresetCurve = PresetCurve;\n\nfunction defineCurve(name, options) {\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n get: function() {\n var curve = new PresetCurve(options);\n Object.defineProperty(curves, name, {\n configurable: true,\n enumerable: true,\n value: curve,\n });\n return curve;\n },\n });\n}\n\ndefineCurve('p192', {\n type: 'short',\n prime: 'p192',\n p: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff fffffffc',\n b: '64210519 e59c80e7 0fa7e9ab 72243049 feb8deec c146b9b1',\n n: 'ffffffff ffffffff ffffffff 99def836 146bc9b1 b4d22831',\n hash: hash.sha256,\n gRed: false,\n g: [\n '188da80e b03090f6 7cbf20eb 43a18800 f4ff0afd 82ff1012',\n '07192b95 ffc8da78 631011ed 6b24cdd5 73f977a1 1e794811',\n ],\n});\n\ndefineCurve('p224', {\n type: 'short',\n prime: 'p224',\n p: 'ffffffff ffffffff ffffffff ffffffff 00000000 00000000 00000001',\n a: 'ffffffff ffffffff ffffffff fffffffe ffffffff ffffffff fffffffe',\n b: 'b4050a85 0c04b3ab f5413256 5044b0b7 d7bfd8ba 270b3943 2355ffb4',\n n: 'ffffffff ffffffff ffffffff ffff16a2 e0b8f03e 13dd2945 5c5c2a3d',\n hash: hash.sha256,\n gRed: false,\n g: [\n 'b70e0cbd 6bb4bf7f 321390b9 4a03c1d3 56c21122 343280d6 115c1d21',\n 'bd376388 b5f723fb 4c22dfe6 cd4375a0 5a074764 44d58199 85007e34',\n ],\n});\n\ndefineCurve('p256', {\n type: 'short',\n prime: null,\n p: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff ffffffff',\n a: 'ffffffff 00000001 00000000 00000000 00000000 ffffffff ffffffff fffffffc',\n b: '5ac635d8 aa3a93e7 b3ebbd55 769886bc 651d06b0 cc53b0f6 3bce3c3e 27d2604b',\n n: 'ffffffff 00000000 ffffffff ffffffff bce6faad a7179e84 f3b9cac2 fc632551',\n hash: hash.sha256,\n gRed: false,\n g: [\n '6b17d1f2 e12c4247 f8bce6e5 63a440f2 77037d81 2deb33a0 f4a13945 d898c296',\n '4fe342e2 fe1a7f9b 8ee7eb4a 7c0f9e16 2bce3357 6b315ece cbb64068 37bf51f5',\n ],\n});\n\ndefineCurve('p384', {\n type: 'short',\n prime: null,\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 ffffffff',\n a: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'fffffffe ffffffff 00000000 00000000 fffffffc',\n b: 'b3312fa7 e23ee7e4 988e056b e3f82d19 181d9c6e fe814112 0314088f ' +\n '5013875a c656398d 8a2ed19d 2a85c8ed d3ec2aef',\n n: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff c7634d81 ' +\n 'f4372ddf 581a0db2 48b0a77a ecec196a ccc52973',\n hash: hash.sha384,\n gRed: false,\n g: [\n 'aa87ca22 be8b0537 8eb1c71e f320ad74 6e1d3b62 8ba79b98 59f741e0 82542a38 ' +\n '5502f25d bf55296c 3a545e38 72760ab7',\n '3617de4a 96262c6f 5d9e98bf 9292dc29 f8f41dbd 289a147c e9da3113 b5f0b8c0 ' +\n '0a60b1ce 1d7e819d 7a431d7c 90ea0e5f',\n ],\n});\n\ndefineCurve('p521', {\n type: 'short',\n prime: null,\n p: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff',\n a: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff ffffffff ffffffff fffffffc',\n b: '00000051 953eb961 8e1c9a1f 929a21a0 b68540ee a2da725b ' +\n '99b315f3 b8b48991 8ef109e1 56193951 ec7e937b 1652c0bd ' +\n '3bb1bf07 3573df88 3d2c34f1 ef451fd4 6b503f00',\n n: '000001ff ffffffff ffffffff ffffffff ffffffff ffffffff ' +\n 'ffffffff ffffffff fffffffa 51868783 bf2f966b 7fcc0148 ' +\n 'f709a5d0 3bb5c9b8 899c47ae bb6fb71e 91386409',\n hash: hash.sha512,\n gRed: false,\n g: [\n '000000c6 858e06b7 0404e9cd 9e3ecb66 2395b442 9c648139 ' +\n '053fb521 f828af60 6b4d3dba a14b5e77 efe75928 fe1dc127 ' +\n 'a2ffa8de 3348b3c1 856a429b f97e7e31 c2e5bd66',\n '00000118 39296a78 9a3bc004 5c8a5fb4 2c7d1bd9 98f54449 ' +\n '579b4468 17afbd17 273e662c 97ee7299 5ef42640 c550b901 ' +\n '3fad0761 353c7086 a272c240 88be9476 9fd16650',\n ],\n});\n\ndefineCurve('curve25519', {\n type: 'mont',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '76d06',\n b: '1',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '9',\n ],\n});\n\ndefineCurve('ed25519', {\n type: 'edwards',\n prime: 'p25519',\n p: '7fffffffffffffff ffffffffffffffff ffffffffffffffff ffffffffffffffed',\n a: '-1',\n c: '1',\n // -121665 * (121666^(-1)) (mod P)\n d: '52036cee2b6ffe73 8cc740797779e898 00700a4d4141d8ab 75eb4dca135978a3',\n n: '1000000000000000 0000000000000000 14def9dea2f79cd6 5812631a5cf5d3ed',\n hash: hash.sha256,\n gRed: false,\n g: [\n '216936d3cd6e53fec0a4e231fdd6dc5c692cc7609525a7b2c9562d608f25d51a',\n\n // 4/5\n '6666666666666666666666666666666666666666666666666666666666666658',\n ],\n});\n\nvar pre;\ntry {\n pre = require('./precomputed/secp256k1');\n} catch (e) {\n pre = undefined;\n}\n\ndefineCurve('secp256k1', {\n type: 'short',\n prime: 'k256',\n p: 'ffffffff ffffffff ffffffff ffffffff ffffffff ffffffff fffffffe fffffc2f',\n a: '0',\n b: '7',\n n: 'ffffffff ffffffff ffffffff fffffffe baaedce6 af48a03b bfd25e8c d0364141',\n h: '1',\n hash: hash.sha256,\n\n // Precomputed endomorphism\n beta: '7ae96a2b657c07106e64479eac3434e99cf0497512f58995c1396c28719501ee',\n lambda: '5363ad4cc05c30e0a5261c028812645a122e22ea20816678df02967c1b23bd72',\n basis: [\n {\n a: '3086d221a7d46bcde86c90e49284eb15',\n b: '-e4437ed6010e88286f547fa90abfe4c3',\n },\n {\n a: '114ca50f7a8e2f3f657c1108d9d44cfd8',\n b: '3086d221a7d46bcde86c90e49284eb15',\n },\n ],\n\n gRed: false,\n g: [\n '79be667ef9dcbbac55a06295ce870b07029bfcdb2dce28d959f2815b16f81798',\n '483ada7726a3c4655da4fbfc0e1108a8fd17b448a68554199c47d08ffb10d4b8',\n pre,\n ],\n});\n","'use strict';\n\nvar BN = require('bn.js');\nvar HmacDRBG = require('hmac-drbg');\nvar utils = require('../utils');\nvar curves = require('../curves');\nvar rand = require('brorand');\nvar assert = utils.assert;\n\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EC(options) {\n if (!(this instanceof EC))\n return new EC(options);\n\n // Shortcut `elliptic.ec(curve-name)`\n if (typeof options === 'string') {\n assert(Object.prototype.hasOwnProperty.call(curves, options),\n 'Unknown curve ' + options);\n\n options = curves[options];\n }\n\n // Shortcut for `elliptic.ec(elliptic.curves.curveName)`\n if (options instanceof curves.PresetCurve)\n options = { curve: options };\n\n this.curve = options.curve.curve;\n this.n = this.curve.n;\n this.nh = this.n.ushrn(1);\n this.g = this.curve.g;\n\n // Point on curve\n this.g = options.curve.g;\n this.g.precompute(options.curve.n.bitLength() + 1);\n\n // Hash for function for DRBG\n this.hash = options.hash || options.curve.hash;\n}\nmodule.exports = EC;\n\nEC.prototype.keyPair = function keyPair(options) {\n return new KeyPair(this, options);\n};\n\nEC.prototype.keyFromPrivate = function keyFromPrivate(priv, enc) {\n return KeyPair.fromPrivate(this, priv, enc);\n};\n\nEC.prototype.keyFromPublic = function keyFromPublic(pub, enc) {\n return KeyPair.fromPublic(this, pub, enc);\n};\n\nEC.prototype.genKeyPair = function genKeyPair(options) {\n if (!options)\n options = {};\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n entropy: options.entropy || rand(this.hash.hmacStrength),\n entropyEnc: options.entropy && options.entropyEnc || 'utf8',\n nonce: this.n.toArray(),\n });\n\n var bytes = this.n.byteLength();\n var ns2 = this.n.sub(new BN(2));\n for (;;) {\n var priv = new BN(drbg.generate(bytes));\n if (priv.cmp(ns2) > 0)\n continue;\n\n priv.iaddn(1);\n return this.keyFromPrivate(priv);\n }\n};\n\nEC.prototype._truncateToN = function _truncateToN(msg, truncOnly) {\n var delta = msg.byteLength() * 8 - this.n.bitLength();\n if (delta > 0)\n msg = msg.ushrn(delta);\n if (!truncOnly && msg.cmp(this.n) >= 0)\n return msg.sub(this.n);\n else\n return msg;\n};\n\nEC.prototype.sign = function sign(msg, key, enc, options) {\n if (typeof enc === 'object') {\n options = enc;\n enc = null;\n }\n if (!options)\n options = {};\n\n key = this.keyFromPrivate(key, enc);\n msg = this._truncateToN(new BN(msg, 16));\n\n // Zero-extend key to provide enough entropy\n var bytes = this.n.byteLength();\n var bkey = key.getPrivate().toArray('be', bytes);\n\n // Zero-extend nonce to have the same byte size as N\n var nonce = msg.toArray('be', bytes);\n\n // Instantiate Hmac_DRBG\n var drbg = new HmacDRBG({\n hash: this.hash,\n entropy: bkey,\n nonce: nonce,\n pers: options.pers,\n persEnc: options.persEnc || 'utf8',\n });\n\n // Number of bytes to generate\n var ns1 = this.n.sub(new BN(1));\n\n for (var iter = 0; ; iter++) {\n var k = options.k ?\n options.k(iter) :\n new BN(drbg.generate(this.n.byteLength()));\n k = this._truncateToN(k, true);\n if (k.cmpn(1) <= 0 || k.cmp(ns1) >= 0)\n continue;\n\n var kp = this.g.mul(k);\n if (kp.isInfinity())\n continue;\n\n var kpX = kp.getX();\n var r = kpX.umod(this.n);\n if (r.cmpn(0) === 0)\n continue;\n\n var s = k.invm(this.n).mul(r.mul(key.getPrivate()).iadd(msg));\n s = s.umod(this.n);\n if (s.cmpn(0) === 0)\n continue;\n\n var recoveryParam = (kp.getY().isOdd() ? 1 : 0) |\n (kpX.cmp(r) !== 0 ? 2 : 0);\n\n // Use complement of `s`, if it is > `n / 2`\n if (options.canonical && s.cmp(this.nh) > 0) {\n s = this.n.sub(s);\n recoveryParam ^= 1;\n }\n\n return new Signature({ r: r, s: s, recoveryParam: recoveryParam });\n }\n};\n\nEC.prototype.verify = function verify(msg, signature, key, enc) {\n msg = this._truncateToN(new BN(msg, 16));\n key = this.keyFromPublic(key, enc);\n signature = new Signature(signature, 'hex');\n\n // Perform primitive values validation\n var r = signature.r;\n var s = signature.s;\n if (r.cmpn(1) < 0 || r.cmp(this.n) >= 0)\n return false;\n if (s.cmpn(1) < 0 || s.cmp(this.n) >= 0)\n return false;\n\n // Validate signature\n var sinv = s.invm(this.n);\n var u1 = sinv.mul(msg).umod(this.n);\n var u2 = sinv.mul(r).umod(this.n);\n var p;\n\n if (!this.curve._maxwellTrick) {\n p = this.g.mulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n return p.getX().umod(this.n).cmp(r) === 0;\n }\n\n // NOTE: Greg Maxwell's trick, inspired by:\n // https://git.io/vad3K\n\n p = this.g.jmulAdd(u1, key.getPublic(), u2);\n if (p.isInfinity())\n return false;\n\n // Compare `p.x` of Jacobian point with `r`,\n // this will do `p.x == r * p.z^2` instead of multiplying `p.x` by the\n // inverse of `p.z^2`\n return p.eqXToP(r);\n};\n\nEC.prototype.recoverPubKey = function(msg, signature, j, enc) {\n assert((3 & j) === j, 'The recovery param is more than two bits');\n signature = new Signature(signature, enc);\n\n var n = this.n;\n var e = new BN(msg);\n var r = signature.r;\n var s = signature.s;\n\n // A set LSB signifies that the y-coordinate is odd\n var isYOdd = j & 1;\n var isSecondKey = j >> 1;\n if (r.cmp(this.curve.p.umod(this.curve.n)) >= 0 && isSecondKey)\n throw new Error('Unable to find sencond key candinate');\n\n // 1.1. Let x = r + jn.\n if (isSecondKey)\n r = this.curve.pointFromX(r.add(this.curve.n), isYOdd);\n else\n r = this.curve.pointFromX(r, isYOdd);\n\n var rInv = signature.r.invm(n);\n var s1 = n.sub(e).mul(rInv).umod(n);\n var s2 = s.mul(rInv).umod(n);\n\n // 1.6.1 Compute Q = r^-1 (sR - eG)\n // Q = r^-1 (sR + -eG)\n return this.g.mulAdd(s1, r, s2);\n};\n\nEC.prototype.getKeyRecoveryParam = function(e, signature, Q, enc) {\n signature = new Signature(signature, enc);\n if (signature.recoveryParam !== null)\n return signature.recoveryParam;\n\n for (var i = 0; i < 4; i++) {\n var Qprime;\n try {\n Qprime = this.recoverPubKey(e, signature, i);\n } catch (e) {\n continue;\n }\n\n if (Qprime.eq(Q))\n return i;\n }\n throw new Error('Unable to find valid recovery factor');\n};\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction KeyPair(ec, options) {\n this.ec = ec;\n this.priv = null;\n this.pub = null;\n\n // KeyPair(ec, { priv: ..., pub: ... })\n if (options.priv)\n this._importPrivate(options.priv, options.privEnc);\n if (options.pub)\n this._importPublic(options.pub, options.pubEnc);\n}\nmodule.exports = KeyPair;\n\nKeyPair.fromPublic = function fromPublic(ec, pub, enc) {\n if (pub instanceof KeyPair)\n return pub;\n\n return new KeyPair(ec, {\n pub: pub,\n pubEnc: enc,\n });\n};\n\nKeyPair.fromPrivate = function fromPrivate(ec, priv, enc) {\n if (priv instanceof KeyPair)\n return priv;\n\n return new KeyPair(ec, {\n priv: priv,\n privEnc: enc,\n });\n};\n\nKeyPair.prototype.validate = function validate() {\n var pub = this.getPublic();\n\n if (pub.isInfinity())\n return { result: false, reason: 'Invalid public key' };\n if (!pub.validate())\n return { result: false, reason: 'Public key is not a point' };\n if (!pub.mul(this.ec.curve.n).isInfinity())\n return { result: false, reason: 'Public key * N != O' };\n\n return { result: true, reason: null };\n};\n\nKeyPair.prototype.getPublic = function getPublic(compact, enc) {\n // compact is optional argument\n if (typeof compact === 'string') {\n enc = compact;\n compact = null;\n }\n\n if (!this.pub)\n this.pub = this.ec.g.mul(this.priv);\n\n if (!enc)\n return this.pub;\n\n return this.pub.encode(enc, compact);\n};\n\nKeyPair.prototype.getPrivate = function getPrivate(enc) {\n if (enc === 'hex')\n return this.priv.toString(16, 2);\n else\n return this.priv;\n};\n\nKeyPair.prototype._importPrivate = function _importPrivate(key, enc) {\n this.priv = new BN(key, enc || 16);\n\n // Ensure that the priv won't be bigger than n, otherwise we may fail\n // in fixed multiplication method\n this.priv = this.priv.umod(this.ec.curve.n);\n};\n\nKeyPair.prototype._importPublic = function _importPublic(key, enc) {\n if (key.x || key.y) {\n // Montgomery points only have an `x` coordinate.\n // Weierstrass/Edwards points on the other hand have both `x` and\n // `y` coordinates.\n if (this.ec.curve.type === 'mont') {\n assert(key.x, 'Need x coordinate');\n } else if (this.ec.curve.type === 'short' ||\n this.ec.curve.type === 'edwards') {\n assert(key.x && key.y, 'Need both x and y coordinate');\n }\n this.pub = this.ec.curve.point(key.x, key.y);\n return;\n }\n this.pub = this.ec.curve.decodePoint(key, enc);\n};\n\n// ECDH\nKeyPair.prototype.derive = function derive(pub) {\n if(!pub.validate()) {\n assert(pub.validate(), 'public point not validated');\n }\n return pub.mul(this.priv).getX();\n};\n\n// ECDSA\nKeyPair.prototype.sign = function sign(msg, enc, options) {\n return this.ec.sign(msg, this, enc, options);\n};\n\nKeyPair.prototype.verify = function verify(msg, signature) {\n return this.ec.verify(msg, signature, this);\n};\n\nKeyPair.prototype.inspect = function inspect() {\n return '';\n};\n","'use strict';\n\nvar BN = require('bn.js');\n\nvar utils = require('../utils');\nvar assert = utils.assert;\n\nfunction Signature(options, enc) {\n if (options instanceof Signature)\n return options;\n\n if (this._importDER(options, enc))\n return;\n\n assert(options.r && options.s, 'Signature without r or s');\n this.r = new BN(options.r, 16);\n this.s = new BN(options.s, 16);\n if (options.recoveryParam === undefined)\n this.recoveryParam = null;\n else\n this.recoveryParam = options.recoveryParam;\n}\nmodule.exports = Signature;\n\nfunction Position() {\n this.place = 0;\n}\n\nfunction getLength(buf, p) {\n var initial = buf[p.place++];\n if (!(initial & 0x80)) {\n return initial;\n }\n var octetLen = initial & 0xf;\n\n // Indefinite length or overflow\n if (octetLen === 0 || octetLen > 4) {\n return false;\n }\n\n var val = 0;\n for (var i = 0, off = p.place; i < octetLen; i++, off++) {\n val <<= 8;\n val |= buf[off];\n val >>>= 0;\n }\n\n // Leading zeroes\n if (val <= 0x7f) {\n return false;\n }\n\n p.place = off;\n return val;\n}\n\nfunction rmPadding(buf) {\n var i = 0;\n var len = buf.length - 1;\n while (!buf[i] && !(buf[i + 1] & 0x80) && i < len) {\n i++;\n }\n if (i === 0) {\n return buf;\n }\n return buf.slice(i);\n}\n\nSignature.prototype._importDER = function _importDER(data, enc) {\n data = utils.toArray(data, enc);\n var p = new Position();\n if (data[p.place++] !== 0x30) {\n return false;\n }\n var len = getLength(data, p);\n if (len === false) {\n return false;\n }\n if ((len + p.place) !== data.length) {\n return false;\n }\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var rlen = getLength(data, p);\n if (rlen === false) {\n return false;\n }\n var r = data.slice(p.place, rlen + p.place);\n p.place += rlen;\n if (data[p.place++] !== 0x02) {\n return false;\n }\n var slen = getLength(data, p);\n if (slen === false) {\n return false;\n }\n if (data.length !== slen + p.place) {\n return false;\n }\n var s = data.slice(p.place, slen + p.place);\n if (r[0] === 0) {\n if (r[1] & 0x80) {\n r = r.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n if (s[0] === 0) {\n if (s[1] & 0x80) {\n s = s.slice(1);\n } else {\n // Leading zeroes\n return false;\n }\n }\n\n this.r = new BN(r);\n this.s = new BN(s);\n this.recoveryParam = null;\n\n return true;\n};\n\nfunction constructLength(arr, len) {\n if (len < 0x80) {\n arr.push(len);\n return;\n }\n var octets = 1 + (Math.log(len) / Math.LN2 >>> 3);\n arr.push(octets | 0x80);\n while (--octets) {\n arr.push((len >>> (octets << 3)) & 0xff);\n }\n arr.push(len);\n}\n\nSignature.prototype.toDER = function toDER(enc) {\n var r = this.r.toArray();\n var s = this.s.toArray();\n\n // Pad values\n if (r[0] & 0x80)\n r = [ 0 ].concat(r);\n // Pad values\n if (s[0] & 0x80)\n s = [ 0 ].concat(s);\n\n r = rmPadding(r);\n s = rmPadding(s);\n\n while (!s[0] && !(s[1] & 0x80)) {\n s = s.slice(1);\n }\n var arr = [ 0x02 ];\n constructLength(arr, r.length);\n arr = arr.concat(r);\n arr.push(0x02);\n constructLength(arr, s.length);\n var backHalf = arr.concat(s);\n var res = [ 0x30 ];\n constructLength(res, backHalf.length);\n res = res.concat(backHalf);\n return utils.encode(res, enc);\n};\n","'use strict';\n\nvar hash = require('hash.js');\nvar curves = require('../curves');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar KeyPair = require('./key');\nvar Signature = require('./signature');\n\nfunction EDDSA(curve) {\n assert(curve === 'ed25519', 'only tested with ed25519 so far');\n\n if (!(this instanceof EDDSA))\n return new EDDSA(curve);\n\n curve = curves[curve].curve;\n this.curve = curve;\n this.g = curve.g;\n this.g.precompute(curve.n.bitLength() + 1);\n\n this.pointClass = curve.point().constructor;\n this.encodingLength = Math.ceil(curve.n.bitLength() / 8);\n this.hash = hash.sha512;\n}\n\nmodule.exports = EDDSA;\n\n/**\n* @param {Array|String} message - message bytes\n* @param {Array|String|KeyPair} secret - secret bytes or a keypair\n* @returns {Signature} - signature\n*/\nEDDSA.prototype.sign = function sign(message, secret) {\n message = parseBytes(message);\n var key = this.keyFromSecret(secret);\n var r = this.hashInt(key.messagePrefix(), message);\n var R = this.g.mul(r);\n var Rencoded = this.encodePoint(R);\n var s_ = this.hashInt(Rencoded, key.pubBytes(), message)\n .mul(key.priv());\n var S = r.add(s_).umod(this.curve.n);\n return this.makeSignature({ R: R, S: S, Rencoded: Rencoded });\n};\n\n/**\n* @param {Array} message - message bytes\n* @param {Array|String|Signature} sig - sig bytes\n* @param {Array|String|Point|KeyPair} pub - public key\n* @returns {Boolean} - true if public key matches sig of message\n*/\nEDDSA.prototype.verify = function verify(message, sig, pub) {\n message = parseBytes(message);\n sig = this.makeSignature(sig);\n var key = this.keyFromPublic(pub);\n var h = this.hashInt(sig.Rencoded(), key.pubBytes(), message);\n var SG = this.g.mul(sig.S());\n var RplusAh = sig.R().add(key.pub().mul(h));\n return RplusAh.eq(SG);\n};\n\nEDDSA.prototype.hashInt = function hashInt() {\n var hash = this.hash();\n for (var i = 0; i < arguments.length; i++)\n hash.update(arguments[i]);\n return utils.intFromLE(hash.digest()).umod(this.curve.n);\n};\n\nEDDSA.prototype.keyFromPublic = function keyFromPublic(pub) {\n return KeyPair.fromPublic(this, pub);\n};\n\nEDDSA.prototype.keyFromSecret = function keyFromSecret(secret) {\n return KeyPair.fromSecret(this, secret);\n};\n\nEDDSA.prototype.makeSignature = function makeSignature(sig) {\n if (sig instanceof Signature)\n return sig;\n return new Signature(this, sig);\n};\n\n/**\n* * https://tools.ietf.org/html/draft-josefsson-eddsa-ed25519-03#section-5.2\n*\n* EDDSA defines methods for encoding and decoding points and integers. These are\n* helper convenience methods, that pass along to utility functions implied\n* parameters.\n*\n*/\nEDDSA.prototype.encodePoint = function encodePoint(point) {\n var enc = point.getY().toArray('le', this.encodingLength);\n enc[this.encodingLength - 1] |= point.getX().isOdd() ? 0x80 : 0;\n return enc;\n};\n\nEDDSA.prototype.decodePoint = function decodePoint(bytes) {\n bytes = utils.parseBytes(bytes);\n\n var lastIx = bytes.length - 1;\n var normed = bytes.slice(0, lastIx).concat(bytes[lastIx] & ~0x80);\n var xIsOdd = (bytes[lastIx] & 0x80) !== 0;\n\n var y = utils.intFromLE(normed);\n return this.curve.pointFromY(y, xIsOdd);\n};\n\nEDDSA.prototype.encodeInt = function encodeInt(num) {\n return num.toArray('le', this.encodingLength);\n};\n\nEDDSA.prototype.decodeInt = function decodeInt(bytes) {\n return utils.intFromLE(bytes);\n};\n\nEDDSA.prototype.isPoint = function isPoint(val) {\n return val instanceof this.pointClass;\n};\n","'use strict';\n\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar parseBytes = utils.parseBytes;\nvar cachedProperty = utils.cachedProperty;\n\n/**\n* @param {EDDSA} eddsa - instance\n* @param {Object} params - public/private key parameters\n*\n* @param {Array} [params.secret] - secret seed bytes\n* @param {Point} [params.pub] - public key point (aka `A` in eddsa terms)\n* @param {Array} [params.pub] - public key point encoded as bytes\n*\n*/\nfunction KeyPair(eddsa, params) {\n this.eddsa = eddsa;\n this._secret = parseBytes(params.secret);\n if (eddsa.isPoint(params.pub))\n this._pub = params.pub;\n else\n this._pubBytes = parseBytes(params.pub);\n}\n\nKeyPair.fromPublic = function fromPublic(eddsa, pub) {\n if (pub instanceof KeyPair)\n return pub;\n return new KeyPair(eddsa, { pub: pub });\n};\n\nKeyPair.fromSecret = function fromSecret(eddsa, secret) {\n if (secret instanceof KeyPair)\n return secret;\n return new KeyPair(eddsa, { secret: secret });\n};\n\nKeyPair.prototype.secret = function secret() {\n return this._secret;\n};\n\ncachedProperty(KeyPair, 'pubBytes', function pubBytes() {\n return this.eddsa.encodePoint(this.pub());\n});\n\ncachedProperty(KeyPair, 'pub', function pub() {\n if (this._pubBytes)\n return this.eddsa.decodePoint(this._pubBytes);\n return this.eddsa.g.mul(this.priv());\n});\n\ncachedProperty(KeyPair, 'privBytes', function privBytes() {\n var eddsa = this.eddsa;\n var hash = this.hash();\n var lastIx = eddsa.encodingLength - 1;\n\n var a = hash.slice(0, eddsa.encodingLength);\n a[0] &= 248;\n a[lastIx] &= 127;\n a[lastIx] |= 64;\n\n return a;\n});\n\ncachedProperty(KeyPair, 'priv', function priv() {\n return this.eddsa.decodeInt(this.privBytes());\n});\n\ncachedProperty(KeyPair, 'hash', function hash() {\n return this.eddsa.hash().update(this.secret()).digest();\n});\n\ncachedProperty(KeyPair, 'messagePrefix', function messagePrefix() {\n return this.hash().slice(this.eddsa.encodingLength);\n});\n\nKeyPair.prototype.sign = function sign(message) {\n assert(this._secret, 'KeyPair can only verify');\n return this.eddsa.sign(message, this);\n};\n\nKeyPair.prototype.verify = function verify(message, sig) {\n return this.eddsa.verify(message, sig, this);\n};\n\nKeyPair.prototype.getSecret = function getSecret(enc) {\n assert(this._secret, 'KeyPair is public only');\n return utils.encode(this.secret(), enc);\n};\n\nKeyPair.prototype.getPublic = function getPublic(enc) {\n return utils.encode(this.pubBytes(), enc);\n};\n\nmodule.exports = KeyPair;\n","'use strict';\n\nvar BN = require('bn.js');\nvar utils = require('../utils');\nvar assert = utils.assert;\nvar cachedProperty = utils.cachedProperty;\nvar parseBytes = utils.parseBytes;\n\n/**\n* @param {EDDSA} eddsa - eddsa instance\n* @param {Array|Object} sig -\n* @param {Array|Point} [sig.R] - R point as Point or bytes\n* @param {Array|bn} [sig.S] - S scalar as bn or bytes\n* @param {Array} [sig.Rencoded] - R point encoded\n* @param {Array} [sig.Sencoded] - S scalar encoded\n*/\nfunction Signature(eddsa, sig) {\n this.eddsa = eddsa;\n\n if (typeof sig !== 'object')\n sig = parseBytes(sig);\n\n if (Array.isArray(sig)) {\n sig = {\n R: sig.slice(0, eddsa.encodingLength),\n S: sig.slice(eddsa.encodingLength),\n };\n }\n\n assert(sig.R && sig.S, 'Signature without R or S');\n\n if (eddsa.isPoint(sig.R))\n this._R = sig.R;\n if (sig.S instanceof BN)\n this._S = sig.S;\n\n this._Rencoded = Array.isArray(sig.R) ? sig.R : sig.Rencoded;\n this._Sencoded = Array.isArray(sig.S) ? sig.S : sig.Sencoded;\n}\n\ncachedProperty(Signature, 'S', function S() {\n return this.eddsa.decodeInt(this.Sencoded());\n});\n\ncachedProperty(Signature, 'R', function R() {\n return this.eddsa.decodePoint(this.Rencoded());\n});\n\ncachedProperty(Signature, 'Rencoded', function Rencoded() {\n return this.eddsa.encodePoint(this.R());\n});\n\ncachedProperty(Signature, 'Sencoded', function Sencoded() {\n return this.eddsa.encodeInt(this.S());\n});\n\nSignature.prototype.toBytes = function toBytes() {\n return this.Rencoded().concat(this.Sencoded());\n};\n\nSignature.prototype.toHex = function toHex() {\n return utils.encode(this.toBytes(), 'hex').toUpperCase();\n};\n\nmodule.exports = Signature;\n","module.exports = {\n doubles: {\n step: 4,\n points: [\n [\n 'e60fce93b59e9ec53011aabc21c23e97b2a31369b87a5ae9c44ee89e2a6dec0a',\n 'f7e3507399e595929db99f34f57937101296891e44d23f0be1f32cce69616821',\n ],\n [\n '8282263212c609d9ea2a6e3e172de238d8c39cabd5ac1ca10646e23fd5f51508',\n '11f8a8098557dfe45e8256e830b60ace62d613ac2f7b17bed31b6eaff6e26caf',\n ],\n [\n '175e159f728b865a72f99cc6c6fc846de0b93833fd2222ed73fce5b551e5b739',\n 'd3506e0d9e3c79eba4ef97a51ff71f5eacb5955add24345c6efa6ffee9fed695',\n ],\n [\n '363d90d447b00c9c99ceac05b6262ee053441c7e55552ffe526bad8f83ff4640',\n '4e273adfc732221953b445397f3363145b9a89008199ecb62003c7f3bee9de9',\n ],\n [\n '8b4b5f165df3c2be8c6244b5b745638843e4a781a15bcd1b69f79a55dffdf80c',\n '4aad0a6f68d308b4b3fbd7813ab0da04f9e336546162ee56b3eff0c65fd4fd36',\n ],\n [\n '723cbaa6e5db996d6bf771c00bd548c7b700dbffa6c0e77bcb6115925232fcda',\n '96e867b5595cc498a921137488824d6e2660a0653779494801dc069d9eb39f5f',\n ],\n [\n 'eebfa4d493bebf98ba5feec812c2d3b50947961237a919839a533eca0e7dd7fa',\n '5d9a8ca3970ef0f269ee7edaf178089d9ae4cdc3a711f712ddfd4fdae1de8999',\n ],\n [\n '100f44da696e71672791d0a09b7bde459f1215a29b3c03bfefd7835b39a48db0',\n 'cdd9e13192a00b772ec8f3300c090666b7ff4a18ff5195ac0fbd5cd62bc65a09',\n ],\n [\n 'e1031be262c7ed1b1dc9227a4a04c017a77f8d4464f3b3852c8acde6e534fd2d',\n '9d7061928940405e6bb6a4176597535af292dd419e1ced79a44f18f29456a00d',\n ],\n [\n 'feea6cae46d55b530ac2839f143bd7ec5cf8b266a41d6af52d5e688d9094696d',\n 'e57c6b6c97dce1bab06e4e12bf3ecd5c981c8957cc41442d3155debf18090088',\n ],\n [\n 'da67a91d91049cdcb367be4be6ffca3cfeed657d808583de33fa978bc1ec6cb1',\n '9bacaa35481642bc41f463f7ec9780e5dec7adc508f740a17e9ea8e27a68be1d',\n ],\n [\n '53904faa0b334cdda6e000935ef22151ec08d0f7bb11069f57545ccc1a37b7c0',\n '5bc087d0bc80106d88c9eccac20d3c1c13999981e14434699dcb096b022771c8',\n ],\n [\n '8e7bcd0bd35983a7719cca7764ca906779b53a043a9b8bcaeff959f43ad86047',\n '10b7770b2a3da4b3940310420ca9514579e88e2e47fd68b3ea10047e8460372a',\n ],\n [\n '385eed34c1cdff21e6d0818689b81bde71a7f4f18397e6690a841e1599c43862',\n '283bebc3e8ea23f56701de19e9ebf4576b304eec2086dc8cc0458fe5542e5453',\n ],\n [\n '6f9d9b803ecf191637c73a4413dfa180fddf84a5947fbc9c606ed86c3fac3a7',\n '7c80c68e603059ba69b8e2a30e45c4d47ea4dd2f5c281002d86890603a842160',\n ],\n [\n '3322d401243c4e2582a2147c104d6ecbf774d163db0f5e5313b7e0e742d0e6bd',\n '56e70797e9664ef5bfb019bc4ddaf9b72805f63ea2873af624f3a2e96c28b2a0',\n ],\n [\n '85672c7d2de0b7da2bd1770d89665868741b3f9af7643397721d74d28134ab83',\n '7c481b9b5b43b2eb6374049bfa62c2e5e77f17fcc5298f44c8e3094f790313a6',\n ],\n [\n '948bf809b1988a46b06c9f1919413b10f9226c60f668832ffd959af60c82a0a',\n '53a562856dcb6646dc6b74c5d1c3418c6d4dff08c97cd2bed4cb7f88d8c8e589',\n ],\n [\n '6260ce7f461801c34f067ce0f02873a8f1b0e44dfc69752accecd819f38fd8e8',\n 'bc2da82b6fa5b571a7f09049776a1ef7ecd292238051c198c1a84e95b2b4ae17',\n ],\n [\n 'e5037de0afc1d8d43d8348414bbf4103043ec8f575bfdc432953cc8d2037fa2d',\n '4571534baa94d3b5f9f98d09fb990bddbd5f5b03ec481f10e0e5dc841d755bda',\n ],\n [\n 'e06372b0f4a207adf5ea905e8f1771b4e7e8dbd1c6a6c5b725866a0ae4fce725',\n '7a908974bce18cfe12a27bb2ad5a488cd7484a7787104870b27034f94eee31dd',\n ],\n [\n '213c7a715cd5d45358d0bbf9dc0ce02204b10bdde2a3f58540ad6908d0559754',\n '4b6dad0b5ae462507013ad06245ba190bb4850f5f36a7eeddff2c27534b458f2',\n ],\n [\n '4e7c272a7af4b34e8dbb9352a5419a87e2838c70adc62cddf0cc3a3b08fbd53c',\n '17749c766c9d0b18e16fd09f6def681b530b9614bff7dd33e0b3941817dcaae6',\n ],\n [\n 'fea74e3dbe778b1b10f238ad61686aa5c76e3db2be43057632427e2840fb27b6',\n '6e0568db9b0b13297cf674deccb6af93126b596b973f7b77701d3db7f23cb96f',\n ],\n [\n '76e64113f677cf0e10a2570d599968d31544e179b760432952c02a4417bdde39',\n 'c90ddf8dee4e95cf577066d70681f0d35e2a33d2b56d2032b4b1752d1901ac01',\n ],\n [\n 'c738c56b03b2abe1e8281baa743f8f9a8f7cc643df26cbee3ab150242bcbb891',\n '893fb578951ad2537f718f2eacbfbbbb82314eef7880cfe917e735d9699a84c3',\n ],\n [\n 'd895626548b65b81e264c7637c972877d1d72e5f3a925014372e9f6588f6c14b',\n 'febfaa38f2bc7eae728ec60818c340eb03428d632bb067e179363ed75d7d991f',\n ],\n [\n 'b8da94032a957518eb0f6433571e8761ceffc73693e84edd49150a564f676e03',\n '2804dfa44805a1e4d7c99cc9762808b092cc584d95ff3b511488e4e74efdf6e7',\n ],\n [\n 'e80fea14441fb33a7d8adab9475d7fab2019effb5156a792f1a11778e3c0df5d',\n 'eed1de7f638e00771e89768ca3ca94472d155e80af322ea9fcb4291b6ac9ec78',\n ],\n [\n 'a301697bdfcd704313ba48e51d567543f2a182031efd6915ddc07bbcc4e16070',\n '7370f91cfb67e4f5081809fa25d40f9b1735dbf7c0a11a130c0d1a041e177ea1',\n ],\n [\n '90ad85b389d6b936463f9d0512678de208cc330b11307fffab7ac63e3fb04ed4',\n 'e507a3620a38261affdcbd9427222b839aefabe1582894d991d4d48cb6ef150',\n ],\n [\n '8f68b9d2f63b5f339239c1ad981f162ee88c5678723ea3351b7b444c9ec4c0da',\n '662a9f2dba063986de1d90c2b6be215dbbea2cfe95510bfdf23cbf79501fff82',\n ],\n [\n 'e4f3fb0176af85d65ff99ff9198c36091f48e86503681e3e6686fd5053231e11',\n '1e63633ad0ef4f1c1661a6d0ea02b7286cc7e74ec951d1c9822c38576feb73bc',\n ],\n [\n '8c00fa9b18ebf331eb961537a45a4266c7034f2f0d4e1d0716fb6eae20eae29e',\n 'efa47267fea521a1a9dc343a3736c974c2fadafa81e36c54e7d2a4c66702414b',\n ],\n [\n 'e7a26ce69dd4829f3e10cec0a9e98ed3143d084f308b92c0997fddfc60cb3e41',\n '2a758e300fa7984b471b006a1aafbb18d0a6b2c0420e83e20e8a9421cf2cfd51',\n ],\n [\n 'b6459e0ee3662ec8d23540c223bcbdc571cbcb967d79424f3cf29eb3de6b80ef',\n '67c876d06f3e06de1dadf16e5661db3c4b3ae6d48e35b2ff30bf0b61a71ba45',\n ],\n [\n 'd68a80c8280bb840793234aa118f06231d6f1fc67e73c5a5deda0f5b496943e8',\n 'db8ba9fff4b586d00c4b1f9177b0e28b5b0e7b8f7845295a294c84266b133120',\n ],\n [\n '324aed7df65c804252dc0270907a30b09612aeb973449cea4095980fc28d3d5d',\n '648a365774b61f2ff130c0c35aec1f4f19213b0c7e332843967224af96ab7c84',\n ],\n [\n '4df9c14919cde61f6d51dfdbe5fee5dceec4143ba8d1ca888e8bd373fd054c96',\n '35ec51092d8728050974c23a1d85d4b5d506cdc288490192ebac06cad10d5d',\n ],\n [\n '9c3919a84a474870faed8a9c1cc66021523489054d7f0308cbfc99c8ac1f98cd',\n 'ddb84f0f4a4ddd57584f044bf260e641905326f76c64c8e6be7e5e03d4fc599d',\n ],\n [\n '6057170b1dd12fdf8de05f281d8e06bb91e1493a8b91d4cc5a21382120a959e5',\n '9a1af0b26a6a4807add9a2daf71df262465152bc3ee24c65e899be932385a2a8',\n ],\n [\n 'a576df8e23a08411421439a4518da31880cef0fba7d4df12b1a6973eecb94266',\n '40a6bf20e76640b2c92b97afe58cd82c432e10a7f514d9f3ee8be11ae1b28ec8',\n ],\n [\n '7778a78c28dec3e30a05fe9629de8c38bb30d1f5cf9a3a208f763889be58ad71',\n '34626d9ab5a5b22ff7098e12f2ff580087b38411ff24ac563b513fc1fd9f43ac',\n ],\n [\n '928955ee637a84463729fd30e7afd2ed5f96274e5ad7e5cb09eda9c06d903ac',\n 'c25621003d3f42a827b78a13093a95eeac3d26efa8a8d83fc5180e935bcd091f',\n ],\n [\n '85d0fef3ec6db109399064f3a0e3b2855645b4a907ad354527aae75163d82751',\n '1f03648413a38c0be29d496e582cf5663e8751e96877331582c237a24eb1f962',\n ],\n [\n 'ff2b0dce97eece97c1c9b6041798b85dfdfb6d8882da20308f5404824526087e',\n '493d13fef524ba188af4c4dc54d07936c7b7ed6fb90e2ceb2c951e01f0c29907',\n ],\n [\n '827fbbe4b1e880ea9ed2b2e6301b212b57f1ee148cd6dd28780e5e2cf856e241',\n 'c60f9c923c727b0b71bef2c67d1d12687ff7a63186903166d605b68baec293ec',\n ],\n [\n 'eaa649f21f51bdbae7be4ae34ce6e5217a58fdce7f47f9aa7f3b58fa2120e2b3',\n 'be3279ed5bbbb03ac69a80f89879aa5a01a6b965f13f7e59d47a5305ba5ad93d',\n ],\n [\n 'e4a42d43c5cf169d9391df6decf42ee541b6d8f0c9a137401e23632dda34d24f',\n '4d9f92e716d1c73526fc99ccfb8ad34ce886eedfa8d8e4f13a7f7131deba9414',\n ],\n [\n '1ec80fef360cbdd954160fadab352b6b92b53576a88fea4947173b9d4300bf19',\n 'aeefe93756b5340d2f3a4958a7abbf5e0146e77f6295a07b671cdc1cc107cefd',\n ],\n [\n '146a778c04670c2f91b00af4680dfa8bce3490717d58ba889ddb5928366642be',\n 'b318e0ec3354028add669827f9d4b2870aaa971d2f7e5ed1d0b297483d83efd0',\n ],\n [\n 'fa50c0f61d22e5f07e3acebb1aa07b128d0012209a28b9776d76a8793180eef9',\n '6b84c6922397eba9b72cd2872281a68a5e683293a57a213b38cd8d7d3f4f2811',\n ],\n [\n 'da1d61d0ca721a11b1a5bf6b7d88e8421a288ab5d5bba5220e53d32b5f067ec2',\n '8157f55a7c99306c79c0766161c91e2966a73899d279b48a655fba0f1ad836f1',\n ],\n [\n 'a8e282ff0c9706907215ff98e8fd416615311de0446f1e062a73b0610d064e13',\n '7f97355b8db81c09abfb7f3c5b2515888b679a3e50dd6bd6cef7c73111f4cc0c',\n ],\n [\n '174a53b9c9a285872d39e56e6913cab15d59b1fa512508c022f382de8319497c',\n 'ccc9dc37abfc9c1657b4155f2c47f9e6646b3a1d8cb9854383da13ac079afa73',\n ],\n [\n '959396981943785c3d3e57edf5018cdbe039e730e4918b3d884fdff09475b7ba',\n '2e7e552888c331dd8ba0386a4b9cd6849c653f64c8709385e9b8abf87524f2fd',\n ],\n [\n 'd2a63a50ae401e56d645a1153b109a8fcca0a43d561fba2dbb51340c9d82b151',\n 'e82d86fb6443fcb7565aee58b2948220a70f750af484ca52d4142174dcf89405',\n ],\n [\n '64587e2335471eb890ee7896d7cfdc866bacbdbd3839317b3436f9b45617e073',\n 'd99fcdd5bf6902e2ae96dd6447c299a185b90a39133aeab358299e5e9faf6589',\n ],\n [\n '8481bde0e4e4d885b3a546d3e549de042f0aa6cea250e7fd358d6c86dd45e458',\n '38ee7b8cba5404dd84a25bf39cecb2ca900a79c42b262e556d64b1b59779057e',\n ],\n [\n '13464a57a78102aa62b6979ae817f4637ffcfed3c4b1ce30bcd6303f6caf666b',\n '69be159004614580ef7e433453ccb0ca48f300a81d0942e13f495a907f6ecc27',\n ],\n [\n 'bc4a9df5b713fe2e9aef430bcc1dc97a0cd9ccede2f28588cada3a0d2d83f366',\n 'd3a81ca6e785c06383937adf4b798caa6e8a9fbfa547b16d758d666581f33c1',\n ],\n [\n '8c28a97bf8298bc0d23d8c749452a32e694b65e30a9472a3954ab30fe5324caa',\n '40a30463a3305193378fedf31f7cc0eb7ae784f0451cb9459e71dc73cbef9482',\n ],\n [\n '8ea9666139527a8c1dd94ce4f071fd23c8b350c5a4bb33748c4ba111faccae0',\n '620efabbc8ee2782e24e7c0cfb95c5d735b783be9cf0f8e955af34a30e62b945',\n ],\n [\n 'dd3625faef5ba06074669716bbd3788d89bdde815959968092f76cc4eb9a9787',\n '7a188fa3520e30d461da2501045731ca941461982883395937f68d00c644a573',\n ],\n [\n 'f710d79d9eb962297e4f6232b40e8f7feb2bc63814614d692c12de752408221e',\n 'ea98e67232d3b3295d3b535532115ccac8612c721851617526ae47a9c77bfc82',\n ],\n ],\n },\n naf: {\n wnd: 7,\n points: [\n [\n 'f9308a019258c31049344f85f89d5229b531c845836f99b08601f113bce036f9',\n '388f7b0f632de8140fe337e62a37f3566500a99934c2231b6cb9fd7584b8e672',\n ],\n [\n '2f8bde4d1a07209355b4a7250a5c5128e88b84bddc619ab7cba8d569b240efe4',\n 'd8ac222636e5e3d6d4dba9dda6c9c426f788271bab0d6840dca87d3aa6ac62d6',\n ],\n [\n '5cbdf0646e5db4eaa398f365f2ea7a0e3d419b7e0330e39ce92bddedcac4f9bc',\n '6aebca40ba255960a3178d6d861a54dba813d0b813fde7b5a5082628087264da',\n ],\n [\n 'acd484e2f0c7f65309ad178a9f559abde09796974c57e714c35f110dfc27ccbe',\n 'cc338921b0a7d9fd64380971763b61e9add888a4375f8e0f05cc262ac64f9c37',\n ],\n [\n '774ae7f858a9411e5ef4246b70c65aac5649980be5c17891bbec17895da008cb',\n 'd984a032eb6b5e190243dd56d7b7b365372db1e2dff9d6a8301d74c9c953c61b',\n ],\n [\n 'f28773c2d975288bc7d1d205c3748651b075fbc6610e58cddeeddf8f19405aa8',\n 'ab0902e8d880a89758212eb65cdaf473a1a06da521fa91f29b5cb52db03ed81',\n ],\n [\n 'd7924d4f7d43ea965a465ae3095ff41131e5946f3c85f79e44adbcf8e27e080e',\n '581e2872a86c72a683842ec228cc6defea40af2bd896d3a5c504dc9ff6a26b58',\n ],\n [\n 'defdea4cdb677750a420fee807eacf21eb9898ae79b9768766e4faa04a2d4a34',\n '4211ab0694635168e997b0ead2a93daeced1f4a04a95c0f6cfb199f69e56eb77',\n ],\n [\n '2b4ea0a797a443d293ef5cff444f4979f06acfebd7e86d277475656138385b6c',\n '85e89bc037945d93b343083b5a1c86131a01f60c50269763b570c854e5c09b7a',\n ],\n [\n '352bbf4a4cdd12564f93fa332ce333301d9ad40271f8107181340aef25be59d5',\n '321eb4075348f534d59c18259dda3e1f4a1b3b2e71b1039c67bd3d8bcf81998c',\n ],\n [\n '2fa2104d6b38d11b0230010559879124e42ab8dfeff5ff29dc9cdadd4ecacc3f',\n '2de1068295dd865b64569335bd5dd80181d70ecfc882648423ba76b532b7d67',\n ],\n [\n '9248279b09b4d68dab21a9b066edda83263c3d84e09572e269ca0cd7f5453714',\n '73016f7bf234aade5d1aa71bdea2b1ff3fc0de2a887912ffe54a32ce97cb3402',\n ],\n [\n 'daed4f2be3a8bf278e70132fb0beb7522f570e144bf615c07e996d443dee8729',\n 'a69dce4a7d6c98e8d4a1aca87ef8d7003f83c230f3afa726ab40e52290be1c55',\n ],\n [\n 'c44d12c7065d812e8acf28d7cbb19f9011ecd9e9fdf281b0e6a3b5e87d22e7db',\n '2119a460ce326cdc76c45926c982fdac0e106e861edf61c5a039063f0e0e6482',\n ],\n [\n '6a245bf6dc698504c89a20cfded60853152b695336c28063b61c65cbd269e6b4',\n 'e022cf42c2bd4a708b3f5126f16a24ad8b33ba48d0423b6efd5e6348100d8a82',\n ],\n [\n '1697ffa6fd9de627c077e3d2fe541084ce13300b0bec1146f95ae57f0d0bd6a5',\n 'b9c398f186806f5d27561506e4557433a2cf15009e498ae7adee9d63d01b2396',\n ],\n [\n '605bdb019981718b986d0f07e834cb0d9deb8360ffb7f61df982345ef27a7479',\n '2972d2de4f8d20681a78d93ec96fe23c26bfae84fb14db43b01e1e9056b8c49',\n ],\n [\n '62d14dab4150bf497402fdc45a215e10dcb01c354959b10cfe31c7e9d87ff33d',\n '80fc06bd8cc5b01098088a1950eed0db01aa132967ab472235f5642483b25eaf',\n ],\n [\n '80c60ad0040f27dade5b4b06c408e56b2c50e9f56b9b8b425e555c2f86308b6f',\n '1c38303f1cc5c30f26e66bad7fe72f70a65eed4cbe7024eb1aa01f56430bd57a',\n ],\n [\n '7a9375ad6167ad54aa74c6348cc54d344cc5dc9487d847049d5eabb0fa03c8fb',\n 'd0e3fa9eca8726909559e0d79269046bdc59ea10c70ce2b02d499ec224dc7f7',\n ],\n [\n 'd528ecd9b696b54c907a9ed045447a79bb408ec39b68df504bb51f459bc3ffc9',\n 'eecf41253136e5f99966f21881fd656ebc4345405c520dbc063465b521409933',\n ],\n [\n '49370a4b5f43412ea25f514e8ecdad05266115e4a7ecb1387231808f8b45963',\n '758f3f41afd6ed428b3081b0512fd62a54c3f3afbb5b6764b653052a12949c9a',\n ],\n [\n '77f230936ee88cbbd73df930d64702ef881d811e0e1498e2f1c13eb1fc345d74',\n '958ef42a7886b6400a08266e9ba1b37896c95330d97077cbbe8eb3c7671c60d6',\n ],\n [\n 'f2dac991cc4ce4b9ea44887e5c7c0bce58c80074ab9d4dbaeb28531b7739f530',\n 'e0dedc9b3b2f8dad4da1f32dec2531df9eb5fbeb0598e4fd1a117dba703a3c37',\n ],\n [\n '463b3d9f662621fb1b4be8fbbe2520125a216cdfc9dae3debcba4850c690d45b',\n '5ed430d78c296c3543114306dd8622d7c622e27c970a1de31cb377b01af7307e',\n ],\n [\n 'f16f804244e46e2a09232d4aff3b59976b98fac14328a2d1a32496b49998f247',\n 'cedabd9b82203f7e13d206fcdf4e33d92a6c53c26e5cce26d6579962c4e31df6',\n ],\n [\n 'caf754272dc84563b0352b7a14311af55d245315ace27c65369e15f7151d41d1',\n 'cb474660ef35f5f2a41b643fa5e460575f4fa9b7962232a5c32f908318a04476',\n ],\n [\n '2600ca4b282cb986f85d0f1709979d8b44a09c07cb86d7c124497bc86f082120',\n '4119b88753c15bd6a693b03fcddbb45d5ac6be74ab5f0ef44b0be9475a7e4b40',\n ],\n [\n '7635ca72d7e8432c338ec53cd12220bc01c48685e24f7dc8c602a7746998e435',\n '91b649609489d613d1d5e590f78e6d74ecfc061d57048bad9e76f302c5b9c61',\n ],\n [\n '754e3239f325570cdbbf4a87deee8a66b7f2b33479d468fbc1a50743bf56cc18',\n '673fb86e5bda30fb3cd0ed304ea49a023ee33d0197a695d0c5d98093c536683',\n ],\n [\n 'e3e6bd1071a1e96aff57859c82d570f0330800661d1c952f9fe2694691d9b9e8',\n '59c9e0bba394e76f40c0aa58379a3cb6a5a2283993e90c4167002af4920e37f5',\n ],\n [\n '186b483d056a033826ae73d88f732985c4ccb1f32ba35f4b4cc47fdcf04aa6eb',\n '3b952d32c67cf77e2e17446e204180ab21fb8090895138b4a4a797f86e80888b',\n ],\n [\n 'df9d70a6b9876ce544c98561f4be4f725442e6d2b737d9c91a8321724ce0963f',\n '55eb2dafd84d6ccd5f862b785dc39d4ab157222720ef9da217b8c45cf2ba2417',\n ],\n [\n '5edd5cc23c51e87a497ca815d5dce0f8ab52554f849ed8995de64c5f34ce7143',\n 'efae9c8dbc14130661e8cec030c89ad0c13c66c0d17a2905cdc706ab7399a868',\n ],\n [\n '290798c2b6476830da12fe02287e9e777aa3fba1c355b17a722d362f84614fba',\n 'e38da76dcd440621988d00bcf79af25d5b29c094db2a23146d003afd41943e7a',\n ],\n [\n 'af3c423a95d9f5b3054754efa150ac39cd29552fe360257362dfdecef4053b45',\n 'f98a3fd831eb2b749a93b0e6f35cfb40c8cd5aa667a15581bc2feded498fd9c6',\n ],\n [\n '766dbb24d134e745cccaa28c99bf274906bb66b26dcf98df8d2fed50d884249a',\n '744b1152eacbe5e38dcc887980da38b897584a65fa06cedd2c924f97cbac5996',\n ],\n [\n '59dbf46f8c94759ba21277c33784f41645f7b44f6c596a58ce92e666191abe3e',\n 'c534ad44175fbc300f4ea6ce648309a042ce739a7919798cd85e216c4a307f6e',\n ],\n [\n 'f13ada95103c4537305e691e74e9a4a8dd647e711a95e73cb62dc6018cfd87b8',\n 'e13817b44ee14de663bf4bc808341f326949e21a6a75c2570778419bdaf5733d',\n ],\n [\n '7754b4fa0e8aced06d4167a2c59cca4cda1869c06ebadfb6488550015a88522c',\n '30e93e864e669d82224b967c3020b8fa8d1e4e350b6cbcc537a48b57841163a2',\n ],\n [\n '948dcadf5990e048aa3874d46abef9d701858f95de8041d2a6828c99e2262519',\n 'e491a42537f6e597d5d28a3224b1bc25df9154efbd2ef1d2cbba2cae5347d57e',\n ],\n [\n '7962414450c76c1689c7b48f8202ec37fb224cf5ac0bfa1570328a8a3d7c77ab',\n '100b610ec4ffb4760d5c1fc133ef6f6b12507a051f04ac5760afa5b29db83437',\n ],\n [\n '3514087834964b54b15b160644d915485a16977225b8847bb0dd085137ec47ca',\n 'ef0afbb2056205448e1652c48e8127fc6039e77c15c2378b7e7d15a0de293311',\n ],\n [\n 'd3cc30ad6b483e4bc79ce2c9dd8bc54993e947eb8df787b442943d3f7b527eaf',\n '8b378a22d827278d89c5e9be8f9508ae3c2ad46290358630afb34db04eede0a4',\n ],\n [\n '1624d84780732860ce1c78fcbfefe08b2b29823db913f6493975ba0ff4847610',\n '68651cf9b6da903e0914448c6cd9d4ca896878f5282be4c8cc06e2a404078575',\n ],\n [\n '733ce80da955a8a26902c95633e62a985192474b5af207da6df7b4fd5fc61cd4',\n 'f5435a2bd2badf7d485a4d8b8db9fcce3e1ef8e0201e4578c54673bc1dc5ea1d',\n ],\n [\n '15d9441254945064cf1a1c33bbd3b49f8966c5092171e699ef258dfab81c045c',\n 'd56eb30b69463e7234f5137b73b84177434800bacebfc685fc37bbe9efe4070d',\n ],\n [\n 'a1d0fcf2ec9de675b612136e5ce70d271c21417c9d2b8aaaac138599d0717940',\n 'edd77f50bcb5a3cab2e90737309667f2641462a54070f3d519212d39c197a629',\n ],\n [\n 'e22fbe15c0af8ccc5780c0735f84dbe9a790badee8245c06c7ca37331cb36980',\n 'a855babad5cd60c88b430a69f53a1a7a38289154964799be43d06d77d31da06',\n ],\n [\n '311091dd9860e8e20ee13473c1155f5f69635e394704eaa74009452246cfa9b3',\n '66db656f87d1f04fffd1f04788c06830871ec5a64feee685bd80f0b1286d8374',\n ],\n [\n '34c1fd04d301be89b31c0442d3e6ac24883928b45a9340781867d4232ec2dbdf',\n '9414685e97b1b5954bd46f730174136d57f1ceeb487443dc5321857ba73abee',\n ],\n [\n 'f219ea5d6b54701c1c14de5b557eb42a8d13f3abbcd08affcc2a5e6b049b8d63',\n '4cb95957e83d40b0f73af4544cccf6b1f4b08d3c07b27fb8d8c2962a400766d1',\n ],\n [\n 'd7b8740f74a8fbaab1f683db8f45de26543a5490bca627087236912469a0b448',\n 'fa77968128d9c92ee1010f337ad4717eff15db5ed3c049b3411e0315eaa4593b',\n ],\n [\n '32d31c222f8f6f0ef86f7c98d3a3335ead5bcd32abdd94289fe4d3091aa824bf',\n '5f3032f5892156e39ccd3d7915b9e1da2e6dac9e6f26e961118d14b8462e1661',\n ],\n [\n '7461f371914ab32671045a155d9831ea8793d77cd59592c4340f86cbc18347b5',\n '8ec0ba238b96bec0cbdddcae0aa442542eee1ff50c986ea6b39847b3cc092ff6',\n ],\n [\n 'ee079adb1df1860074356a25aa38206a6d716b2c3e67453d287698bad7b2b2d6',\n '8dc2412aafe3be5c4c5f37e0ecc5f9f6a446989af04c4e25ebaac479ec1c8c1e',\n ],\n [\n '16ec93e447ec83f0467b18302ee620f7e65de331874c9dc72bfd8616ba9da6b5',\n '5e4631150e62fb40d0e8c2a7ca5804a39d58186a50e497139626778e25b0674d',\n ],\n [\n 'eaa5f980c245f6f038978290afa70b6bd8855897f98b6aa485b96065d537bd99',\n 'f65f5d3e292c2e0819a528391c994624d784869d7e6ea67fb18041024edc07dc',\n ],\n [\n '78c9407544ac132692ee1910a02439958ae04877151342ea96c4b6b35a49f51',\n 'f3e0319169eb9b85d5404795539a5e68fa1fbd583c064d2462b675f194a3ddb4',\n ],\n [\n '494f4be219a1a77016dcd838431aea0001cdc8ae7a6fc688726578d9702857a5',\n '42242a969283a5f339ba7f075e36ba2af925ce30d767ed6e55f4b031880d562c',\n ],\n [\n 'a598a8030da6d86c6bc7f2f5144ea549d28211ea58faa70ebf4c1e665c1fe9b5',\n '204b5d6f84822c307e4b4a7140737aec23fc63b65b35f86a10026dbd2d864e6b',\n ],\n [\n 'c41916365abb2b5d09192f5f2dbeafec208f020f12570a184dbadc3e58595997',\n '4f14351d0087efa49d245b328984989d5caf9450f34bfc0ed16e96b58fa9913',\n ],\n [\n '841d6063a586fa475a724604da03bc5b92a2e0d2e0a36acfe4c73a5514742881',\n '73867f59c0659e81904f9a1c7543698e62562d6744c169ce7a36de01a8d6154',\n ],\n [\n '5e95bb399a6971d376026947f89bde2f282b33810928be4ded112ac4d70e20d5',\n '39f23f366809085beebfc71181313775a99c9aed7d8ba38b161384c746012865',\n ],\n [\n '36e4641a53948fd476c39f8a99fd974e5ec07564b5315d8bf99471bca0ef2f66',\n 'd2424b1b1abe4eb8164227b085c9aa9456ea13493fd563e06fd51cf5694c78fc',\n ],\n [\n '336581ea7bfbbb290c191a2f507a41cf5643842170e914faeab27c2c579f726',\n 'ead12168595fe1be99252129b6e56b3391f7ab1410cd1e0ef3dcdcabd2fda224',\n ],\n [\n '8ab89816dadfd6b6a1f2634fcf00ec8403781025ed6890c4849742706bd43ede',\n '6fdcef09f2f6d0a044e654aef624136f503d459c3e89845858a47a9129cdd24e',\n ],\n [\n '1e33f1a746c9c5778133344d9299fcaa20b0938e8acff2544bb40284b8c5fb94',\n '60660257dd11b3aa9c8ed618d24edff2306d320f1d03010e33a7d2057f3b3b6',\n ],\n [\n '85b7c1dcb3cec1b7ee7f30ded79dd20a0ed1f4cc18cbcfcfa410361fd8f08f31',\n '3d98a9cdd026dd43f39048f25a8847f4fcafad1895d7a633c6fed3c35e999511',\n ],\n [\n '29df9fbd8d9e46509275f4b125d6d45d7fbe9a3b878a7af872a2800661ac5f51',\n 'b4c4fe99c775a606e2d8862179139ffda61dc861c019e55cd2876eb2a27d84b',\n ],\n [\n 'a0b1cae06b0a847a3fea6e671aaf8adfdfe58ca2f768105c8082b2e449fce252',\n 'ae434102edde0958ec4b19d917a6a28e6b72da1834aff0e650f049503a296cf2',\n ],\n [\n '4e8ceafb9b3e9a136dc7ff67e840295b499dfb3b2133e4ba113f2e4c0e121e5',\n 'cf2174118c8b6d7a4b48f6d534ce5c79422c086a63460502b827ce62a326683c',\n ],\n [\n 'd24a44e047e19b6f5afb81c7ca2f69080a5076689a010919f42725c2b789a33b',\n '6fb8d5591b466f8fc63db50f1c0f1c69013f996887b8244d2cdec417afea8fa3',\n ],\n [\n 'ea01606a7a6c9cdd249fdfcfacb99584001edd28abbab77b5104e98e8e3b35d4',\n '322af4908c7312b0cfbfe369f7a7b3cdb7d4494bc2823700cfd652188a3ea98d',\n ],\n [\n 'af8addbf2b661c8a6c6328655eb96651252007d8c5ea31be4ad196de8ce2131f',\n '6749e67c029b85f52a034eafd096836b2520818680e26ac8f3dfbcdb71749700',\n ],\n [\n 'e3ae1974566ca06cc516d47e0fb165a674a3dabcfca15e722f0e3450f45889',\n '2aeabe7e4531510116217f07bf4d07300de97e4874f81f533420a72eeb0bd6a4',\n ],\n [\n '591ee355313d99721cf6993ffed1e3e301993ff3ed258802075ea8ced397e246',\n 'b0ea558a113c30bea60fc4775460c7901ff0b053d25ca2bdeee98f1a4be5d196',\n ],\n [\n '11396d55fda54c49f19aa97318d8da61fa8584e47b084945077cf03255b52984',\n '998c74a8cd45ac01289d5833a7beb4744ff536b01b257be4c5767bea93ea57a4',\n ],\n [\n '3c5d2a1ba39c5a1790000738c9e0c40b8dcdfd5468754b6405540157e017aa7a',\n 'b2284279995a34e2f9d4de7396fc18b80f9b8b9fdd270f6661f79ca4c81bd257',\n ],\n [\n 'cc8704b8a60a0defa3a99a7299f2e9c3fbc395afb04ac078425ef8a1793cc030',\n 'bdd46039feed17881d1e0862db347f8cf395b74fc4bcdc4e940b74e3ac1f1b13',\n ],\n [\n 'c533e4f7ea8555aacd9777ac5cad29b97dd4defccc53ee7ea204119b2889b197',\n '6f0a256bc5efdf429a2fb6242f1a43a2d9b925bb4a4b3a26bb8e0f45eb596096',\n ],\n [\n 'c14f8f2ccb27d6f109f6d08d03cc96a69ba8c34eec07bbcf566d48e33da6593',\n 'c359d6923bb398f7fd4473e16fe1c28475b740dd098075e6c0e8649113dc3a38',\n ],\n [\n 'a6cbc3046bc6a450bac24789fa17115a4c9739ed75f8f21ce441f72e0b90e6ef',\n '21ae7f4680e889bb130619e2c0f95a360ceb573c70603139862afd617fa9b9f',\n ],\n [\n '347d6d9a02c48927ebfb86c1359b1caf130a3c0267d11ce6344b39f99d43cc38',\n '60ea7f61a353524d1c987f6ecec92f086d565ab687870cb12689ff1e31c74448',\n ],\n [\n 'da6545d2181db8d983f7dcb375ef5866d47c67b1bf31c8cf855ef7437b72656a',\n '49b96715ab6878a79e78f07ce5680c5d6673051b4935bd897fea824b77dc208a',\n ],\n [\n 'c40747cc9d012cb1a13b8148309c6de7ec25d6945d657146b9d5994b8feb1111',\n '5ca560753be2a12fc6de6caf2cb489565db936156b9514e1bb5e83037e0fa2d4',\n ],\n [\n '4e42c8ec82c99798ccf3a610be870e78338c7f713348bd34c8203ef4037f3502',\n '7571d74ee5e0fb92a7a8b33a07783341a5492144cc54bcc40a94473693606437',\n ],\n [\n '3775ab7089bc6af823aba2e1af70b236d251cadb0c86743287522a1b3b0dedea',\n 'be52d107bcfa09d8bcb9736a828cfa7fac8db17bf7a76a2c42ad961409018cf7',\n ],\n [\n 'cee31cbf7e34ec379d94fb814d3d775ad954595d1314ba8846959e3e82f74e26',\n '8fd64a14c06b589c26b947ae2bcf6bfa0149ef0be14ed4d80f448a01c43b1c6d',\n ],\n [\n 'b4f9eaea09b6917619f6ea6a4eb5464efddb58fd45b1ebefcdc1a01d08b47986',\n '39e5c9925b5a54b07433a4f18c61726f8bb131c012ca542eb24a8ac07200682a',\n ],\n [\n 'd4263dfc3d2df923a0179a48966d30ce84e2515afc3dccc1b77907792ebcc60e',\n '62dfaf07a0f78feb30e30d6295853ce189e127760ad6cf7fae164e122a208d54',\n ],\n [\n '48457524820fa65a4f8d35eb6930857c0032acc0a4a2de422233eeda897612c4',\n '25a748ab367979d98733c38a1fa1c2e7dc6cc07db2d60a9ae7a76aaa49bd0f77',\n ],\n [\n 'dfeeef1881101f2cb11644f3a2afdfc2045e19919152923f367a1767c11cceda',\n 'ecfb7056cf1de042f9420bab396793c0c390bde74b4bbdff16a83ae09a9a7517',\n ],\n [\n '6d7ef6b17543f8373c573f44e1f389835d89bcbc6062ced36c82df83b8fae859',\n 'cd450ec335438986dfefa10c57fea9bcc521a0959b2d80bbf74b190dca712d10',\n ],\n [\n 'e75605d59102a5a2684500d3b991f2e3f3c88b93225547035af25af66e04541f',\n 'f5c54754a8f71ee540b9b48728473e314f729ac5308b06938360990e2bfad125',\n ],\n [\n 'eb98660f4c4dfaa06a2be453d5020bc99a0c2e60abe388457dd43fefb1ed620c',\n '6cb9a8876d9cb8520609af3add26cd20a0a7cd8a9411131ce85f44100099223e',\n ],\n [\n '13e87b027d8514d35939f2e6892b19922154596941888336dc3563e3b8dba942',\n 'fef5a3c68059a6dec5d624114bf1e91aac2b9da568d6abeb2570d55646b8adf1',\n ],\n [\n 'ee163026e9fd6fe017c38f06a5be6fc125424b371ce2708e7bf4491691e5764a',\n '1acb250f255dd61c43d94ccc670d0f58f49ae3fa15b96623e5430da0ad6c62b2',\n ],\n [\n 'b268f5ef9ad51e4d78de3a750c2dc89b1e626d43505867999932e5db33af3d80',\n '5f310d4b3c99b9ebb19f77d41c1dee018cf0d34fd4191614003e945a1216e423',\n ],\n [\n 'ff07f3118a9df035e9fad85eb6c7bfe42b02f01ca99ceea3bf7ffdba93c4750d',\n '438136d603e858a3a5c440c38eccbaddc1d2942114e2eddd4740d098ced1f0d8',\n ],\n [\n '8d8b9855c7c052a34146fd20ffb658bea4b9f69e0d825ebec16e8c3ce2b526a1',\n 'cdb559eedc2d79f926baf44fb84ea4d44bcf50fee51d7ceb30e2e7f463036758',\n ],\n [\n '52db0b5384dfbf05bfa9d472d7ae26dfe4b851ceca91b1eba54263180da32b63',\n 'c3b997d050ee5d423ebaf66a6db9f57b3180c902875679de924b69d84a7b375',\n ],\n [\n 'e62f9490d3d51da6395efd24e80919cc7d0f29c3f3fa48c6fff543becbd43352',\n '6d89ad7ba4876b0b22c2ca280c682862f342c8591f1daf5170e07bfd9ccafa7d',\n ],\n [\n '7f30ea2476b399b4957509c88f77d0191afa2ff5cb7b14fd6d8e7d65aaab1193',\n 'ca5ef7d4b231c94c3b15389a5f6311e9daff7bb67b103e9880ef4bff637acaec',\n ],\n [\n '5098ff1e1d9f14fb46a210fada6c903fef0fb7b4a1dd1d9ac60a0361800b7a00',\n '9731141d81fc8f8084d37c6e7542006b3ee1b40d60dfe5362a5b132fd17ddc0',\n ],\n [\n '32b78c7de9ee512a72895be6b9cbefa6e2f3c4ccce445c96b9f2c81e2778ad58',\n 'ee1849f513df71e32efc3896ee28260c73bb80547ae2275ba497237794c8753c',\n ],\n [\n 'e2cb74fddc8e9fbcd076eef2a7c72b0ce37d50f08269dfc074b581550547a4f7',\n 'd3aa2ed71c9dd2247a62df062736eb0baddea9e36122d2be8641abcb005cc4a4',\n ],\n [\n '8438447566d4d7bedadc299496ab357426009a35f235cb141be0d99cd10ae3a8',\n 'c4e1020916980a4da5d01ac5e6ad330734ef0d7906631c4f2390426b2edd791f',\n ],\n [\n '4162d488b89402039b584c6fc6c308870587d9c46f660b878ab65c82c711d67e',\n '67163e903236289f776f22c25fb8a3afc1732f2b84b4e95dbda47ae5a0852649',\n ],\n [\n '3fad3fa84caf0f34f0f89bfd2dcf54fc175d767aec3e50684f3ba4a4bf5f683d',\n 'cd1bc7cb6cc407bb2f0ca647c718a730cf71872e7d0d2a53fa20efcdfe61826',\n ],\n [\n '674f2600a3007a00568c1a7ce05d0816c1fb84bf1370798f1c69532faeb1a86b',\n '299d21f9413f33b3edf43b257004580b70db57da0b182259e09eecc69e0d38a5',\n ],\n [\n 'd32f4da54ade74abb81b815ad1fb3b263d82d6c692714bcff87d29bd5ee9f08f',\n 'f9429e738b8e53b968e99016c059707782e14f4535359d582fc416910b3eea87',\n ],\n [\n '30e4e670435385556e593657135845d36fbb6931f72b08cb1ed954f1e3ce3ff6',\n '462f9bce619898638499350113bbc9b10a878d35da70740dc695a559eb88db7b',\n ],\n [\n 'be2062003c51cc3004682904330e4dee7f3dcd10b01e580bf1971b04d4cad297',\n '62188bc49d61e5428573d48a74e1c655b1c61090905682a0d5558ed72dccb9bc',\n ],\n [\n '93144423ace3451ed29e0fb9ac2af211cb6e84a601df5993c419859fff5df04a',\n '7c10dfb164c3425f5c71a3f9d7992038f1065224f72bb9d1d902a6d13037b47c',\n ],\n [\n 'b015f8044f5fcbdcf21ca26d6c34fb8197829205c7b7d2a7cb66418c157b112c',\n 'ab8c1e086d04e813744a655b2df8d5f83b3cdc6faa3088c1d3aea1454e3a1d5f',\n ],\n [\n 'd5e9e1da649d97d89e4868117a465a3a4f8a18de57a140d36b3f2af341a21b52',\n '4cb04437f391ed73111a13cc1d4dd0db1693465c2240480d8955e8592f27447a',\n ],\n [\n 'd3ae41047dd7ca065dbf8ed77b992439983005cd72e16d6f996a5316d36966bb',\n 'bd1aeb21ad22ebb22a10f0303417c6d964f8cdd7df0aca614b10dc14d125ac46',\n ],\n [\n '463e2763d885f958fc66cdd22800f0a487197d0a82e377b49f80af87c897b065',\n 'bfefacdb0e5d0fd7df3a311a94de062b26b80c61fbc97508b79992671ef7ca7f',\n ],\n [\n '7985fdfd127c0567c6f53ec1bb63ec3158e597c40bfe747c83cddfc910641917',\n '603c12daf3d9862ef2b25fe1de289aed24ed291e0ec6708703a5bd567f32ed03',\n ],\n [\n '74a1ad6b5f76e39db2dd249410eac7f99e74c59cb83d2d0ed5ff1543da7703e9',\n 'cc6157ef18c9c63cd6193d83631bbea0093e0968942e8c33d5737fd790e0db08',\n ],\n [\n '30682a50703375f602d416664ba19b7fc9bab42c72747463a71d0896b22f6da3',\n '553e04f6b018b4fa6c8f39e7f311d3176290d0e0f19ca73f17714d9977a22ff8',\n ],\n [\n '9e2158f0d7c0d5f26c3791efefa79597654e7a2b2464f52b1ee6c1347769ef57',\n '712fcdd1b9053f09003a3481fa7762e9ffd7c8ef35a38509e2fbf2629008373',\n ],\n [\n '176e26989a43c9cfeba4029c202538c28172e566e3c4fce7322857f3be327d66',\n 'ed8cc9d04b29eb877d270b4878dc43c19aefd31f4eee09ee7b47834c1fa4b1c3',\n ],\n [\n '75d46efea3771e6e68abb89a13ad747ecf1892393dfc4f1b7004788c50374da8',\n '9852390a99507679fd0b86fd2b39a868d7efc22151346e1a3ca4726586a6bed8',\n ],\n [\n '809a20c67d64900ffb698c4c825f6d5f2310fb0451c869345b7319f645605721',\n '9e994980d9917e22b76b061927fa04143d096ccc54963e6a5ebfa5f3f8e286c1',\n ],\n [\n '1b38903a43f7f114ed4500b4eac7083fdefece1cf29c63528d563446f972c180',\n '4036edc931a60ae889353f77fd53de4a2708b26b6f5da72ad3394119daf408f9',\n ],\n ],\n },\n};\n","'use strict';\n\nvar utils = exports;\nvar BN = require('bn.js');\nvar minAssert = require('minimalistic-assert');\nvar minUtils = require('minimalistic-crypto-utils');\n\nutils.assert = minAssert;\nutils.toArray = minUtils.toArray;\nutils.zero2 = minUtils.zero2;\nutils.toHex = minUtils.toHex;\nutils.encode = minUtils.encode;\n\n// Represent num in a w-NAF form\nfunction getNAF(num, w, bits) {\n var naf = new Array(Math.max(num.bitLength(), bits) + 1);\n naf.fill(0);\n\n var ws = 1 << (w + 1);\n var k = num.clone();\n\n for (var i = 0; i < naf.length; i++) {\n var z;\n var mod = k.andln(ws - 1);\n if (k.isOdd()) {\n if (mod > (ws >> 1) - 1)\n z = (ws >> 1) - mod;\n else\n z = mod;\n k.isubn(z);\n } else {\n z = 0;\n }\n\n naf[i] = z;\n k.iushrn(1);\n }\n\n return naf;\n}\nutils.getNAF = getNAF;\n\n// Represent k1, k2 in a Joint Sparse Form\nfunction getJSF(k1, k2) {\n var jsf = [\n [],\n [],\n ];\n\n k1 = k1.clone();\n k2 = k2.clone();\n var d1 = 0;\n var d2 = 0;\n var m8;\n while (k1.cmpn(-d1) > 0 || k2.cmpn(-d2) > 0) {\n // First phase\n var m14 = (k1.andln(3) + d1) & 3;\n var m24 = (k2.andln(3) + d2) & 3;\n if (m14 === 3)\n m14 = -1;\n if (m24 === 3)\n m24 = -1;\n var u1;\n if ((m14 & 1) === 0) {\n u1 = 0;\n } else {\n m8 = (k1.andln(7) + d1) & 7;\n if ((m8 === 3 || m8 === 5) && m24 === 2)\n u1 = -m14;\n else\n u1 = m14;\n }\n jsf[0].push(u1);\n\n var u2;\n if ((m24 & 1) === 0) {\n u2 = 0;\n } else {\n m8 = (k2.andln(7) + d2) & 7;\n if ((m8 === 3 || m8 === 5) && m14 === 2)\n u2 = -m24;\n else\n u2 = m24;\n }\n jsf[1].push(u2);\n\n // Second phase\n if (2 * d1 === u1 + 1)\n d1 = 1 - d1;\n if (2 * d2 === u2 + 1)\n d2 = 1 - d2;\n k1.iushrn(1);\n k2.iushrn(1);\n }\n\n return jsf;\n}\nutils.getJSF = getJSF;\n\nfunction cachedProperty(obj, name, computer) {\n var key = '_' + name;\n obj.prototype[name] = function cachedProperty() {\n return this[key] !== undefined ? this[key] :\n this[key] = computer.call(this);\n };\n}\nutils.cachedProperty = cachedProperty;\n\nfunction parseBytes(bytes) {\n return typeof bytes === 'string' ? utils.toArray(bytes, 'hex') :\n bytes;\n}\nutils.parseBytes = parseBytes;\n\nfunction intFromLE(bytes) {\n return new BN(bytes, 'hex', 'le');\n}\nutils.intFromLE = intFromLE;\n\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar R = typeof Reflect === 'object' ? Reflect : null\nvar ReflectApply = R && typeof R.apply === 'function'\n ? R.apply\n : function ReflectApply(target, receiver, args) {\n return Function.prototype.apply.call(target, receiver, args);\n }\n\nvar ReflectOwnKeys\nif (R && typeof R.ownKeys === 'function') {\n ReflectOwnKeys = R.ownKeys\n} else if (Object.getOwnPropertySymbols) {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target)\n .concat(Object.getOwnPropertySymbols(target));\n };\n} else {\n ReflectOwnKeys = function ReflectOwnKeys(target) {\n return Object.getOwnPropertyNames(target);\n };\n}\n\nfunction ProcessEmitWarning(warning) {\n if (console && console.warn) console.warn(warning);\n}\n\nvar NumberIsNaN = Number.isNaN || function NumberIsNaN(value) {\n return value !== value;\n}\n\nfunction EventEmitter() {\n EventEmitter.init.call(this);\n}\nmodule.exports = EventEmitter;\nmodule.exports.once = once;\n\n// Backwards-compat with node 0.10.x\nEventEmitter.EventEmitter = EventEmitter;\n\nEventEmitter.prototype._events = undefined;\nEventEmitter.prototype._eventsCount = 0;\nEventEmitter.prototype._maxListeners = undefined;\n\n// By default EventEmitters will print a warning if more than 10 listeners are\n// added to it. This is a useful default which helps finding memory leaks.\nvar defaultMaxListeners = 10;\n\nfunction checkListener(listener) {\n if (typeof listener !== 'function') {\n throw new TypeError('The \"listener\" argument must be of type Function. Received type ' + typeof listener);\n }\n}\n\nObject.defineProperty(EventEmitter, 'defaultMaxListeners', {\n enumerable: true,\n get: function() {\n return defaultMaxListeners;\n },\n set: function(arg) {\n if (typeof arg !== 'number' || arg < 0 || NumberIsNaN(arg)) {\n throw new RangeError('The value of \"defaultMaxListeners\" is out of range. It must be a non-negative number. Received ' + arg + '.');\n }\n defaultMaxListeners = arg;\n }\n});\n\nEventEmitter.init = function() {\n\n if (this._events === undefined ||\n this._events === Object.getPrototypeOf(this)._events) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n }\n\n this._maxListeners = this._maxListeners || undefined;\n};\n\n// Obviously not all Emitters should be limited to 10. This function allows\n// that to be increased. Set to zero for unlimited.\nEventEmitter.prototype.setMaxListeners = function setMaxListeners(n) {\n if (typeof n !== 'number' || n < 0 || NumberIsNaN(n)) {\n throw new RangeError('The value of \"n\" is out of range. It must be a non-negative number. Received ' + n + '.');\n }\n this._maxListeners = n;\n return this;\n};\n\nfunction _getMaxListeners(that) {\n if (that._maxListeners === undefined)\n return EventEmitter.defaultMaxListeners;\n return that._maxListeners;\n}\n\nEventEmitter.prototype.getMaxListeners = function getMaxListeners() {\n return _getMaxListeners(this);\n};\n\nEventEmitter.prototype.emit = function emit(type) {\n var args = [];\n for (var i = 1; i < arguments.length; i++) args.push(arguments[i]);\n var doError = (type === 'error');\n\n var events = this._events;\n if (events !== undefined)\n doError = (doError && events.error === undefined);\n else if (!doError)\n return false;\n\n // If there is no 'error' event listener then throw.\n if (doError) {\n var er;\n if (args.length > 0)\n er = args[0];\n if (er instanceof Error) {\n // Note: The comments on the `throw` lines are intentional, they show\n // up in Node's output if this results in an unhandled exception.\n throw er; // Unhandled 'error' event\n }\n // At least give some kind of context to the user\n var err = new Error('Unhandled error.' + (er ? ' (' + er.message + ')' : ''));\n err.context = er;\n throw err; // Unhandled 'error' event\n }\n\n var handler = events[type];\n\n if (handler === undefined)\n return false;\n\n if (typeof handler === 'function') {\n ReflectApply(handler, this, args);\n } else {\n var len = handler.length;\n var listeners = arrayClone(handler, len);\n for (var i = 0; i < len; ++i)\n ReflectApply(listeners[i], this, args);\n }\n\n return true;\n};\n\nfunction _addListener(target, type, listener, prepend) {\n var m;\n var events;\n var existing;\n\n checkListener(listener);\n\n events = target._events;\n if (events === undefined) {\n events = target._events = Object.create(null);\n target._eventsCount = 0;\n } else {\n // To avoid recursion in the case that type === \"newListener\"! Before\n // adding it to the listeners, first emit \"newListener\".\n if (events.newListener !== undefined) {\n target.emit('newListener', type,\n listener.listener ? listener.listener : listener);\n\n // Re-assign `events` because a newListener handler could have caused the\n // this._events to be assigned to a new object\n events = target._events;\n }\n existing = events[type];\n }\n\n if (existing === undefined) {\n // Optimize the case of one listener. Don't need the extra array object.\n existing = events[type] = listener;\n ++target._eventsCount;\n } else {\n if (typeof existing === 'function') {\n // Adding the second element, need to change to array.\n existing = events[type] =\n prepend ? [listener, existing] : [existing, listener];\n // If we've already got an array, just append.\n } else if (prepend) {\n existing.unshift(listener);\n } else {\n existing.push(listener);\n }\n\n // Check for listener leak\n m = _getMaxListeners(target);\n if (m > 0 && existing.length > m && !existing.warned) {\n existing.warned = true;\n // No error code for this since it is a Warning\n // eslint-disable-next-line no-restricted-syntax\n var w = new Error('Possible EventEmitter memory leak detected. ' +\n existing.length + ' ' + String(type) + ' listeners ' +\n 'added. Use emitter.setMaxListeners() to ' +\n 'increase limit');\n w.name = 'MaxListenersExceededWarning';\n w.emitter = target;\n w.type = type;\n w.count = existing.length;\n ProcessEmitWarning(w);\n }\n }\n\n return target;\n}\n\nEventEmitter.prototype.addListener = function addListener(type, listener) {\n return _addListener(this, type, listener, false);\n};\n\nEventEmitter.prototype.on = EventEmitter.prototype.addListener;\n\nEventEmitter.prototype.prependListener =\n function prependListener(type, listener) {\n return _addListener(this, type, listener, true);\n };\n\nfunction onceWrapper() {\n if (!this.fired) {\n this.target.removeListener(this.type, this.wrapFn);\n this.fired = true;\n if (arguments.length === 0)\n return this.listener.call(this.target);\n return this.listener.apply(this.target, arguments);\n }\n}\n\nfunction _onceWrap(target, type, listener) {\n var state = { fired: false, wrapFn: undefined, target: target, type: type, listener: listener };\n var wrapped = onceWrapper.bind(state);\n wrapped.listener = listener;\n state.wrapFn = wrapped;\n return wrapped;\n}\n\nEventEmitter.prototype.once = function once(type, listener) {\n checkListener(listener);\n this.on(type, _onceWrap(this, type, listener));\n return this;\n};\n\nEventEmitter.prototype.prependOnceListener =\n function prependOnceListener(type, listener) {\n checkListener(listener);\n this.prependListener(type, _onceWrap(this, type, listener));\n return this;\n };\n\n// Emits a 'removeListener' event if and only if the listener was removed.\nEventEmitter.prototype.removeListener =\n function removeListener(type, listener) {\n var list, events, position, i, originalListener;\n\n checkListener(listener);\n\n events = this._events;\n if (events === undefined)\n return this;\n\n list = events[type];\n if (list === undefined)\n return this;\n\n if (list === listener || list.listener === listener) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else {\n delete events[type];\n if (events.removeListener)\n this.emit('removeListener', type, list.listener || listener);\n }\n } else if (typeof list !== 'function') {\n position = -1;\n\n for (i = list.length - 1; i >= 0; i--) {\n if (list[i] === listener || list[i].listener === listener) {\n originalListener = list[i].listener;\n position = i;\n break;\n }\n }\n\n if (position < 0)\n return this;\n\n if (position === 0)\n list.shift();\n else {\n spliceOne(list, position);\n }\n\n if (list.length === 1)\n events[type] = list[0];\n\n if (events.removeListener !== undefined)\n this.emit('removeListener', type, originalListener || listener);\n }\n\n return this;\n };\n\nEventEmitter.prototype.off = EventEmitter.prototype.removeListener;\n\nEventEmitter.prototype.removeAllListeners =\n function removeAllListeners(type) {\n var listeners, events, i;\n\n events = this._events;\n if (events === undefined)\n return this;\n\n // not listening for removeListener, no need to emit\n if (events.removeListener === undefined) {\n if (arguments.length === 0) {\n this._events = Object.create(null);\n this._eventsCount = 0;\n } else if (events[type] !== undefined) {\n if (--this._eventsCount === 0)\n this._events = Object.create(null);\n else\n delete events[type];\n }\n return this;\n }\n\n // emit removeListener for all listeners on all events\n if (arguments.length === 0) {\n var keys = Object.keys(events);\n var key;\n for (i = 0; i < keys.length; ++i) {\n key = keys[i];\n if (key === 'removeListener') continue;\n this.removeAllListeners(key);\n }\n this.removeAllListeners('removeListener');\n this._events = Object.create(null);\n this._eventsCount = 0;\n return this;\n }\n\n listeners = events[type];\n\n if (typeof listeners === 'function') {\n this.removeListener(type, listeners);\n } else if (listeners !== undefined) {\n // LIFO order\n for (i = listeners.length - 1; i >= 0; i--) {\n this.removeListener(type, listeners[i]);\n }\n }\n\n return this;\n };\n\nfunction _listeners(target, type, unwrap) {\n var events = target._events;\n\n if (events === undefined)\n return [];\n\n var evlistener = events[type];\n if (evlistener === undefined)\n return [];\n\n if (typeof evlistener === 'function')\n return unwrap ? [evlistener.listener || evlistener] : [evlistener];\n\n return unwrap ?\n unwrapListeners(evlistener) : arrayClone(evlistener, evlistener.length);\n}\n\nEventEmitter.prototype.listeners = function listeners(type) {\n return _listeners(this, type, true);\n};\n\nEventEmitter.prototype.rawListeners = function rawListeners(type) {\n return _listeners(this, type, false);\n};\n\nEventEmitter.listenerCount = function(emitter, type) {\n if (typeof emitter.listenerCount === 'function') {\n return emitter.listenerCount(type);\n } else {\n return listenerCount.call(emitter, type);\n }\n};\n\nEventEmitter.prototype.listenerCount = listenerCount;\nfunction listenerCount(type) {\n var events = this._events;\n\n if (events !== undefined) {\n var evlistener = events[type];\n\n if (typeof evlistener === 'function') {\n return 1;\n } else if (evlistener !== undefined) {\n return evlistener.length;\n }\n }\n\n return 0;\n}\n\nEventEmitter.prototype.eventNames = function eventNames() {\n return this._eventsCount > 0 ? ReflectOwnKeys(this._events) : [];\n};\n\nfunction arrayClone(arr, n) {\n var copy = new Array(n);\n for (var i = 0; i < n; ++i)\n copy[i] = arr[i];\n return copy;\n}\n\nfunction spliceOne(list, index) {\n for (; index + 1 < list.length; index++)\n list[index] = list[index + 1];\n list.pop();\n}\n\nfunction unwrapListeners(arr) {\n var ret = new Array(arr.length);\n for (var i = 0; i < ret.length; ++i) {\n ret[i] = arr[i].listener || arr[i];\n }\n return ret;\n}\n\nfunction once(emitter, name) {\n return new Promise(function (resolve, reject) {\n function errorListener(err) {\n emitter.removeListener(name, resolver);\n reject(err);\n }\n\n function resolver() {\n if (typeof emitter.removeListener === 'function') {\n emitter.removeListener('error', errorListener);\n }\n resolve([].slice.call(arguments));\n };\n\n eventTargetAgnosticAddListener(emitter, name, resolver, { once: true });\n if (name !== 'error') {\n addErrorHandlerIfEventEmitter(emitter, errorListener, { once: true });\n }\n });\n}\n\nfunction addErrorHandlerIfEventEmitter(emitter, handler, flags) {\n if (typeof emitter.on === 'function') {\n eventTargetAgnosticAddListener(emitter, 'error', handler, flags);\n }\n}\n\nfunction eventTargetAgnosticAddListener(emitter, name, listener, flags) {\n if (typeof emitter.on === 'function') {\n if (flags.once) {\n emitter.once(name, listener);\n } else {\n emitter.on(name, listener);\n }\n } else if (typeof emitter.addEventListener === 'function') {\n // EventTarget does not have `error` event semantics like Node\n // EventEmitters, we do not listen for `error` events here.\n emitter.addEventListener(name, function wrapListener(arg) {\n // IE does not have builtin `{ once: true }` support so we\n // have to do it manually.\n if (flags.once) {\n emitter.removeEventListener(name, wrapListener);\n }\n listener(arg);\n });\n } else {\n throw new TypeError('The \"emitter\" argument must be of type EventEmitter. Received type ' + typeof emitter);\n }\n}\n","var Buffer = require('safe-buffer').Buffer\nvar MD5 = require('md5.js')\n\n/* eslint-disable camelcase */\nfunction EVP_BytesToKey (password, salt, keyBits, ivLen) {\n if (!Buffer.isBuffer(password)) password = Buffer.from(password, 'binary')\n if (salt) {\n if (!Buffer.isBuffer(salt)) salt = Buffer.from(salt, 'binary')\n if (salt.length !== 8) throw new RangeError('salt should be Buffer with 8 byte length')\n }\n\n var keyLen = keyBits / 8\n var key = Buffer.alloc(keyLen)\n var iv = Buffer.alloc(ivLen || 0)\n var tmp = Buffer.alloc(0)\n\n while (keyLen > 0 || ivLen > 0) {\n var hash = new MD5()\n hash.update(tmp)\n hash.update(password)\n if (salt) hash.update(salt)\n tmp = hash.digest()\n\n var used = 0\n\n if (keyLen > 0) {\n var keyStart = key.length - keyLen\n used = Math.min(keyLen, tmp.length)\n tmp.copy(key, keyStart, 0, used)\n keyLen -= used\n }\n\n if (used < tmp.length && ivLen > 0) {\n var ivStart = iv.length - ivLen\n var length = Math.min(ivLen, tmp.length - used)\n tmp.copy(iv, ivStart, used, used + length)\n ivLen -= length\n }\n }\n\n tmp.fill(0)\n return { key: key, iv: iv }\n}\n\nmodule.exports = EVP_BytesToKey\n","'use strict';\n\nmodule.exports = function (data, opts) {\n if (!opts) opts = {};\n if (typeof opts === 'function') opts = { cmp: opts };\n var cycles = (typeof opts.cycles === 'boolean') ? opts.cycles : false;\n\n var cmp = opts.cmp && (function (f) {\n return function (node) {\n return function (a, b) {\n var aobj = { key: a, value: node[a] };\n var bobj = { key: b, value: node[b] };\n return f(aobj, bobj);\n };\n };\n })(opts.cmp);\n\n var seen = [];\n return (function stringify (node) {\n if (node && node.toJSON && typeof node.toJSON === 'function') {\n node = node.toJSON();\n }\n\n if (node === undefined) return;\n if (typeof node == 'number') return isFinite(node) ? '' + node : 'null';\n if (typeof node !== 'object') return JSON.stringify(node);\n\n var i, out;\n if (Array.isArray(node)) {\n out = '[';\n for (i = 0; i < node.length; i++) {\n if (i) out += ',';\n out += stringify(node[i]) || 'null';\n }\n return out + ']';\n }\n\n if (node === null) return 'null';\n\n if (seen.indexOf(node) !== -1) {\n if (cycles) return JSON.stringify('__cycle__');\n throw new TypeError('Converting circular structure to JSON');\n }\n\n var seenIndex = seen.push(node) - 1;\n var keys = Object.keys(node).sort(cmp && cmp(node));\n out = '';\n for (i = 0; i < keys.length; i++) {\n var key = keys[i];\n var value = stringify(node[key]);\n\n if (!value) continue;\n if (out) out += ',';\n out += JSON.stringify(key) + ':' + value;\n }\n seen.splice(seenIndex, 1);\n return '{' + out + '}';\n })(data);\n};\n","'use strict';\n\nconst validator = require('./validator');\nconst XMLParser = require('./xmlparser/XMLParser');\nconst XMLBuilder = require('./xmlbuilder/json2xml');\n\nmodule.exports = {\n XMLParser: XMLParser,\n XMLValidator: validator,\n XMLBuilder: XMLBuilder\n}","'use strict';\n\nconst nameStartChar = ':A-Za-z_\\\\u00C0-\\\\u00D6\\\\u00D8-\\\\u00F6\\\\u00F8-\\\\u02FF\\\\u0370-\\\\u037D\\\\u037F-\\\\u1FFF\\\\u200C-\\\\u200D\\\\u2070-\\\\u218F\\\\u2C00-\\\\u2FEF\\\\u3001-\\\\uD7FF\\\\uF900-\\\\uFDCF\\\\uFDF0-\\\\uFFFD';\nconst nameChar = nameStartChar + '\\\\-.\\\\d\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040';\nconst nameRegexp = '[' + nameStartChar + '][' + nameChar + ']*'\nconst regexName = new RegExp('^' + nameRegexp + '$');\n\nconst getAllMatches = function(string, regex) {\n const matches = [];\n let match = regex.exec(string);\n while (match) {\n const allmatches = [];\n allmatches.startIndex = regex.lastIndex - match[0].length;\n const len = match.length;\n for (let index = 0; index < len; index++) {\n allmatches.push(match[index]);\n }\n matches.push(allmatches);\n match = regex.exec(string);\n }\n return matches;\n};\n\nconst isName = function(string) {\n const match = regexName.exec(string);\n return !(match === null || typeof match === 'undefined');\n};\n\nexports.isExist = function(v) {\n return typeof v !== 'undefined';\n};\n\nexports.isEmptyObject = function(obj) {\n return Object.keys(obj).length === 0;\n};\n\n/**\n * Copy all the properties of a into b.\n * @param {*} target\n * @param {*} a\n */\nexports.merge = function(target, a, arrayMode) {\n if (a) {\n const keys = Object.keys(a); // will return an array of own properties\n const len = keys.length; //don't make it inline\n for (let i = 0; i < len; i++) {\n if (arrayMode === 'strict') {\n target[keys[i]] = [ a[keys[i]] ];\n } else {\n target[keys[i]] = a[keys[i]];\n }\n }\n }\n};\n/* exports.merge =function (b,a){\n return Object.assign(b,a);\n} */\n\nexports.getValue = function(v) {\n if (exports.isExist(v)) {\n return v;\n } else {\n return '';\n }\n};\n\n// const fakeCall = function(a) {return a;};\n// const fakeCallNoReturn = function() {};\n\nexports.isName = isName;\nexports.getAllMatches = getAllMatches;\nexports.nameRegexp = nameRegexp;\n","'use strict';\n\nconst util = require('./util');\n\nconst defaultOptions = {\n allowBooleanAttributes: false, //A tag can have attributes without any value\n unpairedTags: []\n};\n\n//const tagsPattern = new RegExp(\"<\\\\/?([\\\\w:\\\\-_\\.]+)\\\\s*\\/?>\",\"g\");\nexports.validate = function (xmlData, options) {\n options = Object.assign({}, defaultOptions, options);\n\n //xmlData = xmlData.replace(/(\\r\\n|\\n|\\r)/gm,\"\");//make it single line\n //xmlData = xmlData.replace(/(^\\s*<\\?xml.*?\\?>)/g,\"\");//Remove XML starting tag\n //xmlData = xmlData.replace(/()/g,\"\");//Remove DOCTYPE\n const tags = [];\n let tagFound = false;\n\n //indicates that the root tag has been closed (aka. depth 0 has been reached)\n let reachedRoot = false;\n\n if (xmlData[0] === '\\ufeff') {\n // check for byte order mark (BOM)\n xmlData = xmlData.substr(1);\n }\n \n for (let i = 0; i < xmlData.length; i++) {\n\n if (xmlData[i] === '<' && xmlData[i+1] === '?') {\n i+=2;\n i = readPI(xmlData,i);\n if (i.err) return i;\n }else if (xmlData[i] === '<') {\n //starting of tag\n //read until you reach to '>' avoiding any '>' in attribute value\n let tagStartPos = i;\n i++;\n \n if (xmlData[i] === '!') {\n i = readCommentAndCDATA(xmlData, i);\n continue;\n } else {\n let closingTag = false;\n if (xmlData[i] === '/') {\n //closing tag\n closingTag = true;\n i++;\n }\n //read tagname\n let tagName = '';\n for (; i < xmlData.length &&\n xmlData[i] !== '>' &&\n xmlData[i] !== ' ' &&\n xmlData[i] !== '\\t' &&\n xmlData[i] !== '\\n' &&\n xmlData[i] !== '\\r'; i++\n ) {\n tagName += xmlData[i];\n }\n tagName = tagName.trim();\n //console.log(tagName);\n\n if (tagName[tagName.length - 1] === '/') {\n //self closing tag without attributes\n tagName = tagName.substring(0, tagName.length - 1);\n //continue;\n i--;\n }\n if (!validateTagName(tagName)) {\n let msg;\n if (tagName.trim().length === 0) {\n msg = \"Invalid space after '<'.\";\n } else {\n msg = \"Tag '\"+tagName+\"' is an invalid name.\";\n }\n return getErrorObject('InvalidTag', msg, getLineNumberForPosition(xmlData, i));\n }\n\n const result = readAttributeStr(xmlData, i);\n if (result === false) {\n return getErrorObject('InvalidAttr', \"Attributes for '\"+tagName+\"' have open quote.\", getLineNumberForPosition(xmlData, i));\n }\n let attrStr = result.value;\n i = result.index;\n\n if (attrStr[attrStr.length - 1] === '/') {\n //self closing tag\n const attrStrStart = i - attrStr.length;\n attrStr = attrStr.substring(0, attrStr.length - 1);\n const isValid = validateAttributeString(attrStr, options);\n if (isValid === true) {\n tagFound = true;\n //continue; //text may presents after self closing tag\n } else {\n //the result from the nested function returns the position of the error within the attribute\n //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n //this gives us the absolute index in the entire xml, which we can use to find the line at last\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, attrStrStart + isValid.err.line));\n }\n } else if (closingTag) {\n if (!result.tagClosed) {\n return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' doesn't have proper closing.\", getLineNumberForPosition(xmlData, i));\n } else if (attrStr.trim().length > 0) {\n return getErrorObject('InvalidTag', \"Closing tag '\"+tagName+\"' can't have attributes or invalid starting.\", getLineNumberForPosition(xmlData, tagStartPos));\n } else {\n const otg = tags.pop();\n if (tagName !== otg.tagName) {\n let openPos = getLineNumberForPosition(xmlData, otg.tagStartPos);\n return getErrorObject('InvalidTag',\n \"Expected closing tag '\"+otg.tagName+\"' (opened in line \"+openPos.line+\", col \"+openPos.col+\") instead of closing tag '\"+tagName+\"'.\",\n getLineNumberForPosition(xmlData, tagStartPos));\n }\n\n //when there are no more tags, we reached the root level.\n if (tags.length == 0) {\n reachedRoot = true;\n }\n }\n } else {\n const isValid = validateAttributeString(attrStr, options);\n if (isValid !== true) {\n //the result from the nested function returns the position of the error within the attribute\n //in order to get the 'true' error line, we need to calculate the position where the attribute begins (i - attrStr.length) and then add the position within the attribute\n //this gives us the absolute index in the entire xml, which we can use to find the line at last\n return getErrorObject(isValid.err.code, isValid.err.msg, getLineNumberForPosition(xmlData, i - attrStr.length + isValid.err.line));\n }\n\n //if the root level has been reached before ...\n if (reachedRoot === true) {\n return getErrorObject('InvalidXml', 'Multiple possible root nodes found.', getLineNumberForPosition(xmlData, i));\n } else if(options.unpairedTags.indexOf(tagName) !== -1){\n //don't push into stack\n } else {\n tags.push({tagName, tagStartPos});\n }\n tagFound = true;\n }\n\n //skip tag text value\n //It may include comments and CDATA value\n for (i++; i < xmlData.length; i++) {\n if (xmlData[i] === '<') {\n if (xmlData[i + 1] === '!') {\n //comment or CADATA\n i++;\n i = readCommentAndCDATA(xmlData, i);\n continue;\n } else if (xmlData[i+1] === '?') {\n i = readPI(xmlData, ++i);\n if (i.err) return i;\n } else{\n break;\n }\n } else if (xmlData[i] === '&') {\n const afterAmp = validateAmpersand(xmlData, i);\n if (afterAmp == -1)\n return getErrorObject('InvalidChar', \"char '&' is not expected.\", getLineNumberForPosition(xmlData, i));\n i = afterAmp;\n }else{\n if (reachedRoot === true && !isWhiteSpace(xmlData[i])) {\n return getErrorObject('InvalidXml', \"Extra text at the end\", getLineNumberForPosition(xmlData, i));\n }\n }\n } //end of reading tag text value\n if (xmlData[i] === '<') {\n i--;\n }\n }\n } else {\n if ( isWhiteSpace(xmlData[i])) {\n continue;\n }\n return getErrorObject('InvalidChar', \"char '\"+xmlData[i]+\"' is not expected.\", getLineNumberForPosition(xmlData, i));\n }\n }\n\n if (!tagFound) {\n return getErrorObject('InvalidXml', 'Start tag expected.', 1);\n }else if (tags.length == 1) {\n return getErrorObject('InvalidTag', \"Unclosed tag '\"+tags[0].tagName+\"'.\", getLineNumberForPosition(xmlData, tags[0].tagStartPos));\n }else if (tags.length > 0) {\n return getErrorObject('InvalidXml', \"Invalid '\"+\n JSON.stringify(tags.map(t => t.tagName), null, 4).replace(/\\r?\\n/g, '')+\n \"' found.\", {line: 1, col: 1});\n }\n\n return true;\n};\n\nfunction isWhiteSpace(char){\n return char === ' ' || char === '\\t' || char === '\\n' || char === '\\r';\n}\n/**\n * Read Processing insstructions and skip\n * @param {*} xmlData\n * @param {*} i\n */\nfunction readPI(xmlData, i) {\n const start = i;\n for (; i < xmlData.length; i++) {\n if (xmlData[i] == '?' || xmlData[i] == ' ') {\n //tagname\n const tagname = xmlData.substr(start, i - start);\n if (i > 5 && tagname === 'xml') {\n return getErrorObject('InvalidXml', 'XML declaration allowed only at the start of the document.', getLineNumberForPosition(xmlData, i));\n } else if (xmlData[i] == '?' && xmlData[i + 1] == '>') {\n //check if valid attribut string\n i++;\n break;\n } else {\n continue;\n }\n }\n }\n return i;\n}\n\nfunction readCommentAndCDATA(xmlData, i) {\n if (xmlData.length > i + 5 && xmlData[i + 1] === '-' && xmlData[i + 2] === '-') {\n //comment\n for (i += 3; i < xmlData.length; i++) {\n if (xmlData[i] === '-' && xmlData[i + 1] === '-' && xmlData[i + 2] === '>') {\n i += 2;\n break;\n }\n }\n } else if (\n xmlData.length > i + 8 &&\n xmlData[i + 1] === 'D' &&\n xmlData[i + 2] === 'O' &&\n xmlData[i + 3] === 'C' &&\n xmlData[i + 4] === 'T' &&\n xmlData[i + 5] === 'Y' &&\n xmlData[i + 6] === 'P' &&\n xmlData[i + 7] === 'E'\n ) {\n let angleBracketsCount = 1;\n for (i += 8; i < xmlData.length; i++) {\n if (xmlData[i] === '<') {\n angleBracketsCount++;\n } else if (xmlData[i] === '>') {\n angleBracketsCount--;\n if (angleBracketsCount === 0) {\n break;\n }\n }\n }\n } else if (\n xmlData.length > i + 9 &&\n xmlData[i + 1] === '[' &&\n xmlData[i + 2] === 'C' &&\n xmlData[i + 3] === 'D' &&\n xmlData[i + 4] === 'A' &&\n xmlData[i + 5] === 'T' &&\n xmlData[i + 6] === 'A' &&\n xmlData[i + 7] === '['\n ) {\n for (i += 8; i < xmlData.length; i++) {\n if (xmlData[i] === ']' && xmlData[i + 1] === ']' && xmlData[i + 2] === '>') {\n i += 2;\n break;\n }\n }\n }\n\n return i;\n}\n\nconst doubleQuote = '\"';\nconst singleQuote = \"'\";\n\n/**\n * Keep reading xmlData until '<' is found outside the attribute value.\n * @param {string} xmlData\n * @param {number} i\n */\nfunction readAttributeStr(xmlData, i) {\n let attrStr = '';\n let startChar = '';\n let tagClosed = false;\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === doubleQuote || xmlData[i] === singleQuote) {\n if (startChar === '') {\n startChar = xmlData[i];\n } else if (startChar !== xmlData[i]) {\n //if vaue is enclosed with double quote then single quotes are allowed inside the value and vice versa\n } else {\n startChar = '';\n }\n } else if (xmlData[i] === '>') {\n if (startChar === '') {\n tagClosed = true;\n break;\n }\n }\n attrStr += xmlData[i];\n }\n if (startChar !== '') {\n return false;\n }\n\n return {\n value: attrStr,\n index: i,\n tagClosed: tagClosed\n };\n}\n\n/**\n * Select all the attributes whether valid or invalid.\n */\nconst validAttrStrRegxp = new RegExp('(\\\\s*)([^\\\\s=]+)(\\\\s*=)?(\\\\s*([\\'\"])(([\\\\s\\\\S])*?)\\\\5)?', 'g');\n\n//attr, =\"sd\", a=\"amit's\", a=\"sd\"b=\"saf\", ab cd=\"\"\n\nfunction validateAttributeString(attrStr, options) {\n //console.log(\"start:\"+attrStr+\":end\");\n\n //if(attrStr.trim().length === 0) return true; //empty string\n\n const matches = util.getAllMatches(attrStr, validAttrStrRegxp);\n const attrNames = {};\n\n for (let i = 0; i < matches.length; i++) {\n if (matches[i][1].length === 0) {\n //nospace before attribute name: a=\"sd\"b=\"saf\"\n return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' has no space in starting.\", getPositionFromMatch(matches[i]))\n } else if (matches[i][3] !== undefined && matches[i][4] === undefined) {\n return getErrorObject('InvalidAttr', \"Attribute '\"+matches[i][2]+\"' is without value.\", getPositionFromMatch(matches[i]));\n } else if (matches[i][3] === undefined && !options.allowBooleanAttributes) {\n //independent attribute: ab\n return getErrorObject('InvalidAttr', \"boolean attribute '\"+matches[i][2]+\"' is not allowed.\", getPositionFromMatch(matches[i]));\n }\n /* else if(matches[i][6] === undefined){//attribute without value: ab=\n return { err: { code:\"InvalidAttr\",msg:\"attribute \" + matches[i][2] + \" has no value assigned.\"}};\n } */\n const attrName = matches[i][2];\n if (!validateAttrName(attrName)) {\n return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is an invalid name.\", getPositionFromMatch(matches[i]));\n }\n if (!attrNames.hasOwnProperty(attrName)) {\n //check for duplicate attribute.\n attrNames[attrName] = 1;\n } else {\n return getErrorObject('InvalidAttr', \"Attribute '\"+attrName+\"' is repeated.\", getPositionFromMatch(matches[i]));\n }\n }\n\n return true;\n}\n\nfunction validateNumberAmpersand(xmlData, i) {\n let re = /\\d/;\n if (xmlData[i] === 'x') {\n i++;\n re = /[\\da-fA-F]/;\n }\n for (; i < xmlData.length; i++) {\n if (xmlData[i] === ';')\n return i;\n if (!xmlData[i].match(re))\n break;\n }\n return -1;\n}\n\nfunction validateAmpersand(xmlData, i) {\n // https://www.w3.org/TR/xml/#dt-charref\n i++;\n if (xmlData[i] === ';')\n return -1;\n if (xmlData[i] === '#') {\n i++;\n return validateNumberAmpersand(xmlData, i);\n }\n let count = 0;\n for (; i < xmlData.length; i++, count++) {\n if (xmlData[i].match(/\\w/) && count < 20)\n continue;\n if (xmlData[i] === ';')\n break;\n return -1;\n }\n return i;\n}\n\nfunction getErrorObject(code, message, lineNumber) {\n return {\n err: {\n code: code,\n msg: message,\n line: lineNumber.line || lineNumber,\n col: lineNumber.col,\n },\n };\n}\n\nfunction validateAttrName(attrName) {\n return util.isName(attrName);\n}\n\n// const startsWithXML = /^xml/i;\n\nfunction validateTagName(tagname) {\n return util.isName(tagname) /* && !tagname.match(startsWithXML) */;\n}\n\n//this function returns the line number for the character at the given index\nfunction getLineNumberForPosition(xmlData, index) {\n const lines = xmlData.substring(0, index).split(/\\r?\\n/);\n return {\n line: lines.length,\n\n // column number is last line's length + 1, because column numbering starts at 1:\n col: lines[lines.length - 1].length + 1\n };\n}\n\n//this function returns the position of the first character of match within attrStr\nfunction getPositionFromMatch(match) {\n return match.startIndex + match[1].length;\n}\n","'use strict';\n//parse Empty Node as self closing node\nconst buildFromOrderedJs = require('./orderedJs2Xml');\n\nconst defaultOptions = {\n attributeNamePrefix: '@_',\n attributesGroupName: false,\n textNodeName: '#text',\n ignoreAttributes: true,\n cdataPropName: false,\n format: false,\n indentBy: ' ',\n suppressEmptyNode: false,\n suppressUnpairedNode: true,\n suppressBooleanAttributes: true,\n tagValueProcessor: function(key, a) {\n return a;\n },\n attributeValueProcessor: function(attrName, a) {\n return a;\n },\n preserveOrder: false,\n commentPropName: false,\n unpairedTags: [],\n entities: [\n { regex: new RegExp(\"&\", \"g\"), val: \"&\" },//it must be on top\n { regex: new RegExp(\">\", \"g\"), val: \">\" },\n { regex: new RegExp(\"<\", \"g\"), val: \"<\" },\n { regex: new RegExp(\"\\'\", \"g\"), val: \"'\" },\n { regex: new RegExp(\"\\\"\", \"g\"), val: \""\" }\n ],\n processEntities: true,\n stopNodes: [],\n // transformTagName: false,\n // transformAttributeName: false,\n oneListGroup: false\n};\n\nfunction Builder(options) {\n this.options = Object.assign({}, defaultOptions, options);\n if (this.options.ignoreAttributes || this.options.attributesGroupName) {\n this.isAttribute = function(/*a*/) {\n return false;\n };\n } else {\n this.attrPrefixLen = this.options.attributeNamePrefix.length;\n this.isAttribute = isAttribute;\n }\n\n this.processTextOrObjNode = processTextOrObjNode\n\n if (this.options.format) {\n this.indentate = indentate;\n this.tagEndChar = '>\\n';\n this.newLine = '\\n';\n } else {\n this.indentate = function() {\n return '';\n };\n this.tagEndChar = '>';\n this.newLine = '';\n }\n}\n\nBuilder.prototype.build = function(jObj) {\n if(this.options.preserveOrder){\n return buildFromOrderedJs(jObj, this.options);\n }else {\n if(Array.isArray(jObj) && this.options.arrayNodeName && this.options.arrayNodeName.length > 1){\n jObj = {\n [this.options.arrayNodeName] : jObj\n }\n }\n return this.j2x(jObj, 0).val;\n }\n};\n\nBuilder.prototype.j2x = function(jObj, level) {\n let attrStr = '';\n let val = '';\n for (let key in jObj) {\n if (typeof jObj[key] === 'undefined') {\n // supress undefined node\n } else if (jObj[key] === null) {\n if(key[0] === \"?\") val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;\n else val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n } else if (jObj[key] instanceof Date) {\n val += this.buildTextValNode(jObj[key], key, '', level);\n } else if (typeof jObj[key] !== 'object') {\n //premitive type\n const attr = this.isAttribute(key);\n if (attr) {\n attrStr += this.buildAttrPairStr(attr, '' + jObj[key]);\n }else {\n //tag value\n if (key === this.options.textNodeName) {\n let newval = this.options.tagValueProcessor(key, '' + jObj[key]);\n val += this.replaceEntitiesValue(newval);\n } else {\n val += this.buildTextValNode(jObj[key], key, '', level);\n }\n }\n } else if (Array.isArray(jObj[key])) {\n //repeated nodes\n const arrLen = jObj[key].length;\n let listTagVal = \"\";\n for (let j = 0; j < arrLen; j++) {\n const item = jObj[key][j];\n if (typeof item === 'undefined') {\n // supress undefined node\n } else if (item === null) {\n if(key[0] === \"?\") val += this.indentate(level) + '<' + key + '?' + this.tagEndChar;\n else val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n // val += this.indentate(level) + '<' + key + '/' + this.tagEndChar;\n } else if (typeof item === 'object') {\n if(this.options.oneListGroup ){\n listTagVal += this.j2x(item, level + 1).val;\n }else{\n listTagVal += this.processTextOrObjNode(item, key, level)\n }\n } else {\n listTagVal += this.buildTextValNode(item, key, '', level);\n }\n }\n if(this.options.oneListGroup){\n listTagVal = this.buildObjectNode(listTagVal, key, '', level);\n }\n val += listTagVal;\n } else {\n //nested node\n if (this.options.attributesGroupName && key === this.options.attributesGroupName) {\n const Ks = Object.keys(jObj[key]);\n const L = Ks.length;\n for (let j = 0; j < L; j++) {\n attrStr += this.buildAttrPairStr(Ks[j], '' + jObj[key][Ks[j]]);\n }\n } else {\n val += this.processTextOrObjNode(jObj[key], key, level)\n }\n }\n }\n return {attrStr: attrStr, val: val};\n};\n\nBuilder.prototype.buildAttrPairStr = function(attrName, val){\n val = this.options.attributeValueProcessor(attrName, '' + val);\n val = this.replaceEntitiesValue(val);\n if (this.options.suppressBooleanAttributes && val === \"true\") {\n return ' ' + attrName;\n } else return ' ' + attrName + '=\"' + val + '\"';\n}\n\nfunction processTextOrObjNode (object, key, level) {\n const result = this.j2x(object, level + 1);\n if (object[this.options.textNodeName] !== undefined && Object.keys(object).length === 1) {\n return this.buildTextValNode(object[this.options.textNodeName], key, result.attrStr, level);\n } else {\n return this.buildObjectNode(result.val, key, result.attrStr, level);\n }\n}\n\nBuilder.prototype.buildObjectNode = function(val, key, attrStr, level) {\n if(val === \"\"){\n if(key[0] === \"?\") return this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar;\n else {\n return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;\n }\n }else{\n\n let tagEndExp = '' + val + tagEndExp );\n } else if (this.options.commentPropName !== false && key === this.options.commentPropName && piClosingChar.length === 0) {\n return this.indentate(level) + `` + this.newLine;\n }else {\n return (\n this.indentate(level) + '<' + key + attrStr + piClosingChar + this.tagEndChar +\n val +\n this.indentate(level) + tagEndExp );\n }\n }\n}\n\nBuilder.prototype.closeTag = function(key){\n let closeTag = \"\";\n if(this.options.unpairedTags.indexOf(key) !== -1){ //unpaired\n if(!this.options.suppressUnpairedNode) closeTag = \"/\"\n }else if(this.options.suppressEmptyNode){ //empty\n closeTag = \"/\";\n }else{\n closeTag = `>` + this.newLine;\n }else if (this.options.commentPropName !== false && key === this.options.commentPropName) {\n return this.indentate(level) + `` + this.newLine;\n }else if(key[0] === \"?\") {//PI tag\n return this.indentate(level) + '<' + key + attrStr+ '?' + this.tagEndChar; \n }else{\n let textValue = this.options.tagValueProcessor(key, val);\n textValue = this.replaceEntitiesValue(textValue);\n \n if( textValue === ''){\n return this.indentate(level) + '<' + key + attrStr + this.closeTag(key) + this.tagEndChar;\n }else{\n return this.indentate(level) + '<' + key + attrStr + '>' +\n textValue +\n ' 0 && this.options.processEntities){\n for (let i=0; i 0) {\n indentation = EOL;\n }\n return arrToStr(jArray, options, \"\", indentation);\n}\n\nfunction arrToStr(arr, options, jPath, indentation) {\n let xmlStr = \"\";\n let isPreviousElementTag = false;\n\n for (let i = 0; i < arr.length; i++) {\n const tagObj = arr[i];\n const tagName = propName(tagObj);\n let newJPath = \"\";\n if (jPath.length === 0) newJPath = tagName\n else newJPath = `${jPath}.${tagName}`;\n\n if (tagName === options.textNodeName) {\n let tagText = tagObj[tagName];\n if (!isStopNode(newJPath, options)) {\n tagText = options.tagValueProcessor(tagName, tagText);\n tagText = replaceEntitiesValue(tagText, options);\n }\n if (isPreviousElementTag) {\n xmlStr += indentation;\n }\n xmlStr += tagText;\n isPreviousElementTag = false;\n continue;\n } else if (tagName === options.cdataPropName) {\n if (isPreviousElementTag) {\n xmlStr += indentation;\n }\n xmlStr += ``;\n isPreviousElementTag = false;\n continue;\n } else if (tagName === options.commentPropName) {\n xmlStr += indentation + ``;\n isPreviousElementTag = true;\n continue;\n } else if (tagName[0] === \"?\") {\n const attStr = attr_to_str(tagObj[\":@\"], options);\n const tempInd = tagName === \"?xml\" ? \"\" : indentation;\n let piTextNodeName = tagObj[tagName][0][options.textNodeName];\n piTextNodeName = piTextNodeName.length !== 0 ? \" \" + piTextNodeName : \"\"; //remove extra spacing\n xmlStr += tempInd + `<${tagName}${piTextNodeName}${attStr}?>`;\n isPreviousElementTag = true;\n continue;\n }\n let newIdentation = indentation;\n if (newIdentation !== \"\") {\n newIdentation += options.indentBy;\n }\n const attStr = attr_to_str(tagObj[\":@\"], options);\n const tagStart = indentation + `<${tagName}${attStr}`;\n const tagValue = arrToStr(tagObj[tagName], options, newJPath, newIdentation);\n if (options.unpairedTags.indexOf(tagName) !== -1) {\n if (options.suppressUnpairedNode) xmlStr += tagStart + \">\";\n else xmlStr += tagStart + \"/>\";\n } else if ((!tagValue || tagValue.length === 0) && options.suppressEmptyNode) {\n xmlStr += tagStart + \"/>\";\n } else if (tagValue && tagValue.endsWith(\">\")) {\n xmlStr += tagStart + `>${tagValue}${indentation}`;\n } else {\n xmlStr += tagStart + \">\";\n if (tagValue && indentation !== \"\" && (tagValue.includes(\"/>\") || tagValue.includes(\"`;\n }\n isPreviousElementTag = true;\n }\n\n return xmlStr;\n}\n\nfunction propName(obj) {\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if (key !== \":@\") return key;\n }\n}\n\nfunction attr_to_str(attrMap, options) {\n let attrStr = \"\";\n if (attrMap && !options.ignoreAttributes) {\n for (let attr in attrMap) {\n let attrVal = options.attributeValueProcessor(attr, attrMap[attr]);\n attrVal = replaceEntitiesValue(attrVal, options);\n if (attrVal === true && options.suppressBooleanAttributes) {\n attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}`;\n } else {\n attrStr += ` ${attr.substr(options.attributeNamePrefix.length)}=\"${attrVal}\"`;\n }\n }\n }\n return attrStr;\n}\n\nfunction isStopNode(jPath, options) {\n jPath = jPath.substr(0, jPath.length - options.textNodeName.length - 1);\n let tagName = jPath.substr(jPath.lastIndexOf(\".\") + 1);\n for (let index in options.stopNodes) {\n if (options.stopNodes[index] === jPath || options.stopNodes[index] === \"*.\" + tagName) return true;\n }\n return false;\n}\n\nfunction replaceEntitiesValue(textValue, options) {\n if (textValue && textValue.length > 0 && options.processEntities) {\n for (let i = 0; i < options.entities.length; i++) {\n const entity = options.entities[i];\n textValue = textValue.replace(entity.regex, entity.val);\n }\n }\n return textValue;\n}\nmodule.exports = toXml;\n","const util = require('../util');\n\n//TODO: handle comments\nfunction readDocType(xmlData, i){\n \n const entities = {};\n if( xmlData[i + 3] === 'O' &&\n xmlData[i + 4] === 'C' &&\n xmlData[i + 5] === 'T' &&\n xmlData[i + 6] === 'Y' &&\n xmlData[i + 7] === 'P' &&\n xmlData[i + 8] === 'E')\n { \n i = i+9;\n let angleBracketsCount = 1;\n let hasBody = false, comment = false;\n let exp = \"\";\n for(;i') { //Read tag content\n if(comment){\n if( xmlData[i - 1] === \"-\" && xmlData[i - 2] === \"-\"){\n comment = false;\n angleBracketsCount--;\n }\n }else{\n angleBracketsCount--;\n }\n if (angleBracketsCount === 0) {\n break;\n }\n }else if( xmlData[i] === '['){\n hasBody = true;\n }else{\n exp += xmlData[i];\n }\n }\n if(angleBracketsCount !== 0){\n throw new Error(`Unclosed DOCTYPE`);\n }\n }else{\n throw new Error(`Invalid Tag instead of DOCTYPE`);\n }\n return {entities, i};\n}\n\nfunction readEntityExp(xmlData,i){\n //External entities are not supported\n // \n\n //Parameter entities are not supported\n // \n\n //Internal entities are supported\n // \n \n //read EntityName\n let entityName = \"\";\n for (; i < xmlData.length && (xmlData[i] !== \"'\" && xmlData[i] !== '\"' ); i++) {\n // if(xmlData[i] === \" \") continue;\n // else \n entityName += xmlData[i];\n }\n entityName = entityName.trim();\n if(entityName.indexOf(\" \") !== -1) throw new Error(\"External entites are not supported\");\n\n //read Entity Value\n const startChar = xmlData[i++];\n let val = \"\"\n for (; i < xmlData.length && xmlData[i] !== startChar ; i++) {\n val += xmlData[i];\n }\n return [entityName, val, i];\n}\n\nfunction isComment(xmlData, i){\n if(xmlData[i+1] === '!' &&\n xmlData[i+2] === '-' &&\n xmlData[i+3] === '-') return true\n return false\n}\nfunction isEntity(xmlData, i){\n if(xmlData[i+1] === '!' &&\n xmlData[i+2] === 'E' &&\n xmlData[i+3] === 'N' &&\n xmlData[i+4] === 'T' &&\n xmlData[i+5] === 'I' &&\n xmlData[i+6] === 'T' &&\n xmlData[i+7] === 'Y') return true\n return false\n}\nfunction isElement(xmlData, i){\n if(xmlData[i+1] === '!' &&\n xmlData[i+2] === 'E' &&\n xmlData[i+3] === 'L' &&\n xmlData[i+4] === 'E' &&\n xmlData[i+5] === 'M' &&\n xmlData[i+6] === 'E' &&\n xmlData[i+7] === 'N' &&\n xmlData[i+8] === 'T') return true\n return false\n}\n\nfunction isAttlist(xmlData, i){\n if(xmlData[i+1] === '!' &&\n xmlData[i+2] === 'A' &&\n xmlData[i+3] === 'T' &&\n xmlData[i+4] === 'T' &&\n xmlData[i+5] === 'L' &&\n xmlData[i+6] === 'I' &&\n xmlData[i+7] === 'S' &&\n xmlData[i+8] === 'T') return true\n return false\n}\nfunction isNotation(xmlData, i){\n if(xmlData[i+1] === '!' &&\n xmlData[i+2] === 'N' &&\n xmlData[i+3] === 'O' &&\n xmlData[i+4] === 'T' &&\n xmlData[i+5] === 'A' &&\n xmlData[i+6] === 'T' &&\n xmlData[i+7] === 'I' &&\n xmlData[i+8] === 'O' &&\n xmlData[i+9] === 'N') return true\n return false\n}\n\nfunction validateEntityName(name){\n if (util.isName(name))\n\treturn name;\n else\n throw new Error(`Invalid entity name ${name}`);\n}\n\nmodule.exports = readDocType;\n","\nconst defaultOptions = {\n preserveOrder: false,\n attributeNamePrefix: '@_',\n attributesGroupName: false,\n textNodeName: '#text',\n ignoreAttributes: true,\n removeNSPrefix: false, // remove NS from tag name or attribute name if true\n allowBooleanAttributes: false, //a tag can have attributes without any value\n //ignoreRootElement : false,\n parseTagValue: true,\n parseAttributeValue: false,\n trimValues: true, //Trim string values of tag and attributes\n cdataPropName: false,\n numberParseOptions: {\n hex: true,\n leadingZeros: true,\n eNotation: true\n },\n tagValueProcessor: function(tagName, val) {\n return val;\n },\n attributeValueProcessor: function(attrName, val) {\n return val;\n },\n stopNodes: [], //nested tags will not be parsed even for errors\n alwaysCreateTextNode: false,\n isArray: () => false,\n commentPropName: false,\n unpairedTags: [],\n processEntities: true,\n htmlEntities: false,\n ignoreDeclaration: false,\n ignorePiTags: false,\n transformTagName: false,\n transformAttributeName: false,\n updateTag: function(tagName, jPath, attrs){\n return tagName\n },\n // skipEmptyListItem: false\n};\n \nconst buildOptions = function(options) {\n return Object.assign({}, defaultOptions, options);\n};\n\nexports.buildOptions = buildOptions;\nexports.defaultOptions = defaultOptions;","'use strict';\n///@ts-check\n\nconst util = require('../util');\nconst xmlNode = require('./xmlNode');\nconst readDocType = require(\"./DocTypeReader\");\nconst toNumber = require(\"strnum\");\n\nconst regx =\n '<((!\\\\[CDATA\\\\[([\\\\s\\\\S]*?)(]]>))|((NAME:)?(NAME))([^>]*)>|((\\\\/)(NAME)\\\\s*>))([^<]*)'\n .replace(/NAME/g, util.nameRegexp);\n\n//const tagsRegx = new RegExp(\"<(\\\\/?[\\\\w:\\\\-\\._]+)([^>]*)>(\\\\s*\"+cdataRegx+\")*([^<]+)?\",\"g\");\n//const tagsRegx = new RegExp(\"<(\\\\/?)((\\\\w*:)?([\\\\w:\\\\-\\._]+))([^>]*)>([^<]*)(\"+cdataRegx+\"([^<]*))*([^<]+)?\",\"g\");\n\nclass OrderedObjParser{\n constructor(options){\n this.options = options;\n this.currentNode = null;\n this.tagsNodeStack = [];\n this.docTypeEntities = {};\n this.lastEntities = {\n \"apos\" : { regex: /&(apos|#39|#x27);/g, val : \"'\"},\n \"gt\" : { regex: /&(gt|#62|#x3E);/g, val : \">\"},\n \"lt\" : { regex: /&(lt|#60|#x3C);/g, val : \"<\"},\n \"quot\" : { regex: /&(quot|#34|#x22);/g, val : \"\\\"\"},\n };\n this.ampEntity = { regex: /&(amp|#38|#x26);/g, val : \"&\"};\n this.htmlEntities = {\n \"space\": { regex: /&(nbsp|#160);/g, val: \" \" },\n // \"lt\" : { regex: /&(lt|#60);/g, val: \"<\" },\n // \"gt\" : { regex: /&(gt|#62);/g, val: \">\" },\n // \"amp\" : { regex: /&(amp|#38);/g, val: \"&\" },\n // \"quot\" : { regex: /&(quot|#34);/g, val: \"\\\"\" },\n // \"apos\" : { regex: /&(apos|#39);/g, val: \"'\" },\n \"cent\" : { regex: /&(cent|#162);/g, val: \"¢\" },\n \"pound\" : { regex: /&(pound|#163);/g, val: \"£\" },\n \"yen\" : { regex: /&(yen|#165);/g, val: \"¥\" },\n \"euro\" : { regex: /&(euro|#8364);/g, val: \"€\" },\n \"copyright\" : { regex: /&(copy|#169);/g, val: \"©\" },\n \"reg\" : { regex: /&(reg|#174);/g, val: \"®\" },\n \"inr\" : { regex: /&(inr|#8377);/g, val: \"₹\" },\n };\n this.addExternalEntities = addExternalEntities;\n this.parseXml = parseXml;\n this.parseTextData = parseTextData;\n this.resolveNameSpace = resolveNameSpace;\n this.buildAttributesMap = buildAttributesMap;\n this.isItStopNode = isItStopNode;\n this.replaceEntitiesValue = replaceEntitiesValue;\n this.readStopNodeData = readStopNodeData;\n this.saveTextToParentTag = saveTextToParentTag;\n this.addChild = addChild;\n }\n\n}\n\nfunction addExternalEntities(externalEntities){\n const entKeys = Object.keys(externalEntities);\n for (let i = 0; i < entKeys.length; i++) {\n const ent = entKeys[i];\n this.lastEntities[ent] = {\n regex: new RegExp(\"&\"+ent+\";\",\"g\"),\n val : externalEntities[ent]\n }\n }\n}\n\n/**\n * @param {string} val\n * @param {string} tagName\n * @param {string} jPath\n * @param {boolean} dontTrim\n * @param {boolean} hasAttributes\n * @param {boolean} isLeafNode\n * @param {boolean} escapeEntities\n */\nfunction parseTextData(val, tagName, jPath, dontTrim, hasAttributes, isLeafNode, escapeEntities) {\n if (val !== undefined) {\n if (this.options.trimValues && !dontTrim) {\n val = val.trim();\n }\n if(val.length > 0){\n if(!escapeEntities) val = this.replaceEntitiesValue(val);\n \n const newval = this.options.tagValueProcessor(tagName, val, jPath, hasAttributes, isLeafNode);\n if(newval === null || newval === undefined){\n //don't parse\n return val;\n }else if(typeof newval !== typeof val || newval !== val){\n //overwrite\n return newval;\n }else if(this.options.trimValues){\n return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n }else{\n const trimmedVal = val.trim();\n if(trimmedVal === val){\n return parseValue(val, this.options.parseTagValue, this.options.numberParseOptions);\n }else{\n return val;\n }\n }\n }\n }\n}\n\nfunction resolveNameSpace(tagname) {\n if (this.options.removeNSPrefix) {\n const tags = tagname.split(':');\n const prefix = tagname.charAt(0) === '/' ? '/' : '';\n if (tags[0] === 'xmlns') {\n return '';\n }\n if (tags.length === 2) {\n tagname = prefix + tags[1];\n }\n }\n return tagname;\n}\n\n//TODO: change regex to capture NS\n//const attrsRegx = new RegExp(\"([\\\\w\\\\-\\\\.\\\\:]+)\\\\s*=\\\\s*(['\\\"])((.|\\n)*?)\\\\2\",\"gm\");\nconst attrsRegx = new RegExp('([^\\\\s=]+)\\\\s*(=\\\\s*([\\'\"])([\\\\s\\\\S]*?)\\\\3)?', 'gm');\n\nfunction buildAttributesMap(attrStr, jPath, tagName) {\n if (!this.options.ignoreAttributes && typeof attrStr === 'string') {\n // attrStr = attrStr.replace(/\\r?\\n/g, ' ');\n //attrStr = attrStr || attrStr.trim();\n\n const matches = util.getAllMatches(attrStr, attrsRegx);\n const len = matches.length; //don't make it inline\n const attrs = {};\n for (let i = 0; i < len; i++) {\n const attrName = this.resolveNameSpace(matches[i][1]);\n let oldVal = matches[i][4];\n let aName = this.options.attributeNamePrefix + attrName;\n if (attrName.length) {\n if (this.options.transformAttributeName) {\n aName = this.options.transformAttributeName(aName);\n }\n if(aName === \"__proto__\") aName = \"#__proto__\";\n if (oldVal !== undefined) {\n if (this.options.trimValues) {\n oldVal = oldVal.trim();\n }\n oldVal = this.replaceEntitiesValue(oldVal);\n const newVal = this.options.attributeValueProcessor(attrName, oldVal, jPath);\n if(newVal === null || newVal === undefined){\n //don't parse\n attrs[aName] = oldVal;\n }else if(typeof newVal !== typeof oldVal || newVal !== oldVal){\n //overwrite\n attrs[aName] = newVal;\n }else{\n //parse\n attrs[aName] = parseValue(\n oldVal,\n this.options.parseAttributeValue,\n this.options.numberParseOptions\n );\n }\n } else if (this.options.allowBooleanAttributes) {\n attrs[aName] = true;\n }\n }\n }\n if (!Object.keys(attrs).length) {\n return;\n }\n if (this.options.attributesGroupName) {\n const attrCollection = {};\n attrCollection[this.options.attributesGroupName] = attrs;\n return attrCollection;\n }\n return attrs\n }\n}\n\nconst parseXml = function(xmlData) {\n xmlData = xmlData.replace(/\\r\\n?/g, \"\\n\"); //TODO: remove this line\n const xmlObj = new xmlNode('!xml');\n let currentNode = xmlObj;\n let textData = \"\";\n let jPath = \"\";\n for(let i=0; i< xmlData.length; i++){//for each char in XML data\n const ch = xmlData[i];\n if(ch === '<'){\n // const nextIndex = i+1;\n // const _2ndChar = xmlData[nextIndex];\n if( xmlData[i+1] === '/') {//Closing Tag\n const closeIndex = findClosingIndex(xmlData, \">\", i, \"Closing Tag is not closed.\")\n let tagName = xmlData.substring(i+2,closeIndex).trim();\n\n if(this.options.removeNSPrefix){\n const colonIndex = tagName.indexOf(\":\");\n if(colonIndex !== -1){\n tagName = tagName.substr(colonIndex+1);\n }\n }\n\n if(this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n\n if(currentNode){\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n }\n\n //check if last tag of nested tag was unpaired tag\n const lastTagName = jPath.substring(jPath.lastIndexOf(\".\")+1);\n if(tagName && this.options.unpairedTags.indexOf(tagName) !== -1 ){\n throw new Error(`Unpaired tag can not be used as closing tag: `);\n }\n let propIndex = 0\n if(lastTagName && this.options.unpairedTags.indexOf(lastTagName) !== -1 ){\n propIndex = jPath.lastIndexOf('.', jPath.lastIndexOf('.')-1)\n this.tagsNodeStack.pop();\n }else{\n propIndex = jPath.lastIndexOf(\".\");\n }\n jPath = jPath.substring(0, propIndex);\n\n currentNode = this.tagsNodeStack.pop();//avoid recursion, set the parent tag scope\n textData = \"\";\n i = closeIndex;\n } else if( xmlData[i+1] === '?') {\n\n let tagData = readTagExp(xmlData,i, false, \"?>\");\n if(!tagData) throw new Error(\"Pi Tag is not closed.\");\n\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n if( (this.options.ignoreDeclaration && tagData.tagName === \"?xml\") || this.options.ignorePiTags){\n\n }else{\n \n const childNode = new xmlNode(tagData.tagName);\n childNode.add(this.options.textNodeName, \"\");\n \n if(tagData.tagName !== tagData.tagExp && tagData.attrExpPresent){\n childNode[\":@\"] = this.buildAttributesMap(tagData.tagExp, jPath, tagData.tagName);\n }\n this.addChild(currentNode, childNode, jPath)\n\n }\n\n\n i = tagData.closeIndex + 1;\n } else if(xmlData.substr(i + 1, 3) === '!--') {\n const endIndex = findClosingIndex(xmlData, \"-->\", i+4, \"Comment is not closed.\")\n if(this.options.commentPropName){\n const comment = xmlData.substring(i + 4, endIndex - 2);\n\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n\n currentNode.add(this.options.commentPropName, [ { [this.options.textNodeName] : comment } ]);\n }\n i = endIndex;\n } else if( xmlData.substr(i + 1, 2) === '!D') {\n const result = readDocType(xmlData, i);\n this.docTypeEntities = result.entities;\n i = result.i;\n }else if(xmlData.substr(i + 1, 2) === '![') {\n const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"CDATA is not closed.\") - 2;\n const tagExp = xmlData.substring(i + 9,closeIndex);\n\n textData = this.saveTextToParentTag(textData, currentNode, jPath);\n\n //cdata should be set even if it is 0 length string\n if(this.options.cdataPropName){\n // let val = this.parseTextData(tagExp, this.options.cdataPropName, jPath + \".\" + this.options.cdataPropName, true, false, true);\n // if(!val) val = \"\";\n currentNode.add(this.options.cdataPropName, [ { [this.options.textNodeName] : tagExp } ]);\n }else{\n let val = this.parseTextData(tagExp, currentNode.tagname, jPath, true, false, true);\n if(val == undefined) val = \"\";\n currentNode.add(this.options.textNodeName, val);\n }\n \n i = closeIndex + 2;\n }else {//Opening tag\n let result = readTagExp(xmlData,i, this.options.removeNSPrefix);\n let tagName= result.tagName;\n let tagExp = result.tagExp;\n let attrExpPresent = result.attrExpPresent;\n let closeIndex = result.closeIndex;\n\n if (this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n \n //save text as child node\n if (currentNode && textData) {\n if(currentNode.tagname !== '!xml'){\n //when nested tag is found\n textData = this.saveTextToParentTag(textData, currentNode, jPath, false);\n }\n }\n\n //check if last tag was unpaired tag\n const lastTag = currentNode;\n if(lastTag && this.options.unpairedTags.indexOf(lastTag.tagname) !== -1 ){\n currentNode = this.tagsNodeStack.pop();\n jPath = jPath.substring(0, jPath.lastIndexOf(\".\"));\n }\n if(tagName !== xmlObj.tagname){\n jPath += jPath ? \".\" + tagName : tagName;\n }\n if (this.isItStopNode(this.options.stopNodes, jPath, tagName)) { //TODO: namespace\n let tagContent = \"\";\n //self-closing tag\n if(tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1){\n i = result.closeIndex;\n }\n //unpaired tag\n else if(this.options.unpairedTags.indexOf(tagName) !== -1){\n i = result.closeIndex;\n }\n //normal tag\n else{\n //read until closing tag is found\n const result = this.readStopNodeData(xmlData, tagName, closeIndex + 1);\n if(!result) throw new Error(`Unexpected end of ${tagName}`);\n i = result.i;\n tagContent = result.tagContent;\n }\n\n const childNode = new xmlNode(tagName);\n if(tagName !== tagExp && attrExpPresent){\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n if(tagContent) {\n tagContent = this.parseTextData(tagContent, tagName, jPath, true, attrExpPresent, true, true);\n }\n \n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n childNode.add(this.options.textNodeName, tagContent);\n \n this.addChild(currentNode, childNode, jPath)\n }else{\n //selfClosing tag\n if(tagExp.length > 0 && tagExp.lastIndexOf(\"/\") === tagExp.length - 1){\n if(tagName[tagName.length - 1] === \"/\"){ //remove trailing '/'\n tagName = tagName.substr(0, tagName.length - 1);\n tagExp = tagName;\n }else{\n tagExp = tagExp.substr(0, tagExp.length - 1);\n }\n \n if(this.options.transformTagName) {\n tagName = this.options.transformTagName(tagName);\n }\n\n const childNode = new xmlNode(tagName);\n if(tagName !== tagExp && attrExpPresent){\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n this.addChild(currentNode, childNode, jPath)\n jPath = jPath.substr(0, jPath.lastIndexOf(\".\"));\n }\n //opening tag\n else{\n const childNode = new xmlNode( tagName);\n this.tagsNodeStack.push(currentNode);\n \n if(tagName !== tagExp && attrExpPresent){\n childNode[\":@\"] = this.buildAttributesMap(tagExp, jPath, tagName);\n }\n this.addChild(currentNode, childNode, jPath)\n currentNode = childNode;\n }\n textData = \"\";\n i = closeIndex;\n }\n }\n }else{\n textData += xmlData[i];\n }\n }\n return xmlObj.child;\n}\n\nfunction addChild(currentNode, childNode, jPath){\n const result = this.options.updateTag(childNode.tagname, jPath, childNode[\":@\"])\n if(result === false){\n }else if(typeof result === \"string\"){\n childNode.tagname = result\n currentNode.addChild(childNode);\n }else{\n currentNode.addChild(childNode);\n }\n}\n\nconst replaceEntitiesValue = function(val){\n\n if(this.options.processEntities){\n for(let entityName in this.docTypeEntities){\n const entity = this.docTypeEntities[entityName];\n val = val.replace( entity.regx, entity.val);\n }\n for(let entityName in this.lastEntities){\n const entity = this.lastEntities[entityName];\n val = val.replace( entity.regex, entity.val);\n }\n if(this.options.htmlEntities){\n for(let entityName in this.htmlEntities){\n const entity = this.htmlEntities[entityName];\n val = val.replace( entity.regex, entity.val);\n }\n }\n val = val.replace( this.ampEntity.regex, this.ampEntity.val);\n }\n return val;\n}\nfunction saveTextToParentTag(textData, currentNode, jPath, isLeafNode) {\n if (textData) { //store previously collected data as textNode\n if(isLeafNode === undefined) isLeafNode = Object.keys(currentNode.child).length === 0\n \n textData = this.parseTextData(textData,\n currentNode.tagname,\n jPath,\n false,\n currentNode[\":@\"] ? Object.keys(currentNode[\":@\"]).length !== 0 : false,\n isLeafNode);\n\n if (textData !== undefined && textData !== \"\")\n currentNode.add(this.options.textNodeName, textData);\n textData = \"\";\n }\n return textData;\n}\n\n//TODO: use jPath to simplify the logic\n/**\n * \n * @param {string[]} stopNodes \n * @param {string} jPath\n * @param {string} currentTagName \n */\nfunction isItStopNode(stopNodes, jPath, currentTagName){\n const allNodesExp = \"*.\" + currentTagName;\n for (const stopNodePath in stopNodes) {\n const stopNodeExp = stopNodes[stopNodePath];\n if( allNodesExp === stopNodeExp || jPath === stopNodeExp ) return true;\n }\n return false;\n}\n\n/**\n * Returns the tag Expression and where it is ending handling single-double quotes situation\n * @param {string} xmlData \n * @param {number} i starting index\n * @returns \n */\nfunction tagExpWithClosingIndex(xmlData, i, closingChar = \">\"){\n let attrBoundary;\n let tagExp = \"\";\n for (let index = i; index < xmlData.length; index++) {\n let ch = xmlData[index];\n if (attrBoundary) {\n if (ch === attrBoundary) attrBoundary = \"\";//reset\n } else if (ch === '\"' || ch === \"'\") {\n attrBoundary = ch;\n } else if (ch === closingChar[0]) {\n if(closingChar[1]){\n if(xmlData[index + 1] === closingChar[1]){\n return {\n data: tagExp,\n index: index\n }\n }\n }else{\n return {\n data: tagExp,\n index: index\n }\n }\n } else if (ch === '\\t') {\n ch = \" \"\n }\n tagExp += ch;\n }\n}\n\nfunction findClosingIndex(xmlData, str, i, errMsg){\n const closingIndex = xmlData.indexOf(str, i);\n if(closingIndex === -1){\n throw new Error(errMsg)\n }else{\n return closingIndex + str.length - 1;\n }\n}\n\nfunction readTagExp(xmlData,i, removeNSPrefix, closingChar = \">\"){\n const result = tagExpWithClosingIndex(xmlData, i+1, closingChar);\n if(!result) return;\n let tagExp = result.data;\n const closeIndex = result.index;\n const separatorIndex = tagExp.search(/\\s/);\n let tagName = tagExp;\n let attrExpPresent = true;\n if(separatorIndex !== -1){//separate tag name and attributes expression\n tagName = tagExp.substr(0, separatorIndex).replace(/\\s\\s*$/, '');\n tagExp = tagExp.substr(separatorIndex + 1);\n }\n\n if(removeNSPrefix){\n const colonIndex = tagName.indexOf(\":\");\n if(colonIndex !== -1){\n tagName = tagName.substr(colonIndex+1);\n attrExpPresent = tagName !== result.data.substr(colonIndex + 1);\n }\n }\n\n return {\n tagName: tagName,\n tagExp: tagExp,\n closeIndex: closeIndex,\n attrExpPresent: attrExpPresent,\n }\n}\n/**\n * find paired tag for a stop node\n * @param {string} xmlData \n * @param {string} tagName \n * @param {number} i \n */\nfunction readStopNodeData(xmlData, tagName, i){\n const startIndex = i;\n // Starting at 1 since we already have an open tag\n let openTagCount = 1;\n\n for (; i < xmlData.length; i++) {\n if( xmlData[i] === \"<\"){ \n if (xmlData[i+1] === \"/\") {//close tag\n const closeIndex = findClosingIndex(xmlData, \">\", i, `${tagName} is not closed`);\n let closeTagName = xmlData.substring(i+2,closeIndex).trim();\n if(closeTagName === tagName){\n openTagCount--;\n if (openTagCount === 0) {\n return {\n tagContent: xmlData.substring(startIndex, i),\n i : closeIndex\n }\n }\n }\n i=closeIndex;\n } else if(xmlData[i+1] === '?') { \n const closeIndex = findClosingIndex(xmlData, \"?>\", i+1, \"StopNode is not closed.\")\n i=closeIndex;\n } else if(xmlData.substr(i + 1, 3) === '!--') { \n const closeIndex = findClosingIndex(xmlData, \"-->\", i+3, \"StopNode is not closed.\")\n i=closeIndex;\n } else if(xmlData.substr(i + 1, 2) === '![') { \n const closeIndex = findClosingIndex(xmlData, \"]]>\", i, \"StopNode is not closed.\") - 2;\n i=closeIndex;\n } else {\n const tagData = readTagExp(xmlData, i, '>')\n\n if (tagData) {\n const openTagName = tagData && tagData.tagName;\n if (openTagName === tagName && tagData.tagExp[tagData.tagExp.length-1] !== \"/\") {\n openTagCount++;\n }\n i=tagData.closeIndex;\n }\n }\n }\n }//end for loop\n}\n\nfunction parseValue(val, shouldParse, options) {\n if (shouldParse && typeof val === 'string') {\n //console.log(options)\n const newval = val.trim();\n if(newval === 'true' ) return true;\n else if(newval === 'false' ) return false;\n else return toNumber(val, options);\n } else {\n if (util.isExist(val)) {\n return val;\n } else {\n return '';\n }\n }\n}\n\n\nmodule.exports = OrderedObjParser;\n","const { buildOptions} = require(\"./OptionsBuilder\");\nconst OrderedObjParser = require(\"./OrderedObjParser\");\nconst { prettify} = require(\"./node2json\");\nconst validator = require('../validator');\n\nclass XMLParser{\n \n constructor(options){\n this.externalEntities = {};\n this.options = buildOptions(options);\n \n }\n /**\n * Parse XML dats to JS object \n * @param {string|Buffer} xmlData \n * @param {boolean|Object} validationOption \n */\n parse(xmlData,validationOption){\n if(typeof xmlData === \"string\"){\n }else if( xmlData.toString){\n xmlData = xmlData.toString();\n }else{\n throw new Error(\"XML data is accepted in String or Bytes[] form.\")\n }\n if( validationOption){\n if(validationOption === true) validationOption = {}; //validate with default options\n \n const result = validator.validate(xmlData, validationOption);\n if (result !== true) {\n throw Error( `${result.err.msg}:${result.err.line}:${result.err.col}` )\n }\n }\n const orderedObjParser = new OrderedObjParser(this.options);\n orderedObjParser.addExternalEntities(this.externalEntities);\n const orderedResult = orderedObjParser.parseXml(xmlData);\n if(this.options.preserveOrder || orderedResult === undefined) return orderedResult;\n else return prettify(orderedResult, this.options);\n }\n\n /**\n * Add Entity which is not by default supported by this library\n * @param {string} key \n * @param {string} value \n */\n addEntity(key, value){\n if(value.indexOf(\"&\") !== -1){\n throw new Error(\"Entity value can't have '&'\")\n }else if(key.indexOf(\"&\") !== -1 || key.indexOf(\";\") !== -1){\n throw new Error(\"An entity must be set without '&' and ';'. Eg. use '#xD' for ' '\")\n }else if(value === \"&\"){\n throw new Error(\"An entity with value '&' is not permitted\");\n }else{\n this.externalEntities[key] = value;\n }\n }\n}\n\nmodule.exports = XMLParser;","'use strict';\n\n/**\n * \n * @param {array} node \n * @param {any} options \n * @returns \n */\nfunction prettify(node, options){\n return compress( node, options);\n}\n\n/**\n * \n * @param {array} arr \n * @param {object} options \n * @param {string} jPath \n * @returns object\n */\nfunction compress(arr, options, jPath){\n let text;\n const compressedObj = {};\n for (let i = 0; i < arr.length; i++) {\n const tagObj = arr[i];\n const property = propName(tagObj);\n let newJpath = \"\";\n if(jPath === undefined) newJpath = property;\n else newJpath = jPath + \".\" + property;\n\n if(property === options.textNodeName){\n if(text === undefined) text = tagObj[property];\n else text += \"\" + tagObj[property];\n }else if(property === undefined){\n continue;\n }else if(tagObj[property]){\n \n let val = compress(tagObj[property], options, newJpath);\n const isLeaf = isLeafTag(val, options);\n\n if(tagObj[\":@\"]){\n assignAttributes( val, tagObj[\":@\"], newJpath, options);\n }else if(Object.keys(val).length === 1 && val[options.textNodeName] !== undefined && !options.alwaysCreateTextNode){\n val = val[options.textNodeName];\n }else if(Object.keys(val).length === 0){\n if(options.alwaysCreateTextNode) val[options.textNodeName] = \"\";\n else val = \"\";\n }\n\n if(compressedObj[property] !== undefined && compressedObj.hasOwnProperty(property)) {\n if(!Array.isArray(compressedObj[property])) {\n compressedObj[property] = [ compressedObj[property] ];\n }\n compressedObj[property].push(val);\n }else{\n //TODO: if a node is not an array, then check if it should be an array\n //also determine if it is a leaf node\n if (options.isArray(property, newJpath, isLeaf )) {\n compressedObj[property] = [val];\n }else{\n compressedObj[property] = val;\n }\n }\n }\n \n }\n // if(text && text.length > 0) compressedObj[options.textNodeName] = text;\n if(typeof text === \"string\"){\n if(text.length > 0) compressedObj[options.textNodeName] = text;\n }else if(text !== undefined) compressedObj[options.textNodeName] = text;\n return compressedObj;\n}\n\nfunction propName(obj){\n const keys = Object.keys(obj);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n if(key !== \":@\") return key;\n }\n}\n\nfunction assignAttributes(obj, attrMap, jpath, options){\n if (attrMap) {\n const keys = Object.keys(attrMap);\n const len = keys.length; //don't make it inline\n for (let i = 0; i < len; i++) {\n const atrrName = keys[i];\n if (options.isArray(atrrName, jpath + \".\" + atrrName, true, true)) {\n obj[atrrName] = [ attrMap[atrrName] ];\n } else {\n obj[atrrName] = attrMap[atrrName];\n }\n }\n }\n}\n\nfunction isLeafTag(obj, options){\n const { textNodeName } = options;\n const propCount = Object.keys(obj).length;\n \n if (propCount === 0) {\n return true;\n }\n\n if (\n propCount === 1 &&\n (obj[textNodeName] || typeof obj[textNodeName] === \"boolean\" || obj[textNodeName] === 0)\n ) {\n return true;\n }\n\n return false;\n}\nexports.prettify = prettify;\n","'use strict';\n\nclass XmlNode{\n constructor(tagname) {\n this.tagname = tagname;\n this.child = []; //nested tags, text, cdata, comments in order\n this[\":@\"] = {}; //attributes map\n }\n add(key,val){\n // this.child.push( {name : key, val: val, isCdata: isCdata });\n if(key === \"__proto__\") key = \"#__proto__\";\n this.child.push( {[key]: val });\n }\n addChild(node) {\n if(node.tagname === \"__proto__\") node.tagname = \"#__proto__\";\n if(node[\":@\"] && Object.keys(node[\":@\"]).length > 0){\n this.child.push( { [node.tagname]: node.child, [\":@\"]: node[\":@\"] });\n }else{\n this.child.push( { [node.tagname]: node.child });\n }\n };\n};\n\n\nmodule.exports = XmlNode;","'use strict'\n\nvar formatter = require('format')\n\nvar fault = create(Error)\n\nmodule.exports = fault\n\nfault.eval = create(EvalError)\nfault.range = create(RangeError)\nfault.reference = create(ReferenceError)\nfault.syntax = create(SyntaxError)\nfault.type = create(TypeError)\nfault.uri = create(URIError)\n\nfault.create = create\n\n// Create a new `EConstructor`, with the formatted `format` as a first argument.\nfunction create(EConstructor) {\n FormattedError.displayName = EConstructor.displayName || EConstructor.name\n\n return FormattedError\n\n function FormattedError(format) {\n if (format) {\n format = formatter.apply(null, arguments)\n }\n\n return new EConstructor(format)\n }\n}\n","'use strict';\n\nvar isCallable = require('is-callable');\n\nvar toStr = Object.prototype.toString;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\n\nvar forEachArray = function forEachArray(array, iterator, receiver) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n if (receiver == null) {\n iterator(array[i], i, array);\n } else {\n iterator.call(receiver, array[i], i, array);\n }\n }\n }\n};\n\nvar forEachString = function forEachString(string, iterator, receiver) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n if (receiver == null) {\n iterator(string.charAt(i), i, string);\n } else {\n iterator.call(receiver, string.charAt(i), i, string);\n }\n }\n};\n\nvar forEachObject = function forEachObject(object, iterator, receiver) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n if (receiver == null) {\n iterator(object[k], k, object);\n } else {\n iterator.call(receiver, object[k], k, object);\n }\n }\n }\n};\n\nvar forEach = function forEach(list, iterator, thisArg) {\n if (!isCallable(iterator)) {\n throw new TypeError('iterator must be a function');\n }\n\n var receiver;\n if (arguments.length >= 3) {\n receiver = thisArg;\n }\n\n if (toStr.call(list) === '[object Array]') {\n forEachArray(list, iterator, receiver);\n } else if (typeof list === 'string') {\n forEachString(list, iterator, receiver);\n } else {\n forEachObject(list, iterator, receiver);\n }\n};\n\nmodule.exports = forEach;\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","var isMergeableObject = function isMergeableObject(value) {\n\treturn isNonNullObject(value)\n\t\t&& !isSpecial(value)\n};\n\nfunction isNonNullObject(value) {\n\treturn !!value && typeof value === 'object'\n}\n\nfunction isSpecial(value) {\n\tvar stringValue = Object.prototype.toString.call(value);\n\n\treturn stringValue === '[object RegExp]'\n\t\t|| stringValue === '[object Date]'\n\t\t|| isReactElement(value)\n}\n\n// see https://github.com/facebook/react/blob/b5ac963fb791d1298e7f396236383bc955f916c1/src/isomorphic/classic/element/ReactElement.js#L21-L25\nvar canUseSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = canUseSymbol ? Symbol.for('react.element') : 0xeac7;\n\nfunction isReactElement(value) {\n\treturn value.$$typeof === REACT_ELEMENT_TYPE\n}\n\nfunction emptyTarget(val) {\n\treturn Array.isArray(val) ? [] : {}\n}\n\nfunction cloneUnlessOtherwiseSpecified(value, options) {\n\treturn (options.clone !== false && options.isMergeableObject(value))\n\t\t? deepmerge(emptyTarget(value), value, options)\n\t\t: value\n}\n\nfunction defaultArrayMerge(target, source, options) {\n\treturn target.concat(source).map(function(element) {\n\t\treturn cloneUnlessOtherwiseSpecified(element, options)\n\t})\n}\n\nfunction mergeObject(target, source, options) {\n\tvar destination = {};\n\tif (options.isMergeableObject(target)) {\n\t\tObject.keys(target).forEach(function(key) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(target[key], options);\n\t\t});\n\t}\n\tObject.keys(source).forEach(function(key) {\n\t\tif (!options.isMergeableObject(source[key]) || !target[key]) {\n\t\t\tdestination[key] = cloneUnlessOtherwiseSpecified(source[key], options);\n\t\t} else {\n\t\t\tdestination[key] = deepmerge(target[key], source[key], options);\n\t\t}\n\t});\n\treturn destination\n}\n\nfunction deepmerge(target, source, options) {\n\toptions = options || {};\n\toptions.arrayMerge = options.arrayMerge || defaultArrayMerge;\n\toptions.isMergeableObject = options.isMergeableObject || isMergeableObject;\n\n\tvar sourceIsArray = Array.isArray(source);\n\tvar targetIsArray = Array.isArray(target);\n\tvar sourceAndTargetTypesMatch = sourceIsArray === targetIsArray;\n\n\tif (!sourceAndTargetTypesMatch) {\n\t\treturn cloneUnlessOtherwiseSpecified(source, options)\n\t} else if (sourceIsArray) {\n\t\treturn options.arrayMerge(target, source, options)\n\t} else {\n\t\treturn mergeObject(target, source, options)\n\t}\n}\n\ndeepmerge.all = function deepmergeAll(array, options) {\n\tif (!Array.isArray(array)) {\n\t\tthrow new Error('first argument should be an array')\n\t}\n\n\treturn array.reduce(function(prev, next) {\n\t\treturn deepmerge(prev, next, options)\n\t}, {})\n};\n\nvar deepmerge_1 = deepmerge;\n\nexport default deepmerge_1;\n","import copyObject from './_copyObject.js';\nimport keys from './keys.js';\n\n/**\n * The base implementation of `_.assign` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssign(object, source) {\n return object && copyObject(source, keys(source), object);\n}\n\nexport default baseAssign;\n","import copyObject from './_copyObject.js';\nimport keysIn from './keysIn.js';\n\n/**\n * The base implementation of `_.assignIn` without support for multiple sources\n * or `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @returns {Object} Returns `object`.\n */\nfunction baseAssignIn(object, source) {\n return object && copyObject(source, keysIn(source), object);\n}\n\nexport default baseAssignIn;\n","import copyObject from './_copyObject.js';\nimport getSymbols from './_getSymbols.js';\n\n/**\n * Copies own symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbols(source, object) {\n return copyObject(source, getSymbols(source), object);\n}\n\nexport default copySymbols;\n","import arrayPush from './_arrayPush.js';\nimport getPrototype from './_getPrototype.js';\nimport getSymbols from './_getSymbols.js';\nimport stubArray from './stubArray.js';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeGetSymbols = Object.getOwnPropertySymbols;\n\n/**\n * Creates an array of the own and inherited enumerable symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of symbols.\n */\nvar getSymbolsIn = !nativeGetSymbols ? stubArray : function(object) {\n var result = [];\n while (object) {\n arrayPush(result, getSymbols(object));\n object = getPrototype(object);\n }\n return result;\n};\n\nexport default getSymbolsIn;\n","import copyObject from './_copyObject.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\n\n/**\n * Copies own and inherited symbols of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy symbols from.\n * @param {Object} [object={}] The object to copy symbols to.\n * @returns {Object} Returns `object`.\n */\nfunction copySymbolsIn(source, object) {\n return copyObject(source, getSymbolsIn(source), object);\n}\n\nexport default copySymbolsIn;\n","import baseGetAllKeys from './_baseGetAllKeys.js';\nimport getSymbolsIn from './_getSymbolsIn.js';\nimport keysIn from './keysIn.js';\n\n/**\n * Creates an array of own and inherited enumerable property names and\n * symbols of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names and symbols.\n */\nfunction getAllKeysIn(object) {\n return baseGetAllKeys(object, keysIn, getSymbolsIn);\n}\n\nexport default getAllKeysIn;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Initializes an array clone.\n *\n * @private\n * @param {Array} array The array to clone.\n * @returns {Array} Returns the initialized clone.\n */\nfunction initCloneArray(array) {\n var length = array.length,\n result = new array.constructor(length);\n\n // Add properties assigned by `RegExp#exec`.\n if (length && typeof array[0] == 'string' && hasOwnProperty.call(array, 'index')) {\n result.index = array.index;\n result.input = array.input;\n }\n return result;\n}\n\nexport default initCloneArray;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\n\n/**\n * Creates a clone of `dataView`.\n *\n * @private\n * @param {Object} dataView The data view to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the cloned data view.\n */\nfunction cloneDataView(dataView, isDeep) {\n var buffer = isDeep ? cloneArrayBuffer(dataView.buffer) : dataView.buffer;\n return new dataView.constructor(buffer, dataView.byteOffset, dataView.byteLength);\n}\n\nexport default cloneDataView;\n","/** Used to match `RegExp` flags from their coerced string values. */\nvar reFlags = /\\w*$/;\n\n/**\n * Creates a clone of `regexp`.\n *\n * @private\n * @param {Object} regexp The regexp to clone.\n * @returns {Object} Returns the cloned regexp.\n */\nfunction cloneRegExp(regexp) {\n var result = new regexp.constructor(regexp.source, reFlags.exec(regexp));\n result.lastIndex = regexp.lastIndex;\n return result;\n}\n\nexport default cloneRegExp;\n","import Symbol from './_Symbol.js';\n\n/** Used to convert symbols to primitives and strings. */\nvar symbolProto = Symbol ? Symbol.prototype : undefined,\n symbolValueOf = symbolProto ? symbolProto.valueOf : undefined;\n\n/**\n * Creates a clone of the `symbol` object.\n *\n * @private\n * @param {Object} symbol The symbol object to clone.\n * @returns {Object} Returns the cloned symbol object.\n */\nfunction cloneSymbol(symbol) {\n return symbolValueOf ? Object(symbolValueOf.call(symbol)) : {};\n}\n\nexport default cloneSymbol;\n","import cloneArrayBuffer from './_cloneArrayBuffer.js';\nimport cloneDataView from './_cloneDataView.js';\nimport cloneRegExp from './_cloneRegExp.js';\nimport cloneSymbol from './_cloneSymbol.js';\nimport cloneTypedArray from './_cloneTypedArray.js';\n\n/** `Object#toString` result references. */\nvar boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/**\n * Initializes an object clone based on its `toStringTag`.\n *\n * **Note:** This function only supports cloning values with tags of\n * `Boolean`, `Date`, `Error`, `Map`, `Number`, `RegExp`, `Set`, or `String`.\n *\n * @private\n * @param {Object} object The object to clone.\n * @param {string} tag The `toStringTag` of the object to clone.\n * @param {boolean} [isDeep] Specify a deep clone.\n * @returns {Object} Returns the initialized clone.\n */\nfunction initCloneByTag(object, tag, isDeep) {\n var Ctor = object.constructor;\n switch (tag) {\n case arrayBufferTag:\n return cloneArrayBuffer(object);\n\n case boolTag:\n case dateTag:\n return new Ctor(+object);\n\n case dataViewTag:\n return cloneDataView(object, isDeep);\n\n case float32Tag: case float64Tag:\n case int8Tag: case int16Tag: case int32Tag:\n case uint8Tag: case uint8ClampedTag: case uint16Tag: case uint32Tag:\n return cloneTypedArray(object, isDeep);\n\n case mapTag:\n return new Ctor;\n\n case numberTag:\n case stringTag:\n return new Ctor(object);\n\n case regexpTag:\n return cloneRegExp(object);\n\n case setTag:\n return new Ctor;\n\n case symbolTag:\n return cloneSymbol(object);\n }\n}\n\nexport default initCloneByTag;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar mapTag = '[object Map]';\n\n/**\n * The base implementation of `_.isMap` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n */\nfunction baseIsMap(value) {\n return isObjectLike(value) && getTag(value) == mapTag;\n}\n\nexport default baseIsMap;\n","import baseIsMap from './_baseIsMap.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsMap = nodeUtil && nodeUtil.isMap;\n\n/**\n * Checks if `value` is classified as a `Map` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a map, else `false`.\n * @example\n *\n * _.isMap(new Map);\n * // => true\n *\n * _.isMap(new WeakMap);\n * // => false\n */\nvar isMap = nodeIsMap ? baseUnary(nodeIsMap) : baseIsMap;\n\nexport default isMap;\n","import getTag from './_getTag.js';\nimport isObjectLike from './isObjectLike.js';\n\n/** `Object#toString` result references. */\nvar setTag = '[object Set]';\n\n/**\n * The base implementation of `_.isSet` without Node.js optimizations.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n */\nfunction baseIsSet(value) {\n return isObjectLike(value) && getTag(value) == setTag;\n}\n\nexport default baseIsSet;\n","import baseIsSet from './_baseIsSet.js';\nimport baseUnary from './_baseUnary.js';\nimport nodeUtil from './_nodeUtil.js';\n\n/* Node.js helper references. */\nvar nodeIsSet = nodeUtil && nodeUtil.isSet;\n\n/**\n * Checks if `value` is classified as a `Set` object.\n *\n * @static\n * @memberOf _\n * @since 4.3.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a set, else `false`.\n * @example\n *\n * _.isSet(new Set);\n * // => true\n *\n * _.isSet(new WeakSet);\n * // => false\n */\nvar isSet = nodeIsSet ? baseUnary(nodeIsSet) : baseIsSet;\n\nexport default isSet;\n","import Stack from './_Stack.js';\nimport arrayEach from './_arrayEach.js';\nimport assignValue from './_assignValue.js';\nimport baseAssign from './_baseAssign.js';\nimport baseAssignIn from './_baseAssignIn.js';\nimport cloneBuffer from './_cloneBuffer.js';\nimport copyArray from './_copyArray.js';\nimport copySymbols from './_copySymbols.js';\nimport copySymbolsIn from './_copySymbolsIn.js';\nimport getAllKeys from './_getAllKeys.js';\nimport getAllKeysIn from './_getAllKeysIn.js';\nimport getTag from './_getTag.js';\nimport initCloneArray from './_initCloneArray.js';\nimport initCloneByTag from './_initCloneByTag.js';\nimport initCloneObject from './_initCloneObject.js';\nimport isArray from './isArray.js';\nimport isBuffer from './isBuffer.js';\nimport isMap from './isMap.js';\nimport isObject from './isObject.js';\nimport isSet from './isSet.js';\nimport keys from './keys.js';\nimport keysIn from './keysIn.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_FLAT_FLAG = 2,\n CLONE_SYMBOLS_FLAG = 4;\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n genTag = '[object GeneratorFunction]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n symbolTag = '[object Symbol]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n dataViewTag = '[object DataView]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values supported by `_.clone`. */\nvar cloneableTags = {};\ncloneableTags[argsTag] = cloneableTags[arrayTag] =\ncloneableTags[arrayBufferTag] = cloneableTags[dataViewTag] =\ncloneableTags[boolTag] = cloneableTags[dateTag] =\ncloneableTags[float32Tag] = cloneableTags[float64Tag] =\ncloneableTags[int8Tag] = cloneableTags[int16Tag] =\ncloneableTags[int32Tag] = cloneableTags[mapTag] =\ncloneableTags[numberTag] = cloneableTags[objectTag] =\ncloneableTags[regexpTag] = cloneableTags[setTag] =\ncloneableTags[stringTag] = cloneableTags[symbolTag] =\ncloneableTags[uint8Tag] = cloneableTags[uint8ClampedTag] =\ncloneableTags[uint16Tag] = cloneableTags[uint32Tag] = true;\ncloneableTags[errorTag] = cloneableTags[funcTag] =\ncloneableTags[weakMapTag] = false;\n\n/**\n * The base implementation of `_.clone` and `_.cloneDeep` which tracks\n * traversed objects.\n *\n * @private\n * @param {*} value The value to clone.\n * @param {boolean} bitmask The bitmask flags.\n * 1 - Deep clone\n * 2 - Flatten inherited properties\n * 4 - Clone symbols\n * @param {Function} [customizer] The function to customize cloning.\n * @param {string} [key] The key of `value`.\n * @param {Object} [object] The parent object of `value`.\n * @param {Object} [stack] Tracks traversed objects and their clone counterparts.\n * @returns {*} Returns the cloned value.\n */\nfunction baseClone(value, bitmask, customizer, key, object, stack) {\n var result,\n isDeep = bitmask & CLONE_DEEP_FLAG,\n isFlat = bitmask & CLONE_FLAT_FLAG,\n isFull = bitmask & CLONE_SYMBOLS_FLAG;\n\n if (customizer) {\n result = object ? customizer(value, key, object, stack) : customizer(value);\n }\n if (result !== undefined) {\n return result;\n }\n if (!isObject(value)) {\n return value;\n }\n var isArr = isArray(value);\n if (isArr) {\n result = initCloneArray(value);\n if (!isDeep) {\n return copyArray(value, result);\n }\n } else {\n var tag = getTag(value),\n isFunc = tag == funcTag || tag == genTag;\n\n if (isBuffer(value)) {\n return cloneBuffer(value, isDeep);\n }\n if (tag == objectTag || tag == argsTag || (isFunc && !object)) {\n result = (isFlat || isFunc) ? {} : initCloneObject(value);\n if (!isDeep) {\n return isFlat\n ? copySymbolsIn(value, baseAssignIn(result, value))\n : copySymbols(value, baseAssign(result, value));\n }\n } else {\n if (!cloneableTags[tag]) {\n return object ? value : {};\n }\n result = initCloneByTag(value, tag, isDeep);\n }\n }\n // Check for circular references and return its corresponding clone.\n stack || (stack = new Stack);\n var stacked = stack.get(value);\n if (stacked) {\n return stacked;\n }\n stack.set(value, result);\n\n if (isSet(value)) {\n value.forEach(function(subValue) {\n result.add(baseClone(subValue, bitmask, customizer, subValue, value, stack));\n });\n } else if (isMap(value)) {\n value.forEach(function(subValue, key) {\n result.set(key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n }\n\n var keysFunc = isFull\n ? (isFlat ? getAllKeysIn : getAllKeys)\n : (isFlat ? keysIn : keys);\n\n var props = isArr ? undefined : keysFunc(value);\n arrayEach(props || value, function(subValue, key) {\n if (props) {\n key = subValue;\n subValue = value[key];\n }\n // Recursively populate clone (susceptible to call stack limits).\n assignValue(result, key, baseClone(subValue, bitmask, customizer, key, value, stack));\n });\n return result;\n}\n\nexport default baseClone;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * Creates a shallow clone of `value`.\n *\n * **Note:** This method is loosely based on the\n * [structured clone algorithm](https://mdn.io/Structured_clone_algorithm)\n * and supports cloning arrays, array buffers, booleans, date objects, maps,\n * numbers, `Object` objects, regexes, sets, strings, symbols, and typed\n * arrays. The own enumerable properties of `arguments` objects are cloned\n * as plain objects. An empty object is returned for uncloneable values such\n * as error objects, functions, DOM nodes, and WeakMaps.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to clone.\n * @returns {*} Returns the cloned value.\n * @see _.cloneDeep\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var shallow = _.clone(objects);\n * console.log(shallow[0] === objects[0]);\n * // => true\n */\nfunction clone(value) {\n return baseClone(value, CLONE_SYMBOLS_FLAG);\n}\n\nexport default clone;\n","import arrayMap from './_arrayMap.js';\nimport copyArray from './_copyArray.js';\nimport isArray from './isArray.js';\nimport isSymbol from './isSymbol.js';\nimport stringToPath from './_stringToPath.js';\nimport toKey from './_toKey.js';\nimport toString from './toString.js';\n\n/**\n * Converts `value` to a property path array.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Util\n * @param {*} value The value to convert.\n * @returns {Array} Returns the new property path array.\n * @example\n *\n * _.toPath('a.b.c');\n * // => ['a', 'b', 'c']\n *\n * _.toPath('a[0].b.c');\n * // => ['a', '0', 'b', 'c']\n */\nfunction toPath(value) {\n if (isArray(value)) {\n return arrayMap(value, toKey);\n }\n return isSymbol(value) ? [value] : copyArray(stringToPath(toString(value)));\n}\n\nexport default toPath;\n","var isProduction = process.env.NODE_ENV === 'production';\nfunction warning(condition, message) {\n if (!isProduction) {\n if (condition) {\n return;\n }\n\n var text = \"Warning: \" + message;\n\n if (typeof console !== 'undefined') {\n console.warn(text);\n }\n\n try {\n throw Error(text);\n } catch (x) {}\n }\n}\n\nexport default warning;\n","import baseClone from './_baseClone.js';\n\n/** Used to compose bitmasks for cloning. */\nvar CLONE_DEEP_FLAG = 1,\n CLONE_SYMBOLS_FLAG = 4;\n\n/**\n * This method is like `_.clone` except that it recursively clones `value`.\n *\n * @static\n * @memberOf _\n * @since 1.0.0\n * @category Lang\n * @param {*} value The value to recursively clone.\n * @returns {*} Returns the deep cloned value.\n * @see _.clone\n * @example\n *\n * var objects = [{ 'a': 1 }, { 'b': 2 }];\n *\n * var deep = _.cloneDeep(objects);\n * console.log(deep[0] === objects[0]);\n * // => false\n */\nfunction cloneDeep(value) {\n return baseClone(value, CLONE_DEEP_FLAG | CLONE_SYMBOLS_FLAG);\n}\n\nexport default cloneDeep;\n","import clone from 'lodash/clone';\nimport toPath from 'lodash/toPath';\nimport * as React from 'react';\n\n// Assertions\n\n/** @private is the value an empty array? */\nexport const isEmptyArray = (value?: any) =>\n Array.isArray(value) && value.length === 0;\n\n/** @private is the given object a Function? */\nexport const isFunction = (obj: any): obj is Function =>\n typeof obj === 'function';\n\n/** @private is the given object an Object? */\nexport const isObject = (obj: any): obj is Object =>\n obj !== null && typeof obj === 'object';\n\n/** @private is the given object an integer? */\nexport const isInteger = (obj: any): boolean =>\n String(Math.floor(Number(obj))) === obj;\n\n/** @private is the given object a string? */\nexport const isString = (obj: any): obj is string =>\n Object.prototype.toString.call(obj) === '[object String]';\n\n/** @private is the given object a NaN? */\n// eslint-disable-next-line no-self-compare\nexport const isNaN = (obj: any): boolean => obj !== obj;\n\n/** @private Does a React component have exactly 0 children? */\nexport const isEmptyChildren = (children: any): boolean =>\n React.Children.count(children) === 0;\n\n/** @private is the given object/value a promise? */\nexport const isPromise = (value: any): value is PromiseLike =>\n isObject(value) && isFunction(value.then);\n\n/** @private is the given object/value a type of synthetic event? */\nexport const isInputEvent = (value: any): value is React.SyntheticEvent =>\n value && isObject(value) && isObject(value.target);\n\n/**\n * Same as document.activeElement but wraps in a try-catch block. In IE it is\n * not safe to call document.activeElement if there is nothing focused.\n *\n * The activeElement will be null only if the document or document body is not\n * yet defined.\n *\n * @param {?Document} doc Defaults to current document.\n * @return {Element | null}\n * @see https://github.com/facebook/fbjs/blob/master/packages/fbjs/src/core/dom/getActiveElement.js\n */\nexport function getActiveElement(doc?: Document): Element | null {\n doc = doc || (typeof document !== 'undefined' ? document : undefined);\n if (typeof doc === 'undefined') {\n return null;\n }\n try {\n return doc.activeElement || doc.body;\n } catch (e) {\n return doc.body;\n }\n}\n\n/**\n * Deeply get a value from an object via its path.\n */\nexport function getIn(\n obj: any,\n key: string | string[],\n def?: any,\n p: number = 0\n) {\n const path = toPath(key);\n while (obj && p < path.length) {\n obj = obj[path[p++]];\n }\n return obj === undefined ? def : obj;\n}\n\n/**\n * Deeply set a value from in object via it's path. If the value at `path`\n * has changed, return a shallow copy of obj with `value` set at `path`.\n * If `value` has not changed, return the original `obj`.\n *\n * Existing objects / arrays along `path` are also shallow copied. Sibling\n * objects along path retain the same internal js reference. Since new\n * objects / arrays are only created along `path`, we can test if anything\n * changed in a nested structure by comparing the object's reference in\n * the old and new object, similar to how russian doll cache invalidation\n * works.\n *\n * In earlier versions of this function, which used cloneDeep, there were\n * issues whereby settings a nested value would mutate the parent\n * instead of creating a new object. `clone` avoids that bug making a\n * shallow copy of the objects along the update path\n * so no object is mutated in place.\n *\n * Before changing this function, please read through the following\n * discussions.\n *\n * @see https://github.com/developit/linkstate\n * @see https://github.com/jaredpalmer/formik/pull/123\n */\nexport function setIn(obj: any, path: string, value: any): any {\n let res: any = clone(obj); // this keeps inheritance when obj is a class\n let resVal: any = res;\n let i = 0;\n let pathArray = toPath(path);\n\n for (; i < pathArray.length - 1; i++) {\n const currentPath: string = pathArray[i];\n let currentObj: any = getIn(obj, pathArray.slice(0, i + 1));\n\n if (currentObj && (isObject(currentObj) || Array.isArray(currentObj))) {\n resVal = resVal[currentPath] = clone(currentObj);\n } else {\n const nextPath: string = pathArray[i + 1];\n resVal = resVal[currentPath] =\n isInteger(nextPath) && Number(nextPath) >= 0 ? [] : {};\n }\n }\n\n // Return original object if new value is the same as current\n if ((i === 0 ? obj : resVal)[pathArray[i]] === value) {\n return obj;\n }\n\n if (value === undefined) {\n delete resVal[pathArray[i]];\n } else {\n resVal[pathArray[i]] = value;\n }\n\n // If the path array has a single element, the loop did not run.\n // Deleting on `resVal` had no effect in this scenario, so we delete on the result instead.\n if (i === 0 && value === undefined) {\n delete res[pathArray[i]];\n }\n\n return res;\n}\n\n/**\n * Recursively a set the same value for all keys and arrays nested object, cloning\n * @param object\n * @param value\n * @param visited\n * @param response\n */\nexport function setNestedObjectValues(\n object: any,\n value: any,\n visited: any = new WeakMap(),\n response: any = {}\n): T {\n for (let k of Object.keys(object)) {\n const val = object[k];\n if (isObject(val)) {\n if (!visited.get(val)) {\n visited.set(val, true);\n // In order to keep array values consistent for both dot path and\n // bracket syntax, we need to check if this is an array so that\n // this will output { friends: [true] } and not { friends: { \"0\": true } }\n response[k] = Array.isArray(val) ? [] : {};\n setNestedObjectValues(val, value, visited, response[k]);\n }\n } else {\n response[k] = value;\n }\n }\n\n return response;\n}\n","import * as React from 'react';\nimport { FormikContextType } from './types';\nimport invariant from 'tiny-warning';\n\nexport const FormikContext = React.createContext>(\n undefined as any\n);\nFormikContext.displayName = 'FormikContext';\n\nexport const FormikProvider = FormikContext.Provider;\nexport const FormikConsumer = FormikContext.Consumer;\n\nexport function useFormikContext() {\n const formik = React.useContext>(FormikContext);\n\n invariant(\n !!formik,\n `Formik context is undefined, please verify you are calling useFormikContext() as child of a component.`\n );\n\n return formik;\n}\n","import * as React from 'react';\nimport isEqual from 'react-fast-compare';\nimport deepmerge from 'deepmerge';\nimport isPlainObject from 'lodash/isPlainObject';\nimport {\n FormikConfig,\n FormikErrors,\n FormikState,\n FormikTouched,\n FormikValues,\n FormikProps,\n FieldMetaProps,\n FieldHelperProps,\n FieldInputProps,\n FormikHelpers,\n FormikHandlers,\n} from './types';\nimport {\n isFunction,\n isString,\n setIn,\n isEmptyChildren,\n isPromise,\n setNestedObjectValues,\n getActiveElement,\n getIn,\n isObject,\n} from './utils';\nimport { FormikProvider } from './FormikContext';\nimport invariant from 'tiny-warning';\n\ntype FormikMessage =\n | { type: 'SUBMIT_ATTEMPT' }\n | { type: 'SUBMIT_FAILURE' }\n | { type: 'SUBMIT_SUCCESS' }\n | { type: 'SET_ISVALIDATING'; payload: boolean }\n | { type: 'SET_ISSUBMITTING'; payload: boolean }\n | { type: 'SET_VALUES'; payload: Values }\n | { type: 'SET_FIELD_VALUE'; payload: { field: string; value?: any } }\n | { type: 'SET_FIELD_TOUCHED'; payload: { field: string; value?: boolean } }\n | { type: 'SET_FIELD_ERROR'; payload: { field: string; value?: string } }\n | { type: 'SET_TOUCHED'; payload: FormikTouched }\n | { type: 'SET_ERRORS'; payload: FormikErrors }\n | { type: 'SET_STATUS'; payload: any }\n | {\n type: 'SET_FORMIK_STATE';\n payload: (s: FormikState) => FormikState;\n }\n | {\n type: 'RESET_FORM';\n payload: FormikState;\n };\n\n// State reducer\nfunction formikReducer(\n state: FormikState,\n msg: FormikMessage\n) {\n switch (msg.type) {\n case 'SET_VALUES':\n return { ...state, values: msg.payload };\n case 'SET_TOUCHED':\n return { ...state, touched: msg.payload };\n case 'SET_ERRORS':\n if (isEqual(state.errors, msg.payload)) {\n return state;\n }\n\n return { ...state, errors: msg.payload };\n case 'SET_STATUS':\n return { ...state, status: msg.payload };\n case 'SET_ISSUBMITTING':\n return { ...state, isSubmitting: msg.payload };\n case 'SET_ISVALIDATING':\n return { ...state, isValidating: msg.payload };\n case 'SET_FIELD_VALUE':\n return {\n ...state,\n values: setIn(state.values, msg.payload.field, msg.payload.value),\n };\n case 'SET_FIELD_TOUCHED':\n return {\n ...state,\n touched: setIn(state.touched, msg.payload.field, msg.payload.value),\n };\n case 'SET_FIELD_ERROR':\n return {\n ...state,\n errors: setIn(state.errors, msg.payload.field, msg.payload.value),\n };\n case 'RESET_FORM':\n return { ...state, ...msg.payload };\n case 'SET_FORMIK_STATE':\n return msg.payload(state);\n case 'SUBMIT_ATTEMPT':\n return {\n ...state,\n touched: setNestedObjectValues>(\n state.values,\n true\n ),\n isSubmitting: true,\n submitCount: state.submitCount + 1,\n };\n case 'SUBMIT_FAILURE':\n return {\n ...state,\n isSubmitting: false,\n };\n case 'SUBMIT_SUCCESS':\n return {\n ...state,\n isSubmitting: false,\n };\n default:\n return state;\n }\n}\n\n// Initial empty states // objects\nconst emptyErrors: FormikErrors = {};\nconst emptyTouched: FormikTouched = {};\n\n// This is an object that contains a map of all registered fields\n// and their validate functions\ninterface FieldRegistry {\n [field: string]: {\n validate: (value: any) => string | Promise | undefined;\n };\n}\n\nexport function useFormik({\n validateOnChange = true,\n validateOnBlur = true,\n validateOnMount = false,\n isInitialValid,\n enableReinitialize = false,\n onSubmit,\n ...rest\n}: FormikConfig) {\n const props = {\n validateOnChange,\n validateOnBlur,\n validateOnMount,\n onSubmit,\n ...rest,\n };\n const initialValues = React.useRef(props.initialValues);\n const initialErrors = React.useRef(props.initialErrors || emptyErrors);\n const initialTouched = React.useRef(props.initialTouched || emptyTouched);\n const initialStatus = React.useRef(props.initialStatus);\n const isMounted = React.useRef(false);\n const fieldRegistry = React.useRef({});\n if (__DEV__) {\n // eslint-disable-next-line react-hooks/rules-of-hooks\n React.useEffect(() => {\n invariant(\n typeof isInitialValid === 'undefined',\n 'isInitialValid has been deprecated and will be removed in future versions of Formik. Please use initialErrors or validateOnMount instead.'\n );\n // eslint-disable-next-line\n }, []);\n }\n\n React.useEffect(() => {\n isMounted.current = true;\n\n return () => {\n isMounted.current = false;\n };\n }, []);\n\n const [state, dispatch] = React.useReducer<\n React.Reducer, FormikMessage>\n >(formikReducer, {\n values: props.initialValues,\n errors: props.initialErrors || emptyErrors,\n touched: props.initialTouched || emptyTouched,\n status: props.initialStatus,\n isSubmitting: false,\n isValidating: false,\n submitCount: 0,\n });\n\n const runValidateHandler = React.useCallback(\n (values: Values, field?: string): Promise> => {\n return new Promise((resolve, reject) => {\n const maybePromisedErrors = (props.validate as any)(values, field);\n if (maybePromisedErrors == null) {\n // use loose null check here on purpose\n resolve(emptyErrors);\n } else if (isPromise(maybePromisedErrors)) {\n (maybePromisedErrors as Promise).then(\n errors => {\n resolve(errors || emptyErrors);\n },\n actualException => {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Warning: An unhandled error was caught during validation in `,\n actualException\n );\n }\n\n reject(actualException);\n }\n );\n } else {\n resolve(maybePromisedErrors);\n }\n });\n },\n [props.validate]\n );\n\n /**\n * Run validation against a Yup schema and optionally run a function if successful\n */\n const runValidationSchema = React.useCallback(\n (values: Values, field?: string): Promise> => {\n const validationSchema = props.validationSchema;\n const schema = isFunction(validationSchema)\n ? validationSchema(field)\n : validationSchema;\n const promise =\n field && schema.validateAt\n ? schema.validateAt(field, values)\n : validateYupSchema(values, schema);\n return new Promise((resolve, reject) => {\n promise.then(\n () => {\n resolve(emptyErrors);\n },\n (err: any) => {\n // Yup will throw a validation error if validation fails. We catch those and\n // resolve them into Formik errors. We can sniff if something is a Yup error\n // by checking error.name.\n // @see https://github.com/jquense/yup#validationerrorerrors-string--arraystring-value-any-path-string\n if (err.name === 'ValidationError') {\n resolve(yupToFormErrors(err));\n } else {\n // We throw any other errors\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Warning: An unhandled error was caught during validation in `,\n err\n );\n }\n\n reject(err);\n }\n }\n );\n });\n },\n [props.validationSchema]\n );\n\n const runSingleFieldLevelValidation = React.useCallback(\n (field: string, value: void | string): Promise => {\n return new Promise(resolve =>\n resolve(fieldRegistry.current[field].validate(value) as string)\n );\n },\n []\n );\n\n const runFieldLevelValidations = React.useCallback(\n (values: Values): Promise> => {\n const fieldKeysWithValidation: string[] = Object.keys(\n fieldRegistry.current\n ).filter(f => isFunction(fieldRegistry.current[f].validate));\n\n // Construct an array with all of the field validation functions\n const fieldValidations: Promise[] =\n fieldKeysWithValidation.length > 0\n ? fieldKeysWithValidation.map(f =>\n runSingleFieldLevelValidation(f, getIn(values, f))\n )\n : [Promise.resolve('DO_NOT_DELETE_YOU_WILL_BE_FIRED')]; // use special case ;)\n\n return Promise.all(fieldValidations).then((fieldErrorsList: string[]) =>\n fieldErrorsList.reduce((prev, curr, index) => {\n if (curr === 'DO_NOT_DELETE_YOU_WILL_BE_FIRED') {\n return prev;\n }\n if (curr) {\n prev = setIn(prev, fieldKeysWithValidation[index], curr);\n }\n return prev;\n }, {})\n );\n },\n [runSingleFieldLevelValidation]\n );\n\n // Run all validations and return the result\n const runAllValidations = React.useCallback(\n (values: Values) => {\n return Promise.all([\n runFieldLevelValidations(values),\n props.validationSchema ? runValidationSchema(values) : {},\n props.validate ? runValidateHandler(values) : {},\n ]).then(([fieldErrors, schemaErrors, validateErrors]) => {\n const combinedErrors = deepmerge.all>(\n [fieldErrors, schemaErrors, validateErrors],\n { arrayMerge }\n );\n return combinedErrors;\n });\n },\n [\n props.validate,\n props.validationSchema,\n runFieldLevelValidations,\n runValidateHandler,\n runValidationSchema,\n ]\n );\n\n // Run all validations methods and update state accordingly\n const validateFormWithHighPriority = useEventCallback(\n (values: Values = state.values) => {\n dispatch({ type: 'SET_ISVALIDATING', payload: true });\n return runAllValidations(values).then(combinedErrors => {\n if (!!isMounted.current) {\n dispatch({ type: 'SET_ISVALIDATING', payload: false });\n dispatch({ type: 'SET_ERRORS', payload: combinedErrors });\n }\n return combinedErrors;\n });\n }\n );\n\n React.useEffect(() => {\n if (\n validateOnMount &&\n isMounted.current === true &&\n isEqual(initialValues.current, props.initialValues)\n ) {\n validateFormWithHighPriority(initialValues.current);\n }\n }, [validateOnMount, validateFormWithHighPriority]);\n\n const resetForm = React.useCallback(\n (nextState?: Partial>) => {\n const values =\n nextState && nextState.values\n ? nextState.values\n : initialValues.current;\n const errors =\n nextState && nextState.errors\n ? nextState.errors\n : initialErrors.current\n ? initialErrors.current\n : props.initialErrors || {};\n const touched =\n nextState && nextState.touched\n ? nextState.touched\n : initialTouched.current\n ? initialTouched.current\n : props.initialTouched || {};\n const status =\n nextState && nextState.status\n ? nextState.status\n : initialStatus.current\n ? initialStatus.current\n : props.initialStatus;\n initialValues.current = values;\n initialErrors.current = errors;\n initialTouched.current = touched;\n initialStatus.current = status;\n\n const dispatchFn = () => {\n dispatch({\n type: 'RESET_FORM',\n payload: {\n isSubmitting: !!nextState && !!nextState.isSubmitting,\n errors,\n touched,\n status,\n values,\n isValidating: !!nextState && !!nextState.isValidating,\n submitCount:\n !!nextState &&\n !!nextState.submitCount &&\n typeof nextState.submitCount === 'number'\n ? nextState.submitCount\n : 0,\n },\n });\n };\n\n if (props.onReset) {\n const maybePromisedOnReset = (props.onReset as any)(\n state.values,\n imperativeMethods\n );\n\n if (isPromise(maybePromisedOnReset)) {\n (maybePromisedOnReset as Promise).then(dispatchFn);\n } else {\n dispatchFn();\n }\n } else {\n dispatchFn();\n }\n },\n [props.initialErrors, props.initialStatus, props.initialTouched]\n );\n\n React.useEffect(() => {\n if (\n isMounted.current === true &&\n !isEqual(initialValues.current, props.initialValues)\n ) {\n if (enableReinitialize) {\n initialValues.current = props.initialValues;\n resetForm();\n }\n\n if (validateOnMount) {\n validateFormWithHighPriority(initialValues.current);\n }\n }\n }, [\n enableReinitialize,\n props.initialValues,\n resetForm,\n validateOnMount,\n validateFormWithHighPriority,\n ]);\n\n React.useEffect(() => {\n if (\n enableReinitialize &&\n isMounted.current === true &&\n !isEqual(initialErrors.current, props.initialErrors)\n ) {\n initialErrors.current = props.initialErrors || emptyErrors;\n dispatch({\n type: 'SET_ERRORS',\n payload: props.initialErrors || emptyErrors,\n });\n }\n }, [enableReinitialize, props.initialErrors]);\n\n React.useEffect(() => {\n if (\n enableReinitialize &&\n isMounted.current === true &&\n !isEqual(initialTouched.current, props.initialTouched)\n ) {\n initialTouched.current = props.initialTouched || emptyTouched;\n dispatch({\n type: 'SET_TOUCHED',\n payload: props.initialTouched || emptyTouched,\n });\n }\n }, [enableReinitialize, props.initialTouched]);\n\n React.useEffect(() => {\n if (\n enableReinitialize &&\n isMounted.current === true &&\n !isEqual(initialStatus.current, props.initialStatus)\n ) {\n initialStatus.current = props.initialStatus;\n dispatch({\n type: 'SET_STATUS',\n payload: props.initialStatus,\n });\n }\n }, [enableReinitialize, props.initialStatus, props.initialTouched]);\n\n const validateField = useEventCallback((name: string) => {\n // This will efficiently validate a single field by avoiding state\n // changes if the validation function is synchronous. It's different from\n // what is called when using validateForm.\n\n if (\n fieldRegistry.current[name] &&\n isFunction(fieldRegistry.current[name].validate)\n ) {\n const value = getIn(state.values, name);\n const maybePromise = fieldRegistry.current[name].validate(value);\n if (isPromise(maybePromise)) {\n // Only flip isValidating if the function is async.\n dispatch({ type: 'SET_ISVALIDATING', payload: true });\n return maybePromise\n .then((x: any) => x)\n .then((error: string) => {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: { field: name, value: error },\n });\n dispatch({ type: 'SET_ISVALIDATING', payload: false });\n });\n } else {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: {\n field: name,\n value: maybePromise as string | undefined,\n },\n });\n return Promise.resolve(maybePromise as string | undefined);\n }\n } else if (props.validationSchema) {\n dispatch({ type: 'SET_ISVALIDATING', payload: true });\n return runValidationSchema(state.values, name)\n .then((x: any) => x)\n .then((error: any) => {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: { field: name, value: error[name] },\n });\n dispatch({ type: 'SET_ISVALIDATING', payload: false });\n });\n }\n\n return Promise.resolve();\n });\n\n const registerField = React.useCallback((name: string, { validate }: any) => {\n fieldRegistry.current[name] = {\n validate,\n };\n }, []);\n\n const unregisterField = React.useCallback((name: string) => {\n delete fieldRegistry.current[name];\n }, []);\n\n const setTouched = useEventCallback(\n (touched: FormikTouched, shouldValidate?: boolean) => {\n dispatch({ type: 'SET_TOUCHED', payload: touched });\n const willValidate =\n shouldValidate === undefined ? validateOnBlur : shouldValidate;\n return willValidate\n ? validateFormWithHighPriority(state.values)\n : Promise.resolve();\n }\n );\n\n const setErrors = React.useCallback((errors: FormikErrors) => {\n dispatch({ type: 'SET_ERRORS', payload: errors });\n }, []);\n\n const setValues = useEventCallback(\n (values: React.SetStateAction, shouldValidate?: boolean) => {\n const resolvedValues = isFunction(values) ? values(state.values) : values;\n\n dispatch({ type: 'SET_VALUES', payload: resolvedValues });\n const willValidate =\n shouldValidate === undefined ? validateOnChange : shouldValidate;\n return willValidate\n ? validateFormWithHighPriority(resolvedValues)\n : Promise.resolve();\n }\n );\n\n const setFieldError = React.useCallback(\n (field: string, value: string | undefined) => {\n dispatch({\n type: 'SET_FIELD_ERROR',\n payload: { field, value },\n });\n },\n []\n );\n\n const setFieldValue = useEventCallback(\n (field: string, value: any, shouldValidate?: boolean) => {\n dispatch({\n type: 'SET_FIELD_VALUE',\n payload: {\n field,\n value,\n },\n });\n const willValidate =\n shouldValidate === undefined ? validateOnChange : shouldValidate;\n return willValidate\n ? validateFormWithHighPriority(setIn(state.values, field, value))\n : Promise.resolve();\n }\n );\n\n const executeChange = React.useCallback(\n (eventOrTextValue: string | React.ChangeEvent, maybePath?: string) => {\n // By default, assume that the first argument is a string. This allows us to use\n // handleChange with React Native and React Native Web's onChangeText prop which\n // provides just the value of the input.\n let field = maybePath;\n let val = eventOrTextValue;\n let parsed;\n // If the first argument is not a string though, it has to be a synthetic React Event (or a fake one),\n // so we handle like we would a normal HTML change event.\n if (!isString(eventOrTextValue)) {\n // If we can, persist the event\n // @see https://reactjs.org/docs/events.html#event-pooling\n if ((eventOrTextValue as any).persist) {\n (eventOrTextValue as React.ChangeEvent).persist();\n }\n const target = eventOrTextValue.target\n ? (eventOrTextValue as React.ChangeEvent).target\n : (eventOrTextValue as React.ChangeEvent).currentTarget;\n\n const {\n type,\n name,\n id,\n value,\n checked,\n outerHTML,\n options,\n multiple,\n } = target;\n\n field = maybePath ? maybePath : name ? name : id;\n if (!field && __DEV__) {\n warnAboutMissingIdentifier({\n htmlContent: outerHTML,\n documentationAnchorLink: 'handlechange-e-reactchangeeventany--void',\n handlerName: 'handleChange',\n });\n }\n val = /number|range/.test(type)\n ? ((parsed = parseFloat(value)), isNaN(parsed) ? '' : parsed)\n : /checkbox/.test(type) // checkboxes\n ? getValueForCheckbox(getIn(state.values, field!), checked, value)\n : options && multiple // issue in FF and IE #571\n if (!env.isWebKit && element.querySelector('select:focus')) {\n return true;\n }\n\n if (!element.contains(target)) {\n return false;\n }\n\n let cursor = target;\n\n while (cursor && cursor !== element) {\n if (cursor.classList.contains(cls.element.consuming)) {\n return true;\n }\n\n const style = CSS.get(cursor);\n\n // if deltaY && vertical scrollable\n if (deltaY && style.overflowY.match(/(scroll|auto)/)) {\n const maxScrollTop = cursor.scrollHeight - cursor.clientHeight;\n if (maxScrollTop > 0) {\n if (\n (cursor.scrollTop > 0 && deltaY < 0) ||\n (cursor.scrollTop < maxScrollTop && deltaY > 0)\n ) {\n return true;\n }\n }\n }\n // if deltaX && horizontal scrollable\n if (deltaX && style.overflowX.match(/(scroll|auto)/)) {\n const maxScrollLeft = cursor.scrollWidth - cursor.clientWidth;\n if (maxScrollLeft > 0) {\n if (\n (cursor.scrollLeft > 0 && deltaX < 0) ||\n (cursor.scrollLeft < maxScrollLeft && deltaX > 0)\n ) {\n return true;\n }\n }\n }\n\n cursor = cursor.parentNode;\n }\n\n return false;\n }\n\n function mousewheelHandler(e) {\n const [deltaX, deltaY] = getDeltaFromEvent(e);\n\n if (shouldBeConsumedByChild(e.target, deltaX, deltaY)) {\n return;\n }\n\n let shouldPrevent = false;\n if (!i.settings.useBothWheelAxes) {\n // deltaX will only be used for horizontal scrolling and deltaY will\n // only be used for vertical scrolling - this is the default\n element.scrollTop -= deltaY * i.settings.wheelSpeed;\n element.scrollLeft += deltaX * i.settings.wheelSpeed;\n } else if (i.scrollbarYActive && !i.scrollbarXActive) {\n // only vertical scrollbar is active and useBothWheelAxes option is\n // active, so let's scroll vertical bar using both mouse wheel axes\n if (deltaY) {\n element.scrollTop -= deltaY * i.settings.wheelSpeed;\n } else {\n element.scrollTop += deltaX * i.settings.wheelSpeed;\n }\n shouldPrevent = true;\n } else if (i.scrollbarXActive && !i.scrollbarYActive) {\n // useBothWheelAxes and only horizontal bar is active, so use both\n // wheel axes for horizontal bar\n if (deltaX) {\n element.scrollLeft += deltaX * i.settings.wheelSpeed;\n } else {\n element.scrollLeft -= deltaY * i.settings.wheelSpeed;\n }\n shouldPrevent = true;\n }\n\n updateGeometry(i);\n\n shouldPrevent = shouldPrevent || shouldPreventDefault(deltaX, deltaY);\n if (shouldPrevent && !e.ctrlKey) {\n e.stopPropagation();\n e.preventDefault();\n }\n }\n\n if (typeof window.onwheel !== 'undefined') {\n i.event.bind(element, 'wheel', mousewheelHandler);\n } else if (typeof window.onmousewheel !== 'undefined') {\n i.event.bind(element, 'mousewheel', mousewheelHandler);\n }\n}\n","import updateGeometry from '../update-geometry';\nimport cls from '../lib/class-names';\nimport * as CSS from '../lib/css';\nimport { env } from '../lib/util';\n\nexport default function(i) {\n if (!env.supportsTouch && !env.supportsIePointer) {\n return;\n }\n\n const element = i.element;\n\n function shouldPrevent(deltaX, deltaY) {\n const scrollTop = Math.floor(element.scrollTop);\n const scrollLeft = element.scrollLeft;\n const magnitudeX = Math.abs(deltaX);\n const magnitudeY = Math.abs(deltaY);\n\n if (magnitudeY > magnitudeX) {\n // user is perhaps trying to swipe up/down the page\n\n if (\n (deltaY < 0 && scrollTop === i.contentHeight - i.containerHeight) ||\n (deltaY > 0 && scrollTop === 0)\n ) {\n // set prevent for mobile Chrome refresh\n return window.scrollY === 0 && deltaY > 0 && env.isChrome;\n }\n } else if (magnitudeX > magnitudeY) {\n // user is perhaps trying to swipe left/right across the page\n\n if (\n (deltaX < 0 && scrollLeft === i.contentWidth - i.containerWidth) ||\n (deltaX > 0 && scrollLeft === 0)\n ) {\n return true;\n }\n }\n\n return true;\n }\n\n function applyTouchMove(differenceX, differenceY) {\n element.scrollTop -= differenceY;\n element.scrollLeft -= differenceX;\n\n updateGeometry(i);\n }\n\n let startOffset = {};\n let startTime = 0;\n let speed = {};\n let easingLoop = null;\n\n function getTouch(e) {\n if (e.targetTouches) {\n return e.targetTouches[0];\n } else {\n // Maybe IE pointer\n return e;\n }\n }\n\n function shouldHandle(e) {\n if (e.pointerType && e.pointerType === 'pen' && e.buttons === 0) {\n return false;\n }\n if (e.targetTouches && e.targetTouches.length === 1) {\n return true;\n }\n if (\n e.pointerType &&\n e.pointerType !== 'mouse' &&\n e.pointerType !== e.MSPOINTER_TYPE_MOUSE\n ) {\n return true;\n }\n return false;\n }\n\n function touchStart(e) {\n if (!shouldHandle(e)) {\n return;\n }\n\n const touch = getTouch(e);\n\n startOffset.pageX = touch.pageX;\n startOffset.pageY = touch.pageY;\n\n startTime = new Date().getTime();\n\n if (easingLoop !== null) {\n clearInterval(easingLoop);\n }\n }\n\n function shouldBeConsumedByChild(target, deltaX, deltaY) {\n if (!element.contains(target)) {\n return false;\n }\n\n let cursor = target;\n\n while (cursor && cursor !== element) {\n if (cursor.classList.contains(cls.element.consuming)) {\n return true;\n }\n\n const style = CSS.get(cursor);\n\n // if deltaY && vertical scrollable\n if (deltaY && style.overflowY.match(/(scroll|auto)/)) {\n const maxScrollTop = cursor.scrollHeight - cursor.clientHeight;\n if (maxScrollTop > 0) {\n if (\n (cursor.scrollTop > 0 && deltaY < 0) ||\n (cursor.scrollTop < maxScrollTop && deltaY > 0)\n ) {\n return true;\n }\n }\n }\n // if deltaX && horizontal scrollable\n if (deltaX && style.overflowX.match(/(scroll|auto)/)) {\n const maxScrollLeft = cursor.scrollWidth - cursor.clientWidth;\n if (maxScrollLeft > 0) {\n if (\n (cursor.scrollLeft > 0 && deltaX < 0) ||\n (cursor.scrollLeft < maxScrollLeft && deltaX > 0)\n ) {\n return true;\n }\n }\n }\n\n cursor = cursor.parentNode;\n }\n\n return false;\n }\n\n function touchMove(e) {\n if (shouldHandle(e)) {\n const touch = getTouch(e);\n\n const currentOffset = { pageX: touch.pageX, pageY: touch.pageY };\n\n const differenceX = currentOffset.pageX - startOffset.pageX;\n const differenceY = currentOffset.pageY - startOffset.pageY;\n\n if (shouldBeConsumedByChild(e.target, differenceX, differenceY)) {\n return;\n }\n\n applyTouchMove(differenceX, differenceY);\n startOffset = currentOffset;\n\n const currentTime = new Date().getTime();\n\n const timeGap = currentTime - startTime;\n if (timeGap > 0) {\n speed.x = differenceX / timeGap;\n speed.y = differenceY / timeGap;\n startTime = currentTime;\n }\n\n if (shouldPrevent(differenceX, differenceY)) {\n e.preventDefault();\n }\n }\n }\n function touchEnd() {\n if (i.settings.swipeEasing) {\n clearInterval(easingLoop);\n easingLoop = setInterval(function() {\n if (i.isInitialized) {\n clearInterval(easingLoop);\n return;\n }\n\n if (!speed.x && !speed.y) {\n clearInterval(easingLoop);\n return;\n }\n\n if (Math.abs(speed.x) < 0.01 && Math.abs(speed.y) < 0.01) {\n clearInterval(easingLoop);\n return;\n }\n\n if (!i.element) {\n clearInterval(easingLoop);\n return;\n }\n\n applyTouchMove(speed.x * 30, speed.y * 30);\n\n speed.x *= 0.8;\n speed.y *= 0.8;\n }, 10);\n }\n }\n\n if (env.supportsTouch) {\n i.event.bind(element, 'touchstart', touchStart);\n i.event.bind(element, 'touchmove', touchMove);\n i.event.bind(element, 'touchend', touchEnd);\n } else if (env.supportsIePointer) {\n if (window.PointerEvent) {\n i.event.bind(element, 'pointerdown', touchStart);\n i.event.bind(element, 'pointermove', touchMove);\n i.event.bind(element, 'pointerup', touchEnd);\n } else if (window.MSPointerEvent) {\n i.event.bind(element, 'MSPointerDown', touchStart);\n i.event.bind(element, 'MSPointerMove', touchMove);\n i.event.bind(element, 'MSPointerUp', touchEnd);\n }\n }\n}\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.bind();\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 return _construct.apply(null, arguments);\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 try {\n Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\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 _wrapNativeSuper = function _wrapNativeSuper(Class) {\n if (Class === null || !isNativeFunction(Class)) return Class;\n if (typeof Class !== \"function\") {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n if (typeof _cache !== \"undefined\") {\n if (_cache.has(Class)) return _cache.get(Class);\n _cache.set(Class, Wrapper);\n }\n function Wrapper() {\n return construct(Class, arguments, getPrototypeOf(this).constructor);\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 return _wrapNativeSuper(Class);\n}","export default function _isNativeFunction(fn) {\n try {\n return Function.toString.call(fn).indexOf(\"[native code]\") !== -1;\n } catch (e) {\n return typeof fn === \"function\";\n }\n}","import _extends from '@babel/runtime/helpers/esm/extends';\nimport _assertThisInitialized from '@babel/runtime/helpers/esm/assertThisInitialized';\nimport _inheritsLoose from '@babel/runtime/helpers/esm/inheritsLoose';\nimport _wrapNativeSuper from '@babel/runtime/helpers/esm/wrapNativeSuper';\nimport _taggedTemplateLiteralLoose from '@babel/runtime/helpers/esm/taggedTemplateLiteralLoose';\n\nfunction last() {\n var _ref;\n\n return _ref = arguments.length - 1, _ref < 0 || arguments.length <= _ref ? undefined : arguments[_ref];\n}\n\nfunction negation(a) {\n return -a;\n}\n\nfunction addition(a, b) {\n return a + b;\n}\n\nfunction subtraction(a, b) {\n return a - b;\n}\n\nfunction multiplication(a, b) {\n return a * b;\n}\n\nfunction division(a, b) {\n return a / b;\n}\n\nfunction max() {\n return Math.max.apply(Math, arguments);\n}\n\nfunction min() {\n return Math.min.apply(Math, arguments);\n}\n\nfunction comma() {\n return Array.of.apply(Array, arguments);\n}\n\nvar defaultSymbols = {\n symbols: {\n '*': {\n infix: {\n symbol: '*',\n f: multiplication,\n notation: 'infix',\n precedence: 4,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: '*',\n regSymbol: '\\\\*'\n },\n '/': {\n infix: {\n symbol: '/',\n f: division,\n notation: 'infix',\n precedence: 4,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: '/',\n regSymbol: '/'\n },\n '+': {\n infix: {\n symbol: '+',\n f: addition,\n notation: 'infix',\n precedence: 2,\n rightToLeft: 0,\n argCount: 2\n },\n prefix: {\n symbol: '+',\n f: last,\n notation: 'prefix',\n precedence: 3,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '+',\n regSymbol: '\\\\+'\n },\n '-': {\n infix: {\n symbol: '-',\n f: subtraction,\n notation: 'infix',\n precedence: 2,\n rightToLeft: 0,\n argCount: 2\n },\n prefix: {\n symbol: '-',\n f: negation,\n notation: 'prefix',\n precedence: 3,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '-',\n regSymbol: '-'\n },\n ',': {\n infix: {\n symbol: ',',\n f: comma,\n notation: 'infix',\n precedence: 1,\n rightToLeft: 0,\n argCount: 2\n },\n symbol: ',',\n regSymbol: ','\n },\n '(': {\n prefix: {\n symbol: '(',\n f: last,\n notation: 'prefix',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: '(',\n regSymbol: '\\\\('\n },\n ')': {\n postfix: {\n symbol: ')',\n f: undefined,\n notation: 'postfix',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: ')',\n regSymbol: '\\\\)'\n },\n min: {\n func: {\n symbol: 'min',\n f: min,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'min',\n regSymbol: 'min\\\\b'\n },\n max: {\n func: {\n symbol: 'max',\n f: max,\n notation: 'func',\n precedence: 0,\n rightToLeft: 0,\n argCount: 1\n },\n symbol: 'max',\n regSymbol: 'max\\\\b'\n }\n }\n};\nvar defaultSymbolMap = defaultSymbols;\n\n// based on https://github.com/styled-components/styled-components/blob/fcf6f3804c57a14dd7984dfab7bc06ee2edca044/src/utils/error.js\n\n/**\n * Parse errors.md and turn it into a simple hash of code: message\n * @private\n */\nvar ERRORS = {\n \"1\": \"Passed invalid arguments to hsl, please pass multiple numbers e.g. hsl(360, 0.75, 0.4) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75 }).\\n\\n\",\n \"2\": \"Passed invalid arguments to hsla, please pass multiple numbers e.g. hsla(360, 0.75, 0.4, 0.7) or an object e.g. rgb({ hue: 255, saturation: 0.4, lightness: 0.75, alpha: 0.7 }).\\n\\n\",\n \"3\": \"Passed an incorrect argument to a color function, please pass a string representation of a color.\\n\\n\",\n \"4\": \"Couldn't generate valid rgb string from %s, it returned %s.\\n\\n\",\n \"5\": \"Couldn't parse the color string. Please provide the color as a string in hex, rgb, rgba, hsl or hsla notation.\\n\\n\",\n \"6\": \"Passed invalid arguments to rgb, please pass multiple numbers e.g. rgb(255, 205, 100) or an object e.g. rgb({ red: 255, green: 205, blue: 100 }).\\n\\n\",\n \"7\": \"Passed invalid arguments to rgba, please pass multiple numbers e.g. rgb(255, 205, 100, 0.75) or an object e.g. rgb({ red: 255, green: 205, blue: 100, alpha: 0.75 }).\\n\\n\",\n \"8\": \"Passed invalid argument to toColorString, please pass a RgbColor, RgbaColor, HslColor or HslaColor object.\\n\\n\",\n \"9\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"10\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"11\": \"Invalid value passed as base to modularScale, expected number or em string but got \\\"%s\\\"\\n\\n\",\n \"12\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"13\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got \\\"%s\\\" instead.\\n\\n\",\n \"14\": \"Passed invalid pixel value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"15\": \"Passed invalid base value (\\\"%s\\\") to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"16\": \"You must provide a template to this method.\\n\\n\",\n \"17\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"18\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"19\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"20\": \"expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"21\": \"expects the objects in the first argument array to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"22\": \"expects the first argument object to have the properties `prop`, `fromSize`, and `toSize`.\\n\\n\",\n \"23\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"24\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"25\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"26\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"27\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"28\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"29\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"30\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"31\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"32\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s')\\n\\n\",\n \"33\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation\\n\\n\",\n \"34\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"35\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"36\": \"Property must be a string value.\\n\\n\",\n \"37\": \"Syntax Error at %s.\\n\\n\",\n \"38\": \"Formula contains a function that needs parentheses at %s.\\n\\n\",\n \"39\": \"Formula is missing closing parenthesis at %s.\\n\\n\",\n \"40\": \"Formula has too many closing parentheses at %s.\\n\\n\",\n \"41\": \"All values in a formula must have the same unit or be unitless.\\n\\n\",\n \"42\": \"Please provide a number of steps to the modularScale helper.\\n\\n\",\n \"43\": \"Please pass a number or one of the predefined scales to the modularScale helper as the ratio.\\n\\n\",\n \"44\": \"Invalid value passed as base to modularScale, expected number or em/rem string but got %s.\\n\\n\",\n \"45\": \"Passed invalid argument to hslToColorString, please pass a HslColor or HslaColor object.\\n\\n\",\n \"46\": \"Passed invalid argument to rgbToColorString, please pass a RgbColor or RgbaColor object.\\n\\n\",\n \"47\": \"minScreen and maxScreen must be provided as stringified numbers with the same units.\\n\\n\",\n \"48\": \"fromSize and toSize must be provided as stringified numbers with the same units.\\n\\n\",\n \"49\": \"Expects either an array of objects or a single object with the properties prop, fromSize, and toSize.\\n\\n\",\n \"50\": \"Expects the objects in the first argument array to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"51\": \"Expects the first argument object to have the properties prop, fromSize, and toSize.\\n\\n\",\n \"52\": \"fontFace expects either the path to the font file(s) or a name of a local copy.\\n\\n\",\n \"53\": \"fontFace expects localFonts to be an array.\\n\\n\",\n \"54\": \"fontFace expects fileFormats to be an array.\\n\\n\",\n \"55\": \"fontFace expects a name of a font-family.\\n\\n\",\n \"56\": \"linearGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"57\": \"radialGradient requries at least 2 color-stops to properly render.\\n\\n\",\n \"58\": \"Please supply a filename to retinaImage() as the first argument.\\n\\n\",\n \"59\": \"Passed invalid argument to triangle, please pass correct pointingDirection e.g. 'right'.\\n\\n\",\n \"60\": \"Passed an invalid value to `height` or `width`. Please provide a pixel based unit.\\n\\n\",\n \"61\": \"Property must be a string value.\\n\\n\",\n \"62\": \"borderRadius expects a radius value as a string or number as the second argument.\\n\\n\",\n \"63\": \"borderRadius expects one of \\\"top\\\", \\\"bottom\\\", \\\"left\\\" or \\\"right\\\" as the first argument.\\n\\n\",\n \"64\": \"The animation shorthand only takes 8 arguments. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"65\": \"To pass multiple animations please supply them in arrays, e.g. animation(['rotate', '2s'], ['move', '1s'])\\\\nTo pass a single animation please supply them in simple values, e.g. animation('rotate', '2s').\\n\\n\",\n \"66\": \"The animation shorthand arrays can only have 8 elements. See the specification for more information: http://mdn.io/animation.\\n\\n\",\n \"67\": \"You must provide a template to this method.\\n\\n\",\n \"68\": \"You passed an unsupported selector state to this method.\\n\\n\",\n \"69\": \"Expected a string ending in \\\"px\\\" or a number passed as the first argument to %s(), got %s instead.\\n\\n\",\n \"70\": \"Expected a string ending in \\\"px\\\" or a number passed as the second argument to %s(), got %s instead.\\n\\n\",\n \"71\": \"Passed invalid pixel value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"72\": \"Passed invalid base value %s to %s(), please pass a value like \\\"12px\\\" or 12.\\n\\n\",\n \"73\": \"Please provide a valid CSS variable.\\n\\n\",\n \"74\": \"CSS variable not found and no default was provided.\\n\\n\",\n \"75\": \"important requires a valid style object, got a %s instead.\\n\\n\",\n \"76\": \"fromSize and toSize must be provided as stringified numbers with the same units as minScreen and maxScreen.\\n\\n\",\n \"77\": \"remToPx expects a value in \\\"rem\\\" but you provided it in \\\"%s\\\".\\n\\n\",\n \"78\": \"base must be set in \\\"px\\\" or \\\"%\\\" but you set it in \\\"%s\\\".\\n\"\n};\n/**\n * super basic version of sprintf\n * @private\n */\n\nfunction format() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n var a = args[0];\n var b = [];\n var c;\n\n for (c = 1; c < args.length; c += 1) {\n b.push(args[c]);\n }\n\n b.forEach(function (d) {\n a = a.replace(/%[a-z]/, d);\n });\n return a;\n}\n/**\n * Create an error file out of errors.md for development and a simple web link to the full errors\n * in production mode.\n * @private\n */\n\n\nvar PolishedError = /*#__PURE__*/function (_Error) {\n _inheritsLoose(PolishedError, _Error);\n\n function PolishedError(code) {\n var _this;\n\n if (process.env.NODE_ENV === 'production') {\n _this = _Error.call(this, \"An error occurred. See https://github.com/styled-components/polished/blob/main/src/internalHelpers/errors.md#\" + code + \" for more information.\") || this;\n } else {\n for (var _len2 = arguments.length, args = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n args[_key2 - 1] = arguments[_key2];\n }\n\n _this = _Error.call(this, format.apply(void 0, [ERRORS[code]].concat(args))) || this;\n }\n\n return _assertThisInitialized(_this);\n }\n\n return PolishedError;\n}( /*#__PURE__*/_wrapNativeSuper(Error));\n\nvar unitRegExp = /((?!\\w)a|na|hc|mc|dg|me[r]?|xe|ni(?![a-zA-Z])|mm|cp|tp|xp|q(?!s)|hv|xamv|nimv|wv|sm|s(?!\\D|$)|ged|darg?|nrut)/g; // Merges additional math functionality into the defaults.\n\nfunction mergeSymbolMaps(additionalSymbols) {\n var symbolMap = {};\n symbolMap.symbols = additionalSymbols ? _extends({}, defaultSymbolMap.symbols, additionalSymbols.symbols) : _extends({}, defaultSymbolMap.symbols);\n return symbolMap;\n}\n\nfunction exec(operators, values) {\n var _ref;\n\n var op = operators.pop();\n values.push(op.f.apply(op, (_ref = []).concat.apply(_ref, values.splice(-op.argCount))));\n return op.precedence;\n}\n\nfunction calculate(expression, additionalSymbols) {\n var symbolMap = mergeSymbolMaps(additionalSymbols);\n var match;\n var operators = [symbolMap.symbols['('].prefix];\n var values = [];\n var pattern = new RegExp( // Pattern for numbers\n \"\\\\d+(?:\\\\.\\\\d+)?|\" + // ...and patterns for individual operators/function names\n Object.keys(symbolMap.symbols).map(function (key) {\n return symbolMap.symbols[key];\n }) // longer symbols should be listed first\n // $FlowFixMe\n .sort(function (a, b) {\n return b.symbol.length - a.symbol.length;\n }) // $FlowFixMe\n .map(function (val) {\n return val.regSymbol;\n }).join('|') + \"|(\\\\S)\", 'g');\n pattern.lastIndex = 0; // Reset regular expression object\n\n var afterValue = false;\n\n do {\n match = pattern.exec(expression);\n\n var _ref2 = match || [')', undefined],\n token = _ref2[0],\n bad = _ref2[1];\n\n var notNumber = symbolMap.symbols[token];\n var notNewValue = notNumber && !notNumber.prefix && !notNumber.func;\n var notAfterValue = !notNumber || !notNumber.postfix && !notNumber.infix; // Check for syntax errors:\n\n if (bad || (afterValue ? notAfterValue : notNewValue)) {\n throw new PolishedError(37, match ? match.index : expression.length, expression);\n }\n\n if (afterValue) {\n // We either have an infix or postfix operator (they should be mutually exclusive)\n var curr = notNumber.postfix || notNumber.infix;\n\n do {\n var prev = operators[operators.length - 1];\n if ((curr.precedence - prev.precedence || prev.rightToLeft) > 0) break; // Apply previous operator, since it has precedence over current one\n } while (exec(operators, values)); // Exit loop after executing an opening parenthesis or function\n\n\n afterValue = curr.notation === 'postfix';\n\n if (curr.symbol !== ')') {\n operators.push(curr); // Postfix always has precedence over any operator that follows after it\n\n if (afterValue) exec(operators, values);\n }\n } else if (notNumber) {\n // prefix operator or function\n operators.push(notNumber.prefix || notNumber.func);\n\n if (notNumber.func) {\n // Require an opening parenthesis\n match = pattern.exec(expression);\n\n if (!match || match[0] !== '(') {\n throw new PolishedError(38, match ? match.index : expression.length, expression);\n }\n }\n } else {\n // number\n values.push(+token);\n afterValue = true;\n }\n } while (match && operators.length);\n\n if (operators.length) {\n throw new PolishedError(39, match ? match.index : expression.length, expression);\n } else if (match) {\n throw new PolishedError(40, match ? match.index : expression.length, expression);\n } else {\n return values.pop();\n }\n}\n\nfunction reverseString(str) {\n return str.split('').reverse().join('');\n}\n/**\n * Helper for doing math with CSS Units. Accepts a formula as a string. All values in the formula must have the same unit (or be unitless). Supports complex formulas utliziing addition, subtraction, multiplication, division, square root, powers, factorial, min, max, as well as parentheses for order of operation.\n *\n *In cases where you need to do calculations with mixed units where one unit is a [relative length unit](https://developer.mozilla.org/en-US/docs/Web/CSS/length#Relative_length_units), you will want to use [CSS Calc](https://developer.mozilla.org/en-US/docs/Web/CSS/calc).\n *\n * *warning* While we've done everything possible to ensure math safely evalutes formulas expressed as strings, you should always use extreme caution when passing `math` user provided values.\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: math('12rem + 8rem'),\n * fontSize: math('(12px + 2px) * 3'),\n * fontSize: math('3px^2 + sqrt(4)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${math('12rem + 8rem')};\n * fontSize: ${math('(12px + 2px) * 3')};\n * fontSize: ${math('3px^2 + sqrt(4)')};\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * fontSize: '20rem',\n * fontSize: '42px',\n * fontSize: '11px',\n * }\n */\n\n\nfunction math(formula, additionalSymbols) {\n var reversedFormula = reverseString(formula);\n var formulaMatch = reversedFormula.match(unitRegExp); // Check that all units are the same\n\n if (formulaMatch && !formulaMatch.every(function (unit) {\n return unit === formulaMatch[0];\n })) {\n throw new PolishedError(41);\n }\n\n var cleanFormula = reverseString(reversedFormula.replace(unitRegExp, ''));\n return \"\" + calculate(cleanFormula, additionalSymbols) + (formulaMatch ? reverseString(formulaMatch[0]) : '');\n}\n\nvar cssVariableRegex = /--[\\S]*/g;\n/**\n * Fetches the value of a passed CSS Variable in the :root scope, or otherwise returns a defaultValue if provided.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'background': cssVar('--background-color'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${cssVar('--background-color')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'background': 'red'\n * }\n */\n\nfunction cssVar(cssVariable, defaultValue) {\n if (!cssVariable || !cssVariable.match(cssVariableRegex)) {\n throw new PolishedError(73);\n }\n\n var variableValue;\n /* eslint-disable */\n\n /* istanbul ignore next */\n\n if (typeof document !== 'undefined' && document.documentElement !== null) {\n variableValue = getComputedStyle(document.documentElement).getPropertyValue(cssVariable);\n }\n /* eslint-enable */\n\n\n if (variableValue) {\n return variableValue.trim();\n } else if (defaultValue) {\n return defaultValue;\n }\n\n throw new PolishedError(74);\n}\n\n// @private\nfunction capitalizeString(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nvar positionMap$1 = ['Top', 'Right', 'Bottom', 'Left'];\n\nfunction generateProperty(property, position) {\n if (!property) return position.toLowerCase();\n var splitProperty = property.split('-');\n\n if (splitProperty.length > 1) {\n splitProperty.splice(1, 0, position);\n return splitProperty.reduce(function (acc, val) {\n return \"\" + acc + capitalizeString(val);\n });\n }\n\n var joinedProperty = property.replace(/([a-z])([A-Z])/g, \"$1\" + position + \"$2\");\n return property === joinedProperty ? \"\" + property + position : joinedProperty;\n}\n\nfunction generateStyles(property, valuesWithDefaults) {\n var styles = {};\n\n for (var i = 0; i < valuesWithDefaults.length; i += 1) {\n if (valuesWithDefaults[i] || valuesWithDefaults[i] === 0) {\n styles[generateProperty(property, positionMap$1[i])] = valuesWithDefaults[i];\n }\n }\n\n return styles;\n}\n/**\n * Enables shorthand for direction-based properties. It accepts a property (hyphenated or camelCased) and up to four values that map to top, right, bottom, and left, respectively. You can optionally pass an empty string to get only the directional values as properties. You can also optionally pass a null argument for a directional value to ignore it.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...directionalProperty('padding', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${directionalProperty('padding', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'paddingTop': '12px',\n * 'paddingRight': '24px',\n * 'paddingBottom': '36px',\n * 'paddingLeft': '48px'\n * }\n */\n\n\nfunction directionalProperty(property) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n // prettier-ignore\n var firstValue = values[0],\n _values$ = values[1],\n secondValue = _values$ === void 0 ? firstValue : _values$,\n _values$2 = values[2],\n thirdValue = _values$2 === void 0 ? firstValue : _values$2,\n _values$3 = values[3],\n fourthValue = _values$3 === void 0 ? secondValue : _values$3;\n var valuesWithDefaults = [firstValue, secondValue, thirdValue, fourthValue];\n return generateStyles(property, valuesWithDefaults);\n}\n\n/**\n * Check if a string ends with something\n * @private\n */\nfunction endsWith(string, suffix) {\n return string.substr(-suffix.length) === suffix;\n}\n\nvar cssRegex$1 = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n/**\n * Returns a given CSS value minus its unit of measure.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': stripUnit('100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${stripUnit('100px')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100\n * }\n */\n\nfunction stripUnit(value) {\n if (typeof value !== 'string') return value;\n var matchedValue = value.match(cssRegex$1);\n return matchedValue ? parseFloat(value) : value;\n}\n\n/**\n * Factory function that creates pixel-to-x converters\n * @private\n */\n\nvar pxtoFactory = function pxtoFactory(to) {\n return function (pxval, base) {\n if (base === void 0) {\n base = '16px';\n }\n\n var newPxval = pxval;\n var newBase = base;\n\n if (typeof pxval === 'string') {\n if (!endsWith(pxval, 'px')) {\n throw new PolishedError(69, to, pxval);\n }\n\n newPxval = stripUnit(pxval);\n }\n\n if (typeof base === 'string') {\n if (!endsWith(base, 'px')) {\n throw new PolishedError(70, to, base);\n }\n\n newBase = stripUnit(base);\n }\n\n if (typeof newPxval === 'string') {\n throw new PolishedError(71, pxval, to);\n }\n\n if (typeof newBase === 'string') {\n throw new PolishedError(72, base, to);\n }\n\n return \"\" + newPxval / newBase + to;\n };\n};\n\nvar pixelsto = pxtoFactory;\n\n/**\n * Convert pixel value to ems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': em('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${em('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1em'\n * }\n */\n\nvar em = /*#__PURE__*/pixelsto('em');\nvar em$1 = em;\n\nvar cssRegex = /^([+-]?(?:\\d+|\\d*\\.\\d+))([a-z]*|%)$/;\n/**\n * Returns a given CSS value and its unit as elements of an array.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * '--dimension': getValueAndUnit('100px')[0],\n * '--unit': getValueAndUnit('100px')[1],\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * --dimension: ${getValueAndUnit('100px')[0]};\n * --unit: ${getValueAndUnit('100px')[1]};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * '--dimension': 100,\n * '--unit': 'px',\n * }\n */\n\nfunction getValueAndUnit(value) {\n if (typeof value !== 'string') return [value, ''];\n var matchedValue = value.match(cssRegex);\n if (matchedValue) return [parseFloat(value), matchedValue[2]];\n return [value, undefined];\n}\n\n/**\n * Helper for targeting rules in a style block generated by polished modules that need !important-level specificity. Can optionally specify a rule (or rules) to target specific rules.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...important(cover())\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${important(cover())}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'position': 'absolute !important',\n * 'top': '0 !important',\n * 'right: '0 !important',\n * 'bottom': '0 !important',\n * 'left: '0 !important'\n * }\n */\n\nfunction important(styleBlock, rules) {\n if (typeof styleBlock !== 'object' || styleBlock === null) {\n throw new PolishedError(75, typeof styleBlock);\n }\n\n var newStyleBlock = {};\n Object.keys(styleBlock).forEach(function (key) {\n if (typeof styleBlock[key] === 'object' && styleBlock[key] !== null) {\n newStyleBlock[key] = important(styleBlock[key], rules);\n } else if (!rules || rules && (rules === key || rules.indexOf(key) >= 0)) {\n newStyleBlock[key] = styleBlock[key] + \" !important\";\n } else {\n newStyleBlock[key] = styleBlock[key];\n }\n });\n return newStyleBlock;\n}\n\nvar ratioNames = {\n minorSecond: 1.067,\n majorSecond: 1.125,\n minorThird: 1.2,\n majorThird: 1.25,\n perfectFourth: 1.333,\n augFourth: 1.414,\n perfectFifth: 1.5,\n minorSixth: 1.6,\n goldenSection: 1.618,\n majorSixth: 1.667,\n minorSeventh: 1.778,\n majorSeventh: 1.875,\n octave: 2,\n majorTenth: 2.5,\n majorEleventh: 2.667,\n majorTwelfth: 3,\n doubleOctave: 4\n};\n\nfunction getRatio(ratioName) {\n return ratioNames[ratioName];\n}\n/**\n * Establish consistent measurements and spacial relationships throughout your projects by incrementing an em or rem value up or down a defined scale. We provide a list of commonly used scales as pre-defined variables.\n * @example\n * // Styles as object usage\n * const styles = {\n * // Increment two steps up the default scale\n * 'fontSize': modularScale(2)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * // Increment two steps up the default scale\n * fontSize: ${modularScale(2)}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'fontSize': '1.77689em'\n * }\n */\n\n\nfunction modularScale(steps, base, ratio) {\n if (base === void 0) {\n base = '1em';\n }\n\n if (ratio === void 0) {\n ratio = 1.333;\n }\n\n if (typeof steps !== 'number') {\n throw new PolishedError(42);\n }\n\n if (typeof ratio === 'string' && !ratioNames[ratio]) {\n throw new PolishedError(43);\n }\n\n var _ref = typeof base === 'string' ? getValueAndUnit(base) : [base, ''],\n realBase = _ref[0],\n unit = _ref[1];\n\n var realRatio = typeof ratio === 'string' ? getRatio(ratio) : ratio;\n\n if (typeof realBase === 'string') {\n throw new PolishedError(44, base);\n }\n\n return \"\" + realBase * Math.pow(realRatio, steps) + (unit || '');\n}\n\n/**\n * Convert pixel value to rems. The default base value is 16px, but can be changed by passing a\n * second argument to the function.\n * @function\n * @param {string|number} pxval\n * @param {string|number} [base='16px']\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': rem('16px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${rem('16px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '1rem'\n * }\n */\n\nvar rem = /*#__PURE__*/pixelsto('rem');\nvar rem$1 = rem;\n\nvar defaultFontSize = 16;\n\nfunction convertBase(base) {\n var deconstructedValue = getValueAndUnit(base);\n\n if (deconstructedValue[1] === 'px') {\n return parseFloat(base);\n }\n\n if (deconstructedValue[1] === '%') {\n return parseFloat(base) / 100 * defaultFontSize;\n }\n\n throw new PolishedError(78, deconstructedValue[1]);\n}\n\nfunction getBaseFromDoc() {\n /* eslint-disable */\n\n /* istanbul ignore next */\n if (typeof document !== 'undefined' && document.documentElement !== null) {\n var rootFontSize = getComputedStyle(document.documentElement).fontSize;\n return rootFontSize ? convertBase(rootFontSize) : defaultFontSize;\n }\n /* eslint-enable */\n\n /* istanbul ignore next */\n\n\n return defaultFontSize;\n}\n/**\n * Convert rem values to px. By default, the base value is pulled from the font-size property on the root element (if it is set in % or px). It defaults to 16px if not found on the root. You can also override the base value by providing your own base in % or px.\n * @example\n * // Styles as object usage\n * const styles = {\n * 'height': remToPx('1.6rem')\n * 'height': remToPx('1.6rem', '10px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * height: ${remToPx('1.6rem')}\n * height: ${remToPx('1.6rem', '10px')}\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * 'height': '25.6px',\n * 'height': '16px',\n * }\n */\n\n\nfunction remToPx(value, base) {\n var deconstructedValue = getValueAndUnit(value);\n\n if (deconstructedValue[1] !== 'rem' && deconstructedValue[1] !== '') {\n throw new PolishedError(77, deconstructedValue[1]);\n }\n\n var newBase = base ? convertBase(base) : getBaseFromDoc();\n return deconstructedValue[0] * newBase + \"px\";\n}\n\nvar functionsMap$3 = {\n back: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n circ: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)',\n cubic: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)',\n expo: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)',\n quad: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n quart: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)',\n quint: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)',\n sine: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeIn('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeIn('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n * }\n */\n\nfunction easeIn(functionName) {\n return functionsMap$3[functionName.toLowerCase().trim()];\n}\n\nvar functionsMap$2 = {\n back: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n circ: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)',\n cubic: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)',\n expo: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)',\n quad: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n quart: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)',\n quint: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)',\n sine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeInOut('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeInOut('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n * }\n */\n\nfunction easeInOut(functionName) {\n return functionsMap$2[functionName.toLowerCase().trim()];\n}\n\nvar functionsMap$1 = {\n back: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)',\n cubic: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)',\n circ: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n expo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)',\n quad: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n quart: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n quint: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)',\n sine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)'\n};\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': easeOut('quad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${easeOut('quad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n * }\n */\n\nfunction easeOut(functionName) {\n return functionsMap$1[functionName.toLowerCase().trim()];\n}\n\n/**\n * Returns a CSS calc formula for linear interpolation of a property between two values. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px').\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * fontSize: between('20px', '100px', '400px', '1000px'),\n * fontSize: between('20px', '100px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * fontSize: ${between('20px', '100px', '400px', '1000px')};\n * fontSize: ${between('20px', '100px')}\n * `\n *\n * // CSS as JS Output\n *\n * h1: {\n * 'fontSize': 'calc(-33.33333333333334px + 13.333333333333334vw)',\n * 'fontSize': 'calc(-9.090909090909093px + 9.090909090909092vw)'\n * }\n */\n\nfunction between(fromSize, toSize, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n\n var _getValueAndUnit = getValueAndUnit(fromSize),\n unitlessFromSize = _getValueAndUnit[0],\n fromSizeUnit = _getValueAndUnit[1];\n\n var _getValueAndUnit2 = getValueAndUnit(toSize),\n unitlessToSize = _getValueAndUnit2[0],\n toSizeUnit = _getValueAndUnit2[1];\n\n var _getValueAndUnit3 = getValueAndUnit(minScreen),\n unitlessMinScreen = _getValueAndUnit3[0],\n minScreenUnit = _getValueAndUnit3[1];\n\n var _getValueAndUnit4 = getValueAndUnit(maxScreen),\n unitlessMaxScreen = _getValueAndUnit4[0],\n maxScreenUnit = _getValueAndUnit4[1];\n\n if (typeof unitlessMinScreen !== 'number' || typeof unitlessMaxScreen !== 'number' || !minScreenUnit || !maxScreenUnit || minScreenUnit !== maxScreenUnit) {\n throw new PolishedError(47);\n }\n\n if (typeof unitlessFromSize !== 'number' || typeof unitlessToSize !== 'number' || fromSizeUnit !== toSizeUnit) {\n throw new PolishedError(48);\n }\n\n if (fromSizeUnit !== minScreenUnit || toSizeUnit !== maxScreenUnit) {\n throw new PolishedError(76);\n }\n\n var slope = (unitlessFromSize - unitlessToSize) / (unitlessMinScreen - unitlessMaxScreen);\n var base = unitlessToSize - slope * unitlessMaxScreen;\n return \"calc(\" + base.toFixed(2) + (fromSizeUnit || '') + \" + \" + (100 * slope).toFixed(2) + \"vw)\";\n}\n\n/**\n * CSS to contain a float (credit to CSSMojo).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...clearFix(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${clearFix()}\n * `\n *\n * // CSS as JS Output\n *\n * '&::after': {\n * 'clear': 'both',\n * 'content': '\"\"',\n * 'display': 'table'\n * }\n */\nfunction clearFix(parent) {\n var _ref;\n\n if (parent === void 0) {\n parent = '&';\n }\n\n var pseudoSelector = parent + \"::after\";\n return _ref = {}, _ref[pseudoSelector] = {\n clear: 'both',\n content: '\"\"',\n display: 'table'\n }, _ref;\n}\n\n/**\n * CSS to fully cover an area. Can optionally be passed an offset to act as a \"padding\".\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...cover()\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${cover()}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'position': 'absolute',\n * 'top': '0',\n * 'right: '0',\n * 'bottom': '0',\n * 'left: '0'\n * }\n */\nfunction cover(offset) {\n if (offset === void 0) {\n offset = 0;\n }\n\n return {\n position: 'absolute',\n top: offset,\n right: offset,\n bottom: offset,\n left: offset\n };\n}\n\n/**\n * CSS to represent truncated text with an ellipsis. You can optionally pass a max-width and number of lines before truncating.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...ellipsis('250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${ellipsis('250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * 'display': 'inline-block',\n * 'maxWidth': '250px',\n * 'overflow': 'hidden',\n * 'textOverflow': 'ellipsis',\n * 'whiteSpace': 'nowrap',\n * 'wordWrap': 'normal'\n * }\n */\nfunction ellipsis(width, lines) {\n if (lines === void 0) {\n lines = 1;\n }\n\n var styles = {\n display: 'inline-block',\n maxWidth: width || '100%',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n wordWrap: 'normal'\n };\n return lines > 1 ? _extends({}, styles, {\n WebkitBoxOrient: 'vertical',\n WebkitLineClamp: lines,\n display: '-webkit-box',\n whiteSpace: 'normal'\n }) : styles;\n}\n\nfunction _createForOfIteratorHelperLoose(o, allowArrayLike) { var it = typeof Symbol !== \"undefined\" && o[Symbol.iterator] || o[\"@@iterator\"]; if (it) return (it = it.call(o)).next.bind(it); if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") { if (it) o = it; var i = 0; return function () { if (i >= o.length) return { done: true }; return { done: false, value: o[i++] }; }; } throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\"); }\n\nfunction _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === \"string\") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === \"Object\" && o.constructor) n = o.constructor.name; if (n === \"Map\" || n === \"Set\") return Array.from(o); if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }\n\nfunction _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }\n\n/**\n * Returns a set of media queries that resizes a property (or set of properties) between a provided fromSize and toSize. Accepts optional minScreen (defaults to '320px') and maxScreen (defaults to '1200px') to constrain the interpolation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...fluidRange(\n * {\n * prop: 'padding',\n * fromSize: '20px',\n * toSize: '100px',\n * },\n * '400px',\n * '1000px',\n * )\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${fluidRange(\n * {\n * prop: 'padding',\n * fromSize: '20px',\n * toSize: '100px',\n * },\n * '400px',\n * '1000px',\n * )}\n * `\n *\n * // CSS as JS Output\n *\n * div: {\n * \"@media (min-width: 1000px)\": Object {\n * \"padding\": \"100px\",\n * },\n * \"@media (min-width: 400px)\": Object {\n * \"padding\": \"calc(-33.33333333333334px + 13.333333333333334vw)\",\n * },\n * \"padding\": \"20px\",\n * }\n */\nfunction fluidRange(cssProp, minScreen, maxScreen) {\n if (minScreen === void 0) {\n minScreen = '320px';\n }\n\n if (maxScreen === void 0) {\n maxScreen = '1200px';\n }\n\n if (!Array.isArray(cssProp) && typeof cssProp !== 'object' || cssProp === null) {\n throw new PolishedError(49);\n }\n\n if (Array.isArray(cssProp)) {\n var mediaQueries = {};\n var fallbacks = {};\n\n for (var _iterator = _createForOfIteratorHelperLoose(cssProp), _step; !(_step = _iterator()).done;) {\n var _extends2, _extends3;\n\n var obj = _step.value;\n\n if (!obj.prop || !obj.fromSize || !obj.toSize) {\n throw new PolishedError(50);\n }\n\n fallbacks[obj.prop] = obj.fromSize;\n mediaQueries[\"@media (min-width: \" + minScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + minScreen + \")\"], (_extends2 = {}, _extends2[obj.prop] = between(obj.fromSize, obj.toSize, minScreen, maxScreen), _extends2));\n mediaQueries[\"@media (min-width: \" + maxScreen + \")\"] = _extends({}, mediaQueries[\"@media (min-width: \" + maxScreen + \")\"], (_extends3 = {}, _extends3[obj.prop] = obj.toSize, _extends3));\n }\n\n return _extends({}, fallbacks, mediaQueries);\n } else {\n var _ref, _ref2, _ref3;\n\n if (!cssProp.prop || !cssProp.fromSize || !cssProp.toSize) {\n throw new PolishedError(51);\n }\n\n return _ref3 = {}, _ref3[cssProp.prop] = cssProp.fromSize, _ref3[\"@media (min-width: \" + minScreen + \")\"] = (_ref = {}, _ref[cssProp.prop] = between(cssProp.fromSize, cssProp.toSize, minScreen, maxScreen), _ref), _ref3[\"@media (min-width: \" + maxScreen + \")\"] = (_ref2 = {}, _ref2[cssProp.prop] = cssProp.toSize, _ref2), _ref3;\n }\n}\n\nvar dataURIRegex = /^\\s*data:([a-z]+\\/[a-z-]+(;[a-z-]+=[a-z-]+)?)?(;charset=[a-z0-9-]+)?(;base64)?,[a-z0-9!$&',()*+,;=\\-._~:@/?%\\s]*\\s*$/i;\nvar formatHintMap = {\n woff: 'woff',\n woff2: 'woff2',\n ttf: 'truetype',\n otf: 'opentype',\n eot: 'embedded-opentype',\n svg: 'svg',\n svgz: 'svg'\n};\n\nfunction generateFormatHint(format, formatHint) {\n if (!formatHint) return '';\n return \" format(\\\"\" + formatHintMap[format] + \"\\\")\";\n}\n\nfunction isDataURI(fontFilePath) {\n return !!fontFilePath.replace(/\\s+/g, ' ').match(dataURIRegex);\n}\n\nfunction generateFileReferences(fontFilePath, fileFormats, formatHint) {\n if (isDataURI(fontFilePath)) {\n return \"url(\\\"\" + fontFilePath + \"\\\")\" + generateFormatHint(fileFormats[0], formatHint);\n }\n\n var fileFontReferences = fileFormats.map(function (format) {\n return \"url(\\\"\" + fontFilePath + \".\" + format + \"\\\")\" + generateFormatHint(format, formatHint);\n });\n return fileFontReferences.join(', ');\n}\n\nfunction generateLocalReferences(localFonts) {\n var localFontReferences = localFonts.map(function (font) {\n return \"local(\\\"\" + font + \"\\\")\";\n });\n return localFontReferences.join(', ');\n}\n\nfunction generateSources(fontFilePath, localFonts, fileFormats, formatHint) {\n var fontReferences = [];\n if (localFonts) fontReferences.push(generateLocalReferences(localFonts));\n\n if (fontFilePath) {\n fontReferences.push(generateFileReferences(fontFilePath, fileFormats, formatHint));\n }\n\n return fontReferences.join(', ');\n}\n/**\n * CSS for a @font-face declaration. Defaults to check for local copies of the font on the user's machine. You can disable this by passing `null` to localFonts.\n *\n * @example\n * // Styles as object basic usage\n * const styles = {\n * ...fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * })\n * }\n *\n * // styled-components basic usage\n * const GlobalStyle = createGlobalStyle`${\n * fontFace({\n * 'fontFamily': 'Sans-Pro',\n * 'fontFilePath': 'path/to/file'\n * }\n * )}`\n *\n * // CSS as JS Output\n *\n * '@font-face': {\n * 'fontFamily': 'Sans-Pro',\n * 'src': 'url(\"path/to/file.eot\"), url(\"path/to/file.woff2\"), url(\"path/to/file.woff\"), url(\"path/to/file.ttf\"), url(\"path/to/file.svg\")',\n * }\n */\n\n\nfunction fontFace(_ref) {\n var fontFamily = _ref.fontFamily,\n fontFilePath = _ref.fontFilePath,\n fontStretch = _ref.fontStretch,\n fontStyle = _ref.fontStyle,\n fontVariant = _ref.fontVariant,\n fontWeight = _ref.fontWeight,\n _ref$fileFormats = _ref.fileFormats,\n fileFormats = _ref$fileFormats === void 0 ? ['eot', 'woff2', 'woff', 'ttf', 'svg'] : _ref$fileFormats,\n _ref$formatHint = _ref.formatHint,\n formatHint = _ref$formatHint === void 0 ? false : _ref$formatHint,\n _ref$localFonts = _ref.localFonts,\n localFonts = _ref$localFonts === void 0 ? [fontFamily] : _ref$localFonts,\n unicodeRange = _ref.unicodeRange,\n fontDisplay = _ref.fontDisplay,\n fontVariationSettings = _ref.fontVariationSettings,\n fontFeatureSettings = _ref.fontFeatureSettings;\n // Error Handling\n if (!fontFamily) throw new PolishedError(55);\n\n if (!fontFilePath && !localFonts) {\n throw new PolishedError(52);\n }\n\n if (localFonts && !Array.isArray(localFonts)) {\n throw new PolishedError(53);\n }\n\n if (!Array.isArray(fileFormats)) {\n throw new PolishedError(54);\n }\n\n var fontFaceDeclaration = {\n '@font-face': {\n fontFamily: fontFamily,\n src: generateSources(fontFilePath, localFonts, fileFormats, formatHint),\n unicodeRange: unicodeRange,\n fontStretch: fontStretch,\n fontStyle: fontStyle,\n fontVariant: fontVariant,\n fontWeight: fontWeight,\n fontDisplay: fontDisplay,\n fontVariationSettings: fontVariationSettings,\n fontFeatureSettings: fontFeatureSettings\n }\n }; // Removes undefined fields for cleaner css object.\n\n return JSON.parse(JSON.stringify(fontFaceDeclaration));\n}\n\n/**\n * CSS to hide text to show a background image in a SEO-friendly way.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'backgroundImage': 'url(logo.png)',\n * ...hideText(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * backgroundImage: url(logo.png);\n * ${hideText()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'backgroundImage': 'url(logo.png)',\n * 'textIndent': '101%',\n * 'overflow': 'hidden',\n * 'whiteSpace': 'nowrap',\n * }\n */\nfunction hideText() {\n return {\n textIndent: '101%',\n overflow: 'hidden',\n whiteSpace: 'nowrap'\n };\n}\n\n/**\n * CSS to hide content visually but remain accessible to screen readers.\n * from [HTML5 Boilerplate](https://github.com/h5bp/html5-boilerplate/blob/9a176f57af1cfe8ec70300da4621fb9b07e5fa31/src/css/main.css#L121)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...hideVisually(),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${hideVisually()};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'border': '0',\n * 'clip': 'rect(0 0 0 0)',\n * 'height': '1px',\n * 'margin': '-1px',\n * 'overflow': 'hidden',\n * 'padding': '0',\n * 'position': 'absolute',\n * 'whiteSpace': 'nowrap',\n * 'width': '1px',\n * }\n */\nfunction hideVisually() {\n return {\n border: '0',\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: '-1px',\n overflow: 'hidden',\n padding: '0',\n position: 'absolute',\n whiteSpace: 'nowrap',\n width: '1px'\n };\n}\n\n/**\n * Generates a media query to target HiDPI devices.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * [hiDPI(1.5)]: {\n * width: 200px;\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${hiDPI(1.5)} {\n * width: 200px;\n * }\n * `\n *\n * // CSS as JS Output\n *\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.5),\n * only screen and (min--moz-device-pixel-ratio: 1.5),\n * only screen and (-o-min-device-pixel-ratio: 1.5/1),\n * only screen and (min-resolution: 144dpi),\n * only screen and (min-resolution: 1.5dppx)': {\n * 'width': '200px',\n * }\n */\nfunction hiDPI(ratio) {\n if (ratio === void 0) {\n ratio = 1.3;\n }\n\n return \"\\n @media only screen and (-webkit-min-device-pixel-ratio: \" + ratio + \"),\\n only screen and (min--moz-device-pixel-ratio: \" + ratio + \"),\\n only screen and (-o-min-device-pixel-ratio: \" + ratio + \"/1),\\n only screen and (min-resolution: \" + Math.round(ratio * 96) + \"dpi),\\n only screen and (min-resolution: \" + ratio + \"dppx)\\n \";\n}\n\nfunction constructGradientValue(literals) {\n var template = '';\n\n for (var _len = arguments.length, substitutions = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n substitutions[_key - 1] = arguments[_key];\n }\n\n for (var i = 0; i < literals.length; i += 1) {\n template += literals[i];\n\n if (i === substitutions.length - 1 && substitutions[i]) {\n var definedValues = substitutions.filter(function (substitute) {\n return !!substitute;\n }); // Adds leading coma if properties preceed color-stops\n\n if (definedValues.length > 1) {\n template = template.slice(0, -1);\n template += \", \" + substitutions[i]; // No trailing space if color-stops is the only param provided\n } else if (definedValues.length === 1) {\n template += \"\" + substitutions[i];\n }\n } else if (substitutions[i]) {\n template += substitutions[i] + \" \";\n }\n }\n\n return template.trim();\n}\n\nvar _templateObject$1;\n\n/**\n * CSS for declaring a linear gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...linearGradient({\n colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n toDirection: 'to top right',\n fallback: '#FFF',\n })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${linearGradient({\n colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n toDirection: 'to top right',\n fallback: '#FFF',\n })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n * 'backgroundColor': '#FFF',\n * 'backgroundImage': 'linear-gradient(to top right, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\nfunction linearGradient(_ref) {\n var colorStops = _ref.colorStops,\n fallback = _ref.fallback,\n _ref$toDirection = _ref.toDirection,\n toDirection = _ref$toDirection === void 0 ? '' : _ref$toDirection;\n\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(56);\n }\n\n return {\n backgroundColor: fallback || colorStops[0].replace(/,\\s+/g, ',').split(' ')[0].replace(/,(?=\\S)/g, ', '),\n backgroundImage: constructGradientValue(_templateObject$1 || (_templateObject$1 = _taggedTemplateLiteralLoose([\"linear-gradient(\", \"\", \")\"])), toDirection, colorStops.join(', ').replace(/,(?=\\S)/g, ', '))\n };\n}\n\n/**\n * CSS to normalize abnormalities across browsers (normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css)\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...normalize(),\n * }\n *\n * // styled-components usage\n * const GlobalStyle = createGlobalStyle`${normalize()}`\n *\n * // CSS as JS Output\n *\n * html {\n * lineHeight: 1.15,\n * textSizeAdjust: 100%,\n * } ...\n */\nfunction normalize() {\n var _ref;\n\n return [(_ref = {\n html: {\n lineHeight: '1.15',\n textSizeAdjust: '100%'\n },\n body: {\n margin: '0'\n },\n main: {\n display: 'block'\n },\n h1: {\n fontSize: '2em',\n margin: '0.67em 0'\n },\n hr: {\n boxSizing: 'content-box',\n height: '0',\n overflow: 'visible'\n },\n pre: {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n },\n a: {\n backgroundColor: 'transparent'\n },\n 'abbr[title]': {\n borderBottom: 'none',\n textDecoration: 'underline'\n }\n }, _ref[\"b,\\n strong\"] = {\n fontWeight: 'bolder'\n }, _ref[\"code,\\n kbd,\\n samp\"] = {\n fontFamily: 'monospace, monospace',\n fontSize: '1em'\n }, _ref.small = {\n fontSize: '80%'\n }, _ref[\"sub,\\n sup\"] = {\n fontSize: '75%',\n lineHeight: '0',\n position: 'relative',\n verticalAlign: 'baseline'\n }, _ref.sub = {\n bottom: '-0.25em'\n }, _ref.sup = {\n top: '-0.5em'\n }, _ref.img = {\n borderStyle: 'none'\n }, _ref[\"button,\\n input,\\n optgroup,\\n select,\\n textarea\"] = {\n fontFamily: 'inherit',\n fontSize: '100%',\n lineHeight: '1.15',\n margin: '0'\n }, _ref[\"button,\\n input\"] = {\n overflow: 'visible'\n }, _ref[\"button,\\n select\"] = {\n textTransform: 'none'\n }, _ref[\"button,\\n html [type=\\\"button\\\"],\\n [type=\\\"reset\\\"],\\n [type=\\\"submit\\\"]\"] = {\n WebkitAppearance: 'button'\n }, _ref[\"button::-moz-focus-inner,\\n [type=\\\"button\\\"]::-moz-focus-inner,\\n [type=\\\"reset\\\"]::-moz-focus-inner,\\n [type=\\\"submit\\\"]::-moz-focus-inner\"] = {\n borderStyle: 'none',\n padding: '0'\n }, _ref[\"button:-moz-focusring,\\n [type=\\\"button\\\"]:-moz-focusring,\\n [type=\\\"reset\\\"]:-moz-focusring,\\n [type=\\\"submit\\\"]:-moz-focusring\"] = {\n outline: '1px dotted ButtonText'\n }, _ref.fieldset = {\n padding: '0.35em 0.625em 0.75em'\n }, _ref.legend = {\n boxSizing: 'border-box',\n color: 'inherit',\n display: 'table',\n maxWidth: '100%',\n padding: '0',\n whiteSpace: 'normal'\n }, _ref.progress = {\n verticalAlign: 'baseline'\n }, _ref.textarea = {\n overflow: 'auto'\n }, _ref[\"[type=\\\"checkbox\\\"],\\n [type=\\\"radio\\\"]\"] = {\n boxSizing: 'border-box',\n padding: '0'\n }, _ref[\"[type=\\\"number\\\"]::-webkit-inner-spin-button,\\n [type=\\\"number\\\"]::-webkit-outer-spin-button\"] = {\n height: 'auto'\n }, _ref['[type=\"search\"]'] = {\n WebkitAppearance: 'textfield',\n outlineOffset: '-2px'\n }, _ref['[type=\"search\"]::-webkit-search-decoration'] = {\n WebkitAppearance: 'none'\n }, _ref['::-webkit-file-upload-button'] = {\n WebkitAppearance: 'button',\n font: 'inherit'\n }, _ref.details = {\n display: 'block'\n }, _ref.summary = {\n display: 'list-item'\n }, _ref.template = {\n display: 'none'\n }, _ref['[hidden]'] = {\n display: 'none'\n }, _ref), {\n 'abbr[title]': {\n textDecoration: 'underline dotted'\n }\n }];\n}\n\nvar _templateObject;\n\n/**\n * CSS for declaring a radial gradient, including a fallback background-color. The fallback is either the first color-stop or an explicitly passed fallback color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...radialGradient({\n * colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n * extent: 'farthest-corner at 45px 45px',\n * position: 'center',\n * shape: 'ellipse',\n * })\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${radialGradient({\n * colorStops: ['#00FFFF 0%', 'rgba(0, 0, 255, 0) 50%', '#0000FF 95%'],\n * extent: 'farthest-corner at 45px 45px',\n * position: 'center',\n * shape: 'ellipse',\n * })}\n *`\n *\n * // CSS as JS Output\n *\n * div: {\n * 'backgroundColor': '#00FFFF',\n * 'backgroundImage': 'radial-gradient(center ellipse farthest-corner at 45px 45px, #00FFFF 0%, rgba(0, 0, 255, 0) 50%, #0000FF 95%)',\n * }\n */\nfunction radialGradient(_ref) {\n var colorStops = _ref.colorStops,\n _ref$extent = _ref.extent,\n extent = _ref$extent === void 0 ? '' : _ref$extent,\n fallback = _ref.fallback,\n _ref$position = _ref.position,\n position = _ref$position === void 0 ? '' : _ref$position,\n _ref$shape = _ref.shape,\n shape = _ref$shape === void 0 ? '' : _ref$shape;\n\n if (!colorStops || colorStops.length < 2) {\n throw new PolishedError(57);\n }\n\n return {\n backgroundColor: fallback || colorStops[0].split(' ')[0],\n backgroundImage: constructGradientValue(_templateObject || (_templateObject = _taggedTemplateLiteralLoose([\"radial-gradient(\", \"\", \"\", \"\", \")\"])), position, shape, extent, colorStops.join(', '))\n };\n}\n\n/**\n * A helper to generate a retina background image and non-retina\n * background image. The retina background image will output to a HiDPI media query. The mixin uses\n * a _2x.png filename suffix by default.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...retinaImage('my-img')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${retinaImage('my-img')}\n * `\n *\n * // CSS as JS Output\n * div {\n * backgroundImage: 'url(my-img.png)',\n * '@media only screen and (-webkit-min-device-pixel-ratio: 1.3),\n * only screen and (min--moz-device-pixel-ratio: 1.3),\n * only screen and (-o-min-device-pixel-ratio: 1.3/1),\n * only screen and (min-resolution: 144dpi),\n * only screen and (min-resolution: 1.5dppx)': {\n * backgroundImage: 'url(my-img_2x.png)',\n * }\n * }\n */\nfunction retinaImage(filename, backgroundSize, extension, retinaFilename, retinaSuffix) {\n var _ref;\n\n if (extension === void 0) {\n extension = 'png';\n }\n\n if (retinaSuffix === void 0) {\n retinaSuffix = '_2x';\n }\n\n if (!filename) {\n throw new PolishedError(58);\n } // Replace the dot at the beginning of the passed extension if one exists\n\n\n var ext = extension.replace(/^\\./, '');\n var rFilename = retinaFilename ? retinaFilename + \".\" + ext : \"\" + filename + retinaSuffix + \".\" + ext;\n return _ref = {\n backgroundImage: \"url(\" + filename + \".\" + ext + \")\"\n }, _ref[hiDPI()] = _extends({\n backgroundImage: \"url(\" + rFilename + \")\"\n }, backgroundSize ? {\n backgroundSize: backgroundSize\n } : {}), _ref;\n}\n\n/* eslint-disable key-spacing */\nvar functionsMap = {\n easeInBack: 'cubic-bezier(0.600, -0.280, 0.735, 0.045)',\n easeInCirc: 'cubic-bezier(0.600, 0.040, 0.980, 0.335)',\n easeInCubic: 'cubic-bezier(0.550, 0.055, 0.675, 0.190)',\n easeInExpo: 'cubic-bezier(0.950, 0.050, 0.795, 0.035)',\n easeInQuad: 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n easeInQuart: 'cubic-bezier(0.895, 0.030, 0.685, 0.220)',\n easeInQuint: 'cubic-bezier(0.755, 0.050, 0.855, 0.060)',\n easeInSine: 'cubic-bezier(0.470, 0.000, 0.745, 0.715)',\n easeOutBack: 'cubic-bezier(0.175, 0.885, 0.320, 1.275)',\n easeOutCubic: 'cubic-bezier(0.215, 0.610, 0.355, 1.000)',\n easeOutCirc: 'cubic-bezier(0.075, 0.820, 0.165, 1.000)',\n easeOutExpo: 'cubic-bezier(0.190, 1.000, 0.220, 1.000)',\n easeOutQuad: 'cubic-bezier(0.250, 0.460, 0.450, 0.940)',\n easeOutQuart: 'cubic-bezier(0.165, 0.840, 0.440, 1.000)',\n easeOutQuint: 'cubic-bezier(0.230, 1.000, 0.320, 1.000)',\n easeOutSine: 'cubic-bezier(0.390, 0.575, 0.565, 1.000)',\n easeInOutBack: 'cubic-bezier(0.680, -0.550, 0.265, 1.550)',\n easeInOutCirc: 'cubic-bezier(0.785, 0.135, 0.150, 0.860)',\n easeInOutCubic: 'cubic-bezier(0.645, 0.045, 0.355, 1.000)',\n easeInOutExpo: 'cubic-bezier(1.000, 0.000, 0.000, 1.000)',\n easeInOutQuad: 'cubic-bezier(0.455, 0.030, 0.515, 0.955)',\n easeInOutQuart: 'cubic-bezier(0.770, 0.000, 0.175, 1.000)',\n easeInOutQuint: 'cubic-bezier(0.860, 0.000, 0.070, 1.000)',\n easeInOutSine: 'cubic-bezier(0.445, 0.050, 0.550, 0.950)'\n};\n/* eslint-enable key-spacing */\n\nfunction getTimingFunction(functionName) {\n return functionsMap[functionName];\n}\n/**\n * String to represent common easing functions as demonstrated here: (github.com/jaukia/easie).\n *\n * @deprecated - This will be deprecated in v5 in favor of `easeIn`, `easeOut`, `easeInOut`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * 'transitionTimingFunction': timingFunctions('easeInQuad')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * transitionTimingFunction: ${timingFunctions('easeInQuad')};\n * `\n *\n * // CSS as JS Output\n *\n * 'div': {\n * 'transitionTimingFunction': 'cubic-bezier(0.550, 0.085, 0.680, 0.530)',\n * }\n */\n\n\nfunction timingFunctions(timingFunction) {\n return getTimingFunction(timingFunction);\n}\n\nvar getBorderWidth = function getBorderWidth(pointingDirection, height, width) {\n var fullWidth = \"\" + width[0] + (width[1] || '');\n var halfWidth = \"\" + width[0] / 2 + (width[1] || '');\n var fullHeight = \"\" + height[0] + (height[1] || '');\n var halfHeight = \"\" + height[0] / 2 + (height[1] || '');\n\n switch (pointingDirection) {\n case 'top':\n return \"0 \" + halfWidth + \" \" + fullHeight + \" \" + halfWidth;\n\n case 'topLeft':\n return fullWidth + \" \" + fullHeight + \" 0 0\";\n\n case 'left':\n return halfHeight + \" \" + fullWidth + \" \" + halfHeight + \" 0\";\n\n case 'bottomLeft':\n return fullWidth + \" 0 0 \" + fullHeight;\n\n case 'bottom':\n return fullHeight + \" \" + halfWidth + \" 0 \" + halfWidth;\n\n case 'bottomRight':\n return \"0 0 \" + fullWidth + \" \" + fullHeight;\n\n case 'right':\n return halfHeight + \" 0 \" + halfHeight + \" \" + fullWidth;\n\n case 'topRight':\n default:\n return \"0 \" + fullWidth + \" \" + fullHeight + \" 0\";\n }\n};\n\nvar getBorderColor = function getBorderColor(pointingDirection, foregroundColor) {\n switch (pointingDirection) {\n case 'top':\n case 'bottomRight':\n return {\n borderBottomColor: foregroundColor\n };\n\n case 'right':\n case 'bottomLeft':\n return {\n borderLeftColor: foregroundColor\n };\n\n case 'bottom':\n case 'topLeft':\n return {\n borderTopColor: foregroundColor\n };\n\n case 'left':\n case 'topRight':\n return {\n borderRightColor: foregroundColor\n };\n\n default:\n throw new PolishedError(59);\n }\n};\n/**\n * CSS to represent triangle with any pointing direction with an optional background color.\n *\n * @example\n * // Styles as object usage\n *\n * const styles = {\n * ...triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })\n * }\n *\n *\n * // styled-components usage\n * const div = styled.div`\n * ${triangle({ pointingDirection: 'right', width: '100px', height: '100px', foregroundColor: 'red' })}\n *\n *\n * // CSS as JS Output\n *\n * div: {\n * 'borderColor': 'transparent transparent transparent red',\n * 'borderStyle': 'solid',\n * 'borderWidth': '50px 0 50px 100px',\n * 'height': '0',\n * 'width': '0',\n * }\n */\n\n\nfunction triangle(_ref) {\n var pointingDirection = _ref.pointingDirection,\n height = _ref.height,\n width = _ref.width,\n foregroundColor = _ref.foregroundColor,\n _ref$backgroundColor = _ref.backgroundColor,\n backgroundColor = _ref$backgroundColor === void 0 ? 'transparent' : _ref$backgroundColor;\n var widthAndUnit = getValueAndUnit(width);\n var heightAndUnit = getValueAndUnit(height);\n\n if (isNaN(heightAndUnit[0]) || isNaN(widthAndUnit[0])) {\n throw new PolishedError(60);\n }\n\n return _extends({\n width: '0',\n height: '0',\n borderColor: backgroundColor\n }, getBorderColor(pointingDirection, foregroundColor), {\n borderStyle: 'solid',\n borderWidth: getBorderWidth(pointingDirection, heightAndUnit, widthAndUnit)\n });\n}\n\n/**\n * Provides an easy way to change the `wordWrap` property.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...wordWrap('break-word')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${wordWrap('break-word')}\n * `\n *\n * // CSS as JS Output\n *\n * const styles = {\n * overflowWrap: 'break-word',\n * wordWrap: 'break-word',\n * wordBreak: 'break-all',\n * }\n */\nfunction wordWrap(wrap) {\n if (wrap === void 0) {\n wrap = 'break-word';\n }\n\n var wordBreak = wrap === 'break-word' ? 'break-all' : wrap;\n return {\n overflowWrap: wrap,\n wordWrap: wrap,\n wordBreak: wordBreak\n };\n}\n\nfunction colorToInt(color) {\n return Math.round(color * 255);\n}\n\nfunction convertToInt(red, green, blue) {\n return colorToInt(red) + \",\" + colorToInt(green) + \",\" + colorToInt(blue);\n}\n\nfunction hslToRgb(hue, saturation, lightness, convert) {\n if (convert === void 0) {\n convert = convertToInt;\n }\n\n if (saturation === 0) {\n // achromatic\n return convert(lightness, lightness, lightness);\n } // formulae from https://en.wikipedia.org/wiki/HSL_and_HSV\n\n\n var huePrime = (hue % 360 + 360) % 360 / 60;\n var chroma = (1 - Math.abs(2 * lightness - 1)) * saturation;\n var secondComponent = chroma * (1 - Math.abs(huePrime % 2 - 1));\n var red = 0;\n var green = 0;\n var blue = 0;\n\n if (huePrime >= 0 && huePrime < 1) {\n red = chroma;\n green = secondComponent;\n } else if (huePrime >= 1 && huePrime < 2) {\n red = secondComponent;\n green = chroma;\n } else if (huePrime >= 2 && huePrime < 3) {\n green = chroma;\n blue = secondComponent;\n } else if (huePrime >= 3 && huePrime < 4) {\n green = secondComponent;\n blue = chroma;\n } else if (huePrime >= 4 && huePrime < 5) {\n red = secondComponent;\n blue = chroma;\n } else if (huePrime >= 5 && huePrime < 6) {\n red = chroma;\n blue = secondComponent;\n }\n\n var lightnessModification = lightness - chroma / 2;\n var finalRed = red + lightnessModification;\n var finalGreen = green + lightnessModification;\n var finalBlue = blue + lightnessModification;\n return convert(finalRed, finalGreen, finalBlue);\n}\n\nvar namedColorMap = {\n aliceblue: 'f0f8ff',\n antiquewhite: 'faebd7',\n aqua: '00ffff',\n aquamarine: '7fffd4',\n azure: 'f0ffff',\n beige: 'f5f5dc',\n bisque: 'ffe4c4',\n black: '000',\n blanchedalmond: 'ffebcd',\n blue: '0000ff',\n blueviolet: '8a2be2',\n brown: 'a52a2a',\n burlywood: 'deb887',\n cadetblue: '5f9ea0',\n chartreuse: '7fff00',\n chocolate: 'd2691e',\n coral: 'ff7f50',\n cornflowerblue: '6495ed',\n cornsilk: 'fff8dc',\n crimson: 'dc143c',\n cyan: '00ffff',\n darkblue: '00008b',\n darkcyan: '008b8b',\n darkgoldenrod: 'b8860b',\n darkgray: 'a9a9a9',\n darkgreen: '006400',\n darkgrey: 'a9a9a9',\n darkkhaki: 'bdb76b',\n darkmagenta: '8b008b',\n darkolivegreen: '556b2f',\n darkorange: 'ff8c00',\n darkorchid: '9932cc',\n darkred: '8b0000',\n darksalmon: 'e9967a',\n darkseagreen: '8fbc8f',\n darkslateblue: '483d8b',\n darkslategray: '2f4f4f',\n darkslategrey: '2f4f4f',\n darkturquoise: '00ced1',\n darkviolet: '9400d3',\n deeppink: 'ff1493',\n deepskyblue: '00bfff',\n dimgray: '696969',\n dimgrey: '696969',\n dodgerblue: '1e90ff',\n firebrick: 'b22222',\n floralwhite: 'fffaf0',\n forestgreen: '228b22',\n fuchsia: 'ff00ff',\n gainsboro: 'dcdcdc',\n ghostwhite: 'f8f8ff',\n gold: 'ffd700',\n goldenrod: 'daa520',\n gray: '808080',\n green: '008000',\n greenyellow: 'adff2f',\n grey: '808080',\n honeydew: 'f0fff0',\n hotpink: 'ff69b4',\n indianred: 'cd5c5c',\n indigo: '4b0082',\n ivory: 'fffff0',\n khaki: 'f0e68c',\n lavender: 'e6e6fa',\n lavenderblush: 'fff0f5',\n lawngreen: '7cfc00',\n lemonchiffon: 'fffacd',\n lightblue: 'add8e6',\n lightcoral: 'f08080',\n lightcyan: 'e0ffff',\n lightgoldenrodyellow: 'fafad2',\n lightgray: 'd3d3d3',\n lightgreen: '90ee90',\n lightgrey: 'd3d3d3',\n lightpink: 'ffb6c1',\n lightsalmon: 'ffa07a',\n lightseagreen: '20b2aa',\n lightskyblue: '87cefa',\n lightslategray: '789',\n lightslategrey: '789',\n lightsteelblue: 'b0c4de',\n lightyellow: 'ffffe0',\n lime: '0f0',\n limegreen: '32cd32',\n linen: 'faf0e6',\n magenta: 'f0f',\n maroon: '800000',\n mediumaquamarine: '66cdaa',\n mediumblue: '0000cd',\n mediumorchid: 'ba55d3',\n mediumpurple: '9370db',\n mediumseagreen: '3cb371',\n mediumslateblue: '7b68ee',\n mediumspringgreen: '00fa9a',\n mediumturquoise: '48d1cc',\n mediumvioletred: 'c71585',\n midnightblue: '191970',\n mintcream: 'f5fffa',\n mistyrose: 'ffe4e1',\n moccasin: 'ffe4b5',\n navajowhite: 'ffdead',\n navy: '000080',\n oldlace: 'fdf5e6',\n olive: '808000',\n olivedrab: '6b8e23',\n orange: 'ffa500',\n orangered: 'ff4500',\n orchid: 'da70d6',\n palegoldenrod: 'eee8aa',\n palegreen: '98fb98',\n paleturquoise: 'afeeee',\n palevioletred: 'db7093',\n papayawhip: 'ffefd5',\n peachpuff: 'ffdab9',\n peru: 'cd853f',\n pink: 'ffc0cb',\n plum: 'dda0dd',\n powderblue: 'b0e0e6',\n purple: '800080',\n rebeccapurple: '639',\n red: 'f00',\n rosybrown: 'bc8f8f',\n royalblue: '4169e1',\n saddlebrown: '8b4513',\n salmon: 'fa8072',\n sandybrown: 'f4a460',\n seagreen: '2e8b57',\n seashell: 'fff5ee',\n sienna: 'a0522d',\n silver: 'c0c0c0',\n skyblue: '87ceeb',\n slateblue: '6a5acd',\n slategray: '708090',\n slategrey: '708090',\n snow: 'fffafa',\n springgreen: '00ff7f',\n steelblue: '4682b4',\n tan: 'd2b48c',\n teal: '008080',\n thistle: 'd8bfd8',\n tomato: 'ff6347',\n turquoise: '40e0d0',\n violet: 'ee82ee',\n wheat: 'f5deb3',\n white: 'fff',\n whitesmoke: 'f5f5f5',\n yellow: 'ff0',\n yellowgreen: '9acd32'\n};\n/**\n * Checks if a string is a CSS named color and returns its equivalent hex value, otherwise returns the original color.\n * @private\n */\n\nfunction nameToHex(color) {\n if (typeof color !== 'string') return color;\n var normalizedColorName = color.toLowerCase();\n return namedColorMap[normalizedColorName] ? \"#\" + namedColorMap[normalizedColorName] : color;\n}\n\nvar hexRegex = /^#[a-fA-F0-9]{6}$/;\nvar hexRgbaRegex = /^#[a-fA-F0-9]{8}$/;\nvar reducedHexRegex = /^#[a-fA-F0-9]{3}$/;\nvar reducedRgbaHexRegex = /^#[a-fA-F0-9]{4}$/;\nvar rgbRegex = /^rgb\\(\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*\\)$/i;\nvar rgbaRegex = /^rgb(?:a)?\\(\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,)?\\s*(\\d{1,3})\\s*(?:,|\\/)\\s*([-+]?\\d*[.]?\\d+[%]?)\\s*\\)$/i;\nvar hslRegex = /^hsl\\(\\s*(\\d{0,3}[.]?[0-9]+(?:deg)?)\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*\\)$/i;\nvar hslaRegex = /^hsl(?:a)?\\(\\s*(\\d{0,3}[.]?[0-9]+(?:deg)?)\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,)?\\s*(\\d{1,3}[.]?[0-9]?)%\\s*(?:,|\\/)\\s*([-+]?\\d*[.]?\\d+[%]?)\\s*\\)$/i;\n/**\n * Returns an RgbColor or RgbaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a RgbColor or RgbaColor object back to a string.\n *\n * @example\n * // Assigns `{ red: 255, green: 0, blue: 0 }` to color1\n * const color1 = parseToRgb('rgb(255, 0, 0)');\n * // Assigns `{ red: 92, green: 102, blue: 112, alpha: 0.75 }` to color2\n * const color2 = parseToRgb('hsla(210, 10%, 40%, 0.75)');\n */\n\nfunction parseToRgb(color) {\n if (typeof color !== 'string') {\n throw new PolishedError(3);\n }\n\n var normalizedColor = nameToHex(color);\n\n if (normalizedColor.match(hexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16)\n };\n }\n\n if (normalizedColor.match(hexRgbaRegex)) {\n var alpha = parseFloat((parseInt(\"\" + normalizedColor[7] + normalizedColor[8], 16) / 255).toFixed(2));\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[2], 16),\n green: parseInt(\"\" + normalizedColor[3] + normalizedColor[4], 16),\n blue: parseInt(\"\" + normalizedColor[5] + normalizedColor[6], 16),\n alpha: alpha\n };\n }\n\n if (normalizedColor.match(reducedHexRegex)) {\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16)\n };\n }\n\n if (normalizedColor.match(reducedRgbaHexRegex)) {\n var _alpha = parseFloat((parseInt(\"\" + normalizedColor[4] + normalizedColor[4], 16) / 255).toFixed(2));\n\n return {\n red: parseInt(\"\" + normalizedColor[1] + normalizedColor[1], 16),\n green: parseInt(\"\" + normalizedColor[2] + normalizedColor[2], 16),\n blue: parseInt(\"\" + normalizedColor[3] + normalizedColor[3], 16),\n alpha: _alpha\n };\n }\n\n var rgbMatched = rgbRegex.exec(normalizedColor);\n\n if (rgbMatched) {\n return {\n red: parseInt(\"\" + rgbMatched[1], 10),\n green: parseInt(\"\" + rgbMatched[2], 10),\n blue: parseInt(\"\" + rgbMatched[3], 10)\n };\n }\n\n var rgbaMatched = rgbaRegex.exec(normalizedColor.substring(0, 50));\n\n if (rgbaMatched) {\n return {\n red: parseInt(\"\" + rgbaMatched[1], 10),\n green: parseInt(\"\" + rgbaMatched[2], 10),\n blue: parseInt(\"\" + rgbaMatched[3], 10),\n alpha: parseFloat(\"\" + rgbaMatched[4]) > 1 ? parseFloat(\"\" + rgbaMatched[4]) / 100 : parseFloat(\"\" + rgbaMatched[4])\n };\n }\n\n var hslMatched = hslRegex.exec(normalizedColor);\n\n if (hslMatched) {\n var hue = parseInt(\"\" + hslMatched[1], 10);\n var saturation = parseInt(\"\" + hslMatched[2], 10) / 100;\n var lightness = parseInt(\"\" + hslMatched[3], 10) / 100;\n var rgbColorString = \"rgb(\" + hslToRgb(hue, saturation, lightness) + \")\";\n var hslRgbMatched = rgbRegex.exec(rgbColorString);\n\n if (!hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, rgbColorString);\n }\n\n return {\n red: parseInt(\"\" + hslRgbMatched[1], 10),\n green: parseInt(\"\" + hslRgbMatched[2], 10),\n blue: parseInt(\"\" + hslRgbMatched[3], 10)\n };\n }\n\n var hslaMatched = hslaRegex.exec(normalizedColor.substring(0, 50));\n\n if (hslaMatched) {\n var _hue = parseInt(\"\" + hslaMatched[1], 10);\n\n var _saturation = parseInt(\"\" + hslaMatched[2], 10) / 100;\n\n var _lightness = parseInt(\"\" + hslaMatched[3], 10) / 100;\n\n var _rgbColorString = \"rgb(\" + hslToRgb(_hue, _saturation, _lightness) + \")\";\n\n var _hslRgbMatched = rgbRegex.exec(_rgbColorString);\n\n if (!_hslRgbMatched) {\n throw new PolishedError(4, normalizedColor, _rgbColorString);\n }\n\n return {\n red: parseInt(\"\" + _hslRgbMatched[1], 10),\n green: parseInt(\"\" + _hslRgbMatched[2], 10),\n blue: parseInt(\"\" + _hslRgbMatched[3], 10),\n alpha: parseFloat(\"\" + hslaMatched[4]) > 1 ? parseFloat(\"\" + hslaMatched[4]) / 100 : parseFloat(\"\" + hslaMatched[4])\n };\n }\n\n throw new PolishedError(5);\n}\n\nfunction rgbToHsl(color) {\n // make sure rgb are contained in a set of [0, 255]\n var red = color.red / 255;\n var green = color.green / 255;\n var blue = color.blue / 255;\n var max = Math.max(red, green, blue);\n var min = Math.min(red, green, blue);\n var lightness = (max + min) / 2;\n\n if (max === min) {\n // achromatic\n if (color.alpha !== undefined) {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness,\n alpha: color.alpha\n };\n } else {\n return {\n hue: 0,\n saturation: 0,\n lightness: lightness\n };\n }\n }\n\n var hue;\n var delta = max - min;\n var saturation = lightness > 0.5 ? delta / (2 - max - min) : delta / (max + min);\n\n switch (max) {\n case red:\n hue = (green - blue) / delta + (green < blue ? 6 : 0);\n break;\n\n case green:\n hue = (blue - red) / delta + 2;\n break;\n\n default:\n // blue case\n hue = (red - green) / delta + 4;\n break;\n }\n\n hue *= 60;\n\n if (color.alpha !== undefined) {\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness,\n alpha: color.alpha\n };\n }\n\n return {\n hue: hue,\n saturation: saturation,\n lightness: lightness\n };\n}\n\n/**\n * Returns an HslColor or HslaColor object. This utility function is only useful\n * if want to extract a color component. With the color util `toColorString` you\n * can convert a HslColor or HslaColor object back to a string.\n *\n * @example\n * // Assigns `{ hue: 0, saturation: 1, lightness: 0.5 }` to color1\n * const color1 = parseToHsl('rgb(255, 0, 0)');\n * // Assigns `{ hue: 128, saturation: 1, lightness: 0.5, alpha: 0.75 }` to color2\n * const color2 = parseToHsl('hsla(128, 100%, 50%, 0.75)');\n */\nfunction parseToHsl(color) {\n // Note: At a later stage we can optimize this function as right now a hsl\n // color would be parsed converted to rgb values and converted back to hsl.\n return rgbToHsl(parseToRgb(color));\n}\n\n/**\n * Reduces hex values if possible e.g. #ff8866 to #f86\n * @private\n */\nvar reduceHexValue = function reduceHexValue(value) {\n if (value.length === 7 && value[1] === value[2] && value[3] === value[4] && value[5] === value[6]) {\n return \"#\" + value[1] + value[3] + value[5];\n }\n\n return value;\n};\n\nvar reduceHexValue$1 = reduceHexValue;\n\nfunction numberToHex(value) {\n var hex = value.toString(16);\n return hex.length === 1 ? \"0\" + hex : hex;\n}\n\nfunction colorToHex(color) {\n return numberToHex(Math.round(color * 255));\n}\n\nfunction convertToHex(red, green, blue) {\n return reduceHexValue$1(\"#\" + colorToHex(red) + colorToHex(green) + colorToHex(blue));\n}\n\nfunction hslToHex(hue, saturation, lightness) {\n return hslToRgb(hue, saturation, lightness, convertToHex);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsl(359, 0.75, 0.4),\n * background: hsl({ hue: 360, saturation: 0.75, lightness: 0.4 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsl(359, 0.75, 0.4)};\n * background: ${hsl({ hue: 360, saturation: 0.75, lightness: 0.4 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#b3191c\";\n * background: \"#b3191c\";\n * }\n */\nfunction hsl(value, saturation, lightness) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number') {\n return hslToHex(value, saturation, lightness);\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined) {\n return hslToHex(value.hue, value.saturation, value.lightness);\n }\n\n throw new PolishedError(1);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hsla(359, 0.75, 0.4, 0.7),\n * background: hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 }),\n * background: hsla(359, 0.75, 0.4, 1),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hsla(359, 0.75, 0.4, 0.7)};\n * background: ${hsla({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0,7 })};\n * background: ${hsla(359, 0.75, 0.4, 1)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"rgba(179,25,28,0.7)\";\n * background: \"#b3191c\";\n * }\n */\nfunction hsla(value, saturation, lightness, alpha) {\n if (typeof value === 'number' && typeof saturation === 'number' && typeof lightness === 'number' && typeof alpha === 'number') {\n return alpha >= 1 ? hslToHex(value, saturation, lightness) : \"rgba(\" + hslToRgb(value, saturation, lightness) + \",\" + alpha + \")\";\n } else if (typeof value === 'object' && saturation === undefined && lightness === undefined && alpha === undefined) {\n return value.alpha >= 1 ? hslToHex(value.hue, value.saturation, value.lightness) : \"rgba(\" + hslToRgb(value.hue, value.saturation, value.lightness) + \",\" + value.alpha + \")\";\n }\n\n throw new PolishedError(2);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible hex notation.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgb(255, 205, 100),\n * background: rgb({ red: 255, green: 205, blue: 100 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgb(255, 205, 100)};\n * background: ${rgb({ red: 255, green: 205, blue: 100 })};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffcd64\";\n * background: \"#ffcd64\";\n * }\n */\nfunction rgb(value, green, blue) {\n if (typeof value === 'number' && typeof green === 'number' && typeof blue === 'number') {\n return reduceHexValue$1(\"#\" + numberToHex(value) + numberToHex(green) + numberToHex(blue));\n } else if (typeof value === 'object' && green === undefined && blue === undefined) {\n return reduceHexValue$1(\"#\" + numberToHex(value.red) + numberToHex(value.green) + numberToHex(value.blue));\n }\n\n throw new PolishedError(6);\n}\n\n/**\n * Returns a string value for the color. The returned result is the smallest possible rgba or hex notation.\n *\n * Can also be used to fade a color by passing a hex value or named CSS color along with an alpha value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgba(255, 205, 100, 0.7),\n * background: rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 }),\n * background: rgba(255, 205, 100, 1),\n * background: rgba('#ffffff', 0.4),\n * background: rgba('black', 0.7),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgba(255, 205, 100, 0.7)};\n * background: ${rgba({ red: 255, green: 205, blue: 100, alpha: 0.7 })};\n * background: ${rgba(255, 205, 100, 1)};\n * background: ${rgba('#ffffff', 0.4)};\n * background: ${rgba('black', 0.7)};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"rgba(255,205,100,0.7)\";\n * background: \"#ffcd64\";\n * background: \"rgba(255,255,255,0.4)\";\n * background: \"rgba(0,0,0,0.7)\";\n * }\n */\nfunction rgba(firstValue, secondValue, thirdValue, fourthValue) {\n if (typeof firstValue === 'string' && typeof secondValue === 'number') {\n var rgbValue = parseToRgb(firstValue);\n return \"rgba(\" + rgbValue.red + \",\" + rgbValue.green + \",\" + rgbValue.blue + \",\" + secondValue + \")\";\n } else if (typeof firstValue === 'number' && typeof secondValue === 'number' && typeof thirdValue === 'number' && typeof fourthValue === 'number') {\n return fourthValue >= 1 ? rgb(firstValue, secondValue, thirdValue) : \"rgba(\" + firstValue + \",\" + secondValue + \",\" + thirdValue + \",\" + fourthValue + \")\";\n } else if (typeof firstValue === 'object' && secondValue === undefined && thirdValue === undefined && fourthValue === undefined) {\n return firstValue.alpha >= 1 ? rgb(firstValue.red, firstValue.green, firstValue.blue) : \"rgba(\" + firstValue.red + \",\" + firstValue.green + \",\" + firstValue.blue + \",\" + firstValue.alpha + \")\";\n }\n\n throw new PolishedError(7);\n}\n\nvar isRgb = function isRgb(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\n\nvar isRgba = function isRgba(color) {\n return typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number' && typeof color.alpha === 'number';\n};\n\nvar isHsl = function isHsl(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && (typeof color.alpha !== 'number' || typeof color.alpha === 'undefined');\n};\n\nvar isHsla = function isHsla(color) {\n return typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number' && typeof color.alpha === 'number';\n};\n/**\n * Converts a RgbColor, RgbaColor, HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb`, `rgba`, `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: toColorString({ red: 255, green: 205, blue: 100 }),\n * background: toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * background: toColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${toColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${toColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * background: ${toColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${toColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\n\n\nfunction toColorString(color) {\n if (typeof color !== 'object') throw new PolishedError(8);\n if (isRgba(color)) return rgba(color);\n if (isRgb(color)) return rgb(color);\n if (isHsla(color)) return hsla(color);\n if (isHsl(color)) return hsl(color);\n throw new PolishedError(8);\n}\n\n// Type definitions taken from https://github.com/gcanti/flow-static-land/blob/master/src/Fun.js\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-unused-vars\n// eslint-disable-next-line no-redeclare\nfunction curried(f, length, acc) {\n return function fn() {\n // eslint-disable-next-line prefer-rest-params\n var combined = acc.concat(Array.prototype.slice.call(arguments));\n return combined.length >= length ? f.apply(this, combined) : curried(f, length, combined);\n };\n} // eslint-disable-next-line no-redeclare\n\n\nfunction curry(f) {\n // eslint-disable-line no-redeclare\n return curried(f, f.length, []);\n}\n\n/**\n * Changes the hue of the color. Hue is a number between 0 to 360. The first\n * argument for adjustHue is the amount of degrees the color is rotated around\n * the color wheel, always producing a positive hue value.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: adjustHue(180, '#448'),\n * background: adjustHue('180', 'rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${adjustHue(180, '#448')};\n * background: ${adjustHue('180', 'rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#888844\";\n * background: \"rgba(136,136,68,0.7)\";\n * }\n */\n\nfunction adjustHue(degree, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: hslColor.hue + parseFloat(degree)\n }));\n} // prettier-ignore\n\n\nvar curriedAdjustHue = /*#__PURE__*/curry\n/* :: */\n(adjustHue);\nvar curriedAdjustHue$1 = curriedAdjustHue;\n\n/**\n * Returns the complement of the provided color. This is identical to adjustHue(180, ).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: complement('#448'),\n * background: complement('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${complement('#448')};\n * background: ${complement('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#884\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\n\nfunction complement(color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n hue: (hslColor.hue + 180) % 360\n }));\n}\n\nfunction guard(lowerBoundary, upperBoundary, value) {\n return Math.max(lowerBoundary, Math.min(upperBoundary, value));\n}\n\n/**\n * Returns a string value for the darkened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: darken(0.2, '#FFCD64'),\n * background: darken('0.2', 'rgba(255,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${darken(0.2, '#FFCD64')};\n * background: ${darken('0.2', 'rgba(255,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#ffbd31\";\n * background: \"rgba(255,189,49,0.7)\";\n * }\n */\n\nfunction darken(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness - parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedDarken = /*#__PURE__*/curry\n/* :: */\n(darken);\nvar curriedDarken$1 = curriedDarken;\n\n/**\n * Decreases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the desaturate function is the amount by how much the color\n * intensity should be decreased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: desaturate(0.2, '#CCCD64'),\n * background: desaturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${desaturate(0.2, '#CCCD64')};\n * background: ${desaturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#b8b979\";\n * background: \"rgba(184,185,121,0.7)\";\n * }\n */\n\nfunction desaturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation - parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedDesaturate = /*#__PURE__*/curry\n/* :: */\n(desaturate);\nvar curriedDesaturate$1 = curriedDesaturate;\n\n/**\n * Returns a number (float) representing the luminance of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff',\n * background: getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)',\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${getLuminance('#CCCD64') >= getLuminance('#0000ff') ? '#CCCD64' : '#0000ff'};\n * background: ${getLuminance('rgba(58, 133, 255, 1)') >= getLuminance('rgba(255, 57, 149, 1)') ?\n * 'rgba(58, 133, 255, 1)' :\n * 'rgba(255, 57, 149, 1)'};\n *\n * // CSS in JS Output\n *\n * div {\n * background: \"#CCCD64\";\n * background: \"rgba(58, 133, 255, 1)\";\n * }\n */\n\nfunction getLuminance(color) {\n if (color === 'transparent') return 0;\n var rgbColor = parseToRgb(color);\n\n var _Object$keys$map = Object.keys(rgbColor).map(function (key) {\n var channel = rgbColor[key] / 255;\n return channel <= 0.03928 ? channel / 12.92 : Math.pow((channel + 0.055) / 1.055, 2.4);\n }),\n r = _Object$keys$map[0],\n g = _Object$keys$map[1],\n b = _Object$keys$map[2];\n\n return parseFloat((0.2126 * r + 0.7152 * g + 0.0722 * b).toFixed(3));\n}\n\n/**\n * Returns the contrast ratio between two colors based on\n * [W3's recommended equation for calculating contrast](http://www.w3.org/TR/WCAG20/#contrast-ratiodef).\n *\n * @example\n * const contrastRatio = getContrast('#444', '#fff');\n */\n\nfunction getContrast(color1, color2) {\n var luminance1 = getLuminance(color1);\n var luminance2 = getLuminance(color2);\n return parseFloat((luminance1 > luminance2 ? (luminance1 + 0.05) / (luminance2 + 0.05) : (luminance2 + 0.05) / (luminance1 + 0.05)).toFixed(2));\n}\n\n/**\n * Converts the color to a grayscale, by reducing its saturation to 0.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: grayscale('#CCCD64'),\n * background: grayscale('rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${grayscale('#CCCD64')};\n * background: ${grayscale('rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#999\";\n * background: \"rgba(153,153,153,0.7)\";\n * }\n */\n\nfunction grayscale(color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: 0\n }));\n}\n\n/**\n * Converts a HslColor or HslaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `hsl` or `hsla`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 }),\n * background: hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${hslToColorString({ hue: 240, saturation: 1, lightness: 0.5 })};\n * background: ${hslToColorString({ hue: 360, saturation: 0.75, lightness: 0.4, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#00f\";\n * background: \"rgba(179,25,25,0.72)\";\n * }\n */\nfunction hslToColorString(color) {\n if (typeof color === 'object' && typeof color.hue === 'number' && typeof color.saturation === 'number' && typeof color.lightness === 'number') {\n if (color.alpha && typeof color.alpha === 'number') {\n return hsla({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness,\n alpha: color.alpha\n });\n }\n\n return hsl({\n hue: color.hue,\n saturation: color.saturation,\n lightness: color.lightness\n });\n }\n\n throw new PolishedError(45);\n}\n\n/**\n * Inverts the red, green and blue values of a color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: invert('#CCCD64'),\n * background: invert('rgba(101,100,205,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${invert('#CCCD64')};\n * background: ${invert('rgba(101,100,205,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#33329b\";\n * background: \"rgba(154,155,50,0.7)\";\n * }\n */\n\nfunction invert(color) {\n if (color === 'transparent') return color; // parse color string to rgb\n\n var value = parseToRgb(color);\n return toColorString(_extends({}, value, {\n red: 255 - value.red,\n green: 255 - value.green,\n blue: 255 - value.blue\n }));\n}\n\n/**\n * Returns a string value for the lightened color.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: lighten(0.2, '#CCCD64'),\n * background: lighten('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${lighten(0.2, '#FFCD64')};\n * background: ${lighten('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e5e6b1\";\n * background: \"rgba(229,230,177,0.7)\";\n * }\n */\n\nfunction lighten(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n lightness: guard(0, 1, hslColor.lightness + parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedLighten = /*#__PURE__*/curry\n/* :: */\n(lighten);\nvar curriedLighten$1 = curriedLighten;\n\n/**\n * Determines which contrast guidelines have been met for two colors.\n * Based on the [contrast calculations recommended by W3](https://www.w3.org/WAI/WCAG21/Understanding/contrast-enhanced.html).\n *\n * @example\n * const scores = meetsContrastGuidelines('#444', '#fff');\n */\nfunction meetsContrastGuidelines(color1, color2) {\n var contrastRatio = getContrast(color1, color2);\n return {\n AA: contrastRatio >= 4.5,\n AALarge: contrastRatio >= 3,\n AAA: contrastRatio >= 7,\n AAALarge: contrastRatio >= 4.5\n };\n}\n\n/**\n * Mixes the two provided colors together by calculating the average of each of the RGB components weighted to the first color by the provided weight.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: mix(0.5, '#f00', '#00f')\n * background: mix(0.25, '#f00', '#00f')\n * background: mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${mix(0.5, '#f00', '#00f')};\n * background: ${mix(0.25, '#f00', '#00f')};\n * background: ${mix('0.5', 'rgba(255, 0, 0, 0.5)', '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#7f007f\";\n * background: \"#3f00bf\";\n * background: \"rgba(63, 0, 191, 0.75)\";\n * }\n */\n\nfunction mix(weight, color, otherColor) {\n if (color === 'transparent') return otherColor;\n if (otherColor === 'transparent') return color;\n if (weight === 0) return otherColor;\n var parsedColor1 = parseToRgb(color);\n\n var color1 = _extends({}, parsedColor1, {\n alpha: typeof parsedColor1.alpha === 'number' ? parsedColor1.alpha : 1\n });\n\n var parsedColor2 = parseToRgb(otherColor);\n\n var color2 = _extends({}, parsedColor2, {\n alpha: typeof parsedColor2.alpha === 'number' ? parsedColor2.alpha : 1\n }); // The formula is copied from the original Sass implementation:\n // http://sass-lang.com/documentation/Sass/Script/Functions.html#mix-instance_method\n\n\n var alphaDelta = color1.alpha - color2.alpha;\n var x = parseFloat(weight) * 2 - 1;\n var y = x * alphaDelta === -1 ? x : x + alphaDelta;\n var z = 1 + x * alphaDelta;\n var weight1 = (y / z + 1) / 2.0;\n var weight2 = 1 - weight1;\n var mixedColor = {\n red: Math.floor(color1.red * weight1 + color2.red * weight2),\n green: Math.floor(color1.green * weight1 + color2.green * weight2),\n blue: Math.floor(color1.blue * weight1 + color2.blue * weight2),\n alpha: color1.alpha * parseFloat(weight) + color2.alpha * (1 - parseFloat(weight))\n };\n return rgba(mixedColor);\n} // prettier-ignore\n\n\nvar curriedMix = /*#__PURE__*/curry\n/* :: */\n(mix);\nvar mix$1 = curriedMix;\n\n/**\n * Increases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: opacify(0.1, 'rgba(255, 255, 255, 0.9)');\n * background: opacify(0.2, 'hsla(0, 0%, 100%, 0.5)'),\n * background: opacify('0.5', 'rgba(255, 0, 0, 0.2)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${opacify(0.1, 'rgba(255, 255, 255, 0.9)')};\n * background: ${opacify(0.2, 'hsla(0, 0%, 100%, 0.5)')},\n * background: ${opacify('0.5', 'rgba(255, 0, 0, 0.2)')},\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#fff\";\n * background: \"rgba(255,255,255,0.7)\";\n * background: \"rgba(255,0,0,0.7)\";\n * }\n */\n\nfunction opacify(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, (alpha * 100 + parseFloat(amount) * 100) / 100)\n });\n\n return rgba(colorWithAlpha);\n} // prettier-ignore\n\n\nvar curriedOpacify = /*#__PURE__*/curry\n/* :: */\n(opacify);\nvar curriedOpacify$1 = curriedOpacify;\n\nvar defaultReturnIfLightColor = '#000';\nvar defaultReturnIfDarkColor = '#fff';\n/**\n * Returns black or white (or optional passed colors) for best\n * contrast depending on the luminosity of the given color.\n * When passing custom return colors, strict mode ensures that the\n * return color always meets or exceeds WCAG level AA or greater. If this test\n * fails, the default return color (black or white) is returned in place of the\n * custom return color. You can optionally turn off strict mode.\n *\n * Follows [W3C specs for readability](https://www.w3.org/TR/WCAG20-TECHS/G18.html).\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * color: readableColor('#000'),\n * color: readableColor('black', '#001', '#ff8'),\n * color: readableColor('white', '#001', '#ff8'),\n * color: readableColor('red', '#333', '#ddd', true)\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * color: ${readableColor('#000')};\n * color: ${readableColor('black', '#001', '#ff8')};\n * color: ${readableColor('white', '#001', '#ff8')};\n * color: ${readableColor('red', '#333', '#ddd', true)};\n * `\n *\n * // CSS in JS Output\n * element {\n * color: \"#fff\";\n * color: \"#ff8\";\n * color: \"#001\";\n * color: \"#000\";\n * }\n */\n\nfunction readableColor(color, returnIfLightColor, returnIfDarkColor, strict) {\n if (returnIfLightColor === void 0) {\n returnIfLightColor = defaultReturnIfLightColor;\n }\n\n if (returnIfDarkColor === void 0) {\n returnIfDarkColor = defaultReturnIfDarkColor;\n }\n\n if (strict === void 0) {\n strict = true;\n }\n\n var isColorLight = getLuminance(color) > 0.179;\n var preferredReturnColor = isColorLight ? returnIfLightColor : returnIfDarkColor;\n\n if (!strict || getContrast(color, preferredReturnColor) >= 4.5) {\n return preferredReturnColor;\n }\n\n return isColorLight ? defaultReturnIfLightColor : defaultReturnIfDarkColor;\n}\n\n/**\n * Converts a RgbColor or RgbaColor object to a color string.\n * This util is useful in case you only know on runtime which color object is\n * used. Otherwise we recommend to rely on `rgb` or `rgba`.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: rgbToColorString({ red: 255, green: 205, blue: 100 }),\n * background: rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 }),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${rgbToColorString({ red: 255, green: 205, blue: 100 })};\n * background: ${rgbToColorString({ red: 255, green: 205, blue: 100, alpha: 0.72 })};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#ffcd64\";\n * background: \"rgba(255,205,100,0.72)\";\n * }\n */\nfunction rgbToColorString(color) {\n if (typeof color === 'object' && typeof color.red === 'number' && typeof color.green === 'number' && typeof color.blue === 'number') {\n if (typeof color.alpha === 'number') {\n return rgba({\n red: color.red,\n green: color.green,\n blue: color.blue,\n alpha: color.alpha\n });\n }\n\n return rgb({\n red: color.red,\n green: color.green,\n blue: color.blue\n });\n }\n\n throw new PolishedError(46);\n}\n\n/**\n * Increases the intensity of a color. Its range is between 0 to 1. The first\n * argument of the saturate function is the amount by how much the color\n * intensity should be increased.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: saturate(0.2, '#CCCD64'),\n * background: saturate('0.2', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${saturate(0.2, '#FFCD64')};\n * background: ${saturate('0.2', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#e0e250\";\n * background: \"rgba(224,226,80,0.7)\";\n * }\n */\n\nfunction saturate(amount, color) {\n if (color === 'transparent') return color;\n var hslColor = parseToHsl(color);\n return toColorString(_extends({}, hslColor, {\n saturation: guard(0, 1, hslColor.saturation + parseFloat(amount))\n }));\n} // prettier-ignore\n\n\nvar curriedSaturate = /*#__PURE__*/curry\n/* :: */\n(saturate);\nvar curriedSaturate$1 = curriedSaturate;\n\n/**\n * Sets the hue of a color to the provided value. The hue range can be\n * from 0 and 359.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setHue(42, '#CCCD64'),\n * background: setHue('244', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setHue(42, '#CCCD64')};\n * background: ${setHue('244', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#cdae64\";\n * background: \"rgba(107,100,205,0.7)\";\n * }\n */\n\nfunction setHue(hue, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n hue: parseFloat(hue)\n }));\n} // prettier-ignore\n\n\nvar curriedSetHue = /*#__PURE__*/curry\n/* :: */\n(setHue);\nvar curriedSetHue$1 = curriedSetHue;\n\n/**\n * Sets the lightness of a color to the provided value. The lightness range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setLightness(0.2, '#CCCD64'),\n * background: setLightness('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setLightness(0.2, '#CCCD64')};\n * background: ${setLightness('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#4d4d19\";\n * background: \"rgba(223,224,159,0.7)\";\n * }\n */\n\nfunction setLightness(lightness, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n lightness: parseFloat(lightness)\n }));\n} // prettier-ignore\n\n\nvar curriedSetLightness = /*#__PURE__*/curry\n/* :: */\n(setLightness);\nvar curriedSetLightness$1 = curriedSetLightness;\n\n/**\n * Sets the saturation of a color to the provided value. The saturation range can be\n * from 0 and 1.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: setSaturation(0.2, '#CCCD64'),\n * background: setSaturation('0.75', 'rgba(204,205,100,0.7)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${setSaturation(0.2, '#CCCD64')};\n * background: ${setSaturation('0.75', 'rgba(204,205,100,0.7)')};\n * `\n *\n * // CSS in JS Output\n * element {\n * background: \"#adad84\";\n * background: \"rgba(228,229,76,0.7)\";\n * }\n */\n\nfunction setSaturation(saturation, color) {\n if (color === 'transparent') return color;\n return toColorString(_extends({}, parseToHsl(color), {\n saturation: parseFloat(saturation)\n }));\n} // prettier-ignore\n\n\nvar curriedSetSaturation = /*#__PURE__*/curry\n/* :: */\n(setSaturation);\nvar curriedSetSaturation$1 = curriedSetSaturation;\n\n/**\n * Shades a color by mixing it with black. `shade` can produce\n * hue shifts, where as `darken` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: shade(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${shade(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#00003f\";\n * }\n */\n\nfunction shade(percentage, color) {\n if (color === 'transparent') return color;\n return mix$1(parseFloat(percentage), 'rgb(0, 0, 0)', color);\n} // prettier-ignore\n\n\nvar curriedShade = /*#__PURE__*/curry\n/* :: */\n(shade);\nvar curriedShade$1 = curriedShade;\n\n/**\n * Tints a color by mixing it with white. `tint` can produce\n * hue shifts, where as `lighten` manipulates the luminance channel and therefore\n * doesn't produce hue shifts.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: tint(0.25, '#00f')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${tint(0.25, '#00f')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"#bfbfff\";\n * }\n */\n\nfunction tint(percentage, color) {\n if (color === 'transparent') return color;\n return mix$1(parseFloat(percentage), 'rgb(255, 255, 255)', color);\n} // prettier-ignore\n\n\nvar curriedTint = /*#__PURE__*/curry\n/* :: */\n(tint);\nvar curriedTint$1 = curriedTint;\n\n/**\n * Decreases the opacity of a color. Its range for the amount is between 0 to 1.\n *\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * background: transparentize(0.1, '#fff'),\n * background: transparentize(0.2, 'hsl(0, 0%, 100%)'),\n * background: transparentize('0.5', 'rgba(255, 0, 0, 0.8)'),\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * background: ${transparentize(0.1, '#fff')};\n * background: ${transparentize(0.2, 'hsl(0, 0%, 100%)')};\n * background: ${transparentize('0.5', 'rgba(255, 0, 0, 0.8)')};\n * `\n *\n * // CSS in JS Output\n *\n * element {\n * background: \"rgba(255,255,255,0.9)\";\n * background: \"rgba(255,255,255,0.8)\";\n * background: \"rgba(255,0,0,0.3)\";\n * }\n */\n\nfunction transparentize(amount, color) {\n if (color === 'transparent') return color;\n var parsedColor = parseToRgb(color);\n var alpha = typeof parsedColor.alpha === 'number' ? parsedColor.alpha : 1;\n\n var colorWithAlpha = _extends({}, parsedColor, {\n alpha: guard(0, 1, +(alpha * 100 - parseFloat(amount) * 100).toFixed(2) / 100)\n });\n\n return rgba(colorWithAlpha);\n} // prettier-ignore\n\n\nvar curriedTransparentize = /*#__PURE__*/curry\n/* :: */\n(transparentize);\nvar curriedTransparentize$1 = curriedTransparentize;\n\n/**\n * Shorthand for easily setting the animation property. Allows either multiple arrays with animations\n * or a single animation spread over the arguments.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${animation(['rotate', '1s', 'ease-in-out'], ['colorchange', '2s'])}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'animation': 'rotate 1s ease-in-out, colorchange 2s'\n * }\n * @example\n * // Styles as object usage\n * const styles = {\n * ...animation('rotate', '1s', 'ease-in-out')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${animation('rotate', '1s', 'ease-in-out')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'animation': 'rotate 1s ease-in-out'\n * }\n */\nfunction animation() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n // Allow single or multiple animations passed\n var multiMode = Array.isArray(args[0]);\n\n if (!multiMode && args.length > 8) {\n throw new PolishedError(64);\n }\n\n var code = args.map(function (arg) {\n if (multiMode && !Array.isArray(arg) || !multiMode && Array.isArray(arg)) {\n throw new PolishedError(65);\n }\n\n if (Array.isArray(arg) && arg.length > 8) {\n throw new PolishedError(66);\n }\n\n return Array.isArray(arg) ? arg.join(' ') : arg;\n }).join(', ');\n return {\n animation: code\n };\n}\n\n/**\n * Shorthand that accepts any number of backgroundImage values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${backgroundImages('url(\"/image/background.jpg\")', 'linear-gradient(red, green)')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'backgroundImage': 'url(\"/image/background.jpg\"), linear-gradient(red, green)'\n * }\n */\nfunction backgroundImages() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n return {\n backgroundImage: properties.join(', ')\n };\n}\n\n/**\n * Shorthand that accepts any number of background values as parameters for creating a single background statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${backgrounds('url(\"/image/background.jpg\")', 'linear-gradient(red, green)', 'center no-repeat')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'background': 'url(\"/image/background.jpg\"), linear-gradient(red, green), center no-repeat'\n * }\n */\nfunction backgrounds() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n return {\n background: properties.join(', ')\n };\n}\n\nvar sideMap = ['top', 'right', 'bottom', 'left'];\n/**\n * Shorthand for the border property that splits out individual properties for use with tools like Fela and Styletron. A side keyword can optionally be passed to target only one side's border properties.\n *\n * @example\n * // Styles as object usage\n * const styles = {\n * ...border('1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderColor': 'red',\n * 'borderStyle': 'solid',\n * 'borderWidth': `1px`,\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...border('top', '1px', 'solid', 'red')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${border('top', '1px', 'solid', 'red')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopColor': 'red',\n * 'borderTopStyle': 'solid',\n * 'borderTopWidth': `1px`,\n * }\n */\n\nfunction border(sideKeyword) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n if (typeof sideKeyword === 'string' && sideMap.indexOf(sideKeyword) >= 0) {\n var _ref;\n\n return _ref = {}, _ref[\"border\" + capitalizeString(sideKeyword) + \"Width\"] = values[0], _ref[\"border\" + capitalizeString(sideKeyword) + \"Style\"] = values[1], _ref[\"border\" + capitalizeString(sideKeyword) + \"Color\"] = values[2], _ref;\n } else {\n values.unshift(sideKeyword);\n return {\n borderWidth: values[0],\n borderStyle: values[1],\n borderColor: values[2]\n };\n }\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderColor('red', 'green', 'blue', 'yellow')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderColor('red', 'green', 'blue', 'yellow')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopColor': 'red',\n * 'borderRightColor': 'green',\n * 'borderBottomColor': 'blue',\n * 'borderLeftColor': 'yellow'\n * }\n */\nfunction borderColor() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderColor'].concat(values));\n}\n\n/**\n * Shorthand that accepts a value for side and a value for radius and applies the radius value to both corners of the side.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderRadius('top', '5px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderRadius('top', '5px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopRightRadius': '5px',\n * 'borderTopLeftRadius': '5px',\n * }\n */\nfunction borderRadius(side, radius) {\n var uppercaseSide = capitalizeString(side);\n\n if (!radius && radius !== 0) {\n throw new PolishedError(62);\n }\n\n if (uppercaseSide === 'Top' || uppercaseSide === 'Bottom') {\n var _ref;\n\n return _ref = {}, _ref[\"border\" + uppercaseSide + \"RightRadius\"] = radius, _ref[\"border\" + uppercaseSide + \"LeftRadius\"] = radius, _ref;\n }\n\n if (uppercaseSide === 'Left' || uppercaseSide === 'Right') {\n var _ref2;\n\n return _ref2 = {}, _ref2[\"borderTop\" + uppercaseSide + \"Radius\"] = radius, _ref2[\"borderBottom\" + uppercaseSide + \"Radius\"] = radius, _ref2;\n }\n\n throw new PolishedError(63);\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderStyle('solid', 'dashed', 'dotted', 'double')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderStyle('solid', 'dashed', 'dotted', 'double')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopStyle': 'solid',\n * 'borderRightStyle': 'dashed',\n * 'borderBottomStyle': 'dotted',\n * 'borderLeftStyle': 'double'\n * }\n */\nfunction borderStyle() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderStyle'].concat(values));\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...borderWidth('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${borderWidth('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'borderTopWidth': '12px',\n * 'borderRightWidth': '24px',\n * 'borderBottomWidth': '36px',\n * 'borderLeftWidth': '48px'\n * }\n */\nfunction borderWidth() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['borderWidth'].concat(values));\n}\n\nfunction generateSelectors(template, state) {\n var stateSuffix = state ? \":\" + state : '';\n return template(stateSuffix);\n}\n/**\n * Function helper that adds an array of states to a template of selectors. Used in textInputs and buttons.\n * @private\n */\n\n\nfunction statefulSelectors(states, template, stateMap) {\n if (!template) throw new PolishedError(67);\n if (states.length === 0) return generateSelectors(template, null);\n var selectors = [];\n\n for (var i = 0; i < states.length; i += 1) {\n if (stateMap && stateMap.indexOf(states[i]) < 0) {\n throw new PolishedError(68);\n }\n\n selectors.push(generateSelectors(template, states[i]));\n }\n\n selectors = selectors.join(',');\n return selectors;\n}\n\nvar stateMap$1 = [undefined, null, 'active', 'focus', 'hover'];\n\nfunction template$1(state) {\n return \"button\" + state + \",\\n input[type=\\\"button\\\"]\" + state + \",\\n input[type=\\\"reset\\\"]\" + state + \",\\n input[type=\\\"submit\\\"]\" + state;\n}\n/**\n * Populates selectors that target all buttons. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [buttons('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${buttons('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'button:active,\n * 'input[type=\"button\"]:active,\n * 'input[type=\\\"reset\\\"]:active,\n * 'input[type=\\\"submit\\\"]:active: {\n * 'border': 'none'\n * }\n */\n\n\nfunction buttons() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n\n return statefulSelectors(states, template$1, stateMap$1);\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...margin('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${margin('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'marginTop': '12px',\n * 'marginRight': '24px',\n * 'marginBottom': '36px',\n * 'marginLeft': '48px'\n * }\n */\nfunction margin() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['margin'].concat(values));\n}\n\n/**\n * Shorthand that accepts up to four values, including null to skip a value, and maps them to their respective directions.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...padding('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${padding('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'paddingTop': '12px',\n * 'paddingRight': '24px',\n * 'paddingBottom': '36px',\n * 'paddingLeft': '48px'\n * }\n */\nfunction padding() {\n for (var _len = arguments.length, values = new Array(_len), _key = 0; _key < _len; _key++) {\n values[_key] = arguments[_key];\n }\n\n return directionalProperty.apply(void 0, ['padding'].concat(values));\n}\n\nvar positionMap = ['absolute', 'fixed', 'relative', 'static', 'sticky'];\n/**\n * Shorthand accepts up to five values, including null to skip a value, and maps them to their respective directions. The first value can optionally be a position keyword.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...position('12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n *\n * // Styles as object usage\n * const styles = {\n * ...position('absolute', '12px', '24px', '36px', '48px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${position('absolute', '12px', '24px', '36px', '48px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'position': 'absolute',\n * 'top': '12px',\n * 'right': '24px',\n * 'bottom': '36px',\n * 'left': '48px'\n * }\n */\n\nfunction position(firstValue) {\n for (var _len = arguments.length, values = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n values[_key - 1] = arguments[_key];\n }\n\n if (positionMap.indexOf(firstValue) >= 0 && firstValue) {\n return _extends({}, directionalProperty.apply(void 0, [''].concat(values)), {\n position: firstValue\n });\n } else {\n return directionalProperty.apply(void 0, ['', firstValue].concat(values));\n }\n}\n\n/**\n * Shorthand to set the height and width properties in a single statement.\n * @example\n * // Styles as object usage\n * const styles = {\n * ...size('300px', '250px')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${size('300px', '250px')}\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'height': '300px',\n * 'width': '250px',\n * }\n */\nfunction size(height, width) {\n if (width === void 0) {\n width = height;\n }\n\n return {\n height: height,\n width: width\n };\n}\n\nvar stateMap = [undefined, null, 'active', 'focus', 'hover'];\n\nfunction template(state) {\n return \"input[type=\\\"color\\\"]\" + state + \",\\n input[type=\\\"date\\\"]\" + state + \",\\n input[type=\\\"datetime\\\"]\" + state + \",\\n input[type=\\\"datetime-local\\\"]\" + state + \",\\n input[type=\\\"email\\\"]\" + state + \",\\n input[type=\\\"month\\\"]\" + state + \",\\n input[type=\\\"number\\\"]\" + state + \",\\n input[type=\\\"password\\\"]\" + state + \",\\n input[type=\\\"search\\\"]\" + state + \",\\n input[type=\\\"tel\\\"]\" + state + \",\\n input[type=\\\"text\\\"]\" + state + \",\\n input[type=\\\"time\\\"]\" + state + \",\\n input[type=\\\"url\\\"]\" + state + \",\\n input[type=\\\"week\\\"]\" + state + \",\\n input:not([type])\" + state + \",\\n textarea\" + state;\n}\n/**\n * Populates selectors that target all text inputs. You can pass optional states to append to the selectors.\n * @example\n * // Styles as object usage\n * const styles = {\n * [textInputs('active')]: {\n * 'border': 'none'\n * }\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * > ${textInputs('active')} {\n * border: none;\n * }\n * `\n *\n * // CSS in JS Output\n *\n * 'input[type=\"color\"]:active,\n * input[type=\"date\"]:active,\n * input[type=\"datetime\"]:active,\n * input[type=\"datetime-local\"]:active,\n * input[type=\"email\"]:active,\n * input[type=\"month\"]:active,\n * input[type=\"number\"]:active,\n * input[type=\"password\"]:active,\n * input[type=\"search\"]:active,\n * input[type=\"tel\"]:active,\n * input[type=\"text\"]:active,\n * input[type=\"time\"]:active,\n * input[type=\"url\"]:active,\n * input[type=\"week\"]:active,\n * input:not([type]):active,\n * textarea:active': {\n * 'border': 'none'\n * }\n */\n\n\nfunction textInputs() {\n for (var _len = arguments.length, states = new Array(_len), _key = 0; _key < _len; _key++) {\n states[_key] = arguments[_key];\n }\n\n return statefulSelectors(states, template, stateMap);\n}\n\n/**\n * Accepts any number of transition values as parameters for creating a single transition statement. You may also pass an array of properties as the first parameter that you would like to apply the same transition values to (second parameter).\n * @example\n * // Styles as object usage\n * const styles = {\n * ...transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s'),\n * ...transitions(['color', 'background-color'], '2.0s ease-in 2s')\n * }\n *\n * // styled-components usage\n * const div = styled.div`\n * ${transitions('opacity 1.0s ease-in 0s', 'width 2.0s ease-in 2s')};\n * ${transitions(['color', 'background-color'], '2.0s ease-in 2s'),};\n * `\n *\n * // CSS as JS Output\n *\n * div {\n * 'transition': 'opacity 1.0s ease-in 0s, width 2.0s ease-in 2s'\n * 'transition': 'color 2.0s ease-in 2s, background-color 2.0s ease-in 2s',\n * }\n */\n\nfunction transitions() {\n for (var _len = arguments.length, properties = new Array(_len), _key = 0; _key < _len; _key++) {\n properties[_key] = arguments[_key];\n }\n\n if (Array.isArray(properties[0]) && properties.length === 2) {\n var value = properties[1];\n\n if (typeof value !== 'string') {\n throw new PolishedError(61);\n }\n\n var transitionsString = properties[0].map(function (property) {\n return property + \" \" + value;\n }).join(', ');\n return {\n transition: transitionsString\n };\n } else {\n return {\n transition: properties.join(', ')\n };\n }\n}\n\nexport { curriedAdjustHue$1 as adjustHue, animation, backgroundImages, backgrounds, between, border, borderColor, borderRadius, borderStyle, borderWidth, buttons, clearFix, complement, cover, cssVar, curriedDarken$1 as darken, curriedDesaturate$1 as desaturate, directionalProperty, easeIn, easeInOut, easeOut, ellipsis, em$1 as em, fluidRange, fontFace, getContrast, getLuminance, getValueAndUnit, grayscale, hiDPI, hideText, hideVisually, hsl, hslToColorString, hsla, important, invert, curriedLighten$1 as lighten, linearGradient, margin, math, meetsContrastGuidelines, mix$1 as mix, modularScale, normalize, curriedOpacify$1 as opacify, padding, parseToHsl, parseToRgb, position, radialGradient, readableColor, rem$1 as rem, remToPx, retinaImage, rgb, rgbToColorString, rgba, curriedSaturate$1 as saturate, curriedSetHue$1 as setHue, curriedSetLightness$1 as setLightness, curriedSetSaturation$1 as setSaturation, curriedShade$1 as shade, size, stripUnit, textInputs, timingFunctions, curriedTint$1 as tint, toColorString, transitions, curriedTransparentize$1 as transparentize, triangle, wordWrap };\n","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\nprocess.prependListener = noop;\nprocess.prependOnceListener = noop;\n\nprocess.listeners = function (name) { return [] }\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","/**\n * Based on Kendo UI Core expression code \n */\n'use strict'\n\nfunction Cache(maxSize) {\n this._maxSize = maxSize\n this.clear()\n}\nCache.prototype.clear = function () {\n this._size = 0\n this._values = Object.create(null)\n}\nCache.prototype.get = function (key) {\n return this._values[key]\n}\nCache.prototype.set = function (key, value) {\n this._size >= this._maxSize && this.clear()\n if (!(key in this._values)) this._size++\n\n return (this._values[key] = value)\n}\n\nvar SPLIT_REGEX = /[^.^\\]^[]+|(?=\\[\\]|\\.\\.)/g,\n DIGIT_REGEX = /^\\d+$/,\n LEAD_DIGIT_REGEX = /^\\d/,\n SPEC_CHAR_REGEX = /[~`!#$%\\^&*+=\\-\\[\\]\\\\';,/{}|\\\\\":<>\\?]/g,\n CLEAN_QUOTES_REGEX = /^\\s*(['\"]?)(.*?)(\\1)\\s*$/,\n MAX_CACHE_SIZE = 512\n\nvar pathCache = new Cache(MAX_CACHE_SIZE),\n setCache = new Cache(MAX_CACHE_SIZE),\n getCache = new Cache(MAX_CACHE_SIZE)\n\nvar config\n\nmodule.exports = {\n Cache: Cache,\n\n split: split,\n\n normalizePath: normalizePath,\n\n setter: function (path) {\n var parts = normalizePath(path)\n\n return (\n setCache.get(path) ||\n setCache.set(path, function setter(obj, value) {\n var index = 0\n var len = parts.length\n var data = obj\n\n while (index < len - 1) {\n var part = parts[index]\n if (\n part === '__proto__' ||\n part === 'constructor' ||\n part === 'prototype'\n ) {\n return obj\n }\n\n data = data[parts[index++]]\n }\n data[parts[index]] = value\n })\n )\n },\n\n getter: function (path, safe) {\n var parts = normalizePath(path)\n return (\n getCache.get(path) ||\n getCache.set(path, function getter(data) {\n var index = 0,\n len = parts.length\n while (index < len) {\n if (data != null || !safe) data = data[parts[index++]]\n else return\n }\n return data\n })\n )\n },\n\n join: function (segments) {\n return segments.reduce(function (path, part) {\n return (\n path +\n (isQuoted(part) || DIGIT_REGEX.test(part)\n ? '[' + part + ']'\n : (path ? '.' : '') + part)\n )\n }, '')\n },\n\n forEach: function (path, cb, thisArg) {\n forEach(Array.isArray(path) ? path : split(path), cb, thisArg)\n },\n}\n\nfunction normalizePath(path) {\n return (\n pathCache.get(path) ||\n pathCache.set(\n path,\n split(path).map(function (part) {\n return part.replace(CLEAN_QUOTES_REGEX, '$2')\n })\n )\n )\n}\n\nfunction split(path) {\n return path.match(SPLIT_REGEX) || ['']\n}\n\nfunction forEach(parts, iter, thisArg) {\n var len = parts.length,\n part,\n idx,\n isArray,\n isBracket\n\n for (idx = 0; idx < len; idx++) {\n part = parts[idx]\n\n if (part) {\n if (shouldBeQuoted(part)) {\n part = '\"' + part + '\"'\n }\n\n isBracket = isQuoted(part)\n isArray = !isBracket && /^\\d+$/.test(part)\n\n iter.call(thisArg, part, isBracket, isArray, idx, parts)\n }\n }\n}\n\nfunction isQuoted(str) {\n return (\n typeof str === 'string' && str && [\"'\", '\"'].indexOf(str.charAt(0)) !== -1\n )\n}\n\nfunction hasLeadingNumber(part) {\n return part.match(LEAD_DIGIT_REGEX) && !part.match(DIGIT_REGEX)\n}\n\nfunction hasSpecialChars(part) {\n return SPEC_CHAR_REGEX.test(part)\n}\n\nfunction shouldBeQuoted(part) {\n return !isQuoted(part) && (hasLeadingNumber(part) || hasSpecialChars(part))\n}\n","exports.publicEncrypt = require('./publicEncrypt')\nexports.privateDecrypt = require('./privateDecrypt')\n\nexports.privateEncrypt = function privateEncrypt (key, buf) {\n return exports.publicEncrypt(key, buf, true)\n}\n\nexports.publicDecrypt = function publicDecrypt (key, buf) {\n return exports.privateDecrypt(key, buf, true)\n}\n","var createHash = require('create-hash')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function (seed, len) {\n var t = Buffer.alloc(0)\n var i = 0\n var c\n while (t.length < len) {\n c = i2ops(i++)\n t = Buffer.concat([t, createHash('sha1').update(seed).update(c).digest()])\n }\n return t.slice(0, len)\n}\n\nfunction i2ops (c) {\n var out = Buffer.allocUnsafe(4)\n out.writeUInt32BE(c, 0)\n return out\n}\n","var parseKeys = require('parse-asn1')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar crt = require('browserify-rsa')\nvar createHash = require('create-hash')\nvar withPublic = require('./withPublic')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function privateDecrypt (privateKey, enc, reverse) {\n var padding\n if (privateKey.padding) {\n padding = privateKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n\n var key = parseKeys(privateKey)\n var k = key.modulus.byteLength()\n if (enc.length > k || new BN(enc).cmp(key.modulus) >= 0) {\n throw new Error('decryption error')\n }\n var msg\n if (reverse) {\n msg = withPublic(new BN(enc), key)\n } else {\n msg = crt(enc, key)\n }\n var zBuffer = Buffer.alloc(k - msg.length)\n msg = Buffer.concat([zBuffer, msg], k)\n if (padding === 4) {\n return oaep(key, msg)\n } else if (padding === 1) {\n return pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n return msg\n } else {\n throw new Error('unknown padding')\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n if (msg[0] !== 0) {\n throw new Error('decryption error')\n }\n var maskedSeed = msg.slice(1, hLen + 1)\n var maskedDb = msg.slice(hLen + 1)\n var seed = xor(maskedSeed, mgf(maskedDb, hLen))\n var db = xor(maskedDb, mgf(seed, k - hLen - 1))\n if (compare(iHash, db.slice(0, hLen))) {\n throw new Error('decryption error')\n }\n var i = hLen\n while (db[i] === 0) {\n i++\n }\n if (db[i++] !== 1) {\n throw new Error('decryption error')\n }\n return db.slice(i)\n}\n\nfunction pkcs1 (key, msg, reverse) {\n var p1 = msg.slice(0, 2)\n var i = 2\n var status = 0\n while (msg[i++] !== 0) {\n if (i >= msg.length) {\n status++\n break\n }\n }\n var ps = msg.slice(2, i - 1)\n\n if ((p1.toString('hex') !== '0002' && !reverse) || (p1.toString('hex') !== '0001' && reverse)) {\n status++\n }\n if (ps.length < 8) {\n status++\n }\n if (status) {\n throw new Error('decryption error')\n }\n return msg.slice(i)\n}\nfunction compare (a, b) {\n a = Buffer.from(a)\n b = Buffer.from(b)\n var dif = 0\n var len = a.length\n if (a.length !== b.length) {\n dif++\n len = Math.min(a.length, b.length)\n }\n var i = -1\n while (++i < len) {\n dif += (a[i] ^ b[i])\n }\n return dif\n}\n","var parseKeys = require('parse-asn1')\nvar randomBytes = require('randombytes')\nvar createHash = require('create-hash')\nvar mgf = require('./mgf')\nvar xor = require('./xor')\nvar BN = require('bn.js')\nvar withPublic = require('./withPublic')\nvar crt = require('browserify-rsa')\nvar Buffer = require('safe-buffer').Buffer\n\nmodule.exports = function publicEncrypt (publicKey, msg, reverse) {\n var padding\n if (publicKey.padding) {\n padding = publicKey.padding\n } else if (reverse) {\n padding = 1\n } else {\n padding = 4\n }\n var key = parseKeys(publicKey)\n var paddedMsg\n if (padding === 4) {\n paddedMsg = oaep(key, msg)\n } else if (padding === 1) {\n paddedMsg = pkcs1(key, msg, reverse)\n } else if (padding === 3) {\n paddedMsg = new BN(msg)\n if (paddedMsg.cmp(key.modulus) >= 0) {\n throw new Error('data too long for modulus')\n }\n } else {\n throw new Error('unknown padding')\n }\n if (reverse) {\n return crt(paddedMsg, key)\n } else {\n return withPublic(paddedMsg, key)\n }\n}\n\nfunction oaep (key, msg) {\n var k = key.modulus.byteLength()\n var mLen = msg.length\n var iHash = createHash('sha1').update(Buffer.alloc(0)).digest()\n var hLen = iHash.length\n var hLen2 = 2 * hLen\n if (mLen > k - hLen2 - 2) {\n throw new Error('message too long')\n }\n var ps = Buffer.alloc(k - mLen - hLen2 - 2)\n var dblen = k - hLen - 1\n var seed = randomBytes(hLen)\n var maskedDb = xor(Buffer.concat([iHash, ps, Buffer.alloc(1, 1), msg], dblen), mgf(seed, dblen))\n var maskedSeed = xor(seed, mgf(maskedDb, hLen))\n return new BN(Buffer.concat([Buffer.alloc(1), maskedSeed, maskedDb], k))\n}\nfunction pkcs1 (key, msg, reverse) {\n var mLen = msg.length\n var k = key.modulus.byteLength()\n if (mLen > k - 11) {\n throw new Error('message too long')\n }\n var ps\n if (reverse) {\n ps = Buffer.alloc(k - mLen - 3, 0xff)\n } else {\n ps = nonZero(k - mLen - 3)\n }\n return new BN(Buffer.concat([Buffer.from([0, reverse ? 1 : 2]), ps, Buffer.alloc(1), msg], k))\n}\nfunction nonZero (len) {\n var out = Buffer.allocUnsafe(len)\n var i = 0\n var cache = randomBytes(len * 2)\n var cur = 0\n var num\n while (i < len) {\n if (cur === cache.length) {\n cache = randomBytes(len * 2)\n cur = 0\n }\n num = cache[cur++]\n if (num) {\n out[i++] = num\n }\n }\n return out\n}\n","var BN = require('bn.js')\nvar Buffer = require('safe-buffer').Buffer\n\nfunction withPublic (paddedMsg, key) {\n return Buffer.from(paddedMsg\n .toRed(BN.mont(key.modulus))\n .redPow(new BN(key.publicExponent))\n .fromRed()\n .toArray())\n}\n\nmodule.exports = withPublic\n","module.exports = function xor (a, b) {\n var len = a.length\n var i = -1\n while (++i < len) {\n a[i] ^= b[i]\n }\n return a\n}\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\n// If obj.hasOwnProperty has been overridden, then calling\n// obj.hasOwnProperty(prop) will break.\n// See: https://github.com/joyent/node/issues/1707\nfunction hasOwnProperty(obj, prop) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}\n\nmodule.exports = function(qs, sep, eq, options) {\n sep = sep || '&';\n eq = eq || '=';\n var obj = {};\n\n if (typeof qs !== 'string' || qs.length === 0) {\n return obj;\n }\n\n var regexp = /\\+/g;\n qs = qs.split(sep);\n\n var maxKeys = 1000;\n if (options && typeof options.maxKeys === 'number') {\n maxKeys = options.maxKeys;\n }\n\n var len = qs.length;\n // maxKeys <= 0 means that we should not limit keys count\n if (maxKeys > 0 && len > maxKeys) {\n len = maxKeys;\n }\n\n for (var i = 0; i < len; ++i) {\n var x = qs[i].replace(regexp, '%20'),\n idx = x.indexOf(eq),\n kstr, vstr, k, v;\n\n if (idx >= 0) {\n kstr = x.substr(0, idx);\n vstr = x.substr(idx + 1);\n } else {\n kstr = x;\n vstr = '';\n }\n\n k = decodeURIComponent(kstr);\n v = decodeURIComponent(vstr);\n\n if (!hasOwnProperty(obj, k)) {\n obj[k] = v;\n } else if (Array.isArray(obj[k])) {\n obj[k].push(v);\n } else {\n obj[k] = [obj[k], v];\n }\n }\n\n return obj;\n};\n","// Copyright Joyent, Inc. and other Node contributors.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and associated documentation files (the\n// \"Software\"), to deal in the Software without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Software, and to permit\n// persons to whom the Software is furnished to do so, subject to the\n// following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Software.\n//\n// THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS\n// OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN\n// NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,\n// DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR\n// OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE\n// USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n'use strict';\n\nvar stringifyPrimitive = function(v) {\n switch (typeof v) {\n case 'string':\n return v;\n\n case 'boolean':\n return v ? 'true' : 'false';\n\n case 'number':\n return isFinite(v) ? v : '';\n\n default:\n return '';\n }\n};\n\nmodule.exports = function(obj, sep, eq, name) {\n sep = sep || '&';\n eq = eq || '=';\n if (obj === null) {\n obj = undefined;\n }\n\n if (typeof obj === 'object') {\n return Object.keys(obj).map(function(k) {\n var ks = encodeURIComponent(stringifyPrimitive(k)) + eq;\n if (Array.isArray(obj[k])) {\n return obj[k].map(function(v) {\n return ks + encodeURIComponent(stringifyPrimitive(v));\n }).join(sep);\n } else {\n return ks + encodeURIComponent(stringifyPrimitive(obj[k]));\n }\n }).join(sep);\n\n }\n\n if (!name) return '';\n return encodeURIComponent(stringifyPrimitive(name)) + eq +\n encodeURIComponent(stringifyPrimitive(obj));\n};\n","'use strict';\n\nexports.decode = exports.parse = require('./decode');\nexports.encode = exports.stringify = require('./encode');\n","'use strict'\n\n// limit of Crypto.getRandomValues()\n// https://developer.mozilla.org/en-US/docs/Web/API/Crypto/getRandomValues\nvar MAX_BYTES = 65536\n\n// Node supports requesting up to this number of bytes\n// https://github.com/nodejs/node/blob/master/lib/internal/crypto/random.js#L48\nvar MAX_UINT32 = 4294967295\n\nfunction oldBrowser () {\n throw new Error('Secure random number generation is not supported by this browser.\\nUse Chrome, Firefox or Internet Explorer 11')\n}\n\nvar Buffer = require('safe-buffer').Buffer\nvar crypto = global.crypto || global.msCrypto\n\nif (crypto && crypto.getRandomValues) {\n module.exports = randomBytes\n} else {\n module.exports = oldBrowser\n}\n\nfunction randomBytes (size, cb) {\n // phantomjs needs to throw\n if (size > MAX_UINT32) throw new RangeError('requested too many random bytes')\n\n var bytes = Buffer.allocUnsafe(size)\n\n if (size > 0) { // getRandomValues fails on IE if size == 0\n if (size > MAX_BYTES) { // this is the max bytes crypto.getRandomValues\n // can do at once see https://developer.mozilla.org/en-US/docs/Web/API/window.crypto.getRandomValues\n for (var generated = 0; generated < size; generated += MAX_BYTES) {\n // buffer.slice automatically checks if the end is past the end of\n // the buffer so we don't have to here\n crypto.getRandomValues(bytes.slice(generated, generated + MAX_BYTES))\n }\n } else {\n crypto.getRandomValues(bytes)\n }\n }\n\n if (typeof cb === 'function') {\n return process.nextTick(function () {\n cb(null, bytes)\n })\n }\n\n return bytes\n}\n","'use strict'\n\nfunction oldBrowser () {\n throw new Error('secure random number generation not supported by this browser\\nuse chrome, FireFox or Internet Explorer 11')\n}\nvar safeBuffer = require('safe-buffer')\nvar randombytes = require('randombytes')\nvar Buffer = safeBuffer.Buffer\nvar kBufferMaxLength = safeBuffer.kMaxLength\nvar crypto = global.crypto || global.msCrypto\nvar kMaxUint32 = Math.pow(2, 32) - 1\nfunction assertOffset (offset, length) {\n if (typeof offset !== 'number' || offset !== offset) { // eslint-disable-line no-self-compare\n throw new TypeError('offset must be a number')\n }\n\n if (offset > kMaxUint32 || offset < 0) {\n throw new TypeError('offset must be a uint32')\n }\n\n if (offset > kBufferMaxLength || offset > length) {\n throw new RangeError('offset out of range')\n }\n}\n\nfunction assertSize (size, offset, length) {\n if (typeof size !== 'number' || size !== size) { // eslint-disable-line no-self-compare\n throw new TypeError('size must be a number')\n }\n\n if (size > kMaxUint32 || size < 0) {\n throw new TypeError('size must be a uint32')\n }\n\n if (size + offset > length || size > kBufferMaxLength) {\n throw new RangeError('buffer too small')\n }\n}\nif ((crypto && crypto.getRandomValues) || !process.browser) {\n exports.randomFill = randomFill\n exports.randomFillSync = randomFillSync\n} else {\n exports.randomFill = oldBrowser\n exports.randomFillSync = oldBrowser\n}\nfunction randomFill (buf, offset, size, cb) {\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n if (typeof offset === 'function') {\n cb = offset\n offset = 0\n size = buf.length\n } else if (typeof size === 'function') {\n cb = size\n size = buf.length - offset\n } else if (typeof cb !== 'function') {\n throw new TypeError('\"cb\" argument must be a function')\n }\n assertOffset(offset, buf.length)\n assertSize(size, offset, buf.length)\n return actualFill(buf, offset, size, cb)\n}\n\nfunction actualFill (buf, offset, size, cb) {\n if (process.browser) {\n var ourBuf = buf.buffer\n var uint = new Uint8Array(ourBuf, offset, size)\n crypto.getRandomValues(uint)\n if (cb) {\n process.nextTick(function () {\n cb(null, buf)\n })\n return\n }\n return buf\n }\n if (cb) {\n randombytes(size, function (err, bytes) {\n if (err) {\n return cb(err)\n }\n bytes.copy(buf, offset)\n cb(null, buf)\n })\n return\n }\n var bytes = randombytes(size)\n bytes.copy(buf, offset)\n return buf\n}\nfunction randomFillSync (buf, offset, size) {\n if (typeof offset === 'undefined') {\n offset = 0\n }\n if (!Buffer.isBuffer(buf) && !(buf instanceof global.Uint8Array)) {\n throw new TypeError('\"buf\" argument must be a Buffer or Uint8Array')\n }\n\n assertOffset(offset, buf.length)\n\n if (size === undefined) size = buf.length - offset\n\n assertSize(size, offset, buf.length)\n\n return actualFill(buf, offset, size)\n}\n","import React from 'react';\nimport ApolloClient from 'apollo-client';\n\nexport interface ApolloContextValue {\n client?: ApolloClient;\n renderPromises?: Record;\n}\n\nlet apolloContext: React.Context;\n\nexport function getApolloContext() {\n if (!apolloContext) {\n apolloContext = React.createContext({});\n }\n return apolloContext;\n}\n\nexport function resetApolloContext() {\n apolloContext = React.createContext({});\n}\n","import {\n DocumentNode,\n DefinitionNode,\n VariableDefinitionNode,\n OperationDefinitionNode\n} from 'graphql';\nimport { invariant } from 'ts-invariant';\n\nexport enum DocumentType {\n Query,\n Mutation,\n Subscription\n}\n\nexport interface IDocumentDefinition {\n type: DocumentType;\n name: string;\n variables: ReadonlyArray;\n}\n\nconst cache = new Map();\n\nexport function operationName(type: DocumentType) {\n let name;\n switch (type) {\n case DocumentType.Query:\n name = 'Query';\n break;\n case DocumentType.Mutation:\n name = 'Mutation';\n break;\n case DocumentType.Subscription:\n name = 'Subscription';\n break;\n }\n return name;\n}\n\n// This parser is mostly used to saftey check incoming documents.\nexport function parser(document: DocumentNode): IDocumentDefinition {\n const cached = cache.get(document);\n if (cached) return cached;\n\n let variables, type, name;\n\n invariant(\n !!document && !!document.kind,\n `Argument of ${document} passed to parser was not a valid GraphQL ` +\n `DocumentNode. You may need to use 'graphql-tag' or another method ` +\n `to convert your operation into a document`\n );\n\n const fragments = document.definitions.filter(\n (x: DefinitionNode) => x.kind === 'FragmentDefinition'\n );\n\n const queries = document.definitions.filter(\n (x: DefinitionNode) =>\n x.kind === 'OperationDefinition' && x.operation === 'query'\n );\n\n const mutations = document.definitions.filter(\n (x: DefinitionNode) =>\n x.kind === 'OperationDefinition' && x.operation === 'mutation'\n );\n\n const subscriptions = document.definitions.filter(\n (x: DefinitionNode) =>\n x.kind === 'OperationDefinition' && x.operation === 'subscription'\n );\n\n invariant(\n !fragments.length ||\n (queries.length || mutations.length || subscriptions.length),\n `Passing only a fragment to 'graphql' is not yet supported. ` +\n `You must include a query, subscription or mutation as well`\n );\n\n invariant(\n queries.length + mutations.length + subscriptions.length <= 1,\n `react-apollo only supports a query, subscription, or a mutation per HOC. ` +\n `${document} had ${queries.length} queries, ${subscriptions.length} ` +\n `subscriptions and ${mutations.length} mutations. ` +\n `You can use 'compose' to join multiple operation types to a component`\n );\n\n type = queries.length ? DocumentType.Query : DocumentType.Mutation;\n if (!queries.length && !mutations.length) type = DocumentType.Subscription;\n\n const definitions = queries.length\n ? queries\n : mutations.length\n ? mutations\n : subscriptions;\n\n invariant(\n definitions.length === 1,\n `react-apollo only supports one definition per HOC. ${document} had ` +\n `${definitions.length} definitions. ` +\n `You can use 'compose' to join multiple operation types to a component`\n );\n\n const definition = definitions[0] as OperationDefinitionNode;\n variables = definition.variableDefinitions || [];\n\n if (definition.name && definition.name.kind === 'Name') {\n name = definition.name.value;\n } else {\n name = 'data'; // fallback to using data if no name\n }\n\n const payload = { name, type, variables };\n cache.set(document, payload);\n return payload;\n}\n","import React from 'react';\nimport ApolloClient from 'apollo-client';\nimport { invariant } from 'ts-invariant';\n\nimport { getApolloContext } from './ApolloContext';\n\nexport interface ApolloProviderProps {\n client: ApolloClient;\n children: React.ReactNode | React.ReactNode[] | null;\n}\n\nexport const ApolloProvider: React.FC> = ({\n client,\n children\n}) => {\n const ApolloContext = getApolloContext();\n return (\n \n {(context = {}) => {\n if (client && context.client !== client) {\n context = Object.assign({}, context, { client });\n }\n\n invariant(\n context.client,\n 'ApolloProvider was not passed a client instance. Make ' +\n 'sure you pass in your client via the \"client\" prop.'\n );\n\n return (\n \n {children}\n \n );\n }}\n \n );\n};\n","import React from 'react';\nimport ApolloClient from 'apollo-client';\nimport { invariant } from 'ts-invariant';\n\nimport { getApolloContext } from './ApolloContext';\n\nexport interface ApolloConsumerProps {\n children: (client: ApolloClient) => React.ReactChild | null;\n}\n\nexport const ApolloConsumer: React.FC = props => {\n const ApolloContext = getApolloContext();\n return (\n \n {(context: any) => {\n invariant(\n context && context.client,\n 'Could not find \"client\" in the context of ApolloConsumer. ' +\n 'Wrap the root component in an .'\n );\n return props.children(context.client);\n }}\n \n );\n};\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","/**\n * The current status of a query’s execution in our system.\n */\nexport enum NetworkStatus {\n /**\n * The query has never been run before and the query is now currently running. A query will still\n * have this network status even if a partial data result was returned from the cache, but a\n * query was dispatched anyway.\n */\n loading = 1,\n\n /**\n * If `setVariables` was called and a query was fired because of that then the network status\n * will be `setVariables` until the result of that query comes back.\n */\n setVariables = 2,\n\n /**\n * Indicates that `fetchMore` was called on this query and that the query created is currently in\n * flight.\n */\n fetchMore = 3,\n\n /**\n * Similar to the `setVariables` network status. It means that `refetch` was called on a query\n * and the refetch request is currently in flight.\n */\n refetch = 4,\n\n /**\n * Indicates that a polling query is currently in flight. So for example if you are polling a\n * query every 10 seconds then the network status will switch to `poll` every 10 seconds whenever\n * a poll request has been sent but not resolved.\n */\n poll = 6,\n\n /**\n * No request is in flight for this query, and no errors happened. Everything is OK.\n */\n ready = 7,\n\n /**\n * No request is in flight for this query, but one or more errors were detected.\n */\n error = 8,\n}\n\n/**\n * Returns true if there is currently a network request in flight according to a given network\n * status.\n */\nexport function isNetworkRequestInFlight(\n networkStatus: NetworkStatus,\n): boolean {\n return networkStatus < 7;\n}\n","// This simplified polyfill attempts to follow the ECMAScript Observable proposal.\n// See https://github.com/zenparsing/es-observable\nimport { Observable as LinkObservable } from 'apollo-link';\n\nexport type Subscription = ZenObservable.Subscription;\nexport type Observer = ZenObservable.Observer;\n\nimport $$observable from 'symbol-observable';\n\n// rxjs interopt\nexport class Observable extends LinkObservable {\n public [$$observable]() {\n return this;\n }\n\n public ['@@observable' as any]() {\n return this;\n }\n}\n","export function isNonEmptyArray(value?: ArrayLike): value is Array {\n return Array.isArray(value) && value.length > 0;\n}\n","import { GraphQLError } from 'graphql';\nimport { isNonEmptyArray } from '../util/arrays';\n\nexport function isApolloError(err: Error): err is ApolloError {\n return err.hasOwnProperty('graphQLErrors');\n}\n\n// Sets the error message on this error according to the\n// the GraphQL and network errors that are present.\n// If the error message has already been set through the\n// constructor or otherwise, this function is a nop.\nconst generateErrorMessage = (err: ApolloError) => {\n let message = '';\n // If we have GraphQL errors present, add that to the error message.\n if (isNonEmptyArray(err.graphQLErrors)) {\n err.graphQLErrors.forEach((graphQLError: GraphQLError) => {\n const errorMessage = graphQLError\n ? graphQLError.message\n : 'Error message not found.';\n message += `GraphQL error: ${errorMessage}\\n`;\n });\n }\n\n if (err.networkError) {\n message += 'Network error: ' + err.networkError.message + '\\n';\n }\n\n // strip newline from the end of the message\n message = message.replace(/\\n$/, '');\n return message;\n};\n\nexport class ApolloError extends Error {\n public message: string;\n public graphQLErrors: ReadonlyArray;\n public networkError: Error | null;\n\n // An object that can be used to provide some additional information\n // about an error, e.g. specifying the type of error this is. Used\n // internally within Apollo Client.\n public extraInfo: any;\n\n // Constructs an instance of ApolloError given a GraphQLError\n // or a network error. Note that one of these has to be a valid\n // value or the constructed error will be meaningless.\n constructor({\n graphQLErrors,\n networkError,\n errorMessage,\n extraInfo,\n }: {\n graphQLErrors?: ReadonlyArray;\n networkError?: Error | null;\n errorMessage?: string;\n extraInfo?: any;\n }) {\n super(errorMessage);\n this.graphQLErrors = graphQLErrors || [];\n this.networkError = networkError || null;\n\n if (!errorMessage) {\n this.message = generateErrorMessage(this);\n } else {\n this.message = errorMessage;\n }\n\n this.extraInfo = extraInfo;\n\n // We're not using `Object.setPrototypeOf` here as it isn't fully\n // supported on Android (see issue #3236).\n (this as any).__proto__ = ApolloError.prototype;\n }\n}\n","import { FetchResult } from 'apollo-link';\nimport { DocumentNode, GraphQLError } from 'graphql';\n\nimport { QueryStoreValue } from '../data/queries';\nimport { NetworkStatus } from './networkStatus';\nimport { Resolver } from './LocalState';\n\nexport type QueryListener = (\n queryStoreValue: QueryStoreValue,\n newData?: any,\n forceResolvers?: boolean,\n) => void;\n\nexport type OperationVariables = { [key: string]: any };\n\nexport type PureQueryOptions = {\n query: DocumentNode;\n variables?: { [key: string]: any };\n context?: any;\n};\n\nexport type ApolloQueryResult = {\n data: T;\n errors?: ReadonlyArray;\n loading: boolean;\n networkStatus: NetworkStatus;\n stale: boolean;\n};\n\nexport enum FetchType {\n normal = 1,\n refetch = 2,\n poll = 3,\n}\n\n// This is part of the public API, people write these functions in `updateQueries`.\nexport type MutationQueryReducer = (\n previousResult: Record,\n options: {\n mutationResult: FetchResult;\n queryName: string | undefined;\n queryVariables: Record;\n },\n) => Record;\n\nexport type MutationQueryReducersMap = {\n [queryName: string]: MutationQueryReducer;\n};\n\nexport interface Resolvers {\n [key: string]: {\n [ field: string ]: Resolver;\n };\n}\n","import {\n isEqual,\n tryFunctionOrLogError,\n cloneDeep,\n getOperationDefinition,\n} from 'apollo-utilities';\nimport { GraphQLError } from 'graphql';\nimport { NetworkStatus, isNetworkRequestInFlight } from './networkStatus';\nimport { Observable, Observer, Subscription } from '../util/Observable';\nimport { ApolloError } from '../errors/ApolloError';\nimport { QueryManager } from './QueryManager';\nimport { ApolloQueryResult, FetchType, OperationVariables } from './types';\nimport {\n WatchQueryOptions,\n FetchMoreQueryOptions,\n SubscribeToMoreOptions,\n ErrorPolicy,\n} from './watchQueryOptions';\n\nimport { QueryStoreValue } from '../data/queries';\n\nimport { invariant, InvariantError } from 'ts-invariant';\nimport { isNonEmptyArray } from '../util/arrays';\n\n// XXX remove in the next breaking semver change (3.0)\n// Deprecated, use ApolloCurrentQueryResult\nexport type ApolloCurrentResult = {\n data: T | {};\n errors?: ReadonlyArray;\n loading: boolean;\n networkStatus: NetworkStatus;\n error?: ApolloError;\n partial?: boolean;\n};\n\nexport type ApolloCurrentQueryResult = {\n data: T | undefined;\n errors?: ReadonlyArray;\n loading: boolean;\n networkStatus: NetworkStatus;\n error?: ApolloError;\n partial?: boolean;\n stale?: boolean;\n};\n\nexport interface FetchMoreOptions<\n TData = any,\n TVariables = OperationVariables\n> {\n updateQuery: (\n previousQueryResult: TData,\n options: {\n fetchMoreResult?: TData;\n variables?: TVariables;\n },\n ) => TData;\n}\n\nexport interface UpdateQueryOptions {\n variables?: TVariables;\n}\n\nexport const hasError = (\n storeValue: QueryStoreValue,\n policy: ErrorPolicy = 'none',\n) => storeValue && (\n storeValue.networkError ||\n (policy === 'none' && isNonEmptyArray(storeValue.graphQLErrors))\n);\n\nexport class ObservableQuery<\n TData = any,\n TVariables = OperationVariables\n> extends Observable> {\n public options: WatchQueryOptions;\n public readonly queryId: string;\n public readonly queryName?: string;\n /**\n *\n * The current value of the variables for this query. Can change.\n */\n public variables: TVariables;\n\n private shouldSubscribe: boolean;\n private isTornDown: boolean;\n private queryManager: QueryManager;\n private observers = new Set>>();\n private subscriptions = new Set();\n\n private lastResult: ApolloQueryResult;\n private lastResultSnapshot: ApolloQueryResult;\n private lastError: ApolloError;\n\n constructor({\n queryManager,\n options,\n shouldSubscribe = true,\n }: {\n queryManager: QueryManager;\n options: WatchQueryOptions;\n shouldSubscribe?: boolean;\n }) {\n super((observer: Observer>) =>\n this.onSubscribe(observer),\n );\n\n // active state\n this.isTornDown = false;\n\n // query information\n this.options = options;\n this.variables = options.variables || ({} as TVariables);\n this.queryId = queryManager.generateQueryId();\n this.shouldSubscribe = shouldSubscribe;\n\n const opDef = getOperationDefinition(options.query);\n this.queryName = opDef && opDef.name && opDef.name.value;\n\n // related classes\n this.queryManager = queryManager;\n }\n\n public result(): Promise> {\n return new Promise((resolve, reject) => {\n const observer: Observer> = {\n next: (result: ApolloQueryResult) => {\n resolve(result);\n\n // Stop the query within the QueryManager if we can before\n // this function returns.\n //\n // We do this in order to prevent observers piling up within\n // the QueryManager. Notice that we only fully unsubscribe\n // from the subscription in a setTimeout(..., 0) call. This call can\n // actually be handled by the browser at a much later time. If queries\n // are fired in the meantime, observers that should have been removed\n // from the QueryManager will continue to fire, causing an unnecessary\n // performance hit.\n this.observers.delete(observer);\n if (!this.observers.size) {\n this.queryManager.removeQuery(this.queryId);\n }\n\n setTimeout(() => {\n subscription.unsubscribe();\n }, 0);\n },\n error: reject,\n };\n const subscription = this.subscribe(observer);\n });\n }\n\n // XXX remove in the next breaking semver change (3.0)\n // Deprecated, use getCurrentResult()\n public currentResult(): ApolloCurrentResult {\n const result = this.getCurrentResult() as ApolloCurrentResult;\n if (result.data === undefined) {\n result.data = {};\n }\n return result;\n }\n\n /**\n * Return the result of the query from the local cache as well as some fetching status\n * `loading` and `networkStatus` allow to know if a request is in flight\n * `partial` lets you know if the result from the local cache is complete or partial\n * @return {data: Object, error: ApolloError, loading: boolean, networkStatus: number, partial: boolean}\n */\n public getCurrentResult(): ApolloCurrentQueryResult {\n if (this.isTornDown) {\n const { lastResult } = this;\n return {\n data: !this.lastError && lastResult && lastResult.data || void 0,\n error: this.lastError,\n loading: false,\n networkStatus: NetworkStatus.error,\n };\n }\n\n const { data, partial } = this.queryManager.getCurrentQueryResult(this);\n const queryStoreValue = this.queryManager.queryStore.get(this.queryId);\n let result: ApolloQueryResult;\n\n const { fetchPolicy } = this.options;\n\n const isNetworkFetchPolicy =\n fetchPolicy === 'network-only' ||\n fetchPolicy === 'no-cache';\n\n if (queryStoreValue) {\n const { networkStatus } = queryStoreValue;\n\n if (hasError(queryStoreValue, this.options.errorPolicy)) {\n return {\n data: void 0,\n loading: false,\n networkStatus,\n error: new ApolloError({\n graphQLErrors: queryStoreValue.graphQLErrors,\n networkError: queryStoreValue.networkError,\n }),\n };\n }\n\n // Variables might have been added dynamically at query time, when\n // using `@client @export(as: \"varname\")` for example. When this happens,\n // the variables have been updated in the query store, but not updated on\n // the original `ObservableQuery`. We'll update the observable query\n // variables here to match, so retrieving from the cache doesn't fail.\n if (queryStoreValue.variables) {\n this.options.variables = {\n ...this.options.variables,\n ...(queryStoreValue.variables as TVariables),\n };\n this.variables = this.options.variables;\n }\n\n result = {\n data,\n loading: isNetworkRequestInFlight(networkStatus),\n networkStatus,\n } as ApolloQueryResult;\n\n if (queryStoreValue.graphQLErrors && this.options.errorPolicy === 'all') {\n result.errors = queryStoreValue.graphQLErrors;\n }\n\n } else {\n // We need to be careful about the loading state we show to the user, to try\n // and be vaguely in line with what the user would have seen from .subscribe()\n // but to still provide useful information synchronously when the query\n // will not end up hitting the server.\n // See more: https://github.com/apollostack/apollo-client/issues/707\n // Basically: is there a query in flight right now (modolo the next tick)?\n const loading = isNetworkFetchPolicy ||\n (partial && fetchPolicy !== 'cache-only');\n\n result = {\n data,\n loading,\n networkStatus: loading ? NetworkStatus.loading : NetworkStatus.ready,\n } as ApolloQueryResult;\n }\n\n if (!partial) {\n this.updateLastResult({ ...result, stale: false });\n }\n\n return { ...result, partial };\n }\n\n // Compares newResult to the snapshot we took of this.lastResult when it was\n // first received.\n public isDifferentFromLastResult(newResult: ApolloQueryResult) {\n const { lastResultSnapshot: snapshot } = this;\n return !(\n snapshot &&\n newResult &&\n snapshot.networkStatus === newResult.networkStatus &&\n snapshot.stale === newResult.stale &&\n isEqual(snapshot.data, newResult.data)\n );\n }\n\n // Returns the last result that observer.next was called with. This is not the same as\n // getCurrentResult! If you're not sure which you need, then you probably need getCurrentResult.\n public getLastResult(): ApolloQueryResult {\n return this.lastResult;\n }\n\n public getLastError(): ApolloError {\n return this.lastError;\n }\n\n public resetLastResults(): void {\n delete this.lastResult;\n delete this.lastResultSnapshot;\n delete this.lastError;\n this.isTornDown = false;\n }\n\n public resetQueryStoreErrors() {\n const queryStore = this.queryManager.queryStore.get(this.queryId);\n if (queryStore) {\n queryStore.networkError = null;\n queryStore.graphQLErrors = [];\n }\n }\n\n /**\n * Update the variables of this observable query, and fetch the new results.\n * This method should be preferred over `setVariables` in most use cases.\n *\n * @param variables: The new set of variables. If there are missing variables,\n * the previous values of those variables will be used.\n */\n public refetch(variables?: TVariables): Promise> {\n let { fetchPolicy } = this.options;\n // early return if trying to read from cache during refetch\n if (fetchPolicy === 'cache-only') {\n return Promise.reject(new InvariantError(\n 'cache-only fetchPolicy option should not be used together with query refetch.',\n ));\n }\n\n // Unless the provided fetchPolicy always consults the network\n // (no-cache, network-only, or cache-and-network), override it with\n // network-only to force the refetch for this fetchQuery call.\n if (fetchPolicy !== 'no-cache' &&\n fetchPolicy !== 'cache-and-network') {\n fetchPolicy = 'network-only';\n }\n\n if (!isEqual(this.variables, variables)) {\n // update observable variables\n this.variables = {\n ...this.variables,\n ...variables,\n };\n }\n\n if (!isEqual(this.options.variables, this.variables)) {\n // Update the existing options with new variables\n this.options.variables = {\n ...this.options.variables,\n ...this.variables,\n };\n }\n\n return this.queryManager.fetchQuery(\n this.queryId,\n { ...this.options, fetchPolicy },\n FetchType.refetch,\n ) as Promise>;\n }\n\n public fetchMore(\n fetchMoreOptions: FetchMoreQueryOptions &\n FetchMoreOptions,\n ): Promise> {\n // early return if no update Query\n invariant(\n fetchMoreOptions.updateQuery,\n 'updateQuery option is required. This function defines how to update the query data with the new results.',\n );\n\n const combinedOptions = {\n ...(fetchMoreOptions.query ? fetchMoreOptions : {\n ...this.options,\n ...fetchMoreOptions,\n variables: {\n ...this.variables,\n ...fetchMoreOptions.variables,\n },\n }),\n fetchPolicy: 'network-only',\n } as WatchQueryOptions;\n\n const qid = this.queryManager.generateQueryId();\n\n return this.queryManager\n .fetchQuery(\n qid,\n combinedOptions,\n FetchType.normal,\n this.queryId,\n )\n .then(\n fetchMoreResult => {\n this.updateQuery((previousResult: any) =>\n fetchMoreOptions.updateQuery(previousResult, {\n fetchMoreResult: fetchMoreResult.data as TData,\n variables: combinedOptions.variables as TVariables,\n }),\n );\n this.queryManager.stopQuery(qid);\n return fetchMoreResult as ApolloQueryResult;\n },\n error => {\n this.queryManager.stopQuery(qid);\n throw error;\n },\n );\n }\n\n // XXX the subscription variables are separate from the query variables.\n // if you want to update subscription variables, right now you have to do that separately,\n // and you can only do it by stopping the subscription and then subscribing again with new variables.\n public subscribeToMore<\n TSubscriptionData = TData,\n TSubscriptionVariables = TVariables\n >(\n options: SubscribeToMoreOptions<\n TData,\n TSubscriptionVariables,\n TSubscriptionData\n >,\n ) {\n const subscription = this.queryManager\n .startGraphQLSubscription({\n query: options.document,\n variables: options.variables,\n })\n .subscribe({\n next: (subscriptionData: { data: TSubscriptionData }) => {\n const { updateQuery } = options;\n if (updateQuery) {\n this.updateQuery(\n (previous, { variables }) =>\n updateQuery(previous, {\n subscriptionData,\n variables,\n }),\n );\n }\n },\n error: (err: any) => {\n if (options.onError) {\n options.onError(err);\n return;\n }\n invariant.error('Unhandled GraphQL subscription error', err);\n },\n });\n\n this.subscriptions.add(subscription);\n\n return () => {\n if (this.subscriptions.delete(subscription)) {\n subscription.unsubscribe();\n }\n };\n }\n\n // Note: if the query is not active (there are no subscribers), the promise\n // will return null immediately.\n public setOptions(\n opts: WatchQueryOptions,\n ): Promise | void> {\n const { fetchPolicy: oldFetchPolicy } = this.options;\n this.options = {\n ...this.options,\n ...opts,\n } as WatchQueryOptions;\n\n if (opts.pollInterval) {\n this.startPolling(opts.pollInterval);\n } else if (opts.pollInterval === 0) {\n this.stopPolling();\n }\n\n const { fetchPolicy } = opts;\n\n return this.setVariables(\n this.options.variables as TVariables,\n // Try to fetch the query if fetchPolicy changed from either cache-only\n // or standby to something else, or changed to network-only.\n oldFetchPolicy !== fetchPolicy && (\n oldFetchPolicy === 'cache-only' ||\n oldFetchPolicy === 'standby' ||\n fetchPolicy === 'network-only'\n ),\n opts.fetchResults,\n );\n }\n\n /**\n * This is for *internal* use only. Most users should instead use `refetch`\n * in order to be properly notified of results even when they come from cache.\n *\n * Update the variables of this observable query, and fetch the new results\n * if they've changed. If you want to force new results, use `refetch`.\n *\n * Note: the `next` callback will *not* fire if the variables have not changed\n * or if the result is coming from cache.\n *\n * Note: the promise will return the old results immediately if the variables\n * have not changed.\n *\n * Note: the promise will return null immediately if the query is not active\n * (there are no subscribers).\n *\n * @private\n *\n * @param variables: The new set of variables. If there are missing variables,\n * the previous values of those variables will be used.\n *\n * @param tryFetch: Try and fetch new results even if the variables haven't\n * changed (we may still just hit the store, but if there's nothing in there\n * this will refetch)\n *\n * @param fetchResults: Option to ignore fetching results when updating variables\n */\n public setVariables(\n variables: TVariables,\n tryFetch: boolean = false,\n fetchResults = true,\n ): Promise | void> {\n // since setVariables restarts the subscription, we reset the tornDown status\n this.isTornDown = false;\n\n variables = variables || this.variables;\n\n if (!tryFetch && isEqual(variables, this.variables)) {\n // If we have no observers, then we don't actually want to make a network\n // request. As soon as someone observes the query, the request will kick\n // off. For now, we just store any changes. (See #1077)\n return this.observers.size && fetchResults\n ? this.result()\n : Promise.resolve();\n }\n\n this.variables = this.options.variables = variables;\n\n // See comment above\n if (!this.observers.size) {\n return Promise.resolve();\n }\n\n // Use the same options as before, but with new variables\n return this.queryManager.fetchQuery(\n this.queryId,\n this.options,\n ) as Promise>;\n }\n\n public updateQuery(\n mapFn: (\n previousQueryResult: TData,\n options: UpdateQueryOptions,\n ) => TData,\n ): void {\n const { queryManager } = this;\n const {\n previousResult,\n variables,\n document,\n } = queryManager.getQueryWithPreviousResult(\n this.queryId,\n );\n\n const newResult = tryFunctionOrLogError(() =>\n mapFn(previousResult, { variables }),\n );\n\n if (newResult) {\n queryManager.dataStore.markUpdateQueryResult(\n document,\n variables,\n newResult,\n );\n queryManager.broadcastQueries();\n }\n }\n\n public stopPolling() {\n this.queryManager.stopPollingQuery(this.queryId);\n this.options.pollInterval = undefined;\n }\n\n public startPolling(pollInterval: number) {\n assertNotCacheFirstOrOnly(this);\n this.options.pollInterval = pollInterval;\n this.queryManager.startPollingQuery(this.options, this.queryId);\n }\n\n private updateLastResult(newResult: ApolloQueryResult) {\n const previousResult = this.lastResult;\n this.lastResult = newResult;\n this.lastResultSnapshot = this.queryManager.assumeImmutableResults\n ? newResult\n : cloneDeep(newResult);\n return previousResult;\n }\n\n private onSubscribe(observer: Observer>) {\n // Zen Observable has its own error function, so in order to log correctly\n // we need to provide a custom error callback.\n try {\n var subObserver = (observer as any)._subscription._observer;\n if (subObserver && !subObserver.error) {\n subObserver.error = defaultSubscriptionObserverErrorCallback;\n }\n } catch {}\n\n const first = !this.observers.size;\n this.observers.add(observer);\n\n // Deliver initial result\n if (observer.next && this.lastResult) observer.next(this.lastResult);\n if (observer.error && this.lastError) observer.error(this.lastError);\n\n // setup the query if it hasn't been done before\n if (first) {\n this.setUpQuery();\n }\n\n return () => {\n if (this.observers.delete(observer) && !this.observers.size) {\n this.tearDownQuery();\n }\n };\n }\n\n private setUpQuery() {\n const { queryManager, queryId } = this;\n\n if (this.shouldSubscribe) {\n queryManager.addObservableQuery(queryId, this);\n }\n\n if (this.options.pollInterval) {\n assertNotCacheFirstOrOnly(this);\n queryManager.startPollingQuery(this.options, queryId);\n }\n\n const onError = (error: ApolloError) => {\n // Since we don't get the current result on errors, only the error, we\n // must mirror the updates that occur in QueryStore.markQueryError here\n this.updateLastResult({\n ...this.lastResult,\n errors: error.graphQLErrors,\n networkStatus: NetworkStatus.error,\n loading: false,\n });\n iterateObserversSafely(this.observers, 'error', this.lastError = error);\n };\n\n queryManager.observeQuery(queryId, this.options, {\n next: (result: ApolloQueryResult) => {\n if (this.lastError || this.isDifferentFromLastResult(result)) {\n const previousResult = this.updateLastResult(result);\n const { query, variables, fetchPolicy } = this.options;\n\n // Before calling `next` on each observer, we need to first see if\n // the query is using `@client @export` directives, and update\n // any variables that might have changed. If `@export` variables have\n // changed, and the query is calling against both local and remote\n // data, a refetch is needed to pull in new data, using the\n // updated `@export` variables.\n if (queryManager.transform(query).hasClientExports) {\n queryManager.getLocalState().addExportedVariables(\n query,\n variables,\n ).then((variables: TVariables) => {\n const previousVariables = this.variables;\n this.variables = this.options.variables = variables;\n if (\n !result.loading &&\n previousResult &&\n fetchPolicy !== 'cache-only' &&\n queryManager.transform(query).serverQuery &&\n !isEqual(previousVariables, variables)\n ) {\n this.refetch();\n } else {\n iterateObserversSafely(this.observers, 'next', result);\n }\n });\n } else {\n iterateObserversSafely(this.observers, 'next', result);\n }\n }\n },\n error: onError,\n }).catch(onError);\n }\n\n private tearDownQuery() {\n const { queryManager } = this;\n\n this.isTornDown = true;\n queryManager.stopPollingQuery(this.queryId);\n\n // stop all active GraphQL subscriptions\n this.subscriptions.forEach(sub => sub.unsubscribe());\n this.subscriptions.clear();\n\n queryManager.removeObservableQuery(this.queryId);\n queryManager.stopQuery(this.queryId);\n\n this.observers.clear();\n }\n}\n\nfunction defaultSubscriptionObserverErrorCallback(error: ApolloError) {\n invariant.error('Unhandled error', error.message, error.stack);\n}\n\nfunction iterateObserversSafely(\n observers: Set>,\n method: keyof Observer,\n argument?: A,\n) {\n // In case observers is modified during iteration, we need to commit to the\n // original elements, which also provides an opportunity to filter them down\n // to just the observers with the given method.\n const observersWithMethod: Observer[] = [];\n observers.forEach(obs => obs[method] && observersWithMethod.push(obs));\n observersWithMethod.forEach(obs => (obs as any)[method](argument));\n}\n\nfunction assertNotCacheFirstOrOnly(\n obsQuery: ObservableQuery,\n) {\n const { fetchPolicy } = obsQuery.options;\n invariant(\n fetchPolicy !== 'cache-first' && fetchPolicy !== 'cache-only',\n 'Queries that specify the cache-first and cache-only fetchPolicies cannot also be polling queries.',\n );\n}\n","import { DocumentNode } from 'graphql';\n\nexport class MutationStore {\n private store: { [mutationId: string]: MutationStoreValue } = {};\n\n public getStore(): { [mutationId: string]: MutationStoreValue } {\n return this.store;\n }\n\n public get(mutationId: string): MutationStoreValue {\n return this.store[mutationId];\n }\n\n public initMutation(\n mutationId: string,\n mutation: DocumentNode,\n variables: Object | undefined,\n ) {\n this.store[mutationId] = {\n mutation,\n variables: variables || {},\n loading: true,\n error: null,\n };\n }\n\n public markMutationError(mutationId: string, error: Error) {\n const mutation = this.store[mutationId];\n if (mutation) {\n mutation.loading = false;\n mutation.error = error;\n }\n }\n\n public markMutationResult(mutationId: string) {\n const mutation = this.store[mutationId];\n if (mutation) {\n mutation.loading = false;\n mutation.error = null;\n }\n }\n\n public reset() {\n this.store = {};\n }\n}\n\nexport interface MutationStoreValue {\n mutation: DocumentNode;\n variables: Object;\n loading: boolean;\n error: Error | null;\n}\n","import { DocumentNode, GraphQLError, ExecutionResult } from 'graphql';\nimport { isEqual } from 'apollo-utilities';\nimport { invariant } from 'ts-invariant';\nimport { NetworkStatus } from '../core/networkStatus';\nimport { isNonEmptyArray } from '../util/arrays';\n\nexport type QueryStoreValue = {\n document: DocumentNode;\n variables: Object;\n previousVariables?: Object | null;\n networkStatus: NetworkStatus;\n networkError?: Error | null;\n graphQLErrors?: ReadonlyArray;\n metadata: any;\n};\n\nexport class QueryStore {\n private store: { [queryId: string]: QueryStoreValue } = {};\n\n public getStore(): { [queryId: string]: QueryStoreValue } {\n return this.store;\n }\n\n public get(queryId: string): QueryStoreValue {\n return this.store[queryId];\n }\n\n public initQuery(query: {\n queryId: string;\n document: DocumentNode;\n storePreviousVariables: boolean;\n variables: Object;\n isPoll: boolean;\n isRefetch: boolean;\n metadata: any;\n fetchMoreForQueryId: string | undefined;\n }) {\n const previousQuery = this.store[query.queryId];\n\n // XXX we're throwing an error here to catch bugs where a query gets overwritten by a new one.\n // we should implement a separate action for refetching so that QUERY_INIT may never overwrite\n // an existing query (see also: https://github.com/apollostack/apollo-client/issues/732)\n invariant(\n !previousQuery ||\n previousQuery.document === query.document ||\n isEqual(previousQuery.document, query.document),\n 'Internal Error: may not update existing query string in store',\n );\n\n let isSetVariables = false;\n\n let previousVariables: Object | null = null;\n if (\n query.storePreviousVariables &&\n previousQuery &&\n previousQuery.networkStatus !== NetworkStatus.loading\n // if the previous query was still loading, we don't want to remember it at all.\n ) {\n if (!isEqual(previousQuery.variables, query.variables)) {\n isSetVariables = true;\n previousVariables = previousQuery.variables;\n }\n }\n\n // TODO break this out into a separate function\n let networkStatus;\n if (isSetVariables) {\n networkStatus = NetworkStatus.setVariables;\n } else if (query.isPoll) {\n networkStatus = NetworkStatus.poll;\n } else if (query.isRefetch) {\n networkStatus = NetworkStatus.refetch;\n // TODO: can we determine setVariables here if it's a refetch and the variables have changed?\n } else {\n networkStatus = NetworkStatus.loading;\n }\n\n let graphQLErrors: ReadonlyArray = [];\n if (previousQuery && previousQuery.graphQLErrors) {\n graphQLErrors = previousQuery.graphQLErrors;\n }\n\n // XXX right now if QUERY_INIT is fired twice, like in a refetch situation, we just overwrite\n // the store. We probably want a refetch action instead, because I suspect that if you refetch\n // before the initial fetch is done, you'll get an error.\n this.store[query.queryId] = {\n document: query.document,\n variables: query.variables,\n previousVariables,\n networkError: null,\n graphQLErrors: graphQLErrors,\n networkStatus,\n metadata: query.metadata,\n };\n\n // If the action had a `moreForQueryId` property then we need to set the\n // network status on that query as well to `fetchMore`.\n //\n // We have a complement to this if statement in the query result and query\n // error action branch, but importantly *not* in the client result branch.\n // This is because the implementation of `fetchMore` *always* sets\n // `fetchPolicy` to `network-only` so we would never have a client result.\n if (\n typeof query.fetchMoreForQueryId === 'string' &&\n this.store[query.fetchMoreForQueryId]\n ) {\n this.store[query.fetchMoreForQueryId].networkStatus =\n NetworkStatus.fetchMore;\n }\n }\n\n public markQueryResult(\n queryId: string,\n result: ExecutionResult,\n fetchMoreForQueryId: string | undefined,\n ) {\n if (!this.store || !this.store[queryId]) return;\n\n this.store[queryId].networkError = null;\n this.store[queryId].graphQLErrors = isNonEmptyArray(result.errors) ? result.errors : [];\n this.store[queryId].previousVariables = null;\n this.store[queryId].networkStatus = NetworkStatus.ready;\n\n // If we have a `fetchMoreForQueryId` then we need to update the network\n // status for that query. See the branch for query initialization for more\n // explanation about this process.\n if (\n typeof fetchMoreForQueryId === 'string' &&\n this.store[fetchMoreForQueryId]\n ) {\n this.store[fetchMoreForQueryId].networkStatus = NetworkStatus.ready;\n }\n }\n\n public markQueryError(\n queryId: string,\n error: Error,\n fetchMoreForQueryId: string | undefined,\n ) {\n if (!this.store || !this.store[queryId]) return;\n\n this.store[queryId].networkError = error;\n this.store[queryId].networkStatus = NetworkStatus.error;\n\n // If we have a `fetchMoreForQueryId` then we need to update the network\n // status for that query. See the branch for query initialization for more\n // explanation about this process.\n if (typeof fetchMoreForQueryId === 'string') {\n this.markQueryResultClient(fetchMoreForQueryId, true);\n }\n }\n\n public markQueryResultClient(queryId: string, complete: boolean) {\n const storeValue = this.store && this.store[queryId];\n if (storeValue) {\n storeValue.networkError = null;\n storeValue.previousVariables = null;\n if (complete) {\n storeValue.networkStatus = NetworkStatus.ready;\n }\n }\n }\n\n public stopQuery(queryId: string) {\n delete this.store[queryId];\n }\n\n public reset(observableQueryIds: string[]) {\n Object.keys(this.store).forEach(queryId => {\n if (observableQueryIds.indexOf(queryId) < 0) {\n this.stopQuery(queryId);\n } else {\n // XXX set loading to true so listeners don't trigger unless they want results with partial data\n this.store[queryId].networkStatus = NetworkStatus.loading;\n }\n });\n }\n}\n","import {\n DocumentNode,\n OperationDefinitionNode,\n SelectionSetNode,\n SelectionNode,\n InlineFragmentNode,\n FragmentDefinitionNode,\n FieldNode,\n ASTNode,\n} from 'graphql';\nimport { visit, BREAK } from 'graphql/language/visitor';\n\nimport { ApolloCache } from 'apollo-cache';\nimport {\n getMainDefinition,\n buildQueryFromSelectionSet,\n hasDirectives,\n removeClientSetsFromDocument,\n mergeDeep,\n mergeDeepArray,\n FragmentMap,\n argumentsObjectFromField,\n resultKeyNameFromField,\n getFragmentDefinitions,\n createFragmentMap,\n shouldInclude,\n isField,\n isInlineFragment,\n} from 'apollo-utilities';\nimport { FetchResult } from 'apollo-link';\n\nimport { invariant } from 'ts-invariant';\n\nimport ApolloClient from '../ApolloClient';\nimport { Resolvers, OperationVariables } from './types';\nimport { capitalizeFirstLetter } from '../util/capitalizeFirstLetter';\n\nexport type Resolver = (\n rootValue?: any,\n args?: any,\n context?: any,\n info?: {\n field: FieldNode;\n fragmentMap: FragmentMap;\n },\n) => any;\n\nexport type VariableMap = { [name: string]: any };\n\nexport type FragmentMatcher = (\n rootValue: any,\n typeCondition: string,\n context: any,\n) => boolean;\n\nexport type ExecContext = {\n fragmentMap: FragmentMap;\n context: any;\n variables: VariableMap;\n fragmentMatcher: FragmentMatcher;\n defaultOperationType: string;\n exportedVariables: Record;\n onlyRunForcedResolvers: boolean;\n};\n\nexport type LocalStateOptions = {\n cache: ApolloCache;\n client?: ApolloClient;\n resolvers?: Resolvers | Resolvers[];\n fragmentMatcher?: FragmentMatcher;\n};\n\nexport class LocalState {\n private cache: ApolloCache;\n private client: ApolloClient;\n private resolvers?: Resolvers;\n private fragmentMatcher: FragmentMatcher;\n\n constructor({\n cache,\n client,\n resolvers,\n fragmentMatcher,\n }: LocalStateOptions) {\n this.cache = cache;\n\n if (client) {\n this.client = client;\n }\n\n if (resolvers) {\n this.addResolvers(resolvers);\n }\n\n if (fragmentMatcher) {\n this.setFragmentMatcher(fragmentMatcher);\n }\n }\n\n public addResolvers(resolvers: Resolvers | Resolvers[]) {\n this.resolvers = this.resolvers || {};\n if (Array.isArray(resolvers)) {\n resolvers.forEach(resolverGroup => {\n this.resolvers = mergeDeep(this.resolvers, resolverGroup);\n });\n } else {\n this.resolvers = mergeDeep(this.resolvers, resolvers);\n }\n }\n\n public setResolvers(resolvers: Resolvers | Resolvers[]) {\n this.resolvers = {};\n this.addResolvers(resolvers);\n }\n\n public getResolvers() {\n return this.resolvers || {};\n }\n\n // Run local client resolvers against the incoming query and remote data.\n // Locally resolved field values are merged with the incoming remote data,\n // and returned. Note that locally resolved fields will overwrite\n // remote data using the same field name.\n public async runResolvers({\n document,\n remoteResult,\n context,\n variables,\n onlyRunForcedResolvers = false,\n }: {\n document: DocumentNode | null;\n remoteResult: FetchResult;\n context?: Record;\n variables?: Record;\n onlyRunForcedResolvers?: boolean;\n }): Promise> {\n if (document) {\n return this.resolveDocument(\n document,\n remoteResult.data,\n context,\n variables,\n this.fragmentMatcher,\n onlyRunForcedResolvers,\n ).then(localResult => ({\n ...remoteResult,\n data: localResult.result,\n }));\n }\n\n return remoteResult;\n }\n\n public setFragmentMatcher(fragmentMatcher: FragmentMatcher) {\n this.fragmentMatcher = fragmentMatcher;\n }\n\n public getFragmentMatcher(): FragmentMatcher {\n return this.fragmentMatcher;\n }\n\n // Client queries contain everything in the incoming document (if a @client\n // directive is found).\n public clientQuery(document: DocumentNode) {\n if (hasDirectives(['client'], document)) {\n if (this.resolvers) {\n return document;\n }\n invariant.warn(\n 'Found @client directives in a query but no ApolloClient resolvers ' +\n 'were specified. This means ApolloClient local resolver handling ' +\n 'has been disabled, and @client directives will be passed through ' +\n 'to your link chain.',\n );\n }\n return null;\n }\n\n // Server queries are stripped of all @client based selection sets.\n public serverQuery(document: DocumentNode) {\n return this.resolvers ? removeClientSetsFromDocument(document) : document;\n }\n\n public prepareContext(context = {}) {\n const { cache } = this;\n\n const newContext = {\n ...context,\n cache,\n // Getting an entry's cache key is useful for local state resolvers.\n getCacheKey: (obj: { __typename: string; id: string | number }) => {\n if ((cache as any).config) {\n return (cache as any).config.dataIdFromObject(obj);\n } else {\n invariant(false,\n 'To use context.getCacheKey, you need to use a cache that has ' +\n 'a configurable dataIdFromObject, like apollo-cache-inmemory.',\n );\n }\n },\n };\n\n return newContext;\n }\n\n // To support `@client @export(as: \"someVar\")` syntax, we'll first resolve\n // @client @export fields locally, then pass the resolved values back to be\n // used alongside the original operation variables.\n public async addExportedVariables(\n document: DocumentNode,\n variables: OperationVariables = {},\n context = {},\n ) {\n if (document) {\n return this.resolveDocument(\n document,\n this.buildRootValueFromCache(document, variables) || {},\n this.prepareContext(context),\n variables,\n ).then(data => ({\n ...variables,\n ...data.exportedVariables,\n }));\n }\n\n return {\n ...variables,\n };\n }\n\n public shouldForceResolvers(document: ASTNode) {\n let forceResolvers = false;\n visit(document, {\n Directive: {\n enter(node) {\n if (node.name.value === 'client' && node.arguments) {\n forceResolvers = node.arguments.some(\n arg =>\n arg.name.value === 'always' &&\n arg.value.kind === 'BooleanValue' &&\n arg.value.value === true,\n );\n if (forceResolvers) {\n return BREAK;\n }\n }\n },\n },\n });\n return forceResolvers;\n }\n\n // Query the cache and return matching data.\n private buildRootValueFromCache(\n document: DocumentNode,\n variables?: Record,\n ) {\n return this.cache.diff({\n query: buildQueryFromSelectionSet(document),\n variables,\n returnPartialData: true,\n optimistic: false,\n }).result;\n }\n\n private async resolveDocument(\n document: DocumentNode,\n rootValue: TData,\n context: any = {},\n variables: VariableMap = {},\n fragmentMatcher: FragmentMatcher = () => true,\n onlyRunForcedResolvers: boolean = false,\n ) {\n const mainDefinition = getMainDefinition(document);\n const fragments = getFragmentDefinitions(document);\n const fragmentMap = createFragmentMap(fragments);\n\n const definitionOperation = (mainDefinition as OperationDefinitionNode)\n .operation;\n\n const defaultOperationType = definitionOperation\n ? capitalizeFirstLetter(definitionOperation)\n : 'Query';\n\n const { cache, client } = this;\n const execContext: ExecContext = {\n fragmentMap,\n context: {\n ...context,\n cache,\n client,\n },\n variables,\n fragmentMatcher,\n defaultOperationType,\n exportedVariables: {},\n onlyRunForcedResolvers,\n };\n\n return this.resolveSelectionSet(\n mainDefinition.selectionSet,\n rootValue,\n execContext,\n ).then(result => ({\n result,\n exportedVariables: execContext.exportedVariables,\n }));\n }\n\n private async resolveSelectionSet(\n selectionSet: SelectionSetNode,\n rootValue: TData,\n execContext: ExecContext,\n ) {\n const { fragmentMap, context, variables } = execContext;\n const resultsToMerge: TData[] = [rootValue];\n\n const execute = async (selection: SelectionNode): Promise => {\n if (!shouldInclude(selection, variables)) {\n // Skip this entirely.\n return;\n }\n\n if (isField(selection)) {\n return this.resolveField(selection, rootValue, execContext).then(\n fieldResult => {\n if (typeof fieldResult !== 'undefined') {\n resultsToMerge.push({\n [resultKeyNameFromField(selection)]: fieldResult,\n } as TData);\n }\n },\n );\n }\n\n let fragment: InlineFragmentNode | FragmentDefinitionNode;\n\n if (isInlineFragment(selection)) {\n fragment = selection;\n } else {\n // This is a named fragment.\n fragment = fragmentMap[selection.name.value];\n invariant(fragment, `No fragment named ${selection.name.value}`);\n }\n\n if (fragment && fragment.typeCondition) {\n const typeCondition = fragment.typeCondition.name.value;\n if (execContext.fragmentMatcher(rootValue, typeCondition, context)) {\n return this.resolveSelectionSet(\n fragment.selectionSet,\n rootValue,\n execContext,\n ).then(fragmentResult => {\n resultsToMerge.push(fragmentResult);\n });\n }\n }\n };\n\n return Promise.all(selectionSet.selections.map(execute)).then(function() {\n return mergeDeepArray(resultsToMerge);\n });\n }\n\n private async resolveField(\n field: FieldNode,\n rootValue: any,\n execContext: ExecContext,\n ): Promise {\n const { variables } = execContext;\n const fieldName = field.name.value;\n const aliasedFieldName = resultKeyNameFromField(field);\n const aliasUsed = fieldName !== aliasedFieldName;\n const defaultResult = rootValue[aliasedFieldName] || rootValue[fieldName];\n let resultPromise = Promise.resolve(defaultResult);\n\n // Usually all local resolvers are run when passing through here, but\n // if we've specifically identified that we only want to run forced\n // resolvers (that is, resolvers for fields marked with\n // `@client(always: true)`), then we'll skip running non-forced resolvers.\n if (\n !execContext.onlyRunForcedResolvers ||\n this.shouldForceResolvers(field)\n ) {\n const resolverType =\n rootValue.__typename || execContext.defaultOperationType;\n const resolverMap = this.resolvers && this.resolvers[resolverType];\n if (resolverMap) {\n const resolve = resolverMap[aliasUsed ? fieldName : aliasedFieldName];\n if (resolve) {\n resultPromise = Promise.resolve(resolve(\n rootValue,\n argumentsObjectFromField(field, variables),\n execContext.context,\n { field, fragmentMap: execContext.fragmentMap },\n ));\n }\n }\n }\n\n return resultPromise.then((result = defaultResult) => {\n // If an @export directive is associated with the current field, store\n // the `as` export variable name and current result for later use.\n if (field.directives) {\n field.directives.forEach(directive => {\n if (directive.name.value === 'export' && directive.arguments) {\n directive.arguments.forEach(arg => {\n if (arg.name.value === 'as' && arg.value.kind === 'StringValue') {\n execContext.exportedVariables[arg.value.value] = result;\n }\n });\n }\n });\n }\n\n // Handle all scalar types here.\n if (!field.selectionSet) {\n return result;\n }\n\n // From here down, the field has a selection set, which means it's trying\n // to query a GraphQLObjectType.\n if (result == null) {\n // Basically any field in a GraphQL response can be null, or missing\n return result;\n }\n\n if (Array.isArray(result)) {\n return this.resolveSubSelectedArray(field, result, execContext);\n }\n\n // Returned value is an object, and the query has a sub-selection. Recurse.\n if (field.selectionSet) {\n return this.resolveSelectionSet(\n field.selectionSet,\n result,\n execContext,\n );\n }\n });\n }\n\n private resolveSubSelectedArray(\n field: FieldNode,\n result: any[],\n execContext: ExecContext,\n ): any {\n return Promise.all(\n result.map(item => {\n if (item === null) {\n return null;\n }\n\n // This is a nested array, recurse.\n if (Array.isArray(item)) {\n return this.resolveSubSelectedArray(field, item, execContext);\n }\n\n // This is an object, run the selection set on it.\n if (field.selectionSet) {\n return this.resolveSelectionSet(field.selectionSet, item, execContext);\n }\n }),\n );\n }\n}\n","export function capitalizeFirstLetter(str: string) {\n return str.charAt(0).toUpperCase() + str.slice(1);\n}\n","import { Observable, Observer, Subscription } from './Observable';\n\n// Returns a normal Observable that can have any number of subscribers,\n// while ensuring the original Observable gets subscribed to at most once.\nexport function multiplex(inner: Observable): Observable {\n const observers = new Set>();\n let sub: Subscription | null = null;\n return new Observable(observer => {\n observers.add(observer);\n sub = sub || inner.subscribe({\n next(value) {\n observers.forEach(obs => obs.next && obs.next(value));\n },\n error(error) {\n observers.forEach(obs => obs.error && obs.error(error));\n },\n complete() {\n observers.forEach(obs => obs.complete && obs.complete());\n },\n });\n return () => {\n if (observers.delete(observer) && !observers.size && sub) {\n sub.unsubscribe();\n sub = null;\n }\n };\n });\n}\n\n// Like Observable.prototype.map, except that the mapping function can\n// optionally return a Promise (or be async).\nexport function asyncMap(\n observable: Observable,\n mapFn: (value: V) => R | Promise,\n): Observable {\n return new Observable(observer => {\n const { next, error, complete } = observer;\n let activeNextCount = 0;\n let completed = false;\n\n const handler: Observer = {\n next(value) {\n ++activeNextCount;\n new Promise(resolve => {\n resolve(mapFn(value));\n }).then(\n result => {\n --activeNextCount;\n next && next.call(observer, result);\n completed && handler.complete!();\n },\n e => {\n --activeNextCount;\n error && error.call(observer, e);\n },\n );\n },\n error(e) {\n error && error.call(observer, e);\n },\n complete() {\n completed = true;\n if (!activeNextCount) {\n complete && complete.call(observer);\n }\n },\n };\n\n const sub = observable.subscribe(handler);\n return () => sub.unsubscribe();\n });\n}\n","import { execute, ApolloLink, FetchResult } from 'apollo-link';\nimport { DocumentNode } from 'graphql';\nimport { Cache } from 'apollo-cache';\nimport {\n getDefaultValues,\n getOperationDefinition,\n getOperationName,\n hasDirectives,\n graphQLResultHasError,\n hasClientExports,\n removeConnectionDirectiveFromDocument,\n canUseWeakMap,\n} from 'apollo-utilities';\n\nimport { invariant, InvariantError } from 'ts-invariant';\n\nimport { isApolloError, ApolloError } from '../errors/ApolloError';\nimport { Observer, Subscription, Observable } from '../util/Observable';\nimport { QueryWithUpdater, DataStore } from '../data/store';\nimport { MutationStore } from '../data/mutations';\nimport { QueryStore, QueryStoreValue } from '../data/queries';\n\nimport {\n QueryOptions,\n WatchQueryOptions,\n SubscriptionOptions,\n MutationOptions,\n ErrorPolicy,\n} from './watchQueryOptions';\nimport { ObservableQuery } from './ObservableQuery';\nimport { NetworkStatus, isNetworkRequestInFlight } from './networkStatus';\nimport {\n QueryListener,\n ApolloQueryResult,\n FetchType,\n OperationVariables,\n} from './types';\nimport { LocalState } from './LocalState';\nimport { asyncMap, multiplex } from '../util/observables';\nimport { isNonEmptyArray } from '../util/arrays';\n\nconst { hasOwnProperty } = Object.prototype;\n\nexport interface QueryInfo {\n listeners: Set;\n invalidated: boolean;\n newData: Cache.DiffResult | null;\n document: DocumentNode | null;\n lastRequestId: number;\n // A map going from queryId to an observer for a query issued by watchQuery. We use\n // these to keep track of queries that are inflight and error on the observers associated\n // with them in case of some destabalizing action (e.g. reset of the Apollo store).\n observableQuery: ObservableQuery | null;\n subscriptions: Set;\n cancel?: () => void;\n}\n\nexport class QueryManager {\n public link: ApolloLink;\n public mutationStore: MutationStore = new MutationStore();\n public queryStore: QueryStore = new QueryStore();\n public dataStore: DataStore;\n public readonly assumeImmutableResults: boolean;\n\n private queryDeduplication: boolean;\n private clientAwareness: Record = {};\n private localState: LocalState;\n\n private onBroadcast: () => void;\n\n private ssrMode: boolean;\n\n // let's not start at zero to avoid pain with bad checks\n private idCounter = 1;\n\n // XXX merge with ObservableQuery but that needs to be expanded to support mutations and\n // subscriptions as well\n private queries: Map = new Map();\n\n // A map of Promise reject functions for fetchQuery promises that have not\n // yet been resolved, used to keep track of in-flight queries so that we can\n // reject them in case a destabilizing event occurs (e.g. Apollo store reset).\n // The key is in the format of `query:${queryId}` or `fetchRequest:${queryId}`,\n // depending on where the promise's rejection function was created from.\n private fetchQueryRejectFns = new Map();\n\n constructor({\n link,\n queryDeduplication = false,\n store,\n onBroadcast = () => undefined,\n ssrMode = false,\n clientAwareness = {},\n localState,\n assumeImmutableResults,\n }: {\n link: ApolloLink;\n queryDeduplication?: boolean;\n store: DataStore;\n onBroadcast?: () => void;\n ssrMode?: boolean;\n clientAwareness?: Record;\n localState?: LocalState;\n assumeImmutableResults?: boolean;\n }) {\n this.link = link;\n this.queryDeduplication = queryDeduplication;\n this.dataStore = store;\n this.onBroadcast = onBroadcast;\n this.clientAwareness = clientAwareness;\n this.localState = localState || new LocalState({ cache: store.getCache() });\n this.ssrMode = ssrMode;\n this.assumeImmutableResults = !!assumeImmutableResults;\n }\n\n /**\n * Call this method to terminate any active query processes, making it safe\n * to dispose of this QueryManager instance.\n */\n public stop() {\n this.queries.forEach((_info, queryId) => {\n this.stopQueryNoBroadcast(queryId);\n });\n\n this.fetchQueryRejectFns.forEach(reject => {\n reject(\n new InvariantError('QueryManager stopped while query was in flight'),\n );\n });\n }\n\n public async mutate({\n mutation,\n variables,\n optimisticResponse,\n updateQueries: updateQueriesByName,\n refetchQueries = [],\n awaitRefetchQueries = false,\n update: updateWithProxyFn,\n errorPolicy = 'none',\n fetchPolicy,\n context = {},\n }: MutationOptions): Promise> {\n invariant(\n mutation,\n 'mutation option is required. You must specify your GraphQL document in the mutation option.',\n );\n\n invariant(\n !fetchPolicy || fetchPolicy === 'no-cache',\n \"Mutations only support a 'no-cache' fetchPolicy. If you don't want to disable the cache, remove your fetchPolicy setting to proceed with the default mutation behavior.\"\n );\n\n const mutationId = this.generateQueryId();\n mutation = this.transform(mutation).document;\n\n this.setQuery(mutationId, () => ({ document: mutation }));\n\n variables = this.getVariables(mutation, variables);\n\n if (this.transform(mutation).hasClientExports) {\n variables = await this.localState.addExportedVariables(mutation, variables, context);\n }\n\n // Create a map of update queries by id to the query instead of by name.\n const generateUpdateQueriesInfo: () => {\n [queryId: string]: QueryWithUpdater;\n } = () => {\n const ret: { [queryId: string]: QueryWithUpdater } = {};\n\n if (updateQueriesByName) {\n this.queries.forEach(({ observableQuery }, queryId) => {\n if (observableQuery) {\n const { queryName } = observableQuery;\n if (\n queryName &&\n hasOwnProperty.call(updateQueriesByName, queryName)\n ) {\n ret[queryId] = {\n updater: updateQueriesByName[queryName],\n query: this.queryStore.get(queryId),\n };\n }\n }\n });\n }\n\n return ret;\n };\n\n this.mutationStore.initMutation(\n mutationId,\n mutation,\n variables,\n );\n\n this.dataStore.markMutationInit({\n mutationId,\n document: mutation,\n variables,\n updateQueries: generateUpdateQueriesInfo(),\n update: updateWithProxyFn,\n optimisticResponse,\n });\n\n this.broadcastQueries();\n\n const self = this;\n\n return new Promise((resolve, reject) => {\n let storeResult: FetchResult | null;\n let error: ApolloError;\n\n self.getObservableFromLink(\n mutation,\n {\n ...context,\n optimisticResponse,\n },\n variables,\n false,\n ).subscribe({\n next(result: FetchResult) {\n if (graphQLResultHasError(result) && errorPolicy === 'none') {\n error = new ApolloError({\n graphQLErrors: result.errors,\n });\n return;\n }\n\n self.mutationStore.markMutationResult(mutationId);\n\n if (fetchPolicy !== 'no-cache') {\n self.dataStore.markMutationResult({\n mutationId,\n result,\n document: mutation,\n variables,\n updateQueries: generateUpdateQueriesInfo(),\n update: updateWithProxyFn,\n });\n }\n\n storeResult = result;\n },\n\n error(err: Error) {\n self.mutationStore.markMutationError(mutationId, err);\n self.dataStore.markMutationComplete({\n mutationId,\n optimisticResponse,\n });\n self.broadcastQueries();\n self.setQuery(mutationId, () => ({ document: null }));\n reject(\n new ApolloError({\n networkError: err,\n }),\n );\n },\n\n complete() {\n if (error) {\n self.mutationStore.markMutationError(mutationId, error);\n }\n\n self.dataStore.markMutationComplete({\n mutationId,\n optimisticResponse,\n });\n\n self.broadcastQueries();\n\n if (error) {\n reject(error);\n return;\n }\n\n // allow for conditional refetches\n // XXX do we want to make this the only API one day?\n if (typeof refetchQueries === 'function') {\n refetchQueries = refetchQueries(storeResult!);\n }\n\n const refetchQueryPromises: Promise<\n ApolloQueryResult[] | ApolloQueryResult<{}>\n >[] = [];\n\n if (isNonEmptyArray(refetchQueries)) {\n refetchQueries.forEach(refetchQuery => {\n if (typeof refetchQuery === 'string') {\n self.queries.forEach(({ observableQuery }) => {\n if (\n observableQuery &&\n observableQuery.queryName === refetchQuery\n ) {\n refetchQueryPromises.push(observableQuery.refetch());\n }\n });\n } else {\n const queryOptions: QueryOptions = {\n query: refetchQuery.query,\n variables: refetchQuery.variables,\n fetchPolicy: 'network-only',\n };\n\n if (refetchQuery.context) {\n queryOptions.context = refetchQuery.context;\n }\n\n refetchQueryPromises.push(self.query(queryOptions));\n }\n });\n }\n\n Promise.all(\n awaitRefetchQueries ? refetchQueryPromises : [],\n ).then(() => {\n self.setQuery(mutationId, () => ({ document: null }));\n\n if (\n errorPolicy === 'ignore' &&\n storeResult &&\n graphQLResultHasError(storeResult)\n ) {\n delete storeResult.errors;\n }\n\n resolve(storeResult!);\n });\n },\n });\n });\n }\n\n public async fetchQuery(\n queryId: string,\n options: WatchQueryOptions,\n fetchType?: FetchType,\n // This allows us to track if this is a query spawned by a `fetchMore`\n // call for another query. We need this data to compute the `fetchMore`\n // network status for the query this is fetching for.\n fetchMoreForQueryId?: string,\n ): Promise> {\n const {\n metadata = null,\n fetchPolicy = 'cache-first', // cache-first is the default fetch policy.\n context = {},\n } = options;\n\n const query = this.transform(options.query).document;\n\n let variables = this.getVariables(query, options.variables);\n\n if (this.transform(query).hasClientExports) {\n variables = await this.localState.addExportedVariables(query, variables, context);\n }\n\n options = { ...options, variables };\n\n let storeResult: any;\n const isNetworkOnly =\n fetchPolicy === 'network-only' || fetchPolicy === 'no-cache';\n let needToFetch = isNetworkOnly;\n\n // Unless we are completely skipping the cache, we want to diff the query\n // against the cache before we fetch it from the network interface.\n if (!isNetworkOnly) {\n const { complete, result } = this.dataStore.getCache().diff({\n query,\n variables,\n returnPartialData: true,\n optimistic: false,\n });\n\n // If we're in here, only fetch if we have missing fields\n needToFetch = !complete || fetchPolicy === 'cache-and-network';\n storeResult = result;\n }\n\n let shouldFetch =\n needToFetch && fetchPolicy !== 'cache-only' && fetchPolicy !== 'standby';\n\n // we need to check to see if this is an operation that uses the @live directive\n if (hasDirectives(['live'], query)) shouldFetch = true;\n\n const requestId = this.idCounter++;\n\n // set up a watcher to listen to cache updates\n const cancel = fetchPolicy !== 'no-cache'\n ? this.updateQueryWatch(queryId, query, options)\n : undefined;\n\n // Initialize query in store with unique requestId\n this.setQuery(queryId, () => ({\n document: query,\n lastRequestId: requestId,\n invalidated: true,\n cancel,\n }));\n\n this.invalidate(fetchMoreForQueryId);\n\n this.queryStore.initQuery({\n queryId,\n document: query,\n storePreviousVariables: shouldFetch,\n variables,\n isPoll: fetchType === FetchType.poll,\n isRefetch: fetchType === FetchType.refetch,\n metadata,\n fetchMoreForQueryId,\n });\n\n this.broadcastQueries();\n\n if (shouldFetch) {\n const networkResult = this.fetchRequest({\n requestId,\n queryId,\n document: query,\n options,\n fetchMoreForQueryId,\n }).catch(error => {\n // This is for the benefit of `refetch` promises, which currently don't get their errors\n // through the store like watchQuery observers do\n if (isApolloError(error)) {\n throw error;\n } else {\n if (requestId >= this.getQuery(queryId).lastRequestId) {\n this.queryStore.markQueryError(queryId, error, fetchMoreForQueryId);\n this.invalidate(queryId);\n this.invalidate(fetchMoreForQueryId);\n this.broadcastQueries();\n }\n throw new ApolloError({ networkError: error });\n }\n });\n\n // we don't return the promise for cache-and-network since it is already\n // returned below from the cache\n if (fetchPolicy !== 'cache-and-network') {\n return networkResult;\n }\n\n // however we need to catch the error so it isn't unhandled in case of\n // network error\n networkResult.catch(() => {});\n }\n\n // If there is no part of the query we need to fetch from the server (or,\n // fetchPolicy is cache-only), we just write the store result as the final result.\n this.queryStore.markQueryResultClient(queryId, !shouldFetch);\n this.invalidate(queryId);\n this.invalidate(fetchMoreForQueryId);\n\n if (this.transform(query).hasForcedResolvers) {\n return this.localState.runResolvers({\n document: query,\n remoteResult: { data: storeResult },\n context,\n variables,\n onlyRunForcedResolvers: true,\n }).then((result: FetchResult) => {\n this.markQueryResult(\n queryId,\n result,\n options,\n fetchMoreForQueryId,\n );\n this.broadcastQueries();\n return result;\n });\n }\n\n this.broadcastQueries();\n\n // If we have no query to send to the server, we should return the result\n // found within the store.\n return { data: storeResult };\n }\n\n private markQueryResult(\n queryId: string,\n result: FetchResult,\n {\n fetchPolicy,\n variables,\n errorPolicy,\n }: WatchQueryOptions,\n fetchMoreForQueryId?: string,\n ) {\n if (fetchPolicy === 'no-cache') {\n this.setQuery(queryId, () => ({\n newData: { result: result.data, complete: true },\n }));\n } else {\n this.dataStore.markQueryResult(\n result,\n this.getQuery(queryId).document!,\n variables,\n fetchMoreForQueryId,\n errorPolicy === 'ignore' || errorPolicy === 'all',\n );\n }\n }\n\n // Returns a query listener that will update the given observer based on the\n // results (or lack thereof) for a particular query.\n public queryListenerForObserver(\n queryId: string,\n options: WatchQueryOptions,\n observer: Observer>,\n ): QueryListener {\n function invoke(method: 'next' | 'error', argument: any) {\n if (observer[method]) {\n try {\n observer[method]!(argument);\n } catch (e) {\n invariant.error(e);\n }\n } else if (method === 'error') {\n invariant.error(argument);\n }\n }\n\n return (\n queryStoreValue: QueryStoreValue,\n newData?: Cache.DiffResult,\n ) => {\n // we're going to take a look at the data, so the query is no longer invalidated\n this.invalidate(queryId, false);\n\n // The query store value can be undefined in the event of a store\n // reset.\n if (!queryStoreValue) return;\n\n const { observableQuery, document } = this.getQuery(queryId);\n\n const fetchPolicy = observableQuery\n ? observableQuery.options.fetchPolicy\n : options.fetchPolicy;\n\n // don't watch the store for queries on standby\n if (fetchPolicy === 'standby') return;\n\n const loading = isNetworkRequestInFlight(queryStoreValue.networkStatus);\n const lastResult = observableQuery && observableQuery.getLastResult();\n\n const networkStatusChanged = !!(\n lastResult &&\n lastResult.networkStatus !== queryStoreValue.networkStatus\n );\n\n const shouldNotifyIfLoading =\n options.returnPartialData ||\n (!newData && queryStoreValue.previousVariables) ||\n (networkStatusChanged && options.notifyOnNetworkStatusChange) ||\n fetchPolicy === 'cache-only' ||\n fetchPolicy === 'cache-and-network';\n\n if (loading && !shouldNotifyIfLoading) {\n return;\n }\n\n const hasGraphQLErrors = isNonEmptyArray(queryStoreValue.graphQLErrors);\n\n const errorPolicy: ErrorPolicy = observableQuery\n && observableQuery.options.errorPolicy\n || options.errorPolicy\n || 'none';\n\n // If we have either a GraphQL error or a network error, we create\n // an error and tell the observer about it.\n if (errorPolicy === 'none' && hasGraphQLErrors || queryStoreValue.networkError) {\n return invoke('error', new ApolloError({\n graphQLErrors: queryStoreValue.graphQLErrors,\n networkError: queryStoreValue.networkError,\n }));\n }\n\n try {\n let data: any;\n let isMissing: boolean;\n\n if (newData) {\n // As long as we're using the cache, clear out the latest\n // `newData`, since it will now become the current data. We need\n // to keep the `newData` stored with the query when using\n // `no-cache` since `getCurrentQueryResult` attemps to pull from\n // `newData` first, following by trying the cache (which won't\n // find a hit for `no-cache`).\n if (fetchPolicy !== 'no-cache' && fetchPolicy !== 'network-only') {\n this.setQuery(queryId, () => ({ newData: null }));\n }\n\n data = newData.result;\n isMissing = !newData.complete;\n } else {\n const lastError = observableQuery && observableQuery.getLastError();\n const errorStatusChanged =\n errorPolicy !== 'none' &&\n (lastError && lastError.graphQLErrors) !==\n queryStoreValue.graphQLErrors;\n\n if (lastResult && lastResult.data && !errorStatusChanged) {\n data = lastResult.data;\n isMissing = false;\n } else {\n const diffResult = this.dataStore.getCache().diff({\n query: document as DocumentNode,\n variables:\n queryStoreValue.previousVariables ||\n queryStoreValue.variables,\n returnPartialData: true,\n optimistic: true,\n });\n\n data = diffResult.result;\n isMissing = !diffResult.complete;\n }\n }\n\n // If there is some data missing and the user has told us that they\n // do not tolerate partial data then we want to return the previous\n // result and mark it as stale.\n const stale = isMissing && !(\n options.returnPartialData ||\n fetchPolicy === 'cache-only'\n );\n\n const resultFromStore: ApolloQueryResult = {\n data: stale ? lastResult && lastResult.data : data,\n loading,\n networkStatus: queryStoreValue.networkStatus,\n stale,\n };\n\n // if the query wants updates on errors we need to add it to the result\n if (errorPolicy === 'all' && hasGraphQLErrors) {\n resultFromStore.errors = queryStoreValue.graphQLErrors;\n }\n\n invoke('next', resultFromStore);\n\n } catch (networkError) {\n invoke('error', new ApolloError({ networkError }));\n }\n };\n }\n\n private transformCache = new (canUseWeakMap ? WeakMap : Map)<\n DocumentNode,\n Readonly<{\n document: Readonly;\n hasClientExports: boolean;\n hasForcedResolvers: boolean;\n clientQuery: Readonly | null;\n serverQuery: Readonly | null;\n defaultVars: Readonly;\n }>\n >();\n\n public transform(document: DocumentNode) {\n const { transformCache } = this;\n\n if (!transformCache.has(document)) {\n const cache = this.dataStore.getCache();\n const transformed = cache.transformDocument(document);\n const forLink = removeConnectionDirectiveFromDocument(\n cache.transformForLink(transformed));\n\n const clientQuery = this.localState.clientQuery(transformed);\n const serverQuery = this.localState.serverQuery(forLink);\n\n const cacheEntry = {\n document: transformed,\n // TODO These two calls (hasClientExports and shouldForceResolvers)\n // could probably be merged into a single traversal.\n hasClientExports: hasClientExports(transformed),\n hasForcedResolvers: this.localState.shouldForceResolvers(transformed),\n clientQuery,\n serverQuery,\n defaultVars: getDefaultValues(\n getOperationDefinition(transformed)\n ) as OperationVariables,\n };\n\n const add = (doc: DocumentNode | null) => {\n if (doc && !transformCache.has(doc)) {\n transformCache.set(doc, cacheEntry);\n }\n }\n // Add cacheEntry to the transformCache using several different keys,\n // since any one of these documents could end up getting passed to the\n // transform method again in the future.\n add(document);\n add(transformed);\n add(clientQuery);\n add(serverQuery);\n }\n\n return transformCache.get(document)!;\n }\n\n private getVariables(\n document: DocumentNode,\n variables?: OperationVariables,\n ): OperationVariables {\n return {\n ...this.transform(document).defaultVars,\n ...variables,\n };\n }\n\n // The shouldSubscribe option is a temporary fix that tells us whether watchQuery was called\n // directly (i.e. through ApolloClient) or through the query method within QueryManager.\n // Currently, the query method uses watchQuery in order to handle non-network errors correctly\n // but we don't want to keep track observables issued for the query method since those aren't\n // supposed to be refetched in the event of a store reset. Once we unify error handling for\n // network errors and non-network errors, the shouldSubscribe option will go away.\n\n public watchQuery(\n options: WatchQueryOptions,\n shouldSubscribe = true,\n ): ObservableQuery {\n invariant(\n options.fetchPolicy !== 'standby',\n 'client.watchQuery cannot be called with fetchPolicy set to \"standby\"',\n );\n\n // assign variable default values if supplied\n options.variables = this.getVariables(options.query, options.variables);\n\n if (typeof options.notifyOnNetworkStatusChange === 'undefined') {\n options.notifyOnNetworkStatusChange = false;\n }\n\n let transformedOptions = { ...options } as WatchQueryOptions;\n\n return new ObservableQuery({\n queryManager: this,\n options: transformedOptions,\n shouldSubscribe: shouldSubscribe,\n });\n }\n\n public query(options: QueryOptions): Promise> {\n invariant(\n options.query,\n 'query option is required. You must specify your GraphQL document ' +\n 'in the query option.',\n );\n\n invariant(\n options.query.kind === 'Document',\n 'You must wrap the query string in a \"gql\" tag.',\n );\n\n invariant(\n !(options as any).returnPartialData,\n 'returnPartialData option only supported on watchQuery.',\n );\n\n invariant(\n !(options as any).pollInterval,\n 'pollInterval option only supported on watchQuery.',\n );\n\n return new Promise>((resolve, reject) => {\n const watchedQuery = this.watchQuery(options, false);\n this.fetchQueryRejectFns.set(`query:${watchedQuery.queryId}`, reject);\n watchedQuery\n .result()\n .then(resolve, reject)\n // Since neither resolve nor reject throw or return a value, this .then\n // handler is guaranteed to execute. Note that it doesn't really matter\n // when we remove the reject function from this.fetchQueryRejectFns,\n // since resolve and reject are mutually idempotent. In fact, it would\n // not be incorrect to let reject functions accumulate over time; it's\n // just a waste of memory.\n .then(() =>\n this.fetchQueryRejectFns.delete(`query:${watchedQuery.queryId}`),\n );\n });\n }\n\n public generateQueryId() {\n return String(this.idCounter++);\n }\n\n public stopQueryInStore(queryId: string) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.broadcastQueries();\n }\n\n private stopQueryInStoreNoBroadcast(queryId: string) {\n this.stopPollingQuery(queryId);\n this.queryStore.stopQuery(queryId);\n this.invalidate(queryId);\n }\n\n public addQueryListener(queryId: string, listener: QueryListener) {\n this.setQuery(queryId, ({ listeners }) => {\n listeners.add(listener);\n return { invalidated: false };\n });\n }\n\n public updateQueryWatch(\n queryId: string,\n document: DocumentNode,\n options: WatchQueryOptions,\n ) {\n const { cancel } = this.getQuery(queryId);\n if (cancel) cancel();\n const previousResult = () => {\n let previousResult = null;\n const { observableQuery } = this.getQuery(queryId);\n if (observableQuery) {\n const lastResult = observableQuery.getLastResult();\n if (lastResult) {\n previousResult = lastResult.data;\n }\n }\n\n return previousResult;\n };\n return this.dataStore.getCache().watch({\n query: document as DocumentNode,\n variables: options.variables,\n optimistic: true,\n previousResult,\n callback: newData => {\n this.setQuery(queryId, () => ({ invalidated: true, newData }));\n },\n });\n }\n\n // Adds an ObservableQuery to this.observableQueries and to this.observableQueriesByName.\n public addObservableQuery(\n queryId: string,\n observableQuery: ObservableQuery,\n ) {\n this.setQuery(queryId, () => ({ observableQuery }));\n }\n\n public removeObservableQuery(queryId: string) {\n const { cancel } = this.getQuery(queryId);\n this.setQuery(queryId, () => ({ observableQuery: null }));\n if (cancel) cancel();\n }\n\n public clearStore(): Promise {\n // Before we have sent the reset action to the store,\n // we can no longer rely on the results returned by in-flight\n // requests since these may depend on values that previously existed\n // in the data portion of the store. So, we cancel the promises and observers\n // that we have issued so far and not yet resolved (in the case of\n // queries).\n this.fetchQueryRejectFns.forEach(reject => {\n reject(new InvariantError(\n 'Store reset while query was in flight (not completed in link chain)',\n ));\n });\n\n const resetIds: string[] = [];\n this.queries.forEach(({ observableQuery }, queryId) => {\n if (observableQuery) resetIds.push(queryId);\n });\n\n this.queryStore.reset(resetIds);\n this.mutationStore.reset();\n\n // begin removing data from the store\n return this.dataStore.reset();\n }\n\n public resetStore(): Promise[]> {\n // Similarly, we have to have to refetch each of the queries currently being\n // observed. We refetch instead of error'ing on these since the assumption is that\n // resetting the store doesn't eliminate the need for the queries currently being\n // watched. If there is an existing query in flight when the store is reset,\n // the promise for it will be rejected and its results will not be written to the\n // store.\n return this.clearStore().then(() => {\n return this.reFetchObservableQueries();\n });\n }\n\n public reFetchObservableQueries(\n includeStandby: boolean = false,\n ): Promise[]> {\n const observableQueryPromises: Promise>[] = [];\n\n this.queries.forEach(({ observableQuery }, queryId) => {\n if (observableQuery) {\n const fetchPolicy = observableQuery.options.fetchPolicy;\n\n observableQuery.resetLastResults();\n if (\n fetchPolicy !== 'cache-only' &&\n (includeStandby || fetchPolicy !== 'standby')\n ) {\n observableQueryPromises.push(observableQuery.refetch());\n }\n\n this.setQuery(queryId, () => ({ newData: null }));\n this.invalidate(queryId);\n }\n });\n\n this.broadcastQueries();\n\n return Promise.all(observableQueryPromises);\n }\n\n public observeQuery(\n queryId: string,\n options: WatchQueryOptions,\n observer: Observer>,\n ) {\n this.addQueryListener(\n queryId,\n this.queryListenerForObserver(queryId, options, observer),\n );\n return this.fetchQuery(queryId, options);\n }\n\n public startQuery(\n queryId: string,\n options: WatchQueryOptions,\n listener: QueryListener,\n ) {\n invariant.warn(\"The QueryManager.startQuery method has been deprecated\");\n\n this.addQueryListener(queryId, listener);\n\n this.fetchQuery(queryId, options)\n // `fetchQuery` returns a Promise. In case of a failure it should be caucht or else the\n // console will show an `Uncaught (in promise)` message. Ignore the error for now.\n .catch(() => undefined);\n\n return queryId;\n }\n\n public startGraphQLSubscription({\n query,\n fetchPolicy,\n variables,\n }: SubscriptionOptions): Observable> {\n query = this.transform(query).document;\n variables = this.getVariables(query, variables);\n\n const makeObservable = (variables: OperationVariables) =>\n this.getObservableFromLink(\n query,\n {},\n variables,\n false,\n ).map(result => {\n if (!fetchPolicy || fetchPolicy !== 'no-cache') {\n this.dataStore.markSubscriptionResult(\n result,\n query,\n variables,\n );\n this.broadcastQueries();\n }\n\n if (graphQLResultHasError(result)) {\n throw new ApolloError({\n graphQLErrors: result.errors,\n });\n }\n\n return result;\n });\n\n if (this.transform(query).hasClientExports) {\n const observablePromise = this.localState.addExportedVariables(\n query,\n variables,\n ).then(makeObservable);\n\n return new Observable>(observer => {\n let sub: Subscription | null = null;\n observablePromise.then(\n observable => sub = observable.subscribe(observer),\n observer.error,\n );\n return () => sub && sub.unsubscribe();\n });\n }\n\n return makeObservable(variables);\n }\n\n public stopQuery(queryId: string) {\n this.stopQueryNoBroadcast(queryId);\n this.broadcastQueries();\n }\n\n private stopQueryNoBroadcast(queryId: string) {\n this.stopQueryInStoreNoBroadcast(queryId);\n this.removeQuery(queryId);\n }\n\n public removeQuery(queryId: string) {\n // teardown all links\n // Both `QueryManager.fetchRequest` and `QueryManager.query` create separate promises\n // that each add their reject functions to fetchQueryRejectFns.\n // A query created with `QueryManager.query()` could trigger a `QueryManager.fetchRequest`.\n // The same queryId could have two rejection fns for two promises\n this.fetchQueryRejectFns.delete(`query:${queryId}`);\n this.fetchQueryRejectFns.delete(`fetchRequest:${queryId}`);\n this.getQuery(queryId).subscriptions.forEach(x => x.unsubscribe());\n this.queries.delete(queryId);\n }\n\n public getCurrentQueryResult(\n observableQuery: ObservableQuery,\n optimistic: boolean = true,\n ): {\n data: T | undefined;\n partial: boolean;\n } {\n const { variables, query, fetchPolicy, returnPartialData } = observableQuery.options;\n const lastResult = observableQuery.getLastResult();\n const { newData } = this.getQuery(observableQuery.queryId);\n\n if (newData && newData.complete) {\n return { data: newData.result, partial: false };\n }\n\n if (fetchPolicy === 'no-cache' || fetchPolicy === 'network-only') {\n return { data: undefined, partial: false };\n }\n\n const { result, complete } = this.dataStore.getCache().diff({\n query,\n variables,\n previousResult: lastResult ? lastResult.data : undefined,\n returnPartialData: true,\n optimistic,\n });\n\n return {\n data: (complete || returnPartialData) ? result : void 0,\n partial: !complete,\n };\n }\n\n public getQueryWithPreviousResult(\n queryIdOrObservable: string | ObservableQuery,\n ): {\n previousResult: any;\n variables: TVariables | undefined;\n document: DocumentNode;\n } {\n let observableQuery: ObservableQuery;\n if (typeof queryIdOrObservable === 'string') {\n const { observableQuery: foundObserveableQuery } = this.getQuery(\n queryIdOrObservable,\n );\n invariant(\n foundObserveableQuery,\n `ObservableQuery with this id doesn't exist: ${queryIdOrObservable}`\n );\n observableQuery = foundObserveableQuery!;\n } else {\n observableQuery = queryIdOrObservable;\n }\n\n const { variables, query } = observableQuery.options;\n return {\n previousResult: this.getCurrentQueryResult(observableQuery, false).data,\n variables,\n document: query,\n };\n }\n\n public broadcastQueries() {\n this.onBroadcast();\n this.queries.forEach((info, id) => {\n if (info.invalidated) {\n info.listeners.forEach(listener => {\n // it's possible for the listener to be undefined if the query is being stopped\n // See here for more detail: https://github.com/apollostack/apollo-client/issues/231\n if (listener) {\n listener(this.queryStore.get(id), info.newData);\n }\n });\n }\n });\n }\n\n public getLocalState(): LocalState {\n return this.localState;\n }\n\n private inFlightLinkObservables = new Map<\n DocumentNode,\n Map>\n >();\n\n private getObservableFromLink(\n query: DocumentNode,\n context: any,\n variables?: OperationVariables,\n deduplication: boolean = this.queryDeduplication,\n ): Observable> {\n let observable: Observable>;\n\n const { serverQuery } = this.transform(query);\n if (serverQuery) {\n const { inFlightLinkObservables, link } = this;\n\n const operation = {\n query: serverQuery,\n variables,\n operationName: getOperationName(serverQuery) || void 0,\n context: this.prepareContext({\n ...context,\n forceFetch: !deduplication\n }),\n };\n\n context = operation.context;\n\n if (deduplication) {\n const byVariables = inFlightLinkObservables.get(serverQuery) || new Map();\n inFlightLinkObservables.set(serverQuery, byVariables);\n\n const varJson = JSON.stringify(variables);\n observable = byVariables.get(varJson);\n\n if (!observable) {\n byVariables.set(\n varJson,\n observable = multiplex(\n execute(link, operation) as Observable>\n )\n );\n\n const cleanup = () => {\n byVariables.delete(varJson);\n if (!byVariables.size) inFlightLinkObservables.delete(serverQuery);\n cleanupSub.unsubscribe();\n };\n\n const cleanupSub = observable.subscribe({\n next: cleanup,\n error: cleanup,\n complete: cleanup,\n });\n }\n\n } else {\n observable = multiplex(execute(link, operation) as Observable>);\n }\n } else {\n observable = Observable.of({ data: {} } as FetchResult);\n context = this.prepareContext(context);\n }\n\n const { clientQuery } = this.transform(query);\n if (clientQuery) {\n observable = asyncMap(observable, result => {\n return this.localState.runResolvers({\n document: clientQuery,\n remoteResult: result,\n context,\n variables,\n });\n });\n }\n\n return observable;\n }\n\n // Takes a request id, query id, a query document and information associated with the query\n // and send it to the network interface. Returns\n // a promise for the result associated with that request.\n private fetchRequest({\n requestId,\n queryId,\n document,\n options,\n fetchMoreForQueryId,\n }: {\n requestId: number;\n queryId: string;\n document: DocumentNode;\n options: WatchQueryOptions;\n fetchMoreForQueryId?: string;\n }): Promise> {\n const { variables, errorPolicy = 'none', fetchPolicy } = options;\n let resultFromStore: any;\n let errorsFromStore: any;\n\n return new Promise>((resolve, reject) => {\n const observable = this.getObservableFromLink(\n document,\n options.context,\n variables,\n );\n\n const fqrfId = `fetchRequest:${queryId}`;\n this.fetchQueryRejectFns.set(fqrfId, reject);\n\n const cleanup = () => {\n this.fetchQueryRejectFns.delete(fqrfId);\n this.setQuery(queryId, ({ subscriptions }) => {\n subscriptions.delete(subscription);\n });\n };\n\n const subscription = observable.map((result: FetchResult) => {\n if (requestId >= this.getQuery(queryId).lastRequestId) {\n this.markQueryResult(\n queryId,\n result,\n options,\n fetchMoreForQueryId,\n );\n\n this.queryStore.markQueryResult(\n queryId,\n result,\n fetchMoreForQueryId,\n );\n\n this.invalidate(queryId);\n this.invalidate(fetchMoreForQueryId);\n\n this.broadcastQueries();\n }\n\n if (errorPolicy === 'none' && isNonEmptyArray(result.errors)) {\n return reject(new ApolloError({\n graphQLErrors: result.errors,\n }));\n }\n\n if (errorPolicy === 'all') {\n errorsFromStore = result.errors;\n }\n\n if (fetchMoreForQueryId || fetchPolicy === 'no-cache') {\n // We don't write fetchMore results to the store because this would overwrite\n // the original result in case an @connection directive is used.\n resultFromStore = result.data;\n } else {\n // ensure result is combined with data already in store\n const { result, complete } = this.dataStore.getCache().diff({\n variables,\n query: document,\n optimistic: false,\n returnPartialData: true,\n });\n\n if (complete || options.returnPartialData) {\n resultFromStore = result;\n }\n }\n }).subscribe({\n error(error: ApolloError) {\n cleanup();\n reject(error);\n },\n\n complete() {\n cleanup();\n resolve({\n data: resultFromStore,\n errors: errorsFromStore,\n loading: false,\n networkStatus: NetworkStatus.ready,\n stale: false,\n });\n },\n });\n\n this.setQuery(queryId, ({ subscriptions }) => {\n subscriptions.add(subscription);\n });\n });\n }\n\n private getQuery(queryId: string) {\n return (\n this.queries.get(queryId) || {\n listeners: new Set(),\n invalidated: false,\n document: null,\n newData: null,\n lastRequestId: 1,\n observableQuery: null,\n subscriptions: new Set(),\n }\n );\n }\n\n private setQuery(\n queryId: string,\n updater: (prev: QueryInfo) => Pick | void,\n ) {\n const prev = this.getQuery(queryId);\n const newInfo = { ...prev, ...updater(prev) };\n this.queries.set(queryId, newInfo);\n }\n\n private invalidate(\n queryId: string | undefined,\n invalidated = true,\n ) {\n if (queryId) {\n this.setQuery(queryId, () => ({ invalidated }));\n }\n }\n\n private prepareContext(context = {}) {\n const newContext = this.localState.prepareContext(context);\n return {\n ...newContext,\n clientAwareness: this.clientAwareness,\n };\n }\n\n public checkInFlight(queryId: string) {\n const query = this.queryStore.get(queryId);\n\n return (\n query &&\n query.networkStatus !== NetworkStatus.ready &&\n query.networkStatus !== NetworkStatus.error\n );\n }\n\n // Map from client ID to { interval, options }.\n private pollingInfoByQueryId = new Map();\n\n public startPollingQuery(\n options: WatchQueryOptions,\n queryId: string,\n listener?: QueryListener,\n ): string {\n const { pollInterval } = options;\n\n invariant(\n pollInterval,\n 'Attempted to start a polling query without a polling interval.',\n );\n\n // Do not poll in SSR mode\n if (!this.ssrMode) {\n let info = this.pollingInfoByQueryId.get(queryId)!;\n if (!info) {\n this.pollingInfoByQueryId.set(queryId, (info = {} as any));\n }\n\n info.interval = pollInterval!;\n info.options = {\n ...options,\n fetchPolicy: 'network-only',\n };\n\n const maybeFetch = () => {\n const info = this.pollingInfoByQueryId.get(queryId);\n if (info) {\n if (this.checkInFlight(queryId)) {\n poll();\n } else {\n this.fetchQuery(queryId, info.options, FetchType.poll).then(\n poll,\n poll,\n );\n }\n }\n };\n\n const poll = () => {\n const info = this.pollingInfoByQueryId.get(queryId);\n if (info) {\n clearTimeout(info.timeout);\n info.timeout = setTimeout(maybeFetch, info.interval);\n }\n };\n\n if (listener) {\n this.addQueryListener(queryId, listener);\n }\n\n poll();\n }\n\n return queryId;\n }\n\n public stopPollingQuery(queryId: string) {\n this.pollingInfoByQueryId.delete(queryId);\n }\n}\n","import { ExecutionResult, DocumentNode } from 'graphql';\nimport { ApolloCache, Cache, DataProxy } from 'apollo-cache';\n\nimport { QueryStoreValue } from '../data/queries';\nimport {\n getOperationName,\n tryFunctionOrLogError,\n graphQLResultHasError,\n} from 'apollo-utilities';\nimport { MutationQueryReducer } from '../core/types';\n\nexport type QueryWithUpdater = {\n updater: MutationQueryReducer;\n query: QueryStoreValue;\n};\n\nexport interface DataWrite {\n rootId: string;\n result: any;\n document: DocumentNode;\n operationName: string | null;\n variables: Object;\n}\n\nexport class DataStore {\n private cache: ApolloCache;\n\n constructor(initialCache: ApolloCache) {\n this.cache = initialCache;\n }\n\n public getCache(): ApolloCache {\n return this.cache;\n }\n\n public markQueryResult(\n result: ExecutionResult,\n document: DocumentNode,\n variables: any,\n fetchMoreForQueryId: string | undefined,\n ignoreErrors: boolean = false,\n ) {\n let writeWithErrors = !graphQLResultHasError(result);\n if (ignoreErrors && graphQLResultHasError(result) && result.data) {\n writeWithErrors = true;\n }\n if (!fetchMoreForQueryId && writeWithErrors) {\n this.cache.write({\n result: result.data,\n dataId: 'ROOT_QUERY',\n query: document,\n variables: variables,\n });\n }\n }\n\n public markSubscriptionResult(\n result: ExecutionResult,\n document: DocumentNode,\n variables: any,\n ) {\n // the subscription interface should handle not sending us results we no longer subscribe to.\n // XXX I don't think we ever send in an object with errors, but we might in the future...\n if (!graphQLResultHasError(result)) {\n this.cache.write({\n result: result.data,\n dataId: 'ROOT_SUBSCRIPTION',\n query: document,\n variables: variables,\n });\n }\n }\n\n public markMutationInit(mutation: {\n mutationId: string;\n document: DocumentNode;\n variables: any;\n updateQueries: { [queryId: string]: QueryWithUpdater };\n update: ((proxy: DataProxy, mutationResult: Object) => void) | undefined;\n optimisticResponse: Object | Function | undefined;\n }) {\n if (mutation.optimisticResponse) {\n let optimistic: Object;\n if (typeof mutation.optimisticResponse === 'function') {\n optimistic = mutation.optimisticResponse(mutation.variables);\n } else {\n optimistic = mutation.optimisticResponse;\n }\n\n this.cache.recordOptimisticTransaction(c => {\n const orig = this.cache;\n this.cache = c;\n\n try {\n this.markMutationResult({\n mutationId: mutation.mutationId,\n result: { data: optimistic },\n document: mutation.document,\n variables: mutation.variables,\n updateQueries: mutation.updateQueries,\n update: mutation.update,\n });\n } finally {\n this.cache = orig;\n }\n }, mutation.mutationId);\n }\n }\n\n public markMutationResult(mutation: {\n mutationId: string;\n result: ExecutionResult;\n document: DocumentNode;\n variables: any;\n updateQueries: { [queryId: string]: QueryWithUpdater };\n update: ((proxy: DataProxy, mutationResult: Object) => void) | undefined;\n }) {\n // Incorporate the result from this mutation into the store\n if (!graphQLResultHasError(mutation.result)) {\n const cacheWrites: Cache.WriteOptions[] = [{\n result: mutation.result.data,\n dataId: 'ROOT_MUTATION',\n query: mutation.document,\n variables: mutation.variables,\n }];\n\n const { updateQueries } = mutation;\n if (updateQueries) {\n Object.keys(updateQueries).forEach(id => {\n const { query, updater } = updateQueries[id];\n\n // Read the current query result from the store.\n const { result: currentQueryResult, complete } = this.cache.diff({\n query: query.document,\n variables: query.variables,\n returnPartialData: true,\n optimistic: false,\n });\n\n if (complete) {\n // Run our reducer using the current query result and the mutation result.\n const nextQueryResult = tryFunctionOrLogError(() =>\n updater(currentQueryResult, {\n mutationResult: mutation.result,\n queryName: getOperationName(query.document) || undefined,\n queryVariables: query.variables,\n }),\n );\n\n // Write the modified result back into the store if we got a new result.\n if (nextQueryResult) {\n cacheWrites.push({\n result: nextQueryResult,\n dataId: 'ROOT_QUERY',\n query: query.document,\n variables: query.variables,\n });\n }\n }\n });\n }\n\n this.cache.performTransaction(c => {\n cacheWrites.forEach(write => c.write(write));\n\n // If the mutation has some writes associated with it then we need to\n // apply those writes to the store by running this reducer again with a\n // write action.\n const { update } = mutation;\n if (update) {\n tryFunctionOrLogError(() => update(c, mutation.result));\n }\n });\n }\n }\n\n public markMutationComplete({\n mutationId,\n optimisticResponse,\n }: {\n mutationId: string;\n optimisticResponse?: any;\n }) {\n if (optimisticResponse) {\n this.cache.removeOptimistic(mutationId);\n }\n }\n\n public markUpdateQueryResult(\n document: DocumentNode,\n variables: any,\n newResult: any,\n ) {\n this.cache.write({\n result: newResult,\n dataId: 'ROOT_QUERY',\n variables,\n query: document,\n });\n }\n\n public reset(): Promise {\n return this.cache.reset();\n }\n}\n","import { ApolloClient } from 'apollo-client';\nimport { equal as isEqual } from '@wry/equality';\nimport { invariant } from 'ts-invariant';\nimport {\n ApolloContextValue,\n parser,\n DocumentType,\n operationName\n} from '@apollo/react-common';\nimport { DocumentNode } from 'graphql';\n\nimport { CommonOptions } from '../types';\n\nexport abstract class OperationData {\n public isMounted: boolean = false;\n public previousOptions: CommonOptions = {} as CommonOptions<\n TOptions\n >;\n public context: ApolloContextValue = {};\n public client: ApolloClient | undefined;\n\n private options: CommonOptions = {} as CommonOptions;\n\n constructor(options?: CommonOptions, context?: ApolloContextValue) {\n this.options = options || ({} as CommonOptions);\n this.context = context || {};\n }\n\n public getOptions(): CommonOptions {\n return this.options;\n }\n\n public setOptions(\n newOptions: CommonOptions,\n storePrevious: boolean = false\n ) {\n if (storePrevious && !isEqual(this.options, newOptions)) {\n this.previousOptions = this.options;\n }\n this.options = newOptions;\n }\n\n public abstract execute(...args: any): any;\n public abstract afterExecute(...args: any): void | (() => void);\n public abstract cleanup(): void;\n\n protected unmount() {\n this.isMounted = false;\n }\n\n protected refreshClient() {\n const client =\n (this.options && this.options.client) ||\n (this.context && this.context.client);\n\n invariant(\n !!client,\n 'Could not find \"client\" in the context or passed in as an option. ' +\n 'Wrap the root component in an , or pass an ' +\n 'ApolloClient instance in via options.'\n );\n\n let isNew = false;\n if (client !== this.client) {\n isNew = true;\n this.client = client;\n this.cleanup();\n }\n return {\n client: this.client as ApolloClient,\n isNew\n };\n }\n\n protected verifyDocumentType(document: DocumentNode, type: DocumentType) {\n const operation = parser(document);\n const requiredOperationName = operationName(type);\n const usedOperationName = operationName(operation.type);\n invariant(\n operation.type === type,\n `Running a ${requiredOperationName} requires a graphql ` +\n `${requiredOperationName}, but a ${usedOperationName} was used instead.`\n );\n }\n}\n","import {\n ApolloLink,\n FetchResult,\n GraphQLRequest,\n execute,\n} from 'apollo-link';\nimport { ExecutionResult, DocumentNode } from 'graphql';\nimport { ApolloCache, DataProxy } from 'apollo-cache';\n\nimport { invariant, InvariantError } from 'ts-invariant';\n\nimport { QueryManager } from './core/QueryManager';\nimport {\n ApolloQueryResult,\n OperationVariables,\n Resolvers,\n} from './core/types';\nimport { ObservableQuery } from './core/ObservableQuery';\nimport { LocalState, FragmentMatcher } from './core/LocalState';\nimport { Observable } from './util/Observable';\n\nimport {\n QueryOptions,\n WatchQueryOptions,\n SubscriptionOptions,\n MutationOptions,\n WatchQueryFetchPolicy,\n} from './core/watchQueryOptions';\n\nimport { DataStore } from './data/store';\n\nimport { version } from './version';\n\nexport interface DefaultOptions {\n watchQuery?: Partial;\n query?: Partial;\n mutate?: Partial;\n}\n\nlet hasSuggestedDevtools = false;\n\nexport type ApolloClientOptions = {\n link?: ApolloLink;\n cache: ApolloCache;\n ssrForceFetchDelay?: number;\n ssrMode?: boolean;\n connectToDevTools?: boolean;\n queryDeduplication?: boolean;\n defaultOptions?: DefaultOptions;\n assumeImmutableResults?: boolean;\n resolvers?: Resolvers | Resolvers[];\n typeDefs?: string | string[] | DocumentNode | DocumentNode[];\n fragmentMatcher?: FragmentMatcher;\n name?: string;\n version?: string;\n};\n\n/**\n * This is the primary Apollo Client class. It is used to send GraphQL documents (i.e. queries\n * and mutations) to a GraphQL spec-compliant server over a {@link NetworkInterface} instance,\n * receive results from the server and cache the results in a store. It also delivers updates\n * to GraphQL queries through {@link Observable} instances.\n */\nexport default class ApolloClient implements DataProxy {\n public link: ApolloLink;\n public store: DataStore;\n public cache: ApolloCache;\n public readonly queryManager: QueryManager;\n public disableNetworkFetches: boolean;\n public version: string;\n public queryDeduplication: boolean;\n public defaultOptions: DefaultOptions = {};\n public readonly typeDefs: ApolloClientOptions['typeDefs'];\n\n private devToolsHookCb: Function;\n private resetStoreCallbacks: Array<() => Promise> = [];\n private clearStoreCallbacks: Array<() => Promise> = [];\n private localState: LocalState;\n\n /**\n * Constructs an instance of {@link ApolloClient}.\n *\n * @param link The {@link ApolloLink} over which GraphQL documents will be resolved into a response.\n *\n * @param cache The initial cache to use in the data store.\n *\n * @param ssrMode Determines whether this is being run in Server Side Rendering (SSR) mode.\n *\n * @param ssrForceFetchDelay Determines the time interval before we force fetch queries for a\n * server side render.\n *\n * @param queryDeduplication If set to false, a query will still be sent to the server even if a query\n * with identical parameters (query, variables, operationName) is already in flight.\n *\n * @param defaultOptions Used to set application wide defaults for the\n * options supplied to `watchQuery`, `query`, or\n * `mutate`.\n *\n * @param assumeImmutableResults When this option is true, the client will assume results\n * read from the cache are never mutated by application code,\n * which enables substantial performance optimizations. Passing\n * `{ freezeResults: true }` to the `InMemoryCache` constructor\n * can help enforce this immutability.\n *\n * @param name A custom name that can be used to identify this client, when\n * using Apollo client awareness features. E.g. \"iOS\".\n *\n * @param version A custom version that can be used to identify this client,\n * when using Apollo client awareness features. This is the\n * version of your client, which you may want to increment on\n * new builds. This is NOT the version of Apollo Client that\n * you are using.\n */\n constructor(options: ApolloClientOptions) {\n const {\n cache,\n ssrMode = false,\n ssrForceFetchDelay = 0,\n connectToDevTools,\n queryDeduplication = true,\n defaultOptions,\n assumeImmutableResults = false,\n resolvers,\n typeDefs,\n fragmentMatcher,\n name: clientAwarenessName,\n version: clientAwarenessVersion,\n } = options;\n\n let { link } = options;\n\n // If a link hasn't been defined, but local state resolvers have been set,\n // setup a default empty link.\n if (!link && resolvers) {\n link = ApolloLink.empty();\n }\n\n if (!link || !cache) {\n throw new InvariantError(\n \"In order to initialize Apollo Client, you must specify 'link' and 'cache' properties in the options object.\\n\" +\n \"These options are part of the upgrade requirements when migrating from Apollo Client 1.x to Apollo Client 2.x.\\n\" +\n \"For more information, please visit: https://www.apollographql.com/docs/tutorial/client.html#apollo-client-setup\"\n );\n }\n\n // remove apollo-client supported directives\n this.link = link;\n this.cache = cache;\n this.store = new DataStore(cache);\n this.disableNetworkFetches = ssrMode || ssrForceFetchDelay > 0;\n this.queryDeduplication = queryDeduplication;\n this.defaultOptions = defaultOptions || {};\n this.typeDefs = typeDefs;\n\n if (ssrForceFetchDelay) {\n setTimeout(\n () => (this.disableNetworkFetches = false),\n ssrForceFetchDelay,\n );\n }\n\n this.watchQuery = this.watchQuery.bind(this);\n this.query = this.query.bind(this);\n this.mutate = this.mutate.bind(this);\n this.resetStore = this.resetStore.bind(this);\n this.reFetchObservableQueries = this.reFetchObservableQueries.bind(this);\n\n // Attach the client instance to window to let us be found by chrome devtools, but only in\n // development mode\n const defaultConnectToDevTools =\n process.env.NODE_ENV !== 'production' &&\n typeof window !== 'undefined' &&\n !(window as any).__APOLLO_CLIENT__;\n\n if (\n typeof connectToDevTools === 'undefined'\n ? defaultConnectToDevTools\n : connectToDevTools && typeof window !== 'undefined'\n ) {\n (window as any).__APOLLO_CLIENT__ = this;\n }\n\n /**\n * Suggest installing the devtools for developers who don't have them\n */\n if (!hasSuggestedDevtools && process.env.NODE_ENV !== 'production') {\n hasSuggestedDevtools = true;\n if (\n typeof window !== 'undefined' &&\n window.document &&\n window.top === window.self\n ) {\n // First check if devtools is not installed\n if (\n typeof (window as any).__APOLLO_DEVTOOLS_GLOBAL_HOOK__ === 'undefined'\n ) {\n // Only for Chrome\n if (\n window.navigator &&\n window.navigator.userAgent &&\n window.navigator.userAgent.indexOf('Chrome') > -1\n ) {\n // tslint:disable-next-line\n console.debug(\n 'Download the Apollo DevTools ' +\n 'for a better development experience: ' +\n 'https://chrome.google.com/webstore/detail/apollo-client-developer-t/jdkknkkbebbapilgoeccciglkfbmbnfm',\n );\n }\n }\n }\n }\n\n this.version = version;\n\n this.localState = new LocalState({\n cache,\n client: this,\n resolvers,\n fragmentMatcher,\n });\n\n this.queryManager = new QueryManager({\n link: this.link,\n store: this.store,\n queryDeduplication,\n ssrMode,\n clientAwareness: {\n name: clientAwarenessName!,\n version: clientAwarenessVersion!,\n },\n localState: this.localState,\n assumeImmutableResults,\n onBroadcast: () => {\n if (this.devToolsHookCb) {\n this.devToolsHookCb({\n action: {},\n state: {\n queries: this.queryManager.queryStore.getStore(),\n mutations: this.queryManager.mutationStore.getStore(),\n },\n dataWithOptimisticResults: this.cache.extract(true),\n });\n }\n },\n });\n }\n\n /**\n * Call this method to terminate any active client processes, making it safe\n * to dispose of this `ApolloClient` instance.\n */\n public stop() {\n this.queryManager.stop();\n }\n\n /**\n * This watches the cache store of the query according to the options specified and\n * returns an {@link ObservableQuery}. We can subscribe to this {@link ObservableQuery} and\n * receive updated results through a GraphQL observer when the cache store changes.\n *

\n * Note that this method is not an implementation of GraphQL subscriptions. Rather,\n * it uses Apollo's store in order to reactively deliver updates to your query results.\n *

\n * For example, suppose you call watchQuery on a GraphQL query that fetches a person's\n * first and last name and this person has a particular object identifer, provided by\n * dataIdFromObject. Later, a different query fetches that same person's\n * first and last name and the first name has now changed. Then, any observers associated\n * with the results of the first query will be updated with a new result object.\n *

\n * Note that if the cache does not change, the subscriber will *not* be notified.\n *

\n * See [here](https://medium.com/apollo-stack/the-concepts-of-graphql-bc68bd819be3#.3mb0cbcmc) for\n * a description of store reactivity.\n */\n public watchQuery(\n options: WatchQueryOptions,\n ): ObservableQuery {\n if (this.defaultOptions.watchQuery) {\n options = {\n ...this.defaultOptions.watchQuery,\n ...options,\n } as WatchQueryOptions;\n }\n\n // XXX Overwriting options is probably not the best way to do this long term...\n if (\n this.disableNetworkFetches &&\n (options.fetchPolicy === 'network-only' ||\n options.fetchPolicy === 'cache-and-network')\n ) {\n options = { ...options, fetchPolicy: 'cache-first' };\n }\n\n return this.queryManager.watchQuery(options);\n }\n\n /**\n * This resolves a single query according to the options specified and\n * returns a {@link Promise} which is either resolved with the resulting data\n * or rejected with an error.\n *\n * @param options An object of type {@link QueryOptions} that allows us to\n * describe how this query should be treated e.g. whether it should hit the\n * server at all or just resolve from the cache, etc.\n */\n public query(\n options: QueryOptions,\n ): Promise> {\n if (this.defaultOptions.query) {\n options = { ...this.defaultOptions.query, ...options } as QueryOptions<\n TVariables\n >;\n }\n\n invariant(\n (options.fetchPolicy as WatchQueryFetchPolicy) !== 'cache-and-network',\n 'The cache-and-network fetchPolicy does not work with client.query, because ' +\n 'client.query can only return a single result. Please use client.watchQuery ' +\n 'to receive multiple results from the cache and the network, or consider ' +\n 'using a different fetchPolicy, such as cache-first or network-only.'\n );\n\n if (this.disableNetworkFetches && options.fetchPolicy === 'network-only') {\n options = { ...options, fetchPolicy: 'cache-first' };\n }\n\n return this.queryManager.query(options);\n }\n\n /**\n * This resolves a single mutation according to the options specified and returns a\n * {@link Promise} which is either resolved with the resulting data or rejected with an\n * error.\n *\n * It takes options as an object with the following keys and values:\n */\n public mutate(\n options: MutationOptions,\n ): Promise> {\n if (this.defaultOptions.mutate) {\n options = {\n ...this.defaultOptions.mutate,\n ...options,\n } as MutationOptions;\n }\n\n return this.queryManager.mutate(options);\n }\n\n /**\n * This subscribes to a graphql subscription according to the options specified and returns an\n * {@link Observable} which either emits received data or an error.\n */\n public subscribe(\n options: SubscriptionOptions,\n ): Observable> {\n return this.queryManager.startGraphQLSubscription(options);\n }\n\n /**\n * Tries to read some data from the store in the shape of the provided\n * GraphQL query without making a network request. This method will start at\n * the root query. To start at a specific id returned by `dataIdFromObject`\n * use `readFragment`.\n *\n * @param optimistic Set to `true` to allow `readQuery` to return\n * optimistic results. Is `false` by default.\n */\n public readQuery(\n options: DataProxy.Query,\n optimistic: boolean = false,\n ): T | null {\n return this.cache.readQuery(options, optimistic);\n }\n\n /**\n * Tries to read some data from the store in the shape of the provided\n * GraphQL fragment without making a network request. This method will read a\n * GraphQL fragment from any arbitrary id that is currently cached, unlike\n * `readQuery` which will only read from the root query.\n *\n * You must pass in a GraphQL document with a single fragment or a document\n * with multiple fragments that represent what you are reading. If you pass\n * in a document with multiple fragments then you must also specify a\n * `fragmentName`.\n *\n * @param optimistic Set to `true` to allow `readFragment` to return\n * optimistic results. Is `false` by default.\n */\n public readFragment(\n options: DataProxy.Fragment,\n optimistic: boolean = false,\n ): T | null {\n return this.cache.readFragment(options, optimistic);\n }\n\n /**\n * Writes some data in the shape of the provided GraphQL query directly to\n * the store. This method will start at the root query. To start at a\n * specific id returned by `dataIdFromObject` then use `writeFragment`.\n */\n public writeQuery(\n options: DataProxy.WriteQueryOptions,\n ): void {\n const result = this.cache.writeQuery(options);\n this.queryManager.broadcastQueries();\n return result;\n }\n\n /**\n * Writes some data in the shape of the provided GraphQL fragment directly to\n * the store. This method will write to a GraphQL fragment from any arbitrary\n * id that is currently cached, unlike `writeQuery` which will only write\n * from the root query.\n *\n * You must pass in a GraphQL document with a single fragment or a document\n * with multiple fragments that represent what you are writing. If you pass\n * in a document with multiple fragments then you must also specify a\n * `fragmentName`.\n */\n public writeFragment(\n options: DataProxy.WriteFragmentOptions,\n ): void {\n const result = this.cache.writeFragment(options);\n this.queryManager.broadcastQueries();\n return result;\n }\n\n /**\n * Sugar for writeQuery & writeFragment\n * This method will construct a query from the data object passed in.\n * If no id is supplied, writeData will write the data to the root.\n * If an id is supplied, writeData will write a fragment to the object\n * specified by the id in the store.\n *\n * Since you aren't passing in a query to check the shape of the data,\n * you must pass in an object that conforms to the shape of valid GraphQL data.\n */\n public writeData(\n options: DataProxy.WriteDataOptions,\n ): void {\n const result = this.cache.writeData(options);\n this.queryManager.broadcastQueries();\n return result;\n }\n\n public __actionHookForDevTools(cb: () => any) {\n this.devToolsHookCb = cb;\n }\n\n public __requestRaw(payload: GraphQLRequest): Observable {\n return execute(this.link, payload);\n }\n\n /**\n * This initializes the query manager that tracks queries and the cache\n */\n public initQueryManager(): QueryManager {\n invariant.warn(\n 'Calling the initQueryManager method is no longer necessary, ' +\n 'and it will be removed from ApolloClient in version 3.0.',\n );\n return this.queryManager;\n }\n\n /**\n * Resets your entire store by clearing out your cache and then re-executing\n * all of your active queries. This makes it so that you may guarantee that\n * there is no data left in your store from a time before you called this\n * method.\n *\n * `resetStore()` is useful when your user just logged out. You’ve removed the\n * user session, and you now want to make sure that any references to data you\n * might have fetched while the user session was active is gone.\n *\n * It is important to remember that `resetStore()` *will* refetch any active\n * queries. This means that any components that might be mounted will execute\n * their queries again using your network interface. If you do not want to\n * re-execute any queries then you should make sure to stop watching any\n * active queries.\n */\n public resetStore(): Promise[] | null> {\n return Promise.resolve()\n .then(() => this.queryManager.clearStore())\n .then(() => Promise.all(this.resetStoreCallbacks.map(fn => fn())))\n .then(() => this.reFetchObservableQueries());\n }\n\n /**\n * Remove all data from the store. Unlike `resetStore`, `clearStore` will\n * not refetch any active queries.\n */\n public clearStore(): Promise {\n return Promise.resolve()\n .then(() => this.queryManager.clearStore())\n .then(() => Promise.all(this.clearStoreCallbacks.map(fn => fn())));\n }\n\n /**\n * Allows callbacks to be registered that are executed when the store is\n * reset. `onResetStore` returns an unsubscribe function that can be used\n * to remove registered callbacks.\n */\n public onResetStore(cb: () => Promise): () => void {\n this.resetStoreCallbacks.push(cb);\n return () => {\n this.resetStoreCallbacks = this.resetStoreCallbacks.filter(c => c !== cb);\n };\n }\n\n /**\n * Allows callbacks to be registered that are executed when the store is\n * cleared. `onClearStore` returns an unsubscribe function that can be used\n * to remove registered callbacks.\n */\n public onClearStore(cb: () => Promise): () => void {\n this.clearStoreCallbacks.push(cb);\n return () => {\n this.clearStoreCallbacks = this.clearStoreCallbacks.filter(c => c !== cb);\n };\n }\n\n /**\n * Refetches all of your active queries.\n *\n * `reFetchObservableQueries()` is useful if you want to bring the client back to proper state in case of a network outage\n *\n * It is important to remember that `reFetchObservableQueries()` *will* refetch any active\n * queries. This means that any components that might be mounted will execute\n * their queries again using your network interface. If you do not want to\n * re-execute any queries then you should make sure to stop watching any\n * active queries.\n * Takes optional parameter `includeStandby` which will include queries in standby-mode when refetching.\n */\n public reFetchObservableQueries(\n includeStandby?: boolean,\n ): Promise[]> {\n return this.queryManager.reFetchObservableQueries(includeStandby);\n }\n\n /**\n * Exposes the cache's complete state, in a serializable format for later restoration.\n */\n public extract(optimistic?: boolean): TCacheShape {\n return this.cache.extract(optimistic);\n }\n\n /**\n * Replaces existing state in the cache (if any) with the values expressed by\n * `serializedState`.\n *\n * Called when hydrating a cache (server side rendering, or offline storage),\n * and also (potentially) during hot reloads.\n */\n public restore(serializedState: TCacheShape): ApolloCache {\n return this.cache.restore(serializedState);\n }\n\n /**\n * Add additional local resolvers.\n */\n public addResolvers(resolvers: Resolvers | Resolvers[]) {\n this.localState.addResolvers(resolvers);\n }\n\n /**\n * Set (override existing) local resolvers.\n */\n public setResolvers(resolvers: Resolvers | Resolvers[]) {\n this.localState.setResolvers(resolvers);\n }\n\n /**\n * Get all registered local resolvers.\n */\n public getResolvers() {\n return this.localState.getResolvers();\n }\n\n /**\n * Set a custom local state fragment matcher.\n */\n public setLocalStateFragmentMatcher(fragmentMatcher: FragmentMatcher) {\n this.localState.setFragmentMatcher(fragmentMatcher);\n }\n}\n","export const version = \"2.6.10\"","import {\n ApolloQueryResult,\n ApolloError,\n NetworkStatus,\n FetchMoreOptions,\n FetchMoreQueryOptions,\n UpdateQueryOptions,\n SubscribeToMoreOptions,\n} from 'apollo-client';\nimport { equal as isEqual } from '@wry/equality';\nimport {\n ApolloContextValue,\n DocumentType,\n QueryResult,\n ObservableQueryFields,\n} from '@apollo/react-common';\n\nimport {\n QueryPreviousData,\n QueryOptions,\n QueryCurrentObservable,\n QueryTuple,\n QueryLazyOptions,\n} from '../types';\nimport { OperationData } from './OperationData';\n\nexport class QueryData extends OperationData {\n public onNewData: () => void;\n\n private previousData: QueryPreviousData = {};\n private currentObservable: QueryCurrentObservable = {};\n private runLazy: boolean = false;\n private lazyOptions?: QueryLazyOptions;\n\n constructor({\n options,\n context,\n onNewData,\n }: {\n options: QueryOptions;\n context: ApolloContextValue;\n onNewData: () => void;\n }) {\n super(options, context);\n this.onNewData = onNewData;\n }\n\n public execute(): QueryResult {\n this.refreshClient();\n\n const { skip, query } = this.getOptions();\n if (skip || query !== this.previousData.query) {\n this.removeQuerySubscription();\n this.previousData.query = query;\n }\n\n this.updateObservableQuery();\n\n if (this.isMounted) this.startQuerySubscription();\n\n return this.getExecuteSsrResult() || this.getExecuteResult();\n }\n\n public executeLazy(): QueryTuple {\n return !this.runLazy\n ? [\n this.runLazyQuery,\n {\n loading: false,\n networkStatus: NetworkStatus.ready,\n called: false,\n data: undefined,\n } as QueryResult,\n ]\n : [this.runLazyQuery, this.execute()];\n }\n\n // For server-side rendering\n public fetchData(): Promise> | boolean {\n const options = this.getOptions();\n if (options.skip || options.ssr === false) return false;\n\n // currentObservable.query is already assigned the registered SSR observable in initializeObservableQuery.\n const obs = this.currentObservable.query!;\n const currentResult = obs.getCurrentResult();\n return currentResult.loading ? obs.result() : false;\n }\n\n public afterExecute({ lazy = false }: { lazy?: boolean } = {}) {\n this.isMounted = true;\n\n if (!lazy || this.runLazy) {\n this.handleErrorOrCompleted();\n }\n\n this.previousOptions = this.getOptions();\n return this.unmount.bind(this);\n }\n\n public cleanup() {\n this.removeQuerySubscription();\n delete this.currentObservable.query;\n delete this.previousData.result;\n }\n\n public getOptions() {\n const options = super.getOptions();\n\n if (this.lazyOptions) {\n options.variables = {\n ...options.variables,\n ...this.lazyOptions.variables,\n };\n options.context = {\n ...options.context,\n ...this.lazyOptions.context,\n };\n }\n\n // skip is not supported when using lazy query execution.\n if (this.runLazy) {\n delete options.skip;\n }\n\n return options;\n }\n\n public ssrInitiated() {\n return this.context && this.context.renderPromises;\n }\n\n private runLazyQuery = (options?: QueryLazyOptions) => {\n this.cleanup();\n this.runLazy = true;\n this.lazyOptions = options;\n this.onNewData();\n };\n\n private getExecuteResult = (): QueryResult => {\n const result = this.getQueryResult();\n this.startQuerySubscription();\n return result;\n };\n\n private getExecuteSsrResult() {\n const ssrDisabled = this.getOptions().ssr === false;\n const fetchDisabled = this.refreshClient().client.disableNetworkFetches;\n\n const ssrLoading = {\n loading: true,\n networkStatus: NetworkStatus.loading,\n called: true,\n data: undefined,\n stale: false,\n client: this.client,\n ...this.observableQueryFields(),\n } as QueryResult;\n\n // If SSR has been explicitly disabled, and this function has been called\n // on the server side, return the default loading state.\n if (ssrDisabled && (this.ssrInitiated() || fetchDisabled)) {\n this.previousData.result = ssrLoading;\n return ssrLoading;\n }\n\n let result;\n if (this.ssrInitiated()) {\n result =\n this.context.renderPromises!.addQueryPromise(\n this,\n this.getExecuteResult\n ) || ssrLoading;\n }\n\n return result;\n }\n\n private prepareObservableQueryOptions() {\n const options = this.getOptions();\n this.verifyDocumentType(options.query, DocumentType.Query);\n const displayName = options.displayName || 'Query';\n\n // Set the fetchPolicy to cache-first for network-only and cache-and-network\n // fetches for server side renders.\n if (\n this.ssrInitiated() &&\n (options.fetchPolicy === 'network-only' ||\n options.fetchPolicy === 'cache-and-network')\n ) {\n options.fetchPolicy = 'cache-first';\n }\n\n return {\n ...options,\n displayName,\n context: options.context,\n metadata: { reactComponent: { displayName } },\n };\n }\n\n private initializeObservableQuery() {\n // See if there is an existing observable that was used to fetch the same\n // data and if so, use it instead since it will contain the proper queryId\n // to fetch the result set. This is used during SSR.\n if (this.ssrInitiated()) {\n this.currentObservable.query = this.context!.renderPromises!.getSSRObservable(\n this.getOptions()\n );\n }\n\n if (!this.currentObservable.query) {\n const observableQueryOptions = this.prepareObservableQueryOptions();\n\n this.previousData.observableQueryOptions = {\n ...observableQueryOptions,\n children: null,\n };\n this.currentObservable.query = this.refreshClient().client.watchQuery({\n ...observableQueryOptions,\n });\n\n if (this.ssrInitiated()) {\n this.context?.renderPromises?.registerSSRObservable(\n this.currentObservable.query,\n observableQueryOptions\n );\n }\n }\n }\n\n private updateObservableQuery() {\n // If we skipped initially, we may not have yet created the observable\n if (!this.currentObservable.query) {\n this.initializeObservableQuery();\n return;\n }\n\n const newObservableQueryOptions = {\n ...this.prepareObservableQueryOptions(),\n children: null,\n };\n\n if (\n !isEqual(\n newObservableQueryOptions,\n this.previousData.observableQueryOptions\n )\n ) {\n this.previousData.observableQueryOptions = newObservableQueryOptions;\n this.currentObservable\n .query!.setOptions(newObservableQueryOptions)\n // The error will be passed to the child container, so we don't\n // need to log it here. We could conceivably log something if\n // an option was set. OTOH we don't log errors w/ the original\n // query. See https://github.com/apollostack/react-apollo/issues/404\n .catch(() => {});\n }\n }\n\n private startQuerySubscription() {\n if (this.currentObservable.subscription || this.getOptions().skip) return;\n\n const obsQuery = this.currentObservable.query!;\n this.currentObservable.subscription = obsQuery.subscribe({\n next: ({ loading, networkStatus, data }) => {\n const previousResult = this.previousData.result;\n\n // Make sure we're not attempting to re-render similar results\n if (\n previousResult &&\n previousResult.loading === loading &&\n previousResult.networkStatus === networkStatus &&\n isEqual(previousResult.data, data)\n ) {\n return;\n }\n\n this.onNewData();\n },\n error: (error) => {\n this.resubscribeToQuery();\n if (!error.hasOwnProperty('graphQLErrors')) throw error;\n\n const previousResult = this.previousData.result;\n if (\n (previousResult && previousResult.loading) ||\n !isEqual(error, this.previousData.error)\n ) {\n this.previousData.error = error;\n this.onNewData();\n }\n },\n });\n }\n\n private resubscribeToQuery() {\n this.removeQuerySubscription();\n\n // Unfortunately, if `lastError` is set in the current\n // `observableQuery` when the subscription is re-created,\n // the subscription will immediately receive the error, which will\n // cause it to terminate again. To avoid this, we first clear\n // the last error/result from the `observableQuery` before re-starting\n // the subscription, and restore it afterwards (so the subscription\n // has a chance to stay open).\n const lastError = this.currentObservable.query!.getLastError();\n const lastResult = this.currentObservable.query!.getLastResult();\n this.currentObservable.query!.resetLastResults();\n this.startQuerySubscription();\n Object.assign(this.currentObservable.query!, {\n lastError,\n lastResult,\n });\n }\n\n private getQueryResult(): QueryResult {\n let result: any = this.observableQueryFields();\n const options = this.getOptions();\n\n // When skipping a query (ie. we're not querying for data but still want\n // to render children), make sure the `data` is cleared out and\n // `loading` is set to `false` (since we aren't loading anything).\n if (options.skip) {\n result = {\n ...result,\n data: undefined,\n error: undefined,\n loading: false,\n called: true,\n };\n } else {\n // Fetch the current result (if any) from the store.\n const currentResult = this.currentObservable.query!.getCurrentResult();\n const { loading, partial, networkStatus, errors } = currentResult;\n let { error, data } = currentResult;\n\n // Until a set naming convention for networkError and graphQLErrors is\n // decided upon, we map errors (graphQLErrors) to the error options.\n if (errors && errors.length > 0) {\n error = new ApolloError({ graphQLErrors: errors });\n }\n\n result = {\n ...result,\n loading,\n networkStatus,\n error,\n called: true,\n };\n\n if (loading) {\n const previousData =\n this.previousData.result && this.previousData.result.data;\n result.data =\n previousData && data\n ? {\n ...previousData,\n ...data,\n }\n : previousData || data;\n } else if (error) {\n Object.assign(result, {\n data: (this.currentObservable.query!.getLastResult() || ({} as any))\n .data,\n });\n } else {\n const { fetchPolicy } = this.currentObservable.query!.options;\n const { partialRefetch } = options;\n if (\n partialRefetch &&\n !data &&\n partial &&\n fetchPolicy !== 'cache-only'\n ) {\n // When a `Query` component is mounted, and a mutation is executed\n // that returns the same ID as the mounted `Query`, but has less\n // fields in its result, Apollo Client's `QueryManager` returns the\n // data as `undefined` since a hit can't be found in the cache.\n // This can lead to application errors when the UI elements rendered by\n // the original `Query` component are expecting certain data values to\n // exist, and they're all of a sudden stripped away. To help avoid\n // this we'll attempt to refetch the `Query` data.\n Object.assign(result, {\n loading: true,\n networkStatus: NetworkStatus.loading,\n });\n result.refetch();\n return result;\n }\n\n result.data = data;\n }\n }\n\n result.client = this.client;\n this.previousData.loading =\n (this.previousData.result && this.previousData.result.loading) || false;\n this.previousData.result = result;\n\n // Any query errors that exist are now available in `result`, so we'll\n // remove the original errors from the `ObservableQuery` query store to\n // make sure they aren't re-displayed on subsequent (potentially error\n // free) requests/responses.\n this.currentObservable.query &&\n this.currentObservable.query.resetQueryStoreErrors();\n\n return result;\n }\n\n private handleErrorOrCompleted() {\n const obsQuery = this.currentObservable.query;\n if (!obsQuery || !this.previousData.result) return;\n\n const { data, loading, error } = this.previousData.result;\n\n if (!loading) {\n const { query, variables, onCompleted, onError } = this.getOptions();\n\n // No changes, so we won't call onError/onCompleted.\n if (\n this.previousOptions &&\n !this.previousData.loading &&\n isEqual(this.previousOptions.query, query) &&\n isEqual(this.previousOptions.variables, variables)\n ) {\n return;\n }\n\n if (onCompleted && !error) {\n onCompleted(data);\n } else if (onError && error) {\n onError(error);\n }\n }\n }\n\n private removeQuerySubscription() {\n if (this.currentObservable.subscription) {\n this.currentObservable.subscription.unsubscribe();\n delete this.currentObservable.subscription;\n }\n }\n\n private obsRefetch = (variables?: TVariables) =>\n this.currentObservable.query!.refetch(variables);\n\n private obsFetchMore = (\n fetchMoreOptions: FetchMoreQueryOptions &\n FetchMoreOptions\n ) => this.currentObservable.query!.fetchMore(fetchMoreOptions);\n\n private obsUpdateQuery = (\n mapFn: (\n previousQueryResult: TData,\n options: UpdateQueryOptions\n ) => TData\n ) => this.currentObservable.query!.updateQuery(mapFn);\n\n private obsStartPolling = (pollInterval: number) => {\n this.currentObservable &&\n this.currentObservable.query! &&\n this.currentObservable.query!.startPolling(pollInterval);\n };\n\n private obsStopPolling = () => {\n this.currentObservable &&\n this.currentObservable.query! &&\n this.currentObservable.query!.stopPolling();\n };\n\n private obsSubscribeToMore = <\n TSubscriptionData = TData,\n TSubscriptionVariables = TVariables\n >(\n options: SubscribeToMoreOptions<\n TData,\n TSubscriptionVariables,\n TSubscriptionData\n >\n ) => this.currentObservable.query!.subscribeToMore(options);\n\n private observableQueryFields() {\n const observable = this.currentObservable.query!;\n return {\n variables: observable.variables,\n refetch: this.obsRefetch,\n fetchMore: this.obsFetchMore,\n updateQuery: this.obsUpdateQuery,\n startPolling: this.obsStartPolling,\n stopPolling: this.obsStopPolling,\n subscribeToMore: this.obsSubscribeToMore,\n } as ObservableQueryFields;\n }\n}\n","import { useContext, useEffect, useReducer, useRef } from 'react';\nimport {\n getApolloContext,\n OperationVariables,\n QueryResult,\n} from '@apollo/react-common';\nimport { DocumentNode } from 'graphql';\n\nimport { QueryHookOptions, QueryOptions, QueryTuple } from '../types';\nimport { QueryData } from '../data/QueryData';\nimport { useDeepMemo } from './useDeepMemo';\n\nexport function useBaseQuery(\n query: DocumentNode,\n options?: QueryHookOptions,\n lazy = false\n) {\n const context = useContext(getApolloContext());\n const [tick, forceUpdate] = useReducer((x) => x + 1, 0);\n const updatedOptions = options ? { ...options, query } : { query };\n\n const queryDataRef = useRef>();\n const queryData =\n queryDataRef.current ||\n new QueryData({\n options: updatedOptions as QueryOptions,\n context,\n onNewData() {\n if (!queryData.ssrInitiated()) {\n // When new data is received from the `QueryData` object, we want to\n // force a re-render to make sure the new data is displayed. We can't\n // force that re-render if we're already rendering however so to be\n // safe we'll trigger the re-render in a microtask.\n Promise.resolve().then(forceUpdate);\n } else {\n // If we're rendering on the server side we can force an update at\n // any point.\n forceUpdate();\n }\n },\n });\n\n queryData.setOptions(updatedOptions);\n queryData.context = context;\n\n // SSR won't trigger the effect hook below that stores the current\n // `QueryData` instance for future renders, so we'll handle that here if\n // the current render is happening server side.\n if (queryData.ssrInitiated() && !queryDataRef.current) {\n queryDataRef.current = queryData;\n }\n\n // `onError` and `onCompleted` callback functions will not always have a\n // stable identity, so we'll exclude them from the memoization key to\n // prevent `afterExecute` from being triggered un-necessarily.\n const memo = {\n options: { ...updatedOptions, onError: undefined, onCompleted: undefined },\n context,\n tick,\n };\n\n const result = useDeepMemo(\n () => (lazy ? queryData.executeLazy() : queryData.execute()),\n memo\n );\n\n const queryResult = lazy\n ? (result as QueryTuple)[1]\n : (result as QueryResult);\n\n useEffect(() => {\n // We only need one instance of the `QueryData` class, so we'll store it\n // as a ref to make it available on subsequent renders.\n if (!queryDataRef.current) {\n queryDataRef.current = queryData;\n }\n\n return () => queryData.cleanup();\n }, []);\n\n useEffect(() => queryData.afterExecute({ lazy }), [\n queryResult.loading,\n queryResult.networkStatus,\n queryResult.error,\n queryResult.data,\n ]);\n\n return result;\n}\n","import { useRef } from 'react';\nimport { equal as isEqual } from '@wry/equality';\n\n/**\n * Memoize a result using deep equality. This hook has two advantages over\n * React.useMemo: it uses deep equality to compare memo keys, and it guarantees\n * that the memo function will only be called if the keys are unequal.\n * React.useMemo cannot be relied on to do this, since it is only a performance\n * optimization (see https://reactjs.org/docs/hooks-reference.html#usememo).\n */\nexport function useDeepMemo(\n memoFn: () => TValue,\n key: TKey\n): TValue {\n const ref = useRef<{ key: TKey; value: TValue }>();\n\n if (!ref.current || !isEqual(key, ref.current.key)) {\n ref.current = { key, value: memoFn() };\n }\n\n return ref.current.value;\n}\n","import { OperationVariables, QueryResult } from '@apollo/react-common';\nimport { DocumentNode } from 'graphql';\n\nimport { QueryHookOptions } from './types';\nimport { useBaseQuery } from './utils/useBaseQuery';\n\nexport function useQuery(\n query: DocumentNode,\n options?: QueryHookOptions\n) {\n return useBaseQuery(query, options, false) as QueryResult<\n TData,\n TVariables\n >;\n}\n","import { OperationVariables } from '@apollo/react-common';\nimport { DocumentNode } from 'graphql';\n\nimport { LazyQueryHookOptions, QueryTuple } from './types';\nimport { useBaseQuery } from './utils/useBaseQuery';\n\nexport function useLazyQuery(\n query: DocumentNode,\n options?: LazyQueryHookOptions\n) {\n return useBaseQuery(query, options, true) as QueryTuple<\n TData,\n TVariables\n >;\n}\n","import { ApolloError } from 'apollo-client';\nimport { equal as isEqual } from '@wry/equality';\nimport {\n ApolloContextValue,\n DocumentType,\n OperationVariables,\n ExecutionResult,\n MutationFunctionOptions,\n MutationResult\n} from '@apollo/react-common';\n\nimport { MutationOptions, MutationTuple } from '../types';\nimport { OperationData } from './OperationData';\n\nexport class MutationData<\n TData = any,\n TVariables = OperationVariables\n> extends OperationData {\n private mostRecentMutationId: number;\n private result: MutationResult;\n private previousResult?: MutationResult;\n private setResult: (result: MutationResult) => any;\n\n constructor({\n options,\n context,\n result,\n setResult\n }: {\n options: MutationOptions;\n context: ApolloContextValue;\n result: MutationResult;\n setResult: (result: MutationResult) => any;\n }) {\n super(options, context);\n this.verifyDocumentType(options.mutation, DocumentType.Mutation);\n this.result = result;\n this.setResult = setResult;\n this.mostRecentMutationId = 0;\n }\n\n public execute(result: MutationResult) {\n this.isMounted = true;\n this.verifyDocumentType(this.getOptions().mutation, DocumentType.Mutation);\n result.client = this.refreshClient().client;\n return [this.runMutation, result] as MutationTuple;\n }\n\n public afterExecute() {\n this.isMounted = true;\n return this.unmount.bind(this);\n }\n\n public cleanup() {\n // No cleanup required.\n }\n\n private runMutation = (\n mutationFunctionOptions: MutationFunctionOptions<\n TData,\n TVariables\n > = {} as MutationFunctionOptions\n ) => {\n this.onMutationStart();\n const mutationId = this.generateNewMutationId();\n\n return this.mutate(mutationFunctionOptions)\n .then((response: ExecutionResult) => {\n this.onMutationCompleted(response, mutationId);\n return response;\n })\n .catch((error: ApolloError) => {\n this.onMutationError(error, mutationId);\n if (!this.getOptions().onError) throw error;\n });\n };\n\n private mutate(\n mutationFunctionOptions: MutationFunctionOptions\n ) {\n const {\n mutation,\n variables,\n optimisticResponse,\n update,\n context: mutationContext = {},\n awaitRefetchQueries = false,\n fetchPolicy\n } = this.getOptions();\n const mutateOptions = { ...mutationFunctionOptions };\n\n const mutateVariables = Object.assign(\n {},\n variables,\n mutateOptions.variables\n );\n delete mutateOptions.variables;\n\n return this.refreshClient().client.mutate({\n mutation,\n optimisticResponse,\n refetchQueries:\n mutateOptions.refetchQueries || this.getOptions().refetchQueries,\n awaitRefetchQueries,\n update,\n context: mutationContext,\n fetchPolicy,\n variables: mutateVariables,\n ...mutateOptions\n });\n }\n\n private onMutationStart() {\n if (!this.result.loading && !this.getOptions().ignoreResults) {\n this.updateResult({\n loading: true,\n error: undefined,\n data: undefined,\n called: true\n });\n }\n }\n\n private onMutationCompleted(\n response: ExecutionResult,\n mutationId: number\n ) {\n const { onCompleted, ignoreResults } = this.getOptions();\n\n const { data, errors } = response;\n const error =\n errors && errors.length > 0\n ? new ApolloError({ graphQLErrors: errors })\n : undefined;\n\n const callOncomplete = () =>\n onCompleted ? onCompleted(data as TData) : null;\n\n if (this.isMostRecentMutation(mutationId) && !ignoreResults) {\n this.updateResult({\n called: true,\n loading: false,\n data,\n error\n });\n }\n callOncomplete();\n }\n\n private onMutationError(error: ApolloError, mutationId: number) {\n const { onError } = this.getOptions();\n\n if (this.isMostRecentMutation(mutationId)) {\n this.updateResult({\n loading: false,\n error,\n data: undefined,\n called: true\n });\n }\n\n if (onError) {\n onError(error);\n }\n }\n\n private generateNewMutationId(): number {\n return ++this.mostRecentMutationId;\n }\n\n private isMostRecentMutation(mutationId: number) {\n return this.mostRecentMutationId === mutationId;\n }\n\n private updateResult(result: MutationResult) {\n if (\n this.isMounted &&\n (!this.previousResult || !isEqual(this.previousResult, result))\n ) {\n this.setResult(result);\n this.previousResult = result;\n }\n }\n}\n","import { useContext, useState, useRef, useEffect } from 'react';\nimport { getApolloContext, OperationVariables } from '@apollo/react-common';\nimport { DocumentNode } from 'graphql';\n\nimport { MutationHookOptions, MutationTuple } from './types';\nimport { MutationData } from './data/MutationData';\n\nexport function useMutation(\n mutation: DocumentNode,\n options?: MutationHookOptions\n): MutationTuple {\n const context = useContext(getApolloContext());\n const [result, setResult] = useState({ called: false, loading: false });\n const updatedOptions = options ? { ...options, mutation } : { mutation };\n\n const mutationDataRef = useRef>();\n function getMutationDataRef() {\n if (!mutationDataRef.current) {\n mutationDataRef.current = new MutationData({\n options: updatedOptions,\n context,\n result,\n setResult\n });\n }\n return mutationDataRef.current;\n }\n\n const mutationData = getMutationDataRef();\n mutationData.setOptions(updatedOptions);\n mutationData.context = context;\n\n useEffect(() => mutationData.afterExecute());\n\n return mutationData.execute(result);\n}\n","import { equal as isEqual } from '@wry/equality';\nimport { ApolloContextValue, SubscriptionResult } from '@apollo/react-common';\n\nimport { OperationData } from './OperationData';\nimport { SubscriptionCurrentObservable, SubscriptionOptions } from '../types';\n\nexport class SubscriptionData<\n TData = any,\n TVariables = any\n> extends OperationData> {\n private setResult: any;\n private currentObservable: SubscriptionCurrentObservable = {};\n\n constructor({\n options,\n context,\n setResult\n }: {\n options: SubscriptionOptions;\n context: ApolloContextValue;\n setResult: any;\n }) {\n super(options, context);\n this.setResult = setResult;\n this.initialize(options);\n }\n\n public execute(result: SubscriptionResult) {\n if (this.getOptions().skip === true) {\n this.cleanup();\n return {\n loading: false,\n error: undefined,\n data: undefined,\n variables: this.getOptions().variables\n };\n }\n\n let currentResult = result;\n if (this.refreshClient().isNew) {\n currentResult = this.getLoadingResult();\n }\n\n let { shouldResubscribe } = this.getOptions();\n if (typeof shouldResubscribe === 'function') {\n shouldResubscribe = !!shouldResubscribe(this.getOptions());\n }\n\n if (\n shouldResubscribe !== false &&\n this.previousOptions &&\n Object.keys(this.previousOptions).length > 0 &&\n (this.previousOptions.subscription !== this.getOptions().subscription ||\n !isEqual(this.previousOptions.variables, this.getOptions().variables) ||\n this.previousOptions.skip !== this.getOptions().skip)\n ) {\n this.cleanup();\n currentResult = this.getLoadingResult();\n }\n\n this.initialize(this.getOptions());\n this.startSubscription();\n\n this.previousOptions = this.getOptions();\n return { ...currentResult, variables: this.getOptions().variables };\n }\n\n public afterExecute() {\n this.isMounted = true;\n }\n\n public cleanup() {\n this.endSubscription();\n delete this.currentObservable.query;\n }\n\n private initialize(options: SubscriptionOptions) {\n if (this.currentObservable.query || this.getOptions().skip === true) return;\n this.currentObservable.query = this.refreshClient().client.subscribe({\n query: options.subscription,\n variables: options.variables,\n fetchPolicy: options.fetchPolicy\n });\n }\n\n private startSubscription() {\n if (this.currentObservable.subscription) return;\n this.currentObservable.subscription = this.currentObservable.query!.subscribe(\n {\n next: this.updateCurrentData.bind(this),\n error: this.updateError.bind(this),\n complete: this.completeSubscription.bind(this)\n }\n );\n }\n\n private getLoadingResult() {\n return {\n loading: true,\n error: undefined,\n data: undefined\n };\n }\n\n private updateResult(result: SubscriptionResult) {\n if (this.isMounted) {\n this.setResult(result);\n }\n }\n\n private updateCurrentData(result: SubscriptionResult) {\n const { onSubscriptionData } = this.getOptions();\n\n this.updateResult({\n data: result.data,\n loading: false,\n error: undefined\n });\n\n if (onSubscriptionData) {\n onSubscriptionData({\n client: this.refreshClient().client,\n subscriptionData: result\n });\n }\n }\n\n private updateError(error: any) {\n this.updateResult({\n error,\n loading: false\n });\n }\n\n private completeSubscription() {\n const { onSubscriptionComplete } = this.getOptions();\n if (onSubscriptionComplete) onSubscriptionComplete();\n this.endSubscription();\n }\n\n private endSubscription() {\n if (this.currentObservable.subscription) {\n this.currentObservable.subscription.unsubscribe();\n delete this.currentObservable.subscription;\n }\n }\n}\n","import { useContext, useState, useRef, useEffect } from 'react';\nimport { DocumentNode } from 'graphql';\nimport { getApolloContext, OperationVariables } from '@apollo/react-common';\n\nimport { SubscriptionHookOptions } from './types';\nimport { SubscriptionData } from './data/SubscriptionData';\n\nexport function useSubscription(\n subscription: DocumentNode,\n options?: SubscriptionHookOptions\n) {\n const context = useContext(getApolloContext());\n const updatedOptions = options\n ? { ...options, subscription }\n : { subscription };\n const [result, setResult] = useState({\n loading: !updatedOptions.skip,\n error: undefined,\n data: undefined\n });\n\n const subscriptionDataRef = useRef>();\n function getSubscriptionDataRef() {\n if (!subscriptionDataRef.current) {\n subscriptionDataRef.current = new SubscriptionData({\n options: updatedOptions,\n context,\n setResult\n });\n }\n return subscriptionDataRef.current;\n }\n\n const subscriptionData = getSubscriptionDataRef();\n subscriptionData.setOptions(updatedOptions, true);\n subscriptionData.context = context;\n\n useEffect(() => subscriptionData.afterExecute());\n useEffect(() => subscriptionData.cleanup.bind(subscriptionData), []);\n\n return subscriptionData.execute(result);\n}\n","import React from 'react';\nimport { invariant } from 'ts-invariant';\nimport { getApolloContext } from '@apollo/react-common';\nimport ApolloClient from 'apollo-client';\n\nexport function useApolloClient(): ApolloClient {\n const { client } = React.useContext(getApolloContext());\n invariant(\n client,\n 'No Apollo Client instance can be found. Please ensure that you ' +\n 'have called `ApolloProvider` higher up in your tree.'\n );\n return client!;\n}\n","import { ObservableQuery } from 'apollo-client';\nimport { QueryOptions } from '../types';\nimport { DocumentNode } from 'graphql';\nimport { QueryData } from '../data/QueryData';\n\ntype QueryInfo = {\n seen: boolean;\n observable: ObservableQuery | null;\n};\n\nfunction makeDefaultQueryInfo(): QueryInfo {\n return {\n seen: false,\n observable: null\n };\n}\n\nexport class RenderPromises {\n // Map from Query component instances to pending fetchData promises.\n private queryPromises = new Map, Promise>();\n\n // Two-layered map from (query document, stringified variables) to QueryInfo\n // objects. These QueryInfo objects are intended to survive through the whole\n // getMarkupFromTree process, whereas specific Query instances do not survive\n // beyond a single call to renderToStaticMarkup.\n private queryInfoTrie = new Map>();\n\n // Registers the server side rendered observable.\n public registerSSRObservable(\n observable: ObservableQuery,\n props: QueryOptions\n ) {\n this.lookupQueryInfo(props).observable = observable;\n }\n\n // Get's the cached observable that matches the SSR Query instances query and variables.\n public getSSRObservable(\n props: QueryOptions\n ) {\n return this.lookupQueryInfo(props).observable;\n }\n\n public addQueryPromise(\n queryInstance: QueryData,\n finish: () => React.ReactNode\n ): React.ReactNode {\n const info = this.lookupQueryInfo(queryInstance.getOptions());\n if (!info.seen) {\n this.queryPromises.set(\n queryInstance.getOptions(),\n new Promise(resolve => {\n resolve(queryInstance.fetchData());\n })\n );\n // Render null to abandon this subtree for this rendering, so that we\n // can wait for the data to arrive.\n return null;\n }\n return finish();\n }\n\n public hasPromises() {\n return this.queryPromises.size > 0;\n }\n\n public consumeAndAwaitPromises() {\n const promises: Promise[] = [];\n this.queryPromises.forEach((promise, queryInstance) => {\n // Make sure we never try to call fetchData for this query document and\n // these variables again. Since the queryInstance objects change with\n // every rendering, deduplicating them by query and variables is the\n // best we can do. If a different Query component happens to have the\n // same query document and variables, it will be immediately rendered\n // by calling finish() in addQueryPromise, which could result in the\n // rendering of an unwanted loading state, but that's not nearly as bad\n // as getting stuck in an infinite rendering loop because we kept calling\n // queryInstance.fetchData for the same Query component indefinitely.\n this.lookupQueryInfo(queryInstance).seen = true;\n promises.push(promise);\n });\n this.queryPromises.clear();\n return Promise.all(promises);\n }\n\n private lookupQueryInfo(\n props: QueryOptions\n ): QueryInfo {\n const { queryInfoTrie } = this;\n const { query, variables } = props;\n const varMap = queryInfoTrie.get(query) || new Map();\n if (!queryInfoTrie.has(query)) queryInfoTrie.set(query, varMap);\n const variablesString = JSON.stringify(variables);\n const info = varMap.get(variablesString) || makeDefaultQueryInfo();\n if (!varMap.has(variablesString)) varMap.set(variablesString, info);\n return info;\n }\n}\n","import { OperationVariables } from '@apollo/react-common';\nimport { useQuery } from '@apollo/react-hooks';\nimport PropTypes from 'prop-types';\n\nimport { QueryComponentOptions } from './types';\n\nexport function Query(\n props: QueryComponentOptions\n) {\n const { children, query, ...options } = props;\n const result = useQuery(query, options);\n return children && result ? children(result) : null;\n}\n\nexport namespace Query {\n export const propTypes = {\n client: PropTypes.object,\n children: PropTypes.func.isRequired,\n fetchPolicy: PropTypes.string,\n notifyOnNetworkStatusChange: PropTypes.bool,\n onCompleted: PropTypes.func,\n onError: PropTypes.func,\n pollInterval: PropTypes.number,\n query: PropTypes.object.isRequired,\n variables: PropTypes.object,\n ssr: PropTypes.bool,\n partialRefetch: PropTypes.bool,\n returnPartialData: PropTypes.bool\n };\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import { OperationVariables } from '@apollo/react-common';\nimport { useMutation } from '@apollo/react-hooks';\nimport PropTypes from 'prop-types';\n\nimport { MutationComponentOptions } from './types';\n\nexport function Mutation(\n props: MutationComponentOptions\n) {\n const [runMutation, result] = useMutation(props.mutation, props);\n return props.children ? props.children(runMutation, result) : null;\n}\n\nexport namespace Mutation {\n export const propTypes = {\n mutation: PropTypes.object.isRequired,\n variables: PropTypes.object,\n optimisticResponse: PropTypes.oneOfType([PropTypes.object, PropTypes.func]),\n refetchQueries: PropTypes.oneOfType([\n PropTypes.arrayOf(\n PropTypes.oneOfType([PropTypes.string, PropTypes.object])\n ),\n PropTypes.func\n ]),\n awaitRefetchQueries: PropTypes.bool,\n update: PropTypes.func,\n children: PropTypes.func.isRequired,\n onCompleted: PropTypes.func,\n onError: PropTypes.func,\n fetchPolicy: PropTypes.string\n };\n}\n","import { OperationVariables } from '@apollo/react-common';\nimport { useSubscription } from '@apollo/react-hooks';\nimport PropTypes from 'prop-types';\n\nimport { SubscriptionComponentOptions } from './types';\n\nexport function Subscription(\n props: SubscriptionComponentOptions\n) {\n const result = useSubscription(props.subscription, props);\n return props.children && result ? props.children(result) : null;\n}\n\nexport namespace Subscription {\n export const propTypes = {\n subscription: PropTypes.object.isRequired,\n variables: PropTypes.object,\n children: PropTypes.func,\n onSubscriptionData: PropTypes.func,\n onSubscriptionComplete: PropTypes.func,\n shouldResubscribe: PropTypes.oneOfType([PropTypes.func, PropTypes.bool]),\n };\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import React from 'react';\nimport { invariant } from 'ts-invariant';\nimport { IDocumentDefinition, OperationVariables } from '@apollo/react-common';\n\nexport const defaultMapPropsToOptions = () => ({});\nexport const defaultMapResultToProps:

(props: P) => P = props => props;\nexport const defaultMapPropsToSkip = () => false;\n\nexport function getDisplayName

(WrappedComponent: React.ComponentType

) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n}\n\nexport function calculateVariablesFromProps(\n operation: IDocumentDefinition,\n props: TProps\n) {\n let variables: OperationVariables = {};\n for (let { variable, type } of operation.variables) {\n if (!variable.name || !variable.name.value) continue;\n\n const variableName = variable.name.value;\n const variableProp = (props as any)[variableName];\n\n if (typeof variableProp !== 'undefined') {\n variables[variableName] = variableProp;\n continue;\n }\n\n // Allow optional props\n if (type.kind !== 'NonNullType') {\n variables[variableName] = undefined;\n }\n }\n return variables;\n}\n\nexport type RefSetter = (\n ref: React.ComponentClass\n) => void | void;\n\n// base class for hocs to easily manage refs\nexport class GraphQLBase<\n TProps,\n TChildProps,\n TState = any\n > extends React.Component {\n public withRef: boolean = false;\n // wrapped instance\n private wrappedInstance?: React.ComponentClass;\n\n constructor(props: TProps) {\n super(props);\n this.setWrappedInstance = this.setWrappedInstance.bind(this);\n }\n\n getWrappedInstance() {\n invariant(\n this.withRef,\n `To access the wrapped instance, you need to specify ` +\n `{ withRef: true } in the options`\n );\n\n return this.wrappedInstance;\n }\n\n setWrappedInstance(ref: React.ComponentClass) {\n this.wrappedInstance = ref;\n }\n}\n","import React from 'react';\nimport { DocumentNode } from 'graphql';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { parser, BaseQueryOptions } from '@apollo/react-common';\nimport { Query } from '@apollo/react-components';\n\nimport {\n getDisplayName,\n GraphQLBase,\n calculateVariablesFromProps,\n defaultMapPropsToOptions,\n defaultMapPropsToSkip\n} from './hoc-utils';\nimport { OperationOption, OptionProps, DataProps } from './types';\n\nexport function withQuery<\n TProps extends TGraphQLVariables | {} = {},\n TData = {},\n TGraphQLVariables = {},\n TChildProps = DataProps\n>(\n document: DocumentNode,\n operationOptions: OperationOption<\n TProps,\n TData,\n TGraphQLVariables,\n TChildProps\n > = {}\n) {\n // this is memoized so if coming from `graphql` there is nearly no extra cost\n const operation = parser(document);\n // extract options\n const {\n options = defaultMapPropsToOptions,\n skip = defaultMapPropsToSkip,\n alias = 'Apollo'\n } = operationOptions;\n\n let mapPropsToOptions = options as (props: any) => BaseQueryOptions;\n if (typeof mapPropsToOptions !== 'function') {\n mapPropsToOptions = () => options as BaseQueryOptions;\n }\n\n let mapPropsToSkip = skip as (props: any) => boolean;\n if (typeof mapPropsToSkip !== 'function') {\n mapPropsToSkip = () => skip as any;\n }\n\n // allow for advanced referential equality checks\n let lastResultProps: TChildProps | void;\n return (\n WrappedComponent: React.ComponentType\n ): React.ComponentClass => {\n const graphQLDisplayName = `${alias}(${getDisplayName(WrappedComponent)})`;\n class GraphQL extends GraphQLBase {\n static displayName = graphQLDisplayName;\n static WrappedComponent = WrappedComponent;\n\n render() {\n let props = this.props;\n const shouldSkip = mapPropsToSkip(props);\n const opts = shouldSkip\n ? Object.create(null)\n : { ...mapPropsToOptions(props) };\n\n if (!shouldSkip && !opts.variables && operation.variables.length > 0) {\n opts.variables = calculateVariablesFromProps(operation, props);\n }\n\n return (\n \n {({ client: _, data, ...r }: any) => {\n if (operationOptions.withRef) {\n this.withRef = true;\n props = Object.assign({}, props, {\n ref: this.setWrappedInstance\n });\n }\n\n // if we have skipped, no reason to manage any reshaping\n if (shouldSkip) {\n return (\n \n );\n }\n\n // the HOC's historically hoisted the data from the execution result\n // up onto the result since it was passed as a nested prop\n // we massage the Query components shape here to replicate that\n const result = Object.assign(r, data || {});\n const name = operationOptions.name || 'data';\n let childProps = { [name]: result };\n if (operationOptions.props) {\n const newResult: OptionProps<\n TProps,\n TData,\n TGraphQLVariables\n > = {\n [name]: result,\n ownProps: props as TProps\n };\n lastResultProps = operationOptions.props(\n newResult,\n lastResultProps\n );\n childProps = lastResultProps;\n }\n\n return (\n \n );\n }}\n \n );\n }\n }\n\n // Make sure we preserve any custom statics on the original component.\n return hoistNonReactStatics(GraphQL, WrappedComponent, {});\n };\n}\n","import React from 'react';\nimport { DocumentNode } from 'graphql';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport {\n parser,\n BaseMutationOptions,\n MutationFunction,\n MutationResult\n} from '@apollo/react-common';\nimport { Mutation } from '@apollo/react-components';\n\nimport {\n defaultMapPropsToOptions,\n getDisplayName,\n calculateVariablesFromProps,\n GraphQLBase\n} from './hoc-utils';\nimport { OperationOption, OptionProps, MutateProps } from './types';\n\nexport function withMutation<\n TProps extends TGraphQLVariables | {} = {},\n TData = {},\n TGraphQLVariables = {},\n TChildProps = MutateProps\n>(\n document: DocumentNode,\n operationOptions: OperationOption<\n TProps,\n TData,\n TGraphQLVariables,\n TChildProps\n > = {}\n) {\n // this is memoized so if coming from `graphql` there is nearly no extra cost\n const operation = parser(document);\n // extract options\n\n const {\n options = defaultMapPropsToOptions,\n alias = 'Apollo'\n } = operationOptions;\n\n let mapPropsToOptions = options as (props: any) => BaseMutationOptions;\n if (typeof mapPropsToOptions !== 'function')\n mapPropsToOptions = () => options as BaseMutationOptions;\n\n return (\n WrappedComponent: React.ComponentType\n ): React.ComponentClass => {\n const graphQLDisplayName = `${alias}(${getDisplayName(WrappedComponent)})`;\n class GraphQL extends GraphQLBase {\n static displayName = graphQLDisplayName;\n static WrappedComponent = WrappedComponent;\n render() {\n let props = this.props as TProps;\n const opts = mapPropsToOptions(props);\n\n if (operationOptions.withRef) {\n this.withRef = true;\n props = Object.assign({}, props, {\n ref: this.setWrappedInstance\n });\n }\n if (!opts.variables && operation.variables.length > 0) {\n opts.variables = calculateVariablesFromProps(operation, props);\n }\n\n return (\n \n {(\n mutate: MutationFunction,\n { data, ...r }: MutationResult\n ) => {\n // the HOC's historically hoisted the data from the execution result\n // up onto the result since it was passed as a nested prop\n // we massage the Mutation component's shape here to replicate that\n // this matches the query HoC\n const result = Object.assign(r, data || {});\n const name = operationOptions.name || 'mutate';\n const resultName = operationOptions.name\n ? `${name}Result`\n : 'result';\n let childProps = ({\n [name]: mutate,\n [resultName]: result\n } as any) as TChildProps;\n if (operationOptions.props) {\n const newResult: OptionProps<\n TProps,\n TData,\n TGraphQLVariables\n > = {\n [name]: mutate,\n [resultName]: result,\n ownProps: props\n };\n childProps = operationOptions.props(newResult) as any;\n }\n\n return ;\n }}\n \n );\n }\n }\n\n // Make sure we preserve any custom statics on the original component.\n return hoistNonReactStatics(GraphQL, WrappedComponent, {});\n };\n}\n","import React from 'react';\nimport { DocumentNode } from 'graphql';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { parser, BaseQueryOptions } from '@apollo/react-common';\nimport { Subscription } from '@apollo/react-components';\n\nimport {\n getDisplayName,\n GraphQLBase,\n calculateVariablesFromProps,\n defaultMapPropsToOptions,\n defaultMapPropsToSkip\n} from './hoc-utils';\nimport { OperationOption, OptionProps, DataProps } from './types';\n\nexport function withSubscription<\n TProps extends TGraphQLVariables | {} = {},\n TData = {},\n TGraphQLVariables = {},\n TChildProps = DataProps\n>(\n document: DocumentNode,\n operationOptions: OperationOption<\n TProps,\n TData,\n TGraphQLVariables,\n TChildProps\n > = {}\n) {\n // this is memoized so if coming from `graphql` there is nearly no extra cost\n const operation = parser(document);\n // extract options\n const {\n options = defaultMapPropsToOptions,\n skip = defaultMapPropsToSkip,\n alias = 'Apollo',\n shouldResubscribe\n } = operationOptions;\n\n let mapPropsToOptions = options as (props: any) => BaseQueryOptions;\n if (typeof mapPropsToOptions !== 'function')\n mapPropsToOptions = () => options as BaseQueryOptions;\n\n let mapPropsToSkip = skip as (props: any) => boolean;\n if (typeof mapPropsToSkip !== 'function') mapPropsToSkip = () => skip as any;\n\n // allow for advanced referential equality checks\n let lastResultProps: TChildProps | void;\n return (\n WrappedComponent: React.ComponentType\n ): React.ComponentClass => {\n const graphQLDisplayName = `${alias}(${getDisplayName(WrappedComponent)})`;\n class GraphQL extends GraphQLBase<\n TProps,\n TChildProps,\n { resubscribe: boolean }\n > {\n static displayName = graphQLDisplayName;\n static WrappedComponent = WrappedComponent;\n constructor(props: TProps) {\n super(props);\n this.state = { resubscribe: false };\n }\n\n componentDidUpate(prevProps: TProps) {\n if (shouldResubscribe) {\n this.setState({\n resubscribe: shouldResubscribe(prevProps, this.props)\n });\n }\n }\n\n render() {\n let props = this.props;\n const shouldSkip = mapPropsToSkip(props);\n const opts = shouldSkip\n ? Object.create(null)\n : mapPropsToOptions(props);\n\n if (!shouldSkip && !opts.variables && operation.variables.length > 0) {\n opts.variables = calculateVariablesFromProps(operation, props);\n }\n return (\n \n {({ data, ...r }: any) => {\n if (operationOptions.withRef) {\n this.withRef = true;\n props = Object.assign({}, props, {\n ref: this.setWrappedInstance\n });\n }\n // if we have skipped, no reason to manage any reshaping\n if (shouldSkip) {\n return (\n \n );\n }\n\n // the HOC's historically hoisted the data from the execution result\n // up onto the result since it was passed as a nested prop\n // we massage the Query components shape here to replicate that\n const result = Object.assign(r, data || {});\n const name = operationOptions.name || 'data';\n let childProps = { [name]: result };\n if (operationOptions.props) {\n const newResult: OptionProps<\n TProps,\n TData,\n TGraphQLVariables\n > = {\n [name]: result,\n ownProps: props as TProps\n };\n lastResultProps = operationOptions.props(\n newResult,\n lastResultProps\n );\n childProps = lastResultProps;\n }\n\n return (\n \n );\n }}\n \n );\n }\n }\n\n // Make sure we preserve any custom statics on the original component.\n return hoistNonReactStatics(GraphQL, WrappedComponent, {});\n };\n}\n","import { DocumentNode } from 'graphql';\nimport { parser, DocumentType } from '@apollo/react-common';\n\nimport { withQuery } from './query-hoc';\nimport { withMutation } from './mutation-hoc';\nimport { withSubscription } from './subscription-hoc';\nimport { OperationOption, DataProps, MutateProps } from './types';\n\nexport function graphql<\n TProps extends TGraphQLVariables | {} = {},\n TData = {},\n TGraphQLVariables = {},\n TChildProps = Partial> &\n Partial>\n>(\n document: DocumentNode,\n operationOptions: OperationOption<\n TProps,\n TData,\n TGraphQLVariables,\n TChildProps\n > = {}\n) {\n switch (parser(document).type) {\n case DocumentType.Mutation:\n return withMutation(document, operationOptions);\n case DocumentType.Subscription:\n return withSubscription(document, operationOptions);\n case DocumentType.Query:\n default:\n return withQuery(document, operationOptions);\n }\n}\n","import React from 'react';\nimport { ApolloConsumer } from '@apollo/react-common';\nimport hoistNonReactStatics from 'hoist-non-react-statics';\nimport { invariant } from 'ts-invariant';\n\nimport { OperationOption, WithApolloClient } from './types';\n\nfunction getDisplayName

(WrappedComponent: React.ComponentType

) {\n return WrappedComponent.displayName || WrappedComponent.name || 'Component';\n}\n\nexport function withApollo(\n WrappedComponent: React.ComponentType<\n WithApolloClient>\n >,\n operationOptions: OperationOption = {}\n): React.ComponentClass> {\n const withDisplayName = `withApollo(${getDisplayName(WrappedComponent)})`;\n\n class WithApollo extends React.Component> {\n static displayName = withDisplayName;\n static WrappedComponent = WrappedComponent;\n\n // wrapped instance\n private wrappedInstance: any;\n\n constructor(props: Omit) {\n super(props);\n this.setWrappedInstance = this.setWrappedInstance.bind(this);\n }\n\n getWrappedInstance() {\n invariant(\n operationOptions.withRef,\n `To access the wrapped instance, you need to specify ` +\n `{ withRef: true } in the options`\n );\n\n return this.wrappedInstance;\n }\n\n setWrappedInstance(ref: React.ComponentType>) {\n this.wrappedInstance = ref;\n }\n\n render() {\n return (\n \n {client => {\n const props = Object.assign({}, this.props, {\n client,\n ref: operationOptions.withRef\n ? this.setWrappedInstance\n : undefined\n });\n return ;\n }}\n \n );\n }\n }\n\n // Make sure we preserve any custom statics on the original component.\n return hoistNonReactStatics(WithApollo, WrappedComponent, {});\n}\n","/*! *****************************************************************************\r\nCopyright (c) Microsoft Corporation.\r\n\r\nPermission to use, copy, modify, and/or distribute this software for any\r\npurpose with or without fee is hereby granted.\r\n\r\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\r\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\r\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\r\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\r\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\r\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\r\nPERFORMANCE OF THIS SOFTWARE.\r\n***************************************************************************** */\r\n/* global Reflect, Promise */\r\n\r\nvar extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n};\r\n\r\nexport function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n}\r\n\r\nexport var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n }\r\n return __assign.apply(this, arguments);\r\n}\r\n\r\nexport function __rest(s, e) {\r\n var t = {};\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\r\n t[p] = s[p];\r\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\r\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\r\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\r\n t[p[i]] = s[p[i]];\r\n }\r\n return t;\r\n}\r\n\r\nexport function __decorate(decorators, target, key, desc) {\r\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\r\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\r\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\r\n return c > 3 && r && Object.defineProperty(target, key, r), r;\r\n}\r\n\r\nexport function __param(paramIndex, decorator) {\r\n return function (target, key) { decorator(target, key, paramIndex); }\r\n}\r\n\r\nexport function __metadata(metadataKey, metadataValue) {\r\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\r\n}\r\n\r\nexport function __awaiter(thisArg, _arguments, P, generator) {\r\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n}\r\n\r\nexport function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n}\r\n\r\nexport function __createBinding(o, m, k, k2) {\r\n if (k2 === undefined) k2 = k;\r\n o[k2] = m[k];\r\n}\r\n\r\nexport function __exportStar(m, exports) {\r\n for (var p in m) if (p !== \"default\" && !exports.hasOwnProperty(p)) exports[p] = m[p];\r\n}\r\n\r\nexport function __values(o) {\r\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\r\n if (m) return m.call(o);\r\n if (o && typeof o.length === \"number\") return {\r\n next: function () {\r\n if (o && i >= o.length) o = void 0;\r\n return { value: o && o[i++], done: !o };\r\n }\r\n };\r\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\r\n}\r\n\r\nexport function __read(o, n) {\r\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\r\n if (!m) return o;\r\n var i = m.call(o), r, ar = [], e;\r\n try {\r\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\r\n }\r\n catch (error) { e = { error: error }; }\r\n finally {\r\n try {\r\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\r\n }\r\n finally { if (e) throw e.error; }\r\n }\r\n return ar;\r\n}\r\n\r\nexport function __spread() {\r\n for (var ar = [], i = 0; i < arguments.length; i++)\r\n ar = ar.concat(__read(arguments[i]));\r\n return ar;\r\n}\r\n\r\nexport function __spreadArrays() {\r\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\r\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\r\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\r\n r[k] = a[j];\r\n return r;\r\n};\r\n\r\nexport function __await(v) {\r\n return this instanceof __await ? (this.v = v, this) : new __await(v);\r\n}\r\n\r\nexport function __asyncGenerator(thisArg, _arguments, generator) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\r\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\r\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\r\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\r\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\r\n function fulfill(value) { resume(\"next\", value); }\r\n function reject(value) { resume(\"throw\", value); }\r\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\r\n}\r\n\r\nexport function __asyncDelegator(o) {\r\n var i, p;\r\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\r\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: n === \"return\" } : f ? f(v) : v; } : f; }\r\n}\r\n\r\nexport function __asyncValues(o) {\r\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\r\n var m = o[Symbol.asyncIterator], i;\r\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\r\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\r\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\r\n}\r\n\r\nexport function __makeTemplateObject(cooked, raw) {\r\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\r\n return cooked;\r\n};\r\n\r\nexport function __importStar(mod) {\r\n if (mod && mod.__esModule) return mod;\r\n var result = {};\r\n if (mod != null) for (var k in mod) if (Object.hasOwnProperty.call(mod, k)) result[k] = mod[k];\r\n result.default = mod;\r\n return result;\r\n}\r\n\r\nexport function __importDefault(mod) {\r\n return (mod && mod.__esModule) ? mod : { default: mod };\r\n}\r\n\r\nexport function __classPrivateFieldGet(receiver, privateMap) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to get private field on non-instance\");\r\n }\r\n return privateMap.get(receiver);\r\n}\r\n\r\nexport function __classPrivateFieldSet(receiver, privateMap, value) {\r\n if (!privateMap.has(receiver)) {\r\n throw new TypeError(\"attempted to set private field on non-instance\");\r\n }\r\n privateMap.set(receiver, value);\r\n return value;\r\n}\r\n","import React from 'react';\nimport { getApolloContext } from '@apollo/react-common';\nimport { RenderPromises } from '@apollo/react-hooks';\n\nexport function getDataFromTree(\n tree: React.ReactNode,\n context: { [key: string]: any } = {}\n) {\n return getMarkupFromTree({\n tree,\n context,\n // If you need to configure this renderFunction, call getMarkupFromTree\n // directly instead of getDataFromTree.\n renderFunction: require('react-dom/server').renderToStaticMarkup\n });\n}\n\nexport type GetMarkupFromTreeOptions = {\n tree: React.ReactNode;\n context?: { [key: string]: any };\n renderFunction?: (tree: React.ReactElement) => string;\n};\n\nexport function getMarkupFromTree({\n tree,\n context = {},\n // The rendering function is configurable! We use renderToStaticMarkup as\n // the default, because it's a little less expensive than renderToString,\n // and legacy usage of getDataFromTree ignores the return value anyway.\n renderFunction = require('react-dom/server').renderToStaticMarkup\n}: GetMarkupFromTreeOptions): Promise {\n const renderPromises = new RenderPromises();\n\n function process(): Promise | string {\n // Always re-render from the rootElement, even though it might seem\n // better to render the children of the component responsible for the\n // promise, because it is not possible to reconstruct the full context\n // of the original rendering (including all unknown context provider\n // elements) for a subtree of the original component tree.\n const ApolloContext = getApolloContext();\n const html = renderFunction(\n React.createElement(\n ApolloContext.Provider,\n { value: { ...context, renderPromises } },\n tree\n )\n );\n\n return renderPromises.hasPromises()\n ? renderPromises.consumeAndAwaitPromises().then(process)\n : html;\n }\n\n return Promise.resolve().then(process);\n}\n","import { ReactElement } from 'react';\nimport { getMarkupFromTree } from './getDataFromTree';\n\nexport function renderToStringWithData(\n component: ReactElement\n): Promise {\n return getMarkupFromTree({\n tree: component,\n renderFunction: require('react-dom/server').renderToString\n });\n}\n","/**\n * Copyright (c) 2015-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'use strict';\n\n// Polyfill stable language features.\n// It's recommended to use @babel/preset-env and browserslist\n// to only include the polyfills necessary for the target browsers.\nrequire('core-js/stable');\nrequire('regenerator-runtime/runtime');\n","/**\n * @license React\n * react-dom-server-legacy.browser.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 aa=require(\"react\");function l(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c

(\r\n type: T\r\n): PayloadActionCreator\r\n\r\n/**\r\n * A utility function to create an action creator for the given action type\r\n * string. The action creator accepts a single argument, which will be included\r\n * in the action object as a field called payload. The action creator function\r\n * will also have its toString() overriden so that it returns the action type,\r\n * allowing it to be used in reducer logic that is looking for that action type.\r\n *\r\n * @param type The action type to use for created actions.\r\n * @param prepare (optional) a method that takes any number of arguments and returns { payload } or { payload, meta }.\r\n * If this is given, the resulting action creator will pass its arguments to this method to calculate payload & meta.\r\n *\r\n * @public\r\n */\r\nexport function createAction<\r\n PA extends PrepareAction,\r\n T extends string = string\r\n>(\r\n type: T,\r\n prepareAction: PA\r\n): PayloadActionCreator['payload'], T, PA>\r\n\r\nexport function createAction(type: string, prepareAction?: Function): any {\r\n function actionCreator(...args: any[]) {\r\n if (prepareAction) {\r\n let prepared = prepareAction(...args)\r\n if (!prepared) {\r\n throw new Error('prepareAction did not return an object')\r\n }\r\n\r\n return {\r\n type,\r\n payload: prepared.payload,\r\n ...('meta' in prepared && { meta: prepared.meta }),\r\n ...('error' in prepared && { error: prepared.error }),\r\n }\r\n }\r\n return { type, payload: args[0] }\r\n }\r\n\r\n actionCreator.toString = () => `${type}`\r\n\r\n actionCreator.type = type\r\n\r\n actionCreator.match = (action: Action): action is PayloadAction =>\r\n action.type === type\r\n\r\n return actionCreator\r\n}\r\n\r\nexport function isFSA(action: unknown): action is {\r\n type: string\r\n payload?: unknown\r\n error?: unknown\r\n meta?: unknown\r\n} {\r\n return (\r\n isPlainObject(action) &&\r\n typeof (action as any).type === 'string' &&\r\n Object.keys(action).every(isValidKey)\r\n )\r\n}\r\n\r\nfunction isValidKey(key: string) {\r\n return ['type', 'payload', 'error', 'meta'].indexOf(key) > -1\r\n}\r\n\r\n/**\r\n * Returns the action type of the actions created by the passed\r\n * `createAction()`-generated action creator (arbitrary action creators\r\n * are not supported).\r\n *\r\n * @param action The action creator whose action type to get.\r\n * @returns The action type used by the action creator.\r\n *\r\n * @public\r\n */\r\nexport function getType(\r\n actionCreator: PayloadActionCreator\r\n): T {\r\n return `${actionCreator}` as T\r\n}\r\n\r\n// helper types for more readable typings\r\n\r\ntype IfPrepareActionMethodProvided<\r\n PA extends PrepareAction | void,\r\n True,\r\n False\r\n> = PA extends (...args: any[]) => any ? True : False\r\n","import type { Action, AnyAction } from 'redux'\r\nimport type {\r\n CaseReducer,\r\n CaseReducers,\r\n ActionMatcherDescriptionCollection,\r\n} from './createReducer'\r\nimport type { TypeGuard } from './tsHelpers'\r\n\r\nexport interface TypedActionCreator {\r\n (...args: any[]): Action\r\n type: Type\r\n}\r\n\r\n/**\r\n * A builder for an action <-> reducer map.\r\n *\r\n * @public\r\n */\r\nexport interface ActionReducerMapBuilder {\r\n /**\r\n * Adds a case reducer to handle a single exact action type.\r\n * @remarks\r\n * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\r\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\r\n * @param reducer - The actual case reducer function.\r\n */\r\n addCase>(\r\n actionCreator: ActionCreator,\r\n reducer: CaseReducer>\r\n ): ActionReducerMapBuilder\r\n /**\r\n * Adds a case reducer to handle a single exact action type.\r\n * @remarks\r\n * All calls to `builder.addCase` must come before any calls to `builder.addMatcher` or `builder.addDefaultCase`.\r\n * @param actionCreator - Either a plain action type string, or an action creator generated by [`createAction`](./createAction) that can be used to determine the action type.\r\n * @param reducer - The actual case reducer function.\r\n */\r\n addCase>(\r\n type: Type,\r\n reducer: CaseReducer\r\n ): ActionReducerMapBuilder\r\n\r\n /**\r\n * Allows you to match your incoming actions against your own filter function instead of only the `action.type` property.\r\n * @remarks\r\n * If multiple matcher reducers match, all of them will be executed in the order\r\n * they were defined in - even if a case reducer already matched.\r\n * All calls to `builder.addMatcher` must come after any calls to `builder.addCase` and before any calls to `builder.addDefaultCase`.\r\n * @param matcher - A matcher function. In TypeScript, this should be a [type predicate](https://www.typescriptlang.org/docs/handbook/advanced-types.html#using-type-predicates)\r\n * function\r\n * @param reducer - The actual case reducer function.\r\n *\r\n * @example\r\n```ts\r\nimport {\r\n createAction,\r\n createReducer,\r\n AsyncThunk,\r\n AnyAction,\r\n} from \"@reduxjs/toolkit\";\r\n\r\ntype GenericAsyncThunk = AsyncThunk;\r\n\r\ntype PendingAction = ReturnType;\r\ntype RejectedAction = ReturnType;\r\ntype FulfilledAction = ReturnType;\r\n\r\nconst initialState: Record = {};\r\nconst resetAction = createAction(\"reset-tracked-loading-state\");\r\n\r\nfunction isPendingAction(action: AnyAction): action is PendingAction {\r\n return action.type.endsWith(\"/pending\");\r\n}\r\n\r\nconst reducer = createReducer(initialState, (builder) => {\r\n builder\r\n .addCase(resetAction, () => initialState)\r\n // matcher can be defined outside as a type predicate function\r\n .addMatcher(isPendingAction, (state, action) => {\r\n state[action.meta.requestId] = \"pending\";\r\n })\r\n .addMatcher(\r\n // matcher can be defined inline as a type predicate function\r\n (action): action is RejectedAction => action.type.endsWith(\"/rejected\"),\r\n (state, action) => {\r\n state[action.meta.requestId] = \"rejected\";\r\n }\r\n )\r\n // matcher can just return boolean and the matcher can receive a generic argument\r\n .addMatcher(\r\n (action) => action.type.endsWith(\"/fulfilled\"),\r\n (state, action) => {\r\n state[action.meta.requestId] = \"fulfilled\";\r\n }\r\n );\r\n});\r\n```\r\n */\r\n addMatcher(\r\n matcher: TypeGuard | ((action: any) => boolean),\r\n reducer: CaseReducer\r\n ): Omit, 'addCase'>\r\n\r\n /**\r\n * Adds a \"default case\" reducer that is executed if no case reducer and no matcher\r\n * reducer was executed for this action.\r\n * @param reducer - The fallback \"default case\" reducer function.\r\n *\r\n * @example\r\n```ts\r\nimport { createReducer } from '@reduxjs/toolkit'\r\nconst initialState = { otherActions: 0 }\r\nconst reducer = createReducer(initialState, builder => {\r\n builder\r\n // .addCase(...)\r\n // .addMatcher(...)\r\n .addDefaultCase((state, action) => {\r\n state.otherActions++\r\n })\r\n})\r\n```\r\n */\r\n addDefaultCase(reducer: CaseReducer): {}\r\n}\r\n\r\nexport function executeReducerBuilderCallback(\r\n builderCallback: (builder: ActionReducerMapBuilder) => void\r\n): [\r\n CaseReducers,\r\n ActionMatcherDescriptionCollection,\r\n CaseReducer | undefined\r\n] {\r\n const actionsMap: CaseReducers = {}\r\n const actionMatchers: ActionMatcherDescriptionCollection = []\r\n let defaultCaseReducer: CaseReducer | undefined\r\n const builder = {\r\n addCase(\r\n typeOrActionCreator: string | TypedActionCreator,\r\n reducer: CaseReducer\r\n ) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n /*\r\n to keep the definition by the user in line with actual behavior, \r\n we enforce `addCase` to always be called before calling `addMatcher`\r\n as matching cases take precedence over matchers\r\n */\r\n if (actionMatchers.length > 0) {\r\n throw new Error(\r\n '`builder.addCase` should only be called before calling `builder.addMatcher`'\r\n )\r\n }\r\n if (defaultCaseReducer) {\r\n throw new Error(\r\n '`builder.addCase` should only be called before calling `builder.addDefaultCase`'\r\n )\r\n }\r\n }\r\n const type =\r\n typeof typeOrActionCreator === 'string'\r\n ? typeOrActionCreator\r\n : typeOrActionCreator.type\r\n if (type in actionsMap) {\r\n throw new Error(\r\n 'addCase cannot be called with two reducers for the same action type'\r\n )\r\n }\r\n actionsMap[type] = reducer\r\n return builder\r\n },\r\n addMatcher(\r\n matcher: TypeGuard,\r\n reducer: CaseReducer\r\n ) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (defaultCaseReducer) {\r\n throw new Error(\r\n '`builder.addMatcher` should only be called before calling `builder.addDefaultCase`'\r\n )\r\n }\r\n }\r\n actionMatchers.push({ matcher, reducer })\r\n return builder\r\n },\r\n addDefaultCase(reducer: CaseReducer) {\r\n if (process.env.NODE_ENV !== 'production') {\r\n if (defaultCaseReducer) {\r\n throw new Error('`builder.addDefaultCase` can only be called once')\r\n }\r\n }\r\n defaultCaseReducer = reducer\r\n return builder\r\n },\r\n }\r\n builderCallback(builder)\r\n return [actionsMap, actionMatchers, defaultCaseReducer]\r\n}\r\n","import type { AnyAction, Reducer } from 'redux'\r\nimport { createNextState } from '.'\r\nimport type {\r\n ActionCreatorWithoutPayload,\r\n PayloadAction,\r\n PayloadActionCreator,\r\n PrepareAction,\r\n _ActionCreatorWithPreparedPayload,\r\n} from './createAction'\r\nimport { createAction } from './createAction'\r\nimport type {\r\n CaseReducer,\r\n CaseReducers,\r\n ReducerWithInitialState,\r\n} from './createReducer'\r\nimport { createReducer, NotFunction } from './createReducer'\r\nimport type { ActionReducerMapBuilder } from './mapBuilders'\r\nimport { executeReducerBuilderCallback } from './mapBuilders'\r\nimport type { NoInfer } from './tsHelpers'\r\nimport { freezeDraftable } from './utils'\r\n\r\nlet hasWarnedAboutObjectNotation = false\r\n\r\n/**\r\n * An action creator attached to a slice.\r\n *\r\n * @deprecated please use PayloadActionCreator directly\r\n *\r\n * @public\r\n */\r\nexport type SliceActionCreator

` element when the parent context is a header\n * or otherwise a `` element.\n */\nconst TableCell = /*#__PURE__*/React.forwardRef(function TableCell(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTableCell'\n });\n const {\n align = 'inherit',\n className,\n component: componentProp,\n padding: paddingProp,\n scope: scopeProp,\n size: sizeProp,\n sortDirection,\n variant: variantProp\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const table = React.useContext(TableContext);\n const tablelvl2 = React.useContext(Tablelvl2Context);\n const isHeadCell = tablelvl2 && tablelvl2.variant === 'head';\n let component;\n if (componentProp) {\n component = componentProp;\n } else {\n component = isHeadCell ? 'th' : 'td';\n }\n let scope = scopeProp;\n // scope is not a valid attribute for elements.\n // source: https://html.spec.whatwg.org/multipage/tables.html#the-td-element\n if (component === 'td') {\n scope = undefined;\n } else if (!scope && isHeadCell) {\n scope = 'col';\n }\n const variant = variantProp || tablelvl2 && tablelvl2.variant;\n const ownerState = _extends({}, props, {\n align,\n component,\n padding: paddingProp || (table && table.padding ? table.padding : 'normal'),\n size: sizeProp || (table && table.size ? table.size : 'medium'),\n sortDirection,\n stickyHeader: variant === 'head' && table && table.stickyHeader,\n variant\n });\n const classes = useUtilityClasses(ownerState);\n let ariaSort = null;\n if (sortDirection) {\n ariaSort = sortDirection === 'asc' ? 'ascending' : 'descending';\n }\n return /*#__PURE__*/_jsx(TableCellRoot, _extends({\n as: component,\n ref: ref,\n className: clsx(classes.root, className),\n \"aria-sort\": ariaSort,\n scope: scope,\n ownerState: ownerState\n }, other));\n});\nprocess.env.NODE_ENV !== \"production\" ? TableCell.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * Set the text-align on the table cell content.\n *\n * Monetary or generally number fields **should be right aligned** as that allows\n * you to add them up quickly in your head without having to worry about decimals.\n * @default 'inherit'\n */\n align: PropTypes.oneOf(['center', 'inherit', 'justify', 'left', 'right']),\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * Sets the padding applied to the cell.\n * The prop defaults to the value (`'default'`) inherited from the parent Table component.\n */\n padding: PropTypes.oneOf(['checkbox', 'none', 'normal']),\n /**\n * Set scope attribute.\n */\n scope: PropTypes.string,\n /**\n * Specify the size of the cell.\n * The prop defaults to the value (`'medium'`) inherited from the parent Table component.\n */\n size: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['medium', 'small']), PropTypes.string]),\n /**\n * Set aria-sort direction.\n */\n sortDirection: PropTypes.oneOf(['asc', 'desc', false]),\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object]),\n /**\n * Specify the cell type.\n * The prop defaults to the value inherited from the parent TableHead, TableBody, or TableFooter components.\n */\n variant: PropTypes /* @typescript-to-proptypes-ignore */.oneOfType([PropTypes.oneOf(['body', 'footer', 'head']), PropTypes.string])\n} : void 0;\nexport default TableCell;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getTableCellUtilityClass(slot) {\n return generateUtilityClass('MuiTableCell', slot);\n}\nconst tableCellClasses = generateUtilityClasses('MuiTableCell', ['root', 'head', 'body', 'footer', 'sizeSmall', 'sizeMedium', 'paddingCheckbox', 'paddingNone', 'alignLeft', 'alignCenter', 'alignRight', 'alignJustify', 'stickyHeader']);\nexport default tableCellClasses;","import { unstable_generateUtilityClasses as generateUtilityClasses } from '@mui/utils';\nimport generateUtilityClass from '../generateUtilityClass';\nexport function getTableHeadUtilityClass(slot) {\n return generateUtilityClass('MuiTableHead', slot);\n}\nconst tableHeadClasses = generateUtilityClasses('MuiTableHead', ['root']);\nexport default tableHeadClasses;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"className\", \"component\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { unstable_composeClasses as composeClasses } from '@mui/base';\nimport Tablelvl2Context from '../Table/Tablelvl2Context';\nimport useThemeProps from '../styles/useThemeProps';\nimport styled from '../styles/styled';\nimport { getTableHeadUtilityClass } from './tableHeadClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nconst useUtilityClasses = ownerState => {\n const {\n classes\n } = ownerState;\n const slots = {\n root: ['root']\n };\n return composeClasses(slots, getTableHeadUtilityClass, classes);\n};\nconst TableHeadRoot = styled('thead', {\n name: 'MuiTableHead',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})({\n display: 'table-header-group'\n});\nconst tablelvl2 = {\n variant: 'head'\n};\nconst defaultComponent = 'thead';\nconst TableHead = /*#__PURE__*/React.forwardRef(function TableHead(inProps, ref) {\n const props = useThemeProps({\n props: inProps,\n name: 'MuiTableHead'\n });\n const {\n className,\n component = defaultComponent\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const ownerState = _extends({}, props, {\n component\n });\n const classes = useUtilityClasses(ownerState);\n return /*#__PURE__*/_jsx(Tablelvl2Context.Provider, {\n value: tablelvl2,\n children: /*#__PURE__*/_jsx(TableHeadRoot, _extends({\n as: component,\n className: clsx(classes.root, className),\n ref: ref,\n role: component === defaultComponent ? null : 'rowgroup',\n ownerState: ownerState\n }, other))\n });\n});\nprocess.env.NODE_ENV !== \"production\" ? TableHead.propTypes /* remove-proptypes */ = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the d.ts file and run \"yarn proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * The content of the component, normally `TableRow`.\n */\n children: PropTypes.node,\n /**\n * Override or extend the styles applied to the component.\n */\n classes: PropTypes.object,\n /**\n * @ignore\n */\n className: PropTypes.string,\n /**\n * The component used for the root node.\n * Either a string to use a HTML element or a component.\n */\n component: PropTypes.elementType,\n /**\n * The system prop that allows defining system overrides as well as additional CSS styles.\n */\n sx: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.func, PropTypes.object, PropTypes.bool])), PropTypes.func, PropTypes.object])\n} : void 0;\nexport default TableHead;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nvar _LastPageIcon, _FirstPageIcon, _KeyboardArrowRight, _KeyboardArrowLeft, _KeyboardArrowLeft2, _KeyboardArrowRight2, _FirstPageIcon2, _LastPageIcon2;\nconst _excluded = [\"backIconButtonProps\", \"count\", \"getItemAriaLabel\", \"nextIconButtonProps\", \"onPageChange\", \"page\", \"rowsPerPage\", \"showFirstButton\", \"showLastButton\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport KeyboardArrowLeft from '../internal/svg-icons/KeyboardArrowLeft';\nimport KeyboardArrowRight from '../internal/svg-icons/KeyboardArrowRight';\nimport useTheme from '../styles/useTheme';\nimport IconButton from '../IconButton';\nimport LastPageIcon from '../internal/svg-icons/LastPage';\nimport FirstPageIcon from '../internal/svg-icons/FirstPage';\n\n/**\n * @ignore - internal component.\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst TablePaginationActions = /*#__PURE__*/React.forwardRef(function TablePaginationActions(props, ref) {\n const {\n backIconButtonProps,\n count,\n getItemAriaLabel,\n nextIconButtonProps,\n onPageChange,\n page,\n rowsPerPage,\n showFirstButton,\n showLastButton\n } = props,\n other = _objectWithoutPropertiesLoose(props, _excluded);\n const theme = useTheme();\n const handleFirstPageButtonClick = event => {\n onPageChange(event, 0);\n };\n const handleBackButtonClick = event => {\n onPageChange(event, page - 1);\n };\n const handleNextButtonClick = event => {\n onPageChange(event, page + 1);\n };\n const handleLastPageButtonClick = event => {\n onPageChange(event, Math.max(0, Math.ceil(count / rowsPerPage) - 1));\n };\n return /*#__PURE__*/_jsxs(\"div\", _extends({\n ref: ref\n }, other, {\n children: [showFirstButton && /*#__PURE__*/_jsx(IconButton, {\n onClick: handleFirstPageButtonClick,\n disabled: page === 0,\n \"aria-label\": getItemAriaLabel('first', page),\n title: getItemAriaLabel('first', page),\n children: theme.direction === 'rtl' ? _LastPageIcon || (_LastPageIcon = /*#__PURE__*/_jsx(LastPageIcon, {})) : _FirstPageIcon || (_FirstPageIcon = /*#__PURE__*/_jsx(FirstPageIcon, {}))\n }), /*#__PURE__*/_jsx(IconButton, _extends({\n onClick: handleBackButtonClick,\n disabled: page === 0,\n color: \"inherit\",\n \"aria-label\": getItemAriaLabel('previous', page),\n title: getItemAriaLabel('previous', page)\n }, backIconButtonProps, {\n children: theme.direction === 'rtl' ? _KeyboardArrowRight || (_KeyboardArrowRight = /*#__PURE__*/_jsx(KeyboardArrowRight, {})) : _KeyboardArrowLeft || (_KeyboardArrowLeft = /*#__PURE__*/_jsx(KeyboardArrowLeft, {}))\n })), /*#__PURE__*/_jsx(IconButton, _extends({\n onClick: handleNextButtonClick,\n disabled: count !== -1 ? page >= Math.ceil(count / rowsPerPage) - 1 : false,\n color: \"inherit\",\n \"aria-label\": getItemAriaLabel('next', page),\n title: getItemAriaLabel('next', page)\n }, nextIconButtonProps, {\n children: theme.direction === 'rtl' ? _KeyboardArrowLeft2 || (_KeyboardArrowLeft2 = /*#__PURE__*/_jsx(KeyboardArrowLeft, {})) : _KeyboardArrowRight2 || (_KeyboardArrowRight2 = /*#__PURE__*/_jsx(KeyboardArrowRight, {}))\n })), showLastButton && /*#__PURE__*/_jsx(IconButton, {\n onClick: handleLastPageButtonClick,\n disabled: page >= Math.ceil(count / rowsPerPage) - 1,\n \"aria-label\": getItemAriaLabel('last', page),\n title: getItemAriaLabel('last', page),\n children: theme.direction === 'rtl' ? _FirstPageIcon2 || (_FirstPageIcon2 = /*#__PURE__*/_jsx(FirstPageIcon, {})) : _LastPageIcon2 || (_LastPageIcon2 = /*#__PURE__*/_jsx(LastPageIcon, {}))\n })]\n }));\n});\nprocess.env.NODE_ENV !== \"production\" ? TablePaginationActions.propTypes = {\n /**\n * Props applied to the back arrow [`IconButton`](/material-ui/api/icon-button/) element.\n */\n backIconButtonProps: PropTypes.object,\n /**\n * The total number of rows.\n */\n count: PropTypes.number.isRequired,\n /**\n * Accepts a function which returns a string value that provides a user-friendly name for the current page.\n *\n * For localization purposes, you can use the provided [translations](/material-ui/guides/localization/).\n *\n * @param {string} type The link or button type to format ('page' | 'first' | 'last' | 'next' | 'previous'). Defaults to 'page'.\n * @param {number} page The page number to format.\n * @returns {string}\n */\n getItemAriaLabel: PropTypes.func.isRequired,\n /**\n * Props applied to the next arrow [`IconButton`](/material-ui/api/icon-button/) element.\n */\n nextIconButtonProps: PropTypes.object,\n /**\n * Callback fired when the page is changed.\n *\n * @param {object} event The event source of the callback.\n * @param {number} page The page selected.\n */\n onPageChange: PropTypes.func.isRequired,\n /**\n * The zero-based index of the current page.\n */\n page: PropTypes.number.isRequired,\n /**\n * The number of rows per page.\n */\n rowsPerPage: PropTypes.number.isRequired,\n /**\n * If `true`, show the first-page button.\n */\n showFirstButton: PropTypes.bool.isRequired,\n /**\n * If `true`, show the last-page button.\n */\n showLastButton: PropTypes.bool.isRequired\n} : void 0;\nexport default TablePaginationActions;","import _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nvar _InputBase;\nconst _excluded = [\"ActionsComponent\", \"backIconButtonProps\", \"className\", \"colSpan\", \"component\", \"count\", \"getItemAriaLabel\", \"labelDisplayedRows\", \"labelRowsPerPage\", \"nextIconButtonProps\", \"onPageChange\", \"onRowsPerPageChange\", \"page\", \"rowsPerPage\", \"rowsPerPageOptions\", \"SelectProps\", \"showFirstButton\", \"showLastButton\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport clsx from 'clsx';\nimport { chainPropTypes, integerPropType } from '@mui/utils';\nimport { unstable_composeClasses as composeClasses, isHostComponent } from '@mui/base';\nimport styled from '../styles/styled';\nimport useThemeProps from '../styles/useThemeProps';\nimport InputBase from '../InputBase';\nimport MenuItem from '../MenuItem';\nimport Select from '../Select';\nimport TableCell from '../TableCell';\nimport Toolbar from '../Toolbar';\nimport TablePaginationActions from './TablePaginationActions';\nimport useId from '../utils/useId';\nimport tablePaginationClasses, { getTablePaginationUtilityClass } from './tablePaginationClasses';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nimport { createElement as _createElement } from \"react\";\nimport { jsxs as _jsxs } from \"react/jsx-runtime\";\nconst TablePaginationRoot = styled(TableCell, {\n name: 'MuiTablePagination',\n slot: 'Root',\n overridesResolver: (props, styles) => styles.root\n})(({\n theme\n}) => ({\n overflow: 'auto',\n color: (theme.vars || theme).palette.text.primary,\n fontSize: theme.typography.pxToRem(14),\n // Increase the specificity to override TableCell.\n '&:last-child': {\n padding: 0\n }\n}));\nconst TablePaginationToolbar = styled(Toolbar, {\n name: 'MuiTablePagination',\n slot: 'Toolbar',\n overridesResolver: (props, styles) => _extends({\n [`& .${tablePaginationClasses.actions}`]: styles.actions\n }, styles.toolbar)\n})(({\n theme\n}) => ({\n minHeight: 52,\n paddingRight: 2,\n [`${theme.breakpoints.up('xs')} and (orientation: landscape)`]: {\n minHeight: 52\n },\n [theme.breakpoints.up('sm')]: {\n minHeight: 52,\n paddingRight: 2\n },\n [`& .${tablePaginationClasses.actions}`]: {\n flexShrink: 0,\n marginLeft: 20\n }\n}));\nconst TablePaginationSpacer = styled('div', {\n name: 'MuiTablePagination',\n slot: 'Spacer',\n overridesResolver: (props, styles) => styles.spacer\n})({\n flex: '1 1 100%'\n});\nconst TablePaginationSelectLabel = styled('p', {\n name: 'MuiTablePagination',\n slot: 'SelectLabel',\n overridesResolver: (props, styles) => styles.selectLabel\n})(({\n theme\n}) => _extends({}, theme.typography.body2, {\n flexShrink: 0\n}));\nconst TablePaginationSelect = styled(Select, {\n name: 'MuiTablePagination',\n slot: 'Select',\n overridesResolver: (props, styles) => _extends({\n [`& .${tablePaginationClasses.selectIcon}`]: styles.selectIcon,\n [`& .${tablePaginationClasses.select}`]: styles.select\n }, styles.input, styles.selectRoot)\n})({\n color: 'inherit',\n fontSize: 'inherit',\n flexShrink: 0,\n marginRight: 32,\n marginLeft: 8,\n [`& .${tablePaginationClasses.select}`]: {\n paddingLeft: 8,\n paddingRight: 24,\n textAlign: 'right',\n textAlignLast: 'right' // Align
');case 5:return a.push('');case 6:return a.push('');case 7:return a.push('');default:throw Error(l(397));}}\nfunction Ba(a,b){switch(b.insertionMode){case 0:case 1:return a.push(\"\");case 2:return a.push(\"\");case 3:return a.push(\"\");case 4:return a.push(\"\");case 5:return a.push(\"\");case 6:return a.push(\"\");case 7:return a.push(\"\");default:throw Error(l(397));}}var Ca=/[<\\u2028\\u2029]/g;\nfunction Da(a){return JSON.stringify(a).replace(Ca,function(a){switch(a){case \"<\":return\"\\\\u003c\";case \"\\u2028\":return\"\\\\u2028\";case \"\\u2029\":return\"\\\\u2029\";default:throw Error(\"escapeJSStringsForInstructionScripts encountered a match it does not know how to replace. this means the match regex and the replacement characters are no longer in sync. This is a bug in React\");}})}\nfunction Ea(a,b){b=void 0===b?\"\":b;return{bootstrapChunks:[],startInlineScript:\"